diff -Nru php7.2-7.2.2/acinclude.m4 php7.2-7.2.3/acinclude.m4 --- php7.2-7.2.2/acinclude.m4 2018-01-30 10:33:38.000000000 +0000 +++ php7.2-7.2.3/acinclude.m4 2018-02-27 16:32:59.000000000 +0000 @@ -2523,15 +2523,18 @@ dnl Common setup macro for libxml dnl AC_DEFUN([PHP_SETUP_LIBXML], [ -AC_CACHE_CHECK([for xml2-config path], ac_cv_php_xml2_config_path, -[ - for i in $PHP_LIBXML_DIR /usr/local /usr; do - if test -x "$i/bin/xml2-config"; then - ac_cv_php_xml2_config_path="$i/bin/xml2-config" - break - fi - done -]) + found_libxml=no + + dnl First try to find xml2-config + AC_CACHE_CHECK([for xml2-config path], ac_cv_php_xml2_config_path, + [ + for i in $PHP_LIBXML_DIR /usr/local /usr; do + if test -x "$i/bin/xml2-config"; then + ac_cv_php_xml2_config_path="$i/bin/xml2-config" + break + fi + done + ]) if test -x "$ac_cv_php_xml2_config_path"; then XML2_CONFIG="$ac_cv_php_xml2_config_path" @@ -2542,30 +2545,52 @@ IFS=$ac_IFS LIBXML_VERSION=`expr [$]1 \* 1000000 + [$]2 \* 1000 + [$]3` if test "$LIBXML_VERSION" -ge "2006011"; then + found_libxml=yes LIBXML_LIBS=`$XML2_CONFIG --libs` LIBXML_INCS=`$XML2_CONFIG --cflags` - PHP_EVAL_LIBLINE($LIBXML_LIBS, $1) - PHP_EVAL_INCLINE($LIBXML_INCS) - - dnl Check that build works with given libs - AC_CACHE_CHECK(whether libxml build works, php_cv_libxml_build_works, [ - PHP_TEST_BUILD(xmlInitParser, - [ - php_cv_libxml_build_works=yes - ], [ - AC_MSG_RESULT(no) - AC_MSG_ERROR([build test failed. Please check the config.log for details.]) - ], [ - [$]$1 - ]) - ]) - if test "$php_cv_libxml_build_works" = "yes"; then - AC_DEFINE(HAVE_LIBXML, 1, [ ]) - fi - $2 else AC_MSG_ERROR([libxml2 version 2.6.11 or greater required.]) fi + fi + + dnl If xml2-config fails, try pkg-config + if test "$found_libxml" = "no"; then + if test -z "$PKG_CONFIG"; then + AC_PATH_PROG(PKG_CONFIG, pkg-config, no) + fi + + dnl If pkg-config is found try using it + if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists libxml-2.0; then + if $PKG_CONFIG --atleast-version=2.6.11 libxml-2.0; then + found_libxml=yes + LIBXML_LIBS=`$PKG_CONFIG --libs libxml-2.0` + LIBXML_INCS=`$PKG_CONFIG --cflags-only-I libxml-2.0` + else + AC_MSG_ERROR([libxml2 version 2.6.11 or greater required.]) + fi + fi + fi + + if test "$found_libxml" = "yes"; then + PHP_EVAL_LIBLINE($LIBXML_LIBS, $1) + PHP_EVAL_INCLINE($LIBXML_INCS) + + dnl Check that build works with given libs + AC_CACHE_CHECK(whether libxml build works, php_cv_libxml_build_works, [ + PHP_TEST_BUILD(xmlInitParser, + [ + php_cv_libxml_build_works=yes + ], [ + AC_MSG_RESULT(no) + AC_MSG_ERROR([build test failed. Please check the config.log for details.]) + ], [ + [$]$1 + ]) + ]) + if test "$php_cv_libxml_build_works" = "yes"; then + AC_DEFINE(HAVE_LIBXML, 1, [ ]) + fi + $2 ifelse([$3],[],,[else $3]) fi ]) diff -Nru php7.2-7.2.2/aclocal.m4 php7.2-7.2.3/aclocal.m4 --- php7.2-7.2.2/aclocal.m4 2018-01-30 10:33:52.000000000 +0000 +++ php7.2-7.2.3/aclocal.m4 2018-02-27 16:32:58.000000000 +0000 @@ -2523,15 +2523,18 @@ dnl Common setup macro for libxml dnl AC_DEFUN([PHP_SETUP_LIBXML], [ -AC_CACHE_CHECK([for xml2-config path], ac_cv_php_xml2_config_path, -[ - for i in $PHP_LIBXML_DIR /usr/local /usr; do - if test -x "$i/bin/xml2-config"; then - ac_cv_php_xml2_config_path="$i/bin/xml2-config" - break - fi - done -]) + found_libxml=no + + dnl First try to find xml2-config + AC_CACHE_CHECK([for xml2-config path], ac_cv_php_xml2_config_path, + [ + for i in $PHP_LIBXML_DIR /usr/local /usr; do + if test -x "$i/bin/xml2-config"; then + ac_cv_php_xml2_config_path="$i/bin/xml2-config" + break + fi + done + ]) if test -x "$ac_cv_php_xml2_config_path"; then XML2_CONFIG="$ac_cv_php_xml2_config_path" @@ -2542,30 +2545,52 @@ IFS=$ac_IFS LIBXML_VERSION=`expr [$]1 \* 1000000 + [$]2 \* 1000 + [$]3` if test "$LIBXML_VERSION" -ge "2006011"; then + found_libxml=yes LIBXML_LIBS=`$XML2_CONFIG --libs` LIBXML_INCS=`$XML2_CONFIG --cflags` - PHP_EVAL_LIBLINE($LIBXML_LIBS, $1) - PHP_EVAL_INCLINE($LIBXML_INCS) - - dnl Check that build works with given libs - AC_CACHE_CHECK(whether libxml build works, php_cv_libxml_build_works, [ - PHP_TEST_BUILD(xmlInitParser, - [ - php_cv_libxml_build_works=yes - ], [ - AC_MSG_RESULT(no) - AC_MSG_ERROR([build test failed. Please check the config.log for details.]) - ], [ - [$]$1 - ]) - ]) - if test "$php_cv_libxml_build_works" = "yes"; then - AC_DEFINE(HAVE_LIBXML, 1, [ ]) - fi - $2 else AC_MSG_ERROR([libxml2 version 2.6.11 or greater required.]) fi + fi + + dnl If xml2-config fails, try pkg-config + if test "$found_libxml" = "no"; then + if test -z "$PKG_CONFIG"; then + AC_PATH_PROG(PKG_CONFIG, pkg-config, no) + fi + + dnl If pkg-config is found try using it + if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists libxml-2.0; then + if $PKG_CONFIG --atleast-version=2.6.11 libxml-2.0; then + found_libxml=yes + LIBXML_LIBS=`$PKG_CONFIG --libs libxml-2.0` + LIBXML_INCS=`$PKG_CONFIG --cflags-only-I libxml-2.0` + else + AC_MSG_ERROR([libxml2 version 2.6.11 or greater required.]) + fi + fi + fi + + if test "$found_libxml" = "yes"; then + PHP_EVAL_LIBLINE($LIBXML_LIBS, $1) + PHP_EVAL_INCLINE($LIBXML_INCS) + + dnl Check that build works with given libs + AC_CACHE_CHECK(whether libxml build works, php_cv_libxml_build_works, [ + PHP_TEST_BUILD(xmlInitParser, + [ + php_cv_libxml_build_works=yes + ], [ + AC_MSG_RESULT(no) + AC_MSG_ERROR([build test failed. Please check the config.log for details.]) + ], [ + [$]$1 + ]) + ]) + if test "$php_cv_libxml_build_works" = "yes"; then + AC_DEFINE(HAVE_LIBXML, 1, [ ]) + fi + $2 ifelse([$3],[],,[else $3]) fi ]) diff -Nru php7.2-7.2.2/.appveyor.yml php7.2-7.2.3/.appveyor.yml --- php7.2-7.2.2/.appveyor.yml 2018-01-30 10:33:36.000000000 +0000 +++ php7.2-7.2.3/.appveyor.yml 2018-02-27 16:32:58.000000000 +0000 @@ -23,7 +23,7 @@ PHP_BUILD_CACHE_BASE_DIR: c:\build-cache PHP_BUILD_OBJ_DIR: c:\obj PHP_BUILD_CACHE_SDK_DIR: c:\build-cache\sdk - PHP_BUILD_SDK_BRANCH: php-sdk-2.0.13 + PHP_BUILD_SDK_BRANCH: php-sdk-2.1.0 PHP_BUILD_CRT: vc15 # ext and env setup for tests #MYSQL_TEST_PASSWD: Password12! diff -Nru php7.2-7.2.2/configure php7.2-7.2.3/configure --- php7.2-7.2.2/configure 2018-01-30 10:33:52.000000000 +0000 +++ php7.2-7.2.3/configure 2018-02-27 16:32:58.000000000 +0000 @@ -3653,7 +3653,7 @@ PHP_MAJOR_VERSION=7 PHP_MINOR_VERSION=2 -PHP_RELEASE_VERSION=2 +PHP_RELEASE_VERSION=3 PHP_EXTRA_VERSION="" PHP_VERSION="$PHP_MAJOR_VERSION.$PHP_MINOR_VERSION.$PHP_RELEASE_VERSION$PHP_EXTRA_VERSION" PHP_VERSION_ID=`expr $PHP_MAJOR_VERSION \* 10000 + $PHP_MINOR_VERSION \* 100 + $PHP_RELEASE_VERSION` @@ -17150,18 +17150,20 @@ ext_shared=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for xml2-config path" >&5 + found_libxml=no + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xml2-config path" >&5 $as_echo_n "checking for xml2-config path... " >&6; } if ${ac_cv_php_xml2_config_path+:} false; then : $as_echo_n "(cached) " >&6 else - for i in $PHP_LIBXML_DIR /usr/local /usr; do - if test -x "$i/bin/xml2-config"; then - ac_cv_php_xml2_config_path="$i/bin/xml2-config" - break - fi - done + for i in $PHP_LIBXML_DIR /usr/local /usr; do + if test -x "$i/bin/xml2-config"; then + ac_cv_php_xml2_config_path="$i/bin/xml2-config" + break + fi + done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_php_xml2_config_path" >&5 @@ -17176,8 +17178,71 @@ IFS=$ac_IFS LIBXML_VERSION=`expr $1 \* 1000000 + $2 \* 1000 + $3` if test "$LIBXML_VERSION" -ge "2006011"; then + found_libxml=yes LIBXML_LIBS=`$XML2_CONFIG --libs` LIBXML_INCS=`$XML2_CONFIG --cflags` + else + as_fn_error $? "libxml2 version 2.6.11 or greater required." "$LINENO" 5 + fi + fi + + if test "$found_libxml" = "no"; then + if test -z "$PKG_CONFIG"; then + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi + + if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists libxml-2.0; then + if $PKG_CONFIG --atleast-version=2.6.11 libxml-2.0; then + found_libxml=yes + LIBXML_LIBS=`$PKG_CONFIG --libs libxml-2.0` + LIBXML_INCS=`$PKG_CONFIG --cflags-only-I libxml-2.0` + else + as_fn_error $? "libxml2 version 2.6.11 or greater required." "$LINENO" 5 + fi + fi + fi + + if test "$found_libxml" = "yes"; then for ac_i in $LIBXML_LIBS; do case $ac_i in @@ -17308,7 +17373,7 @@ done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether libxml build works" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether libxml build works" >&5 $as_echo_n "checking whether libxml build works... " >&6; } if ${php_cv_libxml_build_works+:} false; then : $as_echo_n "(cached) " >&6 @@ -17317,8 +17382,8 @@ old_LIBS=$LIBS LIBS=" - $LIBXML_SHARED_LIBADD - $LIBS" + $LIBXML_SHARED_LIBADD + $LIBS" if test "$cross_compiling" = yes; then : LIBS=$old_LIBS @@ -17339,16 +17404,16 @@ LIBS=$old_LIBS - php_cv_libxml_build_works=yes + php_cv_libxml_build_works=yes else LIBS=$old_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - as_fn_error $? "build test failed. Please check the config.log for details." "$LINENO" 5 + as_fn_error $? "build test failed. Please check the config.log for details." "$LINENO" 5 fi @@ -17361,11 +17426,11 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $php_cv_libxml_build_works" >&5 $as_echo "$php_cv_libxml_build_works" >&6; } - if test "$php_cv_libxml_build_works" = "yes"; then + if test "$php_cv_libxml_build_works" = "yes"; then $as_echo "#define HAVE_LIBXML 1" >>confdefs.h - fi + fi $as_echo "#define HAVE_LIBXML 1" >>confdefs.h @@ -17638,11 +17703,8 @@ - else - as_fn_error $? "libxml2 version 2.6.11 or greater required." "$LINENO" 5 - fi else - as_fn_error $? "xml2-config not found. Please check your libxml2 installation." "$LINENO" 5 + as_fn_error $? "libxml2 not found. Please check your libxml2 installation." "$LINENO" 5 fi @@ -29198,18 +29260,20 @@ fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for xml2-config path" >&5 + found_libxml=no + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xml2-config path" >&5 $as_echo_n "checking for xml2-config path... " >&6; } if ${ac_cv_php_xml2_config_path+:} false; then : $as_echo_n "(cached) " >&6 else - for i in $PHP_LIBXML_DIR /usr/local /usr; do - if test -x "$i/bin/xml2-config"; then - ac_cv_php_xml2_config_path="$i/bin/xml2-config" - break - fi - done + for i in $PHP_LIBXML_DIR /usr/local /usr; do + if test -x "$i/bin/xml2-config"; then + ac_cv_php_xml2_config_path="$i/bin/xml2-config" + break + fi + done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_php_xml2_config_path" >&5 @@ -29224,8 +29288,71 @@ IFS=$ac_IFS LIBXML_VERSION=`expr $1 \* 1000000 + $2 \* 1000 + $3` if test "$LIBXML_VERSION" -ge "2006011"; then + found_libxml=yes LIBXML_LIBS=`$XML2_CONFIG --libs` LIBXML_INCS=`$XML2_CONFIG --cflags` + else + as_fn_error $? "libxml2 version 2.6.11 or greater required." "$LINENO" 5 + fi + fi + + if test "$found_libxml" = "no"; then + if test -z "$PKG_CONFIG"; then + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi + + if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists libxml-2.0; then + if $PKG_CONFIG --atleast-version=2.6.11 libxml-2.0; then + found_libxml=yes + LIBXML_LIBS=`$PKG_CONFIG --libs libxml-2.0` + LIBXML_INCS=`$PKG_CONFIG --cflags-only-I libxml-2.0` + else + as_fn_error $? "libxml2 version 2.6.11 or greater required." "$LINENO" 5 + fi + fi + fi + + if test "$found_libxml" = "yes"; then for ac_i in $LIBXML_LIBS; do case $ac_i in @@ -29356,7 +29483,7 @@ done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether libxml build works" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether libxml build works" >&5 $as_echo_n "checking whether libxml build works... " >&6; } if ${php_cv_libxml_build_works+:} false; then : $as_echo_n "(cached) " >&6 @@ -29365,8 +29492,8 @@ old_LIBS=$LIBS LIBS=" - $DOM_SHARED_LIBADD - $LIBS" + $DOM_SHARED_LIBADD + $LIBS" if test "$cross_compiling" = yes; then : LIBS=$old_LIBS @@ -29387,16 +29514,16 @@ LIBS=$old_LIBS - php_cv_libxml_build_works=yes + php_cv_libxml_build_works=yes else LIBS=$old_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - as_fn_error $? "build test failed. Please check the config.log for details." "$LINENO" 5 + as_fn_error $? "build test failed. Please check the config.log for details." "$LINENO" 5 fi @@ -29409,11 +29536,11 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $php_cv_libxml_build_works" >&5 $as_echo "$php_cv_libxml_build_works" >&6; } - if test "$php_cv_libxml_build_works" = "yes"; then + if test "$php_cv_libxml_build_works" = "yes"; then $as_echo "#define HAVE_LIBXML 1" >>confdefs.h - fi + fi $as_echo "#define HAVE_DOM 1" >>confdefs.h @@ -29744,11 +29871,8 @@ fi - else - as_fn_error $? "libxml2 version 2.6.11 or greater required." "$LINENO" 5 - fi else - as_fn_error $? "xml2-config not found. Please check your libxml2 installation." "$LINENO" 5 + as_fn_error $? "libxml2 not found. Please check your libxml2 installation." "$LINENO" 5 fi @@ -46947,7 +47071,9 @@ LDAP_PTHREAD= fi - if test -f $LDAP_LIBDIR/liblber.a || test -f $LDAP_LIBDIR/liblber.$SHLIB_SUFFIX_NAME; then + MACHINE_INCLUDES=$($CC -dumpmachine) + + if test -f $LDAP_LIBDIR/liblber.a || test -f $LDAP_LIBDIR/liblber.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/liblber.a || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/liblber.$SHLIB_SUFFIX_NAME; then if test "$ext_shared" = "yes"; then @@ -47143,7 +47269,7 @@ - elif test -f $LDAP_LIBDIR/libldap.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/libldap.$SHLIB_SUFFIX_NAME.3 || test -f $LDAP_LIBDIR/libldap.3.dylib; then + elif test -f $LDAP_LIBDIR/libldap.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/libldap.$SHLIB_SUFFIX_NAME.3 || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libldap.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libldap.$SHLIB_SUFFIX_NAME.3 || test -f $LDAP_LIBDIR/libldap.3.dylib; then if test "$ext_shared" = "yes"; then @@ -47242,7 +47368,7 @@ - elif test -f $LDAP_LIBDIR/libssldap50.$SHLIB_SUFFIX_NAME; then + elif test -f $LDAP_LIBDIR/libssldap50.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libssldap50.$SHLIB_SUFFIX_NAME; then if test -n "$LDAP_PTHREAD"; then @@ -47938,7 +48064,7 @@ $as_echo "#define HAVE_NSLDAP 1" >>confdefs.h - elif test -f $LDAP_LIBDIR/libldapssl41.$SHLIB_SUFFIX_NAME; then + elif test -f $LDAP_LIBDIR/libldapssl41.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libldapssl41.$SHLIB_SUFFIX_NAME; then if test -n "$LDAP_PTHREAD"; then @@ -48343,7 +48469,7 @@ $as_echo "#define HAVE_NSLDAP 1" >>confdefs.h - elif test -f $LDAP_LIBDIR/libldapssl30.$SHLIB_SUFFIX_NAME; then + elif test -f $LDAP_LIBDIR/libldapssl30.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libldapssl30.$SHLIB_SUFFIX_NAME; then if test -n "$LDAP_PTHREAD"; then @@ -48457,7 +48583,7 @@ $as_echo "#define HAVE_NSLDAP 1" >>confdefs.h - elif test -f $LDAP_LIBDIR/libldap30.$SHLIB_SUFFIX_NAME; then + elif test -f $LDAP_LIBDIR/libldap30.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libldap30.$SHLIB_SUFFIX_NAME; then if test -n "$LDAP_PTHREAD"; then @@ -48571,7 +48697,7 @@ $as_echo "#define HAVE_NSLDAP 1" >>confdefs.h - elif test -f $LDAP_LIBDIR/libumich_ldap.$SHLIB_SUFFIX_NAME; then + elif test -f $LDAP_LIBDIR/libumich_ldap.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libumich_ldap.$SHLIB_SUFFIX_NAME; then if test "$ext_shared" = "yes"; then @@ -48767,7 +48893,7 @@ - elif test -f $LDAP_LIBDIR/libclntsh.$SHLIB_SUFFIX_NAME.12.1; then + elif test -f $LDAP_LIBDIR/libclntsh.$SHLIB_SUFFIX_NAME.12.1 || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libclntsh.$SHLIB_SUFFIX_NAME.12.1; then if test "$ext_shared" = "yes"; then @@ -48872,7 +48998,7 @@ $as_echo "#define HAVE_ORALDAP_12 1" >>confdefs.h - elif test -f $LDAP_LIBDIR/libclntsh.$SHLIB_SUFFIX_NAME.11.1; then + elif test -f $LDAP_LIBDIR/libclntsh.$SHLIB_SUFFIX_NAME.11.1 || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libclntsh.$SHLIB_SUFFIX_NAME.11.1; then if test "$ext_shared" = "yes"; then @@ -48977,7 +49103,7 @@ $as_echo "#define HAVE_ORALDAP_11 1" >>confdefs.h - elif test -f $LDAP_LIBDIR/libclntsh.$SHLIB_SUFFIX_NAME; then + elif test -f $LDAP_LIBDIR/libclntsh.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libclntsh.$SHLIB_SUFFIX_NAME; then if test "$ext_shared" = "yes"; then @@ -73892,6 +74018,10 @@ as_fn_error $? "cannot find mm library" "$LINENO" 5 fi + if test "$enable_maintainer_zts" = "yes"; then + as_fn_error $? "--with-mm cannot be combined with --enable-maintainer-zts" "$LINENO" 5 + fi + if test "$ext_shared" = "yes"; then @@ -74426,18 +74556,20 @@ fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for xml2-config path" >&5 + found_libxml=no + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xml2-config path" >&5 $as_echo_n "checking for xml2-config path... " >&6; } if ${ac_cv_php_xml2_config_path+:} false; then : $as_echo_n "(cached) " >&6 else - for i in $PHP_LIBXML_DIR /usr/local /usr; do - if test -x "$i/bin/xml2-config"; then - ac_cv_php_xml2_config_path="$i/bin/xml2-config" - break - fi - done + for i in $PHP_LIBXML_DIR /usr/local /usr; do + if test -x "$i/bin/xml2-config"; then + ac_cv_php_xml2_config_path="$i/bin/xml2-config" + break + fi + done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_php_xml2_config_path" >&5 @@ -74452,8 +74584,71 @@ IFS=$ac_IFS LIBXML_VERSION=`expr $1 \* 1000000 + $2 \* 1000 + $3` if test "$LIBXML_VERSION" -ge "2006011"; then + found_libxml=yes LIBXML_LIBS=`$XML2_CONFIG --libs` LIBXML_INCS=`$XML2_CONFIG --cflags` + else + as_fn_error $? "libxml2 version 2.6.11 or greater required." "$LINENO" 5 + fi + fi + + if test "$found_libxml" = "no"; then + if test -z "$PKG_CONFIG"; then + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi + + if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists libxml-2.0; then + if $PKG_CONFIG --atleast-version=2.6.11 libxml-2.0; then + found_libxml=yes + LIBXML_LIBS=`$PKG_CONFIG --libs libxml-2.0` + LIBXML_INCS=`$PKG_CONFIG --cflags-only-I libxml-2.0` + else + as_fn_error $? "libxml2 version 2.6.11 or greater required." "$LINENO" 5 + fi + fi + fi + + if test "$found_libxml" = "yes"; then for ac_i in $LIBXML_LIBS; do case $ac_i in @@ -74584,7 +74779,7 @@ done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether libxml build works" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether libxml build works" >&5 $as_echo_n "checking whether libxml build works... " >&6; } if ${php_cv_libxml_build_works+:} false; then : $as_echo_n "(cached) " >&6 @@ -74593,8 +74788,8 @@ old_LIBS=$LIBS LIBS=" - $SIMPLEXML_SHARED_LIBADD - $LIBS" + $SIMPLEXML_SHARED_LIBADD + $LIBS" if test "$cross_compiling" = yes; then : LIBS=$old_LIBS @@ -74615,16 +74810,16 @@ LIBS=$old_LIBS - php_cv_libxml_build_works=yes + php_cv_libxml_build_works=yes else LIBS=$old_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - as_fn_error $? "build test failed. Please check the config.log for details." "$LINENO" 5 + as_fn_error $? "build test failed. Please check the config.log for details." "$LINENO" 5 fi @@ -74637,11 +74832,11 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $php_cv_libxml_build_works" >&5 $as_echo "$php_cv_libxml_build_works" >&6; } - if test "$php_cv_libxml_build_works" = "yes"; then + if test "$php_cv_libxml_build_works" = "yes"; then $as_echo "#define HAVE_LIBXML 1" >>confdefs.h - fi + fi $as_echo "#define HAVE_SIMPLEXML 1" >>confdefs.h @@ -74917,11 +75112,8 @@ PHP_VAR_SUBST="$PHP_VAR_SUBST SIMPLEXML_SHARED_LIBADD" - else - as_fn_error $? "libxml2 version 2.6.11 or greater required." "$LINENO" 5 - fi else - as_fn_error $? "xml2-config not found. Please check your libxml2 installation." "$LINENO" 5 + as_fn_error $? "libxml2 not found. Please check your libxml2 installation." "$LINENO" 5 fi @@ -75876,18 +76068,20 @@ fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for xml2-config path" >&5 + found_libxml=no + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xml2-config path" >&5 $as_echo_n "checking for xml2-config path... " >&6; } if ${ac_cv_php_xml2_config_path+:} false; then : $as_echo_n "(cached) " >&6 else - for i in $PHP_LIBXML_DIR /usr/local /usr; do - if test -x "$i/bin/xml2-config"; then - ac_cv_php_xml2_config_path="$i/bin/xml2-config" - break - fi - done + for i in $PHP_LIBXML_DIR /usr/local /usr; do + if test -x "$i/bin/xml2-config"; then + ac_cv_php_xml2_config_path="$i/bin/xml2-config" + break + fi + done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_php_xml2_config_path" >&5 @@ -75902,8 +76096,71 @@ IFS=$ac_IFS LIBXML_VERSION=`expr $1 \* 1000000 + $2 \* 1000 + $3` if test "$LIBXML_VERSION" -ge "2006011"; then + found_libxml=yes LIBXML_LIBS=`$XML2_CONFIG --libs` LIBXML_INCS=`$XML2_CONFIG --cflags` + else + as_fn_error $? "libxml2 version 2.6.11 or greater required." "$LINENO" 5 + fi + fi + + if test "$found_libxml" = "no"; then + if test -z "$PKG_CONFIG"; then + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi + + if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists libxml-2.0; then + if $PKG_CONFIG --atleast-version=2.6.11 libxml-2.0; then + found_libxml=yes + LIBXML_LIBS=`$PKG_CONFIG --libs libxml-2.0` + LIBXML_INCS=`$PKG_CONFIG --cflags-only-I libxml-2.0` + else + as_fn_error $? "libxml2 version 2.6.11 or greater required." "$LINENO" 5 + fi + fi + fi + + if test "$found_libxml" = "yes"; then for ac_i in $LIBXML_LIBS; do case $ac_i in @@ -76034,7 +76291,7 @@ done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether libxml build works" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether libxml build works" >&5 $as_echo_n "checking whether libxml build works... " >&6; } if ${php_cv_libxml_build_works+:} false; then : $as_echo_n "(cached) " >&6 @@ -76043,8 +76300,8 @@ old_LIBS=$LIBS LIBS=" - $SOAP_SHARED_LIBADD - $LIBS" + $SOAP_SHARED_LIBADD + $LIBS" if test "$cross_compiling" = yes; then : LIBS=$old_LIBS @@ -76065,16 +76322,16 @@ LIBS=$old_LIBS - php_cv_libxml_build_works=yes + php_cv_libxml_build_works=yes else LIBS=$old_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - as_fn_error $? "build test failed. Please check the config.log for details." "$LINENO" 5 + as_fn_error $? "build test failed. Please check the config.log for details." "$LINENO" 5 fi @@ -76087,11 +76344,11 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $php_cv_libxml_build_works" >&5 $as_echo "$php_cv_libxml_build_works" >&6; } - if test "$php_cv_libxml_build_works" = "yes"; then + if test "$php_cv_libxml_build_works" = "yes"; then $as_echo "#define HAVE_LIBXML 1" >>confdefs.h - fi + fi $as_echo "#define HAVE_SOAP 1" >>confdefs.h @@ -76349,11 +76606,8 @@ PHP_VAR_SUBST="$PHP_VAR_SUBST SOAP_SHARED_LIBADD" - else - as_fn_error $? "libxml2 version 2.6.11 or greater required." "$LINENO" 5 - fi else - as_fn_error $? "xml2-config not found. Please check your libxml2 installation." "$LINENO" 5 + as_fn_error $? "libxml2 not found. Please check your libxml2 installation." "$LINENO" 5 fi @@ -84164,18 +84418,20 @@ fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for xml2-config path" >&5 + found_libxml=no + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xml2-config path" >&5 $as_echo_n "checking for xml2-config path... " >&6; } if ${ac_cv_php_xml2_config_path+:} false; then : $as_echo_n "(cached) " >&6 else - for i in $PHP_LIBXML_DIR /usr/local /usr; do - if test -x "$i/bin/xml2-config"; then - ac_cv_php_xml2_config_path="$i/bin/xml2-config" - break - fi - done + for i in $PHP_LIBXML_DIR /usr/local /usr; do + if test -x "$i/bin/xml2-config"; then + ac_cv_php_xml2_config_path="$i/bin/xml2-config" + break + fi + done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_php_xml2_config_path" >&5 @@ -84190,8 +84446,71 @@ IFS=$ac_IFS LIBXML_VERSION=`expr $1 \* 1000000 + $2 \* 1000 + $3` if test "$LIBXML_VERSION" -ge "2006011"; then + found_libxml=yes LIBXML_LIBS=`$XML2_CONFIG --libs` LIBXML_INCS=`$XML2_CONFIG --cflags` + else + as_fn_error $? "libxml2 version 2.6.11 or greater required." "$LINENO" 5 + fi + fi + + if test "$found_libxml" = "no"; then + if test -z "$PKG_CONFIG"; then + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi + + if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists libxml-2.0; then + if $PKG_CONFIG --atleast-version=2.6.11 libxml-2.0; then + found_libxml=yes + LIBXML_LIBS=`$PKG_CONFIG --libs libxml-2.0` + LIBXML_INCS=`$PKG_CONFIG --cflags-only-I libxml-2.0` + else + as_fn_error $? "libxml2 version 2.6.11 or greater required." "$LINENO" 5 + fi + fi + fi + + if test "$found_libxml" = "yes"; then for ac_i in $LIBXML_LIBS; do case $ac_i in @@ -84322,7 +84641,7 @@ done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether libxml build works" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether libxml build works" >&5 $as_echo_n "checking whether libxml build works... " >&6; } if ${php_cv_libxml_build_works+:} false; then : $as_echo_n "(cached) " >&6 @@ -84331,8 +84650,8 @@ old_LIBS=$LIBS LIBS=" - $WDDX_SHARED_LIBADD - $LIBS" + $WDDX_SHARED_LIBADD + $LIBS" if test "$cross_compiling" = yes; then : LIBS=$old_LIBS @@ -84353,16 +84672,16 @@ LIBS=$old_LIBS - php_cv_libxml_build_works=yes + php_cv_libxml_build_works=yes else LIBS=$old_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - as_fn_error $? "build test failed. Please check the config.log for details." "$LINENO" 5 + as_fn_error $? "build test failed. Please check the config.log for details." "$LINENO" 5 fi @@ -84375,11 +84694,11 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $php_cv_libxml_build_works" >&5 $as_echo "$php_cv_libxml_build_works" >&6; } - if test "$php_cv_libxml_build_works" = "yes"; then + if test "$php_cv_libxml_build_works" = "yes"; then $as_echo "#define HAVE_LIBXML 1" >>confdefs.h - fi + fi if test "$PHP_XML" = "no"; then @@ -84432,11 +84751,8 @@ fi - else - as_fn_error $? "libxml2 version 2.6.11 or greater required." "$LINENO" 5 - fi else - as_fn_error $? "xml2-config not found. Use --with-libxml-dir=" "$LINENO" 5 + as_fn_error $? "libxml2 not found. Use --with-libxml-dir=" "$LINENO" 5 fi @@ -84970,18 +85286,20 @@ fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for xml2-config path" >&5 + found_libxml=no + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xml2-config path" >&5 $as_echo_n "checking for xml2-config path... " >&6; } if ${ac_cv_php_xml2_config_path+:} false; then : $as_echo_n "(cached) " >&6 else - for i in $PHP_LIBXML_DIR /usr/local /usr; do - if test -x "$i/bin/xml2-config"; then - ac_cv_php_xml2_config_path="$i/bin/xml2-config" - break - fi - done + for i in $PHP_LIBXML_DIR /usr/local /usr; do + if test -x "$i/bin/xml2-config"; then + ac_cv_php_xml2_config_path="$i/bin/xml2-config" + break + fi + done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_php_xml2_config_path" >&5 @@ -84996,8 +85314,71 @@ IFS=$ac_IFS LIBXML_VERSION=`expr $1 \* 1000000 + $2 \* 1000 + $3` if test "$LIBXML_VERSION" -ge "2006011"; then + found_libxml=yes LIBXML_LIBS=`$XML2_CONFIG --libs` LIBXML_INCS=`$XML2_CONFIG --cflags` + else + as_fn_error $? "libxml2 version 2.6.11 or greater required." "$LINENO" 5 + fi + fi + + if test "$found_libxml" = "no"; then + if test -z "$PKG_CONFIG"; then + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi + + if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists libxml-2.0; then + if $PKG_CONFIG --atleast-version=2.6.11 libxml-2.0; then + found_libxml=yes + LIBXML_LIBS=`$PKG_CONFIG --libs libxml-2.0` + LIBXML_INCS=`$PKG_CONFIG --cflags-only-I libxml-2.0` + else + as_fn_error $? "libxml2 version 2.6.11 or greater required." "$LINENO" 5 + fi + fi + fi + + if test "$found_libxml" = "yes"; then for ac_i in $LIBXML_LIBS; do case $ac_i in @@ -85128,7 +85509,7 @@ done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether libxml build works" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether libxml build works" >&5 $as_echo_n "checking whether libxml build works... " >&6; } if ${php_cv_libxml_build_works+:} false; then : $as_echo_n "(cached) " >&6 @@ -85137,8 +85518,8 @@ old_LIBS=$LIBS LIBS=" - $XML_SHARED_LIBADD - $LIBS" + $XML_SHARED_LIBADD + $LIBS" if test "$cross_compiling" = yes; then : LIBS=$old_LIBS @@ -85159,16 +85540,16 @@ LIBS=$old_LIBS - php_cv_libxml_build_works=yes + php_cv_libxml_build_works=yes else LIBS=$old_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - as_fn_error $? "build test failed. Please check the config.log for details." "$LINENO" 5 + as_fn_error $? "build test failed. Please check the config.log for details." "$LINENO" 5 fi @@ -85181,11 +85562,11 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $php_cv_libxml_build_works" >&5 $as_echo "$php_cv_libxml_build_works" >&6; } - if test "$php_cv_libxml_build_works" = "yes"; then + if test "$php_cv_libxml_build_works" = "yes"; then $as_echo "#define HAVE_LIBXML 1" >>confdefs.h - fi + fi xml_extra_sources="compat.c" @@ -85208,11 +85589,8 @@ fi - else - as_fn_error $? "libxml2 version 2.6.11 or greater required." "$LINENO" 5 - fi else - as_fn_error $? "xml2-config not found. Use --with-libxml-dir=" "$LINENO" 5 + as_fn_error $? "libxml2 not found. Use --with-libxml-dir=" "$LINENO" 5 fi @@ -85719,18 +86097,20 @@ fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for xml2-config path" >&5 + found_libxml=no + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xml2-config path" >&5 $as_echo_n "checking for xml2-config path... " >&6; } if ${ac_cv_php_xml2_config_path+:} false; then : $as_echo_n "(cached) " >&6 else - for i in $PHP_LIBXML_DIR /usr/local /usr; do - if test -x "$i/bin/xml2-config"; then - ac_cv_php_xml2_config_path="$i/bin/xml2-config" - break - fi - done + for i in $PHP_LIBXML_DIR /usr/local /usr; do + if test -x "$i/bin/xml2-config"; then + ac_cv_php_xml2_config_path="$i/bin/xml2-config" + break + fi + done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_php_xml2_config_path" >&5 @@ -85745,8 +86125,71 @@ IFS=$ac_IFS LIBXML_VERSION=`expr $1 \* 1000000 + $2 \* 1000 + $3` if test "$LIBXML_VERSION" -ge "2006011"; then + found_libxml=yes LIBXML_LIBS=`$XML2_CONFIG --libs` LIBXML_INCS=`$XML2_CONFIG --cflags` + else + as_fn_error $? "libxml2 version 2.6.11 or greater required." "$LINENO" 5 + fi + fi + + if test "$found_libxml" = "no"; then + if test -z "$PKG_CONFIG"; then + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi + + if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists libxml-2.0; then + if $PKG_CONFIG --atleast-version=2.6.11 libxml-2.0; then + found_libxml=yes + LIBXML_LIBS=`$PKG_CONFIG --libs libxml-2.0` + LIBXML_INCS=`$PKG_CONFIG --cflags-only-I libxml-2.0` + else + as_fn_error $? "libxml2 version 2.6.11 or greater required." "$LINENO" 5 + fi + fi + fi + + if test "$found_libxml" = "yes"; then for ac_i in $LIBXML_LIBS; do case $ac_i in @@ -85877,7 +86320,7 @@ done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether libxml build works" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether libxml build works" >&5 $as_echo_n "checking whether libxml build works... " >&6; } if ${php_cv_libxml_build_works+:} false; then : $as_echo_n "(cached) " >&6 @@ -85886,8 +86329,8 @@ old_LIBS=$LIBS LIBS=" - $XMLREADER_SHARED_LIBADD - $LIBS" + $XMLREADER_SHARED_LIBADD + $LIBS" if test "$cross_compiling" = yes; then : LIBS=$old_LIBS @@ -85908,16 +86351,16 @@ LIBS=$old_LIBS - php_cv_libxml_build_works=yes + php_cv_libxml_build_works=yes else LIBS=$old_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - as_fn_error $? "build test failed. Please check the config.log for details." "$LINENO" 5 + as_fn_error $? "build test failed. Please check the config.log for details." "$LINENO" 5 fi @@ -85930,11 +86373,11 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $php_cv_libxml_build_works" >&5 $as_echo "$php_cv_libxml_build_works" >&6; } - if test "$php_cv_libxml_build_works" = "yes"; then + if test "$php_cv_libxml_build_works" = "yes"; then $as_echo "#define HAVE_LIBXML 1" >>confdefs.h - fi + fi $as_echo "#define HAVE_XMLREADER 1" >>confdefs.h @@ -86211,11 +86654,8 @@ PHP_VAR_SUBST="$PHP_VAR_SUBST XMLREADER_SHARED_LIBADD" - else - as_fn_error $? "libxml2 version 2.6.11 or greater required." "$LINENO" 5 - fi else - as_fn_error $? "xml2-config not found. Please check your libxml2 installation." "$LINENO" 5 + as_fn_error $? "libxml2 not found. Please check your libxml2 installation." "$LINENO" 5 fi @@ -86392,18 +86832,20 @@ fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for xml2-config path" >&5 + found_libxml=no + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xml2-config path" >&5 $as_echo_n "checking for xml2-config path... " >&6; } if ${ac_cv_php_xml2_config_path+:} false; then : $as_echo_n "(cached) " >&6 else - for i in $PHP_LIBXML_DIR /usr/local /usr; do - if test -x "$i/bin/xml2-config"; then - ac_cv_php_xml2_config_path="$i/bin/xml2-config" - break - fi - done + for i in $PHP_LIBXML_DIR /usr/local /usr; do + if test -x "$i/bin/xml2-config"; then + ac_cv_php_xml2_config_path="$i/bin/xml2-config" + break + fi + done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_php_xml2_config_path" >&5 @@ -86418,8 +86860,71 @@ IFS=$ac_IFS LIBXML_VERSION=`expr $1 \* 1000000 + $2 \* 1000 + $3` if test "$LIBXML_VERSION" -ge "2006011"; then + found_libxml=yes LIBXML_LIBS=`$XML2_CONFIG --libs` LIBXML_INCS=`$XML2_CONFIG --cflags` + else + as_fn_error $? "libxml2 version 2.6.11 or greater required." "$LINENO" 5 + fi + fi + + if test "$found_libxml" = "no"; then + if test -z "$PKG_CONFIG"; then + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi + + if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists libxml-2.0; then + if $PKG_CONFIG --atleast-version=2.6.11 libxml-2.0; then + found_libxml=yes + LIBXML_LIBS=`$PKG_CONFIG --libs libxml-2.0` + LIBXML_INCS=`$PKG_CONFIG --cflags-only-I libxml-2.0` + else + as_fn_error $? "libxml2 version 2.6.11 or greater required." "$LINENO" 5 + fi + fi + fi + + if test "$found_libxml" = "yes"; then for ac_i in $LIBXML_LIBS; do case $ac_i in @@ -86550,7 +87055,7 @@ done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether libxml build works" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether libxml build works" >&5 $as_echo_n "checking whether libxml build works... " >&6; } if ${php_cv_libxml_build_works+:} false; then : $as_echo_n "(cached) " >&6 @@ -86559,8 +87064,8 @@ old_LIBS=$LIBS LIBS=" - $XMLRPC_SHARED_LIBADD - $LIBS" + $XMLRPC_SHARED_LIBADD + $LIBS" if test "$cross_compiling" = yes; then : LIBS=$old_LIBS @@ -86581,16 +87086,16 @@ LIBS=$old_LIBS - php_cv_libxml_build_works=yes + php_cv_libxml_build_works=yes else LIBS=$old_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - as_fn_error $? "build test failed. Please check the config.log for details." "$LINENO" 5 + as_fn_error $? "build test failed. Please check the config.log for details." "$LINENO" 5 fi @@ -86603,11 +87108,11 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $php_cv_libxml_build_works" >&5 $as_echo "$php_cv_libxml_build_works" >&6; } - if test "$php_cv_libxml_build_works" = "yes"; then + if test "$php_cv_libxml_build_works" = "yes"; then $as_echo "#define HAVE_LIBXML 1" >>confdefs.h - fi + fi if test "$PHP_XML" = "no"; then @@ -86660,11 +87165,8 @@ fi - else - as_fn_error $? "libxml2 version 2.6.11 or greater required." "$LINENO" 5 - fi else - as_fn_error $? "xml2-config not found. Use --with-libxml-dir=" "$LINENO" 5 + as_fn_error $? "libxml2 not found. Use --with-libxml-dir=" "$LINENO" 5 fi @@ -88631,18 +89133,20 @@ fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for xml2-config path" >&5 + found_libxml=no + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xml2-config path" >&5 $as_echo_n "checking for xml2-config path... " >&6; } if ${ac_cv_php_xml2_config_path+:} false; then : $as_echo_n "(cached) " >&6 else - for i in $PHP_LIBXML_DIR /usr/local /usr; do - if test -x "$i/bin/xml2-config"; then - ac_cv_php_xml2_config_path="$i/bin/xml2-config" - break - fi - done + for i in $PHP_LIBXML_DIR /usr/local /usr; do + if test -x "$i/bin/xml2-config"; then + ac_cv_php_xml2_config_path="$i/bin/xml2-config" + break + fi + done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_php_xml2_config_path" >&5 @@ -88657,8 +89161,71 @@ IFS=$ac_IFS LIBXML_VERSION=`expr $1 \* 1000000 + $2 \* 1000 + $3` if test "$LIBXML_VERSION" -ge "2006011"; then + found_libxml=yes LIBXML_LIBS=`$XML2_CONFIG --libs` LIBXML_INCS=`$XML2_CONFIG --cflags` + else + as_fn_error $? "libxml2 version 2.6.11 or greater required." "$LINENO" 5 + fi + fi + + if test "$found_libxml" = "no"; then + if test -z "$PKG_CONFIG"; then + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi + + if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists libxml-2.0; then + if $PKG_CONFIG --atleast-version=2.6.11 libxml-2.0; then + found_libxml=yes + LIBXML_LIBS=`$PKG_CONFIG --libs libxml-2.0` + LIBXML_INCS=`$PKG_CONFIG --cflags-only-I libxml-2.0` + else + as_fn_error $? "libxml2 version 2.6.11 or greater required." "$LINENO" 5 + fi + fi + fi + + if test "$found_libxml" = "yes"; then for ac_i in $LIBXML_LIBS; do case $ac_i in @@ -88789,7 +89356,7 @@ done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether libxml build works" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether libxml build works" >&5 $as_echo_n "checking whether libxml build works... " >&6; } if ${php_cv_libxml_build_works+:} false; then : $as_echo_n "(cached) " >&6 @@ -88798,8 +89365,8 @@ old_LIBS=$LIBS LIBS=" - $XMLWRITER_SHARED_LIBADD - $LIBS" + $XMLWRITER_SHARED_LIBADD + $LIBS" if test "$cross_compiling" = yes; then : LIBS=$old_LIBS @@ -88820,16 +89387,16 @@ LIBS=$old_LIBS - php_cv_libxml_build_works=yes + php_cv_libxml_build_works=yes else LIBS=$old_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - as_fn_error $? "build test failed. Please check the config.log for details." "$LINENO" 5 + as_fn_error $? "build test failed. Please check the config.log for details." "$LINENO" 5 fi @@ -88842,11 +89409,11 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $php_cv_libxml_build_works" >&5 $as_echo "$php_cv_libxml_build_works" >&6; } - if test "$php_cv_libxml_build_works" = "yes"; then + if test "$php_cv_libxml_build_works" = "yes"; then $as_echo "#define HAVE_LIBXML 1" >>confdefs.h - fi + fi $as_echo "#define HAVE_XMLWRITER 1" >>confdefs.h @@ -89104,11 +89671,8 @@ PHP_VAR_SUBST="$PHP_VAR_SUBST XMLWRITER_SHARED_LIBADD" - else - as_fn_error $? "libxml2 version 2.6.11 or greater required." "$LINENO" 5 - fi else - as_fn_error $? "xml2-config not found. Please check your libxml2 installation." "$LINENO" 5 + as_fn_error $? "libxml2 not found. Please check your libxml2 installation." "$LINENO" 5 fi @@ -94608,7 +95172,7 @@ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <>confdefs.h <<_ACEOF #define PHP_BUILD_DATE "$PHP_BUILD_DATE" @@ -96644,7 +97208,7 @@ ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 96647 "configure"' > conftest.$ac_ext + echo '#line 97211 "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -98042,7 +98606,7 @@ LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" cat > conftest.$ac_ext <&5) + (eval echo "\"configure:98767: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "configure:98207: \$? = $ac_status" >&5 + echo "configure:98771: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -98498,11 +99062,11 @@ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"configure:98501: $lt_compile\"" >&5) + (eval echo "\"configure:99065: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "configure:98505: \$? = $ac_status" >&5 + echo "configure:99069: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -98602,11 +99166,11 @@ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"configure:98605: $lt_compile\"" >&5) + (eval echo "\"configure:99169: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "configure:98609: \$? = $ac_status" >&5 + echo "configure:99173: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -99066,7 +99630,7 @@ # Determine the default libpath from the value encoded in an empty executable. cat > conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext <&5) + (eval echo "\"configure:103652: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "configure:103092: \$? = $ac_status" >&5 + echo "configure:103656: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -103189,11 +103753,11 @@ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"configure:103192: $lt_compile\"" >&5) + (eval echo "\"configure:103756: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "configure:103196: \$? = $ac_status" >&5 + echo "configure:103760: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized diff -Nru php7.2-7.2.2/configure.ac php7.2-7.2.3/configure.ac --- php7.2-7.2.2/configure.ac 2018-01-30 10:33:38.000000000 +0000 +++ php7.2-7.2.3/configure.ac 2018-02-27 16:32:59.000000000 +0000 @@ -107,7 +107,7 @@ PHP_MAJOR_VERSION=7 PHP_MINOR_VERSION=2 -PHP_RELEASE_VERSION=2 +PHP_RELEASE_VERSION=3 PHP_EXTRA_VERSION="" PHP_VERSION="$PHP_MAJOR_VERSION.$PHP_MINOR_VERSION.$PHP_RELEASE_VERSION$PHP_EXTRA_VERSION" PHP_VERSION_ID=`expr [$]PHP_MAJOR_VERSION \* 10000 + [$]PHP_MINOR_VERSION \* 100 + [$]PHP_RELEASE_VERSION` @@ -1269,7 +1269,7 @@ EXTRA_LDFLAGS_PROGRAM="$EXTRA_LDFLAGS_PROGRAM $PHP_LDFLAGS" # SOURCE_DATE_EPOCH for reproducible builds https://reproducible-builds.org/specs/source-date-epoch/ -PHP_BUILD_DATE=`date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y-%m-%d` +PHP_BUILD_DATE=`date --utc --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y-%m-%d` AC_DEFINE_UNQUOTED(PHP_BUILD_DATE,"$PHP_BUILD_DATE",[PHP build date]) PHP_UNAME=`uname -a | xargs` diff -Nru php7.2-7.2.2/debian/changelog php7.2-7.2.3/debian/changelog --- php7.2-7.2.2/debian/changelog 2018-02-28 08:43:55.000000000 +0000 +++ php7.2-7.2.3/debian/changelog 2018-03-14 22:03:58.000000000 +0000 @@ -1,3 +1,31 @@ +php7.2 (7.2.3-1ubuntu1) bionic; urgency=medium + + * Merge with Debian unstable (LP: #1744148). Remaining changes: + - Drop dh-php from Recommends to Suggests so it can be demoted to + universe as it depends on xml2/universe. + + -- Nishanth Aravamudan Wed, 14 Mar 2018 15:03:58 -0700 + +php7.2 (7.2.3-1) unstable; urgency=medium + + * New upstream version 7.2.3 + * Rebase patches on top of new upstream release. + + -- Ondřej Surý Tue, 06 Mar 2018 11:15:04 +0000 + +php7.2 (7.2.2-3) unstable; urgency=medium + + * Add explicit libpcre3 >= 2:8.35 dependency as dh_genshlibs is failing + to add versioned dependency for some reason. + + -- Ondřej Surý Tue, 06 Feb 2018 16:07:40 +0000 + +php7.2 (7.2.2-2) unstable; urgency=medium + + * Remove explicit libpcre3 dependency and let dh_genshlibs do its magic + + -- Ondřej Surý Tue, 06 Feb 2018 13:00:04 +0000 + php7.2 (7.2.2-1ubuntu2) bionic; urgency=medium * No-change rebuild against libcurl4 diff -Nru php7.2-7.2.2/debian/control php7.2-7.2.3/debian/control --- php7.2-7.2.2/debian/control 2018-02-07 22:57:57.000000000 +0000 +++ php7.2-7.2.3/debian/control 2018-03-14 22:03:58.000000000 +0000 @@ -45,7 +45,7 @@ libnss-myhostname [linux-any], libonig-dev, libpam0g-dev, - libpcre3-dev (>= 8.20), + libpcre3-dev (>= 2:8.35), libpng-dev, libpq-dev, libpspell-dev, @@ -85,7 +85,7 @@ Section: httpd Architecture: any Depends: libmagic1, - libpcre3 (>= 1:8.20), + libpcre3 (>= 2:8.35), mime-support, php7.2-cli, php7.2-common (= ${binary:Version}), @@ -113,7 +113,7 @@ Package: libphp7.2-embed Architecture: any Depends: libmagic1, - libpcre3 (>= 1:8.20), + libpcre3 (>= 2:8.35), mime-support, php7.2-cli, php7.2-common (= ${binary:Version}), @@ -159,7 +159,7 @@ Package: php7.2-cgi Architecture: any Depends: libmagic1, - libpcre3 (>= 1:8.20), + libpcre3 (>= 2:8.35), mime-support, php7.2-cli, php7.2-common (= ${binary:Version}), @@ -188,7 +188,7 @@ Architecture: any Depends: libedit2 (>= 2.11-20080614-4), libmagic1, - libpcre3 (>= 1:8.20), + libpcre3 (>= 2:8.35), mime-support, php7.2-common (= ${binary:Version}), php7.2-json, @@ -214,7 +214,7 @@ Package: php7.2-dev Depends: autoconf (>= 2.63), automake (>= 1.11), - libpcre3-dev (>= 1:8.20), + libpcre3-dev (>= 2:8.35), libssl-dev, php7.2-cli (>= ${binary:Version}), php7.2-common (= ${binary:Version}), @@ -237,7 +237,7 @@ Package: php7.2-fpm Architecture: any Depends: libmagic1, - libpcre3 (>= 1:8.20), + libpcre3 (>= 2:8.35), mime-support, php7.2-cli, php7.2-common (= ${binary:Version}), @@ -265,7 +265,7 @@ Package: php7.2-phpdbg Architecture: any Depends: libmagic1, - libpcre3 (>= 1:8.20), + libpcre3 (>= 2:8.35), mime-support, php7.2-cli, php7.2-common (= ${binary:Version}), diff -Nru php7.2-7.2.2/debian/control.in php7.2-7.2.3/debian/control.in --- php7.2-7.2.2/debian/control.in 2018-02-07 22:57:57.000000000 +0000 +++ php7.2-7.2.3/debian/control.in 2018-03-14 22:03:58.000000000 +0000 @@ -45,7 +45,7 @@ libnss-myhostname [linux-any], libonig-dev, libpam0g-dev, - libpcre3-dev (>= 8.20), + libpcre3-dev (>= 2:8.35), libpng-dev, libpq-dev, libpspell-dev, @@ -85,7 +85,7 @@ Section: httpd Architecture: any Depends: libmagic1, - libpcre3 (>= 1:8.20), + libpcre3 (>= 2:8.35), mime-support, php@PHP_VERSION@-cli, php@PHP_VERSION@-common (= ${binary:Version}), @@ -113,7 +113,7 @@ Package: libphp@PHP_VERSION@-embed Architecture: any Depends: libmagic1, - libpcre3 (>= 1:8.20), + libpcre3 (>= 2:8.35), mime-support, php@PHP_VERSION@-cli, php@PHP_VERSION@-common (= ${binary:Version}), @@ -159,7 +159,7 @@ Package: php@PHP_VERSION@-cgi Architecture: any Depends: libmagic1, - libpcre3 (>= 1:8.20), + libpcre3 (>= 2:8.35), mime-support, php@PHP_VERSION@-cli, php@PHP_VERSION@-common (= ${binary:Version}), @@ -188,7 +188,7 @@ Architecture: any Depends: libedit2 (>= 2.11-20080614-4), libmagic1, - libpcre3 (>= 1:8.20), + libpcre3 (>= 2:8.35), mime-support, php@PHP_VERSION@-common (= ${binary:Version}), php@PHP_VERSION@-json, @@ -214,7 +214,7 @@ Package: php@PHP_VERSION@-dev Depends: autoconf (>= 2.63), automake (>= 1.11), - libpcre3-dev (>= 1:8.20), + libpcre3-dev (>= 2:8.35), libssl-dev, php@PHP_VERSION@-cli (>= ${binary:Version}), php@PHP_VERSION@-common (= ${binary:Version}), @@ -237,7 +237,7 @@ Package: php@PHP_VERSION@-fpm Architecture: any Depends: libmagic1, - libpcre3 (>= 1:8.20), + libpcre3 (>= 2:8.35), mime-support, php@PHP_VERSION@-cli, php@PHP_VERSION@-common (= ${binary:Version}), @@ -265,7 +265,7 @@ Package: php@PHP_VERSION@-phpdbg Architecture: any Depends: libmagic1, - libpcre3 (>= 1:8.20), + libpcre3 (>= 2:8.35), mime-support, php@PHP_VERSION@-cli, php@PHP_VERSION@-common (= ${binary:Version}), diff -Nru php7.2-7.2.2/debian/patches/0001-libtool_fixes.patch php7.2-7.2.3/debian/patches/0001-libtool_fixes.patch --- php7.2-7.2.2/debian/patches/0001-libtool_fixes.patch 2018-02-07 22:57:58.000000000 +0000 +++ php7.2-7.2.3/debian/patches/0001-libtool_fixes.patch 2018-03-14 22:03:43.000000000 +0000 @@ -22,7 +22,7 @@ dnl TSRM_PTHREAD diff --git a/configure.ac b/configure.ac -index 4aa1034..ddee3c3 100644 +index a002dff..41b7097 100644 --- a/configure.ac +++ b/configure.ac @@ -1401,8 +1401,6 @@ AC_PROVIDE_IFELSE([PHP_REQUIRE_CXX], [], [ diff -Nru php7.2-7.2.2/debian/patches/0002-static_openssl.patch php7.2-7.2.3/debian/patches/0002-static_openssl.patch --- php7.2-7.2.2/debian/patches/0002-static_openssl.patch 2018-02-07 22:57:58.000000000 +0000 +++ php7.2-7.2.3/debian/patches/0002-static_openssl.patch 2018-03-14 22:03:43.000000000 +0000 @@ -7,7 +7,7 @@ 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/acinclude.m4 b/acinclude.m4 -index ff814fb..7b4655b 100644 +index d42d708..e0daeb8 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -2385,9 +2385,7 @@ AC_DEFUN([PHP_SETUP_OPENSSL],[ diff -Nru php7.2-7.2.2/debian/patches/0003-debian_quirks.patch php7.2-7.2.3/debian/patches/0003-debian_quirks.patch --- php7.2-7.2.2/debian/patches/0003-debian_quirks.patch 2018-02-07 22:57:58.000000000 +0000 +++ php7.2-7.2.3/debian/patches/0003-debian_quirks.patch 2018-03-14 22:03:43.000000000 +0000 @@ -14,7 +14,7 @@ 8 files changed, 22 insertions(+), 17 deletions(-) diff --git a/configure.ac b/configure.ac -index ddee3c3..6888d02 100644 +index 41b7097..3b580ee 100644 --- a/configure.ac +++ b/configure.ac @@ -1078,7 +1078,7 @@ if test "$PHP_CLI" = "no"; then diff -Nru php7.2-7.2.2/debian/patches/0007-extension_api.patch php7.2-7.2.3/debian/patches/0007-extension_api.patch --- php7.2-7.2.2/debian/patches/0007-extension_api.patch 2018-02-07 22:57:58.000000000 +0000 +++ php7.2-7.2.3/debian/patches/0007-extension_api.patch 2018-03-14 22:03:43.000000000 +0000 @@ -8,7 +8,7 @@ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac -index 6888d02..95476ca 100644 +index 3b580ee..5785bdce 100644 --- a/configure.ac +++ b/configure.ac @@ -1190,8 +1190,10 @@ ZEND_MODULE_API_NO=`$EGREP '#define ZEND_MODULE_API_NO ' $srcdir/Zend/zend_modul diff -Nru php7.2-7.2.2/debian/patches/0013-Add-support-for-use-of-the-system-timezone-database.patch php7.2-7.2.3/debian/patches/0013-Add-support-for-use-of-the-system-timezone-database.patch --- php7.2-7.2.2/debian/patches/0013-Add-support-for-use-of-the-system-timezone-database.patch 2018-02-07 22:57:58.000000000 +0000 +++ php7.2-7.2.3/debian/patches/0013-Add-support-for-use-of-the-system-timezone-database.patch 2018-03-14 22:03:43.000000000 +0000 @@ -35,7 +35,7 @@ 2 files changed, 546 insertions(+), 3 deletions(-) diff --git a/ext/date/lib/parse_tz.c b/ext/date/lib/parse_tz.c -index 3b68549..7942190 100644 +index 960e528..efd40fe 100644 --- a/ext/date/lib/parse_tz.c +++ b/ext/date/lib/parse_tz.c @@ -25,8 +25,21 @@ @@ -502,8 +502,8 @@ +static int inmem_seek_to_tz_position(const unsigned char **tzf, char *timezone, const timelib_tzdb *tzdb) { int left = 0, right = tzdb->index_size - 1; - #ifdef HAVE_SETLOCALE -@@ -419,9 +859,48 @@ static int seek_to_tz_position(const unsigned char **tzf, char *timezone, const + +@@ -400,9 +840,48 @@ static int seek_to_tz_position(const unsigned char **tzf, char *timezone, const return 0; } @@ -551,8 +551,8 @@ +#endif } - const timelib_tzdb_index_entry *timelib_timezone_identifiers_list(timelib_tzdb *tzdb, int *count) -@@ -433,7 +912,30 @@ const timelib_tzdb_index_entry *timelib_timezone_identifiers_list(timelib_tzdb * + const timelib_tzdb_index_entry *timelib_timezone_identifiers_list(const timelib_tzdb *tzdb, int *count) +@@ -414,7 +893,30 @@ const timelib_tzdb_index_entry *timelib_timezone_identifiers_list(const timelib_ int timelib_timezone_id_is_valid(char *timezone, const timelib_tzdb *tzdb) { const unsigned char *tzf; @@ -584,7 +584,7 @@ } static int skip_64bit_preamble(const unsigned char **tzf, timelib_tzinfo *tz) -@@ -475,12 +977,14 @@ static timelib_tzinfo* timelib_tzinfo_ctor(char *name) +@@ -456,12 +958,14 @@ static timelib_tzinfo* timelib_tzinfo_ctor(char *name) timelib_tzinfo *timelib_parse_tzfile(char *timezone, const timelib_tzdb *tzdb, int *error_code) { const unsigned char *tzf; @@ -600,7 +600,7 @@ tmp = timelib_tzinfo_ctor(timezone); version = read_preamble(&tzf, tmp, &type); -@@ -503,6 +1007,29 @@ timelib_tzinfo *timelib_parse_tzfile(char *timezone, const timelib_tzdb *tzdb, i +@@ -484,6 +988,29 @@ timelib_tzinfo *timelib_parse_tzfile(char *timezone, const timelib_tzdb *tzdb, i timelib_tzinfo_dtor(tmp); return NULL; } @@ -630,7 +630,7 @@ if (version == 2 || version == 3) { if (!skip_64bit_preamble(&tzf, tmp)) { /* 64 bit preamble is not in place */ -@@ -520,6 +1047,9 @@ timelib_tzinfo *timelib_parse_tzfile(char *timezone, const timelib_tzdb *tzdb, i +@@ -501,6 +1028,9 @@ timelib_tzinfo *timelib_parse_tzfile(char *timezone, const timelib_tzdb *tzdb, i } else { set_default_location_and_comments(&tzf, tmp); } diff -Nru php7.2-7.2.2/debian/patches/0023-temporary-path-fixes-for-multiarch.patch php7.2-7.2.3/debian/patches/0023-temporary-path-fixes-for-multiarch.patch --- php7.2-7.2.2/debian/patches/0023-temporary-path-fixes-for-multiarch.patch 2018-02-07 22:57:58.000000000 +0000 +++ php7.2-7.2.3/debian/patches/0023-temporary-path-fixes-for-multiarch.patch 2018-03-14 22:03:43.000000000 +0000 @@ -3,16 +3,16 @@ Subject: temporary-path-fixes-for-multiarch --- - acinclude.m4 | 4 ++-- - ext/dba/config.m4 | 2 +- - ext/gmp/config.m4 | 2 ++ - ext/ldap/config.m4 | 2 +- - ext/pcre/config0.m4 | 2 +- - ext/pdo_dblib/config.m4 | 2 +- - 6 files changed, 8 insertions(+), 6 deletions(-) + acinclude.m4 | 4 ++-- + ext/dba/config.m4 | 2 +- + ext/gmp/config.m4 | 2 ++ + ext/ldap/config.m4 | 22 ++++++++++------------ + ext/pcre/config0.m4 | 2 +- + ext/pdo_dblib/config.m4 | 2 +- + 6 files changed, 17 insertions(+), 17 deletions(-) diff --git a/acinclude.m4 b/acinclude.m4 -index 7b4655b..01ceb89 100644 +index e0daeb8..43292f2 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -2275,7 +2275,7 @@ AC_DEFUN([PHP_SETUP_KERBEROS],[ @@ -67,18 +67,80 @@ PHP_NEW_EXTENSION(gmp, gmp.c, $ext_shared,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1) PHP_SUBST(GMP_SHARED_LIBADD) diff --git a/ext/ldap/config.m4 b/ext/ldap/config.m4 -index 7ea238f..e0c71a6 100644 +index 1a35c94..2a90b56 100644 --- a/ext/ldap/config.m4 +++ b/ext/ldap/config.m4 -@@ -117,7 +117,7 @@ if test "$PHP_LDAP" != "no"; then +@@ -117,16 +117,14 @@ if test "$PHP_LDAP" != "no"; then LDAP_PTHREAD= fi -- if test -f $LDAP_LIBDIR/liblber.a || test -f $LDAP_LIBDIR/liblber.$SHLIB_SUFFIX_NAME; then -+ if test -f $LDAP_LIBDIR/liblber.a || test -f $LDAP_LIBDIR/$DEB_HOST_MULTIARCH/liblber.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/liblber.$SHLIB_SUFFIX_NAME; then +- MACHINE_INCLUDES=$($CC -dumpmachine) +- +- if test -f $LDAP_LIBDIR/liblber.a || test -f $LDAP_LIBDIR/liblber.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/liblber.a || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/liblber.$SHLIB_SUFFIX_NAME; then ++ if test -f $LDAP_LIBDIR/liblber.a || test -f $LDAP_LIBDIR/liblber.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$DEB_HOST_MULTIARCH/liblber.a || test -f $LDAP_LIBDIR/$DEB_HOST_MULTIARCH/liblber.$SHLIB_SUFFIX_NAME; then PHP_ADD_LIBRARY_WITH_PATH(lber, $LDAP_LIBDIR, LDAP_SHARED_LIBADD) PHP_ADD_LIBRARY_WITH_PATH(ldap, $LDAP_LIBDIR, LDAP_SHARED_LIBADD) +- elif test -f $LDAP_LIBDIR/libldap.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/libldap.$SHLIB_SUFFIX_NAME.3 || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libldap.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libldap.$SHLIB_SUFFIX_NAME.3 || test -f $LDAP_LIBDIR/libldap.3.dylib; then ++ elif test -f $LDAP_LIBDIR/libldap.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/libldap.$SHLIB_SUFFIX_NAME.3 || test -f $LDAP_LIBDIR/$DEB_HOST_MULTIARCH/libldap.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$DEB_HOST_MULTIARCH/libldap.$SHLIB_SUFFIX_NAME.3 || test -f $LDAP_LIBDIR/libldap.3.dylib; then + PHP_ADD_LIBRARY_WITH_PATH(ldap, $LDAP_LIBDIR, LDAP_SHARED_LIBADD) + +- elif test -f $LDAP_LIBDIR/libssldap50.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libssldap50.$SHLIB_SUFFIX_NAME; then ++ elif test -f $LDAP_LIBDIR/libssldap50.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$DEB_HOST_MULTIARCH/libssldap50.$SHLIB_SUFFIX_NAME; then + if test -n "$LDAP_PTHREAD"; then + PHP_ADD_LIBRARY($LDAP_PTHREAD) + fi +@@ -139,7 +137,7 @@ if test "$PHP_LDAP" != "no"; then + PHP_ADD_LIBRARY_WITH_PATH(ssl3, $LDAP_LIBDIR, LDAP_SHARED_LIBADD) + AC_DEFINE(HAVE_NSLDAP,1,[ ]) + +- elif test -f $LDAP_LIBDIR/libldapssl41.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libldapssl41.$SHLIB_SUFFIX_NAME; then ++ elif test -f $LDAP_LIBDIR/libldapssl41.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$DEB_HOST_MULTIARCH/libldapssl41.$SHLIB_SUFFIX_NAME; then + if test -n "$LDAP_PTHREAD"; then + PHP_ADD_LIBRARY($LDAP_PTHREAD) + fi +@@ -149,35 +147,35 @@ if test "$PHP_LDAP" != "no"; then + PHP_ADD_LIBRARY_WITH_PATH(ldapssl41, $LDAP_LIBDIR, LDAP_SHARED_LIBADD) + AC_DEFINE(HAVE_NSLDAP,1,[ ]) + +- elif test -f $LDAP_LIBDIR/libldapssl30.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libldapssl30.$SHLIB_SUFFIX_NAME; then ++ elif test -f $LDAP_LIBDIR/libldapssl30.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$DEB_HOST_MULTIARCH/libldapssl30.$SHLIB_SUFFIX_NAME; then + if test -n "$LDAP_PTHREAD"; then + PHP_ADD_LIBRARY($LDAP_PTHREAD) + fi + PHP_ADD_LIBRARY_WITH_PATH(ldapssl30, $LDAP_LIBDIR, LDAP_SHARED_LIBADD) + AC_DEFINE(HAVE_NSLDAP,1,[ ]) + +- elif test -f $LDAP_LIBDIR/libldap30.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libldap30.$SHLIB_SUFFIX_NAME; then ++ elif test -f $LDAP_LIBDIR/libldap30.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$DEB_HOST_MULTIARCH/libldap30.$SHLIB_SUFFIX_NAME; then + if test -n "$LDAP_PTHREAD"; then + PHP_ADD_LIBRARY($LDAP_PTHREAD) + fi + PHP_ADD_LIBRARY_WITH_PATH(ldap30, $LDAP_LIBDIR, LDAP_SHARED_LIBADD) + AC_DEFINE(HAVE_NSLDAP,1,[ ]) + +- elif test -f $LDAP_LIBDIR/libumich_ldap.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libumich_ldap.$SHLIB_SUFFIX_NAME; then ++ elif test -f $LDAP_LIBDIR/libumich_ldap.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$DEB_HOST_MULTIARCH/libumich_ldap.$SHLIB_SUFFIX_NAME; then + PHP_ADD_LIBRARY_WITH_PATH(umich_lber, $LDAP_LIBDIR, LDAP_SHARED_LIBADD) + PHP_ADD_LIBRARY_WITH_PATH(umich_ldap, $LDAP_LIBDIR, LDAP_SHARED_LIBADD) + +- elif test -f $LDAP_LIBDIR/libclntsh.$SHLIB_SUFFIX_NAME.12.1 || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libclntsh.$SHLIB_SUFFIX_NAME.12.1; then ++ elif test -f $LDAP_LIBDIR/libclntsh.$SHLIB_SUFFIX_NAME.12.1 || test -f $LDAP_LIBDIR/$DEB_HOST_MULTIARCH/libclntsh.$SHLIB_SUFFIX_NAME.12.1; then + PHP_ADD_LIBRARY_WITH_PATH(clntsh, $LDAP_LIBDIR, LDAP_SHARED_LIBADD) + AC_DEFINE(HAVE_ORALDAP,1,[ ]) + AC_DEFINE(HAVE_ORALDAP_12,1,[ ]) + +- elif test -f $LDAP_LIBDIR/libclntsh.$SHLIB_SUFFIX_NAME.11.1 || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libclntsh.$SHLIB_SUFFIX_NAME.11.1; then ++ elif test -f $LDAP_LIBDIR/libclntsh.$SHLIB_SUFFIX_NAME.11.1 || test -f $LDAP_LIBDIR/$DEB_HOST_MULTIARCH/libclntsh.$SHLIB_SUFFIX_NAME.11.1; then + PHP_ADD_LIBRARY_WITH_PATH(clntsh, $LDAP_LIBDIR, LDAP_SHARED_LIBADD) + AC_DEFINE(HAVE_ORALDAP,1,[ ]) + AC_DEFINE(HAVE_ORALDAP_11,1,[ ]) + +- elif test -f $LDAP_LIBDIR/libclntsh.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libclntsh.$SHLIB_SUFFIX_NAME; then ++ elif test -f $LDAP_LIBDIR/libclntsh.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$DEB_HOST_MULTIARCH/libclntsh.$SHLIB_SUFFIX_NAME; then + PHP_ADD_LIBRARY_WITH_PATH(clntsh, $LDAP_LIBDIR, LDAP_SHARED_LIBADD) + AC_DEFINE(HAVE_ORALDAP,1,[ ]) + AC_DEFINE(HAVE_ORALDAP_10,1,[ ]) diff --git a/ext/pcre/config0.m4 b/ext/pcre/config0.m4 index 80c8a58..bc60712 100644 --- a/ext/pcre/config0.m4 diff -Nru php7.2-7.2.2/debian/patches/0026-php-5.3.9-gnusrc.patch php7.2-7.2.3/debian/patches/0026-php-5.3.9-gnusrc.patch --- php7.2-7.2.2/debian/patches/0026-php-5.3.9-gnusrc.patch 2018-02-07 22:57:58.000000000 +0000 +++ php7.2-7.2.3/debian/patches/0026-php-5.3.9-gnusrc.patch 2018-03-14 22:03:43.000000000 +0000 @@ -29,7 +29,7 @@ /* +----------------------------------------------------------------------+ diff --git a/configure.ac b/configure.ac -index 95476ca..2db1730 100644 +index 5785bdce..ab2ea74 100644 --- a/configure.ac +++ b/configure.ac @@ -124,6 +124,8 @@ AC_DEFUN([PHP_EXT_DIR],[$config_m4_dir])dnl diff -Nru php7.2-7.2.2/debian/patches/0028-php-5.2.4-norpath.patch php7.2-7.2.3/debian/patches/0028-php-5.2.4-norpath.patch --- php7.2-7.2.2/debian/patches/0028-php-5.2.4-norpath.patch 2018-02-07 22:57:58.000000000 +0000 +++ php7.2-7.2.3/debian/patches/0028-php-5.2.4-norpath.patch 2018-03-14 22:03:43.000000000 +0000 @@ -7,7 +7,7 @@ 1 file changed, 2 insertions(+) diff --git a/acinclude.m4 b/acinclude.m4 -index 01ceb89..dda4607 100644 +index 43292f2..12f2f9c 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -432,6 +432,7 @@ AC_DEFUN([PHP_EVAL_INCLINE],[ diff -Nru php7.2-7.2.2/debian/patches/0032-Use-system-timezone.patch php7.2-7.2.3/debian/patches/0032-Use-system-timezone.patch --- php7.2-7.2.2/debian/patches/0032-Use-system-timezone.patch 2018-02-07 22:57:58.000000000 +0000 +++ php7.2-7.2.3/debian/patches/0032-Use-system-timezone.patch 2018-03-14 22:03:43.000000000 +0000 @@ -14,10 +14,10 @@ 1 file changed, 17 insertions(+) diff --git a/ext/date/php_date.c b/ext/date/php_date.c -index b65675c..590da14 100644 +index 2df19f7..4320617 100644 --- a/ext/date/php_date.c +++ b/ext/date/php_date.c -@@ -1013,6 +1013,23 @@ static char* guess_timezone(const timelib_tzdb *tzdb) +@@ -1014,6 +1014,23 @@ static char* guess_timezone(const timelib_tzdb *tzdb) DATEG(timezone_valid) = 1; return DATEG(default_timezone); } diff -Nru php7.2-7.2.2/debian/patches/0035-php-5.4.8-ldap_r.patch php7.2-7.2.3/debian/patches/0035-php-5.4.8-ldap_r.patch --- php7.2-7.2.2/debian/patches/0035-php-5.4.8-ldap_r.patch 2018-02-07 22:57:58.000000000 +0000 +++ php7.2-7.2.3/debian/patches/0035-php-5.4.8-ldap_r.patch 2018-03-14 22:03:43.000000000 +0000 @@ -8,18 +8,18 @@ 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ext/ldap/config.m4 b/ext/ldap/config.m4 -index e0c71a6..25d66c0 100644 +index 2a90b56..bab9ea5 100644 --- a/ext/ldap/config.m4 +++ b/ext/ldap/config.m4 @@ -117,7 +117,10 @@ if test "$PHP_LDAP" != "no"; then LDAP_PTHREAD= fi -- if test -f $LDAP_LIBDIR/liblber.a || test -f $LDAP_LIBDIR/$DEB_HOST_MULTIARCH/liblber.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/liblber.$SHLIB_SUFFIX_NAME; then -+ if test -f $LDAP_LIBDIR/$DEB_HOST_MULTIARCH/libldap_r.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/libldap_r.$SHLIB_SUFFIX_NAME; then -+ PHP_ADD_LIBRARY_WITH_PATH(lber, $LDAP_LIBDIR, LDAP_SHARED_LIBADD) -+ PHP_ADD_LIBRARY_WITH_PATH(ldap_r, $LDAP_LIBDIR, LDAP_SHARED_LIBADD) -+ elif test -f $LDAP_LIBDIR/$DEB_HOST_MULTIARCH/liblber.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/liblber.$SHLIB_SUFFIX_NAME; then +- if test -f $LDAP_LIBDIR/liblber.a || test -f $LDAP_LIBDIR/liblber.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$DEB_HOST_MULTIARCH/liblber.a || test -f $LDAP_LIBDIR/$DEB_HOST_MULTIARCH/liblber.$SHLIB_SUFFIX_NAME; then ++ if test -f $LDAP_LIBDIR/libldap_r.a || test -f $LDAP_LIBDIR/libldap_r.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$DEB_HOST_MULTIARCH/libldap_r.a || test -f $LDAP_LIBDIR/$DEB_HOST_MULTIARCH/libldap_r.$SHLIB_SUFFIX_NAME; then ++ PHP_ADD_LIBRARY_WITH_PATH(lber, $LDAP_LIBDIR, LDAP_SHARED_LIBADD) ++ PHP_ADD_LIBRARY_WITH_PATH(ldap_r, $LDAP_LIBDIR, LDAP_SHARED_LIBADD) ++ elif test -f $LDAP_LIBDIR/liblber.a || test -f $LDAP_LIBDIR/liblber.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$DEB_HOST_MULTIARCH/liblber.a || test -f $LDAP_LIBDIR/$DEB_HOST_MULTIARCH/liblber.$SHLIB_SUFFIX_NAME; then PHP_ADD_LIBRARY_WITH_PATH(lber, $LDAP_LIBDIR, LDAP_SHARED_LIBADD) PHP_ADD_LIBRARY_WITH_PATH(ldap, $LDAP_LIBDIR, LDAP_SHARED_LIBADD) diff -Nru php7.2-7.2.2/debian/patches/0036-php-5.4.9-fixheader.patch php7.2-7.2.3/debian/patches/0036-php-5.4.9-fixheader.patch --- php7.2-7.2.2/debian/patches/0036-php-5.4.9-fixheader.patch 2018-02-07 22:57:58.000000000 +0000 +++ php7.2-7.2.3/debian/patches/0036-php-5.4.9-fixheader.patch 2018-03-14 22:03:43.000000000 +0000 @@ -8,11 +8,11 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac -index 2db1730..27122c8 100644 +index ab2ea74..6c6a385 100644 --- a/configure.ac +++ b/configure.ac @@ -1279,7 +1279,7 @@ EXTRA_LDFLAGS_PROGRAM="$EXTRA_LDFLAGS_PROGRAM $PHP_LDFLAGS" - PHP_BUILD_DATE=`date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y-%m-%d` + PHP_BUILD_DATE=`date --utc --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y-%m-%d` AC_DEFINE_UNQUOTED(PHP_BUILD_DATE,"$PHP_BUILD_DATE",[PHP build date]) -PHP_UNAME=`uname -a | xargs` diff -Nru php7.2-7.2.2/debian/patches/0044-XMLRPC-EPI-library-has-to-be-linked-as-lxmlrpc-epi.patch php7.2-7.2.3/debian/patches/0044-XMLRPC-EPI-library-has-to-be-linked-as-lxmlrpc-epi.patch --- php7.2-7.2.2/debian/patches/0044-XMLRPC-EPI-library-has-to-be-linked-as-lxmlrpc-epi.patch 2018-02-07 22:57:58.000000000 +0000 +++ php7.2-7.2.3/debian/patches/0044-XMLRPC-EPI-library-has-to-be-linked-as-lxmlrpc-epi.patch 2018-03-14 22:03:43.000000000 +0000 @@ -7,7 +7,7 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext/xmlrpc/config.m4 b/ext/xmlrpc/config.m4 -index f82016e..8b4bd5b 100644 +index 6ed7a63..958a2e7 100644 --- a/ext/xmlrpc/config.m4 +++ b/ext/xmlrpc/config.m4 @@ -116,7 +116,7 @@ dnl for xmlrpc-epi because of this. diff -Nru php7.2-7.2.2/debian/patches/0045-Really-expand-libdir-datadir-into-EXPANDED_LIBDIR-DA.patch php7.2-7.2.3/debian/patches/0045-Really-expand-libdir-datadir-into-EXPANDED_LIBDIR-DA.patch --- php7.2-7.2.2/debian/patches/0045-Really-expand-libdir-datadir-into-EXPANDED_LIBDIR-DA.patch 2018-02-07 22:57:58.000000000 +0000 +++ php7.2-7.2.3/debian/patches/0045-Really-expand-libdir-datadir-into-EXPANDED_LIBDIR-DA.patch 2018-03-14 22:03:43.000000000 +0000 @@ -7,7 +7,7 @@ 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac -index 27122c8..30ab81f 100644 +index 6c6a385..57e84ac 100644 --- a/configure.ac +++ b/configure.ac @@ -1237,9 +1237,9 @@ EXPANDED_LOCALSTATEDIR=`eval echo $localstatedir` diff -Nru php7.2-7.2.2/debian/patches/0046-Fix-ext-date-lib-parse_tz-PATH_MAX-HURD-FTBFS.patch php7.2-7.2.3/debian/patches/0046-Fix-ext-date-lib-parse_tz-PATH_MAX-HURD-FTBFS.patch --- php7.2-7.2.2/debian/patches/0046-Fix-ext-date-lib-parse_tz-PATH_MAX-HURD-FTBFS.patch 2018-02-07 22:57:58.000000000 +0000 +++ php7.2-7.2.3/debian/patches/0046-Fix-ext-date-lib-parse_tz-PATH_MAX-HURD-FTBFS.patch 2018-03-14 22:03:43.000000000 +0000 @@ -7,7 +7,7 @@ 1 file changed, 41 insertions(+), 14 deletions(-) diff --git a/ext/date/lib/parse_tz.c b/ext/date/lib/parse_tz.c -index 7942190..f387fa4 100644 +index efd40fe..21fa866 100644 --- a/ext/date/lib/parse_tz.c +++ b/ext/date/lib/parse_tz.c @@ -499,13 +499,19 @@ static char *parse_iso6709(char *p, double *result) @@ -109,7 +109,7 @@ if (fd == -1) { return NULL; } else if (fstat(fd, &st) != 0 || !is_valid_tzfile(&st, fd)) { -@@ -915,7 +934,9 @@ int timelib_timezone_id_is_valid(char *timezone, const timelib_tzdb *tzdb) +@@ -896,7 +915,9 @@ int timelib_timezone_id_is_valid(char *timezone, const timelib_tzdb *tzdb) #ifdef HAVE_SYSTEM_TZDATA if (tzdb == timezonedb_system) { @@ -120,7 +120,7 @@ struct stat st; if (timezone[0] == '\0' || strstr(timezone, "..") != NULL) { -@@ -929,9 +950,15 @@ int timelib_timezone_id_is_valid(char *timezone, const timelib_tzdb *tzdb) +@@ -910,9 +931,15 @@ int timelib_timezone_id_is_valid(char *timezone, const timelib_tzdb *tzdb) } } diff -Nru php7.2-7.2.2/ext/date/lib/parse_date.c php7.2-7.2.3/ext/date/lib/parse_date.c --- php7.2-7.2.2/ext/date/lib/parse_date.c 2018-01-30 10:33:38.000000000 +0000 +++ php7.2-7.2.3/ext/date/lib/parse_date.c 2018-02-27 16:33:07.000000000 +0000 @@ -1,4 +1,4 @@ -/* Generated by re2c 0.15.3 on Tue Oct 24 13:44:48 2017 */ +/* Generated by re2c 0.15.3 on Wed Jan 31 11:51:51 2018 */ /* * The MIT License (MIT) * @@ -482,7 +482,7 @@ if (isspace(**ptr)) { return; } - if (!strncasecmp(*ptr, "nd", 2) || !strncasecmp(*ptr, "rd", 2) ||!strncasecmp(*ptr, "st", 2) || !strncasecmp(*ptr, "th", 2)) { + if (!timelib_strncasecmp(*ptr, "nd", 2) || !timelib_strncasecmp(*ptr, "rd", 2) ||!timelib_strncasecmp(*ptr, "st", 2) || !timelib_strncasecmp(*ptr, "th", 2)) { *ptr += 2; } } @@ -548,7 +548,7 @@ memcpy(word, begin, end - begin); for (tp = timelib_reltext_lookup; tp->name; tp++) { - if (strcasecmp(word, tp->name) == 0) { + if (timelib_strcasecmp(word, tp->name) == 0) { value = tp->value; *behavior = tp->type; } @@ -581,7 +581,7 @@ memcpy(word, begin, end - begin); for (tp = timelib_month_lookup; tp->name; tp++) { - if (strcasecmp(word, tp->name) == 0) { + if (timelib_strcasecmp(word, tp->name) == 0) { value = tp->value; } } @@ -628,7 +628,7 @@ memcpy(word, begin, end - begin); for (tp = timelib_relunit_lookup; tp->name; tp++) { - if (strcasecmp(word, tp->name) == 0) { + if (timelib_strcasecmp(word, tp->name) == 0) { value = tp; break; } @@ -677,12 +677,12 @@ const timelib_tz_lookup_table *tp, *first_found_elem = NULL; const timelib_tz_lookup_table *fmp; - if (strcasecmp("utc", word) == 0 || strcasecmp("gmt", word) == 0) { + if (timelib_strcasecmp("utc", word) == 0 || timelib_strcasecmp("gmt", word) == 0) { return timelib_timezone_utc; } for (tp = timelib_timezone_lookup; tp->name; tp++) { - if (strcasecmp(word, tp->name) == 0) { + if (timelib_strcasecmp(word, tp->name) == 0) { if (!first_found) { first_found = 1; first_found_elem = tp; diff -Nru php7.2-7.2.2/ext/date/lib/parse_date.re php7.2-7.2.3/ext/date/lib/parse_date.re --- php7.2-7.2.2/ext/date/lib/parse_date.re 2018-01-30 10:33:38.000000000 +0000 +++ php7.2-7.2.3/ext/date/lib/parse_date.re 2018-02-27 16:33:07.000000000 +0000 @@ -481,7 +481,7 @@ if (isspace(**ptr)) { return; } - if (!strncasecmp(*ptr, "nd", 2) || !strncasecmp(*ptr, "rd", 2) ||!strncasecmp(*ptr, "st", 2) || !strncasecmp(*ptr, "th", 2)) { + if (!timelib_strncasecmp(*ptr, "nd", 2) || !timelib_strncasecmp(*ptr, "rd", 2) ||!timelib_strncasecmp(*ptr, "st", 2) || !timelib_strncasecmp(*ptr, "th", 2)) { *ptr += 2; } } @@ -547,7 +547,7 @@ memcpy(word, begin, end - begin); for (tp = timelib_reltext_lookup; tp->name; tp++) { - if (strcasecmp(word, tp->name) == 0) { + if (timelib_strcasecmp(word, tp->name) == 0) { value = tp->value; *behavior = tp->type; } @@ -580,7 +580,7 @@ memcpy(word, begin, end - begin); for (tp = timelib_month_lookup; tp->name; tp++) { - if (strcasecmp(word, tp->name) == 0) { + if (timelib_strcasecmp(word, tp->name) == 0) { value = tp->value; } } @@ -627,7 +627,7 @@ memcpy(word, begin, end - begin); for (tp = timelib_relunit_lookup; tp->name; tp++) { - if (strcasecmp(word, tp->name) == 0) { + if (timelib_strcasecmp(word, tp->name) == 0) { value = tp; break; } @@ -676,12 +676,12 @@ const timelib_tz_lookup_table *tp, *first_found_elem = NULL; const timelib_tz_lookup_table *fmp; - if (strcasecmp("utc", word) == 0 || strcasecmp("gmt", word) == 0) { + if (timelib_strcasecmp("utc", word) == 0 || timelib_strcasecmp("gmt", word) == 0) { return timelib_timezone_utc; } for (tp = timelib_timezone_lookup; tp->name; tp++) { - if (strcasecmp(word, tp->name) == 0) { + if (timelib_strcasecmp(word, tp->name) == 0) { if (!first_found) { first_found = 1; first_found_elem = tp; diff -Nru php7.2-7.2.2/ext/date/lib/parse_iso_intervals.c php7.2-7.2.3/ext/date/lib/parse_iso_intervals.c --- php7.2-7.2.2/ext/date/lib/parse_iso_intervals.c 2018-01-30 10:33:38.000000000 +0000 +++ php7.2-7.2.3/ext/date/lib/parse_iso_intervals.c 2018-02-27 16:33:07.000000000 +0000 @@ -1,4 +1,4 @@ -/* Generated by re2c 0.15.3 on Mon Sep 4 22:44:07 2017 */ +/* Generated by re2c 0.15.3 on Wed Jan 31 11:51:44 2018 */ #line 1 "ext/date/lib/parse_iso_intervals.re" /* * The MIT License (MIT) diff -Nru php7.2-7.2.2/ext/date/lib/parse_tz.c php7.2-7.2.3/ext/date/lib/parse_tz.c --- php7.2-7.2.2/ext/date/lib/parse_tz.c 2018-01-30 10:33:38.000000000 +0000 +++ php7.2-7.2.3/ext/date/lib/parse_tz.c 2018-02-27 16:33:07.000000000 +0000 @@ -377,25 +377,14 @@ static int seek_to_tz_position(const unsigned char **tzf, char *timezone, const timelib_tzdb *tzdb) { int left = 0, right = tzdb->index_size - 1; -#ifdef HAVE_SETLOCALE - char *cur_locale = NULL, *tmp; -#endif if (tzdb->index_size == 0) { return 0; } -#ifdef HAVE_SETLOCALE - tmp = setlocale(LC_CTYPE, NULL); - if (tmp) { - cur_locale = timelib_strdup(tmp); - } - setlocale(LC_CTYPE, "C"); -#endif - do { int mid = ((unsigned)left + right) >> 1; - int cmp = strcasecmp(timezone, tzdb->index[mid].id); + int cmp = timelib_strcasecmp(timezone, tzdb->index[mid].id); if (cmp < 0) { right = mid - 1; @@ -403,19 +392,11 @@ left = mid + 1; } else { /* (cmp == 0) */ (*tzf) = &(tzdb->data[tzdb->index[mid].pos]); -#ifdef HAVE_SETLOCALE - setlocale(LC_CTYPE, cur_locale); - if (cur_locale) timelib_free(cur_locale); -#endif return 1; } } while (left <= right); -#ifdef HAVE_SETLOCALE - setlocale(LC_CTYPE, cur_locale); - if (cur_locale) timelib_free(cur_locale); -#endif return 0; } @@ -424,7 +405,7 @@ return &timezonedb_builtin; } -const timelib_tzdb_index_entry *timelib_timezone_identifiers_list(timelib_tzdb *tzdb, int *count) +const timelib_tzdb_index_entry *timelib_timezone_identifiers_list(const timelib_tzdb *tzdb, int *count) { *count = tzdb->index_size; return tzdb->index; diff -Nru php7.2-7.2.2/ext/date/lib/README.rst php7.2-7.2.3/ext/date/lib/README.rst --- php7.2-7.2.2/ext/date/lib/README.rst 2018-01-30 10:33:38.000000000 +0000 +++ php7.2-7.2.3/ext/date/lib/README.rst 2018-02-27 16:33:07.000000000 +0000 @@ -5,4 +5,5 @@ convert between timezones and parse textual descriptions of date/time information. -It is the library supporting PHP's Date/Time extension. +It is the library supporting PHP's Date/Time extension and MongoDB's time zone +support. diff -Nru php7.2-7.2.2/ext/date/lib/timelib.c php7.2-7.2.3/ext/date/lib/timelib.c --- php7.2-7.2.2/ext/date/lib/timelib.c 2018-01-30 10:33:38.000000000 +0000 +++ php7.2-7.2.3/ext/date/lib/timelib.c 2018-02-27 16:33:07.000000000 +0000 @@ -1,7 +1,7 @@ /* * The MIT License (MIT) * - * Copyright (c) 2015 Derick Rethans + * Copyright (c) 2015-2017 Derick Rethans * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -20,6 +20,12 @@ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. + * + * Portions copyright (c) 1998-2017 Zend Technologies Ltd. + * + * The timelib_strcasecmp and timelib_strncasecmp are taken from PHP's + * Zend/zend_operators.[hc] source files. + * */ #include "timelib.h" @@ -198,6 +204,79 @@ } } +static const unsigned char timelib_tolower_map[256] = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff +}; + +#define timelib_tolower(c) (timelib_tolower_map[(unsigned char)(c)]) +#undef MIN +#undef MAX +#define MAX(a, b) (((a)>(b))?(a):(b)) +#define MIN(a, b) (((a)<(b))?(a):(b)) + +int timelib_strcasecmp(const char *s1, const char *s2) +{ + size_t len; + size_t len1 = strlen(s1); + size_t len2 = strlen(s2); + int c1, c2; + + if (s1 == s2) { + return 0; + } + + len = MIN(len1, len2); + while (len--) { + c1 = timelib_tolower(*(unsigned char *)s1++); + c2 = timelib_tolower(*(unsigned char *)s2++); + if (c1 != c2) { + return c1 - c2; + } + } + + return (int)(len1 - len2); +} + +int timelib_strncasecmp(const char *s1, const char *s2, size_t length) +{ + size_t len; + size_t len1 = strlen(s1); + size_t len2 = strlen(s2); + int c1, c2; + + if (s1 == s2) { + return 0; + } + len = MIN(length, MIN(len1, len2)); + while (len--) { + c1 = timelib_tolower(*(unsigned char *)s1++); + c2 = timelib_tolower(*(unsigned char *)s2++); + if (c1 != c2) { + return c1 - c2; + } + } + + return (int)(MIN(length, len1) - MIN(length, len2)); +} + +#undef MIN +#undef MAX + void timelib_dump_date(timelib_time *d, int options) { if ((options & 2) == 2) { diff -Nru php7.2-7.2.2/ext/date/lib/timelib.h php7.2-7.2.3/ext/date/lib/timelib.h --- php7.2-7.2.2/ext/date/lib/timelib.h 2018-01-30 10:33:38.000000000 +0000 +++ php7.2-7.2.3/ext/date/lib/timelib.h 2018-02-27 16:33:07.000000000 +0000 @@ -310,9 +310,9 @@ # define timelib_free free #endif -#define TIMELIB_VERSION 201705 -#define TIMELIB_EXTENDED_VERSION 20170509 -#define TIMELIB_ASCII_VERSION "2017.05beta9" +#define TIMELIB_VERSION 201706 +#define TIMELIB_EXTENDED_VERSION 20170600 +#define TIMELIB_ASCII_VERSION "2017.06" #define TIMELIB_NONE 0x00 #define TIMELIB_OVERRIDE_TIME 0x01 @@ -661,7 +661,7 @@ * Each entry contains the time zone ID ('id' field), and the position within the time zone * information ('pos' field). The pos field should not be used. */ -const timelib_tzdb_index_entry *timelib_timezone_identifiers_list(timelib_tzdb *tzdb, int *count); +const timelib_tzdb_index_entry *timelib_timezone_identifiers_list(const timelib_tzdb *tzdb, int *count); /* From parse_zoneinfo.c */ diff -Nru php7.2-7.2.2/ext/date/lib/timelib_private.h php7.2-7.2.3/ext/date/lib/timelib_private.h --- php7.2-7.2.2/ext/date/lib/timelib_private.h 2018-01-30 10:33:38.000000000 +0000 +++ php7.2-7.2.3/ext/date/lib/timelib_private.h 2018-02-27 16:33:07.000000000 +0000 @@ -25,10 +25,6 @@ #ifndef __TIMELIB_PRIVATE_H__ #define __TIMELIB_PRIVATE_H__ -#ifdef HAVE_SETLOCALE -# include "locale.h" -#endif - #ifdef HAVE_TIMELIB_CONFIG_H # include "timelib_config.h" #endif @@ -140,19 +136,14 @@ #define LONG_MIN (- LONG_MAX - 1) #endif -#if defined(_MSC_VER) && !defined(strcasecmp) -#define strcasecmp stricmp -#endif - -#if defined(_MSC_VER) && !defined(strncasecmp) -#define strncasecmp strnicmp -#endif - /* From unixtime2tm.c */ int timelib_apply_localtime(timelib_time *t, unsigned int localtime); /* From parse_tz.c */ void timelib_time_tz_abbr_update(timelib_time* tm, char* tz_abbr); +/* From timelib.c */ +int timelib_strcasecmp(const char *s1, const char *s2); +int timelib_strncasecmp(const char *s1, const char *s2, size_t n); #endif diff -Nru php7.2-7.2.2/ext/date/lib/timezonedb.h php7.2-7.2.3/ext/date/lib/timezonedb.h --- php7.2-7.2.2/ext/date/lib/timezonedb.h 2018-01-30 10:33:38.000000000 +0000 +++ php7.2-7.2.3/ext/date/lib/timezonedb.h 2018-02-27 16:33:07.000000000 +0000 @@ -55,554 +55,554 @@ { "Africa/Ouagadougou" , FOR_V2(0x00496F, 0x001F7B) }, { "Africa/Porto-Novo" , FOR_V2(0x004A25, 0x001FD5) }, { "Africa/Sao_Tome" , FOR_V2(0x004ADC, 0x00202F) }, - { "Africa/Timbuktu" , FOR_V2(0x004B92, 0x002089) }, - { "Africa/Tripoli" , FOR_V2(0x004C48, 0x0020E3) }, - { "Africa/Tunis" , FOR_V2(0x004EE3, 0x0021F1) }, - { "Africa/Windhoek" , FOR_V2(0x0051B5, 0x002314) }, - { "America/Adak" , FOR_V2(0x0055C7, 0x0024B1) }, - { "America/Anchorage" , FOR_V2(0x005F20, 0x002832) }, - { "America/Anguilla" , FOR_V2(0x00688B, 0x002BBD) }, - { "America/Antigua" , FOR_V2(0x006941, 0x002C17) }, - { "America/Araguaina" , FOR_V2(0x0069F7, 0x002C71) }, - { "America/Argentina/Buenos_Aires" , FOR_V2(0x006D9A, 0x002DDF) }, - { "America/Argentina/Catamarca" , FOR_V2(0x007210, 0x002FA6) }, - { "America/Argentina/ComodRivadavia" , FOR_V2(0x00768C, 0x003173) }, - { "America/Argentina/Cordoba" , FOR_V2(0x007AED, 0x003325) }, - { "America/Argentina/Jujuy" , FOR_V2(0x007F84, 0x00350D) }, - { "America/Argentina/La_Rioja" , FOR_V2(0x0083D3, 0x0036BF) }, - { "America/Argentina/Mendoza" , FOR_V2(0x00884F, 0x003883) }, - { "America/Argentina/Rio_Gallegos" , FOR_V2(0x008CBC, 0x003A41) }, - { "America/Argentina/Salta" , FOR_V2(0x00912C, 0x003C02) }, - { "America/Argentina/San_Juan" , FOR_V2(0x009587, 0x003DC0) }, - { "America/Argentina/San_Luis" , FOR_V2(0x009A03, 0x003F84) }, - { "America/Argentina/Tucuman" , FOR_V2(0x009E8F, 0x004150) }, - { "America/Argentina/Ushuaia" , FOR_V2(0x00A318, 0x004318) }, - { "America/Aruba" , FOR_V2(0x00A78E, 0x0044DF) }, - { "America/Asuncion" , FOR_V2(0x00A86E, 0x00454C) }, - { "America/Atikokan" , FOR_V2(0x00B097, 0x00484E) }, - { "America/Atka" , FOR_V2(0x00B21D, 0x004912) }, - { "America/Bahia" , FOR_V2(0x00BB66, 0x004C83) }, - { "America/Bahia_Banderas" , FOR_V2(0x00BF91, 0x004E1F) }, - { "America/Barbados" , FOR_V2(0x00C5F1, 0x00509D) }, - { "America/Belem" , FOR_V2(0x00C755, 0x00513C) }, - { "America/Belize" , FOR_V2(0x00C9CD, 0x005245) }, - { "America/Blanc-Sablon" , FOR_V2(0x00CDAB, 0x0053C7) }, - { "America/Boa_Vista" , FOR_V2(0x00CF06, 0x005475) }, - { "America/Bogota" , FOR_V2(0x00D1AB, 0x005587) }, - { "America/Boise" , FOR_V2(0x00D2C6, 0x005608) }, - { "America/Buenos_Aires" , FOR_V2(0x00DC55, 0x0059A7) }, - { "America/Cambridge_Bay" , FOR_V2(0x00E0B6, 0x005B59) }, - { "America/Campo_Grande" , FOR_V2(0x00E908, 0x005E8E) }, - { "America/Cancun" , FOR_V2(0x00F106, 0x006181) }, - { "America/Caracas" , FOR_V2(0x00F466, 0x0062F0) }, - { "America/Catamarca" , FOR_V2(0x00F593, 0x006378) }, - { "America/Cayenne" , FOR_V2(0x00F9F4, 0x00652A) }, - { "America/Cayman" , FOR_V2(0x00FAE0, 0x00659A) }, - { "America/Chicago" , FOR_V2(0x00FBB7, 0x006600) }, - { "America/Chihuahua" , FOR_V2(0x0109D8, 0x006B38) }, - { "America/Coral_Harbour" , FOR_V2(0x010FFC, 0x006DA1) }, - { "America/Cordoba" , FOR_V2(0x011161, 0x006E44) }, - { "America/Costa_Rica" , FOR_V2(0x0115C2, 0x006FF6) }, - { "America/Creston" , FOR_V2(0x011723, 0x007091) }, - { "America/Cuiaba" , FOR_V2(0x01182A, 0x007116) }, - { "America/Curacao" , FOR_V2(0x012005, 0x0073F8) }, - { "America/Danmarkshavn" , FOR_V2(0x0120E5, 0x007465) }, - { "America/Dawson" , FOR_V2(0x0123D3, 0x0075A6) }, - { "America/Dawson_Creek" , FOR_V2(0x012C23, 0x0078D1) }, - { "America/Denver" , FOR_V2(0x013072, 0x007A93) }, - { "America/Detroit" , FOR_V2(0x013A28, 0x007E32) }, - { "America/Dominica" , FOR_V2(0x0142D9, 0x00817D) }, - { "America/Edmonton" , FOR_V2(0x01438F, 0x0081D7) }, - { "America/Eirunepe" , FOR_V2(0x014D1A, 0x00856F) }, - { "America/El_Salvador" , FOR_V2(0x014FE7, 0x008699) }, - { "America/Ensenada" , FOR_V2(0x0150ED, 0x008713) }, - { "America/Fort_Nelson" , FOR_V2(0x015A2D, 0x008A81) }, - { "America/Fort_Wayne" , FOR_V2(0x016316, 0x008DE0) }, - { "America/Fortaleza" , FOR_V2(0x0169AD, 0x00905B) }, - { "America/Glace_Bay" , FOR_V2(0x016CC5, 0x0091AA) }, - { "America/Godthab" , FOR_V2(0x01758A, 0x0094FA) }, - { "America/Goose_Bay" , FOR_V2(0x017D10, 0x0097CF) }, - { "America/Grand_Turk" , FOR_V2(0x0189CF, 0x009C9C) }, - { "America/Grenada" , FOR_V2(0x019134, 0x009F5C) }, - { "America/Guadeloupe" , FOR_V2(0x0191EA, 0x009FB6) }, - { "America/Guatemala" , FOR_V2(0x0192A0, 0x00A010) }, - { "America/Guayaquil" , FOR_V2(0x0193DE, 0x00A09E) }, - { "America/Guyana" , FOR_V2(0x01950B, 0x00A131) }, - { "America/Halifax" , FOR_V2(0x019621, 0x00A1B4) }, - { "America/Havana" , FOR_V2(0x01A3B9, 0x00A6BF) }, - { "America/Hermosillo" , FOR_V2(0x01AD4A, 0x00AA43) }, - { "America/Indiana/Indianapolis" , FOR_V2(0x01AF3B, 0x00AB2E) }, - { "America/Indiana/Knox" , FOR_V2(0x01B5EB, 0x00ADC2) }, - { "America/Indiana/Marengo" , FOR_V2(0x01BF91, 0x00B161) }, - { "America/Indiana/Petersburg" , FOR_V2(0x01C677, 0x00B407) }, - { "America/Indiana/Tell_City" , FOR_V2(0x01CE0F, 0x00B6EA) }, - { "America/Indiana/Vevay" , FOR_V2(0x01D4F6, 0x00B993) }, - { "America/Indiana/Vincennes" , FOR_V2(0x01DAAB, 0x00BBCE) }, - { "America/Indiana/Winamac" , FOR_V2(0x01E17A, 0x00BE6F) }, - { "America/Indianapolis" , FOR_V2(0x01E897, 0x00C128) }, - { "America/Inuvik" , FOR_V2(0x01EF2E, 0x00C3A3) }, - { "America/Iqaluit" , FOR_V2(0x01F6D6, 0x00C689) }, - { "America/Jamaica" , FOR_V2(0x01FEFE, 0x00C9B2) }, - { "America/Jujuy" , FOR_V2(0x020105, 0x00CA88) }, - { "America/Juneau" , FOR_V2(0x02054A, 0x00CC30) }, - { "America/Kentucky/Louisville" , FOR_V2(0x020EA4, 0x00CFB5) }, - { "America/Kentucky/Monticello" , FOR_V2(0x0219AB, 0x00D3D9) }, - { "America/Knox_IN" , FOR_V2(0x022304, 0x00D75D) }, - { "America/Kralendijk" , FOR_V2(0x022C95, 0x00DAE7) }, - { "America/La_Paz" , FOR_V2(0x022D75, 0x00DB54) }, - { "America/Lima" , FOR_V2(0x022E84, 0x00DBD1) }, - { "America/Los_Angeles" , FOR_V2(0x02303F, 0x00DC8A) }, - { "America/Louisville" , FOR_V2(0x023B6F, 0x00E0A7) }, - { "America/Lower_Princes" , FOR_V2(0x024658, 0x00E4AD) }, - { "America/Maceio" , FOR_V2(0x024738, 0x00E51A) }, - { "America/Managua" , FOR_V2(0x024A56, 0x00E65D) }, - { "America/Manaus" , FOR_V2(0x024C31, 0x00E729) }, - { "America/Marigot" , FOR_V2(0x024EC2, 0x00E839) }, - { "America/Martinique" , FOR_V2(0x024F78, 0x00E893) }, - { "America/Matamoros" , FOR_V2(0x025085, 0x00E910) }, - { "America/Mazatlan" , FOR_V2(0x025657, 0x00EB62) }, - { "America/Mendoza" , FOR_V2(0x025CB4, 0x00EDE9) }, - { "America/Menominee" , FOR_V2(0x026115, 0x00EF9B) }, - { "America/Merida" , FOR_V2(0x026A2B, 0x00F30D) }, - { "America/Metlakatla" , FOR_V2(0x027007, 0x00F555) }, - { "America/Mexico_City" , FOR_V2(0x0275B4, 0x00F785) }, - { "America/Miquelon" , FOR_V2(0x027C1E, 0x00F9F4) }, - { "America/Moncton" , FOR_V2(0x0282CA, 0x00FC6E) }, - { "America/Monterrey" , FOR_V2(0x028F49, 0x010111) }, - { "America/Montevideo" , FOR_V2(0x029522, 0x01036A) }, - { "America/Montreal" , FOR_V2(0x029B2F, 0x0105BE) }, - { "America/Montserrat" , FOR_V2(0x02A8EA, 0x010ABF) }, - { "America/Nassau" , FOR_V2(0x02A9A0, 0x010B19) }, - { "America/New_York" , FOR_V2(0x02B298, 0x010E63) }, - { "America/Nipigon" , FOR_V2(0x02C091, 0x011387) }, - { "America/Nome" , FOR_V2(0x02C911, 0x0116BF) }, - { "America/Noronha" , FOR_V2(0x02D272, 0x011A42) }, - { "America/North_Dakota/Beulah" , FOR_V2(0x02D574, 0x011B7B) }, - { "America/North_Dakota/Center" , FOR_V2(0x02DEEA, 0x011F0A) }, - { "America/North_Dakota/New_Salem" , FOR_V2(0x02E860, 0x012299) }, - { "America/Ojinaga" , FOR_V2(0x02F1DC, 0x01262E) }, - { "America/Panama" , FOR_V2(0x02F802, 0x012899) }, - { "America/Pangnirtung" , FOR_V2(0x02F8D9, 0x0128FF) }, - { "America/Paramaribo" , FOR_V2(0x03013B, 0x012C41) }, - { "America/Phoenix" , FOR_V2(0x03026F, 0x012CD1) }, - { "America/Port-au-Prince" , FOR_V2(0x0303F9, 0x012D8D) }, - { "America/Port_of_Spain" , FOR_V2(0x0309B4, 0x012FB4) }, - { "America/Porto_Acre" , FOR_V2(0x030A6A, 0x01300E) }, - { "America/Porto_Velho" , FOR_V2(0x030D0C, 0x01311F) }, - { "America/Puerto_Rico" , FOR_V2(0x030F7A, 0x01321E) }, - { "America/Punta_Arenas" , FOR_V2(0x031085, 0x01329A) }, - { "America/Rainy_River" , FOR_V2(0x03181C, 0x013583) }, - { "America/Rankin_Inlet" , FOR_V2(0x03209D, 0x0138BC) }, - { "America/Recife" , FOR_V2(0x032849, 0x013BA7) }, - { "America/Regina" , FOR_V2(0x032B45, 0x013CDA) }, - { "America/Resolute" , FOR_V2(0x032F48, 0x013E7D) }, - { "America/Rio_Branco" , FOR_V2(0x0336F5, 0x014169) }, - { "America/Rosario" , FOR_V2(0x03399B, 0x01427E) }, - { "America/Santa_Isabel" , FOR_V2(0x033DFC, 0x014430) }, - { "America/Santarem" , FOR_V2(0x03473C, 0x01479E) }, - { "America/Santiago" , FOR_V2(0x0349CB, 0x0148AD) }, - { "America/Santo_Domingo" , FOR_V2(0x0353D3, 0x014C6B) }, - { "America/Sao_Paulo" , FOR_V2(0x0355CA, 0x014D43) }, - { "America/Scoresbysund" , FOR_V2(0x035DEC, 0x01505A) }, - { "America/Shiprock" , FOR_V2(0x03659F, 0x01534A) }, - { "America/Sitka" , FOR_V2(0x036F40, 0x0156D4) }, - { "America/St_Barthelemy" , FOR_V2(0x03788D, 0x015A4C) }, - { "America/St_Johns" , FOR_V2(0x037943, 0x015AA6) }, - { "America/St_Kitts" , FOR_V2(0x0387C1, 0x01600C) }, - { "America/St_Lucia" , FOR_V2(0x038877, 0x016066) }, - { "America/St_Thomas" , FOR_V2(0x03892D, 0x0160C0) }, - { "America/St_Vincent" , FOR_V2(0x0389E3, 0x01611A) }, - { "America/Swift_Current" , FOR_V2(0x038A99, 0x016174) }, - { "America/Tegucigalpa" , FOR_V2(0x038CF5, 0x01627E) }, - { "America/Thule" , FOR_V2(0x038E17, 0x016302) }, - { "America/Thunder_Bay" , FOR_V2(0x039429, 0x01654C) }, - { "America/Tijuana" , FOR_V2(0x039CF2, 0x01689D) }, - { "America/Toronto" , FOR_V2(0x03A653, 0x016C2C) }, - { "America/Tortola" , FOR_V2(0x03B42B, 0x01714A) }, - { "America/Vancouver" , FOR_V2(0x03B4E1, 0x0171A4) }, - { "America/Virgin" , FOR_V2(0x03C05B, 0x0175E7) }, - { "America/Whitehorse" , FOR_V2(0x03C111, 0x017641) }, - { "America/Winnipeg" , FOR_V2(0x03C961, 0x01796C) }, - { "America/Yakutat" , FOR_V2(0x03D4D5, 0x017DB4) }, - { "America/Yellowknife" , FOR_V2(0x03DDFB, 0x01811D) }, - { "Antarctica/Casey" , FOR_V2(0x03E5DA, 0x01841C) }, - { "Antarctica/Davis" , FOR_V2(0x03E725, 0x0184B5) }, - { "Antarctica/DumontDUrville" , FOR_V2(0x03E86D, 0x01854B) }, - { "Antarctica/Macquarie" , FOR_V2(0x03E961, 0x0185C4) }, - { "Antarctica/Mawson" , FOR_V2(0x03EF84, 0x018822) }, - { "Antarctica/McMurdo" , FOR_V2(0x03F077, 0x018898) }, - { "Antarctica/Palmer" , FOR_V2(0x03FA45, 0x018C4D) }, - { "Antarctica/Rothera" , FOR_V2(0x03FFEF, 0x018E7F) }, - { "Antarctica/South_Pole" , FOR_V2(0x0400BC, 0x018EE5) }, - { "Antarctica/Syowa" , FOR_V2(0x040A64, 0x019274) }, - { "Antarctica/Troll" , FOR_V2(0x040B30, 0x0192D8) }, - { "Antarctica/Vostok" , FOR_V2(0x040FD9, 0x01949A) }, - { "Arctic/Longyearbyen" , FOR_V2(0x0410A6, 0x0194FF) }, - { "Asia/Aden" , FOR_V2(0x04197D, 0x019842) }, - { "Asia/Almaty" , FOR_V2(0x041A44, 0x0198A1) }, - { "Asia/Amman" , FOR_V2(0x041E6E, 0x019A59) }, - { "Asia/Anadyr" , FOR_V2(0x0425CF, 0x019D14) }, - { "Asia/Aqtau" , FOR_V2(0x042AB4, 0x019F0D) }, - { "Asia/Aqtobe" , FOR_V2(0x042ECE, 0x01A0BE) }, - { "Asia/Ashgabat" , FOR_V2(0x0432FE, 0x01A274) }, - { "Asia/Ashkhabad" , FOR_V2(0x043595, 0x01A38B) }, - { "Asia/Atyrau" , FOR_V2(0x04382C, 0x01A4A2) }, - { "Asia/Baghdad" , FOR_V2(0x043C4E, 0x01A657) }, - { "Asia/Bahrain" , FOR_V2(0x044046, 0x01A7E2) }, - { "Asia/Baku" , FOR_V2(0x044133, 0x01A852) }, - { "Asia/Bangkok" , FOR_V2(0x044634, 0x01AA48) }, - { "Asia/Barnaul" , FOR_V2(0x04471C, 0x01AAB3) }, - { "Asia/Beirut" , FOR_V2(0x044C1D, 0x01ACB2) }, - { "Asia/Bishkek" , FOR_V2(0x0454A8, 0x01AFD0) }, - { "Asia/Brunei" , FOR_V2(0x0458C9, 0x01B176) }, - { "Asia/Calcutta" , FOR_V2(0x0459BA, 0x01B1E8) }, - { "Asia/Chita" , FOR_V2(0x045AFE, 0x01B270) }, - { "Asia/Choibalsan" , FOR_V2(0x046007, 0x01B478) }, - { "Asia/Chongqing" , FOR_V2(0x046404, 0x01B617) }, - { "Asia/Chungking" , FOR_V2(0x0465AE, 0x01B6C8) }, - { "Asia/Colombo" , FOR_V2(0x046758, 0x01B779) }, - { "Asia/Dacca" , FOR_V2(0x046901, 0x01B836) }, - { "Asia/Damascus" , FOR_V2(0x046A7F, 0x01B8E2) }, - { "Asia/Dhaka" , FOR_V2(0x04739B, 0x01BC37) }, - { "Asia/Dili" , FOR_V2(0x047519, 0x01BCE3) }, - { "Asia/Dubai" , FOR_V2(0x047622, 0x01BD5D) }, - { "Asia/Dushanbe" , FOR_V2(0x0476E9, 0x01BDBC) }, - { "Asia/Famagusta" , FOR_V2(0x047962, 0x01BEC6) }, - { "Asia/Gaza" , FOR_V2(0x048177, 0x01C1D1) }, - { "Asia/Harbin" , FOR_V2(0x048A84, 0x01C52D) }, - { "Asia/Hebron" , FOR_V2(0x048C2E, 0x01C5DE) }, - { "Asia/Ho_Chi_Minh" , FOR_V2(0x049556, 0x01C943) }, - { "Asia/Hong_Kong" , FOR_V2(0x0496E7, 0x01C9F7) }, - { "Asia/Hovd" , FOR_V2(0x049B98, 0x01CBC6) }, - { "Asia/Irkutsk" , FOR_V2(0x049F68, 0x01CD5D) }, - { "Asia/Istanbul" , FOR_V2(0x04A48A, 0x01CF72) }, - { "Asia/Jakarta" , FOR_V2(0x04AD0C, 0x01D2AA) }, - { "Asia/Jayapura" , FOR_V2(0x04AEAD, 0x01D36F) }, - { "Asia/Jerusalem" , FOR_V2(0x04AFEA, 0x01D423) }, - { "Asia/Kabul" , FOR_V2(0x04B8CF, 0x01D76B) }, - { "Asia/Kamchatka" , FOR_V2(0x04B9C0, 0x01D7D8) }, - { "Asia/Karachi" , FOR_V2(0x04BE8C, 0x01D9C4) }, - { "Asia/Kashgar" , FOR_V2(0x04C039, 0x01DA85) }, - { "Asia/Kathmandu" , FOR_V2(0x04C100, 0x01DAE4) }, - { "Asia/Katmandu" , FOR_V2(0x04C1FA, 0x01DB58) }, - { "Asia/Khandyga" , FOR_V2(0x04C2F4, 0x01DBCC) }, - { "Asia/Kolkata" , FOR_V2(0x04C83D, 0x01DDF7) }, - { "Asia/Krasnoyarsk" , FOR_V2(0x04C981, 0x01DE7F) }, - { "Asia/Kuala_Lumpur" , FOR_V2(0x04CE81, 0x01E087) }, - { "Asia/Kuching" , FOR_V2(0x04D049, 0x01E160) }, - { "Asia/Kuwait" , FOR_V2(0x04D26C, 0x01E252) }, - { "Asia/Macao" , FOR_V2(0x04D333, 0x01E2B1) }, - { "Asia/Macau" , FOR_V2(0x04D632, 0x01E3DF) }, - { "Asia/Magadan" , FOR_V2(0x04D931, 0x01E50D) }, - { "Asia/Makassar" , FOR_V2(0x04DE37, 0x01E711) }, - { "Asia/Manila" , FOR_V2(0x04DFAC, 0x01E7E8) }, - { "Asia/Muscat" , FOR_V2(0x04E127, 0x01E886) }, - { "Asia/Nicosia" , FOR_V2(0x04E1EE, 0x01E8E5) }, - { "Asia/Novokuznetsk" , FOR_V2(0x04E9ED, 0x01EBE5) }, - { "Asia/Novosibirsk" , FOR_V2(0x04EEB7, 0x01EDD0) }, - { "Asia/Omsk" , FOR_V2(0x04F3BE, 0x01EFD5) }, - { "Asia/Oral" , FOR_V2(0x04F8B2, 0x01F1D1) }, - { "Asia/Phnom_Penh" , FOR_V2(0x04FCDC, 0x01F385) }, - { "Asia/Pontianak" , FOR_V2(0x04FDC4, 0x01F3F0) }, - { "Asia/Pyongyang" , FOR_V2(0x04FF71, 0x01F4C2) }, - { "Asia/Qatar" , FOR_V2(0x05008D, 0x01F547) }, - { "Asia/Qyzylorda" , FOR_V2(0x05017A, 0x01F5B7) }, - { "Asia/Rangoon" , FOR_V2(0x0505BA, 0x01F77D) }, - { "Asia/Riyadh" , FOR_V2(0x0506EF, 0x01F808) }, - { "Asia/Saigon" , FOR_V2(0x0507B6, 0x01F867) }, - { "Asia/Sakhalin" , FOR_V2(0x050947, 0x01F91B) }, - { "Asia/Samarkand" , FOR_V2(0x050E3D, 0x01FB1B) }, - { "Asia/Seoul" , FOR_V2(0x0510C5, 0x01FC33) }, - { "Asia/Shanghai" , FOR_V2(0x0512E4, 0x01FD19) }, - { "Asia/Singapore" , FOR_V2(0x05149A, 0x01FDD6) }, - { "Asia/Srednekolymsk" , FOR_V2(0x05164E, 0x01FE9B) }, - { "Asia/Taipei" , FOR_V2(0x051B58, 0x0200AC) }, - { "Asia/Tashkent" , FOR_V2(0x051E7A, 0x0201E9) }, - { "Asia/Tbilisi" , FOR_V2(0x052112, 0x020309) }, - { "Asia/Tehran" , FOR_V2(0x052556, 0x0204BC) }, - { "Asia/Tel_Aviv" , FOR_V2(0x052C18, 0x020746) }, - { "Asia/Thimbu" , FOR_V2(0x0534FD, 0x020A8E) }, - { "Asia/Thimphu" , FOR_V2(0x0535EE, 0x020B00) }, - { "Asia/Tokyo" , FOR_V2(0x0536DF, 0x020B72) }, - { "Asia/Tomsk" , FOR_V2(0x053829, 0x020C03) }, - { "Asia/Ujung_Pandang" , FOR_V2(0x053D2A, 0x020E02) }, - { "Asia/Ulaanbaatar" , FOR_V2(0x053E56, 0x020E90) }, - { "Asia/Ulan_Bator" , FOR_V2(0x054210, 0x021011) }, - { "Asia/Urumqi" , FOR_V2(0x0545B5, 0x02117D) }, - { "Asia/Ust-Nera" , FOR_V2(0x054689, 0x0211E9) }, - { "Asia/Vientiane" , FOR_V2(0x054BB3, 0x021401) }, - { "Asia/Vladivostok" , FOR_V2(0x054C9B, 0x02146C) }, - { "Asia/Yakutsk" , FOR_V2(0x055196, 0x02166E) }, - { "Asia/Yangon" , FOR_V2(0x055690, 0x021870) }, - { "Asia/Yekaterinburg" , FOR_V2(0x0557C5, 0x0218FB) }, - { "Asia/Yerevan" , FOR_V2(0x055CE0, 0x021B09) }, - { "Atlantic/Azores" , FOR_V2(0x0561A9, 0x021CEB) }, - { "Atlantic/Bermuda" , FOR_V2(0x056F50, 0x0221F7) }, - { "Atlantic/Canary" , FOR_V2(0x057730, 0x0224DD) }, - { "Atlantic/Cape_Verde" , FOR_V2(0x057EC1, 0x0227B7) }, - { "Atlantic/Faeroe" , FOR_V2(0x057FD9, 0x022839) }, - { "Atlantic/Faroe" , FOR_V2(0x05870A, 0x022AE2) }, - { "Atlantic/Jan_Mayen" , FOR_V2(0x058E3B, 0x022D8B) }, - { "Atlantic/Madeira" , FOR_V2(0x059712, 0x0230CE) }, - { "Atlantic/Reykjavik" , FOR_V2(0x05A4B9, 0x0235E3) }, - { "Atlantic/South_Georgia" , FOR_V2(0x05A969, 0x0237B4) }, - { "Atlantic/St_Helena" , FOR_V2(0x05AA2A, 0x02380E) }, - { "Atlantic/Stanley" , FOR_V2(0x05AAE0, 0x023868) }, - { "Australia/ACT" , FOR_V2(0x05AFCF, 0x023A4F) }, - { "Australia/Adelaide" , FOR_V2(0x05B88A, 0x023D83) }, - { "Australia/Brisbane" , FOR_V2(0x05C163, 0x0240C2) }, - { "Australia/Broken_Hill" , FOR_V2(0x05C34A, 0x02419C) }, - { "Australia/Canberra" , FOR_V2(0x05CC54, 0x0244ED) }, - { "Australia/Currie" , FOR_V2(0x05D50F, 0x024821) }, - { "Australia/Darwin" , FOR_V2(0x05DDE0, 0x024B6B) }, - { "Australia/Eucla" , FOR_V2(0x05DF41, 0x024C04) }, - { "Australia/Hobart" , FOR_V2(0x05E15D, 0x024CF1) }, - { "Australia/LHI" , FOR_V2(0x05EA9D, 0x025062) }, - { "Australia/Lindeman" , FOR_V2(0x05F20A, 0x02531F) }, - { "Australia/Lord_Howe" , FOR_V2(0x05F43F, 0x02541A) }, - { "Australia/Melbourne" , FOR_V2(0x05FBBC, 0x0256E7) }, - { "Australia/North" , FOR_V2(0x06047F, 0x025A23) }, - { "Australia/NSW" , FOR_V2(0x0605CE, 0x025AAA) }, - { "Australia/Perth" , FOR_V2(0x060E89, 0x025DDE) }, - { "Australia/Queensland" , FOR_V2(0x061092, 0x025EC9) }, - { "Australia/South" , FOR_V2(0x061262, 0x025F8C) }, - { "Australia/Sydney" , FOR_V2(0x061B2C, 0x0262BC) }, - { "Australia/Tasmania" , FOR_V2(0x062403, 0x02660C) }, - { "Australia/Victoria" , FOR_V2(0x062D2E, 0x026968) }, - { "Australia/West" , FOR_V2(0x0635E9, 0x026C9C) }, - { "Australia/Yancowinna" , FOR_V2(0x0637D4, 0x026D69) }, - { "Brazil/Acre" , FOR_V2(0x0640C2, 0x02709E) }, - { "Brazil/DeNoronha" , FOR_V2(0x064364, 0x0271AF) }, - { "Brazil/East" , FOR_V2(0x064656, 0x0272D8) }, - { "Brazil/West" , FOR_V2(0x064E42, 0x0275B9) }, - { "Canada/Atlantic" , FOR_V2(0x0650C4, 0x0276BA) }, - { "Canada/Central" , FOR_V2(0x065E3E, 0x027BA7) }, - { "Canada/Eastern" , FOR_V2(0x066995, 0x027FD2) }, - { "Canada/Mountain" , FOR_V2(0x067750, 0x0284D3) }, - { "Canada/Newfoundland" , FOR_V2(0x0680BE, 0x02884E) }, - { "Canada/Pacific" , FOR_V2(0x068F1A, 0x028D92) }, - { "Canada/Saskatchewan" , FOR_V2(0x069A7B, 0x0291BC) }, - { "Canada/Yukon" , FOR_V2(0x069E69, 0x02934A) }, - { "CET" , FOR_V2(0x06A6A2, 0x02965E) }, - { "Chile/Continental" , FOR_V2(0x06AEE4, 0x029967) }, - { "Chile/EasterIsland" , FOR_V2(0x06B8DA, 0x029D13) }, - { "CST6CDT" , FOR_V2(0x06C1A8, 0x02A053) }, - { "Cuba" , FOR_V2(0x06CAAA, 0x02A3A4) }, - { "EET" , FOR_V2(0x06D43B, 0x02A728) }, - { "Egypt" , FOR_V2(0x06DB9B, 0x02A9DB) }, - { "Eire" , FOR_V2(0x06E35B, 0x02ACBB) }, - { "EST" , FOR_V2(0x06F13E, 0x02B1D5) }, - { "EST5EDT" , FOR_V2(0x06F1C9, 0x02B219) }, - { "Etc/GMT" , FOR_V2(0x06FACB, 0x02B56A) }, - { "Etc/GMT+0" , FOR_V2(0x06FB56, 0x02B5AE) }, - { "Etc/GMT+1" , FOR_V2(0x06FBE1, 0x02B5F2) }, - { "Etc/GMT+10" , FOR_V2(0x06FC81, 0x02B640) }, - { "Etc/GMT+11" , FOR_V2(0x06FD22, 0x02B68E) }, - { "Etc/GMT+12" , FOR_V2(0x06FDC3, 0x02B6DC) }, - { "Etc/GMT+2" , FOR_V2(0x06FE64, 0x02B72A) }, - { "Etc/GMT+3" , FOR_V2(0x06FF04, 0x02B778) }, - { "Etc/GMT+4" , FOR_V2(0x06FFA4, 0x02B7C6) }, - { "Etc/GMT+5" , FOR_V2(0x070044, 0x02B814) }, - { "Etc/GMT+6" , FOR_V2(0x0700E4, 0x02B862) }, - { "Etc/GMT+7" , FOR_V2(0x070184, 0x02B8B0) }, - { "Etc/GMT+8" , FOR_V2(0x070224, 0x02B8FE) }, - { "Etc/GMT+9" , FOR_V2(0x0702C4, 0x02B94C) }, - { "Etc/GMT-0" , FOR_V2(0x070364, 0x02B99A) }, - { "Etc/GMT-1" , FOR_V2(0x0703EF, 0x02B9DE) }, - { "Etc/GMT-10" , FOR_V2(0x070490, 0x02BA2C) }, - { "Etc/GMT-11" , FOR_V2(0x070532, 0x02BA7A) }, - { "Etc/GMT-12" , FOR_V2(0x0705D4, 0x02BAC8) }, - { "Etc/GMT-13" , FOR_V2(0x070676, 0x02BB16) }, - { "Etc/GMT-14" , FOR_V2(0x070718, 0x02BB64) }, - { "Etc/GMT-2" , FOR_V2(0x0707BA, 0x02BBB2) }, - { "Etc/GMT-3" , FOR_V2(0x07085B, 0x02BC00) }, - { "Etc/GMT-4" , FOR_V2(0x0708FC, 0x02BC4E) }, - { "Etc/GMT-5" , FOR_V2(0x07099D, 0x02BC9C) }, - { "Etc/GMT-6" , FOR_V2(0x070A3E, 0x02BCEA) }, - { "Etc/GMT-7" , FOR_V2(0x070ADF, 0x02BD38) }, - { "Etc/GMT-8" , FOR_V2(0x070B80, 0x02BD86) }, - { "Etc/GMT-9" , FOR_V2(0x070C21, 0x02BDD4) }, - { "Etc/GMT0" , FOR_V2(0x070CC2, 0x02BE22) }, - { "Etc/Greenwich" , FOR_V2(0x070D4D, 0x02BE66) }, - { "Etc/UCT" , FOR_V2(0x070DD8, 0x02BEAA) }, - { "Etc/Universal" , FOR_V2(0x070E63, 0x02BEEE) }, - { "Etc/UTC" , FOR_V2(0x070EEE, 0x02BF32) }, - { "Etc/Zulu" , FOR_V2(0x070F79, 0x02BF76) }, - { "Europe/Amsterdam" , FOR_V2(0x071004, 0x02BFBA) }, - { "Europe/Andorra" , FOR_V2(0x071B95, 0x02C40C) }, - { "Europe/Astrakhan" , FOR_V2(0x072278, 0x02C699) }, - { "Europe/Athens" , FOR_V2(0x072743, 0x02C885) }, - { "Europe/Belfast" , FOR_V2(0x07302E, 0x02CBD9) }, - { "Europe/Belgrade" , FOR_V2(0x073EA1, 0x02D121) }, - { "Europe/Berlin" , FOR_V2(0x074652, 0x02D3FB) }, - { "Europe/Bratislava" , FOR_V2(0x074F91, 0x02D776) }, - { "Europe/Brussels" , FOR_V2(0x07587D, 0x02DAB9) }, - { "Europe/Bucharest" , FOR_V2(0x076423, 0x02DF01) }, - { "Europe/Budapest" , FOR_V2(0x076CDC, 0x02E23C) }, - { "Europe/Busingen" , FOR_V2(0x07764D, 0x02E5B6) }, - { "Europe/Chisinau" , FOR_V2(0x077DDF, 0x02E87E) }, - { "Europe/Copenhagen" , FOR_V2(0x078778, 0x02EC22) }, - { "Europe/Dublin" , FOR_V2(0x078FF4, 0x02EF3D) }, - { "Europe/Gibraltar" , FOR_V2(0x079DD7, 0x02F457) }, - { "Europe/Guernsey" , FOR_V2(0x07A9D8, 0x02F8BF) }, - { "Europe/Helsinki" , FOR_V2(0x07B84B, 0x02FE07) }, - { "Europe/Isle_of_Man" , FOR_V2(0x07BFCC, 0x0300CE) }, - { "Europe/Istanbul" , FOR_V2(0x07CE3F, 0x030616) }, - { "Europe/Jersey" , FOR_V2(0x07D6C1, 0x03094E) }, - { "Europe/Kaliningrad" , FOR_V2(0x07E534, 0x030E96) }, - { "Europe/Kiev" , FOR_V2(0x07EB42, 0x031107) }, - { "Europe/Kirov" , FOR_V2(0x07F393, 0x03143A) }, - { "Europe/Lisbon" , FOR_V2(0x07F83C, 0x031615) }, - { "Europe/Ljubljana" , FOR_V2(0x0805D8, 0x031B29) }, - { "Europe/London" , FOR_V2(0x080D89, 0x031E03) }, - { "Europe/Luxembourg" , FOR_V2(0x081BFC, 0x03234B) }, - { "Europe/Madrid" , FOR_V2(0x0827A6, 0x0327A6) }, - { "Europe/Malta" , FOR_V2(0x08320F, 0x032B90) }, - { "Europe/Mariehamn" , FOR_V2(0x083C60, 0x032F5A) }, - { "Europe/Minsk" , FOR_V2(0x0843E1, 0x033221) }, - { "Europe/Monaco" , FOR_V2(0x084947, 0x033445) }, - { "Europe/Moscow" , FOR_V2(0x0854DC, 0x033891) }, - { "Europe/Nicosia" , FOR_V2(0x085B04, 0x033B11) }, - { "Europe/Oslo" , FOR_V2(0x0862F0, 0x033DFE) }, - { "Europe/Paris" , FOR_V2(0x086BC7, 0x034141) }, - { "Europe/Podgorica" , FOR_V2(0x08776E, 0x034598) }, - { "Europe/Prague" , FOR_V2(0x087F1F, 0x034872) }, - { "Europe/Riga" , FOR_V2(0x08880B, 0x034BB5) }, - { "Europe/Rome" , FOR_V2(0x0890D2, 0x034F0B) }, - { "Europe/Samara" , FOR_V2(0x089B62, 0x0352E4) }, - { "Europe/San_Marino" , FOR_V2(0x08A06C, 0x0354F3) }, - { "Europe/Sarajevo" , FOR_V2(0x08AAFC, 0x0358CC) }, - { "Europe/Saratov" , FOR_V2(0x08B2AD, 0x035BA6) }, - { "Europe/Simferopol" , FOR_V2(0x08B776, 0x035D90) }, - { "Europe/Skopje" , FOR_V2(0x08BD63, 0x035FF2) }, - { "Europe/Sofia" , FOR_V2(0x08C514, 0x0362CC) }, - { "Europe/Stockholm" , FOR_V2(0x08CD72, 0x0365E5) }, - { "Europe/Tallinn" , FOR_V2(0x08D4FC, 0x0368A5) }, - { "Europe/Tirane" , FOR_V2(0x08DD93, 0x036BEB) }, - { "Europe/Tiraspol" , FOR_V2(0x08E5D1, 0x036EF6) }, - { "Europe/Ulyanovsk" , FOR_V2(0x08EF6A, 0x03729A) }, - { "Europe/Uzhgorod" , FOR_V2(0x08F489, 0x0374AC) }, - { "Europe/Vaduz" , FOR_V2(0x08FCD4, 0x0377D4) }, - { "Europe/Vatican" , FOR_V2(0x09045E, 0x037A94) }, - { "Europe/Vienna" , FOR_V2(0x090EEE, 0x037E6D) }, - { "Europe/Vilnius" , FOR_V2(0x0917B7, 0x0381AB) }, - { "Europe/Volgograd" , FOR_V2(0x09205A, 0x0384FB) }, - { "Europe/Warsaw" , FOR_V2(0x092507, 0x0386DA) }, - { "Europe/Zagreb" , FOR_V2(0x092FA4, 0x038ACC) }, - { "Europe/Zaporozhye" , FOR_V2(0x093755, 0x038DA6) }, - { "Europe/Zurich" , FOR_V2(0x093FD2, 0x0390FA) }, - { "Factory" , FOR_V2(0x09475C, 0x0393BA) }, - { "GB" , FOR_V2(0x0947FC, 0x039408) }, - { "GB-Eire" , FOR_V2(0x09566F, 0x039950) }, - { "GMT" , FOR_V2(0x0964E2, 0x039E98) }, - { "GMT+0" , FOR_V2(0x09656D, 0x039EDC) }, - { "GMT-0" , FOR_V2(0x0965F8, 0x039F20) }, - { "GMT0" , FOR_V2(0x096683, 0x039F64) }, - { "Greenwich" , FOR_V2(0x09670E, 0x039FA8) }, - { "Hongkong" , FOR_V2(0x096799, 0x039FEC) }, - { "HST" , FOR_V2(0x096C4A, 0x03A1BB) }, - { "Iceland" , FOR_V2(0x096CD6, 0x03A1FF) }, - { "Indian/Antananarivo" , FOR_V2(0x097186, 0x03A3D0) }, - { "Indian/Chagos" , FOR_V2(0x0972AF, 0x03A45D) }, - { "Indian/Christmas" , FOR_V2(0x09739C, 0x03A4CD) }, - { "Indian/Cocos" , FOR_V2(0x09745E, 0x03A527) }, - { "Indian/Comoro" , FOR_V2(0x097529, 0x03A583) }, - { "Indian/Kerguelen" , FOR_V2(0x097652, 0x03A610) }, - { "Indian/Mahe" , FOR_V2(0x097719, 0x03A66F) }, - { "Indian/Maldives" , FOR_V2(0x0977E0, 0x03A6CE) }, - { "Indian/Mauritius" , FOR_V2(0x0978C8, 0x03A739) }, - { "Indian/Mayotte" , FOR_V2(0x0979DF, 0x03A7B8) }, - { "Indian/Reunion" , FOR_V2(0x097B08, 0x03A845) }, - { "Iran" , FOR_V2(0x097BCF, 0x03A8A4) }, - { "Israel" , FOR_V2(0x098291, 0x03AB2E) }, - { "Jamaica" , FOR_V2(0x098B76, 0x03AE76) }, - { "Japan" , FOR_V2(0x098D7D, 0x03AF4C) }, - { "Kwajalein" , FOR_V2(0x098EC7, 0x03AFDD) }, - { "Libya" , FOR_V2(0x098FD6, 0x03B059) }, - { "MET" , FOR_V2(0x099271, 0x03B167) }, - { "Mexico/BajaNorte" , FOR_V2(0x099AB3, 0x03B470) }, - { "Mexico/BajaSur" , FOR_V2(0x09A3F3, 0x03B7DE) }, - { "Mexico/General" , FOR_V2(0x09AA1B, 0x03BA30) }, - { "MST" , FOR_V2(0x09B079, 0x03BC93) }, - { "MST7MDT" , FOR_V2(0x09B104, 0x03BCD7) }, - { "Navajo" , FOR_V2(0x09BA06, 0x03C028) }, - { "NZ" , FOR_V2(0x09C3A7, 0x03C3B2) }, - { "NZ-CHAT" , FOR_V2(0x09CD4F, 0x03C741) }, - { "Pacific/Apia" , FOR_V2(0x09D582, 0x03CA41) }, - { "Pacific/Auckland" , FOR_V2(0x09D9FC, 0x03CBF7) }, - { "Pacific/Bougainville" , FOR_V2(0x09E3BC, 0x03CF9E) }, - { "Pacific/Chatham" , FOR_V2(0x09E4FC, 0x03D02C) }, - { "Pacific/Chuuk" , FOR_V2(0x09ED3E, 0x03D33B) }, - { "Pacific/Easter" , FOR_V2(0x09EE10, 0x03D3A4) }, - { "Pacific/Efate" , FOR_V2(0x09F6EB, 0x03D6F1) }, - { "Pacific/Enderbury" , FOR_V2(0x09F8E3, 0x03D7C0) }, - { "Pacific/Fakaofo" , FOR_V2(0x09FA01, 0x03D84B) }, - { "Pacific/Fiji" , FOR_V2(0x09FAEA, 0x03D8B6) }, - { "Pacific/Funafuti" , FOR_V2(0x09FF46, 0x03DA57) }, - { "Pacific/Galapagos" , FOR_V2(0x0A0009, 0x03DAB1) }, - { "Pacific/Gambier" , FOR_V2(0x0A0132, 0x03DB44) }, - { "Pacific/Guadalcanal" , FOR_V2(0x0A0207, 0x03DBB2) }, - { "Pacific/Guam" , FOR_V2(0x0A02CF, 0x03DC11) }, - { "Pacific/Honolulu" , FOR_V2(0x0A03BC, 0x03DC78) }, - { "Pacific/Johnston" , FOR_V2(0x0A04E2, 0x03DD00) }, - { "Pacific/Kiritimati" , FOR_V2(0x0A0602, 0x03DD82) }, - { "Pacific/Kosrae" , FOR_V2(0x0A0721, 0x03DE0C) }, - { "Pacific/Kwajalein" , FOR_V2(0x0A082E, 0x03DE8A) }, - { "Pacific/Majuro" , FOR_V2(0x0A0946, 0x03DF0F) }, - { "Pacific/Marquesas" , FOR_V2(0x0A0A4C, 0x03DF97) }, - { "Pacific/Midway" , FOR_V2(0x0A0B2C, 0x03E009) }, - { "Pacific/Nauru" , FOR_V2(0x0A0C0A, 0x03E079) }, - { "Pacific/Niue" , FOR_V2(0x0A0D30, 0x03E101) }, - { "Pacific/Norfolk" , FOR_V2(0x0A0E46, 0x03E181) }, - { "Pacific/Noumea" , FOR_V2(0x0A0F95, 0x03E219) }, - { "Pacific/Pago_Pago" , FOR_V2(0x0A10E9, 0x03E2B2) }, - { "Pacific/Palau" , FOR_V2(0x0A11B9, 0x03E314) }, - { "Pacific/Pitcairn" , FOR_V2(0x0A127B, 0x03E36E) }, - { "Pacific/Pohnpei" , FOR_V2(0x0A1366, 0x03E3DB) }, - { "Pacific/Ponape" , FOR_V2(0x0A1437, 0x03E443) }, - { "Pacific/Port_Moresby" , FOR_V2(0x0A14FA, 0x03E49D) }, - { "Pacific/Rarotonga" , FOR_V2(0x0A15F1, 0x03E515) }, - { "Pacific/Saipan" , FOR_V2(0x0A1857, 0x03E60D) }, - { "Pacific/Samoa" , FOR_V2(0x0A1944, 0x03E674) }, - { "Pacific/Tahiti" , FOR_V2(0x0A1A14, 0x03E6D6) }, - { "Pacific/Tarawa" , FOR_V2(0x0A1AEA, 0x03E744) }, - { "Pacific/Tongatapu" , FOR_V2(0x0A1BBC, 0x03E7AD) }, - { "Pacific/Truk" , FOR_V2(0x0A1D51, 0x03E85E) }, - { "Pacific/Wake" , FOR_V2(0x0A1E14, 0x03E8B8) }, - { "Pacific/Wallis" , FOR_V2(0x0A1EE2, 0x03E91D) }, - { "Pacific/Yap" , FOR_V2(0x0A1FA5, 0x03E977) }, - { "Poland" , FOR_V2(0x0A2068, 0x03E9D1) }, - { "Portugal" , FOR_V2(0x0A2B05, 0x03EDC3) }, - { "PRC" , FOR_V2(0x0A388E, 0x03F2C4) }, - { "PST8PDT" , FOR_V2(0x0A3A38, 0x03F375) }, - { "ROC" , FOR_V2(0x0A433A, 0x03F6C6) }, - { "ROK" , FOR_V2(0x0A465C, 0x03F803) }, - { "Singapore" , FOR_V2(0x0A487B, 0x03F8E9) }, - { "Turkey" , FOR_V2(0x0A4A2F, 0x03F9AE) }, - { "UCT" , FOR_V2(0x0A52B1, 0x03FCE6) }, - { "Universal" , FOR_V2(0x0A533C, 0x03FD2A) }, - { "US/Alaska" , FOR_V2(0x0A53C7, 0x03FD6E) }, - { "US/Aleutian" , FOR_V2(0x0A5D1F, 0x0400E6) }, - { "US/Arizona" , FOR_V2(0x0A6668, 0x040457) }, - { "US/Central" , FOR_V2(0x0A67D5, 0x0404F6) }, - { "US/East-Indiana" , FOR_V2(0x0A75E2, 0x040A1A) }, - { "US/Eastern" , FOR_V2(0x0A7C79, 0x040C95) }, - { "US/Hawaii" , FOR_V2(0x0A8A5E, 0x0411A5) }, - { "US/Indiana-Starke" , FOR_V2(0x0A8B7E, 0x041227) }, - { "US/Michigan" , FOR_V2(0x0A950F, 0x0415B1) }, - { "US/Mountain" , FOR_V2(0x0A9DA7, 0x0418E3) }, - { "US/Pacific" , FOR_V2(0x0AA748, 0x041C6D) }, - { "US/Pacific-New" , FOR_V2(0x0AB271, 0x042083) }, - { "US/Samoa" , FOR_V2(0x0ABD9A, 0x042499) }, - { "UTC" , FOR_V2(0x0ABE6A, 0x0424FB) }, - { "W-SU" , FOR_V2(0x0ABEF5, 0x04253F) }, - { "WET" , FOR_V2(0x0AC509, 0x0427AB) }, - { "Zulu" , FOR_V2(0x0ACC66, 0x042A5E) }, + { "Africa/Timbuktu" , FOR_V2(0x004BD2, 0x0020A2) }, + { "Africa/Tripoli" , FOR_V2(0x004C88, 0x0020FC) }, + { "Africa/Tunis" , FOR_V2(0x004F23, 0x00220A) }, + { "Africa/Windhoek" , FOR_V2(0x0051F5, 0x00232D) }, + { "America/Adak" , FOR_V2(0x005607, 0x0024CA) }, + { "America/Anchorage" , FOR_V2(0x005F60, 0x00284B) }, + { "America/Anguilla" , FOR_V2(0x0068CB, 0x002BD6) }, + { "America/Antigua" , FOR_V2(0x006981, 0x002C30) }, + { "America/Araguaina" , FOR_V2(0x006A37, 0x002C8A) }, + { "America/Argentina/Buenos_Aires" , FOR_V2(0x006DDA, 0x002DF8) }, + { "America/Argentina/Catamarca" , FOR_V2(0x007250, 0x002FBF) }, + { "America/Argentina/ComodRivadavia" , FOR_V2(0x0076CC, 0x00318C) }, + { "America/Argentina/Cordoba" , FOR_V2(0x007B2D, 0x00333E) }, + { "America/Argentina/Jujuy" , FOR_V2(0x007FC4, 0x003526) }, + { "America/Argentina/La_Rioja" , FOR_V2(0x008413, 0x0036D8) }, + { "America/Argentina/Mendoza" , FOR_V2(0x00888F, 0x00389C) }, + { "America/Argentina/Rio_Gallegos" , FOR_V2(0x008CFC, 0x003A5A) }, + { "America/Argentina/Salta" , FOR_V2(0x00916C, 0x003C1B) }, + { "America/Argentina/San_Juan" , FOR_V2(0x0095C7, 0x003DD9) }, + { "America/Argentina/San_Luis" , FOR_V2(0x009A43, 0x003F9D) }, + { "America/Argentina/Tucuman" , FOR_V2(0x009ECF, 0x004169) }, + { "America/Argentina/Ushuaia" , FOR_V2(0x00A358, 0x004331) }, + { "America/Aruba" , FOR_V2(0x00A7CE, 0x0044F8) }, + { "America/Asuncion" , FOR_V2(0x00A8AE, 0x004565) }, + { "America/Atikokan" , FOR_V2(0x00B0D7, 0x004867) }, + { "America/Atka" , FOR_V2(0x00B25D, 0x00492B) }, + { "America/Bahia" , FOR_V2(0x00BBA6, 0x004C9C) }, + { "America/Bahia_Banderas" , FOR_V2(0x00BFD1, 0x004E38) }, + { "America/Barbados" , FOR_V2(0x00C631, 0x0050B6) }, + { "America/Belem" , FOR_V2(0x00C795, 0x005155) }, + { "America/Belize" , FOR_V2(0x00CA0D, 0x00525E) }, + { "America/Blanc-Sablon" , FOR_V2(0x00CDEB, 0x0053E0) }, + { "America/Boa_Vista" , FOR_V2(0x00CF46, 0x00548E) }, + { "America/Bogota" , FOR_V2(0x00D1EB, 0x0055A0) }, + { "America/Boise" , FOR_V2(0x00D306, 0x005621) }, + { "America/Buenos_Aires" , FOR_V2(0x00DC95, 0x0059C0) }, + { "America/Cambridge_Bay" , FOR_V2(0x00E0F6, 0x005B72) }, + { "America/Campo_Grande" , FOR_V2(0x00E948, 0x005EA7) }, + { "America/Cancun" , FOR_V2(0x00F146, 0x00619A) }, + { "America/Caracas" , FOR_V2(0x00F4A6, 0x006309) }, + { "America/Catamarca" , FOR_V2(0x00F5D3, 0x006391) }, + { "America/Cayenne" , FOR_V2(0x00FA34, 0x006543) }, + { "America/Cayman" , FOR_V2(0x00FB20, 0x0065B3) }, + { "America/Chicago" , FOR_V2(0x00FBF7, 0x006619) }, + { "America/Chihuahua" , FOR_V2(0x010A18, 0x006B51) }, + { "America/Coral_Harbour" , FOR_V2(0x01103C, 0x006DBA) }, + { "America/Cordoba" , FOR_V2(0x0111A1, 0x006E5D) }, + { "America/Costa_Rica" , FOR_V2(0x011602, 0x00700F) }, + { "America/Creston" , FOR_V2(0x011763, 0x0070AA) }, + { "America/Cuiaba" , FOR_V2(0x01186A, 0x00712F) }, + { "America/Curacao" , FOR_V2(0x012045, 0x007411) }, + { "America/Danmarkshavn" , FOR_V2(0x012125, 0x00747E) }, + { "America/Dawson" , FOR_V2(0x012413, 0x0075BF) }, + { "America/Dawson_Creek" , FOR_V2(0x012C63, 0x0078EA) }, + { "America/Denver" , FOR_V2(0x0130B2, 0x007AAC) }, + { "America/Detroit" , FOR_V2(0x013A68, 0x007E4B) }, + { "America/Dominica" , FOR_V2(0x014319, 0x008196) }, + { "America/Edmonton" , FOR_V2(0x0143CF, 0x0081F0) }, + { "America/Eirunepe" , FOR_V2(0x014D5A, 0x008588) }, + { "America/El_Salvador" , FOR_V2(0x015027, 0x0086B2) }, + { "America/Ensenada" , FOR_V2(0x01512D, 0x00872C) }, + { "America/Fort_Nelson" , FOR_V2(0x015A6D, 0x008A9A) }, + { "America/Fort_Wayne" , FOR_V2(0x016356, 0x008DF9) }, + { "America/Fortaleza" , FOR_V2(0x0169ED, 0x009074) }, + { "America/Glace_Bay" , FOR_V2(0x016D05, 0x0091C3) }, + { "America/Godthab" , FOR_V2(0x0175CA, 0x009513) }, + { "America/Goose_Bay" , FOR_V2(0x017D50, 0x0097E8) }, + { "America/Grand_Turk" , FOR_V2(0x018A0F, 0x009CB5) }, + { "America/Grenada" , FOR_V2(0x019174, 0x009F75) }, + { "America/Guadeloupe" , FOR_V2(0x01922A, 0x009FCF) }, + { "America/Guatemala" , FOR_V2(0x0192E0, 0x00A029) }, + { "America/Guayaquil" , FOR_V2(0x01941E, 0x00A0B7) }, + { "America/Guyana" , FOR_V2(0x01954B, 0x00A14A) }, + { "America/Halifax" , FOR_V2(0x019661, 0x00A1CD) }, + { "America/Havana" , FOR_V2(0x01A3F9, 0x00A6D8) }, + { "America/Hermosillo" , FOR_V2(0x01AD8A, 0x00AA5C) }, + { "America/Indiana/Indianapolis" , FOR_V2(0x01AF7B, 0x00AB47) }, + { "America/Indiana/Knox" , FOR_V2(0x01B62B, 0x00ADDB) }, + { "America/Indiana/Marengo" , FOR_V2(0x01BFD1, 0x00B17A) }, + { "America/Indiana/Petersburg" , FOR_V2(0x01C6B7, 0x00B420) }, + { "America/Indiana/Tell_City" , FOR_V2(0x01CE4F, 0x00B703) }, + { "America/Indiana/Vevay" , FOR_V2(0x01D536, 0x00B9AC) }, + { "America/Indiana/Vincennes" , FOR_V2(0x01DAEB, 0x00BBE7) }, + { "America/Indiana/Winamac" , FOR_V2(0x01E1BA, 0x00BE88) }, + { "America/Indianapolis" , FOR_V2(0x01E8D7, 0x00C141) }, + { "America/Inuvik" , FOR_V2(0x01EF6E, 0x00C3BC) }, + { "America/Iqaluit" , FOR_V2(0x01F716, 0x00C6A2) }, + { "America/Jamaica" , FOR_V2(0x01FF3E, 0x00C9CB) }, + { "America/Jujuy" , FOR_V2(0x020145, 0x00CAA1) }, + { "America/Juneau" , FOR_V2(0x02058A, 0x00CC49) }, + { "America/Kentucky/Louisville" , FOR_V2(0x020EE4, 0x00CFCE) }, + { "America/Kentucky/Monticello" , FOR_V2(0x0219EB, 0x00D3F2) }, + { "America/Knox_IN" , FOR_V2(0x022344, 0x00D776) }, + { "America/Kralendijk" , FOR_V2(0x022CD5, 0x00DB00) }, + { "America/La_Paz" , FOR_V2(0x022DB5, 0x00DB6D) }, + { "America/Lima" , FOR_V2(0x022EC2, 0x00DBE9) }, + { "America/Los_Angeles" , FOR_V2(0x02307D, 0x00DCA2) }, + { "America/Louisville" , FOR_V2(0x023BAD, 0x00E0BF) }, + { "America/Lower_Princes" , FOR_V2(0x024696, 0x00E4C5) }, + { "America/Maceio" , FOR_V2(0x024776, 0x00E532) }, + { "America/Managua" , FOR_V2(0x024A94, 0x00E675) }, + { "America/Manaus" , FOR_V2(0x024C6F, 0x00E741) }, + { "America/Marigot" , FOR_V2(0x024F00, 0x00E851) }, + { "America/Martinique" , FOR_V2(0x024FB6, 0x00E8AB) }, + { "America/Matamoros" , FOR_V2(0x0250C3, 0x00E928) }, + { "America/Mazatlan" , FOR_V2(0x025695, 0x00EB7A) }, + { "America/Mendoza" , FOR_V2(0x025CF2, 0x00EE01) }, + { "America/Menominee" , FOR_V2(0x026153, 0x00EFB3) }, + { "America/Merida" , FOR_V2(0x026A69, 0x00F325) }, + { "America/Metlakatla" , FOR_V2(0x027045, 0x00F56D) }, + { "America/Mexico_City" , FOR_V2(0x0275F2, 0x00F79D) }, + { "America/Miquelon" , FOR_V2(0x027C5C, 0x00FA0C) }, + { "America/Moncton" , FOR_V2(0x028308, 0x00FC86) }, + { "America/Monterrey" , FOR_V2(0x028F87, 0x010129) }, + { "America/Montevideo" , FOR_V2(0x029560, 0x010382) }, + { "America/Montreal" , FOR_V2(0x029B6D, 0x0105D6) }, + { "America/Montserrat" , FOR_V2(0x02A928, 0x010AD7) }, + { "America/Nassau" , FOR_V2(0x02A9DE, 0x010B31) }, + { "America/New_York" , FOR_V2(0x02B2D6, 0x010E7B) }, + { "America/Nipigon" , FOR_V2(0x02C0CF, 0x01139F) }, + { "America/Nome" , FOR_V2(0x02C94F, 0x0116D7) }, + { "America/Noronha" , FOR_V2(0x02D2B0, 0x011A5A) }, + { "America/North_Dakota/Beulah" , FOR_V2(0x02D5B2, 0x011B93) }, + { "America/North_Dakota/Center" , FOR_V2(0x02DF28, 0x011F22) }, + { "America/North_Dakota/New_Salem" , FOR_V2(0x02E89E, 0x0122B1) }, + { "America/Ojinaga" , FOR_V2(0x02F21A, 0x012646) }, + { "America/Panama" , FOR_V2(0x02F840, 0x0128B1) }, + { "America/Pangnirtung" , FOR_V2(0x02F917, 0x012917) }, + { "America/Paramaribo" , FOR_V2(0x030179, 0x012C59) }, + { "America/Phoenix" , FOR_V2(0x0302AD, 0x012CE9) }, + { "America/Port-au-Prince" , FOR_V2(0x030437, 0x012DA5) }, + { "America/Port_of_Spain" , FOR_V2(0x0309F2, 0x012FCC) }, + { "America/Porto_Acre" , FOR_V2(0x030AA8, 0x013026) }, + { "America/Porto_Velho" , FOR_V2(0x030D4A, 0x013137) }, + { "America/Puerto_Rico" , FOR_V2(0x030FB8, 0x013236) }, + { "America/Punta_Arenas" , FOR_V2(0x0310C3, 0x0132B2) }, + { "America/Rainy_River" , FOR_V2(0x03185A, 0x01359B) }, + { "America/Rankin_Inlet" , FOR_V2(0x0320DB, 0x0138D4) }, + { "America/Recife" , FOR_V2(0x032887, 0x013BBF) }, + { "America/Regina" , FOR_V2(0x032B83, 0x013CF2) }, + { "America/Resolute" , FOR_V2(0x032F86, 0x013E95) }, + { "America/Rio_Branco" , FOR_V2(0x033733, 0x014181) }, + { "America/Rosario" , FOR_V2(0x0339D9, 0x014296) }, + { "America/Santa_Isabel" , FOR_V2(0x033E3A, 0x014448) }, + { "America/Santarem" , FOR_V2(0x03477A, 0x0147B6) }, + { "America/Santiago" , FOR_V2(0x034A09, 0x0148C5) }, + { "America/Santo_Domingo" , FOR_V2(0x035411, 0x014C83) }, + { "America/Sao_Paulo" , FOR_V2(0x035608, 0x014D5B) }, + { "America/Scoresbysund" , FOR_V2(0x035E2A, 0x015072) }, + { "America/Shiprock" , FOR_V2(0x0365DD, 0x015362) }, + { "America/Sitka" , FOR_V2(0x036F7E, 0x0156EC) }, + { "America/St_Barthelemy" , FOR_V2(0x0378CB, 0x015A64) }, + { "America/St_Johns" , FOR_V2(0x037981, 0x015ABE) }, + { "America/St_Kitts" , FOR_V2(0x0387FF, 0x016024) }, + { "America/St_Lucia" , FOR_V2(0x0388B5, 0x01607E) }, + { "America/St_Thomas" , FOR_V2(0x03896B, 0x0160D8) }, + { "America/St_Vincent" , FOR_V2(0x038A21, 0x016132) }, + { "America/Swift_Current" , FOR_V2(0x038AD7, 0x01618C) }, + { "America/Tegucigalpa" , FOR_V2(0x038D33, 0x016296) }, + { "America/Thule" , FOR_V2(0x038E55, 0x01631A) }, + { "America/Thunder_Bay" , FOR_V2(0x039467, 0x016564) }, + { "America/Tijuana" , FOR_V2(0x039D30, 0x0168B5) }, + { "America/Toronto" , FOR_V2(0x03A691, 0x016C44) }, + { "America/Tortola" , FOR_V2(0x03B469, 0x017162) }, + { "America/Vancouver" , FOR_V2(0x03B51F, 0x0171BC) }, + { "America/Virgin" , FOR_V2(0x03C099, 0x0175FF) }, + { "America/Whitehorse" , FOR_V2(0x03C14F, 0x017659) }, + { "America/Winnipeg" , FOR_V2(0x03C99F, 0x017984) }, + { "America/Yakutat" , FOR_V2(0x03D513, 0x017DCC) }, + { "America/Yellowknife" , FOR_V2(0x03DE39, 0x018135) }, + { "Antarctica/Casey" , FOR_V2(0x03E618, 0x018434) }, + { "Antarctica/Davis" , FOR_V2(0x03E763, 0x0184CD) }, + { "Antarctica/DumontDUrville" , FOR_V2(0x03E8AB, 0x018563) }, + { "Antarctica/Macquarie" , FOR_V2(0x03E99F, 0x0185DC) }, + { "Antarctica/Mawson" , FOR_V2(0x03EFC2, 0x01883A) }, + { "Antarctica/McMurdo" , FOR_V2(0x03F0B5, 0x0188B0) }, + { "Antarctica/Palmer" , FOR_V2(0x03FA83, 0x018C65) }, + { "Antarctica/Rothera" , FOR_V2(0x04002D, 0x018E97) }, + { "Antarctica/South_Pole" , FOR_V2(0x0400FA, 0x018EFD) }, + { "Antarctica/Syowa" , FOR_V2(0x040AA2, 0x01928C) }, + { "Antarctica/Troll" , FOR_V2(0x040B6E, 0x0192F0) }, + { "Antarctica/Vostok" , FOR_V2(0x041017, 0x0194B2) }, + { "Arctic/Longyearbyen" , FOR_V2(0x0410E4, 0x019517) }, + { "Asia/Aden" , FOR_V2(0x0419BB, 0x01985A) }, + { "Asia/Almaty" , FOR_V2(0x041A82, 0x0198B9) }, + { "Asia/Amman" , FOR_V2(0x041EAC, 0x019A71) }, + { "Asia/Anadyr" , FOR_V2(0x04260D, 0x019D2C) }, + { "Asia/Aqtau" , FOR_V2(0x042AF2, 0x019F25) }, + { "Asia/Aqtobe" , FOR_V2(0x042F0C, 0x01A0D6) }, + { "Asia/Ashgabat" , FOR_V2(0x04333C, 0x01A28C) }, + { "Asia/Ashkhabad" , FOR_V2(0x0435D3, 0x01A3A3) }, + { "Asia/Atyrau" , FOR_V2(0x04386A, 0x01A4BA) }, + { "Asia/Baghdad" , FOR_V2(0x043C8C, 0x01A66F) }, + { "Asia/Bahrain" , FOR_V2(0x044084, 0x01A7FA) }, + { "Asia/Baku" , FOR_V2(0x044171, 0x01A86A) }, + { "Asia/Bangkok" , FOR_V2(0x044672, 0x01AA60) }, + { "Asia/Barnaul" , FOR_V2(0x04475A, 0x01AACB) }, + { "Asia/Beirut" , FOR_V2(0x044C5B, 0x01ACCA) }, + { "Asia/Bishkek" , FOR_V2(0x0454E6, 0x01AFE8) }, + { "Asia/Brunei" , FOR_V2(0x045907, 0x01B18E) }, + { "Asia/Calcutta" , FOR_V2(0x0459F8, 0x01B200) }, + { "Asia/Chita" , FOR_V2(0x045B3C, 0x01B288) }, + { "Asia/Choibalsan" , FOR_V2(0x046045, 0x01B490) }, + { "Asia/Chongqing" , FOR_V2(0x046442, 0x01B62F) }, + { "Asia/Chungking" , FOR_V2(0x0465EC, 0x01B6E0) }, + { "Asia/Colombo" , FOR_V2(0x046796, 0x01B791) }, + { "Asia/Dacca" , FOR_V2(0x04693F, 0x01B84E) }, + { "Asia/Damascus" , FOR_V2(0x046ABD, 0x01B8FA) }, + { "Asia/Dhaka" , FOR_V2(0x0473D9, 0x01BC4F) }, + { "Asia/Dili" , FOR_V2(0x047557, 0x01BCFB) }, + { "Asia/Dubai" , FOR_V2(0x047660, 0x01BD75) }, + { "Asia/Dushanbe" , FOR_V2(0x047727, 0x01BDD4) }, + { "Asia/Famagusta" , FOR_V2(0x0479A0, 0x01BEDE) }, + { "Asia/Gaza" , FOR_V2(0x0481B5, 0x01C1E9) }, + { "Asia/Harbin" , FOR_V2(0x048AC2, 0x01C545) }, + { "Asia/Hebron" , FOR_V2(0x048C6C, 0x01C5F6) }, + { "Asia/Ho_Chi_Minh" , FOR_V2(0x049594, 0x01C95B) }, + { "Asia/Hong_Kong" , FOR_V2(0x049725, 0x01CA0F) }, + { "Asia/Hovd" , FOR_V2(0x049BD6, 0x01CBDE) }, + { "Asia/Irkutsk" , FOR_V2(0x049FA6, 0x01CD75) }, + { "Asia/Istanbul" , FOR_V2(0x04A4C8, 0x01CF8A) }, + { "Asia/Jakarta" , FOR_V2(0x04AD4A, 0x01D2C2) }, + { "Asia/Jayapura" , FOR_V2(0x04AEEB, 0x01D387) }, + { "Asia/Jerusalem" , FOR_V2(0x04B028, 0x01D43B) }, + { "Asia/Kabul" , FOR_V2(0x04B90D, 0x01D783) }, + { "Asia/Kamchatka" , FOR_V2(0x04B9FE, 0x01D7F0) }, + { "Asia/Karachi" , FOR_V2(0x04BECA, 0x01D9DC) }, + { "Asia/Kashgar" , FOR_V2(0x04C077, 0x01DA9D) }, + { "Asia/Kathmandu" , FOR_V2(0x04C13E, 0x01DAFC) }, + { "Asia/Katmandu" , FOR_V2(0x04C238, 0x01DB70) }, + { "Asia/Khandyga" , FOR_V2(0x04C332, 0x01DBE4) }, + { "Asia/Kolkata" , FOR_V2(0x04C87B, 0x01DE0F) }, + { "Asia/Krasnoyarsk" , FOR_V2(0x04C9BF, 0x01DE97) }, + { "Asia/Kuala_Lumpur" , FOR_V2(0x04CEBF, 0x01E09F) }, + { "Asia/Kuching" , FOR_V2(0x04D087, 0x01E178) }, + { "Asia/Kuwait" , FOR_V2(0x04D2AA, 0x01E26A) }, + { "Asia/Macao" , FOR_V2(0x04D371, 0x01E2C9) }, + { "Asia/Macau" , FOR_V2(0x04D670, 0x01E3F7) }, + { "Asia/Magadan" , FOR_V2(0x04D96F, 0x01E525) }, + { "Asia/Makassar" , FOR_V2(0x04DE75, 0x01E729) }, + { "Asia/Manila" , FOR_V2(0x04DFEA, 0x01E800) }, + { "Asia/Muscat" , FOR_V2(0x04E165, 0x01E89E) }, + { "Asia/Nicosia" , FOR_V2(0x04E22C, 0x01E8FD) }, + { "Asia/Novokuznetsk" , FOR_V2(0x04EA2B, 0x01EBFD) }, + { "Asia/Novosibirsk" , FOR_V2(0x04EEF5, 0x01EDE8) }, + { "Asia/Omsk" , FOR_V2(0x04F3FC, 0x01EFED) }, + { "Asia/Oral" , FOR_V2(0x04F8F0, 0x01F1E9) }, + { "Asia/Phnom_Penh" , FOR_V2(0x04FD1A, 0x01F39D) }, + { "Asia/Pontianak" , FOR_V2(0x04FE02, 0x01F408) }, + { "Asia/Pyongyang" , FOR_V2(0x04FFAF, 0x01F4DA) }, + { "Asia/Qatar" , FOR_V2(0x0500CB, 0x01F55F) }, + { "Asia/Qyzylorda" , FOR_V2(0x0501B8, 0x01F5CF) }, + { "Asia/Rangoon" , FOR_V2(0x0505F8, 0x01F795) }, + { "Asia/Riyadh" , FOR_V2(0x05072D, 0x01F820) }, + { "Asia/Saigon" , FOR_V2(0x0507F4, 0x01F87F) }, + { "Asia/Sakhalin" , FOR_V2(0x050985, 0x01F933) }, + { "Asia/Samarkand" , FOR_V2(0x050E7B, 0x01FB33) }, + { "Asia/Seoul" , FOR_V2(0x051103, 0x01FC4B) }, + { "Asia/Shanghai" , FOR_V2(0x051322, 0x01FD31) }, + { "Asia/Singapore" , FOR_V2(0x0514D8, 0x01FDEE) }, + { "Asia/Srednekolymsk" , FOR_V2(0x05168C, 0x01FEB3) }, + { "Asia/Taipei" , FOR_V2(0x051B96, 0x0200C4) }, + { "Asia/Tashkent" , FOR_V2(0x051EB8, 0x020201) }, + { "Asia/Tbilisi" , FOR_V2(0x052150, 0x020321) }, + { "Asia/Tehran" , FOR_V2(0x052594, 0x0204D4) }, + { "Asia/Tel_Aviv" , FOR_V2(0x052C56, 0x02075E) }, + { "Asia/Thimbu" , FOR_V2(0x05353B, 0x020AA6) }, + { "Asia/Thimphu" , FOR_V2(0x05362C, 0x020B18) }, + { "Asia/Tokyo" , FOR_V2(0x05371D, 0x020B8A) }, + { "Asia/Tomsk" , FOR_V2(0x053867, 0x020C1B) }, + { "Asia/Ujung_Pandang" , FOR_V2(0x053D68, 0x020E1A) }, + { "Asia/Ulaanbaatar" , FOR_V2(0x053E94, 0x020EA8) }, + { "Asia/Ulan_Bator" , FOR_V2(0x05424E, 0x021029) }, + { "Asia/Urumqi" , FOR_V2(0x0545F3, 0x021195) }, + { "Asia/Ust-Nera" , FOR_V2(0x0546C7, 0x021201) }, + { "Asia/Vientiane" , FOR_V2(0x054BF1, 0x021419) }, + { "Asia/Vladivostok" , FOR_V2(0x054CD9, 0x021484) }, + { "Asia/Yakutsk" , FOR_V2(0x0551D4, 0x021686) }, + { "Asia/Yangon" , FOR_V2(0x0556CE, 0x021888) }, + { "Asia/Yekaterinburg" , FOR_V2(0x055803, 0x021913) }, + { "Asia/Yerevan" , FOR_V2(0x055D1E, 0x021B21) }, + { "Atlantic/Azores" , FOR_V2(0x0561E7, 0x021D03) }, + { "Atlantic/Bermuda" , FOR_V2(0x056F8E, 0x02220F) }, + { "Atlantic/Canary" , FOR_V2(0x05776E, 0x0224F5) }, + { "Atlantic/Cape_Verde" , FOR_V2(0x057EFF, 0x0227CF) }, + { "Atlantic/Faeroe" , FOR_V2(0x058017, 0x022851) }, + { "Atlantic/Faroe" , FOR_V2(0x058748, 0x022AFA) }, + { "Atlantic/Jan_Mayen" , FOR_V2(0x058E79, 0x022DA3) }, + { "Atlantic/Madeira" , FOR_V2(0x059750, 0x0230E6) }, + { "Atlantic/Reykjavik" , FOR_V2(0x05A4F7, 0x0235FB) }, + { "Atlantic/South_Georgia" , FOR_V2(0x05A9A7, 0x0237CC) }, + { "Atlantic/St_Helena" , FOR_V2(0x05AA68, 0x023826) }, + { "Atlantic/Stanley" , FOR_V2(0x05AB1E, 0x023880) }, + { "Australia/ACT" , FOR_V2(0x05B00D, 0x023A67) }, + { "Australia/Adelaide" , FOR_V2(0x05B8C8, 0x023D9B) }, + { "Australia/Brisbane" , FOR_V2(0x05C1A1, 0x0240DA) }, + { "Australia/Broken_Hill" , FOR_V2(0x05C388, 0x0241B4) }, + { "Australia/Canberra" , FOR_V2(0x05CC92, 0x024505) }, + { "Australia/Currie" , FOR_V2(0x05D54D, 0x024839) }, + { "Australia/Darwin" , FOR_V2(0x05DE1E, 0x024B83) }, + { "Australia/Eucla" , FOR_V2(0x05DF7F, 0x024C1C) }, + { "Australia/Hobart" , FOR_V2(0x05E19B, 0x024D09) }, + { "Australia/LHI" , FOR_V2(0x05EADB, 0x02507A) }, + { "Australia/Lindeman" , FOR_V2(0x05F248, 0x025337) }, + { "Australia/Lord_Howe" , FOR_V2(0x05F47D, 0x025432) }, + { "Australia/Melbourne" , FOR_V2(0x05FBFA, 0x0256FF) }, + { "Australia/North" , FOR_V2(0x0604BD, 0x025A3B) }, + { "Australia/NSW" , FOR_V2(0x06060C, 0x025AC2) }, + { "Australia/Perth" , FOR_V2(0x060EC7, 0x025DF6) }, + { "Australia/Queensland" , FOR_V2(0x0610D0, 0x025EE1) }, + { "Australia/South" , FOR_V2(0x0612A0, 0x025FA4) }, + { "Australia/Sydney" , FOR_V2(0x061B6A, 0x0262D4) }, + { "Australia/Tasmania" , FOR_V2(0x062441, 0x026624) }, + { "Australia/Victoria" , FOR_V2(0x062D6C, 0x026980) }, + { "Australia/West" , FOR_V2(0x063627, 0x026CB4) }, + { "Australia/Yancowinna" , FOR_V2(0x063812, 0x026D81) }, + { "Brazil/Acre" , FOR_V2(0x064100, 0x0270B6) }, + { "Brazil/DeNoronha" , FOR_V2(0x0643A2, 0x0271C7) }, + { "Brazil/East" , FOR_V2(0x064694, 0x0272F0) }, + { "Brazil/West" , FOR_V2(0x064E80, 0x0275D1) }, + { "Canada/Atlantic" , FOR_V2(0x065102, 0x0276D2) }, + { "Canada/Central" , FOR_V2(0x065E7C, 0x027BBF) }, + { "Canada/Eastern" , FOR_V2(0x0669D3, 0x027FEA) }, + { "Canada/Mountain" , FOR_V2(0x06778E, 0x0284EB) }, + { "Canada/Newfoundland" , FOR_V2(0x0680FC, 0x028866) }, + { "Canada/Pacific" , FOR_V2(0x068F58, 0x028DAA) }, + { "Canada/Saskatchewan" , FOR_V2(0x069AB9, 0x0291D4) }, + { "Canada/Yukon" , FOR_V2(0x069EA7, 0x029362) }, + { "CET" , FOR_V2(0x06A6E0, 0x029676) }, + { "Chile/Continental" , FOR_V2(0x06AF22, 0x02997F) }, + { "Chile/EasterIsland" , FOR_V2(0x06B918, 0x029D2B) }, + { "CST6CDT" , FOR_V2(0x06C1E6, 0x02A06B) }, + { "Cuba" , FOR_V2(0x06CAE8, 0x02A3BC) }, + { "EET" , FOR_V2(0x06D479, 0x02A740) }, + { "Egypt" , FOR_V2(0x06DBD9, 0x02A9F3) }, + { "Eire" , FOR_V2(0x06E399, 0x02ACD3) }, + { "EST" , FOR_V2(0x06F17C, 0x02B1ED) }, + { "EST5EDT" , FOR_V2(0x06F207, 0x02B231) }, + { "Etc/GMT" , FOR_V2(0x06FB09, 0x02B582) }, + { "Etc/GMT+0" , FOR_V2(0x06FB94, 0x02B5C6) }, + { "Etc/GMT+1" , FOR_V2(0x06FC1F, 0x02B60A) }, + { "Etc/GMT+10" , FOR_V2(0x06FCBF, 0x02B658) }, + { "Etc/GMT+11" , FOR_V2(0x06FD60, 0x02B6A6) }, + { "Etc/GMT+12" , FOR_V2(0x06FE01, 0x02B6F4) }, + { "Etc/GMT+2" , FOR_V2(0x06FEA2, 0x02B742) }, + { "Etc/GMT+3" , FOR_V2(0x06FF42, 0x02B790) }, + { "Etc/GMT+4" , FOR_V2(0x06FFE2, 0x02B7DE) }, + { "Etc/GMT+5" , FOR_V2(0x070082, 0x02B82C) }, + { "Etc/GMT+6" , FOR_V2(0x070122, 0x02B87A) }, + { "Etc/GMT+7" , FOR_V2(0x0701C2, 0x02B8C8) }, + { "Etc/GMT+8" , FOR_V2(0x070262, 0x02B916) }, + { "Etc/GMT+9" , FOR_V2(0x070302, 0x02B964) }, + { "Etc/GMT-0" , FOR_V2(0x0703A2, 0x02B9B2) }, + { "Etc/GMT-1" , FOR_V2(0x07042D, 0x02B9F6) }, + { "Etc/GMT-10" , FOR_V2(0x0704CE, 0x02BA44) }, + { "Etc/GMT-11" , FOR_V2(0x070570, 0x02BA92) }, + { "Etc/GMT-12" , FOR_V2(0x070612, 0x02BAE0) }, + { "Etc/GMT-13" , FOR_V2(0x0706B4, 0x02BB2E) }, + { "Etc/GMT-14" , FOR_V2(0x070756, 0x02BB7C) }, + { "Etc/GMT-2" , FOR_V2(0x0707F8, 0x02BBCA) }, + { "Etc/GMT-3" , FOR_V2(0x070899, 0x02BC18) }, + { "Etc/GMT-4" , FOR_V2(0x07093A, 0x02BC66) }, + { "Etc/GMT-5" , FOR_V2(0x0709DB, 0x02BCB4) }, + { "Etc/GMT-6" , FOR_V2(0x070A7C, 0x02BD02) }, + { "Etc/GMT-7" , FOR_V2(0x070B1D, 0x02BD50) }, + { "Etc/GMT-8" , FOR_V2(0x070BBE, 0x02BD9E) }, + { "Etc/GMT-9" , FOR_V2(0x070C5F, 0x02BDEC) }, + { "Etc/GMT0" , FOR_V2(0x070D00, 0x02BE3A) }, + { "Etc/Greenwich" , FOR_V2(0x070D8B, 0x02BE7E) }, + { "Etc/UCT" , FOR_V2(0x070E16, 0x02BEC2) }, + { "Etc/Universal" , FOR_V2(0x070EA1, 0x02BF06) }, + { "Etc/UTC" , FOR_V2(0x070F2C, 0x02BF4A) }, + { "Etc/Zulu" , FOR_V2(0x070FB7, 0x02BF8E) }, + { "Europe/Amsterdam" , FOR_V2(0x071042, 0x02BFD2) }, + { "Europe/Andorra" , FOR_V2(0x071BD3, 0x02C424) }, + { "Europe/Astrakhan" , FOR_V2(0x0722B6, 0x02C6B1) }, + { "Europe/Athens" , FOR_V2(0x072781, 0x02C89D) }, + { "Europe/Belfast" , FOR_V2(0x07306C, 0x02CBF1) }, + { "Europe/Belgrade" , FOR_V2(0x073EDF, 0x02D139) }, + { "Europe/Berlin" , FOR_V2(0x074690, 0x02D413) }, + { "Europe/Bratislava" , FOR_V2(0x074FCF, 0x02D78E) }, + { "Europe/Brussels" , FOR_V2(0x0758BB, 0x02DAD1) }, + { "Europe/Bucharest" , FOR_V2(0x076461, 0x02DF19) }, + { "Europe/Budapest" , FOR_V2(0x076D1A, 0x02E254) }, + { "Europe/Busingen" , FOR_V2(0x07768B, 0x02E5CE) }, + { "Europe/Chisinau" , FOR_V2(0x077E1D, 0x02E896) }, + { "Europe/Copenhagen" , FOR_V2(0x0787B6, 0x02EC3A) }, + { "Europe/Dublin" , FOR_V2(0x079032, 0x02EF55) }, + { "Europe/Gibraltar" , FOR_V2(0x079E15, 0x02F46F) }, + { "Europe/Guernsey" , FOR_V2(0x07AA16, 0x02F8D7) }, + { "Europe/Helsinki" , FOR_V2(0x07B889, 0x02FE1F) }, + { "Europe/Isle_of_Man" , FOR_V2(0x07C00A, 0x0300E6) }, + { "Europe/Istanbul" , FOR_V2(0x07CE7D, 0x03062E) }, + { "Europe/Jersey" , FOR_V2(0x07D6FF, 0x030966) }, + { "Europe/Kaliningrad" , FOR_V2(0x07E572, 0x030EAE) }, + { "Europe/Kiev" , FOR_V2(0x07EB80, 0x03111F) }, + { "Europe/Kirov" , FOR_V2(0x07F3D1, 0x031452) }, + { "Europe/Lisbon" , FOR_V2(0x07F87A, 0x03162D) }, + { "Europe/Ljubljana" , FOR_V2(0x080616, 0x031B41) }, + { "Europe/London" , FOR_V2(0x080DC7, 0x031E1B) }, + { "Europe/Luxembourg" , FOR_V2(0x081C3A, 0x032363) }, + { "Europe/Madrid" , FOR_V2(0x0827E4, 0x0327BE) }, + { "Europe/Malta" , FOR_V2(0x08324D, 0x032BA8) }, + { "Europe/Mariehamn" , FOR_V2(0x083C9E, 0x032F72) }, + { "Europe/Minsk" , FOR_V2(0x08441F, 0x033239) }, + { "Europe/Monaco" , FOR_V2(0x084985, 0x03345D) }, + { "Europe/Moscow" , FOR_V2(0x08551A, 0x0338A9) }, + { "Europe/Nicosia" , FOR_V2(0x085B42, 0x033B29) }, + { "Europe/Oslo" , FOR_V2(0x08632E, 0x033E16) }, + { "Europe/Paris" , FOR_V2(0x086C05, 0x034159) }, + { "Europe/Podgorica" , FOR_V2(0x0877AC, 0x0345B0) }, + { "Europe/Prague" , FOR_V2(0x087F5D, 0x03488A) }, + { "Europe/Riga" , FOR_V2(0x088849, 0x034BCD) }, + { "Europe/Rome" , FOR_V2(0x089110, 0x034F23) }, + { "Europe/Samara" , FOR_V2(0x089BA0, 0x0352FC) }, + { "Europe/San_Marino" , FOR_V2(0x08A0AA, 0x03550B) }, + { "Europe/Sarajevo" , FOR_V2(0x08AB3A, 0x0358E4) }, + { "Europe/Saratov" , FOR_V2(0x08B2EB, 0x035BBE) }, + { "Europe/Simferopol" , FOR_V2(0x08B7B4, 0x035DA8) }, + { "Europe/Skopje" , FOR_V2(0x08BDA1, 0x03600A) }, + { "Europe/Sofia" , FOR_V2(0x08C552, 0x0362E4) }, + { "Europe/Stockholm" , FOR_V2(0x08CDB0, 0x0365FD) }, + { "Europe/Tallinn" , FOR_V2(0x08D53A, 0x0368BD) }, + { "Europe/Tirane" , FOR_V2(0x08DDD1, 0x036C03) }, + { "Europe/Tiraspol" , FOR_V2(0x08E60F, 0x036F0E) }, + { "Europe/Ulyanovsk" , FOR_V2(0x08EFA8, 0x0372B2) }, + { "Europe/Uzhgorod" , FOR_V2(0x08F4C7, 0x0374C4) }, + { "Europe/Vaduz" , FOR_V2(0x08FD12, 0x0377EC) }, + { "Europe/Vatican" , FOR_V2(0x09049C, 0x037AAC) }, + { "Europe/Vienna" , FOR_V2(0x090F2C, 0x037E85) }, + { "Europe/Vilnius" , FOR_V2(0x0917F5, 0x0381C3) }, + { "Europe/Volgograd" , FOR_V2(0x092098, 0x038513) }, + { "Europe/Warsaw" , FOR_V2(0x092545, 0x0386F2) }, + { "Europe/Zagreb" , FOR_V2(0x092FE2, 0x038AE4) }, + { "Europe/Zaporozhye" , FOR_V2(0x093793, 0x038DBE) }, + { "Europe/Zurich" , FOR_V2(0x094010, 0x039112) }, + { "Factory" , FOR_V2(0x09479A, 0x0393D2) }, + { "GB" , FOR_V2(0x09483A, 0x039420) }, + { "GB-Eire" , FOR_V2(0x0956AD, 0x039968) }, + { "GMT" , FOR_V2(0x096520, 0x039EB0) }, + { "GMT+0" , FOR_V2(0x0965AB, 0x039EF4) }, + { "GMT-0" , FOR_V2(0x096636, 0x039F38) }, + { "GMT0" , FOR_V2(0x0966C1, 0x039F7C) }, + { "Greenwich" , FOR_V2(0x09674C, 0x039FC0) }, + { "Hongkong" , FOR_V2(0x0967D7, 0x03A004) }, + { "HST" , FOR_V2(0x096C88, 0x03A1D3) }, + { "Iceland" , FOR_V2(0x096D14, 0x03A217) }, + { "Indian/Antananarivo" , FOR_V2(0x0971C4, 0x03A3E8) }, + { "Indian/Chagos" , FOR_V2(0x0972ED, 0x03A475) }, + { "Indian/Christmas" , FOR_V2(0x0973DA, 0x03A4E5) }, + { "Indian/Cocos" , FOR_V2(0x09749C, 0x03A53F) }, + { "Indian/Comoro" , FOR_V2(0x097567, 0x03A59B) }, + { "Indian/Kerguelen" , FOR_V2(0x097690, 0x03A628) }, + { "Indian/Mahe" , FOR_V2(0x097757, 0x03A687) }, + { "Indian/Maldives" , FOR_V2(0x09781E, 0x03A6E6) }, + { "Indian/Mauritius" , FOR_V2(0x097906, 0x03A751) }, + { "Indian/Mayotte" , FOR_V2(0x097A1D, 0x03A7D0) }, + { "Indian/Reunion" , FOR_V2(0x097B46, 0x03A85D) }, + { "Iran" , FOR_V2(0x097C0D, 0x03A8BC) }, + { "Israel" , FOR_V2(0x0982CF, 0x03AB46) }, + { "Jamaica" , FOR_V2(0x098BB4, 0x03AE8E) }, + { "Japan" , FOR_V2(0x098DBB, 0x03AF64) }, + { "Kwajalein" , FOR_V2(0x098F05, 0x03AFF5) }, + { "Libya" , FOR_V2(0x099014, 0x03B071) }, + { "MET" , FOR_V2(0x0992AF, 0x03B17F) }, + { "Mexico/BajaNorte" , FOR_V2(0x099AF1, 0x03B488) }, + { "Mexico/BajaSur" , FOR_V2(0x09A431, 0x03B7F6) }, + { "Mexico/General" , FOR_V2(0x09AA59, 0x03BA48) }, + { "MST" , FOR_V2(0x09B0B7, 0x03BCAB) }, + { "MST7MDT" , FOR_V2(0x09B142, 0x03BCEF) }, + { "Navajo" , FOR_V2(0x09BA44, 0x03C040) }, + { "NZ" , FOR_V2(0x09C3E5, 0x03C3CA) }, + { "NZ-CHAT" , FOR_V2(0x09CD8D, 0x03C759) }, + { "Pacific/Apia" , FOR_V2(0x09D5C0, 0x03CA59) }, + { "Pacific/Auckland" , FOR_V2(0x09DA3A, 0x03CC0F) }, + { "Pacific/Bougainville" , FOR_V2(0x09E3FA, 0x03CFB6) }, + { "Pacific/Chatham" , FOR_V2(0x09E53A, 0x03D044) }, + { "Pacific/Chuuk" , FOR_V2(0x09ED7C, 0x03D353) }, + { "Pacific/Easter" , FOR_V2(0x09EE4E, 0x03D3BC) }, + { "Pacific/Efate" , FOR_V2(0x09F729, 0x03D709) }, + { "Pacific/Enderbury" , FOR_V2(0x09F921, 0x03D7D8) }, + { "Pacific/Fakaofo" , FOR_V2(0x09FA3F, 0x03D863) }, + { "Pacific/Fiji" , FOR_V2(0x09FB28, 0x03D8CE) }, + { "Pacific/Funafuti" , FOR_V2(0x09FF84, 0x03DA6F) }, + { "Pacific/Galapagos" , FOR_V2(0x0A0047, 0x03DAC9) }, + { "Pacific/Gambier" , FOR_V2(0x0A0170, 0x03DB5C) }, + { "Pacific/Guadalcanal" , FOR_V2(0x0A0245, 0x03DBCA) }, + { "Pacific/Guam" , FOR_V2(0x0A030D, 0x03DC29) }, + { "Pacific/Honolulu" , FOR_V2(0x0A03FA, 0x03DC90) }, + { "Pacific/Johnston" , FOR_V2(0x0A0520, 0x03DD18) }, + { "Pacific/Kiritimati" , FOR_V2(0x0A0640, 0x03DD9A) }, + { "Pacific/Kosrae" , FOR_V2(0x0A075F, 0x03DE24) }, + { "Pacific/Kwajalein" , FOR_V2(0x0A086C, 0x03DEA2) }, + { "Pacific/Majuro" , FOR_V2(0x0A0984, 0x03DF27) }, + { "Pacific/Marquesas" , FOR_V2(0x0A0A8A, 0x03DFAF) }, + { "Pacific/Midway" , FOR_V2(0x0A0B6A, 0x03E021) }, + { "Pacific/Nauru" , FOR_V2(0x0A0C48, 0x03E091) }, + { "Pacific/Niue" , FOR_V2(0x0A0D6E, 0x03E119) }, + { "Pacific/Norfolk" , FOR_V2(0x0A0E84, 0x03E199) }, + { "Pacific/Noumea" , FOR_V2(0x0A0FD3, 0x03E231) }, + { "Pacific/Pago_Pago" , FOR_V2(0x0A1127, 0x03E2CA) }, + { "Pacific/Palau" , FOR_V2(0x0A11F7, 0x03E32C) }, + { "Pacific/Pitcairn" , FOR_V2(0x0A12B9, 0x03E386) }, + { "Pacific/Pohnpei" , FOR_V2(0x0A13A4, 0x03E3F3) }, + { "Pacific/Ponape" , FOR_V2(0x0A1475, 0x03E45B) }, + { "Pacific/Port_Moresby" , FOR_V2(0x0A1538, 0x03E4B5) }, + { "Pacific/Rarotonga" , FOR_V2(0x0A162F, 0x03E52D) }, + { "Pacific/Saipan" , FOR_V2(0x0A1895, 0x03E625) }, + { "Pacific/Samoa" , FOR_V2(0x0A1982, 0x03E68C) }, + { "Pacific/Tahiti" , FOR_V2(0x0A1A52, 0x03E6EE) }, + { "Pacific/Tarawa" , FOR_V2(0x0A1B28, 0x03E75C) }, + { "Pacific/Tongatapu" , FOR_V2(0x0A1BFA, 0x03E7C5) }, + { "Pacific/Truk" , FOR_V2(0x0A1D8F, 0x03E876) }, + { "Pacific/Wake" , FOR_V2(0x0A1E52, 0x03E8D0) }, + { "Pacific/Wallis" , FOR_V2(0x0A1F20, 0x03E935) }, + { "Pacific/Yap" , FOR_V2(0x0A1FE3, 0x03E98F) }, + { "Poland" , FOR_V2(0x0A20A6, 0x03E9E9) }, + { "Portugal" , FOR_V2(0x0A2B43, 0x03EDDB) }, + { "PRC" , FOR_V2(0x0A38CC, 0x03F2DC) }, + { "PST8PDT" , FOR_V2(0x0A3A76, 0x03F38D) }, + { "ROC" , FOR_V2(0x0A4378, 0x03F6DE) }, + { "ROK" , FOR_V2(0x0A469A, 0x03F81B) }, + { "Singapore" , FOR_V2(0x0A48B9, 0x03F901) }, + { "Turkey" , FOR_V2(0x0A4A6D, 0x03F9C6) }, + { "UCT" , FOR_V2(0x0A52EF, 0x03FCFE) }, + { "Universal" , FOR_V2(0x0A537A, 0x03FD42) }, + { "US/Alaska" , FOR_V2(0x0A5405, 0x03FD86) }, + { "US/Aleutian" , FOR_V2(0x0A5D5D, 0x0400FE) }, + { "US/Arizona" , FOR_V2(0x0A66A6, 0x04046F) }, + { "US/Central" , FOR_V2(0x0A6813, 0x04050E) }, + { "US/East-Indiana" , FOR_V2(0x0A7620, 0x040A32) }, + { "US/Eastern" , FOR_V2(0x0A7CB7, 0x040CAD) }, + { "US/Hawaii" , FOR_V2(0x0A8A9C, 0x0411BD) }, + { "US/Indiana-Starke" , FOR_V2(0x0A8BBC, 0x04123F) }, + { "US/Michigan" , FOR_V2(0x0A954D, 0x0415C9) }, + { "US/Mountain" , FOR_V2(0x0A9DE5, 0x0418FB) }, + { "US/Pacific" , FOR_V2(0x0AA786, 0x041C85) }, + { "US/Pacific-New" , FOR_V2(0x0AB2AF, 0x04209B) }, + { "US/Samoa" , FOR_V2(0x0ABDD8, 0x0424B1) }, + { "UTC" , FOR_V2(0x0ABEA8, 0x042513) }, + { "W-SU" , FOR_V2(0x0ABF33, 0x042557) }, + { "WET" , FOR_V2(0x0AC547, 0x0427C3) }, + { "Zulu" , FOR_V2(0x0ACCA4, 0x042A76) }, }; #ifdef TIMELIB_SUPPORTS_V2DATA -const unsigned char timelib_timezone_db_data_builtin[707825] = { +const unsigned char timelib_timezone_db_data_builtin[707887] = { #else -const unsigned char timelib_timezone_db_data_builtin[273058] = { +const unsigned char timelib_timezone_db_data_builtin[273082] = { #endif @@ -1605,7 +1605,7 @@ 0x4D, 0x54, 0x00, 0x43, 0x41, 0x53, 0x54, 0x00, 0x43, 0x41, 0x54, 0x00, 0x45, 0x41, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x45, 0x41, 0x54, 0x2D, 0x33, 0x0A, #endif -0x00, 0x90, 0xBA, 0xC8, 0x01, 0x42, 0xE0, 0x40, 0x00, 0x00, 0x00, 0x00, +0x00, 0x90, 0xBA, 0xC8, 0x01, 0x42, 0xE6, 0xC2, 0x00, 0x00, 0x00, 0x00, /* Africa/Kampala */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x55, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -2046,17 +2046,22 @@ /* Africa/Sao_Tome */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x80, 0x00, 0x00, 0x00, -0x92, 0xE6, 0x92, 0x48, 0x00, 0x01, 0xFF, 0xFF, 0xFC, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x47, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0C, 0x80, 0x00, 0x00, 0x00, +0x92, 0xE6, 0x97, 0x1D, 0x5A, 0x49, 0x88, 0x10, 0x01, 0x02, 0x03, 0x00, 0x00, 0x06, 0x50, 0x00, +0x00, 0xFF, 0xFF, 0xF7, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x0E, +0x10, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x47, 0x4D, 0x54, 0x00, 0x57, 0x41, 0x54, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, #ifdef TIMELIB_SUPPORTS_V2DATA 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0xF8, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x92, 0xE6, 0x92, 0x48, 0x00, 0x01, 0xFF, 0xFF, -0xFC, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x47, 0x4D, -0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x47, 0x4D, 0x54, 0x30, 0x0A, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0C, 0xF8, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x5E, 0x3C, 0xFD, 0x30, 0xFF, 0xFF, 0xFF, 0xFF, +0x92, 0xE6, 0x97, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x5A, 0x49, 0x88, 0x10, 0x00, 0x01, 0x02, 0x03, +0x00, 0x00, 0x06, 0x50, 0x00, 0x00, 0xFF, 0xFF, 0xF7, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x04, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x47, 0x4D, 0x54, 0x00, +0x57, 0x41, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x57, 0x41, 0x54, +0x2D, 0x31, 0x0A, #endif 0x00, 0x89, 0xD6, 0x75, 0x01, 0x1C, 0xEE, 0xB5, 0x00, 0x00, 0x00, 0x00, @@ -4801,16 +4806,16 @@ 0x4F, 0x49, 0xA0, 0x30, 0x50, 0x83, 0x73, 0x40, 0x51, 0x20, 0x47, 0xB0, 0x52, 0x63, 0x55, 0x40, 0x53, 0x00, 0x29, 0xB0, 0x54, 0x43, 0x37, 0x40, 0x54, 0xE9, 0x46, 0x30, 0x56, 0x23, 0x19, 0x40, 0x56, 0xC9, 0x28, 0x30, 0x58, 0x02, 0xFB, 0x40, 0x58, 0xA9, 0x0A, 0x30, 0x59, 0xE2, 0xDD, 0x40, -0x5A, 0x88, 0xEC, 0x30, 0x5B, 0xCB, 0xF9, 0xC0, 0x5C, 0x68, 0xCE, 0x30, 0x5D, 0xAB, 0xDB, 0xC0, -0x5E, 0x48, 0xB0, 0x30, 0x5F, 0x8B, 0xBD, 0xC0, 0x60, 0x31, 0xCC, 0xB0, 0x61, 0x6B, 0x9F, 0xC0, -0x62, 0x11, 0xAE, 0xB0, 0x63, 0x4B, 0x81, 0xC0, 0x63, 0xFA, 0xCB, 0x30, 0x65, 0x2B, 0x63, 0xC0, -0x65, 0xD1, 0x72, 0xB0, 0x67, 0x14, 0x80, 0x40, 0x67, 0xB1, 0x54, 0xB0, 0x68, 0xF4, 0x62, 0x40, -0x69, 0x9A, 0x71, 0x30, 0x6A, 0xD4, 0x44, 0x40, 0x6B, 0x7A, 0x53, 0x30, 0x6C, 0xB4, 0x26, 0x40, -0x6D, 0x5A, 0x35, 0x30, 0x6E, 0x94, 0x08, 0x40, 0x6F, 0x3A, 0x17, 0x30, 0x70, 0x7D, 0x24, 0xC0, -0x71, 0x19, 0xF9, 0x30, 0x72, 0x5D, 0x06, 0xC0, 0x72, 0xF9, 0xDB, 0x30, 0x74, 0x3C, 0xE8, 0xC0, -0x74, 0xD9, 0xBD, 0x30, 0x76, 0x1C, 0xCA, 0xC0, 0x76, 0xC2, 0xD9, 0xB0, 0x77, 0xFC, 0xAC, 0xC0, -0x78, 0xAB, 0xF6, 0x30, 0x79, 0xDC, 0x8E, 0xC0, 0x7A, 0x82, 0x9D, 0xB0, 0x7B, 0xC5, 0xAB, 0x40, -0x7C, 0x62, 0x7F, 0xB0, 0x7D, 0xA5, 0x8D, 0x40, 0x7E, 0x4B, 0x9C, 0x30, 0x7F, 0x85, 0x6F, 0x40, +0x5A, 0x88, 0xEC, 0x30, 0x5B, 0xDE, 0x6E, 0xC0, 0x5C, 0x68, 0xCE, 0x30, 0x5D, 0xBE, 0x50, 0xC0, +0x5E, 0x48, 0xB0, 0x30, 0x5F, 0x9E, 0x32, 0xC0, 0x60, 0x31, 0xCC, 0xB0, 0x61, 0x87, 0x4F, 0x40, +0x62, 0x11, 0xAE, 0xB0, 0x63, 0x67, 0x31, 0x40, 0x63, 0xFA, 0xCB, 0x30, 0x65, 0x47, 0x13, 0x40, +0x65, 0xD1, 0x72, 0xB0, 0x67, 0x26, 0xF5, 0x40, 0x67, 0xB1, 0x54, 0xB0, 0x69, 0x06, 0xD7, 0x40, +0x69, 0x9A, 0x71, 0x30, 0x6A, 0xE6, 0xB9, 0x40, 0x6B, 0x7A, 0x53, 0x30, 0x6C, 0xCF, 0xD5, 0xC0, +0x6D, 0x5A, 0x35, 0x30, 0x6E, 0xAF, 0xB7, 0xC0, 0x6F, 0x3A, 0x17, 0x30, 0x70, 0x8F, 0x99, 0xC0, +0x71, 0x19, 0xF9, 0x30, 0x72, 0x6F, 0x7B, 0xC0, 0x72, 0xF9, 0xDB, 0x30, 0x74, 0x4F, 0x5D, 0xC0, +0x74, 0xD9, 0xBD, 0x30, 0x76, 0x38, 0x7A, 0x40, 0x76, 0xC2, 0xD9, 0xB0, 0x78, 0x18, 0x5C, 0x40, +0x78, 0xAB, 0xF6, 0x30, 0x79, 0xF8, 0x3E, 0x40, 0x7A, 0x82, 0x9D, 0xB0, 0x7B, 0xD8, 0x20, 0x40, +0x7C, 0x62, 0x7F, 0xB0, 0x7D, 0xB8, 0x02, 0x40, 0x7E, 0x4B, 0x9C, 0x30, 0x7F, 0x97, 0xE4, 0x40, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, @@ -4871,27 +4876,27 @@ 0x56, 0x23, 0x19, 0x40, 0x00, 0x00, 0x00, 0x00, 0x56, 0xC9, 0x28, 0x30, 0x00, 0x00, 0x00, 0x00, 0x58, 0x02, 0xFB, 0x40, 0x00, 0x00, 0x00, 0x00, 0x58, 0xA9, 0x0A, 0x30, 0x00, 0x00, 0x00, 0x00, 0x59, 0xE2, 0xDD, 0x40, 0x00, 0x00, 0x00, 0x00, 0x5A, 0x88, 0xEC, 0x30, 0x00, 0x00, 0x00, 0x00, -0x5B, 0xCB, 0xF9, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x68, 0xCE, 0x30, 0x00, 0x00, 0x00, 0x00, -0x5D, 0xAB, 0xDB, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x48, 0xB0, 0x30, 0x00, 0x00, 0x00, 0x00, -0x5F, 0x8B, 0xBD, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x60, 0x31, 0xCC, 0xB0, 0x00, 0x00, 0x00, 0x00, -0x61, 0x6B, 0x9F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x62, 0x11, 0xAE, 0xB0, 0x00, 0x00, 0x00, 0x00, -0x63, 0x4B, 0x81, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x63, 0xFA, 0xCB, 0x30, 0x00, 0x00, 0x00, 0x00, -0x65, 0x2B, 0x63, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x65, 0xD1, 0x72, 0xB0, 0x00, 0x00, 0x00, 0x00, -0x67, 0x14, 0x80, 0x40, 0x00, 0x00, 0x00, 0x00, 0x67, 0xB1, 0x54, 0xB0, 0x00, 0x00, 0x00, 0x00, -0x68, 0xF4, 0x62, 0x40, 0x00, 0x00, 0x00, 0x00, 0x69, 0x9A, 0x71, 0x30, 0x00, 0x00, 0x00, 0x00, -0x6A, 0xD4, 0x44, 0x40, 0x00, 0x00, 0x00, 0x00, 0x6B, 0x7A, 0x53, 0x30, 0x00, 0x00, 0x00, 0x00, -0x6C, 0xB4, 0x26, 0x40, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x5A, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, -0x6E, 0x94, 0x08, 0x40, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x3A, 0x17, 0x30, 0x00, 0x00, 0x00, 0x00, -0x70, 0x7D, 0x24, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x71, 0x19, 0xF9, 0x30, 0x00, 0x00, 0x00, 0x00, -0x72, 0x5D, 0x06, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x72, 0xF9, 0xDB, 0x30, 0x00, 0x00, 0x00, 0x00, -0x74, 0x3C, 0xE8, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x74, 0xD9, 0xBD, 0x30, 0x00, 0x00, 0x00, 0x00, -0x76, 0x1C, 0xCA, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x76, 0xC2, 0xD9, 0xB0, 0x00, 0x00, 0x00, 0x00, -0x77, 0xFC, 0xAC, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x78, 0xAB, 0xF6, 0x30, 0x00, 0x00, 0x00, 0x00, -0x79, 0xDC, 0x8E, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x7A, 0x82, 0x9D, 0xB0, 0x00, 0x00, 0x00, 0x00, -0x7B, 0xC5, 0xAB, 0x40, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x62, 0x7F, 0xB0, 0x00, 0x00, 0x00, 0x00, -0x7D, 0xA5, 0x8D, 0x40, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x4B, 0x9C, 0x30, 0x00, 0x00, 0x00, 0x00, -0x7F, 0x85, 0x6F, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, 0x2B, 0x7E, 0x30, 0x00, 0x00, 0x00, 0x00, -0x81, 0x65, 0x51, 0x40, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x5B, 0xDE, 0x6E, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x68, 0xCE, 0x30, 0x00, 0x00, 0x00, 0x00, +0x5D, 0xBE, 0x50, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x48, 0xB0, 0x30, 0x00, 0x00, 0x00, 0x00, +0x5F, 0x9E, 0x32, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x60, 0x31, 0xCC, 0xB0, 0x00, 0x00, 0x00, 0x00, +0x61, 0x87, 0x4F, 0x40, 0x00, 0x00, 0x00, 0x00, 0x62, 0x11, 0xAE, 0xB0, 0x00, 0x00, 0x00, 0x00, +0x63, 0x67, 0x31, 0x40, 0x00, 0x00, 0x00, 0x00, 0x63, 0xFA, 0xCB, 0x30, 0x00, 0x00, 0x00, 0x00, +0x65, 0x47, 0x13, 0x40, 0x00, 0x00, 0x00, 0x00, 0x65, 0xD1, 0x72, 0xB0, 0x00, 0x00, 0x00, 0x00, +0x67, 0x26, 0xF5, 0x40, 0x00, 0x00, 0x00, 0x00, 0x67, 0xB1, 0x54, 0xB0, 0x00, 0x00, 0x00, 0x00, +0x69, 0x06, 0xD7, 0x40, 0x00, 0x00, 0x00, 0x00, 0x69, 0x9A, 0x71, 0x30, 0x00, 0x00, 0x00, 0x00, +0x6A, 0xE6, 0xB9, 0x40, 0x00, 0x00, 0x00, 0x00, 0x6B, 0x7A, 0x53, 0x30, 0x00, 0x00, 0x00, 0x00, +0x6C, 0xCF, 0xD5, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x5A, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, +0x6E, 0xAF, 0xB7, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x3A, 0x17, 0x30, 0x00, 0x00, 0x00, 0x00, +0x70, 0x8F, 0x99, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x71, 0x19, 0xF9, 0x30, 0x00, 0x00, 0x00, 0x00, +0x72, 0x6F, 0x7B, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x72, 0xF9, 0xDB, 0x30, 0x00, 0x00, 0x00, 0x00, +0x74, 0x4F, 0x5D, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x74, 0xD9, 0xBD, 0x30, 0x00, 0x00, 0x00, 0x00, +0x76, 0x38, 0x7A, 0x40, 0x00, 0x00, 0x00, 0x00, 0x76, 0xC2, 0xD9, 0xB0, 0x00, 0x00, 0x00, 0x00, +0x78, 0x18, 0x5C, 0x40, 0x00, 0x00, 0x00, 0x00, 0x78, 0xAB, 0xF6, 0x30, 0x00, 0x00, 0x00, 0x00, +0x79, 0xF8, 0x3E, 0x40, 0x00, 0x00, 0x00, 0x00, 0x7A, 0x82, 0x9D, 0xB0, 0x00, 0x00, 0x00, 0x00, +0x7B, 0xD8, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x62, 0x7F, 0xB0, 0x00, 0x00, 0x00, 0x00, +0x7D, 0xB8, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x4B, 0x9C, 0x30, 0x00, 0x00, 0x00, 0x00, +0x7F, 0x97, 0xE4, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, 0x2B, 0x7E, 0x30, 0x00, 0x00, 0x00, 0x00, +0x81, 0x81, 0x00, 0xC0, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, @@ -4902,7 +4907,7 @@ 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0xFF, 0xFF, 0xCC, 0xCC, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x33, 0x00, 0x2D, 0x30, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x3C, 0x2D, 0x30, 0x34, -0x3E, 0x34, 0x3C, 0x2D, 0x30, 0x33, 0x3E, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x33, 0x2E, 0x30, 0x2F, +0x3E, 0x34, 0x3C, 0x2D, 0x30, 0x33, 0x3E, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x2F, 0x30, 0x2C, 0x4D, 0x32, 0x2E, 0x33, 0x2E, 0x30, 0x2F, 0x30, 0x0A, #endif 0x00, 0x6A, 0x1F, 0xF8, 0x00, 0xBF, 0x51, 0xDD, 0x00, 0x00, 0x00, 0x12, 0x4D, 0x61, 0x74, 0x6F, @@ -5619,17 +5624,17 @@ 0x4D, 0x60, 0x83, 0xB0, 0x4E, 0x9A, 0x56, 0xC0, 0x4F, 0x49, 0xA0, 0x30, 0x50, 0x83, 0x73, 0x40, 0x51, 0x20, 0x47, 0xB0, 0x52, 0x63, 0x55, 0x40, 0x53, 0x00, 0x29, 0xB0, 0x54, 0x43, 0x37, 0x40, 0x54, 0xE9, 0x46, 0x30, 0x56, 0x23, 0x19, 0x40, 0x56, 0xC9, 0x28, 0x30, 0x58, 0x02, 0xFB, 0x40, -0x58, 0xA9, 0x0A, 0x30, 0x59, 0xE2, 0xDD, 0x40, 0x5A, 0x88, 0xEC, 0x30, 0x5B, 0xCB, 0xF9, 0xC0, -0x5C, 0x68, 0xCE, 0x30, 0x5D, 0xAB, 0xDB, 0xC0, 0x5E, 0x48, 0xB0, 0x30, 0x5F, 0x8B, 0xBD, 0xC0, -0x60, 0x31, 0xCC, 0xB0, 0x61, 0x6B, 0x9F, 0xC0, 0x62, 0x11, 0xAE, 0xB0, 0x63, 0x4B, 0x81, 0xC0, -0x63, 0xFA, 0xCB, 0x30, 0x65, 0x2B, 0x63, 0xC0, 0x65, 0xD1, 0x72, 0xB0, 0x67, 0x14, 0x80, 0x40, -0x67, 0xB1, 0x54, 0xB0, 0x68, 0xF4, 0x62, 0x40, 0x69, 0x9A, 0x71, 0x30, 0x6A, 0xD4, 0x44, 0x40, -0x6B, 0x7A, 0x53, 0x30, 0x6C, 0xB4, 0x26, 0x40, 0x6D, 0x5A, 0x35, 0x30, 0x6E, 0x94, 0x08, 0x40, -0x6F, 0x3A, 0x17, 0x30, 0x70, 0x7D, 0x24, 0xC0, 0x71, 0x19, 0xF9, 0x30, 0x72, 0x5D, 0x06, 0xC0, -0x72, 0xF9, 0xDB, 0x30, 0x74, 0x3C, 0xE8, 0xC0, 0x74, 0xD9, 0xBD, 0x30, 0x76, 0x1C, 0xCA, 0xC0, -0x76, 0xC2, 0xD9, 0xB0, 0x77, 0xFC, 0xAC, 0xC0, 0x78, 0xAB, 0xF6, 0x30, 0x79, 0xDC, 0x8E, 0xC0, -0x7A, 0x82, 0x9D, 0xB0, 0x7B, 0xC5, 0xAB, 0x40, 0x7C, 0x62, 0x7F, 0xB0, 0x7D, 0xA5, 0x8D, 0x40, -0x7E, 0x4B, 0x9C, 0x30, 0x7F, 0x85, 0x6F, 0x40, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x58, 0xA9, 0x0A, 0x30, 0x59, 0xE2, 0xDD, 0x40, 0x5A, 0x88, 0xEC, 0x30, 0x5B, 0xDE, 0x6E, 0xC0, +0x5C, 0x68, 0xCE, 0x30, 0x5D, 0xBE, 0x50, 0xC0, 0x5E, 0x48, 0xB0, 0x30, 0x5F, 0x9E, 0x32, 0xC0, +0x60, 0x31, 0xCC, 0xB0, 0x61, 0x87, 0x4F, 0x40, 0x62, 0x11, 0xAE, 0xB0, 0x63, 0x67, 0x31, 0x40, +0x63, 0xFA, 0xCB, 0x30, 0x65, 0x47, 0x13, 0x40, 0x65, 0xD1, 0x72, 0xB0, 0x67, 0x26, 0xF5, 0x40, +0x67, 0xB1, 0x54, 0xB0, 0x69, 0x06, 0xD7, 0x40, 0x69, 0x9A, 0x71, 0x30, 0x6A, 0xE6, 0xB9, 0x40, +0x6B, 0x7A, 0x53, 0x30, 0x6C, 0xCF, 0xD5, 0xC0, 0x6D, 0x5A, 0x35, 0x30, 0x6E, 0xAF, 0xB7, 0xC0, +0x6F, 0x3A, 0x17, 0x30, 0x70, 0x8F, 0x99, 0xC0, 0x71, 0x19, 0xF9, 0x30, 0x72, 0x6F, 0x7B, 0xC0, +0x72, 0xF9, 0xDB, 0x30, 0x74, 0x4F, 0x5D, 0xC0, 0x74, 0xD9, 0xBD, 0x30, 0x76, 0x38, 0x7A, 0x40, +0x76, 0xC2, 0xD9, 0xB0, 0x78, 0x18, 0x5C, 0x40, 0x78, 0xAB, 0xF6, 0x30, 0x79, 0xF8, 0x3E, 0x40, +0x7A, 0x82, 0x9D, 0xB0, 0x7B, 0xD8, 0x20, 0x40, 0x7C, 0x62, 0x7F, 0xB0, 0x7D, 0xB8, 0x02, 0x40, +0x7E, 0x4B, 0x9C, 0x30, 0x7F, 0x97, 0xE4, 0x40, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, @@ -5688,27 +5693,27 @@ 0x56, 0x23, 0x19, 0x40, 0x00, 0x00, 0x00, 0x00, 0x56, 0xC9, 0x28, 0x30, 0x00, 0x00, 0x00, 0x00, 0x58, 0x02, 0xFB, 0x40, 0x00, 0x00, 0x00, 0x00, 0x58, 0xA9, 0x0A, 0x30, 0x00, 0x00, 0x00, 0x00, 0x59, 0xE2, 0xDD, 0x40, 0x00, 0x00, 0x00, 0x00, 0x5A, 0x88, 0xEC, 0x30, 0x00, 0x00, 0x00, 0x00, -0x5B, 0xCB, 0xF9, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x68, 0xCE, 0x30, 0x00, 0x00, 0x00, 0x00, -0x5D, 0xAB, 0xDB, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x48, 0xB0, 0x30, 0x00, 0x00, 0x00, 0x00, -0x5F, 0x8B, 0xBD, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x60, 0x31, 0xCC, 0xB0, 0x00, 0x00, 0x00, 0x00, -0x61, 0x6B, 0x9F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x62, 0x11, 0xAE, 0xB0, 0x00, 0x00, 0x00, 0x00, -0x63, 0x4B, 0x81, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x63, 0xFA, 0xCB, 0x30, 0x00, 0x00, 0x00, 0x00, -0x65, 0x2B, 0x63, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x65, 0xD1, 0x72, 0xB0, 0x00, 0x00, 0x00, 0x00, -0x67, 0x14, 0x80, 0x40, 0x00, 0x00, 0x00, 0x00, 0x67, 0xB1, 0x54, 0xB0, 0x00, 0x00, 0x00, 0x00, -0x68, 0xF4, 0x62, 0x40, 0x00, 0x00, 0x00, 0x00, 0x69, 0x9A, 0x71, 0x30, 0x00, 0x00, 0x00, 0x00, -0x6A, 0xD4, 0x44, 0x40, 0x00, 0x00, 0x00, 0x00, 0x6B, 0x7A, 0x53, 0x30, 0x00, 0x00, 0x00, 0x00, -0x6C, 0xB4, 0x26, 0x40, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x5A, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, -0x6E, 0x94, 0x08, 0x40, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x3A, 0x17, 0x30, 0x00, 0x00, 0x00, 0x00, -0x70, 0x7D, 0x24, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x71, 0x19, 0xF9, 0x30, 0x00, 0x00, 0x00, 0x00, -0x72, 0x5D, 0x06, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x72, 0xF9, 0xDB, 0x30, 0x00, 0x00, 0x00, 0x00, -0x74, 0x3C, 0xE8, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x74, 0xD9, 0xBD, 0x30, 0x00, 0x00, 0x00, 0x00, -0x76, 0x1C, 0xCA, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x76, 0xC2, 0xD9, 0xB0, 0x00, 0x00, 0x00, 0x00, -0x77, 0xFC, 0xAC, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x78, 0xAB, 0xF6, 0x30, 0x00, 0x00, 0x00, 0x00, -0x79, 0xDC, 0x8E, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x7A, 0x82, 0x9D, 0xB0, 0x00, 0x00, 0x00, 0x00, -0x7B, 0xC5, 0xAB, 0x40, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x62, 0x7F, 0xB0, 0x00, 0x00, 0x00, 0x00, -0x7D, 0xA5, 0x8D, 0x40, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x4B, 0x9C, 0x30, 0x00, 0x00, 0x00, 0x00, -0x7F, 0x85, 0x6F, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, 0x2B, 0x7E, 0x30, 0x00, 0x00, 0x00, 0x00, -0x81, 0x65, 0x51, 0x40, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x5B, 0xDE, 0x6E, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x68, 0xCE, 0x30, 0x00, 0x00, 0x00, 0x00, +0x5D, 0xBE, 0x50, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x48, 0xB0, 0x30, 0x00, 0x00, 0x00, 0x00, +0x5F, 0x9E, 0x32, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x60, 0x31, 0xCC, 0xB0, 0x00, 0x00, 0x00, 0x00, +0x61, 0x87, 0x4F, 0x40, 0x00, 0x00, 0x00, 0x00, 0x62, 0x11, 0xAE, 0xB0, 0x00, 0x00, 0x00, 0x00, +0x63, 0x67, 0x31, 0x40, 0x00, 0x00, 0x00, 0x00, 0x63, 0xFA, 0xCB, 0x30, 0x00, 0x00, 0x00, 0x00, +0x65, 0x47, 0x13, 0x40, 0x00, 0x00, 0x00, 0x00, 0x65, 0xD1, 0x72, 0xB0, 0x00, 0x00, 0x00, 0x00, +0x67, 0x26, 0xF5, 0x40, 0x00, 0x00, 0x00, 0x00, 0x67, 0xB1, 0x54, 0xB0, 0x00, 0x00, 0x00, 0x00, +0x69, 0x06, 0xD7, 0x40, 0x00, 0x00, 0x00, 0x00, 0x69, 0x9A, 0x71, 0x30, 0x00, 0x00, 0x00, 0x00, +0x6A, 0xE6, 0xB9, 0x40, 0x00, 0x00, 0x00, 0x00, 0x6B, 0x7A, 0x53, 0x30, 0x00, 0x00, 0x00, 0x00, +0x6C, 0xCF, 0xD5, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x5A, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, +0x6E, 0xAF, 0xB7, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x3A, 0x17, 0x30, 0x00, 0x00, 0x00, 0x00, +0x70, 0x8F, 0x99, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x71, 0x19, 0xF9, 0x30, 0x00, 0x00, 0x00, 0x00, +0x72, 0x6F, 0x7B, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x72, 0xF9, 0xDB, 0x30, 0x00, 0x00, 0x00, 0x00, +0x74, 0x4F, 0x5D, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x74, 0xD9, 0xBD, 0x30, 0x00, 0x00, 0x00, 0x00, +0x76, 0x38, 0x7A, 0x40, 0x00, 0x00, 0x00, 0x00, 0x76, 0xC2, 0xD9, 0xB0, 0x00, 0x00, 0x00, 0x00, +0x78, 0x18, 0x5C, 0x40, 0x00, 0x00, 0x00, 0x00, 0x78, 0xAB, 0xF6, 0x30, 0x00, 0x00, 0x00, 0x00, +0x79, 0xF8, 0x3E, 0x40, 0x00, 0x00, 0x00, 0x00, 0x7A, 0x82, 0x9D, 0xB0, 0x00, 0x00, 0x00, 0x00, +0x7B, 0xD8, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x62, 0x7F, 0xB0, 0x00, 0x00, 0x00, 0x00, +0x7D, 0xB8, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x4B, 0x9C, 0x30, 0x00, 0x00, 0x00, 0x00, +0x7F, 0x97, 0xE4, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, 0x2B, 0x7E, 0x30, 0x00, 0x00, 0x00, 0x00, +0x81, 0x81, 0x00, 0xC0, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, @@ -5719,7 +5724,7 @@ 0x01, 0x02, 0x01, 0x02, 0x01, 0xFF, 0xFF, 0xCB, 0x6C, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x33, 0x00, 0x2D, 0x30, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x3C, 0x2D, 0x30, 0x34, 0x3E, 0x34, -0x3C, 0x2D, 0x30, 0x33, 0x3E, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x33, 0x2E, 0x30, 0x2F, 0x30, 0x2C, +0x3C, 0x2D, 0x30, 0x33, 0x3E, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x2F, 0x30, 0x2C, 0x4D, 0x32, 0x2E, 0x33, 0x2E, 0x30, 0x2F, 0x30, 0x0A, #endif 0x00, 0x71, 0x8D, 0x02, 0x00, 0xBD, 0x14, 0xF2, 0x00, 0x00, 0x00, 0x0B, 0x4D, 0x61, 0x74, 0x6F, @@ -10278,23 +10283,22 @@ /* America/La_Paz */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x42, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x80, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0x80, 0x00, 0x00, 0x00, 0xB8, 0x1E, 0x96, 0xE4, 0xB8, 0xEE, 0xD5, 0xD4, 0x7F, 0xFF, 0xFF, 0xFF, 0x01, 0x02, 0x03, 0x03, 0xFF, 0xFF, 0xC0, 0x1C, 0x00, 0x00, 0xFF, 0xFF, 0xC0, 0x1C, 0x00, 0x04, 0xFF, 0xFF, 0xCE, 0x2C, -0x01, 0x08, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x0D, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x4D, 0x54, 0x00, -0x42, 0x4F, 0x53, 0x54, 0x00, 0x2D, 0x30, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, +0x01, 0x08, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x0C, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x4D, 0x54, 0x00, +0x42, 0x53, 0x54, 0x00, 0x2D, 0x30, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, #ifdef TIMELIB_SUPPORTS_V2DATA 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0xF8, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x69, 0x87, 0x1B, 0x64, 0xFF, 0xFF, 0xFF, 0xFF, 0xB8, 0x1E, 0x96, 0xE4, 0xFF, 0xFF, 0xFF, 0xFF, 0xB8, 0xEE, 0xD5, 0xD4, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0x00, 0x01, 0x02, 0x03, 0x03, 0xFF, 0xFF, 0xC0, 0x1C, 0x00, 0x00, 0xFF, 0xFF, 0xC0, 0x1C, 0x00, 0x04, 0xFF, 0xFF, 0xCE, 0x2C, 0x01, 0x08, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, -0x0D, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x4D, 0x54, 0x00, 0x42, 0x4F, 0x53, 0x54, 0x00, 0x2D, 0x30, -0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x3C, 0x2D, 0x30, 0x34, 0x3E, -0x34, 0x0A, +0x0C, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x4D, 0x54, 0x00, 0x42, 0x53, 0x54, 0x00, 0x2D, 0x30, 0x34, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x3C, 0x2D, 0x30, 0x34, 0x3E, 0x34, +0x0A, #endif 0x00, 0x70, 0x26, 0xF0, 0x00, 0xAA, 0xAB, 0x68, 0x00, 0x00, 0x00, 0x00, @@ -15325,16 +15329,16 @@ 0x4F, 0x49, 0x92, 0x20, 0x50, 0x83, 0x65, 0x30, 0x51, 0x20, 0x39, 0xA0, 0x52, 0x63, 0x47, 0x30, 0x53, 0x00, 0x1B, 0xA0, 0x54, 0x43, 0x29, 0x30, 0x54, 0xE9, 0x38, 0x20, 0x56, 0x23, 0x0B, 0x30, 0x56, 0xC9, 0x1A, 0x20, 0x58, 0x02, 0xED, 0x30, 0x58, 0xA8, 0xFC, 0x20, 0x59, 0xE2, 0xCF, 0x30, -0x5A, 0x88, 0xDE, 0x20, 0x5B, 0xCB, 0xEB, 0xB0, 0x5C, 0x68, 0xC0, 0x20, 0x5D, 0xAB, 0xCD, 0xB0, -0x5E, 0x48, 0xA2, 0x20, 0x5F, 0x8B, 0xAF, 0xB0, 0x60, 0x31, 0xBE, 0xA0, 0x61, 0x6B, 0x91, 0xB0, -0x62, 0x11, 0xA0, 0xA0, 0x63, 0x4B, 0x73, 0xB0, 0x63, 0xFA, 0xBD, 0x20, 0x65, 0x2B, 0x55, 0xB0, -0x65, 0xD1, 0x64, 0xA0, 0x67, 0x14, 0x72, 0x30, 0x67, 0xB1, 0x46, 0xA0, 0x68, 0xF4, 0x54, 0x30, -0x69, 0x9A, 0x63, 0x20, 0x6A, 0xD4, 0x36, 0x30, 0x6B, 0x7A, 0x45, 0x20, 0x6C, 0xB4, 0x18, 0x30, -0x6D, 0x5A, 0x27, 0x20, 0x6E, 0x93, 0xFA, 0x30, 0x6F, 0x3A, 0x09, 0x20, 0x70, 0x7D, 0x16, 0xB0, -0x71, 0x19, 0xEB, 0x20, 0x72, 0x5C, 0xF8, 0xB0, 0x72, 0xF9, 0xCD, 0x20, 0x74, 0x3C, 0xDA, 0xB0, -0x74, 0xD9, 0xAF, 0x20, 0x76, 0x1C, 0xBC, 0xB0, 0x76, 0xC2, 0xCB, 0xA0, 0x77, 0xFC, 0x9E, 0xB0, -0x78, 0xAB, 0xE8, 0x20, 0x79, 0xDC, 0x80, 0xB0, 0x7A, 0x82, 0x8F, 0xA0, 0x7B, 0xC5, 0x9D, 0x30, -0x7C, 0x62, 0x71, 0xA0, 0x7D, 0xA5, 0x7F, 0x30, 0x7E, 0x4B, 0x8E, 0x20, 0x7F, 0x85, 0x61, 0x30, +0x5A, 0x88, 0xDE, 0x20, 0x5B, 0xDE, 0x60, 0xB0, 0x5C, 0x68, 0xC0, 0x20, 0x5D, 0xBE, 0x42, 0xB0, +0x5E, 0x48, 0xA2, 0x20, 0x5F, 0x9E, 0x24, 0xB0, 0x60, 0x31, 0xBE, 0xA0, 0x61, 0x87, 0x41, 0x30, +0x62, 0x11, 0xA0, 0xA0, 0x63, 0x67, 0x23, 0x30, 0x63, 0xFA, 0xBD, 0x20, 0x65, 0x47, 0x05, 0x30, +0x65, 0xD1, 0x64, 0xA0, 0x67, 0x26, 0xE7, 0x30, 0x67, 0xB1, 0x46, 0xA0, 0x69, 0x06, 0xC9, 0x30, +0x69, 0x9A, 0x63, 0x20, 0x6A, 0xE6, 0xAB, 0x30, 0x6B, 0x7A, 0x45, 0x20, 0x6C, 0xCF, 0xC7, 0xB0, +0x6D, 0x5A, 0x27, 0x20, 0x6E, 0xAF, 0xA9, 0xB0, 0x6F, 0x3A, 0x09, 0x20, 0x70, 0x8F, 0x8B, 0xB0, +0x71, 0x19, 0xEB, 0x20, 0x72, 0x6F, 0x6D, 0xB0, 0x72, 0xF9, 0xCD, 0x20, 0x74, 0x4F, 0x4F, 0xB0, +0x74, 0xD9, 0xAF, 0x20, 0x76, 0x38, 0x6C, 0x30, 0x76, 0xC2, 0xCB, 0xA0, 0x78, 0x18, 0x4E, 0x30, +0x78, 0xAB, 0xE8, 0x20, 0x79, 0xF8, 0x30, 0x30, 0x7A, 0x82, 0x8F, 0xA0, 0x7B, 0xD8, 0x12, 0x30, +0x7C, 0x62, 0x71, 0xA0, 0x7D, 0xB7, 0xF4, 0x30, 0x7E, 0x4B, 0x8E, 0x20, 0x7F, 0x97, 0xD6, 0x30, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, @@ -15395,27 +15399,27 @@ 0x56, 0x23, 0x0B, 0x30, 0x00, 0x00, 0x00, 0x00, 0x56, 0xC9, 0x1A, 0x20, 0x00, 0x00, 0x00, 0x00, 0x58, 0x02, 0xED, 0x30, 0x00, 0x00, 0x00, 0x00, 0x58, 0xA8, 0xFC, 0x20, 0x00, 0x00, 0x00, 0x00, 0x59, 0xE2, 0xCF, 0x30, 0x00, 0x00, 0x00, 0x00, 0x5A, 0x88, 0xDE, 0x20, 0x00, 0x00, 0x00, 0x00, -0x5B, 0xCB, 0xEB, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x68, 0xC0, 0x20, 0x00, 0x00, 0x00, 0x00, -0x5D, 0xAB, 0xCD, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x48, 0xA2, 0x20, 0x00, 0x00, 0x00, 0x00, -0x5F, 0x8B, 0xAF, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x60, 0x31, 0xBE, 0xA0, 0x00, 0x00, 0x00, 0x00, -0x61, 0x6B, 0x91, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x62, 0x11, 0xA0, 0xA0, 0x00, 0x00, 0x00, 0x00, -0x63, 0x4B, 0x73, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x63, 0xFA, 0xBD, 0x20, 0x00, 0x00, 0x00, 0x00, -0x65, 0x2B, 0x55, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x65, 0xD1, 0x64, 0xA0, 0x00, 0x00, 0x00, 0x00, -0x67, 0x14, 0x72, 0x30, 0x00, 0x00, 0x00, 0x00, 0x67, 0xB1, 0x46, 0xA0, 0x00, 0x00, 0x00, 0x00, -0x68, 0xF4, 0x54, 0x30, 0x00, 0x00, 0x00, 0x00, 0x69, 0x9A, 0x63, 0x20, 0x00, 0x00, 0x00, 0x00, -0x6A, 0xD4, 0x36, 0x30, 0x00, 0x00, 0x00, 0x00, 0x6B, 0x7A, 0x45, 0x20, 0x00, 0x00, 0x00, 0x00, -0x6C, 0xB4, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x5A, 0x27, 0x20, 0x00, 0x00, 0x00, 0x00, -0x6E, 0x93, 0xFA, 0x30, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x3A, 0x09, 0x20, 0x00, 0x00, 0x00, 0x00, -0x70, 0x7D, 0x16, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x71, 0x19, 0xEB, 0x20, 0x00, 0x00, 0x00, 0x00, -0x72, 0x5C, 0xF8, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x72, 0xF9, 0xCD, 0x20, 0x00, 0x00, 0x00, 0x00, -0x74, 0x3C, 0xDA, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x74, 0xD9, 0xAF, 0x20, 0x00, 0x00, 0x00, 0x00, -0x76, 0x1C, 0xBC, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x76, 0xC2, 0xCB, 0xA0, 0x00, 0x00, 0x00, 0x00, -0x77, 0xFC, 0x9E, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x78, 0xAB, 0xE8, 0x20, 0x00, 0x00, 0x00, 0x00, -0x79, 0xDC, 0x80, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x7A, 0x82, 0x8F, 0xA0, 0x00, 0x00, 0x00, 0x00, -0x7B, 0xC5, 0x9D, 0x30, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x62, 0x71, 0xA0, 0x00, 0x00, 0x00, 0x00, -0x7D, 0xA5, 0x7F, 0x30, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x4B, 0x8E, 0x20, 0x00, 0x00, 0x00, 0x00, -0x7F, 0x85, 0x61, 0x30, 0x00, 0x00, 0x00, 0x00, 0x80, 0x2B, 0x70, 0x20, 0x00, 0x00, 0x00, 0x00, -0x81, 0x65, 0x43, 0x30, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x5B, 0xDE, 0x60, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x68, 0xC0, 0x20, 0x00, 0x00, 0x00, 0x00, +0x5D, 0xBE, 0x42, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x48, 0xA2, 0x20, 0x00, 0x00, 0x00, 0x00, +0x5F, 0x9E, 0x24, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x60, 0x31, 0xBE, 0xA0, 0x00, 0x00, 0x00, 0x00, +0x61, 0x87, 0x41, 0x30, 0x00, 0x00, 0x00, 0x00, 0x62, 0x11, 0xA0, 0xA0, 0x00, 0x00, 0x00, 0x00, +0x63, 0x67, 0x23, 0x30, 0x00, 0x00, 0x00, 0x00, 0x63, 0xFA, 0xBD, 0x20, 0x00, 0x00, 0x00, 0x00, +0x65, 0x47, 0x05, 0x30, 0x00, 0x00, 0x00, 0x00, 0x65, 0xD1, 0x64, 0xA0, 0x00, 0x00, 0x00, 0x00, +0x67, 0x26, 0xE7, 0x30, 0x00, 0x00, 0x00, 0x00, 0x67, 0xB1, 0x46, 0xA0, 0x00, 0x00, 0x00, 0x00, +0x69, 0x06, 0xC9, 0x30, 0x00, 0x00, 0x00, 0x00, 0x69, 0x9A, 0x63, 0x20, 0x00, 0x00, 0x00, 0x00, +0x6A, 0xE6, 0xAB, 0x30, 0x00, 0x00, 0x00, 0x00, 0x6B, 0x7A, 0x45, 0x20, 0x00, 0x00, 0x00, 0x00, +0x6C, 0xCF, 0xC7, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x5A, 0x27, 0x20, 0x00, 0x00, 0x00, 0x00, +0x6E, 0xAF, 0xA9, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x3A, 0x09, 0x20, 0x00, 0x00, 0x00, 0x00, +0x70, 0x8F, 0x8B, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x71, 0x19, 0xEB, 0x20, 0x00, 0x00, 0x00, 0x00, +0x72, 0x6F, 0x6D, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x72, 0xF9, 0xCD, 0x20, 0x00, 0x00, 0x00, 0x00, +0x74, 0x4F, 0x4F, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x74, 0xD9, 0xAF, 0x20, 0x00, 0x00, 0x00, 0x00, +0x76, 0x38, 0x6C, 0x30, 0x00, 0x00, 0x00, 0x00, 0x76, 0xC2, 0xCB, 0xA0, 0x00, 0x00, 0x00, 0x00, +0x78, 0x18, 0x4E, 0x30, 0x00, 0x00, 0x00, 0x00, 0x78, 0xAB, 0xE8, 0x20, 0x00, 0x00, 0x00, 0x00, +0x79, 0xF8, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x7A, 0x82, 0x8F, 0xA0, 0x00, 0x00, 0x00, 0x00, +0x7B, 0xD8, 0x12, 0x30, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x62, 0x71, 0xA0, 0x00, 0x00, 0x00, 0x00, +0x7D, 0xB7, 0xF4, 0x30, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x4B, 0x8E, 0x20, 0x00, 0x00, 0x00, 0x00, +0x7F, 0x97, 0xD6, 0x30, 0x00, 0x00, 0x00, 0x00, 0x80, 0x2B, 0x70, 0x20, 0x00, 0x00, 0x00, 0x00, +0x81, 0x80, 0xF2, 0xB0, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, @@ -15426,7 +15430,7 @@ 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0xFF, 0xFF, 0xD4, 0x4C, 0x00, 0x00, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x2D, 0x30, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x3C, 0x2D, 0x30, 0x33, -0x3E, 0x33, 0x3C, 0x2D, 0x30, 0x32, 0x3E, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x33, 0x2E, 0x30, 0x2F, +0x3E, 0x33, 0x3C, 0x2D, 0x30, 0x32, 0x3E, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x2F, 0x30, 0x2C, 0x4D, 0x32, 0x2E, 0x33, 0x2E, 0x30, 0x2F, 0x30, 0x0A, #endif 0x00, 0x65, 0x6B, 0x8A, 0x00, 0xCB, 0x86, 0xDD, 0x00, 0x00, 0x00, 0x36, 0x42, 0x72, 0x61, 0x7A, @@ -23641,8 +23645,8 @@ 0x50, 0x48, 0x50, 0x32, 0x01, 0x4A, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0C, 0x80, 0x00, 0x00, 0x00, -0xD7, 0x3E, 0x1E, 0x90, 0xD7, 0xEC, 0x16, 0x80, 0xD8, 0xF9, 0x16, 0x90, 0xD9, 0xCB, 0xF8, 0x80, -0xDB, 0x07, 0x1D, 0x10, 0xDB, 0xAB, 0xDA, 0x80, 0xDC, 0xE6, 0xFF, 0x10, 0xDD, 0x8B, 0xBC, 0x80, +0xD7, 0x3E, 0x02, 0x70, 0xD7, 0xED, 0x4B, 0xE0, 0xD8, 0xF8, 0xFA, 0x70, 0xD9, 0xCD, 0x2D, 0xE0, +0xDB, 0x07, 0x00, 0xF0, 0xDB, 0xAD, 0x0F, 0xE0, 0xDC, 0xE6, 0xE2, 0xF0, 0xDD, 0x8C, 0xF1, 0xE0, 0x03, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x83, 0x03, 0x00, 0x00, 0x00, 0x00, 0x8C, 0xA0, 0x01, 0x04, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x08, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x4A, 0x44, 0x54, 0x00, 0x4A, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, @@ -23652,10 +23656,10 @@ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0C, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x65, 0xC2, 0xA4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, -0xD7, 0x3E, 0x1E, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0xEC, 0x16, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, -0xD8, 0xF9, 0x16, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0xCB, 0xF8, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, -0xDB, 0x07, 0x1D, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xDB, 0xAB, 0xDA, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, -0xDC, 0xE6, 0xFF, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xDD, 0x8B, 0xBC, 0x80, 0x00, 0x03, 0x01, 0x02, +0xD7, 0x3E, 0x02, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0xED, 0x4B, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, +0xD8, 0xF8, 0xFA, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0xCD, 0x2D, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, +0xDB, 0x07, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xDB, 0xAD, 0x0F, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, +0xDC, 0xE6, 0xE2, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xDD, 0x8C, 0xF1, 0xE0, 0x00, 0x03, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x83, 0x03, 0x00, 0x00, 0x00, 0x00, 0x8C, 0xA0, 0x01, 0x04, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x08, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x4A, 0x44, 0x54, 0x00, 0x4A, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, @@ -28269,16 +28273,16 @@ 0x4F, 0x49, 0x92, 0x20, 0x50, 0x83, 0x65, 0x30, 0x51, 0x20, 0x39, 0xA0, 0x52, 0x63, 0x47, 0x30, 0x53, 0x00, 0x1B, 0xA0, 0x54, 0x43, 0x29, 0x30, 0x54, 0xE9, 0x38, 0x20, 0x56, 0x23, 0x0B, 0x30, 0x56, 0xC9, 0x1A, 0x20, 0x58, 0x02, 0xED, 0x30, 0x58, 0xA8, 0xFC, 0x20, 0x59, 0xE2, 0xCF, 0x30, -0x5A, 0x88, 0xDE, 0x20, 0x5B, 0xCB, 0xEB, 0xB0, 0x5C, 0x68, 0xC0, 0x20, 0x5D, 0xAB, 0xCD, 0xB0, -0x5E, 0x48, 0xA2, 0x20, 0x5F, 0x8B, 0xAF, 0xB0, 0x60, 0x31, 0xBE, 0xA0, 0x61, 0x6B, 0x91, 0xB0, -0x62, 0x11, 0xA0, 0xA0, 0x63, 0x4B, 0x73, 0xB0, 0x63, 0xFA, 0xBD, 0x20, 0x65, 0x2B, 0x55, 0xB0, -0x65, 0xD1, 0x64, 0xA0, 0x67, 0x14, 0x72, 0x30, 0x67, 0xB1, 0x46, 0xA0, 0x68, 0xF4, 0x54, 0x30, -0x69, 0x9A, 0x63, 0x20, 0x6A, 0xD4, 0x36, 0x30, 0x6B, 0x7A, 0x45, 0x20, 0x6C, 0xB4, 0x18, 0x30, -0x6D, 0x5A, 0x27, 0x20, 0x6E, 0x93, 0xFA, 0x30, 0x6F, 0x3A, 0x09, 0x20, 0x70, 0x7D, 0x16, 0xB0, -0x71, 0x19, 0xEB, 0x20, 0x72, 0x5C, 0xF8, 0xB0, 0x72, 0xF9, 0xCD, 0x20, 0x74, 0x3C, 0xDA, 0xB0, -0x74, 0xD9, 0xAF, 0x20, 0x76, 0x1C, 0xBC, 0xB0, 0x76, 0xC2, 0xCB, 0xA0, 0x77, 0xFC, 0x9E, 0xB0, -0x78, 0xAB, 0xE8, 0x20, 0x79, 0xDC, 0x80, 0xB0, 0x7A, 0x82, 0x8F, 0xA0, 0x7B, 0xC5, 0x9D, 0x30, -0x7C, 0x62, 0x71, 0xA0, 0x7D, 0xA5, 0x7F, 0x30, 0x7E, 0x4B, 0x8E, 0x20, 0x7F, 0x85, 0x61, 0x30, +0x5A, 0x88, 0xDE, 0x20, 0x5B, 0xDE, 0x60, 0xB0, 0x5C, 0x68, 0xC0, 0x20, 0x5D, 0xBE, 0x42, 0xB0, +0x5E, 0x48, 0xA2, 0x20, 0x5F, 0x9E, 0x24, 0xB0, 0x60, 0x31, 0xBE, 0xA0, 0x61, 0x87, 0x41, 0x30, +0x62, 0x11, 0xA0, 0xA0, 0x63, 0x67, 0x23, 0x30, 0x63, 0xFA, 0xBD, 0x20, 0x65, 0x47, 0x05, 0x30, +0x65, 0xD1, 0x64, 0xA0, 0x67, 0x26, 0xE7, 0x30, 0x67, 0xB1, 0x46, 0xA0, 0x69, 0x06, 0xC9, 0x30, +0x69, 0x9A, 0x63, 0x20, 0x6A, 0xE6, 0xAB, 0x30, 0x6B, 0x7A, 0x45, 0x20, 0x6C, 0xCF, 0xC7, 0xB0, +0x6D, 0x5A, 0x27, 0x20, 0x6E, 0xAF, 0xA9, 0xB0, 0x6F, 0x3A, 0x09, 0x20, 0x70, 0x8F, 0x8B, 0xB0, +0x71, 0x19, 0xEB, 0x20, 0x72, 0x6F, 0x6D, 0xB0, 0x72, 0xF9, 0xCD, 0x20, 0x74, 0x4F, 0x4F, 0xB0, +0x74, 0xD9, 0xAF, 0x20, 0x76, 0x38, 0x6C, 0x30, 0x76, 0xC2, 0xCB, 0xA0, 0x78, 0x18, 0x4E, 0x30, +0x78, 0xAB, 0xE8, 0x20, 0x79, 0xF8, 0x30, 0x30, 0x7A, 0x82, 0x8F, 0xA0, 0x7B, 0xD8, 0x12, 0x30, +0x7C, 0x62, 0x71, 0xA0, 0x7D, 0xB7, 0xF4, 0x30, 0x7E, 0x4B, 0x8E, 0x20, 0x7F, 0x97, 0xD6, 0x30, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, @@ -28339,27 +28343,27 @@ 0x56, 0x23, 0x0B, 0x30, 0x00, 0x00, 0x00, 0x00, 0x56, 0xC9, 0x1A, 0x20, 0x00, 0x00, 0x00, 0x00, 0x58, 0x02, 0xED, 0x30, 0x00, 0x00, 0x00, 0x00, 0x58, 0xA8, 0xFC, 0x20, 0x00, 0x00, 0x00, 0x00, 0x59, 0xE2, 0xCF, 0x30, 0x00, 0x00, 0x00, 0x00, 0x5A, 0x88, 0xDE, 0x20, 0x00, 0x00, 0x00, 0x00, -0x5B, 0xCB, 0xEB, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x68, 0xC0, 0x20, 0x00, 0x00, 0x00, 0x00, -0x5D, 0xAB, 0xCD, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x48, 0xA2, 0x20, 0x00, 0x00, 0x00, 0x00, -0x5F, 0x8B, 0xAF, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x60, 0x31, 0xBE, 0xA0, 0x00, 0x00, 0x00, 0x00, -0x61, 0x6B, 0x91, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x62, 0x11, 0xA0, 0xA0, 0x00, 0x00, 0x00, 0x00, -0x63, 0x4B, 0x73, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x63, 0xFA, 0xBD, 0x20, 0x00, 0x00, 0x00, 0x00, -0x65, 0x2B, 0x55, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x65, 0xD1, 0x64, 0xA0, 0x00, 0x00, 0x00, 0x00, -0x67, 0x14, 0x72, 0x30, 0x00, 0x00, 0x00, 0x00, 0x67, 0xB1, 0x46, 0xA0, 0x00, 0x00, 0x00, 0x00, -0x68, 0xF4, 0x54, 0x30, 0x00, 0x00, 0x00, 0x00, 0x69, 0x9A, 0x63, 0x20, 0x00, 0x00, 0x00, 0x00, -0x6A, 0xD4, 0x36, 0x30, 0x00, 0x00, 0x00, 0x00, 0x6B, 0x7A, 0x45, 0x20, 0x00, 0x00, 0x00, 0x00, -0x6C, 0xB4, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x5A, 0x27, 0x20, 0x00, 0x00, 0x00, 0x00, -0x6E, 0x93, 0xFA, 0x30, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x3A, 0x09, 0x20, 0x00, 0x00, 0x00, 0x00, -0x70, 0x7D, 0x16, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x71, 0x19, 0xEB, 0x20, 0x00, 0x00, 0x00, 0x00, -0x72, 0x5C, 0xF8, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x72, 0xF9, 0xCD, 0x20, 0x00, 0x00, 0x00, 0x00, -0x74, 0x3C, 0xDA, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x74, 0xD9, 0xAF, 0x20, 0x00, 0x00, 0x00, 0x00, -0x76, 0x1C, 0xBC, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x76, 0xC2, 0xCB, 0xA0, 0x00, 0x00, 0x00, 0x00, -0x77, 0xFC, 0x9E, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x78, 0xAB, 0xE8, 0x20, 0x00, 0x00, 0x00, 0x00, -0x79, 0xDC, 0x80, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x7A, 0x82, 0x8F, 0xA0, 0x00, 0x00, 0x00, 0x00, -0x7B, 0xC5, 0x9D, 0x30, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x62, 0x71, 0xA0, 0x00, 0x00, 0x00, 0x00, -0x7D, 0xA5, 0x7F, 0x30, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x4B, 0x8E, 0x20, 0x00, 0x00, 0x00, 0x00, -0x7F, 0x85, 0x61, 0x30, 0x00, 0x00, 0x00, 0x00, 0x80, 0x2B, 0x70, 0x20, 0x00, 0x00, 0x00, 0x00, -0x81, 0x65, 0x43, 0x30, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x5B, 0xDE, 0x60, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x68, 0xC0, 0x20, 0x00, 0x00, 0x00, 0x00, +0x5D, 0xBE, 0x42, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x48, 0xA2, 0x20, 0x00, 0x00, 0x00, 0x00, +0x5F, 0x9E, 0x24, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x60, 0x31, 0xBE, 0xA0, 0x00, 0x00, 0x00, 0x00, +0x61, 0x87, 0x41, 0x30, 0x00, 0x00, 0x00, 0x00, 0x62, 0x11, 0xA0, 0xA0, 0x00, 0x00, 0x00, 0x00, +0x63, 0x67, 0x23, 0x30, 0x00, 0x00, 0x00, 0x00, 0x63, 0xFA, 0xBD, 0x20, 0x00, 0x00, 0x00, 0x00, +0x65, 0x47, 0x05, 0x30, 0x00, 0x00, 0x00, 0x00, 0x65, 0xD1, 0x64, 0xA0, 0x00, 0x00, 0x00, 0x00, +0x67, 0x26, 0xE7, 0x30, 0x00, 0x00, 0x00, 0x00, 0x67, 0xB1, 0x46, 0xA0, 0x00, 0x00, 0x00, 0x00, +0x69, 0x06, 0xC9, 0x30, 0x00, 0x00, 0x00, 0x00, 0x69, 0x9A, 0x63, 0x20, 0x00, 0x00, 0x00, 0x00, +0x6A, 0xE6, 0xAB, 0x30, 0x00, 0x00, 0x00, 0x00, 0x6B, 0x7A, 0x45, 0x20, 0x00, 0x00, 0x00, 0x00, +0x6C, 0xCF, 0xC7, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x5A, 0x27, 0x20, 0x00, 0x00, 0x00, 0x00, +0x6E, 0xAF, 0xA9, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x3A, 0x09, 0x20, 0x00, 0x00, 0x00, 0x00, +0x70, 0x8F, 0x8B, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x71, 0x19, 0xEB, 0x20, 0x00, 0x00, 0x00, 0x00, +0x72, 0x6F, 0x6D, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x72, 0xF9, 0xCD, 0x20, 0x00, 0x00, 0x00, 0x00, +0x74, 0x4F, 0x4F, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x74, 0xD9, 0xAF, 0x20, 0x00, 0x00, 0x00, 0x00, +0x76, 0x38, 0x6C, 0x30, 0x00, 0x00, 0x00, 0x00, 0x76, 0xC2, 0xCB, 0xA0, 0x00, 0x00, 0x00, 0x00, +0x78, 0x18, 0x4E, 0x30, 0x00, 0x00, 0x00, 0x00, 0x78, 0xAB, 0xE8, 0x20, 0x00, 0x00, 0x00, 0x00, +0x79, 0xF8, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x7A, 0x82, 0x8F, 0xA0, 0x00, 0x00, 0x00, 0x00, +0x7B, 0xD8, 0x12, 0x30, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x62, 0x71, 0xA0, 0x00, 0x00, 0x00, 0x00, +0x7D, 0xB7, 0xF4, 0x30, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x4B, 0x8E, 0x20, 0x00, 0x00, 0x00, 0x00, +0x7F, 0x97, 0xD6, 0x30, 0x00, 0x00, 0x00, 0x00, 0x80, 0x2B, 0x70, 0x20, 0x00, 0x00, 0x00, 0x00, +0x81, 0x80, 0xF2, 0xB0, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, @@ -28370,7 +28374,7 @@ 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0xFF, 0xFF, 0xD4, 0x4C, 0x00, 0x00, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x2D, 0x30, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x3C, 0x2D, 0x30, 0x33, -0x3E, 0x33, 0x3C, 0x2D, 0x30, 0x32, 0x3E, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x33, 0x2E, 0x30, 0x2F, +0x3E, 0x33, 0x3C, 0x2D, 0x30, 0x32, 0x3E, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x2F, 0x30, 0x2C, 0x4D, 0x32, 0x2E, 0x33, 0x2E, 0x30, 0x2F, 0x30, 0x0A, #endif 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00, @@ -42435,8 +42439,8 @@ 0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0C, 0x80, 0x00, 0x00, 0x00, -0xD7, 0x3E, 0x1E, 0x90, 0xD7, 0xEC, 0x16, 0x80, 0xD8, 0xF9, 0x16, 0x90, 0xD9, 0xCB, 0xF8, 0x80, -0xDB, 0x07, 0x1D, 0x10, 0xDB, 0xAB, 0xDA, 0x80, 0xDC, 0xE6, 0xFF, 0x10, 0xDD, 0x8B, 0xBC, 0x80, +0xD7, 0x3E, 0x02, 0x70, 0xD7, 0xED, 0x4B, 0xE0, 0xD8, 0xF8, 0xFA, 0x70, 0xD9, 0xCD, 0x2D, 0xE0, +0xDB, 0x07, 0x00, 0xF0, 0xDB, 0xAD, 0x0F, 0xE0, 0xDC, 0xE6, 0xE2, 0xF0, 0xDD, 0x8C, 0xF1, 0xE0, 0x03, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x83, 0x03, 0x00, 0x00, 0x00, 0x00, 0x8C, 0xA0, 0x01, 0x04, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x08, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x4A, 0x44, 0x54, 0x00, 0x4A, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, @@ -42446,10 +42450,10 @@ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0C, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x65, 0xC2, 0xA4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, -0xD7, 0x3E, 0x1E, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0xEC, 0x16, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, -0xD8, 0xF9, 0x16, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0xCB, 0xF8, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, -0xDB, 0x07, 0x1D, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xDB, 0xAB, 0xDA, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, -0xDC, 0xE6, 0xFF, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xDD, 0x8B, 0xBC, 0x80, 0x00, 0x03, 0x01, 0x02, +0xD7, 0x3E, 0x02, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0xED, 0x4B, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, +0xD8, 0xF8, 0xFA, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0xCD, 0x2D, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, +0xDB, 0x07, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xDB, 0xAD, 0x0F, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, +0xDC, 0xE6, 0xE2, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xDD, 0x8C, 0xF1, 0xE0, 0x00, 0x03, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x83, 0x03, 0x00, 0x00, 0x00, 0x00, 0x8C, 0xA0, 0x01, 0x04, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x08, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x4A, 0x44, 0x54, 0x00, 0x4A, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, @@ -47970,4 +47974,4 @@ #endif 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00,}; -const timelib_tzdb timezonedb_builtin = { "2017.3", 593, timezonedb_idx_builtin, timelib_timezone_db_data_builtin }; +const timelib_tzdb timezonedb_builtin = { "2018.3", 593, timezonedb_idx_builtin, timelib_timezone_db_data_builtin }; diff -Nru php7.2-7.2.2/ext/date/php_date.c php7.2-7.2.3/ext/date/php_date.c --- php7.2-7.2.2/ext/date/php_date.c 2018-01-30 10:33:38.000000000 +0000 +++ php7.2-7.2.3/ext/date/php_date.c 2018-02-27 16:33:07.000000000 +0000 @@ -656,6 +656,7 @@ static HashTable *date_object_get_properties_period(zval *object); static HashTable *date_object_get_properties_timezone(zval *object); static HashTable *date_object_get_gc_timezone(zval *object, zval **table, int *n); +static HashTable *date_object_get_debug_info_timezone(zval *object, int *is_temp); zval *date_interval_read_property(zval *object, zval *member, int type, void **cache_slot, zval *rv); void date_interval_write_property(zval *object, zval *member, zval *value, void **cache_slot); @@ -1130,38 +1131,38 @@ rfc_colon = 0; switch (format[i]) { /* day */ - case 'd': length = slprintf(buffer, 32, "%02d", (int) t->d); break; - case 'D': length = slprintf(buffer, 32, "%s", php_date_short_day_name(t->y, t->m, t->d)); break; - case 'j': length = slprintf(buffer, 32, "%d", (int) t->d); break; - case 'l': length = slprintf(buffer, 32, "%s", php_date_full_day_name(t->y, t->m, t->d)); break; - case 'S': length = slprintf(buffer, 32, "%s", english_suffix(t->d)); break; - case 'w': length = slprintf(buffer, 32, "%d", (int) timelib_day_of_week(t->y, t->m, t->d)); break; - case 'N': length = slprintf(buffer, 32, "%d", (int) timelib_iso_day_of_week(t->y, t->m, t->d)); break; - case 'z': length = slprintf(buffer, 32, "%d", (int) timelib_day_of_year(t->y, t->m, t->d)); break; + case 'd': length = slprintf(buffer, sizeof(buffer), "%02d", (int) t->d); break; + case 'D': length = slprintf(buffer, sizeof(buffer), "%s", php_date_short_day_name(t->y, t->m, t->d)); break; + case 'j': length = slprintf(buffer, sizeof(buffer), "%d", (int) t->d); break; + case 'l': length = slprintf(buffer, sizeof(buffer), "%s", php_date_full_day_name(t->y, t->m, t->d)); break; + case 'S': length = slprintf(buffer, sizeof(buffer), "%s", english_suffix(t->d)); break; + case 'w': length = slprintf(buffer, sizeof(buffer), "%d", (int) timelib_day_of_week(t->y, t->m, t->d)); break; + case 'N': length = slprintf(buffer, sizeof(buffer), "%d", (int) timelib_iso_day_of_week(t->y, t->m, t->d)); break; + case 'z': length = slprintf(buffer, sizeof(buffer), "%d", (int) timelib_day_of_year(t->y, t->m, t->d)); break; /* week */ case 'W': if(!weekYearSet) { timelib_isoweek_from_date(t->y, t->m, t->d, &isoweek, &isoyear); weekYearSet = 1; } - length = slprintf(buffer, 32, "%02d", (int) isoweek); break; /* iso weeknr */ + length = slprintf(buffer, sizeof(buffer), "%02d", (int) isoweek); break; /* iso weeknr */ case 'o': if(!weekYearSet) { timelib_isoweek_from_date(t->y, t->m, t->d, &isoweek, &isoyear); weekYearSet = 1; } - length = slprintf(buffer, 32, "%d", (int) isoyear); break; /* iso year */ + length = slprintf(buffer, sizeof(buffer), "%d", (int) isoyear); break; /* iso year */ /* month */ - case 'F': length = slprintf(buffer, 32, "%s", mon_full_names[t->m - 1]); break; - case 'm': length = slprintf(buffer, 32, "%02d", (int) t->m); break; - case 'M': length = slprintf(buffer, 32, "%s", mon_short_names[t->m - 1]); break; - case 'n': length = slprintf(buffer, 32, "%d", (int) t->m); break; - case 't': length = slprintf(buffer, 32, "%d", (int) timelib_days_in_month(t->y, t->m)); break; + case 'F': length = slprintf(buffer, sizeof(buffer), "%s", mon_full_names[t->m - 1]); break; + case 'm': length = slprintf(buffer, sizeof(buffer), "%02d", (int) t->m); break; + case 'M': length = slprintf(buffer, sizeof(buffer), "%s", mon_short_names[t->m - 1]); break; + case 'n': length = slprintf(buffer, sizeof(buffer), "%d", (int) t->m); break; + case 't': length = slprintf(buffer, sizeof(buffer), "%d", (int) timelib_days_in_month(t->y, t->m)); break; /* year */ - case 'L': length = slprintf(buffer, 32, "%d", timelib_is_leap((int) t->y)); break; - case 'y': length = slprintf(buffer, 32, "%02d", (int) t->y % 100); break; - case 'Y': length = slprintf(buffer, 32, "%s%04lld", t->y < 0 ? "-" : "", php_date_llabs((timelib_sll) t->y)); break; + case 'L': length = slprintf(buffer, sizeof(buffer), "%d", timelib_is_leap((int) t->y)); break; + case 'y': length = slprintf(buffer, sizeof(buffer), "%02d", (int) t->y % 100); break; + case 'Y': length = slprintf(buffer, sizeof(buffer), "%s%04lld", t->y < 0 ? "-" : "", php_date_llabs((timelib_sll) t->y)); break; /* time */ - case 'a': length = slprintf(buffer, 32, "%s", t->h >= 12 ? "pm" : "am"); break; - case 'A': length = slprintf(buffer, 32, "%s", t->h >= 12 ? "PM" : "AM"); break; + case 'a': length = slprintf(buffer, sizeof(buffer), "%s", t->h >= 12 ? "pm" : "am"); break; + case 'A': length = slprintf(buffer, sizeof(buffer), "%s", t->h >= 12 ? "PM" : "AM"); break; case 'B': { int retval = ((((long)t->sse)-(((long)t->sse) - ((((long)t->sse) % 86400) + 3600))) * 10); if (retval < 0) { @@ -1169,41 +1170,41 @@ } /* Make sure to do this on a positive int to avoid rounding errors */ retval = (retval / 864) % 1000; - length = slprintf(buffer, 32, "%03d", retval); + length = slprintf(buffer, sizeof(buffer), "%03d", retval); break; } - case 'g': length = slprintf(buffer, 32, "%d", (t->h % 12) ? (int) t->h % 12 : 12); break; - case 'G': length = slprintf(buffer, 32, "%d", (int) t->h); break; - case 'h': length = slprintf(buffer, 32, "%02d", (t->h % 12) ? (int) t->h % 12 : 12); break; - case 'H': length = slprintf(buffer, 32, "%02d", (int) t->h); break; - case 'i': length = slprintf(buffer, 32, "%02d", (int) t->i); break; - case 's': length = slprintf(buffer, 32, "%02d", (int) t->s); break; - case 'u': length = slprintf(buffer, 32, "%06d", (int) floor(t->us)); break; - case 'v': length = slprintf(buffer, 32, "%03d", (int) floor(t->us / 1000)); break; + case 'g': length = slprintf(buffer, sizeof(buffer), "%d", (t->h % 12) ? (int) t->h % 12 : 12); break; + case 'G': length = slprintf(buffer, sizeof(buffer), "%d", (int) t->h); break; + case 'h': length = slprintf(buffer, sizeof(buffer), "%02d", (t->h % 12) ? (int) t->h % 12 : 12); break; + case 'H': length = slprintf(buffer, sizeof(buffer), "%02d", (int) t->h); break; + case 'i': length = slprintf(buffer, sizeof(buffer), "%02d", (int) t->i); break; + case 's': length = slprintf(buffer, sizeof(buffer), "%02d", (int) t->s); break; + case 'u': length = slprintf(buffer, sizeof(buffer), "%06d", (int) floor(t->us)); break; + case 'v': length = slprintf(buffer, sizeof(buffer), "%03d", (int) floor(t->us / 1000)); break; /* timezone */ - case 'I': length = slprintf(buffer, 32, "%d", localtime ? offset->is_dst : 0); break; + case 'I': length = slprintf(buffer, sizeof(buffer), "%d", localtime ? offset->is_dst : 0); break; case 'P': rfc_colon = 1; /* break intentionally missing */ - case 'O': length = slprintf(buffer, 32, "%c%02d%s%02d", + case 'O': length = slprintf(buffer, sizeof(buffer), "%c%02d%s%02d", localtime ? ((offset->offset < 0) ? '-' : '+') : '+', localtime ? abs(offset->offset / 3600) : 0, rfc_colon ? ":" : "", localtime ? abs((offset->offset % 3600) / 60) : 0 ); break; - case 'T': length = slprintf(buffer, 32, "%s", localtime ? offset->abbr : "GMT"); break; + case 'T': length = slprintf(buffer, sizeof(buffer), "%s", localtime ? offset->abbr : "GMT"); break; case 'e': if (!localtime) { - length = slprintf(buffer, 32, "%s", "UTC"); + length = slprintf(buffer, sizeof(buffer), "%s", "UTC"); } else { switch (t->zone_type) { case TIMELIB_ZONETYPE_ID: - length = slprintf(buffer, 32, "%s", t->tz_info->name); + length = slprintf(buffer, sizeof(buffer), "%s", t->tz_info->name); break; case TIMELIB_ZONETYPE_ABBR: - length = slprintf(buffer, 32, "%s", offset->abbr); + length = slprintf(buffer, sizeof(buffer), "%s", offset->abbr); break; case TIMELIB_ZONETYPE_OFFSET: - length = slprintf(buffer, 32, "%c%02d:%02d", + length = slprintf(buffer, sizeof(buffer), "%c%02d:%02d", ((offset->offset < 0) ? '-' : '+'), abs(offset->offset / 3600), abs((offset->offset % 3600) / 60) @@ -1212,10 +1213,10 @@ } } break; - case 'Z': length = slprintf(buffer, 32, "%d", localtime ? offset->offset : 0); break; + case 'Z': length = slprintf(buffer, sizeof(buffer), "%d", localtime ? offset->offset : 0); break; /* full date/time */ - case 'c': length = slprintf(buffer, 96, "%04d-%02d-%02dT%02d:%02d:%02d%c%02d:%02d", + case 'c': length = slprintf(buffer, sizeof(buffer), "%04d-%02d-%02dT%02d:%02d:%02d%c%02d:%02d", (int) t->y, (int) t->m, (int) t->d, (int) t->h, (int) t->i, (int) t->s, localtime ? ((offset->offset < 0) ? '-' : '+') : '+', @@ -1223,7 +1224,7 @@ localtime ? abs((offset->offset % 3600) / 60) : 0 ); break; - case 'r': length = slprintf(buffer, 96, "%3s, %02d %3s %04d %02d:%02d:%02d %c%02d%02d", + case 'r': length = slprintf(buffer, sizeof(buffer), "%3s, %02d %3s %04d %02d:%02d:%02d %c%02d%02d", php_date_short_day_name(t->y, t->m, t->d), (int) t->d, mon_short_names[t->m - 1], (int) t->y, (int) t->h, (int) t->i, (int) t->s, @@ -1232,7 +1233,7 @@ localtime ? abs((offset->offset % 3600) / 60) : 0 ); break; - case 'U': length = slprintf(buffer, 32, "%lld", (timelib_sll) t->sse); break; + case 'U': length = slprintf(buffer, sizeof(buffer), "%lld", (timelib_sll) t->sse); break; case '\\': if (i < format_len) i++; /* break intentionally missing */ @@ -2120,6 +2121,7 @@ date_object_handlers_timezone.clone_obj = date_object_clone_timezone; date_object_handlers_timezone.get_properties = date_object_get_properties_timezone; date_object_handlers_timezone.get_gc = date_object_get_gc_timezone; + date_object_handlers_timezone.get_debug_info = date_object_get_debug_info_timezone; #define REGISTER_TIMEZONE_CLASS_CONST_STRING(const_name, value) \ zend_declare_class_constant_long(date_ce_timezone, const_name, sizeof(const_name)-1, value); @@ -2397,6 +2399,45 @@ return props; } /* }}} */ +static HashTable *date_object_get_debug_info_timezone(zval *object, int *is_temp) /* {{{ */ +{ + HashTable *ht, *props; + zval zv; + php_timezone_obj *tzobj; + + tzobj = Z_PHPTIMEZONE_P(object); + props = zend_std_get_properties(object); + + *is_temp = 1; + ht = zend_array_dup(props); + + ZVAL_LONG(&zv, tzobj->type); + zend_hash_str_update(ht, "timezone_type", sizeof("timezone_type")-1, &zv); + + switch (tzobj->type) { + case TIMELIB_ZONETYPE_ID: + ZVAL_STRING(&zv, tzobj->tzi.tz->name); + break; + case TIMELIB_ZONETYPE_OFFSET: { + zend_string *tmpstr = zend_string_alloc(sizeof("UTC+05:00")-1, 0); + + ZSTR_LEN(tmpstr) = snprintf(ZSTR_VAL(tmpstr), sizeof("+05:00"), "%c%02d:%02d", + tzobj->tzi.utc_offset < 0 ? '-' : '+', + abs((int)(tzobj->tzi.utc_offset / 3600)), + abs(((int)(tzobj->tzi.utc_offset % 3600) / 60))); + + ZVAL_NEW_STR(&zv, tmpstr); + } + break; + case TIMELIB_ZONETYPE_ABBR: + ZVAL_STRING(&zv, tzobj->tzi.z.abbr); + break; + } + zend_hash_str_update(ht, "timezone", sizeof("timezone")-1, &zv); + + return ht; +} /* }}} */ + static inline zend_object *date_object_new_interval_ex(zend_class_entry *class_type, int init_props) /* {{{ */ { php_interval_obj *intern; @@ -4451,38 +4492,38 @@ for (i = 0; i < format_len; i++) { if (have_format_spec) { switch (format[i]) { - case 'Y': length = slprintf(buffer, 32, "%02d", (int) t->y); break; - case 'y': length = slprintf(buffer, 32, "%d", (int) t->y); break; + case 'Y': length = slprintf(buffer, sizeof(buffer), "%02d", (int) t->y); break; + case 'y': length = slprintf(buffer, sizeof(buffer), "%d", (int) t->y); break; - case 'M': length = slprintf(buffer, 32, "%02d", (int) t->m); break; - case 'm': length = slprintf(buffer, 32, "%d", (int) t->m); break; + case 'M': length = slprintf(buffer, sizeof(buffer), "%02d", (int) t->m); break; + case 'm': length = slprintf(buffer, sizeof(buffer), "%d", (int) t->m); break; - case 'D': length = slprintf(buffer, 32, "%02d", (int) t->d); break; - case 'd': length = slprintf(buffer, 32, "%d", (int) t->d); break; + case 'D': length = slprintf(buffer, sizeof(buffer), "%02d", (int) t->d); break; + case 'd': length = slprintf(buffer, sizeof(buffer), "%d", (int) t->d); break; - case 'H': length = slprintf(buffer, 32, "%02d", (int) t->h); break; - case 'h': length = slprintf(buffer, 32, "%d", (int) t->h); break; + case 'H': length = slprintf(buffer, sizeof(buffer), "%02d", (int) t->h); break; + case 'h': length = slprintf(buffer, sizeof(buffer), "%d", (int) t->h); break; - case 'I': length = slprintf(buffer, 32, "%02d", (int) t->i); break; - case 'i': length = slprintf(buffer, 32, "%d", (int) t->i); break; + case 'I': length = slprintf(buffer, sizeof(buffer), "%02d", (int) t->i); break; + case 'i': length = slprintf(buffer, sizeof(buffer), "%d", (int) t->i); break; - case 'S': length = slprintf(buffer, 32, "%02" ZEND_LONG_FMT_SPEC, (zend_long) t->s); break; - case 's': length = slprintf(buffer, 32, ZEND_LONG_FMT, (zend_long) t->s); break; + case 'S': length = slprintf(buffer, sizeof(buffer), "%02" ZEND_LONG_FMT_SPEC, (zend_long) t->s); break; + case 's': length = slprintf(buffer, sizeof(buffer), ZEND_LONG_FMT, (zend_long) t->s); break; - case 'F': length = slprintf(buffer, 32, "%06" ZEND_LONG_FMT_SPEC, (zend_long) t->us); break; - case 'f': length = slprintf(buffer, 32, ZEND_LONG_FMT, (zend_long) t->us); break; + case 'F': length = slprintf(buffer, sizeof(buffer), "%06" ZEND_LONG_FMT_SPEC, (zend_long) t->us); break; + case 'f': length = slprintf(buffer, sizeof(buffer), ZEND_LONG_FMT, (zend_long) t->us); break; case 'a': { if ((int) t->days != -99999) { - length = slprintf(buffer, 32, "%d", (int) t->days); + length = slprintf(buffer, sizeof(buffer), "%d", (int) t->days); } else { - length = slprintf(buffer, 32, "(unknown)"); + length = slprintf(buffer, sizeof(buffer), "(unknown)"); } } break; - case 'r': length = slprintf(buffer, 32, "%s", t->invert ? "-" : ""); break; - case 'R': length = slprintf(buffer, 32, "%c", t->invert ? '-' : '+'); break; + case 'r': length = slprintf(buffer, sizeof(buffer), "%s", t->invert ? "-" : ""); break; + case 'R': length = slprintf(buffer, sizeof(buffer), "%c", t->invert ? '-' : '+'); break; - case '%': length = slprintf(buffer, 32, "%%"); break; + case '%': length = slprintf(buffer, sizeof(buffer), "%%"); break; default: buffer[0] = '%'; buffer[1] = format[i]; buffer[2] = '\0'; length = 2; break; } smart_str_appendl(&string, buffer, length); @@ -4741,14 +4782,14 @@ const timelib_tzdb *tzdb; const timelib_tzdb_index_entry *table; int i, item_count; - zend_long what = PHP_DATE_TIMEZONE_GROUP_ALL; + zend_long what = PHP_DATE_TIMEZONE_GROUP_ALL; char *option = NULL; - size_t option_len = 0; + size_t option_len = 0; ZEND_PARSE_PARAMETERS_START(0, 2) Z_PARAM_OPTIONAL Z_PARAM_LONG(what) - Z_PARAM_STRING(option, option_len) + Z_PARAM_STRING_EX(option, option_len, 1, 0) ZEND_PARSE_PARAMETERS_END_EX(RETURN_FALSE); /* Extra validation */ diff -Nru php7.2-7.2.2/ext/date/tests/bug68406.phpt php7.2-7.2.3/ext/date/tests/bug68406.phpt --- php7.2-7.2.2/ext/date/tests/bug68406.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php7.2-7.2.3/ext/date/tests/bug68406.phpt 2018-02-27 16:33:07.000000000 +0000 @@ -0,0 +1,34 @@ +--TEST-- +Bug #68406 calling var_dump on a DateTimeZone object modifies it +--INI-- +date.timezone=UTC +--FILE-- +getTimezone(), $tz2); + +if($tz2 == $d->getTimezone()) { + echo "yes"; +} +else { + echo "no"; +} + +--EXPECT-- +object(DateTimeZone)#4 (2) { + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/Berlin" +} +object(DateTimeZone)#2 (2) { + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/Berlin" +} +yes diff -Nru php7.2-7.2.2/ext/date/tests/bug75857.phpt php7.2-7.2.3/ext/date/tests/bug75857.phpt --- php7.2-7.2.2/ext/date/tests/bug75857.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php7.2-7.2.3/ext/date/tests/bug75857.phpt 2018-02-27 16:33:07.000000000 +0000 @@ -0,0 +1,18 @@ +--TEST-- +Failing test case for #75857: Long timezones truncation +--CREDITS-- +Gabriel Caruso (carusogabriel34@gmail.com) +--FILE-- +format('e')); +var_dump($mediumDate->format('e')); +var_dump($smallDate->format('e')); +?> +--EXPECT-- +string(32) "America/Argentina/ComodRivadavia" +string(28) "America/Indiana/Indianapolis" +string(17) "America/Sao_Paulo" diff -Nru php7.2-7.2.2/ext/date/tests/bug75928.phpt php7.2-7.2.3/ext/date/tests/bug75928.phpt --- php7.2-7.2.2/ext/date/tests/bug75928.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php7.2-7.2.3/ext/date/tests/bug75928.phpt 2018-02-27 16:33:07.000000000 +0000 @@ -0,0 +1,9 @@ +--TEST-- +Bug #75928: Argument 2 for `DateTimeZone::listIdentifiers()` should accept `null` +--FILE-- + +--EXPECT-- +bool(true) diff -Nru php7.2-7.2.2/ext/date/tests/DateTimeZone_clone_basic3.phpt php7.2-7.2.3/ext/date/tests/DateTimeZone_clone_basic3.phpt --- php7.2-7.2.2/ext/date/tests/DateTimeZone_clone_basic3.phpt 2018-01-30 10:33:38.000000000 +0000 +++ php7.2-7.2.3/ext/date/tests/DateTimeZone_clone_basic3.phpt 2018-02-27 16:33:06.000000000 +0000 @@ -39,34 +39,30 @@ -- Add some properties -- object(DateTimeZone)#%d (4) { - ["timezone_type"]=> - int(3) - ["timezone"]=> - string(13) "Europe/London" ["property1"]=> int(99) ["property2"]=> string(5) "Hello" -} - --- clone it -- -object(DateTimeZone)#%d (4) { ["timezone_type"]=> int(3) ["timezone"]=> string(13) "Europe/London" +} + +-- clone it -- +object(DateTimeZone)#%d (4) { ["property1"]=> int(99) ["property2"]=> string(5) "Hello" -} - --- Add some more properties -- -object(DateTimeZone)#%d (6) { ["timezone_type"]=> int(3) ["timezone"]=> string(13) "Europe/London" +} + +-- Add some more properties -- +object(DateTimeZone)#%d (6) { ["property1"]=> int(99) ["property2"]=> @@ -75,14 +71,14 @@ bool(true) ["property4"]=> float(10.5) -} - --- clone it -- -object(DateTimeZone)#%d (6) { ["timezone_type"]=> int(3) ["timezone"]=> string(13) "Europe/London" +} + +-- clone it -- +object(DateTimeZone)#%d (6) { ["property1"]=> int(99) ["property2"]=> @@ -91,5 +87,9 @@ bool(true) ["property4"]=> float(10.5) + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/London" } ===DONE=== diff -Nru php7.2-7.2.2/ext/dom/config.m4 php7.2-7.2.3/ext/dom/config.m4 --- php7.2-7.2.2/ext/dom/config.m4 2018-01-30 10:33:39.000000000 +0000 +++ php7.2-7.2.3/ext/dom/config.m4 2018-02-27 16:33:03.000000000 +0000 @@ -33,6 +33,6 @@ PHP_INSTALL_HEADERS([ext/dom/xml_common.h]) PHP_ADD_EXTENSION_DEP(dom, libxml) ], [ - AC_MSG_ERROR([xml2-config not found. Please check your libxml2 installation.]) + AC_MSG_ERROR([libxml2 not found. Please check your libxml2 installation.]) ]) fi diff -Nru php7.2-7.2.2/ext/iconv/iconv.c php7.2-7.2.3/ext/iconv/iconv.c --- php7.2-7.2.2/ext/iconv/iconv.c 2018-01-30 10:33:40.000000000 +0000 +++ php7.2-7.2.3/ext/iconv/iconv.c 2018-02-27 16:33:04.000000000 +0000 @@ -559,6 +559,8 @@ size_t result; zend_string *ret, *out_buffer; + *out = NULL; + /* This is not the right way to get output size... This is not space efficient for large text. diff -Nru php7.2-7.2.2/ext/ldap/config.m4 php7.2-7.2.3/ext/ldap/config.m4 --- php7.2-7.2.2/ext/ldap/config.m4 2018-01-30 10:33:41.000000000 +0000 +++ php7.2-7.2.3/ext/ldap/config.m4 2018-02-27 16:33:08.000000000 +0000 @@ -117,14 +117,16 @@ LDAP_PTHREAD= fi - if test -f $LDAP_LIBDIR/liblber.a || test -f $LDAP_LIBDIR/liblber.$SHLIB_SUFFIX_NAME; then + MACHINE_INCLUDES=$($CC -dumpmachine) + + if test -f $LDAP_LIBDIR/liblber.a || test -f $LDAP_LIBDIR/liblber.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/liblber.a || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/liblber.$SHLIB_SUFFIX_NAME; then PHP_ADD_LIBRARY_WITH_PATH(lber, $LDAP_LIBDIR, LDAP_SHARED_LIBADD) PHP_ADD_LIBRARY_WITH_PATH(ldap, $LDAP_LIBDIR, LDAP_SHARED_LIBADD) - elif test -f $LDAP_LIBDIR/libldap.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/libldap.$SHLIB_SUFFIX_NAME.3 || test -f $LDAP_LIBDIR/libldap.3.dylib; then + elif test -f $LDAP_LIBDIR/libldap.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/libldap.$SHLIB_SUFFIX_NAME.3 || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libldap.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libldap.$SHLIB_SUFFIX_NAME.3 || test -f $LDAP_LIBDIR/libldap.3.dylib; then PHP_ADD_LIBRARY_WITH_PATH(ldap, $LDAP_LIBDIR, LDAP_SHARED_LIBADD) - elif test -f $LDAP_LIBDIR/libssldap50.$SHLIB_SUFFIX_NAME; then + elif test -f $LDAP_LIBDIR/libssldap50.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libssldap50.$SHLIB_SUFFIX_NAME; then if test -n "$LDAP_PTHREAD"; then PHP_ADD_LIBRARY($LDAP_PTHREAD) fi @@ -137,7 +139,7 @@ PHP_ADD_LIBRARY_WITH_PATH(ssl3, $LDAP_LIBDIR, LDAP_SHARED_LIBADD) AC_DEFINE(HAVE_NSLDAP,1,[ ]) - elif test -f $LDAP_LIBDIR/libldapssl41.$SHLIB_SUFFIX_NAME; then + elif test -f $LDAP_LIBDIR/libldapssl41.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libldapssl41.$SHLIB_SUFFIX_NAME; then if test -n "$LDAP_PTHREAD"; then PHP_ADD_LIBRARY($LDAP_PTHREAD) fi @@ -147,35 +149,35 @@ PHP_ADD_LIBRARY_WITH_PATH(ldapssl41, $LDAP_LIBDIR, LDAP_SHARED_LIBADD) AC_DEFINE(HAVE_NSLDAP,1,[ ]) - elif test -f $LDAP_LIBDIR/libldapssl30.$SHLIB_SUFFIX_NAME; then + elif test -f $LDAP_LIBDIR/libldapssl30.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libldapssl30.$SHLIB_SUFFIX_NAME; then if test -n "$LDAP_PTHREAD"; then PHP_ADD_LIBRARY($LDAP_PTHREAD) fi PHP_ADD_LIBRARY_WITH_PATH(ldapssl30, $LDAP_LIBDIR, LDAP_SHARED_LIBADD) AC_DEFINE(HAVE_NSLDAP,1,[ ]) - elif test -f $LDAP_LIBDIR/libldap30.$SHLIB_SUFFIX_NAME; then + elif test -f $LDAP_LIBDIR/libldap30.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libldap30.$SHLIB_SUFFIX_NAME; then if test -n "$LDAP_PTHREAD"; then PHP_ADD_LIBRARY($LDAP_PTHREAD) fi PHP_ADD_LIBRARY_WITH_PATH(ldap30, $LDAP_LIBDIR, LDAP_SHARED_LIBADD) AC_DEFINE(HAVE_NSLDAP,1,[ ]) - elif test -f $LDAP_LIBDIR/libumich_ldap.$SHLIB_SUFFIX_NAME; then + elif test -f $LDAP_LIBDIR/libumich_ldap.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libumich_ldap.$SHLIB_SUFFIX_NAME; then PHP_ADD_LIBRARY_WITH_PATH(umich_lber, $LDAP_LIBDIR, LDAP_SHARED_LIBADD) PHP_ADD_LIBRARY_WITH_PATH(umich_ldap, $LDAP_LIBDIR, LDAP_SHARED_LIBADD) - elif test -f $LDAP_LIBDIR/libclntsh.$SHLIB_SUFFIX_NAME.12.1; then + elif test -f $LDAP_LIBDIR/libclntsh.$SHLIB_SUFFIX_NAME.12.1 || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libclntsh.$SHLIB_SUFFIX_NAME.12.1; then PHP_ADD_LIBRARY_WITH_PATH(clntsh, $LDAP_LIBDIR, LDAP_SHARED_LIBADD) AC_DEFINE(HAVE_ORALDAP,1,[ ]) AC_DEFINE(HAVE_ORALDAP_12,1,[ ]) - elif test -f $LDAP_LIBDIR/libclntsh.$SHLIB_SUFFIX_NAME.11.1; then + elif test -f $LDAP_LIBDIR/libclntsh.$SHLIB_SUFFIX_NAME.11.1 || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libclntsh.$SHLIB_SUFFIX_NAME.11.1; then PHP_ADD_LIBRARY_WITH_PATH(clntsh, $LDAP_LIBDIR, LDAP_SHARED_LIBADD) AC_DEFINE(HAVE_ORALDAP,1,[ ]) AC_DEFINE(HAVE_ORALDAP_11,1,[ ]) - elif test -f $LDAP_LIBDIR/libclntsh.$SHLIB_SUFFIX_NAME; then + elif test -f $LDAP_LIBDIR/libclntsh.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libclntsh.$SHLIB_SUFFIX_NAME; then PHP_ADD_LIBRARY_WITH_PATH(clntsh, $LDAP_LIBDIR, LDAP_SHARED_LIBADD) AC_DEFINE(HAVE_ORALDAP,1,[ ]) AC_DEFINE(HAVE_ORALDAP_10,1,[ ]) diff -Nru php7.2-7.2.2/ext/libxml/config0.m4 php7.2-7.2.3/ext/libxml/config0.m4 --- php7.2-7.2.2/ext/libxml/config0.m4 2018-01-30 10:33:41.000000000 +0000 +++ php7.2-7.2.3/ext/libxml/config0.m4 2018-02-27 16:33:05.000000000 +0000 @@ -20,6 +20,6 @@ PHP_NEW_EXTENSION(libxml, [libxml.c], $ext_shared,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1) PHP_INSTALL_HEADERS([ext/libxml/php_libxml.h]) ], [ - AC_MSG_ERROR([xml2-config not found. Please check your libxml2 installation.]) + AC_MSG_ERROR([libxml2 not found. Please check your libxml2 installation.]) ]) fi diff -Nru php7.2-7.2.2/ext/odbc/php_odbc.c php7.2-7.2.3/ext/odbc/php_odbc.c --- php7.2-7.2.2/ext/odbc/php_odbc.c 2018-01-30 10:33:42.000000000 +0000 +++ php7.2-7.2.3/ext/odbc/php_odbc.c 2018-02-27 16:33:06.000000000 +0000 @@ -1027,6 +1027,13 @@ break; } #endif + /* Workaround for drivers that report VARCHAR(MAX) columns as SQL_VARCHAR (bug #73725) */ + if (SQL_VARCHAR == result->values[i].coltype && displaysize == 0) { + result->values[i].coltype = SQL_LONGVARCHAR; + result->values[i].value = NULL; + break; + } + /* Workaround for Oracle ODBC Driver bug (#50162) when fetching TIMESTAMP column */ if (result->values[i].coltype == SQL_TIMESTAMP) { displaysize += 3; diff -Nru php7.2-7.2.2/ext/odbc/tests/bug73725.phpt php7.2-7.2.3/ext/odbc/tests/bug73725.phpt --- php7.2-7.2.2/ext/odbc/tests/bug73725.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php7.2-7.2.3/ext/odbc/tests/bug73725.phpt 2018-02-27 16:33:06.000000000 +0000 @@ -0,0 +1,55 @@ +--TEST-- +Bug #73725 Unable to retrieve value of varchar(max) type +--SKIPIF-- + +--FILE-- + +==DONE== +--EXPECT-- +array(3) { + ["i"]=> + string(3) "101" + ["txt"]=> + string(8) "Any text" + ["k"]=> + string(2) "33" +} +array(3) { + ["i"]=> + string(3) "102" + ["txt"]=> + string(12) "Müsliriegel" + ["k"]=> + string(2) "34" +} +==DONE== +--CLEAN-- + diff -Nru php7.2-7.2.2/ext/opcache/Optimizer/sccp.c php7.2-7.2.3/ext/opcache/Optimizer/sccp.c --- php7.2-7.2.2/ext/opcache/Optimizer/sccp.c 2018-01-30 10:33:42.000000000 +0000 +++ php7.2-7.2.3/ext/opcache/Optimizer/sccp.c 2018-02-27 16:33:06.000000000 +0000 @@ -695,7 +695,8 @@ } else if (zend_string_equals_literal(name, "strpos")) { if (Z_TYPE_P(args[0]) != IS_STRING || Z_TYPE_P(args[1]) != IS_STRING - || !Z_STRLEN_P(args[1])) { + || !Z_STRLEN_P(args[1]) + || (CG(compiler_options) & ZEND_COMPILE_NO_BUILTIN_STRLEN)) { return FAILURE; } /* pass */ @@ -774,7 +775,8 @@ /* pass */ } else if (zend_string_equals_literal(name, "substr")) { if (Z_TYPE_P(args[0]) != IS_STRING - || Z_TYPE_P(args[1]) != IS_LONG) { + || Z_TYPE_P(args[1]) != IS_LONG + || (CG(compiler_options) & ZEND_COMPILE_NO_BUILTIN_STRLEN)) { return FAILURE; } /* pass */ diff -Nru php7.2-7.2.2/ext/opcache/Optimizer/zend_inference.c php7.2-7.2.3/ext/opcache/Optimizer/zend_inference.c --- php7.2-7.2.2/ext/opcache/Optimizer/zend_inference.c 2018-01-30 10:33:42.000000000 +0000 +++ php7.2-7.2.3/ext/opcache/Optimizer/zend_inference.c 2018-02-27 16:33:06.000000000 +0000 @@ -501,6 +501,28 @@ } } +static inline zend_bool zend_abs_range( + zend_long min, zend_long max, zend_long *abs_min, zend_long *abs_max) { + if (min == ZEND_LONG_MIN) { + /* Cannot take absolute value of LONG_MIN */ + return 0; + } + + if (min >= 0) { + *abs_min = min; + *abs_max = max; + } else if (max <= 0) { + *abs_min = -max; + *abs_max = -min; + } else { + /* Range crossing zero */ + *abs_min = 0; + *abs_max = MAX(max, -min); + } + + return 1; +} + /* Get the normal op corresponding to a compound assignment op */ static inline zend_uchar get_compound_assign_op(zend_uchar opcode) { switch (opcode) { @@ -648,20 +670,35 @@ tmp->min = ZEND_LONG_MIN; tmp->max = ZEND_LONG_MAX; } else { + zend_long op2_abs_min, op2_abs_max; + op1_min = OP1_MIN_RANGE(); op2_min = OP2_MIN_RANGE(); op1_max = OP1_MAX_RANGE(); op2_max = OP2_MAX_RANGE(); - if (op2_min == 0 || op2_max == 0) { - /* avoid division by zero */ + if (!zend_abs_range(op2_min, op2_max, &op2_abs_min, &op2_abs_max)) { break; } - t1 = (op2_min == -1) ? 0 : (op1_min % op2_min); - t2 = (op2_max == -1) ? 0 : (op1_min % op2_max); - t3 = (op2_min == -1) ? 0 : (op1_max % op2_min); - t4 = (op2_max == -1) ? 0 : (op1_max % op2_max); - tmp->min = MIN(MIN(t1, t2), MIN(t3, t4)); - tmp->max = MAX(MAX(t1, t2), MAX(t3, t4)); + + if (op2_abs_max == 0) { + /* Always modulus by zero, nothing we can do */ + break; + } + if (op2_abs_min == 0) { + /* Ignore the modulus by zero case, which will throw */ + op2_abs_min++; + } + + if (op1_min >= 0) { + tmp->min = op1_max < op2_abs_min ? op1_min : 0; + tmp->max = MIN(op1_max, op2_abs_max - 1); + } else if (op1_max <= 0) { + tmp->min = MAX(op1_min, -op2_abs_max + 1); + tmp->max = op1_min > -op2_abs_min ? op1_max : 0; + } else { + tmp->min = MAX(op1_min, -op2_abs_max + 1); + tmp->max = MIN(op1_max, op2_abs_max - 1); + } } return 1; } @@ -1734,6 +1771,16 @@ } /* }}} */ +static uint32_t get_ssa_alias_types(zend_ssa_alias_kind alias) { + if (alias == PHP_ERRORMSG_ALIAS) { + return MAY_BE_STRING | MAY_BE_RC1 | MAY_BE_RCN; + } else if (alias == HTTP_RESPONSE_HEADER_ALIAS) { + return MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING | MAY_BE_RC1 | MAY_BE_RCN; + } else { + return MAY_BE_UNDEF | MAY_BE_RC1 | MAY_BE_RCN | MAY_BE_REF | MAY_BE_ANY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF; + } +} + #define UPDATE_SSA_TYPE(_type, _var) \ do { \ uint32_t __type = (_type); \ @@ -1742,7 +1789,8 @@ __type |= MAY_BE_RC1 | MAY_BE_RCN | MAY_BE_ANY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF; \ } \ if (__var >= 0) { \ - if (ssa_vars[__var].var < op_array->last_var) { \ + zend_ssa_var *__ssa_var = &ssa_vars[__var]; \ + if (__ssa_var->var < op_array->last_var) { \ if (__type & (MAY_BE_REF|MAY_BE_RCN)) { \ __type |= MAY_BE_RC1 | MAY_BE_RCN; \ } \ @@ -1750,6 +1798,9 @@ /* TODO: support for array keys and ($str . "")*/ \ __type |= MAY_BE_RCN; \ } \ + if (__ssa_var->alias) { \ + __type |= get_ssa_alias_types(__ssa_var->alias); \ + } \ } \ if (ssa_var_info[__var].type != __type) { \ if (ssa_var_info[__var].type & ~__type) { \ @@ -3880,18 +3931,6 @@ /* Narrowing integer initialization to doubles */ zend_type_narrowing(op_array, script, ssa); - for (j = 0; j < ssa_vars_count; j++) { - if (ssa->vars[j].alias) { - if (ssa->vars[j].alias == PHP_ERRORMSG_ALIAS) { - ssa_var_info[j].type |= MAY_BE_STRING | MAY_BE_RC1 | MAY_BE_RCN; - } else if (ssa->vars[j].alias == HTTP_RESPONSE_HEADER_ALIAS) { - ssa_var_info[j].type |= MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING | MAY_BE_RC1 | MAY_BE_RCN; - } else { - ssa_var_info[j].type = MAY_BE_UNDEF | MAY_BE_RC1 | MAY_BE_RCN | MAY_BE_REF | MAY_BE_ANY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF; - } - } - } - if (ZEND_FUNC_INFO(op_array)) { zend_func_return_info(op_array, script, 1, 0, &ZEND_FUNC_INFO(op_array)->return_info); } @@ -3919,6 +3958,9 @@ for (i = 0; i < op_array->last_var; i++) { ssa_var_info[i].type = MAY_BE_UNDEF; ssa_var_info[i].has_range = 0; + if (ssa->vars[i].alias) { + ssa_var_info[i].type |= get_ssa_alias_types(ssa->vars[i].alias); + } } } for (i = op_array->last_var; i < ssa->vars_count; i++) { diff -Nru php7.2-7.2.2/ext/opcache/tests/bug75729.phpt php7.2-7.2.3/ext/opcache/tests/bug75729.phpt --- php7.2-7.2.2/ext/opcache/tests/bug75729.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php7.2-7.2.3/ext/opcache/tests/bug75729.phpt 2018-02-27 16:33:06.000000000 +0000 @@ -0,0 +1,16 @@ +--TEST-- +Bug #75729: opcache segfault when installing Bitrix +--SKIPIF-- + +--INI-- +opcache.enable_cli=1 +mbstring.func_overload=2 +--FILE-- + +--EXPECT-- +Deprecated: The mbstring.func_overload directive is deprecated in Unknown on line 0 +int(1) diff -Nru php7.2-7.2.2/ext/opcache/tests/bug75893.phpt php7.2-7.2.3/ext/opcache/tests/bug75893.phpt --- php7.2-7.2.2/ext/opcache/tests/bug75893.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php7.2-7.2.3/ext/opcache/tests/bug75893.phpt 2018-02-27 16:33:06.000000000 +0000 @@ -0,0 +1,22 @@ +--TEST-- +Bug #75893: file_get_contents $http_response_header variable bugged with opcache +--INI-- +opcache.enable_cli=1 +track_errors=1 +--FILE-- + +--EXPECTF-- +Deprecated: Directive 'track_errors' is deprecated in Unknown on line 0 + +Notice: Undefined variable: undef in %s on line %d +string(1) "U" diff -Nru php7.2-7.2.2/ext/opcache/tests/bug75938.phpt php7.2-7.2.3/ext/opcache/tests/bug75938.phpt --- php7.2-7.2.2/ext/opcache/tests/bug75938.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php7.2-7.2.3/ext/opcache/tests/bug75938.phpt 2018-02-27 16:33:06.000000000 +0000 @@ -0,0 +1,16 @@ +--TEST-- +Bug #75938: Modulus value not stored in variable +--FILE-- + +--EXPECT-- +int(1) +int(1) diff -Nru php7.2-7.2.2/ext/opcache/tests/jmp_elim_001.phpt php7.2-7.2.3/ext/opcache/tests/jmp_elim_001.phpt --- php7.2-7.2.2/ext/opcache/tests/jmp_elim_001.phpt 2018-01-30 10:33:42.000000000 +0000 +++ php7.2-7.2.3/ext/opcache/tests/jmp_elim_001.phpt 2018-02-27 16:33:06.000000000 +0000 @@ -2,6 +2,7 @@ Edge-cases in constant conditional jump elimination --SKIPIF-- + --FILE-- = 0x10100000) die("skip OpenSSL < v1.1.0 required"); --FILE-- [ 'local_cert' => __DIR__ . '/domain1.pem', 'SNI_server_certs' => [ - "domain1.com" => [ - 'local_cert' => __DIR__ . "/sni_server_domain1_cert.pem", - 'local_pk' => __DIR__ . "/sni_server_domain1_key.pem" + "cs.php.net" => [ + 'local_cert' => __DIR__ . "/sni_server_cs_cert.pem", + 'local_pk' => __DIR__ . "/sni_server_cs_key.pem" ], - "domain2.com" => [ - 'local_cert' => __DIR__ . "/sni_server_domain2_cert.pem", - 'local_pk' => __DIR__ . "/sni_server_domain2_key.pem" + "uk.php.net" => [ + 'local_cert' => __DIR__ . "/sni_server_uk_cert.pem", + 'local_pk' => __DIR__ . "/sni_server_uk_key.pem" ], - "domain3.com" => [ - 'local_cert' => __DIR__ . "/sni_server_domain3_cert.pem", - 'local_pk' => __DIR__ . "/sni_server_domain3_key.pem" + "us.php.net" => [ + 'local_cert' => __DIR__ . "/sni_server_us_cert.pem", + 'local_pk' => __DIR__ . "/sni_server_us_key.pem" ], ] ]]); @@ -43,19 +42,19 @@ phpt_wait(); - $ctxArr['peer_name'] = 'domain1.com'; + $ctxArr['peer_name'] = 'cs.php.net'; $ctx = stream_context_create(['ssl' => $ctxArr]); $client = stream_socket_client("tls://127.0.0.1:64321", $errno, $errstr, 1, $flags, $ctx); $cert = stream_context_get_options($ctx)['ssl']['peer_certificate']; var_dump(openssl_x509_parse($cert)['subject']['CN']); - $ctxArr['peer_name'] = 'domain2.com'; + $ctxArr['peer_name'] = 'uk.php.net'; $ctx = stream_context_create(['ssl' => $ctxArr]); $client = @stream_socket_client("tls://127.0.0.1:64321", $errno, $errstr, 1, $flags, $ctx); $cert = stream_context_get_options($ctx)['ssl']['peer_certificate']; var_dump(openssl_x509_parse($cert)['subject']['CN']); - $ctxArr['peer_name'] = 'domain3.com'; + $ctxArr['peer_name'] = 'us.php.net'; $ctx = stream_context_create(['ssl' => $ctxArr]); $client = @stream_socket_client("tls://127.0.0.1:64321", $errno, $errstr, 1, $flags, $ctx); $cert = stream_context_get_options($ctx)['ssl']['peer_certificate']; @@ -65,6 +64,6 @@ include 'ServerClientTestCase.inc'; ServerClientTestCase::getInstance()->run($clientCode, $serverCode); --EXPECTF-- -string(%d) "domain1.com" -string(%d) "domain2.com" -string(%d) "domain3.com" +string(%d) "cs.php.net" +string(%d) "uk.php.net" +string(%d) "us.php.net" diff -Nru php7.2-7.2.2/ext/openssl/tests/sni_server.phpt php7.2-7.2.3/ext/openssl/tests/sni_server.phpt --- php7.2-7.2.2/ext/openssl/tests/sni_server.phpt 2018-01-30 10:33:43.000000000 +0000 +++ php7.2-7.2.3/ext/openssl/tests/sni_server.phpt 2018-02-27 16:33:08.000000000 +0000 @@ -3,7 +3,6 @@ --SKIPIF-- = 0x10100000) die("skip OpenSSL < v1.1.0 required"); --FILE-- [ 'local_cert' => __DIR__ . '/domain1.pem', 'SNI_server_certs' => [ - "domain1.com" => __DIR__ . "/sni_server_domain1.pem", - "domain2.com" => __DIR__ . "/sni_server_domain2.pem", - "domain3.com" => __DIR__ . "/sni_server_domain3.pem" + "cs.php.net" => __DIR__ . "/sni_server_cs.pem", + "uk.php.net" => __DIR__ . "/sni_server_uk.pem", + "us.php.net" => __DIR__ . "/sni_server_us.pem" ] ]]); @@ -34,19 +33,19 @@ phpt_wait(); - $ctxArr['peer_name'] = 'domain1.com'; + $ctxArr['peer_name'] = 'cs.php.net'; $ctx = stream_context_create(['ssl' => $ctxArr]); $client = stream_socket_client("tls://127.0.0.1:64321", $errno, $errstr, 1, $flags, $ctx); $cert = stream_context_get_options($ctx)['ssl']['peer_certificate']; var_dump(openssl_x509_parse($cert)['subject']['CN']); - $ctxArr['peer_name'] = 'domain2.com'; + $ctxArr['peer_name'] = 'uk.php.net'; $ctx = stream_context_create(['ssl' => $ctxArr]); $client = @stream_socket_client("tls://127.0.0.1:64321", $errno, $errstr, 1, $flags, $ctx); $cert = stream_context_get_options($ctx)['ssl']['peer_certificate']; var_dump(openssl_x509_parse($cert)['subject']['CN']); - $ctxArr['peer_name'] = 'domain3.com'; + $ctxArr['peer_name'] = 'us.php.net'; $ctx = stream_context_create(['ssl' => $ctxArr]); $client = @stream_socket_client("tls://127.0.0.1:64321", $errno, $errstr, 1, $flags, $ctx); $cert = stream_context_get_options($ctx)['ssl']['peer_certificate']; @@ -56,6 +55,6 @@ include 'ServerClientTestCase.inc'; ServerClientTestCase::getInstance()->run($clientCode, $serverCode); --EXPECTF-- -string(%d) "domain1.com" -string(%d) "domain2.com" -string(%d) "domain3.com" +string(%d) "cs.php.net" +string(%d) "uk.php.net" +string(%d) "us.php.net" diff -Nru php7.2-7.2.2/ext/openssl/tests/sni_server_uk_cert.pem php7.2-7.2.3/ext/openssl/tests/sni_server_uk_cert.pem --- php7.2-7.2.2/ext/openssl/tests/sni_server_uk_cert.pem 1970-01-01 00:00:00.000000000 +0000 +++ php7.2-7.2.3/ext/openssl/tests/sni_server_uk_cert.pem 2018-02-27 16:33:08.000000000 +0000 @@ -0,0 +1,30 @@ +-----BEGIN CERTIFICATE----- +MIIFIjCCAwqgAwIBAgICEAMwDQYJKoZIhvcNAQELBQAwVTELMAkGA1UEBhMCR0Ix +EDAOBgNVBAgMB0VuZ2xhbmQxEDAOBgNVBAoMB1BIUC5uZXQxEDAOBgNVBAsMB29w +ZW5zc2wxEDAOBgNVBAMMB3BocC5uZXQwHhcNMTgwMTE0MTgzNjMyWhcNMjYwNDAy +MTgzNjMyWjBGMQswCQYDVQQGEwJHQjEQMA4GA1UECAwHRW5nbGFuZDEQMA4GA1UE +CgwHUEhQLm5ldDETMBEGA1UEAwwKdWsucGhwLm5ldDCCASIwDQYJKoZIhvcNAQEB +BQADggEPADCCAQoCggEBAKzKRXj0jVBzRwolFn7Ej0MR2kE6Q36IBCEiDLhquSYR +Lh1spR0XudSVmRot/Wvz2PawApX4P6qj57scBQ6KL4ULKvSndCZ7F1tdQjEqogYp +n/L8oBhP1dgyDonsewG/PucxC+3Aqzcl3w5Pg7qE+zad42khP7t9TjFAMxc+PxC+ +2as5ZCDJBwfxksCyCQfFWx7eB7p39vGy63k3Izv+UKTZEhbSdT721kb91oXkecpE +EFhihfVYMGMEtC7u2JLSxdkRhWYSMqVCvI2syYsLAUUNH2kgqQF00j2Iddhg3oMA +IiqhpC/n2slHVhp56WE1TsrGC/JgqIvQK9AT4LRxFb8CAwEAAaOCAQkwggEFMAkG +A1UdEwQCMAAwEQYJYIZIAYb4QgEBBAQDAgZAMDMGCWCGSAGG+EIBDQQmFiRPcGVu +U1NMIEdlbmVyYXRlZCBTZXJ2ZXIgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFJK58uJe +Lv8WDOR8TTLUcSxO1zCyMGwGA1UdIwRlMGOAFOPK44Eacedv7HbR2Igcbew+4kUa +oUekRTBDMQswCQYDVQQGEwJHQjEQMA4GA1UECAwHRW5nbGFuZDEQMA4GA1UECgwH +UEhQLm5ldDEQMA4GA1UEAwwHcGhwLm5ldIICEAAwDgYDVR0PAQH/BAQDAgWgMBMG +A1UdJQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3DQEBCwUAA4ICAQDHayU795hFnQNj +fuYV21sEmkSjgtp6X4rV9JfoCp8U2gieL4mizoCPx9Q8HYaAf98hPYTofGUaCSd+ +Xlzd8lhLt9GCU+BsCxGtJocrjOQDhyhkioN8iirQRTtJpRVC6a4RCBGpenOD7Z7C +Z32uGXohzFuigP/J8/SXBdHrlpNSa03iEkkisPR46mbGj06lFVOFHJDNKA3CnQwM +3VfqvZt0ksZi/gAOol8dtrAd3k5JBfJ2BtqsPbycEGAhsGrTK/MeqiFcO8QZiXpN +qf0wZzOMFZJ4HqTiHs4TMMQaDK8c4qfR0l1OE224ijcB5NlqMjGAZabMfHgNZcl7 +fYPX+POsOMaqubv98uoC0PCK8NCTyfB4V/el72EEoVfwKYOxm3eYXBEE2ZNyIci6 +YKYhNa9e2k+cFueYMztV06HTGgkcHcSJATP+3ISTRx3tj1BPmc4O4WAMEMx1E0gg +PaVrBVAylGzt8kaMaOQMBImpsALSfutq6+KtQiu0OTGS3yVUGamV4AyRjuwF1/ZA +kZbjmNEGsf9d2rzS89ckds24QUx0zrfJ56p7lRvyVK/pML7iadv8dUH3fKDDDerD +oocLjOjNxFGN9Woz+kfidA8Siu0zsfQ6CLPlaQrVAVQH4iMuCZraqMc3TqAiUKRj +iHKp6FFrRZmY8W8HEKHv98uGofn+3g== +-----END CERTIFICATE----- diff -Nru php7.2-7.2.2/ext/openssl/tests/sni_server_uk_key.pem php7.2-7.2.3/ext/openssl/tests/sni_server_uk_key.pem --- php7.2-7.2.2/ext/openssl/tests/sni_server_uk_key.pem 1970-01-01 00:00:00.000000000 +0000 +++ php7.2-7.2.3/ext/openssl/tests/sni_server_uk_key.pem 2018-02-27 16:33:08.000000000 +0000 @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEArMpFePSNUHNHCiUWfsSPQxHaQTpDfogEISIMuGq5JhEuHWyl +HRe51JWZGi39a/PY9rAClfg/qqPnuxwFDoovhQsq9Kd0JnsXW11CMSqiBimf8vyg +GE/V2DIOiex7Ab8+5zEL7cCrNyXfDk+DuoT7Np3jaSE/u31OMUAzFz4/EL7Zqzlk +IMkHB/GSwLIJB8VbHt4Hunf28bLreTcjO/5QpNkSFtJ1PvbWRv3WheR5ykQQWGKF +9VgwYwS0Lu7YktLF2RGFZhIypUK8jazJiwsBRQ0faSCpAXTSPYh12GDegwAiKqGk +L+fayUdWGnnpYTVOysYL8mCoi9Ar0BPgtHEVvwIDAQABAoIBAGpg7XyWMxpAno/k +XYEWSo0kRJa75CnWW5R6fhJbwjlpglajONQ8czAqGeRARDFeI0lc+3qRJ8FKv7Q2 +f/Z/pNnoEj4liiDWz350X/gdIztgDRVv6rCNFj7QMps/eEuPDo8PZySs5bxCGJ2a +3qLKlE7/za4/xhkMAEPaHppEvFb15dpomqP2Fjqei9afp8tD+xJv9BGtkFIy9acw +94AWQi974kgW7ZzfEf8RqHM0ExKiESCc26knbcBu0tQ892YHggMccUMk/UrVgR5d +vuGOBurlYGLBstSDSKCCe6la4N/FX3FiC3WhVNescnuTZPXcX3zebh7roGjgrTdd +6UJYBIECgYEA09XYihdwW66G9Y09OatzlzBh1Rvzjv2Vl5NmWHHb6vh38H4PcOof +S1pT0JvRzpt8uEs4i+Eda5PyQyp4iGtD+DQ07Dxh2jiixsE3PRFRG2wg2QCgDHnS +6vgV1VOqA/A4on4nhxLZXxhX4YvHaJYlm1bZ+amG+j5XiI/NtHJm9k8CgYEA0NB9 +bAoaZnc06+T8rMaO45boX5SvYsCZbtY3VRl75SrbMal0IKfnXHELVHuei12LmlMs +LuFgG8jGO3+ncxUqMytoGvrmk/cM9tCNbDKVHtFbqz0qt9lkDAwLsBougKnVsNDW +Aae/tz/wYXJct86unfLh0xtvkx5Iz1we4cS1fZECgYA8YR+vfK7R8xUUuIVTAsOX +vHqmO6lYgH87DRCG9S0x9FB7g/LyxEjXOY/aTg+nTDpobUhY1nmESE8tRdXFTI27 +GWZcT3m0sZ/z9u6/wUfVAST7tWnpJHAx+TR/8bDsHnSGHF836O98Y3vpFeZosSNW ++5J1zxRiD5LzocmIPXOLkQKBgEgHApxXx898YwbTj8zRGMysay89DFpV8RboUWHL +To83/y/cMbBp+kZKwAu+MGwGMndjJSRunUY4NRik6c+qh0nrORfFX+++Efy4529g +60scEDC7Apc0J2x4Yze1cED1VD6PaqJbiKffKD2UwyKr6lOVSgwVtKDcm2Tbc9OQ +lMHhAoGBAIPwYVxzWM6I6pr8x2TucpBZZReLytz7uzybMNvbKCrwlETbNNXubnfp +nPuPKzpeRI0y26pIIAbijzFW0MXq+kIu3H7we8TaImsJ1AaQCTYeoLWBVcr6RISk +3d4i7iT35aWCuhPVve0FNIv/u3jrqX2H2C2MXMiLOsw1GFxPvpi4 +-----END RSA PRIVATE KEY----- diff -Nru php7.2-7.2.2/ext/openssl/tests/sni_server_uk.pem php7.2-7.2.3/ext/openssl/tests/sni_server_uk.pem --- php7.2-7.2.2/ext/openssl/tests/sni_server_uk.pem 1970-01-01 00:00:00.000000000 +0000 +++ php7.2-7.2.3/ext/openssl/tests/sni_server_uk.pem 2018-02-27 16:33:08.000000000 +0000 @@ -0,0 +1,57 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEArMpFePSNUHNHCiUWfsSPQxHaQTpDfogEISIMuGq5JhEuHWyl +HRe51JWZGi39a/PY9rAClfg/qqPnuxwFDoovhQsq9Kd0JnsXW11CMSqiBimf8vyg +GE/V2DIOiex7Ab8+5zEL7cCrNyXfDk+DuoT7Np3jaSE/u31OMUAzFz4/EL7Zqzlk +IMkHB/GSwLIJB8VbHt4Hunf28bLreTcjO/5QpNkSFtJ1PvbWRv3WheR5ykQQWGKF +9VgwYwS0Lu7YktLF2RGFZhIypUK8jazJiwsBRQ0faSCpAXTSPYh12GDegwAiKqGk +L+fayUdWGnnpYTVOysYL8mCoi9Ar0BPgtHEVvwIDAQABAoIBAGpg7XyWMxpAno/k +XYEWSo0kRJa75CnWW5R6fhJbwjlpglajONQ8czAqGeRARDFeI0lc+3qRJ8FKv7Q2 +f/Z/pNnoEj4liiDWz350X/gdIztgDRVv6rCNFj7QMps/eEuPDo8PZySs5bxCGJ2a +3qLKlE7/za4/xhkMAEPaHppEvFb15dpomqP2Fjqei9afp8tD+xJv9BGtkFIy9acw +94AWQi974kgW7ZzfEf8RqHM0ExKiESCc26knbcBu0tQ892YHggMccUMk/UrVgR5d +vuGOBurlYGLBstSDSKCCe6la4N/FX3FiC3WhVNescnuTZPXcX3zebh7roGjgrTdd +6UJYBIECgYEA09XYihdwW66G9Y09OatzlzBh1Rvzjv2Vl5NmWHHb6vh38H4PcOof +S1pT0JvRzpt8uEs4i+Eda5PyQyp4iGtD+DQ07Dxh2jiixsE3PRFRG2wg2QCgDHnS +6vgV1VOqA/A4on4nhxLZXxhX4YvHaJYlm1bZ+amG+j5XiI/NtHJm9k8CgYEA0NB9 +bAoaZnc06+T8rMaO45boX5SvYsCZbtY3VRl75SrbMal0IKfnXHELVHuei12LmlMs +LuFgG8jGO3+ncxUqMytoGvrmk/cM9tCNbDKVHtFbqz0qt9lkDAwLsBougKnVsNDW +Aae/tz/wYXJct86unfLh0xtvkx5Iz1we4cS1fZECgYA8YR+vfK7R8xUUuIVTAsOX +vHqmO6lYgH87DRCG9S0x9FB7g/LyxEjXOY/aTg+nTDpobUhY1nmESE8tRdXFTI27 +GWZcT3m0sZ/z9u6/wUfVAST7tWnpJHAx+TR/8bDsHnSGHF836O98Y3vpFeZosSNW ++5J1zxRiD5LzocmIPXOLkQKBgEgHApxXx898YwbTj8zRGMysay89DFpV8RboUWHL +To83/y/cMbBp+kZKwAu+MGwGMndjJSRunUY4NRik6c+qh0nrORfFX+++Efy4529g +60scEDC7Apc0J2x4Yze1cED1VD6PaqJbiKffKD2UwyKr6lOVSgwVtKDcm2Tbc9OQ +lMHhAoGBAIPwYVxzWM6I6pr8x2TucpBZZReLytz7uzybMNvbKCrwlETbNNXubnfp +nPuPKzpeRI0y26pIIAbijzFW0MXq+kIu3H7we8TaImsJ1AaQCTYeoLWBVcr6RISk +3d4i7iT35aWCuhPVve0FNIv/u3jrqX2H2C2MXMiLOsw1GFxPvpi4 +-----END RSA PRIVATE KEY----- +-----BEGIN CERTIFICATE----- +MIIFIjCCAwqgAwIBAgICEAMwDQYJKoZIhvcNAQELBQAwVTELMAkGA1UEBhMCR0Ix +EDAOBgNVBAgMB0VuZ2xhbmQxEDAOBgNVBAoMB1BIUC5uZXQxEDAOBgNVBAsMB29w +ZW5zc2wxEDAOBgNVBAMMB3BocC5uZXQwHhcNMTgwMTE0MTgzNjMyWhcNMjYwNDAy +MTgzNjMyWjBGMQswCQYDVQQGEwJHQjEQMA4GA1UECAwHRW5nbGFuZDEQMA4GA1UE +CgwHUEhQLm5ldDETMBEGA1UEAwwKdWsucGhwLm5ldDCCASIwDQYJKoZIhvcNAQEB +BQADggEPADCCAQoCggEBAKzKRXj0jVBzRwolFn7Ej0MR2kE6Q36IBCEiDLhquSYR +Lh1spR0XudSVmRot/Wvz2PawApX4P6qj57scBQ6KL4ULKvSndCZ7F1tdQjEqogYp +n/L8oBhP1dgyDonsewG/PucxC+3Aqzcl3w5Pg7qE+zad42khP7t9TjFAMxc+PxC+ +2as5ZCDJBwfxksCyCQfFWx7eB7p39vGy63k3Izv+UKTZEhbSdT721kb91oXkecpE +EFhihfVYMGMEtC7u2JLSxdkRhWYSMqVCvI2syYsLAUUNH2kgqQF00j2Iddhg3oMA +IiqhpC/n2slHVhp56WE1TsrGC/JgqIvQK9AT4LRxFb8CAwEAAaOCAQkwggEFMAkG +A1UdEwQCMAAwEQYJYIZIAYb4QgEBBAQDAgZAMDMGCWCGSAGG+EIBDQQmFiRPcGVu +U1NMIEdlbmVyYXRlZCBTZXJ2ZXIgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFJK58uJe +Lv8WDOR8TTLUcSxO1zCyMGwGA1UdIwRlMGOAFOPK44Eacedv7HbR2Igcbew+4kUa +oUekRTBDMQswCQYDVQQGEwJHQjEQMA4GA1UECAwHRW5nbGFuZDEQMA4GA1UECgwH +UEhQLm5ldDEQMA4GA1UEAwwHcGhwLm5ldIICEAAwDgYDVR0PAQH/BAQDAgWgMBMG +A1UdJQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3DQEBCwUAA4ICAQDHayU795hFnQNj +fuYV21sEmkSjgtp6X4rV9JfoCp8U2gieL4mizoCPx9Q8HYaAf98hPYTofGUaCSd+ +Xlzd8lhLt9GCU+BsCxGtJocrjOQDhyhkioN8iirQRTtJpRVC6a4RCBGpenOD7Z7C +Z32uGXohzFuigP/J8/SXBdHrlpNSa03iEkkisPR46mbGj06lFVOFHJDNKA3CnQwM +3VfqvZt0ksZi/gAOol8dtrAd3k5JBfJ2BtqsPbycEGAhsGrTK/MeqiFcO8QZiXpN +qf0wZzOMFZJ4HqTiHs4TMMQaDK8c4qfR0l1OE224ijcB5NlqMjGAZabMfHgNZcl7 +fYPX+POsOMaqubv98uoC0PCK8NCTyfB4V/el72EEoVfwKYOxm3eYXBEE2ZNyIci6 +YKYhNa9e2k+cFueYMztV06HTGgkcHcSJATP+3ISTRx3tj1BPmc4O4WAMEMx1E0gg +PaVrBVAylGzt8kaMaOQMBImpsALSfutq6+KtQiu0OTGS3yVUGamV4AyRjuwF1/ZA +kZbjmNEGsf9d2rzS89ckds24QUx0zrfJ56p7lRvyVK/pML7iadv8dUH3fKDDDerD +oocLjOjNxFGN9Woz+kfidA8Siu0zsfQ6CLPlaQrVAVQH4iMuCZraqMc3TqAiUKRj +iHKp6FFrRZmY8W8HEKHv98uGofn+3g== +-----END CERTIFICATE----- diff -Nru php7.2-7.2.2/ext/openssl/tests/sni_server_us_cert.pem php7.2-7.2.3/ext/openssl/tests/sni_server_us_cert.pem --- php7.2-7.2.2/ext/openssl/tests/sni_server_us_cert.pem 1970-01-01 00:00:00.000000000 +0000 +++ php7.2-7.2.3/ext/openssl/tests/sni_server_us_cert.pem 2018-02-27 16:33:08.000000000 +0000 @@ -0,0 +1,30 @@ +-----BEGIN CERTIFICATE----- +MIIFIjCCAwqgAwIBAgICEAQwDQYJKoZIhvcNAQELBQAwVTELMAkGA1UEBhMCR0Ix +EDAOBgNVBAgMB0VuZ2xhbmQxEDAOBgNVBAoMB1BIUC5uZXQxEDAOBgNVBAsMB29w +ZW5zc2wxEDAOBgNVBAMMB3BocC5uZXQwHhcNMTgwMTE0MTgzNjQ0WhcNMjYwNDAy +MTgzNjQ0WjBGMQswCQYDVQQGEwJHQjEQMA4GA1UECAwHRW5nbGFuZDEQMA4GA1UE +CgwHUEhQLm5ldDETMBEGA1UEAwwKdXMucGhwLm5ldDCCASIwDQYJKoZIhvcNAQEB +BQADggEPADCCAQoCggEBANUJAt7YjWA2PmcTJj22oGFGzKc7l6PZlQb2IfOm2GWn +ge27bEAgSvulQ+A9i40d0bM6c5js4SV45vI9LfhnkUtzjCDO+fwSgJ4sV4nEUiG/ +M3SD8yT/fdr7zKvKeOv137QHwYQDDmgqnA/Oc6cl+D4Xwve995zsjeMqsefDuFIV +Uyooelvf5Xad7sEmAFvh8qCDZx5bP2xTvL7+tCuVSIZMSt9Cx5wuT7wchn7hzoK7 +HBE4bI1tBEqjtPvZfPCoRnZi4M72wZRsTc4gjH59C3BR+qdiE3N36A+C0sxhBbSf +djmYt27gjn2xbDe71h07BIvPX0XAp1hrTMC1MdEwpbkCAwEAAaOCAQkwggEFMAkG +A1UdEwQCMAAwEQYJYIZIAYb4QgEBBAQDAgZAMDMGCWCGSAGG+EIBDQQmFiRPcGVu +U1NMIEdlbmVyYXRlZCBTZXJ2ZXIgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFOXnUeNs +grKQb+EvG36DXjjDDmsFMGwGA1UdIwRlMGOAFOPK44Eacedv7HbR2Igcbew+4kUa +oUekRTBDMQswCQYDVQQGEwJHQjEQMA4GA1UECAwHRW5nbGFuZDEQMA4GA1UECgwH +UEhQLm5ldDEQMA4GA1UEAwwHcGhwLm5ldIICEAAwDgYDVR0PAQH/BAQDAgWgMBMG +A1UdJQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3DQEBCwUAA4ICAQBDLwuLbx75ACSU +5cF2L/D17JEnhlna62MgKNdpNLJSpaofK2Lk2BqsmnQf5JdkrXWMUN/DsmXZc9pq +25XmprfABUP9Cx18KPVqLQ43Z9o+R9xI1Ospt5mrpxGp6l2BHSs/4G69nuPFpcIJ +iabnLYdUk2Z+64lPe4EMBrZH+pj4xn3JA59BACJYNYn0nLaw45DIAyzyLJ0vVSwc +0JtjsztXQov4UqdWXxLRFfe2nEGoK8ZkTJ8ELcCYu6sNSBjw9Ech78uXN1BQOBTK +lhAgN3FKqOp3hqf0umqf35gDvmWwLB/eptUYZ96gBYT0tbPA0P+YsW+iZmamxXma +Odgg8iRcPxKl9bVPt57NLaDy/RQhOxTGXQs1Q2jp7UhzqoZDClwVSDxd6DEppAFA +OZAY+Rsrm7VoCwVQ/1KbcJHmJ/79tArvaWJk3KHLGMpdZq4KwrC3hM8/QxYtyX/6 +cfnXvShBYCdfTGgNlj3t/mNAgp1ZB3s9ClGqRBR/P0Db+ryv5DuxYM6nzEB3Od0y +kT5tHbXDQY+1HCExjOMi7Al0cmC2r3+oxDA4UjGv+npgcfeoxQhXmm/SQRiPdKlb +vT0D594sLoB23jqA9bMehpxEyI7eGjfFUmXwMeu0tJhipvpJI3ogJoM+SCFTyLkc +12cPiz/sR/ALhvhUJXTeUH8wxPjzbA== +-----END CERTIFICATE----- diff -Nru php7.2-7.2.2/ext/openssl/tests/sni_server_us_key.pem php7.2-7.2.3/ext/openssl/tests/sni_server_us_key.pem --- php7.2-7.2.2/ext/openssl/tests/sni_server_us_key.pem 1970-01-01 00:00:00.000000000 +0000 +++ php7.2-7.2.3/ext/openssl/tests/sni_server_us_key.pem 2018-02-27 16:33:08.000000000 +0000 @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpQIBAAKCAQEA1QkC3tiNYDY+ZxMmPbagYUbMpzuXo9mVBvYh86bYZaeB7bts +QCBK+6VD4D2LjR3RszpzmOzhJXjm8j0t+GeRS3OMIM75/BKAnixXicRSIb8zdIPz +JP992vvMq8p46/XftAfBhAMOaCqcD85zpyX4PhfC9733nOyN4yqx58O4UhVTKih6 +W9/ldp3uwSYAW+HyoINnHls/bFO8vv60K5VIhkxK30LHnC5PvByGfuHOgrscEThs +jW0ESqO0+9l88KhGdmLgzvbBlGxNziCMfn0LcFH6p2ITc3foD4LSzGEFtJ92OZi3 +buCOfbFsN7vWHTsEi89fRcCnWGtMwLUx0TCluQIDAQABAoIBAQCnsUQ1Lrl6trhA +Yu6DPbLZX+XQ7jPbonaQ2Ea5iOhmfIjmHdaEU+cyV1EqvseO+Z4MO0KraiuAV79T +h50cIEpa3kW7vbFCHz5nQ/hUVdlg/yT93rASu5rSOctOnz64Xv8Ms948kDtS+9eF +Cbo4JMdX+VRbt4mmWP8HhqAsFACPexEoWxJcIxwFcI24GTGzySjemNjQzbmcVhzM +a4k6n8DolCL1cRS54C5Aaf5g4+IFDgyydcgZXp1lnX3MnqivSNkejnPnY55NcmrH +X3ZWPlAi9GHOJE33uy8bGWnip7Tn4iTt6tJvjz/yP82TGACDg1B8XsKrqsuQLsoU +cNBVGcQBAoGBAPteCgNmuNOpo4SRA1UVRw1WgnE8YtnNA6vYyVcTLSpqabq33UaD +03L9CQsbHtj88U+E8OH24Iqj3U9x7QJfH8DVmWuBrlwez80JsKGnLdViHydjKcAz +H2Cbv+SiWeaWXkFCkN4Jf7k3q0Ew4SG2LOq5PVUy/NB4bilbJD2ExKpZAoGBANj2 +Hpwo35IQ4XfSSsGaCdn+8ajMcNUMMGZ6YkZqmVO4kogqobyrPL/2KE9ol/hlacw6 +U/6Digox5/wqruYfqyM8lqGOq2/0Xf7c4XfiOTS9Na4JN3OGzlyqPvcn2zdqhYFY +iHPu2RqpA+LhCHW9Zs8C1Bp/KAEPdRP6OabqVaphAoGACLrHVj7nBFLL3vq6RuYq +RYhPl2cld7LrAbjRpTiBRQvVCCsCgERrv36SJdSXSanfJ4fSZcaRHb97HBs0w/RR +wfypC1bBm2lmhhRkEfkgWlzCADgtZwNff5dpHqOUw7FNLK8HIO7rhJ8uT2FHMEiH +Xs94FdFjfknwaXdE1u4ZdmECgYEAgxfbkQHFbO2UPqErGGXp0/WOsS6ucpyF1jXW +kbOxZ3vb1jjkNyrEbzzeSHTrdmRYk9UekWeLjfNvt9dWjKfP8V+XqJCbF+9wqCFw +fs6LQEmfWMQq5DwtDqKznwVPGOHdPzVuZZaJSemb9oeAZBwINccAv+3bDyD23hZQ +pYFsN6ECgYEA33QYDNG/spki4D8rlxyxZ+1MdB/efnrGBhO8FsJpG5+AtmYhWgD9 +sl29+3aiRkmDznoy36z+hoeZePILEAKMcbHyXOymixOHPuaZJ95hbvq6sqd6WMAe +w5tHnxlfEuu11zatolk6WiAmTmG3sZpN5Tqloq0Ye4dvlhVKNV3Bn3E= +-----END RSA PRIVATE KEY----- diff -Nru php7.2-7.2.2/ext/openssl/tests/sni_server_us.pem php7.2-7.2.3/ext/openssl/tests/sni_server_us.pem --- php7.2-7.2.2/ext/openssl/tests/sni_server_us.pem 1970-01-01 00:00:00.000000000 +0000 +++ php7.2-7.2.3/ext/openssl/tests/sni_server_us.pem 2018-02-27 16:33:08.000000000 +0000 @@ -0,0 +1,57 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpQIBAAKCAQEA1QkC3tiNYDY+ZxMmPbagYUbMpzuXo9mVBvYh86bYZaeB7bts +QCBK+6VD4D2LjR3RszpzmOzhJXjm8j0t+GeRS3OMIM75/BKAnixXicRSIb8zdIPz +JP992vvMq8p46/XftAfBhAMOaCqcD85zpyX4PhfC9733nOyN4yqx58O4UhVTKih6 +W9/ldp3uwSYAW+HyoINnHls/bFO8vv60K5VIhkxK30LHnC5PvByGfuHOgrscEThs +jW0ESqO0+9l88KhGdmLgzvbBlGxNziCMfn0LcFH6p2ITc3foD4LSzGEFtJ92OZi3 +buCOfbFsN7vWHTsEi89fRcCnWGtMwLUx0TCluQIDAQABAoIBAQCnsUQ1Lrl6trhA +Yu6DPbLZX+XQ7jPbonaQ2Ea5iOhmfIjmHdaEU+cyV1EqvseO+Z4MO0KraiuAV79T +h50cIEpa3kW7vbFCHz5nQ/hUVdlg/yT93rASu5rSOctOnz64Xv8Ms948kDtS+9eF +Cbo4JMdX+VRbt4mmWP8HhqAsFACPexEoWxJcIxwFcI24GTGzySjemNjQzbmcVhzM +a4k6n8DolCL1cRS54C5Aaf5g4+IFDgyydcgZXp1lnX3MnqivSNkejnPnY55NcmrH +X3ZWPlAi9GHOJE33uy8bGWnip7Tn4iTt6tJvjz/yP82TGACDg1B8XsKrqsuQLsoU +cNBVGcQBAoGBAPteCgNmuNOpo4SRA1UVRw1WgnE8YtnNA6vYyVcTLSpqabq33UaD +03L9CQsbHtj88U+E8OH24Iqj3U9x7QJfH8DVmWuBrlwez80JsKGnLdViHydjKcAz +H2Cbv+SiWeaWXkFCkN4Jf7k3q0Ew4SG2LOq5PVUy/NB4bilbJD2ExKpZAoGBANj2 +Hpwo35IQ4XfSSsGaCdn+8ajMcNUMMGZ6YkZqmVO4kogqobyrPL/2KE9ol/hlacw6 +U/6Digox5/wqruYfqyM8lqGOq2/0Xf7c4XfiOTS9Na4JN3OGzlyqPvcn2zdqhYFY +iHPu2RqpA+LhCHW9Zs8C1Bp/KAEPdRP6OabqVaphAoGACLrHVj7nBFLL3vq6RuYq +RYhPl2cld7LrAbjRpTiBRQvVCCsCgERrv36SJdSXSanfJ4fSZcaRHb97HBs0w/RR +wfypC1bBm2lmhhRkEfkgWlzCADgtZwNff5dpHqOUw7FNLK8HIO7rhJ8uT2FHMEiH +Xs94FdFjfknwaXdE1u4ZdmECgYEAgxfbkQHFbO2UPqErGGXp0/WOsS6ucpyF1jXW +kbOxZ3vb1jjkNyrEbzzeSHTrdmRYk9UekWeLjfNvt9dWjKfP8V+XqJCbF+9wqCFw +fs6LQEmfWMQq5DwtDqKznwVPGOHdPzVuZZaJSemb9oeAZBwINccAv+3bDyD23hZQ +pYFsN6ECgYEA33QYDNG/spki4D8rlxyxZ+1MdB/efnrGBhO8FsJpG5+AtmYhWgD9 +sl29+3aiRkmDznoy36z+hoeZePILEAKMcbHyXOymixOHPuaZJ95hbvq6sqd6WMAe +w5tHnxlfEuu11zatolk6WiAmTmG3sZpN5Tqloq0Ye4dvlhVKNV3Bn3E= +-----END RSA PRIVATE KEY----- +-----BEGIN CERTIFICATE----- +MIIFIjCCAwqgAwIBAgICEAQwDQYJKoZIhvcNAQELBQAwVTELMAkGA1UEBhMCR0Ix +EDAOBgNVBAgMB0VuZ2xhbmQxEDAOBgNVBAoMB1BIUC5uZXQxEDAOBgNVBAsMB29w +ZW5zc2wxEDAOBgNVBAMMB3BocC5uZXQwHhcNMTgwMTE0MTgzNjQ0WhcNMjYwNDAy +MTgzNjQ0WjBGMQswCQYDVQQGEwJHQjEQMA4GA1UECAwHRW5nbGFuZDEQMA4GA1UE +CgwHUEhQLm5ldDETMBEGA1UEAwwKdXMucGhwLm5ldDCCASIwDQYJKoZIhvcNAQEB +BQADggEPADCCAQoCggEBANUJAt7YjWA2PmcTJj22oGFGzKc7l6PZlQb2IfOm2GWn +ge27bEAgSvulQ+A9i40d0bM6c5js4SV45vI9LfhnkUtzjCDO+fwSgJ4sV4nEUiG/ +M3SD8yT/fdr7zKvKeOv137QHwYQDDmgqnA/Oc6cl+D4Xwve995zsjeMqsefDuFIV +Uyooelvf5Xad7sEmAFvh8qCDZx5bP2xTvL7+tCuVSIZMSt9Cx5wuT7wchn7hzoK7 +HBE4bI1tBEqjtPvZfPCoRnZi4M72wZRsTc4gjH59C3BR+qdiE3N36A+C0sxhBbSf +djmYt27gjn2xbDe71h07BIvPX0XAp1hrTMC1MdEwpbkCAwEAAaOCAQkwggEFMAkG +A1UdEwQCMAAwEQYJYIZIAYb4QgEBBAQDAgZAMDMGCWCGSAGG+EIBDQQmFiRPcGVu +U1NMIEdlbmVyYXRlZCBTZXJ2ZXIgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFOXnUeNs +grKQb+EvG36DXjjDDmsFMGwGA1UdIwRlMGOAFOPK44Eacedv7HbR2Igcbew+4kUa +oUekRTBDMQswCQYDVQQGEwJHQjEQMA4GA1UECAwHRW5nbGFuZDEQMA4GA1UECgwH +UEhQLm5ldDEQMA4GA1UEAwwHcGhwLm5ldIICEAAwDgYDVR0PAQH/BAQDAgWgMBMG +A1UdJQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3DQEBCwUAA4ICAQBDLwuLbx75ACSU +5cF2L/D17JEnhlna62MgKNdpNLJSpaofK2Lk2BqsmnQf5JdkrXWMUN/DsmXZc9pq +25XmprfABUP9Cx18KPVqLQ43Z9o+R9xI1Ospt5mrpxGp6l2BHSs/4G69nuPFpcIJ +iabnLYdUk2Z+64lPe4EMBrZH+pj4xn3JA59BACJYNYn0nLaw45DIAyzyLJ0vVSwc +0JtjsztXQov4UqdWXxLRFfe2nEGoK8ZkTJ8ELcCYu6sNSBjw9Ech78uXN1BQOBTK +lhAgN3FKqOp3hqf0umqf35gDvmWwLB/eptUYZ96gBYT0tbPA0P+YsW+iZmamxXma +Odgg8iRcPxKl9bVPt57NLaDy/RQhOxTGXQs1Q2jp7UhzqoZDClwVSDxd6DEppAFA +OZAY+Rsrm7VoCwVQ/1KbcJHmJ/79tArvaWJk3KHLGMpdZq4KwrC3hM8/QxYtyX/6 +cfnXvShBYCdfTGgNlj3t/mNAgp1ZB3s9ClGqRBR/P0Db+ryv5DuxYM6nzEB3Od0y +kT5tHbXDQY+1HCExjOMi7Al0cmC2r3+oxDA4UjGv+npgcfeoxQhXmm/SQRiPdKlb +vT0D594sLoB23jqA9bMehpxEyI7eGjfFUmXwMeu0tJhipvpJI3ogJoM+SCFTyLkc +12cPiz/sR/ALhvhUJXTeUH8wxPjzbA== +-----END CERTIFICATE----- diff -Nru php7.2-7.2.2/ext/pgsql/pgsql.c php7.2-7.2.3/ext/pgsql/pgsql.c --- php7.2-7.2.2/ext/pgsql/pgsql.c 2018-01-30 10:33:43.000000000 +0000 +++ php7.2-7.2.3/ext/pgsql/pgsql.c 2018-02-27 16:33:06.000000000 +0000 @@ -4428,6 +4428,7 @@ to = (char *)PQescapeBytea((unsigned char*)from, from_len, &to_len); RETVAL_STRINGL(to, to_len-1); /* to_len includes additional '\0' */ + PQfreemem(to); } /* }}} */ diff -Nru php7.2-7.2.2/ext/phar/phar_object.c php7.2-7.2.3/ext/phar/phar_object.c --- php7.2-7.2.2/ext/phar/phar_object.c 2018-01-30 10:33:43.000000000 +0000 +++ php7.2-7.2.3/ext/phar/phar_object.c 2018-02-27 16:33:05.000000000 +0000 @@ -3682,14 +3682,18 @@ */ static void phar_add_file(phar_archive_data **pphar, char *filename, int filename_len, char *cont_str, size_t cont_len, zval *zresource) { + int start_pos=0; char *error; size_t contents_len; phar_entry_data *data; php_stream *contents_file; - if (filename_len >= (int)sizeof(".phar")-1 && !memcmp(filename, ".phar", sizeof(".phar")-1) && (filename[5] == '/' || filename[5] == '\\' || filename[5] == '\0')) { - zend_throw_exception_ex(spl_ce_BadMethodCallException, 0, "Cannot create any files in magic \".phar\" directory"); - return; + if (filename_len >= (int)sizeof(".phar")-1) { + start_pos = ('/' == filename[0] ? 1 : 0); /* account for any leading slash: multiple-leads handled elsewhere */ + if (!memcmp(&filename[start_pos], ".phar", sizeof(".phar")-1) && (filename[start_pos+5] == '/' || filename[start_pos+5] == '\\' || filename[start_pos+5] == '\0')) { + zend_throw_exception_ex(spl_ce_BadMethodCallException, 0, "Cannot create any files in magic \".phar\" directory"); + return; + } } if (!(data = phar_get_or_create_entry_data((*pphar)->fname, (*pphar)->fname_len, filename, filename_len, "w+b", 0, &error, 1))) { @@ -4346,21 +4350,51 @@ } /* }}} */ +static int extract_helper(phar_archive_data *archive, zend_string *search, char *pathto, size_t pathto_len, zend_bool overwrite, char **error) { /* {{{ */ + int extracted = 0; + phar_entry_info *entry; + + if (!search) { + /* nothing to match -- extract all files */ + ZEND_HASH_FOREACH_PTR(&archive->manifest, entry) { + if (FAILURE == phar_extract_file(overwrite, entry, pathto, (int)pathto_len, error)) return -1; + extracted++; + } ZEND_HASH_FOREACH_END(); + } else if ('/' == ZSTR_VAL(search)[ZSTR_LEN(search) - 1]) { + /* ends in "/" -- extract all entries having that prefix */ + ZEND_HASH_FOREACH_PTR(&archive->manifest, entry) { + if (0 != strncmp(ZSTR_VAL(search), entry->filename, ZSTR_LEN(search))) continue; + if (FAILURE == phar_extract_file(overwrite, entry, pathto, (int)pathto_len, error)) return -1; + extracted++; + } ZEND_HASH_FOREACH_END(); + } else { + /* otherwise, looking for an exact match */ + entry = zend_hash_find_ptr(&archive->manifest, search); + if (NULL == entry) return 0; + if (FAILURE == phar_extract_file(overwrite, entry, pathto, (int)pathto_len, error)) return -1; + return 1; + } + + return extracted; +} +/* }}} */ + /* {{{ proto bool Phar::extractTo(string pathto[[, mixed files], bool overwrite]) * Extract one or more file from a phar archive, optionally overwriting existing files */ PHP_METHOD(Phar, extractTo) { - char *error = NULL; php_stream *fp; php_stream_statbuf ssb; - phar_entry_info *entry; - char *pathto, *filename; - size_t pathto_len, filename_len; + char *pathto; + zend_string *filename; + size_t pathto_len; int ret, i; int nelems; + zval *zval_file; zval *zval_files = NULL; zend_bool overwrite = 0; + char *error = NULL; PHAR_ARCHIVE_OBJECT(); @@ -4408,10 +4442,10 @@ if (zval_files) { switch (Z_TYPE_P(zval_files)) { case IS_NULL: - goto all_files; + filename = NULL; + break; case IS_STRING: - filename = Z_STRVAL_P(zval_files); - filename_len = Z_STRLEN_P(zval_files); + filename = Z_STR_P(zval_files); break; case IS_ARRAY: nelems = zend_hash_num_elements(Z_ARRVAL_P(zval_files)); @@ -4419,26 +4453,24 @@ RETURN_FALSE; } for (i = 0; i < nelems; i++) { - zval *zval_file; if ((zval_file = zend_hash_index_find(Z_ARRVAL_P(zval_files), i)) != NULL) { - switch (Z_TYPE_P(zval_file)) { - case IS_STRING: - break; - default: - zend_throw_exception_ex(spl_ce_InvalidArgumentException, 0, - "Invalid argument, array of filenames to extract contains non-string value"); - return; - } - if (NULL == (entry = zend_hash_find_ptr(&phar_obj->archive->manifest, Z_STR_P(zval_file)))) { - zend_throw_exception_ex(phar_ce_PharException, 0, - "Phar Error: attempted to extract non-existent file \"%s\" from phar \"%s\"", Z_STRVAL_P(zval_file), phar_obj->archive->fname); - } - if (FAILURE == phar_extract_file(overwrite, entry, pathto, (int)pathto_len, &error)) { - zend_throw_exception_ex(phar_ce_PharException, 0, - "Extraction from phar \"%s\" failed: %s", phar_obj->archive->fname, error); - efree(error); + if (IS_STRING != Z_TYPE_P(zval_file)) { + zend_throw_exception_ex(spl_ce_InvalidArgumentException, 0, + "Invalid argument, array of filenames to extract contains non-string value"); return; } + switch (extract_helper(phar_obj->archive, Z_STR_P(zval_file), pathto, pathto_len, overwrite, &error)) { + case -1: + zend_throw_exception_ex(phar_ce_PharException, 0, "Extraction from phar \"%s\" failed: %s", + phar_obj->archive->fname, error); + efree(error); + return; + case 0: + zend_throw_exception_ex(phar_ce_PharException, 0, + "Phar Error: attempted to extract non-existent file or directory \"%s\" from phar \"%s\"", + ZSTR_VAL(Z_STR_P(zval_file)), phar_obj->archive->fname); + return; + } } } RETURN_TRUE; @@ -4447,38 +4479,22 @@ "Invalid argument, expected a filename (string) or array of filenames"); return; } - - if (NULL == (entry = zend_hash_str_find_ptr(&phar_obj->archive->manifest, filename, filename_len))) { - zend_throw_exception_ex(phar_ce_PharException, 0, - "Phar Error: attempted to extract non-existent file \"%s\" from phar \"%s\"", filename, phar_obj->archive->fname); - return; - } - - if (FAILURE == phar_extract_file(overwrite, entry, pathto, (int)pathto_len, &error)) { - zend_throw_exception_ex(phar_ce_PharException, 0, - "Extraction from phar \"%s\" failed: %s", phar_obj->archive->fname, error); - efree(error); - return; - } } else { - phar_archive_data *phar; -all_files: - phar = phar_obj->archive; - /* Extract all files */ - if (!zend_hash_num_elements(&(phar->manifest))) { - RETURN_TRUE; - } + filename = NULL; + } - ZEND_HASH_FOREACH_PTR(&phar->manifest, entry) { - if (FAILURE == phar_extract_file(overwrite, entry, pathto, (int)pathto_len, &error)) { - zend_throw_exception_ex(phar_ce_PharException, 0, - "Extraction from phar \"%s\" failed: %s", phar->fname, error); - efree(error); - return; - } - } ZEND_HASH_FOREACH_END(); + ret = extract_helper(phar_obj->archive, filename, pathto, pathto_len, overwrite, &error); + if (-1 == ret) { + zend_throw_exception_ex(phar_ce_PharException, 0, "Extraction from phar \"%s\" failed: %s", + phar_obj->archive->fname, error); + efree(error); + } else if (0 == ret && NULL != filename) { + zend_throw_exception_ex(phar_ce_PharException, 0, + "Phar Error: attempted to extract non-existent file or directory \"%s\" from phar \"%s\"", + ZSTR_VAL(filename), phar_obj->archive->fname); + } else { + RETURN_TRUE; } - RETURN_TRUE; } /* }}} */ diff -Nru php7.2-7.2.2/ext/phar/tests/bug54289.phpt php7.2-7.2.3/ext/phar/tests/bug54289.phpt --- php7.2-7.2.2/ext/phar/tests/bug54289.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php7.2-7.2.3/ext/phar/tests/bug54289.phpt 2018-02-27 16:33:05.000000000 +0000 @@ -0,0 +1,70 @@ +--TEST-- +Bug #54289 Phar::extractTo() does not accept specific directories to be extracted +--SKIPIF-- + +--INI-- +phar.readonly = 0 +--FILE-- +buildFromDirectory($inDir); + +// we should be able to pull out a directory that's there, but none that share +// the same prefix +$outDir = $base.'out'; +$pharB = new Phar($phar); +$pharB->extractTo($outDir, 'dirA/', true); +var_dump(file_exists($outDir.DIRECTORY_SEPARATOR.'dirA'.DIRECTORY_SEPARATOR.'fileA')); +var_dump(file_exists($outDir.DIRECTORY_SEPARATOR.'dirA'.DIRECTORY_SEPARATOR.'fileB')); +var_dump(is_dir($outDir.DIRECTORY_SEPARATOR.'dirAB')); + +// should also not be able to pull out non-existent ones +try { + $pharB->extractTo($outDir, 'dirX/', true); + echo 'failed to throw expected exception'; +} catch (PharException $ex) { +} + +// should also not be able to pull out /, because paths are not "rooted" that way +try { + $pharB->extractTo($outDir, '/', true); + echo 'failed to throw expected exception'; +} catch (PharException $ex) { +} + +// should be able to do by array, too +$pharB = new Phar($phar); +$pharB->extractTo($outDir, [ 'dirA/', 'dirAB/' ], true); + +// but not an array with a bad member in it +try { + $pharB = new Phar($phar); + $pharB->extractTo($outDir, [ 'dirA/', 'dirX/' ], true); + echo 'failed to throw expected exception'; +} catch (PharException $ex) { +} + +echo 'done'; +?> +--CLEAN-- +isFile() ? unlink($value) : rmdir($value); +} +?> +--EXPECT-- +bool(true) +bool(true) +bool(false) +done diff -Nru php7.2-7.2.2/ext/phar/tests/bug65414.phpt php7.2-7.2.3/ext/phar/tests/bug65414.phpt --- php7.2-7.2.2/ext/phar/tests/bug65414.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php7.2-7.2.3/ext/phar/tests/bug65414.phpt 2018-02-27 16:33:05.000000000 +0000 @@ -0,0 +1,36 @@ +--TEST-- +Bug #65414 Injection (A1) in .phar files magic .phar directory +--SKIPIF-- + +--INI-- +phar.readonly = 0 +--FILE-- +addFromString($bad, 'this content is injected'); + echo 'Failed to throw expected exception'; + } catch (BadMethodCallException $ex) { + echo $ex->getMessage() . PHP_EOL; + } +} +echo 'done' . PHP_EOL; +?> +--CLEAN-- + +--EXPECT-- +.phar/injected-1.txt:Cannot create any files in magic ".phar" directory +/.phar/injected-2.txt:Cannot create any files in magic ".phar" directory +//.phar/injected-3.txt:Entry //.phar/injected-3.txt does not exist and cannot be created: phar error: invalid path "//.phar/injected-3.txt" contains double slash +/.phar/:Cannot create any files in magic ".phar" directory +done diff -Nru php7.2-7.2.2/ext/session/config.m4 php7.2-7.2.3/ext/session/config.m4 --- php7.2-7.2.2/ext/session/config.m4 2018-01-30 10:33:44.000000000 +0000 +++ php7.2-7.2.3/ext/session/config.m4 2018-02-27 16:33:08.000000000 +0000 @@ -27,7 +27,12 @@ if test -z "$MM_DIR" ; then AC_MSG_ERROR(cannot find mm library) fi - + + if test "$enable_maintainer_zts" = "yes"; then + dnl The mm library is not thread-safe, and mod_mm.c refuses to compile. + AC_MSG_ERROR(--with-mm cannot be combined with --enable-maintainer-zts) + fi + PHP_ADD_LIBRARY_WITH_PATH(mm, $MM_DIR/$PHP_LIBDIR, SESSION_SHARED_LIBADD) PHP_ADD_INCLUDE($MM_DIR/include) PHP_INSTALL_HEADERS([ext/session/mod_mm.h]) diff -Nru php7.2-7.2.2/ext/simplexml/config.m4 php7.2-7.2.3/ext/simplexml/config.m4 --- php7.2-7.2.2/ext/simplexml/config.m4 2018-01-30 10:33:44.000000000 +0000 +++ php7.2-7.2.3/ext/simplexml/config.m4 2018-02-27 16:33:05.000000000 +0000 @@ -21,7 +21,7 @@ PHP_INSTALL_HEADERS([ext/simplexml/php_simplexml.h ext/simplexml/php_simplexml_exports.h]) PHP_SUBST(SIMPLEXML_SHARED_LIBADD) ], [ - AC_MSG_ERROR([xml2-config not found. Please check your libxml2 installation.]) + AC_MSG_ERROR([libxml2 not found. Please check your libxml2 installation.]) ]) PHP_ADD_EXTENSION_DEP(simplexml, libxml) PHP_ADD_EXTENSION_DEP(simplexml, spl, true) diff -Nru php7.2-7.2.2/ext/soap/config.m4 php7.2-7.2.3/ext/soap/config.m4 --- php7.2-7.2.2/ext/soap/config.m4 2018-01-30 10:33:45.000000000 +0000 +++ php7.2-7.2.3/ext/soap/config.m4 2018-02-27 16:33:00.000000000 +0000 @@ -20,6 +20,6 @@ PHP_NEW_EXTENSION(soap, soap.c php_encoding.c php_http.c php_packet_soap.c php_schema.c php_sdl.c php_xml.c, $ext_shared,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1) PHP_SUBST(SOAP_SHARED_LIBADD) ], [ - AC_MSG_ERROR([xml2-config not found. Please check your libxml2 installation.]) + AC_MSG_ERROR([libxml2 not found. Please check your libxml2 installation.]) ]) fi diff -Nru php7.2-7.2.2/ext/sockets/sockets.c php7.2-7.2.3/ext/sockets/sockets.c --- php7.2-7.2.2/ext/sockets/sockets.c 2018-01-30 10:33:45.000000000 +0000 +++ php7.2-7.2.3/ext/sockets/sockets.c 2018-02-27 16:33:03.000000000 +0000 @@ -1681,7 +1681,7 @@ recv_buf = zend_string_alloc(len, 0); if ((retval = recv(php_sock->bsd_socket, ZSTR_VAL(recv_buf), len, flags)) < 1) { - efree(recv_buf); + zend_string_free(recv_buf); zval_dtor(buf); ZVAL_NULL(buf); @@ -1823,7 +1823,7 @@ sin6.sin6_family = AF_INET6; if (arg6 == NULL) { - efree(recv_buf); + zend_string_free(recv_buf); WRONG_PARAM_COUNT; } diff -Nru php7.2-7.2.2/ext/spl/spl_iterators.c php7.2-7.2.3/ext/spl/spl_iterators.c --- php7.2-7.2.2/ext/spl/spl_iterators.c 2018-01-30 10:33:45.000000000 +0000 +++ php7.2-7.2.3/ext/spl/spl_iterators.c 2018-02-27 16:33:04.000000000 +0000 @@ -1796,7 +1796,6 @@ proto mixed ParentIterator::current() proto mixed IteratorIterator::current() proto mixed NoRewindIterator::current() - proto mixed AppendIterator::current() Get the current element value */ SPL_METHOD(dual_it, current) { @@ -3392,6 +3391,29 @@ } } /* }}} */ +/* {{{ proto mixed AppendIterator::current() + Get the current element value */ +SPL_METHOD(AppendIterator, current) +{ + spl_dual_it_object *intern; + + if (zend_parse_parameters_none() == FAILURE) { + return; + } + + SPL_FETCH_AND_CHECK_DUAL_IT(intern, getThis()); + + spl_dual_it_fetch(intern, 1); + if (Z_TYPE(intern->current.data) != IS_UNDEF) { + zval *value = &intern->current.data; + + ZVAL_DEREF(value); + ZVAL_COPY(return_value, value); + } else { + RETURN_NULL(); + } +} /* }}} */ + /* {{{ proto void AppendIterator::rewind() Rewind to the first iterator and rewind the first iterator, too */ SPL_METHOD(AppendIterator, rewind) @@ -3484,7 +3506,7 @@ SPL_ME(AppendIterator, rewind, arginfo_recursive_it_void, ZEND_ACC_PUBLIC) SPL_ME(AppendIterator, valid, arginfo_recursive_it_void, ZEND_ACC_PUBLIC) SPL_ME(dual_it, key, arginfo_recursive_it_void, ZEND_ACC_PUBLIC) - SPL_ME(dual_it, current, arginfo_recursive_it_void, ZEND_ACC_PUBLIC) + SPL_ME(AppendIterator, current, arginfo_recursive_it_void, ZEND_ACC_PUBLIC) SPL_ME(AppendIterator, next, arginfo_recursive_it_void, ZEND_ACC_PUBLIC) SPL_ME(dual_it, getInnerIterator, arginfo_recursive_it_void, ZEND_ACC_PUBLIC) SPL_ME(AppendIterator, getIteratorIndex, arginfo_recursive_it_void, ZEND_ACC_PUBLIC) diff -Nru php7.2-7.2.2/ext/spl/tests/bug74519.phpt php7.2-7.2.3/ext/spl/tests/bug74519.phpt --- php7.2-7.2.2/ext/spl/tests/bug74519.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php7.2-7.2.3/ext/spl/tests/bug74519.phpt 2018-02-27 16:33:04.000000000 +0000 @@ -0,0 +1,23 @@ +--TEST-- +Bug #74519 strange behavior of AppendIterator +--FILE-- +append($events); + +$events->next(); + +while($iterator->valid()) { + echo $iterator->current(), "\n"; + $iterator->next(); +} +?> +===DONE=== +--EXPECT-- +2 +3 +4 +5 +===DONE=== diff -Nru php7.2-7.2.2/ext/standard/dl.c php7.2-7.2.3/ext/standard/dl.c --- php7.2-7.2.2/ext/standard/dl.c 2018-01-30 10:33:46.000000000 +0000 +++ php7.2-7.2.3/ext/standard/dl.c 2018-02-27 16:33:02.000000000 +0000 @@ -88,8 +88,10 @@ err = GET_DL_ERROR(); #ifdef PHP_WIN32 if (err && (*err)) { + size_t i = strlen(err); (*errp)=estrdup(err); LocalFree(err); + while (i > 0 && isspace((*errp)[i-1])) { (*errp)[i-1] = '\0'; i--; } } else { (*errp) = estrdup(""); } diff -Nru php7.2-7.2.2/ext/standard/dns.c php7.2-7.2.3/ext/standard/dns.c --- php7.2-7.2.2/ext/standard/dns.c 2018-01-30 10:33:46.000000000 +0000 +++ php7.2-7.2.3/ext/standard/dns.c 2018-02-27 16:33:02.000000000 +0000 @@ -546,7 +546,10 @@ CHECKCP(n); add_assoc_stringl(subarray, "tag", (char*)cp, n); cp += n; - add_assoc_string(subarray, "value", (char*)cp); + n = dlen - n - 2; + CHECKCP(n); + add_assoc_stringl(subarray, "value", (char*)cp, n); + cp += n; break; case DNS_T_TXT: { diff -Nru php7.2-7.2.2/ext/standard/http_fopen_wrapper.c php7.2-7.2.3/ext/standard/http_fopen_wrapper.c --- php7.2-7.2.2/ext/standard/http_fopen_wrapper.c 2018-01-30 10:33:46.000000000 +0000 +++ php7.2-7.2.3/ext/standard/http_fopen_wrapper.c 2018-02-27 16:33:02.000000000 +0000 @@ -718,9 +718,9 @@ tmp_line, response_code); } } - if (tmp_line[tmp_line_len - 1] == '\n') { + if (tmp_line_len >= 1 && tmp_line[tmp_line_len - 1] == '\n') { --tmp_line_len; - if (tmp_line[tmp_line_len - 1] == '\r') { + if (tmp_line_len >= 1 &&tmp_line[tmp_line_len - 1] == '\r') { --tmp_line_len; } } diff -Nru php7.2-7.2.2/ext/standard/streamsfuncs.c php7.2-7.2.3/ext/standard/streamsfuncs.c --- php7.2-7.2.2/ext/standard/streamsfuncs.c 2018-01-30 10:33:46.000000000 +0000 +++ php7.2-7.2.3/ext/standard/streamsfuncs.c 2018-02-27 16:33:02.000000000 +0000 @@ -1627,7 +1627,7 @@ { zval *zsrc; php_stream *stream; - zend_long fileno; + php_socket_t fileno; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_RESOURCE(zsrc) diff -Nru php7.2-7.2.2/ext/standard/tests/http/bug75981.phpt php7.2-7.2.3/ext/standard/tests/http/bug75981.phpt --- php7.2-7.2.2/ext/standard/tests/http/bug75981.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php7.2-7.2.3/ext/standard/tests/http/bug75981.phpt 2018-02-27 16:33:01.000000000 +0000 @@ -0,0 +1,32 @@ +--TEST-- +Bug #75981 (stack-buffer-overflow while parsing HTTP response) +--INI-- +allow_url_fopen=1 +--SKIPIF-- + +--FILE-- + [ + 'protocol_version' => '1.1', + 'header' => 'Connection: Close' + ], +]; + +$ctx = stream_context_create($options); + +$responses = [ + "data://text/plain,000000000100\xA\xA" +]; +$pid = http_server('tcp://127.0.0.1:12342', $responses); + +echo @file_get_contents('http://127.0.0.1:12342/', false, $ctx); + +http_server_kill($pid); + +?> +DONE +--EXPECT-- +DONE diff -Nru php7.2-7.2.2/ext/standard/tests/network/dns_get_record_caa.phpt php7.2-7.2.3/ext/standard/tests/network/dns_get_record_caa.phpt --- php7.2-7.2.2/ext/standard/tests/network/dns_get_record_caa.phpt 2018-01-30 10:33:49.000000000 +0000 +++ php7.2-7.2.3/ext/standard/tests/network/dns_get_record_caa.phpt 2018-02-27 16:33:01.000000000 +0000 @@ -7,25 +7,32 @@ ?> --FILE-- 0) { - if (array_key_exists('type', $dns[0]) - and $dns[0]['type'] == 'CAA' - and array_key_exists('flags', $dns[0]) - and array_key_exists('tag', $dns[0]) - and array_key_exists('value', $dns[0]) - ) { - $match = true; +/* This must be domains which publish an RFC6844 CAA-type DNS record */ +$domains = ["big.basic.caatestsuite.com", "google.com"]; +foreach ($domains as $domain) { + $match = false; + $dns = dns_get_record($domain, DNS_CAA); + if (count($dns) > 0) { + if (array_key_exists("type", $dns[0]) + and $dns[0]["type"] == "CAA" + and array_key_exists("flags", $dns[0]) + and array_key_exists("tag", $dns[0]) + and array_key_exists("value", $dns[0]) + ) { + $chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-."; + if (strlen($dns[0]["value"]) == strspn($dns[0]["value"], $chars)) { + $match = true; + } + } + } + if ($match) { + echo "CAA record found\n"; + } else { + echo "CAA lookup failed\n"; + var_dump($dns); } -} -if ($match) { - echo "CAA record found\n"; -} else { - echo "CAA Lookup failed\n"; } ?> --EXPECT-- CAA record found +CAA record found diff -Nru php7.2-7.2.2/ext/wddx/config.m4 php7.2-7.2.3/ext/wddx/config.m4 --- php7.2-7.2.2/ext/wddx/config.m4 2018-01-30 10:33:50.000000000 +0000 +++ php7.2-7.2.3/ext/wddx/config.m4 2018-02-27 16:33:07.000000000 +0000 @@ -29,7 +29,7 @@ PHP_ADD_BUILD_DIR(ext/xml) fi ], [ - AC_MSG_ERROR([xml2-config not found. Use --with-libxml-dir=]) + AC_MSG_ERROR([libxml2 not found. Use --with-libxml-dir=]) ]) fi diff -Nru php7.2-7.2.2/ext/xml/config.m4 php7.2-7.2.3/ext/xml/config.m4 --- php7.2-7.2.2/ext/xml/config.m4 2018-01-30 10:33:50.000000000 +0000 +++ php7.2-7.2.3/ext/xml/config.m4 2018-02-27 16:32:59.000000000 +0000 @@ -28,7 +28,7 @@ xml_extra_sources="compat.c" PHP_ADD_EXTENSION_DEP(xml, libxml) ], [ - AC_MSG_ERROR([xml2-config not found. Use --with-libxml-dir=]) + AC_MSG_ERROR([libxml2 not found. Use --with-libxml-dir=]) ]) fi diff -Nru php7.2-7.2.2/ext/xmlreader/config.m4 php7.2-7.2.3/ext/xmlreader/config.m4 --- php7.2-7.2.2/ext/xmlreader/config.m4 2018-01-30 10:33:50.000000000 +0000 +++ php7.2-7.2.3/ext/xmlreader/config.m4 2018-02-27 16:33:04.000000000 +0000 @@ -22,6 +22,6 @@ PHP_ADD_EXTENSION_DEP(xmlreader, dom, true) PHP_SUBST(XMLREADER_SHARED_LIBADD) ], [ - AC_MSG_ERROR([xml2-config not found. Please check your libxml2 installation.]) + AC_MSG_ERROR([libxml2 not found. Please check your libxml2 installation.]) ]) fi diff -Nru php7.2-7.2.2/ext/xmlrpc/config.m4 php7.2-7.2.3/ext/xmlrpc/config.m4 --- php7.2-7.2.2/ext/xmlrpc/config.m4 2018-01-30 10:33:50.000000000 +0000 +++ php7.2-7.2.3/ext/xmlrpc/config.m4 2018-02-27 16:33:05.000000000 +0000 @@ -42,7 +42,7 @@ PHP_ADD_BUILD_DIR(ext/xml) fi ], [ - AC_MSG_ERROR([xml2-config not found. Use --with-libxml-dir=]) + AC_MSG_ERROR([libxml2 not found. Use --with-libxml-dir=]) ]) else testval=no diff -Nru php7.2-7.2.2/ext/xmlwriter/config.m4 php7.2-7.2.3/ext/xmlwriter/config.m4 --- php7.2-7.2.2/ext/xmlwriter/config.m4 2018-01-30 10:33:50.000000000 +0000 +++ php7.2-7.2.3/ext/xmlwriter/config.m4 2018-02-27 16:33:00.000000000 +0000 @@ -21,6 +21,6 @@ PHP_NEW_EXTENSION(xmlwriter, php_xmlwriter.c, $ext_shared) PHP_SUBST(XMLWRITER_SHARED_LIBADD) ], [ - AC_MSG_ERROR([xml2-config not found. Please check your libxml2 installation.]) + AC_MSG_ERROR([libxml2 not found. Please check your libxml2 installation.]) ]) fi diff -Nru php7.2-7.2.2/.gdbinit php7.2-7.2.3/.gdbinit --- php7.2-7.2.2/.gdbinit 2018-01-30 10:33:36.000000000 +0000 +++ php7.2-7.2.3/.gdbinit 2018-02-27 16:32:58.000000000 +0000 @@ -472,9 +472,12 @@ define print_pi set $pi = (zend_property_info *)$arg0 + set $initial_offset = ((uint32_t)(zend_uintptr_t)(&((zend_object*)0)->properties_table[(0)])) + set $ptr_to_val = (zval*)((char*)$pi->ce->default_properties_table + $pi->offset - $initial_offset) printf "[%p] {\n", $pi + printf " offset = %p\n", $pi->offset printf " ce = [%p] %s\n", $pi->ce, $pi->ce->name->val - printf " flags = %d (", $pi->flags + printf " flags = 0x%x (", $pi->flags if $pi->flags & 0x100 printf "ZEND_ACC_PUBLIC" else @@ -485,7 +488,11 @@ printf "ZEND_ACC_PRIVATE" else if $pi->flags & 0x800 - printf "ZEND_ACC_CHANGED" + printf "ZEND_ACC_EARLY_BINDING" + else + if $pi->flags & 0x20000 + printf "ZEND_ACC_SHADOW" + end end end end @@ -493,6 +500,8 @@ printf ")\n" printf " name = " print_zstr $pi->name + printf " default value: " + printzv $ptr_to_val printf "}\n" end diff -Nru php7.2-7.2.2/main/php_globals.h php7.2-7.2.3/main/php_globals.h --- php7.2-7.2.2/main/php_globals.h 2018-01-30 10:33:51.000000000 +0000 +++ php7.2-7.2.3/main/php_globals.h 2018-02-27 16:32:59.000000000 +0000 @@ -106,7 +106,12 @@ HashTable rfc1867_protected_variables; short connection_status; - short ignore_user_abort; + + /* In 7.1/7.2 branches, this was initially a short, + * maintain struct alignment with subsequent padding. + */ + zend_bool ignore_user_abort; + char ignore_user_abort_reserved_padding; unsigned char header_is_being_sent; diff -Nru php7.2-7.2.2/main/php_version.h php7.2-7.2.3/main/php_version.h --- php7.2-7.2.2/main/php_version.h 2018-01-30 10:33:51.000000000 +0000 +++ php7.2-7.2.3/main/php_version.h 2018-02-27 16:32:59.000000000 +0000 @@ -2,7 +2,7 @@ /* edit configure.ac to change version number */ #define PHP_MAJOR_VERSION 7 #define PHP_MINOR_VERSION 2 -#define PHP_RELEASE_VERSION 2 +#define PHP_RELEASE_VERSION 3 #define PHP_EXTRA_VERSION "" -#define PHP_VERSION "7.2.2" -#define PHP_VERSION_ID 70202 +#define PHP_VERSION "7.2.3" +#define PHP_VERSION_ID 70203 diff -Nru php7.2-7.2.2/NEWS php7.2-7.2.3/NEWS --- php7.2-7.2.2/NEWS 2018-01-30 10:33:36.000000000 +0000 +++ php7.2-7.2.3/NEWS 2018-02-27 16:32:58.000000000 +0000 @@ -1,5 +1,56 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| +01 Mar 2018, PHP 7.2.3 + +- Core: + . Fixed bug #75864 ("stream_isatty" returns wrong value on s390x). (Sam Ding) + +- Apache2Handler: + . Fixed bug #75882 (a simple way for segfaults in threadsafe php just with + configuration). (Anatol) + +- Date: + . Fixed bug #75857 (Timezone gets truncated when formatted). (carusogabriel) + . Fixed bug #75928 (Argument 2 for `DateTimeZone::listIdentifiers()` should + accept `null`). (Pedro Lacerda) + . Fixed bug #68406 (calling var_dump on a DateTimeZone object modifies it). + (jhdxr) + +- LDAP: + . Fixed bug #49876 (Fix LDAP path lookup on 64-bit distros). (dzuelke) + +- libxml2: + . Fixed bug #75871 (use pkg-config where available). (pmmaga) + +- PGSQL: + . Fixed bug #75838 (Memory leak in pg_escape_bytea()). (ard_1 at mail dot ru) + +- Phar: + . Fixed bug #54289 (Phar::extractTo() does not accept specific directories to + be extracted). (bishop) + . Fixed bug #65414 (deal with leading slash while adding files correctly). + (bishopb) + . Fixed bug #65414 (deal with leading slash when adding files correctly). + (bishopb) + +- ODBC: + . Fixed bug #73725 (Unable to retrieve value of varchar(max) type). (Anatol) + +- Opcache: + . Fixed bug #75729 (opcache segfault when installing Bitrix). (Nikita) + . Fixed bug #75893 (file_get_contents $http_response_header variable bugged + with opcache). (Nikita) + . Fixed bug #75938 (Modulus value not stored in variable). (Nikita) + +- SPL: + . Fixed bug #74519 (strange behavior of AppendIterator). (jhdxr) + +- Standard: + . Fixed bug #75916 (DNS_CAA record results contain garbage). (Mike, + Philip Sharp) + . Fixed bug #75981 (Prevent reading beyond buffer start in http wrapper). + (Stas) + 01 Feb 2018, PHP 7.2.2 - Core: @@ -224,6 +275,8 @@ DateTimeInterface interface). (Majkl578) . Fixed bug #75149 (redefinition of typedefs ttinfo and t1info). (Remi) . Fixed bug #75222 (DateInterval microseconds property always 0). (jhdxr) + . Fixed bug #68406 (calling var_dump on a DateTimeZone object modifies it). + (jhdxr) - Dba: . Fixed bug #72885 (flatfile: dba_fetch() fails to read replaced entry). diff -Nru php7.2-7.2.2/sapi/apache2handler/apache_config.c php7.2-7.2.3/sapi/apache2handler/apache_config.c --- php7.2-7.2.2/sapi/apache2handler/apache_config.c 2018-01-30 10:33:51.000000000 +0000 +++ php7.2-7.2.3/sapi/apache2handler/apache_config.c 2018-02-27 16:32:58.000000000 +0000 @@ -147,10 +147,28 @@ void *merge_php_config(apr_pool_t *p, void *base_conf, void *new_conf) { php_conf_rec *d = base_conf, *e = new_conf, *n = NULL; +#ifdef ZTS + zend_string *str; + zval *data; +#endif n = create_php_config(p, "merge_php_config"); /* copy old config */ +#ifdef ZTS + ZEND_HASH_FOREACH_STR_KEY_VAL(&d->config, str, data) { + zend_string *key; + zval *new_entry; + + /* Avoid sharing the non interned string among threads. */ + key = zend_string_dup(str, 1); + + new_entry = zend_hash_add(&n->config, key, data); + + config_entry_ctor(new_entry); + } ZEND_HASH_FOREACH_END(); +#else zend_hash_copy(&n->config, &d->config, config_entry_ctor); +#endif /* merge new config */ phpapdebug((stderr, "Merge dir (%p)+(%p)=(%p)\n", base_conf, new_conf, n)); zend_hash_merge_ex(&n->config, &e->config, config_entry_ctor, should_overwrite_per_dir_entry, NULL); diff -Nru php7.2-7.2.2/win32/build/confutils.js php7.2-7.2.3/win32/build/confutils.js --- php7.2-7.2.2/win32/build/confutils.js 2018-01-30 10:33:52.000000000 +0000 +++ php7.2-7.2.3/win32/build/confutils.js 2018-02-27 16:32:59.000000000 +0000 @@ -3101,6 +3101,19 @@ // Set some debug/release specific options ADD_FLAG('CFLAGS', ' /RTC1 '); } else { + if (PHP_DEBUG == "no" && PHP_SECURITY_FLAGS == "yes") { + /* Mitigations for CVE-2017-5753. + TODO backport for all supported VS versions when they release it. */ + if (VCVERS >= 1912) { + var subver1912 = probe_binary(PHP_CL).substr(6); + if (VCVERS >= 1913 || 1912 == VCVERS && subver1912 >= 25835) { + ADD_FLAG('CFLAGS', "/Qspectre"); + } else { + /* Undocumented. */ + ADD_FLAG('CFLAGS', "/d2guardspecload"); + } + } + } if (VCVERS >= 1900) { if (PHP_SECURITY_FLAGS == "yes") { ADD_FLAG('CFLAGS', "/guard:cf"); diff -Nru php7.2-7.2.2/Zend/zend_API.h php7.2-7.2.3/Zend/zend_API.h --- php7.2-7.2.2/Zend/zend_API.h 2018-01-30 10:33:37.000000000 +0000 +++ php7.2-7.2.3/Zend/zend_API.h 2018-02-27 16:32:59.000000000 +0000 @@ -733,7 +733,7 @@ int _num_args = EX_NUM_ARGS(); \ int _i; \ zval *_real_arg, *_arg = NULL; \ - zend_expected_type _expected_type = IS_UNDEF; \ + zend_expected_type _expected_type = Z_EXPECTED_LONG; \ char *_error = NULL; \ zend_bool _dummy; \ zend_bool _optional = 0; \ diff -Nru php7.2-7.2.2/Zend/zend_string.c php7.2-7.2.3/Zend/zend_string.c --- php7.2-7.2.2/Zend/zend_string.c 2018-01-30 10:33:38.000000000 +0000 +++ php7.2-7.2.3/Zend/zend_string.c 2018-02-27 16:32:59.000000000 +0000 @@ -69,6 +69,12 @@ int i; zend_string *str; + interned_string_request_handler = zend_new_interned_string_request; + interned_string_copy_storage = NULL; + + zend_empty_string = NULL; + zend_known_strings = NULL; + zend_init_interned_strings_ht(&interned_strings_permanent, 1); zend_new_interned_string = zend_new_interned_string_permanent;