new upstream release - 2.2.53

This commit is contained in:
Kamil Dudka 2018-07-02 17:32:03 +02:00
parent cb7ea0f240
commit 3bb48c0561
14 changed files with 67 additions and 487 deletions

5
.gitignore vendored
View File

@ -1,4 +1 @@
acl-2.2.49.src.tar.gz
/acl-2.2.50.src.tar.gz
/acl-2.2.51.src.tar.gz
/acl-2.2.52.src.tar.gz
/acl-2.2.*.tar.gz

View File

@ -1,28 +0,0 @@
From 320b3ca0a544fd5024ddfeca6f491a0344b9ecd2 Mon Sep 17 00:00:00 2001
From: John Bradshaw <john@johnbradshaw.org>
Date: Sat, 5 Feb 2011 18:14:27 +0000
Subject: [PATCH] setfacl.1: fix typo 'inclu de' -> 'include'
Bug: https://bugzilla.redhat.com/675451
---
man/man1/setfacl.1 | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/man/man1/setfacl.1 b/man/man1/setfacl.1
index 64f0e33..0c7c046 100644
--- a/man/man1/setfacl.1
+++ b/man/man1/setfacl.1
@@ -240,8 +240,8 @@ owner, owning group, or others entry, a copy of the ACL owner, owning group, or
.IP * 4
If a Default ACL contains named user entries or named group entries, and no mask entry exists, a mask entry containing the same permissions as the default Default ACL's group entry is added. Unless the
.I \-n
-option is given, the permissions of the mask entry are further adjusted to inclu
-de the union of all permissions affected by the mask entry. (See the
+option is given, the permissions of the mask entry are further adjusted to
+include the union of all permissions affected by the mask entry. (See the
.I \-n
option description).
.PP
--
1.7.1

View File

@ -0,0 +1,44 @@
From 085cc4ff56857d234e80f37d0316c13eb5718696 Mon Sep 17 00:00:00 2001
From: Kamil Dudka <kdudka@redhat.com>
Date: Tue, 3 Jul 2018 10:46:58 +0200
Subject: [PATCH] test/runwrapper: copy the preloaded library
... to a temporary directory because the original location might
not be accessible by other users.
---
test/runwrapper | 20 ++++++++++++++++++--
1 file changed, 18 insertions(+), 2 deletions(-)
diff --git a/test/runwrapper b/test/runwrapper
index 6e0e899..de4555a 100755
--- a/test/runwrapper
+++ b/test/runwrapper
@@ -1,7 +1,23 @@
#!/bin/bash
-if [ -e "$PWD/.libs/libtestlookup.so" ]; then
- export LD_PRELOAD="$PWD/.libs/libtestlookup.so"
+src="$PWD/.libs/libtestlookup.so"
+dst=
+if [ -e "$src" ]; then
+ # copy the preloaded library to a temporary directory because
+ # the original location might not be accessible by other users
+ tmp="$(mktemp -d)"
+ chmod 0755 "$tmp"
+ dst="${tmp}/libtestlookup.so"
+ cp -L "$src" "$dst"
+ export LD_PRELOAD="$dst"
fi
"${srcdir:-${PWD}}"/test/run "$@"
+ec="$?"
+
+if [ -n "$dst" ]; then
+ # remove the temporary location
+ rm -rf "$dst"
+fi
+
+exit "$ec"
--
2.14.4

View File

@ -1,40 +0,0 @@
From eb123384d1e4001b62a578ec1df53aa23016aed3 Mon Sep 17 00:00:00 2001
From: Andreas Gruenbacher <agruenba@redhat.com>
Date: Fri, 17 Mar 2017 10:17:01 +0100
Subject: [PATCH] setfacl --restore: Silence valgrind
Valgrind complains that setfacl --restore triggers uninitialized memory
accesses to cmd->c_tag and cmd->c_perm of CMD_REMOVE_ACL commands in
do_set (http://savannah.nongnu.org/bugs/?50566). In this case, the
uninitialized memory accesses have no effect. Silence valgrind by
initializing cmd->c_tag and cmd->c_perm anyway.
Upstream-commit: 33f01b5d5bd98fceee0ba46cdbddb60b36fc650e
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
---
setfacl/sequence.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/setfacl/sequence.c b/setfacl/sequence.c
index a418b23..5ed182e 100644
--- a/setfacl/sequence.c
+++ b/setfacl/sequence.c
@@ -29,7 +29,14 @@ cmd_t
cmd_init(
void)
{
- return (cmd_t)malloc(sizeof(struct cmd_obj));
+ cmd_t cmd;
+
+ cmd = malloc(sizeof(struct cmd_obj));
+ if (cmd) {
+ cmd->c_tag = ACL_UNDEFINED_TAG;
+ cmd->c_perm = 0;
+ }
+ return cmd;
}
--
2.9.4

View File

@ -1,180 +0,0 @@
From cfd9ba83811189d9e12c86d32b06b5fd15b5f358 Mon Sep 17 00:00:00 2001
From: Kamil Dudka <kdudka@redhat.com>
Date: Mon, 20 May 2013 13:49:34 +0200
Subject: [PATCH 1/2] make the tests ready for SELinux
---
test/root/permissions.test | 8 ++++----
test/root/restore.test | 2 +-
test/root/setfacl.test | 2 +-
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/test/root/permissions.test b/test/root/permissions.test
index afaf5f0..4880bd2 100644
--- a/test/root/permissions.test
+++ b/test/root/permissions.test
@@ -20,7 +20,7 @@ defined permissions.
$ cd d
$ umask 027
$ touch f
- $ ls -l f | awk -- '{ print $1, $3, $4 }'
+ $ ls -l f | awk -- '{ print $1, $3, $4 }' | sed 's/---\\./---/'
> -rw-r----- root root
@@ -40,7 +40,7 @@ Now, change the ownership of the file to bin:bin and verify that this
gives user bin write access.
$ chown bin:bin f
- $ ls -l f | awk -- '{ print $1, $3, $4 }'
+ $ ls -l f | awk -- '{ print $1, $3, $4 }' | sed 's/---\\./---/'
> -rw-r----- bin bin
$ su bin
$ echo bin >> f
@@ -257,12 +257,12 @@ directories if the file has an ACL and only CAP_FOWNER would grant them.
$ mkdir -m 600 x
$ chown daemon:daemon x
$ echo j > x/j
- $ ls -l x/j | awk -- '{ print $1, $3, $4 }'
+ $ ls -l x/j | awk -- '{ print $1, $3, $4 }' | sed 's/---\\./---/'
> -rw-r----- root root
$ setfacl -m u:daemon:r x
- $ ls -l x/j | awk -- '{ print $1, $3, $4 }'
+ $ ls -l x/j | awk -- '{ print $1, $3, $4 }' | sed 's/---\\./---/'
> -rw-r----- root root
(With the bug this gives: `ls: x/j: Permission denied'.)
diff --git a/test/root/restore.test b/test/root/restore.test
index 6003cd4..5dbf73c 100644
--- a/test/root/restore.test
+++ b/test/root/restore.test
@@ -17,7 +17,7 @@ Ensure setuid bit is restored when the owner changes
$ chown bin passwd
$ chmod u+s passwd
$ setfacl --restore passwd.acl
- $ ls -dl passwd | awk '{print $1 " " $3 " " $4}'
+ $ ls -dl passwd | awk '{print $1 " " $3 " " $4}' | sed 's/\\. root/ root/'
> -rwsr-xr-x root root
$ rm passwd passwd.acl
diff --git a/test/root/setfacl.test b/test/root/setfacl.test
index 630e9fb..dd7fe08 100644
--- a/test/root/setfacl.test
+++ b/test/root/setfacl.test
@@ -8,7 +8,7 @@ Setfacl utility tests. Run these tests on a filesystem with ACL support.
$ sg bin
$ umask 027
$ touch g
- $ ls -dl g | awk '{print $1}'
+ $ ls -dl g | awk '{print $1}' | sed 's/\\.$//'
> -rw-r-----
$ setfacl -m m:- g
--
1.7.1
From 3720a8a3cf55e295eca55457fad8177f6277f620 Mon Sep 17 00:00:00 2001
From: Kamil Dudka <kdudka@redhat.com>
Date: Mon, 20 May 2013 15:00:47 +0200
Subject: [PATCH 2/2] test: fix insufficient quoting of '\'
This is a follow-up to 7f2c91b8369242a8dbc2b304a5b71b2a85f5b855, which
caused sbits-restore.test to fail in the following way in case SELinux
was disabled:
*** sbits-restore.test ***
[3] $ umask 022 -- ok
[4] $ mkdir d -- ok
[5] $ touch d/g -- ok
[6] $ touch d/u -- ok
[7] $ chmod u+s d/u -- ok
[8] $ chmod g+s d/g -- ok
[9] $ chmod +t d -- ok
[10] $ getfacl -R d > d.acl -- ok
[11] $ rm -R d -- ok
[12] $ mkdir d -- ok
[13] $ touch d/g -- ok
[14] $ touch d/u -- ok
[15] $ setfacl --restore d.acl -- ok
[16] $ ls -dl d | awk '{print $1}' | sed 's/.$//g' -- failed
drwxr-xr- != drwxr-xr-t
[18] $ ls -dl d/u | awk '{print $1}' | sed 's/.$//g' -- failed
-rwSr--r- != -rwSr--r--
[20] $ ls -dl d/g | awk '{print $1}' | sed 's/.$//g' -- failed
-rw-r-Sr- != -rw-r-Sr--
[22] $ rm -Rf d -- ok
17 commands (14 passed, 3 failed)
---
test/cp.test | 2 +-
test/misc.test | 6 +++---
test/sbits-restore.test | 6 +++---
3 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/test/cp.test b/test/cp.test
index 0867f63..a927195 100644
--- a/test/cp.test
+++ b/test/cp.test
@@ -9,7 +9,7 @@ The cp utility should only copy ACLs if `-p' is given.
> -rw-rw-r--+
$ cp f g
- $ ls -l g | awk -- '{ print $1 }' | sed 's/\.$//g'
+ $ ls -l g | awk -- '{ print $1 }' | sed 's/\\.$//g'
> -rw-r--r--
$ rm g
diff --git a/test/misc.test b/test/misc.test
index 6e98053..29372b7 100644
--- a/test/misc.test
+++ b/test/misc.test
@@ -254,7 +254,7 @@ Add some users and groups
Symlink in directory with default ACL?
$ ln -s d d/l
- $ ls -dl d/l | awk '{print $1}' | sed 's/\.$//g'
+ $ ls -dl d/l | awk '{print $1}' | sed 's/\\.$//g'
> lrwxrwxrwx
$ ls -dl -L d/l | awk '{print $1}'
@@ -343,7 +343,7 @@ Remove the default ACL
Reset to base entries
$ setfacl -b d
- $ ls -dl d | awk '{print $1}' | sed 's/\.$//g'
+ $ ls -dl d | awk '{print $1}' | sed 's/\\.$//g'
> drwxr-x---
$ getfacl --omit-header d
@@ -355,7 +355,7 @@ Reset to base entries
Now, chmod should change the group_obj entry
$ chmod 775 d
- $ ls -dl d | awk '{print $1}' | sed 's/\.$//g'
+ $ ls -dl d | awk '{print $1}' | sed 's/\\.$//g'
> drwxrwxr-x
$ getfacl --omit-header d
diff --git a/test/sbits-restore.test b/test/sbits-restore.test
index de21340..5899b0a 100644
--- a/test/sbits-restore.test
+++ b/test/sbits-restore.test
@@ -13,10 +13,10 @@ Ensure setting of SUID/SGID/sticky via --restore works
$ touch d/g
$ touch d/u
$ setfacl --restore d.acl
- $ ls -dl d | awk '{print $1}' | sed 's/\.$//g'
+ $ ls -dl d | awk '{print $1}' | sed 's/\\.$//g'
> drwxr-xr-t
- $ ls -dl d/u | awk '{print $1}' | sed 's/\.$//g'
+ $ ls -dl d/u | awk '{print $1}' | sed 's/\\.$//g'
> -rwSr--r--
- $ ls -dl d/g | awk '{print $1}' | sed 's/\.$//g'
+ $ ls -dl d/g | awk '{print $1}' | sed 's/\\.$//g'
> -rw-r-Sr--
$ rm -Rf d
--
1.7.1

View File

@ -1,28 +0,0 @@
From 3dee229914dc17beef900d16175a877697119911 Mon Sep 17 00:00:00 2001
From: Kamil Rytarowski <n54@gmx.com>
Date: Sat, 27 Apr 2013 22:43:31 +0200
Subject: [PATCH] Install the libraries to the appropriate directory
[upstream commit 2971df45020e39516c9b3d6217195b4029026f7a]
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
---
include/builddefs.in | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/include/builddefs.in b/include/builddefs.in
index 2ef6173..876a735 100644
--- a/include/builddefs.in
+++ b/include/builddefs.in
@@ -31,7 +31,7 @@ PKG_DISTRIBUTION= @pkg_distribution@
PKG_BIN_DIR = @bindir@
PKG_SBIN_DIR = @sbindir@
PKG_LIB_DIR = @libdir@@libdirsuffix@
-PKG_DEVLIB_DIR = @libexecdir@@libdirsuffix@
+PKG_DEVLIB_DIR = @libdir@@libdirsuffix@
PKG_INC_DIR = @includedir@
PKG_MAN_DIR = @mandir@
PKG_DOC_DIR = @datadir@/doc/@pkg_name@
--
1.7.1

View File

@ -1,54 +0,0 @@
From fb071c302b8cad8837bc1e57407dc3ffa14d3f99 Mon Sep 17 00:00:00 2001
From: Kamil Dudka <kdudka@redhat.com>
Date: Thu, 31 Oct 2013 19:24:35 +0100
Subject: [PATCH] libacl: fix SIGSEGV of getfacl -e on overly long group name
We simply make sure that at least one tab is used for indentation.
---
libacl/__acl_to_any_text.c | 5 +++++
test/root/getfacl.test | 17 +++++++++++++++++
2 files changed, 22 insertions(+), 0 deletions(-)
create mode 100644 test/root/getfacl.test
diff --git a/libacl/__acl_to_any_text.c b/libacl/__acl_to_any_text.c
index a4f9c34..1d10e81 100644
--- a/libacl/__acl_to_any_text.c
+++ b/libacl/__acl_to_any_text.c
@@ -247,6 +247,11 @@ acl_entry_to_any_str(const acl_entry_t entry_d, char *text_p, ssize_t size,
options & TEXT_ALL_EFFECTIVE) {
x = (options & TEXT_SMART_INDENT) ?
((text_p - orig_text_p)/8) : TABS-1;
+
+ /* use at least one tab for indentation */
+ if (x > (TABS-1))
+ x = (TABS-1);
+
strncpy(text_p, tabs+x, size);
ADVANCE(TABS-x);
diff --git a/test/root/getfacl.test b/test/root/getfacl.test
new file mode 100644
index 0000000..f84e25d
--- /dev/null
+++ b/test/root/getfacl.test
@@ -0,0 +1,17 @@
+Make sure that getfacl always adds at least one space between the permissions
+in an acl entry and the effective permissions comment.
+
+ $ umask 022
+ $ mkdir d
+ $ groupadd loooooooooooooooooooooooonggroup
+ $ setfacl -dm group:loooooooooooooooooooooooonggroup:rwx d
+ $ getfacl -cde d
+ > user::rwx
+ > group::r-x #effective:r-x
+ > group:loooooooooooooooooooooooonggroup:rwx #effective:rwx
+ > mask::rwx
+ > other::r-x
+ >
+
+ $ groupdel loooooooooooooooooooooooonggroup
+ $ rm -r d
--
1.7.1

View File

@ -1,60 +0,0 @@
From ecee95a94420d6b0336d4caec6bc66b53442367b Mon Sep 17 00:00:00 2001
From: Kamil Dudka <kdudka@redhat.com>
Date: Thu, 19 May 2016 10:28:13 +0200
Subject: [PATCH] setfacl.1: document the meaning of '-' in perms
[agruen: Description further clarified.]
Upstream-commit: ea3c6bb711e76d91759f8bf5475e1900362a3142
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
---
man/man1/setfacl.1 | 28 +++++++++++++++++++++-------
1 file changed, 21 insertions(+), 7 deletions(-)
diff --git a/man/man1/setfacl.1 b/man/man1/setfacl.1
index 0c7c046..e092e51 100644
--- a/man/man1/setfacl.1
+++ b/man/man1/setfacl.1
@@ -194,18 +194,32 @@ you can specify either a name or a number.
.PP
The
.I perms
-field is a combination of characters that indicate the permissions: read
+field is a combination of characters that indicate the read
.IR (r) ,
write
.IR (w) ,
execute
-.IR (x) ,
-execute only if the file is a directory or already has execute permission
-for some user
-.IR (X) .
-Alternatively, the
+.IR (x)
+permissions. Dash characters in the
.I perms
-field can be an octal digit (0\-7).
+field
+.IR (\-)
+are ignored. The character
+.I X
+stands for the execute permission if the file is a directory or already has
+execute permission for some user. Alternatively, the
+.I perms
+field can define the permissions numerically, as a bit-wise combination of read
+.IR (4) ,
+write
+.IR (2) ,
+and execute
+.IR (1) .
+Zero
+.I perms
+fields or
+.I perms
+fields that only consist of dashes indicate no permissions.
.PP
.SS AUTOMATICALLY CREATED ENTRIES
Initially, files and directories contain only the three base ACL entries
--
2.5.5

View File

@ -1,31 +0,0 @@
From 368f03d8d415854fc2e66ebaf6e014d9c0fada7b Mon Sep 17 00:00:00 2001
From: Troy Dawson <tdawson@redhat.com>
Date: Fri, 21 Jul 2017 14:05:47 -0700
Subject: [PATCH] acl: escape left brace in a regex in test/run
... to fix test-suite failure with perl-5.26.0
Bug: https://bugzilla.redhat.com/1473845
Upstream-commit: f2feb94748bd3c64ed153461afa51aebbd717821
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
---
test/run | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/run b/test/run
index 2cf52e8..0e499e4 100755
--- a/test/run
+++ b/test/run
@@ -70,7 +70,7 @@ for (;;) {
if (defined $line) {
# Substitute %VAR and %{VAR} with environment variables.
$line =~ s[%(\w+)][$ENV{$1}]eg;
- $line =~ s[%{(\w+)}][$ENV{$1}]eg;
+ $line =~ s[%\{(\w+)}][$ENV{$1}]eg;
}
if (defined $line) {
if ($line =~ s/^\s*< ?//) {
--
2.9.4

View File

@ -1,27 +0,0 @@
From 1daf87b570070cc652e3ea39c1ad7f7c2cce8b09 Mon Sep 17 00:00:00 2001
From: Andreas Gruenbacher <agruenba@redhat.com>
Date: Mon, 12 Mar 2018 22:25:19 +0100
Subject: [PATCH] acl.5 man page: Update link to POSIX.1e draft
Upstream-commit: ff3bca294e092810e92fd8a832bc0388e3194932
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
---
man/man5/acl.5 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/man/man5/acl.5 b/man/man5/acl.5
index c045726..18a3550 100644
--- a/man/man5/acl.5
+++ b/man/man5/acl.5
@@ -406,7 +406,7 @@ header.
.Xr stat 2 ,
.Xr umask 1
.Ss POSIX 1003.1e DRAFT 17
-.Xr "http://www.guug.de/~winni/posix.1e/download.html"
+.Xr "http://wt.tuxomania.net/publications/posix.1e/download.html"
.Ss POSIX 1003.1e FUNCTIONS BY CATEGORY
.Bl -tag -width "MMM"
.It Sy ACL storage management
--
2.14.3

Binary file not shown.

BIN
acl-2.2.53.tar.gz.sig Normal file

Binary file not shown.

View File

@ -1,37 +1,13 @@
Summary: Access control list utilities
Name: acl
Version: 2.2.52
Release: 21%{?dist}
Version: 2.2.53
Release: 1%{?dist}
BuildRequires: gawk
BuildRequires: gettext
BuildRequires: libattr-devel
BuildRequires: libtool
Requires: libacl = %{version}-%{release}
Source: https://download-mirror.savannah.gnu.org/releases/acl/acl-%{version}.src.tar.gz
# fix a typo in setfacl(1) man page (#675451)
Patch1: 0001-acl-2.2.49-bz675451.patch
# fix spurious acl_check() failure on setfacl --restore (#1451826)
Patch2: 0002-acl-2.2.52-setfacl-restore-initialize.patch
# prepare the test-suite for SELinux and arbitrary umask
Patch3: 0003-acl-2.2.52-tests.patch
# Install the libraries to the appropriate directory
Patch4: 0004-acl-2.2.52-libdir.patch
# fix SIGSEGV of getfacl -e on overly long group name
Patch5: 0005-acl-2.2.52-getfacl-segv.patch
# setfacl.1: document the meaning of '-' in perms (#1337039)
Patch6: 0006-acl-2.2.52-setfacl-man-page.patch
# fix test-suite failure with perl-5.26.0 (#1473845)
Patch7: 0007-acl-2.2.52-tests-perl.patch
# update link to POSIX.1e draft in acl(5) man page (#1510527)
Patch8: 0008-acl-2.2.52-acl5-man-page.patch
Source: https://download-mirror.savannah.gnu.org/releases/acl/acl-%{version}.tar.gz
License: GPLv2+
URL: https://savannah.nongnu.org/projects/acl
@ -75,16 +51,25 @@ defined in POSIX 1003.1e draft standard 17.
make %{?_smp_mflags}
%check
if ./setfacl/setfacl -m u:`id -u`:rwx .; then
make tests || exit $?
if test 0 = `id -u`; then
if ./setfacl -m "u:$(id -u):rwx" .; then
if test 0 = "$(id -u)"; then
# test/root/permissions.test requires the 'daemon' user to be a member
# of the 'bin' group in order not to fail. Prevent the test from
# running if we detect that its requirements are not met (#1085389).
id -nG daemon | grep bin >/dev/null || rm -f test/root/permissions.test
if id -nG daemon | { ! grep bin >/dev/null; }; then
sed -e 's|test/root/permissions.test||' \
-i test/Makemodule.am Makefile.in Makefile
fi
make root-tests || exit $?
# test/root/setfacl.test fails if 'bin' user cannot access build dir
if ! runuser -u bin -- "${PWD}/setfacl" --version; then
sed -e 's|test/root/setfacl.test||' \
-i test/Makemodule.am Makefile.in Makefile
fi
fi
# run the upstream test-suite
make check || exit $?
else
echo '*** ACLs are probably not supported by the file system,' \
'the test-suite will NOT run ***'
@ -92,8 +77,6 @@ fi
%install
make install DESTDIR=$RPM_BUILD_ROOT
make install-dev DESTDIR=$RPM_BUILD_ROOT
make install-lib DESTDIR=$RPM_BUILD_ROOT
# get rid of libacl.a and libacl.la
rm -f $RPM_BUILD_ROOT%{_libdir}/libacl.a
@ -121,6 +104,7 @@ rm -rf $RPM_BUILD_ROOT%{_docdir}/%{name}*
%files -n libacl-devel
%{_libdir}/libacl.so
%{_libdir}/pkgconfig/*.pc
%{_includedir}/acl
%{_includedir}/sys/acl.h
%{_mandir}/man3/acl_*
@ -129,6 +113,9 @@ rm -rf $RPM_BUILD_ROOT%{_docdir}/%{name}*
%{_libdir}/libacl.so.*
%changelog
* Mon Jul 02 2018 Kamil Dudka <kdudka@redhat.com> 2.2.53-1
- new upstream release
* Tue Mar 13 2018 Kamil Dudka <kdudka@redhat.com> 2.2.52-21
- update link to POSIX.1e draft in acl(5) man page (#1510527)

View File

@ -1 +1 @@
a61415312426e9c2212bd7dc7929abda acl-2.2.52.src.tar.gz
SHA512 (acl-2.2.53.tar.gz) = 176b7957fe0e7618e0b7bf2ac5071f7fa29417df718cce977661a576fa184e4af9d303b591c9d556b6ba8923e799457343afa401f5a9f7ecd9022185a4e06716