]>
git.ipfire.org Git - thirdparty/openssh-portable.git/log
djm@openbsd.org [Fri, 4 Jun 2021 05:10:03 +0000 (05:10 +0000)]
upstream: adjust SetEnv description to clarify $TERM handling
OpenBSD-Commit-ID:
8b8cc0124856bc1094949d55615e5c44390bcb22
dtucker@openbsd.org [Fri, 4 Jun 2021 05:09:08 +0000 (05:09 +0000)]
upstream: Switch the listening select loop from select() to
pselect() and mask signals while checking signal flags, umasking for pselect
and restoring afterwards. Also restore signals before sighup_restart so they
don't remain blocked after restart.
This prevents a race where a SIGTERM or SIGHUP can arrive between
checking the flag and calling select (eg if sshd is processing a
new connection) resulting in sshd not shutting down until the next
time it receives a new connection. bz#2158, with & ok djm@
OpenBSD-Commit-ID:
bf85bf880fd78e00d7478657644fcda97b9a936f
djm@openbsd.org [Fri, 4 Jun 2021 05:02:40 +0000 (05:02 +0000)]
upstream: allow ssh_config SetEnv to override $TERM, which is otherwise
handled specially by the protocol. Useful in ~/.ssh/config to set TERM to
something generic (e.g. "xterm" instead of "xterm-256color") for destinations
that lack terminfo entries. feedback and ok dtucker@
OpenBSD-Commit-ID:
38b1ef4d5bc159c7d9d589d05e3017433e2d5758
djm@openbsd.org [Fri, 4 Jun 2021 04:02:21 +0000 (04:02 +0000)]
upstream: correct extension name "no-presence-required" =>
"no-touch-required"
document "verify-required" option
OpenBSD-Commit-ID:
1879ff4062cf61d79b515e433aff0bf49a6c55c5
Darren Tucker [Wed, 2 Jun 2021 03:54:11 +0000 (13:54 +1000)]
Retire fbsd7 test target.
It's the slowest of the selfhosted targets (since it's 32bit but has
most of the crypto algos). We still have coverage for 32bit i386.
Darren Tucker [Wed, 2 Jun 2021 01:21:40 +0000 (11:21 +1000)]
Check for $OPENSSL in md5 fallback too.
Darren Tucker [Wed, 2 Jun 2021 01:17:54 +0000 (11:17 +1000)]
Add dfly60 target.
dtucker@openbsd.org [Wed, 2 Jun 2021 00:17:45 +0000 (00:17 +0000)]
upstream: Merge back shell portability changes
bringing it back in sync with -portable.
OpenBSD-Regress-ID:
c07905ba931e66ad7d849b87b7d19648007175d1
dtucker@openbsd.org [Tue, 1 Jun 2021 23:56:20 +0000 (23:56 +0000)]
upstream: Use a default value for $OPENSSL,
allowing it to be overridden. Do the same in the PuTTY tests since it's
needed there and not exported by test-exec.sh.
OpenBSD-Regress-ID:
c49dcd6aa7602a8606b7afa192196ca1fa65de16
dtucker@openbsd.org [Mon, 24 May 2021 10:25:18 +0000 (10:25 +0000)]
upstream: Find openssl binary via environment variable. This
allows overriding if necessary (eg in -portable where we're testing against a
specific version of OpenSSL).
OpenBSD-Regress-ID:
491f39cae9e762c71aa4bf045803d077139815c5
djm@openbsd.org [Fri, 21 May 2021 04:03:47 +0000 (04:03 +0000)]
upstream: fix memleak in test
OpenBSD-Regress-ID:
5e529d0982aa04666604936df43242e97a7a6f81
djm@openbsd.org [Fri, 21 May 2021 03:59:01 +0000 (03:59 +0000)]
upstream: also check contents of remaining string
OpenBSD-Regress-ID:
d526fa07253f4eebbc7d6205a0ab3d491ec71a28
djm@openbsd.org [Fri, 21 May 2021 03:48:07 +0000 (03:48 +0000)]
upstream: unit test for misc.c:strdelim() that mostly servces to
highlight its inconsistencies
OpenBSD-Regress-ID:
8d2bf970fcc01ccc6e36a5065f89b9c7fa934195
Darren Tucker [Thu, 27 May 2021 11:23:15 +0000 (21:23 +1000)]
Put minix3 config in the host-specific block.
djm@openbsd.org [Mon, 31 May 2021 06:48:42 +0000 (06:48 +0000)]
upstream: Hash challenge supplied by client during FIDO key enrollment
prior to passing it to libfido2, which does expect a hash.
There is no effect for users who are simply generating FIDO keys using
ssh-keygen - by default we generate a random 256 bit challenge, but
people building attestation workflows around our tools should now have
a more consistent experience (esp. fewer failures when they fail to
guess the magic 32-byte challenge length requirement).
ok markus@
OpenBSD-Commit-ID:
b8d5363a6a7ca3b23dc28f3ca69470472959f2b5
Darren Tucker [Thu, 27 May 2021 11:14:15 +0000 (21:14 +1000)]
Include login_cap.h for login_getpwclass override.
On minix3, login_getpwclass is __RENAME'ed to __login_getpwclass50 so
without this the include overriding login_getpwclass causes a compile
error.
Darren Tucker [Thu, 27 May 2021 11:13:38 +0000 (21:13 +1000)]
Add minix3 test target.
djm@openbsd.org [Wed, 26 May 2021 01:47:24 +0000 (01:47 +0000)]
upstream: fix SEGV in UpdateHostkeys debug() message, triggered
when the update removed more host keys than remain present. Fix tested by
reporter James Cook, via bugs@
OpenBSD-Commit-ID:
44f641f6ee02bb957f0c1d150495b60cf7b869d3
naddy@openbsd.org [Sun, 23 May 2021 18:22:57 +0000 (18:22 +0000)]
upstream: ssh: The client configuration keyword is
"hostbasedacceptedalgorithms"
This fixes a mistake that slipped in when "HostbasedKeyTypes" was
renamed to "HostbasedAcceptedAlgorithms".
Bug report by zack@philomathiclife.com
OpenBSD-Commit-ID:
d745a7e8e50b2589fc56877f322ea204bc784f38
Darren Tucker [Tue, 25 May 2021 01:40:47 +0000 (11:40 +1000)]
Rename README.md to ci-status.md.
The original intent was to provide a status page for the CIs configured
in that directory, but it had the side effect of replacing the top-level
README.md.
djm@openbsd.org [Wed, 19 May 2021 01:24:05 +0000 (01:24 +0000)]
upstream: restore blocking status on stdio fds before close
ssh(1) needs to set file descriptors to non-blocking mode to operate
but it was not restoring the original state on exit. This could cause
problems with fds shared with other programs via the shell, e.g.
> $ cat > test.sh << _EOF
> #!/bin/sh
> {
> ssh -Fnone -oLogLevel=verbose ::1 hostname
> cat /usr/share/dict/words
> } | sleep 10
> _EOF
> $ ./test.sh
> Authenticated to ::1 ([::1]:22).
> Transferred: sent 2352, received 2928 bytes, in 0.1 seconds
> Bytes per second: sent 44338.9, received 55197.4
> cat: stdout: Resource temporarily unavailable
This restores the blocking status for fds 0,1,2 (stdio) before ssh(1)
abandons/closes them.
This was reported as bz3280 and GHPR246; ok dtucker@
OpenBSD-Commit-ID:
8cc67346f05aa85a598bddf2383fcfcc3aae61ce
djm@openbsd.org [Mon, 17 May 2021 11:43:16 +0000 (11:43 +0000)]
upstream: fix breakage of -W forwaring introduced in 1.554; reported by
naddy@ and sthen@, ok sthen@
OpenBSD-Commit-ID:
f72558e643a26dc4150cff6e5097b5502f6c85fd
dtucker@openbsd.org [Mon, 17 May 2021 07:22:45 +0000 (07:22 +0000)]
upstream: Regenerate moduli.
OpenBSD-Commit-ID:
83c93a2a07c584c347ac6114d6329b18ce515557
Damien Miller [Sun, 16 May 2021 23:40:23 +0000 (09:40 +1000)]
Handle Android libc returning NULL pw->pw_passwd
Reported by Luke Dashjr
djm@openbsd.org [Fri, 14 May 2021 05:20:32 +0000 (05:20 +0000)]
upstream: fix previous: test saved no_shell_flag, not the one that just
got clobbered
OpenBSD-Commit-ID:
b8deace085d9d941b2d02f810243b9c302e5355d
djm@openbsd.org [Fri, 14 May 2021 03:09:48 +0000 (03:09 +0000)]
upstream: Fix ssh started with ControlPersist incorrectly executing a
shell when the -N (no shell) option was specified. bz3290 reported by Richard
Schwab; patch from markus@ ok me
OpenBSD-Commit-ID:
ea1ea4af16a95687302f7690bdbe36a6aabf87e1
dtucker@openbsd.org [Wed, 12 May 2021 11:34:30 +0000 (11:34 +0000)]
upstream: Clarify language about moduli. While both ends of the
connection do need to use the same parameters (ie groups), the DH-GEX
protocol takes care of that and both ends do not need the same contents in
the moduli file, which is what the previous text suggested. ok djm@ jmc@
OpenBSD-Commit-ID:
f0c18cc8e79c2fbf537a432a9070ed94e96a622a
djm@openbsd.org [Fri, 7 May 2021 04:11:51 +0000 (04:11 +0000)]
upstream: include pid in LogVerbose spam
OpenBSD-Commit-ID:
aacb86f96ee90c7cb84ec27452374285f89a7f00
djm@openbsd.org [Fri, 7 May 2021 03:09:38 +0000 (03:09 +0000)]
upstream: don't sigdie() in signal handler in privsep child process;
this can end up causing sandbox violations per bz3286; ok dtucker@
OpenBSD-Commit-ID:
a7f40b2141dca4287920da68ede812bff7ccfdda
dtucker@openbsd.org [Fri, 7 May 2021 09:23:40 +0000 (09:23 +0000)]
upstream: Increase ConnectionAttempts from 4 to 10 as the tests
occasionally time out on heavily loaded hosts.
OpenBSD-Regress-ID:
29a8cdef354fc9da471a301f7f65184770434f3a
djm@openbsd.org [Fri, 7 May 2021 02:26:55 +0000 (02:26 +0000)]
upstream: dump out a usable private key string too; inspired by Tyson
Whitehead
OpenBSD-Regress-ID:
65572d5333801cb2f650ebc778cbdc955e372058
djm@openbsd.org [Fri, 7 May 2021 02:29:40 +0000 (02:29 +0000)]
upstream: correct mistake in spec - the private key blobs are encoded
verbatim and not as strings (i.e. no 4-byte length header)
OpenBSD-Commit-ID:
3606b5d443d72118c5b76c4af6dd87a5d5a4f837
dtucker@openbsd.org [Tue, 4 May 2021 22:53:52 +0000 (22:53 +0000)]
upstream: Don't pass NULL as a string in debugging as it does not work
on some platforms in -portable. ok djm@
OpenBSD-Commit-ID:
937c892c99aa3c9c272a8ed78fa7c2aba3a44fc9
djm@openbsd.org [Mon, 3 May 2021 00:16:45 +0000 (00:16 +0000)]
upstream: more debugging for UpdateHostKeys signature failures
OpenBSD-Commit-ID:
1ee95f03875e1725df15d5e4bea3e73493d57d36
Darren Tucker [Sat, 1 May 2021 10:07:47 +0000 (20:07 +1000)]
Add obsd69 test target.
djm@openbsd.org [Fri, 30 Apr 2021 04:29:53 +0000 (04:29 +0000)]
upstream: a little debugging in the main mux process for status
confirmation failures in multiplexed sessions
OpenBSD-Commit-ID:
6e27b87c95176107597035424e1439c3232bcb49
dtucker@openbsd.org [Fri, 30 Apr 2021 04:02:52 +0000 (04:02 +0000)]
upstream: Remove now-unused skey function prototypes leftover from
skey removal.
OpenBSD-Commit-ID:
2fc36d519fd37c6f10ce74854c628561555a94c3
Darren Tucker [Thu, 29 Apr 2021 03:01:50 +0000 (13:01 +1000)]
Wrap sntrup761x25519 inside ifdef.
From balu.gajjala at gmail.com via bz#3306.
Darren Tucker [Wed, 28 Apr 2021 04:44:07 +0000 (14:44 +1000)]
Add status badges for Actions-based tests.
Darren Tucker [Wed, 28 Apr 2021 02:22:11 +0000 (12:22 +1000)]
Add obsdsnap (OpenBSD snapshot) test target.
Darren Tucker [Wed, 28 Apr 2021 01:35:28 +0000 (11:35 +1000)]
Add test building upstream OpenBSD source.
Darren Tucker [Tue, 27 Apr 2021 04:22:20 +0000 (14:22 +1000)]
Test against OpenSSL 1.1.0h instead of 1.1.0g.
1.1.0g requires a perl glob module that's not installed by default.
Darren Tucker [Tue, 27 Apr 2021 02:37:59 +0000 (12:37 +1000)]
Use the default VM type for libcrypto ver tests.
Darren Tucker [Tue, 27 Apr 2021 02:24:10 +0000 (12:24 +1000)]
Always build OpenSSL shared.
This is the default for current versions but we need it to test against
earlier versions.
Darren Tucker [Mon, 26 Apr 2021 23:18:02 +0000 (09:18 +1000)]
Fix custom OpenSSL tests.
Check out specified OpenSSL version. Install custom libcrypto where
configure expects to find it. Remove unneeded OpenSSL config time
options. Older OpenSSL versions were not make -j safe so remove it.
Darren Tucker [Mon, 26 Apr 2021 07:18:25 +0000 (17:18 +1000)]
Export CC and CFLAGS for c89 test.
Darren Tucker [Mon, 26 Apr 2021 07:13:44 +0000 (17:13 +1000)]
Add c89 here too.
Darren Tucker [Mon, 26 Apr 2021 05:34:23 +0000 (15:34 +1000)]
Add test against OpenSSL w/out ECC.
Darren Tucker [Mon, 26 Apr 2021 04:49:59 +0000 (14:49 +1000)]
Ensure we can still build with C89.
Darren Tucker [Mon, 26 Apr 2021 04:29:03 +0000 (14:29 +1000)]
Interop test agains PuTTY.
Darren Tucker [Mon, 26 Apr 2021 04:02:03 +0000 (14:02 +1000)]
Support testing against arbitary libcrytpo vers.
Add tests against various LibreSSL and OpenSSL versions.
Darren Tucker [Mon, 26 Apr 2021 03:35:44 +0000 (13:35 +1000)]
Add fbsd10 test target.
Darren Tucker [Sun, 25 Apr 2021 04:15:02 +0000 (14:15 +1000)]
Disable compiler hardening on nbsd4.
The system compiler supports -fstack-protector-all, but using it will
result in an internal compiler error on some files.
Darren Tucker [Sun, 25 Apr 2021 03:01:34 +0000 (13:01 +1000)]
Add nbsd3, nbsd4 and nbsd9 test targets.
Darren Tucker [Sat, 24 Apr 2021 12:03:46 +0000 (22:03 +1000)]
Comment out nbsd2 test target for now.
Darren Tucker [Sat, 24 Apr 2021 07:52:24 +0000 (17:52 +1000)]
Add OPENBSD ORIGINAL marker.
Darren Tucker [Fri, 23 Apr 2021 09:49:46 +0000 (19:49 +1000)]
Replace "==" (a bashism) with "=".
Darren Tucker [Fri, 23 Apr 2021 06:34:48 +0000 (16:34 +1000)]
Add nbsd2 test target.
Darren Tucker [Fri, 23 Apr 2021 04:54:10 +0000 (14:54 +1000)]
Add obsd68 test target.
Darren Tucker [Fri, 23 Apr 2021 04:53:32 +0000 (14:53 +1000)]
Remove dependency on bash.
Darren Tucker [Fri, 23 Apr 2021 04:41:13 +0000 (14:41 +1000)]
Add obsd67 test target.
Darren Tucker [Fri, 23 Apr 2021 01:08:23 +0000 (11:08 +1000)]
Re-add macos-11.0 test target.
Darren Tucker [Fri, 23 Apr 2021 00:28:28 +0000 (10:28 +1000)]
Add openindiana test target.
Darren Tucker [Fri, 23 Apr 2021 00:26:35 +0000 (10:26 +1000)]
Test krb5 on Solaris 11 too.
Darren Tucker [Thu, 22 Apr 2021 12:27:26 +0000 (22:27 +1000)]
Don't always set SUDO.
Rely on sourcing configs to set as appropriate.
Darren Tucker [Thu, 22 Apr 2021 12:26:08 +0000 (22:26 +1000)]
Remove now-unused 2nd arg to configs.
Darren Tucker [Tue, 20 Apr 2021 15:08:04 +0000 (01:08 +1000)]
Add win10 test target.
Darren Tucker [Tue, 20 Apr 2021 13:31:29 +0000 (23:31 +1000)]
Add nbsd8 test target.
Darren Tucker [Fri, 16 Apr 2021 23:55:47 +0000 (09:55 +1000)]
Add obsd51 target.
Darren Tucker [Fri, 16 Apr 2021 08:14:25 +0000 (18:14 +1000)]
Add fbsd13 target.
Damien Miller [Fri, 16 Apr 2021 03:55:25 +0000 (13:55 +1000)]
depend
Damien Miller [Fri, 16 Apr 2021 03:53:02 +0000 (13:53 +1000)]
crank version in README and RPM spec files
djm@openbsd.org [Fri, 16 Apr 2021 03:42:00 +0000 (03:42 +0000)]
upstream: openssh-8.6
OpenBSD-Commit-ID:
b5f3e133c846127ec114812248bc17eff07c3e19
markus@openbsd.org [Thu, 15 Apr 2021 16:24:31 +0000 (16:24 +0000)]
upstream: do not pass file/func to monitor; noted by Ilja van Sprundel;
ok djm@
OpenBSD-Commit-ID:
85ae5c063845c410283cbdce685515dcd19479fa
Damien Miller [Wed, 14 Apr 2021 01:42:55 +0000 (11:42 +1000)]
sshd don't exit on transient read errors
openssh-8.5 introduced a regression that would cause sshd to exit
because of transient read errors on the network socket (e.g. EINTR,
EAGAIN). Reported by balu.gajjala AT gmail.com via bz3297
Damien Miller [Sat, 10 Apr 2021 08:45:00 +0000 (18:45 +1000)]
perform report_failed_grab() inline
Damien Miller [Sat, 10 Apr 2021 08:22:57 +0000 (18:22 +1000)]
dedicated gnome-ssk-askpass3 source
Compatibility with Wayland requires that we use the gdk_seat_grab()
API for grabbing mouse/keyboard, however these API don't exist in
Gtk+2.
This branches gnome-ssk-askpass2.c => gnome-ssk-askpass3.c and
makes the changes to use the gdk_seat_grab() instead of grabbing
mouse/focus separately via GDK.
In the future, we can also use the branched file to avoid some
API that has been soft-deprecated in GTK+3, e.g. gtk_widget_modify_fg
Darren Tucker [Thu, 8 Apr 2021 05:18:15 +0000 (15:18 +1000)]
Ensure valgrind-out exists.
Normally the regress tests would create it, but running the unit tests
on their own would fail because the directory did not exist.
Darren Tucker [Thu, 8 Apr 2021 05:17:19 +0000 (15:17 +1000)]
Pass OBJ to unit test make invocation.
At least the Valgrind unit tests uses $OBJ.
Darren Tucker [Thu, 8 Apr 2021 04:20:12 +0000 (14:20 +1000)]
Add pattern for valgrind-unit.
Darren Tucker [Thu, 8 Apr 2021 03:31:08 +0000 (13:31 +1000)]
Run unit tests under valgrind.
Run a separate build for the unit tests under Valgrind. They take long
enough that running in parallel with the other Valgrind tests helps.
Darren Tucker [Thu, 8 Apr 2021 03:25:57 +0000 (13:25 +1000)]
ifdef out MIN and MAX.
In -portable, defines.h ensures that these are defined, so redefining
potentially causes a warning. We don't just delete it to make any
future code syncs a little but easier. bz#3293.
Darren Tucker [Wed, 7 Apr 2021 00:23:51 +0000 (10:23 +1000)]
Remove only use of warn().
The warn() function is only used in one place in portable and does not
exist upstream. Upgrade the only instance it's used to fail()
(the privsep/sandbox+proxyconnect, from back when that was new) and
remove the now-unused function.
Darren Tucker [Wed, 7 Apr 2021 00:18:32 +0000 (10:18 +1000)]
Move make_tmpdir() into portable-specific area.
Reduces diff vs OpenBSD and makes it more likely diffs will apply
cleanly.
dtucker@openbsd.org [Tue, 6 Apr 2021 23:57:56 +0000 (23:57 +0000)]
upstream: Add TEST_SSH_ELAPSED_TIMES environment variable to print the
elapsed time in seconds of each test. This depends on "date +%s" which is
not specified by POSIX but is commonly implemented.
OpenBSD-Regress-ID:
ec3c8c19ff49b2192116a0a646ee7c9b944e8a9c
Darren Tucker [Tue, 6 Apr 2021 23:59:15 +0000 (09:59 +1000)]
Move the TEST_SSH_PORT section down a bit.
This groups the portable-specific changes together and makes it a
little more likely that patches will apply cleanly.
Darren Tucker [Wed, 7 Apr 2021 00:05:10 +0000 (10:05 +1000)]
Further split Valgrind tests.
Even split in two, the Valgrind tests take by far the longest to run,
so split them four ways to further increase parallelism.
djm@openbsd.org [Tue, 6 Apr 2021 23:24:30 +0000 (23:24 +0000)]
upstream: include "ssherr.h" not <ssherr.h>; from Balu Gajjala via
bz#3292
OpenBSD-Commit-ID:
e9535cd9966eb2e69e73d1ede1f44905c30310bd
Damien Miller [Tue, 6 Apr 2021 22:50:38 +0000 (08:50 +1000)]
wrap struct rlimit in HAVE_GETRLIMIT too
Damien Miller [Tue, 6 Apr 2021 22:20:35 +0000 (08:20 +1000)]
wrap getrlimit call in HAVE_GETRLIMIT; bz3291
dtucker@openbsd.org [Tue, 6 Apr 2021 09:07:33 +0000 (09:07 +0000)]
upstream: Don't check return value of unsetenv(). It's part of the
environment setup and not part of the actual test, and some platforms
-portable runs on declare it as returning void, which prevents the test from
compiling.
OpenBSD-Regress-ID:
24f08543ee3cdebc404f2951f3e388cc82b844a1
jmc@openbsd.org [Sun, 4 Apr 2021 11:36:56 +0000 (11:36 +0000)]
upstream: remove stray inserts; from matthias schmidt
OpenBSD-Commit-ID:
2c36ebdc54e14bbf1daad70c6a05479a073d5c63
jmc@openbsd.org [Sun, 4 Apr 2021 06:11:24 +0000 (06:11 +0000)]
upstream: missing comma; from kawashima james
OpenBSD-Commit-ID:
31cec6bf26c6db4ffefc8a070715ebef274e68ea
Darren Tucker [Mon, 5 Apr 2021 13:46:42 +0000 (23:46 +1000)]
Install libcbor with libfido2.
Damien Miller [Sat, 3 Apr 2021 07:21:08 +0000 (18:21 +1100)]
enable authopt and misc unit tests
Neither were wired into the build, both required some build
adaptations for -portable
djm@openbsd.org [Sat, 3 Apr 2021 06:58:30 +0000 (06:58 +0000)]
upstream: typos in comments; GHPR#180 from Vill
=?UTF-8?q?e=20Skytt=C3=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
OpenBSD-Commit-ID:
93c732381ae0e2b680c79e67c40c1814b7ceed2c
djm@openbsd.org [Sat, 3 Apr 2021 06:55:52 +0000 (06:55 +0000)]
upstream: sync CASignatureAlgorithms lists with reality. GHPR#174 from
Matt Hazinski
OpenBSD-Commit-ID:
f05e4ca54d7e67b90fe58fe1bdb1d2a37e0e2696
Damien Miller [Sat, 3 Apr 2021 06:47:37 +0000 (17:47 +1100)]
polish whitespace for portable files
djm@openbsd.org [Sat, 3 Apr 2021 06:18:40 +0000 (06:18 +0000)]
upstream: highly polished whitespace, mostly fixing spaces-for-tab
and bad indentation on continuation lines. Prompted by GHPR#185
OpenBSD-Commit-ID:
e5c81f0cbdcc6144df1ce468ec1bac366d8ad6e9
djm@openbsd.org [Sat, 3 Apr 2021 05:54:14 +0000 (05:54 +0000)]
upstream: whitespace (tab after space)
OpenBSD-Commit-ID:
0e2b3f7674e985d3f7c27ff5028e690ba1c2efd4