diff options
author | Colin Watson <cjwatson@debian.org> | 2018-08-24 12:49:36 +0100 |
---|---|---|
committer | Colin Watson <cjwatson@debian.org> | 2018-08-24 12:49:36 +0100 |
commit | e6547182a54f0f268ee36e7c99319eeddffbaff2 (patch) | |
tree | 417527229ad3f3764ba71ea383f478a168895087 | |
parent | ed6ae9c1a014a08ff5db3d768f01f2e427eeb476 (diff) | |
parent | 71508e06fab14bc415a79a08f5535ad7bffa93d9 (diff) |
Import openssh_7.8p1.orig.tar.gz
203 files changed, 8274 insertions, 7301 deletions
@@ -1,182 +1,175 @@ | |||
1 | # DO NOT DELETE | 1 | # DO NOT DELETE |
2 | 2 | ||
3 | addrmatch.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h match.h log.h | 3 | addrmatch.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h match.h log.h |
4 | atomicio.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h atomicio.h | 4 | atomicio.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h atomicio.h |
5 | audit-bsm.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 5 | audit-bsm.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
6 | audit-linux.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 6 | audit-linux.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
7 | audit.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 7 | audit.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
8 | auth-bsdauth.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 8 | auth-bsdauth.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
9 | auth-krb5.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h ssh.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h log.h misc.h servconf.h uidswap.h key.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h | 9 | auth-krb5.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h ssh.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h log.h sshbuf.h sshkey.h misc.h servconf.h uidswap.h hostfile.h auth.h auth-pam.h audit.h loginrec.h |
10 | auth-options.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h openbsd-compat/sys-queue.h xmalloc.h ssherr.h log.h misc.h sshkey.h match.h ssh2.h auth-options.h | 10 | auth-options.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h ssherr.h log.h sshbuf.h misc.h sshkey.h match.h ssh2.h auth-options.h |
11 | auth-pam.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 11 | auth-pam.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
12 | auth-passwd.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h log.h misc.h servconf.h key.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h auth-options.h | 12 | auth-passwd.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h sshbuf.h ssherr.h log.h misc.h servconf.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h auth-options.h |
13 | auth-rhosts.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h uidswap.h pathnames.h log.h misc.h key.h sshkey.h servconf.h canohost.h hostfile.h auth.h auth-pam.h audit.h loginrec.h | 13 | auth-rhosts.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h uidswap.h pathnames.h log.h misc.h sshbuf.h sshkey.h servconf.h canohost.h hostfile.h auth.h auth-pam.h audit.h loginrec.h |
14 | auth-shadow.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 14 | auth-shadow.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
15 | auth-sia.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 15 | auth-sia.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
16 | auth-skey.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 16 | auth-skey.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
17 | auth.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h match.h groupaccess.h log.h misc.h servconf.h key.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h auth-options.h canohost.h uidswap.h packet.h openbsd-compat/sys-queue.h | 17 | auth.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h match.h groupaccess.h log.h sshbuf.h misc.h servconf.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h auth-options.h canohost.h uidswap.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h |
18 | auth.o: dispatch.h opacket.h authfile.h monitor_wrap.h ssherr.h compat.h channels.h | 18 | auth.o: authfile.h monitor_wrap.h ssherr.h compat.h channels.h |
19 | auth2-chall.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h ssh2.h key.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h log.h misc.h servconf.h | 19 | auth2-chall.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h ssh2.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h sshbuf.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h ssherr.h log.h misc.h servconf.h |
20 | auth2-gss.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 20 | auth2-gss.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
21 | auth2-hostbased.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h ssh2.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h log.h misc.h servconf.h compat.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h canohost.h | 21 | auth2-hostbased.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h ssh2.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h sshbuf.h log.h misc.h servconf.h compat.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h canohost.h monitor_wrap.h |
22 | auth2-hostbased.o: monitor_wrap.h pathnames.h ssherr.h match.h | 22 | auth2-hostbased.o: pathnames.h ssherr.h match.h |
23 | auth2-kbdint.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h key.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h log.h misc.h servconf.h | 23 | auth2-kbdint.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h hostfile.h auth.h auth-pam.h audit.h loginrec.h log.h misc.h servconf.h ssherr.h |
24 | auth2-none.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h atomicio.h xmalloc.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h log.h misc.h servconf.h compat.h ssh2.h ssherr.h | 24 | auth2-none.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h atomicio.h xmalloc.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h log.h misc.h servconf.h compat.h ssh2.h ssherr.h monitor_wrap.h |
25 | auth2-none.o: monitor_wrap.h | 25 | auth2-passwd.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h ssherr.h log.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h monitor_wrap.h misc.h servconf.h |
26 | auth2-passwd.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h ssherr.h log.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h monitor_wrap.h misc.h servconf.h | 26 | auth2-pubkey.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h ssh.h ssh2.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h sshbuf.h log.h misc.h servconf.h compat.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h pathnames.h uidswap.h |
27 | auth2-pubkey.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h ssh.h ssh2.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h log.h misc.h servconf.h compat.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h pathnames.h uidswap.h | ||
28 | auth2-pubkey.o: auth-options.h canohost.h monitor_wrap.h authfile.h match.h ssherr.h channels.h session.h | 27 | auth2-pubkey.o: auth-options.h canohost.h monitor_wrap.h authfile.h match.h ssherr.h channels.h session.h |
29 | auth2.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h atomicio.h xmalloc.h ssh2.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h log.h misc.h servconf.h compat.h key.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h pathnames.h | 28 | auth2.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h atomicio.h xmalloc.h ssh2.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h log.h sshbuf.h misc.h servconf.h compat.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h pathnames.h ssherr.h |
30 | auth2.o: monitor_wrap.h ssherr.h | 29 | auth2.o: monitor_wrap.h digest.h |
31 | authfd.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h ssh.h sshkey.h authfd.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h compat.h log.h atomicio.h misc.h ssherr.h | 30 | authfd.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h ssh.h sshbuf.h sshkey.h authfd.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h compat.h log.h atomicio.h misc.h ssherr.h |
32 | authfile.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h ssh.h log.h authfile.h misc.h atomicio.h sshkey.h ssherr.h krl.h | 31 | authfile.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h ssh.h log.h authfile.h misc.h atomicio.h sshkey.h sshbuf.h ssherr.h krl.h |
33 | bitmap.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h bitmap.h | 32 | bitmap.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h bitmap.h |
34 | bufaux.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h log.h ssherr.h | 33 | canohost.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h log.h canohost.h misc.h |
35 | bufbn.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 34 | chacha.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h chacha.h |
36 | bufec.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h log.h ssherr.h | 35 | channels.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h ssh.h ssh2.h ssherr.h sshbuf.h packet.h dispatch.h opacket.h log.h misc.h channels.h compat.h canohost.h sshkey.h authfd.h pathnames.h match.h |
37 | buffer.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h log.h ssherr.h | 36 | cipher-aes.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/openssl-compat.h |
38 | canohost.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h log.h canohost.h misc.h | 37 | cipher-aesctr.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h cipher-aesctr.h rijndael.h |
39 | chacha.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h chacha.h | 38 | cipher-chachapoly.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h log.h sshbuf.h ssherr.h cipher-chachapoly.h chacha.h poly1305.h |
40 | channels.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h openbsd-compat/sys-queue.h xmalloc.h ssh.h ssh2.h ssherr.h packet.h dispatch.h opacket.h log.h misc.h channels.h compat.h canohost.h key.h sshkey.h authfd.h pathnames.h | 39 | cipher-ctr.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
41 | cipher-aes.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h openbsd-compat/openssl-compat.h | 40 | cipher.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h misc.h sshbuf.h ssherr.h digest.h openbsd-compat/openssl-compat.h |
42 | cipher-aesctr.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h cipher-aesctr.h rijndael.h | 41 | cleanup.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h log.h |
43 | cipher-chachapoly.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h log.h ssherr.h cipher-chachapoly.h chacha.h poly1305.h | 42 | clientloop.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h ssh.h ssh2.h packet.h dispatch.h opacket.h sshbuf.h compat.h channels.h sshkey.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h kex.h mac.h |
44 | cipher-ctr.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 43 | clientloop.o: myproposal.h log.h misc.h readconf.h clientloop.h sshconnect.h authfd.h atomicio.h sshpty.h match.h msg.h ssherr.h hostfile.h |
45 | cipher.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h misc.h ssherr.h digest.h openbsd-compat/openssl-compat.h | 44 | compat.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h compat.h log.h match.h kex.h mac.h |
46 | cleanup.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h log.h | 45 | crc32.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h crc32.h |
47 | clientloop.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h openbsd-compat/sys-queue.h xmalloc.h ssh.h ssh2.h packet.h dispatch.h opacket.h compat.h channels.h key.h sshkey.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h | 46 | dh.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
48 | clientloop.o: kex.h mac.h myproposal.h log.h misc.h readconf.h clientloop.h sshconnect.h authfd.h atomicio.h sshpty.h match.h msg.h ssherr.h hostfile.h | 47 | digest-libc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h ssherr.h sshbuf.h digest.h |
49 | compat.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h compat.h log.h match.h kex.h mac.h key.h sshkey.h | 48 | digest-openssl.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
50 | crc32.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h crc32.h | 49 | dispatch.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h ssh2.h log.h dispatch.h packet.h openbsd-compat/sys-queue.h opacket.h compat.h ssherr.h |
51 | dh.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 50 | dns.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h sshkey.h ssherr.h dns.h log.h digest.h |
52 | digest-libc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h ssherr.h digest.h | 51 | ed25519.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h crypto_api.h ge25519.h fe25519.h sc25519.h |
53 | digest-openssl.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 52 | entropy.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
54 | dispatch.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h ssh2.h log.h dispatch.h packet.h openbsd-compat/sys-queue.h opacket.h compat.h ssherr.h | 53 | fatal.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h log.h |
55 | dns.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h sshkey.h ssherr.h dns.h log.h digest.h | 54 | fe25519.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h fe25519.h crypto_api.h |
56 | ed25519.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h crypto_api.h ge25519.h fe25519.h sc25519.h | 55 | ge25519.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h fe25519.h crypto_api.h sc25519.h ge25519.h ge25519_base.data |
57 | entropy.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 56 | groupaccess.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h groupaccess.h match.h log.h |
58 | fatal.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h log.h | 57 | gss-genr.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
59 | fe25519.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h fe25519.h crypto_api.h | 58 | gss-serv-krb5.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
60 | ge25519.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h fe25519.h crypto_api.h sc25519.h ge25519.h ge25519_base.data | 59 | gss-serv.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
61 | groupaccess.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h groupaccess.h match.h log.h | 60 | hash.o: crypto_api.h includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h digest.h log.h ssherr.h |
62 | gss-genr.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 61 | hmac.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sshbuf.h digest.h hmac.h |
63 | gss-serv-krb5.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 62 | hostfile.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h match.h sshkey.h hostfile.h log.h misc.h ssherr.h digest.h hmac.h |
64 | gss-serv.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 63 | kex.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h ssh2.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h compat.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h sshkey.h kex.h mac.h log.h match.h misc.h monitor.h ssherr.h sshbuf.h |
65 | hash.o: crypto_api.h includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h digest.h log.h ssherr.h | 64 | kex.o: digest.h |
66 | hmac.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h digest.h hmac.h | 65 | kexc25519.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sshbuf.h ssh2.h sshkey.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h kex.h mac.h log.h digest.h ssherr.h |
67 | hostfile.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h match.h sshkey.h hostfile.h log.h misc.h ssherr.h digest.h hmac.h | 66 | kexc25519c.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sshkey.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h kex.h mac.h log.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h ssh2.h sshbuf.h digest.h ssherr.h |
68 | kex.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h ssh2.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h compat.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h sshkey.h kex.h mac.h key.h log.h match.h misc.h | 67 | kexc25519s.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sshkey.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h digest.h kex.h mac.h log.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h ssh2.h sshbuf.h ssherr.h |
69 | kex.o: monitor.h ssherr.h digest.h | 68 | kexdh.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
70 | kexc25519.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h ssh2.h sshkey.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h kex.h mac.h key.h log.h digest.h ssherr.h | 69 | kexdhc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
71 | kexc25519c.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h sshkey.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h kex.h mac.h key.h log.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h ssh2.h digest.h ssherr.h | 70 | kexdhs.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
72 | kexc25519s.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h sshkey.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h digest.h kex.h mac.h key.h log.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h ssh2.h ssherr.h | 71 | kexecdh.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
73 | kexdh.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 72 | kexecdhc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
74 | kexdhc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 73 | kexecdhs.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
75 | kexdhs.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 74 | kexgex.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
76 | kexecdh.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 75 | kexgexc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
77 | kexecdhc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 76 | kexgexs.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
78 | kexecdhs.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 77 | krl.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h ./openbsd-compat/sys-tree.h openbsd-compat/sys-queue.h sshbuf.h ssherr.h sshkey.h authfile.h misc.h log.h digest.h bitmap.h krl.h |
79 | kexgex.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 78 | log.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h log.h |
80 | kexgexc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 79 | loginrec.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h sshkey.h hostfile.h ssh.h loginrec.h log.h atomicio.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h canohost.h auth.h auth-pam.h audit.h sshbuf.h ssherr.h |
81 | kexgexs.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 80 | logintest.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h loginrec.h |
82 | key.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h key.h sshkey.h compat.h ssherr.h log.h authfile.h | 81 | mac.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h digest.h hmac.h umac.h mac.h misc.h ssherr.h sshbuf.h openbsd-compat/openssl-compat.h |
83 | krl.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h ./openbsd-compat/sys-tree.h openbsd-compat/sys-queue.h ssherr.h sshkey.h authfile.h misc.h log.h digest.h bitmap.h krl.h | 82 | match.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h match.h misc.h |
84 | log.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h log.h | 83 | md5crypt.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
85 | loginrec.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h key.h sshkey.h hostfile.h ssh.h loginrec.h log.h atomicio.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h canohost.h auth.h auth-pam.h audit.h | 84 | misc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h misc.h log.h ssh.h sshbuf.h ssherr.h |
86 | logintest.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h loginrec.h | 85 | moduli.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
87 | mac.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h digest.h hmac.h umac.h mac.h misc.h ssherr.h openbsd-compat/openssl-compat.h | 86 | monitor.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h ./openbsd-compat/sys-tree.h openbsd-compat/sys-queue.h atomicio.h xmalloc.h ssh.h sshkey.h sshbuf.h hostfile.h auth.h auth-pam.h audit.h loginrec.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h |
88 | match.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h match.h misc.h | 87 | monitor.o: rijndael.h kex.h mac.h dh.h packet.h dispatch.h opacket.h auth-options.h sshpty.h channels.h session.h sshlogin.h canohost.h log.h misc.h servconf.h monitor.h monitor_wrap.h monitor_fdpass.h compat.h ssh2.h authfd.h match.h ssherr.h |
89 | md5crypt.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 88 | monitor_fdpass.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h log.h monitor_fdpass.h |
90 | misc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h misc.h log.h ssh.h ssherr.h uidswap.h | 89 | monitor_wrap.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h ssh.h sshbuf.h sshkey.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h kex.h mac.h hostfile.h auth.h auth-pam.h audit.h loginrec.h |
91 | moduli.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 90 | monitor_wrap.o: auth-options.h packet.h dispatch.h opacket.h log.h monitor.h monitor_wrap.h atomicio.h monitor_fdpass.h misc.h channels.h session.h servconf.h ssherr.h |
92 | monitor.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h ./openbsd-compat/sys-tree.h openbsd-compat/sys-queue.h atomicio.h xmalloc.h ssh.h key.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h cipher.h cipher-chachapoly.h chacha.h poly1305.h | 91 | msg.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sshbuf.h ssherr.h log.h atomicio.h msg.h misc.h |
93 | monitor.o: cipher-aesctr.h rijndael.h kex.h mac.h dh.h packet.h dispatch.h opacket.h auth-options.h sshpty.h channels.h session.h sshlogin.h canohost.h log.h misc.h servconf.h monitor.h monitor_wrap.h monitor_fdpass.h compat.h ssh2.h authfd.h match.h ssherr.h | 92 | mux.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h log.h ssh.h ssh2.h pathnames.h misc.h match.h sshbuf.h channels.h msg.h packet.h dispatch.h opacket.h monitor_fdpass.h sshpty.h sshkey.h readconf.h clientloop.h ssherr.h |
94 | monitor_fdpass.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h log.h monitor_fdpass.h | 93 | nchan.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h ssh2.h sshbuf.h ssherr.h packet.h dispatch.h opacket.h channels.h compat.h log.h |
95 | monitor_wrap.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h openbsd-compat/sys-queue.h xmalloc.h ssh.h key.h sshkey.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h kex.h mac.h hostfile.h auth.h auth-pam.h audit.h | 94 | opacket.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h ssherr.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h log.h |
96 | monitor_wrap.o: loginrec.h auth-options.h packet.h dispatch.h opacket.h log.h monitor.h monitor_wrap.h atomicio.h monitor_fdpass.h misc.h channels.h session.h servconf.h ssherr.h | 95 | packet.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h crc32.h compat.h ssh2.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h sshkey.h kex.h mac.h digest.h log.h canohost.h misc.h channels.h ssh.h |
97 | msg.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h ssherr.h log.h atomicio.h msg.h misc.h | 96 | packet.o: packet.h dispatch.h opacket.h ssherr.h sshbuf.h |
98 | mux.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h openbsd-compat/sys-queue.h xmalloc.h log.h ssh.h ssh2.h pathnames.h misc.h match.h channels.h msg.h packet.h dispatch.h opacket.h monitor_fdpass.h sshpty.h key.h sshkey.h readconf.h clientloop.h | 97 | platform-misc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
99 | mux.o: ssherr.h | 98 | platform-pledge.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
100 | nchan.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h openbsd-compat/sys-queue.h ssh2.h ssherr.h packet.h dispatch.h opacket.h channels.h compat.h log.h | 99 | platform-tracing.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h log.h |
101 | opacket.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h ssherr.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h log.h | 100 | platform.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h log.h misc.h servconf.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h |
102 | packet.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h openbsd-compat/sys-queue.h key.h sshkey.h xmalloc.h crc32.h compat.h ssh2.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h kex.h mac.h digest.h log.h canohost.h misc.h | 101 | poly1305.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h poly1305.h |
103 | packet.o: channels.h ssh.h packet.h dispatch.h opacket.h ssherr.h | 102 | progressmeter.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h progressmeter.h atomicio.h misc.h |
104 | platform-misc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 103 | readconf.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/glob.h xmalloc.h ssh.h ssherr.h compat.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h pathnames.h log.h sshkey.h misc.h readconf.h match.h kex.h mac.h uidswap.h |
105 | platform-pledge.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 104 | readconf.o: myproposal.h digest.h |
106 | platform-tracing.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h log.h | 105 | readpass.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h misc.h pathnames.h log.h ssh.h uidswap.h |
107 | platform.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h log.h misc.h servconf.h key.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h | 106 | rijndael.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h rijndael.h |
108 | poly1305.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h poly1305.h | 107 | sandbox-capsicum.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
109 | progressmeter.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h progressmeter.h atomicio.h misc.h | 108 | sandbox-darwin.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
110 | readconf.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h openbsd-compat/glob.h xmalloc.h ssh.h compat.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h pathnames.h log.h sshkey.h misc.h readconf.h match.h kex.h mac.h key.h | 109 | sandbox-null.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
111 | readconf.o: uidswap.h myproposal.h digest.h | 110 | sandbox-pledge.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
112 | readpass.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h misc.h pathnames.h log.h ssh.h uidswap.h | 111 | sandbox-rlimit.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
113 | rijndael.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h rijndael.h | 112 | sandbox-seccomp-filter.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
114 | sandbox-capsicum.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 113 | sandbox-solaris.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
115 | sandbox-darwin.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 114 | sandbox-systrace.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
116 | sandbox-null.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 115 | sc25519.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sc25519.h crypto_api.h |
117 | sandbox-pledge.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 116 | scp.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h ssh.h atomicio.h pathnames.h log.h misc.h progressmeter.h utf8.h |
118 | sandbox-rlimit.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 117 | servconf.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h ssh.h log.h sshbuf.h misc.h servconf.h compat.h pathnames.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h sshkey.h kex.h mac.h match.h channels.h |
119 | sandbox-seccomp-filter.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 118 | servconf.o: groupaccess.h canohost.h packet.h dispatch.h opacket.h ssherr.h hostfile.h auth.h auth-pam.h audit.h loginrec.h myproposal.h digest.h |
120 | sandbox-solaris.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 119 | serverloop.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h packet.h dispatch.h opacket.h sshbuf.h log.h misc.h servconf.h canohost.h sshpty.h channels.h compat.h ssh2.h sshkey.h cipher.h cipher-chachapoly.h chacha.h poly1305.h |
121 | sandbox-systrace.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 120 | serverloop.o: cipher-aesctr.h rijndael.h kex.h mac.h hostfile.h auth.h auth-pam.h audit.h loginrec.h session.h auth-options.h serverloop.h ssherr.h |
122 | sc25519.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h sc25519.h crypto_api.h | 121 | session.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h ssh.h ssh2.h sshpty.h packet.h dispatch.h opacket.h sshbuf.h ssherr.h match.h uidswap.h compat.h channels.h sshkey.h cipher.h cipher-chachapoly.h chacha.h poly1305.h |
123 | scp.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h ssh.h atomicio.h pathnames.h log.h misc.h progressmeter.h utf8.h | ||
124 | servconf.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h openbsd-compat/sys-queue.h xmalloc.h ssh.h log.h misc.h servconf.h compat.h pathnames.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h key.h sshkey.h kex.h mac.h | ||
125 | servconf.o: match.h channels.h groupaccess.h canohost.h packet.h dispatch.h opacket.h hostfile.h auth.h auth-pam.h audit.h loginrec.h myproposal.h digest.h | ||
126 | serverloop.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h openbsd-compat/sys-queue.h xmalloc.h packet.h dispatch.h opacket.h log.h misc.h servconf.h canohost.h sshpty.h channels.h compat.h ssh2.h key.h sshkey.h cipher.h cipher-chachapoly.h chacha.h | ||
127 | serverloop.o: poly1305.h cipher-aesctr.h rijndael.h kex.h mac.h hostfile.h auth.h auth-pam.h audit.h loginrec.h session.h auth-options.h serverloop.h ssherr.h | ||
128 | session.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h openbsd-compat/sys-queue.h xmalloc.h ssh.h ssh2.h sshpty.h packet.h dispatch.h opacket.h match.h uidswap.h compat.h channels.h key.h sshkey.h cipher.h cipher-chachapoly.h chacha.h poly1305.h | ||
129 | session.o: cipher-aesctr.h rijndael.h hostfile.h auth.h auth-pam.h audit.h loginrec.h auth-options.h authfd.h pathnames.h log.h misc.h servconf.h sshlogin.h serverloop.h canohost.h session.h kex.h mac.h monitor_wrap.h sftp.h atomicio.h | 122 | session.o: cipher-aesctr.h rijndael.h hostfile.h auth.h auth-pam.h audit.h loginrec.h auth-options.h authfd.h pathnames.h log.h misc.h servconf.h sshlogin.h serverloop.h canohost.h session.h kex.h mac.h monitor_wrap.h sftp.h atomicio.h |
130 | sftp-client.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h openbsd-compat/sys-queue.h xmalloc.h ssherr.h log.h atomicio.h progressmeter.h misc.h utf8.h sftp.h sftp-common.h sftp-client.h openbsd-compat/glob.h | 123 | sftp-client.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h ssherr.h sshbuf.h log.h atomicio.h progressmeter.h misc.h utf8.h sftp.h sftp-common.h sftp-client.h openbsd-compat/glob.h |
131 | sftp-common.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h ssherr.h log.h misc.h sftp.h sftp-common.h | 124 | sftp-common.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h ssherr.h sshbuf.h log.h misc.h sftp.h sftp-common.h |
132 | sftp-glob.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h sftp.h sftp-common.h sftp-client.h openbsd-compat/glob.h | 125 | sftp-glob.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h sftp.h sftp-common.h sftp-client.h openbsd-compat/glob.h |
133 | sftp-server-main.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h log.h sftp.h misc.h xmalloc.h | 126 | sftp-server-main.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h log.h sftp.h misc.h xmalloc.h |
134 | sftp-server.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h ssherr.h log.h misc.h match.h uidswap.h sftp.h sftp-common.h | 127 | sftp-server.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h sshbuf.h ssherr.h log.h misc.h match.h uidswap.h sftp.h sftp-common.h |
135 | sftp.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h log.h pathnames.h misc.h utf8.h sftp.h ssherr.h sftp-common.h sftp-client.h openbsd-compat/glob.h | 128 | sftp.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h log.h pathnames.h misc.h utf8.h sftp.h ssherr.h sshbuf.h sftp-common.h sftp-client.h openbsd-compat/glob.h |
136 | ssh-add.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h openbsd-compat/openssl-compat.h xmalloc.h ssh.h log.h sshkey.h authfd.h authfile.h pathnames.h misc.h ssherr.h digest.h | 129 | ssh-add.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/openssl-compat.h xmalloc.h ssh.h log.h sshkey.h sshbuf.h authfd.h authfile.h pathnames.h misc.h ssherr.h digest.h |
137 | ssh-agent.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h openbsd-compat/sys-queue.h xmalloc.h ssh.h sshkey.h authfd.h compat.h log.h misc.h digest.h ssherr.h match.h | 130 | ssh-agent.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h ssh.h sshbuf.h sshkey.h authfd.h compat.h log.h misc.h digest.h ssherr.h match.h |
138 | ssh-dss.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 131 | ssh-dss.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
139 | ssh-ecdsa.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 132 | ssh-ecdsa.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
140 | ssh-ed25519.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h crypto_api.h log.h sshkey.h ssherr.h ssh.h | 133 | ssh-ed25519.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h crypto_api.h log.h sshbuf.h sshkey.h ssherr.h ssh.h |
141 | ssh-keygen.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h sshkey.h authfile.h uuencode.h pathnames.h log.h misc.h match.h hostfile.h dns.h ssh.h ssh2.h ssherr.h ssh-pkcs11.h atomicio.h krl.h digest.h utf8.h authfd.h | 134 | ssh-keygen.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h sshkey.h authfile.h uuencode.h sshbuf.h pathnames.h log.h misc.h match.h hostfile.h dns.h ssh.h ssh2.h ssherr.h ssh-pkcs11.h atomicio.h krl.h digest.h utf8.h authfd.h |
142 | ssh-keyscan.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h openbsd-compat/sys-queue.h xmalloc.h ssh.h sshkey.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h kex.h mac.h key.h compat.h myproposal.h packet.h dispatch.h | 135 | ssh-keyscan.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h ssh.h sshbuf.h sshkey.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h kex.h mac.h compat.h myproposal.h packet.h dispatch.h opacket.h log.h |
143 | ssh-keyscan.o: opacket.h log.h atomicio.h misc.h hostfile.h ssherr.h ssh_api.h ssh2.h dns.h | 136 | ssh-keyscan.o: atomicio.h misc.h hostfile.h ssherr.h ssh_api.h ssh2.h dns.h |
144 | ssh-keysign.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h log.h sshkey.h ssh.h ssh2.h misc.h authfile.h msg.h canohost.h pathnames.h readconf.h uidswap.h ssherr.h | 137 | ssh-keysign.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h log.h sshkey.h ssh.h ssh2.h misc.h sshbuf.h authfile.h msg.h canohost.h pathnames.h readconf.h uidswap.h ssherr.h |
145 | ssh-pkcs11-client.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 138 | ssh-pkcs11-client.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
146 | ssh-pkcs11-helper.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h openbsd-compat/sys-queue.h xmalloc.h log.h misc.h sshkey.h authfd.h ssh-pkcs11.h ssherr.h | 139 | ssh-pkcs11-helper.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h sshbuf.h log.h misc.h sshkey.h authfd.h ssh-pkcs11.h ssherr.h |
147 | ssh-pkcs11.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 140 | ssh-pkcs11.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
148 | ssh-rsa.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 141 | ssh-rsa.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
149 | ssh-xmss.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 142 | ssh-xmss.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
150 | ssh.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h openbsd-compat/openssl-compat.h openbsd-compat/sys-queue.h xmalloc.h ssh.h ssh2.h canohost.h compat.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h digest.h packet.h | 143 | ssh.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/openssl-compat.h openbsd-compat/sys-queue.h xmalloc.h ssh.h ssh2.h canohost.h compat.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h digest.h packet.h dispatch.h opacket.h |
151 | ssh.o: dispatch.h opacket.h channels.h key.h sshkey.h authfd.h authfile.h pathnames.h clientloop.h log.h misc.h readconf.h sshconnect.h kex.h mac.h sshpty.h match.h msg.h uidswap.h version.h ssherr.h myproposal.h utf8.h | 144 | ssh.o: sshbuf.h channels.h sshkey.h authfd.h authfile.h pathnames.h clientloop.h log.h misc.h readconf.h sshconnect.h kex.h mac.h sshpty.h match.h msg.h version.h ssherr.h myproposal.h utf8.h |
152 | ssh_api.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h ssh_api.h openbsd-compat/sys-queue.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h sshkey.h kex.h mac.h key.h ssh.h ssh2.h packet.h dispatch.h opacket.h compat.h | 145 | ssh_api.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h ssh_api.h openbsd-compat/sys-queue.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h sshkey.h kex.h mac.h ssh.h ssh2.h packet.h dispatch.h opacket.h compat.h log.h authfile.h misc.h |
153 | ssh_api.o: log.h authfile.h misc.h version.h myproposal.h ssherr.h | 146 | ssh_api.o: version.h myproposal.h ssherr.h sshbuf.h |
154 | sshbuf-getput-basic.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h ssherr.h | 147 | sshbuf-getput-basic.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h ssherr.h sshbuf.h |
155 | sshbuf-getput-crypto.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h ssherr.h | 148 | sshbuf-getput-crypto.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h ssherr.h sshbuf.h |
156 | sshbuf-misc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h ssherr.h | 149 | sshbuf-misc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h ssherr.h sshbuf.h |
157 | sshbuf.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h ssherr.h misc.h | 150 | sshbuf.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h ssherr.h sshbuf.h misc.h |
158 | sshconnect.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h key.h sshkey.h hostfile.h ssh.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h uidswap.h compat.h sshconnect.h log.h misc.h readconf.h atomicio.h dns.h monitor_fdpass.h | 151 | sshconnect.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h hostfile.h ssh.h sshbuf.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h compat.h sshkey.h sshconnect.h log.h misc.h readconf.h atomicio.h dns.h monitor_fdpass.h ssh2.h version.h authfile.h |
159 | sshconnect.o: ssh2.h version.h authfile.h ssherr.h authfd.h | 152 | sshconnect.o: ssherr.h authfd.h |
160 | sshconnect2.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h openbsd-compat/sys-queue.h xmalloc.h ssh.h ssh2.h packet.h dispatch.h opacket.h compat.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h key.h sshkey.h kex.h mac.h | 153 | sshconnect2.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h ssh.h ssh2.h sshbuf.h packet.h dispatch.h opacket.h compat.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h sshkey.h kex.h mac.h myproposal.h |
161 | sshconnect2.o: myproposal.h sshconnect.h authfile.h dh.h authfd.h log.h misc.h readconf.h match.h canohost.h msg.h pathnames.h uidswap.h hostfile.h ssherr.h utf8.h | 154 | sshconnect2.o: sshconnect.h authfile.h dh.h authfd.h log.h misc.h readconf.h match.h canohost.h msg.h pathnames.h uidswap.h hostfile.h ssherr.h utf8.h |
162 | sshd.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h ./openbsd-compat/sys-tree.h openbsd-compat/sys-queue.h xmalloc.h ssh.h ssh2.h sshpty.h packet.h dispatch.h opacket.h log.h misc.h match.h servconf.h uidswap.h compat.h cipher.h cipher-chachapoly.h | 155 | sshd.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h ./openbsd-compat/sys-tree.h openbsd-compat/sys-queue.h xmalloc.h ssh.h ssh2.h sshpty.h packet.h dispatch.h opacket.h log.h sshbuf.h misc.h match.h servconf.h uidswap.h compat.h cipher.h cipher-chachapoly.h chacha.h |
163 | sshd.o: chacha.h poly1305.h cipher-aesctr.h rijndael.h digest.h key.h sshkey.h kex.h mac.h myproposal.h authfile.h pathnames.h atomicio.h canohost.h hostfile.h auth.h auth-pam.h audit.h loginrec.h authfd.h msg.h channels.h session.h monitor.h monitor_wrap.h ssh-sandbox.h auth-options.h version.h ssherr.h | 156 | sshd.o: poly1305.h cipher-aesctr.h rijndael.h digest.h sshkey.h kex.h mac.h myproposal.h authfile.h pathnames.h atomicio.h canohost.h hostfile.h auth.h auth-pam.h audit.h loginrec.h authfd.h msg.h channels.h session.h monitor.h monitor_wrap.h ssh-sandbox.h auth-options.h version.h ssherr.h |
164 | ssherr.o: ssherr.h | 157 | ssherr.o: ssherr.h |
165 | sshkey-xmss.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 158 | sshkey-xmss.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
166 | sshkey.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h crypto_api.h ssh2.h ssherr.h misc.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h digest.h sshkey.h sshkey-xmss.h match.h xmss_fast.h | 159 | sshkey.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h crypto_api.h ssh2.h ssherr.h misc.h sshbuf.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h digest.h sshkey.h sshkey-xmss.h match.h xmss_fast.h |
167 | sshlogin.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h loginrec.h log.h misc.h servconf.h | 160 | sshlogin.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sshlogin.h ssherr.h loginrec.h log.h sshbuf.h misc.h servconf.h |
168 | sshpty.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h sshpty.h log.h misc.h | 161 | sshpty.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sshpty.h log.h misc.h |
169 | sshtty.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h sshpty.h | 162 | sshtty.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sshpty.h |
170 | ttymodes.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h log.h compat.h ttymodes.h | 163 | ttymodes.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h log.h compat.h sshbuf.h ssherr.h ttymodes.h |
171 | uidswap.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h log.h uidswap.h xmalloc.h | 164 | uidswap.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h log.h uidswap.h xmalloc.h |
172 | umac.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h umac.h misc.h rijndael.h | 165 | umac.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h umac.h misc.h rijndael.h |
173 | umac128.o: umac.c includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h umac.h misc.h rijndael.h | 166 | umac128.o: umac.c includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h umac.h misc.h rijndael.h |
174 | utf8.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h utf8.h | 167 | utf8.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h utf8.h |
175 | uuencode.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h uuencode.h | 168 | uuencode.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h uuencode.h |
176 | verify.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h crypto_api.h | 169 | verify.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h crypto_api.h |
177 | xmalloc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h xmalloc.h log.h | 170 | xmalloc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h log.h |
178 | xmss_commons.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 171 | xmss_commons.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
179 | xmss_fast.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 172 | xmss_fast.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
180 | xmss_hash.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 173 | xmss_hash.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
181 | xmss_hash_address.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 174 | xmss_hash_address.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
182 | xmss_wots.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h buffer.h sshbuf.h | 175 | xmss_wots.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
diff --git a/.skipped-commit-ids b/.skipped-commit-ids index b51baf90d..b94cadf1c 100644 --- a/.skipped-commit-ids +++ b/.skipped-commit-ids | |||
@@ -2,6 +2,8 @@ | |||
2 | a337e886a49f96701ccbc4832bed086a68abfa85 Makefile changes | 2 | a337e886a49f96701ccbc4832bed086a68abfa85 Makefile changes |
3 | f2c9feb26963615c4fece921906cf72e248b61ee more Makefile | 3 | f2c9feb26963615c4fece921906cf72e248b61ee more Makefile |
4 | fa728823ba21c4b45212750e1d3a4b2086fd1a62 more Makefile refactoring | 4 | fa728823ba21c4b45212750e1d3a4b2086fd1a62 more Makefile refactoring |
5 | 1de0e85522051eb2ffa00437e1885e9d7b3e0c2e moduli update | ||
6 | 814b2f670df75759e1581ecef530980b2b3d7e0f remove redundant make defs | ||
5 | 7 | ||
6 | Old upstream tree: | 8 | Old upstream tree: |
7 | 9 | ||
@@ -1,3 +1,1866 @@ | |||
1 | commit 71508e06fab14bc415a79a08f5535ad7bffa93d9 | ||
2 | Author: Damien Miller <djm@mindrot.org> | ||
3 | Date: Thu Aug 23 15:41:42 2018 +1000 | ||
4 | |||
5 | shorten temporary SSH_REGRESS_TMP path | ||
6 | |||
7 | Previous path was exceeding max socket length on at least one platform (OSX) | ||
8 | |||
9 | commit 26739cf5bdc9030a583b41ae5261dedd862060f0 | ||
10 | Author: Damien Miller <djm@mindrot.org> | ||
11 | Date: Thu Aug 23 13:06:02 2018 +1000 | ||
12 | |||
13 | rebuild dependencies | ||
14 | |||
15 | commit ff729025c7463cf5d0a8d1ca1823306e48c6d4cf | ||
16 | Author: Damien Miller <djm@mindrot.org> | ||
17 | Date: Thu Aug 23 13:03:32 2018 +1000 | ||
18 | |||
19 | fix path in distclean target | ||
20 | |||
21 | Patch from Jakub Jelen | ||
22 | |||
23 | commit 7fef173c28f7462dcd8ee017fdf12b5073f54c02 | ||
24 | Author: djm@openbsd.org <djm@openbsd.org> | ||
25 | Date: Thu Aug 23 03:01:08 2018 +0000 | ||
26 | |||
27 | upstream: memleak introduced in r1.83; from Colin Watson | ||
28 | |||
29 | OpenBSD-Commit-ID: 5c019104c280cbd549a264a7217b67665e5732dc | ||
30 | |||
31 | commit b8ae02a2896778b8984c7f51566c7f0f56fa8b56 | ||
32 | Author: schwarze@openbsd.org <schwarze@openbsd.org> | ||
33 | Date: Tue Aug 21 13:56:27 2018 +0000 | ||
34 | |||
35 | upstream: AIX reports the CODESET as "ISO8859-1" in the POSIX locale. | ||
36 | |||
37 | Treating that as a safe encoding is OK because even when other systems return | ||
38 | that string for real ISO8859-1, it is still safe in the sense that it is | ||
39 | ASCII-compatible and stateless. | ||
40 | |||
41 | Issue reported by Val dot Baranov at duke dot edu. Additional | ||
42 | information provided by Michael dot Felt at felt dot demon dot nl. | ||
43 | Tested by Michael Felt on AIX 6.1 and by Val Baranov on AIX 7.1. | ||
44 | Tweak and OK djm@. | ||
45 | |||
46 | OpenBSD-Commit-ID: 36f1210e0b229817d10eb490d6038f507b8256a7 | ||
47 | |||
48 | commit bc44ee088ad269d232e514f037c87ada4c2fd3f0 | ||
49 | Author: Tim Rice <tim@multitalents.net> | ||
50 | Date: Tue Aug 21 08:57:24 2018 -0700 | ||
51 | |||
52 | modified: openbsd-compat/port-uw.c | ||
53 | remove obsolete and un-needed include | ||
54 | |||
55 | commit 829fc28a9c54e3f812ee7248c7a3e31eeb4f0b3a | ||
56 | Author: Damien Miller <djm@mindrot.org> | ||
57 | Date: Mon Aug 20 15:57:29 2018 +1000 | ||
58 | |||
59 | Missing unistd.h for regress/mkdtemp.c | ||
60 | |||
61 | commit c8313e492355a368a91799131520d92743d8d16c | ||
62 | Author: Damien Miller <djm@mindrot.org> | ||
63 | Date: Fri Aug 17 05:45:20 2018 +1000 | ||
64 | |||
65 | update version numbers in anticipation of release | ||
66 | |||
67 | commit 477b49a34b89f506f4794b35e3c70b3e2e83cd38 | ||
68 | Author: Corinna Vinschen <vinschen@redhat.com> | ||
69 | Date: Mon Aug 13 17:08:51 2018 +0200 | ||
70 | |||
71 | configure: work around GCC shortcoming on Cygwin | ||
72 | |||
73 | Cygwin's latest 7.x GCC allows to specify -mfunction-return=thunk | ||
74 | as well as -mindirect-branch=thunk on the command line, albeit | ||
75 | producing invalid code, leading to an error at link stage. | ||
76 | |||
77 | The check in configure.ac only checks if the option is present, | ||
78 | but not if it produces valid code. | ||
79 | |||
80 | This patch fixes it by special-casing Cygwin. Another solution | ||
81 | may be to change these to linker checks. | ||
82 | |||
83 | Signed-off-by: Corinna Vinschen <vinschen@redhat.com> | ||
84 | |||
85 | commit b0917945efa374be7648d67dbbaaff323ab39edc | ||
86 | Author: Corinna Vinschen <vinschen@redhat.com> | ||
87 | Date: Mon Aug 13 17:05:05 2018 +0200 | ||
88 | |||
89 | cygwin: add missing stdarg.h include | ||
90 | |||
91 | Further header file standarization in Cygwin uncovered a lazy | ||
92 | indirect include in bsd-cygwin_util.c | ||
93 | |||
94 | Signed-off-by: Corinna Vinschen <vinschen@redhat.com> | ||
95 | |||
96 | commit c3903c38b0fd168ab3d925c2b129d1a599593426 | ||
97 | Author: djm@openbsd.org <djm@openbsd.org> | ||
98 | Date: Mon Aug 13 02:41:05 2018 +0000 | ||
99 | |||
100 | upstream: revert compat.[ch] section of the following change. It | ||
101 | |||
102 | causes double-free under some circumstances. | ||
103 | |||
104 | -- | ||
105 | |||
106 | date: 2018/07/31 03:07:24; author: djm; state: Exp; lines: +33 -18; commitid: f7g4UI8eeOXReTPh; | ||
107 | fix some memory leaks spotted by Coverity via Jakub Jelen in bz#2366 | ||
108 | feedback and ok dtucker@ | ||
109 | |||
110 | OpenBSD-Commit-ID: 1e77547f60fdb5e2ffe23e2e4733c54d8d2d1137 | ||
111 | |||
112 | commit 1b9dd4aa15208100fbc3650f33ea052255578282 | ||
113 | Author: djm@openbsd.org <djm@openbsd.org> | ||
114 | Date: Sun Aug 12 20:19:13 2018 +0000 | ||
115 | |||
116 | upstream: better diagnosics on alg list assembly errors; ok | ||
117 | |||
118 | deraadt@ markus@ | ||
119 | |||
120 | OpenBSD-Commit-ID: 5a557e74b839daf13cc105924d2af06a1560faee | ||
121 | |||
122 | commit e36a5f61b0f5bebf6d49c215d228cd99dfe86e28 | ||
123 | Author: Damien Miller <djm@mindrot.org> | ||
124 | Date: Sat Aug 11 18:08:45 2018 -0700 | ||
125 | |||
126 | Some AIX fixes; report from Michael Felt | ||
127 | |||
128 | commit 2f4766ceefe6657c5ad5fe92d13c411872acae0e | ||
129 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
130 | Date: Fri Aug 10 01:35:49 2018 +0000 | ||
131 | |||
132 | upstream: The script that cooks up PuTTY format host keys does not | ||
133 | |||
134 | understand the new key format so convert back to old format to create the | ||
135 | PuTTY key and remove it once done. | ||
136 | |||
137 | OpenBSD-Regress-ID: 2a449a18846c3a144bc645135b551ba6177e38d3 | ||
138 | |||
139 | commit e1b26ce504662a5d5b991091228984ccfd25f280 | ||
140 | Author: djm@openbsd.org <djm@openbsd.org> | ||
141 | Date: Fri Aug 10 00:44:01 2018 +0000 | ||
142 | |||
143 | upstream: improve | ||
144 | |||
145 | OpenBSD-Commit-ID: 40d839db0977b4e7ac8b647b16d5411d4faf2f60 | ||
146 | |||
147 | commit 7c712966a3139622f7fb55045368d05de4e6782c | ||
148 | Author: djm@openbsd.org <djm@openbsd.org> | ||
149 | Date: Fri Aug 10 00:42:29 2018 +0000 | ||
150 | |||
151 | upstream: Describe pubkey format, prompted by bz#2853 | ||
152 | |||
153 | While I'm here, describe and link to the remaining local PROTOCOL.* | ||
154 | docs that weren't already mentioned (PROTOCOL.key, PROTOCOL.krl and | ||
155 | PROTOCOL.mux) | ||
156 | |||
157 | OpenBSD-Commit-ID: 2a900f9b994ba4d53e7aeb467d44d75829fd1231 | ||
158 | |||
159 | commit ef100a2c5a8ed83afac0b8f36520815803da227a | ||
160 | Author: djm@openbsd.org <djm@openbsd.org> | ||
161 | Date: Fri Aug 10 00:27:15 2018 +0000 | ||
162 | |||
163 | upstream: fix numbering | ||
164 | |||
165 | OpenBSD-Commit-ID: bc7a1764dff23fa4c5ff0e3379c9c4d5b63c9596 | ||
166 | |||
167 | commit ed7bd5d93fe14c7bd90febd29b858ea985d14d45 | ||
168 | Author: djm@openbsd.org <djm@openbsd.org> | ||
169 | Date: Wed Aug 8 01:16:01 2018 +0000 | ||
170 | |||
171 | upstream: Use new private key format by default. This format is | ||
172 | |||
173 | suported by OpenSSH >= 6.5 (released January 2014), so it should be supported | ||
174 | by most OpenSSH versions in active use. | ||
175 | |||
176 | It is possible to convert new-format private keys to the older | ||
177 | format using "ssh-keygen -f /path/key -pm PEM". | ||
178 | |||
179 | ok deraadt dtucker | ||
180 | |||
181 | OpenBSD-Commit-ID: e3bd4f2509a2103bfa2f710733426af3ad6d8ab8 | ||
182 | |||
183 | commit 967226a1bdde59ea137e8f0df871854ff7b91366 | ||
184 | Author: djm@openbsd.org <djm@openbsd.org> | ||
185 | Date: Sat Aug 4 00:55:06 2018 +0000 | ||
186 | |||
187 | upstream: invalidate dh->priv_key after freeing it in error path; | ||
188 | |||
189 | avoids unlikely double-free later. Reported by Viktor Dukhovni via | ||
190 | https://github.com/openssh/openssh-portable/pull/96 feedback jsing@ tb@ | ||
191 | |||
192 | OpenBSD-Commit-ID: e317eb17c3e05500ae851f279ef6486f0457c805 | ||
193 | |||
194 | commit 74287f5df9966a0648b4a68417451dd18f079ab8 | ||
195 | Author: djm@openbsd.org <djm@openbsd.org> | ||
196 | Date: Tue Jul 31 03:10:27 2018 +0000 | ||
197 | |||
198 | upstream: delay bailout for invalid authentic | ||
199 | |||
200 | =?UTF-8?q?ating=20user=20until=20after=20the=20packet=20containing=20the?= | ||
201 | =?UTF-8?q?=20request=20has=20been=20fully=20parsed.=20Reported=20by=20Dar?= | ||
202 | =?UTF-8?q?iusz=20Tytko=20and=20Micha=C5=82=20Sajdak;=20ok=20deraadt?= | ||
203 | MIME-Version: 1.0 | ||
204 | Content-Type: text/plain; charset=UTF-8 | ||
205 | Content-Transfer-Encoding: 8bit | ||
206 | |||
207 | OpenBSD-Commit-ID: b4891882fbe413f230fe8ac8a37349b03bd0b70d | ||
208 | |||
209 | commit 1a66079c0669813306cc69e5776a4acd9fb49015 | ||
210 | Author: djm@openbsd.org <djm@openbsd.org> | ||
211 | Date: Tue Jul 31 03:07:24 2018 +0000 | ||
212 | |||
213 | upstream: fix some memory leaks spotted by Coverity via Jakub Jelen | ||
214 | |||
215 | in bz#2366 feedback and ok dtucker@ | ||
216 | |||
217 | OpenBSD-Commit-ID: 8402bbae67d578bedbadb0ce68ff7c5a136ef563 | ||
218 | |||
219 | commit 87f08be054b7eeadbb9cdeb3fb4872be79ccf218 | ||
220 | Author: Damien Miller <djm@mindrot.org> | ||
221 | Date: Fri Jul 20 13:18:28 2018 +1000 | ||
222 | |||
223 | Remove support for S/Key | ||
224 | |||
225 | Most people will 1) be using modern multi-factor authentication methods | ||
226 | like TOTP/OATH etc and 2) be getting support for multi-factor | ||
227 | authentication via PAM or BSD Auth. | ||
228 | |||
229 | commit 5d14019ba2ff54acbfd20a6b9b96bb860a8c7c31 | ||
230 | Author: markus@openbsd.org <markus@openbsd.org> | ||
231 | Date: Fri Jul 27 12:03:17 2018 +0000 | ||
232 | |||
233 | upstream: avoid expensive channel_open_message() calls; ok djm@ | ||
234 | |||
235 | OpenBSD-Commit-ID: aea3b5512ad681cd8710367d743e8a753d4425d9 | ||
236 | |||
237 | commit e655ee04a3cb7999dbf9641b25192353e2b69418 | ||
238 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
239 | Date: Fri Jul 27 05:34:42 2018 +0000 | ||
240 | |||
241 | upstream: Now that ssh can't be setuid, remove the | ||
242 | |||
243 | original_real_uid and original_effective_uid globals and replace with calls | ||
244 | to plain getuid(). ok djm@ | ||
245 | |||
246 | OpenBSD-Commit-ID: 92561c0cd418d34e6841e20ba09160583e27b68c | ||
247 | |||
248 | commit 73ddb25bae4c33a0db361ac13f2e3a60d7c6c4a5 | ||
249 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
250 | Date: Fri Jul 27 05:13:02 2018 +0000 | ||
251 | |||
252 | upstream: Remove uid checks from low port binds. Now that ssh | ||
253 | |||
254 | cannot be setuid and sshd always has privsep on, we can remove the uid checks | ||
255 | for low port binds and just let the system do the check. We leave a sanity | ||
256 | check for the !privsep case so long as the code is stil there. with & ok | ||
257 | djm@ | ||
258 | |||
259 | OpenBSD-Commit-ID: 9535cfdbd1cd54486fdbedfaee44ce4367ec7ca0 | ||
260 | |||
261 | commit c12033e102760d043bc5c98e6c8180e4d331b0df | ||
262 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
263 | Date: Fri Jul 27 03:55:22 2018 +0000 | ||
264 | |||
265 | upstream: ssh(1) no longer supports being setuid root. Remove reference | ||
266 | |||
267 | to crc32 which went with protocol 1. Pointed out by deraadt@. | ||
268 | |||
269 | OpenBSD-Commit-ID: f8763c25fd96ed91dd1abdab5667fd2e27e377b6 | ||
270 | |||
271 | commit 4492e2ec4e1956a277ef507f51d66e5c2aafaaf8 | ||
272 | Author: Damien Miller <djm@mindrot.org> | ||
273 | Date: Fri Jul 27 14:15:28 2018 +1000 | ||
274 | |||
275 | correct snprintf truncation check in closefrom() | ||
276 | |||
277 | Truncation cannot happen unless the system has set PATH_MAX to some | ||
278 | nonsensically low value. | ||
279 | |||
280 | bz#2862, patch from Daniel Le | ||
281 | |||
282 | commit 149cab325a8599a003364ed833f878449c15f259 | ||
283 | Author: Darren Tucker <dtucker@dtucker.net> | ||
284 | Date: Fri Jul 27 13:46:06 2018 +1000 | ||
285 | |||
286 | Include stdarg.h in mkdtemp for va_list. | ||
287 | |||
288 | commit 6728f31bdfdc864d192773c32465b1860e23f556 | ||
289 | Author: deraadt@openbsd.org <deraadt@openbsd.org> | ||
290 | Date: Wed Jul 25 17:12:35 2018 +0000 | ||
291 | |||
292 | upstream: Don't redefine Makefile choices which come correct from | ||
293 | |||
294 | bsd.*.mk ok markus | ||
295 | |||
296 | OpenBSD-Commit-ID: 814b2f670df75759e1581ecef530980b2b3d7e0f | ||
297 | |||
298 | commit 21fd477a855753c1a8e450963669e28e39c3b5d2 | ||
299 | Author: deraadt@openbsd.org <deraadt@openbsd.org> | ||
300 | Date: Wed Jul 25 13:56:23 2018 +0000 | ||
301 | |||
302 | upstream: fix indent; Clemens Goessnitzer | ||
303 | |||
304 | OpenBSD-Commit-ID: b5149a6d92b264d35f879d24608087b254857a83 | ||
305 | |||
306 | commit 8e433c2083db8664c41499ee146448ea7ebe7dbf | ||
307 | Author: beck@openbsd.org <beck@openbsd.org> | ||
308 | Date: Wed Jul 25 13:10:56 2018 +0000 | ||
309 | |||
310 | upstream: Use the caller provided (copied) pwent struct in | ||
311 | |||
312 | load_public_identity_files instead of calling getpwuid() again and discarding | ||
313 | the argument. This prevents a client crash where tilde_expand_filename calls | ||
314 | getpwuid() again before the pwent pointer is used. Issue noticed and reported | ||
315 | by Pierre-Olivier Martel <pom@apple.com> ok djm@ deraadt@ | ||
316 | |||
317 | OpenBSD-Commit-ID: a067d74b5b098763736c94cc1368de8ea3f0b157 | ||
318 | |||
319 | commit e2127abb105ae72b6fda64fff150e6b24b3f1317 | ||
320 | Author: jmc@openbsd.org <jmc@openbsd.org> | ||
321 | Date: Mon Jul 23 19:53:55 2018 +0000 | ||
322 | |||
323 | upstream: oops, failed to notice that SEE ALSO got messed up; | ||
324 | |||
325 | OpenBSD-Commit-ID: 61c1306542cefdc6e59ac331751afe961557427d | ||
326 | |||
327 | commit ddf1b797c2d26bbbc9d410aa4f484cbe94673587 | ||
328 | Author: kn@openbsd.org <kn@openbsd.org> | ||
329 | Date: Mon Jul 23 19:02:49 2018 +0000 | ||
330 | |||
331 | upstream: Point to glob in section 7 for the actual list of special | ||
332 | |||
333 | characters instead the C API in section 3. | ||
334 | |||
335 | OK millert jmc nicm, "the right idea" deraadt | ||
336 | |||
337 | OpenBSD-Commit-ID: a74fd215488c382809e4d041613aeba4a4b1ffc6 | ||
338 | |||
339 | commit 01c98d9661d0ed6156e8602b650f72eed9fc4d12 | ||
340 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
341 | Date: Sun Jul 22 12:16:59 2018 +0000 | ||
342 | |||
343 | upstream: Switch authorized_keys example from ssh-dss to ssh-rsa | ||
344 | |||
345 | since the former is no longer enabled by default. Pointed out by Daniel A. | ||
346 | Maierhofer, ok jmc | ||
347 | |||
348 | OpenBSD-Commit-ID: 6a196cef53d7524e0c9b58cdbc1b5609debaf8c7 | ||
349 | |||
350 | commit 472269f8fe19343971c2d08f504ab5cbb8234b33 | ||
351 | Author: djm@openbsd.org <djm@openbsd.org> | ||
352 | Date: Fri Jul 20 05:01:10 2018 +0000 | ||
353 | |||
354 | upstream: slightly-clearer description for AuthenticationMethods - the | ||
355 | |||
356 | lists have comma-separated elements; bz#2663 from Hans Meier | ||
357 | |||
358 | OpenBSD-Commit-ID: 931c983d0fde4764d0942fb2c2b5017635993b5a | ||
359 | |||
360 | commit c59aca8adbdf7f5597084ad360a19bedb3f80970 | ||
361 | Author: Damien Miller <djm@mindrot.org> | ||
362 | Date: Fri Jul 20 14:53:42 2018 +1000 | ||
363 | |||
364 | Create control sockets in clean temp directories | ||
365 | |||
366 | Adds a regress/mkdtemp tool and uses it to create empty temp | ||
367 | directories for tests needing control sockets. | ||
368 | |||
369 | Patch from Colin Watson via bz#2660; ok dtucker | ||
370 | |||
371 | commit 6ad8648e83e4f4ace37b742a05c2a6b6b872514e | ||
372 | Author: djm@openbsd.org <djm@openbsd.org> | ||
373 | Date: Fri Jul 20 03:46:34 2018 +0000 | ||
374 | |||
375 | upstream: remove unused zlib.h | ||
376 | |||
377 | OpenBSD-Commit-ID: 8d274a9b467c7958df12668b49144056819f79f1 | ||
378 | |||
379 | commit 3ba6e6883527fe517b6e4a824876e2fe62af22fc | ||
380 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
381 | Date: Thu Jul 19 23:03:16 2018 +0000 | ||
382 | |||
383 | upstream: Fix typo in comment. From Alexandru Iacob via github. | ||
384 | |||
385 | OpenBSD-Commit-ID: eff4ec07c6c8c5483533da43a4dda37d72ef7f1d | ||
386 | |||
387 | commit c77bc73c91bc656e343a1961756e09dd1b170820 | ||
388 | Author: Darren Tucker <dtucker@dtucker.net> | ||
389 | Date: Fri Jul 20 13:48:51 2018 +1000 | ||
390 | |||
391 | Explicitly include openssl before zlib. | ||
392 | |||
393 | Some versions of OpenSSL have "free_func" in their headers, which zlib | ||
394 | typedefs. Including openssl after zlib (eg via sshkey.h) results in | ||
395 | "syntax error before `free_func'", which this fixes. | ||
396 | |||
397 | commit 95d41e90eafcd1286a901e8e361e4a37b98aeb52 | ||
398 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
399 | Date: Thu Jul 19 10:28:47 2018 +0000 | ||
400 | |||
401 | upstream: Deprecate UsePrivilegedPort now that support for running | ||
402 | |||
403 | ssh(1) setuid has been removed, remove supporting code and clean up | ||
404 | references to it in the man pages | ||
405 | |||
406 | We have not shipped ssh(1) the setuid bit since 2002. If ayone | ||
407 | really needs to make connections from a low port number this can | ||
408 | be implemented via a small setuid ProxyCommand. | ||
409 | |||
410 | ok markus@ jmc@ djm@ | ||
411 | |||
412 | OpenBSD-Commit-ID: d03364610b7123ae4c6792f5274bd147b6de717e | ||
413 | |||
414 | commit 258dc8bb07dfb35a46e52b0822a2c5b7027df60a | ||
415 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
416 | Date: Wed Jul 18 11:34:04 2018 +0000 | ||
417 | |||
418 | upstream: Remove support for running ssh(1) setuid and fatal if | ||
419 | |||
420 | attempted. Do not link uidwap.c into ssh any more. Neuters | ||
421 | UsePrivilegedPort, which will be marked as deprecated shortly. ok markus@ | ||
422 | djm@ | ||
423 | |||
424 | OpenBSD-Commit-ID: c4ba5bf9c096f57a6ed15b713a1d7e9e2e373c42 | ||
425 | |||
426 | commit ac590760b251506b0a152551abbf8e8d6dc2f527 | ||
427 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
428 | Date: Mon Jul 16 22:25:01 2018 +0000 | ||
429 | |||
430 | upstream: Slot 0 in the hostbased key array was previously RSA1, | ||
431 | |||
432 | but that is now gone and the slot is unused so remove it. Remove two | ||
433 | now-unused macros, and add an array bounds check to the two remaining ones | ||
434 | (array is statically sized, so mostly a safety check on future changes). ok | ||
435 | markus@ | ||
436 | |||
437 | OpenBSD-Commit-ID: 2e4c0ca6cc1d8daeccead2aa56192a3f9d5e1e7a | ||
438 | |||
439 | commit 26efc2f5df0e3bcf6a6bbdd0506fd682d60c2145 | ||
440 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
441 | Date: Mon Jul 16 11:05:41 2018 +0000 | ||
442 | |||
443 | upstream: Remove support for loading HostBasedAuthentication keys | ||
444 | |||
445 | directly in ssh(1) and always use ssh-keysign. This removes one of the few | ||
446 | remaining reasons why ssh(1) might be setuid. ok markus@ | ||
447 | |||
448 | OpenBSD-Commit-ID: 97f01e1448707129a20d75f86bad5d27c3cf0b7d | ||
449 | |||
450 | commit 3eb7f1038d17af7aea3c2c62d1e30cd545607640 | ||
451 | Author: djm@openbsd.org <djm@openbsd.org> | ||
452 | Date: Mon Jul 16 07:06:50 2018 +0000 | ||
453 | |||
454 | upstream: keep options.identity_file_userprovided array in sync when we | ||
455 | |||
456 | load keys, fixing some spurious error messages; ok markus | ||
457 | |||
458 | OpenBSD-Commit-ID: c63e3d5200ee2cf9e35bda98de847302566c6a00 | ||
459 | |||
460 | commit 2f131e1b34502aa19f345e89cabf6fa3fc097f09 | ||
461 | Author: djm@openbsd.org <djm@openbsd.org> | ||
462 | Date: Mon Jul 16 03:09:59 2018 +0000 | ||
463 | |||
464 | upstream: memleak in unittest; found by valgrind | ||
465 | |||
466 | OpenBSD-Regress-ID: 168c23b0fb09fc3d0b438628990d3fd9260a8a5e | ||
467 | |||
468 | commit de2997a4cf22ca0a524f0e5b451693c583e2fd89 | ||
469 | Author: djm@openbsd.org <djm@openbsd.org> | ||
470 | Date: Mon Jul 16 03:09:13 2018 +0000 | ||
471 | |||
472 | upstream: memleaks; found by valgrind | ||
473 | |||
474 | OpenBSD-Commit-ID: 6c3ba22be53e753c899545f771e8399fc93cd844 | ||
475 | |||
476 | commit 61cc0003eb37fa07603c969c12b7c795caa498f3 | ||
477 | Author: Darren Tucker <dtucker@dtucker.net> | ||
478 | Date: Sat Jul 14 16:49:01 2018 +1000 | ||
479 | |||
480 | Undef a few new macros in sys-queue.h. | ||
481 | |||
482 | Prevents macro redefinition warnings on OSX. | ||
483 | |||
484 | commit 30a2c213877a54a44dfdffb6ca8db70be5b457e0 | ||
485 | Author: Darren Tucker <dtucker@dtucker.net> | ||
486 | Date: Fri Jul 13 13:40:20 2018 +1000 | ||
487 | |||
488 | Include unistd.h for geteuid declaration. | ||
489 | |||
490 | commit 1dd32c23f2a85714dfafe2a9cc516971d187caa4 | ||
491 | Author: Darren Tucker <dtucker@dtucker.net> | ||
492 | Date: Fri Jul 13 13:38:10 2018 +1000 | ||
493 | |||
494 | Fallout from buffer conversion in AUDIT_EVENTS. | ||
495 | |||
496 | Supply missing "int r" and fix error path for sshbuf_new(). | ||
497 | |||
498 | commit 7449c178e943e5c4f6c8416a4e41d93b70c11c9e | ||
499 | Author: djm@openbsd.org <djm@openbsd.org> | ||
500 | Date: Fri Jul 13 02:13:50 2018 +0000 | ||
501 | |||
502 | upstream: make this use ssh_proxy rather than starting/stopping a | ||
503 | |||
504 | daemon for each testcase | ||
505 | |||
506 | OpenBSD-Regress-ID: 608b7655ea65b1ba8fff5a13ce9caa60ef0c8166 | ||
507 | |||
508 | commit dbab02f9208d9baa134cec1d007054ec82b96ca9 | ||
509 | Author: djm@openbsd.org <djm@openbsd.org> | ||
510 | Date: Fri Jul 13 02:13:19 2018 +0000 | ||
511 | |||
512 | upstream: fix leaks in unit test; with this, all unit tests are | ||
513 | |||
514 | leak free (as far as valgrind can spot anyway) | ||
515 | |||
516 | OpenBSD-Regress-ID: b824d8b27998365379963440e5d18b95ca03aa17 | ||
517 | |||
518 | commit 2f6accff5085eb79b0dbe262d8b85ed017d1a51c | ||
519 | Author: Damien Miller <djm@mindrot.org> | ||
520 | Date: Fri Jul 13 11:39:25 2018 +1000 | ||
521 | |||
522 | Enable leak checks for unit tests with valgrind | ||
523 | |||
524 | Leave the leak checking on unconditionally when running with valgrind. | ||
525 | The unit tests are leak-free and I want them to stay that way. | ||
526 | |||
527 | commit e46cfbd9db5e907b821bf4fd0184d4dab99815ee | ||
528 | Author: Damien Miller <djm@mindrot.org> | ||
529 | Date: Fri Jul 13 11:38:59 2018 +1000 | ||
530 | |||
531 | increase timeout to match cfgmatch.sh | ||
532 | |||
533 | lets test pass under valgrind (on my workstation at least) | ||
534 | |||
535 | commit 6aa1bf475cf3e7a2149acc5a1e80e904749f064c | ||
536 | Author: Damien Miller <djm@mindrot.org> | ||
537 | Date: Thu Jul 12 14:54:18 2018 +1000 | ||
538 | |||
539 | rm regress/misc/kexfuzz/*.o in distclean target | ||
540 | |||
541 | commit eef1447ddb559c03725a23d4aa6d03f40e8b0049 | ||
542 | Author: Damien Miller <djm@mindrot.org> | ||
543 | Date: Thu Jul 12 14:49:26 2018 +1000 | ||
544 | |||
545 | repair !WITH_OPENSSL build | ||
546 | |||
547 | commit 4d3b2f36fd831941d1627ac587faae37b6d3570f | ||
548 | Author: Damien Miller <djm@mindrot.org> | ||
549 | Date: Thu Jul 12 14:49:14 2018 +1000 | ||
550 | |||
551 | missing headers | ||
552 | |||
553 | commit 3f420a692b293921216549c1099c2e46ff284eae | ||
554 | Author: Darren Tucker <dtucker@dtucker.net> | ||
555 | Date: Thu Jul 12 14:57:46 2018 +1000 | ||
556 | |||
557 | Remove key.h from portable files too. | ||
558 | |||
559 | Commit 5467fbcb removed key.h so stop including it in portable files | ||
560 | too. Fixes builds on lots of platforms. | ||
561 | |||
562 | commit e2c4af311543093f16005c10044f7e06af0426f0 | ||
563 | Author: djm@openbsd.org <djm@openbsd.org> | ||
564 | Date: Thu Jul 12 04:35:25 2018 +0000 | ||
565 | |||
566 | upstream: remove prototype to long-gone function | ||
567 | |||
568 | OpenBSD-Commit-ID: 0414642ac7ce01d176b9f359091a66a8bbb640bd | ||
569 | |||
570 | commit 394a842e60674bf8ee5130b9f15b01452a0b0285 | ||
571 | Author: markus@openbsd.org <markus@openbsd.org> | ||
572 | Date: Wed Jul 11 18:55:11 2018 +0000 | ||
573 | |||
574 | upstream: treat ssh_packet_write_wait() errors as fatal; ok djm@ | ||
575 | |||
576 | OpenBSD-Commit-ID: f88ba43c9d54ed2d911218aa8d3f6285430629c3 | ||
577 | |||
578 | commit 5467fbcb09528ecdcb914f4f2452216c24796790 | ||
579 | Author: markus@openbsd.org <markus@openbsd.org> | ||
580 | Date: Wed Jul 11 18:53:29 2018 +0000 | ||
581 | |||
582 | upstream: remove legacy key emulation layer; ok djm@ | ||
583 | |||
584 | OpenBSD-Commit-ID: 2b1f9619259e222bbd4fe9a8d3a0973eafb9dd8d | ||
585 | |||
586 | commit 5dc4c59d5441a19c99e7945779f7ec9051126c25 | ||
587 | Author: martijn@openbsd.org <martijn@openbsd.org> | ||
588 | Date: Wed Jul 11 08:19:35 2018 +0000 | ||
589 | |||
590 | upstream: s/wuth/with/ in comment | ||
591 | |||
592 | OpenBSD-Commit-ID: 9de41468afd75f54a7f47809d2ad664aa577902c | ||
593 | |||
594 | commit 1c688801e9dd7f9889fb2a29bc2b6fbfbc35a11f | ||
595 | Author: Darren Tucker <dtucker@dtucker.net> | ||
596 | Date: Wed Jul 11 12:12:38 2018 +1000 | ||
597 | |||
598 | Include stdlib.h for declaration of free. | ||
599 | |||
600 | Fixes build with -Werror on at least Fedora and probably others. | ||
601 | |||
602 | commit fccfa239def497615f92ed28acc57cfe63da3666 | ||
603 | Author: Damien Miller <djm@mindrot.org> | ||
604 | Date: Wed Jul 11 10:19:56 2018 +1000 | ||
605 | |||
606 | VALGRIND_CHECK_LEAKS logic was backwards :( | ||
607 | |||
608 | commit 416287d45fcde0a8e66eee8b99aa73bd58607588 | ||
609 | Author: Darren Tucker <dtucker@dtucker.net> | ||
610 | Date: Wed Jul 11 10:10:26 2018 +1000 | ||
611 | |||
612 | Fix sshbuf_new error path in skey. | ||
613 | |||
614 | commit 7aab109b8b90a353c1af780524f1ac0d3af47bab | ||
615 | Author: Darren Tucker <dtucker@dtucker.net> | ||
616 | Date: Wed Jul 11 10:06:18 2018 +1000 | ||
617 | |||
618 | Supply missing third arg in skey. | ||
619 | |||
620 | During the change to the new buffer api the third arg to | ||
621 | sshbuf_get_cstring was ommitted. Fixes build when configured with skey. | ||
622 | |||
623 | commit 380320bb72cc353a901790ab04b6287fd335dc4a | ||
624 | Author: Darren Tucker <dtucker@dtucker.net> | ||
625 | Date: Wed Jul 11 10:03:34 2018 +1000 | ||
626 | |||
627 | Supply some more missing "int r" in skey | ||
628 | |||
629 | commit d20720d373d8563ee737d1a45dc5e0804d622dbc | ||
630 | Author: Damien Miller <djm@mindrot.org> | ||
631 | Date: Wed Jul 11 09:56:36 2018 +1000 | ||
632 | |||
633 | disable valgrind memleak checking by default | ||
634 | |||
635 | Add VALGRIND_CHECK_LEAKS knob to turn it back on. | ||
636 | |||
637 | commit 79c9d35018f3a5e30ae437880b669aa8636cd3cd | ||
638 | Author: Darren Tucker <dtucker@dtucker.net> | ||
639 | Date: Wed Jul 11 09:54:00 2018 +1000 | ||
640 | |||
641 | Supply missing "int r" in skey code. | ||
642 | |||
643 | commit 984bacfaacbbe31c35191b828fb5b5b2f0362c36 | ||
644 | Author: sf@openbsd.org <sf@openbsd.org> | ||
645 | Date: Tue Jul 10 09:36:58 2018 +0000 | ||
646 | |||
647 | upstream: re-remove some pre-auth compression bits | ||
648 | |||
649 | This time, make sure to not remove things that are necessary for | ||
650 | pre-auth compression on the client. Add a comment that pre-auth | ||
651 | compression is still supported in the client. | ||
652 | |||
653 | ok markus@ | ||
654 | |||
655 | OpenBSD-Commit-ID: 282c6fec7201f18a5c333bbb68d9339734d2f784 | ||
656 | |||
657 | commit 120a1ec74e8d9d29f4eb9a27972ddd22351ddef9 | ||
658 | Author: Damien Miller <djm@mindrot.org> | ||
659 | Date: Tue Jul 10 19:39:52 2018 +1000 | ||
660 | |||
661 | Adapt portable to legacy buffer API removal | ||
662 | |||
663 | commit 0f3958c1e6ffb8ea4ba27e2a97a00326fce23246 | ||
664 | Author: djm@openbsd.org <djm@openbsd.org> | ||
665 | Date: Tue Jul 10 09:13:30 2018 +0000 | ||
666 | |||
667 | upstream: kerberos/gssapi fixes for buffer removal | ||
668 | |||
669 | OpenBSD-Commit-ID: 1cdf56fec95801e4563c47f21696f04cd8b60c4c | ||
670 | |||
671 | commit c74ae8e7c45f325f3387abd48fa7dfef07a08069 | ||
672 | Author: djm@openbsd.org <djm@openbsd.org> | ||
673 | Date: Tue Jul 10 06:45:29 2018 +0000 | ||
674 | |||
675 | upstream: buffer.[ch] and bufaux.c are no more | ||
676 | |||
677 | OpenBSD-Commit-ID: d1a1852284e554f39525eb4d4891b207cfb3d3a0 | ||
678 | |||
679 | commit a881e5a133d661eca923fb0633a03152ab2b70b2 | ||
680 | Author: djm@openbsd.org <djm@openbsd.org> | ||
681 | Date: Tue Jul 10 06:43:52 2018 +0000 | ||
682 | |||
683 | upstream: one mention of Buffer that almost got away :) | ||
684 | |||
685 | OpenBSD-Commit-ID: 30d7c27a90b4544ad5dfacf654595710cd499f02 | ||
686 | |||
687 | commit 49f47e656b60bcd1d1db98d88105295f4b4e600d | ||
688 | Author: markus@openbsd.org <markus@openbsd.org> | ||
689 | Date: Mon Jul 9 21:59:10 2018 +0000 | ||
690 | |||
691 | upstream: replace cast with call to sshbuf_mutable_ptr(); ok djm@ | ||
692 | |||
693 | OpenBSD-Commit-ID: 4dfe9d29fa93d9231645c89084f7217304f7ba29 | ||
694 | |||
695 | commit cb30cd47041edb03476be1c8ef7bc1f4b69d1555 | ||
696 | Author: markus@openbsd.org <markus@openbsd.org> | ||
697 | Date: Mon Jul 9 21:56:06 2018 +0000 | ||
698 | |||
699 | upstream: remove legacy buffer API emulation layer; ok djm@ | ||
700 | |||
701 | OpenBSD-Commit-ID: 2dd5dc17cbc23195be4299fa93be2707a0e08ad9 | ||
702 | |||
703 | commit 235c7c4e3bf046982c2d8242f30aacffa01073d1 | ||
704 | Author: markus@openbsd.org <markus@openbsd.org> | ||
705 | Date: Mon Jul 9 21:53:45 2018 +0000 | ||
706 | |||
707 | upstream: sshd: switch monitor to sshbuf API; lots of help & ok | ||
708 | |||
709 | djm@ | ||
710 | |||
711 | OpenBSD-Commit-ID: d89bd02d33974fd35ca0b8940d88572227b34a48 | ||
712 | |||
713 | commit b8d9214d969775e409e1408ecdf0d58fad99b344 | ||
714 | Author: markus@openbsd.org <markus@openbsd.org> | ||
715 | Date: Mon Jul 9 21:37:55 2018 +0000 | ||
716 | |||
717 | upstream: sshd: switch GSSAPI to sshbuf API; ok djm@ | ||
718 | |||
719 | OpenBSD-Commit-ID: e48449ab4be3f006f7ba33c66241b7d652973e30 | ||
720 | |||
721 | commit c7d39ac8dc3587c5f05bdd5bcd098eb5c201c0c8 | ||
722 | Author: markus@openbsd.org <markus@openbsd.org> | ||
723 | Date: Mon Jul 9 21:35:50 2018 +0000 | ||
724 | |||
725 | upstream: sshd: switch authentication to sshbuf API; ok djm@ | ||
726 | |||
727 | OpenBSD-Commit-ID: 880aa06bce4b140781e836bb56bec34873290641 | ||
728 | |||
729 | commit c3cb7790e9efb14ba74b2d9f543ad593b3d55b31 | ||
730 | Author: markus@openbsd.org <markus@openbsd.org> | ||
731 | Date: Mon Jul 9 21:29:36 2018 +0000 | ||
732 | |||
733 | upstream: sshd: switch config to sshbuf API; ok djm@ | ||
734 | |||
735 | OpenBSD-Commit-ID: 72b02017bac7feac48c9dceff8355056bea300bd | ||
736 | |||
737 | commit 2808d18ca47ad3d251836c555f0e22aaca03d15c | ||
738 | Author: markus@openbsd.org <markus@openbsd.org> | ||
739 | Date: Mon Jul 9 21:26:02 2018 +0000 | ||
740 | |||
741 | upstream: sshd: switch loginmsg to sshbuf API; ok djm@ | ||
742 | |||
743 | OpenBSD-Commit-ID: f3cb4e54bff15c593602d95cc43e32ee1a4bac42 | ||
744 | |||
745 | commit 89dd615b8b531979be63f05f9d5624367c9b28e6 | ||
746 | Author: markus@openbsd.org <markus@openbsd.org> | ||
747 | Date: Mon Jul 9 21:20:26 2018 +0000 | ||
748 | |||
749 | upstream: ttymodes: switch to sshbuf API; ok djm@ | ||
750 | |||
751 | OpenBSD-Commit-ID: 5df340c5965e822c9da21e19579d08dea3cbe429 | ||
752 | |||
753 | commit f4608a7065480516ab46214f554e5f853fb7870f | ||
754 | Author: markus@openbsd.org <markus@openbsd.org> | ||
755 | Date: Mon Jul 9 21:18:10 2018 +0000 | ||
756 | |||
757 | upstream: client: switch mux to sshbuf API; with & ok djm@ | ||
758 | |||
759 | OpenBSD-Commit-ID: 5948fb98d704f9c4e075b92edda64e0290b5feb2 | ||
760 | |||
761 | commit cecee2d607099a7bba0a84803e2325d15be4277b | ||
762 | Author: markus@openbsd.org <markus@openbsd.org> | ||
763 | Date: Mon Jul 9 21:03:30 2018 +0000 | ||
764 | |||
765 | upstream: client: switch to sshbuf API; ok djm@ | ||
766 | |||
767 | OpenBSD-Commit-ID: 60cb0356114acc7625ab85105f6f6a7cd44a8d05 | ||
768 | |||
769 | commit ff55f4ad898137d4703e7a2bcc81167dfe8e9324 | ||
770 | Author: markus@openbsd.org <markus@openbsd.org> | ||
771 | Date: Mon Jul 9 20:39:28 2018 +0000 | ||
772 | |||
773 | upstream: pkcs11: switch to sshbuf API; ok djm@ | ||
774 | |||
775 | OpenBSD-Commit-ID: 98cc4e800f1617c51caf59a6cb3006f14492db79 | ||
776 | |||
777 | commit 168b46f405d6736960ba7930389eecb9b6710b7e | ||
778 | Author: sf@openbsd.org <sf@openbsd.org> | ||
779 | Date: Mon Jul 9 13:37:10 2018 +0000 | ||
780 | |||
781 | upstream: Revert previous two commits | ||
782 | |||
783 | It turns out we still support pre-auth compression on the client. | ||
784 | Therefore revert the previous two commits: | ||
785 | |||
786 | date: 2018/07/06 09:06:14; author: sf; commitid: yZVYKIRtUZWD9CmE; | ||
787 | Rename COMP_DELAYED to COMP_ZLIB | ||
788 | |||
789 | Only delayed compression is supported nowadays. | ||
790 | |||
791 | ok markus@ | ||
792 | |||
793 | date: 2018/07/06 09:05:01; author: sf; commitid: rEGuT5UgI9f6kddP; | ||
794 | Remove leftovers from pre-authentication compression | ||
795 | |||
796 | Support for this has been removed in 2016. | ||
797 | COMP_DELAYED will be renamed in a later commit. | ||
798 | |||
799 | ok markus@ | ||
800 | |||
801 | OpenBSD-Commit-ID: cdfef526357e4e1483c86cf599491b2dafb77772 | ||
802 | |||
803 | commit ab39267fa1243d02b6c330615539fc4b21e17dc4 | ||
804 | Author: sf@openbsd.org <sf@openbsd.org> | ||
805 | Date: Fri Jul 6 09:06:14 2018 +0000 | ||
806 | |||
807 | upstream: Rename COMP_DELAYED to COMP_ZLIB | ||
808 | |||
809 | Only delayed compression is supported nowadays. | ||
810 | |||
811 | ok markus@ | ||
812 | |||
813 | OpenBSD-Commit-ID: 5b1dbaf3d9a4085aaa10fec0b7a4364396561821 | ||
814 | |||
815 | commit 95db395d2e56a6f868193aead6cadb2493f036c6 | ||
816 | Author: sf@openbsd.org <sf@openbsd.org> | ||
817 | Date: Fri Jul 6 09:05:01 2018 +0000 | ||
818 | |||
819 | upstream: Remove leftovers from pre-authentication compression | ||
820 | |||
821 | Support for this has been removed in 2016. | ||
822 | COMP_DELAYED will be renamed in a later commit. | ||
823 | |||
824 | ok markus@ | ||
825 | |||
826 | OpenBSD-Commit-ID: 6a99616c832627157113fcb0cf5a752daf2e6b58 | ||
827 | |||
828 | commit f28a4d5cd24c4aa177e96b4f96957991e552cb70 | ||
829 | Author: sf@openbsd.org <sf@openbsd.org> | ||
830 | Date: Fri Jul 6 09:03:02 2018 +0000 | ||
831 | |||
832 | upstream: Remove unused ssh_packet_start_compression() | ||
833 | |||
834 | ok markus@ | ||
835 | |||
836 | OpenBSD-Commit-ID: 9d34cf2f59aca5422021ae2857190578187dc2b4 | ||
837 | |||
838 | commit 872517ddbb72deaff31d4760f28f2b0a1c16358f | ||
839 | Author: Darren Tucker <dtucker@dtucker.net> | ||
840 | Date: Fri Jul 6 13:32:02 2018 +1000 | ||
841 | |||
842 | Defer setting bufsiz in getdelim. | ||
843 | |||
844 | Do not write to bufsiz until we are sure the malloc has succeeded, | ||
845 | in case any callers rely on it (which they shouldn't). ok djm@ | ||
846 | |||
847 | commit 3deb56f7190a414dc264e21e087a934fa1847283 | ||
848 | Author: Darren Tucker <dtucker@dtucker.net> | ||
849 | Date: Thu Jul 5 13:32:01 2018 +1000 | ||
850 | |||
851 | Fix other callers of read_environment_file. | ||
852 | |||
853 | read_environment_file recently gained an extra argument Some platform | ||
854 | specific code also calls it so add the argument to those too. Fixes | ||
855 | build on Solaris and AIX. | ||
856 | |||
857 | commit 314908f451e6b2d4ccf6212ad246fa4619c721d3 | ||
858 | Author: djm@openbsd.org <djm@openbsd.org> | ||
859 | Date: Wed Jul 4 13:51:45 2018 +0000 | ||
860 | |||
861 | upstream: deal with API rename: match_filter_list() => | ||
862 | |||
863 | match_filter_blacklist() | ||
864 | |||
865 | OpenBSD-Regress-ID: 2da342be913efeb51806351af906fab01ba4367f | ||
866 | |||
867 | commit 89f54cdf6b9cf1cf5528fd33897f1443913ddfb4 | ||
868 | Author: djm@openbsd.org <djm@openbsd.org> | ||
869 | Date: Wed Jul 4 13:51:12 2018 +0000 | ||
870 | |||
871 | upstream: exercise new expansion behaviour of | ||
872 | |||
873 | PubkeyAcceptedKeyTypes and, by proxy, test kex_assemble_names() | ||
874 | |||
875 | ok markus@ | ||
876 | |||
877 | OpenBSD-Regress-ID: 292978902e14d5729aa87e492dd166c842f72736 | ||
878 | |||
879 | commit 187633f24c71564e970681c8906df5a6017dcccf | ||
880 | Author: djm@openbsd.org <djm@openbsd.org> | ||
881 | Date: Tue Jul 3 13:53:26 2018 +0000 | ||
882 | |||
883 | upstream: add a comment that could have saved me 45 minutes of wild | ||
884 | |||
885 | goose chasing | ||
886 | |||
887 | OpenBSD-Regress-ID: d469b29ffadd3402c090e21b792d627d46fa5297 | ||
888 | |||
889 | commit 312d2f2861a2598ed08587cb6c45c0e98a85408f | ||
890 | Author: djm@openbsd.org <djm@openbsd.org> | ||
891 | Date: Wed Jul 4 13:49:31 2018 +0000 | ||
892 | |||
893 | upstream: repair PubkeyAcceptedKeyTypes (and friends) after RSA | ||
894 | |||
895 | signature work - returns ability to add/remove/specify algorithms by | ||
896 | wildcard. | ||
897 | |||
898 | Algorithm lists are now fully expanded when the server/client configs | ||
899 | are finalised, so errors are reported early and the config dumps | ||
900 | (e.g. "ssh -G ...") now list the actual algorithms selected. | ||
901 | |||
902 | Clarify that, while wildcards are accepted in algorithm lists, they | ||
903 | aren't full pattern-lists that support negation. | ||
904 | |||
905 | (lots of) feedback, ok markus@ | ||
906 | |||
907 | OpenBSD-Commit-ID: a8894c5c81f399a002f02ff4fe6b4fa46b1f3207 | ||
908 | |||
909 | commit 303af5803bd74bf05d375c04e1a83b40c30b2be5 | ||
910 | Author: djm@openbsd.org <djm@openbsd.org> | ||
911 | Date: Tue Jul 3 11:43:49 2018 +0000 | ||
912 | |||
913 | upstream: some magic for RSA-SHA2 checks | ||
914 | |||
915 | OpenBSD-Regress-ID: e5a9b11368ff6d86e7b25ad10ebe43359b471cd4 | ||
916 | |||
917 | commit 7d68e262944c1fff1574600fe0e5e92ec8b398f5 | ||
918 | Author: Damien Miller <djm@mindrot.org> | ||
919 | Date: Tue Jul 3 23:27:11 2018 +1000 | ||
920 | |||
921 | depend | ||
922 | |||
923 | commit b4d4eda633af433d20232cbf7e855ceac8b83fe5 | ||
924 | Author: djm@openbsd.org <djm@openbsd.org> | ||
925 | Date: Tue Jul 3 13:20:25 2018 +0000 | ||
926 | |||
927 | upstream: some finesse to fix RSA-SHA2 certificate authentication | ||
928 | |||
929 | for certs hosted in ssh-agent | ||
930 | |||
931 | OpenBSD-Commit-ID: e5fd5edd726137dda2d020e1cdebc464110a010f | ||
932 | |||
933 | commit d78b75df4a57e0f92295f24298e5f2930e71c172 | ||
934 | Author: djm@openbsd.org <djm@openbsd.org> | ||
935 | Date: Tue Jul 3 13:07:58 2018 +0000 | ||
936 | |||
937 | upstream: check correct variable; unbreak agent keys | ||
938 | |||
939 | OpenBSD-Commit-ID: c36981fdf1f3ce04966d3310826a3e1e6233d93e | ||
940 | |||
941 | commit 2f30300c5e15929d0e34013f38d73e857f445e12 | ||
942 | Author: djm@openbsd.org <djm@openbsd.org> | ||
943 | Date: Tue Jul 3 11:42:12 2018 +0000 | ||
944 | |||
945 | upstream: crank version number to 7.8; needed for new compat flag | ||
946 | |||
947 | for prior version; part of RSA-SHA2 strictification, ok markus@ | ||
948 | |||
949 | OpenBSD-Commit-ID: 84a11fc0efd2674c050712336b5093f5d408e32b | ||
950 | |||
951 | commit 4ba0d54794814ec0de1ec87987d0c3b89379b436 | ||
952 | Author: djm@openbsd.org <djm@openbsd.org> | ||
953 | Date: Tue Jul 3 11:39:54 2018 +0000 | ||
954 | |||
955 | upstream: Improve strictness and control over RSA-SHA2 signature | ||
956 | |||
957 | In ssh, when an agent fails to return a RSA-SHA2 signature when | ||
958 | requested and falls back to RSA-SHA1 instead, retry the signature to | ||
959 | ensure that the public key algorithm sent in the SSH_MSG_USERAUTH | ||
960 | matches the one in the signature itself. | ||
961 | |||
962 | In sshd, strictly enforce that the public key algorithm sent in the | ||
963 | SSH_MSG_USERAUTH message matches what appears in the signature. | ||
964 | |||
965 | Make the sshd_config PubkeyAcceptedKeyTypes and | ||
966 | HostbasedAcceptedKeyTypes options control accepted signature algorithms | ||
967 | (previously they selected supported key types). This allows these | ||
968 | options to ban RSA-SHA1 in favour of RSA-SHA2. | ||
969 | |||
970 | Add new signature algorithms "rsa-sha2-256-cert-v01@openssh.com" and | ||
971 | "rsa-sha2-512-cert-v01@openssh.com" to force use of RSA-SHA2 signatures | ||
972 | with certificate keys. | ||
973 | |||
974 | feedback and ok markus@ | ||
975 | |||
976 | OpenBSD-Commit-ID: c6e9f6d45eed8962ad502d315d7eaef32c419dde | ||
977 | |||
978 | commit 95344c257412b51199ead18d54eaed5bafb75617 | ||
979 | Author: djm@openbsd.org <djm@openbsd.org> | ||
980 | Date: Tue Jul 3 10:59:35 2018 +0000 | ||
981 | |||
982 | upstream: allow sshd_config PermitUserEnvironment to accept a | ||
983 | |||
984 | pattern-list of whitelisted environment variable names in addition to yes|no. | ||
985 | |||
986 | bz#1800, feedback and ok markus@ | ||
987 | |||
988 | OpenBSD-Commit-ID: 77dc2b468e0bf04b53f333434ba257008a1fdf24 | ||
989 | |||
990 | commit 6f56fe4b9578b0627667f8bce69d4d938a88324c | ||
991 | Author: millert@openbsd.org <millert@openbsd.org> | ||
992 | Date: Tue Jun 26 11:23:59 2018 +0000 | ||
993 | |||
994 | upstream: Fix "WARNING: line 6 disappeared in /etc/moduli, giving up" | ||
995 | |||
996 | when choosing a prime. An extra increment of linenum snuck in as part of the | ||
997 | conversion to getline(). OK djm@ markus@ | ||
998 | |||
999 | OpenBSD-Commit-ID: 0019225cb52ed621b71cd9f19ee2e78e57e3dd38 | ||
1000 | |||
1001 | commit 1eee79a11c1b3594f055b01e387c49c9a6e80005 | ||
1002 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
1003 | Date: Mon Jul 2 14:13:30 2018 +0000 | ||
1004 | |||
1005 | upstream: One ampersand is enough to backgroud an process. OpenBSD | ||
1006 | |||
1007 | doesn't seem to mind, but some platforms in -portable object to the second. | ||
1008 | |||
1009 | OpenBSD-Regress-ID: d6c3e404871764343761dc25c3bbe29c2621ff74 | ||
1010 | |||
1011 | commit 6301e6c787d4e26bfae1119ab4f747bbcaa94e44 | ||
1012 | Author: Darren Tucker <dtucker@dtucker.net> | ||
1013 | Date: Mon Jul 2 21:16:58 2018 +1000 | ||
1014 | |||
1015 | Add implementation of getline. | ||
1016 | |||
1017 | Add getline for the benefit of platforms that don't have it. Sourced | ||
1018 | from NetBSD (OpenBSD's implementation is a little too chummy with the | ||
1019 | internals of FILE). | ||
1020 | |||
1021 | commit 84623e0037628f9992839063151f7a9f5f13099a | ||
1022 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1023 | Date: Tue Jun 26 02:02:36 2018 +0000 | ||
1024 | |||
1025 | upstream: whitespace | ||
1026 | |||
1027 | OpenBSD-Commit-ID: 9276951caf4daf555f6d262e95720e7f79244572 | ||
1028 | |||
1029 | commit 90e51d672711c19a36573be1785caf35019ae7a8 | ||
1030 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1031 | Date: Mon Jun 25 22:28:33 2018 +0000 | ||
1032 | |||
1033 | upstream: fix NULL dereference in open_listen_match_tcpip() | ||
1034 | |||
1035 | OpenBSD-Commit-ID: c968c1d29e392352383c0f9681fcc1e93620c4a9 | ||
1036 | |||
1037 | commit f535ff922a67d9fcc5ee69d060d1b21c8bb01d14 | ||
1038 | Author: jmc@openbsd.org <jmc@openbsd.org> | ||
1039 | Date: Tue Jun 19 05:36:57 2018 +0000 | ||
1040 | |||
1041 | upstream: spelling; | ||
1042 | |||
1043 | OpenBSD-Commit-ID: db542918185243bea17202383a581851736553cc | ||
1044 | |||
1045 | commit 80e199d6175904152aafc5c297096c3e18297691 | ||
1046 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1047 | Date: Tue Jun 19 03:02:17 2018 +0000 | ||
1048 | |||
1049 | upstream: test PermitListen with bare port numbers | ||
1050 | |||
1051 | OpenBSD-Regress-ID: 4b50a02dfb0ccaca08247f3877c444126ba901b3 | ||
1052 | |||
1053 | commit 87ddd676da0f3abd08b778b12b53b91b670dc93c | ||
1054 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1055 | Date: Tue Jun 19 02:59:41 2018 +0000 | ||
1056 | |||
1057 | upstream: allow bare port numbers to appear in PermitListen directives, | ||
1058 | |||
1059 | e.g. | ||
1060 | |||
1061 | PermitListen 2222 8080 | ||
1062 | |||
1063 | is equivalent to: | ||
1064 | |||
1065 | PermitListen *:2222 *:8080 | ||
1066 | |||
1067 | Some bonus manpage improvements, mostly from markus@ | ||
1068 | |||
1069 | "looks fine" markus@ | ||
1070 | |||
1071 | OpenBSD-Commit-ID: 6546b0cc5aab7f53d65ad0a348ca0ae591d6dd24 | ||
1072 | |||
1073 | commit 26f96ca10ad0ec5da9b05b99de1e1ccea15a11be | ||
1074 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1075 | Date: Fri Jun 15 07:01:11 2018 +0000 | ||
1076 | |||
1077 | upstream: invalidate supplemental group cache used by | ||
1078 | |||
1079 | temporarily_use_uid() when the target uid differs; could cause failure to | ||
1080 | read authorized_keys under some configurations. patch by Jakub Jelen via | ||
1081 | bz2873; ok dtucker, markus | ||
1082 | |||
1083 | OpenBSD-Commit-ID: 48a345f0ee90f6c465a078eb5e89566b23abd8a1 | ||
1084 | |||
1085 | commit 89a85d724765b6b82e0135ee5a1181fdcccea9c6 | ||
1086 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1087 | Date: Sun Jun 10 23:45:41 2018 +0000 | ||
1088 | |||
1089 | upstream: unbreak SendEnv; patch from tb@ | ||
1090 | |||
1091 | OpenBSD-Commit-ID: fc808daced813242563b80976e1478de95940056 | ||
1092 | |||
1093 | commit acf4260f0951f89c64e1ebbc4c92f451768871ad | ||
1094 | Author: jmc@openbsd.org <jmc@openbsd.org> | ||
1095 | Date: Sat Jun 9 06:36:31 2018 +0000 | ||
1096 | |||
1097 | upstream: sort previous; | ||
1098 | |||
1099 | OpenBSD-Commit-ID: 27d80d8b8ca99bc33971dee905e8ffd0053ec411 | ||
1100 | |||
1101 | commit 1678d4236451060b735cb242d2e26e1ac99f0947 | ||
1102 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1103 | Date: Sat Jun 9 03:18:11 2018 +0000 | ||
1104 | |||
1105 | upstream: slightly better wording re handing of $TERM, from Jakub | ||
1106 | |||
1107 | Jelen via bz2386 | ||
1108 | |||
1109 | OpenBSD-Commit-ID: 14bea3f069a93c8be66a7b97794255a91fece964 | ||
1110 | |||
1111 | commit 28013759f09ed3ebf7e8335e83a62936bd7a7f47 | ||
1112 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1113 | Date: Sat Jun 9 03:03:10 2018 +0000 | ||
1114 | |||
1115 | upstream: add a SetEnv directive for sshd_config to allow an | ||
1116 | |||
1117 | administrator to explicitly specify environment variables set in sessions | ||
1118 | started by sshd. These override the default environment and any variables set | ||
1119 | by user configuration (PermitUserEnvironment, etc), but not the SSH_* | ||
1120 | variables set by sshd itself. | ||
1121 | |||
1122 | ok markus@ | ||
1123 | |||
1124 | OpenBSD-Commit-ID: b6a96c0001ccd7dd211df6cae9e961c20fd718c0 | ||
1125 | |||
1126 | commit 7082bb58a2eb878d23ec674587c742e5e9673c36 | ||
1127 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1128 | Date: Sat Jun 9 03:01:12 2018 +0000 | ||
1129 | |||
1130 | upstream: add a SetEnv directive to ssh_config that allows setting | ||
1131 | |||
1132 | environment variables for the remote session (subject to the server accepting | ||
1133 | them) | ||
1134 | |||
1135 | refactor SendEnv to remove the arbitrary limit of variable names. | ||
1136 | |||
1137 | ok markus@ | ||
1138 | |||
1139 | OpenBSD-Commit-ID: cfbb00d9b0e10c1ffff1d83424351fd961d1f2be | ||
1140 | |||
1141 | commit 3b9798bda15bd3f598f5ef07595d64e23504da91 | ||
1142 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1143 | Date: Sat Jun 9 02:58:02 2018 +0000 | ||
1144 | |||
1145 | upstream: reorder child environment preparation so that variables | ||
1146 | |||
1147 | read from ~/.ssh/environment (if enabled) do not override SSH_* variables set | ||
1148 | by the server. | ||
1149 | |||
1150 | OpenBSD-Commit-ID: 59f9d4c213cdcef2ef21f4b4ae006594dcf2aa7a | ||
1151 | |||
1152 | commit 0368889f82f63c82ff8db9f8c944d89e7c657db4 | ||
1153 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1154 | Date: Fri Jun 8 03:35:36 2018 +0000 | ||
1155 | |||
1156 | upstream: fix incorrect expansion of %i in | ||
1157 | |||
1158 | load_public_identity_files(); reported by Roumen Petrov | ||
1159 | |||
1160 | OpenBSD-Commit-ID: a827289e77149b5e0850d72a350c8b0300e7ef25 | ||
1161 | |||
1162 | commit 027607fc2db6a0475a3380f8d95c635482714cb0 | ||
1163 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1164 | Date: Fri Jun 8 01:55:40 2018 +0000 | ||
1165 | |||
1166 | upstream: fix some over-long lines and __func__ up some debug | ||
1167 | |||
1168 | messages | ||
1169 | |||
1170 | OpenBSD-Commit-ID: c70a60b4c8207d9f242fc2351941ba50916bb267 | ||
1171 | |||
1172 | commit 6ff6fda705bc204456a5fa12518dde6e8790bb02 | ||
1173 | Author: jmc@openbsd.org <jmc@openbsd.org> | ||
1174 | Date: Thu Jun 7 11:26:14 2018 +0000 | ||
1175 | |||
1176 | upstream: tweak previous; | ||
1177 | |||
1178 | OpenBSD-Commit-ID: f98f16af10b28e24bcecb806cb71ea994b648fd6 | ||
1179 | |||
1180 | commit f2c06ab8dd90582030991f631a2715216bf45e5a | ||
1181 | Author: Darren Tucker <dtucker@dtucker.net> | ||
1182 | Date: Fri Jun 8 17:43:36 2018 +1000 | ||
1183 | |||
1184 | Remove ability to override $LD. | ||
1185 | |||
1186 | Since autoconf always uses $CC to link C programs, allowing users to | ||
1187 | override LD caused mismatches between what LD_LINK_IFELSE thought worked | ||
1188 | and what ld thought worked. If you do need to do this kind of thing you | ||
1189 | need to set a compiler flag such as gcc's -fuse-ld in LDFLAGS. | ||
1190 | |||
1191 | commit e1542a80797b4ea40a91d2896efdcc76a57056d2 | ||
1192 | Author: Darren Tucker <dtucker@dtucker.net> | ||
1193 | Date: Fri Jun 8 13:55:59 2018 +1000 | ||
1194 | |||
1195 | Better detection of unsupported compiler options. | ||
1196 | |||
1197 | Should prevent "unsupported -Wl,-z,retpoline" warnings during linking. | ||
1198 | ok djm@ | ||
1199 | |||
1200 | commit 57379dbd013ad32ee3f9989bf5f5741065428360 | ||
1201 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1202 | Date: Thu Jun 7 14:29:43 2018 +0000 | ||
1203 | |||
1204 | upstream: test the correct configuration option name | ||
1205 | |||
1206 | OpenBSD-Regress-ID: 492279ea9f65657f97a970e0e7c7fd0b339fee23 | ||
1207 | |||
1208 | commit 6d41815e202fbd6182c79780b6cc90e1ec1c9981 | ||
1209 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1210 | Date: Thu Jun 7 09:26:42 2018 +0000 | ||
1211 | |||
1212 | upstream: some permitlisten fixes from markus@ that I missed in my | ||
1213 | |||
1214 | insomnia-fueled commits last night | ||
1215 | |||
1216 | OpenBSD-Commit-ID: 26f23622e928996086e85b1419cc1c0f136e359c | ||
1217 | |||
1218 | commit 4319f7a868d86d435fa07112fcb6153895d03a7f | ||
1219 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1220 | Date: Thu Jun 7 04:46:34 2018 +0000 | ||
1221 | |||
1222 | upstream: permitlisten/PermitListen unit test from Markus | ||
1223 | |||
1224 | OpenBSD-Regress-ID: ab12eb42f0e14926980441cf7c058a6d1d832ea5 | ||
1225 | |||
1226 | commit fa09076410ffc2d34d454145af23c790d728921e | ||
1227 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1228 | Date: Thu Jun 7 04:31:51 2018 +0000 | ||
1229 | |||
1230 | upstream: fix regression caused by recent permitlisten option commit: | ||
1231 | |||
1232 | authorized_keys lines that contained permitopen/permitlisten were being | ||
1233 | treated as invalid. | ||
1234 | |||
1235 | OpenBSD-Commit-ID: 7ef41d63a5a477b405d142dc925b67d9e7aaa31b | ||
1236 | |||
1237 | commit 7f90635216851f6cb4bf3999e98b825f85d604f8 | ||
1238 | Author: markus@openbsd.org <markus@openbsd.org> | ||
1239 | Date: Wed Jun 6 18:29:18 2018 +0000 | ||
1240 | |||
1241 | upstream: switch config file parsing to getline(3) as this avoids | ||
1242 | |||
1243 | static limits noted by gerhard@; ok dtucker@, djm@ | ||
1244 | |||
1245 | OpenBSD-Commit-ID: 6d702eabef0fa12e5a1d75c334a8c8b325298b5c | ||
1246 | |||
1247 | commit 392db2bc83215986a91c0b65feb0e40e7619ce7e | ||
1248 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1249 | Date: Wed Jun 6 18:25:33 2018 +0000 | ||
1250 | |||
1251 | upstream: regress test for PermitOpen | ||
1252 | |||
1253 | OpenBSD-Regress-ID: ce8b5f28fc039f09bb297fc4a92319e65982ddaf | ||
1254 | |||
1255 | commit 803d896ef30758135e2f438bdd1a0be27989e018 | ||
1256 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1257 | Date: Wed Jun 6 18:24:15 2018 +0000 | ||
1258 | |||
1259 | upstream: man bits for permitlisten authorized_keys option | ||
1260 | |||
1261 | OpenBSD-Commit-ID: 86910af8f781a4ac5980fea125442eb25466dd78 | ||
1262 | |||
1263 | commit 04df43208b5b460d7360e1598f876b92a32f5922 | ||
1264 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1265 | Date: Wed Jun 6 18:24:00 2018 +0000 | ||
1266 | |||
1267 | upstream: man bits for PermitListen | ||
1268 | |||
1269 | OpenBSD-Commit-ID: 35b200cba4e46a16a4db6a80ef11838ab0fad67c | ||
1270 | |||
1271 | commit 93c06ab6b77514e0447fe4f1d822afcbb2a9be08 | ||
1272 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1273 | Date: Wed Jun 6 18:23:32 2018 +0000 | ||
1274 | |||
1275 | upstream: permitlisten option for authorized_keys; ok markus@ | ||
1276 | |||
1277 | OpenBSD-Commit-ID: 8650883018d7aa893173d703379e4456a222c672 | ||
1278 | |||
1279 | commit 115063a6647007286cc8ca70abfd2a7585f26ccc | ||
1280 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1281 | Date: Wed Jun 6 18:22:41 2018 +0000 | ||
1282 | |||
1283 | upstream: Add a PermitListen directive to control which server-side | ||
1284 | |||
1285 | addresses may be listened on when the client requests remote forwarding (ssh | ||
1286 | -R). | ||
1287 | |||
1288 | This is the converse of the existing PermitOpen directive and this | ||
1289 | includes some refactoring to share much of its implementation. | ||
1290 | |||
1291 | feedback and ok markus@ | ||
1292 | |||
1293 | OpenBSD-Commit-ID: 15a931238c61a3f2ac74ea18a98c933e358e277f | ||
1294 | |||
1295 | commit 7703ae5f5d42eb302ded51705166ff6e19c92892 | ||
1296 | Author: Darren Tucker <dtucker@dtucker.net> | ||
1297 | Date: Wed Jun 6 16:04:29 2018 +1000 | ||
1298 | |||
1299 | Use ssh-keygen -A to generate missing host keys. | ||
1300 | |||
1301 | Instead of testing for each specific key type, use ssh-keygen -A to | ||
1302 | generate any missing host key types. | ||
1303 | |||
1304 | commit e8d59fef1098e24f408248dc64e5c8efa5d01f3c | ||
1305 | Author: jmc@openbsd.org <jmc@openbsd.org> | ||
1306 | Date: Fri Jun 1 06:23:10 2018 +0000 | ||
1307 | |||
1308 | upstream: add missing punctuation after %i in ssh_config.5, and | ||
1309 | |||
1310 | make the grammatical format in sshd_config.5 match that in ssh_config.5; | ||
1311 | |||
1312 | OpenBSD-Commit-ID: e325663b9342f3d556e223e5306e0d5fa1a74fa0 | ||
1313 | |||
1314 | commit a1f737d6a99314e291a87856122cb4dbaf64c641 | ||
1315 | Author: jmc@openbsd.org <jmc@openbsd.org> | ||
1316 | Date: Fri Jun 1 05:52:26 2018 +0000 | ||
1317 | |||
1318 | upstream: oops - further adjustment to text neccessary; | ||
1319 | |||
1320 | OpenBSD-Commit-ID: 23585576c807743112ab956be0fb3c786bdef025 | ||
1321 | |||
1322 | commit 294028493471e0bd0c7ffe55dc0c0a67cba6ec41 | ||
1323 | Author: jmc@openbsd.org <jmc@openbsd.org> | ||
1324 | Date: Fri Jun 1 05:50:18 2018 +0000 | ||
1325 | |||
1326 | upstream: %U needs to be escaped; tweak text; | ||
1327 | |||
1328 | OpenBSD-Commit-ID: 30887b73ece257273fb619ab6f4e86dc92ddc15e | ||
1329 | |||
1330 | commit e5019da3c5a31e6e729a565f2b886a80c4be96cc | ||
1331 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
1332 | Date: Fri Jun 1 04:31:48 2018 +0000 | ||
1333 | |||
1334 | upstream: Apply umask to all incoming files and directories not | ||
1335 | |||
1336 | just files. This makes sure it gets applied to directories too, and prevents | ||
1337 | a race where files get chmodded after creation. bz#2839, ok djm@ | ||
1338 | |||
1339 | OpenBSD-Commit-ID: 3168ee6c7c39093adac4fd71039600cfa296203b | ||
1340 | |||
1341 | commit a1dcafc41c376332493b9385ee39f9754dc145ec | ||
1342 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1343 | Date: Fri Jun 1 03:52:37 2018 +0000 | ||
1344 | |||
1345 | upstream: Adapt to extra default verboisity from ssh-keygen when | ||
1346 | |||
1347 | searching for and hashing known_hosts entries in a single operation | ||
1348 | (ssh-keygen -HF ...) Patch from Anton Kremenetsky | ||
1349 | |||
1350 | OpenBSD-Regress-ID: 519585a4de35c4611285bd6a7272766c229b19dd | ||
1351 | |||
1352 | commit 76f314c75dffd4a55839d50ee23622edad52c168 | ||
1353 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1354 | Date: Tue May 22 00:22:49 2018 +0000 | ||
1355 | |||
1356 | upstream: Add TEST_SSH_FAIL_FATAL variable, to force all failures | ||
1357 | |||
1358 | to instantly abort the test. Useful in capturing clean logs for individual | ||
1359 | failure cases. | ||
1360 | |||
1361 | OpenBSD-Regress-ID: feba18cf338c2328b9601bd4093cabdd9baa3af1 | ||
1362 | |||
1363 | commit 065c8c055df8d83ae7c92e5e524a579d87668aab | ||
1364 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
1365 | Date: Fri May 11 03:51:06 2018 +0000 | ||
1366 | |||
1367 | upstream: Clean up comment. | ||
1368 | |||
1369 | OpenBSD-Regress-ID: 6adb35f384d447e7dcb9f170d4f0d546d3973e10 | ||
1370 | |||
1371 | commit 01b048c8eba3b021701bd0ab26257fc82903cba8 | ||
1372 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1373 | Date: Fri Jun 1 04:21:29 2018 +0000 | ||
1374 | |||
1375 | upstream: whitespace | ||
1376 | |||
1377 | OpenBSD-Commit-ID: e5edb5e843ddc9b73a8e46518899be41d5709add | ||
1378 | |||
1379 | commit 854ae209f992465a276de0b5f10ef770510c2418 | ||
1380 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1381 | Date: Fri Jun 1 04:05:29 2018 +0000 | ||
1382 | |||
1383 | upstream: make ssh_remote_ipaddr() capable of being called after | ||
1384 | |||
1385 | the ssh->state has been torn down; bz#2773 | ||
1386 | |||
1387 | OpenBSD-Commit-ID: 167f12523613ca3d16d7716a690e7afa307dc7eb | ||
1388 | |||
1389 | commit 3e088aaf236ef35beeef3c9be93fd53700df5861 | ||
1390 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1391 | Date: Fri Jun 1 03:51:34 2018 +0000 | ||
1392 | |||
1393 | upstream: return correct exit code when searching for and hashing | ||
1394 | |||
1395 | known_hosts entries in a single operation (ssh-keygen -HF hostname); bz2772 | ||
1396 | Report and fix from Anton Kremenetsky | ||
1397 | |||
1398 | OpenBSD-Commit-ID: ac10ca13eb9bb0bc50fcd42ad11c56c317437b58 | ||
1399 | |||
1400 | commit 9c935dd9bf05628826ad2495d3e8bdf3d3271c21 | ||
1401 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1402 | Date: Fri Jun 1 03:33:53 2018 +0000 | ||
1403 | |||
1404 | upstream: make UID available as a %-expansion everywhere that the | ||
1405 | |||
1406 | username is available currently. In the client this is via %i, in the server | ||
1407 | %U (since %i was already used in the client in some places for this, but used | ||
1408 | for something different in the server); bz#2870, ok dtucker@ | ||
1409 | |||
1410 | OpenBSD-Commit-ID: c7e912b0213713316cb55db194b3a6415b3d4b95 | ||
1411 | |||
1412 | commit d8748b91d1d6c108c0c260ed41fa55f37b9ef34b | ||
1413 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1414 | Date: Fri Jun 1 03:11:49 2018 +0000 | ||
1415 | |||
1416 | upstream: prefer argv0 to "ssh" when re-executing ssh for ProxyJump | ||
1417 | |||
1418 | directive; bz2831, feedback and ok dtucker@ | ||
1419 | |||
1420 | OpenBSD-Commit-ID: 3cec709a131499fbb0c1ea8a0a9e0b0915ce769e | ||
1421 | |||
1422 | commit fbb4b5fd4f8e0bb89732670a01954e18b69e15ba | ||
1423 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1424 | Date: Fri May 25 07:11:01 2018 +0000 | ||
1425 | |||
1426 | upstream: Do not ban PTY allocation when a sshd session is restricted | ||
1427 | |||
1428 | because the user password is expired as it breaks password change dialog. | ||
1429 | |||
1430 | regression in openssh-7.7 reported by Daniel Wagner | ||
1431 | |||
1432 | OpenBSD-Commit-ID: 9fc09c584c6f1964b00595e3abe7f83db4d90d73 | ||
1433 | |||
1434 | commit f6a59a22b0c157c4c4e5fd7232f868138223be64 | ||
1435 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1436 | Date: Fri May 25 04:25:46 2018 +0000 | ||
1437 | |||
1438 | upstream: Fix return value confusion in several functions (readdir, | ||
1439 | |||
1440 | download and fsync). These should return -1 on error, not a sftp status code. | ||
1441 | |||
1442 | patch from Petr Cerny in bz#2871 | ||
1443 | |||
1444 | OpenBSD-Commit-ID: 651aa0220ad23c9167d9297a436162d741f97a09 | ||
1445 | |||
1446 | commit 1da5934b860ac0378d52d3035b22b6670f6a967e | ||
1447 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
1448 | Date: Fri May 25 03:20:59 2018 +0000 | ||
1449 | |||
1450 | upstream: If select() fails in ssh_packet_read_seqnr go directly to | ||
1451 | |||
1452 | the error path instead of trying to read from the socket on the way out, | ||
1453 | which resets errno and causes the true error to be misreported. ok djm@ | ||
1454 | |||
1455 | OpenBSD-Commit-ID: 2614edaadbd05a957aa977728aa7a030af7c6f0a | ||
1456 | |||
1457 | commit 4ef75926ef517d539f2c7aac3188b09f315c86a7 | ||
1458 | Author: Damien Miller <djm@mindrot.org> | ||
1459 | Date: Fri May 25 13:36:58 2018 +1000 | ||
1460 | |||
1461 | Permit getuid()/geteuid() syscalls. | ||
1462 | |||
1463 | Requested for Linux/s390; patch from Eduardo Barretto via bz#2752; | ||
1464 | ok dtucker | ||
1465 | |||
1466 | commit 4b22fd8ecefd059a66140be67f352eb6145a9d88 | ||
1467 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1468 | Date: Tue May 22 00:13:26 2018 +0000 | ||
1469 | |||
1470 | upstream: support ProxyJump=none to disable ProxyJump | ||
1471 | |||
1472 | functionality; bz#2869 ok dtucker@ | ||
1473 | |||
1474 | OpenBSD-Commit-ID: 1c06ee08eb78451b5837fcfd8cbebc5ff3a67a01 | ||
1475 | |||
1476 | commit f41bcd70f55b4f0fc4d8e1039cb361ac922b23fb | ||
1477 | Author: jmc@openbsd.org <jmc@openbsd.org> | ||
1478 | Date: Tue May 15 05:40:11 2018 +0000 | ||
1479 | |||
1480 | upstream: correct keyowrd name (permitemptypasswords); from brendan | ||
1481 | |||
1482 | macdonell | ||
1483 | |||
1484 | OpenBSD-Commit-ID: ef1bdbc936b2ea693ee37a4c20a94d4d43f5fda3 | ||
1485 | |||
1486 | commit f18bc97151340127859634d20d79fd39ec8a7f39 | ||
1487 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1488 | Date: Fri May 11 04:01:11 2018 +0000 | ||
1489 | |||
1490 | upstream: Emphasise that -w implicitly sets Tunnel=point-to-point | ||
1491 | |||
1492 | and that users should specify an explicit Tunnel directive if they don't want | ||
1493 | this. bz#2365. | ||
1494 | |||
1495 | OpenBSD-Commit-ID: 1a8d9c67ae213ead180481900dbbb3e04864560d | ||
1496 | |||
1497 | commit 32e4e94e1511fe0020fbfbb62399d31b2d22a801 | ||
1498 | Author: Damien Miller <djm@mindrot.org> | ||
1499 | Date: Mon May 14 14:40:08 2018 +1000 | ||
1500 | |||
1501 | sync fmt_scaled.c | ||
1502 | |||
1503 | revision 1.17 | ||
1504 | date: 2018/05/14 04:39:04; author: djm; state: Exp; lines: +5 -2; | ||
1505 | commitid: 53zY8GjViUBnWo8Z; | ||
1506 | constrain fractional part to [0-9] (less confusing to static analysis); ok ian@ | ||
1507 | |||
1508 | commit 54268d589e85ecc43d3eba8d83f327bdada9d696 | ||
1509 | Author: Damien Miller <djm@mindrot.org> | ||
1510 | Date: Fri May 11 14:04:40 2018 +1000 | ||
1511 | |||
1512 | fix key-options.sh on platforms without openpty(3) | ||
1513 | |||
1514 | Skip the pty tests if the platform lacks openpty(3) and has to chown(2) | ||
1515 | the pty device explicitly. This typically requires root permissions that | ||
1516 | this test lacks. | ||
1517 | |||
1518 | bz#2856 ok dtucker@ | ||
1519 | |||
1520 | commit b2140a739be4c3b43cc1dc08322dca39a1e39d20 | ||
1521 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1522 | Date: Fri May 11 03:38:51 2018 +0000 | ||
1523 | |||
1524 | upstream: implement EMFILE mitigation for ssh-agent: remember the | ||
1525 | |||
1526 | fd rlimit and stop accepting new connections when it is exceeded (with some | ||
1527 | grace). Accept is resumed when enough connections are closed. | ||
1528 | |||
1529 | bz#2576. feedback deraadt; ok dtucker@ | ||
1530 | |||
1531 | OpenBSD-Commit-ID: 6a85d9cec7b85741961e7116a49f8dae777911ea | ||
1532 | |||
1533 | commit fdba503fdfc647ee8a244002f1581e869c1f3d90 | ||
1534 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
1535 | Date: Fri May 11 03:22:55 2018 +0000 | ||
1536 | |||
1537 | upstream: Explicit cast when snprintf'ing an uint64. Prevents | ||
1538 | |||
1539 | warnings on platforms where int64 is long not long long. ok djm@ | ||
1540 | |||
1541 | OpenBSD-Commit-ID: 9c5359e2fbfce11dea2d93f7bc257e84419bd001 | ||
1542 | |||
1543 | commit e7751aa4094d51a9bc00778aa8d07e22934c55ee | ||
1544 | Author: bluhm@openbsd.org <bluhm@openbsd.org> | ||
1545 | Date: Thu Apr 26 14:47:03 2018 +0000 | ||
1546 | |||
1547 | upstream: Since the previous commit, ssh regress test sftp-chroot was | ||
1548 | |||
1549 | failing. The sftp program terminated with the wrong exit code as sftp called | ||
1550 | fatal() instad of exit(0). So when the sigchld handler waits for the child, | ||
1551 | remember that it was found. Then don't expect that main() can wait again. OK | ||
1552 | dtucker@ | ||
1553 | |||
1554 | OpenBSD-Commit-ID: bfafd940c0de5297940c71ddf362053db0232266 | ||
1555 | |||
1556 | commit 7c15301841e2e9d37cae732400de63ae9c0961d6 | ||
1557 | Author: Darren Tucker <dtucker@dtucker.net> | ||
1558 | Date: Sun Apr 29 17:54:12 2018 +1000 | ||
1559 | |||
1560 | Use includes.h instead of config.h. | ||
1561 | |||
1562 | This ensures it picks up the definition of DEF_WEAK, the lack of which | ||
1563 | can cause compile errors in some cases (eg modern AIX). From | ||
1564 | michael at felt.demon.nl. | ||
1565 | |||
1566 | commit cec338967a666b7c8ad8b88175f2faeddf268116 | ||
1567 | Author: Darren Tucker <dtucker@dtucker.net> | ||
1568 | Date: Thu Apr 19 09:53:14 2018 +1000 | ||
1569 | |||
1570 | Omit 3des-cbc if OpenSSL built without DES. | ||
1571 | |||
1572 | Patch from hongxu.jia at windriver.com, ok djm@ | ||
1573 | |||
1574 | commit a575ddd58835759393d2dddd16ebe5abdb56485e | ||
1575 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1576 | Date: Mon Apr 16 22:50:44 2018 +0000 | ||
1577 | |||
1578 | upstream: Disable SSH2_MSG_DEBUG messages for Twisted Conch clients | ||
1579 | |||
1580 | without version numbers since they choke on them under some circumstances. | ||
1581 | https://twistedmatrix.com/trac/ticket/9422 via Colin Watson | ||
1582 | |||
1583 | Newer Conch versions have a version number in their ident string and | ||
1584 | handle debug messages okay. https://twistedmatrix.com/trac/ticket/9424 | ||
1585 | |||
1586 | OpenBSD-Commit-ID: 6cf7be262af0419c58ddae11324d9c0dc1577539 | ||
1587 | |||
1588 | commit 390c7000a8946db565b66eab9e52fb11948711fa | ||
1589 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1590 | Date: Sat Apr 14 21:50:41 2018 +0000 | ||
1591 | |||
1592 | upstream: don't free the %C expansion, it's used later for | ||
1593 | |||
1594 | LocalCommand | ||
1595 | |||
1596 | OpenBSD-Commit-ID: 857b5cb37b2d856bfdfce61289a415257a487fb1 | ||
1597 | |||
1598 | commit 3455f1e7c48e2e549192998d330214975b9b1dc7 | ||
1599 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1600 | Date: Fri Apr 13 05:04:12 2018 +0000 | ||
1601 | |||
1602 | upstream: notify user immediately when underlying ssh process dies; | ||
1603 | |||
1604 | patch from Thomas Kuthan in bz2719; ok dtucker@ | ||
1605 | |||
1606 | OpenBSD-Commit-ID: 78fac88c2f08054d1fc5162c43c24162b131cf78 | ||
1607 | |||
1608 | commit 1c5b4bc827f4abc3e65888cda061ad5edf1b8c7c | ||
1609 | Author: Darren Tucker <dtucker@dtucker.net> | ||
1610 | Date: Fri Apr 13 16:23:57 2018 +1000 | ||
1611 | |||
1612 | Allow nanosleep in preauth privsep child. | ||
1613 | |||
1614 | The new timing attack mitigation code uses nanosleep in the preauth | ||
1615 | codepath, allow in systrace andbox too. | ||
1616 | |||
1617 | commit 0e73428038d5ecfa5d2a28cff26661502a7aff4e | ||
1618 | Author: Darren Tucker <dtucker@dtucker.net> | ||
1619 | Date: Fri Apr 13 16:06:29 2018 +1000 | ||
1620 | |||
1621 | Allow nanosleep in preauth privsep child. | ||
1622 | |||
1623 | The new timing attack mitigation code uses nanosleep in the preauth | ||
1624 | codepath, allow in sandbox. | ||
1625 | |||
1626 | commit e9d910b0289c820852f7afa67f584cef1c05fe95 | ||
1627 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
1628 | Date: Fri Apr 13 03:57:26 2018 +0000 | ||
1629 | |||
1630 | upstream: Defend against user enumeration timing attacks. This | ||
1631 | |||
1632 | establishes a minimum time for each failed authentication attempt (5ms) and | ||
1633 | adds a per-user constant derived from a host secret (0-4ms). Based on work | ||
1634 | by joona.kannisto at tut.fi, ok markus@ djm@. | ||
1635 | |||
1636 | OpenBSD-Commit-ID: b7845b355bb7381703339c8fb0e57e81a20ae5ca | ||
1637 | |||
1638 | commit d97874cbd909eb706886cd0cdd418f812c119ef9 | ||
1639 | Author: Darren Tucker <dtucker@dtucker.net> | ||
1640 | Date: Fri Apr 13 13:43:55 2018 +1000 | ||
1641 | |||
1642 | Using "==" in shell tests is not portable. | ||
1643 | |||
1644 | Patch from rsbecker at nexbridge.com. | ||
1645 | |||
1646 | commit cfb1d9bc76734681e3dea532a1504fcd466fbe91 | ||
1647 | Author: Damien Miller <djm@mindrot.org> | ||
1648 | Date: Fri Apr 13 13:38:06 2018 +1000 | ||
1649 | |||
1650 | Fix tunnel forwarding broken in 7.7p1 | ||
1651 | |||
1652 | bz2855, ok dtucker@ | ||
1653 | |||
1654 | commit afa6e79b76fb52a0c09a29688b5c0d125eb08302 | ||
1655 | Author: Damien Miller <djm@mindrot.org> | ||
1656 | Date: Fri Apr 13 13:31:42 2018 +1000 | ||
1657 | |||
1658 | prefer to use getrandom() for PRNG seeding | ||
1659 | |||
1660 | Only applies when built --without-openssl. Thanks Jann Horn for | ||
1661 | reminder. | ||
1662 | |||
1663 | commit 575fac34a97f69bc217b235f81de9f8f433eceed | ||
1664 | Author: Darren Tucker <dtucker@dtucker.net> | ||
1665 | Date: Fri Apr 13 13:13:33 2018 +1000 | ||
1666 | |||
1667 | Revert $REGRESSTMP changes. | ||
1668 | |||
1669 | Revert 3fd2d229 and subsequent changes as they turned out to be a | ||
1670 | portability hassle. | ||
1671 | |||
1672 | commit 10479cc2a4acd6faaf643eb305233b49d70c31c1 | ||
1673 | Author: Damien Miller <djm@mindrot.org> | ||
1674 | Date: Tue Apr 10 10:19:02 2018 +1000 | ||
1675 | |||
1676 | Many typo fixes from Karsten Weiss | ||
1677 | |||
1678 | Spotted using https://github.com/lucasdemarchi/codespell | ||
1679 | |||
1680 | commit 907da2f88519b34189fd03fac96de0c52d448233 | ||
1681 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1682 | Date: Tue Apr 10 00:14:10 2018 +0000 | ||
1683 | |||
1684 | upstream: more typos spotted by Karsten Weiss using codespell | ||
1685 | |||
1686 | OpenBSD-Regress-ID: d906a2aea0663810a658b7d0bc61a1d2907d4d69 | ||
1687 | |||
1688 | commit 37e5f4a7ab9a8026e5fc2f47dafb0f1b123d39e9 | ||
1689 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1690 | Date: Tue Apr 10 00:13:27 2018 +0000 | ||
1691 | |||
1692 | upstream: make this a bit more portable-friendly | ||
1693 | |||
1694 | OpenBSD-Regress-ID: 62f7b9e055e8dfaab92b3825f158beeb4ca3f963 | ||
1695 | |||
1696 | commit 001aa55484852370488786bd40e9fdad4b465811 | ||
1697 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1698 | Date: Tue Apr 10 00:10:49 2018 +0000 | ||
1699 | |||
1700 | upstream: lots of typos in comments/docs. Patch from Karsten Weiss | ||
1701 | |||
1702 | after checking with codespell tool | ||
1703 | (https://github.com/lucasdemarchi/codespell) | ||
1704 | |||
1705 | OpenBSD-Commit-ID: 373222f12d7ab606598a2d36840c60be93568528 | ||
1706 | |||
1707 | commit 260ede2787fe80b18b8d5920455b4fb268519c7d | ||
1708 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1709 | Date: Mon Apr 9 23:54:49 2018 +0000 | ||
1710 | |||
1711 | upstream: don't kill ssh-agent's listening socket entriely if we | ||
1712 | |||
1713 | fail to accept a connection; bz#2837, patch from Lukas Kuster | ||
1714 | |||
1715 | OpenBSD-Commit-ID: 52413f5069179bebf30d38f524afe1a2133c738f | ||
1716 | |||
1717 | commit ebc8b4656f9b0f834a642a9fb3c9fbca86a61838 | ||
1718 | Author: tj@openbsd.org <tj@openbsd.org> | ||
1719 | Date: Mon Apr 9 20:41:22 2018 +0000 | ||
1720 | |||
1721 | upstream: the UseLogin option was removed, so remove it here too. | ||
1722 | |||
1723 | ok dtucker | ||
1724 | |||
1725 | OpenBSD-Commit-ID: 7080be73a64d68e21f22f5408a67a0ba8b1b6b06 | ||
1726 | |||
1727 | commit 3e36f281851fc8e9c996b33f108b2ae167314fbe | ||
1728 | Author: jmc@openbsd.org <jmc@openbsd.org> | ||
1729 | Date: Sun Apr 8 07:36:02 2018 +0000 | ||
1730 | |||
1731 | upstream: tweak previous; | ||
1732 | |||
1733 | OpenBSD-Commit-ID: 2b9c23022ea7b9dddb62864de4e906000f9d7474 | ||
1734 | |||
1735 | commit 8368571efd6693c5c57f850e23a2372acf3f865f | ||
1736 | Author: jmc@openbsd.org <jmc@openbsd.org> | ||
1737 | Date: Sat Apr 7 13:50:10 2018 +0000 | ||
1738 | |||
1739 | upstream: tweak previous; | ||
1740 | |||
1741 | OpenBSD-Commit-ID: 38e347b6f8e888f5e0700d01abb1eba7caa154f9 | ||
1742 | |||
1743 | commit 555294a7279914ae6795b71bedf4e6011b7636df | ||
1744 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1745 | Date: Fri Apr 6 13:02:39 2018 +0000 | ||
1746 | |||
1747 | upstream: Allow "SendEnv -PATTERN" to clear environment variables | ||
1748 | |||
1749 | previously labeled for sendind. bz#1285 ok dtucker@ | ||
1750 | |||
1751 | OpenBSD-Commit-ID: f6fec9e3d0f366f15903094fbe1754cb359a0df9 | ||
1752 | |||
1753 | commit 40f5f03544a07ebd2003b443d42e85cb51d94d59 | ||
1754 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1755 | Date: Fri Apr 6 04:15:45 2018 +0000 | ||
1756 | |||
1757 | upstream: relax checking of authorized_keys environment="..." | ||
1758 | |||
1759 | options to allow underscores in variable names (regression introduced in | ||
1760 | 7.7). bz2851, ok deraadt@ | ||
1761 | |||
1762 | OpenBSD-Commit-ID: 69690ffe0c97ff393f2c76d25b4b3d2ed4e4ac9c | ||
1763 | |||
1764 | commit 30fd7f9af0f553aaa2eeda5a1f53f26cfc222b5e | ||
1765 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1766 | Date: Fri Apr 6 03:51:27 2018 +0000 | ||
1767 | |||
1768 | upstream: add a couple of missed options to the config dump; patch | ||
1769 | |||
1770 | from Jakub Jelen via bz2835 | ||
1771 | |||
1772 | OpenBSD-Commit-ID: 5970adadf6ef206bee0dddfc75d24c2019861446 | ||
1773 | |||
1774 | commit 8d6829be324452d2acd282d5f8ceb0adaa89a4de | ||
1775 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1776 | Date: Fri Apr 6 03:34:27 2018 +0000 | ||
1777 | |||
1778 | upstream: ssh does not accept -oInclude=... on the commandline, the | ||
1779 | |||
1780 | Include keyword is for configuration files only. bz#2840, patch from Jakub | ||
1781 | Jelen | ||
1782 | |||
1783 | OpenBSD-Commit-ID: 32d052b4a7a7f22df35fe3f71c368c02b02cacb0 | ||
1784 | |||
1785 | commit 00c5222ddc0c8edcaa4ea45ac03befdc8013d137 | ||
1786 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1787 | Date: Thu Apr 5 22:54:28 2018 +0000 | ||
1788 | |||
1789 | upstream: We don't offer CBC cipher by default any more. Spotted by | ||
1790 | |||
1791 | Renaud Allard (via otto@) | ||
1792 | |||
1793 | OpenBSD-Commit-ID: a559b1eef741557dd959ae378b665a2977d92dca | ||
1794 | |||
1795 | commit 5ee8448ad7c306f05a9f56769f95336a8269f379 | ||
1796 | Author: job@openbsd.org <job@openbsd.org> | ||
1797 | Date: Wed Apr 4 15:12:17 2018 +0000 | ||
1798 | |||
1799 | upstream: Update default IPQoS in ssh(1), sshd(8) to DSCP AF21 for | ||
1800 | |||
1801 | interactive and CS1 for bulk | ||
1802 | |||
1803 | AF21 was selected as this is the highest priority within the low-latency | ||
1804 | service class (and it is higher than what we have today). SSH is elastic | ||
1805 | and time-sensitive data, where a user is waiting for a response via the | ||
1806 | network in order to continue with a task at hand. As such, these flows | ||
1807 | should be considered foreground traffic, with delays or drops to such | ||
1808 | traffic directly impacting user-productivity. | ||
1809 | |||
1810 | For bulk SSH traffic, the CS1 "Lower Effort" marker was chosen to enable | ||
1811 | networks implementing a scavanger/lower-than-best effort class to | ||
1812 | discriminate scp(1) below normal activities, such as web surfing. In | ||
1813 | general this type of bulk SSH traffic is a background activity. | ||
1814 | |||
1815 | An advantage of using "AF21" for interactive SSH and "CS1" for bulk SSH | ||
1816 | is that they are recognisable values on all common platforms (IANA | ||
1817 | https://www.iana.org/assignments/dscp-registry/dscp-registry.xml), and | ||
1818 | for AF21 specifically a definition of the intended behavior exists | ||
1819 | https://tools.ietf.org/html/rfc4594#section-4.7 in addition to the definition | ||
1820 | of the Assured Forwarding PHB group https://tools.ietf.org/html/rfc2597, and | ||
1821 | for CS1 (Lower Effort) there is https://tools.ietf.org/html/rfc3662 | ||
1822 | |||
1823 | The first three bits of "AF21" map to the equivalent IEEEE 802.1D PCP, IEEE | ||
1824 | 802.11e, MPLS EXP/CoS and IP Precedence value of 2 (also known as "Immediate", | ||
1825 | or "AC_BE"), and CS1's first 3 bits map to IEEEE 802.1D PCP, IEEE 802.11e, | ||
1826 | MPLS/CoS and IP Precedence value 1 ("Background" or "AC_BK"). | ||
1827 | |||
1828 | OK deraadt@, "no objection" djm@ | ||
1829 | |||
1830 | OpenBSD-Commit-ID: d11d2a4484f461524ef0c20870523dfcdeb52181 | ||
1831 | |||
1832 | commit 424b544fbda963f973da80f884717c3e0a513288 | ||
1833 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
1834 | Date: Tue Apr 3 02:14:08 2018 +0000 | ||
1835 | |||
1836 | upstream: Import regenerated moduli file. | ||
1837 | |||
1838 | OpenBSD-Commit-ID: 1de0e85522051eb2ffa00437e1885e9d7b3e0c2e | ||
1839 | |||
1840 | commit 323f66ce934df2da551f256f37d69822428e1ca1 | ||
1841 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
1842 | Date: Fri Apr 6 04:18:35 2018 +0000 | ||
1843 | |||
1844 | upstream: Add test for username options parsing order, prompted by | ||
1845 | |||
1846 | bz#2849. | ||
1847 | |||
1848 | OpenBSD-Regress-ID: 6985cd32f38596882a3ac172ff8c510693b65283 | ||
1849 | |||
1850 | commit e8f474554e3bda102a797a2fbab0594ccc66f097 | ||
1851 | Author: Damien Miller <djm@mindrot.org> | ||
1852 | Date: Fri Apr 6 14:11:44 2018 +1000 | ||
1853 | |||
1854 | Expose SSH_AUTH_INFO_0 to PAM auth modules | ||
1855 | |||
1856 | bz#2408, patch from Radoslaw Ejsmont; ok dtucker@ | ||
1857 | |||
1858 | commit 014ba209cf4c6a159baa30ecebbaddfa97da7100 | ||
1859 | Author: Darren Tucker <dtucker@dtucker.net> | ||
1860 | Date: Tue Apr 3 12:18:00 2018 +1000 | ||
1861 | |||
1862 | Import regenerated moduli file. | ||
1863 | |||
1 | commit a0349a1cc4a18967ad1dbff5389bcdf9da098814 | 1864 | commit a0349a1cc4a18967ad1dbff5389bcdf9da098814 |
2 | Author: Damien Miller <djm@mindrot.org> | 1865 | Author: Damien Miller <djm@mindrot.org> |
3 | Date: Mon Apr 2 15:38:28 2018 +1000 | 1866 | Date: Mon Apr 2 15:38:28 2018 +1000 |
@@ -7876,1923 +9739,3 @@ Date: Tue Aug 23 08:17:42 2016 +0000 | |||
7876 | in addr_match_list() | 9739 | in addr_match_list() |
7877 | 9740 | ||
7878 | Upstream-ID: 07c3d53e357214153d9d08f234411e0d1a3d6f5c | 9741 | Upstream-ID: 07c3d53e357214153d9d08f234411e0d1a3d6f5c |
7879 | |||
7880 | commit a39627134f6d90e7009eeb14e9582ecbc7a99192 | ||
7881 | Author: djm@openbsd.org <djm@openbsd.org> | ||
7882 | Date: Tue Aug 23 06:36:23 2016 +0000 | ||
7883 | |||
7884 | upstream commit | ||
7885 | |||
7886 | remove Protocol directive from client/server configs that | ||
7887 | causes spammy deprecation warnings | ||
7888 | |||
7889 | hardcode SSH_PROTOCOLS=2, since that's all we support on the server | ||
7890 | now (the client still may support both, so it could get confused) | ||
7891 | |||
7892 | Upstream-Regress-ID: c16662c631af51633f9fd06aca552a70535de181 | ||
7893 | |||
7894 | commit 6ee4f1c01ee31e65245881d49d4bccf014956066 | ||
7895 | Author: Damien Miller <djm@mindrot.org> | ||
7896 | Date: Tue Aug 23 16:33:48 2016 +1000 | ||
7897 | |||
7898 | hook match and utf8 unittests up to Makefile | ||
7899 | |||
7900 | commit 114efe2bc0dd2842d997940a833f115e6fc04854 | ||
7901 | Author: djm@openbsd.org <djm@openbsd.org> | ||
7902 | Date: Fri Aug 19 06:44:13 2016 +0000 | ||
7903 | |||
7904 | upstream commit | ||
7905 | |||
7906 | add tests for matching functions | ||
7907 | |||
7908 | Upstream-Regress-ID: 0869d4f5c5d627c583c6a929d69c17d5dd65882c | ||
7909 | |||
7910 | commit 857568d2ac81c14bcfd625b27536c1e28c992b3c | ||
7911 | Author: Damien Miller <djm@mindrot.org> | ||
7912 | Date: Tue Aug 23 14:32:37 2016 +1000 | ||
7913 | |||
7914 | removing UseLogin bits from configure.ac | ||
7915 | |||
7916 | commit cc182d01cef8ca35a1d25ea9bf4e2ff72e588208 | ||
7917 | Author: djm@openbsd.org <djm@openbsd.org> | ||
7918 | Date: Tue Aug 23 03:24:10 2016 +0000 | ||
7919 | |||
7920 | upstream commit | ||
7921 | |||
7922 | fix negated address matching where the address list | ||
7923 | consists of a single negated match, e.g. "Match addr !192.20.0.1" | ||
7924 | |||
7925 | Report and patch from Jakub Jelen. bz#2397 ok dtucker@ | ||
7926 | |||
7927 | Upstream-ID: 01dcac3f3e6ca47518cf293e31c73597a4bb40d8 | ||
7928 | |||
7929 | commit 4067ec8a4c64ccf16250c35ff577b4422767da64 | ||
7930 | Author: djm@openbsd.org <djm@openbsd.org> | ||
7931 | Date: Tue Aug 23 03:22:49 2016 +0000 | ||
7932 | |||
7933 | upstream commit | ||
7934 | |||
7935 | fix matching for pattern lists that contain a single | ||
7936 | negated match, e.g. "Host !example" | ||
7937 | |||
7938 | report and patch from Robin Becker. bz#1918 ok dtucker@ | ||
7939 | |||
7940 | Upstream-ID: 05a0cb323ea4bc20e98db099b42c067bfb9ea1ea | ||
7941 | |||
7942 | commit 83b581862a1dbb06fc859959f829dde2654aef3c | ||
7943 | Author: djm@openbsd.org <djm@openbsd.org> | ||
7944 | Date: Fri Aug 19 03:18:06 2016 +0000 | ||
7945 | |||
7946 | upstream commit | ||
7947 | |||
7948 | remove UseLogin option and support for having /bin/login | ||
7949 | manage login sessions; ok deraadt markus dtucker | ||
7950 | |||
7951 | Upstream-ID: bea7213fbf158efab7e602d9d844fba4837d2712 | ||
7952 | |||
7953 | commit ffe6549c2f7a999cc5264b873a60322e91862581 | ||
7954 | Author: naddy@openbsd.org <naddy@openbsd.org> | ||
7955 | Date: Mon Aug 15 12:32:04 2016 +0000 | ||
7956 | |||
7957 | upstream commit | ||
7958 | |||
7959 | Catch up with the SSH1 code removal and delete all | ||
7960 | mention of protocol 1 particularities, key files and formats, command line | ||
7961 | options, and configuration keywords from the server documentation and | ||
7962 | examples. ok jmc@ | ||
7963 | |||
7964 | Upstream-ID: 850328854675b4b6a0d4a90f0b4a9dd9ca4e905f | ||
7965 | |||
7966 | commit c38ea634893a1975dbbec798fb968c9488013f4a | ||
7967 | Author: naddy@openbsd.org <naddy@openbsd.org> | ||
7968 | Date: Mon Aug 15 12:27:56 2016 +0000 | ||
7969 | |||
7970 | upstream commit | ||
7971 | |||
7972 | Remove more SSH1 server code: * Drop sshd's -k option. * | ||
7973 | Retire configuration keywords that only apply to protocol 1, as well as the | ||
7974 | "protocol" keyword. * Remove some related vestiges of protocol 1 support. | ||
7975 | |||
7976 | ok markus@ | ||
7977 | |||
7978 | Upstream-ID: 9402f82886de917779db12f8ee3f03d4decc244d | ||
7979 | |||
7980 | commit 33ba55d9e358c07f069e579bfab80eccaaad52cb | ||
7981 | Author: Darren Tucker <dtucker@zip.com.au> | ||
7982 | Date: Wed Aug 17 16:26:04 2016 +1000 | ||
7983 | |||
7984 | Only check for prctl once. | ||
7985 | |||
7986 | commit 976ba8a8fd66a969bf658280c1e5adf694cc2fc6 | ||
7987 | Author: Darren Tucker <dtucker@zip.com.au> | ||
7988 | Date: Wed Aug 17 15:33:10 2016 +1000 | ||
7989 | |||
7990 | Fix typo. | ||
7991 | |||
7992 | commit 9abf84c25ff4448891edcde60533a6e7b2870de1 | ||
7993 | Author: Darren Tucker <dtucker@zip.com.au> | ||
7994 | Date: Wed Aug 17 14:25:43 2016 +1000 | ||
7995 | |||
7996 | Correct LDFLAGS for clang example. | ||
7997 | |||
7998 | --with-ldflags isn't used until after the -ftrapv test, so mention | ||
7999 | LDFLAGS instead for now. | ||
8000 | |||
8001 | commit 1e8013a17ff11e3c6bd0012fb1fc8d5f1330eb21 | ||
8002 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8003 | Date: Wed Aug 17 14:08:42 2016 +1000 | ||
8004 | |||
8005 | Remove obsolete CVS $Id from source files. | ||
8006 | |||
8007 | Since -portable switched to git the CVS $Id tags are no longer being | ||
8008 | updated and are becoming increasingly misleading. Remove them. | ||
8009 | |||
8010 | commit adab758242121181700e48b4f6c60d6b660411fe | ||
8011 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8012 | Date: Wed Aug 17 13:40:58 2016 +1000 | ||
8013 | |||
8014 | Remove now-obsolete CVS $Id tags from text files. | ||
8015 | |||
8016 | Since -portable switched to git, the CVS $Id tags are no longer being | ||
8017 | updated and are becoming increasingly misleading. Remove them. | ||
8018 | |||
8019 | commit 560c0068541315002ec4c1c00a560bbd30f2d671 | ||
8020 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8021 | Date: Wed Aug 17 13:38:30 2016 +1000 | ||
8022 | |||
8023 | Add a section for compiler specifics. | ||
8024 | |||
8025 | Add a section for compiler specifics and document the runtime requirements | ||
8026 | for clang's integer sanitization. | ||
8027 | |||
8028 | commit a8fc0f42e1eda2fa3393d1ea5e61322d5e07a9cd | ||
8029 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8030 | Date: Wed Aug 17 13:35:43 2016 +1000 | ||
8031 | |||
8032 | Test multiplying two long long ints. | ||
8033 | |||
8034 | When using clang with -ftrapv or -sanitize=integer the tests would pass | ||
8035 | but linking would fail with "undefined reference to __mulodi4". | ||
8036 | Explicitly test for this before enabling -trapv. | ||
8037 | |||
8038 | commit a1cc637e7e11778eb727559634a6ef1c19c619f6 | ||
8039 | Author: Damien Miller <djm@mindrot.org> | ||
8040 | Date: Tue Aug 16 14:47:34 2016 +1000 | ||
8041 | |||
8042 | add a --with-login-program configure argument | ||
8043 | |||
8044 | Saves messing around with LOGIN_PROGRAM env var, which come | ||
8045 | packaging environments make hard to do during configure phase. | ||
8046 | |||
8047 | commit 8bd81e1596ab1bab355146cb65e82fb96ade3b23 | ||
8048 | Author: Damien Miller <djm@mindrot.org> | ||
8049 | Date: Tue Aug 16 13:30:56 2016 +1000 | ||
8050 | |||
8051 | add --with-pam-service to specify PAM service name | ||
8052 | |||
8053 | Saves messing around with CFLAGS to do it. | ||
8054 | |||
8055 | commit 74433a19bb6f4cef607680fa4d1d7d81ca3826aa | ||
8056 | Author: Damien Miller <djm@mindrot.org> | ||
8057 | Date: Tue Aug 16 13:28:23 2016 +1000 | ||
8058 | |||
8059 | fix false positives when compiled with msan | ||
8060 | |||
8061 | Our explicit_bzero successfully confused clang -fsanitize-memory | ||
8062 | in to thinking that memset is never called to initialise memory. | ||
8063 | Ensure that it is called in a way that the compiler recognises. | ||
8064 | |||
8065 | commit 6cb6dcffe1a2204ba9006de20f73255c268fcb6b | ||
8066 | Author: markus@openbsd.org <markus@openbsd.org> | ||
8067 | Date: Sat Aug 13 17:47:40 2016 +0000 | ||
8068 | |||
8069 | upstream commit | ||
8070 | |||
8071 | remove ssh1 server code; ok djm@ | ||
8072 | |||
8073 | Upstream-ID: c24c0c32c49b91740d5a94ae914fb1898ea5f534 | ||
8074 | |||
8075 | commit 42d47adc5ad1187f22c726cbc52e71d6b1767ca2 | ||
8076 | Author: jca@openbsd.org <jca@openbsd.org> | ||
8077 | Date: Fri Aug 12 19:19:04 2016 +0000 | ||
8078 | |||
8079 | upstream commit | ||
8080 | |||
8081 | Use 2001:db8::/32, the official IPv6 subnet for | ||
8082 | configuration examples. | ||
8083 | |||
8084 | This makes the IPv6 example consistent with IPv4, and removes a dubious | ||
8085 | mention of a 6bone subnet. | ||
8086 | |||
8087 | ok sthen@ millert@ | ||
8088 | |||
8089 | Upstream-ID: b027f3d0e0073419a132fd1bf002e8089b233634 | ||
8090 | |||
8091 | commit b61f53c0c3b43c28e013d3b3696d64d1c0204821 | ||
8092 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
8093 | Date: Thu Aug 11 01:42:11 2016 +0000 | ||
8094 | |||
8095 | upstream commit | ||
8096 | |||
8097 | Update moduli file. | ||
8098 | |||
8099 | Upstream-ID: 6da9a37f74aef9f9cc639004345ad893cad582d8 | ||
8100 | |||
8101 | commit f217d9bd42d306f69f56335231036b44502d8191 | ||
8102 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8103 | Date: Thu Aug 11 11:42:48 2016 +1000 | ||
8104 | |||
8105 | Import updated moduli. | ||
8106 | |||
8107 | commit 67dca60fbb4923b7a11c1645b90a5ca57c03d8be | ||
8108 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
8109 | Date: Mon Aug 8 22:40:57 2016 +0000 | ||
8110 | |||
8111 | upstream commit | ||
8112 | |||
8113 | Improve error message for overlong ControlPath. ok markus@ | ||
8114 | djm@ | ||
8115 | |||
8116 | Upstream-ID: aed374e2e88dd3eb41390003e5303d0089861eb5 | ||
8117 | |||
8118 | commit 4706c1d8c15cd5565b59512853c2da9bd4ca26c9 | ||
8119 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8120 | Date: Wed Aug 3 05:41:57 2016 +0000 | ||
8121 | |||
8122 | upstream commit | ||
8123 | |||
8124 | small refactor of cipher.c: make ciphercontext opaque to | ||
8125 | callers feedback and ok markus@ | ||
8126 | |||
8127 | Upstream-ID: 094849f8be68c3bdad2c0f3dee551ecf7be87f6f | ||
8128 | |||
8129 | commit e600348a7afd6325cc5cd783cb424065cbc20434 | ||
8130 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
8131 | Date: Wed Aug 3 04:23:55 2016 +0000 | ||
8132 | |||
8133 | upstream commit | ||
8134 | |||
8135 | Fix bug introduced in rev 1.467 which causes | ||
8136 | "buffer_get_bignum_ret: incomplete message" errors when built with WITH_SSH1 | ||
8137 | and run such that no Protocol 1 ephemeral host key is generated (eg "Protocol | ||
8138 | 2", no SSH1 host key supplied). Reported by rainer.laatsch at t-online.de, | ||
8139 | ok deraadt@ | ||
8140 | |||
8141 | Upstream-ID: aa6b132da5c325523aed7989cc5a320497c919dc | ||
8142 | |||
8143 | commit d7e7348e72f9b203189e3fffb75605afecba4fda | ||
8144 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8145 | Date: Wed Jul 27 23:18:12 2016 +0000 | ||
8146 | |||
8147 | upstream commit | ||
8148 | |||
8149 | better bounds check on iovcnt (we only ever use fixed, | ||
8150 | positive values) | ||
8151 | |||
8152 | Upstream-ID: 9baa6eb5cd6e30c9dc7398e5fe853721a3a5bdee | ||
8153 | |||
8154 | commit 5faa52d295f764562ed6dd75c4a4ce9134ae71e3 | ||
8155 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8156 | Date: Tue Aug 2 15:22:40 2016 +1000 | ||
8157 | |||
8158 | Use tabs consistently inside "case $host". | ||
8159 | |||
8160 | commit 20e5e8ba9c5d868d897896190542213a60fffbd2 | ||
8161 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8162 | Date: Tue Aug 2 12:16:34 2016 +1000 | ||
8163 | |||
8164 | Explicitly test for broken strnvis. | ||
8165 | |||
8166 | NetBSD added an strnvis and unfortunately made it incompatible with the | ||
8167 | existing one in OpenBSD and Linux's libbsd (the former having existed | ||
8168 | for over ten years). Despite this incompatibility being reported during | ||
8169 | development (see http://gnats.netbsd.org/44977) they still shipped it. | ||
8170 | Even more unfortunately FreeBSD and later MacOS picked up this incompatible | ||
8171 | implementation. Try to detect this mess, and assume the only safe option | ||
8172 | if we're cross compiling. | ||
8173 | |||
8174 | OpenBSD 2.9 (2001): strnvis(char *dst, const char *src, size_t dlen, int flag); | ||
8175 | NetBSD 6.0 (2012): strnvis(char *dst, size_t dlen, const char *src, int flag); | ||
8176 | |||
8177 | ok djm@ | ||
8178 | |||
8179 | commit b0b48beab1b74100b61ecbadb9140c9ab4c2ea8c | ||
8180 | Author: Damien Miller <djm@mindrot.org> | ||
8181 | Date: Tue Aug 2 11:06:23 2016 +1000 | ||
8182 | |||
8183 | update recommended autoconf version | ||
8184 | |||
8185 | commit 23902e31dfd18c6d7bb41ccd73de3b5358a377da | ||
8186 | Author: Damien Miller <djm@mindrot.org> | ||
8187 | Date: Tue Aug 2 10:48:04 2016 +1000 | ||
8188 | |||
8189 | update config.guess and config.sub to current | ||
8190 | |||
8191 | upstream commit 562f3512b3911ba0c77a7f68214881d1f241f46e | ||
8192 | |||
8193 | commit dd1031b78b83083615b68d7163c44f4408635be2 | ||
8194 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8195 | Date: Tue Aug 2 10:01:52 2016 +1000 | ||
8196 | |||
8197 | Replace spaces with tabs. | ||
8198 | |||
8199 | Mechanically replace spaces with tabs in compat files not synced with | ||
8200 | OpenBSD. | ||
8201 | |||
8202 | commit c20dccb5614c5714f4155dda01bcdebf97cfae7e | ||
8203 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8204 | Date: Tue Aug 2 09:44:25 2016 +1000 | ||
8205 | |||
8206 | Strip trailing whitespace. | ||
8207 | |||
8208 | Mechanically strip trailing whitespace on files not synced with OpenBSD | ||
8209 | (or in the case of bsd-snprint.c, rsync). | ||
8210 | |||
8211 | commit 30f9bd1c0963c23bfba8468dfd26aa17609ba42f | ||
8212 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8213 | Date: Tue Aug 2 09:06:27 2016 +1000 | ||
8214 | |||
8215 | Repair $OpenBSD markers. | ||
8216 | |||
8217 | commit 9715d4ad4b53877ec23dc8681dd7a405de9419a6 | ||
8218 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8219 | Date: Tue Aug 2 09:02:42 2016 +1000 | ||
8220 | |||
8221 | Repair $OpenBSD marker. | ||
8222 | |||
8223 | commit cf3e0be7f5828a5e5f6c296a607d20be2f07d60c | ||
8224 | Author: Tim Rice <tim@multitalents.net> | ||
8225 | Date: Mon Aug 1 14:31:52 2016 -0700 | ||
8226 | |||
8227 | modified: configure.ac opensshd.init.in | ||
8228 | Skip generating missing RSA1 key on startup unless ssh1 support is enabled. | ||
8229 | Spotted by Jean-Pierre Radley | ||
8230 | |||
8231 | commit 99522ba7ec6963a05c04a156bf20e3ba3605987c | ||
8232 | Author: Damien Miller <djm@mindrot.org> | ||
8233 | Date: Thu Jul 28 08:54:27 2016 +1000 | ||
8234 | |||
8235 | define _OPENBSD_SOURCE for reallocarray on NetBSD | ||
8236 | |||
8237 | Report by and debugged with Hisashi T Fujinaka, dtucker nailed | ||
8238 | the problem (lack of prototype causing return type confusion). | ||
8239 | |||
8240 | commit 3e1e076550c27c6bbdddf36d8f42bd79fbaaa187 | ||
8241 | Author: Damien Miller <djm@mindrot.org> | ||
8242 | Date: Wed Jul 27 08:25:42 2016 +1000 | ||
8243 | |||
8244 | KNF | ||
8245 | |||
8246 | commit d99ee9c4e5e217e7d05eeec84e9ce641f4675331 | ||
8247 | Author: Damien Miller <djm@mindrot.org> | ||
8248 | Date: Wed Jul 27 08:25:23 2016 +1000 | ||
8249 | |||
8250 | Linux auditing also needs packet.h | ||
8251 | |||
8252 | commit 393bd381a45884b589baa9aed4394f1d250255ca | ||
8253 | Author: Damien Miller <djm@mindrot.org> | ||
8254 | Date: Wed Jul 27 08:18:05 2016 +1000 | ||
8255 | |||
8256 | fix auditing on Linux | ||
8257 | |||
8258 | get_remote_ipaddr() was replaced with ssh_remote_ipaddr() | ||
8259 | |||
8260 | commit 80e766fb089de4f3c92b1600eb99e9495e37c992 | ||
8261 | Author: Damien Miller <djm@mindrot.org> | ||
8262 | Date: Sun Jul 24 21:50:13 2016 +1000 | ||
8263 | |||
8264 | crank version numbers | ||
8265 | |||
8266 | commit b1a478792d458f2e938a302e64bab2b520edc1b3 | ||
8267 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8268 | Date: Sun Jul 24 11:45:36 2016 +0000 | ||
8269 | |||
8270 | upstream commit | ||
8271 | |||
8272 | openssh-7.3 | ||
8273 | |||
8274 | Upstream-ID: af106a7eb665f642648cf1993e162c899f358718 | ||
8275 | |||
8276 | commit 353766e0881f069aeca30275ab706cd60a1a8fdd | ||
8277 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8278 | Date: Sat Jul 23 16:14:42 2016 +1000 | ||
8279 | |||
8280 | Move Cygwin IPPORT_RESERVED overrride to defines.h | ||
8281 | |||
8282 | Patch from vinschen at redhat.com. | ||
8283 | |||
8284 | commit 368dd977ae07afb93f4ecea23615128c95ab2b32 | ||
8285 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8286 | Date: Sat Jul 23 02:54:08 2016 +0000 | ||
8287 | |||
8288 | upstream commit | ||
8289 | |||
8290 | fix pledge violation with ssh -f; reported by Valentin | ||
8291 | Kozamernik ok dtucker@ | ||
8292 | |||
8293 | Upstream-ID: a61db7988db88d9dac3c4dd70e18876a8edf84aa | ||
8294 | |||
8295 | commit f00211e3c6d24d6ea2b64b4b1209f671f6c1d42e | ||
8296 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8297 | Date: Fri Jul 22 07:00:46 2016 +0000 | ||
8298 | |||
8299 | upstream commit | ||
8300 | |||
8301 | improve wording; suggested by jmc@ | ||
8302 | |||
8303 | Upstream-ID: 55cb0a24c8e0618b3ceec80998dc82c85db2d2f8 | ||
8304 | |||
8305 | commit 83cbca693c3b0719270e6a0f2efe3f9ee93a65b8 | ||
8306 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
8307 | Date: Fri Jul 22 05:46:11 2016 +0000 | ||
8308 | |||
8309 | upstream commit | ||
8310 | |||
8311 | Lower loglevel for "Authenticated with partial success" | ||
8312 | message similar to other similar level. bz#2599, patch from cgallek at | ||
8313 | gmail.com, ok markus@ | ||
8314 | |||
8315 | Upstream-ID: 3faab814e947dc7b2e292edede23e94c608cb4dd | ||
8316 | |||
8317 | commit 10358abd087ab228b7ce2048efc4f3854a9ab9a6 | ||
8318 | Author: Damien Miller <djm@mindrot.org> | ||
8319 | Date: Fri Jul 22 14:06:36 2016 +1000 | ||
8320 | |||
8321 | retry waitpid on EINTR failure | ||
8322 | |||
8323 | patch from Jakub Jelen on bz#2581; ok dtucker@ | ||
8324 | |||
8325 | commit da88a70a89c800e74ea8e5661ffa127a3cc79a92 | ||
8326 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8327 | Date: Fri Jul 22 03:47:36 2016 +0000 | ||
8328 | |||
8329 | upstream commit | ||
8330 | |||
8331 | constify a few functions' arguments; patch from Jakub | ||
8332 | Jelen bz#2581 | ||
8333 | |||
8334 | Upstream-ID: f2043f51454ea37830ff6ad60c8b32b4220f448d | ||
8335 | |||
8336 | commit c36d91bd4ebf767f310f7cea88d61d1c15f53ddf | ||
8337 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8338 | Date: Fri Jul 22 03:39:13 2016 +0000 | ||
8339 | |||
8340 | upstream commit | ||
8341 | |||
8342 | move debug("%p", key) to before key is free'd; probable | ||
8343 | undefined behaviour on strict compilers; reported by Jakub Jelen bz#2581 | ||
8344 | |||
8345 | Upstream-ID: 767f323e1f5819508a0e35e388ec241bac2f953a | ||
8346 | |||
8347 | commit 286f5a77c3bfec1e8892ca268087ac885ac871bf | ||
8348 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8349 | Date: Fri Jul 22 03:35:11 2016 +0000 | ||
8350 | |||
8351 | upstream commit | ||
8352 | |||
8353 | reverse the order in which -J/JumpHost proxies are visited to | ||
8354 | be more intuitive and document | ||
8355 | |||
8356 | reported by and manpage bits naddy@ | ||
8357 | |||
8358 | Upstream-ID: 3a68fd6a841fd6cf8cedf6552a9607ba99df179a | ||
8359 | |||
8360 | commit fcd135c9df440bcd2d5870405ad3311743d78d97 | ||
8361 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
8362 | Date: Thu Jul 21 01:39:35 2016 +0000 | ||
8363 | |||
8364 | upstream commit | ||
8365 | |||
8366 | Skip passwords longer than 1k in length so clients can't | ||
8367 | easily DoS sshd by sending very long passwords, causing it to spend CPU | ||
8368 | hashing them. feedback djm@, ok markus@. | ||
8369 | |||
8370 | Brought to our attention by tomas.kuthan at oracle.com, shilei-c at | ||
8371 | 360.cn and coredump at autistici.org | ||
8372 | |||
8373 | Upstream-ID: d0af7d4a2190b63ba1d38eec502bc4be0be9e333 | ||
8374 | |||
8375 | commit 324583e8fb3935690be58790425793df619c6d4d | ||
8376 | Author: naddy@openbsd.org <naddy@openbsd.org> | ||
8377 | Date: Wed Jul 20 10:45:27 2016 +0000 | ||
8378 | |||
8379 | upstream commit | ||
8380 | |||
8381 | Do not clobber the global jump_host variables when | ||
8382 | parsing an inactive configuration. ok djm@ | ||
8383 | |||
8384 | Upstream-ID: 5362210944d91417d5976346d41ac0b244350d31 | ||
8385 | |||
8386 | commit 32d921c323b989d28405e78d0a8923d12913d737 | ||
8387 | Author: jmc@openbsd.org <jmc@openbsd.org> | ||
8388 | Date: Tue Jul 19 12:59:16 2016 +0000 | ||
8389 | |||
8390 | upstream commit | ||
8391 | |||
8392 | tweak previous; | ||
8393 | |||
8394 | Upstream-ID: f3c1a5b3f05dff366f60c028728a2b43f15ff534 | ||
8395 | |||
8396 | commit d7eabc86fa049a12ba2c3fb198bd1d51b37f7025 | ||
8397 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
8398 | Date: Tue Jul 19 11:38:53 2016 +0000 | ||
8399 | |||
8400 | upstream commit | ||
8401 | |||
8402 | Allow wildcard for PermitOpen hosts as well as ports. | ||
8403 | bz#2582, patch from openssh at mzpqnxow.com and jjelen at redhat.com. ok | ||
8404 | markus@ | ||
8405 | |||
8406 | Upstream-ID: af0294e9b9394c4e16e991424ca0a47a7cc605f2 | ||
8407 | |||
8408 | commit b98a2a8348e907b3d71caafd80f0be8fdd075943 | ||
8409 | Author: markus@openbsd.org <markus@openbsd.org> | ||
8410 | Date: Mon Jul 18 11:35:33 2016 +0000 | ||
8411 | |||
8412 | upstream commit | ||
8413 | |||
8414 | Reduce timing attack against obsolete CBC modes by always | ||
8415 | computing the MAC over a fixed size of data. Reported by Jean Paul | ||
8416 | Degabriele, Kenny Paterson, Torben Hansen and Martin Albrecht. ok djm@ | ||
8417 | |||
8418 | Upstream-ID: f20a13279b00ba0afbacbcc1f04e62e9d41c2912 | ||
8419 | |||
8420 | commit dbf788b4d9d9490a5fff08a7b09888272bb10fcc | ||
8421 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8422 | Date: Thu Jul 21 14:17:31 2016 +1000 | ||
8423 | |||
8424 | Search users for one with a valid salt. | ||
8425 | |||
8426 | If the root account is locked (eg password "!!" or "*LK*") keep looking | ||
8427 | until we find a user with a valid salt to use for crypting passwords of | ||
8428 | invalid users. ok djm@ | ||
8429 | |||
8430 | commit e8b58f48fbb1b524fb4f0d4865fa0005d6a4b782 | ||
8431 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8432 | Date: Mon Jul 18 17:22:49 2016 +1000 | ||
8433 | |||
8434 | Explicitly specify source files for regress tools. | ||
8435 | |||
8436 | Since adding $(REGRESSLIBS), $? is wrong because it includes only the | ||
8437 | changed source files. $< seems like it'd be right however it doesn't | ||
8438 | seem to work on some non-GNU makes, so do what works everywhere. | ||
8439 | |||
8440 | commit eac1bbd06872c273f16ac0f9976b0aef026b701b | ||
8441 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8442 | Date: Mon Jul 18 17:12:22 2016 +1000 | ||
8443 | |||
8444 | Conditionally include err.h. | ||
8445 | |||
8446 | commit 0a454147568746c503f669e1ba861f76a2e7a585 | ||
8447 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8448 | Date: Mon Jul 18 16:26:26 2016 +1000 | ||
8449 | |||
8450 | Remove local implementation of err, errx. | ||
8451 | |||
8452 | We now have a shared implementation in libopenbsd-compat. | ||
8453 | |||
8454 | commit eb999a4590846ba4d56ddc90bd07c23abfbab7b1 | ||
8455 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8456 | Date: Mon Jul 18 06:08:01 2016 +0000 | ||
8457 | |||
8458 | upstream commit | ||
8459 | |||
8460 | Add some unsigned overflow checks for extra_pad. None of | ||
8461 | these are reachable with the amount of padding that we use internally. | ||
8462 | bz#2566, pointed out by Torben Hansen. ok markus@ | ||
8463 | |||
8464 | Upstream-ID: 4d4be8450ab2fc1b852d5884339f8e8c31c3fd76 | ||
8465 | |||
8466 | commit c71ba790c304545464bb494de974cdf0f4b5cf1e | ||
8467 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8468 | Date: Mon Jul 18 15:43:25 2016 +1000 | ||
8469 | |||
8470 | Add dependency on libs for unit tests. | ||
8471 | |||
8472 | Makes "./configure && make tests" work again. ok djm@ | ||
8473 | |||
8474 | commit 8199d0311aea3e6fd0284c9025e7a83f4ece79e8 | ||
8475 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8476 | Date: Mon Jul 18 13:47:39 2016 +1000 | ||
8477 | |||
8478 | Correct location for kexfuzz in clean target. | ||
8479 | |||
8480 | commit 01558b7b07af43da774d3a11a5c51fa9c310849d | ||
8481 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8482 | Date: Mon Jul 18 09:33:25 2016 +1000 | ||
8483 | |||
8484 | Handle PAM_MAXTRIES from modules. | ||
8485 | |||
8486 | bz#2249: handle the case where PAM returns PAM_MAXTRIES by ceasing to offer | ||
8487 | password and keyboard-interative authentication methods. Should prevent | ||
8488 | "sshd ignoring max retries" warnings in the log. ok djm@ | ||
8489 | |||
8490 | It probably won't trigger with keyboard-interactive in the default | ||
8491 | configuration because the retry counter is stored in module-private | ||
8492 | storage which goes away with the sshd PAM process (see bz#688). On the | ||
8493 | other hand, those cases probably won't log a warning either. | ||
8494 | |||
8495 | commit 65c6c6b567ab5ab12945a5ad8e0ab3a8c26119cc | ||
8496 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8497 | Date: Sun Jul 17 04:20:16 2016 +0000 | ||
8498 | |||
8499 | upstream commit | ||
8500 | |||
8501 | support UTF-8 characters in ssh(1) banners using | ||
8502 | schwarze@'s safe fmprintf printer; bz#2058 | ||
8503 | |||
8504 | feedback schwarze@ ok dtucker@ | ||
8505 | |||
8506 | Upstream-ID: a72ce4e3644c957643c9524eea2959e41b91eea7 | ||
8507 | |||
8508 | commit e4eb7d910976fbfc7ce3e90c95c11b07b483d0d7 | ||
8509 | Author: jmc@openbsd.org <jmc@openbsd.org> | ||
8510 | Date: Sat Jul 16 06:57:55 2016 +0000 | ||
8511 | |||
8512 | upstream commit | ||
8513 | |||
8514 | - add proxyjump to the options list - formatting fixes - | ||
8515 | update usage() | ||
8516 | |||
8517 | ok djm | ||
8518 | |||
8519 | Upstream-ID: 43d318e14ce677a2eec8f21ef5ba2f9f68a59457 | ||
8520 | |||
8521 | commit af1f084857621f14bd9391aba8033d35886c2455 | ||
8522 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
8523 | Date: Fri Jul 15 05:01:58 2016 +0000 | ||
8524 | |||
8525 | upstream commit | ||
8526 | |||
8527 | Reduce the syslog level of some relatively common protocol | ||
8528 | events from LOG_CRIT by replacing fatal() calls with logdie(). Part of | ||
8529 | bz#2585, ok djm@ | ||
8530 | |||
8531 | Upstream-ID: 9005805227c94edf6ac02a160f0e199638d288e5 | ||
8532 | |||
8533 | commit bd5f2b78b69cf38d6049a0de445a79c8595e4a1f | ||
8534 | Author: Damien Miller <djm@mindrot.org> | ||
8535 | Date: Fri Jul 15 19:14:48 2016 +1000 | ||
8536 | |||
8537 | missing openssl/dh.h | ||
8538 | |||
8539 | commit 4a984fd342effe5f0aad874a0d538c4322d973c0 | ||
8540 | Author: Damien Miller <djm@mindrot.org> | ||
8541 | Date: Fri Jul 15 18:47:07 2016 +1000 | ||
8542 | |||
8543 | cast to avoid type warning in error message | ||
8544 | |||
8545 | commit 5abfb15ced985c340359ae7fb65a625ed3692b3e | ||
8546 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8547 | Date: Fri Jul 15 14:48:30 2016 +1000 | ||
8548 | |||
8549 | Move VA_COPY macro into compat header. | ||
8550 | |||
8551 | Some AIX compilers unconditionally undefine va_copy but don't set it back | ||
8552 | to an internal function, causing link errors. In some compat code we | ||
8553 | already use VA_COPY instead so move the two existing instances into the | ||
8554 | shared header and use for sshbuf-getput-basic.c too. Should fix building | ||
8555 | with at lease some versions of AIX's compiler. bz#2589, ok djm@ | ||
8556 | |||
8557 | commit 832b7443b7a8e181c95898bc5d73497b7190decd | ||
8558 | Author: Damien Miller <djm@mindrot.org> | ||
8559 | Date: Fri Jul 15 14:45:34 2016 +1000 | ||
8560 | |||
8561 | disable ciphers not supported by OpenSSL | ||
8562 | |||
8563 | bz#2466 ok dtucker@ | ||
8564 | |||
8565 | commit 5fbe93fc6fbb2fe211e035703dec759d095e3dd8 | ||
8566 | Author: Damien Miller <djm@mindrot.org> | ||
8567 | Date: Fri Jul 15 13:54:31 2016 +1000 | ||
8568 | |||
8569 | add a --disable-pkcs11 knob | ||
8570 | |||
8571 | commit 679ce88ec2a8e2fe6515261c489e8c1449bb9da9 | ||
8572 | Author: Damien Miller <djm@mindrot.org> | ||
8573 | Date: Fri Jul 15 13:44:38 2016 +1000 | ||
8574 | |||
8575 | fix newline escaping for unsupported_algorithms | ||
8576 | |||
8577 | The hmac-ripemd160 was incorrect and could lead to broken | ||
8578 | Makefiles on systems that lacked support for it, but I made | ||
8579 | all the others consistent too. | ||
8580 | |||
8581 | commit ed877ef653847d056bb433975d731b7a1132a979 | ||
8582 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8583 | Date: Fri Jul 15 00:24:30 2016 +0000 | ||
8584 | |||
8585 | upstream commit | ||
8586 | |||
8587 | Add a ProxyJump ssh_config(5) option and corresponding -J | ||
8588 | ssh(1) command-line flag to allow simplified indirection through a SSH | ||
8589 | bastion or "jump host". | ||
8590 | |||
8591 | These options construct a proxy command that connects to the | ||
8592 | specified jump host(s) (more than one may be specified) and uses | ||
8593 | port-forwarding to establish a connection to the next destination. | ||
8594 | |||
8595 | This codifies the safest way of indirecting connections through SSH | ||
8596 | servers and makes it easy to use. | ||
8597 | |||
8598 | ok markus@ | ||
8599 | |||
8600 | Upstream-ID: fa899cb8b26d889da8f142eb9774c1ea36b04397 | ||
8601 | |||
8602 | commit 5c02dd126206a26785379e80f2d3848e4470b711 | ||
8603 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8604 | Date: Fri Jul 15 12:56:39 2016 +1000 | ||
8605 | |||
8606 | Map umac_ctx struct name too. | ||
8607 | |||
8608 | Prevents size mismatch linker warnings on Solaris 11. | ||
8609 | |||
8610 | commit 283b97ff33ea2c641161950849931bd578de6946 | ||
8611 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8612 | Date: Fri Jul 15 13:49:44 2016 +1000 | ||
8613 | |||
8614 | Mitigate timing of disallowed users PAM logins. | ||
8615 | |||
8616 | When sshd decides to not allow a login (eg PermitRootLogin=no) and | ||
8617 | it's using PAM, it sends a fake password to PAM so that the timing for | ||
8618 | the failure is not noticeably different whether or not the password | ||
8619 | is correct. This behaviour can be detected by sending a very long | ||
8620 | password string which is slower to hash than the fake password. | ||
8621 | |||
8622 | Mitigate by constructing an invalid password that is the same length | ||
8623 | as the one from the client and thus takes the same time to hash. | ||
8624 | Diff from djm@ | ||
8625 | |||
8626 | commit 9286875a73b2de7736b5e50692739d314cd8d9dc | ||
8627 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8628 | Date: Fri Jul 15 13:32:45 2016 +1000 | ||
8629 | |||
8630 | Determine appropriate salt for invalid users. | ||
8631 | |||
8632 | When sshd is processing a non-PAM login for a non-existent user it uses | ||
8633 | the string from the fakepw structure as the salt for crypt(3)ing the | ||
8634 | password supplied by the client. That string has a Blowfish prefix, so on | ||
8635 | systems that don't understand that crypt will fail fast due to an invalid | ||
8636 | salt, and even on those that do it may have significantly different timing | ||
8637 | from the hash methods used for real accounts (eg sha512). This allows | ||
8638 | user enumeration by, eg, sending large password strings. This was noted | ||
8639 | by EddieEzra.Harari at verint.com (CVE-2016-6210). | ||
8640 | |||
8641 | To mitigate, use the same hash algorithm that root uses for hashing | ||
8642 | passwords for users that do not exist on the system. ok djm@ | ||
8643 | |||
8644 | commit a162dd5e58ca5b224d7500abe35e1ef32b5de071 | ||
8645 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8646 | Date: Thu Jul 14 21:19:59 2016 +1000 | ||
8647 | |||
8648 | OpenSSL 1.1.x not currently supported. | ||
8649 | |||
8650 | commit 7df91b01fc558a33941c5c5f31abbcdc53a729fb | ||
8651 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8652 | Date: Thu Jul 14 12:25:24 2016 +1000 | ||
8653 | |||
8654 | Check for VIS_ALL. | ||
8655 | |||
8656 | If we don't have it, set BROKEN_STRNVIS to activate the compat replacement. | ||
8657 | |||
8658 | commit ee67716f61f1042d5e67f91c23707cca5dcdd7d0 | ||
8659 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
8660 | Date: Thu Jul 14 01:24:21 2016 +0000 | ||
8661 | |||
8662 | upstream commit | ||
8663 | |||
8664 | Correct equal in test. | ||
8665 | |||
8666 | Upstream-Regress-ID: 4e32f7a5c57a619c4e8766cb193be2a1327ec37a | ||
8667 | |||
8668 | commit 372807c2065c8572fdc6478b25cc5ac363743073 | ||
8669 | Author: tb@openbsd.org <tb@openbsd.org> | ||
8670 | Date: Mon Jul 11 21:38:13 2016 +0000 | ||
8671 | |||
8672 | upstream commit | ||
8673 | |||
8674 | Add missing "recvfd" pledge promise: Raf Czlonka reported | ||
8675 | ssh coredumps when Control* keywords were set in ssh_config. This patch also | ||
8676 | fixes similar problems with scp and sftp. | ||
8677 | |||
8678 | ok deraadt, looks good to millert | ||
8679 | |||
8680 | Upstream-ID: ca2099eade1ef3e87a79614fefa26a0297ad8a3b | ||
8681 | |||
8682 | commit e0453f3df64bf485c61c7eb6bd12893eee9fe2cd | ||
8683 | Author: tedu@openbsd.org <tedu@openbsd.org> | ||
8684 | Date: Mon Jul 11 03:19:44 2016 +0000 | ||
8685 | |||
8686 | upstream commit | ||
8687 | |||
8688 | obsolete note about fascistloggin is obsolete. ok djm | ||
8689 | dtucker | ||
8690 | |||
8691 | Upstream-ID: dae60df23b2bb0e89f42661ddd96a7b0d1b7215a | ||
8692 | |||
8693 | commit a2333584170a565adf4f209586772ef8053b10b8 | ||
8694 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8695 | Date: Thu Jul 14 10:59:09 2016 +1000 | ||
8696 | |||
8697 | Add compat code for missing wcwidth. | ||
8698 | |||
8699 | If we don't have wcwidth force fallback implementations of nl_langinfo | ||
8700 | and mbtowc. Based on advice from Ingo Schwarze. | ||
8701 | |||
8702 | commit 8aaec7050614494014c47510b7e94daf6e644c62 | ||
8703 | Author: Damien Miller <djm@mindrot.org> | ||
8704 | Date: Thu Jul 14 09:48:48 2016 +1000 | ||
8705 | |||
8706 | fix missing include for systems with err.h | ||
8707 | |||
8708 | commit 6310ef27a2567cda66d6cf0c1ad290ee1167f243 | ||
8709 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8710 | Date: Wed Jul 13 14:42:35 2016 +1000 | ||
8711 | |||
8712 | Move err.h replacements into compat lib. | ||
8713 | |||
8714 | Move implementations of err.h replacement functions into their own file | ||
8715 | in the libopenbsd-compat so we can use them in kexfuzz.c too. ok djm@ | ||
8716 | |||
8717 | commit f3f2cc8386868f51440c45210098f65f9787449a | ||
8718 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8719 | Date: Mon Jul 11 17:23:38 2016 +1000 | ||
8720 | |||
8721 | Check for wchar.h and langinfo.h | ||
8722 | |||
8723 | Wrap includes in the appropriate #ifdefs. | ||
8724 | |||
8725 | commit b9c50614eba9d90939b2b119b6e1b7e03b462278 | ||
8726 | Author: Damien Miller <djm@mindrot.org> | ||
8727 | Date: Fri Jul 8 13:59:13 2016 +1000 | ||
8728 | |||
8729 | whitelist more architectures for seccomp-bpf | ||
8730 | |||
8731 | bz#2590 - testing and patch from Jakub Jelen | ||
8732 | |||
8733 | commit 18813a32b6fd964037e0f5e1893cb4468ac6a758 | ||
8734 | Author: guenther@openbsd.org <guenther@openbsd.org> | ||
8735 | Date: Mon Jul 4 18:01:44 2016 +0000 | ||
8736 | |||
8737 | upstream commit | ||
8738 | |||
8739 | DEBUGLIBS has been broken since the gcc4 switch, so delete | ||
8740 | it. CFLAGS contains -g by default anyway | ||
8741 | |||
8742 | problem noted by Edgar Pettijohn (edgar (at) pettijohn-web.com) | ||
8743 | ok millert@ kettenis@ deraadt@ | ||
8744 | |||
8745 | Upstream-Regress-ID: 4a0bb72f95c63f2ae9daa8a040ac23914bddb542 | ||
8746 | |||
8747 | commit 6d31193d0baa3da339c196ac49625b7ba1c2ecc7 | ||
8748 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8749 | Date: Fri Jul 8 03:44:42 2016 +0000 | ||
8750 | |||
8751 | upstream commit | ||
8752 | |||
8753 | Improve crypto ordering for Encrypt-then-MAC (EtM) mode | ||
8754 | MAC algorithms. | ||
8755 | |||
8756 | Previously we were computing the MAC, decrypting the packet and then | ||
8757 | checking the MAC. This gave rise to the possibility of creating a | ||
8758 | side-channel oracle in the decryption step, though no such oracle has | ||
8759 | been identified. | ||
8760 | |||
8761 | This adds a mac_check() function that computes and checks the MAC in | ||
8762 | one pass, and uses it to advance MAC checking for EtM algorithms to | ||
8763 | before payload decryption. | ||
8764 | |||
8765 | Reported by Jean Paul Degabriele, Kenny Paterson, Torben Hansen and | ||
8766 | Martin Albrecht. feedback and ok markus@ | ||
8767 | |||
8768 | Upstream-ID: 1999bb67cab47dda5b10b80d8155fe83d4a1867b | ||
8769 | |||
8770 | commit 71f5598f06941f645a451948c4a5125c83828e1c | ||
8771 | Author: guenther@openbsd.org <guenther@openbsd.org> | ||
8772 | Date: Mon Jul 4 18:01:44 2016 +0000 | ||
8773 | |||
8774 | upstream commit | ||
8775 | |||
8776 | DEBUGLIBS has been broken since the gcc4 switch, so | ||
8777 | delete it. CFLAGS contains -g by default anyway | ||
8778 | |||
8779 | problem noted by Edgar Pettijohn (edgar (at) pettijohn-web.com) | ||
8780 | ok millert@ kettenis@ deraadt@ | ||
8781 | |||
8782 | Upstream-ID: 96c5054e3e1f170c6276902d5bc65bb3b87a2603 | ||
8783 | |||
8784 | commit e683fc6f1c8c7295648dbda679df8307786ec1ce | ||
8785 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
8786 | Date: Thu Jun 30 05:17:05 2016 +0000 | ||
8787 | |||
8788 | upstream commit | ||
8789 | |||
8790 | Explicitly check for 100% completion to avoid potential | ||
8791 | floating point rounding error, which could cause progressmeter to report 99% | ||
8792 | on completion. While there invert the test so the 100% case is clearer. with | ||
8793 | & ok djm@ | ||
8794 | |||
8795 | Upstream-ID: a166870c5878e422f3c71ff802e2ccd7032f715d | ||
8796 | |||
8797 | commit 772e6cec0ed740fc7db618dc30b4134f5a358b43 | ||
8798 | Author: jmc@openbsd.org <jmc@openbsd.org> | ||
8799 | Date: Wed Jun 29 17:14:28 2016 +0000 | ||
8800 | |||
8801 | upstream commit | ||
8802 | |||
8803 | sort the -o list; | ||
8804 | |||
8805 | Upstream-ID: 1a97465ede8790b4d47cb618269978e07f41f8ac | ||
8806 | |||
8807 | commit 46ecd19e554ccca15a7309cd1b6b44bc8e6b84af | ||
8808 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8809 | Date: Thu Jun 23 05:17:51 2016 +0000 | ||
8810 | |||
8811 | upstream commit | ||
8812 | |||
8813 | fix AuthenticationMethods during configuration re-parse; | ||
8814 | reported by Juan Francisco Cantero Hurtado | ||
8815 | |||
8816 | Upstream-ID: 8ffa1dac25c7577eca8238e825317ab20848f9b4 | ||
8817 | |||
8818 | commit 3147e7595d0f2f842a666c844ac53e6c7a253d7e | ||
8819 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8820 | Date: Sun Jun 19 07:48:02 2016 +0000 | ||
8821 | |||
8822 | upstream commit | ||
8823 | |||
8824 | revert 1.34; causes problems loading public keys | ||
8825 | |||
8826 | reported by semarie@ | ||
8827 | |||
8828 | Upstream-ID: b393794f8935c8b15d98a407fe7721c62d2ed179 | ||
8829 | |||
8830 | commit ad23a75509f4320d43f628c50f0817e3ad12bfa7 | ||
8831 | Author: jmc@openbsd.org <jmc@openbsd.org> | ||
8832 | Date: Fri Jun 17 06:33:30 2016 +0000 | ||
8833 | |||
8834 | upstream commit | ||
8835 | |||
8836 | grammar fix; | ||
8837 | |||
8838 | Upstream-ID: 5d5b21c80f1e81db367333ce0bb3e5874fb3e463 | ||
8839 | |||
8840 | commit 5e28b1a2a3757548b40018cc2493540a17c82e27 | ||
8841 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8842 | Date: Fri Jun 17 05:06:23 2016 +0000 | ||
8843 | |||
8844 | upstream commit | ||
8845 | |||
8846 | translate OpenSSL error codes to something more | ||
8847 | meaninful; bz#2522 reported by Jakub Jelen, ok dtucker@ | ||
8848 | |||
8849 | Upstream-ID: 4cb0795a366381724314e6515d57790c5930ffe5 | ||
8850 | |||
8851 | commit b64faeb5eda7eff8210c754d00464f9fe9d23de5 | ||
8852 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8853 | Date: Fri Jun 17 05:03:40 2016 +0000 | ||
8854 | |||
8855 | upstream commit | ||
8856 | |||
8857 | ban AuthenticationMethods="" and accept | ||
8858 | AuthenticationMethods=any for the default behaviour of not requiring multiple | ||
8859 | authentication | ||
8860 | |||
8861 | bz#2398 from Jakub Jelen; ok dtucker@ | ||
8862 | |||
8863 | Upstream-ID: fabd7f44d59e4518d241d0d01e226435cc23cf27 | ||
8864 | |||
8865 | commit 9816fc5daee5ca924dd5c4781825afbaab728877 | ||
8866 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
8867 | Date: Thu Jun 16 11:00:17 2016 +0000 | ||
8868 | |||
8869 | upstream commit | ||
8870 | |||
8871 | Include stdarg.h for va_copy as per man page. | ||
8872 | |||
8873 | Upstream-ID: 105d6b2f1af2fbd9d91c893c436ab121434470bd | ||
8874 | |||
8875 | commit b6cf84b51bc0f5889db48bf29a0c771954ade283 | ||
8876 | Author: jmc@openbsd.org <jmc@openbsd.org> | ||
8877 | Date: Thu Jun 16 06:10:45 2016 +0000 | ||
8878 | |||
8879 | upstream commit | ||
8880 | |||
8881 | keys stored in openssh format can have comments too; diff | ||
8882 | from yonas yanfa, tweaked a bit; | ||
8883 | |||
8884 | ok djm | ||
8885 | |||
8886 | Upstream-ID: 03d48536da6e51510d73ade6fcd44ace731ceb27 | ||
8887 | |||
8888 | commit aa37768f17d01974b6bfa481e5e83841b6c76f86 | ||
8889 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8890 | Date: Mon Jun 20 15:55:34 2016 +1000 | ||
8891 | |||
8892 | get_remote_name_or_ip inside LOGIN_NEEDS_UTMPX | ||
8893 | |||
8894 | Apply the same get_remote_name_or_ip -> session_get_remote_name_or_ip | ||
8895 | change as commit 95767262 to the code inside #ifdef LOGIN_NEEDS_UTMPX. | ||
8896 | Fixes build on AIX. | ||
8897 | |||
8898 | commit 009891afc8df37bc2101e15d1e0b6433cfb90549 | ||
8899 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8900 | Date: Fri Jun 17 14:34:09 2016 +1000 | ||
8901 | |||
8902 | Remove duplicate code from PAM. ok djm@ | ||
8903 | |||
8904 | commit e690fe85750e93fca1fb7c7c8587d4130a4f7aba | ||
8905 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
8906 | Date: Wed Jun 15 00:40:40 2016 +0000 | ||
8907 | |||
8908 | upstream commit | ||
8909 | |||
8910 | Remove "POSSIBLE BREAK-IN ATTEMPT!" from log message | ||
8911 | about forward and reverse DNS not matching. We haven't supported IP-based | ||
8912 | auth methods for a very long time so it's now misleading. part of bz#2585, | ||
8913 | ok markus@ | ||
8914 | |||
8915 | Upstream-ID: 5565ef0ee0599b27f0bd1d3bb1f8a323d8274e29 | ||
8916 | |||
8917 | commit 57b4ee04cad0d3e0fec1194753b0c4d31e39a1cd | ||
8918 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8919 | Date: Wed Jun 15 11:22:38 2016 +1000 | ||
8920 | |||
8921 | Move platform_disable_tracing into its own file. | ||
8922 | |||
8923 | Prevents link errors resolving the extern "options" when platform.o | ||
8924 | gets linked into ssh-agent when building --with-pam. | ||
8925 | |||
8926 | commit 78dc8e3724e30ee3e1983ce013e80277dc6ca070 | ||
8927 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8928 | Date: Tue Jun 14 13:55:12 2016 +1000 | ||
8929 | |||
8930 | Track skipped upstream commit IDs. | ||
8931 | |||
8932 | There are a small number of "upstream" commits that do not correspond to | ||
8933 | a file in -portable. This file tracks those so that we can reconcile | ||
8934 | OpenBSD and Portable to ensure that no commits are accidentally missed. | ||
8935 | |||
8936 | If you add something to .skipped-commit-ids please also add an upstream | ||
8937 | ID line in the following format when you commit it. | ||
8938 | |||
8939 | Upstream-ID: 321065a95a7ccebdd5fd08482a1e19afbf524e35 | ||
8940 | Upstream-ID: d4f699a421504df35254cf1c6f1a7c304fb907ca | ||
8941 | Upstream-ID: aafe246655b53b52bc32c8a24002bc262f4230f7 | ||
8942 | Upstream-ID: 8fa9cd1dee3c3339ae329cf20fb591db6d605120 | ||
8943 | Upstream-ID: f31327a48dd4103333cc53315ec53fe65ed8a17a | ||
8944 | Upstream-ID: edbfde98c40007b7752a4ac106095e060c25c1ef | ||
8945 | Upstream-ID: 052fd565e3ff2d8cec3bc957d1788f50c827f8e2 | ||
8946 | Upstream-ID: 7cf73737f357492776223da1c09179fa6ba74660 | ||
8947 | Upstream-ID: 180d84674be1344e45a63990d60349988187c1ae | ||
8948 | Upstream-ID: f6ae971186ba68d066cd102e57d5b0b2c211a5ee | ||
8949 | |||
8950 | commit 9f919d1a3219d476d6a662d18df058e1c4f36a6f | ||
8951 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8952 | Date: Tue Jun 14 13:51:01 2016 +1000 | ||
8953 | |||
8954 | Remove now-defunct .cvsignore files. ok djm | ||
8955 | |||
8956 | commit 68777faf271efb2713960605c748f6c8a4b26d55 | ||
8957 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
8958 | Date: Wed Jun 8 02:13:01 2016 +0000 | ||
8959 | |||
8960 | upstream commit | ||
8961 | |||
8962 | Back out rev 1.28 "Check min and max sizes sent by the | ||
8963 | client" change. It caused "key_verify failed for server_host_key" in clients | ||
8964 | that send a DH-GEX min value less that DH_GRP_MIN, eg old OpenSSH and PuTTY. | ||
8965 | ok djm@ | ||
8966 | |||
8967 | Upstream-ID: 452979d3ca5c1e9dff063287ea0a5314dd091f65 | ||
8968 | |||
8969 | commit a86ec4d0737ac5879223e7cd9d68c448df46e169 | ||
8970 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8971 | Date: Tue Jun 14 10:48:27 2016 +1000 | ||
8972 | |||
8973 | Use Solaris setpflags(__PROC_PROTECT, ...). | ||
8974 | |||
8975 | Where possible, use Solaris setpflags to disable process tracing on | ||
8976 | ssh-agent and sftp-server. bz#2584, based on a patch from huieying.lee | ||
8977 | at oracle.com, ok djm. | ||
8978 | |||
8979 | commit 0f916d39b039fdc0b5baf9b5ab0754c0f11ec573 | ||
8980 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8981 | Date: Tue Jun 14 10:43:53 2016 +1000 | ||
8982 | |||
8983 | Shorten prctl code a tiny bit. | ||
8984 | |||
8985 | commit 0fb7f5985351fbbcd2613d8485482c538e5123be | ||
8986 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8987 | Date: Thu Jun 9 16:23:07 2016 +1000 | ||
8988 | |||
8989 | Move prctl PR_SET_DUMPABLE into platform.c. | ||
8990 | |||
8991 | This should make it easier to add additional platform support such as | ||
8992 | Solaris (bz#2584). | ||
8993 | |||
8994 | commit e6508898c3cd838324ecfe1abd0eb8cf802e7106 | ||
8995 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
8996 | Date: Fri Jun 3 04:10:41 2016 +0000 | ||
8997 | |||
8998 | upstream commit | ||
8999 | |||
9000 | Add a test for ssh(1)'s config file parsing. | ||
9001 | |||
9002 | Upstream-Regress-ID: 558b7f4dc45cc3761cc3d3e889b9f3c5bc91e601 | ||
9003 | |||
9004 | commit ab0a536066dfa32def0bd7272c096ebb5eb25b11 | ||
9005 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
9006 | Date: Fri Jun 3 03:47:59 2016 +0000 | ||
9007 | |||
9008 | upstream commit | ||
9009 | |||
9010 | Add 'sshd' to the test ID as I'm about to add a similar | ||
9011 | set for ssh. | ||
9012 | |||
9013 | Upstream-Regress-ID: aea7a9c3bac638530165c801ce836875b228ae7a | ||
9014 | |||
9015 | commit a5577c1ed3ecdfe4b7b1107c526cae886fc91afb | ||
9016 | Author: schwarze@openbsd.org <schwarze@openbsd.org> | ||
9017 | Date: Mon May 30 12:14:08 2016 +0000 | ||
9018 | |||
9019 | upstream commit | ||
9020 | |||
9021 | stricter malloc.conf(5) options for utf8 tests | ||
9022 | |||
9023 | Upstream-Regress-ID: 111efe20a0fb692fa1a987f6e823310f9b25abf6 | ||
9024 | |||
9025 | commit 75f0844b4f29d62ec3a5e166d2ee94b02df819fc | ||
9026 | Author: schwarze@openbsd.org <schwarze@openbsd.org> | ||
9027 | Date: Mon May 30 12:05:56 2016 +0000 | ||
9028 | |||
9029 | upstream commit | ||
9030 | |||
9031 | Fix two rare edge cases: 1. If vasprintf() returns < 0, | ||
9032 | do not access a NULL pointer in snmprintf(), and do not free() the pointer | ||
9033 | returned from vasprintf() because on some systems other than OpenBSD, it | ||
9034 | might be a bogus pointer. 2. If vasprintf() returns == 0, return 0 and "" | ||
9035 | rather than -1 and NULL. | ||
9036 | |||
9037 | Besides, free(dst) is pointless after failure (not a bug). | ||
9038 | |||
9039 | One half OK martijn@, the other half OK deraadt@; | ||
9040 | committing quickly before people get hurt. | ||
9041 | |||
9042 | Upstream-Regress-ID: b164f20923812c9bac69856dbc1385eb1522cba4 | ||
9043 | |||
9044 | commit 016881eb33a7948028848c90f4c7ac42e3af0e87 | ||
9045 | Author: schwarze@openbsd.org <schwarze@openbsd.org> | ||
9046 | Date: Thu May 26 19:14:25 2016 +0000 | ||
9047 | |||
9048 | upstream commit | ||
9049 | |||
9050 | test the new utf8 module | ||
9051 | |||
9052 | Upstream-Regress-ID: c923d05a20e84e4ef152cbec947fdc4ce6eabbe3 | ||
9053 | |||
9054 | commit d4219028bdef448e089376f3afe81ef6079da264 | ||
9055 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
9056 | Date: Tue May 3 15:30:46 2016 +0000 | ||
9057 | |||
9058 | upstream commit | ||
9059 | |||
9060 | Set umask to prevent "Bad owner or permissions" errors. | ||
9061 | |||
9062 | Upstream-Regress-ID: 8fdf2fc4eb595ccd80c443f474d639f851145417 | ||
9063 | |||
9064 | commit 07d5608bb237e9b3fe86a2aeaa429392230faebf | ||
9065 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9066 | Date: Tue May 3 14:41:04 2016 +0000 | ||
9067 | |||
9068 | upstream commit | ||
9069 | |||
9070 | support doas | ||
9071 | |||
9072 | Upstream-Regress-ID: 8d5572b27ea810394eeda432d8b4e9e1064a7c38 | ||
9073 | |||
9074 | commit 01cabf10adc7676cba5f40536a34d3b246edb73f | ||
9075 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9076 | Date: Tue May 3 13:48:33 2016 +0000 | ||
9077 | |||
9078 | upstream commit | ||
9079 | |||
9080 | unit tests for sshbuf_dup_string() | ||
9081 | |||
9082 | Upstream-Regress-ID: 7521ff150dc7f20511d1c2c48fd3318e5850a96d | ||
9083 | |||
9084 | commit 6915f1698e3d1dd4e22eac20f435e1dfc1d46372 | ||
9085 | Author: jmc@openbsd.org <jmc@openbsd.org> | ||
9086 | Date: Fri Jun 3 06:44:12 2016 +0000 | ||
9087 | |||
9088 | upstream commit | ||
9089 | |||
9090 | tweak previous; | ||
9091 | |||
9092 | Upstream-ID: 92979f1a0b63e041a0e5b08c9ed0ba9b683a3698 | ||
9093 | |||
9094 | commit 0cb2f4c2494b115d0f346ed2d8b603ab3ba643f4 | ||
9095 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
9096 | Date: Fri Jun 3 04:09:38 2016 +0000 | ||
9097 | |||
9098 | upstream commit | ||
9099 | |||
9100 | Allow ExitOnForwardFailure and ClearAllForwardings to be | ||
9101 | overridden when using ssh -W (but still default to yes in that case). | ||
9102 | bz#2577, ok djm@. | ||
9103 | |||
9104 | Upstream-ID: 4b20c419e93ca11a861c81c284090cfabc8c54d4 | ||
9105 | |||
9106 | commit 8543ff3f5020fe659839b15f05b8c522bde6cee5 | ||
9107 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
9108 | Date: Fri Jun 3 03:14:41 2016 +0000 | ||
9109 | |||
9110 | upstream commit | ||
9111 | |||
9112 | Move the host and port used by ssh -W into the Options | ||
9113 | struct. This will make future changes a bit easier. ok djm@ | ||
9114 | |||
9115 | Upstream-ID: 151bce5ecab2fbedf0d836250a27968d30389382 | ||
9116 | |||
9117 | commit 6b87311d3acdc460f926b2c40f4c4f3fd345f368 | ||
9118 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
9119 | Date: Wed Jun 1 04:19:49 2016 +0000 | ||
9120 | |||
9121 | upstream commit | ||
9122 | |||
9123 | Check min and max sizes sent by the client against what | ||
9124 | we support before passing them to the monitor. ok djm@ | ||
9125 | |||
9126 | Upstream-ID: 750627e8117084215412bff00a25b1586ab17ece | ||
9127 | |||
9128 | commit 564cd2a8926ccb1dca43a535073540935b5e0373 | ||
9129 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
9130 | Date: Tue May 31 23:46:14 2016 +0000 | ||
9131 | |||
9132 | upstream commit | ||
9133 | |||
9134 | Ensure that the client's proposed DH-GEX max value is at | ||
9135 | least as big as the minimum the server will accept. ok djm@ | ||
9136 | |||
9137 | Upstream-ID: b4b84fa04aab2de7e79a6fee4a6e1c189c0fe775 | ||
9138 | |||
9139 | commit df820722e40309c9b3f360ea4ed47a584ed74333 | ||
9140 | Author: Darren Tucker <dtucker@zip.com.au> | ||
9141 | Date: Mon Jun 6 11:36:13 2016 +1000 | ||
9142 | |||
9143 | Add compat bits to utf8.c. | ||
9144 | |||
9145 | commit 05c6574652571becfe9d924226c967a3f4b3f879 | ||
9146 | Author: Darren Tucker <dtucker@zip.com.au> | ||
9147 | Date: Mon Jun 6 11:33:43 2016 +1000 | ||
9148 | |||
9149 | Fix utf->utf8 typo. | ||
9150 | |||
9151 | commit 6c1717190b4d5ddd729cd9e24e8ed71ed4f087ce | ||
9152 | Author: schwarze@openbsd.org <schwarze@openbsd.org> | ||
9153 | Date: Mon May 30 18:34:41 2016 +0000 | ||
9154 | |||
9155 | upstream commit | ||
9156 | |||
9157 | Backout rev. 1.43 for now. | ||
9158 | |||
9159 | The function update_progress_meter() calls refresh_progress_meter() | ||
9160 | which calls snmprintf() which calls malloc(); but update_progress_meter() | ||
9161 | acts as the SIGALRM signal handler. | ||
9162 | |||
9163 | "malloc(): error: recursive call" reported by sobrado@. | ||
9164 | |||
9165 | Upstream-ID: aaae57989431e5239c101f8310f74ccc83aeb93e | ||
9166 | |||
9167 | commit cd9e1eabeb4137182200035ab6fa4522f8d24044 | ||
9168 | Author: schwarze@openbsd.org <schwarze@openbsd.org> | ||
9169 | Date: Mon May 30 12:57:21 2016 +0000 | ||
9170 | |||
9171 | upstream commit | ||
9172 | |||
9173 | Even when only writing an unescaped character, the dst | ||
9174 | buffer may need to grow, or it would be overrun; issue found by tb@ with | ||
9175 | malloc.conf(5) 'C'. | ||
9176 | |||
9177 | While here, reserve an additional byte for the terminating NUL | ||
9178 | up front such that we don't have to realloc() later just for that. | ||
9179 | |||
9180 | OK tb@ | ||
9181 | |||
9182 | Upstream-ID: 30ebcc0c097c4571b16f0a78b44969f170db0cff | ||
9183 | |||
9184 | commit ac284a355f8065eaef2a16f446f3c44cdd17371d | ||
9185 | Author: schwarze@openbsd.org <schwarze@openbsd.org> | ||
9186 | Date: Mon May 30 12:05:56 2016 +0000 | ||
9187 | |||
9188 | upstream commit | ||
9189 | |||
9190 | Fix two rare edge cases: 1. If vasprintf() returns < 0, | ||
9191 | do not access a NULL pointer in snmprintf(), and do not free() the pointer | ||
9192 | returned from vasprintf() because on some systems other than OpenBSD, it | ||
9193 | might be a bogus pointer. 2. If vasprintf() returns == 0, return 0 and "" | ||
9194 | rather than -1 and NULL. | ||
9195 | |||
9196 | Besides, free(dst) is pointless after failure (not a bug). | ||
9197 | |||
9198 | One half OK martijn@, the other half OK deraadt@; | ||
9199 | committing quickly before people get hurt. | ||
9200 | |||
9201 | Upstream-ID: b7bcd2e82fc168a8eff94e41f5db336ed986fed0 | ||
9202 | |||
9203 | commit 0e059cdf5fd86297546c63fa8607c24059118832 | ||
9204 | Author: schwarze@openbsd.org <schwarze@openbsd.org> | ||
9205 | Date: Wed May 25 23:48:45 2016 +0000 | ||
9206 | |||
9207 | upstream commit | ||
9208 | |||
9209 | To prevent screwing up terminal settings when printing to | ||
9210 | the terminal, for ASCII and UTF-8, escape bytes not forming characters and | ||
9211 | bytes forming non-printable characters with vis(3) VIS_OCTAL. For other | ||
9212 | character sets, abort printing of the current string in these cases. In | ||
9213 | particular, * let scp(1) respect the local user's LC_CTYPE locale(1); * | ||
9214 | sanitize data received from the remote host; * sanitize filenames, usernames, | ||
9215 | and similar data even locally; * take character display widths into account | ||
9216 | for the progressmeter. | ||
9217 | |||
9218 | This is believed to be sufficient to keep the local terminal safe | ||
9219 | on OpenBSD, but bad things can still happen on other systems with | ||
9220 | state-dependent locales because many places in the code print | ||
9221 | unencoded ASCII characters into the output stream. | ||
9222 | |||
9223 | Using feedback from djm@ and martijn@, | ||
9224 | various aspects discussed with many others. | ||
9225 | |||
9226 | deraadt@ says it should go in now, i probably already hesitated too long | ||
9227 | |||
9228 | Upstream-ID: e66afbc94ee396ddcaffd433b9a3b80f387647e0 | ||
9229 | |||
9230 | commit 8c02e3639acefe1e447e293dbe23a0917abd3734 | ||
9231 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
9232 | Date: Tue May 24 04:43:45 2016 +0000 | ||
9233 | |||
9234 | upstream commit | ||
9235 | |||
9236 | KNF compression proposal and simplify the client side a | ||
9237 | little. ok djm@ | ||
9238 | |||
9239 | Upstream-ID: aa814b694efe9e5af8a26e4c80a05526ae6d6605 | ||
9240 | |||
9241 | commit 7ec4946fb686813eb5f8c57397e465f5485159f4 | ||
9242 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
9243 | Date: Tue May 24 02:31:57 2016 +0000 | ||
9244 | |||
9245 | upstream commit | ||
9246 | |||
9247 | Back out 'plug memleak'. | ||
9248 | |||
9249 | Upstream-ID: 4faacdde136c24a961e24538de373660f869dbc0 | ||
9250 | |||
9251 | commit 82f24c3ddc52053aeb7beb3332fa94c92014b0c5 | ||
9252 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9253 | Date: Mon May 23 23:30:50 2016 +0000 | ||
9254 | |||
9255 | upstream commit | ||
9256 | |||
9257 | prefer agent-hosted keys to keys from PKCS#11; ok markus | ||
9258 | |||
9259 | Upstream-ID: 7417f7653d58d6306d9f8c08d0263d050e2fd8f4 | ||
9260 | |||
9261 | commit a0cb7778fbc9b43458f7072eb68dd858766384d1 | ||
9262 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
9263 | Date: Mon May 23 00:17:27 2016 +0000 | ||
9264 | |||
9265 | upstream commit | ||
9266 | |||
9267 | Plug mem leak in filter_proposal. ok djm@ | ||
9268 | |||
9269 | Upstream-ID: bf968da7cfcea2a41902832e7d548356a4e2af34 | ||
9270 | |||
9271 | commit ae9c0d4d5c581b3040d1f16b5c5f4b1cd1616743 | ||
9272 | Author: Darren Tucker <dtucker@zip.com.au> | ||
9273 | Date: Fri Jun 3 16:03:44 2016 +1000 | ||
9274 | |||
9275 | Update vis.h and vis.c from OpenBSD. | ||
9276 | |||
9277 | This will be needed for the upcoming utf8 changes. | ||
9278 | |||
9279 | commit e1d93705f8f48f519433d6ca9fc3d0abe92a1b77 | ||
9280 | Author: Tim Rice <tim@multitalents.net> | ||
9281 | Date: Tue May 31 11:13:22 2016 -0700 | ||
9282 | |||
9283 | modified: configure.ac | ||
9284 | whitspace clean up. No code changes. | ||
9285 | |||
9286 | commit 604a037d84e41e31f0aec9075df0b8740c130200 | ||
9287 | Author: Damien Miller <djm@mindrot.org> | ||
9288 | Date: Tue May 31 16:45:28 2016 +1000 | ||
9289 | |||
9290 | whitespace at EOL | ||
9291 | |||
9292 | commit 18424200160ff5c923113e0a37ebe21ab7bcd17c | ||
9293 | Author: Darren Tucker <dtucker@zip.com.au> | ||
9294 | Date: Mon May 30 19:35:28 2016 +1000 | ||
9295 | |||
9296 | Add missing ssh-host-config --name option | ||
9297 | |||
9298 | Patch from vinschen@redhat.com. | ||
9299 | |||
9300 | commit 39c0cecaa188a37a2e134795caa68e03f3ced592 | ||
9301 | Author: Darren Tucker <dtucker@zip.com.au> | ||
9302 | Date: Fri May 20 10:01:58 2016 +1000 | ||
9303 | |||
9304 | Fix comment about sshpam_const and AIX. | ||
9305 | |||
9306 | From mschwager via github. | ||
9307 | |||
9308 | commit f64062b1f74ad5ee20a8a49aab2732efd0f7ce30 | ||
9309 | Author: Damien Miller <djm@mindrot.org> | ||
9310 | Date: Fri May 20 09:56:53 2016 +1000 | ||
9311 | |||
9312 | Deny lstat syscalls in seccomp sandbox | ||
9313 | |||
9314 | Avoids sandbox violations for some krb/gssapi libraries. | ||
9315 | |||
9316 | commit 531c135409b8d8810795b1f3692a4ebfd5c9cae0 | ||
9317 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9318 | Date: Thu May 19 07:45:32 2016 +0000 | ||
9319 | |||
9320 | upstream commit | ||
9321 | |||
9322 | fix type of ed25519 values | ||
9323 | |||
9324 | Upstream-ID: b32d0cb372bbe918ca2de56906901eae225a59b0 | ||
9325 | |||
9326 | commit 75e21688f523799c9e0cc6601d76a9c5ca79f787 | ||
9327 | Author: markus@openbsd.org <markus@openbsd.org> | ||
9328 | Date: Wed May 4 14:32:26 2016 +0000 | ||
9329 | |||
9330 | upstream commit | ||
9331 | |||
9332 | add IdentityAgent; noticed & ok jmc@ | ||
9333 | |||
9334 | Upstream-ID: 4ba9034b00a4cf1beae627f0728da897802df88a | ||
9335 | |||
9336 | commit 1a75d14daf4b60db903e6103cf50e74e0cd0a76b | ||
9337 | Author: markus@openbsd.org <markus@openbsd.org> | ||
9338 | Date: Wed May 4 14:29:58 2016 +0000 | ||
9339 | |||
9340 | upstream commit | ||
9341 | |||
9342 | allow setting IdentityAgent to SSH_AUTH_SOCK; ok djm@ | ||
9343 | |||
9344 | Upstream-ID: 20c508480d8db3eef18942c0fc39b1fcf25652ac | ||
9345 | |||
9346 | commit 0516454151ae722fc8256c3c56115c6baf24c5b0 | ||
9347 | Author: markus@openbsd.org <markus@openbsd.org> | ||
9348 | Date: Wed May 4 14:22:33 2016 +0000 | ||
9349 | |||
9350 | upstream commit | ||
9351 | |||
9352 | move SSH_MSG_NONE, so we don't have to include ssh1.h; | ||
9353 | ok deraadt@ | ||
9354 | |||
9355 | Upstream-ID: c2f97502efc761a41b18c17ddf460e138ca7994e | ||
9356 | |||
9357 | commit 332ff3d770631e7513fea38cf0d3689f673f0e3f | ||
9358 | Author: Damien Miller <djm@mindrot.org> | ||
9359 | Date: Tue May 10 09:51:06 2016 +1000 | ||
9360 | |||
9361 | initialise salen in binresvport_sa | ||
9362 | |||
9363 | avoids failures with UsePrivilegedPort=yes | ||
9364 | |||
9365 | patch from Juan Gallego | ||
9366 | |||
9367 | commit c5c1d5d2f04ce00d2ddd6647e61b32f28be39804 | ||
9368 | Author: markus@openbsd.org <markus@openbsd.org> | ||
9369 | Date: Wed May 4 14:04:40 2016 +0000 | ||
9370 | |||
9371 | upstream commit | ||
9372 | |||
9373 | missing const in prototypes (ssh1) | ||
9374 | |||
9375 | Upstream-ID: 789c6ad4928b5fa557369b88c3a6a34926082c05 | ||
9376 | |||
9377 | commit 9faae50e2e82ba42eb0cb2726bf6830fe7948f28 | ||
9378 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
9379 | Date: Wed May 4 14:00:09 2016 +0000 | ||
9380 | |||
9381 | upstream commit | ||
9382 | |||
9383 | Fix inverted logic for updating StreamLocalBindMask which | ||
9384 | would cause the server to set an invalid mask. ok djm@ | ||
9385 | |||
9386 | Upstream-ID: 8a4404c8307a5ef9e07ee2169fc6d8106b527587 | ||
9387 | |||
9388 | commit b02ad1ce9105bfa7394ac7590c0729dd52e26a81 | ||
9389 | Author: markus@openbsd.org <markus@openbsd.org> | ||
9390 | Date: Wed May 4 12:21:53 2016 +0000 | ||
9391 | |||
9392 | upstream commit | ||
9393 | |||
9394 | IdentityAgent for specifying specific agent sockets; ok | ||
9395 | djm@ | ||
9396 | |||
9397 | Upstream-ID: 3e6a15eb89ea0fd406f108826b7dc7dec4fbfac1 | ||
9398 | |||
9399 | commit 910e59bba09ac309d78ce61e356da35292212935 | ||
9400 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9401 | Date: Wed May 4 12:16:39 2016 +0000 | ||
9402 | |||
9403 | upstream commit | ||
9404 | |||
9405 | fix junk characters after quotes | ||
9406 | |||
9407 | Upstream-ID: cc4d0cd32cb6b55a2ef98975d2f7ae857d0dc578 | ||
9408 | |||
9409 | commit 9283884e647b8be50ccd2997537af0065672107d | ||
9410 | Author: jmc@openbsd.org <jmc@openbsd.org> | ||
9411 | Date: Tue May 3 18:38:12 2016 +0000 | ||
9412 | |||
9413 | upstream commit | ||
9414 | |||
9415 | correct article; | ||
9416 | |||
9417 | Upstream-ID: 1fbd5b7ab16d2d9834ec79c3cedd4738fa42a168 | ||
9418 | |||
9419 | commit cfefbcea1057c2623e76c579174a4107a0b6e6cd | ||
9420 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9421 | Date: Tue May 3 15:57:39 2016 +0000 | ||
9422 | |||
9423 | upstream commit | ||
9424 | |||
9425 | fix overriding of StreamLocalBindMask and | ||
9426 | StreamLocalBindUnlink in Match blocks; found the hard way Rogan Dawes | ||
9427 | |||
9428 | Upstream-ID: 940bc69ec0249ab428d24ccd0722ce35cb932ee2 | ||
9429 | |||
9430 | commit 771c2f51ffc0c9a2877b7892fada0c77bd1f6549 | ||
9431 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9432 | Date: Tue May 3 15:25:06 2016 +0000 | ||
9433 | |||
9434 | upstream commit | ||
9435 | |||
9436 | don't forget to include StreamLocalBindUnlink in the | ||
9437 | config dump output | ||
9438 | |||
9439 | Upstream-ID: 14a6d970b3b45c8e94272e3c661e9a0b2a0ee7cb | ||
9440 | |||
9441 | commit cdcd941994dc430f50d0a4e6a712d32b66e6199e | ||
9442 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9443 | Date: Tue May 3 14:54:08 2016 +0000 | ||
9444 | |||
9445 | upstream commit | ||
9446 | |||
9447 | make nethack^wrandomart fingerprint flag more readily | ||
9448 | searchable pointed out by Matt Johnston | ||
9449 | |||
9450 | Upstream-ID: cb40d0235dc153c478c1aad3bc60b195422a54fb | ||
9451 | |||
9452 | commit 05855bf2ce7d5cd0a6db18bc0b4214ed5ef7516d | ||
9453 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9454 | Date: Tue May 3 13:10:24 2016 +0000 | ||
9455 | |||
9456 | upstream commit | ||
9457 | |||
9458 | clarify ordering of subkeys; pointed out by ietf-ssh AT | ||
9459 | stbuehler.de | ||
9460 | |||
9461 | Upstream-ID: 05ebe9f949449a555ebce8e0aad7c8c9acaf8463 | ||
9462 | |||
9463 | commit cca3b4395807bfb7aaeb83d2838f5c062ce30566 | ||
9464 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
9465 | Date: Tue May 3 12:15:49 2016 +0000 | ||
9466 | |||
9467 | upstream commit | ||
9468 | |||
9469 | Use a subshell for constructing key types to work around | ||
9470 | different sed behaviours for -portable. | ||
9471 | |||
9472 | Upstream-Regress-ID: 0f6eb673162df229eda9a134a0f10da16151552d | ||
9473 | |||
9474 | commit fa58208c6502dcce3e0daac0ca991ee657daf1f5 | ||
9475 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9476 | Date: Tue May 3 10:27:59 2016 +0000 | ||
9477 | |||
9478 | upstream commit | ||
9479 | |||
9480 | correct some typos and remove a long-stale XXX note. | ||
9481 | |||
9482 | add specification for ed25519 certificates | ||
9483 | |||
9484 | mention no host certificate options/extensions are currently defined | ||
9485 | |||
9486 | pointed out by Simon Tatham | ||
9487 | |||
9488 | Upstream-ID: 7b535ab7dba3340b7d8210ede6791fdaefdf839a | ||
9489 | |||
9490 | commit b466f956c32cbaff4200bfcd5db6739fe4bc7d04 | ||
9491 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9492 | Date: Tue May 3 10:24:27 2016 +0000 | ||
9493 | |||
9494 | upstream commit | ||
9495 | |||
9496 | add ed25519 keys that are supported but missing from this | ||
9497 | documents; from Peter Moody | ||
9498 | |||
9499 | Upstream-ID: 8caac2d8e8cfd2fca6dc304877346e0a064b014b | ||
9500 | |||
9501 | commit 7f3d76319a69dab2efe3a520a8fef5b97e923636 | ||
9502 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
9503 | Date: Tue May 3 09:03:49 2016 +0000 | ||
9504 | |||
9505 | upstream commit | ||
9506 | |||
9507 | Implement IUTF8 as per draft-sgtatham-secsh-iutf8-00. Patch | ||
9508 | from Simon Tatham, ok markus@ | ||
9509 | |||
9510 | Upstream-ID: 58268ebdf37d9d467f78216c681705a5e10c58e8 | ||
9511 | |||
9512 | commit 31bc01c05d9f51bee3ebe33dc57c4fafb059fb62 | ||
9513 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9514 | Date: Mon May 2 14:10:58 2016 +0000 | ||
9515 | |||
9516 | upstream commit | ||
9517 | |||
9518 | unbreak config parsing on reexec from previous commit | ||
9519 | |||
9520 | Upstream-ID: bc69932638a291770955bd05ca55a32660a613ab | ||
9521 | |||
9522 | commit 67f1459efd2e85bf03d032539283fa8107218936 | ||
9523 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9524 | Date: Mon May 2 09:52:00 2016 +0000 | ||
9525 | |||
9526 | upstream commit | ||
9527 | |||
9528 | unit and regress tests for SHA256/512; ok markus | ||
9529 | |||
9530 | Upstream-Regress-ID: a0cd1a92dc824067076a5fcef83c18df9b0bf2c6 | ||
9531 | |||
9532 | commit 0e8eeec8e75f6d0eaf33317376f773160018a9c7 | ||
9533 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9534 | Date: Mon May 2 10:26:04 2016 +0000 | ||
9535 | |||
9536 | upstream commit | ||
9537 | |||
9538 | add support for additional fixed DH groups from | ||
9539 | draft-ietf-curdle-ssh-kex-sha2-03 | ||
9540 | |||
9541 | diffie-hellman-group14-sha256 (2K group) | ||
9542 | diffie-hellman-group16-sha512 (4K group) | ||
9543 | diffie-hellman-group18-sha512 (8K group) | ||
9544 | |||
9545 | based on patch from Mark D. Baushke and Darren Tucker | ||
9546 | ok markus@ | ||
9547 | |||
9548 | Upstream-ID: ac00406ada4f0dfec41585ca0839f039545bc46f | ||
9549 | |||
9550 | commit 57464e3934ba53ad8590ee3ccd840f693407fc1e | ||
9551 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9552 | Date: Mon May 2 09:36:42 2016 +0000 | ||
9553 | |||
9554 | upstream commit | ||
9555 | |||
9556 | support SHA256 and SHA512 RSA signatures in certificates; | ||
9557 | ok markus@ | ||
9558 | |||
9559 | Upstream-ID: b45be2f2ce8cacd794dc5730edaabc90e5eb434a | ||
9560 | |||
9561 | commit 1a31d02b2411c4718de58ce796dbb7b5e14db93e | ||
9562 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9563 | Date: Mon May 2 08:49:03 2016 +0000 | ||
9564 | |||
9565 | upstream commit | ||
9566 | |||
9567 | fix signed/unsigned errors reported by clang-3.7; add | ||
9568 | sshbuf_dup_string() to replace a common idiom of strdup(sshbuf_ptr()) with | ||
9569 | better safety checking; feedback and ok markus@ | ||
9570 | |||
9571 | Upstream-ID: 71f926d9bb3f1efed51319a6daf37e93d57c8820 | ||
9572 | |||
9573 | commit d2d6bf864e52af8491a60dd507f85b74361f5da3 | ||
9574 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9575 | Date: Fri Apr 29 08:07:53 2016 +0000 | ||
9576 | |||
9577 | upstream commit | ||
9578 | |||
9579 | close ControlPersist background process stderr when not | ||
9580 | in debug mode or when logging to a file or syslog. bz#1988 ok dtucker | ||
9581 | |||
9582 | Upstream-ID: 4fb726f0fdcb155ad419913cea10dc4afd409d24 | ||
9583 | |||
9584 | commit 9ee692fa1146e887e008a2b9a3d3ea81770c9fc8 | ||
9585 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9586 | Date: Thu Apr 28 14:30:21 2016 +0000 | ||
9587 | |||
9588 | upstream commit | ||
9589 | |||
9590 | fix comment | ||
9591 | |||
9592 | Upstream-ID: 313a385bd7b69a82f8e28ecbaf5789c774457b15 | ||
9593 | |||
9594 | commit ee1e0a16ff2ba41a4d203c7670b54644b6c57fa6 | ||
9595 | Author: jmc@openbsd.org <jmc@openbsd.org> | ||
9596 | Date: Wed Apr 27 13:53:48 2016 +0000 | ||
9597 | |||
9598 | upstream commit | ||
9599 | |||
9600 | cidr permitted for {allow,deny}users; from lars nooden ok djm | ||
9601 | |||
9602 | Upstream-ID: 13e7327fe85f6c63f3f7f069e0fdc8c351515d11 | ||
9603 | |||
9604 | commit b6e0140a5aa883c27b98415bd8aa9f65fc04ee22 | ||
9605 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9606 | Date: Thu Apr 21 06:08:02 2016 +0000 | ||
9607 | |||
9608 | upstream commit | ||
9609 | |||
9610 | make argument == NULL tests more consistent | ||
9611 | |||
9612 | Upstream-ID: dc4816678704aa5cbda3a702e0fa2033ff04581d | ||
9613 | |||
9614 | commit 6aaabc2b610e44bae473457ad9556ffb43d90ee3 | ||
9615 | Author: jmc@openbsd.org <jmc@openbsd.org> | ||
9616 | Date: Sun Apr 17 14:34:46 2016 +0000 | ||
9617 | |||
9618 | upstream commit | ||
9619 | |||
9620 | tweak previous; | ||
9621 | |||
9622 | Upstream-ID: 46c1bab91c164078edbccd5f7d06b9058edd814f | ||
9623 | |||
9624 | commit 0f839e5969efa3bda615991be8a9d9311554c573 | ||
9625 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9626 | Date: Fri Apr 15 02:57:10 2016 +0000 | ||
9627 | |||
9628 | upstream commit | ||
9629 | |||
9630 | missing bit of Include regress | ||
9631 | |||
9632 | Upstream-Regress-ID: 1063595f7f40f8489a1b7a27230b9e8acccea34f | ||
9633 | |||
9634 | commit 12e4ac46aed681da55c2bba3cd11dfcab23591be | ||
9635 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9636 | Date: Fri Apr 15 02:55:53 2016 +0000 | ||
9637 | |||
9638 | upstream commit | ||
9639 | |||
9640 | remove redundant CLEANFILES section | ||
9641 | |||
9642 | Upstream-Regress-ID: 29ef1b267fa56daa60a1463396635e7d53afb587 | ||
9643 | |||
9644 | commit b1d05aa653ae560c44baf8e8a9756e33f98ea75c | ||
9645 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9646 | Date: Fri Apr 15 00:48:01 2016 +0000 | ||
9647 | |||
9648 | upstream commit | ||
9649 | |||
9650 | sync CLEANFILES with portable, sort | ||
9651 | |||
9652 | Upstream-Regress-ID: cb782f4f1ab3e079efbc335c6b64942f790766ed | ||
9653 | |||
9654 | commit 35f22dad263cce5c61d933ae439998cb965b8748 | ||
9655 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9656 | Date: Fri Apr 15 00:31:10 2016 +0000 | ||
9657 | |||
9658 | upstream commit | ||
9659 | |||
9660 | regression test for ssh_config Include directive | ||
9661 | |||
9662 | Upstream-Regress-ID: 46a38c8101f635461c506d1aac2d96af80f97f1e | ||
9663 | |||
9664 | commit 6b8a1a87005818d4700ce8b42faef746e82c1f51 | ||
9665 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9666 | Date: Thu Apr 14 23:57:17 2016 +0000 | ||
9667 | |||
9668 | upstream commit | ||
9669 | |||
9670 | unbreak test for recent ssh de-duplicated forwarding | ||
9671 | change | ||
9672 | |||
9673 | Upstream-Regress-ID: 6b2b115d99acd7cff13986e6739ea214cf2a3da3 | ||
9674 | |||
9675 | commit 076787702418985a2cc6808212dc28ce7afc01f0 | ||
9676 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9677 | Date: Thu Apr 14 23:21:42 2016 +0000 | ||
9678 | |||
9679 | upstream commit | ||
9680 | |||
9681 | add test knob and warning for StrictModes | ||
9682 | |||
9683 | Upstream-Regress-ID: 8cd10952ce7898655ee58945904f2a0a3bdf7682 | ||
9684 | |||
9685 | commit dc7990be865450574c7940c9880567f5d2555b37 | ||
9686 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9687 | Date: Fri Apr 15 00:30:19 2016 +0000 | ||
9688 | |||
9689 | upstream commit | ||
9690 | |||
9691 | Include directive for ssh_config(5); feedback & ok markus@ | ||
9692 | |||
9693 | Upstream-ID: ae3b76e2e343322b9f74acde6f1e1c5f027d5fff | ||
9694 | |||
9695 | commit 85bdcd7c92fe7ff133bbc4e10a65c91810f88755 | ||
9696 | Author: Damien Miller <djm@mindrot.org> | ||
9697 | Date: Wed Apr 13 10:39:57 2016 +1000 | ||
9698 | |||
9699 | ignore PAM environment vars when UseLogin=yes | ||
9700 | |||
9701 | If PAM is configured to read user-specified environment variables | ||
9702 | and UseLogin=yes in sshd_config, then a hostile local user may | ||
9703 | attack /bin/login via LD_PRELOAD or similar environment variables | ||
9704 | set via PAM. | ||
9705 | |||
9706 | CVE-2015-8325, found by Shayan Sadigh, via Colin Watson | ||
9707 | |||
9708 | commit dce19bf6e4a2a3d0b13a81224de63fc316461ab9 | ||
9709 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9710 | Date: Sat Apr 9 12:39:30 2016 +0000 | ||
9711 | |||
9712 | upstream commit | ||
9713 | |||
9714 | make private key loading functions consistently handle NULL | ||
9715 | key pointer arguments; ok markus@ | ||
9716 | |||
9717 | Upstream-ID: 92038726ef4a338169c35dacc9c5a07fcc7fa761 | ||
9718 | |||
9719 | commit 5f41f030e2feb5295657285aa8c6602c7810bc4b | ||
9720 | Author: Darren Tucker <dtucker@zip.com.au> | ||
9721 | Date: Fri Apr 8 21:14:13 2016 +1000 | ||
9722 | |||
9723 | Remove NO_IPPORT_RESERVED_CONCEPT | ||
9724 | |||
9725 | Replace by defining IPPORT_RESERVED to zero on Cygwin, which should have | ||
9726 | the same effect without causing problems syncing patches with OpenBSD. | ||
9727 | Resync the two affected functions with OpenBSD. ok djm, sanity checked | ||
9728 | by Corinna. | ||
9729 | |||
9730 | commit 34a01b2cf737d946ddb140618e28c3048ab7a229 | ||
9731 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9732 | Date: Fri Apr 8 08:19:17 2016 +0000 | ||
9733 | |||
9734 | upstream commit | ||
9735 | |||
9736 | whitespace at EOL | ||
9737 | |||
9738 | Upstream-ID: 5beffd4e001515da12851b974e2323ae4aa313b6 | ||
9739 | |||
9740 | commit 90ee563fa6b54c59896c6c332c5188f866c5e75f | ||
9741 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9742 | Date: Fri Apr 8 06:35:54 2016 +0000 | ||
9743 | |||
9744 | upstream commit | ||
9745 | |||
9746 | We accidentally send an empty string and a zero uint32 with | ||
9747 | every direct-streamlocal@openssh.com channel open, in contravention of our | ||
9748 | own spec. | ||
9749 | |||
9750 | Fixing this is too hard wrt existing versions that expect these | ||
9751 | fields to be present and fatal() if they aren't, so document them | ||
9752 | as "reserved" fields in the PROTOCOL spec as though we always | ||
9753 | intended this and let us never speak of it again. | ||
9754 | |||
9755 | bz#2529, reported by Ron Frederick | ||
9756 | |||
9757 | Upstream-ID: 34cd326a4d236ca6e39084c4ff796bd97ab833e7 | ||
9758 | |||
9759 | commit 0ccbd5eca0f0dd78e71a4b69c66f03a66908d558 | ||
9760 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9761 | Date: Wed Apr 6 06:42:17 2016 +0000 | ||
9762 | |||
9763 | upstream commit | ||
9764 | |||
9765 | don't record duplicate LocalForward and RemoteForward | ||
9766 | entries; fixes failure with ExitOnForwardFailure+hostname canonicalisation | ||
9767 | where the same forwards are added on the second pass through the | ||
9768 | configuration file. bz#2562; ok dtucker@ | ||
9769 | |||
9770 | Upstream-ID: 40a51d68b6300f1cc61deecdb7d4847b8b7b0de1 | ||
9771 | |||
9772 | commit 574def0eb493cd6efeffd4ff2e9257abcffee0c8 | ||
9773 | Author: krw@openbsd.org <krw@openbsd.org> | ||
9774 | Date: Sat Apr 2 14:37:42 2016 +0000 | ||
9775 | |||
9776 | upstream commit | ||
9777 | |||
9778 | Another use for fcntl() and thus of the superfluous 3rd | ||
9779 | parameter is when sanitising standard fd's before calling daemon(). | ||
9780 | |||
9781 | Use a tweaked version of the ssh(1) function in all three places | ||
9782 | found using fcntl() this way. | ||
9783 | |||
9784 | ok jca@ beck@ | ||
9785 | |||
9786 | Upstream-ID: f16811ffa19a1c5f4ef383c5f0fecb843c84e218 | ||
9787 | |||
9788 | commit b3413534aa9d71a941005df2760d1eec2c2b0854 | ||
9789 | Author: Darren Tucker <dtucker@zip.com.au> | ||
9790 | Date: Mon Apr 4 11:09:21 2016 +1000 | ||
9791 | |||
9792 | Tidy up openssl header test. | ||
9793 | |||
9794 | commit 815bcac0b94bb448de5acdd6ba925b8725240b4f | ||
9795 | Author: Darren Tucker <dtucker@zip.com.au> | ||
9796 | Date: Mon Apr 4 11:07:59 2016 +1000 | ||
9797 | |||
9798 | Fix configure-time warnings for openssl test. | ||
@@ -66,13 +66,6 @@ passphrase requester. This is maintained separately at: | |||
66 | 66 | ||
67 | http://www.jmknoble.net/software/x11-ssh-askpass/ | 67 | http://www.jmknoble.net/software/x11-ssh-askpass/ |
68 | 68 | ||
69 | S/Key Libraries: | ||
70 | |||
71 | If you wish to use --with-skey then you will need the library below | ||
72 | installed. No other S/Key library is currently known to be supported. | ||
73 | |||
74 | http://www.sparc.spb.su/solaris/skey/ | ||
75 | |||
76 | LibEdit: | 69 | LibEdit: |
77 | 70 | ||
78 | sftp supports command-line editing via NetBSD's libedit. If your platform | 71 | sftp supports command-line editing via NetBSD's libedit. If your platform |
@@ -184,9 +177,6 @@ it if lastlog is installed in a different place. | |||
184 | --with-osfsia, --without-osfsia will enable or disable OSF1's Security | 177 | --with-osfsia, --without-osfsia will enable or disable OSF1's Security |
185 | Integration Architecture. The default for OSF1 machines is enable. | 178 | Integration Architecture. The default for OSF1 machines is enable. |
186 | 179 | ||
187 | --with-skey=PATH will enable S/Key one time password support. You will | ||
188 | need the S/Key libraries and header files installed for this to work. | ||
189 | |||
190 | --with-md5-passwords will enable the use of MD5 passwords. Enable this | 180 | --with-md5-passwords will enable the use of MD5 passwords. Enable this |
191 | if your operating system uses MD5 passwords and the system crypt() does | 181 | if your operating system uses MD5 passwords and the system crypt() does |
192 | not support them directly (see the crypt(3/3c) man page). If enabled, the | 182 | not support them directly (see the crypt(3/3c) man page). If enabled, the |
@@ -220,7 +210,7 @@ If you need to pass special options to the compiler or linker, you | |||
220 | can specify these as environment variables before running ./configure. | 210 | can specify these as environment variables before running ./configure. |
221 | For example: | 211 | For example: |
222 | 212 | ||
223 | CFLAGS="-O -m486" LDFLAGS="-s" LIBS="-lrubbish" LD="/usr/foo/ld" ./configure | 213 | CC="/usr/foo/cc" CFLAGS="-O" LDFLAGS="-s" LIBS="-lrubbish" ./configure |
224 | 214 | ||
225 | 3. Configuration | 215 | 3. Configuration |
226 | ---------------- | 216 | ---------------- |
diff --git a/Makefile.in b/Makefile.in index 04e1c8e53..2385c62a8 100644 --- a/Makefile.in +++ b/Makefile.in | |||
@@ -1,4 +1,4 @@ | |||
1 | # uncomment if you run a non bourne compatable shell. Ie. csh | 1 | # uncomment if you run a non bourne compatible shell. Ie. csh |
2 | #SHELL = @SH@ | 2 | #SHELL = @SH@ |
3 | 3 | ||
4 | AUTORECONF=autoreconf | 4 | AUTORECONF=autoreconf |
@@ -84,13 +84,13 @@ LIBOPENSSH_OBJS=\ | |||
84 | ${XMSS_OBJS} | 84 | ${XMSS_OBJS} |
85 | 85 | ||
86 | LIBSSH_OBJS=${LIBOPENSSH_OBJS} \ | 86 | LIBSSH_OBJS=${LIBOPENSSH_OBJS} \ |
87 | authfd.o authfile.o bufaux.o bufbn.o bufec.o buffer.o \ | 87 | authfd.o authfile.o \ |
88 | canohost.o channels.o cipher.o cipher-aes.o cipher-aesctr.o \ | 88 | canohost.o channels.o cipher.o cipher-aes.o cipher-aesctr.o \ |
89 | cipher-ctr.o cleanup.o \ | 89 | cipher-ctr.o cleanup.o \ |
90 | compat.o crc32.o fatal.o hostfile.o \ | 90 | compat.o crc32.o fatal.o hostfile.o \ |
91 | log.o match.o moduli.o nchan.o packet.o opacket.o \ | 91 | log.o match.o moduli.o nchan.o packet.o opacket.o \ |
92 | readpass.o ttymodes.o xmalloc.o addrmatch.o \ | 92 | readpass.o ttymodes.o xmalloc.o addrmatch.o \ |
93 | atomicio.o key.o dispatch.o mac.o uidswap.o uuencode.o misc.o utf8.o \ | 93 | atomicio.o dispatch.o mac.o uuencode.o misc.o utf8.o \ |
94 | monitor_fdpass.o rijndael.o ssh-dss.o ssh-ecdsa.o ssh-rsa.o dh.o \ | 94 | monitor_fdpass.o rijndael.o ssh-dss.o ssh-ecdsa.o ssh-rsa.o dh.o \ |
95 | msg.o progressmeter.o dns.o entropy.o gss-genr.o umac.o umac128.o \ | 95 | msg.o progressmeter.o dns.o entropy.o gss-genr.o umac.o umac128.o \ |
96 | ssh-pkcs11.o smult_curve25519_ref.o \ | 96 | ssh-pkcs11.o smult_curve25519_ref.o \ |
@@ -110,7 +110,7 @@ SSHDOBJS=sshd.o auth-rhosts.o auth-passwd.o \ | |||
110 | sshpty.o sshlogin.o servconf.o serverloop.o \ | 110 | sshpty.o sshlogin.o servconf.o serverloop.o \ |
111 | auth.o auth2.o auth-options.o session.o \ | 111 | auth.o auth2.o auth-options.o session.o \ |
112 | auth2-chall.o groupaccess.o \ | 112 | auth2-chall.o groupaccess.o \ |
113 | auth-skey.o auth-bsdauth.o auth2-hostbased.o auth2-kbdint.o \ | 113 | auth-bsdauth.o auth2-hostbased.o auth2-kbdint.o \ |
114 | auth2-none.o auth2-passwd.o auth2-pubkey.o \ | 114 | auth2-none.o auth2-passwd.o auth2-pubkey.o \ |
115 | monitor.o monitor_wrap.o auth-krb5.o \ | 115 | monitor.o monitor_wrap.o auth-krb5.o \ |
116 | auth2-gss.o gss-serv.o gss-serv-krb5.o \ | 116 | auth2-gss.o gss-serv.o gss-serv-krb5.o \ |
@@ -118,7 +118,7 @@ SSHDOBJS=sshd.o auth-rhosts.o auth-passwd.o \ | |||
118 | sftp-server.o sftp-common.o \ | 118 | sftp-server.o sftp-common.o \ |
119 | sandbox-null.o sandbox-rlimit.o sandbox-systrace.o sandbox-darwin.o \ | 119 | sandbox-null.o sandbox-rlimit.o sandbox-systrace.o sandbox-darwin.o \ |
120 | sandbox-seccomp-filter.o sandbox-capsicum.o sandbox-pledge.o \ | 120 | sandbox-seccomp-filter.o sandbox-capsicum.o sandbox-pledge.o \ |
121 | sandbox-solaris.o | 121 | sandbox-solaris.o uidswap.o |
122 | 122 | ||
123 | MANPAGES = moduli.5.out scp.1.out ssh-add.1.out ssh-agent.1.out ssh-keygen.1.out ssh-keyscan.1.out ssh.1.out sshd.8.out sftp-server.8.out sftp.1.out ssh-keysign.8.out ssh-pkcs11-helper.8.out sshd_config.5.out ssh_config.5.out | 123 | MANPAGES = moduli.5.out scp.1.out ssh-add.1.out ssh-agent.1.out ssh-keygen.1.out ssh-keyscan.1.out ssh.1.out sshd.8.out sftp-server.8.out sftp.1.out ssh-keysign.8.out ssh-pkcs11-helper.8.out sshd_config.5.out ssh_config.5.out |
124 | MANPAGES_IN = moduli.5 scp.1 ssh-add.1 ssh-agent.1 ssh-keygen.1 ssh-keyscan.1 ssh.1 sshd.8 sftp-server.8 sftp.1 ssh-keysign.8 ssh-pkcs11-helper.8 sshd_config.5 ssh_config.5 | 124 | MANPAGES_IN = moduli.5 scp.1 ssh-add.1 ssh-agent.1 ssh-keygen.1 ssh-keyscan.1 ssh.1 sshd.8 sftp-server.8 sftp.1 ssh-keysign.8 ssh-pkcs11-helper.8 sshd_config.5 ssh_config.5 |
@@ -175,7 +175,7 @@ sshd$(EXEEXT): libssh.a $(LIBCOMPAT) $(SSHDOBJS) | |||
175 | $(LD) -o $@ $(SSHDOBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(SSHDLIBS) $(LIBS) $(GSSLIBS) $(K5LIBS) | 175 | $(LD) -o $@ $(SSHDOBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(SSHDLIBS) $(LIBS) $(GSSLIBS) $(K5LIBS) |
176 | 176 | ||
177 | scp$(EXEEXT): $(LIBCOMPAT) libssh.a scp.o progressmeter.o | 177 | scp$(EXEEXT): $(LIBCOMPAT) libssh.a scp.o progressmeter.o |
178 | $(LD) -o $@ scp.o progressmeter.o bufaux.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) | 178 | $(LD) -o $@ scp.o progressmeter.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) |
179 | 179 | ||
180 | ssh-add$(EXEEXT): $(LIBCOMPAT) libssh.a ssh-add.o | 180 | ssh-add$(EXEEXT): $(LIBCOMPAT) libssh.a ssh-add.o |
181 | $(LD) -o $@ ssh-add.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) | 181 | $(LD) -o $@ ssh-add.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) |
@@ -186,8 +186,8 @@ ssh-agent$(EXEEXT): $(LIBCOMPAT) libssh.a ssh-agent.o ssh-pkcs11-client.o | |||
186 | ssh-keygen$(EXEEXT): $(LIBCOMPAT) libssh.a ssh-keygen.o | 186 | ssh-keygen$(EXEEXT): $(LIBCOMPAT) libssh.a ssh-keygen.o |
187 | $(LD) -o $@ ssh-keygen.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) | 187 | $(LD) -o $@ ssh-keygen.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) |
188 | 188 | ||
189 | ssh-keysign$(EXEEXT): $(LIBCOMPAT) libssh.a ssh-keysign.o readconf.o | 189 | ssh-keysign$(EXEEXT): $(LIBCOMPAT) libssh.a ssh-keysign.o readconf.o uidswap.o |
190 | $(LD) -o $@ ssh-keysign.o readconf.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) | 190 | $(LD) -o $@ ssh-keysign.o readconf.o uidswap.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) |
191 | 191 | ||
192 | ssh-pkcs11-helper$(EXEEXT): $(LIBCOMPAT) libssh.a ssh-pkcs11-helper.o ssh-pkcs11.o | 192 | ssh-pkcs11-helper$(EXEEXT): $(LIBCOMPAT) libssh.a ssh-pkcs11-helper.o ssh-pkcs11.o |
193 | $(LD) -o $@ ssh-pkcs11-helper.o ssh-pkcs11.o $(LDFLAGS) -lssh -lopenbsd-compat -lssh -lopenbsd-compat $(LIBS) | 193 | $(LD) -o $@ ssh-pkcs11-helper.o ssh-pkcs11.o $(LDFLAGS) -lssh -lopenbsd-compat -lssh -lopenbsd-compat $(LIBS) |
@@ -230,6 +230,7 @@ clean: regressclean | |||
230 | rm -f *.o *.a $(TARGETS) logintest config.cache config.log | 230 | rm -f *.o *.a $(TARGETS) logintest config.cache config.log |
231 | rm -f *.out core survey | 231 | rm -f *.out core survey |
232 | rm -f regress/check-perm$(EXEEXT) | 232 | rm -f regress/check-perm$(EXEEXT) |
233 | rm -f regress/mkdtemp$(EXEEXT) | ||
233 | rm -f regress/unittests/test_helper/*.a | 234 | rm -f regress/unittests/test_helper/*.a |
234 | rm -f regress/unittests/test_helper/*.o | 235 | rm -f regress/unittests/test_helper/*.o |
235 | rm -f regress/unittests/sshbuf/*.o | 236 | rm -f regress/unittests/sshbuf/*.o |
@@ -258,6 +259,8 @@ distclean: regressclean | |||
258 | rm -f Makefile buildpkg.sh config.h config.status | 259 | rm -f Makefile buildpkg.sh config.h config.status |
259 | rm -f survey.sh openbsd-compat/regress/Makefile *~ | 260 | rm -f survey.sh openbsd-compat/regress/Makefile *~ |
260 | rm -rf autom4te.cache | 261 | rm -rf autom4te.cache |
262 | rm -f regress/check-perm | ||
263 | rm -f regress/mkdtemp | ||
261 | rm -f regress/unittests/test_helper/*.a | 264 | rm -f regress/unittests/test_helper/*.a |
262 | rm -f regress/unittests/test_helper/*.o | 265 | rm -f regress/unittests/test_helper/*.o |
263 | rm -f regress/unittests/sshbuf/*.o | 266 | rm -f regress/unittests/sshbuf/*.o |
@@ -276,7 +279,8 @@ distclean: regressclean | |||
276 | rm -f regress/unittests/match/test_match | 279 | rm -f regress/unittests/match/test_match |
277 | rm -f regress/unittests/utf8/*.o | 280 | rm -f regress/unittests/utf8/*.o |
278 | rm -f regress/unittests/utf8/test_utf8 | 281 | rm -f regress/unittests/utf8/test_utf8 |
279 | rm -f regress/unittests/misc/kexfuzz | 282 | rm -f regress/misc/kexfuzz/*.o |
283 | rm -f regress/misc/kexfuzz | ||
280 | (cd openbsd-compat && $(MAKE) distclean) | 284 | (cd openbsd-compat && $(MAKE) distclean) |
281 | if test -d pkg ; then \ | 285 | if test -d pkg ; then \ |
282 | rm -fr pkg ; \ | 286 | rm -fr pkg ; \ |
@@ -459,6 +463,10 @@ regress/check-perm$(EXEEXT): $(srcdir)/regress/check-perm.c $(REGRESSLIBS) | |||
459 | $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $(srcdir)/regress/check-perm.c \ | 463 | $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $(srcdir)/regress/check-perm.c \ |
460 | $(LDFLAGS) -lssh -lopenbsd-compat -lssh -lopenbsd-compat $(LIBS) | 464 | $(LDFLAGS) -lssh -lopenbsd-compat -lssh -lopenbsd-compat $(LIBS) |
461 | 465 | ||
466 | regress/mkdtemp$(EXEEXT): $(srcdir)/regress/mkdtemp.c $(REGRESSLIBS) | ||
467 | $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $(srcdir)/regress/mkdtemp.c \ | ||
468 | $(LDFLAGS) -lssh -lopenbsd-compat -lssh -lopenbsd-compat $(LIBS) | ||
469 | |||
462 | UNITTESTS_TEST_HELPER_OBJS=\ | 470 | UNITTESTS_TEST_HELPER_OBJS=\ |
463 | regress/unittests/test_helper/test_helper.o \ | 471 | regress/unittests/test_helper/test_helper.o \ |
464 | regress/unittests/test_helper/fuzz.o | 472 | regress/unittests/test_helper/fuzz.o |
@@ -567,6 +575,7 @@ regress-binaries: regress/modpipe$(EXEEXT) \ | |||
567 | regress/setuid-allowed$(EXEEXT) \ | 575 | regress/setuid-allowed$(EXEEXT) \ |
568 | regress/netcat$(EXEEXT) \ | 576 | regress/netcat$(EXEEXT) \ |
569 | regress/check-perm$(EXEEXT) \ | 577 | regress/check-perm$(EXEEXT) \ |
578 | regress/mkdtemp$(EXEEXT) \ | ||
570 | regress/unittests/sshbuf/test_sshbuf$(EXEEXT) \ | 579 | regress/unittests/sshbuf/test_sshbuf$(EXEEXT) \ |
571 | regress/unittests/sshkey/test_sshkey$(EXEEXT) \ | 580 | regress/unittests/sshkey/test_sshkey$(EXEEXT) \ |
572 | regress/unittests/bitmap/test_bitmap$(EXEEXT) \ | 581 | regress/unittests/bitmap/test_bitmap$(EXEEXT) \ |
@@ -577,8 +586,6 @@ regress-binaries: regress/modpipe$(EXEEXT) \ | |||
577 | regress/unittests/utf8/test_utf8$(EXEEXT) \ | 586 | regress/unittests/utf8/test_utf8$(EXEEXT) \ |
578 | regress/misc/kexfuzz/kexfuzz$(EXEEXT) | 587 | regress/misc/kexfuzz/kexfuzz$(EXEEXT) |
579 | 588 | ||
580 | REGRESSTMP = "$(PWD)/regress" | ||
581 | |||
582 | tests interop-tests t-exec unit: regress-prep regress-binaries $(TARGETS) | 589 | tests interop-tests t-exec unit: regress-prep regress-binaries $(TARGETS) |
583 | BUILDDIR=`pwd`; \ | 590 | BUILDDIR=`pwd`; \ |
584 | TEST_SSH_SCP="$${BUILDDIR}/scp"; \ | 591 | TEST_SSH_SCP="$${BUILDDIR}/scp"; \ |
@@ -602,7 +609,7 @@ tests interop-tests t-exec unit: regress-prep regress-binaries $(TARGETS) | |||
602 | .OBJDIR="$${BUILDDIR}/regress" \ | 609 | .OBJDIR="$${BUILDDIR}/regress" \ |
603 | .CURDIR="`pwd`" \ | 610 | .CURDIR="`pwd`" \ |
604 | BUILDDIR="$${BUILDDIR}" \ | 611 | BUILDDIR="$${BUILDDIR}" \ |
605 | OBJ="$(REGRESSTMP)" \ | 612 | OBJ="$${BUILDDIR}/regress/" \ |
606 | PATH="$${BUILDDIR}:$${PATH}" \ | 613 | PATH="$${BUILDDIR}:$${PATH}" \ |
607 | TEST_ENV=MALLOC_OPTIONS="@TEST_MALLOC_OPTIONS@" \ | 614 | TEST_ENV=MALLOC_OPTIONS="@TEST_MALLOC_OPTIONS@" \ |
608 | TEST_MALLOC_OPTIONS="@TEST_MALLOC_OPTIONS@" \ | 615 | TEST_MALLOC_OPTIONS="@TEST_MALLOC_OPTIONS@" \ |
@@ -23,9 +23,8 @@ these programs. | |||
23 | 23 | ||
24 | - These provide an arbitrary size buffer, where data can be appended. | 24 | - These provide an arbitrary size buffer, where data can be appended. |
25 | Data can be consumed from either end. The code is used heavily | 25 | Data can be consumed from either end. The code is used heavily |
26 | throughout ssh. The basic buffer manipulation functions are in | 26 | throughout ssh. The buffer manipulation functions are in |
27 | buffer.c (header buffer.h), and additional code to manipulate specific | 27 | sshbuf*.c (header sshbuf.h). |
28 | data types is in bufaux.c. | ||
29 | 28 | ||
30 | Compression Library | 29 | Compression Library |
31 | 30 | ||
@@ -62,7 +61,7 @@ these programs. | |||
62 | code in packet.c does not concern itself with packet types or their | 61 | code in packet.c does not concern itself with packet types or their |
63 | execution; it contains code to build packets, to receive them and | 62 | execution; it contains code to build packets, to receive them and |
64 | extract data from them, and the code to compress and/or encrypt | 63 | extract data from them, and the code to compress and/or encrypt |
65 | packets. CRC code comes from crc32.c. | 64 | packets. |
66 | 65 | ||
67 | - The code in packet.c calls the buffer manipulation routines | 66 | - The code in packet.c calls the buffer manipulation routines |
68 | (buffer.c, bufaux.c), compression routines (zlib), and the | 67 | (buffer.c, bufaux.c), compression routines (zlib), and the |
@@ -106,12 +105,6 @@ these programs. | |||
106 | calls client_loop in clientloop.c. This does the real work for | 105 | calls client_loop in clientloop.c. This does the real work for |
107 | the session. | 106 | the session. |
108 | 107 | ||
109 | - The client is suid root. It tries to temporarily give up this | ||
110 | rights while reading the configuration data. The root | ||
111 | privileges are only used to make the connection (from a | ||
112 | privileged socket). Any extra privileges are dropped before | ||
113 | calling ssh_login. | ||
114 | |||
115 | Pseudo-tty manipulation and tty modes | 108 | Pseudo-tty manipulation and tty modes |
116 | 109 | ||
117 | - Code to allocate and use a pseudo tty is in pty.c. Code to | 110 | - Code to allocate and use a pseudo tty is in pty.c. Code to |
@@ -165,4 +158,4 @@ these programs. | |||
165 | uidswap.c uid-swapping | 158 | uidswap.c uid-swapping |
166 | xmalloc.c "safe" malloc routines | 159 | xmalloc.c "safe" malloc routines |
167 | 160 | ||
168 | $OpenBSD: OVERVIEW,v 1.12 2015/07/08 19:01:15 markus Exp $ | 161 | $OpenBSD: OVERVIEW,v 1.14 2018/07/27 03:55:22 dtucker Exp $ |
@@ -428,7 +428,7 @@ The values of the f_flag bitmask are as follows: | |||
428 | Both the "statvfs@openssh.com" and "fstatvfs@openssh.com" extensions are | 428 | Both the "statvfs@openssh.com" and "fstatvfs@openssh.com" extensions are |
429 | advertised in the SSH_FXP_VERSION hello with version "2". | 429 | advertised in the SSH_FXP_VERSION hello with version "2". |
430 | 430 | ||
431 | 10. sftp: Extension request "hardlink@openssh.com" | 431 | 3.5. sftp: Extension request "hardlink@openssh.com" |
432 | 432 | ||
433 | This request is for creating a hard link to a regular file. This | 433 | This request is for creating a hard link to a regular file. This |
434 | request is implemented as a SSH_FXP_EXTENDED request with the | 434 | request is implemented as a SSH_FXP_EXTENDED request with the |
@@ -444,7 +444,7 @@ link(oldpath, newpath) and will respond with a SSH_FXP_STATUS message. | |||
444 | This extension is advertised in the SSH_FXP_VERSION hello with version | 444 | This extension is advertised in the SSH_FXP_VERSION hello with version |
445 | "1". | 445 | "1". |
446 | 446 | ||
447 | 10. sftp: Extension request "fsync@openssh.com" | 447 | 3.6. sftp: Extension request "fsync@openssh.com" |
448 | 448 | ||
449 | This request asks the server to call fsync(2) on an open file handle. | 449 | This request asks the server to call fsync(2) on an open file handle. |
450 | 450 | ||
@@ -458,4 +458,35 @@ respond with a SSH_FXP_STATUS message. | |||
458 | This extension is advertised in the SSH_FXP_VERSION hello with version | 458 | This extension is advertised in the SSH_FXP_VERSION hello with version |
459 | "1". | 459 | "1". |
460 | 460 | ||
461 | $OpenBSD: PROTOCOL,v 1.32 2018/02/19 00:55:02 djm Exp $ | 461 | 4. Miscellaneous changes |
462 | |||
463 | 4.1 Public key format | ||
464 | |||
465 | OpenSSH public keys, as generated by ssh-keygen(1) and appearing in | ||
466 | authorized_keys files, are formatted as a single line of text consisting | ||
467 | of the public key algorithm name followed by a base64-encoded key blob. | ||
468 | The public key blob (before base64 encoding) is the same format used for | ||
469 | the encoding of public keys sent on the wire: as described in RFC4253 | ||
470 | section 6.6 for RSA and DSA keys, RFC5656 section 3.1 for ECDSA keys | ||
471 | and the "New public key formats" section of PROTOCOL.certkeys for the | ||
472 | OpenSSH certificate formats. | ||
473 | |||
474 | 4.2 Private key format | ||
475 | |||
476 | OpenSSH private keys, as generated by ssh-keygen(1) use the format | ||
477 | described in PROTOCOL.key by default. As a legacy option, PEM format | ||
478 | (RFC7468) private keys are also supported for RSA, DSA and ECDSA keys | ||
479 | and were the default format before OpenSSH 7.8. | ||
480 | |||
481 | 4.3 KRL format | ||
482 | |||
483 | OpenSSH supports a compact format for Key Revocation Lists (KRLs). This | ||
484 | format is described in the PROTOCOL.krl file. | ||
485 | |||
486 | 4.4 Connection multiplexing | ||
487 | |||
488 | OpenSSH's connection multiplexing uses messages as described in | ||
489 | PROTOCOL.mux over a Unix domain socket for communications between a | ||
490 | master instance and later clients. | ||
491 | |||
492 | $OpenBSD: PROTOCOL,v 1.35 2018/08/10 00:44:01 djm Exp $ | ||
diff --git a/PROTOCOL.certkeys b/PROTOCOL.certkeys index 64cb18700..11363fdc3 100644 --- a/PROTOCOL.certkeys +++ b/PROTOCOL.certkeys | |||
@@ -25,6 +25,10 @@ raw user keys. The ssh client will support automatic verification of | |||
25 | acceptance of certified host keys, by adding a similar ability to | 25 | acceptance of certified host keys, by adding a similar ability to |
26 | specify CA keys in ~/.ssh/known_hosts. | 26 | specify CA keys in ~/.ssh/known_hosts. |
27 | 27 | ||
28 | All certificate types include certification information along with the | ||
29 | public key that is used to sign challenges. In OpenSSH, ssh-keygen | ||
30 | performs the CA signing operation. | ||
31 | |||
28 | Certified keys are represented using new key types: | 32 | Certified keys are represented using new key types: |
29 | 33 | ||
30 | ssh-rsa-cert-v01@openssh.com | 34 | ssh-rsa-cert-v01@openssh.com |
@@ -33,9 +37,17 @@ Certified keys are represented using new key types: | |||
33 | ecdsa-sha2-nistp384-cert-v01@openssh.com | 37 | ecdsa-sha2-nistp384-cert-v01@openssh.com |
34 | ecdsa-sha2-nistp521-cert-v01@openssh.com | 38 | ecdsa-sha2-nistp521-cert-v01@openssh.com |
35 | 39 | ||
36 | These include certification information along with the public key | 40 | Two additional types exist for RSA certificates to force use of |
37 | that is used to sign challenges. ssh-keygen performs the CA signing | 41 | SHA-2 signatures (SHA-256 and SHA-512 respectively): |
38 | operation. | 42 | |
43 | rsa-sha2-256-cert-v01@openssh.com | ||
44 | rsa-sha2-512-cert-v01@openssh.com | ||
45 | |||
46 | These RSA/SHA-2 types should not appear in keys at rest or transmitted | ||
47 | on their wire, but do appear in a SSH_MSG_KEXINIT's host-key algorithms | ||
48 | field or in the "public key algorithm name" field of a "publickey" | ||
49 | SSH_USERAUTH_REQUEST to indicate that the signature will use the | ||
50 | specified algorithm. | ||
39 | 51 | ||
40 | Protocol extensions | 52 | Protocol extensions |
41 | ------------------- | 53 | ------------------- |
@@ -174,7 +186,7 @@ certificate. Each represents a time in seconds since 1970-01-01 | |||
174 | 186 | ||
175 | valid after <= current time < valid before | 187 | valid after <= current time < valid before |
176 | 188 | ||
177 | criticial options is a set of zero or more key options encoded as | 189 | critical options is a set of zero or more key options encoded as |
178 | below. All such options are "critical" in the sense that an implementation | 190 | below. All such options are "critical" in the sense that an implementation |
179 | must refuse to authorise a key that has an unrecognised option. | 191 | must refuse to authorise a key that has an unrecognised option. |
180 | 192 | ||
@@ -291,4 +303,4 @@ permit-user-rc empty Flag indicating that execution of | |||
291 | of this script will not be permitted if | 303 | of this script will not be permitted if |
292 | this option is not present. | 304 | this option is not present. |
293 | 305 | ||
294 | $OpenBSD: PROTOCOL.certkeys,v 1.13 2017/11/03 02:32:19 djm Exp $ | 306 | $OpenBSD: PROTOCOL.certkeys,v 1.15 2018/07/03 11:39:54 djm Exp $ |
diff --git a/PROTOCOL.chacha20poly1305 b/PROTOCOL.chacha20poly1305 index 4857d3853..9ce2a1e3a 100644 --- a/PROTOCOL.chacha20poly1305 +++ b/PROTOCOL.chacha20poly1305 | |||
@@ -16,7 +16,7 @@ that computes a 128 bit integrity tag given a message and a single-use | |||
16 | The chacha20-poly1305@openssh.com combines these two primitives into an | 16 | The chacha20-poly1305@openssh.com combines these two primitives into an |
17 | authenticated encryption mode. The construction used is based on that | 17 | authenticated encryption mode. The construction used is based on that |
18 | proposed for TLS by Adam Langley in [3], but differs in the layout of | 18 | proposed for TLS by Adam Langley in [3], but differs in the layout of |
19 | data passed to the MAC and in the addition of encyption of the packet | 19 | data passed to the MAC and in the addition of encryption of the packet |
20 | lengths. | 20 | lengths. |
21 | 21 | ||
22 | Negotiation | 22 | Negotiation |
@@ -103,5 +103,5 @@ References | |||
103 | [3] "ChaCha20 and Poly1305 based Cipher Suites for TLS", Adam Langley | 103 | [3] "ChaCha20 and Poly1305 based Cipher Suites for TLS", Adam Langley |
104 | http://tools.ietf.org/html/draft-agl-tls-chacha20poly1305-03 | 104 | http://tools.ietf.org/html/draft-agl-tls-chacha20poly1305-03 |
105 | 105 | ||
106 | $OpenBSD: PROTOCOL.chacha20poly1305,v 1.3 2016/05/03 13:10:24 djm Exp $ | 106 | $OpenBSD: PROTOCOL.chacha20poly1305,v 1.4 2018/04/10 00:10:49 djm Exp $ |
107 | 107 | ||
diff --git a/PROTOCOL.krl b/PROTOCOL.krl index b9695107b..f319bad21 100644 --- a/PROTOCOL.krl +++ b/PROTOCOL.krl | |||
@@ -145,7 +145,7 @@ This section may appear multiple times. | |||
145 | 5. KRL signature sections | 145 | 5. KRL signature sections |
146 | 146 | ||
147 | The KRL_SECTION_SIGNATURE section serves a different purpose to the | 147 | The KRL_SECTION_SIGNATURE section serves a different purpose to the |
148 | preceeding ones: to provide cryptographic authentication of a KRL that | 148 | preceding ones: to provide cryptographic authentication of a KRL that |
149 | is retrieved over a channel that does not provide integrity protection. | 149 | is retrieved over a channel that does not provide integrity protection. |
150 | Its format is slightly different to the previously-described sections: | 150 | Its format is slightly different to the previously-described sections: |
151 | in order to simplify the signature generation, it includes as a "body" | 151 | in order to simplify the signature generation, it includes as a "body" |
@@ -166,4 +166,4 @@ Implementations that retrieve KRLs over untrusted channels must verify | |||
166 | signatures. Signature sections are optional for KRLs distributed by | 166 | signatures. Signature sections are optional for KRLs distributed by |
167 | trusted means. | 167 | trusted means. |
168 | 168 | ||
169 | $OpenBSD: PROTOCOL.krl,v 1.3 2015/01/30 01:10:33 djm Exp $ | 169 | $OpenBSD: PROTOCOL.krl,v 1.4 2018/04/10 00:10:49 djm Exp $ |
@@ -1,4 +1,4 @@ | |||
1 | See https://www.openssh.com/releasenotes.html#7.7p1 for the release notes. | 1 | See https://www.openssh.com/releasenotes.html#7.8p1 for the release notes. |
2 | 2 | ||
3 | Please read https://www.openssh.com/report.html for bug reporting | 3 | Please read https://www.openssh.com/report.html for bug reporting |
4 | instructions and note that we do not use Github for bug reporting or | 4 | instructions and note that we do not use Github for bug reporting or |
diff --git a/README.platform b/README.platform index c7be95fb6..9210e07c8 100644 --- a/README.platform +++ b/README.platform | |||
@@ -80,7 +80,7 @@ added to /etc/security/audit_event: | |||
80 | 32800:AUE_openssh:OpenSSH login:lo | 80 | 32800:AUE_openssh:OpenSSH login:lo |
81 | 81 | ||
82 | The BSM audit event range available for third party TCB applications is | 82 | The BSM audit event range available for third party TCB applications is |
83 | 32768 - 65535. Event number 32800 has been choosen for AUE_openssh. | 83 | 32768 - 65535. Event number 32800 has been chosen for AUE_openssh. |
84 | There is no official registry of 3rd party event numbers, so if this | 84 | There is no official registry of 3rd party event numbers, so if this |
85 | number is already in use on your system, you may change it at build time | 85 | number is already in use on your system, you may change it at build time |
86 | by configure'ing --with-cflags=-DAUE_openssh=32801 then rebuilding. | 86 | by configure'ing --with-cflags=-DAUE_openssh=32801 then rebuilding. |
@@ -35,7 +35,7 @@ Programming: | |||
35 | - Use different PAM service name for kbdint vs regular auth (suggest from | 35 | - Use different PAM service name for kbdint vs regular auth (suggest from |
36 | Solar Designer) | 36 | Solar Designer) |
37 | - Ability to select which ChallengeResponseAuthentications may be used | 37 | - Ability to select which ChallengeResponseAuthentications may be used |
38 | and order to try them in e.g. "ChallengeResponseAuthentication skey, pam" | 38 | and order to try them in e.g. "ChallengeResponseAuthentication pam" |
39 | 39 | ||
40 | - Complete Tru64 SIA support | 40 | - Complete Tru64 SIA support |
41 | - It looks like we could merge it into the password auth code to cut down | 41 | - It looks like we could merge it into the password auth code to cut down |
@@ -57,10 +57,10 @@ Clean up configure/makefiles: | |||
57 | - Replace the whole u_intXX_t evilness in acconfig.h with something better??? | 57 | - Replace the whole u_intXX_t evilness in acconfig.h with something better??? |
58 | - Do it in configure.ac | 58 | - Do it in configure.ac |
59 | 59 | ||
60 | - Consider splitting the u_intXX_t test for sys/bitype.h into seperate test | 60 | - Consider splitting the u_intXX_t test for sys/bitype.h into separate test |
61 | to allow people to (right/wrongfully) link against Bind directly. | 61 | to allow people to (right/wrongfully) link against Bind directly. |
62 | 62 | ||
63 | - Consider splitting configure.ac into seperate files which do logically | 63 | - Consider splitting configure.ac into separate files which do logically |
64 | similar tests. E.g move all the type detection stuff into one file, | 64 | similar tests. E.g move all the type detection stuff into one file, |
65 | entropy related stuff into another. | 65 | entropy related stuff into another. |
66 | 66 | ||
diff --git a/aclocal.m4 b/aclocal.m4 index ac6b6684a..25ecc49a2 100644 --- a/aclocal.m4 +++ b/aclocal.m4 | |||
@@ -25,7 +25,7 @@ int main(int argc, char **argv) { | |||
25 | } | 25 | } |
26 | ]])], | 26 | ]])], |
27 | [ | 27 | [ |
28 | if `grep -i "unrecognized option" conftest.err >/dev/null` | 28 | if $ac_cv_path_EGREP -i "unrecognized option|warning.*ignored" conftest.err >/dev/null |
29 | then | 29 | then |
30 | AC_MSG_RESULT([no]) | 30 | AC_MSG_RESULT([no]) |
31 | CFLAGS="$saved_CFLAGS" | 31 | CFLAGS="$saved_CFLAGS" |
@@ -63,7 +63,7 @@ int main(int argc, char **argv) { | |||
63 | } | 63 | } |
64 | ]])], | 64 | ]])], |
65 | [ | 65 | [ |
66 | if `grep -i "unrecognized option" conftest.err >/dev/null` | 66 | if $ac_cv_path_EGREP -i "unrecognized option|warning.*ignored" conftest.err >/dev/null |
67 | then | 67 | then |
68 | AC_MSG_RESULT([no]) | 68 | AC_MSG_RESULT([no]) |
69 | CFLAGS="$saved_CFLAGS" | 69 | CFLAGS="$saved_CFLAGS" |
@@ -100,8 +100,15 @@ int main(int argc, char **argv) { | |||
100 | exit(0); | 100 | exit(0); |
101 | } | 101 | } |
102 | ]])], | 102 | ]])], |
103 | [ AC_MSG_RESULT([yes]) | 103 | [ |
104 | LDFLAGS="$saved_LDFLAGS $_define_flag"], | 104 | if $ac_cv_path_EGREP -i "unrecognized option|warning.*ignored" conftest.err >/dev/null |
105 | then | ||
106 | AC_MSG_RESULT([no]) | ||
107 | LDFLAGS="$saved_LDFLAGS" | ||
108 | else | ||
109 | AC_MSG_RESULT([yes]) | ||
110 | LDFLAGS="$saved_LDFLAGS $_define_flag" | ||
111 | fi ], | ||
105 | [ AC_MSG_RESULT([no]) | 112 | [ AC_MSG_RESULT([no]) |
106 | LDFLAGS="$saved_LDFLAGS" ] | 113 | LDFLAGS="$saved_LDFLAGS" ] |
107 | ) | 114 | ) |
diff --git a/addrmatch.c b/addrmatch.c index 8658e105a..5a402d065 100644 --- a/addrmatch.c +++ b/addrmatch.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: addrmatch.c,v 1.13 2016/09/21 16:55:42 djm Exp $ */ | 1 | /* $OpenBSD: addrmatch.c,v 1.14 2018/07/31 03:07:24 djm Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Copyright (c) 2004-2008 Damien Miller <djm@mindrot.org> | 4 | * Copyright (c) 2004-2008 Damien Miller <djm@mindrot.org> |
@@ -205,25 +205,24 @@ addr_cmp(const struct xaddr *a, const struct xaddr *b) | |||
205 | static int | 205 | static int |
206 | addr_pton(const char *p, struct xaddr *n) | 206 | addr_pton(const char *p, struct xaddr *n) |
207 | { | 207 | { |
208 | struct addrinfo hints, *ai; | 208 | struct addrinfo hints, *ai = NULL; |
209 | int ret = -1; | ||
209 | 210 | ||
210 | memset(&hints, '\0', sizeof(hints)); | 211 | memset(&hints, '\0', sizeof(hints)); |
211 | hints.ai_flags = AI_NUMERICHOST; | 212 | hints.ai_flags = AI_NUMERICHOST; |
212 | 213 | ||
213 | if (p == NULL || getaddrinfo(p, NULL, &hints, &ai) != 0) | 214 | if (p == NULL || getaddrinfo(p, NULL, &hints, &ai) != 0) |
214 | return -1; | 215 | goto out; |
215 | |||
216 | if (ai == NULL || ai->ai_addr == NULL) | 216 | if (ai == NULL || ai->ai_addr == NULL) |
217 | return -1; | 217 | goto out; |
218 | 218 | if (n != NULL && addr_sa_to_xaddr(ai->ai_addr, ai->ai_addrlen, n) == -1) | |
219 | if (n != NULL && | 219 | goto out; |
220 | addr_sa_to_xaddr(ai->ai_addr, ai->ai_addrlen, n) == -1) { | 220 | /* success */ |
221 | ret = 0; | ||
222 | out: | ||
223 | if (ai != NULL) | ||
221 | freeaddrinfo(ai); | 224 | freeaddrinfo(ai); |
222 | return -1; | 225 | return ret; |
223 | } | ||
224 | |||
225 | freeaddrinfo(ai); | ||
226 | return 0; | ||
227 | } | 226 | } |
228 | 227 | ||
229 | /* | 228 | /* |
diff --git a/audit-bsm.c b/audit-bsm.c index f8e0bea89..1409f69ae 100644 --- a/audit-bsm.c +++ b/audit-bsm.c | |||
@@ -49,7 +49,6 @@ | |||
49 | 49 | ||
50 | #include "ssh.h" | 50 | #include "ssh.h" |
51 | #include "log.h" | 51 | #include "log.h" |
52 | #include "key.h" | ||
53 | #include "hostfile.h" | 52 | #include "hostfile.h" |
54 | #include "auth.h" | 53 | #include "auth.h" |
55 | #include "xmalloc.h" | 54 | #include "xmalloc.h" |
@@ -26,12 +26,12 @@ | |||
26 | 26 | ||
27 | #include <stdarg.h> | 27 | #include <stdarg.h> |
28 | #include <string.h> | 28 | #include <string.h> |
29 | #include <unistd.h> | ||
29 | 30 | ||
30 | #ifdef SSH_AUDIT_EVENTS | 31 | #ifdef SSH_AUDIT_EVENTS |
31 | 32 | ||
32 | #include "audit.h" | 33 | #include "audit.h" |
33 | #include "log.h" | 34 | #include "log.h" |
34 | #include "key.h" | ||
35 | #include "hostfile.h" | 35 | #include "hostfile.h" |
36 | #include "auth.h" | 36 | #include "auth.h" |
37 | 37 | ||
diff --git a/auth-bsdauth.c b/auth-bsdauth.c index e00718f2e..4dc5045c2 100644 --- a/auth-bsdauth.c +++ b/auth-bsdauth.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: auth-bsdauth.c,v 1.14 2015/10/20 23:24:25 mmcc Exp $ */ | 1 | /* $OpenBSD: auth-bsdauth.c,v 1.15 2018/07/09 21:35:50 markus Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2001 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2001 Markus Friedl. All rights reserved. |
4 | * | 4 | * |
@@ -33,11 +33,11 @@ | |||
33 | 33 | ||
34 | #ifdef BSD_AUTH | 34 | #ifdef BSD_AUTH |
35 | #include "xmalloc.h" | 35 | #include "xmalloc.h" |
36 | #include "key.h" | 36 | #include "sshkey.h" |
37 | #include "sshbuf.h" | ||
37 | #include "hostfile.h" | 38 | #include "hostfile.h" |
38 | #include "auth.h" | 39 | #include "auth.h" |
39 | #include "log.h" | 40 | #include "log.h" |
40 | #include "buffer.h" | ||
41 | #ifdef GSSAPI | 41 | #ifdef GSSAPI |
42 | #include "ssh-gss.h" | 42 | #include "ssh-gss.h" |
43 | #endif | 43 | #endif |
diff --git a/auth-krb5.c b/auth-krb5.c index a5a81ed2e..3096f1c8e 100644 --- a/auth-krb5.c +++ b/auth-krb5.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: auth-krb5.c,v 1.22 2016/05/04 14:22:33 markus Exp $ */ | 1 | /* $OpenBSD: auth-krb5.c,v 1.23 2018/07/09 21:35:50 markus Exp $ */ |
2 | /* | 2 | /* |
3 | * Kerberos v5 authentication and ticket-passing routines. | 3 | * Kerberos v5 authentication and ticket-passing routines. |
4 | * | 4 | * |
@@ -38,11 +38,11 @@ | |||
38 | #include "ssh.h" | 38 | #include "ssh.h" |
39 | #include "packet.h" | 39 | #include "packet.h" |
40 | #include "log.h" | 40 | #include "log.h" |
41 | #include "buffer.h" | 41 | #include "sshbuf.h" |
42 | #include "sshkey.h" | ||
42 | #include "misc.h" | 43 | #include "misc.h" |
43 | #include "servconf.h" | 44 | #include "servconf.h" |
44 | #include "uidswap.h" | 45 | #include "uidswap.h" |
45 | #include "key.h" | ||
46 | #include "hostfile.h" | 46 | #include "hostfile.h" |
47 | #include "auth.h" | 47 | #include "auth.h" |
48 | 48 | ||
diff --git a/auth-options.c b/auth-options.c index b528c197a..27c0eb05e 100644 --- a/auth-options.c +++ b/auth-options.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: auth-options.c,v 1.78 2018/03/14 05:35:40 djm Exp $ */ | 1 | /* $OpenBSD: auth-options.c,v 1.83 2018/06/19 02:59:41 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2018 Damien Miller <djm@mindrot.org> | 3 | * Copyright (c) 2018 Damien Miller <djm@mindrot.org> |
4 | * | 4 | * |
@@ -283,6 +283,10 @@ sshauthopt_free(struct sshauthopt *opts) | |||
283 | free(opts->permitopen[i]); | 283 | free(opts->permitopen[i]); |
284 | free(opts->permitopen); | 284 | free(opts->permitopen); |
285 | 285 | ||
286 | for (i = 0; i < opts->npermitlisten; i++) | ||
287 | free(opts->permitlisten[i]); | ||
288 | free(opts->permitlisten); | ||
289 | |||
286 | explicit_bzero(opts, sizeof(*opts)); | 290 | explicit_bzero(opts, sizeof(*opts)); |
287 | free(opts); | 291 | free(opts); |
288 | } | 292 | } |
@@ -304,10 +308,82 @@ sshauthopt_new_with_keys_defaults(void) | |||
304 | return ret; | 308 | return ret; |
305 | } | 309 | } |
306 | 310 | ||
311 | /* | ||
312 | * Parse and record a permitopen/permitlisten directive. | ||
313 | * Return 0 on success. Return -1 on failure and sets *errstrp to error reason. | ||
314 | */ | ||
315 | static int | ||
316 | handle_permit(const char **optsp, int allow_bare_port, | ||
317 | char ***permitsp, size_t *npermitsp, const char **errstrp) | ||
318 | { | ||
319 | char *opt, *tmp, *cp, *host, **permits = *permitsp; | ||
320 | size_t npermits = *npermitsp; | ||
321 | const char *errstr = "unknown error"; | ||
322 | |||
323 | if (npermits > INT_MAX) { | ||
324 | *errstrp = "too many permission directives"; | ||
325 | return -1; | ||
326 | } | ||
327 | if ((opt = opt_dequote(optsp, &errstr)) == NULL) { | ||
328 | return -1; | ||
329 | } | ||
330 | if (allow_bare_port && strchr(opt, ':') == NULL) { | ||
331 | /* | ||
332 | * Allow a bare port number in permitlisten to indicate a | ||
333 | * listen_host wildcard. | ||
334 | */ | ||
335 | if (asprintf(&tmp, "*:%s", opt) < 0) { | ||
336 | *errstrp = "memory allocation failed"; | ||
337 | return -1; | ||
338 | } | ||
339 | free(opt); | ||
340 | opt = tmp; | ||
341 | } | ||
342 | if ((tmp = strdup(opt)) == NULL) { | ||
343 | free(opt); | ||
344 | *errstrp = "memory allocation failed"; | ||
345 | return -1; | ||
346 | } | ||
347 | cp = tmp; | ||
348 | /* validate syntax before recording it. */ | ||
349 | host = hpdelim(&cp); | ||
350 | if (host == NULL || strlen(host) >= NI_MAXHOST) { | ||
351 | free(tmp); | ||
352 | free(opt); | ||
353 | *errstrp = "invalid permission hostname"; | ||
354 | return -1; | ||
355 | } | ||
356 | /* | ||
357 | * don't want to use permitopen_port to avoid | ||
358 | * dependency on channels.[ch] here. | ||
359 | */ | ||
360 | if (cp == NULL || | ||
361 | (strcmp(cp, "*") != 0 && a2port(cp) <= 0)) { | ||
362 | free(tmp); | ||
363 | free(opt); | ||
364 | *errstrp = "invalid permission port"; | ||
365 | return -1; | ||
366 | } | ||
367 | /* XXX - add streamlocal support */ | ||
368 | free(tmp); | ||
369 | /* Record it */ | ||
370 | if ((permits = recallocarray(permits, npermits, npermits + 1, | ||
371 | sizeof(*permits))) == NULL) { | ||
372 | free(opt); | ||
373 | /* NB. don't update *permitsp if alloc fails */ | ||
374 | *errstrp = "memory allocation failed"; | ||
375 | return -1; | ||
376 | } | ||
377 | permits[npermits++] = opt; | ||
378 | *permitsp = permits; | ||
379 | *npermitsp = npermits; | ||
380 | return 0; | ||
381 | } | ||
382 | |||
307 | struct sshauthopt * | 383 | struct sshauthopt * |
308 | sshauthopt_parse(const char *opts, const char **errstrp) | 384 | sshauthopt_parse(const char *opts, const char **errstrp) |
309 | { | 385 | { |
310 | char **oarray, *opt, *cp, *tmp, *host; | 386 | char **oarray, *opt, *cp, *tmp; |
311 | int r; | 387 | int r; |
312 | struct sshauthopt *ret = NULL; | 388 | struct sshauthopt *ret = NULL; |
313 | const char *errstr = "unknown error"; | 389 | const char *errstr = "unknown error"; |
@@ -394,7 +470,7 @@ sshauthopt_parse(const char *opts, const char **errstrp) | |||
394 | goto fail; | 470 | goto fail; |
395 | } | 471 | } |
396 | for (cp = opt; cp < tmp; cp++) { | 472 | for (cp = opt; cp < tmp; cp++) { |
397 | if (!isalnum((u_char)*cp)) { | 473 | if (!isalnum((u_char)*cp) && *cp != '_') { |
398 | free(opt); | 474 | free(opt); |
399 | errstr = "invalid environment string"; | 475 | errstr = "invalid environment string"; |
400 | goto fail; | 476 | goto fail; |
@@ -410,48 +486,13 @@ sshauthopt_parse(const char *opts, const char **errstrp) | |||
410 | } | 486 | } |
411 | ret->env[ret->nenv++] = opt; | 487 | ret->env[ret->nenv++] = opt; |
412 | } else if (opt_match(&opts, "permitopen")) { | 488 | } else if (opt_match(&opts, "permitopen")) { |
413 | if (ret->npermitopen > INT_MAX) { | 489 | if (handle_permit(&opts, 0, &ret->permitopen, |
414 | errstr = "too many permitopens"; | 490 | &ret->npermitopen, &errstr) != 0) |
415 | goto fail; | ||
416 | } | ||
417 | if ((opt = opt_dequote(&opts, &errstr)) == NULL) | ||
418 | goto fail; | ||
419 | if ((tmp = strdup(opt)) == NULL) { | ||
420 | free(opt); | ||
421 | goto alloc_fail; | ||
422 | } | ||
423 | cp = tmp; | ||
424 | /* validate syntax of permitopen before recording it. */ | ||
425 | host = hpdelim(&cp); | ||
426 | if (host == NULL || strlen(host) >= NI_MAXHOST) { | ||
427 | free(tmp); | ||
428 | free(opt); | ||
429 | errstr = "invalid permitopen hostname"; | ||
430 | goto fail; | 491 | goto fail; |
431 | } | 492 | } else if (opt_match(&opts, "permitlisten")) { |
432 | /* | 493 | if (handle_permit(&opts, 1, &ret->permitlisten, |
433 | * don't want to use permitopen_port to avoid | 494 | &ret->npermitlisten, &errstr) != 0) |
434 | * dependency on channels.[ch] here. | ||
435 | */ | ||
436 | if (cp == NULL || | ||
437 | (strcmp(cp, "*") != 0 && a2port(cp) <= 0)) { | ||
438 | free(tmp); | ||
439 | free(opt); | ||
440 | errstr = "invalid permitopen port"; | ||
441 | goto fail; | 495 | goto fail; |
442 | } | ||
443 | /* XXX - add streamlocal support */ | ||
444 | free(tmp); | ||
445 | /* Record it */ | ||
446 | oarray = ret->permitopen; | ||
447 | if ((ret->permitopen = recallocarray(ret->permitopen, | ||
448 | ret->npermitopen, ret->npermitopen + 1, | ||
449 | sizeof(*ret->permitopen))) == NULL) { | ||
450 | free(opt); | ||
451 | ret->permitopen = oarray; | ||
452 | goto alloc_fail; | ||
453 | } | ||
454 | ret->permitopen[ret->npermitopen++] = opt; | ||
455 | } else if (opt_match(&opts, "tunnel")) { | 496 | } else if (opt_match(&opts, "tunnel")) { |
456 | if ((opt = opt_dequote(&opts, &errstr)) == NULL) | 497 | if ((opt = opt_dequote(&opts, &errstr)) == NULL) |
457 | goto fail; | 498 | goto fail; |
@@ -554,7 +595,10 @@ sshauthopt_merge(const struct sshauthopt *primary, | |||
554 | if (tmp != NULL && (ret->required_from_host_keys = strdup(tmp)) == NULL) | 595 | if (tmp != NULL && (ret->required_from_host_keys = strdup(tmp)) == NULL) |
555 | goto alloc_fail; | 596 | goto alloc_fail; |
556 | 597 | ||
557 | /* force_tun_device, permitopen and environment prefer the primary. */ | 598 | /* |
599 | * force_tun_device, permitopen/permitlisten and environment all | ||
600 | * prefer the primary. | ||
601 | */ | ||
558 | ret->force_tun_device = primary->force_tun_device; | 602 | ret->force_tun_device = primary->force_tun_device; |
559 | if (ret->force_tun_device == -1) | 603 | if (ret->force_tun_device == -1) |
560 | ret->force_tun_device = additional->force_tun_device; | 604 | ret->force_tun_device = additional->force_tun_device; |
@@ -577,6 +621,16 @@ sshauthopt_merge(const struct sshauthopt *primary, | |||
577 | goto alloc_fail; | 621 | goto alloc_fail; |
578 | } | 622 | } |
579 | 623 | ||
624 | if (primary->npermitlisten > 0) { | ||
625 | if (dup_strings(&ret->permitlisten, &ret->npermitlisten, | ||
626 | primary->permitlisten, primary->npermitlisten) != 0) | ||
627 | goto alloc_fail; | ||
628 | } else if (additional->npermitlisten > 0) { | ||
629 | if (dup_strings(&ret->permitlisten, &ret->npermitlisten, | ||
630 | additional->permitlisten, additional->npermitlisten) != 0) | ||
631 | goto alloc_fail; | ||
632 | } | ||
633 | |||
580 | /* Flags are logical-AND (i.e. must be set in both for permission) */ | 634 | /* Flags are logical-AND (i.e. must be set in both for permission) */ |
581 | #define OPTFLAG(x) ret->x = (primary->x == 1) && (additional->x == 1) | 635 | #define OPTFLAG(x) ret->x = (primary->x == 1) && (additional->x == 1) |
582 | OPTFLAG(permit_port_forwarding_flag); | 636 | OPTFLAG(permit_port_forwarding_flag); |
@@ -669,7 +723,9 @@ sshauthopt_copy(const struct sshauthopt *orig) | |||
669 | 723 | ||
670 | if (dup_strings(&ret->env, &ret->nenv, orig->env, orig->nenv) != 0 || | 724 | if (dup_strings(&ret->env, &ret->nenv, orig->env, orig->nenv) != 0 || |
671 | dup_strings(&ret->permitopen, &ret->npermitopen, | 725 | dup_strings(&ret->permitopen, &ret->npermitopen, |
672 | orig->permitopen, orig->npermitopen) != 0) { | 726 | orig->permitopen, orig->npermitopen) != 0 || |
727 | dup_strings(&ret->permitlisten, &ret->npermitlisten, | ||
728 | orig->permitlisten, orig->npermitlisten) != 0) { | ||
673 | sshauthopt_free(ret); | 729 | sshauthopt_free(ret); |
674 | return NULL; | 730 | return NULL; |
675 | } | 731 | } |
@@ -805,7 +861,9 @@ sshauthopt_serialise(const struct sshauthopt *opts, struct sshbuf *m, | |||
805 | if ((r = serialise_array(m, opts->env, | 861 | if ((r = serialise_array(m, opts->env, |
806 | untrusted ? 0 : opts->nenv)) != 0 || | 862 | untrusted ? 0 : opts->nenv)) != 0 || |
807 | (r = serialise_array(m, opts->permitopen, | 863 | (r = serialise_array(m, opts->permitopen, |
808 | untrusted ? 0 : opts->npermitopen)) != 0) | 864 | untrusted ? 0 : opts->npermitopen)) != 0 || |
865 | (r = serialise_array(m, opts->permitlisten, | ||
866 | untrusted ? 0 : opts->npermitlisten)) != 0) | ||
809 | return r; | 867 | return r; |
810 | 868 | ||
811 | /* success */ | 869 | /* success */ |
@@ -859,7 +917,9 @@ sshauthopt_deserialise(struct sshbuf *m, struct sshauthopt **optsp) | |||
859 | /* Array options */ | 917 | /* Array options */ |
860 | if ((r = deserialise_array(m, &opts->env, &opts->nenv)) != 0 || | 918 | if ((r = deserialise_array(m, &opts->env, &opts->nenv)) != 0 || |
861 | (r = deserialise_array(m, | 919 | (r = deserialise_array(m, |
862 | &opts->permitopen, &opts->npermitopen)) != 0) | 920 | &opts->permitopen, &opts->npermitopen)) != 0 || |
921 | (r = deserialise_array(m, | ||
922 | &opts->permitlisten, &opts->npermitlisten)) != 0) | ||
863 | goto out; | 923 | goto out; |
864 | 924 | ||
865 | /* success */ | 925 | /* success */ |
diff --git a/auth-options.h b/auth-options.h index bf59b30be..0462983b5 100644 --- a/auth-options.h +++ b/auth-options.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: auth-options.h,v 1.26 2018/03/12 00:52:01 djm Exp $ */ | 1 | /* $OpenBSD: auth-options.h,v 1.27 2018/06/06 18:23:32 djm Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Copyright (c) 2018 Damien Miller <djm@mindrot.org> | 4 | * Copyright (c) 2018 Damien Miller <djm@mindrot.org> |
@@ -55,6 +55,10 @@ struct sshauthopt { | |||
55 | size_t npermitopen; | 55 | size_t npermitopen; |
56 | char **permitopen; | 56 | char **permitopen; |
57 | 57 | ||
58 | /* Permitted listens (remote forwarding) */ | ||
59 | size_t npermitlisten; | ||
60 | char **permitlisten; | ||
61 | |||
58 | /* | 62 | /* |
59 | * Permitted host/addresses (comma-separated) | 63 | * Permitted host/addresses (comma-separated) |
60 | * Caller must check source address matches both lists (if present). | 64 | * Caller must check source address matches both lists (if present). |
diff --git a/auth-pam.c b/auth-pam.c index 00ba87775..8c0138362 100644 --- a/auth-pam.c +++ b/auth-pam.c | |||
@@ -86,8 +86,8 @@ extern char *__progname; | |||
86 | #endif | 86 | #endif |
87 | 87 | ||
88 | #include "xmalloc.h" | 88 | #include "xmalloc.h" |
89 | #include "buffer.h" | 89 | #include "sshbuf.h" |
90 | #include "key.h" | 90 | #include "ssherr.h" |
91 | #include "hostfile.h" | 91 | #include "hostfile.h" |
92 | #include "auth.h" | 92 | #include "auth.h" |
93 | #include "auth-pam.h" | 93 | #include "auth-pam.h" |
@@ -105,7 +105,7 @@ extern char *__progname; | |||
105 | #include "monitor_wrap.h" | 105 | #include "monitor_wrap.h" |
106 | 106 | ||
107 | extern ServerOptions options; | 107 | extern ServerOptions options; |
108 | extern Buffer loginmsg; | 108 | extern struct sshbuf *loginmsg; |
109 | extern u_int utmp_len; | 109 | extern u_int utmp_len; |
110 | 110 | ||
111 | /* so we don't silently change behaviour */ | 111 | /* so we don't silently change behaviour */ |
@@ -313,44 +313,54 @@ sshpam_password_change_required(int reqd) | |||
313 | 313 | ||
314 | /* Import regular and PAM environment from subprocess */ | 314 | /* Import regular and PAM environment from subprocess */ |
315 | static void | 315 | static void |
316 | import_environments(Buffer *b) | 316 | import_environments(struct sshbuf *b) |
317 | { | 317 | { |
318 | char *env; | 318 | char *env; |
319 | u_int i, num_env; | 319 | u_int n, i, num_env; |
320 | int err; | 320 | int r; |
321 | 321 | ||
322 | debug3("PAM: %s entering", __func__); | 322 | debug3("PAM: %s entering", __func__); |
323 | 323 | ||
324 | #ifndef UNSUPPORTED_POSIX_THREADS_HACK | 324 | #ifndef UNSUPPORTED_POSIX_THREADS_HACK |
325 | /* Import variables set by do_pam_account */ | 325 | /* Import variables set by do_pam_account */ |
326 | sshpam_account_status = buffer_get_int(b); | 326 | if ((r = sshbuf_get_u32(b, &n)) != 0) |
327 | sshpam_password_change_required(buffer_get_int(b)); | 327 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
328 | if (n > INT_MAX) | ||
329 | fatal("%s: invalid PAM account status %u", __func__, n); | ||
330 | sshpam_account_status = (int)n; | ||
331 | if ((r = sshbuf_get_u32(b, &n)) != 0) | ||
332 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
333 | sshpam_password_change_required(n != 0); | ||
328 | 334 | ||
329 | /* Import environment from subprocess */ | 335 | /* Import environment from subprocess */ |
330 | num_env = buffer_get_int(b); | 336 | if ((r = sshbuf_get_u32(b, &num_env)) != 0) |
337 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
331 | if (num_env > 1024) | 338 | if (num_env > 1024) |
332 | fatal("%s: received %u environment variables, expected <= 1024", | 339 | fatal("%s: received %u environment variables, expected <= 1024", |
333 | __func__, num_env); | 340 | __func__, num_env); |
334 | sshpam_env = xcalloc(num_env + 1, sizeof(*sshpam_env)); | 341 | sshpam_env = xcalloc(num_env + 1, sizeof(*sshpam_env)); |
335 | debug3("PAM: num env strings %d", num_env); | 342 | debug3("PAM: num env strings %d", num_env); |
336 | for(i = 0; i < num_env; i++) | 343 | for(i = 0; i < num_env; i++) { |
337 | sshpam_env[i] = buffer_get_string(b, NULL); | 344 | if ((r = sshbuf_get_cstring(b, &(sshpam_env[i]), NULL)) != 0) |
338 | 345 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | |
346 | } | ||
339 | sshpam_env[num_env] = NULL; | 347 | sshpam_env[num_env] = NULL; |
340 | 348 | ||
341 | /* Import PAM environment from subprocess */ | 349 | /* Import PAM environment from subprocess */ |
342 | num_env = buffer_get_int(b); | 350 | if ((r = sshbuf_get_u32(b, &num_env)) != 0) |
351 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
343 | debug("PAM: num PAM env strings %d", num_env); | 352 | debug("PAM: num PAM env strings %d", num_env); |
344 | for(i = 0; i < num_env; i++) { | 353 | for (i = 0; i < num_env; i++) { |
345 | env = buffer_get_string(b, NULL); | 354 | if ((r = sshbuf_get_cstring(b, &env, NULL)) != 0) |
346 | 355 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | |
347 | #ifdef HAVE_PAM_PUTENV | 356 | #ifdef HAVE_PAM_PUTENV |
348 | /* Errors are not fatal here */ | 357 | /* Errors are not fatal here */ |
349 | if ((err = pam_putenv(sshpam_handle, env)) != PAM_SUCCESS) { | 358 | if ((r = pam_putenv(sshpam_handle, env)) != PAM_SUCCESS) { |
350 | error("PAM: pam_putenv: %s", | 359 | error("PAM: pam_putenv: %s", |
351 | pam_strerror(sshpam_handle, sshpam_err)); | 360 | pam_strerror(sshpam_handle, r)); |
352 | } | 361 | } |
353 | #endif | 362 | #endif |
363 | /* XXX leak env? */ | ||
354 | } | 364 | } |
355 | #endif | 365 | #endif |
356 | } | 366 | } |
@@ -362,10 +372,11 @@ static int | |||
362 | sshpam_thread_conv(int n, sshpam_const struct pam_message **msg, | 372 | sshpam_thread_conv(int n, sshpam_const struct pam_message **msg, |
363 | struct pam_response **resp, void *data) | 373 | struct pam_response **resp, void *data) |
364 | { | 374 | { |
365 | Buffer buffer; | 375 | struct sshbuf *buffer; |
366 | struct pam_ctxt *ctxt; | 376 | struct pam_ctxt *ctxt; |
367 | struct pam_response *reply; | 377 | struct pam_response *reply; |
368 | int i; | 378 | int r, i; |
379 | u_char status; | ||
369 | 380 | ||
370 | debug3("PAM: %s entering, %d messages", __func__, n); | 381 | debug3("PAM: %s entering, %d messages", __func__, n); |
371 | *resp = NULL; | 382 | *resp = NULL; |
@@ -379,38 +390,52 @@ sshpam_thread_conv(int n, sshpam_const struct pam_message **msg, | |||
379 | return (PAM_CONV_ERR); | 390 | return (PAM_CONV_ERR); |
380 | 391 | ||
381 | if ((reply = calloc(n, sizeof(*reply))) == NULL) | 392 | if ((reply = calloc(n, sizeof(*reply))) == NULL) |
382 | return (PAM_CONV_ERR); | 393 | return PAM_CONV_ERR; |
394 | if ((buffer = sshbuf_new()) == NULL) { | ||
395 | free(reply); | ||
396 | return PAM_CONV_ERR; | ||
397 | } | ||
383 | 398 | ||
384 | buffer_init(&buffer); | ||
385 | for (i = 0; i < n; ++i) { | 399 | for (i = 0; i < n; ++i) { |
386 | switch (PAM_MSG_MEMBER(msg, i, msg_style)) { | 400 | switch (PAM_MSG_MEMBER(msg, i, msg_style)) { |
387 | case PAM_PROMPT_ECHO_OFF: | 401 | case PAM_PROMPT_ECHO_OFF: |
388 | case PAM_PROMPT_ECHO_ON: | 402 | case PAM_PROMPT_ECHO_ON: |
389 | buffer_put_cstring(&buffer, | 403 | if ((r = sshbuf_put_cstring(buffer, |
390 | PAM_MSG_MEMBER(msg, i, msg)); | 404 | PAM_MSG_MEMBER(msg, i, msg))) != 0) |
405 | fatal("%s: buffer error: %s", | ||
406 | __func__, ssh_err(r)); | ||
391 | if (ssh_msg_send(ctxt->pam_csock, | 407 | if (ssh_msg_send(ctxt->pam_csock, |
392 | PAM_MSG_MEMBER(msg, i, msg_style), &buffer) == -1) | 408 | PAM_MSG_MEMBER(msg, i, msg_style), buffer) == -1) |
393 | goto fail; | 409 | goto fail; |
394 | if (ssh_msg_recv(ctxt->pam_csock, &buffer) == -1) | 410 | |
411 | if (ssh_msg_recv(ctxt->pam_csock, buffer) == -1) | ||
395 | goto fail; | 412 | goto fail; |
396 | if (buffer_get_char(&buffer) != PAM_AUTHTOK) | 413 | if ((r = sshbuf_get_u8(buffer, &status)) != 0) |
414 | fatal("%s: buffer error: %s", | ||
415 | __func__, ssh_err(r)); | ||
416 | if (status != PAM_AUTHTOK) | ||
397 | goto fail; | 417 | goto fail; |
398 | reply[i].resp = buffer_get_string(&buffer, NULL); | 418 | if ((r = sshbuf_get_cstring(buffer, |
419 | &reply[i].resp, NULL)) != 0) | ||
420 | fatal("%s: buffer error: %s", | ||
421 | __func__, ssh_err(r)); | ||
399 | break; | 422 | break; |
400 | case PAM_ERROR_MSG: | 423 | case PAM_ERROR_MSG: |
401 | case PAM_TEXT_INFO: | 424 | case PAM_TEXT_INFO: |
402 | buffer_put_cstring(&buffer, | 425 | if ((r = sshbuf_put_cstring(buffer, |
403 | PAM_MSG_MEMBER(msg, i, msg)); | 426 | PAM_MSG_MEMBER(msg, i, msg))) != 0) |
427 | fatal("%s: buffer error: %s", | ||
428 | __func__, ssh_err(r)); | ||
404 | if (ssh_msg_send(ctxt->pam_csock, | 429 | if (ssh_msg_send(ctxt->pam_csock, |
405 | PAM_MSG_MEMBER(msg, i, msg_style), &buffer) == -1) | 430 | PAM_MSG_MEMBER(msg, i, msg_style), buffer) == -1) |
406 | goto fail; | 431 | goto fail; |
407 | break; | 432 | break; |
408 | default: | 433 | default: |
409 | goto fail; | 434 | goto fail; |
410 | } | 435 | } |
411 | buffer_clear(&buffer); | 436 | sshbuf_reset(buffer); |
412 | } | 437 | } |
413 | buffer_free(&buffer); | 438 | sshbuf_free(buffer); |
414 | *resp = reply; | 439 | *resp = reply; |
415 | return (PAM_SUCCESS); | 440 | return (PAM_SUCCESS); |
416 | 441 | ||
@@ -419,7 +444,7 @@ sshpam_thread_conv(int n, sshpam_const struct pam_message **msg, | |||
419 | free(reply[i].resp); | 444 | free(reply[i].resp); |
420 | } | 445 | } |
421 | free(reply); | 446 | free(reply); |
422 | buffer_free(&buffer); | 447 | sshbuf_free(buffer); |
423 | return (PAM_CONV_ERR); | 448 | return (PAM_CONV_ERR); |
424 | } | 449 | } |
425 | 450 | ||
@@ -430,9 +455,9 @@ static void * | |||
430 | sshpam_thread(void *ctxtp) | 455 | sshpam_thread(void *ctxtp) |
431 | { | 456 | { |
432 | struct pam_ctxt *ctxt = ctxtp; | 457 | struct pam_ctxt *ctxt = ctxtp; |
433 | Buffer buffer; | 458 | struct sshbuf *buffer = NULL; |
434 | struct pam_conv sshpam_conv; | 459 | struct pam_conv sshpam_conv; |
435 | int flags = (options.permit_empty_passwd == 0 ? | 460 | int r, flags = (options.permit_empty_passwd == 0 ? |
436 | PAM_DISALLOW_NULL_AUTHTOK : 0); | 461 | PAM_DISALLOW_NULL_AUTHTOK : 0); |
437 | #ifndef UNSUPPORTED_POSIX_THREADS_HACK | 462 | #ifndef UNSUPPORTED_POSIX_THREADS_HACK |
438 | extern char **environ; | 463 | extern char **environ; |
@@ -465,7 +490,9 @@ sshpam_thread(void *ctxtp) | |||
465 | if (sshpam_authctxt == NULL) | 490 | if (sshpam_authctxt == NULL) |
466 | fatal("%s: PAM authctxt not initialized", __func__); | 491 | fatal("%s: PAM authctxt not initialized", __func__); |
467 | 492 | ||
468 | buffer_init(&buffer); | 493 | if ((buffer = sshbuf_new()) == NULL) |
494 | fatal("%s: sshbuf_new failed", __func__); | ||
495 | |||
469 | sshpam_err = pam_set_item(sshpam_handle, PAM_CONV, | 496 | sshpam_err = pam_set_item(sshpam_handle, PAM_CONV, |
470 | (const void *)&sshpam_conv); | 497 | (const void *)&sshpam_conv); |
471 | if (sshpam_err != PAM_SUCCESS) | 498 | if (sshpam_err != PAM_SUCCESS) |
@@ -488,45 +515,59 @@ sshpam_thread(void *ctxtp) | |||
488 | sshpam_password_change_required(0); | 515 | sshpam_password_change_required(0); |
489 | } | 516 | } |
490 | 517 | ||
491 | buffer_put_cstring(&buffer, "OK"); | 518 | if ((r = sshbuf_put_cstring(buffer, "OK")) != 0) |
519 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
492 | 520 | ||
493 | #ifndef UNSUPPORTED_POSIX_THREADS_HACK | 521 | #ifndef UNSUPPORTED_POSIX_THREADS_HACK |
494 | /* Export variables set by do_pam_account */ | 522 | /* Export variables set by do_pam_account */ |
495 | buffer_put_int(&buffer, sshpam_account_status); | 523 | if ((r = sshbuf_put_u32(buffer, sshpam_account_status)) != 0 || |
496 | buffer_put_int(&buffer, sshpam_authctxt->force_pwchange); | 524 | (r = sshbuf_put_u32(buffer, sshpam_authctxt->force_pwchange)) != 0) |
525 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
497 | 526 | ||
498 | /* Export any environment strings set in child */ | 527 | /* Export any environment strings set in child */ |
499 | for(i = 0; environ[i] != NULL; i++) | 528 | for (i = 0; environ[i] != NULL; i++) { |
500 | ; /* Count */ | 529 | /* Count */ |
501 | buffer_put_int(&buffer, i); | 530 | if (i > INT_MAX) |
502 | for(i = 0; environ[i] != NULL; i++) | 531 | fatal("%s: too many enviornment strings", __func__); |
503 | buffer_put_cstring(&buffer, environ[i]); | 532 | } |
504 | 533 | if ((r = sshbuf_put_u32(buffer, i)) != 0) | |
534 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
535 | for (i = 0; environ[i] != NULL; i++) { | ||
536 | if ((r = sshbuf_put_cstring(buffer, environ[i])) != 0) | ||
537 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
538 | } | ||
505 | /* Export any environment strings set by PAM in child */ | 539 | /* Export any environment strings set by PAM in child */ |
506 | env_from_pam = pam_getenvlist(sshpam_handle); | 540 | env_from_pam = pam_getenvlist(sshpam_handle); |
507 | for(i = 0; env_from_pam != NULL && env_from_pam[i] != NULL; i++) | 541 | for (i = 0; env_from_pam != NULL && env_from_pam[i] != NULL; i++) { |
508 | ; /* Count */ | 542 | /* Count */ |
509 | buffer_put_int(&buffer, i); | 543 | if (i > INT_MAX) |
510 | for(i = 0; env_from_pam != NULL && env_from_pam[i] != NULL; i++) | 544 | fatal("%s: too many PAM enviornment strings", __func__); |
511 | buffer_put_cstring(&buffer, env_from_pam[i]); | 545 | } |
546 | if ((r = sshbuf_put_u32(buffer, i)) != 0) | ||
547 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
548 | for (i = 0; env_from_pam != NULL && env_from_pam[i] != NULL; i++) { | ||
549 | if ((r = sshbuf_put_cstring(buffer, env_from_pam[i])) != 0) | ||
550 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
551 | } | ||
512 | #endif /* UNSUPPORTED_POSIX_THREADS_HACK */ | 552 | #endif /* UNSUPPORTED_POSIX_THREADS_HACK */ |
513 | 553 | ||
514 | /* XXX - can't do much about an error here */ | 554 | /* XXX - can't do much about an error here */ |
515 | ssh_msg_send(ctxt->pam_csock, sshpam_err, &buffer); | 555 | ssh_msg_send(ctxt->pam_csock, sshpam_err, buffer); |
516 | buffer_free(&buffer); | 556 | sshbuf_free(buffer); |
517 | pthread_exit(NULL); | 557 | pthread_exit(NULL); |
518 | 558 | ||
519 | auth_fail: | 559 | auth_fail: |
520 | buffer_put_cstring(&buffer, | 560 | if ((r = sshbuf_put_cstring(buffer, |
521 | pam_strerror(sshpam_handle, sshpam_err)); | 561 | pam_strerror(sshpam_handle, sshpam_err))) != 0) |
562 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
522 | /* XXX - can't do much about an error here */ | 563 | /* XXX - can't do much about an error here */ |
523 | if (sshpam_err == PAM_ACCT_EXPIRED) | 564 | if (sshpam_err == PAM_ACCT_EXPIRED) |
524 | ssh_msg_send(ctxt->pam_csock, PAM_ACCT_EXPIRED, &buffer); | 565 | ssh_msg_send(ctxt->pam_csock, PAM_ACCT_EXPIRED, buffer); |
525 | else if (sshpam_maxtries_reached) | 566 | else if (sshpam_maxtries_reached) |
526 | ssh_msg_send(ctxt->pam_csock, PAM_MAXTRIES, &buffer); | 567 | ssh_msg_send(ctxt->pam_csock, PAM_MAXTRIES, buffer); |
527 | else | 568 | else |
528 | ssh_msg_send(ctxt->pam_csock, PAM_AUTH_ERR, &buffer); | 569 | ssh_msg_send(ctxt->pam_csock, PAM_AUTH_ERR, buffer); |
529 | buffer_free(&buffer); | 570 | sshbuf_free(buffer); |
530 | pthread_exit(NULL); | 571 | pthread_exit(NULL); |
531 | 572 | ||
532 | return (NULL); /* Avoid warning for non-pthread case */ | 573 | return (NULL); /* Avoid warning for non-pthread case */ |
@@ -563,8 +604,7 @@ sshpam_store_conv(int n, sshpam_const struct pam_message **msg, | |||
563 | struct pam_response **resp, void *data) | 604 | struct pam_response **resp, void *data) |
564 | { | 605 | { |
565 | struct pam_response *reply; | 606 | struct pam_response *reply; |
566 | int i; | 607 | int r, i; |
567 | size_t len; | ||
568 | 608 | ||
569 | debug3("PAM: %s called with %d messages", __func__, n); | 609 | debug3("PAM: %s called with %d messages", __func__, n); |
570 | *resp = NULL; | 610 | *resp = NULL; |
@@ -579,9 +619,10 @@ sshpam_store_conv(int n, sshpam_const struct pam_message **msg, | |||
579 | switch (PAM_MSG_MEMBER(msg, i, msg_style)) { | 619 | switch (PAM_MSG_MEMBER(msg, i, msg_style)) { |
580 | case PAM_ERROR_MSG: | 620 | case PAM_ERROR_MSG: |
581 | case PAM_TEXT_INFO: | 621 | case PAM_TEXT_INFO: |
582 | len = strlen(PAM_MSG_MEMBER(msg, i, msg)); | 622 | if ((r = sshbuf_putf(loginmsg, "%s\n", |
583 | buffer_append(&loginmsg, PAM_MSG_MEMBER(msg, i, msg), len); | 623 | PAM_MSG_MEMBER(msg, i, msg))) != 0) |
584 | buffer_append(&loginmsg, "\n", 1 ); | 624 | fatal("%s: buffer error: %s", |
625 | __func__, ssh_err(r)); | ||
585 | reply[i].resp_retcode = PAM_SUCCESS; | 626 | reply[i].resp_retcode = PAM_SUCCESS; |
586 | break; | 627 | break; |
587 | default: | 628 | default: |
@@ -674,6 +715,27 @@ sshpam_init(Authctxt *authctxt) | |||
674 | return (0); | 715 | return (0); |
675 | } | 716 | } |
676 | 717 | ||
718 | static void | ||
719 | expose_authinfo(const char *caller) | ||
720 | { | ||
721 | char *auth_info; | ||
722 | |||
723 | /* | ||
724 | * Expose authentication information to PAM. | ||
725 | * The environment variable is versioned. Please increment the | ||
726 | * version suffix if the format of session_info changes. | ||
727 | */ | ||
728 | if (sshpam_authctxt->session_info == NULL) | ||
729 | auth_info = xstrdup(""); | ||
730 | else if ((auth_info = sshbuf_dup_string( | ||
731 | sshpam_authctxt->session_info)) == NULL) | ||
732 | fatal("%s: sshbuf_dup_string failed", __func__); | ||
733 | |||
734 | debug2("%s: auth information in SSH_AUTH_INFO_0", caller); | ||
735 | do_pam_putenv("SSH_AUTH_INFO_0", auth_info); | ||
736 | free(auth_info); | ||
737 | } | ||
738 | |||
677 | static void * | 739 | static void * |
678 | sshpam_init_ctx(Authctxt *authctxt) | 740 | sshpam_init_ctx(Authctxt *authctxt) |
679 | { | 741 | { |
@@ -694,6 +756,7 @@ sshpam_init_ctx(Authctxt *authctxt) | |||
694 | return (NULL); | 756 | return (NULL); |
695 | } | 757 | } |
696 | 758 | ||
759 | expose_authinfo(__func__); | ||
697 | ctxt = xcalloc(1, sizeof *ctxt); | 760 | ctxt = xcalloc(1, sizeof *ctxt); |
698 | 761 | ||
699 | /* Start the authentication thread */ | 762 | /* Start the authentication thread */ |
@@ -721,25 +784,27 @@ sshpam_query(void *ctx, char **name, char **info, | |||
721 | u_int *num, char ***prompts, u_int **echo_on) | 784 | u_int *num, char ***prompts, u_int **echo_on) |
722 | { | 785 | { |
723 | struct ssh *ssh = active_state; /* XXX */ | 786 | struct ssh *ssh = active_state; /* XXX */ |
724 | Buffer buffer; | 787 | struct sshbuf *buffer; |
725 | struct pam_ctxt *ctxt = ctx; | 788 | struct pam_ctxt *ctxt = ctx; |
726 | size_t plen; | 789 | size_t plen; |
727 | u_char type; | 790 | u_char type; |
728 | char *msg; | 791 | char *msg; |
729 | size_t len, mlen; | 792 | size_t len, mlen; |
793 | int r; | ||
730 | 794 | ||
731 | debug3("PAM: %s entering", __func__); | 795 | debug3("PAM: %s entering", __func__); |
732 | buffer_init(&buffer); | 796 | if ((buffer = sshbuf_new()) == NULL) |
797 | fatal("%s: sshbuf_new failed", __func__); | ||
733 | *name = xstrdup(""); | 798 | *name = xstrdup(""); |
734 | *info = xstrdup(""); | 799 | *info = xstrdup(""); |
735 | *prompts = xmalloc(sizeof(char *)); | 800 | *prompts = xmalloc(sizeof(char *)); |
736 | **prompts = NULL; | 801 | **prompts = NULL; |
737 | plen = 0; | 802 | plen = 0; |
738 | *echo_on = xmalloc(sizeof(u_int)); | 803 | *echo_on = xmalloc(sizeof(u_int)); |
739 | while (ssh_msg_recv(ctxt->pam_psock, &buffer) == 0) { | 804 | while (ssh_msg_recv(ctxt->pam_psock, buffer) == 0) { |
740 | type = buffer_get_char(&buffer); | 805 | if ((r = sshbuf_get_u8(buffer, &type)) != 0 || |
741 | msg = buffer_get_string(&buffer, NULL); | 806 | (r = sshbuf_get_cstring(buffer, &msg, &mlen)) != 0) |
742 | mlen = strlen(msg); | 807 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
743 | switch (type) { | 808 | switch (type) { |
744 | case PAM_PROMPT_ECHO_ON: | 809 | case PAM_PROMPT_ECHO_ON: |
745 | case PAM_PROMPT_ECHO_OFF: | 810 | case PAM_PROMPT_ECHO_OFF: |
@@ -785,8 +850,10 @@ sshpam_query(void *ctx, char **name, char **info, | |||
785 | if (**prompts != NULL) { | 850 | if (**prompts != NULL) { |
786 | /* drain any accumulated messages */ | 851 | /* drain any accumulated messages */ |
787 | debug("PAM: %s", **prompts); | 852 | debug("PAM: %s", **prompts); |
788 | buffer_append(&loginmsg, **prompts, | 853 | if ((r = sshbuf_put(loginmsg, **prompts, |
789 | strlen(**prompts)); | 854 | strlen(**prompts))) != 0) |
855 | fatal("%s: buffer error: %s", | ||
856 | __func__, ssh_err(r)); | ||
790 | free(**prompts); | 857 | free(**prompts); |
791 | **prompts = NULL; | 858 | **prompts = NULL; |
792 | } | 859 | } |
@@ -797,7 +864,7 @@ sshpam_query(void *ctx, char **name, char **info, | |||
797 | fatal("Internal error: PAM auth " | 864 | fatal("Internal error: PAM auth " |
798 | "succeeded when it should have " | 865 | "succeeded when it should have " |
799 | "failed"); | 866 | "failed"); |
800 | import_environments(&buffer); | 867 | import_environments(buffer); |
801 | *num = 0; | 868 | *num = 0; |
802 | **echo_on = 0; | 869 | **echo_on = 0; |
803 | ctxt->pam_done = 1; | 870 | ctxt->pam_done = 1; |
@@ -848,9 +915,10 @@ fake_password(const char *wire_password) | |||
848 | static int | 915 | static int |
849 | sshpam_respond(void *ctx, u_int num, char **resp) | 916 | sshpam_respond(void *ctx, u_int num, char **resp) |
850 | { | 917 | { |
851 | Buffer buffer; | 918 | struct sshbuf *buffer; |
852 | struct pam_ctxt *ctxt = ctx; | 919 | struct pam_ctxt *ctxt = ctx; |
853 | char *fake; | 920 | char *fake; |
921 | int r; | ||
854 | 922 | ||
855 | debug2("PAM: %s entering, %u responses", __func__, num); | 923 | debug2("PAM: %s entering, %u responses", __func__, num); |
856 | switch (ctxt->pam_done) { | 924 | switch (ctxt->pam_done) { |
@@ -866,21 +934,24 @@ sshpam_respond(void *ctx, u_int num, char **resp) | |||
866 | error("PAM: expected one response, got %u", num); | 934 | error("PAM: expected one response, got %u", num); |
867 | return (-1); | 935 | return (-1); |
868 | } | 936 | } |
869 | buffer_init(&buffer); | 937 | if ((buffer = sshbuf_new()) == NULL) |
938 | fatal("%s: sshbuf_new failed", __func__); | ||
870 | if (sshpam_authctxt->valid && | 939 | if (sshpam_authctxt->valid && |
871 | (sshpam_authctxt->pw->pw_uid != 0 || | 940 | (sshpam_authctxt->pw->pw_uid != 0 || |
872 | options.permit_root_login == PERMIT_YES)) | 941 | options.permit_root_login == PERMIT_YES)) { |
873 | buffer_put_cstring(&buffer, *resp); | 942 | if ((r = sshbuf_put_cstring(buffer, *resp)) != 0) |
874 | else { | 943 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
944 | } else { | ||
875 | fake = fake_password(*resp); | 945 | fake = fake_password(*resp); |
876 | buffer_put_cstring(&buffer, fake); | 946 | if ((r = sshbuf_put_cstring(buffer, fake)) != 0) |
947 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
877 | free(fake); | 948 | free(fake); |
878 | } | 949 | } |
879 | if (ssh_msg_send(ctxt->pam_psock, PAM_AUTHTOK, &buffer) == -1) { | 950 | if (ssh_msg_send(ctxt->pam_psock, PAM_AUTHTOK, buffer) == -1) { |
880 | buffer_free(&buffer); | 951 | sshbuf_free(buffer); |
881 | return (-1); | 952 | return (-1); |
882 | } | 953 | } |
883 | buffer_free(&buffer); | 954 | sshbuf_free(buffer); |
884 | return (1); | 955 | return (1); |
885 | } | 956 | } |
886 | 957 | ||
@@ -935,26 +1006,6 @@ finish_pam(void) | |||
935 | sshpam_cleanup(); | 1006 | sshpam_cleanup(); |
936 | } | 1007 | } |
937 | 1008 | ||
938 | static void | ||
939 | expose_authinfo(const char *caller) | ||
940 | { | ||
941 | char *auth_info; | ||
942 | |||
943 | /* | ||
944 | * Expose authentication information to PAM. | ||
945 | * The enviornment variable is versioned. Please increment the | ||
946 | * version suffix if the format of session_info changes. | ||
947 | */ | ||
948 | if (sshpam_authctxt->session_info == NULL) | ||
949 | auth_info = xstrdup(""); | ||
950 | else if ((auth_info = sshbuf_dup_string( | ||
951 | sshpam_authctxt->session_info)) == NULL) | ||
952 | fatal("%s: sshbuf_dup_string failed", __func__); | ||
953 | |||
954 | debug2("%s: auth information in SSH_AUTH_INFO_0", caller); | ||
955 | do_pam_putenv("SSH_AUTH_INFO_0", auth_info); | ||
956 | free(auth_info); | ||
957 | } | ||
958 | 1009 | ||
959 | u_int | 1010 | u_int |
960 | do_pam_account(void) | 1011 | do_pam_account(void) |
@@ -1174,7 +1225,7 @@ sshpam_passwd_conv(int n, sshpam_const struct pam_message **msg, | |||
1174 | struct pam_response **resp, void *data) | 1225 | struct pam_response **resp, void *data) |
1175 | { | 1226 | { |
1176 | struct pam_response *reply; | 1227 | struct pam_response *reply; |
1177 | int i; | 1228 | int r, i; |
1178 | size_t len; | 1229 | size_t len; |
1179 | 1230 | ||
1180 | debug3("PAM: %s called with %d messages", __func__, n); | 1231 | debug3("PAM: %s called with %d messages", __func__, n); |
@@ -1200,9 +1251,10 @@ sshpam_passwd_conv(int n, sshpam_const struct pam_message **msg, | |||
1200 | case PAM_TEXT_INFO: | 1251 | case PAM_TEXT_INFO: |
1201 | len = strlen(PAM_MSG_MEMBER(msg, i, msg)); | 1252 | len = strlen(PAM_MSG_MEMBER(msg, i, msg)); |
1202 | if (len > 0) { | 1253 | if (len > 0) { |
1203 | buffer_append(&loginmsg, | 1254 | if ((r = sshbuf_putf(loginmsg, "%s\n", |
1204 | PAM_MSG_MEMBER(msg, i, msg), len); | 1255 | PAM_MSG_MEMBER(msg, i, msg))) != 0) |
1205 | buffer_append(&loginmsg, "\n", 1); | 1256 | fatal("%s: buffer error: %s", |
1257 | __func__, ssh_err(r)); | ||
1206 | } | 1258 | } |
1207 | if ((reply[i].resp = strdup("")) == NULL) | 1259 | if ((reply[i].resp = strdup("")) == NULL) |
1208 | goto fail; | 1260 | goto fail; |
diff --git a/auth-passwd.c b/auth-passwd.c index 6097fdd24..65f525184 100644 --- a/auth-passwd.c +++ b/auth-passwd.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: auth-passwd.c,v 1.46 2018/03/03 03:15:51 djm Exp $ */ | 1 | /* $OpenBSD: auth-passwd.c,v 1.47 2018/07/09 21:26:02 markus Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -46,16 +46,17 @@ | |||
46 | #include <stdarg.h> | 46 | #include <stdarg.h> |
47 | 47 | ||
48 | #include "packet.h" | 48 | #include "packet.h" |
49 | #include "buffer.h" | 49 | #include "sshbuf.h" |
50 | #include "ssherr.h" | ||
50 | #include "log.h" | 51 | #include "log.h" |
51 | #include "misc.h" | 52 | #include "misc.h" |
52 | #include "servconf.h" | 53 | #include "servconf.h" |
53 | #include "key.h" | 54 | #include "sshkey.h" |
54 | #include "hostfile.h" | 55 | #include "hostfile.h" |
55 | #include "auth.h" | 56 | #include "auth.h" |
56 | #include "auth-options.h" | 57 | #include "auth-options.h" |
57 | 58 | ||
58 | extern Buffer loginmsg; | 59 | extern struct sshbuf *loginmsg; |
59 | extern ServerOptions options; | 60 | extern ServerOptions options; |
60 | 61 | ||
61 | #ifdef HAVE_LOGIN_CAP | 62 | #ifdef HAVE_LOGIN_CAP |
@@ -131,7 +132,7 @@ auth_password(struct ssh *ssh, const char *password) | |||
131 | static void | 132 | static void |
132 | warn_expiry(Authctxt *authctxt, auth_session_t *as) | 133 | warn_expiry(Authctxt *authctxt, auth_session_t *as) |
133 | { | 134 | { |
134 | char buf[256]; | 135 | int r; |
135 | quad_t pwtimeleft, actimeleft, daysleft, pwwarntime, acwarntime; | 136 | quad_t pwtimeleft, actimeleft, daysleft, pwwarntime, acwarntime; |
136 | 137 | ||
137 | pwwarntime = acwarntime = TWO_WEEKS; | 138 | pwwarntime = acwarntime = TWO_WEEKS; |
@@ -148,17 +149,17 @@ warn_expiry(Authctxt *authctxt, auth_session_t *as) | |||
148 | #endif | 149 | #endif |
149 | if (pwtimeleft != 0 && pwtimeleft < pwwarntime) { | 150 | if (pwtimeleft != 0 && pwtimeleft < pwwarntime) { |
150 | daysleft = pwtimeleft / DAY + 1; | 151 | daysleft = pwtimeleft / DAY + 1; |
151 | snprintf(buf, sizeof(buf), | 152 | if ((r = sshbuf_putf(loginmsg, |
152 | "Your password will expire in %lld day%s.\n", | 153 | "Your password will expire in %lld day%s.\n", |
153 | daysleft, daysleft == 1 ? "" : "s"); | 154 | daysleft, daysleft == 1 ? "" : "s")) != 0) |
154 | buffer_append(&loginmsg, buf, strlen(buf)); | 155 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
155 | } | 156 | } |
156 | if (actimeleft != 0 && actimeleft < acwarntime) { | 157 | if (actimeleft != 0 && actimeleft < acwarntime) { |
157 | daysleft = actimeleft / DAY + 1; | 158 | daysleft = actimeleft / DAY + 1; |
158 | snprintf(buf, sizeof(buf), | 159 | if ((r = sshbuf_putf(loginmsg, |
159 | "Your account will expire in %lld day%s.\n", | 160 | "Your account will expire in %lld day%s.\n", |
160 | daysleft, daysleft == 1 ? "" : "s"); | 161 | daysleft, daysleft == 1 ? "" : "s")) != 0) |
161 | buffer_append(&loginmsg, buf, strlen(buf)); | 162 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
162 | } | 163 | } |
163 | } | 164 | } |
164 | 165 | ||
diff --git a/auth-rhosts.c b/auth-rhosts.c index ecf956f06..57296e1f6 100644 --- a/auth-rhosts.c +++ b/auth-rhosts.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: auth-rhosts.c,v 1.48 2016/08/13 17:47:41 markus Exp $ */ | 1 | /* $OpenBSD: auth-rhosts.c,v 1.49 2018/07/09 21:35:50 markus Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -34,8 +34,8 @@ | |||
34 | #include "pathnames.h" | 34 | #include "pathnames.h" |
35 | #include "log.h" | 35 | #include "log.h" |
36 | #include "misc.h" | 36 | #include "misc.h" |
37 | #include "buffer.h" /* XXX */ | 37 | #include "sshbuf.h" |
38 | #include "key.h" /* XXX */ | 38 | #include "sshkey.h" |
39 | #include "servconf.h" | 39 | #include "servconf.h" |
40 | #include "canohost.h" | 40 | #include "canohost.h" |
41 | #include "sshkey.h" | 41 | #include "sshkey.h" |
diff --git a/auth-shadow.c b/auth-shadow.c index 219091677..c77ee8da9 100644 --- a/auth-shadow.c +++ b/auth-shadow.c | |||
@@ -30,10 +30,10 @@ | |||
30 | #include <string.h> | 30 | #include <string.h> |
31 | #include <time.h> | 31 | #include <time.h> |
32 | 32 | ||
33 | #include "key.h" | ||
34 | #include "hostfile.h" | 33 | #include "hostfile.h" |
35 | #include "auth.h" | 34 | #include "auth.h" |
36 | #include "buffer.h" | 35 | #include "sshbuf.h" |
36 | #include "ssherr.h" | ||
37 | #include "log.h" | 37 | #include "log.h" |
38 | 38 | ||
39 | #ifdef DAY | 39 | #ifdef DAY |
@@ -41,7 +41,7 @@ | |||
41 | #endif | 41 | #endif |
42 | #define DAY (24L * 60 * 60) /* 1 day in seconds */ | 42 | #define DAY (24L * 60 * 60) /* 1 day in seconds */ |
43 | 43 | ||
44 | extern Buffer loginmsg; | 44 | extern struct sshbuf *loginmsg; |
45 | 45 | ||
46 | /* | 46 | /* |
47 | * For the account and password expiration functions, we assume the expiry | 47 | * For the account and password expiration functions, we assume the expiry |
@@ -57,7 +57,7 @@ auth_shadow_acctexpired(struct spwd *spw) | |||
57 | { | 57 | { |
58 | time_t today; | 58 | time_t today; |
59 | int daysleft; | 59 | int daysleft; |
60 | char buf[256]; | 60 | int r; |
61 | 61 | ||
62 | today = time(NULL) / DAY; | 62 | today = time(NULL) / DAY; |
63 | daysleft = spw->sp_expire - today; | 63 | daysleft = spw->sp_expire - today; |
@@ -71,10 +71,10 @@ auth_shadow_acctexpired(struct spwd *spw) | |||
71 | return 1; | 71 | return 1; |
72 | } else if (daysleft <= spw->sp_warn) { | 72 | } else if (daysleft <= spw->sp_warn) { |
73 | debug3("account will expire in %d days", daysleft); | 73 | debug3("account will expire in %d days", daysleft); |
74 | snprintf(buf, sizeof(buf), | 74 | if ((r = sshbuf_putf(loginmsg, |
75 | "Your account will expire in %d day%s.\n", daysleft, | 75 | "Your account will expire in %d day%s.\n", daysleft, |
76 | daysleft == 1 ? "" : "s"); | 76 | daysleft == 1 ? "" : "s")) != 0) |
77 | buffer_append(&loginmsg, buf, strlen(buf)); | 77 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
78 | } | 78 | } |
79 | 79 | ||
80 | return 0; | 80 | return 0; |
@@ -89,9 +89,8 @@ auth_shadow_pwexpired(Authctxt *ctxt) | |||
89 | { | 89 | { |
90 | struct spwd *spw = NULL; | 90 | struct spwd *spw = NULL; |
91 | const char *user = ctxt->pw->pw_name; | 91 | const char *user = ctxt->pw->pw_name; |
92 | char buf[256]; | ||
93 | time_t today; | 92 | time_t today; |
94 | int daysleft, disabled = 0; | 93 | int r, daysleft, disabled = 0; |
95 | 94 | ||
96 | if ((spw = getspnam((char *)user)) == NULL) { | 95 | if ((spw = getspnam((char *)user)) == NULL) { |
97 | error("Could not get shadow information for %.100s", user); | 96 | error("Could not get shadow information for %.100s", user); |
@@ -131,10 +130,10 @@ auth_shadow_pwexpired(Authctxt *ctxt) | |||
131 | return 1; | 130 | return 1; |
132 | } else if (daysleft <= spw->sp_warn) { | 131 | } else if (daysleft <= spw->sp_warn) { |
133 | debug3("password will expire in %d days", daysleft); | 132 | debug3("password will expire in %d days", daysleft); |
134 | snprintf(buf, sizeof(buf), | 133 | if ((r = sshbuf_putf(loginmsg, |
135 | "Your password will expire in %d day%s.\n", daysleft, | 134 | "Your password will expire in %d day%s.\n", daysleft, |
136 | daysleft == 1 ? "" : "s"); | 135 | daysleft == 1 ? "" : "s")) != 0) |
137 | buffer_append(&loginmsg, buf, strlen(buf)); | 136 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
138 | } | 137 | } |
139 | 138 | ||
140 | return 0; | 139 | return 0; |
diff --git a/auth-sia.c b/auth-sia.c index 7c97f03e5..ebe9d8d12 100644 --- a/auth-sia.c +++ b/auth-sia.c | |||
@@ -37,7 +37,6 @@ | |||
37 | 37 | ||
38 | #include "ssh.h" | 38 | #include "ssh.h" |
39 | #include "ssh_api.h" | 39 | #include "ssh_api.h" |
40 | #include "key.h" | ||
41 | #include "hostfile.h" | 40 | #include "hostfile.h" |
42 | #include "auth.h" | 41 | #include "auth.h" |
43 | #include "auth-sia.h" | 42 | #include "auth-sia.h" |
diff --git a/auth-skey.c b/auth-skey.c index 3536ec8fa..b347527f6 100644 --- a/auth-skey.c +++ b/auth-skey.c | |||
@@ -35,7 +35,6 @@ | |||
35 | #include <skey.h> | 35 | #include <skey.h> |
36 | 36 | ||
37 | #include "xmalloc.h" | 37 | #include "xmalloc.h" |
38 | #include "key.h" | ||
39 | #include "hostfile.h" | 38 | #include "hostfile.h" |
40 | #include "auth.h" | 39 | #include "auth.h" |
41 | #include "ssh-gss.h" | 40 | #include "ssh-gss.h" |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: auth.c,v 1.127 2018/03/12 00:52:01 djm Exp $ */ | 1 | /* $OpenBSD: auth.c,v 1.132 2018/07/11 08:19:35 martijn Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. |
4 | * | 4 | * |
@@ -55,10 +55,10 @@ | |||
55 | #include "match.h" | 55 | #include "match.h" |
56 | #include "groupaccess.h" | 56 | #include "groupaccess.h" |
57 | #include "log.h" | 57 | #include "log.h" |
58 | #include "buffer.h" | 58 | #include "sshbuf.h" |
59 | #include "misc.h" | 59 | #include "misc.h" |
60 | #include "servconf.h" | 60 | #include "servconf.h" |
61 | #include "key.h" | 61 | #include "sshkey.h" |
62 | #include "hostfile.h" | 62 | #include "hostfile.h" |
63 | #include "auth.h" | 63 | #include "auth.h" |
64 | #include "auth-options.h" | 64 | #include "auth-options.h" |
@@ -79,13 +79,12 @@ | |||
79 | /* import */ | 79 | /* import */ |
80 | extern ServerOptions options; | 80 | extern ServerOptions options; |
81 | extern int use_privsep; | 81 | extern int use_privsep; |
82 | extern Buffer loginmsg; | 82 | extern struct sshbuf *loginmsg; |
83 | extern struct passwd *privsep_pw; | 83 | extern struct passwd *privsep_pw; |
84 | extern struct sshauthopt *auth_opts; | 84 | extern struct sshauthopt *auth_opts; |
85 | 85 | ||
86 | /* Debugging messages */ | 86 | /* Debugging messages */ |
87 | Buffer auth_debug; | 87 | static struct sshbuf *auth_debug; |
88 | int auth_debug_init; | ||
89 | 88 | ||
90 | /* | 89 | /* |
91 | * Check if the user is allowed to log in via ssh. If user is listed | 90 | * Check if the user is allowed to log in via ssh. If user is listed |
@@ -281,7 +280,7 @@ format_method_key(Authctxt *authctxt) | |||
281 | if (key == NULL) | 280 | if (key == NULL) |
282 | return NULL; | 281 | return NULL; |
283 | 282 | ||
284 | if (key_is_cert(key)) { | 283 | if (sshkey_is_cert(key)) { |
285 | fp = sshkey_fingerprint(key->cert->signature_key, | 284 | fp = sshkey_fingerprint(key->cert->signature_key, |
286 | options.fingerprint_hash, SSH_FP_DEFAULT); | 285 | options.fingerprint_hash, SSH_FP_DEFAULT); |
287 | xasprintf(&ret, "%s ID %s (serial %llu) CA %s %s%s%s", | 286 | xasprintf(&ret, "%s ID %s (serial %llu) CA %s %s%s%s", |
@@ -422,11 +421,13 @@ auth_root_allowed(struct ssh *ssh, const char *method) | |||
422 | char * | 421 | char * |
423 | expand_authorized_keys(const char *filename, struct passwd *pw) | 422 | expand_authorized_keys(const char *filename, struct passwd *pw) |
424 | { | 423 | { |
425 | char *file, ret[PATH_MAX]; | 424 | char *file, uidstr[32], ret[PATH_MAX]; |
426 | int i; | 425 | int i; |
427 | 426 | ||
427 | snprintf(uidstr, sizeof(uidstr), "%llu", | ||
428 | (unsigned long long)pw->pw_uid); | ||
428 | file = percent_expand(filename, "h", pw->pw_dir, | 429 | file = percent_expand(filename, "h", pw->pw_dir, |
429 | "u", pw->pw_name, (char *)NULL); | 430 | "u", pw->pw_name, "U", uidstr, (char *)NULL); |
430 | 431 | ||
431 | /* | 432 | /* |
432 | * Ensure that filename starts anchored. If not, be backward | 433 | * Ensure that filename starts anchored. If not, be backward |
@@ -670,26 +671,32 @@ auth_debug_add(const char *fmt,...) | |||
670 | { | 671 | { |
671 | char buf[1024]; | 672 | char buf[1024]; |
672 | va_list args; | 673 | va_list args; |
674 | int r; | ||
673 | 675 | ||
674 | if (!auth_debug_init) | 676 | if (auth_debug == NULL) |
675 | return; | 677 | return; |
676 | 678 | ||
677 | va_start(args, fmt); | 679 | va_start(args, fmt); |
678 | vsnprintf(buf, sizeof(buf), fmt, args); | 680 | vsnprintf(buf, sizeof(buf), fmt, args); |
679 | va_end(args); | 681 | va_end(args); |
680 | buffer_put_cstring(&auth_debug, buf); | 682 | if ((r = sshbuf_put_cstring(auth_debug, buf)) != 0) |
683 | fatal("%s: sshbuf_put_cstring: %s", __func__, ssh_err(r)); | ||
681 | } | 684 | } |
682 | 685 | ||
683 | void | 686 | void |
684 | auth_debug_send(void) | 687 | auth_debug_send(void) |
685 | { | 688 | { |
689 | struct ssh *ssh = active_state; /* XXX */ | ||
686 | char *msg; | 690 | char *msg; |
691 | int r; | ||
687 | 692 | ||
688 | if (!auth_debug_init) | 693 | if (auth_debug == NULL) |
689 | return; | 694 | return; |
690 | while (buffer_len(&auth_debug)) { | 695 | while (sshbuf_len(auth_debug) != 0) { |
691 | msg = buffer_get_string(&auth_debug, NULL); | 696 | if ((r = sshbuf_get_cstring(auth_debug, &msg, NULL)) != 0) |
692 | packet_send_debug("%s", msg); | 697 | fatal("%s: sshbuf_get_cstring: %s", |
698 | __func__, ssh_err(r)); | ||
699 | ssh_packet_send_debug(ssh, "%s", msg); | ||
693 | free(msg); | 700 | free(msg); |
694 | } | 701 | } |
695 | } | 702 | } |
@@ -697,12 +704,10 @@ auth_debug_send(void) | |||
697 | void | 704 | void |
698 | auth_debug_reset(void) | 705 | auth_debug_reset(void) |
699 | { | 706 | { |
700 | if (auth_debug_init) | 707 | if (auth_debug != NULL) |
701 | buffer_clear(&auth_debug); | 708 | sshbuf_reset(auth_debug); |
702 | else { | 709 | else if ((auth_debug = sshbuf_new()) == NULL) |
703 | buffer_init(&auth_debug); | 710 | fatal("%s: sshbuf_new failed", __func__); |
704 | auth_debug_init = 1; | ||
705 | } | ||
706 | } | 711 | } |
707 | 712 | ||
708 | struct passwd * | 713 | struct passwd * |
@@ -843,7 +848,7 @@ auth_get_canonical_hostname(struct ssh *ssh, int use_dns) | |||
843 | } | 848 | } |
844 | 849 | ||
845 | /* | 850 | /* |
846 | * Runs command in a subprocess wuth a minimal environment. | 851 | * Runs command in a subprocess with a minimal environment. |
847 | * Returns pid on success, 0 on failure. | 852 | * Returns pid on success, 0 on failure. |
848 | * The child stdout and stderr maybe captured, left attached or sent to | 853 | * The child stdout and stderr maybe captured, left attached or sent to |
849 | * /dev/null depending on the contents of flags. | 854 | * /dev/null depending on the contents of flags. |
@@ -1003,17 +1008,20 @@ auth_log_authopts(const char *loc, const struct sshauthopt *opts, int do_remote) | |||
1003 | int do_env = options.permit_user_env && opts->nenv > 0; | 1008 | int do_env = options.permit_user_env && opts->nenv > 0; |
1004 | int do_permitopen = opts->npermitopen > 0 && | 1009 | int do_permitopen = opts->npermitopen > 0 && |
1005 | (options.allow_tcp_forwarding & FORWARD_LOCAL) != 0; | 1010 | (options.allow_tcp_forwarding & FORWARD_LOCAL) != 0; |
1011 | int do_permitlisten = opts->npermitlisten > 0 && | ||
1012 | (options.allow_tcp_forwarding & FORWARD_REMOTE) != 0; | ||
1006 | size_t i; | 1013 | size_t i; |
1007 | char msg[1024], buf[64]; | 1014 | char msg[1024], buf[64]; |
1008 | 1015 | ||
1009 | snprintf(buf, sizeof(buf), "%d", opts->force_tun_device); | 1016 | snprintf(buf, sizeof(buf), "%d", opts->force_tun_device); |
1010 | /* Try to keep this alphabetically sorted */ | 1017 | /* Try to keep this alphabetically sorted */ |
1011 | snprintf(msg, sizeof(msg), "key options:%s%s%s%s%s%s%s%s%s%s%s%s", | 1018 | snprintf(msg, sizeof(msg), "key options:%s%s%s%s%s%s%s%s%s%s%s%s%s", |
1012 | opts->permit_agent_forwarding_flag ? " agent-forwarding" : "", | 1019 | opts->permit_agent_forwarding_flag ? " agent-forwarding" : "", |
1013 | opts->force_command == NULL ? "" : " command", | 1020 | opts->force_command == NULL ? "" : " command", |
1014 | do_env ? " environment" : "", | 1021 | do_env ? " environment" : "", |
1015 | opts->valid_before == 0 ? "" : "expires", | 1022 | opts->valid_before == 0 ? "" : "expires", |
1016 | do_permitopen ? " permitopen" : "", | 1023 | do_permitopen ? " permitopen" : "", |
1024 | do_permitlisten ? " permitlisten" : "", | ||
1017 | opts->permit_port_forwarding_flag ? " port-forwarding" : "", | 1025 | opts->permit_port_forwarding_flag ? " port-forwarding" : "", |
1018 | opts->cert_principals == NULL ? "" : " principals", | 1026 | opts->cert_principals == NULL ? "" : " principals", |
1019 | opts->permit_pty_flag ? " pty" : "", | 1027 | opts->permit_pty_flag ? " pty" : "", |
@@ -1047,12 +1055,18 @@ auth_log_authopts(const char *loc, const struct sshauthopt *opts, int do_remote) | |||
1047 | } | 1055 | } |
1048 | if (opts->force_command != NULL) | 1056 | if (opts->force_command != NULL) |
1049 | debug("%s: forced command: \"%s\"", loc, opts->force_command); | 1057 | debug("%s: forced command: \"%s\"", loc, opts->force_command); |
1050 | if ((options.allow_tcp_forwarding & FORWARD_LOCAL) != 0) { | 1058 | if (do_permitopen) { |
1051 | for (i = 0; i < opts->npermitopen; i++) { | 1059 | for (i = 0; i < opts->npermitopen; i++) { |
1052 | debug("%s: permitted open: %s", | 1060 | debug("%s: permitted open: %s", |
1053 | loc, opts->permitopen[i]); | 1061 | loc, opts->permitopen[i]); |
1054 | } | 1062 | } |
1055 | } | 1063 | } |
1064 | if (do_permitlisten) { | ||
1065 | for (i = 0; i < opts->npermitlisten; i++) { | ||
1066 | debug("%s: permitted listen: %s", | ||
1067 | loc, opts->permitlisten[i]); | ||
1068 | } | ||
1069 | } | ||
1056 | } | 1070 | } |
1057 | 1071 | ||
1058 | /* Activate a new set of key/cert options; merging with what is there. */ | 1072 | /* Activate a new set of key/cert options; merging with what is there. */ |
@@ -1080,6 +1094,7 @@ auth_restrict_session(struct ssh *ssh) | |||
1080 | 1094 | ||
1081 | /* A blank sshauthopt defaults to permitting nothing */ | 1095 | /* A blank sshauthopt defaults to permitting nothing */ |
1082 | restricted = sshauthopt_new(); | 1096 | restricted = sshauthopt_new(); |
1097 | restricted->permit_pty_flag = 1; | ||
1083 | restricted->restricted = 1; | 1098 | restricted->restricted = 1; |
1084 | 1099 | ||
1085 | if (auth_activate_options(ssh, restricted) != 0) | 1100 | if (auth_activate_options(ssh, restricted) != 0) |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: auth.h,v 1.95 2018/03/03 03:15:51 djm Exp $ */ | 1 | /* $OpenBSD: auth.h,v 1.96 2018/04/10 00:10:49 djm Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Copyright (c) 2000 Markus Friedl. All rights reserved. | 4 | * Copyright (c) 2000 Markus Friedl. All rights reserved. |
@@ -89,7 +89,7 @@ struct Authctxt { | |||
89 | struct sshkey **prev_keys; | 89 | struct sshkey **prev_keys; |
90 | u_int nprev_keys; | 90 | u_int nprev_keys; |
91 | 91 | ||
92 | /* Last used key and ancilliary information from active auth method */ | 92 | /* Last used key and ancillary information from active auth method */ |
93 | struct sshkey *auth_method_key; | 93 | struct sshkey *auth_method_key; |
94 | char *auth_method_info; | 94 | char *auth_method_info; |
95 | 95 | ||
@@ -187,8 +187,6 @@ int auth2_challenge(struct ssh *, char *); | |||
187 | void auth2_challenge_stop(struct ssh *); | 187 | void auth2_challenge_stop(struct ssh *); |
188 | int bsdauth_query(void *, char **, char **, u_int *, char ***, u_int **); | 188 | int bsdauth_query(void *, char **, char **, u_int *, char ***, u_int **); |
189 | int bsdauth_respond(void *, u_int, char **); | 189 | int bsdauth_respond(void *, u_int, char **); |
190 | int skey_query(void *, char **, char **, u_int *, char ***, u_int **); | ||
191 | int skey_respond(void *, u_int, char **); | ||
192 | 190 | ||
193 | int allowed_user(struct passwd *); | 191 | int allowed_user(struct passwd *); |
194 | struct passwd * getpwnamallow(const char *user); | 192 | struct passwd * getpwnamallow(const char *user); |
@@ -239,8 +237,6 @@ pid_t subprocess(const char *, struct passwd *, | |||
239 | 237 | ||
240 | int sys_auth_passwd(struct ssh *, const char *); | 238 | int sys_auth_passwd(struct ssh *, const char *); |
241 | 239 | ||
242 | #define SKEY_PROMPT "\nS/Key Password: " | ||
243 | |||
244 | #if defined(KRB5) && !defined(HEIMDAL) | 240 | #if defined(KRB5) && !defined(HEIMDAL) |
245 | #include <krb5.h> | 241 | #include <krb5.h> |
246 | krb5_error_code ssh_krb5_cc_gen(krb5_context, krb5_ccache *); | 242 | krb5_error_code ssh_krb5_cc_gen(krb5_context, krb5_ccache *); |
diff --git a/auth2-chall.c b/auth2-chall.c index 11c8d31b3..2d5cff448 100644 --- a/auth2-chall.c +++ b/auth2-chall.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: auth2-chall.c,v 1.48 2017/05/30 14:29:59 markus Exp $ */ | 1 | /* $OpenBSD: auth2-chall.c,v 1.50 2018/07/11 18:55:11 markus Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2001 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2001 Markus Friedl. All rights reserved. |
4 | * Copyright (c) 2001 Per Allansson. All rights reserved. | 4 | * Copyright (c) 2001 Per Allansson. All rights reserved. |
@@ -34,12 +34,13 @@ | |||
34 | 34 | ||
35 | #include "xmalloc.h" | 35 | #include "xmalloc.h" |
36 | #include "ssh2.h" | 36 | #include "ssh2.h" |
37 | #include "key.h" | 37 | #include "sshkey.h" |
38 | #include "hostfile.h" | 38 | #include "hostfile.h" |
39 | #include "auth.h" | 39 | #include "auth.h" |
40 | #include "buffer.h" | 40 | #include "sshbuf.h" |
41 | #include "packet.h" | 41 | #include "packet.h" |
42 | #include "dispatch.h" | 42 | #include "dispatch.h" |
43 | #include "ssherr.h" | ||
43 | #include "log.h" | 44 | #include "log.h" |
44 | #include "misc.h" | 45 | #include "misc.h" |
45 | #include "servconf.h" | 46 | #include "servconf.h" |
@@ -48,7 +49,7 @@ | |||
48 | extern ServerOptions options; | 49 | extern ServerOptions options; |
49 | 50 | ||
50 | static int auth2_challenge_start(struct ssh *); | 51 | static int auth2_challenge_start(struct ssh *); |
51 | static int send_userauth_info_request(Authctxt *); | 52 | static int send_userauth_info_request(struct ssh *); |
52 | static int input_userauth_info_response(int, u_int32_t, struct ssh *); | 53 | static int input_userauth_info_response(int, u_int32_t, struct ssh *); |
53 | 54 | ||
54 | #ifdef BSD_AUTH | 55 | #ifdef BSD_AUTH |
@@ -57,9 +58,6 @@ extern KbdintDevice bsdauth_device; | |||
57 | #ifdef USE_PAM | 58 | #ifdef USE_PAM |
58 | extern KbdintDevice sshpam_device; | 59 | extern KbdintDevice sshpam_device; |
59 | #endif | 60 | #endif |
60 | #ifdef SKEY | ||
61 | extern KbdintDevice skey_device; | ||
62 | #endif | ||
63 | #endif | 61 | #endif |
64 | 62 | ||
65 | KbdintDevice *devices[] = { | 63 | KbdintDevice *devices[] = { |
@@ -69,9 +67,6 @@ KbdintDevice *devices[] = { | |||
69 | #ifdef USE_PAM | 67 | #ifdef USE_PAM |
70 | &sshpam_device, | 68 | &sshpam_device, |
71 | #endif | 69 | #endif |
72 | #ifdef SKEY | ||
73 | &skey_device, | ||
74 | #endif | ||
75 | #endif | 70 | #endif |
76 | NULL | 71 | NULL |
77 | }; | 72 | }; |
@@ -105,8 +100,8 @@ static KbdintAuthctxt * | |||
105 | kbdint_alloc(const char *devs) | 100 | kbdint_alloc(const char *devs) |
106 | { | 101 | { |
107 | KbdintAuthctxt *kbdintctxt; | 102 | KbdintAuthctxt *kbdintctxt; |
108 | Buffer b; | 103 | struct sshbuf *b; |
109 | int i; | 104 | int i, r; |
110 | 105 | ||
111 | #ifdef USE_PAM | 106 | #ifdef USE_PAM |
112 | if (!options.use_pam) | 107 | if (!options.use_pam) |
@@ -115,16 +110,17 @@ kbdint_alloc(const char *devs) | |||
115 | 110 | ||
116 | kbdintctxt = xcalloc(1, sizeof(KbdintAuthctxt)); | 111 | kbdintctxt = xcalloc(1, sizeof(KbdintAuthctxt)); |
117 | if (strcmp(devs, "") == 0) { | 112 | if (strcmp(devs, "") == 0) { |
118 | buffer_init(&b); | 113 | if ((b = sshbuf_new()) == NULL) |
114 | fatal("%s: sshbuf_new failed", __func__); | ||
119 | for (i = 0; devices[i]; i++) { | 115 | for (i = 0; devices[i]; i++) { |
120 | if (buffer_len(&b) > 0) | 116 | if ((r = sshbuf_putf(b, "%s%s", |
121 | buffer_append(&b, ",", 1); | 117 | sshbuf_len(b) ? "," : "", devices[i]->name)) != 0) |
122 | buffer_append(&b, devices[i]->name, | 118 | fatal("%s: buffer error: %s", |
123 | strlen(devices[i]->name)); | 119 | __func__, ssh_err(r)); |
124 | } | 120 | } |
125 | if ((kbdintctxt->devices = sshbuf_dup_string(&b)) == NULL) | 121 | if ((kbdintctxt->devices = sshbuf_dup_string(b)) == NULL) |
126 | fatal("%s: sshbuf_dup_string failed", __func__); | 122 | fatal("%s: sshbuf_dup_string failed", __func__); |
127 | buffer_free(&b); | 123 | sshbuf_free(b); |
128 | } else { | 124 | } else { |
129 | kbdintctxt->devices = xstrdup(devs); | 125 | kbdintctxt->devices = xstrdup(devs); |
130 | } | 126 | } |
@@ -243,7 +239,7 @@ auth2_challenge_start(struct ssh *ssh) | |||
243 | auth2_challenge_stop(ssh); | 239 | auth2_challenge_stop(ssh); |
244 | return 0; | 240 | return 0; |
245 | } | 241 | } |
246 | if (send_userauth_info_request(authctxt) == 0) { | 242 | if (send_userauth_info_request(ssh) == 0) { |
247 | auth2_challenge_stop(ssh); | 243 | auth2_challenge_stop(ssh); |
248 | return 0; | 244 | return 0; |
249 | } | 245 | } |
@@ -255,28 +251,32 @@ auth2_challenge_start(struct ssh *ssh) | |||
255 | } | 251 | } |
256 | 252 | ||
257 | static int | 253 | static int |
258 | send_userauth_info_request(Authctxt *authctxt) | 254 | send_userauth_info_request(struct ssh *ssh) |
259 | { | 255 | { |
256 | Authctxt *authctxt = ssh->authctxt; | ||
260 | KbdintAuthctxt *kbdintctxt; | 257 | KbdintAuthctxt *kbdintctxt; |
261 | char *name, *instr, **prompts; | 258 | char *name, *instr, **prompts; |
262 | u_int i, *echo_on; | 259 | u_int r, i, *echo_on; |
263 | 260 | ||
264 | kbdintctxt = authctxt->kbdintctxt; | 261 | kbdintctxt = authctxt->kbdintctxt; |
265 | if (kbdintctxt->device->query(kbdintctxt->ctxt, | 262 | if (kbdintctxt->device->query(kbdintctxt->ctxt, |
266 | &name, &instr, &kbdintctxt->nreq, &prompts, &echo_on)) | 263 | &name, &instr, &kbdintctxt->nreq, &prompts, &echo_on)) |
267 | return 0; | 264 | return 0; |
268 | 265 | ||
269 | packet_start(SSH2_MSG_USERAUTH_INFO_REQUEST); | 266 | if ((r = sshpkt_start(ssh, SSH2_MSG_USERAUTH_INFO_REQUEST)) != 0 || |
270 | packet_put_cstring(name); | 267 | (r = sshpkt_put_cstring(ssh, name)) != 0 || |
271 | packet_put_cstring(instr); | 268 | (r = sshpkt_put_cstring(ssh, instr)) != 0 || |
272 | packet_put_cstring(""); /* language not used */ | 269 | (r = sshpkt_put_cstring(ssh, "")) != 0 || /* language not used */ |
273 | packet_put_int(kbdintctxt->nreq); | 270 | (r = sshpkt_put_u32(ssh, kbdintctxt->nreq)) != 0) |
271 | fatal("%s: %s", __func__, ssh_err(r)); | ||
274 | for (i = 0; i < kbdintctxt->nreq; i++) { | 272 | for (i = 0; i < kbdintctxt->nreq; i++) { |
275 | packet_put_cstring(prompts[i]); | 273 | if ((r = sshpkt_put_cstring(ssh, prompts[i])) != 0 || |
276 | packet_put_char(echo_on[i]); | 274 | (r = sshpkt_put_u8(ssh, echo_on[i])) != 0) |
275 | fatal("%s: %s", __func__, ssh_err(r)); | ||
277 | } | 276 | } |
278 | packet_send(); | 277 | if ((r = sshpkt_send(ssh)) != 0 || |
279 | packet_write_wait(); | 278 | (r = ssh_packet_write_wait(ssh)) != 0) |
279 | fatal("%s: %s", __func__, ssh_err(r)); | ||
280 | 280 | ||
281 | for (i = 0; i < kbdintctxt->nreq; i++) | 281 | for (i = 0; i < kbdintctxt->nreq; i++) |
282 | free(prompts[i]); | 282 | free(prompts[i]); |
@@ -293,6 +293,7 @@ input_userauth_info_response(int type, u_int32_t seq, struct ssh *ssh) | |||
293 | Authctxt *authctxt = ssh->authctxt; | 293 | Authctxt *authctxt = ssh->authctxt; |
294 | KbdintAuthctxt *kbdintctxt; | 294 | KbdintAuthctxt *kbdintctxt; |
295 | int authenticated = 0, res; | 295 | int authenticated = 0, res; |
296 | int r; | ||
296 | u_int i, nresp; | 297 | u_int i, nresp; |
297 | const char *devicename = NULL; | 298 | const char *devicename = NULL; |
298 | char **response = NULL; | 299 | char **response = NULL; |
@@ -306,7 +307,8 @@ input_userauth_info_response(int type, u_int32_t seq, struct ssh *ssh) | |||
306 | fatal("input_userauth_info_response: no device"); | 307 | fatal("input_userauth_info_response: no device"); |
307 | 308 | ||
308 | authctxt->postponed = 0; /* reset */ | 309 | authctxt->postponed = 0; /* reset */ |
309 | nresp = packet_get_int(); | 310 | if ((r = sshpkt_get_u32(ssh, &nresp)) != 0) |
311 | fatal("%s: %s", __func__, ssh_err(r)); | ||
310 | if (nresp != kbdintctxt->nreq) | 312 | if (nresp != kbdintctxt->nreq) |
311 | fatal("input_userauth_info_response: wrong number of replies"); | 313 | fatal("input_userauth_info_response: wrong number of replies"); |
312 | if (nresp > 100) | 314 | if (nresp > 100) |
@@ -314,9 +316,12 @@ input_userauth_info_response(int type, u_int32_t seq, struct ssh *ssh) | |||
314 | if (nresp > 0) { | 316 | if (nresp > 0) { |
315 | response = xcalloc(nresp, sizeof(char *)); | 317 | response = xcalloc(nresp, sizeof(char *)); |
316 | for (i = 0; i < nresp; i++) | 318 | for (i = 0; i < nresp; i++) |
317 | response[i] = packet_get_string(NULL); | 319 | if ((r = sshpkt_get_cstring(ssh, &response[i], |
320 | NULL)) != 0) | ||
321 | fatal("%s: %s", __func__, ssh_err(r)); | ||
318 | } | 322 | } |
319 | packet_check_eom(); | 323 | if ((r = sshpkt_get_end(ssh)) != 0) |
324 | fatal("%s: %s", __func__, ssh_err(r)); | ||
320 | 325 | ||
321 | res = kbdintctxt->device->respond(kbdintctxt->ctxt, nresp, response); | 326 | res = kbdintctxt->device->respond(kbdintctxt->ctxt, nresp, response); |
322 | 327 | ||
@@ -333,7 +338,7 @@ input_userauth_info_response(int type, u_int32_t seq, struct ssh *ssh) | |||
333 | break; | 338 | break; |
334 | case 1: | 339 | case 1: |
335 | /* Authentication needs further interaction */ | 340 | /* Authentication needs further interaction */ |
336 | if (send_userauth_info_request(authctxt) == 1) | 341 | if (send_userauth_info_request(ssh) == 1) |
337 | authctxt->postponed = 1; | 342 | authctxt->postponed = 1; |
338 | break; | 343 | break; |
339 | default: | 344 | default: |
@@ -358,7 +363,7 @@ input_userauth_info_response(int type, u_int32_t seq, struct ssh *ssh) | |||
358 | void | 363 | void |
359 | privsep_challenge_enable(void) | 364 | privsep_challenge_enable(void) |
360 | { | 365 | { |
361 | #if defined(BSD_AUTH) || defined(USE_PAM) || defined(SKEY) | 366 | #if defined(BSD_AUTH) || defined(USE_PAM) |
362 | int n = 0; | 367 | int n = 0; |
363 | #endif | 368 | #endif |
364 | #ifdef BSD_AUTH | 369 | #ifdef BSD_AUTH |
@@ -367,9 +372,6 @@ privsep_challenge_enable(void) | |||
367 | #ifdef USE_PAM | 372 | #ifdef USE_PAM |
368 | extern KbdintDevice mm_sshpam_device; | 373 | extern KbdintDevice mm_sshpam_device; |
369 | #endif | 374 | #endif |
370 | #ifdef SKEY | ||
371 | extern KbdintDevice mm_skey_device; | ||
372 | #endif | ||
373 | 375 | ||
374 | #ifdef BSD_AUTH | 376 | #ifdef BSD_AUTH |
375 | devices[n++] = &mm_bsdauth_device; | 377 | devices[n++] = &mm_bsdauth_device; |
@@ -377,8 +379,5 @@ privsep_challenge_enable(void) | |||
377 | #ifdef USE_PAM | 379 | #ifdef USE_PAM |
378 | devices[n++] = &mm_sshpam_device; | 380 | devices[n++] = &mm_sshpam_device; |
379 | #endif | 381 | #endif |
380 | #ifdef SKEY | ||
381 | devices[n++] = &mm_skey_device; | ||
382 | #endif | ||
383 | #endif | 382 | #endif |
384 | } | 383 | } |
diff --git a/auth2-gss.c b/auth2-gss.c index 589283b72..9351e0428 100644 --- a/auth2-gss.c +++ b/auth2-gss.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: auth2-gss.c,v 1.26 2017/06/24 06:34:38 djm Exp $ */ | 1 | /* $OpenBSD: auth2-gss.c,v 1.29 2018/07/31 03:10:27 djm Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Copyright (c) 2001-2003 Simon Wilkinson. All rights reserved. | 4 | * Copyright (c) 2001-2003 Simon Wilkinson. All rights reserved. |
@@ -33,13 +33,14 @@ | |||
33 | #include <stdarg.h> | 33 | #include <stdarg.h> |
34 | 34 | ||
35 | #include "xmalloc.h" | 35 | #include "xmalloc.h" |
36 | #include "key.h" | 36 | #include "sshkey.h" |
37 | #include "hostfile.h" | 37 | #include "hostfile.h" |
38 | #include "auth.h" | 38 | #include "auth.h" |
39 | #include "ssh2.h" | 39 | #include "ssh2.h" |
40 | #include "log.h" | 40 | #include "log.h" |
41 | #include "dispatch.h" | 41 | #include "dispatch.h" |
42 | #include "buffer.h" | 42 | #include "sshbuf.h" |
43 | #include "ssherr.h" | ||
43 | #include "misc.h" | 44 | #include "misc.h" |
44 | #include "servconf.h" | 45 | #include "servconf.h" |
45 | #include "packet.h" | 46 | #include "packet.h" |
@@ -63,16 +64,15 @@ userauth_gssapi(struct ssh *ssh) | |||
63 | Authctxt *authctxt = ssh->authctxt; | 64 | Authctxt *authctxt = ssh->authctxt; |
64 | gss_OID_desc goid = {0, NULL}; | 65 | gss_OID_desc goid = {0, NULL}; |
65 | Gssctxt *ctxt = NULL; | 66 | Gssctxt *ctxt = NULL; |
66 | int mechs; | 67 | int r, present; |
67 | int present; | 68 | u_int mechs; |
68 | OM_uint32 ms; | 69 | OM_uint32 ms; |
69 | u_int len; | 70 | size_t len; |
70 | u_char *doid = NULL; | 71 | u_char *doid = NULL; |
71 | 72 | ||
72 | if (!authctxt->valid || authctxt->user == NULL) | 73 | if ((r = sshpkt_get_u32(ssh, &mechs)) != 0) |
73 | return (0); | 74 | fatal("%s: %s", __func__, ssh_err(r)); |
74 | 75 | ||
75 | mechs = packet_get_int(); | ||
76 | if (mechs == 0) { | 76 | if (mechs == 0) { |
77 | debug("Mechanism negotiation is not supported"); | 77 | debug("Mechanism negotiation is not supported"); |
78 | return (0); | 78 | return (0); |
@@ -84,7 +84,8 @@ userauth_gssapi(struct ssh *ssh) | |||
84 | free(doid); | 84 | free(doid); |
85 | 85 | ||
86 | present = 0; | 86 | present = 0; |
87 | doid = packet_get_string(&len); | 87 | if ((r = sshpkt_get_string(ssh, &doid, &len)) != 0) |
88 | fatal("%s: %s", __func__, ssh_err(r)); | ||
88 | 89 | ||
89 | if (len > 2 && doid[0] == SSH_GSS_OIDTYPE && | 90 | if (len > 2 && doid[0] == SSH_GSS_OIDTYPE && |
90 | doid[1] == len - 2) { | 91 | doid[1] == len - 2) { |
@@ -102,6 +103,12 @@ userauth_gssapi(struct ssh *ssh) | |||
102 | return (0); | 103 | return (0); |
103 | } | 104 | } |
104 | 105 | ||
106 | if (!authctxt->valid || authctxt->user == NULL) { | ||
107 | debug2("%s: disabled because of invalid user", __func__); | ||
108 | free(doid); | ||
109 | return (0); | ||
110 | } | ||
111 | |||
105 | if (GSS_ERROR(PRIVSEP(ssh_gssapi_server_ctx(&ctxt, &goid)))) { | 112 | if (GSS_ERROR(PRIVSEP(ssh_gssapi_server_ctx(&ctxt, &goid)))) { |
106 | if (ctxt != NULL) | 113 | if (ctxt != NULL) |
107 | ssh_gssapi_delete_ctx(&ctxt); | 114 | ssh_gssapi_delete_ctx(&ctxt); |
@@ -112,12 +119,12 @@ userauth_gssapi(struct ssh *ssh) | |||
112 | 119 | ||
113 | authctxt->methoddata = (void *)ctxt; | 120 | authctxt->methoddata = (void *)ctxt; |
114 | 121 | ||
115 | packet_start(SSH2_MSG_USERAUTH_GSSAPI_RESPONSE); | ||
116 | |||
117 | /* Return the OID that we received */ | 122 | /* Return the OID that we received */ |
118 | packet_put_string(doid, len); | 123 | if ((r = sshpkt_start(ssh, SSH2_MSG_USERAUTH_GSSAPI_RESPONSE)) != 0 || |
124 | (r = sshpkt_put_string(ssh, doid, len)) != 0 || | ||
125 | (r = sshpkt_send(ssh)) != 0) | ||
126 | fatal("%s: %s", __func__, ssh_err(r)); | ||
119 | 127 | ||
120 | packet_send(); | ||
121 | free(doid); | 128 | free(doid); |
122 | 129 | ||
123 | ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_TOKEN, &input_gssapi_token); | 130 | ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_TOKEN, &input_gssapi_token); |
@@ -135,36 +142,45 @@ input_gssapi_token(int type, u_int32_t plen, struct ssh *ssh) | |||
135 | gss_buffer_desc send_tok = GSS_C_EMPTY_BUFFER; | 142 | gss_buffer_desc send_tok = GSS_C_EMPTY_BUFFER; |
136 | gss_buffer_desc recv_tok; | 143 | gss_buffer_desc recv_tok; |
137 | OM_uint32 maj_status, min_status, flags; | 144 | OM_uint32 maj_status, min_status, flags; |
138 | u_int len; | 145 | u_char *p; |
146 | size_t len; | ||
147 | int r; | ||
139 | 148 | ||
140 | if (authctxt == NULL || (authctxt->methoddata == NULL && !use_privsep)) | 149 | if (authctxt == NULL || (authctxt->methoddata == NULL && !use_privsep)) |
141 | fatal("No authentication or GSSAPI context"); | 150 | fatal("No authentication or GSSAPI context"); |
142 | 151 | ||
143 | gssctxt = authctxt->methoddata; | 152 | gssctxt = authctxt->methoddata; |
144 | recv_tok.value = packet_get_string(&len); | 153 | if ((r = sshpkt_get_string(ssh, &p, &len)) != 0 || |
145 | recv_tok.length = len; /* u_int vs. size_t */ | 154 | (r = sshpkt_get_end(ssh)) != 0) |
146 | 155 | fatal("%s: %s", __func__, ssh_err(r)); | |
147 | packet_check_eom(); | ||
148 | 156 | ||
157 | recv_tok.value = p; | ||
158 | recv_tok.length = len; | ||
149 | maj_status = PRIVSEP(ssh_gssapi_accept_ctx(gssctxt, &recv_tok, | 159 | maj_status = PRIVSEP(ssh_gssapi_accept_ctx(gssctxt, &recv_tok, |
150 | &send_tok, &flags)); | 160 | &send_tok, &flags)); |
151 | 161 | ||
152 | free(recv_tok.value); | 162 | free(p); |
153 | 163 | ||
154 | if (GSS_ERROR(maj_status)) { | 164 | if (GSS_ERROR(maj_status)) { |
155 | if (send_tok.length != 0) { | 165 | if (send_tok.length != 0) { |
156 | packet_start(SSH2_MSG_USERAUTH_GSSAPI_ERRTOK); | 166 | if ((r = sshpkt_start(ssh, |
157 | packet_put_string(send_tok.value, send_tok.length); | 167 | SSH2_MSG_USERAUTH_GSSAPI_ERRTOK)) != 0 || |
158 | packet_send(); | 168 | (r = sshpkt_put_string(ssh, send_tok.value, |
169 | send_tok.length)) != 0 || | ||
170 | (r = sshpkt_send(ssh)) != 0) | ||
171 | fatal("%s: %s", __func__, ssh_err(r)); | ||
159 | } | 172 | } |
160 | authctxt->postponed = 0; | 173 | authctxt->postponed = 0; |
161 | ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_TOKEN, NULL); | 174 | ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_TOKEN, NULL); |
162 | userauth_finish(ssh, 0, "gssapi-with-mic", NULL); | 175 | userauth_finish(ssh, 0, "gssapi-with-mic", NULL); |
163 | } else { | 176 | } else { |
164 | if (send_tok.length != 0) { | 177 | if (send_tok.length != 0) { |
165 | packet_start(SSH2_MSG_USERAUTH_GSSAPI_TOKEN); | 178 | if ((r = sshpkt_start(ssh, |
166 | packet_put_string(send_tok.value, send_tok.length); | 179 | SSH2_MSG_USERAUTH_GSSAPI_TOKEN)) != 0 || |
167 | packet_send(); | 180 | (r = sshpkt_put_string(ssh, send_tok.value, |
181 | send_tok.length)) != 0 || | ||
182 | (r = sshpkt_send(ssh)) != 0) | ||
183 | fatal("%s: %s", __func__, ssh_err(r)); | ||
168 | } | 184 | } |
169 | if (maj_status == GSS_S_COMPLETE) { | 185 | if (maj_status == GSS_S_COMPLETE) { |
170 | ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_TOKEN, NULL); | 186 | ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_TOKEN, NULL); |
@@ -190,17 +206,20 @@ input_gssapi_errtok(int type, u_int32_t plen, struct ssh *ssh) | |||
190 | gss_buffer_desc send_tok = GSS_C_EMPTY_BUFFER; | 206 | gss_buffer_desc send_tok = GSS_C_EMPTY_BUFFER; |
191 | gss_buffer_desc recv_tok; | 207 | gss_buffer_desc recv_tok; |
192 | OM_uint32 maj_status; | 208 | OM_uint32 maj_status; |
193 | u_int len; | 209 | int r; |
210 | u_char *p; | ||
211 | size_t len; | ||
194 | 212 | ||
195 | if (authctxt == NULL || (authctxt->methoddata == NULL && !use_privsep)) | 213 | if (authctxt == NULL || (authctxt->methoddata == NULL && !use_privsep)) |
196 | fatal("No authentication or GSSAPI context"); | 214 | fatal("No authentication or GSSAPI context"); |
197 | 215 | ||
198 | gssctxt = authctxt->methoddata; | 216 | gssctxt = authctxt->methoddata; |
199 | recv_tok.value = packet_get_string(&len); | 217 | if ((r = sshpkt_get_string(ssh, &p, &len)) != 0 || |
218 | (r = sshpkt_get_end(ssh)) != 0) | ||
219 | fatal("%s: %s", __func__, ssh_err(r)); | ||
220 | recv_tok.value = p; | ||
200 | recv_tok.length = len; | 221 | recv_tok.length = len; |
201 | 222 | ||
202 | packet_check_eom(); | ||
203 | |||
204 | /* Push the error token into GSSAPI to see what it says */ | 223 | /* Push the error token into GSSAPI to see what it says */ |
205 | maj_status = PRIVSEP(ssh_gssapi_accept_ctx(gssctxt, &recv_tok, | 224 | maj_status = PRIVSEP(ssh_gssapi_accept_ctx(gssctxt, &recv_tok, |
206 | &send_tok, NULL)); | 225 | &send_tok, NULL)); |
@@ -227,7 +246,7 @@ static int | |||
227 | input_gssapi_exchange_complete(int type, u_int32_t plen, struct ssh *ssh) | 246 | input_gssapi_exchange_complete(int type, u_int32_t plen, struct ssh *ssh) |
228 | { | 247 | { |
229 | Authctxt *authctxt = ssh->authctxt; | 248 | Authctxt *authctxt = ssh->authctxt; |
230 | int authenticated; | 249 | int r, authenticated; |
231 | const char *displayname; | 250 | const char *displayname; |
232 | 251 | ||
233 | if (authctxt == NULL || (authctxt->methoddata == NULL && !use_privsep)) | 252 | if (authctxt == NULL || (authctxt->methoddata == NULL && !use_privsep)) |
@@ -238,7 +257,8 @@ input_gssapi_exchange_complete(int type, u_int32_t plen, struct ssh *ssh) | |||
238 | * the dispatcher once the exchange is complete | 257 | * the dispatcher once the exchange is complete |
239 | */ | 258 | */ |
240 | 259 | ||
241 | packet_check_eom(); | 260 | if ((r = sshpkt_get_end(ssh)) != 0) |
261 | fatal("%s: %s", __func__, ssh_err(r)); | ||
242 | 262 | ||
243 | authenticated = PRIVSEP(ssh_gssapi_userok(authctxt->user)); | 263 | authenticated = PRIVSEP(ssh_gssapi_userok(authctxt->user)); |
244 | 264 | ||
@@ -260,32 +280,37 @@ input_gssapi_mic(int type, u_int32_t plen, struct ssh *ssh) | |||
260 | { | 280 | { |
261 | Authctxt *authctxt = ssh->authctxt; | 281 | Authctxt *authctxt = ssh->authctxt; |
262 | Gssctxt *gssctxt; | 282 | Gssctxt *gssctxt; |
263 | int authenticated = 0; | 283 | int r, authenticated = 0; |
264 | Buffer b; | 284 | struct sshbuf *b; |
265 | gss_buffer_desc mic, gssbuf; | 285 | gss_buffer_desc mic, gssbuf; |
266 | u_int len; | ||
267 | const char *displayname; | 286 | const char *displayname; |
287 | u_char *p; | ||
288 | size_t len; | ||
268 | 289 | ||
269 | if (authctxt == NULL || (authctxt->methoddata == NULL && !use_privsep)) | 290 | if (authctxt == NULL || (authctxt->methoddata == NULL && !use_privsep)) |
270 | fatal("No authentication or GSSAPI context"); | 291 | fatal("No authentication or GSSAPI context"); |
271 | 292 | ||
272 | gssctxt = authctxt->methoddata; | 293 | gssctxt = authctxt->methoddata; |
273 | 294 | ||
274 | mic.value = packet_get_string(&len); | 295 | if ((r = sshpkt_get_string(ssh, &p, &len)) != 0) |
296 | fatal("%s: %s", __func__, ssh_err(r)); | ||
297 | if ((b = sshbuf_new()) == NULL) | ||
298 | fatal("%s: sshbuf_new failed", __func__); | ||
299 | mic.value = p; | ||
275 | mic.length = len; | 300 | mic.length = len; |
276 | 301 | ssh_gssapi_buildmic(b, authctxt->user, authctxt->service, | |
277 | ssh_gssapi_buildmic(&b, authctxt->user, authctxt->service, | ||
278 | "gssapi-with-mic"); | 302 | "gssapi-with-mic"); |
279 | 303 | ||
280 | gssbuf.value = buffer_ptr(&b); | 304 | if ((gssbuf.value = sshbuf_mutable_ptr(b)) == NULL) |
281 | gssbuf.length = buffer_len(&b); | 305 | fatal("%s: sshbuf_mutable_ptr failed", __func__); |
306 | gssbuf.length = sshbuf_len(b); | ||
282 | 307 | ||
283 | if (!GSS_ERROR(PRIVSEP(ssh_gssapi_checkmic(gssctxt, &gssbuf, &mic)))) | 308 | if (!GSS_ERROR(PRIVSEP(ssh_gssapi_checkmic(gssctxt, &gssbuf, &mic)))) |
284 | authenticated = PRIVSEP(ssh_gssapi_userok(authctxt->user)); | 309 | authenticated = PRIVSEP(ssh_gssapi_userok(authctxt->user)); |
285 | else | 310 | else |
286 | logit("GSSAPI MIC check failed"); | 311 | logit("GSSAPI MIC check failed"); |
287 | 312 | ||
288 | buffer_free(&b); | 313 | sshbuf_free(b); |
289 | free(mic.value); | 314 | free(mic.value); |
290 | 315 | ||
291 | if ((!use_privsep || mm_is_monitor()) && | 316 | if ((!use_privsep || mm_is_monitor()) && |
diff --git a/auth2-hostbased.c b/auth2-hostbased.c index 8996f7e05..359393291 100644 --- a/auth2-hostbased.c +++ b/auth2-hostbased.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: auth2-hostbased.c,v 1.33 2018/01/23 05:27:21 djm Exp $ */ | 1 | /* $OpenBSD: auth2-hostbased.c,v 1.36 2018/07/31 03:10:27 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. |
4 | * | 4 | * |
@@ -34,7 +34,7 @@ | |||
34 | #include "xmalloc.h" | 34 | #include "xmalloc.h" |
35 | #include "ssh2.h" | 35 | #include "ssh2.h" |
36 | #include "packet.h" | 36 | #include "packet.h" |
37 | #include "buffer.h" | 37 | #include "sshbuf.h" |
38 | #include "log.h" | 38 | #include "log.h" |
39 | #include "misc.h" | 39 | #include "misc.h" |
40 | #include "servconf.h" | 40 | #include "servconf.h" |
@@ -67,10 +67,6 @@ userauth_hostbased(struct ssh *ssh) | |||
67 | size_t alen, blen, slen; | 67 | size_t alen, blen, slen; |
68 | int r, pktype, authenticated = 0; | 68 | int r, pktype, authenticated = 0; |
69 | 69 | ||
70 | if (!authctxt->valid) { | ||
71 | debug2("%s: disabled because of invalid user", __func__); | ||
72 | return 0; | ||
73 | } | ||
74 | /* XXX use sshkey_froms() */ | 70 | /* XXX use sshkey_froms() */ |
75 | if ((r = sshpkt_get_cstring(ssh, &pkalg, &alen)) != 0 || | 71 | if ((r = sshpkt_get_cstring(ssh, &pkalg, &alen)) != 0 || |
76 | (r = sshpkt_get_string(ssh, &pkblob, &blen)) != 0 || | 72 | (r = sshpkt_get_string(ssh, &pkblob, &blen)) != 0 || |
@@ -111,13 +107,17 @@ userauth_hostbased(struct ssh *ssh) | |||
111 | "signature format"); | 107 | "signature format"); |
112 | goto done; | 108 | goto done; |
113 | } | 109 | } |
114 | if (match_pattern_list(sshkey_ssh_name(key), | 110 | if (match_pattern_list(pkalg, options.hostbased_key_types, 0) != 1) { |
115 | options.hostbased_key_types, 0) != 1) { | ||
116 | logit("%s: key type %s not in HostbasedAcceptedKeyTypes", | 111 | logit("%s: key type %s not in HostbasedAcceptedKeyTypes", |
117 | __func__, sshkey_type(key)); | 112 | __func__, sshkey_type(key)); |
118 | goto done; | 113 | goto done; |
119 | } | 114 | } |
120 | 115 | ||
116 | if (!authctxt->valid || authctxt->user == NULL) { | ||
117 | debug2("%s: disabled because of invalid user", __func__); | ||
118 | goto done; | ||
119 | } | ||
120 | |||
121 | if ((b = sshbuf_new()) == NULL) | 121 | if ((b = sshbuf_new()) == NULL) |
122 | fatal("%s: sshbuf_new failed", __func__); | 122 | fatal("%s: sshbuf_new failed", __func__); |
123 | /* reconstruct packet */ | 123 | /* reconstruct packet */ |
diff --git a/auth2-kbdint.c b/auth2-kbdint.c index 86aad8ddc..a813b8f56 100644 --- a/auth2-kbdint.c +++ b/auth2-kbdint.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: auth2-kbdint.c,v 1.8 2017/05/30 14:29:59 markus Exp $ */ | 1 | /* $OpenBSD: auth2-kbdint.c,v 1.9 2018/07/09 21:35:50 markus Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. |
4 | * | 4 | * |
@@ -31,13 +31,12 @@ | |||
31 | 31 | ||
32 | #include "xmalloc.h" | 32 | #include "xmalloc.h" |
33 | #include "packet.h" | 33 | #include "packet.h" |
34 | #include "key.h" | ||
35 | #include "hostfile.h" | 34 | #include "hostfile.h" |
36 | #include "auth.h" | 35 | #include "auth.h" |
37 | #include "log.h" | 36 | #include "log.h" |
38 | #include "buffer.h" | ||
39 | #include "misc.h" | 37 | #include "misc.h" |
40 | #include "servconf.h" | 38 | #include "servconf.h" |
39 | #include "ssherr.h" | ||
41 | 40 | ||
42 | /* import */ | 41 | /* import */ |
43 | extern ServerOptions options; | 42 | extern ServerOptions options; |
@@ -45,12 +44,13 @@ extern ServerOptions options; | |||
45 | static int | 44 | static int |
46 | userauth_kbdint(struct ssh *ssh) | 45 | userauth_kbdint(struct ssh *ssh) |
47 | { | 46 | { |
48 | int authenticated = 0; | 47 | int r, authenticated = 0; |
49 | char *lang, *devs; | 48 | char *lang, *devs; |
50 | 49 | ||
51 | lang = packet_get_string(NULL); | 50 | if ((r = sshpkt_get_cstring(ssh, &lang, NULL)) != 0 || |
52 | devs = packet_get_string(NULL); | 51 | (r = sshpkt_get_cstring(ssh, &devs, NULL)) != 0 || |
53 | packet_check_eom(); | 52 | (r = sshpkt_get_end(ssh)) != 0) |
53 | fatal("%s: %s", __func__, ssh_err(r)); | ||
54 | 54 | ||
55 | debug("keyboard-interactive devs %s", devs); | 55 | debug("keyboard-interactive devs %s", devs); |
56 | 56 | ||
diff --git a/auth2-none.c b/auth2-none.c index 8d4e9bb8c..dacb5fb83 100644 --- a/auth2-none.c +++ b/auth2-none.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: auth2-none.c,v 1.21 2018/03/03 03:15:51 djm Exp $ */ | 1 | /* $OpenBSD: auth2-none.c,v 1.22 2018/07/09 21:35:50 markus Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. |
4 | * | 4 | * |
@@ -42,7 +42,6 @@ | |||
42 | #include "auth.h" | 42 | #include "auth.h" |
43 | #include "packet.h" | 43 | #include "packet.h" |
44 | #include "log.h" | 44 | #include "log.h" |
45 | #include "buffer.h" | ||
46 | #include "misc.h" | 45 | #include "misc.h" |
47 | #include "servconf.h" | 46 | #include "servconf.h" |
48 | #include "compat.h" | 47 | #include "compat.h" |
diff --git a/auth2-passwd.c b/auth2-passwd.c index 445016aec..0395a69f4 100644 --- a/auth2-passwd.c +++ b/auth2-passwd.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: auth2-passwd.c,v 1.15 2018/03/03 03:15:51 djm Exp $ */ | 1 | /* $OpenBSD: auth2-passwd.c,v 1.16 2018/07/09 21:35:50 markus Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. |
4 | * | 4 | * |
@@ -36,7 +36,6 @@ | |||
36 | #include "sshkey.h" | 36 | #include "sshkey.h" |
37 | #include "hostfile.h" | 37 | #include "hostfile.h" |
38 | #include "auth.h" | 38 | #include "auth.h" |
39 | #include "buffer.h" | ||
40 | #ifdef GSSAPI | 39 | #ifdef GSSAPI |
41 | #include "ssh-gss.h" | 40 | #include "ssh-gss.h" |
42 | #endif | 41 | #endif |
diff --git a/auth2-pubkey.c b/auth2-pubkey.c index 8024b1d6a..3d9f9af1f 100644 --- a/auth2-pubkey.c +++ b/auth2-pubkey.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: auth2-pubkey.c,v 1.77 2018/03/03 03:15:51 djm Exp $ */ | 1 | /* $OpenBSD: auth2-pubkey.c,v 1.84 2018/08/23 03:01:08 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. |
4 | * | 4 | * |
@@ -46,7 +46,7 @@ | |||
46 | #include "ssh.h" | 46 | #include "ssh.h" |
47 | #include "ssh2.h" | 47 | #include "ssh2.h" |
48 | #include "packet.h" | 48 | #include "packet.h" |
49 | #include "buffer.h" | 49 | #include "sshbuf.h" |
50 | #include "log.h" | 50 | #include "log.h" |
51 | #include "misc.h" | 51 | #include "misc.h" |
52 | #include "servconf.h" | 52 | #include "servconf.h" |
@@ -89,19 +89,15 @@ userauth_pubkey(struct ssh *ssh) | |||
89 | { | 89 | { |
90 | Authctxt *authctxt = ssh->authctxt; | 90 | Authctxt *authctxt = ssh->authctxt; |
91 | struct passwd *pw = authctxt->pw; | 91 | struct passwd *pw = authctxt->pw; |
92 | struct sshbuf *b; | 92 | struct sshbuf *b = NULL; |
93 | struct sshkey *key = NULL; | 93 | struct sshkey *key = NULL; |
94 | char *pkalg, *userstyle = NULL, *key_s = NULL, *ca_s = NULL; | 94 | char *pkalg = NULL, *userstyle = NULL, *key_s = NULL, *ca_s = NULL; |
95 | u_char *pkblob, *sig, have_sig; | 95 | u_char *pkblob = NULL, *sig = NULL, have_sig; |
96 | size_t blen, slen; | 96 | size_t blen, slen; |
97 | int r, pktype; | 97 | int r, pktype; |
98 | int authenticated = 0; | 98 | int authenticated = 0; |
99 | struct sshauthopt *authopts = NULL; | 99 | struct sshauthopt *authopts = NULL; |
100 | 100 | ||
101 | if (!authctxt->valid) { | ||
102 | debug2("%s: disabled because of invalid user", __func__); | ||
103 | return 0; | ||
104 | } | ||
105 | if ((r = sshpkt_get_u8(ssh, &have_sig)) != 0 || | 101 | if ((r = sshpkt_get_u8(ssh, &have_sig)) != 0 || |
106 | (r = sshpkt_get_cstring(ssh, &pkalg, NULL)) != 0 || | 102 | (r = sshpkt_get_cstring(ssh, &pkalg, NULL)) != 0 || |
107 | (r = sshpkt_get_string(ssh, &pkblob, &blen)) != 0) | 103 | (r = sshpkt_get_string(ssh, &pkblob, &blen)) != 0) |
@@ -109,7 +105,7 @@ userauth_pubkey(struct ssh *ssh) | |||
109 | pktype = sshkey_type_from_name(pkalg); | 105 | pktype = sshkey_type_from_name(pkalg); |
110 | if (pktype == KEY_UNSPEC) { | 106 | if (pktype == KEY_UNSPEC) { |
111 | /* this is perfectly legal */ | 107 | /* this is perfectly legal */ |
112 | logit("%s: unsupported public key algorithm: %s", | 108 | verbose("%s: unsupported public key algorithm: %s", |
113 | __func__, pkalg); | 109 | __func__, pkalg); |
114 | goto done; | 110 | goto done; |
115 | } | 111 | } |
@@ -136,8 +132,7 @@ userauth_pubkey(struct ssh *ssh) | |||
136 | logit("refusing previously-used %s key", sshkey_type(key)); | 132 | logit("refusing previously-used %s key", sshkey_type(key)); |
137 | goto done; | 133 | goto done; |
138 | } | 134 | } |
139 | if (match_pattern_list(sshkey_ssh_name(key), | 135 | if (match_pattern_list(pkalg, options.pubkey_key_types, 0) != 1) { |
140 | options.pubkey_key_types, 0) != 1) { | ||
141 | logit("%s: key type %s not in PubkeyAcceptedKeyTypes", | 136 | logit("%s: key type %s not in PubkeyAcceptedKeyTypes", |
142 | __func__, sshkey_ssh_name(key)); | 137 | __func__, sshkey_ssh_name(key)); |
143 | goto done; | 138 | goto done; |
@@ -168,6 +163,11 @@ userauth_pubkey(struct ssh *ssh) | |||
168 | fatal("%s: sshbuf_put_string session id: %s", | 163 | fatal("%s: sshbuf_put_string session id: %s", |
169 | __func__, ssh_err(r)); | 164 | __func__, ssh_err(r)); |
170 | } | 165 | } |
166 | if (!authctxt->valid || authctxt->user == NULL) { | ||
167 | debug2("%s: disabled because of invalid user", | ||
168 | __func__); | ||
169 | goto done; | ||
170 | } | ||
171 | /* reconstruct packet */ | 171 | /* reconstruct packet */ |
172 | xasprintf(&userstyle, "%s%s%s", authctxt->user, | 172 | xasprintf(&userstyle, "%s%s%s", authctxt->user, |
173 | authctxt->style ? ":" : "", | 173 | authctxt->style ? ":" : "", |
@@ -184,16 +184,15 @@ userauth_pubkey(struct ssh *ssh) | |||
184 | #ifdef DEBUG_PK | 184 | #ifdef DEBUG_PK |
185 | sshbuf_dump(b, stderr); | 185 | sshbuf_dump(b, stderr); |
186 | #endif | 186 | #endif |
187 | |||
188 | /* test for correct signature */ | 187 | /* test for correct signature */ |
189 | authenticated = 0; | 188 | authenticated = 0; |
190 | if (PRIVSEP(user_key_allowed(ssh, pw, key, 1, &authopts)) && | 189 | if (PRIVSEP(user_key_allowed(ssh, pw, key, 1, &authopts)) && |
191 | PRIVSEP(sshkey_verify(key, sig, slen, sshbuf_ptr(b), | 190 | PRIVSEP(sshkey_verify(key, sig, slen, |
192 | sshbuf_len(b), NULL, ssh->compat)) == 0) { | 191 | sshbuf_ptr(b), sshbuf_len(b), |
192 | (ssh->compat & SSH_BUG_SIGTYPE) == 0 ? pkalg : NULL, | ||
193 | ssh->compat)) == 0) { | ||
193 | authenticated = 1; | 194 | authenticated = 1; |
194 | } | 195 | } |
195 | sshbuf_free(b); | ||
196 | free(sig); | ||
197 | auth2_record_key(authctxt, authenticated, key); | 196 | auth2_record_key(authctxt, authenticated, key); |
198 | } else { | 197 | } else { |
199 | debug("%s: test pkalg %s pkblob %s%s%s", | 198 | debug("%s: test pkalg %s pkblob %s%s%s", |
@@ -204,6 +203,11 @@ userauth_pubkey(struct ssh *ssh) | |||
204 | if ((r = sshpkt_get_end(ssh)) != 0) | 203 | if ((r = sshpkt_get_end(ssh)) != 0) |
205 | fatal("%s: %s", __func__, ssh_err(r)); | 204 | fatal("%s: %s", __func__, ssh_err(r)); |
206 | 205 | ||
206 | if (!authctxt->valid || authctxt->user == NULL) { | ||
207 | debug2("%s: disabled because of invalid user", | ||
208 | __func__); | ||
209 | goto done; | ||
210 | } | ||
207 | /* XXX fake reply and always send PK_OK ? */ | 211 | /* XXX fake reply and always send PK_OK ? */ |
208 | /* | 212 | /* |
209 | * XXX this allows testing whether a user is allowed | 213 | * XXX this allows testing whether a user is allowed |
@@ -217,9 +221,9 @@ userauth_pubkey(struct ssh *ssh) | |||
217 | != 0 || | 221 | != 0 || |
218 | (r = sshpkt_put_cstring(ssh, pkalg)) != 0 || | 222 | (r = sshpkt_put_cstring(ssh, pkalg)) != 0 || |
219 | (r = sshpkt_put_string(ssh, pkblob, blen)) != 0 || | 223 | (r = sshpkt_put_string(ssh, pkblob, blen)) != 0 || |
220 | (r = sshpkt_send(ssh)) != 0) | 224 | (r = sshpkt_send(ssh)) != 0 || |
225 | (r = ssh_packet_write_wait(ssh)) != 0) | ||
221 | fatal("%s: %s", __func__, ssh_err(r)); | 226 | fatal("%s: %s", __func__, ssh_err(r)); |
222 | ssh_packet_write_wait(ssh); | ||
223 | authctxt->postponed = 1; | 227 | authctxt->postponed = 1; |
224 | } | 228 | } |
225 | } | 229 | } |
@@ -230,6 +234,7 @@ done: | |||
230 | } | 234 | } |
231 | debug2("%s: authenticated %d pkalg %s", __func__, authenticated, pkalg); | 235 | debug2("%s: authenticated %d pkalg %s", __func__, authenticated, pkalg); |
232 | 236 | ||
237 | sshbuf_free(b); | ||
233 | sshauthopt_free(authopts); | 238 | sshauthopt_free(authopts); |
234 | sshkey_free(key); | 239 | sshkey_free(key); |
235 | free(userstyle); | 240 | free(userstyle); |
@@ -237,6 +242,7 @@ done: | |||
237 | free(pkblob); | 242 | free(pkblob); |
238 | free(key_s); | 243 | free(key_s); |
239 | free(ca_s); | 244 | free(ca_s); |
245 | free(sig); | ||
240 | return authenticated; | 246 | return authenticated; |
241 | } | 247 | } |
242 | 248 | ||
@@ -319,14 +325,16 @@ static int | |||
319 | process_principals(struct ssh *ssh, FILE *f, const char *file, | 325 | process_principals(struct ssh *ssh, FILE *f, const char *file, |
320 | const struct sshkey_cert *cert, struct sshauthopt **authoptsp) | 326 | const struct sshkey_cert *cert, struct sshauthopt **authoptsp) |
321 | { | 327 | { |
322 | char loc[256], line[SSH_MAX_PUBKEY_BYTES], *cp, *ep; | 328 | char loc[256], *line = NULL, *cp, *ep; |
329 | size_t linesize = 0; | ||
323 | u_long linenum = 0; | 330 | u_long linenum = 0; |
324 | u_int found_principal = 0; | 331 | u_int found_principal = 0; |
325 | 332 | ||
326 | if (authoptsp != NULL) | 333 | if (authoptsp != NULL) |
327 | *authoptsp = NULL; | 334 | *authoptsp = NULL; |
328 | 335 | ||
329 | while (read_keyfile_line(f, file, line, sizeof(line), &linenum) != -1) { | 336 | while (getline(&line, &linesize, f) != -1) { |
337 | linenum++; | ||
330 | /* Always consume entire input */ | 338 | /* Always consume entire input */ |
331 | if (found_principal) | 339 | if (found_principal) |
332 | continue; | 340 | continue; |
@@ -344,6 +352,7 @@ process_principals(struct ssh *ssh, FILE *f, const char *file, | |||
344 | if (check_principals_line(ssh, cp, cert, loc, authoptsp) == 0) | 352 | if (check_principals_line(ssh, cp, cert, loc, authoptsp) == 0) |
345 | found_principal = 1; | 353 | found_principal = 1; |
346 | } | 354 | } |
355 | free(line); | ||
347 | return found_principal; | 356 | return found_principal; |
348 | } | 357 | } |
349 | 358 | ||
@@ -387,7 +396,7 @@ match_principals_command(struct ssh *ssh, struct passwd *user_pw, | |||
387 | pid_t pid; | 396 | pid_t pid; |
388 | char *tmp, *username = NULL, *command = NULL, **av = NULL; | 397 | char *tmp, *username = NULL, *command = NULL, **av = NULL; |
389 | char *ca_fp = NULL, *key_fp = NULL, *catext = NULL, *keytext = NULL; | 398 | char *ca_fp = NULL, *key_fp = NULL, *catext = NULL, *keytext = NULL; |
390 | char serial_s[16]; | 399 | char serial_s[16], uidstr[32]; |
391 | void (*osigchld)(int); | 400 | void (*osigchld)(int); |
392 | 401 | ||
393 | if (authoptsp != NULL) | 402 | if (authoptsp != NULL) |
@@ -447,8 +456,11 @@ match_principals_command(struct ssh *ssh, struct passwd *user_pw, | |||
447 | } | 456 | } |
448 | snprintf(serial_s, sizeof(serial_s), "%llu", | 457 | snprintf(serial_s, sizeof(serial_s), "%llu", |
449 | (unsigned long long)cert->serial); | 458 | (unsigned long long)cert->serial); |
459 | snprintf(uidstr, sizeof(uidstr), "%llu", | ||
460 | (unsigned long long)user_pw->pw_uid); | ||
450 | for (i = 1; i < ac; i++) { | 461 | for (i = 1; i < ac; i++) { |
451 | tmp = percent_expand(av[i], | 462 | tmp = percent_expand(av[i], |
463 | "U", uidstr, | ||
452 | "u", user_pw->pw_name, | 464 | "u", user_pw->pw_name, |
453 | "h", user_pw->pw_dir, | 465 | "h", user_pw->pw_dir, |
454 | "t", sshkey_ssh_name(key), | 466 | "t", sshkey_ssh_name(key), |
@@ -684,14 +696,16 @@ static int | |||
684 | check_authkeys_file(struct ssh *ssh, struct passwd *pw, FILE *f, | 696 | check_authkeys_file(struct ssh *ssh, struct passwd *pw, FILE *f, |
685 | char *file, struct sshkey *key, struct sshauthopt **authoptsp) | 697 | char *file, struct sshkey *key, struct sshauthopt **authoptsp) |
686 | { | 698 | { |
687 | char *cp, line[SSH_MAX_PUBKEY_BYTES], loc[256]; | 699 | char *cp, *line = NULL, loc[256]; |
700 | size_t linesize = 0; | ||
688 | int found_key = 0; | 701 | int found_key = 0; |
689 | u_long linenum = 0; | 702 | u_long linenum = 0; |
690 | 703 | ||
691 | if (authoptsp != NULL) | 704 | if (authoptsp != NULL) |
692 | *authoptsp = NULL; | 705 | *authoptsp = NULL; |
693 | 706 | ||
694 | while (read_keyfile_line(f, file, line, sizeof(line), &linenum) != -1) { | 707 | while (getline(&line, &linesize, f) != -1) { |
708 | linenum++; | ||
695 | /* Always consume entire file */ | 709 | /* Always consume entire file */ |
696 | if (found_key) | 710 | if (found_key) |
697 | continue; | 711 | continue; |
@@ -705,6 +719,7 @@ check_authkeys_file(struct ssh *ssh, struct passwd *pw, FILE *f, | |||
705 | if (check_authkey_line(ssh, pw, key, cp, loc, authoptsp) == 0) | 719 | if (check_authkey_line(ssh, pw, key, cp, loc, authoptsp) == 0) |
706 | found_key = 1; | 720 | found_key = 1; |
707 | } | 721 | } |
722 | free(line); | ||
708 | return found_key; | 723 | return found_key; |
709 | } | 724 | } |
710 | 725 | ||
@@ -852,7 +867,7 @@ user_key_command_allowed2(struct ssh *ssh, struct passwd *user_pw, | |||
852 | int i, uid_swapped = 0, ac = 0; | 867 | int i, uid_swapped = 0, ac = 0; |
853 | pid_t pid; | 868 | pid_t pid; |
854 | char *username = NULL, *key_fp = NULL, *keytext = NULL; | 869 | char *username = NULL, *key_fp = NULL, *keytext = NULL; |
855 | char *tmp, *command = NULL, **av = NULL; | 870 | char uidstr[32], *tmp, *command = NULL, **av = NULL; |
856 | void (*osigchld)(int); | 871 | void (*osigchld)(int); |
857 | 872 | ||
858 | if (authoptsp != NULL) | 873 | if (authoptsp != NULL) |
@@ -902,8 +917,11 @@ user_key_command_allowed2(struct ssh *ssh, struct passwd *user_pw, | |||
902 | command); | 917 | command); |
903 | goto out; | 918 | goto out; |
904 | } | 919 | } |
920 | snprintf(uidstr, sizeof(uidstr), "%llu", | ||
921 | (unsigned long long)user_pw->pw_uid); | ||
905 | for (i = 1; i < ac; i++) { | 922 | for (i = 1; i < ac; i++) { |
906 | tmp = percent_expand(av[i], | 923 | tmp = percent_expand(av[i], |
924 | "U", uidstr, | ||
907 | "u", user_pw->pw_name, | 925 | "u", user_pw->pw_name, |
908 | "h", user_pw->pw_dir, | 926 | "h", user_pw->pw_dir, |
909 | "t", sshkey_ssh_name(key), | 927 | "t", sshkey_ssh_name(key), |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: auth2.c,v 1.145 2018/03/03 03:15:51 djm Exp $ */ | 1 | /* $OpenBSD: auth2.c,v 1.149 2018/07/11 18:53:29 markus Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. |
4 | * | 4 | * |
@@ -41,28 +41,30 @@ | |||
41 | #include "ssh2.h" | 41 | #include "ssh2.h" |
42 | #include "packet.h" | 42 | #include "packet.h" |
43 | #include "log.h" | 43 | #include "log.h" |
44 | #include "buffer.h" | 44 | #include "sshbuf.h" |
45 | #include "misc.h" | 45 | #include "misc.h" |
46 | #include "servconf.h" | 46 | #include "servconf.h" |
47 | #include "compat.h" | 47 | #include "compat.h" |
48 | #include "key.h" | 48 | #include "sshkey.h" |
49 | #include "hostfile.h" | 49 | #include "hostfile.h" |
50 | #include "auth.h" | 50 | #include "auth.h" |
51 | #include "dispatch.h" | 51 | #include "dispatch.h" |
52 | #include "pathnames.h" | 52 | #include "pathnames.h" |
53 | #include "buffer.h" | 53 | #include "sshbuf.h" |
54 | #include "ssherr.h" | ||
54 | 55 | ||
55 | #ifdef GSSAPI | 56 | #ifdef GSSAPI |
56 | #include "ssh-gss.h" | 57 | #include "ssh-gss.h" |
57 | #endif | 58 | #endif |
58 | #include "monitor_wrap.h" | 59 | #include "monitor_wrap.h" |
59 | #include "ssherr.h" | 60 | #include "ssherr.h" |
61 | #include "digest.h" | ||
60 | 62 | ||
61 | /* import */ | 63 | /* import */ |
62 | extern ServerOptions options; | 64 | extern ServerOptions options; |
63 | extern u_char *session_id2; | 65 | extern u_char *session_id2; |
64 | extern u_int session_id2_len; | 66 | extern u_int session_id2_len; |
65 | extern Buffer loginmsg; | 67 | extern struct sshbuf *loginmsg; |
66 | 68 | ||
67 | /* methods */ | 69 | /* methods */ |
68 | 70 | ||
@@ -210,6 +212,43 @@ input_service_request(int type, u_int32_t seq, struct ssh *ssh) | |||
210 | return 0; | 212 | return 0; |
211 | } | 213 | } |
212 | 214 | ||
215 | #define MIN_FAIL_DELAY_SECONDS 0.005 | ||
216 | static double | ||
217 | user_specific_delay(const char *user) | ||
218 | { | ||
219 | char b[512]; | ||
220 | size_t len = ssh_digest_bytes(SSH_DIGEST_SHA512); | ||
221 | u_char *hash = xmalloc(len); | ||
222 | double delay; | ||
223 | |||
224 | (void)snprintf(b, sizeof b, "%llu%s", | ||
225 | (unsigned long long)options.timing_secret, user); | ||
226 | if (ssh_digest_memory(SSH_DIGEST_SHA512, b, strlen(b), hash, len) != 0) | ||
227 | fatal("%s: ssh_digest_memory", __func__); | ||
228 | /* 0-4.2 ms of delay */ | ||
229 | delay = (double)PEEK_U32(hash) / 1000 / 1000 / 1000 / 1000; | ||
230 | freezero(hash, len); | ||
231 | debug3("%s: user specific delay %0.3lfms", __func__, delay/1000); | ||
232 | return MIN_FAIL_DELAY_SECONDS + delay; | ||
233 | } | ||
234 | |||
235 | static void | ||
236 | ensure_minimum_time_since(double start, double seconds) | ||
237 | { | ||
238 | struct timespec ts; | ||
239 | double elapsed = monotime_double() - start, req = seconds, remain; | ||
240 | |||
241 | /* if we've already passed the requested time, scale up */ | ||
242 | while ((remain = seconds - elapsed) < 0.0) | ||
243 | seconds *= 2; | ||
244 | |||
245 | ts.tv_sec = remain; | ||
246 | ts.tv_nsec = (remain - ts.tv_sec) * 1000000000; | ||
247 | debug3("%s: elapsed %0.3lfms, delaying %0.3lfms (requested %0.3lfms)", | ||
248 | __func__, elapsed*1000, remain*1000, req*1000); | ||
249 | nanosleep(&ts, NULL); | ||
250 | } | ||
251 | |||
213 | /*ARGSUSED*/ | 252 | /*ARGSUSED*/ |
214 | static int | 253 | static int |
215 | input_userauth_request(int type, u_int32_t seq, struct ssh *ssh) | 254 | input_userauth_request(int type, u_int32_t seq, struct ssh *ssh) |
@@ -218,6 +257,7 @@ input_userauth_request(int type, u_int32_t seq, struct ssh *ssh) | |||
218 | Authmethod *m = NULL; | 257 | Authmethod *m = NULL; |
219 | char *user, *service, *method, *style = NULL; | 258 | char *user, *service, *method, *style = NULL; |
220 | int authenticated = 0; | 259 | int authenticated = 0; |
260 | double tstart = monotime_double(); | ||
221 | 261 | ||
222 | if (authctxt == NULL) | 262 | if (authctxt == NULL) |
223 | fatal("input_userauth_request: no authctxt"); | 263 | fatal("input_userauth_request: no authctxt"); |
@@ -286,6 +326,9 @@ input_userauth_request(int type, u_int32_t seq, struct ssh *ssh) | |||
286 | debug2("input_userauth_request: try method %s", method); | 326 | debug2("input_userauth_request: try method %s", method); |
287 | authenticated = m->userauth(ssh); | 327 | authenticated = m->userauth(ssh); |
288 | } | 328 | } |
329 | if (!authctxt->authenticated) | ||
330 | ensure_minimum_time_since(tstart, | ||
331 | user_specific_delay(authctxt->user)); | ||
289 | userauth_finish(ssh, authenticated, method, NULL); | 332 | userauth_finish(ssh, authenticated, method, NULL); |
290 | 333 | ||
291 | free(service); | 334 | free(service); |
@@ -336,11 +379,15 @@ userauth_finish(struct ssh *ssh, int authenticated, const char *method, | |||
336 | 379 | ||
337 | #ifdef USE_PAM | 380 | #ifdef USE_PAM |
338 | if (options.use_pam && authenticated) { | 381 | if (options.use_pam && authenticated) { |
382 | int r; | ||
383 | |||
339 | if (!PRIVSEP(do_pam_account())) { | 384 | if (!PRIVSEP(do_pam_account())) { |
340 | /* if PAM returned a message, send it to the user */ | 385 | /* if PAM returned a message, send it to the user */ |
341 | if (buffer_len(&loginmsg) > 0) { | 386 | if (sshbuf_len(loginmsg) > 0) { |
342 | buffer_append(&loginmsg, "\0", 1); | 387 | if ((r = sshbuf_put(loginmsg, "\0", 1)) != 0) |
343 | userauth_send_banner(buffer_ptr(&loginmsg)); | 388 | fatal("%s: buffer error: %s", |
389 | __func__, ssh_err(r)); | ||
390 | userauth_send_banner(sshbuf_ptr(loginmsg)); | ||
344 | packet_write_wait(); | 391 | packet_write_wait(); |
345 | } | 392 | } |
346 | fatal("Access denied for user %s by PAM account " | 393 | fatal("Access denied for user %s by PAM account " |
@@ -409,11 +456,12 @@ auth2_method_allowed(Authctxt *authctxt, const char *method, | |||
409 | static char * | 456 | static char * |
410 | authmethods_get(Authctxt *authctxt) | 457 | authmethods_get(Authctxt *authctxt) |
411 | { | 458 | { |
412 | Buffer b; | 459 | struct sshbuf *b; |
413 | char *list; | 460 | char *list; |
414 | u_int i; | 461 | int i, r; |
415 | 462 | ||
416 | buffer_init(&b); | 463 | if ((b = sshbuf_new()) == NULL) |
464 | fatal("%s: sshbuf_new failed", __func__); | ||
417 | for (i = 0; authmethods[i] != NULL; i++) { | 465 | for (i = 0; authmethods[i] != NULL; i++) { |
418 | if (strcmp(authmethods[i]->name, "none") == 0) | 466 | if (strcmp(authmethods[i]->name, "none") == 0) |
419 | continue; | 467 | continue; |
@@ -423,14 +471,13 @@ authmethods_get(Authctxt *authctxt) | |||
423 | if (!auth2_method_allowed(authctxt, authmethods[i]->name, | 471 | if (!auth2_method_allowed(authctxt, authmethods[i]->name, |
424 | NULL)) | 472 | NULL)) |
425 | continue; | 473 | continue; |
426 | if (buffer_len(&b) > 0) | 474 | if ((r = sshbuf_putf(b, "%s%s", sshbuf_len(b) ? "," : "", |
427 | buffer_append(&b, ",", 1); | 475 | authmethods[i]->name)) != 0) |
428 | buffer_append(&b, authmethods[i]->name, | 476 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
429 | strlen(authmethods[i]->name)); | ||
430 | } | 477 | } |
431 | if ((list = sshbuf_dup_string(&b)) == NULL) | 478 | if ((list = sshbuf_dup_string(b)) == NULL) |
432 | fatal("%s: sshbuf_dup_string failed", __func__); | 479 | fatal("%s: sshbuf_dup_string failed", __func__); |
433 | buffer_free(&b); | 480 | sshbuf_free(b); |
434 | return list; | 481 | return list; |
435 | } | 482 | } |
436 | 483 | ||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: authfd.c,v 1.108 2018/02/23 15:58:37 markus Exp $ */ | 1 | /* $OpenBSD: authfd.c,v 1.111 2018/07/09 21:59:10 markus Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -133,7 +133,7 @@ ssh_request_reply(int sock, struct sshbuf *request, struct sshbuf *reply) | |||
133 | 133 | ||
134 | /* Send the length and then the packet to the agent. */ | 134 | /* Send the length and then the packet to the agent. */ |
135 | if (atomicio(vwrite, sock, buf, 4) != 4 || | 135 | if (atomicio(vwrite, sock, buf, 4) != 4 || |
136 | atomicio(vwrite, sock, (u_char *)sshbuf_ptr(request), | 136 | atomicio(vwrite, sock, sshbuf_mutable_ptr(request), |
137 | sshbuf_len(request)) != sshbuf_len(request)) | 137 | sshbuf_len(request)) != sshbuf_len(request)) |
138 | return SSH_ERR_AGENT_COMMUNICATION; | 138 | return SSH_ERR_AGENT_COMMUNICATION; |
139 | /* | 139 | /* |
@@ -323,7 +323,7 @@ ssh_free_identitylist(struct ssh_identitylist *idl) | |||
323 | */ | 323 | */ |
324 | 324 | ||
325 | 325 | ||
326 | /* encode signature algoritm in flag bits, so we can keep the msg format */ | 326 | /* encode signature algorithm in flag bits, so we can keep the msg format */ |
327 | static u_int | 327 | static u_int |
328 | agent_encode_alg(const struct sshkey *key, const char *alg) | 328 | agent_encode_alg(const struct sshkey *key, const char *alg) |
329 | { | 329 | { |
@@ -343,8 +343,8 @@ ssh_agent_sign(int sock, const struct sshkey *key, | |||
343 | const u_char *data, size_t datalen, const char *alg, u_int compat) | 343 | const u_char *data, size_t datalen, const char *alg, u_int compat) |
344 | { | 344 | { |
345 | struct sshbuf *msg; | 345 | struct sshbuf *msg; |
346 | u_char *blob = NULL, type; | 346 | u_char *sig = NULL, type = 0; |
347 | size_t blen = 0, len = 0; | 347 | size_t len = 0; |
348 | u_int flags = 0; | 348 | u_int flags = 0; |
349 | int r = SSH_ERR_INTERNAL_ERROR; | 349 | int r = SSH_ERR_INTERNAL_ERROR; |
350 | 350 | ||
@@ -355,11 +355,9 @@ ssh_agent_sign(int sock, const struct sshkey *key, | |||
355 | return SSH_ERR_INVALID_ARGUMENT; | 355 | return SSH_ERR_INVALID_ARGUMENT; |
356 | if ((msg = sshbuf_new()) == NULL) | 356 | if ((msg = sshbuf_new()) == NULL) |
357 | return SSH_ERR_ALLOC_FAIL; | 357 | return SSH_ERR_ALLOC_FAIL; |
358 | if ((r = sshkey_to_blob(key, &blob, &blen)) != 0) | ||
359 | goto out; | ||
360 | flags |= agent_encode_alg(key, alg); | 358 | flags |= agent_encode_alg(key, alg); |
361 | if ((r = sshbuf_put_u8(msg, SSH2_AGENTC_SIGN_REQUEST)) != 0 || | 359 | if ((r = sshbuf_put_u8(msg, SSH2_AGENTC_SIGN_REQUEST)) != 0 || |
362 | (r = sshbuf_put_string(msg, blob, blen)) != 0 || | 360 | (r = sshkey_puts(key, msg)) != 0 || |
363 | (r = sshbuf_put_string(msg, data, datalen)) != 0 || | 361 | (r = sshbuf_put_string(msg, data, datalen)) != 0 || |
364 | (r = sshbuf_put_u32(msg, flags)) != 0) | 362 | (r = sshbuf_put_u32(msg, flags)) != 0) |
365 | goto out; | 363 | goto out; |
@@ -374,15 +372,19 @@ ssh_agent_sign(int sock, const struct sshkey *key, | |||
374 | r = SSH_ERR_INVALID_FORMAT; | 372 | r = SSH_ERR_INVALID_FORMAT; |
375 | goto out; | 373 | goto out; |
376 | } | 374 | } |
377 | if ((r = sshbuf_get_string(msg, sigp, &len)) != 0) | 375 | if ((r = sshbuf_get_string(msg, &sig, &len)) != 0) |
376 | goto out; | ||
377 | /* Check what we actually got back from the agent. */ | ||
378 | if ((r = sshkey_check_sigtype(sig, len, alg)) != 0) | ||
378 | goto out; | 379 | goto out; |
380 | /* success */ | ||
381 | *sigp = sig; | ||
379 | *lenp = len; | 382 | *lenp = len; |
383 | sig = NULL; | ||
384 | len = 0; | ||
380 | r = 0; | 385 | r = 0; |
381 | out: | 386 | out: |
382 | if (blob != NULL) { | 387 | freezero(sig, len); |
383 | explicit_bzero(blob, blen); | ||
384 | free(blob); | ||
385 | } | ||
386 | sshbuf_free(msg); | 388 | sshbuf_free(msg); |
387 | return r; | 389 | return r; |
388 | } | 390 | } |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: authfd.h,v 1.43 2018/02/23 15:58:37 markus Exp $ */ | 1 | /* $OpenBSD: authfd.h,v 1.44 2018/07/12 04:35:25 djm Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
@@ -36,8 +36,6 @@ int ssh_update_card(int sock, int add, const char *reader_id, | |||
36 | const char *pin, u_int life, u_int confirm); | 36 | const char *pin, u_int life, u_int confirm); |
37 | int ssh_remove_all_identities(int sock, int version); | 37 | int ssh_remove_all_identities(int sock, int version); |
38 | 38 | ||
39 | int ssh_decrypt_challenge(int sock, struct sshkey* key, BIGNUM *challenge, | ||
40 | u_char session_id[16], u_char response[16]); | ||
41 | int ssh_agent_sign(int sock, const struct sshkey *key, | 39 | int ssh_agent_sign(int sock, const struct sshkey *key, |
42 | u_char **sigp, size_t *lenp, | 40 | u_char **sigp, size_t *lenp, |
43 | const u_char *data, size_t datalen, const char *alg, u_int compat); | 41 | const u_char *data, size_t datalen, const char *alg, u_int compat); |
diff --git a/authfile.c b/authfile.c index 57dcd808c..be4a57736 100644 --- a/authfile.c +++ b/authfile.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: authfile.c,v 1.128 2018/02/23 15:58:37 markus Exp $ */ | 1 | /* $OpenBSD: authfile.c,v 1.130 2018/07/09 21:59:10 markus Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2000, 2013 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2000, 2013 Markus Friedl. All rights reserved. |
4 | * | 4 | * |
@@ -59,7 +59,7 @@ sshkey_save_private_blob(struct sshbuf *keybuf, const char *filename) | |||
59 | 59 | ||
60 | if ((fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0600)) < 0) | 60 | if ((fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0600)) < 0) |
61 | return SSH_ERR_SYSTEM_ERROR; | 61 | return SSH_ERR_SYSTEM_ERROR; |
62 | if (atomicio(vwrite, fd, (u_char *)sshbuf_ptr(keybuf), | 62 | if (atomicio(vwrite, fd, sshbuf_mutable_ptr(keybuf), |
63 | sshbuf_len(keybuf)) != sshbuf_len(keybuf)) { | 63 | sshbuf_len(keybuf)) != sshbuf_len(keybuf)) { |
64 | oerrno = errno; | 64 | oerrno = errno; |
65 | close(fd); | 65 | close(fd); |
@@ -265,17 +265,15 @@ static int | |||
265 | sshkey_try_load_public(struct sshkey *k, const char *filename, char **commentp) | 265 | sshkey_try_load_public(struct sshkey *k, const char *filename, char **commentp) |
266 | { | 266 | { |
267 | FILE *f; | 267 | FILE *f; |
268 | char line[SSH_MAX_PUBKEY_BYTES]; | 268 | char *line = NULL, *cp; |
269 | char *cp; | 269 | size_t linesize = 0; |
270 | u_long linenum = 0; | ||
271 | int r; | 270 | int r; |
272 | 271 | ||
273 | if (commentp != NULL) | 272 | if (commentp != NULL) |
274 | *commentp = NULL; | 273 | *commentp = NULL; |
275 | if ((f = fopen(filename, "r")) == NULL) | 274 | if ((f = fopen(filename, "r")) == NULL) |
276 | return SSH_ERR_SYSTEM_ERROR; | 275 | return SSH_ERR_SYSTEM_ERROR; |
277 | while (read_keyfile_line(f, filename, line, sizeof(line), | 276 | while (getline(&line, &linesize, f) != -1) { |
278 | &linenum) != -1) { | ||
279 | cp = line; | 277 | cp = line; |
280 | switch (*cp) { | 278 | switch (*cp) { |
281 | case '#': | 279 | case '#': |
@@ -299,11 +297,13 @@ sshkey_try_load_public(struct sshkey *k, const char *filename, char **commentp) | |||
299 | if (*commentp == NULL) | 297 | if (*commentp == NULL) |
300 | r = SSH_ERR_ALLOC_FAIL; | 298 | r = SSH_ERR_ALLOC_FAIL; |
301 | } | 299 | } |
300 | free(line); | ||
302 | fclose(f); | 301 | fclose(f); |
303 | return r; | 302 | return r; |
304 | } | 303 | } |
305 | } | 304 | } |
306 | } | 305 | } |
306 | free(line); | ||
307 | fclose(f); | 307 | fclose(f); |
308 | return SSH_ERR_INVALID_FORMAT; | 308 | return SSH_ERR_INVALID_FORMAT; |
309 | } | 309 | } |
@@ -447,19 +447,18 @@ sshkey_in_file(struct sshkey *key, const char *filename, int strict_type, | |||
447 | int check_ca) | 447 | int check_ca) |
448 | { | 448 | { |
449 | FILE *f; | 449 | FILE *f; |
450 | char line[SSH_MAX_PUBKEY_BYTES]; | 450 | char *line = NULL, *cp; |
451 | char *cp; | 451 | size_t linesize = 0; |
452 | u_long linenum = 0; | ||
453 | int r = 0; | 452 | int r = 0; |
454 | struct sshkey *pub = NULL; | 453 | struct sshkey *pub = NULL; |
454 | |||
455 | int (*sshkey_compare)(const struct sshkey *, const struct sshkey *) = | 455 | int (*sshkey_compare)(const struct sshkey *, const struct sshkey *) = |
456 | strict_type ? sshkey_equal : sshkey_equal_public; | 456 | strict_type ? sshkey_equal : sshkey_equal_public; |
457 | 457 | ||
458 | if ((f = fopen(filename, "r")) == NULL) | 458 | if ((f = fopen(filename, "r")) == NULL) |
459 | return SSH_ERR_SYSTEM_ERROR; | 459 | return SSH_ERR_SYSTEM_ERROR; |
460 | 460 | ||
461 | while (read_keyfile_line(f, filename, line, sizeof(line), | 461 | while (getline(&line, &linesize, f) != -1) { |
462 | &linenum) != -1) { | ||
463 | cp = line; | 462 | cp = line; |
464 | 463 | ||
465 | /* Skip leading whitespace. */ | 464 | /* Skip leading whitespace. */ |
@@ -491,6 +490,7 @@ sshkey_in_file(struct sshkey *key, const char *filename, int strict_type, | |||
491 | } | 490 | } |
492 | r = SSH_ERR_KEY_NOT_FOUND; | 491 | r = SSH_ERR_KEY_NOT_FOUND; |
493 | out: | 492 | out: |
493 | free(line); | ||
494 | sshkey_free(pub); | 494 | sshkey_free(pub); |
495 | fclose(f); | 495 | fclose(f); |
496 | return r; | 496 | return r; |
diff --git a/bufaux.c b/bufaux.c deleted file mode 100644 index 3976896a9..000000000 --- a/bufaux.c +++ /dev/null | |||
@@ -1,259 +0,0 @@ | |||
1 | /* $OpenBSD: bufaux.c,v 1.60 2014/04/30 05:29:56 djm Exp $ */ | ||
2 | /* | ||
3 | * Copyright (c) 2012 Damien Miller <djm@mindrot.org> | ||
4 | * | ||
5 | * Permission to use, copy, modify, and distribute this software for any | ||
6 | * purpose with or without fee is hereby granted, provided that the above | ||
7 | * copyright notice and this permission notice appear in all copies. | ||
8 | * | ||
9 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||
10 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||
11 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||
12 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||
13 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||
14 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||
15 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
16 | */ | ||
17 | |||
18 | /* Emulation wrappers for legacy OpenSSH buffer API atop sshbuf */ | ||
19 | |||
20 | #include "includes.h" | ||
21 | |||
22 | #include <sys/types.h> | ||
23 | |||
24 | #include "buffer.h" | ||
25 | #include "log.h" | ||
26 | #include "ssherr.h" | ||
27 | |||
28 | int | ||
29 | buffer_get_short_ret(u_short *v, Buffer *buffer) | ||
30 | { | ||
31 | int ret; | ||
32 | |||
33 | if ((ret = sshbuf_get_u16(buffer, v)) != 0) { | ||
34 | error("%s: %s", __func__, ssh_err(ret)); | ||
35 | return -1; | ||
36 | } | ||
37 | return 0; | ||
38 | } | ||
39 | |||
40 | u_short | ||
41 | buffer_get_short(Buffer *buffer) | ||
42 | { | ||
43 | u_short ret; | ||
44 | |||
45 | if (buffer_get_short_ret(&ret, buffer) == -1) | ||
46 | fatal("%s: buffer error", __func__); | ||
47 | |||
48 | return (ret); | ||
49 | } | ||
50 | |||
51 | int | ||
52 | buffer_get_int_ret(u_int *v, Buffer *buffer) | ||
53 | { | ||
54 | int ret; | ||
55 | |||
56 | if ((ret = sshbuf_get_u32(buffer, v)) != 0) { | ||
57 | error("%s: %s", __func__, ssh_err(ret)); | ||
58 | return -1; | ||
59 | } | ||
60 | return 0; | ||
61 | } | ||
62 | |||
63 | u_int | ||
64 | buffer_get_int(Buffer *buffer) | ||
65 | { | ||
66 | u_int ret; | ||
67 | |||
68 | if (buffer_get_int_ret(&ret, buffer) == -1) | ||
69 | fatal("%s: buffer error", __func__); | ||
70 | |||
71 | return (ret); | ||
72 | } | ||
73 | |||
74 | int | ||
75 | buffer_get_int64_ret(u_int64_t *v, Buffer *buffer) | ||
76 | { | ||
77 | int ret; | ||
78 | |||
79 | if ((ret = sshbuf_get_u64(buffer, v)) != 0) { | ||
80 | error("%s: %s", __func__, ssh_err(ret)); | ||
81 | return -1; | ||
82 | } | ||
83 | return 0; | ||
84 | } | ||
85 | |||
86 | u_int64_t | ||
87 | buffer_get_int64(Buffer *buffer) | ||
88 | { | ||
89 | u_int64_t ret; | ||
90 | |||
91 | if (buffer_get_int64_ret(&ret, buffer) == -1) | ||
92 | fatal("%s: buffer error", __func__); | ||
93 | |||
94 | return (ret); | ||
95 | } | ||
96 | |||
97 | void | ||
98 | buffer_put_short(Buffer *buffer, u_short value) | ||
99 | { | ||
100 | int ret; | ||
101 | |||
102 | if ((ret = sshbuf_put_u16(buffer, value)) != 0) | ||
103 | fatal("%s: %s", __func__, ssh_err(ret)); | ||
104 | } | ||
105 | |||
106 | void | ||
107 | buffer_put_int(Buffer *buffer, u_int value) | ||
108 | { | ||
109 | int ret; | ||
110 | |||
111 | if ((ret = sshbuf_put_u32(buffer, value)) != 0) | ||
112 | fatal("%s: %s", __func__, ssh_err(ret)); | ||
113 | } | ||
114 | |||
115 | void | ||
116 | buffer_put_int64(Buffer *buffer, u_int64_t value) | ||
117 | { | ||
118 | int ret; | ||
119 | |||
120 | if ((ret = sshbuf_put_u64(buffer, value)) != 0) | ||
121 | fatal("%s: %s", __func__, ssh_err(ret)); | ||
122 | } | ||
123 | |||
124 | void * | ||
125 | buffer_get_string_ret(Buffer *buffer, u_int *length_ptr) | ||
126 | { | ||
127 | size_t len; | ||
128 | int ret; | ||
129 | u_char *value; | ||
130 | |||
131 | if ((ret = sshbuf_get_string(buffer, &value, &len)) != 0) { | ||
132 | error("%s: %s", __func__, ssh_err(ret)); | ||
133 | return NULL; | ||
134 | } | ||
135 | if (length_ptr != NULL) | ||
136 | *length_ptr = len; /* Safe: sshbuf never stores len > 2^31 */ | ||
137 | return value; | ||
138 | } | ||
139 | |||
140 | void * | ||
141 | buffer_get_string(Buffer *buffer, u_int *length_ptr) | ||
142 | { | ||
143 | void *ret; | ||
144 | |||
145 | if ((ret = buffer_get_string_ret(buffer, length_ptr)) == NULL) | ||
146 | fatal("%s: buffer error", __func__); | ||
147 | return (ret); | ||
148 | } | ||
149 | |||
150 | char * | ||
151 | buffer_get_cstring_ret(Buffer *buffer, u_int *length_ptr) | ||
152 | { | ||
153 | size_t len; | ||
154 | int ret; | ||
155 | char *value; | ||
156 | |||
157 | if ((ret = sshbuf_get_cstring(buffer, &value, &len)) != 0) { | ||
158 | error("%s: %s", __func__, ssh_err(ret)); | ||
159 | return NULL; | ||
160 | } | ||
161 | if (length_ptr != NULL) | ||
162 | *length_ptr = len; /* Safe: sshbuf never stores len > 2^31 */ | ||
163 | return value; | ||
164 | } | ||
165 | |||
166 | char * | ||
167 | buffer_get_cstring(Buffer *buffer, u_int *length_ptr) | ||
168 | { | ||
169 | char *ret; | ||
170 | |||
171 | if ((ret = buffer_get_cstring_ret(buffer, length_ptr)) == NULL) | ||
172 | fatal("%s: buffer error", __func__); | ||
173 | return ret; | ||
174 | } | ||
175 | |||
176 | const void * | ||
177 | buffer_get_string_ptr_ret(Buffer *buffer, u_int *length_ptr) | ||
178 | { | ||
179 | size_t len; | ||
180 | int ret; | ||
181 | const u_char *value; | ||
182 | |||
183 | if ((ret = sshbuf_get_string_direct(buffer, &value, &len)) != 0) { | ||
184 | error("%s: %s", __func__, ssh_err(ret)); | ||
185 | return NULL; | ||
186 | } | ||
187 | if (length_ptr != NULL) | ||
188 | *length_ptr = len; /* Safe: sshbuf never stores len > 2^31 */ | ||
189 | return value; | ||
190 | } | ||
191 | |||
192 | const void * | ||
193 | buffer_get_string_ptr(Buffer *buffer, u_int *length_ptr) | ||
194 | { | ||
195 | const void *ret; | ||
196 | |||
197 | if ((ret = buffer_get_string_ptr_ret(buffer, length_ptr)) == NULL) | ||
198 | fatal("%s: buffer error", __func__); | ||
199 | return (ret); | ||
200 | } | ||
201 | |||
202 | void | ||
203 | buffer_put_string(Buffer *buffer, const void *buf, u_int len) | ||
204 | { | ||
205 | int ret; | ||
206 | |||
207 | if ((ret = sshbuf_put_string(buffer, buf, len)) != 0) | ||
208 | fatal("%s: %s", __func__, ssh_err(ret)); | ||
209 | } | ||
210 | |||
211 | void | ||
212 | buffer_put_cstring(Buffer *buffer, const char *s) | ||
213 | { | ||
214 | int ret; | ||
215 | |||
216 | if ((ret = sshbuf_put_cstring(buffer, s)) != 0) | ||
217 | fatal("%s: %s", __func__, ssh_err(ret)); | ||
218 | } | ||
219 | |||
220 | int | ||
221 | buffer_get_char_ret(char *v, Buffer *buffer) | ||
222 | { | ||
223 | int ret; | ||
224 | |||
225 | if ((ret = sshbuf_get_u8(buffer, (u_char *)v)) != 0) { | ||
226 | error("%s: %s", __func__, ssh_err(ret)); | ||
227 | return -1; | ||
228 | } | ||
229 | return 0; | ||
230 | } | ||
231 | |||
232 | int | ||
233 | buffer_get_char(Buffer *buffer) | ||
234 | { | ||
235 | char ch; | ||
236 | |||
237 | if (buffer_get_char_ret(&ch, buffer) == -1) | ||
238 | fatal("%s: buffer error", __func__); | ||
239 | return (u_char) ch; | ||
240 | } | ||
241 | |||
242 | void | ||
243 | buffer_put_char(Buffer *buffer, int value) | ||
244 | { | ||
245 | int ret; | ||
246 | |||
247 | if ((ret = sshbuf_put_u8(buffer, value)) != 0) | ||
248 | fatal("%s: %s", __func__, ssh_err(ret)); | ||
249 | } | ||
250 | |||
251 | void | ||
252 | buffer_put_bignum2_from_string(Buffer *buffer, const u_char *s, u_int l) | ||
253 | { | ||
254 | int ret; | ||
255 | |||
256 | if ((ret = sshbuf_put_bignum2_bytes(buffer, s, l)) != 0) | ||
257 | fatal("%s: %s", __func__, ssh_err(ret)); | ||
258 | } | ||
259 | |||
diff --git a/bufbn.c b/bufbn.c deleted file mode 100644 index 98f9466bc..000000000 --- a/bufbn.c +++ /dev/null | |||
@@ -1,69 +0,0 @@ | |||
1 | /* $OpenBSD: bufbn.c,v 1.13 2017/04/30 23:23:54 djm Exp $ */ | ||
2 | |||
3 | /* | ||
4 | * Copyright (c) 2012 Damien Miller <djm@mindrot.org> | ||
5 | * | ||
6 | * Permission to use, copy, modify, and distribute this software for any | ||
7 | * purpose with or without fee is hereby granted, provided that the above | ||
8 | * copyright notice and this permission notice appear in all copies. | ||
9 | * | ||
10 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||
11 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||
12 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||
13 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||
14 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||
15 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||
16 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
17 | */ | ||
18 | |||
19 | /* Emulation wrappers for legacy OpenSSH buffer API atop sshbuf */ | ||
20 | |||
21 | #include "includes.h" | ||
22 | |||
23 | #ifdef WITH_OPENSSL | ||
24 | |||
25 | #include <sys/types.h> | ||
26 | |||
27 | #include "buffer.h" | ||
28 | #include "log.h" | ||
29 | #include "ssherr.h" | ||
30 | |||
31 | int | ||
32 | buffer_put_bignum2_ret(Buffer *buffer, const BIGNUM *value) | ||
33 | { | ||
34 | int ret; | ||
35 | |||
36 | if ((ret = sshbuf_put_bignum2(buffer, value)) != 0) { | ||
37 | error("%s: %s", __func__, ssh_err(ret)); | ||
38 | return -1; | ||
39 | } | ||
40 | return 0; | ||
41 | } | ||
42 | |||
43 | void | ||
44 | buffer_put_bignum2(Buffer *buffer, const BIGNUM *value) | ||
45 | { | ||
46 | if (buffer_put_bignum2_ret(buffer, value) == -1) | ||
47 | fatal("%s: buffer error", __func__); | ||
48 | } | ||
49 | |||
50 | int | ||
51 | buffer_get_bignum2_ret(Buffer *buffer, BIGNUM *value) | ||
52 | { | ||
53 | int ret; | ||
54 | |||
55 | if ((ret = sshbuf_get_bignum2(buffer, value)) != 0) { | ||
56 | error("%s: %s", __func__, ssh_err(ret)); | ||
57 | return -1; | ||
58 | } | ||
59 | return 0; | ||
60 | } | ||
61 | |||
62 | void | ||
63 | buffer_get_bignum2(Buffer *buffer, BIGNUM *value) | ||
64 | { | ||
65 | if (buffer_get_bignum2_ret(buffer, value) == -1) | ||
66 | fatal("%s: buffer error", __func__); | ||
67 | } | ||
68 | |||
69 | #endif /* WITH_OPENSSL */ | ||
diff --git a/bufec.c b/bufec.c deleted file mode 100644 index 749ce9d4c..000000000 --- a/bufec.c +++ /dev/null | |||
@@ -1,74 +0,0 @@ | |||
1 | /* $OpenBSD: bufec.c,v 1.4 2014/04/30 05:29:56 djm Exp $ */ | ||
2 | |||
3 | /* | ||
4 | * Copyright (c) 2012 Damien Miller <djm@mindrot.org> | ||
5 | * | ||
6 | * Permission to use, copy, modify, and distribute this software for any | ||
7 | * purpose with or without fee is hereby granted, provided that the above | ||
8 | * copyright notice and this permission notice appear in all copies. | ||
9 | * | ||
10 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||
11 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||
12 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||
13 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||
14 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||
15 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||
16 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
17 | */ | ||
18 | |||
19 | /* Emulation wrappers for legacy OpenSSH buffer API atop sshbuf */ | ||
20 | |||
21 | #include "includes.h" | ||
22 | |||
23 | #include <sys/types.h> | ||
24 | |||
25 | #include "buffer.h" | ||
26 | #include "log.h" | ||
27 | #include "ssherr.h" | ||
28 | |||
29 | #ifdef OPENSSL_HAS_ECC | ||
30 | |||
31 | int | ||
32 | buffer_put_ecpoint_ret(Buffer *buffer, const EC_GROUP *curve, | ||
33 | const EC_POINT *point) | ||
34 | { | ||
35 | int ret; | ||
36 | |||
37 | if ((ret = sshbuf_put_ec(buffer, point, curve)) != 0) { | ||
38 | error("%s: %s", __func__, ssh_err(ret)); | ||
39 | return -1; | ||
40 | } | ||
41 | return 0; | ||
42 | } | ||
43 | |||
44 | void | ||
45 | buffer_put_ecpoint(Buffer *buffer, const EC_GROUP *curve, | ||
46 | const EC_POINT *point) | ||
47 | { | ||
48 | if (buffer_put_ecpoint_ret(buffer, curve, point) == -1) | ||
49 | fatal("%s: buffer error", __func__); | ||
50 | } | ||
51 | |||
52 | int | ||
53 | buffer_get_ecpoint_ret(Buffer *buffer, const EC_GROUP *curve, | ||
54 | EC_POINT *point) | ||
55 | { | ||
56 | int ret; | ||
57 | |||
58 | if ((ret = sshbuf_get_ec(buffer, point, curve)) != 0) { | ||
59 | error("%s: %s", __func__, ssh_err(ret)); | ||
60 | return -1; | ||
61 | } | ||
62 | return 0; | ||
63 | } | ||
64 | |||
65 | void | ||
66 | buffer_get_ecpoint(Buffer *buffer, const EC_GROUP *curve, | ||
67 | EC_POINT *point) | ||
68 | { | ||
69 | if (buffer_get_ecpoint_ret(buffer, curve, point) == -1) | ||
70 | fatal("%s: buffer error", __func__); | ||
71 | } | ||
72 | |||
73 | #endif /* OPENSSL_HAS_ECC */ | ||
74 | |||
diff --git a/buffer.c b/buffer.c deleted file mode 100644 index c5f708ab2..000000000 --- a/buffer.c +++ /dev/null | |||
@@ -1,118 +0,0 @@ | |||
1 | /* $OpenBSD: buffer.c,v 1.36 2014/04/30 05:29:56 djm Exp $ */ | ||
2 | |||
3 | /* | ||
4 | * Copyright (c) 2012 Damien Miller <djm@mindrot.org> | ||
5 | * | ||
6 | * Permission to use, copy, modify, and distribute this software for any | ||
7 | * purpose with or without fee is hereby granted, provided that the above | ||
8 | * copyright notice and this permission notice appear in all copies. | ||
9 | * | ||
10 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||
11 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||
12 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||
13 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||
14 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||
15 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||
16 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
17 | */ | ||
18 | |||
19 | /* Emulation wrappers for legacy OpenSSH buffer API atop sshbuf */ | ||
20 | |||
21 | #include "includes.h" | ||
22 | |||
23 | #include <sys/types.h> | ||
24 | |||
25 | #include "buffer.h" | ||
26 | #include "log.h" | ||
27 | #include "ssherr.h" | ||
28 | |||
29 | void | ||
30 | buffer_append(Buffer *buffer, const void *data, u_int len) | ||
31 | { | ||
32 | int ret; | ||
33 | |||
34 | if ((ret = sshbuf_put(buffer, data, len)) != 0) | ||
35 | fatal("%s: %s", __func__, ssh_err(ret)); | ||
36 | } | ||
37 | |||
38 | void * | ||
39 | buffer_append_space(Buffer *buffer, u_int len) | ||
40 | { | ||
41 | int ret; | ||
42 | u_char *p; | ||
43 | |||
44 | if ((ret = sshbuf_reserve(buffer, len, &p)) != 0) | ||
45 | fatal("%s: %s", __func__, ssh_err(ret)); | ||
46 | return p; | ||
47 | } | ||
48 | |||
49 | int | ||
50 | buffer_check_alloc(Buffer *buffer, u_int len) | ||
51 | { | ||
52 | int ret = sshbuf_check_reserve(buffer, len); | ||
53 | |||
54 | if (ret == 0) | ||
55 | return 1; | ||
56 | if (ret == SSH_ERR_NO_BUFFER_SPACE) | ||
57 | return 0; | ||
58 | fatal("%s: %s", __func__, ssh_err(ret)); | ||
59 | } | ||
60 | |||
61 | int | ||
62 | buffer_get_ret(Buffer *buffer, void *buf, u_int len) | ||
63 | { | ||
64 | int ret; | ||
65 | |||
66 | if ((ret = sshbuf_get(buffer, buf, len)) != 0) { | ||
67 | error("%s: %s", __func__, ssh_err(ret)); | ||
68 | return -1; | ||
69 | } | ||
70 | return 0; | ||
71 | } | ||
72 | |||
73 | void | ||
74 | buffer_get(Buffer *buffer, void *buf, u_int len) | ||
75 | { | ||
76 | if (buffer_get_ret(buffer, buf, len) == -1) | ||
77 | fatal("%s: buffer error", __func__); | ||
78 | } | ||
79 | |||
80 | int | ||
81 | buffer_consume_ret(Buffer *buffer, u_int bytes) | ||
82 | { | ||
83 | int ret = sshbuf_consume(buffer, bytes); | ||
84 | |||
85 | if (ret == 0) | ||
86 | return 0; | ||
87 | if (ret == SSH_ERR_MESSAGE_INCOMPLETE) | ||
88 | return -1; | ||
89 | fatal("%s: %s", __func__, ssh_err(ret)); | ||
90 | } | ||
91 | |||
92 | void | ||
93 | buffer_consume(Buffer *buffer, u_int bytes) | ||
94 | { | ||
95 | if (buffer_consume_ret(buffer, bytes) == -1) | ||
96 | fatal("%s: buffer error", __func__); | ||
97 | } | ||
98 | |||
99 | int | ||
100 | buffer_consume_end_ret(Buffer *buffer, u_int bytes) | ||
101 | { | ||
102 | int ret = sshbuf_consume_end(buffer, bytes); | ||
103 | |||
104 | if (ret == 0) | ||
105 | return 0; | ||
106 | if (ret == SSH_ERR_MESSAGE_INCOMPLETE) | ||
107 | return -1; | ||
108 | fatal("%s: %s", __func__, ssh_err(ret)); | ||
109 | } | ||
110 | |||
111 | void | ||
112 | buffer_consume_end(Buffer *buffer, u_int bytes) | ||
113 | { | ||
114 | if (buffer_consume_end_ret(buffer, bytes) == -1) | ||
115 | fatal("%s: buffer error", __func__); | ||
116 | } | ||
117 | |||
118 | |||
diff --git a/buffer.h b/buffer.h deleted file mode 100644 index 56174394c..000000000 --- a/buffer.h +++ /dev/null | |||
@@ -1,95 +0,0 @@ | |||
1 | /* $OpenBSD: buffer.h,v 1.26 2017/04/30 23:23:54 djm Exp $ */ | ||
2 | |||
3 | /* | ||
4 | * Copyright (c) 2012 Damien Miller <djm@mindrot.org> | ||
5 | * | ||
6 | * Permission to use, copy, modify, and distribute this software for any | ||
7 | * purpose with or without fee is hereby granted, provided that the above | ||
8 | * copyright notice and this permission notice appear in all copies. | ||
9 | * | ||
10 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||
11 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||
12 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||
13 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||
14 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||
15 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||
16 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
17 | */ | ||
18 | |||
19 | /* Emulation wrappers for legacy OpenSSH buffer API atop sshbuf */ | ||
20 | |||
21 | #ifndef BUFFER_H | ||
22 | #define BUFFER_H | ||
23 | |||
24 | #include "sshbuf.h" | ||
25 | |||
26 | typedef struct sshbuf Buffer; | ||
27 | |||
28 | #define buffer_init(b) sshbuf_init(b) | ||
29 | #define buffer_clear(b) sshbuf_reset(b) | ||
30 | #define buffer_free(b) sshbuf_free(b) | ||
31 | #define buffer_dump(b) sshbuf_dump(b, stderr) | ||
32 | |||
33 | /* XXX cast is safe: sshbuf never stores more than len 2^31 */ | ||
34 | #define buffer_len(b) ((u_int) sshbuf_len(b)) | ||
35 | #define buffer_ptr(b) sshbuf_mutable_ptr(b) | ||
36 | |||
37 | void buffer_append(Buffer *, const void *, u_int); | ||
38 | void *buffer_append_space(Buffer *, u_int); | ||
39 | int buffer_check_alloc(Buffer *, u_int); | ||
40 | void buffer_get(Buffer *, void *, u_int); | ||
41 | |||
42 | void buffer_consume(Buffer *, u_int); | ||
43 | void buffer_consume_end(Buffer *, u_int); | ||
44 | |||
45 | |||
46 | int buffer_get_ret(Buffer *, void *, u_int); | ||
47 | int buffer_consume_ret(Buffer *, u_int); | ||
48 | int buffer_consume_end_ret(Buffer *, u_int); | ||
49 | |||
50 | #include <openssl/objects.h> | ||
51 | #include <openssl/bn.h> | ||
52 | void buffer_put_bignum2(Buffer *, const BIGNUM *); | ||
53 | void buffer_get_bignum2(Buffer *, BIGNUM *); | ||
54 | void buffer_put_bignum2_from_string(Buffer *, const u_char *, u_int); | ||
55 | |||
56 | u_short buffer_get_short(Buffer *); | ||
57 | void buffer_put_short(Buffer *, u_short); | ||
58 | |||
59 | u_int buffer_get_int(Buffer *); | ||
60 | void buffer_put_int(Buffer *, u_int); | ||
61 | |||
62 | u_int64_t buffer_get_int64(Buffer *); | ||
63 | void buffer_put_int64(Buffer *, u_int64_t); | ||
64 | |||
65 | int buffer_get_char(Buffer *); | ||
66 | void buffer_put_char(Buffer *, int); | ||
67 | |||
68 | void *buffer_get_string(Buffer *, u_int *); | ||
69 | const void *buffer_get_string_ptr(Buffer *, u_int *); | ||
70 | void buffer_put_string(Buffer *, const void *, u_int); | ||
71 | char *buffer_get_cstring(Buffer *, u_int *); | ||
72 | void buffer_put_cstring(Buffer *, const char *); | ||
73 | |||
74 | #define buffer_skip_string(b) (void)buffer_get_string_ptr(b, NULL); | ||
75 | |||
76 | int buffer_put_bignum2_ret(Buffer *, const BIGNUM *); | ||
77 | int buffer_get_bignum2_ret(Buffer *, BIGNUM *); | ||
78 | int buffer_get_short_ret(u_short *, Buffer *); | ||
79 | int buffer_get_int_ret(u_int *, Buffer *); | ||
80 | int buffer_get_int64_ret(u_int64_t *, Buffer *); | ||
81 | void *buffer_get_string_ret(Buffer *, u_int *); | ||
82 | char *buffer_get_cstring_ret(Buffer *, u_int *); | ||
83 | const void *buffer_get_string_ptr_ret(Buffer *, u_int *); | ||
84 | int buffer_get_char_ret(char *, Buffer *); | ||
85 | |||
86 | #ifdef OPENSSL_HAS_ECC | ||
87 | #include <openssl/ec.h> | ||
88 | int buffer_put_ecpoint_ret(Buffer *, const EC_GROUP *, const EC_POINT *); | ||
89 | void buffer_put_ecpoint(Buffer *, const EC_GROUP *, const EC_POINT *); | ||
90 | int buffer_get_ecpoint_ret(Buffer *, const EC_GROUP *, EC_POINT *); | ||
91 | void buffer_get_ecpoint(Buffer *, const EC_GROUP *, EC_POINT *); | ||
92 | #endif | ||
93 | |||
94 | #endif /* BUFFER_H */ | ||
95 | |||
diff --git a/channels.c b/channels.c index bdee1f386..e90f7fea9 100644 --- a/channels.c +++ b/channels.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: channels.c,v 1.379 2018/02/05 05:36:49 tb Exp $ */ | 1 | /* $OpenBSD: channels.c,v 1.384 2018/07/27 12:03:17 markus Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -79,9 +79,10 @@ | |||
79 | #include "channels.h" | 79 | #include "channels.h" |
80 | #include "compat.h" | 80 | #include "compat.h" |
81 | #include "canohost.h" | 81 | #include "canohost.h" |
82 | #include "key.h" | 82 | #include "sshkey.h" |
83 | #include "authfd.h" | 83 | #include "authfd.h" |
84 | #include "pathnames.h" | 84 | #include "pathnames.h" |
85 | #include "match.h" | ||
85 | 86 | ||
86 | /* -- agent forwarding */ | 87 | /* -- agent forwarding */ |
87 | #define NUM_SOCKS 10 | 88 | #define NUM_SOCKS 10 |
@@ -97,6 +98,10 @@ | |||
97 | /* Maximum number of fake X11 displays to try. */ | 98 | /* Maximum number of fake X11 displays to try. */ |
98 | #define MAX_DISPLAYS 1000 | 99 | #define MAX_DISPLAYS 1000 |
99 | 100 | ||
101 | /* Per-channel callback for pre/post select() actions */ | ||
102 | typedef void chan_fn(struct ssh *, Channel *c, | ||
103 | fd_set *readset, fd_set *writeset); | ||
104 | |||
100 | /* | 105 | /* |
101 | * Data structure for storing which hosts are permitted for forward requests. | 106 | * Data structure for storing which hosts are permitted for forward requests. |
102 | * The local sides of any remote forwards are stored in this array to prevent | 107 | * The local sides of any remote forwards are stored in this array to prevent |
@@ -106,17 +111,40 @@ | |||
106 | /* XXX: streamlocal wants a path instead of host:port */ | 111 | /* XXX: streamlocal wants a path instead of host:port */ |
107 | /* Overload host_to_connect; we could just make this match Forward */ | 112 | /* Overload host_to_connect; we could just make this match Forward */ |
108 | /* XXX - can we use listen_host instead of listen_path? */ | 113 | /* XXX - can we use listen_host instead of listen_path? */ |
109 | typedef struct { | 114 | struct permission { |
110 | char *host_to_connect; /* Connect to 'host'. */ | 115 | char *host_to_connect; /* Connect to 'host'. */ |
111 | int port_to_connect; /* Connect to 'port'. */ | 116 | int port_to_connect; /* Connect to 'port'. */ |
112 | char *listen_host; /* Remote side should listen address. */ | 117 | char *listen_host; /* Remote side should listen address. */ |
113 | char *listen_path; /* Remote side should listen path. */ | 118 | char *listen_path; /* Remote side should listen path. */ |
114 | int listen_port; /* Remote side should listen port. */ | 119 | int listen_port; /* Remote side should listen port. */ |
115 | Channel *downstream; /* Downstream mux*/ | 120 | Channel *downstream; /* Downstream mux*/ |
116 | } ForwardPermission; | 121 | }; |
117 | 122 | ||
118 | typedef void chan_fn(struct ssh *, Channel *c, | 123 | /* |
119 | fd_set *readset, fd_set *writeset); | 124 | * Stores the forwarding permission state for a single direction (local or |
125 | * remote). | ||
126 | */ | ||
127 | struct permission_set { | ||
128 | /* | ||
129 | * List of all local permitted host/port pairs to allow for the | ||
130 | * user. | ||
131 | */ | ||
132 | u_int num_permitted_user; | ||
133 | struct permission *permitted_user; | ||
134 | |||
135 | /* | ||
136 | * List of all permitted host/port pairs to allow for the admin. | ||
137 | */ | ||
138 | u_int num_permitted_admin; | ||
139 | struct permission *permitted_admin; | ||
140 | |||
141 | /* | ||
142 | * If this is true, all opens/listens are permitted. This is the | ||
143 | * case on the server on which we have to trust the client anyway, | ||
144 | * and the user could do anything after logging in. | ||
145 | */ | ||
146 | int all_permitted; | ||
147 | }; | ||
120 | 148 | ||
121 | /* Master structure for channels state */ | 149 | /* Master structure for channels state */ |
122 | struct ssh_channels { | 150 | struct ssh_channels { |
@@ -149,31 +177,8 @@ struct ssh_channels { | |||
149 | chan_fn **channel_post; | 177 | chan_fn **channel_post; |
150 | 178 | ||
151 | /* -- tcp forwarding */ | 179 | /* -- tcp forwarding */ |
152 | 180 | struct permission_set local_perms; | |
153 | /* List of all permitted host/port pairs to connect by the user. */ | 181 | struct permission_set remote_perms; |
154 | ForwardPermission *permitted_opens; | ||
155 | |||
156 | /* List of all permitted host/port pairs to connect by the admin. */ | ||
157 | ForwardPermission *permitted_adm_opens; | ||
158 | |||
159 | /* | ||
160 | * Number of permitted host/port pairs in the array permitted by | ||
161 | * the user. | ||
162 | */ | ||
163 | u_int num_permitted_opens; | ||
164 | |||
165 | /* | ||
166 | * Number of permitted host/port pair in the array permitted by | ||
167 | * the admin. | ||
168 | */ | ||
169 | u_int num_adm_permitted_opens; | ||
170 | |||
171 | /* | ||
172 | * If this is true, all opens are permitted. This is the case on | ||
173 | * the server on which we have to trust the client anyway, and the | ||
174 | * user could do anything after logging in anyway. | ||
175 | */ | ||
176 | int all_opens_permitted; | ||
177 | 182 | ||
178 | /* -- X11 forwarding */ | 183 | /* -- X11 forwarding */ |
179 | 184 | ||
@@ -448,50 +453,95 @@ channel_close_fds(struct ssh *ssh, Channel *c) | |||
448 | } | 453 | } |
449 | 454 | ||
450 | static void | 455 | static void |
451 | fwd_perm_clear(ForwardPermission *fp) | 456 | fwd_perm_clear(struct permission *perm) |
452 | { | 457 | { |
453 | free(fp->host_to_connect); | 458 | free(perm->host_to_connect); |
454 | free(fp->listen_host); | 459 | free(perm->listen_host); |
455 | free(fp->listen_path); | 460 | free(perm->listen_path); |
456 | bzero(fp, sizeof(*fp)); | 461 | bzero(perm, sizeof(*perm)); |
457 | } | 462 | } |
458 | 463 | ||
459 | enum { FWDPERM_USER, FWDPERM_ADMIN }; | 464 | /* Returns an printable name for the specified forwarding permission list */ |
465 | static const char * | ||
466 | fwd_ident(int who, int where) | ||
467 | { | ||
468 | if (who == FORWARD_ADM) { | ||
469 | if (where == FORWARD_LOCAL) | ||
470 | return "admin local"; | ||
471 | else if (where == FORWARD_REMOTE) | ||
472 | return "admin remote"; | ||
473 | } else if (who == FORWARD_USER) { | ||
474 | if (where == FORWARD_LOCAL) | ||
475 | return "user local"; | ||
476 | else if (where == FORWARD_REMOTE) | ||
477 | return "user remote"; | ||
478 | } | ||
479 | fatal("Unknown forward permission list %d/%d", who, where); | ||
480 | } | ||
460 | 481 | ||
461 | static int | 482 | /* Returns the forwarding permission list for the specified direction */ |
462 | fwd_perm_list_add(struct ssh *ssh, int which, | 483 | static struct permission_set * |
463 | const char *host_to_connect, int port_to_connect, | 484 | permission_set_get(struct ssh *ssh, int where) |
464 | const char *listen_host, const char *listen_path, int listen_port, | ||
465 | Channel *downstream) | ||
466 | { | 485 | { |
467 | ForwardPermission **fpl; | 486 | struct ssh_channels *sc = ssh->chanctxt; |
468 | u_int n, *nfpl; | ||
469 | 487 | ||
470 | switch (which) { | 488 | switch (where) { |
471 | case FWDPERM_USER: | 489 | case FORWARD_LOCAL: |
472 | fpl = &ssh->chanctxt->permitted_opens; | 490 | return &sc->local_perms; |
473 | nfpl = &ssh->chanctxt->num_permitted_opens; | ||
474 | break; | 491 | break; |
475 | case FWDPERM_ADMIN: | 492 | case FORWARD_REMOTE: |
476 | fpl = &ssh->chanctxt->permitted_adm_opens; | 493 | return &sc->remote_perms; |
477 | nfpl = &ssh->chanctxt->num_adm_permitted_opens; | ||
478 | break; | 494 | break; |
479 | default: | 495 | default: |
480 | fatal("%s: invalid list %d", __func__, which); | 496 | fatal("%s: invalid forwarding direction %d", __func__, where); |
481 | } | 497 | } |
498 | } | ||
482 | 499 | ||
483 | if (*nfpl >= INT_MAX) | 500 | /* Reutrns pointers to the specified forwarding list and its element count */ |
484 | fatal("%s: overflow", __func__); | 501 | static void |
502 | permission_set_get_array(struct ssh *ssh, int who, int where, | ||
503 | struct permission ***permpp, u_int **npermpp) | ||
504 | { | ||
505 | struct permission_set *pset = permission_set_get(ssh, where); | ||
485 | 506 | ||
486 | *fpl = xrecallocarray(*fpl, *nfpl, *nfpl + 1, sizeof(**fpl)); | 507 | switch (who) { |
487 | n = (*nfpl)++; | 508 | case FORWARD_USER: |
509 | *permpp = &pset->permitted_user; | ||
510 | *npermpp = &pset->num_permitted_user; | ||
511 | break; | ||
512 | case FORWARD_ADM: | ||
513 | *permpp = &pset->permitted_admin; | ||
514 | *npermpp = &pset->num_permitted_admin; | ||
515 | break; | ||
516 | default: | ||
517 | fatal("%s: invalid forwarding client %d", __func__, who); | ||
518 | } | ||
519 | } | ||
520 | |||
521 | /* Adds an entry to the spcified forwarding list */ | ||
522 | static int | ||
523 | permission_set_add(struct ssh *ssh, int who, int where, | ||
524 | const char *host_to_connect, int port_to_connect, | ||
525 | const char *listen_host, const char *listen_path, int listen_port, | ||
526 | Channel *downstream) | ||
527 | { | ||
528 | struct permission **permp; | ||
529 | u_int n, *npermp; | ||
530 | |||
531 | permission_set_get_array(ssh, who, where, &permp, &npermp); | ||
532 | |||
533 | if (*npermp >= INT_MAX) | ||
534 | fatal("%s: %s overflow", __func__, fwd_ident(who, where)); | ||
535 | |||
536 | *permp = xrecallocarray(*permp, *npermp, *npermp + 1, sizeof(**permp)); | ||
537 | n = (*npermp)++; | ||
488 | #define MAYBE_DUP(s) ((s == NULL) ? NULL : xstrdup(s)) | 538 | #define MAYBE_DUP(s) ((s == NULL) ? NULL : xstrdup(s)) |
489 | (*fpl)[n].host_to_connect = MAYBE_DUP(host_to_connect); | 539 | (*permp)[n].host_to_connect = MAYBE_DUP(host_to_connect); |
490 | (*fpl)[n].port_to_connect = port_to_connect; | 540 | (*permp)[n].port_to_connect = port_to_connect; |
491 | (*fpl)[n].listen_host = MAYBE_DUP(listen_host); | 541 | (*permp)[n].listen_host = MAYBE_DUP(listen_host); |
492 | (*fpl)[n].listen_path = MAYBE_DUP(listen_path); | 542 | (*permp)[n].listen_path = MAYBE_DUP(listen_path); |
493 | (*fpl)[n].listen_port = listen_port; | 543 | (*permp)[n].listen_port = listen_port; |
494 | (*fpl)[n].downstream = downstream; | 544 | (*permp)[n].downstream = downstream; |
495 | #undef MAYBE_DUP | 545 | #undef MAYBE_DUP |
496 | return (int)n; | 546 | return (int)n; |
497 | } | 547 | } |
@@ -500,30 +550,31 @@ static void | |||
500 | mux_remove_remote_forwardings(struct ssh *ssh, Channel *c) | 550 | mux_remove_remote_forwardings(struct ssh *ssh, Channel *c) |
501 | { | 551 | { |
502 | struct ssh_channels *sc = ssh->chanctxt; | 552 | struct ssh_channels *sc = ssh->chanctxt; |
503 | ForwardPermission *fp; | 553 | struct permission_set *pset = &sc->local_perms; |
554 | struct permission *perm; | ||
504 | int r; | 555 | int r; |
505 | u_int i; | 556 | u_int i; |
506 | 557 | ||
507 | for (i = 0; i < sc->num_permitted_opens; i++) { | 558 | for (i = 0; i < pset->num_permitted_user; i++) { |
508 | fp = &sc->permitted_opens[i]; | 559 | perm = &pset->permitted_user[i]; |
509 | if (fp->downstream != c) | 560 | if (perm->downstream != c) |
510 | continue; | 561 | continue; |
511 | 562 | ||
512 | /* cancel on the server, since mux client is gone */ | 563 | /* cancel on the server, since mux client is gone */ |
513 | debug("channel %d: cleanup remote forward for %s:%u", | 564 | debug("channel %d: cleanup remote forward for %s:%u", |
514 | c->self, fp->listen_host, fp->listen_port); | 565 | c->self, perm->listen_host, perm->listen_port); |
515 | if ((r = sshpkt_start(ssh, SSH2_MSG_GLOBAL_REQUEST)) != 0 || | 566 | if ((r = sshpkt_start(ssh, SSH2_MSG_GLOBAL_REQUEST)) != 0 || |
516 | (r = sshpkt_put_cstring(ssh, | 567 | (r = sshpkt_put_cstring(ssh, |
517 | "cancel-tcpip-forward")) != 0 || | 568 | "cancel-tcpip-forward")) != 0 || |
518 | (r = sshpkt_put_u8(ssh, 0)) != 0 || | 569 | (r = sshpkt_put_u8(ssh, 0)) != 0 || |
519 | (r = sshpkt_put_cstring(ssh, | 570 | (r = sshpkt_put_cstring(ssh, |
520 | channel_rfwd_bind_host(fp->listen_host))) != 0 || | 571 | channel_rfwd_bind_host(perm->listen_host))) != 0 || |
521 | (r = sshpkt_put_u32(ssh, fp->listen_port)) != 0 || | 572 | (r = sshpkt_put_u32(ssh, perm->listen_port)) != 0 || |
522 | (r = sshpkt_send(ssh)) != 0) { | 573 | (r = sshpkt_send(ssh)) != 0) { |
523 | fatal("%s: channel %i: %s", __func__, | 574 | fatal("%s: channel %i: %s", __func__, |
524 | c->self, ssh_err(r)); | 575 | c->self, ssh_err(r)); |
525 | } | 576 | } |
526 | fwd_perm_clear(fp); /* unregister */ | 577 | fwd_perm_clear(perm); /* unregister */ |
527 | } | 578 | } |
528 | } | 579 | } |
529 | 580 | ||
@@ -557,9 +608,11 @@ channel_free(struct ssh *ssh, Channel *c) | |||
557 | if (c->type == SSH_CHANNEL_MUX_CLIENT) | 608 | if (c->type == SSH_CHANNEL_MUX_CLIENT) |
558 | mux_remove_remote_forwardings(ssh, c); | 609 | mux_remove_remote_forwardings(ssh, c); |
559 | 610 | ||
560 | s = channel_open_message(ssh); | 611 | if (log_level_get() >= SYSLOG_LEVEL_DEBUG3) { |
561 | debug3("channel %d: status: %s", c->self, s); | 612 | s = channel_open_message(ssh); |
562 | free(s); | 613 | debug3("channel %d: status: %s", c->self, s); |
614 | free(s); | ||
615 | } | ||
563 | 616 | ||
564 | channel_close_fds(ssh, c); | 617 | channel_close_fds(ssh, c); |
565 | sshbuf_free(c->input); | 618 | sshbuf_free(c->input); |
@@ -2599,7 +2652,7 @@ channel_output_poll(struct ssh *ssh) | |||
2599 | * SSH_CHANNEL_MUX_PROXY channel and replace the mux clients ID | 2652 | * SSH_CHANNEL_MUX_PROXY channel and replace the mux clients ID |
2600 | * with the newly allocated channel ID. | 2653 | * with the newly allocated channel ID. |
2601 | * 2) Upstream messages are received by matching SSH_CHANNEL_MUX_PROXY | 2654 | * 2) Upstream messages are received by matching SSH_CHANNEL_MUX_PROXY |
2602 | * channels and procesed by channel_proxy_upstream(). The local channel ID | 2655 | * channels and processed by channel_proxy_upstream(). The local channel ID |
2603 | * is then translated back to the original mux client ID. | 2656 | * is then translated back to the original mux client ID. |
2604 | * 3) In both cases we need to keep track of matching SSH2_MSG_CHANNEL_CLOSE | 2657 | * 3) In both cases we need to keep track of matching SSH2_MSG_CHANNEL_CLOSE |
2605 | * messages so we can clean up SSH_CHANNEL_MUX_PROXY channels. | 2658 | * messages so we can clean up SSH_CHANNEL_MUX_PROXY channels. |
@@ -2610,7 +2663,7 @@ channel_output_poll(struct ssh *ssh) | |||
2610 | * channel. E.g. client_request_forwarded_tcpip() needs to figure | 2663 | * channel. E.g. client_request_forwarded_tcpip() needs to figure |
2611 | * out whether the request is addressed to the local client or a | 2664 | * out whether the request is addressed to the local client or a |
2612 | * specific downstream client based on the listen-address/port. | 2665 | * specific downstream client based on the listen-address/port. |
2613 | * 6) Agent and X11-Forwarding have a similar problem and are currenly | 2666 | * 6) Agent and X11-Forwarding have a similar problem and are currently |
2614 | * not supported as the matching session/channel cannot be identified | 2667 | * not supported as the matching session/channel cannot be identified |
2615 | * easily. | 2668 | * easily. |
2616 | */ | 2669 | */ |
@@ -2729,7 +2782,7 @@ channel_proxy_downstream(struct ssh *ssh, Channel *downstream) | |||
2729 | goto out; | 2782 | goto out; |
2730 | } | 2783 | } |
2731 | /* Record that connection to this host/port is permitted. */ | 2784 | /* Record that connection to this host/port is permitted. */ |
2732 | fwd_perm_list_add(ssh, FWDPERM_USER, "<mux>", -1, | 2785 | permission_set_add(ssh, FORWARD_USER, FORWARD_LOCAL, "<mux>", -1, |
2733 | listen_host, NULL, (int)listen_port, downstream); | 2786 | listen_host, NULL, (int)listen_port, downstream); |
2734 | listen_host = NULL; | 2787 | listen_host = NULL; |
2735 | break; | 2788 | break; |
@@ -2787,7 +2840,7 @@ channel_proxy_upstream(Channel *c, int type, u_int32_t seq, struct ssh *ssh) | |||
2787 | /* | 2840 | /* |
2788 | * When receiving packets from the peer we need to check whether we | 2841 | * When receiving packets from the peer we need to check whether we |
2789 | * need to forward the packets to the mux client. In this case we | 2842 | * need to forward the packets to the mux client. In this case we |
2790 | * restore the orignal channel id and keep track of CLOSE messages, | 2843 | * restore the original channel id and keep track of CLOSE messages, |
2791 | * so we can cleanup the channel. | 2844 | * so we can cleanup the channel. |
2792 | */ | 2845 | */ |
2793 | if (c == NULL || c->type != SSH_CHANNEL_MUX_PROXY) | 2846 | if (c == NULL || c->type != SSH_CHANNEL_MUX_PROXY) |
@@ -3637,11 +3690,78 @@ channel_setup_local_fwd_listener(struct ssh *ssh, | |||
3637 | } | 3690 | } |
3638 | } | 3691 | } |
3639 | 3692 | ||
3693 | /* Matches a remote forwarding permission against a requested forwarding */ | ||
3694 | static int | ||
3695 | remote_open_match(struct permission *allowed_open, struct Forward *fwd) | ||
3696 | { | ||
3697 | int ret; | ||
3698 | char *lhost; | ||
3699 | |||
3700 | /* XXX add ACLs for streamlocal */ | ||
3701 | if (fwd->listen_path != NULL) | ||
3702 | return 1; | ||
3703 | |||
3704 | if (fwd->listen_host == NULL || allowed_open->listen_host == NULL) | ||
3705 | return 0; | ||
3706 | |||
3707 | if (allowed_open->listen_port != FWD_PERMIT_ANY_PORT && | ||
3708 | allowed_open->listen_port != fwd->listen_port) | ||
3709 | return 0; | ||
3710 | |||
3711 | /* Match hostnames case-insensitively */ | ||
3712 | lhost = xstrdup(fwd->listen_host); | ||
3713 | lowercase(lhost); | ||
3714 | ret = match_pattern(lhost, allowed_open->listen_host); | ||
3715 | free(lhost); | ||
3716 | |||
3717 | return ret; | ||
3718 | } | ||
3719 | |||
3720 | /* Checks whether a requested remote forwarding is permitted */ | ||
3721 | static int | ||
3722 | check_rfwd_permission(struct ssh *ssh, struct Forward *fwd) | ||
3723 | { | ||
3724 | struct ssh_channels *sc = ssh->chanctxt; | ||
3725 | struct permission_set *pset = &sc->remote_perms; | ||
3726 | u_int i, permit, permit_adm = 1; | ||
3727 | struct permission *perm; | ||
3728 | |||
3729 | /* XXX apply GatewayPorts override before checking? */ | ||
3730 | |||
3731 | permit = pset->all_permitted; | ||
3732 | if (!permit) { | ||
3733 | for (i = 0; i < pset->num_permitted_user; i++) { | ||
3734 | perm = &pset->permitted_user[i]; | ||
3735 | if (remote_open_match(perm, fwd)) { | ||
3736 | permit = 1; | ||
3737 | break; | ||
3738 | } | ||
3739 | } | ||
3740 | } | ||
3741 | |||
3742 | if (pset->num_permitted_admin > 0) { | ||
3743 | permit_adm = 0; | ||
3744 | for (i = 0; i < pset->num_permitted_admin; i++) { | ||
3745 | perm = &pset->permitted_admin[i]; | ||
3746 | if (remote_open_match(perm, fwd)) { | ||
3747 | permit_adm = 1; | ||
3748 | break; | ||
3749 | } | ||
3750 | } | ||
3751 | } | ||
3752 | |||
3753 | return permit && permit_adm; | ||
3754 | } | ||
3755 | |||
3640 | /* protocol v2 remote port fwd, used by sshd */ | 3756 | /* protocol v2 remote port fwd, used by sshd */ |
3641 | int | 3757 | int |
3642 | channel_setup_remote_fwd_listener(struct ssh *ssh, struct Forward *fwd, | 3758 | channel_setup_remote_fwd_listener(struct ssh *ssh, struct Forward *fwd, |
3643 | int *allocated_listen_port, struct ForwardOptions *fwd_opts) | 3759 | int *allocated_listen_port, struct ForwardOptions *fwd_opts) |
3644 | { | 3760 | { |
3761 | if (!check_rfwd_permission(ssh, fwd)) { | ||
3762 | packet_send_debug("port forwarding refused"); | ||
3763 | return 0; | ||
3764 | } | ||
3645 | if (fwd->listen_path != NULL) { | 3765 | if (fwd->listen_path != NULL) { |
3646 | return channel_setup_fwd_listener_streamlocal(ssh, | 3766 | return channel_setup_fwd_listener_streamlocal(ssh, |
3647 | SSH_CHANNEL_RUNIX_LISTENER, fwd, fwd_opts); | 3767 | SSH_CHANNEL_RUNIX_LISTENER, fwd, fwd_opts); |
@@ -3671,7 +3791,7 @@ channel_rfwd_bind_host(const char *listen_host) | |||
3671 | * Initiate forwarding of connections to port "port" on remote host through | 3791 | * Initiate forwarding of connections to port "port" on remote host through |
3672 | * the secure channel to host:port from local side. | 3792 | * the secure channel to host:port from local side. |
3673 | * Returns handle (index) for updating the dynamic listen port with | 3793 | * Returns handle (index) for updating the dynamic listen port with |
3674 | * channel_update_permitted_opens(). | 3794 | * channel_update_permission(). |
3675 | */ | 3795 | */ |
3676 | int | 3796 | int |
3677 | channel_request_remote_forwarding(struct ssh *ssh, struct Forward *fwd) | 3797 | channel_request_remote_forwarding(struct ssh *ssh, struct Forward *fwd) |
@@ -3724,7 +3844,7 @@ channel_request_remote_forwarding(struct ssh *ssh, struct Forward *fwd) | |||
3724 | listen_host = xstrdup(fwd->listen_host); | 3844 | listen_host = xstrdup(fwd->listen_host); |
3725 | listen_port = fwd->listen_port; | 3845 | listen_port = fwd->listen_port; |
3726 | } | 3846 | } |
3727 | idx = fwd_perm_list_add(ssh, FWDPERM_USER, | 3847 | idx = permission_set_add(ssh, FORWARD_USER, FORWARD_LOCAL, |
3728 | host_to_connect, port_to_connect, | 3848 | host_to_connect, port_to_connect, |
3729 | listen_host, listen_path, listen_port, NULL); | 3849 | listen_host, listen_path, listen_port, NULL); |
3730 | } | 3850 | } |
@@ -3732,7 +3852,7 @@ channel_request_remote_forwarding(struct ssh *ssh, struct Forward *fwd) | |||
3732 | } | 3852 | } |
3733 | 3853 | ||
3734 | static int | 3854 | static int |
3735 | open_match(ForwardPermission *allowed_open, const char *requestedhost, | 3855 | open_match(struct permission *allowed_open, const char *requestedhost, |
3736 | int requestedport) | 3856 | int requestedport) |
3737 | { | 3857 | { |
3738 | if (allowed_open->host_to_connect == NULL) | 3858 | if (allowed_open->host_to_connect == NULL) |
@@ -3753,7 +3873,7 @@ open_match(ForwardPermission *allowed_open, const char *requestedhost, | |||
3753 | * and what we've sent to the remote server (channel_rfwd_bind_host) | 3873 | * and what we've sent to the remote server (channel_rfwd_bind_host) |
3754 | */ | 3874 | */ |
3755 | static int | 3875 | static int |
3756 | open_listen_match_tcpip(ForwardPermission *allowed_open, | 3876 | open_listen_match_tcpip(struct permission *allowed_open, |
3757 | const char *requestedhost, u_short requestedport, int translate) | 3877 | const char *requestedhost, u_short requestedport, int translate) |
3758 | { | 3878 | { |
3759 | const char *allowed_host; | 3879 | const char *allowed_host; |
@@ -3768,14 +3888,14 @@ open_listen_match_tcpip(ForwardPermission *allowed_open, | |||
3768 | allowed_host = translate ? | 3888 | allowed_host = translate ? |
3769 | channel_rfwd_bind_host(allowed_open->listen_host) : | 3889 | channel_rfwd_bind_host(allowed_open->listen_host) : |
3770 | allowed_open->listen_host; | 3890 | allowed_open->listen_host; |
3771 | if (allowed_host == NULL || | 3891 | if (allowed_host == NULL || requestedhost == NULL || |
3772 | strcmp(allowed_host, requestedhost) != 0) | 3892 | strcmp(allowed_host, requestedhost) != 0) |
3773 | return 0; | 3893 | return 0; |
3774 | return 1; | 3894 | return 1; |
3775 | } | 3895 | } |
3776 | 3896 | ||
3777 | static int | 3897 | static int |
3778 | open_listen_match_streamlocal(ForwardPermission *allowed_open, | 3898 | open_listen_match_streamlocal(struct permission *allowed_open, |
3779 | const char *requestedpath) | 3899 | const char *requestedpath) |
3780 | { | 3900 | { |
3781 | if (allowed_open->host_to_connect == NULL) | 3901 | if (allowed_open->host_to_connect == NULL) |
@@ -3797,17 +3917,18 @@ channel_request_rforward_cancel_tcpip(struct ssh *ssh, | |||
3797 | const char *host, u_short port) | 3917 | const char *host, u_short port) |
3798 | { | 3918 | { |
3799 | struct ssh_channels *sc = ssh->chanctxt; | 3919 | struct ssh_channels *sc = ssh->chanctxt; |
3920 | struct permission_set *pset = &sc->local_perms; | ||
3800 | int r; | 3921 | int r; |
3801 | u_int i; | 3922 | u_int i; |
3802 | ForwardPermission *fp; | 3923 | struct permission *perm; |
3803 | 3924 | ||
3804 | for (i = 0; i < sc->num_permitted_opens; i++) { | 3925 | for (i = 0; i < pset->num_permitted_user; i++) { |
3805 | fp = &sc->permitted_opens[i]; | 3926 | perm = &pset->permitted_user[i]; |
3806 | if (open_listen_match_tcpip(fp, host, port, 0)) | 3927 | if (open_listen_match_tcpip(perm, host, port, 0)) |
3807 | break; | 3928 | break; |
3808 | fp = NULL; | 3929 | perm = NULL; |
3809 | } | 3930 | } |
3810 | if (fp == NULL) { | 3931 | if (perm == NULL) { |
3811 | debug("%s: requested forward not found", __func__); | 3932 | debug("%s: requested forward not found", __func__); |
3812 | return -1; | 3933 | return -1; |
3813 | } | 3934 | } |
@@ -3819,7 +3940,7 @@ channel_request_rforward_cancel_tcpip(struct ssh *ssh, | |||
3819 | (r = sshpkt_send(ssh)) != 0) | 3940 | (r = sshpkt_send(ssh)) != 0) |
3820 | fatal("%s: send cancel: %s", __func__, ssh_err(r)); | 3941 | fatal("%s: send cancel: %s", __func__, ssh_err(r)); |
3821 | 3942 | ||
3822 | fwd_perm_clear(fp); /* unregister */ | 3943 | fwd_perm_clear(perm); /* unregister */ |
3823 | 3944 | ||
3824 | return 0; | 3945 | return 0; |
3825 | } | 3946 | } |
@@ -3832,17 +3953,18 @@ static int | |||
3832 | channel_request_rforward_cancel_streamlocal(struct ssh *ssh, const char *path) | 3953 | channel_request_rforward_cancel_streamlocal(struct ssh *ssh, const char *path) |
3833 | { | 3954 | { |
3834 | struct ssh_channels *sc = ssh->chanctxt; | 3955 | struct ssh_channels *sc = ssh->chanctxt; |
3956 | struct permission_set *pset = &sc->local_perms; | ||
3835 | int r; | 3957 | int r; |
3836 | u_int i; | 3958 | u_int i; |
3837 | ForwardPermission *fp; | 3959 | struct permission *perm; |
3838 | 3960 | ||
3839 | for (i = 0; i < sc->num_permitted_opens; i++) { | 3961 | for (i = 0; i < pset->num_permitted_user; i++) { |
3840 | fp = &sc->permitted_opens[i]; | 3962 | perm = &pset->permitted_user[i]; |
3841 | if (open_listen_match_streamlocal(fp, path)) | 3963 | if (open_listen_match_streamlocal(perm, path)) |
3842 | break; | 3964 | break; |
3843 | fp = NULL; | 3965 | perm = NULL; |
3844 | } | 3966 | } |
3845 | if (fp == NULL) { | 3967 | if (perm == NULL) { |
3846 | debug("%s: requested forward not found", __func__); | 3968 | debug("%s: requested forward not found", __func__); |
3847 | return -1; | 3969 | return -1; |
3848 | } | 3970 | } |
@@ -3854,7 +3976,7 @@ channel_request_rforward_cancel_streamlocal(struct ssh *ssh, const char *path) | |||
3854 | (r = sshpkt_send(ssh)) != 0) | 3976 | (r = sshpkt_send(ssh)) != 0) |
3855 | fatal("%s: send cancel: %s", __func__, ssh_err(r)); | 3977 | fatal("%s: send cancel: %s", __func__, ssh_err(r)); |
3856 | 3978 | ||
3857 | fwd_perm_clear(fp); /* unregister */ | 3979 | fwd_perm_clear(perm); /* unregister */ |
3858 | 3980 | ||
3859 | return 0; | 3981 | return 0; |
3860 | } | 3982 | } |
@@ -3876,25 +3998,64 @@ channel_request_rforward_cancel(struct ssh *ssh, struct Forward *fwd) | |||
3876 | } | 3998 | } |
3877 | 3999 | ||
3878 | /* | 4000 | /* |
3879 | * Permits opening to any host/port if permitted_opens[] is empty. This is | 4001 | * Permits opening to any host/port if permitted_user[] is empty. This is |
3880 | * usually called by the server, because the user could connect to any port | 4002 | * usually called by the server, because the user could connect to any port |
3881 | * anyway, and the server has no way to know but to trust the client anyway. | 4003 | * anyway, and the server has no way to know but to trust the client anyway. |
3882 | */ | 4004 | */ |
3883 | void | 4005 | void |
3884 | channel_permit_all_opens(struct ssh *ssh) | 4006 | channel_permit_all(struct ssh *ssh, int where) |
3885 | { | 4007 | { |
3886 | if (ssh->chanctxt->num_permitted_opens == 0) | 4008 | struct permission_set *pset = permission_set_get(ssh, where); |
3887 | ssh->chanctxt->all_opens_permitted = 1; | 4009 | |
4010 | if (pset->num_permitted_user == 0) | ||
4011 | pset->all_permitted = 1; | ||
3888 | } | 4012 | } |
3889 | 4013 | ||
4014 | /* | ||
4015 | * Permit the specified host/port for forwarding. | ||
4016 | */ | ||
3890 | void | 4017 | void |
3891 | channel_add_permitted_opens(struct ssh *ssh, char *host, int port) | 4018 | channel_add_permission(struct ssh *ssh, int who, int where, |
4019 | char *host, int port) | ||
3892 | { | 4020 | { |
3893 | struct ssh_channels *sc = ssh->chanctxt; | 4021 | int local = where == FORWARD_LOCAL; |
4022 | struct permission_set *pset = permission_set_get(ssh, where); | ||
4023 | |||
4024 | debug("allow %s forwarding to host %s port %d", | ||
4025 | fwd_ident(who, where), host, port); | ||
4026 | /* | ||
4027 | * Remote forwards set listen_host/port, local forwards set | ||
4028 | * host/port_to_connect. | ||
4029 | */ | ||
4030 | permission_set_add(ssh, who, where, | ||
4031 | local ? host : 0, local ? port : 0, | ||
4032 | local ? NULL : host, NULL, local ? 0 : port, NULL); | ||
4033 | pset->all_permitted = 0; | ||
4034 | } | ||
3894 | 4035 | ||
3895 | debug("allow port forwarding to host %s port %d", host, port); | 4036 | /* |
3896 | fwd_perm_list_add(ssh, FWDPERM_USER, host, port, NULL, NULL, 0, NULL); | 4037 | * Administratively disable forwarding. |
3897 | sc->all_opens_permitted = 0; | 4038 | */ |
4039 | void | ||
4040 | channel_disable_admin(struct ssh *ssh, int where) | ||
4041 | { | ||
4042 | channel_clear_permission(ssh, FORWARD_ADM, where); | ||
4043 | permission_set_add(ssh, FORWARD_ADM, where, | ||
4044 | NULL, 0, NULL, NULL, 0, NULL); | ||
4045 | } | ||
4046 | |||
4047 | /* | ||
4048 | * Clear a list of permitted opens. | ||
4049 | */ | ||
4050 | void | ||
4051 | channel_clear_permission(struct ssh *ssh, int who, int where) | ||
4052 | { | ||
4053 | struct permission **permp; | ||
4054 | u_int *npermp; | ||
4055 | |||
4056 | permission_set_get_array(ssh, who, where, &permp, &npermp); | ||
4057 | *permp = xrecallocarray(*permp, *npermp, 0, sizeof(**permp)); | ||
4058 | *npermp = 0; | ||
3898 | } | 4059 | } |
3899 | 4060 | ||
3900 | /* | 4061 | /* |
@@ -3903,63 +4064,28 @@ channel_add_permitted_opens(struct ssh *ssh, char *host, int port) | |||
3903 | * passed then they entry will be invalidated. | 4064 | * passed then they entry will be invalidated. |
3904 | */ | 4065 | */ |
3905 | void | 4066 | void |
3906 | channel_update_permitted_opens(struct ssh *ssh, int idx, int newport) | 4067 | channel_update_permission(struct ssh *ssh, int idx, int newport) |
3907 | { | 4068 | { |
3908 | struct ssh_channels *sc = ssh->chanctxt; | 4069 | struct permission_set *pset = &ssh->chanctxt->local_perms; |
3909 | 4070 | ||
3910 | if (idx < 0 || (u_int)idx >= sc->num_permitted_opens) { | 4071 | if (idx < 0 || (u_int)idx >= pset->num_permitted_user) { |
3911 | debug("%s: index out of range: %d num_permitted_opens %d", | 4072 | debug("%s: index out of range: %d num_permitted_user %d", |
3912 | __func__, idx, sc->num_permitted_opens); | 4073 | __func__, idx, pset->num_permitted_user); |
3913 | return; | 4074 | return; |
3914 | } | 4075 | } |
3915 | debug("%s allowed port %d for forwarding to host %s port %d", | 4076 | debug("%s allowed port %d for forwarding to host %s port %d", |
3916 | newport > 0 ? "Updating" : "Removing", | 4077 | newport > 0 ? "Updating" : "Removing", |
3917 | newport, | 4078 | newport, |
3918 | sc->permitted_opens[idx].host_to_connect, | 4079 | pset->permitted_user[idx].host_to_connect, |
3919 | sc->permitted_opens[idx].port_to_connect); | 4080 | pset->permitted_user[idx].port_to_connect); |
3920 | if (newport <= 0) | 4081 | if (newport <= 0) |
3921 | fwd_perm_clear(&sc->permitted_opens[idx]); | 4082 | fwd_perm_clear(&pset->permitted_user[idx]); |
3922 | else { | 4083 | else { |
3923 | sc->permitted_opens[idx].listen_port = | 4084 | pset->permitted_user[idx].listen_port = |
3924 | (datafellows & SSH_BUG_DYNAMIC_RPORT) ? 0 : newport; | 4085 | (datafellows & SSH_BUG_DYNAMIC_RPORT) ? 0 : newport; |
3925 | } | 4086 | } |
3926 | } | 4087 | } |
3927 | 4088 | ||
3928 | int | ||
3929 | channel_add_adm_permitted_opens(struct ssh *ssh, char *host, int port) | ||
3930 | { | ||
3931 | debug("config allows port forwarding to host %s port %d", host, port); | ||
3932 | return fwd_perm_list_add(ssh, FWDPERM_ADMIN, host, port, | ||
3933 | NULL, NULL, 0, NULL); | ||
3934 | } | ||
3935 | |||
3936 | void | ||
3937 | channel_disable_adm_local_opens(struct ssh *ssh) | ||
3938 | { | ||
3939 | channel_clear_adm_permitted_opens(ssh); | ||
3940 | fwd_perm_list_add(ssh, FWDPERM_ADMIN, NULL, 0, NULL, NULL, 0, NULL); | ||
3941 | } | ||
3942 | |||
3943 | void | ||
3944 | channel_clear_permitted_opens(struct ssh *ssh) | ||
3945 | { | ||
3946 | struct ssh_channels *sc = ssh->chanctxt; | ||
3947 | |||
3948 | sc->permitted_opens = xrecallocarray(sc->permitted_opens, | ||
3949 | sc->num_permitted_opens, 0, sizeof(*sc->permitted_opens)); | ||
3950 | sc->num_permitted_opens = 0; | ||
3951 | } | ||
3952 | |||
3953 | void | ||
3954 | channel_clear_adm_permitted_opens(struct ssh *ssh) | ||
3955 | { | ||
3956 | struct ssh_channels *sc = ssh->chanctxt; | ||
3957 | |||
3958 | sc->permitted_adm_opens = xrecallocarray(sc->permitted_adm_opens, | ||
3959 | sc->num_adm_permitted_opens, 0, sizeof(*sc->permitted_adm_opens)); | ||
3960 | sc->num_adm_permitted_opens = 0; | ||
3961 | } | ||
3962 | |||
3963 | /* returns port number, FWD_PERMIT_ANY_PORT or -1 on error */ | 4089 | /* returns port number, FWD_PERMIT_ANY_PORT or -1 on error */ |
3964 | int | 4090 | int |
3965 | permitopen_port(const char *p) | 4091 | permitopen_port(const char *p) |
@@ -4148,19 +4274,21 @@ channel_connect_by_listen_address(struct ssh *ssh, const char *listen_host, | |||
4148 | u_short listen_port, char *ctype, char *rname) | 4274 | u_short listen_port, char *ctype, char *rname) |
4149 | { | 4275 | { |
4150 | struct ssh_channels *sc = ssh->chanctxt; | 4276 | struct ssh_channels *sc = ssh->chanctxt; |
4277 | struct permission_set *pset = &sc->local_perms; | ||
4151 | u_int i; | 4278 | u_int i; |
4152 | ForwardPermission *fp; | 4279 | struct permission *perm; |
4153 | 4280 | ||
4154 | for (i = 0; i < sc->num_permitted_opens; i++) { | 4281 | for (i = 0; i < pset->num_permitted_user; i++) { |
4155 | fp = &sc->permitted_opens[i]; | 4282 | perm = &pset->permitted_user[i]; |
4156 | if (open_listen_match_tcpip(fp, listen_host, listen_port, 1)) { | 4283 | if (open_listen_match_tcpip(perm, |
4157 | if (fp->downstream) | 4284 | listen_host, listen_port, 1)) { |
4158 | return fp->downstream; | 4285 | if (perm->downstream) |
4159 | if (fp->port_to_connect == 0) | 4286 | return perm->downstream; |
4287 | if (perm->port_to_connect == 0) | ||
4160 | return rdynamic_connect_prepare(ssh, | 4288 | return rdynamic_connect_prepare(ssh, |
4161 | ctype, rname); | 4289 | ctype, rname); |
4162 | return connect_to(ssh, | 4290 | return connect_to(ssh, |
4163 | fp->host_to_connect, fp->port_to_connect, | 4291 | perm->host_to_connect, perm->port_to_connect, |
4164 | ctype, rname); | 4292 | ctype, rname); |
4165 | } | 4293 | } |
4166 | } | 4294 | } |
@@ -4174,14 +4302,15 @@ channel_connect_by_listen_path(struct ssh *ssh, const char *path, | |||
4174 | char *ctype, char *rname) | 4302 | char *ctype, char *rname) |
4175 | { | 4303 | { |
4176 | struct ssh_channels *sc = ssh->chanctxt; | 4304 | struct ssh_channels *sc = ssh->chanctxt; |
4305 | struct permission_set *pset = &sc->local_perms; | ||
4177 | u_int i; | 4306 | u_int i; |
4178 | ForwardPermission *fp; | 4307 | struct permission *perm; |
4179 | 4308 | ||
4180 | for (i = 0; i < sc->num_permitted_opens; i++) { | 4309 | for (i = 0; i < pset->num_permitted_user; i++) { |
4181 | fp = &sc->permitted_opens[i]; | 4310 | perm = &pset->permitted_user[i]; |
4182 | if (open_listen_match_streamlocal(fp, path)) { | 4311 | if (open_listen_match_streamlocal(perm, path)) { |
4183 | return connect_to(ssh, | 4312 | return connect_to(ssh, |
4184 | fp->host_to_connect, fp->port_to_connect, | 4313 | perm->host_to_connect, perm->port_to_connect, |
4185 | ctype, rname); | 4314 | ctype, rname); |
4186 | } | 4315 | } |
4187 | } | 4316 | } |
@@ -4196,28 +4325,29 @@ channel_connect_to_port(struct ssh *ssh, const char *host, u_short port, | |||
4196 | char *ctype, char *rname, int *reason, const char **errmsg) | 4325 | char *ctype, char *rname, int *reason, const char **errmsg) |
4197 | { | 4326 | { |
4198 | struct ssh_channels *sc = ssh->chanctxt; | 4327 | struct ssh_channels *sc = ssh->chanctxt; |
4328 | struct permission_set *pset = &sc->local_perms; | ||
4199 | struct channel_connect cctx; | 4329 | struct channel_connect cctx; |
4200 | Channel *c; | 4330 | Channel *c; |
4201 | u_int i, permit, permit_adm = 1; | 4331 | u_int i, permit, permit_adm = 1; |
4202 | int sock; | 4332 | int sock; |
4203 | ForwardPermission *fp; | 4333 | struct permission *perm; |
4204 | 4334 | ||
4205 | permit = sc->all_opens_permitted; | 4335 | permit = pset->all_permitted; |
4206 | if (!permit) { | 4336 | if (!permit) { |
4207 | for (i = 0; i < sc->num_permitted_opens; i++) { | 4337 | for (i = 0; i < pset->num_permitted_user; i++) { |
4208 | fp = &sc->permitted_opens[i]; | 4338 | perm = &pset->permitted_user[i]; |
4209 | if (open_match(fp, host, port)) { | 4339 | if (open_match(perm, host, port)) { |
4210 | permit = 1; | 4340 | permit = 1; |
4211 | break; | 4341 | break; |
4212 | } | 4342 | } |
4213 | } | 4343 | } |
4214 | } | 4344 | } |
4215 | 4345 | ||
4216 | if (sc->num_adm_permitted_opens > 0) { | 4346 | if (pset->num_permitted_admin > 0) { |
4217 | permit_adm = 0; | 4347 | permit_adm = 0; |
4218 | for (i = 0; i < sc->num_adm_permitted_opens; i++) { | 4348 | for (i = 0; i < pset->num_permitted_admin; i++) { |
4219 | fp = &sc->permitted_adm_opens[i]; | 4349 | perm = &pset->permitted_admin[i]; |
4220 | if (open_match(fp, host, port)) { | 4350 | if (open_match(perm, host, port)) { |
4221 | permit_adm = 1; | 4351 | permit_adm = 1; |
4222 | break; | 4352 | break; |
4223 | } | 4353 | } |
@@ -4255,25 +4385,26 @@ channel_connect_to_path(struct ssh *ssh, const char *path, | |||
4255 | char *ctype, char *rname) | 4385 | char *ctype, char *rname) |
4256 | { | 4386 | { |
4257 | struct ssh_channels *sc = ssh->chanctxt; | 4387 | struct ssh_channels *sc = ssh->chanctxt; |
4388 | struct permission_set *pset = &sc->local_perms; | ||
4258 | u_int i, permit, permit_adm = 1; | 4389 | u_int i, permit, permit_adm = 1; |
4259 | ForwardPermission *fp; | 4390 | struct permission *perm; |
4260 | 4391 | ||
4261 | permit = sc->all_opens_permitted; | 4392 | permit = pset->all_permitted; |
4262 | if (!permit) { | 4393 | if (!permit) { |
4263 | for (i = 0; i < sc->num_permitted_opens; i++) { | 4394 | for (i = 0; i < pset->num_permitted_user; i++) { |
4264 | fp = &sc->permitted_opens[i]; | 4395 | perm = &pset->permitted_user[i]; |
4265 | if (open_match(fp, path, PORT_STREAMLOCAL)) { | 4396 | if (open_match(perm, path, PORT_STREAMLOCAL)) { |
4266 | permit = 1; | 4397 | permit = 1; |
4267 | break; | 4398 | break; |
4268 | } | 4399 | } |
4269 | } | 4400 | } |
4270 | } | 4401 | } |
4271 | 4402 | ||
4272 | if (sc->num_adm_permitted_opens > 0) { | 4403 | if (pset->num_permitted_admin > 0) { |
4273 | permit_adm = 0; | 4404 | permit_adm = 0; |
4274 | for (i = 0; i < sc->num_adm_permitted_opens; i++) { | 4405 | for (i = 0; i < pset->num_permitted_admin; i++) { |
4275 | fp = &sc->permitted_adm_opens[i]; | 4406 | perm = &pset->permitted_admin[i]; |
4276 | if (open_match(fp, path, PORT_STREAMLOCAL)) { | 4407 | if (open_match(perm, path, PORT_STREAMLOCAL)) { |
4277 | permit_adm = 1; | 4408 | permit_adm = 1; |
4278 | break; | 4409 | break; |
4279 | } | 4410 | } |
diff --git a/channels.h b/channels.h index 126b04345..1aeafe94e 100644 --- a/channels.h +++ b/channels.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: channels.h,v 1.130 2017/09/21 19:16:53 markus Exp $ */ | 1 | /* $OpenBSD: channels.h,v 1.131 2018/06/06 18:22:41 djm Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
@@ -63,6 +63,15 @@ | |||
63 | 63 | ||
64 | #define CHANNEL_CANCEL_PORT_STATIC -1 | 64 | #define CHANNEL_CANCEL_PORT_STATIC -1 |
65 | 65 | ||
66 | /* TCP forwarding */ | ||
67 | #define FORWARD_DENY 0 | ||
68 | #define FORWARD_REMOTE (1) | ||
69 | #define FORWARD_LOCAL (1<<1) | ||
70 | #define FORWARD_ALLOW (FORWARD_REMOTE|FORWARD_LOCAL) | ||
71 | |||
72 | #define FORWARD_ADM 0x100 | ||
73 | #define FORWARD_USER 0x101 | ||
74 | |||
66 | struct ssh; | 75 | struct ssh; |
67 | struct Channel; | 76 | struct Channel; |
68 | typedef struct Channel Channel; | 77 | typedef struct Channel Channel; |
@@ -283,16 +292,11 @@ int channel_find_open(struct ssh *); | |||
283 | struct Forward; | 292 | struct Forward; |
284 | struct ForwardOptions; | 293 | struct ForwardOptions; |
285 | void channel_set_af(struct ssh *, int af); | 294 | void channel_set_af(struct ssh *, int af); |
286 | void channel_permit_all_opens(struct ssh *); | 295 | void channel_permit_all(struct ssh *, int); |
287 | void channel_add_permitted_opens(struct ssh *, char *, int); | 296 | void channel_add_permission(struct ssh *, int, int, char *, int); |
288 | int channel_add_adm_permitted_opens(struct ssh *, char *, int); | 297 | void channel_clear_permission(struct ssh *, int, int); |
289 | void channel_copy_adm_permitted_opens(struct ssh *, | 298 | void channel_disable_admin(struct ssh *, int); |
290 | const struct fwd_perm_list *); | 299 | void channel_update_permission(struct ssh *, int, int); |
291 | void channel_disable_adm_local_opens(struct ssh *); | ||
292 | void channel_update_permitted_opens(struct ssh *, int, int); | ||
293 | void channel_clear_permitted_opens(struct ssh *); | ||
294 | void channel_clear_adm_permitted_opens(struct ssh *); | ||
295 | void channel_print_adm_permitted_opens(struct ssh *); | ||
296 | Channel *channel_connect_to_port(struct ssh *, const char *, u_short, | 300 | Channel *channel_connect_to_port(struct ssh *, const char *, u_short, |
297 | char *, char *, int *, const char **); | 301 | char *, char *, int *, const char **); |
298 | Channel *channel_connect_to_path(struct ssh *, const char *, char *, char *); | 302 | Channel *channel_connect_to_path(struct ssh *, const char *, char *, char *); |
@@ -82,7 +82,9 @@ struct sshcipher { | |||
82 | 82 | ||
83 | static const struct sshcipher ciphers[] = { | 83 | static const struct sshcipher ciphers[] = { |
84 | #ifdef WITH_OPENSSL | 84 | #ifdef WITH_OPENSSL |
85 | #ifndef OPENSSL_NO_DES | ||
85 | { "3des-cbc", 8, 24, 0, 0, CFLAG_CBC, EVP_des_ede3_cbc }, | 86 | { "3des-cbc", 8, 24, 0, 0, CFLAG_CBC, EVP_des_ede3_cbc }, |
87 | #endif | ||
86 | { "aes128-cbc", 16, 16, 0, 0, CFLAG_CBC, EVP_aes_128_cbc }, | 88 | { "aes128-cbc", 16, 16, 0, 0, CFLAG_CBC, EVP_aes_128_cbc }, |
87 | { "aes192-cbc", 16, 24, 0, 0, CFLAG_CBC, EVP_aes_192_cbc }, | 89 | { "aes192-cbc", 16, 24, 0, 0, CFLAG_CBC, EVP_aes_192_cbc }, |
88 | { "aes256-cbc", 16, 32, 0, 0, CFLAG_CBC, EVP_aes_256_cbc }, | 90 | { "aes256-cbc", 16, 32, 0, 0, CFLAG_CBC, EVP_aes_256_cbc }, |
diff --git a/clientloop.c b/clientloop.c index 7bcf22e38..ad35cb7ba 100644 --- a/clientloop.c +++ b/clientloop.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: clientloop.c,v 1.311 2018/02/11 21:16:56 dtucker Exp $ */ | 1 | /* $OpenBSD: clientloop.c,v 1.317 2018/07/11 18:53:29 markus Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -91,11 +91,11 @@ | |||
91 | #include "ssh.h" | 91 | #include "ssh.h" |
92 | #include "ssh2.h" | 92 | #include "ssh2.h" |
93 | #include "packet.h" | 93 | #include "packet.h" |
94 | #include "buffer.h" | 94 | #include "sshbuf.h" |
95 | #include "compat.h" | 95 | #include "compat.h" |
96 | #include "channels.h" | 96 | #include "channels.h" |
97 | #include "dispatch.h" | 97 | #include "dispatch.h" |
98 | #include "key.h" | 98 | #include "sshkey.h" |
99 | #include "cipher.h" | 99 | #include "cipher.h" |
100 | #include "kex.h" | 100 | #include "kex.h" |
101 | #include "myproposal.h" | 101 | #include "myproposal.h" |
@@ -153,7 +153,7 @@ static time_t control_persist_exit_time = 0; | |||
153 | volatile sig_atomic_t quit_pending; /* Set non-zero to quit the loop. */ | 153 | volatile sig_atomic_t quit_pending; /* Set non-zero to quit the loop. */ |
154 | static int last_was_cr; /* Last character was a newline. */ | 154 | static int last_was_cr; /* Last character was a newline. */ |
155 | static int exit_status; /* Used to store the command exit status. */ | 155 | static int exit_status; /* Used to store the command exit status. */ |
156 | static Buffer stderr_buffer; /* Used for final exit message. */ | 156 | static struct sshbuf *stderr_buffer; /* Used for final exit message. */ |
157 | static int connection_in; /* Connection to server (input). */ | 157 | static int connection_in; /* Connection to server (input). */ |
158 | static int connection_out; /* Connection to server (output). */ | 158 | static int connection_out; /* Connection to server (output). */ |
159 | static int need_rekeying; /* Set to non-zero if rekeying is requested. */ | 159 | static int need_rekeying; /* Set to non-zero if rekeying is requested. */ |
@@ -188,7 +188,7 @@ TAILQ_HEAD(global_confirms, global_confirm); | |||
188 | static struct global_confirms global_confirms = | 188 | static struct global_confirms global_confirms = |
189 | TAILQ_HEAD_INITIALIZER(global_confirms); | 189 | TAILQ_HEAD_INITIALIZER(global_confirms); |
190 | 190 | ||
191 | void ssh_process_session2_setup(int, int, int, Buffer *); | 191 | void ssh_process_session2_setup(int, int, int, struct sshbuf *); |
192 | 192 | ||
193 | /* Restores stdin to blocking mode. */ | 193 | /* Restores stdin to blocking mode. */ |
194 | 194 | ||
@@ -493,7 +493,7 @@ client_wait_until_can_do_something(struct ssh *ssh, | |||
493 | struct timeval tv, *tvp; | 493 | struct timeval tv, *tvp; |
494 | int timeout_secs; | 494 | int timeout_secs; |
495 | time_t minwait_secs = 0, server_alive_time = 0, now = monotime(); | 495 | time_t minwait_secs = 0, server_alive_time = 0, now = monotime(); |
496 | int ret; | 496 | int r, ret; |
497 | 497 | ||
498 | /* Add any selections by the channel mechanism. */ | 498 | /* Add any selections by the channel mechanism. */ |
499 | channel_prepare_select(active_state, readsetp, writesetp, maxfdp, | 499 | channel_prepare_select(active_state, readsetp, writesetp, maxfdp, |
@@ -546,8 +546,6 @@ client_wait_until_can_do_something(struct ssh *ssh, | |||
546 | 546 | ||
547 | ret = select((*maxfdp)+1, *readsetp, *writesetp, NULL, tvp); | 547 | ret = select((*maxfdp)+1, *readsetp, *writesetp, NULL, tvp); |
548 | if (ret < 0) { | 548 | if (ret < 0) { |
549 | char buf[100]; | ||
550 | |||
551 | /* | 549 | /* |
552 | * We have to clear the select masks, because we return. | 550 | * We have to clear the select masks, because we return. |
553 | * We have to return, because the mainloop checks for the flags | 551 | * We have to return, because the mainloop checks for the flags |
@@ -559,8 +557,9 @@ client_wait_until_can_do_something(struct ssh *ssh, | |||
559 | if (errno == EINTR) | 557 | if (errno == EINTR) |
560 | return; | 558 | return; |
561 | /* Note: we might still have data in the buffers. */ | 559 | /* Note: we might still have data in the buffers. */ |
562 | snprintf(buf, sizeof buf, "select: %s\r\n", strerror(errno)); | 560 | if ((r = sshbuf_putf(stderr_buffer, |
563 | buffer_append(&stderr_buffer, buf, strlen(buf)); | 561 | "select: %s\r\n", strerror(errno))) != 0) |
562 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
564 | quit_pending = 1; | 563 | quit_pending = 1; |
565 | } else if (ret == 0) { | 564 | } else if (ret == 0) { |
566 | /* | 565 | /* |
@@ -574,15 +573,15 @@ client_wait_until_can_do_something(struct ssh *ssh, | |||
574 | } | 573 | } |
575 | 574 | ||
576 | static void | 575 | static void |
577 | client_suspend_self(Buffer *bin, Buffer *bout, Buffer *berr) | 576 | client_suspend_self(struct sshbuf *bin, struct sshbuf *bout, struct sshbuf *berr) |
578 | { | 577 | { |
579 | /* Flush stdout and stderr buffers. */ | 578 | /* Flush stdout and stderr buffers. */ |
580 | if (buffer_len(bout) > 0) | 579 | if (sshbuf_len(bout) > 0) |
581 | atomicio(vwrite, fileno(stdout), buffer_ptr(bout), | 580 | atomicio(vwrite, fileno(stdout), sshbuf_mutable_ptr(bout), |
582 | buffer_len(bout)); | 581 | sshbuf_len(bout)); |
583 | if (buffer_len(berr) > 0) | 582 | if (sshbuf_len(berr) > 0) |
584 | atomicio(vwrite, fileno(stderr), buffer_ptr(berr), | 583 | atomicio(vwrite, fileno(stderr), sshbuf_mutable_ptr(berr), |
585 | buffer_len(berr)); | 584 | sshbuf_len(berr)); |
586 | 585 | ||
587 | leave_raw_mode(options.request_tty == REQUEST_TTY_FORCE); | 586 | leave_raw_mode(options.request_tty == REQUEST_TTY_FORCE); |
588 | 587 | ||
@@ -602,8 +601,8 @@ client_suspend_self(Buffer *bin, Buffer *bout, Buffer *berr) | |||
602 | static void | 601 | static void |
603 | client_process_net_input(fd_set *readset) | 602 | client_process_net_input(fd_set *readset) |
604 | { | 603 | { |
605 | int len; | ||
606 | char buf[SSH_IOBUFSZ]; | 604 | char buf[SSH_IOBUFSZ]; |
605 | int r, len; | ||
607 | 606 | ||
608 | /* | 607 | /* |
609 | * Read input from the server, and add any such data to the buffer of | 608 | * Read input from the server, and add any such data to the buffer of |
@@ -617,10 +616,11 @@ client_process_net_input(fd_set *readset) | |||
617 | * Received EOF. The remote host has closed the | 616 | * Received EOF. The remote host has closed the |
618 | * connection. | 617 | * connection. |
619 | */ | 618 | */ |
620 | snprintf(buf, sizeof buf, | 619 | if ((r = sshbuf_putf(stderr_buffer, |
621 | "Connection to %.300s closed by remote host.\r\n", | 620 | "Connection to %.300s closed by remote host.\r\n", |
622 | host); | 621 | host)) != 0) |
623 | buffer_append(&stderr_buffer, buf, strlen(buf)); | 622 | fatal("%s: buffer error: %s", |
623 | __func__, ssh_err(r)); | ||
624 | quit_pending = 1; | 624 | quit_pending = 1; |
625 | return; | 625 | return; |
626 | } | 626 | } |
@@ -637,10 +637,11 @@ client_process_net_input(fd_set *readset) | |||
637 | * An error has encountered. Perhaps there is a | 637 | * An error has encountered. Perhaps there is a |
638 | * network problem. | 638 | * network problem. |
639 | */ | 639 | */ |
640 | snprintf(buf, sizeof buf, | 640 | if ((r = sshbuf_putf(stderr_buffer, |
641 | "Read from remote host %.300s: %.100s\r\n", | 641 | "Read from remote host %.300s: %.100s\r\n", |
642 | host, strerror(errno)); | 642 | host, strerror(errno))) != 0) |
643 | buffer_append(&stderr_buffer, buf, strlen(buf)); | 643 | fatal("%s: buffer error: %s", |
644 | __func__, ssh_err(r)); | ||
644 | quit_pending = 1; | 645 | quit_pending = 1; |
645 | return; | 646 | return; |
646 | } | 647 | } |
@@ -653,7 +654,7 @@ client_status_confirm(struct ssh *ssh, int type, Channel *c, void *ctx) | |||
653 | { | 654 | { |
654 | struct channel_reply_ctx *cr = (struct channel_reply_ctx *)ctx; | 655 | struct channel_reply_ctx *cr = (struct channel_reply_ctx *)ctx; |
655 | char errmsg[256]; | 656 | char errmsg[256]; |
656 | int tochan; | 657 | int r, tochan; |
657 | 658 | ||
658 | /* | 659 | /* |
659 | * If a TTY was explicitly requested, then a failure to allocate | 660 | * If a TTY was explicitly requested, then a failure to allocate |
@@ -664,7 +665,7 @@ client_status_confirm(struct ssh *ssh, int type, Channel *c, void *ctx) | |||
664 | options.request_tty == REQUEST_TTY_YES)) | 665 | options.request_tty == REQUEST_TTY_YES)) |
665 | cr->action = CONFIRM_CLOSE; | 666 | cr->action = CONFIRM_CLOSE; |
666 | 667 | ||
667 | /* XXX supress on mux _client_ quietmode */ | 668 | /* XXX suppress on mux _client_ quietmode */ |
668 | tochan = options.log_level >= SYSLOG_LEVEL_ERROR && | 669 | tochan = options.log_level >= SYSLOG_LEVEL_ERROR && |
669 | c->ctl_chan != -1 && c->extended_usage == CHAN_EXTENDED_WRITE; | 670 | c->ctl_chan != -1 && c->extended_usage == CHAN_EXTENDED_WRITE; |
670 | 671 | ||
@@ -688,7 +689,10 @@ client_status_confirm(struct ssh *ssh, int type, Channel *c, void *ctx) | |||
688 | * their stderr. | 689 | * their stderr. |
689 | */ | 690 | */ |
690 | if (tochan) { | 691 | if (tochan) { |
691 | buffer_append(c->extended, errmsg, strlen(errmsg)); | 692 | if ((r = sshbuf_put(c->extended, errmsg, |
693 | strlen(errmsg))) != 0) | ||
694 | fatal("%s: buffer error %s", __func__, | ||
695 | ssh_err(r)); | ||
692 | } else | 696 | } else |
693 | error("%s", errmsg); | 697 | error("%s", errmsg); |
694 | if (cr->action == CONFIRM_TTY) { | 698 | if (cr->action == CONFIRM_TTY) { |
@@ -892,14 +896,15 @@ static struct escape_help_text esc_txt[] = { | |||
892 | }; | 896 | }; |
893 | 897 | ||
894 | static void | 898 | static void |
895 | print_escape_help(Buffer *b, int escape_char, int mux_client, int using_stderr) | 899 | print_escape_help(struct sshbuf *b, int escape_char, int mux_client, |
900 | int using_stderr) | ||
896 | { | 901 | { |
897 | unsigned int i, suppress_flags; | 902 | unsigned int i, suppress_flags; |
898 | char string[1024]; | 903 | int r; |
899 | 904 | ||
900 | snprintf(string, sizeof string, "%c?\r\n" | 905 | if ((r = sshbuf_putf(b, |
901 | "Supported escape sequences:\r\n", escape_char); | 906 | "%c?\r\nSupported escape sequences:\r\n", escape_char)) != 0) |
902 | buffer_append(b, string, strlen(string)); | 907 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
903 | 908 | ||
904 | suppress_flags = | 909 | suppress_flags = |
905 | (mux_client ? SUPPRESS_MUXCLIENT : 0) | | 910 | (mux_client ? SUPPRESS_MUXCLIENT : 0) | |
@@ -909,29 +914,28 @@ print_escape_help(Buffer *b, int escape_char, int mux_client, int using_stderr) | |||
909 | for (i = 0; i < sizeof(esc_txt)/sizeof(esc_txt[0]); i++) { | 914 | for (i = 0; i < sizeof(esc_txt)/sizeof(esc_txt[0]); i++) { |
910 | if (esc_txt[i].flags & suppress_flags) | 915 | if (esc_txt[i].flags & suppress_flags) |
911 | continue; | 916 | continue; |
912 | snprintf(string, sizeof string, " %c%-3s - %s\r\n", | 917 | if ((r = sshbuf_putf(b, " %c%-3s - %s\r\n", |
913 | escape_char, esc_txt[i].cmd, esc_txt[i].text); | 918 | escape_char, esc_txt[i].cmd, esc_txt[i].text)) != 0) |
914 | buffer_append(b, string, strlen(string)); | 919 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
915 | } | 920 | } |
916 | 921 | ||
917 | snprintf(string, sizeof string, | 922 | if ((r = sshbuf_putf(b, |
918 | " %c%c - send the escape character by typing it twice\r\n" | 923 | " %c%c - send the escape character by typing it twice\r\n" |
919 | "(Note that escapes are only recognized immediately after " | 924 | "(Note that escapes are only recognized immediately after " |
920 | "newline.)\r\n", escape_char, escape_char); | 925 | "newline.)\r\n", escape_char, escape_char)) != 0) |
921 | buffer_append(b, string, strlen(string)); | 926 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
922 | } | 927 | } |
923 | 928 | ||
924 | /* | 929 | /* |
925 | * Process the characters one by one. | 930 | * Process the characters one by one. |
926 | */ | 931 | */ |
927 | static int | 932 | static int |
928 | process_escapes(struct ssh *ssh, Channel *c, | 933 | process_escapes(struct ssh *ssh, Channel *c, |
929 | Buffer *bin, Buffer *bout, Buffer *berr, | 934 | struct sshbuf *bin, struct sshbuf *bout, struct sshbuf *berr, |
930 | char *buf, int len) | 935 | char *buf, int len) |
931 | { | 936 | { |
932 | char string[1024]; | ||
933 | pid_t pid; | 937 | pid_t pid; |
934 | int bytes = 0; | 938 | int r, bytes = 0; |
935 | u_int i; | 939 | u_int i; |
936 | u_char ch; | 940 | u_char ch; |
937 | char *s; | 941 | char *s; |
@@ -940,7 +944,7 @@ process_escapes(struct ssh *ssh, Channel *c, | |||
940 | 944 | ||
941 | if (c->filter_ctx == NULL) | 945 | if (c->filter_ctx == NULL) |
942 | return 0; | 946 | return 0; |
943 | 947 | ||
944 | if (len <= 0) | 948 | if (len <= 0) |
945 | return (0); | 949 | return (0); |
946 | 950 | ||
@@ -957,10 +961,10 @@ process_escapes(struct ssh *ssh, Channel *c, | |||
957 | switch (ch) { | 961 | switch (ch) { |
958 | case '.': | 962 | case '.': |
959 | /* Terminate the connection. */ | 963 | /* Terminate the connection. */ |
960 | snprintf(string, sizeof string, "%c.\r\n", | 964 | if ((r = sshbuf_putf(berr, "%c.\r\n", |
961 | efc->escape_char); | 965 | efc->escape_char)) != 0) |
962 | buffer_append(berr, string, strlen(string)); | 966 | fatal("%s: buffer error: %s", |
963 | 967 | __func__, ssh_err(r)); | |
964 | if (c && c->ctl_chan != -1) { | 968 | if (c && c->ctl_chan != -1) { |
965 | chan_read_failed(ssh, c); | 969 | chan_read_failed(ssh, c); |
966 | chan_write_failed(ssh, c); | 970 | chan_write_failed(ssh, c); |
@@ -969,7 +973,7 @@ process_escapes(struct ssh *ssh, Channel *c, | |||
969 | c->self, NULL); | 973 | c->self, NULL); |
970 | } | 974 | } |
971 | c->type = SSH_CHANNEL_ABANDONED; | 975 | c->type = SSH_CHANNEL_ABANDONED; |
972 | buffer_clear(c->input); | 976 | sshbuf_reset(c->input); |
973 | chan_ibuf_empty(ssh, c); | 977 | chan_ibuf_empty(ssh, c); |
974 | return 0; | 978 | return 0; |
975 | } else | 979 | } else |
@@ -985,18 +989,20 @@ process_escapes(struct ssh *ssh, Channel *c, | |||
985 | snprintf(b, sizeof b, "^Z"); | 989 | snprintf(b, sizeof b, "^Z"); |
986 | else | 990 | else |
987 | snprintf(b, sizeof b, "%c", ch); | 991 | snprintf(b, sizeof b, "%c", ch); |
988 | snprintf(string, sizeof string, | 992 | if ((r = sshbuf_putf(berr, |
989 | "%c%s escape not available to " | 993 | "%c%s escape not available to " |
990 | "multiplexed sessions\r\n", | 994 | "multiplexed sessions\r\n", |
991 | efc->escape_char, b); | 995 | efc->escape_char, b)) != 0) |
992 | buffer_append(berr, string, | 996 | fatal("%s: buffer error: %s", |
993 | strlen(string)); | 997 | __func__, ssh_err(r)); |
994 | continue; | 998 | continue; |
995 | } | 999 | } |
996 | /* Suspend the program. Inform the user */ | 1000 | /* Suspend the program. Inform the user */ |
997 | snprintf(string, sizeof string, | 1001 | if ((r = sshbuf_putf(berr, |
998 | "%c^Z [suspend ssh]\r\n", efc->escape_char); | 1002 | "%c^Z [suspend ssh]\r\n", |
999 | buffer_append(berr, string, strlen(string)); | 1003 | efc->escape_char)) != 0) |
1004 | fatal("%s: buffer error: %s", | ||
1005 | __func__, ssh_err(r)); | ||
1000 | 1006 | ||
1001 | /* Restore terminal modes and suspend. */ | 1007 | /* Restore terminal modes and suspend. */ |
1002 | client_suspend_self(bin, bout, berr); | 1008 | client_suspend_self(bin, bout, berr); |
@@ -1005,12 +1011,15 @@ process_escapes(struct ssh *ssh, Channel *c, | |||
1005 | continue; | 1011 | continue; |
1006 | 1012 | ||
1007 | case 'B': | 1013 | case 'B': |
1008 | snprintf(string, sizeof string, | 1014 | if ((r = sshbuf_putf(berr, |
1009 | "%cB\r\n", efc->escape_char); | 1015 | "%cB\r\n", efc->escape_char)) != 0) |
1010 | buffer_append(berr, string, strlen(string)); | 1016 | fatal("%s: buffer error: %s", |
1017 | __func__, ssh_err(r)); | ||
1011 | channel_request_start(ssh, c->self, "break", 0); | 1018 | channel_request_start(ssh, c->self, "break", 0); |
1012 | packet_put_int(1000); | 1019 | if ((r = sshpkt_put_u32(ssh, 1000)) != 0 || |
1013 | packet_send(); | 1020 | (r = sshpkt_send(ssh)) != 0) |
1021 | fatal("%s: %s", __func__, | ||
1022 | ssh_err(r)); | ||
1014 | continue; | 1023 | continue; |
1015 | 1024 | ||
1016 | case 'R': | 1025 | case 'R': |
@@ -1027,11 +1036,11 @@ process_escapes(struct ssh *ssh, Channel *c, | |||
1027 | if (c && c->ctl_chan != -1) | 1036 | if (c && c->ctl_chan != -1) |
1028 | goto noescape; | 1037 | goto noescape; |
1029 | if (!log_is_on_stderr()) { | 1038 | if (!log_is_on_stderr()) { |
1030 | snprintf(string, sizeof string, | 1039 | if ((r = sshbuf_putf(berr, |
1031 | "%c%c [Logging to syslog]\r\n", | 1040 | "%c%c [Logging to syslog]\r\n", |
1032 | efc->escape_char, ch); | 1041 | efc->escape_char, ch)) != 0) |
1033 | buffer_append(berr, string, | 1042 | fatal("%s: buffer error: %s", |
1034 | strlen(string)); | 1043 | __func__, ssh_err(r)); |
1035 | continue; | 1044 | continue; |
1036 | } | 1045 | } |
1037 | if (ch == 'V' && options.log_level > | 1046 | if (ch == 'V' && options.log_level > |
@@ -1040,11 +1049,12 @@ process_escapes(struct ssh *ssh, Channel *c, | |||
1040 | if (ch == 'v' && options.log_level < | 1049 | if (ch == 'v' && options.log_level < |
1041 | SYSLOG_LEVEL_DEBUG3) | 1050 | SYSLOG_LEVEL_DEBUG3) |
1042 | log_change_level(++options.log_level); | 1051 | log_change_level(++options.log_level); |
1043 | snprintf(string, sizeof string, | 1052 | if ((r = sshbuf_putf(berr, |
1044 | "%c%c [LogLevel %s]\r\n", | 1053 | "%c%c [LogLevel %s]\r\n", |
1045 | efc->escape_char, ch, | 1054 | efc->escape_char, ch, |
1046 | log_level_name(options.log_level)); | 1055 | log_level_name(options.log_level))) != 0) |
1047 | buffer_append(berr, string, strlen(string)); | 1056 | fatal("%s: buffer error: %s", |
1057 | __func__, ssh_err(r)); | ||
1048 | continue; | 1058 | continue; |
1049 | 1059 | ||
1050 | case '&': | 1060 | case '&': |
@@ -1062,9 +1072,11 @@ process_escapes(struct ssh *ssh, Channel *c, | |||
1062 | /* Stop listening for new connections. */ | 1072 | /* Stop listening for new connections. */ |
1063 | channel_stop_listening(ssh); | 1073 | channel_stop_listening(ssh); |
1064 | 1074 | ||
1065 | snprintf(string, sizeof string, | 1075 | if ((r = sshbuf_putf(berr, |
1066 | "%c& [backgrounded]\n", efc->escape_char); | 1076 | "%c& [backgrounded]\n", efc->escape_char)) |
1067 | buffer_append(berr, string, strlen(string)); | 1077 | != 0) |
1078 | fatal("%s: buffer error: %s", | ||
1079 | __func__, ssh_err(r)); | ||
1068 | 1080 | ||
1069 | /* Fork into background. */ | 1081 | /* Fork into background. */ |
1070 | pid = fork(); | 1082 | pid = fork(); |
@@ -1077,8 +1089,10 @@ process_escapes(struct ssh *ssh, Channel *c, | |||
1077 | exit(0); | 1089 | exit(0); |
1078 | } | 1090 | } |
1079 | /* The child continues serving connections. */ | 1091 | /* The child continues serving connections. */ |
1080 | buffer_append(bin, "\004", 1); | ||
1081 | /* fake EOF on stdin */ | 1092 | /* fake EOF on stdin */ |
1093 | if ((r = sshbuf_put_u8(bin, 4)) != 0) | ||
1094 | fatal("%s: buffer error: %s", | ||
1095 | __func__, ssh_err(r)); | ||
1082 | return -1; | 1096 | return -1; |
1083 | case '?': | 1097 | case '?': |
1084 | print_escape_help(berr, efc->escape_char, | 1098 | print_escape_help(berr, efc->escape_char, |
@@ -1087,11 +1101,14 @@ process_escapes(struct ssh *ssh, Channel *c, | |||
1087 | continue; | 1101 | continue; |
1088 | 1102 | ||
1089 | case '#': | 1103 | case '#': |
1090 | snprintf(string, sizeof string, "%c#\r\n", | 1104 | if ((r = sshbuf_putf(berr, "%c#\r\n", |
1091 | efc->escape_char); | 1105 | efc->escape_char)) != 0) |
1092 | buffer_append(berr, string, strlen(string)); | 1106 | fatal("%s: buffer error: %s", |
1107 | __func__, ssh_err(r)); | ||
1093 | s = channel_open_message(ssh); | 1108 | s = channel_open_message(ssh); |
1094 | buffer_append(berr, s, strlen(s)); | 1109 | if ((r = sshbuf_put(berr, s, strlen(s))) != 0) |
1110 | fatal("%s: buffer error: %s", | ||
1111 | __func__, ssh_err(r)); | ||
1095 | free(s); | 1112 | free(s); |
1096 | continue; | 1113 | continue; |
1097 | 1114 | ||
@@ -1103,7 +1120,10 @@ process_escapes(struct ssh *ssh, Channel *c, | |||
1103 | 1120 | ||
1104 | default: | 1121 | default: |
1105 | if (ch != efc->escape_char) { | 1122 | if (ch != efc->escape_char) { |
1106 | buffer_put_char(bin, efc->escape_char); | 1123 | if ((r = sshbuf_put_u8(bin, |
1124 | efc->escape_char)) != 0) | ||
1125 | fatal("%s: buffer error: %s", | ||
1126 | __func__, ssh_err(r)); | ||
1107 | bytes++; | 1127 | bytes++; |
1108 | } | 1128 | } |
1109 | /* Escaped characters fall through here */ | 1129 | /* Escaped characters fall through here */ |
@@ -1129,7 +1149,8 @@ process_escapes(struct ssh *ssh, Channel *c, | |||
1129 | * and append it to the buffer. | 1149 | * and append it to the buffer. |
1130 | */ | 1150 | */ |
1131 | last_was_cr = (ch == '\r' || ch == '\n'); | 1151 | last_was_cr = (ch == '\r' || ch == '\n'); |
1132 | buffer_put_char(bin, ch); | 1152 | if ((r = sshbuf_put_u8(bin, ch)) != 0) |
1153 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
1133 | bytes++; | 1154 | bytes++; |
1134 | } | 1155 | } |
1135 | return bytes; | 1156 | return bytes; |
@@ -1253,8 +1274,9 @@ client_loop(struct ssh *ssh, int have_pty, int escape_char_arg, | |||
1253 | 1274 | ||
1254 | quit_pending = 0; | 1275 | quit_pending = 0; |
1255 | 1276 | ||
1256 | /* Initialize buffers. */ | 1277 | /* Initialize buffer. */ |
1257 | buffer_init(&stderr_buffer); | 1278 | if ((stderr_buffer = sshbuf_new()) == NULL) |
1279 | fatal("%s: sshbuf_new failed", __func__); | ||
1258 | 1280 | ||
1259 | client_init_dispatch(); | 1281 | client_init_dispatch(); |
1260 | 1282 | ||
@@ -1411,24 +1433,25 @@ client_loop(struct ssh *ssh, int have_pty, int escape_char_arg, | |||
1411 | * that the connection has been closed. | 1433 | * that the connection has been closed. |
1412 | */ | 1434 | */ |
1413 | if (have_pty && options.log_level != SYSLOG_LEVEL_QUIET) { | 1435 | if (have_pty && options.log_level != SYSLOG_LEVEL_QUIET) { |
1414 | snprintf(buf, sizeof buf, | 1436 | if ((r = sshbuf_putf(stderr_buffer, |
1415 | "Connection to %.64s closed.\r\n", host); | 1437 | "Connection to %.64s closed.\r\n", host)) != 0) |
1416 | buffer_append(&stderr_buffer, buf, strlen(buf)); | 1438 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
1417 | } | 1439 | } |
1418 | 1440 | ||
1419 | /* Output any buffered data for stderr. */ | 1441 | /* Output any buffered data for stderr. */ |
1420 | if (buffer_len(&stderr_buffer) > 0) { | 1442 | if (sshbuf_len(stderr_buffer) > 0) { |
1421 | len = atomicio(vwrite, fileno(stderr), | 1443 | len = atomicio(vwrite, fileno(stderr), |
1422 | buffer_ptr(&stderr_buffer), buffer_len(&stderr_buffer)); | 1444 | (u_char *)sshbuf_ptr(stderr_buffer), |
1423 | if (len < 0 || (u_int)len != buffer_len(&stderr_buffer)) | 1445 | sshbuf_len(stderr_buffer)); |
1446 | if (len < 0 || (u_int)len != sshbuf_len(stderr_buffer)) | ||
1424 | error("Write failed flushing stderr buffer."); | 1447 | error("Write failed flushing stderr buffer."); |
1425 | else | 1448 | else if ((r = sshbuf_consume(stderr_buffer, len)) != 0) |
1426 | buffer_consume(&stderr_buffer, len); | 1449 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
1427 | } | 1450 | } |
1428 | 1451 | ||
1429 | /* Clear and free any buffers. */ | 1452 | /* Clear and free any buffers. */ |
1430 | explicit_bzero(buf, sizeof(buf)); | 1453 | explicit_bzero(buf, sizeof(buf)); |
1431 | buffer_free(&stderr_buffer); | 1454 | sshbuf_free(stderr_buffer); |
1432 | 1455 | ||
1433 | /* Report bytes transferred, and transfer rates. */ | 1456 | /* Report bytes transferred, and transfer rates. */ |
1434 | total_time = monotime_double() - start_time; | 1457 | total_time = monotime_double() - start_time; |
@@ -1746,7 +1769,7 @@ struct hostkeys_update_ctx { | |||
1746 | */ | 1769 | */ |
1747 | struct sshkey **keys; | 1770 | struct sshkey **keys; |
1748 | int *keys_seen; | 1771 | int *keys_seen; |
1749 | size_t nkeys, nnew; | 1772 | size_t nkeys, nnew; |
1750 | 1773 | ||
1751 | /* | 1774 | /* |
1752 | * Keys that are in known_hosts, but were not present in the update | 1775 | * Keys that are in known_hosts, but were not present in the update |
@@ -2156,9 +2179,11 @@ client_input_global_request(int type, u_int32_t seq, struct ssh *ssh) | |||
2156 | 2179 | ||
2157 | void | 2180 | void |
2158 | client_session2_setup(struct ssh *ssh, int id, int want_tty, int want_subsystem, | 2181 | client_session2_setup(struct ssh *ssh, int id, int want_tty, int want_subsystem, |
2159 | const char *term, struct termios *tiop, int in_fd, Buffer *cmd, char **env) | 2182 | const char *term, struct termios *tiop, int in_fd, struct sshbuf *cmd, |
2183 | char **env) | ||
2160 | { | 2184 | { |
2161 | int len; | 2185 | int i, j, matched, len; |
2186 | char *name, *val; | ||
2162 | Channel *c = NULL; | 2187 | Channel *c = NULL; |
2163 | 2188 | ||
2164 | debug2("%s: id %d", __func__, id); | 2189 | debug2("%s: id %d", __func__, id); |
@@ -2185,7 +2210,7 @@ client_session2_setup(struct ssh *ssh, int id, int want_tty, int want_subsystem, | |||
2185 | packet_put_int((u_int)ws.ws_ypixel); | 2210 | packet_put_int((u_int)ws.ws_ypixel); |
2186 | if (tiop == NULL) | 2211 | if (tiop == NULL) |
2187 | tiop = get_saved_tio(); | 2212 | tiop = get_saved_tio(); |
2188 | tty_make_modes(-1, tiop); | 2213 | ssh_tty_make_modes(ssh, -1, tiop); |
2189 | packet_send(); | 2214 | packet_send(); |
2190 | /* XXX wait for reply */ | 2215 | /* XXX wait for reply */ |
2191 | c->client_tty = 1; | 2216 | c->client_tty = 1; |
@@ -2193,9 +2218,6 @@ client_session2_setup(struct ssh *ssh, int id, int want_tty, int want_subsystem, | |||
2193 | 2218 | ||
2194 | /* Transfer any environment variables from client to server */ | 2219 | /* Transfer any environment variables from client to server */ |
2195 | if (options.num_send_env != 0 && env != NULL) { | 2220 | if (options.num_send_env != 0 && env != NULL) { |
2196 | int i, j, matched; | ||
2197 | char *name, *val; | ||
2198 | |||
2199 | debug("Sending environment."); | 2221 | debug("Sending environment."); |
2200 | for (i = 0; env[i] != NULL; i++) { | 2222 | for (i = 0; env[i] != NULL; i++) { |
2201 | /* Split */ | 2223 | /* Split */ |
@@ -2227,24 +2249,40 @@ client_session2_setup(struct ssh *ssh, int id, int want_tty, int want_subsystem, | |||
2227 | free(name); | 2249 | free(name); |
2228 | } | 2250 | } |
2229 | } | 2251 | } |
2252 | for (i = 0; i < options.num_setenv; i++) { | ||
2253 | /* Split */ | ||
2254 | name = xstrdup(options.setenv[i]); | ||
2255 | if ((val = strchr(name, '=')) == NULL) { | ||
2256 | free(name); | ||
2257 | continue; | ||
2258 | } | ||
2259 | *val++ = '\0'; | ||
2260 | |||
2261 | debug("Setting env %s = %s", name, val); | ||
2262 | channel_request_start(ssh, id, "env", 0); | ||
2263 | packet_put_cstring(name); | ||
2264 | packet_put_cstring(val); | ||
2265 | packet_send(); | ||
2266 | free(name); | ||
2267 | } | ||
2230 | 2268 | ||
2231 | len = buffer_len(cmd); | 2269 | len = sshbuf_len(cmd); |
2232 | if (len > 0) { | 2270 | if (len > 0) { |
2233 | if (len > 900) | 2271 | if (len > 900) |
2234 | len = 900; | 2272 | len = 900; |
2235 | if (want_subsystem) { | 2273 | if (want_subsystem) { |
2236 | debug("Sending subsystem: %.*s", | 2274 | debug("Sending subsystem: %.*s", |
2237 | len, (u_char*)buffer_ptr(cmd)); | 2275 | len, (const u_char*)sshbuf_ptr(cmd)); |
2238 | channel_request_start(ssh, id, "subsystem", 1); | 2276 | channel_request_start(ssh, id, "subsystem", 1); |
2239 | client_expect_confirm(ssh, id, "subsystem", | 2277 | client_expect_confirm(ssh, id, "subsystem", |
2240 | CONFIRM_CLOSE); | 2278 | CONFIRM_CLOSE); |
2241 | } else { | 2279 | } else { |
2242 | debug("Sending command: %.*s", | 2280 | debug("Sending command: %.*s", |
2243 | len, (u_char*)buffer_ptr(cmd)); | 2281 | len, (const u_char*)sshbuf_ptr(cmd)); |
2244 | channel_request_start(ssh, id, "exec", 1); | 2282 | channel_request_start(ssh, id, "exec", 1); |
2245 | client_expect_confirm(ssh, id, "exec", CONFIRM_CLOSE); | 2283 | client_expect_confirm(ssh, id, "exec", CONFIRM_CLOSE); |
2246 | } | 2284 | } |
2247 | packet_put_string(buffer_ptr(cmd), buffer_len(cmd)); | 2285 | packet_put_string(sshbuf_ptr(cmd), sshbuf_len(cmd)); |
2248 | packet_send(); | 2286 | packet_send(); |
2249 | } else { | 2287 | } else { |
2250 | channel_request_start(ssh, id, "shell", 1); | 2288 | channel_request_start(ssh, id, "shell", 1); |
diff --git a/clientloop.h b/clientloop.h index 8d1f0bff6..bf79c87bf 100644 --- a/clientloop.h +++ b/clientloop.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: clientloop.h,v 1.35 2017/10/23 05:08:00 djm Exp $ */ | 1 | /* $OpenBSD: clientloop.h,v 1.36 2018/07/09 21:03:30 markus Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
@@ -45,7 +45,7 @@ int client_x11_get_proto(struct ssh *, const char *, const char *, | |||
45 | u_int, u_int, char **, char **); | 45 | u_int, u_int, char **, char **); |
46 | void client_global_request_reply_fwd(int, u_int32_t, void *); | 46 | void client_global_request_reply_fwd(int, u_int32_t, void *); |
47 | void client_session2_setup(struct ssh *, int, int, int, | 47 | void client_session2_setup(struct ssh *, int, int, int, |
48 | const char *, struct termios *, int, Buffer *, char **); | 48 | const char *, struct termios *, int, struct sshbuf *, char **); |
49 | char *client_request_tun_fwd(struct ssh *, int, int, int); | 49 | char *client_request_tun_fwd(struct ssh *, int, int, int); |
50 | void client_stop_mux(void); | 50 | void client_stop_mux(void); |
51 | 51 | ||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: compat.c,v 1.106 2018/02/16 04:43:11 dtucker Exp $ */ | 1 | /* $OpenBSD: compat.c,v 1.113 2018/08/13 02:41:05 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 1999, 2000, 2001, 2002 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 1999, 2000, 2001, 2002 Markus Friedl. All rights reserved. |
4 | * | 4 | * |
@@ -32,7 +32,6 @@ | |||
32 | #include <stdarg.h> | 32 | #include <stdarg.h> |
33 | 33 | ||
34 | #include "xmalloc.h" | 34 | #include "xmalloc.h" |
35 | #include "buffer.h" | ||
36 | #include "packet.h" | 35 | #include "packet.h" |
37 | #include "compat.h" | 36 | #include "compat.h" |
38 | #include "log.h" | 37 | #include "log.h" |
@@ -52,16 +51,28 @@ compat_datafellows(const char *version) | |||
52 | } check[] = { | 51 | } check[] = { |
53 | { "OpenSSH_2.*," | 52 | { "OpenSSH_2.*," |
54 | "OpenSSH_3.0*," | 53 | "OpenSSH_3.0*," |
55 | "OpenSSH_3.1*", SSH_BUG_EXTEOF|SSH_OLD_FORWARD_ADDR}, | 54 | "OpenSSH_3.1*", SSH_BUG_EXTEOF|SSH_OLD_FORWARD_ADDR| |
56 | { "OpenSSH_3.*", SSH_OLD_FORWARD_ADDR }, | 55 | SSH_BUG_SIGTYPE}, |
57 | { "Sun_SSH_1.0*", SSH_BUG_NOREKEY|SSH_BUG_EXTEOF}, | 56 | { "OpenSSH_3.*", SSH_OLD_FORWARD_ADDR|SSH_BUG_SIGTYPE }, |
57 | { "Sun_SSH_1.0*", SSH_BUG_NOREKEY|SSH_BUG_EXTEOF| | ||
58 | SSH_BUG_SIGTYPE}, | ||
58 | { "OpenSSH_2*," | 59 | { "OpenSSH_2*," |
59 | "OpenSSH_3*," | 60 | "OpenSSH_3*," |
60 | "OpenSSH_4*", 0 }, | 61 | "OpenSSH_4*", SSH_BUG_SIGTYPE }, |
61 | { "OpenSSH_5*", SSH_NEW_OPENSSH|SSH_BUG_DYNAMIC_RPORT}, | 62 | { "OpenSSH_5*", SSH_NEW_OPENSSH|SSH_BUG_DYNAMIC_RPORT| |
62 | { "OpenSSH_6.6.1*", SSH_NEW_OPENSSH}, | 63 | SSH_BUG_SIGTYPE}, |
64 | { "OpenSSH_6.6.1*", SSH_NEW_OPENSSH|SSH_BUG_SIGTYPE}, | ||
63 | { "OpenSSH_6.5*," | 65 | { "OpenSSH_6.5*," |
64 | "OpenSSH_6.6*", SSH_NEW_OPENSSH|SSH_BUG_CURVE25519PAD}, | 66 | "OpenSSH_6.6*", SSH_NEW_OPENSSH|SSH_BUG_CURVE25519PAD| |
67 | SSH_BUG_SIGTYPE}, | ||
68 | { "OpenSSH_7.0*," | ||
69 | "OpenSSH_7.1*," | ||
70 | "OpenSSH_7.2*," | ||
71 | "OpenSSH_7.3*," | ||
72 | "OpenSSH_7.4*," | ||
73 | "OpenSSH_7.5*," | ||
74 | "OpenSSH_7.6*," | ||
75 | "OpenSSH_7.7*", SSH_NEW_OPENSSH|SSH_BUG_SIGTYPE}, | ||
65 | { "OpenSSH*", SSH_NEW_OPENSSH }, | 76 | { "OpenSSH*", SSH_NEW_OPENSSH }, |
66 | { "*MindTerm*", 0 }, | 77 | { "*MindTerm*", 0 }, |
67 | { "3.0.*", SSH_BUG_DEBUG }, | 78 | { "3.0.*", SSH_BUG_DEBUG }, |
@@ -128,6 +139,8 @@ compat_datafellows(const char *version) | |||
128 | SSH_OLD_DHGEX }, | 139 | SSH_OLD_DHGEX }, |
129 | { "ConfD-*", | 140 | { "ConfD-*", |
130 | SSH_BUG_UTF8TTYMODE }, | 141 | SSH_BUG_UTF8TTYMODE }, |
142 | { "Twisted_*", 0 }, | ||
143 | { "Twisted*", SSH_BUG_DEBUG }, | ||
131 | { NULL, 0 } | 144 | { NULL, 0 } |
132 | }; | 145 | }; |
133 | 146 | ||
@@ -176,8 +189,8 @@ compat_cipher_proposal(char *cipher_prop) | |||
176 | if (!(datafellows & SSH_BUG_BIGENDIANAES)) | 189 | if (!(datafellows & SSH_BUG_BIGENDIANAES)) |
177 | return cipher_prop; | 190 | return cipher_prop; |
178 | debug2("%s: original cipher proposal: %s", __func__, cipher_prop); | 191 | debug2("%s: original cipher proposal: %s", __func__, cipher_prop); |
179 | if ((cipher_prop = match_filter_list(cipher_prop, "aes*")) == NULL) | 192 | if ((cipher_prop = match_filter_blacklist(cipher_prop, "aes*")) == NULL) |
180 | fatal("match_filter_list failed"); | 193 | fatal("match_filter_blacklist failed"); |
181 | debug2("%s: compat cipher proposal: %s", __func__, cipher_prop); | 194 | debug2("%s: compat cipher proposal: %s", __func__, cipher_prop); |
182 | if (*cipher_prop == '\0') | 195 | if (*cipher_prop == '\0') |
183 | fatal("No supported ciphers found"); | 196 | fatal("No supported ciphers found"); |
@@ -190,8 +203,8 @@ compat_pkalg_proposal(char *pkalg_prop) | |||
190 | if (!(datafellows & SSH_BUG_RSASIGMD5)) | 203 | if (!(datafellows & SSH_BUG_RSASIGMD5)) |
191 | return pkalg_prop; | 204 | return pkalg_prop; |
192 | debug2("%s: original public key proposal: %s", __func__, pkalg_prop); | 205 | debug2("%s: original public key proposal: %s", __func__, pkalg_prop); |
193 | if ((pkalg_prop = match_filter_list(pkalg_prop, "ssh-rsa")) == NULL) | 206 | if ((pkalg_prop = match_filter_blacklist(pkalg_prop, "ssh-rsa")) == NULL) |
194 | fatal("match_filter_list failed"); | 207 | fatal("match_filter_blacklist failed"); |
195 | debug2("%s: compat public key proposal: %s", __func__, pkalg_prop); | 208 | debug2("%s: compat public key proposal: %s", __func__, pkalg_prop); |
196 | if (*pkalg_prop == '\0') | 209 | if (*pkalg_prop == '\0') |
197 | fatal("No supported PK algorithms found"); | 210 | fatal("No supported PK algorithms found"); |
@@ -205,14 +218,14 @@ compat_kex_proposal(char *p) | |||
205 | return p; | 218 | return p; |
206 | debug2("%s: original KEX proposal: %s", __func__, p); | 219 | debug2("%s: original KEX proposal: %s", __func__, p); |
207 | if ((datafellows & SSH_BUG_CURVE25519PAD) != 0) | 220 | if ((datafellows & SSH_BUG_CURVE25519PAD) != 0) |
208 | if ((p = match_filter_list(p, | 221 | if ((p = match_filter_blacklist(p, |
209 | "curve25519-sha256@libssh.org")) == NULL) | 222 | "curve25519-sha256@libssh.org")) == NULL) |
210 | fatal("match_filter_list failed"); | 223 | fatal("match_filter_blacklist failed"); |
211 | if ((datafellows & SSH_OLD_DHGEX) != 0) { | 224 | if ((datafellows & SSH_OLD_DHGEX) != 0) { |
212 | if ((p = match_filter_list(p, | 225 | if ((p = match_filter_blacklist(p, |
213 | "diffie-hellman-group-exchange-sha256," | 226 | "diffie-hellman-group-exchange-sha256," |
214 | "diffie-hellman-group-exchange-sha1")) == NULL) | 227 | "diffie-hellman-group-exchange-sha1")) == NULL) |
215 | fatal("match_filter_list failed"); | 228 | fatal("match_filter_blacklist failed"); |
216 | } | 229 | } |
217 | debug2("%s: compat KEX proposal: %s", __func__, p); | 230 | debug2("%s: compat KEX proposal: %s", __func__, p); |
218 | if (*p == '\0') | 231 | if (*p == '\0') |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: compat.h,v 1.51 2018/02/16 04:43:11 dtucker Exp $ */ | 1 | /* $OpenBSD: compat.h,v 1.54 2018/08/13 02:41:05 djm Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Copyright (c) 1999, 2000, 2001 Markus Friedl. All rights reserved. | 4 | * Copyright (c) 1999, 2000, 2001 Markus Friedl. All rights reserved. |
@@ -33,7 +33,7 @@ | |||
33 | #define SSH_PROTO_2 0x04 | 33 | #define SSH_PROTO_2 0x04 |
34 | 34 | ||
35 | #define SSH_BUG_UTF8TTYMODE 0x00000001 | 35 | #define SSH_BUG_UTF8TTYMODE 0x00000001 |
36 | /* #define unused 0x00000002 */ | 36 | #define SSH_BUG_SIGTYPE 0x00000002 |
37 | /* #define unused 0x00000004 */ | 37 | /* #define unused 0x00000004 */ |
38 | /* #define unused 0x00000008 */ | 38 | /* #define unused 0x00000008 */ |
39 | #define SSH_OLD_SESSIONID 0x00000010 | 39 | #define SSH_OLD_SESSIONID 0x00000010 |
diff --git a/config.h.in b/config.h.in index 572087407..7940b4c86 100644 --- a/config.h.in +++ b/config.h.in | |||
@@ -534,6 +534,9 @@ | |||
534 | /* Define to 1 if you have the `getlastlogxbyname' function. */ | 534 | /* Define to 1 if you have the `getlastlogxbyname' function. */ |
535 | #undef HAVE_GETLASTLOGXBYNAME | 535 | #undef HAVE_GETLASTLOGXBYNAME |
536 | 536 | ||
537 | /* Define to 1 if you have the `getline' function. */ | ||
538 | #undef HAVE_GETLINE | ||
539 | |||
537 | /* Define to 1 if you have the `getluid' function. */ | 540 | /* Define to 1 if you have the `getluid' function. */ |
538 | #undef HAVE_GETLUID | 541 | #undef HAVE_GETLUID |
539 | 542 | ||
@@ -567,6 +570,9 @@ | |||
567 | /* Define to 1 if you have the `getpwanam' function. */ | 570 | /* Define to 1 if you have the `getpwanam' function. */ |
568 | #undef HAVE_GETPWANAM | 571 | #undef HAVE_GETPWANAM |
569 | 572 | ||
573 | /* Define to 1 if you have the `getrandom' function. */ | ||
574 | #undef HAVE_GETRANDOM | ||
575 | |||
570 | /* Define to 1 if you have the `getrlimit' function. */ | 576 | /* Define to 1 if you have the `getrlimit' function. */ |
571 | #undef HAVE_GETRLIMIT | 577 | #undef HAVE_GETRLIMIT |
572 | 578 | ||
@@ -1287,6 +1293,9 @@ | |||
1287 | /* Define to 1 if you have the <sys/ptrace.h> header file. */ | 1293 | /* Define to 1 if you have the <sys/ptrace.h> header file. */ |
1288 | #undef HAVE_SYS_PTRACE_H | 1294 | #undef HAVE_SYS_PTRACE_H |
1289 | 1295 | ||
1296 | /* Define to 1 if you have the <sys/random.h> header file. */ | ||
1297 | #undef HAVE_SYS_RANDOM_H | ||
1298 | |||
1290 | /* Define to 1 if you have the <sys/select.h> header file. */ | 1299 | /* Define to 1 if you have the <sys/select.h> header file. */ |
1291 | #undef HAVE_SYS_SELECT_H | 1300 | #undef HAVE_SYS_SELECT_H |
1292 | 1301 | ||
@@ -1543,7 +1552,7 @@ | |||
1543 | /* Need setpgrp to acquire controlling tty */ | 1552 | /* Need setpgrp to acquire controlling tty */ |
1544 | #undef NEED_SETPGRP | 1553 | #undef NEED_SETPGRP |
1545 | 1554 | ||
1546 | /* compiler does not accept __attribute__ on protoype args */ | 1555 | /* compiler does not accept __attribute__ on prototype args */ |
1547 | #undef NO_ATTRIBUTE_ON_PROTOTYPE_ARGS | 1556 | #undef NO_ATTRIBUTE_ON_PROTOTYPE_ARGS |
1548 | 1557 | ||
1549 | /* compiler does not accept __attribute__ on return types */ | 1558 | /* compiler does not accept __attribute__ on return types */ |
@@ -1670,12 +1679,6 @@ | |||
1670 | /* The size of `short int', as computed by sizeof. */ | 1679 | /* The size of `short int', as computed by sizeof. */ |
1671 | #undef SIZEOF_SHORT_INT | 1680 | #undef SIZEOF_SHORT_INT |
1672 | 1681 | ||
1673 | /* Define if you want S/Key support */ | ||
1674 | #undef SKEY | ||
1675 | |||
1676 | /* Define if your skeychallenge() function takes 4 arguments (NetBSD) */ | ||
1677 | #undef SKEYCHALLENGE_4ARG | ||
1678 | |||
1679 | /* Define as const if snprintf() can declare const char *fmt */ | 1682 | /* Define as const if snprintf() can declare const char *fmt */ |
1680 | #undef SNPRINTF_CONST | 1683 | #undef SNPRINTF_CONST |
1681 | 1684 | ||
@@ -1776,7 +1779,7 @@ | |||
1776 | /* Define if you want to enable AIX4's authenticate function */ | 1779 | /* Define if you want to enable AIX4's authenticate function */ |
1777 | #undef WITH_AIXAUTHENTICATE | 1780 | #undef WITH_AIXAUTHENTICATE |
1778 | 1781 | ||
1779 | /* Define if you have/want arrays (cluster-wide session managment, not C | 1782 | /* Define if you have/want arrays (cluster-wide session management, not C |
1780 | arrays) */ | 1783 | arrays) */ |
1781 | #undef WITH_IRIX_ARRAY | 1784 | #undef WITH_IRIX_ARRAY |
1782 | 1785 | ||
@@ -751,7 +751,6 @@ with_solaris_privs | |||
751 | with_osfsia | 751 | with_osfsia |
752 | with_zlib | 752 | with_zlib |
753 | with_zlib_version_check | 753 | with_zlib_version_check |
754 | with_skey | ||
755 | with_ldns | 754 | with_ldns |
756 | with_libedit | 755 | with_libedit |
757 | with_audit | 756 | with_audit |
@@ -1447,7 +1446,6 @@ Optional Packages: | |||
1447 | --with-osfsia Enable Digital Unix SIA | 1446 | --with-osfsia Enable Digital Unix SIA |
1448 | --with-zlib=PATH Use zlib in PATH | 1447 | --with-zlib=PATH Use zlib in PATH |
1449 | --without-zlib-version-check Disable zlib version check | 1448 | --without-zlib-version-check Disable zlib version check |
1450 | --with-skey[=PATH] Enable S/Key support (optionally in PATH) | ||
1451 | --with-ldns[=PATH] Use ldns for DNSSEC support (optionally in PATH) | 1449 | --with-ldns[=PATH] Use ldns for DNSSEC support (optionally in PATH) |
1452 | --with-libedit[=PATH] Enable libedit support for sftp | 1450 | --with-libedit[=PATH] Enable libedit support for sftp |
1453 | --with-audit=module Enable audit support (modules=debug,bsm,linux) | 1451 | --with-audit=module Enable audit support (modules=debug,bsm,linux) |
@@ -5546,9 +5544,7 @@ _ACEOF | |||
5546 | 5544 | ||
5547 | fi | 5545 | fi |
5548 | 5546 | ||
5549 | if test -z "$LD" ; then | 5547 | LD="$CC" |
5550 | LD=$CC | ||
5551 | fi | ||
5552 | 5548 | ||
5553 | 5549 | ||
5554 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 | 5550 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 |
@@ -5727,7 +5723,7 @@ int main(int argc, char **argv) { | |||
5727 | _ACEOF | 5723 | _ACEOF |
5728 | if ac_fn_c_try_compile "$LINENO"; then : | 5724 | if ac_fn_c_try_compile "$LINENO"; then : |
5729 | 5725 | ||
5730 | if `grep -i "unrecognized option" conftest.err >/dev/null` | 5726 | if $ac_cv_path_EGREP -i "unrecognized option|warning.*ignored" conftest.err >/dev/null |
5731 | then | 5727 | then |
5732 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | 5728 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 |
5733 | $as_echo "no" >&6; } | 5729 | $as_echo "no" >&6; } |
@@ -5770,7 +5766,7 @@ int main(int argc, char **argv) { | |||
5770 | _ACEOF | 5766 | _ACEOF |
5771 | if ac_fn_c_try_compile "$LINENO"; then : | 5767 | if ac_fn_c_try_compile "$LINENO"; then : |
5772 | 5768 | ||
5773 | if `grep -i "unrecognized option" conftest.err >/dev/null` | 5769 | if $ac_cv_path_EGREP -i "unrecognized option|warning.*ignored" conftest.err >/dev/null |
5774 | then | 5770 | then |
5775 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | 5771 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 |
5776 | $as_echo "no" >&6; } | 5772 | $as_echo "no" >&6; } |
@@ -5813,7 +5809,7 @@ int main(int argc, char **argv) { | |||
5813 | _ACEOF | 5809 | _ACEOF |
5814 | if ac_fn_c_try_compile "$LINENO"; then : | 5810 | if ac_fn_c_try_compile "$LINENO"; then : |
5815 | 5811 | ||
5816 | if `grep -i "unrecognized option" conftest.err >/dev/null` | 5812 | if $ac_cv_path_EGREP -i "unrecognized option|warning.*ignored" conftest.err >/dev/null |
5817 | then | 5813 | then |
5818 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | 5814 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 |
5819 | $as_echo "no" >&6; } | 5815 | $as_echo "no" >&6; } |
@@ -5856,7 +5852,7 @@ int main(int argc, char **argv) { | |||
5856 | _ACEOF | 5852 | _ACEOF |
5857 | if ac_fn_c_try_compile "$LINENO"; then : | 5853 | if ac_fn_c_try_compile "$LINENO"; then : |
5858 | 5854 | ||
5859 | if `grep -i "unrecognized option" conftest.err >/dev/null` | 5855 | if $ac_cv_path_EGREP -i "unrecognized option|warning.*ignored" conftest.err >/dev/null |
5860 | then | 5856 | then |
5861 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | 5857 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 |
5862 | $as_echo "no" >&6; } | 5858 | $as_echo "no" >&6; } |
@@ -5899,7 +5895,7 @@ int main(int argc, char **argv) { | |||
5899 | _ACEOF | 5895 | _ACEOF |
5900 | if ac_fn_c_try_compile "$LINENO"; then : | 5896 | if ac_fn_c_try_compile "$LINENO"; then : |
5901 | 5897 | ||
5902 | if `grep -i "unrecognized option" conftest.err >/dev/null` | 5898 | if $ac_cv_path_EGREP -i "unrecognized option|warning.*ignored" conftest.err >/dev/null |
5903 | then | 5899 | then |
5904 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | 5900 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 |
5905 | $as_echo "no" >&6; } | 5901 | $as_echo "no" >&6; } |
@@ -5942,7 +5938,7 @@ int main(int argc, char **argv) { | |||
5942 | _ACEOF | 5938 | _ACEOF |
5943 | if ac_fn_c_try_compile "$LINENO"; then : | 5939 | if ac_fn_c_try_compile "$LINENO"; then : |
5944 | 5940 | ||
5945 | if `grep -i "unrecognized option" conftest.err >/dev/null` | 5941 | if $ac_cv_path_EGREP -i "unrecognized option|warning.*ignored" conftest.err >/dev/null |
5946 | then | 5942 | then |
5947 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | 5943 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 |
5948 | $as_echo "no" >&6; } | 5944 | $as_echo "no" >&6; } |
@@ -5985,7 +5981,7 @@ int main(int argc, char **argv) { | |||
5985 | _ACEOF | 5981 | _ACEOF |
5986 | if ac_fn_c_try_compile "$LINENO"; then : | 5982 | if ac_fn_c_try_compile "$LINENO"; then : |
5987 | 5983 | ||
5988 | if `grep -i "unrecognized option" conftest.err >/dev/null` | 5984 | if $ac_cv_path_EGREP -i "unrecognized option|warning.*ignored" conftest.err >/dev/null |
5989 | then | 5985 | then |
5990 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | 5986 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 |
5991 | $as_echo "no" >&6; } | 5987 | $as_echo "no" >&6; } |
@@ -6028,7 +6024,7 @@ int main(int argc, char **argv) { | |||
6028 | _ACEOF | 6024 | _ACEOF |
6029 | if ac_fn_c_try_compile "$LINENO"; then : | 6025 | if ac_fn_c_try_compile "$LINENO"; then : |
6030 | 6026 | ||
6031 | if `grep -i "unrecognized option" conftest.err >/dev/null` | 6027 | if $ac_cv_path_EGREP -i "unrecognized option|warning.*ignored" conftest.err >/dev/null |
6032 | then | 6028 | then |
6033 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | 6029 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 |
6034 | $as_echo "no" >&6; } | 6030 | $as_echo "no" >&6; } |
@@ -6071,7 +6067,7 @@ int main(int argc, char **argv) { | |||
6071 | _ACEOF | 6067 | _ACEOF |
6072 | if ac_fn_c_try_compile "$LINENO"; then : | 6068 | if ac_fn_c_try_compile "$LINENO"; then : |
6073 | 6069 | ||
6074 | if `grep -i "unrecognized option" conftest.err >/dev/null` | 6070 | if $ac_cv_path_EGREP -i "unrecognized option|warning.*ignored" conftest.err >/dev/null |
6075 | then | 6071 | then |
6076 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | 6072 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 |
6077 | $as_echo "no" >&6; } | 6073 | $as_echo "no" >&6; } |
@@ -6114,7 +6110,7 @@ int main(int argc, char **argv) { | |||
6114 | _ACEOF | 6110 | _ACEOF |
6115 | if ac_fn_c_try_compile "$LINENO"; then : | 6111 | if ac_fn_c_try_compile "$LINENO"; then : |
6116 | 6112 | ||
6117 | if `grep -i "unrecognized option" conftest.err >/dev/null` | 6113 | if $ac_cv_path_EGREP -i "unrecognized option|warning.*ignored" conftest.err >/dev/null |
6118 | then | 6114 | then |
6119 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | 6115 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 |
6120 | $as_echo "no" >&6; } | 6116 | $as_echo "no" >&6; } |
@@ -6157,7 +6153,7 @@ int main(int argc, char **argv) { | |||
6157 | _ACEOF | 6153 | _ACEOF |
6158 | if ac_fn_c_try_compile "$LINENO"; then : | 6154 | if ac_fn_c_try_compile "$LINENO"; then : |
6159 | 6155 | ||
6160 | if `grep -i "unrecognized option" conftest.err >/dev/null` | 6156 | if $ac_cv_path_EGREP -i "unrecognized option|warning.*ignored" conftest.err >/dev/null |
6161 | then | 6157 | then |
6162 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | 6158 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 |
6163 | $as_echo "no" >&6; } | 6159 | $as_echo "no" >&6; } |
@@ -6200,7 +6196,7 @@ int main(int argc, char **argv) { | |||
6200 | _ACEOF | 6196 | _ACEOF |
6201 | if ac_fn_c_try_compile "$LINENO"; then : | 6197 | if ac_fn_c_try_compile "$LINENO"; then : |
6202 | 6198 | ||
6203 | if `grep -i "unrecognized option" conftest.err >/dev/null` | 6199 | if $ac_cv_path_EGREP -i "unrecognized option|warning.*ignored" conftest.err >/dev/null |
6204 | then | 6200 | then |
6205 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | 6201 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 |
6206 | $as_echo "no" >&6; } | 6202 | $as_echo "no" >&6; } |
@@ -6219,7 +6215,12 @@ fi | |||
6219 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | 6215 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext |
6220 | } | 6216 | } |
6221 | if test "x$use_toolchain_hardening" = "x1"; then | 6217 | if test "x$use_toolchain_hardening" = "x1"; then |
6222 | { | 6218 | # Cygwin GCC 7.x allows thunking on the CLI, but produces non-working |
6219 | # code. Unfortunately you only notice this at link time. | ||
6220 | case "$host" in | ||
6221 | *-*-cygwin*) ;; | ||
6222 | *) | ||
6223 | { | ||
6223 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports compile flag -mfunction-return=thunk" >&5 | 6224 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports compile flag -mfunction-return=thunk" >&5 |
6224 | $as_echo_n "checking if $CC supports compile flag -mfunction-return=thunk... " >&6; } | 6225 | $as_echo_n "checking if $CC supports compile flag -mfunction-return=thunk... " >&6; } |
6225 | saved_CFLAGS="$CFLAGS" | 6226 | saved_CFLAGS="$CFLAGS" |
@@ -6244,7 +6245,7 @@ int main(int argc, char **argv) { | |||
6244 | _ACEOF | 6245 | _ACEOF |
6245 | if ac_fn_c_try_compile "$LINENO"; then : | 6246 | if ac_fn_c_try_compile "$LINENO"; then : |
6246 | 6247 | ||
6247 | if `grep -i "unrecognized option" conftest.err >/dev/null` | 6248 | if $ac_cv_path_EGREP -i "unrecognized option|warning.*ignored" conftest.err >/dev/null |
6248 | then | 6249 | then |
6249 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | 6250 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 |
6250 | $as_echo "no" >&6; } | 6251 | $as_echo "no" >&6; } |
@@ -6262,7 +6263,7 @@ $as_echo "no" >&6; } | |||
6262 | fi | 6263 | fi |
6263 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | 6264 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext |
6264 | } # gcc | 6265 | } # gcc |
6265 | { | 6266 | { |
6266 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports compile flag -mindirect-branch=thunk" >&5 | 6267 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports compile flag -mindirect-branch=thunk" >&5 |
6267 | $as_echo_n "checking if $CC supports compile flag -mindirect-branch=thunk... " >&6; } | 6268 | $as_echo_n "checking if $CC supports compile flag -mindirect-branch=thunk... " >&6; } |
6268 | saved_CFLAGS="$CFLAGS" | 6269 | saved_CFLAGS="$CFLAGS" |
@@ -6287,7 +6288,7 @@ int main(int argc, char **argv) { | |||
6287 | _ACEOF | 6288 | _ACEOF |
6288 | if ac_fn_c_try_compile "$LINENO"; then : | 6289 | if ac_fn_c_try_compile "$LINENO"; then : |
6289 | 6290 | ||
6290 | if `grep -i "unrecognized option" conftest.err >/dev/null` | 6291 | if $ac_cv_path_EGREP -i "unrecognized option|warning.*ignored" conftest.err >/dev/null |
6291 | then | 6292 | then |
6292 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | 6293 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 |
6293 | $as_echo "no" >&6; } | 6294 | $as_echo "no" >&6; } |
@@ -6305,6 +6306,8 @@ $as_echo "no" >&6; } | |||
6305 | fi | 6306 | fi |
6306 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | 6307 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext |
6307 | } # gcc | 6308 | } # gcc |
6309 | ;; | ||
6310 | esac | ||
6308 | { | 6311 | { |
6309 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports compile flag -mretpoline" >&5 | 6312 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports compile flag -mretpoline" >&5 |
6310 | $as_echo_n "checking if $CC supports compile flag -mretpoline... " >&6; } | 6313 | $as_echo_n "checking if $CC supports compile flag -mretpoline... " >&6; } |
@@ -6330,7 +6333,7 @@ int main(int argc, char **argv) { | |||
6330 | _ACEOF | 6333 | _ACEOF |
6331 | if ac_fn_c_try_compile "$LINENO"; then : | 6334 | if ac_fn_c_try_compile "$LINENO"; then : |
6332 | 6335 | ||
6333 | if `grep -i "unrecognized option" conftest.err >/dev/null` | 6336 | if $ac_cv_path_EGREP -i "unrecognized option|warning.*ignored" conftest.err >/dev/null |
6334 | then | 6337 | then |
6335 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | 6338 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 |
6336 | $as_echo "no" >&6; } | 6339 | $as_echo "no" >&6; } |
@@ -6373,9 +6376,17 @@ int main(int argc, char **argv) { | |||
6373 | 6376 | ||
6374 | _ACEOF | 6377 | _ACEOF |
6375 | if ac_fn_c_try_link "$LINENO"; then : | 6378 | if ac_fn_c_try_link "$LINENO"; then : |
6376 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 | 6379 | |
6380 | if $ac_cv_path_EGREP -i "unrecognized option|warning.*ignored" conftest.err >/dev/null | ||
6381 | then | ||
6382 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
6383 | $as_echo "no" >&6; } | ||
6384 | LDFLAGS="$saved_LDFLAGS" | ||
6385 | else | ||
6386 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 | ||
6377 | $as_echo "yes" >&6; } | 6387 | $as_echo "yes" >&6; } |
6378 | LDFLAGS="$saved_LDFLAGS $_define_flag" | 6388 | LDFLAGS="$saved_LDFLAGS $_define_flag" |
6389 | fi | ||
6379 | else | 6390 | else |
6380 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | 6391 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 |
6381 | $as_echo "no" >&6; } | 6392 | $as_echo "no" >&6; } |
@@ -6410,7 +6421,7 @@ int main(int argc, char **argv) { | |||
6410 | _ACEOF | 6421 | _ACEOF |
6411 | if ac_fn_c_try_compile "$LINENO"; then : | 6422 | if ac_fn_c_try_compile "$LINENO"; then : |
6412 | 6423 | ||
6413 | if `grep -i "unrecognized option" conftest.err >/dev/null` | 6424 | if $ac_cv_path_EGREP -i "unrecognized option|warning.*ignored" conftest.err >/dev/null |
6414 | then | 6425 | then |
6415 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | 6426 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 |
6416 | $as_echo "no" >&6; } | 6427 | $as_echo "no" >&6; } |
@@ -6453,9 +6464,17 @@ int main(int argc, char **argv) { | |||
6453 | 6464 | ||
6454 | _ACEOF | 6465 | _ACEOF |
6455 | if ac_fn_c_try_link "$LINENO"; then : | 6466 | if ac_fn_c_try_link "$LINENO"; then : |
6456 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 | 6467 | |
6468 | if $ac_cv_path_EGREP -i "unrecognized option|warning.*ignored" conftest.err >/dev/null | ||
6469 | then | ||
6470 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
6471 | $as_echo "no" >&6; } | ||
6472 | LDFLAGS="$saved_LDFLAGS" | ||
6473 | else | ||
6474 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 | ||
6457 | $as_echo "yes" >&6; } | 6475 | $as_echo "yes" >&6; } |
6458 | LDFLAGS="$saved_LDFLAGS $_define_flag" | 6476 | LDFLAGS="$saved_LDFLAGS $_define_flag" |
6477 | fi | ||
6459 | else | 6478 | else |
6460 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | 6479 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 |
6461 | $as_echo "no" >&6; } | 6480 | $as_echo "no" >&6; } |
@@ -6490,9 +6509,17 @@ int main(int argc, char **argv) { | |||
6490 | 6509 | ||
6491 | _ACEOF | 6510 | _ACEOF |
6492 | if ac_fn_c_try_link "$LINENO"; then : | 6511 | if ac_fn_c_try_link "$LINENO"; then : |
6493 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 | 6512 | |
6513 | if $ac_cv_path_EGREP -i "unrecognized option|warning.*ignored" conftest.err >/dev/null | ||
6514 | then | ||
6515 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
6516 | $as_echo "no" >&6; } | ||
6517 | LDFLAGS="$saved_LDFLAGS" | ||
6518 | else | ||
6519 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 | ||
6494 | $as_echo "yes" >&6; } | 6520 | $as_echo "yes" >&6; } |
6495 | LDFLAGS="$saved_LDFLAGS $_define_flag" | 6521 | LDFLAGS="$saved_LDFLAGS $_define_flag" |
6522 | fi | ||
6496 | else | 6523 | else |
6497 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | 6524 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 |
6498 | $as_echo "no" >&6; } | 6525 | $as_echo "no" >&6; } |
@@ -6527,9 +6554,17 @@ int main(int argc, char **argv) { | |||
6527 | 6554 | ||
6528 | _ACEOF | 6555 | _ACEOF |
6529 | if ac_fn_c_try_link "$LINENO"; then : | 6556 | if ac_fn_c_try_link "$LINENO"; then : |
6530 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 | 6557 | |
6558 | if $ac_cv_path_EGREP -i "unrecognized option|warning.*ignored" conftest.err >/dev/null | ||
6559 | then | ||
6560 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
6561 | $as_echo "no" >&6; } | ||
6562 | LDFLAGS="$saved_LDFLAGS" | ||
6563 | else | ||
6564 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 | ||
6531 | $as_echo "yes" >&6; } | 6565 | $as_echo "yes" >&6; } |
6532 | LDFLAGS="$saved_LDFLAGS $_define_flag" | 6566 | LDFLAGS="$saved_LDFLAGS $_define_flag" |
6567 | fi | ||
6533 | else | 6568 | else |
6534 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | 6569 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 |
6535 | $as_echo "no" >&6; } | 6570 | $as_echo "no" >&6; } |
@@ -6570,7 +6605,7 @@ int main(int argc, char **argv) { | |||
6570 | _ACEOF | 6605 | _ACEOF |
6571 | if ac_fn_c_try_link "$LINENO"; then : | 6606 | if ac_fn_c_try_link "$LINENO"; then : |
6572 | 6607 | ||
6573 | if `grep -i "unrecognized option" conftest.err >/dev/null` | 6608 | if $ac_cv_path_EGREP -i "unrecognized option|warning.*ignored" conftest.err >/dev/null |
6574 | then | 6609 | then |
6575 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | 6610 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 |
6576 | $as_echo "no" >&6; } | 6611 | $as_echo "no" >&6; } |
@@ -6944,6 +6979,7 @@ for ac_header in \ | |||
6944 | sys/prctl.h \ | 6979 | sys/prctl.h \ |
6945 | sys/pstat.h \ | 6980 | sys/pstat.h \ |
6946 | sys/ptrace.h \ | 6981 | sys/ptrace.h \ |
6982 | sys/random.h \ | ||
6947 | sys/select.h \ | 6983 | sys/select.h \ |
6948 | sys/stat.h \ | 6984 | sys/stat.h \ |
6949 | sys/stream.h \ | 6985 | sys/stream.h \ |
@@ -7154,7 +7190,7 @@ case "$host" in | |||
7154 | # Some versions of VAC won't allow macro redefinitions at | 7190 | # Some versions of VAC won't allow macro redefinitions at |
7155 | # -qlanglevel=ansi, and autoconf 2.60 sometimes insists on using that | 7191 | # -qlanglevel=ansi, and autoconf 2.60 sometimes insists on using that |
7156 | # particularly with older versions of vac or xlc. | 7192 | # particularly with older versions of vac or xlc. |
7157 | # It also throws errors about null macro argments, but these are | 7193 | # It also throws errors about null macro arguments, but these are |
7158 | # not fatal. | 7194 | # not fatal. |
7159 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler allows macro redefinitions" >&5 | 7195 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler allows macro redefinitions" >&5 |
7160 | $as_echo_n "checking if compiler allows macro redefinitions... " >&6; } | 7196 | $as_echo_n "checking if compiler allows macro redefinitions... " >&6; } |
@@ -7178,7 +7214,6 @@ else | |||
7178 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | 7214 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 |
7179 | $as_echo "no" >&6; } | 7215 | $as_echo "no" >&6; } |
7180 | CC="`echo $CC | sed 's/-qlanglvl\=ansi//g'`" | 7216 | CC="`echo $CC | sed 's/-qlanglvl\=ansi//g'`" |
7181 | LD="`echo $LD | sed 's/-qlanglvl\=ansi//g'`" | ||
7182 | CFLAGS="`echo $CFLAGS | sed 's/-qlanglvl\=ansi//g'`" | 7217 | CFLAGS="`echo $CFLAGS | sed 's/-qlanglvl\=ansi//g'`" |
7183 | CPPFLAGS="`echo $CPPFLAGS | sed 's/-qlanglvl\=ansi//g'`" | 7218 | CPPFLAGS="`echo $CPPFLAGS | sed 's/-qlanglvl\=ansi//g'`" |
7184 | 7219 | ||
@@ -7497,7 +7532,7 @@ int main(int argc, char **argv) { | |||
7497 | _ACEOF | 7532 | _ACEOF |
7498 | if ac_fn_c_try_compile "$LINENO"; then : | 7533 | if ac_fn_c_try_compile "$LINENO"; then : |
7499 | 7534 | ||
7500 | if `grep -i "unrecognized option" conftest.err >/dev/null` | 7535 | if $ac_cv_path_EGREP -i "unrecognized option|warning.*ignored" conftest.err >/dev/null |
7501 | then | 7536 | then |
7502 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | 7537 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 |
7503 | $as_echo "no" >&6; } | 7538 | $as_echo "no" >&6; } |
@@ -10195,7 +10230,7 @@ fi | |||
10195 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $func_calloc_0_nonnull" >&5 | 10230 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $func_calloc_0_nonnull" >&5 |
10196 | $as_echo "$func_calloc_0_nonnull" >&6; } | 10231 | $as_echo "$func_calloc_0_nonnull" >&6; } |
10197 | 10232 | ||
10198 | if test "x$func_calloc_0_nonnull" == "xyes"; then | 10233 | if test "x$func_calloc_0_nonnull" = "xyes"; then |
10199 | 10234 | ||
10200 | $as_echo "#define HAVE_CALLOC 1" >>confdefs.h | 10235 | $as_echo "#define HAVE_CALLOC 1" >>confdefs.h |
10201 | 10236 | ||
@@ -10387,94 +10422,6 @@ else | |||
10387 | $as_echo "no" >&6; } | 10422 | $as_echo "no" >&6; } |
10388 | fi | 10423 | fi |
10389 | 10424 | ||
10390 | # Check whether user wants S/Key support | ||
10391 | SKEY_MSG="no" | ||
10392 | |||
10393 | # Check whether --with-skey was given. | ||
10394 | if test "${with_skey+set}" = set; then : | ||
10395 | withval=$with_skey; | ||
10396 | if test "x$withval" != "xno" ; then | ||
10397 | |||
10398 | if test "x$withval" != "xyes" ; then | ||
10399 | CPPFLAGS="$CPPFLAGS -I${withval}/include" | ||
10400 | LDFLAGS="$LDFLAGS -L${withval}/lib" | ||
10401 | fi | ||
10402 | |||
10403 | |||
10404 | $as_echo "#define SKEY 1" >>confdefs.h | ||
10405 | |||
10406 | LIBS="-lskey $LIBS" | ||
10407 | SKEY_MSG="yes" | ||
10408 | |||
10409 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for s/key support" >&5 | ||
10410 | $as_echo_n "checking for s/key support... " >&6; } | ||
10411 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
10412 | /* end confdefs.h. */ | ||
10413 | |||
10414 | #include <stdio.h> | ||
10415 | #include <skey.h> | ||
10416 | |||
10417 | int | ||
10418 | main () | ||
10419 | { | ||
10420 | |||
10421 | char *ff = skey_keyinfo(""); ff=""; | ||
10422 | exit(0); | ||
10423 | |||
10424 | ; | ||
10425 | return 0; | ||
10426 | } | ||
10427 | _ACEOF | ||
10428 | if ac_fn_c_try_link "$LINENO"; then : | ||
10429 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 | ||
10430 | $as_echo "yes" >&6; } | ||
10431 | else | ||
10432 | |||
10433 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
10434 | $as_echo "no" >&6; } | ||
10435 | as_fn_error $? "** Incomplete or missing s/key libraries." "$LINENO" 5 | ||
10436 | |||
10437 | fi | ||
10438 | rm -f core conftest.err conftest.$ac_objext \ | ||
10439 | conftest$ac_exeext conftest.$ac_ext | ||
10440 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking if skeychallenge takes 4 arguments" >&5 | ||
10441 | $as_echo_n "checking if skeychallenge takes 4 arguments... " >&6; } | ||
10442 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
10443 | /* end confdefs.h. */ | ||
10444 | |||
10445 | #include <stdio.h> | ||
10446 | #include <skey.h> | ||
10447 | |||
10448 | int | ||
10449 | main () | ||
10450 | { | ||
10451 | |||
10452 | (void)skeychallenge(NULL,"name","",0); | ||
10453 | |||
10454 | ; | ||
10455 | return 0; | ||
10456 | } | ||
10457 | _ACEOF | ||
10458 | if ac_fn_c_try_compile "$LINENO"; then : | ||
10459 | |||
10460 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 | ||
10461 | $as_echo "yes" >&6; } | ||
10462 | |||
10463 | $as_echo "#define SKEYCHALLENGE_4ARG 1" >>confdefs.h | ||
10464 | |||
10465 | else | ||
10466 | |||
10467 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
10468 | $as_echo "no" >&6; } | ||
10469 | |||
10470 | fi | ||
10471 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | ||
10472 | fi | ||
10473 | |||
10474 | |||
10475 | fi | ||
10476 | |||
10477 | |||
10478 | # Check whether user wants to use ldns | 10425 | # Check whether user wants to use ldns |
10479 | LDNS_MSG="no" | 10426 | LDNS_MSG="no" |
10480 | 10427 | ||
@@ -11074,7 +11021,7 @@ int main(int argc, char **argv) { | |||
11074 | _ACEOF | 11021 | _ACEOF |
11075 | if ac_fn_c_try_compile "$LINENO"; then : | 11022 | if ac_fn_c_try_compile "$LINENO"; then : |
11076 | 11023 | ||
11077 | if `grep -i "unrecognized option" conftest.err >/dev/null` | 11024 | if $ac_cv_path_EGREP -i "unrecognized option|warning.*ignored" conftest.err >/dev/null |
11078 | then | 11025 | then |
11079 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | 11026 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 |
11080 | $as_echo "no" >&6; } | 11027 | $as_echo "no" >&6; } |
@@ -11117,9 +11064,17 @@ int main(int argc, char **argv) { | |||
11117 | 11064 | ||
11118 | _ACEOF | 11065 | _ACEOF |
11119 | if ac_fn_c_try_link "$LINENO"; then : | 11066 | if ac_fn_c_try_link "$LINENO"; then : |
11120 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 | 11067 | |
11068 | if $ac_cv_path_EGREP -i "unrecognized option|warning.*ignored" conftest.err >/dev/null | ||
11069 | then | ||
11070 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
11071 | $as_echo "no" >&6; } | ||
11072 | LDFLAGS="$saved_LDFLAGS" | ||
11073 | else | ||
11074 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 | ||
11121 | $as_echo "yes" >&6; } | 11075 | $as_echo "yes" >&6; } |
11122 | LDFLAGS="$saved_LDFLAGS $_define_flag" | 11076 | LDFLAGS="$saved_LDFLAGS $_define_flag" |
11077 | fi | ||
11123 | else | 11078 | else |
11124 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | 11079 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 |
11125 | $as_echo "no" >&6; } | 11080 | $as_echo "no" >&6; } |
@@ -11178,6 +11133,7 @@ for ac_func in \ | |||
11178 | getaddrinfo \ | 11133 | getaddrinfo \ |
11179 | getcwd \ | 11134 | getcwd \ |
11180 | getgrouplist \ | 11135 | getgrouplist \ |
11136 | getline \ | ||
11181 | getnameinfo \ | 11137 | getnameinfo \ |
11182 | getopt \ | 11138 | getopt \ |
11183 | getpagesize \ | 11139 | getpagesize \ |
@@ -11186,6 +11142,7 @@ for ac_func in \ | |||
11186 | getpgid \ | 11142 | getpgid \ |
11187 | _getpty \ | 11143 | _getpty \ |
11188 | getrlimit \ | 11144 | getrlimit \ |
11145 | getrandom \ | ||
11189 | getsid \ | 11146 | getsid \ |
11190 | getttyent \ | 11147 | getttyent \ |
11191 | glob \ | 11148 | glob \ |
@@ -13962,7 +13919,7 @@ LIBS="$saved_LIBS" | |||
13962 | 13919 | ||
13963 | ### Configure cryptographic random number support | 13920 | ### Configure cryptographic random number support |
13964 | 13921 | ||
13965 | # Check wheter OpenSSL seeds itself | 13922 | # Check whether OpenSSL seeds itself |
13966 | if test "x$openssl" = "xyes" ; then | 13923 | if test "x$openssl" = "xyes" ; then |
13967 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether OpenSSL's PRNG is internally seeded" >&5 | 13924 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether OpenSSL's PRNG is internally seeded" >&5 |
13968 | $as_echo_n "checking whether OpenSSL's PRNG is internally seeded... " >&6; } | 13925 | $as_echo_n "checking whether OpenSSL's PRNG is internally seeded... " >&6; } |
@@ -16072,7 +16029,7 @@ _ACEOF | |||
16072 | fi | 16029 | fi |
16073 | 16030 | ||
16074 | 16031 | ||
16075 | # We need int64_t or else certian parts of the compile will fail. | 16032 | # We need int64_t or else certain parts of the compile will fail. |
16076 | if test "x$ac_cv_have_int64_t" = "xno" && \ | 16033 | if test "x$ac_cv_have_int64_t" = "xno" && \ |
16077 | test "x$ac_cv_sizeof_long_int" != "x8" && \ | 16034 | test "x$ac_cv_sizeof_long_int" != "x8" && \ |
16078 | test "x$ac_cv_sizeof_long_long_int" = "x0" ; then | 16035 | test "x$ac_cv_sizeof_long_long_int" = "x0" ; then |
@@ -21030,7 +20987,6 @@ echo " PAM support: $PAM_MSG" | |||
21030 | echo " OSF SIA support: $SIA_MSG" | 20987 | echo " OSF SIA support: $SIA_MSG" |
21031 | echo " KerberosV support: $KRB5_MSG" | 20988 | echo " KerberosV support: $KRB5_MSG" |
21032 | echo " SELinux support: $SELINUX_MSG" | 20989 | echo " SELinux support: $SELINUX_MSG" |
21033 | echo " S/KEY support: $SKEY_MSG" | ||
21034 | echo " MD5 password support: $MD5_MSG" | 20990 | echo " MD5 password support: $MD5_MSG" |
21035 | echo " libedit support: $LIBEDIT_MSG" | 20991 | echo " libedit support: $LIBEDIT_MSG" |
21036 | echo " libldns support: $LDNS_MSG" | 20992 | echo " libldns support: $LDNS_MSG" |
diff --git a/configure.ac b/configure.ac index 663062bef..83e530750 100644 --- a/configure.ac +++ b/configure.ac | |||
@@ -83,9 +83,11 @@ if test ! -z "$PATH_PASSWD_PROG" ; then | |||
83 | [Full path of your "passwd" program]) | 83 | [Full path of your "passwd" program]) |
84 | fi | 84 | fi |
85 | 85 | ||
86 | if test -z "$LD" ; then | 86 | dnl Since autoconf doesn't support it very well, we no longer allow users to |
87 | LD=$CC | 87 | dnl override LD, however keeping the hook here for now in case there's a use |
88 | fi | 88 | dnl use case we overlooked and someone needs to re-enable it. Unless a good |
89 | dnl reason is found we'll be removing this in future. | ||
90 | LD="$CC" | ||
89 | AC_SUBST([LD]) | 91 | AC_SUBST([LD]) |
90 | 92 | ||
91 | AC_C_INLINE | 93 | AC_C_INLINE |
@@ -162,8 +164,15 @@ if test "$GCC" = "yes" || test "$GCC" = "egcs"; then | |||
162 | OSSH_CHECK_CFLAG_COMPILE([-Wunused-result], [-Wno-unused-result]) | 164 | OSSH_CHECK_CFLAG_COMPILE([-Wunused-result], [-Wno-unused-result]) |
163 | OSSH_CHECK_CFLAG_COMPILE([-fno-strict-aliasing]) | 165 | OSSH_CHECK_CFLAG_COMPILE([-fno-strict-aliasing]) |
164 | if test "x$use_toolchain_hardening" = "x1"; then | 166 | if test "x$use_toolchain_hardening" = "x1"; then |
165 | OSSH_CHECK_CFLAG_COMPILE([-mfunction-return=thunk]) # gcc | 167 | # Cygwin GCC 7.x allows thunking on the CLI, but produces non-working |
166 | OSSH_CHECK_CFLAG_COMPILE([-mindirect-branch=thunk]) # gcc | 168 | # code. Unfortunately you only notice this at link time. |
169 | case "$host" in | ||
170 | *-*-cygwin*) ;; | ||
171 | *) | ||
172 | OSSH_CHECK_CFLAG_COMPILE([-mfunction-return=thunk]) # gcc | ||
173 | OSSH_CHECK_CFLAG_COMPILE([-mindirect-branch=thunk]) # gcc | ||
174 | ;; | ||
175 | esac | ||
167 | OSSH_CHECK_CFLAG_COMPILE([-mretpoline]) # clang | 176 | OSSH_CHECK_CFLAG_COMPILE([-mretpoline]) # clang |
168 | OSSH_CHECK_LDFLAG_LINK([-Wl,-z,retpolineplt]) | 177 | OSSH_CHECK_LDFLAG_LINK([-Wl,-z,retpolineplt]) |
169 | OSSH_CHECK_CFLAG_COMPILE([-D_FORTIFY_SOURCE=2]) | 178 | OSSH_CHECK_CFLAG_COMPILE([-D_FORTIFY_SOURCE=2]) |
@@ -274,7 +283,7 @@ typedef void foo(const char *, ...) __attribute__((format(printf, 1, 2)));]], | |||
274 | [ AC_MSG_RESULT([yes]) ], | 283 | [ AC_MSG_RESULT([yes]) ], |
275 | [ AC_MSG_RESULT([no]) | 284 | [ AC_MSG_RESULT([no]) |
276 | AC_DEFINE(NO_ATTRIBUTE_ON_PROTOTYPE_ARGS, 1, | 285 | AC_DEFINE(NO_ATTRIBUTE_ON_PROTOTYPE_ARGS, 1, |
277 | [compiler does not accept __attribute__ on protoype args]) ] | 286 | [compiler does not accept __attribute__ on prototype args]) ] |
278 | ) | 287 | ) |
279 | 288 | ||
280 | if test "x$no_attrib_nonnull" != "x1" ; then | 289 | if test "x$no_attrib_nonnull" != "x1" ; then |
@@ -413,6 +422,7 @@ AC_CHECK_HEADERS([ \ | |||
413 | sys/prctl.h \ | 422 | sys/prctl.h \ |
414 | sys/pstat.h \ | 423 | sys/pstat.h \ |
415 | sys/ptrace.h \ | 424 | sys/ptrace.h \ |
425 | sys/random.h \ | ||
416 | sys/select.h \ | 426 | sys/select.h \ |
417 | sys/stat.h \ | 427 | sys/stat.h \ |
418 | sys/stream.h \ | 428 | sys/stream.h \ |
@@ -514,7 +524,7 @@ case "$host" in | |||
514 | # Some versions of VAC won't allow macro redefinitions at | 524 | # Some versions of VAC won't allow macro redefinitions at |
515 | # -qlanglevel=ansi, and autoconf 2.60 sometimes insists on using that | 525 | # -qlanglevel=ansi, and autoconf 2.60 sometimes insists on using that |
516 | # particularly with older versions of vac or xlc. | 526 | # particularly with older versions of vac or xlc. |
517 | # It also throws errors about null macro argments, but these are | 527 | # It also throws errors about null macro arguments, but these are |
518 | # not fatal. | 528 | # not fatal. |
519 | AC_MSG_CHECKING([if compiler allows macro redefinitions]) | 529 | AC_MSG_CHECKING([if compiler allows macro redefinitions]) |
520 | AC_COMPILE_IFELSE( | 530 | AC_COMPILE_IFELSE( |
@@ -525,7 +535,6 @@ case "$host" in | |||
525 | [ AC_MSG_RESULT([yes]) ], | 535 | [ AC_MSG_RESULT([yes]) ], |
526 | [ AC_MSG_RESULT([no]) | 536 | [ AC_MSG_RESULT([no]) |
527 | CC="`echo $CC | sed 's/-qlanglvl\=ansi//g'`" | 537 | CC="`echo $CC | sed 's/-qlanglvl\=ansi//g'`" |
528 | LD="`echo $LD | sed 's/-qlanglvl\=ansi//g'`" | ||
529 | CFLAGS="`echo $CFLAGS | sed 's/-qlanglvl\=ansi//g'`" | 538 | CFLAGS="`echo $CFLAGS | sed 's/-qlanglvl\=ansi//g'`" |
530 | CPPFLAGS="`echo $CPPFLAGS | sed 's/-qlanglvl\=ansi//g'`" | 539 | CPPFLAGS="`echo $CPPFLAGS | sed 's/-qlanglvl\=ansi//g'`" |
531 | ] | 540 | ] |
@@ -753,7 +762,7 @@ main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16)) | |||
753 | PATH="$PATH:/usr/etc" | 762 | PATH="$PATH:/usr/etc" |
754 | AC_DEFINE([WITH_IRIX_ARRAY], [1], | 763 | AC_DEFINE([WITH_IRIX_ARRAY], [1], |
755 | [Define if you have/want arrays | 764 | [Define if you have/want arrays |
756 | (cluster-wide session managment, not C arrays)]) | 765 | (cluster-wide session management, not C arrays)]) |
757 | AC_DEFINE([WITH_IRIX_PROJECT], [1], | 766 | AC_DEFINE([WITH_IRIX_PROJECT], [1], |
758 | [Define if you want IRIX project management]) | 767 | [Define if you want IRIX project management]) |
759 | AC_DEFINE([WITH_IRIX_AUDIT], [1], | 768 | AC_DEFINE([WITH_IRIX_AUDIT], [1], |
@@ -1398,7 +1407,7 @@ AC_RUN_IFELSE( | |||
1398 | ) | 1407 | ) |
1399 | AC_MSG_RESULT([$func_calloc_0_nonnull]) | 1408 | AC_MSG_RESULT([$func_calloc_0_nonnull]) |
1400 | 1409 | ||
1401 | if test "x$func_calloc_0_nonnull" == "xyes"; then | 1410 | if test "x$func_calloc_0_nonnull" = "xyes"; then |
1402 | AC_DEFINE(HAVE_CALLOC, 1, [calloc(0, x) returns non-null]) | 1411 | AC_DEFINE(HAVE_CALLOC, 1, [calloc(0, x) returns non-null]) |
1403 | else | 1412 | else |
1404 | AC_DEFINE(HAVE_CALLOC, 0, [calloc(0, x) returns NULL]) | 1413 | AC_DEFINE(HAVE_CALLOC, 0, [calloc(0, x) returns NULL]) |
@@ -1493,55 +1502,6 @@ else | |||
1493 | AC_MSG_RESULT([no]) | 1502 | AC_MSG_RESULT([no]) |
1494 | fi | 1503 | fi |
1495 | 1504 | ||
1496 | # Check whether user wants S/Key support | ||
1497 | SKEY_MSG="no" | ||
1498 | AC_ARG_WITH([skey], | ||
1499 | [ --with-skey[[=PATH]] Enable S/Key support (optionally in PATH)], | ||
1500 | [ | ||
1501 | if test "x$withval" != "xno" ; then | ||
1502 | |||
1503 | if test "x$withval" != "xyes" ; then | ||
1504 | CPPFLAGS="$CPPFLAGS -I${withval}/include" | ||
1505 | LDFLAGS="$LDFLAGS -L${withval}/lib" | ||
1506 | fi | ||
1507 | |||
1508 | AC_DEFINE([SKEY], [1], [Define if you want S/Key support]) | ||
1509 | LIBS="-lskey $LIBS" | ||
1510 | SKEY_MSG="yes" | ||
1511 | |||
1512 | AC_MSG_CHECKING([for s/key support]) | ||
1513 | AC_LINK_IFELSE( | ||
1514 | [AC_LANG_PROGRAM([[ | ||
1515 | #include <stdio.h> | ||
1516 | #include <skey.h> | ||
1517 | ]], [[ | ||
1518 | char *ff = skey_keyinfo(""); ff=""; | ||
1519 | exit(0); | ||
1520 | ]])], | ||
1521 | [AC_MSG_RESULT([yes])], | ||
1522 | [ | ||
1523 | AC_MSG_RESULT([no]) | ||
1524 | AC_MSG_ERROR([** Incomplete or missing s/key libraries.]) | ||
1525 | ]) | ||
1526 | AC_MSG_CHECKING([if skeychallenge takes 4 arguments]) | ||
1527 | AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ | ||
1528 | #include <stdio.h> | ||
1529 | #include <skey.h> | ||
1530 | ]], [[ | ||
1531 | (void)skeychallenge(NULL,"name","",0); | ||
1532 | ]])], | ||
1533 | [ | ||
1534 | AC_MSG_RESULT([yes]) | ||
1535 | AC_DEFINE([SKEYCHALLENGE_4ARG], [1], | ||
1536 | [Define if your skeychallenge() | ||
1537 | function takes 4 arguments (NetBSD)])], | ||
1538 | [ | ||
1539 | AC_MSG_RESULT([no]) | ||
1540 | ]) | ||
1541 | fi | ||
1542 | ] | ||
1543 | ) | ||
1544 | |||
1545 | # Check whether user wants to use ldns | 1505 | # Check whether user wants to use ldns |
1546 | LDNS_MSG="no" | 1506 | LDNS_MSG="no" |
1547 | AC_ARG_WITH(ldns, | 1507 | AC_ARG_WITH(ldns, |
@@ -1778,6 +1738,7 @@ AC_CHECK_FUNCS([ \ | |||
1778 | getaddrinfo \ | 1738 | getaddrinfo \ |
1779 | getcwd \ | 1739 | getcwd \ |
1780 | getgrouplist \ | 1740 | getgrouplist \ |
1741 | getline \ | ||
1781 | getnameinfo \ | 1742 | getnameinfo \ |
1782 | getopt \ | 1743 | getopt \ |
1783 | getpagesize \ | 1744 | getpagesize \ |
@@ -1786,6 +1747,7 @@ AC_CHECK_FUNCS([ \ | |||
1786 | getpgid \ | 1747 | getpgid \ |
1787 | _getpty \ | 1748 | _getpty \ |
1788 | getrlimit \ | 1749 | getrlimit \ |
1750 | getrandom \ | ||
1789 | getsid \ | 1751 | getsid \ |
1790 | getttyent \ | 1752 | getttyent \ |
1791 | glob \ | 1753 | glob \ |
@@ -3005,7 +2967,7 @@ LIBS="$saved_LIBS" | |||
3005 | 2967 | ||
3006 | ### Configure cryptographic random number support | 2968 | ### Configure cryptographic random number support |
3007 | 2969 | ||
3008 | # Check wheter OpenSSL seeds itself | 2970 | # Check whether OpenSSL seeds itself |
3009 | if test "x$openssl" = "xyes" ; then | 2971 | if test "x$openssl" = "xyes" ; then |
3010 | AC_MSG_CHECKING([whether OpenSSL's PRNG is internally seeded]) | 2972 | AC_MSG_CHECKING([whether OpenSSL's PRNG is internally seeded]) |
3011 | AC_RUN_IFELSE( | 2973 | AC_RUN_IFELSE( |
@@ -3904,7 +3866,7 @@ fi | |||
3904 | 3866 | ||
3905 | AC_CHECK_TYPES([struct timespec]) | 3867 | AC_CHECK_TYPES([struct timespec]) |
3906 | 3868 | ||
3907 | # We need int64_t or else certian parts of the compile will fail. | 3869 | # We need int64_t or else certain parts of the compile will fail. |
3908 | if test "x$ac_cv_have_int64_t" = "xno" && \ | 3870 | if test "x$ac_cv_have_int64_t" = "xno" && \ |
3909 | test "x$ac_cv_sizeof_long_int" != "x8" && \ | 3871 | test "x$ac_cv_sizeof_long_int" != "x8" && \ |
3910 | test "x$ac_cv_sizeof_long_long_int" = "x0" ; then | 3872 | test "x$ac_cv_sizeof_long_long_int" = "x0" ; then |
@@ -5215,7 +5177,6 @@ echo " PAM support: $PAM_MSG" | |||
5215 | echo " OSF SIA support: $SIA_MSG" | 5177 | echo " OSF SIA support: $SIA_MSG" |
5216 | echo " KerberosV support: $KRB5_MSG" | 5178 | echo " KerberosV support: $KRB5_MSG" |
5217 | echo " SELinux support: $SELINUX_MSG" | 5179 | echo " SELinux support: $SELINUX_MSG" |
5218 | echo " S/KEY support: $SKEY_MSG" | ||
5219 | echo " MD5 password support: $MD5_MSG" | 5180 | echo " MD5 password support: $MD5_MSG" |
5220 | echo " libedit support: $LIBEDIT_MSG" | 5181 | echo " libedit support: $LIBEDIT_MSG" |
5221 | echo " libldns support: $LDNS_MSG" | 5182 | echo " libldns support: $LDNS_MSG" |
diff --git a/contrib/aix/buildbff.sh b/contrib/aix/buildbff.sh index 00b384dc7..55113d9d3 100755 --- a/contrib/aix/buildbff.sh +++ b/contrib/aix/buildbff.sh | |||
@@ -240,21 +240,7 @@ echo | |||
240 | 240 | ||
241 | # Generate keys unless they already exist | 241 | # Generate keys unless they already exist |
242 | echo Creating host keys if required. | 242 | echo Creating host keys if required. |
243 | if [ -f "$sysconfdir/ssh_host_key" ] ; then | 243 | $bindir/ssh-keygen -A |
244 | echo "$sysconfdir/ssh_host_key already exists, skipping." | ||
245 | else | ||
246 | $bindir/ssh-keygen -t rsa1 -f $sysconfdir/ssh_host_key -N "" | ||
247 | fi | ||
248 | if [ -f $sysconfdir/ssh_host_dsa_key ] ; then | ||
249 | echo "$sysconfdir/ssh_host_dsa_key already exists, skipping." | ||
250 | else | ||
251 | $bindir/ssh-keygen -t dsa -f $sysconfdir/ssh_host_dsa_key -N "" | ||
252 | fi | ||
253 | if [ -f $sysconfdir/ssh_host_rsa_key ] ; then | ||
254 | echo "$sysconfdir/ssh_host_rsa_key already exists, skipping." | ||
255 | else | ||
256 | $bindir/ssh-keygen -t rsa -f $sysconfdir/ssh_host_rsa_key -N "" | ||
257 | fi | ||
258 | echo | 244 | echo |
259 | 245 | ||
260 | # Set startup command depending on SRC support | 246 | # Set startup command depending on SRC support |
diff --git a/contrib/cygwin/ssh-host-config b/contrib/cygwin/ssh-host-config index db6aaa08a..261020af3 100644 --- a/contrib/cygwin/ssh-host-config +++ b/contrib/cygwin/ssh-host-config | |||
@@ -22,7 +22,7 @@ | |||
22 | 22 | ||
23 | CSIH_SCRIPT=/usr/share/csih/cygwin-service-installation-helper.sh | 23 | CSIH_SCRIPT=/usr/share/csih/cygwin-service-installation-helper.sh |
24 | 24 | ||
25 | # List of apps used. This is checkad for existance in csih_sanity_check | 25 | # List of apps used. This is checkad for existence in csih_sanity_check |
26 | # Don't use *any* transient commands before sourcing the csih helper script, | 26 | # Don't use *any* transient commands before sourcing the csih helper script, |
27 | # otherwise the sanity checks are short-circuited. | 27 | # otherwise the sanity checks are short-circuited. |
28 | declare -a csih_required_commands=( | 28 | declare -a csih_required_commands=( |
diff --git a/contrib/cygwin/ssh-user-config b/contrib/cygwin/ssh-user-config index 33dc0cbea..6fa4bb3ea 100644 --- a/contrib/cygwin/ssh-user-config +++ b/contrib/cygwin/ssh-user-config | |||
@@ -127,7 +127,7 @@ readonly -f check_user_homedir | |||
127 | check_user_dot_ssh_dir() { | 127 | check_user_dot_ssh_dir() { |
128 | if [ -e "${pwdhome}/.ssh" -a ! -d "${pwdhome}/.ssh" ] | 128 | if [ -e "${pwdhome}/.ssh" -a ! -d "${pwdhome}/.ssh" ] |
129 | then | 129 | then |
130 | csih_error "${pwdhome}/.ssh is existant but not a directory. Cannot create user identity files." | 130 | csih_error "${pwdhome}/.ssh is existent but not a directory. Cannot create user identity files." |
131 | fi | 131 | fi |
132 | 132 | ||
133 | if [ ! -e "${pwdhome}/.ssh" ] | 133 | if [ ! -e "${pwdhome}/.ssh" ] |
diff --git a/contrib/redhat/openssh.spec b/contrib/redhat/openssh.spec index a0d5e2071..8e9594d9c 100644 --- a/contrib/redhat/openssh.spec +++ b/contrib/redhat/openssh.spec | |||
@@ -1,4 +1,4 @@ | |||
1 | %define ver 7.7p1 | 1 | %define ver 7.8p1 |
2 | %define rel 1%{?dist} | 2 | %define rel 1%{?dist} |
3 | 3 | ||
4 | # OpenSSH privilege separation requires a user & group ID | 4 | # OpenSSH privilege separation requires a user & group ID |
diff --git a/contrib/solaris/README b/contrib/solaris/README index fefdd4b53..cabecaa1a 100644 --- a/contrib/solaris/README +++ b/contrib/solaris/README | |||
@@ -5,7 +5,7 @@ SVR4 style package tools. | |||
5 | 5 | ||
6 | The build process is called a 'dummy install'.. Which means the software does | 6 | The build process is called a 'dummy install'.. Which means the software does |
7 | a "make install-nokeys DESTDIR=[fakeroot]". This way all manpages should | 7 | a "make install-nokeys DESTDIR=[fakeroot]". This way all manpages should |
8 | be handled correctly and key are defered until the first time the sshd | 8 | be handled correctly and key are deferred until the first time the sshd |
9 | is started. | 9 | is started. |
10 | 10 | ||
11 | Directions: | 11 | Directions: |
diff --git a/contrib/suse/openssh.spec b/contrib/suse/openssh.spec index d9c4298f1..9a1168f01 100644 --- a/contrib/suse/openssh.spec +++ b/contrib/suse/openssh.spec | |||
@@ -13,7 +13,7 @@ | |||
13 | 13 | ||
14 | Summary: OpenSSH, a free Secure Shell (SSH) protocol implementation | 14 | Summary: OpenSSH, a free Secure Shell (SSH) protocol implementation |
15 | Name: openssh | 15 | Name: openssh |
16 | Version: 7.7p1 | 16 | Version: 7.8p1 |
17 | URL: https://www.openssh.com/ | 17 | URL: https://www.openssh.com/ |
18 | Release: 1 | 18 | Release: 1 |
19 | Source0: openssh-%{version}.tar.gz | 19 | Source0: openssh-%{version}.tar.gz |
@@ -56,7 +56,7 @@ arbitrary TCP/IP ports can also be forwarded over the secure channel. | |||
56 | 56 | ||
57 | OpenSSH is OpenBSD's rework of the last free version of SSH, bringing it | 57 | OpenSSH is OpenBSD's rework of the last free version of SSH, bringing it |
58 | up to date in terms of security and features, as well as removing all | 58 | up to date in terms of security and features, as well as removing all |
59 | patented algorithms to seperate libraries (OpenSSL). | 59 | patented algorithms to separate libraries (OpenSSL). |
60 | 60 | ||
61 | This package includes all files necessary for both the OpenSSH | 61 | This package includes all files necessary for both the OpenSSH |
62 | client and server. | 62 | client and server. |
@@ -70,7 +70,7 @@ arbitrary TCP/IP ports can also be forwarded over the secure channel. | |||
70 | 70 | ||
71 | OpenSSH is OpenBSD's rework of the last free version of SSH, bringing it | 71 | OpenSSH is OpenBSD's rework of the last free version of SSH, bringing it |
72 | up to date in terms of security and features, as well as removing all | 72 | up to date in terms of security and features, as well as removing all |
73 | patented algorithms to seperate libraries (OpenSSL). | 73 | patented algorithms to separate libraries (OpenSSL). |
74 | 74 | ||
75 | This package contains an X Window System passphrase dialog for OpenSSH. | 75 | This package contains an X Window System passphrase dialog for OpenSSH. |
76 | 76 | ||
@@ -660,12 +660,6 @@ struct winsize { | |||
660 | # define krb5_get_err_text(context,code) error_message(code) | 660 | # define krb5_get_err_text(context,code) error_message(code) |
661 | #endif | 661 | #endif |
662 | 662 | ||
663 | #if defined(SKEYCHALLENGE_4ARG) | ||
664 | # define _compat_skeychallenge(a,b,c,d) skeychallenge(a,b,c,d) | ||
665 | #else | ||
666 | # define _compat_skeychallenge(a,b,c,d) skeychallenge(a,b,c) | ||
667 | #endif | ||
668 | |||
669 | /* Maximum number of file descriptors available */ | 663 | /* Maximum number of file descriptors available */ |
670 | #ifdef HAVE_SYSCONF | 664 | #ifdef HAVE_SYSCONF |
671 | # define SSH_SYSFDMAX sysconf(_SC_OPEN_MAX) | 665 | # define SSH_SYSFDMAX sysconf(_SC_OPEN_MAX) |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: dh.c,v 1.63 2018/02/07 02:06:50 jsing Exp $ */ | 1 | /* $OpenBSD: dh.c,v 1.66 2018/08/04 00:55:06 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2000 Niels Provos. All rights reserved. | 3 | * Copyright (c) 2000 Niels Provos. All rights reserved. |
4 | * | 4 | * |
@@ -145,9 +145,9 @@ DH * | |||
145 | choose_dh(int min, int wantbits, int max) | 145 | choose_dh(int min, int wantbits, int max) |
146 | { | 146 | { |
147 | FILE *f; | 147 | FILE *f; |
148 | char line[4096]; | 148 | char *line = NULL; |
149 | int best, bestcount, which; | 149 | size_t linesize = 0; |
150 | int linenum; | 150 | int best, bestcount, which, linenum; |
151 | struct dhgroup dhg; | 151 | struct dhgroup dhg; |
152 | 152 | ||
153 | if ((f = fopen(_PATH_DH_MODULI, "r")) == NULL) { | 153 | if ((f = fopen(_PATH_DH_MODULI, "r")) == NULL) { |
@@ -158,7 +158,7 @@ choose_dh(int min, int wantbits, int max) | |||
158 | 158 | ||
159 | linenum = 0; | 159 | linenum = 0; |
160 | best = bestcount = 0; | 160 | best = bestcount = 0; |
161 | while (fgets(line, sizeof(line), f)) { | 161 | while (getline(&line, &linesize, f) != -1) { |
162 | linenum++; | 162 | linenum++; |
163 | if (!parse_prime(linenum, line, &dhg)) | 163 | if (!parse_prime(linenum, line, &dhg)) |
164 | continue; | 164 | continue; |
@@ -176,6 +176,9 @@ choose_dh(int min, int wantbits, int max) | |||
176 | if (dhg.size == best) | 176 | if (dhg.size == best) |
177 | bestcount++; | 177 | bestcount++; |
178 | } | 178 | } |
179 | free(line); | ||
180 | line = NULL; | ||
181 | linesize = 0; | ||
179 | rewind(f); | 182 | rewind(f); |
180 | 183 | ||
181 | if (bestcount == 0) { | 184 | if (bestcount == 0) { |
@@ -186,7 +189,7 @@ choose_dh(int min, int wantbits, int max) | |||
186 | 189 | ||
187 | linenum = 0; | 190 | linenum = 0; |
188 | which = arc4random_uniform(bestcount); | 191 | which = arc4random_uniform(bestcount); |
189 | while (fgets(line, sizeof(line), f)) { | 192 | while (getline(&line, &linesize, f) != -1) { |
190 | if (!parse_prime(linenum, line, &dhg)) | 193 | if (!parse_prime(linenum, line, &dhg)) |
191 | continue; | 194 | continue; |
192 | if ((dhg.size > max || dhg.size < min) || | 195 | if ((dhg.size > max || dhg.size < min) || |
@@ -198,6 +201,8 @@ choose_dh(int min, int wantbits, int max) | |||
198 | } | 201 | } |
199 | break; | 202 | break; |
200 | } | 203 | } |
204 | free(line); | ||
205 | line = NULL; | ||
201 | fclose(f); | 206 | fclose(f); |
202 | if (linenum != which+1) { | 207 | if (linenum != which+1) { |
203 | logit("WARNING: line %d disappeared in %s, giving up", | 208 | logit("WARNING: line %d disappeared in %s, giving up", |
@@ -274,6 +279,7 @@ dh_gen_key(DH *dh, int need) | |||
274 | if (DH_generate_key(dh) == 0 || | 279 | if (DH_generate_key(dh) == 0 || |
275 | !dh_pub_is_valid(dh, dh->pub_key)) { | 280 | !dh_pub_is_valid(dh, dh->pub_key)) { |
276 | BN_clear_free(dh->priv_key); | 281 | BN_clear_free(dh->priv_key); |
282 | dh->priv_key = NULL; | ||
277 | return SSH_ERR_LIBCRYPTO_ERROR; | 283 | return SSH_ERR_LIBCRYPTO_ERROR; |
278 | } | 284 | } |
279 | return 0; | 285 | return 0; |
@@ -53,7 +53,8 @@ | |||
53 | #include "atomicio.h" | 53 | #include "atomicio.h" |
54 | #include "pathnames.h" | 54 | #include "pathnames.h" |
55 | #include "log.h" | 55 | #include "log.h" |
56 | #include "buffer.h" | 56 | #include "sshbuf.h" |
57 | #include "ssherr.h" | ||
57 | 58 | ||
58 | /* | 59 | /* |
59 | * Portable OpenSSH PRNG seeding: | 60 | * Portable OpenSSH PRNG seeding: |
@@ -181,29 +182,34 @@ seed_from_prngd(unsigned char *buf, size_t bytes) | |||
181 | } | 182 | } |
182 | 183 | ||
183 | void | 184 | void |
184 | rexec_send_rng_seed(Buffer *m) | 185 | rexec_send_rng_seed(struct sshbuf *m) |
185 | { | 186 | { |
186 | u_char buf[RANDOM_SEED_SIZE]; | 187 | u_char buf[RANDOM_SEED_SIZE]; |
188 | size_t len = sizeof(buf); | ||
189 | int r; | ||
187 | 190 | ||
188 | if (RAND_bytes(buf, sizeof(buf)) <= 0) { | 191 | if (RAND_bytes(buf, sizeof(buf)) <= 0) { |
189 | error("Couldn't obtain random bytes (error %ld)", | 192 | error("Couldn't obtain random bytes (error %ld)", |
190 | ERR_get_error()); | 193 | ERR_get_error()); |
191 | buffer_put_string(m, "", 0); | 194 | len = 0; |
192 | } else | 195 | } |
193 | buffer_put_string(m, buf, sizeof(buf)); | 196 | if ((r = sshbuf_put_string(m, buf, len)) != 0) |
197 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
198 | explicit_bzero(buf, sizeof(buf)); | ||
194 | } | 199 | } |
195 | 200 | ||
196 | void | 201 | void |
197 | rexec_recv_rng_seed(Buffer *m) | 202 | rexec_recv_rng_seed(struct sshbuf *m) |
198 | { | 203 | { |
199 | u_char *buf; | 204 | u_char *buf = NULL; |
200 | u_int len; | 205 | size_t len = 0; |
206 | int r; | ||
201 | 207 | ||
202 | buf = buffer_get_string_ret(m, &len); | 208 | if ((r = sshbuf_get_string_direct(m, &buf, &len)) != 0 |
203 | if (buf != NULL) { | 209 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
204 | debug3("rexec_recv_rng_seed: seeding rng with %u bytes", len); | 210 | |
205 | RAND_add(buf, len, len); | 211 | debug3("rexec_recv_rng_seed: seeding rng with %u bytes", len); |
206 | } | 212 | RAND_add(buf, len, len); |
207 | } | 213 | } |
208 | #endif /* OPENSSL_PRNG_ONLY */ | 214 | #endif /* OPENSSL_PRNG_ONLY */ |
209 | 215 | ||
@@ -25,11 +25,10 @@ | |||
25 | #ifndef _RANDOMS_H | 25 | #ifndef _RANDOMS_H |
26 | #define _RANDOMS_H | 26 | #define _RANDOMS_H |
27 | 27 | ||
28 | #include "buffer.h" | 28 | struct sshbuf; |
29 | 29 | ||
30 | void seed_rng(void); | 30 | void seed_rng(void); |
31 | 31 | void rexec_send_rng_seed(struct sshbuf *); | |
32 | void rexec_send_rng_seed(Buffer *); | 32 | void rexec_recv_rng_seed(struct sshbuf *); |
33 | void rexec_recv_rng_seed(Buffer *); | ||
34 | 33 | ||
35 | #endif /* _RANDOMS_H */ | 34 | #endif /* _RANDOMS_H */ |
diff --git a/gss-genr.c b/gss-genr.c index 62559ed9e..d56257b4a 100644 --- a/gss-genr.c +++ b/gss-genr.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: gss-genr.c,v 1.24 2016/09/12 01:22:38 deraadt Exp $ */ | 1 | /* $OpenBSD: gss-genr.c,v 1.26 2018/07/10 09:13:30 djm Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Copyright (c) 2001-2007 Simon Wilkinson. All rights reserved. | 4 | * Copyright (c) 2001-2007 Simon Wilkinson. All rights reserved. |
@@ -37,7 +37,8 @@ | |||
37 | #include <unistd.h> | 37 | #include <unistd.h> |
38 | 38 | ||
39 | #include "xmalloc.h" | 39 | #include "xmalloc.h" |
40 | #include "buffer.h" | 40 | #include "ssherr.h" |
41 | #include "sshbuf.h" | ||
41 | #include "log.h" | 42 | #include "log.h" |
42 | #include "ssh2.h" | 43 | #include "ssh2.h" |
43 | 44 | ||
@@ -46,6 +47,21 @@ | |||
46 | extern u_char *session_id2; | 47 | extern u_char *session_id2; |
47 | extern u_int session_id2_len; | 48 | extern u_int session_id2_len; |
48 | 49 | ||
50 | /* sshbuf_get for gss_buffer_desc */ | ||
51 | int | ||
52 | ssh_gssapi_get_buffer_desc(struct sshbuf *b, gss_buffer_desc *g) | ||
53 | { | ||
54 | int r; | ||
55 | u_char *p; | ||
56 | size_t len; | ||
57 | |||
58 | if ((r = sshbuf_get_string(b, &p, &len)) != 0) | ||
59 | return r; | ||
60 | g->value = p; | ||
61 | g->length = len; | ||
62 | return 0; | ||
63 | } | ||
64 | |||
49 | /* Check that the OID in a data stream matches that in the context */ | 65 | /* Check that the OID in a data stream matches that in the context */ |
50 | int | 66 | int |
51 | ssh_gssapi_check_oid(Gssctxt *ctx, void *data, size_t len) | 67 | ssh_gssapi_check_oid(Gssctxt *ctx, void *data, size_t len) |
@@ -94,10 +110,12 @@ ssh_gssapi_last_error(Gssctxt *ctxt, OM_uint32 *major_status, | |||
94 | OM_uint32 lmin; | 110 | OM_uint32 lmin; |
95 | gss_buffer_desc msg = GSS_C_EMPTY_BUFFER; | 111 | gss_buffer_desc msg = GSS_C_EMPTY_BUFFER; |
96 | OM_uint32 ctx; | 112 | OM_uint32 ctx; |
97 | Buffer b; | 113 | struct sshbuf *b; |
98 | char *ret; | 114 | char *ret; |
115 | int r; | ||
99 | 116 | ||
100 | buffer_init(&b); | 117 | if ((b = sshbuf_new()) == NULL) |
118 | fatal("%s: sshbuf_new failed", __func__); | ||
101 | 119 | ||
102 | if (major_status != NULL) | 120 | if (major_status != NULL) |
103 | *major_status = ctxt->major; | 121 | *major_status = ctxt->major; |
@@ -110,8 +128,9 @@ ssh_gssapi_last_error(Gssctxt *ctxt, OM_uint32 *major_status, | |||
110 | gss_display_status(&lmin, ctxt->major, | 128 | gss_display_status(&lmin, ctxt->major, |
111 | GSS_C_GSS_CODE, ctxt->oid, &ctx, &msg); | 129 | GSS_C_GSS_CODE, ctxt->oid, &ctx, &msg); |
112 | 130 | ||
113 | buffer_append(&b, msg.value, msg.length); | 131 | if ((r = sshbuf_put(b, msg.value, msg.length)) != 0 || |
114 | buffer_put_char(&b, '\n'); | 132 | (r = sshbuf_put_u8(b, '\n')) != 0) |
133 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
115 | 134 | ||
116 | gss_release_buffer(&lmin, &msg); | 135 | gss_release_buffer(&lmin, &msg); |
117 | } while (ctx != 0); | 136 | } while (ctx != 0); |
@@ -121,16 +140,17 @@ ssh_gssapi_last_error(Gssctxt *ctxt, OM_uint32 *major_status, | |||
121 | gss_display_status(&lmin, ctxt->minor, | 140 | gss_display_status(&lmin, ctxt->minor, |
122 | GSS_C_MECH_CODE, ctxt->oid, &ctx, &msg); | 141 | GSS_C_MECH_CODE, ctxt->oid, &ctx, &msg); |
123 | 142 | ||
124 | buffer_append(&b, msg.value, msg.length); | 143 | if ((r = sshbuf_put(b, msg.value, msg.length)) != 0 || |
125 | buffer_put_char(&b, '\n'); | 144 | (r = sshbuf_put_u8(b, '\n')) != 0) |
145 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
126 | 146 | ||
127 | gss_release_buffer(&lmin, &msg); | 147 | gss_release_buffer(&lmin, &msg); |
128 | } while (ctx != 0); | 148 | } while (ctx != 0); |
129 | 149 | ||
130 | buffer_put_char(&b, '\0'); | 150 | if ((r = sshbuf_put_u8(b, '\n')) != 0) |
131 | ret = xmalloc(buffer_len(&b)); | 151 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
132 | buffer_get(&b, ret, buffer_len(&b)); | 152 | ret = xstrdup((const char *)sshbuf_ptr(b)); |
133 | buffer_free(&b); | 153 | sshbuf_free(b); |
134 | return (ret); | 154 | return (ret); |
135 | } | 155 | } |
136 | 156 | ||
@@ -238,15 +258,18 @@ ssh_gssapi_sign(Gssctxt *ctx, gss_buffer_t buffer, gss_buffer_t hash) | |||
238 | } | 258 | } |
239 | 259 | ||
240 | void | 260 | void |
241 | ssh_gssapi_buildmic(Buffer *b, const char *user, const char *service, | 261 | ssh_gssapi_buildmic(struct sshbuf *b, const char *user, const char *service, |
242 | const char *context) | 262 | const char *context) |
243 | { | 263 | { |
244 | buffer_init(b); | 264 | int r; |
245 | buffer_put_string(b, session_id2, session_id2_len); | 265 | |
246 | buffer_put_char(b, SSH2_MSG_USERAUTH_REQUEST); | 266 | sshbuf_reset(b); |
247 | buffer_put_cstring(b, user); | 267 | if ((r = sshbuf_put_string(b, session_id2, session_id2_len)) != 0 || |
248 | buffer_put_cstring(b, service); | 268 | (r = sshbuf_put_u8(b, SSH2_MSG_USERAUTH_REQUEST)) != 0 || |
249 | buffer_put_cstring(b, context); | 269 | (r = sshbuf_put_cstring(b, user)) != 0 || |
270 | (r = sshbuf_put_cstring(b, service)) != 0 || | ||
271 | (r = sshbuf_put_cstring(b, context)) != 0) | ||
272 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
250 | } | 273 | } |
251 | 274 | ||
252 | int | 275 | int |
diff --git a/gss-serv-krb5.c b/gss-serv-krb5.c index 795992d9f..a151bc1e4 100644 --- a/gss-serv-krb5.c +++ b/gss-serv-krb5.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: gss-serv-krb5.c,v 1.8 2013/07/20 01:55:13 djm Exp $ */ | 1 | /* $OpenBSD: gss-serv-krb5.c,v 1.9 2018/07/09 21:37:55 markus Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Copyright (c) 2001-2003 Simon Wilkinson. All rights reserved. | 4 | * Copyright (c) 2001-2003 Simon Wilkinson. All rights reserved. |
@@ -35,14 +35,13 @@ | |||
35 | #include <string.h> | 35 | #include <string.h> |
36 | 36 | ||
37 | #include "xmalloc.h" | 37 | #include "xmalloc.h" |
38 | #include "key.h" | 38 | #include "sshkey.h" |
39 | #include "hostfile.h" | 39 | #include "hostfile.h" |
40 | #include "auth.h" | 40 | #include "auth.h" |
41 | #include "log.h" | 41 | #include "log.h" |
42 | #include "misc.h" | 42 | #include "misc.h" |
43 | #include "servconf.h" | 43 | #include "servconf.h" |
44 | 44 | ||
45 | #include "buffer.h" | ||
46 | #include "ssh-gss.h" | 45 | #include "ssh-gss.h" |
47 | 46 | ||
48 | extern ServerOptions options; | 47 | extern ServerOptions options; |
diff --git a/gss-serv.c b/gss-serv.c index 6cae720e5..ab3a15f0f 100644 --- a/gss-serv.c +++ b/gss-serv.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: gss-serv.c,v 1.30 2017/06/24 06:34:38 djm Exp $ */ | 1 | /* $OpenBSD: gss-serv.c,v 1.31 2018/07/09 21:37:55 markus Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Copyright (c) 2001-2003 Simon Wilkinson. All rights reserved. | 4 | * Copyright (c) 2001-2003 Simon Wilkinson. All rights reserved. |
@@ -36,8 +36,7 @@ | |||
36 | 36 | ||
37 | #include "openbsd-compat/sys-queue.h" | 37 | #include "openbsd-compat/sys-queue.h" |
38 | #include "xmalloc.h" | 38 | #include "xmalloc.h" |
39 | #include "buffer.h" | 39 | #include "sshkey.h" |
40 | #include "key.h" | ||
41 | #include "hostfile.h" | 40 | #include "hostfile.h" |
42 | #include "auth.h" | 41 | #include "auth.h" |
43 | #include "log.h" | 42 | #include "log.h" |
diff --git a/hostfile.c b/hostfile.c index 12f174ff9..e1f826bdd 100644 --- a/hostfile.c +++ b/hostfile.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: hostfile.c,v 1.71 2017/05/31 09:15:42 deraadt Exp $ */ | 1 | /* $OpenBSD: hostfile.c,v 1.73 2018/07/16 03:09:13 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -663,14 +663,14 @@ hostkeys_foreach(const char *path, hostkeys_foreach_fn *callback, void *ctx, | |||
663 | const char *host, const char *ip, u_int options) | 663 | const char *host, const char *ip, u_int options) |
664 | { | 664 | { |
665 | FILE *f; | 665 | FILE *f; |
666 | char line[8192], oline[8192], ktype[128]; | 666 | char *line = NULL, ktype[128]; |
667 | u_long linenum = 0; | 667 | u_long linenum = 0; |
668 | char *cp, *cp2; | 668 | char *cp, *cp2; |
669 | u_int kbits; | 669 | u_int kbits; |
670 | int hashed; | 670 | int hashed; |
671 | int s, r = 0; | 671 | int s, r = 0; |
672 | struct hostkey_foreach_line lineinfo; | 672 | struct hostkey_foreach_line lineinfo; |
673 | size_t l; | 673 | size_t linesize = 0, l; |
674 | 674 | ||
675 | memset(&lineinfo, 0, sizeof(lineinfo)); | 675 | memset(&lineinfo, 0, sizeof(lineinfo)); |
676 | if (host == NULL && (options & HKF_WANT_MATCH) != 0) | 676 | if (host == NULL && (options & HKF_WANT_MATCH) != 0) |
@@ -679,15 +679,16 @@ hostkeys_foreach(const char *path, hostkeys_foreach_fn *callback, void *ctx, | |||
679 | return SSH_ERR_SYSTEM_ERROR; | 679 | return SSH_ERR_SYSTEM_ERROR; |
680 | 680 | ||
681 | debug3("%s: reading file \"%s\"", __func__, path); | 681 | debug3("%s: reading file \"%s\"", __func__, path); |
682 | while (read_keyfile_line(f, path, line, sizeof(line), &linenum) == 0) { | 682 | while (getline(&line, &linesize, f) != -1) { |
683 | linenum++; | ||
683 | line[strcspn(line, "\n")] = '\0'; | 684 | line[strcspn(line, "\n")] = '\0'; |
684 | strlcpy(oline, line, sizeof(oline)); | ||
685 | 685 | ||
686 | free(lineinfo.line); | ||
686 | sshkey_free(lineinfo.key); | 687 | sshkey_free(lineinfo.key); |
687 | memset(&lineinfo, 0, sizeof(lineinfo)); | 688 | memset(&lineinfo, 0, sizeof(lineinfo)); |
688 | lineinfo.path = path; | 689 | lineinfo.path = path; |
689 | lineinfo.linenum = linenum; | 690 | lineinfo.linenum = linenum; |
690 | lineinfo.line = oline; | 691 | lineinfo.line = xstrdup(line); |
691 | lineinfo.marker = MRK_NONE; | 692 | lineinfo.marker = MRK_NONE; |
692 | lineinfo.status = HKF_STATUS_OK; | 693 | lineinfo.status = HKF_STATUS_OK; |
693 | lineinfo.keytype = KEY_UNSPEC; | 694 | lineinfo.keytype = KEY_UNSPEC; |
@@ -826,6 +827,8 @@ hostkeys_foreach(const char *path, hostkeys_foreach_fn *callback, void *ctx, | |||
826 | break; | 827 | break; |
827 | } | 828 | } |
828 | sshkey_free(lineinfo.key); | 829 | sshkey_free(lineinfo.key); |
830 | free(lineinfo.line); | ||
831 | free(line); | ||
829 | fclose(f); | 832 | fclose(f); |
830 | return r; | 833 | return r; |
831 | } | 834 | } |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: kex.c,v 1.136 2018/02/07 02:06:50 jsing Exp $ */ | 1 | /* $OpenBSD: kex.c,v 1.141 2018/07/09 13:37:10 sf Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. |
4 | * | 4 | * |
@@ -174,7 +174,7 @@ kex_names_cat(const char *a, const char *b) | |||
174 | size_t len; | 174 | size_t len; |
175 | 175 | ||
176 | if (a == NULL || *a == '\0') | 176 | if (a == NULL || *a == '\0') |
177 | return NULL; | 177 | return strdup(b); |
178 | if (b == NULL || *b == '\0') | 178 | if (b == NULL || *b == '\0') |
179 | return strdup(a); | 179 | return strdup(a); |
180 | if (strlen(b) > 1024*1024) | 180 | if (strlen(b) > 1024*1024) |
@@ -209,27 +209,88 @@ kex_names_cat(const char *a, const char *b) | |||
209 | * specified names should be removed. | 209 | * specified names should be removed. |
210 | */ | 210 | */ |
211 | int | 211 | int |
212 | kex_assemble_names(const char *def, char **list) | 212 | kex_assemble_names(char **listp, const char *def, const char *all) |
213 | { | 213 | { |
214 | char *ret; | 214 | char *cp, *tmp, *patterns; |
215 | char *list = NULL, *ret = NULL, *matching = NULL, *opatterns = NULL; | ||
216 | int r = SSH_ERR_INTERNAL_ERROR; | ||
215 | 217 | ||
216 | if (list == NULL || *list == NULL || **list == '\0') { | 218 | if (listp == NULL || *listp == NULL || **listp == '\0') { |
217 | *list = strdup(def); | 219 | if ((*listp = strdup(def)) == NULL) |
220 | return SSH_ERR_ALLOC_FAIL; | ||
218 | return 0; | 221 | return 0; |
219 | } | 222 | } |
220 | if (**list == '+') { | 223 | |
221 | if ((ret = kex_names_cat(def, *list + 1)) == NULL) | 224 | list = *listp; |
222 | return SSH_ERR_ALLOC_FAIL; | 225 | *listp = NULL; |
223 | free(*list); | 226 | if (*list == '+') { |
224 | *list = ret; | 227 | /* Append names to default list */ |
225 | } else if (**list == '-') { | 228 | if ((tmp = kex_names_cat(def, list + 1)) == NULL) { |
226 | if ((ret = match_filter_list(def, *list + 1)) == NULL) | 229 | r = SSH_ERR_ALLOC_FAIL; |
227 | return SSH_ERR_ALLOC_FAIL; | 230 | goto fail; |
228 | free(*list); | 231 | } |
229 | *list = ret; | 232 | free(list); |
233 | list = tmp; | ||
234 | } else if (*list == '-') { | ||
235 | /* Remove names from default list */ | ||
236 | if ((*listp = match_filter_blacklist(def, list + 1)) == NULL) { | ||
237 | r = SSH_ERR_ALLOC_FAIL; | ||
238 | goto fail; | ||
239 | } | ||
240 | free(list); | ||
241 | /* filtering has already been done */ | ||
242 | return 0; | ||
243 | } else { | ||
244 | /* Explicit list, overrides default - just use "list" as is */ | ||
230 | } | 245 | } |
231 | 246 | ||
232 | return 0; | 247 | /* |
248 | * The supplied names may be a pattern-list. For the -list case, | ||
249 | * the patterns are applied above. For the +list and explicit list | ||
250 | * cases we need to do it now. | ||
251 | */ | ||
252 | ret = NULL; | ||
253 | if ((patterns = opatterns = strdup(list)) == NULL) { | ||
254 | r = SSH_ERR_ALLOC_FAIL; | ||
255 | goto fail; | ||
256 | } | ||
257 | /* Apply positive (i.e. non-negated) patterns from the list */ | ||
258 | while ((cp = strsep(&patterns, ",")) != NULL) { | ||
259 | if (*cp == '!') { | ||
260 | /* negated matches are not supported here */ | ||
261 | r = SSH_ERR_INVALID_ARGUMENT; | ||
262 | goto fail; | ||
263 | } | ||
264 | free(matching); | ||
265 | if ((matching = match_filter_whitelist(all, cp)) == NULL) { | ||
266 | r = SSH_ERR_ALLOC_FAIL; | ||
267 | goto fail; | ||
268 | } | ||
269 | if ((tmp = kex_names_cat(ret, matching)) == NULL) { | ||
270 | r = SSH_ERR_ALLOC_FAIL; | ||
271 | goto fail; | ||
272 | } | ||
273 | free(ret); | ||
274 | ret = tmp; | ||
275 | } | ||
276 | if (ret == NULL || *ret == '\0') { | ||
277 | /* An empty name-list is an error */ | ||
278 | /* XXX better error code? */ | ||
279 | r = SSH_ERR_INVALID_ARGUMENT; | ||
280 | goto fail; | ||
281 | } | ||
282 | |||
283 | /* success */ | ||
284 | *listp = ret; | ||
285 | ret = NULL; | ||
286 | r = 0; | ||
287 | |||
288 | fail: | ||
289 | free(matching); | ||
290 | free(opatterns); | ||
291 | free(list); | ||
292 | free(ret); | ||
293 | return r; | ||
233 | } | 294 | } |
234 | 295 | ||
235 | /* put algorithm proposal into buffer */ | 296 | /* put algorithm proposal into buffer */ |
@@ -342,6 +403,7 @@ kex_send_ext_info(struct ssh *ssh) | |||
342 | 403 | ||
343 | if ((algs = sshkey_alg_list(0, 1, 1, ',')) == NULL) | 404 | if ((algs = sshkey_alg_list(0, 1, 1, ',')) == NULL) |
344 | return SSH_ERR_ALLOC_FAIL; | 405 | return SSH_ERR_ALLOC_FAIL; |
406 | /* XXX filter algs list by allowed pubkey/hostbased types */ | ||
345 | if ((r = sshpkt_start(ssh, SSH2_MSG_EXT_INFO)) != 0 || | 407 | if ((r = sshpkt_start(ssh, SSH2_MSG_EXT_INFO)) != 0 || |
346 | (r = sshpkt_put_u32(ssh, 1)) != 0 || | 408 | (r = sshpkt_put_u32(ssh, 1)) != 0 || |
347 | (r = sshpkt_put_cstring(ssh, "server-sig-algs")) != 0 || | 409 | (r = sshpkt_put_cstring(ssh, "server-sig-algs")) != 0 || |
@@ -378,7 +440,7 @@ kex_input_ext_info(int type, u_int32_t seq, struct ssh *ssh) | |||
378 | { | 440 | { |
379 | struct kex *kex = ssh->kex; | 441 | struct kex *kex = ssh->kex; |
380 | u_int32_t i, ninfo; | 442 | u_int32_t i, ninfo; |
381 | char *name, *found; | 443 | char *name; |
382 | u_char *val; | 444 | u_char *val; |
383 | size_t vlen; | 445 | size_t vlen; |
384 | int r; | 446 | int r; |
@@ -401,16 +463,8 @@ kex_input_ext_info(int type, u_int32_t seq, struct ssh *ssh) | |||
401 | return SSH_ERR_INVALID_FORMAT; | 463 | return SSH_ERR_INVALID_FORMAT; |
402 | } | 464 | } |
403 | debug("%s: %s=<%s>", __func__, name, val); | 465 | debug("%s: %s=<%s>", __func__, name, val); |
404 | found = match_list("rsa-sha2-256", val, NULL); | 466 | kex->server_sig_algs = val; |
405 | if (found) { | 467 | val = NULL; |
406 | kex->rsa_sha2 = 256; | ||
407 | free(found); | ||
408 | } | ||
409 | found = match_list("rsa-sha2-512", val, NULL); | ||
410 | if (found) { | ||
411 | kex->rsa_sha2 = 512; | ||
412 | free(found); | ||
413 | } | ||
414 | } else | 468 | } else |
415 | debug("%s: %s (unrecognised)", __func__, name); | 469 | debug("%s: %s (unrecognised)", __func__, name); |
416 | free(name); | 470 | free(name); |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: kex.h,v 1.83 2017/05/30 14:23:52 markus Exp $ */ | 1 | /* $OpenBSD: kex.h,v 1.91 2018/07/11 18:53:29 markus Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. | 4 | * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. |
@@ -27,8 +27,6 @@ | |||
27 | #define KEX_H | 27 | #define KEX_H |
28 | 28 | ||
29 | #include "mac.h" | 29 | #include "mac.h" |
30 | #include "buffer.h" /* XXX for typedef */ | ||
31 | #include "key.h" /* XXX for typedef */ | ||
32 | 30 | ||
33 | #ifdef WITH_LEAKMALLOC | 31 | #ifdef WITH_LEAKMALLOC |
34 | #include "leakmalloc.h" | 32 | #include "leakmalloc.h" |
@@ -43,6 +41,8 @@ | |||
43 | # define EC_POINT void | 41 | # define EC_POINT void |
44 | # endif /* OPENSSL_HAS_ECC */ | 42 | # endif /* OPENSSL_HAS_ECC */ |
45 | #else /* WITH_OPENSSL */ | 43 | #else /* WITH_OPENSSL */ |
44 | # define DH void | ||
45 | # define BIGNUM void | ||
46 | # define EC_KEY void | 46 | # define EC_KEY void |
47 | # define EC_GROUP void | 47 | # define EC_GROUP void |
48 | # define EC_POINT void | 48 | # define EC_POINT void |
@@ -64,6 +64,7 @@ | |||
64 | #define KEX_CURVE25519_SHA256_OLD "curve25519-sha256@libssh.org" | 64 | #define KEX_CURVE25519_SHA256_OLD "curve25519-sha256@libssh.org" |
65 | 65 | ||
66 | #define COMP_NONE 0 | 66 | #define COMP_NONE 0 |
67 | /* pre-auth compression (COMP_ZLIB) is only supported in the client */ | ||
67 | #define COMP_ZLIB 1 | 68 | #define COMP_ZLIB 1 |
68 | #define COMP_DELAYED 2 | 69 | #define COMP_DELAYED 2 |
69 | 70 | ||
@@ -139,7 +140,7 @@ struct kex { | |||
139 | int hostkey_type; | 140 | int hostkey_type; |
140 | int hostkey_nid; | 141 | int hostkey_nid; |
141 | u_int kex_type; | 142 | u_int kex_type; |
142 | int rsa_sha2; | 143 | char *server_sig_algs; |
143 | int ext_info_c; | 144 | int ext_info_c; |
144 | struct sshbuf *my; | 145 | struct sshbuf *my; |
145 | struct sshbuf *peer; | 146 | struct sshbuf *peer; |
@@ -169,7 +170,7 @@ struct kex { | |||
169 | int kex_names_valid(const char *); | 170 | int kex_names_valid(const char *); |
170 | char *kex_alg_list(char); | 171 | char *kex_alg_list(char); |
171 | char *kex_names_cat(const char *, const char *); | 172 | char *kex_names_cat(const char *, const char *); |
172 | int kex_assemble_names(const char *, char **); | 173 | int kex_assemble_names(char **, const char *, const char *); |
173 | 174 | ||
174 | int kex_new(struct ssh *, char *[PROPOSAL_MAX], struct kex **); | 175 | int kex_new(struct ssh *, char *[PROPOSAL_MAX], struct kex **); |
175 | int kex_setup(struct ssh *, char *[PROPOSAL_MAX]); | 176 | int kex_setup(struct ssh *, char *[PROPOSAL_MAX]); |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: kexdhs.c,v 1.26 2018/02/07 02:06:51 jsing Exp $ */ | 1 | /* $OpenBSD: kexdhs.c,v 1.27 2018/04/10 00:10:49 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2001 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2001 Markus Friedl. All rights reserved. |
4 | * | 4 | * |
@@ -194,7 +194,7 @@ input_kex_dh_init(int type, u_int32_t seq, struct ssh *ssh) | |||
194 | 194 | ||
195 | /* destroy_sensitive_data(); */ | 195 | /* destroy_sensitive_data(); */ |
196 | 196 | ||
197 | /* send server hostkey, DH pubkey 'f' and singed H */ | 197 | /* send server hostkey, DH pubkey 'f' and signed H */ |
198 | if ((r = sshpkt_start(ssh, SSH2_MSG_KEXDH_REPLY)) != 0 || | 198 | if ((r = sshpkt_start(ssh, SSH2_MSG_KEXDH_REPLY)) != 0 || |
199 | (r = sshpkt_put_string(ssh, server_host_key_blob, sbloblen)) != 0 || | 199 | (r = sshpkt_put_string(ssh, server_host_key_blob, sbloblen)) != 0 || |
200 | (r = sshpkt_put_bignum2(ssh, kex->dh->pub_key)) != 0 || /* f */ | 200 | (r = sshpkt_put_bignum2(ssh, kex->dh->pub_key)) != 0 || /* f */ |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: kexgexs.c,v 1.32 2018/02/07 02:06:51 jsing Exp $ */ | 1 | /* $OpenBSD: kexgexs.c,v 1.33 2018/04/10 00:10:49 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2000 Niels Provos. All rights reserved. | 3 | * Copyright (c) 2000 Niels Provos. All rights reserved. |
4 | * Copyright (c) 2001 Markus Friedl. All rights reserved. | 4 | * Copyright (c) 2001 Markus Friedl. All rights reserved. |
@@ -224,7 +224,7 @@ input_kex_dh_gex_init(int type, u_int32_t seq, struct ssh *ssh) | |||
224 | 224 | ||
225 | /* destroy_sensitive_data(); */ | 225 | /* destroy_sensitive_data(); */ |
226 | 226 | ||
227 | /* send server hostkey, DH pubkey 'f' and singed H */ | 227 | /* send server hostkey, DH pubkey 'f' and signed H */ |
228 | if ((r = sshpkt_start(ssh, SSH2_MSG_KEX_DH_GEX_REPLY)) != 0 || | 228 | if ((r = sshpkt_start(ssh, SSH2_MSG_KEX_DH_GEX_REPLY)) != 0 || |
229 | (r = sshpkt_put_string(ssh, server_host_key_blob, sbloblen)) != 0 || | 229 | (r = sshpkt_put_string(ssh, server_host_key_blob, sbloblen)) != 0 || |
230 | (r = sshpkt_put_bignum2(ssh, kex->dh->pub_key)) != 0 || /* f */ | 230 | (r = sshpkt_put_bignum2(ssh, kex->dh->pub_key)) != 0 || /* f */ |
diff --git a/key.c b/key.c deleted file mode 100644 index a05fdd3c0..000000000 --- a/key.c +++ /dev/null | |||
@@ -1,236 +0,0 @@ | |||
1 | /* $OpenBSD: key.c,v 1.132 2017/12/18 02:25:15 djm Exp $ */ | ||
2 | /* | ||
3 | * placed in the public domain | ||
4 | */ | ||
5 | |||
6 | #include "includes.h" | ||
7 | |||
8 | #include <sys/types.h> | ||
9 | #include <errno.h> | ||
10 | #include <stdarg.h> | ||
11 | #include <stdio.h> | ||
12 | #include <limits.h> | ||
13 | |||
14 | #define SSH_KEY_NO_DEFINE | ||
15 | #include "key.h" | ||
16 | |||
17 | #include "compat.h" | ||
18 | #include "sshkey.h" | ||
19 | #include "ssherr.h" | ||
20 | #include "log.h" | ||
21 | #include "authfile.h" | ||
22 | |||
23 | static void | ||
24 | fatal_on_fatal_errors(int r, const char *func, int extra_fatal) | ||
25 | { | ||
26 | if (r == SSH_ERR_INTERNAL_ERROR || | ||
27 | r == SSH_ERR_ALLOC_FAIL || | ||
28 | (extra_fatal != 0 && r == extra_fatal)) | ||
29 | fatal("%s: %s", func, ssh_err(r)); | ||
30 | } | ||
31 | |||
32 | Key * | ||
33 | key_from_blob(const u_char *blob, u_int blen) | ||
34 | { | ||
35 | int r; | ||
36 | Key *ret = NULL; | ||
37 | |||
38 | if ((r = sshkey_from_blob(blob, blen, &ret)) != 0) { | ||
39 | fatal_on_fatal_errors(r, __func__, 0); | ||
40 | error("%s: %s", __func__, ssh_err(r)); | ||
41 | return NULL; | ||
42 | } | ||
43 | return ret; | ||
44 | } | ||
45 | |||
46 | int | ||
47 | key_to_blob(const Key *key, u_char **blobp, u_int *lenp) | ||
48 | { | ||
49 | u_char *blob; | ||
50 | size_t blen; | ||
51 | int r; | ||
52 | |||
53 | if (blobp != NULL) | ||
54 | *blobp = NULL; | ||
55 | if (lenp != NULL) | ||
56 | *lenp = 0; | ||
57 | if ((r = sshkey_to_blob(key, &blob, &blen)) != 0) { | ||
58 | fatal_on_fatal_errors(r, __func__, 0); | ||
59 | error("%s: %s", __func__, ssh_err(r)); | ||
60 | return 0; | ||
61 | } | ||
62 | if (blen > INT_MAX) | ||
63 | fatal("%s: giant len %zu", __func__, blen); | ||
64 | if (blobp != NULL) | ||
65 | *blobp = blob; | ||
66 | if (lenp != NULL) | ||
67 | *lenp = blen; | ||
68 | return blen; | ||
69 | } | ||
70 | |||
71 | int | ||
72 | key_sign(const Key *key, u_char **sigp, u_int *lenp, | ||
73 | const u_char *data, u_int datalen, const char *alg) | ||
74 | { | ||
75 | int r; | ||
76 | u_char *sig; | ||
77 | size_t siglen; | ||
78 | |||
79 | if (sigp != NULL) | ||
80 | *sigp = NULL; | ||
81 | if (lenp != NULL) | ||
82 | *lenp = 0; | ||
83 | if ((r = sshkey_sign(key, &sig, &siglen, | ||
84 | data, datalen, alg, datafellows)) != 0) { | ||
85 | fatal_on_fatal_errors(r, __func__, 0); | ||
86 | error("%s: %s", __func__, ssh_err(r)); | ||
87 | return -1; | ||
88 | } | ||
89 | if (siglen > INT_MAX) | ||
90 | fatal("%s: giant len %zu", __func__, siglen); | ||
91 | if (sigp != NULL) | ||
92 | *sigp = sig; | ||
93 | if (lenp != NULL) | ||
94 | *lenp = siglen; | ||
95 | return 0; | ||
96 | } | ||
97 | |||
98 | Key * | ||
99 | key_demote(const Key *k) | ||
100 | { | ||
101 | int r; | ||
102 | Key *ret = NULL; | ||
103 | |||
104 | if ((r = sshkey_demote(k, &ret)) != 0) | ||
105 | fatal("%s: %s", __func__, ssh_err(r)); | ||
106 | return ret; | ||
107 | } | ||
108 | |||
109 | int | ||
110 | key_drop_cert(Key *k) | ||
111 | { | ||
112 | int r; | ||
113 | |||
114 | if ((r = sshkey_drop_cert(k)) != 0) { | ||
115 | fatal_on_fatal_errors(r, __func__, 0); | ||
116 | error("%s: %s", __func__, ssh_err(r)); | ||
117 | return -1; | ||
118 | } | ||
119 | return 0; | ||
120 | } | ||
121 | |||
122 | int | ||
123 | key_cert_check_authority(const Key *k, int want_host, int require_principal, | ||
124 | const char *name, const char **reason) | ||
125 | { | ||
126 | int r; | ||
127 | |||
128 | if ((r = sshkey_cert_check_authority(k, want_host, require_principal, | ||
129 | name, reason)) != 0) { | ||
130 | fatal_on_fatal_errors(r, __func__, 0); | ||
131 | error("%s: %s", __func__, ssh_err(r)); | ||
132 | return -1; | ||
133 | } | ||
134 | return 0; | ||
135 | } | ||
136 | |||
137 | /* authfile.c */ | ||
138 | |||
139 | Key * | ||
140 | key_load_cert(const char *filename) | ||
141 | { | ||
142 | int r; | ||
143 | Key *ret = NULL; | ||
144 | |||
145 | if ((r = sshkey_load_cert(filename, &ret)) != 0) { | ||
146 | fatal_on_fatal_errors(r, __func__, SSH_ERR_LIBCRYPTO_ERROR); | ||
147 | /* Old authfile.c ignored all file errors. */ | ||
148 | if (r == SSH_ERR_SYSTEM_ERROR) | ||
149 | debug("%s: %s", __func__, ssh_err(r)); | ||
150 | else | ||
151 | error("%s: %s", __func__, ssh_err(r)); | ||
152 | return NULL; | ||
153 | } | ||
154 | return ret; | ||
155 | |||
156 | } | ||
157 | |||
158 | Key * | ||
159 | key_load_public(const char *filename, char **commentp) | ||
160 | { | ||
161 | int r; | ||
162 | Key *ret = NULL; | ||
163 | |||
164 | if ((r = sshkey_load_public(filename, &ret, commentp)) != 0) { | ||
165 | fatal_on_fatal_errors(r, __func__, SSH_ERR_LIBCRYPTO_ERROR); | ||
166 | /* Old authfile.c ignored all file errors. */ | ||
167 | if (r == SSH_ERR_SYSTEM_ERROR) | ||
168 | debug("%s: %s", __func__, ssh_err(r)); | ||
169 | else | ||
170 | error("%s: %s", __func__, ssh_err(r)); | ||
171 | return NULL; | ||
172 | } | ||
173 | return ret; | ||
174 | } | ||
175 | |||
176 | Key * | ||
177 | key_load_private(const char *path, const char *passphrase, | ||
178 | char **commentp) | ||
179 | { | ||
180 | int r; | ||
181 | Key *ret = NULL; | ||
182 | |||
183 | if ((r = sshkey_load_private(path, passphrase, &ret, commentp)) != 0) { | ||
184 | fatal_on_fatal_errors(r, __func__, SSH_ERR_LIBCRYPTO_ERROR); | ||
185 | /* Old authfile.c ignored all file errors. */ | ||
186 | if (r == SSH_ERR_SYSTEM_ERROR || | ||
187 | r == SSH_ERR_KEY_WRONG_PASSPHRASE) | ||
188 | debug("%s: %s", __func__, ssh_err(r)); | ||
189 | else | ||
190 | error("%s: %s", __func__, ssh_err(r)); | ||
191 | return NULL; | ||
192 | } | ||
193 | return ret; | ||
194 | } | ||
195 | |||
196 | Key * | ||
197 | key_load_private_cert(int type, const char *filename, const char *passphrase, | ||
198 | int *perm_ok) | ||
199 | { | ||
200 | int r; | ||
201 | Key *ret = NULL; | ||
202 | |||
203 | if ((r = sshkey_load_private_cert(type, filename, passphrase, | ||
204 | &ret, perm_ok)) != 0) { | ||
205 | fatal_on_fatal_errors(r, __func__, SSH_ERR_LIBCRYPTO_ERROR); | ||
206 | /* Old authfile.c ignored all file errors. */ | ||
207 | if (r == SSH_ERR_SYSTEM_ERROR || | ||
208 | r == SSH_ERR_KEY_WRONG_PASSPHRASE) | ||
209 | debug("%s: %s", __func__, ssh_err(r)); | ||
210 | else | ||
211 | error("%s: %s", __func__, ssh_err(r)); | ||
212 | return NULL; | ||
213 | } | ||
214 | return ret; | ||
215 | } | ||
216 | |||
217 | Key * | ||
218 | key_load_private_type(int type, const char *filename, const char *passphrase, | ||
219 | char **commentp, int *perm_ok) | ||
220 | { | ||
221 | int r; | ||
222 | Key *ret = NULL; | ||
223 | |||
224 | if ((r = sshkey_load_private_type(type, filename, passphrase, | ||
225 | &ret, commentp, perm_ok)) != 0) { | ||
226 | fatal_on_fatal_errors(r, __func__, SSH_ERR_LIBCRYPTO_ERROR); | ||
227 | /* Old authfile.c ignored all file errors. */ | ||
228 | if (r == SSH_ERR_SYSTEM_ERROR || | ||
229 | (r == SSH_ERR_KEY_WRONG_PASSPHRASE)) | ||
230 | debug("%s: %s", __func__, ssh_err(r)); | ||
231 | else | ||
232 | error("%s: %s", __func__, ssh_err(r)); | ||
233 | return NULL; | ||
234 | } | ||
235 | return ret; | ||
236 | } | ||
diff --git a/key.h b/key.h deleted file mode 100644 index fd59cbf54..000000000 --- a/key.h +++ /dev/null | |||
@@ -1,69 +0,0 @@ | |||
1 | /* $OpenBSD: key.h,v 1.52 2017/12/18 02:25:15 djm Exp $ */ | ||
2 | |||
3 | /* | ||
4 | * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. | ||
5 | * | ||
6 | * Redistribution and use in source and binary forms, with or without | ||
7 | * modification, are permitted provided that the following conditions | ||
8 | * are met: | ||
9 | * 1. Redistributions of source code must retain the above copyright | ||
10 | * notice, this list of conditions and the following disclaimer. | ||
11 | * 2. Redistributions in binary form must reproduce the above copyright | ||
12 | * notice, this list of conditions and the following disclaimer in the | ||
13 | * documentation and/or other materials provided with the distribution. | ||
14 | * | ||
15 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR | ||
16 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | ||
17 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | ||
18 | * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
19 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
20 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||
21 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||
22 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
23 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||
24 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
25 | */ | ||
26 | #ifndef KEY_H | ||
27 | #define KEY_H | ||
28 | |||
29 | #include "sshkey.h" | ||
30 | |||
31 | typedef struct sshkey Key; | ||
32 | |||
33 | #define types sshkey_types | ||
34 | #define fp_type sshkey_fp_type | ||
35 | #define fp_rep sshkey_fp_rep | ||
36 | |||
37 | #ifndef SSH_KEY_NO_DEFINE | ||
38 | #define key_free sshkey_free | ||
39 | #define key_equal_public sshkey_equal_public | ||
40 | #define key_equal sshkey_equal | ||
41 | #define key_type sshkey_type | ||
42 | #define key_ssh_name sshkey_ssh_name | ||
43 | #define key_ssh_name_plain sshkey_ssh_name_plain | ||
44 | #define key_type_from_name sshkey_type_from_name | ||
45 | #define key_is_cert sshkey_is_cert | ||
46 | #define key_type_plain sshkey_type_plain | ||
47 | #endif | ||
48 | |||
49 | void key_free(Key *); | ||
50 | Key *key_demote(const Key *); | ||
51 | |||
52 | int key_drop_cert(Key *); | ||
53 | int key_cert_check_authority(const Key *, int, int, const char *, | ||
54 | const char **); | ||
55 | |||
56 | Key *key_from_blob(const u_char *, u_int); | ||
57 | int key_to_blob(const Key *, u_char **, u_int *); | ||
58 | |||
59 | int key_sign(const Key *, u_char **, u_int *, const u_char *, u_int, | ||
60 | const char *); | ||
61 | |||
62 | /* authfile.c */ | ||
63 | Key *key_load_cert(const char *); | ||
64 | Key *key_load_public(const char *, char **); | ||
65 | Key *key_load_private(const char *, const char *, char **); | ||
66 | Key *key_load_private_cert(int, const char *, const char *, int *); | ||
67 | Key *key_load_private_type(int, const char *, const char *, char **, int *); | ||
68 | |||
69 | #endif | ||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: log.c,v 1.50 2017/05/17 01:24:17 djm Exp $ */ | 1 | /* $OpenBSD: log.c,v 1.51 2018/07/27 12:03:17 markus Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -105,6 +105,12 @@ static struct { | |||
105 | { NULL, SYSLOG_LEVEL_NOT_SET } | 105 | { NULL, SYSLOG_LEVEL_NOT_SET } |
106 | }; | 106 | }; |
107 | 107 | ||
108 | LogLevel | ||
109 | log_level_get(void) | ||
110 | { | ||
111 | return log_level; | ||
112 | } | ||
113 | |||
108 | SyslogFacility | 114 | SyslogFacility |
109 | log_facility_number(char *name) | 115 | log_facility_number(char *name) |
110 | { | 116 | { |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: log.h,v 1.22 2017/05/17 01:24:17 djm Exp $ */ | 1 | /* $OpenBSD: log.h,v 1.23 2018/07/27 12:03:17 markus Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
@@ -49,6 +49,7 @@ typedef enum { | |||
49 | typedef void (log_handler_fn)(LogLevel, const char *, void *); | 49 | typedef void (log_handler_fn)(LogLevel, const char *, void *); |
50 | 50 | ||
51 | void log_init(char *, LogLevel, SyslogFacility, int); | 51 | void log_init(char *, LogLevel, SyslogFacility, int); |
52 | LogLevel log_level_get(void); | ||
52 | int log_change_level(LogLevel); | 53 | int log_change_level(LogLevel); |
53 | int log_is_on_stderr(void); | 54 | int log_is_on_stderr(void); |
54 | void log_redirect_stderr_to(const char *); | 55 | void log_redirect_stderr_to(const char *); |
diff --git a/loginrec.c b/loginrec.c index bdbc9bbf4..9a427dec4 100644 --- a/loginrec.c +++ b/loginrec.c | |||
@@ -168,7 +168,7 @@ | |||
168 | #include <unistd.h> | 168 | #include <unistd.h> |
169 | 169 | ||
170 | #include "xmalloc.h" | 170 | #include "xmalloc.h" |
171 | #include "key.h" | 171 | #include "sshkey.h" |
172 | #include "hostfile.h" | 172 | #include "hostfile.h" |
173 | #include "ssh.h" | 173 | #include "ssh.h" |
174 | #include "loginrec.h" | 174 | #include "loginrec.h" |
@@ -177,7 +177,8 @@ | |||
177 | #include "packet.h" | 177 | #include "packet.h" |
178 | #include "canohost.h" | 178 | #include "canohost.h" |
179 | #include "auth.h" | 179 | #include "auth.h" |
180 | #include "buffer.h" | 180 | #include "sshbuf.h" |
181 | #include "ssherr.h" | ||
181 | 182 | ||
182 | #ifdef HAVE_UTIL_H | 183 | #ifdef HAVE_UTIL_H |
183 | # include <util.h> | 184 | # include <util.h> |
@@ -210,7 +211,7 @@ int utmpx_get_entry(struct logininfo *li); | |||
210 | int wtmp_get_entry(struct logininfo *li); | 211 | int wtmp_get_entry(struct logininfo *li); |
211 | int wtmpx_get_entry(struct logininfo *li); | 212 | int wtmpx_get_entry(struct logininfo *li); |
212 | 213 | ||
213 | extern Buffer loginmsg; | 214 | extern struct sshbuf *loginmsg; |
214 | 215 | ||
215 | /* pick the shortest string */ | 216 | /* pick the shortest string */ |
216 | #define MIN_SIZEOF(s1,s2) (sizeof(s1) < sizeof(s2) ? sizeof(s1) : sizeof(s2)) | 217 | #define MIN_SIZEOF(s1,s2) (sizeof(s1) < sizeof(s2) ? sizeof(s1) : sizeof(s2)) |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: match.c,v 1.37 2017/03/10 04:24:55 djm Exp $ */ | 1 | /* $OpenBSD: match.c,v 1.38 2018/07/04 13:49:31 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -294,16 +294,20 @@ match_list(const char *client, const char *server, u_int *next) | |||
294 | } | 294 | } |
295 | 295 | ||
296 | /* | 296 | /* |
297 | * Filters a comma-separated list of strings, excluding any entry matching | 297 | * Filter proposal using pattern-list filter. |
298 | * the 'filter' pattern list. Caller must free returned string. | 298 | * "blacklist" determines sense of filter: |
299 | * non-zero indicates that items matching filter should be excluded. | ||
300 | * zero indicates that only items matching filter should be included. | ||
301 | * returns NULL on allocation error, otherwise caller must free result. | ||
299 | */ | 302 | */ |
300 | char * | 303 | static char * |
301 | match_filter_list(const char *proposal, const char *filter) | 304 | filter_list(const char *proposal, const char *filter, int blacklist) |
302 | { | 305 | { |
303 | size_t len = strlen(proposal) + 1; | 306 | size_t len = strlen(proposal) + 1; |
304 | char *fix_prop = malloc(len); | 307 | char *fix_prop = malloc(len); |
305 | char *orig_prop = strdup(proposal); | 308 | char *orig_prop = strdup(proposal); |
306 | char *cp, *tmp; | 309 | char *cp, *tmp; |
310 | int r; | ||
307 | 311 | ||
308 | if (fix_prop == NULL || orig_prop == NULL) { | 312 | if (fix_prop == NULL || orig_prop == NULL) { |
309 | free(orig_prop); | 313 | free(orig_prop); |
@@ -314,7 +318,8 @@ match_filter_list(const char *proposal, const char *filter) | |||
314 | tmp = orig_prop; | 318 | tmp = orig_prop; |
315 | *fix_prop = '\0'; | 319 | *fix_prop = '\0'; |
316 | while ((cp = strsep(&tmp, ",")) != NULL) { | 320 | while ((cp = strsep(&tmp, ",")) != NULL) { |
317 | if (match_pattern_list(cp, filter, 0) != 1) { | 321 | r = match_pattern_list(cp, filter, 0); |
322 | if ((blacklist && r != 1) || (!blacklist && r == 1)) { | ||
318 | if (*fix_prop != '\0') | 323 | if (*fix_prop != '\0') |
319 | strlcat(fix_prop, ",", len); | 324 | strlcat(fix_prop, ",", len); |
320 | strlcat(fix_prop, cp, len); | 325 | strlcat(fix_prop, cp, len); |
@@ -324,3 +329,22 @@ match_filter_list(const char *proposal, const char *filter) | |||
324 | return fix_prop; | 329 | return fix_prop; |
325 | } | 330 | } |
326 | 331 | ||
332 | /* | ||
333 | * Filters a comma-separated list of strings, excluding any entry matching | ||
334 | * the 'filter' pattern list. Caller must free returned string. | ||
335 | */ | ||
336 | char * | ||
337 | match_filter_blacklist(const char *proposal, const char *filter) | ||
338 | { | ||
339 | return filter_list(proposal, filter, 1); | ||
340 | } | ||
341 | |||
342 | /* | ||
343 | * Filters a comma-separated list of strings, including only entries matching | ||
344 | * the 'filter' pattern list. Caller must free returned string. | ||
345 | */ | ||
346 | char * | ||
347 | match_filter_whitelist(const char *proposal, const char *filter) | ||
348 | { | ||
349 | return filter_list(proposal, filter, 0); | ||
350 | } | ||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: match.h,v 1.17 2017/02/03 23:01:19 djm Exp $ */ | 1 | /* $OpenBSD: match.h,v 1.18 2018/07/04 13:49:31 djm Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
@@ -20,7 +20,8 @@ int match_hostname(const char *, const char *); | |||
20 | int match_host_and_ip(const char *, const char *, const char *); | 20 | int match_host_and_ip(const char *, const char *, const char *); |
21 | int match_user(const char *, const char *, const char *, const char *); | 21 | int match_user(const char *, const char *, const char *, const char *); |
22 | char *match_list(const char *, const char *, u_int *); | 22 | char *match_list(const char *, const char *, u_int *); |
23 | char *match_filter_list(const char *, const char *); | 23 | char *match_filter_blacklist(const char *, const char *); |
24 | char *match_filter_whitelist(const char *, const char *); | ||
24 | 25 | ||
25 | /* addrmatch.c */ | 26 | /* addrmatch.c */ |
26 | int addr_match_list(const char *, const char *); | 27 | int addr_match_list(const char *, const char *); |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: misc.c,v 1.127 2018/03/12 00:52:01 djm Exp $ */ | 1 | /* $OpenBSD: misc.c,v 1.131 2018/07/27 05:13:02 dtucker Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. |
4 | * Copyright (c) 2005,2006 Damien Miller. All rights reserved. | 4 | * Copyright (c) 2005,2006 Damien Miller. All rights reserved. |
@@ -69,7 +69,6 @@ | |||
69 | #include "ssh.h" | 69 | #include "ssh.h" |
70 | #include "sshbuf.h" | 70 | #include "sshbuf.h" |
71 | #include "ssherr.h" | 71 | #include "ssherr.h" |
72 | #include "uidswap.h" | ||
73 | #include "platform.h" | 72 | #include "platform.h" |
74 | 73 | ||
75 | /* remove newline at end of string */ | 74 | /* remove newline at end of string */ |
@@ -239,8 +238,8 @@ set_rdomain(int fd, const char *name) | |||
239 | #define QUOTE "\"" | 238 | #define QUOTE "\"" |
240 | 239 | ||
241 | /* return next token in configuration line */ | 240 | /* return next token in configuration line */ |
242 | char * | 241 | static char * |
243 | strdelim(char **s) | 242 | strdelim_internal(char **s, int split_equals) |
244 | { | 243 | { |
245 | char *old; | 244 | char *old; |
246 | int wspace = 0; | 245 | int wspace = 0; |
@@ -250,7 +249,8 @@ strdelim(char **s) | |||
250 | 249 | ||
251 | old = *s; | 250 | old = *s; |
252 | 251 | ||
253 | *s = strpbrk(*s, WHITESPACE QUOTE "="); | 252 | *s = strpbrk(*s, |
253 | split_equals ? WHITESPACE QUOTE "=" : WHITESPACE QUOTE); | ||
254 | if (*s == NULL) | 254 | if (*s == NULL) |
255 | return (old); | 255 | return (old); |
256 | 256 | ||
@@ -267,18 +267,37 @@ strdelim(char **s) | |||
267 | } | 267 | } |
268 | 268 | ||
269 | /* Allow only one '=' to be skipped */ | 269 | /* Allow only one '=' to be skipped */ |
270 | if (*s[0] == '=') | 270 | if (split_equals && *s[0] == '=') |
271 | wspace = 1; | 271 | wspace = 1; |
272 | *s[0] = '\0'; | 272 | *s[0] = '\0'; |
273 | 273 | ||
274 | /* Skip any extra whitespace after first token */ | 274 | /* Skip any extra whitespace after first token */ |
275 | *s += strspn(*s + 1, WHITESPACE) + 1; | 275 | *s += strspn(*s + 1, WHITESPACE) + 1; |
276 | if (*s[0] == '=' && !wspace) | 276 | if (split_equals && *s[0] == '=' && !wspace) |
277 | *s += strspn(*s + 1, WHITESPACE) + 1; | 277 | *s += strspn(*s + 1, WHITESPACE) + 1; |
278 | 278 | ||
279 | return (old); | 279 | return (old); |
280 | } | 280 | } |
281 | 281 | ||
282 | /* | ||
283 | * Return next token in configuration line; splts on whitespace or a | ||
284 | * single '=' character. | ||
285 | */ | ||
286 | char * | ||
287 | strdelim(char **s) | ||
288 | { | ||
289 | return strdelim_internal(s, 1); | ||
290 | } | ||
291 | |||
292 | /* | ||
293 | * Return next token in configuration line; splts on whitespace only. | ||
294 | */ | ||
295 | char * | ||
296 | strdelimw(char **s) | ||
297 | { | ||
298 | return strdelim_internal(s, 0); | ||
299 | } | ||
300 | |||
282 | struct passwd * | 301 | struct passwd * |
283 | pwcopy(struct passwd *pw) | 302 | pwcopy(struct passwd *pw) |
284 | { | 303 | { |
@@ -1005,31 +1024,6 @@ percent_expand(const char *string, ...) | |||
1005 | #undef EXPAND_MAX_KEYS | 1024 | #undef EXPAND_MAX_KEYS |
1006 | } | 1025 | } |
1007 | 1026 | ||
1008 | /* | ||
1009 | * Read an entire line from a public key file into a static buffer, discarding | ||
1010 | * lines that exceed the buffer size. Returns 0 on success, -1 on failure. | ||
1011 | */ | ||
1012 | int | ||
1013 | read_keyfile_line(FILE *f, const char *filename, char *buf, size_t bufsz, | ||
1014 | u_long *lineno) | ||
1015 | { | ||
1016 | while (fgets(buf, bufsz, f) != NULL) { | ||
1017 | if (buf[0] == '\0') | ||
1018 | continue; | ||
1019 | (*lineno)++; | ||
1020 | if (buf[strlen(buf) - 1] == '\n' || feof(f)) { | ||
1021 | return 0; | ||
1022 | } else { | ||
1023 | debug("%s: %s line %lu exceeds size limit", __func__, | ||
1024 | filename, *lineno); | ||
1025 | /* discard remainder of line */ | ||
1026 | while (fgetc(f) != '\n' && !feof(f)) | ||
1027 | ; /* nothing */ | ||
1028 | } | ||
1029 | } | ||
1030 | return -1; | ||
1031 | } | ||
1032 | |||
1033 | int | 1027 | int |
1034 | tun_open(int tun, int mode, char **ifname) | 1028 | tun_open(int tun, int mode, char **ifname) |
1035 | { | 1029 | { |
@@ -1582,15 +1576,6 @@ forward_equals(const struct Forward *a, const struct Forward *b) | |||
1582 | return 1; | 1576 | return 1; |
1583 | } | 1577 | } |
1584 | 1578 | ||
1585 | /* returns 1 if bind to specified port by specified user is permitted */ | ||
1586 | int | ||
1587 | bind_permitted(int port, uid_t uid) | ||
1588 | { | ||
1589 | if (port < IPPORT_RESERVED && uid != 0) | ||
1590 | return 0; | ||
1591 | return 1; | ||
1592 | } | ||
1593 | |||
1594 | /* returns 1 if process is already daemonized, 0 otherwise */ | 1579 | /* returns 1 if process is already daemonized, 0 otherwise */ |
1595 | int | 1580 | int |
1596 | daemonized(void) | 1581 | daemonized(void) |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: misc.h,v 1.71 2018/03/12 00:52:01 djm Exp $ */ | 1 | /* $OpenBSD: misc.h,v 1.74 2018/07/27 05:13:02 dtucker Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
@@ -31,7 +31,6 @@ struct Forward { | |||
31 | }; | 31 | }; |
32 | 32 | ||
33 | int forward_equals(const struct Forward *, const struct Forward *); | 33 | int forward_equals(const struct Forward *, const struct Forward *); |
34 | int bind_permitted(int, uid_t); | ||
35 | int daemonized(void); | 34 | int daemonized(void); |
36 | 35 | ||
37 | /* Common server and client forwarding options. */ | 36 | /* Common server and client forwarding options. */ |
@@ -45,6 +44,7 @@ struct ForwardOptions { | |||
45 | 44 | ||
46 | char *chop(char *); | 45 | char *chop(char *); |
47 | char *strdelim(char **); | 46 | char *strdelim(char **); |
47 | char *strdelimw(char **); | ||
48 | int set_nonblock(int); | 48 | int set_nonblock(int); |
49 | int unset_nonblock(int); | 49 | int unset_nonblock(int); |
50 | void set_nodelay(int); | 50 | void set_nodelay(int); |
@@ -166,7 +166,6 @@ int safe_path_fd(int, const char *, struct passwd *, | |||
166 | 166 | ||
167 | char *read_passphrase(const char *, int); | 167 | char *read_passphrase(const char *, int); |
168 | int ask_permission(const char *, ...) __attribute__((format(printf, 1, 2))); | 168 | int ask_permission(const char *, ...) __attribute__((format(printf, 1, 2))); |
169 | int read_keyfile_line(FILE *, const char *, char *, size_t, u_long *); | ||
170 | 169 | ||
171 | #define MINIMUM(a, b) (((a) < (b)) ? (a) : (b)) | 170 | #define MINIMUM(a, b) (((a) < (b)) ? (a) : (b)) |
172 | #define MAXIMUM(a, b) (((a) > (b)) ? (a) : (b)) | 171 | #define MAXIMUM(a, b) (((a) > (b)) ? (a) : (b)) |
@@ -1,407 +1,438 @@ | |||
1 | # $OpenBSD: moduli,v 1.20 2017/11/29 05:49:54 dtucker Exp $ | 1 | # $OpenBSD: moduli,v 1.21 2018/04/03 02:14:08 dtucker Exp $ |
2 | # Time Type Tests Tries Size Generator Modulus | 2 | # Time Type Tests Tries Size Generator Modulus |
3 | 20170623034823 2 6 100 2047 2 F740D04A6CFD4547DDBE874AEED3DF220F4ABD1EEA9BB022EDB3019835812EB327F3F0BBD0D137702856B499924C1A0D78D467EFBCB2215008FC3918FF88710ED5CA4F3554494F3AC374C8695B1DA006470F1C5C751825389DF3FBAC83DFEFAE2B07FA30E3B6B13D2BF9FAA27DCBD03FEB6847F08C3C6C89B04366A78D8C43E1E26B63ED5BB9A3E1AAE00BD4A4BF058B41B70E9F599C7DAE2E42701C68FDDEFE7213432E77342F785D64B723FF33A2D9C6F85F149776F898EF8BEFE3D03D2163974A3C0F13520F4BE92A246DED5A6FC997B2657D1A72A1210E881D0A0F14E93522268E3D8FFB84ABB3B9B064985E891C7C0DC09E166008A5E13A777EAE4E76CB | 3 | 20171129060817 2 6 100 2047 2 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC65210B1E863 |
4 | 20170623034906 2 6 100 2047 2 F740D04A6CFD4547DDBE874AEED3DF220F4ABD1EEA9BB022EDB3019835812EB327F3F0BBD0D137702856B499924C1A0D78D467EFBCB2215008FC3918FF88710ED5CA4F3554494F3AC374C8695B1DA006470F1C5C751825389DF3FBAC83DFEFAE2B07FA30E3B6B13D2BF9FAA27DCBD03FEB6847F08C3C6C89B04366A78D8C43E1E26B63ED5BB9A3E1AAE00BD4A4BF058B41B70E9F599C7DAE2E42701C68FDDEFE7213432E77342F785D64B723FF33A2D9C6F85F149776F898EF8BEFE3D03D2163974A3C0F13520F4BE92A246DED5A6FC997B2657D1A72A1210E881D0A0F14E93522268E3D8FFB84ABB3B9B064985E891C7C0DC09E166008A5E13A777EAEB63283 | 4 | 20171129060830 2 6 100 2047 5 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC65210C3D8AF |
5 | 20170623034928 2 6 100 2047 5 F740D04A6CFD4547DDBE874AEED3DF220F4ABD1EEA9BB022EDB3019835812EB327F3F0BBD0D137702856B499924C1A0D78D467EFBCB2215008FC3918FF88710ED5CA4F3554494F3AC374C8695B1DA006470F1C5C751825389DF3FBAC83DFEFAE2B07FA30E3B6B13D2BF9FAA27DCBD03FEB6847F08C3C6C89B04366A78D8C43E1E26B63ED5BB9A3E1AAE00BD4A4BF058B41B70E9F599C7DAE2E42701C68FDDEFE7213432E77342F785D64B723FF33A2D9C6F85F149776F898EF8BEFE3D03D2163974A3C0F13520F4BE92A246DED5A6FC997B2657D1A72A1210E881D0A0F14E93522268E3D8FFB84ABB3B9B064985E891C7C0DC09E166008A5E13A777EAEE49C27 | 5 | 20171129060835 2 6 100 2047 2 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC65210C56383 |
6 | 20170623034936 2 6 100 2047 2 F740D04A6CFD4547DDBE874AEED3DF220F4ABD1EEA9BB022EDB3019835812EB327F3F0BBD0D137702856B499924C1A0D78D467EFBCB2215008FC3918FF88710ED5CA4F3554494F3AC374C8695B1DA006470F1C5C751825389DF3FBAC83DFEFAE2B07FA30E3B6B13D2BF9FAA27DCBD03FEB6847F08C3C6C89B04366A78D8C43E1E26B63ED5BB9A3E1AAE00BD4A4BF058B41B70E9F599C7DAE2E42701C68FDDEFE7213432E77342F785D64B723FF33A2D9C6F85F149776F898EF8BEFE3D03D2163974A3C0F13520F4BE92A246DED5A6FC997B2657D1A72A1210E881D0A0F14E93522268E3D8FFB84ABB3B9B064985E891C7C0DC09E166008A5E13A777EAEF2BE1B | 6 | 20171129060853 2 6 100 2047 5 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC65210E2A407 |
7 | 20170623034957 2 6 100 2047 5 F740D04A6CFD4547DDBE874AEED3DF220F4ABD1EEA9BB022EDB3019835812EB327F3F0BBD0D137702856B499924C1A0D78D467EFBCB2215008FC3918FF88710ED5CA4F3554494F3AC374C8695B1DA006470F1C5C751825389DF3FBAC83DFEFAE2B07FA30E3B6B13D2BF9FAA27DCBD03FEB6847F08C3C6C89B04366A78D8C43E1E26B63ED5BB9A3E1AAE00BD4A4BF058B41B70E9F599C7DAE2E42701C68FDDEFE7213432E77342F785D64B723FF33A2D9C6F85F149776F898EF8BEFE3D03D2163974A3C0F13520F4BE92A246DED5A6FC997B2657D1A72A1210E881D0A0F14E93522268E3D8FFB84ABB3B9B064985E891C7C0DC09E166008A5E13A777EAF22F2D7 | 7 | 20171129060928 2 6 100 2047 2 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC652112864BB |
8 | 20170623035029 2 6 100 2047 5 F740D04A6CFD4547DDBE874AEED3DF220F4ABD1EEA9BB022EDB3019835812EB327F3F0BBD0D137702856B499924C1A0D78D467EFBCB2215008FC3918FF88710ED5CA4F3554494F3AC374C8695B1DA006470F1C5C751825389DF3FBAC83DFEFAE2B07FA30E3B6B13D2BF9FAA27DCBD03FEB6847F08C3C6C89B04366A78D8C43E1E26B63ED5BB9A3E1AAE00BD4A4BF058B41B70E9F599C7DAE2E42701C68FDDEFE7213432E77342F785D64B723FF33A2D9C6F85F149776F898EF8BEFE3D03D2163974A3C0F13520F4BE92A246DED5A6FC997B2657D1A72A1210E881D0A0F14E93522268E3D8FFB84ABB3B9B064985E891C7C0DC09E166008A5E13A777EAF68D3A7 | 8 | 20171129060940 2 6 100 2047 5 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC652113A4B2F |
9 | 20170623035052 2 6 100 2047 2 F740D04A6CFD4547DDBE874AEED3DF220F4ABD1EEA9BB022EDB3019835812EB327F3F0BBD0D137702856B499924C1A0D78D467EFBCB2215008FC3918FF88710ED5CA4F3554494F3AC374C8695B1DA006470F1C5C751825389DF3FBAC83DFEFAE2B07FA30E3B6B13D2BF9FAA27DCBD03FEB6847F08C3C6C89B04366A78D8C43E1E26B63ED5BB9A3E1AAE00BD4A4BF058B41B70E9F599C7DAE2E42701C68FDDEFE7213432E77342F785D64B723FF33A2D9C6F85F149776F898EF8BEFE3D03D2163974A3C0F13520F4BE92A246DED5A6FC997B2657D1A72A1210E881D0A0F14E93522268E3D8FFB84ABB3B9B064985E891C7C0DC09E166008A5E13A777EAF9A9793 | 9 | 20171129061019 2 6 100 2047 2 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC652118756EB |
10 | 20170623035228 2 6 100 2047 2 F740D04A6CFD4547DDBE874AEED3DF220F4ABD1EEA9BB022EDB3019835812EB327F3F0BBD0D137702856B499924C1A0D78D467EFBCB2215008FC3918FF88710ED5CA4F3554494F3AC374C8695B1DA006470F1C5C751825389DF3FBAC83DFEFAE2B07FA30E3B6B13D2BF9FAA27DCBD03FEB6847F08C3C6C89B04366A78D8C43E1E26B63ED5BB9A3E1AAE00BD4A4BF058B41B70E9F599C7DAE2E42701C68FDDEFE7213432E77342F785D64B723FF33A2D9C6F85F149776F898EF8BEFE3D03D2163974A3C0F13520F4BE92A246DED5A6FC997B2657D1A72A1210E881D0A0F14E93522268E3D8FFB84ABB3B9B064985E891C7C0DC09E166008A5E13A777EB085C01B | 10 | 20171129061110 2 6 100 2047 2 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC65211ECF08B |
11 | 20170623035326 2 6 100 2047 5 F740D04A6CFD4547DDBE874AEED3DF220F4ABD1EEA9BB022EDB3019835812EB327F3F0BBD0D137702856B499924C1A0D78D467EFBCB2215008FC3918FF88710ED5CA4F3554494F3AC374C8695B1DA006470F1C5C751825389DF3FBAC83DFEFAE2B07FA30E3B6B13D2BF9FAA27DCBD03FEB6847F08C3C6C89B04366A78D8C43E1E26B63ED5BB9A3E1AAE00BD4A4BF058B41B70E9F599C7DAE2E42701C68FDDEFE7213432E77342F785D64B723FF33A2D9C6F85F149776F898EF8BEFE3D03D2163974A3C0F13520F4BE92A246DED5A6FC997B2657D1A72A1210E881D0A0F14E93522268E3D8FFB84ABB3B9B064985E891C7C0DC09E166008A5E13A777EB1140217 | 11 | 20171129061125 2 6 100 2047 5 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC6521205BFC7 |
12 | 20170623035332 2 6 100 2047 5 F740D04A6CFD4547DDBE874AEED3DF220F4ABD1EEA9BB022EDB3019835812EB327F3F0BBD0D137702856B499924C1A0D78D467EFBCB2215008FC3918FF88710ED5CA4F3554494F3AC374C8695B1DA006470F1C5C751825389DF3FBAC83DFEFAE2B07FA30E3B6B13D2BF9FAA27DCBD03FEB6847F08C3C6C89B04366A78D8C43E1E26B63ED5BB9A3E1AAE00BD4A4BF058B41B70E9F599C7DAE2E42701C68FDDEFE7213432E77342F785D64B723FF33A2D9C6F85F149776F898EF8BEFE3D03D2163974A3C0F13520F4BE92A246DED5A6FC997B2657D1A72A1210E881D0A0F14E93522268E3D8FFB84ABB3B9B064985E891C7C0DC09E166008A5E13A777EB11ACBD7 | 12 | 20171129061139 2 6 100 2047 2 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC652121B156B |
13 | 20170623035408 2 6 100 2047 5 F740D04A6CFD4547DDBE874AEED3DF220F4ABD1EEA9BB022EDB3019835812EB327F3F0BBD0D137702856B499924C1A0D78D467EFBCB2215008FC3918FF88710ED5CA4F3554494F3AC374C8695B1DA006470F1C5C751825389DF3FBAC83DFEFAE2B07FA30E3B6B13D2BF9FAA27DCBD03FEB6847F08C3C6C89B04366A78D8C43E1E26B63ED5BB9A3E1AAE00BD4A4BF058B41B70E9F599C7DAE2E42701C68FDDEFE7213432E77342F785D64B723FF33A2D9C6F85F149776F898EF8BEFE3D03D2163974A3C0F13520F4BE92A246DED5A6FC997B2657D1A72A1210E881D0A0F14E93522268E3D8FFB84ABB3B9B064985E891C7C0DC09E166008A5E13A777EB16AD187 | 13 | 20171129061144 2 6 100 2047 5 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC652121DB6C7 |
14 | 20170623035414 2 6 100 2047 2 F740D04A6CFD4547DDBE874AEED3DF220F4ABD1EEA9BB022EDB3019835812EB327F3F0BBD0D137702856B499924C1A0D78D467EFBCB2215008FC3918FF88710ED5CA4F3554494F3AC374C8695B1DA006470F1C5C751825389DF3FBAC83DFEFAE2B07FA30E3B6B13D2BF9FAA27DCBD03FEB6847F08C3C6C89B04366A78D8C43E1E26B63ED5BB9A3E1AAE00BD4A4BF058B41B70E9F599C7DAE2E42701C68FDDEFE7213432E77342F785D64B723FF33A2D9C6F85F149776F898EF8BEFE3D03D2163974A3C0F13520F4BE92A246DED5A6FC997B2657D1A72A1210E881D0A0F14E93522268E3D8FFB84ABB3B9B064985E891C7C0DC09E166008A5E13A777EB1737B53 | 14 | 20171129061155 2 6 100 2047 2 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC652122E3A4B |
15 | 20170623035442 2 6 100 2047 2 F740D04A6CFD4547DDBE874AEED3DF220F4ABD1EEA9BB022EDB3019835812EB327F3F0BBD0D137702856B499924C1A0D78D467EFBCB2215008FC3918FF88710ED5CA4F3554494F3AC374C8695B1DA006470F1C5C751825389DF3FBAC83DFEFAE2B07FA30E3B6B13D2BF9FAA27DCBD03FEB6847F08C3C6C89B04366A78D8C43E1E26B63ED5BB9A3E1AAE00BD4A4BF058B41B70E9F599C7DAE2E42701C68FDDEFE7213432E77342F785D64B723FF33A2D9C6F85F149776F898EF8BEFE3D03D2163974A3C0F13520F4BE92A246DED5A6FC997B2657D1A72A1210E881D0A0F14E93522268E3D8FFB84ABB3B9B064985E891C7C0DC09E166008A5E13A777EB1B1C483 | 15 | 20171129061219 2 6 100 2047 2 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC6521258E75B |
16 | 20170623035454 2 6 100 2047 2 F740D04A6CFD4547DDBE874AEED3DF220F4ABD1EEA9BB022EDB3019835812EB327F3F0BBD0D137702856B499924C1A0D78D467EFBCB2215008FC3918FF88710ED5CA4F3554494F3AC374C8695B1DA006470F1C5C751825389DF3FBAC83DFEFAE2B07FA30E3B6B13D2BF9FAA27DCBD03FEB6847F08C3C6C89B04366A78D8C43E1E26B63ED5BB9A3E1AAE00BD4A4BF058B41B70E9F599C7DAE2E42701C68FDDEFE7213432E77342F785D64B723FF33A2D9C6F85F149776F898EF8BEFE3D03D2163974A3C0F13520F4BE92A246DED5A6FC997B2657D1A72A1210E881D0A0F14E93522268E3D8FFB84ABB3B9B064985E891C7C0DC09E166008A5E13A777EB1C8B93B | 16 | 20171129061248 2 6 100 2047 2 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC652128E21EB |
17 | 20170623035510 2 6 100 2047 2 F740D04A6CFD4547DDBE874AEED3DF220F4ABD1EEA9BB022EDB3019835812EB327F3F0BBD0D137702856B499924C1A0D78D467EFBCB2215008FC3918FF88710ED5CA4F3554494F3AC374C8695B1DA006470F1C5C751825389DF3FBAC83DFEFAE2B07FA30E3B6B13D2BF9FAA27DCBD03FEB6847F08C3C6C89B04366A78D8C43E1E26B63ED5BB9A3E1AAE00BD4A4BF058B41B70E9F599C7DAE2E42701C68FDDEFE7213432E77342F785D64B723FF33A2D9C6F85F149776F898EF8BEFE3D03D2163974A3C0F13520F4BE92A246DED5A6FC997B2657D1A72A1210E881D0A0F14E93522268E3D8FFB84ABB3B9B064985E891C7C0DC09E166008A5E13A777EB1EAD06B | 17 | 20171129061255 2 6 100 2047 2 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC6521294FDC3 |
18 | 20170623035525 2 6 100 2047 2 F740D04A6CFD4547DDBE874AEED3DF220F4ABD1EEA9BB022EDB3019835812EB327F3F0BBD0D137702856B499924C1A0D78D467EFBCB2215008FC3918FF88710ED5CA4F3554494F3AC374C8695B1DA006470F1C5C751825389DF3FBAC83DFEFAE2B07FA30E3B6B13D2BF9FAA27DCBD03FEB6847F08C3C6C89B04366A78D8C43E1E26B63ED5BB9A3E1AAE00BD4A4BF058B41B70E9F599C7DAE2E42701C68FDDEFE7213432E77342F785D64B723FF33A2D9C6F85F149776F898EF8BEFE3D03D2163974A3C0F13520F4BE92A246DED5A6FC997B2657D1A72A1210E881D0A0F14E93522268E3D8FFB84ABB3B9B064985E891C7C0DC09E166008A5E13A777EB208DA8B | 18 | 20171129061331 2 6 100 2047 2 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC65212DB195B |
19 | 20170623035553 2 6 100 2047 5 F740D04A6CFD4547DDBE874AEED3DF220F4ABD1EEA9BB022EDB3019835812EB327F3F0BBD0D137702856B499924C1A0D78D467EFBCB2215008FC3918FF88710ED5CA4F3554494F3AC374C8695B1DA006470F1C5C751825389DF3FBAC83DFEFAE2B07FA30E3B6B13D2BF9FAA27DCBD03FEB6847F08C3C6C89B04366A78D8C43E1E26B63ED5BB9A3E1AAE00BD4A4BF058B41B70E9F599C7DAE2E42701C68FDDEFE7213432E77342F785D64B723FF33A2D9C6F85F149776F898EF8BEFE3D03D2163974A3C0F13520F4BE92A246DED5A6FC997B2657D1A72A1210E881D0A0F14E93522268E3D8FFB84ABB3B9B064985E891C7C0DC09E166008A5E13A777EB2498F17 | 19 | 20171129061336 2 6 100 2047 2 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC65212DD4653 |
20 | 20170623035604 2 6 100 2047 2 F740D04A6CFD4547DDBE874AEED3DF220F4ABD1EEA9BB022EDB3019835812EB327F3F0BBD0D137702856B499924C1A0D78D467EFBCB2215008FC3918FF88710ED5CA4F3554494F3AC374C8695B1DA006470F1C5C751825389DF3FBAC83DFEFAE2B07FA30E3B6B13D2BF9FAA27DCBD03FEB6847F08C3C6C89B04366A78D8C43E1E26B63ED5BB9A3E1AAE00BD4A4BF058B41B70E9F599C7DAE2E42701C68FDDEFE7213432E77342F785D64B723FF33A2D9C6F85F149776F898EF8BEFE3D03D2163974A3C0F13520F4BE92A246DED5A6FC997B2657D1A72A1210E881D0A0F14E93522268E3D8FFB84ABB3B9B064985E891C7C0DC09E166008A5E13A777EB25D82D3 | 20 | 20171129061427 2 6 100 2047 5 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC6521341B5DF |
21 | 20170623035609 2 6 100 2047 5 F740D04A6CFD4547DDBE874AEED3DF220F4ABD1EEA9BB022EDB3019835812EB327F3F0BBD0D137702856B499924C1A0D78D467EFBCB2215008FC3918FF88710ED5CA4F3554494F3AC374C8695B1DA006470F1C5C751825389DF3FBAC83DFEFAE2B07FA30E3B6B13D2BF9FAA27DCBD03FEB6847F08C3C6C89B04366A78D8C43E1E26B63ED5BB9A3E1AAE00BD4A4BF058B41B70E9F599C7DAE2E42701C68FDDEFE7213432E77342F785D64B723FF33A2D9C6F85F149776F898EF8BEFE3D03D2163974A3C0F13520F4BE92A246DED5A6FC997B2657D1A72A1210E881D0A0F14E93522268E3D8FFB84ABB3B9B064985E891C7C0DC09E166008A5E13A777EB262420F | 21 | 20171129061437 2 6 100 2047 2 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC652134DD68B |
22 | 20170623035735 2 6 100 2047 5 F740D04A6CFD4547DDBE874AEED3DF220F4ABD1EEA9BB022EDB3019835812EB327F3F0BBD0D137702856B499924C1A0D78D467EFBCB2215008FC3918FF88710ED5CA4F3554494F3AC374C8695B1DA006470F1C5C751825389DF3FBAC83DFEFAE2B07FA30E3B6B13D2BF9FAA27DCBD03FEB6847F08C3C6C89B04366A78D8C43E1E26B63ED5BB9A3E1AAE00BD4A4BF058B41B70E9F599C7DAE2E42701C68FDDEFE7213432E77342F785D64B723FF33A2D9C6F85F149776F898EF8BEFE3D03D2163974A3C0F13520F4BE92A246DED5A6FC997B2657D1A72A1210E881D0A0F14E93522268E3D8FFB84ABB3B9B064985E891C7C0DC09E166008A5E13A777EB3376DEF | 22 | 20171129061446 2 6 100 2047 2 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC652135A0283 |
23 | 20170623035801 2 6 100 2047 2 F740D04A6CFD4547DDBE874AEED3DF220F4ABD1EEA9BB022EDB3019835812EB327F3F0BBD0D137702856B499924C1A0D78D467EFBCB2215008FC3918FF88710ED5CA4F3554494F3AC374C8695B1DA006470F1C5C751825389DF3FBAC83DFEFAE2B07FA30E3B6B13D2BF9FAA27DCBD03FEB6847F08C3C6C89B04366A78D8C43E1E26B63ED5BB9A3E1AAE00BD4A4BF058B41B70E9F599C7DAE2E42701C68FDDEFE7213432E77342F785D64B723FF33A2D9C6F85F149776F898EF8BEFE3D03D2163974A3C0F13520F4BE92A246DED5A6FC997B2657D1A72A1210E881D0A0F14E93522268E3D8FFB84ABB3B9B064985E891C7C0DC09E166008A5E13A777EB370E193 | 23 | 20171129061500 2 6 100 2047 5 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC652136FF967 |
24 | 20170623035916 2 6 100 2047 5 F740D04A6CFD4547DDBE874AEED3DF220F4ABD1EEA9BB022EDB3019835812EB327F3F0BBD0D137702856B499924C1A0D78D467EFBCB2215008FC3918FF88710ED5CA4F3554494F3AC374C8695B1DA006470F1C5C751825389DF3FBAC83DFEFAE2B07FA30E3B6B13D2BF9FAA27DCBD03FEB6847F08C3C6C89B04366A78D8C43E1E26B63ED5BB9A3E1AAE00BD4A4BF058B41B70E9F599C7DAE2E42701C68FDDEFE7213432E77342F785D64B723FF33A2D9C6F85F149776F898EF8BEFE3D03D2163974A3C0F13520F4BE92A246DED5A6FC997B2657D1A72A1210E881D0A0F14E93522268E3D8FFB84ABB3B9B064985E891C7C0DC09E166008A5E13A777EB426D9CF | 24 | 20171129061601 2 6 100 2047 5 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC65213E379AF |
25 | 20170623035935 2 6 100 2047 2 F740D04A6CFD4547DDBE874AEED3DF220F4ABD1EEA9BB022EDB3019835812EB327F3F0BBD0D137702856B499924C1A0D78D467EFBCB2215008FC3918FF88710ED5CA4F3554494F3AC374C8695B1DA006470F1C5C751825389DF3FBAC83DFEFAE2B07FA30E3B6B13D2BF9FAA27DCBD03FEB6847F08C3C6C89B04366A78D8C43E1E26B63ED5BB9A3E1AAE00BD4A4BF058B41B70E9F599C7DAE2E42701C68FDDEFE7213432E77342F785D64B723FF33A2D9C6F85F149776F898EF8BEFE3D03D2163974A3C0F13520F4BE92A246DED5A6FC997B2657D1A72A1210E881D0A0F14E93522268E3D8FFB84ABB3B9B064985E891C7C0DC09E166008A5E13A777EB44E559B | 25 | 20171129061606 2 6 100 2047 2 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC65213E53213 |
26 | 20170623035955 2 6 100 2047 5 F740D04A6CFD4547DDBE874AEED3DF220F4ABD1EEA9BB022EDB3019835812EB327F3F0BBD0D137702856B499924C1A0D78D467EFBCB2215008FC3918FF88710ED5CA4F3554494F3AC374C8695B1DA006470F1C5C751825389DF3FBAC83DFEFAE2B07FA30E3B6B13D2BF9FAA27DCBD03FEB6847F08C3C6C89B04366A78D8C43E1E26B63ED5BB9A3E1AAE00BD4A4BF058B41B70E9F599C7DAE2E42701C68FDDEFE7213432E77342F785D64B723FF33A2D9C6F85F149776F898EF8BEFE3D03D2163974A3C0F13520F4BE92A246DED5A6FC997B2657D1A72A1210E881D0A0F14E93522268E3D8FFB84ABB3B9B064985E891C7C0DC09E166008A5E13A777EB4777177 | 26 | 20171129061704 2 6 100 2047 2 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC6521459419B |
27 | 20170623040012 2 6 100 2047 5 F740D04A6CFD4547DDBE874AEED3DF220F4ABD1EEA9BB022EDB3019835812EB327F3F0BBD0D137702856B499924C1A0D78D467EFBCB2215008FC3918FF88710ED5CA4F3554494F3AC374C8695B1DA006470F1C5C751825389DF3FBAC83DFEFAE2B07FA30E3B6B13D2BF9FAA27DCBD03FEB6847F08C3C6C89B04366A78D8C43E1E26B63ED5BB9A3E1AAE00BD4A4BF058B41B70E9F599C7DAE2E42701C68FDDEFE7213432E77342F785D64B723FF33A2D9C6F85F149776F898EF8BEFE3D03D2163974A3C0F13520F4BE92A246DED5A6FC997B2657D1A72A1210E881D0A0F14E93522268E3D8FFB84ABB3B9B064985E891C7C0DC09E166008A5E13A777EB4995E77 | 27 | 20171129061720 2 6 100 2047 5 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC6521471A4D7 |
28 | 20170623040023 2 6 100 2047 2 F740D04A6CFD4547DDBE874AEED3DF220F4ABD1EEA9BB022EDB3019835812EB327F3F0BBD0D137702856B499924C1A0D78D467EFBCB2215008FC3918FF88710ED5CA4F3554494F3AC374C8695B1DA006470F1C5C751825389DF3FBAC83DFEFAE2B07FA30E3B6B13D2BF9FAA27DCBD03FEB6847F08C3C6C89B04366A78D8C43E1E26B63ED5BB9A3E1AAE00BD4A4BF058B41B70E9F599C7DAE2E42701C68FDDEFE7213432E77342F785D64B723FF33A2D9C6F85F149776F898EF8BEFE3D03D2163974A3C0F13520F4BE92A246DED5A6FC997B2657D1A72A1210E881D0A0F14E93522268E3D8FFB84ABB3B9B064985E891C7C0DC09E166008A5E13A777EB4ACAF8B | 28 | 20171129061822 2 6 100 2047 5 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC65214F0057F |
29 | 20170623040032 2 6 100 2047 2 F740D04A6CFD4547DDBE874AEED3DF220F4ABD1EEA9BB022EDB3019835812EB327F3F0BBD0D137702856B499924C1A0D78D467EFBCB2215008FC3918FF88710ED5CA4F3554494F3AC374C8695B1DA006470F1C5C751825389DF3FBAC83DFEFAE2B07FA30E3B6B13D2BF9FAA27DCBD03FEB6847F08C3C6C89B04366A78D8C43E1E26B63ED5BB9A3E1AAE00BD4A4BF058B41B70E9F599C7DAE2E42701C68FDDEFE7213432E77342F785D64B723FF33A2D9C6F85F149776F898EF8BEFE3D03D2163974A3C0F13520F4BE92A246DED5A6FC997B2657D1A72A1210E881D0A0F14E93522268E3D8FFB84ABB3B9B064985E891C7C0DC09E166008A5E13A777EB4BB1ADB | 29 | 20171129061829 2 6 100 2047 5 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC65214F60057 |
30 | 20170623040120 2 6 100 2047 5 F740D04A6CFD4547DDBE874AEED3DF220F4ABD1EEA9BB022EDB3019835812EB327F3F0BBD0D137702856B499924C1A0D78D467EFBCB2215008FC3918FF88710ED5CA4F3554494F3AC374C8695B1DA006470F1C5C751825389DF3FBAC83DFEFAE2B07FA30E3B6B13D2BF9FAA27DCBD03FEB6847F08C3C6C89B04366A78D8C43E1E26B63ED5BB9A3E1AAE00BD4A4BF058B41B70E9F599C7DAE2E42701C68FDDEFE7213432E77342F785D64B723FF33A2D9C6F85F149776F898EF8BEFE3D03D2163974A3C0F13520F4BE92A246DED5A6FC997B2657D1A72A1210E881D0A0F14E93522268E3D8FFB84ABB3B9B064985E891C7C0DC09E166008A5E13A777EB52D4F1F | 30 | 20171129061843 2 6 100 2047 2 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC652150D5E63 |
31 | 20170623040131 2 6 100 2047 2 F740D04A6CFD4547DDBE874AEED3DF220F4ABD1EEA9BB022EDB3019835812EB327F3F0BBD0D137702856B499924C1A0D78D467EFBCB2215008FC3918FF88710ED5CA4F3554494F3AC374C8695B1DA006470F1C5C751825389DF3FBAC83DFEFAE2B07FA30E3B6B13D2BF9FAA27DCBD03FEB6847F08C3C6C89B04366A78D8C43E1E26B63ED5BB9A3E1AAE00BD4A4BF058B41B70E9F599C7DAE2E42701C68FDDEFE7213432E77342F785D64B723FF33A2D9C6F85F149776F898EF8BEFE3D03D2163974A3C0F13520F4BE92A246DED5A6FC997B2657D1A72A1210E881D0A0F14E93522268E3D8FFB84ABB3B9B064985E891C7C0DC09E166008A5E13A777EB542306B | 31 | 20171129061855 2 6 100 2047 5 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC65215200027 |
32 | 20170623040202 2 6 100 2047 5 F740D04A6CFD4547DDBE874AEED3DF220F4ABD1EEA9BB022EDB3019835812EB327F3F0BBD0D137702856B499924C1A0D78D467EFBCB2215008FC3918FF88710ED5CA4F3554494F3AC374C8695B1DA006470F1C5C751825389DF3FBAC83DFEFAE2B07FA30E3B6B13D2BF9FAA27DCBD03FEB6847F08C3C6C89B04366A78D8C43E1E26B63ED5BB9A3E1AAE00BD4A4BF058B41B70E9F599C7DAE2E42701C68FDDEFE7213432E77342F785D64B723FF33A2D9C6F85F149776F898EF8BEFE3D03D2163974A3C0F13520F4BE92A246DED5A6FC997B2657D1A72A1210E881D0A0F14E93522268E3D8FFB84ABB3B9B064985E891C7C0DC09E166008A5E13A777EB5899CB7 | 32 | 20171129061901 2 6 100 2047 5 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC6521525622F |
33 | 20170623040216 2 6 100 2047 2 F740D04A6CFD4547DDBE874AEED3DF220F4ABD1EEA9BB022EDB3019835812EB327F3F0BBD0D137702856B499924C1A0D78D467EFBCB2215008FC3918FF88710ED5CA4F3554494F3AC374C8695B1DA006470F1C5C751825389DF3FBAC83DFEFAE2B07FA30E3B6B13D2BF9FAA27DCBD03FEB6847F08C3C6C89B04366A78D8C43E1E26B63ED5BB9A3E1AAE00BD4A4BF058B41B70E9F599C7DAE2E42701C68FDDEFE7213432E77342F785D64B723FF33A2D9C6F85F149776F898EF8BEFE3D03D2163974A3C0F13520F4BE92A246DED5A6FC997B2657D1A72A1210E881D0A0F14E93522268E3D8FFB84ABB3B9B064985E891C7C0DC09E166008A5E13A777EB5A317FB | 33 | 20171129061942 2 6 100 2047 5 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC6521578C59F |
34 | 20170623040224 2 6 100 2047 2 F740D04A6CFD4547DDBE874AEED3DF220F4ABD1EEA9BB022EDB3019835812EB327F3F0BBD0D137702856B499924C1A0D78D467EFBCB2215008FC3918FF88710ED5CA4F3554494F3AC374C8695B1DA006470F1C5C751825389DF3FBAC83DFEFAE2B07FA30E3B6B13D2BF9FAA27DCBD03FEB6847F08C3C6C89B04366A78D8C43E1E26B63ED5BB9A3E1AAE00BD4A4BF058B41B70E9F599C7DAE2E42701C68FDDEFE7213432E77342F785D64B723FF33A2D9C6F85F149776F898EF8BEFE3D03D2163974A3C0F13520F4BE92A246DED5A6FC997B2657D1A72A1210E881D0A0F14E93522268E3D8FFB84ABB3B9B064985E891C7C0DC09E166008A5E13A777EB5AEBE43 | 34 | 20171129061951 2 6 100 2047 2 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC6521582692B |
35 | 20170623040246 2 6 100 2047 5 F740D04A6CFD4547DDBE874AEED3DF220F4ABD1EEA9BB022EDB3019835812EB327F3F0BBD0D137702856B499924C1A0D78D467EFBCB2215008FC3918FF88710ED5CA4F3554494F3AC374C8695B1DA006470F1C5C751825389DF3FBAC83DFEFAE2B07FA30E3B6B13D2BF9FAA27DCBD03FEB6847F08C3C6C89B04366A78D8C43E1E26B63ED5BB9A3E1AAE00BD4A4BF058B41B70E9F599C7DAE2E42701C68FDDEFE7213432E77342F785D64B723FF33A2D9C6F85F149776F898EF8BEFE3D03D2163974A3C0F13520F4BE92A246DED5A6FC997B2657D1A72A1210E881D0A0F14E93522268E3D8FFB84ABB3B9B064985E891C7C0DC09E166008A5E13A777EB5E190BF | 35 | 20171129062008 2 6 100 2047 5 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC652159DB0EF |
36 | 20170623040254 2 6 100 2047 2 F740D04A6CFD4547DDBE874AEED3DF220F4ABD1EEA9BB022EDB3019835812EB327F3F0BBD0D137702856B499924C1A0D78D467EFBCB2215008FC3918FF88710ED5CA4F3554494F3AC374C8695B1DA006470F1C5C751825389DF3FBAC83DFEFAE2B07FA30E3B6B13D2BF9FAA27DCBD03FEB6847F08C3C6C89B04366A78D8C43E1E26B63ED5BB9A3E1AAE00BD4A4BF058B41B70E9F599C7DAE2E42701C68FDDEFE7213432E77342F785D64B723FF33A2D9C6F85F149776F898EF8BEFE3D03D2163974A3C0F13520F4BE92A246DED5A6FC997B2657D1A72A1210E881D0A0F14E93522268E3D8FFB84ABB3B9B064985E891C7C0DC09E166008A5E13A777EB5EBE533 | 36 | 20171129062015 2 6 100 2047 2 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC65215A1F453 |
37 | 20170623040334 2 6 100 2047 5 F740D04A6CFD4547DDBE874AEED3DF220F4ABD1EEA9BB022EDB3019835812EB327F3F0BBD0D137702856B499924C1A0D78D467EFBCB2215008FC3918FF88710ED5CA4F3554494F3AC374C8695B1DA006470F1C5C751825389DF3FBAC83DFEFAE2B07FA30E3B6B13D2BF9FAA27DCBD03FEB6847F08C3C6C89B04366A78D8C43E1E26B63ED5BB9A3E1AAE00BD4A4BF058B41B70E9F599C7DAE2E42701C68FDDEFE7213432E77342F785D64B723FF33A2D9C6F85F149776F898EF8BEFE3D03D2163974A3C0F13520F4BE92A246DED5A6FC997B2657D1A72A1210E881D0A0F14E93522268E3D8FFB84ABB3B9B064985E891C7C0DC09E166008A5E13A777EB649ECAF | 37 | 20171129062045 2 6 100 2047 5 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC65215DD99B7 |
38 | 20170623040448 2 6 100 2047 2 EDB5FA2E865AD05F06510EFBFC71F9DFBAA5C1EEF3F6FDC2650C1D8C507DECA3422AE18746EA7D7BEA600C0AE9A0812A3DC02C099F8AF046EF014EC2A58734A716F156FCE4F19E3A9EB38F225A1CA0B868F70B3BE0CAE3AC2A20F330EF3CC33CB27D1FCB2D27505409144F957AC592567AC0B2A8099F6D58B546C7EE734FD806CDFDDE5F41C38966EB61005CA78D970BFA2C77F099BB19543B559AA118B6F303644D541E83B293138BEF5B8F0B0382ACA8DBDD693845FF6B7EE6ABF1B8B4733998F31DBF74F9CBA5145A0C5345EDC5B056CDCAA3AF605701C56651B8A968AD6D7E421DD3B5F3765865D5FDC55252F25C9661CD71A43A20B13A16CFF3C4B50D13 | 38 | 20171129062054 2 6 100 2047 5 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC65215E9E31F |
39 | 20170623040459 2 6 100 2047 5 EDB5FA2E865AD05F06510EFBFC71F9DFBAA5C1EEF3F6FDC2650C1D8C507DECA3422AE18746EA7D7BEA600C0AE9A0812A3DC02C099F8AF046EF014EC2A58734A716F156FCE4F19E3A9EB38F225A1CA0B868F70B3BE0CAE3AC2A20F330EF3CC33CB27D1FCB2D27505409144F957AC592567AC0B2A8099F6D58B546C7EE734FD806CDFDDE5F41C38966EB61005CA78D970BFA2C77F099BB19543B559AA118B6F303644D541E83B293138BEF5B8F0B0382ACA8DBDD693845FF6B7EE6ABF1B8B4733998F31DBF74F9CBA5145A0C5345EDC5B056CDCAA3AF605701C56651B8A968AD6D7E421DD3B5F3765865D5FDC55252F25C9661CD71A43A20B13A16CFF3C4C9F477 | 39 | 20171129062130 2 6 100 2047 5 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC652162FE18F |
40 | 20170623040510 2 6 100 2047 2 EDB5FA2E865AD05F06510EFBFC71F9DFBAA5C1EEF3F6FDC2650C1D8C507DECA3422AE18746EA7D7BEA600C0AE9A0812A3DC02C099F8AF046EF014EC2A58734A716F156FCE4F19E3A9EB38F225A1CA0B868F70B3BE0CAE3AC2A20F330EF3CC33CB27D1FCB2D27505409144F957AC592567AC0B2A8099F6D58B546C7EE734FD806CDFDDE5F41C38966EB61005CA78D970BFA2C77F099BB19543B559AA118B6F303644D541E83B293138BEF5B8F0B0382ACA8DBDD693845FF6B7EE6ABF1B8B4733998F31DBF74F9CBA5145A0C5345EDC5B056CDCAA3AF605701C56651B8A968AD6D7E421DD3B5F3765865D5FDC55252F25C9661CD71A43A20B13A16CFF3C4DDC50B | 40 | 20171129062138 2 6 100 2047 5 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC6521639C1E7 |
41 | 20170623040603 2 6 100 2047 5 EDB5FA2E865AD05F06510EFBFC71F9DFBAA5C1EEF3F6FDC2650C1D8C507DECA3422AE18746EA7D7BEA600C0AE9A0812A3DC02C099F8AF046EF014EC2A58734A716F156FCE4F19E3A9EB38F225A1CA0B868F70B3BE0CAE3AC2A20F330EF3CC33CB27D1FCB2D27505409144F957AC592567AC0B2A8099F6D58B546C7EE734FD806CDFDDE5F41C38966EB61005CA78D970BFA2C77F099BB19543B559AA118B6F303644D541E83B293138BEF5B8F0B0382ACA8DBDD693845FF6B7EE6ABF1B8B4733998F31DBF74F9CBA5145A0C5345EDC5B056CDCAA3AF605701C56651B8A968AD6D7E421DD3B5F3765865D5FDC55252F25C9661CD71A43A20B13A16CFF3C55E2BE7 | 41 | 20171129062159 2 6 100 2047 2 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC652165F37BB |
42 | 20170623040614 2 6 100 2047 5 EDB5FA2E865AD05F06510EFBFC71F9DFBAA5C1EEF3F6FDC2650C1D8C507DECA3422AE18746EA7D7BEA600C0AE9A0812A3DC02C099F8AF046EF014EC2A58734A716F156FCE4F19E3A9EB38F225A1CA0B868F70B3BE0CAE3AC2A20F330EF3CC33CB27D1FCB2D27505409144F957AC592567AC0B2A8099F6D58B546C7EE734FD806CDFDDE5F41C38966EB61005CA78D970BFA2C77F099BB19543B559AA118B6F303644D541E83B293138BEF5B8F0B0382ACA8DBDD693845FF6B7EE6ABF1B8B4733998F31DBF74F9CBA5145A0C5345EDC5B056CDCAA3AF605701C56651B8A968AD6D7E421DD3B5F3765865D5FDC55252F25C9661CD71A43A20B13A16CFF3C5715757 | 42 | 20171129062221 2 6 100 2047 5 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC65216873C97 |
43 | 20170623040626 2 6 100 2047 5 EDB5FA2E865AD05F06510EFBFC71F9DFBAA5C1EEF3F6FDC2650C1D8C507DECA3422AE18746EA7D7BEA600C0AE9A0812A3DC02C099F8AF046EF014EC2A58734A716F156FCE4F19E3A9EB38F225A1CA0B868F70B3BE0CAE3AC2A20F330EF3CC33CB27D1FCB2D27505409144F957AC592567AC0B2A8099F6D58B546C7EE734FD806CDFDDE5F41C38966EB61005CA78D970BFA2C77F099BB19543B559AA118B6F303644D541E83B293138BEF5B8F0B0382ACA8DBDD693845FF6B7EE6ABF1B8B4733998F31DBF74F9CBA5145A0C5345EDC5B056CDCAA3AF605701C56651B8A968AD6D7E421DD3B5F3765865D5FDC55252F25C9661CD71A43A20B13A16CFF3C58A0617 | 43 | 20171129062228 2 6 100 2047 2 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC652168EBECB |
44 | 20170623040632 2 6 100 2047 5 EDB5FA2E865AD05F06510EFBFC71F9DFBAA5C1EEF3F6FDC2650C1D8C507DECA3422AE18746EA7D7BEA600C0AE9A0812A3DC02C099F8AF046EF014EC2A58734A716F156FCE4F19E3A9EB38F225A1CA0B868F70B3BE0CAE3AC2A20F330EF3CC33CB27D1FCB2D27505409144F957AC592567AC0B2A8099F6D58B546C7EE734FD806CDFDDE5F41C38966EB61005CA78D970BFA2C77F099BB19543B559AA118B6F303644D541E83B293138BEF5B8F0B0382ACA8DBDD693845FF6B7EE6ABF1B8B4733998F31DBF74F9CBA5145A0C5345EDC5B056CDCAA3AF605701C56651B8A968AD6D7E421DD3B5F3765865D5FDC55252F25C9661CD71A43A20B13A16CFF3C5910FF7 | 44 | 20171129062350 2 6 100 2047 2 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC6521738FF13 |
45 | 20170623040709 2 6 100 2047 2 EDB5FA2E865AD05F06510EFBFC71F9DFBAA5C1EEF3F6FDC2650C1D8C507DECA3422AE18746EA7D7BEA600C0AE9A0812A3DC02C099F8AF046EF014EC2A58734A716F156FCE4F19E3A9EB38F225A1CA0B868F70B3BE0CAE3AC2A20F330EF3CC33CB27D1FCB2D27505409144F957AC592567AC0B2A8099F6D58B546C7EE734FD806CDFDDE5F41C38966EB61005CA78D970BFA2C77F099BB19543B559AA118B6F303644D541E83B293138BEF5B8F0B0382ACA8DBDD693845FF6B7EE6ABF1B8B4733998F31DBF74F9CBA5145A0C5345EDC5B056CDCAA3AF605701C56651B8A968AD6D7E421DD3B5F3765865D5FDC55252F25C9661CD71A43A20B13A16CFF3C5E85ABB | 45 | 20171129062433 2 6 100 2047 5 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC652178ED13F |
46 | 20170623040729 2 6 100 2047 5 EDB5FA2E865AD05F06510EFBFC71F9DFBAA5C1EEF3F6FDC2650C1D8C507DECA3422AE18746EA7D7BEA600C0AE9A0812A3DC02C099F8AF046EF014EC2A58734A716F156FCE4F19E3A9EB38F225A1CA0B868F70B3BE0CAE3AC2A20F330EF3CC33CB27D1FCB2D27505409144F957AC592567AC0B2A8099F6D58B546C7EE734FD806CDFDDE5F41C38966EB61005CA78D970BFA2C77F099BB19543B559AA118B6F303644D541E83B293138BEF5B8F0B0382ACA8DBDD693845FF6B7EE6ABF1B8B4733998F31DBF74F9CBA5145A0C5345EDC5B056CDCAA3AF605701C56651B8A968AD6D7E421DD3B5F3765865D5FDC55252F25C9661CD71A43A20B13A16CFF3C61714B7 | 46 | 20171129062446 2 6 100 2047 5 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC65217A15C2F |
47 | 20170623040745 2 6 100 2047 5 EDB5FA2E865AD05F06510EFBFC71F9DFBAA5C1EEF3F6FDC2650C1D8C507DECA3422AE18746EA7D7BEA600C0AE9A0812A3DC02C099F8AF046EF014EC2A58734A716F156FCE4F19E3A9EB38F225A1CA0B868F70B3BE0CAE3AC2A20F330EF3CC33CB27D1FCB2D27505409144F957AC592567AC0B2A8099F6D58B546C7EE734FD806CDFDDE5F41C38966EB61005CA78D970BFA2C77F099BB19543B559AA118B6F303644D541E83B293138BEF5B8F0B0382ACA8DBDD693845FF6B7EE6ABF1B8B4733998F31DBF74F9CBA5145A0C5345EDC5B056CDCAA3AF605701C56651B8A968AD6D7E421DD3B5F3765865D5FDC55252F25C9661CD71A43A20B13A16CFF3C6362DF7 | 47 | 20171129062541 2 6 100 2047 2 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC652181044FB |
48 | 20170623040759 2 6 100 2047 2 EDB5FA2E865AD05F06510EFBFC71F9DFBAA5C1EEF3F6FDC2650C1D8C507DECA3422AE18746EA7D7BEA600C0AE9A0812A3DC02C099F8AF046EF014EC2A58734A716F156FCE4F19E3A9EB38F225A1CA0B868F70B3BE0CAE3AC2A20F330EF3CC33CB27D1FCB2D27505409144F957AC592567AC0B2A8099F6D58B546C7EE734FD806CDFDDE5F41C38966EB61005CA78D970BFA2C77F099BB19543B559AA118B6F303644D541E83B293138BEF5B8F0B0382ACA8DBDD693845FF6B7EE6ABF1B8B4733998F31DBF74F9CBA5145A0C5345EDC5B056CDCAA3AF605701C56651B8A968AD6D7E421DD3B5F3765865D5FDC55252F25C9661CD71A43A20B13A16CFF3C64F9EEB | 48 | 20171129062603 2 6 100 2047 5 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC6521837D78F |
49 | 20170623040829 2 6 100 2047 5 EDB5FA2E865AD05F06510EFBFC71F9DFBAA5C1EEF3F6FDC2650C1D8C507DECA3422AE18746EA7D7BEA600C0AE9A0812A3DC02C099F8AF046EF014EC2A58734A716F156FCE4F19E3A9EB38F225A1CA0B868F70B3BE0CAE3AC2A20F330EF3CC33CB27D1FCB2D27505409144F957AC592567AC0B2A8099F6D58B546C7EE734FD806CDFDDE5F41C38966EB61005CA78D970BFA2C77F099BB19543B559AA118B6F303644D541E83B293138BEF5B8F0B0382ACA8DBDD693845FF6B7EE6ABF1B8B4733998F31DBF74F9CBA5145A0C5345EDC5B056CDCAA3AF605701C56651B8A968AD6D7E421DD3B5F3765865D5FDC55252F25C9661CD71A43A20B13A16CFF3C6949627 | 49 | 20171129062624 2 6 100 2047 5 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC652185C9EDF |
50 | 20170623040836 2 6 100 2047 2 EDB5FA2E865AD05F06510EFBFC71F9DFBAA5C1EEF3F6FDC2650C1D8C507DECA3422AE18746EA7D7BEA600C0AE9A0812A3DC02C099F8AF046EF014EC2A58734A716F156FCE4F19E3A9EB38F225A1CA0B868F70B3BE0CAE3AC2A20F330EF3CC33CB27D1FCB2D27505409144F957AC592567AC0B2A8099F6D58B546C7EE734FD806CDFDDE5F41C38966EB61005CA78D970BFA2C77F099BB19543B559AA118B6F303644D541E83B293138BEF5B8F0B0382ACA8DBDD693845FF6B7EE6ABF1B8B4733998F31DBF74F9CBA5145A0C5345EDC5B056CDCAA3AF605701C56651B8A968AD6D7E421DD3B5F3765865D5FDC55252F25C9661CD71A43A20B13A16CFF3C69F6763 | 50 | 20171129062634 2 6 100 2047 2 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC652186C3473 |
51 | 20170623040925 2 6 100 2047 2 EDB5FA2E865AD05F06510EFBFC71F9DFBAA5C1EEF3F6FDC2650C1D8C507DECA3422AE18746EA7D7BEA600C0AE9A0812A3DC02C099F8AF046EF014EC2A58734A716F156FCE4F19E3A9EB38F225A1CA0B868F70B3BE0CAE3AC2A20F330EF3CC33CB27D1FCB2D27505409144F957AC592567AC0B2A8099F6D58B546C7EE734FD806CDFDDE5F41C38966EB61005CA78D970BFA2C77F099BB19543B559AA118B6F303644D541E83B293138BEF5B8F0B0382ACA8DBDD693845FF6B7EE6ABF1B8B4733998F31DBF74F9CBA5145A0C5345EDC5B056CDCAA3AF605701C56651B8A968AD6D7E421DD3B5F3765865D5FDC55252F25C9661CD71A43A20B13A16CFF3C712B23B | 51 | 20171129062650 2 6 100 2047 5 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC65218888AC7 |
52 | 20170623040941 2 6 100 2047 5 EDB5FA2E865AD05F06510EFBFC71F9DFBAA5C1EEF3F6FDC2650C1D8C507DECA3422AE18746EA7D7BEA600C0AE9A0812A3DC02C099F8AF046EF014EC2A58734A716F156FCE4F19E3A9EB38F225A1CA0B868F70B3BE0CAE3AC2A20F330EF3CC33CB27D1FCB2D27505409144F957AC592567AC0B2A8099F6D58B546C7EE734FD806CDFDDE5F41C38966EB61005CA78D970BFA2C77F099BB19543B559AA118B6F303644D541E83B293138BEF5B8F0B0382ACA8DBDD693845FF6B7EE6ABF1B8B4733998F31DBF74F9CBA5145A0C5345EDC5B056CDCAA3AF605701C56651B8A968AD6D7E421DD3B5F3765865D5FDC55252F25C9661CD71A43A20B13A16CFF3C7336C6F | 52 | 20171129062658 2 6 100 2047 2 F6A83AA30FCC5A1FED886CF60BFAD561F8558C07EC39F7972F8BD034F16AE485A25E223E609D18CBA60DFB74F85637DC6A55E38BA145746B5C2EFC007E1B36B0B179A7756B160A90E6C7AA8D42DC5EF9F96EB654D37EAA3BC2A96CA6F9F60A47E340873B6131B9013ACDB75EBB189B671B8D48BD60D36D2BD4B9D2F5FC828F9989F2E9FEDE3AF8E10343C458CAEC77EBCDD113C75D4F190EFA489835725FD7A0CB3E3A9C30DE03BC5D3991D53A86A25A3F3601171130DBE5F2E6F844F6AE9565261F9110A264A1C61EA0CDDF6DB06F28F9E3B70A482C849E5523932B4F2343E90AC140AC06AB027E293CE2B81BA61021B1B15DDCA48B721AED9AC65218915923 |
53 | 20170623041004 2 6 100 2047 2 EDB5FA2E865AD05F06510EFBFC71F9DFBAA5C1EEF3F6FDC2650C1D8C507DECA3422AE18746EA7D7BEA600C0AE9A0812A3DC02C099F8AF046EF014EC2A58734A716F156FCE4F19E3A9EB38F225A1CA0B868F70B3BE0CAE3AC2A20F330EF3CC33CB27D1FCB2D27505409144F957AC592567AC0B2A8099F6D58B546C7EE734FD806CDFDDE5F41C38966EB61005CA78D970BFA2C77F099BB19543B559AA118B6F303644D541E83B293138BEF5B8F0B0382ACA8DBDD693845FF6B7EE6ABF1B8B4733998F31DBF74F9CBA5145A0C5345EDC5B056CDCAA3AF605701C56651B8A968AD6D7E421DD3B5F3765865D5FDC55252F25C9661CD71A43A20B13A16CFF3C76418FB | 53 | 20171129062719 2 6 100 2047 2 FB10C8B63DDACEB1654E9B1BF39D2E5A65A310270D19FA63F4520A3B76AF3FB32C535647E803A830B96E950AAE9539547D53CA1373E7C059B5E8FC81A00E193B547C8F490B1428A4692EF9B4248E69498595D579D93CE2D867709AE84F6558381A51673E2BC55FC04B8655EDF3743980319C875C7B733996FE318A3EC6DBFEE79D596AF1A4AA7497575D8A2E378D86CC368073E9E11FFC83F85886D1FC8F1D32CC0021259D040063526D8ABF2F7E00D4B627AED022D63B84F7DB55EE10550FA9562A067EAAEE021D1893DC6DADCCADAE1C0AD8F350A20CB33DAD32035FE12CF7DD29A0BF35DD87228B512DF58C7A3DD5187E2E58FC39AC835F847A3ADAB68F23 |
54 | 20170623041040 2 6 100 2047 2 EDB5FA2E865AD05F06510EFBFC71F9DFBAA5C1EEF3F6FDC2650C1D8C507DECA3422AE18746EA7D7BEA600C0AE9A0812A3DC02C099F8AF046EF014EC2A58734A716F156FCE4F19E3A9EB38F225A1CA0B868F70B3BE0CAE3AC2A20F330EF3CC33CB27D1FCB2D27505409144F957AC592567AC0B2A8099F6D58B546C7EE734FD806CDFDDE5F41C38966EB61005CA78D970BFA2C77F099BB19543B559AA118B6F303644D541E83B293138BEF5B8F0B0382ACA8DBDD693845FF6B7EE6ABF1B8B4733998F31DBF74F9CBA5145A0C5345EDC5B056CDCAA3AF605701C56651B8A968AD6D7E421DD3B5F3765865D5FDC55252F25C9661CD71A43A20B13A16CFF3C7B6A153 | 54 | 20171129062852 2 6 100 2047 2 FB10C8B63DDACEB1654E9B1BF39D2E5A65A310270D19FA63F4520A3B76AF3FB32C535647E803A830B96E950AAE9539547D53CA1373E7C059B5E8FC81A00E193B547C8F490B1428A4692EF9B4248E69498595D579D93CE2D867709AE84F6558381A51673E2BC55FC04B8655EDF3743980319C875C7B733996FE318A3EC6DBFEE79D596AF1A4AA7497575D8A2E378D86CC368073E9E11FFC83F85886D1FC8F1D32CC0021259D040063526D8ABF2F7E00D4B627AED022D63B84F7DB55EE10550FA9562A067EAAEE021D1893DC6DADCCADAE1C0AD8F350A20CB33DAD32035FE12CF7DD29A0BF35DD87228B512DF58C7A3DD5187E2E58FC39AC835F847A3ADB8020BB |
55 | 20170623041049 2 6 100 2047 5 EDB5FA2E865AD05F06510EFBFC71F9DFBAA5C1EEF3F6FDC2650C1D8C507DECA3422AE18746EA7D7BEA600C0AE9A0812A3DC02C099F8AF046EF014EC2A58734A716F156FCE4F19E3A9EB38F225A1CA0B868F70B3BE0CAE3AC2A20F330EF3CC33CB27D1FCB2D27505409144F957AC592567AC0B2A8099F6D58B546C7EE734FD806CDFDDE5F41C38966EB61005CA78D970BFA2C77F099BB19543B559AA118B6F303644D541E83B293138BEF5B8F0B0382ACA8DBDD693845FF6B7EE6ABF1B8B4733998F31DBF74F9CBA5145A0C5345EDC5B056CDCAA3AF605701C56651B8A968AD6D7E421DD3B5F3765865D5FDC55252F25C9661CD71A43A20B13A16CFF3C7C6F12F | 55 | 20171129062857 2 6 100 2047 5 FB10C8B63DDACEB1654E9B1BF39D2E5A65A310270D19FA63F4520A3B76AF3FB32C535647E803A830B96E950AAE9539547D53CA1373E7C059B5E8FC81A00E193B547C8F490B1428A4692EF9B4248E69498595D579D93CE2D867709AE84F6558381A51673E2BC55FC04B8655EDF3743980319C875C7B733996FE318A3EC6DBFEE79D596AF1A4AA7497575D8A2E378D86CC368073E9E11FFC83F85886D1FC8F1D32CC0021259D040063526D8ABF2F7E00D4B627AED022D63B84F7DB55EE10550FA9562A067EAAEE021D1893DC6DADCCADAE1C0AD8F350A20CB33DAD32035FE12CF7DD29A0BF35DD87228B512DF58C7A3DD5187E2E58FC39AC835F847A3ADB83D6A7 |
56 | 20170623041059 2 6 100 2047 5 EDB5FA2E865AD05F06510EFBFC71F9DFBAA5C1EEF3F6FDC2650C1D8C507DECA3422AE18746EA7D7BEA600C0AE9A0812A3DC02C099F8AF046EF014EC2A58734A716F156FCE4F19E3A9EB38F225A1CA0B868F70B3BE0CAE3AC2A20F330EF3CC33CB27D1FCB2D27505409144F957AC592567AC0B2A8099F6D58B546C7EE734FD806CDFDDE5F41C38966EB61005CA78D970BFA2C77F099BB19543B559AA118B6F303644D541E83B293138BEF5B8F0B0382ACA8DBDD693845FF6B7EE6ABF1B8B4733998F31DBF74F9CBA5145A0C5345EDC5B056CDCAA3AF605701C56651B8A968AD6D7E421DD3B5F3765865D5FDC55252F25C9661CD71A43A20B13A16CFF3C7D798EF | 56 | 20171129062904 2 6 100 2047 2 FB10C8B63DDACEB1654E9B1BF39D2E5A65A310270D19FA63F4520A3B76AF3FB32C535647E803A830B96E950AAE9539547D53CA1373E7C059B5E8FC81A00E193B547C8F490B1428A4692EF9B4248E69498595D579D93CE2D867709AE84F6558381A51673E2BC55FC04B8655EDF3743980319C875C7B733996FE318A3EC6DBFEE79D596AF1A4AA7497575D8A2E378D86CC368073E9E11FFC83F85886D1FC8F1D32CC0021259D040063526D8ABF2F7E00D4B627AED022D63B84F7DB55EE10550FA9562A067EAAEE021D1893DC6DADCCADAE1C0AD8F350A20CB33DAD32035FE12CF7DD29A0BF35DD87228B512DF58C7A3DD5187E2E58FC39AC835F847A3ADB8A117B |
57 | 20170623041129 2 6 100 2047 2 EDB5FA2E865AD05F06510EFBFC71F9DFBAA5C1EEF3F6FDC2650C1D8C507DECA3422AE18746EA7D7BEA600C0AE9A0812A3DC02C099F8AF046EF014EC2A58734A716F156FCE4F19E3A9EB38F225A1CA0B868F70B3BE0CAE3AC2A20F330EF3CC33CB27D1FCB2D27505409144F957AC592567AC0B2A8099F6D58B546C7EE734FD806CDFDDE5F41C38966EB61005CA78D970BFA2C77F099BB19543B559AA118B6F303644D541E83B293138BEF5B8F0B0382ACA8DBDD693845FF6B7EE6ABF1B8B4733998F31DBF74F9CBA5145A0C5345EDC5B056CDCAA3AF605701C56651B8A968AD6D7E421DD3B5F3765865D5FDC55252F25C9661CD71A43A20B13A16CFF3C81D54F3 | 57 | 20171129062913 2 6 100 2047 5 FB10C8B63DDACEB1654E9B1BF39D2E5A65A310270D19FA63F4520A3B76AF3FB32C535647E803A830B96E950AAE9539547D53CA1373E7C059B5E8FC81A00E193B547C8F490B1428A4692EF9B4248E69498595D579D93CE2D867709AE84F6558381A51673E2BC55FC04B8655EDF3743980319C875C7B733996FE318A3EC6DBFEE79D596AF1A4AA7497575D8A2E378D86CC368073E9E11FFC83F85886D1FC8F1D32CC0021259D040063526D8ABF2F7E00D4B627AED022D63B84F7DB55EE10550FA9562A067EAAEE021D1893DC6DADCCADAE1C0AD8F350A20CB33DAD32035FE12CF7DD29A0BF35DD87228B512DF58C7A3DD5187E2E58FC39AC835F847A3ADB95C4A7 |
58 | 20170623041311 2 6 100 2047 5 EDB5FA2E865AD05F06510EFBFC71F9DFBAA5C1EEF3F6FDC2650C1D8C507DECA3422AE18746EA7D7BEA600C0AE9A0812A3DC02C099F8AF046EF014EC2A58734A716F156FCE4F19E3A9EB38F225A1CA0B868F70B3BE0CAE3AC2A20F330EF3CC33CB27D1FCB2D27505409144F957AC592567AC0B2A8099F6D58B546C7EE734FD806CDFDDE5F41C38966EB61005CA78D970BFA2C77F099BB19543B559AA118B6F303644D541E83B293138BEF5B8F0B0382ACA8DBDD693845FF6B7EE6ABF1B8B4733998F31DBF74F9CBA5145A0C5345EDC5B056CDCAA3AF605701C56651B8A968AD6D7E421DD3B5F3765865D5FDC55252F25C9661CD71A43A20B13A16CFF3C919987F | 58 | 20171129063020 2 6 100 2047 5 FB10C8B63DDACEB1654E9B1BF39D2E5A65A310270D19FA63F4520A3B76AF3FB32C535647E803A830B96E950AAE9539547D53CA1373E7C059B5E8FC81A00E193B547C8F490B1428A4692EF9B4248E69498595D579D93CE2D867709AE84F6558381A51673E2BC55FC04B8655EDF3743980319C875C7B733996FE318A3EC6DBFEE79D596AF1A4AA7497575D8A2E378D86CC368073E9E11FFC83F85886D1FC8F1D32CC0021259D040063526D8ABF2F7E00D4B627AED022D63B84F7DB55EE10550FA9562A067EAAEE021D1893DC6DADCCADAE1C0AD8F350A20CB33DAD32035FE12CF7DD29A0BF35DD87228B512DF58C7A3DD5187E2E58FC39AC835F847A3ADC1E13B7 |
59 | 20170623041314 2 6 100 2047 2 EDB5FA2E865AD05F06510EFBFC71F9DFBAA5C1EEF3F6FDC2650C1D8C507DECA3422AE18746EA7D7BEA600C0AE9A0812A3DC02C099F8AF046EF014EC2A58734A716F156FCE4F19E3A9EB38F225A1CA0B868F70B3BE0CAE3AC2A20F330EF3CC33CB27D1FCB2D27505409144F957AC592567AC0B2A8099F6D58B546C7EE734FD806CDFDDE5F41C38966EB61005CA78D970BFA2C77F099BB19543B559AA118B6F303644D541E83B293138BEF5B8F0B0382ACA8DBDD693845FF6B7EE6ABF1B8B4733998F31DBF74F9CBA5145A0C5345EDC5B056CDCAA3AF605701C56651B8A968AD6D7E421DD3B5F3765865D5FDC55252F25C9661CD71A43A20B13A16CFF3C91A831B | 59 | 20171129063054 2 6 100 2047 2 FB10C8B63DDACEB1654E9B1BF39D2E5A65A310270D19FA63F4520A3B76AF3FB32C535647E803A830B96E950AAE9539547D53CA1373E7C059B5E8FC81A00E193B547C8F490B1428A4692EF9B4248E69498595D579D93CE2D867709AE84F6558381A51673E2BC55FC04B8655EDF3743980319C875C7B733996FE318A3EC6DBFEE79D596AF1A4AA7497575D8A2E378D86CC368073E9E11FFC83F85886D1FC8F1D32CC0021259D040063526D8ABF2F7E00D4B627AED022D63B84F7DB55EE10550FA9562A067EAAEE021D1893DC6DADCCADAE1C0AD8F350A20CB33DAD32035FE12CF7DD29A0BF35DD87228B512DF58C7A3DD5187E2E58FC39AC835F847A3ADC606493 |
60 | 20170623041341 2 6 100 2047 5 EDB5FA2E865AD05F06510EFBFC71F9DFBAA5C1EEF3F6FDC2650C1D8C507DECA3422AE18746EA7D7BEA600C0AE9A0812A3DC02C099F8AF046EF014EC2A58734A716F156FCE4F19E3A9EB38F225A1CA0B868F70B3BE0CAE3AC2A20F330EF3CC33CB27D1FCB2D27505409144F957AC592567AC0B2A8099F6D58B546C7EE734FD806CDFDDE5F41C38966EB61005CA78D970BFA2C77F099BB19543B559AA118B6F303644D541E83B293138BEF5B8F0B0382ACA8DBDD693845FF6B7EE6ABF1B8B4733998F31DBF74F9CBA5145A0C5345EDC5B056CDCAA3AF605701C56651B8A968AD6D7E421DD3B5F3765865D5FDC55252F25C9661CD71A43A20B13A16CFF3C95422FF | 60 | 20171129063136 2 6 100 2047 5 FB10C8B63DDACEB1654E9B1BF39D2E5A65A310270D19FA63F4520A3B76AF3FB32C535647E803A830B96E950AAE9539547D53CA1373E7C059B5E8FC81A00E193B547C8F490B1428A4692EF9B4248E69498595D579D93CE2D867709AE84F6558381A51673E2BC55FC04B8655EDF3743980319C875C7B733996FE318A3EC6DBFEE79D596AF1A4AA7497575D8A2E378D86CC368073E9E11FFC83F85886D1FC8F1D32CC0021259D040063526D8ABF2F7E00D4B627AED022D63B84F7DB55EE10550FA9562A067EAAEE021D1893DC6DADCCADAE1C0AD8F350A20CB33DAD32035FE12CF7DD29A0BF35DD87228B512DF58C7A3DD5187E2E58FC39AC835F847A3ADCB2F54F |
61 | 20170623041350 2 6 100 2047 5 EDB5FA2E865AD05F06510EFBFC71F9DFBAA5C1EEF3F6FDC2650C1D8C507DECA3422AE18746EA7D7BEA600C0AE9A0812A3DC02C099F8AF046EF014EC2A58734A716F156FCE4F19E3A9EB38F225A1CA0B868F70B3BE0CAE3AC2A20F330EF3CC33CB27D1FCB2D27505409144F957AC592567AC0B2A8099F6D58B546C7EE734FD806CDFDDE5F41C38966EB61005CA78D970BFA2C77F099BB19543B559AA118B6F303644D541E83B293138BEF5B8F0B0382ACA8DBDD693845FF6B7EE6ABF1B8B4733998F31DBF74F9CBA5145A0C5345EDC5B056CDCAA3AF605701C56651B8A968AD6D7E421DD3B5F3765865D5FDC55252F25C9661CD71A43A20B13A16CFF3C9646B7F | 61 | 20171129063229 2 6 100 2047 5 FB10C8B63DDACEB1654E9B1BF39D2E5A65A310270D19FA63F4520A3B76AF3FB32C535647E803A830B96E950AAE9539547D53CA1373E7C059B5E8FC81A00E193B547C8F490B1428A4692EF9B4248E69498595D579D93CE2D867709AE84F6558381A51673E2BC55FC04B8655EDF3743980319C875C7B733996FE318A3EC6DBFEE79D596AF1A4AA7497575D8A2E378D86CC368073E9E11FFC83F85886D1FC8F1D32CC0021259D040063526D8ABF2F7E00D4B627AED022D63B84F7DB55EE10550FA9562A067EAAEE021D1893DC6DADCCADAE1C0AD8F350A20CB33DAD32035FE12CF7DD29A0BF35DD87228B512DF58C7A3DD5187E2E58FC39AC835F847A3ADD20E077 |
62 | 20170623041354 2 6 100 2047 5 EDB5FA2E865AD05F06510EFBFC71F9DFBAA5C1EEF3F6FDC2650C1D8C507DECA3422AE18746EA7D7BEA600C0AE9A0812A3DC02C099F8AF046EF014EC2A58734A716F156FCE4F19E3A9EB38F225A1CA0B868F70B3BE0CAE3AC2A20F330EF3CC33CB27D1FCB2D27505409144F957AC592567AC0B2A8099F6D58B546C7EE734FD806CDFDDE5F41C38966EB61005CA78D970BFA2C77F099BB19543B559AA118B6F303644D541E83B293138BEF5B8F0B0382ACA8DBDD693845FF6B7EE6ABF1B8B4733998F31DBF74F9CBA5145A0C5345EDC5B056CDCAA3AF605701C56651B8A968AD6D7E421DD3B5F3765865D5FDC55252F25C9661CD71A43A20B13A16CFF3C9662E87 | 62 | 20171129063237 2 6 100 2047 2 FB10C8B63DDACEB1654E9B1BF39D2E5A65A310270D19FA63F4520A3B76AF3FB32C535647E803A830B96E950AAE9539547D53CA1373E7C059B5E8FC81A00E193B547C8F490B1428A4692EF9B4248E69498595D579D93CE2D867709AE84F6558381A51673E2BC55FC04B8655EDF3743980319C875C7B733996FE318A3EC6DBFEE79D596AF1A4AA7497575D8A2E378D86CC368073E9E11FFC83F85886D1FC8F1D32CC0021259D040063526D8ABF2F7E00D4B627AED022D63B84F7DB55EE10550FA9562A067EAAEE021D1893DC6DADCCADAE1C0AD8F350A20CB33DAD32035FE12CF7DD29A0BF35DD87228B512DF58C7A3DD5187E2E58FC39AC835F847A3ADD2BAEB3 |
63 | 20170623041503 2 6 100 2047 2 EDB5FA2E865AD05F06510EFBFC71F9DFBAA5C1EEF3F6FDC2650C1D8C507DECA3422AE18746EA7D7BEA600C0AE9A0812A3DC02C099F8AF046EF014EC2A58734A716F156FCE4F19E3A9EB38F225A1CA0B868F70B3BE0CAE3AC2A20F330EF3CC33CB27D1FCB2D27505409144F957AC592567AC0B2A8099F6D58B546C7EE734FD806CDFDDE5F41C38966EB61005CA78D970BFA2C77F099BB19543B559AA118B6F303644D541E83B293138BEF5B8F0B0382ACA8DBDD693845FF6B7EE6ABF1B8B4733998F31DBF74F9CBA5145A0C5345EDC5B056CDCAA3AF605701C56651B8A968AD6D7E421DD3B5F3765865D5FDC55252F25C9661CD71A43A20B13A16CFF3CA105123 | 63 | 20171129063257 2 6 100 2047 5 FB10C8B63DDACEB1654E9B1BF39D2E5A65A310270D19FA63F4520A3B76AF3FB32C535647E803A830B96E950AAE9539547D53CA1373E7C059B5E8FC81A00E193B547C8F490B1428A4692EF9B4248E69498595D579D93CE2D867709AE84F6558381A51673E2BC55FC04B8655EDF3743980319C875C7B733996FE318A3EC6DBFEE79D596AF1A4AA7497575D8A2E378D86CC368073E9E11FFC83F85886D1FC8F1D32CC0021259D040063526D8ABF2F7E00D4B627AED022D63B84F7DB55EE10550FA9562A067EAAEE021D1893DC6DADCCADAE1C0AD8F350A20CB33DAD32035FE12CF7DD29A0BF35DD87228B512DF58C7A3DD5187E2E58FC39AC835F847A3ADD51762F |
64 | 20170623041522 2 6 100 2047 5 EDB5FA2E865AD05F06510EFBFC71F9DFBAA5C1EEF3F6FDC2650C1D8C507DECA3422AE18746EA7D7BEA600C0AE9A0812A3DC02C099F8AF046EF014EC2A58734A716F156FCE4F19E3A9EB38F225A1CA0B868F70B3BE0CAE3AC2A20F330EF3CC33CB27D1FCB2D27505409144F957AC592567AC0B2A8099F6D58B546C7EE734FD806CDFDDE5F41C38966EB61005CA78D970BFA2C77F099BB19543B559AA118B6F303644D541E83B293138BEF5B8F0B0382ACA8DBDD693845FF6B7EE6ABF1B8B4733998F31DBF74F9CBA5145A0C5345EDC5B056CDCAA3AF605701C56651B8A968AD6D7E421DD3B5F3765865D5FDC55252F25C9661CD71A43A20B13A16CFF3CA3BE707 | 64 | 20171129063345 2 6 100 2047 2 FB10C8B63DDACEB1654E9B1BF39D2E5A65A310270D19FA63F4520A3B76AF3FB32C535647E803A830B96E950AAE9539547D53CA1373E7C059B5E8FC81A00E193B547C8F490B1428A4692EF9B4248E69498595D579D93CE2D867709AE84F6558381A51673E2BC55FC04B8655EDF3743980319C875C7B733996FE318A3EC6DBFEE79D596AF1A4AA7497575D8A2E378D86CC368073E9E11FFC83F85886D1FC8F1D32CC0021259D040063526D8ABF2F7E00D4B627AED022D63B84F7DB55EE10550FA9562A067EAAEE021D1893DC6DADCCADAE1C0AD8F350A20CB33DAD32035FE12CF7DD29A0BF35DD87228B512DF58C7A3DD5187E2E58FC39AC835F847A3ADDB29C0B |
65 | 20170623041541 2 6 100 2047 2 EDB5FA2E865AD05F06510EFBFC71F9DFBAA5C1EEF3F6FDC2650C1D8C507DECA3422AE18746EA7D7BEA600C0AE9A0812A3DC02C099F8AF046EF014EC2A58734A716F156FCE4F19E3A9EB38F225A1CA0B868F70B3BE0CAE3AC2A20F330EF3CC33CB27D1FCB2D27505409144F957AC592567AC0B2A8099F6D58B546C7EE734FD806CDFDDE5F41C38966EB61005CA78D970BFA2C77F099BB19543B559AA118B6F303644D541E83B293138BEF5B8F0B0382ACA8DBDD693845FF6B7EE6ABF1B8B4733998F31DBF74F9CBA5145A0C5345EDC5B056CDCAA3AF605701C56651B8A968AD6D7E421DD3B5F3765865D5FDC55252F25C9661CD71A43A20B13A16CFF3CA620DAB | 65 | 20171129063402 2 6 100 2047 5 FB10C8B63DDACEB1654E9B1BF39D2E5A65A310270D19FA63F4520A3B76AF3FB32C535647E803A830B96E950AAE9539547D53CA1373E7C059B5E8FC81A00E193B547C8F490B1428A4692EF9B4248E69498595D579D93CE2D867709AE84F6558381A51673E2BC55FC04B8655EDF3743980319C875C7B733996FE318A3EC6DBFEE79D596AF1A4AA7497575D8A2E378D86CC368073E9E11FFC83F85886D1FC8F1D32CC0021259D040063526D8ABF2F7E00D4B627AED022D63B84F7DB55EE10550FA9562A067EAAEE021D1893DC6DADCCADAE1C0AD8F350A20CB33DAD32035FE12CF7DD29A0BF35DD87228B512DF58C7A3DD5187E2E58FC39AC835F847A3ADDD1340F |
66 | 20170623041546 2 6 100 2047 2 EDB5FA2E865AD05F06510EFBFC71F9DFBAA5C1EEF3F6FDC2650C1D8C507DECA3422AE18746EA7D7BEA600C0AE9A0812A3DC02C099F8AF046EF014EC2A58734A716F156FCE4F19E3A9EB38F225A1CA0B868F70B3BE0CAE3AC2A20F330EF3CC33CB27D1FCB2D27505409144F957AC592567AC0B2A8099F6D58B546C7EE734FD806CDFDDE5F41C38966EB61005CA78D970BFA2C77F099BB19543B559AA118B6F303644D541E83B293138BEF5B8F0B0382ACA8DBDD693845FF6B7EE6ABF1B8B4733998F31DBF74F9CBA5145A0C5345EDC5B056CDCAA3AF605701C56651B8A968AD6D7E421DD3B5F3765865D5FDC55252F25C9661CD71A43A20B13A16CFF3CA66FFC3 | 66 | 20171129063440 2 6 100 2047 2 FB10C8B63DDACEB1654E9B1BF39D2E5A65A310270D19FA63F4520A3B76AF3FB32C535647E803A830B96E950AAE9539547D53CA1373E7C059B5E8FC81A00E193B547C8F490B1428A4692EF9B4248E69498595D579D93CE2D867709AE84F6558381A51673E2BC55FC04B8655EDF3743980319C875C7B733996FE318A3EC6DBFEE79D596AF1A4AA7497575D8A2E378D86CC368073E9E11FFC83F85886D1FC8F1D32CC0021259D040063526D8ABF2F7E00D4B627AED022D63B84F7DB55EE10550FA9562A067EAAEE021D1893DC6DADCCADAE1C0AD8F350A20CB33DAD32035FE12CF7DD29A0BF35DD87228B512DF58C7A3DD5187E2E58FC39AC835F847A3ADE1D2F13 |
67 | 20170623041620 2 6 100 2047 2 EDB5FA2E865AD05F06510EFBFC71F9DFBAA5C1EEF3F6FDC2650C1D8C507DECA3422AE18746EA7D7BEA600C0AE9A0812A3DC02C099F8AF046EF014EC2A58734A716F156FCE4F19E3A9EB38F225A1CA0B868F70B3BE0CAE3AC2A20F330EF3CC33CB27D1FCB2D27505409144F957AC592567AC0B2A8099F6D58B546C7EE734FD806CDFDDE5F41C38966EB61005CA78D970BFA2C77F099BB19543B559AA118B6F303644D541E83B293138BEF5B8F0B0382ACA8DBDD693845FF6B7EE6ABF1B8B4733998F31DBF74F9CBA5145A0C5345EDC5B056CDCAA3AF605701C56651B8A968AD6D7E421DD3B5F3765865D5FDC55252F25C9661CD71A43A20B13A16CFF3CAB69493 | 67 | 20171129063453 2 6 100 2047 2 FB10C8B63DDACEB1654E9B1BF39D2E5A65A310270D19FA63F4520A3B76AF3FB32C535647E803A830B96E950AAE9539547D53CA1373E7C059B5E8FC81A00E193B547C8F490B1428A4692EF9B4248E69498595D579D93CE2D867709AE84F6558381A51673E2BC55FC04B8655EDF3743980319C875C7B733996FE318A3EC6DBFEE79D596AF1A4AA7497575D8A2E378D86CC368073E9E11FFC83F85886D1FC8F1D32CC0021259D040063526D8ABF2F7E00D4B627AED022D63B84F7DB55EE10550FA9562A067EAAEE021D1893DC6DADCCADAE1C0AD8F350A20CB33DAD32035FE12CF7DD29A0BF35DD87228B512DF58C7A3DD5187E2E58FC39AC835F847A3ADE32DC9B |
68 | 20170623041704 2 6 100 2047 2 EDB5FA2E865AD05F06510EFBFC71F9DFBAA5C1EEF3F6FDC2650C1D8C507DECA3422AE18746EA7D7BEA600C0AE9A0812A3DC02C099F8AF046EF014EC2A58734A716F156FCE4F19E3A9EB38F225A1CA0B868F70B3BE0CAE3AC2A20F330EF3CC33CB27D1FCB2D27505409144F957AC592567AC0B2A8099F6D58B546C7EE734FD806CDFDDE5F41C38966EB61005CA78D970BFA2C77F099BB19543B559AA118B6F303644D541E83B293138BEF5B8F0B0382ACA8DBDD693845FF6B7EE6ABF1B8B4733998F31DBF74F9CBA5145A0C5345EDC5B056CDCAA3AF605701C56651B8A968AD6D7E421DD3B5F3765865D5FDC55252F25C9661CD71A43A20B13A16CFF3CB1C2B4B | 68 | 20171129063513 2 6 100 2047 5 FB10C8B63DDACEB1654E9B1BF39D2E5A65A310270D19FA63F4520A3B76AF3FB32C535647E803A830B96E950AAE9539547D53CA1373E7C059B5E8FC81A00E193B547C8F490B1428A4692EF9B4248E69498595D579D93CE2D867709AE84F6558381A51673E2BC55FC04B8655EDF3743980319C875C7B733996FE318A3EC6DBFEE79D596AF1A4AA7497575D8A2E378D86CC368073E9E11FFC83F85886D1FC8F1D32CC0021259D040063526D8ABF2F7E00D4B627AED022D63B84F7DB55EE10550FA9562A067EAAEE021D1893DC6DADCCADAE1C0AD8F350A20CB33DAD32035FE12CF7DD29A0BF35DD87228B512DF58C7A3DD5187E2E58FC39AC835F847A3ADE56C75F |
69 | 20170623041709 2 6 100 2047 2 EDB5FA2E865AD05F06510EFBFC71F9DFBAA5C1EEF3F6FDC2650C1D8C507DECA3422AE18746EA7D7BEA600C0AE9A0812A3DC02C099F8AF046EF014EC2A58734A716F156FCE4F19E3A9EB38F225A1CA0B868F70B3BE0CAE3AC2A20F330EF3CC33CB27D1FCB2D27505409144F957AC592567AC0B2A8099F6D58B546C7EE734FD806CDFDDE5F41C38966EB61005CA78D970BFA2C77F099BB19543B559AA118B6F303644D541E83B293138BEF5B8F0B0382ACA8DBDD693845FF6B7EE6ABF1B8B4733998F31DBF74F9CBA5145A0C5345EDC5B056CDCAA3AF605701C56651B8A968AD6D7E421DD3B5F3765865D5FDC55252F25C9661CD71A43A20B13A16CFF3CB1FD10B | 69 | 20171129063518 2 6 100 2047 5 FB10C8B63DDACEB1654E9B1BF39D2E5A65A310270D19FA63F4520A3B76AF3FB32C535647E803A830B96E950AAE9539547D53CA1373E7C059B5E8FC81A00E193B547C8F490B1428A4692EF9B4248E69498595D579D93CE2D867709AE84F6558381A51673E2BC55FC04B8655EDF3743980319C875C7B733996FE318A3EC6DBFEE79D596AF1A4AA7497575D8A2E378D86CC368073E9E11FFC83F85886D1FC8F1D32CC0021259D040063526D8ABF2F7E00D4B627AED022D63B84F7DB55EE10550FA9562A067EAAEE021D1893DC6DADCCADAE1C0AD8F350A20CB33DAD32035FE12CF7DD29A0BF35DD87228B512DF58C7A3DD5187E2E58FC39AC835F847A3ADE5898EF |
70 | 20170623041747 2 6 100 2047 2 EDB5FA2E865AD05F06510EFBFC71F9DFBAA5C1EEF3F6FDC2650C1D8C507DECA3422AE18746EA7D7BEA600C0AE9A0812A3DC02C099F8AF046EF014EC2A58734A716F156FCE4F19E3A9EB38F225A1CA0B868F70B3BE0CAE3AC2A20F330EF3CC33CB27D1FCB2D27505409144F957AC592567AC0B2A8099F6D58B546C7EE734FD806CDFDDE5F41C38966EB61005CA78D970BFA2C77F099BB19543B559AA118B6F303644D541E83B293138BEF5B8F0B0382ACA8DBDD693845FF6B7EE6ABF1B8B4733998F31DBF74F9CBA5145A0C5345EDC5B056CDCAA3AF605701C56651B8A968AD6D7E421DD3B5F3765865D5FDC55252F25C9661CD71A43A20B13A16CFF3CB7550DB | 70 | 20171129063545 2 6 100 2047 5 FB10C8B63DDACEB1654E9B1BF39D2E5A65A310270D19FA63F4520A3B76AF3FB32C535647E803A830B96E950AAE9539547D53CA1373E7C059B5E8FC81A00E193B547C8F490B1428A4692EF9B4248E69498595D579D93CE2D867709AE84F6558381A51673E2BC55FC04B8655EDF3743980319C875C7B733996FE318A3EC6DBFEE79D596AF1A4AA7497575D8A2E378D86CC368073E9E11FFC83F85886D1FC8F1D32CC0021259D040063526D8ABF2F7E00D4B627AED022D63B84F7DB55EE10550FA9562A067EAAEE021D1893DC6DADCCADAE1C0AD8F350A20CB33DAD32035FE12CF7DD29A0BF35DD87228B512DF58C7A3DD5187E2E58FC39AC835F847A3ADE8E3FC7 |
71 | 20170623041822 2 6 100 2047 2 EDB5FA2E865AD05F06510EFBFC71F9DFBAA5C1EEF3F6FDC2650C1D8C507DECA3422AE18746EA7D7BEA600C0AE9A0812A3DC02C099F8AF046EF014EC2A58734A716F156FCE4F19E3A9EB38F225A1CA0B868F70B3BE0CAE3AC2A20F330EF3CC33CB27D1FCB2D27505409144F957AC592567AC0B2A8099F6D58B546C7EE734FD806CDFDDE5F41C38966EB61005CA78D970BFA2C77F099BB19543B559AA118B6F303644D541E83B293138BEF5B8F0B0382ACA8DBDD693845FF6B7EE6ABF1B8B4733998F31DBF74F9CBA5145A0C5345EDC5B056CDCAA3AF605701C56651B8A968AD6D7E421DD3B5F3765865D5FDC55252F25C9661CD71A43A20B13A16CFF3CBC63D2B | 71 | 20171129063559 2 6 100 2047 2 FB10C8B63DDACEB1654E9B1BF39D2E5A65A310270D19FA63F4520A3B76AF3FB32C535647E803A830B96E950AAE9539547D53CA1373E7C059B5E8FC81A00E193B547C8F490B1428A4692EF9B4248E69498595D579D93CE2D867709AE84F6558381A51673E2BC55FC04B8655EDF3743980319C875C7B733996FE318A3EC6DBFEE79D596AF1A4AA7497575D8A2E378D86CC368073E9E11FFC83F85886D1FC8F1D32CC0021259D040063526D8ABF2F7E00D4B627AED022D63B84F7DB55EE10550FA9562A067EAAEE021D1893DC6DADCCADAE1C0AD8F350A20CB33DAD32035FE12CF7DD29A0BF35DD87228B512DF58C7A3DD5187E2E58FC39AC835F847A3ADEA2F2AB |
72 | 20170623041830 2 6 100 2047 2 EDB5FA2E865AD05F06510EFBFC71F9DFBAA5C1EEF3F6FDC2650C1D8C507DECA3422AE18746EA7D7BEA600C0AE9A0812A3DC02C099F8AF046EF014EC2A58734A716F156FCE4F19E3A9EB38F225A1CA0B868F70B3BE0CAE3AC2A20F330EF3CC33CB27D1FCB2D27505409144F957AC592567AC0B2A8099F6D58B546C7EE734FD806CDFDDE5F41C38966EB61005CA78D970BFA2C77F099BB19543B559AA118B6F303644D541E83B293138BEF5B8F0B0382ACA8DBDD693845FF6B7EE6ABF1B8B4733998F31DBF74F9CBA5145A0C5345EDC5B056CDCAA3AF605701C56651B8A968AD6D7E421DD3B5F3765865D5FDC55252F25C9661CD71A43A20B13A16CFF3CBD499AB | 72 | 20171129063613 2 6 100 2047 5 FB10C8B63DDACEB1654E9B1BF39D2E5A65A310270D19FA63F4520A3B76AF3FB32C535647E803A830B96E950AAE9539547D53CA1373E7C059B5E8FC81A00E193B547C8F490B1428A4692EF9B4248E69498595D579D93CE2D867709AE84F6558381A51673E2BC55FC04B8655EDF3743980319C875C7B733996FE318A3EC6DBFEE79D596AF1A4AA7497575D8A2E378D86CC368073E9E11FFC83F85886D1FC8F1D32CC0021259D040063526D8ABF2F7E00D4B627AED022D63B84F7DB55EE10550FA9562A067EAAEE021D1893DC6DADCCADAE1C0AD8F350A20CB33DAD32035FE12CF7DD29A0BF35DD87228B512DF58C7A3DD5187E2E58FC39AC835F847A3ADEB8D03F |
73 | 20170623043901 2 6 100 3071 2 E795DA675C82260F11D7C50B677AE8A8D94BF342724BB06FA0D426CE2E83E8971A1BE2AC59516488B25D561568B14DBBFFB5F33686D2952409B9C20FC19A13CB91C9176420F59F464DC198E254B87C765DC12B885CF1A463858C3CB0A918AF66C6A2CA06A48B4D5BDEB5A56B24C36BA330488DFCBDD499957E755CCE704F183CB4549441A7D761C22B7F7CB66BE50F0A6591F17778F51E73544B765E83A3C00BD3309F8CE1B135A3DD481DBE8C2CEE54E8DDF1351015E70D9012662E69F654A5A9F68C416167685A1695C8139BA1825287C98680945506D5AB750BEB68C6D2B430E7E4043D0A00DECDA77F81A2432929F530C5BC0CBBC011095D897BD81FB98792345F5372BA53E53F31FB09730C58E8FDA9F7C1EBA0AEA4FE50B2B5CE146043CB18BFB3A12F06ED1D3287242D3D59E85E0A5E243626525D3EAD946126B9F32590011EEA0EDD5E2025037D51940B3E1A45B614A23F48278977535E3773F0AA2A24413F4A397AC0881582E8832C7B140C0BA4818A55C8620FD2BEBB5508B03E93 | 73 | 20171129063626 2 6 100 2047 5 FB10C8B63DDACEB1654E9B1BF39D2E5A65A310270D19FA63F4520A3B76AF3FB32C535647E803A830B96E950AAE9539547D53CA1373E7C059B5E8FC81A00E193B547C8F490B1428A4692EF9B4248E69498595D579D93CE2D867709AE84F6558381A51673E2BC55FC04B8655EDF3743980319C875C7B733996FE318A3EC6DBFEE79D596AF1A4AA7497575D8A2E378D86CC368073E9E11FFC83F85886D1FC8F1D32CC0021259D040063526D8ABF2F7E00D4B627AED022D63B84F7DB55EE10550FA9562A067EAAEE021D1893DC6DADCCADAE1C0AD8F350A20CB33DAD32035FE12CF7DD29A0BF35DD87228B512DF58C7A3DD5187E2E58FC39AC835F847A3ADECF0D4F |
74 | 20170623044452 2 6 100 3071 5 E795DA675C82260F11D7C50B677AE8A8D94BF342724BB06FA0D426CE2E83E8971A1BE2AC59516488B25D561568B14DBBFFB5F33686D2952409B9C20FC19A13CB91C9176420F59F464DC198E254B87C765DC12B885CF1A463858C3CB0A918AF66C6A2CA06A48B4D5BDEB5A56B24C36BA330488DFCBDD499957E755CCE704F183CB4549441A7D761C22B7F7CB66BE50F0A6591F17778F51E73544B765E83A3C00BD3309F8CE1B135A3DD481DBE8C2CEE54E8DDF1351015E70D9012662E69F654A5A9F68C416167685A1695C8139BA1825287C98680945506D5AB750BEB68C6D2B430E7E4043D0A00DECDA77F81A2432929F530C5BC0CBBC011095D897BD81FB98792345F5372BA53E53F31FB09730C58E8FDA9F7C1EBA0AEA4FE50B2B5CE146043CB18BFB3A12F06ED1D3287242D3D59E85E0A5E243626525D3EAD946126B9F32590011EEA0EDD5E2025037D51940B3E1A45B614A23F48278977535E3773F0AA2A24413F4A397AC0881582E8832C7B140C0BA4818A55C8620FD2BEBB5509C5C937 | 74 | 20171129063639 2 6 100 2047 2 FB10C8B63DDACEB1654E9B1BF39D2E5A65A310270D19FA63F4520A3B76AF3FB32C535647E803A830B96E950AAE9539547D53CA1373E7C059B5E8FC81A00E193B547C8F490B1428A4692EF9B4248E69498595D579D93CE2D867709AE84F6558381A51673E2BC55FC04B8655EDF3743980319C875C7B733996FE318A3EC6DBFEE79D596AF1A4AA7497575D8A2E378D86CC368073E9E11FFC83F85886D1FC8F1D32CC0021259D040063526D8ABF2F7E00D4B627AED022D63B84F7DB55EE10550FA9562A067EAAEE021D1893DC6DADCCADAE1C0AD8F350A20CB33DAD32035FE12CF7DD29A0BF35DD87228B512DF58C7A3DD5187E2E58FC39AC835F847A3ADEE3F9DB |
75 | 20170623044600 2 6 100 3071 2 E795DA675C82260F11D7C50B677AE8A8D94BF342724BB06FA0D426CE2E83E8971A1BE2AC59516488B25D561568B14DBBFFB5F33686D2952409B9C20FC19A13CB91C9176420F59F464DC198E254B87C765DC12B885CF1A463858C3CB0A918AF66C6A2CA06A48B4D5BDEB5A56B24C36BA330488DFCBDD499957E755CCE704F183CB4549441A7D761C22B7F7CB66BE50F0A6591F17778F51E73544B765E83A3C00BD3309F8CE1B135A3DD481DBE8C2CEE54E8DDF1351015E70D9012662E69F654A5A9F68C416167685A1695C8139BA1825287C98680945506D5AB750BEB68C6D2B430E7E4043D0A00DECDA77F81A2432929F530C5BC0CBBC011095D897BD81FB98792345F5372BA53E53F31FB09730C58E8FDA9F7C1EBA0AEA4FE50B2B5CE146043CB18BFB3A12F06ED1D3287242D3D59E85E0A5E243626525D3EAD946126B9F32590011EEA0EDD5E2025037D51940B3E1A45B614A23F48278977535E3773F0AA2A24413F4A397AC0881582E8832C7B140C0BA4818A55C8620FD2BEBB5509F436FB | 75 | 20171129063648 2 6 100 2047 2 FB10C8B63DDACEB1654E9B1BF39D2E5A65A310270D19FA63F4520A3B76AF3FB32C535647E803A830B96E950AAE9539547D53CA1373E7C059B5E8FC81A00E193B547C8F490B1428A4692EF9B4248E69498595D579D93CE2D867709AE84F6558381A51673E2BC55FC04B8655EDF3743980319C875C7B733996FE318A3EC6DBFEE79D596AF1A4AA7497575D8A2E378D86CC368073E9E11FFC83F85886D1FC8F1D32CC0021259D040063526D8ABF2F7E00D4B627AED022D63B84F7DB55EE10550FA9562A067EAAEE021D1893DC6DADCCADAE1C0AD8F350A20CB33DAD32035FE12CF7DD29A0BF35DD87228B512DF58C7A3DD5187E2E58FC39AC835F847A3ADEECDD2B |
76 | 20170623044825 2 6 100 3071 2 E795DA675C82260F11D7C50B677AE8A8D94BF342724BB06FA0D426CE2E83E8971A1BE2AC59516488B25D561568B14DBBFFB5F33686D2952409B9C20FC19A13CB91C9176420F59F464DC198E254B87C765DC12B885CF1A463858C3CB0A918AF66C6A2CA06A48B4D5BDEB5A56B24C36BA330488DFCBDD499957E755CCE704F183CB4549441A7D761C22B7F7CB66BE50F0A6591F17778F51E73544B765E83A3C00BD3309F8CE1B135A3DD481DBE8C2CEE54E8DDF1351015E70D9012662E69F654A5A9F68C416167685A1695C8139BA1825287C98680945506D5AB750BEB68C6D2B430E7E4043D0A00DECDA77F81A2432929F530C5BC0CBBC011095D897BD81FB98792345F5372BA53E53F31FB09730C58E8FDA9F7C1EBA0AEA4FE50B2B5CE146043CB18BFB3A12F06ED1D3287242D3D59E85E0A5E243626525D3EAD946126B9F32590011EEA0EDD5E2025037D51940B3E1A45B614A23F48278977535E3773F0AA2A24413F4A397AC0881582E8832C7B140C0BA4818A55C8620FD2BEBB550A640733 | 76 | 20171129063728 2 6 100 2047 5 FB10C8B63DDACEB1654E9B1BF39D2E5A65A310270D19FA63F4520A3B76AF3FB32C535647E803A830B96E950AAE9539547D53CA1373E7C059B5E8FC81A00E193B547C8F490B1428A4692EF9B4248E69498595D579D93CE2D867709AE84F6558381A51673E2BC55FC04B8655EDF3743980319C875C7B733996FE318A3EC6DBFEE79D596AF1A4AA7497575D8A2E378D86CC368073E9E11FFC83F85886D1FC8F1D32CC0021259D040063526D8ABF2F7E00D4B627AED022D63B84F7DB55EE10550FA9562A067EAAEE021D1893DC6DADCCADAE1C0AD8F350A20CB33DAD32035FE12CF7DD29A0BF35DD87228B512DF58C7A3DD5187E2E58FC39AC835F847A3ADF3B2B1F |
77 | 20170623045050 2 6 100 3071 2 E795DA675C82260F11D7C50B677AE8A8D94BF342724BB06FA0D426CE2E83E8971A1BE2AC59516488B25D561568B14DBBFFB5F33686D2952409B9C20FC19A13CB91C9176420F59F464DC198E254B87C765DC12B885CF1A463858C3CB0A918AF66C6A2CA06A48B4D5BDEB5A56B24C36BA330488DFCBDD499957E755CCE704F183CB4549441A7D761C22B7F7CB66BE50F0A6591F17778F51E73544B765E83A3C00BD3309F8CE1B135A3DD481DBE8C2CEE54E8DDF1351015E70D9012662E69F654A5A9F68C416167685A1695C8139BA1825287C98680945506D5AB750BEB68C6D2B430E7E4043D0A00DECDA77F81A2432929F530C5BC0CBBC011095D897BD81FB98792345F5372BA53E53F31FB09730C58E8FDA9F7C1EBA0AEA4FE50B2B5CE146043CB18BFB3A12F06ED1D3287242D3D59E85E0A5E243626525D3EAD946126B9F32590011EEA0EDD5E2025037D51940B3E1A45B614A23F48278977535E3773F0AA2A24413F4A397AC0881582E8832C7B140C0BA4818A55C8620FD2BEBB550AD6755B | 77 | 20171129063831 2 6 100 2047 2 FB10C8B63DDACEB1654E9B1BF39D2E5A65A310270D19FA63F4520A3B76AF3FB32C535647E803A830B96E950AAE9539547D53CA1373E7C059B5E8FC81A00E193B547C8F490B1428A4692EF9B4248E69498595D579D93CE2D867709AE84F6558381A51673E2BC55FC04B8655EDF3743980319C875C7B733996FE318A3EC6DBFEE79D596AF1A4AA7497575D8A2E378D86CC368073E9E11FFC83F85886D1FC8F1D32CC0021259D040063526D8ABF2F7E00D4B627AED022D63B84F7DB55EE10550FA9562A067EAAEE021D1893DC6DADCCADAE1C0AD8F350A20CB33DAD32035FE12CF7DD29A0BF35DD87228B512DF58C7A3DD5187E2E58FC39AC835F847A3ADFB933CB |
78 | 20170623045124 2 6 100 3071 2 E795DA675C82260F11D7C50B677AE8A8D94BF342724BB06FA0D426CE2E83E8971A1BE2AC59516488B25D561568B14DBBFFB5F33686D2952409B9C20FC19A13CB91C9176420F59F464DC198E254B87C765DC12B885CF1A463858C3CB0A918AF66C6A2CA06A48B4D5BDEB5A56B24C36BA330488DFCBDD499957E755CCE704F183CB4549441A7D761C22B7F7CB66BE50F0A6591F17778F51E73544B765E83A3C00BD3309F8CE1B135A3DD481DBE8C2CEE54E8DDF1351015E70D9012662E69F654A5A9F68C416167685A1695C8139BA1825287C98680945506D5AB750BEB68C6D2B430E7E4043D0A00DECDA77F81A2432929F530C5BC0CBBC011095D897BD81FB98792345F5372BA53E53F31FB09730C58E8FDA9F7C1EBA0AEA4FE50B2B5CE146043CB18BFB3A12F06ED1D3287242D3D59E85E0A5E243626525D3EAD946126B9F32590011EEA0EDD5E2025037D51940B3E1A45B614A23F48278977535E3773F0AA2A24413F4A397AC0881582E8832C7B140C0BA4818A55C8620FD2BEBB550AE93B43 | 78 | 20171129063954 2 6 100 2047 5 FB10C8B63DDACEB1654E9B1BF39D2E5A65A310270D19FA63F4520A3B76AF3FB32C535647E803A830B96E950AAE9539547D53CA1373E7C059B5E8FC81A00E193B547C8F490B1428A4692EF9B4248E69498595D579D93CE2D867709AE84F6558381A51673E2BC55FC04B8655EDF3743980319C875C7B733996FE318A3EC6DBFEE79D596AF1A4AA7497575D8A2E378D86CC368073E9E11FFC83F85886D1FC8F1D32CC0021259D040063526D8ABF2F7E00D4B627AED022D63B84F7DB55EE10550FA9562A067EAAEE021D1893DC6DADCCADAE1C0AD8F350A20CB33DAD32035FE12CF7DD29A0BF35DD87228B512DF58C7A3DD5187E2E58FC39AC835F847A3AE05FFACF |
79 | 20170623045420 2 6 100 3071 2 E795DA675C82260F11D7C50B677AE8A8D94BF342724BB06FA0D426CE2E83E8971A1BE2AC59516488B25D561568B14DBBFFB5F33686D2952409B9C20FC19A13CB91C9176420F59F464DC198E254B87C765DC12B885CF1A463858C3CB0A918AF66C6A2CA06A48B4D5BDEB5A56B24C36BA330488DFCBDD499957E755CCE704F183CB4549441A7D761C22B7F7CB66BE50F0A6591F17778F51E73544B765E83A3C00BD3309F8CE1B135A3DD481DBE8C2CEE54E8DDF1351015E70D9012662E69F654A5A9F68C416167685A1695C8139BA1825287C98680945506D5AB750BEB68C6D2B430E7E4043D0A00DECDA77F81A2432929F530C5BC0CBBC011095D897BD81FB98792345F5372BA53E53F31FB09730C58E8FDA9F7C1EBA0AEA4FE50B2B5CE146043CB18BFB3A12F06ED1D3287242D3D59E85E0A5E243626525D3EAD946126B9F32590011EEA0EDD5E2025037D51940B3E1A45B614A23F48278977535E3773F0AA2A24413F4A397AC0881582E8832C7B140C0BA4818A55C8620FD2BEBB550B6F1ED3 | 79 | 20171129064044 2 6 100 2047 2 FB10C8B63DDACEB1654E9B1BF39D2E5A65A310270D19FA63F4520A3B76AF3FB32C535647E803A830B96E950AAE9539547D53CA1373E7C059B5E8FC81A00E193B547C8F490B1428A4692EF9B4248E69498595D579D93CE2D867709AE84F6558381A51673E2BC55FC04B8655EDF3743980319C875C7B733996FE318A3EC6DBFEE79D596AF1A4AA7497575D8A2E378D86CC368073E9E11FFC83F85886D1FC8F1D32CC0021259D040063526D8ABF2F7E00D4B627AED022D63B84F7DB55EE10550FA9562A067EAAEE021D1893DC6DADCCADAE1C0AD8F350A20CB33DAD32035FE12CF7DD29A0BF35DD87228B512DF58C7A3DD5187E2E58FC39AC835F847A3AE0C83FEB |
80 | 20170623045805 2 6 100 3071 5 E795DA675C82260F11D7C50B677AE8A8D94BF342724BB06FA0D426CE2E83E8971A1BE2AC59516488B25D561568B14DBBFFB5F33686D2952409B9C20FC19A13CB91C9176420F59F464DC198E254B87C765DC12B885CF1A463858C3CB0A918AF66C6A2CA06A48B4D5BDEB5A56B24C36BA330488DFCBDD499957E755CCE704F183CB4549441A7D761C22B7F7CB66BE50F0A6591F17778F51E73544B765E83A3C00BD3309F8CE1B135A3DD481DBE8C2CEE54E8DDF1351015E70D9012662E69F654A5A9F68C416167685A1695C8139BA1825287C98680945506D5AB750BEB68C6D2B430E7E4043D0A00DECDA77F81A2432929F530C5BC0CBBC011095D897BD81FB98792345F5372BA53E53F31FB09730C58E8FDA9F7C1EBA0AEA4FE50B2B5CE146043CB18BFB3A12F06ED1D3287242D3D59E85E0A5E243626525D3EAD946126B9F32590011EEA0EDD5E2025037D51940B3E1A45B614A23F48278977535E3773F0AA2A24413F4A397AC0881582E8832C7B140C0BA4818A55C8620FD2BEBB550C20298F | 80 | 20171129064109 2 6 100 2047 2 FB10C8B63DDACEB1654E9B1BF39D2E5A65A310270D19FA63F4520A3B76AF3FB32C535647E803A830B96E950AAE9539547D53CA1373E7C059B5E8FC81A00E193B547C8F490B1428A4692EF9B4248E69498595D579D93CE2D867709AE84F6558381A51673E2BC55FC04B8655EDF3743980319C875C7B733996FE318A3EC6DBFEE79D596AF1A4AA7497575D8A2E378D86CC368073E9E11FFC83F85886D1FC8F1D32CC0021259D040063526D8ABF2F7E00D4B627AED022D63B84F7DB55EE10550FA9562A067EAAEE021D1893DC6DADCCADAE1C0AD8F350A20CB33DAD32035FE12CF7DD29A0BF35DD87228B512DF58C7A3DD5187E2E58FC39AC835F847A3AE0F81483 |
81 | 20170623045930 2 6 100 3071 5 E795DA675C82260F11D7C50B677AE8A8D94BF342724BB06FA0D426CE2E83E8971A1BE2AC59516488B25D561568B14DBBFFB5F33686D2952409B9C20FC19A13CB91C9176420F59F464DC198E254B87C765DC12B885CF1A463858C3CB0A918AF66C6A2CA06A48B4D5BDEB5A56B24C36BA330488DFCBDD499957E755CCE704F183CB4549441A7D761C22B7F7CB66BE50F0A6591F17778F51E73544B765E83A3C00BD3309F8CE1B135A3DD481DBE8C2CEE54E8DDF1351015E70D9012662E69F654A5A9F68C416167685A1695C8139BA1825287C98680945506D5AB750BEB68C6D2B430E7E4043D0A00DECDA77F81A2432929F530C5BC0CBBC011095D897BD81FB98792345F5372BA53E53F31FB09730C58E8FDA9F7C1EBA0AEA4FE50B2B5CE146043CB18BFB3A12F06ED1D3287242D3D59E85E0A5E243626525D3EAD946126B9F32590011EEA0EDD5E2025037D51940B3E1A45B614A23F48278977535E3773F0AA2A24413F4A397AC0881582E8832C7B140C0BA4818A55C8620FD2BEBB550C5914BF | 81 | 20171129064127 2 6 100 2047 2 FB10C8B63DDACEB1654E9B1BF39D2E5A65A310270D19FA63F4520A3B76AF3FB32C535647E803A830B96E950AAE9539547D53CA1373E7C059B5E8FC81A00E193B547C8F490B1428A4692EF9B4248E69498595D579D93CE2D867709AE84F6558381A51673E2BC55FC04B8655EDF3743980319C875C7B733996FE318A3EC6DBFEE79D596AF1A4AA7497575D8A2E378D86CC368073E9E11FFC83F85886D1FC8F1D32CC0021259D040063526D8ABF2F7E00D4B627AED022D63B84F7DB55EE10550FA9562A067EAAEE021D1893DC6DADCCADAE1C0AD8F350A20CB33DAD32035FE12CF7DD29A0BF35DD87228B512DF58C7A3DD5187E2E58FC39AC835F847A3AE1194DFB |
82 | 20170623050341 2 6 100 3071 2 E795DA675C82260F11D7C50B677AE8A8D94BF342724BB06FA0D426CE2E83E8971A1BE2AC59516488B25D561568B14DBBFFB5F33686D2952409B9C20FC19A13CB91C9176420F59F464DC198E254B87C765DC12B885CF1A463858C3CB0A918AF66C6A2CA06A48B4D5BDEB5A56B24C36BA330488DFCBDD499957E755CCE704F183CB4549441A7D761C22B7F7CB66BE50F0A6591F17778F51E73544B765E83A3C00BD3309F8CE1B135A3DD481DBE8C2CEE54E8DDF1351015E70D9012662E69F654A5A9F68C416167685A1695C8139BA1825287C98680945506D5AB750BEB68C6D2B430E7E4043D0A00DECDA77F81A2432929F530C5BC0CBBC011095D897BD81FB98792345F5372BA53E53F31FB09730C58E8FDA9F7C1EBA0AEA4FE50B2B5CE146043CB18BFB3A12F06ED1D3287242D3D59E85E0A5E243626525D3EAD946126B9F32590011EEA0EDD5E2025037D51940B3E1A45B614A23F48278977535E3773F0AA2A24413F4A397AC0881582E8832C7B140C0BA4818A55C8620FD2BEBB550D1A1773 | 82 | 20171129064141 2 6 100 2047 2 FB10C8B63DDACEB1654E9B1BF39D2E5A65A310270D19FA63F4520A3B76AF3FB32C535647E803A830B96E950AAE9539547D53CA1373E7C059B5E8FC81A00E193B547C8F490B1428A4692EF9B4248E69498595D579D93CE2D867709AE84F6558381A51673E2BC55FC04B8655EDF3743980319C875C7B733996FE318A3EC6DBFEE79D596AF1A4AA7497575D8A2E378D86CC368073E9E11FFC83F85886D1FC8F1D32CC0021259D040063526D8ABF2F7E00D4B627AED022D63B84F7DB55EE10550FA9562A067EAAEE021D1893DC6DADCCADAE1C0AD8F350A20CB33DAD32035FE12CF7DD29A0BF35DD87228B512DF58C7A3DD5187E2E58FC39AC835F847A3AE12EBF3B |
83 | 20170623050720 2 6 100 3071 2 E795DA675C82260F11D7C50B677AE8A8D94BF342724BB06FA0D426CE2E83E8971A1BE2AC59516488B25D561568B14DBBFFB5F33686D2952409B9C20FC19A13CB91C9176420F59F464DC198E254B87C765DC12B885CF1A463858C3CB0A918AF66C6A2CA06A48B4D5BDEB5A56B24C36BA330488DFCBDD499957E755CCE704F183CB4549441A7D761C22B7F7CB66BE50F0A6591F17778F51E73544B765E83A3C00BD3309F8CE1B135A3DD481DBE8C2CEE54E8DDF1351015E70D9012662E69F654A5A9F68C416167685A1695C8139BA1825287C98680945506D5AB750BEB68C6D2B430E7E4043D0A00DECDA77F81A2432929F530C5BC0CBBC011095D897BD81FB98792345F5372BA53E53F31FB09730C58E8FDA9F7C1EBA0AEA4FE50B2B5CE146043CB18BFB3A12F06ED1D3287242D3D59E85E0A5E243626525D3EAD946126B9F32590011EEA0EDD5E2025037D51940B3E1A45B614A23F48278977535E3773F0AA2A24413F4A397AC0881582E8832C7B140C0BA4818A55C8620FD2BEBB550DC219FB | 83 | 20171129064157 2 6 100 2047 5 FB10C8B63DDACEB1654E9B1BF39D2E5A65A310270D19FA63F4520A3B76AF3FB32C535647E803A830B96E950AAE9539547D53CA1373E7C059B5E8FC81A00E193B547C8F490B1428A4692EF9B4248E69498595D579D93CE2D867709AE84F6558381A51673E2BC55FC04B8655EDF3743980319C875C7B733996FE318A3EC6DBFEE79D596AF1A4AA7497575D8A2E378D86CC368073E9E11FFC83F85886D1FC8F1D32CC0021259D040063526D8ABF2F7E00D4B627AED022D63B84F7DB55EE10550FA9562A067EAAEE021D1893DC6DADCCADAE1C0AD8F350A20CB33DAD32035FE12CF7DD29A0BF35DD87228B512DF58C7A3DD5187E2E58FC39AC835F847A3AE14B8657 |
84 | 20170623051801 2 6 100 3071 5 E795DA675C82260F11D7C50B677AE8A8D94BF342724BB06FA0D426CE2E83E8971A1BE2AC59516488B25D561568B14DBBFFB5F33686D2952409B9C20FC19A13CB91C9176420F59F464DC198E254B87C765DC12B885CF1A463858C3CB0A918AF66C6A2CA06A48B4D5BDEB5A56B24C36BA330488DFCBDD499957E755CCE704F183CB4549441A7D761C22B7F7CB66BE50F0A6591F17778F51E73544B765E83A3C00BD3309F8CE1B135A3DD481DBE8C2CEE54E8DDF1351015E70D9012662E69F654A5A9F68C416167685A1695C8139BA1825287C98680945506D5AB750BEB68C6D2B430E7E4043D0A00DECDA77F81A2432929F530C5BC0CBBC011095D897BD81FB98792345F5372BA53E53F31FB09730C58E8FDA9F7C1EBA0AEA4FE50B2B5CE146043CB18BFB3A12F06ED1D3287242D3D59E85E0A5E243626525D3EAD946126B9F32590011EEA0EDD5E2025037D51940B3E1A45B614A23F48278977535E3773F0AA2A24413F4A397AC0881582E8832C7B140C0BA4818A55C8620FD2BEBB550FBDD1AF | 84 | 20171129064308 2 6 100 2047 2 FB10C8B63DDACEB1654E9B1BF39D2E5A65A310270D19FA63F4520A3B76AF3FB32C535647E803A830B96E950AAE9539547D53CA1373E7C059B5E8FC81A00E193B547C8F490B1428A4692EF9B4248E69498595D579D93CE2D867709AE84F6558381A51673E2BC55FC04B8655EDF3743980319C875C7B733996FE318A3EC6DBFEE79D596AF1A4AA7497575D8A2E378D86CC368073E9E11FFC83F85886D1FC8F1D32CC0021259D040063526D8ABF2F7E00D4B627AED022D63B84F7DB55EE10550FA9562A067EAAEE021D1893DC6DADCCADAE1C0AD8F350A20CB33DAD32035FE12CF7DD29A0BF35DD87228B512DF58C7A3DD5187E2E58FC39AC835F847A3AE1DFF6A3 |
85 | 20170623052216 2 6 100 3071 2 E795DA675C82260F11D7C50B677AE8A8D94BF342724BB06FA0D426CE2E83E8971A1BE2AC59516488B25D561568B14DBBFFB5F33686D2952409B9C20FC19A13CB91C9176420F59F464DC198E254B87C765DC12B885CF1A463858C3CB0A918AF66C6A2CA06A48B4D5BDEB5A56B24C36BA330488DFCBDD499957E755CCE704F183CB4549441A7D761C22B7F7CB66BE50F0A6591F17778F51E73544B765E83A3C00BD3309F8CE1B135A3DD481DBE8C2CEE54E8DDF1351015E70D9012662E69F654A5A9F68C416167685A1695C8139BA1825287C98680945506D5AB750BEB68C6D2B430E7E4043D0A00DECDA77F81A2432929F530C5BC0CBBC011095D897BD81FB98792345F5372BA53E53F31FB09730C58E8FDA9F7C1EBA0AEA4FE50B2B5CE146043CB18BFB3A12F06ED1D3287242D3D59E85E0A5E243626525D3EAD946126B9F32590011EEA0EDD5E2025037D51940B3E1A45B614A23F48278977535E3773F0AA2A24413F4A397AC0881582E8832C7B140C0BA4818A55C8620FD2BEBB5510842093 | 85 | 20171129064313 2 6 100 2047 5 FB10C8B63DDACEB1654E9B1BF39D2E5A65A310270D19FA63F4520A3B76AF3FB32C535647E803A830B96E950AAE9539547D53CA1373E7C059B5E8FC81A00E193B547C8F490B1428A4692EF9B4248E69498595D579D93CE2D867709AE84F6558381A51673E2BC55FC04B8655EDF3743980319C875C7B733996FE318A3EC6DBFEE79D596AF1A4AA7497575D8A2E378D86CC368073E9E11FFC83F85886D1FC8F1D32CC0021259D040063526D8ABF2F7E00D4B627AED022D63B84F7DB55EE10550FA9562A067EAAEE021D1893DC6DADCCADAE1C0AD8F350A20CB33DAD32035FE12CF7DD29A0BF35DD87228B512DF58C7A3DD5187E2E58FC39AC835F847A3AE1E37B6F |
86 | 20170623052416 2 6 100 3071 5 E795DA675C82260F11D7C50B677AE8A8D94BF342724BB06FA0D426CE2E83E8971A1BE2AC59516488B25D561568B14DBBFFB5F33686D2952409B9C20FC19A13CB91C9176420F59F464DC198E254B87C765DC12B885CF1A463858C3CB0A918AF66C6A2CA06A48B4D5BDEB5A56B24C36BA330488DFCBDD499957E755CCE704F183CB4549441A7D761C22B7F7CB66BE50F0A6591F17778F51E73544B765E83A3C00BD3309F8CE1B135A3DD481DBE8C2CEE54E8DDF1351015E70D9012662E69F654A5A9F68C416167685A1695C8139BA1825287C98680945506D5AB750BEB68C6D2B430E7E4043D0A00DECDA77F81A2432929F530C5BC0CBBC011095D897BD81FB98792345F5372BA53E53F31FB09730C58E8FDA9F7C1EBA0AEA4FE50B2B5CE146043CB18BFB3A12F06ED1D3287242D3D59E85E0A5E243626525D3EAD946126B9F32590011EEA0EDD5E2025037D51940B3E1A45B614A23F48278977535E3773F0AA2A24413F4A397AC0881582E8832C7B140C0BA4818A55C8620FD2BEBB5510DBFCD7 | 86 | 20171129064345 2 6 100 2047 2 FB10C8B63DDACEB1654E9B1BF39D2E5A65A310270D19FA63F4520A3B76AF3FB32C535647E803A830B96E950AAE9539547D53CA1373E7C059B5E8FC81A00E193B547C8F490B1428A4692EF9B4248E69498595D579D93CE2D867709AE84F6558381A51673E2BC55FC04B8655EDF3743980319C875C7B733996FE318A3EC6DBFEE79D596AF1A4AA7497575D8A2E378D86CC368073E9E11FFC83F85886D1FC8F1D32CC0021259D040063526D8ABF2F7E00D4B627AED022D63B84F7DB55EE10550FA9562A067EAAEE021D1893DC6DADCCADAE1C0AD8F350A20CB33DAD32035FE12CF7DD29A0BF35DD87228B512DF58C7A3DD5187E2E58FC39AC835F847A3AE21EA40B |
87 | 20170623052526 2 6 100 3071 2 E795DA675C82260F11D7C50B677AE8A8D94BF342724BB06FA0D426CE2E83E8971A1BE2AC59516488B25D561568B14DBBFFB5F33686D2952409B9C20FC19A13CB91C9176420F59F464DC198E254B87C765DC12B885CF1A463858C3CB0A918AF66C6A2CA06A48B4D5BDEB5A56B24C36BA330488DFCBDD499957E755CCE704F183CB4549441A7D761C22B7F7CB66BE50F0A6591F17778F51E73544B765E83A3C00BD3309F8CE1B135A3DD481DBE8C2CEE54E8DDF1351015E70D9012662E69F654A5A9F68C416167685A1695C8139BA1825287C98680945506D5AB750BEB68C6D2B430E7E4043D0A00DECDA77F81A2432929F530C5BC0CBBC011095D897BD81FB98792345F5372BA53E53F31FB09730C58E8FDA9F7C1EBA0AEA4FE50B2B5CE146043CB18BFB3A12F06ED1D3287242D3D59E85E0A5E243626525D3EAD946126B9F32590011EEA0EDD5E2025037D51940B3E1A45B614A23F48278977535E3773F0AA2A24413F4A397AC0881582E8832C7B140C0BA4818A55C8620FD2BEBB55110BB843 | 87 | 20171129064404 2 6 100 2047 2 FB10C8B63DDACEB1654E9B1BF39D2E5A65A310270D19FA63F4520A3B76AF3FB32C535647E803A830B96E950AAE9539547D53CA1373E7C059B5E8FC81A00E193B547C8F490B1428A4692EF9B4248E69498595D579D93CE2D867709AE84F6558381A51673E2BC55FC04B8655EDF3743980319C875C7B733996FE318A3EC6DBFEE79D596AF1A4AA7497575D8A2E378D86CC368073E9E11FFC83F85886D1FC8F1D32CC0021259D040063526D8ABF2F7E00D4B627AED022D63B84F7DB55EE10550FA9562A067EAAEE021D1893DC6DADCCADAE1C0AD8F350A20CB33DAD32035FE12CF7DD29A0BF35DD87228B512DF58C7A3DD5187E2E58FC39AC835F847A3AE23F19DB |
88 | 20170623052831 2 6 100 3071 2 E795DA675C82260F11D7C50B677AE8A8D94BF342724BB06FA0D426CE2E83E8971A1BE2AC59516488B25D561568B14DBBFFB5F33686D2952409B9C20FC19A13CB91C9176420F59F464DC198E254B87C765DC12B885CF1A463858C3CB0A918AF66C6A2CA06A48B4D5BDEB5A56B24C36BA330488DFCBDD499957E755CCE704F183CB4549441A7D761C22B7F7CB66BE50F0A6591F17778F51E73544B765E83A3C00BD3309F8CE1B135A3DD481DBE8C2CEE54E8DDF1351015E70D9012662E69F654A5A9F68C416167685A1695C8139BA1825287C98680945506D5AB750BEB68C6D2B430E7E4043D0A00DECDA77F81A2432929F530C5BC0CBBC011095D897BD81FB98792345F5372BA53E53F31FB09730C58E8FDA9F7C1EBA0AEA4FE50B2B5CE146043CB18BFB3A12F06ED1D3287242D3D59E85E0A5E243626525D3EAD946126B9F32590011EEA0EDD5E2025037D51940B3E1A45B614A23F48278977535E3773F0AA2A24413F4A397AC0881582E8832C7B140C0BA4818A55C8620FD2BEBB551196B36B | 88 | 20171129064429 2 6 100 2047 2 FB10C8B63DDACEB1654E9B1BF39D2E5A65A310270D19FA63F4520A3B76AF3FB32C535647E803A830B96E950AAE9539547D53CA1373E7C059B5E8FC81A00E193B547C8F490B1428A4692EF9B4248E69498595D579D93CE2D867709AE84F6558381A51673E2BC55FC04B8655EDF3743980319C875C7B733996FE318A3EC6DBFEE79D596AF1A4AA7497575D8A2E378D86CC368073E9E11FFC83F85886D1FC8F1D32CC0021259D040063526D8ABF2F7E00D4B627AED022D63B84F7DB55EE10550FA9562A067EAAEE021D1893DC6DADCCADAE1C0AD8F350A20CB33DAD32035FE12CF7DD29A0BF35DD87228B512DF58C7A3DD5187E2E58FC39AC835F847A3AE26AA1A3 |
89 | 20170623053119 2 6 100 3071 5 E795DA675C82260F11D7C50B677AE8A8D94BF342724BB06FA0D426CE2E83E8971A1BE2AC59516488B25D561568B14DBBFFB5F33686D2952409B9C20FC19A13CB91C9176420F59F464DC198E254B87C765DC12B885CF1A463858C3CB0A918AF66C6A2CA06A48B4D5BDEB5A56B24C36BA330488DFCBDD499957E755CCE704F183CB4549441A7D761C22B7F7CB66BE50F0A6591F17778F51E73544B765E83A3C00BD3309F8CE1B135A3DD481DBE8C2CEE54E8DDF1351015E70D9012662E69F654A5A9F68C416167685A1695C8139BA1825287C98680945506D5AB750BEB68C6D2B430E7E4043D0A00DECDA77F81A2432929F530C5BC0CBBC011095D897BD81FB98792345F5372BA53E53F31FB09730C58E8FDA9F7C1EBA0AEA4FE50B2B5CE146043CB18BFB3A12F06ED1D3287242D3D59E85E0A5E243626525D3EAD946126B9F32590011EEA0EDD5E2025037D51940B3E1A45B614A23F48278977535E3773F0AA2A24413F4A397AC0881582E8832C7B140C0BA4818A55C8620FD2BEBB551217A237 | 89 | 20171129070339 2 6 100 3071 2 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D8656503B |
90 | 20170623053458 2 6 100 3071 5 E795DA675C82260F11D7C50B677AE8A8D94BF342724BB06FA0D426CE2E83E8971A1BE2AC59516488B25D561568B14DBBFFB5F33686D2952409B9C20FC19A13CB91C9176420F59F464DC198E254B87C765DC12B885CF1A463858C3CB0A918AF66C6A2CA06A48B4D5BDEB5A56B24C36BA330488DFCBDD499957E755CCE704F183CB4549441A7D761C22B7F7CB66BE50F0A6591F17778F51E73544B765E83A3C00BD3309F8CE1B135A3DD481DBE8C2CEE54E8DDF1351015E70D9012662E69F654A5A9F68C416167685A1695C8139BA1825287C98680945506D5AB750BEB68C6D2B430E7E4043D0A00DECDA77F81A2432929F530C5BC0CBBC011095D897BD81FB98792345F5372BA53E53F31FB09730C58E8FDA9F7C1EBA0AEA4FE50B2B5CE146043CB18BFB3A12F06ED1D3287242D3D59E85E0A5E243626525D3EAD946126B9F32590011EEA0EDD5E2025037D51940B3E1A45B614A23F48278977535E3773F0AA2A24413F4A397AC0881582E8832C7B140C0BA4818A55C8620FD2BEBB5512C20307 | 90 | 20171129070431 2 6 100 3071 5 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D8673A5D7 |
91 | 20170623053734 2 6 100 3071 2 E795DA675C82260F11D7C50B677AE8A8D94BF342724BB06FA0D426CE2E83E8971A1BE2AC59516488B25D561568B14DBBFFB5F33686D2952409B9C20FC19A13CB91C9176420F59F464DC198E254B87C765DC12B885CF1A463858C3CB0A918AF66C6A2CA06A48B4D5BDEB5A56B24C36BA330488DFCBDD499957E755CCE704F183CB4549441A7D761C22B7F7CB66BE50F0A6591F17778F51E73544B765E83A3C00BD3309F8CE1B135A3DD481DBE8C2CEE54E8DDF1351015E70D9012662E69F654A5A9F68C416167685A1695C8139BA1825287C98680945506D5AB750BEB68C6D2B430E7E4043D0A00DECDA77F81A2432929F530C5BC0CBBC011095D897BD81FB98792345F5372BA53E53F31FB09730C58E8FDA9F7C1EBA0AEA4FE50B2B5CE146043CB18BFB3A12F06ED1D3287242D3D59E85E0A5E243626525D3EAD946126B9F32590011EEA0EDD5E2025037D51940B3E1A45B614A23F48278977535E3773F0AA2A24413F4A397AC0881582E8832C7B140C0BA4818A55C8620FD2BEBB55133990CB | 91 | 20171129070444 2 6 100 3071 2 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D8674FE3B |
92 | 20170623054412 2 6 100 3071 2 E795DA675C82260F11D7C50B677AE8A8D94BF342724BB06FA0D426CE2E83E8971A1BE2AC59516488B25D561568B14DBBFFB5F33686D2952409B9C20FC19A13CB91C9176420F59F464DC198E254B87C765DC12B885CF1A463858C3CB0A918AF66C6A2CA06A48B4D5BDEB5A56B24C36BA330488DFCBDD499957E755CCE704F183CB4549441A7D761C22B7F7CB66BE50F0A6591F17778F51E73544B765E83A3C00BD3309F8CE1B135A3DD481DBE8C2CEE54E8DDF1351015E70D9012662E69F654A5A9F68C416167685A1695C8139BA1825287C98680945506D5AB750BEB68C6D2B430E7E4043D0A00DECDA77F81A2432929F530C5BC0CBBC011095D897BD81FB98792345F5372BA53E53F31FB09730C58E8FDA9F7C1EBA0AEA4FE50B2B5CE146043CB18BFB3A12F06ED1D3287242D3D59E85E0A5E243626525D3EAD946126B9F32590011EEA0EDD5E2025037D51940B3E1A45B614A23F48278977535E3773F0AA2A24413F4A397AC0881582E8832C7B140C0BA4818A55C8620FD2BEBB5514721AB3 | 92 | 20171129070802 2 6 100 3071 2 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D86F9B0D3 |
93 | 20170623054517 2 6 100 3071 2 E795DA675C82260F11D7C50B677AE8A8D94BF342724BB06FA0D426CE2E83E8971A1BE2AC59516488B25D561568B14DBBFFB5F33686D2952409B9C20FC19A13CB91C9176420F59F464DC198E254B87C765DC12B885CF1A463858C3CB0A918AF66C6A2CA06A48B4D5BDEB5A56B24C36BA330488DFCBDD499957E755CCE704F183CB4549441A7D761C22B7F7CB66BE50F0A6591F17778F51E73544B765E83A3C00BD3309F8CE1B135A3DD481DBE8C2CEE54E8DDF1351015E70D9012662E69F654A5A9F68C416167685A1695C8139BA1825287C98680945506D5AB750BEB68C6D2B430E7E4043D0A00DECDA77F81A2432929F530C5BC0CBBC011095D897BD81FB98792345F5372BA53E53F31FB09730C58E8FDA9F7C1EBA0AEA4FE50B2B5CE146043CB18BFB3A12F06ED1D3287242D3D59E85E0A5E243626525D3EAD946126B9F32590011EEA0EDD5E2025037D51940B3E1A45B614A23F48278977535E3773F0AA2A24413F4A397AC0881582E8832C7B140C0BA4818A55C8620FD2BEBB55149F4D0B | 93 | 20171129071143 2 6 100 3071 5 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D8790794F |
94 | 20170623055017 2 6 100 3071 2 E795DA675C82260F11D7C50B677AE8A8D94BF342724BB06FA0D426CE2E83E8971A1BE2AC59516488B25D561568B14DBBFFB5F33686D2952409B9C20FC19A13CB91C9176420F59F464DC198E254B87C765DC12B885CF1A463858C3CB0A918AF66C6A2CA06A48B4D5BDEB5A56B24C36BA330488DFCBDD499957E755CCE704F183CB4549441A7D761C22B7F7CB66BE50F0A6591F17778F51E73544B765E83A3C00BD3309F8CE1B135A3DD481DBE8C2CEE54E8DDF1351015E70D9012662E69F654A5A9F68C416167685A1695C8139BA1825287C98680945506D5AB750BEB68C6D2B430E7E4043D0A00DECDA77F81A2432929F530C5BC0CBBC011095D897BD81FB98792345F5372BA53E53F31FB09730C58E8FDA9F7C1EBA0AEA4FE50B2B5CE146043CB18BFB3A12F06ED1D3287242D3D59E85E0A5E243626525D3EAD946126B9F32590011EEA0EDD5E2025037D51940B3E1A45B614A23F48278977535E3773F0AA2A24413F4A397AC0881582E8832C7B140C0BA4818A55C8620FD2BEBB551583DD9B | 94 | 20171129072038 2 6 100 3071 2 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D890948AB |
95 | 20170623055422 2 6 100 3071 2 E795DA675C82260F11D7C50B677AE8A8D94BF342724BB06FA0D426CE2E83E8971A1BE2AC59516488B25D561568B14DBBFFB5F33686D2952409B9C20FC19A13CB91C9176420F59F464DC198E254B87C765DC12B885CF1A463858C3CB0A918AF66C6A2CA06A48B4D5BDEB5A56B24C36BA330488DFCBDD499957E755CCE704F183CB4549441A7D761C22B7F7CB66BE50F0A6591F17778F51E73544B765E83A3C00BD3309F8CE1B135A3DD481DBE8C2CEE54E8DDF1351015E70D9012662E69F654A5A9F68C416167685A1695C8139BA1825287C98680945506D5AB750BEB68C6D2B430E7E4043D0A00DECDA77F81A2432929F530C5BC0CBBC011095D897BD81FB98792345F5372BA53E53F31FB09730C58E8FDA9F7C1EBA0AEA4FE50B2B5CE146043CB18BFB3A12F06ED1D3287242D3D59E85E0A5E243626525D3EAD946126B9F32590011EEA0EDD5E2025037D51940B3E1A45B614A23F48278977535E3773F0AA2A24413F4A397AC0881582E8832C7B140C0BA4818A55C8620FD2BEBB55163A7903 | 95 | 20171129072201 2 6 100 3071 2 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D893CA93B |
96 | 20170623055449 2 6 100 3071 5 E795DA675C82260F11D7C50B677AE8A8D94BF342724BB06FA0D426CE2E83E8971A1BE2AC59516488B25D561568B14DBBFFB5F33686D2952409B9C20FC19A13CB91C9176420F59F464DC198E254B87C765DC12B885CF1A463858C3CB0A918AF66C6A2CA06A48B4D5BDEB5A56B24C36BA330488DFCBDD499957E755CCE704F183CB4549441A7D761C22B7F7CB66BE50F0A6591F17778F51E73544B765E83A3C00BD3309F8CE1B135A3DD481DBE8C2CEE54E8DDF1351015E70D9012662E69F654A5A9F68C416167685A1695C8139BA1825287C98680945506D5AB750BEB68C6D2B430E7E4043D0A00DECDA77F81A2432929F530C5BC0CBBC011095D897BD81FB98792345F5372BA53E53F31FB09730C58E8FDA9F7C1EBA0AEA4FE50B2B5CE146043CB18BFB3A12F06ED1D3287242D3D59E85E0A5E243626525D3EAD946126B9F32590011EEA0EDD5E2025037D51940B3E1A45B614A23F48278977535E3773F0AA2A24413F4A397AC0881582E8832C7B140C0BA4818A55C8620FD2BEBB5516475E5F | 96 | 20171129072633 2 6 100 3071 2 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D89FA04BB |
97 | 20170623055516 2 6 100 3071 5 E795DA675C82260F11D7C50B677AE8A8D94BF342724BB06FA0D426CE2E83E8971A1BE2AC59516488B25D561568B14DBBFFB5F33686D2952409B9C20FC19A13CB91C9176420F59F464DC198E254B87C765DC12B885CF1A463858C3CB0A918AF66C6A2CA06A48B4D5BDEB5A56B24C36BA330488DFCBDD499957E755CCE704F183CB4549441A7D761C22B7F7CB66BE50F0A6591F17778F51E73544B765E83A3C00BD3309F8CE1B135A3DD481DBE8C2CEE54E8DDF1351015E70D9012662E69F654A5A9F68C416167685A1695C8139BA1825287C98680945506D5AB750BEB68C6D2B430E7E4043D0A00DECDA77F81A2432929F530C5BC0CBBC011095D897BD81FB98792345F5372BA53E53F31FB09730C58E8FDA9F7C1EBA0AEA4FE50B2B5CE146043CB18BFB3A12F06ED1D3287242D3D59E85E0A5E243626525D3EAD946126B9F32590011EEA0EDD5E2025037D51940B3E1A45B614A23F48278977535E3773F0AA2A24413F4A397AC0881582E8832C7B140C0BA4818A55C8620FD2BEBB5516556F37 | 97 | 20171129072704 2 6 100 3071 2 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D8A081C83 |
98 | 20170623055539 2 6 100 3071 5 E795DA675C82260F11D7C50B677AE8A8D94BF342724BB06FA0D426CE2E83E8971A1BE2AC59516488B25D561568B14DBBFFB5F33686D2952409B9C20FC19A13CB91C9176420F59F464DC198E254B87C765DC12B885CF1A463858C3CB0A918AF66C6A2CA06A48B4D5BDEB5A56B24C36BA330488DFCBDD499957E755CCE704F183CB4549441A7D761C22B7F7CB66BE50F0A6591F17778F51E73544B765E83A3C00BD3309F8CE1B135A3DD481DBE8C2CEE54E8DDF1351015E70D9012662E69F654A5A9F68C416167685A1695C8139BA1825287C98680945506D5AB750BEB68C6D2B430E7E4043D0A00DECDA77F81A2432929F530C5BC0CBBC011095D897BD81FB98792345F5372BA53E53F31FB09730C58E8FDA9F7C1EBA0AEA4FE50B2B5CE146043CB18BFB3A12F06ED1D3287242D3D59E85E0A5E243626525D3EAD946126B9F32590011EEA0EDD5E2025037D51940B3E1A45B614A23F48278977535E3773F0AA2A24413F4A397AC0881582E8832C7B140C0BA4818A55C8620FD2BEBB55165F8F67 | 98 | 20171129073026 2 6 100 3071 5 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D8A94313F |
99 | 20170623055716 2 6 100 3071 2 E795DA675C82260F11D7C50B677AE8A8D94BF342724BB06FA0D426CE2E83E8971A1BE2AC59516488B25D561568B14DBBFFB5F33686D2952409B9C20FC19A13CB91C9176420F59F464DC198E254B87C765DC12B885CF1A463858C3CB0A918AF66C6A2CA06A48B4D5BDEB5A56B24C36BA330488DFCBDD499957E755CCE704F183CB4549441A7D761C22B7F7CB66BE50F0A6591F17778F51E73544B765E83A3C00BD3309F8CE1B135A3DD481DBE8C2CEE54E8DDF1351015E70D9012662E69F654A5A9F68C416167685A1695C8139BA1825287C98680945506D5AB750BEB68C6D2B430E7E4043D0A00DECDA77F81A2432929F530C5BC0CBBC011095D897BD81FB98792345F5372BA53E53F31FB09730C58E8FDA9F7C1EBA0AEA4FE50B2B5CE146043CB18BFB3A12F06ED1D3287242D3D59E85E0A5E243626525D3EAD946126B9F32590011EEA0EDD5E2025037D51940B3E1A45B614A23F48278977535E3773F0AA2A24413F4A397AC0881582E8832C7B140C0BA4818A55C8620FD2BEBB5516A5CA13 | 99 | 20171129073736 2 6 100 3071 5 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D8BBF2F57 |
100 | 20170623055812 2 6 100 3071 2 E795DA675C82260F11D7C50B677AE8A8D94BF342724BB06FA0D426CE2E83E8971A1BE2AC59516488B25D561568B14DBBFFB5F33686D2952409B9C20FC19A13CB91C9176420F59F464DC198E254B87C765DC12B885CF1A463858C3CB0A918AF66C6A2CA06A48B4D5BDEB5A56B24C36BA330488DFCBDD499957E755CCE704F183CB4549441A7D761C22B7F7CB66BE50F0A6591F17778F51E73544B765E83A3C00BD3309F8CE1B135A3DD481DBE8C2CEE54E8DDF1351015E70D9012662E69F654A5A9F68C416167685A1695C8139BA1825287C98680945506D5AB750BEB68C6D2B430E7E4043D0A00DECDA77F81A2432929F530C5BC0CBBC011095D897BD81FB98792345F5372BA53E53F31FB09730C58E8FDA9F7C1EBA0AEA4FE50B2B5CE146043CB18BFB3A12F06ED1D3287242D3D59E85E0A5E243626525D3EAD946126B9F32590011EEA0EDD5E2025037D51940B3E1A45B614A23F48278977535E3773F0AA2A24413F4A397AC0881582E8832C7B140C0BA4818A55C8620FD2BEBB5516C8A4A3 | 100 | 20171129073811 2 6 100 3071 2 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D8BD07FFB |
101 | 20170623055846 2 6 100 3071 2 E795DA675C82260F11D7C50B677AE8A8D94BF342724BB06FA0D426CE2E83E8971A1BE2AC59516488B25D561568B14DBBFFB5F33686D2952409B9C20FC19A13CB91C9176420F59F464DC198E254B87C765DC12B885CF1A463858C3CB0A918AF66C6A2CA06A48B4D5BDEB5A56B24C36BA330488DFCBDD499957E755CCE704F183CB4549441A7D761C22B7F7CB66BE50F0A6591F17778F51E73544B765E83A3C00BD3309F8CE1B135A3DD481DBE8C2CEE54E8DDF1351015E70D9012662E69F654A5A9F68C416167685A1695C8139BA1825287C98680945506D5AB750BEB68C6D2B430E7E4043D0A00DECDA77F81A2432929F530C5BC0CBBC011095D897BD81FB98792345F5372BA53E53F31FB09730C58E8FDA9F7C1EBA0AEA4FE50B2B5CE146043CB18BFB3A12F06ED1D3287242D3D59E85E0A5E243626525D3EAD946126B9F32590011EEA0EDD5E2025037D51940B3E1A45B614A23F48278977535E3773F0AA2A24413F4A397AC0881582E8832C7B140C0BA4818A55C8620FD2BEBB5516DBF96B | 101 | 20171129074006 2 6 100 3071 5 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D8C1A2AAF |
102 | 20170623060438 2 6 100 3071 2 E795DA675C82260F11D7C50B677AE8A8D94BF342724BB06FA0D426CE2E83E8971A1BE2AC59516488B25D561568B14DBBFFB5F33686D2952409B9C20FC19A13CB91C9176420F59F464DC198E254B87C765DC12B885CF1A463858C3CB0A918AF66C6A2CA06A48B4D5BDEB5A56B24C36BA330488DFCBDD499957E755CCE704F183CB4549441A7D761C22B7F7CB66BE50F0A6591F17778F51E73544B765E83A3C00BD3309F8CE1B135A3DD481DBE8C2CEE54E8DDF1351015E70D9012662E69F654A5A9F68C416167685A1695C8139BA1825287C98680945506D5AB750BEB68C6D2B430E7E4043D0A00DECDA77F81A2432929F530C5BC0CBBC011095D897BD81FB98792345F5372BA53E53F31FB09730C58E8FDA9F7C1EBA0AEA4FE50B2B5CE146043CB18BFB3A12F06ED1D3287242D3D59E85E0A5E243626525D3EAD946126B9F32590011EEA0EDD5E2025037D51940B3E1A45B614A23F48278977535E3773F0AA2A24413F4A397AC0881582E8832C7B140C0BA4818A55C8620FD2BEBB5517E20F03 | 102 | 20171129074244 2 6 100 3071 2 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D8C85024B |
103 | 20170623060534 2 6 100 3071 5 E795DA675C82260F11D7C50B677AE8A8D94BF342724BB06FA0D426CE2E83E8971A1BE2AC59516488B25D561568B14DBBFFB5F33686D2952409B9C20FC19A13CB91C9176420F59F464DC198E254B87C765DC12B885CF1A463858C3CB0A918AF66C6A2CA06A48B4D5BDEB5A56B24C36BA330488DFCBDD499957E755CCE704F183CB4549441A7D761C22B7F7CB66BE50F0A6591F17778F51E73544B765E83A3C00BD3309F8CE1B135A3DD481DBE8C2CEE54E8DDF1351015E70D9012662E69F654A5A9F68C416167685A1695C8139BA1825287C98680945506D5AB750BEB68C6D2B430E7E4043D0A00DECDA77F81A2432929F530C5BC0CBBC011095D897BD81FB98792345F5372BA53E53F31FB09730C58E8FDA9F7C1EBA0AEA4FE50B2B5CE146043CB18BFB3A12F06ED1D3287242D3D59E85E0A5E243626525D3EAD946126B9F32590011EEA0EDD5E2025037D51940B3E1A45B614A23F48278977535E3773F0AA2A24413F4A397AC0881582E8832C7B140C0BA4818A55C8620FD2BEBB551803F1D7 | 103 | 20171129074339 2 6 100 3071 2 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D8CA238BB |
104 | 20170623060551 2 6 100 3071 5 E795DA675C82260F11D7C50B677AE8A8D94BF342724BB06FA0D426CE2E83E8971A1BE2AC59516488B25D561568B14DBBFFB5F33686D2952409B9C20FC19A13CB91C9176420F59F464DC198E254B87C765DC12B885CF1A463858C3CB0A918AF66C6A2CA06A48B4D5BDEB5A56B24C36BA330488DFCBDD499957E755CCE704F183CB4549441A7D761C22B7F7CB66BE50F0A6591F17778F51E73544B765E83A3C00BD3309F8CE1B135A3DD481DBE8C2CEE54E8DDF1351015E70D9012662E69F654A5A9F68C416167685A1695C8139BA1825287C98680945506D5AB750BEB68C6D2B430E7E4043D0A00DECDA77F81A2432929F530C5BC0CBBC011095D897BD81FB98792345F5372BA53E53F31FB09730C58E8FDA9F7C1EBA0AEA4FE50B2B5CE146043CB18BFB3A12F06ED1D3287242D3D59E85E0A5E243626525D3EAD946126B9F32590011EEA0EDD5E2025037D51940B3E1A45B614A23F48278977535E3773F0AA2A24413F4A397AC0881582E8832C7B140C0BA4818A55C8620FD2BEBB55180824C7 | 104 | 20171129074739 2 6 100 3071 2 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D8D485DB3 |
105 | 20170623060759 2 6 100 3071 5 E795DA675C82260F11D7C50B677AE8A8D94BF342724BB06FA0D426CE2E83E8971A1BE2AC59516488B25D561568B14DBBFFB5F33686D2952409B9C20FC19A13CB91C9176420F59F464DC198E254B87C765DC12B885CF1A463858C3CB0A918AF66C6A2CA06A48B4D5BDEB5A56B24C36BA330488DFCBDD499957E755CCE704F183CB4549441A7D761C22B7F7CB66BE50F0A6591F17778F51E73544B765E83A3C00BD3309F8CE1B135A3DD481DBE8C2CEE54E8DDF1351015E70D9012662E69F654A5A9F68C416167685A1695C8139BA1825287C98680945506D5AB750BEB68C6D2B430E7E4043D0A00DECDA77F81A2432929F530C5BC0CBBC011095D897BD81FB98792345F5372BA53E53F31FB09730C58E8FDA9F7C1EBA0AEA4FE50B2B5CE146043CB18BFB3A12F06ED1D3287242D3D59E85E0A5E243626525D3EAD946126B9F32590011EEA0EDD5E2025037D51940B3E1A45B614A23F48278977535E3773F0AA2A24413F4A397AC0881582E8832C7B140C0BA4818A55C8620FD2BEBB5518622977 | 105 | 20171129074856 2 6 100 3071 2 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D8D771FB3 |
106 | 20170623061152 2 6 100 3071 5 E795DA675C82260F11D7C50B677AE8A8D94BF342724BB06FA0D426CE2E83E8971A1BE2AC59516488B25D561568B14DBBFFB5F33686D2952409B9C20FC19A13CB91C9176420F59F464DC198E254B87C765DC12B885CF1A463858C3CB0A918AF66C6A2CA06A48B4D5BDEB5A56B24C36BA330488DFCBDD499957E755CCE704F183CB4549441A7D761C22B7F7CB66BE50F0A6591F17778F51E73544B765E83A3C00BD3309F8CE1B135A3DD481DBE8C2CEE54E8DDF1351015E70D9012662E69F654A5A9F68C416167685A1695C8139BA1825287C98680945506D5AB750BEB68C6D2B430E7E4043D0A00DECDA77F81A2432929F530C5BC0CBBC011095D897BD81FB98792345F5372BA53E53F31FB09730C58E8FDA9F7C1EBA0AEA4FE50B2B5CE146043CB18BFB3A12F06ED1D3287242D3D59E85E0A5E243626525D3EAD946126B9F32590011EEA0EDD5E2025037D51940B3E1A45B614A23F48278977535E3773F0AA2A24413F4A397AC0881582E8832C7B140C0BA4818A55C8620FD2BEBB55190DD957 | 106 | 20171129075003 2 6 100 3071 5 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D8D9E294F |
107 | 20170623061950 2 6 100 3071 5 E787C1EA14A0022F3F98A02847D293441332B2EB8BFF8C4D74ECFF730CCA9D1AFC6433A6DD4BA7089EC18D8D314550FCDC6DA23FEFDE48622BB6FFD89AB71CC0BA6C8C0930593E85A442A9C589ECF35E17D9CC7E2AE713B3704D69B61EF6E79A41AE02ADBF7966DF94B1C6861795B7EDFA8D7418EBAEB47F26F158AEF3DB418FD1632DBB93B431204964B78C7AE9ED796E39F1B6DE1FEE4CE77815462F36342E80B44B052BADC06F78CFEA7D3D0B294C5C8E8E623F95F5D3C1A17D911A0E78FE7754AA4A440FE75498D9AA47AACF2FC2F716630AEF10950F1FACD4CF847A7E4B0C20F507A7322996DBC4D2250A99CB213CB95AAF7A8B6A0B5317BE8FF728D3A0A0AAEA1B86729DDD59566916640F9AF7A455145CE29CB58884CC2E9DD705B1E87D10E139945FBE70D20D718FED9AF202A22673D76128A5FCB2860419675ADB97512628C7C65C7078B0C730A258C8979912C18EC065367791A404C71318B78FE29CC115ECD74C4EFCDE86C35BD0CFC3ADC41B4F24243A262B251F6E21EBBB813F | 107 | 20171129075124 2 6 100 3071 2 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D8DCE88FB |
108 | 20170623062054 2 6 100 3071 2 E787C1EA14A0022F3F98A02847D293441332B2EB8BFF8C4D74ECFF730CCA9D1AFC6433A6DD4BA7089EC18D8D314550FCDC6DA23FEFDE48622BB6FFD89AB71CC0BA6C8C0930593E85A442A9C589ECF35E17D9CC7E2AE713B3704D69B61EF6E79A41AE02ADBF7966DF94B1C6861795B7EDFA8D7418EBAEB47F26F158AEF3DB418FD1632DBB93B431204964B78C7AE9ED796E39F1B6DE1FEE4CE77815462F36342E80B44B052BADC06F78CFEA7D3D0B294C5C8E8E623F95F5D3C1A17D911A0E78FE7754AA4A440FE75498D9AA47AACF2FC2F716630AEF10950F1FACD4CF847A7E4B0C20F507A7322996DBC4D2250A99CB213CB95AAF7A8B6A0B5317BE8FF728D3A0A0AAEA1B86729DDD59566916640F9AF7A455145CE29CB58884CC2E9DD705B1E87D10E139945FBE70D20D718FED9AF202A22673D76128A5FCB2860419675ADB97512628C7C65C7078B0C730A258C8979912C18EC065367791A404C71318B78FE29CC115ECD74C4EFCDE86C35BD0CFC3ADC41B4F24243A262B251F6E21EBE73A63 | 108 | 20171129080839 2 6 100 3071 2 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D90AB02AB |
109 | 20170623062250 2 6 100 3071 2 E787C1EA14A0022F3F98A02847D293441332B2EB8BFF8C4D74ECFF730CCA9D1AFC6433A6DD4BA7089EC18D8D314550FCDC6DA23FEFDE48622BB6FFD89AB71CC0BA6C8C0930593E85A442A9C589ECF35E17D9CC7E2AE713B3704D69B61EF6E79A41AE02ADBF7966DF94B1C6861795B7EDFA8D7418EBAEB47F26F158AEF3DB418FD1632DBB93B431204964B78C7AE9ED796E39F1B6DE1FEE4CE77815462F36342E80B44B052BADC06F78CFEA7D3D0B294C5C8E8E623F95F5D3C1A17D911A0E78FE7754AA4A440FE75498D9AA47AACF2FC2F716630AEF10950F1FACD4CF847A7E4B0C20F507A7322996DBC4D2250A99CB213CB95AAF7A8B6A0B5317BE8FF728D3A0A0AAEA1B86729DDD59566916640F9AF7A455145CE29CB58884CC2E9DD705B1E87D10E139945FBE70D20D718FED9AF202A22673D76128A5FCB2860419675ADB97512628C7C65C7078B0C730A258C8979912C18EC065367791A404C71318B78FE29CC115ECD74C4EFCDE86C35BD0CFC3ADC41B4F24243A262B251F6E21EC3B7BBB | 109 | 20171129080910 2 6 100 3071 5 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D90B81087 |
110 | 20170623062850 2 6 100 3071 5 E787C1EA14A0022F3F98A02847D293441332B2EB8BFF8C4D74ECFF730CCA9D1AFC6433A6DD4BA7089EC18D8D314550FCDC6DA23FEFDE48622BB6FFD89AB71CC0BA6C8C0930593E85A442A9C589ECF35E17D9CC7E2AE713B3704D69B61EF6E79A41AE02ADBF7966DF94B1C6861795B7EDFA8D7418EBAEB47F26F158AEF3DB418FD1632DBB93B431204964B78C7AE9ED796E39F1B6DE1FEE4CE77815462F36342E80B44B052BADC06F78CFEA7D3D0B294C5C8E8E623F95F5D3C1A17D911A0E78FE7754AA4A440FE75498D9AA47AACF2FC2F716630AEF10950F1FACD4CF847A7E4B0C20F507A7322996DBC4D2250A99CB213CB95AAF7A8B6A0B5317BE8FF728D3A0A0AAEA1B86729DDD59566916640F9AF7A455145CE29CB58884CC2E9DD705B1E87D10E139945FBE70D20D718FED9AF202A22673D76128A5FCB2860419675ADB97512628C7C65C7078B0C730A258C8979912C18EC065367791A404C71318B78FE29CC115ECD74C4EFCDE86C35BD0CFC3ADC41B4F24243A262B251F6E21ED5538D7 | 110 | 20171129081213 2 6 100 3071 2 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D91332803 |
111 | 20170623063051 2 6 100 3071 5 E787C1EA14A0022F3F98A02847D293441332B2EB8BFF8C4D74ECFF730CCA9D1AFC6433A6DD4BA7089EC18D8D314550FCDC6DA23FEFDE48622BB6FFD89AB71CC0BA6C8C0930593E85A442A9C589ECF35E17D9CC7E2AE713B3704D69B61EF6E79A41AE02ADBF7966DF94B1C6861795B7EDFA8D7418EBAEB47F26F158AEF3DB418FD1632DBB93B431204964B78C7AE9ED796E39F1B6DE1FEE4CE77815462F36342E80B44B052BADC06F78CFEA7D3D0B294C5C8E8E623F95F5D3C1A17D911A0E78FE7754AA4A440FE75498D9AA47AACF2FC2F716630AEF10950F1FACD4CF847A7E4B0C20F507A7322996DBC4D2250A99CB213CB95AAF7A8B6A0B5317BE8FF728D3A0A0AAEA1B86729DDD59566916640F9AF7A455145CE29CB58884CC2E9DD705B1E87D10E139945FBE70D20D718FED9AF202A22673D76128A5FCB2860419675ADB97512628C7C65C7078B0C730A258C8979912C18EC065367791A404C71318B78FE29CC115ECD74C4EFCDE86C35BD0CFC3ADC41B4F24243A262B251F6E21EDADBD87 | 111 | 20171129081802 2 6 100 3071 2 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D9223D76B |
112 | 20170623063106 2 6 100 3071 5 E787C1EA14A0022F3F98A02847D293441332B2EB8BFF8C4D74ECFF730CCA9D1AFC6433A6DD4BA7089EC18D8D314550FCDC6DA23FEFDE48622BB6FFD89AB71CC0BA6C8C0930593E85A442A9C589ECF35E17D9CC7E2AE713B3704D69B61EF6E79A41AE02ADBF7966DF94B1C6861795B7EDFA8D7418EBAEB47F26F158AEF3DB418FD1632DBB93B431204964B78C7AE9ED796E39F1B6DE1FEE4CE77815462F36342E80B44B052BADC06F78CFEA7D3D0B294C5C8E8E623F95F5D3C1A17D911A0E78FE7754AA4A440FE75498D9AA47AACF2FC2F716630AEF10950F1FACD4CF847A7E4B0C20F507A7322996DBC4D2250A99CB213CB95AAF7A8B6A0B5317BE8FF728D3A0A0AAEA1B86729DDD59566916640F9AF7A455145CE29CB58884CC2E9DD705B1E87D10E139945FBE70D20D718FED9AF202A22673D76128A5FCB2860419675ADB97512628C7C65C7078B0C730A258C8979912C18EC065367791A404C71318B78FE29CC115ECD74C4EFCDE86C35BD0CFC3ADC41B4F24243A262B251F6E21EDB14127 | 112 | 20171129082038 2 6 100 3071 5 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D928D0B97 |
113 | 20170623063228 2 6 100 3071 2 E787C1EA14A0022F3F98A02847D293441332B2EB8BFF8C4D74ECFF730CCA9D1AFC6433A6DD4BA7089EC18D8D314550FCDC6DA23FEFDE48622BB6FFD89AB71CC0BA6C8C0930593E85A442A9C589ECF35E17D9CC7E2AE713B3704D69B61EF6E79A41AE02ADBF7966DF94B1C6861795B7EDFA8D7418EBAEB47F26F158AEF3DB418FD1632DBB93B431204964B78C7AE9ED796E39F1B6DE1FEE4CE77815462F36342E80B44B052BADC06F78CFEA7D3D0B294C5C8E8E623F95F5D3C1A17D911A0E78FE7754AA4A440FE75498D9AA47AACF2FC2F716630AEF10950F1FACD4CF847A7E4B0C20F507A7322996DBC4D2250A99CB213CB95AAF7A8B6A0B5317BE8FF728D3A0A0AAEA1B86729DDD59566916640F9AF7A455145CE29CB58884CC2E9DD705B1E87D10E139945FBE70D20D718FED9AF202A22673D76128A5FCB2860419675ADB97512628C7C65C7078B0C730A258C8979912C18EC065367791A404C71318B78FE29CC115ECD74C4EFCDE86C35BD0CFC3ADC41B4F24243A262B251F6E21EDEBD58B | 113 | 20171129082101 2 6 100 3071 5 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D92957057 |
114 | 20170623063242 2 6 100 3071 2 E787C1EA14A0022F3F98A02847D293441332B2EB8BFF8C4D74ECFF730CCA9D1AFC6433A6DD4BA7089EC18D8D314550FCDC6DA23FEFDE48622BB6FFD89AB71CC0BA6C8C0930593E85A442A9C589ECF35E17D9CC7E2AE713B3704D69B61EF6E79A41AE02ADBF7966DF94B1C6861795B7EDFA8D7418EBAEB47F26F158AEF3DB418FD1632DBB93B431204964B78C7AE9ED796E39F1B6DE1FEE4CE77815462F36342E80B44B052BADC06F78CFEA7D3D0B294C5C8E8E623F95F5D3C1A17D911A0E78FE7754AA4A440FE75498D9AA47AACF2FC2F716630AEF10950F1FACD4CF847A7E4B0C20F507A7322996DBC4D2250A99CB213CB95AAF7A8B6A0B5317BE8FF728D3A0A0AAEA1B86729DDD59566916640F9AF7A455145CE29CB58884CC2E9DD705B1E87D10E139945FBE70D20D718FED9AF202A22673D76128A5FCB2860419675ADB97512628C7C65C7078B0C730A258C8979912C18EC065367791A404C71318B78FE29CC115ECD74C4EFCDE86C35BD0CFC3ADC41B4F24243A262B251F6E21EDEE14B3 | 114 | 20171129082300 2 6 100 3071 2 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D92DF3C23 |
115 | 20170623063301 2 6 100 3071 5 E787C1EA14A0022F3F98A02847D293441332B2EB8BFF8C4D74ECFF730CCA9D1AFC6433A6DD4BA7089EC18D8D314550FCDC6DA23FEFDE48622BB6FFD89AB71CC0BA6C8C0930593E85A442A9C589ECF35E17D9CC7E2AE713B3704D69B61EF6E79A41AE02ADBF7966DF94B1C6861795B7EDFA8D7418EBAEB47F26F158AEF3DB418FD1632DBB93B431204964B78C7AE9ED796E39F1B6DE1FEE4CE77815462F36342E80B44B052BADC06F78CFEA7D3D0B294C5C8E8E623F95F5D3C1A17D911A0E78FE7754AA4A440FE75498D9AA47AACF2FC2F716630AEF10950F1FACD4CF847A7E4B0C20F507A7322996DBC4D2250A99CB213CB95AAF7A8B6A0B5317BE8FF728D3A0A0AAEA1B86729DDD59566916640F9AF7A455145CE29CB58884CC2E9DD705B1E87D10E139945FBE70D20D718FED9AF202A22673D76128A5FCB2860419675ADB97512628C7C65C7078B0C730A258C8979912C18EC065367791A404C71318B78FE29CC115ECD74C4EFCDE86C35BD0CFC3ADC41B4F24243A262B251F6E21EDF542E7 | 115 | 20171129082841 2 6 100 3071 2 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D93CA39BB |
116 | 20170623063538 2 6 100 3071 2 E787C1EA14A0022F3F98A02847D293441332B2EB8BFF8C4D74ECFF730CCA9D1AFC6433A6DD4BA7089EC18D8D314550FCDC6DA23FEFDE48622BB6FFD89AB71CC0BA6C8C0930593E85A442A9C589ECF35E17D9CC7E2AE713B3704D69B61EF6E79A41AE02ADBF7966DF94B1C6861795B7EDFA8D7418EBAEB47F26F158AEF3DB418FD1632DBB93B431204964B78C7AE9ED796E39F1B6DE1FEE4CE77815462F36342E80B44B052BADC06F78CFEA7D3D0B294C5C8E8E623F95F5D3C1A17D911A0E78FE7754AA4A440FE75498D9AA47AACF2FC2F716630AEF10950F1FACD4CF847A7E4B0C20F507A7322996DBC4D2250A99CB213CB95AAF7A8B6A0B5317BE8FF728D3A0A0AAEA1B86729DDD59566916640F9AF7A455145CE29CB58884CC2E9DD705B1E87D10E139945FBE70D20D718FED9AF202A22673D76128A5FCB2860419675ADB97512628C7C65C7078B0C730A258C8979912C18EC065367791A404C71318B78FE29CC115ECD74C4EFCDE86C35BD0CFC3ADC41B4F24243A262B251F6E21EE64F8A3 | 116 | 20171129083100 2 6 100 3071 2 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D94254653 |
117 | 20170623063759 2 6 100 3071 5 E787C1EA14A0022F3F98A02847D293441332B2EB8BFF8C4D74ECFF730CCA9D1AFC6433A6DD4BA7089EC18D8D314550FCDC6DA23FEFDE48622BB6FFD89AB71CC0BA6C8C0930593E85A442A9C589ECF35E17D9CC7E2AE713B3704D69B61EF6E79A41AE02ADBF7966DF94B1C6861795B7EDFA8D7418EBAEB47F26F158AEF3DB418FD1632DBB93B431204964B78C7AE9ED796E39F1B6DE1FEE4CE77815462F36342E80B44B052BADC06F78CFEA7D3D0B294C5C8E8E623F95F5D3C1A17D911A0E78FE7754AA4A440FE75498D9AA47AACF2FC2F716630AEF10950F1FACD4CF847A7E4B0C20F507A7322996DBC4D2250A99CB213CB95AAF7A8B6A0B5317BE8FF728D3A0A0AAEA1B86729DDD59566916640F9AF7A455145CE29CB58884CC2E9DD705B1E87D10E139945FBE70D20D718FED9AF202A22673D76128A5FCB2860419675ADB97512628C7C65C7078B0C730A258C8979912C18EC065367791A404C71318B78FE29CC115ECD74C4EFCDE86C35BD0CFC3ADC41B4F24243A262B251F6E21EEC9D597 | 117 | 20171129083144 2 6 100 3071 5 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D943C67CF |
118 | 20170623064815 2 6 100 3071 5 E787C1EA14A0022F3F98A02847D293441332B2EB8BFF8C4D74ECFF730CCA9D1AFC6433A6DD4BA7089EC18D8D314550FCDC6DA23FEFDE48622BB6FFD89AB71CC0BA6C8C0930593E85A442A9C589ECF35E17D9CC7E2AE713B3704D69B61EF6E79A41AE02ADBF7966DF94B1C6861795B7EDFA8D7418EBAEB47F26F158AEF3DB418FD1632DBB93B431204964B78C7AE9ED796E39F1B6DE1FEE4CE77815462F36342E80B44B052BADC06F78CFEA7D3D0B294C5C8E8E623F95F5D3C1A17D911A0E78FE7754AA4A440FE75498D9AA47AACF2FC2F716630AEF10950F1FACD4CF847A7E4B0C20F507A7322996DBC4D2250A99CB213CB95AAF7A8B6A0B5317BE8FF728D3A0A0AAEA1B86729DDD59566916640F9AF7A455145CE29CB58884CC2E9DD705B1E87D10E139945FBE70D20D718FED9AF202A22673D76128A5FCB2860419675ADB97512628C7C65C7078B0C730A258C8979912C18EC065367791A404C71318B78FE29CC115ECD74C4EFCDE86C35BD0CFC3ADC41B4F24243A262B251F6E21F0A8EB1F | 118 | 20171129083314 2 6 100 3071 5 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D9472895F |
119 | 20170623065609 2 6 100 3071 5 E787C1EA14A0022F3F98A02847D293441332B2EB8BFF8C4D74ECFF730CCA9D1AFC6433A6DD4BA7089EC18D8D314550FCDC6DA23FEFDE48622BB6FFD89AB71CC0BA6C8C0930593E85A442A9C589ECF35E17D9CC7E2AE713B3704D69B61EF6E79A41AE02ADBF7966DF94B1C6861795B7EDFA8D7418EBAEB47F26F158AEF3DB418FD1632DBB93B431204964B78C7AE9ED796E39F1B6DE1FEE4CE77815462F36342E80B44B052BADC06F78CFEA7D3D0B294C5C8E8E623F95F5D3C1A17D911A0E78FE7754AA4A440FE75498D9AA47AACF2FC2F716630AEF10950F1FACD4CF847A7E4B0C20F507A7322996DBC4D2250A99CB213CB95AAF7A8B6A0B5317BE8FF728D3A0A0AAEA1B86729DDD59566916640F9AF7A455145CE29CB58884CC2E9DD705B1E87D10E139945FBE70D20D718FED9AF202A22673D76128A5FCB2860419675ADB97512628C7C65C7078B0C730A258C8979912C18EC065367791A404C71318B78FE29CC115ECD74C4EFCDE86C35BD0CFC3ADC41B4F24243A262B251F6E21F21F5CB7 | 119 | 20171129083902 2 6 100 3071 2 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D955FDEA3 |
120 | 20170623070150 2 6 100 3071 2 E787C1EA14A0022F3F98A02847D293441332B2EB8BFF8C4D74ECFF730CCA9D1AFC6433A6DD4BA7089EC18D8D314550FCDC6DA23FEFDE48622BB6FFD89AB71CC0BA6C8C0930593E85A442A9C589ECF35E17D9CC7E2AE713B3704D69B61EF6E79A41AE02ADBF7966DF94B1C6861795B7EDFA8D7418EBAEB47F26F158AEF3DB418FD1632DBB93B431204964B78C7AE9ED796E39F1B6DE1FEE4CE77815462F36342E80B44B052BADC06F78CFEA7D3D0B294C5C8E8E623F95F5D3C1A17D911A0E78FE7754AA4A440FE75498D9AA47AACF2FC2F716630AEF10950F1FACD4CF847A7E4B0C20F507A7322996DBC4D2250A99CB213CB95AAF7A8B6A0B5317BE8FF728D3A0A0AAEA1B86729DDD59566916640F9AF7A455145CE29CB58884CC2E9DD705B1E87D10E139945FBE70D20D718FED9AF202A22673D76128A5FCB2860419675ADB97512628C7C65C7078B0C730A258C8979912C18EC065367791A404C71318B78FE29CC115ECD74C4EFCDE86C35BD0CFC3ADC41B4F24243A262B251F6E21F32604CB | 120 | 20171129084024 2 6 100 3071 2 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D9591B8D3 |
121 | 20170623070933 2 6 100 3071 2 E787C1EA14A0022F3F98A02847D293441332B2EB8BFF8C4D74ECFF730CCA9D1AFC6433A6DD4BA7089EC18D8D314550FCDC6DA23FEFDE48622BB6FFD89AB71CC0BA6C8C0930593E85A442A9C589ECF35E17D9CC7E2AE713B3704D69B61EF6E79A41AE02ADBF7966DF94B1C6861795B7EDFA8D7418EBAEB47F26F158AEF3DB418FD1632DBB93B431204964B78C7AE9ED796E39F1B6DE1FEE4CE77815462F36342E80B44B052BADC06F78CFEA7D3D0B294C5C8E8E623F95F5D3C1A17D911A0E78FE7754AA4A440FE75498D9AA47AACF2FC2F716630AEF10950F1FACD4CF847A7E4B0C20F507A7322996DBC4D2250A99CB213CB95AAF7A8B6A0B5317BE8FF728D3A0A0AAEA1B86729DDD59566916640F9AF7A455145CE29CB58884CC2E9DD705B1E87D10E139945FBE70D20D718FED9AF202A22673D76128A5FCB2860419675ADB97512628C7C65C7078B0C730A258C8979912C18EC065367791A404C71318B78FE29CC115ECD74C4EFCDE86C35BD0CFC3ADC41B4F24243A262B251F6E21F48C5ED3 | 121 | 20171129084309 2 6 100 3071 5 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D96010007 |
122 | 20170623071215 2 6 100 3071 2 E787C1EA14A0022F3F98A02847D293441332B2EB8BFF8C4D74ECFF730CCA9D1AFC6433A6DD4BA7089EC18D8D314550FCDC6DA23FEFDE48622BB6FFD89AB71CC0BA6C8C0930593E85A442A9C589ECF35E17D9CC7E2AE713B3704D69B61EF6E79A41AE02ADBF7966DF94B1C6861795B7EDFA8D7418EBAEB47F26F158AEF3DB418FD1632DBB93B431204964B78C7AE9ED796E39F1B6DE1FEE4CE77815462F36342E80B44B052BADC06F78CFEA7D3D0B294C5C8E8E623F95F5D3C1A17D911A0E78FE7754AA4A440FE75498D9AA47AACF2FC2F716630AEF10950F1FACD4CF847A7E4B0C20F507A7322996DBC4D2250A99CB213CB95AAF7A8B6A0B5317BE8FF728D3A0A0AAEA1B86729DDD59566916640F9AF7A455145CE29CB58884CC2E9DD705B1E87D10E139945FBE70D20D718FED9AF202A22673D76128A5FCB2860419675ADB97512628C7C65C7078B0C730A258C8979912C18EC065367791A404C71318B78FE29CC115ECD74C4EFCDE86C35BD0CFC3ADC41B4F24243A262B251F6E21F5044ECB | 122 | 20171129084528 2 6 100 3071 2 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D9659DC3B |
123 | 20170623071504 2 6 100 3071 2 E787C1EA14A0022F3F98A02847D293441332B2EB8BFF8C4D74ECFF730CCA9D1AFC6433A6DD4BA7089EC18D8D314550FCDC6DA23FEFDE48622BB6FFD89AB71CC0BA6C8C0930593E85A442A9C589ECF35E17D9CC7E2AE713B3704D69B61EF6E79A41AE02ADBF7966DF94B1C6861795B7EDFA8D7418EBAEB47F26F158AEF3DB418FD1632DBB93B431204964B78C7AE9ED796E39F1B6DE1FEE4CE77815462F36342E80B44B052BADC06F78CFEA7D3D0B294C5C8E8E623F95F5D3C1A17D911A0E78FE7754AA4A440FE75498D9AA47AACF2FC2F716630AEF10950F1FACD4CF847A7E4B0C20F507A7322996DBC4D2250A99CB213CB95AAF7A8B6A0B5317BE8FF728D3A0A0AAEA1B86729DDD59566916640F9AF7A455145CE29CB58884CC2E9DD705B1E87D10E139945FBE70D20D718FED9AF202A22673D76128A5FCB2860419675ADB97512628C7C65C7078B0C730A258C8979912C18EC065367791A404C71318B78FE29CC115ECD74C4EFCDE86C35BD0CFC3ADC41B4F24243A262B251F6E21F5815613 | 123 | 20171129084819 2 6 100 3071 2 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D96CA1933 |
124 | 20170623071625 2 6 100 3071 2 E787C1EA14A0022F3F98A02847D293441332B2EB8BFF8C4D74ECFF730CCA9D1AFC6433A6DD4BA7089EC18D8D314550FCDC6DA23FEFDE48622BB6FFD89AB71CC0BA6C8C0930593E85A442A9C589ECF35E17D9CC7E2AE713B3704D69B61EF6E79A41AE02ADBF7966DF94B1C6861795B7EDFA8D7418EBAEB47F26F158AEF3DB418FD1632DBB93B431204964B78C7AE9ED796E39F1B6DE1FEE4CE77815462F36342E80B44B052BADC06F78CFEA7D3D0B294C5C8E8E623F95F5D3C1A17D911A0E78FE7754AA4A440FE75498D9AA47AACF2FC2F716630AEF10950F1FACD4CF847A7E4B0C20F507A7322996DBC4D2250A99CB213CB95AAF7A8B6A0B5317BE8FF728D3A0A0AAEA1B86729DDD59566916640F9AF7A455145CE29CB58884CC2E9DD705B1E87D10E139945FBE70D20D718FED9AF202A22673D76128A5FCB2860419675ADB97512628C7C65C7078B0C730A258C8979912C18EC065367791A404C71318B78FE29CC115ECD74C4EFCDE86C35BD0CFC3ADC41B4F24243A262B251F6E21F5B8F8AB | 124 | 20171129084937 2 6 100 3071 5 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D96F8F0FF |
125 | 20170623071723 2 6 100 3071 2 E787C1EA14A0022F3F98A02847D293441332B2EB8BFF8C4D74ECFF730CCA9D1AFC6433A6DD4BA7089EC18D8D314550FCDC6DA23FEFDE48622BB6FFD89AB71CC0BA6C8C0930593E85A442A9C589ECF35E17D9CC7E2AE713B3704D69B61EF6E79A41AE02ADBF7966DF94B1C6861795B7EDFA8D7418EBAEB47F26F158AEF3DB418FD1632DBB93B431204964B78C7AE9ED796E39F1B6DE1FEE4CE77815462F36342E80B44B052BADC06F78CFEA7D3D0B294C5C8E8E623F95F5D3C1A17D911A0E78FE7754AA4A440FE75498D9AA47AACF2FC2F716630AEF10950F1FACD4CF847A7E4B0C20F507A7322996DBC4D2250A99CB213CB95AAF7A8B6A0B5317BE8FF728D3A0A0AAEA1B86729DDD59566916640F9AF7A455145CE29CB58884CC2E9DD705B1E87D10E139945FBE70D20D718FED9AF202A22673D76128A5FCB2860419675ADB97512628C7C65C7078B0C730A258C8979912C18EC065367791A404C71318B78FE29CC115ECD74C4EFCDE86C35BD0CFC3ADC41B4F24243A262B251F6E21F5DE3F7B | 125 | 20171129085037 2 6 100 3071 5 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D971A1D57 |
126 | 20170623071945 2 6 100 3071 2 E787C1EA14A0022F3F98A02847D293441332B2EB8BFF8C4D74ECFF730CCA9D1AFC6433A6DD4BA7089EC18D8D314550FCDC6DA23FEFDE48622BB6FFD89AB71CC0BA6C8C0930593E85A442A9C589ECF35E17D9CC7E2AE713B3704D69B61EF6E79A41AE02ADBF7966DF94B1C6861795B7EDFA8D7418EBAEB47F26F158AEF3DB418FD1632DBB93B431204964B78C7AE9ED796E39F1B6DE1FEE4CE77815462F36342E80B44B052BADC06F78CFEA7D3D0B294C5C8E8E623F95F5D3C1A17D911A0E78FE7754AA4A440FE75498D9AA47AACF2FC2F716630AEF10950F1FACD4CF847A7E4B0C20F507A7322996DBC4D2250A99CB213CB95AAF7A8B6A0B5317BE8FF728D3A0A0AAEA1B86729DDD59566916640F9AF7A455145CE29CB58884CC2E9DD705B1E87D10E139945FBE70D20D718FED9AF202A22673D76128A5FCB2860419675ADB97512628C7C65C7078B0C730A258C8979912C18EC065367791A404C71318B78FE29CC115ECD74C4EFCDE86C35BD0CFC3ADC41B4F24243A262B251F6E21F645009B | 126 | 20171129085105 2 6 100 3071 2 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D97264D63 |
127 | 20170623072445 2 6 100 3071 5 E787C1EA14A0022F3F98A02847D293441332B2EB8BFF8C4D74ECFF730CCA9D1AFC6433A6DD4BA7089EC18D8D314550FCDC6DA23FEFDE48622BB6FFD89AB71CC0BA6C8C0930593E85A442A9C589ECF35E17D9CC7E2AE713B3704D69B61EF6E79A41AE02ADBF7966DF94B1C6861795B7EDFA8D7418EBAEB47F26F158AEF3DB418FD1632DBB93B431204964B78C7AE9ED796E39F1B6DE1FEE4CE77815462F36342E80B44B052BADC06F78CFEA7D3D0B294C5C8E8E623F95F5D3C1A17D911A0E78FE7754AA4A440FE75498D9AA47AACF2FC2F716630AEF10950F1FACD4CF847A7E4B0C20F507A7322996DBC4D2250A99CB213CB95AAF7A8B6A0B5317BE8FF728D3A0A0AAEA1B86729DDD59566916640F9AF7A455145CE29CB58884CC2E9DD705B1E87D10E139945FBE70D20D718FED9AF202A22673D76128A5FCB2860419675ADB97512628C7C65C7078B0C730A258C8979912C18EC065367791A404C71318B78FE29CC115ECD74C4EFCDE86C35BD0CFC3ADC41B4F24243A262B251F6E21F721A837 | 127 | 20171129085212 2 6 100 3071 5 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D974AC317 |
128 | 20170623072516 2 6 100 3071 5 E787C1EA14A0022F3F98A02847D293441332B2EB8BFF8C4D74ECFF730CCA9D1AFC6433A6DD4BA7089EC18D8D314550FCDC6DA23FEFDE48622BB6FFD89AB71CC0BA6C8C0930593E85A442A9C589ECF35E17D9CC7E2AE713B3704D69B61EF6E79A41AE02ADBF7966DF94B1C6861795B7EDFA8D7418EBAEB47F26F158AEF3DB418FD1632DBB93B431204964B78C7AE9ED796E39F1B6DE1FEE4CE77815462F36342E80B44B052BADC06F78CFEA7D3D0B294C5C8E8E623F95F5D3C1A17D911A0E78FE7754AA4A440FE75498D9AA47AACF2FC2F716630AEF10950F1FACD4CF847A7E4B0C20F507A7322996DBC4D2250A99CB213CB95AAF7A8B6A0B5317BE8FF728D3A0A0AAEA1B86729DDD59566916640F9AF7A455145CE29CB58884CC2E9DD705B1E87D10E139945FBE70D20D718FED9AF202A22673D76128A5FCB2860419675ADB97512628C7C65C7078B0C730A258C8979912C18EC065367791A404C71318B78FE29CC115ECD74C4EFCDE86C35BD0CFC3ADC41B4F24243A262B251F6E21F731AF17 | 128 | 20171129085529 2 6 100 3071 2 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D97CB27FB |
129 | 20170623073343 2 6 100 3071 5 E787C1EA14A0022F3F98A02847D293441332B2EB8BFF8C4D74ECFF730CCA9D1AFC6433A6DD4BA7089EC18D8D314550FCDC6DA23FEFDE48622BB6FFD89AB71CC0BA6C8C0930593E85A442A9C589ECF35E17D9CC7E2AE713B3704D69B61EF6E79A41AE02ADBF7966DF94B1C6861795B7EDFA8D7418EBAEB47F26F158AEF3DB418FD1632DBB93B431204964B78C7AE9ED796E39F1B6DE1FEE4CE77815462F36342E80B44B052BADC06F78CFEA7D3D0B294C5C8E8E623F95F5D3C1A17D911A0E78FE7754AA4A440FE75498D9AA47AACF2FC2F716630AEF10950F1FACD4CF847A7E4B0C20F507A7322996DBC4D2250A99CB213CB95AAF7A8B6A0B5317BE8FF728D3A0A0AAEA1B86729DDD59566916640F9AF7A455145CE29CB58884CC2E9DD705B1E87D10E139945FBE70D20D718FED9AF202A22673D76128A5FCB2860419675ADB97512628C7C65C7078B0C730A258C8979912C18EC065367791A404C71318B78FE29CC115ECD74C4EFCDE86C35BD0CFC3ADC41B4F24243A262B251F6E21F8B6F58F | 129 | 20171129085643 2 6 100 3071 5 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D97F5D31F |
130 | 20170623073442 2 6 100 3071 5 E787C1EA14A0022F3F98A02847D293441332B2EB8BFF8C4D74ECFF730CCA9D1AFC6433A6DD4BA7089EC18D8D314550FCDC6DA23FEFDE48622BB6FFD89AB71CC0BA6C8C0930593E85A442A9C589ECF35E17D9CC7E2AE713B3704D69B61EF6E79A41AE02ADBF7966DF94B1C6861795B7EDFA8D7418EBAEB47F26F158AEF3DB418FD1632DBB93B431204964B78C7AE9ED796E39F1B6DE1FEE4CE77815462F36342E80B44B052BADC06F78CFEA7D3D0B294C5C8E8E623F95F5D3C1A17D911A0E78FE7754AA4A440FE75498D9AA47AACF2FC2F716630AEF10950F1FACD4CF847A7E4B0C20F507A7322996DBC4D2250A99CB213CB95AAF7A8B6A0B5317BE8FF728D3A0A0AAEA1B86729DDD59566916640F9AF7A455145CE29CB58884CC2E9DD705B1E87D10E139945FBE70D20D718FED9AF202A22673D76128A5FCB2860419675ADB97512628C7C65C7078B0C730A258C8979912C18EC065367791A404C71318B78FE29CC115ECD74C4EFCDE86C35BD0CFC3ADC41B4F24243A262B251F6E21F8DA7A47 | 130 | 20171129085754 2 6 100 3071 5 FE72CDD6784FBAB0F7AA00E2F31A76435F8A02AC8B14A52C64CF4998EFEDADF9272FF9ADCF5AEDB6EEAE34A36C64833C8D63398A4906979A6B785139D9E7FE72FE8E3502B71B7780E8F4D74A520D3C8E5706EA428CCB746B673EC7472704203315FFDA7F3D5FCE56F6F441AA575B77748D6CB69DC1D7DB8531902CCB0E4D4817FBF4BCFE05120B60B7B99C62C578E6BDADE8E45B44DD67448F25F9118DA92DE375421E131781ED0895CACACB30C2D94D994B16215284CDE857A6C677C0E04A9B81E9D88076167EF3CB8041B65A1756850C2C667F2C6F5D6700F868A1518FD192B3C1915F19D119B2CF4588BD043ED3443982768B641FED8E2BF8E85BAC97A82808450DCCD35B5ED09E089AA04226A7710E20D5C00AED1CBAA176D93E1FEA308B4763F0FE9456E11F645A06D22A33EEA1931104605F280C7C5630548F3D35F6DBEDC8133FDC184F95D43B7D865EEF1E78A952BE3F098328A863447E2EBB726F3AB543F686CBD8BF8F9E780166758B495B7B75066E4B1987002422692D981F137F |
131 | 20170623073826 2 6 100 3071 2 E787C1EA14A0022F3F98A02847D293441332B2EB8BFF8C4D74ECFF730CCA9D1AFC6433A6DD4BA7089EC18D8D314550FCDC6DA23FEFDE48622BB6FFD89AB71CC0BA6C8C0930593E85A442A9C589ECF35E17D9CC7E2AE713B3704D69B61EF6E79A41AE02ADBF7966DF94B1C6861795B7EDFA8D7418EBAEB47F26F158AEF3DB418FD1632DBB93B431204964B78C7AE9ED796E39F1B6DE1FEE4CE77815462F36342E80B44B052BADC06F78CFEA7D3D0B294C5C8E8E623F95F5D3C1A17D911A0E78FE7754AA4A440FE75498D9AA47AACF2FC2F716630AEF10950F1FACD4CF847A7E4B0C20F507A7322996DBC4D2250A99CB213CB95AAF7A8B6A0B5317BE8FF728D3A0A0AAEA1B86729DDD59566916640F9AF7A455145CE29CB58884CC2E9DD705B1E87D10E139945FBE70D20D718FED9AF202A22673D76128A5FCB2860419675ADB97512628C7C65C7078B0C730A258C8979912C18EC065367791A404C71318B78FE29CC115ECD74C4EFCDE86C35BD0CFC3ADC41B4F24243A262B251F6E21F983F783 | 131 | 20171129085925 2 6 100 3071 5 E5B2496BAE5BB80230B69F3FCDC4E4D64BEFCD390B3D2F4A774F3ED4CBDB333B81930CBAF737164C13615CC0BE2EC320E34B8312ADCAA5D9644C0F054DD446C6299262BC184374B516DE3613628A8FB2606ECBCCE08BEE2ABE5D4B7B4CED22910635B723FFDC9381C8F87D0A471F935B62AF4CBEA3C329DF758BEE99F07C33AD6499CDCDDD64E3105F689C831D566296C978F27F0DB2F44389D9E0256790A0E4976FE38192C4BCB20FAF5853ED8AB04B16FFA478AB5945A3E98B12D014509039AB2F05629C48CA9E2272F71AE6AF07E7FBD92CD944A656731FB783E8EB38DF15630CA074D8CB41ECE91AA8A0D756690813C1DDFBE58CCCE7A50F4C83479C85B11908F80768F76F2FB8870B70F498F3235A044A80F32CE9AA9C613CD611D8CDD3CFD3F6A033F1764CD3029AD5435525D8BDD1B45100D61986BF8DBD8290AEC82FE15DBBBF00850AE58137383EEAFF9C9EDEDF8CCD42840E5D57C006F37AA3493FBA1E1719C7BDFC5EE22275A4D0415FD0DAB28E5CD6062755797851948CD513EF |
132 | 20170623074239 2 6 100 3071 5 E787C1EA14A0022F3F98A02847D293441332B2EB8BFF8C4D74ECFF730CCA9D1AFC6433A6DD4BA7089EC18D8D314550FCDC6DA23FEFDE48622BB6FFD89AB71CC0BA6C8C0930593E85A442A9C589ECF35E17D9CC7E2AE713B3704D69B61EF6E79A41AE02ADBF7966DF94B1C6861795B7EDFA8D7418EBAEB47F26F158AEF3DB418FD1632DBB93B431204964B78C7AE9ED796E39F1B6DE1FEE4CE77815462F36342E80B44B052BADC06F78CFEA7D3D0B294C5C8E8E623F95F5D3C1A17D911A0E78FE7754AA4A440FE75498D9AA47AACF2FC2F716630AEF10950F1FACD4CF847A7E4B0C20F507A7322996DBC4D2250A99CB213CB95AAF7A8B6A0B5317BE8FF728D3A0A0AAEA1B86729DDD59566916640F9AF7A455145CE29CB58884CC2E9DD705B1E87D10E139945FBE70D20D718FED9AF202A22673D76128A5FCB2860419675ADB97512628C7C65C7078B0C730A258C8979912C18EC065367791A404C71318B78FE29CC115ECD74C4EFCDE86C35BD0CFC3ADC41B4F24243A262B251F6E21FA40B7CF | 132 | 20171129090650 2 6 100 3071 5 E5B2496BAE5BB80230B69F3FCDC4E4D64BEFCD390B3D2F4A774F3ED4CBDB333B81930CBAF737164C13615CC0BE2EC320E34B8312ADCAA5D9644C0F054DD446C6299262BC184374B516DE3613628A8FB2606ECBCCE08BEE2ABE5D4B7B4CED22910635B723FFDC9381C8F87D0A471F935B62AF4CBEA3C329DF758BEE99F07C33AD6499CDCDDD64E3105F689C831D566296C978F27F0DB2F44389D9E0256790A0E4976FE38192C4BCB20FAF5853ED8AB04B16FFA478AB5945A3E98B12D014509039AB2F05629C48CA9E2272F71AE6AF07E7FBD92CD944A656731FB783E8EB38DF15630CA074D8CB41ECE91AA8A0D756690813C1DDFBE58CCCE7A50F4C83479C85B11908F80768F76F2FB8870B70F498F3235A044A80F32CE9AA9C613CD611D8CDD3CFD3F6A033F1764CD3029AD5435525D8BDD1B45100D61986BF8DBD8290AEC82FE15DBBBF00850AE58137383EEAFF9C9EDEDF8CCD42840E5D57C006F37AA3493FBA1E1719C7BDFC5EE22275A4D0415FD0DAB28E5CD6062755797851948E0DB457 |
133 | 20170623074307 2 6 100 3071 2 E787C1EA14A0022F3F98A02847D293441332B2EB8BFF8C4D74ECFF730CCA9D1AFC6433A6DD4BA7089EC18D8D314550FCDC6DA23FEFDE48622BB6FFD89AB71CC0BA6C8C0930593E85A442A9C589ECF35E17D9CC7E2AE713B3704D69B61EF6E79A41AE02ADBF7966DF94B1C6861795B7EDFA8D7418EBAEB47F26F158AEF3DB418FD1632DBB93B431204964B78C7AE9ED796E39F1B6DE1FEE4CE77815462F36342E80B44B052BADC06F78CFEA7D3D0B294C5C8E8E623F95F5D3C1A17D911A0E78FE7754AA4A440FE75498D9AA47AACF2FC2F716630AEF10950F1FACD4CF847A7E4B0C20F507A7322996DBC4D2250A99CB213CB95AAF7A8B6A0B5317BE8FF728D3A0A0AAEA1B86729DDD59566916640F9AF7A455145CE29CB58884CC2E9DD705B1E87D10E139945FBE70D20D718FED9AF202A22673D76128A5FCB2860419675ADB97512628C7C65C7078B0C730A258C8979912C18EC065367791A404C71318B78FE29CC115ECD74C4EFCDE86C35BD0CFC3ADC41B4F24243A262B251F6E21FA4F193B | 133 | 20171129090703 2 6 100 3071 2 E5B2496BAE5BB80230B69F3FCDC4E4D64BEFCD390B3D2F4A774F3ED4CBDB333B81930CBAF737164C13615CC0BE2EC320E34B8312ADCAA5D9644C0F054DD446C6299262BC184374B516DE3613628A8FB2606ECBCCE08BEE2ABE5D4B7B4CED22910635B723FFDC9381C8F87D0A471F935B62AF4CBEA3C329DF758BEE99F07C33AD6499CDCDDD64E3105F689C831D566296C978F27F0DB2F44389D9E0256790A0E4976FE38192C4BCB20FAF5853ED8AB04B16FFA478AB5945A3E98B12D014509039AB2F05629C48CA9E2272F71AE6AF07E7FBD92CD944A656731FB783E8EB38DF15630CA074D8CB41ECE91AA8A0D756690813C1DDFBE58CCCE7A50F4C83479C85B11908F80768F76F2FB8870B70F498F3235A044A80F32CE9AA9C613CD611D8CDD3CFD3F6A033F1764CD3029AD5435525D8BDD1B45100D61986BF8DBD8290AEC82FE15DBBBF00850AE58137383EEAFF9C9EDEDF8CCD42840E5D57C006F37AA3493FBA1E1719C7BDFC5EE22275A4D0415FD0DAB28E5CD6062755797851948E0E411B |
134 | 20170623074345 2 6 100 3071 2 E787C1EA14A0022F3F98A02847D293441332B2EB8BFF8C4D74ECFF730CCA9D1AFC6433A6DD4BA7089EC18D8D314550FCDC6DA23FEFDE48622BB6FFD89AB71CC0BA6C8C0930593E85A442A9C589ECF35E17D9CC7E2AE713B3704D69B61EF6E79A41AE02ADBF7966DF94B1C6861795B7EDFA8D7418EBAEB47F26F158AEF3DB418FD1632DBB93B431204964B78C7AE9ED796E39F1B6DE1FEE4CE77815462F36342E80B44B052BADC06F78CFEA7D3D0B294C5C8E8E623F95F5D3C1A17D911A0E78FE7754AA4A440FE75498D9AA47AACF2FC2F716630AEF10950F1FACD4CF847A7E4B0C20F507A7322996DBC4D2250A99CB213CB95AAF7A8B6A0B5317BE8FF728D3A0A0AAEA1B86729DDD59566916640F9AF7A455145CE29CB58884CC2E9DD705B1E87D10E139945FBE70D20D718FED9AF202A22673D76128A5FCB2860419675ADB97512628C7C65C7078B0C730A258C8979912C18EC065367791A404C71318B78FE29CC115ECD74C4EFCDE86C35BD0CFC3ADC41B4F24243A262B251F6E21FA61D323 | 134 | 20171129091339 2 6 100 3071 2 E5B2496BAE5BB80230B69F3FCDC4E4D64BEFCD390B3D2F4A774F3ED4CBDB333B81930CBAF737164C13615CC0BE2EC320E34B8312ADCAA5D9644C0F054DD446C6299262BC184374B516DE3613628A8FB2606ECBCCE08BEE2ABE5D4B7B4CED22910635B723FFDC9381C8F87D0A471F935B62AF4CBEA3C329DF758BEE99F07C33AD6499CDCDDD64E3105F689C831D566296C978F27F0DB2F44389D9E0256790A0E4976FE38192C4BCB20FAF5853ED8AB04B16FFA478AB5945A3E98B12D014509039AB2F05629C48CA9E2272F71AE6AF07E7FBD92CD944A656731FB783E8EB38DF15630CA074D8CB41ECE91AA8A0D756690813C1DDFBE58CCCE7A50F4C83479C85B11908F80768F76F2FB8870B70F498F3235A044A80F32CE9AA9C613CD611D8CDD3CFD3F6A033F1764CD3029AD5435525D8BDD1B45100D61986BF8DBD8290AEC82FE15DBBBF00850AE58137383EEAFF9C9EDEDF8CCD42840E5D57C006F37AA3493FBA1E1719C7BDFC5EE22275A4D0415FD0DAB28E5CD6062755797851948F218A93 |
135 | 20170623074648 2 6 100 3071 2 E787C1EA14A0022F3F98A02847D293441332B2EB8BFF8C4D74ECFF730CCA9D1AFC6433A6DD4BA7089EC18D8D314550FCDC6DA23FEFDE48622BB6FFD89AB71CC0BA6C8C0930593E85A442A9C589ECF35E17D9CC7E2AE713B3704D69B61EF6E79A41AE02ADBF7966DF94B1C6861795B7EDFA8D7418EBAEB47F26F158AEF3DB418FD1632DBB93B431204964B78C7AE9ED796E39F1B6DE1FEE4CE77815462F36342E80B44B052BADC06F78CFEA7D3D0B294C5C8E8E623F95F5D3C1A17D911A0E78FE7754AA4A440FE75498D9AA47AACF2FC2F716630AEF10950F1FACD4CF847A7E4B0C20F507A7322996DBC4D2250A99CB213CB95AAF7A8B6A0B5317BE8FF728D3A0A0AAEA1B86729DDD59566916640F9AF7A455145CE29CB58884CC2E9DD705B1E87D10E139945FBE70D20D718FED9AF202A22673D76128A5FCB2860419675ADB97512628C7C65C7078B0C730A258C8979912C18EC065367791A404C71318B78FE29CC115ECD74C4EFCDE86C35BD0CFC3ADC41B4F24243A262B251F6E21FAEB991B | 135 | 20171129092140 2 6 100 3071 5 E5B2496BAE5BB80230B69F3FCDC4E4D64BEFCD390B3D2F4A774F3ED4CBDB333B81930CBAF737164C13615CC0BE2EC320E34B8312ADCAA5D9644C0F054DD446C6299262BC184374B516DE3613628A8FB2606ECBCCE08BEE2ABE5D4B7B4CED22910635B723FFDC9381C8F87D0A471F935B62AF4CBEA3C329DF758BEE99F07C33AD6499CDCDDD64E3105F689C831D566296C978F27F0DB2F44389D9E0256790A0E4976FE38192C4BCB20FAF5853ED8AB04B16FFA478AB5945A3E98B12D014509039AB2F05629C48CA9E2272F71AE6AF07E7FBD92CD944A656731FB783E8EB38DF15630CA074D8CB41ECE91AA8A0D756690813C1DDFBE58CCCE7A50F4C83479C85B11908F80768F76F2FB8870B70F498F3235A044A80F32CE9AA9C613CD611D8CDD3CFD3F6A033F1764CD3029AD5435525D8BDD1B45100D61986BF8DBD8290AEC82FE15DBBBF00850AE58137383EEAFF9C9EDEDF8CCD42840E5D57C006F37AA3493FBA1E1719C7BDFC5EE22275A4D0415FD0DAB28E5CD60627557978519490711E0F |
136 | 20170623074919 2 6 100 3071 5 E787C1EA14A0022F3F98A02847D293441332B2EB8BFF8C4D74ECFF730CCA9D1AFC6433A6DD4BA7089EC18D8D314550FCDC6DA23FEFDE48622BB6FFD89AB71CC0BA6C8C0930593E85A442A9C589ECF35E17D9CC7E2AE713B3704D69B61EF6E79A41AE02ADBF7966DF94B1C6861795B7EDFA8D7418EBAEB47F26F158AEF3DB418FD1632DBB93B431204964B78C7AE9ED796E39F1B6DE1FEE4CE77815462F36342E80B44B052BADC06F78CFEA7D3D0B294C5C8E8E623F95F5D3C1A17D911A0E78FE7754AA4A440FE75498D9AA47AACF2FC2F716630AEF10950F1FACD4CF847A7E4B0C20F507A7322996DBC4D2250A99CB213CB95AAF7A8B6A0B5317BE8FF728D3A0A0AAEA1B86729DDD59566916640F9AF7A455145CE29CB58884CC2E9DD705B1E87D10E139945FBE70D20D718FED9AF202A22673D76128A5FCB2860419675ADB97512628C7C65C7078B0C730A258C8979912C18EC065367791A404C71318B78FE29CC115ECD74C4EFCDE86C35BD0CFC3ADC41B4F24243A262B251F6E21FB5876F7 | 136 | 20171129092229 2 6 100 3071 5 E5B2496BAE5BB80230B69F3FCDC4E4D64BEFCD390B3D2F4A774F3ED4CBDB333B81930CBAF737164C13615CC0BE2EC320E34B8312ADCAA5D9644C0F054DD446C6299262BC184374B516DE3613628A8FB2606ECBCCE08BEE2ABE5D4B7B4CED22910635B723FFDC9381C8F87D0A471F935B62AF4CBEA3C329DF758BEE99F07C33AD6499CDCDDD64E3105F689C831D566296C978F27F0DB2F44389D9E0256790A0E4976FE38192C4BCB20FAF5853ED8AB04B16FFA478AB5945A3E98B12D014509039AB2F05629C48CA9E2272F71AE6AF07E7FBD92CD944A656731FB783E8EB38DF15630CA074D8CB41ECE91AA8A0D756690813C1DDFBE58CCCE7A50F4C83479C85B11908F80768F76F2FB8870B70F498F3235A044A80F32CE9AA9C613CD611D8CDD3CFD3F6A033F1764CD3029AD5435525D8BDD1B45100D61986BF8DBD8290AEC82FE15DBBBF00850AE58137383EEAFF9C9EDEDF8CCD42840E5D57C006F37AA3493FBA1E1719C7BDFC5EE22275A4D0415FD0DAB28E5CD606275579785194908BB287 |
137 | 20170623075011 2 6 100 3071 5 E787C1EA14A0022F3F98A02847D293441332B2EB8BFF8C4D74ECFF730CCA9D1AFC6433A6DD4BA7089EC18D8D314550FCDC6DA23FEFDE48622BB6FFD89AB71CC0BA6C8C0930593E85A442A9C589ECF35E17D9CC7E2AE713B3704D69B61EF6E79A41AE02ADBF7966DF94B1C6861795B7EDFA8D7418EBAEB47F26F158AEF3DB418FD1632DBB93B431204964B78C7AE9ED796E39F1B6DE1FEE4CE77815462F36342E80B44B052BADC06F78CFEA7D3D0B294C5C8E8E623F95F5D3C1A17D911A0E78FE7754AA4A440FE75498D9AA47AACF2FC2F716630AEF10950F1FACD4CF847A7E4B0C20F507A7322996DBC4D2250A99CB213CB95AAF7A8B6A0B5317BE8FF728D3A0A0AAEA1B86729DDD59566916640F9AF7A455145CE29CB58884CC2E9DD705B1E87D10E139945FBE70D20D718FED9AF202A22673D76128A5FCB2860419675ADB97512628C7C65C7078B0C730A258C8979912C18EC065367791A404C71318B78FE29CC115ECD74C4EFCDE86C35BD0CFC3ADC41B4F24243A262B251F6E21FB79557F | 137 | 20171129092532 2 6 100 3071 2 E5B2496BAE5BB80230B69F3FCDC4E4D64BEFCD390B3D2F4A774F3ED4CBDB333B81930CBAF737164C13615CC0BE2EC320E34B8312ADCAA5D9644C0F054DD446C6299262BC184374B516DE3613628A8FB2606ECBCCE08BEE2ABE5D4B7B4CED22910635B723FFDC9381C8F87D0A471F935B62AF4CBEA3C329DF758BEE99F07C33AD6499CDCDDD64E3105F689C831D566296C978F27F0DB2F44389D9E0256790A0E4976FE38192C4BCB20FAF5853ED8AB04B16FFA478AB5945A3E98B12D014509039AB2F05629C48CA9E2272F71AE6AF07E7FBD92CD944A656731FB783E8EB38DF15630CA074D8CB41ECE91AA8A0D756690813C1DDFBE58CCCE7A50F4C83479C85B11908F80768F76F2FB8870B70F498F3235A044A80F32CE9AA9C613CD611D8CDD3CFD3F6A033F1764CD3029AD5435525D8BDD1B45100D61986BF8DBD8290AEC82FE15DBBBF00850AE58137383EEAFF9C9EDEDF8CCD42840E5D57C006F37AA3493FBA1E1719C7BDFC5EE22275A4D0415FD0DAB28E5CD60627557978519491098743 |
138 | 20170623075040 2 6 100 3071 5 E787C1EA14A0022F3F98A02847D293441332B2EB8BFF8C4D74ECFF730CCA9D1AFC6433A6DD4BA7089EC18D8D314550FCDC6DA23FEFDE48622BB6FFD89AB71CC0BA6C8C0930593E85A442A9C589ECF35E17D9CC7E2AE713B3704D69B61EF6E79A41AE02ADBF7966DF94B1C6861795B7EDFA8D7418EBAEB47F26F158AEF3DB418FD1632DBB93B431204964B78C7AE9ED796E39F1B6DE1FEE4CE77815462F36342E80B44B052BADC06F78CFEA7D3D0B294C5C8E8E623F95F5D3C1A17D911A0E78FE7754AA4A440FE75498D9AA47AACF2FC2F716630AEF10950F1FACD4CF847A7E4B0C20F507A7322996DBC4D2250A99CB213CB95AAF7A8B6A0B5317BE8FF728D3A0A0AAEA1B86729DDD59566916640F9AF7A455145CE29CB58884CC2E9DD705B1E87D10E139945FBE70D20D718FED9AF202A22673D76128A5FCB2860419675ADB97512628C7C65C7078B0C730A258C8979912C18EC065367791A404C71318B78FE29CC115ECD74C4EFCDE86C35BD0CFC3ADC41B4F24243A262B251F6E21FB88E5F7 | 138 | 20171129092609 2 6 100 3071 5 E5B2496BAE5BB80230B69F3FCDC4E4D64BEFCD390B3D2F4A774F3ED4CBDB333B81930CBAF737164C13615CC0BE2EC320E34B8312ADCAA5D9644C0F054DD446C6299262BC184374B516DE3613628A8FB2606ECBCCE08BEE2ABE5D4B7B4CED22910635B723FFDC9381C8F87D0A471F935B62AF4CBEA3C329DF758BEE99F07C33AD6499CDCDDD64E3105F689C831D566296C978F27F0DB2F44389D9E0256790A0E4976FE38192C4BCB20FAF5853ED8AB04B16FFA478AB5945A3E98B12D014509039AB2F05629C48CA9E2272F71AE6AF07E7FBD92CD944A656731FB783E8EB38DF15630CA074D8CB41ECE91AA8A0D756690813C1DDFBE58CCCE7A50F4C83479C85B11908F80768F76F2FB8870B70F498F3235A044A80F32CE9AA9C613CD611D8CDD3CFD3F6A033F1764CD3029AD5435525D8BDD1B45100D61986BF8DBD8290AEC82FE15DBBBF00850AE58137383EEAFF9C9EDEDF8CCD42840E5D57C006F37AA3493FBA1E1719C7BDFC5EE22275A4D0415FD0DAB28E5CD606275579785194911B52CF |
139 | 20170623075211 2 6 100 3071 2 E787C1EA14A0022F3F98A02847D293441332B2EB8BFF8C4D74ECFF730CCA9D1AFC6433A6DD4BA7089EC18D8D314550FCDC6DA23FEFDE48622BB6FFD89AB71CC0BA6C8C0930593E85A442A9C589ECF35E17D9CC7E2AE713B3704D69B61EF6E79A41AE02ADBF7966DF94B1C6861795B7EDFA8D7418EBAEB47F26F158AEF3DB418FD1632DBB93B431204964B78C7AE9ED796E39F1B6DE1FEE4CE77815462F36342E80B44B052BADC06F78CFEA7D3D0B294C5C8E8E623F95F5D3C1A17D911A0E78FE7754AA4A440FE75498D9AA47AACF2FC2F716630AEF10950F1FACD4CF847A7E4B0C20F507A7322996DBC4D2250A99CB213CB95AAF7A8B6A0B5317BE8FF728D3A0A0AAEA1B86729DDD59566916640F9AF7A455145CE29CB58884CC2E9DD705B1E87D10E139945FBE70D20D718FED9AF202A22673D76128A5FCB2860419675ADB97512628C7C65C7078B0C730A258C8979912C18EC065367791A404C71318B78FE29CC115ECD74C4EFCDE86C35BD0CFC3ADC41B4F24243A262B251F6E21FBC86DF3 | 139 | 20171129092912 2 6 100 3071 5 E5B2496BAE5BB80230B69F3FCDC4E4D64BEFCD390B3D2F4A774F3ED4CBDB333B81930CBAF737164C13615CC0BE2EC320E34B8312ADCAA5D9644C0F054DD446C6299262BC184374B516DE3613628A8FB2606ECBCCE08BEE2ABE5D4B7B4CED22910635B723FFDC9381C8F87D0A471F935B62AF4CBEA3C329DF758BEE99F07C33AD6499CDCDDD64E3105F689C831D566296C978F27F0DB2F44389D9E0256790A0E4976FE38192C4BCB20FAF5853ED8AB04B16FFA478AB5945A3E98B12D014509039AB2F05629C48CA9E2272F71AE6AF07E7FBD92CD944A656731FB783E8EB38DF15630CA074D8CB41ECE91AA8A0D756690813C1DDFBE58CCCE7A50F4C83479C85B11908F80768F76F2FB8870B70F498F3235A044A80F32CE9AA9C613CD611D8CDD3CFD3F6A033F1764CD3029AD5435525D8BDD1B45100D61986BF8DBD8290AEC82FE15DBBBF00850AE58137383EEAFF9C9EDEDF8CCD42840E5D57C006F37AA3493FBA1E1719C7BDFC5EE22275A4D0415FD0DAB28E5CD60627557978519491979D17 |
140 | 20170623075233 2 6 100 3071 2 E787C1EA14A0022F3F98A02847D293441332B2EB8BFF8C4D74ECFF730CCA9D1AFC6433A6DD4BA7089EC18D8D314550FCDC6DA23FEFDE48622BB6FFD89AB71CC0BA6C8C0930593E85A442A9C589ECF35E17D9CC7E2AE713B3704D69B61EF6E79A41AE02ADBF7966DF94B1C6861795B7EDFA8D7418EBAEB47F26F158AEF3DB418FD1632DBB93B431204964B78C7AE9ED796E39F1B6DE1FEE4CE77815462F36342E80B44B052BADC06F78CFEA7D3D0B294C5C8E8E623F95F5D3C1A17D911A0E78FE7754AA4A440FE75498D9AA47AACF2FC2F716630AEF10950F1FACD4CF847A7E4B0C20F507A7322996DBC4D2250A99CB213CB95AAF7A8B6A0B5317BE8FF728D3A0A0AAEA1B86729DDD59566916640F9AF7A455145CE29CB58884CC2E9DD705B1E87D10E139945FBE70D20D718FED9AF202A22673D76128A5FCB2860419675ADB97512628C7C65C7078B0C730A258C8979912C18EC065367791A404C71318B78FE29CC115ECD74C4EFCDE86C35BD0CFC3ADC41B4F24243A262B251F6E21FBD19D1B | 140 | 20171129093038 2 6 100 3071 2 E5B2496BAE5BB80230B69F3FCDC4E4D64BEFCD390B3D2F4A774F3ED4CBDB333B81930CBAF737164C13615CC0BE2EC320E34B8312ADCAA5D9644C0F054DD446C6299262BC184374B516DE3613628A8FB2606ECBCCE08BEE2ABE5D4B7B4CED22910635B723FFDC9381C8F87D0A471F935B62AF4CBEA3C329DF758BEE99F07C33AD6499CDCDDD64E3105F689C831D566296C978F27F0DB2F44389D9E0256790A0E4976FE38192C4BCB20FAF5853ED8AB04B16FFA478AB5945A3E98B12D014509039AB2F05629C48CA9E2272F71AE6AF07E7FBD92CD944A656731FB783E8EB38DF15630CA074D8CB41ECE91AA8A0D756690813C1DDFBE58CCCE7A50F4C83479C85B11908F80768F76F2FB8870B70F498F3235A044A80F32CE9AA9C613CD611D8CDD3CFD3F6A033F1764CD3029AD5435525D8BDD1B45100D61986BF8DBD8290AEC82FE15DBBBF00850AE58137383EEAFF9C9EDEDF8CCD42840E5D57C006F37AA3493FBA1E1719C7BDFC5EE22275A4D0415FD0DAB28E5CD60627557978519491CBE28B |
141 | 20170623075313 2 6 100 3071 5 E787C1EA14A0022F3F98A02847D293441332B2EB8BFF8C4D74ECFF730CCA9D1AFC6433A6DD4BA7089EC18D8D314550FCDC6DA23FEFDE48622BB6FFD89AB71CC0BA6C8C0930593E85A442A9C589ECF35E17D9CC7E2AE713B3704D69B61EF6E79A41AE02ADBF7966DF94B1C6861795B7EDFA8D7418EBAEB47F26F158AEF3DB418FD1632DBB93B431204964B78C7AE9ED796E39F1B6DE1FEE4CE77815462F36342E80B44B052BADC06F78CFEA7D3D0B294C5C8E8E623F95F5D3C1A17D911A0E78FE7754AA4A440FE75498D9AA47AACF2FC2F716630AEF10950F1FACD4CF847A7E4B0C20F507A7322996DBC4D2250A99CB213CB95AAF7A8B6A0B5317BE8FF728D3A0A0AAEA1B86729DDD59566916640F9AF7A455145CE29CB58884CC2E9DD705B1E87D10E139945FBE70D20D718FED9AF202A22673D76128A5FCB2860419675ADB97512628C7C65C7078B0C730A258C8979912C18EC065367791A404C71318B78FE29CC115ECD74C4EFCDE86C35BD0CFC3ADC41B4F24243A262B251F6E21FBE8A97F | 141 | 20171129093318 2 6 100 3071 5 E5B2496BAE5BB80230B69F3FCDC4E4D64BEFCD390B3D2F4A774F3ED4CBDB333B81930CBAF737164C13615CC0BE2EC320E34B8312ADCAA5D9644C0F054DD446C6299262BC184374B516DE3613628A8FB2606ECBCCE08BEE2ABE5D4B7B4CED22910635B723FFDC9381C8F87D0A471F935B62AF4CBEA3C329DF758BEE99F07C33AD6499CDCDDD64E3105F689C831D566296C978F27F0DB2F44389D9E0256790A0E4976FE38192C4BCB20FAF5853ED8AB04B16FFA478AB5945A3E98B12D014509039AB2F05629C48CA9E2272F71AE6AF07E7FBD92CD944A656731FB783E8EB38DF15630CA074D8CB41ECE91AA8A0D756690813C1DDFBE58CCCE7A50F4C83479C85B11908F80768F76F2FB8870B70F498F3235A044A80F32CE9AA9C613CD611D8CDD3CFD3F6A033F1764CD3029AD5435525D8BDD1B45100D61986BF8DBD8290AEC82FE15DBBBF00850AE58137383EEAFF9C9EDEDF8CCD42840E5D57C006F37AA3493FBA1E1719C7BDFC5EE22275A4D0415FD0DAB28E5CD60627557978519492326CF7 |
142 | 20170623080026 2 6 100 3071 2 E787C1EA14A0022F3F98A02847D293441332B2EB8BFF8C4D74ECFF730CCA9D1AFC6433A6DD4BA7089EC18D8D314550FCDC6DA23FEFDE48622BB6FFD89AB71CC0BA6C8C0930593E85A442A9C589ECF35E17D9CC7E2AE713B3704D69B61EF6E79A41AE02ADBF7966DF94B1C6861795B7EDFA8D7418EBAEB47F26F158AEF3DB418FD1632DBB93B431204964B78C7AE9ED796E39F1B6DE1FEE4CE77815462F36342E80B44B052BADC06F78CFEA7D3D0B294C5C8E8E623F95F5D3C1A17D911A0E78FE7754AA4A440FE75498D9AA47AACF2FC2F716630AEF10950F1FACD4CF847A7E4B0C20F507A7322996DBC4D2250A99CB213CB95AAF7A8B6A0B5317BE8FF728D3A0A0AAEA1B86729DDD59566916640F9AF7A455145CE29CB58884CC2E9DD705B1E87D10E139945FBE70D20D718FED9AF202A22673D76128A5FCB2860419675ADB97512628C7C65C7078B0C730A258C8979912C18EC065367791A404C71318B78FE29CC115ECD74C4EFCDE86C35BD0CFC3ADC41B4F24243A262B251F6E21FD35417B | 142 | 20171129093513 2 6 100 3071 2 E5B2496BAE5BB80230B69F3FCDC4E4D64BEFCD390B3D2F4A774F3ED4CBDB333B81930CBAF737164C13615CC0BE2EC320E34B8312ADCAA5D9644C0F054DD446C6299262BC184374B516DE3613628A8FB2606ECBCCE08BEE2ABE5D4B7B4CED22910635B723FFDC9381C8F87D0A471F935B62AF4CBEA3C329DF758BEE99F07C33AD6499CDCDDD64E3105F689C831D566296C978F27F0DB2F44389D9E0256790A0E4976FE38192C4BCB20FAF5853ED8AB04B16FFA478AB5945A3E98B12D014509039AB2F05629C48CA9E2272F71AE6AF07E7FBD92CD944A656731FB783E8EB38DF15630CA074D8CB41ECE91AA8A0D756690813C1DDFBE58CCCE7A50F4C83479C85B11908F80768F76F2FB8870B70F498F3235A044A80F32CE9AA9C613CD611D8CDD3CFD3F6A033F1764CD3029AD5435525D8BDD1B45100D61986BF8DBD8290AEC82FE15DBBBF00850AE58137383EEAFF9C9EDEDF8CCD42840E5D57C006F37AA3493FBA1E1719C7BDFC5EE22275A4D0415FD0DAB28E5CD606275579785194927B907B |
143 | 20170623082844 2 6 100 4095 2 DCFD3F9E0CF8187E955D8AEB347A5E4250C2B78E67E73E1DCDB99D67EC98180AE5FEF9119D38E50CBDBF46C8B2F62240FF5E1B28FB01276B82DB7422A777AA30AC5A9423D9AC3D33C9FECCC85823BD1138919E8F831364B093CF13B11CDD11394AA8D2256D58264266F780EABBA494E99EF63EC1F69997D180ABBA50B091AFD7FF478DAFF435CE2529E5F8FC81316AB0EA636014E125715FC77D653B142734C93FCD825C28CB928D579E9ED2C6C11E89C64B9C4B91CA962FB11C824F302BDEF7F67D1F7AC95F52B49FD4A044101BA3BDDD59C7663AB270D24DC846B90925F615EBFA5182F261938182E301C83FDC027381BD0FA753C84E57CC51531E7D0C468988B67D0B312E73C65E21D93C69C7862553F60BC9B26C6B5FB68BEDA3D7B0770C1116FF2B88484C7FB29A9D46D01719E89CB76A25C1B8349E3F8DA38CC00B3C1502BA6775BE363D27FA71A72DE0094E6805DEABB343B4A6DC98CD5F5191017B4E1CB0E5EE2FA979642305B8FDE9EE6A26E469C03C8B806F9492C0C544D7A0FE7773B3940812AE6B76C447BC28AA8127D9A7FEB7F98B9720C889CE2FF4806225B012B06F2FC0737D2A73A3046BD7ACBF0A8CF02BB3FAB81A60A29C0AA5B3B731541F62B542F4EF8224C6BAF6A087D0A9FE43492E5CE13F855E80457A516155CCA04A6144E402A1A3D71D657556B9124837730953505EB479984819069919E3F0A3 | 143 | 20171129093638 2 6 100 3071 5 E5B2496BAE5BB80230B69F3FCDC4E4D64BEFCD390B3D2F4A774F3ED4CBDB333B81930CBAF737164C13615CC0BE2EC320E34B8312ADCAA5D9644C0F054DD446C6299262BC184374B516DE3613628A8FB2606ECBCCE08BEE2ABE5D4B7B4CED22910635B723FFDC9381C8F87D0A471F935B62AF4CBEA3C329DF758BEE99F07C33AD6499CDCDDD64E3105F689C831D566296C978F27F0DB2F44389D9E0256790A0E4976FE38192C4BCB20FAF5853ED8AB04B16FFA478AB5945A3E98B12D014509039AB2F05629C48CA9E2272F71AE6AF07E7FBD92CD944A656731FB783E8EB38DF15630CA074D8CB41ECE91AA8A0D756690813C1DDFBE58CCCE7A50F4C83479C85B11908F80768F76F2FB8870B70F498F3235A044A80F32CE9AA9C613CD611D8CDD3CFD3F6A033F1764CD3029AD5435525D8BDD1B45100D61986BF8DBD8290AEC82FE15DBBBF00850AE58137383EEAFF9C9EDEDF8CCD42840E5D57C006F37AA3493FBA1E1719C7BDFC5EE22275A4D0415FD0DAB28E5CD60627557978519492B0BBB7 |
144 | 20170623084111 2 6 100 4095 2 DCFD3F9E0CF8187E955D8AEB347A5E4250C2B78E67E73E1DCDB99D67EC98180AE5FEF9119D38E50CBDBF46C8B2F62240FF5E1B28FB01276B82DB7422A777AA30AC5A9423D9AC3D33C9FECCC85823BD1138919E8F831364B093CF13B11CDD11394AA8D2256D58264266F780EABBA494E99EF63EC1F69997D180ABBA50B091AFD7FF478DAFF435CE2529E5F8FC81316AB0EA636014E125715FC77D653B142734C93FCD825C28CB928D579E9ED2C6C11E89C64B9C4B91CA962FB11C824F302BDEF7F67D1F7AC95F52B49FD4A044101BA3BDDD59C7663AB270D24DC846B90925F615EBFA5182F261938182E301C83FDC027381BD0FA753C84E57CC51531E7D0C468988B67D0B312E73C65E21D93C69C7862553F60BC9B26C6B5FB68BEDA3D7B0770C1116FF2B88484C7FB29A9D46D01719E89CB76A25C1B8349E3F8DA38CC00B3C1502BA6775BE363D27FA71A72DE0094E6805DEABB343B4A6DC98CD5F5191017B4E1CB0E5EE2FA979642305B8FDE9EE6A26E469C03C8B806F9492C0C544D7A0FE7773B3940812AE6B76C447BC28AA8127D9A7FEB7F98B9720C889CE2FF4806225B012B06F2FC0737D2A73A3046BD7ACBF0A8CF02BB3FAB81A60A29C0AA5B3B731541F62B542F4EF8224C6BAF6A087D0A9FE43492E5CE13F855E80457A516155CCA04A6144E402A1A3D71D657556B9124837730953505EB47998481906991AE37AEB | 144 | 20171129094059 2 6 100 3071 2 E5B2496BAE5BB80230B69F3FCDC4E4D64BEFCD390B3D2F4A774F3ED4CBDB333B81930CBAF737164C13615CC0BE2EC320E34B8312ADCAA5D9644C0F054DD446C6299262BC184374B516DE3613628A8FB2606ECBCCE08BEE2ABE5D4B7B4CED22910635B723FFDC9381C8F87D0A471F935B62AF4CBEA3C329DF758BEE99F07C33AD6499CDCDDD64E3105F689C831D566296C978F27F0DB2F44389D9E0256790A0E4976FE38192C4BCB20FAF5853ED8AB04B16FFA478AB5945A3E98B12D014509039AB2F05629C48CA9E2272F71AE6AF07E7FBD92CD944A656731FB783E8EB38DF15630CA074D8CB41ECE91AA8A0D756690813C1DDFBE58CCCE7A50F4C83479C85B11908F80768F76F2FB8870B70F498F3235A044A80F32CE9AA9C613CD611D8CDD3CFD3F6A033F1764CD3029AD5435525D8BDD1B45100D61986BF8DBD8290AEC82FE15DBBBF00850AE58137383EEAFF9C9EDEDF8CCD42840E5D57C006F37AA3493FBA1E1719C7BDFC5EE22275A4D0415FD0DAB28E5CD60627557978519493646CBB |
145 | 20170623091322 2 6 100 4095 5 DCFD3F9E0CF8187E955D8AEB347A5E4250C2B78E67E73E1DCDB99D67EC98180AE5FEF9119D38E50CBDBF46C8B2F62240FF5E1B28FB01276B82DB7422A777AA30AC5A9423D9AC3D33C9FECCC85823BD1138919E8F831364B093CF13B11CDD11394AA8D2256D58264266F780EABBA494E99EF63EC1F69997D180ABBA50B091AFD7FF478DAFF435CE2529E5F8FC81316AB0EA636014E125715FC77D653B142734C93FCD825C28CB928D579E9ED2C6C11E89C64B9C4B91CA962FB11C824F302BDEF7F67D1F7AC95F52B49FD4A044101BA3BDDD59C7663AB270D24DC846B90925F615EBFA5182F261938182E301C83FDC027381BD0FA753C84E57CC51531E7D0C468988B67D0B312E73C65E21D93C69C7862553F60BC9B26C6B5FB68BEDA3D7B0770C1116FF2B88484C7FB29A9D46D01719E89CB76A25C1B8349E3F8DA38CC00B3C1502BA6775BE363D27FA71A72DE0094E6805DEABB343B4A6DC98CD5F5191017B4E1CB0E5EE2FA979642305B8FDE9EE6A26E469C03C8B806F9492C0C544D7A0FE7773B3940812AE6B76C447BC28AA8127D9A7FEB7F98B9720C889CE2FF4806225B012B06F2FC0737D2A73A3046BD7ACBF0A8CF02BB3FAB81A60A29C0AA5B3B731541F62B542F4EF8224C6BAF6A087D0A9FE43492E5CE13F855E80457A516155CCA04A6144E402A1A3D71D657556B9124837730953505EB47998481906991D857A5F | 145 | 20171129094240 2 6 100 3071 2 E5B2496BAE5BB80230B69F3FCDC4E4D64BEFCD390B3D2F4A774F3ED4CBDB333B81930CBAF737164C13615CC0BE2EC320E34B8312ADCAA5D9644C0F054DD446C6299262BC184374B516DE3613628A8FB2606ECBCCE08BEE2ABE5D4B7B4CED22910635B723FFDC9381C8F87D0A471F935B62AF4CBEA3C329DF758BEE99F07C33AD6499CDCDDD64E3105F689C831D566296C978F27F0DB2F44389D9E0256790A0E4976FE38192C4BCB20FAF5853ED8AB04B16FFA478AB5945A3E98B12D014509039AB2F05629C48CA9E2272F71AE6AF07E7FBD92CD944A656731FB783E8EB38DF15630CA074D8CB41ECE91AA8A0D756690813C1DDFBE58CCCE7A50F4C83479C85B11908F80768F76F2FB8870B70F498F3235A044A80F32CE9AA9C613CD611D8CDD3CFD3F6A033F1764CD3029AD5435525D8BDD1B45100D61986BF8DBD8290AEC82FE15DBBBF00850AE58137383EEAFF9C9EDEDF8CCD42840E5D57C006F37AA3493FBA1E1719C7BDFC5EE22275A4D0415FD0DAB28E5CD606275579785194939F7823 |
146 | 20170623095654 2 6 100 4095 5 DCFD3F9E0CF8187E955D8AEB347A5E4250C2B78E67E73E1DCDB99D67EC98180AE5FEF9119D38E50CBDBF46C8B2F62240FF5E1B28FB01276B82DB7422A777AA30AC5A9423D9AC3D33C9FECCC85823BD1138919E8F831364B093CF13B11CDD11394AA8D2256D58264266F780EABBA494E99EF63EC1F69997D180ABBA50B091AFD7FF478DAFF435CE2529E5F8FC81316AB0EA636014E125715FC77D653B142734C93FCD825C28CB928D579E9ED2C6C11E89C64B9C4B91CA962FB11C824F302BDEF7F67D1F7AC95F52B49FD4A044101BA3BDDD59C7663AB270D24DC846B90925F615EBFA5182F261938182E301C83FDC027381BD0FA753C84E57CC51531E7D0C468988B67D0B312E73C65E21D93C69C7862553F60BC9B26C6B5FB68BEDA3D7B0770C1116FF2B88484C7FB29A9D46D01719E89CB76A25C1B8349E3F8DA38CC00B3C1502BA6775BE363D27FA71A72DE0094E6805DEABB343B4A6DC98CD5F5191017B4E1CB0E5EE2FA979642305B8FDE9EE6A26E469C03C8B806F9492C0C544D7A0FE7773B3940812AE6B76C447BC28AA8127D9A7FEB7F98B9720C889CE2FF4806225B012B06F2FC0737D2A73A3046BD7ACBF0A8CF02BB3FAB81A60A29C0AA5B3B731541F62B542F4EF8224C6BAF6A087D0A9FE43492E5CE13F855E80457A516155CCA04A6144E402A1A3D71D657556B9124837730953505EB4799848190699210172E7 | 146 | 20171129094307 2 6 100 3071 2 E5B2496BAE5BB80230B69F3FCDC4E4D64BEFCD390B3D2F4A774F3ED4CBDB333B81930CBAF737164C13615CC0BE2EC320E34B8312ADCAA5D9644C0F054DD446C6299262BC184374B516DE3613628A8FB2606ECBCCE08BEE2ABE5D4B7B4CED22910635B723FFDC9381C8F87D0A471F935B62AF4CBEA3C329DF758BEE99F07C33AD6499CDCDDD64E3105F689C831D566296C978F27F0DB2F44389D9E0256790A0E4976FE38192C4BCB20FAF5853ED8AB04B16FFA478AB5945A3E98B12D014509039AB2F05629C48CA9E2272F71AE6AF07E7FBD92CD944A656731FB783E8EB38DF15630CA074D8CB41ECE91AA8A0D756690813C1DDFBE58CCCE7A50F4C83479C85B11908F80768F76F2FB8870B70F498F3235A044A80F32CE9AA9C613CD611D8CDD3CFD3F6A033F1764CD3029AD5435525D8BDD1B45100D61986BF8DBD8290AEC82FE15DBBBF00850AE58137383EEAFF9C9EDEDF8CCD42840E5D57C006F37AA3493FBA1E1719C7BDFC5EE22275A4D0415FD0DAB28E5CD60627557978519493AB8EBB |
147 | 20170623095828 2 6 100 4095 2 DCFD3F9E0CF8187E955D8AEB347A5E4250C2B78E67E73E1DCDB99D67EC98180AE5FEF9119D38E50CBDBF46C8B2F62240FF5E1B28FB01276B82DB7422A777AA30AC5A9423D9AC3D33C9FECCC85823BD1138919E8F831364B093CF13B11CDD11394AA8D2256D58264266F780EABBA494E99EF63EC1F69997D180ABBA50B091AFD7FF478DAFF435CE2529E5F8FC81316AB0EA636014E125715FC77D653B142734C93FCD825C28CB928D579E9ED2C6C11E89C64B9C4B91CA962FB11C824F302BDEF7F67D1F7AC95F52B49FD4A044101BA3BDDD59C7663AB270D24DC846B90925F615EBFA5182F261938182E301C83FDC027381BD0FA753C84E57CC51531E7D0C468988B67D0B312E73C65E21D93C69C7862553F60BC9B26C6B5FB68BEDA3D7B0770C1116FF2B88484C7FB29A9D46D01719E89CB76A25C1B8349E3F8DA38CC00B3C1502BA6775BE363D27FA71A72DE0094E6805DEABB343B4A6DC98CD5F5191017B4E1CB0E5EE2FA979642305B8FDE9EE6A26E469C03C8B806F9492C0C544D7A0FE7773B3940812AE6B76C447BC28AA8127D9A7FEB7F98B9720C889CE2FF4806225B012B06F2FC0737D2A73A3046BD7ACBF0A8CF02BB3FAB81A60A29C0AA5B3B731541F62B542F4EF8224C6BAF6A087D0A9FE43492E5CE13F855E80457A516155CCA04A6144E402A1A3D71D657556B9124837730953505EB479984819069921188C6B | 147 | 20171129094439 2 6 100 3071 5 E5B2496BAE5BB80230B69F3FCDC4E4D64BEFCD390B3D2F4A774F3ED4CBDB333B81930CBAF737164C13615CC0BE2EC320E34B8312ADCAA5D9644C0F054DD446C6299262BC184374B516DE3613628A8FB2606ECBCCE08BEE2ABE5D4B7B4CED22910635B723FFDC9381C8F87D0A471F935B62AF4CBEA3C329DF758BEE99F07C33AD6499CDCDDD64E3105F689C831D566296C978F27F0DB2F44389D9E0256790A0E4976FE38192C4BCB20FAF5853ED8AB04B16FFA478AB5945A3E98B12D014509039AB2F05629C48CA9E2272F71AE6AF07E7FBD92CD944A656731FB783E8EB38DF15630CA074D8CB41ECE91AA8A0D756690813C1DDFBE58CCCE7A50F4C83479C85B11908F80768F76F2FB8870B70F498F3235A044A80F32CE9AA9C613CD611D8CDD3CFD3F6A033F1764CD3029AD5435525D8BDD1B45100D61986BF8DBD8290AEC82FE15DBBBF00850AE58137383EEAFF9C9EDEDF8CCD42840E5D57C006F37AA3493FBA1E1719C7BDFC5EE22275A4D0415FD0DAB28E5CD60627557978519493E34B3F |
148 | 20170623095901 2 6 100 4095 5 DCFD3F9E0CF8187E955D8AEB347A5E4250C2B78E67E73E1DCDB99D67EC98180AE5FEF9119D38E50CBDBF46C8B2F62240FF5E1B28FB01276B82DB7422A777AA30AC5A9423D9AC3D33C9FECCC85823BD1138919E8F831364B093CF13B11CDD11394AA8D2256D58264266F780EABBA494E99EF63EC1F69997D180ABBA50B091AFD7FF478DAFF435CE2529E5F8FC81316AB0EA636014E125715FC77D653B142734C93FCD825C28CB928D579E9ED2C6C11E89C64B9C4B91CA962FB11C824F302BDEF7F67D1F7AC95F52B49FD4A044101BA3BDDD59C7663AB270D24DC846B90925F615EBFA5182F261938182E301C83FDC027381BD0FA753C84E57CC51531E7D0C468988B67D0B312E73C65E21D93C69C7862553F60BC9B26C6B5FB68BEDA3D7B0770C1116FF2B88484C7FB29A9D46D01719E89CB76A25C1B8349E3F8DA38CC00B3C1502BA6775BE363D27FA71A72DE0094E6805DEABB343B4A6DC98CD5F5191017B4E1CB0E5EE2FA979642305B8FDE9EE6A26E469C03C8B806F9492C0C544D7A0FE7773B3940812AE6B76C447BC28AA8127D9A7FEB7F98B9720C889CE2FF4806225B012B06F2FC0737D2A73A3046BD7ACBF0A8CF02BB3FAB81A60A29C0AA5B3B731541F62B542F4EF8224C6BAF6A087D0A9FE43492E5CE13F855E80457A516155CCA04A6144E402A1A3D71D657556B9124837730953505EB4799848190699211B667F | 148 | 20171129094532 2 6 100 3071 5 E5B2496BAE5BB80230B69F3FCDC4E4D64BEFCD390B3D2F4A774F3ED4CBDB333B81930CBAF737164C13615CC0BE2EC320E34B8312ADCAA5D9644C0F054DD446C6299262BC184374B516DE3613628A8FB2606ECBCCE08BEE2ABE5D4B7B4CED22910635B723FFDC9381C8F87D0A471F935B62AF4CBEA3C329DF758BEE99F07C33AD6499CDCDDD64E3105F689C831D566296C978F27F0DB2F44389D9E0256790A0E4976FE38192C4BCB20FAF5853ED8AB04B16FFA478AB5945A3E98B12D014509039AB2F05629C48CA9E2272F71AE6AF07E7FBD92CD944A656731FB783E8EB38DF15630CA074D8CB41ECE91AA8A0D756690813C1DDFBE58CCCE7A50F4C83479C85B11908F80768F76F2FB8870B70F498F3235A044A80F32CE9AA9C613CD611D8CDD3CFD3F6A033F1764CD3029AD5435525D8BDD1B45100D61986BF8DBD8290AEC82FE15DBBBF00850AE58137383EEAFF9C9EDEDF8CCD42840E5D57C006F37AA3493FBA1E1719C7BDFC5EE22275A4D0415FD0DAB28E5CD60627557978519493FF8E7F |
149 | 20170623100423 2 6 100 4095 2 DCFD3F9E0CF8187E955D8AEB347A5E4250C2B78E67E73E1DCDB99D67EC98180AE5FEF9119D38E50CBDBF46C8B2F62240FF5E1B28FB01276B82DB7422A777AA30AC5A9423D9AC3D33C9FECCC85823BD1138919E8F831364B093CF13B11CDD11394AA8D2256D58264266F780EABBA494E99EF63EC1F69997D180ABBA50B091AFD7FF478DAFF435CE2529E5F8FC81316AB0EA636014E125715FC77D653B142734C93FCD825C28CB928D579E9ED2C6C11E89C64B9C4B91CA962FB11C824F302BDEF7F67D1F7AC95F52B49FD4A044101BA3BDDD59C7663AB270D24DC846B90925F615EBFA5182F261938182E301C83FDC027381BD0FA753C84E57CC51531E7D0C468988B67D0B312E73C65E21D93C69C7862553F60BC9B26C6B5FB68BEDA3D7B0770C1116FF2B88484C7FB29A9D46D01719E89CB76A25C1B8349E3F8DA38CC00B3C1502BA6775BE363D27FA71A72DE0094E6805DEABB343B4A6DC98CD5F5191017B4E1CB0E5EE2FA979642305B8FDE9EE6A26E469C03C8B806F9492C0C544D7A0FE7773B3940812AE6B76C447BC28AA8127D9A7FEB7F98B9720C889CE2FF4806225B012B06F2FC0737D2A73A3046BD7ACBF0A8CF02BB3FAB81A60A29C0AA5B3B731541F62B542F4EF8224C6BAF6A087D0A9FE43492E5CE13F855E80457A516155CCA04A6144E402A1A3D71D657556B9124837730953505EB479984819069921818383 | 149 | 20171129094653 2 6 100 3071 2 E5B2496BAE5BB80230B69F3FCDC4E4D64BEFCD390B3D2F4A774F3ED4CBDB333B81930CBAF737164C13615CC0BE2EC320E34B8312ADCAA5D9644C0F054DD446C6299262BC184374B516DE3613628A8FB2606ECBCCE08BEE2ABE5D4B7B4CED22910635B723FFDC9381C8F87D0A471F935B62AF4CBEA3C329DF758BEE99F07C33AD6499CDCDDD64E3105F689C831D566296C978F27F0DB2F44389D9E0256790A0E4976FE38192C4BCB20FAF5853ED8AB04B16FFA478AB5945A3E98B12D014509039AB2F05629C48CA9E2272F71AE6AF07E7FBD92CD944A656731FB783E8EB38DF15630CA074D8CB41ECE91AA8A0D756690813C1DDFBE58CCCE7A50F4C83479C85B11908F80768F76F2FB8870B70F498F3235A044A80F32CE9AA9C613CD611D8CDD3CFD3F6A033F1764CD3029AD5435525D8BDD1B45100D61986BF8DBD8290AEC82FE15DBBBF00850AE58137383EEAFF9C9EDEDF8CCD42840E5D57C006F37AA3493FBA1E1719C7BDFC5EE22275A4D0415FD0DAB28E5CD60627557978519494307873 |
150 | 20170623101338 2 6 100 4095 2 DCFD3F9E0CF8187E955D8AEB347A5E4250C2B78E67E73E1DCDB99D67EC98180AE5FEF9119D38E50CBDBF46C8B2F62240FF5E1B28FB01276B82DB7422A777AA30AC5A9423D9AC3D33C9FECCC85823BD1138919E8F831364B093CF13B11CDD11394AA8D2256D58264266F780EABBA494E99EF63EC1F69997D180ABBA50B091AFD7FF478DAFF435CE2529E5F8FC81316AB0EA636014E125715FC77D653B142734C93FCD825C28CB928D579E9ED2C6C11E89C64B9C4B91CA962FB11C824F302BDEF7F67D1F7AC95F52B49FD4A044101BA3BDDD59C7663AB270D24DC846B90925F615EBFA5182F261938182E301C83FDC027381BD0FA753C84E57CC51531E7D0C468988B67D0B312E73C65E21D93C69C7862553F60BC9B26C6B5FB68BEDA3D7B0770C1116FF2B88484C7FB29A9D46D01719E89CB76A25C1B8349E3F8DA38CC00B3C1502BA6775BE363D27FA71A72DE0094E6805DEABB343B4A6DC98CD5F5191017B4E1CB0E5EE2FA979642305B8FDE9EE6A26E469C03C8B806F9492C0C544D7A0FE7773B3940812AE6B76C447BC28AA8127D9A7FEB7F98B9720C889CE2FF4806225B012B06F2FC0737D2A73A3046BD7ACBF0A8CF02BB3FAB81A60A29C0AA5B3B731541F62B542F4EF8224C6BAF6A087D0A9FE43492E5CE13F855E80457A516155CCA04A6144E402A1A3D71D657556B9124837730953505EB4799848190699223C1F3B | 150 | 20171129094922 2 6 100 3071 5 E5B2496BAE5BB80230B69F3FCDC4E4D64BEFCD390B3D2F4A774F3ED4CBDB333B81930CBAF737164C13615CC0BE2EC320E34B8312ADCAA5D9644C0F054DD446C6299262BC184374B516DE3613628A8FB2606ECBCCE08BEE2ABE5D4B7B4CED22910635B723FFDC9381C8F87D0A471F935B62AF4CBEA3C329DF758BEE99F07C33AD6499CDCDDD64E3105F689C831D566296C978F27F0DB2F44389D9E0256790A0E4976FE38192C4BCB20FAF5853ED8AB04B16FFA478AB5945A3E98B12D014509039AB2F05629C48CA9E2272F71AE6AF07E7FBD92CD944A656731FB783E8EB38DF15630CA074D8CB41ECE91AA8A0D756690813C1DDFBE58CCCE7A50F4C83479C85B11908F80768F76F2FB8870B70F498F3235A044A80F32CE9AA9C613CD611D8CDD3CFD3F6A033F1764CD3029AD5435525D8BDD1B45100D61986BF8DBD8290AEC82FE15DBBBF00850AE58137383EEAFF9C9EDEDF8CCD42840E5D57C006F37AA3493FBA1E1719C7BDFC5EE22275A4D0415FD0DAB28E5CD60627557978519494921E2F |
151 | 20170623101757 2 6 100 4095 2 DCFD3F9E0CF8187E955D8AEB347A5E4250C2B78E67E73E1DCDB99D67EC98180AE5FEF9119D38E50CBDBF46C8B2F62240FF5E1B28FB01276B82DB7422A777AA30AC5A9423D9AC3D33C9FECCC85823BD1138919E8F831364B093CF13B11CDD11394AA8D2256D58264266F780EABBA494E99EF63EC1F69997D180ABBA50B091AFD7FF478DAFF435CE2529E5F8FC81316AB0EA636014E125715FC77D653B142734C93FCD825C28CB928D579E9ED2C6C11E89C64B9C4B91CA962FB11C824F302BDEF7F67D1F7AC95F52B49FD4A044101BA3BDDD59C7663AB270D24DC846B90925F615EBFA5182F261938182E301C83FDC027381BD0FA753C84E57CC51531E7D0C468988B67D0B312E73C65E21D93C69C7862553F60BC9B26C6B5FB68BEDA3D7B0770C1116FF2B88484C7FB29A9D46D01719E89CB76A25C1B8349E3F8DA38CC00B3C1502BA6775BE363D27FA71A72DE0094E6805DEABB343B4A6DC98CD5F5191017B4E1CB0E5EE2FA979642305B8FDE9EE6A26E469C03C8B806F9492C0C544D7A0FE7773B3940812AE6B76C447BC28AA8127D9A7FEB7F98B9720C889CE2FF4806225B012B06F2FC0737D2A73A3046BD7ACBF0A8CF02BB3FAB81A60A29C0AA5B3B731541F62B542F4EF8224C6BAF6A087D0A9FE43492E5CE13F855E80457A516155CCA04A6144E402A1A3D71D657556B9124837730953505EB4799848190699228B3683 | 151 | 20171129094940 2 6 100 3071 2 E5B2496BAE5BB80230B69F3FCDC4E4D64BEFCD390B3D2F4A774F3ED4CBDB333B81930CBAF737164C13615CC0BE2EC320E34B8312ADCAA5D9644C0F054DD446C6299262BC184374B516DE3613628A8FB2606ECBCCE08BEE2ABE5D4B7B4CED22910635B723FFDC9381C8F87D0A471F935B62AF4CBEA3C329DF758BEE99F07C33AD6499CDCDDD64E3105F689C831D566296C978F27F0DB2F44389D9E0256790A0E4976FE38192C4BCB20FAF5853ED8AB04B16FFA478AB5945A3E98B12D014509039AB2F05629C48CA9E2272F71AE6AF07E7FBD92CD944A656731FB783E8EB38DF15630CA074D8CB41ECE91AA8A0D756690813C1DDFBE58CCCE7A50F4C83479C85B11908F80768F76F2FB8870B70F498F3235A044A80F32CE9AA9C613CD611D8CDD3CFD3F6A033F1764CD3029AD5435525D8BDD1B45100D61986BF8DBD8290AEC82FE15DBBBF00850AE58137383EEAFF9C9EDEDF8CCD42840E5D57C006F37AA3493FBA1E1719C7BDFC5EE22275A4D0415FD0DAB28E5CD6062755797851949496EE1B |
152 | 20170623104910 2 6 100 4095 2 DCFD3F9E0CF8187E955D8AEB347A5E4250C2B78E67E73E1DCDB99D67EC98180AE5FEF9119D38E50CBDBF46C8B2F62240FF5E1B28FB01276B82DB7422A777AA30AC5A9423D9AC3D33C9FECCC85823BD1138919E8F831364B093CF13B11CDD11394AA8D2256D58264266F780EABBA494E99EF63EC1F69997D180ABBA50B091AFD7FF478DAFF435CE2529E5F8FC81316AB0EA636014E125715FC77D653B142734C93FCD825C28CB928D579E9ED2C6C11E89C64B9C4B91CA962FB11C824F302BDEF7F67D1F7AC95F52B49FD4A044101BA3BDDD59C7663AB270D24DC846B90925F615EBFA5182F261938182E301C83FDC027381BD0FA753C84E57CC51531E7D0C468988B67D0B312E73C65E21D93C69C7862553F60BC9B26C6B5FB68BEDA3D7B0770C1116FF2B88484C7FB29A9D46D01719E89CB76A25C1B8349E3F8DA38CC00B3C1502BA6775BE363D27FA71A72DE0094E6805DEABB343B4A6DC98CD5F5191017B4E1CB0E5EE2FA979642305B8FDE9EE6A26E469C03C8B806F9492C0C544D7A0FE7773B3940812AE6B76C447BC28AA8127D9A7FEB7F98B9720C889CE2FF4806225B012B06F2FC0737D2A73A3046BD7ACBF0A8CF02BB3FAB81A60A29C0AA5B3B731541F62B542F4EF8224C6BAF6A087D0A9FE43492E5CE13F855E80457A516155CCA04A6144E402A1A3D71D657556B9124837730953505EB4799848190699250221BB | 152 | 20171129095758 2 6 100 3071 5 E5B2496BAE5BB80230B69F3FCDC4E4D64BEFCD390B3D2F4A774F3ED4CBDB333B81930CBAF737164C13615CC0BE2EC320E34B8312ADCAA5D9644C0F054DD446C6299262BC184374B516DE3613628A8FB2606ECBCCE08BEE2ABE5D4B7B4CED22910635B723FFDC9381C8F87D0A471F935B62AF4CBEA3C329DF758BEE99F07C33AD6499CDCDDD64E3105F689C831D566296C978F27F0DB2F44389D9E0256790A0E4976FE38192C4BCB20FAF5853ED8AB04B16FFA478AB5945A3E98B12D014509039AB2F05629C48CA9E2272F71AE6AF07E7FBD92CD944A656731FB783E8EB38DF15630CA074D8CB41ECE91AA8A0D756690813C1DDFBE58CCCE7A50F4C83479C85B11908F80768F76F2FB8870B70F498F3235A044A80F32CE9AA9C613CD611D8CDD3CFD3F6A033F1764CD3029AD5435525D8BDD1B45100D61986BF8DBD8290AEC82FE15DBBBF00850AE58137383EEAFF9C9EDEDF8CCD42840E5D57C006F37AA3493FBA1E1719C7BDFC5EE22275A4D0415FD0DAB28E5CD60627557978519495F23CAF |
153 | 20170623110231 2 6 100 4095 2 DCFD3F9E0CF8187E955D8AEB347A5E4250C2B78E67E73E1DCDB99D67EC98180AE5FEF9119D38E50CBDBF46C8B2F62240FF5E1B28FB01276B82DB7422A777AA30AC5A9423D9AC3D33C9FECCC85823BD1138919E8F831364B093CF13B11CDD11394AA8D2256D58264266F780EABBA494E99EF63EC1F69997D180ABBA50B091AFD7FF478DAFF435CE2529E5F8FC81316AB0EA636014E125715FC77D653B142734C93FCD825C28CB928D579E9ED2C6C11E89C64B9C4B91CA962FB11C824F302BDEF7F67D1F7AC95F52B49FD4A044101BA3BDDD59C7663AB270D24DC846B90925F615EBFA5182F261938182E301C83FDC027381BD0FA753C84E57CC51531E7D0C468988B67D0B312E73C65E21D93C69C7862553F60BC9B26C6B5FB68BEDA3D7B0770C1116FF2B88484C7FB29A9D46D01719E89CB76A25C1B8349E3F8DA38CC00B3C1502BA6775BE363D27FA71A72DE0094E6805DEABB343B4A6DC98CD5F5191017B4E1CB0E5EE2FA979642305B8FDE9EE6A26E469C03C8B806F9492C0C544D7A0FE7773B3940812AE6B76C447BC28AA8127D9A7FEB7F98B9720C889CE2FF4806225B012B06F2FC0737D2A73A3046BD7ACBF0A8CF02BB3FAB81A60A29C0AA5B3B731541F62B542F4EF8224C6BAF6A087D0A9FE43492E5CE13F855E80457A516155CCA04A6144E402A1A3D71D657556B9124837730953505EB4799848190699260AC373 | 153 | 20171129100214 2 6 100 3071 5 E5B2496BAE5BB80230B69F3FCDC4E4D64BEFCD390B3D2F4A774F3ED4CBDB333B81930CBAF737164C13615CC0BE2EC320E34B8312ADCAA5D9644C0F054DD446C6299262BC184374B516DE3613628A8FB2606ECBCCE08BEE2ABE5D4B7B4CED22910635B723FFDC9381C8F87D0A471F935B62AF4CBEA3C329DF758BEE99F07C33AD6499CDCDDD64E3105F689C831D566296C978F27F0DB2F44389D9E0256790A0E4976FE38192C4BCB20FAF5853ED8AB04B16FFA478AB5945A3E98B12D014509039AB2F05629C48CA9E2272F71AE6AF07E7FBD92CD944A656731FB783E8EB38DF15630CA074D8CB41ECE91AA8A0D756690813C1DDFBE58CCCE7A50F4C83479C85B11908F80768F76F2FB8870B70F498F3235A044A80F32CE9AA9C613CD611D8CDD3CFD3F6A033F1764CD3029AD5435525D8BDD1B45100D61986BF8DBD8290AEC82FE15DBBBF00850AE58137383EEAFF9C9EDEDF8CCD42840E5D57C006F37AA3493FBA1E1719C7BDFC5EE22275A4D0415FD0DAB28E5CD606275579785194969CC5B7 |
154 | 20170623110814 2 6 100 4095 2 DCFD3F9E0CF8187E955D8AEB347A5E4250C2B78E67E73E1DCDB99D67EC98180AE5FEF9119D38E50CBDBF46C8B2F62240FF5E1B28FB01276B82DB7422A777AA30AC5A9423D9AC3D33C9FECCC85823BD1138919E8F831364B093CF13B11CDD11394AA8D2256D58264266F780EABBA494E99EF63EC1F69997D180ABBA50B091AFD7FF478DAFF435CE2529E5F8FC81316AB0EA636014E125715FC77D653B142734C93FCD825C28CB928D579E9ED2C6C11E89C64B9C4B91CA962FB11C824F302BDEF7F67D1F7AC95F52B49FD4A044101BA3BDDD59C7663AB270D24DC846B90925F615EBFA5182F261938182E301C83FDC027381BD0FA753C84E57CC51531E7D0C468988B67D0B312E73C65E21D93C69C7862553F60BC9B26C6B5FB68BEDA3D7B0770C1116FF2B88484C7FB29A9D46D01719E89CB76A25C1B8349E3F8DA38CC00B3C1502BA6775BE363D27FA71A72DE0094E6805DEABB343B4A6DC98CD5F5191017B4E1CB0E5EE2FA979642305B8FDE9EE6A26E469C03C8B806F9492C0C544D7A0FE7773B3940812AE6B76C447BC28AA8127D9A7FEB7F98B9720C889CE2FF4806225B012B06F2FC0737D2A73A3046BD7ACBF0A8CF02BB3FAB81A60A29C0AA5B3B731541F62B542F4EF8224C6BAF6A087D0A9FE43492E5CE13F855E80457A516155CCA04A6144E402A1A3D71D657556B9124837730953505EB47998481906992672C113 | 154 | 20171129101245 2 6 100 3071 2 E5B2496BAE5BB80230B69F3FCDC4E4D64BEFCD390B3D2F4A774F3ED4CBDB333B81930CBAF737164C13615CC0BE2EC320E34B8312ADCAA5D9644C0F054DD446C6299262BC184374B516DE3613628A8FB2606ECBCCE08BEE2ABE5D4B7B4CED22910635B723FFDC9381C8F87D0A471F935B62AF4CBEA3C329DF758BEE99F07C33AD6499CDCDDD64E3105F689C831D566296C978F27F0DB2F44389D9E0256790A0E4976FE38192C4BCB20FAF5853ED8AB04B16FFA478AB5945A3E98B12D014509039AB2F05629C48CA9E2272F71AE6AF07E7FBD92CD944A656731FB783E8EB38DF15630CA074D8CB41ECE91AA8A0D756690813C1DDFBE58CCCE7A50F4C83479C85B11908F80768F76F2FB8870B70F498F3235A044A80F32CE9AA9C613CD611D8CDD3CFD3F6A033F1764CD3029AD5435525D8BDD1B45100D61986BF8DBD8290AEC82FE15DBBBF00850AE58137383EEAFF9C9EDEDF8CCD42840E5D57C006F37AA3493FBA1E1719C7BDFC5EE22275A4D0415FD0DAB28E5CD60627557978519498540453 |
155 | 20170623113826 2 6 100 4095 5 DCFD3F9E0CF8187E955D8AEB347A5E4250C2B78E67E73E1DCDB99D67EC98180AE5FEF9119D38E50CBDBF46C8B2F62240FF5E1B28FB01276B82DB7422A777AA30AC5A9423D9AC3D33C9FECCC85823BD1138919E8F831364B093CF13B11CDD11394AA8D2256D58264266F780EABBA494E99EF63EC1F69997D180ABBA50B091AFD7FF478DAFF435CE2529E5F8FC81316AB0EA636014E125715FC77D653B142734C93FCD825C28CB928D579E9ED2C6C11E89C64B9C4B91CA962FB11C824F302BDEF7F67D1F7AC95F52B49FD4A044101BA3BDDD59C7663AB270D24DC846B90925F615EBFA5182F261938182E301C83FDC027381BD0FA753C84E57CC51531E7D0C468988B67D0B312E73C65E21D93C69C7862553F60BC9B26C6B5FB68BEDA3D7B0770C1116FF2B88484C7FB29A9D46D01719E89CB76A25C1B8349E3F8DA38CC00B3C1502BA6775BE363D27FA71A72DE0094E6805DEABB343B4A6DC98CD5F5191017B4E1CB0E5EE2FA979642305B8FDE9EE6A26E469C03C8B806F9492C0C544D7A0FE7773B3940812AE6B76C447BC28AA8127D9A7FEB7F98B9720C889CE2FF4806225B012B06F2FC0737D2A73A3046BD7ACBF0A8CF02BB3FAB81A60A29C0AA5B3B731541F62B542F4EF8224C6BAF6A087D0A9FE43492E5CE13F855E80457A516155CCA04A6144E402A1A3D71D657556B9124837730953505EB479984819069928D90D4F | 155 | 20171129101539 2 6 100 3071 2 E5B2496BAE5BB80230B69F3FCDC4E4D64BEFCD390B3D2F4A774F3ED4CBDB333B81930CBAF737164C13615CC0BE2EC320E34B8312ADCAA5D9644C0F054DD446C6299262BC184374B516DE3613628A8FB2606ECBCCE08BEE2ABE5D4B7B4CED22910635B723FFDC9381C8F87D0A471F935B62AF4CBEA3C329DF758BEE99F07C33AD6499CDCDDD64E3105F689C831D566296C978F27F0DB2F44389D9E0256790A0E4976FE38192C4BCB20FAF5853ED8AB04B16FFA478AB5945A3E98B12D014509039AB2F05629C48CA9E2272F71AE6AF07E7FBD92CD944A656731FB783E8EB38DF15630CA074D8CB41ECE91AA8A0D756690813C1DDFBE58CCCE7A50F4C83479C85B11908F80768F76F2FB8870B70F498F3235A044A80F32CE9AA9C613CD611D8CDD3CFD3F6A033F1764CD3029AD5435525D8BDD1B45100D61986BF8DBD8290AEC82FE15DBBBF00850AE58137383EEAFF9C9EDEDF8CCD42840E5D57C006F37AA3493FBA1E1719C7BDFC5EE22275A4D0415FD0DAB28E5CD60627557978519498C81ACB |
156 | 20170623120249 2 6 100 4095 5 DCFD3F9E0CF8187E955D8AEB347A5E4250C2B78E67E73E1DCDB99D67EC98180AE5FEF9119D38E50CBDBF46C8B2F62240FF5E1B28FB01276B82DB7422A777AA30AC5A9423D9AC3D33C9FECCC85823BD1138919E8F831364B093CF13B11CDD11394AA8D2256D58264266F780EABBA494E99EF63EC1F69997D180ABBA50B091AFD7FF478DAFF435CE2529E5F8FC81316AB0EA636014E125715FC77D653B142734C93FCD825C28CB928D579E9ED2C6C11E89C64B9C4B91CA962FB11C824F302BDEF7F67D1F7AC95F52B49FD4A044101BA3BDDD59C7663AB270D24DC846B90925F615EBFA5182F261938182E301C83FDC027381BD0FA753C84E57CC51531E7D0C468988B67D0B312E73C65E21D93C69C7862553F60BC9B26C6B5FB68BEDA3D7B0770C1116FF2B88484C7FB29A9D46D01719E89CB76A25C1B8349E3F8DA38CC00B3C1502BA6775BE363D27FA71A72DE0094E6805DEABB343B4A6DC98CD5F5191017B4E1CB0E5EE2FA979642305B8FDE9EE6A26E469C03C8B806F9492C0C544D7A0FE7773B3940812AE6B76C447BC28AA8127D9A7FEB7F98B9720C889CE2FF4806225B012B06F2FC0737D2A73A3046BD7ACBF0A8CF02BB3FAB81A60A29C0AA5B3B731541F62B542F4EF8224C6BAF6A087D0A9FE43492E5CE13F855E80457A516155CCA04A6144E402A1A3D71D657556B9124837730953505EB47998481906992AC1BA3F | 156 | 20171129101618 2 6 100 3071 2 E5B2496BAE5BB80230B69F3FCDC4E4D64BEFCD390B3D2F4A774F3ED4CBDB333B81930CBAF737164C13615CC0BE2EC320E34B8312ADCAA5D9644C0F054DD446C6299262BC184374B516DE3613628A8FB2606ECBCCE08BEE2ABE5D4B7B4CED22910635B723FFDC9381C8F87D0A471F935B62AF4CBEA3C329DF758BEE99F07C33AD6499CDCDDD64E3105F689C831D566296C978F27F0DB2F44389D9E0256790A0E4976FE38192C4BCB20FAF5853ED8AB04B16FFA478AB5945A3E98B12D014509039AB2F05629C48CA9E2272F71AE6AF07E7FBD92CD944A656731FB783E8EB38DF15630CA074D8CB41ECE91AA8A0D756690813C1DDFBE58CCCE7A50F4C83479C85B11908F80768F76F2FB8870B70F498F3235A044A80F32CE9AA9C613CD611D8CDD3CFD3F6A033F1764CD3029AD5435525D8BDD1B45100D61986BF8DBD8290AEC82FE15DBBBF00850AE58137383EEAFF9C9EDEDF8CCD42840E5D57C006F37AA3493FBA1E1719C7BDFC5EE22275A4D0415FD0DAB28E5CD60627557978519498DC4FEB |
157 | 20170623121815 2 6 100 4095 2 DCFD3F9E0CF8187E955D8AEB347A5E4250C2B78E67E73E1DCDB99D67EC98180AE5FEF9119D38E50CBDBF46C8B2F62240FF5E1B28FB01276B82DB7422A777AA30AC5A9423D9AC3D33C9FECCC85823BD1138919E8F831364B093CF13B11CDD11394AA8D2256D58264266F780EABBA494E99EF63EC1F69997D180ABBA50B091AFD7FF478DAFF435CE2529E5F8FC81316AB0EA636014E125715FC77D653B142734C93FCD825C28CB928D579E9ED2C6C11E89C64B9C4B91CA962FB11C824F302BDEF7F67D1F7AC95F52B49FD4A044101BA3BDDD59C7663AB270D24DC846B90925F615EBFA5182F261938182E301C83FDC027381BD0FA753C84E57CC51531E7D0C468988B67D0B312E73C65E21D93C69C7862553F60BC9B26C6B5FB68BEDA3D7B0770C1116FF2B88484C7FB29A9D46D01719E89CB76A25C1B8349E3F8DA38CC00B3C1502BA6775BE363D27FA71A72DE0094E6805DEABB343B4A6DC98CD5F5191017B4E1CB0E5EE2FA979642305B8FDE9EE6A26E469C03C8B806F9492C0C544D7A0FE7773B3940812AE6B76C447BC28AA8127D9A7FEB7F98B9720C889CE2FF4806225B012B06F2FC0737D2A73A3046BD7ACBF0A8CF02BB3FAB81A60A29C0AA5B3B731541F62B542F4EF8224C6BAF6A087D0A9FE43492E5CE13F855E80457A516155CCA04A6144E402A1A3D71D657556B9124837730953505EB47998481906992BFC1B7B | 157 | 20171129101802 2 6 100 3071 2 E5B2496BAE5BB80230B69F3FCDC4E4D64BEFCD390B3D2F4A774F3ED4CBDB333B81930CBAF737164C13615CC0BE2EC320E34B8312ADCAA5D9644C0F054DD446C6299262BC184374B516DE3613628A8FB2606ECBCCE08BEE2ABE5D4B7B4CED22910635B723FFDC9381C8F87D0A471F935B62AF4CBEA3C329DF758BEE99F07C33AD6499CDCDDD64E3105F689C831D566296C978F27F0DB2F44389D9E0256790A0E4976FE38192C4BCB20FAF5853ED8AB04B16FFA478AB5945A3E98B12D014509039AB2F05629C48CA9E2272F71AE6AF07E7FBD92CD944A656731FB783E8EB38DF15630CA074D8CB41ECE91AA8A0D756690813C1DDFBE58CCCE7A50F4C83479C85B11908F80768F76F2FB8870B70F498F3235A044A80F32CE9AA9C613CD611D8CDD3CFD3F6A033F1764CD3029AD5435525D8BDD1B45100D61986BF8DBD8290AEC82FE15DBBBF00850AE58137383EEAFF9C9EDEDF8CCD42840E5D57C006F37AA3493FBA1E1719C7BDFC5EE22275A4D0415FD0DAB28E5CD606275579785194991CB3FB |
158 | 20170623122456 2 6 100 4095 5 DCFD3F9E0CF8187E955D8AEB347A5E4250C2B78E67E73E1DCDB99D67EC98180AE5FEF9119D38E50CBDBF46C8B2F62240FF5E1B28FB01276B82DB7422A777AA30AC5A9423D9AC3D33C9FECCC85823BD1138919E8F831364B093CF13B11CDD11394AA8D2256D58264266F780EABBA494E99EF63EC1F69997D180ABBA50B091AFD7FF478DAFF435CE2529E5F8FC81316AB0EA636014E125715FC77D653B142734C93FCD825C28CB928D579E9ED2C6C11E89C64B9C4B91CA962FB11C824F302BDEF7F67D1F7AC95F52B49FD4A044101BA3BDDD59C7663AB270D24DC846B90925F615EBFA5182F261938182E301C83FDC027381BD0FA753C84E57CC51531E7D0C468988B67D0B312E73C65E21D93C69C7862553F60BC9B26C6B5FB68BEDA3D7B0770C1116FF2B88484C7FB29A9D46D01719E89CB76A25C1B8349E3F8DA38CC00B3C1502BA6775BE363D27FA71A72DE0094E6805DEABB343B4A6DC98CD5F5191017B4E1CB0E5EE2FA979642305B8FDE9EE6A26E469C03C8B806F9492C0C544D7A0FE7773B3940812AE6B76C447BC28AA8127D9A7FEB7F98B9720C889CE2FF4806225B012B06F2FC0737D2A73A3046BD7ACBF0A8CF02BB3FAB81A60A29C0AA5B3B731541F62B542F4EF8224C6BAF6A087D0A9FE43492E5CE13F855E80457A516155CCA04A6144E402A1A3D71D657556B9124837730953505EB47998481906992C7EB0CF | 158 | 20171129102023 2 6 100 3071 2 E5B2496BAE5BB80230B69F3FCDC4E4D64BEFCD390B3D2F4A774F3ED4CBDB333B81930CBAF737164C13615CC0BE2EC320E34B8312ADCAA5D9644C0F054DD446C6299262BC184374B516DE3613628A8FB2606ECBCCE08BEE2ABE5D4B7B4CED22910635B723FFDC9381C8F87D0A471F935B62AF4CBEA3C329DF758BEE99F07C33AD6499CDCDDD64E3105F689C831D566296C978F27F0DB2F44389D9E0256790A0E4976FE38192C4BCB20FAF5853ED8AB04B16FFA478AB5945A3E98B12D014509039AB2F05629C48CA9E2272F71AE6AF07E7FBD92CD944A656731FB783E8EB38DF15630CA074D8CB41ECE91AA8A0D756690813C1DDFBE58CCCE7A50F4C83479C85B11908F80768F76F2FB8870B70F498F3235A044A80F32CE9AA9C613CD611D8CDD3CFD3F6A033F1764CD3029AD5435525D8BDD1B45100D61986BF8DBD8290AEC82FE15DBBBF00850AE58137383EEAFF9C9EDEDF8CCD42840E5D57C006F37AA3493FBA1E1719C7BDFC5EE22275A4D0415FD0DAB28E5CD606275579785194997603BB |
159 | 20170623123432 2 6 100 4095 2 DCFD3F9E0CF8187E955D8AEB347A5E4250C2B78E67E73E1DCDB99D67EC98180AE5FEF9119D38E50CBDBF46C8B2F62240FF5E1B28FB01276B82DB7422A777AA30AC5A9423D9AC3D33C9FECCC85823BD1138919E8F831364B093CF13B11CDD11394AA8D2256D58264266F780EABBA494E99EF63EC1F69997D180ABBA50B091AFD7FF478DAFF435CE2529E5F8FC81316AB0EA636014E125715FC77D653B142734C93FCD825C28CB928D579E9ED2C6C11E89C64B9C4B91CA962FB11C824F302BDEF7F67D1F7AC95F52B49FD4A044101BA3BDDD59C7663AB270D24DC846B90925F615EBFA5182F261938182E301C83FDC027381BD0FA753C84E57CC51531E7D0C468988B67D0B312E73C65E21D93C69C7862553F60BC9B26C6B5FB68BEDA3D7B0770C1116FF2B88484C7FB29A9D46D01719E89CB76A25C1B8349E3F8DA38CC00B3C1502BA6775BE363D27FA71A72DE0094E6805DEABB343B4A6DC98CD5F5191017B4E1CB0E5EE2FA979642305B8FDE9EE6A26E469C03C8B806F9492C0C544D7A0FE7773B3940812AE6B76C447BC28AA8127D9A7FEB7F98B9720C889CE2FF4806225B012B06F2FC0737D2A73A3046BD7ACBF0A8CF02BB3FAB81A60A29C0AA5B3B731541F62B542F4EF8224C6BAF6A087D0A9FE43492E5CE13F855E80457A516155CCA04A6144E402A1A3D71D657556B9124837730953505EB47998481906992D3D886B | 159 | 20171129102105 2 6 100 3071 2 E5B2496BAE5BB80230B69F3FCDC4E4D64BEFCD390B3D2F4A774F3ED4CBDB333B81930CBAF737164C13615CC0BE2EC320E34B8312ADCAA5D9644C0F054DD446C6299262BC184374B516DE3613628A8FB2606ECBCCE08BEE2ABE5D4B7B4CED22910635B723FFDC9381C8F87D0A471F935B62AF4CBEA3C329DF758BEE99F07C33AD6499CDCDDD64E3105F689C831D566296C978F27F0DB2F44389D9E0256790A0E4976FE38192C4BCB20FAF5853ED8AB04B16FFA478AB5945A3E98B12D014509039AB2F05629C48CA9E2272F71AE6AF07E7FBD92CD944A656731FB783E8EB38DF15630CA074D8CB41ECE91AA8A0D756690813C1DDFBE58CCCE7A50F4C83479C85B11908F80768F76F2FB8870B70F498F3235A044A80F32CE9AA9C613CD611D8CDD3CFD3F6A033F1764CD3029AD5435525D8BDD1B45100D61986BF8DBD8290AEC82FE15DBBBF00850AE58137383EEAFF9C9EDEDF8CCD42840E5D57C006F37AA3493FBA1E1719C7BDFC5EE22275A4D0415FD0DAB28E5CD606275579785194998A9683 |
160 | 20170623125910 2 6 100 4095 2 DCFD3F9E0CF8187E955D8AEB347A5E4250C2B78E67E73E1DCDB99D67EC98180AE5FEF9119D38E50CBDBF46C8B2F62240FF5E1B28FB01276B82DB7422A777AA30AC5A9423D9AC3D33C9FECCC85823BD1138919E8F831364B093CF13B11CDD11394AA8D2256D58264266F780EABBA494E99EF63EC1F69997D180ABBA50B091AFD7FF478DAFF435CE2529E5F8FC81316AB0EA636014E125715FC77D653B142734C93FCD825C28CB928D579E9ED2C6C11E89C64B9C4B91CA962FB11C824F302BDEF7F67D1F7AC95F52B49FD4A044101BA3BDDD59C7663AB270D24DC846B90925F615EBFA5182F261938182E301C83FDC027381BD0FA753C84E57CC51531E7D0C468988B67D0B312E73C65E21D93C69C7862553F60BC9B26C6B5FB68BEDA3D7B0770C1116FF2B88484C7FB29A9D46D01719E89CB76A25C1B8349E3F8DA38CC00B3C1502BA6775BE363D27FA71A72DE0094E6805DEABB343B4A6DC98CD5F5191017B4E1CB0E5EE2FA979642305B8FDE9EE6A26E469C03C8B806F9492C0C544D7A0FE7773B3940812AE6B76C447BC28AA8127D9A7FEB7F98B9720C889CE2FF4806225B012B06F2FC0737D2A73A3046BD7ACBF0A8CF02BB3FAB81A60A29C0AA5B3B731541F62B542F4EF8224C6BAF6A087D0A9FE43492E5CE13F855E80457A516155CCA04A6144E402A1A3D71D657556B9124837730953505EB47998481906992F34AA0B | 160 | 20171129102314 2 6 100 3071 5 E5B2496BAE5BB80230B69F3FCDC4E4D64BEFCD390B3D2F4A774F3ED4CBDB333B81930CBAF737164C13615CC0BE2EC320E34B8312ADCAA5D9644C0F054DD446C6299262BC184374B516DE3613628A8FB2606ECBCCE08BEE2ABE5D4B7B4CED22910635B723FFDC9381C8F87D0A471F935B62AF4CBEA3C329DF758BEE99F07C33AD6499CDCDDD64E3105F689C831D566296C978F27F0DB2F44389D9E0256790A0E4976FE38192C4BCB20FAF5853ED8AB04B16FFA478AB5945A3E98B12D014509039AB2F05629C48CA9E2272F71AE6AF07E7FBD92CD944A656731FB783E8EB38DF15630CA074D8CB41ECE91AA8A0D756690813C1DDFBE58CCCE7A50F4C83479C85B11908F80768F76F2FB8870B70F498F3235A044A80F32CE9AA9C613CD611D8CDD3CFD3F6A033F1764CD3029AD5435525D8BDD1B45100D61986BF8DBD8290AEC82FE15DBBBF00850AE58137383EEAFF9C9EDEDF8CCD42840E5D57C006F37AA3493FBA1E1719C7BDFC5EE22275A4D0415FD0DAB28E5CD60627557978519499DEC1C7 |
161 | 20170623130350 2 6 100 4095 5 DCFD3F9E0CF8187E955D8AEB347A5E4250C2B78E67E73E1DCDB99D67EC98180AE5FEF9119D38E50CBDBF46C8B2F62240FF5E1B28FB01276B82DB7422A777AA30AC5A9423D9AC3D33C9FECCC85823BD1138919E8F831364B093CF13B11CDD11394AA8D2256D58264266F780EABBA494E99EF63EC1F69997D180ABBA50B091AFD7FF478DAFF435CE2529E5F8FC81316AB0EA636014E125715FC77D653B142734C93FCD825C28CB928D579E9ED2C6C11E89C64B9C4B91CA962FB11C824F302BDEF7F67D1F7AC95F52B49FD4A044101BA3BDDD59C7663AB270D24DC846B90925F615EBFA5182F261938182E301C83FDC027381BD0FA753C84E57CC51531E7D0C468988B67D0B312E73C65E21D93C69C7862553F60BC9B26C6B5FB68BEDA3D7B0770C1116FF2B88484C7FB29A9D46D01719E89CB76A25C1B8349E3F8DA38CC00B3C1502BA6775BE363D27FA71A72DE0094E6805DEABB343B4A6DC98CD5F5191017B4E1CB0E5EE2FA979642305B8FDE9EE6A26E469C03C8B806F9492C0C544D7A0FE7773B3940812AE6B76C447BC28AA8127D9A7FEB7F98B9720C889CE2FF4806225B012B06F2FC0737D2A73A3046BD7ACBF0A8CF02BB3FAB81A60A29C0AA5B3B731541F62B542F4EF8224C6BAF6A087D0A9FE43492E5CE13F855E80457A516155CCA04A6144E402A1A3D71D657556B9124837730953505EB47998481906992F8B1CFF | 161 | 20171129102700 2 6 100 3071 5 E5B2496BAE5BB80230B69F3FCDC4E4D64BEFCD390B3D2F4A774F3ED4CBDB333B81930CBAF737164C13615CC0BE2EC320E34B8312ADCAA5D9644C0F054DD446C6299262BC184374B516DE3613628A8FB2606ECBCCE08BEE2ABE5D4B7B4CED22910635B723FFDC9381C8F87D0A471F935B62AF4CBEA3C329DF758BEE99F07C33AD6499CDCDDD64E3105F689C831D566296C978F27F0DB2F44389D9E0256790A0E4976FE38192C4BCB20FAF5853ED8AB04B16FFA478AB5945A3E98B12D014509039AB2F05629C48CA9E2272F71AE6AF07E7FBD92CD944A656731FB783E8EB38DF15630CA074D8CB41ECE91AA8A0D756690813C1DDFBE58CCCE7A50F4C83479C85B11908F80768F76F2FB8870B70F498F3235A044A80F32CE9AA9C613CD611D8CDD3CFD3F6A033F1764CD3029AD5435525D8BDD1B45100D61986BF8DBD8290AEC82FE15DBBBF00850AE58137383EEAFF9C9EDEDF8CCD42840E5D57C006F37AA3493FBA1E1719C7BDFC5EE22275A4D0415FD0DAB28E5CD6062755797851949A7663FF |
162 | 20170623131900 2 6 100 4095 2 DCFD3F9E0CF8187E955D8AEB347A5E4250C2B78E67E73E1DCDB99D67EC98180AE5FEF9119D38E50CBDBF46C8B2F62240FF5E1B28FB01276B82DB7422A777AA30AC5A9423D9AC3D33C9FECCC85823BD1138919E8F831364B093CF13B11CDD11394AA8D2256D58264266F780EABBA494E99EF63EC1F69997D180ABBA50B091AFD7FF478DAFF435CE2529E5F8FC81316AB0EA636014E125715FC77D653B142734C93FCD825C28CB928D579E9ED2C6C11E89C64B9C4B91CA962FB11C824F302BDEF7F67D1F7AC95F52B49FD4A044101BA3BDDD59C7663AB270D24DC846B90925F615EBFA5182F261938182E301C83FDC027381BD0FA753C84E57CC51531E7D0C468988B67D0B312E73C65E21D93C69C7862553F60BC9B26C6B5FB68BEDA3D7B0770C1116FF2B88484C7FB29A9D46D01719E89CB76A25C1B8349E3F8DA38CC00B3C1502BA6775BE363D27FA71A72DE0094E6805DEABB343B4A6DC98CD5F5191017B4E1CB0E5EE2FA979642305B8FDE9EE6A26E469C03C8B806F9492C0C544D7A0FE7773B3940812AE6B76C447BC28AA8127D9A7FEB7F98B9720C889CE2FF4806225B012B06F2FC0737D2A73A3046BD7ACBF0A8CF02BB3FAB81A60A29C0AA5B3B731541F62B542F4EF8224C6BAF6A087D0A9FE43492E5CE13F855E80457A516155CCA04A6144E402A1A3D71D657556B9124837730953505EB479984819069930BE28FB | 162 | 20171129102831 2 6 100 3071 2 E5B2496BAE5BB80230B69F3FCDC4E4D64BEFCD390B3D2F4A774F3ED4CBDB333B81930CBAF737164C13615CC0BE2EC320E34B8312ADCAA5D9644C0F054DD446C6299262BC184374B516DE3613628A8FB2606ECBCCE08BEE2ABE5D4B7B4CED22910635B723FFDC9381C8F87D0A471F935B62AF4CBEA3C329DF758BEE99F07C33AD6499CDCDDD64E3105F689C831D566296C978F27F0DB2F44389D9E0256790A0E4976FE38192C4BCB20FAF5853ED8AB04B16FFA478AB5945A3E98B12D014509039AB2F05629C48CA9E2272F71AE6AF07E7FBD92CD944A656731FB783E8EB38DF15630CA074D8CB41ECE91AA8A0D756690813C1DDFBE58CCCE7A50F4C83479C85B11908F80768F76F2FB8870B70F498F3235A044A80F32CE9AA9C613CD611D8CDD3CFD3F6A033F1764CD3029AD5435525D8BDD1B45100D61986BF8DBD8290AEC82FE15DBBBF00850AE58137383EEAFF9C9EDEDF8CCD42840E5D57C006F37AA3493FBA1E1719C7BDFC5EE22275A4D0415FD0DAB28E5CD6062755797851949AADA95B |
163 | 20170623132006 2 6 100 4095 2 DCFD3F9E0CF8187E955D8AEB347A5E4250C2B78E67E73E1DCDB99D67EC98180AE5FEF9119D38E50CBDBF46C8B2F62240FF5E1B28FB01276B82DB7422A777AA30AC5A9423D9AC3D33C9FECCC85823BD1138919E8F831364B093CF13B11CDD11394AA8D2256D58264266F780EABBA494E99EF63EC1F69997D180ABBA50B091AFD7FF478DAFF435CE2529E5F8FC81316AB0EA636014E125715FC77D653B142734C93FCD825C28CB928D579E9ED2C6C11E89C64B9C4B91CA962FB11C824F302BDEF7F67D1F7AC95F52B49FD4A044101BA3BDDD59C7663AB270D24DC846B90925F615EBFA5182F261938182E301C83FDC027381BD0FA753C84E57CC51531E7D0C468988B67D0B312E73C65E21D93C69C7862553F60BC9B26C6B5FB68BEDA3D7B0770C1116FF2B88484C7FB29A9D46D01719E89CB76A25C1B8349E3F8DA38CC00B3C1502BA6775BE363D27FA71A72DE0094E6805DEABB343B4A6DC98CD5F5191017B4E1CB0E5EE2FA979642305B8FDE9EE6A26E469C03C8B806F9492C0C544D7A0FE7773B3940812AE6B76C447BC28AA8127D9A7FEB7F98B9720C889CE2FF4806225B012B06F2FC0737D2A73A3046BD7ACBF0A8CF02BB3FAB81A60A29C0AA5B3B731541F62B542F4EF8224C6BAF6A087D0A9FE43492E5CE13F855E80457A516155CCA04A6144E402A1A3D71D657556B9124837730953505EB479984819069930CCBBC3 | 163 | 20171129103048 2 6 100 3071 2 E5B2496BAE5BB80230B69F3FCDC4E4D64BEFCD390B3D2F4A774F3ED4CBDB333B81930CBAF737164C13615CC0BE2EC320E34B8312ADCAA5D9644C0F054DD446C6299262BC184374B516DE3613628A8FB2606ECBCCE08BEE2ABE5D4B7B4CED22910635B723FFDC9381C8F87D0A471F935B62AF4CBEA3C329DF758BEE99F07C33AD6499CDCDDD64E3105F689C831D566296C978F27F0DB2F44389D9E0256790A0E4976FE38192C4BCB20FAF5853ED8AB04B16FFA478AB5945A3E98B12D014509039AB2F05629C48CA9E2272F71AE6AF07E7FBD92CD944A656731FB783E8EB38DF15630CA074D8CB41ECE91AA8A0D756690813C1DDFBE58CCCE7A50F4C83479C85B11908F80768F76F2FB8870B70F498F3235A044A80F32CE9AA9C613CD611D8CDD3CFD3F6A033F1764CD3029AD5435525D8BDD1B45100D61986BF8DBD8290AEC82FE15DBBBF00850AE58137383EEAFF9C9EDEDF8CCD42840E5D57C006F37AA3493FBA1E1719C7BDFC5EE22275A4D0415FD0DAB28E5CD6062755797851949B0592FB |
164 | 20170623134400 2 6 100 4095 5 DCFD3F9E0CF8187E955D8AEB347A5E4250C2B78E67E73E1DCDB99D67EC98180AE5FEF9119D38E50CBDBF46C8B2F62240FF5E1B28FB01276B82DB7422A777AA30AC5A9423D9AC3D33C9FECCC85823BD1138919E8F831364B093CF13B11CDD11394AA8D2256D58264266F780EABBA494E99EF63EC1F69997D180ABBA50B091AFD7FF478DAFF435CE2529E5F8FC81316AB0EA636014E125715FC77D653B142734C93FCD825C28CB928D579E9ED2C6C11E89C64B9C4B91CA962FB11C824F302BDEF7F67D1F7AC95F52B49FD4A044101BA3BDDD59C7663AB270D24DC846B90925F615EBFA5182F261938182E301C83FDC027381BD0FA753C84E57CC51531E7D0C468988B67D0B312E73C65E21D93C69C7862553F60BC9B26C6B5FB68BEDA3D7B0770C1116FF2B88484C7FB29A9D46D01719E89CB76A25C1B8349E3F8DA38CC00B3C1502BA6775BE363D27FA71A72DE0094E6805DEABB343B4A6DC98CD5F5191017B4E1CB0E5EE2FA979642305B8FDE9EE6A26E469C03C8B806F9492C0C544D7A0FE7773B3940812AE6B76C447BC28AA8127D9A7FEB7F98B9720C889CE2FF4806225B012B06F2FC0737D2A73A3046BD7ACBF0A8CF02BB3FAB81A60A29C0AA5B3B731541F62B542F4EF8224C6BAF6A087D0A9FE43492E5CE13F855E80457A516155CCA04A6144E402A1A3D71D657556B9124837730953505EB479984819069932B40887 | 164 | 20171129103239 2 6 100 3071 2 E5B2496BAE5BB80230B69F3FCDC4E4D64BEFCD390B3D2F4A774F3ED4CBDB333B81930CBAF737164C13615CC0BE2EC320E34B8312ADCAA5D9644C0F054DD446C6299262BC184374B516DE3613628A8FB2606ECBCCE08BEE2ABE5D4B7B4CED22910635B723FFDC9381C8F87D0A471F935B62AF4CBEA3C329DF758BEE99F07C33AD6499CDCDDD64E3105F689C831D566296C978F27F0DB2F44389D9E0256790A0E4976FE38192C4BCB20FAF5853ED8AB04B16FFA478AB5945A3E98B12D014509039AB2F05629C48CA9E2272F71AE6AF07E7FBD92CD944A656731FB783E8EB38DF15630CA074D8CB41ECE91AA8A0D756690813C1DDFBE58CCCE7A50F4C83479C85B11908F80768F76F2FB8870B70F498F3235A044A80F32CE9AA9C613CD611D8CDD3CFD3F6A033F1764CD3029AD5435525D8BDD1B45100D61986BF8DBD8290AEC82FE15DBBBF00850AE58137383EEAFF9C9EDEDF8CCD42840E5D57C006F37AA3493FBA1E1719C7BDFC5EE22275A4D0415FD0DAB28E5CD6062755797851949B4D9C73 |
165 | 20170623134659 2 6 100 4095 5 DCFD3F9E0CF8187E955D8AEB347A5E4250C2B78E67E73E1DCDB99D67EC98180AE5FEF9119D38E50CBDBF46C8B2F62240FF5E1B28FB01276B82DB7422A777AA30AC5A9423D9AC3D33C9FECCC85823BD1138919E8F831364B093CF13B11CDD11394AA8D2256D58264266F780EABBA494E99EF63EC1F69997D180ABBA50B091AFD7FF478DAFF435CE2529E5F8FC81316AB0EA636014E125715FC77D653B142734C93FCD825C28CB928D579E9ED2C6C11E89C64B9C4B91CA962FB11C824F302BDEF7F67D1F7AC95F52B49FD4A044101BA3BDDD59C7663AB270D24DC846B90925F615EBFA5182F261938182E301C83FDC027381BD0FA753C84E57CC51531E7D0C468988B67D0B312E73C65E21D93C69C7862553F60BC9B26C6B5FB68BEDA3D7B0770C1116FF2B88484C7FB29A9D46D01719E89CB76A25C1B8349E3F8DA38CC00B3C1502BA6775BE363D27FA71A72DE0094E6805DEABB343B4A6DC98CD5F5191017B4E1CB0E5EE2FA979642305B8FDE9EE6A26E469C03C8B806F9492C0C544D7A0FE7773B3940812AE6B76C447BC28AA8127D9A7FEB7F98B9720C889CE2FF4806225B012B06F2FC0737D2A73A3046BD7ACBF0A8CF02BB3FAB81A60A29C0AA5B3B731541F62B542F4EF8224C6BAF6A087D0A9FE43492E5CE13F855E80457A516155CCA04A6144E402A1A3D71D657556B9124837730953505EB479984819069932E77127 | 165 | 20171129103850 2 6 100 3071 5 E5B2496BAE5BB80230B69F3FCDC4E4D64BEFCD390B3D2F4A774F3ED4CBDB333B81930CBAF737164C13615CC0BE2EC320E34B8312ADCAA5D9644C0F054DD446C6299262BC184374B516DE3613628A8FB2606ECBCCE08BEE2ABE5D4B7B4CED22910635B723FFDC9381C8F87D0A471F935B62AF4CBEA3C329DF758BEE99F07C33AD6499CDCDDD64E3105F689C831D566296C978F27F0DB2F44389D9E0256790A0E4976FE38192C4BCB20FAF5853ED8AB04B16FFA478AB5945A3E98B12D014509039AB2F05629C48CA9E2272F71AE6AF07E7FBD92CD944A656731FB783E8EB38DF15630CA074D8CB41ECE91AA8A0D756690813C1DDFBE58CCCE7A50F4C83479C85B11908F80768F76F2FB8870B70F498F3235A044A80F32CE9AA9C613CD611D8CDD3CFD3F6A033F1764CD3029AD5435525D8BDD1B45100D61986BF8DBD8290AEC82FE15DBBBF00850AE58137383EEAFF9C9EDEDF8CCD42840E5D57C006F37AA3493FBA1E1719C7BDFC5EE22275A4D0415FD0DAB28E5CD6062755797851949C57B5F7 |
166 | 20170623140059 2 6 100 4095 2 DCFD3F9E0CF8187E955D8AEB347A5E4250C2B78E67E73E1DCDB99D67EC98180AE5FEF9119D38E50CBDBF46C8B2F62240FF5E1B28FB01276B82DB7422A777AA30AC5A9423D9AC3D33C9FECCC85823BD1138919E8F831364B093CF13B11CDD11394AA8D2256D58264266F780EABBA494E99EF63EC1F69997D180ABBA50B091AFD7FF478DAFF435CE2529E5F8FC81316AB0EA636014E125715FC77D653B142734C93FCD825C28CB928D579E9ED2C6C11E89C64B9C4B91CA962FB11C824F302BDEF7F67D1F7AC95F52B49FD4A044101BA3BDDD59C7663AB270D24DC846B90925F615EBFA5182F261938182E301C83FDC027381BD0FA753C84E57CC51531E7D0C468988B67D0B312E73C65E21D93C69C7862553F60BC9B26C6B5FB68BEDA3D7B0770C1116FF2B88484C7FB29A9D46D01719E89CB76A25C1B8349E3F8DA38CC00B3C1502BA6775BE363D27FA71A72DE0094E6805DEABB343B4A6DC98CD5F5191017B4E1CB0E5EE2FA979642305B8FDE9EE6A26E469C03C8B806F9492C0C544D7A0FE7773B3940812AE6B76C447BC28AA8127D9A7FEB7F98B9720C889CE2FF4806225B012B06F2FC0737D2A73A3046BD7ACBF0A8CF02BB3FAB81A60A29C0AA5B3B731541F62B542F4EF8224C6BAF6A087D0A9FE43492E5CE13F855E80457A516155CCA04A6144E402A1A3D71D657556B9124837730953505EB479984819069934031953 | 166 | 20171129104512 2 6 100 3071 2 E5B2496BAE5BB80230B69F3FCDC4E4D64BEFCD390B3D2F4A774F3ED4CBDB333B81930CBAF737164C13615CC0BE2EC320E34B8312ADCAA5D9644C0F054DD446C6299262BC184374B516DE3613628A8FB2606ECBCCE08BEE2ABE5D4B7B4CED22910635B723FFDC9381C8F87D0A471F935B62AF4CBEA3C329DF758BEE99F07C33AD6499CDCDDD64E3105F689C831D566296C978F27F0DB2F44389D9E0256790A0E4976FE38192C4BCB20FAF5853ED8AB04B16FFA478AB5945A3E98B12D014509039AB2F05629C48CA9E2272F71AE6AF07E7FBD92CD944A656731FB783E8EB38DF15630CA074D8CB41ECE91AA8A0D756690813C1DDFBE58CCCE7A50F4C83479C85B11908F80768F76F2FB8870B70F498F3235A044A80F32CE9AA9C613CD611D8CDD3CFD3F6A033F1764CD3029AD5435525D8BDD1B45100D61986BF8DBD8290AEC82FE15DBBBF00850AE58137383EEAFF9C9EDEDF8CCD42840E5D57C006F37AA3493FBA1E1719C7BDFC5EE22275A4D0415FD0DAB28E5CD6062755797851949D60C7AB |
167 | 20170623140936 2 6 100 4095 5 DCFD3F9E0CF8187E955D8AEB347A5E4250C2B78E67E73E1DCDB99D67EC98180AE5FEF9119D38E50CBDBF46C8B2F62240FF5E1B28FB01276B82DB7422A777AA30AC5A9423D9AC3D33C9FECCC85823BD1138919E8F831364B093CF13B11CDD11394AA8D2256D58264266F780EABBA494E99EF63EC1F69997D180ABBA50B091AFD7FF478DAFF435CE2529E5F8FC81316AB0EA636014E125715FC77D653B142734C93FCD825C28CB928D579E9ED2C6C11E89C64B9C4B91CA962FB11C824F302BDEF7F67D1F7AC95F52B49FD4A044101BA3BDDD59C7663AB270D24DC846B90925F615EBFA5182F261938182E301C83FDC027381BD0FA753C84E57CC51531E7D0C468988B67D0B312E73C65E21D93C69C7862553F60BC9B26C6B5FB68BEDA3D7B0770C1116FF2B88484C7FB29A9D46D01719E89CB76A25C1B8349E3F8DA38CC00B3C1502BA6775BE363D27FA71A72DE0094E6805DEABB343B4A6DC98CD5F5191017B4E1CB0E5EE2FA979642305B8FDE9EE6A26E469C03C8B806F9492C0C544D7A0FE7773B3940812AE6B76C447BC28AA8127D9A7FEB7F98B9720C889CE2FF4806225B012B06F2FC0737D2A73A3046BD7ACBF0A8CF02BB3FAB81A60A29C0AA5B3B731541F62B542F4EF8224C6BAF6A087D0A9FE43492E5CE13F855E80457A516155CCA04A6144E402A1A3D71D657556B9124837730953505EB479984819069934AC3B0F | 167 | 20171129105020 2 6 100 3071 2 E5B2496BAE5BB80230B69F3FCDC4E4D64BEFCD390B3D2F4A774F3ED4CBDB333B81930CBAF737164C13615CC0BE2EC320E34B8312ADCAA5D9644C0F054DD446C6299262BC184374B516DE3613628A8FB2606ECBCCE08BEE2ABE5D4B7B4CED22910635B723FFDC9381C8F87D0A471F935B62AF4CBEA3C329DF758BEE99F07C33AD6499CDCDDD64E3105F689C831D566296C978F27F0DB2F44389D9E0256790A0E4976FE38192C4BCB20FAF5853ED8AB04B16FFA478AB5945A3E98B12D014509039AB2F05629C48CA9E2272F71AE6AF07E7FBD92CD944A656731FB783E8EB38DF15630CA074D8CB41ECE91AA8A0D756690813C1DDFBE58CCCE7A50F4C83479C85B11908F80768F76F2FB8870B70F498F3235A044A80F32CE9AA9C613CD611D8CDD3CFD3F6A033F1764CD3029AD5435525D8BDD1B45100D61986BF8DBD8290AEC82FE15DBBBF00850AE58137383EEAFF9C9EDEDF8CCD42840E5D57C006F37AA3493FBA1E1719C7BDFC5EE22275A4D0415FD0DAB28E5CD6062755797851949E393D6B |
168 | 20170623142309 2 6 100 4095 2 DCFD3F9E0CF8187E955D8AEB347A5E4250C2B78E67E73E1DCDB99D67EC98180AE5FEF9119D38E50CBDBF46C8B2F62240FF5E1B28FB01276B82DB7422A777AA30AC5A9423D9AC3D33C9FECCC85823BD1138919E8F831364B093CF13B11CDD11394AA8D2256D58264266F780EABBA494E99EF63EC1F69997D180ABBA50B091AFD7FF478DAFF435CE2529E5F8FC81316AB0EA636014E125715FC77D653B142734C93FCD825C28CB928D579E9ED2C6C11E89C64B9C4B91CA962FB11C824F302BDEF7F67D1F7AC95F52B49FD4A044101BA3BDDD59C7663AB270D24DC846B90925F615EBFA5182F261938182E301C83FDC027381BD0FA753C84E57CC51531E7D0C468988B67D0B312E73C65E21D93C69C7862553F60BC9B26C6B5FB68BEDA3D7B0770C1116FF2B88484C7FB29A9D46D01719E89CB76A25C1B8349E3F8DA38CC00B3C1502BA6775BE363D27FA71A72DE0094E6805DEABB343B4A6DC98CD5F5191017B4E1CB0E5EE2FA979642305B8FDE9EE6A26E469C03C8B806F9492C0C544D7A0FE7773B3940812AE6B76C447BC28AA8127D9A7FEB7F98B9720C889CE2FF4806225B012B06F2FC0737D2A73A3046BD7ACBF0A8CF02BB3FAB81A60A29C0AA5B3B731541F62B542F4EF8224C6BAF6A087D0A9FE43492E5CE13F855E80457A516155CCA04A6144E402A1A3D71D657556B9124837730953505EB479984819069935BCCF33 | 168 | 20171129105252 2 6 100 3071 5 E5B2496BAE5BB80230B69F3FCDC4E4D64BEFCD390B3D2F4A774F3ED4CBDB333B81930CBAF737164C13615CC0BE2EC320E34B8312ADCAA5D9644C0F054DD446C6299262BC184374B516DE3613628A8FB2606ECBCCE08BEE2ABE5D4B7B4CED22910635B723FFDC9381C8F87D0A471F935B62AF4CBEA3C329DF758BEE99F07C33AD6499CDCDDD64E3105F689C831D566296C978F27F0DB2F44389D9E0256790A0E4976FE38192C4BCB20FAF5853ED8AB04B16FFA478AB5945A3E98B12D014509039AB2F05629C48CA9E2272F71AE6AF07E7FBD92CD944A656731FB783E8EB38DF15630CA074D8CB41ECE91AA8A0D756690813C1DDFBE58CCCE7A50F4C83479C85B11908F80768F76F2FB8870B70F498F3235A044A80F32CE9AA9C613CD611D8CDD3CFD3F6A033F1764CD3029AD5435525D8BDD1B45100D61986BF8DBD8290AEC82FE15DBBBF00850AE58137383EEAFF9C9EDEDF8CCD42840E5D57C006F37AA3493FBA1E1719C7BDFC5EE22275A4D0415FD0DAB28E5CD6062755797851949E9CF297 |
169 | 20170623142743 2 6 100 4095 2 DCFD3F9E0CF8187E955D8AEB347A5E4250C2B78E67E73E1DCDB99D67EC98180AE5FEF9119D38E50CBDBF46C8B2F62240FF5E1B28FB01276B82DB7422A777AA30AC5A9423D9AC3D33C9FECCC85823BD1138919E8F831364B093CF13B11CDD11394AA8D2256D58264266F780EABBA494E99EF63EC1F69997D180ABBA50B091AFD7FF478DAFF435CE2529E5F8FC81316AB0EA636014E125715FC77D653B142734C93FCD825C28CB928D579E9ED2C6C11E89C64B9C4B91CA962FB11C824F302BDEF7F67D1F7AC95F52B49FD4A044101BA3BDDD59C7663AB270D24DC846B90925F615EBFA5182F261938182E301C83FDC027381BD0FA753C84E57CC51531E7D0C468988B67D0B312E73C65E21D93C69C7862553F60BC9B26C6B5FB68BEDA3D7B0770C1116FF2B88484C7FB29A9D46D01719E89CB76A25C1B8349E3F8DA38CC00B3C1502BA6775BE363D27FA71A72DE0094E6805DEABB343B4A6DC98CD5F5191017B4E1CB0E5EE2FA979642305B8FDE9EE6A26E469C03C8B806F9492C0C544D7A0FE7773B3940812AE6B76C447BC28AA8127D9A7FEB7F98B9720C889CE2FF4806225B012B06F2FC0737D2A73A3046BD7ACBF0A8CF02BB3FAB81A60A29C0AA5B3B731541F62B542F4EF8224C6BAF6A087D0A9FE43492E5CE13F855E80457A516155CCA04A6144E402A1A3D71D657556B9124837730953505EB47998481906993611A26B | 169 | 20171129114245 2 6 100 4095 2 FADF655A8C18F13858C1C774D0060DD6FF25EAC29084E6A0A1E0D1218FD17F8800F697434FF377BC9ACB86AB48BDC139C51630956017D96CB0CC5C2D22604CABCBA881260B3A1F00A9F328DE35AC41638728AE65A1829F90AEE08237C971608AB5A7F3B50C53B3313FD68C774AAE29BCC1DA02BE0766D62DDE586169BAACB485CADC4F16EA0648E67D4D0F8DEFD9CCA4CC2B4000CD0C6372205F97C78F270F7E75A18DE0D3C8A3A1C1C606337BF6BEC94DD93D2646462E5F23AA4C292C00761D06FE220616A50C042A39351EBB2373EF21A35D5279D82E78B016A538B99CC166A148BABD91BCBE318A7987A5DA51B8B72D038F2D77668D48150A25ADC84018ADC7F36563E82D9DAA3B04593A989F9F05BBC0183DCE1BF6D6E2F9E4EFD5B52DF56B20AC035E36D57DFE521E9B3D256DE7F55C78837C0F5036DEC0581DF76CE7990A87F25113148BA1FF3502D82FC127B8134D3573BB8711B7891EF0C56B5C95037C9FBA6698219D63F5244A2E5D3479D0887CF5296900A23B344F3D804DF82712ABBD8A42218943957FA29966DBDB3A829959D08588FB670EEA4BF17605F928391B6BD36239CBE217CE278D2068D845F0B619CE726F2E9CA46ECA76180A90FFFFFA400D8F2956F3801FAADC49D9B05A786CA5D860A9B3AF3521842AB2C8C67CF7C9D966863B61AB2AA02970BD03F828980FEADEE067C4E7448FADC980424F9ADB |
170 | 20170623150027 2 6 100 4095 2 DCFD3F9E0CF8187E955D8AEB347A5E4250C2B78E67E73E1DCDB99D67EC98180AE5FEF9119D38E50CBDBF46C8B2F62240FF5E1B28FB01276B82DB7422A777AA30AC5A9423D9AC3D33C9FECCC85823BD1138919E8F831364B093CF13B11CDD11394AA8D2256D58264266F780EABBA494E99EF63EC1F69997D180ABBA50B091AFD7FF478DAFF435CE2529E5F8FC81316AB0EA636014E125715FC77D653B142734C93FCD825C28CB928D579E9ED2C6C11E89C64B9C4B91CA962FB11C824F302BDEF7F67D1F7AC95F52B49FD4A044101BA3BDDD59C7663AB270D24DC846B90925F615EBFA5182F261938182E301C83FDC027381BD0FA753C84E57CC51531E7D0C468988B67D0B312E73C65E21D93C69C7862553F60BC9B26C6B5FB68BEDA3D7B0770C1116FF2B88484C7FB29A9D46D01719E89CB76A25C1B8349E3F8DA38CC00B3C1502BA6775BE363D27FA71A72DE0094E6805DEABB343B4A6DC98CD5F5191017B4E1CB0E5EE2FA979642305B8FDE9EE6A26E469C03C8B806F9492C0C544D7A0FE7773B3940812AE6B76C447BC28AA8127D9A7FEB7F98B9720C889CE2FF4806225B012B06F2FC0737D2A73A3046BD7ACBF0A8CF02BB3FAB81A60A29C0AA5B3B731541F62B542F4EF8224C6BAF6A087D0A9FE43492E5CE13F855E80457A516155CCA04A6144E402A1A3D71D657556B9124837730953505EB479984819069938A6965B | 170 | 20171129114850 2 6 100 4095 2 FADF655A8C18F13858C1C774D0060DD6FF25EAC29084E6A0A1E0D1218FD17F8800F697434FF377BC9ACB86AB48BDC139C51630956017D96CB0CC5C2D22604CABCBA881260B3A1F00A9F328DE35AC41638728AE65A1829F90AEE08237C971608AB5A7F3B50C53B3313FD68C774AAE29BCC1DA02BE0766D62DDE586169BAACB485CADC4F16EA0648E67D4D0F8DEFD9CCA4CC2B4000CD0C6372205F97C78F270F7E75A18DE0D3C8A3A1C1C606337BF6BEC94DD93D2646462E5F23AA4C292C00761D06FE220616A50C042A39351EBB2373EF21A35D5279D82E78B016A538B99CC166A148BABD91BCBE318A7987A5DA51B8B72D038F2D77668D48150A25ADC84018ADC7F36563E82D9DAA3B04593A989F9F05BBC0183DCE1BF6D6E2F9E4EFD5B52DF56B20AC035E36D57DFE521E9B3D256DE7F55C78837C0F5036DEC0581DF76CE7990A87F25113148BA1FF3502D82FC127B8134D3573BB8711B7891EF0C56B5C95037C9FBA6698219D63F5244A2E5D3479D0887CF5296900A23B344F3D804DF82712ABBD8A42218943957FA29966DBDB3A829959D08588FB670EEA4BF17605F928391B6BD36239CBE217CE278D2068D845F0B619CE726F2E9CA46ECA76180A90FFFFFA400D8F2956F3801FAADC49D9B05A786CA5D860A9B3AF3521842AB2C8C67CF7C9D966863B61AB2AA02970BD03F828980FEADEE067C4E7448FADC98042BB88F3 |
171 | 20170623150107 2 6 100 4095 2 DCFD3F9E0CF8187E955D8AEB347A5E4250C2B78E67E73E1DCDB99D67EC98180AE5FEF9119D38E50CBDBF46C8B2F62240FF5E1B28FB01276B82DB7422A777AA30AC5A9423D9AC3D33C9FECCC85823BD1138919E8F831364B093CF13B11CDD11394AA8D2256D58264266F780EABBA494E99EF63EC1F69997D180ABBA50B091AFD7FF478DAFF435CE2529E5F8FC81316AB0EA636014E125715FC77D653B142734C93FCD825C28CB928D579E9ED2C6C11E89C64B9C4B91CA962FB11C824F302BDEF7F67D1F7AC95F52B49FD4A044101BA3BDDD59C7663AB270D24DC846B90925F615EBFA5182F261938182E301C83FDC027381BD0FA753C84E57CC51531E7D0C468988B67D0B312E73C65E21D93C69C7862553F60BC9B26C6B5FB68BEDA3D7B0770C1116FF2B88484C7FB29A9D46D01719E89CB76A25C1B8349E3F8DA38CC00B3C1502BA6775BE363D27FA71A72DE0094E6805DEABB343B4A6DC98CD5F5191017B4E1CB0E5EE2FA979642305B8FDE9EE6A26E469C03C8B806F9492C0C544D7A0FE7773B3940812AE6B76C447BC28AA8127D9A7FEB7F98B9720C889CE2FF4806225B012B06F2FC0737D2A73A3046BD7ACBF0A8CF02BB3FAB81A60A29C0AA5B3B731541F62B542F4EF8224C6BAF6A087D0A9FE43492E5CE13F855E80457A516155CCA04A6144E402A1A3D71D657556B9124837730953505EB479984819069938AB78CB | 171 | 20171129121702 2 6 100 4095 2 FADF655A8C18F13858C1C774D0060DD6FF25EAC29084E6A0A1E0D1218FD17F8800F697434FF377BC9ACB86AB48BDC139C51630956017D96CB0CC5C2D22604CABCBA881260B3A1F00A9F328DE35AC41638728AE65A1829F90AEE08237C971608AB5A7F3B50C53B3313FD68C774AAE29BCC1DA02BE0766D62DDE586169BAACB485CADC4F16EA0648E67D4D0F8DEFD9CCA4CC2B4000CD0C6372205F97C78F270F7E75A18DE0D3C8A3A1C1C606337BF6BEC94DD93D2646462E5F23AA4C292C00761D06FE220616A50C042A39351EBB2373EF21A35D5279D82E78B016A538B99CC166A148BABD91BCBE318A7987A5DA51B8B72D038F2D77668D48150A25ADC84018ADC7F36563E82D9DAA3B04593A989F9F05BBC0183DCE1BF6D6E2F9E4EFD5B52DF56B20AC035E36D57DFE521E9B3D256DE7F55C78837C0F5036DEC0581DF76CE7990A87F25113148BA1FF3502D82FC127B8134D3573BB8711B7891EF0C56B5C95037C9FBA6698219D63F5244A2E5D3479D0887CF5296900A23B344F3D804DF82712ABBD8A42218943957FA29966DBDB3A829959D08588FB670EEA4BF17605F928391B6BD36239CBE217CE278D2068D845F0B619CE726F2E9CA46ECA76180A90FFFFFA400D8F2956F3801FAADC49D9B05A786CA5D860A9B3AF3521842AB2C8C67CF7C9D966863B61AB2AA02970BD03F828980FEADEE067C4E7448FADC98044D9C36B |
172 | 20170623150738 2 6 100 4095 5 DCFD3F9E0CF8187E955D8AEB347A5E4250C2B78E67E73E1DCDB99D67EC98180AE5FEF9119D38E50CBDBF46C8B2F62240FF5E1B28FB01276B82DB7422A777AA30AC5A9423D9AC3D33C9FECCC85823BD1138919E8F831364B093CF13B11CDD11394AA8D2256D58264266F780EABBA494E99EF63EC1F69997D180ABBA50B091AFD7FF478DAFF435CE2529E5F8FC81316AB0EA636014E125715FC77D653B142734C93FCD825C28CB928D579E9ED2C6C11E89C64B9C4B91CA962FB11C824F302BDEF7F67D1F7AC95F52B49FD4A044101BA3BDDD59C7663AB270D24DC846B90925F615EBFA5182F261938182E301C83FDC027381BD0FA753C84E57CC51531E7D0C468988B67D0B312E73C65E21D93C69C7862553F60BC9B26C6B5FB68BEDA3D7B0770C1116FF2B88484C7FB29A9D46D01719E89CB76A25C1B8349E3F8DA38CC00B3C1502BA6775BE363D27FA71A72DE0094E6805DEABB343B4A6DC98CD5F5191017B4E1CB0E5EE2FA979642305B8FDE9EE6A26E469C03C8B806F9492C0C544D7A0FE7773B3940812AE6B76C447BC28AA8127D9A7FEB7F98B9720C889CE2FF4806225B012B06F2FC0737D2A73A3046BD7ACBF0A8CF02BB3FAB81A60A29C0AA5B3B731541F62B542F4EF8224C6BAF6A087D0A9FE43492E5CE13F855E80457A516155CCA04A6144E402A1A3D71D657556B9124837730953505EB4799848190699392AA267 | 172 | 20171129124238 2 6 100 4095 2 FADF655A8C18F13858C1C774D0060DD6FF25EAC29084E6A0A1E0D1218FD17F8800F697434FF377BC9ACB86AB48BDC139C51630956017D96CB0CC5C2D22604CABCBA881260B3A1F00A9F328DE35AC41638728AE65A1829F90AEE08237C971608AB5A7F3B50C53B3313FD68C774AAE29BCC1DA02BE0766D62DDE586169BAACB485CADC4F16EA0648E67D4D0F8DEFD9CCA4CC2B4000CD0C6372205F97C78F270F7E75A18DE0D3C8A3A1C1C606337BF6BEC94DD93D2646462E5F23AA4C292C00761D06FE220616A50C042A39351EBB2373EF21A35D5279D82E78B016A538B99CC166A148BABD91BCBE318A7987A5DA51B8B72D038F2D77668D48150A25ADC84018ADC7F36563E82D9DAA3B04593A989F9F05BBC0183DCE1BF6D6E2F9E4EFD5B52DF56B20AC035E36D57DFE521E9B3D256DE7F55C78837C0F5036DEC0581DF76CE7990A87F25113148BA1FF3502D82FC127B8134D3573BB8711B7891EF0C56B5C95037C9FBA6698219D63F5244A2E5D3479D0887CF5296900A23B344F3D804DF82712ABBD8A42218943957FA29966DBDB3A829959D08588FB670EEA4BF17605F928391B6BD36239CBE217CE278D2068D845F0B619CE726F2E9CA46ECA76180A90FFFFFA400D8F2956F3801FAADC49D9B05A786CA5D860A9B3AF3521842AB2C8C67CF7C9D966863B61AB2AA02970BD03F828980FEADEE067C4E7448FADC98046CAF153 |
173 | 20170623152234 2 6 100 4095 2 F2D0058FA043FB189699D118DE484B66A10DCE703B27209CFC6D23D9178067C9D560D7D8BA9D4439A22AED66322F25D886C0A5CD41821B49AAE3D7A7B72F9B0E2D823709AF5444C7E9474DF5867E605E638923A2FAD546A86B8014BA460D238A939B445D7489C91977B54AB531D75B0F4264F187218F885129751EC78654F4B21191365FEA1B7FEFC40842BBC07C4F1D1AD153F6A39B582406F6B5895336A1199F7556EE957EAC716AE6678CBE5390730F0EBB3CC5210242A80CB128BFD747ED1B61AF6BBD5B5DC07B34C5CA7AF73D1EE973B93E13918801AEFD674DF92A0AD84BFA2A8CEE1AD26140DA1D5FC0C450A1EAEBC88F8EA8E703A0F3A814E1F6975AA5BE732473575D16F137D2CE5F7A546CE4371ECB5E8052295E122A9CF89A026E2D09BDE56B8B04CC4CAE66CD0C5E0DFE30695DD798C50E39C911C887FEBACAAEFD2BFE7D454E051C432D66AD84680DA7C126F1A9C7C540283CCB863B9414BB536BA358259104ECB406B4976F97558FA4E5854888A8D13C96A14025DA0C55F869F6AF954B1E7AA1D317262C52099860E870A7EAF72F9910ACA809FF2DEA37FCA3EFB31FD43A308E4138E40178BEAC0FBB0E79ED7D1DCF8F8A81A4ABBFE6749F4C1B96BD65A14822490BC0A71E854BC8077C7A8F2C6FE308F86DEC97F600A4A0015F086B021F7F0BCAFDE3DA4D7E38A9AA1E992539389E99412FD22988DA657F33 | 173 | 20171129125253 2 6 100 4095 2 FADF655A8C18F13858C1C774D0060DD6FF25EAC29084E6A0A1E0D1218FD17F8800F697434FF377BC9ACB86AB48BDC139C51630956017D96CB0CC5C2D22604CABCBA881260B3A1F00A9F328DE35AC41638728AE65A1829F90AEE08237C971608AB5A7F3B50C53B3313FD68C774AAE29BCC1DA02BE0766D62DDE586169BAACB485CADC4F16EA0648E67D4D0F8DEFD9CCA4CC2B4000CD0C6372205F97C78F270F7E75A18DE0D3C8A3A1C1C606337BF6BEC94DD93D2646462E5F23AA4C292C00761D06FE220616A50C042A39351EBB2373EF21A35D5279D82E78B016A538B99CC166A148BABD91BCBE318A7987A5DA51B8B72D038F2D77668D48150A25ADC84018ADC7F36563E82D9DAA3B04593A989F9F05BBC0183DCE1BF6D6E2F9E4EFD5B52DF56B20AC035E36D57DFE521E9B3D256DE7F55C78837C0F5036DEC0581DF76CE7990A87F25113148BA1FF3502D82FC127B8134D3573BB8711B7891EF0C56B5C95037C9FBA6698219D63F5244A2E5D3479D0887CF5296900A23B344F3D804DF82712ABBD8A42218943957FA29966DBDB3A829959D08588FB670EEA4BF17605F928391B6BD36239CBE217CE278D2068D845F0B619CE726F2E9CA46ECA76180A90FFFFFA400D8F2956F3801FAADC49D9B05A786CA5D860A9B3AF3521842AB2C8C67CF7C9D966863B61AB2AA02970BD03F828980FEADEE067C4E7448FADC980478C8AA3 |
174 | 20170623152823 2 6 100 4095 5 F2D0058FA043FB189699D118DE484B66A10DCE703B27209CFC6D23D9178067C9D560D7D8BA9D4439A22AED66322F25D886C0A5CD41821B49AAE3D7A7B72F9B0E2D823709AF5444C7E9474DF5867E605E638923A2FAD546A86B8014BA460D238A939B445D7489C91977B54AB531D75B0F4264F187218F885129751EC78654F4B21191365FEA1B7FEFC40842BBC07C4F1D1AD153F6A39B582406F6B5895336A1199F7556EE957EAC716AE6678CBE5390730F0EBB3CC5210242A80CB128BFD747ED1B61AF6BBD5B5DC07B34C5CA7AF73D1EE973B93E13918801AEFD674DF92A0AD84BFA2A8CEE1AD26140DA1D5FC0C450A1EAEBC88F8EA8E703A0F3A814E1F6975AA5BE732473575D16F137D2CE5F7A546CE4371ECB5E8052295E122A9CF89A026E2D09BDE56B8B04CC4CAE66CD0C5E0DFE30695DD798C50E39C911C887FEBACAAEFD2BFE7D454E051C432D66AD84680DA7C126F1A9C7C540283CCB863B9414BB536BA358259104ECB406B4976F97558FA4E5854888A8D13C96A14025DA0C55F869F6AF954B1E7AA1D317262C52099860E870A7EAF72F9910ACA809FF2DEA37FCA3EFB31FD43A308E4138E40178BEAC0FBB0E79ED7D1DCF8F8A81A4ABBFE6749F4C1B96BD65A14822490BC0A71E854BC8077C7A8F2C6FE308F86DEC97F600A4A0015F086B021F7F0BCAFDE3DA4D7E38A9AA1E992539389E99412FD22988DAD58DFF | 174 | 20171129130704 2 6 100 4095 5 FADF655A8C18F13858C1C774D0060DD6FF25EAC29084E6A0A1E0D1218FD17F8800F697434FF377BC9ACB86AB48BDC139C51630956017D96CB0CC5C2D22604CABCBA881260B3A1F00A9F328DE35AC41638728AE65A1829F90AEE08237C971608AB5A7F3B50C53B3313FD68C774AAE29BCC1DA02BE0766D62DDE586169BAACB485CADC4F16EA0648E67D4D0F8DEFD9CCA4CC2B4000CD0C6372205F97C78F270F7E75A18DE0D3C8A3A1C1C606337BF6BEC94DD93D2646462E5F23AA4C292C00761D06FE220616A50C042A39351EBB2373EF21A35D5279D82E78B016A538B99CC166A148BABD91BCBE318A7987A5DA51B8B72D038F2D77668D48150A25ADC84018ADC7F36563E82D9DAA3B04593A989F9F05BBC0183DCE1BF6D6E2F9E4EFD5B52DF56B20AC035E36D57DFE521E9B3D256DE7F55C78837C0F5036DEC0581DF76CE7990A87F25113148BA1FF3502D82FC127B8134D3573BB8711B7891EF0C56B5C95037C9FBA6698219D63F5244A2E5D3479D0887CF5296900A23B344F3D804DF82712ABBD8A42218943957FA29966DBDB3A829959D08588FB670EEA4BF17605F928391B6BD36239CBE217CE278D2068D845F0B619CE726F2E9CA46ECA76180A90FFFFFA400D8F2956F3801FAADC49D9B05A786CA5D860A9B3AF3521842AB2C8C67CF7C9D966863B61AB2AA02970BD03F828980FEADEE067C4E7448FADC980489794E7 |
175 | 20170623153243 2 6 100 4095 2 F2D0058FA043FB189699D118DE484B66A10DCE703B27209CFC6D23D9178067C9D560D7D8BA9D4439A22AED66322F25D886C0A5CD41821B49AAE3D7A7B72F9B0E2D823709AF5444C7E9474DF5867E605E638923A2FAD546A86B8014BA460D238A939B445D7489C91977B54AB531D75B0F4264F187218F885129751EC78654F4B21191365FEA1B7FEFC40842BBC07C4F1D1AD153F6A39B582406F6B5895336A1199F7556EE957EAC716AE6678CBE5390730F0EBB3CC5210242A80CB128BFD747ED1B61AF6BBD5B5DC07B34C5CA7AF73D1EE973B93E13918801AEFD674DF92A0AD84BFA2A8CEE1AD26140DA1D5FC0C450A1EAEBC88F8EA8E703A0F3A814E1F6975AA5BE732473575D16F137D2CE5F7A546CE4371ECB5E8052295E122A9CF89A026E2D09BDE56B8B04CC4CAE66CD0C5E0DFE30695DD798C50E39C911C887FEBACAAEFD2BFE7D454E051C432D66AD84680DA7C126F1A9C7C540283CCB863B9414BB536BA358259104ECB406B4976F97558FA4E5854888A8D13C96A14025DA0C55F869F6AF954B1E7AA1D317262C52099860E870A7EAF72F9910ACA809FF2DEA37FCA3EFB31FD43A308E4138E40178BEAC0FBB0E79ED7D1DCF8F8A81A4ABBFE6749F4C1B96BD65A14822490BC0A71E854BC8077C7A8F2C6FE308F86DEC97F600A4A0015F086B021F7F0BCAFDE3DA4D7E38A9AA1E992539389E99412FD22988DB1F719B | 175 | 20171129133140 2 6 100 4095 2 FADF655A8C18F13858C1C774D0060DD6FF25EAC29084E6A0A1E0D1218FD17F8800F697434FF377BC9ACB86AB48BDC139C51630956017D96CB0CC5C2D22604CABCBA881260B3A1F00A9F328DE35AC41638728AE65A1829F90AEE08237C971608AB5A7F3B50C53B3313FD68C774AAE29BCC1DA02BE0766D62DDE586169BAACB485CADC4F16EA0648E67D4D0F8DEFD9CCA4CC2B4000CD0C6372205F97C78F270F7E75A18DE0D3C8A3A1C1C606337BF6BEC94DD93D2646462E5F23AA4C292C00761D06FE220616A50C042A39351EBB2373EF21A35D5279D82E78B016A538B99CC166A148BABD91BCBE318A7987A5DA51B8B72D038F2D77668D48150A25ADC84018ADC7F36563E82D9DAA3B04593A989F9F05BBC0183DCE1BF6D6E2F9E4EFD5B52DF56B20AC035E36D57DFE521E9B3D256DE7F55C78837C0F5036DEC0581DF76CE7990A87F25113148BA1FF3502D82FC127B8134D3573BB8711B7891EF0C56B5C95037C9FBA6698219D63F5244A2E5D3479D0887CF5296900A23B344F3D804DF82712ABBD8A42218943957FA29966DBDB3A829959D08588FB670EEA4BF17605F928391B6BD36239CBE217CE278D2068D845F0B619CE726F2E9CA46ECA76180A90FFFFFA400D8F2956F3801FAADC49D9B05A786CA5D860A9B3AF3521842AB2C8C67CF7C9D966863B61AB2AA02970BD03F828980FEADEE067C4E7448FADC9804A64C06B |
176 | 20170623153719 2 6 100 4095 5 F2D0058FA043FB189699D118DE484B66A10DCE703B27209CFC6D23D9178067C9D560D7D8BA9D4439A22AED66322F25D886C0A5CD41821B49AAE3D7A7B72F9B0E2D823709AF5444C7E9474DF5867E605E638923A2FAD546A86B8014BA460D238A939B445D7489C91977B54AB531D75B0F4264F187218F885129751EC78654F4B21191365FEA1B7FEFC40842BBC07C4F1D1AD153F6A39B582406F6B5895336A1199F7556EE957EAC716AE6678CBE5390730F0EBB3CC5210242A80CB128BFD747ED1B61AF6BBD5B5DC07B34C5CA7AF73D1EE973B93E13918801AEFD674DF92A0AD84BFA2A8CEE1AD26140DA1D5FC0C450A1EAEBC88F8EA8E703A0F3A814E1F6975AA5BE732473575D16F137D2CE5F7A546CE4371ECB5E8052295E122A9CF89A026E2D09BDE56B8B04CC4CAE66CD0C5E0DFE30695DD798C50E39C911C887FEBACAAEFD2BFE7D454E051C432D66AD84680DA7C126F1A9C7C540283CCB863B9414BB536BA358259104ECB406B4976F97558FA4E5854888A8D13C96A14025DA0C55F869F6AF954B1E7AA1D317262C52099860E870A7EAF72F9910ACA809FF2DEA37FCA3EFB31FD43A308E4138E40178BEAC0FBB0E79ED7D1DCF8F8A81A4ABBFE6749F4C1B96BD65A14822490BC0A71E854BC8077C7A8F2C6FE308F86DEC97F600A4A0015F086B021F7F0BCAFDE3DA4D7E38A9AA1E992539389E99412FD22988DB76316F | 176 | 20171129140253 2 6 100 4095 5 FADF655A8C18F13858C1C774D0060DD6FF25EAC29084E6A0A1E0D1218FD17F8800F697434FF377BC9ACB86AB48BDC139C51630956017D96CB0CC5C2D22604CABCBA881260B3A1F00A9F328DE35AC41638728AE65A1829F90AEE08237C971608AB5A7F3B50C53B3313FD68C774AAE29BCC1DA02BE0766D62DDE586169BAACB485CADC4F16EA0648E67D4D0F8DEFD9CCA4CC2B4000CD0C6372205F97C78F270F7E75A18DE0D3C8A3A1C1C606337BF6BEC94DD93D2646462E5F23AA4C292C00761D06FE220616A50C042A39351EBB2373EF21A35D5279D82E78B016A538B99CC166A148BABD91BCBE318A7987A5DA51B8B72D038F2D77668D48150A25ADC84018ADC7F36563E82D9DAA3B04593A989F9F05BBC0183DCE1BF6D6E2F9E4EFD5B52DF56B20AC035E36D57DFE521E9B3D256DE7F55C78837C0F5036DEC0581DF76CE7990A87F25113148BA1FF3502D82FC127B8134D3573BB8711B7891EF0C56B5C95037C9FBA6698219D63F5244A2E5D3479D0887CF5296900A23B344F3D804DF82712ABBD8A42218943957FA29966DBDB3A829959D08588FB670EEA4BF17605F928391B6BD36239CBE217CE278D2068D845F0B619CE726F2E9CA46ECA76180A90FFFFFA400D8F2956F3801FAADC49D9B05A786CA5D860A9B3AF3521842AB2C8C67CF7C9D966863B61AB2AA02970BD03F828980FEADEE067C4E7448FADC9804C68CB3F |
177 | 20170623154606 2 6 100 4095 2 F2D0058FA043FB189699D118DE484B66A10DCE703B27209CFC6D23D9178067C9D560D7D8BA9D4439A22AED66322F25D886C0A5CD41821B49AAE3D7A7B72F9B0E2D823709AF5444C7E9474DF5867E605E638923A2FAD546A86B8014BA460D238A939B445D7489C91977B54AB531D75B0F4264F187218F885129751EC78654F4B21191365FEA1B7FEFC40842BBC07C4F1D1AD153F6A39B582406F6B5895336A1199F7556EE957EAC716AE6678CBE5390730F0EBB3CC5210242A80CB128BFD747ED1B61AF6BBD5B5DC07B34C5CA7AF73D1EE973B93E13918801AEFD674DF92A0AD84BFA2A8CEE1AD26140DA1D5FC0C450A1EAEBC88F8EA8E703A0F3A814E1F6975AA5BE732473575D16F137D2CE5F7A546CE4371ECB5E8052295E122A9CF89A026E2D09BDE56B8B04CC4CAE66CD0C5E0DFE30695DD798C50E39C911C887FEBACAAEFD2BFE7D454E051C432D66AD84680DA7C126F1A9C7C540283CCB863B9414BB536BA358259104ECB406B4976F97558FA4E5854888A8D13C96A14025DA0C55F869F6AF954B1E7AA1D317262C52099860E870A7EAF72F9910ACA809FF2DEA37FCA3EFB31FD43A308E4138E40178BEAC0FBB0E79ED7D1DCF8F8A81A4ABBFE6749F4C1B96BD65A14822490BC0A71E854BC8077C7A8F2C6FE308F86DEC97F600A4A0015F086B021F7F0BCAFDE3DA4D7E38A9AA1E992539389E99412FD22988DC289BA3 | 177 | 20171129144402 2 6 100 4095 2 FADF655A8C18F13858C1C774D0060DD6FF25EAC29084E6A0A1E0D1218FD17F8800F697434FF377BC9ACB86AB48BDC139C51630956017D96CB0CC5C2D22604CABCBA881260B3A1F00A9F328DE35AC41638728AE65A1829F90AEE08237C971608AB5A7F3B50C53B3313FD68C774AAE29BCC1DA02BE0766D62DDE586169BAACB485CADC4F16EA0648E67D4D0F8DEFD9CCA4CC2B4000CD0C6372205F97C78F270F7E75A18DE0D3C8A3A1C1C606337BF6BEC94DD93D2646462E5F23AA4C292C00761D06FE220616A50C042A39351EBB2373EF21A35D5279D82E78B016A538B99CC166A148BABD91BCBE318A7987A5DA51B8B72D038F2D77668D48150A25ADC84018ADC7F36563E82D9DAA3B04593A989F9F05BBC0183DCE1BF6D6E2F9E4EFD5B52DF56B20AC035E36D57DFE521E9B3D256DE7F55C78837C0F5036DEC0581DF76CE7990A87F25113148BA1FF3502D82FC127B8134D3573BB8711B7891EF0C56B5C95037C9FBA6698219D63F5244A2E5D3479D0887CF5296900A23B344F3D804DF82712ABBD8A42218943957FA29966DBDB3A829959D08588FB670EEA4BF17605F928391B6BD36239CBE217CE278D2068D845F0B619CE726F2E9CA46ECA76180A90FFFFFA400D8F2956F3801FAADC49D9B05A786CA5D860A9B3AF3521842AB2C8C67CF7C9D966863B61AB2AA02970BD03F828980FEADEE067C4E7448FADC9804F74F3CB |
178 | 20170623155435 2 6 100 4095 5 F2D0058FA043FB189699D118DE484B66A10DCE703B27209CFC6D23D9178067C9D560D7D8BA9D4439A22AED66322F25D886C0A5CD41821B49AAE3D7A7B72F9B0E2D823709AF5444C7E9474DF5867E605E638923A2FAD546A86B8014BA460D238A939B445D7489C91977B54AB531D75B0F4264F187218F885129751EC78654F4B21191365FEA1B7FEFC40842BBC07C4F1D1AD153F6A39B582406F6B5895336A1199F7556EE957EAC716AE6678CBE5390730F0EBB3CC5210242A80CB128BFD747ED1B61AF6BBD5B5DC07B34C5CA7AF73D1EE973B93E13918801AEFD674DF92A0AD84BFA2A8CEE1AD26140DA1D5FC0C450A1EAEBC88F8EA8E703A0F3A814E1F6975AA5BE732473575D16F137D2CE5F7A546CE4371ECB5E8052295E122A9CF89A026E2D09BDE56B8B04CC4CAE66CD0C5E0DFE30695DD798C50E39C911C887FEBACAAEFD2BFE7D454E051C432D66AD84680DA7C126F1A9C7C540283CCB863B9414BB536BA358259104ECB406B4976F97558FA4E5854888A8D13C96A14025DA0C55F869F6AF954B1E7AA1D317262C52099860E870A7EAF72F9910ACA809FF2DEA37FCA3EFB31FD43A308E4138E40178BEAC0FBB0E79ED7D1DCF8F8A81A4ABBFE6749F4C1B96BD65A14822490BC0A71E854BC8077C7A8F2C6FE308F86DEC97F600A4A0015F086B021F7F0BCAFDE3DA4D7E38A9AA1E992539389E99412FD22988DCCFF757 | 178 | 20171129145354 2 6 100 4095 5 FADF655A8C18F13858C1C774D0060DD6FF25EAC29084E6A0A1E0D1218FD17F8800F697434FF377BC9ACB86AB48BDC139C51630956017D96CB0CC5C2D22604CABCBA881260B3A1F00A9F328DE35AC41638728AE65A1829F90AEE08237C971608AB5A7F3B50C53B3313FD68C774AAE29BCC1DA02BE0766D62DDE586169BAACB485CADC4F16EA0648E67D4D0F8DEFD9CCA4CC2B4000CD0C6372205F97C78F270F7E75A18DE0D3C8A3A1C1C606337BF6BEC94DD93D2646462E5F23AA4C292C00761D06FE220616A50C042A39351EBB2373EF21A35D5279D82E78B016A538B99CC166A148BABD91BCBE318A7987A5DA51B8B72D038F2D77668D48150A25ADC84018ADC7F36563E82D9DAA3B04593A989F9F05BBC0183DCE1BF6D6E2F9E4EFD5B52DF56B20AC035E36D57DFE521E9B3D256DE7F55C78837C0F5036DEC0581DF76CE7990A87F25113148BA1FF3502D82FC127B8134D3573BB8711B7891EF0C56B5C95037C9FBA6698219D63F5244A2E5D3479D0887CF5296900A23B344F3D804DF82712ABBD8A42218943957FA29966DBDB3A829959D08588FB670EEA4BF17605F928391B6BD36239CBE217CE278D2068D845F0B619CE726F2E9CA46ECA76180A90FFFFFA400D8F2956F3801FAADC49D9B05A786CA5D860A9B3AF3521842AB2C8C67CF7C9D966863B61AB2AA02970BD03F828980FEADEE067C4E7448FADC980502DC987 |
179 | 20170623161905 2 6 100 4095 2 F2D0058FA043FB189699D118DE484B66A10DCE703B27209CFC6D23D9178067C9D560D7D8BA9D4439A22AED66322F25D886C0A5CD41821B49AAE3D7A7B72F9B0E2D823709AF5444C7E9474DF5867E605E638923A2FAD546A86B8014BA460D238A939B445D7489C91977B54AB531D75B0F4264F187218F885129751EC78654F4B21191365FEA1B7FEFC40842BBC07C4F1D1AD153F6A39B582406F6B5895336A1199F7556EE957EAC716AE6678CBE5390730F0EBB3CC5210242A80CB128BFD747ED1B61AF6BBD5B5DC07B34C5CA7AF73D1EE973B93E13918801AEFD674DF92A0AD84BFA2A8CEE1AD26140DA1D5FC0C450A1EAEBC88F8EA8E703A0F3A814E1F6975AA5BE732473575D16F137D2CE5F7A546CE4371ECB5E8052295E122A9CF89A026E2D09BDE56B8B04CC4CAE66CD0C5E0DFE30695DD798C50E39C911C887FEBACAAEFD2BFE7D454E051C432D66AD84680DA7C126F1A9C7C540283CCB863B9414BB536BA358259104ECB406B4976F97558FA4E5854888A8D13C96A14025DA0C55F869F6AF954B1E7AA1D317262C52099860E870A7EAF72F9910ACA809FF2DEA37FCA3EFB31FD43A308E4138E40178BEAC0FBB0E79ED7D1DCF8F8A81A4ABBFE6749F4C1B96BD65A14822490BC0A71E854BC8077C7A8F2C6FE308F86DEC97F600A4A0015F086B021F7F0BCAFDE3DA4D7E38A9AA1E992539389E99412FD22988DEC7BD43 | 179 | 20171129150624 2 6 100 4095 2 FADF655A8C18F13858C1C774D0060DD6FF25EAC29084E6A0A1E0D1218FD17F8800F697434FF377BC9ACB86AB48BDC139C51630956017D96CB0CC5C2D22604CABCBA881260B3A1F00A9F328DE35AC41638728AE65A1829F90AEE08237C971608AB5A7F3B50C53B3313FD68C774AAE29BCC1DA02BE0766D62DDE586169BAACB485CADC4F16EA0648E67D4D0F8DEFD9CCA4CC2B4000CD0C6372205F97C78F270F7E75A18DE0D3C8A3A1C1C606337BF6BEC94DD93D2646462E5F23AA4C292C00761D06FE220616A50C042A39351EBB2373EF21A35D5279D82E78B016A538B99CC166A148BABD91BCBE318A7987A5DA51B8B72D038F2D77668D48150A25ADC84018ADC7F36563E82D9DAA3B04593A989F9F05BBC0183DCE1BF6D6E2F9E4EFD5B52DF56B20AC035E36D57DFE521E9B3D256DE7F55C78837C0F5036DEC0581DF76CE7990A87F25113148BA1FF3502D82FC127B8134D3573BB8711B7891EF0C56B5C95037C9FBA6698219D63F5244A2E5D3479D0887CF5296900A23B344F3D804DF82712ABBD8A42218943957FA29966DBDB3A829959D08588FB670EEA4BF17605F928391B6BD36239CBE217CE278D2068D845F0B619CE726F2E9CA46ECA76180A90FFFFFA400D8F2956F3801FAADC49D9B05A786CA5D860A9B3AF3521842AB2C8C67CF7C9D966863B61AB2AA02970BD03F828980FEADEE067C4E7448FADC9805112DBB3 |
180 | 20170623163928 2 6 100 4095 2 F2D0058FA043FB189699D118DE484B66A10DCE703B27209CFC6D23D9178067C9D560D7D8BA9D4439A22AED66322F25D886C0A5CD41821B49AAE3D7A7B72F9B0E2D823709AF5444C7E9474DF5867E605E638923A2FAD546A86B8014BA460D238A939B445D7489C91977B54AB531D75B0F4264F187218F885129751EC78654F4B21191365FEA1B7FEFC40842BBC07C4F1D1AD153F6A39B582406F6B5895336A1199F7556EE957EAC716AE6678CBE5390730F0EBB3CC5210242A80CB128BFD747ED1B61AF6BBD5B5DC07B34C5CA7AF73D1EE973B93E13918801AEFD674DF92A0AD84BFA2A8CEE1AD26140DA1D5FC0C450A1EAEBC88F8EA8E703A0F3A814E1F6975AA5BE732473575D16F137D2CE5F7A546CE4371ECB5E8052295E122A9CF89A026E2D09BDE56B8B04CC4CAE66CD0C5E0DFE30695DD798C50E39C911C887FEBACAAEFD2BFE7D454E051C432D66AD84680DA7C126F1A9C7C540283CCB863B9414BB536BA358259104ECB406B4976F97558FA4E5854888A8D13C96A14025DA0C55F869F6AF954B1E7AA1D317262C52099860E870A7EAF72F9910ACA809FF2DEA37FCA3EFB31FD43A308E4138E40178BEAC0FBB0E79ED7D1DCF8F8A81A4ABBFE6749F4C1B96BD65A14822490BC0A71E854BC8077C7A8F2C6FE308F86DEC97F600A4A0015F086B021F7F0BCAFDE3DA4D7E38A9AA1E992539389E99412FD22988E064A38B | 180 | 20171129150654 2 6 100 4095 2 FADF655A8C18F13858C1C774D0060DD6FF25EAC29084E6A0A1E0D1218FD17F8800F697434FF377BC9ACB86AB48BDC139C51630956017D96CB0CC5C2D22604CABCBA881260B3A1F00A9F328DE35AC41638728AE65A1829F90AEE08237C971608AB5A7F3B50C53B3313FD68C774AAE29BCC1DA02BE0766D62DDE586169BAACB485CADC4F16EA0648E67D4D0F8DEFD9CCA4CC2B4000CD0C6372205F97C78F270F7E75A18DE0D3C8A3A1C1C606337BF6BEC94DD93D2646462E5F23AA4C292C00761D06FE220616A50C042A39351EBB2373EF21A35D5279D82E78B016A538B99CC166A148BABD91BCBE318A7987A5DA51B8B72D038F2D77668D48150A25ADC84018ADC7F36563E82D9DAA3B04593A989F9F05BBC0183DCE1BF6D6E2F9E4EFD5B52DF56B20AC035E36D57DFE521E9B3D256DE7F55C78837C0F5036DEC0581DF76CE7990A87F25113148BA1FF3502D82FC127B8134D3573BB8711B7891EF0C56B5C95037C9FBA6698219D63F5244A2E5D3479D0887CF5296900A23B344F3D804DF82712ABBD8A42218943957FA29966DBDB3A829959D08588FB670EEA4BF17605F928391B6BD36239CBE217CE278D2068D845F0B619CE726F2E9CA46ECA76180A90FFFFFA400D8F2956F3801FAADC49D9B05A786CA5D860A9B3AF3521842AB2C8C67CF7C9D966863B61AB2AA02970BD03F828980FEADEE067C4E7448FADC9805113FE53 |
181 | 20170623164410 2 6 100 4095 2 F2D0058FA043FB189699D118DE484B66A10DCE703B27209CFC6D23D9178067C9D560D7D8BA9D4439A22AED66322F25D886C0A5CD41821B49AAE3D7A7B72F9B0E2D823709AF5444C7E9474DF5867E605E638923A2FAD546A86B8014BA460D238A939B445D7489C91977B54AB531D75B0F4264F187218F885129751EC78654F4B21191365FEA1B7FEFC40842BBC07C4F1D1AD153F6A39B582406F6B5895336A1199F7556EE957EAC716AE6678CBE5390730F0EBB3CC5210242A80CB128BFD747ED1B61AF6BBD5B5DC07B34C5CA7AF73D1EE973B93E13918801AEFD674DF92A0AD84BFA2A8CEE1AD26140DA1D5FC0C450A1EAEBC88F8EA8E703A0F3A814E1F6975AA5BE732473575D16F137D2CE5F7A546CE4371ECB5E8052295E122A9CF89A026E2D09BDE56B8B04CC4CAE66CD0C5E0DFE30695DD798C50E39C911C887FEBACAAEFD2BFE7D454E051C432D66AD84680DA7C126F1A9C7C540283CCB863B9414BB536BA358259104ECB406B4976F97558FA4E5854888A8D13C96A14025DA0C55F869F6AF954B1E7AA1D317262C52099860E870A7EAF72F9910ACA809FF2DEA37FCA3EFB31FD43A308E4138E40178BEAC0FBB0E79ED7D1DCF8F8A81A4ABBFE6749F4C1B96BD65A14822490BC0A71E854BC8077C7A8F2C6FE308F86DEC97F600A4A0015F086B021F7F0BCAFDE3DA4D7E38A9AA1E992539389E99412FD22988E0BD160B | 181 | 20171129151512 2 6 100 4095 5 FADF655A8C18F13858C1C774D0060DD6FF25EAC29084E6A0A1E0D1218FD17F8800F697434FF377BC9ACB86AB48BDC139C51630956017D96CB0CC5C2D22604CABCBA881260B3A1F00A9F328DE35AC41638728AE65A1829F90AEE08237C971608AB5A7F3B50C53B3313FD68C774AAE29BCC1DA02BE0766D62DDE586169BAACB485CADC4F16EA0648E67D4D0F8DEFD9CCA4CC2B4000CD0C6372205F97C78F270F7E75A18DE0D3C8A3A1C1C606337BF6BEC94DD93D2646462E5F23AA4C292C00761D06FE220616A50C042A39351EBB2373EF21A35D5279D82E78B016A538B99CC166A148BABD91BCBE318A7987A5DA51B8B72D038F2D77668D48150A25ADC84018ADC7F36563E82D9DAA3B04593A989F9F05BBC0183DCE1BF6D6E2F9E4EFD5B52DF56B20AC035E36D57DFE521E9B3D256DE7F55C78837C0F5036DEC0581DF76CE7990A87F25113148BA1FF3502D82FC127B8134D3573BB8711B7891EF0C56B5C95037C9FBA6698219D63F5244A2E5D3479D0887CF5296900A23B344F3D804DF82712ABBD8A42218943957FA29966DBDB3A829959D08588FB670EEA4BF17605F928391B6BD36239CBE217CE278D2068D845F0B619CE726F2E9CA46ECA76180A90FFFFFA400D8F2956F3801FAADC49D9B05A786CA5D860A9B3AF3521842AB2C8C67CF7C9D966863B61AB2AA02970BD03F828980FEADEE067C4E7448FADC98051AA1CA7 |
182 | 20170623172908 2 6 100 4095 2 F2D0058FA043FB189699D118DE484B66A10DCE703B27209CFC6D23D9178067C9D560D7D8BA9D4439A22AED66322F25D886C0A5CD41821B49AAE3D7A7B72F9B0E2D823709AF5444C7E9474DF5867E605E638923A2FAD546A86B8014BA460D238A939B445D7489C91977B54AB531D75B0F4264F187218F885129751EC78654F4B21191365FEA1B7FEFC40842BBC07C4F1D1AD153F6A39B582406F6B5895336A1199F7556EE957EAC716AE6678CBE5390730F0EBB3CC5210242A80CB128BFD747ED1B61AF6BBD5B5DC07B34C5CA7AF73D1EE973B93E13918801AEFD674DF92A0AD84BFA2A8CEE1AD26140DA1D5FC0C450A1EAEBC88F8EA8E703A0F3A814E1F6975AA5BE732473575D16F137D2CE5F7A546CE4371ECB5E8052295E122A9CF89A026E2D09BDE56B8B04CC4CAE66CD0C5E0DFE30695DD798C50E39C911C887FEBACAAEFD2BFE7D454E051C432D66AD84680DA7C126F1A9C7C540283CCB863B9414BB536BA358259104ECB406B4976F97558FA4E5854888A8D13C96A14025DA0C55F869F6AF954B1E7AA1D317262C52099860E870A7EAF72F9910ACA809FF2DEA37FCA3EFB31FD43A308E4138E40178BEAC0FBB0E79ED7D1DCF8F8A81A4ABBFE6749F4C1B96BD65A14822490BC0A71E854BC8077C7A8F2C6FE308F86DEC97F600A4A0015F086B021F7F0BCAFDE3DA4D7E38A9AA1E992539389E99412FD22988E467E87B | 182 | 20171129153640 2 6 100 4095 5 FADF655A8C18F13858C1C774D0060DD6FF25EAC29084E6A0A1E0D1218FD17F8800F697434FF377BC9ACB86AB48BDC139C51630956017D96CB0CC5C2D22604CABCBA881260B3A1F00A9F328DE35AC41638728AE65A1829F90AEE08237C971608AB5A7F3B50C53B3313FD68C774AAE29BCC1DA02BE0766D62DDE586169BAACB485CADC4F16EA0648E67D4D0F8DEFD9CCA4CC2B4000CD0C6372205F97C78F270F7E75A18DE0D3C8A3A1C1C606337BF6BEC94DD93D2646462E5F23AA4C292C00761D06FE220616A50C042A39351EBB2373EF21A35D5279D82E78B016A538B99CC166A148BABD91BCBE318A7987A5DA51B8B72D038F2D77668D48150A25ADC84018ADC7F36563E82D9DAA3B04593A989F9F05BBC0183DCE1BF6D6E2F9E4EFD5B52DF56B20AC035E36D57DFE521E9B3D256DE7F55C78837C0F5036DEC0581DF76CE7990A87F25113148BA1FF3502D82FC127B8134D3573BB8711B7891EF0C56B5C95037C9FBA6698219D63F5244A2E5D3479D0887CF5296900A23B344F3D804DF82712ABBD8A42218943957FA29966DBDB3A829959D08588FB670EEA4BF17605F928391B6BD36239CBE217CE278D2068D845F0B619CE726F2E9CA46ECA76180A90FFFFFA400D8F2956F3801FAADC49D9B05A786CA5D860A9B3AF3521842AB2C8C67CF7C9D966863B61AB2AA02970BD03F828980FEADEE067C4E7448FADC9805342345F |
183 | 20170623174045 2 6 100 4095 5 F2D0058FA043FB189699D118DE484B66A10DCE703B27209CFC6D23D9178067C9D560D7D8BA9D4439A22AED66322F25D886C0A5CD41821B49AAE3D7A7B72F9B0E2D823709AF5444C7E9474DF5867E605E638923A2FAD546A86B8014BA460D238A939B445D7489C91977B54AB531D75B0F4264F187218F885129751EC78654F4B21191365FEA1B7FEFC40842BBC07C4F1D1AD153F6A39B582406F6B5895336A1199F7556EE957EAC716AE6678CBE5390730F0EBB3CC5210242A80CB128BFD747ED1B61AF6BBD5B5DC07B34C5CA7AF73D1EE973B93E13918801AEFD674DF92A0AD84BFA2A8CEE1AD26140DA1D5FC0C450A1EAEBC88F8EA8E703A0F3A814E1F6975AA5BE732473575D16F137D2CE5F7A546CE4371ECB5E8052295E122A9CF89A026E2D09BDE56B8B04CC4CAE66CD0C5E0DFE30695DD798C50E39C911C887FEBACAAEFD2BFE7D454E051C432D66AD84680DA7C126F1A9C7C540283CCB863B9414BB536BA358259104ECB406B4976F97558FA4E5854888A8D13C96A14025DA0C55F869F6AF954B1E7AA1D317262C52099860E870A7EAF72F9910ACA809FF2DEA37FCA3EFB31FD43A308E4138E40178BEAC0FBB0E79ED7D1DCF8F8A81A4ABBFE6749F4C1B96BD65A14822490BC0A71E854BC8077C7A8F2C6FE308F86DEC97F600A4A0015F086B021F7F0BCAFDE3DA4D7E38A9AA1E992539389E99412FD22988E54CE16F | 183 | 20171129160526 2 6 100 4095 2 FADF655A8C18F13858C1C774D0060DD6FF25EAC29084E6A0A1E0D1218FD17F8800F697434FF377BC9ACB86AB48BDC139C51630956017D96CB0CC5C2D22604CABCBA881260B3A1F00A9F328DE35AC41638728AE65A1829F90AEE08237C971608AB5A7F3B50C53B3313FD68C774AAE29BCC1DA02BE0766D62DDE586169BAACB485CADC4F16EA0648E67D4D0F8DEFD9CCA4CC2B4000CD0C6372205F97C78F270F7E75A18DE0D3C8A3A1C1C606337BF6BEC94DD93D2646462E5F23AA4C292C00761D06FE220616A50C042A39351EBB2373EF21A35D5279D82E78B016A538B99CC166A148BABD91BCBE318A7987A5DA51B8B72D038F2D77668D48150A25ADC84018ADC7F36563E82D9DAA3B04593A989F9F05BBC0183DCE1BF6D6E2F9E4EFD5B52DF56B20AC035E36D57DFE521E9B3D256DE7F55C78837C0F5036DEC0581DF76CE7990A87F25113148BA1FF3502D82FC127B8134D3573BB8711B7891EF0C56B5C95037C9FBA6698219D63F5244A2E5D3479D0887CF5296900A23B344F3D804DF82712ABBD8A42218943957FA29966DBDB3A829959D08588FB670EEA4BF17605F928391B6BD36239CBE217CE278D2068D845F0B619CE726F2E9CA46ECA76180A90FFFFFA400D8F2956F3801FAADC49D9B05A786CA5D860A9B3AF3521842AB2C8C67CF7C9D966863B61AB2AA02970BD03F828980FEADEE067C4E7448FADC980555FD073 |
184 | 20170623175902 2 6 100 4095 5 F2D0058FA043FB189699D118DE484B66A10DCE703B27209CFC6D23D9178067C9D560D7D8BA9D4439A22AED66322F25D886C0A5CD41821B49AAE3D7A7B72F9B0E2D823709AF5444C7E9474DF5867E605E638923A2FAD546A86B8014BA460D238A939B445D7489C91977B54AB531D75B0F4264F187218F885129751EC78654F4B21191365FEA1B7FEFC40842BBC07C4F1D1AD153F6A39B582406F6B5895336A1199F7556EE957EAC716AE6678CBE5390730F0EBB3CC5210242A80CB128BFD747ED1B61AF6BBD5B5DC07B34C5CA7AF73D1EE973B93E13918801AEFD674DF92A0AD84BFA2A8CEE1AD26140DA1D5FC0C450A1EAEBC88F8EA8E703A0F3A814E1F6975AA5BE732473575D16F137D2CE5F7A546CE4371ECB5E8052295E122A9CF89A026E2D09BDE56B8B04CC4CAE66CD0C5E0DFE30695DD798C50E39C911C887FEBACAAEFD2BFE7D454E051C432D66AD84680DA7C126F1A9C7C540283CCB863B9414BB536BA358259104ECB406B4976F97558FA4E5854888A8D13C96A14025DA0C55F869F6AF954B1E7AA1D317262C52099860E870A7EAF72F9910ACA809FF2DEA37FCA3EFB31FD43A308E4138E40178BEAC0FBB0E79ED7D1DCF8F8A81A4ABBFE6749F4C1B96BD65A14822490BC0A71E854BC8077C7A8F2C6FE308F86DEC97F600A4A0015F086B021F7F0BCAFDE3DA4D7E38A9AA1E992539389E99412FD22988E6CA185F | 184 | 20171129163211 2 6 100 4095 2 FADF655A8C18F13858C1C774D0060DD6FF25EAC29084E6A0A1E0D1218FD17F8800F697434FF377BC9ACB86AB48BDC139C51630956017D96CB0CC5C2D22604CABCBA881260B3A1F00A9F328DE35AC41638728AE65A1829F90AEE08237C971608AB5A7F3B50C53B3313FD68C774AAE29BCC1DA02BE0766D62DDE586169BAACB485CADC4F16EA0648E67D4D0F8DEFD9CCA4CC2B4000CD0C6372205F97C78F270F7E75A18DE0D3C8A3A1C1C606337BF6BEC94DD93D2646462E5F23AA4C292C00761D06FE220616A50C042A39351EBB2373EF21A35D5279D82E78B016A538B99CC166A148BABD91BCBE318A7987A5DA51B8B72D038F2D77668D48150A25ADC84018ADC7F36563E82D9DAA3B04593A989F9F05BBC0183DCE1BF6D6E2F9E4EFD5B52DF56B20AC035E36D57DFE521E9B3D256DE7F55C78837C0F5036DEC0581DF76CE7990A87F25113148BA1FF3502D82FC127B8134D3573BB8711B7891EF0C56B5C95037C9FBA6698219D63F5244A2E5D3479D0887CF5296900A23B344F3D804DF82712ABBD8A42218943957FA29966DBDB3A829959D08588FB670EEA4BF17605F928391B6BD36239CBE217CE278D2068D845F0B619CE726F2E9CA46ECA76180A90FFFFFA400D8F2956F3801FAADC49D9B05A786CA5D860A9B3AF3521842AB2C8C67CF7C9D966863B61AB2AA02970BD03F828980FEADEE067C4E7448FADC980575A8F7B |
185 | 20170623180229 2 6 100 4095 2 F2D0058FA043FB189699D118DE484B66A10DCE703B27209CFC6D23D9178067C9D560D7D8BA9D4439A22AED66322F25D886C0A5CD41821B49AAE3D7A7B72F9B0E2D823709AF5444C7E9474DF5867E605E638923A2FAD546A86B8014BA460D238A939B445D7489C91977B54AB531D75B0F4264F187218F885129751EC78654F4B21191365FEA1B7FEFC40842BBC07C4F1D1AD153F6A39B582406F6B5895336A1199F7556EE957EAC716AE6678CBE5390730F0EBB3CC5210242A80CB128BFD747ED1B61AF6BBD5B5DC07B34C5CA7AF73D1EE973B93E13918801AEFD674DF92A0AD84BFA2A8CEE1AD26140DA1D5FC0C450A1EAEBC88F8EA8E703A0F3A814E1F6975AA5BE732473575D16F137D2CE5F7A546CE4371ECB5E8052295E122A9CF89A026E2D09BDE56B8B04CC4CAE66CD0C5E0DFE30695DD798C50E39C911C887FEBACAAEFD2BFE7D454E051C432D66AD84680DA7C126F1A9C7C540283CCB863B9414BB536BA358259104ECB406B4976F97558FA4E5854888A8D13C96A14025DA0C55F869F6AF954B1E7AA1D317262C52099860E870A7EAF72F9910ACA809FF2DEA37FCA3EFB31FD43A308E4138E40178BEAC0FBB0E79ED7D1DCF8F8A81A4ABBFE6749F4C1B96BD65A14822490BC0A71E854BC8077C7A8F2C6FE308F86DEC97F600A4A0015F086B021F7F0BCAFDE3DA4D7E38A9AA1E992539389E99412FD22988E706D14B | 185 | 20171129165338 2 6 100 4095 2 FADF655A8C18F13858C1C774D0060DD6FF25EAC29084E6A0A1E0D1218FD17F8800F697434FF377BC9ACB86AB48BDC139C51630956017D96CB0CC5C2D22604CABCBA881260B3A1F00A9F328DE35AC41638728AE65A1829F90AEE08237C971608AB5A7F3B50C53B3313FD68C774AAE29BCC1DA02BE0766D62DDE586169BAACB485CADC4F16EA0648E67D4D0F8DEFD9CCA4CC2B4000CD0C6372205F97C78F270F7E75A18DE0D3C8A3A1C1C606337BF6BEC94DD93D2646462E5F23AA4C292C00761D06FE220616A50C042A39351EBB2373EF21A35D5279D82E78B016A538B99CC166A148BABD91BCBE318A7987A5DA51B8B72D038F2D77668D48150A25ADC84018ADC7F36563E82D9DAA3B04593A989F9F05BBC0183DCE1BF6D6E2F9E4EFD5B52DF56B20AC035E36D57DFE521E9B3D256DE7F55C78837C0F5036DEC0581DF76CE7990A87F25113148BA1FF3502D82FC127B8134D3573BB8711B7891EF0C56B5C95037C9FBA6698219D63F5244A2E5D3479D0887CF5296900A23B344F3D804DF82712ABBD8A42218943957FA29966DBDB3A829959D08588FB670EEA4BF17605F928391B6BD36239CBE217CE278D2068D845F0B619CE726F2E9CA46ECA76180A90FFFFFA400D8F2956F3801FAADC49D9B05A786CA5D860A9B3AF3521842AB2C8C67CF7C9D966863B61AB2AA02970BD03F828980FEADEE067C4E7448FADC98058EDA363 |
186 | 20170623180811 2 6 100 4095 2 F2D0058FA043FB189699D118DE484B66A10DCE703B27209CFC6D23D9178067C9D560D7D8BA9D4439A22AED66322F25D886C0A5CD41821B49AAE3D7A7B72F9B0E2D823709AF5444C7E9474DF5867E605E638923A2FAD546A86B8014BA460D238A939B445D7489C91977B54AB531D75B0F4264F187218F885129751EC78654F4B21191365FEA1B7FEFC40842BBC07C4F1D1AD153F6A39B582406F6B5895336A1199F7556EE957EAC716AE6678CBE5390730F0EBB3CC5210242A80CB128BFD747ED1B61AF6BBD5B5DC07B34C5CA7AF73D1EE973B93E13918801AEFD674DF92A0AD84BFA2A8CEE1AD26140DA1D5FC0C450A1EAEBC88F8EA8E703A0F3A814E1F6975AA5BE732473575D16F137D2CE5F7A546CE4371ECB5E8052295E122A9CF89A026E2D09BDE56B8B04CC4CAE66CD0C5E0DFE30695DD798C50E39C911C887FEBACAAEFD2BFE7D454E051C432D66AD84680DA7C126F1A9C7C540283CCB863B9414BB536BA358259104ECB406B4976F97558FA4E5854888A8D13C96A14025DA0C55F869F6AF954B1E7AA1D317262C52099860E870A7EAF72F9910ACA809FF2DEA37FCA3EFB31FD43A308E4138E40178BEAC0FBB0E79ED7D1DCF8F8A81A4ABBFE6749F4C1B96BD65A14822490BC0A71E854BC8077C7A8F2C6FE308F86DEC97F600A4A0015F086B021F7F0BCAFDE3DA4D7E38A9AA1E992539389E99412FD22988E76F7CD3 | 186 | 20171129171055 2 6 100 4095 5 FADF655A8C18F13858C1C774D0060DD6FF25EAC29084E6A0A1E0D1218FD17F8800F697434FF377BC9ACB86AB48BDC139C51630956017D96CB0CC5C2D22604CABCBA881260B3A1F00A9F328DE35AC41638728AE65A1829F90AEE08237C971608AB5A7F3B50C53B3313FD68C774AAE29BCC1DA02BE0766D62DDE586169BAACB485CADC4F16EA0648E67D4D0F8DEFD9CCA4CC2B4000CD0C6372205F97C78F270F7E75A18DE0D3C8A3A1C1C606337BF6BEC94DD93D2646462E5F23AA4C292C00761D06FE220616A50C042A39351EBB2373EF21A35D5279D82E78B016A538B99CC166A148BABD91BCBE318A7987A5DA51B8B72D038F2D77668D48150A25ADC84018ADC7F36563E82D9DAA3B04593A989F9F05BBC0183DCE1BF6D6E2F9E4EFD5B52DF56B20AC035E36D57DFE521E9B3D256DE7F55C78837C0F5036DEC0581DF76CE7990A87F25113148BA1FF3502D82FC127B8134D3573BB8711B7891EF0C56B5C95037C9FBA6698219D63F5244A2E5D3479D0887CF5296900A23B344F3D804DF82712ABBD8A42218943957FA29966DBDB3A829959D08588FB670EEA4BF17605F928391B6BD36239CBE217CE278D2068D845F0B619CE726F2E9CA46ECA76180A90FFFFFA400D8F2956F3801FAADC49D9B05A786CA5D860A9B3AF3521842AB2C8C67CF7C9D966863B61AB2AA02970BD03F828980FEADEE067C4E7448FADC98059F788C7 |
187 | 20170623180923 2 6 100 4095 2 F2D0058FA043FB189699D118DE484B66A10DCE703B27209CFC6D23D9178067C9D560D7D8BA9D4439A22AED66322F25D886C0A5CD41821B49AAE3D7A7B72F9B0E2D823709AF5444C7E9474DF5867E605E638923A2FAD546A86B8014BA460D238A939B445D7489C91977B54AB531D75B0F4264F187218F885129751EC78654F4B21191365FEA1B7FEFC40842BBC07C4F1D1AD153F6A39B582406F6B5895336A1199F7556EE957EAC716AE6678CBE5390730F0EBB3CC5210242A80CB128BFD747ED1B61AF6BBD5B5DC07B34C5CA7AF73D1EE973B93E13918801AEFD674DF92A0AD84BFA2A8CEE1AD26140DA1D5FC0C450A1EAEBC88F8EA8E703A0F3A814E1F6975AA5BE732473575D16F137D2CE5F7A546CE4371ECB5E8052295E122A9CF89A026E2D09BDE56B8B04CC4CAE66CD0C5E0DFE30695DD798C50E39C911C887FEBACAAEFD2BFE7D454E051C432D66AD84680DA7C126F1A9C7C540283CCB863B9414BB536BA358259104ECB406B4976F97558FA4E5854888A8D13C96A14025DA0C55F869F6AF954B1E7AA1D317262C52099860E870A7EAF72F9910ACA809FF2DEA37FCA3EFB31FD43A308E4138E40178BEAC0FBB0E79ED7D1DCF8F8A81A4ABBFE6749F4C1B96BD65A14822490BC0A71E854BC8077C7A8F2C6FE308F86DEC97F600A4A0015F086B021F7F0BCAFDE3DA4D7E38A9AA1E992539389E99412FD22988E77E8123 | 187 | 20171129171346 2 6 100 4095 2 FADF655A8C18F13858C1C774D0060DD6FF25EAC29084E6A0A1E0D1218FD17F8800F697434FF377BC9ACB86AB48BDC139C51630956017D96CB0CC5C2D22604CABCBA881260B3A1F00A9F328DE35AC41638728AE65A1829F90AEE08237C971608AB5A7F3B50C53B3313FD68C774AAE29BCC1DA02BE0766D62DDE586169BAACB485CADC4F16EA0648E67D4D0F8DEFD9CCA4CC2B4000CD0C6372205F97C78F270F7E75A18DE0D3C8A3A1C1C606337BF6BEC94DD93D2646462E5F23AA4C292C00761D06FE220616A50C042A39351EBB2373EF21A35D5279D82E78B016A538B99CC166A148BABD91BCBE318A7987A5DA51B8B72D038F2D77668D48150A25ADC84018ADC7F36563E82D9DAA3B04593A989F9F05BBC0183DCE1BF6D6E2F9E4EFD5B52DF56B20AC035E36D57DFE521E9B3D256DE7F55C78837C0F5036DEC0581DF76CE7990A87F25113148BA1FF3502D82FC127B8134D3573BB8711B7891EF0C56B5C95037C9FBA6698219D63F5244A2E5D3479D0887CF5296900A23B344F3D804DF82712ABBD8A42218943957FA29966DBDB3A829959D08588FB670EEA4BF17605F928391B6BD36239CBE217CE278D2068D845F0B619CE726F2E9CA46ECA76180A90FFFFFA400D8F2956F3801FAADC49D9B05A786CA5D860A9B3AF3521842AB2C8C67CF7C9D966863B61AB2AA02970BD03F828980FEADEE067C4E7448FADC9805A15681B |
188 | 20170623182724 2 6 100 4095 2 F2D0058FA043FB189699D118DE484B66A10DCE703B27209CFC6D23D9178067C9D560D7D8BA9D4439A22AED66322F25D886C0A5CD41821B49AAE3D7A7B72F9B0E2D823709AF5444C7E9474DF5867E605E638923A2FAD546A86B8014BA460D238A939B445D7489C91977B54AB531D75B0F4264F187218F885129751EC78654F4B21191365FEA1B7FEFC40842BBC07C4F1D1AD153F6A39B582406F6B5895336A1199F7556EE957EAC716AE6678CBE5390730F0EBB3CC5210242A80CB128BFD747ED1B61AF6BBD5B5DC07B34C5CA7AF73D1EE973B93E13918801AEFD674DF92A0AD84BFA2A8CEE1AD26140DA1D5FC0C450A1EAEBC88F8EA8E703A0F3A814E1F6975AA5BE732473575D16F137D2CE5F7A546CE4371ECB5E8052295E122A9CF89A026E2D09BDE56B8B04CC4CAE66CD0C5E0DFE30695DD798C50E39C911C887FEBACAAEFD2BFE7D454E051C432D66AD84680DA7C126F1A9C7C540283CCB863B9414BB536BA358259104ECB406B4976F97558FA4E5854888A8D13C96A14025DA0C55F869F6AF954B1E7AA1D317262C52099860E870A7EAF72F9910ACA809FF2DEA37FCA3EFB31FD43A308E4138E40178BEAC0FBB0E79ED7D1DCF8F8A81A4ABBFE6749F4C1B96BD65A14822490BC0A71E854BC8077C7A8F2C6FE308F86DEC97F600A4A0015F086B021F7F0BCAFDE3DA4D7E38A9AA1E992539389E99412FD22988E8D82A2B | 188 | 20171129171648 2 6 100 4095 5 FADF655A8C18F13858C1C774D0060DD6FF25EAC29084E6A0A1E0D1218FD17F8800F697434FF377BC9ACB86AB48BDC139C51630956017D96CB0CC5C2D22604CABCBA881260B3A1F00A9F328DE35AC41638728AE65A1829F90AEE08237C971608AB5A7F3B50C53B3313FD68C774AAE29BCC1DA02BE0766D62DDE586169BAACB485CADC4F16EA0648E67D4D0F8DEFD9CCA4CC2B4000CD0C6372205F97C78F270F7E75A18DE0D3C8A3A1C1C606337BF6BEC94DD93D2646462E5F23AA4C292C00761D06FE220616A50C042A39351EBB2373EF21A35D5279D82E78B016A538B99CC166A148BABD91BCBE318A7987A5DA51B8B72D038F2D77668D48150A25ADC84018ADC7F36563E82D9DAA3B04593A989F9F05BBC0183DCE1BF6D6E2F9E4EFD5B52DF56B20AC035E36D57DFE521E9B3D256DE7F55C78837C0F5036DEC0581DF76CE7990A87F25113148BA1FF3502D82FC127B8134D3573BB8711B7891EF0C56B5C95037C9FBA6698219D63F5244A2E5D3479D0887CF5296900A23B344F3D804DF82712ABBD8A42218943957FA29966DBDB3A829959D08588FB670EEA4BF17605F928391B6BD36239CBE217CE278D2068D845F0B619CE726F2E9CA46ECA76180A90FFFFFA400D8F2956F3801FAADC49D9B05A786CA5D860A9B3AF3521842AB2C8C67CF7C9D966863B61AB2AA02970BD03F828980FEADEE067C4E7448FADC9805A3C890F |
189 | 20170623185420 2 6 100 4095 5 F2D0058FA043FB189699D118DE484B66A10DCE703B27209CFC6D23D9178067C9D560D7D8BA9D4439A22AED66322F25D886C0A5CD41821B49AAE3D7A7B72F9B0E2D823709AF5444C7E9474DF5867E605E638923A2FAD546A86B8014BA460D238A939B445D7489C91977B54AB531D75B0F4264F187218F885129751EC78654F4B21191365FEA1B7FEFC40842BBC07C4F1D1AD153F6A39B582406F6B5895336A1199F7556EE957EAC716AE6678CBE5390730F0EBB3CC5210242A80CB128BFD747ED1B61AF6BBD5B5DC07B34C5CA7AF73D1EE973B93E13918801AEFD674DF92A0AD84BFA2A8CEE1AD26140DA1D5FC0C450A1EAEBC88F8EA8E703A0F3A814E1F6975AA5BE732473575D16F137D2CE5F7A546CE4371ECB5E8052295E122A9CF89A026E2D09BDE56B8B04CC4CAE66CD0C5E0DFE30695DD798C50E39C911C887FEBACAAEFD2BFE7D454E051C432D66AD84680DA7C126F1A9C7C540283CCB863B9414BB536BA358259104ECB406B4976F97558FA4E5854888A8D13C96A14025DA0C55F869F6AF954B1E7AA1D317262C52099860E870A7EAF72F9910ACA809FF2DEA37FCA3EFB31FD43A308E4138E40178BEAC0FBB0E79ED7D1DCF8F8A81A4ABBFE6749F4C1B96BD65A14822490BC0A71E854BC8077C7A8F2C6FE308F86DEC97F600A4A0015F086B021F7F0BCAFDE3DA4D7E38A9AA1E992539389E99412FD22988EAF9DAE7 | 189 | 20171129173802 2 6 100 4095 5 FADF655A8C18F13858C1C774D0060DD6FF25EAC29084E6A0A1E0D1218FD17F8800F697434FF377BC9ACB86AB48BDC139C51630956017D96CB0CC5C2D22604CABCBA881260B3A1F00A9F328DE35AC41638728AE65A1829F90AEE08237C971608AB5A7F3B50C53B3313FD68C774AAE29BCC1DA02BE0766D62DDE586169BAACB485CADC4F16EA0648E67D4D0F8DEFD9CCA4CC2B4000CD0C6372205F97C78F270F7E75A18DE0D3C8A3A1C1C606337BF6BEC94DD93D2646462E5F23AA4C292C00761D06FE220616A50C042A39351EBB2373EF21A35D5279D82E78B016A538B99CC166A148BABD91BCBE318A7987A5DA51B8B72D038F2D77668D48150A25ADC84018ADC7F36563E82D9DAA3B04593A989F9F05BBC0183DCE1BF6D6E2F9E4EFD5B52DF56B20AC035E36D57DFE521E9B3D256DE7F55C78837C0F5036DEC0581DF76CE7990A87F25113148BA1FF3502D82FC127B8134D3573BB8711B7891EF0C56B5C95037C9FBA6698219D63F5244A2E5D3479D0887CF5296900A23B344F3D804DF82712ABBD8A42218943957FA29966DBDB3A829959D08588FB670EEA4BF17605F928391B6BD36239CBE217CE278D2068D845F0B619CE726F2E9CA46ECA76180A90FFFFFA400D8F2956F3801FAADC49D9B05A786CA5D860A9B3AF3521842AB2C8C67CF7C9D966863B61AB2AA02970BD03F828980FEADEE067C4E7448FADC9805B983947 |
190 | 20170623195226 2 6 100 4095 2 F2D0058FA043FB189699D118DE484B66A10DCE703B27209CFC6D23D9178067C9D560D7D8BA9D4439A22AED66322F25D886C0A5CD41821B49AAE3D7A7B72F9B0E2D823709AF5444C7E9474DF5867E605E638923A2FAD546A86B8014BA460D238A939B445D7489C91977B54AB531D75B0F4264F187218F885129751EC78654F4B21191365FEA1B7FEFC40842BBC07C4F1D1AD153F6A39B582406F6B5895336A1199F7556EE957EAC716AE6678CBE5390730F0EBB3CC5210242A80CB128BFD747ED1B61AF6BBD5B5DC07B34C5CA7AF73D1EE973B93E13918801AEFD674DF92A0AD84BFA2A8CEE1AD26140DA1D5FC0C450A1EAEBC88F8EA8E703A0F3A814E1F6975AA5BE732473575D16F137D2CE5F7A546CE4371ECB5E8052295E122A9CF89A026E2D09BDE56B8B04CC4CAE66CD0C5E0DFE30695DD798C50E39C911C887FEBACAAEFD2BFE7D454E051C432D66AD84680DA7C126F1A9C7C540283CCB863B9414BB536BA358259104ECB406B4976F97558FA4E5854888A8D13C96A14025DA0C55F869F6AF954B1E7AA1D317262C52099860E870A7EAF72F9910ACA809FF2DEA37FCA3EFB31FD43A308E4138E40178BEAC0FBB0E79ED7D1DCF8F8A81A4ABBFE6749F4C1B96BD65A14822490BC0A71E854BC8077C7A8F2C6FE308F86DEC97F600A4A0015F086B021F7F0BCAFDE3DA4D7E38A9AA1E992539389E99412FD22988EFA2202B | 190 | 20171129174541 2 6 100 4095 2 FADF655A8C18F13858C1C774D0060DD6FF25EAC29084E6A0A1E0D1218FD17F8800F697434FF377BC9ACB86AB48BDC139C51630956017D96CB0CC5C2D22604CABCBA881260B3A1F00A9F328DE35AC41638728AE65A1829F90AEE08237C971608AB5A7F3B50C53B3313FD68C774AAE29BCC1DA02BE0766D62DDE586169BAACB485CADC4F16EA0648E67D4D0F8DEFD9CCA4CC2B4000CD0C6372205F97C78F270F7E75A18DE0D3C8A3A1C1C606337BF6BEC94DD93D2646462E5F23AA4C292C00761D06FE220616A50C042A39351EBB2373EF21A35D5279D82E78B016A538B99CC166A148BABD91BCBE318A7987A5DA51B8B72D038F2D77668D48150A25ADC84018ADC7F36563E82D9DAA3B04593A989F9F05BBC0183DCE1BF6D6E2F9E4EFD5B52DF56B20AC035E36D57DFE521E9B3D256DE7F55C78837C0F5036DEC0581DF76CE7990A87F25113148BA1FF3502D82FC127B8134D3573BB8711B7891EF0C56B5C95037C9FBA6698219D63F5244A2E5D3479D0887CF5296900A23B344F3D804DF82712ABBD8A42218943957FA29966DBDB3A829959D08588FB670EEA4BF17605F928391B6BD36239CBE217CE278D2068D845F0B619CE726F2E9CA46ECA76180A90FFFFFA400D8F2956F3801FAADC49D9B05A786CA5D860A9B3AF3521842AB2C8C67CF7C9D966863B61AB2AA02970BD03F828980FEADEE067C4E7448FADC9805C1B745B |
191 | 20170623195633 2 6 100 4095 5 F2D0058FA043FB189699D118DE484B66A10DCE703B27209CFC6D23D9178067C9D560D7D8BA9D4439A22AED66322F25D886C0A5CD41821B49AAE3D7A7B72F9B0E2D823709AF5444C7E9474DF5867E605E638923A2FAD546A86B8014BA460D238A939B445D7489C91977B54AB531D75B0F4264F187218F885129751EC78654F4B21191365FEA1B7FEFC40842BBC07C4F1D1AD153F6A39B582406F6B5895336A1199F7556EE957EAC716AE6678CBE5390730F0EBB3CC5210242A80CB128BFD747ED1B61AF6BBD5B5DC07B34C5CA7AF73D1EE973B93E13918801AEFD674DF92A0AD84BFA2A8CEE1AD26140DA1D5FC0C450A1EAEBC88F8EA8E703A0F3A814E1F6975AA5BE732473575D16F137D2CE5F7A546CE4371ECB5E8052295E122A9CF89A026E2D09BDE56B8B04CC4CAE66CD0C5E0DFE30695DD798C50E39C911C887FEBACAAEFD2BFE7D454E051C432D66AD84680DA7C126F1A9C7C540283CCB863B9414BB536BA358259104ECB406B4976F97558FA4E5854888A8D13C96A14025DA0C55F869F6AF954B1E7AA1D317262C52099860E870A7EAF72F9910ACA809FF2DEA37FCA3EFB31FD43A308E4138E40178BEAC0FBB0E79ED7D1DCF8F8A81A4ABBFE6749F4C1B96BD65A14822490BC0A71E854BC8077C7A8F2C6FE308F86DEC97F600A4A0015F086B021F7F0BCAFDE3DA4D7E38A9AA1E992539389E99412FD22988EFEED5BF | 191 | 20171129182644 2 6 100 4095 5 FADF655A8C18F13858C1C774D0060DD6FF25EAC29084E6A0A1E0D1218FD17F8800F697434FF377BC9ACB86AB48BDC139C51630956017D96CB0CC5C2D22604CABCBA881260B3A1F00A9F328DE35AC41638728AE65A1829F90AEE08237C971608AB5A7F3B50C53B3313FD68C774AAE29BCC1DA02BE0766D62DDE586169BAACB485CADC4F16EA0648E67D4D0F8DEFD9CCA4CC2B4000CD0C6372205F97C78F270F7E75A18DE0D3C8A3A1C1C606337BF6BEC94DD93D2646462E5F23AA4C292C00761D06FE220616A50C042A39351EBB2373EF21A35D5279D82E78B016A538B99CC166A148BABD91BCBE318A7987A5DA51B8B72D038F2D77668D48150A25ADC84018ADC7F36563E82D9DAA3B04593A989F9F05BBC0183DCE1BF6D6E2F9E4EFD5B52DF56B20AC035E36D57DFE521E9B3D256DE7F55C78837C0F5036DEC0581DF76CE7990A87F25113148BA1FF3502D82FC127B8134D3573BB8711B7891EF0C56B5C95037C9FBA6698219D63F5244A2E5D3479D0887CF5296900A23B344F3D804DF82712ABBD8A42218943957FA29966DBDB3A829959D08588FB670EEA4BF17605F928391B6BD36239CBE217CE278D2068D845F0B619CE726F2E9CA46ECA76180A90FFFFFA400D8F2956F3801FAADC49D9B05A786CA5D860A9B3AF3521842AB2C8C67CF7C9D966863B61AB2AA02970BD03F828980FEADEE067C4E7448FADC9805EF8CFA7 |
192 | 20170623201051 2 6 100 4095 2 F2D0058FA043FB189699D118DE484B66A10DCE703B27209CFC6D23D9178067C9D560D7D8BA9D4439A22AED66322F25D886C0A5CD41821B49AAE3D7A7B72F9B0E2D823709AF5444C7E9474DF5867E605E638923A2FAD546A86B8014BA460D238A939B445D7489C91977B54AB531D75B0F4264F187218F885129751EC78654F4B21191365FEA1B7FEFC40842BBC07C4F1D1AD153F6A39B582406F6B5895336A1199F7556EE957EAC716AE6678CBE5390730F0EBB3CC5210242A80CB128BFD747ED1B61AF6BBD5B5DC07B34C5CA7AF73D1EE973B93E13918801AEFD674DF92A0AD84BFA2A8CEE1AD26140DA1D5FC0C450A1EAEBC88F8EA8E703A0F3A814E1F6975AA5BE732473575D16F137D2CE5F7A546CE4371ECB5E8052295E122A9CF89A026E2D09BDE56B8B04CC4CAE66CD0C5E0DFE30695DD798C50E39C911C887FEBACAAEFD2BFE7D454E051C432D66AD84680DA7C126F1A9C7C540283CCB863B9414BB536BA358259104ECB406B4976F97558FA4E5854888A8D13C96A14025DA0C55F869F6AF954B1E7AA1D317262C52099860E870A7EAF72F9910ACA809FF2DEA37FCA3EFB31FD43A308E4138E40178BEAC0FBB0E79ED7D1DCF8F8A81A4ABBFE6749F4C1B96BD65A14822490BC0A71E854BC8077C7A8F2C6FE308F86DEC97F600A4A0015F086B021F7F0BCAFDE3DA4D7E38A9AA1E992539389E99412FD22988F10F59CB | 192 | 20171129183105 2 6 100 4095 5 FADF655A8C18F13858C1C774D0060DD6FF25EAC29084E6A0A1E0D1218FD17F8800F697434FF377BC9ACB86AB48BDC139C51630956017D96CB0CC5C2D22604CABCBA881260B3A1F00A9F328DE35AC41638728AE65A1829F90AEE08237C971608AB5A7F3B50C53B3313FD68C774AAE29BCC1DA02BE0766D62DDE586169BAACB485CADC4F16EA0648E67D4D0F8DEFD9CCA4CC2B4000CD0C6372205F97C78F270F7E75A18DE0D3C8A3A1C1C606337BF6BEC94DD93D2646462E5F23AA4C292C00761D06FE220616A50C042A39351EBB2373EF21A35D5279D82E78B016A538B99CC166A148BABD91BCBE318A7987A5DA51B8B72D038F2D77668D48150A25ADC84018ADC7F36563E82D9DAA3B04593A989F9F05BBC0183DCE1BF6D6E2F9E4EFD5B52DF56B20AC035E36D57DFE521E9B3D256DE7F55C78837C0F5036DEC0581DF76CE7990A87F25113148BA1FF3502D82FC127B8134D3573BB8711B7891EF0C56B5C95037C9FBA6698219D63F5244A2E5D3479D0887CF5296900A23B344F3D804DF82712ABBD8A42218943957FA29966DBDB3A829959D08588FB670EEA4BF17605F928391B6BD36239CBE217CE278D2068D845F0B619CE726F2E9CA46ECA76180A90FFFFFA400D8F2956F3801FAADC49D9B05A786CA5D860A9B3AF3521842AB2C8C67CF7C9D966863B61AB2AA02970BD03F828980FEADEE067C4E7448FADC9805F423DD7 |
193 | 20170623202959 2 6 100 4095 5 F2D0058FA043FB189699D118DE484B66A10DCE703B27209CFC6D23D9178067C9D560D7D8BA9D4439A22AED66322F25D886C0A5CD41821B49AAE3D7A7B72F9B0E2D823709AF5444C7E9474DF5867E605E638923A2FAD546A86B8014BA460D238A939B445D7489C91977B54AB531D75B0F4264F187218F885129751EC78654F4B21191365FEA1B7FEFC40842BBC07C4F1D1AD153F6A39B582406F6B5895336A1199F7556EE957EAC716AE6678CBE5390730F0EBB3CC5210242A80CB128BFD747ED1B61AF6BBD5B5DC07B34C5CA7AF73D1EE973B93E13918801AEFD674DF92A0AD84BFA2A8CEE1AD26140DA1D5FC0C450A1EAEBC88F8EA8E703A0F3A814E1F6975AA5BE732473575D16F137D2CE5F7A546CE4371ECB5E8052295E122A9CF89A026E2D09BDE56B8B04CC4CAE66CD0C5E0DFE30695DD798C50E39C911C887FEBACAAEFD2BFE7D454E051C432D66AD84680DA7C126F1A9C7C540283CCB863B9414BB536BA358259104ECB406B4976F97558FA4E5854888A8D13C96A14025DA0C55F869F6AF954B1E7AA1D317262C52099860E870A7EAF72F9910ACA809FF2DEA37FCA3EFB31FD43A308E4138E40178BEAC0FBB0E79ED7D1DCF8F8A81A4ABBFE6749F4C1B96BD65A14822490BC0A71E854BC8077C7A8F2C6FE308F86DEC97F600A4A0015F086B021F7F0BCAFDE3DA4D7E38A9AA1E992539389E99412FD22988F2921927 | 193 | 20171129183151 2 6 100 4095 2 FADF655A8C18F13858C1C774D0060DD6FF25EAC29084E6A0A1E0D1218FD17F8800F697434FF377BC9ACB86AB48BDC139C51630956017D96CB0CC5C2D22604CABCBA881260B3A1F00A9F328DE35AC41638728AE65A1829F90AEE08237C971608AB5A7F3B50C53B3313FD68C774AAE29BCC1DA02BE0766D62DDE586169BAACB485CADC4F16EA0648E67D4D0F8DEFD9CCA4CC2B4000CD0C6372205F97C78F270F7E75A18DE0D3C8A3A1C1C606337BF6BEC94DD93D2646462E5F23AA4C292C00761D06FE220616A50C042A39351EBB2373EF21A35D5279D82E78B016A538B99CC166A148BABD91BCBE318A7987A5DA51B8B72D038F2D77668D48150A25ADC84018ADC7F36563E82D9DAA3B04593A989F9F05BBC0183DCE1BF6D6E2F9E4EFD5B52DF56B20AC035E36D57DFE521E9B3D256DE7F55C78837C0F5036DEC0581DF76CE7990A87F25113148BA1FF3502D82FC127B8134D3573BB8711B7891EF0C56B5C95037C9FBA6698219D63F5244A2E5D3479D0887CF5296900A23B344F3D804DF82712ABBD8A42218943957FA29966DBDB3A829959D08588FB670EEA4BF17605F928391B6BD36239CBE217CE278D2068D845F0B619CE726F2E9CA46ECA76180A90FFFFFA400D8F2956F3801FAADC49D9B05A786CA5D860A9B3AF3521842AB2C8C67CF7C9D966863B61AB2AA02970BD03F828980FEADEE067C4E7448FADC9805F48127B |
194 | 20170623203734 2 6 100 4095 2 F2D0058FA043FB189699D118DE484B66A10DCE703B27209CFC6D23D9178067C9D560D7D8BA9D4439A22AED66322F25D886C0A5CD41821B49AAE3D7A7B72F9B0E2D823709AF5444C7E9474DF5867E605E638923A2FAD546A86B8014BA460D238A939B445D7489C91977B54AB531D75B0F4264F187218F885129751EC78654F4B21191365FEA1B7FEFC40842BBC07C4F1D1AD153F6A39B582406F6B5895336A1199F7556EE957EAC716AE6678CBE5390730F0EBB3CC5210242A80CB128BFD747ED1B61AF6BBD5B5DC07B34C5CA7AF73D1EE973B93E13918801AEFD674DF92A0AD84BFA2A8CEE1AD26140DA1D5FC0C450A1EAEBC88F8EA8E703A0F3A814E1F6975AA5BE732473575D16F137D2CE5F7A546CE4371ECB5E8052295E122A9CF89A026E2D09BDE56B8B04CC4CAE66CD0C5E0DFE30695DD798C50E39C911C887FEBACAAEFD2BFE7D454E051C432D66AD84680DA7C126F1A9C7C540283CCB863B9414BB536BA358259104ECB406B4976F97558FA4E5854888A8D13C96A14025DA0C55F869F6AF954B1E7AA1D317262C52099860E870A7EAF72F9910ACA809FF2DEA37FCA3EFB31FD43A308E4138E40178BEAC0FBB0E79ED7D1DCF8F8A81A4ABBFE6749F4C1B96BD65A14822490BC0A71E854BC8077C7A8F2C6FE308F86DEC97F600A4A0015F086B021F7F0BCAFDE3DA4D7E38A9AA1E992539389E99412FD22988F32287EB | 194 | 20171129183501 2 6 100 4095 2 FADF655A8C18F13858C1C774D0060DD6FF25EAC29084E6A0A1E0D1218FD17F8800F697434FF377BC9ACB86AB48BDC139C51630956017D96CB0CC5C2D22604CABCBA881260B3A1F00A9F328DE35AC41638728AE65A1829F90AEE08237C971608AB5A7F3B50C53B3313FD68C774AAE29BCC1DA02BE0766D62DDE586169BAACB485CADC4F16EA0648E67D4D0F8DEFD9CCA4CC2B4000CD0C6372205F97C78F270F7E75A18DE0D3C8A3A1C1C606337BF6BEC94DD93D2646462E5F23AA4C292C00761D06FE220616A50C042A39351EBB2373EF21A35D5279D82E78B016A538B99CC166A148BABD91BCBE318A7987A5DA51B8B72D038F2D77668D48150A25ADC84018ADC7F36563E82D9DAA3B04593A989F9F05BBC0183DCE1BF6D6E2F9E4EFD5B52DF56B20AC035E36D57DFE521E9B3D256DE7F55C78837C0F5036DEC0581DF76CE7990A87F25113148BA1FF3502D82FC127B8134D3573BB8711B7891EF0C56B5C95037C9FBA6698219D63F5244A2E5D3479D0887CF5296900A23B344F3D804DF82712ABBD8A42218943957FA29966DBDB3A829959D08588FB670EEA4BF17605F928391B6BD36239CBE217CE278D2068D845F0B619CE726F2E9CA46ECA76180A90FFFFFA400D8F2956F3801FAADC49D9B05A786CA5D860A9B3AF3521842AB2C8C67CF7C9D966863B61AB2AA02970BD03F828980FEADEE067C4E7448FADC9805F7A0D7B |
195 | 20170623204218 2 6 100 4095 2 F2D0058FA043FB189699D118DE484B66A10DCE703B27209CFC6D23D9178067C9D560D7D8BA9D4439A22AED66322F25D886C0A5CD41821B49AAE3D7A7B72F9B0E2D823709AF5444C7E9474DF5867E605E638923A2FAD546A86B8014BA460D238A939B445D7489C91977B54AB531D75B0F4264F187218F885129751EC78654F4B21191365FEA1B7FEFC40842BBC07C4F1D1AD153F6A39B582406F6B5895336A1199F7556EE957EAC716AE6678CBE5390730F0EBB3CC5210242A80CB128BFD747ED1B61AF6BBD5B5DC07B34C5CA7AF73D1EE973B93E13918801AEFD674DF92A0AD84BFA2A8CEE1AD26140DA1D5FC0C450A1EAEBC88F8EA8E703A0F3A814E1F6975AA5BE732473575D16F137D2CE5F7A546CE4371ECB5E8052295E122A9CF89A026E2D09BDE56B8B04CC4CAE66CD0C5E0DFE30695DD798C50E39C911C887FEBACAAEFD2BFE7D454E051C432D66AD84680DA7C126F1A9C7C540283CCB863B9414BB536BA358259104ECB406B4976F97558FA4E5854888A8D13C96A14025DA0C55F869F6AF954B1E7AA1D317262C52099860E870A7EAF72F9910ACA809FF2DEA37FCA3EFB31FD43A308E4138E40178BEAC0FBB0E79ED7D1DCF8F8A81A4ABBFE6749F4C1B96BD65A14822490BC0A71E854BC8077C7A8F2C6FE308F86DEC97F600A4A0015F086B021F7F0BCAFDE3DA4D7E38A9AA1E992539389E99412FD22988F37F8B03 | 195 | 20171129184425 2 6 100 4095 5 FADF655A8C18F13858C1C774D0060DD6FF25EAC29084E6A0A1E0D1218FD17F8800F697434FF377BC9ACB86AB48BDC139C51630956017D96CB0CC5C2D22604CABCBA881260B3A1F00A9F328DE35AC41638728AE65A1829F90AEE08237C971608AB5A7F3B50C53B3313FD68C774AAE29BCC1DA02BE0766D62DDE586169BAACB485CADC4F16EA0648E67D4D0F8DEFD9CCA4CC2B4000CD0C6372205F97C78F270F7E75A18DE0D3C8A3A1C1C606337BF6BEC94DD93D2646462E5F23AA4C292C00761D06FE220616A50C042A39351EBB2373EF21A35D5279D82E78B016A538B99CC166A148BABD91BCBE318A7987A5DA51B8B72D038F2D77668D48150A25ADC84018ADC7F36563E82D9DAA3B04593A989F9F05BBC0183DCE1BF6D6E2F9E4EFD5B52DF56B20AC035E36D57DFE521E9B3D256DE7F55C78837C0F5036DEC0581DF76CE7990A87F25113148BA1FF3502D82FC127B8134D3573BB8711B7891EF0C56B5C95037C9FBA6698219D63F5244A2E5D3479D0887CF5296900A23B344F3D804DF82712ABBD8A42218943957FA29966DBDB3A829959D08588FB670EEA4BF17605F928391B6BD36239CBE217CE278D2068D845F0B619CE726F2E9CA46ECA76180A90FFFFFA400D8F2956F3801FAADC49D9B05A786CA5D860A9B3AF3521842AB2C8C67CF7C9D966863B61AB2AA02970BD03F828980FEADEE067C4E7448FADC980601F06C7 |
196 | 20170623204329 2 6 100 4095 5 F2D0058FA043FB189699D118DE484B66A10DCE703B27209CFC6D23D9178067C9D560D7D8BA9D4439A22AED66322F25D886C0A5CD41821B49AAE3D7A7B72F9B0E2D823709AF5444C7E9474DF5867E605E638923A2FAD546A86B8014BA460D238A939B445D7489C91977B54AB531D75B0F4264F187218F885129751EC78654F4B21191365FEA1B7FEFC40842BBC07C4F1D1AD153F6A39B582406F6B5895336A1199F7556EE957EAC716AE6678CBE5390730F0EBB3CC5210242A80CB128BFD747ED1B61AF6BBD5B5DC07B34C5CA7AF73D1EE973B93E13918801AEFD674DF92A0AD84BFA2A8CEE1AD26140DA1D5FC0C450A1EAEBC88F8EA8E703A0F3A814E1F6975AA5BE732473575D16F137D2CE5F7A546CE4371ECB5E8052295E122A9CF89A026E2D09BDE56B8B04CC4CAE66CD0C5E0DFE30695DD798C50E39C911C887FEBACAAEFD2BFE7D454E051C432D66AD84680DA7C126F1A9C7C540283CCB863B9414BB536BA358259104ECB406B4976F97558FA4E5854888A8D13C96A14025DA0C55F869F6AF954B1E7AA1D317262C52099860E870A7EAF72F9910ACA809FF2DEA37FCA3EFB31FD43A308E4138E40178BEAC0FBB0E79ED7D1DCF8F8A81A4ABBFE6749F4C1B96BD65A14822490BC0A71E854BC8077C7A8F2C6FE308F86DEC97F600A4A0015F086B021F7F0BCAFDE3DA4D7E38A9AA1E992539389E99412FD22988F38F411F | 196 | 20171129190009 2 6 100 4095 5 D693DF66A6AA48BBECF942D3453355A19560938DE0A34C3E1158E5B9ECD70272CAE9686FAC4B6F64149C85607C158A67DB1C9B7FABD46379269492CB6B7E484D8AD4EA76D75EAD74F6A1E64D29206EC7BFF0630F3663C338039F8D10751AB8A177EEBB41E68434EAE03F7CA3761DE111900DC75F03209D8F6A92E178D94ADC7791D1BA55E7B6943A70D19957E348CA4B2407F89427D3B90979868732C69C221A3747ABCC7A9116D92237A1FDBE81E1ADDDA92F7FC0C15E7436B7C222E7759589919788B718B1F9F48356230B8F061F01FF21CD2DFEB2A1C744F8CBA3765364F1F417E105EDA7EB0ADBF1FD4CF4415B41CDA9BEF3CF6607A097EA2CFE32FA5376C01D1DF3B003FDEAE7571D0C54B5DED4DBBA2C753FB5ED889DD832085D75661CC762BBA28567CD080FB738B61C58ABF9962935C44322F1B96BEBEB594681CD2F20CA9F4D71C23D48E69725D37A4718924C4F145FBE0D841BE7C410A29C45810E240C319BADC04F990C4A84592FF925A73B6FE898F861B0E84D1146EB6856ADF066B11A0AE6915230F8A8E8234B33B5BAC1F3D1C3C05C8562DB51ACCAE2890C937F412D6E963C96965AA36350E8AB2901EE705B25407BC60711D9FC17E7885E5ED413ABBE2C207D55647F82C44367C13F489AD520A2A8FFA64C4F6EAF7AA816717F3019C6D240A4B9D788AFB73EA403523222D1E5940C47CAF304ED907E91691F |
197 | 20170623204840 2 6 100 4095 2 F2D0058FA043FB189699D118DE484B66A10DCE703B27209CFC6D23D9178067C9D560D7D8BA9D4439A22AED66322F25D886C0A5CD41821B49AAE3D7A7B72F9B0E2D823709AF5444C7E9474DF5867E605E638923A2FAD546A86B8014BA460D238A939B445D7489C91977B54AB531D75B0F4264F187218F885129751EC78654F4B21191365FEA1B7FEFC40842BBC07C4F1D1AD153F6A39B582406F6B5895336A1199F7556EE957EAC716AE6678CBE5390730F0EBB3CC5210242A80CB128BFD747ED1B61AF6BBD5B5DC07B34C5CA7AF73D1EE973B93E13918801AEFD674DF92A0AD84BFA2A8CEE1AD26140DA1D5FC0C450A1EAEBC88F8EA8E703A0F3A814E1F6975AA5BE732473575D16F137D2CE5F7A546CE4371ECB5E8052295E122A9CF89A026E2D09BDE56B8B04CC4CAE66CD0C5E0DFE30695DD798C50E39C911C887FEBACAAEFD2BFE7D454E051C432D66AD84680DA7C126F1A9C7C540283CCB863B9414BB536BA358259104ECB406B4976F97558FA4E5854888A8D13C96A14025DA0C55F869F6AF954B1E7AA1D317262C52099860E870A7EAF72F9910ACA809FF2DEA37FCA3EFB31FD43A308E4138E40178BEAC0FBB0E79ED7D1DCF8F8A81A4ABBFE6749F4C1B96BD65A14822490BC0A71E854BC8077C7A8F2C6FE308F86DEC97F600A4A0015F086B021F7F0BCAFDE3DA4D7E38A9AA1E992539389E99412FD22988F3EE7B13 | 197 | 20171129190047 2 6 100 4095 2 D693DF66A6AA48BBECF942D3453355A19560938DE0A34C3E1158E5B9ECD70272CAE9686FAC4B6F64149C85607C158A67DB1C9B7FABD46379269492CB6B7E484D8AD4EA76D75EAD74F6A1E64D29206EC7BFF0630F3663C338039F8D10751AB8A177EEBB41E68434EAE03F7CA3761DE111900DC75F03209D8F6A92E178D94ADC7791D1BA55E7B6943A70D19957E348CA4B2407F89427D3B90979868732C69C221A3747ABCC7A9116D92237A1FDBE81E1ADDDA92F7FC0C15E7436B7C222E7759589919788B718B1F9F48356230B8F061F01FF21CD2DFEB2A1C744F8CBA3765364F1F417E105EDA7EB0ADBF1FD4CF4415B41CDA9BEF3CF6607A097EA2CFE32FA5376C01D1DF3B003FDEAE7571D0C54B5DED4DBBA2C753FB5ED889DD832085D75661CC762BBA28567CD080FB738B61C58ABF9962935C44322F1B96BEBEB594681CD2F20CA9F4D71C23D48E69725D37A4718924C4F145FBE0D841BE7C410A29C45810E240C319BADC04F990C4A84592FF925A73B6FE898F861B0E84D1146EB6856ADF066B11A0AE6915230F8A8E8234B33B5BAC1F3D1C3C05C8562DB51ACCAE2890C937F412D6E963C96965AA36350E8AB2901EE705B25407BC60711D9FC17E7885E5ED413ABBE2C207D55647F82C44367C13F489AD520A2A8FFA64C4F6EAF7AA816717F3019C6D240A4B9D788AFB73EA403523222D1E5940C47CAF304ED907E94D7B3 |
198 | 20170623205709 2 6 100 4095 2 F2D0058FA043FB189699D118DE484B66A10DCE703B27209CFC6D23D9178067C9D560D7D8BA9D4439A22AED66322F25D886C0A5CD41821B49AAE3D7A7B72F9B0E2D823709AF5444C7E9474DF5867E605E638923A2FAD546A86B8014BA460D238A939B445D7489C91977B54AB531D75B0F4264F187218F885129751EC78654F4B21191365FEA1B7FEFC40842BBC07C4F1D1AD153F6A39B582406F6B5895336A1199F7556EE957EAC716AE6678CBE5390730F0EBB3CC5210242A80CB128BFD747ED1B61AF6BBD5B5DC07B34C5CA7AF73D1EE973B93E13918801AEFD674DF92A0AD84BFA2A8CEE1AD26140DA1D5FC0C450A1EAEBC88F8EA8E703A0F3A814E1F6975AA5BE732473575D16F137D2CE5F7A546CE4371ECB5E8052295E122A9CF89A026E2D09BDE56B8B04CC4CAE66CD0C5E0DFE30695DD798C50E39C911C887FEBACAAEFD2BFE7D454E051C432D66AD84680DA7C126F1A9C7C540283CCB863B9414BB536BA358259104ECB406B4976F97558FA4E5854888A8D13C96A14025DA0C55F869F6AF954B1E7AA1D317262C52099860E870A7EAF72F9910ACA809FF2DEA37FCA3EFB31FD43A308E4138E40178BEAC0FBB0E79ED7D1DCF8F8A81A4ABBFE6749F4C1B96BD65A14822490BC0A71E854BC8077C7A8F2C6FE308F86DEC97F600A4A0015F086B021F7F0BCAFDE3DA4D7E38A9AA1E992539389E99412FD22988F493374B | 198 | 20171129191357 2 6 100 4095 5 D693DF66A6AA48BBECF942D3453355A19560938DE0A34C3E1158E5B9ECD70272CAE9686FAC4B6F64149C85607C158A67DB1C9B7FABD46379269492CB6B7E484D8AD4EA76D75EAD74F6A1E64D29206EC7BFF0630F3663C338039F8D10751AB8A177EEBB41E68434EAE03F7CA3761DE111900DC75F03209D8F6A92E178D94ADC7791D1BA55E7B6943A70D19957E348CA4B2407F89427D3B90979868732C69C221A3747ABCC7A9116D92237A1FDBE81E1ADDDA92F7FC0C15E7436B7C222E7759589919788B718B1F9F48356230B8F061F01FF21CD2DFEB2A1C744F8CBA3765364F1F417E105EDA7EB0ADBF1FD4CF4415B41CDA9BEF3CF6607A097EA2CFE32FA5376C01D1DF3B003FDEAE7571D0C54B5DED4DBBA2C753FB5ED889DD832085D75661CC762BBA28567CD080FB738B61C58ABF9962935C44322F1B96BEBEB594681CD2F20CA9F4D71C23D48E69725D37A4718924C4F145FBE0D841BE7C410A29C45810E240C319BADC04F990C4A84592FF925A73B6FE898F861B0E84D1146EB6856ADF066B11A0AE6915230F8A8E8234B33B5BAC1F3D1C3C05C8562DB51ACCAE2890C937F412D6E963C96965AA36350E8AB2901EE705B25407BC60711D9FC17E7885E5ED413ABBE2C207D55647F82C44367C13F489AD520A2A8FFA64C4F6EAF7AA816717F3019C6D240A4B9D788AFB73EA403523222D1E5940C47CAF304ED907F80F827 |
199 | 20170623205814 2 6 100 4095 2 F2D0058FA043FB189699D118DE484B66A10DCE703B27209CFC6D23D9178067C9D560D7D8BA9D4439A22AED66322F25D886C0A5CD41821B49AAE3D7A7B72F9B0E2D823709AF5444C7E9474DF5867E605E638923A2FAD546A86B8014BA460D238A939B445D7489C91977B54AB531D75B0F4264F187218F885129751EC78654F4B21191365FEA1B7FEFC40842BBC07C4F1D1AD153F6A39B582406F6B5895336A1199F7556EE957EAC716AE6678CBE5390730F0EBB3CC5210242A80CB128BFD747ED1B61AF6BBD5B5DC07B34C5CA7AF73D1EE973B93E13918801AEFD674DF92A0AD84BFA2A8CEE1AD26140DA1D5FC0C450A1EAEBC88F8EA8E703A0F3A814E1F6975AA5BE732473575D16F137D2CE5F7A546CE4371ECB5E8052295E122A9CF89A026E2D09BDE56B8B04CC4CAE66CD0C5E0DFE30695DD798C50E39C911C887FEBACAAEFD2BFE7D454E051C432D66AD84680DA7C126F1A9C7C540283CCB863B9414BB536BA358259104ECB406B4976F97558FA4E5854888A8D13C96A14025DA0C55F869F6AF954B1E7AA1D317262C52099860E870A7EAF72F9910ACA809FF2DEA37FCA3EFB31FD43A308E4138E40178BEAC0FBB0E79ED7D1DCF8F8A81A4ABBFE6749F4C1B96BD65A14822490BC0A71E854BC8077C7A8F2C6FE308F86DEC97F600A4A0015F086B021F7F0BCAFDE3DA4D7E38A9AA1E992539389E99412FD22988F4A24813 | 199 | 20171129191536 2 6 100 4095 2 D693DF66A6AA48BBECF942D3453355A19560938DE0A34C3E1158E5B9ECD70272CAE9686FAC4B6F64149C85607C158A67DB1C9B7FABD46379269492CB6B7E484D8AD4EA76D75EAD74F6A1E64D29206EC7BFF0630F3663C338039F8D10751AB8A177EEBB41E68434EAE03F7CA3761DE111900DC75F03209D8F6A92E178D94ADC7791D1BA55E7B6943A70D19957E348CA4B2407F89427D3B90979868732C69C221A3747ABCC7A9116D92237A1FDBE81E1ADDDA92F7FC0C15E7436B7C222E7759589919788B718B1F9F48356230B8F061F01FF21CD2DFEB2A1C744F8CBA3765364F1F417E105EDA7EB0ADBF1FD4CF4415B41CDA9BEF3CF6607A097EA2CFE32FA5376C01D1DF3B003FDEAE7571D0C54B5DED4DBBA2C753FB5ED889DD832085D75661CC762BBA28567CD080FB738B61C58ABF9962935C44322F1B96BEBEB594681CD2F20CA9F4D71C23D48E69725D37A4718924C4F145FBE0D841BE7C410A29C45810E240C319BADC04F990C4A84592FF925A73B6FE898F861B0E84D1146EB6856ADF066B11A0AE6915230F8A8E8234B33B5BAC1F3D1C3C05C8562DB51ACCAE2890C937F412D6E963C96965AA36350E8AB2901EE705B25407BC60711D9FC17E7885E5ED413ABBE2C207D55647F82C44367C13F489AD520A2A8FFA64C4F6EAF7AA816717F3019C6D240A4B9D788AFB73EA403523222D1E5940C47CAF304ED907F970063 |
200 | 20170623210627 2 6 100 4095 2 F2D0058FA043FB189699D118DE484B66A10DCE703B27209CFC6D23D9178067C9D560D7D8BA9D4439A22AED66322F25D886C0A5CD41821B49AAE3D7A7B72F9B0E2D823709AF5444C7E9474DF5867E605E638923A2FAD546A86B8014BA460D238A939B445D7489C91977B54AB531D75B0F4264F187218F885129751EC78654F4B21191365FEA1B7FEFC40842BBC07C4F1D1AD153F6A39B582406F6B5895336A1199F7556EE957EAC716AE6678CBE5390730F0EBB3CC5210242A80CB128BFD747ED1B61AF6BBD5B5DC07B34C5CA7AF73D1EE973B93E13918801AEFD674DF92A0AD84BFA2A8CEE1AD26140DA1D5FC0C450A1EAEBC88F8EA8E703A0F3A814E1F6975AA5BE732473575D16F137D2CE5F7A546CE4371ECB5E8052295E122A9CF89A026E2D09BDE56B8B04CC4CAE66CD0C5E0DFE30695DD798C50E39C911C887FEBACAAEFD2BFE7D454E051C432D66AD84680DA7C126F1A9C7C540283CCB863B9414BB536BA358259104ECB406B4976F97558FA4E5854888A8D13C96A14025DA0C55F869F6AF954B1E7AA1D317262C52099860E870A7EAF72F9910ACA809FF2DEA37FCA3EFB31FD43A308E4138E40178BEAC0FBB0E79ED7D1DCF8F8A81A4ABBFE6749F4C1B96BD65A14822490BC0A71E854BC8077C7A8F2C6FE308F86DEC97F600A4A0015F086B021F7F0BCAFDE3DA4D7E38A9AA1E992539389E99412FD22988F53F787B | 200 | 20171129201007 2 6 100 4095 5 D693DF66A6AA48BBECF942D3453355A19560938DE0A34C3E1158E5B9ECD70272CAE9686FAC4B6F64149C85607C158A67DB1C9B7FABD46379269492CB6B7E484D8AD4EA76D75EAD74F6A1E64D29206EC7BFF0630F3663C338039F8D10751AB8A177EEBB41E68434EAE03F7CA3761DE111900DC75F03209D8F6A92E178D94ADC7791D1BA55E7B6943A70D19957E348CA4B2407F89427D3B90979868732C69C221A3747ABCC7A9116D92237A1FDBE81E1ADDDA92F7FC0C15E7436B7C222E7759589919788B718B1F9F48356230B8F061F01FF21CD2DFEB2A1C744F8CBA3765364F1F417E105EDA7EB0ADBF1FD4CF4415B41CDA9BEF3CF6607A097EA2CFE32FA5376C01D1DF3B003FDEAE7571D0C54B5DED4DBBA2C753FB5ED889DD832085D75661CC762BBA28567CD080FB738B61C58ABF9962935C44322F1B96BEBEB594681CD2F20CA9F4D71C23D48E69725D37A4718924C4F145FBE0D841BE7C410A29C45810E240C319BADC04F990C4A84592FF925A73B6FE898F861B0E84D1146EB6856ADF066B11A0AE6915230F8A8E8234B33B5BAC1F3D1C3C05C8562DB51ACCAE2890C937F412D6E963C96965AA36350E8AB2901EE705B25407BC60711D9FC17E7885E5ED413ABBE2C207D55647F82C44367C13F489AD520A2A8FFA64C4F6EAF7AA816717F3019C6D240A4B9D788AFB73EA403523222D1E5940C47CAF304ED9083AC9B87 |
201 | 20170623210958 2 6 100 4095 2 F2D0058FA043FB189699D118DE484B66A10DCE703B27209CFC6D23D9178067C9D560D7D8BA9D4439A22AED66322F25D886C0A5CD41821B49AAE3D7A7B72F9B0E2D823709AF5444C7E9474DF5867E605E638923A2FAD546A86B8014BA460D238A939B445D7489C91977B54AB531D75B0F4264F187218F885129751EC78654F4B21191365FEA1B7FEFC40842BBC07C4F1D1AD153F6A39B582406F6B5895336A1199F7556EE957EAC716AE6678CBE5390730F0EBB3CC5210242A80CB128BFD747ED1B61AF6BBD5B5DC07B34C5CA7AF73D1EE973B93E13918801AEFD674DF92A0AD84BFA2A8CEE1AD26140DA1D5FC0C450A1EAEBC88F8EA8E703A0F3A814E1F6975AA5BE732473575D16F137D2CE5F7A546CE4371ECB5E8052295E122A9CF89A026E2D09BDE56B8B04CC4CAE66CD0C5E0DFE30695DD798C50E39C911C887FEBACAAEFD2BFE7D454E051C432D66AD84680DA7C126F1A9C7C540283CCB863B9414BB536BA358259104ECB406B4976F97558FA4E5854888A8D13C96A14025DA0C55F869F6AF954B1E7AA1D317262C52099860E870A7EAF72F9910ACA809FF2DEA37FCA3EFB31FD43A308E4138E40178BEAC0FBB0E79ED7D1DCF8F8A81A4ABBFE6749F4C1B96BD65A14822490BC0A71E854BC8077C7A8F2C6FE308F86DEC97F600A4A0015F086B021F7F0BCAFDE3DA4D7E38A9AA1E992539389E99412FD22988F57EC8EB | 201 | 20171129202520 2 6 100 4095 5 D693DF66A6AA48BBECF942D3453355A19560938DE0A34C3E1158E5B9ECD70272CAE9686FAC4B6F64149C85607C158A67DB1C9B7FABD46379269492CB6B7E484D8AD4EA76D75EAD74F6A1E64D29206EC7BFF0630F3663C338039F8D10751AB8A177EEBB41E68434EAE03F7CA3761DE111900DC75F03209D8F6A92E178D94ADC7791D1BA55E7B6943A70D19957E348CA4B2407F89427D3B90979868732C69C221A3747ABCC7A9116D92237A1FDBE81E1ADDDA92F7FC0C15E7436B7C222E7759589919788B718B1F9F48356230B8F061F01FF21CD2DFEB2A1C744F8CBA3765364F1F417E105EDA7EB0ADBF1FD4CF4415B41CDA9BEF3CF6607A097EA2CFE32FA5376C01D1DF3B003FDEAE7571D0C54B5DED4DBBA2C753FB5ED889DD832085D75661CC762BBA28567CD080FB738B61C58ABF9962935C44322F1B96BEBEB594681CD2F20CA9F4D71C23D48E69725D37A4718924C4F145FBE0D841BE7C410A29C45810E240C319BADC04F990C4A84592FF925A73B6FE898F861B0E84D1146EB6856ADF066B11A0AE6915230F8A8E8234B33B5BAC1F3D1C3C05C8562DB51ACCAE2890C937F412D6E963C96965AA36350E8AB2901EE705B25407BC60711D9FC17E7885E5ED413ABBE2C207D55647F82C44367C13F489AD520A2A8FFA64C4F6EAF7AA816717F3019C6D240A4B9D788AFB73EA403523222D1E5940C47CAF304ED9084C8A5FF |
202 | 20170623211248 2 6 100 4095 5 F2D0058FA043FB189699D118DE484B66A10DCE703B27209CFC6D23D9178067C9D560D7D8BA9D4439A22AED66322F25D886C0A5CD41821B49AAE3D7A7B72F9B0E2D823709AF5444C7E9474DF5867E605E638923A2FAD546A86B8014BA460D238A939B445D7489C91977B54AB531D75B0F4264F187218F885129751EC78654F4B21191365FEA1B7FEFC40842BBC07C4F1D1AD153F6A39B582406F6B5895336A1199F7556EE957EAC716AE6678CBE5390730F0EBB3CC5210242A80CB128BFD747ED1B61AF6BBD5B5DC07B34C5CA7AF73D1EE973B93E13918801AEFD674DF92A0AD84BFA2A8CEE1AD26140DA1D5FC0C450A1EAEBC88F8EA8E703A0F3A814E1F6975AA5BE732473575D16F137D2CE5F7A546CE4371ECB5E8052295E122A9CF89A026E2D09BDE56B8B04CC4CAE66CD0C5E0DFE30695DD798C50E39C911C887FEBACAAEFD2BFE7D454E051C432D66AD84680DA7C126F1A9C7C540283CCB863B9414BB536BA358259104ECB406B4976F97558FA4E5854888A8D13C96A14025DA0C55F869F6AF954B1E7AA1D317262C52099860E870A7EAF72F9910ACA809FF2DEA37FCA3EFB31FD43A308E4138E40178BEAC0FBB0E79ED7D1DCF8F8A81A4ABBFE6749F4C1B96BD65A14822490BC0A71E854BC8077C7A8F2C6FE308F86DEC97F600A4A0015F086B021F7F0BCAFDE3DA4D7E38A9AA1E992539389E99412FD22988F5B1A9D7 | 202 | 20171129202732 2 6 100 4095 5 D693DF66A6AA48BBECF942D3453355A19560938DE0A34C3E1158E5B9ECD70272CAE9686FAC4B6F64149C85607C158A67DB1C9B7FABD46379269492CB6B7E484D8AD4EA76D75EAD74F6A1E64D29206EC7BFF0630F3663C338039F8D10751AB8A177EEBB41E68434EAE03F7CA3761DE111900DC75F03209D8F6A92E178D94ADC7791D1BA55E7B6943A70D19957E348CA4B2407F89427D3B90979868732C69C221A3747ABCC7A9116D92237A1FDBE81E1ADDDA92F7FC0C15E7436B7C222E7759589919788B718B1F9F48356230B8F061F01FF21CD2DFEB2A1C744F8CBA3765364F1F417E105EDA7EB0ADBF1FD4CF4415B41CDA9BEF3CF6607A097EA2CFE32FA5376C01D1DF3B003FDEAE7571D0C54B5DED4DBBA2C753FB5ED889DD832085D75661CC762BBA28567CD080FB738B61C58ABF9962935C44322F1B96BEBEB594681CD2F20CA9F4D71C23D48E69725D37A4718924C4F145FBE0D841BE7C410A29C45810E240C319BADC04F990C4A84592FF925A73B6FE898F861B0E84D1146EB6856ADF066B11A0AE6915230F8A8E8234B33B5BAC1F3D1C3C05C8562DB51ACCAE2890C937F412D6E963C96965AA36350E8AB2901EE705B25407BC60711D9FC17E7885E5ED413ABBE2C207D55647F82C44367C13F489AD520A2A8FFA64C4F6EAF7AA816717F3019C6D240A4B9D788AFB73EA403523222D1E5940C47CAF304ED9084EB4BAF |
203 | 20170623213826 2 6 100 4095 5 F2D0058FA043FB189699D118DE484B66A10DCE703B27209CFC6D23D9178067C9D560D7D8BA9D4439A22AED66322F25D886C0A5CD41821B49AAE3D7A7B72F9B0E2D823709AF5444C7E9474DF5867E605E638923A2FAD546A86B8014BA460D238A939B445D7489C91977B54AB531D75B0F4264F187218F885129751EC78654F4B21191365FEA1B7FEFC40842BBC07C4F1D1AD153F6A39B582406F6B5895336A1199F7556EE957EAC716AE6678CBE5390730F0EBB3CC5210242A80CB128BFD747ED1B61AF6BBD5B5DC07B34C5CA7AF73D1EE973B93E13918801AEFD674DF92A0AD84BFA2A8CEE1AD26140DA1D5FC0C450A1EAEBC88F8EA8E703A0F3A814E1F6975AA5BE732473575D16F137D2CE5F7A546CE4371ECB5E8052295E122A9CF89A026E2D09BDE56B8B04CC4CAE66CD0C5E0DFE30695DD798C50E39C911C887FEBACAAEFD2BFE7D454E051C432D66AD84680DA7C126F1A9C7C540283CCB863B9414BB536BA358259104ECB406B4976F97558FA4E5854888A8D13C96A14025DA0C55F869F6AF954B1E7AA1D317262C52099860E870A7EAF72F9910ACA809FF2DEA37FCA3EFB31FD43A308E4138E40178BEAC0FBB0E79ED7D1DCF8F8A81A4ABBFE6749F4C1B96BD65A14822490BC0A71E854BC8077C7A8F2C6FE308F86DEC97F600A4A0015F086B021F7F0BCAFDE3DA4D7E38A9AA1E992539389E99412FD22988F7B2A7AF | 203 | 20171129203556 2 6 100 4095 5 D693DF66A6AA48BBECF942D3453355A19560938DE0A34C3E1158E5B9ECD70272CAE9686FAC4B6F64149C85607C158A67DB1C9B7FABD46379269492CB6B7E484D8AD4EA76D75EAD74F6A1E64D29206EC7BFF0630F3663C338039F8D10751AB8A177EEBB41E68434EAE03F7CA3761DE111900DC75F03209D8F6A92E178D94ADC7791D1BA55E7B6943A70D19957E348CA4B2407F89427D3B90979868732C69C221A3747ABCC7A9116D92237A1FDBE81E1ADDDA92F7FC0C15E7436B7C222E7759589919788B718B1F9F48356230B8F061F01FF21CD2DFEB2A1C744F8CBA3765364F1F417E105EDA7EB0ADBF1FD4CF4415B41CDA9BEF3CF6607A097EA2CFE32FA5376C01D1DF3B003FDEAE7571D0C54B5DED4DBBA2C753FB5ED889DD832085D75661CC762BBA28567CD080FB738B61C58ABF9962935C44322F1B96BEBEB594681CD2F20CA9F4D71C23D48E69725D37A4718924C4F145FBE0D841BE7C410A29C45810E240C319BADC04F990C4A84592FF925A73B6FE898F861B0E84D1146EB6856ADF066B11A0AE6915230F8A8E8234B33B5BAC1F3D1C3C05C8562DB51ACCAE2890C937F412D6E963C96965AA36350E8AB2901EE705B25407BC60711D9FC17E7885E5ED413ABBE2C207D55647F82C44367C13F489AD520A2A8FFA64C4F6EAF7AA816717F3019C6D240A4B9D788AFB73EA403523222D1E5940C47CAF304ED9085801D57 |
204 | 20170623213924 2 6 100 4095 2 F2D0058FA043FB189699D118DE484B66A10DCE703B27209CFC6D23D9178067C9D560D7D8BA9D4439A22AED66322F25D886C0A5CD41821B49AAE3D7A7B72F9B0E2D823709AF5444C7E9474DF5867E605E638923A2FAD546A86B8014BA460D238A939B445D7489C91977B54AB531D75B0F4264F187218F885129751EC78654F4B21191365FEA1B7FEFC40842BBC07C4F1D1AD153F6A39B582406F6B5895336A1199F7556EE957EAC716AE6678CBE5390730F0EBB3CC5210242A80CB128BFD747ED1B61AF6BBD5B5DC07B34C5CA7AF73D1EE973B93E13918801AEFD674DF92A0AD84BFA2A8CEE1AD26140DA1D5FC0C450A1EAEBC88F8EA8E703A0F3A814E1F6975AA5BE732473575D16F137D2CE5F7A546CE4371ECB5E8052295E122A9CF89A026E2D09BDE56B8B04CC4CAE66CD0C5E0DFE30695DD798C50E39C911C887FEBACAAEFD2BFE7D454E051C432D66AD84680DA7C126F1A9C7C540283CCB863B9414BB536BA358259104ECB406B4976F97558FA4E5854888A8D13C96A14025DA0C55F869F6AF954B1E7AA1D317262C52099860E870A7EAF72F9910ACA809FF2DEA37FCA3EFB31FD43A308E4138E40178BEAC0FBB0E79ED7D1DCF8F8A81A4ABBFE6749F4C1B96BD65A14822490BC0A71E854BC8077C7A8F2C6FE308F86DEC97F600A4A0015F086B021F7F0BCAFDE3DA4D7E38A9AA1E992539389E99412FD22988F7BDBA73 | 204 | 20171129204816 2 6 100 4095 2 D693DF66A6AA48BBECF942D3453355A19560938DE0A34C3E1158E5B9ECD70272CAE9686FAC4B6F64149C85607C158A67DB1C9B7FABD46379269492CB6B7E484D8AD4EA76D75EAD74F6A1E64D29206EC7BFF0630F3663C338039F8D10751AB8A177EEBB41E68434EAE03F7CA3761DE111900DC75F03209D8F6A92E178D94ADC7791D1BA55E7B6943A70D19957E348CA4B2407F89427D3B90979868732C69C221A3747ABCC7A9116D92237A1FDBE81E1ADDDA92F7FC0C15E7436B7C222E7759589919788B718B1F9F48356230B8F061F01FF21CD2DFEB2A1C744F8CBA3765364F1F417E105EDA7EB0ADBF1FD4CF4415B41CDA9BEF3CF6607A097EA2CFE32FA5376C01D1DF3B003FDEAE7571D0C54B5DED4DBBA2C753FB5ED889DD832085D75661CC762BBA28567CD080FB738B61C58ABF9962935C44322F1B96BEBEB594681CD2F20CA9F4D71C23D48E69725D37A4718924C4F145FBE0D841BE7C410A29C45810E240C319BADC04F990C4A84592FF925A73B6FE898F861B0E84D1146EB6856ADF066B11A0AE6915230F8A8E8234B33B5BAC1F3D1C3C05C8562DB51ACCAE2890C937F412D6E963C96965AA36350E8AB2901EE705B25407BC60711D9FC17E7885E5ED413ABBE2C207D55647F82C44367C13F489AD520A2A8FFA64C4F6EAF7AA816717F3019C6D240A4B9D788AFB73EA403523222D1E5940C47CAF304ED908664D7C3 |
205 | 20170623214723 2 6 100 4095 5 F2D0058FA043FB189699D118DE484B66A10DCE703B27209CFC6D23D9178067C9D560D7D8BA9D4439A22AED66322F25D886C0A5CD41821B49AAE3D7A7B72F9B0E2D823709AF5444C7E9474DF5867E605E638923A2FAD546A86B8014BA460D238A939B445D7489C91977B54AB531D75B0F4264F187218F885129751EC78654F4B21191365FEA1B7FEFC40842BBC07C4F1D1AD153F6A39B582406F6B5895336A1199F7556EE957EAC716AE6678CBE5390730F0EBB3CC5210242A80CB128BFD747ED1B61AF6BBD5B5DC07B34C5CA7AF73D1EE973B93E13918801AEFD674DF92A0AD84BFA2A8CEE1AD26140DA1D5FC0C450A1EAEBC88F8EA8E703A0F3A814E1F6975AA5BE732473575D16F137D2CE5F7A546CE4371ECB5E8052295E122A9CF89A026E2D09BDE56B8B04CC4CAE66CD0C5E0DFE30695DD798C50E39C911C887FEBACAAEFD2BFE7D454E051C432D66AD84680DA7C126F1A9C7C540283CCB863B9414BB536BA358259104ECB406B4976F97558FA4E5854888A8D13C96A14025DA0C55F869F6AF954B1E7AA1D317262C52099860E870A7EAF72F9910ACA809FF2DEA37FCA3EFB31FD43A308E4138E40178BEAC0FBB0E79ED7D1DCF8F8A81A4ABBFE6749F4C1B96BD65A14822490BC0A71E854BC8077C7A8F2C6FE308F86DEC97F600A4A0015F086B021F7F0BCAFDE3DA4D7E38A9AA1E992539389E99412FD22988F8513E37 | 205 | 20171129205307 2 6 100 4095 2 D693DF66A6AA48BBECF942D3453355A19560938DE0A34C3E1158E5B9ECD70272CAE9686FAC4B6F64149C85607C158A67DB1C9B7FABD46379269492CB6B7E484D8AD4EA76D75EAD74F6A1E64D29206EC7BFF0630F3663C338039F8D10751AB8A177EEBB41E68434EAE03F7CA3761DE111900DC75F03209D8F6A92E178D94ADC7791D1BA55E7B6943A70D19957E348CA4B2407F89427D3B90979868732C69C221A3747ABCC7A9116D92237A1FDBE81E1ADDDA92F7FC0C15E7436B7C222E7759589919788B718B1F9F48356230B8F061F01FF21CD2DFEB2A1C744F8CBA3765364F1F417E105EDA7EB0ADBF1FD4CF4415B41CDA9BEF3CF6607A097EA2CFE32FA5376C01D1DF3B003FDEAE7571D0C54B5DED4DBBA2C753FB5ED889DD832085D75661CC762BBA28567CD080FB738B61C58ABF9962935C44322F1B96BEBEB594681CD2F20CA9F4D71C23D48E69725D37A4718924C4F145FBE0D841BE7C410A29C45810E240C319BADC04F990C4A84592FF925A73B6FE898F861B0E84D1146EB6856ADF066B11A0AE6915230F8A8E8234B33B5BAC1F3D1C3C05C8562DB51ACCAE2890C937F412D6E963C96965AA36350E8AB2901EE705B25407BC60711D9FC17E7885E5ED413ABBE2C207D55647F82C44367C13F489AD520A2A8FFA64C4F6EAF7AA816717F3019C6D240A4B9D788AFB73EA403523222D1E5940C47CAF304ED9086BA916B |
206 | 20170623233949 2 6 100 6143 2 E30D9BCD65DA0EAEF6A1D4D083834D4724538836AE04DFB6A7DAF235F5D9992B7E42128D43E229BF4906EF0C6A27F60B95A1FC514C2D55A0D616B3B6924F08E9C0BCD8AE1CB624F645785C2AA552C94E125D6602CF63CF52014A1B0A4AE0DE823B03B6ABFA25839ABC3E8E050C295B8B3471EC58EAD9B659294C72EA65229E4E8EB21CA79CBB41BB552118A3CD32108E51D5FCE5C46A6CD03E4246CB57E32BAA09B15503FBFA4F4C943B2378F10EE312C1F12A14010AFD1698B8EBCCFC8D0DF17829A153199154EBF9E40FD81B8E1AF5881D0EC1D3BEDB2D0F1DB9C44C9D8E7047310623D4FAAE28D2C16612CFB9AE9A8FD05B8FE22930346ECF7B21B5800778EA0D5D3B7BDF18B03ABF33C9D0B4648CF687ED229C811CE290CFAF94F9C9AF4EC3E47480955E5C81E85DA9EBCE99652DA07225C7CCEF39E224556E48D6371981C7232E00F3419F7B335FF36FE3989558277654DB356063ABC8F7BD0EF828B40D3BFC06D12FEC51278ACD32C3B67D4E2A0BBA1E20BDDA06DB9AF6AB250179DE3332EAC0A6D381963B51E8E167B8285BA3E6538B1D38B16B32196ABE009ADFDAF5E686E0107F76ED10414B6249D6895188456505CDB897FFCCEB8931802F87C02DFDC62825C6255DF2654712BE230CC86A30229D9E3438DB35CEED8F8447B9209CDECFC1776D2C43B4B98E9EEA3F4C049C1287CDB4540D395A4BC992602150CCC0479597E221E201B778DCA9701C517C89B95004FC19373ED9755C90FF32C44013678876EAD3FE5E637BF2F1959130EAF79E7A93088F52AA0AC993324294536CF3787C3A3F06F2DC201A070967E6F4525803DC83F5160B560465A4CE4BF20315858BE0E62A07C55B3A772CBF93DE99AADFCB304D2B544A9F17A22C2BEB791D98F714CA7CFF701CB7CAEC55C292A25A147935D7BBD1E66F2ED3EBC66E763209169033CE5A2D9884DC0CBAFF37517372544E1EB780A26CC71E5649EDFD5DA2FCFB58093D74D76FC2DAEC54567104701C31E3872C15BAC5F2A96833EEDAB9B7FF731F827DB3273D271BA8F9DE06181C1E38D031896971D801C571954337D915376BC3 | 206 | 20171129211738 2 6 100 4095 2 D693DF66A6AA48BBECF942D3453355A19560938DE0A34C3E1158E5B9ECD70272CAE9686FAC4B6F64149C85607C158A67DB1C9B7FABD46379269492CB6B7E484D8AD4EA76D75EAD74F6A1E64D29206EC7BFF0630F3663C338039F8D10751AB8A177EEBB41E68434EAE03F7CA3761DE111900DC75F03209D8F6A92E178D94ADC7791D1BA55E7B6943A70D19957E348CA4B2407F89427D3B90979868732C69C221A3747ABCC7A9116D92237A1FDBE81E1ADDDA92F7FC0C15E7436B7C222E7759589919788B718B1F9F48356230B8F061F01FF21CD2DFEB2A1C744F8CBA3765364F1F417E105EDA7EB0ADBF1FD4CF4415B41CDA9BEF3CF6607A097EA2CFE32FA5376C01D1DF3B003FDEAE7571D0C54B5DED4DBBA2C753FB5ED889DD832085D75661CC762BBA28567CD080FB738B61C58ABF9962935C44322F1B96BEBEB594681CD2F20CA9F4D71C23D48E69725D37A4718924C4F145FBE0D841BE7C410A29C45810E240C319BADC04F990C4A84592FF925A73B6FE898F861B0E84D1146EB6856ADF066B11A0AE6915230F8A8E8234B33B5BAC1F3D1C3C05C8562DB51ACCAE2890C937F412D6E963C96965AA36350E8AB2901EE705B25407BC60711D9FC17E7885E5ED413ABBE2C207D55647F82C44367C13F489AD520A2A8FFA64C4F6EAF7AA816717F3019C6D240A4B9D788AFB73EA403523222D1E5940C47CAF304ED9088852733 |
207 | 20170624020214 2 6 100 6143 5 E30D9BCD65DA0EAEF6A1D4D083834D4724538836AE04DFB6A7DAF235F5D9992B7E42128D43E229BF4906EF0C6A27F60B95A1FC514C2D55A0D616B3B6924F08E9C0BCD8AE1CB624F645785C2AA552C94E125D6602CF63CF52014A1B0A4AE0DE823B03B6ABFA25839ABC3E8E050C295B8B3471EC58EAD9B659294C72EA65229E4E8EB21CA79CBB41BB552118A3CD32108E51D5FCE5C46A6CD03E4246CB57E32BAA09B15503FBFA4F4C943B2378F10EE312C1F12A14010AFD1698B8EBCCFC8D0DF17829A153199154EBF9E40FD81B8E1AF5881D0EC1D3BEDB2D0F1DB9C44C9D8E7047310623D4FAAE28D2C16612CFB9AE9A8FD05B8FE22930346ECF7B21B5800778EA0D5D3B7BDF18B03ABF33C9D0B4648CF687ED229C811CE290CFAF94F9C9AF4EC3E47480955E5C81E85DA9EBCE99652DA07225C7CCEF39E224556E48D6371981C7232E00F3419F7B335FF36FE3989558277654DB356063ABC8F7BD0EF828B40D3BFC06D12FEC51278ACD32C3B67D4E2A0BBA1E20BDDA06DB9AF6AB250179DE3332EAC0A6D381963B51E8E167B8285BA3E6538B1D38B16B32196ABE009ADFDAF5E686E0107F76ED10414B6249D6895188456505CDB897FFCCEB8931802F87C02DFDC62825C6255DF2654712BE230CC86A30229D9E3438DB35CEED8F8447B9209CDECFC1776D2C43B4B98E9EEA3F4C049C1287CDB4540D395A4BC992602150CCC0479597E221E201B778DCA9701C517C89B95004FC19373ED9755C90FF32C44013678876EAD3FE5E637BF2F1959130EAF79E7A93088F52AA0AC993324294536CF3787C3A3F06F2DC201A070967E6F4525803DC83F5160B560465A4CE4BF20315858BE0E62A07C55B3A772CBF93DE99AADFCB304D2B544A9F17A22C2BEB791D98F714CA7CFF701CB7CAEC55C292A25A147935D7BBD1E66F2ED3EBC66E763209169033CE5A2D9884DC0CBAFF37517372544E1EB780A26CC71E5649EDFD5DA2FCFB58093D74D76FC2DAEC54567104701C31E3872C15BAC5F2A96833EEDAB9B7FF731F827DB3273D271BA8F9DE06181C1E38D031896971D801C571954337D918FF036F | 207 | 20171129212245 2 6 100 4095 2 D693DF66A6AA48BBECF942D3453355A19560938DE0A34C3E1158E5B9ECD70272CAE9686FAC4B6F64149C85607C158A67DB1C9B7FABD46379269492CB6B7E484D8AD4EA76D75EAD74F6A1E64D29206EC7BFF0630F3663C338039F8D10751AB8A177EEBB41E68434EAE03F7CA3761DE111900DC75F03209D8F6A92E178D94ADC7791D1BA55E7B6943A70D19957E348CA4B2407F89427D3B90979868732C69C221A3747ABCC7A9116D92237A1FDBE81E1ADDDA92F7FC0C15E7436B7C222E7759589919788B718B1F9F48356230B8F061F01FF21CD2DFEB2A1C744F8CBA3765364F1F417E105EDA7EB0ADBF1FD4CF4415B41CDA9BEF3CF6607A097EA2CFE32FA5376C01D1DF3B003FDEAE7571D0C54B5DED4DBBA2C753FB5ED889DD832085D75661CC762BBA28567CD080FB738B61C58ABF9962935C44322F1B96BEBEB594681CD2F20CA9F4D71C23D48E69725D37A4718924C4F145FBE0D841BE7C410A29C45810E240C319BADC04F990C4A84592FF925A73B6FE898F861B0E84D1146EB6856ADF066B11A0AE6915230F8A8E8234B33B5BAC1F3D1C3C05C8562DB51ACCAE2890C937F412D6E963C96965AA36350E8AB2901EE705B25407BC60711D9FC17E7885E5ED413ABBE2C207D55647F82C44367C13F489AD520A2A8FFA64C4F6EAF7AA816717F3019C6D240A4B9D788AFB73EA403523222D1E5940C47CAF304ED9088DFD4A3 |
208 | 20170624030028 2 6 100 6143 5 E30D9BCD65DA0EAEF6A1D4D083834D4724538836AE04DFB6A7DAF235F5D9992B7E42128D43E229BF4906EF0C6A27F60B95A1FC514C2D55A0D616B3B6924F08E9C0BCD8AE1CB624F645785C2AA552C94E125D6602CF63CF52014A1B0A4AE0DE823B03B6ABFA25839ABC3E8E050C295B8B3471EC58EAD9B659294C72EA65229E4E8EB21CA79CBB41BB552118A3CD32108E51D5FCE5C46A6CD03E4246CB57E32BAA09B15503FBFA4F4C943B2378F10EE312C1F12A14010AFD1698B8EBCCFC8D0DF17829A153199154EBF9E40FD81B8E1AF5881D0EC1D3BEDB2D0F1DB9C44C9D8E7047310623D4FAAE28D2C16612CFB9AE9A8FD05B8FE22930346ECF7B21B5800778EA0D5D3B7BDF18B03ABF33C9D0B4648CF687ED229C811CE290CFAF94F9C9AF4EC3E47480955E5C81E85DA9EBCE99652DA07225C7CCEF39E224556E48D6371981C7232E00F3419F7B335FF36FE3989558277654DB356063ABC8F7BD0EF828B40D3BFC06D12FEC51278ACD32C3B67D4E2A0BBA1E20BDDA06DB9AF6AB250179DE3332EAC0A6D381963B51E8E167B8285BA3E6538B1D38B16B32196ABE009ADFDAF5E686E0107F76ED10414B6249D6895188456505CDB897FFCCEB8931802F87C02DFDC62825C6255DF2654712BE230CC86A30229D9E3438DB35CEED8F8447B9209CDECFC1776D2C43B4B98E9EEA3F4C049C1287CDB4540D395A4BC992602150CCC0479597E221E201B778DCA9701C517C89B95004FC19373ED9755C90FF32C44013678876EAD3FE5E637BF2F1959130EAF79E7A93088F52AA0AC993324294536CF3787C3A3F06F2DC201A070967E6F4525803DC83F5160B560465A4CE4BF20315858BE0E62A07C55B3A772CBF93DE99AADFCB304D2B544A9F17A22C2BEB791D98F714CA7CFF701CB7CAEC55C292A25A147935D7BBD1E66F2ED3EBC66E763209169033CE5A2D9884DC0CBAFF37517372544E1EB780A26CC71E5649EDFD5DA2FCFB58093D74D76FC2DAEC54567104701C31E3872C15BAC5F2A96833EEDAB9B7FF731F827DB3273D271BA8F9DE06181C1E38D031896971D801C571954337D91A80668F | 208 | 20171129212444 2 6 100 4095 2 D693DF66A6AA48BBECF942D3453355A19560938DE0A34C3E1158E5B9ECD70272CAE9686FAC4B6F64149C85607C158A67DB1C9B7FABD46379269492CB6B7E484D8AD4EA76D75EAD74F6A1E64D29206EC7BFF0630F3663C338039F8D10751AB8A177EEBB41E68434EAE03F7CA3761DE111900DC75F03209D8F6A92E178D94ADC7791D1BA55E7B6943A70D19957E348CA4B2407F89427D3B90979868732C69C221A3747ABCC7A9116D92237A1FDBE81E1ADDDA92F7FC0C15E7436B7C222E7759589919788B718B1F9F48356230B8F061F01FF21CD2DFEB2A1C744F8CBA3765364F1F417E105EDA7EB0ADBF1FD4CF4415B41CDA9BEF3CF6607A097EA2CFE32FA5376C01D1DF3B003FDEAE7571D0C54B5DED4DBBA2C753FB5ED889DD832085D75661CC762BBA28567CD080FB738B61C58ABF9962935C44322F1B96BEBEB594681CD2F20CA9F4D71C23D48E69725D37A4718924C4F145FBE0D841BE7C410A29C45810E240C319BADC04F990C4A84592FF925A73B6FE898F861B0E84D1146EB6856ADF066B11A0AE6915230F8A8E8234B33B5BAC1F3D1C3C05C8562DB51ACCAE2890C937F412D6E963C96965AA36350E8AB2901EE705B25407BC60711D9FC17E7885E5ED413ABBE2C207D55647F82C44367C13F489AD520A2A8FFA64C4F6EAF7AA816717F3019C6D240A4B9D788AFB73EA403523222D1E5940C47CAF304ED9088FEF233 |
209 | 20170624033630 2 6 100 6143 2 E30D9BCD65DA0EAEF6A1D4D083834D4724538836AE04DFB6A7DAF235F5D9992B7E42128D43E229BF4906EF0C6A27F60B95A1FC514C2D55A0D616B3B6924F08E9C0BCD8AE1CB624F645785C2AA552C94E125D6602CF63CF52014A1B0A4AE0DE823B03B6ABFA25839ABC3E8E050C295B8B3471EC58EAD9B659294C72EA65229E4E8EB21CA79CBB41BB552118A3CD32108E51D5FCE5C46A6CD03E4246CB57E32BAA09B15503FBFA4F4C943B2378F10EE312C1F12A14010AFD1698B8EBCCFC8D0DF17829A153199154EBF9E40FD81B8E1AF5881D0EC1D3BEDB2D0F1DB9C44C9D8E7047310623D4FAAE28D2C16612CFB9AE9A8FD05B8FE22930346ECF7B21B5800778EA0D5D3B7BDF18B03ABF33C9D0B4648CF687ED229C811CE290CFAF94F9C9AF4EC3E47480955E5C81E85DA9EBCE99652DA07225C7CCEF39E224556E48D6371981C7232E00F3419F7B335FF36FE3989558277654DB356063ABC8F7BD0EF828B40D3BFC06D12FEC51278ACD32C3B67D4E2A0BBA1E20BDDA06DB9AF6AB250179DE3332EAC0A6D381963B51E8E167B8285BA3E6538B1D38B16B32196ABE009ADFDAF5E686E0107F76ED10414B6249D6895188456505CDB897FFCCEB8931802F87C02DFDC62825C6255DF2654712BE230CC86A30229D9E3438DB35CEED8F8447B9209CDECFC1776D2C43B4B98E9EEA3F4C049C1287CDB4540D395A4BC992602150CCC0479597E221E201B778DCA9701C517C89B95004FC19373ED9755C90FF32C44013678876EAD3FE5E637BF2F1959130EAF79E7A93088F52AA0AC993324294536CF3787C3A3F06F2DC201A070967E6F4525803DC83F5160B560465A4CE4BF20315858BE0E62A07C55B3A772CBF93DE99AADFCB304D2B544A9F17A22C2BEB791D98F714CA7CFF701CB7CAEC55C292A25A147935D7BBD1E66F2ED3EBC66E763209169033CE5A2D9884DC0CBAFF37517372544E1EB780A26CC71E5649EDFD5DA2FCFB58093D74D76FC2DAEC54567104701C31E3872C15BAC5F2A96833EEDAB9B7FF731F827DB3273D271BA8F9DE06181C1E38D031896971D801C571954337D91B697BC3 | 209 | 20171129213520 2 6 100 4095 2 D693DF66A6AA48BBECF942D3453355A19560938DE0A34C3E1158E5B9ECD70272CAE9686FAC4B6F64149C85607C158A67DB1C9B7FABD46379269492CB6B7E484D8AD4EA76D75EAD74F6A1E64D29206EC7BFF0630F3663C338039F8D10751AB8A177EEBB41E68434EAE03F7CA3761DE111900DC75F03209D8F6A92E178D94ADC7791D1BA55E7B6943A70D19957E348CA4B2407F89427D3B90979868732C69C221A3747ABCC7A9116D92237A1FDBE81E1ADDDA92F7FC0C15E7436B7C222E7759589919788B718B1F9F48356230B8F061F01FF21CD2DFEB2A1C744F8CBA3765364F1F417E105EDA7EB0ADBF1FD4CF4415B41CDA9BEF3CF6607A097EA2CFE32FA5376C01D1DF3B003FDEAE7571D0C54B5DED4DBBA2C753FB5ED889DD832085D75661CC762BBA28567CD080FB738B61C58ABF9962935C44322F1B96BEBEB594681CD2F20CA9F4D71C23D48E69725D37A4718924C4F145FBE0D841BE7C410A29C45810E240C319BADC04F990C4A84592FF925A73B6FE898F861B0E84D1146EB6856ADF066B11A0AE6915230F8A8E8234B33B5BAC1F3D1C3C05C8562DB51ACCAE2890C937F412D6E963C96965AA36350E8AB2901EE705B25407BC60711D9FC17E7885E5ED413ABBE2C207D55647F82C44367C13F489AD520A2A8FFA64C4F6EAF7AA816717F3019C6D240A4B9D788AFB73EA403523222D1E5940C47CAF304ED9089C4756B |
210 | 20170624052652 2 6 100 6143 2 E30D9BCD65DA0EAEF6A1D4D083834D4724538836AE04DFB6A7DAF235F5D9992B7E42128D43E229BF4906EF0C6A27F60B95A1FC514C2D55A0D616B3B6924F08E9C0BCD8AE1CB624F645785C2AA552C94E125D6602CF63CF52014A1B0A4AE0DE823B03B6ABFA25839ABC3E8E050C295B8B3471EC58EAD9B659294C72EA65229E4E8EB21CA79CBB41BB552118A3CD32108E51D5FCE5C46A6CD03E4246CB57E32BAA09B15503FBFA4F4C943B2378F10EE312C1F12A14010AFD1698B8EBCCFC8D0DF17829A153199154EBF9E40FD81B8E1AF5881D0EC1D3BEDB2D0F1DB9C44C9D8E7047310623D4FAAE28D2C16612CFB9AE9A8FD05B8FE22930346ECF7B21B5800778EA0D5D3B7BDF18B03ABF33C9D0B4648CF687ED229C811CE290CFAF94F9C9AF4EC3E47480955E5C81E85DA9EBCE99652DA07225C7CCEF39E224556E48D6371981C7232E00F3419F7B335FF36FE3989558277654DB356063ABC8F7BD0EF828B40D3BFC06D12FEC51278ACD32C3B67D4E2A0BBA1E20BDDA06DB9AF6AB250179DE3332EAC0A6D381963B51E8E167B8285BA3E6538B1D38B16B32196ABE009ADFDAF5E686E0107F76ED10414B6249D6895188456505CDB897FFCCEB8931802F87C02DFDC62825C6255DF2654712BE230CC86A30229D9E3438DB35CEED8F8447B9209CDECFC1776D2C43B4B98E9EEA3F4C049C1287CDB4540D395A4BC992602150CCC0479597E221E201B778DCA9701C517C89B95004FC19373ED9755C90FF32C44013678876EAD3FE5E637BF2F1959130EAF79E7A93088F52AA0AC993324294536CF3787C3A3F06F2DC201A070967E6F4525803DC83F5160B560465A4CE4BF20315858BE0E62A07C55B3A772CBF93DE99AADFCB304D2B544A9F17A22C2BEB791D98F714CA7CFF701CB7CAEC55C292A25A147935D7BBD1E66F2ED3EBC66E763209169033CE5A2D9884DC0CBAFF37517372544E1EB780A26CC71E5649EDFD5DA2FCFB58093D74D76FC2DAEC54567104701C31E3872C15BAC5F2A96833EEDAB9B7FF731F827DB3273D271BA8F9DE06181C1E38D031896971D801C571954337D91E5556DB | 210 | 20171129214659 2 6 100 4095 5 D693DF66A6AA48BBECF942D3453355A19560938DE0A34C3E1158E5B9ECD70272CAE9686FAC4B6F64149C85607C158A67DB1C9B7FABD46379269492CB6B7E484D8AD4EA76D75EAD74F6A1E64D29206EC7BFF0630F3663C338039F8D10751AB8A177EEBB41E68434EAE03F7CA3761DE111900DC75F03209D8F6A92E178D94ADC7791D1BA55E7B6943A70D19957E348CA4B2407F89427D3B90979868732C69C221A3747ABCC7A9116D92237A1FDBE81E1ADDDA92F7FC0C15E7436B7C222E7759589919788B718B1F9F48356230B8F061F01FF21CD2DFEB2A1C744F8CBA3765364F1F417E105EDA7EB0ADBF1FD4CF4415B41CDA9BEF3CF6607A097EA2CFE32FA5376C01D1DF3B003FDEAE7571D0C54B5DED4DBBA2C753FB5ED889DD832085D75661CC762BBA28567CD080FB738B61C58ABF9962935C44322F1B96BEBEB594681CD2F20CA9F4D71C23D48E69725D37A4718924C4F145FBE0D841BE7C410A29C45810E240C319BADC04F990C4A84592FF925A73B6FE898F861B0E84D1146EB6856ADF066B11A0AE6915230F8A8E8234B33B5BAC1F3D1C3C05C8562DB51ACCAE2890C937F412D6E963C96965AA36350E8AB2901EE705B25407BC60711D9FC17E7885E5ED413ABBE2C207D55647F82C44367C13F489AD520A2A8FFA64C4F6EAF7AA816717F3019C6D240A4B9D788AFB73EA403523222D1E5940C47CAF304ED908A9732EF |
211 | 20170624075515 2 6 100 6143 2 E30D9BCD65DA0EAEF6A1D4D083834D4724538836AE04DFB6A7DAF235F5D9992B7E42128D43E229BF4906EF0C6A27F60B95A1FC514C2D55A0D616B3B6924F08E9C0BCD8AE1CB624F645785C2AA552C94E125D6602CF63CF52014A1B0A4AE0DE823B03B6ABFA25839ABC3E8E050C295B8B3471EC58EAD9B659294C72EA65229E4E8EB21CA79CBB41BB552118A3CD32108E51D5FCE5C46A6CD03E4246CB57E32BAA09B15503FBFA4F4C943B2378F10EE312C1F12A14010AFD1698B8EBCCFC8D0DF17829A153199154EBF9E40FD81B8E1AF5881D0EC1D3BEDB2D0F1DB9C44C9D8E7047310623D4FAAE28D2C16612CFB9AE9A8FD05B8FE22930346ECF7B21B5800778EA0D5D3B7BDF18B03ABF33C9D0B4648CF687ED229C811CE290CFAF94F9C9AF4EC3E47480955E5C81E85DA9EBCE99652DA07225C7CCEF39E224556E48D6371981C7232E00F3419F7B335FF36FE3989558277654DB356063ABC8F7BD0EF828B40D3BFC06D12FEC51278ACD32C3B67D4E2A0BBA1E20BDDA06DB9AF6AB250179DE3332EAC0A6D381963B51E8E167B8285BA3E6538B1D38B16B32196ABE009ADFDAF5E686E0107F76ED10414B6249D6895188456505CDB897FFCCEB8931802F87C02DFDC62825C6255DF2654712BE230CC86A30229D9E3438DB35CEED8F8447B9209CDECFC1776D2C43B4B98E9EEA3F4C049C1287CDB4540D395A4BC992602150CCC0479597E221E201B778DCA9701C517C89B95004FC19373ED9755C90FF32C44013678876EAD3FE5E637BF2F1959130EAF79E7A93088F52AA0AC993324294536CF3787C3A3F06F2DC201A070967E6F4525803DC83F5160B560465A4CE4BF20315858BE0E62A07C55B3A772CBF93DE99AADFCB304D2B544A9F17A22C2BEB791D98F714CA7CFF701CB7CAEC55C292A25A147935D7BBD1E66F2ED3EBC66E763209169033CE5A2D9884DC0CBAFF37517372544E1EB780A26CC71E5649EDFD5DA2FCFB58093D74D76FC2DAEC54567104701C31E3872C15BAC5F2A96833EEDAB9B7FF731F827DB3273D271BA8F9DE06181C1E38D031896971D801C571954337D922262F73 | 211 | 20171129215106 2 6 100 4095 2 D693DF66A6AA48BBECF942D3453355A19560938DE0A34C3E1158E5B9ECD70272CAE9686FAC4B6F64149C85607C158A67DB1C9B7FABD46379269492CB6B7E484D8AD4EA76D75EAD74F6A1E64D29206EC7BFF0630F3663C338039F8D10751AB8A177EEBB41E68434EAE03F7CA3761DE111900DC75F03209D8F6A92E178D94ADC7791D1BA55E7B6943A70D19957E348CA4B2407F89427D3B90979868732C69C221A3747ABCC7A9116D92237A1FDBE81E1ADDDA92F7FC0C15E7436B7C222E7759589919788B718B1F9F48356230B8F061F01FF21CD2DFEB2A1C744F8CBA3765364F1F417E105EDA7EB0ADBF1FD4CF4415B41CDA9BEF3CF6607A097EA2CFE32FA5376C01D1DF3B003FDEAE7571D0C54B5DED4DBBA2C753FB5ED889DD832085D75661CC762BBA28567CD080FB738B61C58ABF9962935C44322F1B96BEBEB594681CD2F20CA9F4D71C23D48E69725D37A4718924C4F145FBE0D841BE7C410A29C45810E240C319BADC04F990C4A84592FF925A73B6FE898F861B0E84D1146EB6856ADF066B11A0AE6915230F8A8E8234B33B5BAC1F3D1C3C05C8562DB51ACCAE2890C937F412D6E963C96965AA36350E8AB2901EE705B25407BC60711D9FC17E7885E5ED413ABBE2C207D55647F82C44367C13F489AD520A2A8FFA64C4F6EAF7AA816717F3019C6D240A4B9D788AFB73EA403523222D1E5940C47CAF304ED908ADCE773 |
212 | 20170624103157 2 6 100 6143 5 E30D9BCD65DA0EAEF6A1D4D083834D4724538836AE04DFB6A7DAF235F5D9992B7E42128D43E229BF4906EF0C6A27F60B95A1FC514C2D55A0D616B3B6924F08E9C0BCD8AE1CB624F645785C2AA552C94E125D6602CF63CF52014A1B0A4AE0DE823B03B6ABFA25839ABC3E8E050C295B8B3471EC58EAD9B659294C72EA65229E4E8EB21CA79CBB41BB552118A3CD32108E51D5FCE5C46A6CD03E4246CB57E32BAA09B15503FBFA4F4C943B2378F10EE312C1F12A14010AFD1698B8EBCCFC8D0DF17829A153199154EBF9E40FD81B8E1AF5881D0EC1D3BEDB2D0F1DB9C44C9D8E7047310623D4FAAE28D2C16612CFB9AE9A8FD05B8FE22930346ECF7B21B5800778EA0D5D3B7BDF18B03ABF33C9D0B4648CF687ED229C811CE290CFAF94F9C9AF4EC3E47480955E5C81E85DA9EBCE99652DA07225C7CCEF39E224556E48D6371981C7232E00F3419F7B335FF36FE3989558277654DB356063ABC8F7BD0EF828B40D3BFC06D12FEC51278ACD32C3B67D4E2A0BBA1E20BDDA06DB9AF6AB250179DE3332EAC0A6D381963B51E8E167B8285BA3E6538B1D38B16B32196ABE009ADFDAF5E686E0107F76ED10414B6249D6895188456505CDB897FFCCEB8931802F87C02DFDC62825C6255DF2654712BE230CC86A30229D9E3438DB35CEED8F8447B9209CDECFC1776D2C43B4B98E9EEA3F4C049C1287CDB4540D395A4BC992602150CCC0479597E221E201B778DCA9701C517C89B95004FC19373ED9755C90FF32C44013678876EAD3FE5E637BF2F1959130EAF79E7A93088F52AA0AC993324294536CF3787C3A3F06F2DC201A070967E6F4525803DC83F5160B560465A4CE4BF20315858BE0E62A07C55B3A772CBF93DE99AADFCB304D2B544A9F17A22C2BEB791D98F714CA7CFF701CB7CAEC55C292A25A147935D7BBD1E66F2ED3EBC66E763209169033CE5A2D9884DC0CBAFF37517372544E1EB780A26CC71E5649EDFD5DA2FCFB58093D74D76FC2DAEC54567104701C31E3872C15BAC5F2A96833EEDAB9B7FF731F827DB3273D271BA8F9DE06181C1E38D031896971D801C571954337D92638CCD7 | 212 | 20171129215630 2 6 100 4095 5 D693DF66A6AA48BBECF942D3453355A19560938DE0A34C3E1158E5B9ECD70272CAE9686FAC4B6F64149C85607C158A67DB1C9B7FABD46379269492CB6B7E484D8AD4EA76D75EAD74F6A1E64D29206EC7BFF0630F3663C338039F8D10751AB8A177EEBB41E68434EAE03F7CA3761DE111900DC75F03209D8F6A92E178D94ADC7791D1BA55E7B6943A70D19957E348CA4B2407F89427D3B90979868732C69C221A3747ABCC7A9116D92237A1FDBE81E1ADDDA92F7FC0C15E7436B7C222E7759589919788B718B1F9F48356230B8F061F01FF21CD2DFEB2A1C744F8CBA3765364F1F417E105EDA7EB0ADBF1FD4CF4415B41CDA9BEF3CF6607A097EA2CFE32FA5376C01D1DF3B003FDEAE7571D0C54B5DED4DBBA2C753FB5ED889DD832085D75661CC762BBA28567CD080FB738B61C58ABF9962935C44322F1B96BEBEB594681CD2F20CA9F4D71C23D48E69725D37A4718924C4F145FBE0D841BE7C410A29C45810E240C319BADC04F990C4A84592FF925A73B6FE898F861B0E84D1146EB6856ADF066B11A0AE6915230F8A8E8234B33B5BAC1F3D1C3C05C8562DB51ACCAE2890C937F412D6E963C96965AA36350E8AB2901EE705B25407BC60711D9FC17E7885E5ED413ABBE2C207D55647F82C44367C13F489AD520A2A8FFA64C4F6EAF7AA816717F3019C6D240A4B9D788AFB73EA403523222D1E5940C47CAF304ED908B3A5BEF |
213 | 20170624120558 2 6 100 6143 2 E30D9BCD65DA0EAEF6A1D4D083834D4724538836AE04DFB6A7DAF235F5D9992B7E42128D43E229BF4906EF0C6A27F60B95A1FC514C2D55A0D616B3B6924F08E9C0BCD8AE1CB624F645785C2AA552C94E125D6602CF63CF52014A1B0A4AE0DE823B03B6ABFA25839ABC3E8E050C295B8B3471EC58EAD9B659294C72EA65229E4E8EB21CA79CBB41BB552118A3CD32108E51D5FCE5C46A6CD03E4246CB57E32BAA09B15503FBFA4F4C943B2378F10EE312C1F12A14010AFD1698B8EBCCFC8D0DF17829A153199154EBF9E40FD81B8E1AF5881D0EC1D3BEDB2D0F1DB9C44C9D8E7047310623D4FAAE28D2C16612CFB9AE9A8FD05B8FE22930346ECF7B21B5800778EA0D5D3B7BDF18B03ABF33C9D0B4648CF687ED229C811CE290CFAF94F9C9AF4EC3E47480955E5C81E85DA9EBCE99652DA07225C7CCEF39E224556E48D6371981C7232E00F3419F7B335FF36FE3989558277654DB356063ABC8F7BD0EF828B40D3BFC06D12FEC51278ACD32C3B67D4E2A0BBA1E20BDDA06DB9AF6AB250179DE3332EAC0A6D381963B51E8E167B8285BA3E6538B1D38B16B32196ABE009ADFDAF5E686E0107F76ED10414B6249D6895188456505CDB897FFCCEB8931802F87C02DFDC62825C6255DF2654712BE230CC86A30229D9E3438DB35CEED8F8447B9209CDECFC1776D2C43B4B98E9EEA3F4C049C1287CDB4540D395A4BC992602150CCC0479597E221E201B778DCA9701C517C89B95004FC19373ED9755C90FF32C44013678876EAD3FE5E637BF2F1959130EAF79E7A93088F52AA0AC993324294536CF3787C3A3F06F2DC201A070967E6F4525803DC83F5160B560465A4CE4BF20315858BE0E62A07C55B3A772CBF93DE99AADFCB304D2B544A9F17A22C2BEB791D98F714CA7CFF701CB7CAEC55C292A25A147935D7BBD1E66F2ED3EBC66E763209169033CE5A2D9884DC0CBAFF37517372544E1EB780A26CC71E5649EDFD5DA2FCFB58093D74D76FC2DAEC54567104701C31E3872C15BAC5F2A96833EEDAB9B7FF731F827DB3273D271BA8F9DE06181C1E38D031896971D801C571954337D92895C273 | 213 | 20171129220756 2 6 100 4095 2 D693DF66A6AA48BBECF942D3453355A19560938DE0A34C3E1158E5B9ECD70272CAE9686FAC4B6F64149C85607C158A67DB1C9B7FABD46379269492CB6B7E484D8AD4EA76D75EAD74F6A1E64D29206EC7BFF0630F3663C338039F8D10751AB8A177EEBB41E68434EAE03F7CA3761DE111900DC75F03209D8F6A92E178D94ADC7791D1BA55E7B6943A70D19957E348CA4B2407F89427D3B90979868732C69C221A3747ABCC7A9116D92237A1FDBE81E1ADDDA92F7FC0C15E7436B7C222E7759589919788B718B1F9F48356230B8F061F01FF21CD2DFEB2A1C744F8CBA3765364F1F417E105EDA7EB0ADBF1FD4CF4415B41CDA9BEF3CF6607A097EA2CFE32FA5376C01D1DF3B003FDEAE7571D0C54B5DED4DBBA2C753FB5ED889DD832085D75661CC762BBA28567CD080FB738B61C58ABF9962935C44322F1B96BEBEB594681CD2F20CA9F4D71C23D48E69725D37A4718924C4F145FBE0D841BE7C410A29C45810E240C319BADC04F990C4A84592FF925A73B6FE898F861B0E84D1146EB6856ADF066B11A0AE6915230F8A8E8234B33B5BAC1F3D1C3C05C8562DB51ACCAE2890C937F412D6E963C96965AA36350E8AB2901EE705B25407BC60711D9FC17E7885E5ED413ABBE2C207D55647F82C44367C13F489AD520A2A8FFA64C4F6EAF7AA816717F3019C6D240A4B9D788AFB73EA403523222D1E5940C47CAF304ED908C0BB263 |
214 | 20170624130210 2 6 100 6143 5 E30D9BCD65DA0EAEF6A1D4D083834D4724538836AE04DFB6A7DAF235F5D9992B7E42128D43E229BF4906EF0C6A27F60B95A1FC514C2D55A0D616B3B6924F08E9C0BCD8AE1CB624F645785C2AA552C94E125D6602CF63CF52014A1B0A4AE0DE823B03B6ABFA25839ABC3E8E050C295B8B3471EC58EAD9B659294C72EA65229E4E8EB21CA79CBB41BB552118A3CD32108E51D5FCE5C46A6CD03E4246CB57E32BAA09B15503FBFA4F4C943B2378F10EE312C1F12A14010AFD1698B8EBCCFC8D0DF17829A153199154EBF9E40FD81B8E1AF5881D0EC1D3BEDB2D0F1DB9C44C9D8E7047310623D4FAAE28D2C16612CFB9AE9A8FD05B8FE22930346ECF7B21B5800778EA0D5D3B7BDF18B03ABF33C9D0B4648CF687ED229C811CE290CFAF94F9C9AF4EC3E47480955E5C81E85DA9EBCE99652DA07225C7CCEF39E224556E48D6371981C7232E00F3419F7B335FF36FE3989558277654DB356063ABC8F7BD0EF828B40D3BFC06D12FEC51278ACD32C3B67D4E2A0BBA1E20BDDA06DB9AF6AB250179DE3332EAC0A6D381963B51E8E167B8285BA3E6538B1D38B16B32196ABE009ADFDAF5E686E0107F76ED10414B6249D6895188456505CDB897FFCCEB8931802F87C02DFDC62825C6255DF2654712BE230CC86A30229D9E3438DB35CEED8F8447B9209CDECFC1776D2C43B4B98E9EEA3F4C049C1287CDB4540D395A4BC992602150CCC0479597E221E201B778DCA9701C517C89B95004FC19373ED9755C90FF32C44013678876EAD3FE5E637BF2F1959130EAF79E7A93088F52AA0AC993324294536CF3787C3A3F06F2DC201A070967E6F4525803DC83F5160B560465A4CE4BF20315858BE0E62A07C55B3A772CBF93DE99AADFCB304D2B544A9F17A22C2BEB791D98F714CA7CFF701CB7CAEC55C292A25A147935D7BBD1E66F2ED3EBC66E763209169033CE5A2D9884DC0CBAFF37517372544E1EB780A26CC71E5649EDFD5DA2FCFB58093D74D76FC2DAEC54567104701C31E3872C15BAC5F2A96833EEDAB9B7FF731F827DB3273D271BA8F9DE06181C1E38D031896971D801C571954337D92A0429E7 | 214 | 20171129221730 2 6 100 4095 2 D693DF66A6AA48BBECF942D3453355A19560938DE0A34C3E1158E5B9ECD70272CAE9686FAC4B6F64149C85607C158A67DB1C9B7FABD46379269492CB6B7E484D8AD4EA76D75EAD74F6A1E64D29206EC7BFF0630F3663C338039F8D10751AB8A177EEBB41E68434EAE03F7CA3761DE111900DC75F03209D8F6A92E178D94ADC7791D1BA55E7B6943A70D19957E348CA4B2407F89427D3B90979868732C69C221A3747ABCC7A9116D92237A1FDBE81E1ADDDA92F7FC0C15E7436B7C222E7759589919788B718B1F9F48356230B8F061F01FF21CD2DFEB2A1C744F8CBA3765364F1F417E105EDA7EB0ADBF1FD4CF4415B41CDA9BEF3CF6607A097EA2CFE32FA5376C01D1DF3B003FDEAE7571D0C54B5DED4DBBA2C753FB5ED889DD832085D75661CC762BBA28567CD080FB738B61C58ABF9962935C44322F1B96BEBEB594681CD2F20CA9F4D71C23D48E69725D37A4718924C4F145FBE0D841BE7C410A29C45810E240C319BADC04F990C4A84592FF925A73B6FE898F861B0E84D1146EB6856ADF066B11A0AE6915230F8A8E8234B33B5BAC1F3D1C3C05C8562DB51ACCAE2890C937F412D6E963C96965AA36350E8AB2901EE705B25407BC60711D9FC17E7885E5ED413ABBE2C207D55647F82C44367C13F489AD520A2A8FFA64C4F6EAF7AA816717F3019C6D240A4B9D788AFB73EA403523222D1E5940C47CAF304ED908CB5663B |
215 | 20170624131317 2 6 100 6143 2 E30D9BCD65DA0EAEF6A1D4D083834D4724538836AE04DFB6A7DAF235F5D9992B7E42128D43E229BF4906EF0C6A27F60B95A1FC514C2D55A0D616B3B6924F08E9C0BCD8AE1CB624F645785C2AA552C94E125D6602CF63CF52014A1B0A4AE0DE823B03B6ABFA25839ABC3E8E050C295B8B3471EC58EAD9B659294C72EA65229E4E8EB21CA79CBB41BB552118A3CD32108E51D5FCE5C46A6CD03E4246CB57E32BAA09B15503FBFA4F4C943B2378F10EE312C1F12A14010AFD1698B8EBCCFC8D0DF17829A153199154EBF9E40FD81B8E1AF5881D0EC1D3BEDB2D0F1DB9C44C9D8E7047310623D4FAAE28D2C16612CFB9AE9A8FD05B8FE22930346ECF7B21B5800778EA0D5D3B7BDF18B03ABF33C9D0B4648CF687ED229C811CE290CFAF94F9C9AF4EC3E47480955E5C81E85DA9EBCE99652DA07225C7CCEF39E224556E48D6371981C7232E00F3419F7B335FF36FE3989558277654DB356063ABC8F7BD0EF828B40D3BFC06D12FEC51278ACD32C3B67D4E2A0BBA1E20BDDA06DB9AF6AB250179DE3332EAC0A6D381963B51E8E167B8285BA3E6538B1D38B16B32196ABE009ADFDAF5E686E0107F76ED10414B6249D6895188456505CDB897FFCCEB8931802F87C02DFDC62825C6255DF2654712BE230CC86A30229D9E3438DB35CEED8F8447B9209CDECFC1776D2C43B4B98E9EEA3F4C049C1287CDB4540D395A4BC992602150CCC0479597E221E201B778DCA9701C517C89B95004FC19373ED9755C90FF32C44013678876EAD3FE5E637BF2F1959130EAF79E7A93088F52AA0AC993324294536CF3787C3A3F06F2DC201A070967E6F4525803DC83F5160B560465A4CE4BF20315858BE0E62A07C55B3A772CBF93DE99AADFCB304D2B544A9F17A22C2BEB791D98F714CA7CFF701CB7CAEC55C292A25A147935D7BBD1E66F2ED3EBC66E763209169033CE5A2D9884DC0CBAFF37517372544E1EB780A26CC71E5649EDFD5DA2FCFB58093D74D76FC2DAEC54567104701C31E3872C15BAC5F2A96833EEDAB9B7FF731F827DB3273D271BA8F9DE06181C1E38D031896971D801C571954337D92A441063 | 215 | 20171129223322 2 6 100 4095 2 D693DF66A6AA48BBECF942D3453355A19560938DE0A34C3E1158E5B9ECD70272CAE9686FAC4B6F64149C85607C158A67DB1C9B7FABD46379269492CB6B7E484D8AD4EA76D75EAD74F6A1E64D29206EC7BFF0630F3663C338039F8D10751AB8A177EEBB41E68434EAE03F7CA3761DE111900DC75F03209D8F6A92E178D94ADC7791D1BA55E7B6943A70D19957E348CA4B2407F89427D3B90979868732C69C221A3747ABCC7A9116D92237A1FDBE81E1ADDDA92F7FC0C15E7436B7C222E7759589919788B718B1F9F48356230B8F061F01FF21CD2DFEB2A1C744F8CBA3765364F1F417E105EDA7EB0ADBF1FD4CF4415B41CDA9BEF3CF6607A097EA2CFE32FA5376C01D1DF3B003FDEAE7571D0C54B5DED4DBBA2C753FB5ED889DD832085D75661CC762BBA28567CD080FB738B61C58ABF9962935C44322F1B96BEBEB594681CD2F20CA9F4D71C23D48E69725D37A4718924C4F145FBE0D841BE7C410A29C45810E240C319BADC04F990C4A84592FF925A73B6FE898F861B0E84D1146EB6856ADF066B11A0AE6915230F8A8E8234B33B5BAC1F3D1C3C05C8562DB51ACCAE2890C937F412D6E963C96965AA36350E8AB2901EE705B25407BC60711D9FC17E7885E5ED413ABBE2C207D55647F82C44367C13F489AD520A2A8FFA64C4F6EAF7AA816717F3019C6D240A4B9D788AFB73EA403523222D1E5940C47CAF304ED908DDCC3A3 |
216 | 20170624132538 2 6 100 6143 5 E30D9BCD65DA0EAEF6A1D4D083834D4724538836AE04DFB6A7DAF235F5D9992B7E42128D43E229BF4906EF0C6A27F60B95A1FC514C2D55A0D616B3B6924F08E9C0BCD8AE1CB624F645785C2AA552C94E125D6602CF63CF52014A1B0A4AE0DE823B03B6ABFA25839ABC3E8E050C295B8B3471EC58EAD9B659294C72EA65229E4E8EB21CA79CBB41BB552118A3CD32108E51D5FCE5C46A6CD03E4246CB57E32BAA09B15503FBFA4F4C943B2378F10EE312C1F12A14010AFD1698B8EBCCFC8D0DF17829A153199154EBF9E40FD81B8E1AF5881D0EC1D3BEDB2D0F1DB9C44C9D8E7047310623D4FAAE28D2C16612CFB9AE9A8FD05B8FE22930346ECF7B21B5800778EA0D5D3B7BDF18B03ABF33C9D0B4648CF687ED229C811CE290CFAF94F9C9AF4EC3E47480955E5C81E85DA9EBCE99652DA07225C7CCEF39E224556E48D6371981C7232E00F3419F7B335FF36FE3989558277654DB356063ABC8F7BD0EF828B40D3BFC06D12FEC51278ACD32C3B67D4E2A0BBA1E20BDDA06DB9AF6AB250179DE3332EAC0A6D381963B51E8E167B8285BA3E6538B1D38B16B32196ABE009ADFDAF5E686E0107F76ED10414B6249D6895188456505CDB897FFCCEB8931802F87C02DFDC62825C6255DF2654712BE230CC86A30229D9E3438DB35CEED8F8447B9209CDECFC1776D2C43B4B98E9EEA3F4C049C1287CDB4540D395A4BC992602150CCC0479597E221E201B778DCA9701C517C89B95004FC19373ED9755C90FF32C44013678876EAD3FE5E637BF2F1959130EAF79E7A93088F52AA0AC993324294536CF3787C3A3F06F2DC201A070967E6F4525803DC83F5160B560465A4CE4BF20315858BE0E62A07C55B3A772CBF93DE99AADFCB304D2B544A9F17A22C2BEB791D98F714CA7CFF701CB7CAEC55C292A25A147935D7BBD1E66F2ED3EBC66E763209169033CE5A2D9884DC0CBAFF37517372544E1EB780A26CC71E5649EDFD5DA2FCFB58093D74D76FC2DAEC54567104701C31E3872C15BAC5F2A96833EEDAB9B7FF731F827DB3273D271BA8F9DE06181C1E38D031896971D801C571954337D92A8E794F | 216 | 20171129224236 2 6 100 4095 2 D693DF66A6AA48BBECF942D3453355A19560938DE0A34C3E1158E5B9ECD70272CAE9686FAC4B6F64149C85607C158A67DB1C9B7FABD46379269492CB6B7E484D8AD4EA76D75EAD74F6A1E64D29206EC7BFF0630F3663C338039F8D10751AB8A177EEBB41E68434EAE03F7CA3761DE111900DC75F03209D8F6A92E178D94ADC7791D1BA55E7B6943A70D19957E348CA4B2407F89427D3B90979868732C69C221A3747ABCC7A9116D92237A1FDBE81E1ADDDA92F7FC0C15E7436B7C222E7759589919788B718B1F9F48356230B8F061F01FF21CD2DFEB2A1C744F8CBA3765364F1F417E105EDA7EB0ADBF1FD4CF4415B41CDA9BEF3CF6607A097EA2CFE32FA5376C01D1DF3B003FDEAE7571D0C54B5DED4DBBA2C753FB5ED889DD832085D75661CC762BBA28567CD080FB738B61C58ABF9962935C44322F1B96BEBEB594681CD2F20CA9F4D71C23D48E69725D37A4718924C4F145FBE0D841BE7C410A29C45810E240C319BADC04F990C4A84592FF925A73B6FE898F861B0E84D1146EB6856ADF066B11A0AE6915230F8A8E8234B33B5BAC1F3D1C3C05C8562DB51ACCAE2890C937F412D6E963C96965AA36350E8AB2901EE705B25407BC60711D9FC17E7885E5ED413ABBE2C207D55647F82C44367C13F489AD520A2A8FFA64C4F6EAF7AA816717F3019C6D240A4B9D788AFB73EA403523222D1E5940C47CAF304ED908E85C73B |
217 | 20170624133715 2 6 100 6143 5 E30D9BCD65DA0EAEF6A1D4D083834D4724538836AE04DFB6A7DAF235F5D9992B7E42128D43E229BF4906EF0C6A27F60B95A1FC514C2D55A0D616B3B6924F08E9C0BCD8AE1CB624F645785C2AA552C94E125D6602CF63CF52014A1B0A4AE0DE823B03B6ABFA25839ABC3E8E050C295B8B3471EC58EAD9B659294C72EA65229E4E8EB21CA79CBB41BB552118A3CD32108E51D5FCE5C46A6CD03E4246CB57E32BAA09B15503FBFA4F4C943B2378F10EE312C1F12A14010AFD1698B8EBCCFC8D0DF17829A153199154EBF9E40FD81B8E1AF5881D0EC1D3BEDB2D0F1DB9C44C9D8E7047310623D4FAAE28D2C16612CFB9AE9A8FD05B8FE22930346ECF7B21B5800778EA0D5D3B7BDF18B03ABF33C9D0B4648CF687ED229C811CE290CFAF94F9C9AF4EC3E47480955E5C81E85DA9EBCE99652DA07225C7CCEF39E224556E48D6371981C7232E00F3419F7B335FF36FE3989558277654DB356063ABC8F7BD0EF828B40D3BFC06D12FEC51278ACD32C3B67D4E2A0BBA1E20BDDA06DB9AF6AB250179DE3332EAC0A6D381963B51E8E167B8285BA3E6538B1D38B16B32196ABE009ADFDAF5E686E0107F76ED10414B6249D6895188456505CDB897FFCCEB8931802F87C02DFDC62825C6255DF2654712BE230CC86A30229D9E3438DB35CEED8F8447B9209CDECFC1776D2C43B4B98E9EEA3F4C049C1287CDB4540D395A4BC992602150CCC0479597E221E201B778DCA9701C517C89B95004FC19373ED9755C90FF32C44013678876EAD3FE5E637BF2F1959130EAF79E7A93088F52AA0AC993324294536CF3787C3A3F06F2DC201A070967E6F4525803DC83F5160B560465A4CE4BF20315858BE0E62A07C55B3A772CBF93DE99AADFCB304D2B544A9F17A22C2BEB791D98F714CA7CFF701CB7CAEC55C292A25A147935D7BBD1E66F2ED3EBC66E763209169033CE5A2D9884DC0CBAFF37517372544E1EB780A26CC71E5649EDFD5DA2FCFB58093D74D76FC2DAEC54567104701C31E3872C15BAC5F2A96833EEDAB9B7FF731F827DB3273D271BA8F9DE06181C1E38D031896971D801C571954337D92AD26E07 | 217 | 20171129224324 2 6 100 4095 5 D693DF66A6AA48BBECF942D3453355A19560938DE0A34C3E1158E5B9ECD70272CAE9686FAC4B6F64149C85607C158A67DB1C9B7FABD46379269492CB6B7E484D8AD4EA76D75EAD74F6A1E64D29206EC7BFF0630F3663C338039F8D10751AB8A177EEBB41E68434EAE03F7CA3761DE111900DC75F03209D8F6A92E178D94ADC7791D1BA55E7B6943A70D19957E348CA4B2407F89427D3B90979868732C69C221A3747ABCC7A9116D92237A1FDBE81E1ADDDA92F7FC0C15E7436B7C222E7759589919788B718B1F9F48356230B8F061F01FF21CD2DFEB2A1C744F8CBA3765364F1F417E105EDA7EB0ADBF1FD4CF4415B41CDA9BEF3CF6607A097EA2CFE32FA5376C01D1DF3B003FDEAE7571D0C54B5DED4DBBA2C753FB5ED889DD832085D75661CC762BBA28567CD080FB738B61C58ABF9962935C44322F1B96BEBEB594681CD2F20CA9F4D71C23D48E69725D37A4718924C4F145FBE0D841BE7C410A29C45810E240C319BADC04F990C4A84592FF925A73B6FE898F861B0E84D1146EB6856ADF066B11A0AE6915230F8A8E8234B33B5BAC1F3D1C3C05C8562DB51ACCAE2890C937F412D6E963C96965AA36350E8AB2901EE705B25407BC60711D9FC17E7885E5ED413ABBE2C207D55647F82C44367C13F489AD520A2A8FFA64C4F6EAF7AA816717F3019C6D240A4B9D788AFB73EA403523222D1E5940C47CAF304ED908E8D9E2F |
218 | 20170624145051 2 6 100 6143 5 E30D9BCD65DA0EAEF6A1D4D083834D4724538836AE04DFB6A7DAF235F5D9992B7E42128D43E229BF4906EF0C6A27F60B95A1FC514C2D55A0D616B3B6924F08E9C0BCD8AE1CB624F645785C2AA552C94E125D6602CF63CF52014A1B0A4AE0DE823B03B6ABFA25839ABC3E8E050C295B8B3471EC58EAD9B659294C72EA65229E4E8EB21CA79CBB41BB552118A3CD32108E51D5FCE5C46A6CD03E4246CB57E32BAA09B15503FBFA4F4C943B2378F10EE312C1F12A14010AFD1698B8EBCCFC8D0DF17829A153199154EBF9E40FD81B8E1AF5881D0EC1D3BEDB2D0F1DB9C44C9D8E7047310623D4FAAE28D2C16612CFB9AE9A8FD05B8FE22930346ECF7B21B5800778EA0D5D3B7BDF18B03ABF33C9D0B4648CF687ED229C811CE290CFAF94F9C9AF4EC3E47480955E5C81E85DA9EBCE99652DA07225C7CCEF39E224556E48D6371981C7232E00F3419F7B335FF36FE3989558277654DB356063ABC8F7BD0EF828B40D3BFC06D12FEC51278ACD32C3B67D4E2A0BBA1E20BDDA06DB9AF6AB250179DE3332EAC0A6D381963B51E8E167B8285BA3E6538B1D38B16B32196ABE009ADFDAF5E686E0107F76ED10414B6249D6895188456505CDB897FFCCEB8931802F87C02DFDC62825C6255DF2654712BE230CC86A30229D9E3438DB35CEED8F8447B9209CDECFC1776D2C43B4B98E9EEA3F4C049C1287CDB4540D395A4BC992602150CCC0479597E221E201B778DCA9701C517C89B95004FC19373ED9755C90FF32C44013678876EAD3FE5E637BF2F1959130EAF79E7A93088F52AA0AC993324294536CF3787C3A3F06F2DC201A070967E6F4525803DC83F5160B560465A4CE4BF20315858BE0E62A07C55B3A772CBF93DE99AADFCB304D2B544A9F17A22C2BEB791D98F714CA7CFF701CB7CAEC55C292A25A147935D7BBD1E66F2ED3EBC66E763209169033CE5A2D9884DC0CBAFF37517372544E1EB780A26CC71E5649EDFD5DA2FCFB58093D74D76FC2DAEC54567104701C31E3872C15BAC5F2A96833EEDAB9B7FF731F827DB3273D271BA8F9DE06181C1E38D031896971D801C571954337D92CB7412F | 218 | 20171129225233 2 6 100 4095 2 D693DF66A6AA48BBECF942D3453355A19560938DE0A34C3E1158E5B9ECD70272CAE9686FAC4B6F64149C85607C158A67DB1C9B7FABD46379269492CB6B7E484D8AD4EA76D75EAD74F6A1E64D29206EC7BFF0630F3663C338039F8D10751AB8A177EEBB41E68434EAE03F7CA3761DE111900DC75F03209D8F6A92E178D94ADC7791D1BA55E7B6943A70D19957E348CA4B2407F89427D3B90979868732C69C221A3747ABCC7A9116D92237A1FDBE81E1ADDDA92F7FC0C15E7436B7C222E7759589919788B718B1F9F48356230B8F061F01FF21CD2DFEB2A1C744F8CBA3765364F1F417E105EDA7EB0ADBF1FD4CF4415B41CDA9BEF3CF6607A097EA2CFE32FA5376C01D1DF3B003FDEAE7571D0C54B5DED4DBBA2C753FB5ED889DD832085D75661CC762BBA28567CD080FB738B61C58ABF9962935C44322F1B96BEBEB594681CD2F20CA9F4D71C23D48E69725D37A4718924C4F145FBE0D841BE7C410A29C45810E240C319BADC04F990C4A84592FF925A73B6FE898F861B0E84D1146EB6856ADF066B11A0AE6915230F8A8E8234B33B5BAC1F3D1C3C05C8562DB51ACCAE2890C937F412D6E963C96965AA36350E8AB2901EE705B25407BC60711D9FC17E7885E5ED413ABBE2C207D55647F82C44367C13F489AD520A2A8FFA64C4F6EAF7AA816717F3019C6D240A4B9D788AFB73EA403523222D1E5940C47CAF304ED908F379CB3 |
219 | 20170624163751 2 6 100 6143 2 E30D9BCD65DA0EAEF6A1D4D083834D4724538836AE04DFB6A7DAF235F5D9992B7E42128D43E229BF4906EF0C6A27F60B95A1FC514C2D55A0D616B3B6924F08E9C0BCD8AE1CB624F645785C2AA552C94E125D6602CF63CF52014A1B0A4AE0DE823B03B6ABFA25839ABC3E8E050C295B8B3471EC58EAD9B659294C72EA65229E4E8EB21CA79CBB41BB552118A3CD32108E51D5FCE5C46A6CD03E4246CB57E32BAA09B15503FBFA4F4C943B2378F10EE312C1F12A14010AFD1698B8EBCCFC8D0DF17829A153199154EBF9E40FD81B8E1AF5881D0EC1D3BEDB2D0F1DB9C44C9D8E7047310623D4FAAE28D2C16612CFB9AE9A8FD05B8FE22930346ECF7B21B5800778EA0D5D3B7BDF18B03ABF33C9D0B4648CF687ED229C811CE290CFAF94F9C9AF4EC3E47480955E5C81E85DA9EBCE99652DA07225C7CCEF39E224556E48D6371981C7232E00F3419F7B335FF36FE3989558277654DB356063ABC8F7BD0EF828B40D3BFC06D12FEC51278ACD32C3B67D4E2A0BBA1E20BDDA06DB9AF6AB250179DE3332EAC0A6D381963B51E8E167B8285BA3E6538B1D38B16B32196ABE009ADFDAF5E686E0107F76ED10414B6249D6895188456505CDB897FFCCEB8931802F87C02DFDC62825C6255DF2654712BE230CC86A30229D9E3438DB35CEED8F8447B9209CDECFC1776D2C43B4B98E9EEA3F4C049C1287CDB4540D395A4BC992602150CCC0479597E221E201B778DCA9701C517C89B95004FC19373ED9755C90FF32C44013678876EAD3FE5E637BF2F1959130EAF79E7A93088F52AA0AC993324294536CF3787C3A3F06F2DC201A070967E6F4525803DC83F5160B560465A4CE4BF20315858BE0E62A07C55B3A772CBF93DE99AADFCB304D2B544A9F17A22C2BEB791D98F714CA7CFF701CB7CAEC55C292A25A147935D7BBD1E66F2ED3EBC66E763209169033CE5A2D9884DC0CBAFF37517372544E1EB780A26CC71E5649EDFD5DA2FCFB58093D74D76FC2DAEC54567104701C31E3872C15BAC5F2A96833EEDAB9B7FF731F827DB3273D271BA8F9DE06181C1E38D031896971D801C571954337D92F668E7B | 219 | 20171129225757 2 6 100 4095 2 D693DF66A6AA48BBECF942D3453355A19560938DE0A34C3E1158E5B9ECD70272CAE9686FAC4B6F64149C85607C158A67DB1C9B7FABD46379269492CB6B7E484D8AD4EA76D75EAD74F6A1E64D29206EC7BFF0630F3663C338039F8D10751AB8A177EEBB41E68434EAE03F7CA3761DE111900DC75F03209D8F6A92E178D94ADC7791D1BA55E7B6943A70D19957E348CA4B2407F89427D3B90979868732C69C221A3747ABCC7A9116D92237A1FDBE81E1ADDDA92F7FC0C15E7436B7C222E7759589919788B718B1F9F48356230B8F061F01FF21CD2DFEB2A1C744F8CBA3765364F1F417E105EDA7EB0ADBF1FD4CF4415B41CDA9BEF3CF6607A097EA2CFE32FA5376C01D1DF3B003FDEAE7571D0C54B5DED4DBBA2C753FB5ED889DD832085D75661CC762BBA28567CD080FB738B61C58ABF9962935C44322F1B96BEBEB594681CD2F20CA9F4D71C23D48E69725D37A4718924C4F145FBE0D841BE7C410A29C45810E240C319BADC04F990C4A84592FF925A73B6FE898F861B0E84D1146EB6856ADF066B11A0AE6915230F8A8E8234B33B5BAC1F3D1C3C05C8562DB51ACCAE2890C937F412D6E963C96965AA36350E8AB2901EE705B25407BC60711D9FC17E7885E5ED413ABBE2C207D55647F82C44367C13F489AD520A2A8FFA64C4F6EAF7AA816717F3019C6D240A4B9D788AFB73EA403523222D1E5940C47CAF304ED908F98DCDB |
220 | 20170624172739 2 6 100 6143 2 E30D9BCD65DA0EAEF6A1D4D083834D4724538836AE04DFB6A7DAF235F5D9992B7E42128D43E229BF4906EF0C6A27F60B95A1FC514C2D55A0D616B3B6924F08E9C0BCD8AE1CB624F645785C2AA552C94E125D6602CF63CF52014A1B0A4AE0DE823B03B6ABFA25839ABC3E8E050C295B8B3471EC58EAD9B659294C72EA65229E4E8EB21CA79CBB41BB552118A3CD32108E51D5FCE5C46A6CD03E4246CB57E32BAA09B15503FBFA4F4C943B2378F10EE312C1F12A14010AFD1698B8EBCCFC8D0DF17829A153199154EBF9E40FD81B8E1AF5881D0EC1D3BEDB2D0F1DB9C44C9D8E7047310623D4FAAE28D2C16612CFB9AE9A8FD05B8FE22930346ECF7B21B5800778EA0D5D3B7BDF18B03ABF33C9D0B4648CF687ED229C811CE290CFAF94F9C9AF4EC3E47480955E5C81E85DA9EBCE99652DA07225C7CCEF39E224556E48D6371981C7232E00F3419F7B335FF36FE3989558277654DB356063ABC8F7BD0EF828B40D3BFC06D12FEC51278ACD32C3B67D4E2A0BBA1E20BDDA06DB9AF6AB250179DE3332EAC0A6D381963B51E8E167B8285BA3E6538B1D38B16B32196ABE009ADFDAF5E686E0107F76ED10414B6249D6895188456505CDB897FFCCEB8931802F87C02DFDC62825C6255DF2654712BE230CC86A30229D9E3438DB35CEED8F8447B9209CDECFC1776D2C43B4B98E9EEA3F4C049C1287CDB4540D395A4BC992602150CCC0479597E221E201B778DCA9701C517C89B95004FC19373ED9755C90FF32C44013678876EAD3FE5E637BF2F1959130EAF79E7A93088F52AA0AC993324294536CF3787C3A3F06F2DC201A070967E6F4525803DC83F5160B560465A4CE4BF20315858BE0E62A07C55B3A772CBF93DE99AADFCB304D2B544A9F17A22C2BEB791D98F714CA7CFF701CB7CAEC55C292A25A147935D7BBD1E66F2ED3EBC66E763209169033CE5A2D9884DC0CBAFF37517372544E1EB780A26CC71E5649EDFD5DA2FCFB58093D74D76FC2DAEC54567104701C31E3872C15BAC5F2A96833EEDAB9B7FF731F827DB3273D271BA8F9DE06181C1E38D031896971D801C571954337D930A8FC4B | 220 | 20171129231535 2 6 100 4095 5 D693DF66A6AA48BBECF942D3453355A19560938DE0A34C3E1158E5B9ECD70272CAE9686FAC4B6F64149C85607C158A67DB1C9B7FABD46379269492CB6B7E484D8AD4EA76D75EAD74F6A1E64D29206EC7BFF0630F3663C338039F8D10751AB8A177EEBB41E68434EAE03F7CA3761DE111900DC75F03209D8F6A92E178D94ADC7791D1BA55E7B6943A70D19957E348CA4B2407F89427D3B90979868732C69C221A3747ABCC7A9116D92237A1FDBE81E1ADDDA92F7FC0C15E7436B7C222E7759589919788B718B1F9F48356230B8F061F01FF21CD2DFEB2A1C744F8CBA3765364F1F417E105EDA7EB0ADBF1FD4CF4415B41CDA9BEF3CF6607A097EA2CFE32FA5376C01D1DF3B003FDEAE7571D0C54B5DED4DBBA2C753FB5ED889DD832085D75661CC762BBA28567CD080FB738B61C58ABF9962935C44322F1B96BEBEB594681CD2F20CA9F4D71C23D48E69725D37A4718924C4F145FBE0D841BE7C410A29C45810E240C319BADC04F990C4A84592FF925A73B6FE898F861B0E84D1146EB6856ADF066B11A0AE6915230F8A8E8234B33B5BAC1F3D1C3C05C8562DB51ACCAE2890C937F412D6E963C96965AA36350E8AB2901EE705B25407BC60711D9FC17E7885E5ED413ABBE2C207D55647F82C44367C13F489AD520A2A8FFA64C4F6EAF7AA816717F3019C6D240A4B9D788AFB73EA403523222D1E5940C47CAF304ED9090E1233F |
221 | 20170624174055 2 6 100 6143 2 E30D9BCD65DA0EAEF6A1D4D083834D4724538836AE04DFB6A7DAF235F5D9992B7E42128D43E229BF4906EF0C6A27F60B95A1FC514C2D55A0D616B3B6924F08E9C0BCD8AE1CB624F645785C2AA552C94E125D6602CF63CF52014A1B0A4AE0DE823B03B6ABFA25839ABC3E8E050C295B8B3471EC58EAD9B659294C72EA65229E4E8EB21CA79CBB41BB552118A3CD32108E51D5FCE5C46A6CD03E4246CB57E32BAA09B15503FBFA4F4C943B2378F10EE312C1F12A14010AFD1698B8EBCCFC8D0DF17829A153199154EBF9E40FD81B8E1AF5881D0EC1D3BEDB2D0F1DB9C44C9D8E7047310623D4FAAE28D2C16612CFB9AE9A8FD05B8FE22930346ECF7B21B5800778EA0D5D3B7BDF18B03ABF33C9D0B4648CF687ED229C811CE290CFAF94F9C9AF4EC3E47480955E5C81E85DA9EBCE99652DA07225C7CCEF39E224556E48D6371981C7232E00F3419F7B335FF36FE3989558277654DB356063ABC8F7BD0EF828B40D3BFC06D12FEC51278ACD32C3B67D4E2A0BBA1E20BDDA06DB9AF6AB250179DE3332EAC0A6D381963B51E8E167B8285BA3E6538B1D38B16B32196ABE009ADFDAF5E686E0107F76ED10414B6249D6895188456505CDB897FFCCEB8931802F87C02DFDC62825C6255DF2654712BE230CC86A30229D9E3438DB35CEED8F8447B9209CDECFC1776D2C43B4B98E9EEA3F4C049C1287CDB4540D395A4BC992602150CCC0479597E221E201B778DCA9701C517C89B95004FC19373ED9755C90FF32C44013678876EAD3FE5E637BF2F1959130EAF79E7A93088F52AA0AC993324294536CF3787C3A3F06F2DC201A070967E6F4525803DC83F5160B560465A4CE4BF20315858BE0E62A07C55B3A772CBF93DE99AADFCB304D2B544A9F17A22C2BEB791D98F714CA7CFF701CB7CAEC55C292A25A147935D7BBD1E66F2ED3EBC66E763209169033CE5A2D9884DC0CBAFF37517372544E1EB780A26CC71E5649EDFD5DA2FCFB58093D74D76FC2DAEC54567104701C31E3872C15BAC5F2A96833EEDAB9B7FF731F827DB3273D271BA8F9DE06181C1E38D031896971D801C571954337D930F6B80B | 221 | 20171129232541 2 6 100 4095 2 D693DF66A6AA48BBECF942D3453355A19560938DE0A34C3E1158E5B9ECD70272CAE9686FAC4B6F64149C85607C158A67DB1C9B7FABD46379269492CB6B7E484D8AD4EA76D75EAD74F6A1E64D29206EC7BFF0630F3663C338039F8D10751AB8A177EEBB41E68434EAE03F7CA3761DE111900DC75F03209D8F6A92E178D94ADC7791D1BA55E7B6943A70D19957E348CA4B2407F89427D3B90979868732C69C221A3747ABCC7A9116D92237A1FDBE81E1ADDDA92F7FC0C15E7436B7C222E7759589919788B718B1F9F48356230B8F061F01FF21CD2DFEB2A1C744F8CBA3765364F1F417E105EDA7EB0ADBF1FD4CF4415B41CDA9BEF3CF6607A097EA2CFE32FA5376C01D1DF3B003FDEAE7571D0C54B5DED4DBBA2C753FB5ED889DD832085D75661CC762BBA28567CD080FB738B61C58ABF9962935C44322F1B96BEBEB594681CD2F20CA9F4D71C23D48E69725D37A4718924C4F145FBE0D841BE7C410A29C45810E240C319BADC04F990C4A84592FF925A73B6FE898F861B0E84D1146EB6856ADF066B11A0AE6915230F8A8E8234B33B5BAC1F3D1C3C05C8562DB51ACCAE2890C937F412D6E963C96965AA36350E8AB2901EE705B25407BC60711D9FC17E7885E5ED413ABBE2C207D55647F82C44367C13F489AD520A2A8FFA64C4F6EAF7AA816717F3019C6D240A4B9D788AFB73EA403523222D1E5940C47CAF304ED909198027B |
222 | 20170624185924 2 6 100 6143 5 E30D9BCD65DA0EAEF6A1D4D083834D4724538836AE04DFB6A7DAF235F5D9992B7E42128D43E229BF4906EF0C6A27F60B95A1FC514C2D55A0D616B3B6924F08E9C0BCD8AE1CB624F645785C2AA552C94E125D6602CF63CF52014A1B0A4AE0DE823B03B6ABFA25839ABC3E8E050C295B8B3471EC58EAD9B659294C72EA65229E4E8EB21CA79CBB41BB552118A3CD32108E51D5FCE5C46A6CD03E4246CB57E32BAA09B15503FBFA4F4C943B2378F10EE312C1F12A14010AFD1698B8EBCCFC8D0DF17829A153199154EBF9E40FD81B8E1AF5881D0EC1D3BEDB2D0F1DB9C44C9D8E7047310623D4FAAE28D2C16612CFB9AE9A8FD05B8FE22930346ECF7B21B5800778EA0D5D3B7BDF18B03ABF33C9D0B4648CF687ED229C811CE290CFAF94F9C9AF4EC3E47480955E5C81E85DA9EBCE99652DA07225C7CCEF39E224556E48D6371981C7232E00F3419F7B335FF36FE3989558277654DB356063ABC8F7BD0EF828B40D3BFC06D12FEC51278ACD32C3B67D4E2A0BBA1E20BDDA06DB9AF6AB250179DE3332EAC0A6D381963B51E8E167B8285BA3E6538B1D38B16B32196ABE009ADFDAF5E686E0107F76ED10414B6249D6895188456505CDB897FFCCEB8931802F87C02DFDC62825C6255DF2654712BE230CC86A30229D9E3438DB35CEED8F8447B9209CDECFC1776D2C43B4B98E9EEA3F4C049C1287CDB4540D395A4BC992602150CCC0479597E221E201B778DCA9701C517C89B95004FC19373ED9755C90FF32C44013678876EAD3FE5E637BF2F1959130EAF79E7A93088F52AA0AC993324294536CF3787C3A3F06F2DC201A070967E6F4525803DC83F5160B560465A4CE4BF20315858BE0E62A07C55B3A772CBF93DE99AADFCB304D2B544A9F17A22C2BEB791D98F714CA7CFF701CB7CAEC55C292A25A147935D7BBD1E66F2ED3EBC66E763209169033CE5A2D9884DC0CBAFF37517372544E1EB780A26CC71E5649EDFD5DA2FCFB58093D74D76FC2DAEC54567104701C31E3872C15BAC5F2A96833EEDAB9B7FF731F827DB3273D271BA8F9DE06181C1E38D031896971D801C571954337D932ED85B7 | 222 | 20171129233438 2 6 100 4095 2 D693DF66A6AA48BBECF942D3453355A19560938DE0A34C3E1158E5B9ECD70272CAE9686FAC4B6F64149C85607C158A67DB1C9B7FABD46379269492CB6B7E484D8AD4EA76D75EAD74F6A1E64D29206EC7BFF0630F3663C338039F8D10751AB8A177EEBB41E68434EAE03F7CA3761DE111900DC75F03209D8F6A92E178D94ADC7791D1BA55E7B6943A70D19957E348CA4B2407F89427D3B90979868732C69C221A3747ABCC7A9116D92237A1FDBE81E1ADDDA92F7FC0C15E7436B7C222E7759589919788B718B1F9F48356230B8F061F01FF21CD2DFEB2A1C744F8CBA3765364F1F417E105EDA7EB0ADBF1FD4CF4415B41CDA9BEF3CF6607A097EA2CFE32FA5376C01D1DF3B003FDEAE7571D0C54B5DED4DBBA2C753FB5ED889DD832085D75661CC762BBA28567CD080FB738B61C58ABF9962935C44322F1B96BEBEB594681CD2F20CA9F4D71C23D48E69725D37A4718924C4F145FBE0D841BE7C410A29C45810E240C319BADC04F990C4A84592FF925A73B6FE898F861B0E84D1146EB6856ADF066B11A0AE6915230F8A8E8234B33B5BAC1F3D1C3C05C8562DB51ACCAE2890C937F412D6E963C96965AA36350E8AB2901EE705B25407BC60711D9FC17E7885E5ED413ABBE2C207D55647F82C44367C13F489AD520A2A8FFA64C4F6EAF7AA816717F3019C6D240A4B9D788AFB73EA403523222D1E5940C47CAF304ED90923CF07B |
223 | 20170624220917 2 6 100 6143 2 E30D9BCD65DA0EAEF6A1D4D083834D4724538836AE04DFB6A7DAF235F5D9992B7E42128D43E229BF4906EF0C6A27F60B95A1FC514C2D55A0D616B3B6924F08E9C0BCD8AE1CB624F645785C2AA552C94E125D6602CF63CF52014A1B0A4AE0DE823B03B6ABFA25839ABC3E8E050C295B8B3471EC58EAD9B659294C72EA65229E4E8EB21CA79CBB41BB552118A3CD32108E51D5FCE5C46A6CD03E4246CB57E32BAA09B15503FBFA4F4C943B2378F10EE312C1F12A14010AFD1698B8EBCCFC8D0DF17829A153199154EBF9E40FD81B8E1AF5881D0EC1D3BEDB2D0F1DB9C44C9D8E7047310623D4FAAE28D2C16612CFB9AE9A8FD05B8FE22930346ECF7B21B5800778EA0D5D3B7BDF18B03ABF33C9D0B4648CF687ED229C811CE290CFAF94F9C9AF4EC3E47480955E5C81E85DA9EBCE99652DA07225C7CCEF39E224556E48D6371981C7232E00F3419F7B335FF36FE3989558277654DB356063ABC8F7BD0EF828B40D3BFC06D12FEC51278ACD32C3B67D4E2A0BBA1E20BDDA06DB9AF6AB250179DE3332EAC0A6D381963B51E8E167B8285BA3E6538B1D38B16B32196ABE009ADFDAF5E686E0107F76ED10414B6249D6895188456505CDB897FFCCEB8931802F87C02DFDC62825C6255DF2654712BE230CC86A30229D9E3438DB35CEED8F8447B9209CDECFC1776D2C43B4B98E9EEA3F4C049C1287CDB4540D395A4BC992602150CCC0479597E221E201B778DCA9701C517C89B95004FC19373ED9755C90FF32C44013678876EAD3FE5E637BF2F1959130EAF79E7A93088F52AA0AC993324294536CF3787C3A3F06F2DC201A070967E6F4525803DC83F5160B560465A4CE4BF20315858BE0E62A07C55B3A772CBF93DE99AADFCB304D2B544A9F17A22C2BEB791D98F714CA7CFF701CB7CAEC55C292A25A147935D7BBD1E66F2ED3EBC66E763209169033CE5A2D9884DC0CBAFF37517372544E1EB780A26CC71E5649EDFD5DA2FCFB58093D74D76FC2DAEC54567104701C31E3872C15BAC5F2A96833EEDAB9B7FF731F827DB3273D271BA8F9DE06181C1E38D031896971D801C571954337D937BF2B3B | 223 | 20171129233904 2 6 100 4095 2 D693DF66A6AA48BBECF942D3453355A19560938DE0A34C3E1158E5B9ECD70272CAE9686FAC4B6F64149C85607C158A67DB1C9B7FABD46379269492CB6B7E484D8AD4EA76D75EAD74F6A1E64D29206EC7BFF0630F3663C338039F8D10751AB8A177EEBB41E68434EAE03F7CA3761DE111900DC75F03209D8F6A92E178D94ADC7791D1BA55E7B6943A70D19957E348CA4B2407F89427D3B90979868732C69C221A3747ABCC7A9116D92237A1FDBE81E1ADDDA92F7FC0C15E7436B7C222E7759589919788B718B1F9F48356230B8F061F01FF21CD2DFEB2A1C744F8CBA3765364F1F417E105EDA7EB0ADBF1FD4CF4415B41CDA9BEF3CF6607A097EA2CFE32FA5376C01D1DF3B003FDEAE7571D0C54B5DED4DBBA2C753FB5ED889DD832085D75661CC762BBA28567CD080FB738B61C58ABF9962935C44322F1B96BEBEB594681CD2F20CA9F4D71C23D48E69725D37A4718924C4F145FBE0D841BE7C410A29C45810E240C319BADC04F990C4A84592FF925A73B6FE898F861B0E84D1146EB6856ADF066B11A0AE6915230F8A8E8234B33B5BAC1F3D1C3C05C8562DB51ACCAE2890C937F412D6E963C96965AA36350E8AB2901EE705B25407BC60711D9FC17E7885E5ED413ABBE2C207D55647F82C44367C13F489AD520A2A8FFA64C4F6EAF7AA816717F3019C6D240A4B9D788AFB73EA403523222D1E5940C47CAF304ED90928C0D7B |
224 | 20170624222456 2 6 100 6143 2 E30D9BCD65DA0EAEF6A1D4D083834D4724538836AE04DFB6A7DAF235F5D9992B7E42128D43E229BF4906EF0C6A27F60B95A1FC514C2D55A0D616B3B6924F08E9C0BCD8AE1CB624F645785C2AA552C94E125D6602CF63CF52014A1B0A4AE0DE823B03B6ABFA25839ABC3E8E050C295B8B3471EC58EAD9B659294C72EA65229E4E8EB21CA79CBB41BB552118A3CD32108E51D5FCE5C46A6CD03E4246CB57E32BAA09B15503FBFA4F4C943B2378F10EE312C1F12A14010AFD1698B8EBCCFC8D0DF17829A153199154EBF9E40FD81B8E1AF5881D0EC1D3BEDB2D0F1DB9C44C9D8E7047310623D4FAAE28D2C16612CFB9AE9A8FD05B8FE22930346ECF7B21B5800778EA0D5D3B7BDF18B03ABF33C9D0B4648CF687ED229C811CE290CFAF94F9C9AF4EC3E47480955E5C81E85DA9EBCE99652DA07225C7CCEF39E224556E48D6371981C7232E00F3419F7B335FF36FE3989558277654DB356063ABC8F7BD0EF828B40D3BFC06D12FEC51278ACD32C3B67D4E2A0BBA1E20BDDA06DB9AF6AB250179DE3332EAC0A6D381963B51E8E167B8285BA3E6538B1D38B16B32196ABE009ADFDAF5E686E0107F76ED10414B6249D6895188456505CDB897FFCCEB8931802F87C02DFDC62825C6255DF2654712BE230CC86A30229D9E3438DB35CEED8F8447B9209CDECFC1776D2C43B4B98E9EEA3F4C049C1287CDB4540D395A4BC992602150CCC0479597E221E201B778DCA9701C517C89B95004FC19373ED9755C90FF32C44013678876EAD3FE5E637BF2F1959130EAF79E7A93088F52AA0AC993324294536CF3787C3A3F06F2DC201A070967E6F4525803DC83F5160B560465A4CE4BF20315858BE0E62A07C55B3A772CBF93DE99AADFCB304D2B544A9F17A22C2BEB791D98F714CA7CFF701CB7CAEC55C292A25A147935D7BBD1E66F2ED3EBC66E763209169033CE5A2D9884DC0CBAFF37517372544E1EB780A26CC71E5649EDFD5DA2FCFB58093D74D76FC2DAEC54567104701C31E3872C15BAC5F2A96833EEDAB9B7FF731F827DB3273D271BA8F9DE06181C1E38D031896971D801C571954337D9381B839B | 224 | 20171129235019 2 6 100 4095 2 D693DF66A6AA48BBECF942D3453355A19560938DE0A34C3E1158E5B9ECD70272CAE9686FAC4B6F64149C85607C158A67DB1C9B7FABD46379269492CB6B7E484D8AD4EA76D75EAD74F6A1E64D29206EC7BFF0630F3663C338039F8D10751AB8A177EEBB41E68434EAE03F7CA3761DE111900DC75F03209D8F6A92E178D94ADC7791D1BA55E7B6943A70D19957E348CA4B2407F89427D3B90979868732C69C221A3747ABCC7A9116D92237A1FDBE81E1ADDDA92F7FC0C15E7436B7C222E7759589919788B718B1F9F48356230B8F061F01FF21CD2DFEB2A1C744F8CBA3765364F1F417E105EDA7EB0ADBF1FD4CF4415B41CDA9BEF3CF6607A097EA2CFE32FA5376C01D1DF3B003FDEAE7571D0C54B5DED4DBBA2C753FB5ED889DD832085D75661CC762BBA28567CD080FB738B61C58ABF9962935C44322F1B96BEBEB594681CD2F20CA9F4D71C23D48E69725D37A4718924C4F145FBE0D841BE7C410A29C45810E240C319BADC04F990C4A84592FF925A73B6FE898F861B0E84D1146EB6856ADF066B11A0AE6915230F8A8E8234B33B5BAC1F3D1C3C05C8562DB51ACCAE2890C937F412D6E963C96965AA36350E8AB2901EE705B25407BC60711D9FC17E7885E5ED413ABBE2C207D55647F82C44367C13F489AD520A2A8FFA64C4F6EAF7AA816717F3019C6D240A4B9D788AFB73EA403523222D1E5940C47CAF304ED90935B1963 |
225 | 20170625033902 2 6 100 6143 2 E30D9BCD65DA0EAEF6A1D4D083834D4724538836AE04DFB6A7DAF235F5D9992B7E42128D43E229BF4906EF0C6A27F60B95A1FC514C2D55A0D616B3B6924F08E9C0BCD8AE1CB624F645785C2AA552C94E125D6602CF63CF52014A1B0A4AE0DE823B03B6ABFA25839ABC3E8E050C295B8B3471EC58EAD9B659294C72EA65229E4E8EB21CA79CBB41BB552118A3CD32108E51D5FCE5C46A6CD03E4246CB57E32BAA09B15503FBFA4F4C943B2378F10EE312C1F12A14010AFD1698B8EBCCFC8D0DF17829A153199154EBF9E40FD81B8E1AF5881D0EC1D3BEDB2D0F1DB9C44C9D8E7047310623D4FAAE28D2C16612CFB9AE9A8FD05B8FE22930346ECF7B21B5800778EA0D5D3B7BDF18B03ABF33C9D0B4648CF687ED229C811CE290CFAF94F9C9AF4EC3E47480955E5C81E85DA9EBCE99652DA07225C7CCEF39E224556E48D6371981C7232E00F3419F7B335FF36FE3989558277654DB356063ABC8F7BD0EF828B40D3BFC06D12FEC51278ACD32C3B67D4E2A0BBA1E20BDDA06DB9AF6AB250179DE3332EAC0A6D381963B51E8E167B8285BA3E6538B1D38B16B32196ABE009ADFDAF5E686E0107F76ED10414B6249D6895188456505CDB897FFCCEB8931802F87C02DFDC62825C6255DF2654712BE230CC86A30229D9E3438DB35CEED8F8447B9209CDECFC1776D2C43B4B98E9EEA3F4C049C1287CDB4540D395A4BC992602150CCC0479597E221E201B778DCA9701C517C89B95004FC19373ED9755C90FF32C44013678876EAD3FE5E637BF2F1959130EAF79E7A93088F52AA0AC993324294536CF3787C3A3F06F2DC201A070967E6F4525803DC83F5160B560465A4CE4BF20315858BE0E62A07C55B3A772CBF93DE99AADFCB304D2B544A9F17A22C2BEB791D98F714CA7CFF701CB7CAEC55C292A25A147935D7BBD1E66F2ED3EBC66E763209169033CE5A2D9884DC0CBAFF37517372544E1EB780A26CC71E5649EDFD5DA2FCFB58093D74D76FC2DAEC54567104701C31E3872C15BAC5F2A96833EEDAB9B7FF731F827DB3273D271BA8F9DE06181C1E38D031896971D801C571954337D94007305B | 225 | 20171130000155 2 6 100 4095 2 D693DF66A6AA48BBECF942D3453355A19560938DE0A34C3E1158E5B9ECD70272CAE9686FAC4B6F64149C85607C158A67DB1C9B7FABD46379269492CB6B7E484D8AD4EA76D75EAD74F6A1E64D29206EC7BFF0630F3663C338039F8D10751AB8A177EEBB41E68434EAE03F7CA3761DE111900DC75F03209D8F6A92E178D94ADC7791D1BA55E7B6943A70D19957E348CA4B2407F89427D3B90979868732C69C221A3747ABCC7A9116D92237A1FDBE81E1ADDDA92F7FC0C15E7436B7C222E7759589919788B718B1F9F48356230B8F061F01FF21CD2DFEB2A1C744F8CBA3765364F1F417E105EDA7EB0ADBF1FD4CF4415B41CDA9BEF3CF6607A097EA2CFE32FA5376C01D1DF3B003FDEAE7571D0C54B5DED4DBBA2C753FB5ED889DD832085D75661CC762BBA28567CD080FB738B61C58ABF9962935C44322F1B96BEBEB594681CD2F20CA9F4D71C23D48E69725D37A4718924C4F145FBE0D841BE7C410A29C45810E240C319BADC04F990C4A84592FF925A73B6FE898F861B0E84D1146EB6856ADF066B11A0AE6915230F8A8E8234B33B5BAC1F3D1C3C05C8562DB51ACCAE2890C937F412D6E963C96965AA36350E8AB2901EE705B25407BC60711D9FC17E7885E5ED413ABBE2C207D55647F82C44367C13F489AD520A2A8FFA64C4F6EAF7AA816717F3019C6D240A4B9D788AFB73EA403523222D1E5940C47CAF304ED90942FB1FB |
226 | 20170625053719 2 6 100 6143 5 E30D9BCD65DA0EAEF6A1D4D083834D4724538836AE04DFB6A7DAF235F5D9992B7E42128D43E229BF4906EF0C6A27F60B95A1FC514C2D55A0D616B3B6924F08E9C0BCD8AE1CB624F645785C2AA552C94E125D6602CF63CF52014A1B0A4AE0DE823B03B6ABFA25839ABC3E8E050C295B8B3471EC58EAD9B659294C72EA65229E4E8EB21CA79CBB41BB552118A3CD32108E51D5FCE5C46A6CD03E4246CB57E32BAA09B15503FBFA4F4C943B2378F10EE312C1F12A14010AFD1698B8EBCCFC8D0DF17829A153199154EBF9E40FD81B8E1AF5881D0EC1D3BEDB2D0F1DB9C44C9D8E7047310623D4FAAE28D2C16612CFB9AE9A8FD05B8FE22930346ECF7B21B5800778EA0D5D3B7BDF18B03ABF33C9D0B4648CF687ED229C811CE290CFAF94F9C9AF4EC3E47480955E5C81E85DA9EBCE99652DA07225C7CCEF39E224556E48D6371981C7232E00F3419F7B335FF36FE3989558277654DB356063ABC8F7BD0EF828B40D3BFC06D12FEC51278ACD32C3B67D4E2A0BBA1E20BDDA06DB9AF6AB250179DE3332EAC0A6D381963B51E8E167B8285BA3E6538B1D38B16B32196ABE009ADFDAF5E686E0107F76ED10414B6249D6895188456505CDB897FFCCEB8931802F87C02DFDC62825C6255DF2654712BE230CC86A30229D9E3438DB35CEED8F8447B9209CDECFC1776D2C43B4B98E9EEA3F4C049C1287CDB4540D395A4BC992602150CCC0479597E221E201B778DCA9701C517C89B95004FC19373ED9755C90FF32C44013678876EAD3FE5E637BF2F1959130EAF79E7A93088F52AA0AC993324294536CF3787C3A3F06F2DC201A070967E6F4525803DC83F5160B560465A4CE4BF20315858BE0E62A07C55B3A772CBF93DE99AADFCB304D2B544A9F17A22C2BEB791D98F714CA7CFF701CB7CAEC55C292A25A147935D7BBD1E66F2ED3EBC66E763209169033CE5A2D9884DC0CBAFF37517372544E1EB780A26CC71E5649EDFD5DA2FCFB58093D74D76FC2DAEC54567104701C31E3872C15BAC5F2A96833EEDAB9B7FF731F827DB3273D271BA8F9DE06181C1E38D031896971D801C571954337D942F8C1E7 | 226 | 20171130000803 2 6 100 4095 2 D693DF66A6AA48BBECF942D3453355A19560938DE0A34C3E1158E5B9ECD70272CAE9686FAC4B6F64149C85607C158A67DB1C9B7FABD46379269492CB6B7E484D8AD4EA76D75EAD74F6A1E64D29206EC7BFF0630F3663C338039F8D10751AB8A177EEBB41E68434EAE03F7CA3761DE111900DC75F03209D8F6A92E178D94ADC7791D1BA55E7B6943A70D19957E348CA4B2407F89427D3B90979868732C69C221A3747ABCC7A9116D92237A1FDBE81E1ADDDA92F7FC0C15E7436B7C222E7759589919788B718B1F9F48356230B8F061F01FF21CD2DFEB2A1C744F8CBA3765364F1F417E105EDA7EB0ADBF1FD4CF4415B41CDA9BEF3CF6607A097EA2CFE32FA5376C01D1DF3B003FDEAE7571D0C54B5DED4DBBA2C753FB5ED889DD832085D75661CC762BBA28567CD080FB738B61C58ABF9962935C44322F1B96BEBEB594681CD2F20CA9F4D71C23D48E69725D37A4718924C4F145FBE0D841BE7C410A29C45810E240C319BADC04F990C4A84592FF925A73B6FE898F861B0E84D1146EB6856ADF066B11A0AE6915230F8A8E8234B33B5BAC1F3D1C3C05C8562DB51ACCAE2890C937F412D6E963C96965AA36350E8AB2901EE705B25407BC60711D9FC17E7885E5ED413ABBE2C207D55647F82C44367C13F489AD520A2A8FFA64C4F6EAF7AA816717F3019C6D240A4B9D788AFB73EA403523222D1E5940C47CAF304ED90949B573B |
227 | 20170625062259 2 6 100 6143 2 E30D9BCD65DA0EAEF6A1D4D083834D4724538836AE04DFB6A7DAF235F5D9992B7E42128D43E229BF4906EF0C6A27F60B95A1FC514C2D55A0D616B3B6924F08E9C0BCD8AE1CB624F645785C2AA552C94E125D6602CF63CF52014A1B0A4AE0DE823B03B6ABFA25839ABC3E8E050C295B8B3471EC58EAD9B659294C72EA65229E4E8EB21CA79CBB41BB552118A3CD32108E51D5FCE5C46A6CD03E4246CB57E32BAA09B15503FBFA4F4C943B2378F10EE312C1F12A14010AFD1698B8EBCCFC8D0DF17829A153199154EBF9E40FD81B8E1AF5881D0EC1D3BEDB2D0F1DB9C44C9D8E7047310623D4FAAE28D2C16612CFB9AE9A8FD05B8FE22930346ECF7B21B5800778EA0D5D3B7BDF18B03ABF33C9D0B4648CF687ED229C811CE290CFAF94F9C9AF4EC3E47480955E5C81E85DA9EBCE99652DA07225C7CCEF39E224556E48D6371981C7232E00F3419F7B335FF36FE3989558277654DB356063ABC8F7BD0EF828B40D3BFC06D12FEC51278ACD32C3B67D4E2A0BBA1E20BDDA06DB9AF6AB250179DE3332EAC0A6D381963B51E8E167B8285BA3E6538B1D38B16B32196ABE009ADFDAF5E686E0107F76ED10414B6249D6895188456505CDB897FFCCEB8931802F87C02DFDC62825C6255DF2654712BE230CC86A30229D9E3438DB35CEED8F8447B9209CDECFC1776D2C43B4B98E9EEA3F4C049C1287CDB4540D395A4BC992602150CCC0479597E221E201B778DCA9701C517C89B95004FC19373ED9755C90FF32C44013678876EAD3FE5E637BF2F1959130EAF79E7A93088F52AA0AC993324294536CF3787C3A3F06F2DC201A070967E6F4525803DC83F5160B560465A4CE4BF20315858BE0E62A07C55B3A772CBF93DE99AADFCB304D2B544A9F17A22C2BEB791D98F714CA7CFF701CB7CAEC55C292A25A147935D7BBD1E66F2ED3EBC66E763209169033CE5A2D9884DC0CBAFF37517372544E1EB780A26CC71E5649EDFD5DA2FCFB58093D74D76FC2DAEC54567104701C31E3872C15BAC5F2A96833EEDAB9B7FF731F827DB3273D271BA8F9DE06181C1E38D031896971D801C571954337D944178FAB | 227 | 20171130003235 2 6 100 4095 5 D693DF66A6AA48BBECF942D3453355A19560938DE0A34C3E1158E5B9ECD70272CAE9686FAC4B6F64149C85607C158A67DB1C9B7FABD46379269492CB6B7E484D8AD4EA76D75EAD74F6A1E64D29206EC7BFF0630F3663C338039F8D10751AB8A177EEBB41E68434EAE03F7CA3761DE111900DC75F03209D8F6A92E178D94ADC7791D1BA55E7B6943A70D19957E348CA4B2407F89427D3B90979868732C69C221A3747ABCC7A9116D92237A1FDBE81E1ADDDA92F7FC0C15E7436B7C222E7759589919788B718B1F9F48356230B8F061F01FF21CD2DFEB2A1C744F8CBA3765364F1F417E105EDA7EB0ADBF1FD4CF4415B41CDA9BEF3CF6607A097EA2CFE32FA5376C01D1DF3B003FDEAE7571D0C54B5DED4DBBA2C753FB5ED889DD832085D75661CC762BBA28567CD080FB738B61C58ABF9962935C44322F1B96BEBEB594681CD2F20CA9F4D71C23D48E69725D37A4718924C4F145FBE0D841BE7C410A29C45810E240C319BADC04F990C4A84592FF925A73B6FE898F861B0E84D1146EB6856ADF066B11A0AE6915230F8A8E8234B33B5BAC1F3D1C3C05C8562DB51ACCAE2890C937F412D6E963C96965AA36350E8AB2901EE705B25407BC60711D9FC17E7885E5ED413ABBE2C207D55647F82C44367C13F489AD520A2A8FFA64C4F6EAF7AA816717F3019C6D240A4B9D788AFB73EA403523222D1E5940C47CAF304ED90966596E7 |
228 | 20170625072908 2 6 100 6143 5 E30D9BCD65DA0EAEF6A1D4D083834D4724538836AE04DFB6A7DAF235F5D9992B7E42128D43E229BF4906EF0C6A27F60B95A1FC514C2D55A0D616B3B6924F08E9C0BCD8AE1CB624F645785C2AA552C94E125D6602CF63CF52014A1B0A4AE0DE823B03B6ABFA25839ABC3E8E050C295B8B3471EC58EAD9B659294C72EA65229E4E8EB21CA79CBB41BB552118A3CD32108E51D5FCE5C46A6CD03E4246CB57E32BAA09B15503FBFA4F4C943B2378F10EE312C1F12A14010AFD1698B8EBCCFC8D0DF17829A153199154EBF9E40FD81B8E1AF5881D0EC1D3BEDB2D0F1DB9C44C9D8E7047310623D4FAAE28D2C16612CFB9AE9A8FD05B8FE22930346ECF7B21B5800778EA0D5D3B7BDF18B03ABF33C9D0B4648CF687ED229C811CE290CFAF94F9C9AF4EC3E47480955E5C81E85DA9EBCE99652DA07225C7CCEF39E224556E48D6371981C7232E00F3419F7B335FF36FE3989558277654DB356063ABC8F7BD0EF828B40D3BFC06D12FEC51278ACD32C3B67D4E2A0BBA1E20BDDA06DB9AF6AB250179DE3332EAC0A6D381963B51E8E167B8285BA3E6538B1D38B16B32196ABE009ADFDAF5E686E0107F76ED10414B6249D6895188456505CDB897FFCCEB8931802F87C02DFDC62825C6255DF2654712BE230CC86A30229D9E3438DB35CEED8F8447B9209CDECFC1776D2C43B4B98E9EEA3F4C049C1287CDB4540D395A4BC992602150CCC0479597E221E201B778DCA9701C517C89B95004FC19373ED9755C90FF32C44013678876EAD3FE5E637BF2F1959130EAF79E7A93088F52AA0AC993324294536CF3787C3A3F06F2DC201A070967E6F4525803DC83F5160B560465A4CE4BF20315858BE0E62A07C55B3A772CBF93DE99AADFCB304D2B544A9F17A22C2BEB791D98F714CA7CFF701CB7CAEC55C292A25A147935D7BBD1E66F2ED3EBC66E763209169033CE5A2D9884DC0CBAFF37517372544E1EB780A26CC71E5649EDFD5DA2FCFB58093D74D76FC2DAEC54567104701C31E3872C15BAC5F2A96833EEDAB9B7FF731F827DB3273D271BA8F9DE06181C1E38D031896971D801C571954337D945B1B3DF | 228 | 20171130005040 2 6 100 4095 2 D693DF66A6AA48BBECF942D3453355A19560938DE0A34C3E1158E5B9ECD70272CAE9686FAC4B6F64149C85607C158A67DB1C9B7FABD46379269492CB6B7E484D8AD4EA76D75EAD74F6A1E64D29206EC7BFF0630F3663C338039F8D10751AB8A177EEBB41E68434EAE03F7CA3761DE111900DC75F03209D8F6A92E178D94ADC7791D1BA55E7B6943A70D19957E348CA4B2407F89427D3B90979868732C69C221A3747ABCC7A9116D92237A1FDBE81E1ADDDA92F7FC0C15E7436B7C222E7759589919788B718B1F9F48356230B8F061F01FF21CD2DFEB2A1C744F8CBA3765364F1F417E105EDA7EB0ADBF1FD4CF4415B41CDA9BEF3CF6607A097EA2CFE32FA5376C01D1DF3B003FDEAE7571D0C54B5DED4DBBA2C753FB5ED889DD832085D75661CC762BBA28567CD080FB738B61C58ABF9962935C44322F1B96BEBEB594681CD2F20CA9F4D71C23D48E69725D37A4718924C4F145FBE0D841BE7C410A29C45810E240C319BADC04F990C4A84592FF925A73B6FE898F861B0E84D1146EB6856ADF066B11A0AE6915230F8A8E8234B33B5BAC1F3D1C3C05C8562DB51ACCAE2890C937F412D6E963C96965AA36350E8AB2901EE705B25407BC60711D9FC17E7885E5ED413ABBE2C207D55647F82C44367C13F489AD520A2A8FFA64C4F6EAF7AA816717F3019C6D240A4B9D788AFB73EA403523222D1E5940C47CAF304ED9097B63323 |
229 | 20170625075138 2 6 100 6143 2 E30D9BCD65DA0EAEF6A1D4D083834D4724538836AE04DFB6A7DAF235F5D9992B7E42128D43E229BF4906EF0C6A27F60B95A1FC514C2D55A0D616B3B6924F08E9C0BCD8AE1CB624F645785C2AA552C94E125D6602CF63CF52014A1B0A4AE0DE823B03B6ABFA25839ABC3E8E050C295B8B3471EC58EAD9B659294C72EA65229E4E8EB21CA79CBB41BB552118A3CD32108E51D5FCE5C46A6CD03E4246CB57E32BAA09B15503FBFA4F4C943B2378F10EE312C1F12A14010AFD1698B8EBCCFC8D0DF17829A153199154EBF9E40FD81B8E1AF5881D0EC1D3BEDB2D0F1DB9C44C9D8E7047310623D4FAAE28D2C16612CFB9AE9A8FD05B8FE22930346ECF7B21B5800778EA0D5D3B7BDF18B03ABF33C9D0B4648CF687ED229C811CE290CFAF94F9C9AF4EC3E47480955E5C81E85DA9EBCE99652DA07225C7CCEF39E224556E48D6371981C7232E00F3419F7B335FF36FE3989558277654DB356063ABC8F7BD0EF828B40D3BFC06D12FEC51278ACD32C3B67D4E2A0BBA1E20BDDA06DB9AF6AB250179DE3332EAC0A6D381963B51E8E167B8285BA3E6538B1D38B16B32196ABE009ADFDAF5E686E0107F76ED10414B6249D6895188456505CDB897FFCCEB8931802F87C02DFDC62825C6255DF2654712BE230CC86A30229D9E3438DB35CEED8F8447B9209CDECFC1776D2C43B4B98E9EEA3F4C049C1287CDB4540D395A4BC992602150CCC0479597E221E201B778DCA9701C517C89B95004FC19373ED9755C90FF32C44013678876EAD3FE5E637BF2F1959130EAF79E7A93088F52AA0AC993324294536CF3787C3A3F06F2DC201A070967E6F4525803DC83F5160B560465A4CE4BF20315858BE0E62A07C55B3A772CBF93DE99AADFCB304D2B544A9F17A22C2BEB791D98F714CA7CFF701CB7CAEC55C292A25A147935D7BBD1E66F2ED3EBC66E763209169033CE5A2D9884DC0CBAFF37517372544E1EB780A26CC71E5649EDFD5DA2FCFB58093D74D76FC2DAEC54567104701C31E3872C15BAC5F2A96833EEDAB9B7FF731F827DB3273D271BA8F9DE06181C1E38D031896971D801C571954337D9463A10C3 | 229 | 20171130005620 2 6 100 4095 5 D693DF66A6AA48BBECF942D3453355A19560938DE0A34C3E1158E5B9ECD70272CAE9686FAC4B6F64149C85607C158A67DB1C9B7FABD46379269492CB6B7E484D8AD4EA76D75EAD74F6A1E64D29206EC7BFF0630F3663C338039F8D10751AB8A177EEBB41E68434EAE03F7CA3761DE111900DC75F03209D8F6A92E178D94ADC7791D1BA55E7B6943A70D19957E348CA4B2407F89427D3B90979868732C69C221A3747ABCC7A9116D92237A1FDBE81E1ADDDA92F7FC0C15E7436B7C222E7759589919788B718B1F9F48356230B8F061F01FF21CD2DFEB2A1C744F8CBA3765364F1F417E105EDA7EB0ADBF1FD4CF4415B41CDA9BEF3CF6607A097EA2CFE32FA5376C01D1DF3B003FDEAE7571D0C54B5DED4DBBA2C753FB5ED889DD832085D75661CC762BBA28567CD080FB738B61C58ABF9962935C44322F1B96BEBEB594681CD2F20CA9F4D71C23D48E69725D37A4718924C4F145FBE0D841BE7C410A29C45810E240C319BADC04F990C4A84592FF925A73B6FE898F861B0E84D1146EB6856ADF066B11A0AE6915230F8A8E8234B33B5BAC1F3D1C3C05C8562DB51ACCAE2890C937F412D6E963C96965AA36350E8AB2901EE705B25407BC60711D9FC17E7885E5ED413ABBE2C207D55647F82C44367C13F489AD520A2A8FFA64C4F6EAF7AA816717F3019C6D240A4B9D788AFB73EA403523222D1E5940C47CAF304ED909818E76F |
230 | 20170625080610 2 6 100 6143 2 E30D9BCD65DA0EAEF6A1D4D083834D4724538836AE04DFB6A7DAF235F5D9992B7E42128D43E229BF4906EF0C6A27F60B95A1FC514C2D55A0D616B3B6924F08E9C0BCD8AE1CB624F645785C2AA552C94E125D6602CF63CF52014A1B0A4AE0DE823B03B6ABFA25839ABC3E8E050C295B8B3471EC58EAD9B659294C72EA65229E4E8EB21CA79CBB41BB552118A3CD32108E51D5FCE5C46A6CD03E4246CB57E32BAA09B15503FBFA4F4C943B2378F10EE312C1F12A14010AFD1698B8EBCCFC8D0DF17829A153199154EBF9E40FD81B8E1AF5881D0EC1D3BEDB2D0F1DB9C44C9D8E7047310623D4FAAE28D2C16612CFB9AE9A8FD05B8FE22930346ECF7B21B5800778EA0D5D3B7BDF18B03ABF33C9D0B4648CF687ED229C811CE290CFAF94F9C9AF4EC3E47480955E5C81E85DA9EBCE99652DA07225C7CCEF39E224556E48D6371981C7232E00F3419F7B335FF36FE3989558277654DB356063ABC8F7BD0EF828B40D3BFC06D12FEC51278ACD32C3B67D4E2A0BBA1E20BDDA06DB9AF6AB250179DE3332EAC0A6D381963B51E8E167B8285BA3E6538B1D38B16B32196ABE009ADFDAF5E686E0107F76ED10414B6249D6895188456505CDB897FFCCEB8931802F87C02DFDC62825C6255DF2654712BE230CC86A30229D9E3438DB35CEED8F8447B9209CDECFC1776D2C43B4B98E9EEA3F4C049C1287CDB4540D395A4BC992602150CCC0479597E221E201B778DCA9701C517C89B95004FC19373ED9755C90FF32C44013678876EAD3FE5E637BF2F1959130EAF79E7A93088F52AA0AC993324294536CF3787C3A3F06F2DC201A070967E6F4525803DC83F5160B560465A4CE4BF20315858BE0E62A07C55B3A772CBF93DE99AADFCB304D2B544A9F17A22C2BEB791D98F714CA7CFF701CB7CAEC55C292A25A147935D7BBD1E66F2ED3EBC66E763209169033CE5A2D9884DC0CBAFF37517372544E1EB780A26CC71E5649EDFD5DA2FCFB58093D74D76FC2DAEC54567104701C31E3872C15BAC5F2A96833EEDAB9B7FF731F827DB3273D271BA8F9DE06181C1E38D031896971D801C571954337D94691AE5B | 230 | 20171130012144 2 6 100 4095 5 D693DF66A6AA48BBECF942D3453355A19560938DE0A34C3E1158E5B9ECD70272CAE9686FAC4B6F64149C85607C158A67DB1C9B7FABD46379269492CB6B7E484D8AD4EA76D75EAD74F6A1E64D29206EC7BFF0630F3663C338039F8D10751AB8A177EEBB41E68434EAE03F7CA3761DE111900DC75F03209D8F6A92E178D94ADC7791D1BA55E7B6943A70D19957E348CA4B2407F89427D3B90979868732C69C221A3747ABCC7A9116D92237A1FDBE81E1ADDDA92F7FC0C15E7436B7C222E7759589919788B718B1F9F48356230B8F061F01FF21CD2DFEB2A1C744F8CBA3765364F1F417E105EDA7EB0ADBF1FD4CF4415B41CDA9BEF3CF6607A097EA2CFE32FA5376C01D1DF3B003FDEAE7571D0C54B5DED4DBBA2C753FB5ED889DD832085D75661CC762BBA28567CD080FB738B61C58ABF9962935C44322F1B96BEBEB594681CD2F20CA9F4D71C23D48E69725D37A4718924C4F145FBE0D841BE7C410A29C45810E240C319BADC04F990C4A84592FF925A73B6FE898F861B0E84D1146EB6856ADF066B11A0AE6915230F8A8E8234B33B5BAC1F3D1C3C05C8562DB51ACCAE2890C937F412D6E963C96965AA36350E8AB2901EE705B25407BC60711D9FC17E7885E5ED413ABBE2C207D55647F82C44367C13F489AD520A2A8FFA64C4F6EAF7AA816717F3019C6D240A4B9D788AFB73EA403523222D1E5940C47CAF304ED9099F4FB5F |
231 | 20170625112146 2 6 100 6143 2 E30D9BCD65DA0EAEF6A1D4D083834D4724538836AE04DFB6A7DAF235F5D9992B7E42128D43E229BF4906EF0C6A27F60B95A1FC514C2D55A0D616B3B6924F08E9C0BCD8AE1CB624F645785C2AA552C94E125D6602CF63CF52014A1B0A4AE0DE823B03B6ABFA25839ABC3E8E050C295B8B3471EC58EAD9B659294C72EA65229E4E8EB21CA79CBB41BB552118A3CD32108E51D5FCE5C46A6CD03E4246CB57E32BAA09B15503FBFA4F4C943B2378F10EE312C1F12A14010AFD1698B8EBCCFC8D0DF17829A153199154EBF9E40FD81B8E1AF5881D0EC1D3BEDB2D0F1DB9C44C9D8E7047310623D4FAAE28D2C16612CFB9AE9A8FD05B8FE22930346ECF7B21B5800778EA0D5D3B7BDF18B03ABF33C9D0B4648CF687ED229C811CE290CFAF94F9C9AF4EC3E47480955E5C81E85DA9EBCE99652DA07225C7CCEF39E224556E48D6371981C7232E00F3419F7B335FF36FE3989558277654DB356063ABC8F7BD0EF828B40D3BFC06D12FEC51278ACD32C3B67D4E2A0BBA1E20BDDA06DB9AF6AB250179DE3332EAC0A6D381963B51E8E167B8285BA3E6538B1D38B16B32196ABE009ADFDAF5E686E0107F76ED10414B6249D6895188456505CDB897FFCCEB8931802F87C02DFDC62825C6255DF2654712BE230CC86A30229D9E3438DB35CEED8F8447B9209CDECFC1776D2C43B4B98E9EEA3F4C049C1287CDB4540D395A4BC992602150CCC0479597E221E201B778DCA9701C517C89B95004FC19373ED9755C90FF32C44013678876EAD3FE5E637BF2F1959130EAF79E7A93088F52AA0AC993324294536CF3787C3A3F06F2DC201A070967E6F4525803DC83F5160B560465A4CE4BF20315858BE0E62A07C55B3A772CBF93DE99AADFCB304D2B544A9F17A22C2BEB791D98F714CA7CFF701CB7CAEC55C292A25A147935D7BBD1E66F2ED3EBC66E763209169033CE5A2D9884DC0CBAFF37517372544E1EB780A26CC71E5649EDFD5DA2FCFB58093D74D76FC2DAEC54567104701C31E3872C15BAC5F2A96833EEDAB9B7FF731F827DB3273D271BA8F9DE06181C1E38D031896971D801C571954337D94B5B8CDB | 231 | 20171130014001 2 6 100 4095 2 D693DF66A6AA48BBECF942D3453355A19560938DE0A34C3E1158E5B9ECD70272CAE9686FAC4B6F64149C85607C158A67DB1C9B7FABD46379269492CB6B7E484D8AD4EA76D75EAD74F6A1E64D29206EC7BFF0630F3663C338039F8D10751AB8A177EEBB41E68434EAE03F7CA3761DE111900DC75F03209D8F6A92E178D94ADC7791D1BA55E7B6943A70D19957E348CA4B2407F89427D3B90979868732C69C221A3747ABCC7A9116D92237A1FDBE81E1ADDDA92F7FC0C15E7436B7C222E7759589919788B718B1F9F48356230B8F061F01FF21CD2DFEB2A1C744F8CBA3765364F1F417E105EDA7EB0ADBF1FD4CF4415B41CDA9BEF3CF6607A097EA2CFE32FA5376C01D1DF3B003FDEAE7571D0C54B5DED4DBBA2C753FB5ED889DD832085D75661CC762BBA28567CD080FB738B61C58ABF9962935C44322F1B96BEBEB594681CD2F20CA9F4D71C23D48E69725D37A4718924C4F145FBE0D841BE7C410A29C45810E240C319BADC04F990C4A84592FF925A73B6FE898F861B0E84D1146EB6856ADF066B11A0AE6915230F8A8E8234B33B5BAC1F3D1C3C05C8562DB51ACCAE2890C937F412D6E963C96965AA36350E8AB2901EE705B25407BC60711D9FC17E7885E5ED413ABBE2C207D55647F82C44367C13F489AD520A2A8FFA64C4F6EAF7AA816717F3019C6D240A4B9D788AFB73EA403523222D1E5940C47CAF304ED909B4379EB |
232 | 20170625113648 2 6 100 6143 5 E30D9BCD65DA0EAEF6A1D4D083834D4724538836AE04DFB6A7DAF235F5D9992B7E42128D43E229BF4906EF0C6A27F60B95A1FC514C2D55A0D616B3B6924F08E9C0BCD8AE1CB624F645785C2AA552C94E125D6602CF63CF52014A1B0A4AE0DE823B03B6ABFA25839ABC3E8E050C295B8B3471EC58EAD9B659294C72EA65229E4E8EB21CA79CBB41BB552118A3CD32108E51D5FCE5C46A6CD03E4246CB57E32BAA09B15503FBFA4F4C943B2378F10EE312C1F12A14010AFD1698B8EBCCFC8D0DF17829A153199154EBF9E40FD81B8E1AF5881D0EC1D3BEDB2D0F1DB9C44C9D8E7047310623D4FAAE28D2C16612CFB9AE9A8FD05B8FE22930346ECF7B21B5800778EA0D5D3B7BDF18B03ABF33C9D0B4648CF687ED229C811CE290CFAF94F9C9AF4EC3E47480955E5C81E85DA9EBCE99652DA07225C7CCEF39E224556E48D6371981C7232E00F3419F7B335FF36FE3989558277654DB356063ABC8F7BD0EF828B40D3BFC06D12FEC51278ACD32C3B67D4E2A0BBA1E20BDDA06DB9AF6AB250179DE3332EAC0A6D381963B51E8E167B8285BA3E6538B1D38B16B32196ABE009ADFDAF5E686E0107F76ED10414B6249D6895188456505CDB897FFCCEB8931802F87C02DFDC62825C6255DF2654712BE230CC86A30229D9E3438DB35CEED8F8447B9209CDECFC1776D2C43B4B98E9EEA3F4C049C1287CDB4540D395A4BC992602150CCC0479597E221E201B778DCA9701C517C89B95004FC19373ED9755C90FF32C44013678876EAD3FE5E637BF2F1959130EAF79E7A93088F52AA0AC993324294536CF3787C3A3F06F2DC201A070967E6F4525803DC83F5160B560465A4CE4BF20315858BE0E62A07C55B3A772CBF93DE99AADFCB304D2B544A9F17A22C2BEB791D98F714CA7CFF701CB7CAEC55C292A25A147935D7BBD1E66F2ED3EBC66E763209169033CE5A2D9884DC0CBAFF37517372544E1EB780A26CC71E5649EDFD5DA2FCFB58093D74D76FC2DAEC54567104701C31E3872C15BAC5F2A96833EEDAB9B7FF731F827DB3273D271BA8F9DE06181C1E38D031896971D801C571954337D94BB43777 | 232 | 20171130014931 2 6 100 4095 2 D693DF66A6AA48BBECF942D3453355A19560938DE0A34C3E1158E5B9ECD70272CAE9686FAC4B6F64149C85607C158A67DB1C9B7FABD46379269492CB6B7E484D8AD4EA76D75EAD74F6A1E64D29206EC7BFF0630F3663C338039F8D10751AB8A177EEBB41E68434EAE03F7CA3761DE111900DC75F03209D8F6A92E178D94ADC7791D1BA55E7B6943A70D19957E348CA4B2407F89427D3B90979868732C69C221A3747ABCC7A9116D92237A1FDBE81E1ADDDA92F7FC0C15E7436B7C222E7759589919788B718B1F9F48356230B8F061F01FF21CD2DFEB2A1C744F8CBA3765364F1F417E105EDA7EB0ADBF1FD4CF4415B41CDA9BEF3CF6607A097EA2CFE32FA5376C01D1DF3B003FDEAE7571D0C54B5DED4DBBA2C753FB5ED889DD832085D75661CC762BBA28567CD080FB738B61C58ABF9962935C44322F1B96BEBEB594681CD2F20CA9F4D71C23D48E69725D37A4718924C4F145FBE0D841BE7C410A29C45810E240C319BADC04F990C4A84592FF925A73B6FE898F861B0E84D1146EB6856ADF066B11A0AE6915230F8A8E8234B33B5BAC1F3D1C3C05C8562DB51ACCAE2890C937F412D6E963C96965AA36350E8AB2901EE705B25407BC60711D9FC17E7885E5ED413ABBE2C207D55647F82C44367C13F489AD520A2A8FFA64C4F6EAF7AA816717F3019C6D240A4B9D788AFB73EA403523222D1E5940C47CAF304ED909BF25ABB |
233 | 20170625131459 2 6 100 6143 5 E30D9BCD65DA0EAEF6A1D4D083834D4724538836AE04DFB6A7DAF235F5D9992B7E42128D43E229BF4906EF0C6A27F60B95A1FC514C2D55A0D616B3B6924F08E9C0BCD8AE1CB624F645785C2AA552C94E125D6602CF63CF52014A1B0A4AE0DE823B03B6ABFA25839ABC3E8E050C295B8B3471EC58EAD9B659294C72EA65229E4E8EB21CA79CBB41BB552118A3CD32108E51D5FCE5C46A6CD03E4246CB57E32BAA09B15503FBFA4F4C943B2378F10EE312C1F12A14010AFD1698B8EBCCFC8D0DF17829A153199154EBF9E40FD81B8E1AF5881D0EC1D3BEDB2D0F1DB9C44C9D8E7047310623D4FAAE28D2C16612CFB9AE9A8FD05B8FE22930346ECF7B21B5800778EA0D5D3B7BDF18B03ABF33C9D0B4648CF687ED229C811CE290CFAF94F9C9AF4EC3E47480955E5C81E85DA9EBCE99652DA07225C7CCEF39E224556E48D6371981C7232E00F3419F7B335FF36FE3989558277654DB356063ABC8F7BD0EF828B40D3BFC06D12FEC51278ACD32C3B67D4E2A0BBA1E20BDDA06DB9AF6AB250179DE3332EAC0A6D381963B51E8E167B8285BA3E6538B1D38B16B32196ABE009ADFDAF5E686E0107F76ED10414B6249D6895188456505CDB897FFCCEB8931802F87C02DFDC62825C6255DF2654712BE230CC86A30229D9E3438DB35CEED8F8447B9209CDECFC1776D2C43B4B98E9EEA3F4C049C1287CDB4540D395A4BC992602150CCC0479597E221E201B778DCA9701C517C89B95004FC19373ED9755C90FF32C44013678876EAD3FE5E637BF2F1959130EAF79E7A93088F52AA0AC993324294536CF3787C3A3F06F2DC201A070967E6F4525803DC83F5160B560465A4CE4BF20315858BE0E62A07C55B3A772CBF93DE99AADFCB304D2B544A9F17A22C2BEB791D98F714CA7CFF701CB7CAEC55C292A25A147935D7BBD1E66F2ED3EBC66E763209169033CE5A2D9884DC0CBAFF37517372544E1EB780A26CC71E5649EDFD5DA2FCFB58093D74D76FC2DAEC54567104701C31E3872C15BAC5F2A96833EEDAB9B7FF731F827DB3273D271BA8F9DE06181C1E38D031896971D801C571954337D94E2020A7 | 233 | 20171130015813 2 6 100 4095 2 D693DF66A6AA48BBECF942D3453355A19560938DE0A34C3E1158E5B9ECD70272CAE9686FAC4B6F64149C85607C158A67DB1C9B7FABD46379269492CB6B7E484D8AD4EA76D75EAD74F6A1E64D29206EC7BFF0630F3663C338039F8D10751AB8A177EEBB41E68434EAE03F7CA3761DE111900DC75F03209D8F6A92E178D94ADC7791D1BA55E7B6943A70D19957E348CA4B2407F89427D3B90979868732C69C221A3747ABCC7A9116D92237A1FDBE81E1ADDDA92F7FC0C15E7436B7C222E7759589919788B718B1F9F48356230B8F061F01FF21CD2DFEB2A1C744F8CBA3765364F1F417E105EDA7EB0ADBF1FD4CF4415B41CDA9BEF3CF6607A097EA2CFE32FA5376C01D1DF3B003FDEAE7571D0C54B5DED4DBBA2C753FB5ED889DD832085D75661CC762BBA28567CD080FB738B61C58ABF9962935C44322F1B96BEBEB594681CD2F20CA9F4D71C23D48E69725D37A4718924C4F145FBE0D841BE7C410A29C45810E240C319BADC04F990C4A84592FF925A73B6FE898F861B0E84D1146EB6856ADF066B11A0AE6915230F8A8E8234B33B5BAC1F3D1C3C05C8562DB51ACCAE2890C937F412D6E963C96965AA36350E8AB2901EE705B25407BC60711D9FC17E7885E5ED413ABBE2C207D55647F82C44367C13F489AD520A2A8FFA64C4F6EAF7AA816717F3019C6D240A4B9D788AFB73EA403523222D1E5940C47CAF304ED909C91146B |
234 | 20170625141110 2 6 100 6143 5 E30D9BCD65DA0EAEF6A1D4D083834D4724538836AE04DFB6A7DAF235F5D9992B7E42128D43E229BF4906EF0C6A27F60B95A1FC514C2D55A0D616B3B6924F08E9C0BCD8AE1CB624F645785C2AA552C94E125D6602CF63CF52014A1B0A4AE0DE823B03B6ABFA25839ABC3E8E050C295B8B3471EC58EAD9B659294C72EA65229E4E8EB21CA79CBB41BB552118A3CD32108E51D5FCE5C46A6CD03E4246CB57E32BAA09B15503FBFA4F4C943B2378F10EE312C1F12A14010AFD1698B8EBCCFC8D0DF17829A153199154EBF9E40FD81B8E1AF5881D0EC1D3BEDB2D0F1DB9C44C9D8E7047310623D4FAAE28D2C16612CFB9AE9A8FD05B8FE22930346ECF7B21B5800778EA0D5D3B7BDF18B03ABF33C9D0B4648CF687ED229C811CE290CFAF94F9C9AF4EC3E47480955E5C81E85DA9EBCE99652DA07225C7CCEF39E224556E48D6371981C7232E00F3419F7B335FF36FE3989558277654DB356063ABC8F7BD0EF828B40D3BFC06D12FEC51278ACD32C3B67D4E2A0BBA1E20BDDA06DB9AF6AB250179DE3332EAC0A6D381963B51E8E167B8285BA3E6538B1D38B16B32196ABE009ADFDAF5E686E0107F76ED10414B6249D6895188456505CDB897FFCCEB8931802F87C02DFDC62825C6255DF2654712BE230CC86A30229D9E3438DB35CEED8F8447B9209CDECFC1776D2C43B4B98E9EEA3F4C049C1287CDB4540D395A4BC992602150CCC0479597E221E201B778DCA9701C517C89B95004FC19373ED9755C90FF32C44013678876EAD3FE5E637BF2F1959130EAF79E7A93088F52AA0AC993324294536CF3787C3A3F06F2DC201A070967E6F4525803DC83F5160B560465A4CE4BF20315858BE0E62A07C55B3A772CBF93DE99AADFCB304D2B544A9F17A22C2BEB791D98F714CA7CFF701CB7CAEC55C292A25A147935D7BBD1E66F2ED3EBC66E763209169033CE5A2D9884DC0CBAFF37517372544E1EB780A26CC71E5649EDFD5DA2FCFB58093D74D76FC2DAEC54567104701C31E3872C15BAC5F2A96833EEDAB9B7FF731F827DB3273D271BA8F9DE06181C1E38D031896971D801C571954337D94F7F2B87 | 234 | 20171130055239 2 6 100 6143 5 F2F9DF4571769305CF3128D1F3B27E0B51064C0D70472B4B834907A11B6C76DAA091DDD058F56E7E5A1A144CBAD246C592ADB38DB36673E636E06043CF3776DE42B2A3C52B29A5378A538205F863CBCE489A9D26209B2679B7C10179193C7B50CC806D8FEA57F761D54F010EDBDCBC7624B989AD0C894E9ABA77744E164CB92A615919DA4E66C41F0D7DE03C2C8C89077E8E712CB867993110D1DAC8F8CC87AEC5F98E0A46D2DA94727D432D4406AE31F8FB2B9DAD9E882994E41FA2B46D364B416F05BE0D579DC31D0ABD89EBA6789835C4B4CE6B8F0E9C19E2B99BBB55211D9392F18A210686F487C38F6ED33CAFA7F2468B423CC7F36DE73655CE7B94D681409616C94E55B31AB6DC3422956DB8F00490A539D95F1BF4965340CB90B5BA03104F643F96B9ABDCB5D34920E4E675DBAB81C038C11AB28459E1F10F15EBE9C21BA47427C72C2960DD8763BFCE27D47C4A06B24EBD911DED8A0ADE710930F87132830B1B8E0675447A48E519FB18FD66D4012DE35E03533CB9C13B7D19823092F7F0D9C0E5C0EF7BCF9017817CEBB550168BB846E91AA5FFF1E44B7F42215890A26157EFA5647AF412924BFC0F6CD278261BA1F959AE90F165DB11AD56CEB5223AF8BCCD5760AAB2ED5F11C56B517FFBC96B178E46EF11E7A4E8209C1CA887218600B8B20FAA80AA0B00816969A0AE25807374C24566AC03F8DFB417D0C3E43AC9BDA056AD0562A28C9F7C5EEC7AC847699170668113DF07F22A875C40D570B8CCF09EE00D91B9841A7D10F1763EE48C0BABA0F76EAD940AB5FB376C685E2EF4A81717F8ACDA8ED205FB819E62598FB343451EE47D73B9541D9F8FB6DF4029FC8FCEC0F5B94258DB49B39717B0FEB5DB3BA8FB1D28F4FE0319F84111BE08E9D251791A0A1809B55C307B0D337923EDB8CA4F2018DE38A3B7AADDFB938D93C4F3F287DBFDD542D11C747A319AAA9CA8446EA4D5A3B8B91B48B850009A9353596F2352839D55FD45F442272123402D58C80411E5113C50E35D28EDAD3C7271E9ABB4E7152C70B306571433323661D4D12B2FAB10304F721B07FF480431DB8C972F |
235 | 20170625144415 2 6 100 6143 2 E30D9BCD65DA0EAEF6A1D4D083834D4724538836AE04DFB6A7DAF235F5D9992B7E42128D43E229BF4906EF0C6A27F60B95A1FC514C2D55A0D616B3B6924F08E9C0BCD8AE1CB624F645785C2AA552C94E125D6602CF63CF52014A1B0A4AE0DE823B03B6ABFA25839ABC3E8E050C295B8B3471EC58EAD9B659294C72EA65229E4E8EB21CA79CBB41BB552118A3CD32108E51D5FCE5C46A6CD03E4246CB57E32BAA09B15503FBFA4F4C943B2378F10EE312C1F12A14010AFD1698B8EBCCFC8D0DF17829A153199154EBF9E40FD81B8E1AF5881D0EC1D3BEDB2D0F1DB9C44C9D8E7047310623D4FAAE28D2C16612CFB9AE9A8FD05B8FE22930346ECF7B21B5800778EA0D5D3B7BDF18B03ABF33C9D0B4648CF687ED229C811CE290CFAF94F9C9AF4EC3E47480955E5C81E85DA9EBCE99652DA07225C7CCEF39E224556E48D6371981C7232E00F3419F7B335FF36FE3989558277654DB356063ABC8F7BD0EF828B40D3BFC06D12FEC51278ACD32C3B67D4E2A0BBA1E20BDDA06DB9AF6AB250179DE3332EAC0A6D381963B51E8E167B8285BA3E6538B1D38B16B32196ABE009ADFDAF5E686E0107F76ED10414B6249D6895188456505CDB897FFCCEB8931802F87C02DFDC62825C6255DF2654712BE230CC86A30229D9E3438DB35CEED8F8447B9209CDECFC1776D2C43B4B98E9EEA3F4C049C1287CDB4540D395A4BC992602150CCC0479597E221E201B778DCA9701C517C89B95004FC19373ED9755C90FF32C44013678876EAD3FE5E637BF2F1959130EAF79E7A93088F52AA0AC993324294536CF3787C3A3F06F2DC201A070967E6F4525803DC83F5160B560465A4CE4BF20315858BE0E62A07C55B3A772CBF93DE99AADFCB304D2B544A9F17A22C2BEB791D98F714CA7CFF701CB7CAEC55C292A25A147935D7BBD1E66F2ED3EBC66E763209169033CE5A2D9884DC0CBAFF37517372544E1EB780A26CC71E5649EDFD5DA2FCFB58093D74D76FC2DAEC54567104701C31E3872C15BAC5F2A96833EEDAB9B7FF731F827DB3273D271BA8F9DE06181C1E38D031896971D801C571954337D9504A46D3 | 235 | 20171130062757 2 6 100 6143 5 F2F9DF4571769305CF3128D1F3B27E0B51064C0D70472B4B834907A11B6C76DAA091DDD058F56E7E5A1A144CBAD246C592ADB38DB36673E636E06043CF3776DE42B2A3C52B29A5378A538205F863CBCE489A9D26209B2679B7C10179193C7B50CC806D8FEA57F761D54F010EDBDCBC7624B989AD0C894E9ABA77744E164CB92A615919DA4E66C41F0D7DE03C2C8C89077E8E712CB867993110D1DAC8F8CC87AEC5F98E0A46D2DA94727D432D4406AE31F8FB2B9DAD9E882994E41FA2B46D364B416F05BE0D579DC31D0ABD89EBA6789835C4B4CE6B8F0E9C19E2B99BBB55211D9392F18A210686F487C38F6ED33CAFA7F2468B423CC7F36DE73655CE7B94D681409616C94E55B31AB6DC3422956DB8F00490A539D95F1BF4965340CB90B5BA03104F643F96B9ABDCB5D34920E4E675DBAB81C038C11AB28459E1F10F15EBE9C21BA47427C72C2960DD8763BFCE27D47C4A06B24EBD911DED8A0ADE710930F87132830B1B8E0675447A48E519FB18FD66D4012DE35E03533CB9C13B7D19823092F7F0D9C0E5C0EF7BCF9017817CEBB550168BB846E91AA5FFF1E44B7F42215890A26157EFA5647AF412924BFC0F6CD278261BA1F959AE90F165DB11AD56CEB5223AF8BCCD5760AAB2ED5F11C56B517FFBC96B178E46EF11E7A4E8209C1CA887218600B8B20FAA80AA0B00816969A0AE25807374C24566AC03F8DFB417D0C3E43AC9BDA056AD0562A28C9F7C5EEC7AC847699170668113DF07F22A875C40D570B8CCF09EE00D91B9841A7D10F1763EE48C0BABA0F76EAD940AB5FB376C685E2EF4A81717F8ACDA8ED205FB819E62598FB343451EE47D73B9541D9F8FB6DF4029FC8FCEC0F5B94258DB49B39717B0FEB5DB3BA8FB1D28F4FE0319F84111BE08E9D251791A0A1809B55C307B0D337923EDB8CA4F2018DE38A3B7AADDFB938D93C4F3F287DBFDD542D11C747A319AAA9CA8446EA4D5A3B8B91B48B850009A9353596F2352839D55FD45F442272123402D58C80411E5113C50E35D28EDAD3C7271E9ABB4E7152C70B306571433323661D4D12B2FAB10304F721B07FF480431DC5AB557 |
236 | 20170625145639 2 6 100 6143 5 E30D9BCD65DA0EAEF6A1D4D083834D4724538836AE04DFB6A7DAF235F5D9992B7E42128D43E229BF4906EF0C6A27F60B95A1FC514C2D55A0D616B3B6924F08E9C0BCD8AE1CB624F645785C2AA552C94E125D6602CF63CF52014A1B0A4AE0DE823B03B6ABFA25839ABC3E8E050C295B8B3471EC58EAD9B659294C72EA65229E4E8EB21CA79CBB41BB552118A3CD32108E51D5FCE5C46A6CD03E4246CB57E32BAA09B15503FBFA4F4C943B2378F10EE312C1F12A14010AFD1698B8EBCCFC8D0DF17829A153199154EBF9E40FD81B8E1AF5881D0EC1D3BEDB2D0F1DB9C44C9D8E7047310623D4FAAE28D2C16612CFB9AE9A8FD05B8FE22930346ECF7B21B5800778EA0D5D3B7BDF18B03ABF33C9D0B4648CF687ED229C811CE290CFAF94F9C9AF4EC3E47480955E5C81E85DA9EBCE99652DA07225C7CCEF39E224556E48D6371981C7232E00F3419F7B335FF36FE3989558277654DB356063ABC8F7BD0EF828B40D3BFC06D12FEC51278ACD32C3B67D4E2A0BBA1E20BDDA06DB9AF6AB250179DE3332EAC0A6D381963B51E8E167B8285BA3E6538B1D38B16B32196ABE009ADFDAF5E686E0107F76ED10414B6249D6895188456505CDB897FFCCEB8931802F87C02DFDC62825C6255DF2654712BE230CC86A30229D9E3438DB35CEED8F8447B9209CDECFC1776D2C43B4B98E9EEA3F4C049C1287CDB4540D395A4BC992602150CCC0479597E221E201B778DCA9701C517C89B95004FC19373ED9755C90FF32C44013678876EAD3FE5E637BF2F1959130EAF79E7A93088F52AA0AC993324294536CF3787C3A3F06F2DC201A070967E6F4525803DC83F5160B560465A4CE4BF20315858BE0E62A07C55B3A772CBF93DE99AADFCB304D2B544A9F17A22C2BEB791D98F714CA7CFF701CB7CAEC55C292A25A147935D7BBD1E66F2ED3EBC66E763209169033CE5A2D9884DC0CBAFF37517372544E1EB780A26CC71E5649EDFD5DA2FCFB58093D74D76FC2DAEC54567104701C31E3872C15BAC5F2A96833EEDAB9B7FF731F827DB3273D271BA8F9DE06181C1E38D031896971D801C571954337D9508CDF97 | 236 | 20171130090503 2 6 100 6143 5 F2F9DF4571769305CF3128D1F3B27E0B51064C0D70472B4B834907A11B6C76DAA091DDD058F56E7E5A1A144CBAD246C592ADB38DB36673E636E06043CF3776DE42B2A3C52B29A5378A538205F863CBCE489A9D26209B2679B7C10179193C7B50CC806D8FEA57F761D54F010EDBDCBC7624B989AD0C894E9ABA77744E164CB92A615919DA4E66C41F0D7DE03C2C8C89077E8E712CB867993110D1DAC8F8CC87AEC5F98E0A46D2DA94727D432D4406AE31F8FB2B9DAD9E882994E41FA2B46D364B416F05BE0D579DC31D0ABD89EBA6789835C4B4CE6B8F0E9C19E2B99BBB55211D9392F18A210686F487C38F6ED33CAFA7F2468B423CC7F36DE73655CE7B94D681409616C94E55B31AB6DC3422956DB8F00490A539D95F1BF4965340CB90B5BA03104F643F96B9ABDCB5D34920E4E675DBAB81C038C11AB28459E1F10F15EBE9C21BA47427C72C2960DD8763BFCE27D47C4A06B24EBD911DED8A0ADE710930F87132830B1B8E0675447A48E519FB18FD66D4012DE35E03533CB9C13B7D19823092F7F0D9C0E5C0EF7BCF9017817CEBB550168BB846E91AA5FFF1E44B7F42215890A26157EFA5647AF412924BFC0F6CD278261BA1F959AE90F165DB11AD56CEB5223AF8BCCD5760AAB2ED5F11C56B517FFBC96B178E46EF11E7A4E8209C1CA887218600B8B20FAA80AA0B00816969A0AE25807374C24566AC03F8DFB417D0C3E43AC9BDA056AD0562A28C9F7C5EEC7AC847699170668113DF07F22A875C40D570B8CCF09EE00D91B9841A7D10F1763EE48C0BABA0F76EAD940AB5FB376C685E2EF4A81717F8ACDA8ED205FB819E62598FB343451EE47D73B9541D9F8FB6DF4029FC8FCEC0F5B94258DB49B39717B0FEB5DB3BA8FB1D28F4FE0319F84111BE08E9D251791A0A1809B55C307B0D337923EDB8CA4F2018DE38A3B7AADDFB938D93C4F3F287DBFDD542D11C747A319AAA9CA8446EA4D5A3B8B91B48B850009A9353596F2352839D55FD45F442272123402D58C80411E5113C50E35D28EDAD3C7271E9ABB4E7152C70B306571433323661D4D12B2FAB10304F721B07FF480431E0222F57 |
237 | 20170625203254 2 6 100 6143 2 E30D9BCD65DA0EAEF6A1D4D083834D4724538836AE04DFB6A7DAF235F5D9992B7E42128D43E229BF4906EF0C6A27F60B95A1FC514C2D55A0D616B3B6924F08E9C0BCD8AE1CB624F645785C2AA552C94E125D6602CF63CF52014A1B0A4AE0DE823B03B6ABFA25839ABC3E8E050C295B8B3471EC58EAD9B659294C72EA65229E4E8EB21CA79CBB41BB552118A3CD32108E51D5FCE5C46A6CD03E4246CB57E32BAA09B15503FBFA4F4C943B2378F10EE312C1F12A14010AFD1698B8EBCCFC8D0DF17829A153199154EBF9E40FD81B8E1AF5881D0EC1D3BEDB2D0F1DB9C44C9D8E7047310623D4FAAE28D2C16612CFB9AE9A8FD05B8FE22930346ECF7B21B5800778EA0D5D3B7BDF18B03ABF33C9D0B4648CF687ED229C811CE290CFAF94F9C9AF4EC3E47480955E5C81E85DA9EBCE99652DA07225C7CCEF39E224556E48D6371981C7232E00F3419F7B335FF36FE3989558277654DB356063ABC8F7BD0EF828B40D3BFC06D12FEC51278ACD32C3B67D4E2A0BBA1E20BDDA06DB9AF6AB250179DE3332EAC0A6D381963B51E8E167B8285BA3E6538B1D38B16B32196ABE009ADFDAF5E686E0107F76ED10414B6249D6895188456505CDB897FFCCEB8931802F87C02DFDC62825C6255DF2654712BE230CC86A30229D9E3438DB35CEED8F8447B9209CDECFC1776D2C43B4B98E9EEA3F4C049C1287CDB4540D395A4BC992602150CCC0479597E221E201B778DCA9701C517C89B95004FC19373ED9755C90FF32C44013678876EAD3FE5E637BF2F1959130EAF79E7A93088F52AA0AC993324294536CF3787C3A3F06F2DC201A070967E6F4525803DC83F5160B560465A4CE4BF20315858BE0E62A07C55B3A772CBF93DE99AADFCB304D2B544A9F17A22C2BEB791D98F714CA7CFF701CB7CAEC55C292A25A147935D7BBD1E66F2ED3EBC66E763209169033CE5A2D9884DC0CBAFF37517372544E1EB780A26CC71E5649EDFD5DA2FCFB58093D74D76FC2DAEC54567104701C31E3872C15BAC5F2A96833EEDAB9B7FF731F827DB3273D271BA8F9DE06181C1E38D031896971D801C571954337D958CDC1DB | 237 | 20171130104830 2 6 100 6143 5 F2F9DF4571769305CF3128D1F3B27E0B51064C0D70472B4B834907A11B6C76DAA091DDD058F56E7E5A1A144CBAD246C592ADB38DB36673E636E06043CF3776DE42B2A3C52B29A5378A538205F863CBCE489A9D26209B2679B7C10179193C7B50CC806D8FEA57F761D54F010EDBDCBC7624B989AD0C894E9ABA77744E164CB92A615919DA4E66C41F0D7DE03C2C8C89077E8E712CB867993110D1DAC8F8CC87AEC5F98E0A46D2DA94727D432D4406AE31F8FB2B9DAD9E882994E41FA2B46D364B416F05BE0D579DC31D0ABD89EBA6789835C4B4CE6B8F0E9C19E2B99BBB55211D9392F18A210686F487C38F6ED33CAFA7F2468B423CC7F36DE73655CE7B94D681409616C94E55B31AB6DC3422956DB8F00490A539D95F1BF4965340CB90B5BA03104F643F96B9ABDCB5D34920E4E675DBAB81C038C11AB28459E1F10F15EBE9C21BA47427C72C2960DD8763BFCE27D47C4A06B24EBD911DED8A0ADE710930F87132830B1B8E0675447A48E519FB18FD66D4012DE35E03533CB9C13B7D19823092F7F0D9C0E5C0EF7BCF9017817CEBB550168BB846E91AA5FFF1E44B7F42215890A26157EFA5647AF412924BFC0F6CD278261BA1F959AE90F165DB11AD56CEB5223AF8BCCD5760AAB2ED5F11C56B517FFBC96B178E46EF11E7A4E8209C1CA887218600B8B20FAA80AA0B00816969A0AE25807374C24566AC03F8DFB417D0C3E43AC9BDA056AD0562A28C9F7C5EEC7AC847699170668113DF07F22A875C40D570B8CCF09EE00D91B9841A7D10F1763EE48C0BABA0F76EAD940AB5FB376C685E2EF4A81717F8ACDA8ED205FB819E62598FB343451EE47D73B9541D9F8FB6DF4029FC8FCEC0F5B94258DB49B39717B0FEB5DB3BA8FB1D28F4FE0319F84111BE08E9D251791A0A1809B55C307B0D337923EDB8CA4F2018DE38A3B7AADDFB938D93C4F3F287DBFDD542D11C747A319AAA9CA8446EA4D5A3B8B91B48B850009A9353596F2352839D55FD45F442272123402D58C80411E5113C50E35D28EDAD3C7271E9ABB4E7152C70B306571433323661D4D12B2FAB10304F721B07FF480431E2966E47 |
238 | 20170625215049 2 6 100 6143 2 E30D9BCD65DA0EAEF6A1D4D083834D4724538836AE04DFB6A7DAF235F5D9992B7E42128D43E229BF4906EF0C6A27F60B95A1FC514C2D55A0D616B3B6924F08E9C0BCD8AE1CB624F645785C2AA552C94E125D6602CF63CF52014A1B0A4AE0DE823B03B6ABFA25839ABC3E8E050C295B8B3471EC58EAD9B659294C72EA65229E4E8EB21CA79CBB41BB552118A3CD32108E51D5FCE5C46A6CD03E4246CB57E32BAA09B15503FBFA4F4C943B2378F10EE312C1F12A14010AFD1698B8EBCCFC8D0DF17829A153199154EBF9E40FD81B8E1AF5881D0EC1D3BEDB2D0F1DB9C44C9D8E7047310623D4FAAE28D2C16612CFB9AE9A8FD05B8FE22930346ECF7B21B5800778EA0D5D3B7BDF18B03ABF33C9D0B4648CF687ED229C811CE290CFAF94F9C9AF4EC3E47480955E5C81E85DA9EBCE99652DA07225C7CCEF39E224556E48D6371981C7232E00F3419F7B335FF36FE3989558277654DB356063ABC8F7BD0EF828B40D3BFC06D12FEC51278ACD32C3B67D4E2A0BBA1E20BDDA06DB9AF6AB250179DE3332EAC0A6D381963B51E8E167B8285BA3E6538B1D38B16B32196ABE009ADFDAF5E686E0107F76ED10414B6249D6895188456505CDB897FFCCEB8931802F87C02DFDC62825C6255DF2654712BE230CC86A30229D9E3438DB35CEED8F8447B9209CDECFC1776D2C43B4B98E9EEA3F4C049C1287CDB4540D395A4BC992602150CCC0479597E221E201B778DCA9701C517C89B95004FC19373ED9755C90FF32C44013678876EAD3FE5E637BF2F1959130EAF79E7A93088F52AA0AC993324294536CF3787C3A3F06F2DC201A070967E6F4525803DC83F5160B560465A4CE4BF20315858BE0E62A07C55B3A772CBF93DE99AADFCB304D2B544A9F17A22C2BEB791D98F714CA7CFF701CB7CAEC55C292A25A147935D7BBD1E66F2ED3EBC66E763209169033CE5A2D9884DC0CBAFF37517372544E1EB780A26CC71E5649EDFD5DA2FCFB58093D74D76FC2DAEC54567104701C31E3872C15BAC5F2A96833EEDAB9B7FF731F827DB3273D271BA8F9DE06181C1E38D031896971D801C571954337D95AA6BE13 | 238 | 20171130131919 2 6 100 6143 2 F2F9DF4571769305CF3128D1F3B27E0B51064C0D70472B4B834907A11B6C76DAA091DDD058F56E7E5A1A144CBAD246C592ADB38DB36673E636E06043CF3776DE42B2A3C52B29A5378A538205F863CBCE489A9D26209B2679B7C10179193C7B50CC806D8FEA57F761D54F010EDBDCBC7624B989AD0C894E9ABA77744E164CB92A615919DA4E66C41F0D7DE03C2C8C89077E8E712CB867993110D1DAC8F8CC87AEC5F98E0A46D2DA94727D432D4406AE31F8FB2B9DAD9E882994E41FA2B46D364B416F05BE0D579DC31D0ABD89EBA6789835C4B4CE6B8F0E9C19E2B99BBB55211D9392F18A210686F487C38F6ED33CAFA7F2468B423CC7F36DE73655CE7B94D681409616C94E55B31AB6DC3422956DB8F00490A539D95F1BF4965340CB90B5BA03104F643F96B9ABDCB5D34920E4E675DBAB81C038C11AB28459E1F10F15EBE9C21BA47427C72C2960DD8763BFCE27D47C4A06B24EBD911DED8A0ADE710930F87132830B1B8E0675447A48E519FB18FD66D4012DE35E03533CB9C13B7D19823092F7F0D9C0E5C0EF7BCF9017817CEBB550168BB846E91AA5FFF1E44B7F42215890A26157EFA5647AF412924BFC0F6CD278261BA1F959AE90F165DB11AD56CEB5223AF8BCCD5760AAB2ED5F11C56B517FFBC96B178E46EF11E7A4E8209C1CA887218600B8B20FAA80AA0B00816969A0AE25807374C24566AC03F8DFB417D0C3E43AC9BDA056AD0562A28C9F7C5EEC7AC847699170668113DF07F22A875C40D570B8CCF09EE00D91B9841A7D10F1763EE48C0BABA0F76EAD940AB5FB376C685E2EF4A81717F8ACDA8ED205FB819E62598FB343451EE47D73B9541D9F8FB6DF4029FC8FCEC0F5B94258DB49B39717B0FEB5DB3BA8FB1D28F4FE0319F84111BE08E9D251791A0A1809B55C307B0D337923EDB8CA4F2018DE38A3B7AADDFB938D93C4F3F287DBFDD542D11C747A319AAA9CA8446EA4D5A3B8B91B48B850009A9353596F2352839D55FD45F442272123402D58C80411E5113C50E35D28EDAD3C7271E9ABB4E7152C70B306571433323661D4D12B2FAB10304F721B07FF480431E65A304B |
239 | 20170625220255 2 6 100 6143 5 E30D9BCD65DA0EAEF6A1D4D083834D4724538836AE04DFB6A7DAF235F5D9992B7E42128D43E229BF4906EF0C6A27F60B95A1FC514C2D55A0D616B3B6924F08E9C0BCD8AE1CB624F645785C2AA552C94E125D6602CF63CF52014A1B0A4AE0DE823B03B6ABFA25839ABC3E8E050C295B8B3471EC58EAD9B659294C72EA65229E4E8EB21CA79CBB41BB552118A3CD32108E51D5FCE5C46A6CD03E4246CB57E32BAA09B15503FBFA4F4C943B2378F10EE312C1F12A14010AFD1698B8EBCCFC8D0DF17829A153199154EBF9E40FD81B8E1AF5881D0EC1D3BEDB2D0F1DB9C44C9D8E7047310623D4FAAE28D2C16612CFB9AE9A8FD05B8FE22930346ECF7B21B5800778EA0D5D3B7BDF18B03ABF33C9D0B4648CF687ED229C811CE290CFAF94F9C9AF4EC3E47480955E5C81E85DA9EBCE99652DA07225C7CCEF39E224556E48D6371981C7232E00F3419F7B335FF36FE3989558277654DB356063ABC8F7BD0EF828B40D3BFC06D12FEC51278ACD32C3B67D4E2A0BBA1E20BDDA06DB9AF6AB250179DE3332EAC0A6D381963B51E8E167B8285BA3E6538B1D38B16B32196ABE009ADFDAF5E686E0107F76ED10414B6249D6895188456505CDB897FFCCEB8931802F87C02DFDC62825C6255DF2654712BE230CC86A30229D9E3438DB35CEED8F8447B9209CDECFC1776D2C43B4B98E9EEA3F4C049C1287CDB4540D395A4BC992602150CCC0479597E221E201B778DCA9701C517C89B95004FC19373ED9755C90FF32C44013678876EAD3FE5E637BF2F1959130EAF79E7A93088F52AA0AC993324294536CF3787C3A3F06F2DC201A070967E6F4525803DC83F5160B560465A4CE4BF20315858BE0E62A07C55B3A772CBF93DE99AADFCB304D2B544A9F17A22C2BEB791D98F714CA7CFF701CB7CAEC55C292A25A147935D7BBD1E66F2ED3EBC66E763209169033CE5A2D9884DC0CBAFF37517372544E1EB780A26CC71E5649EDFD5DA2FCFB58093D74D76FC2DAEC54567104701C31E3872C15BAC5F2A96833EEDAB9B7FF731F827DB3273D271BA8F9DE06181C1E38D031896971D801C571954337D95AE8D4FF | 239 | 20171130151632 2 6 100 6143 2 F2F9DF4571769305CF3128D1F3B27E0B51064C0D70472B4B834907A11B6C76DAA091DDD058F56E7E5A1A144CBAD246C592ADB38DB36673E636E06043CF3776DE42B2A3C52B29A5378A538205F863CBCE489A9D26209B2679B7C10179193C7B50CC806D8FEA57F761D54F010EDBDCBC7624B989AD0C894E9ABA77744E164CB92A615919DA4E66C41F0D7DE03C2C8C89077E8E712CB867993110D1DAC8F8CC87AEC5F98E0A46D2DA94727D432D4406AE31F8FB2B9DAD9E882994E41FA2B46D364B416F05BE0D579DC31D0ABD89EBA6789835C4B4CE6B8F0E9C19E2B99BBB55211D9392F18A210686F487C38F6ED33CAFA7F2468B423CC7F36DE73655CE7B94D681409616C94E55B31AB6DC3422956DB8F00490A539D95F1BF4965340CB90B5BA03104F643F96B9ABDCB5D34920E4E675DBAB81C038C11AB28459E1F10F15EBE9C21BA47427C72C2960DD8763BFCE27D47C4A06B24EBD911DED8A0ADE710930F87132830B1B8E0675447A48E519FB18FD66D4012DE35E03533CB9C13B7D19823092F7F0D9C0E5C0EF7BCF9017817CEBB550168BB846E91AA5FFF1E44B7F42215890A26157EFA5647AF412924BFC0F6CD278261BA1F959AE90F165DB11AD56CEB5223AF8BCCD5760AAB2ED5F11C56B517FFBC96B178E46EF11E7A4E8209C1CA887218600B8B20FAA80AA0B00816969A0AE25807374C24566AC03F8DFB417D0C3E43AC9BDA056AD0562A28C9F7C5EEC7AC847699170668113DF07F22A875C40D570B8CCF09EE00D91B9841A7D10F1763EE48C0BABA0F76EAD940AB5FB376C685E2EF4A81717F8ACDA8ED205FB819E62598FB343451EE47D73B9541D9F8FB6DF4029FC8FCEC0F5B94258DB49B39717B0FEB5DB3BA8FB1D28F4FE0319F84111BE08E9D251791A0A1809B55C307B0D337923EDB8CA4F2018DE38A3B7AADDFB938D93C4F3F287DBFDD542D11C747A319AAA9CA8446EA4D5A3B8B91B48B850009A9353596F2352839D55FD45F442272123402D58C80411E5113C50E35D28EDAD3C7271E9ABB4E7152C70B306571433323661D4D12B2FAB10304F721B07FF480431E9314BFB |
240 | 20170626000351 2 6 100 6143 2 FE3AFB7EA9CBCB633757EA982ED0DDFF120459E69D35DB36ACC5F69B04A5CCEE59A0312A97687F2B3DBC20917F4BF0B16D97B75EDCA16B58BDEB8BB1A726F6CB8BF5D7FC483777129A1C19CB559943EF201323760672C63859E830C6E99AFE5DD7A4E89BAD41C63B687558DD277F4E06A29D1E14A21CAA6FDD4E6F21EB8B146F2C04F93B1C94234E6295F2F8773B16BA3D51758841EA48ADD1A626E252DB3B78594B4586AC9E9EAF100F294ADC82BEBBF8CAB96B671EE7050B42733EB741107C5D2199D305C84F93C6AEEE6BD607DB7C0EFED773FB1DB73B04EFA72EB36111B99EBE6EEE899307FD288329FB2DB7E81776AEF0F935FFEE77611BDCFEC309F97EEB6E36FE42CA4C8EFAA0B4B93F5D83606B8FA7B49DD1DBB8F828B9C805381CB5DF4AC7FFAE27C62CBCD2FE80BB4157EB7F3267041255AC2F7EA3B450951878166049E5FF1BD3B361082FB184E342DDA1961ACFD90944F37E09A06AFE463AA9AA66EE699D28C4D109F3E8111CF4D625161B2855C11593AE408AE44DC026091119744FF09A4AB3C00717ACA004E26ACA53BF6444D839CF477A56FEAFFBF2E4CB946512815269D8E3C163FC29288A917A4A0ACC6DF54454CE2D54AC79AE05BF816DE1E3E9D3A9CC69DBE674880F98ECB8D8D4C4247AC07BC9B7C40FB89C4B9D4DA4604B37D15047DFB28C5D241CDFA327C3996872A0C05B84342F81A308D7796CA4A4038E47A5D4658F757C3F9645F11DEA92AE4D2E77FDB1A5D12519FF947F39A68152528CB02F915894D728C0E755B8BC4A99FCFC778A4099558A06D5FECC4C22DAA7E23C3B5E8E99B5365D5046C8C65846D949A521C0B25EFE5F5CD0845F09C29C096C4A80755120A299EA652B204775E53B2D521F366F4EF9FA65B1D8CB048295C39BE92667200E2889B1577CBD0AC23B2280B758A3650BE60D55F215DBF166873592253B1254968B5A46A61C792A153342C3ADE408676F4B27B7F22C50B079D0E32AEA134168A53A36F18E2FFA2459EDBA89BEC13D19C342235F6E9CF8F721B608F6297A3486173A7D5CED5E2AF6343775668C1B1FB0B745157973A06777EB | 240 | 20171130154516 2 6 100 6143 5 F2F9DF4571769305CF3128D1F3B27E0B51064C0D70472B4B834907A11B6C76DAA091DDD058F56E7E5A1A144CBAD246C592ADB38DB36673E636E06043CF3776DE42B2A3C52B29A5378A538205F863CBCE489A9D26209B2679B7C10179193C7B50CC806D8FEA57F761D54F010EDBDCBC7624B989AD0C894E9ABA77744E164CB92A615919DA4E66C41F0D7DE03C2C8C89077E8E712CB867993110D1DAC8F8CC87AEC5F98E0A46D2DA94727D432D4406AE31F8FB2B9DAD9E882994E41FA2B46D364B416F05BE0D579DC31D0ABD89EBA6789835C4B4CE6B8F0E9C19E2B99BBB55211D9392F18A210686F487C38F6ED33CAFA7F2468B423CC7F36DE73655CE7B94D681409616C94E55B31AB6DC3422956DB8F00490A539D95F1BF4965340CB90B5BA03104F643F96B9ABDCB5D34920E4E675DBAB81C038C11AB28459E1F10F15EBE9C21BA47427C72C2960DD8763BFCE27D47C4A06B24EBD911DED8A0ADE710930F87132830B1B8E0675447A48E519FB18FD66D4012DE35E03533CB9C13B7D19823092F7F0D9C0E5C0EF7BCF9017817CEBB550168BB846E91AA5FFF1E44B7F42215890A26157EFA5647AF412924BFC0F6CD278261BA1F959AE90F165DB11AD56CEB5223AF8BCCD5760AAB2ED5F11C56B517FFBC96B178E46EF11E7A4E8209C1CA887218600B8B20FAA80AA0B00816969A0AE25807374C24566AC03F8DFB417D0C3E43AC9BDA056AD0562A28C9F7C5EEC7AC847699170668113DF07F22A875C40D570B8CCF09EE00D91B9841A7D10F1763EE48C0BABA0F76EAD940AB5FB376C685E2EF4A81717F8ACDA8ED205FB819E62598FB343451EE47D73B9541D9F8FB6DF4029FC8FCEC0F5B94258DB49B39717B0FEB5DB3BA8FB1D28F4FE0319F84111BE08E9D251791A0A1809B55C307B0D337923EDB8CA4F2018DE38A3B7AADDFB938D93C4F3F287DBFDD542D11C747A319AAA9CA8446EA4D5A3B8B91B48B850009A9353596F2352839D55FD45F442272123402D58C80411E5113C50E35D28EDAD3C7271E9ABB4E7152C70B306571433323661D4D12B2FAB10304F721B07FF480431E9DF731F |
241 | 20170626010044 2 6 100 6143 2 FE3AFB7EA9CBCB633757EA982ED0DDFF120459E69D35DB36ACC5F69B04A5CCEE59A0312A97687F2B3DBC20917F4BF0B16D97B75EDCA16B58BDEB8BB1A726F6CB8BF5D7FC483777129A1C19CB559943EF201323760672C63859E830C6E99AFE5DD7A4E89BAD41C63B687558DD277F4E06A29D1E14A21CAA6FDD4E6F21EB8B146F2C04F93B1C94234E6295F2F8773B16BA3D51758841EA48ADD1A626E252DB3B78594B4586AC9E9EAF100F294ADC82BEBBF8CAB96B671EE7050B42733EB741107C5D2199D305C84F93C6AEEE6BD607DB7C0EFED773FB1DB73B04EFA72EB36111B99EBE6EEE899307FD288329FB2DB7E81776AEF0F935FFEE77611BDCFEC309F97EEB6E36FE42CA4C8EFAA0B4B93F5D83606B8FA7B49DD1DBB8F828B9C805381CB5DF4AC7FFAE27C62CBCD2FE80BB4157EB7F3267041255AC2F7EA3B450951878166049E5FF1BD3B361082FB184E342DDA1961ACFD90944F37E09A06AFE463AA9AA66EE699D28C4D109F3E8111CF4D625161B2855C11593AE408AE44DC026091119744FF09A4AB3C00717ACA004E26ACA53BF6444D839CF477A56FEAFFBF2E4CB946512815269D8E3C163FC29288A917A4A0ACC6DF54454CE2D54AC79AE05BF816DE1E3E9D3A9CC69DBE674880F98ECB8D8D4C4247AC07BC9B7C40FB89C4B9D4DA4604B37D15047DFB28C5D241CDFA327C3996872A0C05B84342F81A308D7796CA4A4038E47A5D4658F757C3F9645F11DEA92AE4D2E77FDB1A5D12519FF947F39A68152528CB02F915894D728C0E755B8BC4A99FCFC778A4099558A06D5FECC4C22DAA7E23C3B5E8E99B5365D5046C8C65846D949A521C0B25EFE5F5CD0845F09C29C096C4A80755120A299EA652B204775E53B2D521F366F4EF9FA65B1D8CB048295C39BE92667200E2889B1577CBD0AC23B2280B758A3650BE60D55F215DBF166873592253B1254968B5A46A61C792A153342C3ADE408676F4B27B7F22C50B079D0E32AEA134168A53A36F18E2FFA2459EDBA89BEC13D19C342235F6E9CF8F721B608F6297A3486173A7D5CED5E2AF6343775668C1B1FB0B745157973A1E685DB | 241 | 20171130170406 2 6 100 6143 2 F2F9DF4571769305CF3128D1F3B27E0B51064C0D70472B4B834907A11B6C76DAA091DDD058F56E7E5A1A144CBAD246C592ADB38DB36673E636E06043CF3776DE42B2A3C52B29A5378A538205F863CBCE489A9D26209B2679B7C10179193C7B50CC806D8FEA57F761D54F010EDBDCBC7624B989AD0C894E9ABA77744E164CB92A615919DA4E66C41F0D7DE03C2C8C89077E8E712CB867993110D1DAC8F8CC87AEC5F98E0A46D2DA94727D432D4406AE31F8FB2B9DAD9E882994E41FA2B46D364B416F05BE0D579DC31D0ABD89EBA6789835C4B4CE6B8F0E9C19E2B99BBB55211D9392F18A210686F487C38F6ED33CAFA7F2468B423CC7F36DE73655CE7B94D681409616C94E55B31AB6DC3422956DB8F00490A539D95F1BF4965340CB90B5BA03104F643F96B9ABDCB5D34920E4E675DBAB81C038C11AB28459E1F10F15EBE9C21BA47427C72C2960DD8763BFCE27D47C4A06B24EBD911DED8A0ADE710930F87132830B1B8E0675447A48E519FB18FD66D4012DE35E03533CB9C13B7D19823092F7F0D9C0E5C0EF7BCF9017817CEBB550168BB846E91AA5FFF1E44B7F42215890A26157EFA5647AF412924BFC0F6CD278261BA1F959AE90F165DB11AD56CEB5223AF8BCCD5760AAB2ED5F11C56B517FFBC96B178E46EF11E7A4E8209C1CA887218600B8B20FAA80AA0B00816969A0AE25807374C24566AC03F8DFB417D0C3E43AC9BDA056AD0562A28C9F7C5EEC7AC847699170668113DF07F22A875C40D570B8CCF09EE00D91B9841A7D10F1763EE48C0BABA0F76EAD940AB5FB376C685E2EF4A81717F8ACDA8ED205FB819E62598FB343451EE47D73B9541D9F8FB6DF4029FC8FCEC0F5B94258DB49B39717B0FEB5DB3BA8FB1D28F4FE0319F84111BE08E9D251791A0A1809B55C307B0D337923EDB8CA4F2018DE38A3B7AADDFB938D93C4F3F287DBFDD542D11C747A319AAA9CA8446EA4D5A3B8B91B48B850009A9353596F2352839D55FD45F442272123402D58C80411E5113C50E35D28EDAD3C7271E9ABB4E7152C70B306571433323661D4D12B2FAB10304F721B07FF480431EBBC2FF3 |
242 | 20170626011405 2 6 100 6143 2 FE3AFB7EA9CBCB633757EA982ED0DDFF120459E69D35DB36ACC5F69B04A5CCEE59A0312A97687F2B3DBC20917F4BF0B16D97B75EDCA16B58BDEB8BB1A726F6CB8BF5D7FC483777129A1C19CB559943EF201323760672C63859E830C6E99AFE5DD7A4E89BAD41C63B687558DD277F4E06A29D1E14A21CAA6FDD4E6F21EB8B146F2C04F93B1C94234E6295F2F8773B16BA3D51758841EA48ADD1A626E252DB3B78594B4586AC9E9EAF100F294ADC82BEBBF8CAB96B671EE7050B42733EB741107C5D2199D305C84F93C6AEEE6BD607DB7C0EFED773FB1DB73B04EFA72EB36111B99EBE6EEE899307FD288329FB2DB7E81776AEF0F935FFEE77611BDCFEC309F97EEB6E36FE42CA4C8EFAA0B4B93F5D83606B8FA7B49DD1DBB8F828B9C805381CB5DF4AC7FFAE27C62CBCD2FE80BB4157EB7F3267041255AC2F7EA3B450951878166049E5FF1BD3B361082FB184E342DDA1961ACFD90944F37E09A06AFE463AA9AA66EE699D28C4D109F3E8111CF4D625161B2855C11593AE408AE44DC026091119744FF09A4AB3C00717ACA004E26ACA53BF6444D839CF477A56FEAFFBF2E4CB946512815269D8E3C163FC29288A917A4A0ACC6DF54454CE2D54AC79AE05BF816DE1E3E9D3A9CC69DBE674880F98ECB8D8D4C4247AC07BC9B7C40FB89C4B9D4DA4604B37D15047DFB28C5D241CDFA327C3996872A0C05B84342F81A308D7796CA4A4038E47A5D4658F757C3F9645F11DEA92AE4D2E77FDB1A5D12519FF947F39A68152528CB02F915894D728C0E755B8BC4A99FCFC778A4099558A06D5FECC4C22DAA7E23C3B5E8E99B5365D5046C8C65846D949A521C0B25EFE5F5CD0845F09C29C096C4A80755120A299EA652B204775E53B2D521F366F4EF9FA65B1D8CB048295C39BE92667200E2889B1577CBD0AC23B2280B758A3650BE60D55F215DBF166873592253B1254968B5A46A61C792A153342C3ADE408676F4B27B7F22C50B079D0E32AEA134168A53A36F18E2FFA2459EDBA89BEC13D19C342235F6E9CF8F721B608F6297A3486173A7D5CED5E2AF6343775668C1B1FB0B745157973A237A0AB | 242 | 20171130200258 2 6 100 6143 2 F2F9DF4571769305CF3128D1F3B27E0B51064C0D70472B4B834907A11B6C76DAA091DDD058F56E7E5A1A144CBAD246C592ADB38DB36673E636E06043CF3776DE42B2A3C52B29A5378A538205F863CBCE489A9D26209B2679B7C10179193C7B50CC806D8FEA57F761D54F010EDBDCBC7624B989AD0C894E9ABA77744E164CB92A615919DA4E66C41F0D7DE03C2C8C89077E8E712CB867993110D1DAC8F8CC87AEC5F98E0A46D2DA94727D432D4406AE31F8FB2B9DAD9E882994E41FA2B46D364B416F05BE0D579DC31D0ABD89EBA6789835C4B4CE6B8F0E9C19E2B99BBB55211D9392F18A210686F487C38F6ED33CAFA7F2468B423CC7F36DE73655CE7B94D681409616C94E55B31AB6DC3422956DB8F00490A539D95F1BF4965340CB90B5BA03104F643F96B9ABDCB5D34920E4E675DBAB81C038C11AB28459E1F10F15EBE9C21BA47427C72C2960DD8763BFCE27D47C4A06B24EBD911DED8A0ADE710930F87132830B1B8E0675447A48E519FB18FD66D4012DE35E03533CB9C13B7D19823092F7F0D9C0E5C0EF7BCF9017817CEBB550168BB846E91AA5FFF1E44B7F42215890A26157EFA5647AF412924BFC0F6CD278261BA1F959AE90F165DB11AD56CEB5223AF8BCCD5760AAB2ED5F11C56B517FFBC96B178E46EF11E7A4E8209C1CA887218600B8B20FAA80AA0B00816969A0AE25807374C24566AC03F8DFB417D0C3E43AC9BDA056AD0562A28C9F7C5EEC7AC847699170668113DF07F22A875C40D570B8CCF09EE00D91B9841A7D10F1763EE48C0BABA0F76EAD940AB5FB376C685E2EF4A81717F8ACDA8ED205FB819E62598FB343451EE47D73B9541D9F8FB6DF4029FC8FCEC0F5B94258DB49B39717B0FEB5DB3BA8FB1D28F4FE0319F84111BE08E9D251791A0A1809B55C307B0D337923EDB8CA4F2018DE38A3B7AADDFB938D93C4F3F287DBFDD542D11C747A319AAA9CA8446EA4D5A3B8B91B48B850009A9353596F2352839D55FD45F442272123402D58C80411E5113C50E35D28EDAD3C7271E9ABB4E7152C70B306571433323661D4D12B2FAB10304F721B07FF480431EFD0ED9B |
243 | 20170626020723 2 6 100 6143 2 FE3AFB7EA9CBCB633757EA982ED0DDFF120459E69D35DB36ACC5F69B04A5CCEE59A0312A97687F2B3DBC20917F4BF0B16D97B75EDCA16B58BDEB8BB1A726F6CB8BF5D7FC483777129A1C19CB559943EF201323760672C63859E830C6E99AFE5DD7A4E89BAD41C63B687558DD277F4E06A29D1E14A21CAA6FDD4E6F21EB8B146F2C04F93B1C94234E6295F2F8773B16BA3D51758841EA48ADD1A626E252DB3B78594B4586AC9E9EAF100F294ADC82BEBBF8CAB96B671EE7050B42733EB741107C5D2199D305C84F93C6AEEE6BD607DB7C0EFED773FB1DB73B04EFA72EB36111B99EBE6EEE899307FD288329FB2DB7E81776AEF0F935FFEE77611BDCFEC309F97EEB6E36FE42CA4C8EFAA0B4B93F5D83606B8FA7B49DD1DBB8F828B9C805381CB5DF4AC7FFAE27C62CBCD2FE80BB4157EB7F3267041255AC2F7EA3B450951878166049E5FF1BD3B361082FB184E342DDA1961ACFD90944F37E09A06AFE463AA9AA66EE699D28C4D109F3E8111CF4D625161B2855C11593AE408AE44DC026091119744FF09A4AB3C00717ACA004E26ACA53BF6444D839CF477A56FEAFFBF2E4CB946512815269D8E3C163FC29288A917A4A0ACC6DF54454CE2D54AC79AE05BF816DE1E3E9D3A9CC69DBE674880F98ECB8D8D4C4247AC07BC9B7C40FB89C4B9D4DA4604B37D15047DFB28C5D241CDFA327C3996872A0C05B84342F81A308D7796CA4A4038E47A5D4658F757C3F9645F11DEA92AE4D2E77FDB1A5D12519FF947F39A68152528CB02F915894D728C0E755B8BC4A99FCFC778A4099558A06D5FECC4C22DAA7E23C3B5E8E99B5365D5046C8C65846D949A521C0B25EFE5F5CD0845F09C29C096C4A80755120A299EA652B204775E53B2D521F366F4EF9FA65B1D8CB048295C39BE92667200E2889B1577CBD0AC23B2280B758A3650BE60D55F215DBF166873592253B1254968B5A46A61C792A153342C3ADE408676F4B27B7F22C50B079D0E32AEA134168A53A36F18E2FFA2459EDBA89BEC13D19C342235F6E9CF8F721B608F6297A3486173A7D5CED5E2AF6343775668C1B1FB0B745157973A39C76DB | 243 | 20171130222515 2 6 100 6143 2 F2F9DF4571769305CF3128D1F3B27E0B51064C0D70472B4B834907A11B6C76DAA091DDD058F56E7E5A1A144CBAD246C592ADB38DB36673E636E06043CF3776DE42B2A3C52B29A5378A538205F863CBCE489A9D26209B2679B7C10179193C7B50CC806D8FEA57F761D54F010EDBDCBC7624B989AD0C894E9ABA77744E164CB92A615919DA4E66C41F0D7DE03C2C8C89077E8E712CB867993110D1DAC8F8CC87AEC5F98E0A46D2DA94727D432D4406AE31F8FB2B9DAD9E882994E41FA2B46D364B416F05BE0D579DC31D0ABD89EBA6789835C4B4CE6B8F0E9C19E2B99BBB55211D9392F18A210686F487C38F6ED33CAFA7F2468B423CC7F36DE73655CE7B94D681409616C94E55B31AB6DC3422956DB8F00490A539D95F1BF4965340CB90B5BA03104F643F96B9ABDCB5D34920E4E675DBAB81C038C11AB28459E1F10F15EBE9C21BA47427C72C2960DD8763BFCE27D47C4A06B24EBD911DED8A0ADE710930F87132830B1B8E0675447A48E519FB18FD66D4012DE35E03533CB9C13B7D19823092F7F0D9C0E5C0EF7BCF9017817CEBB550168BB846E91AA5FFF1E44B7F42215890A26157EFA5647AF412924BFC0F6CD278261BA1F959AE90F165DB11AD56CEB5223AF8BCCD5760AAB2ED5F11C56B517FFBC96B178E46EF11E7A4E8209C1CA887218600B8B20FAA80AA0B00816969A0AE25807374C24566AC03F8DFB417D0C3E43AC9BDA056AD0562A28C9F7C5EEC7AC847699170668113DF07F22A875C40D570B8CCF09EE00D91B9841A7D10F1763EE48C0BABA0F76EAD940AB5FB376C685E2EF4A81717F8ACDA8ED205FB819E62598FB343451EE47D73B9541D9F8FB6DF4029FC8FCEC0F5B94258DB49B39717B0FEB5DB3BA8FB1D28F4FE0319F84111BE08E9D251791A0A1809B55C307B0D337923EDB8CA4F2018DE38A3B7AADDFB938D93C4F3F287DBFDD542D11C747A319AAA9CA8446EA4D5A3B8B91B48B850009A9353596F2352839D55FD45F442272123402D58C80411E5113C50E35D28EDAD3C7271E9ABB4E7152C70B306571433323661D4D12B2FAB10304F721B07FF480431F32CBD03 |
244 | 20170626021405 2 6 100 6143 5 FE3AFB7EA9CBCB633757EA982ED0DDFF120459E69D35DB36ACC5F69B04A5CCEE59A0312A97687F2B3DBC20917F4BF0B16D97B75EDCA16B58BDEB8BB1A726F6CB8BF5D7FC483777129A1C19CB559943EF201323760672C63859E830C6E99AFE5DD7A4E89BAD41C63B687558DD277F4E06A29D1E14A21CAA6FDD4E6F21EB8B146F2C04F93B1C94234E6295F2F8773B16BA3D51758841EA48ADD1A626E252DB3B78594B4586AC9E9EAF100F294ADC82BEBBF8CAB96B671EE7050B42733EB741107C5D2199D305C84F93C6AEEE6BD607DB7C0EFED773FB1DB73B04EFA72EB36111B99EBE6EEE899307FD288329FB2DB7E81776AEF0F935FFEE77611BDCFEC309F97EEB6E36FE42CA4C8EFAA0B4B93F5D83606B8FA7B49DD1DBB8F828B9C805381CB5DF4AC7FFAE27C62CBCD2FE80BB4157EB7F3267041255AC2F7EA3B450951878166049E5FF1BD3B361082FB184E342DDA1961ACFD90944F37E09A06AFE463AA9AA66EE699D28C4D109F3E8111CF4D625161B2855C11593AE408AE44DC026091119744FF09A4AB3C00717ACA004E26ACA53BF6444D839CF477A56FEAFFBF2E4CB946512815269D8E3C163FC29288A917A4A0ACC6DF54454CE2D54AC79AE05BF816DE1E3E9D3A9CC69DBE674880F98ECB8D8D4C4247AC07BC9B7C40FB89C4B9D4DA4604B37D15047DFB28C5D241CDFA327C3996872A0C05B84342F81A308D7796CA4A4038E47A5D4658F757C3F9645F11DEA92AE4D2E77FDB1A5D12519FF947F39A68152528CB02F915894D728C0E755B8BC4A99FCFC778A4099558A06D5FECC4C22DAA7E23C3B5E8E99B5365D5046C8C65846D949A521C0B25EFE5F5CD0845F09C29C096C4A80755120A299EA652B204775E53B2D521F366F4EF9FA65B1D8CB048295C39BE92667200E2889B1577CBD0AC23B2280B758A3650BE60D55F215DBF166873592253B1254968B5A46A61C792A153342C3ADE408676F4B27B7F22C50B079D0E32AEA134168A53A36F18E2FFA2459EDBA89BEC13D19C342235F6E9CF8F721B608F6297A3486173A7D5CED5E2AF6343775668C1B1FB0B745157973A3C0D837 | 244 | 20171130230654 2 6 100 6143 2 F2F9DF4571769305CF3128D1F3B27E0B51064C0D70472B4B834907A11B6C76DAA091DDD058F56E7E5A1A144CBAD246C592ADB38DB36673E636E06043CF3776DE42B2A3C52B29A5378A538205F863CBCE489A9D26209B2679B7C10179193C7B50CC806D8FEA57F761D54F010EDBDCBC7624B989AD0C894E9ABA77744E164CB92A615919DA4E66C41F0D7DE03C2C8C89077E8E712CB867993110D1DAC8F8CC87AEC5F98E0A46D2DA94727D432D4406AE31F8FB2B9DAD9E882994E41FA2B46D364B416F05BE0D579DC31D0ABD89EBA6789835C4B4CE6B8F0E9C19E2B99BBB55211D9392F18A210686F487C38F6ED33CAFA7F2468B423CC7F36DE73655CE7B94D681409616C94E55B31AB6DC3422956DB8F00490A539D95F1BF4965340CB90B5BA03104F643F96B9ABDCB5D34920E4E675DBAB81C038C11AB28459E1F10F15EBE9C21BA47427C72C2960DD8763BFCE27D47C4A06B24EBD911DED8A0ADE710930F87132830B1B8E0675447A48E519FB18FD66D4012DE35E03533CB9C13B7D19823092F7F0D9C0E5C0EF7BCF9017817CEBB550168BB846E91AA5FFF1E44B7F42215890A26157EFA5647AF412924BFC0F6CD278261BA1F959AE90F165DB11AD56CEB5223AF8BCCD5760AAB2ED5F11C56B517FFBC96B178E46EF11E7A4E8209C1CA887218600B8B20FAA80AA0B00816969A0AE25807374C24566AC03F8DFB417D0C3E43AC9BDA056AD0562A28C9F7C5EEC7AC847699170668113DF07F22A875C40D570B8CCF09EE00D91B9841A7D10F1763EE48C0BABA0F76EAD940AB5FB376C685E2EF4A81717F8ACDA8ED205FB819E62598FB343451EE47D73B9541D9F8FB6DF4029FC8FCEC0F5B94258DB49B39717B0FEB5DB3BA8FB1D28F4FE0319F84111BE08E9D251791A0A1809B55C307B0D337923EDB8CA4F2018DE38A3B7AADDFB938D93C4F3F287DBFDD542D11C747A319AAA9CA8446EA4D5A3B8B91B48B850009A9353596F2352839D55FD45F442272123402D58C80411E5113C50E35D28EDAD3C7271E9ABB4E7152C70B306571433323661D4D12B2FAB10304F721B07FF480431F4224A5B |
245 | 20170626025354 2 6 100 6143 2 FE3AFB7EA9CBCB633757EA982ED0DDFF120459E69D35DB36ACC5F69B04A5CCEE59A0312A97687F2B3DBC20917F4BF0B16D97B75EDCA16B58BDEB8BB1A726F6CB8BF5D7FC483777129A1C19CB559943EF201323760672C63859E830C6E99AFE5DD7A4E89BAD41C63B687558DD277F4E06A29D1E14A21CAA6FDD4E6F21EB8B146F2C04F93B1C94234E6295F2F8773B16BA3D51758841EA48ADD1A626E252DB3B78594B4586AC9E9EAF100F294ADC82BEBBF8CAB96B671EE7050B42733EB741107C5D2199D305C84F93C6AEEE6BD607DB7C0EFED773FB1DB73B04EFA72EB36111B99EBE6EEE899307FD288329FB2DB7E81776AEF0F935FFEE77611BDCFEC309F97EEB6E36FE42CA4C8EFAA0B4B93F5D83606B8FA7B49DD1DBB8F828B9C805381CB5DF4AC7FFAE27C62CBCD2FE80BB4157EB7F3267041255AC2F7EA3B450951878166049E5FF1BD3B361082FB184E342DDA1961ACFD90944F37E09A06AFE463AA9AA66EE699D28C4D109F3E8111CF4D625161B2855C11593AE408AE44DC026091119744FF09A4AB3C00717ACA004E26ACA53BF6444D839CF477A56FEAFFBF2E4CB946512815269D8E3C163FC29288A917A4A0ACC6DF54454CE2D54AC79AE05BF816DE1E3E9D3A9CC69DBE674880F98ECB8D8D4C4247AC07BC9B7C40FB89C4B9D4DA4604B37D15047DFB28C5D241CDFA327C3996872A0C05B84342F81A308D7796CA4A4038E47A5D4658F757C3F9645F11DEA92AE4D2E77FDB1A5D12519FF947F39A68152528CB02F915894D728C0E755B8BC4A99FCFC778A4099558A06D5FECC4C22DAA7E23C3B5E8E99B5365D5046C8C65846D949A521C0B25EFE5F5CD0845F09C29C096C4A80755120A299EA652B204775E53B2D521F366F4EF9FA65B1D8CB048295C39BE92667200E2889B1577CBD0AC23B2280B758A3650BE60D55F215DBF166873592253B1254968B5A46A61C792A153342C3ADE408676F4B27B7F22C50B079D0E32AEA134168A53A36F18E2FFA2459EDBA89BEC13D19C342235F6E9CF8F721B608F6297A3486173A7D5CED5E2AF6343775668C1B1FB0B745157973A4CB1E73 | 245 | 20171130235630 2 6 100 6143 2 F2F9DF4571769305CF3128D1F3B27E0B51064C0D70472B4B834907A11B6C76DAA091DDD058F56E7E5A1A144CBAD246C592ADB38DB36673E636E06043CF3776DE42B2A3C52B29A5378A538205F863CBCE489A9D26209B2679B7C10179193C7B50CC806D8FEA57F761D54F010EDBDCBC7624B989AD0C894E9ABA77744E164CB92A615919DA4E66C41F0D7DE03C2C8C89077E8E712CB867993110D1DAC8F8CC87AEC5F98E0A46D2DA94727D432D4406AE31F8FB2B9DAD9E882994E41FA2B46D364B416F05BE0D579DC31D0ABD89EBA6789835C4B4CE6B8F0E9C19E2B99BBB55211D9392F18A210686F487C38F6ED33CAFA7F2468B423CC7F36DE73655CE7B94D681409616C94E55B31AB6DC3422956DB8F00490A539D95F1BF4965340CB90B5BA03104F643F96B9ABDCB5D34920E4E675DBAB81C038C11AB28459E1F10F15EBE9C21BA47427C72C2960DD8763BFCE27D47C4A06B24EBD911DED8A0ADE710930F87132830B1B8E0675447A48E519FB18FD66D4012DE35E03533CB9C13B7D19823092F7F0D9C0E5C0EF7BCF9017817CEBB550168BB846E91AA5FFF1E44B7F42215890A26157EFA5647AF412924BFC0F6CD278261BA1F959AE90F165DB11AD56CEB5223AF8BCCD5760AAB2ED5F11C56B517FFBC96B178E46EF11E7A4E8209C1CA887218600B8B20FAA80AA0B00816969A0AE25807374C24566AC03F8DFB417D0C3E43AC9BDA056AD0562A28C9F7C5EEC7AC847699170668113DF07F22A875C40D570B8CCF09EE00D91B9841A7D10F1763EE48C0BABA0F76EAD940AB5FB376C685E2EF4A81717F8ACDA8ED205FB819E62598FB343451EE47D73B9541D9F8FB6DF4029FC8FCEC0F5B94258DB49B39717B0FEB5DB3BA8FB1D28F4FE0319F84111BE08E9D251791A0A1809B55C307B0D337923EDB8CA4F2018DE38A3B7AADDFB938D93C4F3F287DBFDD542D11C747A319AAA9CA8446EA4D5A3B8B91B48B850009A9353596F2352839D55FD45F442272123402D58C80411E5113C50E35D28EDAD3C7271E9ABB4E7152C70B306571433323661D4D12B2FAB10304F721B07FF480431F549CCE3 |
246 | 20170626025848 2 6 100 6143 5 FE3AFB7EA9CBCB633757EA982ED0DDFF120459E69D35DB36ACC5F69B04A5CCEE59A0312A97687F2B3DBC20917F4BF0B16D97B75EDCA16B58BDEB8BB1A726F6CB8BF5D7FC483777129A1C19CB559943EF201323760672C63859E830C6E99AFE5DD7A4E89BAD41C63B687558DD277F4E06A29D1E14A21CAA6FDD4E6F21EB8B146F2C04F93B1C94234E6295F2F8773B16BA3D51758841EA48ADD1A626E252DB3B78594B4586AC9E9EAF100F294ADC82BEBBF8CAB96B671EE7050B42733EB741107C5D2199D305C84F93C6AEEE6BD607DB7C0EFED773FB1DB73B04EFA72EB36111B99EBE6EEE899307FD288329FB2DB7E81776AEF0F935FFEE77611BDCFEC309F97EEB6E36FE42CA4C8EFAA0B4B93F5D83606B8FA7B49DD1DBB8F828B9C805381CB5DF4AC7FFAE27C62CBCD2FE80BB4157EB7F3267041255AC2F7EA3B450951878166049E5FF1BD3B361082FB184E342DDA1961ACFD90944F37E09A06AFE463AA9AA66EE699D28C4D109F3E8111CF4D625161B2855C11593AE408AE44DC026091119744FF09A4AB3C00717ACA004E26ACA53BF6444D839CF477A56FEAFFBF2E4CB946512815269D8E3C163FC29288A917A4A0ACC6DF54454CE2D54AC79AE05BF816DE1E3E9D3A9CC69DBE674880F98ECB8D8D4C4247AC07BC9B7C40FB89C4B9D4DA4604B37D15047DFB28C5D241CDFA327C3996872A0C05B84342F81A308D7796CA4A4038E47A5D4658F757C3F9645F11DEA92AE4D2E77FDB1A5D12519FF947F39A68152528CB02F915894D728C0E755B8BC4A99FCFC778A4099558A06D5FECC4C22DAA7E23C3B5E8E99B5365D5046C8C65846D949A521C0B25EFE5F5CD0845F09C29C096C4A80755120A299EA652B204775E53B2D521F366F4EF9FA65B1D8CB048295C39BE92667200E2889B1577CBD0AC23B2280B758A3650BE60D55F215DBF166873592253B1254968B5A46A61C792A153342C3ADE408676F4B27B7F22C50B079D0E32AEA134168A53A36F18E2FFA2459EDBA89BEC13D19C342235F6E9CF8F721B608F6297A3486173A7D5CED5E2AF6343775668C1B1FB0B745157973A4E33427 | 246 | 20171203125416 2 6 100 6143 5 F2F9DF4571769305CF3128D1F3B27E0B51064C0D70472B4B834907A11B6C76DAA091DDD058F56E7E5A1A144CBAD246C592ADB38DB36673E636E06043CF3776DE42B2A3C52B29A5378A538205F863CBCE489A9D26209B2679B7C10179193C7B50CC806D8FEA57F761D54F010EDBDCBC7624B989AD0C894E9ABA77744E164CB92A615919DA4E66C41F0D7DE03C2C8C89077E8E712CB867993110D1DAC8F8CC87AEC5F98E0A46D2DA94727D432D4406AE31F8FB2B9DAD9E882994E41FA2B46D364B416F05BE0D579DC31D0ABD89EBA6789835C4B4CE6B8F0E9C19E2B99BBB55211D9392F18A210686F487C38F6ED33CAFA7F2468B423CC7F36DE73655CE7B94D681409616C94E55B31AB6DC3422956DB8F00490A539D95F1BF4965340CB90B5BA03104F643F96B9ABDCB5D34920E4E675DBAB81C038C11AB28459E1F10F15EBE9C21BA47427C72C2960DD8763BFCE27D47C4A06B24EBD911DED8A0ADE710930F87132830B1B8E0675447A48E519FB18FD66D4012DE35E03533CB9C13B7D19823092F7F0D9C0E5C0EF7BCF9017817CEBB550168BB846E91AA5FFF1E44B7F42215890A26157EFA5647AF412924BFC0F6CD278261BA1F959AE90F165DB11AD56CEB5223AF8BCCD5760AAB2ED5F11C56B517FFBC96B178E46EF11E7A4E8209C1CA887218600B8B20FAA80AA0B00816969A0AE25807374C24566AC03F8DFB417D0C3E43AC9BDA056AD0562A28C9F7C5EEC7AC847699170668113DF07F22A875C40D570B8CCF09EE00D91B9841A7D10F1763EE48C0BABA0F76EAD940AB5FB376C685E2EF4A81717F8ACDA8ED205FB819E62598FB343451EE47D73B9541D9F8FB6DF4029FC8FCEC0F5B94258DB49B39717B0FEB5DB3BA8FB1D28F4FE0319F84111BE08E9D251791A0A1809B55C307B0D337923EDB8CA4F2018DE38A3B7AADDFB938D93C4F3F287DBFDD542D11C747A319AAA9CA8446EA4D5A3B8B91B48B850009A9353596F2352839D55FD45F442272123402D58C80411E5113C50E35D28EDAD3C7271E9ABB4E7152C70B306571433323661D4D12B2FAB10304F721B07FF480431FC1A85BF |
247 | 20170626034407 2 6 100 6143 5 FE3AFB7EA9CBCB633757EA982ED0DDFF120459E69D35DB36ACC5F69B04A5CCEE59A0312A97687F2B3DBC20917F4BF0B16D97B75EDCA16B58BDEB8BB1A726F6CB8BF5D7FC483777129A1C19CB559943EF201323760672C63859E830C6E99AFE5DD7A4E89BAD41C63B687558DD277F4E06A29D1E14A21CAA6FDD4E6F21EB8B146F2C04F93B1C94234E6295F2F8773B16BA3D51758841EA48ADD1A626E252DB3B78594B4586AC9E9EAF100F294ADC82BEBBF8CAB96B671EE7050B42733EB741107C5D2199D305C84F93C6AEEE6BD607DB7C0EFED773FB1DB73B04EFA72EB36111B99EBE6EEE899307FD288329FB2DB7E81776AEF0F935FFEE77611BDCFEC309F97EEB6E36FE42CA4C8EFAA0B4B93F5D83606B8FA7B49DD1DBB8F828B9C805381CB5DF4AC7FFAE27C62CBCD2FE80BB4157EB7F3267041255AC2F7EA3B450951878166049E5FF1BD3B361082FB184E342DDA1961ACFD90944F37E09A06AFE463AA9AA66EE699D28C4D109F3E8111CF4D625161B2855C11593AE408AE44DC026091119744FF09A4AB3C00717ACA004E26ACA53BF6444D839CF477A56FEAFFBF2E4CB946512815269D8E3C163FC29288A917A4A0ACC6DF54454CE2D54AC79AE05BF816DE1E3E9D3A9CC69DBE674880F98ECB8D8D4C4247AC07BC9B7C40FB89C4B9D4DA4604B37D15047DFB28C5D241CDFA327C3996872A0C05B84342F81A308D7796CA4A4038E47A5D4658F757C3F9645F11DEA92AE4D2E77FDB1A5D12519FF947F39A68152528CB02F915894D728C0E755B8BC4A99FCFC778A4099558A06D5FECC4C22DAA7E23C3B5E8E99B5365D5046C8C65846D949A521C0B25EFE5F5CD0845F09C29C096C4A80755120A299EA652B204775E53B2D521F366F4EF9FA65B1D8CB048295C39BE92667200E2889B1577CBD0AC23B2280B758A3650BE60D55F215DBF166873592253B1254968B5A46A61C792A153342C3ADE408676F4B27B7F22C50B079D0E32AEA134168A53A36F18E2FFA2459EDBA89BEC13D19C342235F6E9CF8F721B608F6297A3486173A7D5CED5E2AF6343775668C1B1FB0B745157973A60D840F | 247 | 20171203150512 2 6 100 6143 5 F2F9DF4571769305CF3128D1F3B27E0B51064C0D70472B4B834907A11B6C76DAA091DDD058F56E7E5A1A144CBAD246C592ADB38DB36673E636E06043CF3776DE42B2A3C52B29A5378A538205F863CBCE489A9D26209B2679B7C10179193C7B50CC806D8FEA57F761D54F010EDBDCBC7624B989AD0C894E9ABA77744E164CB92A615919DA4E66C41F0D7DE03C2C8C89077E8E712CB867993110D1DAC8F8CC87AEC5F98E0A46D2DA94727D432D4406AE31F8FB2B9DAD9E882994E41FA2B46D364B416F05BE0D579DC31D0ABD89EBA6789835C4B4CE6B8F0E9C19E2B99BBB55211D9392F18A210686F487C38F6ED33CAFA7F2468B423CC7F36DE73655CE7B94D681409616C94E55B31AB6DC3422956DB8F00490A539D95F1BF4965340CB90B5BA03104F643F96B9ABDCB5D34920E4E675DBAB81C038C11AB28459E1F10F15EBE9C21BA47427C72C2960DD8763BFCE27D47C4A06B24EBD911DED8A0ADE710930F87132830B1B8E0675447A48E519FB18FD66D4012DE35E03533CB9C13B7D19823092F7F0D9C0E5C0EF7BCF9017817CEBB550168BB846E91AA5FFF1E44B7F42215890A26157EFA5647AF412924BFC0F6CD278261BA1F959AE90F165DB11AD56CEB5223AF8BCCD5760AAB2ED5F11C56B517FFBC96B178E46EF11E7A4E8209C1CA887218600B8B20FAA80AA0B00816969A0AE25807374C24566AC03F8DFB417D0C3E43AC9BDA056AD0562A28C9F7C5EEC7AC847699170668113DF07F22A875C40D570B8CCF09EE00D91B9841A7D10F1763EE48C0BABA0F76EAD940AB5FB376C685E2EF4A81717F8ACDA8ED205FB819E62598FB343451EE47D73B9541D9F8FB6DF4029FC8FCEC0F5B94258DB49B39717B0FEB5DB3BA8FB1D28F4FE0319F84111BE08E9D251791A0A1809B55C307B0D337923EDB8CA4F2018DE38A3B7AADDFB938D93C4F3F287DBFDD542D11C747A319AAA9CA8446EA4D5A3B8B91B48B850009A9353596F2352839D55FD45F442272123402D58C80411E5113C50E35D28EDAD3C7271E9ABB4E7152C70B306571433323661D4D12B2FAB10304F721B07FF480431FF1C415F |
248 | 20170626042648 2 6 100 6143 2 FE3AFB7EA9CBCB633757EA982ED0DDFF120459E69D35DB36ACC5F69B04A5CCEE59A0312A97687F2B3DBC20917F4BF0B16D97B75EDCA16B58BDEB8BB1A726F6CB8BF5D7FC483777129A1C19CB559943EF201323760672C63859E830C6E99AFE5DD7A4E89BAD41C63B687558DD277F4E06A29D1E14A21CAA6FDD4E6F21EB8B146F2C04F93B1C94234E6295F2F8773B16BA3D51758841EA48ADD1A626E252DB3B78594B4586AC9E9EAF100F294ADC82BEBBF8CAB96B671EE7050B42733EB741107C5D2199D305C84F93C6AEEE6BD607DB7C0EFED773FB1DB73B04EFA72EB36111B99EBE6EEE899307FD288329FB2DB7E81776AEF0F935FFEE77611BDCFEC309F97EEB6E36FE42CA4C8EFAA0B4B93F5D83606B8FA7B49DD1DBB8F828B9C805381CB5DF4AC7FFAE27C62CBCD2FE80BB4157EB7F3267041255AC2F7EA3B450951878166049E5FF1BD3B361082FB184E342DDA1961ACFD90944F37E09A06AFE463AA9AA66EE699D28C4D109F3E8111CF4D625161B2855C11593AE408AE44DC026091119744FF09A4AB3C00717ACA004E26ACA53BF6444D839CF477A56FEAFFBF2E4CB946512815269D8E3C163FC29288A917A4A0ACC6DF54454CE2D54AC79AE05BF816DE1E3E9D3A9CC69DBE674880F98ECB8D8D4C4247AC07BC9B7C40FB89C4B9D4DA4604B37D15047DFB28C5D241CDFA327C3996872A0C05B84342F81A308D7796CA4A4038E47A5D4658F757C3F9645F11DEA92AE4D2E77FDB1A5D12519FF947F39A68152528CB02F915894D728C0E755B8BC4A99FCFC778A4099558A06D5FECC4C22DAA7E23C3B5E8E99B5365D5046C8C65846D949A521C0B25EFE5F5CD0845F09C29C096C4A80755120A299EA652B204775E53B2D521F366F4EF9FA65B1D8CB048295C39BE92667200E2889B1577CBD0AC23B2280B758A3650BE60D55F215DBF166873592253B1254968B5A46A61C792A153342C3ADE408676F4B27B7F22C50B079D0E32AEA134168A53A36F18E2FFA2459EDBA89BEC13D19C342235F6E9CF8F721B608F6297A3486173A7D5CED5E2AF6343775668C1B1FB0B745157973A7271AD3 | 248 | 20171203162042 2 6 100 6143 5 F2F9DF4571769305CF3128D1F3B27E0B51064C0D70472B4B834907A11B6C76DAA091DDD058F56E7E5A1A144CBAD246C592ADB38DB36673E636E06043CF3776DE42B2A3C52B29A5378A538205F863CBCE489A9D26209B2679B7C10179193C7B50CC806D8FEA57F761D54F010EDBDCBC7624B989AD0C894E9ABA77744E164CB92A615919DA4E66C41F0D7DE03C2C8C89077E8E712CB867993110D1DAC8F8CC87AEC5F98E0A46D2DA94727D432D4406AE31F8FB2B9DAD9E882994E41FA2B46D364B416F05BE0D579DC31D0ABD89EBA6789835C4B4CE6B8F0E9C19E2B99BBB55211D9392F18A210686F487C38F6ED33CAFA7F2468B423CC7F36DE73655CE7B94D681409616C94E55B31AB6DC3422956DB8F00490A539D95F1BF4965340CB90B5BA03104F643F96B9ABDCB5D34920E4E675DBAB81C038C11AB28459E1F10F15EBE9C21BA47427C72C2960DD8763BFCE27D47C4A06B24EBD911DED8A0ADE710930F87132830B1B8E0675447A48E519FB18FD66D4012DE35E03533CB9C13B7D19823092F7F0D9C0E5C0EF7BCF9017817CEBB550168BB846E91AA5FFF1E44B7F42215890A26157EFA5647AF412924BFC0F6CD278261BA1F959AE90F165DB11AD56CEB5223AF8BCCD5760AAB2ED5F11C56B517FFBC96B178E46EF11E7A4E8209C1CA887218600B8B20FAA80AA0B00816969A0AE25807374C24566AC03F8DFB417D0C3E43AC9BDA056AD0562A28C9F7C5EEC7AC847699170668113DF07F22A875C40D570B8CCF09EE00D91B9841A7D10F1763EE48C0BABA0F76EAD940AB5FB376C685E2EF4A81717F8ACDA8ED205FB819E62598FB343451EE47D73B9541D9F8FB6DF4029FC8FCEC0F5B94258DB49B39717B0FEB5DB3BA8FB1D28F4FE0319F84111BE08E9D251791A0A1809B55C307B0D337923EDB8CA4F2018DE38A3B7AADDFB938D93C4F3F287DBFDD542D11C747A319AAA9CA8446EA4D5A3B8B91B48B850009A9353596F2352839D55FD45F442272123402D58C80411E5113C50E35D28EDAD3C7271E9ABB4E7152C70B306571433323661D4D12B2FAB10304F721B07FF48043200E63AC7 |
249 | 20170626063327 2 6 100 6143 5 FE3AFB7EA9CBCB633757EA982ED0DDFF120459E69D35DB36ACC5F69B04A5CCEE59A0312A97687F2B3DBC20917F4BF0B16D97B75EDCA16B58BDEB8BB1A726F6CB8BF5D7FC483777129A1C19CB559943EF201323760672C63859E830C6E99AFE5DD7A4E89BAD41C63B687558DD277F4E06A29D1E14A21CAA6FDD4E6F21EB8B146F2C04F93B1C94234E6295F2F8773B16BA3D51758841EA48ADD1A626E252DB3B78594B4586AC9E9EAF100F294ADC82BEBBF8CAB96B671EE7050B42733EB741107C5D2199D305C84F93C6AEEE6BD607DB7C0EFED773FB1DB73B04EFA72EB36111B99EBE6EEE899307FD288329FB2DB7E81776AEF0F935FFEE77611BDCFEC309F97EEB6E36FE42CA4C8EFAA0B4B93F5D83606B8FA7B49DD1DBB8F828B9C805381CB5DF4AC7FFAE27C62CBCD2FE80BB4157EB7F3267041255AC2F7EA3B450951878166049E5FF1BD3B361082FB184E342DDA1961ACFD90944F37E09A06AFE463AA9AA66EE699D28C4D109F3E8111CF4D625161B2855C11593AE408AE44DC026091119744FF09A4AB3C00717ACA004E26ACA53BF6444D839CF477A56FEAFFBF2E4CB946512815269D8E3C163FC29288A917A4A0ACC6DF54454CE2D54AC79AE05BF816DE1E3E9D3A9CC69DBE674880F98ECB8D8D4C4247AC07BC9B7C40FB89C4B9D4DA4604B37D15047DFB28C5D241CDFA327C3996872A0C05B84342F81A308D7796CA4A4038E47A5D4658F757C3F9645F11DEA92AE4D2E77FDB1A5D12519FF947F39A68152528CB02F915894D728C0E755B8BC4A99FCFC778A4099558A06D5FECC4C22DAA7E23C3B5E8E99B5365D5046C8C65846D949A521C0B25EFE5F5CD0845F09C29C096C4A80755120A299EA652B204775E53B2D521F366F4EF9FA65B1D8CB048295C39BE92667200E2889B1577CBD0AC23B2280B758A3650BE60D55F215DBF166873592253B1254968B5A46A61C792A153342C3ADE408676F4B27B7F22C50B079D0E32AEA134168A53A36F18E2FFA2459EDBA89BEC13D19C342235F6E9CF8F721B608F6297A3486173A7D5CED5E2AF6343775668C1B1FB0B745157973AA7A8227 | 249 | 20171203162245 2 6 100 6143 2 F2F9DF4571769305CF3128D1F3B27E0B51064C0D70472B4B834907A11B6C76DAA091DDD058F56E7E5A1A144CBAD246C592ADB38DB36673E636E06043CF3776DE42B2A3C52B29A5378A538205F863CBCE489A9D26209B2679B7C10179193C7B50CC806D8FEA57F761D54F010EDBDCBC7624B989AD0C894E9ABA77744E164CB92A615919DA4E66C41F0D7DE03C2C8C89077E8E712CB867993110D1DAC8F8CC87AEC5F98E0A46D2DA94727D432D4406AE31F8FB2B9DAD9E882994E41FA2B46D364B416F05BE0D579DC31D0ABD89EBA6789835C4B4CE6B8F0E9C19E2B99BBB55211D9392F18A210686F487C38F6ED33CAFA7F2468B423CC7F36DE73655CE7B94D681409616C94E55B31AB6DC3422956DB8F00490A539D95F1BF4965340CB90B5BA03104F643F96B9ABDCB5D34920E4E675DBAB81C038C11AB28459E1F10F15EBE9C21BA47427C72C2960DD8763BFCE27D47C4A06B24EBD911DED8A0ADE710930F87132830B1B8E0675447A48E519FB18FD66D4012DE35E03533CB9C13B7D19823092F7F0D9C0E5C0EF7BCF9017817CEBB550168BB846E91AA5FFF1E44B7F42215890A26157EFA5647AF412924BFC0F6CD278261BA1F959AE90F165DB11AD56CEB5223AF8BCCD5760AAB2ED5F11C56B517FFBC96B178E46EF11E7A4E8209C1CA887218600B8B20FAA80AA0B00816969A0AE25807374C24566AC03F8DFB417D0C3E43AC9BDA056AD0562A28C9F7C5EEC7AC847699170668113DF07F22A875C40D570B8CCF09EE00D91B9841A7D10F1763EE48C0BABA0F76EAD940AB5FB376C685E2EF4A81717F8ACDA8ED205FB819E62598FB343451EE47D73B9541D9F8FB6DF4029FC8FCEC0F5B94258DB49B39717B0FEB5DB3BA8FB1D28F4FE0319F84111BE08E9D251791A0A1809B55C307B0D337923EDB8CA4F2018DE38A3B7AADDFB938D93C4F3F287DBFDD542D11C747A319AAA9CA8446EA4D5A3B8B91B48B850009A9353596F2352839D55FD45F442272123402D58C80411E5113C50E35D28EDAD3C7271E9ABB4E7152C70B306571433323661D4D12B2FAB10304F721B07FF48043200EA5A8B |
250 | 20170626073301 2 6 100 6143 2 FE3AFB7EA9CBCB633757EA982ED0DDFF120459E69D35DB36ACC5F69B04A5CCEE59A0312A97687F2B3DBC20917F4BF0B16D97B75EDCA16B58BDEB8BB1A726F6CB8BF5D7FC483777129A1C19CB559943EF201323760672C63859E830C6E99AFE5DD7A4E89BAD41C63B687558DD277F4E06A29D1E14A21CAA6FDD4E6F21EB8B146F2C04F93B1C94234E6295F2F8773B16BA3D51758841EA48ADD1A626E252DB3B78594B4586AC9E9EAF100F294ADC82BEBBF8CAB96B671EE7050B42733EB741107C5D2199D305C84F93C6AEEE6BD607DB7C0EFED773FB1DB73B04EFA72EB36111B99EBE6EEE899307FD288329FB2DB7E81776AEF0F935FFEE77611BDCFEC309F97EEB6E36FE42CA4C8EFAA0B4B93F5D83606B8FA7B49DD1DBB8F828B9C805381CB5DF4AC7FFAE27C62CBCD2FE80BB4157EB7F3267041255AC2F7EA3B450951878166049E5FF1BD3B361082FB184E342DDA1961ACFD90944F37E09A06AFE463AA9AA66EE699D28C4D109F3E8111CF4D625161B2855C11593AE408AE44DC026091119744FF09A4AB3C00717ACA004E26ACA53BF6444D839CF477A56FEAFFBF2E4CB946512815269D8E3C163FC29288A917A4A0ACC6DF54454CE2D54AC79AE05BF816DE1E3E9D3A9CC69DBE674880F98ECB8D8D4C4247AC07BC9B7C40FB89C4B9D4DA4604B37D15047DFB28C5D241CDFA327C3996872A0C05B84342F81A308D7796CA4A4038E47A5D4658F757C3F9645F11DEA92AE4D2E77FDB1A5D12519FF947F39A68152528CB02F915894D728C0E755B8BC4A99FCFC778A4099558A06D5FECC4C22DAA7E23C3B5E8E99B5365D5046C8C65846D949A521C0B25EFE5F5CD0845F09C29C096C4A80755120A299EA652B204775E53B2D521F366F4EF9FA65B1D8CB048295C39BE92667200E2889B1577CBD0AC23B2280B758A3650BE60D55F215DBF166873592253B1254968B5A46A61C792A153342C3ADE408676F4B27B7F22C50B079D0E32AEA134168A53A36F18E2FFA2459EDBA89BEC13D19C342235F6E9CF8F721B608F6297A3486173A7D5CED5E2AF6343775668C1B1FB0B745157973AC001F7B | 250 | 20171203172127 2 6 100 6143 5 F2F9DF4571769305CF3128D1F3B27E0B51064C0D70472B4B834907A11B6C76DAA091DDD058F56E7E5A1A144CBAD246C592ADB38DB36673E636E06043CF3776DE42B2A3C52B29A5378A538205F863CBCE489A9D26209B2679B7C10179193C7B50CC806D8FEA57F761D54F010EDBDCBC7624B989AD0C894E9ABA77744E164CB92A615919DA4E66C41F0D7DE03C2C8C89077E8E712CB867993110D1DAC8F8CC87AEC5F98E0A46D2DA94727D432D4406AE31F8FB2B9DAD9E882994E41FA2B46D364B416F05BE0D579DC31D0ABD89EBA6789835C4B4CE6B8F0E9C19E2B99BBB55211D9392F18A210686F487C38F6ED33CAFA7F2468B423CC7F36DE73655CE7B94D681409616C94E55B31AB6DC3422956DB8F00490A539D95F1BF4965340CB90B5BA03104F643F96B9ABDCB5D34920E4E675DBAB81C038C11AB28459E1F10F15EBE9C21BA47427C72C2960DD8763BFCE27D47C4A06B24EBD911DED8A0ADE710930F87132830B1B8E0675447A48E519FB18FD66D4012DE35E03533CB9C13B7D19823092F7F0D9C0E5C0EF7BCF9017817CEBB550168BB846E91AA5FFF1E44B7F42215890A26157EFA5647AF412924BFC0F6CD278261BA1F959AE90F165DB11AD56CEB5223AF8BCCD5760AAB2ED5F11C56B517FFBC96B178E46EF11E7A4E8209C1CA887218600B8B20FAA80AA0B00816969A0AE25807374C24566AC03F8DFB417D0C3E43AC9BDA056AD0562A28C9F7C5EEC7AC847699170668113DF07F22A875C40D570B8CCF09EE00D91B9841A7D10F1763EE48C0BABA0F76EAD940AB5FB376C685E2EF4A81717F8ACDA8ED205FB819E62598FB343451EE47D73B9541D9F8FB6DF4029FC8FCEC0F5B94258DB49B39717B0FEB5DB3BA8FB1D28F4FE0319F84111BE08E9D251791A0A1809B55C307B0D337923EDB8CA4F2018DE38A3B7AADDFB938D93C4F3F287DBFDD542D11C747A319AAA9CA8446EA4D5A3B8B91B48B850009A9353596F2352839D55FD45F442272123402D58C80411E5113C50E35D28EDAD3C7271E9ABB4E7152C70B306571433323661D4D12B2FAB10304F721B07FF4804320235B727 |
251 | 20170626073912 2 6 100 6143 5 FE3AFB7EA9CBCB633757EA982ED0DDFF120459E69D35DB36ACC5F69B04A5CCEE59A0312A97687F2B3DBC20917F4BF0B16D97B75EDCA16B58BDEB8BB1A726F6CB8BF5D7FC483777129A1C19CB559943EF201323760672C63859E830C6E99AFE5DD7A4E89BAD41C63B687558DD277F4E06A29D1E14A21CAA6FDD4E6F21EB8B146F2C04F93B1C94234E6295F2F8773B16BA3D51758841EA48ADD1A626E252DB3B78594B4586AC9E9EAF100F294ADC82BEBBF8CAB96B671EE7050B42733EB741107C5D2199D305C84F93C6AEEE6BD607DB7C0EFED773FB1DB73B04EFA72EB36111B99EBE6EEE899307FD288329FB2DB7E81776AEF0F935FFEE77611BDCFEC309F97EEB6E36FE42CA4C8EFAA0B4B93F5D83606B8FA7B49DD1DBB8F828B9C805381CB5DF4AC7FFAE27C62CBCD2FE80BB4157EB7F3267041255AC2F7EA3B450951878166049E5FF1BD3B361082FB184E342DDA1961ACFD90944F37E09A06AFE463AA9AA66EE699D28C4D109F3E8111CF4D625161B2855C11593AE408AE44DC026091119744FF09A4AB3C00717ACA004E26ACA53BF6444D839CF477A56FEAFFBF2E4CB946512815269D8E3C163FC29288A917A4A0ACC6DF54454CE2D54AC79AE05BF816DE1E3E9D3A9CC69DBE674880F98ECB8D8D4C4247AC07BC9B7C40FB89C4B9D4DA4604B37D15047DFB28C5D241CDFA327C3996872A0C05B84342F81A308D7796CA4A4038E47A5D4658F757C3F9645F11DEA92AE4D2E77FDB1A5D12519FF947F39A68152528CB02F915894D728C0E755B8BC4A99FCFC778A4099558A06D5FECC4C22DAA7E23C3B5E8E99B5365D5046C8C65846D949A521C0B25EFE5F5CD0845F09C29C096C4A80755120A299EA652B204775E53B2D521F366F4EF9FA65B1D8CB048295C39BE92667200E2889B1577CBD0AC23B2280B758A3650BE60D55F215DBF166873592253B1254968B5A46A61C792A153342C3ADE408676F4B27B7F22C50B079D0E32AEA134168A53A36F18E2FFA2459EDBA89BEC13D19C342235F6E9CF8F721B608F6297A3486173A7D5CED5E2AF6343775668C1B1FB0B745157973AC204247 | 251 | 20171203181636 2 6 100 6143 2 F2F9DF4571769305CF3128D1F3B27E0B51064C0D70472B4B834907A11B6C76DAA091DDD058F56E7E5A1A144CBAD246C592ADB38DB36673E636E06043CF3776DE42B2A3C52B29A5378A538205F863CBCE489A9D26209B2679B7C10179193C7B50CC806D8FEA57F761D54F010EDBDCBC7624B989AD0C894E9ABA77744E164CB92A615919DA4E66C41F0D7DE03C2C8C89077E8E712CB867993110D1DAC8F8CC87AEC5F98E0A46D2DA94727D432D4406AE31F8FB2B9DAD9E882994E41FA2B46D364B416F05BE0D579DC31D0ABD89EBA6789835C4B4CE6B8F0E9C19E2B99BBB55211D9392F18A210686F487C38F6ED33CAFA7F2468B423CC7F36DE73655CE7B94D681409616C94E55B31AB6DC3422956DB8F00490A539D95F1BF4965340CB90B5BA03104F643F96B9ABDCB5D34920E4E675DBAB81C038C11AB28459E1F10F15EBE9C21BA47427C72C2960DD8763BFCE27D47C4A06B24EBD911DED8A0ADE710930F87132830B1B8E0675447A48E519FB18FD66D4012DE35E03533CB9C13B7D19823092F7F0D9C0E5C0EF7BCF9017817CEBB550168BB846E91AA5FFF1E44B7F42215890A26157EFA5647AF412924BFC0F6CD278261BA1F959AE90F165DB11AD56CEB5223AF8BCCD5760AAB2ED5F11C56B517FFBC96B178E46EF11E7A4E8209C1CA887218600B8B20FAA80AA0B00816969A0AE25807374C24566AC03F8DFB417D0C3E43AC9BDA056AD0562A28C9F7C5EEC7AC847699170668113DF07F22A875C40D570B8CCF09EE00D91B9841A7D10F1763EE48C0BABA0F76EAD940AB5FB376C685E2EF4A81717F8ACDA8ED205FB819E62598FB343451EE47D73B9541D9F8FB6DF4029FC8FCEC0F5B94258DB49B39717B0FEB5DB3BA8FB1D28F4FE0319F84111BE08E9D251791A0A1809B55C307B0D337923EDB8CA4F2018DE38A3B7AADDFB938D93C4F3F287DBFDD542D11C747A319AAA9CA8446EA4D5A3B8B91B48B850009A9353596F2352839D55FD45F442272123402D58C80411E5113C50E35D28EDAD3C7271E9ABB4E7152C70B306571433323661D4D12B2FAB10304F721B07FF4804320364E433 |
252 | 20170626083935 2 6 100 6143 5 FE3AFB7EA9CBCB633757EA982ED0DDFF120459E69D35DB36ACC5F69B04A5CCEE59A0312A97687F2B3DBC20917F4BF0B16D97B75EDCA16B58BDEB8BB1A726F6CB8BF5D7FC483777129A1C19CB559943EF201323760672C63859E830C6E99AFE5DD7A4E89BAD41C63B687558DD277F4E06A29D1E14A21CAA6FDD4E6F21EB8B146F2C04F93B1C94234E6295F2F8773B16BA3D51758841EA48ADD1A626E252DB3B78594B4586AC9E9EAF100F294ADC82BEBBF8CAB96B671EE7050B42733EB741107C5D2199D305C84F93C6AEEE6BD607DB7C0EFED773FB1DB73B04EFA72EB36111B99EBE6EEE899307FD288329FB2DB7E81776AEF0F935FFEE77611BDCFEC309F97EEB6E36FE42CA4C8EFAA0B4B93F5D83606B8FA7B49DD1DBB8F828B9C805381CB5DF4AC7FFAE27C62CBCD2FE80BB4157EB7F3267041255AC2F7EA3B450951878166049E5FF1BD3B361082FB184E342DDA1961ACFD90944F37E09A06AFE463AA9AA66EE699D28C4D109F3E8111CF4D625161B2855C11593AE408AE44DC026091119744FF09A4AB3C00717ACA004E26ACA53BF6444D839CF477A56FEAFFBF2E4CB946512815269D8E3C163FC29288A917A4A0ACC6DF54454CE2D54AC79AE05BF816DE1E3E9D3A9CC69DBE674880F98ECB8D8D4C4247AC07BC9B7C40FB89C4B9D4DA4604B37D15047DFB28C5D241CDFA327C3996872A0C05B84342F81A308D7796CA4A4038E47A5D4658F757C3F9645F11DEA92AE4D2E77FDB1A5D12519FF947F39A68152528CB02F915894D728C0E755B8BC4A99FCFC778A4099558A06D5FECC4C22DAA7E23C3B5E8E99B5365D5046C8C65846D949A521C0B25EFE5F5CD0845F09C29C096C4A80755120A299EA652B204775E53B2D521F366F4EF9FA65B1D8CB048295C39BE92667200E2889B1577CBD0AC23B2280B758A3650BE60D55F215DBF166873592253B1254968B5A46A61C792A153342C3ADE408676F4B27B7F22C50B079D0E32AEA134168A53A36F18E2FFA2459EDBA89BEC13D19C342235F6E9CF8F721B608F6297A3486173A7D5CED5E2AF6343775668C1B1FB0B745157973ADB29CEF | 252 | 20171203183124 2 6 100 6143 5 F2F9DF4571769305CF3128D1F3B27E0B51064C0D70472B4B834907A11B6C76DAA091DDD058F56E7E5A1A144CBAD246C592ADB38DB36673E636E06043CF3776DE42B2A3C52B29A5378A538205F863CBCE489A9D26209B2679B7C10179193C7B50CC806D8FEA57F761D54F010EDBDCBC7624B989AD0C894E9ABA77744E164CB92A615919DA4E66C41F0D7DE03C2C8C89077E8E712CB867993110D1DAC8F8CC87AEC5F98E0A46D2DA94727D432D4406AE31F8FB2B9DAD9E882994E41FA2B46D364B416F05BE0D579DC31D0ABD89EBA6789835C4B4CE6B8F0E9C19E2B99BBB55211D9392F18A210686F487C38F6ED33CAFA7F2468B423CC7F36DE73655CE7B94D681409616C94E55B31AB6DC3422956DB8F00490A539D95F1BF4965340CB90B5BA03104F643F96B9ABDCB5D34920E4E675DBAB81C038C11AB28459E1F10F15EBE9C21BA47427C72C2960DD8763BFCE27D47C4A06B24EBD911DED8A0ADE710930F87132830B1B8E0675447A48E519FB18FD66D4012DE35E03533CB9C13B7D19823092F7F0D9C0E5C0EF7BCF9017817CEBB550168BB846E91AA5FFF1E44B7F42215890A26157EFA5647AF412924BFC0F6CD278261BA1F959AE90F165DB11AD56CEB5223AF8BCCD5760AAB2ED5F11C56B517FFBC96B178E46EF11E7A4E8209C1CA887218600B8B20FAA80AA0B00816969A0AE25807374C24566AC03F8DFB417D0C3E43AC9BDA056AD0562A28C9F7C5EEC7AC847699170668113DF07F22A875C40D570B8CCF09EE00D91B9841A7D10F1763EE48C0BABA0F76EAD940AB5FB376C685E2EF4A81717F8ACDA8ED205FB819E62598FB343451EE47D73B9541D9F8FB6DF4029FC8FCEC0F5B94258DB49B39717B0FEB5DB3BA8FB1D28F4FE0319F84111BE08E9D251791A0A1809B55C307B0D337923EDB8CA4F2018DE38A3B7AADDFB938D93C4F3F287DBFDD542D11C747A319AAA9CA8446EA4D5A3B8B91B48B850009A9353596F2352839D55FD45F442272123402D58C80411E5113C50E35D28EDAD3C7271E9ABB4E7152C70B306571433323661D4D12B2FAB10304F721B07FF48043203B31AB7 |
253 | 20170626085130 2 6 100 6143 2 FE3AFB7EA9CBCB633757EA982ED0DDFF120459E69D35DB36ACC5F69B04A5CCEE59A0312A97687F2B3DBC20917F4BF0B16D97B75EDCA16B58BDEB8BB1A726F6CB8BF5D7FC483777129A1C19CB559943EF201323760672C63859E830C6E99AFE5DD7A4E89BAD41C63B687558DD277F4E06A29D1E14A21CAA6FDD4E6F21EB8B146F2C04F93B1C94234E6295F2F8773B16BA3D51758841EA48ADD1A626E252DB3B78594B4586AC9E9EAF100F294ADC82BEBBF8CAB96B671EE7050B42733EB741107C5D2199D305C84F93C6AEEE6BD607DB7C0EFED773FB1DB73B04EFA72EB36111B99EBE6EEE899307FD288329FB2DB7E81776AEF0F935FFEE77611BDCFEC309F97EEB6E36FE42CA4C8EFAA0B4B93F5D83606B8FA7B49DD1DBB8F828B9C805381CB5DF4AC7FFAE27C62CBCD2FE80BB4157EB7F3267041255AC2F7EA3B450951878166049E5FF1BD3B361082FB184E342DDA1961ACFD90944F37E09A06AFE463AA9AA66EE699D28C4D109F3E8111CF4D625161B2855C11593AE408AE44DC026091119744FF09A4AB3C00717ACA004E26ACA53BF6444D839CF477A56FEAFFBF2E4CB946512815269D8E3C163FC29288A917A4A0ACC6DF54454CE2D54AC79AE05BF816DE1E3E9D3A9CC69DBE674880F98ECB8D8D4C4247AC07BC9B7C40FB89C4B9D4DA4604B37D15047DFB28C5D241CDFA327C3996872A0C05B84342F81A308D7796CA4A4038E47A5D4658F757C3F9645F11DEA92AE4D2E77FDB1A5D12519FF947F39A68152528CB02F915894D728C0E755B8BC4A99FCFC778A4099558A06D5FECC4C22DAA7E23C3B5E8E99B5365D5046C8C65846D949A521C0B25EFE5F5CD0845F09C29C096C4A80755120A299EA652B204775E53B2D521F366F4EF9FA65B1D8CB048295C39BE92667200E2889B1577CBD0AC23B2280B758A3650BE60D55F215DBF166873592253B1254968B5A46A61C792A153342C3ADE408676F4B27B7F22C50B079D0E32AEA134168A53A36F18E2FFA2459EDBA89BEC13D19C342235F6E9CF8F721B608F6297A3486173A7D5CED5E2AF6343775668C1B1FB0B745157973ADFA675B | 253 | 20171203185109 2 6 100 6143 2 F2F9DF4571769305CF3128D1F3B27E0B51064C0D70472B4B834907A11B6C76DAA091DDD058F56E7E5A1A144CBAD246C592ADB38DB36673E636E06043CF3776DE42B2A3C52B29A5378A538205F863CBCE489A9D26209B2679B7C10179193C7B50CC806D8FEA57F761D54F010EDBDCBC7624B989AD0C894E9ABA77744E164CB92A615919DA4E66C41F0D7DE03C2C8C89077E8E712CB867993110D1DAC8F8CC87AEC5F98E0A46D2DA94727D432D4406AE31F8FB2B9DAD9E882994E41FA2B46D364B416F05BE0D579DC31D0ABD89EBA6789835C4B4CE6B8F0E9C19E2B99BBB55211D9392F18A210686F487C38F6ED33CAFA7F2468B423CC7F36DE73655CE7B94D681409616C94E55B31AB6DC3422956DB8F00490A539D95F1BF4965340CB90B5BA03104F643F96B9ABDCB5D34920E4E675DBAB81C038C11AB28459E1F10F15EBE9C21BA47427C72C2960DD8763BFCE27D47C4A06B24EBD911DED8A0ADE710930F87132830B1B8E0675447A48E519FB18FD66D4012DE35E03533CB9C13B7D19823092F7F0D9C0E5C0EF7BCF9017817CEBB550168BB846E91AA5FFF1E44B7F42215890A26157EFA5647AF412924BFC0F6CD278261BA1F959AE90F165DB11AD56CEB5223AF8BCCD5760AAB2ED5F11C56B517FFBC96B178E46EF11E7A4E8209C1CA887218600B8B20FAA80AA0B00816969A0AE25807374C24566AC03F8DFB417D0C3E43AC9BDA056AD0562A28C9F7C5EEC7AC847699170668113DF07F22A875C40D570B8CCF09EE00D91B9841A7D10F1763EE48C0BABA0F76EAD940AB5FB376C685E2EF4A81717F8ACDA8ED205FB819E62598FB343451EE47D73B9541D9F8FB6DF4029FC8FCEC0F5B94258DB49B39717B0FEB5DB3BA8FB1D28F4FE0319F84111BE08E9D251791A0A1809B55C307B0D337923EDB8CA4F2018DE38A3B7AADDFB938D93C4F3F287DBFDD542D11C747A319AAA9CA8446EA4D5A3B8B91B48B850009A9353596F2352839D55FD45F442272123402D58C80411E5113C50E35D28EDAD3C7271E9ABB4E7152C70B306571433323661D4D12B2FAB10304F721B07FF48043204236403 |
254 | 20170626103016 2 6 100 6143 2 FE3AFB7EA9CBCB633757EA982ED0DDFF120459E69D35DB36ACC5F69B04A5CCEE59A0312A97687F2B3DBC20917F4BF0B16D97B75EDCA16B58BDEB8BB1A726F6CB8BF5D7FC483777129A1C19CB559943EF201323760672C63859E830C6E99AFE5DD7A4E89BAD41C63B687558DD277F4E06A29D1E14A21CAA6FDD4E6F21EB8B146F2C04F93B1C94234E6295F2F8773B16BA3D51758841EA48ADD1A626E252DB3B78594B4586AC9E9EAF100F294ADC82BEBBF8CAB96B671EE7050B42733EB741107C5D2199D305C84F93C6AEEE6BD607DB7C0EFED773FB1DB73B04EFA72EB36111B99EBE6EEE899307FD288329FB2DB7E81776AEF0F935FFEE77611BDCFEC309F97EEB6E36FE42CA4C8EFAA0B4B93F5D83606B8FA7B49DD1DBB8F828B9C805381CB5DF4AC7FFAE27C62CBCD2FE80BB4157EB7F3267041255AC2F7EA3B450951878166049E5FF1BD3B361082FB184E342DDA1961ACFD90944F37E09A06AFE463AA9AA66EE699D28C4D109F3E8111CF4D625161B2855C11593AE408AE44DC026091119744FF09A4AB3C00717ACA004E26ACA53BF6444D839CF477A56FEAFFBF2E4CB946512815269D8E3C163FC29288A917A4A0ACC6DF54454CE2D54AC79AE05BF816DE1E3E9D3A9CC69DBE674880F98ECB8D8D4C4247AC07BC9B7C40FB89C4B9D4DA4604B37D15047DFB28C5D241CDFA327C3996872A0C05B84342F81A308D7796CA4A4038E47A5D4658F757C3F9645F11DEA92AE4D2E77FDB1A5D12519FF947F39A68152528CB02F915894D728C0E755B8BC4A99FCFC778A4099558A06D5FECC4C22DAA7E23C3B5E8E99B5365D5046C8C65846D949A521C0B25EFE5F5CD0845F09C29C096C4A80755120A299EA652B204775E53B2D521F366F4EF9FA65B1D8CB048295C39BE92667200E2889B1577CBD0AC23B2280B758A3650BE60D55F215DBF166873592253B1254968B5A46A61C792A153342C3ADE408676F4B27B7F22C50B079D0E32AEA134168A53A36F18E2FFA2459EDBA89BEC13D19C342235F6E9CF8F721B608F6297A3486173A7D5CED5E2AF6343775668C1B1FB0B745157973B0702723 | 254 | 20171203190034 2 6 100 6143 5 F2F9DF4571769305CF3128D1F3B27E0B51064C0D70472B4B834907A11B6C76DAA091DDD058F56E7E5A1A144CBAD246C592ADB38DB36673E636E06043CF3776DE42B2A3C52B29A5378A538205F863CBCE489A9D26209B2679B7C10179193C7B50CC806D8FEA57F761D54F010EDBDCBC7624B989AD0C894E9ABA77744E164CB92A615919DA4E66C41F0D7DE03C2C8C89077E8E712CB867993110D1DAC8F8CC87AEC5F98E0A46D2DA94727D432D4406AE31F8FB2B9DAD9E882994E41FA2B46D364B416F05BE0D579DC31D0ABD89EBA6789835C4B4CE6B8F0E9C19E2B99BBB55211D9392F18A210686F487C38F6ED33CAFA7F2468B423CC7F36DE73655CE7B94D681409616C94E55B31AB6DC3422956DB8F00490A539D95F1BF4965340CB90B5BA03104F643F96B9ABDCB5D34920E4E675DBAB81C038C11AB28459E1F10F15EBE9C21BA47427C72C2960DD8763BFCE27D47C4A06B24EBD911DED8A0ADE710930F87132830B1B8E0675447A48E519FB18FD66D4012DE35E03533CB9C13B7D19823092F7F0D9C0E5C0EF7BCF9017817CEBB550168BB846E91AA5FFF1E44B7F42215890A26157EFA5647AF412924BFC0F6CD278261BA1F959AE90F165DB11AD56CEB5223AF8BCCD5760AAB2ED5F11C56B517FFBC96B178E46EF11E7A4E8209C1CA887218600B8B20FAA80AA0B00816969A0AE25807374C24566AC03F8DFB417D0C3E43AC9BDA056AD0562A28C9F7C5EEC7AC847699170668113DF07F22A875C40D570B8CCF09EE00D91B9841A7D10F1763EE48C0BABA0F76EAD940AB5FB376C685E2EF4A81717F8ACDA8ED205FB819E62598FB343451EE47D73B9541D9F8FB6DF4029FC8FCEC0F5B94258DB49B39717B0FEB5DB3BA8FB1D28F4FE0319F84111BE08E9D251791A0A1809B55C307B0D337923EDB8CA4F2018DE38A3B7AADDFB938D93C4F3F287DBFDD542D11C747A319AAA9CA8446EA4D5A3B8B91B48B850009A9353596F2352839D55FD45F442272123402D58C80411E5113C50E35D28EDAD3C7271E9ABB4E7152C70B306571433323661D4D12B2FAB10304F721B07FF4804320453C2BF |
255 | 20170626110918 2 6 100 6143 5 FE3AFB7EA9CBCB633757EA982ED0DDFF120459E69D35DB36ACC5F69B04A5CCEE59A0312A97687F2B3DBC20917F4BF0B16D97B75EDCA16B58BDEB8BB1A726F6CB8BF5D7FC483777129A1C19CB559943EF201323760672C63859E830C6E99AFE5DD7A4E89BAD41C63B687558DD277F4E06A29D1E14A21CAA6FDD4E6F21EB8B146F2C04F93B1C94234E6295F2F8773B16BA3D51758841EA48ADD1A626E252DB3B78594B4586AC9E9EAF100F294ADC82BEBBF8CAB96B671EE7050B42733EB741107C5D2199D305C84F93C6AEEE6BD607DB7C0EFED773FB1DB73B04EFA72EB36111B99EBE6EEE899307FD288329FB2DB7E81776AEF0F935FFEE77611BDCFEC309F97EEB6E36FE42CA4C8EFAA0B4B93F5D83606B8FA7B49DD1DBB8F828B9C805381CB5DF4AC7FFAE27C62CBCD2FE80BB4157EB7F3267041255AC2F7EA3B450951878166049E5FF1BD3B361082FB184E342DDA1961ACFD90944F37E09A06AFE463AA9AA66EE699D28C4D109F3E8111CF4D625161B2855C11593AE408AE44DC026091119744FF09A4AB3C00717ACA004E26ACA53BF6444D839CF477A56FEAFFBF2E4CB946512815269D8E3C163FC29288A917A4A0ACC6DF54454CE2D54AC79AE05BF816DE1E3E9D3A9CC69DBE674880F98ECB8D8D4C4247AC07BC9B7C40FB89C4B9D4DA4604B37D15047DFB28C5D241CDFA327C3996872A0C05B84342F81A308D7796CA4A4038E47A5D4658F757C3F9645F11DEA92AE4D2E77FDB1A5D12519FF947F39A68152528CB02F915894D728C0E755B8BC4A99FCFC778A4099558A06D5FECC4C22DAA7E23C3B5E8E99B5365D5046C8C65846D949A521C0B25EFE5F5CD0845F09C29C096C4A80755120A299EA652B204775E53B2D521F366F4EF9FA65B1D8CB048295C39BE92667200E2889B1577CBD0AC23B2280B758A3650BE60D55F215DBF166873592253B1254968B5A46A61C792A153342C3ADE408676F4B27B7F22C50B079D0E32AEA134168A53A36F18E2FFA2459EDBA89BEC13D19C342235F6E9CF8F721B608F6297A3486173A7D5CED5E2AF6343775668C1B1FB0B745157973B1648BFF | 255 | 20171203192853 2 6 100 6143 2 F2F9DF4571769305CF3128D1F3B27E0B51064C0D70472B4B834907A11B6C76DAA091DDD058F56E7E5A1A144CBAD246C592ADB38DB36673E636E06043CF3776DE42B2A3C52B29A5378A538205F863CBCE489A9D26209B2679B7C10179193C7B50CC806D8FEA57F761D54F010EDBDCBC7624B989AD0C894E9ABA77744E164CB92A615919DA4E66C41F0D7DE03C2C8C89077E8E712CB867993110D1DAC8F8CC87AEC5F98E0A46D2DA94727D432D4406AE31F8FB2B9DAD9E882994E41FA2B46D364B416F05BE0D579DC31D0ABD89EBA6789835C4B4CE6B8F0E9C19E2B99BBB55211D9392F18A210686F487C38F6ED33CAFA7F2468B423CC7F36DE73655CE7B94D681409616C94E55B31AB6DC3422956DB8F00490A539D95F1BF4965340CB90B5BA03104F643F96B9ABDCB5D34920E4E675DBAB81C038C11AB28459E1F10F15EBE9C21BA47427C72C2960DD8763BFCE27D47C4A06B24EBD911DED8A0ADE710930F87132830B1B8E0675447A48E519FB18FD66D4012DE35E03533CB9C13B7D19823092F7F0D9C0E5C0EF7BCF9017817CEBB550168BB846E91AA5FFF1E44B7F42215890A26157EFA5647AF412924BFC0F6CD278261BA1F959AE90F165DB11AD56CEB5223AF8BCCD5760AAB2ED5F11C56B517FFBC96B178E46EF11E7A4E8209C1CA887218600B8B20FAA80AA0B00816969A0AE25807374C24566AC03F8DFB417D0C3E43AC9BDA056AD0562A28C9F7C5EEC7AC847699170668113DF07F22A875C40D570B8CCF09EE00D91B9841A7D10F1763EE48C0BABA0F76EAD940AB5FB376C685E2EF4A81717F8ACDA8ED205FB819E62598FB343451EE47D73B9541D9F8FB6DF4029FC8FCEC0F5B94258DB49B39717B0FEB5DB3BA8FB1D28F4FE0319F84111BE08E9D251791A0A1809B55C307B0D337923EDB8CA4F2018DE38A3B7AADDFB938D93C4F3F287DBFDD542D11C747A319AAA9CA8446EA4D5A3B8B91B48B850009A9353596F2352839D55FD45F442272123402D58C80411E5113C50E35D28EDAD3C7271E9ABB4E7152C70B306571433323661D4D12B2FAB10304F721B07FF48043204F5D0C3 |
256 | 20170626113343 2 6 100 6143 2 FE3AFB7EA9CBCB633757EA982ED0DDFF120459E69D35DB36ACC5F69B04A5CCEE59A0312A97687F2B3DBC20917F4BF0B16D97B75EDCA16B58BDEB8BB1A726F6CB8BF5D7FC483777129A1C19CB559943EF201323760672C63859E830C6E99AFE5DD7A4E89BAD41C63B687558DD277F4E06A29D1E14A21CAA6FDD4E6F21EB8B146F2C04F93B1C94234E6295F2F8773B16BA3D51758841EA48ADD1A626E252DB3B78594B4586AC9E9EAF100F294ADC82BEBBF8CAB96B671EE7050B42733EB741107C5D2199D305C84F93C6AEEE6BD607DB7C0EFED773FB1DB73B04EFA72EB36111B99EBE6EEE899307FD288329FB2DB7E81776AEF0F935FFEE77611BDCFEC309F97EEB6E36FE42CA4C8EFAA0B4B93F5D83606B8FA7B49DD1DBB8F828B9C805381CB5DF4AC7FFAE27C62CBCD2FE80BB4157EB7F3267041255AC2F7EA3B450951878166049E5FF1BD3B361082FB184E342DDA1961ACFD90944F37E09A06AFE463AA9AA66EE699D28C4D109F3E8111CF4D625161B2855C11593AE408AE44DC026091119744FF09A4AB3C00717ACA004E26ACA53BF6444D839CF477A56FEAFFBF2E4CB946512815269D8E3C163FC29288A917A4A0ACC6DF54454CE2D54AC79AE05BF816DE1E3E9D3A9CC69DBE674880F98ECB8D8D4C4247AC07BC9B7C40FB89C4B9D4DA4604B37D15047DFB28C5D241CDFA327C3996872A0C05B84342F81A308D7796CA4A4038E47A5D4658F757C3F9645F11DEA92AE4D2E77FDB1A5D12519FF947F39A68152528CB02F915894D728C0E755B8BC4A99FCFC778A4099558A06D5FECC4C22DAA7E23C3B5E8E99B5365D5046C8C65846D949A521C0B25EFE5F5CD0845F09C29C096C4A80755120A299EA652B204775E53B2D521F366F4EF9FA65B1D8CB048295C39BE92667200E2889B1577CBD0AC23B2280B758A3650BE60D55F215DBF166873592253B1254968B5A46A61C792A153342C3ADE408676F4B27B7F22C50B079D0E32AEA134168A53A36F18E2FFA2459EDBA89BEC13D19C342235F6E9CF8F721B608F6297A3486173A7D5CED5E2AF6343775668C1B1FB0B745157973B1F924B3 | 256 | 20171203234953 2 6 100 6143 2 F2F9DF4571769305CF3128D1F3B27E0B51064C0D70472B4B834907A11B6C76DAA091DDD058F56E7E5A1A144CBAD246C592ADB38DB36673E636E06043CF3776DE42B2A3C52B29A5378A538205F863CBCE489A9D26209B2679B7C10179193C7B50CC806D8FEA57F761D54F010EDBDCBC7624B989AD0C894E9ABA77744E164CB92A615919DA4E66C41F0D7DE03C2C8C89077E8E712CB867993110D1DAC8F8CC87AEC5F98E0A46D2DA94727D432D4406AE31F8FB2B9DAD9E882994E41FA2B46D364B416F05BE0D579DC31D0ABD89EBA6789835C4B4CE6B8F0E9C19E2B99BBB55211D9392F18A210686F487C38F6ED33CAFA7F2468B423CC7F36DE73655CE7B94D681409616C94E55B31AB6DC3422956DB8F00490A539D95F1BF4965340CB90B5BA03104F643F96B9ABDCB5D34920E4E675DBAB81C038C11AB28459E1F10F15EBE9C21BA47427C72C2960DD8763BFCE27D47C4A06B24EBD911DED8A0ADE710930F87132830B1B8E0675447A48E519FB18FD66D4012DE35E03533CB9C13B7D19823092F7F0D9C0E5C0EF7BCF9017817CEBB550168BB846E91AA5FFF1E44B7F42215890A26157EFA5647AF412924BFC0F6CD278261BA1F959AE90F165DB11AD56CEB5223AF8BCCD5760AAB2ED5F11C56B517FFBC96B178E46EF11E7A4E8209C1CA887218600B8B20FAA80AA0B00816969A0AE25807374C24566AC03F8DFB417D0C3E43AC9BDA056AD0562A28C9F7C5EEC7AC847699170668113DF07F22A875C40D570B8CCF09EE00D91B9841A7D10F1763EE48C0BABA0F76EAD940AB5FB376C685E2EF4A81717F8ACDA8ED205FB819E62598FB343451EE47D73B9541D9F8FB6DF4029FC8FCEC0F5B94258DB49B39717B0FEB5DB3BA8FB1D28F4FE0319F84111BE08E9D251791A0A1809B55C307B0D337923EDB8CA4F2018DE38A3B7AADDFB938D93C4F3F287DBFDD542D11C747A319AAA9CA8446EA4D5A3B8B91B48B850009A9353596F2352839D55FD45F442272123402D58C80411E5113C50E35D28EDAD3C7271E9ABB4E7152C70B306571433323661D4D12B2FAB10304F721B07FF4804320B184C73 |
257 | 20170626150922 2 6 100 6143 2 FE3AFB7EA9CBCB633757EA982ED0DDFF120459E69D35DB36ACC5F69B04A5CCEE59A0312A97687F2B3DBC20917F4BF0B16D97B75EDCA16B58BDEB8BB1A726F6CB8BF5D7FC483777129A1C19CB559943EF201323760672C63859E830C6E99AFE5DD7A4E89BAD41C63B687558DD277F4E06A29D1E14A21CAA6FDD4E6F21EB8B146F2C04F93B1C94234E6295F2F8773B16BA3D51758841EA48ADD1A626E252DB3B78594B4586AC9E9EAF100F294ADC82BEBBF8CAB96B671EE7050B42733EB741107C5D2199D305C84F93C6AEEE6BD607DB7C0EFED773FB1DB73B04EFA72EB36111B99EBE6EEE899307FD288329FB2DB7E81776AEF0F935FFEE77611BDCFEC309F97EEB6E36FE42CA4C8EFAA0B4B93F5D83606B8FA7B49DD1DBB8F828B9C805381CB5DF4AC7FFAE27C62CBCD2FE80BB4157EB7F3267041255AC2F7EA3B450951878166049E5FF1BD3B361082FB184E342DDA1961ACFD90944F37E09A06AFE463AA9AA66EE699D28C4D109F3E8111CF4D625161B2855C11593AE408AE44DC026091119744FF09A4AB3C00717ACA004E26ACA53BF6444D839CF477A56FEAFFBF2E4CB946512815269D8E3C163FC29288A917A4A0ACC6DF54454CE2D54AC79AE05BF816DE1E3E9D3A9CC69DBE674880F98ECB8D8D4C4247AC07BC9B7C40FB89C4B9D4DA4604B37D15047DFB28C5D241CDFA327C3996872A0C05B84342F81A308D7796CA4A4038E47A5D4658F757C3F9645F11DEA92AE4D2E77FDB1A5D12519FF947F39A68152528CB02F915894D728C0E755B8BC4A99FCFC778A4099558A06D5FECC4C22DAA7E23C3B5E8E99B5365D5046C8C65846D949A521C0B25EFE5F5CD0845F09C29C096C4A80755120A299EA652B204775E53B2D521F366F4EF9FA65B1D8CB048295C39BE92667200E2889B1577CBD0AC23B2280B758A3650BE60D55F215DBF166873592253B1254968B5A46A61C792A153342C3ADE408676F4B27B7F22C50B079D0E32AEA134168A53A36F18E2FFA2459EDBA89BEC13D19C342235F6E9CF8F721B608F6297A3486173A7D5CED5E2AF6343775668C1B1FB0B745157973B78B107B | 257 | 20171204012939 2 6 100 6143 5 F2F9DF4571769305CF3128D1F3B27E0B51064C0D70472B4B834907A11B6C76DAA091DDD058F56E7E5A1A144CBAD246C592ADB38DB36673E636E06043CF3776DE42B2A3C52B29A5378A538205F863CBCE489A9D26209B2679B7C10179193C7B50CC806D8FEA57F761D54F010EDBDCBC7624B989AD0C894E9ABA77744E164CB92A615919DA4E66C41F0D7DE03C2C8C89077E8E712CB867993110D1DAC8F8CC87AEC5F98E0A46D2DA94727D432D4406AE31F8FB2B9DAD9E882994E41FA2B46D364B416F05BE0D579DC31D0ABD89EBA6789835C4B4CE6B8F0E9C19E2B99BBB55211D9392F18A210686F487C38F6ED33CAFA7F2468B423CC7F36DE73655CE7B94D681409616C94E55B31AB6DC3422956DB8F00490A539D95F1BF4965340CB90B5BA03104F643F96B9ABDCB5D34920E4E675DBAB81C038C11AB28459E1F10F15EBE9C21BA47427C72C2960DD8763BFCE27D47C4A06B24EBD911DED8A0ADE710930F87132830B1B8E0675447A48E519FB18FD66D4012DE35E03533CB9C13B7D19823092F7F0D9C0E5C0EF7BCF9017817CEBB550168BB846E91AA5FFF1E44B7F42215890A26157EFA5647AF412924BFC0F6CD278261BA1F959AE90F165DB11AD56CEB5223AF8BCCD5760AAB2ED5F11C56B517FFBC96B178E46EF11E7A4E8209C1CA887218600B8B20FAA80AA0B00816969A0AE25807374C24566AC03F8DFB417D0C3E43AC9BDA056AD0562A28C9F7C5EEC7AC847699170668113DF07F22A875C40D570B8CCF09EE00D91B9841A7D10F1763EE48C0BABA0F76EAD940AB5FB376C685E2EF4A81717F8ACDA8ED205FB819E62598FB343451EE47D73B9541D9F8FB6DF4029FC8FCEC0F5B94258DB49B39717B0FEB5DB3BA8FB1D28F4FE0319F84111BE08E9D251791A0A1809B55C307B0D337923EDB8CA4F2018DE38A3B7AADDFB938D93C4F3F287DBFDD542D11C747A319AAA9CA8446EA4D5A3B8B91B48B850009A9353596F2352839D55FD45F442272123402D58C80411E5113C50E35D28EDAD3C7271E9ABB4E7152C70B306571433323661D4D12B2FAB10304F721B07FF4804320D6A5B1F |
258 | 20170626162428 2 6 100 6143 2 FE3AFB7EA9CBCB633757EA982ED0DDFF120459E69D35DB36ACC5F69B04A5CCEE59A0312A97687F2B3DBC20917F4BF0B16D97B75EDCA16B58BDEB8BB1A726F6CB8BF5D7FC483777129A1C19CB559943EF201323760672C63859E830C6E99AFE5DD7A4E89BAD41C63B687558DD277F4E06A29D1E14A21CAA6FDD4E6F21EB8B146F2C04F93B1C94234E6295F2F8773B16BA3D51758841EA48ADD1A626E252DB3B78594B4586AC9E9EAF100F294ADC82BEBBF8CAB96B671EE7050B42733EB741107C5D2199D305C84F93C6AEEE6BD607DB7C0EFED773FB1DB73B04EFA72EB36111B99EBE6EEE899307FD288329FB2DB7E81776AEF0F935FFEE77611BDCFEC309F97EEB6E36FE42CA4C8EFAA0B4B93F5D83606B8FA7B49DD1DBB8F828B9C805381CB5DF4AC7FFAE27C62CBCD2FE80BB4157EB7F3267041255AC2F7EA3B450951878166049E5FF1BD3B361082FB184E342DDA1961ACFD90944F37E09A06AFE463AA9AA66EE699D28C4D109F3E8111CF4D625161B2855C11593AE408AE44DC026091119744FF09A4AB3C00717ACA004E26ACA53BF6444D839CF477A56FEAFFBF2E4CB946512815269D8E3C163FC29288A917A4A0ACC6DF54454CE2D54AC79AE05BF816DE1E3E9D3A9CC69DBE674880F98ECB8D8D4C4247AC07BC9B7C40FB89C4B9D4DA4604B37D15047DFB28C5D241CDFA327C3996872A0C05B84342F81A308D7796CA4A4038E47A5D4658F757C3F9645F11DEA92AE4D2E77FDB1A5D12519FF947F39A68152528CB02F915894D728C0E755B8BC4A99FCFC778A4099558A06D5FECC4C22DAA7E23C3B5E8E99B5365D5046C8C65846D949A521C0B25EFE5F5CD0845F09C29C096C4A80755120A299EA652B204775E53B2D521F366F4EF9FA65B1D8CB048295C39BE92667200E2889B1577CBD0AC23B2280B758A3650BE60D55F215DBF166873592253B1254968B5A46A61C792A153342C3ADE408676F4B27B7F22C50B079D0E32AEA134168A53A36F18E2FFA2459EDBA89BEC13D19C342235F6E9CF8F721B608F6297A3486173A7D5CED5E2AF6343775668C1B1FB0B745157973B972EB6B | 258 | 20171204015042 2 6 100 6143 2 F2F9DF4571769305CF3128D1F3B27E0B51064C0D70472B4B834907A11B6C76DAA091DDD058F56E7E5A1A144CBAD246C592ADB38DB36673E636E06043CF3776DE42B2A3C52B29A5378A538205F863CBCE489A9D26209B2679B7C10179193C7B50CC806D8FEA57F761D54F010EDBDCBC7624B989AD0C894E9ABA77744E164CB92A615919DA4E66C41F0D7DE03C2C8C89077E8E712CB867993110D1DAC8F8CC87AEC5F98E0A46D2DA94727D432D4406AE31F8FB2B9DAD9E882994E41FA2B46D364B416F05BE0D579DC31D0ABD89EBA6789835C4B4CE6B8F0E9C19E2B99BBB55211D9392F18A210686F487C38F6ED33CAFA7F2468B423CC7F36DE73655CE7B94D681409616C94E55B31AB6DC3422956DB8F00490A539D95F1BF4965340CB90B5BA03104F643F96B9ABDCB5D34920E4E675DBAB81C038C11AB28459E1F10F15EBE9C21BA47427C72C2960DD8763BFCE27D47C4A06B24EBD911DED8A0ADE710930F87132830B1B8E0675447A48E519FB18FD66D4012DE35E03533CB9C13B7D19823092F7F0D9C0E5C0EF7BCF9017817CEBB550168BB846E91AA5FFF1E44B7F42215890A26157EFA5647AF412924BFC0F6CD278261BA1F959AE90F165DB11AD56CEB5223AF8BCCD5760AAB2ED5F11C56B517FFBC96B178E46EF11E7A4E8209C1CA887218600B8B20FAA80AA0B00816969A0AE25807374C24566AC03F8DFB417D0C3E43AC9BDA056AD0562A28C9F7C5EEC7AC847699170668113DF07F22A875C40D570B8CCF09EE00D91B9841A7D10F1763EE48C0BABA0F76EAD940AB5FB376C685E2EF4A81717F8ACDA8ED205FB819E62598FB343451EE47D73B9541D9F8FB6DF4029FC8FCEC0F5B94258DB49B39717B0FEB5DB3BA8FB1D28F4FE0319F84111BE08E9D251791A0A1809B55C307B0D337923EDB8CA4F2018DE38A3B7AADDFB938D93C4F3F287DBFDD542D11C747A319AAA9CA8446EA4D5A3B8B91B48B850009A9353596F2352839D55FD45F442272123402D58C80411E5113C50E35D28EDAD3C7271E9ABB4E7152C70B306571433323661D4D12B2FAB10304F721B07FF4804320DDD6F5B |
259 | 20170626171558 2 6 100 6143 5 FE3AFB7EA9CBCB633757EA982ED0DDFF120459E69D35DB36ACC5F69B04A5CCEE59A0312A97687F2B3DBC20917F4BF0B16D97B75EDCA16B58BDEB8BB1A726F6CB8BF5D7FC483777129A1C19CB559943EF201323760672C63859E830C6E99AFE5DD7A4E89BAD41C63B687558DD277F4E06A29D1E14A21CAA6FDD4E6F21EB8B146F2C04F93B1C94234E6295F2F8773B16BA3D51758841EA48ADD1A626E252DB3B78594B4586AC9E9EAF100F294ADC82BEBBF8CAB96B671EE7050B42733EB741107C5D2199D305C84F93C6AEEE6BD607DB7C0EFED773FB1DB73B04EFA72EB36111B99EBE6EEE899307FD288329FB2DB7E81776AEF0F935FFEE77611BDCFEC309F97EEB6E36FE42CA4C8EFAA0B4B93F5D83606B8FA7B49DD1DBB8F828B9C805381CB5DF4AC7FFAE27C62CBCD2FE80BB4157EB7F3267041255AC2F7EA3B450951878166049E5FF1BD3B361082FB184E342DDA1961ACFD90944F37E09A06AFE463AA9AA66EE699D28C4D109F3E8111CF4D625161B2855C11593AE408AE44DC026091119744FF09A4AB3C00717ACA004E26ACA53BF6444D839CF477A56FEAFFBF2E4CB946512815269D8E3C163FC29288A917A4A0ACC6DF54454CE2D54AC79AE05BF816DE1E3E9D3A9CC69DBE674880F98ECB8D8D4C4247AC07BC9B7C40FB89C4B9D4DA4604B37D15047DFB28C5D241CDFA327C3996872A0C05B84342F81A308D7796CA4A4038E47A5D4658F757C3F9645F11DEA92AE4D2E77FDB1A5D12519FF947F39A68152528CB02F915894D728C0E755B8BC4A99FCFC778A4099558A06D5FECC4C22DAA7E23C3B5E8E99B5365D5046C8C65846D949A521C0B25EFE5F5CD0845F09C29C096C4A80755120A299EA652B204775E53B2D521F366F4EF9FA65B1D8CB048295C39BE92667200E2889B1577CBD0AC23B2280B758A3650BE60D55F215DBF166873592253B1254968B5A46A61C792A153342C3ADE408676F4B27B7F22C50B079D0E32AEA134168A53A36F18E2FFA2459EDBA89BEC13D19C342235F6E9CF8F721B608F6297A3486173A7D5CED5E2AF6343775668C1B1FB0B745157973BAC16547 | 259 | 20171204040850 2 6 100 6143 5 F2F9DF4571769305CF3128D1F3B27E0B51064C0D70472B4B834907A11B6C76DAA091DDD058F56E7E5A1A144CBAD246C592ADB38DB36673E636E06043CF3776DE42B2A3C52B29A5378A538205F863CBCE489A9D26209B2679B7C10179193C7B50CC806D8FEA57F761D54F010EDBDCBC7624B989AD0C894E9ABA77744E164CB92A615919DA4E66C41F0D7DE03C2C8C89077E8E712CB867993110D1DAC8F8CC87AEC5F98E0A46D2DA94727D432D4406AE31F8FB2B9DAD9E882994E41FA2B46D364B416F05BE0D579DC31D0ABD89EBA6789835C4B4CE6B8F0E9C19E2B99BBB55211D9392F18A210686F487C38F6ED33CAFA7F2468B423CC7F36DE73655CE7B94D681409616C94E55B31AB6DC3422956DB8F00490A539D95F1BF4965340CB90B5BA03104F643F96B9ABDCB5D34920E4E675DBAB81C038C11AB28459E1F10F15EBE9C21BA47427C72C2960DD8763BFCE27D47C4A06B24EBD911DED8A0ADE710930F87132830B1B8E0675447A48E519FB18FD66D4012DE35E03533CB9C13B7D19823092F7F0D9C0E5C0EF7BCF9017817CEBB550168BB846E91AA5FFF1E44B7F42215890A26157EFA5647AF412924BFC0F6CD278261BA1F959AE90F165DB11AD56CEB5223AF8BCCD5760AAB2ED5F11C56B517FFBC96B178E46EF11E7A4E8209C1CA887218600B8B20FAA80AA0B00816969A0AE25807374C24566AC03F8DFB417D0C3E43AC9BDA056AD0562A28C9F7C5EEC7AC847699170668113DF07F22A875C40D570B8CCF09EE00D91B9841A7D10F1763EE48C0BABA0F76EAD940AB5FB376C685E2EF4A81717F8ACDA8ED205FB819E62598FB343451EE47D73B9541D9F8FB6DF4029FC8FCEC0F5B94258DB49B39717B0FEB5DB3BA8FB1D28F4FE0319F84111BE08E9D251791A0A1809B55C307B0D337923EDB8CA4F2018DE38A3B7AADDFB938D93C4F3F287DBFDD542D11C747A319AAA9CA8446EA4D5A3B8B91B48B850009A9353596F2352839D55FD45F442272123402D58C80411E5113C50E35D28EDAD3C7271E9ABB4E7152C70B306571433323661D4D12B2FAB10304F721B07FF480432110E46BF |
260 | 20170626231518 2 6 100 6143 2 FE3AFB7EA9CBCB633757EA982ED0DDFF120459E69D35DB36ACC5F69B04A5CCEE59A0312A97687F2B3DBC20917F4BF0B16D97B75EDCA16B58BDEB8BB1A726F6CB8BF5D7FC483777129A1C19CB559943EF201323760672C63859E830C6E99AFE5DD7A4E89BAD41C63B687558DD277F4E06A29D1E14A21CAA6FDD4E6F21EB8B146F2C04F93B1C94234E6295F2F8773B16BA3D51758841EA48ADD1A626E252DB3B78594B4586AC9E9EAF100F294ADC82BEBBF8CAB96B671EE7050B42733EB741107C5D2199D305C84F93C6AEEE6BD607DB7C0EFED773FB1DB73B04EFA72EB36111B99EBE6EEE899307FD288329FB2DB7E81776AEF0F935FFEE77611BDCFEC309F97EEB6E36FE42CA4C8EFAA0B4B93F5D83606B8FA7B49DD1DBB8F828B9C805381CB5DF4AC7FFAE27C62CBCD2FE80BB4157EB7F3267041255AC2F7EA3B450951878166049E5FF1BD3B361082FB184E342DDA1961ACFD90944F37E09A06AFE463AA9AA66EE699D28C4D109F3E8111CF4D625161B2855C11593AE408AE44DC026091119744FF09A4AB3C00717ACA004E26ACA53BF6444D839CF477A56FEAFFBF2E4CB946512815269D8E3C163FC29288A917A4A0ACC6DF54454CE2D54AC79AE05BF816DE1E3E9D3A9CC69DBE674880F98ECB8D8D4C4247AC07BC9B7C40FB89C4B9D4DA4604B37D15047DFB28C5D241CDFA327C3996872A0C05B84342F81A308D7796CA4A4038E47A5D4658F757C3F9645F11DEA92AE4D2E77FDB1A5D12519FF947F39A68152528CB02F915894D728C0E755B8BC4A99FCFC778A4099558A06D5FECC4C22DAA7E23C3B5E8E99B5365D5046C8C65846D949A521C0B25EFE5F5CD0845F09C29C096C4A80755120A299EA652B204775E53B2D521F366F4EF9FA65B1D8CB048295C39BE92667200E2889B1577CBD0AC23B2280B758A3650BE60D55F215DBF166873592253B1254968B5A46A61C792A153342C3ADE408676F4B27B7F22C50B079D0E32AEA134168A53A36F18E2FFA2459EDBA89BEC13D19C342235F6E9CF8F721B608F6297A3486173A7D5CED5E2AF6343775668C1B1FB0B745157973C3C4E533 | 260 | 20171204060221 2 6 100 6143 5 F2F9DF4571769305CF3128D1F3B27E0B51064C0D70472B4B834907A11B6C76DAA091DDD058F56E7E5A1A144CBAD246C592ADB38DB36673E636E06043CF3776DE42B2A3C52B29A5378A538205F863CBCE489A9D26209B2679B7C10179193C7B50CC806D8FEA57F761D54F010EDBDCBC7624B989AD0C894E9ABA77744E164CB92A615919DA4E66C41F0D7DE03C2C8C89077E8E712CB867993110D1DAC8F8CC87AEC5F98E0A46D2DA94727D432D4406AE31F8FB2B9DAD9E882994E41FA2B46D364B416F05BE0D579DC31D0ABD89EBA6789835C4B4CE6B8F0E9C19E2B99BBB55211D9392F18A210686F487C38F6ED33CAFA7F2468B423CC7F36DE73655CE7B94D681409616C94E55B31AB6DC3422956DB8F00490A539D95F1BF4965340CB90B5BA03104F643F96B9ABDCB5D34920E4E675DBAB81C038C11AB28459E1F10F15EBE9C21BA47427C72C2960DD8763BFCE27D47C4A06B24EBD911DED8A0ADE710930F87132830B1B8E0675447A48E519FB18FD66D4012DE35E03533CB9C13B7D19823092F7F0D9C0E5C0EF7BCF9017817CEBB550168BB846E91AA5FFF1E44B7F42215890A26157EFA5647AF412924BFC0F6CD278261BA1F959AE90F165DB11AD56CEB5223AF8BCCD5760AAB2ED5F11C56B517FFBC96B178E46EF11E7A4E8209C1CA887218600B8B20FAA80AA0B00816969A0AE25807374C24566AC03F8DFB417D0C3E43AC9BDA056AD0562A28C9F7C5EEC7AC847699170668113DF07F22A875C40D570B8CCF09EE00D91B9841A7D10F1763EE48C0BABA0F76EAD940AB5FB376C685E2EF4A81717F8ACDA8ED205FB819E62598FB343451EE47D73B9541D9F8FB6DF4029FC8FCEC0F5B94258DB49B39717B0FEB5DB3BA8FB1D28F4FE0319F84111BE08E9D251791A0A1809B55C307B0D337923EDB8CA4F2018DE38A3B7AADDFB938D93C4F3F287DBFDD542D11C747A319AAA9CA8446EA4D5A3B8B91B48B850009A9353596F2352839D55FD45F442272123402D58C80411E5113C50E35D28EDAD3C7271E9ABB4E7152C70B306571433323661D4D12B2FAB10304F721B07FF480432139A662F |
261 | 20170627001636 2 6 100 6143 5 FE3AFB7EA9CBCB633757EA982ED0DDFF120459E69D35DB36ACC5F69B04A5CCEE59A0312A97687F2B3DBC20917F4BF0B16D97B75EDCA16B58BDEB8BB1A726F6CB8BF5D7FC483777129A1C19CB559943EF201323760672C63859E830C6E99AFE5DD7A4E89BAD41C63B687558DD277F4E06A29D1E14A21CAA6FDD4E6F21EB8B146F2C04F93B1C94234E6295F2F8773B16BA3D51758841EA48ADD1A626E252DB3B78594B4586AC9E9EAF100F294ADC82BEBBF8CAB96B671EE7050B42733EB741107C5D2199D305C84F93C6AEEE6BD607DB7C0EFED773FB1DB73B04EFA72EB36111B99EBE6EEE899307FD288329FB2DB7E81776AEF0F935FFEE77611BDCFEC309F97EEB6E36FE42CA4C8EFAA0B4B93F5D83606B8FA7B49DD1DBB8F828B9C805381CB5DF4AC7FFAE27C62CBCD2FE80BB4157EB7F3267041255AC2F7EA3B450951878166049E5FF1BD3B361082FB184E342DDA1961ACFD90944F37E09A06AFE463AA9AA66EE699D28C4D109F3E8111CF4D625161B2855C11593AE408AE44DC026091119744FF09A4AB3C00717ACA004E26ACA53BF6444D839CF477A56FEAFFBF2E4CB946512815269D8E3C163FC29288A917A4A0ACC6DF54454CE2D54AC79AE05BF816DE1E3E9D3A9CC69DBE674880F98ECB8D8D4C4247AC07BC9B7C40FB89C4B9D4DA4604B37D15047DFB28C5D241CDFA327C3996872A0C05B84342F81A308D7796CA4A4038E47A5D4658F757C3F9645F11DEA92AE4D2E77FDB1A5D12519FF947F39A68152528CB02F915894D728C0E755B8BC4A99FCFC778A4099558A06D5FECC4C22DAA7E23C3B5E8E99B5365D5046C8C65846D949A521C0B25EFE5F5CD0845F09C29C096C4A80755120A299EA652B204775E53B2D521F366F4EF9FA65B1D8CB048295C39BE92667200E2889B1577CBD0AC23B2280B758A3650BE60D55F215DBF166873592253B1254968B5A46A61C792A153342C3ADE408676F4B27B7F22C50B079D0E32AEA134168A53A36F18E2FFA2459EDBA89BEC13D19C342235F6E9CF8F721B608F6297A3486173A7D5CED5E2AF6343775668C1B1FB0B745157973C53DC917 | 261 | 20171204093759 2 6 100 6143 2 F2F9DF4571769305CF3128D1F3B27E0B51064C0D70472B4B834907A11B6C76DAA091DDD058F56E7E5A1A144CBAD246C592ADB38DB36673E636E06043CF3776DE42B2A3C52B29A5378A538205F863CBCE489A9D26209B2679B7C10179193C7B50CC806D8FEA57F761D54F010EDBDCBC7624B989AD0C894E9ABA77744E164CB92A615919DA4E66C41F0D7DE03C2C8C89077E8E712CB867993110D1DAC8F8CC87AEC5F98E0A46D2DA94727D432D4406AE31F8FB2B9DAD9E882994E41FA2B46D364B416F05BE0D579DC31D0ABD89EBA6789835C4B4CE6B8F0E9C19E2B99BBB55211D9392F18A210686F487C38F6ED33CAFA7F2468B423CC7F36DE73655CE7B94D681409616C94E55B31AB6DC3422956DB8F00490A539D95F1BF4965340CB90B5BA03104F643F96B9ABDCB5D34920E4E675DBAB81C038C11AB28459E1F10F15EBE9C21BA47427C72C2960DD8763BFCE27D47C4A06B24EBD911DED8A0ADE710930F87132830B1B8E0675447A48E519FB18FD66D4012DE35E03533CB9C13B7D19823092F7F0D9C0E5C0EF7BCF9017817CEBB550168BB846E91AA5FFF1E44B7F42215890A26157EFA5647AF412924BFC0F6CD278261BA1F959AE90F165DB11AD56CEB5223AF8BCCD5760AAB2ED5F11C56B517FFBC96B178E46EF11E7A4E8209C1CA887218600B8B20FAA80AA0B00816969A0AE25807374C24566AC03F8DFB417D0C3E43AC9BDA056AD0562A28C9F7C5EEC7AC847699170668113DF07F22A875C40D570B8CCF09EE00D91B9841A7D10F1763EE48C0BABA0F76EAD940AB5FB376C685E2EF4A81717F8ACDA8ED205FB819E62598FB343451EE47D73B9541D9F8FB6DF4029FC8FCEC0F5B94258DB49B39717B0FEB5DB3BA8FB1D28F4FE0319F84111BE08E9D251791A0A1809B55C307B0D337923EDB8CA4F2018DE38A3B7AADDFB938D93C4F3F287DBFDD542D11C747A319AAA9CA8446EA4D5A3B8B91B48B850009A9353596F2352839D55FD45F442272123402D58C80411E5113C50E35D28EDAD3C7271E9ABB4E7152C70B306571433323661D4D12B2FAB10304F721B07FF48043218861E53 |
262 | 20170627023229 2 6 100 6143 2 FE3AFB7EA9CBCB633757EA982ED0DDFF120459E69D35DB36ACC5F69B04A5CCEE59A0312A97687F2B3DBC20917F4BF0B16D97B75EDCA16B58BDEB8BB1A726F6CB8BF5D7FC483777129A1C19CB559943EF201323760672C63859E830C6E99AFE5DD7A4E89BAD41C63B687558DD277F4E06A29D1E14A21CAA6FDD4E6F21EB8B146F2C04F93B1C94234E6295F2F8773B16BA3D51758841EA48ADD1A626E252DB3B78594B4586AC9E9EAF100F294ADC82BEBBF8CAB96B671EE7050B42733EB741107C5D2199D305C84F93C6AEEE6BD607DB7C0EFED773FB1DB73B04EFA72EB36111B99EBE6EEE899307FD288329FB2DB7E81776AEF0F935FFEE77611BDCFEC309F97EEB6E36FE42CA4C8EFAA0B4B93F5D83606B8FA7B49DD1DBB8F828B9C805381CB5DF4AC7FFAE27C62CBCD2FE80BB4157EB7F3267041255AC2F7EA3B450951878166049E5FF1BD3B361082FB184E342DDA1961ACFD90944F37E09A06AFE463AA9AA66EE699D28C4D109F3E8111CF4D625161B2855C11593AE408AE44DC026091119744FF09A4AB3C00717ACA004E26ACA53BF6444D839CF477A56FEAFFBF2E4CB946512815269D8E3C163FC29288A917A4A0ACC6DF54454CE2D54AC79AE05BF816DE1E3E9D3A9CC69DBE674880F98ECB8D8D4C4247AC07BC9B7C40FB89C4B9D4DA4604B37D15047DFB28C5D241CDFA327C3996872A0C05B84342F81A308D7796CA4A4038E47A5D4658F757C3F9645F11DEA92AE4D2E77FDB1A5D12519FF947F39A68152528CB02F915894D728C0E755B8BC4A99FCFC778A4099558A06D5FECC4C22DAA7E23C3B5E8E99B5365D5046C8C65846D949A521C0B25EFE5F5CD0845F09C29C096C4A80755120A299EA652B204775E53B2D521F366F4EF9FA65B1D8CB048295C39BE92667200E2889B1577CBD0AC23B2280B758A3650BE60D55F215DBF166873592253B1254968B5A46A61C792A153342C3ADE408676F4B27B7F22C50B079D0E32AEA134168A53A36F18E2FFA2459EDBA89BEC13D19C342235F6E9CF8F721B608F6297A3486173A7D5CED5E2AF6343775668C1B1FB0B745157973C8A24E33 | 262 | 20171204110909 2 6 100 6143 2 F2F9DF4571769305CF3128D1F3B27E0B51064C0D70472B4B834907A11B6C76DAA091DDD058F56E7E5A1A144CBAD246C592ADB38DB36673E636E06043CF3776DE42B2A3C52B29A5378A538205F863CBCE489A9D26209B2679B7C10179193C7B50CC806D8FEA57F761D54F010EDBDCBC7624B989AD0C894E9ABA77744E164CB92A615919DA4E66C41F0D7DE03C2C8C89077E8E712CB867993110D1DAC8F8CC87AEC5F98E0A46D2DA94727D432D4406AE31F8FB2B9DAD9E882994E41FA2B46D364B416F05BE0D579DC31D0ABD89EBA6789835C4B4CE6B8F0E9C19E2B99BBB55211D9392F18A210686F487C38F6ED33CAFA7F2468B423CC7F36DE73655CE7B94D681409616C94E55B31AB6DC3422956DB8F00490A539D95F1BF4965340CB90B5BA03104F643F96B9ABDCB5D34920E4E675DBAB81C038C11AB28459E1F10F15EBE9C21BA47427C72C2960DD8763BFCE27D47C4A06B24EBD911DED8A0ADE710930F87132830B1B8E0675447A48E519FB18FD66D4012DE35E03533CB9C13B7D19823092F7F0D9C0E5C0EF7BCF9017817CEBB550168BB846E91AA5FFF1E44B7F42215890A26157EFA5647AF412924BFC0F6CD278261BA1F959AE90F165DB11AD56CEB5223AF8BCCD5760AAB2ED5F11C56B517FFBC96B178E46EF11E7A4E8209C1CA887218600B8B20FAA80AA0B00816969A0AE25807374C24566AC03F8DFB417D0C3E43AC9BDA056AD0562A28C9F7C5EEC7AC847699170668113DF07F22A875C40D570B8CCF09EE00D91B9841A7D10F1763EE48C0BABA0F76EAD940AB5FB376C685E2EF4A81717F8ACDA8ED205FB819E62598FB343451EE47D73B9541D9F8FB6DF4029FC8FCEC0F5B94258DB49B39717B0FEB5DB3BA8FB1D28F4FE0319F84111BE08E9D251791A0A1809B55C307B0D337923EDB8CA4F2018DE38A3B7AADDFB938D93C4F3F287DBFDD542D11C747A319AAA9CA8446EA4D5A3B8B91B48B850009A9353596F2352839D55FD45F442272123402D58C80411E5113C50E35D28EDAD3C7271E9ABB4E7152C70B306571433323661D4D12B2FAB10304F721B07FF4804321AA18B6B |
263 | 20170627055348 2 6 100 6143 5 FE3AFB7EA9CBCB633757EA982ED0DDFF120459E69D35DB36ACC5F69B04A5CCEE59A0312A97687F2B3DBC20917F4BF0B16D97B75EDCA16B58BDEB8BB1A726F6CB8BF5D7FC483777129A1C19CB559943EF201323760672C63859E830C6E99AFE5DD7A4E89BAD41C63B687558DD277F4E06A29D1E14A21CAA6FDD4E6F21EB8B146F2C04F93B1C94234E6295F2F8773B16BA3D51758841EA48ADD1A626E252DB3B78594B4586AC9E9EAF100F294ADC82BEBBF8CAB96B671EE7050B42733EB741107C5D2199D305C84F93C6AEEE6BD607DB7C0EFED773FB1DB73B04EFA72EB36111B99EBE6EEE899307FD288329FB2DB7E81776AEF0F935FFEE77611BDCFEC309F97EEB6E36FE42CA4C8EFAA0B4B93F5D83606B8FA7B49DD1DBB8F828B9C805381CB5DF4AC7FFAE27C62CBCD2FE80BB4157EB7F3267041255AC2F7EA3B450951878166049E5FF1BD3B361082FB184E342DDA1961ACFD90944F37E09A06AFE463AA9AA66EE699D28C4D109F3E8111CF4D625161B2855C11593AE408AE44DC026091119744FF09A4AB3C00717ACA004E26ACA53BF6444D839CF477A56FEAFFBF2E4CB946512815269D8E3C163FC29288A917A4A0ACC6DF54454CE2D54AC79AE05BF816DE1E3E9D3A9CC69DBE674880F98ECB8D8D4C4247AC07BC9B7C40FB89C4B9D4DA4604B37D15047DFB28C5D241CDFA327C3996872A0C05B84342F81A308D7796CA4A4038E47A5D4658F757C3F9645F11DEA92AE4D2E77FDB1A5D12519FF947F39A68152528CB02F915894D728C0E755B8BC4A99FCFC778A4099558A06D5FECC4C22DAA7E23C3B5E8E99B5365D5046C8C65846D949A521C0B25EFE5F5CD0845F09C29C096C4A80755120A299EA652B204775E53B2D521F366F4EF9FA65B1D8CB048295C39BE92667200E2889B1577CBD0AC23B2280B758A3650BE60D55F215DBF166873592253B1254968B5A46A61C792A153342C3ADE408676F4B27B7F22C50B079D0E32AEA134168A53A36F18E2FFA2459EDBA89BEC13D19C342235F6E9CF8F721B608F6297A3486173A7D5CED5E2AF6343775668C1B1FB0B745157973CDB0A037 | 263 | 20171204112744 2 6 100 6143 2 F2F9DF4571769305CF3128D1F3B27E0B51064C0D70472B4B834907A11B6C76DAA091DDD058F56E7E5A1A144CBAD246C592ADB38DB36673E636E06043CF3776DE42B2A3C52B29A5378A538205F863CBCE489A9D26209B2679B7C10179193C7B50CC806D8FEA57F761D54F010EDBDCBC7624B989AD0C894E9ABA77744E164CB92A615919DA4E66C41F0D7DE03C2C8C89077E8E712CB867993110D1DAC8F8CC87AEC5F98E0A46D2DA94727D432D4406AE31F8FB2B9DAD9E882994E41FA2B46D364B416F05BE0D579DC31D0ABD89EBA6789835C4B4CE6B8F0E9C19E2B99BBB55211D9392F18A210686F487C38F6ED33CAFA7F2468B423CC7F36DE73655CE7B94D681409616C94E55B31AB6DC3422956DB8F00490A539D95F1BF4965340CB90B5BA03104F643F96B9ABDCB5D34920E4E675DBAB81C038C11AB28459E1F10F15EBE9C21BA47427C72C2960DD8763BFCE27D47C4A06B24EBD911DED8A0ADE710930F87132830B1B8E0675447A48E519FB18FD66D4012DE35E03533CB9C13B7D19823092F7F0D9C0E5C0EF7BCF9017817CEBB550168BB846E91AA5FFF1E44B7F42215890A26157EFA5647AF412924BFC0F6CD278261BA1F959AE90F165DB11AD56CEB5223AF8BCCD5760AAB2ED5F11C56B517FFBC96B178E46EF11E7A4E8209C1CA887218600B8B20FAA80AA0B00816969A0AE25807374C24566AC03F8DFB417D0C3E43AC9BDA056AD0562A28C9F7C5EEC7AC847699170668113DF07F22A875C40D570B8CCF09EE00D91B9841A7D10F1763EE48C0BABA0F76EAD940AB5FB376C685E2EF4A81717F8ACDA8ED205FB819E62598FB343451EE47D73B9541D9F8FB6DF4029FC8FCEC0F5B94258DB49B39717B0FEB5DB3BA8FB1D28F4FE0319F84111BE08E9D251791A0A1809B55C307B0D337923EDB8CA4F2018DE38A3B7AADDFB938D93C4F3F287DBFDD542D11C747A319AAA9CA8446EA4D5A3B8B91B48B850009A9353596F2352839D55FD45F442272123402D58C80411E5113C50E35D28EDAD3C7271E9ABB4E7152C70B306571433323661D4D12B2FAB10304F721B07FF4804321B0A25B3 |
264 | 20170627085558 2 6 100 6143 2 FE3AFB7EA9CBCB633757EA982ED0DDFF120459E69D35DB36ACC5F69B04A5CCEE59A0312A97687F2B3DBC20917F4BF0B16D97B75EDCA16B58BDEB8BB1A726F6CB8BF5D7FC483777129A1C19CB559943EF201323760672C63859E830C6E99AFE5DD7A4E89BAD41C63B687558DD277F4E06A29D1E14A21CAA6FDD4E6F21EB8B146F2C04F93B1C94234E6295F2F8773B16BA3D51758841EA48ADD1A626E252DB3B78594B4586AC9E9EAF100F294ADC82BEBBF8CAB96B671EE7050B42733EB741107C5D2199D305C84F93C6AEEE6BD607DB7C0EFED773FB1DB73B04EFA72EB36111B99EBE6EEE899307FD288329FB2DB7E81776AEF0F935FFEE77611BDCFEC309F97EEB6E36FE42CA4C8EFAA0B4B93F5D83606B8FA7B49DD1DBB8F828B9C805381CB5DF4AC7FFAE27C62CBCD2FE80BB4157EB7F3267041255AC2F7EA3B450951878166049E5FF1BD3B361082FB184E342DDA1961ACFD90944F37E09A06AFE463AA9AA66EE699D28C4D109F3E8111CF4D625161B2855C11593AE408AE44DC026091119744FF09A4AB3C00717ACA004E26ACA53BF6444D839CF477A56FEAFFBF2E4CB946512815269D8E3C163FC29288A917A4A0ACC6DF54454CE2D54AC79AE05BF816DE1E3E9D3A9CC69DBE674880F98ECB8D8D4C4247AC07BC9B7C40FB89C4B9D4DA4604B37D15047DFB28C5D241CDFA327C3996872A0C05B84342F81A308D7796CA4A4038E47A5D4658F757C3F9645F11DEA92AE4D2E77FDB1A5D12519FF947F39A68152528CB02F915894D728C0E755B8BC4A99FCFC778A4099558A06D5FECC4C22DAA7E23C3B5E8E99B5365D5046C8C65846D949A521C0B25EFE5F5CD0845F09C29C096C4A80755120A299EA652B204775E53B2D521F366F4EF9FA65B1D8CB048295C39BE92667200E2889B1577CBD0AC23B2280B758A3650BE60D55F215DBF166873592253B1254968B5A46A61C792A153342C3ADE408676F4B27B7F22C50B079D0E32AEA134168A53A36F18E2FFA2459EDBA89BEC13D19C342235F6E9CF8F721B608F6297A3486173A7D5CED5E2AF6343775668C1B1FB0B745157973D234059B | 264 | 20171204113618 2 6 100 6143 5 F2F9DF4571769305CF3128D1F3B27E0B51064C0D70472B4B834907A11B6C76DAA091DDD058F56E7E5A1A144CBAD246C592ADB38DB36673E636E06043CF3776DE42B2A3C52B29A5378A538205F863CBCE489A9D26209B2679B7C10179193C7B50CC806D8FEA57F761D54F010EDBDCBC7624B989AD0C894E9ABA77744E164CB92A615919DA4E66C41F0D7DE03C2C8C89077E8E712CB867993110D1DAC8F8CC87AEC5F98E0A46D2DA94727D432D4406AE31F8FB2B9DAD9E882994E41FA2B46D364B416F05BE0D579DC31D0ABD89EBA6789835C4B4CE6B8F0E9C19E2B99BBB55211D9392F18A210686F487C38F6ED33CAFA7F2468B423CC7F36DE73655CE7B94D681409616C94E55B31AB6DC3422956DB8F00490A539D95F1BF4965340CB90B5BA03104F643F96B9ABDCB5D34920E4E675DBAB81C038C11AB28459E1F10F15EBE9C21BA47427C72C2960DD8763BFCE27D47C4A06B24EBD911DED8A0ADE710930F87132830B1B8E0675447A48E519FB18FD66D4012DE35E03533CB9C13B7D19823092F7F0D9C0E5C0EF7BCF9017817CEBB550168BB846E91AA5FFF1E44B7F42215890A26157EFA5647AF412924BFC0F6CD278261BA1F959AE90F165DB11AD56CEB5223AF8BCCD5760AAB2ED5F11C56B517FFBC96B178E46EF11E7A4E8209C1CA887218600B8B20FAA80AA0B00816969A0AE25807374C24566AC03F8DFB417D0C3E43AC9BDA056AD0562A28C9F7C5EEC7AC847699170668113DF07F22A875C40D570B8CCF09EE00D91B9841A7D10F1763EE48C0BABA0F76EAD940AB5FB376C685E2EF4A81717F8ACDA8ED205FB819E62598FB343451EE47D73B9541D9F8FB6DF4029FC8FCEC0F5B94258DB49B39717B0FEB5DB3BA8FB1D28F4FE0319F84111BE08E9D251791A0A1809B55C307B0D337923EDB8CA4F2018DE38A3B7AADDFB938D93C4F3F287DBFDD542D11C747A319AAA9CA8446EA4D5A3B8B91B48B850009A9353596F2352839D55FD45F442272123402D58C80411E5113C50E35D28EDAD3C7271E9ABB4E7152C70B306571433323661D4D12B2FAB10304F721B07FF4804321B357127 |
265 | 20170627111046 2 6 100 6143 2 FE3AFB7EA9CBCB633757EA982ED0DDFF120459E69D35DB36ACC5F69B04A5CCEE59A0312A97687F2B3DBC20917F4BF0B16D97B75EDCA16B58BDEB8BB1A726F6CB8BF5D7FC483777129A1C19CB559943EF201323760672C63859E830C6E99AFE5DD7A4E89BAD41C63B687558DD277F4E06A29D1E14A21CAA6FDD4E6F21EB8B146F2C04F93B1C94234E6295F2F8773B16BA3D51758841EA48ADD1A626E252DB3B78594B4586AC9E9EAF100F294ADC82BEBBF8CAB96B671EE7050B42733EB741107C5D2199D305C84F93C6AEEE6BD607DB7C0EFED773FB1DB73B04EFA72EB36111B99EBE6EEE899307FD288329FB2DB7E81776AEF0F935FFEE77611BDCFEC309F97EEB6E36FE42CA4C8EFAA0B4B93F5D83606B8FA7B49DD1DBB8F828B9C805381CB5DF4AC7FFAE27C62CBCD2FE80BB4157EB7F3267041255AC2F7EA3B450951878166049E5FF1BD3B361082FB184E342DDA1961ACFD90944F37E09A06AFE463AA9AA66EE699D28C4D109F3E8111CF4D625161B2855C11593AE408AE44DC026091119744FF09A4AB3C00717ACA004E26ACA53BF6444D839CF477A56FEAFFBF2E4CB946512815269D8E3C163FC29288A917A4A0ACC6DF54454CE2D54AC79AE05BF816DE1E3E9D3A9CC69DBE674880F98ECB8D8D4C4247AC07BC9B7C40FB89C4B9D4DA4604B37D15047DFB28C5D241CDFA327C3996872A0C05B84342F81A308D7796CA4A4038E47A5D4658F757C3F9645F11DEA92AE4D2E77FDB1A5D12519FF947F39A68152528CB02F915894D728C0E755B8BC4A99FCFC778A4099558A06D5FECC4C22DAA7E23C3B5E8E99B5365D5046C8C65846D949A521C0B25EFE5F5CD0845F09C29C096C4A80755120A299EA652B204775E53B2D521F366F4EF9FA65B1D8CB048295C39BE92667200E2889B1577CBD0AC23B2280B758A3650BE60D55F215DBF166873592253B1254968B5A46A61C792A153342C3ADE408676F4B27B7F22C50B079D0E32AEA134168A53A36F18E2FFA2459EDBA89BEC13D19C342235F6E9CF8F721B608F6297A3486173A7D5CED5E2AF6343775668C1B1FB0B745157973D57B1B3B | 265 | 20171204120614 2 6 100 6143 2 F2F9DF4571769305CF3128D1F3B27E0B51064C0D70472B4B834907A11B6C76DAA091DDD058F56E7E5A1A144CBAD246C592ADB38DB36673E636E06043CF3776DE42B2A3C52B29A5378A538205F863CBCE489A9D26209B2679B7C10179193C7B50CC806D8FEA57F761D54F010EDBDCBC7624B989AD0C894E9ABA77744E164CB92A615919DA4E66C41F0D7DE03C2C8C89077E8E712CB867993110D1DAC8F8CC87AEC5F98E0A46D2DA94727D432D4406AE31F8FB2B9DAD9E882994E41FA2B46D364B416F05BE0D579DC31D0ABD89EBA6789835C4B4CE6B8F0E9C19E2B99BBB55211D9392F18A210686F487C38F6ED33CAFA7F2468B423CC7F36DE73655CE7B94D681409616C94E55B31AB6DC3422956DB8F00490A539D95F1BF4965340CB90B5BA03104F643F96B9ABDCB5D34920E4E675DBAB81C038C11AB28459E1F10F15EBE9C21BA47427C72C2960DD8763BFCE27D47C4A06B24EBD911DED8A0ADE710930F87132830B1B8E0675447A48E519FB18FD66D4012DE35E03533CB9C13B7D19823092F7F0D9C0E5C0EF7BCF9017817CEBB550168BB846E91AA5FFF1E44B7F42215890A26157EFA5647AF412924BFC0F6CD278261BA1F959AE90F165DB11AD56CEB5223AF8BCCD5760AAB2ED5F11C56B517FFBC96B178E46EF11E7A4E8209C1CA887218600B8B20FAA80AA0B00816969A0AE25807374C24566AC03F8DFB417D0C3E43AC9BDA056AD0562A28C9F7C5EEC7AC847699170668113DF07F22A875C40D570B8CCF09EE00D91B9841A7D10F1763EE48C0BABA0F76EAD940AB5FB376C685E2EF4A81717F8ACDA8ED205FB819E62598FB343451EE47D73B9541D9F8FB6DF4029FC8FCEC0F5B94258DB49B39717B0FEB5DB3BA8FB1D28F4FE0319F84111BE08E9D251791A0A1809B55C307B0D337923EDB8CA4F2018DE38A3B7AADDFB938D93C4F3F287DBFDD542D11C747A319AAA9CA8446EA4D5A3B8B91B48B850009A9353596F2352839D55FD45F442272123402D58C80411E5113C50E35D28EDAD3C7271E9ABB4E7152C70B306571433323661D4D12B2FAB10304F721B07FF4804321BE218DB |
266 | 20170627114331 2 6 100 6143 5 FE3AFB7EA9CBCB633757EA982ED0DDFF120459E69D35DB36ACC5F69B04A5CCEE59A0312A97687F2B3DBC20917F4BF0B16D97B75EDCA16B58BDEB8BB1A726F6CB8BF5D7FC483777129A1C19CB559943EF201323760672C63859E830C6E99AFE5DD7A4E89BAD41C63B687558DD277F4E06A29D1E14A21CAA6FDD4E6F21EB8B146F2C04F93B1C94234E6295F2F8773B16BA3D51758841EA48ADD1A626E252DB3B78594B4586AC9E9EAF100F294ADC82BEBBF8CAB96B671EE7050B42733EB741107C5D2199D305C84F93C6AEEE6BD607DB7C0EFED773FB1DB73B04EFA72EB36111B99EBE6EEE899307FD288329FB2DB7E81776AEF0F935FFEE77611BDCFEC309F97EEB6E36FE42CA4C8EFAA0B4B93F5D83606B8FA7B49DD1DBB8F828B9C805381CB5DF4AC7FFAE27C62CBCD2FE80BB4157EB7F3267041255AC2F7EA3B450951878166049E5FF1BD3B361082FB184E342DDA1961ACFD90944F37E09A06AFE463AA9AA66EE699D28C4D109F3E8111CF4D625161B2855C11593AE408AE44DC026091119744FF09A4AB3C00717ACA004E26ACA53BF6444D839CF477A56FEAFFBF2E4CB946512815269D8E3C163FC29288A917A4A0ACC6DF54454CE2D54AC79AE05BF816DE1E3E9D3A9CC69DBE674880F98ECB8D8D4C4247AC07BC9B7C40FB89C4B9D4DA4604B37D15047DFB28C5D241CDFA327C3996872A0C05B84342F81A308D7796CA4A4038E47A5D4658F757C3F9645F11DEA92AE4D2E77FDB1A5D12519FF947F39A68152528CB02F915894D728C0E755B8BC4A99FCFC778A4099558A06D5FECC4C22DAA7E23C3B5E8E99B5365D5046C8C65846D949A521C0B25EFE5F5CD0845F09C29C096C4A80755120A299EA652B204775E53B2D521F366F4EF9FA65B1D8CB048295C39BE92667200E2889B1577CBD0AC23B2280B758A3650BE60D55F215DBF166873592253B1254968B5A46A61C792A153342C3ADE408676F4B27B7F22C50B079D0E32AEA134168A53A36F18E2FFA2459EDBA89BEC13D19C342235F6E9CF8F721B608F6297A3486173A7D5CED5E2AF6343775668C1B1FB0B745157973D63E6527 | 266 | 20171204122520 2 6 100 6143 2 F2F9DF4571769305CF3128D1F3B27E0B51064C0D70472B4B834907A11B6C76DAA091DDD058F56E7E5A1A144CBAD246C592ADB38DB36673E636E06043CF3776DE42B2A3C52B29A5378A538205F863CBCE489A9D26209B2679B7C10179193C7B50CC806D8FEA57F761D54F010EDBDCBC7624B989AD0C894E9ABA77744E164CB92A615919DA4E66C41F0D7DE03C2C8C89077E8E712CB867993110D1DAC8F8CC87AEC5F98E0A46D2DA94727D432D4406AE31F8FB2B9DAD9E882994E41FA2B46D364B416F05BE0D579DC31D0ABD89EBA6789835C4B4CE6B8F0E9C19E2B99BBB55211D9392F18A210686F487C38F6ED33CAFA7F2468B423CC7F36DE73655CE7B94D681409616C94E55B31AB6DC3422956DB8F00490A539D95F1BF4965340CB90B5BA03104F643F96B9ABDCB5D34920E4E675DBAB81C038C11AB28459E1F10F15EBE9C21BA47427C72C2960DD8763BFCE27D47C4A06B24EBD911DED8A0ADE710930F87132830B1B8E0675447A48E519FB18FD66D4012DE35E03533CB9C13B7D19823092F7F0D9C0E5C0EF7BCF9017817CEBB550168BB846E91AA5FFF1E44B7F42215890A26157EFA5647AF412924BFC0F6CD278261BA1F959AE90F165DB11AD56CEB5223AF8BCCD5760AAB2ED5F11C56B517FFBC96B178E46EF11E7A4E8209C1CA887218600B8B20FAA80AA0B00816969A0AE25807374C24566AC03F8DFB417D0C3E43AC9BDA056AD0562A28C9F7C5EEC7AC847699170668113DF07F22A875C40D570B8CCF09EE00D91B9841A7D10F1763EE48C0BABA0F76EAD940AB5FB376C685E2EF4A81717F8ACDA8ED205FB819E62598FB343451EE47D73B9541D9F8FB6DF4029FC8FCEC0F5B94258DB49B39717B0FEB5DB3BA8FB1D28F4FE0319F84111BE08E9D251791A0A1809B55C307B0D337923EDB8CA4F2018DE38A3B7AADDFB938D93C4F3F287DBFDD542D11C747A319AAA9CA8446EA4D5A3B8B91B48B850009A9353596F2352839D55FD45F442272123402D58C80411E5113C50E35D28EDAD3C7271E9ABB4E7152C70B306571433323661D4D12B2FAB10304F721B07FF4804321C47FCD3 |
267 | 20170627143549 2 6 100 6143 2 FE3AFB7EA9CBCB633757EA982ED0DDFF120459E69D35DB36ACC5F69B04A5CCEE59A0312A97687F2B3DBC20917F4BF0B16D97B75EDCA16B58BDEB8BB1A726F6CB8BF5D7FC483777129A1C19CB559943EF201323760672C63859E830C6E99AFE5DD7A4E89BAD41C63B687558DD277F4E06A29D1E14A21CAA6FDD4E6F21EB8B146F2C04F93B1C94234E6295F2F8773B16BA3D51758841EA48ADD1A626E252DB3B78594B4586AC9E9EAF100F294ADC82BEBBF8CAB96B671EE7050B42733EB741107C5D2199D305C84F93C6AEEE6BD607DB7C0EFED773FB1DB73B04EFA72EB36111B99EBE6EEE899307FD288329FB2DB7E81776AEF0F935FFEE77611BDCFEC309F97EEB6E36FE42CA4C8EFAA0B4B93F5D83606B8FA7B49DD1DBB8F828B9C805381CB5DF4AC7FFAE27C62CBCD2FE80BB4157EB7F3267041255AC2F7EA3B450951878166049E5FF1BD3B361082FB184E342DDA1961ACFD90944F37E09A06AFE463AA9AA66EE699D28C4D109F3E8111CF4D625161B2855C11593AE408AE44DC026091119744FF09A4AB3C00717ACA004E26ACA53BF6444D839CF477A56FEAFFBF2E4CB946512815269D8E3C163FC29288A917A4A0ACC6DF54454CE2D54AC79AE05BF816DE1E3E9D3A9CC69DBE674880F98ECB8D8D4C4247AC07BC9B7C40FB89C4B9D4DA4604B37D15047DFB28C5D241CDFA327C3996872A0C05B84342F81A308D7796CA4A4038E47A5D4658F757C3F9645F11DEA92AE4D2E77FDB1A5D12519FF947F39A68152528CB02F915894D728C0E755B8BC4A99FCFC778A4099558A06D5FECC4C22DAA7E23C3B5E8E99B5365D5046C8C65846D949A521C0B25EFE5F5CD0845F09C29C096C4A80755120A299EA652B204775E53B2D521F366F4EF9FA65B1D8CB048295C39BE92667200E2889B1577CBD0AC23B2280B758A3650BE60D55F215DBF166873592253B1254968B5A46A61C792A153342C3ADE408676F4B27B7F22C50B079D0E32AEA134168A53A36F18E2FFA2459EDBA89BEC13D19C342235F6E9CF8F721B608F6297A3486173A7D5CED5E2AF6343775668C1B1FB0B745157973DA76351B | 267 | 20171204125750 2 6 100 6143 5 F2F9DF4571769305CF3128D1F3B27E0B51064C0D70472B4B834907A11B6C76DAA091DDD058F56E7E5A1A144CBAD246C592ADB38DB36673E636E06043CF3776DE42B2A3C52B29A5378A538205F863CBCE489A9D26209B2679B7C10179193C7B50CC806D8FEA57F761D54F010EDBDCBC7624B989AD0C894E9ABA77744E164CB92A615919DA4E66C41F0D7DE03C2C8C89077E8E712CB867993110D1DAC8F8CC87AEC5F98E0A46D2DA94727D432D4406AE31F8FB2B9DAD9E882994E41FA2B46D364B416F05BE0D579DC31D0ABD89EBA6789835C4B4CE6B8F0E9C19E2B99BBB55211D9392F18A210686F487C38F6ED33CAFA7F2468B423CC7F36DE73655CE7B94D681409616C94E55B31AB6DC3422956DB8F00490A539D95F1BF4965340CB90B5BA03104F643F96B9ABDCB5D34920E4E675DBAB81C038C11AB28459E1F10F15EBE9C21BA47427C72C2960DD8763BFCE27D47C4A06B24EBD911DED8A0ADE710930F87132830B1B8E0675447A48E519FB18FD66D4012DE35E03533CB9C13B7D19823092F7F0D9C0E5C0EF7BCF9017817CEBB550168BB846E91AA5FFF1E44B7F42215890A26157EFA5647AF412924BFC0F6CD278261BA1F959AE90F165DB11AD56CEB5223AF8BCCD5760AAB2ED5F11C56B517FFBC96B178E46EF11E7A4E8209C1CA887218600B8B20FAA80AA0B00816969A0AE25807374C24566AC03F8DFB417D0C3E43AC9BDA056AD0562A28C9F7C5EEC7AC847699170668113DF07F22A875C40D570B8CCF09EE00D91B9841A7D10F1763EE48C0BABA0F76EAD940AB5FB376C685E2EF4A81717F8ACDA8ED205FB819E62598FB343451EE47D73B9541D9F8FB6DF4029FC8FCEC0F5B94258DB49B39717B0FEB5DB3BA8FB1D28F4FE0319F84111BE08E9D251791A0A1809B55C307B0D337923EDB8CA4F2018DE38A3B7AADDFB938D93C4F3F287DBFDD542D11C747A319AAA9CA8446EA4D5A3B8B91B48B850009A9353596F2352839D55FD45F442272123402D58C80411E5113C50E35D28EDAD3C7271E9ABB4E7152C70B306571433323661D4D12B2FAB10304F721B07FF4804321CFEB977 |
268 | 20170627150713 2 6 100 6143 2 FE3AFB7EA9CBCB633757EA982ED0DDFF120459E69D35DB36ACC5F69B04A5CCEE59A0312A97687F2B3DBC20917F4BF0B16D97B75EDCA16B58BDEB8BB1A726F6CB8BF5D7FC483777129A1C19CB559943EF201323760672C63859E830C6E99AFE5DD7A4E89BAD41C63B687558DD277F4E06A29D1E14A21CAA6FDD4E6F21EB8B146F2C04F93B1C94234E6295F2F8773B16BA3D51758841EA48ADD1A626E252DB3B78594B4586AC9E9EAF100F294ADC82BEBBF8CAB96B671EE7050B42733EB741107C5D2199D305C84F93C6AEEE6BD607DB7C0EFED773FB1DB73B04EFA72EB36111B99EBE6EEE899307FD288329FB2DB7E81776AEF0F935FFEE77611BDCFEC309F97EEB6E36FE42CA4C8EFAA0B4B93F5D83606B8FA7B49DD1DBB8F828B9C805381CB5DF4AC7FFAE27C62CBCD2FE80BB4157EB7F3267041255AC2F7EA3B450951878166049E5FF1BD3B361082FB184E342DDA1961ACFD90944F37E09A06AFE463AA9AA66EE699D28C4D109F3E8111CF4D625161B2855C11593AE408AE44DC026091119744FF09A4AB3C00717ACA004E26ACA53BF6444D839CF477A56FEAFFBF2E4CB946512815269D8E3C163FC29288A917A4A0ACC6DF54454CE2D54AC79AE05BF816DE1E3E9D3A9CC69DBE674880F98ECB8D8D4C4247AC07BC9B7C40FB89C4B9D4DA4604B37D15047DFB28C5D241CDFA327C3996872A0C05B84342F81A308D7796CA4A4038E47A5D4658F757C3F9645F11DEA92AE4D2E77FDB1A5D12519FF947F39A68152528CB02F915894D728C0E755B8BC4A99FCFC778A4099558A06D5FECC4C22DAA7E23C3B5E8E99B5365D5046C8C65846D949A521C0B25EFE5F5CD0845F09C29C096C4A80755120A299EA652B204775E53B2D521F366F4EF9FA65B1D8CB048295C39BE92667200E2889B1577CBD0AC23B2280B758A3650BE60D55F215DBF166873592253B1254968B5A46A61C792A153342C3ADE408676F4B27B7F22C50B079D0E32AEA134168A53A36F18E2FFA2459EDBA89BEC13D19C342235F6E9CF8F721B608F6297A3486173A7D5CED5E2AF6343775668C1B1FB0B745157973DB2FF40B | 268 | 20171204133934 2 6 100 6143 5 F2F9DF4571769305CF3128D1F3B27E0B51064C0D70472B4B834907A11B6C76DAA091DDD058F56E7E5A1A144CBAD246C592ADB38DB36673E636E06043CF3776DE42B2A3C52B29A5378A538205F863CBCE489A9D26209B2679B7C10179193C7B50CC806D8FEA57F761D54F010EDBDCBC7624B989AD0C894E9ABA77744E164CB92A615919DA4E66C41F0D7DE03C2C8C89077E8E712CB867993110D1DAC8F8CC87AEC5F98E0A46D2DA94727D432D4406AE31F8FB2B9DAD9E882994E41FA2B46D364B416F05BE0D579DC31D0ABD89EBA6789835C4B4CE6B8F0E9C19E2B99BBB55211D9392F18A210686F487C38F6ED33CAFA7F2468B423CC7F36DE73655CE7B94D681409616C94E55B31AB6DC3422956DB8F00490A539D95F1BF4965340CB90B5BA03104F643F96B9ABDCB5D34920E4E675DBAB81C038C11AB28459E1F10F15EBE9C21BA47427C72C2960DD8763BFCE27D47C4A06B24EBD911DED8A0ADE710930F87132830B1B8E0675447A48E519FB18FD66D4012DE35E03533CB9C13B7D19823092F7F0D9C0E5C0EF7BCF9017817CEBB550168BB846E91AA5FFF1E44B7F42215890A26157EFA5647AF412924BFC0F6CD278261BA1F959AE90F165DB11AD56CEB5223AF8BCCD5760AAB2ED5F11C56B517FFBC96B178E46EF11E7A4E8209C1CA887218600B8B20FAA80AA0B00816969A0AE25807374C24566AC03F8DFB417D0C3E43AC9BDA056AD0562A28C9F7C5EEC7AC847699170668113DF07F22A875C40D570B8CCF09EE00D91B9841A7D10F1763EE48C0BABA0F76EAD940AB5FB376C685E2EF4A81717F8ACDA8ED205FB819E62598FB343451EE47D73B9541D9F8FB6DF4029FC8FCEC0F5B94258DB49B39717B0FEB5DB3BA8FB1D28F4FE0319F84111BE08E9D251791A0A1809B55C307B0D337923EDB8CA4F2018DE38A3B7AADDFB938D93C4F3F287DBFDD542D11C747A319AAA9CA8446EA4D5A3B8B91B48B850009A9353596F2352839D55FD45F442272123402D58C80411E5113C50E35D28EDAD3C7271E9ABB4E7152C70B306571433323661D4D12B2FAB10304F721B07FF4804321DF18F77 |
269 | 20170627151417 2 6 100 6143 2 FE3AFB7EA9CBCB633757EA982ED0DDFF120459E69D35DB36ACC5F69B04A5CCEE59A0312A97687F2B3DBC20917F4BF0B16D97B75EDCA16B58BDEB8BB1A726F6CB8BF5D7FC483777129A1C19CB559943EF201323760672C63859E830C6E99AFE5DD7A4E89BAD41C63B687558DD277F4E06A29D1E14A21CAA6FDD4E6F21EB8B146F2C04F93B1C94234E6295F2F8773B16BA3D51758841EA48ADD1A626E252DB3B78594B4586AC9E9EAF100F294ADC82BEBBF8CAB96B671EE7050B42733EB741107C5D2199D305C84F93C6AEEE6BD607DB7C0EFED773FB1DB73B04EFA72EB36111B99EBE6EEE899307FD288329FB2DB7E81776AEF0F935FFEE77611BDCFEC309F97EEB6E36FE42CA4C8EFAA0B4B93F5D83606B8FA7B49DD1DBB8F828B9C805381CB5DF4AC7FFAE27C62CBCD2FE80BB4157EB7F3267041255AC2F7EA3B450951878166049E5FF1BD3B361082FB184E342DDA1961ACFD90944F37E09A06AFE463AA9AA66EE699D28C4D109F3E8111CF4D625161B2855C11593AE408AE44DC026091119744FF09A4AB3C00717ACA004E26ACA53BF6444D839CF477A56FEAFFBF2E4CB946512815269D8E3C163FC29288A917A4A0ACC6DF54454CE2D54AC79AE05BF816DE1E3E9D3A9CC69DBE674880F98ECB8D8D4C4247AC07BC9B7C40FB89C4B9D4DA4604B37D15047DFB28C5D241CDFA327C3996872A0C05B84342F81A308D7796CA4A4038E47A5D4658F757C3F9645F11DEA92AE4D2E77FDB1A5D12519FF947F39A68152528CB02F915894D728C0E755B8BC4A99FCFC778A4099558A06D5FECC4C22DAA7E23C3B5E8E99B5365D5046C8C65846D949A521C0B25EFE5F5CD0845F09C29C096C4A80755120A299EA652B204775E53B2D521F366F4EF9FA65B1D8CB048295C39BE92667200E2889B1577CBD0AC23B2280B758A3650BE60D55F215DBF166873592253B1254968B5A46A61C792A153342C3ADE408676F4B27B7F22C50B079D0E32AEA134168A53A36F18E2FFA2459EDBA89BEC13D19C342235F6E9CF8F721B608F6297A3486173A7D5CED5E2AF6343775668C1B1FB0B745157973DB566CC3 | 269 | 20171204174709 2 6 100 6143 2 EF730E8C844746DF23D55A6C9508EF59F158850FF4A3A24B3E29C95547FE16E3C3F7269D4096406935222EDC51BFDFE89B454D8C02F868FB297A1FBFEB61A5392779A6C51AF8F9068CC579276D045FF317D9B7540D9A39FA936004991CB06BA169012F75BAF0B8D6203470AF1BE5569341E462DF72FF4AFD9C24BCB7584C71C1766DFDD74FE13D98C176DC64979F4720C0A996226948C9DE5E1890C2E703168AB3B33D50C395F13CDE094300C4BB0ED86352950C238DDEB1A8412A2409B6C487F9CBBB110A754A7B4985CF55DE4FC5137CDF13F9B0E10768DF0A28D6628DFEC684A25439E5C943718E4E4CFC89A3DCE1B747F77A0CE08B98AC92705E8DD3A6EDD18FAEA2FBB4988C3CC947C8206DD67CF44BEF69B617E781E93501877F81E4CC2263DB0B5EEEFFF3FCFCD2AB6E34B724D755A9D5025C978AA679D806318EF9F81787D3C69FB2D25B0382A3A96F44216791D41CCC3DF04EBD19B84858F0935C1C774F4685C8114EBCA8C71946C35CB42B82AD56541E3B4AB0A47E0AD8FCF9073BCFB801EA84DDF5DF4426578561BC737C2469B34F275502BC0BD7AB018506FD8DD6A9477F1588C2F76FD82B2AD3740E7F161632C66B961737EB70E9B44F362F73C1F874F7C06C5370297E975D25E004D6090BD119915694AFB57427DDE7F50C81B9A1812E10FA39A01E2F2FF18C96FADEA62BF08FAB027A31D84E4C0267AF7E880B5A0608683542E9895DB15FA1ADA9F1D28569C8E27662CE912CD1869227F542C1F228C6A2226D4AC24673994AA453BF21A1961D17C7E29B297E8AF7A71C4E2957A603900A3B4947B7B59A70767EB9106C043A48EEFAC3CCDC0F78F559CDBE64328E3C21D33D30E6AAFF638761F988CD99C59ECBAC4276ACE22062F6903B4B78B45917829AAA0CF11D04272EB44385A3479AD7B6E3E94126CC35AE082A73AAE991670C5145576789B43055B5F9D457523B16032CC65B679BD5AA08657D719EAC3D0345812BFA599249E4719AA2DF1507916FA735535781F053C4CB92D28007CC8D621E571E957AED705C2D11724E6D4A3BE268FDCCA230A1BE9EDE7517467E2B |
270 | 20170627162358 2 6 100 6143 5 FE3AFB7EA9CBCB633757EA982ED0DDFF120459E69D35DB36ACC5F69B04A5CCEE59A0312A97687F2B3DBC20917F4BF0B16D97B75EDCA16B58BDEB8BB1A726F6CB8BF5D7FC483777129A1C19CB559943EF201323760672C63859E830C6E99AFE5DD7A4E89BAD41C63B687558DD277F4E06A29D1E14A21CAA6FDD4E6F21EB8B146F2C04F93B1C94234E6295F2F8773B16BA3D51758841EA48ADD1A626E252DB3B78594B4586AC9E9EAF100F294ADC82BEBBF8CAB96B671EE7050B42733EB741107C5D2199D305C84F93C6AEEE6BD607DB7C0EFED773FB1DB73B04EFA72EB36111B99EBE6EEE899307FD288329FB2DB7E81776AEF0F935FFEE77611BDCFEC309F97EEB6E36FE42CA4C8EFAA0B4B93F5D83606B8FA7B49DD1DBB8F828B9C805381CB5DF4AC7FFAE27C62CBCD2FE80BB4157EB7F3267041255AC2F7EA3B450951878166049E5FF1BD3B361082FB184E342DDA1961ACFD90944F37E09A06AFE463AA9AA66EE699D28C4D109F3E8111CF4D625161B2855C11593AE408AE44DC026091119744FF09A4AB3C00717ACA004E26ACA53BF6444D839CF477A56FEAFFBF2E4CB946512815269D8E3C163FC29288A917A4A0ACC6DF54454CE2D54AC79AE05BF816DE1E3E9D3A9CC69DBE674880F98ECB8D8D4C4247AC07BC9B7C40FB89C4B9D4DA4604B37D15047DFB28C5D241CDFA327C3996872A0C05B84342F81A308D7796CA4A4038E47A5D4658F757C3F9645F11DEA92AE4D2E77FDB1A5D12519FF947F39A68152528CB02F915894D728C0E755B8BC4A99FCFC778A4099558A06D5FECC4C22DAA7E23C3B5E8E99B5365D5046C8C65846D949A521C0B25EFE5F5CD0845F09C29C096C4A80755120A299EA652B204775E53B2D521F366F4EF9FA65B1D8CB048295C39BE92667200E2889B1577CBD0AC23B2280B758A3650BE60D55F215DBF166873592253B1254968B5A46A61C792A153342C3ADE408676F4B27B7F22C50B079D0E32AEA134168A53A36F18E2FFA2459EDBA89BEC13D19C342235F6E9CF8F721B608F6297A3486173A7D5CED5E2AF6343775668C1B1FB0B745157973DD096627 | 270 | 20171204175707 2 6 100 6143 2 EF730E8C844746DF23D55A6C9508EF59F158850FF4A3A24B3E29C95547FE16E3C3F7269D4096406935222EDC51BFDFE89B454D8C02F868FB297A1FBFEB61A5392779A6C51AF8F9068CC579276D045FF317D9B7540D9A39FA936004991CB06BA169012F75BAF0B8D6203470AF1BE5569341E462DF72FF4AFD9C24BCB7584C71C1766DFDD74FE13D98C176DC64979F4720C0A996226948C9DE5E1890C2E703168AB3B33D50C395F13CDE094300C4BB0ED86352950C238DDEB1A8412A2409B6C487F9CBBB110A754A7B4985CF55DE4FC5137CDF13F9B0E10768DF0A28D6628DFEC684A25439E5C943718E4E4CFC89A3DCE1B747F77A0CE08B98AC92705E8DD3A6EDD18FAEA2FBB4988C3CC947C8206DD67CF44BEF69B617E781E93501877F81E4CC2263DB0B5EEEFFF3FCFCD2AB6E34B724D755A9D5025C978AA679D806318EF9F81787D3C69FB2D25B0382A3A96F44216791D41CCC3DF04EBD19B84858F0935C1C774F4685C8114EBCA8C71946C35CB42B82AD56541E3B4AB0A47E0AD8FCF9073BCFB801EA84DDF5DF4426578561BC737C2469B34F275502BC0BD7AB018506FD8DD6A9477F1588C2F76FD82B2AD3740E7F161632C66B961737EB70E9B44F362F73C1F874F7C06C5370297E975D25E004D6090BD119915694AFB57427DDE7F50C81B9A1812E10FA39A01E2F2FF18C96FADEA62BF08FAB027A31D84E4C0267AF7E880B5A0608683542E9895DB15FA1ADA9F1D28569C8E27662CE912CD1869227F542C1F228C6A2226D4AC24673994AA453BF21A1961D17C7E29B297E8AF7A71C4E2957A603900A3B4947B7B59A70767EB9106C043A48EEFAC3CCDC0F78F559CDBE64328E3C21D33D30E6AAFF638761F988CD99C59ECBAC4276ACE22062F6903B4B78B45917829AAA0CF11D04272EB44385A3479AD7B6E3E94126CC35AE082A73AAE991670C5145576789B43055B5F9D457523B16032CC65B679BD5AA08657D719EAC3D0345812BFA599249E4719AA2DF1507916FA735535781F053C4CB92D28007CC8D621E571E957AED705C2D11724E6D4A3BE268FDCCA230A1BE9EDE75177CF673 |
271 | 20170627175138 2 6 100 6143 5 FE3AFB7EA9CBCB633757EA982ED0DDFF120459E69D35DB36ACC5F69B04A5CCEE59A0312A97687F2B3DBC20917F4BF0B16D97B75EDCA16B58BDEB8BB1A726F6CB8BF5D7FC483777129A1C19CB559943EF201323760672C63859E830C6E99AFE5DD7A4E89BAD41C63B687558DD277F4E06A29D1E14A21CAA6FDD4E6F21EB8B146F2C04F93B1C94234E6295F2F8773B16BA3D51758841EA48ADD1A626E252DB3B78594B4586AC9E9EAF100F294ADC82BEBBF8CAB96B671EE7050B42733EB741107C5D2199D305C84F93C6AEEE6BD607DB7C0EFED773FB1DB73B04EFA72EB36111B99EBE6EEE899307FD288329FB2DB7E81776AEF0F935FFEE77611BDCFEC309F97EEB6E36FE42CA4C8EFAA0B4B93F5D83606B8FA7B49DD1DBB8F828B9C805381CB5DF4AC7FFAE27C62CBCD2FE80BB4157EB7F3267041255AC2F7EA3B450951878166049E5FF1BD3B361082FB184E342DDA1961ACFD90944F37E09A06AFE463AA9AA66EE699D28C4D109F3E8111CF4D625161B2855C11593AE408AE44DC026091119744FF09A4AB3C00717ACA004E26ACA53BF6444D839CF477A56FEAFFBF2E4CB946512815269D8E3C163FC29288A917A4A0ACC6DF54454CE2D54AC79AE05BF816DE1E3E9D3A9CC69DBE674880F98ECB8D8D4C4247AC07BC9B7C40FB89C4B9D4DA4604B37D15047DFB28C5D241CDFA327C3996872A0C05B84342F81A308D7796CA4A4038E47A5D4658F757C3F9645F11DEA92AE4D2E77FDB1A5D12519FF947F39A68152528CB02F915894D728C0E755B8BC4A99FCFC778A4099558A06D5FECC4C22DAA7E23C3B5E8E99B5365D5046C8C65846D949A521C0B25EFE5F5CD0845F09C29C096C4A80755120A299EA652B204775E53B2D521F366F4EF9FA65B1D8CB048295C39BE92667200E2889B1577CBD0AC23B2280B758A3650BE60D55F215DBF166873592253B1254968B5A46A61C792A153342C3ADE408676F4B27B7F22C50B079D0E32AEA134168A53A36F18E2FFA2459EDBA89BEC13D19C342235F6E9CF8F721B608F6297A3486173A7D5CED5E2AF6343775668C1B1FB0B745157973DF2B3477 | 271 | 20171204201457 2 6 100 6143 5 EF730E8C844746DF23D55A6C9508EF59F158850FF4A3A24B3E29C95547FE16E3C3F7269D4096406935222EDC51BFDFE89B454D8C02F868FB297A1FBFEB61A5392779A6C51AF8F9068CC579276D045FF317D9B7540D9A39FA936004991CB06BA169012F75BAF0B8D6203470AF1BE5569341E462DF72FF4AFD9C24BCB7584C71C1766DFDD74FE13D98C176DC64979F4720C0A996226948C9DE5E1890C2E703168AB3B33D50C395F13CDE094300C4BB0ED86352950C238DDEB1A8412A2409B6C487F9CBBB110A754A7B4985CF55DE4FC5137CDF13F9B0E10768DF0A28D6628DFEC684A25439E5C943718E4E4CFC89A3DCE1B747F77A0CE08B98AC92705E8DD3A6EDD18FAEA2FBB4988C3CC947C8206DD67CF44BEF69B617E781E93501877F81E4CC2263DB0B5EEEFFF3FCFCD2AB6E34B724D755A9D5025C978AA679D806318EF9F81787D3C69FB2D25B0382A3A96F44216791D41CCC3DF04EBD19B84858F0935C1C774F4685C8114EBCA8C71946C35CB42B82AD56541E3B4AB0A47E0AD8FCF9073BCFB801EA84DDF5DF4426578561BC737C2469B34F275502BC0BD7AB018506FD8DD6A9477F1588C2F76FD82B2AD3740E7F161632C66B961737EB70E9B44F362F73C1F874F7C06C5370297E975D25E004D6090BD119915694AFB57427DDE7F50C81B9A1812E10FA39A01E2F2FF18C96FADEA62BF08FAB027A31D84E4C0267AF7E880B5A0608683542E9895DB15FA1ADA9F1D28569C8E27662CE912CD1869227F542C1F228C6A2226D4AC24673994AA453BF21A1961D17C7E29B297E8AF7A71C4E2957A603900A3B4947B7B59A70767EB9106C043A48EEFAC3CCDC0F78F559CDBE64328E3C21D33D30E6AAFF638761F988CD99C59ECBAC4276ACE22062F6903B4B78B45917829AAA0CF11D04272EB44385A3479AD7B6E3E94126CC35AE082A73AAE991670C5145576789B43055B5F9D457523B16032CC65B679BD5AA08657D719EAC3D0345812BFA599249E4719AA2DF1507916FA735535781F053C4CB92D28007CC8D621E571E957AED705C2D11724E6D4A3BE268FDCCA230A1BE9EDE751ADCB617 |
272 | 20170627180034 2 6 100 6143 2 FE3AFB7EA9CBCB633757EA982ED0DDFF120459E69D35DB36ACC5F69B04A5CCEE59A0312A97687F2B3DBC20917F4BF0B16D97B75EDCA16B58BDEB8BB1A726F6CB8BF5D7FC483777129A1C19CB559943EF201323760672C63859E830C6E99AFE5DD7A4E89BAD41C63B687558DD277F4E06A29D1E14A21CAA6FDD4E6F21EB8B146F2C04F93B1C94234E6295F2F8773B16BA3D51758841EA48ADD1A626E252DB3B78594B4586AC9E9EAF100F294ADC82BEBBF8CAB96B671EE7050B42733EB741107C5D2199D305C84F93C6AEEE6BD607DB7C0EFED773FB1DB73B04EFA72EB36111B99EBE6EEE899307FD288329FB2DB7E81776AEF0F935FFEE77611BDCFEC309F97EEB6E36FE42CA4C8EFAA0B4B93F5D83606B8FA7B49DD1DBB8F828B9C805381CB5DF4AC7FFAE27C62CBCD2FE80BB4157EB7F3267041255AC2F7EA3B450951878166049E5FF1BD3B361082FB184E342DDA1961ACFD90944F37E09A06AFE463AA9AA66EE699D28C4D109F3E8111CF4D625161B2855C11593AE408AE44DC026091119744FF09A4AB3C00717ACA004E26ACA53BF6444D839CF477A56FEAFFBF2E4CB946512815269D8E3C163FC29288A917A4A0ACC6DF54454CE2D54AC79AE05BF816DE1E3E9D3A9CC69DBE674880F98ECB8D8D4C4247AC07BC9B7C40FB89C4B9D4DA4604B37D15047DFB28C5D241CDFA327C3996872A0C05B84342F81A308D7796CA4A4038E47A5D4658F757C3F9645F11DEA92AE4D2E77FDB1A5D12519FF947F39A68152528CB02F915894D728C0E755B8BC4A99FCFC778A4099558A06D5FECC4C22DAA7E23C3B5E8E99B5365D5046C8C65846D949A521C0B25EFE5F5CD0845F09C29C096C4A80755120A299EA652B204775E53B2D521F366F4EF9FA65B1D8CB048295C39BE92667200E2889B1577CBD0AC23B2280B758A3650BE60D55F215DBF166873592253B1254968B5A46A61C792A153342C3ADE408676F4B27B7F22C50B079D0E32AEA134168A53A36F18E2FFA2459EDBA89BEC13D19C342235F6E9CF8F721B608F6297A3486173A7D5CED5E2AF6343775668C1B1FB0B745157973DF5CD463 | 272 | 20171205043550 2 6 100 6143 2 EF730E8C844746DF23D55A6C9508EF59F158850FF4A3A24B3E29C95547FE16E3C3F7269D4096406935222EDC51BFDFE89B454D8C02F868FB297A1FBFEB61A5392779A6C51AF8F9068CC579276D045FF317D9B7540D9A39FA936004991CB06BA169012F75BAF0B8D6203470AF1BE5569341E462DF72FF4AFD9C24BCB7584C71C1766DFDD74FE13D98C176DC64979F4720C0A996226948C9DE5E1890C2E703168AB3B33D50C395F13CDE094300C4BB0ED86352950C238DDEB1A8412A2409B6C487F9CBBB110A754A7B4985CF55DE4FC5137CDF13F9B0E10768DF0A28D6628DFEC684A25439E5C943718E4E4CFC89A3DCE1B747F77A0CE08B98AC92705E8DD3A6EDD18FAEA2FBB4988C3CC947C8206DD67CF44BEF69B617E781E93501877F81E4CC2263DB0B5EEEFFF3FCFCD2AB6E34B724D755A9D5025C978AA679D806318EF9F81787D3C69FB2D25B0382A3A96F44216791D41CCC3DF04EBD19B84858F0935C1C774F4685C8114EBCA8C71946C35CB42B82AD56541E3B4AB0A47E0AD8FCF9073BCFB801EA84DDF5DF4426578561BC737C2469B34F275502BC0BD7AB018506FD8DD6A9477F1588C2F76FD82B2AD3740E7F161632C66B961737EB70E9B44F362F73C1F874F7C06C5370297E975D25E004D6090BD119915694AFB57427DDE7F50C81B9A1812E10FA39A01E2F2FF18C96FADEA62BF08FAB027A31D84E4C0267AF7E880B5A0608683542E9895DB15FA1ADA9F1D28569C8E27662CE912CD1869227F542C1F228C6A2226D4AC24673994AA453BF21A1961D17C7E29B297E8AF7A71C4E2957A603900A3B4947B7B59A70767EB9106C043A48EEFAC3CCDC0F78F559CDBE64328E3C21D33D30E6AAFF638761F988CD99C59ECBAC4276ACE22062F6903B4B78B45917829AAA0CF11D04272EB44385A3479AD7B6E3E94126CC35AE082A73AAE991670C5145576789B43055B5F9D457523B16032CC65B679BD5AA08657D719EAC3D0345812BFA599249E4719AA2DF1507916FA735535781F053C4CB92D28007CC8D621E571E957AED705C2D11724E6D4A3BE268FDCCA230A1BE9EDE752748419B |
273 | 20170627192816 2 6 100 6143 2 FE3AFB7EA9CBCB633757EA982ED0DDFF120459E69D35DB36ACC5F69B04A5CCEE59A0312A97687F2B3DBC20917F4BF0B16D97B75EDCA16B58BDEB8BB1A726F6CB8BF5D7FC483777129A1C19CB559943EF201323760672C63859E830C6E99AFE5DD7A4E89BAD41C63B687558DD277F4E06A29D1E14A21CAA6FDD4E6F21EB8B146F2C04F93B1C94234E6295F2F8773B16BA3D51758841EA48ADD1A626E252DB3B78594B4586AC9E9EAF100F294ADC82BEBBF8CAB96B671EE7050B42733EB741107C5D2199D305C84F93C6AEEE6BD607DB7C0EFED773FB1DB73B04EFA72EB36111B99EBE6EEE899307FD288329FB2DB7E81776AEF0F935FFEE77611BDCFEC309F97EEB6E36FE42CA4C8EFAA0B4B93F5D83606B8FA7B49DD1DBB8F828B9C805381CB5DF4AC7FFAE27C62CBCD2FE80BB4157EB7F3267041255AC2F7EA3B450951878166049E5FF1BD3B361082FB184E342DDA1961ACFD90944F37E09A06AFE463AA9AA66EE699D28C4D109F3E8111CF4D625161B2855C11593AE408AE44DC026091119744FF09A4AB3C00717ACA004E26ACA53BF6444D839CF477A56FEAFFBF2E4CB946512815269D8E3C163FC29288A917A4A0ACC6DF54454CE2D54AC79AE05BF816DE1E3E9D3A9CC69DBE674880F98ECB8D8D4C4247AC07BC9B7C40FB89C4B9D4DA4604B37D15047DFB28C5D241CDFA327C3996872A0C05B84342F81A308D7796CA4A4038E47A5D4658F757C3F9645F11DEA92AE4D2E77FDB1A5D12519FF947F39A68152528CB02F915894D728C0E755B8BC4A99FCFC778A4099558A06D5FECC4C22DAA7E23C3B5E8E99B5365D5046C8C65846D949A521C0B25EFE5F5CD0845F09C29C096C4A80755120A299EA652B204775E53B2D521F366F4EF9FA65B1D8CB048295C39BE92667200E2889B1577CBD0AC23B2280B758A3650BE60D55F215DBF166873592253B1254968B5A46A61C792A153342C3ADE408676F4B27B7F22C50B079D0E32AEA134168A53A36F18E2FFA2459EDBA89BEC13D19C342235F6E9CF8F721B608F6297A3486173A7D5CED5E2AF6343775668C1B1FB0B745157973E16B337B | 273 | 20171205051645 2 6 100 6143 2 EF730E8C844746DF23D55A6C9508EF59F158850FF4A3A24B3E29C95547FE16E3C3F7269D4096406935222EDC51BFDFE89B454D8C02F868FB297A1FBFEB61A5392779A6C51AF8F9068CC579276D045FF317D9B7540D9A39FA936004991CB06BA169012F75BAF0B8D6203470AF1BE5569341E462DF72FF4AFD9C24BCB7584C71C1766DFDD74FE13D98C176DC64979F4720C0A996226948C9DE5E1890C2E703168AB3B33D50C395F13CDE094300C4BB0ED86352950C238DDEB1A8412A2409B6C487F9CBBB110A754A7B4985CF55DE4FC5137CDF13F9B0E10768DF0A28D6628DFEC684A25439E5C943718E4E4CFC89A3DCE1B747F77A0CE08B98AC92705E8DD3A6EDD18FAEA2FBB4988C3CC947C8206DD67CF44BEF69B617E781E93501877F81E4CC2263DB0B5EEEFFF3FCFCD2AB6E34B724D755A9D5025C978AA679D806318EF9F81787D3C69FB2D25B0382A3A96F44216791D41CCC3DF04EBD19B84858F0935C1C774F4685C8114EBCA8C71946C35CB42B82AD56541E3B4AB0A47E0AD8FCF9073BCFB801EA84DDF5DF4426578561BC737C2469B34F275502BC0BD7AB018506FD8DD6A9477F1588C2F76FD82B2AD3740E7F161632C66B961737EB70E9B44F362F73C1F874F7C06C5370297E975D25E004D6090BD119915694AFB57427DDE7F50C81B9A1812E10FA39A01E2F2FF18C96FADEA62BF08FAB027A31D84E4C0267AF7E880B5A0608683542E9895DB15FA1ADA9F1D28569C8E27662CE912CD1869227F542C1F228C6A2226D4AC24673994AA453BF21A1961D17C7E29B297E8AF7A71C4E2957A603900A3B4947B7B59A70767EB9106C043A48EEFAC3CCDC0F78F559CDBE64328E3C21D33D30E6AAFF638761F988CD99C59ECBAC4276ACE22062F6903B4B78B45917829AAA0CF11D04272EB44385A3479AD7B6E3E94126CC35AE082A73AAE991670C5145576789B43055B5F9D457523B16032CC65B679BD5AA08657D719EAC3D0345812BFA599249E4719AA2DF1507916FA735535781F053C4CB92D28007CC8D621E571E957AED705C2D11724E6D4A3BE268FDCCA230A1BE9EDE7528400323 |
274 | 20170627194138 2 6 100 6143 2 FE3AFB7EA9CBCB633757EA982ED0DDFF120459E69D35DB36ACC5F69B04A5CCEE59A0312A97687F2B3DBC20917F4BF0B16D97B75EDCA16B58BDEB8BB1A726F6CB8BF5D7FC483777129A1C19CB559943EF201323760672C63859E830C6E99AFE5DD7A4E89BAD41C63B687558DD277F4E06A29D1E14A21CAA6FDD4E6F21EB8B146F2C04F93B1C94234E6295F2F8773B16BA3D51758841EA48ADD1A626E252DB3B78594B4586AC9E9EAF100F294ADC82BEBBF8CAB96B671EE7050B42733EB741107C5D2199D305C84F93C6AEEE6BD607DB7C0EFED773FB1DB73B04EFA72EB36111B99EBE6EEE899307FD288329FB2DB7E81776AEF0F935FFEE77611BDCFEC309F97EEB6E36FE42CA4C8EFAA0B4B93F5D83606B8FA7B49DD1DBB8F828B9C805381CB5DF4AC7FFAE27C62CBCD2FE80BB4157EB7F3267041255AC2F7EA3B450951878166049E5FF1BD3B361082FB184E342DDA1961ACFD90944F37E09A06AFE463AA9AA66EE699D28C4D109F3E8111CF4D625161B2855C11593AE408AE44DC026091119744FF09A4AB3C00717ACA004E26ACA53BF6444D839CF477A56FEAFFBF2E4CB946512815269D8E3C163FC29288A917A4A0ACC6DF54454CE2D54AC79AE05BF816DE1E3E9D3A9CC69DBE674880F98ECB8D8D4C4247AC07BC9B7C40FB89C4B9D4DA4604B37D15047DFB28C5D241CDFA327C3996872A0C05B84342F81A308D7796CA4A4038E47A5D4658F757C3F9645F11DEA92AE4D2E77FDB1A5D12519FF947F39A68152528CB02F915894D728C0E755B8BC4A99FCFC778A4099558A06D5FECC4C22DAA7E23C3B5E8E99B5365D5046C8C65846D949A521C0B25EFE5F5CD0845F09C29C096C4A80755120A299EA652B204775E53B2D521F366F4EF9FA65B1D8CB048295C39BE92667200E2889B1577CBD0AC23B2280B758A3650BE60D55F215DBF166873592253B1254968B5A46A61C792A153342C3ADE408676F4B27B7F22C50B079D0E32AEA134168A53A36F18E2FFA2459EDBA89BEC13D19C342235F6E9CF8F721B608F6297A3486173A7D5CED5E2AF6343775668C1B1FB0B745157973E1B23A4B | 274 | 20171205062021 2 6 100 6143 5 EF730E8C844746DF23D55A6C9508EF59F158850FF4A3A24B3E29C95547FE16E3C3F7269D4096406935222EDC51BFDFE89B454D8C02F868FB297A1FBFEB61A5392779A6C51AF8F9068CC579276D045FF317D9B7540D9A39FA936004991CB06BA169012F75BAF0B8D6203470AF1BE5569341E462DF72FF4AFD9C24BCB7584C71C1766DFDD74FE13D98C176DC64979F4720C0A996226948C9DE5E1890C2E703168AB3B33D50C395F13CDE094300C4BB0ED86352950C238DDEB1A8412A2409B6C487F9CBBB110A754A7B4985CF55DE4FC5137CDF13F9B0E10768DF0A28D6628DFEC684A25439E5C943718E4E4CFC89A3DCE1B747F77A0CE08B98AC92705E8DD3A6EDD18FAEA2FBB4988C3CC947C8206DD67CF44BEF69B617E781E93501877F81E4CC2263DB0B5EEEFFF3FCFCD2AB6E34B724D755A9D5025C978AA679D806318EF9F81787D3C69FB2D25B0382A3A96F44216791D41CCC3DF04EBD19B84858F0935C1C774F4685C8114EBCA8C71946C35CB42B82AD56541E3B4AB0A47E0AD8FCF9073BCFB801EA84DDF5DF4426578561BC737C2469B34F275502BC0BD7AB018506FD8DD6A9477F1588C2F76FD82B2AD3740E7F161632C66B961737EB70E9B44F362F73C1F874F7C06C5370297E975D25E004D6090BD119915694AFB57427DDE7F50C81B9A1812E10FA39A01E2F2FF18C96FADEA62BF08FAB027A31D84E4C0267AF7E880B5A0608683542E9895DB15FA1ADA9F1D28569C8E27662CE912CD1869227F542C1F228C6A2226D4AC24673994AA453BF21A1961D17C7E29B297E8AF7A71C4E2957A603900A3B4947B7B59A70767EB9106C043A48EEFAC3CCDC0F78F559CDBE64328E3C21D33D30E6AAFF638761F988CD99C59ECBAC4276ACE22062F6903B4B78B45917829AAA0CF11D04272EB44385A3479AD7B6E3E94126CC35AE082A73AAE991670C5145576789B43055B5F9D457523B16032CC65B679BD5AA08657D719EAC3D0345812BFA599249E4719AA2DF1507916FA735535781F053C4CB92D28007CC8D621E571E957AED705C2D11724E6D4A3BE268FDCCA230A1BE9EDE7529BA43F7 |
275 | 20170627235654 2 6 100 7679 2 E411B879FDA69428A30BDE74B417706E5936E16C5E1F2B64A07EAE1D69C857C23126701460740D93467EB3A3386827E658069CAC4D55CC4929493C193D53A0D91141135B2F0B19E659BB541883E569D38B329761EDF3C409D34A49870356F3723AD2F720383E49B1752B837DF80F48632A469A0A96AC8F02E5B766B590D722B5BD3ED9191BB70C1D4044A3D5CE850489216C3184D73BAE2B655D76B30EC1851951A756E2A45CD1FF82A83BDC1803005034BEB2EAC35FF7362831D8FBE02E07B1CCA351D47AD65B5282151FB2711A880410CED2C1CF205CC2072F6F244189F5BDB3AFDBA7FB02DD21C99D1EF72C1EF8BC6C68A273D16CB2D3CA190C30BDDEEAD7CA2E519F3AF806B5CBD436B971C1F1981EB35CB4007D129F43E660F7E47E807C889A1DC5FEFA7C304DB41B36982FEFB7390DC6C8E9474D3EEB84B3F757C367475EB1B4CB5B86F9507090F2CB37533E2B96BBC6F75B3BF1F4CECF18F67E7492A681845CF5AFA1B70FB3B0A09CDD3375BCF716CBF2A594533D157CB6C4008CF8C4818C9418E44A995028487B0346BD399BFB431CA94B3FC2AF9822520153105ADACEBE719CC24D1D043AC2AC24BD41759AA452000C43CB885D5F0D71DC2451A2C5C04B0B085BD23B5295B7A109DCD729C34479D51EAB4617FDD163128B25F5803B262C3D97E2D63B3E84D85B67ECDFDE6FA377E208BD2EF867072D341AC731338268AD82285DD6D219DE44EB0588E477CBFCD5F5C068D2FA877339424F324012D346C3E2B3C4408E4FD84535C5D4EA02137ABE0426BC4C3AD6EABAA221579CBA22023F8204ECCC98D143652DEBF5869CD73A81C0E4C6FC9A22F9E648B6783AA1D0F0A1F76B1C4E8692339A6A259F3D8419CF7FD22A26023678BFE4F70C79E7F113882E6C7A0606C5AA9094DB161683E43CCEC8C73FEBC7B82617B90541C2BC15EBA18B55E430373CF21DD235BA332EE6D7A6D042BAB4DEF94939AAD2A1F6FD235B09CA6CCFB45A614C79F3C83253B82BB73826DD22127F3F14292A9B682D607D6C9313DF5324712F976C8978AEDC97B40095E66BF850BCB83F477E1F5AB045844EA5CA0652C7C2C284B90FFDCAE2D5F3C165F66FCE871A5D0AFAA158E77099BFA7A969C8F3425E326D24E7E875D588B5E652ED331ABE4A72AFF7D89CFA9D55116B2610AEA4D1D16BCE1FE8D22849827677FEC8EC9864F5A4B874E7AA3228E31DACECA3ED7E1F31675CCA03E599E748BBCA483821DDC5F1C7ED376EDE7A650AD06CE3FC4E76062354B7D89093EBBF9717CED067846349E8BBEEC4CDDE0907F2DD1C31125F1DBB7B9A94E07677C4EBC756A5ED3D8DB30FB5772328272C6CE22848CB | 275 | 20171205073410 2 6 100 6143 2 EF730E8C844746DF23D55A6C9508EF59F158850FF4A3A24B3E29C95547FE16E3C3F7269D4096406935222EDC51BFDFE89B454D8C02F868FB297A1FBFEB61A5392779A6C51AF8F9068CC579276D045FF317D9B7540D9A39FA936004991CB06BA169012F75BAF0B8D6203470AF1BE5569341E462DF72FF4AFD9C24BCB7584C71C1766DFDD74FE13D98C176DC64979F4720C0A996226948C9DE5E1890C2E703168AB3B33D50C395F13CDE094300C4BB0ED86352950C238DDEB1A8412A2409B6C487F9CBBB110A754A7B4985CF55DE4FC5137CDF13F9B0E10768DF0A28D6628DFEC684A25439E5C943718E4E4CFC89A3DCE1B747F77A0CE08B98AC92705E8DD3A6EDD18FAEA2FBB4988C3CC947C8206DD67CF44BEF69B617E781E93501877F81E4CC2263DB0B5EEEFFF3FCFCD2AB6E34B724D755A9D5025C978AA679D806318EF9F81787D3C69FB2D25B0382A3A96F44216791D41CCC3DF04EBD19B84858F0935C1C774F4685C8114EBCA8C71946C35CB42B82AD56541E3B4AB0A47E0AD8FCF9073BCFB801EA84DDF5DF4426578561BC737C2469B34F275502BC0BD7AB018506FD8DD6A9477F1588C2F76FD82B2AD3740E7F161632C66B961737EB70E9B44F362F73C1F874F7C06C5370297E975D25E004D6090BD119915694AFB57427DDE7F50C81B9A1812E10FA39A01E2F2FF18C96FADEA62BF08FAB027A31D84E4C0267AF7E880B5A0608683542E9895DB15FA1ADA9F1D28569C8E27662CE912CD1869227F542C1F228C6A2226D4AC24673994AA453BF21A1961D17C7E29B297E8AF7A71C4E2957A603900A3B4947B7B59A70767EB9106C043A48EEFAC3CCDC0F78F559CDBE64328E3C21D33D30E6AAFF638761F988CD99C59ECBAC4276ACE22062F6903B4B78B45917829AAA0CF11D04272EB44385A3479AD7B6E3E94126CC35AE082A73AAE991670C5145576789B43055B5F9D457523B16032CC65B679BD5AA08657D719EAC3D0345812BFA599249E4719AA2DF1507916FA735535781F053C4CB92D28007CC8D621E571E957AED705C2D11724E6D4A3BE268FDCCA230A1BE9EDE752B7A9EB3 |
276 | 20170628025708 2 6 100 7679 2 E411B879FDA69428A30BDE74B417706E5936E16C5E1F2B64A07EAE1D69C857C23126701460740D93467EB3A3386827E658069CAC4D55CC4929493C193D53A0D91141135B2F0B19E659BB541883E569D38B329761EDF3C409D34A49870356F3723AD2F720383E49B1752B837DF80F48632A469A0A96AC8F02E5B766B590D722B5BD3ED9191BB70C1D4044A3D5CE850489216C3184D73BAE2B655D76B30EC1851951A756E2A45CD1FF82A83BDC1803005034BEB2EAC35FF7362831D8FBE02E07B1CCA351D47AD65B5282151FB2711A880410CED2C1CF205CC2072F6F244189F5BDB3AFDBA7FB02DD21C99D1EF72C1EF8BC6C68A273D16CB2D3CA190C30BDDEEAD7CA2E519F3AF806B5CBD436B971C1F1981EB35CB4007D129F43E660F7E47E807C889A1DC5FEFA7C304DB41B36982FEFB7390DC6C8E9474D3EEB84B3F757C367475EB1B4CB5B86F9507090F2CB37533E2B96BBC6F75B3BF1F4CECF18F67E7492A681845CF5AFA1B70FB3B0A09CDD3375BCF716CBF2A594533D157CB6C4008CF8C4818C9418E44A995028487B0346BD399BFB431CA94B3FC2AF9822520153105ADACEBE719CC24D1D043AC2AC24BD41759AA452000C43CB885D5F0D71DC2451A2C5C04B0B085BD23B5295B7A109DCD729C34479D51EAB4617FDD163128B25F5803B262C3D97E2D63B3E84D85B67ECDFDE6FA377E208BD2EF867072D341AC731338268AD82285DD6D219DE44EB0588E477CBFCD5F5C068D2FA877339424F324012D346C3E2B3C4408E4FD84535C5D4EA02137ABE0426BC4C3AD6EABAA221579CBA22023F8204ECCC98D143652DEBF5869CD73A81C0E4C6FC9A22F9E648B6783AA1D0F0A1F76B1C4E8692339A6A259F3D8419CF7FD22A26023678BFE4F70C79E7F113882E6C7A0606C5AA9094DB161683E43CCEC8C73FEBC7B82617B90541C2BC15EBA18B55E430373CF21DD235BA332EE6D7A6D042BAB4DEF94939AAD2A1F6FD235B09CA6CCFB45A614C79F3C83253B82BB73826DD22127F3F14292A9B682D607D6C9313DF5324712F976C8978AEDC97B40095E66BF850BCB83F477E1F5AB045844EA5CA0652C7C2C284B90FFDCAE2D5F3C165F66FCE871A5D0AFAA158E77099BFA7A969C8F3425E326D24E7E875D588B5E652ED331ABE4A72AFF7D89CFA9D55116B2610AEA4D1D16BCE1FE8D22849827677FEC8EC9864F5A4B874E7AA3228E31DACECA3ED7E1F31675CCA03E599E748BBCA483821DDC5F1C7ED376EDE7A650AD06CE3FC4E76062354B7D89093EBBF9717CED067846349E8BBEEC4CDDE0907F2DD1C31125F1DBB7B9A94E07677C4EBC756A5ED3D8DB30FB5772328272C6CE4C7FC03 | 276 | 20171205074444 2 6 100 6143 2 EF730E8C844746DF23D55A6C9508EF59F158850FF4A3A24B3E29C95547FE16E3C3F7269D4096406935222EDC51BFDFE89B454D8C02F868FB297A1FBFEB61A5392779A6C51AF8F9068CC579276D045FF317D9B7540D9A39FA936004991CB06BA169012F75BAF0B8D6203470AF1BE5569341E462DF72FF4AFD9C24BCB7584C71C1766DFDD74FE13D98C176DC64979F4720C0A996226948C9DE5E1890C2E703168AB3B33D50C395F13CDE094300C4BB0ED86352950C238DDEB1A8412A2409B6C487F9CBBB110A754A7B4985CF55DE4FC5137CDF13F9B0E10768DF0A28D6628DFEC684A25439E5C943718E4E4CFC89A3DCE1B747F77A0CE08B98AC92705E8DD3A6EDD18FAEA2FBB4988C3CC947C8206DD67CF44BEF69B617E781E93501877F81E4CC2263DB0B5EEEFFF3FCFCD2AB6E34B724D755A9D5025C978AA679D806318EF9F81787D3C69FB2D25B0382A3A96F44216791D41CCC3DF04EBD19B84858F0935C1C774F4685C8114EBCA8C71946C35CB42B82AD56541E3B4AB0A47E0AD8FCF9073BCFB801EA84DDF5DF4426578561BC737C2469B34F275502BC0BD7AB018506FD8DD6A9477F1588C2F76FD82B2AD3740E7F161632C66B961737EB70E9B44F362F73C1F874F7C06C5370297E975D25E004D6090BD119915694AFB57427DDE7F50C81B9A1812E10FA39A01E2F2FF18C96FADEA62BF08FAB027A31D84E4C0267AF7E880B5A0608683542E9895DB15FA1ADA9F1D28569C8E27662CE912CD1869227F542C1F228C6A2226D4AC24673994AA453BF21A1961D17C7E29B297E8AF7A71C4E2957A603900A3B4947B7B59A70767EB9106C043A48EEFAC3CCDC0F78F559CDBE64328E3C21D33D30E6AAFF638761F988CD99C59ECBAC4276ACE22062F6903B4B78B45917829AAA0CF11D04272EB44385A3479AD7B6E3E94126CC35AE082A73AAE991670C5145576789B43055B5F9D457523B16032CC65B679BD5AA08657D719EAC3D0345812BFA599249E4719AA2DF1507916FA735535781F053C4CB92D28007CC8D621E571E957AED705C2D11724E6D4A3BE268FDCCA230A1BE9EDE752BB3FF13 |
277 | 20170628090844 2 6 100 7679 5 E411B879FDA69428A30BDE74B417706E5936E16C5E1F2B64A07EAE1D69C857C23126701460740D93467EB3A3386827E658069CAC4D55CC4929493C193D53A0D91141135B2F0B19E659BB541883E569D38B329761EDF3C409D34A49870356F3723AD2F720383E49B1752B837DF80F48632A469A0A96AC8F02E5B766B590D722B5BD3ED9191BB70C1D4044A3D5CE850489216C3184D73BAE2B655D76B30EC1851951A756E2A45CD1FF82A83BDC1803005034BEB2EAC35FF7362831D8FBE02E07B1CCA351D47AD65B5282151FB2711A880410CED2C1CF205CC2072F6F244189F5BDB3AFDBA7FB02DD21C99D1EF72C1EF8BC6C68A273D16CB2D3CA190C30BDDEEAD7CA2E519F3AF806B5CBD436B971C1F1981EB35CB4007D129F43E660F7E47E807C889A1DC5FEFA7C304DB41B36982FEFB7390DC6C8E9474D3EEB84B3F757C367475EB1B4CB5B86F9507090F2CB37533E2B96BBC6F75B3BF1F4CECF18F67E7492A681845CF5AFA1B70FB3B0A09CDD3375BCF716CBF2A594533D157CB6C4008CF8C4818C9418E44A995028487B0346BD399BFB431CA94B3FC2AF9822520153105ADACEBE719CC24D1D043AC2AC24BD41759AA452000C43CB885D5F0D71DC2451A2C5C04B0B085BD23B5295B7A109DCD729C34479D51EAB4617FDD163128B25F5803B262C3D97E2D63B3E84D85B67ECDFDE6FA377E208BD2EF867072D341AC731338268AD82285DD6D219DE44EB0588E477CBFCD5F5C068D2FA877339424F324012D346C3E2B3C4408E4FD84535C5D4EA02137ABE0426BC4C3AD6EABAA221579CBA22023F8204ECCC98D143652DEBF5869CD73A81C0E4C6FC9A22F9E648B6783AA1D0F0A1F76B1C4E8692339A6A259F3D8419CF7FD22A26023678BFE4F70C79E7F113882E6C7A0606C5AA9094DB161683E43CCEC8C73FEBC7B82617B90541C2BC15EBA18B55E430373CF21DD235BA332EE6D7A6D042BAB4DEF94939AAD2A1F6FD235B09CA6CCFB45A614C79F3C83253B82BB73826DD22127F3F14292A9B682D607D6C9313DF5324712F976C8978AEDC97B40095E66BF850BCB83F477E1F5AB045844EA5CA0652C7C2C284B90FFDCAE2D5F3C165F66FCE871A5D0AFAA158E77099BFA7A969C8F3425E326D24E7E875D588B5E652ED331ABE4A72AFF7D89CFA9D55116B2610AEA4D1D16BCE1FE8D22849827677FEC8EC9864F5A4B874E7AA3228E31DACECA3ED7E1F31675CCA03E599E748BBCA483821DDC5F1C7ED376EDE7A650AD06CE3FC4E76062354B7D89093EBBF9717CED067846349E8BBEEC4CDDE0907F2DD1C31125F1DBB7B9A94E07677C4EBC756A5ED3D8DB30FB5772328272C6CEA316C0F | 277 | 20171205101150 2 6 100 6143 2 EF730E8C844746DF23D55A6C9508EF59F158850FF4A3A24B3E29C95547FE16E3C3F7269D4096406935222EDC51BFDFE89B454D8C02F868FB297A1FBFEB61A5392779A6C51AF8F9068CC579276D045FF317D9B7540D9A39FA936004991CB06BA169012F75BAF0B8D6203470AF1BE5569341E462DF72FF4AFD9C24BCB7584C71C1766DFDD74FE13D98C176DC64979F4720C0A996226948C9DE5E1890C2E703168AB3B33D50C395F13CDE094300C4BB0ED86352950C238DDEB1A8412A2409B6C487F9CBBB110A754A7B4985CF55DE4FC5137CDF13F9B0E10768DF0A28D6628DFEC684A25439E5C943718E4E4CFC89A3DCE1B747F77A0CE08B98AC92705E8DD3A6EDD18FAEA2FBB4988C3CC947C8206DD67CF44BEF69B617E781E93501877F81E4CC2263DB0B5EEEFFF3FCFCD2AB6E34B724D755A9D5025C978AA679D806318EF9F81787D3C69FB2D25B0382A3A96F44216791D41CCC3DF04EBD19B84858F0935C1C774F4685C8114EBCA8C71946C35CB42B82AD56541E3B4AB0A47E0AD8FCF9073BCFB801EA84DDF5DF4426578561BC737C2469B34F275502BC0BD7AB018506FD8DD6A9477F1588C2F76FD82B2AD3740E7F161632C66B961737EB70E9B44F362F73C1F874F7C06C5370297E975D25E004D6090BD119915694AFB57427DDE7F50C81B9A1812E10FA39A01E2F2FF18C96FADEA62BF08FAB027A31D84E4C0267AF7E880B5A0608683542E9895DB15FA1ADA9F1D28569C8E27662CE912CD1869227F542C1F228C6A2226D4AC24673994AA453BF21A1961D17C7E29B297E8AF7A71C4E2957A603900A3B4947B7B59A70767EB9106C043A48EEFAC3CCDC0F78F559CDBE64328E3C21D33D30E6AAFF638761F988CD99C59ECBAC4276ACE22062F6903B4B78B45917829AAA0CF11D04272EB44385A3479AD7B6E3E94126CC35AE082A73AAE991670C5145576789B43055B5F9D457523B16032CC65B679BD5AA08657D719EAC3D0345812BFA599249E4719AA2DF1507916FA735535781F053C4CB92D28007CC8D621E571E957AED705C2D11724E6D4A3BE268FDCCA230A1BE9EDE752F440E8B |
278 | 20170628104935 2 6 100 7679 2 E411B879FDA69428A30BDE74B417706E5936E16C5E1F2B64A07EAE1D69C857C23126701460740D93467EB3A3386827E658069CAC4D55CC4929493C193D53A0D91141135B2F0B19E659BB541883E569D38B329761EDF3C409D34A49870356F3723AD2F720383E49B1752B837DF80F48632A469A0A96AC8F02E5B766B590D722B5BD3ED9191BB70C1D4044A3D5CE850489216C3184D73BAE2B655D76B30EC1851951A756E2A45CD1FF82A83BDC1803005034BEB2EAC35FF7362831D8FBE02E07B1CCA351D47AD65B5282151FB2711A880410CED2C1CF205CC2072F6F244189F5BDB3AFDBA7FB02DD21C99D1EF72C1EF8BC6C68A273D16CB2D3CA190C30BDDEEAD7CA2E519F3AF806B5CBD436B971C1F1981EB35CB4007D129F43E660F7E47E807C889A1DC5FEFA7C304DB41B36982FEFB7390DC6C8E9474D3EEB84B3F757C367475EB1B4CB5B86F9507090F2CB37533E2B96BBC6F75B3BF1F4CECF18F67E7492A681845CF5AFA1B70FB3B0A09CDD3375BCF716CBF2A594533D157CB6C4008CF8C4818C9418E44A995028487B0346BD399BFB431CA94B3FC2AF9822520153105ADACEBE719CC24D1D043AC2AC24BD41759AA452000C43CB885D5F0D71DC2451A2C5C04B0B085BD23B5295B7A109DCD729C34479D51EAB4617FDD163128B25F5803B262C3D97E2D63B3E84D85B67ECDFDE6FA377E208BD2EF867072D341AC731338268AD82285DD6D219DE44EB0588E477CBFCD5F5C068D2FA877339424F324012D346C3E2B3C4408E4FD84535C5D4EA02137ABE0426BC4C3AD6EABAA221579CBA22023F8204ECCC98D143652DEBF5869CD73A81C0E4C6FC9A22F9E648B6783AA1D0F0A1F76B1C4E8692339A6A259F3D8419CF7FD22A26023678BFE4F70C79E7F113882E6C7A0606C5AA9094DB161683E43CCEC8C73FEBC7B82617B90541C2BC15EBA18B55E430373CF21DD235BA332EE6D7A6D042BAB4DEF94939AAD2A1F6FD235B09CA6CCFB45A614C79F3C83253B82BB73826DD22127F3F14292A9B682D607D6C9313DF5324712F976C8978AEDC97B40095E66BF850BCB83F477E1F5AB045844EA5CA0652C7C2C284B90FFDCAE2D5F3C165F66FCE871A5D0AFAA158E77099BFA7A969C8F3425E326D24E7E875D588B5E652ED331ABE4A72AFF7D89CFA9D55116B2610AEA4D1D16BCE1FE8D22849827677FEC8EC9864F5A4B874E7AA3228E31DACECA3ED7E1F31675CCA03E599E748BBCA483821DDC5F1C7ED376EDE7A650AD06CE3FC4E76062354B7D89093EBBF9717CED067846349E8BBEEC4CDDE0907F2DD1C31125F1DBB7B9A94E07677C4EBC756A5ED3D8DB30FB5772328272C6CEB9D111B | 278 | 20171205115054 2 6 100 6143 2 EF730E8C844746DF23D55A6C9508EF59F158850FF4A3A24B3E29C95547FE16E3C3F7269D4096406935222EDC51BFDFE89B454D8C02F868FB297A1FBFEB61A5392779A6C51AF8F9068CC579276D045FF317D9B7540D9A39FA936004991CB06BA169012F75BAF0B8D6203470AF1BE5569341E462DF72FF4AFD9C24BCB7584C71C1766DFDD74FE13D98C176DC64979F4720C0A996226948C9DE5E1890C2E703168AB3B33D50C395F13CDE094300C4BB0ED86352950C238DDEB1A8412A2409B6C487F9CBBB110A754A7B4985CF55DE4FC5137CDF13F9B0E10768DF0A28D6628DFEC684A25439E5C943718E4E4CFC89A3DCE1B747F77A0CE08B98AC92705E8DD3A6EDD18FAEA2FBB4988C3CC947C8206DD67CF44BEF69B617E781E93501877F81E4CC2263DB0B5EEEFFF3FCFCD2AB6E34B724D755A9D5025C978AA679D806318EF9F81787D3C69FB2D25B0382A3A96F44216791D41CCC3DF04EBD19B84858F0935C1C774F4685C8114EBCA8C71946C35CB42B82AD56541E3B4AB0A47E0AD8FCF9073BCFB801EA84DDF5DF4426578561BC737C2469B34F275502BC0BD7AB018506FD8DD6A9477F1588C2F76FD82B2AD3740E7F161632C66B961737EB70E9B44F362F73C1F874F7C06C5370297E975D25E004D6090BD119915694AFB57427DDE7F50C81B9A1812E10FA39A01E2F2FF18C96FADEA62BF08FAB027A31D84E4C0267AF7E880B5A0608683542E9895DB15FA1ADA9F1D28569C8E27662CE912CD1869227F542C1F228C6A2226D4AC24673994AA453BF21A1961D17C7E29B297E8AF7A71C4E2957A603900A3B4947B7B59A70767EB9106C043A48EEFAC3CCDC0F78F559CDBE64328E3C21D33D30E6AAFF638761F988CD99C59ECBAC4276ACE22062F6903B4B78B45917829AAA0CF11D04272EB44385A3479AD7B6E3E94126CC35AE082A73AAE991670C5145576789B43055B5F9D457523B16032CC65B679BD5AA08657D719EAC3D0345812BFA599249E4719AA2DF1507916FA735535781F053C4CB92D28007CC8D621E571E957AED705C2D11724E6D4A3BE268FDCCA230A1BE9EDE7531576573 |
279 | 20170628114328 2 6 100 7679 2 E411B879FDA69428A30BDE74B417706E5936E16C5E1F2B64A07EAE1D69C857C23126701460740D93467EB3A3386827E658069CAC4D55CC4929493C193D53A0D91141135B2F0B19E659BB541883E569D38B329761EDF3C409D34A49870356F3723AD2F720383E49B1752B837DF80F48632A469A0A96AC8F02E5B766B590D722B5BD3ED9191BB70C1D4044A3D5CE850489216C3184D73BAE2B655D76B30EC1851951A756E2A45CD1FF82A83BDC1803005034BEB2EAC35FF7362831D8FBE02E07B1CCA351D47AD65B5282151FB2711A880410CED2C1CF205CC2072F6F244189F5BDB3AFDBA7FB02DD21C99D1EF72C1EF8BC6C68A273D16CB2D3CA190C30BDDEEAD7CA2E519F3AF806B5CBD436B971C1F1981EB35CB4007D129F43E660F7E47E807C889A1DC5FEFA7C304DB41B36982FEFB7390DC6C8E9474D3EEB84B3F757C367475EB1B4CB5B86F9507090F2CB37533E2B96BBC6F75B3BF1F4CECF18F67E7492A681845CF5AFA1B70FB3B0A09CDD3375BCF716CBF2A594533D157CB6C4008CF8C4818C9418E44A995028487B0346BD399BFB431CA94B3FC2AF9822520153105ADACEBE719CC24D1D043AC2AC24BD41759AA452000C43CB885D5F0D71DC2451A2C5C04B0B085BD23B5295B7A109DCD729C34479D51EAB4617FDD163128B25F5803B262C3D97E2D63B3E84D85B67ECDFDE6FA377E208BD2EF867072D341AC731338268AD82285DD6D219DE44EB0588E477CBFCD5F5C068D2FA877339424F324012D346C3E2B3C4408E4FD84535C5D4EA02137ABE0426BC4C3AD6EABAA221579CBA22023F8204ECCC98D143652DEBF5869CD73A81C0E4C6FC9A22F9E648B6783AA1D0F0A1F76B1C4E8692339A6A259F3D8419CF7FD22A26023678BFE4F70C79E7F113882E6C7A0606C5AA9094DB161683E43CCEC8C73FEBC7B82617B90541C2BC15EBA18B55E430373CF21DD235BA332EE6D7A6D042BAB4DEF94939AAD2A1F6FD235B09CA6CCFB45A614C79F3C83253B82BB73826DD22127F3F14292A9B682D607D6C9313DF5324712F976C8978AEDC97B40095E66BF850BCB83F477E1F5AB045844EA5CA0652C7C2C284B90FFDCAE2D5F3C165F66FCE871A5D0AFAA158E77099BFA7A969C8F3425E326D24E7E875D588B5E652ED331ABE4A72AFF7D89CFA9D55116B2610AEA4D1D16BCE1FE8D22849827677FEC8EC9864F5A4B874E7AA3228E31DACECA3ED7E1F31675CCA03E599E748BBCA483821DDC5F1C7ED376EDE7A650AD06CE3FC4E76062354B7D89093EBBF9717CED067846349E8BBEEC4CDDE0907F2DD1C31125F1DBB7B9A94E07677C4EBC756A5ED3D8DB30FB5772328272C6CEC57837B | 279 | 20171205121540 2 6 100 6143 2 EF730E8C844746DF23D55A6C9508EF59F158850FF4A3A24B3E29C95547FE16E3C3F7269D4096406935222EDC51BFDFE89B454D8C02F868FB297A1FBFEB61A5392779A6C51AF8F9068CC579276D045FF317D9B7540D9A39FA936004991CB06BA169012F75BAF0B8D6203470AF1BE5569341E462DF72FF4AFD9C24BCB7584C71C1766DFDD74FE13D98C176DC64979F4720C0A996226948C9DE5E1890C2E703168AB3B33D50C395F13CDE094300C4BB0ED86352950C238DDEB1A8412A2409B6C487F9CBBB110A754A7B4985CF55DE4FC5137CDF13F9B0E10768DF0A28D6628DFEC684A25439E5C943718E4E4CFC89A3DCE1B747F77A0CE08B98AC92705E8DD3A6EDD18FAEA2FBB4988C3CC947C8206DD67CF44BEF69B617E781E93501877F81E4CC2263DB0B5EEEFFF3FCFCD2AB6E34B724D755A9D5025C978AA679D806318EF9F81787D3C69FB2D25B0382A3A96F44216791D41CCC3DF04EBD19B84858F0935C1C774F4685C8114EBCA8C71946C35CB42B82AD56541E3B4AB0A47E0AD8FCF9073BCFB801EA84DDF5DF4426578561BC737C2469B34F275502BC0BD7AB018506FD8DD6A9477F1588C2F76FD82B2AD3740E7F161632C66B961737EB70E9B44F362F73C1F874F7C06C5370297E975D25E004D6090BD119915694AFB57427DDE7F50C81B9A1812E10FA39A01E2F2FF18C96FADEA62BF08FAB027A31D84E4C0267AF7E880B5A0608683542E9895DB15FA1ADA9F1D28569C8E27662CE912CD1869227F542C1F228C6A2226D4AC24673994AA453BF21A1961D17C7E29B297E8AF7A71C4E2957A603900A3B4947B7B59A70767EB9106C043A48EEFAC3CCDC0F78F559CDBE64328E3C21D33D30E6AAFF638761F988CD99C59ECBAC4276ACE22062F6903B4B78B45917829AAA0CF11D04272EB44385A3479AD7B6E3E94126CC35AE082A73AAE991670C5145576789B43055B5F9D457523B16032CC65B679BD5AA08657D719EAC3D0345812BFA599249E4719AA2DF1507916FA735535781F053C4CB92D28007CC8D621E571E957AED705C2D11724E6D4A3BE268FDCCA230A1BE9EDE7531E8F173 |
280 | 20170628155547 2 6 100 7679 5 E411B879FDA69428A30BDE74B417706E5936E16C5E1F2B64A07EAE1D69C857C23126701460740D93467EB3A3386827E658069CAC4D55CC4929493C193D53A0D91141135B2F0B19E659BB541883E569D38B329761EDF3C409D34A49870356F3723AD2F720383E49B1752B837DF80F48632A469A0A96AC8F02E5B766B590D722B5BD3ED9191BB70C1D4044A3D5CE850489216C3184D73BAE2B655D76B30EC1851951A756E2A45CD1FF82A83BDC1803005034BEB2EAC35FF7362831D8FBE02E07B1CCA351D47AD65B5282151FB2711A880410CED2C1CF205CC2072F6F244189F5BDB3AFDBA7FB02DD21C99D1EF72C1EF8BC6C68A273D16CB2D3CA190C30BDDEEAD7CA2E519F3AF806B5CBD436B971C1F1981EB35CB4007D129F43E660F7E47E807C889A1DC5FEFA7C304DB41B36982FEFB7390DC6C8E9474D3EEB84B3F757C367475EB1B4CB5B86F9507090F2CB37533E2B96BBC6F75B3BF1F4CECF18F67E7492A681845CF5AFA1B70FB3B0A09CDD3375BCF716CBF2A594533D157CB6C4008CF8C4818C9418E44A995028487B0346BD399BFB431CA94B3FC2AF9822520153105ADACEBE719CC24D1D043AC2AC24BD41759AA452000C43CB885D5F0D71DC2451A2C5C04B0B085BD23B5295B7A109DCD729C34479D51EAB4617FDD163128B25F5803B262C3D97E2D63B3E84D85B67ECDFDE6FA377E208BD2EF867072D341AC731338268AD82285DD6D219DE44EB0588E477CBFCD5F5C068D2FA877339424F324012D346C3E2B3C4408E4FD84535C5D4EA02137ABE0426BC4C3AD6EABAA221579CBA22023F8204ECCC98D143652DEBF5869CD73A81C0E4C6FC9A22F9E648B6783AA1D0F0A1F76B1C4E8692339A6A259F3D8419CF7FD22A26023678BFE4F70C79E7F113882E6C7A0606C5AA9094DB161683E43CCEC8C73FEBC7B82617B90541C2BC15EBA18B55E430373CF21DD235BA332EE6D7A6D042BAB4DEF94939AAD2A1F6FD235B09CA6CCFB45A614C79F3C83253B82BB73826DD22127F3F14292A9B682D607D6C9313DF5324712F976C8978AEDC97B40095E66BF850BCB83F477E1F5AB045844EA5CA0652C7C2C284B90FFDCAE2D5F3C165F66FCE871A5D0AFAA158E77099BFA7A969C8F3425E326D24E7E875D588B5E652ED331ABE4A72AFF7D89CFA9D55116B2610AEA4D1D16BCE1FE8D22849827677FEC8EC9864F5A4B874E7AA3228E31DACECA3ED7E1F31675CCA03E599E748BBCA483821DDC5F1C7ED376EDE7A650AD06CE3FC4E76062354B7D89093EBBF9717CED067846349E8BBEEC4CDDE0907F2DD1C31125F1DBB7B9A94E07677C4EBC756A5ED3D8DB30FB5772328272C6CEFEB085F | 280 | 20171205130945 2 6 100 6143 2 EF730E8C844746DF23D55A6C9508EF59F158850FF4A3A24B3E29C95547FE16E3C3F7269D4096406935222EDC51BFDFE89B454D8C02F868FB297A1FBFEB61A5392779A6C51AF8F9068CC579276D045FF317D9B7540D9A39FA936004991CB06BA169012F75BAF0B8D6203470AF1BE5569341E462DF72FF4AFD9C24BCB7584C71C1766DFDD74FE13D98C176DC64979F4720C0A996226948C9DE5E1890C2E703168AB3B33D50C395F13CDE094300C4BB0ED86352950C238DDEB1A8412A2409B6C487F9CBBB110A754A7B4985CF55DE4FC5137CDF13F9B0E10768DF0A28D6628DFEC684A25439E5C943718E4E4CFC89A3DCE1B747F77A0CE08B98AC92705E8DD3A6EDD18FAEA2FBB4988C3CC947C8206DD67CF44BEF69B617E781E93501877F81E4CC2263DB0B5EEEFFF3FCFCD2AB6E34B724D755A9D5025C978AA679D806318EF9F81787D3C69FB2D25B0382A3A96F44216791D41CCC3DF04EBD19B84858F0935C1C774F4685C8114EBCA8C71946C35CB42B82AD56541E3B4AB0A47E0AD8FCF9073BCFB801EA84DDF5DF4426578561BC737C2469B34F275502BC0BD7AB018506FD8DD6A9477F1588C2F76FD82B2AD3740E7F161632C66B961737EB70E9B44F362F73C1F874F7C06C5370297E975D25E004D6090BD119915694AFB57427DDE7F50C81B9A1812E10FA39A01E2F2FF18C96FADEA62BF08FAB027A31D84E4C0267AF7E880B5A0608683542E9895DB15FA1ADA9F1D28569C8E27662CE912CD1869227F542C1F228C6A2226D4AC24673994AA453BF21A1961D17C7E29B297E8AF7A71C4E2957A603900A3B4947B7B59A70767EB9106C043A48EEFAC3CCDC0F78F559CDBE64328E3C21D33D30E6AAFF638761F988CD99C59ECBAC4276ACE22062F6903B4B78B45917829AAA0CF11D04272EB44385A3479AD7B6E3E94126CC35AE082A73AAE991670C5145576789B43055B5F9D457523B16032CC65B679BD5AA08657D719EAC3D0345812BFA599249E4719AA2DF1507916FA735535781F053C4CB92D28007CC8D621E571E957AED705C2D11724E6D4A3BE268FDCCA230A1BE9EDE75332BD36B |
281 | 20170628161354 2 6 100 7679 2 E411B879FDA69428A30BDE74B417706E5936E16C5E1F2B64A07EAE1D69C857C23126701460740D93467EB3A3386827E658069CAC4D55CC4929493C193D53A0D91141135B2F0B19E659BB541883E569D38B329761EDF3C409D34A49870356F3723AD2F720383E49B1752B837DF80F48632A469A0A96AC8F02E5B766B590D722B5BD3ED9191BB70C1D4044A3D5CE850489216C3184D73BAE2B655D76B30EC1851951A756E2A45CD1FF82A83BDC1803005034BEB2EAC35FF7362831D8FBE02E07B1CCA351D47AD65B5282151FB2711A880410CED2C1CF205CC2072F6F244189F5BDB3AFDBA7FB02DD21C99D1EF72C1EF8BC6C68A273D16CB2D3CA190C30BDDEEAD7CA2E519F3AF806B5CBD436B971C1F1981EB35CB4007D129F43E660F7E47E807C889A1DC5FEFA7C304DB41B36982FEFB7390DC6C8E9474D3EEB84B3F757C367475EB1B4CB5B86F9507090F2CB37533E2B96BBC6F75B3BF1F4CECF18F67E7492A681845CF5AFA1B70FB3B0A09CDD3375BCF716CBF2A594533D157CB6C4008CF8C4818C9418E44A995028487B0346BD399BFB431CA94B3FC2AF9822520153105ADACEBE719CC24D1D043AC2AC24BD41759AA452000C43CB885D5F0D71DC2451A2C5C04B0B085BD23B5295B7A109DCD729C34479D51EAB4617FDD163128B25F5803B262C3D97E2D63B3E84D85B67ECDFDE6FA377E208BD2EF867072D341AC731338268AD82285DD6D219DE44EB0588E477CBFCD5F5C068D2FA877339424F324012D346C3E2B3C4408E4FD84535C5D4EA02137ABE0426BC4C3AD6EABAA221579CBA22023F8204ECCC98D143652DEBF5869CD73A81C0E4C6FC9A22F9E648B6783AA1D0F0A1F76B1C4E8692339A6A259F3D8419CF7FD22A26023678BFE4F70C79E7F113882E6C7A0606C5AA9094DB161683E43CCEC8C73FEBC7B82617B90541C2BC15EBA18B55E430373CF21DD235BA332EE6D7A6D042BAB4DEF94939AAD2A1F6FD235B09CA6CCFB45A614C79F3C83253B82BB73826DD22127F3F14292A9B682D607D6C9313DF5324712F976C8978AEDC97B40095E66BF850BCB83F477E1F5AB045844EA5CA0652C7C2C284B90FFDCAE2D5F3C165F66FCE871A5D0AFAA158E77099BFA7A969C8F3425E326D24E7E875D588B5E652ED331ABE4A72AFF7D89CFA9D55116B2610AEA4D1D16BCE1FE8D22849827677FEC8EC9864F5A4B874E7AA3228E31DACECA3ED7E1F31675CCA03E599E748BBCA483821DDC5F1C7ED376EDE7A650AD06CE3FC4E76062354B7D89093EBBF9717CED067846349E8BBEEC4CDDE0907F2DD1C31125F1DBB7B9A94E07677C4EBC756A5ED3D8DB30FB5772328272C6CF024A37B | 281 | 20171205141051 2 6 100 6143 2 EF730E8C844746DF23D55A6C9508EF59F158850FF4A3A24B3E29C95547FE16E3C3F7269D4096406935222EDC51BFDFE89B454D8C02F868FB297A1FBFEB61A5392779A6C51AF8F9068CC579276D045FF317D9B7540D9A39FA936004991CB06BA169012F75BAF0B8D6203470AF1BE5569341E462DF72FF4AFD9C24BCB7584C71C1766DFDD74FE13D98C176DC64979F4720C0A996226948C9DE5E1890C2E703168AB3B33D50C395F13CDE094300C4BB0ED86352950C238DDEB1A8412A2409B6C487F9CBBB110A754A7B4985CF55DE4FC5137CDF13F9B0E10768DF0A28D6628DFEC684A25439E5C943718E4E4CFC89A3DCE1B747F77A0CE08B98AC92705E8DD3A6EDD18FAEA2FBB4988C3CC947C8206DD67CF44BEF69B617E781E93501877F81E4CC2263DB0B5EEEFFF3FCFCD2AB6E34B724D755A9D5025C978AA679D806318EF9F81787D3C69FB2D25B0382A3A96F44216791D41CCC3DF04EBD19B84858F0935C1C774F4685C8114EBCA8C71946C35CB42B82AD56541E3B4AB0A47E0AD8FCF9073BCFB801EA84DDF5DF4426578561BC737C2469B34F275502BC0BD7AB018506FD8DD6A9477F1588C2F76FD82B2AD3740E7F161632C66B961737EB70E9B44F362F73C1F874F7C06C5370297E975D25E004D6090BD119915694AFB57427DDE7F50C81B9A1812E10FA39A01E2F2FF18C96FADEA62BF08FAB027A31D84E4C0267AF7E880B5A0608683542E9895DB15FA1ADA9F1D28569C8E27662CE912CD1869227F542C1F228C6A2226D4AC24673994AA453BF21A1961D17C7E29B297E8AF7A71C4E2957A603900A3B4947B7B59A70767EB9106C043A48EEFAC3CCDC0F78F559CDBE64328E3C21D33D30E6AAFF638761F988CD99C59ECBAC4276ACE22062F6903B4B78B45917829AAA0CF11D04272EB44385A3479AD7B6E3E94126CC35AE082A73AAE991670C5145576789B43055B5F9D457523B16032CC65B679BD5AA08657D719EAC3D0345812BFA599249E4719AA2DF1507916FA735535781F053C4CB92D28007CC8D621E571E957AED705C2D11724E6D4A3BE268FDCCA230A1BE9EDE753499FF7B |
282 | 20170629103301 2 6 100 7679 5 E411B879FDA69428A30BDE74B417706E5936E16C5E1F2B64A07EAE1D69C857C23126701460740D93467EB3A3386827E658069CAC4D55CC4929493C193D53A0D91141135B2F0B19E659BB541883E569D38B329761EDF3C409D34A49870356F3723AD2F720383E49B1752B837DF80F48632A469A0A96AC8F02E5B766B590D722B5BD3ED9191BB70C1D4044A3D5CE850489216C3184D73BAE2B655D76B30EC1851951A756E2A45CD1FF82A83BDC1803005034BEB2EAC35FF7362831D8FBE02E07B1CCA351D47AD65B5282151FB2711A880410CED2C1CF205CC2072F6F244189F5BDB3AFDBA7FB02DD21C99D1EF72C1EF8BC6C68A273D16CB2D3CA190C30BDDEEAD7CA2E519F3AF806B5CBD436B971C1F1981EB35CB4007D129F43E660F7E47E807C889A1DC5FEFA7C304DB41B36982FEFB7390DC6C8E9474D3EEB84B3F757C367475EB1B4CB5B86F9507090F2CB37533E2B96BBC6F75B3BF1F4CECF18F67E7492A681845CF5AFA1B70FB3B0A09CDD3375BCF716CBF2A594533D157CB6C4008CF8C4818C9418E44A995028487B0346BD399BFB431CA94B3FC2AF9822520153105ADACEBE719CC24D1D043AC2AC24BD41759AA452000C43CB885D5F0D71DC2451A2C5C04B0B085BD23B5295B7A109DCD729C34479D51EAB4617FDD163128B25F5803B262C3D97E2D63B3E84D85B67ECDFDE6FA377E208BD2EF867072D341AC731338268AD82285DD6D219DE44EB0588E477CBFCD5F5C068D2FA877339424F324012D346C3E2B3C4408E4FD84535C5D4EA02137ABE0426BC4C3AD6EABAA221579CBA22023F8204ECCC98D143652DEBF5869CD73A81C0E4C6FC9A22F9E648B6783AA1D0F0A1F76B1C4E8692339A6A259F3D8419CF7FD22A26023678BFE4F70C79E7F113882E6C7A0606C5AA9094DB161683E43CCEC8C73FEBC7B82617B90541C2BC15EBA18B55E430373CF21DD235BA332EE6D7A6D042BAB4DEF94939AAD2A1F6FD235B09CA6CCFB45A614C79F3C83253B82BB73826DD22127F3F14292A9B682D607D6C9313DF5324712F976C8978AEDC97B40095E66BF850BCB83F477E1F5AB045844EA5CA0652C7C2C284B90FFDCAE2D5F3C165F66FCE871A5D0AFAA158E77099BFA7A969C8F3425E326D24E7E875D588B5E652ED331ABE4A72AFF7D89CFA9D55116B2610AEA4D1D16BCE1FE8D22849827677FEC8EC9864F5A4B874E7AA3228E31DACECA3ED7E1F31675CCA03E599E748BBCA483821DDC5F1C7ED376EDE7A650AD06CE3FC4E76062354B7D89093EBBF9717CED067846349E8BBEEC4CDDE0907F2DD1C31125F1DBB7B9A94E07677C4EBC756A5ED3D8DB30FB5772328272C6CF75BD46F | 282 | 20171205144900 2 6 100 6143 2 EF730E8C844746DF23D55A6C9508EF59F158850FF4A3A24B3E29C95547FE16E3C3F7269D4096406935222EDC51BFDFE89B454D8C02F868FB297A1FBFEB61A5392779A6C51AF8F9068CC579276D045FF317D9B7540D9A39FA936004991CB06BA169012F75BAF0B8D6203470AF1BE5569341E462DF72FF4AFD9C24BCB7584C71C1766DFDD74FE13D98C176DC64979F4720C0A996226948C9DE5E1890C2E703168AB3B33D50C395F13CDE094300C4BB0ED86352950C238DDEB1A8412A2409B6C487F9CBBB110A754A7B4985CF55DE4FC5137CDF13F9B0E10768DF0A28D6628DFEC684A25439E5C943718E4E4CFC89A3DCE1B747F77A0CE08B98AC92705E8DD3A6EDD18FAEA2FBB4988C3CC947C8206DD67CF44BEF69B617E781E93501877F81E4CC2263DB0B5EEEFFF3FCFCD2AB6E34B724D755A9D5025C978AA679D806318EF9F81787D3C69FB2D25B0382A3A96F44216791D41CCC3DF04EBD19B84858F0935C1C774F4685C8114EBCA8C71946C35CB42B82AD56541E3B4AB0A47E0AD8FCF9073BCFB801EA84DDF5DF4426578561BC737C2469B34F275502BC0BD7AB018506FD8DD6A9477F1588C2F76FD82B2AD3740E7F161632C66B961737EB70E9B44F362F73C1F874F7C06C5370297E975D25E004D6090BD119915694AFB57427DDE7F50C81B9A1812E10FA39A01E2F2FF18C96FADEA62BF08FAB027A31D84E4C0267AF7E880B5A0608683542E9895DB15FA1ADA9F1D28569C8E27662CE912CD1869227F542C1F228C6A2226D4AC24673994AA453BF21A1961D17C7E29B297E8AF7A71C4E2957A603900A3B4947B7B59A70767EB9106C043A48EEFAC3CCDC0F78F559CDBE64328E3C21D33D30E6AAFF638761F988CD99C59ECBAC4276ACE22062F6903B4B78B45917829AAA0CF11D04272EB44385A3479AD7B6E3E94126CC35AE082A73AAE991670C5145576789B43055B5F9D457523B16032CC65B679BD5AA08657D719EAC3D0345812BFA599249E4719AA2DF1507916FA735535781F053C4CB92D28007CC8D621E571E957AED705C2D11724E6D4A3BE268FDCCA230A1BE9EDE75357B36FB |
283 | 20170629121023 2 6 100 7679 5 E411B879FDA69428A30BDE74B417706E5936E16C5E1F2B64A07EAE1D69C857C23126701460740D93467EB3A3386827E658069CAC4D55CC4929493C193D53A0D91141135B2F0B19E659BB541883E569D38B329761EDF3C409D34A49870356F3723AD2F720383E49B1752B837DF80F48632A469A0A96AC8F02E5B766B590D722B5BD3ED9191BB70C1D4044A3D5CE850489216C3184D73BAE2B655D76B30EC1851951A756E2A45CD1FF82A83BDC1803005034BEB2EAC35FF7362831D8FBE02E07B1CCA351D47AD65B5282151FB2711A880410CED2C1CF205CC2072F6F244189F5BDB3AFDBA7FB02DD21C99D1EF72C1EF8BC6C68A273D16CB2D3CA190C30BDDEEAD7CA2E519F3AF806B5CBD436B971C1F1981EB35CB4007D129F43E660F7E47E807C889A1DC5FEFA7C304DB41B36982FEFB7390DC6C8E9474D3EEB84B3F757C367475EB1B4CB5B86F9507090F2CB37533E2B96BBC6F75B3BF1F4CECF18F67E7492A681845CF5AFA1B70FB3B0A09CDD3375BCF716CBF2A594533D157CB6C4008CF8C4818C9418E44A995028487B0346BD399BFB431CA94B3FC2AF9822520153105ADACEBE719CC24D1D043AC2AC24BD41759AA452000C43CB885D5F0D71DC2451A2C5C04B0B085BD23B5295B7A109DCD729C34479D51EAB4617FDD163128B25F5803B262C3D97E2D63B3E84D85B67ECDFDE6FA377E208BD2EF867072D341AC731338268AD82285DD6D219DE44EB0588E477CBFCD5F5C068D2FA877339424F324012D346C3E2B3C4408E4FD84535C5D4EA02137ABE0426BC4C3AD6EABAA221579CBA22023F8204ECCC98D143652DEBF5869CD73A81C0E4C6FC9A22F9E648B6783AA1D0F0A1F76B1C4E8692339A6A259F3D8419CF7FD22A26023678BFE4F70C79E7F113882E6C7A0606C5AA9094DB161683E43CCEC8C73FEBC7B82617B90541C2BC15EBA18B55E430373CF21DD235BA332EE6D7A6D042BAB4DEF94939AAD2A1F6FD235B09CA6CCFB45A614C79F3C83253B82BB73826DD22127F3F14292A9B682D607D6C9313DF5324712F976C8978AEDC97B40095E66BF850BCB83F477E1F5AB045844EA5CA0652C7C2C284B90FFDCAE2D5F3C165F66FCE871A5D0AFAA158E77099BFA7A969C8F3425E326D24E7E875D588B5E652ED331ABE4A72AFF7D89CFA9D55116B2610AEA4D1D16BCE1FE8D22849827677FEC8EC9864F5A4B874E7AA3228E31DACECA3ED7E1F31675CCA03E599E748BBCA483821DDC5F1C7ED376EDE7A650AD06CE3FC4E76062354B7D89093EBBF9717CED067846349E8BBEEC4CDDE0907F2DD1C31125F1DBB7B9A94E07677C4EBC756A5ED3D8DB30FB5772328272C6CF8B74F97 | 283 | 20171205154530 2 6 100 6143 2 EF730E8C844746DF23D55A6C9508EF59F158850FF4A3A24B3E29C95547FE16E3C3F7269D4096406935222EDC51BFDFE89B454D8C02F868FB297A1FBFEB61A5392779A6C51AF8F9068CC579276D045FF317D9B7540D9A39FA936004991CB06BA169012F75BAF0B8D6203470AF1BE5569341E462DF72FF4AFD9C24BCB7584C71C1766DFDD74FE13D98C176DC64979F4720C0A996226948C9DE5E1890C2E703168AB3B33D50C395F13CDE094300C4BB0ED86352950C238DDEB1A8412A2409B6C487F9CBBB110A754A7B4985CF55DE4FC5137CDF13F9B0E10768DF0A28D6628DFEC684A25439E5C943718E4E4CFC89A3DCE1B747F77A0CE08B98AC92705E8DD3A6EDD18FAEA2FBB4988C3CC947C8206DD67CF44BEF69B617E781E93501877F81E4CC2263DB0B5EEEFFF3FCFCD2AB6E34B724D755A9D5025C978AA679D806318EF9F81787D3C69FB2D25B0382A3A96F44216791D41CCC3DF04EBD19B84858F0935C1C774F4685C8114EBCA8C71946C35CB42B82AD56541E3B4AB0A47E0AD8FCF9073BCFB801EA84DDF5DF4426578561BC737C2469B34F275502BC0BD7AB018506FD8DD6A9477F1588C2F76FD82B2AD3740E7F161632C66B961737EB70E9B44F362F73C1F874F7C06C5370297E975D25E004D6090BD119915694AFB57427DDE7F50C81B9A1812E10FA39A01E2F2FF18C96FADEA62BF08FAB027A31D84E4C0267AF7E880B5A0608683542E9895DB15FA1ADA9F1D28569C8E27662CE912CD1869227F542C1F228C6A2226D4AC24673994AA453BF21A1961D17C7E29B297E8AF7A71C4E2957A603900A3B4947B7B59A70767EB9106C043A48EEFAC3CCDC0F78F559CDBE64328E3C21D33D30E6AAFF638761F988CD99C59ECBAC4276ACE22062F6903B4B78B45917829AAA0CF11D04272EB44385A3479AD7B6E3E94126CC35AE082A73AAE991670C5145576789B43055B5F9D457523B16032CC65B679BD5AA08657D719EAC3D0345812BFA599249E4719AA2DF1507916FA735535781F053C4CB92D28007CC8D621E571E957AED705C2D11724E6D4A3BE268FDCCA230A1BE9EDE7536CFC643 |
284 | 20170630003105 2 6 100 7679 2 E411B879FDA69428A30BDE74B417706E5936E16C5E1F2B64A07EAE1D69C857C23126701460740D93467EB3A3386827E658069CAC4D55CC4929493C193D53A0D91141135B2F0B19E659BB541883E569D38B329761EDF3C409D34A49870356F3723AD2F720383E49B1752B837DF80F48632A469A0A96AC8F02E5B766B590D722B5BD3ED9191BB70C1D4044A3D5CE850489216C3184D73BAE2B655D76B30EC1851951A756E2A45CD1FF82A83BDC1803005034BEB2EAC35FF7362831D8FBE02E07B1CCA351D47AD65B5282151FB2711A880410CED2C1CF205CC2072F6F244189F5BDB3AFDBA7FB02DD21C99D1EF72C1EF8BC6C68A273D16CB2D3CA190C30BDDEEAD7CA2E519F3AF806B5CBD436B971C1F1981EB35CB4007D129F43E660F7E47E807C889A1DC5FEFA7C304DB41B36982FEFB7390DC6C8E9474D3EEB84B3F757C367475EB1B4CB5B86F9507090F2CB37533E2B96BBC6F75B3BF1F4CECF18F67E7492A681845CF5AFA1B70FB3B0A09CDD3375BCF716CBF2A594533D157CB6C4008CF8C4818C9418E44A995028487B0346BD399BFB431CA94B3FC2AF9822520153105ADACEBE719CC24D1D043AC2AC24BD41759AA452000C43CB885D5F0D71DC2451A2C5C04B0B085BD23B5295B7A109DCD729C34479D51EAB4617FDD163128B25F5803B262C3D97E2D63B3E84D85B67ECDFDE6FA377E208BD2EF867072D341AC731338268AD82285DD6D219DE44EB0588E477CBFCD5F5C068D2FA877339424F324012D346C3E2B3C4408E4FD84535C5D4EA02137ABE0426BC4C3AD6EABAA221579CBA22023F8204ECCC98D143652DEBF5869CD73A81C0E4C6FC9A22F9E648B6783AA1D0F0A1F76B1C4E8692339A6A259F3D8419CF7FD22A26023678BFE4F70C79E7F113882E6C7A0606C5AA9094DB161683E43CCEC8C73FEBC7B82617B90541C2BC15EBA18B55E430373CF21DD235BA332EE6D7A6D042BAB4DEF94939AAD2A1F6FD235B09CA6CCFB45A614C79F3C83253B82BB73826DD22127F3F14292A9B682D607D6C9313DF5324712F976C8978AEDC97B40095E66BF850BCB83F477E1F5AB045844EA5CA0652C7C2C284B90FFDCAE2D5F3C165F66FCE871A5D0AFAA158E77099BFA7A969C8F3425E326D24E7E875D588B5E652ED331ABE4A72AFF7D89CFA9D55116B2610AEA4D1D16BCE1FE8D22849827677FEC8EC9864F5A4B874E7AA3228E31DACECA3ED7E1F31675CCA03E599E748BBCA483821DDC5F1C7ED376EDE7A650AD06CE3FC4E76062354B7D89093EBBF9717CED067846349E8BBEEC4CDDE0907F2DD1C31125F1DBB7B9A94E07677C4EBC756A5ED3D8DB30FB5772328272C6D0331EC63 | 284 | 20171205175129 2 6 100 6143 2 EF730E8C844746DF23D55A6C9508EF59F158850FF4A3A24B3E29C95547FE16E3C3F7269D4096406935222EDC51BFDFE89B454D8C02F868FB297A1FBFEB61A5392779A6C51AF8F9068CC579276D045FF317D9B7540D9A39FA936004991CB06BA169012F75BAF0B8D6203470AF1BE5569341E462DF72FF4AFD9C24BCB7584C71C1766DFDD74FE13D98C176DC64979F4720C0A996226948C9DE5E1890C2E703168AB3B33D50C395F13CDE094300C4BB0ED86352950C238DDEB1A8412A2409B6C487F9CBBB110A754A7B4985CF55DE4FC5137CDF13F9B0E10768DF0A28D6628DFEC684A25439E5C943718E4E4CFC89A3DCE1B747F77A0CE08B98AC92705E8DD3A6EDD18FAEA2FBB4988C3CC947C8206DD67CF44BEF69B617E781E93501877F81E4CC2263DB0B5EEEFFF3FCFCD2AB6E34B724D755A9D5025C978AA679D806318EF9F81787D3C69FB2D25B0382A3A96F44216791D41CCC3DF04EBD19B84858F0935C1C774F4685C8114EBCA8C71946C35CB42B82AD56541E3B4AB0A47E0AD8FCF9073BCFB801EA84DDF5DF4426578561BC737C2469B34F275502BC0BD7AB018506FD8DD6A9477F1588C2F76FD82B2AD3740E7F161632C66B961737EB70E9B44F362F73C1F874F7C06C5370297E975D25E004D6090BD119915694AFB57427DDE7F50C81B9A1812E10FA39A01E2F2FF18C96FADEA62BF08FAB027A31D84E4C0267AF7E880B5A0608683542E9895DB15FA1ADA9F1D28569C8E27662CE912CD1869227F542C1F228C6A2226D4AC24673994AA453BF21A1961D17C7E29B297E8AF7A71C4E2957A603900A3B4947B7B59A70767EB9106C043A48EEFAC3CCDC0F78F559CDBE64328E3C21D33D30E6AAFF638761F988CD99C59ECBAC4276ACE22062F6903B4B78B45917829AAA0CF11D04272EB44385A3479AD7B6E3E94126CC35AE082A73AAE991670C5145576789B43055B5F9D457523B16032CC65B679BD5AA08657D719EAC3D0345812BFA599249E4719AA2DF1507916FA735535781F053C4CB92D28007CC8D621E571E957AED705C2D11724E6D4A3BE268FDCCA230A1BE9EDE75398C8CC3 |
285 | 20170630052003 2 6 100 7679 2 E411B879FDA69428A30BDE74B417706E5936E16C5E1F2B64A07EAE1D69C857C23126701460740D93467EB3A3386827E658069CAC4D55CC4929493C193D53A0D91141135B2F0B19E659BB541883E569D38B329761EDF3C409D34A49870356F3723AD2F720383E49B1752B837DF80F48632A469A0A96AC8F02E5B766B590D722B5BD3ED9191BB70C1D4044A3D5CE850489216C3184D73BAE2B655D76B30EC1851951A756E2A45CD1FF82A83BDC1803005034BEB2EAC35FF7362831D8FBE02E07B1CCA351D47AD65B5282151FB2711A880410CED2C1CF205CC2072F6F244189F5BDB3AFDBA7FB02DD21C99D1EF72C1EF8BC6C68A273D16CB2D3CA190C30BDDEEAD7CA2E519F3AF806B5CBD436B971C1F1981EB35CB4007D129F43E660F7E47E807C889A1DC5FEFA7C304DB41B36982FEFB7390DC6C8E9474D3EEB84B3F757C367475EB1B4CB5B86F9507090F2CB37533E2B96BBC6F75B3BF1F4CECF18F67E7492A681845CF5AFA1B70FB3B0A09CDD3375BCF716CBF2A594533D157CB6C4008CF8C4818C9418E44A995028487B0346BD399BFB431CA94B3FC2AF9822520153105ADACEBE719CC24D1D043AC2AC24BD41759AA452000C43CB885D5F0D71DC2451A2C5C04B0B085BD23B5295B7A109DCD729C34479D51EAB4617FDD163128B25F5803B262C3D97E2D63B3E84D85B67ECDFDE6FA377E208BD2EF867072D341AC731338268AD82285DD6D219DE44EB0588E477CBFCD5F5C068D2FA877339424F324012D346C3E2B3C4408E4FD84535C5D4EA02137ABE0426BC4C3AD6EABAA221579CBA22023F8204ECCC98D143652DEBF5869CD73A81C0E4C6FC9A22F9E648B6783AA1D0F0A1F76B1C4E8692339A6A259F3D8419CF7FD22A26023678BFE4F70C79E7F113882E6C7A0606C5AA9094DB161683E43CCEC8C73FEBC7B82617B90541C2BC15EBA18B55E430373CF21DD235BA332EE6D7A6D042BAB4DEF94939AAD2A1F6FD235B09CA6CCFB45A614C79F3C83253B82BB73826DD22127F3F14292A9B682D607D6C9313DF5324712F976C8978AEDC97B40095E66BF850BCB83F477E1F5AB045844EA5CA0652C7C2C284B90FFDCAE2D5F3C165F66FCE871A5D0AFAA158E77099BFA7A969C8F3425E326D24E7E875D588B5E652ED331ABE4A72AFF7D89CFA9D55116B2610AEA4D1D16BCE1FE8D22849827677FEC8EC9864F5A4B874E7AA3228E31DACECA3ED7E1F31675CCA03E599E748BBCA483821DDC5F1C7ED376EDE7A650AD06CE3FC4E76062354B7D89093EBBF9717CED067846349E8BBEEC4CDDE0907F2DD1C31125F1DBB7B9A94E07677C4EBC756A5ED3D8DB30FB5772328272C6D04F2C61B | 285 | 20171205180055 2 6 100 6143 2 EF730E8C844746DF23D55A6C9508EF59F158850FF4A3A24B3E29C95547FE16E3C3F7269D4096406935222EDC51BFDFE89B454D8C02F868FB297A1FBFEB61A5392779A6C51AF8F9068CC579276D045FF317D9B7540D9A39FA936004991CB06BA169012F75BAF0B8D6203470AF1BE5569341E462DF72FF4AFD9C24BCB7584C71C1766DFDD74FE13D98C176DC64979F4720C0A996226948C9DE5E1890C2E703168AB3B33D50C395F13CDE094300C4BB0ED86352950C238DDEB1A8412A2409B6C487F9CBBB110A754A7B4985CF55DE4FC5137CDF13F9B0E10768DF0A28D6628DFEC684A25439E5C943718E4E4CFC89A3DCE1B747F77A0CE08B98AC92705E8DD3A6EDD18FAEA2FBB4988C3CC947C8206DD67CF44BEF69B617E781E93501877F81E4CC2263DB0B5EEEFFF3FCFCD2AB6E34B724D755A9D5025C978AA679D806318EF9F81787D3C69FB2D25B0382A3A96F44216791D41CCC3DF04EBD19B84858F0935C1C774F4685C8114EBCA8C71946C35CB42B82AD56541E3B4AB0A47E0AD8FCF9073BCFB801EA84DDF5DF4426578561BC737C2469B34F275502BC0BD7AB018506FD8DD6A9477F1588C2F76FD82B2AD3740E7F161632C66B961737EB70E9B44F362F73C1F874F7C06C5370297E975D25E004D6090BD119915694AFB57427DDE7F50C81B9A1812E10FA39A01E2F2FF18C96FADEA62BF08FAB027A31D84E4C0267AF7E880B5A0608683542E9895DB15FA1ADA9F1D28569C8E27662CE912CD1869227F542C1F228C6A2226D4AC24673994AA453BF21A1961D17C7E29B297E8AF7A71C4E2957A603900A3B4947B7B59A70767EB9106C043A48EEFAC3CCDC0F78F559CDBE64328E3C21D33D30E6AAFF638761F988CD99C59ECBAC4276ACE22062F6903B4B78B45917829AAA0CF11D04272EB44385A3479AD7B6E3E94126CC35AE082A73AAE991670C5145576789B43055B5F9D457523B16032CC65B679BD5AA08657D719EAC3D0345812BFA599249E4719AA2DF1507916FA735535781F053C4CB92D28007CC8D621E571E957AED705C2D11724E6D4A3BE268FDCCA230A1BE9EDE7539B7B69B |
286 | 20170630145450 2 6 100 7679 2 E411B879FDA69428A30BDE74B417706E5936E16C5E1F2B64A07EAE1D69C857C23126701460740D93467EB3A3386827E658069CAC4D55CC4929493C193D53A0D91141135B2F0B19E659BB541883E569D38B329761EDF3C409D34A49870356F3723AD2F720383E49B1752B837DF80F48632A469A0A96AC8F02E5B766B590D722B5BD3ED9191BB70C1D4044A3D5CE850489216C3184D73BAE2B655D76B30EC1851951A756E2A45CD1FF82A83BDC1803005034BEB2EAC35FF7362831D8FBE02E07B1CCA351D47AD65B5282151FB2711A880410CED2C1CF205CC2072F6F244189F5BDB3AFDBA7FB02DD21C99D1EF72C1EF8BC6C68A273D16CB2D3CA190C30BDDEEAD7CA2E519F3AF806B5CBD436B971C1F1981EB35CB4007D129F43E660F7E47E807C889A1DC5FEFA7C304DB41B36982FEFB7390DC6C8E9474D3EEB84B3F757C367475EB1B4CB5B86F9507090F2CB37533E2B96BBC6F75B3BF1F4CECF18F67E7492A681845CF5AFA1B70FB3B0A09CDD3375BCF716CBF2A594533D157CB6C4008CF8C4818C9418E44A995028487B0346BD399BFB431CA94B3FC2AF9822520153105ADACEBE719CC24D1D043AC2AC24BD41759AA452000C43CB885D5F0D71DC2451A2C5C04B0B085BD23B5295B7A109DCD729C34479D51EAB4617FDD163128B25F5803B262C3D97E2D63B3E84D85B67ECDFDE6FA377E208BD2EF867072D341AC731338268AD82285DD6D219DE44EB0588E477CBFCD5F5C068D2FA877339424F324012D346C3E2B3C4408E4FD84535C5D4EA02137ABE0426BC4C3AD6EABAA221579CBA22023F8204ECCC98D143652DEBF5869CD73A81C0E4C6FC9A22F9E648B6783AA1D0F0A1F76B1C4E8692339A6A259F3D8419CF7FD22A26023678BFE4F70C79E7F113882E6C7A0606C5AA9094DB161683E43CCEC8C73FEBC7B82617B90541C2BC15EBA18B55E430373CF21DD235BA332EE6D7A6D042BAB4DEF94939AAD2A1F6FD235B09CA6CCFB45A614C79F3C83253B82BB73826DD22127F3F14292A9B682D607D6C9313DF5324712F976C8978AEDC97B40095E66BF850BCB83F477E1F5AB045844EA5CA0652C7C2C284B90FFDCAE2D5F3C165F66FCE871A5D0AFAA158E77099BFA7A969C8F3425E326D24E7E875D588B5E652ED331ABE4A72AFF7D89CFA9D55116B2610AEA4D1D16BCE1FE8D22849827677FEC8EC9864F5A4B874E7AA3228E31DACECA3ED7E1F31675CCA03E599E748BBCA483821DDC5F1C7ED376EDE7A650AD06CE3FC4E76062354B7D89093EBBF9717CED067846349E8BBEEC4CDDE0907F2DD1C31125F1DBB7B9A94E07677C4EBC756A5ED3D8DB30FB5772328272C6D0CF7BF93 | 286 | 20171205191334 2 6 100 6143 2 EF730E8C844746DF23D55A6C9508EF59F158850FF4A3A24B3E29C95547FE16E3C3F7269D4096406935222EDC51BFDFE89B454D8C02F868FB297A1FBFEB61A5392779A6C51AF8F9068CC579276D045FF317D9B7540D9A39FA936004991CB06BA169012F75BAF0B8D6203470AF1BE5569341E462DF72FF4AFD9C24BCB7584C71C1766DFDD74FE13D98C176DC64979F4720C0A996226948C9DE5E1890C2E703168AB3B33D50C395F13CDE094300C4BB0ED86352950C238DDEB1A8412A2409B6C487F9CBBB110A754A7B4985CF55DE4FC5137CDF13F9B0E10768DF0A28D6628DFEC684A25439E5C943718E4E4CFC89A3DCE1B747F77A0CE08B98AC92705E8DD3A6EDD18FAEA2FBB4988C3CC947C8206DD67CF44BEF69B617E781E93501877F81E4CC2263DB0B5EEEFFF3FCFCD2AB6E34B724D755A9D5025C978AA679D806318EF9F81787D3C69FB2D25B0382A3A96F44216791D41CCC3DF04EBD19B84858F0935C1C774F4685C8114EBCA8C71946C35CB42B82AD56541E3B4AB0A47E0AD8FCF9073BCFB801EA84DDF5DF4426578561BC737C2469B34F275502BC0BD7AB018506FD8DD6A9477F1588C2F76FD82B2AD3740E7F161632C66B961737EB70E9B44F362F73C1F874F7C06C5370297E975D25E004D6090BD119915694AFB57427DDE7F50C81B9A1812E10FA39A01E2F2FF18C96FADEA62BF08FAB027A31D84E4C0267AF7E880B5A0608683542E9895DB15FA1ADA9F1D28569C8E27662CE912CD1869227F542C1F228C6A2226D4AC24673994AA453BF21A1961D17C7E29B297E8AF7A71C4E2957A603900A3B4947B7B59A70767EB9106C043A48EEFAC3CCDC0F78F559CDBE64328E3C21D33D30E6AAFF638761F988CD99C59ECBAC4276ACE22062F6903B4B78B45917829AAA0CF11D04272EB44385A3479AD7B6E3E94126CC35AE082A73AAE991670C5145576789B43055B5F9D457523B16032CC65B679BD5AA08657D719EAC3D0345812BFA599249E4719AA2DF1507916FA735535781F053C4CB92D28007CC8D621E571E957AED705C2D11724E6D4A3BE268FDCCA230A1BE9EDE753B4A4AD3 |
287 | 20170701010810 2 6 100 7679 5 E411B879FDA69428A30BDE74B417706E5936E16C5E1F2B64A07EAE1D69C857C23126701460740D93467EB3A3386827E658069CAC4D55CC4929493C193D53A0D91141135B2F0B19E659BB541883E569D38B329761EDF3C409D34A49870356F3723AD2F720383E49B1752B837DF80F48632A469A0A96AC8F02E5B766B590D722B5BD3ED9191BB70C1D4044A3D5CE850489216C3184D73BAE2B655D76B30EC1851951A756E2A45CD1FF82A83BDC1803005034BEB2EAC35FF7362831D8FBE02E07B1CCA351D47AD65B5282151FB2711A880410CED2C1CF205CC2072F6F244189F5BDB3AFDBA7FB02DD21C99D1EF72C1EF8BC6C68A273D16CB2D3CA190C30BDDEEAD7CA2E519F3AF806B5CBD436B971C1F1981EB35CB4007D129F43E660F7E47E807C889A1DC5FEFA7C304DB41B36982FEFB7390DC6C8E9474D3EEB84B3F757C367475EB1B4CB5B86F9507090F2CB37533E2B96BBC6F75B3BF1F4CECF18F67E7492A681845CF5AFA1B70FB3B0A09CDD3375BCF716CBF2A594533D157CB6C4008CF8C4818C9418E44A995028487B0346BD399BFB431CA94B3FC2AF9822520153105ADACEBE719CC24D1D043AC2AC24BD41759AA452000C43CB885D5F0D71DC2451A2C5C04B0B085BD23B5295B7A109DCD729C34479D51EAB4617FDD163128B25F5803B262C3D97E2D63B3E84D85B67ECDFDE6FA377E208BD2EF867072D341AC731338268AD82285DD6D219DE44EB0588E477CBFCD5F5C068D2FA877339424F324012D346C3E2B3C4408E4FD84535C5D4EA02137ABE0426BC4C3AD6EABAA221579CBA22023F8204ECCC98D143652DEBF5869CD73A81C0E4C6FC9A22F9E648B6783AA1D0F0A1F76B1C4E8692339A6A259F3D8419CF7FD22A26023678BFE4F70C79E7F113882E6C7A0606C5AA9094DB161683E43CCEC8C73FEBC7B82617B90541C2BC15EBA18B55E430373CF21DD235BA332EE6D7A6D042BAB4DEF94939AAD2A1F6FD235B09CA6CCFB45A614C79F3C83253B82BB73826DD22127F3F14292A9B682D607D6C9313DF5324712F976C8978AEDC97B40095E66BF850BCB83F477E1F5AB045844EA5CA0652C7C2C284B90FFDCAE2D5F3C165F66FCE871A5D0AFAA158E77099BFA7A969C8F3425E326D24E7E875D588B5E652ED331ABE4A72AFF7D89CFA9D55116B2610AEA4D1D16BCE1FE8D22849827677FEC8EC9864F5A4B874E7AA3228E31DACECA3ED7E1F31675CCA03E599E748BBCA483821DDC5F1C7ED376EDE7A650AD06CE3FC4E76062354B7D89093EBBF9717CED067846349E8BBEEC4CDDE0907F2DD1C31125F1DBB7B9A94E07677C4EBC756A5ED3D8DB30FB5772328272C6D1578081F | 287 | 20171205223915 2 6 100 6143 2 EF730E8C844746DF23D55A6C9508EF59F158850FF4A3A24B3E29C95547FE16E3C3F7269D4096406935222EDC51BFDFE89B454D8C02F868FB297A1FBFEB61A5392779A6C51AF8F9068CC579276D045FF317D9B7540D9A39FA936004991CB06BA169012F75BAF0B8D6203470AF1BE5569341E462DF72FF4AFD9C24BCB7584C71C1766DFDD74FE13D98C176DC64979F4720C0A996226948C9DE5E1890C2E703168AB3B33D50C395F13CDE094300C4BB0ED86352950C238DDEB1A8412A2409B6C487F9CBBB110A754A7B4985CF55DE4FC5137CDF13F9B0E10768DF0A28D6628DFEC684A25439E5C943718E4E4CFC89A3DCE1B747F77A0CE08B98AC92705E8DD3A6EDD18FAEA2FBB4988C3CC947C8206DD67CF44BEF69B617E781E93501877F81E4CC2263DB0B5EEEFFF3FCFCD2AB6E34B724D755A9D5025C978AA679D806318EF9F81787D3C69FB2D25B0382A3A96F44216791D41CCC3DF04EBD19B84858F0935C1C774F4685C8114EBCA8C71946C35CB42B82AD56541E3B4AB0A47E0AD8FCF9073BCFB801EA84DDF5DF4426578561BC737C2469B34F275502BC0BD7AB018506FD8DD6A9477F1588C2F76FD82B2AD3740E7F161632C66B961737EB70E9B44F362F73C1F874F7C06C5370297E975D25E004D6090BD119915694AFB57427DDE7F50C81B9A1812E10FA39A01E2F2FF18C96FADEA62BF08FAB027A31D84E4C0267AF7E880B5A0608683542E9895DB15FA1ADA9F1D28569C8E27662CE912CD1869227F542C1F228C6A2226D4AC24673994AA453BF21A1961D17C7E29B297E8AF7A71C4E2957A603900A3B4947B7B59A70767EB9106C043A48EEFAC3CCDC0F78F559CDBE64328E3C21D33D30E6AAFF638761F988CD99C59ECBAC4276ACE22062F6903B4B78B45917829AAA0CF11D04272EB44385A3479AD7B6E3E94126CC35AE082A73AAE991670C5145576789B43055B5F9D457523B16032CC65B679BD5AA08657D719EAC3D0345812BFA599249E4719AA2DF1507916FA735535781F053C4CB92D28007CC8D621E571E957AED705C2D11724E6D4A3BE268FDCCA230A1BE9EDE754018391B |
288 | 20170701015400 2 6 100 7679 5 E411B879FDA69428A30BDE74B417706E5936E16C5E1F2B64A07EAE1D69C857C23126701460740D93467EB3A3386827E658069CAC4D55CC4929493C193D53A0D91141135B2F0B19E659BB541883E569D38B329761EDF3C409D34A49870356F3723AD2F720383E49B1752B837DF80F48632A469A0A96AC8F02E5B766B590D722B5BD3ED9191BB70C1D4044A3D5CE850489216C3184D73BAE2B655D76B30EC1851951A756E2A45CD1FF82A83BDC1803005034BEB2EAC35FF7362831D8FBE02E07B1CCA351D47AD65B5282151FB2711A880410CED2C1CF205CC2072F6F244189F5BDB3AFDBA7FB02DD21C99D1EF72C1EF8BC6C68A273D16CB2D3CA190C30BDDEEAD7CA2E519F3AF806B5CBD436B971C1F1981EB35CB4007D129F43E660F7E47E807C889A1DC5FEFA7C304DB41B36982FEFB7390DC6C8E9474D3EEB84B3F757C367475EB1B4CB5B86F9507090F2CB37533E2B96BBC6F75B3BF1F4CECF18F67E7492A681845CF5AFA1B70FB3B0A09CDD3375BCF716CBF2A594533D157CB6C4008CF8C4818C9418E44A995028487B0346BD399BFB431CA94B3FC2AF9822520153105ADACEBE719CC24D1D043AC2AC24BD41759AA452000C43CB885D5F0D71DC2451A2C5C04B0B085BD23B5295B7A109DCD729C34479D51EAB4617FDD163128B25F5803B262C3D97E2D63B3E84D85B67ECDFDE6FA377E208BD2EF867072D341AC731338268AD82285DD6D219DE44EB0588E477CBFCD5F5C068D2FA877339424F324012D346C3E2B3C4408E4FD84535C5D4EA02137ABE0426BC4C3AD6EABAA221579CBA22023F8204ECCC98D143652DEBF5869CD73A81C0E4C6FC9A22F9E648B6783AA1D0F0A1F76B1C4E8692339A6A259F3D8419CF7FD22A26023678BFE4F70C79E7F113882E6C7A0606C5AA9094DB161683E43CCEC8C73FEBC7B82617B90541C2BC15EBA18B55E430373CF21DD235BA332EE6D7A6D042BAB4DEF94939AAD2A1F6FD235B09CA6CCFB45A614C79F3C83253B82BB73826DD22127F3F14292A9B682D607D6C9313DF5324712F976C8978AEDC97B40095E66BF850BCB83F477E1F5AB045844EA5CA0652C7C2C284B90FFDCAE2D5F3C165F66FCE871A5D0AFAA158E77099BFA7A969C8F3425E326D24E7E875D588B5E652ED331ABE4A72AFF7D89CFA9D55116B2610AEA4D1D16BCE1FE8D22849827677FEC8EC9864F5A4B874E7AA3228E31DACECA3ED7E1F31675CCA03E599E748BBCA483821DDC5F1C7ED376EDE7A650AD06CE3FC4E76062354B7D89093EBBF9717CED067846349E8BBEEC4CDDE0907F2DD1C31125F1DBB7B9A94E07677C4EBC756A5ED3D8DB30FB5772328272C6D161119BF | 288 | 20171206002554 2 6 100 6143 5 EF730E8C844746DF23D55A6C9508EF59F158850FF4A3A24B3E29C95547FE16E3C3F7269D4096406935222EDC51BFDFE89B454D8C02F868FB297A1FBFEB61A5392779A6C51AF8F9068CC579276D045FF317D9B7540D9A39FA936004991CB06BA169012F75BAF0B8D6203470AF1BE5569341E462DF72FF4AFD9C24BCB7584C71C1766DFDD74FE13D98C176DC64979F4720C0A996226948C9DE5E1890C2E703168AB3B33D50C395F13CDE094300C4BB0ED86352950C238DDEB1A8412A2409B6C487F9CBBB110A754A7B4985CF55DE4FC5137CDF13F9B0E10768DF0A28D6628DFEC684A25439E5C943718E4E4CFC89A3DCE1B747F77A0CE08B98AC92705E8DD3A6EDD18FAEA2FBB4988C3CC947C8206DD67CF44BEF69B617E781E93501877F81E4CC2263DB0B5EEEFFF3FCFCD2AB6E34B724D755A9D5025C978AA679D806318EF9F81787D3C69FB2D25B0382A3A96F44216791D41CCC3DF04EBD19B84858F0935C1C774F4685C8114EBCA8C71946C35CB42B82AD56541E3B4AB0A47E0AD8FCF9073BCFB801EA84DDF5DF4426578561BC737C2469B34F275502BC0BD7AB018506FD8DD6A9477F1588C2F76FD82B2AD3740E7F161632C66B961737EB70E9B44F362F73C1F874F7C06C5370297E975D25E004D6090BD119915694AFB57427DDE7F50C81B9A1812E10FA39A01E2F2FF18C96FADEA62BF08FAB027A31D84E4C0267AF7E880B5A0608683542E9895DB15FA1ADA9F1D28569C8E27662CE912CD1869227F542C1F228C6A2226D4AC24673994AA453BF21A1961D17C7E29B297E8AF7A71C4E2957A603900A3B4947B7B59A70767EB9106C043A48EEFAC3CCDC0F78F559CDBE64328E3C21D33D30E6AAFF638761F988CD99C59ECBAC4276ACE22062F6903B4B78B45917829AAA0CF11D04272EB44385A3479AD7B6E3E94126CC35AE082A73AAE991670C5145576789B43055B5F9D457523B16032CC65B679BD5AA08657D719EAC3D0345812BFA599249E4719AA2DF1507916FA735535781F053C4CB92D28007CC8D621E571E957AED705C2D11724E6D4A3BE268FDCCA230A1BE9EDE75429F0B5F |
289 | 20170701082405 2 6 100 7679 2 E411B879FDA69428A30BDE74B417706E5936E16C5E1F2B64A07EAE1D69C857C23126701460740D93467EB3A3386827E658069CAC4D55CC4929493C193D53A0D91141135B2F0B19E659BB541883E569D38B329761EDF3C409D34A49870356F3723AD2F720383E49B1752B837DF80F48632A469A0A96AC8F02E5B766B590D722B5BD3ED9191BB70C1D4044A3D5CE850489216C3184D73BAE2B655D76B30EC1851951A756E2A45CD1FF82A83BDC1803005034BEB2EAC35FF7362831D8FBE02E07B1CCA351D47AD65B5282151FB2711A880410CED2C1CF205CC2072F6F244189F5BDB3AFDBA7FB02DD21C99D1EF72C1EF8BC6C68A273D16CB2D3CA190C30BDDEEAD7CA2E519F3AF806B5CBD436B971C1F1981EB35CB4007D129F43E660F7E47E807C889A1DC5FEFA7C304DB41B36982FEFB7390DC6C8E9474D3EEB84B3F757C367475EB1B4CB5B86F9507090F2CB37533E2B96BBC6F75B3BF1F4CECF18F67E7492A681845CF5AFA1B70FB3B0A09CDD3375BCF716CBF2A594533D157CB6C4008CF8C4818C9418E44A995028487B0346BD399BFB431CA94B3FC2AF9822520153105ADACEBE719CC24D1D043AC2AC24BD41759AA452000C43CB885D5F0D71DC2451A2C5C04B0B085BD23B5295B7A109DCD729C34479D51EAB4617FDD163128B25F5803B262C3D97E2D63B3E84D85B67ECDFDE6FA377E208BD2EF867072D341AC731338268AD82285DD6D219DE44EB0588E477CBFCD5F5C068D2FA877339424F324012D346C3E2B3C4408E4FD84535C5D4EA02137ABE0426BC4C3AD6EABAA221579CBA22023F8204ECCC98D143652DEBF5869CD73A81C0E4C6FC9A22F9E648B6783AA1D0F0A1F76B1C4E8692339A6A259F3D8419CF7FD22A26023678BFE4F70C79E7F113882E6C7A0606C5AA9094DB161683E43CCEC8C73FEBC7B82617B90541C2BC15EBA18B55E430373CF21DD235BA332EE6D7A6D042BAB4DEF94939AAD2A1F6FD235B09CA6CCFB45A614C79F3C83253B82BB73826DD22127F3F14292A9B682D607D6C9313DF5324712F976C8978AEDC97B40095E66BF850BCB83F477E1F5AB045844EA5CA0652C7C2C284B90FFDCAE2D5F3C165F66FCE871A5D0AFAA158E77099BFA7A969C8F3425E326D24E7E875D588B5E652ED331ABE4A72AFF7D89CFA9D55116B2610AEA4D1D16BCE1FE8D22849827677FEC8EC9864F5A4B874E7AA3228E31DACECA3ED7E1F31675CCA03E599E748BBCA483821DDC5F1C7ED376EDE7A650AD06CE3FC4E76062354B7D89093EBBF9717CED067846349E8BBEEC4CDDE0907F2DD1C31125F1DBB7B9A94E07677C4EBC756A5ED3D8DB30FB5772328272C6D1B5FB48B | 289 | 20171206024048 2 6 100 6143 5 EF730E8C844746DF23D55A6C9508EF59F158850FF4A3A24B3E29C95547FE16E3C3F7269D4096406935222EDC51BFDFE89B454D8C02F868FB297A1FBFEB61A5392779A6C51AF8F9068CC579276D045FF317D9B7540D9A39FA936004991CB06BA169012F75BAF0B8D6203470AF1BE5569341E462DF72FF4AFD9C24BCB7584C71C1766DFDD74FE13D98C176DC64979F4720C0A996226948C9DE5E1890C2E703168AB3B33D50C395F13CDE094300C4BB0ED86352950C238DDEB1A8412A2409B6C487F9CBBB110A754A7B4985CF55DE4FC5137CDF13F9B0E10768DF0A28D6628DFEC684A25439E5C943718E4E4CFC89A3DCE1B747F77A0CE08B98AC92705E8DD3A6EDD18FAEA2FBB4988C3CC947C8206DD67CF44BEF69B617E781E93501877F81E4CC2263DB0B5EEEFFF3FCFCD2AB6E34B724D755A9D5025C978AA679D806318EF9F81787D3C69FB2D25B0382A3A96F44216791D41CCC3DF04EBD19B84858F0935C1C774F4685C8114EBCA8C71946C35CB42B82AD56541E3B4AB0A47E0AD8FCF9073BCFB801EA84DDF5DF4426578561BC737C2469B34F275502BC0BD7AB018506FD8DD6A9477F1588C2F76FD82B2AD3740E7F161632C66B961737EB70E9B44F362F73C1F874F7C06C5370297E975D25E004D6090BD119915694AFB57427DDE7F50C81B9A1812E10FA39A01E2F2FF18C96FADEA62BF08FAB027A31D84E4C0267AF7E880B5A0608683542E9895DB15FA1ADA9F1D28569C8E27662CE912CD1869227F542C1F228C6A2226D4AC24673994AA453BF21A1961D17C7E29B297E8AF7A71C4E2957A603900A3B4947B7B59A70767EB9106C043A48EEFAC3CCDC0F78F559CDBE64328E3C21D33D30E6AAFF638761F988CD99C59ECBAC4276ACE22062F6903B4B78B45917829AAA0CF11D04272EB44385A3479AD7B6E3E94126CC35AE082A73AAE991670C5145576789B43055B5F9D457523B16032CC65B679BD5AA08657D719EAC3D0345812BFA599249E4719AA2DF1507916FA735535781F053C4CB92D28007CC8D621E571E957AED705C2D11724E6D4A3BE268FDCCA230A1BE9EDE7545C299D7 |
290 | 20170701092427 2 6 100 7679 5 E411B879FDA69428A30BDE74B417706E5936E16C5E1F2B64A07EAE1D69C857C23126701460740D93467EB3A3386827E658069CAC4D55CC4929493C193D53A0D91141135B2F0B19E659BB541883E569D38B329761EDF3C409D34A49870356F3723AD2F720383E49B1752B837DF80F48632A469A0A96AC8F02E5B766B590D722B5BD3ED9191BB70C1D4044A3D5CE850489216C3184D73BAE2B655D76B30EC1851951A756E2A45CD1FF82A83BDC1803005034BEB2EAC35FF7362831D8FBE02E07B1CCA351D47AD65B5282151FB2711A880410CED2C1CF205CC2072F6F244189F5BDB3AFDBA7FB02DD21C99D1EF72C1EF8BC6C68A273D16CB2D3CA190C30BDDEEAD7CA2E519F3AF806B5CBD436B971C1F1981EB35CB4007D129F43E660F7E47E807C889A1DC5FEFA7C304DB41B36982FEFB7390DC6C8E9474D3EEB84B3F757C367475EB1B4CB5B86F9507090F2CB37533E2B96BBC6F75B3BF1F4CECF18F67E7492A681845CF5AFA1B70FB3B0A09CDD3375BCF716CBF2A594533D157CB6C4008CF8C4818C9418E44A995028487B0346BD399BFB431CA94B3FC2AF9822520153105ADACEBE719CC24D1D043AC2AC24BD41759AA452000C43CB885D5F0D71DC2451A2C5C04B0B085BD23B5295B7A109DCD729C34479D51EAB4617FDD163128B25F5803B262C3D97E2D63B3E84D85B67ECDFDE6FA377E208BD2EF867072D341AC731338268AD82285DD6D219DE44EB0588E477CBFCD5F5C068D2FA877339424F324012D346C3E2B3C4408E4FD84535C5D4EA02137ABE0426BC4C3AD6EABAA221579CBA22023F8204ECCC98D143652DEBF5869CD73A81C0E4C6FC9A22F9E648B6783AA1D0F0A1F76B1C4E8692339A6A259F3D8419CF7FD22A26023678BFE4F70C79E7F113882E6C7A0606C5AA9094DB161683E43CCEC8C73FEBC7B82617B90541C2BC15EBA18B55E430373CF21DD235BA332EE6D7A6D042BAB4DEF94939AAD2A1F6FD235B09CA6CCFB45A614C79F3C83253B82BB73826DD22127F3F14292A9B682D607D6C9313DF5324712F976C8978AEDC97B40095E66BF850BCB83F477E1F5AB045844EA5CA0652C7C2C284B90FFDCAE2D5F3C165F66FCE871A5D0AFAA158E77099BFA7A969C8F3425E326D24E7E875D588B5E652ED331ABE4A72AFF7D89CFA9D55116B2610AEA4D1D16BCE1FE8D22849827677FEC8EC9864F5A4B874E7AA3228E31DACECA3ED7E1F31675CCA03E599E748BBCA483821DDC5F1C7ED376EDE7A650AD06CE3FC4E76062354B7D89093EBBF9717CED067846349E8BBEEC4CDDE0907F2DD1C31125F1DBB7B9A94E07677C4EBC756A5ED3D8DB30FB5772328272C6D1C2B0E47 | 290 | 20171206032820 2 6 100 6143 2 EF730E8C844746DF23D55A6C9508EF59F158850FF4A3A24B3E29C95547FE16E3C3F7269D4096406935222EDC51BFDFE89B454D8C02F868FB297A1FBFEB61A5392779A6C51AF8F9068CC579276D045FF317D9B7540D9A39FA936004991CB06BA169012F75BAF0B8D6203470AF1BE5569341E462DF72FF4AFD9C24BCB7584C71C1766DFDD74FE13D98C176DC64979F4720C0A996226948C9DE5E1890C2E703168AB3B33D50C395F13CDE094300C4BB0ED86352950C238DDEB1A8412A2409B6C487F9CBBB110A754A7B4985CF55DE4FC5137CDF13F9B0E10768DF0A28D6628DFEC684A25439E5C943718E4E4CFC89A3DCE1B747F77A0CE08B98AC92705E8DD3A6EDD18FAEA2FBB4988C3CC947C8206DD67CF44BEF69B617E781E93501877F81E4CC2263DB0B5EEEFFF3FCFCD2AB6E34B724D755A9D5025C978AA679D806318EF9F81787D3C69FB2D25B0382A3A96F44216791D41CCC3DF04EBD19B84858F0935C1C774F4685C8114EBCA8C71946C35CB42B82AD56541E3B4AB0A47E0AD8FCF9073BCFB801EA84DDF5DF4426578561BC737C2469B34F275502BC0BD7AB018506FD8DD6A9477F1588C2F76FD82B2AD3740E7F161632C66B961737EB70E9B44F362F73C1F874F7C06C5370297E975D25E004D6090BD119915694AFB57427DDE7F50C81B9A1812E10FA39A01E2F2FF18C96FADEA62BF08FAB027A31D84E4C0267AF7E880B5A0608683542E9895DB15FA1ADA9F1D28569C8E27662CE912CD1869227F542C1F228C6A2226D4AC24673994AA453BF21A1961D17C7E29B297E8AF7A71C4E2957A603900A3B4947B7B59A70767EB9106C043A48EEFAC3CCDC0F78F559CDBE64328E3C21D33D30E6AAFF638761F988CD99C59ECBAC4276ACE22062F6903B4B78B45917829AAA0CF11D04272EB44385A3479AD7B6E3E94126CC35AE082A73AAE991670C5145576789B43055B5F9D457523B16032CC65B679BD5AA08657D719EAC3D0345812BFA599249E4719AA2DF1507916FA735535781F053C4CB92D28007CC8D621E571E957AED705C2D11724E6D4A3BE268FDCCA230A1BE9EDE7546E1FE43 |
291 | 20170701161137 2 6 100 7679 2 E411B879FDA69428A30BDE74B417706E5936E16C5E1F2B64A07EAE1D69C857C23126701460740D93467EB3A3386827E658069CAC4D55CC4929493C193D53A0D91141135B2F0B19E659BB541883E569D38B329761EDF3C409D34A49870356F3723AD2F720383E49B1752B837DF80F48632A469A0A96AC8F02E5B766B590D722B5BD3ED9191BB70C1D4044A3D5CE850489216C3184D73BAE2B655D76B30EC1851951A756E2A45CD1FF82A83BDC1803005034BEB2EAC35FF7362831D8FBE02E07B1CCA351D47AD65B5282151FB2711A880410CED2C1CF205CC2072F6F244189F5BDB3AFDBA7FB02DD21C99D1EF72C1EF8BC6C68A273D16CB2D3CA190C30BDDEEAD7CA2E519F3AF806B5CBD436B971C1F1981EB35CB4007D129F43E660F7E47E807C889A1DC5FEFA7C304DB41B36982FEFB7390DC6C8E9474D3EEB84B3F757C367475EB1B4CB5B86F9507090F2CB37533E2B96BBC6F75B3BF1F4CECF18F67E7492A681845CF5AFA1B70FB3B0A09CDD3375BCF716CBF2A594533D157CB6C4008CF8C4818C9418E44A995028487B0346BD399BFB431CA94B3FC2AF9822520153105ADACEBE719CC24D1D043AC2AC24BD41759AA452000C43CB885D5F0D71DC2451A2C5C04B0B085BD23B5295B7A109DCD729C34479D51EAB4617FDD163128B25F5803B262C3D97E2D63B3E84D85B67ECDFDE6FA377E208BD2EF867072D341AC731338268AD82285DD6D219DE44EB0588E477CBFCD5F5C068D2FA877339424F324012D346C3E2B3C4408E4FD84535C5D4EA02137ABE0426BC4C3AD6EABAA221579CBA22023F8204ECCC98D143652DEBF5869CD73A81C0E4C6FC9A22F9E648B6783AA1D0F0A1F76B1C4E8692339A6A259F3D8419CF7FD22A26023678BFE4F70C79E7F113882E6C7A0606C5AA9094DB161683E43CCEC8C73FEBC7B82617B90541C2BC15EBA18B55E430373CF21DD235BA332EE6D7A6D042BAB4DEF94939AAD2A1F6FD235B09CA6CCFB45A614C79F3C83253B82BB73826DD22127F3F14292A9B682D607D6C9313DF5324712F976C8978AEDC97B40095E66BF850BCB83F477E1F5AB045844EA5CA0652C7C2C284B90FFDCAE2D5F3C165F66FCE871A5D0AFAA158E77099BFA7A969C8F3425E326D24E7E875D588B5E652ED331ABE4A72AFF7D89CFA9D55116B2610AEA4D1D16BCE1FE8D22849827677FEC8EC9864F5A4B874E7AA3228E31DACECA3ED7E1F31675CCA03E599E748BBCA483821DDC5F1C7ED376EDE7A650AD06CE3FC4E76062354B7D89093EBBF9717CED067846349E8BBEEC4CDDE0907F2DD1C31125F1DBB7B9A94E07677C4EBC756A5ED3D8DB30FB5772328272C6D21ABD21B | 291 | 20171206033917 2 6 100 6143 5 EF730E8C844746DF23D55A6C9508EF59F158850FF4A3A24B3E29C95547FE16E3C3F7269D4096406935222EDC51BFDFE89B454D8C02F868FB297A1FBFEB61A5392779A6C51AF8F9068CC579276D045FF317D9B7540D9A39FA936004991CB06BA169012F75BAF0B8D6203470AF1BE5569341E462DF72FF4AFD9C24BCB7584C71C1766DFDD74FE13D98C176DC64979F4720C0A996226948C9DE5E1890C2E703168AB3B33D50C395F13CDE094300C4BB0ED86352950C238DDEB1A8412A2409B6C487F9CBBB110A754A7B4985CF55DE4FC5137CDF13F9B0E10768DF0A28D6628DFEC684A25439E5C943718E4E4CFC89A3DCE1B747F77A0CE08B98AC92705E8DD3A6EDD18FAEA2FBB4988C3CC947C8206DD67CF44BEF69B617E781E93501877F81E4CC2263DB0B5EEEFFF3FCFCD2AB6E34B724D755A9D5025C978AA679D806318EF9F81787D3C69FB2D25B0382A3A96F44216791D41CCC3DF04EBD19B84858F0935C1C774F4685C8114EBCA8C71946C35CB42B82AD56541E3B4AB0A47E0AD8FCF9073BCFB801EA84DDF5DF4426578561BC737C2469B34F275502BC0BD7AB018506FD8DD6A9477F1588C2F76FD82B2AD3740E7F161632C66B961737EB70E9B44F362F73C1F874F7C06C5370297E975D25E004D6090BD119915694AFB57427DDE7F50C81B9A1812E10FA39A01E2F2FF18C96FADEA62BF08FAB027A31D84E4C0267AF7E880B5A0608683542E9895DB15FA1ADA9F1D28569C8E27662CE912CD1869227F542C1F228C6A2226D4AC24673994AA453BF21A1961D17C7E29B297E8AF7A71C4E2957A603900A3B4947B7B59A70767EB9106C043A48EEFAC3CCDC0F78F559CDBE64328E3C21D33D30E6AAFF638761F988CD99C59ECBAC4276ACE22062F6903B4B78B45917829AAA0CF11D04272EB44385A3479AD7B6E3E94126CC35AE082A73AAE991670C5145576789B43055B5F9D457523B16032CC65B679BD5AA08657D719EAC3D0345812BFA599249E4719AA2DF1507916FA735535781F053C4CB92D28007CC8D621E571E957AED705C2D11724E6D4A3BE268FDCCA230A1BE9EDE75471CD4D7 |
292 | 20170702022204 2 6 100 7679 2 E411B879FDA69428A30BDE74B417706E5936E16C5E1F2B64A07EAE1D69C857C23126701460740D93467EB3A3386827E658069CAC4D55CC4929493C193D53A0D91141135B2F0B19E659BB541883E569D38B329761EDF3C409D34A49870356F3723AD2F720383E49B1752B837DF80F48632A469A0A96AC8F02E5B766B590D722B5BD3ED9191BB70C1D4044A3D5CE850489216C3184D73BAE2B655D76B30EC1851951A756E2A45CD1FF82A83BDC1803005034BEB2EAC35FF7362831D8FBE02E07B1CCA351D47AD65B5282151FB2711A880410CED2C1CF205CC2072F6F244189F5BDB3AFDBA7FB02DD21C99D1EF72C1EF8BC6C68A273D16CB2D3CA190C30BDDEEAD7CA2E519F3AF806B5CBD436B971C1F1981EB35CB4007D129F43E660F7E47E807C889A1DC5FEFA7C304DB41B36982FEFB7390DC6C8E9474D3EEB84B3F757C367475EB1B4CB5B86F9507090F2CB37533E2B96BBC6F75B3BF1F4CECF18F67E7492A681845CF5AFA1B70FB3B0A09CDD3375BCF716CBF2A594533D157CB6C4008CF8C4818C9418E44A995028487B0346BD399BFB431CA94B3FC2AF9822520153105ADACEBE719CC24D1D043AC2AC24BD41759AA452000C43CB885D5F0D71DC2451A2C5C04B0B085BD23B5295B7A109DCD729C34479D51EAB4617FDD163128B25F5803B262C3D97E2D63B3E84D85B67ECDFDE6FA377E208BD2EF867072D341AC731338268AD82285DD6D219DE44EB0588E477CBFCD5F5C068D2FA877339424F324012D346C3E2B3C4408E4FD84535C5D4EA02137ABE0426BC4C3AD6EABAA221579CBA22023F8204ECCC98D143652DEBF5869CD73A81C0E4C6FC9A22F9E648B6783AA1D0F0A1F76B1C4E8692339A6A259F3D8419CF7FD22A26023678BFE4F70C79E7F113882E6C7A0606C5AA9094DB161683E43CCEC8C73FEBC7B82617B90541C2BC15EBA18B55E430373CF21DD235BA332EE6D7A6D042BAB4DEF94939AAD2A1F6FD235B09CA6CCFB45A614C79F3C83253B82BB73826DD22127F3F14292A9B682D607D6C9313DF5324712F976C8978AEDC97B40095E66BF850BCB83F477E1F5AB045844EA5CA0652C7C2C284B90FFDCAE2D5F3C165F66FCE871A5D0AFAA158E77099BFA7A969C8F3425E326D24E7E875D588B5E652ED331ABE4A72AFF7D89CFA9D55116B2610AEA4D1D16BCE1FE8D22849827677FEC8EC9864F5A4B874E7AA3228E31DACECA3ED7E1F31675CCA03E599E748BBCA483821DDC5F1C7ED376EDE7A650AD06CE3FC4E76062354B7D89093EBBF9717CED067846349E8BBEEC4CDDE0907F2DD1C31125F1DBB7B9A94E07677C4EBC756A5ED3D8DB30FB5772328272C6D29CF7033 | 292 | 20171206045008 2 6 100 6143 5 EF730E8C844746DF23D55A6C9508EF59F158850FF4A3A24B3E29C95547FE16E3C3F7269D4096406935222EDC51BFDFE89B454D8C02F868FB297A1FBFEB61A5392779A6C51AF8F9068CC579276D045FF317D9B7540D9A39FA936004991CB06BA169012F75BAF0B8D6203470AF1BE5569341E462DF72FF4AFD9C24BCB7584C71C1766DFDD74FE13D98C176DC64979F4720C0A996226948C9DE5E1890C2E703168AB3B33D50C395F13CDE094300C4BB0ED86352950C238DDEB1A8412A2409B6C487F9CBBB110A754A7B4985CF55DE4FC5137CDF13F9B0E10768DF0A28D6628DFEC684A25439E5C943718E4E4CFC89A3DCE1B747F77A0CE08B98AC92705E8DD3A6EDD18FAEA2FBB4988C3CC947C8206DD67CF44BEF69B617E781E93501877F81E4CC2263DB0B5EEEFFF3FCFCD2AB6E34B724D755A9D5025C978AA679D806318EF9F81787D3C69FB2D25B0382A3A96F44216791D41CCC3DF04EBD19B84858F0935C1C774F4685C8114EBCA8C71946C35CB42B82AD56541E3B4AB0A47E0AD8FCF9073BCFB801EA84DDF5DF4426578561BC737C2469B34F275502BC0BD7AB018506FD8DD6A9477F1588C2F76FD82B2AD3740E7F161632C66B961737EB70E9B44F362F73C1F874F7C06C5370297E975D25E004D6090BD119915694AFB57427DDE7F50C81B9A1812E10FA39A01E2F2FF18C96FADEA62BF08FAB027A31D84E4C0267AF7E880B5A0608683542E9895DB15FA1ADA9F1D28569C8E27662CE912CD1869227F542C1F228C6A2226D4AC24673994AA453BF21A1961D17C7E29B297E8AF7A71C4E2957A603900A3B4947B7B59A70767EB9106C043A48EEFAC3CCDC0F78F559CDBE64328E3C21D33D30E6AAFF638761F988CD99C59ECBAC4276ACE22062F6903B4B78B45917829AAA0CF11D04272EB44385A3479AD7B6E3E94126CC35AE082A73AAE991670C5145576789B43055B5F9D457523B16032CC65B679BD5AA08657D719EAC3D0345812BFA599249E4719AA2DF1507916FA735535781F053C4CB92D28007CC8D621E571E957AED705C2D11724E6D4A3BE268FDCCA230A1BE9EDE7548C1EC97 |
293 | 20170702023811 2 6 100 7679 5 E411B879FDA69428A30BDE74B417706E5936E16C5E1F2B64A07EAE1D69C857C23126701460740D93467EB3A3386827E658069CAC4D55CC4929493C193D53A0D91141135B2F0B19E659BB541883E569D38B329761EDF3C409D34A49870356F3723AD2F720383E49B1752B837DF80F48632A469A0A96AC8F02E5B766B590D722B5BD3ED9191BB70C1D4044A3D5CE850489216C3184D73BAE2B655D76B30EC1851951A756E2A45CD1FF82A83BDC1803005034BEB2EAC35FF7362831D8FBE02E07B1CCA351D47AD65B5282151FB2711A880410CED2C1CF205CC2072F6F244189F5BDB3AFDBA7FB02DD21C99D1EF72C1EF8BC6C68A273D16CB2D3CA190C30BDDEEAD7CA2E519F3AF806B5CBD436B971C1F1981EB35CB4007D129F43E660F7E47E807C889A1DC5FEFA7C304DB41B36982FEFB7390DC6C8E9474D3EEB84B3F757C367475EB1B4CB5B86F9507090F2CB37533E2B96BBC6F75B3BF1F4CECF18F67E7492A681845CF5AFA1B70FB3B0A09CDD3375BCF716CBF2A594533D157CB6C4008CF8C4818C9418E44A995028487B0346BD399BFB431CA94B3FC2AF9822520153105ADACEBE719CC24D1D043AC2AC24BD41759AA452000C43CB885D5F0D71DC2451A2C5C04B0B085BD23B5295B7A109DCD729C34479D51EAB4617FDD163128B25F5803B262C3D97E2D63B3E84D85B67ECDFDE6FA377E208BD2EF867072D341AC731338268AD82285DD6D219DE44EB0588E477CBFCD5F5C068D2FA877339424F324012D346C3E2B3C4408E4FD84535C5D4EA02137ABE0426BC4C3AD6EABAA221579CBA22023F8204ECCC98D143652DEBF5869CD73A81C0E4C6FC9A22F9E648B6783AA1D0F0A1F76B1C4E8692339A6A259F3D8419CF7FD22A26023678BFE4F70C79E7F113882E6C7A0606C5AA9094DB161683E43CCEC8C73FEBC7B82617B90541C2BC15EBA18B55E430373CF21DD235BA332EE6D7A6D042BAB4DEF94939AAD2A1F6FD235B09CA6CCFB45A614C79F3C83253B82BB73826DD22127F3F14292A9B682D607D6C9313DF5324712F976C8978AEDC97B40095E66BF850BCB83F477E1F5AB045844EA5CA0652C7C2C284B90FFDCAE2D5F3C165F66FCE871A5D0AFAA158E77099BFA7A969C8F3425E326D24E7E875D588B5E652ED331ABE4A72AFF7D89CFA9D55116B2610AEA4D1D16BCE1FE8D22849827677FEC8EC9864F5A4B874E7AA3228E31DACECA3ED7E1F31675CCA03E599E748BBCA483821DDC5F1C7ED376EDE7A650AD06CE3FC4E76062354B7D89093EBBF9717CED067846349E8BBEEC4CDDE0907F2DD1C31125F1DBB7B9A94E07677C4EBC756A5ED3D8DB30FB5772328272C6D29FB9AAF | 293 | 20171206052722 2 6 100 6143 2 EF730E8C844746DF23D55A6C9508EF59F158850FF4A3A24B3E29C95547FE16E3C3F7269D4096406935222EDC51BFDFE89B454D8C02F868FB297A1FBFEB61A5392779A6C51AF8F9068CC579276D045FF317D9B7540D9A39FA936004991CB06BA169012F75BAF0B8D6203470AF1BE5569341E462DF72FF4AFD9C24BCB7584C71C1766DFDD74FE13D98C176DC64979F4720C0A996226948C9DE5E1890C2E703168AB3B33D50C395F13CDE094300C4BB0ED86352950C238DDEB1A8412A2409B6C487F9CBBB110A754A7B4985CF55DE4FC5137CDF13F9B0E10768DF0A28D6628DFEC684A25439E5C943718E4E4CFC89A3DCE1B747F77A0CE08B98AC92705E8DD3A6EDD18FAEA2FBB4988C3CC947C8206DD67CF44BEF69B617E781E93501877F81E4CC2263DB0B5EEEFFF3FCFCD2AB6E34B724D755A9D5025C978AA679D806318EF9F81787D3C69FB2D25B0382A3A96F44216791D41CCC3DF04EBD19B84858F0935C1C774F4685C8114EBCA8C71946C35CB42B82AD56541E3B4AB0A47E0AD8FCF9073BCFB801EA84DDF5DF4426578561BC737C2469B34F275502BC0BD7AB018506FD8DD6A9477F1588C2F76FD82B2AD3740E7F161632C66B961737EB70E9B44F362F73C1F874F7C06C5370297E975D25E004D6090BD119915694AFB57427DDE7F50C81B9A1812E10FA39A01E2F2FF18C96FADEA62BF08FAB027A31D84E4C0267AF7E880B5A0608683542E9895DB15FA1ADA9F1D28569C8E27662CE912CD1869227F542C1F228C6A2226D4AC24673994AA453BF21A1961D17C7E29B297E8AF7A71C4E2957A603900A3B4947B7B59A70767EB9106C043A48EEFAC3CCDC0F78F559CDBE64328E3C21D33D30E6AAFF638761F988CD99C59ECBAC4276ACE22062F6903B4B78B45917829AAA0CF11D04272EB44385A3479AD7B6E3E94126CC35AE082A73AAE991670C5145576789B43055B5F9D457523B16032CC65B679BD5AA08657D719EAC3D0345812BFA599249E4719AA2DF1507916FA735535781F053C4CB92D28007CC8D621E571E957AED705C2D11724E6D4A3BE268FDCCA230A1BE9EDE7549823083 |
294 | 20170702062241 2 6 100 7679 2 E411B879FDA69428A30BDE74B417706E5936E16C5E1F2B64A07EAE1D69C857C23126701460740D93467EB3A3386827E658069CAC4D55CC4929493C193D53A0D91141135B2F0B19E659BB541883E569D38B329761EDF3C409D34A49870356F3723AD2F720383E49B1752B837DF80F48632A469A0A96AC8F02E5B766B590D722B5BD3ED9191BB70C1D4044A3D5CE850489216C3184D73BAE2B655D76B30EC1851951A756E2A45CD1FF82A83BDC1803005034BEB2EAC35FF7362831D8FBE02E07B1CCA351D47AD65B5282151FB2711A880410CED2C1CF205CC2072F6F244189F5BDB3AFDBA7FB02DD21C99D1EF72C1EF8BC6C68A273D16CB2D3CA190C30BDDEEAD7CA2E519F3AF806B5CBD436B971C1F1981EB35CB4007D129F43E660F7E47E807C889A1DC5FEFA7C304DB41B36982FEFB7390DC6C8E9474D3EEB84B3F757C367475EB1B4CB5B86F9507090F2CB37533E2B96BBC6F75B3BF1F4CECF18F67E7492A681845CF5AFA1B70FB3B0A09CDD3375BCF716CBF2A594533D157CB6C4008CF8C4818C9418E44A995028487B0346BD399BFB431CA94B3FC2AF9822520153105ADACEBE719CC24D1D043AC2AC24BD41759AA452000C43CB885D5F0D71DC2451A2C5C04B0B085BD23B5295B7A109DCD729C34479D51EAB4617FDD163128B25F5803B262C3D97E2D63B3E84D85B67ECDFDE6FA377E208BD2EF867072D341AC731338268AD82285DD6D219DE44EB0588E477CBFCD5F5C068D2FA877339424F324012D346C3E2B3C4408E4FD84535C5D4EA02137ABE0426BC4C3AD6EABAA221579CBA22023F8204ECCC98D143652DEBF5869CD73A81C0E4C6FC9A22F9E648B6783AA1D0F0A1F76B1C4E8692339A6A259F3D8419CF7FD22A26023678BFE4F70C79E7F113882E6C7A0606C5AA9094DB161683E43CCEC8C73FEBC7B82617B90541C2BC15EBA18B55E430373CF21DD235BA332EE6D7A6D042BAB4DEF94939AAD2A1F6FD235B09CA6CCFB45A614C79F3C83253B82BB73826DD22127F3F14292A9B682D607D6C9313DF5324712F976C8978AEDC97B40095E66BF850BCB83F477E1F5AB045844EA5CA0652C7C2C284B90FFDCAE2D5F3C165F66FCE871A5D0AFAA158E77099BFA7A969C8F3425E326D24E7E875D588B5E652ED331ABE4A72AFF7D89CFA9D55116B2610AEA4D1D16BCE1FE8D22849827677FEC8EC9864F5A4B874E7AA3228E31DACECA3ED7E1F31675CCA03E599E748BBCA483821DDC5F1C7ED376EDE7A650AD06CE3FC4E76062354B7D89093EBBF9717CED067846349E8BBEEC4CDDE0907F2DD1C31125F1DBB7B9A94E07677C4EBC756A5ED3D8DB30FB5772328272C6D2CED4213 | 294 | 20171206065709 2 6 100 6143 5 EF730E8C844746DF23D55A6C9508EF59F158850FF4A3A24B3E29C95547FE16E3C3F7269D4096406935222EDC51BFDFE89B454D8C02F868FB297A1FBFEB61A5392779A6C51AF8F9068CC579276D045FF317D9B7540D9A39FA936004991CB06BA169012F75BAF0B8D6203470AF1BE5569341E462DF72FF4AFD9C24BCB7584C71C1766DFDD74FE13D98C176DC64979F4720C0A996226948C9DE5E1890C2E703168AB3B33D50C395F13CDE094300C4BB0ED86352950C238DDEB1A8412A2409B6C487F9CBBB110A754A7B4985CF55DE4FC5137CDF13F9B0E10768DF0A28D6628DFEC684A25439E5C943718E4E4CFC89A3DCE1B747F77A0CE08B98AC92705E8DD3A6EDD18FAEA2FBB4988C3CC947C8206DD67CF44BEF69B617E781E93501877F81E4CC2263DB0B5EEEFFF3FCFCD2AB6E34B724D755A9D5025C978AA679D806318EF9F81787D3C69FB2D25B0382A3A96F44216791D41CCC3DF04EBD19B84858F0935C1C774F4685C8114EBCA8C71946C35CB42B82AD56541E3B4AB0A47E0AD8FCF9073BCFB801EA84DDF5DF4426578561BC737C2469B34F275502BC0BD7AB018506FD8DD6A9477F1588C2F76FD82B2AD3740E7F161632C66B961737EB70E9B44F362F73C1F874F7C06C5370297E975D25E004D6090BD119915694AFB57427DDE7F50C81B9A1812E10FA39A01E2F2FF18C96FADEA62BF08FAB027A31D84E4C0267AF7E880B5A0608683542E9895DB15FA1ADA9F1D28569C8E27662CE912CD1869227F542C1F228C6A2226D4AC24673994AA453BF21A1961D17C7E29B297E8AF7A71C4E2957A603900A3B4947B7B59A70767EB9106C043A48EEFAC3CCDC0F78F559CDBE64328E3C21D33D30E6AAFF638761F988CD99C59ECBAC4276ACE22062F6903B4B78B45917829AAA0CF11D04272EB44385A3479AD7B6E3E94126CC35AE082A73AAE991670C5145576789B43055B5F9D457523B16032CC65B679BD5AA08657D719EAC3D0345812BFA599249E4719AA2DF1507916FA735535781F053C4CB92D28007CC8D621E571E957AED705C2D11724E6D4A3BE268FDCCA230A1BE9EDE754B6C9C7F |
295 | 20170702082528 2 6 100 7679 5 E411B879FDA69428A30BDE74B417706E5936E16C5E1F2B64A07EAE1D69C857C23126701460740D93467EB3A3386827E658069CAC4D55CC4929493C193D53A0D91141135B2F0B19E659BB541883E569D38B329761EDF3C409D34A49870356F3723AD2F720383E49B1752B837DF80F48632A469A0A96AC8F02E5B766B590D722B5BD3ED9191BB70C1D4044A3D5CE850489216C3184D73BAE2B655D76B30EC1851951A756E2A45CD1FF82A83BDC1803005034BEB2EAC35FF7362831D8FBE02E07B1CCA351D47AD65B5282151FB2711A880410CED2C1CF205CC2072F6F244189F5BDB3AFDBA7FB02DD21C99D1EF72C1EF8BC6C68A273D16CB2D3CA190C30BDDEEAD7CA2E519F3AF806B5CBD436B971C1F1981EB35CB4007D129F43E660F7E47E807C889A1DC5FEFA7C304DB41B36982FEFB7390DC6C8E9474D3EEB84B3F757C367475EB1B4CB5B86F9507090F2CB37533E2B96BBC6F75B3BF1F4CECF18F67E7492A681845CF5AFA1B70FB3B0A09CDD3375BCF716CBF2A594533D157CB6C4008CF8C4818C9418E44A995028487B0346BD399BFB431CA94B3FC2AF9822520153105ADACEBE719CC24D1D043AC2AC24BD41759AA452000C43CB885D5F0D71DC2451A2C5C04B0B085BD23B5295B7A109DCD729C34479D51EAB4617FDD163128B25F5803B262C3D97E2D63B3E84D85B67ECDFDE6FA377E208BD2EF867072D341AC731338268AD82285DD6D219DE44EB0588E477CBFCD5F5C068D2FA877339424F324012D346C3E2B3C4408E4FD84535C5D4EA02137ABE0426BC4C3AD6EABAA221579CBA22023F8204ECCC98D143652DEBF5869CD73A81C0E4C6FC9A22F9E648B6783AA1D0F0A1F76B1C4E8692339A6A259F3D8419CF7FD22A26023678BFE4F70C79E7F113882E6C7A0606C5AA9094DB161683E43CCEC8C73FEBC7B82617B90541C2BC15EBA18B55E430373CF21DD235BA332EE6D7A6D042BAB4DEF94939AAD2A1F6FD235B09CA6CCFB45A614C79F3C83253B82BB73826DD22127F3F14292A9B682D607D6C9313DF5324712F976C8978AEDC97B40095E66BF850BCB83F477E1F5AB045844EA5CA0652C7C2C284B90FFDCAE2D5F3C165F66FCE871A5D0AFAA158E77099BFA7A969C8F3425E326D24E7E875D588B5E652ED331ABE4A72AFF7D89CFA9D55116B2610AEA4D1D16BCE1FE8D22849827677FEC8EC9864F5A4B874E7AA3228E31DACECA3ED7E1F31675CCA03E599E748BBCA483821DDC5F1C7ED376EDE7A650AD06CE3FC4E76062354B7D89093EBBF9717CED067846349E8BBEEC4CDDE0907F2DD1C31125F1DBB7B9A94E07677C4EBC756A5ED3D8DB30FB5772328272C6D2E88DA5F | 295 | 20171206083216 2 6 100 6143 5 EF730E8C844746DF23D55A6C9508EF59F158850FF4A3A24B3E29C95547FE16E3C3F7269D4096406935222EDC51BFDFE89B454D8C02F868FB297A1FBFEB61A5392779A6C51AF8F9068CC579276D045FF317D9B7540D9A39FA936004991CB06BA169012F75BAF0B8D6203470AF1BE5569341E462DF72FF4AFD9C24BCB7584C71C1766DFDD74FE13D98C176DC64979F4720C0A996226948C9DE5E1890C2E703168AB3B33D50C395F13CDE094300C4BB0ED86352950C238DDEB1A8412A2409B6C487F9CBBB110A754A7B4985CF55DE4FC5137CDF13F9B0E10768DF0A28D6628DFEC684A25439E5C943718E4E4CFC89A3DCE1B747F77A0CE08B98AC92705E8DD3A6EDD18FAEA2FBB4988C3CC947C8206DD67CF44BEF69B617E781E93501877F81E4CC2263DB0B5EEEFFF3FCFCD2AB6E34B724D755A9D5025C978AA679D806318EF9F81787D3C69FB2D25B0382A3A96F44216791D41CCC3DF04EBD19B84858F0935C1C774F4685C8114EBCA8C71946C35CB42B82AD56541E3B4AB0A47E0AD8FCF9073BCFB801EA84DDF5DF4426578561BC737C2469B34F275502BC0BD7AB018506FD8DD6A9477F1588C2F76FD82B2AD3740E7F161632C66B961737EB70E9B44F362F73C1F874F7C06C5370297E975D25E004D6090BD119915694AFB57427DDE7F50C81B9A1812E10FA39A01E2F2FF18C96FADEA62BF08FAB027A31D84E4C0267AF7E880B5A0608683542E9895DB15FA1ADA9F1D28569C8E27662CE912CD1869227F542C1F228C6A2226D4AC24673994AA453BF21A1961D17C7E29B297E8AF7A71C4E2957A603900A3B4947B7B59A70767EB9106C043A48EEFAC3CCDC0F78F559CDBE64328E3C21D33D30E6AAFF638761F988CD99C59ECBAC4276ACE22062F6903B4B78B45917829AAA0CF11D04272EB44385A3479AD7B6E3E94126CC35AE082A73AAE991670C5145576789B43055B5F9D457523B16032CC65B679BD5AA08657D719EAC3D0345812BFA599249E4719AA2DF1507916FA735535781F053C4CB92D28007CC8D621E571E957AED705C2D11724E6D4A3BE268FDCCA230A1BE9EDE754D96E15F |
296 | 20170702151719 2 6 100 7679 5 E411B879FDA69428A30BDE74B417706E5936E16C5E1F2B64A07EAE1D69C857C23126701460740D93467EB3A3386827E658069CAC4D55CC4929493C193D53A0D91141135B2F0B19E659BB541883E569D38B329761EDF3C409D34A49870356F3723AD2F720383E49B1752B837DF80F48632A469A0A96AC8F02E5B766B590D722B5BD3ED9191BB70C1D4044A3D5CE850489216C3184D73BAE2B655D76B30EC1851951A756E2A45CD1FF82A83BDC1803005034BEB2EAC35FF7362831D8FBE02E07B1CCA351D47AD65B5282151FB2711A880410CED2C1CF205CC2072F6F244189F5BDB3AFDBA7FB02DD21C99D1EF72C1EF8BC6C68A273D16CB2D3CA190C30BDDEEAD7CA2E519F3AF806B5CBD436B971C1F1981EB35CB4007D129F43E660F7E47E807C889A1DC5FEFA7C304DB41B36982FEFB7390DC6C8E9474D3EEB84B3F757C367475EB1B4CB5B86F9507090F2CB37533E2B96BBC6F75B3BF1F4CECF18F67E7492A681845CF5AFA1B70FB3B0A09CDD3375BCF716CBF2A594533D157CB6C4008CF8C4818C9418E44A995028487B0346BD399BFB431CA94B3FC2AF9822520153105ADACEBE719CC24D1D043AC2AC24BD41759AA452000C43CB885D5F0D71DC2451A2C5C04B0B085BD23B5295B7A109DCD729C34479D51EAB4617FDD163128B25F5803B262C3D97E2D63B3E84D85B67ECDFDE6FA377E208BD2EF867072D341AC731338268AD82285DD6D219DE44EB0588E477CBFCD5F5C068D2FA877339424F324012D346C3E2B3C4408E4FD84535C5D4EA02137ABE0426BC4C3AD6EABAA221579CBA22023F8204ECCC98D143652DEBF5869CD73A81C0E4C6FC9A22F9E648B6783AA1D0F0A1F76B1C4E8692339A6A259F3D8419CF7FD22A26023678BFE4F70C79E7F113882E6C7A0606C5AA9094DB161683E43CCEC8C73FEBC7B82617B90541C2BC15EBA18B55E430373CF21DD235BA332EE6D7A6D042BAB4DEF94939AAD2A1F6FD235B09CA6CCFB45A614C79F3C83253B82BB73826DD22127F3F14292A9B682D607D6C9313DF5324712F976C8978AEDC97B40095E66BF850BCB83F477E1F5AB045844EA5CA0652C7C2C284B90FFDCAE2D5F3C165F66FCE871A5D0AFAA158E77099BFA7A969C8F3425E326D24E7E875D588B5E652ED331ABE4A72AFF7D89CFA9D55116B2610AEA4D1D16BCE1FE8D22849827677FEC8EC9864F5A4B874E7AA3228E31DACECA3ED7E1F31675CCA03E599E748BBCA483821DDC5F1C7ED376EDE7A650AD06CE3FC4E76062354B7D89093EBBF9717CED067846349E8BBEEC4CDDE0907F2DD1C31125F1DBB7B9A94E07677C4EBC756A5ED3D8DB30FB5772328272C6D33FAA757 | 296 | 20171206085625 2 6 100 6143 5 EF730E8C844746DF23D55A6C9508EF59F158850FF4A3A24B3E29C95547FE16E3C3F7269D4096406935222EDC51BFDFE89B454D8C02F868FB297A1FBFEB61A5392779A6C51AF8F9068CC579276D045FF317D9B7540D9A39FA936004991CB06BA169012F75BAF0B8D6203470AF1BE5569341E462DF72FF4AFD9C24BCB7584C71C1766DFDD74FE13D98C176DC64979F4720C0A996226948C9DE5E1890C2E703168AB3B33D50C395F13CDE094300C4BB0ED86352950C238DDEB1A8412A2409B6C487F9CBBB110A754A7B4985CF55DE4FC5137CDF13F9B0E10768DF0A28D6628DFEC684A25439E5C943718E4E4CFC89A3DCE1B747F77A0CE08B98AC92705E8DD3A6EDD18FAEA2FBB4988C3CC947C8206DD67CF44BEF69B617E781E93501877F81E4CC2263DB0B5EEEFFF3FCFCD2AB6E34B724D755A9D5025C978AA679D806318EF9F81787D3C69FB2D25B0382A3A96F44216791D41CCC3DF04EBD19B84858F0935C1C774F4685C8114EBCA8C71946C35CB42B82AD56541E3B4AB0A47E0AD8FCF9073BCFB801EA84DDF5DF4426578561BC737C2469B34F275502BC0BD7AB018506FD8DD6A9477F1588C2F76FD82B2AD3740E7F161632C66B961737EB70E9B44F362F73C1F874F7C06C5370297E975D25E004D6090BD119915694AFB57427DDE7F50C81B9A1812E10FA39A01E2F2FF18C96FADEA62BF08FAB027A31D84E4C0267AF7E880B5A0608683542E9895DB15FA1ADA9F1D28569C8E27662CE912CD1869227F542C1F228C6A2226D4AC24673994AA453BF21A1961D17C7E29B297E8AF7A71C4E2957A603900A3B4947B7B59A70767EB9106C043A48EEFAC3CCDC0F78F559CDBE64328E3C21D33D30E6AAFF638761F988CD99C59ECBAC4276ACE22062F6903B4B78B45917829AAA0CF11D04272EB44385A3479AD7B6E3E94126CC35AE082A73AAE991670C5145576789B43055B5F9D457523B16032CC65B679BD5AA08657D719EAC3D0345812BFA599249E4719AA2DF1507916FA735535781F053C4CB92D28007CC8D621E571E957AED705C2D11724E6D4A3BE268FDCCA230A1BE9EDE754E17B6B7 |
297 | 20170702175101 2 6 100 7679 2 E411B879FDA69428A30BDE74B417706E5936E16C5E1F2B64A07EAE1D69C857C23126701460740D93467EB3A3386827E658069CAC4D55CC4929493C193D53A0D91141135B2F0B19E659BB541883E569D38B329761EDF3C409D34A49870356F3723AD2F720383E49B1752B837DF80F48632A469A0A96AC8F02E5B766B590D722B5BD3ED9191BB70C1D4044A3D5CE850489216C3184D73BAE2B655D76B30EC1851951A756E2A45CD1FF82A83BDC1803005034BEB2EAC35FF7362831D8FBE02E07B1CCA351D47AD65B5282151FB2711A880410CED2C1CF205CC2072F6F244189F5BDB3AFDBA7FB02DD21C99D1EF72C1EF8BC6C68A273D16CB2D3CA190C30BDDEEAD7CA2E519F3AF806B5CBD436B971C1F1981EB35CB4007D129F43E660F7E47E807C889A1DC5FEFA7C304DB41B36982FEFB7390DC6C8E9474D3EEB84B3F757C367475EB1B4CB5B86F9507090F2CB37533E2B96BBC6F75B3BF1F4CECF18F67E7492A681845CF5AFA1B70FB3B0A09CDD3375BCF716CBF2A594533D157CB6C4008CF8C4818C9418E44A995028487B0346BD399BFB431CA94B3FC2AF9822520153105ADACEBE719CC24D1D043AC2AC24BD41759AA452000C43CB885D5F0D71DC2451A2C5C04B0B085BD23B5295B7A109DCD729C34479D51EAB4617FDD163128B25F5803B262C3D97E2D63B3E84D85B67ECDFDE6FA377E208BD2EF867072D341AC731338268AD82285DD6D219DE44EB0588E477CBFCD5F5C068D2FA877339424F324012D346C3E2B3C4408E4FD84535C5D4EA02137ABE0426BC4C3AD6EABAA221579CBA22023F8204ECCC98D143652DEBF5869CD73A81C0E4C6FC9A22F9E648B6783AA1D0F0A1F76B1C4E8692339A6A259F3D8419CF7FD22A26023678BFE4F70C79E7F113882E6C7A0606C5AA9094DB161683E43CCEC8C73FEBC7B82617B90541C2BC15EBA18B55E430373CF21DD235BA332EE6D7A6D042BAB4DEF94939AAD2A1F6FD235B09CA6CCFB45A614C79F3C83253B82BB73826DD22127F3F14292A9B682D607D6C9313DF5324712F976C8978AEDC97B40095E66BF850BCB83F477E1F5AB045844EA5CA0652C7C2C284B90FFDCAE2D5F3C165F66FCE871A5D0AFAA158E77099BFA7A969C8F3425E326D24E7E875D588B5E652ED331ABE4A72AFF7D89CFA9D55116B2610AEA4D1D16BCE1FE8D22849827677FEC8EC9864F5A4B874E7AA3228E31DACECA3ED7E1F31675CCA03E599E748BBCA483821DDC5F1C7ED376EDE7A650AD06CE3FC4E76062354B7D89093EBBF9717CED067846349E8BBEEC4CDDE0907F2DD1C31125F1DBB7B9A94E07677C4EBC756A5ED3D8DB30FB5772328272C6D360021F3 | 297 | 20171206134251 2 6 100 6143 2 EF730E8C844746DF23D55A6C9508EF59F158850FF4A3A24B3E29C95547FE16E3C3F7269D4096406935222EDC51BFDFE89B454D8C02F868FB297A1FBFEB61A5392779A6C51AF8F9068CC579276D045FF317D9B7540D9A39FA936004991CB06BA169012F75BAF0B8D6203470AF1BE5569341E462DF72FF4AFD9C24BCB7584C71C1766DFDD74FE13D98C176DC64979F4720C0A996226948C9DE5E1890C2E703168AB3B33D50C395F13CDE094300C4BB0ED86352950C238DDEB1A8412A2409B6C487F9CBBB110A754A7B4985CF55DE4FC5137CDF13F9B0E10768DF0A28D6628DFEC684A25439E5C943718E4E4CFC89A3DCE1B747F77A0CE08B98AC92705E8DD3A6EDD18FAEA2FBB4988C3CC947C8206DD67CF44BEF69B617E781E93501877F81E4CC2263DB0B5EEEFFF3FCFCD2AB6E34B724D755A9D5025C978AA679D806318EF9F81787D3C69FB2D25B0382A3A96F44216791D41CCC3DF04EBD19B84858F0935C1C774F4685C8114EBCA8C71946C35CB42B82AD56541E3B4AB0A47E0AD8FCF9073BCFB801EA84DDF5DF4426578561BC737C2469B34F275502BC0BD7AB018506FD8DD6A9477F1588C2F76FD82B2AD3740E7F161632C66B961737EB70E9B44F362F73C1F874F7C06C5370297E975D25E004D6090BD119915694AFB57427DDE7F50C81B9A1812E10FA39A01E2F2FF18C96FADEA62BF08FAB027A31D84E4C0267AF7E880B5A0608683542E9895DB15FA1ADA9F1D28569C8E27662CE912CD1869227F542C1F228C6A2226D4AC24673994AA453BF21A1961D17C7E29B297E8AF7A71C4E2957A603900A3B4947B7B59A70767EB9106C043A48EEFAC3CCDC0F78F559CDBE64328E3C21D33D30E6AAFF638761F988CD99C59ECBAC4276ACE22062F6903B4B78B45917829AAA0CF11D04272EB44385A3479AD7B6E3E94126CC35AE082A73AAE991670C5145576789B43055B5F9D457523B16032CC65B679BD5AA08657D719EAC3D0345812BFA599249E4719AA2DF1507916FA735535781F053C4CB92D28007CC8D621E571E957AED705C2D11724E6D4A3BE268FDCCA230A1BE9EDE7554BF8FF3 |
298 | 20170702200102 2 6 100 7679 5 E411B879FDA69428A30BDE74B417706E5936E16C5E1F2B64A07EAE1D69C857C23126701460740D93467EB3A3386827E658069CAC4D55CC4929493C193D53A0D91141135B2F0B19E659BB541883E569D38B329761EDF3C409D34A49870356F3723AD2F720383E49B1752B837DF80F48632A469A0A96AC8F02E5B766B590D722B5BD3ED9191BB70C1D4044A3D5CE850489216C3184D73BAE2B655D76B30EC1851951A756E2A45CD1FF82A83BDC1803005034BEB2EAC35FF7362831D8FBE02E07B1CCA351D47AD65B5282151FB2711A880410CED2C1CF205CC2072F6F244189F5BDB3AFDBA7FB02DD21C99D1EF72C1EF8BC6C68A273D16CB2D3CA190C30BDDEEAD7CA2E519F3AF806B5CBD436B971C1F1981EB35CB4007D129F43E660F7E47E807C889A1DC5FEFA7C304DB41B36982FEFB7390DC6C8E9474D3EEB84B3F757C367475EB1B4CB5B86F9507090F2CB37533E2B96BBC6F75B3BF1F4CECF18F67E7492A681845CF5AFA1B70FB3B0A09CDD3375BCF716CBF2A594533D157CB6C4008CF8C4818C9418E44A995028487B0346BD399BFB431CA94B3FC2AF9822520153105ADACEBE719CC24D1D043AC2AC24BD41759AA452000C43CB885D5F0D71DC2451A2C5C04B0B085BD23B5295B7A109DCD729C34479D51EAB4617FDD163128B25F5803B262C3D97E2D63B3E84D85B67ECDFDE6FA377E208BD2EF867072D341AC731338268AD82285DD6D219DE44EB0588E477CBFCD5F5C068D2FA877339424F324012D346C3E2B3C4408E4FD84535C5D4EA02137ABE0426BC4C3AD6EABAA221579CBA22023F8204ECCC98D143652DEBF5869CD73A81C0E4C6FC9A22F9E648B6783AA1D0F0A1F76B1C4E8692339A6A259F3D8419CF7FD22A26023678BFE4F70C79E7F113882E6C7A0606C5AA9094DB161683E43CCEC8C73FEBC7B82617B90541C2BC15EBA18B55E430373CF21DD235BA332EE6D7A6D042BAB4DEF94939AAD2A1F6FD235B09CA6CCFB45A614C79F3C83253B82BB73826DD22127F3F14292A9B682D607D6C9313DF5324712F976C8978AEDC97B40095E66BF850BCB83F477E1F5AB045844EA5CA0652C7C2C284B90FFDCAE2D5F3C165F66FCE871A5D0AFAA158E77099BFA7A969C8F3425E326D24E7E875D588B5E652ED331ABE4A72AFF7D89CFA9D55116B2610AEA4D1D16BCE1FE8D22849827677FEC8EC9864F5A4B874E7AA3228E31DACECA3ED7E1F31675CCA03E599E748BBCA483821DDC5F1C7ED376EDE7A650AD06CE3FC4E76062354B7D89093EBBF9717CED067846349E8BBEEC4CDDE0907F2DD1C31125F1DBB7B9A94E07677C4EBC756A5ED3D8DB30FB5772328272C6D37A9C6C7 | 298 | 20171206161018 2 6 100 6143 5 EF730E8C844746DF23D55A6C9508EF59F158850FF4A3A24B3E29C95547FE16E3C3F7269D4096406935222EDC51BFDFE89B454D8C02F868FB297A1FBFEB61A5392779A6C51AF8F9068CC579276D045FF317D9B7540D9A39FA936004991CB06BA169012F75BAF0B8D6203470AF1BE5569341E462DF72FF4AFD9C24BCB7584C71C1766DFDD74FE13D98C176DC64979F4720C0A996226948C9DE5E1890C2E703168AB3B33D50C395F13CDE094300C4BB0ED86352950C238DDEB1A8412A2409B6C487F9CBBB110A754A7B4985CF55DE4FC5137CDF13F9B0E10768DF0A28D6628DFEC684A25439E5C943718E4E4CFC89A3DCE1B747F77A0CE08B98AC92705E8DD3A6EDD18FAEA2FBB4988C3CC947C8206DD67CF44BEF69B617E781E93501877F81E4CC2263DB0B5EEEFFF3FCFCD2AB6E34B724D755A9D5025C978AA679D806318EF9F81787D3C69FB2D25B0382A3A96F44216791D41CCC3DF04EBD19B84858F0935C1C774F4685C8114EBCA8C71946C35CB42B82AD56541E3B4AB0A47E0AD8FCF9073BCFB801EA84DDF5DF4426578561BC737C2469B34F275502BC0BD7AB018506FD8DD6A9477F1588C2F76FD82B2AD3740E7F161632C66B961737EB70E9B44F362F73C1F874F7C06C5370297E975D25E004D6090BD119915694AFB57427DDE7F50C81B9A1812E10FA39A01E2F2FF18C96FADEA62BF08FAB027A31D84E4C0267AF7E880B5A0608683542E9895DB15FA1ADA9F1D28569C8E27662CE912CD1869227F542C1F228C6A2226D4AC24673994AA453BF21A1961D17C7E29B297E8AF7A71C4E2957A603900A3B4947B7B59A70767EB9106C043A48EEFAC3CCDC0F78F559CDBE64328E3C21D33D30E6AAFF638761F988CD99C59ECBAC4276ACE22062F6903B4B78B45917829AAA0CF11D04272EB44385A3479AD7B6E3E94126CC35AE082A73AAE991670C5145576789B43055B5F9D457523B16032CC65B679BD5AA08657D719EAC3D0345812BFA599249E4719AA2DF1507916FA735535781F053C4CB92D28007CC8D621E571E957AED705C2D11724E6D4A3BE268FDCCA230A1BE9EDE7558211DF7 |
299 | 20170703011731 2 6 100 7679 5 E411B879FDA69428A30BDE74B417706E5936E16C5E1F2B64A07EAE1D69C857C23126701460740D93467EB3A3386827E658069CAC4D55CC4929493C193D53A0D91141135B2F0B19E659BB541883E569D38B329761EDF3C409D34A49870356F3723AD2F720383E49B1752B837DF80F48632A469A0A96AC8F02E5B766B590D722B5BD3ED9191BB70C1D4044A3D5CE850489216C3184D73BAE2B655D76B30EC1851951A756E2A45CD1FF82A83BDC1803005034BEB2EAC35FF7362831D8FBE02E07B1CCA351D47AD65B5282151FB2711A880410CED2C1CF205CC2072F6F244189F5BDB3AFDBA7FB02DD21C99D1EF72C1EF8BC6C68A273D16CB2D3CA190C30BDDEEAD7CA2E519F3AF806B5CBD436B971C1F1981EB35CB4007D129F43E660F7E47E807C889A1DC5FEFA7C304DB41B36982FEFB7390DC6C8E9474D3EEB84B3F757C367475EB1B4CB5B86F9507090F2CB37533E2B96BBC6F75B3BF1F4CECF18F67E7492A681845CF5AFA1B70FB3B0A09CDD3375BCF716CBF2A594533D157CB6C4008CF8C4818C9418E44A995028487B0346BD399BFB431CA94B3FC2AF9822520153105ADACEBE719CC24D1D043AC2AC24BD41759AA452000C43CB885D5F0D71DC2451A2C5C04B0B085BD23B5295B7A109DCD729C34479D51EAB4617FDD163128B25F5803B262C3D97E2D63B3E84D85B67ECDFDE6FA377E208BD2EF867072D341AC731338268AD82285DD6D219DE44EB0588E477CBFCD5F5C068D2FA877339424F324012D346C3E2B3C4408E4FD84535C5D4EA02137ABE0426BC4C3AD6EABAA221579CBA22023F8204ECCC98D143652DEBF5869CD73A81C0E4C6FC9A22F9E648B6783AA1D0F0A1F76B1C4E8692339A6A259F3D8419CF7FD22A26023678BFE4F70C79E7F113882E6C7A0606C5AA9094DB161683E43CCEC8C73FEBC7B82617B90541C2BC15EBA18B55E430373CF21DD235BA332EE6D7A6D042BAB4DEF94939AAD2A1F6FD235B09CA6CCFB45A614C79F3C83253B82BB73826DD22127F3F14292A9B682D607D6C9313DF5324712F976C8978AEDC97B40095E66BF850BCB83F477E1F5AB045844EA5CA0652C7C2C284B90FFDCAE2D5F3C165F66FCE871A5D0AFAA158E77099BFA7A969C8F3425E326D24E7E875D588B5E652ED331ABE4A72AFF7D89CFA9D55116B2610AEA4D1D16BCE1FE8D22849827677FEC8EC9864F5A4B874E7AA3228E31DACECA3ED7E1F31675CCA03E599E748BBCA483821DDC5F1C7ED376EDE7A650AD06CE3FC4E76062354B7D89093EBBF9717CED067846349E8BBEEC4CDDE0907F2DD1C31125F1DBB7B9A94E07677C4EBC756A5ED3D8DB30FB5772328272C6D3BCD4977 | 299 | 20171206195122 2 6 100 7679 2 CF96EF3064F3389AC4D7DA6813F67988F77979BB89C86E3A82B8FBE165D96646B6665C28FE7F5D1742E288AF6A47CEAD57277CF7B7902B8B7F899CB512DDF0EDEC293B152ABA4085290AE8BF93AF988437B549319AF0E18E39805C80A4714E4108DC29DDF708365B8FAC1F220784A8AA89F4C04176DFCEFC652988A6F878937AF8FEFF6A45672DB27EC215CDCBB9C530BDC2F1F357DC69073AA6B3670B988F271386E1B2F72635AA83420CF2A393338D1C4E2B502C11CA2098481EA292ACD7A7BFF84945E9CC04B47B1967F09CC7A4BE5AAA749583318E561E5504F28472B0AEF60B854142AACFE6017786E8B5FB674C79D68B7B44842F18E2075B8679A99D43892847B09A0CADFBED479942F599A1666D96EEED85A222431F8637D6FB73F5E08465417DAAA47BD31BDCE2262E06E0B7E5BF6FA9703890997C275CE11CA52A92D0F4889F370164D4EFA8C461E2F3BBABA54F8A1DD165C3D5344DF572B67EF92DC3E8EF66926B673AD59FB5CE5FF5ECED31535CC347374D846F0373EDD82DEFAF4DEEF238A1ABFF44FDC2D9511E8AE69349B69749DD6D2AD5A2A95F579B3A0D232FAB4A915568409150F184F1F58114354235084F9B104F9DA8EC13D34AB93BD61620CC0B93118FF2299B80856CE2A40792F58E37990677E1C4A662D619F835DA5537873CDF05DCDB369AEB2E6159E351E9140DDD5E4FB57EAAD9CB5A41EAC61CD1E95D983832D0E8D35EEFF88E699A33A4AB0FC82B8A1B38F527933108FCC6533C9DE3AFCAE396246399DB878A9D500905A707B3C1F3F490E327A5C219151E7077C9E456F3DD046F6FAC8C3F98CC90FC558E87A7CB654320DA2B48F41BE0D8498A98DF562EE0A33FF61AF92E90DABA5323CF416C7E3B5E0A5190A36442F08AEE80B4886C407A689A81293D7CF6D7F88C112F7D166D4AE27147BCDC4C91E2880F5A4065B0AC7480BCDB9A0BCB790FDDF0370DF819986DA21FE700E15D449F5C0849B70C8A84569F205D74141F87B73D2EE3BB4D7A88F2DC90272219E39B5456F5CE8F0DA1E40E98C1B968112DC3664663B3C2A2B1402657CC0529AD6CED5BD2A177F9ED6FDA41378C8ADA6F33615516CFE0077E9426424F06DF517A5117F2882FFE3144245623DF8DDEF9869E5F6D328884018885209EA24F7F617837E7751D56EF3201D3FD607706B889728591E7C822ED97FF0B9DC111D5D0142387D88CB799345EF48235922632D6610F9E1C7AAAB6368EC0D4A76185686FCDA99499DC1B7F08C8A1BDDEF3F803CF168D818CEAC1F8B79E70C49E37B3E19B0096D1B6C2D4BF73DBF503401AE4EFCF9DEB8AC4A9C39E140CA9086E9927274E2A634801E6B61B |
300 | 20170703155054 2 6 100 7679 2 E411B879FDA69428A30BDE74B417706E5936E16C5E1F2B64A07EAE1D69C857C23126701460740D93467EB3A3386827E658069CAC4D55CC4929493C193D53A0D91141135B2F0B19E659BB541883E569D38B329761EDF3C409D34A49870356F3723AD2F720383E49B1752B837DF80F48632A469A0A96AC8F02E5B766B590D722B5BD3ED9191BB70C1D4044A3D5CE850489216C3184D73BAE2B655D76B30EC1851951A756E2A45CD1FF82A83BDC1803005034BEB2EAC35FF7362831D8FBE02E07B1CCA351D47AD65B5282151FB2711A880410CED2C1CF205CC2072F6F244189F5BDB3AFDBA7FB02DD21C99D1EF72C1EF8BC6C68A273D16CB2D3CA190C30BDDEEAD7CA2E519F3AF806B5CBD436B971C1F1981EB35CB4007D129F43E660F7E47E807C889A1DC5FEFA7C304DB41B36982FEFB7390DC6C8E9474D3EEB84B3F757C367475EB1B4CB5B86F9507090F2CB37533E2B96BBC6F75B3BF1F4CECF18F67E7492A681845CF5AFA1B70FB3B0A09CDD3375BCF716CBF2A594533D157CB6C4008CF8C4818C9418E44A995028487B0346BD399BFB431CA94B3FC2AF9822520153105ADACEBE719CC24D1D043AC2AC24BD41759AA452000C43CB885D5F0D71DC2451A2C5C04B0B085BD23B5295B7A109DCD729C34479D51EAB4617FDD163128B25F5803B262C3D97E2D63B3E84D85B67ECDFDE6FA377E208BD2EF867072D341AC731338268AD82285DD6D219DE44EB0588E477CBFCD5F5C068D2FA877339424F324012D346C3E2B3C4408E4FD84535C5D4EA02137ABE0426BC4C3AD6EABAA221579CBA22023F8204ECCC98D143652DEBF5869CD73A81C0E4C6FC9A22F9E648B6783AA1D0F0A1F76B1C4E8692339A6A259F3D8419CF7FD22A26023678BFE4F70C79E7F113882E6C7A0606C5AA9094DB161683E43CCEC8C73FEBC7B82617B90541C2BC15EBA18B55E430373CF21DD235BA332EE6D7A6D042BAB4DEF94939AAD2A1F6FD235B09CA6CCFB45A614C79F3C83253B82BB73826DD22127F3F14292A9B682D607D6C9313DF5324712F976C8978AEDC97B40095E66BF850BCB83F477E1F5AB045844EA5CA0652C7C2C284B90FFDCAE2D5F3C165F66FCE871A5D0AFAA158E77099BFA7A969C8F3425E326D24E7E875D588B5E652ED331ABE4A72AFF7D89CFA9D55116B2610AEA4D1D16BCE1FE8D22849827677FEC8EC9864F5A4B874E7AA3228E31DACECA3ED7E1F31675CCA03E599E748BBCA483821DDC5F1C7ED376EDE7A650AD06CE3FC4E76062354B7D89093EBBF9717CED067846349E8BBEEC4CDDE0907F2DD1C31125F1DBB7B9A94E07677C4EBC756A5ED3D8DB30FB5772328272C6D431F42D3 | 300 | 20171206235707 2 6 100 7679 5 CF96EF3064F3389AC4D7DA6813F67988F77979BB89C86E3A82B8FBE165D96646B6665C28FE7F5D1742E288AF6A47CEAD57277CF7B7902B8B7F899CB512DDF0EDEC293B152ABA4085290AE8BF93AF988437B549319AF0E18E39805C80A4714E4108DC29DDF708365B8FAC1F220784A8AA89F4C04176DFCEFC652988A6F878937AF8FEFF6A45672DB27EC215CDCBB9C530BDC2F1F357DC69073AA6B3670B988F271386E1B2F72635AA83420CF2A393338D1C4E2B502C11CA2098481EA292ACD7A7BFF84945E9CC04B47B1967F09CC7A4BE5AAA749583318E561E5504F28472B0AEF60B854142AACFE6017786E8B5FB674C79D68B7B44842F18E2075B8679A99D43892847B09A0CADFBED479942F599A1666D96EEED85A222431F8637D6FB73F5E08465417DAAA47BD31BDCE2262E06E0B7E5BF6FA9703890997C275CE11CA52A92D0F4889F370164D4EFA8C461E2F3BBABA54F8A1DD165C3D5344DF572B67EF92DC3E8EF66926B673AD59FB5CE5FF5ECED31535CC347374D846F0373EDD82DEFAF4DEEF238A1ABFF44FDC2D9511E8AE69349B69749DD6D2AD5A2A95F579B3A0D232FAB4A915568409150F184F1F58114354235084F9B104F9DA8EC13D34AB93BD61620CC0B93118FF2299B80856CE2A40792F58E37990677E1C4A662D619F835DA5537873CDF05DCDB369AEB2E6159E351E9140DDD5E4FB57EAAD9CB5A41EAC61CD1E95D983832D0E8D35EEFF88E699A33A4AB0FC82B8A1B38F527933108FCC6533C9DE3AFCAE396246399DB878A9D500905A707B3C1F3F490E327A5C219151E7077C9E456F3DD046F6FAC8C3F98CC90FC558E87A7CB654320DA2B48F41BE0D8498A98DF562EE0A33FF61AF92E90DABA5323CF416C7E3B5E0A5190A36442F08AEE80B4886C407A689A81293D7CF6D7F88C112F7D166D4AE27147BCDC4C91E2880F5A4065B0AC7480BCDB9A0BCB790FDDF0370DF819986DA21FE700E15D449F5C0849B70C8A84569F205D74141F87B73D2EE3BB4D7A88F2DC90272219E39B5456F5CE8F0DA1E40E98C1B968112DC3664663B3C2A2B1402657CC0529AD6CED5BD2A177F9ED6FDA41378C8ADA6F33615516CFE0077E9426424F06DF517A5117F2882FFE3144245623DF8DDEF9869E5F6D328884018885209EA24F7F617837E7751D56EF3201D3FD607706B889728591E7C822ED97FF0B9DC111D5D0142387D88CB799345EF48235922632D6610F9E1C7AAAB6368EC0D4A76185686FCDA99499DC1B7F08C8A1BDDEF3F803CF168D818CEAC1F8B79E70C49E37B3E19B0096D1B6C2D4BF73DBF503401AE4EFCF9DEB8AC4A9C39E140CA9086E9927274E2A6348054D6277 |
301 | 20170704184253 2 6 100 7679 2 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936A2722BB3 | 301 | 20171207033003 2 6 100 7679 5 CF96EF3064F3389AC4D7DA6813F67988F77979BB89C86E3A82B8FBE165D96646B6665C28FE7F5D1742E288AF6A47CEAD57277CF7B7902B8B7F899CB512DDF0EDEC293B152ABA4085290AE8BF93AF988437B549319AF0E18E39805C80A4714E4108DC29DDF708365B8FAC1F220784A8AA89F4C04176DFCEFC652988A6F878937AF8FEFF6A45672DB27EC215CDCBB9C530BDC2F1F357DC69073AA6B3670B988F271386E1B2F72635AA83420CF2A393338D1C4E2B502C11CA2098481EA292ACD7A7BFF84945E9CC04B47B1967F09CC7A4BE5AAA749583318E561E5504F28472B0AEF60B854142AACFE6017786E8B5FB674C79D68B7B44842F18E2075B8679A99D43892847B09A0CADFBED479942F599A1666D96EEED85A222431F8637D6FB73F5E08465417DAAA47BD31BDCE2262E06E0B7E5BF6FA9703890997C275CE11CA52A92D0F4889F370164D4EFA8C461E2F3BBABA54F8A1DD165C3D5344DF572B67EF92DC3E8EF66926B673AD59FB5CE5FF5ECED31535CC347374D846F0373EDD82DEFAF4DEEF238A1ABFF44FDC2D9511E8AE69349B69749DD6D2AD5A2A95F579B3A0D232FAB4A915568409150F184F1F58114354235084F9B104F9DA8EC13D34AB93BD61620CC0B93118FF2299B80856CE2A40792F58E37990677E1C4A662D619F835DA5537873CDF05DCDB369AEB2E6159E351E9140DDD5E4FB57EAAD9CB5A41EAC61CD1E95D983832D0E8D35EEFF88E699A33A4AB0FC82B8A1B38F527933108FCC6533C9DE3AFCAE396246399DB878A9D500905A707B3C1F3F490E327A5C219151E7077C9E456F3DD046F6FAC8C3F98CC90FC558E87A7CB654320DA2B48F41BE0D8498A98DF562EE0A33FF61AF92E90DABA5323CF416C7E3B5E0A5190A36442F08AEE80B4886C407A689A81293D7CF6D7F88C112F7D166D4AE27147BCDC4C91E2880F5A4065B0AC7480BCDB9A0BCB790FDDF0370DF819986DA21FE700E15D449F5C0849B70C8A84569F205D74141F87B73D2EE3BB4D7A88F2DC90272219E39B5456F5CE8F0DA1E40E98C1B968112DC3664663B3C2A2B1402657CC0529AD6CED5BD2A177F9ED6FDA41378C8ADA6F33615516CFE0077E9426424F06DF517A5117F2882FFE3144245623DF8DDEF9869E5F6D328884018885209EA24F7F617837E7751D56EF3201D3FD607706B889728591E7C822ED97FF0B9DC111D5D0142387D88CB799345EF48235922632D6610F9E1C7AAAB6368EC0D4A76185686FCDA99499DC1B7F08C8A1BDDEF3F803CF168D818CEAC1F8B79E70C49E37B3E19B0096D1B6C2D4BF73DBF503401AE4EFCF9DEB8AC4A9C39E140CA9086E9927274E2A634808323A27 |
302 | 20170704204537 2 6 100 7679 2 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936A4446CCB | 302 | 20171207054441 2 6 100 7679 5 CF96EF3064F3389AC4D7DA6813F67988F77979BB89C86E3A82B8FBE165D96646B6665C28FE7F5D1742E288AF6A47CEAD57277CF7B7902B8B7F899CB512DDF0EDEC293B152ABA4085290AE8BF93AF988437B549319AF0E18E39805C80A4714E4108DC29DDF708365B8FAC1F220784A8AA89F4C04176DFCEFC652988A6F878937AF8FEFF6A45672DB27EC215CDCBB9C530BDC2F1F357DC69073AA6B3670B988F271386E1B2F72635AA83420CF2A393338D1C4E2B502C11CA2098481EA292ACD7A7BFF84945E9CC04B47B1967F09CC7A4BE5AAA749583318E561E5504F28472B0AEF60B854142AACFE6017786E8B5FB674C79D68B7B44842F18E2075B8679A99D43892847B09A0CADFBED479942F599A1666D96EEED85A222431F8637D6FB73F5E08465417DAAA47BD31BDCE2262E06E0B7E5BF6FA9703890997C275CE11CA52A92D0F4889F370164D4EFA8C461E2F3BBABA54F8A1DD165C3D5344DF572B67EF92DC3E8EF66926B673AD59FB5CE5FF5ECED31535CC347374D846F0373EDD82DEFAF4DEEF238A1ABFF44FDC2D9511E8AE69349B69749DD6D2AD5A2A95F579B3A0D232FAB4A915568409150F184F1F58114354235084F9B104F9DA8EC13D34AB93BD61620CC0B93118FF2299B80856CE2A40792F58E37990677E1C4A662D619F835DA5537873CDF05DCDB369AEB2E6159E351E9140DDD5E4FB57EAAD9CB5A41EAC61CD1E95D983832D0E8D35EEFF88E699A33A4AB0FC82B8A1B38F527933108FCC6533C9DE3AFCAE396246399DB878A9D500905A707B3C1F3F490E327A5C219151E7077C9E456F3DD046F6FAC8C3F98CC90FC558E87A7CB654320DA2B48F41BE0D8498A98DF562EE0A33FF61AF92E90DABA5323CF416C7E3B5E0A5190A36442F08AEE80B4886C407A689A81293D7CF6D7F88C112F7D166D4AE27147BCDC4C91E2880F5A4065B0AC7480BCDB9A0BCB790FDDF0370DF819986DA21FE700E15D449F5C0849B70C8A84569F205D74141F87B73D2EE3BB4D7A88F2DC90272219E39B5456F5CE8F0DA1E40E98C1B968112DC3664663B3C2A2B1402657CC0529AD6CED5BD2A177F9ED6FDA41378C8ADA6F33615516CFE0077E9426424F06DF517A5117F2882FFE3144245623DF8DDEF9869E5F6D328884018885209EA24F7F617837E7751D56EF3201D3FD607706B889728591E7C822ED97FF0B9DC111D5D0142387D88CB799345EF48235922632D6610F9E1C7AAAB6368EC0D4A76185686FCDA99499DC1B7F08C8A1BDDEF3F803CF168D818CEAC1F8B79E70C49E37B3E19B0096D1B6C2D4BF73DBF503401AE4EFCF9DEB8AC4A9C39E140CA9086E9927274E2A634809E6C2F7 |
303 | 20170705051520 2 6 100 7679 2 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936ABC7F083 | 303 | 20171207104116 2 6 100 7679 2 CF96EF3064F3389AC4D7DA6813F67988F77979BB89C86E3A82B8FBE165D96646B6665C28FE7F5D1742E288AF6A47CEAD57277CF7B7902B8B7F899CB512DDF0EDEC293B152ABA4085290AE8BF93AF988437B549319AF0E18E39805C80A4714E4108DC29DDF708365B8FAC1F220784A8AA89F4C04176DFCEFC652988A6F878937AF8FEFF6A45672DB27EC215CDCBB9C530BDC2F1F357DC69073AA6B3670B988F271386E1B2F72635AA83420CF2A393338D1C4E2B502C11CA2098481EA292ACD7A7BFF84945E9CC04B47B1967F09CC7A4BE5AAA749583318E561E5504F28472B0AEF60B854142AACFE6017786E8B5FB674C79D68B7B44842F18E2075B8679A99D43892847B09A0CADFBED479942F599A1666D96EEED85A222431F8637D6FB73F5E08465417DAAA47BD31BDCE2262E06E0B7E5BF6FA9703890997C275CE11CA52A92D0F4889F370164D4EFA8C461E2F3BBABA54F8A1DD165C3D5344DF572B67EF92DC3E8EF66926B673AD59FB5CE5FF5ECED31535CC347374D846F0373EDD82DEFAF4DEEF238A1ABFF44FDC2D9511E8AE69349B69749DD6D2AD5A2A95F579B3A0D232FAB4A915568409150F184F1F58114354235084F9B104F9DA8EC13D34AB93BD61620CC0B93118FF2299B80856CE2A40792F58E37990677E1C4A662D619F835DA5537873CDF05DCDB369AEB2E6159E351E9140DDD5E4FB57EAAD9CB5A41EAC61CD1E95D983832D0E8D35EEFF88E699A33A4AB0FC82B8A1B38F527933108FCC6533C9DE3AFCAE396246399DB878A9D500905A707B3C1F3F490E327A5C219151E7077C9E456F3DD046F6FAC8C3F98CC90FC558E87A7CB654320DA2B48F41BE0D8498A98DF562EE0A33FF61AF92E90DABA5323CF416C7E3B5E0A5190A36442F08AEE80B4886C407A689A81293D7CF6D7F88C112F7D166D4AE27147BCDC4C91E2880F5A4065B0AC7480BCDB9A0BCB790FDDF0370DF819986DA21FE700E15D449F5C0849B70C8A84569F205D74141F87B73D2EE3BB4D7A88F2DC90272219E39B5456F5CE8F0DA1E40E98C1B968112DC3664663B3C2A2B1402657CC0529AD6CED5BD2A177F9ED6FDA41378C8ADA6F33615516CFE0077E9426424F06DF517A5117F2882FFE3144245623DF8DDEF9869E5F6D328884018885209EA24F7F617837E7751D56EF3201D3FD607706B889728591E7C822ED97FF0B9DC111D5D0142387D88CB799345EF48235922632D6610F9E1C7AAAB6368EC0D4A76185686FCDA99499DC1B7F08C8A1BDDEF3F803CF168D818CEAC1F8B79E70C49E37B3E19B0096D1B6C2D4BF73DBF503401AE4EFCF9DEB8AC4A9C39E140CA9086E9927274E2A63480D5E19B3 |
304 | 20170705084652 2 6 100 7679 2 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936AED1CC73 | 304 | 20171207110410 2 6 100 7679 5 CF96EF3064F3389AC4D7DA6813F67988F77979BB89C86E3A82B8FBE165D96646B6665C28FE7F5D1742E288AF6A47CEAD57277CF7B7902B8B7F899CB512DDF0EDEC293B152ABA4085290AE8BF93AF988437B549319AF0E18E39805C80A4714E4108DC29DDF708365B8FAC1F220784A8AA89F4C04176DFCEFC652988A6F878937AF8FEFF6A45672DB27EC215CDCBB9C530BDC2F1F357DC69073AA6B3670B988F271386E1B2F72635AA83420CF2A393338D1C4E2B502C11CA2098481EA292ACD7A7BFF84945E9CC04B47B1967F09CC7A4BE5AAA749583318E561E5504F28472B0AEF60B854142AACFE6017786E8B5FB674C79D68B7B44842F18E2075B8679A99D43892847B09A0CADFBED479942F599A1666D96EEED85A222431F8637D6FB73F5E08465417DAAA47BD31BDCE2262E06E0B7E5BF6FA9703890997C275CE11CA52A92D0F4889F370164D4EFA8C461E2F3BBABA54F8A1DD165C3D5344DF572B67EF92DC3E8EF66926B673AD59FB5CE5FF5ECED31535CC347374D846F0373EDD82DEFAF4DEEF238A1ABFF44FDC2D9511E8AE69349B69749DD6D2AD5A2A95F579B3A0D232FAB4A915568409150F184F1F58114354235084F9B104F9DA8EC13D34AB93BD61620CC0B93118FF2299B80856CE2A40792F58E37990677E1C4A662D619F835DA5537873CDF05DCDB369AEB2E6159E351E9140DDD5E4FB57EAAD9CB5A41EAC61CD1E95D983832D0E8D35EEFF88E699A33A4AB0FC82B8A1B38F527933108FCC6533C9DE3AFCAE396246399DB878A9D500905A707B3C1F3F490E327A5C219151E7077C9E456F3DD046F6FAC8C3F98CC90FC558E87A7CB654320DA2B48F41BE0D8498A98DF562EE0A33FF61AF92E90DABA5323CF416C7E3B5E0A5190A36442F08AEE80B4886C407A689A81293D7CF6D7F88C112F7D166D4AE27147BCDC4C91E2880F5A4065B0AC7480BCDB9A0BCB790FDDF0370DF819986DA21FE700E15D449F5C0849B70C8A84569F205D74141F87B73D2EE3BB4D7A88F2DC90272219E39B5456F5CE8F0DA1E40E98C1B968112DC3664663B3C2A2B1402657CC0529AD6CED5BD2A177F9ED6FDA41378C8ADA6F33615516CFE0077E9426424F06DF517A5117F2882FFE3144245623DF8DDEF9869E5F6D328884018885209EA24F7F617837E7751D56EF3201D3FD607706B889728591E7C822ED97FF0B9DC111D5D0142387D88CB799345EF48235922632D6610F9E1C7AAAB6368EC0D4A76185686FCDA99499DC1B7F08C8A1BDDEF3F803CF168D818CEAC1F8B79E70C49E37B3E19B0096D1B6C2D4BF73DBF503401AE4EFCF9DEB8AC4A9C39E140CA9086E9927274E2A63480DA1758F |
305 | 20170705094007 2 6 100 7679 5 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936AF8A26FF | 305 | 20171207170628 2 6 100 7679 2 CF96EF3064F3389AC4D7DA6813F67988F77979BB89C86E3A82B8FBE165D96646B6665C28FE7F5D1742E288AF6A47CEAD57277CF7B7902B8B7F899CB512DDF0EDEC293B152ABA4085290AE8BF93AF988437B549319AF0E18E39805C80A4714E4108DC29DDF708365B8FAC1F220784A8AA89F4C04176DFCEFC652988A6F878937AF8FEFF6A45672DB27EC215CDCBB9C530BDC2F1F357DC69073AA6B3670B988F271386E1B2F72635AA83420CF2A393338D1C4E2B502C11CA2098481EA292ACD7A7BFF84945E9CC04B47B1967F09CC7A4BE5AAA749583318E561E5504F28472B0AEF60B854142AACFE6017786E8B5FB674C79D68B7B44842F18E2075B8679A99D43892847B09A0CADFBED479942F599A1666D96EEED85A222431F8637D6FB73F5E08465417DAAA47BD31BDCE2262E06E0B7E5BF6FA9703890997C275CE11CA52A92D0F4889F370164D4EFA8C461E2F3BBABA54F8A1DD165C3D5344DF572B67EF92DC3E8EF66926B673AD59FB5CE5FF5ECED31535CC347374D846F0373EDD82DEFAF4DEEF238A1ABFF44FDC2D9511E8AE69349B69749DD6D2AD5A2A95F579B3A0D232FAB4A915568409150F184F1F58114354235084F9B104F9DA8EC13D34AB93BD61620CC0B93118FF2299B80856CE2A40792F58E37990677E1C4A662D619F835DA5537873CDF05DCDB369AEB2E6159E351E9140DDD5E4FB57EAAD9CB5A41EAC61CD1E95D983832D0E8D35EEFF88E699A33A4AB0FC82B8A1B38F527933108FCC6533C9DE3AFCAE396246399DB878A9D500905A707B3C1F3F490E327A5C219151E7077C9E456F3DD046F6FAC8C3F98CC90FC558E87A7CB654320DA2B48F41BE0D8498A98DF562EE0A33FF61AF92E90DABA5323CF416C7E3B5E0A5190A36442F08AEE80B4886C407A689A81293D7CF6D7F88C112F7D166D4AE27147BCDC4C91E2880F5A4065B0AC7480BCDB9A0BCB790FDDF0370DF819986DA21FE700E15D449F5C0849B70C8A84569F205D74141F87B73D2EE3BB4D7A88F2DC90272219E39B5456F5CE8F0DA1E40E98C1B968112DC3664663B3C2A2B1402657CC0529AD6CED5BD2A177F9ED6FDA41378C8ADA6F33615516CFE0077E9426424F06DF517A5117F2882FFE3144245623DF8DDEF9869E5F6D328884018885209EA24F7F617837E7751D56EF3201D3FD607706B889728591E7C822ED97FF0B9DC111D5D0142387D88CB799345EF48235922632D6610F9E1C7AAAB6368EC0D4A76185686FCDA99499DC1B7F08C8A1BDDEF3F803CF168D818CEAC1F8B79E70C49E37B3E19B0096D1B6C2D4BF73DBF503401AE4EFCF9DEB8AC4A9C39E140CA9086E9927274E2A634812866F03 |
306 | 20170705115139 2 6 100 7679 5 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936B15913CF | 306 | 20171207183951 2 6 100 7679 5 CF96EF3064F3389AC4D7DA6813F67988F77979BB89C86E3A82B8FBE165D96646B6665C28FE7F5D1742E288AF6A47CEAD57277CF7B7902B8B7F899CB512DDF0EDEC293B152ABA4085290AE8BF93AF988437B549319AF0E18E39805C80A4714E4108DC29DDF708365B8FAC1F220784A8AA89F4C04176DFCEFC652988A6F878937AF8FEFF6A45672DB27EC215CDCBB9C530BDC2F1F357DC69073AA6B3670B988F271386E1B2F72635AA83420CF2A393338D1C4E2B502C11CA2098481EA292ACD7A7BFF84945E9CC04B47B1967F09CC7A4BE5AAA749583318E561E5504F28472B0AEF60B854142AACFE6017786E8B5FB674C79D68B7B44842F18E2075B8679A99D43892847B09A0CADFBED479942F599A1666D96EEED85A222431F8637D6FB73F5E08465417DAAA47BD31BDCE2262E06E0B7E5BF6FA9703890997C275CE11CA52A92D0F4889F370164D4EFA8C461E2F3BBABA54F8A1DD165C3D5344DF572B67EF92DC3E8EF66926B673AD59FB5CE5FF5ECED31535CC347374D846F0373EDD82DEFAF4DEEF238A1ABFF44FDC2D9511E8AE69349B69749DD6D2AD5A2A95F579B3A0D232FAB4A915568409150F184F1F58114354235084F9B104F9DA8EC13D34AB93BD61620CC0B93118FF2299B80856CE2A40792F58E37990677E1C4A662D619F835DA5537873CDF05DCDB369AEB2E6159E351E9140DDD5E4FB57EAAD9CB5A41EAC61CD1E95D983832D0E8D35EEFF88E699A33A4AB0FC82B8A1B38F527933108FCC6533C9DE3AFCAE396246399DB878A9D500905A707B3C1F3F490E327A5C219151E7077C9E456F3DD046F6FAC8C3F98CC90FC558E87A7CB654320DA2B48F41BE0D8498A98DF562EE0A33FF61AF92E90DABA5323CF416C7E3B5E0A5190A36442F08AEE80B4886C407A689A81293D7CF6D7F88C112F7D166D4AE27147BCDC4C91E2880F5A4065B0AC7480BCDB9A0BCB790FDDF0370DF819986DA21FE700E15D449F5C0849B70C8A84569F205D74141F87B73D2EE3BB4D7A88F2DC90272219E39B5456F5CE8F0DA1E40E98C1B968112DC3664663B3C2A2B1402657CC0529AD6CED5BD2A177F9ED6FDA41378C8ADA6F33615516CFE0077E9426424F06DF517A5117F2882FFE3144245623DF8DDEF9869E5F6D328884018885209EA24F7F617837E7751D56EF3201D3FD607706B889728591E7C822ED97FF0B9DC111D5D0142387D88CB799345EF48235922632D6610F9E1C7AAAB6368EC0D4A76185686FCDA99499DC1B7F08C8A1BDDEF3F803CF168D818CEAC1F8B79E70C49E37B3E19B0096D1B6C2D4BF73DBF503401AE4EFCF9DEB8AC4A9C39E140CA9086E9927274E2A634813B1BBCF |
307 | 20170705123819 2 6 100 7679 2 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936B1FD105B | 307 | 20171207212011 2 6 100 7679 5 CF96EF3064F3389AC4D7DA6813F67988F77979BB89C86E3A82B8FBE165D96646B6665C28FE7F5D1742E288AF6A47CEAD57277CF7B7902B8B7F899CB512DDF0EDEC293B152ABA4085290AE8BF93AF988437B549319AF0E18E39805C80A4714E4108DC29DDF708365B8FAC1F220784A8AA89F4C04176DFCEFC652988A6F878937AF8FEFF6A45672DB27EC215CDCBB9C530BDC2F1F357DC69073AA6B3670B988F271386E1B2F72635AA83420CF2A393338D1C4E2B502C11CA2098481EA292ACD7A7BFF84945E9CC04B47B1967F09CC7A4BE5AAA749583318E561E5504F28472B0AEF60B854142AACFE6017786E8B5FB674C79D68B7B44842F18E2075B8679A99D43892847B09A0CADFBED479942F599A1666D96EEED85A222431F8637D6FB73F5E08465417DAAA47BD31BDCE2262E06E0B7E5BF6FA9703890997C275CE11CA52A92D0F4889F370164D4EFA8C461E2F3BBABA54F8A1DD165C3D5344DF572B67EF92DC3E8EF66926B673AD59FB5CE5FF5ECED31535CC347374D846F0373EDD82DEFAF4DEEF238A1ABFF44FDC2D9511E8AE69349B69749DD6D2AD5A2A95F579B3A0D232FAB4A915568409150F184F1F58114354235084F9B104F9DA8EC13D34AB93BD61620CC0B93118FF2299B80856CE2A40792F58E37990677E1C4A662D619F835DA5537873CDF05DCDB369AEB2E6159E351E9140DDD5E4FB57EAAD9CB5A41EAC61CD1E95D983832D0E8D35EEFF88E699A33A4AB0FC82B8A1B38F527933108FCC6533C9DE3AFCAE396246399DB878A9D500905A707B3C1F3F490E327A5C219151E7077C9E456F3DD046F6FAC8C3F98CC90FC558E87A7CB654320DA2B48F41BE0D8498A98DF562EE0A33FF61AF92E90DABA5323CF416C7E3B5E0A5190A36442F08AEE80B4886C407A689A81293D7CF6D7F88C112F7D166D4AE27147BCDC4C91E2880F5A4065B0AC7480BCDB9A0BCB790FDDF0370DF819986DA21FE700E15D449F5C0849B70C8A84569F205D74141F87B73D2EE3BB4D7A88F2DC90272219E39B5456F5CE8F0DA1E40E98C1B968112DC3664663B3C2A2B1402657CC0529AD6CED5BD2A177F9ED6FDA41378C8ADA6F33615516CFE0077E9426424F06DF517A5117F2882FFE3144245623DF8DDEF9869E5F6D328884018885209EA24F7F617837E7751D56EF3201D3FD607706B889728591E7C822ED97FF0B9DC111D5D0142387D88CB799345EF48235922632D6610F9E1C7AAAB6368EC0D4A76185686FCDA99499DC1B7F08C8A1BDDEF3F803CF168D818CEAC1F8B79E70C49E37B3E19B0096D1B6C2D4BF73DBF503401AE4EFCF9DEB8AC4A9C39E140CA9086E9927274E2A634815D9070F |
308 | 20170705150548 2 6 100 7679 2 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936B411305B | 308 | 20171208005123 2 6 100 7679 5 CF96EF3064F3389AC4D7DA6813F67988F77979BB89C86E3A82B8FBE165D96646B6665C28FE7F5D1742E288AF6A47CEAD57277CF7B7902B8B7F899CB512DDF0EDEC293B152ABA4085290AE8BF93AF988437B549319AF0E18E39805C80A4714E4108DC29DDF708365B8FAC1F220784A8AA89F4C04176DFCEFC652988A6F878937AF8FEFF6A45672DB27EC215CDCBB9C530BDC2F1F357DC69073AA6B3670B988F271386E1B2F72635AA83420CF2A393338D1C4E2B502C11CA2098481EA292ACD7A7BFF84945E9CC04B47B1967F09CC7A4BE5AAA749583318E561E5504F28472B0AEF60B854142AACFE6017786E8B5FB674C79D68B7B44842F18E2075B8679A99D43892847B09A0CADFBED479942F599A1666D96EEED85A222431F8637D6FB73F5E08465417DAAA47BD31BDCE2262E06E0B7E5BF6FA9703890997C275CE11CA52A92D0F4889F370164D4EFA8C461E2F3BBABA54F8A1DD165C3D5344DF572B67EF92DC3E8EF66926B673AD59FB5CE5FF5ECED31535CC347374D846F0373EDD82DEFAF4DEEF238A1ABFF44FDC2D9511E8AE69349B69749DD6D2AD5A2A95F579B3A0D232FAB4A915568409150F184F1F58114354235084F9B104F9DA8EC13D34AB93BD61620CC0B93118FF2299B80856CE2A40792F58E37990677E1C4A662D619F835DA5537873CDF05DCDB369AEB2E6159E351E9140DDD5E4FB57EAAD9CB5A41EAC61CD1E95D983832D0E8D35EEFF88E699A33A4AB0FC82B8A1B38F527933108FCC6533C9DE3AFCAE396246399DB878A9D500905A707B3C1F3F490E327A5C219151E7077C9E456F3DD046F6FAC8C3F98CC90FC558E87A7CB654320DA2B48F41BE0D8498A98DF562EE0A33FF61AF92E90DABA5323CF416C7E3B5E0A5190A36442F08AEE80B4886C407A689A81293D7CF6D7F88C112F7D166D4AE27147BCDC4C91E2880F5A4065B0AC7480BCDB9A0BCB790FDDF0370DF819986DA21FE700E15D449F5C0849B70C8A84569F205D74141F87B73D2EE3BB4D7A88F2DC90272219E39B5456F5CE8F0DA1E40E98C1B968112DC3664663B3C2A2B1402657CC0529AD6CED5BD2A177F9ED6FDA41378C8ADA6F33615516CFE0077E9426424F06DF517A5117F2882FFE3144245623DF8DDEF9869E5F6D328884018885209EA24F7F617837E7751D56EF3201D3FD607706B889728591E7C822ED97FF0B9DC111D5D0142387D88CB799345EF48235922632D6610F9E1C7AAAB6368EC0D4A76185686FCDA99499DC1B7F08C8A1BDDEF3F803CF168D818CEAC1F8B79E70C49E37B3E19B0096D1B6C2D4BF73DBF503401AE4EFCF9DEB8AC4A9C39E140CA9086E9927274E2A6348189250C7 |
309 | 20170705152103 2 6 100 7679 2 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936B43D87FB | 309 | 20171208011303 2 6 100 7679 2 CF96EF3064F3389AC4D7DA6813F67988F77979BB89C86E3A82B8FBE165D96646B6665C28FE7F5D1742E288AF6A47CEAD57277CF7B7902B8B7F899CB512DDF0EDEC293B152ABA4085290AE8BF93AF988437B549319AF0E18E39805C80A4714E4108DC29DDF708365B8FAC1F220784A8AA89F4C04176DFCEFC652988A6F878937AF8FEFF6A45672DB27EC215CDCBB9C530BDC2F1F357DC69073AA6B3670B988F271386E1B2F72635AA83420CF2A393338D1C4E2B502C11CA2098481EA292ACD7A7BFF84945E9CC04B47B1967F09CC7A4BE5AAA749583318E561E5504F28472B0AEF60B854142AACFE6017786E8B5FB674C79D68B7B44842F18E2075B8679A99D43892847B09A0CADFBED479942F599A1666D96EEED85A222431F8637D6FB73F5E08465417DAAA47BD31BDCE2262E06E0B7E5BF6FA9703890997C275CE11CA52A92D0F4889F370164D4EFA8C461E2F3BBABA54F8A1DD165C3D5344DF572B67EF92DC3E8EF66926B673AD59FB5CE5FF5ECED31535CC347374D846F0373EDD82DEFAF4DEEF238A1ABFF44FDC2D9511E8AE69349B69749DD6D2AD5A2A95F579B3A0D232FAB4A915568409150F184F1F58114354235084F9B104F9DA8EC13D34AB93BD61620CC0B93118FF2299B80856CE2A40792F58E37990677E1C4A662D619F835DA5537873CDF05DCDB369AEB2E6159E351E9140DDD5E4FB57EAAD9CB5A41EAC61CD1E95D983832D0E8D35EEFF88E699A33A4AB0FC82B8A1B38F527933108FCC6533C9DE3AFCAE396246399DB878A9D500905A707B3C1F3F490E327A5C219151E7077C9E456F3DD046F6FAC8C3F98CC90FC558E87A7CB654320DA2B48F41BE0D8498A98DF562EE0A33FF61AF92E90DABA5323CF416C7E3B5E0A5190A36442F08AEE80B4886C407A689A81293D7CF6D7F88C112F7D166D4AE27147BCDC4C91E2880F5A4065B0AC7480BCDB9A0BCB790FDDF0370DF819986DA21FE700E15D449F5C0849B70C8A84569F205D74141F87B73D2EE3BB4D7A88F2DC90272219E39B5456F5CE8F0DA1E40E98C1B968112DC3664663B3C2A2B1402657CC0529AD6CED5BD2A177F9ED6FDA41378C8ADA6F33615516CFE0077E9426424F06DF517A5117F2882FFE3144245623DF8DDEF9869E5F6D328884018885209EA24F7F617837E7751D56EF3201D3FD607706B889728591E7C822ED97FF0B9DC111D5D0142387D88CB799345EF48235922632D6610F9E1C7AAAB6368EC0D4A76185686FCDA99499DC1B7F08C8A1BDDEF3F803CF168D818CEAC1F8B79E70C49E37B3E19B0096D1B6C2D4BF73DBF503401AE4EFCF9DEB8AC4A9C39E140CA9086E9927274E2A634818D35CE3 |
310 | 20170705174143 2 6 100 7679 5 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936B637D557 | 310 | 20171208021235 2 6 100 7679 2 CF96EF3064F3389AC4D7DA6813F67988F77979BB89C86E3A82B8FBE165D96646B6665C28FE7F5D1742E288AF6A47CEAD57277CF7B7902B8B7F899CB512DDF0EDEC293B152ABA4085290AE8BF93AF988437B549319AF0E18E39805C80A4714E4108DC29DDF708365B8FAC1F220784A8AA89F4C04176DFCEFC652988A6F878937AF8FEFF6A45672DB27EC215CDCBB9C530BDC2F1F357DC69073AA6B3670B988F271386E1B2F72635AA83420CF2A393338D1C4E2B502C11CA2098481EA292ACD7A7BFF84945E9CC04B47B1967F09CC7A4BE5AAA749583318E561E5504F28472B0AEF60B854142AACFE6017786E8B5FB674C79D68B7B44842F18E2075B8679A99D43892847B09A0CADFBED479942F599A1666D96EEED85A222431F8637D6FB73F5E08465417DAAA47BD31BDCE2262E06E0B7E5BF6FA9703890997C275CE11CA52A92D0F4889F370164D4EFA8C461E2F3BBABA54F8A1DD165C3D5344DF572B67EF92DC3E8EF66926B673AD59FB5CE5FF5ECED31535CC347374D846F0373EDD82DEFAF4DEEF238A1ABFF44FDC2D9511E8AE69349B69749DD6D2AD5A2A95F579B3A0D232FAB4A915568409150F184F1F58114354235084F9B104F9DA8EC13D34AB93BD61620CC0B93118FF2299B80856CE2A40792F58E37990677E1C4A662D619F835DA5537873CDF05DCDB369AEB2E6159E351E9140DDD5E4FB57EAAD9CB5A41EAC61CD1E95D983832D0E8D35EEFF88E699A33A4AB0FC82B8A1B38F527933108FCC6533C9DE3AFCAE396246399DB878A9D500905A707B3C1F3F490E327A5C219151E7077C9E456F3DD046F6FAC8C3F98CC90FC558E87A7CB654320DA2B48F41BE0D8498A98DF562EE0A33FF61AF92E90DABA5323CF416C7E3B5E0A5190A36442F08AEE80B4886C407A689A81293D7CF6D7F88C112F7D166D4AE27147BCDC4C91E2880F5A4065B0AC7480BCDB9A0BCB790FDDF0370DF819986DA21FE700E15D449F5C0849B70C8A84569F205D74141F87B73D2EE3BB4D7A88F2DC90272219E39B5456F5CE8F0DA1E40E98C1B968112DC3664663B3C2A2B1402657CC0529AD6CED5BD2A177F9ED6FDA41378C8ADA6F33615516CFE0077E9426424F06DF517A5117F2882FFE3144245623DF8DDEF9869E5F6D328884018885209EA24F7F617837E7751D56EF3201D3FD607706B889728591E7C822ED97FF0B9DC111D5D0142387D88CB799345EF48235922632D6610F9E1C7AAAB6368EC0D4A76185686FCDA99499DC1B7F08C8A1BDDEF3F803CF168D818CEAC1F8B79E70C49E37B3E19B0096D1B6C2D4BF73DBF503401AE4EFCF9DEB8AC4A9C39E140CA9086E9927274E2A63481996D303 |
311 | 20170706120313 2 6 100 7679 2 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936C5C0BE63 | 311 | 20171208133603 2 6 100 7679 5 CF96EF3064F3389AC4D7DA6813F67988F77979BB89C86E3A82B8FBE165D96646B6665C28FE7F5D1742E288AF6A47CEAD57277CF7B7902B8B7F899CB512DDF0EDEC293B152ABA4085290AE8BF93AF988437B549319AF0E18E39805C80A4714E4108DC29DDF708365B8FAC1F220784A8AA89F4C04176DFCEFC652988A6F878937AF8FEFF6A45672DB27EC215CDCBB9C530BDC2F1F357DC69073AA6B3670B988F271386E1B2F72635AA83420CF2A393338D1C4E2B502C11CA2098481EA292ACD7A7BFF84945E9CC04B47B1967F09CC7A4BE5AAA749583318E561E5504F28472B0AEF60B854142AACFE6017786E8B5FB674C79D68B7B44842F18E2075B8679A99D43892847B09A0CADFBED479942F599A1666D96EEED85A222431F8637D6FB73F5E08465417DAAA47BD31BDCE2262E06E0B7E5BF6FA9703890997C275CE11CA52A92D0F4889F370164D4EFA8C461E2F3BBABA54F8A1DD165C3D5344DF572B67EF92DC3E8EF66926B673AD59FB5CE5FF5ECED31535CC347374D846F0373EDD82DEFAF4DEEF238A1ABFF44FDC2D9511E8AE69349B69749DD6D2AD5A2A95F579B3A0D232FAB4A915568409150F184F1F58114354235084F9B104F9DA8EC13D34AB93BD61620CC0B93118FF2299B80856CE2A40792F58E37990677E1C4A662D619F835DA5537873CDF05DCDB369AEB2E6159E351E9140DDD5E4FB57EAAD9CB5A41EAC61CD1E95D983832D0E8D35EEFF88E699A33A4AB0FC82B8A1B38F527933108FCC6533C9DE3AFCAE396246399DB878A9D500905A707B3C1F3F490E327A5C219151E7077C9E456F3DD046F6FAC8C3F98CC90FC558E87A7CB654320DA2B48F41BE0D8498A98DF562EE0A33FF61AF92E90DABA5323CF416C7E3B5E0A5190A36442F08AEE80B4886C407A689A81293D7CF6D7F88C112F7D166D4AE27147BCDC4C91E2880F5A4065B0AC7480BCDB9A0BCB790FDDF0370DF819986DA21FE700E15D449F5C0849B70C8A84569F205D74141F87B73D2EE3BB4D7A88F2DC90272219E39B5456F5CE8F0DA1E40E98C1B968112DC3664663B3C2A2B1402657CC0529AD6CED5BD2A177F9ED6FDA41378C8ADA6F33615516CFE0077E9426424F06DF517A5117F2882FFE3144245623DF8DDEF9869E5F6D328884018885209EA24F7F617837E7751D56EF3201D3FD607706B889728591E7C822ED97FF0B9DC111D5D0142387D88CB799345EF48235922632D6610F9E1C7AAAB6368EC0D4A76185686FCDA99499DC1B7F08C8A1BDDEF3F803CF168D818CEAC1F8B79E70C49E37B3E19B0096D1B6C2D4BF73DBF503401AE4EFCF9DEB8AC4A9C39E140CA9086E9927274E2A634822901357 |
312 | 20170706131942 2 6 100 7679 5 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936C6CA2F0F | 312 | 20171208151649 2 6 100 7679 2 CF96EF3064F3389AC4D7DA6813F67988F77979BB89C86E3A82B8FBE165D96646B6665C28FE7F5D1742E288AF6A47CEAD57277CF7B7902B8B7F899CB512DDF0EDEC293B152ABA4085290AE8BF93AF988437B549319AF0E18E39805C80A4714E4108DC29DDF708365B8FAC1F220784A8AA89F4C04176DFCEFC652988A6F878937AF8FEFF6A45672DB27EC215CDCBB9C530BDC2F1F357DC69073AA6B3670B988F271386E1B2F72635AA83420CF2A393338D1C4E2B502C11CA2098481EA292ACD7A7BFF84945E9CC04B47B1967F09CC7A4BE5AAA749583318E561E5504F28472B0AEF60B854142AACFE6017786E8B5FB674C79D68B7B44842F18E2075B8679A99D43892847B09A0CADFBED479942F599A1666D96EEED85A222431F8637D6FB73F5E08465417DAAA47BD31BDCE2262E06E0B7E5BF6FA9703890997C275CE11CA52A92D0F4889F370164D4EFA8C461E2F3BBABA54F8A1DD165C3D5344DF572B67EF92DC3E8EF66926B673AD59FB5CE5FF5ECED31535CC347374D846F0373EDD82DEFAF4DEEF238A1ABFF44FDC2D9511E8AE69349B69749DD6D2AD5A2A95F579B3A0D232FAB4A915568409150F184F1F58114354235084F9B104F9DA8EC13D34AB93BD61620CC0B93118FF2299B80856CE2A40792F58E37990677E1C4A662D619F835DA5537873CDF05DCDB369AEB2E6159E351E9140DDD5E4FB57EAAD9CB5A41EAC61CD1E95D983832D0E8D35EEFF88E699A33A4AB0FC82B8A1B38F527933108FCC6533C9DE3AFCAE396246399DB878A9D500905A707B3C1F3F490E327A5C219151E7077C9E456F3DD046F6FAC8C3F98CC90FC558E87A7CB654320DA2B48F41BE0D8498A98DF562EE0A33FF61AF92E90DABA5323CF416C7E3B5E0A5190A36442F08AEE80B4886C407A689A81293D7CF6D7F88C112F7D166D4AE27147BCDC4C91E2880F5A4065B0AC7480BCDB9A0BCB790FDDF0370DF819986DA21FE700E15D449F5C0849B70C8A84569F205D74141F87B73D2EE3BB4D7A88F2DC90272219E39B5456F5CE8F0DA1E40E98C1B968112DC3664663B3C2A2B1402657CC0529AD6CED5BD2A177F9ED6FDA41378C8ADA6F33615516CFE0077E9426424F06DF517A5117F2882FFE3144245623DF8DDEF9869E5F6D328884018885209EA24F7F617837E7751D56EF3201D3FD607706B889728591E7C822ED97FF0B9DC111D5D0142387D88CB799345EF48235922632D6610F9E1C7AAAB6368EC0D4A76185686FCDA99499DC1B7F08C8A1BDDEF3F803CF168D818CEAC1F8B79E70C49E37B3E19B0096D1B6C2D4BF73DBF503401AE4EFCF9DEB8AC4A9C39E140CA9086E9927274E2A634823DEBFBB |
313 | 20170706141404 2 6 100 7679 2 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936C781A68B | 313 | 20171208175501 2 6 100 7679 2 CF96EF3064F3389AC4D7DA6813F67988F77979BB89C86E3A82B8FBE165D96646B6665C28FE7F5D1742E288AF6A47CEAD57277CF7B7902B8B7F899CB512DDF0EDEC293B152ABA4085290AE8BF93AF988437B549319AF0E18E39805C80A4714E4108DC29DDF708365B8FAC1F220784A8AA89F4C04176DFCEFC652988A6F878937AF8FEFF6A45672DB27EC215CDCBB9C530BDC2F1F357DC69073AA6B3670B988F271386E1B2F72635AA83420CF2A393338D1C4E2B502C11CA2098481EA292ACD7A7BFF84945E9CC04B47B1967F09CC7A4BE5AAA749583318E561E5504F28472B0AEF60B854142AACFE6017786E8B5FB674C79D68B7B44842F18E2075B8679A99D43892847B09A0CADFBED479942F599A1666D96EEED85A222431F8637D6FB73F5E08465417DAAA47BD31BDCE2262E06E0B7E5BF6FA9703890997C275CE11CA52A92D0F4889F370164D4EFA8C461E2F3BBABA54F8A1DD165C3D5344DF572B67EF92DC3E8EF66926B673AD59FB5CE5FF5ECED31535CC347374D846F0373EDD82DEFAF4DEEF238A1ABFF44FDC2D9511E8AE69349B69749DD6D2AD5A2A95F579B3A0D232FAB4A915568409150F184F1F58114354235084F9B104F9DA8EC13D34AB93BD61620CC0B93118FF2299B80856CE2A40792F58E37990677E1C4A662D619F835DA5537873CDF05DCDB369AEB2E6159E351E9140DDD5E4FB57EAAD9CB5A41EAC61CD1E95D983832D0E8D35EEFF88E699A33A4AB0FC82B8A1B38F527933108FCC6533C9DE3AFCAE396246399DB878A9D500905A707B3C1F3F490E327A5C219151E7077C9E456F3DD046F6FAC8C3F98CC90FC558E87A7CB654320DA2B48F41BE0D8498A98DF562EE0A33FF61AF92E90DABA5323CF416C7E3B5E0A5190A36442F08AEE80B4886C407A689A81293D7CF6D7F88C112F7D166D4AE27147BCDC4C91E2880F5A4065B0AC7480BCDB9A0BCB790FDDF0370DF819986DA21FE700E15D449F5C0849B70C8A84569F205D74141F87B73D2EE3BB4D7A88F2DC90272219E39B5456F5CE8F0DA1E40E98C1B968112DC3664663B3C2A2B1402657CC0529AD6CED5BD2A177F9ED6FDA41378C8ADA6F33615516CFE0077E9426424F06DF517A5117F2882FFE3144245623DF8DDEF9869E5F6D328884018885209EA24F7F617837E7751D56EF3201D3FD607706B889728591E7C822ED97FF0B9DC111D5D0142387D88CB799345EF48235922632D6610F9E1C7AAAB6368EC0D4A76185686FCDA99499DC1B7F08C8A1BDDEF3F803CF168D818CEAC1F8B79E70C49E37B3E19B0096D1B6C2D4BF73DBF503401AE4EFCF9DEB8AC4A9C39E140CA9086E9927274E2A634825D190FB |
314 | 20170706153843 2 6 100 7679 2 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936C8A1C2AB | 314 | 20171208193058 2 6 100 7679 5 CF96EF3064F3389AC4D7DA6813F67988F77979BB89C86E3A82B8FBE165D96646B6665C28FE7F5D1742E288AF6A47CEAD57277CF7B7902B8B7F899CB512DDF0EDEC293B152ABA4085290AE8BF93AF988437B549319AF0E18E39805C80A4714E4108DC29DDF708365B8FAC1F220784A8AA89F4C04176DFCEFC652988A6F878937AF8FEFF6A45672DB27EC215CDCBB9C530BDC2F1F357DC69073AA6B3670B988F271386E1B2F72635AA83420CF2A393338D1C4E2B502C11CA2098481EA292ACD7A7BFF84945E9CC04B47B1967F09CC7A4BE5AAA749583318E561E5504F28472B0AEF60B854142AACFE6017786E8B5FB674C79D68B7B44842F18E2075B8679A99D43892847B09A0CADFBED479942F599A1666D96EEED85A222431F8637D6FB73F5E08465417DAAA47BD31BDCE2262E06E0B7E5BF6FA9703890997C275CE11CA52A92D0F4889F370164D4EFA8C461E2F3BBABA54F8A1DD165C3D5344DF572B67EF92DC3E8EF66926B673AD59FB5CE5FF5ECED31535CC347374D846F0373EDD82DEFAF4DEEF238A1ABFF44FDC2D9511E8AE69349B69749DD6D2AD5A2A95F579B3A0D232FAB4A915568409150F184F1F58114354235084F9B104F9DA8EC13D34AB93BD61620CC0B93118FF2299B80856CE2A40792F58E37990677E1C4A662D619F835DA5537873CDF05DCDB369AEB2E6159E351E9140DDD5E4FB57EAAD9CB5A41EAC61CD1E95D983832D0E8D35EEFF88E699A33A4AB0FC82B8A1B38F527933108FCC6533C9DE3AFCAE396246399DB878A9D500905A707B3C1F3F490E327A5C219151E7077C9E456F3DD046F6FAC8C3F98CC90FC558E87A7CB654320DA2B48F41BE0D8498A98DF562EE0A33FF61AF92E90DABA5323CF416C7E3B5E0A5190A36442F08AEE80B4886C407A689A81293D7CF6D7F88C112F7D166D4AE27147BCDC4C91E2880F5A4065B0AC7480BCDB9A0BCB790FDDF0370DF819986DA21FE700E15D449F5C0849B70C8A84569F205D74141F87B73D2EE3BB4D7A88F2DC90272219E39B5456F5CE8F0DA1E40E98C1B968112DC3664663B3C2A2B1402657CC0529AD6CED5BD2A177F9ED6FDA41378C8ADA6F33615516CFE0077E9426424F06DF517A5117F2882FFE3144245623DF8DDEF9869E5F6D328884018885209EA24F7F617837E7751D56EF3201D3FD607706B889728591E7C822ED97FF0B9DC111D5D0142387D88CB799345EF48235922632D6610F9E1C7AAAB6368EC0D4A76185686FCDA99499DC1B7F08C8A1BDDEF3F803CF168D818CEAC1F8B79E70C49E37B3E19B0096D1B6C2D4BF73DBF503401AE4EFCF9DEB8AC4A9C39E140CA9086E9927274E2A634826F30FB7 |
315 | 20170706173242 2 6 100 7679 5 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936CA322EEF | 315 | 20171209011341 2 6 100 7679 2 CF96EF3064F3389AC4D7DA6813F67988F77979BB89C86E3A82B8FBE165D96646B6665C28FE7F5D1742E288AF6A47CEAD57277CF7B7902B8B7F899CB512DDF0EDEC293B152ABA4085290AE8BF93AF988437B549319AF0E18E39805C80A4714E4108DC29DDF708365B8FAC1F220784A8AA89F4C04176DFCEFC652988A6F878937AF8FEFF6A45672DB27EC215CDCBB9C530BDC2F1F357DC69073AA6B3670B988F271386E1B2F72635AA83420CF2A393338D1C4E2B502C11CA2098481EA292ACD7A7BFF84945E9CC04B47B1967F09CC7A4BE5AAA749583318E561E5504F28472B0AEF60B854142AACFE6017786E8B5FB674C79D68B7B44842F18E2075B8679A99D43892847B09A0CADFBED479942F599A1666D96EEED85A222431F8637D6FB73F5E08465417DAAA47BD31BDCE2262E06E0B7E5BF6FA9703890997C275CE11CA52A92D0F4889F370164D4EFA8C461E2F3BBABA54F8A1DD165C3D5344DF572B67EF92DC3E8EF66926B673AD59FB5CE5FF5ECED31535CC347374D846F0373EDD82DEFAF4DEEF238A1ABFF44FDC2D9511E8AE69349B69749DD6D2AD5A2A95F579B3A0D232FAB4A915568409150F184F1F58114354235084F9B104F9DA8EC13D34AB93BD61620CC0B93118FF2299B80856CE2A40792F58E37990677E1C4A662D619F835DA5537873CDF05DCDB369AEB2E6159E351E9140DDD5E4FB57EAAD9CB5A41EAC61CD1E95D983832D0E8D35EEFF88E699A33A4AB0FC82B8A1B38F527933108FCC6533C9DE3AFCAE396246399DB878A9D500905A707B3C1F3F490E327A5C219151E7077C9E456F3DD046F6FAC8C3F98CC90FC558E87A7CB654320DA2B48F41BE0D8498A98DF562EE0A33FF61AF92E90DABA5323CF416C7E3B5E0A5190A36442F08AEE80B4886C407A689A81293D7CF6D7F88C112F7D166D4AE27147BCDC4C91E2880F5A4065B0AC7480BCDB9A0BCB790FDDF0370DF819986DA21FE700E15D449F5C0849B70C8A84569F205D74141F87B73D2EE3BB4D7A88F2DC90272219E39B5456F5CE8F0DA1E40E98C1B968112DC3664663B3C2A2B1402657CC0529AD6CED5BD2A177F9ED6FDA41378C8ADA6F33615516CFE0077E9426424F06DF517A5117F2882FFE3144245623DF8DDEF9869E5F6D328884018885209EA24F7F617837E7751D56EF3201D3FD607706B889728591E7C822ED97FF0B9DC111D5D0142387D88CB799345EF48235922632D6610F9E1C7AAAB6368EC0D4A76185686FCDA99499DC1B7F08C8A1BDDEF3F803CF168D818CEAC1F8B79E70C49E37B3E19B0096D1B6C2D4BF73DBF503401AE4EFCF9DEB8AC4A9C39E140CA9086E9927274E2A63482B5BD51B |
316 | 20170706183451 2 6 100 7679 2 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936CB02939B | 316 | 20171209030814 2 6 100 7679 5 CF96EF3064F3389AC4D7DA6813F67988F77979BB89C86E3A82B8FBE165D96646B6665C28FE7F5D1742E288AF6A47CEAD57277CF7B7902B8B7F899CB512DDF0EDEC293B152ABA4085290AE8BF93AF988437B549319AF0E18E39805C80A4714E4108DC29DDF708365B8FAC1F220784A8AA89F4C04176DFCEFC652988A6F878937AF8FEFF6A45672DB27EC215CDCBB9C530BDC2F1F357DC69073AA6B3670B988F271386E1B2F72635AA83420CF2A393338D1C4E2B502C11CA2098481EA292ACD7A7BFF84945E9CC04B47B1967F09CC7A4BE5AAA749583318E561E5504F28472B0AEF60B854142AACFE6017786E8B5FB674C79D68B7B44842F18E2075B8679A99D43892847B09A0CADFBED479942F599A1666D96EEED85A222431F8637D6FB73F5E08465417DAAA47BD31BDCE2262E06E0B7E5BF6FA9703890997C275CE11CA52A92D0F4889F370164D4EFA8C461E2F3BBABA54F8A1DD165C3D5344DF572B67EF92DC3E8EF66926B673AD59FB5CE5FF5ECED31535CC347374D846F0373EDD82DEFAF4DEEF238A1ABFF44FDC2D9511E8AE69349B69749DD6D2AD5A2A95F579B3A0D232FAB4A915568409150F184F1F58114354235084F9B104F9DA8EC13D34AB93BD61620CC0B93118FF2299B80856CE2A40792F58E37990677E1C4A662D619F835DA5537873CDF05DCDB369AEB2E6159E351E9140DDD5E4FB57EAAD9CB5A41EAC61CD1E95D983832D0E8D35EEFF88E699A33A4AB0FC82B8A1B38F527933108FCC6533C9DE3AFCAE396246399DB878A9D500905A707B3C1F3F490E327A5C219151E7077C9E456F3DD046F6FAC8C3F98CC90FC558E87A7CB654320DA2B48F41BE0D8498A98DF562EE0A33FF61AF92E90DABA5323CF416C7E3B5E0A5190A36442F08AEE80B4886C407A689A81293D7CF6D7F88C112F7D166D4AE27147BCDC4C91E2880F5A4065B0AC7480BCDB9A0BCB790FDDF0370DF819986DA21FE700E15D449F5C0849B70C8A84569F205D74141F87B73D2EE3BB4D7A88F2DC90272219E39B5456F5CE8F0DA1E40E98C1B968112DC3664663B3C2A2B1402657CC0529AD6CED5BD2A177F9ED6FDA41378C8ADA6F33615516CFE0077E9426424F06DF517A5117F2882FFE3144245623DF8DDEF9869E5F6D328884018885209EA24F7F617837E7751D56EF3201D3FD607706B889728591E7C822ED97FF0B9DC111D5D0142387D88CB799345EF48235922632D6610F9E1C7AAAB6368EC0D4A76185686FCDA99499DC1B7F08C8A1BDDEF3F803CF168D818CEAC1F8B79E70C49E37B3E19B0096D1B6C2D4BF73DBF503401AE4EFCF9DEB8AC4A9C39E140CA9086E9927274E2A63482CD52277 |
317 | 20170706184330 2 6 100 7679 2 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936CB163C7B | 317 | 20171209040411 2 6 100 7679 2 CF96EF3064F3389AC4D7DA6813F67988F77979BB89C86E3A82B8FBE165D96646B6665C28FE7F5D1742E288AF6A47CEAD57277CF7B7902B8B7F899CB512DDF0EDEC293B152ABA4085290AE8BF93AF988437B549319AF0E18E39805C80A4714E4108DC29DDF708365B8FAC1F220784A8AA89F4C04176DFCEFC652988A6F878937AF8FEFF6A45672DB27EC215CDCBB9C530BDC2F1F357DC69073AA6B3670B988F271386E1B2F72635AA83420CF2A393338D1C4E2B502C11CA2098481EA292ACD7A7BFF84945E9CC04B47B1967F09CC7A4BE5AAA749583318E561E5504F28472B0AEF60B854142AACFE6017786E8B5FB674C79D68B7B44842F18E2075B8679A99D43892847B09A0CADFBED479942F599A1666D96EEED85A222431F8637D6FB73F5E08465417DAAA47BD31BDCE2262E06E0B7E5BF6FA9703890997C275CE11CA52A92D0F4889F370164D4EFA8C461E2F3BBABA54F8A1DD165C3D5344DF572B67EF92DC3E8EF66926B673AD59FB5CE5FF5ECED31535CC347374D846F0373EDD82DEFAF4DEEF238A1ABFF44FDC2D9511E8AE69349B69749DD6D2AD5A2A95F579B3A0D232FAB4A915568409150F184F1F58114354235084F9B104F9DA8EC13D34AB93BD61620CC0B93118FF2299B80856CE2A40792F58E37990677E1C4A662D619F835DA5537873CDF05DCDB369AEB2E6159E351E9140DDD5E4FB57EAAD9CB5A41EAC61CD1E95D983832D0E8D35EEFF88E699A33A4AB0FC82B8A1B38F527933108FCC6533C9DE3AFCAE396246399DB878A9D500905A707B3C1F3F490E327A5C219151E7077C9E456F3DD046F6FAC8C3F98CC90FC558E87A7CB654320DA2B48F41BE0D8498A98DF562EE0A33FF61AF92E90DABA5323CF416C7E3B5E0A5190A36442F08AEE80B4886C407A689A81293D7CF6D7F88C112F7D166D4AE27147BCDC4C91E2880F5A4065B0AC7480BCDB9A0BCB790FDDF0370DF819986DA21FE700E15D449F5C0849B70C8A84569F205D74141F87B73D2EE3BB4D7A88F2DC90272219E39B5456F5CE8F0DA1E40E98C1B968112DC3664663B3C2A2B1402657CC0529AD6CED5BD2A177F9ED6FDA41378C8ADA6F33615516CFE0077E9426424F06DF517A5117F2882FFE3144245623DF8DDEF9869E5F6D328884018885209EA24F7F617837E7751D56EF3201D3FD607706B889728591E7C822ED97FF0B9DC111D5D0142387D88CB799345EF48235922632D6610F9E1C7AAAB6368EC0D4A76185686FCDA99499DC1B7F08C8A1BDDEF3F803CF168D818CEAC1F8B79E70C49E37B3E19B0096D1B6C2D4BF73DBF503401AE4EFCF9DEB8AC4A9C39E140CA9086E9927274E2A63482D874DDB |
318 | 20170706195815 2 6 100 7679 2 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936CC15613B | 318 | 20171209121718 2 6 100 7679 2 CF96EF3064F3389AC4D7DA6813F67988F77979BB89C86E3A82B8FBE165D96646B6665C28FE7F5D1742E288AF6A47CEAD57277CF7B7902B8B7F899CB512DDF0EDEC293B152ABA4085290AE8BF93AF988437B549319AF0E18E39805C80A4714E4108DC29DDF708365B8FAC1F220784A8AA89F4C04176DFCEFC652988A6F878937AF8FEFF6A45672DB27EC215CDCBB9C530BDC2F1F357DC69073AA6B3670B988F271386E1B2F72635AA83420CF2A393338D1C4E2B502C11CA2098481EA292ACD7A7BFF84945E9CC04B47B1967F09CC7A4BE5AAA749583318E561E5504F28472B0AEF60B854142AACFE6017786E8B5FB674C79D68B7B44842F18E2075B8679A99D43892847B09A0CADFBED479942F599A1666D96EEED85A222431F8637D6FB73F5E08465417DAAA47BD31BDCE2262E06E0B7E5BF6FA9703890997C275CE11CA52A92D0F4889F370164D4EFA8C461E2F3BBABA54F8A1DD165C3D5344DF572B67EF92DC3E8EF66926B673AD59FB5CE5FF5ECED31535CC347374D846F0373EDD82DEFAF4DEEF238A1ABFF44FDC2D9511E8AE69349B69749DD6D2AD5A2A95F579B3A0D232FAB4A915568409150F184F1F58114354235084F9B104F9DA8EC13D34AB93BD61620CC0B93118FF2299B80856CE2A40792F58E37990677E1C4A662D619F835DA5537873CDF05DCDB369AEB2E6159E351E9140DDD5E4FB57EAAD9CB5A41EAC61CD1E95D983832D0E8D35EEFF88E699A33A4AB0FC82B8A1B38F527933108FCC6533C9DE3AFCAE396246399DB878A9D500905A707B3C1F3F490E327A5C219151E7077C9E456F3DD046F6FAC8C3F98CC90FC558E87A7CB654320DA2B48F41BE0D8498A98DF562EE0A33FF61AF92E90DABA5323CF416C7E3B5E0A5190A36442F08AEE80B4886C407A689A81293D7CF6D7F88C112F7D166D4AE27147BCDC4C91E2880F5A4065B0AC7480BCDB9A0BCB790FDDF0370DF819986DA21FE700E15D449F5C0849B70C8A84569F205D74141F87B73D2EE3BB4D7A88F2DC90272219E39B5456F5CE8F0DA1E40E98C1B968112DC3664663B3C2A2B1402657CC0529AD6CED5BD2A177F9ED6FDA41378C8ADA6F33615516CFE0077E9426424F06DF517A5117F2882FFE3144245623DF8DDEF9869E5F6D328884018885209EA24F7F617837E7751D56EF3201D3FD607706B889728591E7C822ED97FF0B9DC111D5D0142387D88CB799345EF48235922632D6610F9E1C7AAAB6368EC0D4A76185686FCDA99499DC1B7F08C8A1BDDEF3F803CF168D818CEAC1F8B79E70C49E37B3E19B0096D1B6C2D4BF73DBF503401AE4EFCF9DEB8AC4A9C39E140CA9086E9927274E2A634833C845DB |
319 | 20170707002909 2 6 100 7679 2 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936CFBE39B3 | 319 | 20171209182655 2 6 100 7679 5 CF96EF3064F3389AC4D7DA6813F67988F77979BB89C86E3A82B8FBE165D96646B6665C28FE7F5D1742E288AF6A47CEAD57277CF7B7902B8B7F899CB512DDF0EDEC293B152ABA4085290AE8BF93AF988437B549319AF0E18E39805C80A4714E4108DC29DDF708365B8FAC1F220784A8AA89F4C04176DFCEFC652988A6F878937AF8FEFF6A45672DB27EC215CDCBB9C530BDC2F1F357DC69073AA6B3670B988F271386E1B2F72635AA83420CF2A393338D1C4E2B502C11CA2098481EA292ACD7A7BFF84945E9CC04B47B1967F09CC7A4BE5AAA749583318E561E5504F28472B0AEF60B854142AACFE6017786E8B5FB674C79D68B7B44842F18E2075B8679A99D43892847B09A0CADFBED479942F599A1666D96EEED85A222431F8637D6FB73F5E08465417DAAA47BD31BDCE2262E06E0B7E5BF6FA9703890997C275CE11CA52A92D0F4889F370164D4EFA8C461E2F3BBABA54F8A1DD165C3D5344DF572B67EF92DC3E8EF66926B673AD59FB5CE5FF5ECED31535CC347374D846F0373EDD82DEFAF4DEEF238A1ABFF44FDC2D9511E8AE69349B69749DD6D2AD5A2A95F579B3A0D232FAB4A915568409150F184F1F58114354235084F9B104F9DA8EC13D34AB93BD61620CC0B93118FF2299B80856CE2A40792F58E37990677E1C4A662D619F835DA5537873CDF05DCDB369AEB2E6159E351E9140DDD5E4FB57EAAD9CB5A41EAC61CD1E95D983832D0E8D35EEFF88E699A33A4AB0FC82B8A1B38F527933108FCC6533C9DE3AFCAE396246399DB878A9D500905A707B3C1F3F490E327A5C219151E7077C9E456F3DD046F6FAC8C3F98CC90FC558E87A7CB654320DA2B48F41BE0D8498A98DF562EE0A33FF61AF92E90DABA5323CF416C7E3B5E0A5190A36442F08AEE80B4886C407A689A81293D7CF6D7F88C112F7D166D4AE27147BCDC4C91E2880F5A4065B0AC7480BCDB9A0BCB790FDDF0370DF819986DA21FE700E15D449F5C0849B70C8A84569F205D74141F87B73D2EE3BB4D7A88F2DC90272219E39B5456F5CE8F0DA1E40E98C1B968112DC3664663B3C2A2B1402657CC0529AD6CED5BD2A177F9ED6FDA41378C8ADA6F33615516CFE0077E9426424F06DF517A5117F2882FFE3144245623DF8DDEF9869E5F6D328884018885209EA24F7F617837E7751D56EF3201D3FD607706B889728591E7C822ED97FF0B9DC111D5D0142387D88CB799345EF48235922632D6610F9E1C7AAAB6368EC0D4A76185686FCDA99499DC1B7F08C8A1BDDEF3F803CF168D818CEAC1F8B79E70C49E37B3E19B0096D1B6C2D4BF73DBF503401AE4EFCF9DEB8AC4A9C39E140CA9086E9927274E2A6348386E2CD7 |
320 | 20170707012259 2 6 100 7679 5 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936D06F0ADF | 320 | 20171209190603 2 6 100 7679 5 CF96EF3064F3389AC4D7DA6813F67988F77979BB89C86E3A82B8FBE165D96646B6665C28FE7F5D1742E288AF6A47CEAD57277CF7B7902B8B7F899CB512DDF0EDEC293B152ABA4085290AE8BF93AF988437B549319AF0E18E39805C80A4714E4108DC29DDF708365B8FAC1F220784A8AA89F4C04176DFCEFC652988A6F878937AF8FEFF6A45672DB27EC215CDCBB9C530BDC2F1F357DC69073AA6B3670B988F271386E1B2F72635AA83420CF2A393338D1C4E2B502C11CA2098481EA292ACD7A7BFF84945E9CC04B47B1967F09CC7A4BE5AAA749583318E561E5504F28472B0AEF60B854142AACFE6017786E8B5FB674C79D68B7B44842F18E2075B8679A99D43892847B09A0CADFBED479942F599A1666D96EEED85A222431F8637D6FB73F5E08465417DAAA47BD31BDCE2262E06E0B7E5BF6FA9703890997C275CE11CA52A92D0F4889F370164D4EFA8C461E2F3BBABA54F8A1DD165C3D5344DF572B67EF92DC3E8EF66926B673AD59FB5CE5FF5ECED31535CC347374D846F0373EDD82DEFAF4DEEF238A1ABFF44FDC2D9511E8AE69349B69749DD6D2AD5A2A95F579B3A0D232FAB4A915568409150F184F1F58114354235084F9B104F9DA8EC13D34AB93BD61620CC0B93118FF2299B80856CE2A40792F58E37990677E1C4A662D619F835DA5537873CDF05DCDB369AEB2E6159E351E9140DDD5E4FB57EAAD9CB5A41EAC61CD1E95D983832D0E8D35EEFF88E699A33A4AB0FC82B8A1B38F527933108FCC6533C9DE3AFCAE396246399DB878A9D500905A707B3C1F3F490E327A5C219151E7077C9E456F3DD046F6FAC8C3F98CC90FC558E87A7CB654320DA2B48F41BE0D8498A98DF562EE0A33FF61AF92E90DABA5323CF416C7E3B5E0A5190A36442F08AEE80B4886C407A689A81293D7CF6D7F88C112F7D166D4AE27147BCDC4C91E2880F5A4065B0AC7480BCDB9A0BCB790FDDF0370DF819986DA21FE700E15D449F5C0849B70C8A84569F205D74141F87B73D2EE3BB4D7A88F2DC90272219E39B5456F5CE8F0DA1E40E98C1B968112DC3664663B3C2A2B1402657CC0529AD6CED5BD2A177F9ED6FDA41378C8ADA6F33615516CFE0077E9426424F06DF517A5117F2882FFE3144245623DF8DDEF9869E5F6D328884018885209EA24F7F617837E7751D56EF3201D3FD607706B889728591E7C822ED97FF0B9DC111D5D0142387D88CB799345EF48235922632D6610F9E1C7AAAB6368EC0D4A76185686FCDA99499DC1B7F08C8A1BDDEF3F803CF168D818CEAC1F8B79E70C49E37B3E19B0096D1B6C2D4BF73DBF503401AE4EFCF9DEB8AC4A9C39E140CA9086E9927274E2A634838DD3487 |
321 | 20170707064939 2 6 100 7679 2 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936D4E0A703 | 321 | 20171209234111 2 6 100 7679 2 CF96EF3064F3389AC4D7DA6813F67988F77979BB89C86E3A82B8FBE165D96646B6665C28FE7F5D1742E288AF6A47CEAD57277CF7B7902B8B7F899CB512DDF0EDEC293B152ABA4085290AE8BF93AF988437B549319AF0E18E39805C80A4714E4108DC29DDF708365B8FAC1F220784A8AA89F4C04176DFCEFC652988A6F878937AF8FEFF6A45672DB27EC215CDCBB9C530BDC2F1F357DC69073AA6B3670B988F271386E1B2F72635AA83420CF2A393338D1C4E2B502C11CA2098481EA292ACD7A7BFF84945E9CC04B47B1967F09CC7A4BE5AAA749583318E561E5504F28472B0AEF60B854142AACFE6017786E8B5FB674C79D68B7B44842F18E2075B8679A99D43892847B09A0CADFBED479942F599A1666D96EEED85A222431F8637D6FB73F5E08465417DAAA47BD31BDCE2262E06E0B7E5BF6FA9703890997C275CE11CA52A92D0F4889F370164D4EFA8C461E2F3BBABA54F8A1DD165C3D5344DF572B67EF92DC3E8EF66926B673AD59FB5CE5FF5ECED31535CC347374D846F0373EDD82DEFAF4DEEF238A1ABFF44FDC2D9511E8AE69349B69749DD6D2AD5A2A95F579B3A0D232FAB4A915568409150F184F1F58114354235084F9B104F9DA8EC13D34AB93BD61620CC0B93118FF2299B80856CE2A40792F58E37990677E1C4A662D619F835DA5537873CDF05DCDB369AEB2E6159E351E9140DDD5E4FB57EAAD9CB5A41EAC61CD1E95D983832D0E8D35EEFF88E699A33A4AB0FC82B8A1B38F527933108FCC6533C9DE3AFCAE396246399DB878A9D500905A707B3C1F3F490E327A5C219151E7077C9E456F3DD046F6FAC8C3F98CC90FC558E87A7CB654320DA2B48F41BE0D8498A98DF562EE0A33FF61AF92E90DABA5323CF416C7E3B5E0A5190A36442F08AEE80B4886C407A689A81293D7CF6D7F88C112F7D166D4AE27147BCDC4C91E2880F5A4065B0AC7480BCDB9A0BCB790FDDF0370DF819986DA21FE700E15D449F5C0849B70C8A84569F205D74141F87B73D2EE3BB4D7A88F2DC90272219E39B5456F5CE8F0DA1E40E98C1B968112DC3664663B3C2A2B1402657CC0529AD6CED5BD2A177F9ED6FDA41378C8ADA6F33615516CFE0077E9426424F06DF517A5117F2882FFE3144245623DF8DDEF9869E5F6D328884018885209EA24F7F617837E7751D56EF3201D3FD607706B889728591E7C822ED97FF0B9DC111D5D0142387D88CB799345EF48235922632D6610F9E1C7AAAB6368EC0D4A76185686FCDA99499DC1B7F08C8A1BDDEF3F803CF168D818CEAC1F8B79E70C49E37B3E19B0096D1B6C2D4BF73DBF503401AE4EFCF9DEB8AC4A9C39E140CA9086E9927274E2A63483C59DD8B |
322 | 20170707065604 2 6 100 7679 5 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936D4EE0BAF | 322 | 20171210084529 2 6 100 7679 2 CF96EF3064F3389AC4D7DA6813F67988F77979BB89C86E3A82B8FBE165D96646B6665C28FE7F5D1742E288AF6A47CEAD57277CF7B7902B8B7F899CB512DDF0EDEC293B152ABA4085290AE8BF93AF988437B549319AF0E18E39805C80A4714E4108DC29DDF708365B8FAC1F220784A8AA89F4C04176DFCEFC652988A6F878937AF8FEFF6A45672DB27EC215CDCBB9C530BDC2F1F357DC69073AA6B3670B988F271386E1B2F72635AA83420CF2A393338D1C4E2B502C11CA2098481EA292ACD7A7BFF84945E9CC04B47B1967F09CC7A4BE5AAA749583318E561E5504F28472B0AEF60B854142AACFE6017786E8B5FB674C79D68B7B44842F18E2075B8679A99D43892847B09A0CADFBED479942F599A1666D96EEED85A222431F8637D6FB73F5E08465417DAAA47BD31BDCE2262E06E0B7E5BF6FA9703890997C275CE11CA52A92D0F4889F370164D4EFA8C461E2F3BBABA54F8A1DD165C3D5344DF572B67EF92DC3E8EF66926B673AD59FB5CE5FF5ECED31535CC347374D846F0373EDD82DEFAF4DEEF238A1ABFF44FDC2D9511E8AE69349B69749DD6D2AD5A2A95F579B3A0D232FAB4A915568409150F184F1F58114354235084F9B104F9DA8EC13D34AB93BD61620CC0B93118FF2299B80856CE2A40792F58E37990677E1C4A662D619F835DA5537873CDF05DCDB369AEB2E6159E351E9140DDD5E4FB57EAAD9CB5A41EAC61CD1E95D983832D0E8D35EEFF88E699A33A4AB0FC82B8A1B38F527933108FCC6533C9DE3AFCAE396246399DB878A9D500905A707B3C1F3F490E327A5C219151E7077C9E456F3DD046F6FAC8C3F98CC90FC558E87A7CB654320DA2B48F41BE0D8498A98DF562EE0A33FF61AF92E90DABA5323CF416C7E3B5E0A5190A36442F08AEE80B4886C407A689A81293D7CF6D7F88C112F7D166D4AE27147BCDC4C91E2880F5A4065B0AC7480BCDB9A0BCB790FDDF0370DF819986DA21FE700E15D449F5C0849B70C8A84569F205D74141F87B73D2EE3BB4D7A88F2DC90272219E39B5456F5CE8F0DA1E40E98C1B968112DC3664663B3C2A2B1402657CC0529AD6CED5BD2A177F9ED6FDA41378C8ADA6F33615516CFE0077E9426424F06DF517A5117F2882FFE3144245623DF8DDEF9869E5F6D328884018885209EA24F7F617837E7751D56EF3201D3FD607706B889728591E7C822ED97FF0B9DC111D5D0142387D88CB799345EF48235922632D6610F9E1C7AAAB6368EC0D4A76185686FCDA99499DC1B7F08C8A1BDDEF3F803CF168D818CEAC1F8B79E70C49E37B3E19B0096D1B6C2D4BF73DBF503401AE4EFCF9DEB8AC4A9C39E140CA9086E9927274E2A6348432B34CB |
323 | 20170707120623 2 6 100 7679 2 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936D9082CA3 | 323 | 20171210100748 2 6 100 7679 5 CF96EF3064F3389AC4D7DA6813F67988F77979BB89C86E3A82B8FBE165D96646B6665C28FE7F5D1742E288AF6A47CEAD57277CF7B7902B8B7F899CB512DDF0EDEC293B152ABA4085290AE8BF93AF988437B549319AF0E18E39805C80A4714E4108DC29DDF708365B8FAC1F220784A8AA89F4C04176DFCEFC652988A6F878937AF8FEFF6A45672DB27EC215CDCBB9C530BDC2F1F357DC69073AA6B3670B988F271386E1B2F72635AA83420CF2A393338D1C4E2B502C11CA2098481EA292ACD7A7BFF84945E9CC04B47B1967F09CC7A4BE5AAA749583318E561E5504F28472B0AEF60B854142AACFE6017786E8B5FB674C79D68B7B44842F18E2075B8679A99D43892847B09A0CADFBED479942F599A1666D96EEED85A222431F8637D6FB73F5E08465417DAAA47BD31BDCE2262E06E0B7E5BF6FA9703890997C275CE11CA52A92D0F4889F370164D4EFA8C461E2F3BBABA54F8A1DD165C3D5344DF572B67EF92DC3E8EF66926B673AD59FB5CE5FF5ECED31535CC347374D846F0373EDD82DEFAF4DEEF238A1ABFF44FDC2D9511E8AE69349B69749DD6D2AD5A2A95F579B3A0D232FAB4A915568409150F184F1F58114354235084F9B104F9DA8EC13D34AB93BD61620CC0B93118FF2299B80856CE2A40792F58E37990677E1C4A662D619F835DA5537873CDF05DCDB369AEB2E6159E351E9140DDD5E4FB57EAAD9CB5A41EAC61CD1E95D983832D0E8D35EEFF88E699A33A4AB0FC82B8A1B38F527933108FCC6533C9DE3AFCAE396246399DB878A9D500905A707B3C1F3F490E327A5C219151E7077C9E456F3DD046F6FAC8C3F98CC90FC558E87A7CB654320DA2B48F41BE0D8498A98DF562EE0A33FF61AF92E90DABA5323CF416C7E3B5E0A5190A36442F08AEE80B4886C407A689A81293D7CF6D7F88C112F7D166D4AE27147BCDC4C91E2880F5A4065B0AC7480BCDB9A0BCB790FDDF0370DF819986DA21FE700E15D449F5C0849B70C8A84569F205D74141F87B73D2EE3BB4D7A88F2DC90272219E39B5456F5CE8F0DA1E40E98C1B968112DC3664663B3C2A2B1402657CC0529AD6CED5BD2A177F9ED6FDA41378C8ADA6F33615516CFE0077E9426424F06DF517A5117F2882FFE3144245623DF8DDEF9869E5F6D328884018885209EA24F7F617837E7751D56EF3201D3FD607706B889728591E7C822ED97FF0B9DC111D5D0142387D88CB799345EF48235922632D6610F9E1C7AAAB6368EC0D4A76185686FCDA99499DC1B7F08C8A1BDDEF3F803CF168D818CEAC1F8B79E70C49E37B3E19B0096D1B6C2D4BF73DBF503401AE4EFCF9DEB8AC4A9C39E140CA9086E9927274E2A63484426B89F |
324 | 20170707121752 2 6 100 7679 5 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936D928FC67 | 324 | 20171211113225 2 6 100 7679 5 CF96EF3064F3389AC4D7DA6813F67988F77979BB89C86E3A82B8FBE165D96646B6665C28FE7F5D1742E288AF6A47CEAD57277CF7B7902B8B7F899CB512DDF0EDEC293B152ABA4085290AE8BF93AF988437B549319AF0E18E39805C80A4714E4108DC29DDF708365B8FAC1F220784A8AA89F4C04176DFCEFC652988A6F878937AF8FEFF6A45672DB27EC215CDCBB9C530BDC2F1F357DC69073AA6B3670B988F271386E1B2F72635AA83420CF2A393338D1C4E2B502C11CA2098481EA292ACD7A7BFF84945E9CC04B47B1967F09CC7A4BE5AAA749583318E561E5504F28472B0AEF60B854142AACFE6017786E8B5FB674C79D68B7B44842F18E2075B8679A99D43892847B09A0CADFBED479942F599A1666D96EEED85A222431F8637D6FB73F5E08465417DAAA47BD31BDCE2262E06E0B7E5BF6FA9703890997C275CE11CA52A92D0F4889F370164D4EFA8C461E2F3BBABA54F8A1DD165C3D5344DF572B67EF92DC3E8EF66926B673AD59FB5CE5FF5ECED31535CC347374D846F0373EDD82DEFAF4DEEF238A1ABFF44FDC2D9511E8AE69349B69749DD6D2AD5A2A95F579B3A0D232FAB4A915568409150F184F1F58114354235084F9B104F9DA8EC13D34AB93BD61620CC0B93118FF2299B80856CE2A40792F58E37990677E1C4A662D619F835DA5537873CDF05DCDB369AEB2E6159E351E9140DDD5E4FB57EAAD9CB5A41EAC61CD1E95D983832D0E8D35EEFF88E699A33A4AB0FC82B8A1B38F527933108FCC6533C9DE3AFCAE396246399DB878A9D500905A707B3C1F3F490E327A5C219151E7077C9E456F3DD046F6FAC8C3F98CC90FC558E87A7CB654320DA2B48F41BE0D8498A98DF562EE0A33FF61AF92E90DABA5323CF416C7E3B5E0A5190A36442F08AEE80B4886C407A689A81293D7CF6D7F88C112F7D166D4AE27147BCDC4C91E2880F5A4065B0AC7480BCDB9A0BCB790FDDF0370DF819986DA21FE700E15D449F5C0849B70C8A84569F205D74141F87B73D2EE3BB4D7A88F2DC90272219E39B5456F5CE8F0DA1E40E98C1B968112DC3664663B3C2A2B1402657CC0529AD6CED5BD2A177F9ED6FDA41378C8ADA6F33615516CFE0077E9426424F06DF517A5117F2882FFE3144245623DF8DDEF9869E5F6D328884018885209EA24F7F617837E7751D56EF3201D3FD607706B889728591E7C822ED97FF0B9DC111D5D0142387D88CB799345EF48235922632D6610F9E1C7AAAB6368EC0D4A76185686FCDA99499DC1B7F08C8A1BDDEF3F803CF168D818CEAC1F8B79E70C49E37B3E19B0096D1B6C2D4BF73DBF503401AE4EFCF9DEB8AC4A9C39E140CA9086E9927274E2A634856D74BDF |
325 | 20170707164931 2 6 100 7679 2 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936DCD75823 | 325 | 20171211183528 2 6 100 7679 5 CF96EF3064F3389AC4D7DA6813F67988F77979BB89C86E3A82B8FBE165D96646B6665C28FE7F5D1742E288AF6A47CEAD57277CF7B7902B8B7F899CB512DDF0EDEC293B152ABA4085290AE8BF93AF988437B549319AF0E18E39805C80A4714E4108DC29DDF708365B8FAC1F220784A8AA89F4C04176DFCEFC652988A6F878937AF8FEFF6A45672DB27EC215CDCBB9C530BDC2F1F357DC69073AA6B3670B988F271386E1B2F72635AA83420CF2A393338D1C4E2B502C11CA2098481EA292ACD7A7BFF84945E9CC04B47B1967F09CC7A4BE5AAA749583318E561E5504F28472B0AEF60B854142AACFE6017786E8B5FB674C79D68B7B44842F18E2075B8679A99D43892847B09A0CADFBED479942F599A1666D96EEED85A222431F8637D6FB73F5E08465417DAAA47BD31BDCE2262E06E0B7E5BF6FA9703890997C275CE11CA52A92D0F4889F370164D4EFA8C461E2F3BBABA54F8A1DD165C3D5344DF572B67EF92DC3E8EF66926B673AD59FB5CE5FF5ECED31535CC347374D846F0373EDD82DEFAF4DEEF238A1ABFF44FDC2D9511E8AE69349B69749DD6D2AD5A2A95F579B3A0D232FAB4A915568409150F184F1F58114354235084F9B104F9DA8EC13D34AB93BD61620CC0B93118FF2299B80856CE2A40792F58E37990677E1C4A662D619F835DA5537873CDF05DCDB369AEB2E6159E351E9140DDD5E4FB57EAAD9CB5A41EAC61CD1E95D983832D0E8D35EEFF88E699A33A4AB0FC82B8A1B38F527933108FCC6533C9DE3AFCAE396246399DB878A9D500905A707B3C1F3F490E327A5C219151E7077C9E456F3DD046F6FAC8C3F98CC90FC558E87A7CB654320DA2B48F41BE0D8498A98DF562EE0A33FF61AF92E90DABA5323CF416C7E3B5E0A5190A36442F08AEE80B4886C407A689A81293D7CF6D7F88C112F7D166D4AE27147BCDC4C91E2880F5A4065B0AC7480BCDB9A0BCB790FDDF0370DF819986DA21FE700E15D449F5C0849B70C8A84569F205D74141F87B73D2EE3BB4D7A88F2DC90272219E39B5456F5CE8F0DA1E40E98C1B968112DC3664663B3C2A2B1402657CC0529AD6CED5BD2A177F9ED6FDA41378C8ADA6F33615516CFE0077E9426424F06DF517A5117F2882FFE3144245623DF8DDEF9869E5F6D328884018885209EA24F7F617837E7751D56EF3201D3FD607706B889728591E7C822ED97FF0B9DC111D5D0142387D88CB799345EF48235922632D6610F9E1C7AAAB6368EC0D4A76185686FCDA99499DC1B7F08C8A1BDDEF3F803CF168D818CEAC1F8B79E70C49E37B3E19B0096D1B6C2D4BF73DBF503401AE4EFCF9DEB8AC4A9C39E140CA9086E9927274E2A63485BE7C88F |
326 | 20170707220455 2 6 100 7679 2 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936E0F28243 | 326 | 20171211220143 2 6 100 7679 2 CF96EF3064F3389AC4D7DA6813F67988F77979BB89C86E3A82B8FBE165D96646B6665C28FE7F5D1742E288AF6A47CEAD57277CF7B7902B8B7F899CB512DDF0EDEC293B152ABA4085290AE8BF93AF988437B549319AF0E18E39805C80A4714E4108DC29DDF708365B8FAC1F220784A8AA89F4C04176DFCEFC652988A6F878937AF8FEFF6A45672DB27EC215CDCBB9C530BDC2F1F357DC69073AA6B3670B988F271386E1B2F72635AA83420CF2A393338D1C4E2B502C11CA2098481EA292ACD7A7BFF84945E9CC04B47B1967F09CC7A4BE5AAA749583318E561E5504F28472B0AEF60B854142AACFE6017786E8B5FB674C79D68B7B44842F18E2075B8679A99D43892847B09A0CADFBED479942F599A1666D96EEED85A222431F8637D6FB73F5E08465417DAAA47BD31BDCE2262E06E0B7E5BF6FA9703890997C275CE11CA52A92D0F4889F370164D4EFA8C461E2F3BBABA54F8A1DD165C3D5344DF572B67EF92DC3E8EF66926B673AD59FB5CE5FF5ECED31535CC347374D846F0373EDD82DEFAF4DEEF238A1ABFF44FDC2D9511E8AE69349B69749DD6D2AD5A2A95F579B3A0D232FAB4A915568409150F184F1F58114354235084F9B104F9DA8EC13D34AB93BD61620CC0B93118FF2299B80856CE2A40792F58E37990677E1C4A662D619F835DA5537873CDF05DCDB369AEB2E6159E351E9140DDD5E4FB57EAAD9CB5A41EAC61CD1E95D983832D0E8D35EEFF88E699A33A4AB0FC82B8A1B38F527933108FCC6533C9DE3AFCAE396246399DB878A9D500905A707B3C1F3F490E327A5C219151E7077C9E456F3DD046F6FAC8C3F98CC90FC558E87A7CB654320DA2B48F41BE0D8498A98DF562EE0A33FF61AF92E90DABA5323CF416C7E3B5E0A5190A36442F08AEE80B4886C407A689A81293D7CF6D7F88C112F7D166D4AE27147BCDC4C91E2880F5A4065B0AC7480BCDB9A0BCB790FDDF0370DF819986DA21FE700E15D449F5C0849B70C8A84569F205D74141F87B73D2EE3BB4D7A88F2DC90272219E39B5456F5CE8F0DA1E40E98C1B968112DC3664663B3C2A2B1402657CC0529AD6CED5BD2A177F9ED6FDA41378C8ADA6F33615516CFE0077E9426424F06DF517A5117F2882FFE3144245623DF8DDEF9869E5F6D328884018885209EA24F7F617837E7751D56EF3201D3FD607706B889728591E7C822ED97FF0B9DC111D5D0142387D88CB799345EF48235922632D6610F9E1C7AAAB6368EC0D4A76185686FCDA99499DC1B7F08C8A1BDDEF3F803CF168D818CEAC1F8B79E70C49E37B3E19B0096D1B6C2D4BF73DBF503401AE4EFCF9DEB8AC4A9C39E140CA9086E9927274E2A63485E59F1D3 |
327 | 20170707233018 2 6 100 7679 2 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936E20BF7B3 | 327 | 20171212002701 2 6 100 7679 5 CF96EF3064F3389AC4D7DA6813F67988F77979BB89C86E3A82B8FBE165D96646B6665C28FE7F5D1742E288AF6A47CEAD57277CF7B7902B8B7F899CB512DDF0EDEC293B152ABA4085290AE8BF93AF988437B549319AF0E18E39805C80A4714E4108DC29DDF708365B8FAC1F220784A8AA89F4C04176DFCEFC652988A6F878937AF8FEFF6A45672DB27EC215CDCBB9C530BDC2F1F357DC69073AA6B3670B988F271386E1B2F72635AA83420CF2A393338D1C4E2B502C11CA2098481EA292ACD7A7BFF84945E9CC04B47B1967F09CC7A4BE5AAA749583318E561E5504F28472B0AEF60B854142AACFE6017786E8B5FB674C79D68B7B44842F18E2075B8679A99D43892847B09A0CADFBED479942F599A1666D96EEED85A222431F8637D6FB73F5E08465417DAAA47BD31BDCE2262E06E0B7E5BF6FA9703890997C275CE11CA52A92D0F4889F370164D4EFA8C461E2F3BBABA54F8A1DD165C3D5344DF572B67EF92DC3E8EF66926B673AD59FB5CE5FF5ECED31535CC347374D846F0373EDD82DEFAF4DEEF238A1ABFF44FDC2D9511E8AE69349B69749DD6D2AD5A2A95F579B3A0D232FAB4A915568409150F184F1F58114354235084F9B104F9DA8EC13D34AB93BD61620CC0B93118FF2299B80856CE2A40792F58E37990677E1C4A662D619F835DA5537873CDF05DCDB369AEB2E6159E351E9140DDD5E4FB57EAAD9CB5A41EAC61CD1E95D983832D0E8D35EEFF88E699A33A4AB0FC82B8A1B38F527933108FCC6533C9DE3AFCAE396246399DB878A9D500905A707B3C1F3F490E327A5C219151E7077C9E456F3DD046F6FAC8C3F98CC90FC558E87A7CB654320DA2B48F41BE0D8498A98DF562EE0A33FF61AF92E90DABA5323CF416C7E3B5E0A5190A36442F08AEE80B4886C407A689A81293D7CF6D7F88C112F7D166D4AE27147BCDC4C91E2880F5A4065B0AC7480BCDB9A0BCB790FDDF0370DF819986DA21FE700E15D449F5C0849B70C8A84569F205D74141F87B73D2EE3BB4D7A88F2DC90272219E39B5456F5CE8F0DA1E40E98C1B968112DC3664663B3C2A2B1402657CC0529AD6CED5BD2A177F9ED6FDA41378C8ADA6F33615516CFE0077E9426424F06DF517A5117F2882FFE3144245623DF8DDEF9869E5F6D328884018885209EA24F7F617837E7751D56EF3201D3FD607706B889728591E7C822ED97FF0B9DC111D5D0142387D88CB799345EF48235922632D6610F9E1C7AAAB6368EC0D4A76185686FCDA99499DC1B7F08C8A1BDDEF3F803CF168D818CEAC1F8B79E70C49E37B3E19B0096D1B6C2D4BF73DBF503401AE4EFCF9DEB8AC4A9C39E140CA9086E9927274E2A634860299B67 |
328 | 20170708014205 2 6 100 7679 5 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936E3C89587 | 328 | 20171212043247 2 6 100 7679 5 CF96EF3064F3389AC4D7DA6813F67988F77979BB89C86E3A82B8FBE165D96646B6665C28FE7F5D1742E288AF6A47CEAD57277CF7B7902B8B7F899CB512DDF0EDEC293B152ABA4085290AE8BF93AF988437B549319AF0E18E39805C80A4714E4108DC29DDF708365B8FAC1F220784A8AA89F4C04176DFCEFC652988A6F878937AF8FEFF6A45672DB27EC215CDCBB9C530BDC2F1F357DC69073AA6B3670B988F271386E1B2F72635AA83420CF2A393338D1C4E2B502C11CA2098481EA292ACD7A7BFF84945E9CC04B47B1967F09CC7A4BE5AAA749583318E561E5504F28472B0AEF60B854142AACFE6017786E8B5FB674C79D68B7B44842F18E2075B8679A99D43892847B09A0CADFBED479942F599A1666D96EEED85A222431F8637D6FB73F5E08465417DAAA47BD31BDCE2262E06E0B7E5BF6FA9703890997C275CE11CA52A92D0F4889F370164D4EFA8C461E2F3BBABA54F8A1DD165C3D5344DF572B67EF92DC3E8EF66926B673AD59FB5CE5FF5ECED31535CC347374D846F0373EDD82DEFAF4DEEF238A1ABFF44FDC2D9511E8AE69349B69749DD6D2AD5A2A95F579B3A0D232FAB4A915568409150F184F1F58114354235084F9B104F9DA8EC13D34AB93BD61620CC0B93118FF2299B80856CE2A40792F58E37990677E1C4A662D619F835DA5537873CDF05DCDB369AEB2E6159E351E9140DDD5E4FB57EAAD9CB5A41EAC61CD1E95D983832D0E8D35EEFF88E699A33A4AB0FC82B8A1B38F527933108FCC6533C9DE3AFCAE396246399DB878A9D500905A707B3C1F3F490E327A5C219151E7077C9E456F3DD046F6FAC8C3F98CC90FC558E87A7CB654320DA2B48F41BE0D8498A98DF562EE0A33FF61AF92E90DABA5323CF416C7E3B5E0A5190A36442F08AEE80B4886C407A689A81293D7CF6D7F88C112F7D166D4AE27147BCDC4C91E2880F5A4065B0AC7480BCDB9A0BCB790FDDF0370DF819986DA21FE700E15D449F5C0849B70C8A84569F205D74141F87B73D2EE3BB4D7A88F2DC90272219E39B5456F5CE8F0DA1E40E98C1B968112DC3664663B3C2A2B1402657CC0529AD6CED5BD2A177F9ED6FDA41378C8ADA6F33615516CFE0077E9426424F06DF517A5117F2882FFE3144245623DF8DDEF9869E5F6D328884018885209EA24F7F617837E7751D56EF3201D3FD607706B889728591E7C822ED97FF0B9DC111D5D0142387D88CB799345EF48235922632D6610F9E1C7AAAB6368EC0D4A76185686FCDA99499DC1B7F08C8A1BDDEF3F803CF168D818CEAC1F8B79E70C49E37B3E19B0096D1B6C2D4BF73DBF503401AE4EFCF9DEB8AC4A9C39E140CA9086E9927274E2A6348632526BF |
329 | 20170708023140 2 6 100 7679 2 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936E469C123 | 329 | 20171212143825 2 6 100 7679 5 CF96EF3064F3389AC4D7DA6813F67988F77979BB89C86E3A82B8FBE165D96646B6665C28FE7F5D1742E288AF6A47CEAD57277CF7B7902B8B7F899CB512DDF0EDEC293B152ABA4085290AE8BF93AF988437B549319AF0E18E39805C80A4714E4108DC29DDF708365B8FAC1F220784A8AA89F4C04176DFCEFC652988A6F878937AF8FEFF6A45672DB27EC215CDCBB9C530BDC2F1F357DC69073AA6B3670B988F271386E1B2F72635AA83420CF2A393338D1C4E2B502C11CA2098481EA292ACD7A7BFF84945E9CC04B47B1967F09CC7A4BE5AAA749583318E561E5504F28472B0AEF60B854142AACFE6017786E8B5FB674C79D68B7B44842F18E2075B8679A99D43892847B09A0CADFBED479942F599A1666D96EEED85A222431F8637D6FB73F5E08465417DAAA47BD31BDCE2262E06E0B7E5BF6FA9703890997C275CE11CA52A92D0F4889F370164D4EFA8C461E2F3BBABA54F8A1DD165C3D5344DF572B67EF92DC3E8EF66926B673AD59FB5CE5FF5ECED31535CC347374D846F0373EDD82DEFAF4DEEF238A1ABFF44FDC2D9511E8AE69349B69749DD6D2AD5A2A95F579B3A0D232FAB4A915568409150F184F1F58114354235084F9B104F9DA8EC13D34AB93BD61620CC0B93118FF2299B80856CE2A40792F58E37990677E1C4A662D619F835DA5537873CDF05DCDB369AEB2E6159E351E9140DDD5E4FB57EAAD9CB5A41EAC61CD1E95D983832D0E8D35EEFF88E699A33A4AB0FC82B8A1B38F527933108FCC6533C9DE3AFCAE396246399DB878A9D500905A707B3C1F3F490E327A5C219151E7077C9E456F3DD046F6FAC8C3F98CC90FC558E87A7CB654320DA2B48F41BE0D8498A98DF562EE0A33FF61AF92E90DABA5323CF416C7E3B5E0A5190A36442F08AEE80B4886C407A689A81293D7CF6D7F88C112F7D166D4AE27147BCDC4C91E2880F5A4065B0AC7480BCDB9A0BCB790FDDF0370DF819986DA21FE700E15D449F5C0849B70C8A84569F205D74141F87B73D2EE3BB4D7A88F2DC90272219E39B5456F5CE8F0DA1E40E98C1B968112DC3664663B3C2A2B1402657CC0529AD6CED5BD2A177F9ED6FDA41378C8ADA6F33615516CFE0077E9426424F06DF517A5117F2882FFE3144245623DF8DDEF9869E5F6D328884018885209EA24F7F617837E7751D56EF3201D3FD607706B889728591E7C822ED97FF0B9DC111D5D0142387D88CB799345EF48235922632D6610F9E1C7AAAB6368EC0D4A76185686FCDA99499DC1B7F08C8A1BDDEF3F803CF168D818CEAC1F8B79E70C49E37B3E19B0096D1B6C2D4BF73DBF503401AE4EFCF9DEB8AC4A9C39E140CA9086E9927274E2A63486A53EDEF |
330 | 20170708053646 2 6 100 7679 5 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936E6DBCAE7 | 330 | 20171212144749 2 6 100 7679 2 CF96EF3064F3389AC4D7DA6813F67988F77979BB89C86E3A82B8FBE165D96646B6665C28FE7F5D1742E288AF6A47CEAD57277CF7B7902B8B7F899CB512DDF0EDEC293B152ABA4085290AE8BF93AF988437B549319AF0E18E39805C80A4714E4108DC29DDF708365B8FAC1F220784A8AA89F4C04176DFCEFC652988A6F878937AF8FEFF6A45672DB27EC215CDCBB9C530BDC2F1F357DC69073AA6B3670B988F271386E1B2F72635AA83420CF2A393338D1C4E2B502C11CA2098481EA292ACD7A7BFF84945E9CC04B47B1967F09CC7A4BE5AAA749583318E561E5504F28472B0AEF60B854142AACFE6017786E8B5FB674C79D68B7B44842F18E2075B8679A99D43892847B09A0CADFBED479942F599A1666D96EEED85A222431F8637D6FB73F5E08465417DAAA47BD31BDCE2262E06E0B7E5BF6FA9703890997C275CE11CA52A92D0F4889F370164D4EFA8C461E2F3BBABA54F8A1DD165C3D5344DF572B67EF92DC3E8EF66926B673AD59FB5CE5FF5ECED31535CC347374D846F0373EDD82DEFAF4DEEF238A1ABFF44FDC2D9511E8AE69349B69749DD6D2AD5A2A95F579B3A0D232FAB4A915568409150F184F1F58114354235084F9B104F9DA8EC13D34AB93BD61620CC0B93118FF2299B80856CE2A40792F58E37990677E1C4A662D619F835DA5537873CDF05DCDB369AEB2E6159E351E9140DDD5E4FB57EAAD9CB5A41EAC61CD1E95D983832D0E8D35EEFF88E699A33A4AB0FC82B8A1B38F527933108FCC6533C9DE3AFCAE396246399DB878A9D500905A707B3C1F3F490E327A5C219151E7077C9E456F3DD046F6FAC8C3F98CC90FC558E87A7CB654320DA2B48F41BE0D8498A98DF562EE0A33FF61AF92E90DABA5323CF416C7E3B5E0A5190A36442F08AEE80B4886C407A689A81293D7CF6D7F88C112F7D166D4AE27147BCDC4C91E2880F5A4065B0AC7480BCDB9A0BCB790FDDF0370DF819986DA21FE700E15D449F5C0849B70C8A84569F205D74141F87B73D2EE3BB4D7A88F2DC90272219E39B5456F5CE8F0DA1E40E98C1B968112DC3664663B3C2A2B1402657CC0529AD6CED5BD2A177F9ED6FDA41378C8ADA6F33615516CFE0077E9426424F06DF517A5117F2882FFE3144245623DF8DDEF9869E5F6D328884018885209EA24F7F617837E7751D56EF3201D3FD607706B889728591E7C822ED97FF0B9DC111D5D0142387D88CB799345EF48235922632D6610F9E1C7AAAB6368EC0D4A76185686FCDA99499DC1B7F08C8A1BDDEF3F803CF168D818CEAC1F8B79E70C49E37B3E19B0096D1B6C2D4BF73DBF503401AE4EFCF9DEB8AC4A9C39E140CA9086E9927274E2A63486A6818FB |
331 | 20170708071735 2 6 100 7679 5 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936E8297A7F | 331 | 20171212180038 2 6 100 7679 5 CF96EF3064F3389AC4D7DA6813F67988F77979BB89C86E3A82B8FBE165D96646B6665C28FE7F5D1742E288AF6A47CEAD57277CF7B7902B8B7F899CB512DDF0EDEC293B152ABA4085290AE8BF93AF988437B549319AF0E18E39805C80A4714E4108DC29DDF708365B8FAC1F220784A8AA89F4C04176DFCEFC652988A6F878937AF8FEFF6A45672DB27EC215CDCBB9C530BDC2F1F357DC69073AA6B3670B988F271386E1B2F72635AA83420CF2A393338D1C4E2B502C11CA2098481EA292ACD7A7BFF84945E9CC04B47B1967F09CC7A4BE5AAA749583318E561E5504F28472B0AEF60B854142AACFE6017786E8B5FB674C79D68B7B44842F18E2075B8679A99D43892847B09A0CADFBED479942F599A1666D96EEED85A222431F8637D6FB73F5E08465417DAAA47BD31BDCE2262E06E0B7E5BF6FA9703890997C275CE11CA52A92D0F4889F370164D4EFA8C461E2F3BBABA54F8A1DD165C3D5344DF572B67EF92DC3E8EF66926B673AD59FB5CE5FF5ECED31535CC347374D846F0373EDD82DEFAF4DEEF238A1ABFF44FDC2D9511E8AE69349B69749DD6D2AD5A2A95F579B3A0D232FAB4A915568409150F184F1F58114354235084F9B104F9DA8EC13D34AB93BD61620CC0B93118FF2299B80856CE2A40792F58E37990677E1C4A662D619F835DA5537873CDF05DCDB369AEB2E6159E351E9140DDD5E4FB57EAAD9CB5A41EAC61CD1E95D983832D0E8D35EEFF88E699A33A4AB0FC82B8A1B38F527933108FCC6533C9DE3AFCAE396246399DB878A9D500905A707B3C1F3F490E327A5C219151E7077C9E456F3DD046F6FAC8C3F98CC90FC558E87A7CB654320DA2B48F41BE0D8498A98DF562EE0A33FF61AF92E90DABA5323CF416C7E3B5E0A5190A36442F08AEE80B4886C407A689A81293D7CF6D7F88C112F7D166D4AE27147BCDC4C91E2880F5A4065B0AC7480BCDB9A0BCB790FDDF0370DF819986DA21FE700E15D449F5C0849B70C8A84569F205D74141F87B73D2EE3BB4D7A88F2DC90272219E39B5456F5CE8F0DA1E40E98C1B968112DC3664663B3C2A2B1402657CC0529AD6CED5BD2A177F9ED6FDA41378C8ADA6F33615516CFE0077E9426424F06DF517A5117F2882FFE3144245623DF8DDEF9869E5F6D328884018885209EA24F7F617837E7751D56EF3201D3FD607706B889728591E7C822ED97FF0B9DC111D5D0142387D88CB799345EF48235922632D6610F9E1C7AAAB6368EC0D4A76185686FCDA99499DC1B7F08C8A1BDDEF3F803CF168D818CEAC1F8B79E70C49E37B3E19B0096D1B6C2D4BF73DBF503401AE4EFCF9DEB8AC4A9C39E140CA9086E9927274E2A63486CA4B787 |
332 | 20170708072409 2 6 100 7679 5 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936E836D247 | 332 | 20171213010731 2 6 100 7679 5 DC810DED621062F0CB271F50E716119CBA30A56C758377BD69D70043B8C9ACA2E7EFA9896D324B18FB1A550BDB994533A67258C7EB28B23D1AFB6D3FE0C5C8AD961F2BFAE67E57978F749D3F33A0D9AEAFD817FD663E60298D0DF73E4B27A85B6799D929240EC6C4C59E0D98E0A7875F3FCC3E29394083D1344F78DC70B5E23C108A03B7B81121BEDD2093262B7E32C7AB695AD545D3A99F410199DDD9759FE1EE8502180206841B3C74CB6A939B38707309B421A75FFEC30C977F91A9F9F3C9F65EF2EA6251E72F8A65C7753815C188320E91B079EDFB9F1D480F529B67075B57523C44895DE2427D32D3935EAC5F46659C5F723C9BB006862EF143A77C384560EB5474F8D034FC8059F6D7BCD9EBD17D2740741FB4025CF87FFE3DAAFF72C8D9D10E1F779AEC56D3C6340426E2D980EAA07C46F2E720D1B8206D2A29162C6CA877FA89C0876DA70FF3A773BDEE1BB5831EFB58A9191430B0DE46EA4F484642F257AC176B74A91A02594D00D2FD30BE4927DED30C4389245EC5ECA93B1B08AFBB86B8012394F8CB874DC092498A2F9B44E27804C039632A192C8329F0DF25B196E6AB5E07FB3732B94990A2F0490FB07D9E33B0AA2830EDB572D7C7968A193B83FF869F65ABEDEC65EB03EA6DF0CD6C077DE627FD3583AFDA1754E655BE7ECF7A2BEAA422E516B26194FAEFEE6F535439B413325E1263E7E797DE9D717540A96AF360F8EE1FD4B190A513E83AEF6BCAB5A245F4A4F129F5F8AED11A558FE968A0CF2E254438384D0EE91BEE99A39696821DBA585144FA65484897CFC517FCE1D1512F792C6996063585F640AC9480220ED1FF3EDC1D7E55344977F71692D6F5DB091821A3F9612B65138848B874A93A71A74039337BF291938B0A8ACA2141BE969DCE4322A276C86C5A8E369EF6717158B46EBE48F8F9BC4F2E46203AC21CDD9F0ED1989F7D964D46D7DA63444C9CADA82AF53E38873A5D3F68868CA4F65748210716658F2A841B3890E773A2623A59073F14A0F2F1B0893FDBE5BA72FC9609DB8E8A56A322E2B4178CE7B2022D741BD256303D926B48D5239B354F611C52B475C62351854D6E27C89231E7E7972C19C7D6F5BEB07D1A1FF827348DA862F422047A2DB7B591AE497578A4BA95CBECFB503F5DC04C0C6A946FFB515F2F0BDC4332F2674706F7C1908B681D8EE3667777092C06DC9CF00F98143F4A1350FCBAEBB5157A5473D33F51778987B35B1D48249A491EE8F8778DE6DC29131F708642884BED0B0D159E1EFE428D18D3631F13A593323F1659FE9E1A708115D2F131DCC3808CE016036FF1D0D9193CBEB2CD1C49F9973E0BCB09A2A9394E2F5561319BBF |
333 | 20170708102649 2 6 100 7679 5 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936EA984FCF | 333 | 20171213020125 2 6 100 7679 2 DC810DED621062F0CB271F50E716119CBA30A56C758377BD69D70043B8C9ACA2E7EFA9896D324B18FB1A550BDB994533A67258C7EB28B23D1AFB6D3FE0C5C8AD961F2BFAE67E57978F749D3F33A0D9AEAFD817FD663E60298D0DF73E4B27A85B6799D929240EC6C4C59E0D98E0A7875F3FCC3E29394083D1344F78DC70B5E23C108A03B7B81121BEDD2093262B7E32C7AB695AD545D3A99F410199DDD9759FE1EE8502180206841B3C74CB6A939B38707309B421A75FFEC30C977F91A9F9F3C9F65EF2EA6251E72F8A65C7753815C188320E91B079EDFB9F1D480F529B67075B57523C44895DE2427D32D3935EAC5F46659C5F723C9BB006862EF143A77C384560EB5474F8D034FC8059F6D7BCD9EBD17D2740741FB4025CF87FFE3DAAFF72C8D9D10E1F779AEC56D3C6340426E2D980EAA07C46F2E720D1B8206D2A29162C6CA877FA89C0876DA70FF3A773BDEE1BB5831EFB58A9191430B0DE46EA4F484642F257AC176B74A91A02594D00D2FD30BE4927DED30C4389245EC5ECA93B1B08AFBB86B8012394F8CB874DC092498A2F9B44E27804C039632A192C8329F0DF25B196E6AB5E07FB3732B94990A2F0490FB07D9E33B0AA2830EDB572D7C7968A193B83FF869F65ABEDEC65EB03EA6DF0CD6C077DE627FD3583AFDA1754E655BE7ECF7A2BEAA422E516B26194FAEFEE6F535439B413325E1263E7E797DE9D717540A96AF360F8EE1FD4B190A513E83AEF6BCAB5A245F4A4F129F5F8AED11A558FE968A0CF2E254438384D0EE91BEE99A39696821DBA585144FA65484897CFC517FCE1D1512F792C6996063585F640AC9480220ED1FF3EDC1D7E55344977F71692D6F5DB091821A3F9612B65138848B874A93A71A74039337BF291938B0A8ACA2141BE969DCE4322A276C86C5A8E369EF6717158B46EBE48F8F9BC4F2E46203AC21CDD9F0ED1989F7D964D46D7DA63444C9CADA82AF53E38873A5D3F68868CA4F65748210716658F2A841B3890E773A2623A59073F14A0F2F1B0893FDBE5BA72FC9609DB8E8A56A322E2B4178CE7B2022D741BD256303D926B48D5239B354F611C52B475C62351854D6E27C89231E7E7972C19C7D6F5BEB07D1A1FF827348DA862F422047A2DB7B591AE497578A4BA95CBECFB503F5DC04C0C6A946FFB515F2F0BDC4332F2674706F7C1908B681D8EE3667777092C06DC9CF00F98143F4A1350FCBAEBB5157A5473D33F51778987B35B1D48249A491EE8F8778DE6DC29131F708642884BED0B0D159E1EFE428D18D3631F13A593323F1659FE9E1A708115D2F131DCC3808CE016036FF1D0D9193CBEB2CD1C49F9973E0BCB09A2A9394E2F5561E7621B |
334 | 20170708144918 2 6 100 7679 2 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936EE06AB6B | 334 | 20171213022044 2 6 100 7679 2 DC810DED621062F0CB271F50E716119CBA30A56C758377BD69D70043B8C9ACA2E7EFA9896D324B18FB1A550BDB994533A67258C7EB28B23D1AFB6D3FE0C5C8AD961F2BFAE67E57978F749D3F33A0D9AEAFD817FD663E60298D0DF73E4B27A85B6799D929240EC6C4C59E0D98E0A7875F3FCC3E29394083D1344F78DC70B5E23C108A03B7B81121BEDD2093262B7E32C7AB695AD545D3A99F410199DDD9759FE1EE8502180206841B3C74CB6A939B38707309B421A75FFEC30C977F91A9F9F3C9F65EF2EA6251E72F8A65C7753815C188320E91B079EDFB9F1D480F529B67075B57523C44895DE2427D32D3935EAC5F46659C5F723C9BB006862EF143A77C384560EB5474F8D034FC8059F6D7BCD9EBD17D2740741FB4025CF87FFE3DAAFF72C8D9D10E1F779AEC56D3C6340426E2D980EAA07C46F2E720D1B8206D2A29162C6CA877FA89C0876DA70FF3A773BDEE1BB5831EFB58A9191430B0DE46EA4F484642F257AC176B74A91A02594D00D2FD30BE4927DED30C4389245EC5ECA93B1B08AFBB86B8012394F8CB874DC092498A2F9B44E27804C039632A192C8329F0DF25B196E6AB5E07FB3732B94990A2F0490FB07D9E33B0AA2830EDB572D7C7968A193B83FF869F65ABEDEC65EB03EA6DF0CD6C077DE627FD3583AFDA1754E655BE7ECF7A2BEAA422E516B26194FAEFEE6F535439B413325E1263E7E797DE9D717540A96AF360F8EE1FD4B190A513E83AEF6BCAB5A245F4A4F129F5F8AED11A558FE968A0CF2E254438384D0EE91BEE99A39696821DBA585144FA65484897CFC517FCE1D1512F792C6996063585F640AC9480220ED1FF3EDC1D7E55344977F71692D6F5DB091821A3F9612B65138848B874A93A71A74039337BF291938B0A8ACA2141BE969DCE4322A276C86C5A8E369EF6717158B46EBE48F8F9BC4F2E46203AC21CDD9F0ED1989F7D964D46D7DA63444C9CADA82AF53E38873A5D3F68868CA4F65748210716658F2A841B3890E773A2623A59073F14A0F2F1B0893FDBE5BA72FC9609DB8E8A56A322E2B4178CE7B2022D741BD256303D926B48D5239B354F611C52B475C62351854D6E27C89231E7E7972C19C7D6F5BEB07D1A1FF827348DA862F422047A2DB7B591AE497578A4BA95CBECFB503F5DC04C0C6A946FFB515F2F0BDC4332F2674706F7C1908B681D8EE3667777092C06DC9CF00F98143F4A1350FCBAEBB5157A5473D33F51778987B35B1D48249A491EE8F8778DE6DC29131F708642884BED0B0D159E1EFE428D18D3631F13A593323F1659FE9E1A708115D2F131DCC3808CE016036FF1D0D9193CBEB2CD1C49F9973E0BCB09A2A9394E2F556220C81B |
335 | 20170708163647 2 6 100 7679 2 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936EF6DD803 | 335 | 20171213024903 2 6 100 7679 5 DC810DED621062F0CB271F50E716119CBA30A56C758377BD69D70043B8C9ACA2E7EFA9896D324B18FB1A550BDB994533A67258C7EB28B23D1AFB6D3FE0C5C8AD961F2BFAE67E57978F749D3F33A0D9AEAFD817FD663E60298D0DF73E4B27A85B6799D929240EC6C4C59E0D98E0A7875F3FCC3E29394083D1344F78DC70B5E23C108A03B7B81121BEDD2093262B7E32C7AB695AD545D3A99F410199DDD9759FE1EE8502180206841B3C74CB6A939B38707309B421A75FFEC30C977F91A9F9F3C9F65EF2EA6251E72F8A65C7753815C188320E91B079EDFB9F1D480F529B67075B57523C44895DE2427D32D3935EAC5F46659C5F723C9BB006862EF143A77C384560EB5474F8D034FC8059F6D7BCD9EBD17D2740741FB4025CF87FFE3DAAFF72C8D9D10E1F779AEC56D3C6340426E2D980EAA07C46F2E720D1B8206D2A29162C6CA877FA89C0876DA70FF3A773BDEE1BB5831EFB58A9191430B0DE46EA4F484642F257AC176B74A91A02594D00D2FD30BE4927DED30C4389245EC5ECA93B1B08AFBB86B8012394F8CB874DC092498A2F9B44E27804C039632A192C8329F0DF25B196E6AB5E07FB3732B94990A2F0490FB07D9E33B0AA2830EDB572D7C7968A193B83FF869F65ABEDEC65EB03EA6DF0CD6C077DE627FD3583AFDA1754E655BE7ECF7A2BEAA422E516B26194FAEFEE6F535439B413325E1263E7E797DE9D717540A96AF360F8EE1FD4B190A513E83AEF6BCAB5A245F4A4F129F5F8AED11A558FE968A0CF2E254438384D0EE91BEE99A39696821DBA585144FA65484897CFC517FCE1D1512F792C6996063585F640AC9480220ED1FF3EDC1D7E55344977F71692D6F5DB091821A3F9612B65138848B874A93A71A74039337BF291938B0A8ACA2141BE969DCE4322A276C86C5A8E369EF6717158B46EBE48F8F9BC4F2E46203AC21CDD9F0ED1989F7D964D46D7DA63444C9CADA82AF53E38873A5D3F68868CA4F65748210716658F2A841B3890E773A2623A59073F14A0F2F1B0893FDBE5BA72FC9609DB8E8A56A322E2B4178CE7B2022D741BD256303D926B48D5239B354F611C52B475C62351854D6E27C89231E7E7972C19C7D6F5BEB07D1A1FF827348DA862F422047A2DB7B591AE497578A4BA95CBECFB503F5DC04C0C6A946FFB515F2F0BDC4332F2674706F7C1908B681D8EE3667777092C06DC9CF00F98143F4A1350FCBAEBB5157A5473D33F51778987B35B1D48249A491EE8F8778DE6DC29131F708642884BED0B0D159E1EFE428D18D3631F13A593323F1659FE9E1A708115D2F131DCC3808CE016036FF1D0D9193CBEB2CD1C49F9973E0BCB09A2A9394E2F55627C3CE7 |
336 | 20170708181531 2 6 100 7679 2 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936F0B07D83 | 336 | 20171213030139 2 6 100 7679 2 DC810DED621062F0CB271F50E716119CBA30A56C758377BD69D70043B8C9ACA2E7EFA9896D324B18FB1A550BDB994533A67258C7EB28B23D1AFB6D3FE0C5C8AD961F2BFAE67E57978F749D3F33A0D9AEAFD817FD663E60298D0DF73E4B27A85B6799D929240EC6C4C59E0D98E0A7875F3FCC3E29394083D1344F78DC70B5E23C108A03B7B81121BEDD2093262B7E32C7AB695AD545D3A99F410199DDD9759FE1EE8502180206841B3C74CB6A939B38707309B421A75FFEC30C977F91A9F9F3C9F65EF2EA6251E72F8A65C7753815C188320E91B079EDFB9F1D480F529B67075B57523C44895DE2427D32D3935EAC5F46659C5F723C9BB006862EF143A77C384560EB5474F8D034FC8059F6D7BCD9EBD17D2740741FB4025CF87FFE3DAAFF72C8D9D10E1F779AEC56D3C6340426E2D980EAA07C46F2E720D1B8206D2A29162C6CA877FA89C0876DA70FF3A773BDEE1BB5831EFB58A9191430B0DE46EA4F484642F257AC176B74A91A02594D00D2FD30BE4927DED30C4389245EC5ECA93B1B08AFBB86B8012394F8CB874DC092498A2F9B44E27804C039632A192C8329F0DF25B196E6AB5E07FB3732B94990A2F0490FB07D9E33B0AA2830EDB572D7C7968A193B83FF869F65ABEDEC65EB03EA6DF0CD6C077DE627FD3583AFDA1754E655BE7ECF7A2BEAA422E516B26194FAEFEE6F535439B413325E1263E7E797DE9D717540A96AF360F8EE1FD4B190A513E83AEF6BCAB5A245F4A4F129F5F8AED11A558FE968A0CF2E254438384D0EE91BEE99A39696821DBA585144FA65484897CFC517FCE1D1512F792C6996063585F640AC9480220ED1FF3EDC1D7E55344977F71692D6F5DB091821A3F9612B65138848B874A93A71A74039337BF291938B0A8ACA2141BE969DCE4322A276C86C5A8E369EF6717158B46EBE48F8F9BC4F2E46203AC21CDD9F0ED1989F7D964D46D7DA63444C9CADA82AF53E38873A5D3F68868CA4F65748210716658F2A841B3890E773A2623A59073F14A0F2F1B0893FDBE5BA72FC9609DB8E8A56A322E2B4178CE7B2022D741BD256303D926B48D5239B354F611C52B475C62351854D6E27C89231E7E7972C19C7D6F5BEB07D1A1FF827348DA862F422047A2DB7B591AE497578A4BA95CBECFB503F5DC04C0C6A946FFB515F2F0BDC4332F2674706F7C1908B681D8EE3667777092C06DC9CF00F98143F4A1350FCBAEBB5157A5473D33F51778987B35B1D48249A491EE8F8778DE6DC29131F708642884BED0B0D159E1EFE428D18D3631F13A593323F1659FE9E1A708115D2F131DCC3808CE016036FF1D0D9193CBEB2CD1C49F9973E0BCB09A2A9394E2F5562A0B013 |
337 | 20170708234000 2 6 100 7679 5 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936F4E4D5BF | 337 | 20171213055041 2 6 100 7679 5 DC810DED621062F0CB271F50E716119CBA30A56C758377BD69D70043B8C9ACA2E7EFA9896D324B18FB1A550BDB994533A67258C7EB28B23D1AFB6D3FE0C5C8AD961F2BFAE67E57978F749D3F33A0D9AEAFD817FD663E60298D0DF73E4B27A85B6799D929240EC6C4C59E0D98E0A7875F3FCC3E29394083D1344F78DC70B5E23C108A03B7B81121BEDD2093262B7E32C7AB695AD545D3A99F410199DDD9759FE1EE8502180206841B3C74CB6A939B38707309B421A75FFEC30C977F91A9F9F3C9F65EF2EA6251E72F8A65C7753815C188320E91B079EDFB9F1D480F529B67075B57523C44895DE2427D32D3935EAC5F46659C5F723C9BB006862EF143A77C384560EB5474F8D034FC8059F6D7BCD9EBD17D2740741FB4025CF87FFE3DAAFF72C8D9D10E1F779AEC56D3C6340426E2D980EAA07C46F2E720D1B8206D2A29162C6CA877FA89C0876DA70FF3A773BDEE1BB5831EFB58A9191430B0DE46EA4F484642F257AC176B74A91A02594D00D2FD30BE4927DED30C4389245EC5ECA93B1B08AFBB86B8012394F8CB874DC092498A2F9B44E27804C039632A192C8329F0DF25B196E6AB5E07FB3732B94990A2F0490FB07D9E33B0AA2830EDB572D7C7968A193B83FF869F65ABEDEC65EB03EA6DF0CD6C077DE627FD3583AFDA1754E655BE7ECF7A2BEAA422E516B26194FAEFEE6F535439B413325E1263E7E797DE9D717540A96AF360F8EE1FD4B190A513E83AEF6BCAB5A245F4A4F129F5F8AED11A558FE968A0CF2E254438384D0EE91BEE99A39696821DBA585144FA65484897CFC517FCE1D1512F792C6996063585F640AC9480220ED1FF3EDC1D7E55344977F71692D6F5DB091821A3F9612B65138848B874A93A71A74039337BF291938B0A8ACA2141BE969DCE4322A276C86C5A8E369EF6717158B46EBE48F8F9BC4F2E46203AC21CDD9F0ED1989F7D964D46D7DA63444C9CADA82AF53E38873A5D3F68868CA4F65748210716658F2A841B3890E773A2623A59073F14A0F2F1B0893FDBE5BA72FC9609DB8E8A56A322E2B4178CE7B2022D741BD256303D926B48D5239B354F611C52B475C62351854D6E27C89231E7E7972C19C7D6F5BEB07D1A1FF827348DA862F422047A2DB7B591AE497578A4BA95CBECFB503F5DC04C0C6A946FFB515F2F0BDC4332F2674706F7C1908B681D8EE3667777092C06DC9CF00F98143F4A1350FCBAEBB5157A5473D33F51778987B35B1D48249A491EE8F8778DE6DC29131F708642884BED0B0D159E1EFE428D18D3631F13A593323F1659FE9E1A708115D2F131DCC3808CE016036FF1D0D9193CBEB2CD1C49F9973E0BCB09A2A9394E2F5564BC168F |
338 | 20170709023719 2 6 100 7679 2 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936F727B0C3 | 338 | 20171213060909 2 6 100 7679 2 DC810DED621062F0CB271F50E716119CBA30A56C758377BD69D70043B8C9ACA2E7EFA9896D324B18FB1A550BDB994533A67258C7EB28B23D1AFB6D3FE0C5C8AD961F2BFAE67E57978F749D3F33A0D9AEAFD817FD663E60298D0DF73E4B27A85B6799D929240EC6C4C59E0D98E0A7875F3FCC3E29394083D1344F78DC70B5E23C108A03B7B81121BEDD2093262B7E32C7AB695AD545D3A99F410199DDD9759FE1EE8502180206841B3C74CB6A939B38707309B421A75FFEC30C977F91A9F9F3C9F65EF2EA6251E72F8A65C7753815C188320E91B079EDFB9F1D480F529B67075B57523C44895DE2427D32D3935EAC5F46659C5F723C9BB006862EF143A77C384560EB5474F8D034FC8059F6D7BCD9EBD17D2740741FB4025CF87FFE3DAAFF72C8D9D10E1F779AEC56D3C6340426E2D980EAA07C46F2E720D1B8206D2A29162C6CA877FA89C0876DA70FF3A773BDEE1BB5831EFB58A9191430B0DE46EA4F484642F257AC176B74A91A02594D00D2FD30BE4927DED30C4389245EC5ECA93B1B08AFBB86B8012394F8CB874DC092498A2F9B44E27804C039632A192C8329F0DF25B196E6AB5E07FB3732B94990A2F0490FB07D9E33B0AA2830EDB572D7C7968A193B83FF869F65ABEDEC65EB03EA6DF0CD6C077DE627FD3583AFDA1754E655BE7ECF7A2BEAA422E516B26194FAEFEE6F535439B413325E1263E7E797DE9D717540A96AF360F8EE1FD4B190A513E83AEF6BCAB5A245F4A4F129F5F8AED11A558FE968A0CF2E254438384D0EE91BEE99A39696821DBA585144FA65484897CFC517FCE1D1512F792C6996063585F640AC9480220ED1FF3EDC1D7E55344977F71692D6F5DB091821A3F9612B65138848B874A93A71A74039337BF291938B0A8ACA2141BE969DCE4322A276C86C5A8E369EF6717158B46EBE48F8F9BC4F2E46203AC21CDD9F0ED1989F7D964D46D7DA63444C9CADA82AF53E38873A5D3F68868CA4F65748210716658F2A841B3890E773A2623A59073F14A0F2F1B0893FDBE5BA72FC9609DB8E8A56A322E2B4178CE7B2022D741BD256303D926B48D5239B354F611C52B475C62351854D6E27C89231E7E7972C19C7D6F5BEB07D1A1FF827348DA862F422047A2DB7B591AE497578A4BA95CBECFB503F5DC04C0C6A946FFB515F2F0BDC4332F2674706F7C1908B681D8EE3667777092C06DC9CF00F98143F4A1350FCBAEBB5157A5473D33F51778987B35B1D48249A491EE8F8778DE6DC29131F708642884BED0B0D159E1EFE428D18D3631F13A593323F1659FE9E1A708115D2F131DCC3808CE016036FF1D0D9193CBEB2CD1C49F9973E0BCB09A2A9394E2F5564E9CBA3 |
339 | 20170709063946 2 6 100 7679 2 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936FA3DA1B3 | 339 | 20171213072312 2 6 100 7679 5 DC810DED621062F0CB271F50E716119CBA30A56C758377BD69D70043B8C9ACA2E7EFA9896D324B18FB1A550BDB994533A67258C7EB28B23D1AFB6D3FE0C5C8AD961F2BFAE67E57978F749D3F33A0D9AEAFD817FD663E60298D0DF73E4B27A85B6799D929240EC6C4C59E0D98E0A7875F3FCC3E29394083D1344F78DC70B5E23C108A03B7B81121BEDD2093262B7E32C7AB695AD545D3A99F410199DDD9759FE1EE8502180206841B3C74CB6A939B38707309B421A75FFEC30C977F91A9F9F3C9F65EF2EA6251E72F8A65C7753815C188320E91B079EDFB9F1D480F529B67075B57523C44895DE2427D32D3935EAC5F46659C5F723C9BB006862EF143A77C384560EB5474F8D034FC8059F6D7BCD9EBD17D2740741FB4025CF87FFE3DAAFF72C8D9D10E1F779AEC56D3C6340426E2D980EAA07C46F2E720D1B8206D2A29162C6CA877FA89C0876DA70FF3A773BDEE1BB5831EFB58A9191430B0DE46EA4F484642F257AC176B74A91A02594D00D2FD30BE4927DED30C4389245EC5ECA93B1B08AFBB86B8012394F8CB874DC092498A2F9B44E27804C039632A192C8329F0DF25B196E6AB5E07FB3732B94990A2F0490FB07D9E33B0AA2830EDB572D7C7968A193B83FF869F65ABEDEC65EB03EA6DF0CD6C077DE627FD3583AFDA1754E655BE7ECF7A2BEAA422E516B26194FAEFEE6F535439B413325E1263E7E797DE9D717540A96AF360F8EE1FD4B190A513E83AEF6BCAB5A245F4A4F129F5F8AED11A558FE968A0CF2E254438384D0EE91BEE99A39696821DBA585144FA65484897CFC517FCE1D1512F792C6996063585F640AC9480220ED1FF3EDC1D7E55344977F71692D6F5DB091821A3F9612B65138848B874A93A71A74039337BF291938B0A8ACA2141BE969DCE4322A276C86C5A8E369EF6717158B46EBE48F8F9BC4F2E46203AC21CDD9F0ED1989F7D964D46D7DA63444C9CADA82AF53E38873A5D3F68868CA4F65748210716658F2A841B3890E773A2623A59073F14A0F2F1B0893FDBE5BA72FC9609DB8E8A56A322E2B4178CE7B2022D741BD256303D926B48D5239B354F611C52B475C62351854D6E27C89231E7E7972C19C7D6F5BEB07D1A1FF827348DA862F422047A2DB7B591AE497578A4BA95CBECFB503F5DC04C0C6A946FFB515F2F0BDC4332F2674706F7C1908B681D8EE3667777092C06DC9CF00F98143F4A1350FCBAEBB5157A5473D33F51778987B35B1D48249A491EE8F8778DE6DC29131F708642884BED0B0D159E1EFE428D18D3631F13A593323F1659FE9E1A708115D2F131DCC3808CE016036FF1D0D9193CBEB2CD1C49F9973E0BCB09A2A9394E2F5565D64617 |
340 | 20170709093311 2 6 100 7679 5 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145936FC71EB57 | 340 | 20171214093125 2 6 100 7679 2 DC810DED621062F0CB271F50E716119CBA30A56C758377BD69D70043B8C9ACA2E7EFA9896D324B18FB1A550BDB994533A67258C7EB28B23D1AFB6D3FE0C5C8AD961F2BFAE67E57978F749D3F33A0D9AEAFD817FD663E60298D0DF73E4B27A85B6799D929240EC6C4C59E0D98E0A7875F3FCC3E29394083D1344F78DC70B5E23C108A03B7B81121BEDD2093262B7E32C7AB695AD545D3A99F410199DDD9759FE1EE8502180206841B3C74CB6A939B38707309B421A75FFEC30C977F91A9F9F3C9F65EF2EA6251E72F8A65C7753815C188320E91B079EDFB9F1D480F529B67075B57523C44895DE2427D32D3935EAC5F46659C5F723C9BB006862EF143A77C384560EB5474F8D034FC8059F6D7BCD9EBD17D2740741FB4025CF87FFE3DAAFF72C8D9D10E1F779AEC56D3C6340426E2D980EAA07C46F2E720D1B8206D2A29162C6CA877FA89C0876DA70FF3A773BDEE1BB5831EFB58A9191430B0DE46EA4F484642F257AC176B74A91A02594D00D2FD30BE4927DED30C4389245EC5ECA93B1B08AFBB86B8012394F8CB874DC092498A2F9B44E27804C039632A192C8329F0DF25B196E6AB5E07FB3732B94990A2F0490FB07D9E33B0AA2830EDB572D7C7968A193B83FF869F65ABEDEC65EB03EA6DF0CD6C077DE627FD3583AFDA1754E655BE7ECF7A2BEAA422E516B26194FAEFEE6F535439B413325E1263E7E797DE9D717540A96AF360F8EE1FD4B190A513E83AEF6BCAB5A245F4A4F129F5F8AED11A558FE968A0CF2E254438384D0EE91BEE99A39696821DBA585144FA65484897CFC517FCE1D1512F792C6996063585F640AC9480220ED1FF3EDC1D7E55344977F71692D6F5DB091821A3F9612B65138848B874A93A71A74039337BF291938B0A8ACA2141BE969DCE4322A276C86C5A8E369EF6717158B46EBE48F8F9BC4F2E46203AC21CDD9F0ED1989F7D964D46D7DA63444C9CADA82AF53E38873A5D3F68868CA4F65748210716658F2A841B3890E773A2623A59073F14A0F2F1B0893FDBE5BA72FC9609DB8E8A56A322E2B4178CE7B2022D741BD256303D926B48D5239B354F611C52B475C62351854D6E27C89231E7E7972C19C7D6F5BEB07D1A1FF827348DA862F422047A2DB7B591AE497578A4BA95CBECFB503F5DC04C0C6A946FFB515F2F0BDC4332F2674706F7C1908B681D8EE3667777092C06DC9CF00F98143F4A1350FCBAEBB5157A5473D33F51778987B35B1D48249A491EE8F8778DE6DC29131F708642884BED0B0D159E1EFE428D18D3631F13A593323F1659FE9E1A708115D2F131DCC3808CE016036FF1D0D9193CBEB2CD1C49F9973E0BCB09A2A9394E2F557B083E83 |
341 | 20170709151341 2 6 100 7679 5 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D14593700D34957 | 341 | 20171214095927 2 6 100 7679 5 DC810DED621062F0CB271F50E716119CBA30A56C758377BD69D70043B8C9ACA2E7EFA9896D324B18FB1A550BDB994533A67258C7EB28B23D1AFB6D3FE0C5C8AD961F2BFAE67E57978F749D3F33A0D9AEAFD817FD663E60298D0DF73E4B27A85B6799D929240EC6C4C59E0D98E0A7875F3FCC3E29394083D1344F78DC70B5E23C108A03B7B81121BEDD2093262B7E32C7AB695AD545D3A99F410199DDD9759FE1EE8502180206841B3C74CB6A939B38707309B421A75FFEC30C977F91A9F9F3C9F65EF2EA6251E72F8A65C7753815C188320E91B079EDFB9F1D480F529B67075B57523C44895DE2427D32D3935EAC5F46659C5F723C9BB006862EF143A77C384560EB5474F8D034FC8059F6D7BCD9EBD17D2740741FB4025CF87FFE3DAAFF72C8D9D10E1F779AEC56D3C6340426E2D980EAA07C46F2E720D1B8206D2A29162C6CA877FA89C0876DA70FF3A773BDEE1BB5831EFB58A9191430B0DE46EA4F484642F257AC176B74A91A02594D00D2FD30BE4927DED30C4389245EC5ECA93B1B08AFBB86B8012394F8CB874DC092498A2F9B44E27804C039632A192C8329F0DF25B196E6AB5E07FB3732B94990A2F0490FB07D9E33B0AA2830EDB572D7C7968A193B83FF869F65ABEDEC65EB03EA6DF0CD6C077DE627FD3583AFDA1754E655BE7ECF7A2BEAA422E516B26194FAEFEE6F535439B413325E1263E7E797DE9D717540A96AF360F8EE1FD4B190A513E83AEF6BCAB5A245F4A4F129F5F8AED11A558FE968A0CF2E254438384D0EE91BEE99A39696821DBA585144FA65484897CFC517FCE1D1512F792C6996063585F640AC9480220ED1FF3EDC1D7E55344977F71692D6F5DB091821A3F9612B65138848B874A93A71A74039337BF291938B0A8ACA2141BE969DCE4322A276C86C5A8E369EF6717158B46EBE48F8F9BC4F2E46203AC21CDD9F0ED1989F7D964D46D7DA63444C9CADA82AF53E38873A5D3F68868CA4F65748210716658F2A841B3890E773A2623A59073F14A0F2F1B0893FDBE5BA72FC9609DB8E8A56A322E2B4178CE7B2022D741BD256303D926B48D5239B354F611C52B475C62351854D6E27C89231E7E7972C19C7D6F5BEB07D1A1FF827348DA862F422047A2DB7B591AE497578A4BA95CBECFB503F5DC04C0C6A946FFB515F2F0BDC4332F2674706F7C1908B681D8EE3667777092C06DC9CF00F98143F4A1350FCBAEBB5157A5473D33F51778987B35B1D48249A491EE8F8778DE6DC29131F708642884BED0B0D159E1EFE428D18D3631F13A593323F1659FE9E1A708115D2F131DCC3808CE016036FF1D0D9193CBEB2CD1C49F9973E0BCB09A2A9394E2F557B5C6367 |
342 | 20170709162318 2 6 100 7679 5 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D14593701B3041F | 342 | 20171214222602 2 6 100 7679 2 DC810DED621062F0CB271F50E716119CBA30A56C758377BD69D70043B8C9ACA2E7EFA9896D324B18FB1A550BDB994533A67258C7EB28B23D1AFB6D3FE0C5C8AD961F2BFAE67E57978F749D3F33A0D9AEAFD817FD663E60298D0DF73E4B27A85B6799D929240EC6C4C59E0D98E0A7875F3FCC3E29394083D1344F78DC70B5E23C108A03B7B81121BEDD2093262B7E32C7AB695AD545D3A99F410199DDD9759FE1EE8502180206841B3C74CB6A939B38707309B421A75FFEC30C977F91A9F9F3C9F65EF2EA6251E72F8A65C7753815C188320E91B079EDFB9F1D480F529B67075B57523C44895DE2427D32D3935EAC5F46659C5F723C9BB006862EF143A77C384560EB5474F8D034FC8059F6D7BCD9EBD17D2740741FB4025CF87FFE3DAAFF72C8D9D10E1F779AEC56D3C6340426E2D980EAA07C46F2E720D1B8206D2A29162C6CA877FA89C0876DA70FF3A773BDEE1BB5831EFB58A9191430B0DE46EA4F484642F257AC176B74A91A02594D00D2FD30BE4927DED30C4389245EC5ECA93B1B08AFBB86B8012394F8CB874DC092498A2F9B44E27804C039632A192C8329F0DF25B196E6AB5E07FB3732B94990A2F0490FB07D9E33B0AA2830EDB572D7C7968A193B83FF869F65ABEDEC65EB03EA6DF0CD6C077DE627FD3583AFDA1754E655BE7ECF7A2BEAA422E516B26194FAEFEE6F535439B413325E1263E7E797DE9D717540A96AF360F8EE1FD4B190A513E83AEF6BCAB5A245F4A4F129F5F8AED11A558FE968A0CF2E254438384D0EE91BEE99A39696821DBA585144FA65484897CFC517FCE1D1512F792C6996063585F640AC9480220ED1FF3EDC1D7E55344977F71692D6F5DB091821A3F9612B65138848B874A93A71A74039337BF291938B0A8ACA2141BE969DCE4322A276C86C5A8E369EF6717158B46EBE48F8F9BC4F2E46203AC21CDD9F0ED1989F7D964D46D7DA63444C9CADA82AF53E38873A5D3F68868CA4F65748210716658F2A841B3890E773A2623A59073F14A0F2F1B0893FDBE5BA72FC9609DB8E8A56A322E2B4178CE7B2022D741BD256303D926B48D5239B354F611C52B475C62351854D6E27C89231E7E7972C19C7D6F5BEB07D1A1FF827348DA862F422047A2DB7B591AE497578A4BA95CBECFB503F5DC04C0C6A946FFB515F2F0BDC4332F2674706F7C1908B681D8EE3667777092C06DC9CF00F98143F4A1350FCBAEBB5157A5473D33F51778987B35B1D48249A491EE8F8778DE6DC29131F708642884BED0B0D159E1EFE428D18D3631F13A593323F1659FE9E1A708115D2F131DCC3808CE016036FF1D0D9193CBEB2CD1C49F9973E0BCB09A2A9394E2F5585408053 |
343 | 20170709184215 2 6 100 7679 2 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D1459370374B3A3 | 343 | 20171214233609 2 6 100 7679 2 DC810DED621062F0CB271F50E716119CBA30A56C758377BD69D70043B8C9ACA2E7EFA9896D324B18FB1A550BDB994533A67258C7EB28B23D1AFB6D3FE0C5C8AD961F2BFAE67E57978F749D3F33A0D9AEAFD817FD663E60298D0DF73E4B27A85B6799D929240EC6C4C59E0D98E0A7875F3FCC3E29394083D1344F78DC70B5E23C108A03B7B81121BEDD2093262B7E32C7AB695AD545D3A99F410199DDD9759FE1EE8502180206841B3C74CB6A939B38707309B421A75FFEC30C977F91A9F9F3C9F65EF2EA6251E72F8A65C7753815C188320E91B079EDFB9F1D480F529B67075B57523C44895DE2427D32D3935EAC5F46659C5F723C9BB006862EF143A77C384560EB5474F8D034FC8059F6D7BCD9EBD17D2740741FB4025CF87FFE3DAAFF72C8D9D10E1F779AEC56D3C6340426E2D980EAA07C46F2E720D1B8206D2A29162C6CA877FA89C0876DA70FF3A773BDEE1BB5831EFB58A9191430B0DE46EA4F484642F257AC176B74A91A02594D00D2FD30BE4927DED30C4389245EC5ECA93B1B08AFBB86B8012394F8CB874DC092498A2F9B44E27804C039632A192C8329F0DF25B196E6AB5E07FB3732B94990A2F0490FB07D9E33B0AA2830EDB572D7C7968A193B83FF869F65ABEDEC65EB03EA6DF0CD6C077DE627FD3583AFDA1754E655BE7ECF7A2BEAA422E516B26194FAEFEE6F535439B413325E1263E7E797DE9D717540A96AF360F8EE1FD4B190A513E83AEF6BCAB5A245F4A4F129F5F8AED11A558FE968A0CF2E254438384D0EE91BEE99A39696821DBA585144FA65484897CFC517FCE1D1512F792C6996063585F640AC9480220ED1FF3EDC1D7E55344977F71692D6F5DB091821A3F9612B65138848B874A93A71A74039337BF291938B0A8ACA2141BE969DCE4322A276C86C5A8E369EF6717158B46EBE48F8F9BC4F2E46203AC21CDD9F0ED1989F7D964D46D7DA63444C9CADA82AF53E38873A5D3F68868CA4F65748210716658F2A841B3890E773A2623A59073F14A0F2F1B0893FDBE5BA72FC9609DB8E8A56A322E2B4178CE7B2022D741BD256303D926B48D5239B354F611C52B475C62351854D6E27C89231E7E7972C19C7D6F5BEB07D1A1FF827348DA862F422047A2DB7B591AE497578A4BA95CBECFB503F5DC04C0C6A946FFB515F2F0BDC4332F2674706F7C1908B681D8EE3667777092C06DC9CF00F98143F4A1350FCBAEBB5157A5473D33F51778987B35B1D48249A491EE8F8778DE6DC29131F708642884BED0B0D159E1EFE428D18D3631F13A593323F1659FE9E1A708115D2F131DCC3808CE016036FF1D0D9193CBEB2CD1C49F9973E0BCB09A2A9394E2F55862A758B |
344 | 20170709215933 2 6 100 7679 5 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D14593705ED75E7 | 344 | 20171215214134 2 6 100 7679 2 DC810DED621062F0CB271F50E716119CBA30A56C758377BD69D70043B8C9ACA2E7EFA9896D324B18FB1A550BDB994533A67258C7EB28B23D1AFB6D3FE0C5C8AD961F2BFAE67E57978F749D3F33A0D9AEAFD817FD663E60298D0DF73E4B27A85B6799D929240EC6C4C59E0D98E0A7875F3FCC3E29394083D1344F78DC70B5E23C108A03B7B81121BEDD2093262B7E32C7AB695AD545D3A99F410199DDD9759FE1EE8502180206841B3C74CB6A939B38707309B421A75FFEC30C977F91A9F9F3C9F65EF2EA6251E72F8A65C7753815C188320E91B079EDFB9F1D480F529B67075B57523C44895DE2427D32D3935EAC5F46659C5F723C9BB006862EF143A77C384560EB5474F8D034FC8059F6D7BCD9EBD17D2740741FB4025CF87FFE3DAAFF72C8D9D10E1F779AEC56D3C6340426E2D980EAA07C46F2E720D1B8206D2A29162C6CA877FA89C0876DA70FF3A773BDEE1BB5831EFB58A9191430B0DE46EA4F484642F257AC176B74A91A02594D00D2FD30BE4927DED30C4389245EC5ECA93B1B08AFBB86B8012394F8CB874DC092498A2F9B44E27804C039632A192C8329F0DF25B196E6AB5E07FB3732B94990A2F0490FB07D9E33B0AA2830EDB572D7C7968A193B83FF869F65ABEDEC65EB03EA6DF0CD6C077DE627FD3583AFDA1754E655BE7ECF7A2BEAA422E516B26194FAEFEE6F535439B413325E1263E7E797DE9D717540A96AF360F8EE1FD4B190A513E83AEF6BCAB5A245F4A4F129F5F8AED11A558FE968A0CF2E254438384D0EE91BEE99A39696821DBA585144FA65484897CFC517FCE1D1512F792C6996063585F640AC9480220ED1FF3EDC1D7E55344977F71692D6F5DB091821A3F9612B65138848B874A93A71A74039337BF291938B0A8ACA2141BE969DCE4322A276C86C5A8E369EF6717158B46EBE48F8F9BC4F2E46203AC21CDD9F0ED1989F7D964D46D7DA63444C9CADA82AF53E38873A5D3F68868CA4F65748210716658F2A841B3890E773A2623A59073F14A0F2F1B0893FDBE5BA72FC9609DB8E8A56A322E2B4178CE7B2022D741BD256303D926B48D5239B354F611C52B475C62351854D6E27C89231E7E7972C19C7D6F5BEB07D1A1FF827348DA862F422047A2DB7B591AE497578A4BA95CBECFB503F5DC04C0C6A946FFB515F2F0BDC4332F2674706F7C1908B681D8EE3667777092C06DC9CF00F98143F4A1350FCBAEBB5157A5473D33F51778987B35B1D48249A491EE8F8778DE6DC29131F708642884BED0B0D159E1EFE428D18D3631F13A593323F1659FE9E1A708115D2F131DCC3808CE016036FF1D0D9193CBEB2CD1C49F9973E0BCB09A2A9394E2F559742D26B |
345 | 20170710000252 2 6 100 7679 2 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D145937077174C3 | 345 | 20171216043116 2 6 100 7679 5 DC810DED621062F0CB271F50E716119CBA30A56C758377BD69D70043B8C9ACA2E7EFA9896D324B18FB1A550BDB994533A67258C7EB28B23D1AFB6D3FE0C5C8AD961F2BFAE67E57978F749D3F33A0D9AEAFD817FD663E60298D0DF73E4B27A85B6799D929240EC6C4C59E0D98E0A7875F3FCC3E29394083D1344F78DC70B5E23C108A03B7B81121BEDD2093262B7E32C7AB695AD545D3A99F410199DDD9759FE1EE8502180206841B3C74CB6A939B38707309B421A75FFEC30C977F91A9F9F3C9F65EF2EA6251E72F8A65C7753815C188320E91B079EDFB9F1D480F529B67075B57523C44895DE2427D32D3935EAC5F46659C5F723C9BB006862EF143A77C384560EB5474F8D034FC8059F6D7BCD9EBD17D2740741FB4025CF87FFE3DAAFF72C8D9D10E1F779AEC56D3C6340426E2D980EAA07C46F2E720D1B8206D2A29162C6CA877FA89C0876DA70FF3A773BDEE1BB5831EFB58A9191430B0DE46EA4F484642F257AC176B74A91A02594D00D2FD30BE4927DED30C4389245EC5ECA93B1B08AFBB86B8012394F8CB874DC092498A2F9B44E27804C039632A192C8329F0DF25B196E6AB5E07FB3732B94990A2F0490FB07D9E33B0AA2830EDB572D7C7968A193B83FF869F65ABEDEC65EB03EA6DF0CD6C077DE627FD3583AFDA1754E655BE7ECF7A2BEAA422E516B26194FAEFEE6F535439B413325E1263E7E797DE9D717540A96AF360F8EE1FD4B190A513E83AEF6BCAB5A245F4A4F129F5F8AED11A558FE968A0CF2E254438384D0EE91BEE99A39696821DBA585144FA65484897CFC517FCE1D1512F792C6996063585F640AC9480220ED1FF3EDC1D7E55344977F71692D6F5DB091821A3F9612B65138848B874A93A71A74039337BF291938B0A8ACA2141BE969DCE4322A276C86C5A8E369EF6717158B46EBE48F8F9BC4F2E46203AC21CDD9F0ED1989F7D964D46D7DA63444C9CADA82AF53E38873A5D3F68868CA4F65748210716658F2A841B3890E773A2623A59073F14A0F2F1B0893FDBE5BA72FC9609DB8E8A56A322E2B4178CE7B2022D741BD256303D926B48D5239B354F611C52B475C62351854D6E27C89231E7E7972C19C7D6F5BEB07D1A1FF827348DA862F422047A2DB7B591AE497578A4BA95CBECFB503F5DC04C0C6A946FFB515F2F0BDC4332F2674706F7C1908B681D8EE3667777092C06DC9CF00F98143F4A1350FCBAEBB5157A5473D33F51778987B35B1D48249A491EE8F8778DE6DC29131F708642884BED0B0D159E1EFE428D18D3631F13A593323F1659FE9E1A708115D2F131DCC3808CE016036FF1D0D9193CBEB2CD1C49F9973E0BCB09A2A9394E2F559C858AD7 |
346 | 20170710052851 2 6 100 7679 2 C0388038628CD48D5377C99911D89CEDF70AC54721EE6974975D61C9E25580D2108B48CBCDB8B647B271FA822546C00580DB013D19EE5A49EFD9AAECA2036A83BB3E2F96C3E7CB273AA9ACEFCA5A3E4C7C8FCF3332DE11288D8BD76E17B4C530F5F6EFB0D757F63E3B2B519EE960FA8206DF81E7B9DA463CE389E3164588BF5B66355D481DC620F0B2F352782105DF3AB86076DD7D612CE9839CB251D5C975166859A41B740E08E66B746B710479FAA430E2891E60647E04FE71D8F8BC9A6BCD20CFB42299142DC016E672CC350D497809379F54F6F3D1649ADCE72ADECEAAE1ECA85EEE8006700379DE3687A67AF796E1F317815461CFF6E58615CD453265612315FA8F99DC65D9CC218004671E43CE58C9F54862D86B58FD71212199A2A562B1AB9604BF43676A403E8EA56A69E68F1CF0C60C83B8EB31D9C0A23D8410C3A6898D749CAD8CDA9F17A224536BD08436B25E50BA67BAD09276BB55583CEDF48AEEFFD8FA3DBE4F609760DF1EDED136B38792CD164D2EA3C5443F0D8F9117544A9A6AAC615ADE01440B7948B2B53BC3F7218DEDEB16D23C3B0C2AA4BEB99F9A9225D87B6CCB037D8E9A2918C20FE9F2BFF429FD0F23AE370E820842AEDD823DD5B6DDD7F4AD3A06735A2E4144DBABEA5DD83A6AA98EED5F6F3021C246FBABD280986A1E7A24CCBE11BC3050CC04DB566277CECBA8B5BDC1D15E1F066B25B668C7B87EA54894EC7559B64F1400934DCE1C06A10955988E3B3F4A40566B3989608404859335C53EBD6BEE21614EB7C954D543DBA7EB61555B7CED9D08EF560426DBCE3018FBEF788CF69AEAB433B692A9E28CBAFEFC048BD9AB423678D4DD5807329BCC417CF77EC7FD8E50B6D9A8D6B2017B24F6890557AF327980D086499B7C4ED6518B9C23DAB9571CA9E8E949C039C5CC002CBC9BDD08728D543143AFE577738AD309AB2493A8157272196B73C28A4826B37A8274198A4E8188CDADB1D7BB209C84D03500F79B9DFEC1E4441F34069CC01D6B9A57940914F56217C0F3A5CE0C75DE2815EE396D4AB00EC9695DFBCDD88EA6C8017CC29B1257EED39B50E0D075CCF9564D4B22F59F4B5E6667E4CACAC6B63D8CC1C9AB2CC6309A319E559D2062FB99D15B62F08E4DAD676698813D227FF8967B3B3830970E92277B2446A3C269A74FB437800824A8987DA3636A17A53C7E55C66077BE0FBD63441402F19C6C4E1F1C46185A3F3F5D7D7F553F0066EBFCF2ECD74CFC6DB48F6A458AE66EC12532B691FA3AE9A0C19809B3A1AF06340EFB012A33D484D272CA09D5862DAC5E3A00006F260BDE5CE74E007AB12A8F686373949308E574DCE7EA9D1459370B975DE3 | 346 | 20171216061211 2 6 100 7679 5 DC810DED621062F0CB271F50E716119CBA30A56C758377BD69D70043B8C9ACA2E7EFA9896D324B18FB1A550BDB994533A67258C7EB28B23D1AFB6D3FE0C5C8AD961F2BFAE67E57978F749D3F33A0D9AEAFD817FD663E60298D0DF73E4B27A85B6799D929240EC6C4C59E0D98E0A7875F3FCC3E29394083D1344F78DC70B5E23C108A03B7B81121BEDD2093262B7E32C7AB695AD545D3A99F410199DDD9759FE1EE8502180206841B3C74CB6A939B38707309B421A75FFEC30C977F91A9F9F3C9F65EF2EA6251E72F8A65C7753815C188320E91B079EDFB9F1D480F529B67075B57523C44895DE2427D32D3935EAC5F46659C5F723C9BB006862EF143A77C384560EB5474F8D034FC8059F6D7BCD9EBD17D2740741FB4025CF87FFE3DAAFF72C8D9D10E1F779AEC56D3C6340426E2D980EAA07C46F2E720D1B8206D2A29162C6CA877FA89C0876DA70FF3A773BDEE1BB5831EFB58A9191430B0DE46EA4F484642F257AC176B74A91A02594D00D2FD30BE4927DED30C4389245EC5ECA93B1B08AFBB86B8012394F8CB874DC092498A2F9B44E27804C039632A192C8329F0DF25B196E6AB5E07FB3732B94990A2F0490FB07D9E33B0AA2830EDB572D7C7968A193B83FF869F65ABEDEC65EB03EA6DF0CD6C077DE627FD3583AFDA1754E655BE7ECF7A2BEAA422E516B26194FAEFEE6F535439B413325E1263E7E797DE9D717540A96AF360F8EE1FD4B190A513E83AEF6BCAB5A245F4A4F129F5F8AED11A558FE968A0CF2E254438384D0EE91BEE99A39696821DBA585144FA65484897CFC517FCE1D1512F792C6996063585F640AC9480220ED1FF3EDC1D7E55344977F71692D6F5DB091821A3F9612B65138848B874A93A71A74039337BF291938B0A8ACA2141BE969DCE4322A276C86C5A8E369EF6717158B46EBE48F8F9BC4F2E46203AC21CDD9F0ED1989F7D964D46D7DA63444C9CADA82AF53E38873A5D3F68868CA4F65748210716658F2A841B3890E773A2623A59073F14A0F2F1B0893FDBE5BA72FC9609DB8E8A56A322E2B4178CE7B2022D741BD256303D926B48D5239B354F611C52B475C62351854D6E27C89231E7E7972C19C7D6F5BEB07D1A1FF827348DA862F422047A2DB7B591AE497578A4BA95CBECFB503F5DC04C0C6A946FFB515F2F0BDC4332F2674706F7C1908B681D8EE3667777092C06DC9CF00F98143F4A1350FCBAEBB5157A5473D33F51778987B35B1D48249A491EE8F8778DE6DC29131F708642884BED0B0D159E1EFE428D18D3631F13A593323F1659FE9E1A708115D2F131DCC3808CE016036FF1D0D9193CBEB2CD1C49F9973E0BCB09A2A9394E2F559DBA299F |
347 | 20170710074510 2 6 100 8191 2 DDFBC1CD4FB7E30639422038F1FFBA2CD3EC3915F3C923282C6588F6EB218FF7B24870C0FE4B48213AB0948E101686FB7B0093ED467B6CA413EDD4B0BFE2155AEBC4DA3D2DD0C78DA9AD989A0E989010D6D5E86A123C169E126F97826EE5F602FF641FDF642A107E7538CB61740CBAF69F6C7DC5DD4DF28998AB61B8672F0B74A3A8DD7D165828D69DCC1BAE4D45F707C3894E040BCC0AF7AA810A6D5CB89276217EB7AFAFE4966D68C10318E8C8CB23CA593E8057F29FF9154908B11D6530E6352F9406C81D9DAC5C298979320B4E0DD89203A1F680C8084154D0439DB6C53EDAF6FCC0E8682EC99D345180120AEC810CBB0C2F1B6D1B660ACEAAD5996A5D184659B6A1F11456BA6A5E94D223959D8171C030499A9DB458702CB35CA7E7CD75D26FF5E94640AB8740ECE82559784BB6D5CB4D041D053629BD3F4178077F3F7E280296C46A3F0FBC37813A1AA221FBA2612F0CFE56450E9B1F2C2AE278EC7A7AAB66D61FA9749FE997EDC31131091620897014D33B2386B490CFD80656B7D2EB08C9DA9928798986996D60F74D766EB8988E2FF676E38C587E7A6651AA28BEB8BB56EBBD6E641E92309AEAA671A5F2EC72629442D2C3A4C2B8E4304DC71B342CD116527832078E6B53C1E0A72909615B408E17625F7259ACA98E46359448FC141F57B51A069B8A402AE3A87E10AE7E910F3916BAC6CE716C539E825A06626673DE7EBD899A3982FCC599791E7CA964C0D37BB076708C03DC7C022980974025C0EA9B72CC3D0A03E4626E030E9C857ECF6B3807AC9E8E0F72098C7E80DAA05BFF60394A8374096878F015597DD5B22E65646A7DDC87B5F6AE68594DF39B0BDB2675A32369AD81FD62033146B8DA6A801E918572CBC70DEBA9F70D088D69425733ACE0084E60E7FCB459A5B71F74F711184B1AEA240834D28D049474BB2E7ED1B17AA2B5EB7D274341456834320BE8FB245B1C2B84A096E7E40573FEB7C2997ED16C8C2C62409B8064398ED220FA82C59E53AD7E864C24473FCC7F017B897D5855F092A9428957467EFD93F67D3FA302C578328A9484CD0496CC83BEAC96504F9601DA2048D25BF43B5A69E46234A164D854B89DF1DEDC36F0304BA5FC035B27E782087C3EC0A81840A3EC042204C63F9698CC74A818428039B23664C409529C4EDD822DF77819805023795EE625D524F12824C1F1FE99546DF75107AFFF7D424C4C3FB3D0BDA2E9BC0D93603457FFE44FABEAB1E6B62223B201D42784731BEE11E0FF0BF29C930DAF913F974739800522E2B9C4094475A5F35AA92E2939E5719EB4EE19446ADC9ECC7EE6BAB5D264C9E74AB6DE856D541146048341EB51734A34E33EF8D929F645E23FD902CB5676DA9C84C9F46490710DC8CF2AA922252C3885CBD8D0CB1D176CAFEB46A625C56BE949F487C6E35E2CE481F024C8898200FD23 | 347 | 20171216061646 2 6 100 7679 2 DC810DED621062F0CB271F50E716119CBA30A56C758377BD69D70043B8C9ACA2E7EFA9896D324B18FB1A550BDB994533A67258C7EB28B23D1AFB6D3FE0C5C8AD961F2BFAE67E57978F749D3F33A0D9AEAFD817FD663E60298D0DF73E4B27A85B6799D929240EC6C4C59E0D98E0A7875F3FCC3E29394083D1344F78DC70B5E23C108A03B7B81121BEDD2093262B7E32C7AB695AD545D3A99F410199DDD9759FE1EE8502180206841B3C74CB6A939B38707309B421A75FFEC30C977F91A9F9F3C9F65EF2EA6251E72F8A65C7753815C188320E91B079EDFB9F1D480F529B67075B57523C44895DE2427D32D3935EAC5F46659C5F723C9BB006862EF143A77C384560EB5474F8D034FC8059F6D7BCD9EBD17D2740741FB4025CF87FFE3DAAFF72C8D9D10E1F779AEC56D3C6340426E2D980EAA07C46F2E720D1B8206D2A29162C6CA877FA89C0876DA70FF3A773BDEE1BB5831EFB58A9191430B0DE46EA4F484642F257AC176B74A91A02594D00D2FD30BE4927DED30C4389245EC5ECA93B1B08AFBB86B8012394F8CB874DC092498A2F9B44E27804C039632A192C8329F0DF25B196E6AB5E07FB3732B94990A2F0490FB07D9E33B0AA2830EDB572D7C7968A193B83FF869F65ABEDEC65EB03EA6DF0CD6C077DE627FD3583AFDA1754E655BE7ECF7A2BEAA422E516B26194FAEFEE6F535439B413325E1263E7E797DE9D717540A96AF360F8EE1FD4B190A513E83AEF6BCAB5A245F4A4F129F5F8AED11A558FE968A0CF2E254438384D0EE91BEE99A39696821DBA585144FA65484897CFC517FCE1D1512F792C6996063585F640AC9480220ED1FF3EDC1D7E55344977F71692D6F5DB091821A3F9612B65138848B874A93A71A74039337BF291938B0A8ACA2141BE969DCE4322A276C86C5A8E369EF6717158B46EBE48F8F9BC4F2E46203AC21CDD9F0ED1989F7D964D46D7DA63444C9CADA82AF53E38873A5D3F68868CA4F65748210716658F2A841B3890E773A2623A59073F14A0F2F1B0893FDBE5BA72FC9609DB8E8A56A322E2B4178CE7B2022D741BD256303D926B48D5239B354F611C52B475C62351854D6E27C89231E7E7972C19C7D6F5BEB07D1A1FF827348DA862F422047A2DB7B591AE497578A4BA95CBECFB503F5DC04C0C6A946FFB515F2F0BDC4332F2674706F7C1908B681D8EE3667777092C06DC9CF00F98143F4A1350FCBAEBB5157A5473D33F51778987B35B1D48249A491EE8F8778DE6DC29131F708642884BED0B0D159E1EFE428D18D3631F13A593323F1659FE9E1A708115D2F131DCC3808CE016036FF1D0D9193CBEB2CD1C49F9973E0BCB09A2A9394E2F559DBFD57B |
348 | 20170710114649 2 6 100 8191 2 DDFBC1CD4FB7E30639422038F1FFBA2CD3EC3915F3C923282C6588F6EB218FF7B24870C0FE4B48213AB0948E101686FB7B0093ED467B6CA413EDD4B0BFE2155AEBC4DA3D2DD0C78DA9AD989A0E989010D6D5E86A123C169E126F97826EE5F602FF641FDF642A107E7538CB61740CBAF69F6C7DC5DD4DF28998AB61B8672F0B74A3A8DD7D165828D69DCC1BAE4D45F707C3894E040BCC0AF7AA810A6D5CB89276217EB7AFAFE4966D68C10318E8C8CB23CA593E8057F29FF9154908B11D6530E6352F9406C81D9DAC5C298979320B4E0DD89203A1F680C8084154D0439DB6C53EDAF6FCC0E8682EC99D345180120AEC810CBB0C2F1B6D1B660ACEAAD5996A5D184659B6A1F11456BA6A5E94D223959D8171C030499A9DB458702CB35CA7E7CD75D26FF5E94640AB8740ECE82559784BB6D5CB4D041D053629BD3F4178077F3F7E280296C46A3F0FBC37813A1AA221FBA2612F0CFE56450E9B1F2C2AE278EC7A7AAB66D61FA9749FE997EDC31131091620897014D33B2386B490CFD80656B7D2EB08C9DA9928798986996D60F74D766EB8988E2FF676E38C587E7A6651AA28BEB8BB56EBBD6E641E92309AEAA671A5F2EC72629442D2C3A4C2B8E4304DC71B342CD116527832078E6B53C1E0A72909615B408E17625F7259ACA98E46359448FC141F57B51A069B8A402AE3A87E10AE7E910F3916BAC6CE716C539E825A06626673DE7EBD899A3982FCC599791E7CA964C0D37BB076708C03DC7C022980974025C0EA9B72CC3D0A03E4626E030E9C857ECF6B3807AC9E8E0F72098C7E80DAA05BFF60394A8374096878F015597DD5B22E65646A7DDC87B5F6AE68594DF39B0BDB2675A32369AD81FD62033146B8DA6A801E918572CBC70DEBA9F70D088D69425733ACE0084E60E7FCB459A5B71F74F711184B1AEA240834D28D049474BB2E7ED1B17AA2B5EB7D274341456834320BE8FB245B1C2B84A096E7E40573FEB7C2997ED16C8C2C62409B8064398ED220FA82C59E53AD7E864C24473FCC7F017B897D5855F092A9428957467EFD93F67D3FA302C578328A9484CD0496CC83BEAC96504F9601DA2048D25BF43B5A69E46234A164D854B89DF1DEDC36F0304BA5FC035B27E782087C3EC0A81840A3EC042204C63F9698CC74A818428039B23664C409529C4EDD822DF77819805023795EE625D524F12824C1F1FE99546DF75107AFFF7D424C4C3FB3D0BDA2E9BC0D93603457FFE44FABEAB1E6B62223B201D42784731BEE11E0FF0BF29C930DAF913F974739800522E2B9C4094475A5F35AA92E2939E5719EB4EE19446ADC9ECC7EE6BAB5D264C9E74AB6DE856D541146048341EB51734A34E33EF8D929F645E23FD902CB5676DA9C84C9F46490710DC8CF2AA922252C3885CBD8D0CB1D176CAFEB46A625C56BE949F487C6E35E2CE481F024C88984F315BB | 348 | 20171216094255 2 6 100 7679 2 DC810DED621062F0CB271F50E716119CBA30A56C758377BD69D70043B8C9ACA2E7EFA9896D324B18FB1A550BDB994533A67258C7EB28B23D1AFB6D3FE0C5C8AD961F2BFAE67E57978F749D3F33A0D9AEAFD817FD663E60298D0DF73E4B27A85B6799D929240EC6C4C59E0D98E0A7875F3FCC3E29394083D1344F78DC70B5E23C108A03B7B81121BEDD2093262B7E32C7AB695AD545D3A99F410199DDD9759FE1EE8502180206841B3C74CB6A939B38707309B421A75FFEC30C977F91A9F9F3C9F65EF2EA6251E72F8A65C7753815C188320E91B079EDFB9F1D480F529B67075B57523C44895DE2427D32D3935EAC5F46659C5F723C9BB006862EF143A77C384560EB5474F8D034FC8059F6D7BCD9EBD17D2740741FB4025CF87FFE3DAAFF72C8D9D10E1F779AEC56D3C6340426E2D980EAA07C46F2E720D1B8206D2A29162C6CA877FA89C0876DA70FF3A773BDEE1BB5831EFB58A9191430B0DE46EA4F484642F257AC176B74A91A02594D00D2FD30BE4927DED30C4389245EC5ECA93B1B08AFBB86B8012394F8CB874DC092498A2F9B44E27804C039632A192C8329F0DF25B196E6AB5E07FB3732B94990A2F0490FB07D9E33B0AA2830EDB572D7C7968A193B83FF869F65ABEDEC65EB03EA6DF0CD6C077DE627FD3583AFDA1754E655BE7ECF7A2BEAA422E516B26194FAEFEE6F535439B413325E1263E7E797DE9D717540A96AF360F8EE1FD4B190A513E83AEF6BCAB5A245F4A4F129F5F8AED11A558FE968A0CF2E254438384D0EE91BEE99A39696821DBA585144FA65484897CFC517FCE1D1512F792C6996063585F640AC9480220ED1FF3EDC1D7E55344977F71692D6F5DB091821A3F9612B65138848B874A93A71A74039337BF291938B0A8ACA2141BE969DCE4322A276C86C5A8E369EF6717158B46EBE48F8F9BC4F2E46203AC21CDD9F0ED1989F7D964D46D7DA63444C9CADA82AF53E38873A5D3F68868CA4F65748210716658F2A841B3890E773A2623A59073F14A0F2F1B0893FDBE5BA72FC9609DB8E8A56A322E2B4178CE7B2022D741BD256303D926B48D5239B354F611C52B475C62351854D6E27C89231E7E7972C19C7D6F5BEB07D1A1FF827348DA862F422047A2DB7B591AE497578A4BA95CBECFB503F5DC04C0C6A946FFB515F2F0BDC4332F2674706F7C1908B681D8EE3667777092C06DC9CF00F98143F4A1350FCBAEBB5157A5473D33F51778987B35B1D48249A491EE8F8778DE6DC29131F708642884BED0B0D159E1EFE428D18D3631F13A593323F1659FE9E1A708115D2F131DCC3808CE016036FF1D0D9193CBEB2CD1C49F9973E0BCB09A2A9394E2F55A0524813 |
349 | 20170711033842 2 6 100 8191 5 DDFBC1CD4FB7E30639422038F1FFBA2CD3EC3915F3C923282C6588F6EB218FF7B24870C0FE4B48213AB0948E101686FB7B0093ED467B6CA413EDD4B0BFE2155AEBC4DA3D2DD0C78DA9AD989A0E989010D6D5E86A123C169E126F97826EE5F602FF641FDF642A107E7538CB61740CBAF69F6C7DC5DD4DF28998AB61B8672F0B74A3A8DD7D165828D69DCC1BAE4D45F707C3894E040BCC0AF7AA810A6D5CB89276217EB7AFAFE4966D68C10318E8C8CB23CA593E8057F29FF9154908B11D6530E6352F9406C81D9DAC5C298979320B4E0DD89203A1F680C8084154D0439DB6C53EDAF6FCC0E8682EC99D345180120AEC810CBB0C2F1B6D1B660ACEAAD5996A5D184659B6A1F11456BA6A5E94D223959D8171C030499A9DB458702CB35CA7E7CD75D26FF5E94640AB8740ECE82559784BB6D5CB4D041D053629BD3F4178077F3F7E280296C46A3F0FBC37813A1AA221FBA2612F0CFE56450E9B1F2C2AE278EC7A7AAB66D61FA9749FE997EDC31131091620897014D33B2386B490CFD80656B7D2EB08C9DA9928798986996D60F74D766EB8988E2FF676E38C587E7A6651AA28BEB8BB56EBBD6E641E92309AEAA671A5F2EC72629442D2C3A4C2B8E4304DC71B342CD116527832078E6B53C1E0A72909615B408E17625F7259ACA98E46359448FC141F57B51A069B8A402AE3A87E10AE7E910F3916BAC6CE716C539E825A06626673DE7EBD899A3982FCC599791E7CA964C0D37BB076708C03DC7C022980974025C0EA9B72CC3D0A03E4626E030E9C857ECF6B3807AC9E8E0F72098C7E80DAA05BFF60394A8374096878F015597DD5B22E65646A7DDC87B5F6AE68594DF39B0BDB2675A32369AD81FD62033146B8DA6A801E918572CBC70DEBA9F70D088D69425733ACE0084E60E7FCB459A5B71F74F711184B1AEA240834D28D049474BB2E7ED1B17AA2B5EB7D274341456834320BE8FB245B1C2B84A096E7E40573FEB7C2997ED16C8C2C62409B8064398ED220FA82C59E53AD7E864C24473FCC7F017B897D5855F092A9428957467EFD93F67D3FA302C578328A9484CD0496CC83BEAC96504F9601DA2048D25BF43B5A69E46234A164D854B89DF1DEDC36F0304BA5FC035B27E782087C3EC0A81840A3EC042204C63F9698CC74A818428039B23664C409529C4EDD822DF77819805023795EE625D524F12824C1F1FE99546DF75107AFFF7D424C4C3FB3D0BDA2E9BC0D93603457FFE44FABEAB1E6B62223B201D42784731BEE11E0FF0BF29C930DAF913F974739800522E2B9C4094475A5F35AA92E2939E5719EB4EE19446ADC9ECC7EE6BAB5D264C9E74AB6DE856D541146048341EB51734A34E33EF8D929F645E23FD902CB5676DA9C84C9F46490710DC8CF2AA922252C3885CBD8D0CB1D176CAFEB46A625C56BE949F487C6E35E2CE481F024C88990A1C3A7 | 349 | 20171216110833 2 6 100 7679 5 DC810DED621062F0CB271F50E716119CBA30A56C758377BD69D70043B8C9ACA2E7EFA9896D324B18FB1A550BDB994533A67258C7EB28B23D1AFB6D3FE0C5C8AD961F2BFAE67E57978F749D3F33A0D9AEAFD817FD663E60298D0DF73E4B27A85B6799D929240EC6C4C59E0D98E0A7875F3FCC3E29394083D1344F78DC70B5E23C108A03B7B81121BEDD2093262B7E32C7AB695AD545D3A99F410199DDD9759FE1EE8502180206841B3C74CB6A939B38707309B421A75FFEC30C977F91A9F9F3C9F65EF2EA6251E72F8A65C7753815C188320E91B079EDFB9F1D480F529B67075B57523C44895DE2427D32D3935EAC5F46659C5F723C9BB006862EF143A77C384560EB5474F8D034FC8059F6D7BCD9EBD17D2740741FB4025CF87FFE3DAAFF72C8D9D10E1F779AEC56D3C6340426E2D980EAA07C46F2E720D1B8206D2A29162C6CA877FA89C0876DA70FF3A773BDEE1BB5831EFB58A9191430B0DE46EA4F484642F257AC176B74A91A02594D00D2FD30BE4927DED30C4389245EC5ECA93B1B08AFBB86B8012394F8CB874DC092498A2F9B44E27804C039632A192C8329F0DF25B196E6AB5E07FB3732B94990A2F0490FB07D9E33B0AA2830EDB572D7C7968A193B83FF869F65ABEDEC65EB03EA6DF0CD6C077DE627FD3583AFDA1754E655BE7ECF7A2BEAA422E516B26194FAEFEE6F535439B413325E1263E7E797DE9D717540A96AF360F8EE1FD4B190A513E83AEF6BCAB5A245F4A4F129F5F8AED11A558FE968A0CF2E254438384D0EE91BEE99A39696821DBA585144FA65484897CFC517FCE1D1512F792C6996063585F640AC9480220ED1FF3EDC1D7E55344977F71692D6F5DB091821A3F9612B65138848B874A93A71A74039337BF291938B0A8ACA2141BE969DCE4322A276C86C5A8E369EF6717158B46EBE48F8F9BC4F2E46203AC21CDD9F0ED1989F7D964D46D7DA63444C9CADA82AF53E38873A5D3F68868CA4F65748210716658F2A841B3890E773A2623A59073F14A0F2F1B0893FDBE5BA72FC9609DB8E8A56A322E2B4178CE7B2022D741BD256303D926B48D5239B354F611C52B475C62351854D6E27C89231E7E7972C19C7D6F5BEB07D1A1FF827348DA862F422047A2DB7B591AE497578A4BA95CBECFB503F5DC04C0C6A946FFB515F2F0BDC4332F2674706F7C1908B681D8EE3667777092C06DC9CF00F98143F4A1350FCBAEBB5157A5473D33F51778987B35B1D48249A491EE8F8778DE6DC29131F708642884BED0B0D159E1EFE428D18D3631F13A593323F1659FE9E1A708115D2F131DCC3808CE016036FF1D0D9193CBEB2CD1C49F9973E0BCB09A2A9394E2F55A15D5D1F |
350 | 20170711064933 2 6 100 8191 2 DDFBC1CD4FB7E30639422038F1FFBA2CD3EC3915F3C923282C6588F6EB218FF7B24870C0FE4B48213AB0948E101686FB7B0093ED467B6CA413EDD4B0BFE2155AEBC4DA3D2DD0C78DA9AD989A0E989010D6D5E86A123C169E126F97826EE5F602FF641FDF642A107E7538CB61740CBAF69F6C7DC5DD4DF28998AB61B8672F0B74A3A8DD7D165828D69DCC1BAE4D45F707C3894E040BCC0AF7AA810A6D5CB89276217EB7AFAFE4966D68C10318E8C8CB23CA593E8057F29FF9154908B11D6530E6352F9406C81D9DAC5C298979320B4E0DD89203A1F680C8084154D0439DB6C53EDAF6FCC0E8682EC99D345180120AEC810CBB0C2F1B6D1B660ACEAAD5996A5D184659B6A1F11456BA6A5E94D223959D8171C030499A9DB458702CB35CA7E7CD75D26FF5E94640AB8740ECE82559784BB6D5CB4D041D053629BD3F4178077F3F7E280296C46A3F0FBC37813A1AA221FBA2612F0CFE56450E9B1F2C2AE278EC7A7AAB66D61FA9749FE997EDC31131091620897014D33B2386B490CFD80656B7D2EB08C9DA9928798986996D60F74D766EB8988E2FF676E38C587E7A6651AA28BEB8BB56EBBD6E641E92309AEAA671A5F2EC72629442D2C3A4C2B8E4304DC71B342CD116527832078E6B53C1E0A72909615B408E17625F7259ACA98E46359448FC141F57B51A069B8A402AE3A87E10AE7E910F3916BAC6CE716C539E825A06626673DE7EBD899A3982FCC599791E7CA964C0D37BB076708C03DC7C022980974025C0EA9B72CC3D0A03E4626E030E9C857ECF6B3807AC9E8E0F72098C7E80DAA05BFF60394A8374096878F015597DD5B22E65646A7DDC87B5F6AE68594DF39B0BDB2675A32369AD81FD62033146B8DA6A801E918572CBC70DEBA9F70D088D69425733ACE0084E60E7FCB459A5B71F74F711184B1AEA240834D28D049474BB2E7ED1B17AA2B5EB7D274341456834320BE8FB245B1C2B84A096E7E40573FEB7C2997ED16C8C2C62409B8064398ED220FA82C59E53AD7E864C24473FCC7F017B897D5855F092A9428957467EFD93F67D3FA302C578328A9484CD0496CC83BEAC96504F9601DA2048D25BF43B5A69E46234A164D854B89DF1DEDC36F0304BA5FC035B27E782087C3EC0A81840A3EC042204C63F9698CC74A818428039B23664C409529C4EDD822DF77819805023795EE625D524F12824C1F1FE99546DF75107AFFF7D424C4C3FB3D0BDA2E9BC0D93603457FFE44FABEAB1E6B62223B201D42784731BEE11E0FF0BF29C930DAF913F974739800522E2B9C4094475A5F35AA92E2939E5719EB4EE19446ADC9ECC7EE6BAB5D264C9E74AB6DE856D541146048341EB51734A34E33EF8D929F645E23FD902CB5676DA9C84C9F46490710DC8CF2AA922252C3885CBD8D0CB1D176CAFEB46A625C56BE949F487C6E35E2CE481F024C88992F18383 | 350 | 20171216171002 2 6 100 7679 2 DC810DED621062F0CB271F50E716119CBA30A56C758377BD69D70043B8C9ACA2E7EFA9896D324B18FB1A550BDB994533A67258C7EB28B23D1AFB6D3FE0C5C8AD961F2BFAE67E57978F749D3F33A0D9AEAFD817FD663E60298D0DF73E4B27A85B6799D929240EC6C4C59E0D98E0A7875F3FCC3E29394083D1344F78DC70B5E23C108A03B7B81121BEDD2093262B7E32C7AB695AD545D3A99F410199DDD9759FE1EE8502180206841B3C74CB6A939B38707309B421A75FFEC30C977F91A9F9F3C9F65EF2EA6251E72F8A65C7753815C188320E91B079EDFB9F1D480F529B67075B57523C44895DE2427D32D3935EAC5F46659C5F723C9BB006862EF143A77C384560EB5474F8D034FC8059F6D7BCD9EBD17D2740741FB4025CF87FFE3DAAFF72C8D9D10E1F779AEC56D3C6340426E2D980EAA07C46F2E720D1B8206D2A29162C6CA877FA89C0876DA70FF3A773BDEE1BB5831EFB58A9191430B0DE46EA4F484642F257AC176B74A91A02594D00D2FD30BE4927DED30C4389245EC5ECA93B1B08AFBB86B8012394F8CB874DC092498A2F9B44E27804C039632A192C8329F0DF25B196E6AB5E07FB3732B94990A2F0490FB07D9E33B0AA2830EDB572D7C7968A193B83FF869F65ABEDEC65EB03EA6DF0CD6C077DE627FD3583AFDA1754E655BE7ECF7A2BEAA422E516B26194FAEFEE6F535439B413325E1263E7E797DE9D717540A96AF360F8EE1FD4B190A513E83AEF6BCAB5A245F4A4F129F5F8AED11A558FE968A0CF2E254438384D0EE91BEE99A39696821DBA585144FA65484897CFC517FCE1D1512F792C6996063585F640AC9480220ED1FF3EDC1D7E55344977F71692D6F5DB091821A3F9612B65138848B874A93A71A74039337BF291938B0A8ACA2141BE969DCE4322A276C86C5A8E369EF6717158B46EBE48F8F9BC4F2E46203AC21CDD9F0ED1989F7D964D46D7DA63444C9CADA82AF53E38873A5D3F68868CA4F65748210716658F2A841B3890E773A2623A59073F14A0F2F1B0893FDBE5BA72FC9609DB8E8A56A322E2B4178CE7B2022D741BD256303D926B48D5239B354F611C52B475C62351854D6E27C89231E7E7972C19C7D6F5BEB07D1A1FF827348DA862F422047A2DB7B591AE497578A4BA95CBECFB503F5DC04C0C6A946FFB515F2F0BDC4332F2674706F7C1908B681D8EE3667777092C06DC9CF00F98143F4A1350FCBAEBB5157A5473D33F51778987B35B1D48249A491EE8F8778DE6DC29131F708642884BED0B0D159E1EFE428D18D3631F13A593323F1659FE9E1A708115D2F131DCC3808CE016036FF1D0D9193CBEB2CD1C49F9973E0BCB09A2A9394E2F55A5EC1993 |
351 | 20170711070835 2 6 100 8191 2 DDFBC1CD4FB7E30639422038F1FFBA2CD3EC3915F3C923282C6588F6EB218FF7B24870C0FE4B48213AB0948E101686FB7B0093ED467B6CA413EDD4B0BFE2155AEBC4DA3D2DD0C78DA9AD989A0E989010D6D5E86A123C169E126F97826EE5F602FF641FDF642A107E7538CB61740CBAF69F6C7DC5DD4DF28998AB61B8672F0B74A3A8DD7D165828D69DCC1BAE4D45F707C3894E040BCC0AF7AA810A6D5CB89276217EB7AFAFE4966D68C10318E8C8CB23CA593E8057F29FF9154908B11D6530E6352F9406C81D9DAC5C298979320B4E0DD89203A1F680C8084154D0439DB6C53EDAF6FCC0E8682EC99D345180120AEC810CBB0C2F1B6D1B660ACEAAD5996A5D184659B6A1F11456BA6A5E94D223959D8171C030499A9DB458702CB35CA7E7CD75D26FF5E94640AB8740ECE82559784BB6D5CB4D041D053629BD3F4178077F3F7E280296C46A3F0FBC37813A1AA221FBA2612F0CFE56450E9B1F2C2AE278EC7A7AAB66D61FA9749FE997EDC31131091620897014D33B2386B490CFD80656B7D2EB08C9DA9928798986996D60F74D766EB8988E2FF676E38C587E7A6651AA28BEB8BB56EBBD6E641E92309AEAA671A5F2EC72629442D2C3A4C2B8E4304DC71B342CD116527832078E6B53C1E0A72909615B408E17625F7259ACA98E46359448FC141F57B51A069B8A402AE3A87E10AE7E910F3916BAC6CE716C539E825A06626673DE7EBD899A3982FCC599791E7CA964C0D37BB076708C03DC7C022980974025C0EA9B72CC3D0A03E4626E030E9C857ECF6B3807AC9E8E0F72098C7E80DAA05BFF60394A8374096878F015597DD5B22E65646A7DDC87B5F6AE68594DF39B0BDB2675A32369AD81FD62033146B8DA6A801E918572CBC70DEBA9F70D088D69425733ACE0084E60E7FCB459A5B71F74F711184B1AEA240834D28D049474BB2E7ED1B17AA2B5EB7D274341456834320BE8FB245B1C2B84A096E7E40573FEB7C2997ED16C8C2C62409B8064398ED220FA82C59E53AD7E864C24473FCC7F017B897D5855F092A9428957467EFD93F67D3FA302C578328A9484CD0496CC83BEAC96504F9601DA2048D25BF43B5A69E46234A164D854B89DF1DEDC36F0304BA5FC035B27E782087C3EC0A81840A3EC042204C63F9698CC74A818428039B23664C409529C4EDD822DF77819805023795EE625D524F12824C1F1FE99546DF75107AFFF7D424C4C3FB3D0BDA2E9BC0D93603457FFE44FABEAB1E6B62223B201D42784731BEE11E0FF0BF29C930DAF913F974739800522E2B9C4094475A5F35AA92E2939E5719EB4EE19446ADC9ECC7EE6BAB5D264C9E74AB6DE856D541146048341EB51734A34E33EF8D929F645E23FD902CB5676DA9C84C9F46490710DC8CF2AA922252C3885CBD8D0CB1D176CAFEB46A625C56BE949F487C6E35E2CE481F024C8899321BE1B | 351 | 20171216211154 2 6 100 7679 5 DC810DED621062F0CB271F50E716119CBA30A56C758377BD69D70043B8C9ACA2E7EFA9896D324B18FB1A550BDB994533A67258C7EB28B23D1AFB6D3FE0C5C8AD961F2BFAE67E57978F749D3F33A0D9AEAFD817FD663E60298D0DF73E4B27A85B6799D929240EC6C4C59E0D98E0A7875F3FCC3E29394083D1344F78DC70B5E23C108A03B7B81121BEDD2093262B7E32C7AB695AD545D3A99F410199DDD9759FE1EE8502180206841B3C74CB6A939B38707309B421A75FFEC30C977F91A9F9F3C9F65EF2EA6251E72F8A65C7753815C188320E91B079EDFB9F1D480F529B67075B57523C44895DE2427D32D3935EAC5F46659C5F723C9BB006862EF143A77C384560EB5474F8D034FC8059F6D7BCD9EBD17D2740741FB4025CF87FFE3DAAFF72C8D9D10E1F779AEC56D3C6340426E2D980EAA07C46F2E720D1B8206D2A29162C6CA877FA89C0876DA70FF3A773BDEE1BB5831EFB58A9191430B0DE46EA4F484642F257AC176B74A91A02594D00D2FD30BE4927DED30C4389245EC5ECA93B1B08AFBB86B8012394F8CB874DC092498A2F9B44E27804C039632A192C8329F0DF25B196E6AB5E07FB3732B94990A2F0490FB07D9E33B0AA2830EDB572D7C7968A193B83FF869F65ABEDEC65EB03EA6DF0CD6C077DE627FD3583AFDA1754E655BE7ECF7A2BEAA422E516B26194FAEFEE6F535439B413325E1263E7E797DE9D717540A96AF360F8EE1FD4B190A513E83AEF6BCAB5A245F4A4F129F5F8AED11A558FE968A0CF2E254438384D0EE91BEE99A39696821DBA585144FA65484897CFC517FCE1D1512F792C6996063585F640AC9480220ED1FF3EDC1D7E55344977F71692D6F5DB091821A3F9612B65138848B874A93A71A74039337BF291938B0A8ACA2141BE969DCE4322A276C86C5A8E369EF6717158B46EBE48F8F9BC4F2E46203AC21CDD9F0ED1989F7D964D46D7DA63444C9CADA82AF53E38873A5D3F68868CA4F65748210716658F2A841B3890E773A2623A59073F14A0F2F1B0893FDBE5BA72FC9609DB8E8A56A322E2B4178CE7B2022D741BD256303D926B48D5239B354F611C52B475C62351854D6E27C89231E7E7972C19C7D6F5BEB07D1A1FF827348DA862F422047A2DB7B591AE497578A4BA95CBECFB503F5DC04C0C6A946FFB515F2F0BDC4332F2674706F7C1908B681D8EE3667777092C06DC9CF00F98143F4A1350FCBAEBB5157A5473D33F51778987B35B1D48249A491EE8F8778DE6DC29131F708642884BED0B0D159E1EFE428D18D3631F13A593323F1659FE9E1A708115D2F131DCC3808CE016036FF1D0D9193CBEB2CD1C49F9973E0BCB09A2A9394E2F55A8EA2ED7 |
352 | 20170712081942 2 6 100 8191 2 DDFBC1CD4FB7E30639422038F1FFBA2CD3EC3915F3C923282C6588F6EB218FF7B24870C0FE4B48213AB0948E101686FB7B0093ED467B6CA413EDD4B0BFE2155AEBC4DA3D2DD0C78DA9AD989A0E989010D6D5E86A123C169E126F97826EE5F602FF641FDF642A107E7538CB61740CBAF69F6C7DC5DD4DF28998AB61B8672F0B74A3A8DD7D165828D69DCC1BAE4D45F707C3894E040BCC0AF7AA810A6D5CB89276217EB7AFAFE4966D68C10318E8C8CB23CA593E8057F29FF9154908B11D6530E6352F9406C81D9DAC5C298979320B4E0DD89203A1F680C8084154D0439DB6C53EDAF6FCC0E8682EC99D345180120AEC810CBB0C2F1B6D1B660ACEAAD5996A5D184659B6A1F11456BA6A5E94D223959D8171C030499A9DB458702CB35CA7E7CD75D26FF5E94640AB8740ECE82559784BB6D5CB4D041D053629BD3F4178077F3F7E280296C46A3F0FBC37813A1AA221FBA2612F0CFE56450E9B1F2C2AE278EC7A7AAB66D61FA9749FE997EDC31131091620897014D33B2386B490CFD80656B7D2EB08C9DA9928798986996D60F74D766EB8988E2FF676E38C587E7A6651AA28BEB8BB56EBBD6E641E92309AEAA671A5F2EC72629442D2C3A4C2B8E4304DC71B342CD116527832078E6B53C1E0A72909615B408E17625F7259ACA98E46359448FC141F57B51A069B8A402AE3A87E10AE7E910F3916BAC6CE716C539E825A06626673DE7EBD899A3982FCC599791E7CA964C0D37BB076708C03DC7C022980974025C0EA9B72CC3D0A03E4626E030E9C857ECF6B3807AC9E8E0F72098C7E80DAA05BFF60394A8374096878F015597DD5B22E65646A7DDC87B5F6AE68594DF39B0BDB2675A32369AD81FD62033146B8DA6A801E918572CBC70DEBA9F70D088D69425733ACE0084E60E7FCB459A5B71F74F711184B1AEA240834D28D049474BB2E7ED1B17AA2B5EB7D274341456834320BE8FB245B1C2B84A096E7E40573FEB7C2997ED16C8C2C62409B8064398ED220FA82C59E53AD7E864C24473FCC7F017B897D5855F092A9428957467EFD93F67D3FA302C578328A9484CD0496CC83BEAC96504F9601DA2048D25BF43B5A69E46234A164D854B89DF1DEDC36F0304BA5FC035B27E782087C3EC0A81840A3EC042204C63F9698CC74A818428039B23664C409529C4EDD822DF77819805023795EE625D524F12824C1F1FE99546DF75107AFFF7D424C4C3FB3D0BDA2E9BC0D93603457FFE44FABEAB1E6B62223B201D42784731BEE11E0FF0BF29C930DAF913F974739800522E2B9C4094475A5F35AA92E2939E5719EB4EE19446ADC9ECC7EE6BAB5D264C9E74AB6DE856D541146048341EB51734A34E33EF8D929F645E23FD902CB5676DA9C84C9F46490710DC8CF2AA922252C3885CBD8D0CB1D176CAFEB46A625C56BE949F487C6E35E2CE481F024C889A5694573 | 352 | 20171217022713 2 6 100 7679 5 DC810DED621062F0CB271F50E716119CBA30A56C758377BD69D70043B8C9ACA2E7EFA9896D324B18FB1A550BDB994533A67258C7EB28B23D1AFB6D3FE0C5C8AD961F2BFAE67E57978F749D3F33A0D9AEAFD817FD663E60298D0DF73E4B27A85B6799D929240EC6C4C59E0D98E0A7875F3FCC3E29394083D1344F78DC70B5E23C108A03B7B81121BEDD2093262B7E32C7AB695AD545D3A99F410199DDD9759FE1EE8502180206841B3C74CB6A939B38707309B421A75FFEC30C977F91A9F9F3C9F65EF2EA6251E72F8A65C7753815C188320E91B079EDFB9F1D480F529B67075B57523C44895DE2427D32D3935EAC5F46659C5F723C9BB006862EF143A77C384560EB5474F8D034FC8059F6D7BCD9EBD17D2740741FB4025CF87FFE3DAAFF72C8D9D10E1F779AEC56D3C6340426E2D980EAA07C46F2E720D1B8206D2A29162C6CA877FA89C0876DA70FF3A773BDEE1BB5831EFB58A9191430B0DE46EA4F484642F257AC176B74A91A02594D00D2FD30BE4927DED30C4389245EC5ECA93B1B08AFBB86B8012394F8CB874DC092498A2F9B44E27804C039632A192C8329F0DF25B196E6AB5E07FB3732B94990A2F0490FB07D9E33B0AA2830EDB572D7C7968A193B83FF869F65ABEDEC65EB03EA6DF0CD6C077DE627FD3583AFDA1754E655BE7ECF7A2BEAA422E516B26194FAEFEE6F535439B413325E1263E7E797DE9D717540A96AF360F8EE1FD4B190A513E83AEF6BCAB5A245F4A4F129F5F8AED11A558FE968A0CF2E254438384D0EE91BEE99A39696821DBA585144FA65484897CFC517FCE1D1512F792C6996063585F640AC9480220ED1FF3EDC1D7E55344977F71692D6F5DB091821A3F9612B65138848B874A93A71A74039337BF291938B0A8ACA2141BE969DCE4322A276C86C5A8E369EF6717158B46EBE48F8F9BC4F2E46203AC21CDD9F0ED1989F7D964D46D7DA63444C9CADA82AF53E38873A5D3F68868CA4F65748210716658F2A841B3890E773A2623A59073F14A0F2F1B0893FDBE5BA72FC9609DB8E8A56A322E2B4178CE7B2022D741BD256303D926B48D5239B354F611C52B475C62351854D6E27C89231E7E7972C19C7D6F5BEB07D1A1FF827348DA862F422047A2DB7B591AE497578A4BA95CBECFB503F5DC04C0C6A946FFB515F2F0BDC4332F2674706F7C1908B681D8EE3667777092C06DC9CF00F98143F4A1350FCBAEBB5157A5473D33F51778987B35B1D48249A491EE8F8778DE6DC29131F708642884BED0B0D159E1EFE428D18D3631F13A593323F1659FE9E1A708115D2F131DCC3808CE016036FF1D0D9193CBEB2CD1C49F9973E0BCB09A2A9394E2F55ACD2DE8F |
353 | 20170712175235 2 6 100 8191 2 DDFBC1CD4FB7E30639422038F1FFBA2CD3EC3915F3C923282C6588F6EB218FF7B24870C0FE4B48213AB0948E101686FB7B0093ED467B6CA413EDD4B0BFE2155AEBC4DA3D2DD0C78DA9AD989A0E989010D6D5E86A123C169E126F97826EE5F602FF641FDF642A107E7538CB61740CBAF69F6C7DC5DD4DF28998AB61B8672F0B74A3A8DD7D165828D69DCC1BAE4D45F707C3894E040BCC0AF7AA810A6D5CB89276217EB7AFAFE4966D68C10318E8C8CB23CA593E8057F29FF9154908B11D6530E6352F9406C81D9DAC5C298979320B4E0DD89203A1F680C8084154D0439DB6C53EDAF6FCC0E8682EC99D345180120AEC810CBB0C2F1B6D1B660ACEAAD5996A5D184659B6A1F11456BA6A5E94D223959D8171C030499A9DB458702CB35CA7E7CD75D26FF5E94640AB8740ECE82559784BB6D5CB4D041D053629BD3F4178077F3F7E280296C46A3F0FBC37813A1AA221FBA2612F0CFE56450E9B1F2C2AE278EC7A7AAB66D61FA9749FE997EDC31131091620897014D33B2386B490CFD80656B7D2EB08C9DA9928798986996D60F74D766EB8988E2FF676E38C587E7A6651AA28BEB8BB56EBBD6E641E92309AEAA671A5F2EC72629442D2C3A4C2B8E4304DC71B342CD116527832078E6B53C1E0A72909615B408E17625F7259ACA98E46359448FC141F57B51A069B8A402AE3A87E10AE7E910F3916BAC6CE716C539E825A06626673DE7EBD899A3982FCC599791E7CA964C0D37BB076708C03DC7C022980974025C0EA9B72CC3D0A03E4626E030E9C857ECF6B3807AC9E8E0F72098C7E80DAA05BFF60394A8374096878F015597DD5B22E65646A7DDC87B5F6AE68594DF39B0BDB2675A32369AD81FD62033146B8DA6A801E918572CBC70DEBA9F70D088D69425733ACE0084E60E7FCB459A5B71F74F711184B1AEA240834D28D049474BB2E7ED1B17AA2B5EB7D274341456834320BE8FB245B1C2B84A096E7E40573FEB7C2997ED16C8C2C62409B8064398ED220FA82C59E53AD7E864C24473FCC7F017B897D5855F092A9428957467EFD93F67D3FA302C578328A9484CD0496CC83BEAC96504F9601DA2048D25BF43B5A69E46234A164D854B89DF1DEDC36F0304BA5FC035B27E782087C3EC0A81840A3EC042204C63F9698CC74A818428039B23664C409529C4EDD822DF77819805023795EE625D524F12824C1F1FE99546DF75107AFFF7D424C4C3FB3D0BDA2E9BC0D93603457FFE44FABEAB1E6B62223B201D42784731BEE11E0FF0BF29C930DAF913F974739800522E2B9C4094475A5F35AA92E2939E5719EB4EE19446ADC9ECC7EE6BAB5D264C9E74AB6DE856D541146048341EB51734A34E33EF8D929F645E23FD902CB5676DA9C84C9F46490710DC8CF2AA922252C3885CBD8D0CB1D176CAFEB46A625C56BE949F487C6E35E2CE481F024C889AC1C9503 | 353 | 20171217032242 2 6 100 7679 5 DC810DED621062F0CB271F50E716119CBA30A56C758377BD69D70043B8C9ACA2E7EFA9896D324B18FB1A550BDB994533A67258C7EB28B23D1AFB6D3FE0C5C8AD961F2BFAE67E57978F749D3F33A0D9AEAFD817FD663E60298D0DF73E4B27A85B6799D929240EC6C4C59E0D98E0A7875F3FCC3E29394083D1344F78DC70B5E23C108A03B7B81121BEDD2093262B7E32C7AB695AD545D3A99F410199DDD9759FE1EE8502180206841B3C74CB6A939B38707309B421A75FFEC30C977F91A9F9F3C9F65EF2EA6251E72F8A65C7753815C188320E91B079EDFB9F1D480F529B67075B57523C44895DE2427D32D3935EAC5F46659C5F723C9BB006862EF143A77C384560EB5474F8D034FC8059F6D7BCD9EBD17D2740741FB4025CF87FFE3DAAFF72C8D9D10E1F779AEC56D3C6340426E2D980EAA07C46F2E720D1B8206D2A29162C6CA877FA89C0876DA70FF3A773BDEE1BB5831EFB58A9191430B0DE46EA4F484642F257AC176B74A91A02594D00D2FD30BE4927DED30C4389245EC5ECA93B1B08AFBB86B8012394F8CB874DC092498A2F9B44E27804C039632A192C8329F0DF25B196E6AB5E07FB3732B94990A2F0490FB07D9E33B0AA2830EDB572D7C7968A193B83FF869F65ABEDEC65EB03EA6DF0CD6C077DE627FD3583AFDA1754E655BE7ECF7A2BEAA422E516B26194FAEFEE6F535439B413325E1263E7E797DE9D717540A96AF360F8EE1FD4B190A513E83AEF6BCAB5A245F4A4F129F5F8AED11A558FE968A0CF2E254438384D0EE91BEE99A39696821DBA585144FA65484897CFC517FCE1D1512F792C6996063585F640AC9480220ED1FF3EDC1D7E55344977F71692D6F5DB091821A3F9612B65138848B874A93A71A74039337BF291938B0A8ACA2141BE969DCE4322A276C86C5A8E369EF6717158B46EBE48F8F9BC4F2E46203AC21CDD9F0ED1989F7D964D46D7DA63444C9CADA82AF53E38873A5D3F68868CA4F65748210716658F2A841B3890E773A2623A59073F14A0F2F1B0893FDBE5BA72FC9609DB8E8A56A322E2B4178CE7B2022D741BD256303D926B48D5239B354F611C52B475C62351854D6E27C89231E7E7972C19C7D6F5BEB07D1A1FF827348DA862F422047A2DB7B591AE497578A4BA95CBECFB503F5DC04C0C6A946FFB515F2F0BDC4332F2674706F7C1908B681D8EE3667777092C06DC9CF00F98143F4A1350FCBAEBB5157A5473D33F51778987B35B1D48249A491EE8F8778DE6DC29131F708642884BED0B0D159E1EFE428D18D3631F13A593323F1659FE9E1A708115D2F131DCC3808CE016036FF1D0D9193CBEB2CD1C49F9973E0BCB09A2A9394E2F55AD80002F |
354 | 20170712184856 2 6 100 8191 2 DDFBC1CD4FB7E30639422038F1FFBA2CD3EC3915F3C923282C6588F6EB218FF7B24870C0FE4B48213AB0948E101686FB7B0093ED467B6CA413EDD4B0BFE2155AEBC4DA3D2DD0C78DA9AD989A0E989010D6D5E86A123C169E126F97826EE5F602FF641FDF642A107E7538CB61740CBAF69F6C7DC5DD4DF28998AB61B8672F0B74A3A8DD7D165828D69DCC1BAE4D45F707C3894E040BCC0AF7AA810A6D5CB89276217EB7AFAFE4966D68C10318E8C8CB23CA593E8057F29FF9154908B11D6530E6352F9406C81D9DAC5C298979320B4E0DD89203A1F680C8084154D0439DB6C53EDAF6FCC0E8682EC99D345180120AEC810CBB0C2F1B6D1B660ACEAAD5996A5D184659B6A1F11456BA6A5E94D223959D8171C030499A9DB458702CB35CA7E7CD75D26FF5E94640AB8740ECE82559784BB6D5CB4D041D053629BD3F4178077F3F7E280296C46A3F0FBC37813A1AA221FBA2612F0CFE56450E9B1F2C2AE278EC7A7AAB66D61FA9749FE997EDC31131091620897014D33B2386B490CFD80656B7D2EB08C9DA9928798986996D60F74D766EB8988E2FF676E38C587E7A6651AA28BEB8BB56EBBD6E641E92309AEAA671A5F2EC72629442D2C3A4C2B8E4304DC71B342CD116527832078E6B53C1E0A72909615B408E17625F7259ACA98E46359448FC141F57B51A069B8A402AE3A87E10AE7E910F3916BAC6CE716C539E825A06626673DE7EBD899A3982FCC599791E7CA964C0D37BB076708C03DC7C022980974025C0EA9B72CC3D0A03E4626E030E9C857ECF6B3807AC9E8E0F72098C7E80DAA05BFF60394A8374096878F015597DD5B22E65646A7DDC87B5F6AE68594DF39B0BDB2675A32369AD81FD62033146B8DA6A801E918572CBC70DEBA9F70D088D69425733ACE0084E60E7FCB459A5B71F74F711184B1AEA240834D28D049474BB2E7ED1B17AA2B5EB7D274341456834320BE8FB245B1C2B84A096E7E40573FEB7C2997ED16C8C2C62409B8064398ED220FA82C59E53AD7E864C24473FCC7F017B897D5855F092A9428957467EFD93F67D3FA302C578328A9484CD0496CC83BEAC96504F9601DA2048D25BF43B5A69E46234A164D854B89DF1DEDC36F0304BA5FC035B27E782087C3EC0A81840A3EC042204C63F9698CC74A818428039B23664C409529C4EDD822DF77819805023795EE625D524F12824C1F1FE99546DF75107AFFF7D424C4C3FB3D0BDA2E9BC0D93603457FFE44FABEAB1E6B62223B201D42784731BEE11E0FF0BF29C930DAF913F974739800522E2B9C4094475A5F35AA92E2939E5719EB4EE19446ADC9ECC7EE6BAB5D264C9E74AB6DE856D541146048341EB51734A34E33EF8D929F645E23FD902CB5676DA9C84C9F46490710DC8CF2AA922252C3885CBD8D0CB1D176CAFEB46A625C56BE949F487C6E35E2CE481F024C889ACBA643B | 354 | 20171217074522 2 6 100 7679 5 DC810DED621062F0CB271F50E716119CBA30A56C758377BD69D70043B8C9ACA2E7EFA9896D324B18FB1A550BDB994533A67258C7EB28B23D1AFB6D3FE0C5C8AD961F2BFAE67E57978F749D3F33A0D9AEAFD817FD663E60298D0DF73E4B27A85B6799D929240EC6C4C59E0D98E0A7875F3FCC3E29394083D1344F78DC70B5E23C108A03B7B81121BEDD2093262B7E32C7AB695AD545D3A99F410199DDD9759FE1EE8502180206841B3C74CB6A939B38707309B421A75FFEC30C977F91A9F9F3C9F65EF2EA6251E72F8A65C7753815C188320E91B079EDFB9F1D480F529B67075B57523C44895DE2427D32D3935EAC5F46659C5F723C9BB006862EF143A77C384560EB5474F8D034FC8059F6D7BCD9EBD17D2740741FB4025CF87FFE3DAAFF72C8D9D10E1F779AEC56D3C6340426E2D980EAA07C46F2E720D1B8206D2A29162C6CA877FA89C0876DA70FF3A773BDEE1BB5831EFB58A9191430B0DE46EA4F484642F257AC176B74A91A02594D00D2FD30BE4927DED30C4389245EC5ECA93B1B08AFBB86B8012394F8CB874DC092498A2F9B44E27804C039632A192C8329F0DF25B196E6AB5E07FB3732B94990A2F0490FB07D9E33B0AA2830EDB572D7C7968A193B83FF869F65ABEDEC65EB03EA6DF0CD6C077DE627FD3583AFDA1754E655BE7ECF7A2BEAA422E516B26194FAEFEE6F535439B413325E1263E7E797DE9D717540A96AF360F8EE1FD4B190A513E83AEF6BCAB5A245F4A4F129F5F8AED11A558FE968A0CF2E254438384D0EE91BEE99A39696821DBA585144FA65484897CFC517FCE1D1512F792C6996063585F640AC9480220ED1FF3EDC1D7E55344977F71692D6F5DB091821A3F9612B65138848B874A93A71A74039337BF291938B0A8ACA2141BE969DCE4322A276C86C5A8E369EF6717158B46EBE48F8F9BC4F2E46203AC21CDD9F0ED1989F7D964D46D7DA63444C9CADA82AF53E38873A5D3F68868CA4F65748210716658F2A841B3890E773A2623A59073F14A0F2F1B0893FDBE5BA72FC9609DB8E8A56A322E2B4178CE7B2022D741BD256303D926B48D5239B354F611C52B475C62351854D6E27C89231E7E7972C19C7D6F5BEB07D1A1FF827348DA862F422047A2DB7B591AE497578A4BA95CBECFB503F5DC04C0C6A946FFB515F2F0BDC4332F2674706F7C1908B681D8EE3667777092C06DC9CF00F98143F4A1350FCBAEBB5157A5473D33F51778987B35B1D48249A491EE8F8778DE6DC29131F708642884BED0B0D159E1EFE428D18D3631F13A593323F1659FE9E1A708115D2F131DCC3808CE016036FF1D0D9193CBEB2CD1C49F9973E0BCB09A2A9394E2F55B0B564D7 |
355 | 20170712224446 2 6 100 8191 2 DDFBC1CD4FB7E30639422038F1FFBA2CD3EC3915F3C923282C6588F6EB218FF7B24870C0FE4B48213AB0948E101686FB7B0093ED467B6CA413EDD4B0BFE2155AEBC4DA3D2DD0C78DA9AD989A0E989010D6D5E86A123C169E126F97826EE5F602FF641FDF642A107E7538CB61740CBAF69F6C7DC5DD4DF28998AB61B8672F0B74A3A8DD7D165828D69DCC1BAE4D45F707C3894E040BCC0AF7AA810A6D5CB89276217EB7AFAFE4966D68C10318E8C8CB23CA593E8057F29FF9154908B11D6530E6352F9406C81D9DAC5C298979320B4E0DD89203A1F680C8084154D0439DB6C53EDAF6FCC0E8682EC99D345180120AEC810CBB0C2F1B6D1B660ACEAAD5996A5D184659B6A1F11456BA6A5E94D223959D8171C030499A9DB458702CB35CA7E7CD75D26FF5E94640AB8740ECE82559784BB6D5CB4D041D053629BD3F4178077F3F7E280296C46A3F0FBC37813A1AA221FBA2612F0CFE56450E9B1F2C2AE278EC7A7AAB66D61FA9749FE997EDC31131091620897014D33B2386B490CFD80656B7D2EB08C9DA9928798986996D60F74D766EB8988E2FF676E38C587E7A6651AA28BEB8BB56EBBD6E641E92309AEAA671A5F2EC72629442D2C3A4C2B8E4304DC71B342CD116527832078E6B53C1E0A72909615B408E17625F7259ACA98E46359448FC141F57B51A069B8A402AE3A87E10AE7E910F3916BAC6CE716C539E825A06626673DE7EBD899A3982FCC599791E7CA964C0D37BB076708C03DC7C022980974025C0EA9B72CC3D0A03E4626E030E9C857ECF6B3807AC9E8E0F72098C7E80DAA05BFF60394A8374096878F015597DD5B22E65646A7DDC87B5F6AE68594DF39B0BDB2675A32369AD81FD62033146B8DA6A801E918572CBC70DEBA9F70D088D69425733ACE0084E60E7FCB459A5B71F74F711184B1AEA240834D28D049474BB2E7ED1B17AA2B5EB7D274341456834320BE8FB245B1C2B84A096E7E40573FEB7C2997ED16C8C2C62409B8064398ED220FA82C59E53AD7E864C24473FCC7F017B897D5855F092A9428957467EFD93F67D3FA302C578328A9484CD0496CC83BEAC96504F9601DA2048D25BF43B5A69E46234A164D854B89DF1DEDC36F0304BA5FC035B27E782087C3EC0A81840A3EC042204C63F9698CC74A818428039B23664C409529C4EDD822DF77819805023795EE625D524F12824C1F1FE99546DF75107AFFF7D424C4C3FB3D0BDA2E9BC0D93603457FFE44FABEAB1E6B62223B201D42784731BEE11E0FF0BF29C930DAF913F974739800522E2B9C4094475A5F35AA92E2939E5719EB4EE19446ADC9ECC7EE6BAB5D264C9E74AB6DE856D541146048341EB51734A34E33EF8D929F645E23FD902CB5676DA9C84C9F46490710DC8CF2AA922252C3885CBD8D0CB1D176CAFEB46A625C56BE949F487C6E35E2CE481F024C889AF76B1E3 | 355 | 20171217095738 2 6 100 7679 2 DC810DED621062F0CB271F50E716119CBA30A56C758377BD69D70043B8C9ACA2E7EFA9896D324B18FB1A550BDB994533A67258C7EB28B23D1AFB6D3FE0C5C8AD961F2BFAE67E57978F749D3F33A0D9AEAFD817FD663E60298D0DF73E4B27A85B6799D929240EC6C4C59E0D98E0A7875F3FCC3E29394083D1344F78DC70B5E23C108A03B7B81121BEDD2093262B7E32C7AB695AD545D3A99F410199DDD9759FE1EE8502180206841B3C74CB6A939B38707309B421A75FFEC30C977F91A9F9F3C9F65EF2EA6251E72F8A65C7753815C188320E91B079EDFB9F1D480F529B67075B57523C44895DE2427D32D3935EAC5F46659C5F723C9BB006862EF143A77C384560EB5474F8D034FC8059F6D7BCD9EBD17D2740741FB4025CF87FFE3DAAFF72C8D9D10E1F779AEC56D3C6340426E2D980EAA07C46F2E720D1B8206D2A29162C6CA877FA89C0876DA70FF3A773BDEE1BB5831EFB58A9191430B0DE46EA4F484642F257AC176B74A91A02594D00D2FD30BE4927DED30C4389245EC5ECA93B1B08AFBB86B8012394F8CB874DC092498A2F9B44E27804C039632A192C8329F0DF25B196E6AB5E07FB3732B94990A2F0490FB07D9E33B0AA2830EDB572D7C7968A193B83FF869F65ABEDEC65EB03EA6DF0CD6C077DE627FD3583AFDA1754E655BE7ECF7A2BEAA422E516B26194FAEFEE6F535439B413325E1263E7E797DE9D717540A96AF360F8EE1FD4B190A513E83AEF6BCAB5A245F4A4F129F5F8AED11A558FE968A0CF2E254438384D0EE91BEE99A39696821DBA585144FA65484897CFC517FCE1D1512F792C6996063585F640AC9480220ED1FF3EDC1D7E55344977F71692D6F5DB091821A3F9612B65138848B874A93A71A74039337BF291938B0A8ACA2141BE969DCE4322A276C86C5A8E369EF6717158B46EBE48F8F9BC4F2E46203AC21CDD9F0ED1989F7D964D46D7DA63444C9CADA82AF53E38873A5D3F68868CA4F65748210716658F2A841B3890E773A2623A59073F14A0F2F1B0893FDBE5BA72FC9609DB8E8A56A322E2B4178CE7B2022D741BD256303D926B48D5239B354F611C52B475C62351854D6E27C89231E7E7972C19C7D6F5BEB07D1A1FF827348DA862F422047A2DB7B591AE497578A4BA95CBECFB503F5DC04C0C6A946FFB515F2F0BDC4332F2674706F7C1908B681D8EE3667777092C06DC9CF00F98143F4A1350FCBAEBB5157A5473D33F51778987B35B1D48249A491EE8F8778DE6DC29131F708642884BED0B0D159E1EFE428D18D3631F13A593323F1659FE9E1A708115D2F131DCC3808CE016036FF1D0D9193CBEB2CD1C49F9973E0BCB09A2A9394E2F55B254E7FB |
356 | 20170713034208 2 6 100 8191 5 DDFBC1CD4FB7E30639422038F1FFBA2CD3EC3915F3C923282C6588F6EB218FF7B24870C0FE4B48213AB0948E101686FB7B0093ED467B6CA413EDD4B0BFE2155AEBC4DA3D2DD0C78DA9AD989A0E989010D6D5E86A123C169E126F97826EE5F602FF641FDF642A107E7538CB61740CBAF69F6C7DC5DD4DF28998AB61B8672F0B74A3A8DD7D165828D69DCC1BAE4D45F707C3894E040BCC0AF7AA810A6D5CB89276217EB7AFAFE4966D68C10318E8C8CB23CA593E8057F29FF9154908B11D6530E6352F9406C81D9DAC5C298979320B4E0DD89203A1F680C8084154D0439DB6C53EDAF6FCC0E8682EC99D345180120AEC810CBB0C2F1B6D1B660ACEAAD5996A5D184659B6A1F11456BA6A5E94D223959D8171C030499A9DB458702CB35CA7E7CD75D26FF5E94640AB8740ECE82559784BB6D5CB4D041D053629BD3F4178077F3F7E280296C46A3F0FBC37813A1AA221FBA2612F0CFE56450E9B1F2C2AE278EC7A7AAB66D61FA9749FE997EDC31131091620897014D33B2386B490CFD80656B7D2EB08C9DA9928798986996D60F74D766EB8988E2FF676E38C587E7A6651AA28BEB8BB56EBBD6E641E92309AEAA671A5F2EC72629442D2C3A4C2B8E4304DC71B342CD116527832078E6B53C1E0A72909615B408E17625F7259ACA98E46359448FC141F57B51A069B8A402AE3A87E10AE7E910F3916BAC6CE716C539E825A06626673DE7EBD899A3982FCC599791E7CA964C0D37BB076708C03DC7C022980974025C0EA9B72CC3D0A03E4626E030E9C857ECF6B3807AC9E8E0F72098C7E80DAA05BFF60394A8374096878F015597DD5B22E65646A7DDC87B5F6AE68594DF39B0BDB2675A32369AD81FD62033146B8DA6A801E918572CBC70DEBA9F70D088D69425733ACE0084E60E7FCB459A5B71F74F711184B1AEA240834D28D049474BB2E7ED1B17AA2B5EB7D274341456834320BE8FB245B1C2B84A096E7E40573FEB7C2997ED16C8C2C62409B8064398ED220FA82C59E53AD7E864C24473FCC7F017B897D5855F092A9428957467EFD93F67D3FA302C578328A9484CD0496CC83BEAC96504F9601DA2048D25BF43B5A69E46234A164D854B89DF1DEDC36F0304BA5FC035B27E782087C3EC0A81840A3EC042204C63F9698CC74A818428039B23664C409529C4EDD822DF77819805023795EE625D524F12824C1F1FE99546DF75107AFFF7D424C4C3FB3D0BDA2E9BC0D93603457FFE44FABEAB1E6B62223B201D42784731BEE11E0FF0BF29C930DAF913F974739800522E2B9C4094475A5F35AA92E2939E5719EB4EE19446ADC9ECC7EE6BAB5D264C9E74AB6DE856D541146048341EB51734A34E33EF8D929F645E23FD902CB5676DA9C84C9F46490710DC8CF2AA922252C3885CBD8D0CB1D176CAFEB46A625C56BE949F487C6E35E2CE481F024C889B2F38EEF | 356 | 20171217120716 2 6 100 7679 2 DC810DED621062F0CB271F50E716119CBA30A56C758377BD69D70043B8C9ACA2E7EFA9896D324B18FB1A550BDB994533A67258C7EB28B23D1AFB6D3FE0C5C8AD961F2BFAE67E57978F749D3F33A0D9AEAFD817FD663E60298D0DF73E4B27A85B6799D929240EC6C4C59E0D98E0A7875F3FCC3E29394083D1344F78DC70B5E23C108A03B7B81121BEDD2093262B7E32C7AB695AD545D3A99F410199DDD9759FE1EE8502180206841B3C74CB6A939B38707309B421A75FFEC30C977F91A9F9F3C9F65EF2EA6251E72F8A65C7753815C188320E91B079EDFB9F1D480F529B67075B57523C44895DE2427D32D3935EAC5F46659C5F723C9BB006862EF143A77C384560EB5474F8D034FC8059F6D7BCD9EBD17D2740741FB4025CF87FFE3DAAFF72C8D9D10E1F779AEC56D3C6340426E2D980EAA07C46F2E720D1B8206D2A29162C6CA877FA89C0876DA70FF3A773BDEE1BB5831EFB58A9191430B0DE46EA4F484642F257AC176B74A91A02594D00D2FD30BE4927DED30C4389245EC5ECA93B1B08AFBB86B8012394F8CB874DC092498A2F9B44E27804C039632A192C8329F0DF25B196E6AB5E07FB3732B94990A2F0490FB07D9E33B0AA2830EDB572D7C7968A193B83FF869F65ABEDEC65EB03EA6DF0CD6C077DE627FD3583AFDA1754E655BE7ECF7A2BEAA422E516B26194FAEFEE6F535439B413325E1263E7E797DE9D717540A96AF360F8EE1FD4B190A513E83AEF6BCAB5A245F4A4F129F5F8AED11A558FE968A0CF2E254438384D0EE91BEE99A39696821DBA585144FA65484897CFC517FCE1D1512F792C6996063585F640AC9480220ED1FF3EDC1D7E55344977F71692D6F5DB091821A3F9612B65138848B874A93A71A74039337BF291938B0A8ACA2141BE969DCE4322A276C86C5A8E369EF6717158B46EBE48F8F9BC4F2E46203AC21CDD9F0ED1989F7D964D46D7DA63444C9CADA82AF53E38873A5D3F68868CA4F65748210716658F2A841B3890E773A2623A59073F14A0F2F1B0893FDBE5BA72FC9609DB8E8A56A322E2B4178CE7B2022D741BD256303D926B48D5239B354F611C52B475C62351854D6E27C89231E7E7972C19C7D6F5BEB07D1A1FF827348DA862F422047A2DB7B591AE497578A4BA95CBECFB503F5DC04C0C6A946FFB515F2F0BDC4332F2674706F7C1908B681D8EE3667777092C06DC9CF00F98143F4A1350FCBAEBB5157A5473D33F51778987B35B1D48249A491EE8F8778DE6DC29131F708642884BED0B0D159E1EFE428D18D3631F13A593323F1659FE9E1A708115D2F131DCC3808CE016036FF1D0D9193CBEB2CD1C49F9973E0BCB09A2A9394E2F55B3EDC9EB |
357 | 20170713034622 2 6 100 8191 5 DDFBC1CD4FB7E30639422038F1FFBA2CD3EC3915F3C923282C6588F6EB218FF7B24870C0FE4B48213AB0948E101686FB7B0093ED467B6CA413EDD4B0BFE2155AEBC4DA3D2DD0C78DA9AD989A0E989010D6D5E86A123C169E126F97826EE5F602FF641FDF642A107E7538CB61740CBAF69F6C7DC5DD4DF28998AB61B8672F0B74A3A8DD7D165828D69DCC1BAE4D45F707C3894E040BCC0AF7AA810A6D5CB89276217EB7AFAFE4966D68C10318E8C8CB23CA593E8057F29FF9154908B11D6530E6352F9406C81D9DAC5C298979320B4E0DD89203A1F680C8084154D0439DB6C53EDAF6FCC0E8682EC99D345180120AEC810CBB0C2F1B6D1B660ACEAAD5996A5D184659B6A1F11456BA6A5E94D223959D8171C030499A9DB458702CB35CA7E7CD75D26FF5E94640AB8740ECE82559784BB6D5CB4D041D053629BD3F4178077F3F7E280296C46A3F0FBC37813A1AA221FBA2612F0CFE56450E9B1F2C2AE278EC7A7AAB66D61FA9749FE997EDC31131091620897014D33B2386B490CFD80656B7D2EB08C9DA9928798986996D60F74D766EB8988E2FF676E38C587E7A6651AA28BEB8BB56EBBD6E641E92309AEAA671A5F2EC72629442D2C3A4C2B8E4304DC71B342CD116527832078E6B53C1E0A72909615B408E17625F7259ACA98E46359448FC141F57B51A069B8A402AE3A87E10AE7E910F3916BAC6CE716C539E825A06626673DE7EBD899A3982FCC599791E7CA964C0D37BB076708C03DC7C022980974025C0EA9B72CC3D0A03E4626E030E9C857ECF6B3807AC9E8E0F72098C7E80DAA05BFF60394A8374096878F015597DD5B22E65646A7DDC87B5F6AE68594DF39B0BDB2675A32369AD81FD62033146B8DA6A801E918572CBC70DEBA9F70D088D69425733ACE0084E60E7FCB459A5B71F74F711184B1AEA240834D28D049474BB2E7ED1B17AA2B5EB7D274341456834320BE8FB245B1C2B84A096E7E40573FEB7C2997ED16C8C2C62409B8064398ED220FA82C59E53AD7E864C24473FCC7F017B897D5855F092A9428957467EFD93F67D3FA302C578328A9484CD0496CC83BEAC96504F9601DA2048D25BF43B5A69E46234A164D854B89DF1DEDC36F0304BA5FC035B27E782087C3EC0A81840A3EC042204C63F9698CC74A818428039B23664C409529C4EDD822DF77819805023795EE625D524F12824C1F1FE99546DF75107AFFF7D424C4C3FB3D0BDA2E9BC0D93603457FFE44FABEAB1E6B62223B201D42784731BEE11E0FF0BF29C930DAF913F974739800522E2B9C4094475A5F35AA92E2939E5719EB4EE19446ADC9ECC7EE6BAB5D264C9E74AB6DE856D541146048341EB51734A34E33EF8D929F645E23FD902CB5676DA9C84C9F46490710DC8CF2AA922252C3885CBD8D0CB1D176CAFEB46A625C56BE949F487C6E35E2CE481F024C889B2F6567F | 357 | 20171217153508 2 6 100 7679 2 DC810DED621062F0CB271F50E716119CBA30A56C758377BD69D70043B8C9ACA2E7EFA9896D324B18FB1A550BDB994533A67258C7EB28B23D1AFB6D3FE0C5C8AD961F2BFAE67E57978F749D3F33A0D9AEAFD817FD663E60298D0DF73E4B27A85B6799D929240EC6C4C59E0D98E0A7875F3FCC3E29394083D1344F78DC70B5E23C108A03B7B81121BEDD2093262B7E32C7AB695AD545D3A99F410199DDD9759FE1EE8502180206841B3C74CB6A939B38707309B421A75FFEC30C977F91A9F9F3C9F65EF2EA6251E72F8A65C7753815C188320E91B079EDFB9F1D480F529B67075B57523C44895DE2427D32D3935EAC5F46659C5F723C9BB006862EF143A77C384560EB5474F8D034FC8059F6D7BCD9EBD17D2740741FB4025CF87FFE3DAAFF72C8D9D10E1F779AEC56D3C6340426E2D980EAA07C46F2E720D1B8206D2A29162C6CA877FA89C0876DA70FF3A773BDEE1BB5831EFB58A9191430B0DE46EA4F484642F257AC176B74A91A02594D00D2FD30BE4927DED30C4389245EC5ECA93B1B08AFBB86B8012394F8CB874DC092498A2F9B44E27804C039632A192C8329F0DF25B196E6AB5E07FB3732B94990A2F0490FB07D9E33B0AA2830EDB572D7C7968A193B83FF869F65ABEDEC65EB03EA6DF0CD6C077DE627FD3583AFDA1754E655BE7ECF7A2BEAA422E516B26194FAEFEE6F535439B413325E1263E7E797DE9D717540A96AF360F8EE1FD4B190A513E83AEF6BCAB5A245F4A4F129F5F8AED11A558FE968A0CF2E254438384D0EE91BEE99A39696821DBA585144FA65484897CFC517FCE1D1512F792C6996063585F640AC9480220ED1FF3EDC1D7E55344977F71692D6F5DB091821A3F9612B65138848B874A93A71A74039337BF291938B0A8ACA2141BE969DCE4322A276C86C5A8E369EF6717158B46EBE48F8F9BC4F2E46203AC21CDD9F0ED1989F7D964D46D7DA63444C9CADA82AF53E38873A5D3F68868CA4F65748210716658F2A841B3890E773A2623A59073F14A0F2F1B0893FDBE5BA72FC9609DB8E8A56A322E2B4178CE7B2022D741BD256303D926B48D5239B354F611C52B475C62351854D6E27C89231E7E7972C19C7D6F5BEB07D1A1FF827348DA862F422047A2DB7B591AE497578A4BA95CBECFB503F5DC04C0C6A946FFB515F2F0BDC4332F2674706F7C1908B681D8EE3667777092C06DC9CF00F98143F4A1350FCBAEBB5157A5473D33F51778987B35B1D48249A491EE8F8778DE6DC29131F708642884BED0B0D159E1EFE428D18D3631F13A593323F1659FE9E1A708115D2F131DCC3808CE016036FF1D0D9193CBEB2CD1C49F9973E0BCB09A2A9394E2F55B680123B |
358 | 20170713071216 2 6 100 8191 2 DDFBC1CD4FB7E30639422038F1FFBA2CD3EC3915F3C923282C6588F6EB218FF7B24870C0FE4B48213AB0948E101686FB7B0093ED467B6CA413EDD4B0BFE2155AEBC4DA3D2DD0C78DA9AD989A0E989010D6D5E86A123C169E126F97826EE5F602FF641FDF642A107E7538CB61740CBAF69F6C7DC5DD4DF28998AB61B8672F0B74A3A8DD7D165828D69DCC1BAE4D45F707C3894E040BCC0AF7AA810A6D5CB89276217EB7AFAFE4966D68C10318E8C8CB23CA593E8057F29FF9154908B11D6530E6352F9406C81D9DAC5C298979320B4E0DD89203A1F680C8084154D0439DB6C53EDAF6FCC0E8682EC99D345180120AEC810CBB0C2F1B6D1B660ACEAAD5996A5D184659B6A1F11456BA6A5E94D223959D8171C030499A9DB458702CB35CA7E7CD75D26FF5E94640AB8740ECE82559784BB6D5CB4D041D053629BD3F4178077F3F7E280296C46A3F0FBC37813A1AA221FBA2612F0CFE56450E9B1F2C2AE278EC7A7AAB66D61FA9749FE997EDC31131091620897014D33B2386B490CFD80656B7D2EB08C9DA9928798986996D60F74D766EB8988E2FF676E38C587E7A6651AA28BEB8BB56EBBD6E641E92309AEAA671A5F2EC72629442D2C3A4C2B8E4304DC71B342CD116527832078E6B53C1E0A72909615B408E17625F7259ACA98E46359448FC141F57B51A069B8A402AE3A87E10AE7E910F3916BAC6CE716C539E825A06626673DE7EBD899A3982FCC599791E7CA964C0D37BB076708C03DC7C022980974025C0EA9B72CC3D0A03E4626E030E9C857ECF6B3807AC9E8E0F72098C7E80DAA05BFF60394A8374096878F015597DD5B22E65646A7DDC87B5F6AE68594DF39B0BDB2675A32369AD81FD62033146B8DA6A801E918572CBC70DEBA9F70D088D69425733ACE0084E60E7FCB459A5B71F74F711184B1AEA240834D28D049474BB2E7ED1B17AA2B5EB7D274341456834320BE8FB245B1C2B84A096E7E40573FEB7C2997ED16C8C2C62409B8064398ED220FA82C59E53AD7E864C24473FCC7F017B897D5855F092A9428957467EFD93F67D3FA302C578328A9484CD0496CC83BEAC96504F9601DA2048D25BF43B5A69E46234A164D854B89DF1DEDC36F0304BA5FC035B27E782087C3EC0A81840A3EC042204C63F9698CC74A818428039B23664C409529C4EDD822DF77819805023795EE625D524F12824C1F1FE99546DF75107AFFF7D424C4C3FB3D0BDA2E9BC0D93603457FFE44FABEAB1E6B62223B201D42784731BEE11E0FF0BF29C930DAF913F974739800522E2B9C4094475A5F35AA92E2939E5719EB4EE19446ADC9ECC7EE6BAB5D264C9E74AB6DE856D541146048341EB51734A34E33EF8D929F645E23FD902CB5676DA9C84C9F46490710DC8CF2AA922252C3885CBD8D0CB1D176CAFEB46A625C56BE949F487C6E35E2CE481F024C889B55B411B | 358 | 20171217162942 2 6 100 7679 2 DC810DED621062F0CB271F50E716119CBA30A56C758377BD69D70043B8C9ACA2E7EFA9896D324B18FB1A550BDB994533A67258C7EB28B23D1AFB6D3FE0C5C8AD961F2BFAE67E57978F749D3F33A0D9AEAFD817FD663E60298D0DF73E4B27A85B6799D929240EC6C4C59E0D98E0A7875F3FCC3E29394083D1344F78DC70B5E23C108A03B7B81121BEDD2093262B7E32C7AB695AD545D3A99F410199DDD9759FE1EE8502180206841B3C74CB6A939B38707309B421A75FFEC30C977F91A9F9F3C9F65EF2EA6251E72F8A65C7753815C188320E91B079EDFB9F1D480F529B67075B57523C44895DE2427D32D3935EAC5F46659C5F723C9BB006862EF143A77C384560EB5474F8D034FC8059F6D7BCD9EBD17D2740741FB4025CF87FFE3DAAFF72C8D9D10E1F779AEC56D3C6340426E2D980EAA07C46F2E720D1B8206D2A29162C6CA877FA89C0876DA70FF3A773BDEE1BB5831EFB58A9191430B0DE46EA4F484642F257AC176B74A91A02594D00D2FD30BE4927DED30C4389245EC5ECA93B1B08AFBB86B8012394F8CB874DC092498A2F9B44E27804C039632A192C8329F0DF25B196E6AB5E07FB3732B94990A2F0490FB07D9E33B0AA2830EDB572D7C7968A193B83FF869F65ABEDEC65EB03EA6DF0CD6C077DE627FD3583AFDA1754E655BE7ECF7A2BEAA422E516B26194FAEFEE6F535439B413325E1263E7E797DE9D717540A96AF360F8EE1FD4B190A513E83AEF6BCAB5A245F4A4F129F5F8AED11A558FE968A0CF2E254438384D0EE91BEE99A39696821DBA585144FA65484897CFC517FCE1D1512F792C6996063585F640AC9480220ED1FF3EDC1D7E55344977F71692D6F5DB091821A3F9612B65138848B874A93A71A74039337BF291938B0A8ACA2141BE969DCE4322A276C86C5A8E369EF6717158B46EBE48F8F9BC4F2E46203AC21CDD9F0ED1989F7D964D46D7DA63444C9CADA82AF53E38873A5D3F68868CA4F65748210716658F2A841B3890E773A2623A59073F14A0F2F1B0893FDBE5BA72FC9609DB8E8A56A322E2B4178CE7B2022D741BD256303D926B48D5239B354F611C52B475C62351854D6E27C89231E7E7972C19C7D6F5BEB07D1A1FF827348DA862F422047A2DB7B591AE497578A4BA95CBECFB503F5DC04C0C6A946FFB515F2F0BDC4332F2674706F7C1908B681D8EE3667777092C06DC9CF00F98143F4A1350FCBAEBB5157A5473D33F51778987B35B1D48249A491EE8F8778DE6DC29131F708642884BED0B0D159E1EFE428D18D3631F13A593323F1659FE9E1A708115D2F131DCC3808CE016036FF1D0D9193CBEB2CD1C49F9973E0BCB09A2A9394E2F55B727103B |
359 | 20170713222010 2 6 100 8191 2 DDFBC1CD4FB7E30639422038F1FFBA2CD3EC3915F3C923282C6588F6EB218FF7B24870C0FE4B48213AB0948E101686FB7B0093ED467B6CA413EDD4B0BFE2155AEBC4DA3D2DD0C78DA9AD989A0E989010D6D5E86A123C169E126F97826EE5F602FF641FDF642A107E7538CB61740CBAF69F6C7DC5DD4DF28998AB61B8672F0B74A3A8DD7D165828D69DCC1BAE4D45F707C3894E040BCC0AF7AA810A6D5CB89276217EB7AFAFE4966D68C10318E8C8CB23CA593E8057F29FF9154908B11D6530E6352F9406C81D9DAC5C298979320B4E0DD89203A1F680C8084154D0439DB6C53EDAF6FCC0E8682EC99D345180120AEC810CBB0C2F1B6D1B660ACEAAD5996A5D184659B6A1F11456BA6A5E94D223959D8171C030499A9DB458702CB35CA7E7CD75D26FF5E94640AB8740ECE82559784BB6D5CB4D041D053629BD3F4178077F3F7E280296C46A3F0FBC37813A1AA221FBA2612F0CFE56450E9B1F2C2AE278EC7A7AAB66D61FA9749FE997EDC31131091620897014D33B2386B490CFD80656B7D2EB08C9DA9928798986996D60F74D766EB8988E2FF676E38C587E7A6651AA28BEB8BB56EBBD6E641E92309AEAA671A5F2EC72629442D2C3A4C2B8E4304DC71B342CD116527832078E6B53C1E0A72909615B408E17625F7259ACA98E46359448FC141F57B51A069B8A402AE3A87E10AE7E910F3916BAC6CE716C539E825A06626673DE7EBD899A3982FCC599791E7CA964C0D37BB076708C03DC7C022980974025C0EA9B72CC3D0A03E4626E030E9C857ECF6B3807AC9E8E0F72098C7E80DAA05BFF60394A8374096878F015597DD5B22E65646A7DDC87B5F6AE68594DF39B0BDB2675A32369AD81FD62033146B8DA6A801E918572CBC70DEBA9F70D088D69425733ACE0084E60E7FCB459A5B71F74F711184B1AEA240834D28D049474BB2E7ED1B17AA2B5EB7D274341456834320BE8FB245B1C2B84A096E7E40573FEB7C2997ED16C8C2C62409B8064398ED220FA82C59E53AD7E864C24473FCC7F017B897D5855F092A9428957467EFD93F67D3FA302C578328A9484CD0496CC83BEAC96504F9601DA2048D25BF43B5A69E46234A164D854B89DF1DEDC36F0304BA5FC035B27E782087C3EC0A81840A3EC042204C63F9698CC74A818428039B23664C409529C4EDD822DF77819805023795EE625D524F12824C1F1FE99546DF75107AFFF7D424C4C3FB3D0BDA2E9BC0D93603457FFE44FABEAB1E6B62223B201D42784731BEE11E0FF0BF29C930DAF913F974739800522E2B9C4094475A5F35AA92E2939E5719EB4EE19446ADC9ECC7EE6BAB5D264C9E74AB6DE856D541146048341EB51734A34E33EF8D929F645E23FD902CB5676DA9C84C9F46490710DC8CF2AA922252C3885CBD8D0CB1D176CAFEB46A625C56BE949F487C6E35E2CE481F024C889BFD2C803 | 359 | 20171218014406 2 6 100 7679 2 DC810DED621062F0CB271F50E716119CBA30A56C758377BD69D70043B8C9ACA2E7EFA9896D324B18FB1A550BDB994533A67258C7EB28B23D1AFB6D3FE0C5C8AD961F2BFAE67E57978F749D3F33A0D9AEAFD817FD663E60298D0DF73E4B27A85B6799D929240EC6C4C59E0D98E0A7875F3FCC3E29394083D1344F78DC70B5E23C108A03B7B81121BEDD2093262B7E32C7AB695AD545D3A99F410199DDD9759FE1EE8502180206841B3C74CB6A939B38707309B421A75FFEC30C977F91A9F9F3C9F65EF2EA6251E72F8A65C7753815C188320E91B079EDFB9F1D480F529B67075B57523C44895DE2427D32D3935EAC5F46659C5F723C9BB006862EF143A77C384560EB5474F8D034FC8059F6D7BCD9EBD17D2740741FB4025CF87FFE3DAAFF72C8D9D10E1F779AEC56D3C6340426E2D980EAA07C46F2E720D1B8206D2A29162C6CA877FA89C0876DA70FF3A773BDEE1BB5831EFB58A9191430B0DE46EA4F484642F257AC176B74A91A02594D00D2FD30BE4927DED30C4389245EC5ECA93B1B08AFBB86B8012394F8CB874DC092498A2F9B44E27804C039632A192C8329F0DF25B196E6AB5E07FB3732B94990A2F0490FB07D9E33B0AA2830EDB572D7C7968A193B83FF869F65ABEDEC65EB03EA6DF0CD6C077DE627FD3583AFDA1754E655BE7ECF7A2BEAA422E516B26194FAEFEE6F535439B413325E1263E7E797DE9D717540A96AF360F8EE1FD4B190A513E83AEF6BCAB5A245F4A4F129F5F8AED11A558FE968A0CF2E254438384D0EE91BEE99A39696821DBA585144FA65484897CFC517FCE1D1512F792C6996063585F640AC9480220ED1FF3EDC1D7E55344977F71692D6F5DB091821A3F9612B65138848B874A93A71A74039337BF291938B0A8ACA2141BE969DCE4322A276C86C5A8E369EF6717158B46EBE48F8F9BC4F2E46203AC21CDD9F0ED1989F7D964D46D7DA63444C9CADA82AF53E38873A5D3F68868CA4F65748210716658F2A841B3890E773A2623A59073F14A0F2F1B0893FDBE5BA72FC9609DB8E8A56A322E2B4178CE7B2022D741BD256303D926B48D5239B354F611C52B475C62351854D6E27C89231E7E7972C19C7D6F5BEB07D1A1FF827348DA862F422047A2DB7B591AE497578A4BA95CBECFB503F5DC04C0C6A946FFB515F2F0BDC4332F2674706F7C1908B681D8EE3667777092C06DC9CF00F98143F4A1350FCBAEBB5157A5473D33F51778987B35B1D48249A491EE8F8778DE6DC29131F708642884BED0B0D159E1EFE428D18D3631F13A593323F1659FE9E1A708115D2F131DCC3808CE016036FF1D0D9193CBEB2CD1C49F9973E0BCB09A2A9394E2F55BDE7E6A3 |
360 | 20170714013005 2 6 100 8191 5 DDFBC1CD4FB7E30639422038F1FFBA2CD3EC3915F3C923282C6588F6EB218FF7B24870C0FE4B48213AB0948E101686FB7B0093ED467B6CA413EDD4B0BFE2155AEBC4DA3D2DD0C78DA9AD989A0E989010D6D5E86A123C169E126F97826EE5F602FF641FDF642A107E7538CB61740CBAF69F6C7DC5DD4DF28998AB61B8672F0B74A3A8DD7D165828D69DCC1BAE4D45F707C3894E040BCC0AF7AA810A6D5CB89276217EB7AFAFE4966D68C10318E8C8CB23CA593E8057F29FF9154908B11D6530E6352F9406C81D9DAC5C298979320B4E0DD89203A1F680C8084154D0439DB6C53EDAF6FCC0E8682EC99D345180120AEC810CBB0C2F1B6D1B660ACEAAD5996A5D184659B6A1F11456BA6A5E94D223959D8171C030499A9DB458702CB35CA7E7CD75D26FF5E94640AB8740ECE82559784BB6D5CB4D041D053629BD3F4178077F3F7E280296C46A3F0FBC37813A1AA221FBA2612F0CFE56450E9B1F2C2AE278EC7A7AAB66D61FA9749FE997EDC31131091620897014D33B2386B490CFD80656B7D2EB08C9DA9928798986996D60F74D766EB8988E2FF676E38C587E7A6651AA28BEB8BB56EBBD6E641E92309AEAA671A5F2EC72629442D2C3A4C2B8E4304DC71B342CD116527832078E6B53C1E0A72909615B408E17625F7259ACA98E46359448FC141F57B51A069B8A402AE3A87E10AE7E910F3916BAC6CE716C539E825A06626673DE7EBD899A3982FCC599791E7CA964C0D37BB076708C03DC7C022980974025C0EA9B72CC3D0A03E4626E030E9C857ECF6B3807AC9E8E0F72098C7E80DAA05BFF60394A8374096878F015597DD5B22E65646A7DDC87B5F6AE68594DF39B0BDB2675A32369AD81FD62033146B8DA6A801E918572CBC70DEBA9F70D088D69425733ACE0084E60E7FCB459A5B71F74F711184B1AEA240834D28D049474BB2E7ED1B17AA2B5EB7D274341456834320BE8FB245B1C2B84A096E7E40573FEB7C2997ED16C8C2C62409B8064398ED220FA82C59E53AD7E864C24473FCC7F017B897D5855F092A9428957467EFD93F67D3FA302C578328A9484CD0496CC83BEAC96504F9601DA2048D25BF43B5A69E46234A164D854B89DF1DEDC36F0304BA5FC035B27E782087C3EC0A81840A3EC042204C63F9698CC74A818428039B23664C409529C4EDD822DF77819805023795EE625D524F12824C1F1FE99546DF75107AFFF7D424C4C3FB3D0BDA2E9BC0D93603457FFE44FABEAB1E6B62223B201D42784731BEE11E0FF0BF29C930DAF913F974739800522E2B9C4094475A5F35AA92E2939E5719EB4EE19446ADC9ECC7EE6BAB5D264C9E74AB6DE856D541146048341EB51734A34E33EF8D929F645E23FD902CB5676DA9C84C9F46490710DC8CF2AA922252C3885CBD8D0CB1D176CAFEB46A625C56BE949F487C6E35E2CE481F024C889C1EF6397 | 360 | 20171218033011 2 6 100 7679 2 DC810DED621062F0CB271F50E716119CBA30A56C758377BD69D70043B8C9ACA2E7EFA9896D324B18FB1A550BDB994533A67258C7EB28B23D1AFB6D3FE0C5C8AD961F2BFAE67E57978F749D3F33A0D9AEAFD817FD663E60298D0DF73E4B27A85B6799D929240EC6C4C59E0D98E0A7875F3FCC3E29394083D1344F78DC70B5E23C108A03B7B81121BEDD2093262B7E32C7AB695AD545D3A99F410199DDD9759FE1EE8502180206841B3C74CB6A939B38707309B421A75FFEC30C977F91A9F9F3C9F65EF2EA6251E72F8A65C7753815C188320E91B079EDFB9F1D480F529B67075B57523C44895DE2427D32D3935EAC5F46659C5F723C9BB006862EF143A77C384560EB5474F8D034FC8059F6D7BCD9EBD17D2740741FB4025CF87FFE3DAAFF72C8D9D10E1F779AEC56D3C6340426E2D980EAA07C46F2E720D1B8206D2A29162C6CA877FA89C0876DA70FF3A773BDEE1BB5831EFB58A9191430B0DE46EA4F484642F257AC176B74A91A02594D00D2FD30BE4927DED30C4389245EC5ECA93B1B08AFBB86B8012394F8CB874DC092498A2F9B44E27804C039632A192C8329F0DF25B196E6AB5E07FB3732B94990A2F0490FB07D9E33B0AA2830EDB572D7C7968A193B83FF869F65ABEDEC65EB03EA6DF0CD6C077DE627FD3583AFDA1754E655BE7ECF7A2BEAA422E516B26194FAEFEE6F535439B413325E1263E7E797DE9D717540A96AF360F8EE1FD4B190A513E83AEF6BCAB5A245F4A4F129F5F8AED11A558FE968A0CF2E254438384D0EE91BEE99A39696821DBA585144FA65484897CFC517FCE1D1512F792C6996063585F640AC9480220ED1FF3EDC1D7E55344977F71692D6F5DB091821A3F9612B65138848B874A93A71A74039337BF291938B0A8ACA2141BE969DCE4322A276C86C5A8E369EF6717158B46EBE48F8F9BC4F2E46203AC21CDD9F0ED1989F7D964D46D7DA63444C9CADA82AF53E38873A5D3F68868CA4F65748210716658F2A841B3890E773A2623A59073F14A0F2F1B0893FDBE5BA72FC9609DB8E8A56A322E2B4178CE7B2022D741BD256303D926B48D5239B354F611C52B475C62351854D6E27C89231E7E7972C19C7D6F5BEB07D1A1FF827348DA862F422047A2DB7B591AE497578A4BA95CBECFB503F5DC04C0C6A946FFB515F2F0BDC4332F2674706F7C1908B681D8EE3667777092C06DC9CF00F98143F4A1350FCBAEBB5157A5473D33F51778987B35B1D48249A491EE8F8778DE6DC29131F708642884BED0B0D159E1EFE428D18D3631F13A593323F1659FE9E1A708115D2F131DCC3808CE016036FF1D0D9193CBEB2CD1C49F9973E0BCB09A2A9394E2F55BF2DBDBB |
361 | 20170714094721 2 6 100 8191 2 DDFBC1CD4FB7E30639422038F1FFBA2CD3EC3915F3C923282C6588F6EB218FF7B24870C0FE4B48213AB0948E101686FB7B0093ED467B6CA413EDD4B0BFE2155AEBC4DA3D2DD0C78DA9AD989A0E989010D6D5E86A123C169E126F97826EE5F602FF641FDF642A107E7538CB61740CBAF69F6C7DC5DD4DF28998AB61B8672F0B74A3A8DD7D165828D69DCC1BAE4D45F707C3894E040BCC0AF7AA810A6D5CB89276217EB7AFAFE4966D68C10318E8C8CB23CA593E8057F29FF9154908B11D6530E6352F9406C81D9DAC5C298979320B4E0DD89203A1F680C8084154D0439DB6C53EDAF6FCC0E8682EC99D345180120AEC810CBB0C2F1B6D1B660ACEAAD5996A5D184659B6A1F11456BA6A5E94D223959D8171C030499A9DB458702CB35CA7E7CD75D26FF5E94640AB8740ECE82559784BB6D5CB4D041D053629BD3F4178077F3F7E280296C46A3F0FBC37813A1AA221FBA2612F0CFE56450E9B1F2C2AE278EC7A7AAB66D61FA9749FE997EDC31131091620897014D33B2386B490CFD80656B7D2EB08C9DA9928798986996D60F74D766EB8988E2FF676E38C587E7A6651AA28BEB8BB56EBBD6E641E92309AEAA671A5F2EC72629442D2C3A4C2B8E4304DC71B342CD116527832078E6B53C1E0A72909615B408E17625F7259ACA98E46359448FC141F57B51A069B8A402AE3A87E10AE7E910F3916BAC6CE716C539E825A06626673DE7EBD899A3982FCC599791E7CA964C0D37BB076708C03DC7C022980974025C0EA9B72CC3D0A03E4626E030E9C857ECF6B3807AC9E8E0F72098C7E80DAA05BFF60394A8374096878F015597DD5B22E65646A7DDC87B5F6AE68594DF39B0BDB2675A32369AD81FD62033146B8DA6A801E918572CBC70DEBA9F70D088D69425733ACE0084E60E7FCB459A5B71F74F711184B1AEA240834D28D049474BB2E7ED1B17AA2B5EB7D274341456834320BE8FB245B1C2B84A096E7E40573FEB7C2997ED16C8C2C62409B8064398ED220FA82C59E53AD7E864C24473FCC7F017B897D5855F092A9428957467EFD93F67D3FA302C578328A9484CD0496CC83BEAC96504F9601DA2048D25BF43B5A69E46234A164D854B89DF1DEDC36F0304BA5FC035B27E782087C3EC0A81840A3EC042204C63F9698CC74A818428039B23664C409529C4EDD822DF77819805023795EE625D524F12824C1F1FE99546DF75107AFFF7D424C4C3FB3D0BDA2E9BC0D93603457FFE44FABEAB1E6B62223B201D42784731BEE11E0FF0BF29C930DAF913F974739800522E2B9C4094475A5F35AA92E2939E5719EB4EE19446ADC9ECC7EE6BAB5D264C9E74AB6DE856D541146048341EB51734A34E33EF8D929F645E23FD902CB5676DA9C84C9F46490710DC8CF2AA922252C3885CBD8D0CB1D176CAFEB46A625C56BE949F487C6E35E2CE481F024C889C7A27293 | 361 | 20171218052822 2 6 100 7679 5 DC810DED621062F0CB271F50E716119CBA30A56C758377BD69D70043B8C9ACA2E7EFA9896D324B18FB1A550BDB994533A67258C7EB28B23D1AFB6D3FE0C5C8AD961F2BFAE67E57978F749D3F33A0D9AEAFD817FD663E60298D0DF73E4B27A85B6799D929240EC6C4C59E0D98E0A7875F3FCC3E29394083D1344F78DC70B5E23C108A03B7B81121BEDD2093262B7E32C7AB695AD545D3A99F410199DDD9759FE1EE8502180206841B3C74CB6A939B38707309B421A75FFEC30C977F91A9F9F3C9F65EF2EA6251E72F8A65C7753815C188320E91B079EDFB9F1D480F529B67075B57523C44895DE2427D32D3935EAC5F46659C5F723C9BB006862EF143A77C384560EB5474F8D034FC8059F6D7BCD9EBD17D2740741FB4025CF87FFE3DAAFF72C8D9D10E1F779AEC56D3C6340426E2D980EAA07C46F2E720D1B8206D2A29162C6CA877FA89C0876DA70FF3A773BDEE1BB5831EFB58A9191430B0DE46EA4F484642F257AC176B74A91A02594D00D2FD30BE4927DED30C4389245EC5ECA93B1B08AFBB86B8012394F8CB874DC092498A2F9B44E27804C039632A192C8329F0DF25B196E6AB5E07FB3732B94990A2F0490FB07D9E33B0AA2830EDB572D7C7968A193B83FF869F65ABEDEC65EB03EA6DF0CD6C077DE627FD3583AFDA1754E655BE7ECF7A2BEAA422E516B26194FAEFEE6F535439B413325E1263E7E797DE9D717540A96AF360F8EE1FD4B190A513E83AEF6BCAB5A245F4A4F129F5F8AED11A558FE968A0CF2E254438384D0EE91BEE99A39696821DBA585144FA65484897CFC517FCE1D1512F792C6996063585F640AC9480220ED1FF3EDC1D7E55344977F71692D6F5DB091821A3F9612B65138848B874A93A71A74039337BF291938B0A8ACA2141BE969DCE4322A276C86C5A8E369EF6717158B46EBE48F8F9BC4F2E46203AC21CDD9F0ED1989F7D964D46D7DA63444C9CADA82AF53E38873A5D3F68868CA4F65748210716658F2A841B3890E773A2623A59073F14A0F2F1B0893FDBE5BA72FC9609DB8E8A56A322E2B4178CE7B2022D741BD256303D926B48D5239B354F611C52B475C62351854D6E27C89231E7E7972C19C7D6F5BEB07D1A1FF827348DA862F422047A2DB7B591AE497578A4BA95CBECFB503F5DC04C0C6A946FFB515F2F0BDC4332F2674706F7C1908B681D8EE3667777092C06DC9CF00F98143F4A1350FCBAEBB5157A5473D33F51778987B35B1D48249A491EE8F8778DE6DC29131F708642884BED0B0D159E1EFE428D18D3631F13A593323F1659FE9E1A708115D2F131DCC3808CE016036FF1D0D9193CBEB2CD1C49F9973E0BCB09A2A9394E2F55C08EEBC7 |
362 | 20170714141853 2 6 100 8191 5 DDFBC1CD4FB7E30639422038F1FFBA2CD3EC3915F3C923282C6588F6EB218FF7B24870C0FE4B48213AB0948E101686FB7B0093ED467B6CA413EDD4B0BFE2155AEBC4DA3D2DD0C78DA9AD989A0E989010D6D5E86A123C169E126F97826EE5F602FF641FDF642A107E7538CB61740CBAF69F6C7DC5DD4DF28998AB61B8672F0B74A3A8DD7D165828D69DCC1BAE4D45F707C3894E040BCC0AF7AA810A6D5CB89276217EB7AFAFE4966D68C10318E8C8CB23CA593E8057F29FF9154908B11D6530E6352F9406C81D9DAC5C298979320B4E0DD89203A1F680C8084154D0439DB6C53EDAF6FCC0E8682EC99D345180120AEC810CBB0C2F1B6D1B660ACEAAD5996A5D184659B6A1F11456BA6A5E94D223959D8171C030499A9DB458702CB35CA7E7CD75D26FF5E94640AB8740ECE82559784BB6D5CB4D041D053629BD3F4178077F3F7E280296C46A3F0FBC37813A1AA221FBA2612F0CFE56450E9B1F2C2AE278EC7A7AAB66D61FA9749FE997EDC31131091620897014D33B2386B490CFD80656B7D2EB08C9DA9928798986996D60F74D766EB8988E2FF676E38C587E7A6651AA28BEB8BB56EBBD6E641E92309AEAA671A5F2EC72629442D2C3A4C2B8E4304DC71B342CD116527832078E6B53C1E0A72909615B408E17625F7259ACA98E46359448FC141F57B51A069B8A402AE3A87E10AE7E910F3916BAC6CE716C539E825A06626673DE7EBD899A3982FCC599791E7CA964C0D37BB076708C03DC7C022980974025C0EA9B72CC3D0A03E4626E030E9C857ECF6B3807AC9E8E0F72098C7E80DAA05BFF60394A8374096878F015597DD5B22E65646A7DDC87B5F6AE68594DF39B0BDB2675A32369AD81FD62033146B8DA6A801E918572CBC70DEBA9F70D088D69425733ACE0084E60E7FCB459A5B71F74F711184B1AEA240834D28D049474BB2E7ED1B17AA2B5EB7D274341456834320BE8FB245B1C2B84A096E7E40573FEB7C2997ED16C8C2C62409B8064398ED220FA82C59E53AD7E864C24473FCC7F017B897D5855F092A9428957467EFD93F67D3FA302C578328A9484CD0496CC83BEAC96504F9601DA2048D25BF43B5A69E46234A164D854B89DF1DEDC36F0304BA5FC035B27E782087C3EC0A81840A3EC042204C63F9698CC74A818428039B23664C409529C4EDD822DF77819805023795EE625D524F12824C1F1FE99546DF75107AFFF7D424C4C3FB3D0BDA2E9BC0D93603457FFE44FABEAB1E6B62223B201D42784731BEE11E0FF0BF29C930DAF913F974739800522E2B9C4094475A5F35AA92E2939E5719EB4EE19446ADC9ECC7EE6BAB5D264C9E74AB6DE856D541146048341EB51734A34E33EF8D929F645E23FD902CB5676DA9C84C9F46490710DC8CF2AA922252C3885CBD8D0CB1D176CAFEB46A625C56BE949F487C6E35E2CE481F024C889CAA42B27 | 362 | 20171218071736 2 6 100 7679 2 DC810DED621062F0CB271F50E716119CBA30A56C758377BD69D70043B8C9ACA2E7EFA9896D324B18FB1A550BDB994533A67258C7EB28B23D1AFB6D3FE0C5C8AD961F2BFAE67E57978F749D3F33A0D9AEAFD817FD663E60298D0DF73E4B27A85B6799D929240EC6C4C59E0D98E0A7875F3FCC3E29394083D1344F78DC70B5E23C108A03B7B81121BEDD2093262B7E32C7AB695AD545D3A99F410199DDD9759FE1EE8502180206841B3C74CB6A939B38707309B421A75FFEC30C977F91A9F9F3C9F65EF2EA6251E72F8A65C7753815C188320E91B079EDFB9F1D480F529B67075B57523C44895DE2427D32D3935EAC5F46659C5F723C9BB006862EF143A77C384560EB5474F8D034FC8059F6D7BCD9EBD17D2740741FB4025CF87FFE3DAAFF72C8D9D10E1F779AEC56D3C6340426E2D980EAA07C46F2E720D1B8206D2A29162C6CA877FA89C0876DA70FF3A773BDEE1BB5831EFB58A9191430B0DE46EA4F484642F257AC176B74A91A02594D00D2FD30BE4927DED30C4389245EC5ECA93B1B08AFBB86B8012394F8CB874DC092498A2F9B44E27804C039632A192C8329F0DF25B196E6AB5E07FB3732B94990A2F0490FB07D9E33B0AA2830EDB572D7C7968A193B83FF869F65ABEDEC65EB03EA6DF0CD6C077DE627FD3583AFDA1754E655BE7ECF7A2BEAA422E516B26194FAEFEE6F535439B413325E1263E7E797DE9D717540A96AF360F8EE1FD4B190A513E83AEF6BCAB5A245F4A4F129F5F8AED11A558FE968A0CF2E254438384D0EE91BEE99A39696821DBA585144FA65484897CFC517FCE1D1512F792C6996063585F640AC9480220ED1FF3EDC1D7E55344977F71692D6F5DB091821A3F9612B65138848B874A93A71A74039337BF291938B0A8ACA2141BE969DCE4322A276C86C5A8E369EF6717158B46EBE48F8F9BC4F2E46203AC21CDD9F0ED1989F7D964D46D7DA63444C9CADA82AF53E38873A5D3F68868CA4F65748210716658F2A841B3890E773A2623A59073F14A0F2F1B0893FDBE5BA72FC9609DB8E8A56A322E2B4178CE7B2022D741BD256303D926B48D5239B354F611C52B475C62351854D6E27C89231E7E7972C19C7D6F5BEB07D1A1FF827348DA862F422047A2DB7B591AE497578A4BA95CBECFB503F5DC04C0C6A946FFB515F2F0BDC4332F2674706F7C1908B681D8EE3667777092C06DC9CF00F98143F4A1350FCBAEBB5157A5473D33F51778987B35B1D48249A491EE8F8778DE6DC29131F708642884BED0B0D159E1EFE428D18D3631F13A593323F1659FE9E1A708115D2F131DCC3808CE016036FF1D0D9193CBEB2CD1C49F9973E0BCB09A2A9394E2F55C1D36F8B |
363 | 20170714204505 2 6 100 8191 5 DDFBC1CD4FB7E30639422038F1FFBA2CD3EC3915F3C923282C6588F6EB218FF7B24870C0FE4B48213AB0948E101686FB7B0093ED467B6CA413EDD4B0BFE2155AEBC4DA3D2DD0C78DA9AD989A0E989010D6D5E86A123C169E126F97826EE5F602FF641FDF642A107E7538CB61740CBAF69F6C7DC5DD4DF28998AB61B8672F0B74A3A8DD7D165828D69DCC1BAE4D45F707C3894E040BCC0AF7AA810A6D5CB89276217EB7AFAFE4966D68C10318E8C8CB23CA593E8057F29FF9154908B11D6530E6352F9406C81D9DAC5C298979320B4E0DD89203A1F680C8084154D0439DB6C53EDAF6FCC0E8682EC99D345180120AEC810CBB0C2F1B6D1B660ACEAAD5996A5D184659B6A1F11456BA6A5E94D223959D8171C030499A9DB458702CB35CA7E7CD75D26FF5E94640AB8740ECE82559784BB6D5CB4D041D053629BD3F4178077F3F7E280296C46A3F0FBC37813A1AA221FBA2612F0CFE56450E9B1F2C2AE278EC7A7AAB66D61FA9749FE997EDC31131091620897014D33B2386B490CFD80656B7D2EB08C9DA9928798986996D60F74D766EB8988E2FF676E38C587E7A6651AA28BEB8BB56EBBD6E641E92309AEAA671A5F2EC72629442D2C3A4C2B8E4304DC71B342CD116527832078E6B53C1E0A72909615B408E17625F7259ACA98E46359448FC141F57B51A069B8A402AE3A87E10AE7E910F3916BAC6CE716C539E825A06626673DE7EBD899A3982FCC599791E7CA964C0D37BB076708C03DC7C022980974025C0EA9B72CC3D0A03E4626E030E9C857ECF6B3807AC9E8E0F72098C7E80DAA05BFF60394A8374096878F015597DD5B22E65646A7DDC87B5F6AE68594DF39B0BDB2675A32369AD81FD62033146B8DA6A801E918572CBC70DEBA9F70D088D69425733ACE0084E60E7FCB459A5B71F74F711184B1AEA240834D28D049474BB2E7ED1B17AA2B5EB7D274341456834320BE8FB245B1C2B84A096E7E40573FEB7C2997ED16C8C2C62409B8064398ED220FA82C59E53AD7E864C24473FCC7F017B897D5855F092A9428957467EFD93F67D3FA302C578328A9484CD0496CC83BEAC96504F9601DA2048D25BF43B5A69E46234A164D854B89DF1DEDC36F0304BA5FC035B27E782087C3EC0A81840A3EC042204C63F9698CC74A818428039B23664C409529C4EDD822DF77819805023795EE625D524F12824C1F1FE99546DF75107AFFF7D424C4C3FB3D0BDA2E9BC0D93603457FFE44FABEAB1E6B62223B201D42784731BEE11E0FF0BF29C930DAF913F974739800522E2B9C4094475A5F35AA92E2939E5719EB4EE19446ADC9ECC7EE6BAB5D264C9E74AB6DE856D541146048341EB51734A34E33EF8D929F645E23FD902CB5676DA9C84C9F46490710DC8CF2AA922252C3885CBD8D0CB1D176CAFEB46A625C56BE949F487C6E35E2CE481F024C889CEF31E77 | 363 | 20171218072625 2 6 100 7679 2 DC810DED621062F0CB271F50E716119CBA30A56C758377BD69D70043B8C9ACA2E7EFA9896D324B18FB1A550BDB994533A67258C7EB28B23D1AFB6D3FE0C5C8AD961F2BFAE67E57978F749D3F33A0D9AEAFD817FD663E60298D0DF73E4B27A85B6799D929240EC6C4C59E0D98E0A7875F3FCC3E29394083D1344F78DC70B5E23C108A03B7B81121BEDD2093262B7E32C7AB695AD545D3A99F410199DDD9759FE1EE8502180206841B3C74CB6A939B38707309B421A75FFEC30C977F91A9F9F3C9F65EF2EA6251E72F8A65C7753815C188320E91B079EDFB9F1D480F529B67075B57523C44895DE2427D32D3935EAC5F46659C5F723C9BB006862EF143A77C384560EB5474F8D034FC8059F6D7BCD9EBD17D2740741FB4025CF87FFE3DAAFF72C8D9D10E1F779AEC56D3C6340426E2D980EAA07C46F2E720D1B8206D2A29162C6CA877FA89C0876DA70FF3A773BDEE1BB5831EFB58A9191430B0DE46EA4F484642F257AC176B74A91A02594D00D2FD30BE4927DED30C4389245EC5ECA93B1B08AFBB86B8012394F8CB874DC092498A2F9B44E27804C039632A192C8329F0DF25B196E6AB5E07FB3732B94990A2F0490FB07D9E33B0AA2830EDB572D7C7968A193B83FF869F65ABEDEC65EB03EA6DF0CD6C077DE627FD3583AFDA1754E655BE7ECF7A2BEAA422E516B26194FAEFEE6F535439B413325E1263E7E797DE9D717540A96AF360F8EE1FD4B190A513E83AEF6BCAB5A245F4A4F129F5F8AED11A558FE968A0CF2E254438384D0EE91BEE99A39696821DBA585144FA65484897CFC517FCE1D1512F792C6996063585F640AC9480220ED1FF3EDC1D7E55344977F71692D6F5DB091821A3F9612B65138848B874A93A71A74039337BF291938B0A8ACA2141BE969DCE4322A276C86C5A8E369EF6717158B46EBE48F8F9BC4F2E46203AC21CDD9F0ED1989F7D964D46D7DA63444C9CADA82AF53E38873A5D3F68868CA4F65748210716658F2A841B3890E773A2623A59073F14A0F2F1B0893FDBE5BA72FC9609DB8E8A56A322E2B4178CE7B2022D741BD256303D926B48D5239B354F611C52B475C62351854D6E27C89231E7E7972C19C7D6F5BEB07D1A1FF827348DA862F422047A2DB7B591AE497578A4BA95CBECFB503F5DC04C0C6A946FFB515F2F0BDC4332F2674706F7C1908B681D8EE3667777092C06DC9CF00F98143F4A1350FCBAEBB5157A5473D33F51778987B35B1D48249A491EE8F8778DE6DC29131F708642884BED0B0D159E1EFE428D18D3631F13A593323F1659FE9E1A708115D2F131DCC3808CE016036FF1D0D9193CBEB2CD1C49F9973E0BCB09A2A9394E2F55C1E549DB |
364 | 20170714205139 2 6 100 8191 2 DDFBC1CD4FB7E30639422038F1FFBA2CD3EC3915F3C923282C6588F6EB218FF7B24870C0FE4B48213AB0948E101686FB7B0093ED467B6CA413EDD4B0BFE2155AEBC4DA3D2DD0C78DA9AD989A0E989010D6D5E86A123C169E126F97826EE5F602FF641FDF642A107E7538CB61740CBAF69F6C7DC5DD4DF28998AB61B8672F0B74A3A8DD7D165828D69DCC1BAE4D45F707C3894E040BCC0AF7AA810A6D5CB89276217EB7AFAFE4966D68C10318E8C8CB23CA593E8057F29FF9154908B11D6530E6352F9406C81D9DAC5C298979320B4E0DD89203A1F680C8084154D0439DB6C53EDAF6FCC0E8682EC99D345180120AEC810CBB0C2F1B6D1B660ACEAAD5996A5D184659B6A1F11456BA6A5E94D223959D8171C030499A9DB458702CB35CA7E7CD75D26FF5E94640AB8740ECE82559784BB6D5CB4D041D053629BD3F4178077F3F7E280296C46A3F0FBC37813A1AA221FBA2612F0CFE56450E9B1F2C2AE278EC7A7AAB66D61FA9749FE997EDC31131091620897014D33B2386B490CFD80656B7D2EB08C9DA9928798986996D60F74D766EB8988E2FF676E38C587E7A6651AA28BEB8BB56EBBD6E641E92309AEAA671A5F2EC72629442D2C3A4C2B8E4304DC71B342CD116527832078E6B53C1E0A72909615B408E17625F7259ACA98E46359448FC141F57B51A069B8A402AE3A87E10AE7E910F3916BAC6CE716C539E825A06626673DE7EBD899A3982FCC599791E7CA964C0D37BB076708C03DC7C022980974025C0EA9B72CC3D0A03E4626E030E9C857ECF6B3807AC9E8E0F72098C7E80DAA05BFF60394A8374096878F015597DD5B22E65646A7DDC87B5F6AE68594DF39B0BDB2675A32369AD81FD62033146B8DA6A801E918572CBC70DEBA9F70D088D69425733ACE0084E60E7FCB459A5B71F74F711184B1AEA240834D28D049474BB2E7ED1B17AA2B5EB7D274341456834320BE8FB245B1C2B84A096E7E40573FEB7C2997ED16C8C2C62409B8064398ED220FA82C59E53AD7E864C24473FCC7F017B897D5855F092A9428957467EFD93F67D3FA302C578328A9484CD0496CC83BEAC96504F9601DA2048D25BF43B5A69E46234A164D854B89DF1DEDC36F0304BA5FC035B27E782087C3EC0A81840A3EC042204C63F9698CC74A818428039B23664C409529C4EDD822DF77819805023795EE625D524F12824C1F1FE99546DF75107AFFF7D424C4C3FB3D0BDA2E9BC0D93603457FFE44FABEAB1E6B62223B201D42784731BEE11E0FF0BF29C930DAF913F974739800522E2B9C4094475A5F35AA92E2939E5719EB4EE19446ADC9ECC7EE6BAB5D264C9E74AB6DE856D541146048341EB51734A34E33EF8D929F645E23FD902CB5676DA9C84C9F46490710DC8CF2AA922252C3885CBD8D0CB1D176CAFEB46A625C56BE949F487C6E35E2CE481F024C889CEFD860B | 364 | 20171218081603 2 6 100 7679 5 DC810DED621062F0CB271F50E716119CBA30A56C758377BD69D70043B8C9ACA2E7EFA9896D324B18FB1A550BDB994533A67258C7EB28B23D1AFB6D3FE0C5C8AD961F2BFAE67E57978F749D3F33A0D9AEAFD817FD663E60298D0DF73E4B27A85B6799D929240EC6C4C59E0D98E0A7875F3FCC3E29394083D1344F78DC70B5E23C108A03B7B81121BEDD2093262B7E32C7AB695AD545D3A99F410199DDD9759FE1EE8502180206841B3C74CB6A939B38707309B421A75FFEC30C977F91A9F9F3C9F65EF2EA6251E72F8A65C7753815C188320E91B079EDFB9F1D480F529B67075B57523C44895DE2427D32D3935EAC5F46659C5F723C9BB006862EF143A77C384560EB5474F8D034FC8059F6D7BCD9EBD17D2740741FB4025CF87FFE3DAAFF72C8D9D10E1F779AEC56D3C6340426E2D980EAA07C46F2E720D1B8206D2A29162C6CA877FA89C0876DA70FF3A773BDEE1BB5831EFB58A9191430B0DE46EA4F484642F257AC176B74A91A02594D00D2FD30BE4927DED30C4389245EC5ECA93B1B08AFBB86B8012394F8CB874DC092498A2F9B44E27804C039632A192C8329F0DF25B196E6AB5E07FB3732B94990A2F0490FB07D9E33B0AA2830EDB572D7C7968A193B83FF869F65ABEDEC65EB03EA6DF0CD6C077DE627FD3583AFDA1754E655BE7ECF7A2BEAA422E516B26194FAEFEE6F535439B413325E1263E7E797DE9D717540A96AF360F8EE1FD4B190A513E83AEF6BCAB5A245F4A4F129F5F8AED11A558FE968A0CF2E254438384D0EE91BEE99A39696821DBA585144FA65484897CFC517FCE1D1512F792C6996063585F640AC9480220ED1FF3EDC1D7E55344977F71692D6F5DB091821A3F9612B65138848B874A93A71A74039337BF291938B0A8ACA2141BE969DCE4322A276C86C5A8E369EF6717158B46EBE48F8F9BC4F2E46203AC21CDD9F0ED1989F7D964D46D7DA63444C9CADA82AF53E38873A5D3F68868CA4F65748210716658F2A841B3890E773A2623A59073F14A0F2F1B0893FDBE5BA72FC9609DB8E8A56A322E2B4178CE7B2022D741BD256303D926B48D5239B354F611C52B475C62351854D6E27C89231E7E7972C19C7D6F5BEB07D1A1FF827348DA862F422047A2DB7B591AE497578A4BA95CBECFB503F5DC04C0C6A946FFB515F2F0BDC4332F2674706F7C1908B681D8EE3667777092C06DC9CF00F98143F4A1350FCBAEBB5157A5473D33F51778987B35B1D48249A491EE8F8778DE6DC29131F708642884BED0B0D159E1EFE428D18D3631F13A593323F1659FE9E1A708115D2F131DCC3808CE016036FF1D0D9193CBEB2CD1C49F9973E0BCB09A2A9394E2F55C2747B77 |
365 | 20170714214942 2 6 100 8191 2 DDFBC1CD4FB7E30639422038F1FFBA2CD3EC3915F3C923282C6588F6EB218FF7B24870C0FE4B48213AB0948E101686FB7B0093ED467B6CA413EDD4B0BFE2155AEBC4DA3D2DD0C78DA9AD989A0E989010D6D5E86A123C169E126F97826EE5F602FF641FDF642A107E7538CB61740CBAF69F6C7DC5DD4DF28998AB61B8672F0B74A3A8DD7D165828D69DCC1BAE4D45F707C3894E040BCC0AF7AA810A6D5CB89276217EB7AFAFE4966D68C10318E8C8CB23CA593E8057F29FF9154908B11D6530E6352F9406C81D9DAC5C298979320B4E0DD89203A1F680C8084154D0439DB6C53EDAF6FCC0E8682EC99D345180120AEC810CBB0C2F1B6D1B660ACEAAD5996A5D184659B6A1F11456BA6A5E94D223959D8171C030499A9DB458702CB35CA7E7CD75D26FF5E94640AB8740ECE82559784BB6D5CB4D041D053629BD3F4178077F3F7E280296C46A3F0FBC37813A1AA221FBA2612F0CFE56450E9B1F2C2AE278EC7A7AAB66D61FA9749FE997EDC31131091620897014D33B2386B490CFD80656B7D2EB08C9DA9928798986996D60F74D766EB8988E2FF676E38C587E7A6651AA28BEB8BB56EBBD6E641E92309AEAA671A5F2EC72629442D2C3A4C2B8E4304DC71B342CD116527832078E6B53C1E0A72909615B408E17625F7259ACA98E46359448FC141F57B51A069B8A402AE3A87E10AE7E910F3916BAC6CE716C539E825A06626673DE7EBD899A3982FCC599791E7CA964C0D37BB076708C03DC7C022980974025C0EA9B72CC3D0A03E4626E030E9C857ECF6B3807AC9E8E0F72098C7E80DAA05BFF60394A8374096878F015597DD5B22E65646A7DDC87B5F6AE68594DF39B0BDB2675A32369AD81FD62033146B8DA6A801E918572CBC70DEBA9F70D088D69425733ACE0084E60E7FCB459A5B71F74F711184B1AEA240834D28D049474BB2E7ED1B17AA2B5EB7D274341456834320BE8FB245B1C2B84A096E7E40573FEB7C2997ED16C8C2C62409B8064398ED220FA82C59E53AD7E864C24473FCC7F017B897D5855F092A9428957467EFD93F67D3FA302C578328A9484CD0496CC83BEAC96504F9601DA2048D25BF43B5A69E46234A164D854B89DF1DEDC36F0304BA5FC035B27E782087C3EC0A81840A3EC042204C63F9698CC74A818428039B23664C409529C4EDD822DF77819805023795EE625D524F12824C1F1FE99546DF75107AFFF7D424C4C3FB3D0BDA2E9BC0D93603457FFE44FABEAB1E6B62223B201D42784731BEE11E0FF0BF29C930DAF913F974739800522E2B9C4094475A5F35AA92E2939E5719EB4EE19446ADC9ECC7EE6BAB5D264C9E74AB6DE856D541146048341EB51734A34E33EF8D929F645E23FD902CB5676DA9C84C9F46490710DC8CF2AA922252C3885CBD8D0CB1D176CAFEB46A625C56BE949F487C6E35E2CE481F024C889CF9B7253 | 365 | 20171218163834 2 6 100 7679 5 DC810DED621062F0CB271F50E716119CBA30A56C758377BD69D70043B8C9ACA2E7EFA9896D324B18FB1A550BDB994533A67258C7EB28B23D1AFB6D3FE0C5C8AD961F2BFAE67E57978F749D3F33A0D9AEAFD817FD663E60298D0DF73E4B27A85B6799D929240EC6C4C59E0D98E0A7875F3FCC3E29394083D1344F78DC70B5E23C108A03B7B81121BEDD2093262B7E32C7AB695AD545D3A99F410199DDD9759FE1EE8502180206841B3C74CB6A939B38707309B421A75FFEC30C977F91A9F9F3C9F65EF2EA6251E72F8A65C7753815C188320E91B079EDFB9F1D480F529B67075B57523C44895DE2427D32D3935EAC5F46659C5F723C9BB006862EF143A77C384560EB5474F8D034FC8059F6D7BCD9EBD17D2740741FB4025CF87FFE3DAAFF72C8D9D10E1F779AEC56D3C6340426E2D980EAA07C46F2E720D1B8206D2A29162C6CA877FA89C0876DA70FF3A773BDEE1BB5831EFB58A9191430B0DE46EA4F484642F257AC176B74A91A02594D00D2FD30BE4927DED30C4389245EC5ECA93B1B08AFBB86B8012394F8CB874DC092498A2F9B44E27804C039632A192C8329F0DF25B196E6AB5E07FB3732B94990A2F0490FB07D9E33B0AA2830EDB572D7C7968A193B83FF869F65ABEDEC65EB03EA6DF0CD6C077DE627FD3583AFDA1754E655BE7ECF7A2BEAA422E516B26194FAEFEE6F535439B413325E1263E7E797DE9D717540A96AF360F8EE1FD4B190A513E83AEF6BCAB5A245F4A4F129F5F8AED11A558FE968A0CF2E254438384D0EE91BEE99A39696821DBA585144FA65484897CFC517FCE1D1512F792C6996063585F640AC9480220ED1FF3EDC1D7E55344977F71692D6F5DB091821A3F9612B65138848B874A93A71A74039337BF291938B0A8ACA2141BE969DCE4322A276C86C5A8E369EF6717158B46EBE48F8F9BC4F2E46203AC21CDD9F0ED1989F7D964D46D7DA63444C9CADA82AF53E38873A5D3F68868CA4F65748210716658F2A841B3890E773A2623A59073F14A0F2F1B0893FDBE5BA72FC9609DB8E8A56A322E2B4178CE7B2022D741BD256303D926B48D5239B354F611C52B475C62351854D6E27C89231E7E7972C19C7D6F5BEB07D1A1FF827348DA862F422047A2DB7B591AE497578A4BA95CBECFB503F5DC04C0C6A946FFB515F2F0BDC4332F2674706F7C1908B681D8EE3667777092C06DC9CF00F98143F4A1350FCBAEBB5157A5473D33F51778987B35B1D48249A491EE8F8778DE6DC29131F708642884BED0B0D159E1EFE428D18D3631F13A593323F1659FE9E1A708115D2F131DCC3808CE016036FF1D0D9193CBEB2CD1C49F9973E0BCB09A2A9394E2F55C883ECE7 |
366 | 20170714230801 2 6 100 8191 2 DDFBC1CD4FB7E30639422038F1FFBA2CD3EC3915F3C923282C6588F6EB218FF7B24870C0FE4B48213AB0948E101686FB7B0093ED467B6CA413EDD4B0BFE2155AEBC4DA3D2DD0C78DA9AD989A0E989010D6D5E86A123C169E126F97826EE5F602FF641FDF642A107E7538CB61740CBAF69F6C7DC5DD4DF28998AB61B8672F0B74A3A8DD7D165828D69DCC1BAE4D45F707C3894E040BCC0AF7AA810A6D5CB89276217EB7AFAFE4966D68C10318E8C8CB23CA593E8057F29FF9154908B11D6530E6352F9406C81D9DAC5C298979320B4E0DD89203A1F680C8084154D0439DB6C53EDAF6FCC0E8682EC99D345180120AEC810CBB0C2F1B6D1B660ACEAAD5996A5D184659B6A1F11456BA6A5E94D223959D8171C030499A9DB458702CB35CA7E7CD75D26FF5E94640AB8740ECE82559784BB6D5CB4D041D053629BD3F4178077F3F7E280296C46A3F0FBC37813A1AA221FBA2612F0CFE56450E9B1F2C2AE278EC7A7AAB66D61FA9749FE997EDC31131091620897014D33B2386B490CFD80656B7D2EB08C9DA9928798986996D60F74D766EB8988E2FF676E38C587E7A6651AA28BEB8BB56EBBD6E641E92309AEAA671A5F2EC72629442D2C3A4C2B8E4304DC71B342CD116527832078E6B53C1E0A72909615B408E17625F7259ACA98E46359448FC141F57B51A069B8A402AE3A87E10AE7E910F3916BAC6CE716C539E825A06626673DE7EBD899A3982FCC599791E7CA964C0D37BB076708C03DC7C022980974025C0EA9B72CC3D0A03E4626E030E9C857ECF6B3807AC9E8E0F72098C7E80DAA05BFF60394A8374096878F015597DD5B22E65646A7DDC87B5F6AE68594DF39B0BDB2675A32369AD81FD62033146B8DA6A801E918572CBC70DEBA9F70D088D69425733ACE0084E60E7FCB459A5B71F74F711184B1AEA240834D28D049474BB2E7ED1B17AA2B5EB7D274341456834320BE8FB245B1C2B84A096E7E40573FEB7C2997ED16C8C2C62409B8064398ED220FA82C59E53AD7E864C24473FCC7F017B897D5855F092A9428957467EFD93F67D3FA302C578328A9484CD0496CC83BEAC96504F9601DA2048D25BF43B5A69E46234A164D854B89DF1DEDC36F0304BA5FC035B27E782087C3EC0A81840A3EC042204C63F9698CC74A818428039B23664C409529C4EDD822DF77819805023795EE625D524F12824C1F1FE99546DF75107AFFF7D424C4C3FB3D0BDA2E9BC0D93603457FFE44FABEAB1E6B62223B201D42784731BEE11E0FF0BF29C930DAF913F974739800522E2B9C4094475A5F35AA92E2939E5719EB4EE19446ADC9ECC7EE6BAB5D264C9E74AB6DE856D541146048341EB51734A34E33EF8D929F645E23FD902CB5676DA9C84C9F46490710DC8CF2AA922252C3885CBD8D0CB1D176CAFEB46A625C56BE949F487C6E35E2CE481F024C889D071D153 | 366 | 20171218165317 2 6 100 7679 2 DC810DED621062F0CB271F50E716119CBA30A56C758377BD69D70043B8C9ACA2E7EFA9896D324B18FB1A550BDB994533A67258C7EB28B23D1AFB6D3FE0C5C8AD961F2BFAE67E57978F749D3F33A0D9AEAFD817FD663E60298D0DF73E4B27A85B6799D929240EC6C4C59E0D98E0A7875F3FCC3E29394083D1344F78DC70B5E23C108A03B7B81121BEDD2093262B7E32C7AB695AD545D3A99F410199DDD9759FE1EE8502180206841B3C74CB6A939B38707309B421A75FFEC30C977F91A9F9F3C9F65EF2EA6251E72F8A65C7753815C188320E91B079EDFB9F1D480F529B67075B57523C44895DE2427D32D3935EAC5F46659C5F723C9BB006862EF143A77C384560EB5474F8D034FC8059F6D7BCD9EBD17D2740741FB4025CF87FFE3DAAFF72C8D9D10E1F779AEC56D3C6340426E2D980EAA07C46F2E720D1B8206D2A29162C6CA877FA89C0876DA70FF3A773BDEE1BB5831EFB58A9191430B0DE46EA4F484642F257AC176B74A91A02594D00D2FD30BE4927DED30C4389245EC5ECA93B1B08AFBB86B8012394F8CB874DC092498A2F9B44E27804C039632A192C8329F0DF25B196E6AB5E07FB3732B94990A2F0490FB07D9E33B0AA2830EDB572D7C7968A193B83FF869F65ABEDEC65EB03EA6DF0CD6C077DE627FD3583AFDA1754E655BE7ECF7A2BEAA422E516B26194FAEFEE6F535439B413325E1263E7E797DE9D717540A96AF360F8EE1FD4B190A513E83AEF6BCAB5A245F4A4F129F5F8AED11A558FE968A0CF2E254438384D0EE91BEE99A39696821DBA585144FA65484897CFC517FCE1D1512F792C6996063585F640AC9480220ED1FF3EDC1D7E55344977F71692D6F5DB091821A3F9612B65138848B874A93A71A74039337BF291938B0A8ACA2141BE969DCE4322A276C86C5A8E369EF6717158B46EBE48F8F9BC4F2E46203AC21CDD9F0ED1989F7D964D46D7DA63444C9CADA82AF53E38873A5D3F68868CA4F65748210716658F2A841B3890E773A2623A59073F14A0F2F1B0893FDBE5BA72FC9609DB8E8A56A322E2B4178CE7B2022D741BD256303D926B48D5239B354F611C52B475C62351854D6E27C89231E7E7972C19C7D6F5BEB07D1A1FF827348DA862F422047A2DB7B591AE497578A4BA95CBECFB503F5DC04C0C6A946FFB515F2F0BDC4332F2674706F7C1908B681D8EE3667777092C06DC9CF00F98143F4A1350FCBAEBB5157A5473D33F51778987B35B1D48249A491EE8F8778DE6DC29131F708642884BED0B0D159E1EFE428D18D3631F13A593323F1659FE9E1A708115D2F131DCC3808CE016036FF1D0D9193CBEB2CD1C49F9973E0BCB09A2A9394E2F55C8AA3DD3 |
367 | 20170715054028 2 6 100 8191 5 DDFBC1CD4FB7E30639422038F1FFBA2CD3EC3915F3C923282C6588F6EB218FF7B24870C0FE4B48213AB0948E101686FB7B0093ED467B6CA413EDD4B0BFE2155AEBC4DA3D2DD0C78DA9AD989A0E989010D6D5E86A123C169E126F97826EE5F602FF641FDF642A107E7538CB61740CBAF69F6C7DC5DD4DF28998AB61B8672F0B74A3A8DD7D165828D69DCC1BAE4D45F707C3894E040BCC0AF7AA810A6D5CB89276217EB7AFAFE4966D68C10318E8C8CB23CA593E8057F29FF9154908B11D6530E6352F9406C81D9DAC5C298979320B4E0DD89203A1F680C8084154D0439DB6C53EDAF6FCC0E8682EC99D345180120AEC810CBB0C2F1B6D1B660ACEAAD5996A5D184659B6A1F11456BA6A5E94D223959D8171C030499A9DB458702CB35CA7E7CD75D26FF5E94640AB8740ECE82559784BB6D5CB4D041D053629BD3F4178077F3F7E280296C46A3F0FBC37813A1AA221FBA2612F0CFE56450E9B1F2C2AE278EC7A7AAB66D61FA9749FE997EDC31131091620897014D33B2386B490CFD80656B7D2EB08C9DA9928798986996D60F74D766EB8988E2FF676E38C587E7A6651AA28BEB8BB56EBBD6E641E92309AEAA671A5F2EC72629442D2C3A4C2B8E4304DC71B342CD116527832078E6B53C1E0A72909615B408E17625F7259ACA98E46359448FC141F57B51A069B8A402AE3A87E10AE7E910F3916BAC6CE716C539E825A06626673DE7EBD899A3982FCC599791E7CA964C0D37BB076708C03DC7C022980974025C0EA9B72CC3D0A03E4626E030E9C857ECF6B3807AC9E8E0F72098C7E80DAA05BFF60394A8374096878F015597DD5B22E65646A7DDC87B5F6AE68594DF39B0BDB2675A32369AD81FD62033146B8DA6A801E918572CBC70DEBA9F70D088D69425733ACE0084E60E7FCB459A5B71F74F711184B1AEA240834D28D049474BB2E7ED1B17AA2B5EB7D274341456834320BE8FB245B1C2B84A096E7E40573FEB7C2997ED16C8C2C62409B8064398ED220FA82C59E53AD7E864C24473FCC7F017B897D5855F092A9428957467EFD93F67D3FA302C578328A9484CD0496CC83BEAC96504F9601DA2048D25BF43B5A69E46234A164D854B89DF1DEDC36F0304BA5FC035B27E782087C3EC0A81840A3EC042204C63F9698CC74A818428039B23664C409529C4EDD822DF77819805023795EE625D524F12824C1F1FE99546DF75107AFFF7D424C4C3FB3D0BDA2E9BC0D93603457FFE44FABEAB1E6B62223B201D42784731BEE11E0FF0BF29C930DAF913F974739800522E2B9C4094475A5F35AA92E2939E5719EB4EE19446ADC9ECC7EE6BAB5D264C9E74AB6DE856D541146048341EB51734A34E33EF8D929F645E23FD902CB5676DA9C84C9F46490710DC8CF2AA922252C3885CBD8D0CB1D176CAFEB46A625C56BE949F487C6E35E2CE481F024C889D4C6B33F | 367 | 20171218195505 2 6 100 7679 2 DC810DED621062F0CB271F50E716119CBA30A56C758377BD69D70043B8C9ACA2E7EFA9896D324B18FB1A550BDB994533A67258C7EB28B23D1AFB6D3FE0C5C8AD961F2BFAE67E57978F749D3F33A0D9AEAFD817FD663E60298D0DF73E4B27A85B6799D929240EC6C4C59E0D98E0A7875F3FCC3E29394083D1344F78DC70B5E23C108A03B7B81121BEDD2093262B7E32C7AB695AD545D3A99F410199DDD9759FE1EE8502180206841B3C74CB6A939B38707309B421A75FFEC30C977F91A9F9F3C9F65EF2EA6251E72F8A65C7753815C188320E91B079EDFB9F1D480F529B67075B57523C44895DE2427D32D3935EAC5F46659C5F723C9BB006862EF143A77C384560EB5474F8D034FC8059F6D7BCD9EBD17D2740741FB4025CF87FFE3DAAFF72C8D9D10E1F779AEC56D3C6340426E2D980EAA07C46F2E720D1B8206D2A29162C6CA877FA89C0876DA70FF3A773BDEE1BB5831EFB58A9191430B0DE46EA4F484642F257AC176B74A91A02594D00D2FD30BE4927DED30C4389245EC5ECA93B1B08AFBB86B8012394F8CB874DC092498A2F9B44E27804C039632A192C8329F0DF25B196E6AB5E07FB3732B94990A2F0490FB07D9E33B0AA2830EDB572D7C7968A193B83FF869F65ABEDEC65EB03EA6DF0CD6C077DE627FD3583AFDA1754E655BE7ECF7A2BEAA422E516B26194FAEFEE6F535439B413325E1263E7E797DE9D717540A96AF360F8EE1FD4B190A513E83AEF6BCAB5A245F4A4F129F5F8AED11A558FE968A0CF2E254438384D0EE91BEE99A39696821DBA585144FA65484897CFC517FCE1D1512F792C6996063585F640AC9480220ED1FF3EDC1D7E55344977F71692D6F5DB091821A3F9612B65138848B874A93A71A74039337BF291938B0A8ACA2141BE969DCE4322A276C86C5A8E369EF6717158B46EBE48F8F9BC4F2E46203AC21CDD9F0ED1989F7D964D46D7DA63444C9CADA82AF53E38873A5D3F68868CA4F65748210716658F2A841B3890E773A2623A59073F14A0F2F1B0893FDBE5BA72FC9609DB8E8A56A322E2B4178CE7B2022D741BD256303D926B48D5239B354F611C52B475C62351854D6E27C89231E7E7972C19C7D6F5BEB07D1A1FF827348DA862F422047A2DB7B591AE497578A4BA95CBECFB503F5DC04C0C6A946FFB515F2F0BDC4332F2674706F7C1908B681D8EE3667777092C06DC9CF00F98143F4A1350FCBAEBB5157A5473D33F51778987B35B1D48249A491EE8F8778DE6DC29131F708642884BED0B0D159E1EFE428D18D3631F13A593323F1659FE9E1A708115D2F131DCC3808CE016036FF1D0D9193CBEB2CD1C49F9973E0BCB09A2A9394E2F55CABFB253 |
368 | 20170715152910 2 6 100 8191 2 DDFBC1CD4FB7E30639422038F1FFBA2CD3EC3915F3C923282C6588F6EB218FF7B24870C0FE4B48213AB0948E101686FB7B0093ED467B6CA413EDD4B0BFE2155AEBC4DA3D2DD0C78DA9AD989A0E989010D6D5E86A123C169E126F97826EE5F602FF641FDF642A107E7538CB61740CBAF69F6C7DC5DD4DF28998AB61B8672F0B74A3A8DD7D165828D69DCC1BAE4D45F707C3894E040BCC0AF7AA810A6D5CB89276217EB7AFAFE4966D68C10318E8C8CB23CA593E8057F29FF9154908B11D6530E6352F9406C81D9DAC5C298979320B4E0DD89203A1F680C8084154D0439DB6C53EDAF6FCC0E8682EC99D345180120AEC810CBB0C2F1B6D1B660ACEAAD5996A5D184659B6A1F11456BA6A5E94D223959D8171C030499A9DB458702CB35CA7E7CD75D26FF5E94640AB8740ECE82559784BB6D5CB4D041D053629BD3F4178077F3F7E280296C46A3F0FBC37813A1AA221FBA2612F0CFE56450E9B1F2C2AE278EC7A7AAB66D61FA9749FE997EDC31131091620897014D33B2386B490CFD80656B7D2EB08C9DA9928798986996D60F74D766EB8988E2FF676E38C587E7A6651AA28BEB8BB56EBBD6E641E92309AEAA671A5F2EC72629442D2C3A4C2B8E4304DC71B342CD116527832078E6B53C1E0A72909615B408E17625F7259ACA98E46359448FC141F57B51A069B8A402AE3A87E10AE7E910F3916BAC6CE716C539E825A06626673DE7EBD899A3982FCC599791E7CA964C0D37BB076708C03DC7C022980974025C0EA9B72CC3D0A03E4626E030E9C857ECF6B3807AC9E8E0F72098C7E80DAA05BFF60394A8374096878F015597DD5B22E65646A7DDC87B5F6AE68594DF39B0BDB2675A32369AD81FD62033146B8DA6A801E918572CBC70DEBA9F70D088D69425733ACE0084E60E7FCB459A5B71F74F711184B1AEA240834D28D049474BB2E7ED1B17AA2B5EB7D274341456834320BE8FB245B1C2B84A096E7E40573FEB7C2997ED16C8C2C62409B8064398ED220FA82C59E53AD7E864C24473FCC7F017B897D5855F092A9428957467EFD93F67D3FA302C578328A9484CD0496CC83BEAC96504F9601DA2048D25BF43B5A69E46234A164D854B89DF1DEDC36F0304BA5FC035B27E782087C3EC0A81840A3EC042204C63F9698CC74A818428039B23664C409529C4EDD822DF77819805023795EE625D524F12824C1F1FE99546DF75107AFFF7D424C4C3FB3D0BDA2E9BC0D93603457FFE44FABEAB1E6B62223B201D42784731BEE11E0FF0BF29C930DAF913F974739800522E2B9C4094475A5F35AA92E2939E5719EB4EE19446ADC9ECC7EE6BAB5D264C9E74AB6DE856D541146048341EB51734A34E33EF8D929F645E23FD902CB5676DA9C84C9F46490710DC8CF2AA922252C3885CBD8D0CB1D176CAFEB46A625C56BE949F487C6E35E2CE481F024C889DB4248D3 | 368 | 20171219124324 2 6 100 8191 2 EE490FB8716A6562BB33AA7C81BBFDCF2BC4C7257F68FC888B014D4D06FF9501EDEC5B4B462DBA35A9C6E541F218CB4A44F6F9FC88F4B4CC522803FA78E320467D89DC594A89B9718278C390023E9A367EDC39614216835EC52511F0ABAD50A37B742603D8ECA51491AC9A0F61B8A0AE8C09831869F2BF140277A0DA761C57856191FB3D6BCA46D51AC32A52FA6012B8AF5531F1E361751EC530B502B9001CAD88C0E921D4F809CA97C06278C0503B17BAE6B082168C34AB558BAC649EC3A69D2D136804E89B4FC952AF03C5056A6CA50D130934CBA7FA852BB950328E6BA2BFCF86C7319C96E5AC7172B03A000D678E4734BF756645816DCFA5710D65F77B994C1D12000502CC31478258694CFEE378707F7111E7337A0EBBD8EA3E91459AEB73B310DEE37464DF317FB6BBBD6A4DB32B505F7F6D0D5A6C8BE439514BAA032CB41864647F64F18B414BA2A2BF7AEF787D1F84B2EFDF5935857C9A6167CA426109FEBA69EE58FEF126F3F98FBC46570EF50DD3F502044DBD580E5DCFD214DA8788B7104D4A77C4006AC153E704B395F061118D5898155A7BC758C13D6D9B381F40B1998FFBB520D78110956D7E01EB07F2AA4CE132C3CDE594E3FEF45F2FD2C6B8B2C75B8C232DEC3C82BDF494E846D8AD466F8F234FE2698C90B203C989F9EBE77DF2126CE4C765E19BCBC628F6B70FFEE9214B88E27CF989939EF396D513BDD2CA737EDB8C6845E5883D283445F3FB8F662F0CFC29F405A592C8C0D68575361B09BA4D1398D61B552D239F897D84B8D46A6E1B113D76AE9BABA8D5617B3ACC1A8F4AFBA8597BA96CF872A5AE48BE79A44771937D01D0EF76C99C1C99C7EE94DBDFE3FBA41B69DEC9F4B1858E3D4F488CAEA52692C9334ADB39A8FEDC815A1E4D7057AE7CF4BD2A67B02141F98306D4A67C759414F03AE3A9D2C0F1090B29C8833E3500ED05FF6175D29408D8DB6D0651AFC77142FA7F44114274C0575B4F2EAF27714B56F450DE6F02423B4BEDC090E91ECD92F5DF5B9D053E095149B069FB60D51BB700A188EABD493773B7BEBA99CA21E981BF14188926E5F2DB6348B8E85AE4E2D498F116C9A240567F71B9D86B8173A42BA29100F02322DE24241DF8333F7A7A2A8C71513B734BC7E35D25F469B27F9B0883E1B62E1C4FC60FC6EB4A1E9B1AD1DD26A8D64D27944577E8ABE51EA225B0FFE27B5592D6EA5FBAA81BE6E3657FBBE67D359D0D18622545E8C1093D542F31FEBD00E0C687BB66D6F4E8F3FA0AD435F303F1108CE3604FF199E5DBF7E7309EBECA4ADB0F2AED26B87E7B50C23F0AA8370EEABFEEF273B64EFAD3167D78689907C500FAB9AC160968BA738AC40B23F50BEAD01C6343D7B7190034C79FFDD250938A84E499D5583F5213287F495DF9008DB8A9A51DFEA454A8215683A53A6A5CE5BFDA0D827704203ABF9DA753 |
369 | 20170715213011 2 6 100 8191 2 DDFBC1CD4FB7E30639422038F1FFBA2CD3EC3915F3C923282C6588F6EB218FF7B24870C0FE4B48213AB0948E101686FB7B0093ED467B6CA413EDD4B0BFE2155AEBC4DA3D2DD0C78DA9AD989A0E989010D6D5E86A123C169E126F97826EE5F602FF641FDF642A107E7538CB61740CBAF69F6C7DC5DD4DF28998AB61B8672F0B74A3A8DD7D165828D69DCC1BAE4D45F707C3894E040BCC0AF7AA810A6D5CB89276217EB7AFAFE4966D68C10318E8C8CB23CA593E8057F29FF9154908B11D6530E6352F9406C81D9DAC5C298979320B4E0DD89203A1F680C8084154D0439DB6C53EDAF6FCC0E8682EC99D345180120AEC810CBB0C2F1B6D1B660ACEAAD5996A5D184659B6A1F11456BA6A5E94D223959D8171C030499A9DB458702CB35CA7E7CD75D26FF5E94640AB8740ECE82559784BB6D5CB4D041D053629BD3F4178077F3F7E280296C46A3F0FBC37813A1AA221FBA2612F0CFE56450E9B1F2C2AE278EC7A7AAB66D61FA9749FE997EDC31131091620897014D33B2386B490CFD80656B7D2EB08C9DA9928798986996D60F74D766EB8988E2FF676E38C587E7A6651AA28BEB8BB56EBBD6E641E92309AEAA671A5F2EC72629442D2C3A4C2B8E4304DC71B342CD116527832078E6B53C1E0A72909615B408E17625F7259ACA98E46359448FC141F57B51A069B8A402AE3A87E10AE7E910F3916BAC6CE716C539E825A06626673DE7EBD899A3982FCC599791E7CA964C0D37BB076708C03DC7C022980974025C0EA9B72CC3D0A03E4626E030E9C857ECF6B3807AC9E8E0F72098C7E80DAA05BFF60394A8374096878F015597DD5B22E65646A7DDC87B5F6AE68594DF39B0BDB2675A32369AD81FD62033146B8DA6A801E918572CBC70DEBA9F70D088D69425733ACE0084E60E7FCB459A5B71F74F711184B1AEA240834D28D049474BB2E7ED1B17AA2B5EB7D274341456834320BE8FB245B1C2B84A096E7E40573FEB7C2997ED16C8C2C62409B8064398ED220FA82C59E53AD7E864C24473FCC7F017B897D5855F092A9428957467EFD93F67D3FA302C578328A9484CD0496CC83BEAC96504F9601DA2048D25BF43B5A69E46234A164D854B89DF1DEDC36F0304BA5FC035B27E782087C3EC0A81840A3EC042204C63F9698CC74A818428039B23664C409529C4EDD822DF77819805023795EE625D524F12824C1F1FE99546DF75107AFFF7D424C4C3FB3D0BDA2E9BC0D93603457FFE44FABEAB1E6B62223B201D42784731BEE11E0FF0BF29C930DAF913F974739800522E2B9C4094475A5F35AA92E2939E5719EB4EE19446ADC9ECC7EE6BAB5D264C9E74AB6DE856D541146048341EB51734A34E33EF8D929F645E23FD902CB5676DA9C84C9F46490710DC8CF2AA922252C3885CBD8D0CB1D176CAFEB46A625C56BE949F487C6E35E2CE481F024C889DF38680B | 369 | 20171220012557 2 6 100 8191 5 EE490FB8716A6562BB33AA7C81BBFDCF2BC4C7257F68FC888B014D4D06FF9501EDEC5B4B462DBA35A9C6E541F218CB4A44F6F9FC88F4B4CC522803FA78E320467D89DC594A89B9718278C390023E9A367EDC39614216835EC52511F0ABAD50A37B742603D8ECA51491AC9A0F61B8A0AE8C09831869F2BF140277A0DA761C57856191FB3D6BCA46D51AC32A52FA6012B8AF5531F1E361751EC530B502B9001CAD88C0E921D4F809CA97C06278C0503B17BAE6B082168C34AB558BAC649EC3A69D2D136804E89B4FC952AF03C5056A6CA50D130934CBA7FA852BB950328E6BA2BFCF86C7319C96E5AC7172B03A000D678E4734BF756645816DCFA5710D65F77B994C1D12000502CC31478258694CFEE378707F7111E7337A0EBBD8EA3E91459AEB73B310DEE37464DF317FB6BBBD6A4DB32B505F7F6D0D5A6C8BE439514BAA032CB41864647F64F18B414BA2A2BF7AEF787D1F84B2EFDF5935857C9A6167CA426109FEBA69EE58FEF126F3F98FBC46570EF50DD3F502044DBD580E5DCFD214DA8788B7104D4A77C4006AC153E704B395F061118D5898155A7BC758C13D6D9B381F40B1998FFBB520D78110956D7E01EB07F2AA4CE132C3CDE594E3FEF45F2FD2C6B8B2C75B8C232DEC3C82BDF494E846D8AD466F8F234FE2698C90B203C989F9EBE77DF2126CE4C765E19BCBC628F6B70FFEE9214B88E27CF989939EF396D513BDD2CA737EDB8C6845E5883D283445F3FB8F662F0CFC29F405A592C8C0D68575361B09BA4D1398D61B552D239F897D84B8D46A6E1B113D76AE9BABA8D5617B3ACC1A8F4AFBA8597BA96CF872A5AE48BE79A44771937D01D0EF76C99C1C99C7EE94DBDFE3FBA41B69DEC9F4B1858E3D4F488CAEA52692C9334ADB39A8FEDC815A1E4D7057AE7CF4BD2A67B02141F98306D4A67C759414F03AE3A9D2C0F1090B29C8833E3500ED05FF6175D29408D8DB6D0651AFC77142FA7F44114274C0575B4F2EAF27714B56F450DE6F02423B4BEDC090E91ECD92F5DF5B9D053E095149B069FB60D51BB700A188EABD493773B7BEBA99CA21E981BF14188926E5F2DB6348B8E85AE4E2D498F116C9A240567F71B9D86B8173A42BA29100F02322DE24241DF8333F7A7A2A8C71513B734BC7E35D25F469B27F9B0883E1B62E1C4FC60FC6EB4A1E9B1AD1DD26A8D64D27944577E8ABE51EA225B0FFE27B5592D6EA5FBAA81BE6E3657FBBE67D359D0D18622545E8C1093D542F31FEBD00E0C687BB66D6F4E8F3FA0AD435F303F1108CE3604FF199E5DBF7E7309EBECA4ADB0F2AED26B87E7B50C23F0AA8370EEABFEEF273B64EFAD3167D78689907C500FAB9AC160968BA738AC40B23F50BEAD01C6343D7B7190034C79FFDD250938A84E499D5583F5213287F495DF9008DB8A9A51DFEA454A8215683A53A6A5CE5BFDA0D827704203AC87B0257 |
370 | 20170716095854 2 6 100 8191 5 DDFBC1CD4FB7E30639422038F1FFBA2CD3EC3915F3C923282C6588F6EB218FF7B24870C0FE4B48213AB0948E101686FB7B0093ED467B6CA413EDD4B0BFE2155AEBC4DA3D2DD0C78DA9AD989A0E989010D6D5E86A123C169E126F97826EE5F602FF641FDF642A107E7538CB61740CBAF69F6C7DC5DD4DF28998AB61B8672F0B74A3A8DD7D165828D69DCC1BAE4D45F707C3894E040BCC0AF7AA810A6D5CB89276217EB7AFAFE4966D68C10318E8C8CB23CA593E8057F29FF9154908B11D6530E6352F9406C81D9DAC5C298979320B4E0DD89203A1F680C8084154D0439DB6C53EDAF6FCC0E8682EC99D345180120AEC810CBB0C2F1B6D1B660ACEAAD5996A5D184659B6A1F11456BA6A5E94D223959D8171C030499A9DB458702CB35CA7E7CD75D26FF5E94640AB8740ECE82559784BB6D5CB4D041D053629BD3F4178077F3F7E280296C46A3F0FBC37813A1AA221FBA2612F0CFE56450E9B1F2C2AE278EC7A7AAB66D61FA9749FE997EDC31131091620897014D33B2386B490CFD80656B7D2EB08C9DA9928798986996D60F74D766EB8988E2FF676E38C587E7A6651AA28BEB8BB56EBBD6E641E92309AEAA671A5F2EC72629442D2C3A4C2B8E4304DC71B342CD116527832078E6B53C1E0A72909615B408E17625F7259ACA98E46359448FC141F57B51A069B8A402AE3A87E10AE7E910F3916BAC6CE716C539E825A06626673DE7EBD899A3982FCC599791E7CA964C0D37BB076708C03DC7C022980974025C0EA9B72CC3D0A03E4626E030E9C857ECF6B3807AC9E8E0F72098C7E80DAA05BFF60394A8374096878F015597DD5B22E65646A7DDC87B5F6AE68594DF39B0BDB2675A32369AD81FD62033146B8DA6A801E918572CBC70DEBA9F70D088D69425733ACE0084E60E7FCB459A5B71F74F711184B1AEA240834D28D049474BB2E7ED1B17AA2B5EB7D274341456834320BE8FB245B1C2B84A096E7E40573FEB7C2997ED16C8C2C62409B8064398ED220FA82C59E53AD7E864C24473FCC7F017B897D5855F092A9428957467EFD93F67D3FA302C578328A9484CD0496CC83BEAC96504F9601DA2048D25BF43B5A69E46234A164D854B89DF1DEDC36F0304BA5FC035B27E782087C3EC0A81840A3EC042204C63F9698CC74A818428039B23664C409529C4EDD822DF77819805023795EE625D524F12824C1F1FE99546DF75107AFFF7D424C4C3FB3D0BDA2E9BC0D93603457FFE44FABEAB1E6B62223B201D42784731BEE11E0FF0BF29C930DAF913F974739800522E2B9C4094475A5F35AA92E2939E5719EB4EE19446ADC9ECC7EE6BAB5D264C9E74AB6DE856D541146048341EB51734A34E33EF8D929F645E23FD902CB5676DA9C84C9F46490710DC8CF2AA922252C3885CBD8D0CB1D176CAFEB46A625C56BE949F487C6E35E2CE481F024C889E75F9737 | 370 | 20171220113159 2 6 100 8191 5 EE490FB8716A6562BB33AA7C81BBFDCF2BC4C7257F68FC888B014D4D06FF9501EDEC5B4B462DBA35A9C6E541F218CB4A44F6F9FC88F4B4CC522803FA78E320467D89DC594A89B9718278C390023E9A367EDC39614216835EC52511F0ABAD50A37B742603D8ECA51491AC9A0F61B8A0AE8C09831869F2BF140277A0DA761C57856191FB3D6BCA46D51AC32A52FA6012B8AF5531F1E361751EC530B502B9001CAD88C0E921D4F809CA97C06278C0503B17BAE6B082168C34AB558BAC649EC3A69D2D136804E89B4FC952AF03C5056A6CA50D130934CBA7FA852BB950328E6BA2BFCF86C7319C96E5AC7172B03A000D678E4734BF756645816DCFA5710D65F77B994C1D12000502CC31478258694CFEE378707F7111E7337A0EBBD8EA3E91459AEB73B310DEE37464DF317FB6BBBD6A4DB32B505F7F6D0D5A6C8BE439514BAA032CB41864647F64F18B414BA2A2BF7AEF787D1F84B2EFDF5935857C9A6167CA426109FEBA69EE58FEF126F3F98FBC46570EF50DD3F502044DBD580E5DCFD214DA8788B7104D4A77C4006AC153E704B395F061118D5898155A7BC758C13D6D9B381F40B1998FFBB520D78110956D7E01EB07F2AA4CE132C3CDE594E3FEF45F2FD2C6B8B2C75B8C232DEC3C82BDF494E846D8AD466F8F234FE2698C90B203C989F9EBE77DF2126CE4C765E19BCBC628F6B70FFEE9214B88E27CF989939EF396D513BDD2CA737EDB8C6845E5883D283445F3FB8F662F0CFC29F405A592C8C0D68575361B09BA4D1398D61B552D239F897D84B8D46A6E1B113D76AE9BABA8D5617B3ACC1A8F4AFBA8597BA96CF872A5AE48BE79A44771937D01D0EF76C99C1C99C7EE94DBDFE3FBA41B69DEC9F4B1858E3D4F488CAEA52692C9334ADB39A8FEDC815A1E4D7057AE7CF4BD2A67B02141F98306D4A67C759414F03AE3A9D2C0F1090B29C8833E3500ED05FF6175D29408D8DB6D0651AFC77142FA7F44114274C0575B4F2EAF27714B56F450DE6F02423B4BEDC090E91ECD92F5DF5B9D053E095149B069FB60D51BB700A188EABD493773B7BEBA99CA21E981BF14188926E5F2DB6348B8E85AE4E2D498F116C9A240567F71B9D86B8173A42BA29100F02322DE24241DF8333F7A7A2A8C71513B734BC7E35D25F469B27F9B0883E1B62E1C4FC60FC6EB4A1E9B1AD1DD26A8D64D27944577E8ABE51EA225B0FFE27B5592D6EA5FBAA81BE6E3657FBBE67D359D0D18622545E8C1093D542F31FEBD00E0C687BB66D6F4E8F3FA0AD435F303F1108CE3604FF199E5DBF7E7309EBECA4ADB0F2AED26B87E7B50C23F0AA8370EEABFEEF273B64EFAD3167D78689907C500FAB9AC160968BA738AC40B23F50BEAD01C6343D7B7190034C79FFDD250938A84E499D5583F5213287F495DF9008DB8A9A51DFEA454A8215683A53A6A5CE5BFDA0D827704203ACF6BF797 |
371 | 20170716115603 2 6 100 8191 5 DDFBC1CD4FB7E30639422038F1FFBA2CD3EC3915F3C923282C6588F6EB218FF7B24870C0FE4B48213AB0948E101686FB7B0093ED467B6CA413EDD4B0BFE2155AEBC4DA3D2DD0C78DA9AD989A0E989010D6D5E86A123C169E126F97826EE5F602FF641FDF642A107E7538CB61740CBAF69F6C7DC5DD4DF28998AB61B8672F0B74A3A8DD7D165828D69DCC1BAE4D45F707C3894E040BCC0AF7AA810A6D5CB89276217EB7AFAFE4966D68C10318E8C8CB23CA593E8057F29FF9154908B11D6530E6352F9406C81D9DAC5C298979320B4E0DD89203A1F680C8084154D0439DB6C53EDAF6FCC0E8682EC99D345180120AEC810CBB0C2F1B6D1B660ACEAAD5996A5D184659B6A1F11456BA6A5E94D223959D8171C030499A9DB458702CB35CA7E7CD75D26FF5E94640AB8740ECE82559784BB6D5CB4D041D053629BD3F4178077F3F7E280296C46A3F0FBC37813A1AA221FBA2612F0CFE56450E9B1F2C2AE278EC7A7AAB66D61FA9749FE997EDC31131091620897014D33B2386B490CFD80656B7D2EB08C9DA9928798986996D60F74D766EB8988E2FF676E38C587E7A6651AA28BEB8BB56EBBD6E641E92309AEAA671A5F2EC72629442D2C3A4C2B8E4304DC71B342CD116527832078E6B53C1E0A72909615B408E17625F7259ACA98E46359448FC141F57B51A069B8A402AE3A87E10AE7E910F3916BAC6CE716C539E825A06626673DE7EBD899A3982FCC599791E7CA964C0D37BB076708C03DC7C022980974025C0EA9B72CC3D0A03E4626E030E9C857ECF6B3807AC9E8E0F72098C7E80DAA05BFF60394A8374096878F015597DD5B22E65646A7DDC87B5F6AE68594DF39B0BDB2675A32369AD81FD62033146B8DA6A801E918572CBC70DEBA9F70D088D69425733ACE0084E60E7FCB459A5B71F74F711184B1AEA240834D28D049474BB2E7ED1B17AA2B5EB7D274341456834320BE8FB245B1C2B84A096E7E40573FEB7C2997ED16C8C2C62409B8064398ED220FA82C59E53AD7E864C24473FCC7F017B897D5855F092A9428957467EFD93F67D3FA302C578328A9484CD0496CC83BEAC96504F9601DA2048D25BF43B5A69E46234A164D854B89DF1DEDC36F0304BA5FC035B27E782087C3EC0A81840A3EC042204C63F9698CC74A818428039B23664C409529C4EDD822DF77819805023795EE625D524F12824C1F1FE99546DF75107AFFF7D424C4C3FB3D0BDA2E9BC0D93603457FFE44FABEAB1E6B62223B201D42784731BEE11E0FF0BF29C930DAF913F974739800522E2B9C4094475A5F35AA92E2939E5719EB4EE19446ADC9ECC7EE6BAB5D264C9E74AB6DE856D541146048341EB51734A34E33EF8D929F645E23FD902CB5676DA9C84C9F46490710DC8CF2AA922252C3885CBD8D0CB1D176CAFEB46A625C56BE949F487C6E35E2CE481F024C889E896321F | 371 | 20171220172848 2 6 100 8191 2 EE490FB8716A6562BB33AA7C81BBFDCF2BC4C7257F68FC888B014D4D06FF9501EDEC5B4B462DBA35A9C6E541F218CB4A44F6F9FC88F4B4CC522803FA78E320467D89DC594A89B9718278C390023E9A367EDC39614216835EC52511F0ABAD50A37B742603D8ECA51491AC9A0F61B8A0AE8C09831869F2BF140277A0DA761C57856191FB3D6BCA46D51AC32A52FA6012B8AF5531F1E361751EC530B502B9001CAD88C0E921D4F809CA97C06278C0503B17BAE6B082168C34AB558BAC649EC3A69D2D136804E89B4FC952AF03C5056A6CA50D130934CBA7FA852BB950328E6BA2BFCF86C7319C96E5AC7172B03A000D678E4734BF756645816DCFA5710D65F77B994C1D12000502CC31478258694CFEE378707F7111E7337A0EBBD8EA3E91459AEB73B310DEE37464DF317FB6BBBD6A4DB32B505F7F6D0D5A6C8BE439514BAA032CB41864647F64F18B414BA2A2BF7AEF787D1F84B2EFDF5935857C9A6167CA426109FEBA69EE58FEF126F3F98FBC46570EF50DD3F502044DBD580E5DCFD214DA8788B7104D4A77C4006AC153E704B395F061118D5898155A7BC758C13D6D9B381F40B1998FFBB520D78110956D7E01EB07F2AA4CE132C3CDE594E3FEF45F2FD2C6B8B2C75B8C232DEC3C82BDF494E846D8AD466F8F234FE2698C90B203C989F9EBE77DF2126CE4C765E19BCBC628F6B70FFEE9214B88E27CF989939EF396D513BDD2CA737EDB8C6845E5883D283445F3FB8F662F0CFC29F405A592C8C0D68575361B09BA4D1398D61B552D239F897D84B8D46A6E1B113D76AE9BABA8D5617B3ACC1A8F4AFBA8597BA96CF872A5AE48BE79A44771937D01D0EF76C99C1C99C7EE94DBDFE3FBA41B69DEC9F4B1858E3D4F488CAEA52692C9334ADB39A8FEDC815A1E4D7057AE7CF4BD2A67B02141F98306D4A67C759414F03AE3A9D2C0F1090B29C8833E3500ED05FF6175D29408D8DB6D0651AFC77142FA7F44114274C0575B4F2EAF27714B56F450DE6F02423B4BEDC090E91ECD92F5DF5B9D053E095149B069FB60D51BB700A188EABD493773B7BEBA99CA21E981BF14188926E5F2DB6348B8E85AE4E2D498F116C9A240567F71B9D86B8173A42BA29100F02322DE24241DF8333F7A7A2A8C71513B734BC7E35D25F469B27F9B0883E1B62E1C4FC60FC6EB4A1E9B1AD1DD26A8D64D27944577E8ABE51EA225B0FFE27B5592D6EA5FBAA81BE6E3657FBBE67D359D0D18622545E8C1093D542F31FEBD00E0C687BB66D6F4E8F3FA0AD435F303F1108CE3604FF199E5DBF7E7309EBECA4ADB0F2AED26B87E7B50C23F0AA8370EEABFEEF273B64EFAD3167D78689907C500FAB9AC160968BA738AC40B23F50BEAD01C6343D7B7190034C79FFDD250938A84E499D5583F5213287F495DF9008DB8A9A51DFEA454A8215683A53A6A5CE5BFDA0D827704203AD382D913 |
372 | 20170717072754 2 6 100 8191 5 DDFBC1CD4FB7E30639422038F1FFBA2CD3EC3915F3C923282C6588F6EB218FF7B24870C0FE4B48213AB0948E101686FB7B0093ED467B6CA413EDD4B0BFE2155AEBC4DA3D2DD0C78DA9AD989A0E989010D6D5E86A123C169E126F97826EE5F602FF641FDF642A107E7538CB61740CBAF69F6C7DC5DD4DF28998AB61B8672F0B74A3A8DD7D165828D69DCC1BAE4D45F707C3894E040BCC0AF7AA810A6D5CB89276217EB7AFAFE4966D68C10318E8C8CB23CA593E8057F29FF9154908B11D6530E6352F9406C81D9DAC5C298979320B4E0DD89203A1F680C8084154D0439DB6C53EDAF6FCC0E8682EC99D345180120AEC810CBB0C2F1B6D1B660ACEAAD5996A5D184659B6A1F11456BA6A5E94D223959D8171C030499A9DB458702CB35CA7E7CD75D26FF5E94640AB8740ECE82559784BB6D5CB4D041D053629BD3F4178077F3F7E280296C46A3F0FBC37813A1AA221FBA2612F0CFE56450E9B1F2C2AE278EC7A7AAB66D61FA9749FE997EDC31131091620897014D33B2386B490CFD80656B7D2EB08C9DA9928798986996D60F74D766EB8988E2FF676E38C587E7A6651AA28BEB8BB56EBBD6E641E92309AEAA671A5F2EC72629442D2C3A4C2B8E4304DC71B342CD116527832078E6B53C1E0A72909615B408E17625F7259ACA98E46359448FC141F57B51A069B8A402AE3A87E10AE7E910F3916BAC6CE716C539E825A06626673DE7EBD899A3982FCC599791E7CA964C0D37BB076708C03DC7C022980974025C0EA9B72CC3D0A03E4626E030E9C857ECF6B3807AC9E8E0F72098C7E80DAA05BFF60394A8374096878F015597DD5B22E65646A7DDC87B5F6AE68594DF39B0BDB2675A32369AD81FD62033146B8DA6A801E918572CBC70DEBA9F70D088D69425733ACE0084E60E7FCB459A5B71F74F711184B1AEA240834D28D049474BB2E7ED1B17AA2B5EB7D274341456834320BE8FB245B1C2B84A096E7E40573FEB7C2997ED16C8C2C62409B8064398ED220FA82C59E53AD7E864C24473FCC7F017B897D5855F092A9428957467EFD93F67D3FA302C578328A9484CD0496CC83BEAC96504F9601DA2048D25BF43B5A69E46234A164D854B89DF1DEDC36F0304BA5FC035B27E782087C3EC0A81840A3EC042204C63F9698CC74A818428039B23664C409529C4EDD822DF77819805023795EE625D524F12824C1F1FE99546DF75107AFFF7D424C4C3FB3D0BDA2E9BC0D93603457FFE44FABEAB1E6B62223B201D42784731BEE11E0FF0BF29C930DAF913F974739800522E2B9C4094475A5F35AA92E2939E5719EB4EE19446ADC9ECC7EE6BAB5D264C9E74AB6DE856D541146048341EB51734A34E33EF8D929F645E23FD902CB5676DA9C84C9F46490710DC8CF2AA922252C3885CBD8D0CB1D176CAFEB46A625C56BE949F487C6E35E2CE481F024C889F528B29F | 372 | 20171220184955 2 6 100 8191 5 EE490FB8716A6562BB33AA7C81BBFDCF2BC4C7257F68FC888B014D4D06FF9501EDEC5B4B462DBA35A9C6E541F218CB4A44F6F9FC88F4B4CC522803FA78E320467D89DC594A89B9718278C390023E9A367EDC39614216835EC52511F0ABAD50A37B742603D8ECA51491AC9A0F61B8A0AE8C09831869F2BF140277A0DA761C57856191FB3D6BCA46D51AC32A52FA6012B8AF5531F1E361751EC530B502B9001CAD88C0E921D4F809CA97C06278C0503B17BAE6B082168C34AB558BAC649EC3A69D2D136804E89B4FC952AF03C5056A6CA50D130934CBA7FA852BB950328E6BA2BFCF86C7319C96E5AC7172B03A000D678E4734BF756645816DCFA5710D65F77B994C1D12000502CC31478258694CFEE378707F7111E7337A0EBBD8EA3E91459AEB73B310DEE37464DF317FB6BBBD6A4DB32B505F7F6D0D5A6C8BE439514BAA032CB41864647F64F18B414BA2A2BF7AEF787D1F84B2EFDF5935857C9A6167CA426109FEBA69EE58FEF126F3F98FBC46570EF50DD3F502044DBD580E5DCFD214DA8788B7104D4A77C4006AC153E704B395F061118D5898155A7BC758C13D6D9B381F40B1998FFBB520D78110956D7E01EB07F2AA4CE132C3CDE594E3FEF45F2FD2C6B8B2C75B8C232DEC3C82BDF494E846D8AD466F8F234FE2698C90B203C989F9EBE77DF2126CE4C765E19BCBC628F6B70FFEE9214B88E27CF989939EF396D513BDD2CA737EDB8C6845E5883D283445F3FB8F662F0CFC29F405A592C8C0D68575361B09BA4D1398D61B552D239F897D84B8D46A6E1B113D76AE9BABA8D5617B3ACC1A8F4AFBA8597BA96CF872A5AE48BE79A44771937D01D0EF76C99C1C99C7EE94DBDFE3FBA41B69DEC9F4B1858E3D4F488CAEA52692C9334ADB39A8FEDC815A1E4D7057AE7CF4BD2A67B02141F98306D4A67C759414F03AE3A9D2C0F1090B29C8833E3500ED05FF6175D29408D8DB6D0651AFC77142FA7F44114274C0575B4F2EAF27714B56F450DE6F02423B4BEDC090E91ECD92F5DF5B9D053E095149B069FB60D51BB700A188EABD493773B7BEBA99CA21E981BF14188926E5F2DB6348B8E85AE4E2D498F116C9A240567F71B9D86B8173A42BA29100F02322DE24241DF8333F7A7A2A8C71513B734BC7E35D25F469B27F9B0883E1B62E1C4FC60FC6EB4A1E9B1AD1DD26A8D64D27944577E8ABE51EA225B0FFE27B5592D6EA5FBAA81BE6E3657FBBE67D359D0D18622545E8C1093D542F31FEBD00E0C687BB66D6F4E8F3FA0AD435F303F1108CE3604FF199E5DBF7E7309EBECA4ADB0F2AED26B87E7B50C23F0AA8370EEABFEEF273B64EFAD3167D78689907C500FAB9AC160968BA738AC40B23F50BEAD01C6343D7B7190034C79FFDD250938A84E499D5583F5213287F495DF9008DB8A9A51DFEA454A8215683A53A6A5CE5BFDA0D827704203AD4620FCF |
373 | 20170718103850 2 6 100 8191 5 DDFBC1CD4FB7E30639422038F1FFBA2CD3EC3915F3C923282C6588F6EB218FF7B24870C0FE4B48213AB0948E101686FB7B0093ED467B6CA413EDD4B0BFE2155AEBC4DA3D2DD0C78DA9AD989A0E989010D6D5E86A123C169E126F97826EE5F602FF641FDF642A107E7538CB61740CBAF69F6C7DC5DD4DF28998AB61B8672F0B74A3A8DD7D165828D69DCC1BAE4D45F707C3894E040BCC0AF7AA810A6D5CB89276217EB7AFAFE4966D68C10318E8C8CB23CA593E8057F29FF9154908B11D6530E6352F9406C81D9DAC5C298979320B4E0DD89203A1F680C8084154D0439DB6C53EDAF6FCC0E8682EC99D345180120AEC810CBB0C2F1B6D1B660ACEAAD5996A5D184659B6A1F11456BA6A5E94D223959D8171C030499A9DB458702CB35CA7E7CD75D26FF5E94640AB8740ECE82559784BB6D5CB4D041D053629BD3F4178077F3F7E280296C46A3F0FBC37813A1AA221FBA2612F0CFE56450E9B1F2C2AE278EC7A7AAB66D61FA9749FE997EDC31131091620897014D33B2386B490CFD80656B7D2EB08C9DA9928798986996D60F74D766EB8988E2FF676E38C587E7A6651AA28BEB8BB56EBBD6E641E92309AEAA671A5F2EC72629442D2C3A4C2B8E4304DC71B342CD116527832078E6B53C1E0A72909615B408E17625F7259ACA98E46359448FC141F57B51A069B8A402AE3A87E10AE7E910F3916BAC6CE716C539E825A06626673DE7EBD899A3982FCC599791E7CA964C0D37BB076708C03DC7C022980974025C0EA9B72CC3D0A03E4626E030E9C857ECF6B3807AC9E8E0F72098C7E80DAA05BFF60394A8374096878F015597DD5B22E65646A7DDC87B5F6AE68594DF39B0BDB2675A32369AD81FD62033146B8DA6A801E918572CBC70DEBA9F70D088D69425733ACE0084E60E7FCB459A5B71F74F711184B1AEA240834D28D049474BB2E7ED1B17AA2B5EB7D274341456834320BE8FB245B1C2B84A096E7E40573FEB7C2997ED16C8C2C62409B8064398ED220FA82C59E53AD7E864C24473FCC7F017B897D5855F092A9428957467EFD93F67D3FA302C578328A9484CD0496CC83BEAC96504F9601DA2048D25BF43B5A69E46234A164D854B89DF1DEDC36F0304BA5FC035B27E782087C3EC0A81840A3EC042204C63F9698CC74A818428039B23664C409529C4EDD822DF77819805023795EE625D524F12824C1F1FE99546DF75107AFFF7D424C4C3FB3D0BDA2E9BC0D93603457FFE44FABEAB1E6B62223B201D42784731BEE11E0FF0BF29C930DAF913F974739800522E2B9C4094475A5F35AA92E2939E5719EB4EE19446ADC9ECC7EE6BAB5D264C9E74AB6DE856D541146048341EB51734A34E33EF8D929F645E23FD902CB5676DA9C84C9F46490710DC8CF2AA922252C3885CBD8D0CB1D176CAFEB46A625C56BE949F487C6E35E2CE481F024C889FB304F4F | 373 | 20171220232754 2 6 100 8191 5 EE490FB8716A6562BB33AA7C81BBFDCF2BC4C7257F68FC888B014D4D06FF9501EDEC5B4B462DBA35A9C6E541F218CB4A44F6F9FC88F4B4CC522803FA78E320467D89DC594A89B9718278C390023E9A367EDC39614216835EC52511F0ABAD50A37B742603D8ECA51491AC9A0F61B8A0AE8C09831869F2BF140277A0DA761C57856191FB3D6BCA46D51AC32A52FA6012B8AF5531F1E361751EC530B502B9001CAD88C0E921D4F809CA97C06278C0503B17BAE6B082168C34AB558BAC649EC3A69D2D136804E89B4FC952AF03C5056A6CA50D130934CBA7FA852BB950328E6BA2BFCF86C7319C96E5AC7172B03A000D678E4734BF756645816DCFA5710D65F77B994C1D12000502CC31478258694CFEE378707F7111E7337A0EBBD8EA3E91459AEB73B310DEE37464DF317FB6BBBD6A4DB32B505F7F6D0D5A6C8BE439514BAA032CB41864647F64F18B414BA2A2BF7AEF787D1F84B2EFDF5935857C9A6167CA426109FEBA69EE58FEF126F3F98FBC46570EF50DD3F502044DBD580E5DCFD214DA8788B7104D4A77C4006AC153E704B395F061118D5898155A7BC758C13D6D9B381F40B1998FFBB520D78110956D7E01EB07F2AA4CE132C3CDE594E3FEF45F2FD2C6B8B2C75B8C232DEC3C82BDF494E846D8AD466F8F234FE2698C90B203C989F9EBE77DF2126CE4C765E19BCBC628F6B70FFEE9214B88E27CF989939EF396D513BDD2CA737EDB8C6845E5883D283445F3FB8F662F0CFC29F405A592C8C0D68575361B09BA4D1398D61B552D239F897D84B8D46A6E1B113D76AE9BABA8D5617B3ACC1A8F4AFBA8597BA96CF872A5AE48BE79A44771937D01D0EF76C99C1C99C7EE94DBDFE3FBA41B69DEC9F4B1858E3D4F488CAEA52692C9334ADB39A8FEDC815A1E4D7057AE7CF4BD2A67B02141F98306D4A67C759414F03AE3A9D2C0F1090B29C8833E3500ED05FF6175D29408D8DB6D0651AFC77142FA7F44114274C0575B4F2EAF27714B56F450DE6F02423B4BEDC090E91ECD92F5DF5B9D053E095149B069FB60D51BB700A188EABD493773B7BEBA99CA21E981BF14188926E5F2DB6348B8E85AE4E2D498F116C9A240567F71B9D86B8173A42BA29100F02322DE24241DF8333F7A7A2A8C71513B734BC7E35D25F469B27F9B0883E1B62E1C4FC60FC6EB4A1E9B1AD1DD26A8D64D27944577E8ABE51EA225B0FFE27B5592D6EA5FBAA81BE6E3657FBBE67D359D0D18622545E8C1093D542F31FEBD00E0C687BB66D6F4E8F3FA0AD435F303F1108CE3604FF199E5DBF7E7309EBECA4ADB0F2AED26B87E7B50C23F0AA8370EEABFEEF273B64EFAD3167D78689907C500FAB9AC160968BA738AC40B23F50BEAD01C6343D7B7190034C79FFDD250938A84E499D5583F5213287F495DF9008DB8A9A51DFEA454A8215683A53A6A5CE5BFDA0D827704203AD788C3AF |
374 | 20170718123146 2 6 100 8191 5 DDFBC1CD4FB7E30639422038F1FFBA2CD3EC3915F3C923282C6588F6EB218FF7B24870C0FE4B48213AB0948E101686FB7B0093ED467B6CA413EDD4B0BFE2155AEBC4DA3D2DD0C78DA9AD989A0E989010D6D5E86A123C169E126F97826EE5F602FF641FDF642A107E7538CB61740CBAF69F6C7DC5DD4DF28998AB61B8672F0B74A3A8DD7D165828D69DCC1BAE4D45F707C3894E040BCC0AF7AA810A6D5CB89276217EB7AFAFE4966D68C10318E8C8CB23CA593E8057F29FF9154908B11D6530E6352F9406C81D9DAC5C298979320B4E0DD89203A1F680C8084154D0439DB6C53EDAF6FCC0E8682EC99D345180120AEC810CBB0C2F1B6D1B660ACEAAD5996A5D184659B6A1F11456BA6A5E94D223959D8171C030499A9DB458702CB35CA7E7CD75D26FF5E94640AB8740ECE82559784BB6D5CB4D041D053629BD3F4178077F3F7E280296C46A3F0FBC37813A1AA221FBA2612F0CFE56450E9B1F2C2AE278EC7A7AAB66D61FA9749FE997EDC31131091620897014D33B2386B490CFD80656B7D2EB08C9DA9928798986996D60F74D766EB8988E2FF676E38C587E7A6651AA28BEB8BB56EBBD6E641E92309AEAA671A5F2EC72629442D2C3A4C2B8E4304DC71B342CD116527832078E6B53C1E0A72909615B408E17625F7259ACA98E46359448FC141F57B51A069B8A402AE3A87E10AE7E910F3916BAC6CE716C539E825A06626673DE7EBD899A3982FCC599791E7CA964C0D37BB076708C03DC7C022980974025C0EA9B72CC3D0A03E4626E030E9C857ECF6B3807AC9E8E0F72098C7E80DAA05BFF60394A8374096878F015597DD5B22E65646A7DDC87B5F6AE68594DF39B0BDB2675A32369AD81FD62033146B8DA6A801E918572CBC70DEBA9F70D088D69425733ACE0084E60E7FCB459A5B71F74F711184B1AEA240834D28D049474BB2E7ED1B17AA2B5EB7D274341456834320BE8FB245B1C2B84A096E7E40573FEB7C2997ED16C8C2C62409B8064398ED220FA82C59E53AD7E864C24473FCC7F017B897D5855F092A9428957467EFD93F67D3FA302C578328A9484CD0496CC83BEAC96504F9601DA2048D25BF43B5A69E46234A164D854B89DF1DEDC36F0304BA5FC035B27E782087C3EC0A81840A3EC042204C63F9698CC74A818428039B23664C409529C4EDD822DF77819805023795EE625D524F12824C1F1FE99546DF75107AFFF7D424C4C3FB3D0BDA2E9BC0D93603457FFE44FABEAB1E6B62223B201D42784731BEE11E0FF0BF29C930DAF913F974739800522E2B9C4094475A5F35AA92E2939E5719EB4EE19446ADC9ECC7EE6BAB5D264C9E74AB6DE856D541146048341EB51734A34E33EF8D929F645E23FD902CB5676DA9C84C9F46490710DC8CF2AA922252C3885CBD8D0CB1D176CAFEB46A625C56BE949F487C6E35E2CE481F024C889FC58729F | 374 | 20171221050933 2 6 100 8191 5 EE490FB8716A6562BB33AA7C81BBFDCF2BC4C7257F68FC888B014D4D06FF9501EDEC5B4B462DBA35A9C6E541F218CB4A44F6F9FC88F4B4CC522803FA78E320467D89DC594A89B9718278C390023E9A367EDC39614216835EC52511F0ABAD50A37B742603D8ECA51491AC9A0F61B8A0AE8C09831869F2BF140277A0DA761C57856191FB3D6BCA46D51AC32A52FA6012B8AF5531F1E361751EC530B502B9001CAD88C0E921D4F809CA97C06278C0503B17BAE6B082168C34AB558BAC649EC3A69D2D136804E89B4FC952AF03C5056A6CA50D130934CBA7FA852BB950328E6BA2BFCF86C7319C96E5AC7172B03A000D678E4734BF756645816DCFA5710D65F77B994C1D12000502CC31478258694CFEE378707F7111E7337A0EBBD8EA3E91459AEB73B310DEE37464DF317FB6BBBD6A4DB32B505F7F6D0D5A6C8BE439514BAA032CB41864647F64F18B414BA2A2BF7AEF787D1F84B2EFDF5935857C9A6167CA426109FEBA69EE58FEF126F3F98FBC46570EF50DD3F502044DBD580E5DCFD214DA8788B7104D4A77C4006AC153E704B395F061118D5898155A7BC758C13D6D9B381F40B1998FFBB520D78110956D7E01EB07F2AA4CE132C3CDE594E3FEF45F2FD2C6B8B2C75B8C232DEC3C82BDF494E846D8AD466F8F234FE2698C90B203C989F9EBE77DF2126CE4C765E19BCBC628F6B70FFEE9214B88E27CF989939EF396D513BDD2CA737EDB8C6845E5883D283445F3FB8F662F0CFC29F405A592C8C0D68575361B09BA4D1398D61B552D239F897D84B8D46A6E1B113D76AE9BABA8D5617B3ACC1A8F4AFBA8597BA96CF872A5AE48BE79A44771937D01D0EF76C99C1C99C7EE94DBDFE3FBA41B69DEC9F4B1858E3D4F488CAEA52692C9334ADB39A8FEDC815A1E4D7057AE7CF4BD2A67B02141F98306D4A67C759414F03AE3A9D2C0F1090B29C8833E3500ED05FF6175D29408D8DB6D0651AFC77142FA7F44114274C0575B4F2EAF27714B56F450DE6F02423B4BEDC090E91ECD92F5DF5B9D053E095149B069FB60D51BB700A188EABD493773B7BEBA99CA21E981BF14188926E5F2DB6348B8E85AE4E2D498F116C9A240567F71B9D86B8173A42BA29100F02322DE24241DF8333F7A7A2A8C71513B734BC7E35D25F469B27F9B0883E1B62E1C4FC60FC6EB4A1E9B1AD1DD26A8D64D27944577E8ABE51EA225B0FFE27B5592D6EA5FBAA81BE6E3657FBBE67D359D0D18622545E8C1093D542F31FEBD00E0C687BB66D6F4E8F3FA0AD435F303F1108CE3604FF199E5DBF7E7309EBECA4ADB0F2AED26B87E7B50C23F0AA8370EEABFEEF273B64EFAD3167D78689907C500FAB9AC160968BA738AC40B23F50BEAD01C6343D7B7190034C79FFDD250938A84E499D5583F5213287F495DF9008DB8A9A51DFEA454A8215683A53A6A5CE5BFDA0D827704203ADADA05AF |
375 | 20170718203220 2 6 100 8191 2 DDFBC1CD4FB7E30639422038F1FFBA2CD3EC3915F3C923282C6588F6EB218FF7B24870C0FE4B48213AB0948E101686FB7B0093ED467B6CA413EDD4B0BFE2155AEBC4DA3D2DD0C78DA9AD989A0E989010D6D5E86A123C169E126F97826EE5F602FF641FDF642A107E7538CB61740CBAF69F6C7DC5DD4DF28998AB61B8672F0B74A3A8DD7D165828D69DCC1BAE4D45F707C3894E040BCC0AF7AA810A6D5CB89276217EB7AFAFE4966D68C10318E8C8CB23CA593E8057F29FF9154908B11D6530E6352F9406C81D9DAC5C298979320B4E0DD89203A1F680C8084154D0439DB6C53EDAF6FCC0E8682EC99D345180120AEC810CBB0C2F1B6D1B660ACEAAD5996A5D184659B6A1F11456BA6A5E94D223959D8171C030499A9DB458702CB35CA7E7CD75D26FF5E94640AB8740ECE82559784BB6D5CB4D041D053629BD3F4178077F3F7E280296C46A3F0FBC37813A1AA221FBA2612F0CFE56450E9B1F2C2AE278EC7A7AAB66D61FA9749FE997EDC31131091620897014D33B2386B490CFD80656B7D2EB08C9DA9928798986996D60F74D766EB8988E2FF676E38C587E7A6651AA28BEB8BB56EBBD6E641E92309AEAA671A5F2EC72629442D2C3A4C2B8E4304DC71B342CD116527832078E6B53C1E0A72909615B408E17625F7259ACA98E46359448FC141F57B51A069B8A402AE3A87E10AE7E910F3916BAC6CE716C539E825A06626673DE7EBD899A3982FCC599791E7CA964C0D37BB076708C03DC7C022980974025C0EA9B72CC3D0A03E4626E030E9C857ECF6B3807AC9E8E0F72098C7E80DAA05BFF60394A8374096878F015597DD5B22E65646A7DDC87B5F6AE68594DF39B0BDB2675A32369AD81FD62033146B8DA6A801E918572CBC70DEBA9F70D088D69425733ACE0084E60E7FCB459A5B71F74F711184B1AEA240834D28D049474BB2E7ED1B17AA2B5EB7D274341456834320BE8FB245B1C2B84A096E7E40573FEB7C2997ED16C8C2C62409B8064398ED220FA82C59E53AD7E864C24473FCC7F017B897D5855F092A9428957467EFD93F67D3FA302C578328A9484CD0496CC83BEAC96504F9601DA2048D25BF43B5A69E46234A164D854B89DF1DEDC36F0304BA5FC035B27E782087C3EC0A81840A3EC042204C63F9698CC74A818428039B23664C409529C4EDD822DF77819805023795EE625D524F12824C1F1FE99546DF75107AFFF7D424C4C3FB3D0BDA2E9BC0D93603457FFE44FABEAB1E6B62223B201D42784731BEE11E0FF0BF29C930DAF913F974739800522E2B9C4094475A5F35AA92E2939E5719EB4EE19446ADC9ECC7EE6BAB5D264C9E74AB6DE856D541146048341EB51734A34E33EF8D929F645E23FD902CB5676DA9C84C9F46490710DC8CF2AA922252C3885CBD8D0CB1D176CAFEB46A625C56BE949F487C6E35E2CE481F024C88A012AA89B | 375 | 20171221135413 2 6 100 8191 5 EE490FB8716A6562BB33AA7C81BBFDCF2BC4C7257F68FC888B014D4D06FF9501EDEC5B4B462DBA35A9C6E541F218CB4A44F6F9FC88F4B4CC522803FA78E320467D89DC594A89B9718278C390023E9A367EDC39614216835EC52511F0ABAD50A37B742603D8ECA51491AC9A0F61B8A0AE8C09831869F2BF140277A0DA761C57856191FB3D6BCA46D51AC32A52FA6012B8AF5531F1E361751EC530B502B9001CAD88C0E921D4F809CA97C06278C0503B17BAE6B082168C34AB558BAC649EC3A69D2D136804E89B4FC952AF03C5056A6CA50D130934CBA7FA852BB950328E6BA2BFCF86C7319C96E5AC7172B03A000D678E4734BF756645816DCFA5710D65F77B994C1D12000502CC31478258694CFEE378707F7111E7337A0EBBD8EA3E91459AEB73B310DEE37464DF317FB6BBBD6A4DB32B505F7F6D0D5A6C8BE439514BAA032CB41864647F64F18B414BA2A2BF7AEF787D1F84B2EFDF5935857C9A6167CA426109FEBA69EE58FEF126F3F98FBC46570EF50DD3F502044DBD580E5DCFD214DA8788B7104D4A77C4006AC153E704B395F061118D5898155A7BC758C13D6D9B381F40B1998FFBB520D78110956D7E01EB07F2AA4CE132C3CDE594E3FEF45F2FD2C6B8B2C75B8C232DEC3C82BDF494E846D8AD466F8F234FE2698C90B203C989F9EBE77DF2126CE4C765E19BCBC628F6B70FFEE9214B88E27CF989939EF396D513BDD2CA737EDB8C6845E5883D283445F3FB8F662F0CFC29F405A592C8C0D68575361B09BA4D1398D61B552D239F897D84B8D46A6E1B113D76AE9BABA8D5617B3ACC1A8F4AFBA8597BA96CF872A5AE48BE79A44771937D01D0EF76C99C1C99C7EE94DBDFE3FBA41B69DEC9F4B1858E3D4F488CAEA52692C9334ADB39A8FEDC815A1E4D7057AE7CF4BD2A67B02141F98306D4A67C759414F03AE3A9D2C0F1090B29C8833E3500ED05FF6175D29408D8DB6D0651AFC77142FA7F44114274C0575B4F2EAF27714B56F450DE6F02423B4BEDC090E91ECD92F5DF5B9D053E095149B069FB60D51BB700A188EABD493773B7BEBA99CA21E981BF14188926E5F2DB6348B8E85AE4E2D498F116C9A240567F71B9D86B8173A42BA29100F02322DE24241DF8333F7A7A2A8C71513B734BC7E35D25F469B27F9B0883E1B62E1C4FC60FC6EB4A1E9B1AD1DD26A8D64D27944577E8ABE51EA225B0FFE27B5592D6EA5FBAA81BE6E3657FBBE67D359D0D18622545E8C1093D542F31FEBD00E0C687BB66D6F4E8F3FA0AD435F303F1108CE3604FF199E5DBF7E7309EBECA4ADB0F2AED26B87E7B50C23F0AA8370EEABFEEF273B64EFAD3167D78689907C500FAB9AC160968BA738AC40B23F50BEAD01C6343D7B7190034C79FFDD250938A84E499D5583F5213287F495DF9008DB8A9A51DFEA454A8215683A53A6A5CE5BFDA0D827704203AE091EA4F |
376 | 20170718211015 2 6 100 8191 2 DDFBC1CD4FB7E30639422038F1FFBA2CD3EC3915F3C923282C6588F6EB218FF7B24870C0FE4B48213AB0948E101686FB7B0093ED467B6CA413EDD4B0BFE2155AEBC4DA3D2DD0C78DA9AD989A0E989010D6D5E86A123C169E126F97826EE5F602FF641FDF642A107E7538CB61740CBAF69F6C7DC5DD4DF28998AB61B8672F0B74A3A8DD7D165828D69DCC1BAE4D45F707C3894E040BCC0AF7AA810A6D5CB89276217EB7AFAFE4966D68C10318E8C8CB23CA593E8057F29FF9154908B11D6530E6352F9406C81D9DAC5C298979320B4E0DD89203A1F680C8084154D0439DB6C53EDAF6FCC0E8682EC99D345180120AEC810CBB0C2F1B6D1B660ACEAAD5996A5D184659B6A1F11456BA6A5E94D223959D8171C030499A9DB458702CB35CA7E7CD75D26FF5E94640AB8740ECE82559784BB6D5CB4D041D053629BD3F4178077F3F7E280296C46A3F0FBC37813A1AA221FBA2612F0CFE56450E9B1F2C2AE278EC7A7AAB66D61FA9749FE997EDC31131091620897014D33B2386B490CFD80656B7D2EB08C9DA9928798986996D60F74D766EB8988E2FF676E38C587E7A6651AA28BEB8BB56EBBD6E641E92309AEAA671A5F2EC72629442D2C3A4C2B8E4304DC71B342CD116527832078E6B53C1E0A72909615B408E17625F7259ACA98E46359448FC141F57B51A069B8A402AE3A87E10AE7E910F3916BAC6CE716C539E825A06626673DE7EBD899A3982FCC599791E7CA964C0D37BB076708C03DC7C022980974025C0EA9B72CC3D0A03E4626E030E9C857ECF6B3807AC9E8E0F72098C7E80DAA05BFF60394A8374096878F015597DD5B22E65646A7DDC87B5F6AE68594DF39B0BDB2675A32369AD81FD62033146B8DA6A801E918572CBC70DEBA9F70D088D69425733ACE0084E60E7FCB459A5B71F74F711184B1AEA240834D28D049474BB2E7ED1B17AA2B5EB7D274341456834320BE8FB245B1C2B84A096E7E40573FEB7C2997ED16C8C2C62409B8064398ED220FA82C59E53AD7E864C24473FCC7F017B897D5855F092A9428957467EFD93F67D3FA302C578328A9484CD0496CC83BEAC96504F9601DA2048D25BF43B5A69E46234A164D854B89DF1DEDC36F0304BA5FC035B27E782087C3EC0A81840A3EC042204C63F9698CC74A818428039B23664C409529C4EDD822DF77819805023795EE625D524F12824C1F1FE99546DF75107AFFF7D424C4C3FB3D0BDA2E9BC0D93603457FFE44FABEAB1E6B62223B201D42784731BEE11E0FF0BF29C930DAF913F974739800522E2B9C4094475A5F35AA92E2939E5719EB4EE19446ADC9ECC7EE6BAB5D264C9E74AB6DE856D541146048341EB51734A34E33EF8D929F645E23FD902CB5676DA9C84C9F46490710DC8CF2AA922252C3885CBD8D0CB1D176CAFEB46A625C56BE949F487C6E35E2CE481F024C88A0186FF33 | 376 | 20171221220649 2 6 100 8191 5 EE490FB8716A6562BB33AA7C81BBFDCF2BC4C7257F68FC888B014D4D06FF9501EDEC5B4B462DBA35A9C6E541F218CB4A44F6F9FC88F4B4CC522803FA78E320467D89DC594A89B9718278C390023E9A367EDC39614216835EC52511F0ABAD50A37B742603D8ECA51491AC9A0F61B8A0AE8C09831869F2BF140277A0DA761C57856191FB3D6BCA46D51AC32A52FA6012B8AF5531F1E361751EC530B502B9001CAD88C0E921D4F809CA97C06278C0503B17BAE6B082168C34AB558BAC649EC3A69D2D136804E89B4FC952AF03C5056A6CA50D130934CBA7FA852BB950328E6BA2BFCF86C7319C96E5AC7172B03A000D678E4734BF756645816DCFA5710D65F77B994C1D12000502CC31478258694CFEE378707F7111E7337A0EBBD8EA3E91459AEB73B310DEE37464DF317FB6BBBD6A4DB32B505F7F6D0D5A6C8BE439514BAA032CB41864647F64F18B414BA2A2BF7AEF787D1F84B2EFDF5935857C9A6167CA426109FEBA69EE58FEF126F3F98FBC46570EF50DD3F502044DBD580E5DCFD214DA8788B7104D4A77C4006AC153E704B395F061118D5898155A7BC758C13D6D9B381F40B1998FFBB520D78110956D7E01EB07F2AA4CE132C3CDE594E3FEF45F2FD2C6B8B2C75B8C232DEC3C82BDF494E846D8AD466F8F234FE2698C90B203C989F9EBE77DF2126CE4C765E19BCBC628F6B70FFEE9214B88E27CF989939EF396D513BDD2CA737EDB8C6845E5883D283445F3FB8F662F0CFC29F405A592C8C0D68575361B09BA4D1398D61B552D239F897D84B8D46A6E1B113D76AE9BABA8D5617B3ACC1A8F4AFBA8597BA96CF872A5AE48BE79A44771937D01D0EF76C99C1C99C7EE94DBDFE3FBA41B69DEC9F4B1858E3D4F488CAEA52692C9334ADB39A8FEDC815A1E4D7057AE7CF4BD2A67B02141F98306D4A67C759414F03AE3A9D2C0F1090B29C8833E3500ED05FF6175D29408D8DB6D0651AFC77142FA7F44114274C0575B4F2EAF27714B56F450DE6F02423B4BEDC090E91ECD92F5DF5B9D053E095149B069FB60D51BB700A188EABD493773B7BEBA99CA21E981BF14188926E5F2DB6348B8E85AE4E2D498F116C9A240567F71B9D86B8173A42BA29100F02322DE24241DF8333F7A7A2A8C71513B734BC7E35D25F469B27F9B0883E1B62E1C4FC60FC6EB4A1E9B1AD1DD26A8D64D27944577E8ABE51EA225B0FFE27B5592D6EA5FBAA81BE6E3657FBBE67D359D0D18622545E8C1093D542F31FEBD00E0C687BB66D6F4E8F3FA0AD435F303F1108CE3604FF199E5DBF7E7309EBECA4ADB0F2AED26B87E7B50C23F0AA8370EEABFEEF273B64EFAD3167D78689907C500FAB9AC160968BA738AC40B23F50BEAD01C6343D7B7190034C79FFDD250938A84E499D5583F5213287F495DF9008DB8A9A51DFEA454A8215683A53A6A5CE5BFDA0D827704203AE5EFB017 |
377 | 20170719070720 2 6 100 8191 5 D84B8E9B7259F34AA46062684AD05873FD407C5FA804FFBC429D0DED5B497259FFF7F3C26D7A4C21592FCD658B607A5BDE7C4EAA7F5A3B6B713EAEDD5D0D47029CF51556BAFBBC91819DDA500332F7CE6777565C34CE56ED26BFE90830291C460891DDFEBF4FFFE5F217602081211E73EEC97612AC2C9FE8988738F0DC0FD2241B3C54357109D82FAAB532DB9C18B53B543D43B533FD67E36547972674968EB83AEE7EFC9F2AAF2C610C452EEA89A4FF5089BA6922F35128A844F6350A70671DD53C205AC7A75A1659CD3E57D385AB0BD78AF14DC129B1172884F1FCF5D795B6031A2BEB2410948A422D21AD3A215C85720F5EE695E235E36832E0A559DACDBD2B7CA3A1317CA005A963B49E3337829C40974C70F47540D89AAE625A1FD110874DC13D6E7B5711021F0CFD94C46D87582EBFF78EB2412B6D91DC0250A0B805F5E3B096ACB247C2A247A39164337FB3CB818AD4A950E6347B801DA742E5B532F4FC48815AA62B894FDB23B6E4D448DB62713AA46CC33C7D83D60A44B2B70FE8D841A56A4150A01C82B19CB93AE0AAA65E765EFF95933AC55742E0240744158B9CEF9DA8E18C3736BC8894306BF86D9B927CD62252ABFD39A3B352168336404C6B5F0DB4AEE518069274266E0C424F45D487B500BC087F49B53B0FA822D306D8B272E66C035569FFF1A191D354728253419E5B49115B88EB94E8452A28A3D699E73709FFD95D30430D45B730AF36D90C4DF464241C059375E8215E02294DFEAF8169BF1B47F7EE6F6479CB772D552D604589CE0A80BF7C38AFB2D8111D02A11D02264E2D1634128E53835E5815A92C19027DD08493C23344883FA5F2802A67E586221E2E22DFB8C67D75903F7211D52D19DC92DAC9C2E55D5D23E4B316F4F36AE24526C0D7CB5D43A5FA64CD621E9BBEB44ADAC0FB50237872CF13E0008D4D8F3B53B7F97FF8FD71E7B6ECCE359F5FBF3F6128DFD062C1E1177C6DDB97CBB9ED8AF082BF55D2DDF76920020A8AFCA08235752DE7542237D273F0324767F297BD98F573642B54D55AAEDCD9A5DB65DDF24F1E52489E22A8CDB204653F03A45261E20C965772CC92D71AD8A9DCA1205CA72C3AE330CA9ABFC93BD4C0591279661736B131AE905D5EB899BED456FE76BE26C4700FDF3238999B250DEF64F155FED724D3E38BDCAAD31CAC112BF39F0BC0CD3A906BEA43676E126616B51546C9E282117163EA7B38F255797A803F663EA16485FE4A8C2510409D3B6EF809EAC2BF897277A17A9C6E58709B57591FDA62321CEC2F545FCDB0AEEAF33ED378707C81711E003F1E77EEEE292F61E37FDC2FC4F97CEA96E1A4FB8643A9F18C9D6780BC5B815E43AF81E3B1D47D68D5A559C194F35A143B9EAE147D975BEF88D55AF1408BC1705C02F112616D08BFE6A44C0EFAC373CBB557E4953C79ACAA225378FA20B88F | 377 | 20171223020323 2 6 100 8191 2 EE490FB8716A6562BB33AA7C81BBFDCF2BC4C7257F68FC888B014D4D06FF9501EDEC5B4B462DBA35A9C6E541F218CB4A44F6F9FC88F4B4CC522803FA78E320467D89DC594A89B9718278C390023E9A367EDC39614216835EC52511F0ABAD50A37B742603D8ECA51491AC9A0F61B8A0AE8C09831869F2BF140277A0DA761C57856191FB3D6BCA46D51AC32A52FA6012B8AF5531F1E361751EC530B502B9001CAD88C0E921D4F809CA97C06278C0503B17BAE6B082168C34AB558BAC649EC3A69D2D136804E89B4FC952AF03C5056A6CA50D130934CBA7FA852BB950328E6BA2BFCF86C7319C96E5AC7172B03A000D678E4734BF756645816DCFA5710D65F77B994C1D12000502CC31478258694CFEE378707F7111E7337A0EBBD8EA3E91459AEB73B310DEE37464DF317FB6BBBD6A4DB32B505F7F6D0D5A6C8BE439514BAA032CB41864647F64F18B414BA2A2BF7AEF787D1F84B2EFDF5935857C9A6167CA426109FEBA69EE58FEF126F3F98FBC46570EF50DD3F502044DBD580E5DCFD214DA8788B7104D4A77C4006AC153E704B395F061118D5898155A7BC758C13D6D9B381F40B1998FFBB520D78110956D7E01EB07F2AA4CE132C3CDE594E3FEF45F2FD2C6B8B2C75B8C232DEC3C82BDF494E846D8AD466F8F234FE2698C90B203C989F9EBE77DF2126CE4C765E19BCBC628F6B70FFEE9214B88E27CF989939EF396D513BDD2CA737EDB8C6845E5883D283445F3FB8F662F0CFC29F405A592C8C0D68575361B09BA4D1398D61B552D239F897D84B8D46A6E1B113D76AE9BABA8D5617B3ACC1A8F4AFBA8597BA96CF872A5AE48BE79A44771937D01D0EF76C99C1C99C7EE94DBDFE3FBA41B69DEC9F4B1858E3D4F488CAEA52692C9334ADB39A8FEDC815A1E4D7057AE7CF4BD2A67B02141F98306D4A67C759414F03AE3A9D2C0F1090B29C8833E3500ED05FF6175D29408D8DB6D0651AFC77142FA7F44114274C0575B4F2EAF27714B56F450DE6F02423B4BEDC090E91ECD92F5DF5B9D053E095149B069FB60D51BB700A188EABD493773B7BEBA99CA21E981BF14188926E5F2DB6348B8E85AE4E2D498F116C9A240567F71B9D86B8173A42BA29100F02322DE24241DF8333F7A7A2A8C71513B734BC7E35D25F469B27F9B0883E1B62E1C4FC60FC6EB4A1E9B1AD1DD26A8D64D27944577E8ABE51EA225B0FFE27B5592D6EA5FBAA81BE6E3657FBBE67D359D0D18622545E8C1093D542F31FEBD00E0C687BB66D6F4E8F3FA0AD435F303F1108CE3604FF199E5DBF7E7309EBECA4ADB0F2AED26B87E7B50C23F0AA8370EEABFEEF273B64EFAD3167D78689907C500FAB9AC160968BA738AC40B23F50BEAD01C6343D7B7190034C79FFDD250938A84E499D5583F5213287F495DF9008DB8A9A51DFEA454A8215683A53A6A5CE5BFDA0D827704203AF8256AAB |
378 | 20170719080355 2 6 100 8191 2 D84B8E9B7259F34AA46062684AD05873FD407C5FA804FFBC429D0DED5B497259FFF7F3C26D7A4C21592FCD658B607A5BDE7C4EAA7F5A3B6B713EAEDD5D0D47029CF51556BAFBBC91819DDA500332F7CE6777565C34CE56ED26BFE90830291C460891DDFEBF4FFFE5F217602081211E73EEC97612AC2C9FE8988738F0DC0FD2241B3C54357109D82FAAB532DB9C18B53B543D43B533FD67E36547972674968EB83AEE7EFC9F2AAF2C610C452EEA89A4FF5089BA6922F35128A844F6350A70671DD53C205AC7A75A1659CD3E57D385AB0BD78AF14DC129B1172884F1FCF5D795B6031A2BEB2410948A422D21AD3A215C85720F5EE695E235E36832E0A559DACDBD2B7CA3A1317CA005A963B49E3337829C40974C70F47540D89AAE625A1FD110874DC13D6E7B5711021F0CFD94C46D87582EBFF78EB2412B6D91DC0250A0B805F5E3B096ACB247C2A247A39164337FB3CB818AD4A950E6347B801DA742E5B532F4FC48815AA62B894FDB23B6E4D448DB62713AA46CC33C7D83D60A44B2B70FE8D841A56A4150A01C82B19CB93AE0AAA65E765EFF95933AC55742E0240744158B9CEF9DA8E18C3736BC8894306BF86D9B927CD62252ABFD39A3B352168336404C6B5F0DB4AEE518069274266E0C424F45D487B500BC087F49B53B0FA822D306D8B272E66C035569FFF1A191D354728253419E5B49115B88EB94E8452A28A3D699E73709FFD95D30430D45B730AF36D90C4DF464241C059375E8215E02294DFEAF8169BF1B47F7EE6F6479CB772D552D604589CE0A80BF7C38AFB2D8111D02A11D02264E2D1634128E53835E5815A92C19027DD08493C23344883FA5F2802A67E586221E2E22DFB8C67D75903F7211D52D19DC92DAC9C2E55D5D23E4B316F4F36AE24526C0D7CB5D43A5FA64CD621E9BBEB44ADAC0FB50237872CF13E0008D4D8F3B53B7F97FF8FD71E7B6ECCE359F5FBF3F6128DFD062C1E1177C6DDB97CBB9ED8AF082BF55D2DDF76920020A8AFCA08235752DE7542237D273F0324767F297BD98F573642B54D55AAEDCD9A5DB65DDF24F1E52489E22A8CDB204653F03A45261E20C965772CC92D71AD8A9DCA1205CA72C3AE330CA9ABFC93BD4C0591279661736B131AE905D5EB899BED456FE76BE26C4700FDF3238999B250DEF64F155FED724D3E38BDCAAD31CAC112BF39F0BC0CD3A906BEA43676E126616B51546C9E282117163EA7B38F255797A803F663EA16485FE4A8C2510409D3B6EF809EAC2BF897277A17A9C6E58709B57591FDA62321CEC2F545FCDB0AEEAF33ED378707C81711E003F1E77EEEE292F61E37FDC2FC4F97CEA96E1A4FB8643A9F18C9D6780BC5B815E43AF81E3B1D47D68D5A559C194F35A143B9EAE147D975BEF88D55AF1408BC1705C02F112616D08BFE6A44C0EFAC373CBB557E4953C79ACAA225378FABF2F5B | 378 | 20171223193520 2 6 100 8191 2 EE490FB8716A6562BB33AA7C81BBFDCF2BC4C7257F68FC888B014D4D06FF9501EDEC5B4B462DBA35A9C6E541F218CB4A44F6F9FC88F4B4CC522803FA78E320467D89DC594A89B9718278C390023E9A367EDC39614216835EC52511F0ABAD50A37B742603D8ECA51491AC9A0F61B8A0AE8C09831869F2BF140277A0DA761C57856191FB3D6BCA46D51AC32A52FA6012B8AF5531F1E361751EC530B502B9001CAD88C0E921D4F809CA97C06278C0503B17BAE6B082168C34AB558BAC649EC3A69D2D136804E89B4FC952AF03C5056A6CA50D130934CBA7FA852BB950328E6BA2BFCF86C7319C96E5AC7172B03A000D678E4734BF756645816DCFA5710D65F77B994C1D12000502CC31478258694CFEE378707F7111E7337A0EBBD8EA3E91459AEB73B310DEE37464DF317FB6BBBD6A4DB32B505F7F6D0D5A6C8BE439514BAA032CB41864647F64F18B414BA2A2BF7AEF787D1F84B2EFDF5935857C9A6167CA426109FEBA69EE58FEF126F3F98FBC46570EF50DD3F502044DBD580E5DCFD214DA8788B7104D4A77C4006AC153E704B395F061118D5898155A7BC758C13D6D9B381F40B1998FFBB520D78110956D7E01EB07F2AA4CE132C3CDE594E3FEF45F2FD2C6B8B2C75B8C232DEC3C82BDF494E846D8AD466F8F234FE2698C90B203C989F9EBE77DF2126CE4C765E19BCBC628F6B70FFEE9214B88E27CF989939EF396D513BDD2CA737EDB8C6845E5883D283445F3FB8F662F0CFC29F405A592C8C0D68575361B09BA4D1398D61B552D239F897D84B8D46A6E1B113D76AE9BABA8D5617B3ACC1A8F4AFBA8597BA96CF872A5AE48BE79A44771937D01D0EF76C99C1C99C7EE94DBDFE3FBA41B69DEC9F4B1858E3D4F488CAEA52692C9334ADB39A8FEDC815A1E4D7057AE7CF4BD2A67B02141F98306D4A67C759414F03AE3A9D2C0F1090B29C8833E3500ED05FF6175D29408D8DB6D0651AFC77142FA7F44114274C0575B4F2EAF27714B56F450DE6F02423B4BEDC090E91ECD92F5DF5B9D053E095149B069FB60D51BB700A188EABD493773B7BEBA99CA21E981BF14188926E5F2DB6348B8E85AE4E2D498F116C9A240567F71B9D86B8173A42BA29100F02322DE24241DF8333F7A7A2A8C71513B734BC7E35D25F469B27F9B0883E1B62E1C4FC60FC6EB4A1E9B1AD1DD26A8D64D27944577E8ABE51EA225B0FFE27B5592D6EA5FBAA81BE6E3657FBBE67D359D0D18622545E8C1093D542F31FEBD00E0C687BB66D6F4E8F3FA0AD435F303F1108CE3604FF199E5DBF7E7309EBECA4ADB0F2AED26B87E7B50C23F0AA8370EEABFEEF273B64EFAD3167D78689907C500FAB9AC160968BA738AC40B23F50BEAD01C6343D7B7190034C79FFDD250938A84E499D5583F5213287F495DF9008DB8A9A51DFEA454A8215683A53A6A5CE5BFDA0D827704203B035D92A3 |
379 | 20170719081323 2 6 100 8191 5 D84B8E9B7259F34AA46062684AD05873FD407C5FA804FFBC429D0DED5B497259FFF7F3C26D7A4C21592FCD658B607A5BDE7C4EAA7F5A3B6B713EAEDD5D0D47029CF51556BAFBBC91819DDA500332F7CE6777565C34CE56ED26BFE90830291C460891DDFEBF4FFFE5F217602081211E73EEC97612AC2C9FE8988738F0DC0FD2241B3C54357109D82FAAB532DB9C18B53B543D43B533FD67E36547972674968EB83AEE7EFC9F2AAF2C610C452EEA89A4FF5089BA6922F35128A844F6350A70671DD53C205AC7A75A1659CD3E57D385AB0BD78AF14DC129B1172884F1FCF5D795B6031A2BEB2410948A422D21AD3A215C85720F5EE695E235E36832E0A559DACDBD2B7CA3A1317CA005A963B49E3337829C40974C70F47540D89AAE625A1FD110874DC13D6E7B5711021F0CFD94C46D87582EBFF78EB2412B6D91DC0250A0B805F5E3B096ACB247C2A247A39164337FB3CB818AD4A950E6347B801DA742E5B532F4FC48815AA62B894FDB23B6E4D448DB62713AA46CC33C7D83D60A44B2B70FE8D841A56A4150A01C82B19CB93AE0AAA65E765EFF95933AC55742E0240744158B9CEF9DA8E18C3736BC8894306BF86D9B927CD62252ABFD39A3B352168336404C6B5F0DB4AEE518069274266E0C424F45D487B500BC087F49B53B0FA822D306D8B272E66C035569FFF1A191D354728253419E5B49115B88EB94E8452A28A3D699E73709FFD95D30430D45B730AF36D90C4DF464241C059375E8215E02294DFEAF8169BF1B47F7EE6F6479CB772D552D604589CE0A80BF7C38AFB2D8111D02A11D02264E2D1634128E53835E5815A92C19027DD08493C23344883FA5F2802A67E586221E2E22DFB8C67D75903F7211D52D19DC92DAC9C2E55D5D23E4B316F4F36AE24526C0D7CB5D43A5FA64CD621E9BBEB44ADAC0FB50237872CF13E0008D4D8F3B53B7F97FF8FD71E7B6ECCE359F5FBF3F6128DFD062C1E1177C6DDB97CBB9ED8AF082BF55D2DDF76920020A8AFCA08235752DE7542237D273F0324767F297BD98F573642B54D55AAEDCD9A5DB65DDF24F1E52489E22A8CDB204653F03A45261E20C965772CC92D71AD8A9DCA1205CA72C3AE330CA9ABFC93BD4C0591279661736B131AE905D5EB899BED456FE76BE26C4700FDF3238999B250DEF64F155FED724D3E38BDCAAD31CAC112BF39F0BC0CD3A906BEA43676E126616B51546C9E282117163EA7B38F255797A803F663EA16485FE4A8C2510409D3B6EF809EAC2BF897277A17A9C6E58709B57591FDA62321CEC2F545FCDB0AEEAF33ED378707C81711E003F1E77EEEE292F61E37FDC2FC4F97CEA96E1A4FB8643A9F18C9D6780BC5B815E43AF81E3B1D47D68D5A559C194F35A143B9EAE147D975BEF88D55AF1408BC1705C02F112616D08BFE6A44C0EFAC373CBB557E4953C79ACAA225378FAD37237 | 379 | 20171223214753 2 6 100 8191 2 EE490FB8716A6562BB33AA7C81BBFDCF2BC4C7257F68FC888B014D4D06FF9501EDEC5B4B462DBA35A9C6E541F218CB4A44F6F9FC88F4B4CC522803FA78E320467D89DC594A89B9718278C390023E9A367EDC39614216835EC52511F0ABAD50A37B742603D8ECA51491AC9A0F61B8A0AE8C09831869F2BF140277A0DA761C57856191FB3D6BCA46D51AC32A52FA6012B8AF5531F1E361751EC530B502B9001CAD88C0E921D4F809CA97C06278C0503B17BAE6B082168C34AB558BAC649EC3A69D2D136804E89B4FC952AF03C5056A6CA50D130934CBA7FA852BB950328E6BA2BFCF86C7319C96E5AC7172B03A000D678E4734BF756645816DCFA5710D65F77B994C1D12000502CC31478258694CFEE378707F7111E7337A0EBBD8EA3E91459AEB73B310DEE37464DF317FB6BBBD6A4DB32B505F7F6D0D5A6C8BE439514BAA032CB41864647F64F18B414BA2A2BF7AEF787D1F84B2EFDF5935857C9A6167CA426109FEBA69EE58FEF126F3F98FBC46570EF50DD3F502044DBD580E5DCFD214DA8788B7104D4A77C4006AC153E704B395F061118D5898155A7BC758C13D6D9B381F40B1998FFBB520D78110956D7E01EB07F2AA4CE132C3CDE594E3FEF45F2FD2C6B8B2C75B8C232DEC3C82BDF494E846D8AD466F8F234FE2698C90B203C989F9EBE77DF2126CE4C765E19BCBC628F6B70FFEE9214B88E27CF989939EF396D513BDD2CA737EDB8C6845E5883D283445F3FB8F662F0CFC29F405A592C8C0D68575361B09BA4D1398D61B552D239F897D84B8D46A6E1B113D76AE9BABA8D5617B3ACC1A8F4AFBA8597BA96CF872A5AE48BE79A44771937D01D0EF76C99C1C99C7EE94DBDFE3FBA41B69DEC9F4B1858E3D4F488CAEA52692C9334ADB39A8FEDC815A1E4D7057AE7CF4BD2A67B02141F98306D4A67C759414F03AE3A9D2C0F1090B29C8833E3500ED05FF6175D29408D8DB6D0651AFC77142FA7F44114274C0575B4F2EAF27714B56F450DE6F02423B4BEDC090E91ECD92F5DF5B9D053E095149B069FB60D51BB700A188EABD493773B7BEBA99CA21E981BF14188926E5F2DB6348B8E85AE4E2D498F116C9A240567F71B9D86B8173A42BA29100F02322DE24241DF8333F7A7A2A8C71513B734BC7E35D25F469B27F9B0883E1B62E1C4FC60FC6EB4A1E9B1AD1DD26A8D64D27944577E8ABE51EA225B0FFE27B5592D6EA5FBAA81BE6E3657FBBE67D359D0D18622545E8C1093D542F31FEBD00E0C687BB66D6F4E8F3FA0AD435F303F1108CE3604FF199E5DBF7E7309EBECA4ADB0F2AED26B87E7B50C23F0AA8370EEABFEEF273B64EFAD3167D78689907C500FAB9AC160968BA738AC40B23F50BEAD01C6343D7B7190034C79FFDD250938A84E499D5583F5213287F495DF9008DB8A9A51DFEA454A8215683A53A6A5CE5BFDA0D827704203B04C1A663 |
380 | 20170719083433 2 6 100 8191 2 D84B8E9B7259F34AA46062684AD05873FD407C5FA804FFBC429D0DED5B497259FFF7F3C26D7A4C21592FCD658B607A5BDE7C4EAA7F5A3B6B713EAEDD5D0D47029CF51556BAFBBC91819DDA500332F7CE6777565C34CE56ED26BFE90830291C460891DDFEBF4FFFE5F217602081211E73EEC97612AC2C9FE8988738F0DC0FD2241B3C54357109D82FAAB532DB9C18B53B543D43B533FD67E36547972674968EB83AEE7EFC9F2AAF2C610C452EEA89A4FF5089BA6922F35128A844F6350A70671DD53C205AC7A75A1659CD3E57D385AB0BD78AF14DC129B1172884F1FCF5D795B6031A2BEB2410948A422D21AD3A215C85720F5EE695E235E36832E0A559DACDBD2B7CA3A1317CA005A963B49E3337829C40974C70F47540D89AAE625A1FD110874DC13D6E7B5711021F0CFD94C46D87582EBFF78EB2412B6D91DC0250A0B805F5E3B096ACB247C2A247A39164337FB3CB818AD4A950E6347B801DA742E5B532F4FC48815AA62B894FDB23B6E4D448DB62713AA46CC33C7D83D60A44B2B70FE8D841A56A4150A01C82B19CB93AE0AAA65E765EFF95933AC55742E0240744158B9CEF9DA8E18C3736BC8894306BF86D9B927CD62252ABFD39A3B352168336404C6B5F0DB4AEE518069274266E0C424F45D487B500BC087F49B53B0FA822D306D8B272E66C035569FFF1A191D354728253419E5B49115B88EB94E8452A28A3D699E73709FFD95D30430D45B730AF36D90C4DF464241C059375E8215E02294DFEAF8169BF1B47F7EE6F6479CB772D552D604589CE0A80BF7C38AFB2D8111D02A11D02264E2D1634128E53835E5815A92C19027DD08493C23344883FA5F2802A67E586221E2E22DFB8C67D75903F7211D52D19DC92DAC9C2E55D5D23E4B316F4F36AE24526C0D7CB5D43A5FA64CD621E9BBEB44ADAC0FB50237872CF13E0008D4D8F3B53B7F97FF8FD71E7B6ECCE359F5FBF3F6128DFD062C1E1177C6DDB97CBB9ED8AF082BF55D2DDF76920020A8AFCA08235752DE7542237D273F0324767F297BD98F573642B54D55AAEDCD9A5DB65DDF24F1E52489E22A8CDB204653F03A45261E20C965772CC92D71AD8A9DCA1205CA72C3AE330CA9ABFC93BD4C0591279661736B131AE905D5EB899BED456FE76BE26C4700FDF3238999B250DEF64F155FED724D3E38BDCAAD31CAC112BF39F0BC0CD3A906BEA43676E126616B51546C9E282117163EA7B38F255797A803F663EA16485FE4A8C2510409D3B6EF809EAC2BF897277A17A9C6E58709B57591FDA62321CEC2F545FCDB0AEEAF33ED378707C81711E003F1E77EEEE292F61E37FDC2FC4F97CEA96E1A4FB8643A9F18C9D6780BC5B815E43AF81E3B1D47D68D5A559C194F35A143B9EAE147D975BEF88D55AF1408BC1705C02F112616D08BFE6A44C0EFAC373CBB557E4953C79ACAA225378FB0C1BEB | 380 | 20171224021554 2 6 100 8191 2 EE490FB8716A6562BB33AA7C81BBFDCF2BC4C7257F68FC888B014D4D06FF9501EDEC5B4B462DBA35A9C6E541F218CB4A44F6F9FC88F4B4CC522803FA78E320467D89DC594A89B9718278C390023E9A367EDC39614216835EC52511F0ABAD50A37B742603D8ECA51491AC9A0F61B8A0AE8C09831869F2BF140277A0DA761C57856191FB3D6BCA46D51AC32A52FA6012B8AF5531F1E361751EC530B502B9001CAD88C0E921D4F809CA97C06278C0503B17BAE6B082168C34AB558BAC649EC3A69D2D136804E89B4FC952AF03C5056A6CA50D130934CBA7FA852BB950328E6BA2BFCF86C7319C96E5AC7172B03A000D678E4734BF756645816DCFA5710D65F77B994C1D12000502CC31478258694CFEE378707F7111E7337A0EBBD8EA3E91459AEB73B310DEE37464DF317FB6BBBD6A4DB32B505F7F6D0D5A6C8BE439514BAA032CB41864647F64F18B414BA2A2BF7AEF787D1F84B2EFDF5935857C9A6167CA426109FEBA69EE58FEF126F3F98FBC46570EF50DD3F502044DBD580E5DCFD214DA8788B7104D4A77C4006AC153E704B395F061118D5898155A7BC758C13D6D9B381F40B1998FFBB520D78110956D7E01EB07F2AA4CE132C3CDE594E3FEF45F2FD2C6B8B2C75B8C232DEC3C82BDF494E846D8AD466F8F234FE2698C90B203C989F9EBE77DF2126CE4C765E19BCBC628F6B70FFEE9214B88E27CF989939EF396D513BDD2CA737EDB8C6845E5883D283445F3FB8F662F0CFC29F405A592C8C0D68575361B09BA4D1398D61B552D239F897D84B8D46A6E1B113D76AE9BABA8D5617B3ACC1A8F4AFBA8597BA96CF872A5AE48BE79A44771937D01D0EF76C99C1C99C7EE94DBDFE3FBA41B69DEC9F4B1858E3D4F488CAEA52692C9334ADB39A8FEDC815A1E4D7057AE7CF4BD2A67B02141F98306D4A67C759414F03AE3A9D2C0F1090B29C8833E3500ED05FF6175D29408D8DB6D0651AFC77142FA7F44114274C0575B4F2EAF27714B56F450DE6F02423B4BEDC090E91ECD92F5DF5B9D053E095149B069FB60D51BB700A188EABD493773B7BEBA99CA21E981BF14188926E5F2DB6348B8E85AE4E2D498F116C9A240567F71B9D86B8173A42BA29100F02322DE24241DF8333F7A7A2A8C71513B734BC7E35D25F469B27F9B0883E1B62E1C4FC60FC6EB4A1E9B1AD1DD26A8D64D27944577E8ABE51EA225B0FFE27B5592D6EA5FBAA81BE6E3657FBBE67D359D0D18622545E8C1093D542F31FEBD00E0C687BB66D6F4E8F3FA0AD435F303F1108CE3604FF199E5DBF7E7309EBECA4ADB0F2AED26B87E7B50C23F0AA8370EEABFEEF273B64EFAD3167D78689907C500FAB9AC160968BA738AC40B23F50BEAD01C6343D7B7190034C79FFDD250938A84E499D5583F5213287F495DF9008DB8A9A51DFEA454A8215683A53A6A5CE5BFDA0D827704203B078E9D33 |
381 | 20170719124018 2 6 100 8191 5 D84B8E9B7259F34AA46062684AD05873FD407C5FA804FFBC429D0DED5B497259FFF7F3C26D7A4C21592FCD658B607A5BDE7C4EAA7F5A3B6B713EAEDD5D0D47029CF51556BAFBBC91819DDA500332F7CE6777565C34CE56ED26BFE90830291C460891DDFEBF4FFFE5F217602081211E73EEC97612AC2C9FE8988738F0DC0FD2241B3C54357109D82FAAB532DB9C18B53B543D43B533FD67E36547972674968EB83AEE7EFC9F2AAF2C610C452EEA89A4FF5089BA6922F35128A844F6350A70671DD53C205AC7A75A1659CD3E57D385AB0BD78AF14DC129B1172884F1FCF5D795B6031A2BEB2410948A422D21AD3A215C85720F5EE695E235E36832E0A559DACDBD2B7CA3A1317CA005A963B49E3337829C40974C70F47540D89AAE625A1FD110874DC13D6E7B5711021F0CFD94C46D87582EBFF78EB2412B6D91DC0250A0B805F5E3B096ACB247C2A247A39164337FB3CB818AD4A950E6347B801DA742E5B532F4FC48815AA62B894FDB23B6E4D448DB62713AA46CC33C7D83D60A44B2B70FE8D841A56A4150A01C82B19CB93AE0AAA65E765EFF95933AC55742E0240744158B9CEF9DA8E18C3736BC8894306BF86D9B927CD62252ABFD39A3B352168336404C6B5F0DB4AEE518069274266E0C424F45D487B500BC087F49B53B0FA822D306D8B272E66C035569FFF1A191D354728253419E5B49115B88EB94E8452A28A3D699E73709FFD95D30430D45B730AF36D90C4DF464241C059375E8215E02294DFEAF8169BF1B47F7EE6F6479CB772D552D604589CE0A80BF7C38AFB2D8111D02A11D02264E2D1634128E53835E5815A92C19027DD08493C23344883FA5F2802A67E586221E2E22DFB8C67D75903F7211D52D19DC92DAC9C2E55D5D23E4B316F4F36AE24526C0D7CB5D43A5FA64CD621E9BBEB44ADAC0FB50237872CF13E0008D4D8F3B53B7F97FF8FD71E7B6ECCE359F5FBF3F6128DFD062C1E1177C6DDB97CBB9ED8AF082BF55D2DDF76920020A8AFCA08235752DE7542237D273F0324767F297BD98F573642B54D55AAEDCD9A5DB65DDF24F1E52489E22A8CDB204653F03A45261E20C965772CC92D71AD8A9DCA1205CA72C3AE330CA9ABFC93BD4C0591279661736B131AE905D5EB899BED456FE76BE26C4700FDF3238999B250DEF64F155FED724D3E38BDCAAD31CAC112BF39F0BC0CD3A906BEA43676E126616B51546C9E282117163EA7B38F255797A803F663EA16485FE4A8C2510409D3B6EF809EAC2BF897277A17A9C6E58709B57591FDA62321CEC2F545FCDB0AEEAF33ED378707C81711E003F1E77EEEE292F61E37FDC2FC4F97CEA96E1A4FB8643A9F18C9D6780BC5B815E43AF81E3B1D47D68D5A559C194F35A143B9EAE147D975BEF88D55AF1408BC1705C02F112616D08BFE6A44C0EFAC373CBB557E4953C79ACAA225378FDE8D93F | 381 | 20171224034823 2 6 100 8191 2 EE490FB8716A6562BB33AA7C81BBFDCF2BC4C7257F68FC888B014D4D06FF9501EDEC5B4B462DBA35A9C6E541F218CB4A44F6F9FC88F4B4CC522803FA78E320467D89DC594A89B9718278C390023E9A367EDC39614216835EC52511F0ABAD50A37B742603D8ECA51491AC9A0F61B8A0AE8C09831869F2BF140277A0DA761C57856191FB3D6BCA46D51AC32A52FA6012B8AF5531F1E361751EC530B502B9001CAD88C0E921D4F809CA97C06278C0503B17BAE6B082168C34AB558BAC649EC3A69D2D136804E89B4FC952AF03C5056A6CA50D130934CBA7FA852BB950328E6BA2BFCF86C7319C96E5AC7172B03A000D678E4734BF756645816DCFA5710D65F77B994C1D12000502CC31478258694CFEE378707F7111E7337A0EBBD8EA3E91459AEB73B310DEE37464DF317FB6BBBD6A4DB32B505F7F6D0D5A6C8BE439514BAA032CB41864647F64F18B414BA2A2BF7AEF787D1F84B2EFDF5935857C9A6167CA426109FEBA69EE58FEF126F3F98FBC46570EF50DD3F502044DBD580E5DCFD214DA8788B7104D4A77C4006AC153E704B395F061118D5898155A7BC758C13D6D9B381F40B1998FFBB520D78110956D7E01EB07F2AA4CE132C3CDE594E3FEF45F2FD2C6B8B2C75B8C232DEC3C82BDF494E846D8AD466F8F234FE2698C90B203C989F9EBE77DF2126CE4C765E19BCBC628F6B70FFEE9214B88E27CF989939EF396D513BDD2CA737EDB8C6845E5883D283445F3FB8F662F0CFC29F405A592C8C0D68575361B09BA4D1398D61B552D239F897D84B8D46A6E1B113D76AE9BABA8D5617B3ACC1A8F4AFBA8597BA96CF872A5AE48BE79A44771937D01D0EF76C99C1C99C7EE94DBDFE3FBA41B69DEC9F4B1858E3D4F488CAEA52692C9334ADB39A8FEDC815A1E4D7057AE7CF4BD2A67B02141F98306D4A67C759414F03AE3A9D2C0F1090B29C8833E3500ED05FF6175D29408D8DB6D0651AFC77142FA7F44114274C0575B4F2EAF27714B56F450DE6F02423B4BEDC090E91ECD92F5DF5B9D053E095149B069FB60D51BB700A188EABD493773B7BEBA99CA21E981BF14188926E5F2DB6348B8E85AE4E2D498F116C9A240567F71B9D86B8173A42BA29100F02322DE24241DF8333F7A7A2A8C71513B734BC7E35D25F469B27F9B0883E1B62E1C4FC60FC6EB4A1E9B1AD1DD26A8D64D27944577E8ABE51EA225B0FFE27B5592D6EA5FBAA81BE6E3657FBBE67D359D0D18622545E8C1093D542F31FEBD00E0C687BB66D6F4E8F3FA0AD435F303F1108CE3604FF199E5DBF7E7309EBECA4ADB0F2AED26B87E7B50C23F0AA8370EEABFEEF273B64EFAD3167D78689907C500FAB9AC160968BA738AC40B23F50BEAD01C6343D7B7190034C79FFDD250938A84E499D5583F5213287F495DF9008DB8A9A51DFEA454A8215683A53A6A5CE5BFDA0D827704203B087DB16B |
382 | 20170720083815 2 6 100 8191 5 D84B8E9B7259F34AA46062684AD05873FD407C5FA804FFBC429D0DED5B497259FFF7F3C26D7A4C21592FCD658B607A5BDE7C4EAA7F5A3B6B713EAEDD5D0D47029CF51556BAFBBC91819DDA500332F7CE6777565C34CE56ED26BFE90830291C460891DDFEBF4FFFE5F217602081211E73EEC97612AC2C9FE8988738F0DC0FD2241B3C54357109D82FAAB532DB9C18B53B543D43B533FD67E36547972674968EB83AEE7EFC9F2AAF2C610C452EEA89A4FF5089BA6922F35128A844F6350A70671DD53C205AC7A75A1659CD3E57D385AB0BD78AF14DC129B1172884F1FCF5D795B6031A2BEB2410948A422D21AD3A215C85720F5EE695E235E36832E0A559DACDBD2B7CA3A1317CA005A963B49E3337829C40974C70F47540D89AAE625A1FD110874DC13D6E7B5711021F0CFD94C46D87582EBFF78EB2412B6D91DC0250A0B805F5E3B096ACB247C2A247A39164337FB3CB818AD4A950E6347B801DA742E5B532F4FC48815AA62B894FDB23B6E4D448DB62713AA46CC33C7D83D60A44B2B70FE8D841A56A4150A01C82B19CB93AE0AAA65E765EFF95933AC55742E0240744158B9CEF9DA8E18C3736BC8894306BF86D9B927CD62252ABFD39A3B352168336404C6B5F0DB4AEE518069274266E0C424F45D487B500BC087F49B53B0FA822D306D8B272E66C035569FFF1A191D354728253419E5B49115B88EB94E8452A28A3D699E73709FFD95D30430D45B730AF36D90C4DF464241C059375E8215E02294DFEAF8169BF1B47F7EE6F6479CB772D552D604589CE0A80BF7C38AFB2D8111D02A11D02264E2D1634128E53835E5815A92C19027DD08493C23344883FA5F2802A67E586221E2E22DFB8C67D75903F7211D52D19DC92DAC9C2E55D5D23E4B316F4F36AE24526C0D7CB5D43A5FA64CD621E9BBEB44ADAC0FB50237872CF13E0008D4D8F3B53B7F97FF8FD71E7B6ECCE359F5FBF3F6128DFD062C1E1177C6DDB97CBB9ED8AF082BF55D2DDF76920020A8AFCA08235752DE7542237D273F0324767F297BD98F573642B54D55AAEDCD9A5DB65DDF24F1E52489E22A8CDB204653F03A45261E20C965772CC92D71AD8A9DCA1205CA72C3AE330CA9ABFC93BD4C0591279661736B131AE905D5EB899BED456FE76BE26C4700FDF3238999B250DEF64F155FED724D3E38BDCAAD31CAC112BF39F0BC0CD3A906BEA43676E126616B51546C9E282117163EA7B38F255797A803F663EA16485FE4A8C2510409D3B6EF809EAC2BF897277A17A9C6E58709B57591FDA62321CEC2F545FCDB0AEEAF33ED378707C81711E003F1E77EEEE292F61E37FDC2FC4F97CEA96E1A4FB8643A9F18C9D6780BC5B815E43AF81E3B1D47D68D5A559C194F35A143B9EAE147D975BEF88D55AF1408BC1705C02F112616D08BFE6A44C0EFAC373CBB557E4953C79ACAA2253790C2785C7 | 382 | 20171224121415 2 6 100 8191 5 EE490FB8716A6562BB33AA7C81BBFDCF2BC4C7257F68FC888B014D4D06FF9501EDEC5B4B462DBA35A9C6E541F218CB4A44F6F9FC88F4B4CC522803FA78E320467D89DC594A89B9718278C390023E9A367EDC39614216835EC52511F0ABAD50A37B742603D8ECA51491AC9A0F61B8A0AE8C09831869F2BF140277A0DA761C57856191FB3D6BCA46D51AC32A52FA6012B8AF5531F1E361751EC530B502B9001CAD88C0E921D4F809CA97C06278C0503B17BAE6B082168C34AB558BAC649EC3A69D2D136804E89B4FC952AF03C5056A6CA50D130934CBA7FA852BB950328E6BA2BFCF86C7319C96E5AC7172B03A000D678E4734BF756645816DCFA5710D65F77B994C1D12000502CC31478258694CFEE378707F7111E7337A0EBBD8EA3E91459AEB73B310DEE37464DF317FB6BBBD6A4DB32B505F7F6D0D5A6C8BE439514BAA032CB41864647F64F18B414BA2A2BF7AEF787D1F84B2EFDF5935857C9A6167CA426109FEBA69EE58FEF126F3F98FBC46570EF50DD3F502044DBD580E5DCFD214DA8788B7104D4A77C4006AC153E704B395F061118D5898155A7BC758C13D6D9B381F40B1998FFBB520D78110956D7E01EB07F2AA4CE132C3CDE594E3FEF45F2FD2C6B8B2C75B8C232DEC3C82BDF494E846D8AD466F8F234FE2698C90B203C989F9EBE77DF2126CE4C765E19BCBC628F6B70FFEE9214B88E27CF989939EF396D513BDD2CA737EDB8C6845E5883D283445F3FB8F662F0CFC29F405A592C8C0D68575361B09BA4D1398D61B552D239F897D84B8D46A6E1B113D76AE9BABA8D5617B3ACC1A8F4AFBA8597BA96CF872A5AE48BE79A44771937D01D0EF76C99C1C99C7EE94DBDFE3FBA41B69DEC9F4B1858E3D4F488CAEA52692C9334ADB39A8FEDC815A1E4D7057AE7CF4BD2A67B02141F98306D4A67C759414F03AE3A9D2C0F1090B29C8833E3500ED05FF6175D29408D8DB6D0651AFC77142FA7F44114274C0575B4F2EAF27714B56F450DE6F02423B4BEDC090E91ECD92F5DF5B9D053E095149B069FB60D51BB700A188EABD493773B7BEBA99CA21E981BF14188926E5F2DB6348B8E85AE4E2D498F116C9A240567F71B9D86B8173A42BA29100F02322DE24241DF8333F7A7A2A8C71513B734BC7E35D25F469B27F9B0883E1B62E1C4FC60FC6EB4A1E9B1AD1DD26A8D64D27944577E8ABE51EA225B0FFE27B5592D6EA5FBAA81BE6E3657FBBE67D359D0D18622545E8C1093D542F31FEBD00E0C687BB66D6F4E8F3FA0AD435F303F1108CE3604FF199E5DBF7E7309EBECA4ADB0F2AED26B87E7B50C23F0AA8370EEABFEEF273B64EFAD3167D78689907C500FAB9AC160968BA738AC40B23F50BEAD01C6343D7B7190034C79FFDD250938A84E499D5583F5213287F495DF9008DB8A9A51DFEA454A8215683A53A6A5CE5BFDA0D827704203B0DB70677 |
383 | 20170720203303 2 6 100 8191 2 D84B8E9B7259F34AA46062684AD05873FD407C5FA804FFBC429D0DED5B497259FFF7F3C26D7A4C21592FCD658B607A5BDE7C4EAA7F5A3B6B713EAEDD5D0D47029CF51556BAFBBC91819DDA500332F7CE6777565C34CE56ED26BFE90830291C460891DDFEBF4FFFE5F217602081211E73EEC97612AC2C9FE8988738F0DC0FD2241B3C54357109D82FAAB532DB9C18B53B543D43B533FD67E36547972674968EB83AEE7EFC9F2AAF2C610C452EEA89A4FF5089BA6922F35128A844F6350A70671DD53C205AC7A75A1659CD3E57D385AB0BD78AF14DC129B1172884F1FCF5D795B6031A2BEB2410948A422D21AD3A215C85720F5EE695E235E36832E0A559DACDBD2B7CA3A1317CA005A963B49E3337829C40974C70F47540D89AAE625A1FD110874DC13D6E7B5711021F0CFD94C46D87582EBFF78EB2412B6D91DC0250A0B805F5E3B096ACB247C2A247A39164337FB3CB818AD4A950E6347B801DA742E5B532F4FC48815AA62B894FDB23B6E4D448DB62713AA46CC33C7D83D60A44B2B70FE8D841A56A4150A01C82B19CB93AE0AAA65E765EFF95933AC55742E0240744158B9CEF9DA8E18C3736BC8894306BF86D9B927CD62252ABFD39A3B352168336404C6B5F0DB4AEE518069274266E0C424F45D487B500BC087F49B53B0FA822D306D8B272E66C035569FFF1A191D354728253419E5B49115B88EB94E8452A28A3D699E73709FFD95D30430D45B730AF36D90C4DF464241C059375E8215E02294DFEAF8169BF1B47F7EE6F6479CB772D552D604589CE0A80BF7C38AFB2D8111D02A11D02264E2D1634128E53835E5815A92C19027DD08493C23344883FA5F2802A67E586221E2E22DFB8C67D75903F7211D52D19DC92DAC9C2E55D5D23E4B316F4F36AE24526C0D7CB5D43A5FA64CD621E9BBEB44ADAC0FB50237872CF13E0008D4D8F3B53B7F97FF8FD71E7B6ECCE359F5FBF3F6128DFD062C1E1177C6DDB97CBB9ED8AF082BF55D2DDF76920020A8AFCA08235752DE7542237D273F0324767F297BD98F573642B54D55AAEDCD9A5DB65DDF24F1E52489E22A8CDB204653F03A45261E20C965772CC92D71AD8A9DCA1205CA72C3AE330CA9ABFC93BD4C0591279661736B131AE905D5EB899BED456FE76BE26C4700FDF3238999B250DEF64F155FED724D3E38BDCAAD31CAC112BF39F0BC0CD3A906BEA43676E126616B51546C9E282117163EA7B38F255797A803F663EA16485FE4A8C2510409D3B6EF809EAC2BF897277A17A9C6E58709B57591FDA62321CEC2F545FCDB0AEEAF33ED378707C81711E003F1E77EEEE292F61E37FDC2FC4F97CEA96E1A4FB8643A9F18C9D6780BC5B815E43AF81E3B1D47D68D5A559C194F35A143B9EAE147D975BEF88D55AF1408BC1705C02F112616D08BFE6A44C0EFAC373CBB557E4953C79ACAA225379147CF99B | 383 | 20171224130232 2 6 100 8191 5 EE490FB8716A6562BB33AA7C81BBFDCF2BC4C7257F68FC888B014D4D06FF9501EDEC5B4B462DBA35A9C6E541F218CB4A44F6F9FC88F4B4CC522803FA78E320467D89DC594A89B9718278C390023E9A367EDC39614216835EC52511F0ABAD50A37B742603D8ECA51491AC9A0F61B8A0AE8C09831869F2BF140277A0DA761C57856191FB3D6BCA46D51AC32A52FA6012B8AF5531F1E361751EC530B502B9001CAD88C0E921D4F809CA97C06278C0503B17BAE6B082168C34AB558BAC649EC3A69D2D136804E89B4FC952AF03C5056A6CA50D130934CBA7FA852BB950328E6BA2BFCF86C7319C96E5AC7172B03A000D678E4734BF756645816DCFA5710D65F77B994C1D12000502CC31478258694CFEE378707F7111E7337A0EBBD8EA3E91459AEB73B310DEE37464DF317FB6BBBD6A4DB32B505F7F6D0D5A6C8BE439514BAA032CB41864647F64F18B414BA2A2BF7AEF787D1F84B2EFDF5935857C9A6167CA426109FEBA69EE58FEF126F3F98FBC46570EF50DD3F502044DBD580E5DCFD214DA8788B7104D4A77C4006AC153E704B395F061118D5898155A7BC758C13D6D9B381F40B1998FFBB520D78110956D7E01EB07F2AA4CE132C3CDE594E3FEF45F2FD2C6B8B2C75B8C232DEC3C82BDF494E846D8AD466F8F234FE2698C90B203C989F9EBE77DF2126CE4C765E19BCBC628F6B70FFEE9214B88E27CF989939EF396D513BDD2CA737EDB8C6845E5883D283445F3FB8F662F0CFC29F405A592C8C0D68575361B09BA4D1398D61B552D239F897D84B8D46A6E1B113D76AE9BABA8D5617B3ACC1A8F4AFBA8597BA96CF872A5AE48BE79A44771937D01D0EF76C99C1C99C7EE94DBDFE3FBA41B69DEC9F4B1858E3D4F488CAEA52692C9334ADB39A8FEDC815A1E4D7057AE7CF4BD2A67B02141F98306D4A67C759414F03AE3A9D2C0F1090B29C8833E3500ED05FF6175D29408D8DB6D0651AFC77142FA7F44114274C0575B4F2EAF27714B56F450DE6F02423B4BEDC090E91ECD92F5DF5B9D053E095149B069FB60D51BB700A188EABD493773B7BEBA99CA21E981BF14188926E5F2DB6348B8E85AE4E2D498F116C9A240567F71B9D86B8173A42BA29100F02322DE24241DF8333F7A7A2A8C71513B734BC7E35D25F469B27F9B0883E1B62E1C4FC60FC6EB4A1E9B1AD1DD26A8D64D27944577E8ABE51EA225B0FFE27B5592D6EA5FBAA81BE6E3657FBBE67D359D0D18622545E8C1093D542F31FEBD00E0C687BB66D6F4E8F3FA0AD435F303F1108CE3604FF199E5DBF7E7309EBECA4ADB0F2AED26B87E7B50C23F0AA8370EEABFEEF273B64EFAD3167D78689907C500FAB9AC160968BA738AC40B23F50BEAD01C6343D7B7190034C79FFDD250938A84E499D5583F5213287F495DF9008DB8A9A51DFEA454A8215683A53A6A5CE5BFDA0D827704203B0E3090C7 |
384 | 20170721064950 2 6 100 8191 2 D84B8E9B7259F34AA46062684AD05873FD407C5FA804FFBC429D0DED5B497259FFF7F3C26D7A4C21592FCD658B607A5BDE7C4EAA7F5A3B6B713EAEDD5D0D47029CF51556BAFBBC91819DDA500332F7CE6777565C34CE56ED26BFE90830291C460891DDFEBF4FFFE5F217602081211E73EEC97612AC2C9FE8988738F0DC0FD2241B3C54357109D82FAAB532DB9C18B53B543D43B533FD67E36547972674968EB83AEE7EFC9F2AAF2C610C452EEA89A4FF5089BA6922F35128A844F6350A70671DD53C205AC7A75A1659CD3E57D385AB0BD78AF14DC129B1172884F1FCF5D795B6031A2BEB2410948A422D21AD3A215C85720F5EE695E235E36832E0A559DACDBD2B7CA3A1317CA005A963B49E3337829C40974C70F47540D89AAE625A1FD110874DC13D6E7B5711021F0CFD94C46D87582EBFF78EB2412B6D91DC0250A0B805F5E3B096ACB247C2A247A39164337FB3CB818AD4A950E6347B801DA742E5B532F4FC48815AA62B894FDB23B6E4D448DB62713AA46CC33C7D83D60A44B2B70FE8D841A56A4150A01C82B19CB93AE0AAA65E765EFF95933AC55742E0240744158B9CEF9DA8E18C3736BC8894306BF86D9B927CD62252ABFD39A3B352168336404C6B5F0DB4AEE518069274266E0C424F45D487B500BC087F49B53B0FA822D306D8B272E66C035569FFF1A191D354728253419E5B49115B88EB94E8452A28A3D699E73709FFD95D30430D45B730AF36D90C4DF464241C059375E8215E02294DFEAF8169BF1B47F7EE6F6479CB772D552D604589CE0A80BF7C38AFB2D8111D02A11D02264E2D1634128E53835E5815A92C19027DD08493C23344883FA5F2802A67E586221E2E22DFB8C67D75903F7211D52D19DC92DAC9C2E55D5D23E4B316F4F36AE24526C0D7CB5D43A5FA64CD621E9BBEB44ADAC0FB50237872CF13E0008D4D8F3B53B7F97FF8FD71E7B6ECCE359F5FBF3F6128DFD062C1E1177C6DDB97CBB9ED8AF082BF55D2DDF76920020A8AFCA08235752DE7542237D273F0324767F297BD98F573642B54D55AAEDCD9A5DB65DDF24F1E52489E22A8CDB204653F03A45261E20C965772CC92D71AD8A9DCA1205CA72C3AE330CA9ABFC93BD4C0591279661736B131AE905D5EB899BED456FE76BE26C4700FDF3238999B250DEF64F155FED724D3E38BDCAAD31CAC112BF39F0BC0CD3A906BEA43676E126616B51546C9E282117163EA7B38F255797A803F663EA16485FE4A8C2510409D3B6EF809EAC2BF897277A17A9C6E58709B57591FDA62321CEC2F545FCDB0AEEAF33ED378707C81711E003F1E77EEEE292F61E37FDC2FC4F97CEA96E1A4FB8643A9F18C9D6780BC5B815E43AF81E3B1D47D68D5A559C194F35A143B9EAE147D975BEF88D55AF1408BC1705C02F112616D08BFE6A44C0EFAC373CBB557E4953C79ACAA2253791BAF7AFB | 384 | 20171224135245 2 6 100 8191 2 EE490FB8716A6562BB33AA7C81BBFDCF2BC4C7257F68FC888B014D4D06FF9501EDEC5B4B462DBA35A9C6E541F218CB4A44F6F9FC88F4B4CC522803FA78E320467D89DC594A89B9718278C390023E9A367EDC39614216835EC52511F0ABAD50A37B742603D8ECA51491AC9A0F61B8A0AE8C09831869F2BF140277A0DA761C57856191FB3D6BCA46D51AC32A52FA6012B8AF5531F1E361751EC530B502B9001CAD88C0E921D4F809CA97C06278C0503B17BAE6B082168C34AB558BAC649EC3A69D2D136804E89B4FC952AF03C5056A6CA50D130934CBA7FA852BB950328E6BA2BFCF86C7319C96E5AC7172B03A000D678E4734BF756645816DCFA5710D65F77B994C1D12000502CC31478258694CFEE378707F7111E7337A0EBBD8EA3E91459AEB73B310DEE37464DF317FB6BBBD6A4DB32B505F7F6D0D5A6C8BE439514BAA032CB41864647F64F18B414BA2A2BF7AEF787D1F84B2EFDF5935857C9A6167CA426109FEBA69EE58FEF126F3F98FBC46570EF50DD3F502044DBD580E5DCFD214DA8788B7104D4A77C4006AC153E704B395F061118D5898155A7BC758C13D6D9B381F40B1998FFBB520D78110956D7E01EB07F2AA4CE132C3CDE594E3FEF45F2FD2C6B8B2C75B8C232DEC3C82BDF494E846D8AD466F8F234FE2698C90B203C989F9EBE77DF2126CE4C765E19BCBC628F6B70FFEE9214B88E27CF989939EF396D513BDD2CA737EDB8C6845E5883D283445F3FB8F662F0CFC29F405A592C8C0D68575361B09BA4D1398D61B552D239F897D84B8D46A6E1B113D76AE9BABA8D5617B3ACC1A8F4AFBA8597BA96CF872A5AE48BE79A44771937D01D0EF76C99C1C99C7EE94DBDFE3FBA41B69DEC9F4B1858E3D4F488CAEA52692C9334ADB39A8FEDC815A1E4D7057AE7CF4BD2A67B02141F98306D4A67C759414F03AE3A9D2C0F1090B29C8833E3500ED05FF6175D29408D8DB6D0651AFC77142FA7F44114274C0575B4F2EAF27714B56F450DE6F02423B4BEDC090E91ECD92F5DF5B9D053E095149B069FB60D51BB700A188EABD493773B7BEBA99CA21E981BF14188926E5F2DB6348B8E85AE4E2D498F116C9A240567F71B9D86B8173A42BA29100F02322DE24241DF8333F7A7A2A8C71513B734BC7E35D25F469B27F9B0883E1B62E1C4FC60FC6EB4A1E9B1AD1DD26A8D64D27944577E8ABE51EA225B0FFE27B5592D6EA5FBAA81BE6E3657FBBE67D359D0D18622545E8C1093D542F31FEBD00E0C687BB66D6F4E8F3FA0AD435F303F1108CE3604FF199E5DBF7E7309EBECA4ADB0F2AED26B87E7B50C23F0AA8370EEABFEEF273B64EFAD3167D78689907C500FAB9AC160968BA738AC40B23F50BEAD01C6343D7B7190034C79FFDD250938A84E499D5583F5213287F495DF9008DB8A9A51DFEA454A8215683A53A6A5CE5BFDA0D827704203B0EAF8073 |
385 | 20170721151849 2 6 100 8191 5 D84B8E9B7259F34AA46062684AD05873FD407C5FA804FFBC429D0DED5B497259FFF7F3C26D7A4C21592FCD658B607A5BDE7C4EAA7F5A3B6B713EAEDD5D0D47029CF51556BAFBBC91819DDA500332F7CE6777565C34CE56ED26BFE90830291C460891DDFEBF4FFFE5F217602081211E73EEC97612AC2C9FE8988738F0DC0FD2241B3C54357109D82FAAB532DB9C18B53B543D43B533FD67E36547972674968EB83AEE7EFC9F2AAF2C610C452EEA89A4FF5089BA6922F35128A844F6350A70671DD53C205AC7A75A1659CD3E57D385AB0BD78AF14DC129B1172884F1FCF5D795B6031A2BEB2410948A422D21AD3A215C85720F5EE695E235E36832E0A559DACDBD2B7CA3A1317CA005A963B49E3337829C40974C70F47540D89AAE625A1FD110874DC13D6E7B5711021F0CFD94C46D87582EBFF78EB2412B6D91DC0250A0B805F5E3B096ACB247C2A247A39164337FB3CB818AD4A950E6347B801DA742E5B532F4FC48815AA62B894FDB23B6E4D448DB62713AA46CC33C7D83D60A44B2B70FE8D841A56A4150A01C82B19CB93AE0AAA65E765EFF95933AC55742E0240744158B9CEF9DA8E18C3736BC8894306BF86D9B927CD62252ABFD39A3B352168336404C6B5F0DB4AEE518069274266E0C424F45D487B500BC087F49B53B0FA822D306D8B272E66C035569FFF1A191D354728253419E5B49115B88EB94E8452A28A3D699E73709FFD95D30430D45B730AF36D90C4DF464241C059375E8215E02294DFEAF8169BF1B47F7EE6F6479CB772D552D604589CE0A80BF7C38AFB2D8111D02A11D02264E2D1634128E53835E5815A92C19027DD08493C23344883FA5F2802A67E586221E2E22DFB8C67D75903F7211D52D19DC92DAC9C2E55D5D23E4B316F4F36AE24526C0D7CB5D43A5FA64CD621E9BBEB44ADAC0FB50237872CF13E0008D4D8F3B53B7F97FF8FD71E7B6ECCE359F5FBF3F6128DFD062C1E1177C6DDB97CBB9ED8AF082BF55D2DDF76920020A8AFCA08235752DE7542237D273F0324767F297BD98F573642B54D55AAEDCD9A5DB65DDF24F1E52489E22A8CDB204653F03A45261E20C965772CC92D71AD8A9DCA1205CA72C3AE330CA9ABFC93BD4C0591279661736B131AE905D5EB899BED456FE76BE26C4700FDF3238999B250DEF64F155FED724D3E38BDCAAD31CAC112BF39F0BC0CD3A906BEA43676E126616B51546C9E282117163EA7B38F255797A803F663EA16485FE4A8C2510409D3B6EF809EAC2BF897277A17A9C6E58709B57591FDA62321CEC2F545FCDB0AEEAF33ED378707C81711E003F1E77EEEE292F61E37FDC2FC4F97CEA96E1A4FB8643A9F18C9D6780BC5B815E43AF81E3B1D47D68D5A559C194F35A143B9EAE147D975BEF88D55AF1408BC1705C02F112616D08BFE6A44C0EFAC373CBB557E4953C79ACAA225379217C124F | 385 | 20171224212046 2 6 100 8191 5 EE490FB8716A6562BB33AA7C81BBFDCF2BC4C7257F68FC888B014D4D06FF9501EDEC5B4B462DBA35A9C6E541F218CB4A44F6F9FC88F4B4CC522803FA78E320467D89DC594A89B9718278C390023E9A367EDC39614216835EC52511F0ABAD50A37B742603D8ECA51491AC9A0F61B8A0AE8C09831869F2BF140277A0DA761C57856191FB3D6BCA46D51AC32A52FA6012B8AF5531F1E361751EC530B502B9001CAD88C0E921D4F809CA97C06278C0503B17BAE6B082168C34AB558BAC649EC3A69D2D136804E89B4FC952AF03C5056A6CA50D130934CBA7FA852BB950328E6BA2BFCF86C7319C96E5AC7172B03A000D678E4734BF756645816DCFA5710D65F77B994C1D12000502CC31478258694CFEE378707F7111E7337A0EBBD8EA3E91459AEB73B310DEE37464DF317FB6BBBD6A4DB32B505F7F6D0D5A6C8BE439514BAA032CB41864647F64F18B414BA2A2BF7AEF787D1F84B2EFDF5935857C9A6167CA426109FEBA69EE58FEF126F3F98FBC46570EF50DD3F502044DBD580E5DCFD214DA8788B7104D4A77C4006AC153E704B395F061118D5898155A7BC758C13D6D9B381F40B1998FFBB520D78110956D7E01EB07F2AA4CE132C3CDE594E3FEF45F2FD2C6B8B2C75B8C232DEC3C82BDF494E846D8AD466F8F234FE2698C90B203C989F9EBE77DF2126CE4C765E19BCBC628F6B70FFEE9214B88E27CF989939EF396D513BDD2CA737EDB8C6845E5883D283445F3FB8F662F0CFC29F405A592C8C0D68575361B09BA4D1398D61B552D239F897D84B8D46A6E1B113D76AE9BABA8D5617B3ACC1A8F4AFBA8597BA96CF872A5AE48BE79A44771937D01D0EF76C99C1C99C7EE94DBDFE3FBA41B69DEC9F4B1858E3D4F488CAEA52692C9334ADB39A8FEDC815A1E4D7057AE7CF4BD2A67B02141F98306D4A67C759414F03AE3A9D2C0F1090B29C8833E3500ED05FF6175D29408D8DB6D0651AFC77142FA7F44114274C0575B4F2EAF27714B56F450DE6F02423B4BEDC090E91ECD92F5DF5B9D053E095149B069FB60D51BB700A188EABD493773B7BEBA99CA21E981BF14188926E5F2DB6348B8E85AE4E2D498F116C9A240567F71B9D86B8173A42BA29100F02322DE24241DF8333F7A7A2A8C71513B734BC7E35D25F469B27F9B0883E1B62E1C4FC60FC6EB4A1E9B1AD1DD26A8D64D27944577E8ABE51EA225B0FFE27B5592D6EA5FBAA81BE6E3657FBBE67D359D0D18622545E8C1093D542F31FEBD00E0C687BB66D6F4E8F3FA0AD435F303F1108CE3604FF199E5DBF7E7309EBECA4ADB0F2AED26B87E7B50C23F0AA8370EEABFEEF273B64EFAD3167D78689907C500FAB9AC160968BA738AC40B23F50BEAD01C6343D7B7190034C79FFDD250938A84E499D5583F5213287F495DF9008DB8A9A51DFEA454A8215683A53A6A5CE5BFDA0D827704203B133C2B4F |
386 | 20170721220636 2 6 100 8191 2 D84B8E9B7259F34AA46062684AD05873FD407C5FA804FFBC429D0DED5B497259FFF7F3C26D7A4C21592FCD658B607A5BDE7C4EAA7F5A3B6B713EAEDD5D0D47029CF51556BAFBBC91819DDA500332F7CE6777565C34CE56ED26BFE90830291C460891DDFEBF4FFFE5F217602081211E73EEC97612AC2C9FE8988738F0DC0FD2241B3C54357109D82FAAB532DB9C18B53B543D43B533FD67E36547972674968EB83AEE7EFC9F2AAF2C610C452EEA89A4FF5089BA6922F35128A844F6350A70671DD53C205AC7A75A1659CD3E57D385AB0BD78AF14DC129B1172884F1FCF5D795B6031A2BEB2410948A422D21AD3A215C85720F5EE695E235E36832E0A559DACDBD2B7CA3A1317CA005A963B49E3337829C40974C70F47540D89AAE625A1FD110874DC13D6E7B5711021F0CFD94C46D87582EBFF78EB2412B6D91DC0250A0B805F5E3B096ACB247C2A247A39164337FB3CB818AD4A950E6347B801DA742E5B532F4FC48815AA62B894FDB23B6E4D448DB62713AA46CC33C7D83D60A44B2B70FE8D841A56A4150A01C82B19CB93AE0AAA65E765EFF95933AC55742E0240744158B9CEF9DA8E18C3736BC8894306BF86D9B927CD62252ABFD39A3B352168336404C6B5F0DB4AEE518069274266E0C424F45D487B500BC087F49B53B0FA822D306D8B272E66C035569FFF1A191D354728253419E5B49115B88EB94E8452A28A3D699E73709FFD95D30430D45B730AF36D90C4DF464241C059375E8215E02294DFEAF8169BF1B47F7EE6F6479CB772D552D604589CE0A80BF7C38AFB2D8111D02A11D02264E2D1634128E53835E5815A92C19027DD08493C23344883FA5F2802A67E586221E2E22DFB8C67D75903F7211D52D19DC92DAC9C2E55D5D23E4B316F4F36AE24526C0D7CB5D43A5FA64CD621E9BBEB44ADAC0FB50237872CF13E0008D4D8F3B53B7F97FF8FD71E7B6ECCE359F5FBF3F6128DFD062C1E1177C6DDB97CBB9ED8AF082BF55D2DDF76920020A8AFCA08235752DE7542237D273F0324767F297BD98F573642B54D55AAEDCD9A5DB65DDF24F1E52489E22A8CDB204653F03A45261E20C965772CC92D71AD8A9DCA1205CA72C3AE330CA9ABFC93BD4C0591279661736B131AE905D5EB899BED456FE76BE26C4700FDF3238999B250DEF64F155FED724D3E38BDCAAD31CAC112BF39F0BC0CD3A906BEA43676E126616B51546C9E282117163EA7B38F255797A803F663EA16485FE4A8C2510409D3B6EF809EAC2BF897277A17A9C6E58709B57591FDA62321CEC2F545FCDB0AEEAF33ED378707C81711E003F1E77EEEE292F61E37FDC2FC4F97CEA96E1A4FB8643A9F18C9D6780BC5B815E43AF81E3B1D47D68D5A559C194F35A143B9EAE147D975BEF88D55AF1408BC1705C02F112616D08BFE6A44C0EFAC373CBB557E4953C79ACAA225379260D3263 | 386 | 20171224212702 2 6 100 8191 2 EE490FB8716A6562BB33AA7C81BBFDCF2BC4C7257F68FC888B014D4D06FF9501EDEC5B4B462DBA35A9C6E541F218CB4A44F6F9FC88F4B4CC522803FA78E320467D89DC594A89B9718278C390023E9A367EDC39614216835EC52511F0ABAD50A37B742603D8ECA51491AC9A0F61B8A0AE8C09831869F2BF140277A0DA761C57856191FB3D6BCA46D51AC32A52FA6012B8AF5531F1E361751EC530B502B9001CAD88C0E921D4F809CA97C06278C0503B17BAE6B082168C34AB558BAC649EC3A69D2D136804E89B4FC952AF03C5056A6CA50D130934CBA7FA852BB950328E6BA2BFCF86C7319C96E5AC7172B03A000D678E4734BF756645816DCFA5710D65F77B994C1D12000502CC31478258694CFEE378707F7111E7337A0EBBD8EA3E91459AEB73B310DEE37464DF317FB6BBBD6A4DB32B505F7F6D0D5A6C8BE439514BAA032CB41864647F64F18B414BA2A2BF7AEF787D1F84B2EFDF5935857C9A6167CA426109FEBA69EE58FEF126F3F98FBC46570EF50DD3F502044DBD580E5DCFD214DA8788B7104D4A77C4006AC153E704B395F061118D5898155A7BC758C13D6D9B381F40B1998FFBB520D78110956D7E01EB07F2AA4CE132C3CDE594E3FEF45F2FD2C6B8B2C75B8C232DEC3C82BDF494E846D8AD466F8F234FE2698C90B203C989F9EBE77DF2126CE4C765E19BCBC628F6B70FFEE9214B88E27CF989939EF396D513BDD2CA737EDB8C6845E5883D283445F3FB8F662F0CFC29F405A592C8C0D68575361B09BA4D1398D61B552D239F897D84B8D46A6E1B113D76AE9BABA8D5617B3ACC1A8F4AFBA8597BA96CF872A5AE48BE79A44771937D01D0EF76C99C1C99C7EE94DBDFE3FBA41B69DEC9F4B1858E3D4F488CAEA52692C9334ADB39A8FEDC815A1E4D7057AE7CF4BD2A67B02141F98306D4A67C759414F03AE3A9D2C0F1090B29C8833E3500ED05FF6175D29408D8DB6D0651AFC77142FA7F44114274C0575B4F2EAF27714B56F450DE6F02423B4BEDC090E91ECD92F5DF5B9D053E095149B069FB60D51BB700A188EABD493773B7BEBA99CA21E981BF14188926E5F2DB6348B8E85AE4E2D498F116C9A240567F71B9D86B8173A42BA29100F02322DE24241DF8333F7A7A2A8C71513B734BC7E35D25F469B27F9B0883E1B62E1C4FC60FC6EB4A1E9B1AD1DD26A8D64D27944577E8ABE51EA225B0FFE27B5592D6EA5FBAA81BE6E3657FBBE67D359D0D18622545E8C1093D542F31FEBD00E0C687BB66D6F4E8F3FA0AD435F303F1108CE3604FF199E5DBF7E7309EBECA4ADB0F2AED26B87E7B50C23F0AA8370EEABFEEF273B64EFAD3167D78689907C500FAB9AC160968BA738AC40B23F50BEAD01C6343D7B7190034C79FFDD250938A84E499D5583F5213287F495DF9008DB8A9A51DFEA454A8215683A53A6A5CE5BFDA0D827704203B13441743 |
387 | 20170722033935 2 6 100 8191 2 D84B8E9B7259F34AA46062684AD05873FD407C5FA804FFBC429D0DED5B497259FFF7F3C26D7A4C21592FCD658B607A5BDE7C4EAA7F5A3B6B713EAEDD5D0D47029CF51556BAFBBC91819DDA500332F7CE6777565C34CE56ED26BFE90830291C460891DDFEBF4FFFE5F217602081211E73EEC97612AC2C9FE8988738F0DC0FD2241B3C54357109D82FAAB532DB9C18B53B543D43B533FD67E36547972674968EB83AEE7EFC9F2AAF2C610C452EEA89A4FF5089BA6922F35128A844F6350A70671DD53C205AC7A75A1659CD3E57D385AB0BD78AF14DC129B1172884F1FCF5D795B6031A2BEB2410948A422D21AD3A215C85720F5EE695E235E36832E0A559DACDBD2B7CA3A1317CA005A963B49E3337829C40974C70F47540D89AAE625A1FD110874DC13D6E7B5711021F0CFD94C46D87582EBFF78EB2412B6D91DC0250A0B805F5E3B096ACB247C2A247A39164337FB3CB818AD4A950E6347B801DA742E5B532F4FC48815AA62B894FDB23B6E4D448DB62713AA46CC33C7D83D60A44B2B70FE8D841A56A4150A01C82B19CB93AE0AAA65E765EFF95933AC55742E0240744158B9CEF9DA8E18C3736BC8894306BF86D9B927CD62252ABFD39A3B352168336404C6B5F0DB4AEE518069274266E0C424F45D487B500BC087F49B53B0FA822D306D8B272E66C035569FFF1A191D354728253419E5B49115B88EB94E8452A28A3D699E73709FFD95D30430D45B730AF36D90C4DF464241C059375E8215E02294DFEAF8169BF1B47F7EE6F6479CB772D552D604589CE0A80BF7C38AFB2D8111D02A11D02264E2D1634128E53835E5815A92C19027DD08493C23344883FA5F2802A67E586221E2E22DFB8C67D75903F7211D52D19DC92DAC9C2E55D5D23E4B316F4F36AE24526C0D7CB5D43A5FA64CD621E9BBEB44ADAC0FB50237872CF13E0008D4D8F3B53B7F97FF8FD71E7B6ECCE359F5FBF3F6128DFD062C1E1177C6DDB97CBB9ED8AF082BF55D2DDF76920020A8AFCA08235752DE7542237D273F0324767F297BD98F573642B54D55AAEDCD9A5DB65DDF24F1E52489E22A8CDB204653F03A45261E20C965772CC92D71AD8A9DCA1205CA72C3AE330CA9ABFC93BD4C0591279661736B131AE905D5EB899BED456FE76BE26C4700FDF3238999B250DEF64F155FED724D3E38BDCAAD31CAC112BF39F0BC0CD3A906BEA43676E126616B51546C9E282117163EA7B38F255797A803F663EA16485FE4A8C2510409D3B6EF809EAC2BF897277A17A9C6E58709B57591FDA62321CEC2F545FCDB0AEEAF33ED378707C81711E003F1E77EEEE292F61E37FDC2FC4F97CEA96E1A4FB8643A9F18C9D6780BC5B815E43AF81E3B1D47D68D5A559C194F35A143B9EAE147D975BEF88D55AF1408BC1705C02F112616D08BFE6A44C0EFAC373CBB557E4953C79ACAA22537929DAE9CB | 387 | 20171225003349 2 6 100 8191 2 EE490FB8716A6562BB33AA7C81BBFDCF2BC4C7257F68FC888B014D4D06FF9501EDEC5B4B462DBA35A9C6E541F218CB4A44F6F9FC88F4B4CC522803FA78E320467D89DC594A89B9718278C390023E9A367EDC39614216835EC52511F0ABAD50A37B742603D8ECA51491AC9A0F61B8A0AE8C09831869F2BF140277A0DA761C57856191FB3D6BCA46D51AC32A52FA6012B8AF5531F1E361751EC530B502B9001CAD88C0E921D4F809CA97C06278C0503B17BAE6B082168C34AB558BAC649EC3A69D2D136804E89B4FC952AF03C5056A6CA50D130934CBA7FA852BB950328E6BA2BFCF86C7319C96E5AC7172B03A000D678E4734BF756645816DCFA5710D65F77B994C1D12000502CC31478258694CFEE378707F7111E7337A0EBBD8EA3E91459AEB73B310DEE37464DF317FB6BBBD6A4DB32B505F7F6D0D5A6C8BE439514BAA032CB41864647F64F18B414BA2A2BF7AEF787D1F84B2EFDF5935857C9A6167CA426109FEBA69EE58FEF126F3F98FBC46570EF50DD3F502044DBD580E5DCFD214DA8788B7104D4A77C4006AC153E704B395F061118D5898155A7BC758C13D6D9B381F40B1998FFBB520D78110956D7E01EB07F2AA4CE132C3CDE594E3FEF45F2FD2C6B8B2C75B8C232DEC3C82BDF494E846D8AD466F8F234FE2698C90B203C989F9EBE77DF2126CE4C765E19BCBC628F6B70FFEE9214B88E27CF989939EF396D513BDD2CA737EDB8C6845E5883D283445F3FB8F662F0CFC29F405A592C8C0D68575361B09BA4D1398D61B552D239F897D84B8D46A6E1B113D76AE9BABA8D5617B3ACC1A8F4AFBA8597BA96CF872A5AE48BE79A44771937D01D0EF76C99C1C99C7EE94DBDFE3FBA41B69DEC9F4B1858E3D4F488CAEA52692C9334ADB39A8FEDC815A1E4D7057AE7CF4BD2A67B02141F98306D4A67C759414F03AE3A9D2C0F1090B29C8833E3500ED05FF6175D29408D8DB6D0651AFC77142FA7F44114274C0575B4F2EAF27714B56F450DE6F02423B4BEDC090E91ECD92F5DF5B9D053E095149B069FB60D51BB700A188EABD493773B7BEBA99CA21E981BF14188926E5F2DB6348B8E85AE4E2D498F116C9A240567F71B9D86B8173A42BA29100F02322DE24241DF8333F7A7A2A8C71513B734BC7E35D25F469B27F9B0883E1B62E1C4FC60FC6EB4A1E9B1AD1DD26A8D64D27944577E8ABE51EA225B0FFE27B5592D6EA5FBAA81BE6E3657FBBE67D359D0D18622545E8C1093D542F31FEBD00E0C687BB66D6F4E8F3FA0AD435F303F1108CE3604FF199E5DBF7E7309EBECA4ADB0F2AED26B87E7B50C23F0AA8370EEABFEEF273B64EFAD3167D78689907C500FAB9AC160968BA738AC40B23F50BEAD01C6343D7B7190034C79FFDD250938A84E499D5583F5213287F495DF9008DB8A9A51DFEA454A8215683A53A6A5CE5BFDA0D827704203B152CE5AB |
388 | 20170722155118 2 6 100 8191 5 D84B8E9B7259F34AA46062684AD05873FD407C5FA804FFBC429D0DED5B497259FFF7F3C26D7A4C21592FCD658B607A5BDE7C4EAA7F5A3B6B713EAEDD5D0D47029CF51556BAFBBC91819DDA500332F7CE6777565C34CE56ED26BFE90830291C460891DDFEBF4FFFE5F217602081211E73EEC97612AC2C9FE8988738F0DC0FD2241B3C54357109D82FAAB532DB9C18B53B543D43B533FD67E36547972674968EB83AEE7EFC9F2AAF2C610C452EEA89A4FF5089BA6922F35128A844F6350A70671DD53C205AC7A75A1659CD3E57D385AB0BD78AF14DC129B1172884F1FCF5D795B6031A2BEB2410948A422D21AD3A215C85720F5EE695E235E36832E0A559DACDBD2B7CA3A1317CA005A963B49E3337829C40974C70F47540D89AAE625A1FD110874DC13D6E7B5711021F0CFD94C46D87582EBFF78EB2412B6D91DC0250A0B805F5E3B096ACB247C2A247A39164337FB3CB818AD4A950E6347B801DA742E5B532F4FC48815AA62B894FDB23B6E4D448DB62713AA46CC33C7D83D60A44B2B70FE8D841A56A4150A01C82B19CB93AE0AAA65E765EFF95933AC55742E0240744158B9CEF9DA8E18C3736BC8894306BF86D9B927CD62252ABFD39A3B352168336404C6B5F0DB4AEE518069274266E0C424F45D487B500BC087F49B53B0FA822D306D8B272E66C035569FFF1A191D354728253419E5B49115B88EB94E8452A28A3D699E73709FFD95D30430D45B730AF36D90C4DF464241C059375E8215E02294DFEAF8169BF1B47F7EE6F6479CB772D552D604589CE0A80BF7C38AFB2D8111D02A11D02264E2D1634128E53835E5815A92C19027DD08493C23344883FA5F2802A67E586221E2E22DFB8C67D75903F7211D52D19DC92DAC9C2E55D5D23E4B316F4F36AE24526C0D7CB5D43A5FA64CD621E9BBEB44ADAC0FB50237872CF13E0008D4D8F3B53B7F97FF8FD71E7B6ECCE359F5FBF3F6128DFD062C1E1177C6DDB97CBB9ED8AF082BF55D2DDF76920020A8AFCA08235752DE7542237D273F0324767F297BD98F573642B54D55AAEDCD9A5DB65DDF24F1E52489E22A8CDB204653F03A45261E20C965772CC92D71AD8A9DCA1205CA72C3AE330CA9ABFC93BD4C0591279661736B131AE905D5EB899BED456FE76BE26C4700FDF3238999B250DEF64F155FED724D3E38BDCAAD31CAC112BF39F0BC0CD3A906BEA43676E126616B51546C9E282117163EA7B38F255797A803F663EA16485FE4A8C2510409D3B6EF809EAC2BF897277A17A9C6E58709B57591FDA62321CEC2F545FCDB0AEEAF33ED378707C81711E003F1E77EEEE292F61E37FDC2FC4F97CEA96E1A4FB8643A9F18C9D6780BC5B815E43AF81E3B1D47D68D5A559C194F35A143B9EAE147D975BEF88D55AF1408BC1705C02F112616D08BFE6A44C0EFAC373CBB557E4953C79ACAA225379320A3B27 | 388 | 20171225004348 2 6 100 8191 5 EE490FB8716A6562BB33AA7C81BBFDCF2BC4C7257F68FC888B014D4D06FF9501EDEC5B4B462DBA35A9C6E541F218CB4A44F6F9FC88F4B4CC522803FA78E320467D89DC594A89B9718278C390023E9A367EDC39614216835EC52511F0ABAD50A37B742603D8ECA51491AC9A0F61B8A0AE8C09831869F2BF140277A0DA761C57856191FB3D6BCA46D51AC32A52FA6012B8AF5531F1E361751EC530B502B9001CAD88C0E921D4F809CA97C06278C0503B17BAE6B082168C34AB558BAC649EC3A69D2D136804E89B4FC952AF03C5056A6CA50D130934CBA7FA852BB950328E6BA2BFCF86C7319C96E5AC7172B03A000D678E4734BF756645816DCFA5710D65F77B994C1D12000502CC31478258694CFEE378707F7111E7337A0EBBD8EA3E91459AEB73B310DEE37464DF317FB6BBBD6A4DB32B505F7F6D0D5A6C8BE439514BAA032CB41864647F64F18B414BA2A2BF7AEF787D1F84B2EFDF5935857C9A6167CA426109FEBA69EE58FEF126F3F98FBC46570EF50DD3F502044DBD580E5DCFD214DA8788B7104D4A77C4006AC153E704B395F061118D5898155A7BC758C13D6D9B381F40B1998FFBB520D78110956D7E01EB07F2AA4CE132C3CDE594E3FEF45F2FD2C6B8B2C75B8C232DEC3C82BDF494E846D8AD466F8F234FE2698C90B203C989F9EBE77DF2126CE4C765E19BCBC628F6B70FFEE9214B88E27CF989939EF396D513BDD2CA737EDB8C6845E5883D283445F3FB8F662F0CFC29F405A592C8C0D68575361B09BA4D1398D61B552D239F897D84B8D46A6E1B113D76AE9BABA8D5617B3ACC1A8F4AFBA8597BA96CF872A5AE48BE79A44771937D01D0EF76C99C1C99C7EE94DBDFE3FBA41B69DEC9F4B1858E3D4F488CAEA52692C9334ADB39A8FEDC815A1E4D7057AE7CF4BD2A67B02141F98306D4A67C759414F03AE3A9D2C0F1090B29C8833E3500ED05FF6175D29408D8DB6D0651AFC77142FA7F44114274C0575B4F2EAF27714B56F450DE6F02423B4BEDC090E91ECD92F5DF5B9D053E095149B069FB60D51BB700A188EABD493773B7BEBA99CA21E981BF14188926E5F2DB6348B8E85AE4E2D498F116C9A240567F71B9D86B8173A42BA29100F02322DE24241DF8333F7A7A2A8C71513B734BC7E35D25F469B27F9B0883E1B62E1C4FC60FC6EB4A1E9B1AD1DD26A8D64D27944577E8ABE51EA225B0FFE27B5592D6EA5FBAA81BE6E3657FBBE67D359D0D18622545E8C1093D542F31FEBD00E0C687BB66D6F4E8F3FA0AD435F303F1108CE3604FF199E5DBF7E7309EBECA4ADB0F2AED26B87E7B50C23F0AA8370EEABFEEF273B64EFAD3167D78689907C500FAB9AC160968BA738AC40B23F50BEAD01C6343D7B7190034C79FFDD250938A84E499D5583F5213287F495DF9008DB8A9A51DFEA454A8215683A53A6A5CE5BFDA0D827704203B153F6807 |
389 | 20170722181755 2 6 100 8191 2 D84B8E9B7259F34AA46062684AD05873FD407C5FA804FFBC429D0DED5B497259FFF7F3C26D7A4C21592FCD658B607A5BDE7C4EAA7F5A3B6B713EAEDD5D0D47029CF51556BAFBBC91819DDA500332F7CE6777565C34CE56ED26BFE90830291C460891DDFEBF4FFFE5F217602081211E73EEC97612AC2C9FE8988738F0DC0FD2241B3C54357109D82FAAB532DB9C18B53B543D43B533FD67E36547972674968EB83AEE7EFC9F2AAF2C610C452EEA89A4FF5089BA6922F35128A844F6350A70671DD53C205AC7A75A1659CD3E57D385AB0BD78AF14DC129B1172884F1FCF5D795B6031A2BEB2410948A422D21AD3A215C85720F5EE695E235E36832E0A559DACDBD2B7CA3A1317CA005A963B49E3337829C40974C70F47540D89AAE625A1FD110874DC13D6E7B5711021F0CFD94C46D87582EBFF78EB2412B6D91DC0250A0B805F5E3B096ACB247C2A247A39164337FB3CB818AD4A950E6347B801DA742E5B532F4FC48815AA62B894FDB23B6E4D448DB62713AA46CC33C7D83D60A44B2B70FE8D841A56A4150A01C82B19CB93AE0AAA65E765EFF95933AC55742E0240744158B9CEF9DA8E18C3736BC8894306BF86D9B927CD62252ABFD39A3B352168336404C6B5F0DB4AEE518069274266E0C424F45D487B500BC087F49B53B0FA822D306D8B272E66C035569FFF1A191D354728253419E5B49115B88EB94E8452A28A3D699E73709FFD95D30430D45B730AF36D90C4DF464241C059375E8215E02294DFEAF8169BF1B47F7EE6F6479CB772D552D604589CE0A80BF7C38AFB2D8111D02A11D02264E2D1634128E53835E5815A92C19027DD08493C23344883FA5F2802A67E586221E2E22DFB8C67D75903F7211D52D19DC92DAC9C2E55D5D23E4B316F4F36AE24526C0D7CB5D43A5FA64CD621E9BBEB44ADAC0FB50237872CF13E0008D4D8F3B53B7F97FF8FD71E7B6ECCE359F5FBF3F6128DFD062C1E1177C6DDB97CBB9ED8AF082BF55D2DDF76920020A8AFCA08235752DE7542237D273F0324767F297BD98F573642B54D55AAEDCD9A5DB65DDF24F1E52489E22A8CDB204653F03A45261E20C965772CC92D71AD8A9DCA1205CA72C3AE330CA9ABFC93BD4C0591279661736B131AE905D5EB899BED456FE76BE26C4700FDF3238999B250DEF64F155FED724D3E38BDCAAD31CAC112BF39F0BC0CD3A906BEA43676E126616B51546C9E282117163EA7B38F255797A803F663EA16485FE4A8C2510409D3B6EF809EAC2BF897277A17A9C6E58709B57591FDA62321CEC2F545FCDB0AEEAF33ED378707C81711E003F1E77EEEE292F61E37FDC2FC4F97CEA96E1A4FB8643A9F18C9D6780BC5B815E43AF81E3B1D47D68D5A559C194F35A143B9EAE147D975BEF88D55AF1408BC1705C02F112616D08BFE6A44C0EFAC373CBB557E4953C79ACAA22537933A7A623 | 389 | 20171225041057 2 6 100 8191 5 EE490FB8716A6562BB33AA7C81BBFDCF2BC4C7257F68FC888B014D4D06FF9501EDEC5B4B462DBA35A9C6E541F218CB4A44F6F9FC88F4B4CC522803FA78E320467D89DC594A89B9718278C390023E9A367EDC39614216835EC52511F0ABAD50A37B742603D8ECA51491AC9A0F61B8A0AE8C09831869F2BF140277A0DA761C57856191FB3D6BCA46D51AC32A52FA6012B8AF5531F1E361751EC530B502B9001CAD88C0E921D4F809CA97C06278C0503B17BAE6B082168C34AB558BAC649EC3A69D2D136804E89B4FC952AF03C5056A6CA50D130934CBA7FA852BB950328E6BA2BFCF86C7319C96E5AC7172B03A000D678E4734BF756645816DCFA5710D65F77B994C1D12000502CC31478258694CFEE378707F7111E7337A0EBBD8EA3E91459AEB73B310DEE37464DF317FB6BBBD6A4DB32B505F7F6D0D5A6C8BE439514BAA032CB41864647F64F18B414BA2A2BF7AEF787D1F84B2EFDF5935857C9A6167CA426109FEBA69EE58FEF126F3F98FBC46570EF50DD3F502044DBD580E5DCFD214DA8788B7104D4A77C4006AC153E704B395F061118D5898155A7BC758C13D6D9B381F40B1998FFBB520D78110956D7E01EB07F2AA4CE132C3CDE594E3FEF45F2FD2C6B8B2C75B8C232DEC3C82BDF494E846D8AD466F8F234FE2698C90B203C989F9EBE77DF2126CE4C765E19BCBC628F6B70FFEE9214B88E27CF989939EF396D513BDD2CA737EDB8C6845E5883D283445F3FB8F662F0CFC29F405A592C8C0D68575361B09BA4D1398D61B552D239F897D84B8D46A6E1B113D76AE9BABA8D5617B3ACC1A8F4AFBA8597BA96CF872A5AE48BE79A44771937D01D0EF76C99C1C99C7EE94DBDFE3FBA41B69DEC9F4B1858E3D4F488CAEA52692C9334ADB39A8FEDC815A1E4D7057AE7CF4BD2A67B02141F98306D4A67C759414F03AE3A9D2C0F1090B29C8833E3500ED05FF6175D29408D8DB6D0651AFC77142FA7F44114274C0575B4F2EAF27714B56F450DE6F02423B4BEDC090E91ECD92F5DF5B9D053E095149B069FB60D51BB700A188EABD493773B7BEBA99CA21E981BF14188926E5F2DB6348B8E85AE4E2D498F116C9A240567F71B9D86B8173A42BA29100F02322DE24241DF8333F7A7A2A8C71513B734BC7E35D25F469B27F9B0883E1B62E1C4FC60FC6EB4A1E9B1AD1DD26A8D64D27944577E8ABE51EA225B0FFE27B5592D6EA5FBAA81BE6E3657FBBE67D359D0D18622545E8C1093D542F31FEBD00E0C687BB66D6F4E8F3FA0AD435F303F1108CE3604FF199E5DBF7E7309EBECA4ADB0F2AED26B87E7B50C23F0AA8370EEABFEEF273B64EFAD3167D78689907C500FAB9AC160968BA738AC40B23F50BEAD01C6343D7B7190034C79FFDD250938A84E499D5583F5213287F495DF9008DB8A9A51DFEA454A8215683A53A6A5CE5BFDA0D827704203B176011EF |
390 | 20170722212038 2 6 100 8191 2 D84B8E9B7259F34AA46062684AD05873FD407C5FA804FFBC429D0DED5B497259FFF7F3C26D7A4C21592FCD658B607A5BDE7C4EAA7F5A3B6B713EAEDD5D0D47029CF51556BAFBBC91819DDA500332F7CE6777565C34CE56ED26BFE90830291C460891DDFEBF4FFFE5F217602081211E73EEC97612AC2C9FE8988738F0DC0FD2241B3C54357109D82FAAB532DB9C18B53B543D43B533FD67E36547972674968EB83AEE7EFC9F2AAF2C610C452EEA89A4FF5089BA6922F35128A844F6350A70671DD53C205AC7A75A1659CD3E57D385AB0BD78AF14DC129B1172884F1FCF5D795B6031A2BEB2410948A422D21AD3A215C85720F5EE695E235E36832E0A559DACDBD2B7CA3A1317CA005A963B49E3337829C40974C70F47540D89AAE625A1FD110874DC13D6E7B5711021F0CFD94C46D87582EBFF78EB2412B6D91DC0250A0B805F5E3B096ACB247C2A247A39164337FB3CB818AD4A950E6347B801DA742E5B532F4FC48815AA62B894FDB23B6E4D448DB62713AA46CC33C7D83D60A44B2B70FE8D841A56A4150A01C82B19CB93AE0AAA65E765EFF95933AC55742E0240744158B9CEF9DA8E18C3736BC8894306BF86D9B927CD62252ABFD39A3B352168336404C6B5F0DB4AEE518069274266E0C424F45D487B500BC087F49B53B0FA822D306D8B272E66C035569FFF1A191D354728253419E5B49115B88EB94E8452A28A3D699E73709FFD95D30430D45B730AF36D90C4DF464241C059375E8215E02294DFEAF8169BF1B47F7EE6F6479CB772D552D604589CE0A80BF7C38AFB2D8111D02A11D02264E2D1634128E53835E5815A92C19027DD08493C23344883FA5F2802A67E586221E2E22DFB8C67D75903F7211D52D19DC92DAC9C2E55D5D23E4B316F4F36AE24526C0D7CB5D43A5FA64CD621E9BBEB44ADAC0FB50237872CF13E0008D4D8F3B53B7F97FF8FD71E7B6ECCE359F5FBF3F6128DFD062C1E1177C6DDB97CBB9ED8AF082BF55D2DDF76920020A8AFCA08235752DE7542237D273F0324767F297BD98F573642B54D55AAEDCD9A5DB65DDF24F1E52489E22A8CDB204653F03A45261E20C965772CC92D71AD8A9DCA1205CA72C3AE330CA9ABFC93BD4C0591279661736B131AE905D5EB899BED456FE76BE26C4700FDF3238999B250DEF64F155FED724D3E38BDCAAD31CAC112BF39F0BC0CD3A906BEA43676E126616B51546C9E282117163EA7B38F255797A803F663EA16485FE4A8C2510409D3B6EF809EAC2BF897277A17A9C6E58709B57591FDA62321CEC2F545FCDB0AEEAF33ED378707C81711E003F1E77EEEE292F61E37FDC2FC4F97CEA96E1A4FB8643A9F18C9D6780BC5B815E43AF81E3B1D47D68D5A559C194F35A143B9EAE147D975BEF88D55AF1408BC1705C02F112616D08BFE6A44C0EFAC373CBB557E4953C79ACAA225379359D2C63 | 390 | 20171225091911 2 6 100 8191 2 EE490FB8716A6562BB33AA7C81BBFDCF2BC4C7257F68FC888B014D4D06FF9501EDEC5B4B462DBA35A9C6E541F218CB4A44F6F9FC88F4B4CC522803FA78E320467D89DC594A89B9718278C390023E9A367EDC39614216835EC52511F0ABAD50A37B742603D8ECA51491AC9A0F61B8A0AE8C09831869F2BF140277A0DA761C57856191FB3D6BCA46D51AC32A52FA6012B8AF5531F1E361751EC530B502B9001CAD88C0E921D4F809CA97C06278C0503B17BAE6B082168C34AB558BAC649EC3A69D2D136804E89B4FC952AF03C5056A6CA50D130934CBA7FA852BB950328E6BA2BFCF86C7319C96E5AC7172B03A000D678E4734BF756645816DCFA5710D65F77B994C1D12000502CC31478258694CFEE378707F7111E7337A0EBBD8EA3E91459AEB73B310DEE37464DF317FB6BBBD6A4DB32B505F7F6D0D5A6C8BE439514BAA032CB41864647F64F18B414BA2A2BF7AEF787D1F84B2EFDF5935857C9A6167CA426109FEBA69EE58FEF126F3F98FBC46570EF50DD3F502044DBD580E5DCFD214DA8788B7104D4A77C4006AC153E704B395F061118D5898155A7BC758C13D6D9B381F40B1998FFBB520D78110956D7E01EB07F2AA4CE132C3CDE594E3FEF45F2FD2C6B8B2C75B8C232DEC3C82BDF494E846D8AD466F8F234FE2698C90B203C989F9EBE77DF2126CE4C765E19BCBC628F6B70FFEE9214B88E27CF989939EF396D513BDD2CA737EDB8C6845E5883D283445F3FB8F662F0CFC29F405A592C8C0D68575361B09BA4D1398D61B552D239F897D84B8D46A6E1B113D76AE9BABA8D5617B3ACC1A8F4AFBA8597BA96CF872A5AE48BE79A44771937D01D0EF76C99C1C99C7EE94DBDFE3FBA41B69DEC9F4B1858E3D4F488CAEA52692C9334ADB39A8FEDC815A1E4D7057AE7CF4BD2A67B02141F98306D4A67C759414F03AE3A9D2C0F1090B29C8833E3500ED05FF6175D29408D8DB6D0651AFC77142FA7F44114274C0575B4F2EAF27714B56F450DE6F02423B4BEDC090E91ECD92F5DF5B9D053E095149B069FB60D51BB700A188EABD493773B7BEBA99CA21E981BF14188926E5F2DB6348B8E85AE4E2D498F116C9A240567F71B9D86B8173A42BA29100F02322DE24241DF8333F7A7A2A8C71513B734BC7E35D25F469B27F9B0883E1B62E1C4FC60FC6EB4A1E9B1AD1DD26A8D64D27944577E8ABE51EA225B0FFE27B5592D6EA5FBAA81BE6E3657FBBE67D359D0D18622545E8C1093D542F31FEBD00E0C687BB66D6F4E8F3FA0AD435F303F1108CE3604FF199E5DBF7E7309EBECA4ADB0F2AED26B87E7B50C23F0AA8370EEABFEEF273B64EFAD3167D78689907C500FAB9AC160968BA738AC40B23F50BEAD01C6343D7B7190034C79FFDD250938A84E499D5583F5213287F495DF9008DB8A9A51DFEA454A8215683A53A6A5CE5BFDA0D827704203B1A71C743 |
391 | 20170722230812 2 6 100 8191 5 D84B8E9B7259F34AA46062684AD05873FD407C5FA804FFBC429D0DED5B497259FFF7F3C26D7A4C21592FCD658B607A5BDE7C4EAA7F5A3B6B713EAEDD5D0D47029CF51556BAFBBC91819DDA500332F7CE6777565C34CE56ED26BFE90830291C460891DDFEBF4FFFE5F217602081211E73EEC97612AC2C9FE8988738F0DC0FD2241B3C54357109D82FAAB532DB9C18B53B543D43B533FD67E36547972674968EB83AEE7EFC9F2AAF2C610C452EEA89A4FF5089BA6922F35128A844F6350A70671DD53C205AC7A75A1659CD3E57D385AB0BD78AF14DC129B1172884F1FCF5D795B6031A2BEB2410948A422D21AD3A215C85720F5EE695E235E36832E0A559DACDBD2B7CA3A1317CA005A963B49E3337829C40974C70F47540D89AAE625A1FD110874DC13D6E7B5711021F0CFD94C46D87582EBFF78EB2412B6D91DC0250A0B805F5E3B096ACB247C2A247A39164337FB3CB818AD4A950E6347B801DA742E5B532F4FC48815AA62B894FDB23B6E4D448DB62713AA46CC33C7D83D60A44B2B70FE8D841A56A4150A01C82B19CB93AE0AAA65E765EFF95933AC55742E0240744158B9CEF9DA8E18C3736BC8894306BF86D9B927CD62252ABFD39A3B352168336404C6B5F0DB4AEE518069274266E0C424F45D487B500BC087F49B53B0FA822D306D8B272E66C035569FFF1A191D354728253419E5B49115B88EB94E8452A28A3D699E73709FFD95D30430D45B730AF36D90C4DF464241C059375E8215E02294DFEAF8169BF1B47F7EE6F6479CB772D552D604589CE0A80BF7C38AFB2D8111D02A11D02264E2D1634128E53835E5815A92C19027DD08493C23344883FA5F2802A67E586221E2E22DFB8C67D75903F7211D52D19DC92DAC9C2E55D5D23E4B316F4F36AE24526C0D7CB5D43A5FA64CD621E9BBEB44ADAC0FB50237872CF13E0008D4D8F3B53B7F97FF8FD71E7B6ECCE359F5FBF3F6128DFD062C1E1177C6DDB97CBB9ED8AF082BF55D2DDF76920020A8AFCA08235752DE7542237D273F0324767F297BD98F573642B54D55AAEDCD9A5DB65DDF24F1E52489E22A8CDB204653F03A45261E20C965772CC92D71AD8A9DCA1205CA72C3AE330CA9ABFC93BD4C0591279661736B131AE905D5EB899BED456FE76BE26C4700FDF3238999B250DEF64F155FED724D3E38BDCAAD31CAC112BF39F0BC0CD3A906BEA43676E126616B51546C9E282117163EA7B38F255797A803F663EA16485FE4A8C2510409D3B6EF809EAC2BF897277A17A9C6E58709B57591FDA62321CEC2F545FCDB0AEEAF33ED378707C81711E003F1E77EEEE292F61E37FDC2FC4F97CEA96E1A4FB8643A9F18C9D6780BC5B815E43AF81E3B1D47D68D5A559C194F35A143B9EAE147D975BEF88D55AF1408BC1705C02F112616D08BFE6A44C0EFAC373CBB557E4953C79ACAA22537936C5DA37 | 391 | 20171225162026 2 6 100 8191 2 EE490FB8716A6562BB33AA7C81BBFDCF2BC4C7257F68FC888B014D4D06FF9501EDEC5B4B462DBA35A9C6E541F218CB4A44F6F9FC88F4B4CC522803FA78E320467D89DC594A89B9718278C390023E9A367EDC39614216835EC52511F0ABAD50A37B742603D8ECA51491AC9A0F61B8A0AE8C09831869F2BF140277A0DA761C57856191FB3D6BCA46D51AC32A52FA6012B8AF5531F1E361751EC530B502B9001CAD88C0E921D4F809CA97C06278C0503B17BAE6B082168C34AB558BAC649EC3A69D2D136804E89B4FC952AF03C5056A6CA50D130934CBA7FA852BB950328E6BA2BFCF86C7319C96E5AC7172B03A000D678E4734BF756645816DCFA5710D65F77B994C1D12000502CC31478258694CFEE378707F7111E7337A0EBBD8EA3E91459AEB73B310DEE37464DF317FB6BBBD6A4DB32B505F7F6D0D5A6C8BE439514BAA032CB41864647F64F18B414BA2A2BF7AEF787D1F84B2EFDF5935857C9A6167CA426109FEBA69EE58FEF126F3F98FBC46570EF50DD3F502044DBD580E5DCFD214DA8788B7104D4A77C4006AC153E704B395F061118D5898155A7BC758C13D6D9B381F40B1998FFBB520D78110956D7E01EB07F2AA4CE132C3CDE594E3FEF45F2FD2C6B8B2C75B8C232DEC3C82BDF494E846D8AD466F8F234FE2698C90B203C989F9EBE77DF2126CE4C765E19BCBC628F6B70FFEE9214B88E27CF989939EF396D513BDD2CA737EDB8C6845E5883D283445F3FB8F662F0CFC29F405A592C8C0D68575361B09BA4D1398D61B552D239F897D84B8D46A6E1B113D76AE9BABA8D5617B3ACC1A8F4AFBA8597BA96CF872A5AE48BE79A44771937D01D0EF76C99C1C99C7EE94DBDFE3FBA41B69DEC9F4B1858E3D4F488CAEA52692C9334ADB39A8FEDC815A1E4D7057AE7CF4BD2A67B02141F98306D4A67C759414F03AE3A9D2C0F1090B29C8833E3500ED05FF6175D29408D8DB6D0651AFC77142FA7F44114274C0575B4F2EAF27714B56F450DE6F02423B4BEDC090E91ECD92F5DF5B9D053E095149B069FB60D51BB700A188EABD493773B7BEBA99CA21E981BF14188926E5F2DB6348B8E85AE4E2D498F116C9A240567F71B9D86B8173A42BA29100F02322DE24241DF8333F7A7A2A8C71513B734BC7E35D25F469B27F9B0883E1B62E1C4FC60FC6EB4A1E9B1AD1DD26A8D64D27944577E8ABE51EA225B0FFE27B5592D6EA5FBAA81BE6E3657FBBE67D359D0D18622545E8C1093D542F31FEBD00E0C687BB66D6F4E8F3FA0AD435F303F1108CE3604FF199E5DBF7E7309EBECA4ADB0F2AED26B87E7B50C23F0AA8370EEABFEEF273B64EFAD3167D78689907C500FAB9AC160968BA738AC40B23F50BEAD01C6343D7B7190034C79FFDD250938A84E499D5583F5213287F495DF9008DB8A9A51DFEA454A8215683A53A6A5CE5BFDA0D827704203B1EB91123 |
392 | 20170723005838 2 6 100 8191 5 D84B8E9B7259F34AA46062684AD05873FD407C5FA804FFBC429D0DED5B497259FFF7F3C26D7A4C21592FCD658B607A5BDE7C4EAA7F5A3B6B713EAEDD5D0D47029CF51556BAFBBC91819DDA500332F7CE6777565C34CE56ED26BFE90830291C460891DDFEBF4FFFE5F217602081211E73EEC97612AC2C9FE8988738F0DC0FD2241B3C54357109D82FAAB532DB9C18B53B543D43B533FD67E36547972674968EB83AEE7EFC9F2AAF2C610C452EEA89A4FF5089BA6922F35128A844F6350A70671DD53C205AC7A75A1659CD3E57D385AB0BD78AF14DC129B1172884F1FCF5D795B6031A2BEB2410948A422D21AD3A215C85720F5EE695E235E36832E0A559DACDBD2B7CA3A1317CA005A963B49E3337829C40974C70F47540D89AAE625A1FD110874DC13D6E7B5711021F0CFD94C46D87582EBFF78EB2412B6D91DC0250A0B805F5E3B096ACB247C2A247A39164337FB3CB818AD4A950E6347B801DA742E5B532F4FC48815AA62B894FDB23B6E4D448DB62713AA46CC33C7D83D60A44B2B70FE8D841A56A4150A01C82B19CB93AE0AAA65E765EFF95933AC55742E0240744158B9CEF9DA8E18C3736BC8894306BF86D9B927CD62252ABFD39A3B352168336404C6B5F0DB4AEE518069274266E0C424F45D487B500BC087F49B53B0FA822D306D8B272E66C035569FFF1A191D354728253419E5B49115B88EB94E8452A28A3D699E73709FFD95D30430D45B730AF36D90C4DF464241C059375E8215E02294DFEAF8169BF1B47F7EE6F6479CB772D552D604589CE0A80BF7C38AFB2D8111D02A11D02264E2D1634128E53835E5815A92C19027DD08493C23344883FA5F2802A67E586221E2E22DFB8C67D75903F7211D52D19DC92DAC9C2E55D5D23E4B316F4F36AE24526C0D7CB5D43A5FA64CD621E9BBEB44ADAC0FB50237872CF13E0008D4D8F3B53B7F97FF8FD71E7B6ECCE359F5FBF3F6128DFD062C1E1177C6DDB97CBB9ED8AF082BF55D2DDF76920020A8AFCA08235752DE7542237D273F0324767F297BD98F573642B54D55AAEDCD9A5DB65DDF24F1E52489E22A8CDB204653F03A45261E20C965772CC92D71AD8A9DCA1205CA72C3AE330CA9ABFC93BD4C0591279661736B131AE905D5EB899BED456FE76BE26C4700FDF3238999B250DEF64F155FED724D3E38BDCAAD31CAC112BF39F0BC0CD3A906BEA43676E126616B51546C9E282117163EA7B38F255797A803F663EA16485FE4A8C2510409D3B6EF809EAC2BF897277A17A9C6E58709B57591FDA62321CEC2F545FCDB0AEEAF33ED378707C81711E003F1E77EEEE292F61E37FDC2FC4F97CEA96E1A4FB8643A9F18C9D6780BC5B815E43AF81E3B1D47D68D5A559C194F35A143B9EAE147D975BEF88D55AF1408BC1705C02F112616D08BFE6A44C0EFAC373CBB557E4953C79ACAA22537937F9469F | 392 | 20171225192243 2 6 100 8191 2 EE490FB8716A6562BB33AA7C81BBFDCF2BC4C7257F68FC888B014D4D06FF9501EDEC5B4B462DBA35A9C6E541F218CB4A44F6F9FC88F4B4CC522803FA78E320467D89DC594A89B9718278C390023E9A367EDC39614216835EC52511F0ABAD50A37B742603D8ECA51491AC9A0F61B8A0AE8C09831869F2BF140277A0DA761C57856191FB3D6BCA46D51AC32A52FA6012B8AF5531F1E361751EC530B502B9001CAD88C0E921D4F809CA97C06278C0503B17BAE6B082168C34AB558BAC649EC3A69D2D136804E89B4FC952AF03C5056A6CA50D130934CBA7FA852BB950328E6BA2BFCF86C7319C96E5AC7172B03A000D678E4734BF756645816DCFA5710D65F77B994C1D12000502CC31478258694CFEE378707F7111E7337A0EBBD8EA3E91459AEB73B310DEE37464DF317FB6BBBD6A4DB32B505F7F6D0D5A6C8BE439514BAA032CB41864647F64F18B414BA2A2BF7AEF787D1F84B2EFDF5935857C9A6167CA426109FEBA69EE58FEF126F3F98FBC46570EF50DD3F502044DBD580E5DCFD214DA8788B7104D4A77C4006AC153E704B395F061118D5898155A7BC758C13D6D9B381F40B1998FFBB520D78110956D7E01EB07F2AA4CE132C3CDE594E3FEF45F2FD2C6B8B2C75B8C232DEC3C82BDF494E846D8AD466F8F234FE2698C90B203C989F9EBE77DF2126CE4C765E19BCBC628F6B70FFEE9214B88E27CF989939EF396D513BDD2CA737EDB8C6845E5883D283445F3FB8F662F0CFC29F405A592C8C0D68575361B09BA4D1398D61B552D239F897D84B8D46A6E1B113D76AE9BABA8D5617B3ACC1A8F4AFBA8597BA96CF872A5AE48BE79A44771937D01D0EF76C99C1C99C7EE94DBDFE3FBA41B69DEC9F4B1858E3D4F488CAEA52692C9334ADB39A8FEDC815A1E4D7057AE7CF4BD2A67B02141F98306D4A67C759414F03AE3A9D2C0F1090B29C8833E3500ED05FF6175D29408D8DB6D0651AFC77142FA7F44114274C0575B4F2EAF27714B56F450DE6F02423B4BEDC090E91ECD92F5DF5B9D053E095149B069FB60D51BB700A188EABD493773B7BEBA99CA21E981BF14188926E5F2DB6348B8E85AE4E2D498F116C9A240567F71B9D86B8173A42BA29100F02322DE24241DF8333F7A7A2A8C71513B734BC7E35D25F469B27F9B0883E1B62E1C4FC60FC6EB4A1E9B1AD1DD26A8D64D27944577E8ABE51EA225B0FFE27B5592D6EA5FBAA81BE6E3657FBBE67D359D0D18622545E8C1093D542F31FEBD00E0C687BB66D6F4E8F3FA0AD435F303F1108CE3604FF199E5DBF7E7309EBECA4ADB0F2AED26B87E7B50C23F0AA8370EEABFEEF273B64EFAD3167D78689907C500FAB9AC160968BA738AC40B23F50BEAD01C6343D7B7190034C79FFDD250938A84E499D5583F5213287F495DF9008DB8A9A51DFEA454A8215683A53A6A5CE5BFDA0D827704203B20715EBB |
393 | 20170723041453 2 6 100 8191 2 D84B8E9B7259F34AA46062684AD05873FD407C5FA804FFBC429D0DED5B497259FFF7F3C26D7A4C21592FCD658B607A5BDE7C4EAA7F5A3B6B713EAEDD5D0D47029CF51556BAFBBC91819DDA500332F7CE6777565C34CE56ED26BFE90830291C460891DDFEBF4FFFE5F217602081211E73EEC97612AC2C9FE8988738F0DC0FD2241B3C54357109D82FAAB532DB9C18B53B543D43B533FD67E36547972674968EB83AEE7EFC9F2AAF2C610C452EEA89A4FF5089BA6922F35128A844F6350A70671DD53C205AC7A75A1659CD3E57D385AB0BD78AF14DC129B1172884F1FCF5D795B6031A2BEB2410948A422D21AD3A215C85720F5EE695E235E36832E0A559DACDBD2B7CA3A1317CA005A963B49E3337829C40974C70F47540D89AAE625A1FD110874DC13D6E7B5711021F0CFD94C46D87582EBFF78EB2412B6D91DC0250A0B805F5E3B096ACB247C2A247A39164337FB3CB818AD4A950E6347B801DA742E5B532F4FC48815AA62B894FDB23B6E4D448DB62713AA46CC33C7D83D60A44B2B70FE8D841A56A4150A01C82B19CB93AE0AAA65E765EFF95933AC55742E0240744158B9CEF9DA8E18C3736BC8894306BF86D9B927CD62252ABFD39A3B352168336404C6B5F0DB4AEE518069274266E0C424F45D487B500BC087F49B53B0FA822D306D8B272E66C035569FFF1A191D354728253419E5B49115B88EB94E8452A28A3D699E73709FFD95D30430D45B730AF36D90C4DF464241C059375E8215E02294DFEAF8169BF1B47F7EE6F6479CB772D552D604589CE0A80BF7C38AFB2D8111D02A11D02264E2D1634128E53835E5815A92C19027DD08493C23344883FA5F2802A67E586221E2E22DFB8C67D75903F7211D52D19DC92DAC9C2E55D5D23E4B316F4F36AE24526C0D7CB5D43A5FA64CD621E9BBEB44ADAC0FB50237872CF13E0008D4D8F3B53B7F97FF8FD71E7B6ECCE359F5FBF3F6128DFD062C1E1177C6DDB97CBB9ED8AF082BF55D2DDF76920020A8AFCA08235752DE7542237D273F0324767F297BD98F573642B54D55AAEDCD9A5DB65DDF24F1E52489E22A8CDB204653F03A45261E20C965772CC92D71AD8A9DCA1205CA72C3AE330CA9ABFC93BD4C0591279661736B131AE905D5EB899BED456FE76BE26C4700FDF3238999B250DEF64F155FED724D3E38BDCAAD31CAC112BF39F0BC0CD3A906BEA43676E126616B51546C9E282117163EA7B38F255797A803F663EA16485FE4A8C2510409D3B6EF809EAC2BF897277A17A9C6E58709B57591FDA62321CEC2F545FCDB0AEEAF33ED378707C81711E003F1E77EEEE292F61E37FDC2FC4F97CEA96E1A4FB8643A9F18C9D6780BC5B815E43AF81E3B1D47D68D5A559C194F35A143B9EAE147D975BEF88D55AF1408BC1705C02F112616D08BFE6A44C0EFAC373CBB557E4953C79ACAA2253793A1DBF1B | 393 | 20171225215524 2 6 100 8191 2 EE490FB8716A6562BB33AA7C81BBFDCF2BC4C7257F68FC888B014D4D06FF9501EDEC5B4B462DBA35A9C6E541F218CB4A44F6F9FC88F4B4CC522803FA78E320467D89DC594A89B9718278C390023E9A367EDC39614216835EC52511F0ABAD50A37B742603D8ECA51491AC9A0F61B8A0AE8C09831869F2BF140277A0DA761C57856191FB3D6BCA46D51AC32A52FA6012B8AF5531F1E361751EC530B502B9001CAD88C0E921D4F809CA97C06278C0503B17BAE6B082168C34AB558BAC649EC3A69D2D136804E89B4FC952AF03C5056A6CA50D130934CBA7FA852BB950328E6BA2BFCF86C7319C96E5AC7172B03A000D678E4734BF756645816DCFA5710D65F77B994C1D12000502CC31478258694CFEE378707F7111E7337A0EBBD8EA3E91459AEB73B310DEE37464DF317FB6BBBD6A4DB32B505F7F6D0D5A6C8BE439514BAA032CB41864647F64F18B414BA2A2BF7AEF787D1F84B2EFDF5935857C9A6167CA426109FEBA69EE58FEF126F3F98FBC46570EF50DD3F502044DBD580E5DCFD214DA8788B7104D4A77C4006AC153E704B395F061118D5898155A7BC758C13D6D9B381F40B1998FFBB520D78110956D7E01EB07F2AA4CE132C3CDE594E3FEF45F2FD2C6B8B2C75B8C232DEC3C82BDF494E846D8AD466F8F234FE2698C90B203C989F9EBE77DF2126CE4C765E19BCBC628F6B70FFEE9214B88E27CF989939EF396D513BDD2CA737EDB8C6845E5883D283445F3FB8F662F0CFC29F405A592C8C0D68575361B09BA4D1398D61B552D239F897D84B8D46A6E1B113D76AE9BABA8D5617B3ACC1A8F4AFBA8597BA96CF872A5AE48BE79A44771937D01D0EF76C99C1C99C7EE94DBDFE3FBA41B69DEC9F4B1858E3D4F488CAEA52692C9334ADB39A8FEDC815A1E4D7057AE7CF4BD2A67B02141F98306D4A67C759414F03AE3A9D2C0F1090B29C8833E3500ED05FF6175D29408D8DB6D0651AFC77142FA7F44114274C0575B4F2EAF27714B56F450DE6F02423B4BEDC090E91ECD92F5DF5B9D053E095149B069FB60D51BB700A188EABD493773B7BEBA99CA21E981BF14188926E5F2DB6348B8E85AE4E2D498F116C9A240567F71B9D86B8173A42BA29100F02322DE24241DF8333F7A7A2A8C71513B734BC7E35D25F469B27F9B0883E1B62E1C4FC60FC6EB4A1E9B1AD1DD26A8D64D27944577E8ABE51EA225B0FFE27B5592D6EA5FBAA81BE6E3657FBBE67D359D0D18622545E8C1093D542F31FEBD00E0C687BB66D6F4E8F3FA0AD435F303F1108CE3604FF199E5DBF7E7309EBECA4ADB0F2AED26B87E7B50C23F0AA8370EEABFEEF273B64EFAD3167D78689907C500FAB9AC160968BA738AC40B23F50BEAD01C6343D7B7190034C79FFDD250938A84E499D5583F5213287F495DF9008DB8A9A51DFEA454A8215683A53A6A5CE5BFDA0D827704203B21F31B1B |
394 | 20170723051250 2 6 100 8191 2 D84B8E9B7259F34AA46062684AD05873FD407C5FA804FFBC429D0DED5B497259FFF7F3C26D7A4C21592FCD658B607A5BDE7C4EAA7F5A3B6B713EAEDD5D0D47029CF51556BAFBBC91819DDA500332F7CE6777565C34CE56ED26BFE90830291C460891DDFEBF4FFFE5F217602081211E73EEC97612AC2C9FE8988738F0DC0FD2241B3C54357109D82FAAB532DB9C18B53B543D43B533FD67E36547972674968EB83AEE7EFC9F2AAF2C610C452EEA89A4FF5089BA6922F35128A844F6350A70671DD53C205AC7A75A1659CD3E57D385AB0BD78AF14DC129B1172884F1FCF5D795B6031A2BEB2410948A422D21AD3A215C85720F5EE695E235E36832E0A559DACDBD2B7CA3A1317CA005A963B49E3337829C40974C70F47540D89AAE625A1FD110874DC13D6E7B5711021F0CFD94C46D87582EBFF78EB2412B6D91DC0250A0B805F5E3B096ACB247C2A247A39164337FB3CB818AD4A950E6347B801DA742E5B532F4FC48815AA62B894FDB23B6E4D448DB62713AA46CC33C7D83D60A44B2B70FE8D841A56A4150A01C82B19CB93AE0AAA65E765EFF95933AC55742E0240744158B9CEF9DA8E18C3736BC8894306BF86D9B927CD62252ABFD39A3B352168336404C6B5F0DB4AEE518069274266E0C424F45D487B500BC087F49B53B0FA822D306D8B272E66C035569FFF1A191D354728253419E5B49115B88EB94E8452A28A3D699E73709FFD95D30430D45B730AF36D90C4DF464241C059375E8215E02294DFEAF8169BF1B47F7EE6F6479CB772D552D604589CE0A80BF7C38AFB2D8111D02A11D02264E2D1634128E53835E5815A92C19027DD08493C23344883FA5F2802A67E586221E2E22DFB8C67D75903F7211D52D19DC92DAC9C2E55D5D23E4B316F4F36AE24526C0D7CB5D43A5FA64CD621E9BBEB44ADAC0FB50237872CF13E0008D4D8F3B53B7F97FF8FD71E7B6ECCE359F5FBF3F6128DFD062C1E1177C6DDB97CBB9ED8AF082BF55D2DDF76920020A8AFCA08235752DE7542237D273F0324767F297BD98F573642B54D55AAEDCD9A5DB65DDF24F1E52489E22A8CDB204653F03A45261E20C965772CC92D71AD8A9DCA1205CA72C3AE330CA9ABFC93BD4C0591279661736B131AE905D5EB899BED456FE76BE26C4700FDF3238999B250DEF64F155FED724D3E38BDCAAD31CAC112BF39F0BC0CD3A906BEA43676E126616B51546C9E282117163EA7B38F255797A803F663EA16485FE4A8C2510409D3B6EF809EAC2BF897277A17A9C6E58709B57591FDA62321CEC2F545FCDB0AEEAF33ED378707C81711E003F1E77EEEE292F61E37FDC2FC4F97CEA96E1A4FB8643A9F18C9D6780BC5B815E43AF81E3B1D47D68D5A559C194F35A143B9EAE147D975BEF88D55AF1408BC1705C02F112616D08BFE6A44C0EFAC373CBB557E4953C79ACAA2253793AB9FC9B | 394 | 20171226063458 2 6 100 8191 5 EE490FB8716A6562BB33AA7C81BBFDCF2BC4C7257F68FC888B014D4D06FF9501EDEC5B4B462DBA35A9C6E541F218CB4A44F6F9FC88F4B4CC522803FA78E320467D89DC594A89B9718278C390023E9A367EDC39614216835EC52511F0ABAD50A37B742603D8ECA51491AC9A0F61B8A0AE8C09831869F2BF140277A0DA761C57856191FB3D6BCA46D51AC32A52FA6012B8AF5531F1E361751EC530B502B9001CAD88C0E921D4F809CA97C06278C0503B17BAE6B082168C34AB558BAC649EC3A69D2D136804E89B4FC952AF03C5056A6CA50D130934CBA7FA852BB950328E6BA2BFCF86C7319C96E5AC7172B03A000D678E4734BF756645816DCFA5710D65F77B994C1D12000502CC31478258694CFEE378707F7111E7337A0EBBD8EA3E91459AEB73B310DEE37464DF317FB6BBBD6A4DB32B505F7F6D0D5A6C8BE439514BAA032CB41864647F64F18B414BA2A2BF7AEF787D1F84B2EFDF5935857C9A6167CA426109FEBA69EE58FEF126F3F98FBC46570EF50DD3F502044DBD580E5DCFD214DA8788B7104D4A77C4006AC153E704B395F061118D5898155A7BC758C13D6D9B381F40B1998FFBB520D78110956D7E01EB07F2AA4CE132C3CDE594E3FEF45F2FD2C6B8B2C75B8C232DEC3C82BDF494E846D8AD466F8F234FE2698C90B203C989F9EBE77DF2126CE4C765E19BCBC628F6B70FFEE9214B88E27CF989939EF396D513BDD2CA737EDB8C6845E5883D283445F3FB8F662F0CFC29F405A592C8C0D68575361B09BA4D1398D61B552D239F897D84B8D46A6E1B113D76AE9BABA8D5617B3ACC1A8F4AFBA8597BA96CF872A5AE48BE79A44771937D01D0EF76C99C1C99C7EE94DBDFE3FBA41B69DEC9F4B1858E3D4F488CAEA52692C9334ADB39A8FEDC815A1E4D7057AE7CF4BD2A67B02141F98306D4A67C759414F03AE3A9D2C0F1090B29C8833E3500ED05FF6175D29408D8DB6D0651AFC77142FA7F44114274C0575B4F2EAF27714B56F450DE6F02423B4BEDC090E91ECD92F5DF5B9D053E095149B069FB60D51BB700A188EABD493773B7BEBA99CA21E981BF14188926E5F2DB6348B8E85AE4E2D498F116C9A240567F71B9D86B8173A42BA29100F02322DE24241DF8333F7A7A2A8C71513B734BC7E35D25F469B27F9B0883E1B62E1C4FC60FC6EB4A1E9B1AD1DD26A8D64D27944577E8ABE51EA225B0FFE27B5592D6EA5FBAA81BE6E3657FBBE67D359D0D18622545E8C1093D542F31FEBD00E0C687BB66D6F4E8F3FA0AD435F303F1108CE3604FF199E5DBF7E7309EBECA4ADB0F2AED26B87E7B50C23F0AA8370EEABFEEF273B64EFAD3167D78689907C500FAB9AC160968BA738AC40B23F50BEAD01C6343D7B7190034C79FFDD250938A84E499D5583F5213287F495DF9008DB8A9A51DFEA454A8215683A53A6A5CE5BFDA0D827704203B272E398F |
395 | 20170723112206 2 6 100 8191 5 D84B8E9B7259F34AA46062684AD05873FD407C5FA804FFBC429D0DED5B497259FFF7F3C26D7A4C21592FCD658B607A5BDE7C4EAA7F5A3B6B713EAEDD5D0D47029CF51556BAFBBC91819DDA500332F7CE6777565C34CE56ED26BFE90830291C460891DDFEBF4FFFE5F217602081211E73EEC97612AC2C9FE8988738F0DC0FD2241B3C54357109D82FAAB532DB9C18B53B543D43B533FD67E36547972674968EB83AEE7EFC9F2AAF2C610C452EEA89A4FF5089BA6922F35128A844F6350A70671DD53C205AC7A75A1659CD3E57D385AB0BD78AF14DC129B1172884F1FCF5D795B6031A2BEB2410948A422D21AD3A215C85720F5EE695E235E36832E0A559DACDBD2B7CA3A1317CA005A963B49E3337829C40974C70F47540D89AAE625A1FD110874DC13D6E7B5711021F0CFD94C46D87582EBFF78EB2412B6D91DC0250A0B805F5E3B096ACB247C2A247A39164337FB3CB818AD4A950E6347B801DA742E5B532F4FC48815AA62B894FDB23B6E4D448DB62713AA46CC33C7D83D60A44B2B70FE8D841A56A4150A01C82B19CB93AE0AAA65E765EFF95933AC55742E0240744158B9CEF9DA8E18C3736BC8894306BF86D9B927CD62252ABFD39A3B352168336404C6B5F0DB4AEE518069274266E0C424F45D487B500BC087F49B53B0FA822D306D8B272E66C035569FFF1A191D354728253419E5B49115B88EB94E8452A28A3D699E73709FFD95D30430D45B730AF36D90C4DF464241C059375E8215E02294DFEAF8169BF1B47F7EE6F6479CB772D552D604589CE0A80BF7C38AFB2D8111D02A11D02264E2D1634128E53835E5815A92C19027DD08493C23344883FA5F2802A67E586221E2E22DFB8C67D75903F7211D52D19DC92DAC9C2E55D5D23E4B316F4F36AE24526C0D7CB5D43A5FA64CD621E9BBEB44ADAC0FB50237872CF13E0008D4D8F3B53B7F97FF8FD71E7B6ECCE359F5FBF3F6128DFD062C1E1177C6DDB97CBB9ED8AF082BF55D2DDF76920020A8AFCA08235752DE7542237D273F0324767F297BD98F573642B54D55AAEDCD9A5DB65DDF24F1E52489E22A8CDB204653F03A45261E20C965772CC92D71AD8A9DCA1205CA72C3AE330CA9ABFC93BD4C0591279661736B131AE905D5EB899BED456FE76BE26C4700FDF3238999B250DEF64F155FED724D3E38BDCAAD31CAC112BF39F0BC0CD3A906BEA43676E126616B51546C9E282117163EA7B38F255797A803F663EA16485FE4A8C2510409D3B6EF809EAC2BF897277A17A9C6E58709B57591FDA62321CEC2F545FCDB0AEEAF33ED378707C81711E003F1E77EEEE292F61E37FDC2FC4F97CEA96E1A4FB8643A9F18C9D6780BC5B815E43AF81E3B1D47D68D5A559C194F35A143B9EAE147D975BEF88D55AF1408BC1705C02F112616D08BFE6A44C0EFAC373CBB557E4953C79ACAA2253793EBF09F7 | 395 | 20171226064036 2 6 100 8191 5 EE490FB8716A6562BB33AA7C81BBFDCF2BC4C7257F68FC888B014D4D06FF9501EDEC5B4B462DBA35A9C6E541F218CB4A44F6F9FC88F4B4CC522803FA78E320467D89DC594A89B9718278C390023E9A367EDC39614216835EC52511F0ABAD50A37B742603D8ECA51491AC9A0F61B8A0AE8C09831869F2BF140277A0DA761C57856191FB3D6BCA46D51AC32A52FA6012B8AF5531F1E361751EC530B502B9001CAD88C0E921D4F809CA97C06278C0503B17BAE6B082168C34AB558BAC649EC3A69D2D136804E89B4FC952AF03C5056A6CA50D130934CBA7FA852BB950328E6BA2BFCF86C7319C96E5AC7172B03A000D678E4734BF756645816DCFA5710D65F77B994C1D12000502CC31478258694CFEE378707F7111E7337A0EBBD8EA3E91459AEB73B310DEE37464DF317FB6BBBD6A4DB32B505F7F6D0D5A6C8BE439514BAA032CB41864647F64F18B414BA2A2BF7AEF787D1F84B2EFDF5935857C9A6167CA426109FEBA69EE58FEF126F3F98FBC46570EF50DD3F502044DBD580E5DCFD214DA8788B7104D4A77C4006AC153E704B395F061118D5898155A7BC758C13D6D9B381F40B1998FFBB520D78110956D7E01EB07F2AA4CE132C3CDE594E3FEF45F2FD2C6B8B2C75B8C232DEC3C82BDF494E846D8AD466F8F234FE2698C90B203C989F9EBE77DF2126CE4C765E19BCBC628F6B70FFEE9214B88E27CF989939EF396D513BDD2CA737EDB8C6845E5883D283445F3FB8F662F0CFC29F405A592C8C0D68575361B09BA4D1398D61B552D239F897D84B8D46A6E1B113D76AE9BABA8D5617B3ACC1A8F4AFBA8597BA96CF872A5AE48BE79A44771937D01D0EF76C99C1C99C7EE94DBDFE3FBA41B69DEC9F4B1858E3D4F488CAEA52692C9334ADB39A8FEDC815A1E4D7057AE7CF4BD2A67B02141F98306D4A67C759414F03AE3A9D2C0F1090B29C8833E3500ED05FF6175D29408D8DB6D0651AFC77142FA7F44114274C0575B4F2EAF27714B56F450DE6F02423B4BEDC090E91ECD92F5DF5B9D053E095149B069FB60D51BB700A188EABD493773B7BEBA99CA21E981BF14188926E5F2DB6348B8E85AE4E2D498F116C9A240567F71B9D86B8173A42BA29100F02322DE24241DF8333F7A7A2A8C71513B734BC7E35D25F469B27F9B0883E1B62E1C4FC60FC6EB4A1E9B1AD1DD26A8D64D27944577E8ABE51EA225B0FFE27B5592D6EA5FBAA81BE6E3657FBBE67D359D0D18622545E8C1093D542F31FEBD00E0C687BB66D6F4E8F3FA0AD435F303F1108CE3604FF199E5DBF7E7309EBECA4ADB0F2AED26B87E7B50C23F0AA8370EEABFEEF273B64EFAD3167D78689907C500FAB9AC160968BA738AC40B23F50BEAD01C6343D7B7190034C79FFDD250938A84E499D5583F5213287F495DF9008DB8A9A51DFEA454A8215683A53A6A5CE5BFDA0D827704203B27337437 |
396 | 20170723140224 2 6 100 8191 2 D84B8E9B7259F34AA46062684AD05873FD407C5FA804FFBC429D0DED5B497259FFF7F3C26D7A4C21592FCD658B607A5BDE7C4EAA7F5A3B6B713EAEDD5D0D47029CF51556BAFBBC91819DDA500332F7CE6777565C34CE56ED26BFE90830291C460891DDFEBF4FFFE5F217602081211E73EEC97612AC2C9FE8988738F0DC0FD2241B3C54357109D82FAAB532DB9C18B53B543D43B533FD67E36547972674968EB83AEE7EFC9F2AAF2C610C452EEA89A4FF5089BA6922F35128A844F6350A70671DD53C205AC7A75A1659CD3E57D385AB0BD78AF14DC129B1172884F1FCF5D795B6031A2BEB2410948A422D21AD3A215C85720F5EE695E235E36832E0A559DACDBD2B7CA3A1317CA005A963B49E3337829C40974C70F47540D89AAE625A1FD110874DC13D6E7B5711021F0CFD94C46D87582EBFF78EB2412B6D91DC0250A0B805F5E3B096ACB247C2A247A39164337FB3CB818AD4A950E6347B801DA742E5B532F4FC48815AA62B894FDB23B6E4D448DB62713AA46CC33C7D83D60A44B2B70FE8D841A56A4150A01C82B19CB93AE0AAA65E765EFF95933AC55742E0240744158B9CEF9DA8E18C3736BC8894306BF86D9B927CD62252ABFD39A3B352168336404C6B5F0DB4AEE518069274266E0C424F45D487B500BC087F49B53B0FA822D306D8B272E66C035569FFF1A191D354728253419E5B49115B88EB94E8452A28A3D699E73709FFD95D30430D45B730AF36D90C4DF464241C059375E8215E02294DFEAF8169BF1B47F7EE6F6479CB772D552D604589CE0A80BF7C38AFB2D8111D02A11D02264E2D1634128E53835E5815A92C19027DD08493C23344883FA5F2802A67E586221E2E22DFB8C67D75903F7211D52D19DC92DAC9C2E55D5D23E4B316F4F36AE24526C0D7CB5D43A5FA64CD621E9BBEB44ADAC0FB50237872CF13E0008D4D8F3B53B7F97FF8FD71E7B6ECCE359F5FBF3F6128DFD062C1E1177C6DDB97CBB9ED8AF082BF55D2DDF76920020A8AFCA08235752DE7542237D273F0324767F297BD98F573642B54D55AAEDCD9A5DB65DDF24F1E52489E22A8CDB204653F03A45261E20C965772CC92D71AD8A9DCA1205CA72C3AE330CA9ABFC93BD4C0591279661736B131AE905D5EB899BED456FE76BE26C4700FDF3238999B250DEF64F155FED724D3E38BDCAAD31CAC112BF39F0BC0CD3A906BEA43676E126616B51546C9E282117163EA7B38F255797A803F663EA16485FE4A8C2510409D3B6EF809EAC2BF897277A17A9C6E58709B57591FDA62321CEC2F545FCDB0AEEAF33ED378707C81711E003F1E77EEEE292F61E37FDC2FC4F97CEA96E1A4FB8643A9F18C9D6780BC5B815E43AF81E3B1D47D68D5A559C194F35A143B9EAE147D975BEF88D55AF1408BC1705C02F112616D08BFE6A44C0EFAC373CBB557E4953C79ACAA2253794072005B | 396 | 20171226213456 2 6 100 8191 5 EE490FB8716A6562BB33AA7C81BBFDCF2BC4C7257F68FC888B014D4D06FF9501EDEC5B4B462DBA35A9C6E541F218CB4A44F6F9FC88F4B4CC522803FA78E320467D89DC594A89B9718278C390023E9A367EDC39614216835EC52511F0ABAD50A37B742603D8ECA51491AC9A0F61B8A0AE8C09831869F2BF140277A0DA761C57856191FB3D6BCA46D51AC32A52FA6012B8AF5531F1E361751EC530B502B9001CAD88C0E921D4F809CA97C06278C0503B17BAE6B082168C34AB558BAC649EC3A69D2D136804E89B4FC952AF03C5056A6CA50D130934CBA7FA852BB950328E6BA2BFCF86C7319C96E5AC7172B03A000D678E4734BF756645816DCFA5710D65F77B994C1D12000502CC31478258694CFEE378707F7111E7337A0EBBD8EA3E91459AEB73B310DEE37464DF317FB6BBBD6A4DB32B505F7F6D0D5A6C8BE439514BAA032CB41864647F64F18B414BA2A2BF7AEF787D1F84B2EFDF5935857C9A6167CA426109FEBA69EE58FEF126F3F98FBC46570EF50DD3F502044DBD580E5DCFD214DA8788B7104D4A77C4006AC153E704B395F061118D5898155A7BC758C13D6D9B381F40B1998FFBB520D78110956D7E01EB07F2AA4CE132C3CDE594E3FEF45F2FD2C6B8B2C75B8C232DEC3C82BDF494E846D8AD466F8F234FE2698C90B203C989F9EBE77DF2126CE4C765E19BCBC628F6B70FFEE9214B88E27CF989939EF396D513BDD2CA737EDB8C6845E5883D283445F3FB8F662F0CFC29F405A592C8C0D68575361B09BA4D1398D61B552D239F897D84B8D46A6E1B113D76AE9BABA8D5617B3ACC1A8F4AFBA8597BA96CF872A5AE48BE79A44771937D01D0EF76C99C1C99C7EE94DBDFE3FBA41B69DEC9F4B1858E3D4F488CAEA52692C9334ADB39A8FEDC815A1E4D7057AE7CF4BD2A67B02141F98306D4A67C759414F03AE3A9D2C0F1090B29C8833E3500ED05FF6175D29408D8DB6D0651AFC77142FA7F44114274C0575B4F2EAF27714B56F450DE6F02423B4BEDC090E91ECD92F5DF5B9D053E095149B069FB60D51BB700A188EABD493773B7BEBA99CA21E981BF14188926E5F2DB6348B8E85AE4E2D498F116C9A240567F71B9D86B8173A42BA29100F02322DE24241DF8333F7A7A2A8C71513B734BC7E35D25F469B27F9B0883E1B62E1C4FC60FC6EB4A1E9B1AD1DD26A8D64D27944577E8ABE51EA225B0FFE27B5592D6EA5FBAA81BE6E3657FBBE67D359D0D18622545E8C1093D542F31FEBD00E0C687BB66D6F4E8F3FA0AD435F303F1108CE3604FF199E5DBF7E7309EBECA4ADB0F2AED26B87E7B50C23F0AA8370EEABFEEF273B64EFAD3167D78689907C500FAB9AC160968BA738AC40B23F50BEAD01C6343D7B7190034C79FFDD250938A84E499D5583F5213287F495DF9008DB8A9A51DFEA454A8215683A53A6A5CE5BFDA0D827704203B302C487F |
397 | 20170723170945 2 6 100 8191 5 D84B8E9B7259F34AA46062684AD05873FD407C5FA804FFBC429D0DED5B497259FFF7F3C26D7A4C21592FCD658B607A5BDE7C4EAA7F5A3B6B713EAEDD5D0D47029CF51556BAFBBC91819DDA500332F7CE6777565C34CE56ED26BFE90830291C460891DDFEBF4FFFE5F217602081211E73EEC97612AC2C9FE8988738F0DC0FD2241B3C54357109D82FAAB532DB9C18B53B543D43B533FD67E36547972674968EB83AEE7EFC9F2AAF2C610C452EEA89A4FF5089BA6922F35128A844F6350A70671DD53C205AC7A75A1659CD3E57D385AB0BD78AF14DC129B1172884F1FCF5D795B6031A2BEB2410948A422D21AD3A215C85720F5EE695E235E36832E0A559DACDBD2B7CA3A1317CA005A963B49E3337829C40974C70F47540D89AAE625A1FD110874DC13D6E7B5711021F0CFD94C46D87582EBFF78EB2412B6D91DC0250A0B805F5E3B096ACB247C2A247A39164337FB3CB818AD4A950E6347B801DA742E5B532F4FC48815AA62B894FDB23B6E4D448DB62713AA46CC33C7D83D60A44B2B70FE8D841A56A4150A01C82B19CB93AE0AAA65E765EFF95933AC55742E0240744158B9CEF9DA8E18C3736BC8894306BF86D9B927CD62252ABFD39A3B352168336404C6B5F0DB4AEE518069274266E0C424F45D487B500BC087F49B53B0FA822D306D8B272E66C035569FFF1A191D354728253419E5B49115B88EB94E8452A28A3D699E73709FFD95D30430D45B730AF36D90C4DF464241C059375E8215E02294DFEAF8169BF1B47F7EE6F6479CB772D552D604589CE0A80BF7C38AFB2D8111D02A11D02264E2D1634128E53835E5815A92C19027DD08493C23344883FA5F2802A67E586221E2E22DFB8C67D75903F7211D52D19DC92DAC9C2E55D5D23E4B316F4F36AE24526C0D7CB5D43A5FA64CD621E9BBEB44ADAC0FB50237872CF13E0008D4D8F3B53B7F97FF8FD71E7B6ECCE359F5FBF3F6128DFD062C1E1177C6DDB97CBB9ED8AF082BF55D2DDF76920020A8AFCA08235752DE7542237D273F0324767F297BD98F573642B54D55AAEDCD9A5DB65DDF24F1E52489E22A8CDB204653F03A45261E20C965772CC92D71AD8A9DCA1205CA72C3AE330CA9ABFC93BD4C0591279661736B131AE905D5EB899BED456FE76BE26C4700FDF3238999B250DEF64F155FED724D3E38BDCAAD31CAC112BF39F0BC0CD3A906BEA43676E126616B51546C9E282117163EA7B38F255797A803F663EA16485FE4A8C2510409D3B6EF809EAC2BF897277A17A9C6E58709B57591FDA62321CEC2F545FCDB0AEEAF33ED378707C81711E003F1E77EEEE292F61E37FDC2FC4F97CEA96E1A4FB8643A9F18C9D6780BC5B815E43AF81E3B1D47D68D5A559C194F35A143B9EAE147D975BEF88D55AF1408BC1705C02F112616D08BFE6A44C0EFAC373CBB557E4953C79ACAA225379427689A7 | 397 | 20171227055343 2 6 100 8191 5 EE490FB8716A6562BB33AA7C81BBFDCF2BC4C7257F68FC888B014D4D06FF9501EDEC5B4B462DBA35A9C6E541F218CB4A44F6F9FC88F4B4CC522803FA78E320467D89DC594A89B9718278C390023E9A367EDC39614216835EC52511F0ABAD50A37B742603D8ECA51491AC9A0F61B8A0AE8C09831869F2BF140277A0DA761C57856191FB3D6BCA46D51AC32A52FA6012B8AF5531F1E361751EC530B502B9001CAD88C0E921D4F809CA97C06278C0503B17BAE6B082168C34AB558BAC649EC3A69D2D136804E89B4FC952AF03C5056A6CA50D130934CBA7FA852BB950328E6BA2BFCF86C7319C96E5AC7172B03A000D678E4734BF756645816DCFA5710D65F77B994C1D12000502CC31478258694CFEE378707F7111E7337A0EBBD8EA3E91459AEB73B310DEE37464DF317FB6BBBD6A4DB32B505F7F6D0D5A6C8BE439514BAA032CB41864647F64F18B414BA2A2BF7AEF787D1F84B2EFDF5935857C9A6167CA426109FEBA69EE58FEF126F3F98FBC46570EF50DD3F502044DBD580E5DCFD214DA8788B7104D4A77C4006AC153E704B395F061118D5898155A7BC758C13D6D9B381F40B1998FFBB520D78110956D7E01EB07F2AA4CE132C3CDE594E3FEF45F2FD2C6B8B2C75B8C232DEC3C82BDF494E846D8AD466F8F234FE2698C90B203C989F9EBE77DF2126CE4C765E19BCBC628F6B70FFEE9214B88E27CF989939EF396D513BDD2CA737EDB8C6845E5883D283445F3FB8F662F0CFC29F405A592C8C0D68575361B09BA4D1398D61B552D239F897D84B8D46A6E1B113D76AE9BABA8D5617B3ACC1A8F4AFBA8597BA96CF872A5AE48BE79A44771937D01D0EF76C99C1C99C7EE94DBDFE3FBA41B69DEC9F4B1858E3D4F488CAEA52692C9334ADB39A8FEDC815A1E4D7057AE7CF4BD2A67B02141F98306D4A67C759414F03AE3A9D2C0F1090B29C8833E3500ED05FF6175D29408D8DB6D0651AFC77142FA7F44114274C0575B4F2EAF27714B56F450DE6F02423B4BEDC090E91ECD92F5DF5B9D053E095149B069FB60D51BB700A188EABD493773B7BEBA99CA21E981BF14188926E5F2DB6348B8E85AE4E2D498F116C9A240567F71B9D86B8173A42BA29100F02322DE24241DF8333F7A7A2A8C71513B734BC7E35D25F469B27F9B0883E1B62E1C4FC60FC6EB4A1E9B1AD1DD26A8D64D27944577E8ABE51EA225B0FFE27B5592D6EA5FBAA81BE6E3657FBBE67D359D0D18622545E8C1093D542F31FEBD00E0C687BB66D6F4E8F3FA0AD435F303F1108CE3604FF199E5DBF7E7309EBECA4ADB0F2AED26B87E7B50C23F0AA8370EEABFEEF273B64EFAD3167D78689907C500FAB9AC160968BA738AC40B23F50BEAD01C6343D7B7190034C79FFDD250938A84E499D5583F5213287F495DF9008DB8A9A51DFEA454A8215683A53A6A5CE5BFDA0D827704203B35235327 |
398 | 20170724050156 2 6 100 8191 5 D84B8E9B7259F34AA46062684AD05873FD407C5FA804FFBC429D0DED5B497259FFF7F3C26D7A4C21592FCD658B607A5BDE7C4EAA7F5A3B6B713EAEDD5D0D47029CF51556BAFBBC91819DDA500332F7CE6777565C34CE56ED26BFE90830291C460891DDFEBF4FFFE5F217602081211E73EEC97612AC2C9FE8988738F0DC0FD2241B3C54357109D82FAAB532DB9C18B53B543D43B533FD67E36547972674968EB83AEE7EFC9F2AAF2C610C452EEA89A4FF5089BA6922F35128A844F6350A70671DD53C205AC7A75A1659CD3E57D385AB0BD78AF14DC129B1172884F1FCF5D795B6031A2BEB2410948A422D21AD3A215C85720F5EE695E235E36832E0A559DACDBD2B7CA3A1317CA005A963B49E3337829C40974C70F47540D89AAE625A1FD110874DC13D6E7B5711021F0CFD94C46D87582EBFF78EB2412B6D91DC0250A0B805F5E3B096ACB247C2A247A39164337FB3CB818AD4A950E6347B801DA742E5B532F4FC48815AA62B894FDB23B6E4D448DB62713AA46CC33C7D83D60A44B2B70FE8D841A56A4150A01C82B19CB93AE0AAA65E765EFF95933AC55742E0240744158B9CEF9DA8E18C3736BC8894306BF86D9B927CD62252ABFD39A3B352168336404C6B5F0DB4AEE518069274266E0C424F45D487B500BC087F49B53B0FA822D306D8B272E66C035569FFF1A191D354728253419E5B49115B88EB94E8452A28A3D699E73709FFD95D30430D45B730AF36D90C4DF464241C059375E8215E02294DFEAF8169BF1B47F7EE6F6479CB772D552D604589CE0A80BF7C38AFB2D8111D02A11D02264E2D1634128E53835E5815A92C19027DD08493C23344883FA5F2802A67E586221E2E22DFB8C67D75903F7211D52D19DC92DAC9C2E55D5D23E4B316F4F36AE24526C0D7CB5D43A5FA64CD621E9BBEB44ADAC0FB50237872CF13E0008D4D8F3B53B7F97FF8FD71E7B6ECCE359F5FBF3F6128DFD062C1E1177C6DDB97CBB9ED8AF082BF55D2DDF76920020A8AFCA08235752DE7542237D273F0324767F297BD98F573642B54D55AAEDCD9A5DB65DDF24F1E52489E22A8CDB204653F03A45261E20C965772CC92D71AD8A9DCA1205CA72C3AE330CA9ABFC93BD4C0591279661736B131AE905D5EB899BED456FE76BE26C4700FDF3238999B250DEF64F155FED724D3E38BDCAAD31CAC112BF39F0BC0CD3A906BEA43676E126616B51546C9E282117163EA7B38F255797A803F663EA16485FE4A8C2510409D3B6EF809EAC2BF897277A17A9C6E58709B57591FDA62321CEC2F545FCDB0AEEAF33ED378707C81711E003F1E77EEEE292F61E37FDC2FC4F97CEA96E1A4FB8643A9F18C9D6780BC5B815E43AF81E3B1D47D68D5A559C194F35A143B9EAE147D975BEF88D55AF1408BC1705C02F112616D08BFE6A44C0EFAC373CBB557E4953C79ACAA2253794A23E407 | 398 | 20171227125423 2 6 100 8191 2 EE490FB8716A6562BB33AA7C81BBFDCF2BC4C7257F68FC888B014D4D06FF9501EDEC5B4B462DBA35A9C6E541F218CB4A44F6F9FC88F4B4CC522803FA78E320467D89DC594A89B9718278C390023E9A367EDC39614216835EC52511F0ABAD50A37B742603D8ECA51491AC9A0F61B8A0AE8C09831869F2BF140277A0DA761C57856191FB3D6BCA46D51AC32A52FA6012B8AF5531F1E361751EC530B502B9001CAD88C0E921D4F809CA97C06278C0503B17BAE6B082168C34AB558BAC649EC3A69D2D136804E89B4FC952AF03C5056A6CA50D130934CBA7FA852BB950328E6BA2BFCF86C7319C96E5AC7172B03A000D678E4734BF756645816DCFA5710D65F77B994C1D12000502CC31478258694CFEE378707F7111E7337A0EBBD8EA3E91459AEB73B310DEE37464DF317FB6BBBD6A4DB32B505F7F6D0D5A6C8BE439514BAA032CB41864647F64F18B414BA2A2BF7AEF787D1F84B2EFDF5935857C9A6167CA426109FEBA69EE58FEF126F3F98FBC46570EF50DD3F502044DBD580E5DCFD214DA8788B7104D4A77C4006AC153E704B395F061118D5898155A7BC758C13D6D9B381F40B1998FFBB520D78110956D7E01EB07F2AA4CE132C3CDE594E3FEF45F2FD2C6B8B2C75B8C232DEC3C82BDF494E846D8AD466F8F234FE2698C90B203C989F9EBE77DF2126CE4C765E19BCBC628F6B70FFEE9214B88E27CF989939EF396D513BDD2CA737EDB8C6845E5883D283445F3FB8F662F0CFC29F405A592C8C0D68575361B09BA4D1398D61B552D239F897D84B8D46A6E1B113D76AE9BABA8D5617B3ACC1A8F4AFBA8597BA96CF872A5AE48BE79A44771937D01D0EF76C99C1C99C7EE94DBDFE3FBA41B69DEC9F4B1858E3D4F488CAEA52692C9334ADB39A8FEDC815A1E4D7057AE7CF4BD2A67B02141F98306D4A67C759414F03AE3A9D2C0F1090B29C8833E3500ED05FF6175D29408D8DB6D0651AFC77142FA7F44114274C0575B4F2EAF27714B56F450DE6F02423B4BEDC090E91ECD92F5DF5B9D053E095149B069FB60D51BB700A188EABD493773B7BEBA99CA21E981BF14188926E5F2DB6348B8E85AE4E2D498F116C9A240567F71B9D86B8173A42BA29100F02322DE24241DF8333F7A7A2A8C71513B734BC7E35D25F469B27F9B0883E1B62E1C4FC60FC6EB4A1E9B1AD1DD26A8D64D27944577E8ABE51EA225B0FFE27B5592D6EA5FBAA81BE6E3657FBBE67D359D0D18622545E8C1093D542F31FEBD00E0C687BB66D6F4E8F3FA0AD435F303F1108CE3604FF199E5DBF7E7309EBECA4ADB0F2AED26B87E7B50C23F0AA8370EEABFEEF273B64EFAD3167D78689907C500FAB9AC160968BA738AC40B23F50BEAD01C6343D7B7190034C79FFDD250938A84E499D5583F5213287F495DF9008DB8A9A51DFEA454A8215683A53A6A5CE5BFDA0D827704203B393B67F3 |
399 | 20170724065019 2 6 100 8191 2 D84B8E9B7259F34AA46062684AD05873FD407C5FA804FFBC429D0DED5B497259FFF7F3C26D7A4C21592FCD658B607A5BDE7C4EAA7F5A3B6B713EAEDD5D0D47029CF51556BAFBBC91819DDA500332F7CE6777565C34CE56ED26BFE90830291C460891DDFEBF4FFFE5F217602081211E73EEC97612AC2C9FE8988738F0DC0FD2241B3C54357109D82FAAB532DB9C18B53B543D43B533FD67E36547972674968EB83AEE7EFC9F2AAF2C610C452EEA89A4FF5089BA6922F35128A844F6350A70671DD53C205AC7A75A1659CD3E57D385AB0BD78AF14DC129B1172884F1FCF5D795B6031A2BEB2410948A422D21AD3A215C85720F5EE695E235E36832E0A559DACDBD2B7CA3A1317CA005A963B49E3337829C40974C70F47540D89AAE625A1FD110874DC13D6E7B5711021F0CFD94C46D87582EBFF78EB2412B6D91DC0250A0B805F5E3B096ACB247C2A247A39164337FB3CB818AD4A950E6347B801DA742E5B532F4FC48815AA62B894FDB23B6E4D448DB62713AA46CC33C7D83D60A44B2B70FE8D841A56A4150A01C82B19CB93AE0AAA65E765EFF95933AC55742E0240744158B9CEF9DA8E18C3736BC8894306BF86D9B927CD62252ABFD39A3B352168336404C6B5F0DB4AEE518069274266E0C424F45D487B500BC087F49B53B0FA822D306D8B272E66C035569FFF1A191D354728253419E5B49115B88EB94E8452A28A3D699E73709FFD95D30430D45B730AF36D90C4DF464241C059375E8215E02294DFEAF8169BF1B47F7EE6F6479CB772D552D604589CE0A80BF7C38AFB2D8111D02A11D02264E2D1634128E53835E5815A92C19027DD08493C23344883FA5F2802A67E586221E2E22DFB8C67D75903F7211D52D19DC92DAC9C2E55D5D23E4B316F4F36AE24526C0D7CB5D43A5FA64CD621E9BBEB44ADAC0FB50237872CF13E0008D4D8F3B53B7F97FF8FD71E7B6ECCE359F5FBF3F6128DFD062C1E1177C6DDB97CBB9ED8AF082BF55D2DDF76920020A8AFCA08235752DE7542237D273F0324767F297BD98F573642B54D55AAEDCD9A5DB65DDF24F1E52489E22A8CDB204653F03A45261E20C965772CC92D71AD8A9DCA1205CA72C3AE330CA9ABFC93BD4C0591279661736B131AE905D5EB899BED456FE76BE26C4700FDF3238999B250DEF64F155FED724D3E38BDCAAD31CAC112BF39F0BC0CD3A906BEA43676E126616B51546C9E282117163EA7B38F255797A803F663EA16485FE4A8C2510409D3B6EF809EAC2BF897277A17A9C6E58709B57591FDA62321CEC2F545FCDB0AEEAF33ED378707C81711E003F1E77EEEE292F61E37FDC2FC4F97CEA96E1A4FB8643A9F18C9D6780BC5B815E43AF81E3B1D47D68D5A559C194F35A143B9EAE147D975BEF88D55AF1408BC1705C02F112616D08BFE6A44C0EFAC373CBB557E4953C79ACAA2253794B47E553 | 399 | 20171227150248 2 6 100 8191 2 EE490FB8716A6562BB33AA7C81BBFDCF2BC4C7257F68FC888B014D4D06FF9501EDEC5B4B462DBA35A9C6E541F218CB4A44F6F9FC88F4B4CC522803FA78E320467D89DC594A89B9718278C390023E9A367EDC39614216835EC52511F0ABAD50A37B742603D8ECA51491AC9A0F61B8A0AE8C09831869F2BF140277A0DA761C57856191FB3D6BCA46D51AC32A52FA6012B8AF5531F1E361751EC530B502B9001CAD88C0E921D4F809CA97C06278C0503B17BAE6B082168C34AB558BAC649EC3A69D2D136804E89B4FC952AF03C5056A6CA50D130934CBA7FA852BB950328E6BA2BFCF86C7319C96E5AC7172B03A000D678E4734BF756645816DCFA5710D65F77B994C1D12000502CC31478258694CFEE378707F7111E7337A0EBBD8EA3E91459AEB73B310DEE37464DF317FB6BBBD6A4DB32B505F7F6D0D5A6C8BE439514BAA032CB41864647F64F18B414BA2A2BF7AEF787D1F84B2EFDF5935857C9A6167CA426109FEBA69EE58FEF126F3F98FBC46570EF50DD3F502044DBD580E5DCFD214DA8788B7104D4A77C4006AC153E704B395F061118D5898155A7BC758C13D6D9B381F40B1998FFBB520D78110956D7E01EB07F2AA4CE132C3CDE594E3FEF45F2FD2C6B8B2C75B8C232DEC3C82BDF494E846D8AD466F8F234FE2698C90B203C989F9EBE77DF2126CE4C765E19BCBC628F6B70FFEE9214B88E27CF989939EF396D513BDD2CA737EDB8C6845E5883D283445F3FB8F662F0CFC29F405A592C8C0D68575361B09BA4D1398D61B552D239F897D84B8D46A6E1B113D76AE9BABA8D5617B3ACC1A8F4AFBA8597BA96CF872A5AE48BE79A44771937D01D0EF76C99C1C99C7EE94DBDFE3FBA41B69DEC9F4B1858E3D4F488CAEA52692C9334ADB39A8FEDC815A1E4D7057AE7CF4BD2A67B02141F98306D4A67C759414F03AE3A9D2C0F1090B29C8833E3500ED05FF6175D29408D8DB6D0651AFC77142FA7F44114274C0575B4F2EAF27714B56F450DE6F02423B4BEDC090E91ECD92F5DF5B9D053E095149B069FB60D51BB700A188EABD493773B7BEBA99CA21E981BF14188926E5F2DB6348B8E85AE4E2D498F116C9A240567F71B9D86B8173A42BA29100F02322DE24241DF8333F7A7A2A8C71513B734BC7E35D25F469B27F9B0883E1B62E1C4FC60FC6EB4A1E9B1AD1DD26A8D64D27944577E8ABE51EA225B0FFE27B5592D6EA5FBAA81BE6E3657FBBE67D359D0D18622545E8C1093D542F31FEBD00E0C687BB66D6F4E8F3FA0AD435F303F1108CE3604FF199E5DBF7E7309EBECA4ADB0F2AED26B87E7B50C23F0AA8370EEABFEEF273B64EFAD3167D78689907C500FAB9AC160968BA738AC40B23F50BEAD01C6343D7B7190034C79FFDD250938A84E499D5583F5213287F495DF9008DB8A9A51DFEA454A8215683A53A6A5CE5BFDA0D827704203B3A81A89B |
400 | 20170725032628 2 6 100 8191 2 D84B8E9B7259F34AA46062684AD05873FD407C5FA804FFBC429D0DED5B497259FFF7F3C26D7A4C21592FCD658B607A5BDE7C4EAA7F5A3B6B713EAEDD5D0D47029CF51556BAFBBC91819DDA500332F7CE6777565C34CE56ED26BFE90830291C460891DDFEBF4FFFE5F217602081211E73EEC97612AC2C9FE8988738F0DC0FD2241B3C54357109D82FAAB532DB9C18B53B543D43B533FD67E36547972674968EB83AEE7EFC9F2AAF2C610C452EEA89A4FF5089BA6922F35128A844F6350A70671DD53C205AC7A75A1659CD3E57D385AB0BD78AF14DC129B1172884F1FCF5D795B6031A2BEB2410948A422D21AD3A215C85720F5EE695E235E36832E0A559DACDBD2B7CA3A1317CA005A963B49E3337829C40974C70F47540D89AAE625A1FD110874DC13D6E7B5711021F0CFD94C46D87582EBFF78EB2412B6D91DC0250A0B805F5E3B096ACB247C2A247A39164337FB3CB818AD4A950E6347B801DA742E5B532F4FC48815AA62B894FDB23B6E4D448DB62713AA46CC33C7D83D60A44B2B70FE8D841A56A4150A01C82B19CB93AE0AAA65E765EFF95933AC55742E0240744158B9CEF9DA8E18C3736BC8894306BF86D9B927CD62252ABFD39A3B352168336404C6B5F0DB4AEE518069274266E0C424F45D487B500BC087F49B53B0FA822D306D8B272E66C035569FFF1A191D354728253419E5B49115B88EB94E8452A28A3D699E73709FFD95D30430D45B730AF36D90C4DF464241C059375E8215E02294DFEAF8169BF1B47F7EE6F6479CB772D552D604589CE0A80BF7C38AFB2D8111D02A11D02264E2D1634128E53835E5815A92C19027DD08493C23344883FA5F2802A67E586221E2E22DFB8C67D75903F7211D52D19DC92DAC9C2E55D5D23E4B316F4F36AE24526C0D7CB5D43A5FA64CD621E9BBEB44ADAC0FB50237872CF13E0008D4D8F3B53B7F97FF8FD71E7B6ECCE359F5FBF3F6128DFD062C1E1177C6DDB97CBB9ED8AF082BF55D2DDF76920020A8AFCA08235752DE7542237D273F0324767F297BD98F573642B54D55AAEDCD9A5DB65DDF24F1E52489E22A8CDB204653F03A45261E20C965772CC92D71AD8A9DCA1205CA72C3AE330CA9ABFC93BD4C0591279661736B131AE905D5EB899BED456FE76BE26C4700FDF3238999B250DEF64F155FED724D3E38BDCAAD31CAC112BF39F0BC0CD3A906BEA43676E126616B51546C9E282117163EA7B38F255797A803F663EA16485FE4A8C2510409D3B6EF809EAC2BF897277A17A9C6E58709B57591FDA62321CEC2F545FCDB0AEEAF33ED378707C81711E003F1E77EEEE292F61E37FDC2FC4F97CEA96E1A4FB8643A9F18C9D6780BC5B815E43AF81E3B1D47D68D5A559C194F35A143B9EAE147D975BEF88D55AF1408BC1705C02F112616D08BFE6A44C0EFAC373CBB557E4953C79ACAA225379588A6BE3 | 400 | 20171227165129 2 6 100 8191 2 F461D7B72CCE12BB489DFEBB0D3252492FB894ADE7EEFCA4FCEAE71B2078652882837E3DDE311BA08D03316DDE3C3C844C34F37E7536601A57C95E1D191CC3B603E15D0E27D99ECC6B7781424F1D40E39FFF25D3F99C207359AD00CB7A68DC0937FDC38F24EF6C095DA60D92F977FBE8674D9885C4F147D6B6114F1CAF9F56327EF2A9CF30C5A26F46E19FAFACF357EC4E9119FB4AC34FF97FE5CDA2D578E00DF294AC88305AA8C9CFA074F35A211DD176486BBFDF04269B47C1EECAA0FAD95F6A5D829770F73DE8AF9D45928E4BF4C71412821419E2AFB2DA29FAA42557CB595B75433FDF015E42853C784AC8A15857D494900319D36B3A6672B885B686D6498D50A7843D381D240A77C053853FBFC670687678EA7AA909F9D82D2363ABD4851E3D20CE16632E0B1522AAB5DB8BB53AA1EE8CDFE86A494D1C2405C5AAE058D1990C91607D8043A74453AFB650110CA784BA307E531B153537B2C0A888D75229CC1D3CD27B0D7A6BEE20E82B7EB912D9F36BC8630990003DE2494DE017CB9D0EDBA7F0785927E79A76DA00707ADA18B9EBC57930E36E76737A7BA31F8F36F11D8CEDDCE28A411EEB34CE5D5235E88F66089F59CD921A84789512947DFDC8247A68353D05BEAFA6E450D7211D8BABE3C4C63685E9FA7742BD6309F3D72B9BE5E1B84E534596A81DAF1F5483C001FED71A9C7E432A28E52E43D9A0D4D4607B5E3459C7D424925C34311958344EBB86AF4E02675F8701BD55AACE3DDF48980E1977EE44275BEEE341C090820A63FD317595D7A0CCD00609B49E4AAF8C744F2FEA35A806B9B79C519CCDCE59F225FA243FD1AD0C8DBAFA17291CCA0C0C4DAB68060205F72978A5879093A132BE80C061D33348D94A8C79AE86F637701FC44E795B0F15D4610E0B269DEC7B24F717A7284A521759894AE475E7E35472ABC8C82DADE518628FF0DD37B48D94D48C18BF686F509AE5A5C35CC7BC33861673166B743FE10EB6508D36B29D1C798210E3D1840418A67214F9DB6FAF60BB42329226517C202436F735C1D326B49E1A37FF80BA4599A55898A48A2967647EA5E48B88F8034C7BBE9AFC1CD8DCC986495AB7070346E83479BC23925D418A68C7D72B4BCC106FEE74532F70F3CA019C68D419E944C34A69DAC2CDA1155F4FCDEC53CFB3AED1FE07C58FD20D673CE274AC89AEB3D72C36C2D81B42A5F9A61A83FB748749FDA5598C5A519A3026B1475F61CA5DE7A77BE86C2DC6EBAA6F756D5C15AF0F0844C05F233A0468148956C0BA80ACDCB7850FE0CBE75DB675AB712ADBF0934765919A697F4C4345E2AD63B159664FE0DB201683C8DFBBDB1EFE3B580C11809AC815C1863929E60B7A0819D255C8EE7AA582C33E0153EB685E830627829C141DF8B5C599D9DDD25CB3EFAD7C4369A470D3AE3CF4CD0CDCB185A402F7C3E395C3FF14E17B |
401 | 20170725142722 2 6 100 8191 2 D84B8E9B7259F34AA46062684AD05873FD407C5FA804FFBC429D0DED5B497259FFF7F3C26D7A4C21592FCD658B607A5BDE7C4EAA7F5A3B6B713EAEDD5D0D47029CF51556BAFBBC91819DDA500332F7CE6777565C34CE56ED26BFE90830291C460891DDFEBF4FFFE5F217602081211E73EEC97612AC2C9FE8988738F0DC0FD2241B3C54357109D82FAAB532DB9C18B53B543D43B533FD67E36547972674968EB83AEE7EFC9F2AAF2C610C452EEA89A4FF5089BA6922F35128A844F6350A70671DD53C205AC7A75A1659CD3E57D385AB0BD78AF14DC129B1172884F1FCF5D795B6031A2BEB2410948A422D21AD3A215C85720F5EE695E235E36832E0A559DACDBD2B7CA3A1317CA005A963B49E3337829C40974C70F47540D89AAE625A1FD110874DC13D6E7B5711021F0CFD94C46D87582EBFF78EB2412B6D91DC0250A0B805F5E3B096ACB247C2A247A39164337FB3CB818AD4A950E6347B801DA742E5B532F4FC48815AA62B894FDB23B6E4D448DB62713AA46CC33C7D83D60A44B2B70FE8D841A56A4150A01C82B19CB93AE0AAA65E765EFF95933AC55742E0240744158B9CEF9DA8E18C3736BC8894306BF86D9B927CD62252ABFD39A3B352168336404C6B5F0DB4AEE518069274266E0C424F45D487B500BC087F49B53B0FA822D306D8B272E66C035569FFF1A191D354728253419E5B49115B88EB94E8452A28A3D699E73709FFD95D30430D45B730AF36D90C4DF464241C059375E8215E02294DFEAF8169BF1B47F7EE6F6479CB772D552D604589CE0A80BF7C38AFB2D8111D02A11D02264E2D1634128E53835E5815A92C19027DD08493C23344883FA5F2802A67E586221E2E22DFB8C67D75903F7211D52D19DC92DAC9C2E55D5D23E4B316F4F36AE24526C0D7CB5D43A5FA64CD621E9BBEB44ADAC0FB50237872CF13E0008D4D8F3B53B7F97FF8FD71E7B6ECCE359F5FBF3F6128DFD062C1E1177C6DDB97CBB9ED8AF082BF55D2DDF76920020A8AFCA08235752DE7542237D273F0324767F297BD98F573642B54D55AAEDCD9A5DB65DDF24F1E52489E22A8CDB204653F03A45261E20C965772CC92D71AD8A9DCA1205CA72C3AE330CA9ABFC93BD4C0591279661736B131AE905D5EB899BED456FE76BE26C4700FDF3238999B250DEF64F155FED724D3E38BDCAAD31CAC112BF39F0BC0CD3A906BEA43676E126616B51546C9E282117163EA7B38F255797A803F663EA16485FE4A8C2510409D3B6EF809EAC2BF897277A17A9C6E58709B57591FDA62321CEC2F545FCDB0AEEAF33ED378707C81711E003F1E77EEEE292F61E37FDC2FC4F97CEA96E1A4FB8643A9F18C9D6780BC5B815E43AF81E3B1D47D68D5A559C194F35A143B9EAE147D975BEF88D55AF1408BC1705C02F112616D08BFE6A44C0EFAC373CBB557E4953C79ACAA2253795F8CFE9B | 401 | 20171227193939 2 6 100 8191 5 F461D7B72CCE12BB489DFEBB0D3252492FB894ADE7EEFCA4FCEAE71B2078652882837E3DDE311BA08D03316DDE3C3C844C34F37E7536601A57C95E1D191CC3B603E15D0E27D99ECC6B7781424F1D40E39FFF25D3F99C207359AD00CB7A68DC0937FDC38F24EF6C095DA60D92F977FBE8674D9885C4F147D6B6114F1CAF9F56327EF2A9CF30C5A26F46E19FAFACF357EC4E9119FB4AC34FF97FE5CDA2D578E00DF294AC88305AA8C9CFA074F35A211DD176486BBFDF04269B47C1EECAA0FAD95F6A5D829770F73DE8AF9D45928E4BF4C71412821419E2AFB2DA29FAA42557CB595B75433FDF015E42853C784AC8A15857D494900319D36B3A6672B885B686D6498D50A7843D381D240A77C053853FBFC670687678EA7AA909F9D82D2363ABD4851E3D20CE16632E0B1522AAB5DB8BB53AA1EE8CDFE86A494D1C2405C5AAE058D1990C91607D8043A74453AFB650110CA784BA307E531B153537B2C0A888D75229CC1D3CD27B0D7A6BEE20E82B7EB912D9F36BC8630990003DE2494DE017CB9D0EDBA7F0785927E79A76DA00707ADA18B9EBC57930E36E76737A7BA31F8F36F11D8CEDDCE28A411EEB34CE5D5235E88F66089F59CD921A84789512947DFDC8247A68353D05BEAFA6E450D7211D8BABE3C4C63685E9FA7742BD6309F3D72B9BE5E1B84E534596A81DAF1F5483C001FED71A9C7E432A28E52E43D9A0D4D4607B5E3459C7D424925C34311958344EBB86AF4E02675F8701BD55AACE3DDF48980E1977EE44275BEEE341C090820A63FD317595D7A0CCD00609B49E4AAF8C744F2FEA35A806B9B79C519CCDCE59F225FA243FD1AD0C8DBAFA17291CCA0C0C4DAB68060205F72978A5879093A132BE80C061D33348D94A8C79AE86F637701FC44E795B0F15D4610E0B269DEC7B24F717A7284A521759894AE475E7E35472ABC8C82DADE518628FF0DD37B48D94D48C18BF686F509AE5A5C35CC7BC33861673166B743FE10EB6508D36B29D1C798210E3D1840418A67214F9DB6FAF60BB42329226517C202436F735C1D326B49E1A37FF80BA4599A55898A48A2967647EA5E48B88F8034C7BBE9AFC1CD8DCC986495AB7070346E83479BC23925D418A68C7D72B4BCC106FEE74532F70F3CA019C68D419E944C34A69DAC2CDA1155F4FCDEC53CFB3AED1FE07C58FD20D673CE274AC89AEB3D72C36C2D81B42A5F9A61A83FB748749FDA5598C5A519A3026B1475F61CA5DE7A77BE86C2DC6EBAA6F756D5C15AF0F0844C05F233A0468148956C0BA80ACDCB7850FE0CBE75DB675AB712ADBF0934765919A697F4C4345E2AD63B159664FE0DB201683C8DFBBDB1EFE3B580C11809AC815C1863929E60B7A0819D255C8EE7AA582C33E0153EB685E830627829C141DF8B5C599D9DDD25CB3EFAD7C4369A470D3AE3CF4CD0CDCB185A402F7C3E395C400F55F3F |
402 | 20170725192821 2 6 100 8191 2 D84B8E9B7259F34AA46062684AD05873FD407C5FA804FFBC429D0DED5B497259FFF7F3C26D7A4C21592FCD658B607A5BDE7C4EAA7F5A3B6B713EAEDD5D0D47029CF51556BAFBBC91819DDA500332F7CE6777565C34CE56ED26BFE90830291C460891DDFEBF4FFFE5F217602081211E73EEC97612AC2C9FE8988738F0DC0FD2241B3C54357109D82FAAB532DB9C18B53B543D43B533FD67E36547972674968EB83AEE7EFC9F2AAF2C610C452EEA89A4FF5089BA6922F35128A844F6350A70671DD53C205AC7A75A1659CD3E57D385AB0BD78AF14DC129B1172884F1FCF5D795B6031A2BEB2410948A422D21AD3A215C85720F5EE695E235E36832E0A559DACDBD2B7CA3A1317CA005A963B49E3337829C40974C70F47540D89AAE625A1FD110874DC13D6E7B5711021F0CFD94C46D87582EBFF78EB2412B6D91DC0250A0B805F5E3B096ACB247C2A247A39164337FB3CB818AD4A950E6347B801DA742E5B532F4FC48815AA62B894FDB23B6E4D448DB62713AA46CC33C7D83D60A44B2B70FE8D841A56A4150A01C82B19CB93AE0AAA65E765EFF95933AC55742E0240744158B9CEF9DA8E18C3736BC8894306BF86D9B927CD62252ABFD39A3B352168336404C6B5F0DB4AEE518069274266E0C424F45D487B500BC087F49B53B0FA822D306D8B272E66C035569FFF1A191D354728253419E5B49115B88EB94E8452A28A3D699E73709FFD95D30430D45B730AF36D90C4DF464241C059375E8215E02294DFEAF8169BF1B47F7EE6F6479CB772D552D604589CE0A80BF7C38AFB2D8111D02A11D02264E2D1634128E53835E5815A92C19027DD08493C23344883FA5F2802A67E586221E2E22DFB8C67D75903F7211D52D19DC92DAC9C2E55D5D23E4B316F4F36AE24526C0D7CB5D43A5FA64CD621E9BBEB44ADAC0FB50237872CF13E0008D4D8F3B53B7F97FF8FD71E7B6ECCE359F5FBF3F6128DFD062C1E1177C6DDB97CBB9ED8AF082BF55D2DDF76920020A8AFCA08235752DE7542237D273F0324767F297BD98F573642B54D55AAEDCD9A5DB65DDF24F1E52489E22A8CDB204653F03A45261E20C965772CC92D71AD8A9DCA1205CA72C3AE330CA9ABFC93BD4C0591279661736B131AE905D5EB899BED456FE76BE26C4700FDF3238999B250DEF64F155FED724D3E38BDCAAD31CAC112BF39F0BC0CD3A906BEA43676E126616B51546C9E282117163EA7B38F255797A803F663EA16485FE4A8C2510409D3B6EF809EAC2BF897277A17A9C6E58709B57591FDA62321CEC2F545FCDB0AEEAF33ED378707C81711E003F1E77EEEE292F61E37FDC2FC4F97CEA96E1A4FB8643A9F18C9D6780BC5B815E43AF81E3B1D47D68D5A559C194F35A143B9EAE147D975BEF88D55AF1408BC1705C02F112616D08BFE6A44C0EFAC373CBB557E4953C79ACAA22537962B35BAB | 402 | 20171228032103 2 6 100 8191 2 F461D7B72CCE12BB489DFEBB0D3252492FB894ADE7EEFCA4FCEAE71B2078652882837E3DDE311BA08D03316DDE3C3C844C34F37E7536601A57C95E1D191CC3B603E15D0E27D99ECC6B7781424F1D40E39FFF25D3F99C207359AD00CB7A68DC0937FDC38F24EF6C095DA60D92F977FBE8674D9885C4F147D6B6114F1CAF9F56327EF2A9CF30C5A26F46E19FAFACF357EC4E9119FB4AC34FF97FE5CDA2D578E00DF294AC88305AA8C9CFA074F35A211DD176486BBFDF04269B47C1EECAA0FAD95F6A5D829770F73DE8AF9D45928E4BF4C71412821419E2AFB2DA29FAA42557CB595B75433FDF015E42853C784AC8A15857D494900319D36B3A6672B885B686D6498D50A7843D381D240A77C053853FBFC670687678EA7AA909F9D82D2363ABD4851E3D20CE16632E0B1522AAB5DB8BB53AA1EE8CDFE86A494D1C2405C5AAE058D1990C91607D8043A74453AFB650110CA784BA307E531B153537B2C0A888D75229CC1D3CD27B0D7A6BEE20E82B7EB912D9F36BC8630990003DE2494DE017CB9D0EDBA7F0785927E79A76DA00707ADA18B9EBC57930E36E76737A7BA31F8F36F11D8CEDDCE28A411EEB34CE5D5235E88F66089F59CD921A84789512947DFDC8247A68353D05BEAFA6E450D7211D8BABE3C4C63685E9FA7742BD6309F3D72B9BE5E1B84E534596A81DAF1F5483C001FED71A9C7E432A28E52E43D9A0D4D4607B5E3459C7D424925C34311958344EBB86AF4E02675F8701BD55AACE3DDF48980E1977EE44275BEEE341C090820A63FD317595D7A0CCD00609B49E4AAF8C744F2FEA35A806B9B79C519CCDCE59F225FA243FD1AD0C8DBAFA17291CCA0C0C4DAB68060205F72978A5879093A132BE80C061D33348D94A8C79AE86F637701FC44E795B0F15D4610E0B269DEC7B24F717A7284A521759894AE475E7E35472ABC8C82DADE518628FF0DD37B48D94D48C18BF686F509AE5A5C35CC7BC33861673166B743FE10EB6508D36B29D1C798210E3D1840418A67214F9DB6FAF60BB42329226517C202436F735C1D326B49E1A37FF80BA4599A55898A48A2967647EA5E48B88F8034C7BBE9AFC1CD8DCC986495AB7070346E83479BC23925D418A68C7D72B4BCC106FEE74532F70F3CA019C68D419E944C34A69DAC2CDA1155F4FCDEC53CFB3AED1FE07C58FD20D673CE274AC89AEB3D72C36C2D81B42A5F9A61A83FB748749FDA5598C5A519A3026B1475F61CA5DE7A77BE86C2DC6EBAA6F756D5C15AF0F0844C05F233A0468148956C0BA80ACDCB7850FE0CBE75DB675AB712ADBF0934765919A697F4C4345E2AD63B159664FE0DB201683C8DFBBDB1EFE3B580C11809AC815C1863929E60B7A0819D255C8EE7AA582C33E0153EB685E830627829C141DF8B5C599D9DDD25CB3EFAD7C4369A470D3AE3CF4CD0CDCB185A402F7C3E395C4065CE64B |
403 | 20170726032919 2 6 100 8191 5 D84B8E9B7259F34AA46062684AD05873FD407C5FA804FFBC429D0DED5B497259FFF7F3C26D7A4C21592FCD658B607A5BDE7C4EAA7F5A3B6B713EAEDD5D0D47029CF51556BAFBBC91819DDA500332F7CE6777565C34CE56ED26BFE90830291C460891DDFEBF4FFFE5F217602081211E73EEC97612AC2C9FE8988738F0DC0FD2241B3C54357109D82FAAB532DB9C18B53B543D43B533FD67E36547972674968EB83AEE7EFC9F2AAF2C610C452EEA89A4FF5089BA6922F35128A844F6350A70671DD53C205AC7A75A1659CD3E57D385AB0BD78AF14DC129B1172884F1FCF5D795B6031A2BEB2410948A422D21AD3A215C85720F5EE695E235E36832E0A559DACDBD2B7CA3A1317CA005A963B49E3337829C40974C70F47540D89AAE625A1FD110874DC13D6E7B5711021F0CFD94C46D87582EBFF78EB2412B6D91DC0250A0B805F5E3B096ACB247C2A247A39164337FB3CB818AD4A950E6347B801DA742E5B532F4FC48815AA62B894FDB23B6E4D448DB62713AA46CC33C7D83D60A44B2B70FE8D841A56A4150A01C82B19CB93AE0AAA65E765EFF95933AC55742E0240744158B9CEF9DA8E18C3736BC8894306BF86D9B927CD62252ABFD39A3B352168336404C6B5F0DB4AEE518069274266E0C424F45D487B500BC087F49B53B0FA822D306D8B272E66C035569FFF1A191D354728253419E5B49115B88EB94E8452A28A3D699E73709FFD95D30430D45B730AF36D90C4DF464241C059375E8215E02294DFEAF8169BF1B47F7EE6F6479CB772D552D604589CE0A80BF7C38AFB2D8111D02A11D02264E2D1634128E53835E5815A92C19027DD08493C23344883FA5F2802A67E586221E2E22DFB8C67D75903F7211D52D19DC92DAC9C2E55D5D23E4B316F4F36AE24526C0D7CB5D43A5FA64CD621E9BBEB44ADAC0FB50237872CF13E0008D4D8F3B53B7F97FF8FD71E7B6ECCE359F5FBF3F6128DFD062C1E1177C6DDB97CBB9ED8AF082BF55D2DDF76920020A8AFCA08235752DE7542237D273F0324767F297BD98F573642B54D55AAEDCD9A5DB65DDF24F1E52489E22A8CDB204653F03A45261E20C965772CC92D71AD8A9DCA1205CA72C3AE330CA9ABFC93BD4C0591279661736B131AE905D5EB899BED456FE76BE26C4700FDF3238999B250DEF64F155FED724D3E38BDCAAD31CAC112BF39F0BC0CD3A906BEA43676E126616B51546C9E282117163EA7B38F255797A803F663EA16485FE4A8C2510409D3B6EF809EAC2BF897277A17A9C6E58709B57591FDA62321CEC2F545FCDB0AEEAF33ED378707C81711E003F1E77EEEE292F61E37FDC2FC4F97CEA96E1A4FB8643A9F18C9D6780BC5B815E43AF81E3B1D47D68D5A559C194F35A143B9EAE147D975BEF88D55AF1408BC1705C02F112616D08BFE6A44C0EFAC373CBB557E4953C79ACAA22537967BE1D7F | 403 | 20171228115824 2 6 100 8191 5 F461D7B72CCE12BB489DFEBB0D3252492FB894ADE7EEFCA4FCEAE71B2078652882837E3DDE311BA08D03316DDE3C3C844C34F37E7536601A57C95E1D191CC3B603E15D0E27D99ECC6B7781424F1D40E39FFF25D3F99C207359AD00CB7A68DC0937FDC38F24EF6C095DA60D92F977FBE8674D9885C4F147D6B6114F1CAF9F56327EF2A9CF30C5A26F46E19FAFACF357EC4E9119FB4AC34FF97FE5CDA2D578E00DF294AC88305AA8C9CFA074F35A211DD176486BBFDF04269B47C1EECAA0FAD95F6A5D829770F73DE8AF9D45928E4BF4C71412821419E2AFB2DA29FAA42557CB595B75433FDF015E42853C784AC8A15857D494900319D36B3A6672B885B686D6498D50A7843D381D240A77C053853FBFC670687678EA7AA909F9D82D2363ABD4851E3D20CE16632E0B1522AAB5DB8BB53AA1EE8CDFE86A494D1C2405C5AAE058D1990C91607D8043A74453AFB650110CA784BA307E531B153537B2C0A888D75229CC1D3CD27B0D7A6BEE20E82B7EB912D9F36BC8630990003DE2494DE017CB9D0EDBA7F0785927E79A76DA00707ADA18B9EBC57930E36E76737A7BA31F8F36F11D8CEDDCE28A411EEB34CE5D5235E88F66089F59CD921A84789512947DFDC8247A68353D05BEAFA6E450D7211D8BABE3C4C63685E9FA7742BD6309F3D72B9BE5E1B84E534596A81DAF1F5483C001FED71A9C7E432A28E52E43D9A0D4D4607B5E3459C7D424925C34311958344EBB86AF4E02675F8701BD55AACE3DDF48980E1977EE44275BEEE341C090820A63FD317595D7A0CCD00609B49E4AAF8C744F2FEA35A806B9B79C519CCDCE59F225FA243FD1AD0C8DBAFA17291CCA0C0C4DAB68060205F72978A5879093A132BE80C061D33348D94A8C79AE86F637701FC44E795B0F15D4610E0B269DEC7B24F717A7284A521759894AE475E7E35472ABC8C82DADE518628FF0DD37B48D94D48C18BF686F509AE5A5C35CC7BC33861673166B743FE10EB6508D36B29D1C798210E3D1840418A67214F9DB6FAF60BB42329226517C202436F735C1D326B49E1A37FF80BA4599A55898A48A2967647EA5E48B88F8034C7BBE9AFC1CD8DCC986495AB7070346E83479BC23925D418A68C7D72B4BCC106FEE74532F70F3CA019C68D419E944C34A69DAC2CDA1155F4FCDEC53CFB3AED1FE07C58FD20D673CE274AC89AEB3D72C36C2D81B42A5F9A61A83FB748749FDA5598C5A519A3026B1475F61CA5DE7A77BE86C2DC6EBAA6F756D5C15AF0F0844C05F233A0468148956C0BA80ACDCB7850FE0CBE75DB675AB712ADBF0934765919A697F4C4345E2AD63B159664FE0DB201683C8DFBBDB1EFE3B580C11809AC815C1863929E60B7A0819D255C8EE7AA582C33E0153EB685E830627829C141DF8B5C599D9DDD25CB3EFAD7C4369A470D3AE3CF4CD0CDCB185A402F7C3E395C40C43BAB7 |
404 | 20170726062511 2 6 100 8191 2 D84B8E9B7259F34AA46062684AD05873FD407C5FA804FFBC429D0DED5B497259FFF7F3C26D7A4C21592FCD658B607A5BDE7C4EAA7F5A3B6B713EAEDD5D0D47029CF51556BAFBBC91819DDA500332F7CE6777565C34CE56ED26BFE90830291C460891DDFEBF4FFFE5F217602081211E73EEC97612AC2C9FE8988738F0DC0FD2241B3C54357109D82FAAB532DB9C18B53B543D43B533FD67E36547972674968EB83AEE7EFC9F2AAF2C610C452EEA89A4FF5089BA6922F35128A844F6350A70671DD53C205AC7A75A1659CD3E57D385AB0BD78AF14DC129B1172884F1FCF5D795B6031A2BEB2410948A422D21AD3A215C85720F5EE695E235E36832E0A559DACDBD2B7CA3A1317CA005A963B49E3337829C40974C70F47540D89AAE625A1FD110874DC13D6E7B5711021F0CFD94C46D87582EBFF78EB2412B6D91DC0250A0B805F5E3B096ACB247C2A247A39164337FB3CB818AD4A950E6347B801DA742E5B532F4FC48815AA62B894FDB23B6E4D448DB62713AA46CC33C7D83D60A44B2B70FE8D841A56A4150A01C82B19CB93AE0AAA65E765EFF95933AC55742E0240744158B9CEF9DA8E18C3736BC8894306BF86D9B927CD62252ABFD39A3B352168336404C6B5F0DB4AEE518069274266E0C424F45D487B500BC087F49B53B0FA822D306D8B272E66C035569FFF1A191D354728253419E5B49115B88EB94E8452A28A3D699E73709FFD95D30430D45B730AF36D90C4DF464241C059375E8215E02294DFEAF8169BF1B47F7EE6F6479CB772D552D604589CE0A80BF7C38AFB2D8111D02A11D02264E2D1634128E53835E5815A92C19027DD08493C23344883FA5F2802A67E586221E2E22DFB8C67D75903F7211D52D19DC92DAC9C2E55D5D23E4B316F4F36AE24526C0D7CB5D43A5FA64CD621E9BBEB44ADAC0FB50237872CF13E0008D4D8F3B53B7F97FF8FD71E7B6ECCE359F5FBF3F6128DFD062C1E1177C6DDB97CBB9ED8AF082BF55D2DDF76920020A8AFCA08235752DE7542237D273F0324767F297BD98F573642B54D55AAEDCD9A5DB65DDF24F1E52489E22A8CDB204653F03A45261E20C965772CC92D71AD8A9DCA1205CA72C3AE330CA9ABFC93BD4C0591279661736B131AE905D5EB899BED456FE76BE26C4700FDF3238999B250DEF64F155FED724D3E38BDCAAD31CAC112BF39F0BC0CD3A906BEA43676E126616B51546C9E282117163EA7B38F255797A803F663EA16485FE4A8C2510409D3B6EF809EAC2BF897277A17A9C6E58709B57591FDA62321CEC2F545FCDB0AEEAF33ED378707C81711E003F1E77EEEE292F61E37FDC2FC4F97CEA96E1A4FB8643A9F18C9D6780BC5B815E43AF81E3B1D47D68D5A559C194F35A143B9EAE147D975BEF88D55AF1408BC1705C02F112616D08BFE6A44C0EFAC373CBB557E4953C79ACAA22537969930233 | 404 | 20171228124603 2 6 100 8191 2 F461D7B72CCE12BB489DFEBB0D3252492FB894ADE7EEFCA4FCEAE71B2078652882837E3DDE311BA08D03316DDE3C3C844C34F37E7536601A57C95E1D191CC3B603E15D0E27D99ECC6B7781424F1D40E39FFF25D3F99C207359AD00CB7A68DC0937FDC38F24EF6C095DA60D92F977FBE8674D9885C4F147D6B6114F1CAF9F56327EF2A9CF30C5A26F46E19FAFACF357EC4E9119FB4AC34FF97FE5CDA2D578E00DF294AC88305AA8C9CFA074F35A211DD176486BBFDF04269B47C1EECAA0FAD95F6A5D829770F73DE8AF9D45928E4BF4C71412821419E2AFB2DA29FAA42557CB595B75433FDF015E42853C784AC8A15857D494900319D36B3A6672B885B686D6498D50A7843D381D240A77C053853FBFC670687678EA7AA909F9D82D2363ABD4851E3D20CE16632E0B1522AAB5DB8BB53AA1EE8CDFE86A494D1C2405C5AAE058D1990C91607D8043A74453AFB650110CA784BA307E531B153537B2C0A888D75229CC1D3CD27B0D7A6BEE20E82B7EB912D9F36BC8630990003DE2494DE017CB9D0EDBA7F0785927E79A76DA00707ADA18B9EBC57930E36E76737A7BA31F8F36F11D8CEDDCE28A411EEB34CE5D5235E88F66089F59CD921A84789512947DFDC8247A68353D05BEAFA6E450D7211D8BABE3C4C63685E9FA7742BD6309F3D72B9BE5E1B84E534596A81DAF1F5483C001FED71A9C7E432A28E52E43D9A0D4D4607B5E3459C7D424925C34311958344EBB86AF4E02675F8701BD55AACE3DDF48980E1977EE44275BEEE341C090820A63FD317595D7A0CCD00609B49E4AAF8C744F2FEA35A806B9B79C519CCDCE59F225FA243FD1AD0C8DBAFA17291CCA0C0C4DAB68060205F72978A5879093A132BE80C061D33348D94A8C79AE86F637701FC44E795B0F15D4610E0B269DEC7B24F717A7284A521759894AE475E7E35472ABC8C82DADE518628FF0DD37B48D94D48C18BF686F509AE5A5C35CC7BC33861673166B743FE10EB6508D36B29D1C798210E3D1840418A67214F9DB6FAF60BB42329226517C202436F735C1D326B49E1A37FF80BA4599A55898A48A2967647EA5E48B88F8034C7BBE9AFC1CD8DCC986495AB7070346E83479BC23925D418A68C7D72B4BCC106FEE74532F70F3CA019C68D419E944C34A69DAC2CDA1155F4FCDEC53CFB3AED1FE07C58FD20D673CE274AC89AEB3D72C36C2D81B42A5F9A61A83FB748749FDA5598C5A519A3026B1475F61CA5DE7A77BE86C2DC6EBAA6F756D5C15AF0F0844C05F233A0468148956C0BA80ACDCB7850FE0CBE75DB675AB712ADBF0934765919A697F4C4345E2AD63B159664FE0DB201683C8DFBBDB1EFE3B580C11809AC815C1863929E60B7A0819D255C8EE7AA582C33E0153EB685E830627829C141DF8B5C599D9DDD25CB3EFAD7C4369A470D3AE3CF4CD0CDCB185A402F7C3E395C40CCD6483 |
405 | 20170726073958 2 6 100 8191 2 D84B8E9B7259F34AA46062684AD05873FD407C5FA804FFBC429D0DED5B497259FFF7F3C26D7A4C21592FCD658B607A5BDE7C4EAA7F5A3B6B713EAEDD5D0D47029CF51556BAFBBC91819DDA500332F7CE6777565C34CE56ED26BFE90830291C460891DDFEBF4FFFE5F217602081211E73EEC97612AC2C9FE8988738F0DC0FD2241B3C54357109D82FAAB532DB9C18B53B543D43B533FD67E36547972674968EB83AEE7EFC9F2AAF2C610C452EEA89A4FF5089BA6922F35128A844F6350A70671DD53C205AC7A75A1659CD3E57D385AB0BD78AF14DC129B1172884F1FCF5D795B6031A2BEB2410948A422D21AD3A215C85720F5EE695E235E36832E0A559DACDBD2B7CA3A1317CA005A963B49E3337829C40974C70F47540D89AAE625A1FD110874DC13D6E7B5711021F0CFD94C46D87582EBFF78EB2412B6D91DC0250A0B805F5E3B096ACB247C2A247A39164337FB3CB818AD4A950E6347B801DA742E5B532F4FC48815AA62B894FDB23B6E4D448DB62713AA46CC33C7D83D60A44B2B70FE8D841A56A4150A01C82B19CB93AE0AAA65E765EFF95933AC55742E0240744158B9CEF9DA8E18C3736BC8894306BF86D9B927CD62252ABFD39A3B352168336404C6B5F0DB4AEE518069274266E0C424F45D487B500BC087F49B53B0FA822D306D8B272E66C035569FFF1A191D354728253419E5B49115B88EB94E8452A28A3D699E73709FFD95D30430D45B730AF36D90C4DF464241C059375E8215E02294DFEAF8169BF1B47F7EE6F6479CB772D552D604589CE0A80BF7C38AFB2D8111D02A11D02264E2D1634128E53835E5815A92C19027DD08493C23344883FA5F2802A67E586221E2E22DFB8C67D75903F7211D52D19DC92DAC9C2E55D5D23E4B316F4F36AE24526C0D7CB5D43A5FA64CD621E9BBEB44ADAC0FB50237872CF13E0008D4D8F3B53B7F97FF8FD71E7B6ECCE359F5FBF3F6128DFD062C1E1177C6DDB97CBB9ED8AF082BF55D2DDF76920020A8AFCA08235752DE7542237D273F0324767F297BD98F573642B54D55AAEDCD9A5DB65DDF24F1E52489E22A8CDB204653F03A45261E20C965772CC92D71AD8A9DCA1205CA72C3AE330CA9ABFC93BD4C0591279661736B131AE905D5EB899BED456FE76BE26C4700FDF3238999B250DEF64F155FED724D3E38BDCAAD31CAC112BF39F0BC0CD3A906BEA43676E126616B51546C9E282117163EA7B38F255797A803F663EA16485FE4A8C2510409D3B6EF809EAC2BF897277A17A9C6E58709B57591FDA62321CEC2F545FCDB0AEEAF33ED378707C81711E003F1E77EEEE292F61E37FDC2FC4F97CEA96E1A4FB8643A9F18C9D6780BC5B815E43AF81E3B1D47D68D5A559C194F35A143B9EAE147D975BEF88D55AF1408BC1705C02F112616D08BFE6A44C0EFAC373CBB557E4953C79ACAA2253796A4B8B7B | 405 | 20171228164850 2 6 100 8191 2 F461D7B72CCE12BB489DFEBB0D3252492FB894ADE7EEFCA4FCEAE71B2078652882837E3DDE311BA08D03316DDE3C3C844C34F37E7536601A57C95E1D191CC3B603E15D0E27D99ECC6B7781424F1D40E39FFF25D3F99C207359AD00CB7A68DC0937FDC38F24EF6C095DA60D92F977FBE8674D9885C4F147D6B6114F1CAF9F56327EF2A9CF30C5A26F46E19FAFACF357EC4E9119FB4AC34FF97FE5CDA2D578E00DF294AC88305AA8C9CFA074F35A211DD176486BBFDF04269B47C1EECAA0FAD95F6A5D829770F73DE8AF9D45928E4BF4C71412821419E2AFB2DA29FAA42557CB595B75433FDF015E42853C784AC8A15857D494900319D36B3A6672B885B686D6498D50A7843D381D240A77C053853FBFC670687678EA7AA909F9D82D2363ABD4851E3D20CE16632E0B1522AAB5DB8BB53AA1EE8CDFE86A494D1C2405C5AAE058D1990C91607D8043A74453AFB650110CA784BA307E531B153537B2C0A888D75229CC1D3CD27B0D7A6BEE20E82B7EB912D9F36BC8630990003DE2494DE017CB9D0EDBA7F0785927E79A76DA00707ADA18B9EBC57930E36E76737A7BA31F8F36F11D8CEDDCE28A411EEB34CE5D5235E88F66089F59CD921A84789512947DFDC8247A68353D05BEAFA6E450D7211D8BABE3C4C63685E9FA7742BD6309F3D72B9BE5E1B84E534596A81DAF1F5483C001FED71A9C7E432A28E52E43D9A0D4D4607B5E3459C7D424925C34311958344EBB86AF4E02675F8701BD55AACE3DDF48980E1977EE44275BEEE341C090820A63FD317595D7A0CCD00609B49E4AAF8C744F2FEA35A806B9B79C519CCDCE59F225FA243FD1AD0C8DBAFA17291CCA0C0C4DAB68060205F72978A5879093A132BE80C061D33348D94A8C79AE86F637701FC44E795B0F15D4610E0B269DEC7B24F717A7284A521759894AE475E7E35472ABC8C82DADE518628FF0DD37B48D94D48C18BF686F509AE5A5C35CC7BC33861673166B743FE10EB6508D36B29D1C798210E3D1840418A67214F9DB6FAF60BB42329226517C202436F735C1D326B49E1A37FF80BA4599A55898A48A2967647EA5E48B88F8034C7BBE9AFC1CD8DCC986495AB7070346E83479BC23925D418A68C7D72B4BCC106FEE74532F70F3CA019C68D419E944C34A69DAC2CDA1155F4FCDEC53CFB3AED1FE07C58FD20D673CE274AC89AEB3D72C36C2D81B42A5F9A61A83FB748749FDA5598C5A519A3026B1475F61CA5DE7A77BE86C2DC6EBAA6F756D5C15AF0F0844C05F233A0468148956C0BA80ACDCB7850FE0CBE75DB675AB712ADBF0934765919A697F4C4345E2AD63B159664FE0DB201683C8DFBBDB1EFE3B580C11809AC815C1863929E60B7A0819D255C8EE7AA582C33E0153EB685E830627829C141DF8B5C599D9DDD25CB3EFAD7C4369A470D3AE3CF4CD0CDCB185A402F7C3E395C40F99437B |
406 | 20170726144150 2 6 100 8191 5 D84B8E9B7259F34AA46062684AD05873FD407C5FA804FFBC429D0DED5B497259FFF7F3C26D7A4C21592FCD658B607A5BDE7C4EAA7F5A3B6B713EAEDD5D0D47029CF51556BAFBBC91819DDA500332F7CE6777565C34CE56ED26BFE90830291C460891DDFEBF4FFFE5F217602081211E73EEC97612AC2C9FE8988738F0DC0FD2241B3C54357109D82FAAB532DB9C18B53B543D43B533FD67E36547972674968EB83AEE7EFC9F2AAF2C610C452EEA89A4FF5089BA6922F35128A844F6350A70671DD53C205AC7A75A1659CD3E57D385AB0BD78AF14DC129B1172884F1FCF5D795B6031A2BEB2410948A422D21AD3A215C85720F5EE695E235E36832E0A559DACDBD2B7CA3A1317CA005A963B49E3337829C40974C70F47540D89AAE625A1FD110874DC13D6E7B5711021F0CFD94C46D87582EBFF78EB2412B6D91DC0250A0B805F5E3B096ACB247C2A247A39164337FB3CB818AD4A950E6347B801DA742E5B532F4FC48815AA62B894FDB23B6E4D448DB62713AA46CC33C7D83D60A44B2B70FE8D841A56A4150A01C82B19CB93AE0AAA65E765EFF95933AC55742E0240744158B9CEF9DA8E18C3736BC8894306BF86D9B927CD62252ABFD39A3B352168336404C6B5F0DB4AEE518069274266E0C424F45D487B500BC087F49B53B0FA822D306D8B272E66C035569FFF1A191D354728253419E5B49115B88EB94E8452A28A3D699E73709FFD95D30430D45B730AF36D90C4DF464241C059375E8215E02294DFEAF8169BF1B47F7EE6F6479CB772D552D604589CE0A80BF7C38AFB2D8111D02A11D02264E2D1634128E53835E5815A92C19027DD08493C23344883FA5F2802A67E586221E2E22DFB8C67D75903F7211D52D19DC92DAC9C2E55D5D23E4B316F4F36AE24526C0D7CB5D43A5FA64CD621E9BBEB44ADAC0FB50237872CF13E0008D4D8F3B53B7F97FF8FD71E7B6ECCE359F5FBF3F6128DFD062C1E1177C6DDB97CBB9ED8AF082BF55D2DDF76920020A8AFCA08235752DE7542237D273F0324767F297BD98F573642B54D55AAEDCD9A5DB65DDF24F1E52489E22A8CDB204653F03A45261E20C965772CC92D71AD8A9DCA1205CA72C3AE330CA9ABFC93BD4C0591279661736B131AE905D5EB899BED456FE76BE26C4700FDF3238999B250DEF64F155FED724D3E38BDCAAD31CAC112BF39F0BC0CD3A906BEA43676E126616B51546C9E282117163EA7B38F255797A803F663EA16485FE4A8C2510409D3B6EF809EAC2BF897277A17A9C6E58709B57591FDA62321CEC2F545FCDB0AEEAF33ED378707C81711E003F1E77EEEE292F61E37FDC2FC4F97CEA96E1A4FB8643A9F18C9D6780BC5B815E43AF81E3B1D47D68D5A559C194F35A143B9EAE147D975BEF88D55AF1408BC1705C02F112616D08BFE6A44C0EFAC373CBB557E4953C79ACAA2253796EA9D3DF | 406 | 20171228210323 2 6 100 8191 2 F461D7B72CCE12BB489DFEBB0D3252492FB894ADE7EEFCA4FCEAE71B2078652882837E3DDE311BA08D03316DDE3C3C844C34F37E7536601A57C95E1D191CC3B603E15D0E27D99ECC6B7781424F1D40E39FFF25D3F99C207359AD00CB7A68DC0937FDC38F24EF6C095DA60D92F977FBE8674D9885C4F147D6B6114F1CAF9F56327EF2A9CF30C5A26F46E19FAFACF357EC4E9119FB4AC34FF97FE5CDA2D578E00DF294AC88305AA8C9CFA074F35A211DD176486BBFDF04269B47C1EECAA0FAD95F6A5D829770F73DE8AF9D45928E4BF4C71412821419E2AFB2DA29FAA42557CB595B75433FDF015E42853C784AC8A15857D494900319D36B3A6672B885B686D6498D50A7843D381D240A77C053853FBFC670687678EA7AA909F9D82D2363ABD4851E3D20CE16632E0B1522AAB5DB8BB53AA1EE8CDFE86A494D1C2405C5AAE058D1990C91607D8043A74453AFB650110CA784BA307E531B153537B2C0A888D75229CC1D3CD27B0D7A6BEE20E82B7EB912D9F36BC8630990003DE2494DE017CB9D0EDBA7F0785927E79A76DA00707ADA18B9EBC57930E36E76737A7BA31F8F36F11D8CEDDCE28A411EEB34CE5D5235E88F66089F59CD921A84789512947DFDC8247A68353D05BEAFA6E450D7211D8BABE3C4C63685E9FA7742BD6309F3D72B9BE5E1B84E534596A81DAF1F5483C001FED71A9C7E432A28E52E43D9A0D4D4607B5E3459C7D424925C34311958344EBB86AF4E02675F8701BD55AACE3DDF48980E1977EE44275BEEE341C090820A63FD317595D7A0CCD00609B49E4AAF8C744F2FEA35A806B9B79C519CCDCE59F225FA243FD1AD0C8DBAFA17291CCA0C0C4DAB68060205F72978A5879093A132BE80C061D33348D94A8C79AE86F637701FC44E795B0F15D4610E0B269DEC7B24F717A7284A521759894AE475E7E35472ABC8C82DADE518628FF0DD37B48D94D48C18BF686F509AE5A5C35CC7BC33861673166B743FE10EB6508D36B29D1C798210E3D1840418A67214F9DB6FAF60BB42329226517C202436F735C1D326B49E1A37FF80BA4599A55898A48A2967647EA5E48B88F8034C7BBE9AFC1CD8DCC986495AB7070346E83479BC23925D418A68C7D72B4BCC106FEE74532F70F3CA019C68D419E944C34A69DAC2CDA1155F4FCDEC53CFB3AED1FE07C58FD20D673CE274AC89AEB3D72C36C2D81B42A5F9A61A83FB748749FDA5598C5A519A3026B1475F61CA5DE7A77BE86C2DC6EBAA6F756D5C15AF0F0844C05F233A0468148956C0BA80ACDCB7850FE0CBE75DB675AB712ADBF0934765919A697F4C4345E2AD63B159664FE0DB201683C8DFBBDB1EFE3B580C11809AC815C1863929E60B7A0819D255C8EE7AA582C33E0153EB685E830627829C141DF8B5C599D9DDD25CB3EFAD7C4369A470D3AE3CF4CD0CDCB185A402F7C3E395C4126F1FDB |
407 | 20170726150548 2 6 100 8191 2 D84B8E9B7259F34AA46062684AD05873FD407C5FA804FFBC429D0DED5B497259FFF7F3C26D7A4C21592FCD658B607A5BDE7C4EAA7F5A3B6B713EAEDD5D0D47029CF51556BAFBBC91819DDA500332F7CE6777565C34CE56ED26BFE90830291C460891DDFEBF4FFFE5F217602081211E73EEC97612AC2C9FE8988738F0DC0FD2241B3C54357109D82FAAB532DB9C18B53B543D43B533FD67E36547972674968EB83AEE7EFC9F2AAF2C610C452EEA89A4FF5089BA6922F35128A844F6350A70671DD53C205AC7A75A1659CD3E57D385AB0BD78AF14DC129B1172884F1FCF5D795B6031A2BEB2410948A422D21AD3A215C85720F5EE695E235E36832E0A559DACDBD2B7CA3A1317CA005A963B49E3337829C40974C70F47540D89AAE625A1FD110874DC13D6E7B5711021F0CFD94C46D87582EBFF78EB2412B6D91DC0250A0B805F5E3B096ACB247C2A247A39164337FB3CB818AD4A950E6347B801DA742E5B532F4FC48815AA62B894FDB23B6E4D448DB62713AA46CC33C7D83D60A44B2B70FE8D841A56A4150A01C82B19CB93AE0AAA65E765EFF95933AC55742E0240744158B9CEF9DA8E18C3736BC8894306BF86D9B927CD62252ABFD39A3B352168336404C6B5F0DB4AEE518069274266E0C424F45D487B500BC087F49B53B0FA822D306D8B272E66C035569FFF1A191D354728253419E5B49115B88EB94E8452A28A3D699E73709FFD95D30430D45B730AF36D90C4DF464241C059375E8215E02294DFEAF8169BF1B47F7EE6F6479CB772D552D604589CE0A80BF7C38AFB2D8111D02A11D02264E2D1634128E53835E5815A92C19027DD08493C23344883FA5F2802A67E586221E2E22DFB8C67D75903F7211D52D19DC92DAC9C2E55D5D23E4B316F4F36AE24526C0D7CB5D43A5FA64CD621E9BBEB44ADAC0FB50237872CF13E0008D4D8F3B53B7F97FF8FD71E7B6ECCE359F5FBF3F6128DFD062C1E1177C6DDB97CBB9ED8AF082BF55D2DDF76920020A8AFCA08235752DE7542237D273F0324767F297BD98F573642B54D55AAEDCD9A5DB65DDF24F1E52489E22A8CDB204653F03A45261E20C965772CC92D71AD8A9DCA1205CA72C3AE330CA9ABFC93BD4C0591279661736B131AE905D5EB899BED456FE76BE26C4700FDF3238999B250DEF64F155FED724D3E38BDCAAD31CAC112BF39F0BC0CD3A906BEA43676E126616B51546C9E282117163EA7B38F255797A803F663EA16485FE4A8C2510409D3B6EF809EAC2BF897277A17A9C6E58709B57591FDA62321CEC2F545FCDB0AEEAF33ED378707C81711E003F1E77EEEE292F61E37FDC2FC4F97CEA96E1A4FB8643A9F18C9D6780BC5B815E43AF81E3B1D47D68D5A559C194F35A143B9EAE147D975BEF88D55AF1408BC1705C02F112616D08BFE6A44C0EFAC373CBB557E4953C79ACAA2253796EE14A73 | 407 | 20171229030717 2 6 100 8191 5 F461D7B72CCE12BB489DFEBB0D3252492FB894ADE7EEFCA4FCEAE71B2078652882837E3DDE311BA08D03316DDE3C3C844C34F37E7536601A57C95E1D191CC3B603E15D0E27D99ECC6B7781424F1D40E39FFF25D3F99C207359AD00CB7A68DC0937FDC38F24EF6C095DA60D92F977FBE8674D9885C4F147D6B6114F1CAF9F56327EF2A9CF30C5A26F46E19FAFACF357EC4E9119FB4AC34FF97FE5CDA2D578E00DF294AC88305AA8C9CFA074F35A211DD176486BBFDF04269B47C1EECAA0FAD95F6A5D829770F73DE8AF9D45928E4BF4C71412821419E2AFB2DA29FAA42557CB595B75433FDF015E42853C784AC8A15857D494900319D36B3A6672B885B686D6498D50A7843D381D240A77C053853FBFC670687678EA7AA909F9D82D2363ABD4851E3D20CE16632E0B1522AAB5DB8BB53AA1EE8CDFE86A494D1C2405C5AAE058D1990C91607D8043A74453AFB650110CA784BA307E531B153537B2C0A888D75229CC1D3CD27B0D7A6BEE20E82B7EB912D9F36BC8630990003DE2494DE017CB9D0EDBA7F0785927E79A76DA00707ADA18B9EBC57930E36E76737A7BA31F8F36F11D8CEDDCE28A411EEB34CE5D5235E88F66089F59CD921A84789512947DFDC8247A68353D05BEAFA6E450D7211D8BABE3C4C63685E9FA7742BD6309F3D72B9BE5E1B84E534596A81DAF1F5483C001FED71A9C7E432A28E52E43D9A0D4D4607B5E3459C7D424925C34311958344EBB86AF4E02675F8701BD55AACE3DDF48980E1977EE44275BEEE341C090820A63FD317595D7A0CCD00609B49E4AAF8C744F2FEA35A806B9B79C519CCDCE59F225FA243FD1AD0C8DBAFA17291CCA0C0C4DAB68060205F72978A5879093A132BE80C061D33348D94A8C79AE86F637701FC44E795B0F15D4610E0B269DEC7B24F717A7284A521759894AE475E7E35472ABC8C82DADE518628FF0DD37B48D94D48C18BF686F509AE5A5C35CC7BC33861673166B743FE10EB6508D36B29D1C798210E3D1840418A67214F9DB6FAF60BB42329226517C202436F735C1D326B49E1A37FF80BA4599A55898A48A2967647EA5E48B88F8034C7BBE9AFC1CD8DCC986495AB7070346E83479BC23925D418A68C7D72B4BCC106FEE74532F70F3CA019C68D419E944C34A69DAC2CDA1155F4FCDEC53CFB3AED1FE07C58FD20D673CE274AC89AEB3D72C36C2D81B42A5F9A61A83FB748749FDA5598C5A519A3026B1475F61CA5DE7A77BE86C2DC6EBAA6F756D5C15AF0F0844C05F233A0468148956C0BA80ACDCB7850FE0CBE75DB675AB712ADBF0934765919A697F4C4345E2AD63B159664FE0DB201683C8DFBBDB1EFE3B580C11809AC815C1863929E60B7A0819D255C8EE7AA582C33E0153EB685E830627829C141DF8B5C599D9DDD25CB3EFAD7C4369A470D3AE3CF4CD0CDCB185A402F7C3E395C4169A7847 |
408 | 20171229061209 2 6 100 8191 2 F461D7B72CCE12BB489DFEBB0D3252492FB894ADE7EEFCA4FCEAE71B2078652882837E3DDE311BA08D03316DDE3C3C844C34F37E7536601A57C95E1D191CC3B603E15D0E27D99ECC6B7781424F1D40E39FFF25D3F99C207359AD00CB7A68DC0937FDC38F24EF6C095DA60D92F977FBE8674D9885C4F147D6B6114F1CAF9F56327EF2A9CF30C5A26F46E19FAFACF357EC4E9119FB4AC34FF97FE5CDA2D578E00DF294AC88305AA8C9CFA074F35A211DD176486BBFDF04269B47C1EECAA0FAD95F6A5D829770F73DE8AF9D45928E4BF4C71412821419E2AFB2DA29FAA42557CB595B75433FDF015E42853C784AC8A15857D494900319D36B3A6672B885B686D6498D50A7843D381D240A77C053853FBFC670687678EA7AA909F9D82D2363ABD4851E3D20CE16632E0B1522AAB5DB8BB53AA1EE8CDFE86A494D1C2405C5AAE058D1990C91607D8043A74453AFB650110CA784BA307E531B153537B2C0A888D75229CC1D3CD27B0D7A6BEE20E82B7EB912D9F36BC8630990003DE2494DE017CB9D0EDBA7F0785927E79A76DA00707ADA18B9EBC57930E36E76737A7BA31F8F36F11D8CEDDCE28A411EEB34CE5D5235E88F66089F59CD921A84789512947DFDC8247A68353D05BEAFA6E450D7211D8BABE3C4C63685E9FA7742BD6309F3D72B9BE5E1B84E534596A81DAF1F5483C001FED71A9C7E432A28E52E43D9A0D4D4607B5E3459C7D424925C34311958344EBB86AF4E02675F8701BD55AACE3DDF48980E1977EE44275BEEE341C090820A63FD317595D7A0CCD00609B49E4AAF8C744F2FEA35A806B9B79C519CCDCE59F225FA243FD1AD0C8DBAFA17291CCA0C0C4DAB68060205F72978A5879093A132BE80C061D33348D94A8C79AE86F637701FC44E795B0F15D4610E0B269DEC7B24F717A7284A521759894AE475E7E35472ABC8C82DADE518628FF0DD37B48D94D48C18BF686F509AE5A5C35CC7BC33861673166B743FE10EB6508D36B29D1C798210E3D1840418A67214F9DB6FAF60BB42329226517C202436F735C1D326B49E1A37FF80BA4599A55898A48A2967647EA5E48B88F8034C7BBE9AFC1CD8DCC986495AB7070346E83479BC23925D418A68C7D72B4BCC106FEE74532F70F3CA019C68D419E944C34A69DAC2CDA1155F4FCDEC53CFB3AED1FE07C58FD20D673CE274AC89AEB3D72C36C2D81B42A5F9A61A83FB748749FDA5598C5A519A3026B1475F61CA5DE7A77BE86C2DC6EBAA6F756D5C15AF0F0844C05F233A0468148956C0BA80ACDCB7850FE0CBE75DB675AB712ADBF0934765919A697F4C4345E2AD63B159664FE0DB201683C8DFBBDB1EFE3B580C11809AC815C1863929E60B7A0819D255C8EE7AA582C33E0153EB685E830627829C141DF8B5C599D9DDD25CB3EFAD7C4369A470D3AE3CF4CD0CDCB185A402F7C3E395C4189CEBF3 | ||
409 | 20171229071940 2 6 100 8191 5 F461D7B72CCE12BB489DFEBB0D3252492FB894ADE7EEFCA4FCEAE71B2078652882837E3DDE311BA08D03316DDE3C3C844C34F37E7536601A57C95E1D191CC3B603E15D0E27D99ECC6B7781424F1D40E39FFF25D3F99C207359AD00CB7A68DC0937FDC38F24EF6C095DA60D92F977FBE8674D9885C4F147D6B6114F1CAF9F56327EF2A9CF30C5A26F46E19FAFACF357EC4E9119FB4AC34FF97FE5CDA2D578E00DF294AC88305AA8C9CFA074F35A211DD176486BBFDF04269B47C1EECAA0FAD95F6A5D829770F73DE8AF9D45928E4BF4C71412821419E2AFB2DA29FAA42557CB595B75433FDF015E42853C784AC8A15857D494900319D36B3A6672B885B686D6498D50A7843D381D240A77C053853FBFC670687678EA7AA909F9D82D2363ABD4851E3D20CE16632E0B1522AAB5DB8BB53AA1EE8CDFE86A494D1C2405C5AAE058D1990C91607D8043A74453AFB650110CA784BA307E531B153537B2C0A888D75229CC1D3CD27B0D7A6BEE20E82B7EB912D9F36BC8630990003DE2494DE017CB9D0EDBA7F0785927E79A76DA00707ADA18B9EBC57930E36E76737A7BA31F8F36F11D8CEDDCE28A411EEB34CE5D5235E88F66089F59CD921A84789512947DFDC8247A68353D05BEAFA6E450D7211D8BABE3C4C63685E9FA7742BD6309F3D72B9BE5E1B84E534596A81DAF1F5483C001FED71A9C7E432A28E52E43D9A0D4D4607B5E3459C7D424925C34311958344EBB86AF4E02675F8701BD55AACE3DDF48980E1977EE44275BEEE341C090820A63FD317595D7A0CCD00609B49E4AAF8C744F2FEA35A806B9B79C519CCDCE59F225FA243FD1AD0C8DBAFA17291CCA0C0C4DAB68060205F72978A5879093A132BE80C061D33348D94A8C79AE86F637701FC44E795B0F15D4610E0B269DEC7B24F717A7284A521759894AE475E7E35472ABC8C82DADE518628FF0DD37B48D94D48C18BF686F509AE5A5C35CC7BC33861673166B743FE10EB6508D36B29D1C798210E3D1840418A67214F9DB6FAF60BB42329226517C202436F735C1D326B49E1A37FF80BA4599A55898A48A2967647EA5E48B88F8034C7BBE9AFC1CD8DCC986495AB7070346E83479BC23925D418A68C7D72B4BCC106FEE74532F70F3CA019C68D419E944C34A69DAC2CDA1155F4FCDEC53CFB3AED1FE07C58FD20D673CE274AC89AEB3D72C36C2D81B42A5F9A61A83FB748749FDA5598C5A519A3026B1475F61CA5DE7A77BE86C2DC6EBAA6F756D5C15AF0F0844C05F233A0468148956C0BA80ACDCB7850FE0CBE75DB675AB712ADBF0934765919A697F4C4345E2AD63B159664FE0DB201683C8DFBBDB1EFE3B580C11809AC815C1863929E60B7A0819D255C8EE7AA582C33E0153EB685E830627829C141DF8B5C599D9DDD25CB3EFAD7C4369A470D3AE3CF4CD0CDCB185A402F7C3E395C419560A6F | ||
410 | 20171229082351 2 6 100 8191 2 F461D7B72CCE12BB489DFEBB0D3252492FB894ADE7EEFCA4FCEAE71B2078652882837E3DDE311BA08D03316DDE3C3C844C34F37E7536601A57C95E1D191CC3B603E15D0E27D99ECC6B7781424F1D40E39FFF25D3F99C207359AD00CB7A68DC0937FDC38F24EF6C095DA60D92F977FBE8674D9885C4F147D6B6114F1CAF9F56327EF2A9CF30C5A26F46E19FAFACF357EC4E9119FB4AC34FF97FE5CDA2D578E00DF294AC88305AA8C9CFA074F35A211DD176486BBFDF04269B47C1EECAA0FAD95F6A5D829770F73DE8AF9D45928E4BF4C71412821419E2AFB2DA29FAA42557CB595B75433FDF015E42853C784AC8A15857D494900319D36B3A6672B885B686D6498D50A7843D381D240A77C053853FBFC670687678EA7AA909F9D82D2363ABD4851E3D20CE16632E0B1522AAB5DB8BB53AA1EE8CDFE86A494D1C2405C5AAE058D1990C91607D8043A74453AFB650110CA784BA307E531B153537B2C0A888D75229CC1D3CD27B0D7A6BEE20E82B7EB912D9F36BC8630990003DE2494DE017CB9D0EDBA7F0785927E79A76DA00707ADA18B9EBC57930E36E76737A7BA31F8F36F11D8CEDDCE28A411EEB34CE5D5235E88F66089F59CD921A84789512947DFDC8247A68353D05BEAFA6E450D7211D8BABE3C4C63685E9FA7742BD6309F3D72B9BE5E1B84E534596A81DAF1F5483C001FED71A9C7E432A28E52E43D9A0D4D4607B5E3459C7D424925C34311958344EBB86AF4E02675F8701BD55AACE3DDF48980E1977EE44275BEEE341C090820A63FD317595D7A0CCD00609B49E4AAF8C744F2FEA35A806B9B79C519CCDCE59F225FA243FD1AD0C8DBAFA17291CCA0C0C4DAB68060205F72978A5879093A132BE80C061D33348D94A8C79AE86F637701FC44E795B0F15D4610E0B269DEC7B24F717A7284A521759894AE475E7E35472ABC8C82DADE518628FF0DD37B48D94D48C18BF686F509AE5A5C35CC7BC33861673166B743FE10EB6508D36B29D1C798210E3D1840418A67214F9DB6FAF60BB42329226517C202436F735C1D326B49E1A37FF80BA4599A55898A48A2967647EA5E48B88F8034C7BBE9AFC1CD8DCC986495AB7070346E83479BC23925D418A68C7D72B4BCC106FEE74532F70F3CA019C68D419E944C34A69DAC2CDA1155F4FCDEC53CFB3AED1FE07C58FD20D673CE274AC89AEB3D72C36C2D81B42A5F9A61A83FB748749FDA5598C5A519A3026B1475F61CA5DE7A77BE86C2DC6EBAA6F756D5C15AF0F0844C05F233A0468148956C0BA80ACDCB7850FE0CBE75DB675AB712ADBF0934765919A697F4C4345E2AD63B159664FE0DB201683C8DFBBDB1EFE3B580C11809AC815C1863929E60B7A0819D255C8EE7AA582C33E0153EB685E830627829C141DF8B5C599D9DDD25CB3EFAD7C4369A470D3AE3CF4CD0CDCB185A402F7C3E395C41A003293 | ||
411 | 20171229091948 2 6 100 8191 2 F461D7B72CCE12BB489DFEBB0D3252492FB894ADE7EEFCA4FCEAE71B2078652882837E3DDE311BA08D03316DDE3C3C844C34F37E7536601A57C95E1D191CC3B603E15D0E27D99ECC6B7781424F1D40E39FFF25D3F99C207359AD00CB7A68DC0937FDC38F24EF6C095DA60D92F977FBE8674D9885C4F147D6B6114F1CAF9F56327EF2A9CF30C5A26F46E19FAFACF357EC4E9119FB4AC34FF97FE5CDA2D578E00DF294AC88305AA8C9CFA074F35A211DD176486BBFDF04269B47C1EECAA0FAD95F6A5D829770F73DE8AF9D45928E4BF4C71412821419E2AFB2DA29FAA42557CB595B75433FDF015E42853C784AC8A15857D494900319D36B3A6672B885B686D6498D50A7843D381D240A77C053853FBFC670687678EA7AA909F9D82D2363ABD4851E3D20CE16632E0B1522AAB5DB8BB53AA1EE8CDFE86A494D1C2405C5AAE058D1990C91607D8043A74453AFB650110CA784BA307E531B153537B2C0A888D75229CC1D3CD27B0D7A6BEE20E82B7EB912D9F36BC8630990003DE2494DE017CB9D0EDBA7F0785927E79A76DA00707ADA18B9EBC57930E36E76737A7BA31F8F36F11D8CEDDCE28A411EEB34CE5D5235E88F66089F59CD921A84789512947DFDC8247A68353D05BEAFA6E450D7211D8BABE3C4C63685E9FA7742BD6309F3D72B9BE5E1B84E534596A81DAF1F5483C001FED71A9C7E432A28E52E43D9A0D4D4607B5E3459C7D424925C34311958344EBB86AF4E02675F8701BD55AACE3DDF48980E1977EE44275BEEE341C090820A63FD317595D7A0CCD00609B49E4AAF8C744F2FEA35A806B9B79C519CCDCE59F225FA243FD1AD0C8DBAFA17291CCA0C0C4DAB68060205F72978A5879093A132BE80C061D33348D94A8C79AE86F637701FC44E795B0F15D4610E0B269DEC7B24F717A7284A521759894AE475E7E35472ABC8C82DADE518628FF0DD37B48D94D48C18BF686F509AE5A5C35CC7BC33861673166B743FE10EB6508D36B29D1C798210E3D1840418A67214F9DB6FAF60BB42329226517C202436F735C1D326B49E1A37FF80BA4599A55898A48A2967647EA5E48B88F8034C7BBE9AFC1CD8DCC986495AB7070346E83479BC23925D418A68C7D72B4BCC106FEE74532F70F3CA019C68D419E944C34A69DAC2CDA1155F4FCDEC53CFB3AED1FE07C58FD20D673CE274AC89AEB3D72C36C2D81B42A5F9A61A83FB748749FDA5598C5A519A3026B1475F61CA5DE7A77BE86C2DC6EBAA6F756D5C15AF0F0844C05F233A0468148956C0BA80ACDCB7850FE0CBE75DB675AB712ADBF0934765919A697F4C4345E2AD63B159664FE0DB201683C8DFBBDB1EFE3B580C11809AC815C1863929E60B7A0819D255C8EE7AA582C33E0153EB685E830627829C141DF8B5C599D9DDD25CB3EFAD7C4369A470D3AE3CF4CD0CDCB185A402F7C3E395C41A97B0B3 | ||
412 | 20171229152509 2 6 100 8191 2 F461D7B72CCE12BB489DFEBB0D3252492FB894ADE7EEFCA4FCEAE71B2078652882837E3DDE311BA08D03316DDE3C3C844C34F37E7536601A57C95E1D191CC3B603E15D0E27D99ECC6B7781424F1D40E39FFF25D3F99C207359AD00CB7A68DC0937FDC38F24EF6C095DA60D92F977FBE8674D9885C4F147D6B6114F1CAF9F56327EF2A9CF30C5A26F46E19FAFACF357EC4E9119FB4AC34FF97FE5CDA2D578E00DF294AC88305AA8C9CFA074F35A211DD176486BBFDF04269B47C1EECAA0FAD95F6A5D829770F73DE8AF9D45928E4BF4C71412821419E2AFB2DA29FAA42557CB595B75433FDF015E42853C784AC8A15857D494900319D36B3A6672B885B686D6498D50A7843D381D240A77C053853FBFC670687678EA7AA909F9D82D2363ABD4851E3D20CE16632E0B1522AAB5DB8BB53AA1EE8CDFE86A494D1C2405C5AAE058D1990C91607D8043A74453AFB650110CA784BA307E531B153537B2C0A888D75229CC1D3CD27B0D7A6BEE20E82B7EB912D9F36BC8630990003DE2494DE017CB9D0EDBA7F0785927E79A76DA00707ADA18B9EBC57930E36E76737A7BA31F8F36F11D8CEDDCE28A411EEB34CE5D5235E88F66089F59CD921A84789512947DFDC8247A68353D05BEAFA6E450D7211D8BABE3C4C63685E9FA7742BD6309F3D72B9BE5E1B84E534596A81DAF1F5483C001FED71A9C7E432A28E52E43D9A0D4D4607B5E3459C7D424925C34311958344EBB86AF4E02675F8701BD55AACE3DDF48980E1977EE44275BEEE341C090820A63FD317595D7A0CCD00609B49E4AAF8C744F2FEA35A806B9B79C519CCDCE59F225FA243FD1AD0C8DBAFA17291CCA0C0C4DAB68060205F72978A5879093A132BE80C061D33348D94A8C79AE86F637701FC44E795B0F15D4610E0B269DEC7B24F717A7284A521759894AE475E7E35472ABC8C82DADE518628FF0DD37B48D94D48C18BF686F509AE5A5C35CC7BC33861673166B743FE10EB6508D36B29D1C798210E3D1840418A67214F9DB6FAF60BB42329226517C202436F735C1D326B49E1A37FF80BA4599A55898A48A2967647EA5E48B88F8034C7BBE9AFC1CD8DCC986495AB7070346E83479BC23925D418A68C7D72B4BCC106FEE74532F70F3CA019C68D419E944C34A69DAC2CDA1155F4FCDEC53CFB3AED1FE07C58FD20D673CE274AC89AEB3D72C36C2D81B42A5F9A61A83FB748749FDA5598C5A519A3026B1475F61CA5DE7A77BE86C2DC6EBAA6F756D5C15AF0F0844C05F233A0468148956C0BA80ACDCB7850FE0CBE75DB675AB712ADBF0934765919A697F4C4345E2AD63B159664FE0DB201683C8DFBBDB1EFE3B580C11809AC815C1863929E60B7A0819D255C8EE7AA582C33E0153EB685E830627829C141DF8B5C599D9DDD25CB3EFAD7C4369A470D3AE3CF4CD0CDCB185A402F7C3E395C41EA78513 | ||
413 | 20171229193934 2 6 100 8191 2 F461D7B72CCE12BB489DFEBB0D3252492FB894ADE7EEFCA4FCEAE71B2078652882837E3DDE311BA08D03316DDE3C3C844C34F37E7536601A57C95E1D191CC3B603E15D0E27D99ECC6B7781424F1D40E39FFF25D3F99C207359AD00CB7A68DC0937FDC38F24EF6C095DA60D92F977FBE8674D9885C4F147D6B6114F1CAF9F56327EF2A9CF30C5A26F46E19FAFACF357EC4E9119FB4AC34FF97FE5CDA2D578E00DF294AC88305AA8C9CFA074F35A211DD176486BBFDF04269B47C1EECAA0FAD95F6A5D829770F73DE8AF9D45928E4BF4C71412821419E2AFB2DA29FAA42557CB595B75433FDF015E42853C784AC8A15857D494900319D36B3A6672B885B686D6498D50A7843D381D240A77C053853FBFC670687678EA7AA909F9D82D2363ABD4851E3D20CE16632E0B1522AAB5DB8BB53AA1EE8CDFE86A494D1C2405C5AAE058D1990C91607D8043A74453AFB650110CA784BA307E531B153537B2C0A888D75229CC1D3CD27B0D7A6BEE20E82B7EB912D9F36BC8630990003DE2494DE017CB9D0EDBA7F0785927E79A76DA00707ADA18B9EBC57930E36E76737A7BA31F8F36F11D8CEDDCE28A411EEB34CE5D5235E88F66089F59CD921A84789512947DFDC8247A68353D05BEAFA6E450D7211D8BABE3C4C63685E9FA7742BD6309F3D72B9BE5E1B84E534596A81DAF1F5483C001FED71A9C7E432A28E52E43D9A0D4D4607B5E3459C7D424925C34311958344EBB86AF4E02675F8701BD55AACE3DDF48980E1977EE44275BEEE341C090820A63FD317595D7A0CCD00609B49E4AAF8C744F2FEA35A806B9B79C519CCDCE59F225FA243FD1AD0C8DBAFA17291CCA0C0C4DAB68060205F72978A5879093A132BE80C061D33348D94A8C79AE86F637701FC44E795B0F15D4610E0B269DEC7B24F717A7284A521759894AE475E7E35472ABC8C82DADE518628FF0DD37B48D94D48C18BF686F509AE5A5C35CC7BC33861673166B743FE10EB6508D36B29D1C798210E3D1840418A67214F9DB6FAF60BB42329226517C202436F735C1D326B49E1A37FF80BA4599A55898A48A2967647EA5E48B88F8034C7BBE9AFC1CD8DCC986495AB7070346E83479BC23925D418A68C7D72B4BCC106FEE74532F70F3CA019C68D419E944C34A69DAC2CDA1155F4FCDEC53CFB3AED1FE07C58FD20D673CE274AC89AEB3D72C36C2D81B42A5F9A61A83FB748749FDA5598C5A519A3026B1475F61CA5DE7A77BE86C2DC6EBAA6F756D5C15AF0F0844C05F233A0468148956C0BA80ACDCB7850FE0CBE75DB675AB712ADBF0934765919A697F4C4345E2AD63B159664FE0DB201683C8DFBBDB1EFE3B580C11809AC815C1863929E60B7A0819D255C8EE7AA582C33E0153EB685E830627829C141DF8B5C599D9DDD25CB3EFAD7C4369A470D3AE3CF4CD0CDCB185A402F7C3E395C4216FDF1B | ||
414 | 20171230082815 2 6 100 8191 2 F461D7B72CCE12BB489DFEBB0D3252492FB894ADE7EEFCA4FCEAE71B2078652882837E3DDE311BA08D03316DDE3C3C844C34F37E7536601A57C95E1D191CC3B603E15D0E27D99ECC6B7781424F1D40E39FFF25D3F99C207359AD00CB7A68DC0937FDC38F24EF6C095DA60D92F977FBE8674D9885C4F147D6B6114F1CAF9F56327EF2A9CF30C5A26F46E19FAFACF357EC4E9119FB4AC34FF97FE5CDA2D578E00DF294AC88305AA8C9CFA074F35A211DD176486BBFDF04269B47C1EECAA0FAD95F6A5D829770F73DE8AF9D45928E4BF4C71412821419E2AFB2DA29FAA42557CB595B75433FDF015E42853C784AC8A15857D494900319D36B3A6672B885B686D6498D50A7843D381D240A77C053853FBFC670687678EA7AA909F9D82D2363ABD4851E3D20CE16632E0B1522AAB5DB8BB53AA1EE8CDFE86A494D1C2405C5AAE058D1990C91607D8043A74453AFB650110CA784BA307E531B153537B2C0A888D75229CC1D3CD27B0D7A6BEE20E82B7EB912D9F36BC8630990003DE2494DE017CB9D0EDBA7F0785927E79A76DA00707ADA18B9EBC57930E36E76737A7BA31F8F36F11D8CEDDCE28A411EEB34CE5D5235E88F66089F59CD921A84789512947DFDC8247A68353D05BEAFA6E450D7211D8BABE3C4C63685E9FA7742BD6309F3D72B9BE5E1B84E534596A81DAF1F5483C001FED71A9C7E432A28E52E43D9A0D4D4607B5E3459C7D424925C34311958344EBB86AF4E02675F8701BD55AACE3DDF48980E1977EE44275BEEE341C090820A63FD317595D7A0CCD00609B49E4AAF8C744F2FEA35A806B9B79C519CCDCE59F225FA243FD1AD0C8DBAFA17291CCA0C0C4DAB68060205F72978A5879093A132BE80C061D33348D94A8C79AE86F637701FC44E795B0F15D4610E0B269DEC7B24F717A7284A521759894AE475E7E35472ABC8C82DADE518628FF0DD37B48D94D48C18BF686F509AE5A5C35CC7BC33861673166B743FE10EB6508D36B29D1C798210E3D1840418A67214F9DB6FAF60BB42329226517C202436F735C1D326B49E1A37FF80BA4599A55898A48A2967647EA5E48B88F8034C7BBE9AFC1CD8DCC986495AB7070346E83479BC23925D418A68C7D72B4BCC106FEE74532F70F3CA019C68D419E944C34A69DAC2CDA1155F4FCDEC53CFB3AED1FE07C58FD20D673CE274AC89AEB3D72C36C2D81B42A5F9A61A83FB748749FDA5598C5A519A3026B1475F61CA5DE7A77BE86C2DC6EBAA6F756D5C15AF0F0844C05F233A0468148956C0BA80ACDCB7850FE0CBE75DB675AB712ADBF0934765919A697F4C4345E2AD63B159664FE0DB201683C8DFBBDB1EFE3B580C11809AC815C1863929E60B7A0819D255C8EE7AA582C33E0153EB685E830627829C141DF8B5C599D9DDD25CB3EFAD7C4369A470D3AE3CF4CD0CDCB185A402F7C3E395C429E6D743 | ||
415 | 20171230095722 2 6 100 8191 2 F461D7B72CCE12BB489DFEBB0D3252492FB894ADE7EEFCA4FCEAE71B2078652882837E3DDE311BA08D03316DDE3C3C844C34F37E7536601A57C95E1D191CC3B603E15D0E27D99ECC6B7781424F1D40E39FFF25D3F99C207359AD00CB7A68DC0937FDC38F24EF6C095DA60D92F977FBE8674D9885C4F147D6B6114F1CAF9F56327EF2A9CF30C5A26F46E19FAFACF357EC4E9119FB4AC34FF97FE5CDA2D578E00DF294AC88305AA8C9CFA074F35A211DD176486BBFDF04269B47C1EECAA0FAD95F6A5D829770F73DE8AF9D45928E4BF4C71412821419E2AFB2DA29FAA42557CB595B75433FDF015E42853C784AC8A15857D494900319D36B3A6672B885B686D6498D50A7843D381D240A77C053853FBFC670687678EA7AA909F9D82D2363ABD4851E3D20CE16632E0B1522AAB5DB8BB53AA1EE8CDFE86A494D1C2405C5AAE058D1990C91607D8043A74453AFB650110CA784BA307E531B153537B2C0A888D75229CC1D3CD27B0D7A6BEE20E82B7EB912D9F36BC8630990003DE2494DE017CB9D0EDBA7F0785927E79A76DA00707ADA18B9EBC57930E36E76737A7BA31F8F36F11D8CEDDCE28A411EEB34CE5D5235E88F66089F59CD921A84789512947DFDC8247A68353D05BEAFA6E450D7211D8BABE3C4C63685E9FA7742BD6309F3D72B9BE5E1B84E534596A81DAF1F5483C001FED71A9C7E432A28E52E43D9A0D4D4607B5E3459C7D424925C34311958344EBB86AF4E02675F8701BD55AACE3DDF48980E1977EE44275BEEE341C090820A63FD317595D7A0CCD00609B49E4AAF8C744F2FEA35A806B9B79C519CCDCE59F225FA243FD1AD0C8DBAFA17291CCA0C0C4DAB68060205F72978A5879093A132BE80C061D33348D94A8C79AE86F637701FC44E795B0F15D4610E0B269DEC7B24F717A7284A521759894AE475E7E35472ABC8C82DADE518628FF0DD37B48D94D48C18BF686F509AE5A5C35CC7BC33861673166B743FE10EB6508D36B29D1C798210E3D1840418A67214F9DB6FAF60BB42329226517C202436F735C1D326B49E1A37FF80BA4599A55898A48A2967647EA5E48B88F8034C7BBE9AFC1CD8DCC986495AB7070346E83479BC23925D418A68C7D72B4BCC106FEE74532F70F3CA019C68D419E944C34A69DAC2CDA1155F4FCDEC53CFB3AED1FE07C58FD20D673CE274AC89AEB3D72C36C2D81B42A5F9A61A83FB748749FDA5598C5A519A3026B1475F61CA5DE7A77BE86C2DC6EBAA6F756D5C15AF0F0844C05F233A0468148956C0BA80ACDCB7850FE0CBE75DB675AB712ADBF0934765919A697F4C4345E2AD63B159664FE0DB201683C8DFBBDB1EFE3B580C11809AC815C1863929E60B7A0819D255C8EE7AA582C33E0153EB685E830627829C141DF8B5C599D9DDD25CB3EFAD7C4369A470D3AE3CF4CD0CDCB185A402F7C3E395C42ADAFEC3 | ||
416 | 20171231000503 2 6 100 8191 2 F461D7B72CCE12BB489DFEBB0D3252492FB894ADE7EEFCA4FCEAE71B2078652882837E3DDE311BA08D03316DDE3C3C844C34F37E7536601A57C95E1D191CC3B603E15D0E27D99ECC6B7781424F1D40E39FFF25D3F99C207359AD00CB7A68DC0937FDC38F24EF6C095DA60D92F977FBE8674D9885C4F147D6B6114F1CAF9F56327EF2A9CF30C5A26F46E19FAFACF357EC4E9119FB4AC34FF97FE5CDA2D578E00DF294AC88305AA8C9CFA074F35A211DD176486BBFDF04269B47C1EECAA0FAD95F6A5D829770F73DE8AF9D45928E4BF4C71412821419E2AFB2DA29FAA42557CB595B75433FDF015E42853C784AC8A15857D494900319D36B3A6672B885B686D6498D50A7843D381D240A77C053853FBFC670687678EA7AA909F9D82D2363ABD4851E3D20CE16632E0B1522AAB5DB8BB53AA1EE8CDFE86A494D1C2405C5AAE058D1990C91607D8043A74453AFB650110CA784BA307E531B153537B2C0A888D75229CC1D3CD27B0D7A6BEE20E82B7EB912D9F36BC8630990003DE2494DE017CB9D0EDBA7F0785927E79A76DA00707ADA18B9EBC57930E36E76737A7BA31F8F36F11D8CEDDCE28A411EEB34CE5D5235E88F66089F59CD921A84789512947DFDC8247A68353D05BEAFA6E450D7211D8BABE3C4C63685E9FA7742BD6309F3D72B9BE5E1B84E534596A81DAF1F5483C001FED71A9C7E432A28E52E43D9A0D4D4607B5E3459C7D424925C34311958344EBB86AF4E02675F8701BD55AACE3DDF48980E1977EE44275BEEE341C090820A63FD317595D7A0CCD00609B49E4AAF8C744F2FEA35A806B9B79C519CCDCE59F225FA243FD1AD0C8DBAFA17291CCA0C0C4DAB68060205F72978A5879093A132BE80C061D33348D94A8C79AE86F637701FC44E795B0F15D4610E0B269DEC7B24F717A7284A521759894AE475E7E35472ABC8C82DADE518628FF0DD37B48D94D48C18BF686F509AE5A5C35CC7BC33861673166B743FE10EB6508D36B29D1C798210E3D1840418A67214F9DB6FAF60BB42329226517C202436F735C1D326B49E1A37FF80BA4599A55898A48A2967647EA5E48B88F8034C7BBE9AFC1CD8DCC986495AB7070346E83479BC23925D418A68C7D72B4BCC106FEE74532F70F3CA019C68D419E944C34A69DAC2CDA1155F4FCDEC53CFB3AED1FE07C58FD20D673CE274AC89AEB3D72C36C2D81B42A5F9A61A83FB748749FDA5598C5A519A3026B1475F61CA5DE7A77BE86C2DC6EBAA6F756D5C15AF0F0844C05F233A0468148956C0BA80ACDCB7850FE0CBE75DB675AB712ADBF0934765919A697F4C4345E2AD63B159664FE0DB201683C8DFBBDB1EFE3B580C11809AC815C1863929E60B7A0819D255C8EE7AA582C33E0153EB685E830627829C141DF8B5C599D9DDD25CB3EFAD7C4369A470D3AE3CF4CD0CDCB185A402F7C3E395C4341E820B | ||
417 | 20171231123324 2 6 100 8191 2 F461D7B72CCE12BB489DFEBB0D3252492FB894ADE7EEFCA4FCEAE71B2078652882837E3DDE311BA08D03316DDE3C3C844C34F37E7536601A57C95E1D191CC3B603E15D0E27D99ECC6B7781424F1D40E39FFF25D3F99C207359AD00CB7A68DC0937FDC38F24EF6C095DA60D92F977FBE8674D9885C4F147D6B6114F1CAF9F56327EF2A9CF30C5A26F46E19FAFACF357EC4E9119FB4AC34FF97FE5CDA2D578E00DF294AC88305AA8C9CFA074F35A211DD176486BBFDF04269B47C1EECAA0FAD95F6A5D829770F73DE8AF9D45928E4BF4C71412821419E2AFB2DA29FAA42557CB595B75433FDF015E42853C784AC8A15857D494900319D36B3A6672B885B686D6498D50A7843D381D240A77C053853FBFC670687678EA7AA909F9D82D2363ABD4851E3D20CE16632E0B1522AAB5DB8BB53AA1EE8CDFE86A494D1C2405C5AAE058D1990C91607D8043A74453AFB650110CA784BA307E531B153537B2C0A888D75229CC1D3CD27B0D7A6BEE20E82B7EB912D9F36BC8630990003DE2494DE017CB9D0EDBA7F0785927E79A76DA00707ADA18B9EBC57930E36E76737A7BA31F8F36F11D8CEDDCE28A411EEB34CE5D5235E88F66089F59CD921A84789512947DFDC8247A68353D05BEAFA6E450D7211D8BABE3C4C63685E9FA7742BD6309F3D72B9BE5E1B84E534596A81DAF1F5483C001FED71A9C7E432A28E52E43D9A0D4D4607B5E3459C7D424925C34311958344EBB86AF4E02675F8701BD55AACE3DDF48980E1977EE44275BEEE341C090820A63FD317595D7A0CCD00609B49E4AAF8C744F2FEA35A806B9B79C519CCDCE59F225FA243FD1AD0C8DBAFA17291CCA0C0C4DAB68060205F72978A5879093A132BE80C061D33348D94A8C79AE86F637701FC44E795B0F15D4610E0B269DEC7B24F717A7284A521759894AE475E7E35472ABC8C82DADE518628FF0DD37B48D94D48C18BF686F509AE5A5C35CC7BC33861673166B743FE10EB6508D36B29D1C798210E3D1840418A67214F9DB6FAF60BB42329226517C202436F735C1D326B49E1A37FF80BA4599A55898A48A2967647EA5E48B88F8034C7BBE9AFC1CD8DCC986495AB7070346E83479BC23925D418A68C7D72B4BCC106FEE74532F70F3CA019C68D419E944C34A69DAC2CDA1155F4FCDEC53CFB3AED1FE07C58FD20D673CE274AC89AEB3D72C36C2D81B42A5F9A61A83FB748749FDA5598C5A519A3026B1475F61CA5DE7A77BE86C2DC6EBAA6F756D5C15AF0F0844C05F233A0468148956C0BA80ACDCB7850FE0CBE75DB675AB712ADBF0934765919A697F4C4345E2AD63B159664FE0DB201683C8DFBBDB1EFE3B580C11809AC815C1863929E60B7A0819D255C8EE7AA582C33E0153EB685E830627829C141DF8B5C599D9DDD25CB3EFAD7C4369A470D3AE3CF4CD0CDCB185A402F7C3E395C43C20726B | ||
418 | 20171231133810 2 6 100 8191 5 F461D7B72CCE12BB489DFEBB0D3252492FB894ADE7EEFCA4FCEAE71B2078652882837E3DDE311BA08D03316DDE3C3C844C34F37E7536601A57C95E1D191CC3B603E15D0E27D99ECC6B7781424F1D40E39FFF25D3F99C207359AD00CB7A68DC0937FDC38F24EF6C095DA60D92F977FBE8674D9885C4F147D6B6114F1CAF9F56327EF2A9CF30C5A26F46E19FAFACF357EC4E9119FB4AC34FF97FE5CDA2D578E00DF294AC88305AA8C9CFA074F35A211DD176486BBFDF04269B47C1EECAA0FAD95F6A5D829770F73DE8AF9D45928E4BF4C71412821419E2AFB2DA29FAA42557CB595B75433FDF015E42853C784AC8A15857D494900319D36B3A6672B885B686D6498D50A7843D381D240A77C053853FBFC670687678EA7AA909F9D82D2363ABD4851E3D20CE16632E0B1522AAB5DB8BB53AA1EE8CDFE86A494D1C2405C5AAE058D1990C91607D8043A74453AFB650110CA784BA307E531B153537B2C0A888D75229CC1D3CD27B0D7A6BEE20E82B7EB912D9F36BC8630990003DE2494DE017CB9D0EDBA7F0785927E79A76DA00707ADA18B9EBC57930E36E76737A7BA31F8F36F11D8CEDDCE28A411EEB34CE5D5235E88F66089F59CD921A84789512947DFDC8247A68353D05BEAFA6E450D7211D8BABE3C4C63685E9FA7742BD6309F3D72B9BE5E1B84E534596A81DAF1F5483C001FED71A9C7E432A28E52E43D9A0D4D4607B5E3459C7D424925C34311958344EBB86AF4E02675F8701BD55AACE3DDF48980E1977EE44275BEEE341C090820A63FD317595D7A0CCD00609B49E4AAF8C744F2FEA35A806B9B79C519CCDCE59F225FA243FD1AD0C8DBAFA17291CCA0C0C4DAB68060205F72978A5879093A132BE80C061D33348D94A8C79AE86F637701FC44E795B0F15D4610E0B269DEC7B24F717A7284A521759894AE475E7E35472ABC8C82DADE518628FF0DD37B48D94D48C18BF686F509AE5A5C35CC7BC33861673166B743FE10EB6508D36B29D1C798210E3D1840418A67214F9DB6FAF60BB42329226517C202436F735C1D326B49E1A37FF80BA4599A55898A48A2967647EA5E48B88F8034C7BBE9AFC1CD8DCC986495AB7070346E83479BC23925D418A68C7D72B4BCC106FEE74532F70F3CA019C68D419E944C34A69DAC2CDA1155F4FCDEC53CFB3AED1FE07C58FD20D673CE274AC89AEB3D72C36C2D81B42A5F9A61A83FB748749FDA5598C5A519A3026B1475F61CA5DE7A77BE86C2DC6EBAA6F756D5C15AF0F0844C05F233A0468148956C0BA80ACDCB7850FE0CBE75DB675AB712ADBF0934765919A697F4C4345E2AD63B159664FE0DB201683C8DFBBDB1EFE3B580C11809AC815C1863929E60B7A0819D255C8EE7AA582C33E0153EB685E830627829C141DF8B5C599D9DDD25CB3EFAD7C4369A470D3AE3CF4CD0CDCB185A402F7C3E395C43CC9B38F | ||
419 | 20180101034650 2 6 100 8191 5 F461D7B72CCE12BB489DFEBB0D3252492FB894ADE7EEFCA4FCEAE71B2078652882837E3DDE311BA08D03316DDE3C3C844C34F37E7536601A57C95E1D191CC3B603E15D0E27D99ECC6B7781424F1D40E39FFF25D3F99C207359AD00CB7A68DC0937FDC38F24EF6C095DA60D92F977FBE8674D9885C4F147D6B6114F1CAF9F56327EF2A9CF30C5A26F46E19FAFACF357EC4E9119FB4AC34FF97FE5CDA2D578E00DF294AC88305AA8C9CFA074F35A211DD176486BBFDF04269B47C1EECAA0FAD95F6A5D829770F73DE8AF9D45928E4BF4C71412821419E2AFB2DA29FAA42557CB595B75433FDF015E42853C784AC8A15857D494900319D36B3A6672B885B686D6498D50A7843D381D240A77C053853FBFC670687678EA7AA909F9D82D2363ABD4851E3D20CE16632E0B1522AAB5DB8BB53AA1EE8CDFE86A494D1C2405C5AAE058D1990C91607D8043A74453AFB650110CA784BA307E531B153537B2C0A888D75229CC1D3CD27B0D7A6BEE20E82B7EB912D9F36BC8630990003DE2494DE017CB9D0EDBA7F0785927E79A76DA00707ADA18B9EBC57930E36E76737A7BA31F8F36F11D8CEDDCE28A411EEB34CE5D5235E88F66089F59CD921A84789512947DFDC8247A68353D05BEAFA6E450D7211D8BABE3C4C63685E9FA7742BD6309F3D72B9BE5E1B84E534596A81DAF1F5483C001FED71A9C7E432A28E52E43D9A0D4D4607B5E3459C7D424925C34311958344EBB86AF4E02675F8701BD55AACE3DDF48980E1977EE44275BEEE341C090820A63FD317595D7A0CCD00609B49E4AAF8C744F2FEA35A806B9B79C519CCDCE59F225FA243FD1AD0C8DBAFA17291CCA0C0C4DAB68060205F72978A5879093A132BE80C061D33348D94A8C79AE86F637701FC44E795B0F15D4610E0B269DEC7B24F717A7284A521759894AE475E7E35472ABC8C82DADE518628FF0DD37B48D94D48C18BF686F509AE5A5C35CC7BC33861673166B743FE10EB6508D36B29D1C798210E3D1840418A67214F9DB6FAF60BB42329226517C202436F735C1D326B49E1A37FF80BA4599A55898A48A2967647EA5E48B88F8034C7BBE9AFC1CD8DCC986495AB7070346E83479BC23925D418A68C7D72B4BCC106FEE74532F70F3CA019C68D419E944C34A69DAC2CDA1155F4FCDEC53CFB3AED1FE07C58FD20D673CE274AC89AEB3D72C36C2D81B42A5F9A61A83FB748749FDA5598C5A519A3026B1475F61CA5DE7A77BE86C2DC6EBAA6F756D5C15AF0F0844C05F233A0468148956C0BA80ACDCB7850FE0CBE75DB675AB712ADBF0934765919A697F4C4345E2AD63B159664FE0DB201683C8DFBBDB1EFE3B580C11809AC815C1863929E60B7A0819D255C8EE7AA582C33E0153EB685E830627829C141DF8B5C599D9DDD25CB3EFAD7C4369A470D3AE3CF4CD0CDCB185A402F7C3E395C445D1D6AF | ||
420 | 20180102021859 2 6 100 8191 2 F461D7B72CCE12BB489DFEBB0D3252492FB894ADE7EEFCA4FCEAE71B2078652882837E3DDE311BA08D03316DDE3C3C844C34F37E7536601A57C95E1D191CC3B603E15D0E27D99ECC6B7781424F1D40E39FFF25D3F99C207359AD00CB7A68DC0937FDC38F24EF6C095DA60D92F977FBE8674D9885C4F147D6B6114F1CAF9F56327EF2A9CF30C5A26F46E19FAFACF357EC4E9119FB4AC34FF97FE5CDA2D578E00DF294AC88305AA8C9CFA074F35A211DD176486BBFDF04269B47C1EECAA0FAD95F6A5D829770F73DE8AF9D45928E4BF4C71412821419E2AFB2DA29FAA42557CB595B75433FDF015E42853C784AC8A15857D494900319D36B3A6672B885B686D6498D50A7843D381D240A77C053853FBFC670687678EA7AA909F9D82D2363ABD4851E3D20CE16632E0B1522AAB5DB8BB53AA1EE8CDFE86A494D1C2405C5AAE058D1990C91607D8043A74453AFB650110CA784BA307E531B153537B2C0A888D75229CC1D3CD27B0D7A6BEE20E82B7EB912D9F36BC8630990003DE2494DE017CB9D0EDBA7F0785927E79A76DA00707ADA18B9EBC57930E36E76737A7BA31F8F36F11D8CEDDCE28A411EEB34CE5D5235E88F66089F59CD921A84789512947DFDC8247A68353D05BEAFA6E450D7211D8BABE3C4C63685E9FA7742BD6309F3D72B9BE5E1B84E534596A81DAF1F5483C001FED71A9C7E432A28E52E43D9A0D4D4607B5E3459C7D424925C34311958344EBB86AF4E02675F8701BD55AACE3DDF48980E1977EE44275BEEE341C090820A63FD317595D7A0CCD00609B49E4AAF8C744F2FEA35A806B9B79C519CCDCE59F225FA243FD1AD0C8DBAFA17291CCA0C0C4DAB68060205F72978A5879093A132BE80C061D33348D94A8C79AE86F637701FC44E795B0F15D4610E0B269DEC7B24F717A7284A521759894AE475E7E35472ABC8C82DADE518628FF0DD37B48D94D48C18BF686F509AE5A5C35CC7BC33861673166B743FE10EB6508D36B29D1C798210E3D1840418A67214F9DB6FAF60BB42329226517C202436F735C1D326B49E1A37FF80BA4599A55898A48A2967647EA5E48B88F8034C7BBE9AFC1CD8DCC986495AB7070346E83479BC23925D418A68C7D72B4BCC106FEE74532F70F3CA019C68D419E944C34A69DAC2CDA1155F4FCDEC53CFB3AED1FE07C58FD20D673CE274AC89AEB3D72C36C2D81B42A5F9A61A83FB748749FDA5598C5A519A3026B1475F61CA5DE7A77BE86C2DC6EBAA6F756D5C15AF0F0844C05F233A0468148956C0BA80ACDCB7850FE0CBE75DB675AB712ADBF0934765919A697F4C4345E2AD63B159664FE0DB201683C8DFBBDB1EFE3B580C11809AC815C1863929E60B7A0819D255C8EE7AA582C33E0153EB685E830627829C141DF8B5C599D9DDD25CB3EFAD7C4369A470D3AE3CF4CD0CDCB185A402F7C3E395C453E3A923 | ||
421 | 20180102095212 2 6 100 8191 2 F461D7B72CCE12BB489DFEBB0D3252492FB894ADE7EEFCA4FCEAE71B2078652882837E3DDE311BA08D03316DDE3C3C844C34F37E7536601A57C95E1D191CC3B603E15D0E27D99ECC6B7781424F1D40E39FFF25D3F99C207359AD00CB7A68DC0937FDC38F24EF6C095DA60D92F977FBE8674D9885C4F147D6B6114F1CAF9F56327EF2A9CF30C5A26F46E19FAFACF357EC4E9119FB4AC34FF97FE5CDA2D578E00DF294AC88305AA8C9CFA074F35A211DD176486BBFDF04269B47C1EECAA0FAD95F6A5D829770F73DE8AF9D45928E4BF4C71412821419E2AFB2DA29FAA42557CB595B75433FDF015E42853C784AC8A15857D494900319D36B3A6672B885B686D6498D50A7843D381D240A77C053853FBFC670687678EA7AA909F9D82D2363ABD4851E3D20CE16632E0B1522AAB5DB8BB53AA1EE8CDFE86A494D1C2405C5AAE058D1990C91607D8043A74453AFB650110CA784BA307E531B153537B2C0A888D75229CC1D3CD27B0D7A6BEE20E82B7EB912D9F36BC8630990003DE2494DE017CB9D0EDBA7F0785927E79A76DA00707ADA18B9EBC57930E36E76737A7BA31F8F36F11D8CEDDCE28A411EEB34CE5D5235E88F66089F59CD921A84789512947DFDC8247A68353D05BEAFA6E450D7211D8BABE3C4C63685E9FA7742BD6309F3D72B9BE5E1B84E534596A81DAF1F5483C001FED71A9C7E432A28E52E43D9A0D4D4607B5E3459C7D424925C34311958344EBB86AF4E02675F8701BD55AACE3DDF48980E1977EE44275BEEE341C090820A63FD317595D7A0CCD00609B49E4AAF8C744F2FEA35A806B9B79C519CCDCE59F225FA243FD1AD0C8DBAFA17291CCA0C0C4DAB68060205F72978A5879093A132BE80C061D33348D94A8C79AE86F637701FC44E795B0F15D4610E0B269DEC7B24F717A7284A521759894AE475E7E35472ABC8C82DADE518628FF0DD37B48D94D48C18BF686F509AE5A5C35CC7BC33861673166B743FE10EB6508D36B29D1C798210E3D1840418A67214F9DB6FAF60BB42329226517C202436F735C1D326B49E1A37FF80BA4599A55898A48A2967647EA5E48B88F8034C7BBE9AFC1CD8DCC986495AB7070346E83479BC23925D418A68C7D72B4BCC106FEE74532F70F3CA019C68D419E944C34A69DAC2CDA1155F4FCDEC53CFB3AED1FE07C58FD20D673CE274AC89AEB3D72C36C2D81B42A5F9A61A83FB748749FDA5598C5A519A3026B1475F61CA5DE7A77BE86C2DC6EBAA6F756D5C15AF0F0844C05F233A0468148956C0BA80ACDCB7850FE0CBE75DB675AB712ADBF0934765919A697F4C4345E2AD63B159664FE0DB201683C8DFBBDB1EFE3B580C11809AC815C1863929E60B7A0819D255C8EE7AA582C33E0153EB685E830627829C141DF8B5C599D9DDD25CB3EFAD7C4369A470D3AE3CF4CD0CDCB185A402F7C3E395C4589223B3 | ||
422 | 20180102194603 2 6 100 8191 2 F461D7B72CCE12BB489DFEBB0D3252492FB894ADE7EEFCA4FCEAE71B2078652882837E3DDE311BA08D03316DDE3C3C844C34F37E7536601A57C95E1D191CC3B603E15D0E27D99ECC6B7781424F1D40E39FFF25D3F99C207359AD00CB7A68DC0937FDC38F24EF6C095DA60D92F977FBE8674D9885C4F147D6B6114F1CAF9F56327EF2A9CF30C5A26F46E19FAFACF357EC4E9119FB4AC34FF97FE5CDA2D578E00DF294AC88305AA8C9CFA074F35A211DD176486BBFDF04269B47C1EECAA0FAD95F6A5D829770F73DE8AF9D45928E4BF4C71412821419E2AFB2DA29FAA42557CB595B75433FDF015E42853C784AC8A15857D494900319D36B3A6672B885B686D6498D50A7843D381D240A77C053853FBFC670687678EA7AA909F9D82D2363ABD4851E3D20CE16632E0B1522AAB5DB8BB53AA1EE8CDFE86A494D1C2405C5AAE058D1990C91607D8043A74453AFB650110CA784BA307E531B153537B2C0A888D75229CC1D3CD27B0D7A6BEE20E82B7EB912D9F36BC8630990003DE2494DE017CB9D0EDBA7F0785927E79A76DA00707ADA18B9EBC57930E36E76737A7BA31F8F36F11D8CEDDCE28A411EEB34CE5D5235E88F66089F59CD921A84789512947DFDC8247A68353D05BEAFA6E450D7211D8BABE3C4C63685E9FA7742BD6309F3D72B9BE5E1B84E534596A81DAF1F5483C001FED71A9C7E432A28E52E43D9A0D4D4607B5E3459C7D424925C34311958344EBB86AF4E02675F8701BD55AACE3DDF48980E1977EE44275BEEE341C090820A63FD317595D7A0CCD00609B49E4AAF8C744F2FEA35A806B9B79C519CCDCE59F225FA243FD1AD0C8DBAFA17291CCA0C0C4DAB68060205F72978A5879093A132BE80C061D33348D94A8C79AE86F637701FC44E795B0F15D4610E0B269DEC7B24F717A7284A521759894AE475E7E35472ABC8C82DADE518628FF0DD37B48D94D48C18BF686F509AE5A5C35CC7BC33861673166B743FE10EB6508D36B29D1C798210E3D1840418A67214F9DB6FAF60BB42329226517C202436F735C1D326B49E1A37FF80BA4599A55898A48A2967647EA5E48B88F8034C7BBE9AFC1CD8DCC986495AB7070346E83479BC23925D418A68C7D72B4BCC106FEE74532F70F3CA019C68D419E944C34A69DAC2CDA1155F4FCDEC53CFB3AED1FE07C58FD20D673CE274AC89AEB3D72C36C2D81B42A5F9A61A83FB748749FDA5598C5A519A3026B1475F61CA5DE7A77BE86C2DC6EBAA6F756D5C15AF0F0844C05F233A0468148956C0BA80ACDCB7850FE0CBE75DB675AB712ADBF0934765919A697F4C4345E2AD63B159664FE0DB201683C8DFBBDB1EFE3B580C11809AC815C1863929E60B7A0819D255C8EE7AA582C33E0153EB685E830627829C141DF8B5C599D9DDD25CB3EFAD7C4369A470D3AE3CF4CD0CDCB185A402F7C3E395C45EA32E73 | ||
423 | 20180102224522 2 6 100 8191 2 F461D7B72CCE12BB489DFEBB0D3252492FB894ADE7EEFCA4FCEAE71B2078652882837E3DDE311BA08D03316DDE3C3C844C34F37E7536601A57C95E1D191CC3B603E15D0E27D99ECC6B7781424F1D40E39FFF25D3F99C207359AD00CB7A68DC0937FDC38F24EF6C095DA60D92F977FBE8674D9885C4F147D6B6114F1CAF9F56327EF2A9CF30C5A26F46E19FAFACF357EC4E9119FB4AC34FF97FE5CDA2D578E00DF294AC88305AA8C9CFA074F35A211DD176486BBFDF04269B47C1EECAA0FAD95F6A5D829770F73DE8AF9D45928E4BF4C71412821419E2AFB2DA29FAA42557CB595B75433FDF015E42853C784AC8A15857D494900319D36B3A6672B885B686D6498D50A7843D381D240A77C053853FBFC670687678EA7AA909F9D82D2363ABD4851E3D20CE16632E0B1522AAB5DB8BB53AA1EE8CDFE86A494D1C2405C5AAE058D1990C91607D8043A74453AFB650110CA784BA307E531B153537B2C0A888D75229CC1D3CD27B0D7A6BEE20E82B7EB912D9F36BC8630990003DE2494DE017CB9D0EDBA7F0785927E79A76DA00707ADA18B9EBC57930E36E76737A7BA31F8F36F11D8CEDDCE28A411EEB34CE5D5235E88F66089F59CD921A84789512947DFDC8247A68353D05BEAFA6E450D7211D8BABE3C4C63685E9FA7742BD6309F3D72B9BE5E1B84E534596A81DAF1F5483C001FED71A9C7E432A28E52E43D9A0D4D4607B5E3459C7D424925C34311958344EBB86AF4E02675F8701BD55AACE3DDF48980E1977EE44275BEEE341C090820A63FD317595D7A0CCD00609B49E4AAF8C744F2FEA35A806B9B79C519CCDCE59F225FA243FD1AD0C8DBAFA17291CCA0C0C4DAB68060205F72978A5879093A132BE80C061D33348D94A8C79AE86F637701FC44E795B0F15D4610E0B269DEC7B24F717A7284A521759894AE475E7E35472ABC8C82DADE518628FF0DD37B48D94D48C18BF686F509AE5A5C35CC7BC33861673166B743FE10EB6508D36B29D1C798210E3D1840418A67214F9DB6FAF60BB42329226517C202436F735C1D326B49E1A37FF80BA4599A55898A48A2967647EA5E48B88F8034C7BBE9AFC1CD8DCC986495AB7070346E83479BC23925D418A68C7D72B4BCC106FEE74532F70F3CA019C68D419E944C34A69DAC2CDA1155F4FCDEC53CFB3AED1FE07C58FD20D673CE274AC89AEB3D72C36C2D81B42A5F9A61A83FB748749FDA5598C5A519A3026B1475F61CA5DE7A77BE86C2DC6EBAA6F756D5C15AF0F0844C05F233A0468148956C0BA80ACDCB7850FE0CBE75DB675AB712ADBF0934765919A697F4C4345E2AD63B159664FE0DB201683C8DFBBDB1EFE3B580C11809AC815C1863929E60B7A0819D255C8EE7AA582C33E0153EB685E830627829C141DF8B5C599D9DDD25CB3EFAD7C4369A470D3AE3CF4CD0CDCB185A402F7C3E395C4606F2AEB | ||
424 | 20180103002357 2 6 100 8191 2 F461D7B72CCE12BB489DFEBB0D3252492FB894ADE7EEFCA4FCEAE71B2078652882837E3DDE311BA08D03316DDE3C3C844C34F37E7536601A57C95E1D191CC3B603E15D0E27D99ECC6B7781424F1D40E39FFF25D3F99C207359AD00CB7A68DC0937FDC38F24EF6C095DA60D92F977FBE8674D9885C4F147D6B6114F1CAF9F56327EF2A9CF30C5A26F46E19FAFACF357EC4E9119FB4AC34FF97FE5CDA2D578E00DF294AC88305AA8C9CFA074F35A211DD176486BBFDF04269B47C1EECAA0FAD95F6A5D829770F73DE8AF9D45928E4BF4C71412821419E2AFB2DA29FAA42557CB595B75433FDF015E42853C784AC8A15857D494900319D36B3A6672B885B686D6498D50A7843D381D240A77C053853FBFC670687678EA7AA909F9D82D2363ABD4851E3D20CE16632E0B1522AAB5DB8BB53AA1EE8CDFE86A494D1C2405C5AAE058D1990C91607D8043A74453AFB650110CA784BA307E531B153537B2C0A888D75229CC1D3CD27B0D7A6BEE20E82B7EB912D9F36BC8630990003DE2494DE017CB9D0EDBA7F0785927E79A76DA00707ADA18B9EBC57930E36E76737A7BA31F8F36F11D8CEDDCE28A411EEB34CE5D5235E88F66089F59CD921A84789512947DFDC8247A68353D05BEAFA6E450D7211D8BABE3C4C63685E9FA7742BD6309F3D72B9BE5E1B84E534596A81DAF1F5483C001FED71A9C7E432A28E52E43D9A0D4D4607B5E3459C7D424925C34311958344EBB86AF4E02675F8701BD55AACE3DDF48980E1977EE44275BEEE341C090820A63FD317595D7A0CCD00609B49E4AAF8C744F2FEA35A806B9B79C519CCDCE59F225FA243FD1AD0C8DBAFA17291CCA0C0C4DAB68060205F72978A5879093A132BE80C061D33348D94A8C79AE86F637701FC44E795B0F15D4610E0B269DEC7B24F717A7284A521759894AE475E7E35472ABC8C82DADE518628FF0DD37B48D94D48C18BF686F509AE5A5C35CC7BC33861673166B743FE10EB6508D36B29D1C798210E3D1840418A67214F9DB6FAF60BB42329226517C202436F735C1D326B49E1A37FF80BA4599A55898A48A2967647EA5E48B88F8034C7BBE9AFC1CD8DCC986495AB7070346E83479BC23925D418A68C7D72B4BCC106FEE74532F70F3CA019C68D419E944C34A69DAC2CDA1155F4FCDEC53CFB3AED1FE07C58FD20D673CE274AC89AEB3D72C36C2D81B42A5F9A61A83FB748749FDA5598C5A519A3026B1475F61CA5DE7A77BE86C2DC6EBAA6F756D5C15AF0F0844C05F233A0468148956C0BA80ACDCB7850FE0CBE75DB675AB712ADBF0934765919A697F4C4345E2AD63B159664FE0DB201683C8DFBBDB1EFE3B580C11809AC815C1863929E60B7A0819D255C8EE7AA582C33E0153EB685E830627829C141DF8B5C599D9DDD25CB3EFAD7C4369A470D3AE3CF4CD0CDCB185A402F7C3E395C4617220D3 | ||
425 | 20180103011455 2 6 100 8191 5 F461D7B72CCE12BB489DFEBB0D3252492FB894ADE7EEFCA4FCEAE71B2078652882837E3DDE311BA08D03316DDE3C3C844C34F37E7536601A57C95E1D191CC3B603E15D0E27D99ECC6B7781424F1D40E39FFF25D3F99C207359AD00CB7A68DC0937FDC38F24EF6C095DA60D92F977FBE8674D9885C4F147D6B6114F1CAF9F56327EF2A9CF30C5A26F46E19FAFACF357EC4E9119FB4AC34FF97FE5CDA2D578E00DF294AC88305AA8C9CFA074F35A211DD176486BBFDF04269B47C1EECAA0FAD95F6A5D829770F73DE8AF9D45928E4BF4C71412821419E2AFB2DA29FAA42557CB595B75433FDF015E42853C784AC8A15857D494900319D36B3A6672B885B686D6498D50A7843D381D240A77C053853FBFC670687678EA7AA909F9D82D2363ABD4851E3D20CE16632E0B1522AAB5DB8BB53AA1EE8CDFE86A494D1C2405C5AAE058D1990C91607D8043A74453AFB650110CA784BA307E531B153537B2C0A888D75229CC1D3CD27B0D7A6BEE20E82B7EB912D9F36BC8630990003DE2494DE017CB9D0EDBA7F0785927E79A76DA00707ADA18B9EBC57930E36E76737A7BA31F8F36F11D8CEDDCE28A411EEB34CE5D5235E88F66089F59CD921A84789512947DFDC8247A68353D05BEAFA6E450D7211D8BABE3C4C63685E9FA7742BD6309F3D72B9BE5E1B84E534596A81DAF1F5483C001FED71A9C7E432A28E52E43D9A0D4D4607B5E3459C7D424925C34311958344EBB86AF4E02675F8701BD55AACE3DDF48980E1977EE44275BEEE341C090820A63FD317595D7A0CCD00609B49E4AAF8C744F2FEA35A806B9B79C519CCDCE59F225FA243FD1AD0C8DBAFA17291CCA0C0C4DAB68060205F72978A5879093A132BE80C061D33348D94A8C79AE86F637701FC44E795B0F15D4610E0B269DEC7B24F717A7284A521759894AE475E7E35472ABC8C82DADE518628FF0DD37B48D94D48C18BF686F509AE5A5C35CC7BC33861673166B743FE10EB6508D36B29D1C798210E3D1840418A67214F9DB6FAF60BB42329226517C202436F735C1D326B49E1A37FF80BA4599A55898A48A2967647EA5E48B88F8034C7BBE9AFC1CD8DCC986495AB7070346E83479BC23925D418A68C7D72B4BCC106FEE74532F70F3CA019C68D419E944C34A69DAC2CDA1155F4FCDEC53CFB3AED1FE07C58FD20D673CE274AC89AEB3D72C36C2D81B42A5F9A61A83FB748749FDA5598C5A519A3026B1475F61CA5DE7A77BE86C2DC6EBAA6F756D5C15AF0F0844C05F233A0468148956C0BA80ACDCB7850FE0CBE75DB675AB712ADBF0934765919A697F4C4345E2AD63B159664FE0DB201683C8DFBBDB1EFE3B580C11809AC815C1863929E60B7A0819D255C8EE7AA582C33E0153EB685E830627829C141DF8B5C599D9DDD25CB3EFAD7C4369A470D3AE3CF4CD0CDCB185A402F7C3E395C461EEC227 | ||
426 | 20180103044126 2 6 100 8191 5 F461D7B72CCE12BB489DFEBB0D3252492FB894ADE7EEFCA4FCEAE71B2078652882837E3DDE311BA08D03316DDE3C3C844C34F37E7536601A57C95E1D191CC3B603E15D0E27D99ECC6B7781424F1D40E39FFF25D3F99C207359AD00CB7A68DC0937FDC38F24EF6C095DA60D92F977FBE8674D9885C4F147D6B6114F1CAF9F56327EF2A9CF30C5A26F46E19FAFACF357EC4E9119FB4AC34FF97FE5CDA2D578E00DF294AC88305AA8C9CFA074F35A211DD176486BBFDF04269B47C1EECAA0FAD95F6A5D829770F73DE8AF9D45928E4BF4C71412821419E2AFB2DA29FAA42557CB595B75433FDF015E42853C784AC8A15857D494900319D36B3A6672B885B686D6498D50A7843D381D240A77C053853FBFC670687678EA7AA909F9D82D2363ABD4851E3D20CE16632E0B1522AAB5DB8BB53AA1EE8CDFE86A494D1C2405C5AAE058D1990C91607D8043A74453AFB650110CA784BA307E531B153537B2C0A888D75229CC1D3CD27B0D7A6BEE20E82B7EB912D9F36BC8630990003DE2494DE017CB9D0EDBA7F0785927E79A76DA00707ADA18B9EBC57930E36E76737A7BA31F8F36F11D8CEDDCE28A411EEB34CE5D5235E88F66089F59CD921A84789512947DFDC8247A68353D05BEAFA6E450D7211D8BABE3C4C63685E9FA7742BD6309F3D72B9BE5E1B84E534596A81DAF1F5483C001FED71A9C7E432A28E52E43D9A0D4D4607B5E3459C7D424925C34311958344EBB86AF4E02675F8701BD55AACE3DDF48980E1977EE44275BEEE341C090820A63FD317595D7A0CCD00609B49E4AAF8C744F2FEA35A806B9B79C519CCDCE59F225FA243FD1AD0C8DBAFA17291CCA0C0C4DAB68060205F72978A5879093A132BE80C061D33348D94A8C79AE86F637701FC44E795B0F15D4610E0B269DEC7B24F717A7284A521759894AE475E7E35472ABC8C82DADE518628FF0DD37B48D94D48C18BF686F509AE5A5C35CC7BC33861673166B743FE10EB6508D36B29D1C798210E3D1840418A67214F9DB6FAF60BB42329226517C202436F735C1D326B49E1A37FF80BA4599A55898A48A2967647EA5E48B88F8034C7BBE9AFC1CD8DCC986495AB7070346E83479BC23925D418A68C7D72B4BCC106FEE74532F70F3CA019C68D419E944C34A69DAC2CDA1155F4FCDEC53CFB3AED1FE07C58FD20D673CE274AC89AEB3D72C36C2D81B42A5F9A61A83FB748749FDA5598C5A519A3026B1475F61CA5DE7A77BE86C2DC6EBAA6F756D5C15AF0F0844C05F233A0468148956C0BA80ACDCB7850FE0CBE75DB675AB712ADBF0934765919A697F4C4345E2AD63B159664FE0DB201683C8DFBBDB1EFE3B580C11809AC815C1863929E60B7A0819D255C8EE7AA582C33E0153EB685E830627829C141DF8B5C599D9DDD25CB3EFAD7C4369A470D3AE3CF4CD0CDCB185A402F7C3E395C4640ADAFF | ||
427 | 20180103102958 2 6 100 8191 2 F461D7B72CCE12BB489DFEBB0D3252492FB894ADE7EEFCA4FCEAE71B2078652882837E3DDE311BA08D03316DDE3C3C844C34F37E7536601A57C95E1D191CC3B603E15D0E27D99ECC6B7781424F1D40E39FFF25D3F99C207359AD00CB7A68DC0937FDC38F24EF6C095DA60D92F977FBE8674D9885C4F147D6B6114F1CAF9F56327EF2A9CF30C5A26F46E19FAFACF357EC4E9119FB4AC34FF97FE5CDA2D578E00DF294AC88305AA8C9CFA074F35A211DD176486BBFDF04269B47C1EECAA0FAD95F6A5D829770F73DE8AF9D45928E4BF4C71412821419E2AFB2DA29FAA42557CB595B75433FDF015E42853C784AC8A15857D494900319D36B3A6672B885B686D6498D50A7843D381D240A77C053853FBFC670687678EA7AA909F9D82D2363ABD4851E3D20CE16632E0B1522AAB5DB8BB53AA1EE8CDFE86A494D1C2405C5AAE058D1990C91607D8043A74453AFB650110CA784BA307E531B153537B2C0A888D75229CC1D3CD27B0D7A6BEE20E82B7EB912D9F36BC8630990003DE2494DE017CB9D0EDBA7F0785927E79A76DA00707ADA18B9EBC57930E36E76737A7BA31F8F36F11D8CEDDCE28A411EEB34CE5D5235E88F66089F59CD921A84789512947DFDC8247A68353D05BEAFA6E450D7211D8BABE3C4C63685E9FA7742BD6309F3D72B9BE5E1B84E534596A81DAF1F5483C001FED71A9C7E432A28E52E43D9A0D4D4607B5E3459C7D424925C34311958344EBB86AF4E02675F8701BD55AACE3DDF48980E1977EE44275BEEE341C090820A63FD317595D7A0CCD00609B49E4AAF8C744F2FEA35A806B9B79C519CCDCE59F225FA243FD1AD0C8DBAFA17291CCA0C0C4DAB68060205F72978A5879093A132BE80C061D33348D94A8C79AE86F637701FC44E795B0F15D4610E0B269DEC7B24F717A7284A521759894AE475E7E35472ABC8C82DADE518628FF0DD37B48D94D48C18BF686F509AE5A5C35CC7BC33861673166B743FE10EB6508D36B29D1C798210E3D1840418A67214F9DB6FAF60BB42329226517C202436F735C1D326B49E1A37FF80BA4599A55898A48A2967647EA5E48B88F8034C7BBE9AFC1CD8DCC986495AB7070346E83479BC23925D418A68C7D72B4BCC106FEE74532F70F3CA019C68D419E944C34A69DAC2CDA1155F4FCDEC53CFB3AED1FE07C58FD20D673CE274AC89AEB3D72C36C2D81B42A5F9A61A83FB748749FDA5598C5A519A3026B1475F61CA5DE7A77BE86C2DC6EBAA6F756D5C15AF0F0844C05F233A0468148956C0BA80ACDCB7850FE0CBE75DB675AB712ADBF0934765919A697F4C4345E2AD63B159664FE0DB201683C8DFBBDB1EFE3B580C11809AC815C1863929E60B7A0819D255C8EE7AA582C33E0153EB685E830627829C141DF8B5C599D9DDD25CB3EFAD7C4369A470D3AE3CF4CD0CDCB185A402F7C3E395C4678F8743 | ||
428 | 20180103153131 2 6 100 8191 5 F461D7B72CCE12BB489DFEBB0D3252492FB894ADE7EEFCA4FCEAE71B2078652882837E3DDE311BA08D03316DDE3C3C844C34F37E7536601A57C95E1D191CC3B603E15D0E27D99ECC6B7781424F1D40E39FFF25D3F99C207359AD00CB7A68DC0937FDC38F24EF6C095DA60D92F977FBE8674D9885C4F147D6B6114F1CAF9F56327EF2A9CF30C5A26F46E19FAFACF357EC4E9119FB4AC34FF97FE5CDA2D578E00DF294AC88305AA8C9CFA074F35A211DD176486BBFDF04269B47C1EECAA0FAD95F6A5D829770F73DE8AF9D45928E4BF4C71412821419E2AFB2DA29FAA42557CB595B75433FDF015E42853C784AC8A15857D494900319D36B3A6672B885B686D6498D50A7843D381D240A77C053853FBFC670687678EA7AA909F9D82D2363ABD4851E3D20CE16632E0B1522AAB5DB8BB53AA1EE8CDFE86A494D1C2405C5AAE058D1990C91607D8043A74453AFB650110CA784BA307E531B153537B2C0A888D75229CC1D3CD27B0D7A6BEE20E82B7EB912D9F36BC8630990003DE2494DE017CB9D0EDBA7F0785927E79A76DA00707ADA18B9EBC57930E36E76737A7BA31F8F36F11D8CEDDCE28A411EEB34CE5D5235E88F66089F59CD921A84789512947DFDC8247A68353D05BEAFA6E450D7211D8BABE3C4C63685E9FA7742BD6309F3D72B9BE5E1B84E534596A81DAF1F5483C001FED71A9C7E432A28E52E43D9A0D4D4607B5E3459C7D424925C34311958344EBB86AF4E02675F8701BD55AACE3DDF48980E1977EE44275BEEE341C090820A63FD317595D7A0CCD00609B49E4AAF8C744F2FEA35A806B9B79C519CCDCE59F225FA243FD1AD0C8DBAFA17291CCA0C0C4DAB68060205F72978A5879093A132BE80C061D33348D94A8C79AE86F637701FC44E795B0F15D4610E0B269DEC7B24F717A7284A521759894AE475E7E35472ABC8C82DADE518628FF0DD37B48D94D48C18BF686F509AE5A5C35CC7BC33861673166B743FE10EB6508D36B29D1C798210E3D1840418A67214F9DB6FAF60BB42329226517C202436F735C1D326B49E1A37FF80BA4599A55898A48A2967647EA5E48B88F8034C7BBE9AFC1CD8DCC986495AB7070346E83479BC23925D418A68C7D72B4BCC106FEE74532F70F3CA019C68D419E944C34A69DAC2CDA1155F4FCDEC53CFB3AED1FE07C58FD20D673CE274AC89AEB3D72C36C2D81B42A5F9A61A83FB748749FDA5598C5A519A3026B1475F61CA5DE7A77BE86C2DC6EBAA6F756D5C15AF0F0844C05F233A0468148956C0BA80ACDCB7850FE0CBE75DB675AB712ADBF0934765919A697F4C4345E2AD63B159664FE0DB201683C8DFBBDB1EFE3B580C11809AC815C1863929E60B7A0819D255C8EE7AA582C33E0153EB685E830627829C141DF8B5C599D9DDD25CB3EFAD7C4369A470D3AE3CF4CD0CDCB185A402F7C3E395C46AA4F9DF | ||
429 | 20180103175311 2 6 100 8191 2 F461D7B72CCE12BB489DFEBB0D3252492FB894ADE7EEFCA4FCEAE71B2078652882837E3DDE311BA08D03316DDE3C3C844C34F37E7536601A57C95E1D191CC3B603E15D0E27D99ECC6B7781424F1D40E39FFF25D3F99C207359AD00CB7A68DC0937FDC38F24EF6C095DA60D92F977FBE8674D9885C4F147D6B6114F1CAF9F56327EF2A9CF30C5A26F46E19FAFACF357EC4E9119FB4AC34FF97FE5CDA2D578E00DF294AC88305AA8C9CFA074F35A211DD176486BBFDF04269B47C1EECAA0FAD95F6A5D829770F73DE8AF9D45928E4BF4C71412821419E2AFB2DA29FAA42557CB595B75433FDF015E42853C784AC8A15857D494900319D36B3A6672B885B686D6498D50A7843D381D240A77C053853FBFC670687678EA7AA909F9D82D2363ABD4851E3D20CE16632E0B1522AAB5DB8BB53AA1EE8CDFE86A494D1C2405C5AAE058D1990C91607D8043A74453AFB650110CA784BA307E531B153537B2C0A888D75229CC1D3CD27B0D7A6BEE20E82B7EB912D9F36BC8630990003DE2494DE017CB9D0EDBA7F0785927E79A76DA00707ADA18B9EBC57930E36E76737A7BA31F8F36F11D8CEDDCE28A411EEB34CE5D5235E88F66089F59CD921A84789512947DFDC8247A68353D05BEAFA6E450D7211D8BABE3C4C63685E9FA7742BD6309F3D72B9BE5E1B84E534596A81DAF1F5483C001FED71A9C7E432A28E52E43D9A0D4D4607B5E3459C7D424925C34311958344EBB86AF4E02675F8701BD55AACE3DDF48980E1977EE44275BEEE341C090820A63FD317595D7A0CCD00609B49E4AAF8C744F2FEA35A806B9B79C519CCDCE59F225FA243FD1AD0C8DBAFA17291CCA0C0C4DAB68060205F72978A5879093A132BE80C061D33348D94A8C79AE86F637701FC44E795B0F15D4610E0B269DEC7B24F717A7284A521759894AE475E7E35472ABC8C82DADE518628FF0DD37B48D94D48C18BF686F509AE5A5C35CC7BC33861673166B743FE10EB6508D36B29D1C798210E3D1840418A67214F9DB6FAF60BB42329226517C202436F735C1D326B49E1A37FF80BA4599A55898A48A2967647EA5E48B88F8034C7BBE9AFC1CD8DCC986495AB7070346E83479BC23925D418A68C7D72B4BCC106FEE74532F70F3CA019C68D419E944C34A69DAC2CDA1155F4FCDEC53CFB3AED1FE07C58FD20D673CE274AC89AEB3D72C36C2D81B42A5F9A61A83FB748749FDA5598C5A519A3026B1475F61CA5DE7A77BE86C2DC6EBAA6F756D5C15AF0F0844C05F233A0468148956C0BA80ACDCB7850FE0CBE75DB675AB712ADBF0934765919A697F4C4345E2AD63B159664FE0DB201683C8DFBBDB1EFE3B580C11809AC815C1863929E60B7A0819D255C8EE7AA582C33E0153EB685E830627829C141DF8B5C599D9DDD25CB3EFAD7C4369A470D3AE3CF4CD0CDCB185A402F7C3E395C46C14249B | ||
430 | 20180103210214 2 6 100 8191 5 F461D7B72CCE12BB489DFEBB0D3252492FB894ADE7EEFCA4FCEAE71B2078652882837E3DDE311BA08D03316DDE3C3C844C34F37E7536601A57C95E1D191CC3B603E15D0E27D99ECC6B7781424F1D40E39FFF25D3F99C207359AD00CB7A68DC0937FDC38F24EF6C095DA60D92F977FBE8674D9885C4F147D6B6114F1CAF9F56327EF2A9CF30C5A26F46E19FAFACF357EC4E9119FB4AC34FF97FE5CDA2D578E00DF294AC88305AA8C9CFA074F35A211DD176486BBFDF04269B47C1EECAA0FAD95F6A5D829770F73DE8AF9D45928E4BF4C71412821419E2AFB2DA29FAA42557CB595B75433FDF015E42853C784AC8A15857D494900319D36B3A6672B885B686D6498D50A7843D381D240A77C053853FBFC670687678EA7AA909F9D82D2363ABD4851E3D20CE16632E0B1522AAB5DB8BB53AA1EE8CDFE86A494D1C2405C5AAE058D1990C91607D8043A74453AFB650110CA784BA307E531B153537B2C0A888D75229CC1D3CD27B0D7A6BEE20E82B7EB912D9F36BC8630990003DE2494DE017CB9D0EDBA7F0785927E79A76DA00707ADA18B9EBC57930E36E76737A7BA31F8F36F11D8CEDDCE28A411EEB34CE5D5235E88F66089F59CD921A84789512947DFDC8247A68353D05BEAFA6E450D7211D8BABE3C4C63685E9FA7742BD6309F3D72B9BE5E1B84E534596A81DAF1F5483C001FED71A9C7E432A28E52E43D9A0D4D4607B5E3459C7D424925C34311958344EBB86AF4E02675F8701BD55AACE3DDF48980E1977EE44275BEEE341C090820A63FD317595D7A0CCD00609B49E4AAF8C744F2FEA35A806B9B79C519CCDCE59F225FA243FD1AD0C8DBAFA17291CCA0C0C4DAB68060205F72978A5879093A132BE80C061D33348D94A8C79AE86F637701FC44E795B0F15D4610E0B269DEC7B24F717A7284A521759894AE475E7E35472ABC8C82DADE518628FF0DD37B48D94D48C18BF686F509AE5A5C35CC7BC33861673166B743FE10EB6508D36B29D1C798210E3D1840418A67214F9DB6FAF60BB42329226517C202436F735C1D326B49E1A37FF80BA4599A55898A48A2967647EA5E48B88F8034C7BBE9AFC1CD8DCC986495AB7070346E83479BC23925D418A68C7D72B4BCC106FEE74532F70F3CA019C68D419E944C34A69DAC2CDA1155F4FCDEC53CFB3AED1FE07C58FD20D673CE274AC89AEB3D72C36C2D81B42A5F9A61A83FB748749FDA5598C5A519A3026B1475F61CA5DE7A77BE86C2DC6EBAA6F756D5C15AF0F0844C05F233A0468148956C0BA80ACDCB7850FE0CBE75DB675AB712ADBF0934765919A697F4C4345E2AD63B159664FE0DB201683C8DFBBDB1EFE3B580C11809AC815C1863929E60B7A0819D255C8EE7AA582C33E0153EB685E830627829C141DF8B5C599D9DDD25CB3EFAD7C4369A470D3AE3CF4CD0CDCB185A402F7C3E395C46DF36E37 | ||
431 | 20180103214256 2 6 100 8191 2 F461D7B72CCE12BB489DFEBB0D3252492FB894ADE7EEFCA4FCEAE71B2078652882837E3DDE311BA08D03316DDE3C3C844C34F37E7536601A57C95E1D191CC3B603E15D0E27D99ECC6B7781424F1D40E39FFF25D3F99C207359AD00CB7A68DC0937FDC38F24EF6C095DA60D92F977FBE8674D9885C4F147D6B6114F1CAF9F56327EF2A9CF30C5A26F46E19FAFACF357EC4E9119FB4AC34FF97FE5CDA2D578E00DF294AC88305AA8C9CFA074F35A211DD176486BBFDF04269B47C1EECAA0FAD95F6A5D829770F73DE8AF9D45928E4BF4C71412821419E2AFB2DA29FAA42557CB595B75433FDF015E42853C784AC8A15857D494900319D36B3A6672B885B686D6498D50A7843D381D240A77C053853FBFC670687678EA7AA909F9D82D2363ABD4851E3D20CE16632E0B1522AAB5DB8BB53AA1EE8CDFE86A494D1C2405C5AAE058D1990C91607D8043A74453AFB650110CA784BA307E531B153537B2C0A888D75229CC1D3CD27B0D7A6BEE20E82B7EB912D9F36BC8630990003DE2494DE017CB9D0EDBA7F0785927E79A76DA00707ADA18B9EBC57930E36E76737A7BA31F8F36F11D8CEDDCE28A411EEB34CE5D5235E88F66089F59CD921A84789512947DFDC8247A68353D05BEAFA6E450D7211D8BABE3C4C63685E9FA7742BD6309F3D72B9BE5E1B84E534596A81DAF1F5483C001FED71A9C7E432A28E52E43D9A0D4D4607B5E3459C7D424925C34311958344EBB86AF4E02675F8701BD55AACE3DDF48980E1977EE44275BEEE341C090820A63FD317595D7A0CCD00609B49E4AAF8C744F2FEA35A806B9B79C519CCDCE59F225FA243FD1AD0C8DBAFA17291CCA0C0C4DAB68060205F72978A5879093A132BE80C061D33348D94A8C79AE86F637701FC44E795B0F15D4610E0B269DEC7B24F717A7284A521759894AE475E7E35472ABC8C82DADE518628FF0DD37B48D94D48C18BF686F509AE5A5C35CC7BC33861673166B743FE10EB6508D36B29D1C798210E3D1840418A67214F9DB6FAF60BB42329226517C202436F735C1D326B49E1A37FF80BA4599A55898A48A2967647EA5E48B88F8034C7BBE9AFC1CD8DCC986495AB7070346E83479BC23925D418A68C7D72B4BCC106FEE74532F70F3CA019C68D419E944C34A69DAC2CDA1155F4FCDEC53CFB3AED1FE07C58FD20D673CE274AC89AEB3D72C36C2D81B42A5F9A61A83FB748749FDA5598C5A519A3026B1475F61CA5DE7A77BE86C2DC6EBAA6F756D5C15AF0F0844C05F233A0468148956C0BA80ACDCB7850FE0CBE75DB675AB712ADBF0934765919A697F4C4345E2AD63B159664FE0DB201683C8DFBBDB1EFE3B580C11809AC815C1863929E60B7A0819D255C8EE7AA582C33E0153EB685E830627829C141DF8B5C599D9DDD25CB3EFAD7C4369A470D3AE3CF4CD0CDCB185A402F7C3E395C46E5524BB | ||
432 | 20180103224847 2 6 100 8191 2 F461D7B72CCE12BB489DFEBB0D3252492FB894ADE7EEFCA4FCEAE71B2078652882837E3DDE311BA08D03316DDE3C3C844C34F37E7536601A57C95E1D191CC3B603E15D0E27D99ECC6B7781424F1D40E39FFF25D3F99C207359AD00CB7A68DC0937FDC38F24EF6C095DA60D92F977FBE8674D9885C4F147D6B6114F1CAF9F56327EF2A9CF30C5A26F46E19FAFACF357EC4E9119FB4AC34FF97FE5CDA2D578E00DF294AC88305AA8C9CFA074F35A211DD176486BBFDF04269B47C1EECAA0FAD95F6A5D829770F73DE8AF9D45928E4BF4C71412821419E2AFB2DA29FAA42557CB595B75433FDF015E42853C784AC8A15857D494900319D36B3A6672B885B686D6498D50A7843D381D240A77C053853FBFC670687678EA7AA909F9D82D2363ABD4851E3D20CE16632E0B1522AAB5DB8BB53AA1EE8CDFE86A494D1C2405C5AAE058D1990C91607D8043A74453AFB650110CA784BA307E531B153537B2C0A888D75229CC1D3CD27B0D7A6BEE20E82B7EB912D9F36BC8630990003DE2494DE017CB9D0EDBA7F0785927E79A76DA00707ADA18B9EBC57930E36E76737A7BA31F8F36F11D8CEDDCE28A411EEB34CE5D5235E88F66089F59CD921A84789512947DFDC8247A68353D05BEAFA6E450D7211D8BABE3C4C63685E9FA7742BD6309F3D72B9BE5E1B84E534596A81DAF1F5483C001FED71A9C7E432A28E52E43D9A0D4D4607B5E3459C7D424925C34311958344EBB86AF4E02675F8701BD55AACE3DDF48980E1977EE44275BEEE341C090820A63FD317595D7A0CCD00609B49E4AAF8C744F2FEA35A806B9B79C519CCDCE59F225FA243FD1AD0C8DBAFA17291CCA0C0C4DAB68060205F72978A5879093A132BE80C061D33348D94A8C79AE86F637701FC44E795B0F15D4610E0B269DEC7B24F717A7284A521759894AE475E7E35472ABC8C82DADE518628FF0DD37B48D94D48C18BF686F509AE5A5C35CC7BC33861673166B743FE10EB6508D36B29D1C798210E3D1840418A67214F9DB6FAF60BB42329226517C202436F735C1D326B49E1A37FF80BA4599A55898A48A2967647EA5E48B88F8034C7BBE9AFC1CD8DCC986495AB7070346E83479BC23925D418A68C7D72B4BCC106FEE74532F70F3CA019C68D419E944C34A69DAC2CDA1155F4FCDEC53CFB3AED1FE07C58FD20D673CE274AC89AEB3D72C36C2D81B42A5F9A61A83FB748749FDA5598C5A519A3026B1475F61CA5DE7A77BE86C2DC6EBAA6F756D5C15AF0F0844C05F233A0468148956C0BA80ACDCB7850FE0CBE75DB675AB712ADBF0934765919A697F4C4345E2AD63B159664FE0DB201683C8DFBBDB1EFE3B580C11809AC815C1863929E60B7A0819D255C8EE7AA582C33E0153EB685E830627829C141DF8B5C599D9DDD25CB3EFAD7C4369A470D3AE3CF4CD0CDCB185A402F7C3E395C46EF5AD73 | ||
433 | 20180104072036 2 6 100 8191 2 F461D7B72CCE12BB489DFEBB0D3252492FB894ADE7EEFCA4FCEAE71B2078652882837E3DDE311BA08D03316DDE3C3C844C34F37E7536601A57C95E1D191CC3B603E15D0E27D99ECC6B7781424F1D40E39FFF25D3F99C207359AD00CB7A68DC0937FDC38F24EF6C095DA60D92F977FBE8674D9885C4F147D6B6114F1CAF9F56327EF2A9CF30C5A26F46E19FAFACF357EC4E9119FB4AC34FF97FE5CDA2D578E00DF294AC88305AA8C9CFA074F35A211DD176486BBFDF04269B47C1EECAA0FAD95F6A5D829770F73DE8AF9D45928E4BF4C71412821419E2AFB2DA29FAA42557CB595B75433FDF015E42853C784AC8A15857D494900319D36B3A6672B885B686D6498D50A7843D381D240A77C053853FBFC670687678EA7AA909F9D82D2363ABD4851E3D20CE16632E0B1522AAB5DB8BB53AA1EE8CDFE86A494D1C2405C5AAE058D1990C91607D8043A74453AFB650110CA784BA307E531B153537B2C0A888D75229CC1D3CD27B0D7A6BEE20E82B7EB912D9F36BC8630990003DE2494DE017CB9D0EDBA7F0785927E79A76DA00707ADA18B9EBC57930E36E76737A7BA31F8F36F11D8CEDDCE28A411EEB34CE5D5235E88F66089F59CD921A84789512947DFDC8247A68353D05BEAFA6E450D7211D8BABE3C4C63685E9FA7742BD6309F3D72B9BE5E1B84E534596A81DAF1F5483C001FED71A9C7E432A28E52E43D9A0D4D4607B5E3459C7D424925C34311958344EBB86AF4E02675F8701BD55AACE3DDF48980E1977EE44275BEEE341C090820A63FD317595D7A0CCD00609B49E4AAF8C744F2FEA35A806B9B79C519CCDCE59F225FA243FD1AD0C8DBAFA17291CCA0C0C4DAB68060205F72978A5879093A132BE80C061D33348D94A8C79AE86F637701FC44E795B0F15D4610E0B269DEC7B24F717A7284A521759894AE475E7E35472ABC8C82DADE518628FF0DD37B48D94D48C18BF686F509AE5A5C35CC7BC33861673166B743FE10EB6508D36B29D1C798210E3D1840418A67214F9DB6FAF60BB42329226517C202436F735C1D326B49E1A37FF80BA4599A55898A48A2967647EA5E48B88F8034C7BBE9AFC1CD8DCC986495AB7070346E83479BC23925D418A68C7D72B4BCC106FEE74532F70F3CA019C68D419E944C34A69DAC2CDA1155F4FCDEC53CFB3AED1FE07C58FD20D673CE274AC89AEB3D72C36C2D81B42A5F9A61A83FB748749FDA5598C5A519A3026B1475F61CA5DE7A77BE86C2DC6EBAA6F756D5C15AF0F0844C05F233A0468148956C0BA80ACDCB7850FE0CBE75DB675AB712ADBF0934765919A697F4C4345E2AD63B159664FE0DB201683C8DFBBDB1EFE3B580C11809AC815C1863929E60B7A0819D255C8EE7AA582C33E0153EB685E830627829C141DF8B5C599D9DDD25CB3EFAD7C4369A470D3AE3CF4CD0CDCB185A402F7C3E395C473F7759B | ||
434 | 20180104112937 2 6 100 8191 5 F461D7B72CCE12BB489DFEBB0D3252492FB894ADE7EEFCA4FCEAE71B2078652882837E3DDE311BA08D03316DDE3C3C844C34F37E7536601A57C95E1D191CC3B603E15D0E27D99ECC6B7781424F1D40E39FFF25D3F99C207359AD00CB7A68DC0937FDC38F24EF6C095DA60D92F977FBE8674D9885C4F147D6B6114F1CAF9F56327EF2A9CF30C5A26F46E19FAFACF357EC4E9119FB4AC34FF97FE5CDA2D578E00DF294AC88305AA8C9CFA074F35A211DD176486BBFDF04269B47C1EECAA0FAD95F6A5D829770F73DE8AF9D45928E4BF4C71412821419E2AFB2DA29FAA42557CB595B75433FDF015E42853C784AC8A15857D494900319D36B3A6672B885B686D6498D50A7843D381D240A77C053853FBFC670687678EA7AA909F9D82D2363ABD4851E3D20CE16632E0B1522AAB5DB8BB53AA1EE8CDFE86A494D1C2405C5AAE058D1990C91607D8043A74453AFB650110CA784BA307E531B153537B2C0A888D75229CC1D3CD27B0D7A6BEE20E82B7EB912D9F36BC8630990003DE2494DE017CB9D0EDBA7F0785927E79A76DA00707ADA18B9EBC57930E36E76737A7BA31F8F36F11D8CEDDCE28A411EEB34CE5D5235E88F66089F59CD921A84789512947DFDC8247A68353D05BEAFA6E450D7211D8BABE3C4C63685E9FA7742BD6309F3D72B9BE5E1B84E534596A81DAF1F5483C001FED71A9C7E432A28E52E43D9A0D4D4607B5E3459C7D424925C34311958344EBB86AF4E02675F8701BD55AACE3DDF48980E1977EE44275BEEE341C090820A63FD317595D7A0CCD00609B49E4AAF8C744F2FEA35A806B9B79C519CCDCE59F225FA243FD1AD0C8DBAFA17291CCA0C0C4DAB68060205F72978A5879093A132BE80C061D33348D94A8C79AE86F637701FC44E795B0F15D4610E0B269DEC7B24F717A7284A521759894AE475E7E35472ABC8C82DADE518628FF0DD37B48D94D48C18BF686F509AE5A5C35CC7BC33861673166B743FE10EB6508D36B29D1C798210E3D1840418A67214F9DB6FAF60BB42329226517C202436F735C1D326B49E1A37FF80BA4599A55898A48A2967647EA5E48B88F8034C7BBE9AFC1CD8DCC986495AB7070346E83479BC23925D418A68C7D72B4BCC106FEE74532F70F3CA019C68D419E944C34A69DAC2CDA1155F4FCDEC53CFB3AED1FE07C58FD20D673CE274AC89AEB3D72C36C2D81B42A5F9A61A83FB748749FDA5598C5A519A3026B1475F61CA5DE7A77BE86C2DC6EBAA6F756D5C15AF0F0844C05F233A0468148956C0BA80ACDCB7850FE0CBE75DB675AB712ADBF0934765919A697F4C4345E2AD63B159664FE0DB201683C8DFBBDB1EFE3B580C11809AC815C1863929E60B7A0819D255C8EE7AA582C33E0153EB685E830627829C141DF8B5C599D9DDD25CB3EFAD7C4369A470D3AE3CF4CD0CDCB185A402F7C3E395C47658C257 | ||
435 | 20180104122132 2 6 100 8191 2 F461D7B72CCE12BB489DFEBB0D3252492FB894ADE7EEFCA4FCEAE71B2078652882837E3DDE311BA08D03316DDE3C3C844C34F37E7536601A57C95E1D191CC3B603E15D0E27D99ECC6B7781424F1D40E39FFF25D3F99C207359AD00CB7A68DC0937FDC38F24EF6C095DA60D92F977FBE8674D9885C4F147D6B6114F1CAF9F56327EF2A9CF30C5A26F46E19FAFACF357EC4E9119FB4AC34FF97FE5CDA2D578E00DF294AC88305AA8C9CFA074F35A211DD176486BBFDF04269B47C1EECAA0FAD95F6A5D829770F73DE8AF9D45928E4BF4C71412821419E2AFB2DA29FAA42557CB595B75433FDF015E42853C784AC8A15857D494900319D36B3A6672B885B686D6498D50A7843D381D240A77C053853FBFC670687678EA7AA909F9D82D2363ABD4851E3D20CE16632E0B1522AAB5DB8BB53AA1EE8CDFE86A494D1C2405C5AAE058D1990C91607D8043A74453AFB650110CA784BA307E531B153537B2C0A888D75229CC1D3CD27B0D7A6BEE20E82B7EB912D9F36BC8630990003DE2494DE017CB9D0EDBA7F0785927E79A76DA00707ADA18B9EBC57930E36E76737A7BA31F8F36F11D8CEDDCE28A411EEB34CE5D5235E88F66089F59CD921A84789512947DFDC8247A68353D05BEAFA6E450D7211D8BABE3C4C63685E9FA7742BD6309F3D72B9BE5E1B84E534596A81DAF1F5483C001FED71A9C7E432A28E52E43D9A0D4D4607B5E3459C7D424925C34311958344EBB86AF4E02675F8701BD55AACE3DDF48980E1977EE44275BEEE341C090820A63FD317595D7A0CCD00609B49E4AAF8C744F2FEA35A806B9B79C519CCDCE59F225FA243FD1AD0C8DBAFA17291CCA0C0C4DAB68060205F72978A5879093A132BE80C061D33348D94A8C79AE86F637701FC44E795B0F15D4610E0B269DEC7B24F717A7284A521759894AE475E7E35472ABC8C82DADE518628FF0DD37B48D94D48C18BF686F509AE5A5C35CC7BC33861673166B743FE10EB6508D36B29D1C798210E3D1840418A67214F9DB6FAF60BB42329226517C202436F735C1D326B49E1A37FF80BA4599A55898A48A2967647EA5E48B88F8034C7BBE9AFC1CD8DCC986495AB7070346E83479BC23925D418A68C7D72B4BCC106FEE74532F70F3CA019C68D419E944C34A69DAC2CDA1155F4FCDEC53CFB3AED1FE07C58FD20D673CE274AC89AEB3D72C36C2D81B42A5F9A61A83FB748749FDA5598C5A519A3026B1475F61CA5DE7A77BE86C2DC6EBAA6F756D5C15AF0F0844C05F233A0468148956C0BA80ACDCB7850FE0CBE75DB675AB712ADBF0934765919A697F4C4345E2AD63B159664FE0DB201683C8DFBBDB1EFE3B580C11809AC815C1863929E60B7A0819D255C8EE7AA582C33E0153EB685E830627829C141DF8B5C599D9DDD25CB3EFAD7C4369A470D3AE3CF4CD0CDCB185A402F7C3E395C476D82313 | ||
436 | 20180104192013 2 6 100 8191 5 F461D7B72CCE12BB489DFEBB0D3252492FB894ADE7EEFCA4FCEAE71B2078652882837E3DDE311BA08D03316DDE3C3C844C34F37E7536601A57C95E1D191CC3B603E15D0E27D99ECC6B7781424F1D40E39FFF25D3F99C207359AD00CB7A68DC0937FDC38F24EF6C095DA60D92F977FBE8674D9885C4F147D6B6114F1CAF9F56327EF2A9CF30C5A26F46E19FAFACF357EC4E9119FB4AC34FF97FE5CDA2D578E00DF294AC88305AA8C9CFA074F35A211DD176486BBFDF04269B47C1EECAA0FAD95F6A5D829770F73DE8AF9D45928E4BF4C71412821419E2AFB2DA29FAA42557CB595B75433FDF015E42853C784AC8A15857D494900319D36B3A6672B885B686D6498D50A7843D381D240A77C053853FBFC670687678EA7AA909F9D82D2363ABD4851E3D20CE16632E0B1522AAB5DB8BB53AA1EE8CDFE86A494D1C2405C5AAE058D1990C91607D8043A74453AFB650110CA784BA307E531B153537B2C0A888D75229CC1D3CD27B0D7A6BEE20E82B7EB912D9F36BC8630990003DE2494DE017CB9D0EDBA7F0785927E79A76DA00707ADA18B9EBC57930E36E76737A7BA31F8F36F11D8CEDDCE28A411EEB34CE5D5235E88F66089F59CD921A84789512947DFDC8247A68353D05BEAFA6E450D7211D8BABE3C4C63685E9FA7742BD6309F3D72B9BE5E1B84E534596A81DAF1F5483C001FED71A9C7E432A28E52E43D9A0D4D4607B5E3459C7D424925C34311958344EBB86AF4E02675F8701BD55AACE3DDF48980E1977EE44275BEEE341C090820A63FD317595D7A0CCD00609B49E4AAF8C744F2FEA35A806B9B79C519CCDCE59F225FA243FD1AD0C8DBAFA17291CCA0C0C4DAB68060205F72978A5879093A132BE80C061D33348D94A8C79AE86F637701FC44E795B0F15D4610E0B269DEC7B24F717A7284A521759894AE475E7E35472ABC8C82DADE518628FF0DD37B48D94D48C18BF686F509AE5A5C35CC7BC33861673166B743FE10EB6508D36B29D1C798210E3D1840418A67214F9DB6FAF60BB42329226517C202436F735C1D326B49E1A37FF80BA4599A55898A48A2967647EA5E48B88F8034C7BBE9AFC1CD8DCC986495AB7070346E83479BC23925D418A68C7D72B4BCC106FEE74532F70F3CA019C68D419E944C34A69DAC2CDA1155F4FCDEC53CFB3AED1FE07C58FD20D673CE274AC89AEB3D72C36C2D81B42A5F9A61A83FB748749FDA5598C5A519A3026B1475F61CA5DE7A77BE86C2DC6EBAA6F756D5C15AF0F0844C05F233A0468148956C0BA80ACDCB7850FE0CBE75DB675AB712ADBF0934765919A697F4C4345E2AD63B159664FE0DB201683C8DFBBDB1EFE3B580C11809AC815C1863929E60B7A0819D255C8EE7AA582C33E0153EB685E830627829C141DF8B5C599D9DDD25CB3EFAD7C4369A470D3AE3CF4CD0CDCB185A402F7C3E395C47AEEE017 | ||
437 | 20180104234458 2 6 100 8191 2 F461D7B72CCE12BB489DFEBB0D3252492FB894ADE7EEFCA4FCEAE71B2078652882837E3DDE311BA08D03316DDE3C3C844C34F37E7536601A57C95E1D191CC3B603E15D0E27D99ECC6B7781424F1D40E39FFF25D3F99C207359AD00CB7A68DC0937FDC38F24EF6C095DA60D92F977FBE8674D9885C4F147D6B6114F1CAF9F56327EF2A9CF30C5A26F46E19FAFACF357EC4E9119FB4AC34FF97FE5CDA2D578E00DF294AC88305AA8C9CFA074F35A211DD176486BBFDF04269B47C1EECAA0FAD95F6A5D829770F73DE8AF9D45928E4BF4C71412821419E2AFB2DA29FAA42557CB595B75433FDF015E42853C784AC8A15857D494900319D36B3A6672B885B686D6498D50A7843D381D240A77C053853FBFC670687678EA7AA909F9D82D2363ABD4851E3D20CE16632E0B1522AAB5DB8BB53AA1EE8CDFE86A494D1C2405C5AAE058D1990C91607D8043A74453AFB650110CA784BA307E531B153537B2C0A888D75229CC1D3CD27B0D7A6BEE20E82B7EB912D9F36BC8630990003DE2494DE017CB9D0EDBA7F0785927E79A76DA00707ADA18B9EBC57930E36E76737A7BA31F8F36F11D8CEDDCE28A411EEB34CE5D5235E88F66089F59CD921A84789512947DFDC8247A68353D05BEAFA6E450D7211D8BABE3C4C63685E9FA7742BD6309F3D72B9BE5E1B84E534596A81DAF1F5483C001FED71A9C7E432A28E52E43D9A0D4D4607B5E3459C7D424925C34311958344EBB86AF4E02675F8701BD55AACE3DDF48980E1977EE44275BEEE341C090820A63FD317595D7A0CCD00609B49E4AAF8C744F2FEA35A806B9B79C519CCDCE59F225FA243FD1AD0C8DBAFA17291CCA0C0C4DAB68060205F72978A5879093A132BE80C061D33348D94A8C79AE86F637701FC44E795B0F15D4610E0B269DEC7B24F717A7284A521759894AE475E7E35472ABC8C82DADE518628FF0DD37B48D94D48C18BF686F509AE5A5C35CC7BC33861673166B743FE10EB6508D36B29D1C798210E3D1840418A67214F9DB6FAF60BB42329226517C202436F735C1D326B49E1A37FF80BA4599A55898A48A2967647EA5E48B88F8034C7BBE9AFC1CD8DCC986495AB7070346E83479BC23925D418A68C7D72B4BCC106FEE74532F70F3CA019C68D419E944C34A69DAC2CDA1155F4FCDEC53CFB3AED1FE07C58FD20D673CE274AC89AEB3D72C36C2D81B42A5F9A61A83FB748749FDA5598C5A519A3026B1475F61CA5DE7A77BE86C2DC6EBAA6F756D5C15AF0F0844C05F233A0468148956C0BA80ACDCB7850FE0CBE75DB675AB712ADBF0934765919A697F4C4345E2AD63B159664FE0DB201683C8DFBBDB1EFE3B580C11809AC815C1863929E60B7A0819D255C8EE7AA582C33E0153EB685E830627829C141DF8B5C599D9DDD25CB3EFAD7C4369A470D3AE3CF4CD0CDCB185A402F7C3E395C47D812CC3 | ||
438 | 20180105001530 2 6 100 8191 5 F461D7B72CCE12BB489DFEBB0D3252492FB894ADE7EEFCA4FCEAE71B2078652882837E3DDE311BA08D03316DDE3C3C844C34F37E7536601A57C95E1D191CC3B603E15D0E27D99ECC6B7781424F1D40E39FFF25D3F99C207359AD00CB7A68DC0937FDC38F24EF6C095DA60D92F977FBE8674D9885C4F147D6B6114F1CAF9F56327EF2A9CF30C5A26F46E19FAFACF357EC4E9119FB4AC34FF97FE5CDA2D578E00DF294AC88305AA8C9CFA074F35A211DD176486BBFDF04269B47C1EECAA0FAD95F6A5D829770F73DE8AF9D45928E4BF4C71412821419E2AFB2DA29FAA42557CB595B75433FDF015E42853C784AC8A15857D494900319D36B3A6672B885B686D6498D50A7843D381D240A77C053853FBFC670687678EA7AA909F9D82D2363ABD4851E3D20CE16632E0B1522AAB5DB8BB53AA1EE8CDFE86A494D1C2405C5AAE058D1990C91607D8043A74453AFB650110CA784BA307E531B153537B2C0A888D75229CC1D3CD27B0D7A6BEE20E82B7EB912D9F36BC8630990003DE2494DE017CB9D0EDBA7F0785927E79A76DA00707ADA18B9EBC57930E36E76737A7BA31F8F36F11D8CEDDCE28A411EEB34CE5D5235E88F66089F59CD921A84789512947DFDC8247A68353D05BEAFA6E450D7211D8BABE3C4C63685E9FA7742BD6309F3D72B9BE5E1B84E534596A81DAF1F5483C001FED71A9C7E432A28E52E43D9A0D4D4607B5E3459C7D424925C34311958344EBB86AF4E02675F8701BD55AACE3DDF48980E1977EE44275BEEE341C090820A63FD317595D7A0CCD00609B49E4AAF8C744F2FEA35A806B9B79C519CCDCE59F225FA243FD1AD0C8DBAFA17291CCA0C0C4DAB68060205F72978A5879093A132BE80C061D33348D94A8C79AE86F637701FC44E795B0F15D4610E0B269DEC7B24F717A7284A521759894AE475E7E35472ABC8C82DADE518628FF0DD37B48D94D48C18BF686F509AE5A5C35CC7BC33861673166B743FE10EB6508D36B29D1C798210E3D1840418A67214F9DB6FAF60BB42329226517C202436F735C1D326B49E1A37FF80BA4599A55898A48A2967647EA5E48B88F8034C7BBE9AFC1CD8DCC986495AB7070346E83479BC23925D418A68C7D72B4BCC106FEE74532F70F3CA019C68D419E944C34A69DAC2CDA1155F4FCDEC53CFB3AED1FE07C58FD20D673CE274AC89AEB3D72C36C2D81B42A5F9A61A83FB748749FDA5598C5A519A3026B1475F61CA5DE7A77BE86C2DC6EBAA6F756D5C15AF0F0844C05F233A0468148956C0BA80ACDCB7850FE0CBE75DB675AB712ADBF0934765919A697F4C4345E2AD63B159664FE0DB201683C8DFBBDB1EFE3B580C11809AC815C1863929E60B7A0819D255C8EE7AA582C33E0153EB685E830627829C141DF8B5C599D9DDD25CB3EFAD7C4369A470D3AE3CF4CD0CDCB185A402F7C3E395C47DC6C2E7 | ||
@@ -71,4 +71,4 @@ STANDARDS | |||
71 | the Secure Shell (SSH) Transport Layer Protocol, RFC 4419, March 2006, | 71 | the Secure Shell (SSH) Transport Layer Protocol, RFC 4419, March 2006, |
72 | 2006. | 72 | 2006. |
73 | 73 | ||
74 | OpenBSD 6.2 September 26, 2012 OpenBSD 6.2 | 74 | OpenBSD 6.4 September 26, 2012 OpenBSD 6.4 |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: monitor.c,v 1.180 2018/03/03 03:15:51 djm Exp $ */ | 1 | /* $OpenBSD: monitor.c,v 1.186 2018/07/20 03:46:34 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright 2002 Niels Provos <provos@citi.umich.edu> | 3 | * Copyright 2002 Niels Provos <provos@citi.umich.edu> |
4 | * Copyright 2002 Markus Friedl <markus@openbsd.org> | 4 | * Copyright 2002 Markus Friedl <markus@openbsd.org> |
@@ -56,10 +56,6 @@ | |||
56 | # endif | 56 | # endif |
57 | #endif | 57 | #endif |
58 | 58 | ||
59 | #ifdef SKEY | ||
60 | #include <skey.h> | ||
61 | #endif | ||
62 | |||
63 | #ifdef WITH_OPENSSL | 59 | #ifdef WITH_OPENSSL |
64 | #include <openssl/dh.h> | 60 | #include <openssl/dh.h> |
65 | #endif | 61 | #endif |
@@ -68,21 +64,14 @@ | |||
68 | #include "atomicio.h" | 64 | #include "atomicio.h" |
69 | #include "xmalloc.h" | 65 | #include "xmalloc.h" |
70 | #include "ssh.h" | 66 | #include "ssh.h" |
71 | #include "key.h" | 67 | #include "sshkey.h" |
72 | #include "buffer.h" | 68 | #include "sshbuf.h" |
73 | #include "hostfile.h" | 69 | #include "hostfile.h" |
74 | #include "auth.h" | 70 | #include "auth.h" |
75 | #include "cipher.h" | 71 | #include "cipher.h" |
76 | #include "kex.h" | 72 | #include "kex.h" |
77 | #include "dh.h" | 73 | #include "dh.h" |
78 | #include "auth-pam.h" | 74 | #include "auth-pam.h" |
79 | #ifdef TARGET_OS_MAC /* XXX Broken krb5 headers on Mac */ | ||
80 | #undef TARGET_OS_MAC | ||
81 | #include "zlib.h" | ||
82 | #define TARGET_OS_MAC 1 | ||
83 | #else | ||
84 | #include "zlib.h" | ||
85 | #endif | ||
86 | #include "packet.h" | 75 | #include "packet.h" |
87 | #include "auth-options.h" | 76 | #include "auth-options.h" |
88 | #include "sshpty.h" | 77 | #include "sshpty.h" |
@@ -113,9 +102,7 @@ static Gssctxt *gsscontext = NULL; | |||
113 | extern ServerOptions options; | 102 | extern ServerOptions options; |
114 | extern u_int utmp_len; | 103 | extern u_int utmp_len; |
115 | extern u_char session_id[]; | 104 | extern u_char session_id[]; |
116 | extern Buffer auth_debug; | 105 | extern struct sshbuf *loginmsg; |
117 | extern int auth_debug_init; | ||
118 | extern Buffer loginmsg; | ||
119 | extern struct sshauthopt *auth_opts; /* XXX move to permanent ssh->authctxt? */ | 106 | extern struct sshauthopt *auth_opts; /* XXX move to permanent ssh->authctxt? */ |
120 | 107 | ||
121 | /* State exported from the child */ | 108 | /* State exported from the child */ |
@@ -123,46 +110,44 @@ static struct sshbuf *child_state; | |||
123 | 110 | ||
124 | /* Functions on the monitor that answer unprivileged requests */ | 111 | /* Functions on the monitor that answer unprivileged requests */ |
125 | 112 | ||
126 | int mm_answer_moduli(int, Buffer *); | 113 | int mm_answer_moduli(int, struct sshbuf *); |
127 | int mm_answer_sign(int, Buffer *); | 114 | int mm_answer_sign(int, struct sshbuf *); |
128 | int mm_answer_pwnamallow(int, Buffer *); | 115 | int mm_answer_pwnamallow(int, struct sshbuf *); |
129 | int mm_answer_auth2_read_banner(int, Buffer *); | 116 | int mm_answer_auth2_read_banner(int, struct sshbuf *); |
130 | int mm_answer_authserv(int, Buffer *); | 117 | int mm_answer_authserv(int, struct sshbuf *); |
131 | int mm_answer_authpassword(int, Buffer *); | 118 | int mm_answer_authpassword(int, struct sshbuf *); |
132 | int mm_answer_bsdauthquery(int, Buffer *); | 119 | int mm_answer_bsdauthquery(int, struct sshbuf *); |
133 | int mm_answer_bsdauthrespond(int, Buffer *); | 120 | int mm_answer_bsdauthrespond(int, struct sshbuf *); |
134 | int mm_answer_skeyquery(int, Buffer *); | 121 | int mm_answer_keyallowed(int, struct sshbuf *); |
135 | int mm_answer_skeyrespond(int, Buffer *); | 122 | int mm_answer_keyverify(int, struct sshbuf *); |
136 | int mm_answer_keyallowed(int, Buffer *); | 123 | int mm_answer_pty(int, struct sshbuf *); |
137 | int mm_answer_keyverify(int, Buffer *); | 124 | int mm_answer_pty_cleanup(int, struct sshbuf *); |
138 | int mm_answer_pty(int, Buffer *); | 125 | int mm_answer_term(int, struct sshbuf *); |
139 | int mm_answer_pty_cleanup(int, Buffer *); | 126 | int mm_answer_rsa_keyallowed(int, struct sshbuf *); |
140 | int mm_answer_term(int, Buffer *); | 127 | int mm_answer_rsa_challenge(int, struct sshbuf *); |
141 | int mm_answer_rsa_keyallowed(int, Buffer *); | 128 | int mm_answer_rsa_response(int, struct sshbuf *); |
142 | int mm_answer_rsa_challenge(int, Buffer *); | 129 | int mm_answer_sesskey(int, struct sshbuf *); |
143 | int mm_answer_rsa_response(int, Buffer *); | 130 | int mm_answer_sessid(int, struct sshbuf *); |
144 | int mm_answer_sesskey(int, Buffer *); | ||
145 | int mm_answer_sessid(int, Buffer *); | ||
146 | 131 | ||
147 | #ifdef USE_PAM | 132 | #ifdef USE_PAM |
148 | int mm_answer_pam_start(int, Buffer *); | 133 | int mm_answer_pam_start(int, struct sshbuf *); |
149 | int mm_answer_pam_account(int, Buffer *); | 134 | int mm_answer_pam_account(int, struct sshbuf *); |
150 | int mm_answer_pam_init_ctx(int, Buffer *); | 135 | int mm_answer_pam_init_ctx(int, struct sshbuf *); |
151 | int mm_answer_pam_query(int, Buffer *); | 136 | int mm_answer_pam_query(int, struct sshbuf *); |
152 | int mm_answer_pam_respond(int, Buffer *); | 137 | int mm_answer_pam_respond(int, struct sshbuf *); |
153 | int mm_answer_pam_free_ctx(int, Buffer *); | 138 | int mm_answer_pam_free_ctx(int, struct sshbuf *); |
154 | #endif | 139 | #endif |
155 | 140 | ||
156 | #ifdef GSSAPI | 141 | #ifdef GSSAPI |
157 | int mm_answer_gss_setup_ctx(int, Buffer *); | 142 | int mm_answer_gss_setup_ctx(int, struct sshbuf *); |
158 | int mm_answer_gss_accept_ctx(int, Buffer *); | 143 | int mm_answer_gss_accept_ctx(int, struct sshbuf *); |
159 | int mm_answer_gss_userok(int, Buffer *); | 144 | int mm_answer_gss_userok(int, struct sshbuf *); |
160 | int mm_answer_gss_checkmic(int, Buffer *); | 145 | int mm_answer_gss_checkmic(int, struct sshbuf *); |
161 | #endif | 146 | #endif |
162 | 147 | ||
163 | #ifdef SSH_AUDIT_EVENTS | 148 | #ifdef SSH_AUDIT_EVENTS |
164 | int mm_answer_audit_event(int, Buffer *); | 149 | int mm_answer_audit_event(int, struct sshbuf *); |
165 | int mm_answer_audit_command(int, Buffer *); | 150 | int mm_answer_audit_command(int, struct sshbuf *); |
166 | #endif | 151 | #endif |
167 | 152 | ||
168 | static int monitor_read_log(struct monitor *); | 153 | static int monitor_read_log(struct monitor *); |
@@ -171,7 +156,7 @@ static Authctxt *authctxt; | |||
171 | 156 | ||
172 | /* local state for key verify */ | 157 | /* local state for key verify */ |
173 | static u_char *key_blob = NULL; | 158 | static u_char *key_blob = NULL; |
174 | static u_int key_bloblen = 0; | 159 | static size_t key_bloblen = 0; |
175 | static int key_blobtype = MM_NOKEY; | 160 | static int key_blobtype = MM_NOKEY; |
176 | static struct sshauthopt *key_opts = NULL; | 161 | static struct sshauthopt *key_opts = NULL; |
177 | static char *hostbased_cuser = NULL; | 162 | static char *hostbased_cuser = NULL; |
@@ -185,7 +170,7 @@ static pid_t monitor_child_pid; | |||
185 | struct mon_table { | 170 | struct mon_table { |
186 | enum monitor_reqtype type; | 171 | enum monitor_reqtype type; |
187 | int flags; | 172 | int flags; |
188 | int (*f)(int, Buffer *); | 173 | int (*f)(int, struct sshbuf *); |
189 | }; | 174 | }; |
190 | 175 | ||
191 | #define MON_ISAUTH 0x0004 /* Required for Authentication */ | 176 | #define MON_ISAUTH 0x0004 /* Required for Authentication */ |
@@ -221,10 +206,6 @@ struct mon_table mon_dispatch_proto20[] = { | |||
221 | {MONITOR_REQ_BSDAUTHQUERY, MON_ISAUTH, mm_answer_bsdauthquery}, | 206 | {MONITOR_REQ_BSDAUTHQUERY, MON_ISAUTH, mm_answer_bsdauthquery}, |
222 | {MONITOR_REQ_BSDAUTHRESPOND, MON_AUTH, mm_answer_bsdauthrespond}, | 207 | {MONITOR_REQ_BSDAUTHRESPOND, MON_AUTH, mm_answer_bsdauthrespond}, |
223 | #endif | 208 | #endif |
224 | #ifdef SKEY | ||
225 | {MONITOR_REQ_SKEYQUERY, MON_ISAUTH, mm_answer_skeyquery}, | ||
226 | {MONITOR_REQ_SKEYRESPOND, MON_AUTH, mm_answer_skeyrespond}, | ||
227 | #endif | ||
228 | {MONITOR_REQ_KEYALLOWED, MON_ISAUTH, mm_answer_keyallowed}, | 209 | {MONITOR_REQ_KEYALLOWED, MON_ISAUTH, mm_answer_keyallowed}, |
229 | {MONITOR_REQ_KEYVERIFY, MON_AUTH, mm_answer_keyverify}, | 210 | {MONITOR_REQ_KEYVERIFY, MON_AUTH, mm_answer_keyverify}, |
230 | #ifdef GSSAPI | 211 | #ifdef GSSAPI |
@@ -300,7 +281,7 @@ monitor_child_preauth(Authctxt *_authctxt, struct monitor *pmonitor) | |||
300 | memset(authctxt, 0, sizeof(*authctxt)); | 281 | memset(authctxt, 0, sizeof(*authctxt)); |
301 | ssh->authctxt = authctxt; | 282 | ssh->authctxt = authctxt; |
302 | 283 | ||
303 | authctxt->loginmsg = &loginmsg; | 284 | authctxt->loginmsg = loginmsg; |
304 | 285 | ||
305 | mon_dispatch = mon_dispatch_proto20; | 286 | mon_dispatch = mon_dispatch_proto20; |
306 | /* Permit requests for moduli and signatures */ | 287 | /* Permit requests for moduli and signatures */ |
@@ -338,13 +319,16 @@ monitor_child_preauth(Authctxt *_authctxt, struct monitor *pmonitor) | |||
338 | #ifdef USE_PAM | 319 | #ifdef USE_PAM |
339 | /* PAM needs to perform account checks after auth */ | 320 | /* PAM needs to perform account checks after auth */ |
340 | if (options.use_pam && authenticated) { | 321 | if (options.use_pam && authenticated) { |
341 | Buffer m; | 322 | struct sshbuf *m; |
342 | 323 | ||
343 | buffer_init(&m); | 324 | if ((m = sshbuf_new()) == NULL) |
325 | fatal("%s: sshbuf_new failed", | ||
326 | __func__); | ||
344 | mm_request_receive_expect(pmonitor->m_sendfd, | 327 | mm_request_receive_expect(pmonitor->m_sendfd, |
345 | MONITOR_REQ_PAM_ACCOUNT, &m); | 328 | MONITOR_REQ_PAM_ACCOUNT, m); |
346 | authenticated = mm_answer_pam_account(pmonitor->m_sendfd, &m); | 329 | authenticated = mm_answer_pam_account( |
347 | buffer_free(&m); | 330 | pmonitor->m_sendfd, m); |
331 | sshbuf_free(m); | ||
348 | } | 332 | } |
349 | #endif | 333 | #endif |
350 | } | 334 | } |
@@ -428,18 +412,21 @@ monitor_child_postauth(struct monitor *pmonitor) | |||
428 | static int | 412 | static int |
429 | monitor_read_log(struct monitor *pmonitor) | 413 | monitor_read_log(struct monitor *pmonitor) |
430 | { | 414 | { |
431 | Buffer logmsg; | 415 | struct sshbuf *logmsg; |
432 | u_int len, level; | 416 | u_int len, level; |
433 | char *msg; | 417 | char *msg; |
418 | u_char *p; | ||
419 | int r; | ||
434 | 420 | ||
435 | buffer_init(&logmsg); | 421 | if ((logmsg = sshbuf_new()) == NULL) |
422 | fatal("%s: sshbuf_new", __func__); | ||
436 | 423 | ||
437 | /* Read length */ | 424 | /* Read length */ |
438 | buffer_append_space(&logmsg, 4); | 425 | if ((r = sshbuf_reserve(logmsg, 4, &p)) != 0) |
439 | if (atomicio(read, pmonitor->m_log_recvfd, | 426 | fatal("%s: reserve: %s", __func__, ssh_err(r)); |
440 | buffer_ptr(&logmsg), buffer_len(&logmsg)) != buffer_len(&logmsg)) { | 427 | if (atomicio(read, pmonitor->m_log_recvfd, p, 4) != 4) { |
441 | if (errno == EPIPE) { | 428 | if (errno == EPIPE) { |
442 | buffer_free(&logmsg); | 429 | sshbuf_free(logmsg); |
443 | debug("%s: child log fd closed", __func__); | 430 | debug("%s: child log fd closed", __func__); |
444 | close(pmonitor->m_log_recvfd); | 431 | close(pmonitor->m_log_recvfd); |
445 | pmonitor->m_log_recvfd = -1; | 432 | pmonitor->m_log_recvfd = -1; |
@@ -447,26 +434,28 @@ monitor_read_log(struct monitor *pmonitor) | |||
447 | } | 434 | } |
448 | fatal("%s: log fd read: %s", __func__, strerror(errno)); | 435 | fatal("%s: log fd read: %s", __func__, strerror(errno)); |
449 | } | 436 | } |
450 | len = buffer_get_int(&logmsg); | 437 | if ((r = sshbuf_get_u32(logmsg, &len)) != 0) |
438 | fatal("%s: get len: %s", __func__, ssh_err(r)); | ||
451 | if (len <= 4 || len > 8192) | 439 | if (len <= 4 || len > 8192) |
452 | fatal("%s: invalid log message length %u", __func__, len); | 440 | fatal("%s: invalid log message length %u", __func__, len); |
453 | 441 | ||
454 | /* Read severity, message */ | 442 | /* Read severity, message */ |
455 | buffer_clear(&logmsg); | 443 | sshbuf_reset(logmsg); |
456 | buffer_append_space(&logmsg, len); | 444 | if ((r = sshbuf_reserve(logmsg, len, &p)) != 0) |
457 | if (atomicio(read, pmonitor->m_log_recvfd, | 445 | fatal("%s: reserve: %s", __func__, ssh_err(r)); |
458 | buffer_ptr(&logmsg), buffer_len(&logmsg)) != buffer_len(&logmsg)) | 446 | if (atomicio(read, pmonitor->m_log_recvfd, p, len) != len) |
459 | fatal("%s: log fd read: %s", __func__, strerror(errno)); | 447 | fatal("%s: log fd read: %s", __func__, strerror(errno)); |
448 | if ((r = sshbuf_get_u32(logmsg, &level)) != 0 || | ||
449 | (r = sshbuf_get_cstring(logmsg, &msg, NULL)) != 0) | ||
450 | fatal("%s: decode: %s", __func__, ssh_err(r)); | ||
460 | 451 | ||
461 | /* Log it */ | 452 | /* Log it */ |
462 | level = buffer_get_int(&logmsg); | ||
463 | msg = buffer_get_string(&logmsg, NULL); | ||
464 | if (log_level_name(level) == NULL) | 453 | if (log_level_name(level) == NULL) |
465 | fatal("%s: invalid log level %u (corrupted message?)", | 454 | fatal("%s: invalid log level %u (corrupted message?)", |
466 | __func__, level); | 455 | __func__, level); |
467 | do_log2(level, "%s [preauth]", msg); | 456 | do_log2(level, "%s [preauth]", msg); |
468 | 457 | ||
469 | buffer_free(&logmsg); | 458 | sshbuf_free(logmsg); |
470 | free(msg); | 459 | free(msg); |
471 | 460 | ||
472 | return 0; | 461 | return 0; |
@@ -476,8 +465,8 @@ int | |||
476 | monitor_read(struct monitor *pmonitor, struct mon_table *ent, | 465 | monitor_read(struct monitor *pmonitor, struct mon_table *ent, |
477 | struct mon_table **pent) | 466 | struct mon_table **pent) |
478 | { | 467 | { |
479 | Buffer m; | 468 | struct sshbuf *m; |
480 | int ret; | 469 | int r, ret; |
481 | u_char type; | 470 | u_char type; |
482 | struct pollfd pfd[2]; | 471 | struct pollfd pfd[2]; |
483 | 472 | ||
@@ -504,10 +493,12 @@ monitor_read(struct monitor *pmonitor, struct mon_table *ent, | |||
504 | break; /* Continues below */ | 493 | break; /* Continues below */ |
505 | } | 494 | } |
506 | 495 | ||
507 | buffer_init(&m); | 496 | if ((m = sshbuf_new()) == NULL) |
497 | fatal("%s: sshbuf_new", __func__); | ||
508 | 498 | ||
509 | mm_request_receive(pmonitor->m_sendfd, &m); | 499 | mm_request_receive(pmonitor->m_sendfd, m); |
510 | type = buffer_get_char(&m); | 500 | if ((r = sshbuf_get_u8(m, &type)) != 0) |
501 | fatal("%s: decode: %s", __func__, ssh_err(r)); | ||
511 | 502 | ||
512 | debug3("%s: checking request %d", __func__, type); | 503 | debug3("%s: checking request %d", __func__, type); |
513 | 504 | ||
@@ -521,8 +512,8 @@ monitor_read(struct monitor *pmonitor, struct mon_table *ent, | |||
521 | if (!(ent->flags & MON_PERMIT)) | 512 | if (!(ent->flags & MON_PERMIT)) |
522 | fatal("%s: unpermitted request %d", __func__, | 513 | fatal("%s: unpermitted request %d", __func__, |
523 | type); | 514 | type); |
524 | ret = (*ent->f)(pmonitor->m_sendfd, &m); | 515 | ret = (*ent->f)(pmonitor->m_sendfd, m); |
525 | buffer_free(&m); | 516 | sshbuf_free(m); |
526 | 517 | ||
527 | /* The child may use this request only once, disable it */ | 518 | /* The child may use this request only once, disable it */ |
528 | if (ent->flags & MON_ONCE) { | 519 | if (ent->flags & MON_ONCE) { |
@@ -572,14 +563,16 @@ monitor_reset_key_state(void) | |||
572 | 563 | ||
573 | #ifdef WITH_OPENSSL | 564 | #ifdef WITH_OPENSSL |
574 | int | 565 | int |
575 | mm_answer_moduli(int sock, Buffer *m) | 566 | mm_answer_moduli(int sock, struct sshbuf *m) |
576 | { | 567 | { |
577 | DH *dh; | 568 | DH *dh; |
578 | int min, want, max; | 569 | int r; |
570 | u_int min, want, max; | ||
579 | 571 | ||
580 | min = buffer_get_int(m); | 572 | if ((r = sshbuf_get_u32(m, &min)) != 0 || |
581 | want = buffer_get_int(m); | 573 | (r = sshbuf_get_u32(m, &want)) != 0 || |
582 | max = buffer_get_int(m); | 574 | (r = sshbuf_get_u32(m, &max)) != 0) |
575 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
583 | 576 | ||
584 | debug3("%s: got parameters: %d %d %d", | 577 | debug3("%s: got parameters: %d %d %d", |
585 | __func__, min, want, max); | 578 | __func__, min, want, max); |
@@ -588,17 +581,19 @@ mm_answer_moduli(int sock, Buffer *m) | |||
588 | fatal("%s: bad parameters: %d %d %d", | 581 | fatal("%s: bad parameters: %d %d %d", |
589 | __func__, min, want, max); | 582 | __func__, min, want, max); |
590 | 583 | ||
591 | buffer_clear(m); | 584 | sshbuf_reset(m); |
592 | 585 | ||
593 | dh = choose_dh(min, want, max); | 586 | dh = choose_dh(min, want, max); |
594 | if (dh == NULL) { | 587 | if (dh == NULL) { |
595 | buffer_put_char(m, 0); | 588 | if ((r = sshbuf_put_u8(m, 0)) != 0) |
589 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
596 | return (0); | 590 | return (0); |
597 | } else { | 591 | } else { |
598 | /* Send first bignum */ | 592 | /* Send first bignum */ |
599 | buffer_put_char(m, 1); | 593 | if ((r = sshbuf_put_u8(m, 1)) != 0 || |
600 | buffer_put_bignum2(m, dh->p); | 594 | (r = sshbuf_put_bignum2(m, dh->p)) != 0 || |
601 | buffer_put_bignum2(m, dh->g); | 595 | (r = sshbuf_put_bignum2(m, dh->g)) != 0) |
596 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
602 | 597 | ||
603 | DH_free(dh); | 598 | DH_free(dh); |
604 | } | 599 | } |
@@ -608,7 +603,7 @@ mm_answer_moduli(int sock, Buffer *m) | |||
608 | #endif | 603 | #endif |
609 | 604 | ||
610 | int | 605 | int |
611 | mm_answer_sign(int sock, Buffer *m) | 606 | mm_answer_sign(int sock, struct sshbuf *m) |
612 | { | 607 | { |
613 | struct ssh *ssh = active_state; /* XXX */ | 608 | struct ssh *ssh = active_state; /* XXX */ |
614 | extern int auth_sock; /* XXX move to state struct? */ | 609 | extern int auth_sock; /* XXX move to state struct? */ |
@@ -618,14 +613,15 @@ mm_answer_sign(int sock, Buffer *m) | |||
618 | char *alg = NULL; | 613 | char *alg = NULL; |
619 | size_t datlen, siglen, alglen; | 614 | size_t datlen, siglen, alglen; |
620 | int r, is_proof = 0; | 615 | int r, is_proof = 0; |
621 | u_int keyid; | 616 | u_int keyid, compat; |
622 | const char proof_req[] = "hostkeys-prove-00@openssh.com"; | 617 | const char proof_req[] = "hostkeys-prove-00@openssh.com"; |
623 | 618 | ||
624 | debug3("%s", __func__); | 619 | debug3("%s", __func__); |
625 | 620 | ||
626 | if ((r = sshbuf_get_u32(m, &keyid)) != 0 || | 621 | if ((r = sshbuf_get_u32(m, &keyid)) != 0 || |
627 | (r = sshbuf_get_string(m, &p, &datlen)) != 0 || | 622 | (r = sshbuf_get_string(m, &p, &datlen)) != 0 || |
628 | (r = sshbuf_get_cstring(m, &alg, &alglen)) != 0) | 623 | (r = sshbuf_get_cstring(m, &alg, &alglen)) != 0 || |
624 | (r = sshbuf_get_u32(m, &compat)) != 0) | ||
629 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | 625 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
630 | if (keyid > INT_MAX) | 626 | if (keyid > INT_MAX) |
631 | fatal("%s: invalid key ID", __func__); | 627 | fatal("%s: invalid key ID", __func__); |
@@ -675,13 +671,13 @@ mm_answer_sign(int sock, Buffer *m) | |||
675 | 671 | ||
676 | if ((key = get_hostkey_by_index(keyid)) != NULL) { | 672 | if ((key = get_hostkey_by_index(keyid)) != NULL) { |
677 | if ((r = sshkey_sign(key, &signature, &siglen, p, datlen, alg, | 673 | if ((r = sshkey_sign(key, &signature, &siglen, p, datlen, alg, |
678 | datafellows)) != 0) | 674 | compat)) != 0) |
679 | fatal("%s: sshkey_sign failed: %s", | 675 | fatal("%s: sshkey_sign failed: %s", |
680 | __func__, ssh_err(r)); | 676 | __func__, ssh_err(r)); |
681 | } else if ((key = get_hostkey_public_by_index(keyid, ssh)) != NULL && | 677 | } else if ((key = get_hostkey_public_by_index(keyid, ssh)) != NULL && |
682 | auth_sock > 0) { | 678 | auth_sock > 0) { |
683 | if ((r = ssh_agent_sign(auth_sock, key, &signature, &siglen, | 679 | if ((r = ssh_agent_sign(auth_sock, key, &signature, &siglen, |
684 | p, datlen, alg, datafellows)) != 0) { | 680 | p, datlen, alg, compat)) != 0) { |
685 | fatal("%s: ssh_agent_sign failed: %s", | 681 | fatal("%s: ssh_agent_sign failed: %s", |
686 | __func__, ssh_err(r)); | 682 | __func__, ssh_err(r)); |
687 | } | 683 | } |
@@ -710,12 +706,12 @@ mm_answer_sign(int sock, Buffer *m) | |||
710 | /* Retrieves the password entry and also checks if the user is permitted */ | 706 | /* Retrieves the password entry and also checks if the user is permitted */ |
711 | 707 | ||
712 | int | 708 | int |
713 | mm_answer_pwnamallow(int sock, Buffer *m) | 709 | mm_answer_pwnamallow(int sock, struct sshbuf *m) |
714 | { | 710 | { |
715 | struct ssh *ssh = active_state; /* XXX */ | 711 | struct ssh *ssh = active_state; /* XXX */ |
716 | char *username; | 712 | char *username; |
717 | struct passwd *pwent; | 713 | struct passwd *pwent; |
718 | int allowed = 0; | 714 | int r, allowed = 0; |
719 | u_int i; | 715 | u_int i; |
720 | 716 | ||
721 | debug3("%s", __func__); | 717 | debug3("%s", __func__); |
@@ -723,7 +719,8 @@ mm_answer_pwnamallow(int sock, Buffer *m) | |||
723 | if (authctxt->attempt++ != 0) | 719 | if (authctxt->attempt++ != 0) |
724 | fatal("%s: multiple attempts for getpwnam", __func__); | 720 | fatal("%s: multiple attempts for getpwnam", __func__); |
725 | 721 | ||
726 | username = buffer_get_string(m, NULL); | 722 | if ((r = sshbuf_get_cstring(m, &username, NULL)) != 0) |
723 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
727 | 724 | ||
728 | pwent = getpwnamallow(username); | 725 | pwent = getpwnamallow(username); |
729 | 726 | ||
@@ -731,10 +728,11 @@ mm_answer_pwnamallow(int sock, Buffer *m) | |||
731 | setproctitle("%s [priv]", pwent ? username : "unknown"); | 728 | setproctitle("%s [priv]", pwent ? username : "unknown"); |
732 | free(username); | 729 | free(username); |
733 | 730 | ||
734 | buffer_clear(m); | 731 | sshbuf_reset(m); |
735 | 732 | ||
736 | if (pwent == NULL) { | 733 | if (pwent == NULL) { |
737 | buffer_put_char(m, 0); | 734 | if ((r = sshbuf_put_u8(m, 0)) != 0) |
735 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
738 | authctxt->pw = fakepw(); | 736 | authctxt->pw = fakepw(); |
739 | goto out; | 737 | goto out; |
740 | } | 738 | } |
@@ -743,31 +741,40 @@ mm_answer_pwnamallow(int sock, Buffer *m) | |||
743 | authctxt->pw = pwent; | 741 | authctxt->pw = pwent; |
744 | authctxt->valid = 1; | 742 | authctxt->valid = 1; |
745 | 743 | ||
746 | buffer_put_char(m, 1); | 744 | /* XXX don't sent pwent to unpriv; send fake class/dir/shell too */ |
747 | buffer_put_string(m, pwent, sizeof(struct passwd)); | 745 | if ((r = sshbuf_put_u8(m, 1)) != 0 || |
748 | buffer_put_cstring(m, pwent->pw_name); | 746 | (r = sshbuf_put_string(m, pwent, sizeof(*pwent))) != 0 || |
749 | buffer_put_cstring(m, "*"); | 747 | (r = sshbuf_put_cstring(m, pwent->pw_name)) != 0 || |
748 | (r = sshbuf_put_cstring(m, "*")) != 0 || | ||
750 | #ifdef HAVE_STRUCT_PASSWD_PW_GECOS | 749 | #ifdef HAVE_STRUCT_PASSWD_PW_GECOS |
751 | buffer_put_cstring(m, pwent->pw_gecos); | 750 | (r = sshbuf_put_cstring(m, pwent->pw_gecos)) != 0 || |
752 | #endif | 751 | #endif |
753 | #ifdef HAVE_STRUCT_PASSWD_PW_CLASS | 752 | #ifdef HAVE_STRUCT_PASSWD_PW_CLASS |
754 | buffer_put_cstring(m, pwent->pw_class); | 753 | (r = sshbuf_put_cstring(m, pwent->pw_class)) != 0 || |
755 | #endif | 754 | #endif |
756 | buffer_put_cstring(m, pwent->pw_dir); | 755 | (r = sshbuf_put_cstring(m, pwent->pw_dir)) != 0 || |
757 | buffer_put_cstring(m, pwent->pw_shell); | 756 | (r = sshbuf_put_cstring(m, pwent->pw_shell)) != 0) |
757 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
758 | 758 | ||
759 | out: | 759 | out: |
760 | ssh_packet_set_log_preamble(ssh, "%suser %s", | 760 | ssh_packet_set_log_preamble(ssh, "%suser %s", |
761 | authctxt->valid ? "authenticating" : "invalid ", authctxt->user); | 761 | authctxt->valid ? "authenticating" : "invalid ", authctxt->user); |
762 | buffer_put_string(m, &options, sizeof(options)); | 762 | if ((r = sshbuf_put_string(m, &options, sizeof(options))) != 0) |
763 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
763 | 764 | ||
764 | #define M_CP_STROPT(x) do { \ | 765 | #define M_CP_STROPT(x) do { \ |
765 | if (options.x != NULL) \ | 766 | if (options.x != NULL) { \ |
766 | buffer_put_cstring(m, options.x); \ | 767 | if ((r = sshbuf_put_cstring(m, options.x)) != 0) \ |
768 | fatal("%s: buffer error: %s", \ | ||
769 | __func__, ssh_err(r)); \ | ||
770 | } \ | ||
767 | } while (0) | 771 | } while (0) |
768 | #define M_CP_STRARRAYOPT(x, nx) do { \ | 772 | #define M_CP_STRARRAYOPT(x, nx) do { \ |
769 | for (i = 0; i < options.nx; i++) \ | 773 | for (i = 0; i < options.nx; i++) { \ |
770 | buffer_put_cstring(m, options.x[i]); \ | 774 | if ((r = sshbuf_put_cstring(m, options.x[i])) != 0) \ |
775 | fatal("%s: buffer error: %s", \ | ||
776 | __func__, ssh_err(r)); \ | ||
777 | } \ | ||
771 | } while (0) | 778 | } while (0) |
772 | /* See comment in servconf.h */ | 779 | /* See comment in servconf.h */ |
773 | COPY_MATCH_STRING_OPTS(); | 780 | COPY_MATCH_STRING_OPTS(); |
@@ -799,13 +806,15 @@ mm_answer_pwnamallow(int sock, Buffer *m) | |||
799 | return (0); | 806 | return (0); |
800 | } | 807 | } |
801 | 808 | ||
802 | int mm_answer_auth2_read_banner(int sock, Buffer *m) | 809 | int mm_answer_auth2_read_banner(int sock, struct sshbuf *m) |
803 | { | 810 | { |
804 | char *banner; | 811 | char *banner; |
812 | int r; | ||
805 | 813 | ||
806 | buffer_clear(m); | 814 | sshbuf_reset(m); |
807 | banner = auth2_read_banner(); | 815 | banner = auth2_read_banner(); |
808 | buffer_put_cstring(m, banner != NULL ? banner : ""); | 816 | if ((r = sshbuf_put_cstring(m, banner != NULL ? banner : "")) != 0) |
817 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
809 | mm_request_send(sock, MONITOR_ANS_AUTH2_READ_BANNER, m); | 818 | mm_request_send(sock, MONITOR_ANS_AUTH2_READ_BANNER, m); |
810 | free(banner); | 819 | free(banner); |
811 | 820 | ||
@@ -813,12 +822,15 @@ int mm_answer_auth2_read_banner(int sock, Buffer *m) | |||
813 | } | 822 | } |
814 | 823 | ||
815 | int | 824 | int |
816 | mm_answer_authserv(int sock, Buffer *m) | 825 | mm_answer_authserv(int sock, struct sshbuf *m) |
817 | { | 826 | { |
827 | int r; | ||
828 | |||
818 | monitor_permit_authentications(1); | 829 | monitor_permit_authentications(1); |
819 | 830 | ||
820 | authctxt->service = buffer_get_string(m, NULL); | 831 | if ((r = sshbuf_get_cstring(m, &authctxt->service, NULL)) != 0 || |
821 | authctxt->style = buffer_get_string(m, NULL); | 832 | (r = sshbuf_get_cstring(m, &authctxt->style, NULL)) != 0) |
833 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
822 | debug3("%s: service=%s, style=%s", | 834 | debug3("%s: service=%s, style=%s", |
823 | __func__, authctxt->service, authctxt->style); | 835 | __func__, authctxt->service, authctxt->style); |
824 | 836 | ||
@@ -831,27 +843,30 @@ mm_answer_authserv(int sock, Buffer *m) | |||
831 | } | 843 | } |
832 | 844 | ||
833 | int | 845 | int |
834 | mm_answer_authpassword(int sock, Buffer *m) | 846 | mm_answer_authpassword(int sock, struct sshbuf *m) |
835 | { | 847 | { |
836 | struct ssh *ssh = active_state; /* XXX */ | 848 | struct ssh *ssh = active_state; /* XXX */ |
837 | static int call_count; | 849 | static int call_count; |
838 | char *passwd; | 850 | char *passwd; |
839 | int authenticated; | 851 | int r, authenticated; |
840 | u_int plen; | 852 | size_t plen; |
841 | 853 | ||
842 | if (!options.password_authentication) | 854 | if (!options.password_authentication) |
843 | fatal("%s: password authentication not enabled", __func__); | 855 | fatal("%s: password authentication not enabled", __func__); |
844 | passwd = buffer_get_string(m, &plen); | 856 | if ((r = sshbuf_get_cstring(m, &passwd, &plen)) != 0) |
857 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
845 | /* Only authenticate if the context is valid */ | 858 | /* Only authenticate if the context is valid */ |
846 | authenticated = options.password_authentication && | 859 | authenticated = options.password_authentication && |
847 | auth_password(ssh, passwd); | 860 | auth_password(ssh, passwd); |
848 | explicit_bzero(passwd, strlen(passwd)); | 861 | explicit_bzero(passwd, plen); |
849 | free(passwd); | 862 | free(passwd); |
850 | 863 | ||
851 | buffer_clear(m); | 864 | sshbuf_reset(m); |
852 | buffer_put_int(m, authenticated); | 865 | if ((r = sshbuf_put_u32(m, authenticated)) != 0) |
866 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
853 | #ifdef USE_PAM | 867 | #ifdef USE_PAM |
854 | buffer_put_int(m, sshpam_get_maxtries_reached()); | 868 | if ((r = sshbuf_put_u32(m, sshpam_get_maxtries_reached())) != 0) |
869 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
855 | #endif | 870 | #endif |
856 | 871 | ||
857 | debug3("%s: sending result %d", __func__, authenticated); | 872 | debug3("%s: sending result %d", __func__, authenticated); |
@@ -869,23 +884,25 @@ mm_answer_authpassword(int sock, Buffer *m) | |||
869 | 884 | ||
870 | #ifdef BSD_AUTH | 885 | #ifdef BSD_AUTH |
871 | int | 886 | int |
872 | mm_answer_bsdauthquery(int sock, Buffer *m) | 887 | mm_answer_bsdauthquery(int sock, struct sshbuf *m) |
873 | { | 888 | { |
874 | char *name, *infotxt; | 889 | char *name, *infotxt; |
875 | u_int numprompts; | 890 | u_int numprompts, *echo_on, success; |
876 | u_int *echo_on; | ||
877 | char **prompts; | 891 | char **prompts; |
878 | u_int success; | 892 | int r; |
879 | 893 | ||
880 | if (!options.kbd_interactive_authentication) | 894 | if (!options.kbd_interactive_authentication) |
881 | fatal("%s: kbd-int authentication not enabled", __func__); | 895 | fatal("%s: kbd-int authentication not enabled", __func__); |
882 | success = bsdauth_query(authctxt, &name, &infotxt, &numprompts, | 896 | success = bsdauth_query(authctxt, &name, &infotxt, &numprompts, |
883 | &prompts, &echo_on) < 0 ? 0 : 1; | 897 | &prompts, &echo_on) < 0 ? 0 : 1; |
884 | 898 | ||
885 | buffer_clear(m); | 899 | sshbuf_reset(m); |
886 | buffer_put_int(m, success); | 900 | if ((r = sshbuf_put_u32(m, success)) != 0) |
887 | if (success) | 901 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
888 | buffer_put_cstring(m, prompts[0]); | 902 | if (success) { |
903 | if ((r = sshbuf_put_cstring(m, prompts[0])) != 0) | ||
904 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
905 | } | ||
889 | 906 | ||
890 | debug3("%s: sending challenge success: %u", __func__, success); | 907 | debug3("%s: sending challenge success: %u", __func__, success); |
891 | mm_request_send(sock, MONITOR_ANS_BSDAUTHQUERY, m); | 908 | mm_request_send(sock, MONITOR_ANS_BSDAUTHQUERY, m); |
@@ -901,25 +918,27 @@ mm_answer_bsdauthquery(int sock, Buffer *m) | |||
901 | } | 918 | } |
902 | 919 | ||
903 | int | 920 | int |
904 | mm_answer_bsdauthrespond(int sock, Buffer *m) | 921 | mm_answer_bsdauthrespond(int sock, struct sshbuf *m) |
905 | { | 922 | { |
906 | char *response; | 923 | char *response; |
907 | int authok; | 924 | int r, authok; |
908 | 925 | ||
909 | if (!options.kbd_interactive_authentication) | 926 | if (!options.kbd_interactive_authentication) |
910 | fatal("%s: kbd-int authentication not enabled", __func__); | 927 | fatal("%s: kbd-int authentication not enabled", __func__); |
911 | if (authctxt->as == NULL) | 928 | if (authctxt->as == NULL) |
912 | fatal("%s: no bsd auth session", __func__); | 929 | fatal("%s: no bsd auth session", __func__); |
913 | 930 | ||
914 | response = buffer_get_string(m, NULL); | 931 | if ((r = sshbuf_get_cstring(m, &response, NULL)) != 0) |
932 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
915 | authok = options.challenge_response_authentication && | 933 | authok = options.challenge_response_authentication && |
916 | auth_userresponse(authctxt->as, response, 0); | 934 | auth_userresponse(authctxt->as, response, 0); |
917 | authctxt->as = NULL; | 935 | authctxt->as = NULL; |
918 | debug3("%s: <%s> = <%d>", __func__, response, authok); | 936 | debug3("%s: <%s> = <%d>", __func__, response, authok); |
919 | free(response); | 937 | free(response); |
920 | 938 | ||
921 | buffer_clear(m); | 939 | sshbuf_reset(m); |
922 | buffer_put_int(m, authok); | 940 | if ((r = sshbuf_put_u32(m, authok)) != 0) |
941 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
923 | 942 | ||
924 | debug3("%s: sending authenticated: %d", __func__, authok); | 943 | debug3("%s: sending authenticated: %d", __func__, authok); |
925 | mm_request_send(sock, MONITOR_ANS_BSDAUTHRESPOND, m); | 944 | mm_request_send(sock, MONITOR_ANS_BSDAUTHRESPOND, m); |
@@ -931,59 +950,9 @@ mm_answer_bsdauthrespond(int sock, Buffer *m) | |||
931 | } | 950 | } |
932 | #endif | 951 | #endif |
933 | 952 | ||
934 | #ifdef SKEY | ||
935 | int | ||
936 | mm_answer_skeyquery(int sock, Buffer *m) | ||
937 | { | ||
938 | struct skey skey; | ||
939 | char challenge[1024]; | ||
940 | u_int success; | ||
941 | |||
942 | success = _compat_skeychallenge(&skey, authctxt->user, challenge, | ||
943 | sizeof(challenge)) < 0 ? 0 : 1; | ||
944 | |||
945 | buffer_clear(m); | ||
946 | buffer_put_int(m, success); | ||
947 | if (success) | ||
948 | buffer_put_cstring(m, challenge); | ||
949 | |||
950 | debug3("%s: sending challenge success: %u", __func__, success); | ||
951 | mm_request_send(sock, MONITOR_ANS_SKEYQUERY, m); | ||
952 | |||
953 | return (0); | ||
954 | } | ||
955 | |||
956 | int | ||
957 | mm_answer_skeyrespond(int sock, Buffer *m) | ||
958 | { | ||
959 | char *response; | ||
960 | int authok; | ||
961 | |||
962 | response = buffer_get_string(m, NULL); | ||
963 | |||
964 | authok = (options.challenge_response_authentication && | ||
965 | authctxt->valid && | ||
966 | skey_haskey(authctxt->pw->pw_name) == 0 && | ||
967 | skey_passcheck(authctxt->pw->pw_name, response) != -1); | ||
968 | |||
969 | free(response); | ||
970 | |||
971 | buffer_clear(m); | ||
972 | buffer_put_int(m, authok); | ||
973 | |||
974 | debug3("%s: sending authenticated: %d", __func__, authok); | ||
975 | mm_request_send(sock, MONITOR_ANS_SKEYRESPOND, m); | ||
976 | |||
977 | auth_method = "keyboard-interactive"; | ||
978 | auth_submethod = "skey"; | ||
979 | |||
980 | return (authok != 0); | ||
981 | } | ||
982 | #endif | ||
983 | |||
984 | #ifdef USE_PAM | 953 | #ifdef USE_PAM |
985 | int | 954 | int |
986 | mm_answer_pam_start(int sock, Buffer *m) | 955 | mm_answer_pam_start(int sock, struct sshbuf *m) |
987 | { | 956 | { |
988 | if (!options.use_pam) | 957 | if (!options.use_pam) |
989 | fatal("UsePAM not set, but ended up in %s anyway", __func__); | 958 | fatal("UsePAM not set, but ended up in %s anyway", __func__); |
@@ -998,17 +967,19 @@ mm_answer_pam_start(int sock, Buffer *m) | |||
998 | } | 967 | } |
999 | 968 | ||
1000 | int | 969 | int |
1001 | mm_answer_pam_account(int sock, Buffer *m) | 970 | mm_answer_pam_account(int sock, struct sshbuf *m) |
1002 | { | 971 | { |
1003 | u_int ret; | 972 | u_int ret; |
973 | int r; | ||
1004 | 974 | ||
1005 | if (!options.use_pam) | 975 | if (!options.use_pam) |
1006 | fatal("%s: PAM not enabled", __func__); | 976 | fatal("%s: PAM not enabled", __func__); |
1007 | 977 | ||
1008 | ret = do_pam_account(); | 978 | ret = do_pam_account(); |
1009 | 979 | ||
1010 | buffer_put_int(m, ret); | 980 | if ((r = sshbuf_put_u32(m, ret)) != 0 || |
1011 | buffer_put_string(m, buffer_ptr(&loginmsg), buffer_len(&loginmsg)); | 981 | (r = sshbuf_put_stringb(m, loginmsg)) != 0) |
982 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
1012 | 983 | ||
1013 | mm_request_send(sock, MONITOR_ANS_PAM_ACCOUNT, m); | 984 | mm_request_send(sock, MONITOR_ANS_PAM_ACCOUNT, m); |
1014 | 985 | ||
@@ -1019,8 +990,11 @@ static void *sshpam_ctxt, *sshpam_authok; | |||
1019 | extern KbdintDevice sshpam_device; | 990 | extern KbdintDevice sshpam_device; |
1020 | 991 | ||
1021 | int | 992 | int |
1022 | mm_answer_pam_init_ctx(int sock, Buffer *m) | 993 | mm_answer_pam_init_ctx(int sock, struct sshbuf *m) |
1023 | { | 994 | { |
995 | u_int ok = 0; | ||
996 | int r; | ||
997 | |||
1024 | debug3("%s", __func__); | 998 | debug3("%s", __func__); |
1025 | if (!options.kbd_interactive_authentication) | 999 | if (!options.kbd_interactive_authentication) |
1026 | fatal("%s: kbd-int authentication not enabled", __func__); | 1000 | fatal("%s: kbd-int authentication not enabled", __func__); |
@@ -1028,24 +1002,24 @@ mm_answer_pam_init_ctx(int sock, Buffer *m) | |||
1028 | fatal("%s: already called", __func__); | 1002 | fatal("%s: already called", __func__); |
1029 | sshpam_ctxt = (sshpam_device.init_ctx)(authctxt); | 1003 | sshpam_ctxt = (sshpam_device.init_ctx)(authctxt); |
1030 | sshpam_authok = NULL; | 1004 | sshpam_authok = NULL; |
1031 | buffer_clear(m); | 1005 | sshbuf_reset(m); |
1032 | if (sshpam_ctxt != NULL) { | 1006 | if (sshpam_ctxt != NULL) { |
1033 | monitor_permit(mon_dispatch, MONITOR_REQ_PAM_FREE_CTX, 1); | 1007 | monitor_permit(mon_dispatch, MONITOR_REQ_PAM_FREE_CTX, 1); |
1034 | monitor_permit(mon_dispatch, MONITOR_REQ_PAM_QUERY, 1); | 1008 | monitor_permit(mon_dispatch, MONITOR_REQ_PAM_QUERY, 1); |
1035 | buffer_put_int(m, 1); | 1009 | ok = 1; |
1036 | } else { | ||
1037 | buffer_put_int(m, 0); | ||
1038 | } | 1010 | } |
1011 | if ((r = sshbuf_put_u32(m, ok)) != 0) | ||
1012 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
1039 | mm_request_send(sock, MONITOR_ANS_PAM_INIT_CTX, m); | 1013 | mm_request_send(sock, MONITOR_ANS_PAM_INIT_CTX, m); |
1040 | return (0); | 1014 | return (0); |
1041 | } | 1015 | } |
1042 | 1016 | ||
1043 | int | 1017 | int |
1044 | mm_answer_pam_query(int sock, Buffer *m) | 1018 | mm_answer_pam_query(int sock, struct sshbuf *m) |
1045 | { | 1019 | { |
1046 | char *name = NULL, *info = NULL, **prompts = NULL; | 1020 | char *name = NULL, *info = NULL, **prompts = NULL; |
1047 | u_int i, num = 0, *echo_on = 0; | 1021 | u_int i, num = 0, *echo_on = 0; |
1048 | int ret; | 1022 | int r, ret; |
1049 | 1023 | ||
1050 | debug3("%s", __func__); | 1024 | debug3("%s", __func__); |
1051 | sshpam_authok = NULL; | 1025 | sshpam_authok = NULL; |
@@ -1058,18 +1032,20 @@ mm_answer_pam_query(int sock, Buffer *m) | |||
1058 | if (num > 1 || name == NULL || info == NULL) | 1032 | if (num > 1 || name == NULL || info == NULL) |
1059 | fatal("sshpam_device.query failed"); | 1033 | fatal("sshpam_device.query failed"); |
1060 | monitor_permit(mon_dispatch, MONITOR_REQ_PAM_RESPOND, 1); | 1034 | monitor_permit(mon_dispatch, MONITOR_REQ_PAM_RESPOND, 1); |
1061 | buffer_clear(m); | 1035 | sshbuf_reset(m); |
1062 | buffer_put_int(m, ret); | 1036 | if ((r = sshbuf_put_u32(m, ret)) != 0 || |
1063 | buffer_put_cstring(m, name); | 1037 | (r = sshbuf_put_cstring(m, name)) != 0 || |
1038 | (r = sshbuf_put_cstring(m, info)) != 0 || | ||
1039 | (r = sshbuf_put_u32(m, sshpam_get_maxtries_reached())) != 0 || | ||
1040 | (r = sshbuf_put_u32(m, num)) != 0) | ||
1041 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
1064 | free(name); | 1042 | free(name); |
1065 | buffer_put_cstring(m, info); | ||
1066 | free(info); | 1043 | free(info); |
1067 | buffer_put_int(m, sshpam_get_maxtries_reached()); | ||
1068 | buffer_put_int(m, num); | ||
1069 | for (i = 0; i < num; ++i) { | 1044 | for (i = 0; i < num; ++i) { |
1070 | buffer_put_cstring(m, prompts[i]); | 1045 | if ((r = sshbuf_put_cstring(m, prompts[i])) != 0 || |
1046 | (r = sshbuf_put_u32(m, echo_on[i])) != 0) | ||
1047 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
1071 | free(prompts[i]); | 1048 | free(prompts[i]); |
1072 | buffer_put_int(m, echo_on[i]); | ||
1073 | } | 1049 | } |
1074 | free(prompts); | 1050 | free(prompts); |
1075 | free(echo_on); | 1051 | free(echo_on); |
@@ -1080,21 +1056,25 @@ mm_answer_pam_query(int sock, Buffer *m) | |||
1080 | } | 1056 | } |
1081 | 1057 | ||
1082 | int | 1058 | int |
1083 | mm_answer_pam_respond(int sock, Buffer *m) | 1059 | mm_answer_pam_respond(int sock, struct sshbuf *m) |
1084 | { | 1060 | { |
1085 | char **resp; | 1061 | char **resp; |
1086 | u_int i, num; | 1062 | u_int i, num; |
1087 | int ret; | 1063 | int r, ret; |
1088 | 1064 | ||
1089 | debug3("%s", __func__); | 1065 | debug3("%s", __func__); |
1090 | if (sshpam_ctxt == NULL) | 1066 | if (sshpam_ctxt == NULL) |
1091 | fatal("%s: no context", __func__); | 1067 | fatal("%s: no context", __func__); |
1092 | sshpam_authok = NULL; | 1068 | sshpam_authok = NULL; |
1093 | num = buffer_get_int(m); | 1069 | if ((r = sshbuf_get_u32(m, &num)) != 0) |
1070 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
1094 | if (num > 0) { | 1071 | if (num > 0) { |
1095 | resp = xcalloc(num, sizeof(char *)); | 1072 | resp = xcalloc(num, sizeof(char *)); |
1096 | for (i = 0; i < num; ++i) | 1073 | for (i = 0; i < num; ++i) { |
1097 | resp[i] = buffer_get_string(m, NULL); | 1074 | if ((r = sshbuf_get_cstring(m, &(resp[i]), NULL)) != 0) |
1075 | fatal("%s: buffer error: %s", | ||
1076 | __func__, ssh_err(r)); | ||
1077 | } | ||
1098 | ret = (sshpam_device.respond)(sshpam_ctxt, num, resp); | 1078 | ret = (sshpam_device.respond)(sshpam_ctxt, num, resp); |
1099 | for (i = 0; i < num; ++i) | 1079 | for (i = 0; i < num; ++i) |
1100 | free(resp[i]); | 1080 | free(resp[i]); |
@@ -1102,8 +1082,9 @@ mm_answer_pam_respond(int sock, Buffer *m) | |||
1102 | } else { | 1082 | } else { |
1103 | ret = (sshpam_device.respond)(sshpam_ctxt, num, NULL); | 1083 | ret = (sshpam_device.respond)(sshpam_ctxt, num, NULL); |
1104 | } | 1084 | } |
1105 | buffer_clear(m); | 1085 | sshbuf_reset(m); |
1106 | buffer_put_int(m, ret); | 1086 | if ((r = sshbuf_put_u32(m, ret)) != 0) |
1087 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
1107 | mm_request_send(sock, MONITOR_ANS_PAM_RESPOND, m); | 1088 | mm_request_send(sock, MONITOR_ANS_PAM_RESPOND, m); |
1108 | auth_method = "keyboard-interactive"; | 1089 | auth_method = "keyboard-interactive"; |
1109 | auth_submethod = "pam"; | 1090 | auth_submethod = "pam"; |
@@ -1113,7 +1094,7 @@ mm_answer_pam_respond(int sock, Buffer *m) | |||
1113 | } | 1094 | } |
1114 | 1095 | ||
1115 | int | 1096 | int |
1116 | mm_answer_pam_free_ctx(int sock, Buffer *m) | 1097 | mm_answer_pam_free_ctx(int sock, struct sshbuf *m) |
1117 | { | 1098 | { |
1118 | int r = sshpam_authok != NULL && sshpam_authok == sshpam_ctxt; | 1099 | int r = sshpam_authok != NULL && sshpam_authok == sshpam_ctxt; |
1119 | 1100 | ||
@@ -1122,7 +1103,7 @@ mm_answer_pam_free_ctx(int sock, Buffer *m) | |||
1122 | fatal("%s: no context", __func__); | 1103 | fatal("%s: no context", __func__); |
1123 | (sshpam_device.free_ctx)(sshpam_ctxt); | 1104 | (sshpam_device.free_ctx)(sshpam_ctxt); |
1124 | sshpam_ctxt = sshpam_authok = NULL; | 1105 | sshpam_ctxt = sshpam_authok = NULL; |
1125 | buffer_clear(m); | 1106 | sshbuf_reset(m); |
1126 | mm_request_send(sock, MONITOR_ANS_PAM_FREE_CTX, m); | 1107 | mm_request_send(sock, MONITOR_ANS_PAM_FREE_CTX, m); |
1127 | /* Allow another attempt */ | 1108 | /* Allow another attempt */ |
1128 | monitor_permit(mon_dispatch, MONITOR_REQ_PAM_INIT_CTX, 1); | 1109 | monitor_permit(mon_dispatch, MONITOR_REQ_PAM_INIT_CTX, 1); |
@@ -1133,31 +1114,29 @@ mm_answer_pam_free_ctx(int sock, Buffer *m) | |||
1133 | #endif | 1114 | #endif |
1134 | 1115 | ||
1135 | int | 1116 | int |
1136 | mm_answer_keyallowed(int sock, Buffer *m) | 1117 | mm_answer_keyallowed(int sock, struct sshbuf *m) |
1137 | { | 1118 | { |
1138 | struct ssh *ssh = active_state; /* XXX */ | 1119 | struct ssh *ssh = active_state; /* XXX */ |
1139 | struct sshkey *key; | 1120 | struct sshkey *key = NULL; |
1140 | char *cuser, *chost; | 1121 | char *cuser, *chost; |
1141 | u_char *blob; | 1122 | u_int pubkey_auth_attempt; |
1142 | u_int bloblen, pubkey_auth_attempt; | ||
1143 | enum mm_keytype type = 0; | 1123 | enum mm_keytype type = 0; |
1144 | int r, allowed = 0; | 1124 | int r, allowed = 0; |
1145 | struct sshauthopt *opts = NULL; | 1125 | struct sshauthopt *opts = NULL; |
1146 | 1126 | ||
1147 | debug3("%s entering", __func__); | 1127 | debug3("%s entering", __func__); |
1148 | type = buffer_get_int(m); | 1128 | if ((r = sshbuf_get_u32(m, &type)) != 0 || |
1149 | cuser = buffer_get_string(m, NULL); | 1129 | (r = sshbuf_get_cstring(m, &cuser, NULL)) != 0 || |
1150 | chost = buffer_get_string(m, NULL); | 1130 | (r = sshbuf_get_cstring(m, &chost, NULL)) != 0 || |
1151 | blob = buffer_get_string(m, &bloblen); | 1131 | (r = sshkey_froms(m, &key)) != 0 || |
1152 | pubkey_auth_attempt = buffer_get_int(m); | 1132 | (r = sshbuf_get_u32(m, &pubkey_auth_attempt)) != 0) |
1153 | 1133 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | |
1154 | key = key_from_blob(blob, bloblen); | ||
1155 | 1134 | ||
1156 | debug3("%s: key_from_blob: %p", __func__, key); | 1135 | debug3("%s: key_from_blob: %p", __func__, key); |
1157 | 1136 | ||
1158 | if (key != NULL && authctxt->valid) { | 1137 | if (key != NULL && authctxt->valid) { |
1159 | /* These should not make it past the privsep child */ | 1138 | /* These should not make it past the privsep child */ |
1160 | if (key_type_plain(key->type) == KEY_RSA && | 1139 | if (sshkey_type_plain(key->type) == KEY_RSA && |
1161 | (datafellows & SSH_BUG_RSASIGMD5) != 0) | 1140 | (datafellows & SSH_BUG_RSASIGMD5) != 0) |
1162 | fatal("%s: passed a SSH_BUG_RSASIGMD5 key", __func__); | 1141 | fatal("%s: passed a SSH_BUG_RSASIGMD5 key", __func__); |
1163 | 1142 | ||
@@ -1201,15 +1180,14 @@ mm_answer_keyallowed(int sock, Buffer *m) | |||
1201 | allowed ? "allowed" : "not allowed"); | 1180 | allowed ? "allowed" : "not allowed"); |
1202 | 1181 | ||
1203 | auth2_record_key(authctxt, 0, key); | 1182 | auth2_record_key(authctxt, 0, key); |
1204 | sshkey_free(key); | ||
1205 | 1183 | ||
1206 | /* clear temporarily storage (used by verify) */ | 1184 | /* clear temporarily storage (used by verify) */ |
1207 | monitor_reset_key_state(); | 1185 | monitor_reset_key_state(); |
1208 | 1186 | ||
1209 | if (allowed) { | 1187 | if (allowed) { |
1210 | /* Save temporarily for comparison in verify */ | 1188 | /* Save temporarily for comparison in verify */ |
1211 | key_blob = blob; | 1189 | if ((r = sshkey_to_blob(key, &key_blob, &key_bloblen)) != 0) |
1212 | key_bloblen = bloblen; | 1190 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
1213 | key_blobtype = type; | 1191 | key_blobtype = type; |
1214 | key_opts = opts; | 1192 | key_opts = opts; |
1215 | hostbased_cuser = cuser; | 1193 | hostbased_cuser = cuser; |
@@ -1217,13 +1195,14 @@ mm_answer_keyallowed(int sock, Buffer *m) | |||
1217 | } else { | 1195 | } else { |
1218 | /* Log failed attempt */ | 1196 | /* Log failed attempt */ |
1219 | auth_log(authctxt, 0, 0, auth_method, NULL); | 1197 | auth_log(authctxt, 0, 0, auth_method, NULL); |
1220 | free(blob); | ||
1221 | free(cuser); | 1198 | free(cuser); |
1222 | free(chost); | 1199 | free(chost); |
1223 | } | 1200 | } |
1201 | sshkey_free(key); | ||
1224 | 1202 | ||
1225 | buffer_clear(m); | 1203 | sshbuf_reset(m); |
1226 | buffer_put_int(m, allowed); | 1204 | if ((r = sshbuf_put_u32(m, allowed)) != 0) |
1205 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
1227 | if (opts != NULL && (r = sshauthopt_serialise(opts, m, 1)) != 0) | 1206 | if (opts != NULL && (r = sshauthopt_serialise(opts, m, 1)) != 0) |
1228 | fatal("%s: sshauthopt_serialise: %s", __func__, ssh_err(r)); | 1207 | fatal("%s: sshauthopt_serialise: %s", __func__, ssh_err(r)); |
1229 | mm_request_send(sock, MONITOR_ANS_KEYALLOWED, m); | 1208 | mm_request_send(sock, MONITOR_ANS_KEYALLOWED, m); |
@@ -1237,34 +1216,41 @@ mm_answer_keyallowed(int sock, Buffer *m) | |||
1237 | static int | 1216 | static int |
1238 | monitor_valid_userblob(u_char *data, u_int datalen) | 1217 | monitor_valid_userblob(u_char *data, u_int datalen) |
1239 | { | 1218 | { |
1240 | Buffer b; | 1219 | struct sshbuf *b; |
1241 | u_char *p; | 1220 | const u_char *p; |
1242 | char *userstyle, *cp; | 1221 | char *userstyle, *cp; |
1243 | u_int len; | 1222 | size_t len; |
1244 | int fail = 0; | 1223 | u_char type; |
1224 | int r, fail = 0; | ||
1245 | 1225 | ||
1246 | buffer_init(&b); | 1226 | if ((b = sshbuf_new()) == NULL) |
1247 | buffer_append(&b, data, datalen); | 1227 | fatal("%s: sshbuf_new", __func__); |
1228 | if ((r = sshbuf_put(b, data, datalen)) != 0) | ||
1229 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
1248 | 1230 | ||
1249 | if (datafellows & SSH_OLD_SESSIONID) { | 1231 | if (datafellows & SSH_OLD_SESSIONID) { |
1250 | p = buffer_ptr(&b); | 1232 | p = sshbuf_ptr(b); |
1251 | len = buffer_len(&b); | 1233 | len = sshbuf_len(b); |
1252 | if ((session_id2 == NULL) || | 1234 | if ((session_id2 == NULL) || |
1253 | (len < session_id2_len) || | 1235 | (len < session_id2_len) || |
1254 | (timingsafe_bcmp(p, session_id2, session_id2_len) != 0)) | 1236 | (timingsafe_bcmp(p, session_id2, session_id2_len) != 0)) |
1255 | fail++; | 1237 | fail++; |
1256 | buffer_consume(&b, session_id2_len); | 1238 | if ((r = sshbuf_consume(b, session_id2_len)) != 0) |
1239 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
1257 | } else { | 1240 | } else { |
1258 | p = buffer_get_string(&b, &len); | 1241 | if ((r = sshbuf_get_string_direct(b, &p, &len)) != 0) |
1242 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
1259 | if ((session_id2 == NULL) || | 1243 | if ((session_id2 == NULL) || |
1260 | (len != session_id2_len) || | 1244 | (len != session_id2_len) || |
1261 | (timingsafe_bcmp(p, session_id2, session_id2_len) != 0)) | 1245 | (timingsafe_bcmp(p, session_id2, session_id2_len) != 0)) |
1262 | fail++; | 1246 | fail++; |
1263 | free(p); | ||
1264 | } | 1247 | } |
1265 | if (buffer_get_char(&b) != SSH2_MSG_USERAUTH_REQUEST) | 1248 | if ((r = sshbuf_get_u8(b, &type)) != 0) |
1249 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
1250 | if (type != SSH2_MSG_USERAUTH_REQUEST) | ||
1266 | fail++; | 1251 | fail++; |
1267 | cp = buffer_get_cstring(&b, NULL); | 1252 | if ((r = sshbuf_get_cstring(b, &cp, NULL)) != 0) |
1253 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
1268 | xasprintf(&userstyle, "%s%s%s", authctxt->user, | 1254 | xasprintf(&userstyle, "%s%s%s", authctxt->user, |
1269 | authctxt->style ? ":" : "", | 1255 | authctxt->style ? ":" : "", |
1270 | authctxt->style ? authctxt->style : ""); | 1256 | authctxt->style ? authctxt->style : ""); |
@@ -1275,18 +1261,22 @@ monitor_valid_userblob(u_char *data, u_int datalen) | |||
1275 | } | 1261 | } |
1276 | free(userstyle); | 1262 | free(userstyle); |
1277 | free(cp); | 1263 | free(cp); |
1278 | buffer_skip_string(&b); | 1264 | if ((r = sshbuf_skip_string(b)) != 0 || /* service */ |
1279 | cp = buffer_get_cstring(&b, NULL); | 1265 | (r = sshbuf_get_cstring(b, &cp, NULL)) != 0) |
1266 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
1280 | if (strcmp("publickey", cp) != 0) | 1267 | if (strcmp("publickey", cp) != 0) |
1281 | fail++; | 1268 | fail++; |
1282 | free(cp); | 1269 | free(cp); |
1283 | if (!buffer_get_char(&b)) | 1270 | if ((r = sshbuf_get_u8(b, &type)) != 0) |
1271 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
1272 | if (type == 0) | ||
1284 | fail++; | 1273 | fail++; |
1285 | buffer_skip_string(&b); | 1274 | if ((r = sshbuf_skip_string(b)) != 0 || /* pkalg */ |
1286 | buffer_skip_string(&b); | 1275 | (r = sshbuf_skip_string(b)) != 0) /* pkblob */ |
1287 | if (buffer_len(&b) != 0) | 1276 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
1277 | if (sshbuf_len(b) != 0) | ||
1288 | fail++; | 1278 | fail++; |
1289 | buffer_free(&b); | 1279 | sshbuf_free(b); |
1290 | return (fail == 0); | 1280 | return (fail == 0); |
1291 | } | 1281 | } |
1292 | 1282 | ||
@@ -1294,59 +1284,69 @@ static int | |||
1294 | monitor_valid_hostbasedblob(u_char *data, u_int datalen, char *cuser, | 1284 | monitor_valid_hostbasedblob(u_char *data, u_int datalen, char *cuser, |
1295 | char *chost) | 1285 | char *chost) |
1296 | { | 1286 | { |
1297 | Buffer b; | 1287 | struct sshbuf *b; |
1298 | char *p, *userstyle; | 1288 | const u_char *p; |
1299 | u_int len; | 1289 | char *cp, *userstyle; |
1300 | int fail = 0; | 1290 | size_t len; |
1291 | int r, fail = 0; | ||
1292 | u_char type; | ||
1301 | 1293 | ||
1302 | buffer_init(&b); | 1294 | if ((b = sshbuf_new()) == NULL) |
1303 | buffer_append(&b, data, datalen); | 1295 | fatal("%s: sshbuf_new", __func__); |
1296 | if ((r = sshbuf_put(b, data, datalen)) != 0 || | ||
1297 | (r = sshbuf_get_string_direct(b, &p, &len)) != 0) | ||
1298 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
1304 | 1299 | ||
1305 | p = buffer_get_string(&b, &len); | ||
1306 | if ((session_id2 == NULL) || | 1300 | if ((session_id2 == NULL) || |
1307 | (len != session_id2_len) || | 1301 | (len != session_id2_len) || |
1308 | (timingsafe_bcmp(p, session_id2, session_id2_len) != 0)) | 1302 | (timingsafe_bcmp(p, session_id2, session_id2_len) != 0)) |
1309 | fail++; | 1303 | fail++; |
1310 | free(p); | ||
1311 | 1304 | ||
1312 | if (buffer_get_char(&b) != SSH2_MSG_USERAUTH_REQUEST) | 1305 | if ((r = sshbuf_get_u8(b, &type)) != 0) |
1306 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
1307 | if (type != SSH2_MSG_USERAUTH_REQUEST) | ||
1313 | fail++; | 1308 | fail++; |
1314 | p = buffer_get_cstring(&b, NULL); | 1309 | if ((r = sshbuf_get_cstring(b, &cp, NULL)) != 0) |
1310 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
1315 | xasprintf(&userstyle, "%s%s%s", authctxt->user, | 1311 | xasprintf(&userstyle, "%s%s%s", authctxt->user, |
1316 | authctxt->style ? ":" : "", | 1312 | authctxt->style ? ":" : "", |
1317 | authctxt->style ? authctxt->style : ""); | 1313 | authctxt->style ? authctxt->style : ""); |
1318 | if (strcmp(userstyle, p) != 0) { | 1314 | if (strcmp(userstyle, cp) != 0) { |
1319 | logit("wrong user name passed to monitor: expected %s != %.100s", | 1315 | logit("wrong user name passed to monitor: " |
1320 | userstyle, p); | 1316 | "expected %s != %.100s", userstyle, cp); |
1321 | fail++; | 1317 | fail++; |
1322 | } | 1318 | } |
1323 | free(userstyle); | 1319 | free(userstyle); |
1324 | free(p); | 1320 | free(cp); |
1325 | buffer_skip_string(&b); /* service */ | 1321 | if ((r = sshbuf_skip_string(b)) != 0 || /* service */ |
1326 | p = buffer_get_cstring(&b, NULL); | 1322 | (r = sshbuf_get_cstring(b, &cp, NULL)) != 0) |
1327 | if (strcmp(p, "hostbased") != 0) | 1323 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
1324 | if (strcmp(cp, "hostbased") != 0) | ||
1328 | fail++; | 1325 | fail++; |
1329 | free(p); | 1326 | free(cp); |
1330 | buffer_skip_string(&b); /* pkalg */ | 1327 | if ((r = sshbuf_skip_string(b)) != 0 || /* pkalg */ |
1331 | buffer_skip_string(&b); /* pkblob */ | 1328 | (r = sshbuf_skip_string(b)) != 0) /* pkblob */ |
1329 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
1332 | 1330 | ||
1333 | /* verify client host, strip trailing dot if necessary */ | 1331 | /* verify client host, strip trailing dot if necessary */ |
1334 | p = buffer_get_string(&b, NULL); | 1332 | if ((r = sshbuf_get_cstring(b, &cp, NULL)) != 0) |
1335 | if (((len = strlen(p)) > 0) && p[len - 1] == '.') | 1333 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
1336 | p[len - 1] = '\0'; | 1334 | if (((len = strlen(cp)) > 0) && cp[len - 1] == '.') |
1337 | if (strcmp(p, chost) != 0) | 1335 | cp[len - 1] = '\0'; |
1336 | if (strcmp(cp, chost) != 0) | ||
1338 | fail++; | 1337 | fail++; |
1339 | free(p); | 1338 | free(cp); |
1340 | 1339 | ||
1341 | /* verify client user */ | 1340 | /* verify client user */ |
1342 | p = buffer_get_string(&b, NULL); | 1341 | if ((r = sshbuf_get_cstring(b, &cp, NULL)) != 0) |
1343 | if (strcmp(p, cuser) != 0) | 1342 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
1343 | if (strcmp(cp, cuser) != 0) | ||
1344 | fail++; | 1344 | fail++; |
1345 | free(p); | 1345 | free(cp); |
1346 | 1346 | ||
1347 | if (buffer_len(&b) != 0) | 1347 | if (sshbuf_len(b) != 0) |
1348 | fail++; | 1348 | fail++; |
1349 | buffer_free(&b); | 1349 | sshbuf_free(b); |
1350 | return (fail == 0); | 1350 | return (fail == 0); |
1351 | } | 1351 | } |
1352 | 1352 | ||
@@ -1462,15 +1462,15 @@ mm_session_close(Session *s) | |||
1462 | } | 1462 | } |
1463 | 1463 | ||
1464 | int | 1464 | int |
1465 | mm_answer_pty(int sock, Buffer *m) | 1465 | mm_answer_pty(int sock, struct sshbuf *m) |
1466 | { | 1466 | { |
1467 | extern struct monitor *pmonitor; | 1467 | extern struct monitor *pmonitor; |
1468 | Session *s; | 1468 | Session *s; |
1469 | int res, fd0; | 1469 | int r, res, fd0; |
1470 | 1470 | ||
1471 | debug3("%s entering", __func__); | 1471 | debug3("%s entering", __func__); |
1472 | 1472 | ||
1473 | buffer_clear(m); | 1473 | sshbuf_reset(m); |
1474 | s = session_new(); | 1474 | s = session_new(); |
1475 | if (s == NULL) | 1475 | if (s == NULL) |
1476 | goto error; | 1476 | goto error; |
@@ -1482,8 +1482,9 @@ mm_answer_pty(int sock, Buffer *m) | |||
1482 | goto error; | 1482 | goto error; |
1483 | pty_setowner(authctxt->pw, s->tty); | 1483 | pty_setowner(authctxt->pw, s->tty); |
1484 | 1484 | ||
1485 | buffer_put_int(m, 1); | 1485 | if ((r = sshbuf_put_u32(m, 1)) != 0 || |
1486 | buffer_put_cstring(m, s->tty); | 1486 | (r = sshbuf_put_cstring(m, s->tty)) != 0) |
1487 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
1487 | 1488 | ||
1488 | /* We need to trick ttyslot */ | 1489 | /* We need to trick ttyslot */ |
1489 | if (dup2(s->ttyfd, 0) == -1) | 1490 | if (dup2(s->ttyfd, 0) == -1) |
@@ -1495,8 +1496,9 @@ mm_answer_pty(int sock, Buffer *m) | |||
1495 | close(0); | 1496 | close(0); |
1496 | 1497 | ||
1497 | /* send messages generated by record_login */ | 1498 | /* send messages generated by record_login */ |
1498 | buffer_put_string(m, buffer_ptr(&loginmsg), buffer_len(&loginmsg)); | 1499 | if ((r = sshbuf_put_stringb(m, loginmsg)) != 0) |
1499 | buffer_clear(&loginmsg); | 1500 | fatal("%s: put login message: %s", __func__, ssh_err(r)); |
1501 | sshbuf_reset(loginmsg); | ||
1500 | 1502 | ||
1501 | mm_request_send(sock, MONITOR_ANS_PTY, m); | 1503 | mm_request_send(sock, MONITOR_ANS_PTY, m); |
1502 | 1504 | ||
@@ -1523,29 +1525,32 @@ mm_answer_pty(int sock, Buffer *m) | |||
1523 | error: | 1525 | error: |
1524 | if (s != NULL) | 1526 | if (s != NULL) |
1525 | mm_session_close(s); | 1527 | mm_session_close(s); |
1526 | buffer_put_int(m, 0); | 1528 | if ((r = sshbuf_put_u32(m, 0)) != 0) |
1529 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
1527 | mm_request_send(sock, MONITOR_ANS_PTY, m); | 1530 | mm_request_send(sock, MONITOR_ANS_PTY, m); |
1528 | return (0); | 1531 | return (0); |
1529 | } | 1532 | } |
1530 | 1533 | ||
1531 | int | 1534 | int |
1532 | mm_answer_pty_cleanup(int sock, Buffer *m) | 1535 | mm_answer_pty_cleanup(int sock, struct sshbuf *m) |
1533 | { | 1536 | { |
1534 | Session *s; | 1537 | Session *s; |
1535 | char *tty; | 1538 | char *tty; |
1539 | int r; | ||
1536 | 1540 | ||
1537 | debug3("%s entering", __func__); | 1541 | debug3("%s entering", __func__); |
1538 | 1542 | ||
1539 | tty = buffer_get_string(m, NULL); | 1543 | if ((r = sshbuf_get_cstring(m, &tty, NULL)) != 0) |
1544 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
1540 | if ((s = session_by_tty(tty)) != NULL) | 1545 | if ((s = session_by_tty(tty)) != NULL) |
1541 | mm_session_close(s); | 1546 | mm_session_close(s); |
1542 | buffer_clear(m); | 1547 | sshbuf_reset(m); |
1543 | free(tty); | 1548 | free(tty); |
1544 | return (0); | 1549 | return (0); |
1545 | } | 1550 | } |
1546 | 1551 | ||
1547 | int | 1552 | int |
1548 | mm_answer_term(int sock, Buffer *req) | 1553 | mm_answer_term(int sock, struct sshbuf *req) |
1549 | { | 1554 | { |
1550 | struct ssh *ssh = active_state; /* XXX */ | 1555 | struct ssh *ssh = active_state; /* XXX */ |
1551 | extern struct monitor *pmonitor; | 1556 | extern struct monitor *pmonitor; |
@@ -1574,14 +1579,18 @@ mm_answer_term(int sock, Buffer *req) | |||
1574 | #ifdef SSH_AUDIT_EVENTS | 1579 | #ifdef SSH_AUDIT_EVENTS |
1575 | /* Report that an audit event occurred */ | 1580 | /* Report that an audit event occurred */ |
1576 | int | 1581 | int |
1577 | mm_answer_audit_event(int socket, Buffer *m) | 1582 | mm_answer_audit_event(int socket, struct sshbuf *m) |
1578 | { | 1583 | { |
1584 | u_int n; | ||
1579 | ssh_audit_event_t event; | 1585 | ssh_audit_event_t event; |
1586 | int r; | ||
1580 | 1587 | ||
1581 | debug3("%s entering", __func__); | 1588 | debug3("%s entering", __func__); |
1582 | 1589 | ||
1583 | event = buffer_get_int(m); | 1590 | if ((r = sshbuf_get_u32(m, &n)) != 0) |
1584 | switch(event) { | 1591 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
1592 | event = (ssh_audit_event_t)n; | ||
1593 | switch (event) { | ||
1585 | case SSH_AUTH_FAIL_PUBKEY: | 1594 | case SSH_AUTH_FAIL_PUBKEY: |
1586 | case SSH_AUTH_FAIL_HOSTBASED: | 1595 | case SSH_AUTH_FAIL_HOSTBASED: |
1587 | case SSH_AUTH_FAIL_GSSAPI: | 1596 | case SSH_AUTH_FAIL_GSSAPI: |
@@ -1599,13 +1608,14 @@ mm_answer_audit_event(int socket, Buffer *m) | |||
1599 | } | 1608 | } |
1600 | 1609 | ||
1601 | int | 1610 | int |
1602 | mm_answer_audit_command(int socket, Buffer *m) | 1611 | mm_answer_audit_command(int socket, struct sshbuf *m) |
1603 | { | 1612 | { |
1604 | u_int len; | ||
1605 | char *cmd; | 1613 | char *cmd; |
1614 | int r; | ||
1606 | 1615 | ||
1607 | debug3("%s entering", __func__); | 1616 | debug3("%s entering", __func__); |
1608 | cmd = buffer_get_string(m, &len); | 1617 | if ((r = sshbuf_get_cstring(m, &cmd, NULL)) != 0) |
1618 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
1609 | /* sanity check command, if so how? */ | 1619 | /* sanity check command, if so how? */ |
1610 | audit_run_command(cmd); | 1620 | audit_run_command(cmd); |
1611 | free(cmd); | 1621 | free(cmd); |
@@ -1734,24 +1744,29 @@ monitor_reinit(struct monitor *mon) | |||
1734 | 1744 | ||
1735 | #ifdef GSSAPI | 1745 | #ifdef GSSAPI |
1736 | int | 1746 | int |
1737 | mm_answer_gss_setup_ctx(int sock, Buffer *m) | 1747 | mm_answer_gss_setup_ctx(int sock, struct sshbuf *m) |
1738 | { | 1748 | { |
1739 | gss_OID_desc goid; | 1749 | gss_OID_desc goid; |
1740 | OM_uint32 major; | 1750 | OM_uint32 major; |
1741 | u_int len; | 1751 | size_t len; |
1752 | u_char *p; | ||
1753 | int r; | ||
1742 | 1754 | ||
1743 | if (!options.gss_authentication) | 1755 | if (!options.gss_authentication) |
1744 | fatal("%s: GSSAPI authentication not enabled", __func__); | 1756 | fatal("%s: GSSAPI authentication not enabled", __func__); |
1745 | 1757 | ||
1746 | goid.elements = buffer_get_string(m, &len); | 1758 | if ((r = sshbuf_get_string(m, &p, &len)) != 0) |
1759 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
1760 | goid.elements = p; | ||
1747 | goid.length = len; | 1761 | goid.length = len; |
1748 | 1762 | ||
1749 | major = ssh_gssapi_server_ctx(&gsscontext, &goid); | 1763 | major = ssh_gssapi_server_ctx(&gsscontext, &goid); |
1750 | 1764 | ||
1751 | free(goid.elements); | 1765 | free(goid.elements); |
1752 | 1766 | ||
1753 | buffer_clear(m); | 1767 | sshbuf_reset(m); |
1754 | buffer_put_int(m, major); | 1768 | if ((r = sshbuf_put_u32(m, major)) != 0) |
1769 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
1755 | 1770 | ||
1756 | mm_request_send(sock, MONITOR_ANS_GSSSETUP, m); | 1771 | mm_request_send(sock, MONITOR_ANS_GSSSETUP, m); |
1757 | 1772 | ||
@@ -1762,26 +1777,27 @@ mm_answer_gss_setup_ctx(int sock, Buffer *m) | |||
1762 | } | 1777 | } |
1763 | 1778 | ||
1764 | int | 1779 | int |
1765 | mm_answer_gss_accept_ctx(int sock, Buffer *m) | 1780 | mm_answer_gss_accept_ctx(int sock, struct sshbuf *m) |
1766 | { | 1781 | { |
1767 | gss_buffer_desc in; | 1782 | gss_buffer_desc in; |
1768 | gss_buffer_desc out = GSS_C_EMPTY_BUFFER; | 1783 | gss_buffer_desc out = GSS_C_EMPTY_BUFFER; |
1769 | OM_uint32 major, minor; | 1784 | OM_uint32 major, minor; |
1770 | OM_uint32 flags = 0; /* GSI needs this */ | 1785 | OM_uint32 flags = 0; /* GSI needs this */ |
1771 | u_int len; | 1786 | int r; |
1772 | 1787 | ||
1773 | if (!options.gss_authentication) | 1788 | if (!options.gss_authentication) |
1774 | fatal("%s: GSSAPI authentication not enabled", __func__); | 1789 | fatal("%s: GSSAPI authentication not enabled", __func__); |
1775 | 1790 | ||
1776 | in.value = buffer_get_string(m, &len); | 1791 | if ((r = ssh_gssapi_get_buffer_desc(m, &in)) != 0) |
1777 | in.length = len; | 1792 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
1778 | major = ssh_gssapi_accept_ctx(gsscontext, &in, &out, &flags); | 1793 | major = ssh_gssapi_accept_ctx(gsscontext, &in, &out, &flags); |
1779 | free(in.value); | 1794 | free(in.value); |
1780 | 1795 | ||
1781 | buffer_clear(m); | 1796 | sshbuf_reset(m); |
1782 | buffer_put_int(m, major); | 1797 | if ((r = sshbuf_put_u32(m, major)) != 0 || |
1783 | buffer_put_string(m, out.value, out.length); | 1798 | (r = sshbuf_put_string(m, out.value, out.length)) != 0 || |
1784 | buffer_put_int(m, flags); | 1799 | (r = sshbuf_put_u32(m, flags)) != 0) |
1800 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
1785 | mm_request_send(sock, MONITOR_ANS_GSSSTEP, m); | 1801 | mm_request_send(sock, MONITOR_ANS_GSSSTEP, m); |
1786 | 1802 | ||
1787 | gss_release_buffer(&minor, &out); | 1803 | gss_release_buffer(&minor, &out); |
@@ -1795,27 +1811,27 @@ mm_answer_gss_accept_ctx(int sock, Buffer *m) | |||
1795 | } | 1811 | } |
1796 | 1812 | ||
1797 | int | 1813 | int |
1798 | mm_answer_gss_checkmic(int sock, Buffer *m) | 1814 | mm_answer_gss_checkmic(int sock, struct sshbuf *m) |
1799 | { | 1815 | { |
1800 | gss_buffer_desc gssbuf, mic; | 1816 | gss_buffer_desc gssbuf, mic; |
1801 | OM_uint32 ret; | 1817 | OM_uint32 ret; |
1802 | u_int len; | 1818 | int r; |
1803 | 1819 | ||
1804 | if (!options.gss_authentication) | 1820 | if (!options.gss_authentication) |
1805 | fatal("%s: GSSAPI authentication not enabled", __func__); | 1821 | fatal("%s: GSSAPI authentication not enabled", __func__); |
1806 | 1822 | ||
1807 | gssbuf.value = buffer_get_string(m, &len); | 1823 | if ((r = ssh_gssapi_get_buffer_desc(m, &gssbuf)) != 0 || |
1808 | gssbuf.length = len; | 1824 | (r = ssh_gssapi_get_buffer_desc(m, &mic)) != 0) |
1809 | mic.value = buffer_get_string(m, &len); | 1825 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
1810 | mic.length = len; | ||
1811 | 1826 | ||
1812 | ret = ssh_gssapi_checkmic(gsscontext, &gssbuf, &mic); | 1827 | ret = ssh_gssapi_checkmic(gsscontext, &gssbuf, &mic); |
1813 | 1828 | ||
1814 | free(gssbuf.value); | 1829 | free(gssbuf.value); |
1815 | free(mic.value); | 1830 | free(mic.value); |
1816 | 1831 | ||
1817 | buffer_clear(m); | 1832 | sshbuf_reset(m); |
1818 | buffer_put_int(m, ret); | 1833 | if ((r = sshbuf_put_u32(m, ret)) != 0) |
1834 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
1819 | 1835 | ||
1820 | mm_request_send(sock, MONITOR_ANS_GSSCHECKMIC, m); | 1836 | mm_request_send(sock, MONITOR_ANS_GSSCHECKMIC, m); |
1821 | 1837 | ||
@@ -1826,9 +1842,9 @@ mm_answer_gss_checkmic(int sock, Buffer *m) | |||
1826 | } | 1842 | } |
1827 | 1843 | ||
1828 | int | 1844 | int |
1829 | mm_answer_gss_userok(int sock, Buffer *m) | 1845 | mm_answer_gss_userok(int sock, struct sshbuf *m) |
1830 | { | 1846 | { |
1831 | int authenticated; | 1847 | int r, authenticated; |
1832 | const char *displayname; | 1848 | const char *displayname; |
1833 | 1849 | ||
1834 | if (!options.gss_authentication) | 1850 | if (!options.gss_authentication) |
@@ -1836,8 +1852,9 @@ mm_answer_gss_userok(int sock, Buffer *m) | |||
1836 | 1852 | ||
1837 | authenticated = authctxt->valid && ssh_gssapi_userok(authctxt->user); | 1853 | authenticated = authctxt->valid && ssh_gssapi_userok(authctxt->user); |
1838 | 1854 | ||
1839 | buffer_clear(m); | 1855 | sshbuf_reset(m); |
1840 | buffer_put_int(m, authenticated); | 1856 | if ((r = sshbuf_put_u32(m, authenticated)) != 0) |
1857 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
1841 | 1858 | ||
1842 | debug3("%s: sending result %d", __func__, authenticated); | 1859 | debug3("%s: sending result %d", __func__, authenticated); |
1843 | mm_request_send(sock, MONITOR_ANS_GSSUSEROK, m); | 1860 | mm_request_send(sock, MONITOR_ANS_GSSUSEROK, m); |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: monitor.h,v 1.20 2016/09/28 16:33:07 djm Exp $ */ | 1 | /* $OpenBSD: monitor.h,v 1.21 2018/07/09 21:53:45 markus Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Copyright 2002 Niels Provos <provos@citi.umich.edu> | 4 | * Copyright 2002 Niels Provos <provos@citi.umich.edu> |
@@ -39,8 +39,6 @@ enum monitor_reqtype { | |||
39 | MONITOR_REQ_AUTHPASSWORD = 12, MONITOR_ANS_AUTHPASSWORD = 13, | 39 | MONITOR_REQ_AUTHPASSWORD = 12, MONITOR_ANS_AUTHPASSWORD = 13, |
40 | MONITOR_REQ_BSDAUTHQUERY = 14, MONITOR_ANS_BSDAUTHQUERY = 15, | 40 | MONITOR_REQ_BSDAUTHQUERY = 14, MONITOR_ANS_BSDAUTHQUERY = 15, |
41 | MONITOR_REQ_BSDAUTHRESPOND = 16, MONITOR_ANS_BSDAUTHRESPOND = 17, | 41 | MONITOR_REQ_BSDAUTHRESPOND = 16, MONITOR_ANS_BSDAUTHRESPOND = 17, |
42 | MONITOR_REQ_SKEYQUERY = 18, MONITOR_ANS_SKEYQUERY = 19, | ||
43 | MONITOR_REQ_SKEYRESPOND = 20, MONITOR_ANS_SKEYRESPOND = 21, | ||
44 | MONITOR_REQ_KEYALLOWED = 22, MONITOR_ANS_KEYALLOWED = 23, | 42 | MONITOR_REQ_KEYALLOWED = 22, MONITOR_ANS_KEYALLOWED = 23, |
45 | MONITOR_REQ_KEYVERIFY = 24, MONITOR_ANS_KEYVERIFY = 25, | 43 | MONITOR_REQ_KEYVERIFY = 24, MONITOR_ANS_KEYVERIFY = 25, |
46 | MONITOR_REQ_KEYEXPORT = 26, | 44 | MONITOR_REQ_KEYEXPORT = 26, |
@@ -87,8 +85,8 @@ struct mon_table; | |||
87 | int monitor_read(struct monitor*, struct mon_table *, struct mon_table **); | 85 | int monitor_read(struct monitor*, struct mon_table *, struct mon_table **); |
88 | 86 | ||
89 | /* Prototypes for request sending and receiving */ | 87 | /* Prototypes for request sending and receiving */ |
90 | void mm_request_send(int, enum monitor_reqtype, Buffer *); | 88 | void mm_request_send(int, enum monitor_reqtype, struct sshbuf *); |
91 | void mm_request_receive(int, Buffer *); | 89 | void mm_request_receive(int, struct sshbuf *); |
92 | void mm_request_receive_expect(int, enum monitor_reqtype, Buffer *); | 90 | void mm_request_receive_expect(int, enum monitor_reqtype, struct sshbuf *); |
93 | 91 | ||
94 | #endif /* _MONITOR_H_ */ | 92 | #endif /* _MONITOR_H_ */ |
diff --git a/monitor_wrap.c b/monitor_wrap.c index 9666bda4b..732fb3476 100644 --- a/monitor_wrap.c +++ b/monitor_wrap.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: monitor_wrap.c,v 1.99 2018/03/03 03:15:51 djm Exp $ */ | 1 | /* $OpenBSD: monitor_wrap.c,v 1.107 2018/07/20 03:46:34 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright 2002 Niels Provos <provos@citi.umich.edu> | 3 | * Copyright 2002 Niels Provos <provos@citi.umich.edu> |
4 | * Copyright 2002 Markus Friedl <markus@openbsd.org> | 4 | * Copyright 2002 Markus Friedl <markus@openbsd.org> |
@@ -50,8 +50,8 @@ | |||
50 | #ifdef WITH_OPENSSL | 50 | #ifdef WITH_OPENSSL |
51 | #include "dh.h" | 51 | #include "dh.h" |
52 | #endif | 52 | #endif |
53 | #include "buffer.h" | 53 | #include "sshbuf.h" |
54 | #include "key.h" | 54 | #include "sshkey.h" |
55 | #include "cipher.h" | 55 | #include "cipher.h" |
56 | #include "kex.h" | 56 | #include "kex.h" |
57 | #include "hostfile.h" | 57 | #include "hostfile.h" |
@@ -61,13 +61,6 @@ | |||
61 | #include "mac.h" | 61 | #include "mac.h" |
62 | #include "log.h" | 62 | #include "log.h" |
63 | #include "auth-pam.h" | 63 | #include "auth-pam.h" |
64 | #ifdef TARGET_OS_MAC /* XXX Broken krb5 headers on Mac */ | ||
65 | #undef TARGET_OS_MAC | ||
66 | #include "zlib.h" | ||
67 | #define TARGET_OS_MAC 1 | ||
68 | #else | ||
69 | #include "zlib.h" | ||
70 | #endif | ||
71 | #include "monitor.h" | 64 | #include "monitor.h" |
72 | #ifdef GSSAPI | 65 | #ifdef GSSAPI |
73 | #include "ssh-gss.h" | 66 | #include "ssh-gss.h" |
@@ -84,36 +77,35 @@ | |||
84 | #include "ssherr.h" | 77 | #include "ssherr.h" |
85 | 78 | ||
86 | /* Imports */ | 79 | /* Imports */ |
87 | extern z_stream incoming_stream; | ||
88 | extern z_stream outgoing_stream; | ||
89 | extern struct monitor *pmonitor; | 80 | extern struct monitor *pmonitor; |
90 | extern Buffer loginmsg; | 81 | extern struct sshbuf *loginmsg; |
91 | extern ServerOptions options; | 82 | extern ServerOptions options; |
92 | 83 | ||
93 | void | 84 | void |
94 | mm_log_handler(LogLevel level, const char *msg, void *ctx) | 85 | mm_log_handler(LogLevel level, const char *msg, void *ctx) |
95 | { | 86 | { |
96 | Buffer log_msg; | 87 | struct sshbuf *log_msg; |
97 | struct monitor *mon = (struct monitor *)ctx; | 88 | struct monitor *mon = (struct monitor *)ctx; |
89 | int r; | ||
90 | size_t len; | ||
98 | 91 | ||
99 | if (mon->m_log_sendfd == -1) | 92 | if (mon->m_log_sendfd == -1) |
100 | fatal("%s: no log channel", __func__); | 93 | fatal("%s: no log channel", __func__); |
101 | 94 | ||
102 | buffer_init(&log_msg); | 95 | if ((log_msg = sshbuf_new()) == NULL) |
103 | /* | 96 | fatal("%s: sshbuf_new failed", __func__); |
104 | * Placeholder for packet length. Will be filled in with the actual | ||
105 | * packet length once the packet has been constucted. This saves | ||
106 | * fragile math. | ||
107 | */ | ||
108 | buffer_put_int(&log_msg, 0); | ||
109 | 97 | ||
110 | buffer_put_int(&log_msg, level); | 98 | if ((r = sshbuf_put_u32(log_msg, 0)) != 0 || /* length; filled below */ |
111 | buffer_put_cstring(&log_msg, msg); | 99 | (r = sshbuf_put_u32(log_msg, level)) != 0 || |
112 | put_u32(buffer_ptr(&log_msg), buffer_len(&log_msg) - 4); | 100 | (r = sshbuf_put_cstring(log_msg, msg)) != 0) |
113 | if (atomicio(vwrite, mon->m_log_sendfd, buffer_ptr(&log_msg), | 101 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
114 | buffer_len(&log_msg)) != buffer_len(&log_msg)) | 102 | if ((len = sshbuf_len(log_msg)) < 4 || len > 0xffffffff) |
103 | fatal("%s: bad length %zu", __func__, len); | ||
104 | POKE_U32(sshbuf_mutable_ptr(log_msg), len - 4); | ||
105 | if (atomicio(vwrite, mon->m_log_sendfd, | ||
106 | sshbuf_mutable_ptr(log_msg), len) != len) | ||
115 | fatal("%s: write: %s", __func__, strerror(errno)); | 107 | fatal("%s: write: %s", __func__, strerror(errno)); |
116 | buffer_free(&log_msg); | 108 | sshbuf_free(log_msg); |
117 | } | 109 | } |
118 | 110 | ||
119 | int | 111 | int |
@@ -127,26 +119,29 @@ mm_is_monitor(void) | |||
127 | } | 119 | } |
128 | 120 | ||
129 | void | 121 | void |
130 | mm_request_send(int sock, enum monitor_reqtype type, Buffer *m) | 122 | mm_request_send(int sock, enum monitor_reqtype type, struct sshbuf *m) |
131 | { | 123 | { |
132 | u_int mlen = buffer_len(m); | 124 | size_t mlen = sshbuf_len(m); |
133 | u_char buf[5]; | 125 | u_char buf[5]; |
134 | 126 | ||
135 | debug3("%s entering: type %d", __func__, type); | 127 | debug3("%s entering: type %d", __func__, type); |
136 | 128 | ||
137 | put_u32(buf, mlen + 1); | 129 | if (mlen >= 0xffffffff) |
130 | fatal("%s: bad length %zu", __func__, mlen); | ||
131 | POKE_U32(buf, mlen + 1); | ||
138 | buf[4] = (u_char) type; /* 1st byte of payload is mesg-type */ | 132 | buf[4] = (u_char) type; /* 1st byte of payload is mesg-type */ |
139 | if (atomicio(vwrite, sock, buf, sizeof(buf)) != sizeof(buf)) | 133 | if (atomicio(vwrite, sock, buf, sizeof(buf)) != sizeof(buf)) |
140 | fatal("%s: write: %s", __func__, strerror(errno)); | 134 | fatal("%s: write: %s", __func__, strerror(errno)); |
141 | if (atomicio(vwrite, sock, buffer_ptr(m), mlen) != mlen) | 135 | if (atomicio(vwrite, sock, sshbuf_mutable_ptr(m), mlen) != mlen) |
142 | fatal("%s: write: %s", __func__, strerror(errno)); | 136 | fatal("%s: write: %s", __func__, strerror(errno)); |
143 | } | 137 | } |
144 | 138 | ||
145 | void | 139 | void |
146 | mm_request_receive(int sock, Buffer *m) | 140 | mm_request_receive(int sock, struct sshbuf *m) |
147 | { | 141 | { |
148 | u_char buf[4]; | 142 | u_char buf[4], *p = NULL; |
149 | u_int msg_len; | 143 | u_int msg_len; |
144 | int r; | ||
150 | 145 | ||
151 | debug3("%s entering", __func__); | 146 | debug3("%s entering", __func__); |
152 | 147 | ||
@@ -155,24 +150,27 @@ mm_request_receive(int sock, Buffer *m) | |||
155 | cleanup_exit(255); | 150 | cleanup_exit(255); |
156 | fatal("%s: read: %s", __func__, strerror(errno)); | 151 | fatal("%s: read: %s", __func__, strerror(errno)); |
157 | } | 152 | } |
158 | msg_len = get_u32(buf); | 153 | msg_len = PEEK_U32(buf); |
159 | if (msg_len > 256 * 1024) | 154 | if (msg_len > 256 * 1024) |
160 | fatal("%s: read: bad msg_len %d", __func__, msg_len); | 155 | fatal("%s: read: bad msg_len %d", __func__, msg_len); |
161 | buffer_clear(m); | 156 | sshbuf_reset(m); |
162 | buffer_append_space(m, msg_len); | 157 | if ((r = sshbuf_reserve(m, msg_len, &p)) != 0) |
163 | if (atomicio(read, sock, buffer_ptr(m), msg_len) != msg_len) | 158 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
159 | if (atomicio(read, sock, p, msg_len) != msg_len) | ||
164 | fatal("%s: read: %s", __func__, strerror(errno)); | 160 | fatal("%s: read: %s", __func__, strerror(errno)); |
165 | } | 161 | } |
166 | 162 | ||
167 | void | 163 | void |
168 | mm_request_receive_expect(int sock, enum monitor_reqtype type, Buffer *m) | 164 | mm_request_receive_expect(int sock, enum monitor_reqtype type, struct sshbuf *m) |
169 | { | 165 | { |
170 | u_char rtype; | 166 | u_char rtype; |
167 | int r; | ||
171 | 168 | ||
172 | debug3("%s entering: type %d", __func__, type); | 169 | debug3("%s entering: type %d", __func__, type); |
173 | 170 | ||
174 | mm_request_receive(sock, m); | 171 | mm_request_receive(sock, m); |
175 | rtype = buffer_get_char(m); | 172 | if ((r = sshbuf_get_u8(m, &rtype)) != 0) |
173 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
176 | if (rtype != type) | 174 | if (rtype != type) |
177 | fatal("%s: read: rtype %d != type %d", __func__, | 175 | fatal("%s: read: rtype %d != type %d", __func__, |
178 | rtype, type); | 176 | rtype, type); |
@@ -183,20 +181,24 @@ DH * | |||
183 | mm_choose_dh(int min, int nbits, int max) | 181 | mm_choose_dh(int min, int nbits, int max) |
184 | { | 182 | { |
185 | BIGNUM *p, *g; | 183 | BIGNUM *p, *g; |
186 | int success = 0; | 184 | int r; |
187 | Buffer m; | 185 | u_char success = 0; |
186 | struct sshbuf *m; | ||
188 | 187 | ||
189 | buffer_init(&m); | 188 | if ((m = sshbuf_new()) == NULL) |
190 | buffer_put_int(&m, min); | 189 | fatal("%s: sshbuf_new failed", __func__); |
191 | buffer_put_int(&m, nbits); | 190 | if ((r = sshbuf_put_u32(m, min)) != 0 || |
192 | buffer_put_int(&m, max); | 191 | (r = sshbuf_put_u32(m, nbits)) != 0 || |
192 | (r = sshbuf_put_u32(m, max)) != 0) | ||
193 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
193 | 194 | ||
194 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_MODULI, &m); | 195 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_MODULI, m); |
195 | 196 | ||
196 | debug3("%s: waiting for MONITOR_ANS_MODULI", __func__); | 197 | debug3("%s: waiting for MONITOR_ANS_MODULI", __func__); |
197 | mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_MODULI, &m); | 198 | mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_MODULI, m); |
198 | 199 | ||
199 | success = buffer_get_char(&m); | 200 | if ((r = sshbuf_get_u8(m, &success)) != 0) |
201 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
200 | if (success == 0) | 202 | if (success == 0) |
201 | fatal("%s: MONITOR_ANS_MODULI failed", __func__); | 203 | fatal("%s: MONITOR_ANS_MODULI failed", __func__); |
202 | 204 | ||
@@ -204,36 +206,43 @@ mm_choose_dh(int min, int nbits, int max) | |||
204 | fatal("%s: BN_new failed", __func__); | 206 | fatal("%s: BN_new failed", __func__); |
205 | if ((g = BN_new()) == NULL) | 207 | if ((g = BN_new()) == NULL) |
206 | fatal("%s: BN_new failed", __func__); | 208 | fatal("%s: BN_new failed", __func__); |
207 | buffer_get_bignum2(&m, p); | 209 | if ((r = sshbuf_get_bignum2(m, p)) != 0 || |
208 | buffer_get_bignum2(&m, g); | 210 | (r = sshbuf_get_bignum2(m, g)) != 0) |
211 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
209 | 212 | ||
210 | debug3("%s: remaining %d", __func__, buffer_len(&m)); | 213 | debug3("%s: remaining %zu", __func__, sshbuf_len(m)); |
211 | buffer_free(&m); | 214 | sshbuf_free(m); |
212 | 215 | ||
213 | return (dh_new_group(g, p)); | 216 | return (dh_new_group(g, p)); |
214 | } | 217 | } |
215 | #endif | 218 | #endif |
216 | 219 | ||
217 | int | 220 | int |
218 | mm_key_sign(struct sshkey *key, u_char **sigp, u_int *lenp, | 221 | mm_sshkey_sign(struct sshkey *key, u_char **sigp, size_t *lenp, |
219 | const u_char *data, u_int datalen, const char *hostkey_alg) | 222 | const u_char *data, size_t datalen, const char *hostkey_alg, u_int compat) |
220 | { | 223 | { |
221 | struct kex *kex = *pmonitor->m_pkex; | 224 | struct kex *kex = *pmonitor->m_pkex; |
222 | Buffer m; | 225 | struct sshbuf *m; |
226 | u_int ndx = kex->host_key_index(key, 0, active_state); | ||
227 | int r; | ||
223 | 228 | ||
224 | debug3("%s entering", __func__); | 229 | debug3("%s entering", __func__); |
225 | 230 | ||
226 | buffer_init(&m); | 231 | if ((m = sshbuf_new()) == NULL) |
227 | buffer_put_int(&m, kex->host_key_index(key, 0, active_state)); | 232 | fatal("%s: sshbuf_new failed", __func__); |
228 | buffer_put_string(&m, data, datalen); | 233 | if ((r = sshbuf_put_u32(m, ndx)) != 0 || |
229 | buffer_put_cstring(&m, hostkey_alg); | 234 | (r = sshbuf_put_string(m, data, datalen)) != 0 || |
235 | (r = sshbuf_put_cstring(m, hostkey_alg)) != 0 || | ||
236 | (r = sshbuf_put_u32(m, compat)) != 0) | ||
237 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
230 | 238 | ||
231 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_SIGN, &m); | 239 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_SIGN, m); |
232 | 240 | ||
233 | debug3("%s: waiting for MONITOR_ANS_SIGN", __func__); | 241 | debug3("%s: waiting for MONITOR_ANS_SIGN", __func__); |
234 | mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_SIGN, &m); | 242 | mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_SIGN, m); |
235 | *sigp = buffer_get_string(&m, lenp); | 243 | if ((r = sshbuf_get_string(m, sigp, lenp)) != 0) |
236 | buffer_free(&m); | 244 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
245 | sshbuf_free(m); | ||
237 | 246 | ||
238 | return (0); | 247 | return (0); |
239 | } | 248 | } |
@@ -242,54 +251,80 @@ struct passwd * | |||
242 | mm_getpwnamallow(const char *username) | 251 | mm_getpwnamallow(const char *username) |
243 | { | 252 | { |
244 | struct ssh *ssh = active_state; /* XXX */ | 253 | struct ssh *ssh = active_state; /* XXX */ |
245 | Buffer m; | 254 | struct sshbuf *m; |
246 | struct passwd *pw; | 255 | struct passwd *pw; |
247 | u_int len, i; | 256 | size_t len; |
257 | u_int i; | ||
248 | ServerOptions *newopts; | 258 | ServerOptions *newopts; |
259 | int r; | ||
260 | u_char ok; | ||
261 | const u_char *p; | ||
249 | 262 | ||
250 | debug3("%s entering", __func__); | 263 | debug3("%s entering", __func__); |
251 | 264 | ||
252 | buffer_init(&m); | 265 | if ((m = sshbuf_new()) == NULL) |
253 | buffer_put_cstring(&m, username); | 266 | fatal("%s: sshbuf_new failed", __func__); |
267 | if ((r = sshbuf_put_cstring(m, username)) != 0) | ||
268 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
254 | 269 | ||
255 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_PWNAM, &m); | 270 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_PWNAM, m); |
256 | 271 | ||
257 | debug3("%s: waiting for MONITOR_ANS_PWNAM", __func__); | 272 | debug3("%s: waiting for MONITOR_ANS_PWNAM", __func__); |
258 | mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_PWNAM, &m); | 273 | mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_PWNAM, m); |
259 | 274 | ||
260 | if (buffer_get_char(&m) == 0) { | 275 | if ((r = sshbuf_get_u8(m, &ok)) != 0) |
276 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
277 | if (ok == 0) { | ||
261 | pw = NULL; | 278 | pw = NULL; |
262 | goto out; | 279 | goto out; |
263 | } | 280 | } |
264 | pw = buffer_get_string(&m, &len); | 281 | |
265 | if (len != sizeof(struct passwd)) | 282 | /* XXX don't like passing struct passwd like this */ |
283 | pw = xcalloc(sizeof(*pw), 1); | ||
284 | if ((r = sshbuf_get_string_direct(m, &p, &len)) != 0) | ||
285 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
286 | if (len != sizeof(*pw)) | ||
266 | fatal("%s: struct passwd size mismatch", __func__); | 287 | fatal("%s: struct passwd size mismatch", __func__); |
267 | pw->pw_name = buffer_get_string(&m, NULL); | 288 | memcpy(pw, p, sizeof(*pw)); |
268 | pw->pw_passwd = buffer_get_string(&m, NULL); | 289 | |
290 | if ((r = sshbuf_get_cstring(m, &pw->pw_name, NULL)) != 0 || | ||
291 | (r = sshbuf_get_cstring(m, &pw->pw_passwd, NULL)) != 0 || | ||
269 | #ifdef HAVE_STRUCT_PASSWD_PW_GECOS | 292 | #ifdef HAVE_STRUCT_PASSWD_PW_GECOS |
270 | pw->pw_gecos = buffer_get_string(&m, NULL); | 293 | (r = sshbuf_get_cstring(m, &pw->pw_gecos, NULL)) != 0 || |
271 | #endif | 294 | #endif |
272 | #ifdef HAVE_STRUCT_PASSWD_PW_CLASS | 295 | #ifdef HAVE_STRUCT_PASSWD_PW_CLASS |
273 | pw->pw_class = buffer_get_string(&m, NULL); | 296 | (r = sshbuf_get_cstring(m, &pw->pw_class, NULL)) != 0 || |
274 | #endif | 297 | #endif |
275 | pw->pw_dir = buffer_get_string(&m, NULL); | 298 | (r = sshbuf_get_cstring(m, &pw->pw_dir, NULL)) != 0 || |
276 | pw->pw_shell = buffer_get_string(&m, NULL); | 299 | (r = sshbuf_get_cstring(m, &pw->pw_shell, NULL)) != 0) |
300 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
277 | 301 | ||
278 | out: | 302 | out: |
279 | /* copy options block as a Match directive may have changed some */ | 303 | /* copy options block as a Match directive may have changed some */ |
280 | newopts = buffer_get_string(&m, &len); | 304 | if ((r = sshbuf_get_string_direct(m, &p, &len)) != 0) |
305 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
281 | if (len != sizeof(*newopts)) | 306 | if (len != sizeof(*newopts)) |
282 | fatal("%s: option block size mismatch", __func__); | 307 | fatal("%s: option block size mismatch", __func__); |
308 | newopts = xcalloc(sizeof(*newopts), 1); | ||
309 | memcpy(newopts, p, sizeof(*newopts)); | ||
283 | 310 | ||
284 | #define M_CP_STROPT(x) do { \ | 311 | #define M_CP_STROPT(x) do { \ |
285 | if (newopts->x != NULL) \ | 312 | if (newopts->x != NULL) { \ |
286 | newopts->x = buffer_get_string(&m, NULL); \ | 313 | if ((r = sshbuf_get_cstring(m, \ |
314 | &newopts->x, NULL)) != 0) \ | ||
315 | fatal("%s: buffer error: %s", \ | ||
316 | __func__, ssh_err(r)); \ | ||
317 | } \ | ||
287 | } while (0) | 318 | } while (0) |
288 | #define M_CP_STRARRAYOPT(x, nx) do { \ | 319 | #define M_CP_STRARRAYOPT(x, nx) do { \ |
289 | newopts->x = newopts->nx == 0 ? \ | 320 | newopts->x = newopts->nx == 0 ? \ |
290 | NULL : xcalloc(newopts->nx, sizeof(*newopts->x)); \ | 321 | NULL : xcalloc(newopts->nx, sizeof(*newopts->x)); \ |
291 | for (i = 0; i < newopts->nx; i++) \ | 322 | for (i = 0; i < newopts->nx; i++) { \ |
292 | newopts->x[i] = buffer_get_string(&m, NULL); \ | 323 | if ((r = sshbuf_get_cstring(m, \ |
324 | &newopts->x[i], NULL)) != 0) \ | ||
325 | fatal("%s: buffer error: %s", \ | ||
326 | __func__, ssh_err(r)); \ | ||
327 | } \ | ||
293 | } while (0) | 328 | } while (0) |
294 | /* See comment in servconf.h */ | 329 | /* See comment in servconf.h */ |
295 | COPY_MATCH_STRING_OPTS(); | 330 | COPY_MATCH_STRING_OPTS(); |
@@ -301,7 +336,7 @@ out: | |||
301 | process_permitopen(ssh, &options); | 336 | process_permitopen(ssh, &options); |
302 | free(newopts); | 337 | free(newopts); |
303 | 338 | ||
304 | buffer_free(&m); | 339 | sshbuf_free(m); |
305 | 340 | ||
306 | return (pw); | 341 | return (pw); |
307 | } | 342 | } |
@@ -309,19 +344,22 @@ out: | |||
309 | char * | 344 | char * |
310 | mm_auth2_read_banner(void) | 345 | mm_auth2_read_banner(void) |
311 | { | 346 | { |
312 | Buffer m; | 347 | struct sshbuf *m; |
313 | char *banner; | 348 | char *banner; |
349 | int r; | ||
314 | 350 | ||
315 | debug3("%s entering", __func__); | 351 | debug3("%s entering", __func__); |
316 | 352 | ||
317 | buffer_init(&m); | 353 | if ((m = sshbuf_new()) == NULL) |
318 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_AUTH2_READ_BANNER, &m); | 354 | fatal("%s: sshbuf_new failed", __func__); |
319 | buffer_clear(&m); | 355 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_AUTH2_READ_BANNER, m); |
356 | sshbuf_reset(m); | ||
320 | 357 | ||
321 | mm_request_receive_expect(pmonitor->m_recvfd, | 358 | mm_request_receive_expect(pmonitor->m_recvfd, |
322 | MONITOR_ANS_AUTH2_READ_BANNER, &m); | 359 | MONITOR_ANS_AUTH2_READ_BANNER, m); |
323 | banner = buffer_get_string(&m, NULL); | 360 | if ((r = sshbuf_get_cstring(m, &banner, NULL)) != 0) |
324 | buffer_free(&m); | 361 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
362 | sshbuf_free(m); | ||
325 | 363 | ||
326 | /* treat empty banner as missing banner */ | 364 | /* treat empty banner as missing banner */ |
327 | if (strlen(banner) == 0) { | 365 | if (strlen(banner) == 0) { |
@@ -336,41 +374,55 @@ mm_auth2_read_banner(void) | |||
336 | void | 374 | void |
337 | mm_inform_authserv(char *service, char *style) | 375 | mm_inform_authserv(char *service, char *style) |
338 | { | 376 | { |
339 | Buffer m; | 377 | struct sshbuf *m; |
378 | int r; | ||
340 | 379 | ||
341 | debug3("%s entering", __func__); | 380 | debug3("%s entering", __func__); |
342 | 381 | ||
343 | buffer_init(&m); | 382 | if ((m = sshbuf_new()) == NULL) |
344 | buffer_put_cstring(&m, service); | 383 | fatal("%s: sshbuf_new failed", __func__); |
345 | buffer_put_cstring(&m, style ? style : ""); | 384 | if ((r = sshbuf_put_cstring(m, service)) != 0 || |
385 | (r = sshbuf_put_cstring(m, style ? style : "")) != 0) | ||
386 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
346 | 387 | ||
347 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_AUTHSERV, &m); | 388 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_AUTHSERV, m); |
348 | 389 | ||
349 | buffer_free(&m); | 390 | sshbuf_free(m); |
350 | } | 391 | } |
351 | 392 | ||
352 | /* Do the password authentication */ | 393 | /* Do the password authentication */ |
353 | int | 394 | int |
354 | mm_auth_password(struct ssh *ssh, char *password) | 395 | mm_auth_password(struct ssh *ssh, char *password) |
355 | { | 396 | { |
356 | Buffer m; | 397 | struct sshbuf *m; |
357 | int authenticated = 0; | 398 | int r, authenticated = 0; |
399 | #ifdef USE_PAM | ||
400 | u_int maxtries = 0; | ||
401 | #endif | ||
358 | 402 | ||
359 | debug3("%s entering", __func__); | 403 | debug3("%s entering", __func__); |
360 | 404 | ||
361 | buffer_init(&m); | 405 | if ((m = sshbuf_new()) == NULL) |
362 | buffer_put_cstring(&m, password); | 406 | fatal("%s: sshbuf_new failed", __func__); |
363 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_AUTHPASSWORD, &m); | 407 | if ((r = sshbuf_put_cstring(m, password)) != 0) |
408 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
409 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_AUTHPASSWORD, m); | ||
364 | 410 | ||
365 | debug3("%s: waiting for MONITOR_ANS_AUTHPASSWORD", __func__); | 411 | debug3("%s: waiting for MONITOR_ANS_AUTHPASSWORD", __func__); |
366 | mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_AUTHPASSWORD, &m); | 412 | mm_request_receive_expect(pmonitor->m_recvfd, |
413 | MONITOR_ANS_AUTHPASSWORD, m); | ||
367 | 414 | ||
368 | authenticated = buffer_get_int(&m); | 415 | if ((r = sshbuf_get_u32(m, &authenticated)) != 0) |
416 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
369 | #ifdef USE_PAM | 417 | #ifdef USE_PAM |
370 | sshpam_set_maxtries_reached(buffer_get_int(&m)); | 418 | if ((r = sshbuf_get_u32(m, &maxtries)) != 0) |
419 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
420 | if (maxtries > INT_MAX) | ||
421 | fatal("%s: bad maxtries %u", __func__, maxtries); | ||
422 | sshpam_set_maxtries_reached(maxtries); | ||
371 | #endif | 423 | #endif |
372 | 424 | ||
373 | buffer_free(&m); | 425 | sshbuf_free(m); |
374 | 426 | ||
375 | debug3("%s: user %sauthenticated", | 427 | debug3("%s: user %sauthenticated", |
376 | __func__, authenticated ? "" : "not "); | 428 | __func__, authenticated ? "" : "not "); |
@@ -396,9 +448,7 @@ int | |||
396 | mm_key_allowed(enum mm_keytype type, const char *user, const char *host, | 448 | mm_key_allowed(enum mm_keytype type, const char *user, const char *host, |
397 | struct sshkey *key, int pubkey_auth_attempt, struct sshauthopt **authoptp) | 449 | struct sshkey *key, int pubkey_auth_attempt, struct sshauthopt **authoptp) |
398 | { | 450 | { |
399 | Buffer m; | 451 | struct sshbuf *m; |
400 | u_char *blob; | ||
401 | u_int len; | ||
402 | int r, allowed = 0; | 452 | int r, allowed = 0; |
403 | struct sshauthopt *opts = NULL; | 453 | struct sshauthopt *opts = NULL; |
404 | 454 | ||
@@ -407,31 +457,29 @@ mm_key_allowed(enum mm_keytype type, const char *user, const char *host, | |||
407 | if (authoptp != NULL) | 457 | if (authoptp != NULL) |
408 | *authoptp = NULL; | 458 | *authoptp = NULL; |
409 | 459 | ||
410 | /* Convert the key to a blob and the pass it over */ | 460 | if ((m = sshbuf_new()) == NULL) |
411 | if (!key_to_blob(key, &blob, &len)) | 461 | fatal("%s: sshbuf_new failed", __func__); |
412 | return 0; | 462 | if ((r = sshbuf_put_u32(m, type)) != 0 || |
413 | 463 | (r = sshbuf_put_cstring(m, user ? user : "")) != 0 || | |
414 | buffer_init(&m); | 464 | (r = sshbuf_put_cstring(m, host ? host : "")) != 0 || |
415 | buffer_put_int(&m, type); | 465 | (r = sshkey_puts(key, m)) != 0 || |
416 | buffer_put_cstring(&m, user ? user : ""); | 466 | (r = sshbuf_put_u32(m, pubkey_auth_attempt)) != 0) |
417 | buffer_put_cstring(&m, host ? host : ""); | 467 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
418 | buffer_put_string(&m, blob, len); | ||
419 | buffer_put_int(&m, pubkey_auth_attempt); | ||
420 | free(blob); | ||
421 | 468 | ||
422 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_KEYALLOWED, &m); | 469 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_KEYALLOWED, m); |
423 | 470 | ||
424 | debug3("%s: waiting for MONITOR_ANS_KEYALLOWED", __func__); | 471 | debug3("%s: waiting for MONITOR_ANS_KEYALLOWED", __func__); |
425 | mm_request_receive_expect(pmonitor->m_recvfd, | 472 | mm_request_receive_expect(pmonitor->m_recvfd, |
426 | MONITOR_ANS_KEYALLOWED, &m); | 473 | MONITOR_ANS_KEYALLOWED, m); |
427 | 474 | ||
428 | allowed = buffer_get_int(&m); | 475 | if ((r = sshbuf_get_u32(m, &allowed)) != 0) |
476 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
429 | if (allowed && type == MM_USERKEY) { | 477 | if (allowed && type == MM_USERKEY) { |
430 | if ((r = sshauthopt_deserialise(&m, &opts)) != 0) | 478 | if ((r = sshauthopt_deserialise(m, &opts)) != 0) |
431 | fatal("%s: sshauthopt_deserialise: %s", | 479 | fatal("%s: sshauthopt_deserialise: %s", |
432 | __func__, ssh_err(r)); | 480 | __func__, ssh_err(r)); |
433 | } | 481 | } |
434 | buffer_free(&m); | 482 | sshbuf_free(m); |
435 | 483 | ||
436 | if (authoptp != NULL) { | 484 | if (authoptp != NULL) { |
437 | *authoptp = opts; | 485 | *authoptp = opts; |
@@ -452,32 +500,31 @@ int | |||
452 | mm_sshkey_verify(const struct sshkey *key, const u_char *sig, size_t siglen, | 500 | mm_sshkey_verify(const struct sshkey *key, const u_char *sig, size_t siglen, |
453 | const u_char *data, size_t datalen, const char *sigalg, u_int compat) | 501 | const u_char *data, size_t datalen, const char *sigalg, u_int compat) |
454 | { | 502 | { |
455 | Buffer m; | 503 | struct sshbuf *m; |
456 | u_char *blob; | ||
457 | u_int len; | ||
458 | u_int encoded_ret = 0; | 504 | u_int encoded_ret = 0; |
505 | int r; | ||
459 | 506 | ||
460 | debug3("%s entering", __func__); | 507 | debug3("%s entering", __func__); |
461 | 508 | ||
462 | /* Convert the key to a blob and the pass it over */ | ||
463 | if (!key_to_blob(key, &blob, &len)) | ||
464 | return (0); | ||
465 | 509 | ||
466 | buffer_init(&m); | 510 | if ((m = sshbuf_new()) == NULL) |
467 | buffer_put_string(&m, blob, len); | 511 | fatal("%s: sshbuf_new failed", __func__); |
468 | buffer_put_string(&m, sig, siglen); | 512 | if ((r = sshkey_puts(key, m)) != 0 || |
469 | buffer_put_string(&m, data, datalen); | 513 | (r = sshbuf_put_string(m, sig, siglen)) != 0 || |
470 | buffer_put_cstring(&m, sigalg == NULL ? "" : sigalg); | 514 | (r = sshbuf_put_string(m, data, datalen)) != 0 || |
471 | free(blob); | 515 | (r = sshbuf_put_cstring(m, sigalg == NULL ? "" : sigalg)) != 0) |
516 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
472 | 517 | ||
473 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_KEYVERIFY, &m); | 518 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_KEYVERIFY, m); |
474 | 519 | ||
475 | debug3("%s: waiting for MONITOR_ANS_KEYVERIFY", __func__); | 520 | debug3("%s: waiting for MONITOR_ANS_KEYVERIFY", __func__); |
476 | mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_KEYVERIFY, &m); | 521 | mm_request_receive_expect(pmonitor->m_recvfd, |
522 | MONITOR_ANS_KEYVERIFY, m); | ||
477 | 523 | ||
478 | encoded_ret = buffer_get_int(&m); | 524 | if ((r = sshbuf_get_u32(m, &encoded_ret)) != 0) |
525 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
479 | 526 | ||
480 | buffer_free(&m); | 527 | sshbuf_free(m); |
481 | 528 | ||
482 | if (encoded_ret != 0) | 529 | if (encoded_ret != 0) |
483 | return SSH_ERR_SIGNATURE_INVALID; | 530 | return SSH_ERR_SIGNATURE_INVALID; |
@@ -504,9 +551,9 @@ mm_send_keystate(struct monitor *monitor) | |||
504 | int | 551 | int |
505 | mm_pty_allocate(int *ptyfd, int *ttyfd, char *namebuf, size_t namebuflen) | 552 | mm_pty_allocate(int *ptyfd, int *ttyfd, char *namebuf, size_t namebuflen) |
506 | { | 553 | { |
507 | Buffer m; | 554 | struct sshbuf *m; |
508 | char *p, *msg; | 555 | char *p, *msg; |
509 | int success = 0, tmp1 = -1, tmp2 = -1; | 556 | int success = 0, tmp1 = -1, tmp2 = -1, r; |
510 | 557 | ||
511 | /* Kludge: ensure there are fds free to receive the pty/tty */ | 558 | /* Kludge: ensure there are fds free to receive the pty/tty */ |
512 | if ((tmp1 = dup(pmonitor->m_recvfd)) == -1 || | 559 | if ((tmp1 = dup(pmonitor->m_recvfd)) == -1 || |
@@ -521,26 +568,30 @@ mm_pty_allocate(int *ptyfd, int *ttyfd, char *namebuf, size_t namebuflen) | |||
521 | close(tmp1); | 568 | close(tmp1); |
522 | close(tmp2); | 569 | close(tmp2); |
523 | 570 | ||
524 | buffer_init(&m); | 571 | if ((m = sshbuf_new()) == NULL) |
525 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_PTY, &m); | 572 | fatal("%s: sshbuf_new failed", __func__); |
573 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_PTY, m); | ||
526 | 574 | ||
527 | debug3("%s: waiting for MONITOR_ANS_PTY", __func__); | 575 | debug3("%s: waiting for MONITOR_ANS_PTY", __func__); |
528 | mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_PTY, &m); | 576 | mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_PTY, m); |
529 | 577 | ||
530 | success = buffer_get_int(&m); | 578 | if ((r = sshbuf_get_u32(m, &success)) != 0) |
579 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
531 | if (success == 0) { | 580 | if (success == 0) { |
532 | debug3("%s: pty alloc failed", __func__); | 581 | debug3("%s: pty alloc failed", __func__); |
533 | buffer_free(&m); | 582 | sshbuf_free(m); |
534 | return (0); | 583 | return (0); |
535 | } | 584 | } |
536 | p = buffer_get_string(&m, NULL); | 585 | if ((r = sshbuf_get_cstring(m, &p, NULL)) != 0 || |
537 | msg = buffer_get_string(&m, NULL); | 586 | (r = sshbuf_get_cstring(m, &msg, NULL)) != 0) |
538 | buffer_free(&m); | 587 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
588 | sshbuf_free(m); | ||
539 | 589 | ||
540 | strlcpy(namebuf, p, namebuflen); /* Possible truncation */ | 590 | strlcpy(namebuf, p, namebuflen); /* Possible truncation */ |
541 | free(p); | 591 | free(p); |
542 | 592 | ||
543 | buffer_append(&loginmsg, msg, strlen(msg)); | 593 | if ((r = sshbuf_put(loginmsg, msg, strlen(msg))) != 0) |
594 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
544 | free(msg); | 595 | free(msg); |
545 | 596 | ||
546 | if ((*ptyfd = mm_receive_fd(pmonitor->m_recvfd)) == -1 || | 597 | if ((*ptyfd = mm_receive_fd(pmonitor->m_recvfd)) == -1 || |
@@ -554,14 +605,17 @@ mm_pty_allocate(int *ptyfd, int *ttyfd, char *namebuf, size_t namebuflen) | |||
554 | void | 605 | void |
555 | mm_session_pty_cleanup2(Session *s) | 606 | mm_session_pty_cleanup2(Session *s) |
556 | { | 607 | { |
557 | Buffer m; | 608 | struct sshbuf *m; |
609 | int r; | ||
558 | 610 | ||
559 | if (s->ttyfd == -1) | 611 | if (s->ttyfd == -1) |
560 | return; | 612 | return; |
561 | buffer_init(&m); | 613 | if ((m = sshbuf_new()) == NULL) |
562 | buffer_put_cstring(&m, s->tty); | 614 | fatal("%s: sshbuf_new failed", __func__); |
563 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_PTYCLEANUP, &m); | 615 | if ((r = sshbuf_put_cstring(m, s->tty)) != 0) |
564 | buffer_free(&m); | 616 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
617 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_PTYCLEANUP, m); | ||
618 | sshbuf_free(m); | ||
565 | 619 | ||
566 | /* closed dup'ed master */ | 620 | /* closed dup'ed master */ |
567 | if (s->ptymaster != -1 && close(s->ptymaster) < 0) | 621 | if (s->ptymaster != -1 && close(s->ptymaster) < 0) |
@@ -576,40 +630,44 @@ mm_session_pty_cleanup2(Session *s) | |||
576 | void | 630 | void |
577 | mm_start_pam(Authctxt *authctxt) | 631 | mm_start_pam(Authctxt *authctxt) |
578 | { | 632 | { |
579 | Buffer m; | 633 | struct sshbuf *m; |
580 | 634 | ||
581 | debug3("%s entering", __func__); | 635 | debug3("%s entering", __func__); |
582 | if (!options.use_pam) | 636 | if (!options.use_pam) |
583 | fatal("UsePAM=no, but ended up in %s anyway", __func__); | 637 | fatal("UsePAM=no, but ended up in %s anyway", __func__); |
638 | if ((m = sshbuf_new()) == NULL) | ||
639 | fatal("%s: sshbuf_new failed", __func__); | ||
640 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_PAM_START, m); | ||
584 | 641 | ||
585 | buffer_init(&m); | 642 | sshbuf_free(m); |
586 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_PAM_START, &m); | ||
587 | |||
588 | buffer_free(&m); | ||
589 | } | 643 | } |
590 | 644 | ||
591 | u_int | 645 | u_int |
592 | mm_do_pam_account(void) | 646 | mm_do_pam_account(void) |
593 | { | 647 | { |
594 | Buffer m; | 648 | struct sshbuf *m; |
595 | u_int ret; | 649 | u_int ret; |
596 | char *msg; | 650 | char *msg; |
651 | size_t msglen; | ||
652 | int r; | ||
597 | 653 | ||
598 | debug3("%s entering", __func__); | 654 | debug3("%s entering", __func__); |
599 | if (!options.use_pam) | 655 | if (!options.use_pam) |
600 | fatal("UsePAM=no, but ended up in %s anyway", __func__); | 656 | fatal("UsePAM=no, but ended up in %s anyway", __func__); |
601 | 657 | ||
602 | buffer_init(&m); | 658 | if ((m = sshbuf_new()) == NULL) |
603 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_PAM_ACCOUNT, &m); | 659 | fatal("%s: sshbuf_new failed", __func__); |
660 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_PAM_ACCOUNT, m); | ||
604 | 661 | ||
605 | mm_request_receive_expect(pmonitor->m_recvfd, | 662 | mm_request_receive_expect(pmonitor->m_recvfd, |
606 | MONITOR_ANS_PAM_ACCOUNT, &m); | 663 | MONITOR_ANS_PAM_ACCOUNT, m); |
607 | ret = buffer_get_int(&m); | 664 | if ((r = sshbuf_get_u32(m, &ret)) != 0 || |
608 | msg = buffer_get_string(&m, NULL); | 665 | (r = sshbuf_get_cstring(m, &msg, &msglen)) != 0 || |
609 | buffer_append(&loginmsg, msg, strlen(msg)); | 666 | (r = sshbuf_put(loginmsg, msg, msglen)) != 0) |
610 | free(msg); | 667 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
611 | 668 | ||
612 | buffer_free(&m); | 669 | free(msg); |
670 | sshbuf_free(m); | ||
613 | 671 | ||
614 | debug3("%s returning %d", __func__, ret); | 672 | debug3("%s returning %d", __func__, ret); |
615 | 673 | ||
@@ -619,21 +677,24 @@ mm_do_pam_account(void) | |||
619 | void * | 677 | void * |
620 | mm_sshpam_init_ctx(Authctxt *authctxt) | 678 | mm_sshpam_init_ctx(Authctxt *authctxt) |
621 | { | 679 | { |
622 | Buffer m; | 680 | struct sshbuf *m; |
623 | int success; | 681 | int r, success; |
624 | 682 | ||
625 | debug3("%s", __func__); | 683 | debug3("%s", __func__); |
626 | buffer_init(&m); | 684 | if ((m = sshbuf_new()) == NULL) |
627 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_PAM_INIT_CTX, &m); | 685 | fatal("%s: sshbuf_new failed", __func__); |
686 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_PAM_INIT_CTX, m); | ||
628 | debug3("%s: waiting for MONITOR_ANS_PAM_INIT_CTX", __func__); | 687 | debug3("%s: waiting for MONITOR_ANS_PAM_INIT_CTX", __func__); |
629 | mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_PAM_INIT_CTX, &m); | 688 | mm_request_receive_expect(pmonitor->m_recvfd, |
630 | success = buffer_get_int(&m); | 689 | MONITOR_ANS_PAM_INIT_CTX, m); |
690 | if ((r = sshbuf_get_u32(m, &success)) != 0) | ||
691 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
631 | if (success == 0) { | 692 | if (success == 0) { |
632 | debug3("%s: pam_init_ctx failed", __func__); | 693 | debug3("%s: pam_init_ctx failed", __func__); |
633 | buffer_free(&m); | 694 | sshbuf_free(m); |
634 | return (NULL); | 695 | return (NULL); |
635 | } | 696 | } |
636 | buffer_free(&m); | 697 | sshbuf_free(m); |
637 | return (authctxt); | 698 | return (authctxt); |
638 | } | 699 | } |
639 | 700 | ||
@@ -641,66 +702,79 @@ int | |||
641 | mm_sshpam_query(void *ctx, char **name, char **info, | 702 | mm_sshpam_query(void *ctx, char **name, char **info, |
642 | u_int *num, char ***prompts, u_int **echo_on) | 703 | u_int *num, char ***prompts, u_int **echo_on) |
643 | { | 704 | { |
644 | Buffer m; | 705 | struct sshbuf *m; |
645 | u_int i; | 706 | u_int i, n; |
646 | int ret; | 707 | int r, ret; |
647 | 708 | ||
648 | debug3("%s", __func__); | 709 | debug3("%s", __func__); |
649 | buffer_init(&m); | 710 | if ((m = sshbuf_new()) == NULL) |
650 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_PAM_QUERY, &m); | 711 | fatal("%s: sshbuf_new failed", __func__); |
712 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_PAM_QUERY, m); | ||
651 | debug3("%s: waiting for MONITOR_ANS_PAM_QUERY", __func__); | 713 | debug3("%s: waiting for MONITOR_ANS_PAM_QUERY", __func__); |
652 | mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_PAM_QUERY, &m); | 714 | mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_PAM_QUERY, m); |
653 | ret = buffer_get_int(&m); | 715 | if ((r = sshbuf_get_u32(m, &ret)) != 0 || |
716 | (r = sshbuf_get_cstring(m, name, NULL)) != 0 || | ||
717 | (r = sshbuf_get_cstring(m, info, NULL)) != 0 || | ||
718 | (r = sshbuf_get_u32(m, &n)) != 0 || | ||
719 | (r = sshbuf_get_u32(m, num)) != 0) | ||
720 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
654 | debug3("%s: pam_query returned %d", __func__, ret); | 721 | debug3("%s: pam_query returned %d", __func__, ret); |
655 | *name = buffer_get_string(&m, NULL); | 722 | sshpam_set_maxtries_reached(n); |
656 | *info = buffer_get_string(&m, NULL); | ||
657 | sshpam_set_maxtries_reached(buffer_get_int(&m)); | ||
658 | *num = buffer_get_int(&m); | ||
659 | if (*num > PAM_MAX_NUM_MSG) | 723 | if (*num > PAM_MAX_NUM_MSG) |
660 | fatal("%s: recieved %u PAM messages, expected <= %u", | 724 | fatal("%s: received %u PAM messages, expected <= %u", |
661 | __func__, *num, PAM_MAX_NUM_MSG); | 725 | __func__, *num, PAM_MAX_NUM_MSG); |
662 | *prompts = xcalloc((*num + 1), sizeof(char *)); | 726 | *prompts = xcalloc((*num + 1), sizeof(char *)); |
663 | *echo_on = xcalloc((*num + 1), sizeof(u_int)); | 727 | *echo_on = xcalloc((*num + 1), sizeof(u_int)); |
664 | for (i = 0; i < *num; ++i) { | 728 | for (i = 0; i < *num; ++i) { |
665 | (*prompts)[i] = buffer_get_string(&m, NULL); | 729 | if ((r = sshbuf_get_cstring(m, &((*prompts)[i]), NULL)) != 0 || |
666 | (*echo_on)[i] = buffer_get_int(&m); | 730 | (r = sshbuf_get_u32(m, &((*echo_on)[i]))) != 0) |
731 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
667 | } | 732 | } |
668 | buffer_free(&m); | 733 | sshbuf_free(m); |
669 | return (ret); | 734 | return (ret); |
670 | } | 735 | } |
671 | 736 | ||
672 | int | 737 | int |
673 | mm_sshpam_respond(void *ctx, u_int num, char **resp) | 738 | mm_sshpam_respond(void *ctx, u_int num, char **resp) |
674 | { | 739 | { |
675 | Buffer m; | 740 | struct sshbuf *m; |
676 | u_int i; | 741 | u_int n, i; |
677 | int ret; | 742 | int r, ret; |
678 | 743 | ||
679 | debug3("%s", __func__); | 744 | debug3("%s", __func__); |
680 | buffer_init(&m); | 745 | if ((m = sshbuf_new()) == NULL) |
681 | buffer_put_int(&m, num); | 746 | fatal("%s: sshbuf_new failed", __func__); |
682 | for (i = 0; i < num; ++i) | 747 | if ((r = sshbuf_put_u32(m, num)) != 0) |
683 | buffer_put_cstring(&m, resp[i]); | 748 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
684 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_PAM_RESPOND, &m); | 749 | for (i = 0; i < num; ++i) { |
750 | if ((r = sshbuf_put_cstring(m, resp[i])) != 0) | ||
751 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
752 | } | ||
753 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_PAM_RESPOND, m); | ||
685 | debug3("%s: waiting for MONITOR_ANS_PAM_RESPOND", __func__); | 754 | debug3("%s: waiting for MONITOR_ANS_PAM_RESPOND", __func__); |
686 | mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_PAM_RESPOND, &m); | 755 | mm_request_receive_expect(pmonitor->m_recvfd, |
687 | ret = buffer_get_int(&m); | 756 | MONITOR_ANS_PAM_RESPOND, m); |
757 | if ((r = sshbuf_get_u32(m, &n)) != 0) | ||
758 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
759 | ret = (int)n; /* XXX */ | ||
688 | debug3("%s: pam_respond returned %d", __func__, ret); | 760 | debug3("%s: pam_respond returned %d", __func__, ret); |
689 | buffer_free(&m); | 761 | sshbuf_free(m); |
690 | return (ret); | 762 | return (ret); |
691 | } | 763 | } |
692 | 764 | ||
693 | void | 765 | void |
694 | mm_sshpam_free_ctx(void *ctxtp) | 766 | mm_sshpam_free_ctx(void *ctxtp) |
695 | { | 767 | { |
696 | Buffer m; | 768 | struct sshbuf *m; |
697 | 769 | ||
698 | debug3("%s", __func__); | 770 | debug3("%s", __func__); |
699 | buffer_init(&m); | 771 | if ((m = sshbuf_new()) == NULL) |
700 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_PAM_FREE_CTX, &m); | 772 | fatal("%s: sshbuf_new failed", __func__); |
773 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_PAM_FREE_CTX, m); | ||
701 | debug3("%s: waiting for MONITOR_ANS_PAM_FREE_CTX", __func__); | 774 | debug3("%s: waiting for MONITOR_ANS_PAM_FREE_CTX", __func__); |
702 | mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_PAM_FREE_CTX, &m); | 775 | mm_request_receive_expect(pmonitor->m_recvfd, |
703 | buffer_free(&m); | 776 | MONITOR_ANS_PAM_FREE_CTX, m); |
777 | sshbuf_free(m); | ||
704 | } | 778 | } |
705 | #endif /* USE_PAM */ | 779 | #endif /* USE_PAM */ |
706 | 780 | ||
@@ -709,11 +783,12 @@ mm_sshpam_free_ctx(void *ctxtp) | |||
709 | void | 783 | void |
710 | mm_terminate(void) | 784 | mm_terminate(void) |
711 | { | 785 | { |
712 | Buffer m; | 786 | struct sshbuf *m; |
713 | 787 | ||
714 | buffer_init(&m); | 788 | if ((m = sshbuf_new()) == NULL) |
715 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_TERM, &m); | 789 | fatal("%s: sshbuf_new failed", __func__); |
716 | buffer_free(&m); | 790 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_TERM, m); |
791 | sshbuf_free(m); | ||
717 | } | 792 | } |
718 | 793 | ||
719 | static void | 794 | static void |
@@ -732,27 +807,31 @@ int | |||
732 | mm_bsdauth_query(void *ctx, char **name, char **infotxt, | 807 | mm_bsdauth_query(void *ctx, char **name, char **infotxt, |
733 | u_int *numprompts, char ***prompts, u_int **echo_on) | 808 | u_int *numprompts, char ***prompts, u_int **echo_on) |
734 | { | 809 | { |
735 | Buffer m; | 810 | struct sshbuf *m; |
736 | u_int success; | 811 | u_int success; |
737 | char *challenge; | 812 | char *challenge; |
813 | int r; | ||
738 | 814 | ||
739 | debug3("%s: entering", __func__); | 815 | debug3("%s: entering", __func__); |
740 | 816 | ||
741 | buffer_init(&m); | 817 | if ((m = sshbuf_new()) == NULL) |
742 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_BSDAUTHQUERY, &m); | 818 | fatal("%s: sshbuf_new failed", __func__); |
819 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_BSDAUTHQUERY, m); | ||
743 | 820 | ||
744 | mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_BSDAUTHQUERY, | 821 | mm_request_receive_expect(pmonitor->m_recvfd, |
745 | &m); | 822 | MONITOR_ANS_BSDAUTHQUERY, m); |
746 | success = buffer_get_int(&m); | 823 | if ((r = sshbuf_get_u32(m, &success)) != 0) |
824 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
747 | if (success == 0) { | 825 | if (success == 0) { |
748 | debug3("%s: no challenge", __func__); | 826 | debug3("%s: no challenge", __func__); |
749 | buffer_free(&m); | 827 | sshbuf_free(m); |
750 | return (-1); | 828 | return (-1); |
751 | } | 829 | } |
752 | 830 | ||
753 | /* Get the challenge, and format the response */ | 831 | /* Get the challenge, and format the response */ |
754 | challenge = buffer_get_string(&m, NULL); | 832 | if ((r = sshbuf_get_cstring(m, &challenge, NULL)) != 0) |
755 | buffer_free(&m); | 833 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
834 | sshbuf_free(m); | ||
756 | 835 | ||
757 | mm_chall_setup(name, infotxt, numprompts, prompts, echo_on); | 836 | mm_chall_setup(name, infotxt, numprompts, prompts, echo_on); |
758 | (*prompts)[0] = challenge; | 837 | (*prompts)[0] = challenge; |
@@ -765,114 +844,62 @@ mm_bsdauth_query(void *ctx, char **name, char **infotxt, | |||
765 | int | 844 | int |
766 | mm_bsdauth_respond(void *ctx, u_int numresponses, char **responses) | 845 | mm_bsdauth_respond(void *ctx, u_int numresponses, char **responses) |
767 | { | 846 | { |
768 | Buffer m; | 847 | struct sshbuf *m; |
769 | int authok; | 848 | int r, authok; |
770 | |||
771 | debug3("%s: entering", __func__); | ||
772 | if (numresponses != 1) | ||
773 | return (-1); | ||
774 | |||
775 | buffer_init(&m); | ||
776 | buffer_put_cstring(&m, responses[0]); | ||
777 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_BSDAUTHRESPOND, &m); | ||
778 | |||
779 | mm_request_receive_expect(pmonitor->m_recvfd, | ||
780 | MONITOR_ANS_BSDAUTHRESPOND, &m); | ||
781 | |||
782 | authok = buffer_get_int(&m); | ||
783 | buffer_free(&m); | ||
784 | |||
785 | return ((authok == 0) ? -1 : 0); | ||
786 | } | ||
787 | |||
788 | #ifdef SKEY | ||
789 | int | ||
790 | mm_skey_query(void *ctx, char **name, char **infotxt, | ||
791 | u_int *numprompts, char ***prompts, u_int **echo_on) | ||
792 | { | ||
793 | Buffer m; | ||
794 | u_int success; | ||
795 | char *challenge; | ||
796 | |||
797 | debug3("%s: entering", __func__); | ||
798 | |||
799 | buffer_init(&m); | ||
800 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_SKEYQUERY, &m); | ||
801 | |||
802 | mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_SKEYQUERY, | ||
803 | &m); | ||
804 | success = buffer_get_int(&m); | ||
805 | if (success == 0) { | ||
806 | debug3("%s: no challenge", __func__); | ||
807 | buffer_free(&m); | ||
808 | return (-1); | ||
809 | } | ||
810 | |||
811 | /* Get the challenge, and format the response */ | ||
812 | challenge = buffer_get_string(&m, NULL); | ||
813 | buffer_free(&m); | ||
814 | |||
815 | debug3("%s: received challenge: %s", __func__, challenge); | ||
816 | |||
817 | mm_chall_setup(name, infotxt, numprompts, prompts, echo_on); | ||
818 | |||
819 | xasprintf(*prompts, "%s%s", challenge, SKEY_PROMPT); | ||
820 | free(challenge); | ||
821 | |||
822 | return (0); | ||
823 | } | ||
824 | |||
825 | int | ||
826 | mm_skey_respond(void *ctx, u_int numresponses, char **responses) | ||
827 | { | ||
828 | Buffer m; | ||
829 | int authok; | ||
830 | 849 | ||
831 | debug3("%s: entering", __func__); | 850 | debug3("%s: entering", __func__); |
832 | if (numresponses != 1) | 851 | if (numresponses != 1) |
833 | return (-1); | 852 | return (-1); |
834 | 853 | ||
835 | buffer_init(&m); | 854 | if ((m = sshbuf_new()) == NULL) |
836 | buffer_put_cstring(&m, responses[0]); | 855 | fatal("%s: sshbuf_new failed", __func__); |
837 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_SKEYRESPOND, &m); | 856 | if ((r = sshbuf_put_cstring(m, responses[0])) != 0) |
857 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
858 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_BSDAUTHRESPOND, m); | ||
838 | 859 | ||
839 | mm_request_receive_expect(pmonitor->m_recvfd, | 860 | mm_request_receive_expect(pmonitor->m_recvfd, |
840 | MONITOR_ANS_SKEYRESPOND, &m); | 861 | MONITOR_ANS_BSDAUTHRESPOND, m); |
841 | 862 | ||
842 | authok = buffer_get_int(&m); | 863 | if ((r = sshbuf_get_u32(m, &authok)) != 0) |
843 | buffer_free(&m); | 864 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
865 | sshbuf_free(m); | ||
844 | 866 | ||
845 | return ((authok == 0) ? -1 : 0); | 867 | return ((authok == 0) ? -1 : 0); |
846 | } | 868 | } |
847 | #endif /* SKEY */ | ||
848 | 869 | ||
849 | #ifdef SSH_AUDIT_EVENTS | 870 | #ifdef SSH_AUDIT_EVENTS |
850 | void | 871 | void |
851 | mm_audit_event(ssh_audit_event_t event) | 872 | mm_audit_event(ssh_audit_event_t event) |
852 | { | 873 | { |
853 | Buffer m; | 874 | struct sshbuf *m; |
875 | int r; | ||
854 | 876 | ||
855 | debug3("%s entering", __func__); | 877 | debug3("%s entering", __func__); |
856 | 878 | ||
857 | buffer_init(&m); | 879 | if ((m = sshbuf_new()) == NULL) |
858 | buffer_put_int(&m, event); | 880 | fatal("%s: sshbuf_new failed", __func__); |
881 | if ((r = sshbuf_put_u32(m, event)) != 0) | ||
882 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
859 | 883 | ||
860 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_AUDIT_EVENT, &m); | 884 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_AUDIT_EVENT, m); |
861 | buffer_free(&m); | 885 | sshbuf_free(m); |
862 | } | 886 | } |
863 | 887 | ||
864 | void | 888 | void |
865 | mm_audit_run_command(const char *command) | 889 | mm_audit_run_command(const char *command) |
866 | { | 890 | { |
867 | Buffer m; | 891 | struct sshbuf *m; |
892 | int r; | ||
868 | 893 | ||
869 | debug3("%s entering command %s", __func__, command); | 894 | debug3("%s entering command %s", __func__, command); |
870 | 895 | ||
871 | buffer_init(&m); | 896 | if ((m = sshbuf_new()) == NULL) |
872 | buffer_put_cstring(&m, command); | 897 | fatal("%s: sshbuf_new failed", __func__); |
898 | if ((r = sshbuf_put_cstring(m, command)) != 0) | ||
899 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
873 | 900 | ||
874 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_AUDIT_COMMAND, &m); | 901 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_AUDIT_COMMAND, m); |
875 | buffer_free(&m); | 902 | sshbuf_free(m); |
876 | } | 903 | } |
877 | #endif /* SSH_AUDIT_EVENTS */ | 904 | #endif /* SSH_AUDIT_EVENTS */ |
878 | 905 | ||
@@ -880,45 +907,55 @@ mm_audit_run_command(const char *command) | |||
880 | OM_uint32 | 907 | OM_uint32 |
881 | mm_ssh_gssapi_server_ctx(Gssctxt **ctx, gss_OID goid) | 908 | mm_ssh_gssapi_server_ctx(Gssctxt **ctx, gss_OID goid) |
882 | { | 909 | { |
883 | Buffer m; | 910 | struct sshbuf *m; |
884 | OM_uint32 major; | 911 | OM_uint32 major; |
912 | int r; | ||
885 | 913 | ||
886 | /* Client doesn't get to see the context */ | 914 | /* Client doesn't get to see the context */ |
887 | *ctx = NULL; | 915 | *ctx = NULL; |
888 | 916 | ||
889 | buffer_init(&m); | 917 | if ((m = sshbuf_new()) == NULL) |
890 | buffer_put_string(&m, goid->elements, goid->length); | 918 | fatal("%s: sshbuf_new failed", __func__); |
919 | if ((r = sshbuf_put_string(m, goid->elements, goid->length)) != 0) | ||
920 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
891 | 921 | ||
892 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_GSSSETUP, &m); | 922 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_GSSSETUP, m); |
893 | mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_GSSSETUP, &m); | 923 | mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_GSSSETUP, m); |
894 | 924 | ||
895 | major = buffer_get_int(&m); | 925 | if ((r = sshbuf_get_u32(m, &major)) != 0) |
926 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
896 | 927 | ||
897 | buffer_free(&m); | 928 | sshbuf_free(m); |
898 | return (major); | 929 | return (major); |
899 | } | 930 | } |
900 | 931 | ||
901 | OM_uint32 | 932 | OM_uint32 |
902 | mm_ssh_gssapi_accept_ctx(Gssctxt *ctx, gss_buffer_desc *in, | 933 | mm_ssh_gssapi_accept_ctx(Gssctxt *ctx, gss_buffer_desc *in, |
903 | gss_buffer_desc *out, OM_uint32 *flags) | 934 | gss_buffer_desc *out, OM_uint32 *flagsp) |
904 | { | 935 | { |
905 | Buffer m; | 936 | struct sshbuf *m; |
906 | OM_uint32 major; | 937 | OM_uint32 major; |
907 | u_int len; | 938 | u_int flags; |
908 | 939 | int r; | |
909 | buffer_init(&m); | ||
910 | buffer_put_string(&m, in->value, in->length); | ||
911 | |||
912 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_GSSSTEP, &m); | ||
913 | mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_GSSSTEP, &m); | ||
914 | 940 | ||
915 | major = buffer_get_int(&m); | 941 | if ((m = sshbuf_new()) == NULL) |
916 | out->value = buffer_get_string(&m, &len); | 942 | fatal("%s: sshbuf_new failed", __func__); |
917 | out->length = len; | 943 | if ((r = sshbuf_put_string(m, in->value, in->length)) != 0) |
918 | if (flags) | 944 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
919 | *flags = buffer_get_int(&m); | 945 | |
946 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_GSSSTEP, m); | ||
947 | mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_GSSSTEP, m); | ||
948 | |||
949 | if ((r = sshbuf_get_u32(m, &major)) != 0 || | ||
950 | (r = ssh_gssapi_get_buffer_desc(m, out)) != 0) | ||
951 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
952 | if (flagsp != NULL) { | ||
953 | if ((r = sshbuf_get_u32(m, &flags)) != 0) | ||
954 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
955 | *flagsp = flags; | ||
956 | } | ||
920 | 957 | ||
921 | buffer_free(&m); | 958 | sshbuf_free(m); |
922 | 959 | ||
923 | return (major); | 960 | return (major); |
924 | } | 961 | } |
@@ -926,39 +963,44 @@ mm_ssh_gssapi_accept_ctx(Gssctxt *ctx, gss_buffer_desc *in, | |||
926 | OM_uint32 | 963 | OM_uint32 |
927 | mm_ssh_gssapi_checkmic(Gssctxt *ctx, gss_buffer_t gssbuf, gss_buffer_t gssmic) | 964 | mm_ssh_gssapi_checkmic(Gssctxt *ctx, gss_buffer_t gssbuf, gss_buffer_t gssmic) |
928 | { | 965 | { |
929 | Buffer m; | 966 | struct sshbuf *m; |
930 | OM_uint32 major; | 967 | OM_uint32 major; |
968 | int r; | ||
931 | 969 | ||
932 | buffer_init(&m); | 970 | if ((m = sshbuf_new()) == NULL) |
933 | buffer_put_string(&m, gssbuf->value, gssbuf->length); | 971 | fatal("%s: sshbuf_new failed", __func__); |
934 | buffer_put_string(&m, gssmic->value, gssmic->length); | 972 | if ((r = sshbuf_put_string(m, gssbuf->value, gssbuf->length)) != 0 || |
973 | (r = sshbuf_put_string(m, gssmic->value, gssmic->length)) != 0) | ||
974 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
935 | 975 | ||
936 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_GSSCHECKMIC, &m); | 976 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_GSSCHECKMIC, m); |
937 | mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_GSSCHECKMIC, | 977 | mm_request_receive_expect(pmonitor->m_recvfd, |
938 | &m); | 978 | MONITOR_ANS_GSSCHECKMIC, m); |
939 | 979 | ||
940 | major = buffer_get_int(&m); | 980 | if ((r = sshbuf_get_u32(m, &major)) != 0) |
941 | buffer_free(&m); | 981 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
982 | sshbuf_free(m); | ||
942 | return(major); | 983 | return(major); |
943 | } | 984 | } |
944 | 985 | ||
945 | int | 986 | int |
946 | mm_ssh_gssapi_userok(char *user) | 987 | mm_ssh_gssapi_userok(char *user) |
947 | { | 988 | { |
948 | Buffer m; | 989 | struct sshbuf *m; |
949 | int authenticated = 0; | 990 | int r, authenticated = 0; |
950 | 991 | ||
951 | buffer_init(&m); | 992 | if ((m = sshbuf_new()) == NULL) |
993 | fatal("%s: sshbuf_new failed", __func__); | ||
952 | 994 | ||
953 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_GSSUSEROK, &m); | 995 | mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_GSSUSEROK, m); |
954 | mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_GSSUSEROK, | 996 | mm_request_receive_expect(pmonitor->m_recvfd, |
955 | &m); | 997 | MONITOR_ANS_GSSUSEROK, m); |
956 | 998 | ||
957 | authenticated = buffer_get_int(&m); | 999 | if ((r = sshbuf_get_u32(m, &authenticated)) != 0) |
1000 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
958 | 1001 | ||
959 | buffer_free(&m); | 1002 | sshbuf_free(m); |
960 | debug3("%s: user %sauthenticated",__func__, authenticated ? "" : "not "); | 1003 | debug3("%s: user %sauthenticated",__func__, authenticated ? "" : "not "); |
961 | return (authenticated); | 1004 | return (authenticated); |
962 | } | 1005 | } |
963 | #endif /* GSSAPI */ | 1006 | #endif /* GSSAPI */ |
964 | |||
diff --git a/monitor_wrap.h b/monitor_wrap.h index 762332704..644da081d 100644 --- a/monitor_wrap.h +++ b/monitor_wrap.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: monitor_wrap.h,v 1.37 2018/03/03 03:15:51 djm Exp $ */ | 1 | /* $OpenBSD: monitor_wrap.h,v 1.38 2018/07/11 18:53:29 markus Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Copyright 2002 Niels Provos <provos@citi.umich.edu> | 4 | * Copyright 2002 Niels Provos <provos@citi.umich.edu> |
@@ -41,8 +41,8 @@ struct sshauthopt; | |||
41 | void mm_log_handler(LogLevel, const char *, void *); | 41 | void mm_log_handler(LogLevel, const char *, void *); |
42 | int mm_is_monitor(void); | 42 | int mm_is_monitor(void); |
43 | DH *mm_choose_dh(int, int, int); | 43 | DH *mm_choose_dh(int, int, int); |
44 | int mm_key_sign(struct sshkey *, u_char **, u_int *, const u_char *, u_int, | 44 | int mm_sshkey_sign(struct sshkey *, u_char **, size_t *, const u_char *, size_t, |
45 | const char *); | 45 | const char *, u_int compat); |
46 | void mm_inform_authserv(char *, char *); | 46 | void mm_inform_authserv(char *, char *); |
47 | struct passwd *mm_getpwnamallow(const char *); | 47 | struct passwd *mm_getpwnamallow(const char *); |
48 | char *mm_auth2_read_banner(void); | 48 | char *mm_auth2_read_banner(void); |
@@ -97,8 +97,4 @@ void mm_send_keystate(struct monitor*); | |||
97 | int mm_bsdauth_query(void *, char **, char **, u_int *, char ***, u_int **); | 97 | int mm_bsdauth_query(void *, char **, char **, u_int *, char ***, u_int **); |
98 | int mm_bsdauth_respond(void *, u_int, char **); | 98 | int mm_bsdauth_respond(void *, u_int, char **); |
99 | 99 | ||
100 | /* skey */ | ||
101 | int mm_skey_query(void *, char **, char **, u_int *, char ***, u_int **); | ||
102 | int mm_skey_respond(void *, u_int, char **); | ||
103 | |||
104 | #endif /* _MM_WRAP_H_ */ | 100 | #endif /* _MM_WRAP_H_ */ |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: msg.c,v 1.16 2015/01/15 09:40:00 djm Exp $ */ | 1 | /* $OpenBSD: msg.c,v 1.17 2018/07/09 21:59:10 markus Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2002 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2002 Markus Friedl. All rights reserved. |
4 | * | 4 | * |
@@ -55,7 +55,7 @@ ssh_msg_send(int fd, u_char type, struct sshbuf *m) | |||
55 | error("ssh_msg_send: write"); | 55 | error("ssh_msg_send: write"); |
56 | return (-1); | 56 | return (-1); |
57 | } | 57 | } |
58 | if (atomicio(vwrite, fd, (u_char *)sshbuf_ptr(m), mlen) != mlen) { | 58 | if (atomicio(vwrite, fd, sshbuf_mutable_ptr(m), mlen) != mlen) { |
59 | error("ssh_msg_send: write"); | 59 | error("ssh_msg_send: write"); |
60 | return (-1); | 60 | return (-1); |
61 | } | 61 | } |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: mux.c,v 1.69 2017/09/20 05:19:00 dtucker Exp $ */ | 1 | /* $OpenBSD: mux.c,v 1.75 2018/07/31 03:07:24 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2002-2008 Damien Miller <djm@openbsd.org> | 3 | * Copyright (c) 2002-2008 Damien Miller <djm@openbsd.org> |
4 | * | 4 | * |
@@ -70,13 +70,13 @@ | |||
70 | #include "pathnames.h" | 70 | #include "pathnames.h" |
71 | #include "misc.h" | 71 | #include "misc.h" |
72 | #include "match.h" | 72 | #include "match.h" |
73 | #include "buffer.h" | 73 | #include "sshbuf.h" |
74 | #include "channels.h" | 74 | #include "channels.h" |
75 | #include "msg.h" | 75 | #include "msg.h" |
76 | #include "packet.h" | 76 | #include "packet.h" |
77 | #include "monitor_fdpass.h" | 77 | #include "monitor_fdpass.h" |
78 | #include "sshpty.h" | 78 | #include "sshpty.h" |
79 | #include "key.h" | 79 | #include "sshkey.h" |
80 | #include "readconf.h" | 80 | #include "readconf.h" |
81 | #include "clientloop.h" | 81 | #include "clientloop.h" |
82 | #include "ssherr.h" | 82 | #include "ssherr.h" |
@@ -87,7 +87,7 @@ extern Options options; | |||
87 | extern int stdin_null_flag; | 87 | extern int stdin_null_flag; |
88 | extern char *host; | 88 | extern char *host; |
89 | extern int subsystem_flag; | 89 | extern int subsystem_flag; |
90 | extern Buffer command; | 90 | extern struct sshbuf *command; |
91 | extern volatile sig_atomic_t quit_pending; | 91 | extern volatile sig_atomic_t quit_pending; |
92 | 92 | ||
93 | /* Context for session open confirmation callback */ | 93 | /* Context for session open confirmation callback */ |
@@ -96,7 +96,7 @@ struct mux_session_confirm_ctx { | |||
96 | u_int want_subsys; | 96 | u_int want_subsys; |
97 | u_int want_x_fwd; | 97 | u_int want_x_fwd; |
98 | u_int want_agent_fwd; | 98 | u_int want_agent_fwd; |
99 | Buffer cmd; | 99 | struct sshbuf *cmd; |
100 | char *term; | 100 | char *term; |
101 | struct termios tio; | 101 | struct termios tio; |
102 | char **env; | 102 | char **env; |
@@ -279,10 +279,11 @@ env_permitted(char *env) | |||
279 | 279 | ||
280 | static int | 280 | static int |
281 | process_mux_master_hello(struct ssh *ssh, u_int rid, | 281 | process_mux_master_hello(struct ssh *ssh, u_int rid, |
282 | Channel *c, Buffer *m, Buffer *r) | 282 | Channel *c, struct sshbuf *m, struct sshbuf *reply) |
283 | { | 283 | { |
284 | u_int ver; | 284 | u_int ver; |
285 | struct mux_master_state *state = (struct mux_master_state *)c->mux_ctx; | 285 | struct mux_master_state *state = (struct mux_master_state *)c->mux_ctx; |
286 | int r; | ||
286 | 287 | ||
287 | if (state == NULL) | 288 | if (state == NULL) |
288 | fatal("%s: channel %d: c->mux_ctx == NULL", __func__, c->self); | 289 | fatal("%s: channel %d: c->mux_ctx == NULL", __func__, c->self); |
@@ -290,9 +291,8 @@ process_mux_master_hello(struct ssh *ssh, u_int rid, | |||
290 | error("%s: HELLO received twice", __func__); | 291 | error("%s: HELLO received twice", __func__); |
291 | return -1; | 292 | return -1; |
292 | } | 293 | } |
293 | if (buffer_get_int_ret(&ver, m) != 0) { | 294 | if ((r = sshbuf_get_u32(m, &ver)) != 0) { |
294 | malf: | 295 | error("%s: malformed message: %s", __func__, ssh_err(r)); |
295 | error("%s: malformed message", __func__); | ||
296 | return -1; | 296 | return -1; |
297 | } | 297 | } |
298 | if (ver != SSHMUX_VER) { | 298 | if (ver != SSHMUX_VER) { |
@@ -303,51 +303,72 @@ process_mux_master_hello(struct ssh *ssh, u_int rid, | |||
303 | debug2("%s: channel %d slave version %u", __func__, c->self, ver); | 303 | debug2("%s: channel %d slave version %u", __func__, c->self, ver); |
304 | 304 | ||
305 | /* No extensions are presently defined */ | 305 | /* No extensions are presently defined */ |
306 | while (buffer_len(m) > 0) { | 306 | while (sshbuf_len(m) > 0) { |
307 | char *name = buffer_get_string_ret(m, NULL); | 307 | char *name = NULL; |
308 | char *value = buffer_get_string_ret(m, NULL); | ||
309 | 308 | ||
310 | if (name == NULL || value == NULL) { | 309 | if ((r = sshbuf_get_cstring(m, &name, NULL)) != 0 || |
311 | free(name); | 310 | (r = sshbuf_skip_string(m)) != 0) { /* value */ |
312 | free(value); | 311 | error("%s: malformed extension: %s", |
313 | goto malf; | 312 | __func__, ssh_err(r)); |
313 | return -1; | ||
314 | } | 314 | } |
315 | debug2("Unrecognised slave extension \"%s\"", name); | 315 | debug2("Unrecognised slave extension \"%s\"", name); |
316 | free(name); | 316 | free(name); |
317 | free(value); | ||
318 | } | 317 | } |
319 | state->hello_rcvd = 1; | 318 | state->hello_rcvd = 1; |
320 | return 0; | 319 | return 0; |
321 | } | 320 | } |
322 | 321 | ||
322 | /* Enqueue a "ok" response to the reply buffer */ | ||
323 | static void | ||
324 | reply_ok(struct sshbuf *reply, u_int rid) | ||
325 | { | ||
326 | int r; | ||
327 | |||
328 | if ((r = sshbuf_put_u32(reply, MUX_S_OK)) != 0 || | ||
329 | (r = sshbuf_put_u32(reply, rid)) != 0) | ||
330 | fatal("%s: reply: %s", __func__, ssh_err(r)); | ||
331 | } | ||
332 | |||
333 | /* Enqueue an error response to the reply buffer */ | ||
334 | static void | ||
335 | reply_error(struct sshbuf *reply, u_int type, u_int rid, const char *msg) | ||
336 | { | ||
337 | int r; | ||
338 | |||
339 | if ((r = sshbuf_put_u32(reply, type)) != 0 || | ||
340 | (r = sshbuf_put_u32(reply, rid)) != 0 || | ||
341 | (r = sshbuf_put_cstring(reply, msg)) != 0) | ||
342 | fatal("%s: reply: %s", __func__, ssh_err(r)); | ||
343 | } | ||
344 | |||
323 | static int | 345 | static int |
324 | process_mux_new_session(struct ssh *ssh, u_int rid, | 346 | process_mux_new_session(struct ssh *ssh, u_int rid, |
325 | Channel *c, Buffer *m, Buffer *r) | 347 | Channel *c, struct sshbuf *m, struct sshbuf *reply) |
326 | { | 348 | { |
327 | Channel *nc; | 349 | Channel *nc; |
328 | struct mux_session_confirm_ctx *cctx; | 350 | struct mux_session_confirm_ctx *cctx; |
329 | char *reserved, *cmd, *cp; | 351 | char *cmd, *cp; |
330 | u_int i, j, len, env_len, escape_char, window, packetmax; | 352 | u_int i, j, env_len, escape_char, window, packetmax; |
331 | int new_fd[3]; | 353 | int r, new_fd[3]; |
332 | 354 | ||
333 | /* Reply for SSHMUX_COMMAND_OPEN */ | 355 | /* Reply for SSHMUX_COMMAND_OPEN */ |
334 | cctx = xcalloc(1, sizeof(*cctx)); | 356 | cctx = xcalloc(1, sizeof(*cctx)); |
335 | cctx->term = NULL; | 357 | cctx->term = NULL; |
336 | cctx->rid = rid; | 358 | cctx->rid = rid; |
337 | cmd = reserved = NULL; | 359 | cmd = NULL; |
338 | cctx->env = NULL; | 360 | cctx->env = NULL; |
339 | env_len = 0; | 361 | env_len = 0; |
340 | if ((reserved = buffer_get_string_ret(m, NULL)) == NULL || | 362 | if ((r = sshbuf_skip_string(m)) != 0 || /* reserved */ |
341 | buffer_get_int_ret(&cctx->want_tty, m) != 0 || | 363 | (r = sshbuf_get_u32(m, &cctx->want_tty)) != 0 || |
342 | buffer_get_int_ret(&cctx->want_x_fwd, m) != 0 || | 364 | (r = sshbuf_get_u32(m, &cctx->want_x_fwd)) != 0 || |
343 | buffer_get_int_ret(&cctx->want_agent_fwd, m) != 0 || | 365 | (r = sshbuf_get_u32(m, &cctx->want_agent_fwd)) != 0 || |
344 | buffer_get_int_ret(&cctx->want_subsys, m) != 0 || | 366 | (r = sshbuf_get_u32(m, &cctx->want_subsys)) != 0 || |
345 | buffer_get_int_ret(&escape_char, m) != 0 || | 367 | (r = sshbuf_get_u32(m, &escape_char)) != 0 || |
346 | (cctx->term = buffer_get_string_ret(m, &len)) == NULL || | 368 | (r = sshbuf_get_cstring(m, &cctx->term, NULL)) != 0 || |
347 | (cmd = buffer_get_string_ret(m, &len)) == NULL) { | 369 | (r = sshbuf_get_cstring(m, &cmd, NULL)) != 0) { |
348 | malf: | 370 | malf: |
349 | free(cmd); | 371 | free(cmd); |
350 | free(reserved); | ||
351 | for (j = 0; j < env_len; j++) | 372 | for (j = 0; j < env_len; j++) |
352 | free(cctx->env[j]); | 373 | free(cctx->env[j]); |
353 | free(cctx->env); | 374 | free(cctx->env); |
@@ -356,12 +377,10 @@ process_mux_new_session(struct ssh *ssh, u_int rid, | |||
356 | error("%s: malformed message", __func__); | 377 | error("%s: malformed message", __func__); |
357 | return -1; | 378 | return -1; |
358 | } | 379 | } |
359 | free(reserved); | ||
360 | reserved = NULL; | ||
361 | 380 | ||
362 | while (buffer_len(m) > 0) { | ||
363 | #define MUX_MAX_ENV_VARS 4096 | 381 | #define MUX_MAX_ENV_VARS 4096 |
364 | if ((cp = buffer_get_string_ret(m, &len)) == NULL) | 382 | while (sshbuf_len(m) > 0) { |
383 | if ((r = sshbuf_get_cstring(m, &cp, NULL)) != 0) | ||
365 | goto malf; | 384 | goto malf; |
366 | if (!env_permitted(cp)) { | 385 | if (!env_permitted(cp)) { |
367 | free(cp); | 386 | free(cp); |
@@ -383,8 +402,10 @@ process_mux_new_session(struct ssh *ssh, u_int rid, | |||
383 | cctx->want_tty, cctx->want_x_fwd, cctx->want_agent_fwd, | 402 | cctx->want_tty, cctx->want_x_fwd, cctx->want_agent_fwd, |
384 | cctx->want_subsys, cctx->term, cmd, env_len); | 403 | cctx->want_subsys, cctx->term, cmd, env_len); |
385 | 404 | ||
386 | buffer_init(&cctx->cmd); | 405 | if ((cctx->cmd = sshbuf_new()) == NULL) |
387 | buffer_append(&cctx->cmd, cmd, strlen(cmd)); | 406 | fatal("%s: sshbuf_new", __func__); |
407 | if ((r = sshbuf_put(cctx->cmd, cmd, strlen(cmd))) != 0) | ||
408 | fatal("%s: sshbuf_put: %s", __func__, ssh_err(r)); | ||
388 | free(cmd); | 409 | free(cmd); |
389 | cmd = NULL; | 410 | cmd = NULL; |
390 | 411 | ||
@@ -399,13 +420,9 @@ process_mux_new_session(struct ssh *ssh, u_int rid, | |||
399 | free(cctx->env[j]); | 420 | free(cctx->env[j]); |
400 | free(cctx->env); | 421 | free(cctx->env); |
401 | free(cctx->term); | 422 | free(cctx->term); |
402 | buffer_free(&cctx->cmd); | 423 | sshbuf_free(cctx->cmd); |
403 | free(cctx); | 424 | free(cctx); |
404 | 425 | reply_error(reply, MUX_S_FAILURE, rid, | |
405 | /* prepare reply */ | ||
406 | buffer_put_int(r, MUX_S_FAILURE); | ||
407 | buffer_put_int(r, rid); | ||
408 | buffer_put_cstring(r, | ||
409 | "did not receive file descriptors"); | 426 | "did not receive file descriptors"); |
410 | return -1; | 427 | return -1; |
411 | } | 428 | } |
@@ -417,10 +434,8 @@ process_mux_new_session(struct ssh *ssh, u_int rid, | |||
417 | /* XXX support multiple child sessions in future */ | 434 | /* XXX support multiple child sessions in future */ |
418 | if (c->have_remote_id) { | 435 | if (c->have_remote_id) { |
419 | debug2("%s: session already open", __func__); | 436 | debug2("%s: session already open", __func__); |
420 | /* prepare reply */ | 437 | reply_error(reply, MUX_S_FAILURE, rid, |
421 | buffer_put_int(r, MUX_S_FAILURE); | 438 | "Multiple sessions not supported"); |
422 | buffer_put_int(r, rid); | ||
423 | buffer_put_cstring(r, "Multiple sessions not supported"); | ||
424 | cleanup: | 439 | cleanup: |
425 | close(new_fd[0]); | 440 | close(new_fd[0]); |
426 | close(new_fd[1]); | 441 | close(new_fd[1]); |
@@ -431,7 +446,7 @@ process_mux_new_session(struct ssh *ssh, u_int rid, | |||
431 | free(cctx->env[i]); | 446 | free(cctx->env[i]); |
432 | free(cctx->env); | 447 | free(cctx->env); |
433 | } | 448 | } |
434 | buffer_free(&cctx->cmd); | 449 | sshbuf_free(cctx->cmd); |
435 | free(cctx); | 450 | free(cctx); |
436 | return 0; | 451 | return 0; |
437 | } | 452 | } |
@@ -440,10 +455,8 @@ process_mux_new_session(struct ssh *ssh, u_int rid, | |||
440 | options.control_master == SSHCTL_MASTER_AUTO_ASK) { | 455 | options.control_master == SSHCTL_MASTER_AUTO_ASK) { |
441 | if (!ask_permission("Allow shared connection to %s? ", host)) { | 456 | if (!ask_permission("Allow shared connection to %s? ", host)) { |
442 | debug2("%s: session refused by user", __func__); | 457 | debug2("%s: session refused by user", __func__); |
443 | /* prepare reply */ | 458 | reply_error(reply, MUX_S_PERMISSION_DENIED, rid, |
444 | buffer_put_int(r, MUX_S_PERMISSION_DENIED); | 459 | "Permission denied"); |
445 | buffer_put_int(r, rid); | ||
446 | buffer_put_cstring(r, "Permission denied"); | ||
447 | goto cleanup; | 460 | goto cleanup; |
448 | } | 461 | } |
449 | } | 462 | } |
@@ -497,21 +510,24 @@ process_mux_new_session(struct ssh *ssh, u_int rid, | |||
497 | 510 | ||
498 | static int | 511 | static int |
499 | process_mux_alive_check(struct ssh *ssh, u_int rid, | 512 | process_mux_alive_check(struct ssh *ssh, u_int rid, |
500 | Channel *c, Buffer *m, Buffer *r) | 513 | Channel *c, struct sshbuf *m, struct sshbuf *reply) |
501 | { | 514 | { |
515 | int r; | ||
516 | |||
502 | debug2("%s: channel %d: alive check", __func__, c->self); | 517 | debug2("%s: channel %d: alive check", __func__, c->self); |
503 | 518 | ||
504 | /* prepare reply */ | 519 | /* prepare reply */ |
505 | buffer_put_int(r, MUX_S_ALIVE); | 520 | if ((r = sshbuf_put_u32(reply, MUX_S_ALIVE)) != 0 || |
506 | buffer_put_int(r, rid); | 521 | (r = sshbuf_put_u32(reply, rid)) != 0 || |
507 | buffer_put_int(r, (u_int)getpid()); | 522 | (r = sshbuf_put_u32(reply, (u_int)getpid())) != 0) |
523 | fatal("%s: reply: %s", __func__, ssh_err(r)); | ||
508 | 524 | ||
509 | return 0; | 525 | return 0; |
510 | } | 526 | } |
511 | 527 | ||
512 | static int | 528 | static int |
513 | process_mux_terminate(struct ssh *ssh, u_int rid, | 529 | process_mux_terminate(struct ssh *ssh, u_int rid, |
514 | Channel *c, Buffer *m, Buffer *r) | 530 | Channel *c, struct sshbuf *m, struct sshbuf *reply) |
515 | { | 531 | { |
516 | debug2("%s: channel %d: terminate request", __func__, c->self); | 532 | debug2("%s: channel %d: terminate request", __func__, c->self); |
517 | 533 | ||
@@ -520,16 +536,14 @@ process_mux_terminate(struct ssh *ssh, u_int rid, | |||
520 | if (!ask_permission("Terminate shared connection to %s? ", | 536 | if (!ask_permission("Terminate shared connection to %s? ", |
521 | host)) { | 537 | host)) { |
522 | debug2("%s: termination refused by user", __func__); | 538 | debug2("%s: termination refused by user", __func__); |
523 | buffer_put_int(r, MUX_S_PERMISSION_DENIED); | 539 | reply_error(reply, MUX_S_PERMISSION_DENIED, rid, |
524 | buffer_put_int(r, rid); | 540 | "Permission denied"); |
525 | buffer_put_cstring(r, "Permission denied"); | ||
526 | return 0; | 541 | return 0; |
527 | } | 542 | } |
528 | } | 543 | } |
529 | 544 | ||
530 | quit_pending = 1; | 545 | quit_pending = 1; |
531 | buffer_put_int(r, MUX_S_OK); | 546 | reply_ok(reply, rid); |
532 | buffer_put_int(r, rid); | ||
533 | /* XXX exit happens too soon - message never makes it to client */ | 547 | /* XXX exit happens too soon - message never makes it to client */ |
534 | return 0; | 548 | return 0; |
535 | } | 549 | } |
@@ -606,14 +620,16 @@ mux_confirm_remote_forward(struct ssh *ssh, int type, u_int32_t seq, void *ctxt) | |||
606 | char *failmsg = NULL; | 620 | char *failmsg = NULL; |
607 | struct Forward *rfwd; | 621 | struct Forward *rfwd; |
608 | Channel *c; | 622 | Channel *c; |
609 | Buffer out; | 623 | struct sshbuf *out; |
624 | int r; | ||
610 | 625 | ||
611 | if ((c = channel_by_id(ssh, fctx->cid)) == NULL) { | 626 | if ((c = channel_by_id(ssh, fctx->cid)) == NULL) { |
612 | /* no channel for reply */ | 627 | /* no channel for reply */ |
613 | error("%s: unknown channel", __func__); | 628 | error("%s: unknown channel", __func__); |
614 | return; | 629 | return; |
615 | } | 630 | } |
616 | buffer_init(&out); | 631 | if ((out = sshbuf_new()) == NULL) |
632 | fatal("%s: sshbuf_new", __func__); | ||
617 | if (fctx->fid >= options.num_remote_forwards || | 633 | if (fctx->fid >= options.num_remote_forwards || |
618 | (options.remote_forwards[fctx->fid].connect_path == NULL && | 634 | (options.remote_forwards[fctx->fid].connect_path == NULL && |
619 | options.remote_forwards[fctx->fid].connect_host == NULL)) { | 635 | options.remote_forwards[fctx->fid].connect_host == NULL)) { |
@@ -631,19 +647,21 @@ mux_confirm_remote_forward(struct ssh *ssh, int type, u_int32_t seq, void *ctxt) | |||
631 | debug("Allocated port %u for mux remote forward" | 647 | debug("Allocated port %u for mux remote forward" |
632 | " to %s:%d", rfwd->allocated_port, | 648 | " to %s:%d", rfwd->allocated_port, |
633 | rfwd->connect_host, rfwd->connect_port); | 649 | rfwd->connect_host, rfwd->connect_port); |
634 | buffer_put_int(&out, MUX_S_REMOTE_PORT); | 650 | if ((r = sshbuf_put_u32(out, |
635 | buffer_put_int(&out, fctx->rid); | 651 | MUX_S_REMOTE_PORT)) != 0 || |
636 | buffer_put_int(&out, rfwd->allocated_port); | 652 | (r = sshbuf_put_u32(out, fctx->rid)) != 0 || |
637 | channel_update_permitted_opens(ssh, rfwd->handle, | 653 | (r = sshbuf_put_u32(out, |
654 | rfwd->allocated_port)) != 0) | ||
655 | fatal("%s: reply: %s", __func__, ssh_err(r)); | ||
656 | channel_update_permission(ssh, rfwd->handle, | ||
638 | rfwd->allocated_port); | 657 | rfwd->allocated_port); |
639 | } else { | 658 | } else { |
640 | buffer_put_int(&out, MUX_S_OK); | 659 | reply_ok(out, fctx->rid); |
641 | buffer_put_int(&out, fctx->rid); | ||
642 | } | 660 | } |
643 | goto out; | 661 | goto out; |
644 | } else { | 662 | } else { |
645 | if (rfwd->listen_port == 0) | 663 | if (rfwd->listen_port == 0) |
646 | channel_update_permitted_opens(ssh, rfwd->handle, -1); | 664 | channel_update_permission(ssh, rfwd->handle, -1); |
647 | if (rfwd->listen_path != NULL) | 665 | if (rfwd->listen_path != NULL) |
648 | xasprintf(&failmsg, "remote port forwarding failed for " | 666 | xasprintf(&failmsg, "remote port forwarding failed for " |
649 | "listen path %s", rfwd->listen_path); | 667 | "listen path %s", rfwd->listen_path); |
@@ -664,13 +682,12 @@ mux_confirm_remote_forward(struct ssh *ssh, int type, u_int32_t seq, void *ctxt) | |||
664 | } | 682 | } |
665 | fail: | 683 | fail: |
666 | error("%s: %s", __func__, failmsg); | 684 | error("%s: %s", __func__, failmsg); |
667 | buffer_put_int(&out, MUX_S_FAILURE); | 685 | reply_error(out, MUX_S_FAILURE, fctx->rid, failmsg); |
668 | buffer_put_int(&out, fctx->rid); | ||
669 | buffer_put_cstring(&out, failmsg); | ||
670 | free(failmsg); | 686 | free(failmsg); |
671 | out: | 687 | out: |
672 | buffer_put_string(c->output, buffer_ptr(&out), buffer_len(&out)); | 688 | if ((r = sshbuf_put_stringb(c->output, out)) != 0) |
673 | buffer_free(&out); | 689 | fatal("%s: sshbuf_put_stringb: %s", __func__, ssh_err(r)); |
690 | sshbuf_free(out); | ||
674 | if (c->mux_pause <= 0) | 691 | if (c->mux_pause <= 0) |
675 | fatal("%s: mux_pause %d", __func__, c->mux_pause); | 692 | fatal("%s: mux_pause %d", __func__, c->mux_pause); |
676 | c->mux_pause = 0; /* start processing messages again */ | 693 | c->mux_pause = 0; /* start processing messages again */ |
@@ -678,23 +695,23 @@ mux_confirm_remote_forward(struct ssh *ssh, int type, u_int32_t seq, void *ctxt) | |||
678 | 695 | ||
679 | static int | 696 | static int |
680 | process_mux_open_fwd(struct ssh *ssh, u_int rid, | 697 | process_mux_open_fwd(struct ssh *ssh, u_int rid, |
681 | Channel *c, Buffer *m, Buffer *r) | 698 | Channel *c, struct sshbuf *m, struct sshbuf *reply) |
682 | { | 699 | { |
683 | struct Forward fwd; | 700 | struct Forward fwd; |
684 | char *fwd_desc = NULL; | 701 | char *fwd_desc = NULL; |
685 | char *listen_addr, *connect_addr; | 702 | char *listen_addr, *connect_addr; |
686 | u_int ftype; | 703 | u_int ftype; |
687 | u_int lport, cport; | 704 | u_int lport, cport; |
688 | int i, ret = 0, freefwd = 1; | 705 | int r, i, ret = 0, freefwd = 1; |
689 | 706 | ||
690 | memset(&fwd, 0, sizeof(fwd)); | 707 | memset(&fwd, 0, sizeof(fwd)); |
691 | 708 | ||
692 | /* XXX - lport/cport check redundant */ | 709 | /* XXX - lport/cport check redundant */ |
693 | if (buffer_get_int_ret(&ftype, m) != 0 || | 710 | if ((r = sshbuf_get_u32(m, &ftype)) != 0 || |
694 | (listen_addr = buffer_get_string_ret(m, NULL)) == NULL || | 711 | (r = sshbuf_get_cstring(m, &listen_addr, NULL)) != 0 || |
695 | buffer_get_int_ret(&lport, m) != 0 || | 712 | (r = sshbuf_get_u32(m, &lport)) != 0 || |
696 | (connect_addr = buffer_get_string_ret(m, NULL)) == NULL || | 713 | (r = sshbuf_get_cstring(m, &connect_addr, NULL)) != 0 || |
697 | buffer_get_int_ret(&cport, m) != 0 || | 714 | (r = sshbuf_get_u32(m, &cport)) != 0 || |
698 | (lport != (u_int)PORT_STREAMLOCAL && lport > 65535) || | 715 | (lport != (u_int)PORT_STREAMLOCAL && lport > 65535) || |
699 | (cport != (u_int)PORT_STREAMLOCAL && cport > 65535)) { | 716 | (cport != (u_int)PORT_STREAMLOCAL && cport > 65535)) { |
700 | error("%s: malformed message", __func__); | 717 | error("%s: malformed message", __func__); |
@@ -731,9 +748,8 @@ process_mux_open_fwd(struct ssh *ssh, u_int rid, | |||
731 | invalid: | 748 | invalid: |
732 | free(listen_addr); | 749 | free(listen_addr); |
733 | free(connect_addr); | 750 | free(connect_addr); |
734 | buffer_put_int(r, MUX_S_FAILURE); | 751 | reply_error(reply, MUX_S_FAILURE, rid, |
735 | buffer_put_int(r, rid); | 752 | "Invalid forwarding request"); |
736 | buffer_put_cstring(r, "Invalid forwarding request"); | ||
737 | return 0; | 753 | return 0; |
738 | } | 754 | } |
739 | if (ftype == MUX_FWD_DYNAMIC && fwd.listen_path) { | 755 | if (ftype == MUX_FWD_DYNAMIC && fwd.listen_path) { |
@@ -770,26 +786,25 @@ process_mux_open_fwd(struct ssh *ssh, u_int rid, | |||
770 | exists: | 786 | exists: |
771 | debug2("%s: found existing forwarding", | 787 | debug2("%s: found existing forwarding", |
772 | __func__); | 788 | __func__); |
773 | buffer_put_int(r, MUX_S_OK); | 789 | reply_ok(reply, rid); |
774 | buffer_put_int(r, rid); | ||
775 | goto out; | 790 | goto out; |
776 | } | 791 | } |
777 | } | 792 | } |
778 | break; | 793 | break; |
779 | case MUX_FWD_REMOTE: | 794 | case MUX_FWD_REMOTE: |
780 | for (i = 0; i < options.num_remote_forwards; i++) { | 795 | for (i = 0; i < options.num_remote_forwards; i++) { |
781 | if (compare_forward(&fwd, | 796 | if (!compare_forward(&fwd, options.remote_forwards + i)) |
782 | options.remote_forwards + i)) { | 797 | continue; |
783 | if (fwd.listen_port != 0) | 798 | if (fwd.listen_port != 0) |
784 | goto exists; | 799 | goto exists; |
785 | debug2("%s: found allocated port", | 800 | debug2("%s: found allocated port", __func__); |
786 | __func__); | 801 | if ((r = sshbuf_put_u32(reply, |
787 | buffer_put_int(r, MUX_S_REMOTE_PORT); | 802 | MUX_S_REMOTE_PORT)) != 0 || |
788 | buffer_put_int(r, rid); | 803 | (r = sshbuf_put_u32(reply, rid)) != 0 || |
789 | buffer_put_int(r, | 804 | (r = sshbuf_put_u32(reply, |
790 | options.remote_forwards[i].allocated_port); | 805 | options.remote_forwards[i].allocated_port)) != 0) |
791 | goto out; | 806 | fatal("%s: reply: %s", __func__, ssh_err(r)); |
792 | } | 807 | goto out; |
793 | } | 808 | } |
794 | break; | 809 | break; |
795 | } | 810 | } |
@@ -798,9 +813,8 @@ process_mux_open_fwd(struct ssh *ssh, u_int rid, | |||
798 | options.control_master == SSHCTL_MASTER_AUTO_ASK) { | 813 | options.control_master == SSHCTL_MASTER_AUTO_ASK) { |
799 | if (!ask_permission("Open %s on %s?", fwd_desc, host)) { | 814 | if (!ask_permission("Open %s on %s?", fwd_desc, host)) { |
800 | debug2("%s: forwarding refused by user", __func__); | 815 | debug2("%s: forwarding refused by user", __func__); |
801 | buffer_put_int(r, MUX_S_PERMISSION_DENIED); | 816 | reply_error(reply, MUX_S_PERMISSION_DENIED, rid, |
802 | buffer_put_int(r, rid); | 817 | "Permission denied"); |
803 | buffer_put_cstring(r, "Permission denied"); | ||
804 | goto out; | 818 | goto out; |
805 | } | 819 | } |
806 | } | 820 | } |
@@ -810,9 +824,8 @@ process_mux_open_fwd(struct ssh *ssh, u_int rid, | |||
810 | &options.fwd_opts)) { | 824 | &options.fwd_opts)) { |
811 | fail: | 825 | fail: |
812 | logit("slave-requested %s failed", fwd_desc); | 826 | logit("slave-requested %s failed", fwd_desc); |
813 | buffer_put_int(r, MUX_S_FAILURE); | 827 | reply_error(reply, MUX_S_FAILURE, rid, |
814 | buffer_put_int(r, rid); | 828 | "Port forwarding failed"); |
815 | buffer_put_cstring(r, "Port forwarding failed"); | ||
816 | goto out; | 829 | goto out; |
817 | } | 830 | } |
818 | add_local_forward(&options, &fwd); | 831 | add_local_forward(&options, &fwd); |
@@ -835,8 +848,7 @@ process_mux_open_fwd(struct ssh *ssh, u_int rid, | |||
835 | /* delayed reply in mux_confirm_remote_forward */ | 848 | /* delayed reply in mux_confirm_remote_forward */ |
836 | goto out; | 849 | goto out; |
837 | } | 850 | } |
838 | buffer_put_int(r, MUX_S_OK); | 851 | reply_ok(reply, rid); |
839 | buffer_put_int(r, rid); | ||
840 | out: | 852 | out: |
841 | free(fwd_desc); | 853 | free(fwd_desc); |
842 | if (freefwd) { | 854 | if (freefwd) { |
@@ -850,23 +862,23 @@ process_mux_open_fwd(struct ssh *ssh, u_int rid, | |||
850 | 862 | ||
851 | static int | 863 | static int |
852 | process_mux_close_fwd(struct ssh *ssh, u_int rid, | 864 | process_mux_close_fwd(struct ssh *ssh, u_int rid, |
853 | Channel *c, Buffer *m, Buffer *r) | 865 | Channel *c, struct sshbuf *m, struct sshbuf *reply) |
854 | { | 866 | { |
855 | struct Forward fwd, *found_fwd; | 867 | struct Forward fwd, *found_fwd; |
856 | char *fwd_desc = NULL; | 868 | char *fwd_desc = NULL; |
857 | const char *error_reason = NULL; | 869 | const char *error_reason = NULL; |
858 | char *listen_addr = NULL, *connect_addr = NULL; | 870 | char *listen_addr = NULL, *connect_addr = NULL; |
859 | u_int ftype; | 871 | u_int ftype; |
860 | int i, ret = 0; | 872 | int r, i, ret = 0; |
861 | u_int lport, cport; | 873 | u_int lport, cport; |
862 | 874 | ||
863 | memset(&fwd, 0, sizeof(fwd)); | 875 | memset(&fwd, 0, sizeof(fwd)); |
864 | 876 | ||
865 | if (buffer_get_int_ret(&ftype, m) != 0 || | 877 | if ((r = sshbuf_get_u32(m, &ftype)) != 0 || |
866 | (listen_addr = buffer_get_string_ret(m, NULL)) == NULL || | 878 | (r = sshbuf_get_cstring(m, &listen_addr, NULL)) != 0 || |
867 | buffer_get_int_ret(&lport, m) != 0 || | 879 | (r = sshbuf_get_u32(m, &lport)) != 0 || |
868 | (connect_addr = buffer_get_string_ret(m, NULL)) == NULL || | 880 | (r = sshbuf_get_cstring(m, &connect_addr, NULL)) != 0 || |
869 | buffer_get_int_ret(&cport, m) != 0 || | 881 | (r = sshbuf_get_u32(m, &cport)) != 0 || |
870 | (lport != (u_int)PORT_STREAMLOCAL && lport > 65535) || | 882 | (lport != (u_int)PORT_STREAMLOCAL && lport > 65535) || |
871 | (cport != (u_int)PORT_STREAMLOCAL && cport > 65535)) { | 883 | (cport != (u_int)PORT_STREAMLOCAL && cport > 65535)) { |
872 | error("%s: malformed message", __func__); | 884 | error("%s: malformed message", __func__); |
@@ -940,10 +952,10 @@ process_mux_close_fwd(struct ssh *ssh, u_int rid, | |||
940 | error_reason = "port not found"; | 952 | error_reason = "port not found"; |
941 | } | 953 | } |
942 | 954 | ||
943 | if (error_reason == NULL) { | 955 | if (error_reason != NULL) |
944 | buffer_put_int(r, MUX_S_OK); | 956 | reply_error(reply, MUX_S_FAILURE, rid, error_reason); |
945 | buffer_put_int(r, rid); | 957 | else { |
946 | 958 | reply_ok(reply, rid); | |
947 | free(found_fwd->listen_host); | 959 | free(found_fwd->listen_host); |
948 | free(found_fwd->listen_path); | 960 | free(found_fwd->listen_path); |
949 | free(found_fwd->connect_host); | 961 | free(found_fwd->connect_host); |
@@ -951,10 +963,6 @@ process_mux_close_fwd(struct ssh *ssh, u_int rid, | |||
951 | found_fwd->listen_host = found_fwd->connect_host = NULL; | 963 | found_fwd->listen_host = found_fwd->connect_host = NULL; |
952 | found_fwd->listen_path = found_fwd->connect_path = NULL; | 964 | found_fwd->listen_path = found_fwd->connect_path = NULL; |
953 | found_fwd->listen_port = found_fwd->connect_port = 0; | 965 | found_fwd->listen_port = found_fwd->connect_port = 0; |
954 | } else { | ||
955 | buffer_put_int(r, MUX_S_FAILURE); | ||
956 | buffer_put_int(r, rid); | ||
957 | buffer_put_cstring(r, error_reason); | ||
958 | } | 966 | } |
959 | out: | 967 | out: |
960 | free(fwd_desc); | 968 | free(fwd_desc); |
@@ -966,24 +974,21 @@ process_mux_close_fwd(struct ssh *ssh, u_int rid, | |||
966 | 974 | ||
967 | static int | 975 | static int |
968 | process_mux_stdio_fwd(struct ssh *ssh, u_int rid, | 976 | process_mux_stdio_fwd(struct ssh *ssh, u_int rid, |
969 | Channel *c, Buffer *m, Buffer *r) | 977 | Channel *c, struct sshbuf *m, struct sshbuf *reply) |
970 | { | 978 | { |
971 | Channel *nc; | 979 | Channel *nc; |
972 | char *reserved, *chost; | 980 | char *chost = NULL; |
973 | u_int cport, i, j; | 981 | u_int cport, i, j; |
974 | int new_fd[2]; | 982 | int r, new_fd[2]; |
975 | struct mux_stdio_confirm_ctx *cctx; | 983 | struct mux_stdio_confirm_ctx *cctx; |
976 | 984 | ||
977 | chost = reserved = NULL; | 985 | if ((r = sshbuf_skip_string(m)) != 0 || /* reserved */ |
978 | if ((reserved = buffer_get_string_ret(m, NULL)) == NULL || | 986 | (r = sshbuf_get_cstring(m, &chost, NULL)) != 0 || |
979 | (chost = buffer_get_string_ret(m, NULL)) == NULL || | 987 | (r = sshbuf_get_u32(m, &cport)) != 0) { |
980 | buffer_get_int_ret(&cport, m) != 0) { | ||
981 | free(reserved); | ||
982 | free(chost); | 988 | free(chost); |
983 | error("%s: malformed message", __func__); | 989 | error("%s: malformed message", __func__); |
984 | return -1; | 990 | return -1; |
985 | } | 991 | } |
986 | free(reserved); | ||
987 | 992 | ||
988 | debug2("%s: channel %d: request stdio fwd to %s:%u", | 993 | debug2("%s: channel %d: request stdio fwd to %s:%u", |
989 | __func__, c->self, chost, cport); | 994 | __func__, c->self, chost, cport); |
@@ -998,9 +1003,7 @@ process_mux_stdio_fwd(struct ssh *ssh, u_int rid, | |||
998 | free(chost); | 1003 | free(chost); |
999 | 1004 | ||
1000 | /* prepare reply */ | 1005 | /* prepare reply */ |
1001 | buffer_put_int(r, MUX_S_FAILURE); | 1006 | reply_error(reply, MUX_S_FAILURE, rid, |
1002 | buffer_put_int(r, rid); | ||
1003 | buffer_put_cstring(r, | ||
1004 | "did not receive file descriptors"); | 1007 | "did not receive file descriptors"); |
1005 | return -1; | 1008 | return -1; |
1006 | } | 1009 | } |
@@ -1012,10 +1015,8 @@ process_mux_stdio_fwd(struct ssh *ssh, u_int rid, | |||
1012 | /* XXX support multiple child sessions in future */ | 1015 | /* XXX support multiple child sessions in future */ |
1013 | if (c->have_remote_id) { | 1016 | if (c->have_remote_id) { |
1014 | debug2("%s: session already open", __func__); | 1017 | debug2("%s: session already open", __func__); |
1015 | /* prepare reply */ | 1018 | reply_error(reply, MUX_S_FAILURE, rid, |
1016 | buffer_put_int(r, MUX_S_FAILURE); | 1019 | "Multiple sessions not supported"); |
1017 | buffer_put_int(r, rid); | ||
1018 | buffer_put_cstring(r, "Multiple sessions not supported"); | ||
1019 | cleanup: | 1020 | cleanup: |
1020 | close(new_fd[0]); | 1021 | close(new_fd[0]); |
1021 | close(new_fd[1]); | 1022 | close(new_fd[1]); |
@@ -1028,10 +1029,8 @@ process_mux_stdio_fwd(struct ssh *ssh, u_int rid, | |||
1028 | if (!ask_permission("Allow forward to %s:%u? ", | 1029 | if (!ask_permission("Allow forward to %s:%u? ", |
1029 | chost, cport)) { | 1030 | chost, cport)) { |
1030 | debug2("%s: stdio fwd refused by user", __func__); | 1031 | debug2("%s: stdio fwd refused by user", __func__); |
1031 | /* prepare reply */ | 1032 | reply_error(reply, MUX_S_PERMISSION_DENIED, rid, |
1032 | buffer_put_int(r, MUX_S_PERMISSION_DENIED); | 1033 | "Permission denied"); |
1033 | buffer_put_int(r, rid); | ||
1034 | buffer_put_cstring(r, "Permission denied"); | ||
1035 | goto cleanup; | 1034 | goto cleanup; |
1036 | } | 1035 | } |
1037 | } | 1036 | } |
@@ -1043,6 +1042,7 @@ process_mux_stdio_fwd(struct ssh *ssh, u_int rid, | |||
1043 | set_nonblock(new_fd[1]); | 1042 | set_nonblock(new_fd[1]); |
1044 | 1043 | ||
1045 | nc = channel_connect_stdio_fwd(ssh, chost, cport, new_fd[0], new_fd[1]); | 1044 | nc = channel_connect_stdio_fwd(ssh, chost, cport, new_fd[0], new_fd[1]); |
1045 | free(chost); | ||
1046 | 1046 | ||
1047 | nc->ctl_chan = c->self; /* link session -> control channel */ | 1047 | nc->ctl_chan = c->self; /* link session -> control channel */ |
1048 | c->remote_id = nc->self; /* link control -> session channel */ | 1048 | c->remote_id = nc->self; /* link control -> session channel */ |
@@ -1069,7 +1069,8 @@ mux_stdio_confirm(struct ssh *ssh, int id, int success, void *arg) | |||
1069 | { | 1069 | { |
1070 | struct mux_stdio_confirm_ctx *cctx = arg; | 1070 | struct mux_stdio_confirm_ctx *cctx = arg; |
1071 | Channel *c, *cc; | 1071 | Channel *c, *cc; |
1072 | Buffer reply; | 1072 | struct sshbuf *reply; |
1073 | int r; | ||
1073 | 1074 | ||
1074 | if (cctx == NULL) | 1075 | if (cctx == NULL) |
1075 | fatal("%s: cctx == NULL", __func__); | 1076 | fatal("%s: cctx == NULL", __func__); |
@@ -1078,28 +1079,29 @@ mux_stdio_confirm(struct ssh *ssh, int id, int success, void *arg) | |||
1078 | if ((cc = channel_by_id(ssh, c->ctl_chan)) == NULL) | 1079 | if ((cc = channel_by_id(ssh, c->ctl_chan)) == NULL) |
1079 | fatal("%s: channel %d lacks control channel %d", __func__, | 1080 | fatal("%s: channel %d lacks control channel %d", __func__, |
1080 | id, c->ctl_chan); | 1081 | id, c->ctl_chan); |
1082 | if ((reply = sshbuf_new()) == NULL) | ||
1083 | fatal("%s: sshbuf_new", __func__); | ||
1081 | 1084 | ||
1082 | if (!success) { | 1085 | if (!success) { |
1083 | debug3("%s: sending failure reply", __func__); | 1086 | debug3("%s: sending failure reply", __func__); |
1087 | reply_error(reply, MUX_S_FAILURE, cctx->rid, | ||
1088 | "Session open refused by peer"); | ||
1084 | /* prepare reply */ | 1089 | /* prepare reply */ |
1085 | buffer_init(&reply); | ||
1086 | buffer_put_int(&reply, MUX_S_FAILURE); | ||
1087 | buffer_put_int(&reply, cctx->rid); | ||
1088 | buffer_put_cstring(&reply, "Session open refused by peer"); | ||
1089 | goto done; | 1090 | goto done; |
1090 | } | 1091 | } |
1091 | 1092 | ||
1092 | debug3("%s: sending success reply", __func__); | 1093 | debug3("%s: sending success reply", __func__); |
1093 | /* prepare reply */ | 1094 | /* prepare reply */ |
1094 | buffer_init(&reply); | 1095 | if ((r = sshbuf_put_u32(reply, MUX_S_SESSION_OPENED)) != 0 || |
1095 | buffer_put_int(&reply, MUX_S_SESSION_OPENED); | 1096 | (r = sshbuf_put_u32(reply, cctx->rid)) != 0 || |
1096 | buffer_put_int(&reply, cctx->rid); | 1097 | (r = sshbuf_put_u32(reply, c->self)) != 0) |
1097 | buffer_put_int(&reply, c->self); | 1098 | fatal("%s: reply: %s", __func__, ssh_err(r)); |
1098 | 1099 | ||
1099 | done: | 1100 | done: |
1100 | /* Send reply */ | 1101 | /* Send reply */ |
1101 | buffer_put_string(cc->output, buffer_ptr(&reply), buffer_len(&reply)); | 1102 | if ((r = sshbuf_put_stringb(cc->output, reply)) != 0) |
1102 | buffer_free(&reply); | 1103 | fatal("%s: sshbuf_put_stringb: %s", __func__, ssh_err(r)); |
1104 | sshbuf_free(reply); | ||
1103 | 1105 | ||
1104 | if (cc->mux_pause <= 0) | 1106 | if (cc->mux_pause <= 0) |
1105 | fatal("%s: mux_pause %d", __func__, cc->mux_pause); | 1107 | fatal("%s: mux_pause %d", __func__, cc->mux_pause); |
@@ -1110,7 +1112,7 @@ mux_stdio_confirm(struct ssh *ssh, int id, int success, void *arg) | |||
1110 | 1112 | ||
1111 | static int | 1113 | static int |
1112 | process_mux_stop_listening(struct ssh *ssh, u_int rid, | 1114 | process_mux_stop_listening(struct ssh *ssh, u_int rid, |
1113 | Channel *c, Buffer *m, Buffer *r) | 1115 | Channel *c, struct sshbuf *m, struct sshbuf *reply) |
1114 | { | 1116 | { |
1115 | debug("%s: channel %d: stop listening", __func__, c->self); | 1117 | debug("%s: channel %d: stop listening", __func__, c->self); |
1116 | 1118 | ||
@@ -1119,9 +1121,8 @@ process_mux_stop_listening(struct ssh *ssh, u_int rid, | |||
1119 | if (!ask_permission("Disable further multiplexing on shared " | 1121 | if (!ask_permission("Disable further multiplexing on shared " |
1120 | "connection to %s? ", host)) { | 1122 | "connection to %s? ", host)) { |
1121 | debug2("%s: stop listen refused by user", __func__); | 1123 | debug2("%s: stop listen refused by user", __func__); |
1122 | buffer_put_int(r, MUX_S_PERMISSION_DENIED); | 1124 | reply_error(reply, MUX_S_PERMISSION_DENIED, rid, |
1123 | buffer_put_int(r, rid); | 1125 | "Permission denied"); |
1124 | buffer_put_cstring(r, "Permission denied"); | ||
1125 | return 0; | 1126 | return 0; |
1126 | } | 1127 | } |
1127 | } | 1128 | } |
@@ -1135,22 +1136,22 @@ process_mux_stop_listening(struct ssh *ssh, u_int rid, | |||
1135 | muxserver_sock = -1; | 1136 | muxserver_sock = -1; |
1136 | } | 1137 | } |
1137 | 1138 | ||
1138 | /* prepare reply */ | 1139 | reply_ok(reply, rid); |
1139 | buffer_put_int(r, MUX_S_OK); | ||
1140 | buffer_put_int(r, rid); | ||
1141 | |||
1142 | return 0; | 1140 | return 0; |
1143 | } | 1141 | } |
1144 | 1142 | ||
1145 | static int | 1143 | static int |
1146 | process_mux_proxy(struct ssh *ssh, u_int rid, | 1144 | process_mux_proxy(struct ssh *ssh, u_int rid, |
1147 | Channel *c, Buffer *m, Buffer *r) | 1145 | Channel *c, struct sshbuf *m, struct sshbuf *reply) |
1148 | { | 1146 | { |
1147 | int r; | ||
1148 | |||
1149 | debug("%s: channel %d: proxy request", __func__, c->self); | 1149 | debug("%s: channel %d: proxy request", __func__, c->self); |
1150 | 1150 | ||
1151 | c->mux_rcb = channel_proxy_downstream; | 1151 | c->mux_rcb = channel_proxy_downstream; |
1152 | buffer_put_int(r, MUX_S_PROXY); | 1152 | if ((r = sshbuf_put_u32(reply, MUX_S_PROXY)) != 0 || |
1153 | buffer_put_int(r, rid); | 1153 | (r = sshbuf_put_u32(reply, rid)) != 0) |
1154 | fatal("%s: reply: %s", __func__, ssh_err(r)); | ||
1154 | 1155 | ||
1155 | return 0; | 1156 | return 0; |
1156 | } | 1157 | } |
@@ -1160,10 +1161,12 @@ static int | |||
1160 | mux_master_read_cb(struct ssh *ssh, Channel *c) | 1161 | mux_master_read_cb(struct ssh *ssh, Channel *c) |
1161 | { | 1162 | { |
1162 | struct mux_master_state *state = (struct mux_master_state *)c->mux_ctx; | 1163 | struct mux_master_state *state = (struct mux_master_state *)c->mux_ctx; |
1163 | Buffer in, out; | 1164 | struct sshbuf *in = NULL, *out = NULL; |
1164 | const u_char *ptr; | 1165 | u_int type, rid, i; |
1165 | u_int type, rid, have, i; | 1166 | int r, ret = -1; |
1166 | int ret = -1; | 1167 | |
1168 | if ((out = sshbuf_new()) == NULL) | ||
1169 | fatal("%s: sshbuf_new", __func__); | ||
1167 | 1170 | ||
1168 | /* Setup ctx and */ | 1171 | /* Setup ctx and */ |
1169 | if (c->mux_ctx == NULL) { | 1172 | if (c->mux_ctx == NULL) { |
@@ -1173,32 +1176,29 @@ mux_master_read_cb(struct ssh *ssh, Channel *c) | |||
1173 | mux_master_control_cleanup_cb, 0); | 1176 | mux_master_control_cleanup_cb, 0); |
1174 | 1177 | ||
1175 | /* Send hello */ | 1178 | /* Send hello */ |
1176 | buffer_init(&out); | 1179 | if ((r = sshbuf_put_u32(out, MUX_MSG_HELLO)) != 0 || |
1177 | buffer_put_int(&out, MUX_MSG_HELLO); | 1180 | (r = sshbuf_put_u32(out, SSHMUX_VER)) != 0) |
1178 | buffer_put_int(&out, SSHMUX_VER); | 1181 | fatal("%s: reply: %s", __func__, ssh_err(r)); |
1179 | /* no extensions */ | 1182 | /* no extensions */ |
1180 | buffer_put_string(c->output, buffer_ptr(&out), | 1183 | if ((r = sshbuf_put_stringb(c->output, out)) != 0) |
1181 | buffer_len(&out)); | 1184 | fatal("%s: sshbuf_put_stringb: %s", |
1182 | buffer_free(&out); | 1185 | __func__, ssh_err(r)); |
1183 | debug3("%s: channel %d: hello sent", __func__, c->self); | 1186 | debug3("%s: channel %d: hello sent", __func__, c->self); |
1184 | return 0; | 1187 | ret = 0; |
1188 | goto out; | ||
1185 | } | 1189 | } |
1186 | 1190 | ||
1187 | buffer_init(&in); | ||
1188 | buffer_init(&out); | ||
1189 | |||
1190 | /* Channel code ensures that we receive whole packets */ | 1191 | /* Channel code ensures that we receive whole packets */ |
1191 | if ((ptr = buffer_get_string_ptr_ret(c->input, &have)) == NULL) { | 1192 | if ((r = sshbuf_froms(c->input, &in)) != 0) { |
1192 | malf: | 1193 | malf: |
1193 | error("%s: malformed message", __func__); | 1194 | error("%s: malformed message", __func__); |
1194 | goto out; | 1195 | goto out; |
1195 | } | 1196 | } |
1196 | buffer_append(&in, ptr, have); | ||
1197 | 1197 | ||
1198 | if (buffer_get_int_ret(&type, &in) != 0) | 1198 | if ((r = sshbuf_get_u32(in, &type)) != 0) |
1199 | goto malf; | 1199 | goto malf; |
1200 | debug3("%s: channel %d packet type 0x%08x len %u", | 1200 | debug3("%s: channel %d packet type 0x%08x len %zu", |
1201 | __func__, c->self, type, buffer_len(&in)); | 1201 | __func__, c->self, type, sshbuf_len(in)); |
1202 | 1202 | ||
1203 | if (type == MUX_MSG_HELLO) | 1203 | if (type == MUX_MSG_HELLO) |
1204 | rid = 0; | 1204 | rid = 0; |
@@ -1208,40 +1208,40 @@ mux_master_read_cb(struct ssh *ssh, Channel *c) | |||
1208 | "received 0x%08x", __func__, MUX_MSG_HELLO, type); | 1208 | "received 0x%08x", __func__, MUX_MSG_HELLO, type); |
1209 | goto out; | 1209 | goto out; |
1210 | } | 1210 | } |
1211 | if (buffer_get_int_ret(&rid, &in) != 0) | 1211 | if ((r = sshbuf_get_u32(in, &rid)) != 0) |
1212 | goto malf; | 1212 | goto malf; |
1213 | } | 1213 | } |
1214 | 1214 | ||
1215 | for (i = 0; mux_master_handlers[i].handler != NULL; i++) { | 1215 | for (i = 0; mux_master_handlers[i].handler != NULL; i++) { |
1216 | if (type == mux_master_handlers[i].type) { | 1216 | if (type == mux_master_handlers[i].type) { |
1217 | ret = mux_master_handlers[i].handler(ssh, rid, | 1217 | ret = mux_master_handlers[i].handler(ssh, rid, |
1218 | c, &in, &out); | 1218 | c, in, out); |
1219 | break; | 1219 | break; |
1220 | } | 1220 | } |
1221 | } | 1221 | } |
1222 | if (mux_master_handlers[i].handler == NULL) { | 1222 | if (mux_master_handlers[i].handler == NULL) { |
1223 | error("%s: unsupported mux message 0x%08x", __func__, type); | 1223 | error("%s: unsupported mux message 0x%08x", __func__, type); |
1224 | buffer_put_int(&out, MUX_S_FAILURE); | 1224 | reply_error(out, MUX_S_FAILURE, rid, "unsupported request"); |
1225 | buffer_put_int(&out, rid); | ||
1226 | buffer_put_cstring(&out, "unsupported request"); | ||
1227 | ret = 0; | 1225 | ret = 0; |
1228 | } | 1226 | } |
1229 | /* Enqueue reply packet */ | 1227 | /* Enqueue reply packet */ |
1230 | if (buffer_len(&out) != 0) { | 1228 | if (sshbuf_len(out) != 0) { |
1231 | buffer_put_string(c->output, buffer_ptr(&out), | 1229 | if ((r = sshbuf_put_stringb(c->output, out)) != 0) |
1232 | buffer_len(&out)); | 1230 | fatal("%s: sshbuf_put_stringb: %s", |
1231 | __func__, ssh_err(r)); | ||
1233 | } | 1232 | } |
1234 | out: | 1233 | out: |
1235 | buffer_free(&in); | 1234 | sshbuf_free(in); |
1236 | buffer_free(&out); | 1235 | sshbuf_free(out); |
1237 | return ret; | 1236 | return ret; |
1238 | } | 1237 | } |
1239 | 1238 | ||
1240 | void | 1239 | void |
1241 | mux_exit_message(struct ssh *ssh, Channel *c, int exitval) | 1240 | mux_exit_message(struct ssh *ssh, Channel *c, int exitval) |
1242 | { | 1241 | { |
1243 | Buffer m; | 1242 | struct sshbuf *m; |
1244 | Channel *mux_chan; | 1243 | Channel *mux_chan; |
1244 | int r; | ||
1245 | 1245 | ||
1246 | debug3("%s: channel %d: exit message, exitval %d", __func__, c->self, | 1246 | debug3("%s: channel %d: exit message, exitval %d", __func__, c->self, |
1247 | exitval); | 1247 | exitval); |
@@ -1251,20 +1251,22 @@ mux_exit_message(struct ssh *ssh, Channel *c, int exitval) | |||
1251 | __func__, c->self, c->ctl_chan); | 1251 | __func__, c->self, c->ctl_chan); |
1252 | 1252 | ||
1253 | /* Append exit message packet to control socket output queue */ | 1253 | /* Append exit message packet to control socket output queue */ |
1254 | buffer_init(&m); | 1254 | if ((m = sshbuf_new()) == NULL) |
1255 | buffer_put_int(&m, MUX_S_EXIT_MESSAGE); | 1255 | fatal("%s: sshbuf_new", __func__); |
1256 | buffer_put_int(&m, c->self); | 1256 | if ((r = sshbuf_put_u32(m, MUX_S_EXIT_MESSAGE)) != 0 || |
1257 | buffer_put_int(&m, exitval); | 1257 | (r = sshbuf_put_u32(m, c->self)) != 0 || |
1258 | 1258 | (r = sshbuf_put_u32(m, exitval)) != 0 || | |
1259 | buffer_put_string(mux_chan->output, buffer_ptr(&m), buffer_len(&m)); | 1259 | (r = sshbuf_put_stringb(mux_chan->output, m)) != 0) |
1260 | buffer_free(&m); | 1260 | fatal("%s: reply: %s", __func__, ssh_err(r)); |
1261 | sshbuf_free(m); | ||
1261 | } | 1262 | } |
1262 | 1263 | ||
1263 | void | 1264 | void |
1264 | mux_tty_alloc_failed(struct ssh *ssh, Channel *c) | 1265 | mux_tty_alloc_failed(struct ssh *ssh, Channel *c) |
1265 | { | 1266 | { |
1266 | Buffer m; | 1267 | struct sshbuf *m; |
1267 | Channel *mux_chan; | 1268 | Channel *mux_chan; |
1269 | int r; | ||
1268 | 1270 | ||
1269 | debug3("%s: channel %d: TTY alloc failed", __func__, c->self); | 1271 | debug3("%s: channel %d: TTY alloc failed", __func__, c->self); |
1270 | 1272 | ||
@@ -1273,12 +1275,13 @@ mux_tty_alloc_failed(struct ssh *ssh, Channel *c) | |||
1273 | __func__, c->self, c->ctl_chan); | 1275 | __func__, c->self, c->ctl_chan); |
1274 | 1276 | ||
1275 | /* Append exit message packet to control socket output queue */ | 1277 | /* Append exit message packet to control socket output queue */ |
1276 | buffer_init(&m); | 1278 | if ((m = sshbuf_new()) == NULL) |
1277 | buffer_put_int(&m, MUX_S_TTY_ALLOC_FAIL); | 1279 | fatal("%s: sshbuf_new", __func__); |
1278 | buffer_put_int(&m, c->self); | 1280 | if ((r = sshbuf_put_u32(m, MUX_S_TTY_ALLOC_FAIL)) != 0 || |
1279 | 1281 | (r = sshbuf_put_u32(m, c->self)) != 0 || | |
1280 | buffer_put_string(mux_chan->output, buffer_ptr(&m), buffer_len(&m)); | 1282 | (r = sshbuf_put_stringb(mux_chan->output, m)) != 0) |
1281 | buffer_free(&m); | 1283 | fatal("%s: reply: %s", __func__, ssh_err(r)); |
1284 | sshbuf_free(m); | ||
1282 | } | 1285 | } |
1283 | 1286 | ||
1284 | /* Prepare a mux master to listen on a Unix domain socket. */ | 1287 | /* Prepare a mux master to listen on a Unix domain socket. */ |
@@ -1372,8 +1375,8 @@ mux_session_confirm(struct ssh *ssh, int id, int success, void *arg) | |||
1372 | struct mux_session_confirm_ctx *cctx = arg; | 1375 | struct mux_session_confirm_ctx *cctx = arg; |
1373 | const char *display; | 1376 | const char *display; |
1374 | Channel *c, *cc; | 1377 | Channel *c, *cc; |
1375 | int i; | 1378 | int i, r; |
1376 | Buffer reply; | 1379 | struct sshbuf *reply; |
1377 | 1380 | ||
1378 | if (cctx == NULL) | 1381 | if (cctx == NULL) |
1379 | fatal("%s: cctx == NULL", __func__); | 1382 | fatal("%s: cctx == NULL", __func__); |
@@ -1382,14 +1385,13 @@ mux_session_confirm(struct ssh *ssh, int id, int success, void *arg) | |||
1382 | if ((cc = channel_by_id(ssh, c->ctl_chan)) == NULL) | 1385 | if ((cc = channel_by_id(ssh, c->ctl_chan)) == NULL) |
1383 | fatal("%s: channel %d lacks control channel %d", __func__, | 1386 | fatal("%s: channel %d lacks control channel %d", __func__, |
1384 | id, c->ctl_chan); | 1387 | id, c->ctl_chan); |
1388 | if ((reply = sshbuf_new()) == NULL) | ||
1389 | fatal("%s: sshbuf_new", __func__); | ||
1385 | 1390 | ||
1386 | if (!success) { | 1391 | if (!success) { |
1387 | debug3("%s: sending failure reply", __func__); | 1392 | debug3("%s: sending failure reply", __func__); |
1388 | /* prepare reply */ | 1393 | reply_error(reply, MUX_S_FAILURE, cctx->rid, |
1389 | buffer_init(&reply); | 1394 | "Session open refused by peer"); |
1390 | buffer_put_int(&reply, MUX_S_FAILURE); | ||
1391 | buffer_put_int(&reply, cctx->rid); | ||
1392 | buffer_put_cstring(&reply, "Session open refused by peer"); | ||
1393 | goto done; | 1395 | goto done; |
1394 | } | 1396 | } |
1395 | 1397 | ||
@@ -1419,25 +1421,26 @@ mux_session_confirm(struct ssh *ssh, int id, int success, void *arg) | |||
1419 | } | 1421 | } |
1420 | 1422 | ||
1421 | client_session2_setup(ssh, id, cctx->want_tty, cctx->want_subsys, | 1423 | client_session2_setup(ssh, id, cctx->want_tty, cctx->want_subsys, |
1422 | cctx->term, &cctx->tio, c->rfd, &cctx->cmd, cctx->env); | 1424 | cctx->term, &cctx->tio, c->rfd, cctx->cmd, cctx->env); |
1423 | 1425 | ||
1424 | debug3("%s: sending success reply", __func__); | 1426 | debug3("%s: sending success reply", __func__); |
1425 | /* prepare reply */ | 1427 | /* prepare reply */ |
1426 | buffer_init(&reply); | 1428 | if ((r = sshbuf_put_u32(reply, MUX_S_SESSION_OPENED)) != 0 || |
1427 | buffer_put_int(&reply, MUX_S_SESSION_OPENED); | 1429 | (r = sshbuf_put_u32(reply, cctx->rid)) != 0 || |
1428 | buffer_put_int(&reply, cctx->rid); | 1430 | (r = sshbuf_put_u32(reply, c->self)) != 0) |
1429 | buffer_put_int(&reply, c->self); | 1431 | fatal("%s: reply: %s", __func__, ssh_err(r)); |
1430 | 1432 | ||
1431 | done: | 1433 | done: |
1432 | /* Send reply */ | 1434 | /* Send reply */ |
1433 | buffer_put_string(cc->output, buffer_ptr(&reply), buffer_len(&reply)); | 1435 | if ((r = sshbuf_put_stringb(cc->output, reply)) != 0) |
1434 | buffer_free(&reply); | 1436 | fatal("%s: sshbuf_put_stringb: %s", __func__, ssh_err(r)); |
1437 | sshbuf_free(reply); | ||
1435 | 1438 | ||
1436 | if (cc->mux_pause <= 0) | 1439 | if (cc->mux_pause <= 0) |
1437 | fatal("%s: mux_pause %d", __func__, cc->mux_pause); | 1440 | fatal("%s: mux_pause %d", __func__, cc->mux_pause); |
1438 | cc->mux_pause = 0; /* start processing messages again */ | 1441 | cc->mux_pause = 0; /* start processing messages again */ |
1439 | c->open_confirm_ctx = NULL; | 1442 | c->open_confirm_ctx = NULL; |
1440 | buffer_free(&cctx->cmd); | 1443 | sshbuf_free(cctx->cmd); |
1441 | free(cctx->term); | 1444 | free(cctx->term); |
1442 | if (cctx->env != NULL) { | 1445 | if (cctx->env != NULL) { |
1443 | for (i = 0; cctx->env[i] != NULL; i++) | 1446 | for (i = 0; cctx->env[i] != NULL; i++) |
@@ -1472,16 +1475,18 @@ control_client_sigrelay(int signo) | |||
1472 | } | 1475 | } |
1473 | 1476 | ||
1474 | static int | 1477 | static int |
1475 | mux_client_read(int fd, Buffer *b, u_int need) | 1478 | mux_client_read(int fd, struct sshbuf *b, size_t need) |
1476 | { | 1479 | { |
1477 | u_int have; | 1480 | size_t have; |
1478 | ssize_t len; | 1481 | ssize_t len; |
1479 | u_char *p; | 1482 | u_char *p; |
1480 | struct pollfd pfd; | 1483 | struct pollfd pfd; |
1484 | int r; | ||
1481 | 1485 | ||
1482 | pfd.fd = fd; | 1486 | pfd.fd = fd; |
1483 | pfd.events = POLLIN; | 1487 | pfd.events = POLLIN; |
1484 | p = buffer_append_space(b, need); | 1488 | if ((r = sshbuf_reserve(b, need, &p)) != 0) |
1489 | fatal("%s: reserve: %s", __func__, ssh_err(r)); | ||
1485 | for (have = 0; have < need; ) { | 1490 | for (have = 0; have < need; ) { |
1486 | if (muxclient_terminate) { | 1491 | if (muxclient_terminate) { |
1487 | errno = EINTR; | 1492 | errno = EINTR; |
@@ -1506,31 +1511,33 @@ mux_client_read(int fd, Buffer *b, u_int need) | |||
1506 | errno = EPIPE; | 1511 | errno = EPIPE; |
1507 | return -1; | 1512 | return -1; |
1508 | } | 1513 | } |
1509 | have += (u_int)len; | 1514 | have += (size_t)len; |
1510 | } | 1515 | } |
1511 | return 0; | 1516 | return 0; |
1512 | } | 1517 | } |
1513 | 1518 | ||
1514 | static int | 1519 | static int |
1515 | mux_client_write_packet(int fd, Buffer *m) | 1520 | mux_client_write_packet(int fd, struct sshbuf *m) |
1516 | { | 1521 | { |
1517 | Buffer queue; | 1522 | struct sshbuf *queue; |
1518 | u_int have, need; | 1523 | u_int have, need; |
1519 | int oerrno, len; | 1524 | int r, oerrno, len; |
1520 | u_char *ptr; | 1525 | const u_char *ptr; |
1521 | struct pollfd pfd; | 1526 | struct pollfd pfd; |
1522 | 1527 | ||
1523 | pfd.fd = fd; | 1528 | pfd.fd = fd; |
1524 | pfd.events = POLLOUT; | 1529 | pfd.events = POLLOUT; |
1525 | buffer_init(&queue); | 1530 | if ((queue = sshbuf_new()) == NULL) |
1526 | buffer_put_string(&queue, buffer_ptr(m), buffer_len(m)); | 1531 | fatal("%s: sshbuf_new", __func__); |
1532 | if ((r = sshbuf_put_stringb(queue, m)) != 0) | ||
1533 | fatal("%s: sshbuf_put_stringb: %s", __func__, ssh_err(r)); | ||
1527 | 1534 | ||
1528 | need = buffer_len(&queue); | 1535 | need = sshbuf_len(queue); |
1529 | ptr = buffer_ptr(&queue); | 1536 | ptr = sshbuf_ptr(queue); |
1530 | 1537 | ||
1531 | for (have = 0; have < need; ) { | 1538 | for (have = 0; have < need; ) { |
1532 | if (muxclient_terminate) { | 1539 | if (muxclient_terminate) { |
1533 | buffer_free(&queue); | 1540 | sshbuf_free(queue); |
1534 | errno = EINTR; | 1541 | errno = EINTR; |
1535 | return -1; | 1542 | return -1; |
1536 | } | 1543 | } |
@@ -1547,85 +1554,91 @@ mux_client_write_packet(int fd, Buffer *m) | |||
1547 | continue; | 1554 | continue; |
1548 | default: | 1555 | default: |
1549 | oerrno = errno; | 1556 | oerrno = errno; |
1550 | buffer_free(&queue); | 1557 | sshbuf_free(queue); |
1551 | errno = oerrno; | 1558 | errno = oerrno; |
1552 | return -1; | 1559 | return -1; |
1553 | } | 1560 | } |
1554 | } | 1561 | } |
1555 | if (len == 0) { | 1562 | if (len == 0) { |
1556 | buffer_free(&queue); | 1563 | sshbuf_free(queue); |
1557 | errno = EPIPE; | 1564 | errno = EPIPE; |
1558 | return -1; | 1565 | return -1; |
1559 | } | 1566 | } |
1560 | have += (u_int)len; | 1567 | have += (u_int)len; |
1561 | } | 1568 | } |
1562 | buffer_free(&queue); | 1569 | sshbuf_free(queue); |
1563 | return 0; | 1570 | return 0; |
1564 | } | 1571 | } |
1565 | 1572 | ||
1566 | static int | 1573 | static int |
1567 | mux_client_read_packet(int fd, Buffer *m) | 1574 | mux_client_read_packet(int fd, struct sshbuf *m) |
1568 | { | 1575 | { |
1569 | Buffer queue; | 1576 | struct sshbuf *queue; |
1570 | u_int need, have; | 1577 | size_t need, have; |
1571 | const u_char *ptr; | 1578 | const u_char *ptr; |
1572 | int oerrno; | 1579 | int r, oerrno; |
1573 | 1580 | ||
1574 | buffer_init(&queue); | 1581 | if ((queue = sshbuf_new()) == NULL) |
1575 | if (mux_client_read(fd, &queue, 4) != 0) { | 1582 | fatal("%s: sshbuf_new", __func__); |
1583 | if (mux_client_read(fd, queue, 4) != 0) { | ||
1576 | if ((oerrno = errno) == EPIPE) | 1584 | if ((oerrno = errno) == EPIPE) |
1577 | debug3("%s: read header failed: %s", __func__, | 1585 | debug3("%s: read header failed: %s", __func__, |
1578 | strerror(errno)); | 1586 | strerror(errno)); |
1579 | buffer_free(&queue); | 1587 | sshbuf_free(queue); |
1580 | errno = oerrno; | 1588 | errno = oerrno; |
1581 | return -1; | 1589 | return -1; |
1582 | } | 1590 | } |
1583 | need = get_u32(buffer_ptr(&queue)); | 1591 | need = PEEK_U32(sshbuf_ptr(queue)); |
1584 | if (mux_client_read(fd, &queue, need) != 0) { | 1592 | if (mux_client_read(fd, queue, need) != 0) { |
1585 | oerrno = errno; | 1593 | oerrno = errno; |
1586 | debug3("%s: read body failed: %s", __func__, strerror(errno)); | 1594 | debug3("%s: read body failed: %s", __func__, strerror(errno)); |
1587 | buffer_free(&queue); | 1595 | sshbuf_free(queue); |
1588 | errno = oerrno; | 1596 | errno = oerrno; |
1589 | return -1; | 1597 | return -1; |
1590 | } | 1598 | } |
1591 | ptr = buffer_get_string_ptr(&queue, &have); | 1599 | if ((r = sshbuf_get_string_direct(queue, &ptr, &have)) != 0 || |
1592 | buffer_append(m, ptr, have); | 1600 | (r = sshbuf_put(m, ptr, have)) != 0) |
1593 | buffer_free(&queue); | 1601 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
1602 | sshbuf_free(queue); | ||
1594 | return 0; | 1603 | return 0; |
1595 | } | 1604 | } |
1596 | 1605 | ||
1597 | static int | 1606 | static int |
1598 | mux_client_hello_exchange(int fd) | 1607 | mux_client_hello_exchange(int fd) |
1599 | { | 1608 | { |
1600 | Buffer m; | 1609 | struct sshbuf *m; |
1601 | u_int type, ver; | 1610 | u_int type, ver; |
1602 | int ret = -1; | 1611 | int r, ret = -1; |
1603 | 1612 | ||
1604 | buffer_init(&m); | 1613 | if ((m = sshbuf_new()) == NULL) |
1605 | buffer_put_int(&m, MUX_MSG_HELLO); | 1614 | fatal("%s: sshbuf_new", __func__); |
1606 | buffer_put_int(&m, SSHMUX_VER); | 1615 | if ((r = sshbuf_put_u32(m, MUX_MSG_HELLO)) != 0 || |
1616 | (r = sshbuf_put_u32(m, SSHMUX_VER)) != 0) | ||
1617 | fatal("%s: hello: %s", __func__, ssh_err(r)); | ||
1607 | /* no extensions */ | 1618 | /* no extensions */ |
1608 | 1619 | ||
1609 | if (mux_client_write_packet(fd, &m) != 0) { | 1620 | if (mux_client_write_packet(fd, m) != 0) { |
1610 | debug("%s: write packet: %s", __func__, strerror(errno)); | 1621 | debug("%s: write packet: %s", __func__, strerror(errno)); |
1611 | goto out; | 1622 | goto out; |
1612 | } | 1623 | } |
1613 | 1624 | ||
1614 | buffer_clear(&m); | 1625 | sshbuf_reset(m); |
1615 | 1626 | ||
1616 | /* Read their HELLO */ | 1627 | /* Read their HELLO */ |
1617 | if (mux_client_read_packet(fd, &m) != 0) { | 1628 | if (mux_client_read_packet(fd, m) != 0) { |
1618 | debug("%s: read packet failed", __func__); | 1629 | debug("%s: read packet failed", __func__); |
1619 | goto out; | 1630 | goto out; |
1620 | } | 1631 | } |
1621 | 1632 | ||
1622 | type = buffer_get_int(&m); | 1633 | if ((r = sshbuf_get_u32(m, &type)) != 0) |
1634 | fatal("%s: decode type: %s", __func__, ssh_err(r)); | ||
1623 | if (type != MUX_MSG_HELLO) { | 1635 | if (type != MUX_MSG_HELLO) { |
1624 | error("%s: expected HELLO (%u) received %u", | 1636 | error("%s: expected HELLO (%u) received %u", |
1625 | __func__, MUX_MSG_HELLO, type); | 1637 | __func__, MUX_MSG_HELLO, type); |
1626 | goto out; | 1638 | goto out; |
1627 | } | 1639 | } |
1628 | ver = buffer_get_int(&m); | 1640 | if ((r = sshbuf_get_u32(m, &ver)) != 0) |
1641 | fatal("%s: decode version: %s", __func__, ssh_err(r)); | ||
1629 | if (ver != SSHMUX_VER) { | 1642 | if (ver != SSHMUX_VER) { |
1630 | error("Unsupported multiplexing protocol version %d " | 1643 | error("Unsupported multiplexing protocol version %d " |
1631 | "(expected %d)", ver, SSHMUX_VER); | 1644 | "(expected %d)", ver, SSHMUX_VER); |
@@ -1633,56 +1646,68 @@ mux_client_hello_exchange(int fd) | |||
1633 | } | 1646 | } |
1634 | debug2("%s: master version %u", __func__, ver); | 1647 | debug2("%s: master version %u", __func__, ver); |
1635 | /* No extensions are presently defined */ | 1648 | /* No extensions are presently defined */ |
1636 | while (buffer_len(&m) > 0) { | 1649 | while (sshbuf_len(m) > 0) { |
1637 | char *name = buffer_get_string(&m, NULL); | 1650 | char *name = NULL; |
1638 | char *value = buffer_get_string(&m, NULL); | ||
1639 | 1651 | ||
1652 | if ((r = sshbuf_get_cstring(m, &name, NULL)) != 0 || | ||
1653 | (r = sshbuf_skip_string(m)) != 0) { /* value */ | ||
1654 | error("%s: malformed extension: %s", | ||
1655 | __func__, ssh_err(r)); | ||
1656 | goto out; | ||
1657 | } | ||
1640 | debug2("Unrecognised master extension \"%s\"", name); | 1658 | debug2("Unrecognised master extension \"%s\"", name); |
1641 | free(name); | 1659 | free(name); |
1642 | free(value); | ||
1643 | } | 1660 | } |
1644 | /* success */ | 1661 | /* success */ |
1645 | ret = 0; | 1662 | ret = 0; |
1646 | out: | 1663 | out: |
1647 | buffer_free(&m); | 1664 | sshbuf_free(m); |
1648 | return ret; | 1665 | return ret; |
1649 | } | 1666 | } |
1650 | 1667 | ||
1651 | static u_int | 1668 | static u_int |
1652 | mux_client_request_alive(int fd) | 1669 | mux_client_request_alive(int fd) |
1653 | { | 1670 | { |
1654 | Buffer m; | 1671 | struct sshbuf *m; |
1655 | char *e; | 1672 | char *e; |
1656 | u_int pid, type, rid; | 1673 | u_int pid, type, rid; |
1674 | int r; | ||
1657 | 1675 | ||
1658 | debug3("%s: entering", __func__); | 1676 | debug3("%s: entering", __func__); |
1659 | 1677 | ||
1660 | buffer_init(&m); | 1678 | if ((m = sshbuf_new()) == NULL) |
1661 | buffer_put_int(&m, MUX_C_ALIVE_CHECK); | 1679 | fatal("%s: sshbuf_new", __func__); |
1662 | buffer_put_int(&m, muxclient_request_id); | 1680 | if ((r = sshbuf_put_u32(m, MUX_C_ALIVE_CHECK)) != 0 || |
1681 | (r = sshbuf_put_u32(m, muxclient_request_id)) != 0) | ||
1682 | fatal("%s: request: %s", __func__, ssh_err(r)); | ||
1663 | 1683 | ||
1664 | if (mux_client_write_packet(fd, &m) != 0) | 1684 | if (mux_client_write_packet(fd, m) != 0) |
1665 | fatal("%s: write packet: %s", __func__, strerror(errno)); | 1685 | fatal("%s: write packet: %s", __func__, strerror(errno)); |
1666 | 1686 | ||
1667 | buffer_clear(&m); | 1687 | sshbuf_reset(m); |
1668 | 1688 | ||
1669 | /* Read their reply */ | 1689 | /* Read their reply */ |
1670 | if (mux_client_read_packet(fd, &m) != 0) { | 1690 | if (mux_client_read_packet(fd, m) != 0) { |
1671 | buffer_free(&m); | 1691 | sshbuf_free(m); |
1672 | return 0; | 1692 | return 0; |
1673 | } | 1693 | } |
1674 | 1694 | ||
1675 | type = buffer_get_int(&m); | 1695 | if ((r = sshbuf_get_u32(m, &type)) != 0) |
1696 | fatal("%s: decode type: %s", __func__, ssh_err(r)); | ||
1676 | if (type != MUX_S_ALIVE) { | 1697 | if (type != MUX_S_ALIVE) { |
1677 | e = buffer_get_string(&m, NULL); | 1698 | if ((r = sshbuf_get_cstring(m, &e, NULL)) != 0) |
1699 | fatal("%s: decode error: %s", __func__, ssh_err(r)); | ||
1678 | fatal("%s: master returned error: %s", __func__, e); | 1700 | fatal("%s: master returned error: %s", __func__, e); |
1679 | } | 1701 | } |
1680 | 1702 | ||
1681 | if ((rid = buffer_get_int(&m)) != muxclient_request_id) | 1703 | if ((r = sshbuf_get_u32(m, &rid)) != 0) |
1704 | fatal("%s: decode remote ID: %s", __func__, ssh_err(r)); | ||
1705 | if (rid != muxclient_request_id) | ||
1682 | fatal("%s: out of sequence reply: my id %u theirs %u", | 1706 | fatal("%s: out of sequence reply: my id %u theirs %u", |
1683 | __func__, muxclient_request_id, rid); | 1707 | __func__, muxclient_request_id, rid); |
1684 | pid = buffer_get_int(&m); | 1708 | if ((r = sshbuf_get_u32(m, &pid)) != 0) |
1685 | buffer_free(&m); | 1709 | fatal("%s: decode PID: %s", __func__, ssh_err(r)); |
1710 | sshbuf_free(m); | ||
1686 | 1711 | ||
1687 | debug3("%s: done pid = %u", __func__, pid); | 1712 | debug3("%s: done pid = %u", __func__, pid); |
1688 | 1713 | ||
@@ -1694,107 +1719,128 @@ mux_client_request_alive(int fd) | |||
1694 | static void | 1719 | static void |
1695 | mux_client_request_terminate(int fd) | 1720 | mux_client_request_terminate(int fd) |
1696 | { | 1721 | { |
1697 | Buffer m; | 1722 | struct sshbuf *m; |
1698 | char *e; | 1723 | char *e; |
1699 | u_int type, rid; | 1724 | u_int type, rid; |
1725 | int r; | ||
1700 | 1726 | ||
1701 | debug3("%s: entering", __func__); | 1727 | debug3("%s: entering", __func__); |
1702 | 1728 | ||
1703 | buffer_init(&m); | 1729 | if ((m = sshbuf_new()) == NULL) |
1704 | buffer_put_int(&m, MUX_C_TERMINATE); | 1730 | fatal("%s: sshbuf_new", __func__); |
1705 | buffer_put_int(&m, muxclient_request_id); | 1731 | if ((r = sshbuf_put_u32(m, MUX_C_TERMINATE)) != 0 || |
1732 | (r = sshbuf_put_u32(m, muxclient_request_id)) != 0) | ||
1733 | fatal("%s: request: %s", __func__, ssh_err(r)); | ||
1706 | 1734 | ||
1707 | if (mux_client_write_packet(fd, &m) != 0) | 1735 | if (mux_client_write_packet(fd, m) != 0) |
1708 | fatal("%s: write packet: %s", __func__, strerror(errno)); | 1736 | fatal("%s: write packet: %s", __func__, strerror(errno)); |
1709 | 1737 | ||
1710 | buffer_clear(&m); | 1738 | sshbuf_reset(m); |
1711 | 1739 | ||
1712 | /* Read their reply */ | 1740 | /* Read their reply */ |
1713 | if (mux_client_read_packet(fd, &m) != 0) { | 1741 | if (mux_client_read_packet(fd, m) != 0) { |
1714 | /* Remote end exited already */ | 1742 | /* Remote end exited already */ |
1715 | if (errno == EPIPE) { | 1743 | if (errno == EPIPE) { |
1716 | buffer_free(&m); | 1744 | sshbuf_free(m); |
1717 | return; | 1745 | return; |
1718 | } | 1746 | } |
1719 | fatal("%s: read from master failed: %s", | 1747 | fatal("%s: read from master failed: %s", |
1720 | __func__, strerror(errno)); | 1748 | __func__, strerror(errno)); |
1721 | } | 1749 | } |
1722 | 1750 | ||
1723 | type = buffer_get_int(&m); | 1751 | if ((r = sshbuf_get_u32(m, &type)) != 0 || |
1724 | if ((rid = buffer_get_int(&m)) != muxclient_request_id) | 1752 | (r = sshbuf_get_u32(m, &rid)) != 0) |
1753 | fatal("%s: decode: %s", __func__, ssh_err(r)); | ||
1754 | if (rid != muxclient_request_id) | ||
1725 | fatal("%s: out of sequence reply: my id %u theirs %u", | 1755 | fatal("%s: out of sequence reply: my id %u theirs %u", |
1726 | __func__, muxclient_request_id, rid); | 1756 | __func__, muxclient_request_id, rid); |
1727 | switch (type) { | 1757 | switch (type) { |
1728 | case MUX_S_OK: | 1758 | case MUX_S_OK: |
1729 | break; | 1759 | break; |
1730 | case MUX_S_PERMISSION_DENIED: | 1760 | case MUX_S_PERMISSION_DENIED: |
1731 | e = buffer_get_string(&m, NULL); | 1761 | if ((r = sshbuf_get_cstring(m, &e, NULL)) != 0) |
1762 | fatal("%s: decode error: %s", __func__, ssh_err(r)); | ||
1732 | fatal("Master refused termination request: %s", e); | 1763 | fatal("Master refused termination request: %s", e); |
1733 | case MUX_S_FAILURE: | 1764 | case MUX_S_FAILURE: |
1734 | e = buffer_get_string(&m, NULL); | 1765 | if ((r = sshbuf_get_cstring(m, &e, NULL)) != 0) |
1766 | fatal("%s: decode error: %s", __func__, ssh_err(r)); | ||
1735 | fatal("%s: termination request failed: %s", __func__, e); | 1767 | fatal("%s: termination request failed: %s", __func__, e); |
1736 | default: | 1768 | default: |
1737 | fatal("%s: unexpected response from master 0x%08x", | 1769 | fatal("%s: unexpected response from master 0x%08x", |
1738 | __func__, type); | 1770 | __func__, type); |
1739 | } | 1771 | } |
1740 | buffer_free(&m); | 1772 | sshbuf_free(m); |
1741 | muxclient_request_id++; | 1773 | muxclient_request_id++; |
1742 | } | 1774 | } |
1743 | 1775 | ||
1744 | static int | 1776 | static int |
1745 | mux_client_forward(int fd, int cancel_flag, u_int ftype, struct Forward *fwd) | 1777 | mux_client_forward(int fd, int cancel_flag, u_int ftype, struct Forward *fwd) |
1746 | { | 1778 | { |
1747 | Buffer m; | 1779 | struct sshbuf *m; |
1748 | char *e, *fwd_desc; | 1780 | char *e, *fwd_desc; |
1781 | const char *lhost, *chost; | ||
1749 | u_int type, rid; | 1782 | u_int type, rid; |
1783 | int r; | ||
1750 | 1784 | ||
1751 | fwd_desc = format_forward(ftype, fwd); | 1785 | fwd_desc = format_forward(ftype, fwd); |
1752 | debug("Requesting %s %s", | 1786 | debug("Requesting %s %s", |
1753 | cancel_flag ? "cancellation of" : "forwarding of", fwd_desc); | 1787 | cancel_flag ? "cancellation of" : "forwarding of", fwd_desc); |
1754 | free(fwd_desc); | 1788 | free(fwd_desc); |
1755 | 1789 | ||
1756 | buffer_init(&m); | 1790 | type = cancel_flag ? MUX_C_CLOSE_FWD : MUX_C_OPEN_FWD; |
1757 | buffer_put_int(&m, cancel_flag ? MUX_C_CLOSE_FWD : MUX_C_OPEN_FWD); | 1791 | if (fwd->listen_path != NULL) |
1758 | buffer_put_int(&m, muxclient_request_id); | 1792 | lhost = fwd->listen_path; |
1759 | buffer_put_int(&m, ftype); | 1793 | else if (fwd->listen_host == NULL) |
1760 | if (fwd->listen_path != NULL) { | 1794 | lhost = ""; |
1761 | buffer_put_cstring(&m, fwd->listen_path); | 1795 | else if (*fwd->listen_host == '\0') |
1762 | } else { | 1796 | lhost = "*"; |
1763 | buffer_put_cstring(&m, | 1797 | else |
1764 | fwd->listen_host == NULL ? "" : | 1798 | lhost = fwd->listen_host; |
1765 | (*fwd->listen_host == '\0' ? "*" : fwd->listen_host)); | ||
1766 | } | ||
1767 | buffer_put_int(&m, fwd->listen_port); | ||
1768 | if (fwd->connect_path != NULL) { | ||
1769 | buffer_put_cstring(&m, fwd->connect_path); | ||
1770 | } else { | ||
1771 | buffer_put_cstring(&m, | ||
1772 | fwd->connect_host == NULL ? "" : fwd->connect_host); | ||
1773 | } | ||
1774 | buffer_put_int(&m, fwd->connect_port); | ||
1775 | 1799 | ||
1776 | if (mux_client_write_packet(fd, &m) != 0) | 1800 | if (fwd->connect_path != NULL) |
1801 | chost = fwd->connect_path; | ||
1802 | else if (fwd->connect_host == NULL) | ||
1803 | chost = ""; | ||
1804 | else | ||
1805 | chost = fwd->connect_host; | ||
1806 | |||
1807 | if ((m = sshbuf_new()) == NULL) | ||
1808 | fatal("%s: sshbuf_new", __func__); | ||
1809 | if ((r = sshbuf_put_u32(m, type)) != 0 || | ||
1810 | (r = sshbuf_put_u32(m, muxclient_request_id)) != 0 || | ||
1811 | (r = sshbuf_put_u32(m, ftype)) != 0 || | ||
1812 | (r = sshbuf_put_cstring(m, lhost)) != 0 || | ||
1813 | (r = sshbuf_put_u32(m, fwd->listen_port)) != 0 || | ||
1814 | (r = sshbuf_put_cstring(m, chost)) != 0 || | ||
1815 | (r = sshbuf_put_u32(m, fwd->connect_port)) != 0) | ||
1816 | fatal("%s: request: %s", __func__, ssh_err(r)); | ||
1817 | |||
1818 | if (mux_client_write_packet(fd, m) != 0) | ||
1777 | fatal("%s: write packet: %s", __func__, strerror(errno)); | 1819 | fatal("%s: write packet: %s", __func__, strerror(errno)); |
1778 | 1820 | ||
1779 | buffer_clear(&m); | 1821 | sshbuf_reset(m); |
1780 | 1822 | ||
1781 | /* Read their reply */ | 1823 | /* Read their reply */ |
1782 | if (mux_client_read_packet(fd, &m) != 0) { | 1824 | if (mux_client_read_packet(fd, m) != 0) { |
1783 | buffer_free(&m); | 1825 | sshbuf_free(m); |
1784 | return -1; | 1826 | return -1; |
1785 | } | 1827 | } |
1786 | 1828 | ||
1787 | type = buffer_get_int(&m); | 1829 | if ((r = sshbuf_get_u32(m, &type)) != 0 || |
1788 | if ((rid = buffer_get_int(&m)) != muxclient_request_id) | 1830 | (r = sshbuf_get_u32(m, &rid)) != 0) |
1831 | fatal("%s: decode: %s", __func__, ssh_err(r)); | ||
1832 | if (rid != muxclient_request_id) | ||
1789 | fatal("%s: out of sequence reply: my id %u theirs %u", | 1833 | fatal("%s: out of sequence reply: my id %u theirs %u", |
1790 | __func__, muxclient_request_id, rid); | 1834 | __func__, muxclient_request_id, rid); |
1835 | |||
1791 | switch (type) { | 1836 | switch (type) { |
1792 | case MUX_S_OK: | 1837 | case MUX_S_OK: |
1793 | break; | 1838 | break; |
1794 | case MUX_S_REMOTE_PORT: | 1839 | case MUX_S_REMOTE_PORT: |
1795 | if (cancel_flag) | 1840 | if (cancel_flag) |
1796 | fatal("%s: got MUX_S_REMOTE_PORT for cancel", __func__); | 1841 | fatal("%s: got MUX_S_REMOTE_PORT for cancel", __func__); |
1797 | fwd->allocated_port = buffer_get_int(&m); | 1842 | if ((r = sshbuf_get_u32(m, &fwd->allocated_port)) != 0) |
1843 | fatal("%s: decode port: %s", __func__, ssh_err(r)); | ||
1798 | verbose("Allocated port %u for remote forward to %s:%d", | 1844 | verbose("Allocated port %u for remote forward to %s:%d", |
1799 | fwd->allocated_port, | 1845 | fwd->allocated_port, |
1800 | fwd->connect_host ? fwd->connect_host : "", | 1846 | fwd->connect_host ? fwd->connect_host : "", |
@@ -1803,20 +1849,22 @@ mux_client_forward(int fd, int cancel_flag, u_int ftype, struct Forward *fwd) | |||
1803 | fprintf(stdout, "%i\n", fwd->allocated_port); | 1849 | fprintf(stdout, "%i\n", fwd->allocated_port); |
1804 | break; | 1850 | break; |
1805 | case MUX_S_PERMISSION_DENIED: | 1851 | case MUX_S_PERMISSION_DENIED: |
1806 | e = buffer_get_string(&m, NULL); | 1852 | if ((r = sshbuf_get_cstring(m, &e, NULL)) != 0) |
1807 | buffer_free(&m); | 1853 | fatal("%s: decode error: %s", __func__, ssh_err(r)); |
1854 | sshbuf_free(m); | ||
1808 | error("Master refused forwarding request: %s", e); | 1855 | error("Master refused forwarding request: %s", e); |
1809 | return -1; | 1856 | return -1; |
1810 | case MUX_S_FAILURE: | 1857 | case MUX_S_FAILURE: |
1811 | e = buffer_get_string(&m, NULL); | 1858 | if ((r = sshbuf_get_cstring(m, &e, NULL)) != 0) |
1812 | buffer_free(&m); | 1859 | fatal("%s: decode error: %s", __func__, ssh_err(r)); |
1860 | sshbuf_free(m); | ||
1813 | error("%s: forwarding request failed: %s", __func__, e); | 1861 | error("%s: forwarding request failed: %s", __func__, e); |
1814 | return -1; | 1862 | return -1; |
1815 | default: | 1863 | default: |
1816 | fatal("%s: unexpected response from master 0x%08x", | 1864 | fatal("%s: unexpected response from master 0x%08x", |
1817 | __func__, type); | 1865 | __func__, type); |
1818 | } | 1866 | } |
1819 | buffer_free(&m); | 1867 | sshbuf_free(m); |
1820 | 1868 | ||
1821 | muxclient_request_id++; | 1869 | muxclient_request_id++; |
1822 | return 0; | 1870 | return 0; |
@@ -1850,11 +1898,12 @@ mux_client_forwards(int fd, int cancel_flag) | |||
1850 | static int | 1898 | static int |
1851 | mux_client_request_session(int fd) | 1899 | mux_client_request_session(int fd) |
1852 | { | 1900 | { |
1853 | Buffer m; | 1901 | struct sshbuf *m; |
1854 | char *e, *term; | 1902 | char *e; |
1855 | u_int i, rid, sid, esid, exitval, type, exitval_seen; | 1903 | const char *term; |
1904 | u_int echar, rid, sid, esid, exitval, type, exitval_seen; | ||
1856 | extern char **environ; | 1905 | extern char **environ; |
1857 | int devnull, rawmode; | 1906 | int r, i, devnull, rawmode; |
1858 | 1907 | ||
1859 | debug3("%s: entering", __func__); | 1908 | debug3("%s: entering", __func__); |
1860 | 1909 | ||
@@ -1874,31 +1923,41 @@ mux_client_request_session(int fd) | |||
1874 | close(devnull); | 1923 | close(devnull); |
1875 | } | 1924 | } |
1876 | 1925 | ||
1877 | term = getenv("TERM"); | 1926 | if ((term = getenv("TERM")) == NULL) |
1878 | 1927 | term = ""; | |
1879 | buffer_init(&m); | 1928 | echar = 0xffffffff; |
1880 | buffer_put_int(&m, MUX_C_NEW_SESSION); | 1929 | if (options.escape_char != SSH_ESCAPECHAR_NONE) |
1881 | buffer_put_int(&m, muxclient_request_id); | 1930 | echar = (u_int)options.escape_char; |
1882 | buffer_put_cstring(&m, ""); /* reserved */ | 1931 | |
1883 | buffer_put_int(&m, tty_flag); | 1932 | if ((m = sshbuf_new()) == NULL) |
1884 | buffer_put_int(&m, options.forward_x11); | 1933 | fatal("%s: sshbuf_new", __func__); |
1885 | buffer_put_int(&m, options.forward_agent); | 1934 | if ((r = sshbuf_put_u32(m, MUX_C_NEW_SESSION)) != 0 || |
1886 | buffer_put_int(&m, subsystem_flag); | 1935 | (r = sshbuf_put_u32(m, muxclient_request_id)) != 0 || |
1887 | buffer_put_int(&m, options.escape_char == SSH_ESCAPECHAR_NONE ? | 1936 | (r = sshbuf_put_string(m, NULL, 0)) != 0 || /* reserved */ |
1888 | 0xffffffff : (u_int)options.escape_char); | 1937 | (r = sshbuf_put_u32(m, tty_flag)) != 0 || |
1889 | buffer_put_cstring(&m, term == NULL ? "" : term); | 1938 | (r = sshbuf_put_u32(m, options.forward_x11)) != 0 || |
1890 | buffer_put_string(&m, buffer_ptr(&command), buffer_len(&command)); | 1939 | (r = sshbuf_put_u32(m, options.forward_agent)) != 0 || |
1891 | 1940 | (r = sshbuf_put_u32(m, subsystem_flag)) != 0 || | |
1941 | (r = sshbuf_put_u32(m, echar)) != 0 || | ||
1942 | (r = sshbuf_put_cstring(m, term)) != 0 || | ||
1943 | (r = sshbuf_put_stringb(m, command)) != 0) | ||
1944 | fatal("%s: request: %s", __func__, ssh_err(r)); | ||
1945 | |||
1946 | /* Pass environment */ | ||
1892 | if (options.num_send_env > 0 && environ != NULL) { | 1947 | if (options.num_send_env > 0 && environ != NULL) { |
1893 | /* Pass environment */ | ||
1894 | for (i = 0; environ[i] != NULL; i++) { | 1948 | for (i = 0; environ[i] != NULL; i++) { |
1895 | if (env_permitted(environ[i])) { | 1949 | if (!env_permitted(environ[i])) |
1896 | buffer_put_cstring(&m, environ[i]); | 1950 | continue; |
1897 | } | 1951 | if ((r = sshbuf_put_cstring(m, environ[i])) != 0) |
1952 | fatal("%s: request: %s", __func__, ssh_err(r)); | ||
1898 | } | 1953 | } |
1899 | } | 1954 | } |
1955 | for (i = 0; i < options.num_setenv; i++) { | ||
1956 | if ((r = sshbuf_put_cstring(m, options.setenv[i])) != 0) | ||
1957 | fatal("%s: request: %s", __func__, ssh_err(r)); | ||
1958 | } | ||
1900 | 1959 | ||
1901 | if (mux_client_write_packet(fd, &m) != 0) | 1960 | if (mux_client_write_packet(fd, m) != 0) |
1902 | fatal("%s: write packet: %s", __func__, strerror(errno)); | 1961 | fatal("%s: write packet: %s", __func__, strerror(errno)); |
1903 | 1962 | ||
1904 | /* Send the stdio file descriptors */ | 1963 | /* Send the stdio file descriptors */ |
@@ -1910,35 +1969,40 @@ mux_client_request_session(int fd) | |||
1910 | debug3("%s: session request sent", __func__); | 1969 | debug3("%s: session request sent", __func__); |
1911 | 1970 | ||
1912 | /* Read their reply */ | 1971 | /* Read their reply */ |
1913 | buffer_clear(&m); | 1972 | sshbuf_reset(m); |
1914 | if (mux_client_read_packet(fd, &m) != 0) { | 1973 | if (mux_client_read_packet(fd, m) != 0) { |
1915 | error("%s: read from master failed: %s", | 1974 | error("%s: read from master failed: %s", |
1916 | __func__, strerror(errno)); | 1975 | __func__, strerror(errno)); |
1917 | buffer_free(&m); | 1976 | sshbuf_free(m); |
1918 | return -1; | 1977 | return -1; |
1919 | } | 1978 | } |
1920 | 1979 | ||
1921 | type = buffer_get_int(&m); | 1980 | if ((r = sshbuf_get_u32(m, &type)) != 0 || |
1922 | if ((rid = buffer_get_int(&m)) != muxclient_request_id) | 1981 | (r = sshbuf_get_u32(m, &rid)) != 0) |
1982 | fatal("%s: decode: %s", __func__, ssh_err(r)); | ||
1983 | if (rid != muxclient_request_id) | ||
1923 | fatal("%s: out of sequence reply: my id %u theirs %u", | 1984 | fatal("%s: out of sequence reply: my id %u theirs %u", |
1924 | __func__, muxclient_request_id, rid); | 1985 | __func__, muxclient_request_id, rid); |
1986 | |||
1925 | switch (type) { | 1987 | switch (type) { |
1926 | case MUX_S_SESSION_OPENED: | 1988 | case MUX_S_SESSION_OPENED: |
1927 | sid = buffer_get_int(&m); | 1989 | if ((r = sshbuf_get_u32(m, &sid)) != 0) |
1928 | debug("%s: master session id: %u", __func__, sid); | 1990 | fatal("%s: decode ID: %s", __func__, ssh_err(r)); |
1929 | break; | 1991 | break; |
1930 | case MUX_S_PERMISSION_DENIED: | 1992 | case MUX_S_PERMISSION_DENIED: |
1931 | e = buffer_get_string(&m, NULL); | 1993 | if ((r = sshbuf_get_cstring(m, &e, NULL)) != 0) |
1932 | buffer_free(&m); | 1994 | fatal("%s: decode error: %s", __func__, ssh_err(r)); |
1933 | error("Master refused session request: %s", e); | 1995 | error("Master refused session request: %s", e); |
1996 | sshbuf_free(m); | ||
1934 | return -1; | 1997 | return -1; |
1935 | case MUX_S_FAILURE: | 1998 | case MUX_S_FAILURE: |
1936 | e = buffer_get_string(&m, NULL); | 1999 | if ((r = sshbuf_get_cstring(m, &e, NULL)) != 0) |
1937 | buffer_free(&m); | 2000 | fatal("%s: decode error: %s", __func__, ssh_err(r)); |
1938 | error("%s: session request failed: %s", __func__, e); | 2001 | error("%s: session request failed: %s", __func__, e); |
2002 | sshbuf_free(m); | ||
1939 | return -1; | 2003 | return -1; |
1940 | default: | 2004 | default: |
1941 | buffer_free(&m); | 2005 | sshbuf_free(m); |
1942 | error("%s: unexpected response from master 0x%08x", | 2006 | error("%s: unexpected response from master 0x%08x", |
1943 | __func__, type); | 2007 | __func__, type); |
1944 | return -1; | 2008 | return -1; |
@@ -1966,13 +2030,17 @@ mux_client_request_session(int fd) | |||
1966 | * terminate early too (possibly losing data). | 2030 | * terminate early too (possibly losing data). |
1967 | */ | 2031 | */ |
1968 | for (exitval = 255, exitval_seen = 0;;) { | 2032 | for (exitval = 255, exitval_seen = 0;;) { |
1969 | buffer_clear(&m); | 2033 | sshbuf_reset(m); |
1970 | if (mux_client_read_packet(fd, &m) != 0) | 2034 | if (mux_client_read_packet(fd, m) != 0) |
1971 | break; | 2035 | break; |
1972 | type = buffer_get_int(&m); | 2036 | if ((r = sshbuf_get_u32(m, &type)) != 0) |
2037 | fatal("%s: decode type: %s", __func__, ssh_err(r)); | ||
1973 | switch (type) { | 2038 | switch (type) { |
1974 | case MUX_S_TTY_ALLOC_FAIL: | 2039 | case MUX_S_TTY_ALLOC_FAIL: |
1975 | if ((esid = buffer_get_int(&m)) != sid) | 2040 | if ((r = sshbuf_get_u32(m, &esid)) != 0) |
2041 | fatal("%s: decode ID: %s", | ||
2042 | __func__, ssh_err(r)); | ||
2043 | if (esid != sid) | ||
1976 | fatal("%s: tty alloc fail on unknown session: " | 2044 | fatal("%s: tty alloc fail on unknown session: " |
1977 | "my id %u theirs %u", | 2045 | "my id %u theirs %u", |
1978 | __func__, sid, esid); | 2046 | __func__, sid, esid); |
@@ -1981,17 +2049,24 @@ mux_client_request_session(int fd) | |||
1981 | rawmode = 0; | 2049 | rawmode = 0; |
1982 | continue; | 2050 | continue; |
1983 | case MUX_S_EXIT_MESSAGE: | 2051 | case MUX_S_EXIT_MESSAGE: |
1984 | if ((esid = buffer_get_int(&m)) != sid) | 2052 | if ((r = sshbuf_get_u32(m, &esid)) != 0) |
2053 | fatal("%s: decode ID: %s", | ||
2054 | __func__, ssh_err(r)); | ||
2055 | if (esid != sid) | ||
1985 | fatal("%s: exit on unknown session: " | 2056 | fatal("%s: exit on unknown session: " |
1986 | "my id %u theirs %u", | 2057 | "my id %u theirs %u", |
1987 | __func__, sid, esid); | 2058 | __func__, sid, esid); |
1988 | if (exitval_seen) | 2059 | if (exitval_seen) |
1989 | fatal("%s: exitval sent twice", __func__); | 2060 | fatal("%s: exitval sent twice", __func__); |
1990 | exitval = buffer_get_int(&m); | 2061 | if ((r = sshbuf_get_u32(m, &exitval)) != 0) |
2062 | fatal("%s: decode exit value: %s", | ||
2063 | __func__, ssh_err(r)); | ||
1991 | exitval_seen = 1; | 2064 | exitval_seen = 1; |
1992 | continue; | 2065 | continue; |
1993 | default: | 2066 | default: |
1994 | e = buffer_get_string(&m, NULL); | 2067 | if ((r = sshbuf_get_cstring(m, &e, NULL)) != 0) |
2068 | fatal("%s: decode error: %s", | ||
2069 | __func__, ssh_err(r)); | ||
1995 | fatal("%s: master returned error: %s", __func__, e); | 2070 | fatal("%s: master returned error: %s", __func__, e); |
1996 | } | 2071 | } |
1997 | } | 2072 | } |
@@ -2018,32 +2093,38 @@ mux_client_request_session(int fd) | |||
2018 | static int | 2093 | static int |
2019 | mux_client_proxy(int fd) | 2094 | mux_client_proxy(int fd) |
2020 | { | 2095 | { |
2021 | Buffer m; | 2096 | struct sshbuf *m; |
2022 | char *e; | 2097 | char *e; |
2023 | u_int type, rid; | 2098 | u_int type, rid; |
2024 | 2099 | int r; | |
2025 | buffer_init(&m); | 2100 | |
2026 | buffer_put_int(&m, MUX_C_PROXY); | 2101 | if ((m = sshbuf_new()) == NULL) |
2027 | buffer_put_int(&m, muxclient_request_id); | 2102 | fatal("%s: sshbuf_new", __func__); |
2028 | if (mux_client_write_packet(fd, &m) != 0) | 2103 | if ((r = sshbuf_put_u32(m, MUX_C_PROXY)) != 0 || |
2104 | (r = sshbuf_put_u32(m, muxclient_request_id)) != 0) | ||
2105 | fatal("%s: request: %s", __func__, ssh_err(r)); | ||
2106 | if (mux_client_write_packet(fd, m) != 0) | ||
2029 | fatal("%s: write packet: %s", __func__, strerror(errno)); | 2107 | fatal("%s: write packet: %s", __func__, strerror(errno)); |
2030 | 2108 | ||
2031 | buffer_clear(&m); | 2109 | sshbuf_reset(m); |
2032 | 2110 | ||
2033 | /* Read their reply */ | 2111 | /* Read their reply */ |
2034 | if (mux_client_read_packet(fd, &m) != 0) { | 2112 | if (mux_client_read_packet(fd, m) != 0) { |
2035 | buffer_free(&m); | 2113 | sshbuf_free(m); |
2036 | return 0; | 2114 | return 0; |
2037 | } | 2115 | } |
2038 | type = buffer_get_int(&m); | 2116 | if ((r = sshbuf_get_u32(m, &type)) != 0 || |
2117 | (r = sshbuf_get_u32(m, &rid)) != 0) | ||
2118 | fatal("%s: decode: %s", __func__, ssh_err(r)); | ||
2119 | if (rid != muxclient_request_id) | ||
2120 | fatal("%s: out of sequence reply: my id %u theirs %u", | ||
2121 | __func__, muxclient_request_id, rid); | ||
2039 | if (type != MUX_S_PROXY) { | 2122 | if (type != MUX_S_PROXY) { |
2040 | e = buffer_get_string(&m, NULL); | 2123 | if ((r = sshbuf_get_cstring(m, &e, NULL)) != 0) |
2124 | fatal("%s: decode error: %s", __func__, ssh_err(r)); | ||
2041 | fatal("%s: master returned error: %s", __func__, e); | 2125 | fatal("%s: master returned error: %s", __func__, e); |
2042 | } | 2126 | } |
2043 | if ((rid = buffer_get_int(&m)) != muxclient_request_id) | 2127 | sshbuf_free(m); |
2044 | fatal("%s: out of sequence reply: my id %u theirs %u", | ||
2045 | __func__, muxclient_request_id, rid); | ||
2046 | buffer_free(&m); | ||
2047 | 2128 | ||
2048 | debug3("%s: done", __func__); | 2129 | debug3("%s: done", __func__); |
2049 | muxclient_request_id++; | 2130 | muxclient_request_id++; |
@@ -2053,10 +2134,10 @@ mux_client_proxy(int fd) | |||
2053 | static int | 2134 | static int |
2054 | mux_client_request_stdio_fwd(int fd) | 2135 | mux_client_request_stdio_fwd(int fd) |
2055 | { | 2136 | { |
2056 | Buffer m; | 2137 | struct sshbuf *m; |
2057 | char *e; | 2138 | char *e; |
2058 | u_int type, rid, sid; | 2139 | u_int type, rid, sid; |
2059 | int devnull; | 2140 | int r, devnull; |
2060 | 2141 | ||
2061 | debug3("%s: entering", __func__); | 2142 | debug3("%s: entering", __func__); |
2062 | 2143 | ||
@@ -2076,14 +2157,16 @@ mux_client_request_stdio_fwd(int fd) | |||
2076 | close(devnull); | 2157 | close(devnull); |
2077 | } | 2158 | } |
2078 | 2159 | ||
2079 | buffer_init(&m); | 2160 | if ((m = sshbuf_new()) == NULL) |
2080 | buffer_put_int(&m, MUX_C_NEW_STDIO_FWD); | 2161 | fatal("%s: sshbuf_new", __func__); |
2081 | buffer_put_int(&m, muxclient_request_id); | 2162 | if ((r = sshbuf_put_u32(m, MUX_C_NEW_STDIO_FWD)) != 0 || |
2082 | buffer_put_cstring(&m, ""); /* reserved */ | 2163 | (r = sshbuf_put_u32(m, muxclient_request_id)) != 0 || |
2083 | buffer_put_cstring(&m, options.stdio_forward_host); | 2164 | (r = sshbuf_put_string(m, NULL, 0)) != 0 || /* reserved */ |
2084 | buffer_put_int(&m, options.stdio_forward_port); | 2165 | (r = sshbuf_put_cstring(m, options.stdio_forward_host)) != 0 || |
2166 | (r = sshbuf_put_u32(m, options.stdio_forward_port)) != 0) | ||
2167 | fatal("%s: request: %s", __func__, ssh_err(r)); | ||
2085 | 2168 | ||
2086 | if (mux_client_write_packet(fd, &m) != 0) | 2169 | if (mux_client_write_packet(fd, m) != 0) |
2087 | fatal("%s: write packet: %s", __func__, strerror(errno)); | 2170 | fatal("%s: write packet: %s", __func__, strerror(errno)); |
2088 | 2171 | ||
2089 | /* Send the stdio file descriptors */ | 2172 | /* Send the stdio file descriptors */ |
@@ -2098,34 +2181,39 @@ mux_client_request_stdio_fwd(int fd) | |||
2098 | debug3("%s: stdio forward request sent", __func__); | 2181 | debug3("%s: stdio forward request sent", __func__); |
2099 | 2182 | ||
2100 | /* Read their reply */ | 2183 | /* Read their reply */ |
2101 | buffer_clear(&m); | 2184 | sshbuf_reset(m); |
2102 | 2185 | ||
2103 | if (mux_client_read_packet(fd, &m) != 0) { | 2186 | if (mux_client_read_packet(fd, m) != 0) { |
2104 | error("%s: read from master failed: %s", | 2187 | error("%s: read from master failed: %s", |
2105 | __func__, strerror(errno)); | 2188 | __func__, strerror(errno)); |
2106 | buffer_free(&m); | 2189 | sshbuf_free(m); |
2107 | return -1; | 2190 | return -1; |
2108 | } | 2191 | } |
2109 | 2192 | ||
2110 | type = buffer_get_int(&m); | 2193 | if ((r = sshbuf_get_u32(m, &type)) != 0 || |
2111 | if ((rid = buffer_get_int(&m)) != muxclient_request_id) | 2194 | (r = sshbuf_get_u32(m, &rid)) != 0) |
2195 | fatal("%s: decode: %s", __func__, ssh_err(r)); | ||
2196 | if (rid != muxclient_request_id) | ||
2112 | fatal("%s: out of sequence reply: my id %u theirs %u", | 2197 | fatal("%s: out of sequence reply: my id %u theirs %u", |
2113 | __func__, muxclient_request_id, rid); | 2198 | __func__, muxclient_request_id, rid); |
2114 | switch (type) { | 2199 | switch (type) { |
2115 | case MUX_S_SESSION_OPENED: | 2200 | case MUX_S_SESSION_OPENED: |
2116 | sid = buffer_get_int(&m); | 2201 | if ((r = sshbuf_get_u32(m, &sid)) != 0) |
2202 | fatal("%s: decode ID: %s", __func__, ssh_err(r)); | ||
2117 | debug("%s: master session id: %u", __func__, sid); | 2203 | debug("%s: master session id: %u", __func__, sid); |
2118 | break; | 2204 | break; |
2119 | case MUX_S_PERMISSION_DENIED: | 2205 | case MUX_S_PERMISSION_DENIED: |
2120 | e = buffer_get_string(&m, NULL); | 2206 | if ((r = sshbuf_get_cstring(m, &e, NULL)) != 0) |
2121 | buffer_free(&m); | 2207 | fatal("%s: decode error: %s", __func__, ssh_err(r)); |
2208 | sshbuf_free(m); | ||
2122 | fatal("Master refused stdio forwarding request: %s", e); | 2209 | fatal("Master refused stdio forwarding request: %s", e); |
2123 | case MUX_S_FAILURE: | 2210 | case MUX_S_FAILURE: |
2124 | e = buffer_get_string(&m, NULL); | 2211 | if ((r = sshbuf_get_cstring(m, &e, NULL)) != 0) |
2125 | buffer_free(&m); | 2212 | fatal("%s: decode error: %s", __func__, ssh_err(r)); |
2213 | sshbuf_free(m); | ||
2126 | fatal("Stdio forwarding request failed: %s", e); | 2214 | fatal("Stdio forwarding request failed: %s", e); |
2127 | default: | 2215 | default: |
2128 | buffer_free(&m); | 2216 | sshbuf_free(m); |
2129 | error("%s: unexpected response from master 0x%08x", | 2217 | error("%s: unexpected response from master 0x%08x", |
2130 | __func__, type); | 2218 | __func__, type); |
2131 | return -1; | 2219 | return -1; |
@@ -2140,8 +2228,8 @@ mux_client_request_stdio_fwd(int fd) | |||
2140 | /* | 2228 | /* |
2141 | * Stick around until the controlee closes the client_fd. | 2229 | * Stick around until the controlee closes the client_fd. |
2142 | */ | 2230 | */ |
2143 | buffer_clear(&m); | 2231 | sshbuf_reset(m); |
2144 | if (mux_client_read_packet(fd, &m) != 0) { | 2232 | if (mux_client_read_packet(fd, m) != 0) { |
2145 | if (errno == EPIPE || | 2233 | if (errno == EPIPE || |
2146 | (errno == EINTR && muxclient_terminate != 0)) | 2234 | (errno == EINTR && muxclient_terminate != 0)) |
2147 | return 0; | 2235 | return 0; |
@@ -2154,44 +2242,52 @@ mux_client_request_stdio_fwd(int fd) | |||
2154 | static void | 2242 | static void |
2155 | mux_client_request_stop_listening(int fd) | 2243 | mux_client_request_stop_listening(int fd) |
2156 | { | 2244 | { |
2157 | Buffer m; | 2245 | struct sshbuf *m; |
2158 | char *e; | 2246 | char *e; |
2159 | u_int type, rid; | 2247 | u_int type, rid; |
2248 | int r; | ||
2160 | 2249 | ||
2161 | debug3("%s: entering", __func__); | 2250 | debug3("%s: entering", __func__); |
2162 | 2251 | ||
2163 | buffer_init(&m); | 2252 | if ((m = sshbuf_new()) == NULL) |
2164 | buffer_put_int(&m, MUX_C_STOP_LISTENING); | 2253 | fatal("%s: sshbuf_new", __func__); |
2165 | buffer_put_int(&m, muxclient_request_id); | 2254 | if ((r = sshbuf_put_u32(m, MUX_C_STOP_LISTENING)) != 0 || |
2255 | (r = sshbuf_put_u32(m, muxclient_request_id)) != 0) | ||
2256 | fatal("%s: request: %s", __func__, ssh_err(r)); | ||
2166 | 2257 | ||
2167 | if (mux_client_write_packet(fd, &m) != 0) | 2258 | if (mux_client_write_packet(fd, m) != 0) |
2168 | fatal("%s: write packet: %s", __func__, strerror(errno)); | 2259 | fatal("%s: write packet: %s", __func__, strerror(errno)); |
2169 | 2260 | ||
2170 | buffer_clear(&m); | 2261 | sshbuf_reset(m); |
2171 | 2262 | ||
2172 | /* Read their reply */ | 2263 | /* Read their reply */ |
2173 | if (mux_client_read_packet(fd, &m) != 0) | 2264 | if (mux_client_read_packet(fd, m) != 0) |
2174 | fatal("%s: read from master failed: %s", | 2265 | fatal("%s: read from master failed: %s", |
2175 | __func__, strerror(errno)); | 2266 | __func__, strerror(errno)); |
2176 | 2267 | ||
2177 | type = buffer_get_int(&m); | 2268 | if ((r = sshbuf_get_u32(m, &type)) != 0 || |
2178 | if ((rid = buffer_get_int(&m)) != muxclient_request_id) | 2269 | (r = sshbuf_get_u32(m, &rid)) != 0) |
2270 | fatal("%s: decode: %s", __func__, ssh_err(r)); | ||
2271 | if (rid != muxclient_request_id) | ||
2179 | fatal("%s: out of sequence reply: my id %u theirs %u", | 2272 | fatal("%s: out of sequence reply: my id %u theirs %u", |
2180 | __func__, muxclient_request_id, rid); | 2273 | __func__, muxclient_request_id, rid); |
2274 | |||
2181 | switch (type) { | 2275 | switch (type) { |
2182 | case MUX_S_OK: | 2276 | case MUX_S_OK: |
2183 | break; | 2277 | break; |
2184 | case MUX_S_PERMISSION_DENIED: | 2278 | case MUX_S_PERMISSION_DENIED: |
2185 | e = buffer_get_string(&m, NULL); | 2279 | if ((r = sshbuf_get_cstring(m, &e, NULL)) != 0) |
2280 | fatal("%s: decode error: %s", __func__, ssh_err(r)); | ||
2186 | fatal("Master refused stop listening request: %s", e); | 2281 | fatal("Master refused stop listening request: %s", e); |
2187 | case MUX_S_FAILURE: | 2282 | case MUX_S_FAILURE: |
2188 | e = buffer_get_string(&m, NULL); | 2283 | if ((r = sshbuf_get_cstring(m, &e, NULL)) != 0) |
2284 | fatal("%s: decode error: %s", __func__, ssh_err(r)); | ||
2189 | fatal("%s: stop listening request failed: %s", __func__, e); | 2285 | fatal("%s: stop listening request failed: %s", __func__, e); |
2190 | default: | 2286 | default: |
2191 | fatal("%s: unexpected response from master 0x%08x", | 2287 | fatal("%s: unexpected response from master 0x%08x", |
2192 | __func__, type); | 2288 | __func__, type); |
2193 | } | 2289 | } |
2194 | buffer_free(&m); | 2290 | sshbuf_free(m); |
2195 | muxclient_request_id++; | 2291 | muxclient_request_id++; |
2196 | } | 2292 | } |
2197 | 2293 | ||
diff --git a/myproposal.h b/myproposal.h index c255147aa..08782dd30 100644 --- a/myproposal.h +++ b/myproposal.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: myproposal.h,v 1.55 2017/05/07 23:13:42 djm Exp $ */ | 1 | /* $OpenBSD: myproposal.h,v 1.56 2018/07/03 11:39:54 djm Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Copyright (c) 2000 Markus Friedl. All rights reserved. | 4 | * Copyright (c) 2000 Markus Friedl. All rights reserved. |
@@ -107,6 +107,8 @@ | |||
107 | #define KEX_DEFAULT_PK_ALG \ | 107 | #define KEX_DEFAULT_PK_ALG \ |
108 | HOSTKEY_ECDSA_CERT_METHODS \ | 108 | HOSTKEY_ECDSA_CERT_METHODS \ |
109 | "ssh-ed25519-cert-v01@openssh.com," \ | 109 | "ssh-ed25519-cert-v01@openssh.com," \ |
110 | "rsa-sha2-512-cert-v01@openssh.com," \ | ||
111 | "rsa-sha2-256-cert-v01@openssh.com," \ | ||
110 | "ssh-rsa-cert-v01@openssh.com," \ | 112 | "ssh-rsa-cert-v01@openssh.com," \ |
111 | HOSTKEY_ECDSA_METHODS \ | 113 | HOSTKEY_ECDSA_METHODS \ |
112 | "ssh-ed25519," \ | 114 | "ssh-ed25519," \ |
@@ -3,6 +3,8 @@ | |||
3 | 3 | ||
4 | #include "includes.h" | 4 | #include "includes.h" |
5 | 5 | ||
6 | #include <stdarg.h> | ||
7 | |||
6 | #include "ssherr.h" | 8 | #include "ssherr.h" |
7 | #include "packet.h" | 9 | #include "packet.h" |
8 | #include "log.h" | 10 | #include "log.h" |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: opacket.h,v 1.12 2017/10/20 01:56:39 djm Exp $ */ | 1 | /* $OpenBSD: opacket.h,v 1.13 2018/07/06 09:03:02 sf Exp $ */ |
2 | #ifndef _OPACKET_H | 2 | #ifndef _OPACKET_H |
3 | /* Written by Markus Friedl. Placed in the public domain. */ | 3 | /* Written by Markus Friedl. Placed in the public domain. */ |
4 | 4 | ||
@@ -59,8 +59,6 @@ void packet_read_expect(int expected_type); | |||
59 | ssh_packet_set_protocol_flags(active_state, (protocol_flags)) | 59 | ssh_packet_set_protocol_flags(active_state, (protocol_flags)) |
60 | #define packet_get_protocol_flags() \ | 60 | #define packet_get_protocol_flags() \ |
61 | ssh_packet_get_protocol_flags(active_state) | 61 | ssh_packet_get_protocol_flags(active_state) |
62 | #define packet_start_compression(level) \ | ||
63 | ssh_packet_start_compression(active_state, (level)) | ||
64 | #define packet_start(type) \ | 62 | #define packet_start(type) \ |
65 | ssh_packet_start(active_state, (type)) | 63 | ssh_packet_start(active_state, (type)) |
66 | #define packet_put_char(value) \ | 64 | #define packet_put_char(value) \ |
diff --git a/openbsd-compat/Makefile.in b/openbsd-compat/Makefile.in index 8e3b42991..2fd9b952b 100644 --- a/openbsd-compat/Makefile.in +++ b/openbsd-compat/Makefile.in | |||
@@ -68,6 +68,7 @@ COMPAT= arc4random.o \ | |||
68 | bsd-cygwin_util.o \ | 68 | bsd-cygwin_util.o \ |
69 | bsd-err.o \ | 69 | bsd-err.o \ |
70 | bsd-flock.o \ | 70 | bsd-flock.o \ |
71 | bsd-getline.o \ | ||
71 | bsd-getpagesize.o \ | 72 | bsd-getpagesize.o \ |
72 | bsd-getpeereid.o \ | 73 | bsd-getpeereid.o \ |
73 | bsd-malloc.o \ | 74 | bsd-malloc.o \ |
diff --git a/openbsd-compat/arc4random.c b/openbsd-compat/arc4random.c index b6256b4f8..578f69f4f 100644 --- a/openbsd-compat/arc4random.c +++ b/openbsd-compat/arc4random.c | |||
@@ -33,6 +33,10 @@ | |||
33 | #include <string.h> | 33 | #include <string.h> |
34 | #include <unistd.h> | 34 | #include <unistd.h> |
35 | 35 | ||
36 | #ifdef HAVE_SYS_RANDOM_H | ||
37 | # include <sys/random.h> | ||
38 | #endif | ||
39 | |||
36 | #ifndef HAVE_ARC4RANDOM | 40 | #ifndef HAVE_ARC4RANDOM |
37 | 41 | ||
38 | #ifdef WITH_OPENSSL | 42 | #ifdef WITH_OPENSSL |
@@ -78,8 +82,9 @@ _rs_init(u_char *buf, size_t n) | |||
78 | } | 82 | } |
79 | 83 | ||
80 | #ifndef WITH_OPENSSL | 84 | #ifndef WITH_OPENSSL |
81 | #define SSH_RANDOM_DEV "/dev/urandom" | 85 | # ifndef SSH_RANDOM_DEV |
82 | /* XXX use getrandom() if supported on Linux */ | 86 | # define SSH_RANDOM_DEV "/dev/urandom" |
87 | # endif /* SSH_RANDOM_DEV */ | ||
83 | static void | 88 | static void |
84 | getrnd(u_char *s, size_t len) | 89 | getrnd(u_char *s, size_t len) |
85 | { | 90 | { |
@@ -87,6 +92,11 @@ getrnd(u_char *s, size_t len) | |||
87 | ssize_t r; | 92 | ssize_t r; |
88 | size_t o = 0; | 93 | size_t o = 0; |
89 | 94 | ||
95 | #ifdef HAVE_GETRANDOM | ||
96 | if ((r = getrandom(s, len, 0)) > 0 && (size_t)r == len) | ||
97 | return; | ||
98 | #endif /* HAVE_GETRANDOM */ | ||
99 | |||
90 | if ((fd = open(SSH_RANDOM_DEV, O_RDONLY)) == -1) | 100 | if ((fd = open(SSH_RANDOM_DEV, O_RDONLY)) == -1) |
91 | fatal("Couldn't open %s: %s", SSH_RANDOM_DEV, strerror(errno)); | 101 | fatal("Couldn't open %s: %s", SSH_RANDOM_DEV, strerror(errno)); |
92 | while (o < len) { | 102 | while (o < len) { |
@@ -101,7 +111,7 @@ getrnd(u_char *s, size_t len) | |||
101 | } | 111 | } |
102 | close(fd); | 112 | close(fd); |
103 | } | 113 | } |
104 | #endif | 114 | #endif /* WITH_OPENSSL */ |
105 | 115 | ||
106 | static void | 116 | static void |
107 | _rs_stir(void) | 117 | _rs_stir(void) |
diff --git a/openbsd-compat/bcrypt_pbkdf.c b/openbsd-compat/bcrypt_pbkdf.c index 0a07f9a0f..785234563 100644 --- a/openbsd-compat/bcrypt_pbkdf.c +++ b/openbsd-compat/bcrypt_pbkdf.c | |||
@@ -46,7 +46,7 @@ | |||
46 | * function with the following modifications: | 46 | * function with the following modifications: |
47 | * 1. The input password and salt are preprocessed with SHA512. | 47 | * 1. The input password and salt are preprocessed with SHA512. |
48 | * 2. The output length is expanded to 256 bits. | 48 | * 2. The output length is expanded to 256 bits. |
49 | * 3. Subsequently the magic string to be encrypted is lengthened and modifed | 49 | * 3. Subsequently the magic string to be encrypted is lengthened and modified |
50 | * to "OxychromaticBlowfishSwatDynamite" | 50 | * to "OxychromaticBlowfishSwatDynamite" |
51 | * 4. The hash function is defined to perform 64 rounds of initial state | 51 | * 4. The hash function is defined to perform 64 rounds of initial state |
52 | * expansion. (More rounds are performed by iterating the hash.) | 52 | * expansion. (More rounds are performed by iterating the hash.) |
diff --git a/openbsd-compat/bsd-closefrom.c b/openbsd-compat/bsd-closefrom.c index 9380b33a7..b56476a2d 100644 --- a/openbsd-compat/bsd-closefrom.c +++ b/openbsd-compat/bsd-closefrom.c | |||
@@ -77,7 +77,7 @@ closefrom(int lowfd) | |||
77 | 77 | ||
78 | /* Check for a /proc/$$/fd directory. */ | 78 | /* Check for a /proc/$$/fd directory. */ |
79 | len = snprintf(fdpath, sizeof(fdpath), "/proc/%ld/fd", (long)getpid()); | 79 | len = snprintf(fdpath, sizeof(fdpath), "/proc/%ld/fd", (long)getpid()); |
80 | if (len > 0 && (size_t)len <= sizeof(fdpath) && (dirp = opendir(fdpath))) { | 80 | if (len > 0 && (size_t)len < sizeof(fdpath) && (dirp = opendir(fdpath))) { |
81 | while ((dent = readdir(dirp)) != NULL) { | 81 | while ((dent = readdir(dirp)) != NULL) { |
82 | fd = strtol(dent->d_name, &endp, 10); | 82 | fd = strtol(dent->d_name, &endp, 10); |
83 | if (dent->d_name != endp && *endp == '\0' && | 83 | if (dent->d_name != endp && *endp == '\0' && |
diff --git a/openbsd-compat/bsd-cygwin_util.c b/openbsd-compat/bsd-cygwin_util.c index 398a5f617..fb49e30f5 100644 --- a/openbsd-compat/bsd-cygwin_util.c +++ b/openbsd-compat/bsd-cygwin_util.c | |||
@@ -36,6 +36,7 @@ | |||
36 | #include <fcntl.h> | 36 | #include <fcntl.h> |
37 | #include <string.h> | 37 | #include <string.h> |
38 | #include <unistd.h> | 38 | #include <unistd.h> |
39 | #include <stdarg.h> | ||
39 | 40 | ||
40 | #include "xmalloc.h" | 41 | #include "xmalloc.h" |
41 | 42 | ||
diff --git a/openbsd-compat/bsd-cygwin_util.h b/openbsd-compat/bsd-cygwin_util.h index 9cef694b9..202c055db 100644 --- a/openbsd-compat/bsd-cygwin_util.h +++ b/openbsd-compat/bsd-cygwin_util.h | |||
@@ -41,7 +41,7 @@ typedef void *HANDLE; | |||
41 | #define UNLEN 256 | 41 | #define UNLEN 256 |
42 | 42 | ||
43 | /* Cygwin functions for which declarations are only available when including | 43 | /* Cygwin functions for which declarations are only available when including |
44 | windows headers, so we have to define them here explicitely. */ | 44 | windows headers, so we have to define them here explicitly. */ |
45 | extern HANDLE cygwin_logon_user (const struct passwd *, const char *); | 45 | extern HANDLE cygwin_logon_user (const struct passwd *, const char *); |
46 | extern void cygwin_set_impersonation_token (const HANDLE); | 46 | extern void cygwin_set_impersonation_token (const HANDLE); |
47 | 47 | ||
diff --git a/openbsd-compat/bsd-getline.c b/openbsd-compat/bsd-getline.c new file mode 100644 index 000000000..d676f4cef --- /dev/null +++ b/openbsd-compat/bsd-getline.c | |||
@@ -0,0 +1,113 @@ | |||
1 | /* $NetBSD: getline.c,v 1.1.1.6 2015/01/02 20:34:27 christos Exp $ */ | ||
2 | |||
3 | /* NetBSD: getline.c,v 1.2 2014/09/16 17:23:50 christos Exp */ | ||
4 | |||
5 | /*- | ||
6 | * Copyright (c) 2011 The NetBSD Foundation, Inc. | ||
7 | * All rights reserved. | ||
8 | * | ||
9 | * This code is derived from software contributed to The NetBSD Foundation | ||
10 | * by Christos Zoulas. | ||
11 | * | ||
12 | * Redistribution and use in source and binary forms, with or without | ||
13 | * modification, are permitted provided that the following conditions | ||
14 | * are met: | ||
15 | * 1. Redistributions of source code must retain the above copyright | ||
16 | * notice, this list of conditions and the following disclaimer. | ||
17 | * 2. Redistributions in binary form must reproduce the above copyright | ||
18 | * notice, this list of conditions and the following disclaimer in the | ||
19 | * documentation and/or other materials provided with the distribution. | ||
20 | * | ||
21 | * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS | ||
22 | * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED | ||
23 | * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | ||
24 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS | ||
25 | * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | ||
26 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | ||
27 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | ||
28 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | ||
29 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||
30 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||
31 | * POSSIBILITY OF SUCH DAMAGE. | ||
32 | */ | ||
33 | |||
34 | /* NETBSD ORIGINAL: external/bsd/file/dist/src/getline.c */ | ||
35 | |||
36 | #include "includes.h" | ||
37 | |||
38 | #if 0 | ||
39 | #include "file.h" | ||
40 | #endif | ||
41 | |||
42 | #if !HAVE_GETLINE | ||
43 | #include <stdlib.h> | ||
44 | #include <stdio.h> | ||
45 | #include <unistd.h> | ||
46 | #include <errno.h> | ||
47 | #include <string.h> | ||
48 | |||
49 | static ssize_t | ||
50 | getdelim(char **buf, size_t *bufsiz, int delimiter, FILE *fp) | ||
51 | { | ||
52 | char *ptr, *eptr; | ||
53 | |||
54 | |||
55 | if (*buf == NULL || *bufsiz == 0) { | ||
56 | if ((*buf = malloc(BUFSIZ)) == NULL) | ||
57 | return -1; | ||
58 | *bufsiz = BUFSIZ; | ||
59 | } | ||
60 | |||
61 | for (ptr = *buf, eptr = *buf + *bufsiz;;) { | ||
62 | int c = fgetc(fp); | ||
63 | if (c == -1) { | ||
64 | if (feof(fp)) { | ||
65 | ssize_t diff = (ssize_t)(ptr - *buf); | ||
66 | if (diff != 0) { | ||
67 | *ptr = '\0'; | ||
68 | return diff; | ||
69 | } | ||
70 | } | ||
71 | return -1; | ||
72 | } | ||
73 | *ptr++ = c; | ||
74 | if (c == delimiter) { | ||
75 | *ptr = '\0'; | ||
76 | return ptr - *buf; | ||
77 | } | ||
78 | if (ptr + 2 >= eptr) { | ||
79 | char *nbuf; | ||
80 | size_t nbufsiz = *bufsiz * 2; | ||
81 | ssize_t d = ptr - *buf; | ||
82 | if ((nbuf = realloc(*buf, nbufsiz)) == NULL) | ||
83 | return -1; | ||
84 | *buf = nbuf; | ||
85 | *bufsiz = nbufsiz; | ||
86 | eptr = nbuf + nbufsiz; | ||
87 | ptr = nbuf + d; | ||
88 | } | ||
89 | } | ||
90 | } | ||
91 | |||
92 | ssize_t | ||
93 | getline(char **buf, size_t *bufsiz, FILE *fp) | ||
94 | { | ||
95 | return getdelim(buf, bufsiz, '\n', fp); | ||
96 | } | ||
97 | |||
98 | #endif | ||
99 | |||
100 | #ifdef TEST | ||
101 | int | ||
102 | main(int argc, char *argv[]) | ||
103 | { | ||
104 | char *p = NULL; | ||
105 | ssize_t len; | ||
106 | size_t n = 0; | ||
107 | |||
108 | while ((len = getline(&p, &n, stdin)) != -1) | ||
109 | (void)printf("%" SIZE_T_FORMAT "d %s", len, p); | ||
110 | free(p); | ||
111 | return 0; | ||
112 | } | ||
113 | #endif | ||
diff --git a/openbsd-compat/bsd-misc.c b/openbsd-compat/bsd-misc.c index 3daf61071..b6893e171 100644 --- a/openbsd-compat/bsd-misc.c +++ b/openbsd-compat/bsd-misc.c | |||
@@ -28,6 +28,7 @@ | |||
28 | #include <string.h> | 28 | #include <string.h> |
29 | #include <signal.h> | 29 | #include <signal.h> |
30 | #include <stdlib.h> | 30 | #include <stdlib.h> |
31 | #include <stdio.h> | ||
31 | #include <time.h> | 32 | #include <time.h> |
32 | #include <unistd.h> | 33 | #include <unistd.h> |
33 | 34 | ||
diff --git a/openbsd-compat/bsd-nextstep.h b/openbsd-compat/bsd-nextstep.h index 610f9e381..4a45b15af 100644 --- a/openbsd-compat/bsd-nextstep.h +++ b/openbsd-compat/bsd-nextstep.h | |||
@@ -36,7 +36,7 @@ | |||
36 | /* NeXT's readdir() is BSD (struct direct) not POSIX (struct dirent) */ | 36 | /* NeXT's readdir() is BSD (struct direct) not POSIX (struct dirent) */ |
37 | #define dirent direct | 37 | #define dirent direct |
38 | 38 | ||
39 | /* Swap out NeXT's BSD wait() for a more POSIX complient one */ | 39 | /* Swap out NeXT's BSD wait() for a more POSIX compliant one */ |
40 | pid_t posix_wait(int *); | 40 | pid_t posix_wait(int *); |
41 | #define wait(a) posix_wait(a) | 41 | #define wait(a) posix_wait(a) |
42 | 42 | ||
diff --git a/openbsd-compat/bsd-snprintf.c b/openbsd-compat/bsd-snprintf.c index d95b6a401..f27b9d808 100644 --- a/openbsd-compat/bsd-snprintf.c +++ b/openbsd-compat/bsd-snprintf.c | |||
@@ -30,7 +30,7 @@ | |||
30 | * probably requires libm on most operating systems. Don't yet | 30 | * probably requires libm on most operating systems. Don't yet |
31 | * support the exponent (e,E) and sigfig (g,G). Also, fmtint() | 31 | * support the exponent (e,E) and sigfig (g,G). Also, fmtint() |
32 | * was pretty badly broken, it just wasn't being exercised in ways | 32 | * was pretty badly broken, it just wasn't being exercised in ways |
33 | * which showed it, so that's been fixed. Also, formated the code | 33 | * which showed it, so that's been fixed. Also, formatted the code |
34 | * to mutt conventions, and removed dead code left over from the | 34 | * to mutt conventions, and removed dead code left over from the |
35 | * original. Also, there is now a builtin-test, just compile with: | 35 | * original. Also, there is now a builtin-test, just compile with: |
36 | * gcc -DTEST_SNPRINTF -o snprintf snprintf.c -lm | 36 | * gcc -DTEST_SNPRINTF -o snprintf snprintf.c -lm |
diff --git a/openbsd-compat/bsd-waitpid.h b/openbsd-compat/bsd-waitpid.h index 5ce3ee4b5..b551268ab 100644 --- a/openbsd-compat/bsd-waitpid.h +++ b/openbsd-compat/bsd-waitpid.h | |||
@@ -27,7 +27,7 @@ | |||
27 | #define _BSD_WAITPID_H | 27 | #define _BSD_WAITPID_H |
28 | 28 | ||
29 | #ifndef HAVE_WAITPID | 29 | #ifndef HAVE_WAITPID |
30 | /* Clean out any potental issues */ | 30 | /* Clean out any potential issues */ |
31 | #undef WIFEXITED | 31 | #undef WIFEXITED |
32 | #undef WIFSTOPPED | 32 | #undef WIFSTOPPED |
33 | #undef WIFSIGNALED | 33 | #undef WIFSIGNALED |
diff --git a/openbsd-compat/explicit_bzero.c b/openbsd-compat/explicit_bzero.c index 53a003472..6ef9825a9 100644 --- a/openbsd-compat/explicit_bzero.c +++ b/openbsd-compat/explicit_bzero.c | |||
@@ -41,7 +41,7 @@ explicit_bzero(void *p, size_t n) | |||
41 | /* | 41 | /* |
42 | * clang -fsanitize=memory needs to intercept memset-like functions | 42 | * clang -fsanitize=memory needs to intercept memset-like functions |
43 | * to correctly detect memory initialisation. Make sure one is called | 43 | * to correctly detect memory initialisation. Make sure one is called |
44 | * directly since our indirection trick above sucessfully confuses it. | 44 | * directly since our indirection trick above successfully confuses it. |
45 | */ | 45 | */ |
46 | #if defined(__has_feature) | 46 | #if defined(__has_feature) |
47 | # if __has_feature(memory_sanitizer) | 47 | # if __has_feature(memory_sanitizer) |
diff --git a/openbsd-compat/fmt_scaled.c b/openbsd-compat/fmt_scaled.c index 7c5193e26..2f76ef931 100644 --- a/openbsd-compat/fmt_scaled.c +++ b/openbsd-compat/fmt_scaled.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: fmt_scaled.c,v 1.16 2017/03/16 02:40:46 dtucker Exp $ */ | 1 | /* $OpenBSD: fmt_scaled.c,v 1.17 2018/05/14 04:39:04 djm Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Copyright (c) 2001, 2002, 2003 Ian F. Darwin. All rights reserved. | 4 | * Copyright (c) 2001, 2002, 2003 Ian F. Darwin. All rights reserved. |
@@ -188,7 +188,7 @@ scan_scaled(char *scaled, long long *result) | |||
188 | /* scale whole part */ | 188 | /* scale whole part */ |
189 | whole *= scale_fact; | 189 | whole *= scale_fact; |
190 | 190 | ||
191 | /* truncate fpart so it does't overflow. | 191 | /* truncate fpart so it doesn't overflow. |
192 | * then scale fractional part. | 192 | * then scale fractional part. |
193 | */ | 193 | */ |
194 | while (fpart >= LLONG_MAX / scale_fact) { | 194 | while (fpart >= LLONG_MAX / scale_fact) { |
@@ -246,12 +246,15 @@ fmt_scaled(long long number, char *result) | |||
246 | 246 | ||
247 | fract = (10 * fract + 512) / 1024; | 247 | fract = (10 * fract + 512) / 1024; |
248 | /* if the result would be >= 10, round main number */ | 248 | /* if the result would be >= 10, round main number */ |
249 | if (fract == 10) { | 249 | if (fract >= 10) { |
250 | if (number >= 0) | 250 | if (number >= 0) |
251 | number++; | 251 | number++; |
252 | else | 252 | else |
253 | number--; | 253 | number--; |
254 | fract = 0; | 254 | fract = 0; |
255 | } else if (fract < 0) { | ||
256 | /* shouldn't happen */ | ||
257 | fract = 0; | ||
255 | } | 258 | } |
256 | 259 | ||
257 | if (number == 0) | 260 | if (number == 0) |
diff --git a/openbsd-compat/freezero.c b/openbsd-compat/freezero.c index 90b9d3813..bad018ff0 100644 --- a/openbsd-compat/freezero.c +++ b/openbsd-compat/freezero.c | |||
@@ -16,6 +16,7 @@ | |||
16 | 16 | ||
17 | #include "includes.h" | 17 | #include "includes.h" |
18 | 18 | ||
19 | #include <stdlib.h> | ||
19 | #include <string.h> | 20 | #include <string.h> |
20 | 21 | ||
21 | #ifndef HAVE_FREEZERO | 22 | #ifndef HAVE_FREEZERO |
diff --git a/openbsd-compat/openbsd-compat.h b/openbsd-compat/openbsd-compat.h index b48fb9342..f5c833bf2 100644 --- a/openbsd-compat/openbsd-compat.h +++ b/openbsd-compat/openbsd-compat.h | |||
@@ -60,6 +60,10 @@ int bindresvport_sa(int sd, struct sockaddr *sa); | |||
60 | void closefrom(int); | 60 | void closefrom(int); |
61 | #endif | 61 | #endif |
62 | 62 | ||
63 | #ifndef HAVE_GETLINE | ||
64 | ssize_t getline(char **, size_t *, FILE *); | ||
65 | #endif | ||
66 | |||
63 | #ifndef HAVE_GETPAGESIZE | 67 | #ifndef HAVE_GETPAGESIZE |
64 | int getpagesize(void); | 68 | int getpagesize(void); |
65 | #endif | 69 | #endif |
diff --git a/openbsd-compat/port-aix.c b/openbsd-compat/port-aix.c index 79c868966..943177c70 100644 --- a/openbsd-compat/port-aix.c +++ b/openbsd-compat/port-aix.c | |||
@@ -27,8 +27,9 @@ | |||
27 | #include "includes.h" | 27 | #include "includes.h" |
28 | 28 | ||
29 | #include "xmalloc.h" | 29 | #include "xmalloc.h" |
30 | #include "buffer.h" | 30 | #include "sshbuf.h" |
31 | #include "key.h" | 31 | #include "ssherr.h" |
32 | #include "sshkey.h" | ||
32 | #include "hostfile.h" | 33 | #include "hostfile.h" |
33 | #include "auth.h" | 34 | #include "auth.h" |
34 | #include "ssh.h" | 35 | #include "ssh.h" |
@@ -176,7 +177,7 @@ sys_auth_passwd(struct ssh *ssh, const char *password) | |||
176 | { | 177 | { |
177 | Authctxt *ctxt = ssh->authctxt; | 178 | Authctxt *ctxt = ssh->authctxt; |
178 | char *authmsg = NULL, *msg = NULL, *name = ctxt->pw->pw_name; | 179 | char *authmsg = NULL, *msg = NULL, *name = ctxt->pw->pw_name; |
179 | int authsuccess = 0, expired, reenter, result; | 180 | int r, authsuccess = 0, expired, reenter, result; |
180 | 181 | ||
181 | do { | 182 | do { |
182 | result = authenticate((char *)name, (char *)password, &reenter, | 183 | result = authenticate((char *)name, (char *)password, &reenter, |
@@ -203,7 +204,10 @@ sys_auth_passwd(struct ssh *ssh, const char *password) | |||
203 | */ | 204 | */ |
204 | expired = passwdexpired(name, &msg); | 205 | expired = passwdexpired(name, &msg); |
205 | if (msg && *msg) { | 206 | if (msg && *msg) { |
206 | buffer_append(ctxt->loginmsg, msg, strlen(msg)); | 207 | if ((r = sshbuf_put(ctxt->loginmsg, |
208 | msg, strlen(msg))) != 0) | ||
209 | fatal("%s: buffer error: %s", | ||
210 | __func__, ssh_err(r)); | ||
207 | aix_remove_embedded_newlines(msg); | 211 | aix_remove_embedded_newlines(msg); |
208 | } | 212 | } |
209 | debug3("AIX/passwdexpired returned %d msg %.100s", expired, msg); | 213 | debug3("AIX/passwdexpired returned %d msg %.100s", expired, msg); |
@@ -234,10 +238,10 @@ sys_auth_passwd(struct ssh *ssh, const char *password) | |||
234 | * Returns 1 if login is allowed, 0 if not allowed. | 238 | * Returns 1 if login is allowed, 0 if not allowed. |
235 | */ | 239 | */ |
236 | int | 240 | int |
237 | sys_auth_allowed_user(struct passwd *pw, Buffer *loginmsg) | 241 | sys_auth_allowed_user(struct passwd *pw, struct sshbuf *loginmsg) |
238 | { | 242 | { |
239 | char *msg = NULL; | 243 | char *msg = NULL; |
240 | int result, permitted = 0; | 244 | int r, result, permitted = 0; |
241 | struct stat st; | 245 | struct stat st; |
242 | 246 | ||
243 | /* | 247 | /* |
@@ -260,8 +264,10 @@ sys_auth_allowed_user(struct passwd *pw, Buffer *loginmsg) | |||
260 | */ | 264 | */ |
261 | if (result == -1 && errno == EPERM && stat(_PATH_NOLOGIN, &st) == 0) | 265 | if (result == -1 && errno == EPERM && stat(_PATH_NOLOGIN, &st) == 0) |
262 | permitted = 1; | 266 | permitted = 1; |
263 | else if (msg != NULL) | 267 | else if (msg != NULL) { |
264 | buffer_append(loginmsg, msg, strlen(msg)); | 268 | if ((r = sshbuf_put(loginmsg, msg, strlen(msg))) != 0) |
269 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
270 | } | ||
265 | if (msg == NULL) | 271 | if (msg == NULL) |
266 | msg = xstrdup("(none)"); | 272 | msg = xstrdup("(none)"); |
267 | aix_remove_embedded_newlines(msg); | 273 | aix_remove_embedded_newlines(msg); |
@@ -275,7 +281,7 @@ sys_auth_allowed_user(struct passwd *pw, Buffer *loginmsg) | |||
275 | 281 | ||
276 | int | 282 | int |
277 | sys_auth_record_login(const char *user, const char *host, const char *ttynm, | 283 | sys_auth_record_login(const char *user, const char *host, const char *ttynm, |
278 | Buffer *loginmsg) | 284 | struct sshbuf *loginmsg) |
279 | { | 285 | { |
280 | char *msg = NULL; | 286 | char *msg = NULL; |
281 | int success = 0; | 287 | int success = 0; |
diff --git a/openbsd-compat/port-aix.h b/openbsd-compat/port-aix.h index 9c0a4dd3e..748c0e4e3 100644 --- a/openbsd-compat/port-aix.h +++ b/openbsd-compat/port-aix.h | |||
@@ -30,7 +30,7 @@ | |||
30 | # include <sys/socket.h> | 30 | # include <sys/socket.h> |
31 | #endif | 31 | #endif |
32 | 32 | ||
33 | #include "buffer.h" | 33 | struct sshbuf; |
34 | 34 | ||
35 | /* These should be in the system headers but are not. */ | 35 | /* These should be in the system headers but are not. */ |
36 | int usrinfo(int, char *, int); | 36 | int usrinfo(int, char *, int); |
@@ -87,9 +87,10 @@ void aix_usrinfo(struct passwd *); | |||
87 | #ifdef WITH_AIXAUTHENTICATE | 87 | #ifdef WITH_AIXAUTHENTICATE |
88 | # define CUSTOM_SYS_AUTH_PASSWD 1 | 88 | # define CUSTOM_SYS_AUTH_PASSWD 1 |
89 | # define CUSTOM_SYS_AUTH_ALLOWED_USER 1 | 89 | # define CUSTOM_SYS_AUTH_ALLOWED_USER 1 |
90 | int sys_auth_allowed_user(struct passwd *, Buffer *); | 90 | int sys_auth_allowed_user(struct passwd *, struct sshbuf *); |
91 | # define CUSTOM_SYS_AUTH_RECORD_LOGIN 1 | 91 | # define CUSTOM_SYS_AUTH_RECORD_LOGIN 1 |
92 | int sys_auth_record_login(const char *, const char *, const char *, Buffer *); | 92 | int sys_auth_record_login(const char *, const char *, |
93 | const char *, struct sshbuf *); | ||
93 | # define CUSTOM_SYS_AUTH_GET_LASTLOGIN_MSG | 94 | # define CUSTOM_SYS_AUTH_GET_LASTLOGIN_MSG |
94 | char *sys_auth_get_lastlogin_msg(const char *, uid_t); | 95 | char *sys_auth_get_lastlogin_msg(const char *, uid_t); |
95 | # define CUSTOM_FAILED_LOGIN 1 | 96 | # define CUSTOM_FAILED_LOGIN 1 |
diff --git a/openbsd-compat/port-net.c b/openbsd-compat/port-net.c index 7050629c3..bb535626f 100644 --- a/openbsd-compat/port-net.c +++ b/openbsd-compat/port-net.c | |||
@@ -185,7 +185,7 @@ sys_tun_open(int tun, int mode, char **ifname) | |||
185 | else | 185 | else |
186 | debug("%s: %s mode %d fd %d", __func__, ifr.ifr_name, mode, fd); | 186 | debug("%s: %s mode %d fd %d", __func__, ifr.ifr_name, mode, fd); |
187 | 187 | ||
188 | if (ifname != NULL && (*ifname = strdup(ifr.ifr_name))) | 188 | if (ifname != NULL && (*ifname = strdup(ifr.ifr_name)) == NULL) |
189 | goto failed; | 189 | goto failed; |
190 | 190 | ||
191 | return (fd); | 191 | return (fd); |
@@ -272,7 +272,7 @@ sys_tun_open(int tun, int mode, char **ifname) | |||
272 | goto failed; | 272 | goto failed; |
273 | } | 273 | } |
274 | 274 | ||
275 | if (ifname != NULL && (*ifname = strdup(ifr.ifr_name))) | 275 | if (ifname != NULL && (*ifname = strdup(ifr.ifr_name)) == NULL) |
276 | goto failed; | 276 | goto failed; |
277 | 277 | ||
278 | close(sock); | 278 | close(sock); |
diff --git a/openbsd-compat/port-uw.c b/openbsd-compat/port-uw.c index 014cac264..9edb1b481 100644 --- a/openbsd-compat/port-uw.c +++ b/openbsd-compat/port-uw.c | |||
@@ -38,8 +38,6 @@ | |||
38 | 38 | ||
39 | #include "xmalloc.h" | 39 | #include "xmalloc.h" |
40 | #include "packet.h" | 40 | #include "packet.h" |
41 | #include "buffer.h" | ||
42 | #include "key.h" | ||
43 | #include "auth-options.h" | 41 | #include "auth-options.h" |
44 | #include "log.h" | 42 | #include "log.h" |
45 | #include "misc.h" /* servconf.h needs misc.h for struct ForwardOptions */ | 43 | #include "misc.h" /* servconf.h needs misc.h for struct ForwardOptions */ |
@@ -99,7 +97,7 @@ nischeck(char *namep) | |||
99 | 97 | ||
100 | if ((fd = fopen (password_file, "r")) == NULL) { | 98 | if ((fd = fopen (password_file, "r")) == NULL) { |
101 | /* | 99 | /* |
102 | * If the passwd file has dissapeared we are in a bad state. | 100 | * If the passwd file has disappeared we are in a bad state. |
103 | * However, returning 0 will send us back through the | 101 | * However, returning 0 will send us back through the |
104 | * authentication scheme that has checked the ia database for | 102 | * authentication scheme that has checked the ia database for |
105 | * passwords earlier. | 103 | * passwords earlier. |
diff --git a/openbsd-compat/sha2.c b/openbsd-compat/sha2.c index a22099bbe..b55ea30ac 100644 --- a/openbsd-compat/sha2.c +++ b/openbsd-compat/sha2.c | |||
@@ -72,7 +72,7 @@ | |||
72 | * Please make sure that your system defines BYTE_ORDER. If your | 72 | * Please make sure that your system defines BYTE_ORDER. If your |
73 | * architecture is little-endian, make sure it also defines | 73 | * architecture is little-endian, make sure it also defines |
74 | * LITTLE_ENDIAN and that the two (BYTE_ORDER and LITTLE_ENDIAN) are | 74 | * LITTLE_ENDIAN and that the two (BYTE_ORDER and LITTLE_ENDIAN) are |
75 | * equivilent. | 75 | * equivalent. |
76 | * | 76 | * |
77 | * If your system does not define the above, then you can do so by | 77 | * If your system does not define the above, then you can do so by |
78 | * hand like this: | 78 | * hand like this: |
diff --git a/openbsd-compat/strndup.c b/openbsd-compat/strndup.c index ebb4eccfb..30ac6f046 100644 --- a/openbsd-compat/strndup.c +++ b/openbsd-compat/strndup.c | |||
@@ -16,7 +16,7 @@ | |||
16 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | 16 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
17 | */ | 17 | */ |
18 | 18 | ||
19 | #include "config.h" | 19 | #include "includes.h" |
20 | #if !defined(HAVE_STRNDUP) || defined(BROKEN_STRNDUP) | 20 | #if !defined(HAVE_STRNDUP) || defined(BROKEN_STRNDUP) |
21 | #include <sys/types.h> | 21 | #include <sys/types.h> |
22 | 22 | ||
diff --git a/openbsd-compat/strnlen.c b/openbsd-compat/strnlen.c index 8cc6b96b5..7ad3573a6 100644 --- a/openbsd-compat/strnlen.c +++ b/openbsd-compat/strnlen.c | |||
@@ -18,7 +18,7 @@ | |||
18 | 18 | ||
19 | /* OPENBSD ORIGINAL: lib/libc/string/strnlen.c */ | 19 | /* OPENBSD ORIGINAL: lib/libc/string/strnlen.c */ |
20 | 20 | ||
21 | #include "config.h" | 21 | #include "includes.h" |
22 | #if !defined(HAVE_STRNLEN) || defined(BROKEN_STRNLEN) | 22 | #if !defined(HAVE_STRNLEN) || defined(BROKEN_STRNLEN) |
23 | #include <sys/types.h> | 23 | #include <sys/types.h> |
24 | 24 | ||
diff --git a/openbsd-compat/sys-queue.h b/openbsd-compat/sys-queue.h index 28aaaa37a..af93d6814 100644 --- a/openbsd-compat/sys-queue.h +++ b/openbsd-compat/sys-queue.h | |||
@@ -45,6 +45,7 @@ | |||
45 | #undef SLIST_HEAD_INITIALIZER | 45 | #undef SLIST_HEAD_INITIALIZER |
46 | #undef SLIST_ENTRY | 46 | #undef SLIST_ENTRY |
47 | #undef SLIST_FOREACH_PREVPTR | 47 | #undef SLIST_FOREACH_PREVPTR |
48 | #undef SLIST_FOREACH_SAFE | ||
48 | #undef SLIST_FIRST | 49 | #undef SLIST_FIRST |
49 | #undef SLIST_END | 50 | #undef SLIST_END |
50 | #undef SLIST_EMPTY | 51 | #undef SLIST_EMPTY |
@@ -54,6 +55,7 @@ | |||
54 | #undef SLIST_INSERT_AFTER | 55 | #undef SLIST_INSERT_AFTER |
55 | #undef SLIST_INSERT_HEAD | 56 | #undef SLIST_INSERT_HEAD |
56 | #undef SLIST_REMOVE_HEAD | 57 | #undef SLIST_REMOVE_HEAD |
58 | #undef SLIST_REMOVE_AFTER | ||
57 | #undef SLIST_REMOVE | 59 | #undef SLIST_REMOVE |
58 | #undef SLIST_REMOVE_NEXT | 60 | #undef SLIST_REMOVE_NEXT |
59 | #undef LIST_HEAD | 61 | #undef LIST_HEAD |
@@ -64,6 +66,7 @@ | |||
64 | #undef LIST_EMPTY | 66 | #undef LIST_EMPTY |
65 | #undef LIST_NEXT | 67 | #undef LIST_NEXT |
66 | #undef LIST_FOREACH | 68 | #undef LIST_FOREACH |
69 | #undef LIST_FOREACH_SAFE | ||
67 | #undef LIST_INIT | 70 | #undef LIST_INIT |
68 | #undef LIST_INSERT_AFTER | 71 | #undef LIST_INSERT_AFTER |
69 | #undef LIST_INSERT_BEFORE | 72 | #undef LIST_INSERT_BEFORE |
@@ -94,6 +97,8 @@ | |||
94 | #undef TAILQ_EMPTY | 97 | #undef TAILQ_EMPTY |
95 | #undef TAILQ_FOREACH | 98 | #undef TAILQ_FOREACH |
96 | #undef TAILQ_FOREACH_REVERSE | 99 | #undef TAILQ_FOREACH_REVERSE |
100 | #undef TAILQ_FOREACH_SAFE | ||
101 | #undef TAILQ_FOREACH_REVERSE_SAFE | ||
97 | #undef TAILQ_INIT | 102 | #undef TAILQ_INIT |
98 | #undef TAILQ_INSERT_HEAD | 103 | #undef TAILQ_INSERT_HEAD |
99 | #undef TAILQ_INSERT_TAIL | 104 | #undef TAILQ_INSERT_TAIL |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: packet.c,v 1.269 2017/12/18 23:13:42 djm Exp $ */ | 1 | /* $OpenBSD: packet.c,v 1.277 2018/07/16 03:09:13 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -61,10 +61,19 @@ | |||
61 | #include <signal.h> | 61 | #include <signal.h> |
62 | #include <time.h> | 62 | #include <time.h> |
63 | 63 | ||
64 | #include <zlib.h> | 64 | /* |
65 | * Explicitly include OpenSSL before zlib as some versions of OpenSSL have | ||
66 | * "free_func" in their headers, which zlib typedefs. | ||
67 | */ | ||
68 | #ifdef WITH_OPENSSL | ||
69 | # include <openssl/bn.h> | ||
70 | # include <openssl/evp.h> | ||
71 | # ifdef OPENSSL_HAS_ECC | ||
72 | # include <openssl/ec.h> | ||
73 | # endif | ||
74 | #endif | ||
65 | 75 | ||
66 | #include "buffer.h" /* typedefs XXX */ | 76 | #include <zlib.h> |
67 | #include "key.h" /* typedefs XXX */ | ||
68 | 77 | ||
69 | #include "xmalloc.h" | 78 | #include "xmalloc.h" |
70 | #include "crc32.h" | 79 | #include "crc32.h" |
@@ -147,12 +156,6 @@ struct session_state { | |||
147 | int compression_in_failures; | 156 | int compression_in_failures; |
148 | int compression_out_failures; | 157 | int compression_out_failures; |
149 | 158 | ||
150 | /* | ||
151 | * Flag indicating whether packet compression/decompression is | ||
152 | * enabled. | ||
153 | */ | ||
154 | int packet_compression; | ||
155 | |||
156 | /* default maximum packet size */ | 159 | /* default maximum packet size */ |
157 | u_int max_packet_size; | 160 | u_int max_packet_size; |
158 | 161 | ||
@@ -418,13 +421,16 @@ ssh_packet_start_discard(struct ssh *ssh, struct sshenc *enc, | |||
418 | int | 421 | int |
419 | ssh_packet_connection_is_on_socket(struct ssh *ssh) | 422 | ssh_packet_connection_is_on_socket(struct ssh *ssh) |
420 | { | 423 | { |
421 | struct session_state *state = ssh->state; | 424 | struct session_state *state; |
422 | struct sockaddr_storage from, to; | 425 | struct sockaddr_storage from, to; |
423 | socklen_t fromlen, tolen; | 426 | socklen_t fromlen, tolen; |
424 | 427 | ||
425 | if (state->connection_in == -1 || state->connection_out == -1) | 428 | if (ssh == NULL || ssh->state == NULL) |
426 | return 0; | 429 | return 0; |
427 | 430 | ||
431 | state = ssh->state; | ||
432 | if (state->connection_in == -1 || state->connection_out == -1) | ||
433 | return 0; | ||
428 | /* filedescriptors in and out are the same, so it's a socket */ | 434 | /* filedescriptors in and out are the same, so it's a socket */ |
429 | if (state->connection_in == state->connection_out) | 435 | if (state->connection_in == state->connection_out) |
430 | return 1; | 436 | return 1; |
@@ -508,11 +514,12 @@ ssh_packet_get_connection_out(struct ssh *ssh) | |||
508 | const char * | 514 | const char * |
509 | ssh_remote_ipaddr(struct ssh *ssh) | 515 | ssh_remote_ipaddr(struct ssh *ssh) |
510 | { | 516 | { |
511 | const int sock = ssh->state->connection_in; | 517 | int sock; |
512 | 518 | ||
513 | /* Check whether we have cached the ipaddr. */ | 519 | /* Check whether we have cached the ipaddr. */ |
514 | if (ssh->remote_ipaddr == NULL) { | 520 | if (ssh->remote_ipaddr == NULL) { |
515 | if (ssh_packet_connection_is_on_socket(ssh)) { | 521 | if (ssh_packet_connection_is_on_socket(ssh)) { |
522 | sock = ssh->state->connection_in; | ||
516 | ssh->remote_ipaddr = get_peer_ipaddr(sock); | 523 | ssh->remote_ipaddr = get_peer_ipaddr(sock); |
517 | ssh->remote_port = get_peer_port(sock); | 524 | ssh->remote_port = get_peer_port(sock); |
518 | ssh->local_ipaddr = get_local_ipaddr(sock); | 525 | ssh->local_ipaddr = get_local_ipaddr(sock); |
@@ -597,7 +604,7 @@ ssh_packet_close_internal(struct ssh *ssh, int do_close) | |||
597 | state->newkeys[mode] = NULL; | 604 | state->newkeys[mode] = NULL; |
598 | ssh_clear_newkeys(ssh, mode); /* next keys */ | 605 | ssh_clear_newkeys(ssh, mode); /* next keys */ |
599 | } | 606 | } |
600 | /* comression state is in shared mem, so we can only release it once */ | 607 | /* compression state is in shared mem, so we can only release it once */ |
601 | if (do_close && state->compression_buffer) { | 608 | if (do_close && state->compression_buffer) { |
602 | sshbuf_free(state->compression_buffer); | 609 | sshbuf_free(state->compression_buffer); |
603 | if (state->compression_out_started) { | 610 | if (state->compression_out_started) { |
@@ -627,6 +634,8 @@ ssh_packet_close_internal(struct ssh *ssh, int do_close) | |||
627 | cipher_free(state->receive_context); | 634 | cipher_free(state->receive_context); |
628 | state->send_context = state->receive_context = NULL; | 635 | state->send_context = state->receive_context = NULL; |
629 | if (do_close) { | 636 | if (do_close) { |
637 | free(ssh->local_ipaddr); | ||
638 | ssh->local_ipaddr = NULL; | ||
630 | free(ssh->remote_ipaddr); | 639 | free(ssh->remote_ipaddr); |
631 | ssh->remote_ipaddr = NULL; | 640 | ssh->remote_ipaddr = NULL; |
632 | free(ssh->state); | 641 | free(ssh->state); |
@@ -713,21 +722,6 @@ start_compression_in(struct ssh *ssh) | |||
713 | return 0; | 722 | return 0; |
714 | } | 723 | } |
715 | 724 | ||
716 | int | ||
717 | ssh_packet_start_compression(struct ssh *ssh, int level) | ||
718 | { | ||
719 | int r; | ||
720 | |||
721 | if (ssh->state->packet_compression) | ||
722 | return SSH_ERR_INTERNAL_ERROR; | ||
723 | ssh->state->packet_compression = 1; | ||
724 | if ((r = ssh_packet_init_compression(ssh)) != 0 || | ||
725 | (r = start_compression_in(ssh)) != 0 || | ||
726 | (r = start_compression_out(ssh, level)) != 0) | ||
727 | return r; | ||
728 | return 0; | ||
729 | } | ||
730 | |||
731 | /* XXX remove need for separate compression buffer */ | 725 | /* XXX remove need for separate compression buffer */ |
732 | static int | 726 | static int |
733 | compress_buffer(struct ssh *ssh, struct sshbuf *in, struct sshbuf *out) | 727 | compress_buffer(struct ssh *ssh, struct sshbuf *in, struct sshbuf *out) |
@@ -965,7 +959,7 @@ ssh_packet_need_rekeying(struct ssh *ssh, u_int outbound_packet_len) | |||
965 | state->p_read.packets > MAX_PACKETS) | 959 | state->p_read.packets > MAX_PACKETS) |
966 | return 1; | 960 | return 1; |
967 | 961 | ||
968 | /* Rekey after (cipher-specific) maxiumum blocks */ | 962 | /* Rekey after (cipher-specific) maximum blocks */ |
969 | out_blocks = ROUNDUP(outbound_packet_len, | 963 | out_blocks = ROUNDUP(outbound_packet_len, |
970 | state->newkeys[MODE_OUT]->enc.block_size); | 964 | state->newkeys[MODE_OUT]->enc.block_size); |
971 | return (state->max_blocks_out && | 965 | return (state->max_blocks_out && |
@@ -1338,8 +1332,10 @@ ssh_packet_read_seqnr(struct ssh *ssh, u_char *typep, u_int32_t *seqnr_p) | |||
1338 | NULL, NULL, timeoutp)) >= 0) | 1332 | NULL, NULL, timeoutp)) >= 0) |
1339 | break; | 1333 | break; |
1340 | if (errno != EAGAIN && errno != EINTR && | 1334 | if (errno != EAGAIN && errno != EINTR && |
1341 | errno != EWOULDBLOCK) | 1335 | errno != EWOULDBLOCK) { |
1342 | break; | 1336 | r = SSH_ERR_SYSTEM_ERROR; |
1337 | goto out; | ||
1338 | } | ||
1343 | if (state->packet_timeout_ms == -1) | 1339 | if (state->packet_timeout_ms == -1) |
1344 | continue; | 1340 | continue; |
1345 | ms_subtract_diff(&start, &ms_remain); | 1341 | ms_subtract_diff(&start, &ms_remain); |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: packet.h,v 1.84 2017/12/10 05:55:29 dtucker Exp $ */ | 1 | /* $OpenBSD: packet.h,v 1.86 2018/07/09 21:20:26 markus Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
@@ -107,7 +107,6 @@ void ssh_clear_newkeys(struct ssh *, int); | |||
107 | int ssh_packet_is_rekeying(struct ssh *); | 107 | int ssh_packet_is_rekeying(struct ssh *); |
108 | void ssh_packet_set_protocol_flags(struct ssh *, u_int); | 108 | void ssh_packet_set_protocol_flags(struct ssh *, u_int); |
109 | u_int ssh_packet_get_protocol_flags(struct ssh *); | 109 | u_int ssh_packet_get_protocol_flags(struct ssh *); |
110 | int ssh_packet_start_compression(struct ssh *, int); | ||
111 | void ssh_packet_set_tos(struct ssh *, int); | 110 | void ssh_packet_set_tos(struct ssh *, int); |
112 | void ssh_packet_set_interactive(struct ssh *, int, int, int); | 111 | void ssh_packet_set_interactive(struct ssh *, int, int, int); |
113 | int ssh_packet_is_interactive(struct ssh *); | 112 | int ssh_packet_is_interactive(struct ssh *); |
@@ -148,8 +147,8 @@ int ssh_packet_not_very_much_data_to_write(struct ssh *); | |||
148 | int ssh_packet_connection_is_on_socket(struct ssh *); | 147 | int ssh_packet_connection_is_on_socket(struct ssh *); |
149 | int ssh_packet_remaining(struct ssh *); | 148 | int ssh_packet_remaining(struct ssh *); |
150 | 149 | ||
151 | void tty_make_modes(int, struct termios *); | 150 | void ssh_tty_make_modes(struct ssh *, int, struct termios *); |
152 | void tty_parse_modes(int, int *); | 151 | void ssh_tty_parse_modes(struct ssh *, int); |
153 | 152 | ||
154 | void ssh_packet_set_alive_timeouts(struct ssh *, int); | 153 | void ssh_packet_set_alive_timeouts(struct ssh *, int); |
155 | int ssh_packet_inc_alive_timeouts(struct ssh *); | 154 | int ssh_packet_inc_alive_timeouts(struct ssh *); |
diff --git a/platform.c b/platform.c index 18c7751de..41acc9370 100644 --- a/platform.c +++ b/platform.c | |||
@@ -20,10 +20,9 @@ | |||
20 | #include <unistd.h> | 20 | #include <unistd.h> |
21 | 21 | ||
22 | #include "log.h" | 22 | #include "log.h" |
23 | #include "buffer.h" | ||
24 | #include "misc.h" | 23 | #include "misc.h" |
25 | #include "servconf.h" | 24 | #include "servconf.h" |
26 | #include "key.h" | 25 | #include "sshkey.h" |
27 | #include "hostfile.h" | 26 | #include "hostfile.h" |
28 | #include "auth.h" | 27 | #include "auth.h" |
29 | #include "auth-pam.h" | 28 | #include "auth-pam.h" |
diff --git a/readconf.c b/readconf.c index 88051db57..db5f2d547 100644 --- a/readconf.c +++ b/readconf.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: readconf.c,v 1.283 2018/02/23 15:58:37 markus Exp $ */ | 1 | /* $OpenBSD: readconf.c,v 1.297 2018/08/12 20:19:13 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -53,6 +53,7 @@ | |||
53 | 53 | ||
54 | #include "xmalloc.h" | 54 | #include "xmalloc.h" |
55 | #include "ssh.h" | 55 | #include "ssh.h" |
56 | #include "ssherr.h" | ||
56 | #include "compat.h" | 57 | #include "compat.h" |
57 | #include "cipher.h" | 58 | #include "cipher.h" |
58 | #include "pathnames.h" | 59 | #include "pathnames.h" |
@@ -161,7 +162,7 @@ typedef enum { | |||
161 | oEnableSSHKeysign, oRekeyLimit, oVerifyHostKeyDNS, oConnectTimeout, | 162 | oEnableSSHKeysign, oRekeyLimit, oVerifyHostKeyDNS, oConnectTimeout, |
162 | oAddressFamily, oGssAuthentication, oGssDelegateCreds, | 163 | oAddressFamily, oGssAuthentication, oGssDelegateCreds, |
163 | oServerAliveInterval, oServerAliveCountMax, oIdentitiesOnly, | 164 | oServerAliveInterval, oServerAliveCountMax, oIdentitiesOnly, |
164 | oSendEnv, oControlPath, oControlMaster, oControlPersist, | 165 | oSendEnv, oSetEnv, oControlPath, oControlMaster, oControlPersist, |
165 | oHashKnownHosts, | 166 | oHashKnownHosts, |
166 | oTunnel, oTunnelDevice, | 167 | oTunnel, oTunnelDevice, |
167 | oLocalCommand, oPermitLocalCommand, oRemoteCommand, | 168 | oLocalCommand, oPermitLocalCommand, oRemoteCommand, |
@@ -190,6 +191,7 @@ static struct { | |||
190 | { "userknownhostsfile2", oDeprecated }, | 191 | { "userknownhostsfile2", oDeprecated }, |
191 | { "useroaming", oDeprecated }, | 192 | { "useroaming", oDeprecated }, |
192 | { "usersh", oDeprecated }, | 193 | { "usersh", oDeprecated }, |
194 | { "useprivilegedport", oDeprecated }, | ||
193 | 195 | ||
194 | /* Unsupported options */ | 196 | /* Unsupported options */ |
195 | { "afstokenpassing", oUnsupported }, | 197 | { "afstokenpassing", oUnsupported }, |
@@ -222,7 +224,6 @@ static struct { | |||
222 | { "exitonforwardfailure", oExitOnForwardFailure }, | 224 | { "exitonforwardfailure", oExitOnForwardFailure }, |
223 | { "xauthlocation", oXAuthLocation }, | 225 | { "xauthlocation", oXAuthLocation }, |
224 | { "gatewayports", oGatewayPorts }, | 226 | { "gatewayports", oGatewayPorts }, |
225 | { "useprivilegedport", oUsePrivilegedPort }, | ||
226 | { "passwordauthentication", oPasswordAuthentication }, | 227 | { "passwordauthentication", oPasswordAuthentication }, |
227 | { "kbdinteractiveauthentication", oKbdInteractiveAuthentication }, | 228 | { "kbdinteractiveauthentication", oKbdInteractiveAuthentication }, |
228 | { "kbdinteractivedevices", oKbdInteractiveDevices }, | 229 | { "kbdinteractivedevices", oKbdInteractiveDevices }, |
@@ -230,7 +231,7 @@ static struct { | |||
230 | { "dsaauthentication", oPubkeyAuthentication }, /* alias */ | 231 | { "dsaauthentication", oPubkeyAuthentication }, /* alias */ |
231 | { "hostbasedauthentication", oHostbasedAuthentication }, | 232 | { "hostbasedauthentication", oHostbasedAuthentication }, |
232 | { "challengeresponseauthentication", oChallengeResponseAuthentication }, | 233 | { "challengeresponseauthentication", oChallengeResponseAuthentication }, |
233 | { "skeyauthentication", oChallengeResponseAuthentication }, /* alias */ | 234 | { "skeyauthentication", oUnsupported }, |
234 | { "tisauthentication", oChallengeResponseAuthentication }, /* alias */ | 235 | { "tisauthentication", oChallengeResponseAuthentication }, /* alias */ |
235 | { "identityfile", oIdentityFile }, | 236 | { "identityfile", oIdentityFile }, |
236 | { "identityfile2", oIdentityFile }, /* obsolete */ | 237 | { "identityfile2", oIdentityFile }, /* obsolete */ |
@@ -277,6 +278,7 @@ static struct { | |||
277 | { "serveraliveinterval", oServerAliveInterval }, | 278 | { "serveraliveinterval", oServerAliveInterval }, |
278 | { "serveralivecountmax", oServerAliveCountMax }, | 279 | { "serveralivecountmax", oServerAliveCountMax }, |
279 | { "sendenv", oSendEnv }, | 280 | { "sendenv", oSendEnv }, |
281 | { "setenv", oSetEnv }, | ||
280 | { "controlpath", oControlPath }, | 282 | { "controlpath", oControlPath }, |
281 | { "controlmaster", oControlMaster }, | 283 | { "controlmaster", oControlMaster }, |
282 | { "controlpersist", oControlPersist }, | 284 | { "controlpersist", oControlPersist }, |
@@ -319,12 +321,8 @@ void | |||
319 | add_local_forward(Options *options, const struct Forward *newfwd) | 321 | add_local_forward(Options *options, const struct Forward *newfwd) |
320 | { | 322 | { |
321 | struct Forward *fwd; | 323 | struct Forward *fwd; |
322 | extern uid_t original_real_uid; | ||
323 | int i; | 324 | int i; |
324 | 325 | ||
325 | if (!bind_permitted(newfwd->listen_port, original_real_uid) && | ||
326 | newfwd->listen_path == NULL) | ||
327 | fatal("Privileged ports can only be forwarded by root."); | ||
328 | /* Don't add duplicates */ | 326 | /* Don't add duplicates */ |
329 | for (i = 0; i < options->num_local_forwards; i++) { | 327 | for (i = 0; i < options->num_local_forwards; i++) { |
330 | if (forward_equals(newfwd, options->local_forwards + i)) | 328 | if (forward_equals(newfwd, options->local_forwards + i)) |
@@ -482,7 +480,6 @@ execute_in_shell(const char *cmd) | |||
482 | char *shell; | 480 | char *shell; |
483 | pid_t pid; | 481 | pid_t pid; |
484 | int devnull, status; | 482 | int devnull, status; |
485 | extern uid_t original_real_uid; | ||
486 | 483 | ||
487 | if ((shell = getenv("SHELL")) == NULL) | 484 | if ((shell = getenv("SHELL")) == NULL) |
488 | shell = _PATH_BSHELL; | 485 | shell = _PATH_BSHELL; |
@@ -497,9 +494,6 @@ execute_in_shell(const char *cmd) | |||
497 | if ((pid = fork()) == 0) { | 494 | if ((pid = fork()) == 0) { |
498 | char *argv[4]; | 495 | char *argv[4]; |
499 | 496 | ||
500 | /* Child. Permanently give up superuser privileges. */ | ||
501 | permanently_drop_suid(original_real_uid); | ||
502 | |||
503 | /* Redirect child stdin and stdout. Leave stderr */ | 497 | /* Redirect child stdin and stdout. Leave stderr */ |
504 | if (dup2(devnull, STDIN_FILENO) == -1) | 498 | if (dup2(devnull, STDIN_FILENO) == -1) |
505 | fatal("dup2: %s", strerror(errno)); | 499 | fatal("dup2: %s", strerror(errno)); |
@@ -551,6 +545,7 @@ match_cfg_line(Options *options, char **condition, struct passwd *pw, | |||
551 | const char *ruser; | 545 | const char *ruser; |
552 | int r, port, this_result, result = 1, attributes = 0, negate; | 546 | int r, port, this_result, result = 1, attributes = 0, negate; |
553 | char thishost[NI_MAXHOST], shorthost[NI_MAXHOST], portstr[NI_MAXSERV]; | 547 | char thishost[NI_MAXHOST], shorthost[NI_MAXHOST], portstr[NI_MAXSERV]; |
548 | char uidstr[32]; | ||
554 | 549 | ||
555 | /* | 550 | /* |
556 | * Configuration is likely to be incomplete at this point so we | 551 | * Configuration is likely to be incomplete at this point so we |
@@ -631,6 +626,8 @@ match_cfg_line(Options *options, char **condition, struct passwd *pw, | |||
631 | strlcpy(shorthost, thishost, sizeof(shorthost)); | 626 | strlcpy(shorthost, thishost, sizeof(shorthost)); |
632 | shorthost[strcspn(thishost, ".")] = '\0'; | 627 | shorthost[strcspn(thishost, ".")] = '\0'; |
633 | snprintf(portstr, sizeof(portstr), "%d", port); | 628 | snprintf(portstr, sizeof(portstr), "%d", port); |
629 | snprintf(uidstr, sizeof(uidstr), "%llu", | ||
630 | (unsigned long long)pw->pw_uid); | ||
634 | 631 | ||
635 | cmd = percent_expand(arg, | 632 | cmd = percent_expand(arg, |
636 | "L", shorthost, | 633 | "L", shorthost, |
@@ -641,6 +638,7 @@ match_cfg_line(Options *options, char **condition, struct passwd *pw, | |||
641 | "p", portstr, | 638 | "p", portstr, |
642 | "r", ruser, | 639 | "r", ruser, |
643 | "u", pw->pw_name, | 640 | "u", pw->pw_name, |
641 | "i", uidstr, | ||
644 | (char *)NULL); | 642 | (char *)NULL); |
645 | if (result != 1) { | 643 | if (result != 1) { |
646 | /* skip execution if prior predicate failed */ | 644 | /* skip execution if prior predicate failed */ |
@@ -684,6 +682,35 @@ match_cfg_line(Options *options, char **condition, struct passwd *pw, | |||
684 | return result; | 682 | return result; |
685 | } | 683 | } |
686 | 684 | ||
685 | /* Remove environment variable by pattern */ | ||
686 | static void | ||
687 | rm_env(Options *options, const char *arg, const char *filename, int linenum) | ||
688 | { | ||
689 | int i, j; | ||
690 | char *cp; | ||
691 | |||
692 | /* Remove an environment variable */ | ||
693 | for (i = 0; i < options->num_send_env; ) { | ||
694 | cp = xstrdup(options->send_env[i]); | ||
695 | if (!match_pattern(cp, arg + 1)) { | ||
696 | free(cp); | ||
697 | i++; | ||
698 | continue; | ||
699 | } | ||
700 | debug3("%s line %d: removing environment %s", | ||
701 | filename, linenum, cp); | ||
702 | free(cp); | ||
703 | free(options->send_env[i]); | ||
704 | options->send_env[i] = NULL; | ||
705 | for (j = i; j < options->num_send_env - 1; j++) { | ||
706 | options->send_env[j] = options->send_env[j + 1]; | ||
707 | options->send_env[j + 1] = NULL; | ||
708 | } | ||
709 | options->num_send_env--; | ||
710 | /* NB. don't increment i */ | ||
711 | } | ||
712 | } | ||
713 | |||
687 | /* | 714 | /* |
688 | * Returns the number of the token pointed to by cp or oBadOption. | 715 | * Returns the number of the token pointed to by cp or oBadOption. |
689 | */ | 716 | */ |
@@ -918,10 +945,6 @@ parse_time: | |||
918 | intptr = &options->exit_on_forward_failure; | 945 | intptr = &options->exit_on_forward_failure; |
919 | goto parse_flag; | 946 | goto parse_flag; |
920 | 947 | ||
921 | case oUsePrivilegedPort: | ||
922 | intptr = &options->use_privileged_port; | ||
923 | goto parse_flag; | ||
924 | |||
925 | case oPasswordAuthentication: | 948 | case oPasswordAuthentication: |
926 | intptr = &options->password_authentication; | 949 | intptr = &options->password_authentication; |
927 | goto parse_flag; | 950 | goto parse_flag; |
@@ -1359,11 +1382,41 @@ parse_keytypes: | |||
1359 | filename, linenum); | 1382 | filename, linenum); |
1360 | if (!*activep) | 1383 | if (!*activep) |
1361 | continue; | 1384 | continue; |
1362 | if (options->num_send_env >= MAX_SEND_ENV) | 1385 | if (*arg == '-') { |
1363 | fatal("%s line %d: too many send env.", | 1386 | /* Removing an env var */ |
1387 | rm_env(options, arg, filename, linenum); | ||
1388 | continue; | ||
1389 | } else { | ||
1390 | /* Adding an env var */ | ||
1391 | if (options->num_send_env >= INT_MAX) | ||
1392 | fatal("%s line %d: too many send env.", | ||
1393 | filename, linenum); | ||
1394 | options->send_env = xrecallocarray( | ||
1395 | options->send_env, options->num_send_env, | ||
1396 | options->num_send_env + 1, | ||
1397 | sizeof(*options->send_env)); | ||
1398 | options->send_env[options->num_send_env++] = | ||
1399 | xstrdup(arg); | ||
1400 | } | ||
1401 | } | ||
1402 | break; | ||
1403 | |||
1404 | case oSetEnv: | ||
1405 | value = options->num_setenv; | ||
1406 | while ((arg = strdelimw(&s)) != NULL && *arg != '\0') { | ||
1407 | if (strchr(arg, '=') == NULL) | ||
1408 | fatal("%s line %d: Invalid SetEnv.", | ||
1409 | filename, linenum); | ||
1410 | if (!*activep || value != 0) | ||
1411 | continue; | ||
1412 | /* Adding a setenv var */ | ||
1413 | if (options->num_setenv >= INT_MAX) | ||
1414 | fatal("%s line %d: too many SetEnv.", | ||
1364 | filename, linenum); | 1415 | filename, linenum); |
1365 | options->send_env[options->num_send_env++] = | 1416 | options->setenv = xrecallocarray( |
1366 | xstrdup(arg); | 1417 | options->setenv, options->num_setenv, |
1418 | options->num_setenv + 1, sizeof(*options->setenv)); | ||
1419 | options->setenv[options->num_setenv++] = xstrdup(arg); | ||
1367 | } | 1420 | } |
1368 | break; | 1421 | break; |
1369 | 1422 | ||
@@ -1688,7 +1741,8 @@ read_config_file_depth(const char *filename, struct passwd *pw, | |||
1688 | int flags, int *activep, int depth) | 1741 | int flags, int *activep, int depth) |
1689 | { | 1742 | { |
1690 | FILE *f; | 1743 | FILE *f; |
1691 | char line[4096]; | 1744 | char *line = NULL; |
1745 | size_t linesize = 0; | ||
1692 | int linenum; | 1746 | int linenum; |
1693 | int bad_options = 0; | 1747 | int bad_options = 0; |
1694 | 1748 | ||
@@ -1715,15 +1769,14 @@ read_config_file_depth(const char *filename, struct passwd *pw, | |||
1715 | * on/off by Host specifications. | 1769 | * on/off by Host specifications. |
1716 | */ | 1770 | */ |
1717 | linenum = 0; | 1771 | linenum = 0; |
1718 | while (fgets(line, sizeof(line), f)) { | 1772 | while (getline(&line, &linesize, f) != -1) { |
1719 | /* Update line number counter. */ | 1773 | /* Update line number counter. */ |
1720 | linenum++; | 1774 | linenum++; |
1721 | if (strlen(line) == sizeof(line) - 1) | ||
1722 | fatal("%s line %d too long", filename, linenum); | ||
1723 | if (process_config_line_depth(options, pw, host, original_host, | 1775 | if (process_config_line_depth(options, pw, host, original_host, |
1724 | line, filename, linenum, activep, flags, depth) != 0) | 1776 | line, filename, linenum, activep, flags, depth) != 0) |
1725 | bad_options++; | 1777 | bad_options++; |
1726 | } | 1778 | } |
1779 | free(line); | ||
1727 | fclose(f); | 1780 | fclose(f); |
1728 | if (bad_options > 0) | 1781 | if (bad_options > 0) |
1729 | fatal("%s: terminating, %d bad configuration options", | 1782 | fatal("%s: terminating, %d bad configuration options", |
@@ -1761,7 +1814,6 @@ initialize_options(Options * options) | |||
1761 | options->fwd_opts.gateway_ports = -1; | 1814 | options->fwd_opts.gateway_ports = -1; |
1762 | options->fwd_opts.streamlocal_bind_mask = (mode_t)-1; | 1815 | options->fwd_opts.streamlocal_bind_mask = (mode_t)-1; |
1763 | options->fwd_opts.streamlocal_bind_unlink = -1; | 1816 | options->fwd_opts.streamlocal_bind_unlink = -1; |
1764 | options->use_privileged_port = -1; | ||
1765 | options->pubkey_authentication = -1; | 1817 | options->pubkey_authentication = -1; |
1766 | options->challenge_response_authentication = -1; | 1818 | options->challenge_response_authentication = -1; |
1767 | options->gss_authentication = -1; | 1819 | options->gss_authentication = -1; |
@@ -1815,7 +1867,10 @@ initialize_options(Options * options) | |||
1815 | options->verify_host_key_dns = -1; | 1867 | options->verify_host_key_dns = -1; |
1816 | options->server_alive_interval = -1; | 1868 | options->server_alive_interval = -1; |
1817 | options->server_alive_count_max = -1; | 1869 | options->server_alive_count_max = -1; |
1870 | options->send_env = NULL; | ||
1818 | options->num_send_env = 0; | 1871 | options->num_send_env = 0; |
1872 | options->setenv = NULL; | ||
1873 | options->num_setenv = 0; | ||
1819 | options->control_path = NULL; | 1874 | options->control_path = NULL; |
1820 | options->control_master = -1; | 1875 | options->control_master = -1; |
1821 | options->control_persist = -1; | 1876 | options->control_persist = -1; |
@@ -1869,6 +1924,9 @@ fill_default_options_for_canonicalization(Options *options) | |||
1869 | void | 1924 | void |
1870 | fill_default_options(Options * options) | 1925 | fill_default_options(Options * options) |
1871 | { | 1926 | { |
1927 | char *all_cipher, *all_mac, *all_kex, *all_key; | ||
1928 | int r; | ||
1929 | |||
1872 | if (options->forward_agent == -1) | 1930 | if (options->forward_agent == -1) |
1873 | options->forward_agent = 0; | 1931 | options->forward_agent = 0; |
1874 | if (options->forward_x11 == -1) | 1932 | if (options->forward_x11 == -1) |
@@ -1898,8 +1956,6 @@ fill_default_options(Options * options) | |||
1898 | options->fwd_opts.streamlocal_bind_mask = 0177; | 1956 | options->fwd_opts.streamlocal_bind_mask = 0177; |
1899 | if (options->fwd_opts.streamlocal_bind_unlink == -1) | 1957 | if (options->fwd_opts.streamlocal_bind_unlink == -1) |
1900 | options->fwd_opts.streamlocal_bind_unlink = 0; | 1958 | options->fwd_opts.streamlocal_bind_unlink = 0; |
1901 | if (options->use_privileged_port == -1) | ||
1902 | options->use_privileged_port = 0; | ||
1903 | if (options->pubkey_authentication == -1) | 1959 | if (options->pubkey_authentication == -1) |
1904 | options->pubkey_authentication = 1; | 1960 | options->pubkey_authentication = 1; |
1905 | if (options->challenge_response_authentication == -1) | 1961 | if (options->challenge_response_authentication == -1) |
@@ -1998,9 +2054,9 @@ fill_default_options(Options * options) | |||
1998 | if (options->visual_host_key == -1) | 2054 | if (options->visual_host_key == -1) |
1999 | options->visual_host_key = 0; | 2055 | options->visual_host_key = 0; |
2000 | if (options->ip_qos_interactive == -1) | 2056 | if (options->ip_qos_interactive == -1) |
2001 | options->ip_qos_interactive = IPTOS_LOWDELAY; | 2057 | options->ip_qos_interactive = IPTOS_DSCP_AF21; |
2002 | if (options->ip_qos_bulk == -1) | 2058 | if (options->ip_qos_bulk == -1) |
2003 | options->ip_qos_bulk = IPTOS_THROUGHPUT; | 2059 | options->ip_qos_bulk = IPTOS_DSCP_CS1; |
2004 | if (options->request_tty == -1) | 2060 | if (options->request_tty == -1) |
2005 | options->request_tty = REQUEST_TTY_AUTO; | 2061 | options->request_tty = REQUEST_TTY_AUTO; |
2006 | if (options->proxy_use_fdpass == -1) | 2062 | if (options->proxy_use_fdpass == -1) |
@@ -2015,14 +2071,28 @@ fill_default_options(Options * options) | |||
2015 | options->fingerprint_hash = SSH_FP_HASH_DEFAULT; | 2071 | options->fingerprint_hash = SSH_FP_HASH_DEFAULT; |
2016 | if (options->update_hostkeys == -1) | 2072 | if (options->update_hostkeys == -1) |
2017 | options->update_hostkeys = 0; | 2073 | options->update_hostkeys = 0; |
2018 | if (kex_assemble_names(KEX_CLIENT_ENCRYPT, &options->ciphers) != 0 || | 2074 | |
2019 | kex_assemble_names(KEX_CLIENT_MAC, &options->macs) != 0 || | 2075 | /* Expand KEX name lists */ |
2020 | kex_assemble_names(KEX_CLIENT_KEX, &options->kex_algorithms) != 0 || | 2076 | all_cipher = cipher_alg_list(',', 0); |
2021 | kex_assemble_names(KEX_DEFAULT_PK_ALG, | 2077 | all_mac = mac_alg_list(','); |
2022 | &options->hostbased_key_types) != 0 || | 2078 | all_kex = kex_alg_list(','); |
2023 | kex_assemble_names(KEX_DEFAULT_PK_ALG, | 2079 | all_key = sshkey_alg_list(0, 0, 1, ','); |
2024 | &options->pubkey_key_types) != 0) | 2080 | #define ASSEMBLE(what, defaults, all) \ |
2025 | fatal("%s: kex_assemble_names failed", __func__); | 2081 | do { \ |
2082 | if ((r = kex_assemble_names(&options->what, \ | ||
2083 | defaults, all)) != 0) \ | ||
2084 | fatal("%s: %s: %s", __func__, #what, ssh_err(r)); \ | ||
2085 | } while (0) | ||
2086 | ASSEMBLE(ciphers, KEX_SERVER_ENCRYPT, all_cipher); | ||
2087 | ASSEMBLE(macs, KEX_SERVER_MAC, all_mac); | ||
2088 | ASSEMBLE(kex_algorithms, KEX_SERVER_KEX, all_kex); | ||
2089 | ASSEMBLE(hostbased_key_types, KEX_DEFAULT_PK_ALG, all_key); | ||
2090 | ASSEMBLE(pubkey_key_types, KEX_DEFAULT_PK_ALG, all_key); | ||
2091 | #undef ASSEMBLE | ||
2092 | free(all_cipher); | ||
2093 | free(all_mac); | ||
2094 | free(all_kex); | ||
2095 | free(all_key); | ||
2026 | 2096 | ||
2027 | #define CLEAR_ON_NONE(v) \ | 2097 | #define CLEAR_ON_NONE(v) \ |
2028 | do { \ | 2098 | do { \ |
@@ -2036,6 +2106,12 @@ fill_default_options(Options * options) | |||
2036 | CLEAR_ON_NONE(options->proxy_command); | 2106 | CLEAR_ON_NONE(options->proxy_command); |
2037 | CLEAR_ON_NONE(options->control_path); | 2107 | CLEAR_ON_NONE(options->control_path); |
2038 | CLEAR_ON_NONE(options->revoked_host_keys); | 2108 | CLEAR_ON_NONE(options->revoked_host_keys); |
2109 | if (options->jump_host != NULL && | ||
2110 | strcmp(options->jump_host, "none") == 0 && | ||
2111 | options->jump_port == 0 && options->jump_user == NULL) { | ||
2112 | free(options->jump_host); | ||
2113 | options->jump_host = NULL; | ||
2114 | } | ||
2039 | /* options->identity_agent distinguishes NULL from 'none' */ | 2115 | /* options->identity_agent distinguishes NULL from 'none' */ |
2040 | /* options->user will be set in the main program if appropriate */ | 2116 | /* options->user will be set in the main program if appropriate */ |
2041 | /* options->hostname will be set in the main program if appropriate */ | 2117 | /* options->hostname will be set in the main program if appropriate */ |
@@ -2264,6 +2340,8 @@ parse_jump(const char *s, Options *o, int active) | |||
2264 | orig = sdup = xstrdup(s); | 2340 | orig = sdup = xstrdup(s); |
2265 | first = active; | 2341 | first = active; |
2266 | do { | 2342 | do { |
2343 | if (strcasecmp(s, "none") == 0) | ||
2344 | break; | ||
2267 | if ((cp = strrchr(sdup, ',')) == NULL) | 2345 | if ((cp = strrchr(sdup, ',')) == NULL) |
2268 | cp = sdup; /* last */ | 2346 | cp = sdup; /* last */ |
2269 | else | 2347 | else |
@@ -2284,14 +2362,19 @@ parse_jump(const char *s, Options *o, int active) | |||
2284 | } while (cp != sdup); | 2362 | } while (cp != sdup); |
2285 | /* success */ | 2363 | /* success */ |
2286 | if (active) { | 2364 | if (active) { |
2287 | o->jump_user = user; | 2365 | if (strcasecmp(s, "none") == 0) { |
2288 | o->jump_host = host; | 2366 | o->jump_host = xstrdup("none"); |
2289 | o->jump_port = port; | 2367 | o->jump_port = 0; |
2290 | o->proxy_command = xstrdup("none"); | 2368 | } else { |
2291 | user = host = NULL; | 2369 | o->jump_user = user; |
2292 | if ((cp = strrchr(s, ',')) != NULL && cp != s) { | 2370 | o->jump_host = host; |
2293 | o->jump_extra = xstrdup(s); | 2371 | o->jump_port = port; |
2294 | o->jump_extra[cp - s] = '\0'; | 2372 | o->proxy_command = xstrdup("none"); |
2373 | user = host = NULL; | ||
2374 | if ((cp = strrchr(s, ',')) != NULL && cp != s) { | ||
2375 | o->jump_extra = xstrdup(s); | ||
2376 | o->jump_extra[cp - s] = '\0'; | ||
2377 | } | ||
2295 | } | 2378 | } |
2296 | } | 2379 | } |
2297 | ret = 0; | 2380 | ret = 0; |
@@ -2348,6 +2431,8 @@ fmt_intarg(OpCodes code, int val) | |||
2348 | return fmt_multistate_int(val, multistate_requesttty); | 2431 | return fmt_multistate_int(val, multistate_requesttty); |
2349 | case oCanonicalizeHostname: | 2432 | case oCanonicalizeHostname: |
2350 | return fmt_multistate_int(val, multistate_canonicalizehostname); | 2433 | return fmt_multistate_int(val, multistate_canonicalizehostname); |
2434 | case oAddKeysToAgent: | ||
2435 | return fmt_multistate_int(val, multistate_yesnoaskconfirm); | ||
2351 | case oFingerprintHash: | 2436 | case oFingerprintHash: |
2352 | return ssh_digest_alg_name(val); | 2437 | return ssh_digest_alg_name(val); |
2353 | default: | 2438 | default: |
@@ -2455,11 +2540,14 @@ void | |||
2455 | dump_client_config(Options *o, const char *host) | 2540 | dump_client_config(Options *o, const char *host) |
2456 | { | 2541 | { |
2457 | int i; | 2542 | int i; |
2458 | char buf[8]; | 2543 | char buf[8], *all_key; |
2459 | 2544 | ||
2460 | /* This is normally prepared in ssh_kex2 */ | 2545 | /* This is normally prepared in ssh_kex2 */ |
2461 | if (kex_assemble_names(KEX_DEFAULT_PK_ALG, &o->hostkeyalgorithms) != 0) | 2546 | all_key = sshkey_alg_list(0, 0, 1, ','); |
2547 | if (kex_assemble_names( &o->hostkeyalgorithms, | ||
2548 | KEX_DEFAULT_PK_ALG, all_key) != 0) | ||
2462 | fatal("%s: kex_assemble_names failed", __func__); | 2549 | fatal("%s: kex_assemble_names failed", __func__); |
2550 | free(all_key); | ||
2463 | 2551 | ||
2464 | /* Most interesting options first: user, host, port */ | 2552 | /* Most interesting options first: user, host, port */ |
2465 | dump_cfg_string(oUser, o->user); | 2553 | dump_cfg_string(oUser, o->user); |
@@ -2467,6 +2555,7 @@ dump_client_config(Options *o, const char *host) | |||
2467 | dump_cfg_int(oPort, o->port); | 2555 | dump_cfg_int(oPort, o->port); |
2468 | 2556 | ||
2469 | /* Flag options */ | 2557 | /* Flag options */ |
2558 | dump_cfg_fmtint(oAddKeysToAgent, o->add_keys_to_agent); | ||
2470 | dump_cfg_fmtint(oAddressFamily, o->address_family); | 2559 | dump_cfg_fmtint(oAddressFamily, o->address_family); |
2471 | dump_cfg_fmtint(oBatchMode, o->batch_mode); | 2560 | dump_cfg_fmtint(oBatchMode, o->batch_mode); |
2472 | dump_cfg_fmtint(oCanonicalizeFallbackLocal, o->canonicalize_fallback_local); | 2561 | dump_cfg_fmtint(oCanonicalizeFallbackLocal, o->canonicalize_fallback_local); |
@@ -2501,7 +2590,6 @@ dump_client_config(Options *o, const char *host) | |||
2501 | dump_cfg_fmtint(oStrictHostKeyChecking, o->strict_host_key_checking); | 2590 | dump_cfg_fmtint(oStrictHostKeyChecking, o->strict_host_key_checking); |
2502 | dump_cfg_fmtint(oTCPKeepAlive, o->tcp_keep_alive); | 2591 | dump_cfg_fmtint(oTCPKeepAlive, o->tcp_keep_alive); |
2503 | dump_cfg_fmtint(oTunnel, o->tun_open); | 2592 | dump_cfg_fmtint(oTunnel, o->tun_open); |
2504 | dump_cfg_fmtint(oUsePrivilegedPort, o->use_privileged_port); | ||
2505 | dump_cfg_fmtint(oVerifyHostKeyDNS, o->verify_host_key_dns); | 2593 | dump_cfg_fmtint(oVerifyHostKeyDNS, o->verify_host_key_dns); |
2506 | dump_cfg_fmtint(oVisualHostKey, o->visual_host_key); | 2594 | dump_cfg_fmtint(oVisualHostKey, o->visual_host_key); |
2507 | dump_cfg_fmtint(oUpdateHostkeys, o->update_hostkeys); | 2595 | dump_cfg_fmtint(oUpdateHostkeys, o->update_hostkeys); |
@@ -2523,6 +2611,7 @@ dump_client_config(Options *o, const char *host) | |||
2523 | dump_cfg_string(oHostKeyAlias, o->host_key_alias); | 2611 | dump_cfg_string(oHostKeyAlias, o->host_key_alias); |
2524 | dump_cfg_string(oHostbasedKeyTypes, o->hostbased_key_types); | 2612 | dump_cfg_string(oHostbasedKeyTypes, o->hostbased_key_types); |
2525 | dump_cfg_string(oIdentityAgent, o->identity_agent); | 2613 | dump_cfg_string(oIdentityAgent, o->identity_agent); |
2614 | dump_cfg_string(oIgnoreUnknown, o->ignored_unknown); | ||
2526 | dump_cfg_string(oKbdInteractiveDevices, o->kbd_interactive_devices); | 2615 | dump_cfg_string(oKbdInteractiveDevices, o->kbd_interactive_devices); |
2527 | dump_cfg_string(oKexAlgorithms, o->kex_algorithms ? o->kex_algorithms : KEX_CLIENT_KEX); | 2616 | dump_cfg_string(oKexAlgorithms, o->kex_algorithms ? o->kex_algorithms : KEX_CLIENT_KEX); |
2528 | dump_cfg_string(oLocalCommand, o->local_command); | 2617 | dump_cfg_string(oLocalCommand, o->local_command); |
@@ -2545,9 +2634,11 @@ dump_client_config(Options *o, const char *host) | |||
2545 | /* String array options */ | 2634 | /* String array options */ |
2546 | dump_cfg_strarray(oIdentityFile, o->num_identity_files, o->identity_files); | 2635 | dump_cfg_strarray(oIdentityFile, o->num_identity_files, o->identity_files); |
2547 | dump_cfg_strarray_oneline(oCanonicalDomains, o->num_canonical_domains, o->canonical_domains); | 2636 | dump_cfg_strarray_oneline(oCanonicalDomains, o->num_canonical_domains, o->canonical_domains); |
2637 | dump_cfg_strarray(oCertificateFile, o->num_certificate_files, o->certificate_files); | ||
2548 | dump_cfg_strarray_oneline(oGlobalKnownHostsFile, o->num_system_hostfiles, o->system_hostfiles); | 2638 | dump_cfg_strarray_oneline(oGlobalKnownHostsFile, o->num_system_hostfiles, o->system_hostfiles); |
2549 | dump_cfg_strarray_oneline(oUserKnownHostsFile, o->num_user_hostfiles, o->user_hostfiles); | 2639 | dump_cfg_strarray_oneline(oUserKnownHostsFile, o->num_user_hostfiles, o->user_hostfiles); |
2550 | dump_cfg_strarray(oSendEnv, o->num_send_env, o->send_env); | 2640 | dump_cfg_strarray(oSendEnv, o->num_send_env, o->send_env); |
2641 | dump_cfg_strarray(oSetEnv, o->num_setenv, o->setenv); | ||
2551 | 2642 | ||
2552 | /* Special cases */ | 2643 | /* Special cases */ |
2553 | 2644 | ||
@@ -2605,6 +2696,9 @@ dump_client_config(Options *o, const char *host) | |||
2605 | printf("streamlocalbindmask 0%o\n", | 2696 | printf("streamlocalbindmask 0%o\n", |
2606 | o->fwd_opts.streamlocal_bind_mask); | 2697 | o->fwd_opts.streamlocal_bind_mask); |
2607 | 2698 | ||
2699 | /* oLogFacility */ | ||
2700 | printf("syslogfacility %s\n", log_facility_name(o->log_facility)); | ||
2701 | |||
2608 | /* oProxyCommand / oProxyJump */ | 2702 | /* oProxyCommand / oProxyJump */ |
2609 | if (o->jump_host == NULL) | 2703 | if (o->jump_host == NULL) |
2610 | dump_cfg_string(oProxyCommand, o->proxy_command); | 2704 | dump_cfg_string(oProxyCommand, o->proxy_command); |
diff --git a/readconf.h b/readconf.h index f4d9e2b26..c56887816 100644 --- a/readconf.h +++ b/readconf.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: readconf.h,v 1.125 2018/02/23 02:34:33 djm Exp $ */ | 1 | /* $OpenBSD: readconf.h,v 1.127 2018/07/19 10:28:47 dtucker Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
@@ -18,7 +18,6 @@ | |||
18 | 18 | ||
19 | /* Data structure for representing option data. */ | 19 | /* Data structure for representing option data. */ |
20 | 20 | ||
21 | #define MAX_SEND_ENV 256 | ||
22 | #define SSH_MAX_HOSTS_FILES 32 | 21 | #define SSH_MAX_HOSTS_FILES 32 |
23 | #define MAX_CANON_DOMAINS 32 | 22 | #define MAX_CANON_DOMAINS 32 |
24 | #define PATH_MAX_SUN (sizeof((struct sockaddr_un *)0)->sun_path) | 23 | #define PATH_MAX_SUN (sizeof((struct sockaddr_un *)0)->sun_path) |
@@ -36,7 +35,6 @@ typedef struct { | |||
36 | int exit_on_forward_failure; /* Exit if bind(2) fails for -L/-R */ | 35 | int exit_on_forward_failure; /* Exit if bind(2) fails for -L/-R */ |
37 | char *xauth_location; /* Location for xauth program */ | 36 | char *xauth_location; /* Location for xauth program */ |
38 | struct ForwardOptions fwd_opts; /* forwarding options */ | 37 | struct ForwardOptions fwd_opts; /* forwarding options */ |
39 | int use_privileged_port; /* Don't use privileged port if false. */ | ||
40 | int pubkey_authentication; /* Try ssh2 pubkey authentication. */ | 38 | int pubkey_authentication; /* Try ssh2 pubkey authentication. */ |
41 | int hostbased_authentication; /* ssh2's rhosts_rsa */ | 39 | int hostbased_authentication; /* ssh2's rhosts_rsa */ |
42 | int challenge_response_authentication; | 40 | int challenge_response_authentication; |
@@ -120,7 +118,9 @@ typedef struct { | |||
120 | int server_alive_count_max; | 118 | int server_alive_count_max; |
121 | 119 | ||
122 | int num_send_env; | 120 | int num_send_env; |
123 | char *send_env[MAX_SEND_ENV]; | 121 | char **send_env; |
122 | int num_setenv; | ||
123 | char **setenv; | ||
124 | 124 | ||
125 | char *control_path; | 125 | char *control_path; |
126 | int control_master; | 126 | int control_master; |
diff --git a/readpass.c b/readpass.c index 05c8cac1c..f160f866b 100644 --- a/readpass.c +++ b/readpass.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: readpass.c,v 1.51 2015/12/11 00:20:04 mmcc Exp $ */ | 1 | /* $OpenBSD: readpass.c,v 1.52 2018/07/18 11:34:04 dtucker Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2001 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2001 Markus Friedl. All rights reserved. |
4 | * | 4 | * |
@@ -72,7 +72,6 @@ ssh_askpass(char *askpass, const char *msg) | |||
72 | return NULL; | 72 | return NULL; |
73 | } | 73 | } |
74 | if (pid == 0) { | 74 | if (pid == 0) { |
75 | permanently_drop_suid(getuid()); | ||
76 | close(p[0]); | 75 | close(p[0]); |
77 | if (dup2(p[1], STDOUT_FILENO) < 0) | 76 | if (dup2(p[1], STDOUT_FILENO) < 0) |
78 | fatal("ssh_askpass: dup2: %s", strerror(errno)); | 77 | fatal("ssh_askpass: dup2: %s", strerror(errno)); |
diff --git a/regress/Makefile b/regress/Makefile index d15898ad0..647b4a049 100644 --- a/regress/Makefile +++ b/regress/Makefile | |||
@@ -1,4 +1,4 @@ | |||
1 | # $OpenBSD: Makefile,v 1.96 2017/10/24 19:33:32 millert Exp $ | 1 | # $OpenBSD: Makefile,v 1.97 2018/06/07 04:46:34 djm Exp $ |
2 | 2 | ||
3 | REGRESS_TARGETS= unit t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t-exec | 3 | REGRESS_TARGETS= unit t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t-exec |
4 | tests: prep $(REGRESS_TARGETS) | 4 | tests: prep $(REGRESS_TARGETS) |
@@ -61,6 +61,7 @@ LTESTS= connect \ | |||
61 | sshcfgparse \ | 61 | sshcfgparse \ |
62 | cfgparse \ | 62 | cfgparse \ |
63 | cfgmatch \ | 63 | cfgmatch \ |
64 | cfgmatchlisten \ | ||
64 | addrmatch \ | 65 | addrmatch \ |
65 | localcommand \ | 66 | localcommand \ |
66 | forcecommand \ | 67 | forcecommand \ |
diff --git a/regress/allow-deny-users.sh b/regress/allow-deny-users.sh index 4165111e0..5c3895122 100644 --- a/regress/allow-deny-users.sh +++ b/regress/allow-deny-users.sh | |||
@@ -1,6 +1,6 @@ | |||
1 | # Public Domain | 1 | # Public Domain |
2 | # Zev Weiss, 2016 | 2 | # Zev Weiss, 2016 |
3 | # $OpenBSD: allow-deny-users.sh,v 1.4 2017/10/20 02:13:41 djm Exp $ | 3 | # $OpenBSD: allow-deny-users.sh,v 1.5 2018/07/13 02:13:50 djm Exp $ |
4 | 4 | ||
5 | tid="AllowUsers/DenyUsers" | 5 | tid="AllowUsers/DenyUsers" |
6 | 6 | ||
@@ -10,6 +10,8 @@ if [ "x$me" = "x" ]; then | |||
10 | fi | 10 | fi |
11 | other="nobody" | 11 | other="nobody" |
12 | 12 | ||
13 | cp $OBJ/sshd_proxy $OBJ/sshd_proxy.orig | ||
14 | |||
13 | test_auth() | 15 | test_auth() |
14 | { | 16 | { |
15 | deny="$1" | 17 | deny="$1" |
@@ -17,17 +19,19 @@ test_auth() | |||
17 | should_succeed="$3" | 19 | should_succeed="$3" |
18 | failmsg="$4" | 20 | failmsg="$4" |
19 | 21 | ||
22 | cp $OBJ/sshd_proxy.orig $OBJ/sshd_proxy | ||
23 | echo DenyUsers="$deny" >> $OBJ/sshd_proxy | ||
24 | echo AllowUsers="$allow" >> $OBJ/sshd_proxy | ||
25 | |||
20 | start_sshd -oDenyUsers="$deny" -oAllowUsers="$allow" | 26 | start_sshd -oDenyUsers="$deny" -oAllowUsers="$allow" |
21 | 27 | ||
22 | ${SSH} -F $OBJ/ssh_config "$me@somehost" true | 28 | ${SSH} -F $OBJ/ssh_proxy "$me@somehost" true |
23 | status=$? | 29 | status=$? |
24 | 30 | ||
25 | if (test $status -eq 0 && ! $should_succeed) \ | 31 | if (test $status -eq 0 && ! $should_succeed) \ |
26 | || (test $status -ne 0 && $should_succeed); then | 32 | || (test $status -ne 0 && $should_succeed); then |
27 | fail "$failmsg" | 33 | fail "$failmsg" |
28 | fi | 34 | fi |
29 | |||
30 | stop_sshd | ||
31 | } | 35 | } |
32 | 36 | ||
33 | # DenyUsers AllowUsers should_succeed failure_message | 37 | # DenyUsers AllowUsers should_succeed failure_message |
diff --git a/regress/authinfo.sh b/regress/authinfo.sh index 3caf89478..693424afa 100644 --- a/regress/authinfo.sh +++ b/regress/authinfo.sh | |||
@@ -1,4 +1,4 @@ | |||
1 | # $OpenBSD: authinfo.sh,v 1.2 2017/10/25 20:08:36 millert Exp $ | 1 | # $OpenBSD: authinfo.sh,v 1.3 2018/04/10 00:13:27 djm Exp $ |
2 | # Placed in the Public Domain. | 2 | # Placed in the Public Domain. |
3 | 3 | ||
4 | tid="authinfo" | 4 | tid="authinfo" |
diff --git a/regress/cert-file.sh b/regress/cert-file.sh index 8fd62c773..1157a3582 100644 --- a/regress/cert-file.sh +++ b/regress/cert-file.sh | |||
@@ -1,4 +1,4 @@ | |||
1 | # $OpenBSD: cert-file.sh,v 1.6 2017/04/30 23:34:55 djm Exp $ | 1 | # $OpenBSD: cert-file.sh,v 1.7 2018/04/10 00:14:10 djm Exp $ |
2 | # Placed in the Public Domain. | 2 | # Placed in the Public Domain. |
3 | 3 | ||
4 | tid="ssh with certificates" | 4 | tid="ssh with certificates" |
@@ -52,7 +52,7 @@ echo "cert-authority $(cat $OBJ/user_ca_key1.pub)" > $OBJ/authorized_keys_$USER | |||
52 | cat $OBJ/ssh_proxy | grep -v IdentityFile > $OBJ/no_identity_config | 52 | cat $OBJ/ssh_proxy | grep -v IdentityFile > $OBJ/no_identity_config |
53 | 53 | ||
54 | # XXX: verify that certificate used was what we expect. Needs exposure of | 54 | # XXX: verify that certificate used was what we expect. Needs exposure of |
55 | # keys via enviornment variable or similar. | 55 | # keys via environment variable or similar. |
56 | 56 | ||
57 | # Key with no .pub should work - finding the equivalent *-cert.pub. | 57 | # Key with no .pub should work - finding the equivalent *-cert.pub. |
58 | verbose "identity cert with no plain public file" | 58 | verbose "identity cert with no plain public file" |
@@ -138,7 +138,7 @@ fi | |||
138 | 138 | ||
139 | # try ssh with the agent and certificates | 139 | # try ssh with the agent and certificates |
140 | opts="-F $OBJ/ssh_proxy" | 140 | opts="-F $OBJ/ssh_proxy" |
141 | # with no certificates, shoud fail | 141 | # with no certificates, should fail |
142 | ${SSH} $opts somehost exit 52 | 142 | ${SSH} $opts somehost exit 52 |
143 | if [ $? -eq 52 ]; then | 143 | if [ $? -eq 52 ]; then |
144 | fail "ssh connect with agent in succeeded with no cert" | 144 | fail "ssh connect with agent in succeeded with no cert" |
diff --git a/regress/cert-hostkey.sh b/regress/cert-hostkey.sh index 3d5732a5d..d2ecd318b 100644 --- a/regress/cert-hostkey.sh +++ b/regress/cert-hostkey.sh | |||
@@ -1,4 +1,4 @@ | |||
1 | # $OpenBSD: cert-hostkey.sh,v 1.15 2017/04/30 23:34:55 djm Exp $ | 1 | # $OpenBSD: cert-hostkey.sh,v 1.16 2018/07/03 11:43:49 djm Exp $ |
2 | # Placed in the Public Domain. | 2 | # Placed in the Public Domain. |
3 | 3 | ||
4 | tid="certified host keys" | 4 | tid="certified host keys" |
@@ -14,6 +14,13 @@ for i in `$SSH -Q key`; do | |||
14 | continue | 14 | continue |
15 | fi | 15 | fi |
16 | case "$i" in | 16 | case "$i" in |
17 | # Special treatment for RSA keys. | ||
18 | *rsa*cert*) | ||
19 | types="rsa-sha2-256-cert-v01@openssh.com,$i,$types" | ||
20 | types="rsa-sha2-512-cert-v01@openssh.com,$types";; | ||
21 | *rsa*) | ||
22 | types="$types,rsa-sha2-512,rsa-sha2-256,$i";; | ||
23 | # Prefer certificate to plain keys. | ||
17 | *cert*) types="$i,$types";; | 24 | *cert*) types="$i,$types";; |
18 | *) types="$types,$i";; | 25 | *) types="$types,$i";; |
19 | esac | 26 | esac |
diff --git a/regress/cfgmatchlisten.sh b/regress/cfgmatchlisten.sh new file mode 100644 index 000000000..a4fd66b32 --- /dev/null +++ b/regress/cfgmatchlisten.sh | |||
@@ -0,0 +1,202 @@ | |||
1 | # $OpenBSD: cfgmatchlisten.sh,v 1.3 2018/07/02 14:13:30 dtucker Exp $ | ||
2 | # Placed in the Public Domain. | ||
3 | |||
4 | tid="sshd_config matchlisten" | ||
5 | |||
6 | pidfile=$OBJ/remote_pid | ||
7 | fwdport=3301 | ||
8 | fwdspec="localhost:${fwdport}" | ||
9 | fwd="-R $fwdport:127.0.0.1:$PORT" | ||
10 | |||
11 | echo "ExitOnForwardFailure=yes" >> $OBJ/ssh_config | ||
12 | echo "ExitOnForwardFailure=yes" >> $OBJ/ssh_proxy | ||
13 | |||
14 | start_client() | ||
15 | { | ||
16 | rm -f $pidfile | ||
17 | ${SSH} -vvv $fwd "$@" somehost true >>$TEST_REGRESS_LOGFILE 2>&1 | ||
18 | r=$? | ||
19 | if [ $r -ne 0 ]; then | ||
20 | return $r | ||
21 | fi | ||
22 | ${SSH} -vvv $fwd "$@" somehost \ | ||
23 | exec sh -c \'"echo \$\$ > $pidfile; exec sleep 100"\' \ | ||
24 | >>$TEST_REGRESS_LOGFILE 2>&1 & | ||
25 | client_pid=$! | ||
26 | # Wait for remote end | ||
27 | n=0 | ||
28 | while test ! -f $pidfile ; do | ||
29 | sleep 1 | ||
30 | n=`expr $n + 1` | ||
31 | if test $n -gt 60; then | ||
32 | kill $client_pid | ||
33 | fatal "timeout waiting for background ssh" | ||
34 | fi | ||
35 | done | ||
36 | return $r | ||
37 | } | ||
38 | |||
39 | expect_client_ok() | ||
40 | { | ||
41 | start_client "$@" || | ||
42 | fail "client did not start" | ||
43 | } | ||
44 | |||
45 | expect_client_fail() | ||
46 | { | ||
47 | local failmsg="$1" | ||
48 | shift | ||
49 | start_client "$@" && | ||
50 | fail $failmsg | ||
51 | } | ||
52 | |||
53 | stop_client() | ||
54 | { | ||
55 | pid=`cat $pidfile` | ||
56 | if [ ! -z "$pid" ]; then | ||
57 | kill $pid | ||
58 | fi | ||
59 | wait | ||
60 | } | ||
61 | |||
62 | cp $OBJ/sshd_proxy $OBJ/sshd_proxy_bak | ||
63 | echo "PermitListen 127.0.0.1:1" >>$OBJ/sshd_config | ||
64 | echo "Match Address 127.0.0.1" >>$OBJ/sshd_config | ||
65 | echo "PermitListen 127.0.0.1:2 127.0.0.1:3 $fwdspec" >>$OBJ/sshd_config | ||
66 | |||
67 | grep -v AuthorizedKeysFile $OBJ/sshd_proxy_bak > $OBJ/sshd_proxy | ||
68 | echo "AuthorizedKeysFile /dev/null" >>$OBJ/sshd_proxy | ||
69 | echo "PermitListen 127.0.0.1:1" >>$OBJ/sshd_proxy | ||
70 | echo "Match user $USER" >>$OBJ/sshd_proxy | ||
71 | echo "AuthorizedKeysFile /dev/null $OBJ/authorized_keys_%u" >>$OBJ/sshd_proxy | ||
72 | echo "Match Address 127.0.0.1" >>$OBJ/sshd_proxy | ||
73 | echo "PermitListen 127.0.0.1:2 127.0.0.1:3 $fwdspec" >>$OBJ/sshd_proxy | ||
74 | |||
75 | start_sshd | ||
76 | |||
77 | #set -x | ||
78 | |||
79 | # Test Match + PermitListen in sshd_config. This should be permitted | ||
80 | trace "match permitlisten localhost" | ||
81 | expect_client_ok -F $OBJ/ssh_config | ||
82 | ${SSH} -q -p $fwdport -F $OBJ/ssh_config somehost true || \ | ||
83 | fail "match permitlisten permit" | ||
84 | stop_client | ||
85 | |||
86 | # Same but from different source. This should not be permitted | ||
87 | trace "match permitlisten proxy" | ||
88 | expect_client_fail "match permitlisten deny" \ | ||
89 | -F $OBJ/ssh_proxy | ||
90 | |||
91 | # Retry previous with key option, should also be denied. | ||
92 | cp /dev/null $OBJ/authorized_keys_$USER | ||
93 | for t in ${SSH_KEYTYPES}; do | ||
94 | printf 'permitlisten="'$fwdspec'" ' >> $OBJ/authorized_keys_$USER | ||
95 | cat $OBJ/$t.pub >> $OBJ/authorized_keys_$USER | ||
96 | done | ||
97 | trace "match permitlisten proxy w/key opts" | ||
98 | expect_client_fail "match permitlisten deny w/key opt"\ | ||
99 | -F $OBJ/ssh_proxy | ||
100 | |||
101 | # Test both sshd_config and key options permitting the same dst/port pair. | ||
102 | # Should be permitted. | ||
103 | trace "match permitlisten localhost" | ||
104 | expect_client_ok -F $OBJ/ssh_config | ||
105 | ${SSH} -q -p $fwdport -F $OBJ/ssh_config somehost true || \ | ||
106 | fail "match permitlisten permit" | ||
107 | stop_client | ||
108 | |||
109 | # Test that a bare port number is accepted in PermitListen | ||
110 | cp $OBJ/sshd_proxy_bak $OBJ/sshd_proxy | ||
111 | echo "PermitListen 127.0.0.1:1 $fwdport 127.0.0.2:2" >>$OBJ/sshd_proxy | ||
112 | trace "match permitlisten bare" | ||
113 | expect_client_ok -F $OBJ/ssh_config | ||
114 | ${SSH} -q -p $fwdport -F $OBJ/ssh_config somehost true || \ | ||
115 | fail "match permitlisten bare" | ||
116 | stop_client | ||
117 | |||
118 | # Test that an incorrect bare port number is denied as expected | ||
119 | cp $OBJ/sshd_proxy_bak $OBJ/sshd_proxy | ||
120 | echo "PermitListen 1 2 99" >>$OBJ/sshd_proxy | ||
121 | trace "match permitlisten bare" | ||
122 | expect_client_fail -F $OBJ/ssh_config | ||
123 | |||
124 | cp $OBJ/sshd_proxy_bak $OBJ/sshd_proxy | ||
125 | echo "PermitListen 127.0.0.1:1 $fwdspec 127.0.0.2:2" >>$OBJ/sshd_proxy | ||
126 | echo "Match User $USER" >>$OBJ/sshd_proxy | ||
127 | echo "PermitListen 127.0.0.1:1 127.0.0.1:2" >>$OBJ/sshd_proxy | ||
128 | |||
129 | # Test that a Match overrides a PermitListen in the global section | ||
130 | trace "match permitlisten proxy w/key opts" | ||
131 | expect_client_fail "match override permitlisten" \ | ||
132 | -F $OBJ/ssh_proxy | ||
133 | |||
134 | cp $OBJ/sshd_proxy_bak $OBJ/sshd_proxy | ||
135 | echo "PermitListen 127.0.0.1:1 $fwdspec 127.0.0.2:2" >>$OBJ/sshd_proxy | ||
136 | echo "Match User NoSuchUser" >>$OBJ/sshd_proxy | ||
137 | echo "PermitListen 127.0.0.1:1 127.0.0.1:2" >>$OBJ/sshd_proxy | ||
138 | |||
139 | # Test that a rule that doesn't match doesn't override, plus test a | ||
140 | # PermitListen entry that's not at the start of the list | ||
141 | trace "nomatch permitlisten proxy w/key opts" | ||
142 | expect_client_ok -F $OBJ/ssh_proxy | ||
143 | ${SSH} -q -p $fwdport -F $OBJ/ssh_config somehost true || \ | ||
144 | fail "nomatch override permitlisten" | ||
145 | stop_client | ||
146 | |||
147 | # bind to 127.0.0.1 instead of default localhost | ||
148 | fwdspec2="127.0.0.1:${fwdport}" | ||
149 | fwd="-R ${fwdspec2}:127.0.0.1:$PORT" | ||
150 | |||
151 | # first try w/ old fwdspec both in server config and key opts | ||
152 | cp $OBJ/sshd_proxy_bak $OBJ/sshd_proxy | ||
153 | echo "PermitListen 127.0.0.1:1 $fwdspec 127.0.0.2:2" >>$OBJ/sshd_proxy | ||
154 | cp /dev/null $OBJ/authorized_keys_$USER | ||
155 | for t in ${SSH_KEYTYPES}; do | ||
156 | printf 'permitlisten="'$fwdspec'" ' >> $OBJ/authorized_keys_$USER | ||
157 | cat $OBJ/$t.pub >> $OBJ/authorized_keys_$USER | ||
158 | done | ||
159 | trace "nomatch permitlisten 127.0.0.1 server config and userkey" | ||
160 | expect_client_fail "nomatch 127.0.0.1 server config and userkey" \ | ||
161 | -F $OBJ/ssh_config | ||
162 | |||
163 | # correct server config, denied by key opts | ||
164 | cp $OBJ/sshd_proxy_bak $OBJ/sshd_proxy | ||
165 | echo "PermitListen 127.0.0.1:1 ${fwdspec2} 127.0.0.2:2" >>$OBJ/sshd_proxy | ||
166 | trace "nomatch permitlisten 127.0.0.1 w/key opts" | ||
167 | expect_client_fail "nomatch 127.0.0.1 w/key opts" \ | ||
168 | -F $OBJ/ssh_config | ||
169 | |||
170 | # fix key opts | ||
171 | cp /dev/null $OBJ/authorized_keys_$USER | ||
172 | for t in ${SSH_KEYTYPES}; do | ||
173 | printf 'permitlisten="'$fwdspec2'" ' >> $OBJ/authorized_keys_$USER | ||
174 | cat $OBJ/$t.pub >> $OBJ/authorized_keys_$USER | ||
175 | done | ||
176 | trace "match permitlisten 127.0.0.1 server config w/key opts" | ||
177 | expect_client_ok -F $OBJ/ssh_proxy | ||
178 | ${SSH} -q -p $fwdport -F $OBJ/ssh_config somehost true || \ | ||
179 | fail "match 127.0.0.1 server config w/key opts" | ||
180 | stop_client | ||
181 | |||
182 | # key opts with bare port number | ||
183 | cp /dev/null $OBJ/authorized_keys_$USER | ||
184 | for t in ${SSH_KEYTYPES}; do | ||
185 | printf 'permitlisten="'$fwdport'" ' >> $OBJ/authorized_keys_$USER | ||
186 | cat $OBJ/$t.pub >> $OBJ/authorized_keys_$USER | ||
187 | done | ||
188 | trace "match permitlisten 127.0.0.1 server config w/key opts (bare)" | ||
189 | expect_client_ok -F $OBJ/ssh_proxy | ||
190 | ${SSH} -q -p $fwdport -F $OBJ/ssh_config somehost true || \ | ||
191 | fail "match 127.0.0.1 server config w/key opts (bare)" | ||
192 | stop_client | ||
193 | |||
194 | # key opts with incorrect bare port number | ||
195 | cp /dev/null $OBJ/authorized_keys_$USER | ||
196 | for t in ${SSH_KEYTYPES}; do | ||
197 | printf 'permitlisten="99" ' >> $OBJ/authorized_keys_$USER | ||
198 | cat $OBJ/$t.pub >> $OBJ/authorized_keys_$USER | ||
199 | done | ||
200 | trace "match permitlisten 127.0.0.1 server config w/key opts (wrong bare)" | ||
201 | expect_client_fail "nomatch 127.0.0.1 w/key opts (wrong bare)" \ | ||
202 | -F $OBJ/ssh_config | ||
diff --git a/regress/cfgparse.sh b/regress/cfgparse.sh index ccf511f6b..a9e5c6b09 100644 --- a/regress/cfgparse.sh +++ b/regress/cfgparse.sh | |||
@@ -1,4 +1,4 @@ | |||
1 | # $OpenBSD: cfgparse.sh,v 1.6 2016/06/03 03:47:59 dtucker Exp $ | 1 | # $OpenBSD: cfgparse.sh,v 1.7 2018/05/11 03:51:06 dtucker Exp $ |
2 | # Placed in the Public Domain. | 2 | # Placed in the Public Domain. |
3 | 3 | ||
4 | tid="sshd config parse" | 4 | tid="sshd config parse" |
@@ -10,8 +10,8 @@ fi | |||
10 | 10 | ||
11 | # We need to use the keys generated for the regression test because sshd -T | 11 | # We need to use the keys generated for the regression test because sshd -T |
12 | # will fail if we're not running with SUDO (no permissions for real keys) or | 12 | # will fail if we're not running with SUDO (no permissions for real keys) or |
13 | # if we are # running tests on a system that has never had sshd installed | 13 | # if we are running tests on a system that has never had sshd installed |
14 | # (keys won't exist). | 14 | # because the keys won't exist. |
15 | 15 | ||
16 | grep "HostKey " $OBJ/sshd_config > $OBJ/sshd_config_minimal | 16 | grep "HostKey " $OBJ/sshd_config > $OBJ/sshd_config_minimal |
17 | SSHD_KEYS="`cat $OBJ/sshd_config_minimal`" | 17 | SSHD_KEYS="`cat $OBJ/sshd_config_minimal`" |
diff --git a/regress/forward-control.sh b/regress/forward-control.sh index 93d05cf63..3b1f69a71 100644 --- a/regress/forward-control.sh +++ b/regress/forward-control.sh | |||
@@ -1,4 +1,4 @@ | |||
1 | # $OpenBSD: forward-control.sh,v 1.5 2018/03/02 02:51:55 djm Exp $ | 1 | # $OpenBSD: forward-control.sh,v 1.7 2018/06/07 14:29:43 djm Exp $ |
2 | # Placed in the Public Domain. | 2 | # Placed in the Public Domain. |
3 | 3 | ||
4 | tid="sshd control of local and remote forwarding" | 4 | tid="sshd control of local and remote forwarding" |
@@ -67,7 +67,7 @@ check_rfwd() { | |||
67 | _message=$2 | 67 | _message=$2 |
68 | rm -f $READY | 68 | rm -f $READY |
69 | ${SSH} -F $OBJ/ssh_proxy \ | 69 | ${SSH} -F $OBJ/ssh_proxy \ |
70 | -R$RFWD_PORT:127.0.0.1:$PORT \ | 70 | -R127.0.0.1:$RFWD_PORT:127.0.0.1:$PORT \ |
71 | -o ExitOnForwardFailure=yes \ | 71 | -o ExitOnForwardFailure=yes \ |
72 | -n host exec sh -c \'"sleep 60 & echo \$! > $READY ; wait "\' \ | 72 | -n host exec sh -c \'"sleep 60 & echo \$! > $READY ; wait "\' \ |
73 | >/dev/null 2>&1 & | 73 | >/dev/null 2>&1 & |
@@ -100,8 +100,8 @@ cp ${OBJ}/authorized_keys_${USER} ${OBJ}/authorized_keys_${USER}.bak | |||
100 | check_lfwd Y "default configuration" | 100 | check_lfwd Y "default configuration" |
101 | check_rfwd Y "default configuration" | 101 | check_rfwd Y "default configuration" |
102 | 102 | ||
103 | # Usage: all_tests yes|local|remote|no Y|N Y|N Y|N Y|N Y|N Y|N | 103 | # Usage: lperm_tests yes|local|remote|no Y|N Y|N Y|N Y|N Y|N Y|N |
104 | all_tests() { | 104 | lperm_tests() { |
105 | _tcpfwd=$1 | 105 | _tcpfwd=$1 |
106 | _plain_lfwd=$2 | 106 | _plain_lfwd=$2 |
107 | _plain_rfwd=$3 | 107 | _plain_rfwd=$3 |
@@ -109,32 +109,39 @@ all_tests() { | |||
109 | _nopermit_rfwd=$5 | 109 | _nopermit_rfwd=$5 |
110 | _permit_lfwd=$6 | 110 | _permit_lfwd=$6 |
111 | _permit_rfwd=$7 | 111 | _permit_rfwd=$7 |
112 | _badfwd=127.0.0.1:22 | 112 | _badfwd1=127.0.0.1:22 |
113 | _badfwd2=127.0.0.2:22 | ||
113 | _goodfwd=127.0.0.1:${PORT} | 114 | _goodfwd=127.0.0.1:${PORT} |
114 | cp ${OBJ}/authorized_keys_${USER}.bak ${OBJ}/authorized_keys_${USER} | 115 | cp ${OBJ}/authorized_keys_${USER}.bak ${OBJ}/authorized_keys_${USER} |
115 | _prefix="AllowTcpForwarding=$_tcpfwd" | 116 | _prefix="AllowTcpForwarding=$_tcpfwd" |
117 | |||
116 | # No PermitOpen | 118 | # No PermitOpen |
117 | ( cat ${OBJ}/sshd_proxy.bak ; | 119 | ( cat ${OBJ}/sshd_proxy.bak ; |
118 | echo "AllowTcpForwarding $_tcpfwd" ) \ | 120 | echo "AllowTcpForwarding $_tcpfwd" ) \ |
119 | > ${OBJ}/sshd_proxy | 121 | > ${OBJ}/sshd_proxy |
120 | check_lfwd $_plain_lfwd "$_prefix" | 122 | check_lfwd $_plain_lfwd "$_prefix" |
121 | check_rfwd $_plain_rfwd "$_prefix" | 123 | check_rfwd $_plain_rfwd "$_prefix" |
124 | |||
122 | # PermitOpen via sshd_config that doesn't match | 125 | # PermitOpen via sshd_config that doesn't match |
123 | ( cat ${OBJ}/sshd_proxy.bak ; | 126 | ( cat ${OBJ}/sshd_proxy.bak ; |
124 | echo "AllowTcpForwarding $_tcpfwd" ; | 127 | echo "AllowTcpForwarding $_tcpfwd" ; |
125 | echo "PermitOpen $_badfwd" ) \ | 128 | echo "PermitOpen $_badfwd1 $_badfwd2" ) \ |
126 | > ${OBJ}/sshd_proxy | 129 | > ${OBJ}/sshd_proxy |
127 | check_lfwd $_nopermit_lfwd "$_prefix, !PermitOpen" | 130 | check_lfwd $_nopermit_lfwd "$_prefix, !PermitOpen" |
128 | check_rfwd $_nopermit_rfwd "$_prefix, !PermitOpen" | 131 | check_rfwd $_nopermit_rfwd "$_prefix, !PermitOpen" |
129 | # PermitOpen via sshd_config that does match | 132 | # PermitOpen via sshd_config that does match |
130 | ( cat ${OBJ}/sshd_proxy.bak ; | 133 | ( cat ${OBJ}/sshd_proxy.bak ; |
131 | echo "AllowTcpForwarding $_tcpfwd" ; | 134 | echo "AllowTcpForwarding $_tcpfwd" ; |
132 | echo "PermitOpen $_badfwd $_goodfwd" ) \ | 135 | echo "PermitOpen $_badfwd1 $_goodfwd $_badfwd2" ) \ |
133 | > ${OBJ}/sshd_proxy | 136 | > ${OBJ}/sshd_proxy |
137 | check_lfwd $_plain_lfwd "$_prefix, PermitOpen" | ||
138 | check_rfwd $_plain_rfwd "$_prefix, PermitOpen" | ||
139 | |||
140 | # permitopen keys option. | ||
134 | # NB. permitopen via authorized_keys should have same | 141 | # NB. permitopen via authorized_keys should have same |
135 | # success/fail as via sshd_config | 142 | # success/fail as via sshd_config |
136 | # permitopen via authorized_keys that doesn't match | 143 | # permitopen via authorized_keys that doesn't match |
137 | sed "s/^/permitopen=\"$_badfwd\" /" \ | 144 | sed "s/^/permitopen=\"$_badfwd1\",permitopen=\"$_badfwd2\" /" \ |
138 | < ${OBJ}/authorized_keys_${USER}.bak \ | 145 | < ${OBJ}/authorized_keys_${USER}.bak \ |
139 | > ${OBJ}/authorized_keys_${USER} || fatal "sed 1 fail" | 146 | > ${OBJ}/authorized_keys_${USER} || fatal "sed 1 fail" |
140 | ( cat ${OBJ}/sshd_proxy.bak ; | 147 | ( cat ${OBJ}/sshd_proxy.bak ; |
@@ -143,7 +150,7 @@ all_tests() { | |||
143 | check_lfwd $_nopermit_lfwd "$_prefix, !permitopen" | 150 | check_lfwd $_nopermit_lfwd "$_prefix, !permitopen" |
144 | check_rfwd $_nopermit_rfwd "$_prefix, !permitopen" | 151 | check_rfwd $_nopermit_rfwd "$_prefix, !permitopen" |
145 | # permitopen via authorized_keys that does match | 152 | # permitopen via authorized_keys that does match |
146 | sed "s/^/permitopen=\"$_badfwd\",permitopen=\"$_goodfwd\" /" \ | 153 | sed "s/^/permitopen=\"$_badfwd1\",permitopen=\"$_goodfwd\" /" \ |
147 | < ${OBJ}/authorized_keys_${USER}.bak \ | 154 | < ${OBJ}/authorized_keys_${USER}.bak \ |
148 | > ${OBJ}/authorized_keys_${USER} || fatal "sed 2 fail" | 155 | > ${OBJ}/authorized_keys_${USER} || fatal "sed 2 fail" |
149 | ( cat ${OBJ}/sshd_proxy.bak ; | 156 | ( cat ${OBJ}/sshd_proxy.bak ; |
@@ -151,6 +158,7 @@ all_tests() { | |||
151 | > ${OBJ}/sshd_proxy | 158 | > ${OBJ}/sshd_proxy |
152 | check_lfwd $_permit_lfwd "$_prefix, permitopen" | 159 | check_lfwd $_permit_lfwd "$_prefix, permitopen" |
153 | check_rfwd $_permit_rfwd "$_prefix, permitopen" | 160 | check_rfwd $_permit_rfwd "$_prefix, permitopen" |
161 | |||
154 | # Check port-forwarding flags in authorized_keys. | 162 | # Check port-forwarding flags in authorized_keys. |
155 | # These two should refuse all. | 163 | # These two should refuse all. |
156 | sed "s/^/no-port-forwarding /" \ | 164 | sed "s/^/no-port-forwarding /" \ |
@@ -180,9 +188,48 @@ all_tests() { | |||
180 | check_rfwd $_plain_rfwd "$_prefix, restrict,port-forwarding" | 188 | check_rfwd $_plain_rfwd "$_prefix, restrict,port-forwarding" |
181 | } | 189 | } |
182 | 190 | ||
183 | # no-permitopen mismatch-permitopen match-permitopen | 191 | # permit-open none mismatch match |
184 | # AllowTcpForwarding local remote local remote local remote | 192 | # AllowTcpForwarding local remote local remote local remote |
185 | all_tests yes Y Y N Y Y Y | 193 | lperm_tests yes Y Y N Y Y Y |
186 | all_tests local Y N N N Y N | 194 | lperm_tests local Y N N N Y N |
187 | all_tests remote N Y N Y N Y | 195 | lperm_tests remote N Y N Y N Y |
188 | all_tests no N N N N N N | 196 | lperm_tests no N N N N N N |
197 | |||
198 | # Usage: rperm_tests yes|local|remote|no Y|N Y|N Y|N Y|N Y|N Y|N | ||
199 | rperm_tests() { | ||
200 | _tcpfwd=$1 | ||
201 | _plain_lfwd=$2 | ||
202 | _plain_rfwd=$3 | ||
203 | _nopermit_lfwd=$4 | ||
204 | _nopermit_rfwd=$5 | ||
205 | _permit_lfwd=$6 | ||
206 | _permit_rfwd=$7 | ||
207 | _badfwd1=127.0.0.1:22 | ||
208 | _badfwd2=127.0.0.2:${RFWD_PORT} | ||
209 | _goodfwd=127.0.0.1:${RFWD_PORT} | ||
210 | cp ${OBJ}/authorized_keys_${USER}.bak ${OBJ}/authorized_keys_${USER} | ||
211 | _prefix="AllowTcpForwarding=$_tcpfwd" | ||
212 | |||
213 | # PermitListen via sshd_config that doesn't match | ||
214 | ( cat ${OBJ}/sshd_proxy.bak ; | ||
215 | echo "AllowTcpForwarding $_tcpfwd" ; | ||
216 | echo "PermitListen $_badfwd1 $_badfwd2" ) \ | ||
217 | > ${OBJ}/sshd_proxy | ||
218 | check_lfwd $_nopermit_lfwd "$_prefix, !PermitListen" | ||
219 | check_rfwd $_nopermit_rfwd "$_prefix, !PermitListen" | ||
220 | # PermitListen via sshd_config that does match | ||
221 | ( cat ${OBJ}/sshd_proxy.bak ; | ||
222 | echo "AllowTcpForwarding $_tcpfwd" ; | ||
223 | echo "PermitListen $_badfwd1 $_goodfwd $_badfwd2" ) \ | ||
224 | > ${OBJ}/sshd_proxy | ||
225 | check_lfwd $_plain_lfwd "$_prefix, PermitListen" | ||
226 | check_rfwd $_plain_rfwd "$_prefix, PermitListen" | ||
227 | } | ||
228 | |||
229 | # permit-remote-open none mismatch match | ||
230 | # AllowTcpForwarding local remote local remote local remote | ||
231 | rperm_tests yes Y Y Y N Y Y | ||
232 | rperm_tests local Y N Y N Y N | ||
233 | rperm_tests remote N Y N N N Y | ||
234 | rperm_tests no N N N N N N | ||
235 | |||
diff --git a/regress/forwarding.sh b/regress/forwarding.sh index 39fccba73..7d0fae114 100644 --- a/regress/forwarding.sh +++ b/regress/forwarding.sh | |||
@@ -10,7 +10,8 @@ start_sshd | |||
10 | base=33 | 10 | base=33 |
11 | last=$PORT | 11 | last=$PORT |
12 | fwd="" | 12 | fwd="" |
13 | CTL=/tmp/openssh.regress.ctl-sock.$$ | 13 | make_tmpdir |
14 | CTL=${SSH_REGRESS_TMP}/ctl-sock | ||
14 | 15 | ||
15 | for j in 0 1 2; do | 16 | for j in 0 1 2; do |
16 | for i in 0 1 2; do | 17 | for i in 0 1 2; do |
diff --git a/regress/key-options.sh b/regress/key-options.sh index d680737c1..112c9bd8e 100644 --- a/regress/key-options.sh +++ b/regress/key-options.sh | |||
@@ -1,4 +1,4 @@ | |||
1 | # $OpenBSD: key-options.sh,v 1.8 2018/03/14 05:35:40 djm Exp $ | 1 | # $OpenBSD: key-options.sh,v 1.9 2018/07/03 13:53:26 djm Exp $ |
2 | # Placed in the Public Domain. | 2 | # Placed in the Public Domain. |
3 | 3 | ||
4 | tid="key options" | 4 | tid="key options" |
@@ -27,6 +27,7 @@ expect_pty_succeed() { | |||
27 | rm -f $OBJ/data | 27 | rm -f $OBJ/data |
28 | sed "s/.*/$opts &/" $origkeys >$authkeys | 28 | sed "s/.*/$opts &/" $origkeys >$authkeys |
29 | verbose "key option pty $which" | 29 | verbose "key option pty $which" |
30 | config_defined HAVE_OPENPTY || verbose "skipped for no openpty(3)" | ||
30 | ${SSH} -ttq -F $OBJ/ssh_proxy somehost "tty > $OBJ/data; exit 0" | 31 | ${SSH} -ttq -F $OBJ/ssh_proxy somehost "tty > $OBJ/data; exit 0" |
31 | if [ $? -ne 0 ] ; then | 32 | if [ $? -ne 0 ] ; then |
32 | fail "key option failed $which" | 33 | fail "key option failed $which" |
@@ -44,6 +45,7 @@ expect_pty_fail() { | |||
44 | rm -f $OBJ/data | 45 | rm -f $OBJ/data |
45 | sed "s/.*/$opts &/" $origkeys >$authkeys | 46 | sed "s/.*/$opts &/" $origkeys >$authkeys |
46 | verbose "key option pty $which" | 47 | verbose "key option pty $which" |
48 | config_defined HAVE_OPENPTY || verbose "skipped for no openpty(3)" | ||
47 | ${SSH} -ttq -F $OBJ/ssh_proxy somehost "tty > $OBJ/data; exit 0" | 49 | ${SSH} -ttq -F $OBJ/ssh_proxy somehost "tty > $OBJ/data; exit 0" |
48 | if [ $? -eq 0 ]; then | 50 | if [ $? -eq 0 ]; then |
49 | r=`cat $OBJ/data` | 51 | r=`cat $OBJ/data` |
@@ -63,6 +65,7 @@ expect_pty_fail "restrict" "restrict" | |||
63 | expect_pty_succeed "restrict,pty" "restrict,pty" | 65 | expect_pty_succeed "restrict,pty" "restrict,pty" |
64 | 66 | ||
65 | # Test environment= | 67 | # Test environment= |
68 | # XXX this can fail if ~/.ssh/environment exists for the user running the test | ||
66 | echo 'PermitUserEnvironment yes' >> $OBJ/sshd_proxy | 69 | echo 'PermitUserEnvironment yes' >> $OBJ/sshd_proxy |
67 | sed 's/.*/environment="FOO=bar" &/' $origkeys >$authkeys | 70 | sed 's/.*/environment="FOO=bar" &/' $origkeys >$authkeys |
68 | verbose "key option environment" | 71 | verbose "key option environment" |
diff --git a/regress/keygen-knownhosts.sh b/regress/keygen-knownhosts.sh index 693cd0e75..37af34769 100644 --- a/regress/keygen-knownhosts.sh +++ b/regress/keygen-knownhosts.sh | |||
@@ -1,4 +1,4 @@ | |||
1 | # $OpenBSD: keygen-knownhosts.sh,v 1.3 2015/07/17 03:34:27 djm Exp $ | 1 | # $OpenBSD: keygen-knownhosts.sh,v 1.4 2018/06/01 03:52:37 djm Exp $ |
2 | # Placed in the Public Domain. | 2 | # Placed in the Public Domain. |
3 | 3 | ||
4 | tid="ssh-keygen known_hosts" | 4 | tid="ssh-keygen known_hosts" |
@@ -55,13 +55,24 @@ expect_key() { | |||
55 | check_find() { | 55 | check_find() { |
56 | _host=$1 | 56 | _host=$1 |
57 | _name=$2 | 57 | _name=$2 |
58 | _keygenopt=$3 | 58 | shift; shift |
59 | ${SSHKEYGEN} $_keygenopt -f $OBJ/kh.invalid -F $_host > $OBJ/kh.result | 59 | ${SSHKEYGEN} "$@" -f $OBJ/kh.invalid -F $_host > $OBJ/kh.result |
60 | if ! diff -w $OBJ/kh.expect $OBJ/kh.result ; then | 60 | if ! diff -w $OBJ/kh.expect $OBJ/kh.result ; then |
61 | fail "didn't find $_name" | 61 | fail "didn't find $_name" |
62 | fi | 62 | fi |
63 | } | 63 | } |
64 | 64 | ||
65 | check_find_exit_code() { | ||
66 | _host=$1 | ||
67 | _name=$2 | ||
68 | _keygenopt=$3 | ||
69 | _exp_exit_code=$4 | ||
70 | ${SSHKEYGEN} $_keygenopt -f $OBJ/kh.invalid -F $_host > /dev/null | ||
71 | if [ "$?" != "$_exp_exit_code" ] ; then | ||
72 | fail "Unexpected exit code $_name" | ||
73 | fi | ||
74 | } | ||
75 | |||
65 | # Find key | 76 | # Find key |
66 | rm -f $OBJ/kh.expect | 77 | rm -f $OBJ/kh.expect |
67 | expect_key host-a host-a host-a 2 | 78 | expect_key host-a host-a host-a 2 |
@@ -88,6 +99,18 @@ rm -f $OBJ/kh.expect | |||
88 | expect_key host-h "host-f,host-g,host-h " host-f 17 | 99 | expect_key host-h "host-f,host-g,host-h " host-f 17 |
89 | check_find host-h "find multiple hosts" | 100 | check_find host-h "find multiple hosts" |
90 | 101 | ||
102 | # Check exit code, known host | ||
103 | check_find_exit_code host-a "known host" "-q" "0" | ||
104 | |||
105 | # Check exit code, unknown host | ||
106 | check_find_exit_code host-aa "unknown host" "-q" "1" | ||
107 | |||
108 | # Check exit code, the hash mode, known host | ||
109 | check_find_exit_code host-a "known host" "-q -H" "0" | ||
110 | |||
111 | # Check exit code, the hash mode, unknown host | ||
112 | check_find_exit_code host-aa "unknown host" "-q -H" "1" | ||
113 | |||
91 | check_hashed_find() { | 114 | check_hashed_find() { |
92 | _host=$1 | 115 | _host=$1 |
93 | _name=$2 | 116 | _name=$2 |
@@ -110,19 +133,19 @@ check_hashed_find host-a "find simple and hash" | |||
110 | rm -f $OBJ/kh.expect | 133 | rm -f $OBJ/kh.expect |
111 | expect_key host-c host-c host-c "" CA | 134 | expect_key host-c host-c host-c "" CA |
112 | # CA key output is not hashed. | 135 | # CA key output is not hashed. |
113 | check_find host-c "find simple and hash" -H | 136 | check_find host-c "find simple and hash" -Hq |
114 | 137 | ||
115 | # Find revoked key and hash | 138 | # Find revoked key and hash |
116 | rm -f $OBJ/kh.expect | 139 | rm -f $OBJ/kh.expect |
117 | expect_key host-d host-d host-d "" REVOKED | 140 | expect_key host-d host-d host-d "" REVOKED |
118 | # Revoked key output is not hashed. | 141 | # Revoked key output is not hashed. |
119 | check_find host-d "find simple and hash" -H | 142 | check_find host-d "find simple and hash" -Hq |
120 | 143 | ||
121 | # find key with wildcard and hash | 144 | # find key with wildcard and hash |
122 | rm -f $OBJ/kh.expect | 145 | rm -f $OBJ/kh.expect |
123 | expect_key host-e "host-e*" host-e "" | 146 | expect_key host-e "host-e*" host-e "" |
124 | # Key with wildcard hostname should not be hashed. | 147 | # Key with wildcard hostname should not be hashed. |
125 | check_find host-e "find wildcard key" -H | 148 | check_find host-e "find wildcard key" -Hq |
126 | 149 | ||
127 | # find key among multiple hosts | 150 | # find key among multiple hosts |
128 | rm -f $OBJ/kh.expect | 151 | rm -f $OBJ/kh.expect |
diff --git a/regress/mkdtemp.c b/regress/mkdtemp.c new file mode 100644 index 000000000..a7be1bdab --- /dev/null +++ b/regress/mkdtemp.c | |||
@@ -0,0 +1,61 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2017 Colin Watson <cjwatson@debian.org> | ||
3 | * | ||
4 | * Permission to use, copy, modify, and distribute this software for any | ||
5 | * purpose with or without fee is hereby granted, provided that the above | ||
6 | * copyright notice and this permission notice appear in all copies. | ||
7 | * | ||
8 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||
9 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||
10 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||
11 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||
12 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||
13 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||
14 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
15 | */ | ||
16 | |||
17 | /* Roughly equivalent to "mktemp -d -t TEMPLATE", but portable. */ | ||
18 | |||
19 | #include "includes.h" | ||
20 | |||
21 | #include <limits.h> | ||
22 | #include <stdarg.h> | ||
23 | #include <stdio.h> | ||
24 | #include <stdlib.h> | ||
25 | #include <unistd.h> | ||
26 | |||
27 | #include "log.h" | ||
28 | |||
29 | static void | ||
30 | usage(void) | ||
31 | { | ||
32 | fprintf(stderr, "mkdtemp template\n"); | ||
33 | exit(1); | ||
34 | } | ||
35 | |||
36 | int | ||
37 | main(int argc, char **argv) | ||
38 | { | ||
39 | const char *base; | ||
40 | const char *tmpdir; | ||
41 | char template[PATH_MAX]; | ||
42 | int r; | ||
43 | char *dir; | ||
44 | |||
45 | if (argc != 2) | ||
46 | usage(); | ||
47 | base = argv[1]; | ||
48 | |||
49 | if ((tmpdir = getenv("TMPDIR")) == NULL) | ||
50 | tmpdir = "/tmp"; | ||
51 | r = snprintf(template, sizeof(template), "%s/%s", tmpdir, base); | ||
52 | if (r < 0 || (size_t)r >= sizeof(template)) | ||
53 | fatal("template string too long"); | ||
54 | dir = mkdtemp(template); | ||
55 | if (dir == NULL) { | ||
56 | perror("mkdtemp"); | ||
57 | exit(1); | ||
58 | } | ||
59 | puts(dir); | ||
60 | return 0; | ||
61 | } | ||
diff --git a/regress/multiplex.sh b/regress/multiplex.sh index 078a53a88..a6fad8eb8 100644 --- a/regress/multiplex.sh +++ b/regress/multiplex.sh | |||
@@ -1,7 +1,8 @@ | |||
1 | # $OpenBSD: multiplex.sh,v 1.28 2017/04/30 23:34:55 djm Exp $ | 1 | # $OpenBSD: multiplex.sh,v 1.28 2017/04/30 23:34:55 djm Exp $ |
2 | # Placed in the Public Domain. | 2 | # Placed in the Public Domain. |
3 | 3 | ||
4 | CTL=/tmp/openssh.regress.ctl-sock.$$ | 4 | make_tmpdir |
5 | CTL=${SSH_REGRESS_TMP}/ctl-sock | ||
5 | 6 | ||
6 | tid="connection multiplexing" | 7 | tid="connection multiplexing" |
7 | 8 | ||
diff --git a/regress/rekey.sh b/regress/rekey.sh index ae145bc8b..fd6a02cc7 100644 --- a/regress/rekey.sh +++ b/regress/rekey.sh | |||
@@ -1,4 +1,4 @@ | |||
1 | # $OpenBSD: rekey.sh,v 1.17 2016/01/29 05:18:15 dtucker Exp $ | 1 | # $OpenBSD: rekey.sh,v 1.18 2018/04/10 00:14:10 djm Exp $ |
2 | # Placed in the Public Domain. | 2 | # Placed in the Public Domain. |
3 | 3 | ||
4 | tid="rekey" | 4 | tid="rekey" |
@@ -30,7 +30,7 @@ ssh_data_rekeying() | |||
30 | n=`expr $n - 1` | 30 | n=`expr $n - 1` |
31 | trace "$n rekeying(s)" | 31 | trace "$n rekeying(s)" |
32 | if [ $n -lt 1 ]; then | 32 | if [ $n -lt 1 ]; then |
33 | fail "no rekeying occured ($@)" | 33 | fail "no rekeying occurred ($@)" |
34 | fi | 34 | fi |
35 | } | 35 | } |
36 | 36 | ||
@@ -80,7 +80,7 @@ for s in 5 10; do | |||
80 | n=`expr $n - 1` | 80 | n=`expr $n - 1` |
81 | trace "$n rekeying(s)" | 81 | trace "$n rekeying(s)" |
82 | if [ $n -lt 1 ]; then | 82 | if [ $n -lt 1 ]; then |
83 | fail "no rekeying occured" | 83 | fail "no rekeying occurred" |
84 | fi | 84 | fi |
85 | done | 85 | done |
86 | 86 | ||
@@ -96,7 +96,7 @@ for s in 5 10; do | |||
96 | n=`expr $n - 1` | 96 | n=`expr $n - 1` |
97 | trace "$n rekeying(s)" | 97 | trace "$n rekeying(s)" |
98 | if [ $n -lt 1 ]; then | 98 | if [ $n -lt 1 ]; then |
99 | fail "no rekeying occured" | 99 | fail "no rekeying occurred" |
100 | fi | 100 | fi |
101 | done | 101 | done |
102 | 102 | ||
@@ -115,7 +115,7 @@ for s in 16 1k 128k 256k; do | |||
115 | n=`expr $n - 1` | 115 | n=`expr $n - 1` |
116 | trace "$n rekeying(s)" | 116 | trace "$n rekeying(s)" |
117 | if [ $n -lt 1 ]; then | 117 | if [ $n -lt 1 ]; then |
118 | fail "no rekeying occured" | 118 | fail "no rekeying occurred" |
119 | fi | 119 | fi |
120 | done | 120 | done |
121 | 121 | ||
@@ -132,7 +132,7 @@ for s in 5 10; do | |||
132 | n=`expr $n - 1` | 132 | n=`expr $n - 1` |
133 | trace "$n rekeying(s)" | 133 | trace "$n rekeying(s)" |
134 | if [ $n -lt 1 ]; then | 134 | if [ $n -lt 1 ]; then |
135 | fail "no rekeying occured" | 135 | fail "no rekeying occurred" |
136 | fi | 136 | fi |
137 | done | 137 | done |
138 | 138 | ||
diff --git a/regress/setuid-allowed.c b/regress/setuid-allowed.c index 7a0527fd0..d91d9f194 100644 --- a/regress/setuid-allowed.c +++ b/regress/setuid-allowed.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #ifdef HAVE_SYS_STATVFS_H | 22 | #ifdef HAVE_SYS_STATVFS_H |
23 | # include <sys/statvfs.h> | 23 | # include <sys/statvfs.h> |
24 | #endif | 24 | #endif |
25 | #include <stdlib.h> | ||
25 | #include <stdio.h> | 26 | #include <stdio.h> |
26 | #include <string.h> | 27 | #include <string.h> |
27 | #include <errno.h> | 28 | #include <errno.h> |
diff --git a/regress/sshcfgparse.sh b/regress/sshcfgparse.sh index 010e02865..e0ce568d7 100644 --- a/regress/sshcfgparse.sh +++ b/regress/sshcfgparse.sh | |||
@@ -1,8 +1,27 @@ | |||
1 | # $OpenBSD: sshcfgparse.sh,v 1.2 2016/07/14 01:24:21 dtucker Exp $ | 1 | # $OpenBSD: sshcfgparse.sh,v 1.4 2018/07/04 13:51:12 djm Exp $ |
2 | # Placed in the Public Domain. | 2 | # Placed in the Public Domain. |
3 | 3 | ||
4 | tid="ssh config parse" | 4 | tid="ssh config parse" |
5 | 5 | ||
6 | expect_result_present() { | ||
7 | _str="$1" ; shift | ||
8 | for _expect in "$@" ; do | ||
9 | echo "$f" | tr ',' '\n' | grep "^$_expect\$" >/dev/null | ||
10 | if test $? -ne 0 ; then | ||
11 | fail "missing expected \"$_expect\" from \"$_str\"" | ||
12 | fi | ||
13 | done | ||
14 | } | ||
15 | expect_result_absent() { | ||
16 | _str="$1" ; shift | ||
17 | for _expect in "$@" ; do | ||
18 | echo "$f" | tr ',' '\n' | grep "^$_expect\$" >/dev/null | ||
19 | if test $? -eq 0 ; then | ||
20 | fail "unexpected \"$_expect\" present in \"$_str\"" | ||
21 | fi | ||
22 | done | ||
23 | } | ||
24 | |||
6 | verbose "reparse minimal config" | 25 | verbose "reparse minimal config" |
7 | (${SSH} -G -F $OBJ/ssh_config somehost >$OBJ/ssh_config.1 && | 26 | (${SSH} -G -F $OBJ/ssh_config somehost >$OBJ/ssh_config.1 && |
8 | ${SSH} -G -F $OBJ/ssh_config.1 somehost >$OBJ/ssh_config.2 && | 27 | ${SSH} -G -F $OBJ/ssh_config.1 somehost >$OBJ/ssh_config.2 && |
@@ -25,5 +44,46 @@ f=`${SSH} -GF $OBJ/ssh_config -W a:1 -o clearallforwardings=no h | \ | |||
25 | awk '/clearallforwardings/{print $2}'` | 44 | awk '/clearallforwardings/{print $2}'` |
26 | test "$f" = "no" || fail "clearallforwardings override" | 45 | test "$f" = "no" || fail "clearallforwardings override" |
27 | 46 | ||
47 | verbose "user first match" | ||
48 | user=`awk '$1=="User" {print $2}' $OBJ/ssh_config` | ||
49 | f=`${SSH} -GF $OBJ/ssh_config host | awk '/^user /{print $2}'` | ||
50 | test "$f" = "$user" || fail "user from config, expected '$user' got '$f'" | ||
51 | f=`${SSH} -GF $OBJ/ssh_config -o user=foo -l bar baz@host | awk '/^user /{print $2}'` | ||
52 | test "$f" = "foo" || fail "user first match -oUser, expected 'foo' got '$f' " | ||
53 | f=`${SSH} -GF $OBJ/ssh_config -lbar baz@host user=foo baz@host | awk '/^user /{print $2}'` | ||
54 | test "$f" = "bar" || fail "user first match -l, expected 'bar' got '$f'" | ||
55 | f=`${SSH} -GF $OBJ/ssh_config baz@host -o user=foo -l bar baz@host | awk '/^user /{print $2}'` | ||
56 | test "$f" = "baz" || fail "user first match user@host, expected 'baz' got '$f'" | ||
57 | |||
58 | verbose "pubkeyacceptedkeytypes" | ||
59 | # Default set | ||
60 | f=`${SSH} -GF none host | awk '/^pubkeyacceptedkeytypes /{print $2}'` | ||
61 | expect_result_present "$f" "ssh-ed25519" "ssh-ed25519-cert-v01.*" | ||
62 | expect_result_absent "$f" "ssh-dss" | ||
63 | # Explicit override | ||
64 | f=`${SSH} -GF none -opubkeyacceptedkeytypes=ssh-ed25519 host | \ | ||
65 | awk '/^pubkeyacceptedkeytypes /{print $2}'` | ||
66 | expect_result_present "$f" "ssh-ed25519" | ||
67 | expect_result_absent "$f" "ssh-ed25519-cert-v01.*" "ssh-dss" | ||
68 | # Removal from default set | ||
69 | f=`${SSH} -GF none -opubkeyacceptedkeytypes=-ssh-ed25519-cert* host | \ | ||
70 | awk '/^pubkeyacceptedkeytypes /{print $2}'` | ||
71 | expect_result_present "$f" "ssh-ed25519" | ||
72 | expect_result_absent "$f" "ssh-ed25519-cert-v01.*" "ssh-dss" | ||
73 | f=`${SSH} -GF none -opubkeyacceptedkeytypes=-ssh-ed25519 host | \ | ||
74 | awk '/^pubkeyacceptedkeytypes /{print $2}'` | ||
75 | expect_result_present "$f" "ssh-ed25519-cert-v01.*" | ||
76 | expect_result_absent "$f" "ssh-ed25519" "ssh-dss" | ||
77 | # Append to default set. | ||
78 | # XXX this will break for !WITH_OPENSSL | ||
79 | f=`${SSH} -GF none -opubkeyacceptedkeytypes=+ssh-dss-cert* host | \ | ||
80 | awk '/^pubkeyacceptedkeytypes /{print $2}'` | ||
81 | expect_result_present "$f" "ssh-ed25519" "ssh-dss-cert-v01.*" | ||
82 | expect_result_absent "$f" "ssh-dss" | ||
83 | f=`${SSH} -GF none -opubkeyacceptedkeytypes=+ssh-dss host | \ | ||
84 | awk '/^pubkeyacceptedkeytypes /{print $2}'` | ||
85 | expect_result_present "$f" "ssh-ed25519" "ssh-ed25519-cert-v01.*" "ssh-dss" | ||
86 | expect_result_absent "$f" "ssh-dss-cert-v01.*" | ||
87 | |||
28 | # cleanup | 88 | # cleanup |
29 | rm -f $OBJ/ssh_config.[012] | 89 | rm -f $OBJ/ssh_config.[012] |
diff --git a/regress/test-exec.sh b/regress/test-exec.sh index b6169f157..40d46e3cd 100644 --- a/regress/test-exec.sh +++ b/regress/test-exec.sh | |||
@@ -1,4 +1,4 @@ | |||
1 | # $OpenBSD: test-exec.sh,v 1.62 2018/03/16 09:06:31 dtucker Exp $ | 1 | # $OpenBSD: test-exec.sh,v 1.64 2018/08/10 01:35:49 dtucker Exp $ |
2 | # Placed in the Public Domain. | 2 | # Placed in the Public Domain. |
3 | 3 | ||
4 | #SUDO=sudo | 4 | #SUDO=sudo |
@@ -76,6 +76,9 @@ SFTP=sftp | |||
76 | SFTPSERVER=/usr/libexec/openssh/sftp-server | 76 | SFTPSERVER=/usr/libexec/openssh/sftp-server |
77 | SCP=scp | 77 | SCP=scp |
78 | 78 | ||
79 | # Set by make_tmpdir() on demand (below). | ||
80 | SSH_REGRESS_TMP= | ||
81 | |||
79 | # Interop testing | 82 | # Interop testing |
80 | PLINK=plink | 83 | PLINK=plink |
81 | PUTTYGEN=puttygen | 84 | PUTTYGEN=puttygen |
@@ -163,9 +166,13 @@ if [ "x$USE_VALGRIND" != "x" ]; then | |||
163 | esac | 166 | esac |
164 | 167 | ||
165 | if [ x"$VG_SKIP" = "x" ]; then | 168 | if [ x"$VG_SKIP" = "x" ]; then |
169 | VG_LEAK="--leak-check=no" | ||
170 | if [ x"$VALGRIND_CHECK_LEAKS" != "x" ]; then | ||
171 | VG_LEAK="--leak-check=full" | ||
172 | fi | ||
166 | VG_IGNORE="/bin/*,/sbin/*,/usr/*,/var/*" | 173 | VG_IGNORE="/bin/*,/sbin/*,/usr/*,/var/*" |
167 | VG_LOG="$OBJ/valgrind-out/${VG_TEST}." | 174 | VG_LOG="$OBJ/valgrind-out/${VG_TEST}." |
168 | VG_OPTS="--track-origins=yes --leak-check=full" | 175 | VG_OPTS="--track-origins=yes $VG_LEAK" |
169 | VG_OPTS="$VG_OPTS --trace-children=yes" | 176 | VG_OPTS="$VG_OPTS --trace-children=yes" |
170 | VG_OPTS="$VG_OPTS --trace-children-skip=${VG_IGNORE}" | 177 | VG_OPTS="$VG_OPTS --trace-children-skip=${VG_IGNORE}" |
171 | VG_PATH="valgrind" | 178 | VG_PATH="valgrind" |
@@ -318,6 +325,12 @@ stop_sshd () | |||
318 | fi | 325 | fi |
319 | } | 326 | } |
320 | 327 | ||
328 | make_tmpdir () | ||
329 | { | ||
330 | SSH_REGRESS_TMP="$($OBJ/mkdtemp openssh-XXXXXXXX)" || \ | ||
331 | fatal "failed to create temporary directory" | ||
332 | } | ||
333 | |||
321 | # helper | 334 | # helper |
322 | cleanup () | 335 | cleanup () |
323 | { | 336 | { |
@@ -328,6 +341,9 @@ cleanup () | |||
328 | kill $SSH_PID | 341 | kill $SSH_PID |
329 | fi | 342 | fi |
330 | fi | 343 | fi |
344 | if [ "x$SSH_REGRESS_TMP" != "x" ]; then | ||
345 | rm -rf "$SSH_REGRESS_TMP" | ||
346 | fi | ||
331 | stop_sshd | 347 | stop_sshd |
332 | } | 348 | } |
333 | 349 | ||
@@ -375,7 +391,10 @@ fail () | |||
375 | save_debug_log "FAIL: $@" | 391 | save_debug_log "FAIL: $@" |
376 | RESULT=1 | 392 | RESULT=1 |
377 | echo "$@" | 393 | echo "$@" |
378 | 394 | if test "x$TEST_SSH_FAIL_FATAL" != "x" ; then | |
395 | cleanup | ||
396 | exit $RESULT | ||
397 | fi | ||
379 | } | 398 | } |
380 | 399 | ||
381 | fatal () | 400 | fatal () |
@@ -512,10 +531,13 @@ if test "$REGRESS_INTEROP_PUTTY" = "yes" ; then | |||
512 | >> $OBJ/authorized_keys_$USER | 531 | >> $OBJ/authorized_keys_$USER |
513 | 532 | ||
514 | # Convert rsa2 host key to PuTTY format | 533 | # Convert rsa2 host key to PuTTY format |
515 | ${SRC}/ssh2putty.sh 127.0.0.1 $PORT $OBJ/rsa > \ | 534 | cp $OBJ/rsa $OBJ/rsa_oldfmt |
535 | ${SSHKEYGEN} -p -N '' -m PEM -f $OBJ/rsa_oldfmt >/dev/null | ||
536 | ${SRC}/ssh2putty.sh 127.0.0.1 $PORT $OBJ/rsa_oldfmt > \ | ||
516 | ${OBJ}/.putty/sshhostkeys | 537 | ${OBJ}/.putty/sshhostkeys |
517 | ${SRC}/ssh2putty.sh 127.0.0.1 22 $OBJ/rsa >> \ | 538 | ${SRC}/ssh2putty.sh 127.0.0.1 22 $OBJ/rsa_oldfmt >> \ |
518 | ${OBJ}/.putty/sshhostkeys | 539 | ${OBJ}/.putty/sshhostkeys |
540 | rm -f $OBJ/rsa_oldfmt | ||
519 | 541 | ||
520 | # Setup proxied session | 542 | # Setup proxied session |
521 | mkdir -p ${OBJ}/.putty/sessions | 543 | mkdir -p ${OBJ}/.putty/sessions |
diff --git a/regress/unittests/hostkeys/test_iterate.c b/regress/unittests/hostkeys/test_iterate.c index 751825dda..d6963bd2a 100644 --- a/regress/unittests/hostkeys/test_iterate.c +++ b/regress/unittests/hostkeys/test_iterate.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: test_iterate.c,v 1.5 2017/04/30 23:33:48 djm Exp $ */ | 1 | /* $OpenBSD: test_iterate.c,v 1.6 2018/07/16 03:09:59 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Regress test for hostfile.h hostkeys_foreach() | 3 | * Regress test for hostfile.h hostkeys_foreach() |
4 | * | 4 | * |
@@ -152,6 +152,17 @@ prepare_expected(struct expected *expected, size_t n) | |||
152 | } | 152 | } |
153 | } | 153 | } |
154 | 154 | ||
155 | static void | ||
156 | cleanup_expected(struct expected *expected, size_t n) | ||
157 | { | ||
158 | size_t i; | ||
159 | |||
160 | for (i = 0; i < n; i++) { | ||
161 | sshkey_free(expected[i].l.key); | ||
162 | expected[i].l.key = NULL; | ||
163 | } | ||
164 | } | ||
165 | |||
155 | struct expected expected_full[] = { | 166 | struct expected expected_full[] = { |
156 | { NULL, -1, -1, 0, 0, 0, 0, -1, { | 167 | { NULL, -1, -1, 0, 0, 0, 0, -1, { |
157 | NULL, /* path, don't care */ | 168 | NULL, /* path, don't care */ |
@@ -825,6 +836,7 @@ test_iterate(void) | |||
825 | prepare_expected(expected_full, ctx.nexpected); | 836 | prepare_expected(expected_full, ctx.nexpected); |
826 | ASSERT_INT_EQ(hostkeys_foreach(test_data_file("known_hosts"), | 837 | ASSERT_INT_EQ(hostkeys_foreach(test_data_file("known_hosts"), |
827 | check, &ctx, NULL, NULL, ctx.flags), 0); | 838 | check, &ctx, NULL, NULL, ctx.flags), 0); |
839 | cleanup_expected(expected_full, ctx.nexpected); | ||
828 | TEST_DONE(); | 840 | TEST_DONE(); |
829 | 841 | ||
830 | TEST_START("hostkeys_iterate all without key parse"); | 842 | TEST_START("hostkeys_iterate all without key parse"); |
@@ -835,6 +847,7 @@ test_iterate(void) | |||
835 | prepare_expected(expected_full, ctx.nexpected); | 847 | prepare_expected(expected_full, ctx.nexpected); |
836 | ASSERT_INT_EQ(hostkeys_foreach(test_data_file("known_hosts"), | 848 | ASSERT_INT_EQ(hostkeys_foreach(test_data_file("known_hosts"), |
837 | check, &ctx, NULL, NULL, ctx.flags), 0); | 849 | check, &ctx, NULL, NULL, ctx.flags), 0); |
850 | cleanup_expected(expected_full, ctx.nexpected); | ||
838 | TEST_DONE(); | 851 | TEST_DONE(); |
839 | 852 | ||
840 | TEST_START("hostkeys_iterate specify host 1"); | 853 | TEST_START("hostkeys_iterate specify host 1"); |
@@ -846,6 +859,7 @@ test_iterate(void) | |||
846 | prepare_expected(expected_full, ctx.nexpected); | 859 | prepare_expected(expected_full, ctx.nexpected); |
847 | ASSERT_INT_EQ(hostkeys_foreach(test_data_file("known_hosts"), | 860 | ASSERT_INT_EQ(hostkeys_foreach(test_data_file("known_hosts"), |
848 | check, &ctx, "prometheus.example.com", NULL, ctx.flags), 0); | 861 | check, &ctx, "prometheus.example.com", NULL, ctx.flags), 0); |
862 | cleanup_expected(expected_full, ctx.nexpected); | ||
849 | TEST_DONE(); | 863 | TEST_DONE(); |
850 | 864 | ||
851 | TEST_START("hostkeys_iterate specify host 2"); | 865 | TEST_START("hostkeys_iterate specify host 2"); |
@@ -857,6 +871,7 @@ test_iterate(void) | |||
857 | prepare_expected(expected_full, ctx.nexpected); | 871 | prepare_expected(expected_full, ctx.nexpected); |
858 | ASSERT_INT_EQ(hostkeys_foreach(test_data_file("known_hosts"), | 872 | ASSERT_INT_EQ(hostkeys_foreach(test_data_file("known_hosts"), |
859 | check, &ctx, "sisyphus.example.com", NULL, ctx.flags), 0); | 873 | check, &ctx, "sisyphus.example.com", NULL, ctx.flags), 0); |
874 | cleanup_expected(expected_full, ctx.nexpected); | ||
860 | TEST_DONE(); | 875 | TEST_DONE(); |
861 | 876 | ||
862 | TEST_START("hostkeys_iterate match host 1"); | 877 | TEST_START("hostkeys_iterate match host 1"); |
@@ -868,6 +883,7 @@ test_iterate(void) | |||
868 | prepare_expected(expected_full, ctx.nexpected); | 883 | prepare_expected(expected_full, ctx.nexpected); |
869 | ASSERT_INT_EQ(hostkeys_foreach(test_data_file("known_hosts"), | 884 | ASSERT_INT_EQ(hostkeys_foreach(test_data_file("known_hosts"), |
870 | check, &ctx, "prometheus.example.com", NULL, ctx.flags), 0); | 885 | check, &ctx, "prometheus.example.com", NULL, ctx.flags), 0); |
886 | cleanup_expected(expected_full, ctx.nexpected); | ||
871 | TEST_DONE(); | 887 | TEST_DONE(); |
872 | 888 | ||
873 | TEST_START("hostkeys_iterate match host 2"); | 889 | TEST_START("hostkeys_iterate match host 2"); |
@@ -879,6 +895,7 @@ test_iterate(void) | |||
879 | prepare_expected(expected_full, ctx.nexpected); | 895 | prepare_expected(expected_full, ctx.nexpected); |
880 | ASSERT_INT_EQ(hostkeys_foreach(test_data_file("known_hosts"), | 896 | ASSERT_INT_EQ(hostkeys_foreach(test_data_file("known_hosts"), |
881 | check, &ctx, "sisyphus.example.com", NULL, ctx.flags), 0); | 897 | check, &ctx, "sisyphus.example.com", NULL, ctx.flags), 0); |
898 | cleanup_expected(expected_full, ctx.nexpected); | ||
882 | TEST_DONE(); | 899 | TEST_DONE(); |
883 | 900 | ||
884 | TEST_START("hostkeys_iterate specify host missing"); | 901 | TEST_START("hostkeys_iterate specify host missing"); |
@@ -889,6 +906,7 @@ test_iterate(void) | |||
889 | prepare_expected(expected_full, ctx.nexpected); | 906 | prepare_expected(expected_full, ctx.nexpected); |
890 | ASSERT_INT_EQ(hostkeys_foreach(test_data_file("known_hosts"), | 907 | ASSERT_INT_EQ(hostkeys_foreach(test_data_file("known_hosts"), |
891 | check, &ctx, "actaeon.example.org", NULL, ctx.flags), 0); | 908 | check, &ctx, "actaeon.example.org", NULL, ctx.flags), 0); |
909 | cleanup_expected(expected_full, ctx.nexpected); | ||
892 | TEST_DONE(); | 910 | TEST_DONE(); |
893 | 911 | ||
894 | TEST_START("hostkeys_iterate match host missing"); | 912 | TEST_START("hostkeys_iterate match host missing"); |
@@ -899,6 +917,7 @@ test_iterate(void) | |||
899 | prepare_expected(expected_full, ctx.nexpected); | 917 | prepare_expected(expected_full, ctx.nexpected); |
900 | ASSERT_INT_EQ(hostkeys_foreach(test_data_file("known_hosts"), | 918 | ASSERT_INT_EQ(hostkeys_foreach(test_data_file("known_hosts"), |
901 | check, &ctx, "actaeon.example.org", NULL, ctx.flags), 0); | 919 | check, &ctx, "actaeon.example.org", NULL, ctx.flags), 0); |
920 | cleanup_expected(expected_full, ctx.nexpected); | ||
902 | TEST_DONE(); | 921 | TEST_DONE(); |
903 | 922 | ||
904 | TEST_START("hostkeys_iterate specify IPv4"); | 923 | TEST_START("hostkeys_iterate specify IPv4"); |
@@ -910,6 +929,7 @@ test_iterate(void) | |||
910 | prepare_expected(expected_full, ctx.nexpected); | 929 | prepare_expected(expected_full, ctx.nexpected); |
911 | ASSERT_INT_EQ(hostkeys_foreach(test_data_file("known_hosts"), | 930 | ASSERT_INT_EQ(hostkeys_foreach(test_data_file("known_hosts"), |
912 | check, &ctx, "tiresias.example.org", "192.0.2.1", ctx.flags), 0); | 931 | check, &ctx, "tiresias.example.org", "192.0.2.1", ctx.flags), 0); |
932 | cleanup_expected(expected_full, ctx.nexpected); | ||
913 | TEST_DONE(); | 933 | TEST_DONE(); |
914 | 934 | ||
915 | TEST_START("hostkeys_iterate specify IPv6"); | 935 | TEST_START("hostkeys_iterate specify IPv6"); |
@@ -921,6 +941,7 @@ test_iterate(void) | |||
921 | prepare_expected(expected_full, ctx.nexpected); | 941 | prepare_expected(expected_full, ctx.nexpected); |
922 | ASSERT_INT_EQ(hostkeys_foreach(test_data_file("known_hosts"), | 942 | ASSERT_INT_EQ(hostkeys_foreach(test_data_file("known_hosts"), |
923 | check, &ctx, "tiresias.example.org", "2001:db8::1", ctx.flags), 0); | 943 | check, &ctx, "tiresias.example.org", "2001:db8::1", ctx.flags), 0); |
944 | cleanup_expected(expected_full, ctx.nexpected); | ||
924 | TEST_DONE(); | 945 | TEST_DONE(); |
925 | 946 | ||
926 | TEST_START("hostkeys_iterate match IPv4"); | 947 | TEST_START("hostkeys_iterate match IPv4"); |
@@ -932,6 +953,7 @@ test_iterate(void) | |||
932 | prepare_expected(expected_full, ctx.nexpected); | 953 | prepare_expected(expected_full, ctx.nexpected); |
933 | ASSERT_INT_EQ(hostkeys_foreach(test_data_file("known_hosts"), | 954 | ASSERT_INT_EQ(hostkeys_foreach(test_data_file("known_hosts"), |
934 | check, &ctx, "tiresias.example.org", "192.0.2.1", ctx.flags), 0); | 955 | check, &ctx, "tiresias.example.org", "192.0.2.1", ctx.flags), 0); |
956 | cleanup_expected(expected_full, ctx.nexpected); | ||
935 | TEST_DONE(); | 957 | TEST_DONE(); |
936 | 958 | ||
937 | TEST_START("hostkeys_iterate match IPv6"); | 959 | TEST_START("hostkeys_iterate match IPv6"); |
@@ -943,6 +965,7 @@ test_iterate(void) | |||
943 | prepare_expected(expected_full, ctx.nexpected); | 965 | prepare_expected(expected_full, ctx.nexpected); |
944 | ASSERT_INT_EQ(hostkeys_foreach(test_data_file("known_hosts"), | 966 | ASSERT_INT_EQ(hostkeys_foreach(test_data_file("known_hosts"), |
945 | check, &ctx, "tiresias.example.org", "2001:db8::1", ctx.flags), 0); | 967 | check, &ctx, "tiresias.example.org", "2001:db8::1", ctx.flags), 0); |
968 | cleanup_expected(expected_full, ctx.nexpected); | ||
946 | TEST_DONE(); | 969 | TEST_DONE(); |
947 | 970 | ||
948 | TEST_START("hostkeys_iterate specify addr missing"); | 971 | TEST_START("hostkeys_iterate specify addr missing"); |
@@ -953,6 +976,7 @@ test_iterate(void) | |||
953 | prepare_expected(expected_full, ctx.nexpected); | 976 | prepare_expected(expected_full, ctx.nexpected); |
954 | ASSERT_INT_EQ(hostkeys_foreach(test_data_file("known_hosts"), | 977 | ASSERT_INT_EQ(hostkeys_foreach(test_data_file("known_hosts"), |
955 | check, &ctx, "tiresias.example.org", "192.168.0.1", ctx.flags), 0); | 978 | check, &ctx, "tiresias.example.org", "192.168.0.1", ctx.flags), 0); |
979 | cleanup_expected(expected_full, ctx.nexpected); | ||
956 | TEST_DONE(); | 980 | TEST_DONE(); |
957 | 981 | ||
958 | TEST_START("hostkeys_iterate match addr missing"); | 982 | TEST_START("hostkeys_iterate match addr missing"); |
@@ -963,6 +987,7 @@ test_iterate(void) | |||
963 | prepare_expected(expected_full, ctx.nexpected); | 987 | prepare_expected(expected_full, ctx.nexpected); |
964 | ASSERT_INT_EQ(hostkeys_foreach(test_data_file("known_hosts"), | 988 | ASSERT_INT_EQ(hostkeys_foreach(test_data_file("known_hosts"), |
965 | check, &ctx, "tiresias.example.org", "::1", ctx.flags), 0); | 989 | check, &ctx, "tiresias.example.org", "::1", ctx.flags), 0); |
990 | cleanup_expected(expected_full, ctx.nexpected); | ||
966 | TEST_DONE(); | 991 | TEST_DONE(); |
967 | 992 | ||
968 | TEST_START("hostkeys_iterate specify host 2 and IPv4"); | 993 | TEST_START("hostkeys_iterate specify host 2 and IPv4"); |
@@ -975,6 +1000,7 @@ test_iterate(void) | |||
975 | prepare_expected(expected_full, ctx.nexpected); | 1000 | prepare_expected(expected_full, ctx.nexpected); |
976 | ASSERT_INT_EQ(hostkeys_foreach(test_data_file("known_hosts"), | 1001 | ASSERT_INT_EQ(hostkeys_foreach(test_data_file("known_hosts"), |
977 | check, &ctx, "sisyphus.example.com", "192.0.2.1", ctx.flags), 0); | 1002 | check, &ctx, "sisyphus.example.com", "192.0.2.1", ctx.flags), 0); |
1003 | cleanup_expected(expected_full, ctx.nexpected); | ||
978 | TEST_DONE(); | 1004 | TEST_DONE(); |
979 | 1005 | ||
980 | TEST_START("hostkeys_iterate match host 1 and IPv6"); | 1006 | TEST_START("hostkeys_iterate match host 1 and IPv6"); |
@@ -986,7 +1012,9 @@ test_iterate(void) | |||
986 | ctx.match_ipv6 = 1; | 1012 | ctx.match_ipv6 = 1; |
987 | prepare_expected(expected_full, ctx.nexpected); | 1013 | prepare_expected(expected_full, ctx.nexpected); |
988 | ASSERT_INT_EQ(hostkeys_foreach(test_data_file("known_hosts"), | 1014 | ASSERT_INT_EQ(hostkeys_foreach(test_data_file("known_hosts"), |
989 | check, &ctx, "prometheus.example.com", "2001:db8::1", ctx.flags), 0); | 1015 | check, &ctx, "prometheus.example.com", |
1016 | "2001:db8::1", ctx.flags), 0); | ||
1017 | cleanup_expected(expected_full, ctx.nexpected); | ||
990 | TEST_DONE(); | 1018 | TEST_DONE(); |
991 | 1019 | ||
992 | TEST_START("hostkeys_iterate specify host 2 and IPv4 w/ key parse"); | 1020 | TEST_START("hostkeys_iterate specify host 2 and IPv4 w/ key parse"); |
@@ -999,6 +1027,7 @@ test_iterate(void) | |||
999 | prepare_expected(expected_full, ctx.nexpected); | 1027 | prepare_expected(expected_full, ctx.nexpected); |
1000 | ASSERT_INT_EQ(hostkeys_foreach(test_data_file("known_hosts"), | 1028 | ASSERT_INT_EQ(hostkeys_foreach(test_data_file("known_hosts"), |
1001 | check, &ctx, "sisyphus.example.com", "192.0.2.1", ctx.flags), 0); | 1029 | check, &ctx, "sisyphus.example.com", "192.0.2.1", ctx.flags), 0); |
1030 | cleanup_expected(expected_full, ctx.nexpected); | ||
1002 | TEST_DONE(); | 1031 | TEST_DONE(); |
1003 | 1032 | ||
1004 | TEST_START("hostkeys_iterate match host 1 and IPv6 w/ key parse"); | 1033 | TEST_START("hostkeys_iterate match host 1 and IPv6 w/ key parse"); |
@@ -1010,7 +1039,9 @@ test_iterate(void) | |||
1010 | ctx.match_ipv6 = 1; | 1039 | ctx.match_ipv6 = 1; |
1011 | prepare_expected(expected_full, ctx.nexpected); | 1040 | prepare_expected(expected_full, ctx.nexpected); |
1012 | ASSERT_INT_EQ(hostkeys_foreach(test_data_file("known_hosts"), | 1041 | ASSERT_INT_EQ(hostkeys_foreach(test_data_file("known_hosts"), |
1013 | check, &ctx, "prometheus.example.com", "2001:db8::1", ctx.flags), 0); | 1042 | check, &ctx, "prometheus.example.com", |
1043 | "2001:db8::1", ctx.flags), 0); | ||
1044 | cleanup_expected(expected_full, ctx.nexpected); | ||
1014 | TEST_DONE(); | 1045 | TEST_DONE(); |
1015 | } | 1046 | } |
1016 | 1047 | ||
diff --git a/regress/unittests/match/tests.c b/regress/unittests/match/tests.c index e1593367b..3d9af55f2 100644 --- a/regress/unittests/match/tests.c +++ b/regress/unittests/match/tests.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: tests.c,v 1.4 2017/02/03 23:01:42 djm Exp $ */ | 1 | /* $OpenBSD: tests.c,v 1.5 2018/07/04 13:51:45 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Regress test for matching functions | 3 | * Regress test for matching functions |
4 | * | 4 | * |
@@ -105,7 +105,7 @@ tests(void) | |||
105 | 105 | ||
106 | #define CHECK_FILTER(string,filter,expected) \ | 106 | #define CHECK_FILTER(string,filter,expected) \ |
107 | do { \ | 107 | do { \ |
108 | char *result = match_filter_list((string), (filter)); \ | 108 | char *result = match_filter_blacklist((string), (filter)); \ |
109 | ASSERT_STRING_EQ(result, expected); \ | 109 | ASSERT_STRING_EQ(result, expected); \ |
110 | free(result); \ | 110 | free(result); \ |
111 | } while (0) | 111 | } while (0) |
diff --git a/regress/unittests/sshkey/test_sshkey.c b/regress/unittests/sshkey/test_sshkey.c index 1aa608f92..72367bde7 100644 --- a/regress/unittests/sshkey/test_sshkey.c +++ b/regress/unittests/sshkey/test_sshkey.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: test_sshkey.c,v 1.13 2017/12/21 00:41:22 djm Exp $ */ | 1 | /* $OpenBSD: test_sshkey.c,v 1.14 2018/07/13 02:13:19 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Regress test for sshkey.h key management API | 3 | * Regress test for sshkey.h key management API |
4 | * | 4 | * |
@@ -434,10 +434,13 @@ sshkey_tests(void) | |||
434 | ASSERT_PTR_NE(k1->cert->principals[1], NULL); | 434 | ASSERT_PTR_NE(k1->cert->principals[1], NULL); |
435 | ASSERT_PTR_NE(k1->cert->principals[2], NULL); | 435 | ASSERT_PTR_NE(k1->cert->principals[2], NULL); |
436 | ASSERT_PTR_NE(k1->cert->principals[3], NULL); | 436 | ASSERT_PTR_NE(k1->cert->principals[3], NULL); |
437 | k1->cert->nprincipals = 4; | ||
437 | k1->cert->valid_after = 0; | 438 | k1->cert->valid_after = 0; |
438 | k1->cert->valid_before = (u_int64_t)-1; | 439 | k1->cert->valid_before = (u_int64_t)-1; |
440 | sshbuf_free(k1->cert->critical); | ||
439 | k1->cert->critical = sshbuf_new(); | 441 | k1->cert->critical = sshbuf_new(); |
440 | ASSERT_PTR_NE(k1->cert->critical, NULL); | 442 | ASSERT_PTR_NE(k1->cert->critical, NULL); |
443 | sshbuf_free(k1->cert->extensions); | ||
441 | k1->cert->extensions = sshbuf_new(); | 444 | k1->cert->extensions = sshbuf_new(); |
442 | ASSERT_PTR_NE(k1->cert->extensions, NULL); | 445 | ASSERT_PTR_NE(k1->cert->extensions, NULL); |
443 | put_opt(k1->cert->critical, "force-command", "/usr/bin/true"); | 446 | put_opt(k1->cert->critical, "force-command", "/usr/bin/true"); |
diff --git a/regress/valgrind-unit.sh b/regress/valgrind-unit.sh index 433cb069a..4143ead4b 100755 --- a/regress/valgrind-unit.sh +++ b/regress/valgrind-unit.sh | |||
@@ -7,10 +7,12 @@ UNIT_ARGS="$@" | |||
7 | test "x$OBJ" = "x" && OBJ=$PWD | 7 | test "x$OBJ" = "x" && OBJ=$PWD |
8 | 8 | ||
9 | # This mostly replicates the logic in test-exec.sh for running the | 9 | # This mostly replicates the logic in test-exec.sh for running the |
10 | # regress tests under valgrind. | 10 | # regress tests under valgrind, except that we unconditionally enable |
11 | # leak checking because the unit tests should be clean. | ||
12 | VG_LEAK="--leak-check=full" | ||
11 | VG_TEST=`basename $UNIT_BINARY` | 13 | VG_TEST=`basename $UNIT_BINARY` |
12 | VG_LOG="$OBJ/valgrind-out/${VG_TEST}.%p" | 14 | VG_LOG="$OBJ/valgrind-out/${VG_TEST}.%p" |
13 | VG_OPTS="--track-origins=yes --leak-check=full --log-file=${VG_LOG}" | 15 | VG_OPTS="--track-origins=yes $VG_LEAK --log-file=${VG_LOG}" |
14 | VG_OPTS="$VG_OPTS --trace-children=yes" | 16 | VG_OPTS="$VG_OPTS --trace-children=yes" |
15 | VG_PATH="valgrind" | 17 | VG_PATH="valgrind" |
16 | if [ "x$VALGRIND_PATH" != "x" ]; then | 18 | if [ "x$VALGRIND_PATH" != "x" ]; then |
diff --git a/sandbox-seccomp-filter.c b/sandbox-seccomp-filter.c index ca75cc719..12c4ee130 100644 --- a/sandbox-seccomp-filter.c +++ b/sandbox-seccomp-filter.c | |||
@@ -166,6 +166,12 @@ static const struct sock_filter preauth_insns[] = { | |||
166 | #ifdef __NR_exit_group | 166 | #ifdef __NR_exit_group |
167 | SC_ALLOW(__NR_exit_group), | 167 | SC_ALLOW(__NR_exit_group), |
168 | #endif | 168 | #endif |
169 | #ifdef __NR_geteuid | ||
170 | SC_ALLOW(__NR_geteuid), | ||
171 | #endif | ||
172 | #ifdef __NR_geteuid32 | ||
173 | SC_ALLOW(__NR_geteuid32), | ||
174 | #endif | ||
169 | #ifdef __NR_getpgid | 175 | #ifdef __NR_getpgid |
170 | SC_ALLOW(__NR_getpgid), | 176 | SC_ALLOW(__NR_getpgid), |
171 | #endif | 177 | #endif |
@@ -178,6 +184,12 @@ static const struct sock_filter preauth_insns[] = { | |||
178 | #ifdef __NR_gettimeofday | 184 | #ifdef __NR_gettimeofday |
179 | SC_ALLOW(__NR_gettimeofday), | 185 | SC_ALLOW(__NR_gettimeofday), |
180 | #endif | 186 | #endif |
187 | #ifdef __NR_getuid | ||
188 | SC_ALLOW(__NR_getuid), | ||
189 | #endif | ||
190 | #ifdef __NR_getuid32 | ||
191 | SC_ALLOW(__NR_getuid32), | ||
192 | #endif | ||
181 | #ifdef __NR_madvise | 193 | #ifdef __NR_madvise |
182 | SC_ALLOW(__NR_madvise), | 194 | SC_ALLOW(__NR_madvise), |
183 | #endif | 195 | #endif |
@@ -193,6 +205,9 @@ static const struct sock_filter preauth_insns[] = { | |||
193 | #ifdef __NR_munmap | 205 | #ifdef __NR_munmap |
194 | SC_ALLOW(__NR_munmap), | 206 | SC_ALLOW(__NR_munmap), |
195 | #endif | 207 | #endif |
208 | #ifdef __NR_nanosleep | ||
209 | SC_ALLOW(__NR_nanosleep), | ||
210 | #endif | ||
196 | #ifdef __NR__newselect | 211 | #ifdef __NR__newselect |
197 | SC_ALLOW(__NR__newselect), | 212 | SC_ALLOW(__NR__newselect), |
198 | #endif | 213 | #endif |
diff --git a/sandbox-systrace.c b/sandbox-systrace.c index b4d8d04ca..add4c46d0 100644 --- a/sandbox-systrace.c +++ b/sandbox-systrace.c | |||
@@ -59,6 +59,7 @@ static const struct sandbox_policy preauth_policy[] = { | |||
59 | { SYS_getpgid, SYSTR_POLICY_PERMIT }, | 59 | { SYS_getpgid, SYSTR_POLICY_PERMIT }, |
60 | { SYS_clock_gettime, SYSTR_POLICY_PERMIT }, | 60 | { SYS_clock_gettime, SYSTR_POLICY_PERMIT }, |
61 | { SYS_gettimeofday, SYSTR_POLICY_PERMIT }, | 61 | { SYS_gettimeofday, SYSTR_POLICY_PERMIT }, |
62 | { SYS_nanosleep, SYSTR_POLICY_PERMIT }, | ||
62 | { SYS_sigprocmask, SYSTR_POLICY_PERMIT }, | 63 | { SYS_sigprocmask, SYSTR_POLICY_PERMIT }, |
63 | 64 | ||
64 | #ifdef SYS_getentropy | 65 | #ifdef SYS_getentropy |
@@ -114,10 +114,10 @@ DESCRIPTION | |||
114 | SendEnv | 114 | SendEnv |
115 | ServerAliveInterval | 115 | ServerAliveInterval |
116 | ServerAliveCountMax | 116 | ServerAliveCountMax |
117 | SetEnv | ||
117 | StrictHostKeyChecking | 118 | StrictHostKeyChecking |
118 | TCPKeepAlive | 119 | TCPKeepAlive |
119 | UpdateHostKeys | 120 | UpdateHostKeys |
120 | UsePrivilegedPort | ||
121 | User | 121 | User |
122 | UserKnownHostsFile | 122 | UserKnownHostsFile |
123 | VerifyHostKeyDNS | 123 | VerifyHostKeyDNS |
@@ -159,4 +159,4 @@ AUTHORS | |||
159 | Timo Rinne <tri@iki.fi> | 159 | Timo Rinne <tri@iki.fi> |
160 | Tatu Ylonen <ylo@cs.hut.fi> | 160 | Tatu Ylonen <ylo@cs.hut.fi> |
161 | 161 | ||
162 | OpenBSD 6.2 February 23, 2018 OpenBSD 6.2 | 162 | OpenBSD 6.4 July 19, 2018 OpenBSD 6.4 |
@@ -8,9 +8,9 @@ | |||
8 | .\" | 8 | .\" |
9 | .\" Created: Sun May 7 00:14:37 1995 ylo | 9 | .\" Created: Sun May 7 00:14:37 1995 ylo |
10 | .\" | 10 | .\" |
11 | .\" $OpenBSD: scp.1,v 1.77 2018/02/23 07:38:09 jmc Exp $ | 11 | .\" $OpenBSD: scp.1,v 1.80 2018/07/19 10:28:47 dtucker Exp $ |
12 | .\" | 12 | .\" |
13 | .Dd $Mdocdate: February 23 2018 $ | 13 | .Dd $Mdocdate: July 19 2018 $ |
14 | .Dt SCP 1 | 14 | .Dt SCP 1 |
15 | .Os | 15 | .Os |
16 | .Sh NAME | 16 | .Sh NAME |
@@ -173,10 +173,10 @@ For full details of the options listed below, and their possible values, see | |||
173 | .It SendEnv | 173 | .It SendEnv |
174 | .It ServerAliveInterval | 174 | .It ServerAliveInterval |
175 | .It ServerAliveCountMax | 175 | .It ServerAliveCountMax |
176 | .It SetEnv | ||
176 | .It StrictHostKeyChecking | 177 | .It StrictHostKeyChecking |
177 | .It TCPKeepAlive | 178 | .It TCPKeepAlive |
178 | .It UpdateHostKeys | 179 | .It UpdateHostKeys |
179 | .It UsePrivilegedPort | ||
180 | .It User | 180 | .It User |
181 | .It UserKnownHostsFile | 181 | .It UserKnownHostsFile |
182 | .It VerifyHostKeyDNS | 182 | .It VerifyHostKeyDNS |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: scp.c,v 1.195 2018/02/10 06:15:12 djm Exp $ */ | 1 | /* $OpenBSD: scp.c,v 1.197 2018/06/01 04:31:48 dtucker Exp $ */ |
2 | /* | 2 | /* |
3 | * scp - secure remote copy. This is basically patched BSD rcp which | 3 | * scp - secure remote copy. This is basically patched BSD rcp which |
4 | * uses ssh to do the data transfer (instead of using rcmd). | 4 | * uses ssh to do the data transfer (instead of using rcmd). |
@@ -311,7 +311,7 @@ do_cmd(char *host, char *remuser, int port, char *cmd, int *fdin, int *fdout) | |||
311 | } | 311 | } |
312 | 312 | ||
313 | /* | 313 | /* |
314 | * This functions executes a command simlar to do_cmd(), but expects the | 314 | * This function executes a command similar to do_cmd(), but expects the |
315 | * input and output descriptors to be setup by a previous call to do_cmd(). | 315 | * input and output descriptors to be setup by a previous call to do_cmd(). |
316 | * This way the input and output of two commands can be connected. | 316 | * This way the input and output of two commands can be connected. |
317 | */ | 317 | */ |
@@ -1092,6 +1092,8 @@ sink(int argc, char **argv) | |||
1092 | SCREWUP("bad mode"); | 1092 | SCREWUP("bad mode"); |
1093 | mode = (mode << 3) | (*cp - '0'); | 1093 | mode = (mode << 3) | (*cp - '0'); |
1094 | } | 1094 | } |
1095 | if (!pflag) | ||
1096 | mode &= ~mask; | ||
1095 | if (*cp++ != ' ') | 1097 | if (*cp++ != ' ') |
1096 | SCREWUP("mode not delimited"); | 1098 | SCREWUP("mode not delimited"); |
1097 | 1099 | ||
diff --git a/servconf.c b/servconf.c index 0f0d09068..c0f6af0be 100644 --- a/servconf.c +++ b/servconf.c | |||
@@ -1,5 +1,5 @@ | |||
1 | 1 | ||
2 | /* $OpenBSD: servconf.c,v 1.326 2018/03/01 20:32:16 markus Exp $ */ | 2 | /* $OpenBSD: servconf.c,v 1.340 2018/08/12 20:19:13 djm Exp $ */ |
3 | /* | 3 | /* |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
5 | * All rights reserved | 5 | * All rights reserved |
@@ -45,13 +45,13 @@ | |||
45 | #include "xmalloc.h" | 45 | #include "xmalloc.h" |
46 | #include "ssh.h" | 46 | #include "ssh.h" |
47 | #include "log.h" | 47 | #include "log.h" |
48 | #include "buffer.h" | 48 | #include "sshbuf.h" |
49 | #include "misc.h" | 49 | #include "misc.h" |
50 | #include "servconf.h" | 50 | #include "servconf.h" |
51 | #include "compat.h" | 51 | #include "compat.h" |
52 | #include "pathnames.h" | 52 | #include "pathnames.h" |
53 | #include "cipher.h" | 53 | #include "cipher.h" |
54 | #include "key.h" | 54 | #include "sshkey.h" |
55 | #include "kex.h" | 55 | #include "kex.h" |
56 | #include "mac.h" | 56 | #include "mac.h" |
57 | #include "match.h" | 57 | #include "match.h" |
@@ -59,6 +59,7 @@ | |||
59 | #include "groupaccess.h" | 59 | #include "groupaccess.h" |
60 | #include "canohost.h" | 60 | #include "canohost.h" |
61 | #include "packet.h" | 61 | #include "packet.h" |
62 | #include "ssherr.h" | ||
62 | #include "hostfile.h" | 63 | #include "hostfile.h" |
63 | #include "auth.h" | 64 | #include "auth.h" |
64 | #include "myproposal.h" | 65 | #include "myproposal.h" |
@@ -71,7 +72,7 @@ static void add_one_listen_addr(ServerOptions *, const char *, | |||
71 | 72 | ||
72 | /* Use of privilege separation or not */ | 73 | /* Use of privilege separation or not */ |
73 | extern int use_privsep; | 74 | extern int use_privsep; |
74 | extern Buffer cfg; | 75 | extern struct sshbuf *cfg; |
75 | 76 | ||
76 | /* Initializes the server options to their default values. */ | 77 | /* Initializes the server options to their default values. */ |
77 | 78 | ||
@@ -130,6 +131,7 @@ initialize_server_options(ServerOptions *options) | |||
130 | options->challenge_response_authentication = -1; | 131 | options->challenge_response_authentication = -1; |
131 | options->permit_empty_passwd = -1; | 132 | options->permit_empty_passwd = -1; |
132 | options->permit_user_env = -1; | 133 | options->permit_user_env = -1; |
134 | options->permit_user_env_whitelist = NULL; | ||
133 | options->compression = -1; | 135 | options->compression = -1; |
134 | options->rekey_limit = -1; | 136 | options->rekey_limit = -1; |
135 | options->rekey_interval = -1; | 137 | options->rekey_interval = -1; |
@@ -158,8 +160,10 @@ initialize_server_options(ServerOptions *options) | |||
158 | options->client_alive_count_max = -1; | 160 | options->client_alive_count_max = -1; |
159 | options->num_authkeys_files = 0; | 161 | options->num_authkeys_files = 0; |
160 | options->num_accept_env = 0; | 162 | options->num_accept_env = 0; |
163 | options->num_setenv = 0; | ||
161 | options->permit_tun = -1; | 164 | options->permit_tun = -1; |
162 | options->permitted_opens = NULL; | 165 | options->permitted_opens = NULL; |
166 | options->permitted_listens = NULL; | ||
163 | options->adm_forced_command = NULL; | 167 | options->adm_forced_command = NULL; |
164 | options->chroot_directory = NULL; | 168 | options->chroot_directory = NULL; |
165 | options->authorized_keys_command = NULL; | 169 | options->authorized_keys_command = NULL; |
@@ -187,15 +191,29 @@ option_clear_or_none(const char *o) | |||
187 | static void | 191 | static void |
188 | assemble_algorithms(ServerOptions *o) | 192 | assemble_algorithms(ServerOptions *o) |
189 | { | 193 | { |
190 | if (kex_assemble_names(KEX_SERVER_ENCRYPT, &o->ciphers) != 0 || | 194 | char *all_cipher, *all_mac, *all_kex, *all_key; |
191 | kex_assemble_names(KEX_SERVER_MAC, &o->macs) != 0 || | 195 | int r; |
192 | kex_assemble_names(KEX_SERVER_KEX, &o->kex_algorithms) != 0 || | 196 | |
193 | kex_assemble_names(KEX_DEFAULT_PK_ALG, | 197 | all_cipher = cipher_alg_list(',', 0); |
194 | &o->hostkeyalgorithms) != 0 || | 198 | all_mac = mac_alg_list(','); |
195 | kex_assemble_names(KEX_DEFAULT_PK_ALG, | 199 | all_kex = kex_alg_list(','); |
196 | &o->hostbased_key_types) != 0 || | 200 | all_key = sshkey_alg_list(0, 0, 1, ','); |
197 | kex_assemble_names(KEX_DEFAULT_PK_ALG, &o->pubkey_key_types) != 0) | 201 | #define ASSEMBLE(what, defaults, all) \ |
198 | fatal("kex_assemble_names failed"); | 202 | do { \ |
203 | if ((r = kex_assemble_names(&o->what, defaults, all)) != 0) \ | ||
204 | fatal("%s: %s: %s", __func__, #what, ssh_err(r)); \ | ||
205 | } while (0) | ||
206 | ASSEMBLE(ciphers, KEX_SERVER_ENCRYPT, all_cipher); | ||
207 | ASSEMBLE(macs, KEX_SERVER_MAC, all_mac); | ||
208 | ASSEMBLE(kex_algorithms, KEX_SERVER_KEX, all_kex); | ||
209 | ASSEMBLE(hostkeyalgorithms, KEX_DEFAULT_PK_ALG, all_key); | ||
210 | ASSEMBLE(hostbased_key_types, KEX_DEFAULT_PK_ALG, all_key); | ||
211 | ASSEMBLE(pubkey_key_types, KEX_DEFAULT_PK_ALG, all_key); | ||
212 | #undef ASSEMBLE | ||
213 | free(all_cipher); | ||
214 | free(all_mac); | ||
215 | free(all_kex); | ||
216 | free(all_key); | ||
199 | } | 217 | } |
200 | 218 | ||
201 | static void | 219 | static void |
@@ -327,8 +345,10 @@ fill_default_server_options(ServerOptions *options) | |||
327 | options->challenge_response_authentication = 1; | 345 | options->challenge_response_authentication = 1; |
328 | if (options->permit_empty_passwd == -1) | 346 | if (options->permit_empty_passwd == -1) |
329 | options->permit_empty_passwd = 0; | 347 | options->permit_empty_passwd = 0; |
330 | if (options->permit_user_env == -1) | 348 | if (options->permit_user_env == -1) { |
331 | options->permit_user_env = 0; | 349 | options->permit_user_env = 0; |
350 | options->permit_user_env_whitelist = NULL; | ||
351 | } | ||
332 | if (options->compression == -1) | 352 | if (options->compression == -1) |
333 | options->compression = COMP_DELAYED; | 353 | options->compression = COMP_DELAYED; |
334 | if (options->rekey_limit == -1) | 354 | if (options->rekey_limit == -1) |
@@ -372,9 +392,9 @@ fill_default_server_options(ServerOptions *options) | |||
372 | if (options->permit_tun == -1) | 392 | if (options->permit_tun == -1) |
373 | options->permit_tun = SSH_TUNMODE_NO; | 393 | options->permit_tun = SSH_TUNMODE_NO; |
374 | if (options->ip_qos_interactive == -1) | 394 | if (options->ip_qos_interactive == -1) |
375 | options->ip_qos_interactive = IPTOS_LOWDELAY; | 395 | options->ip_qos_interactive = IPTOS_DSCP_AF21; |
376 | if (options->ip_qos_bulk == -1) | 396 | if (options->ip_qos_bulk == -1) |
377 | options->ip_qos_bulk = IPTOS_THROUGHPUT; | 397 | options->ip_qos_bulk = IPTOS_DSCP_CS1; |
378 | if (options->version_addendum == NULL) | 398 | if (options->version_addendum == NULL) |
379 | options->version_addendum = xstrdup(""); | 399 | options->version_addendum = xstrdup(""); |
380 | if (options->fwd_opts.streamlocal_bind_mask == (mode_t)-1) | 400 | if (options->fwd_opts.streamlocal_bind_mask == (mode_t)-1) |
@@ -461,8 +481,8 @@ typedef enum { | |||
461 | sHostKeyAlgorithms, | 481 | sHostKeyAlgorithms, |
462 | sClientAliveInterval, sClientAliveCountMax, sAuthorizedKeysFile, | 482 | sClientAliveInterval, sClientAliveCountMax, sAuthorizedKeysFile, |
463 | sGssAuthentication, sGssCleanupCreds, sGssStrictAcceptor, | 483 | sGssAuthentication, sGssCleanupCreds, sGssStrictAcceptor, |
464 | sAcceptEnv, sPermitTunnel, | 484 | sAcceptEnv, sSetEnv, sPermitTunnel, |
465 | sMatch, sPermitOpen, sForceCommand, sChrootDirectory, | 485 | sMatch, sPermitOpen, sPermitListen, sForceCommand, sChrootDirectory, |
466 | sUsePrivilegeSeparation, sAllowAgentForwarding, | 486 | sUsePrivilegeSeparation, sAllowAgentForwarding, |
467 | sHostCertificate, | 487 | sHostCertificate, |
468 | sRevokedKeys, sTrustedUserCAKeys, sAuthorizedPrincipalsFile, | 488 | sRevokedKeys, sTrustedUserCAKeys, sAuthorizedPrincipalsFile, |
@@ -544,7 +564,7 @@ static struct { | |||
544 | { "passwordauthentication", sPasswordAuthentication, SSHCFG_ALL }, | 564 | { "passwordauthentication", sPasswordAuthentication, SSHCFG_ALL }, |
545 | { "kbdinteractiveauthentication", sKbdInteractiveAuthentication, SSHCFG_ALL }, | 565 | { "kbdinteractiveauthentication", sKbdInteractiveAuthentication, SSHCFG_ALL }, |
546 | { "challengeresponseauthentication", sChallengeResponseAuthentication, SSHCFG_GLOBAL }, | 566 | { "challengeresponseauthentication", sChallengeResponseAuthentication, SSHCFG_GLOBAL }, |
547 | { "skeyauthentication", sChallengeResponseAuthentication, SSHCFG_GLOBAL }, /* alias */ | 567 | { "skeyauthentication", sDeprecated, SSHCFG_GLOBAL }, |
548 | { "checkmail", sDeprecated, SSHCFG_GLOBAL }, | 568 | { "checkmail", sDeprecated, SSHCFG_GLOBAL }, |
549 | { "listenaddress", sListenAddress, SSHCFG_GLOBAL }, | 569 | { "listenaddress", sListenAddress, SSHCFG_GLOBAL }, |
550 | { "addressfamily", sAddressFamily, SSHCFG_GLOBAL }, | 570 | { "addressfamily", sAddressFamily, SSHCFG_GLOBAL }, |
@@ -592,11 +612,13 @@ static struct { | |||
592 | { "authorizedkeysfile2", sDeprecated, SSHCFG_ALL }, | 612 | { "authorizedkeysfile2", sDeprecated, SSHCFG_ALL }, |
593 | { "useprivilegeseparation", sDeprecated, SSHCFG_GLOBAL}, | 613 | { "useprivilegeseparation", sDeprecated, SSHCFG_GLOBAL}, |
594 | { "acceptenv", sAcceptEnv, SSHCFG_ALL }, | 614 | { "acceptenv", sAcceptEnv, SSHCFG_ALL }, |
615 | { "setenv", sSetEnv, SSHCFG_ALL }, | ||
595 | { "permittunnel", sPermitTunnel, SSHCFG_ALL }, | 616 | { "permittunnel", sPermitTunnel, SSHCFG_ALL }, |
596 | { "permittty", sPermitTTY, SSHCFG_ALL }, | 617 | { "permittty", sPermitTTY, SSHCFG_ALL }, |
597 | { "permituserrc", sPermitUserRC, SSHCFG_ALL }, | 618 | { "permituserrc", sPermitUserRC, SSHCFG_ALL }, |
598 | { "match", sMatch, SSHCFG_ALL }, | 619 | { "match", sMatch, SSHCFG_ALL }, |
599 | { "permitopen", sPermitOpen, SSHCFG_ALL }, | 620 | { "permitopen", sPermitOpen, SSHCFG_ALL }, |
621 | { "permitlisten", sPermitListen, SSHCFG_ALL }, | ||
600 | { "forcecommand", sForceCommand, SSHCFG_ALL }, | 622 | { "forcecommand", sForceCommand, SSHCFG_ALL }, |
601 | { "chrootdirectory", sChrootDirectory, SSHCFG_ALL }, | 623 | { "chrootdirectory", sChrootDirectory, SSHCFG_ALL }, |
602 | { "hostcertificate", sHostCertificate, SSHCFG_GLOBAL }, | 624 | { "hostcertificate", sHostCertificate, SSHCFG_GLOBAL }, |
@@ -632,6 +654,20 @@ static struct { | |||
632 | { -1, NULL } | 654 | { -1, NULL } |
633 | }; | 655 | }; |
634 | 656 | ||
657 | /* Returns an opcode name from its number */ | ||
658 | |||
659 | static const char * | ||
660 | lookup_opcode_name(ServerOpCodes code) | ||
661 | { | ||
662 | u_int i; | ||
663 | |||
664 | for (i = 0; keywords[i].name != NULL; i++) | ||
665 | if (keywords[i].opcode == code) | ||
666 | return(keywords[i].name); | ||
667 | return "UNKNOWN"; | ||
668 | } | ||
669 | |||
670 | |||
635 | /* | 671 | /* |
636 | * Returns the number of the token pointed to by cp or sBadOption. | 672 | * Returns the number of the token pointed to by cp or sBadOption. |
637 | */ | 673 | */ |
@@ -814,43 +850,59 @@ process_queued_listen_addrs(ServerOptions *options) | |||
814 | } | 850 | } |
815 | 851 | ||
816 | /* | 852 | /* |
817 | * Inform channels layer of permitopen options from configuration. | 853 | * Inform channels layer of permitopen options for a single forwarding |
854 | * direction (local/remote). | ||
818 | */ | 855 | */ |
819 | void | 856 | static void |
820 | process_permitopen(struct ssh *ssh, ServerOptions *options) | 857 | process_permitopen_list(struct ssh *ssh, ServerOpCodes opcode, |
858 | char **opens, u_int num_opens) | ||
821 | { | 859 | { |
822 | u_int i; | 860 | u_int i; |
823 | int port; | 861 | int port; |
824 | char *host, *arg, *oarg; | 862 | char *host, *arg, *oarg; |
863 | int where = opcode == sPermitOpen ? FORWARD_LOCAL : FORWARD_REMOTE; | ||
864 | const char *what = lookup_opcode_name(opcode); | ||
825 | 865 | ||
826 | channel_clear_adm_permitted_opens(ssh); | 866 | channel_clear_permission(ssh, FORWARD_ADM, where); |
827 | if (options->num_permitted_opens == 0) | 867 | if (num_opens == 0) |
828 | return; /* permit any */ | 868 | return; /* permit any */ |
829 | 869 | ||
830 | /* handle keywords: "any" / "none" */ | 870 | /* handle keywords: "any" / "none" */ |
831 | if (options->num_permitted_opens == 1 && | 871 | if (num_opens == 1 && strcmp(opens[0], "any") == 0) |
832 | strcmp(options->permitted_opens[0], "any") == 0) | ||
833 | return; | 872 | return; |
834 | if (options->num_permitted_opens == 1 && | 873 | if (num_opens == 1 && strcmp(opens[0], "none") == 0) { |
835 | strcmp(options->permitted_opens[0], "none") == 0) { | 874 | channel_disable_admin(ssh, where); |
836 | channel_disable_adm_local_opens(ssh); | ||
837 | return; | 875 | return; |
838 | } | 876 | } |
839 | /* Otherwise treat it as a list of permitted host:port */ | 877 | /* Otherwise treat it as a list of permitted host:port */ |
840 | for (i = 0; i < options->num_permitted_opens; i++) { | 878 | for (i = 0; i < num_opens; i++) { |
841 | oarg = arg = xstrdup(options->permitted_opens[i]); | 879 | oarg = arg = xstrdup(opens[i]); |
842 | host = hpdelim(&arg); | 880 | host = hpdelim(&arg); |
843 | if (host == NULL) | 881 | if (host == NULL) |
844 | fatal("%s: missing host in PermitOpen", __func__); | 882 | fatal("%s: missing host in %s", __func__, what); |
845 | host = cleanhostname(host); | 883 | host = cleanhostname(host); |
846 | if (arg == NULL || ((port = permitopen_port(arg)) < 0)) | 884 | if (arg == NULL || ((port = permitopen_port(arg)) < 0)) |
847 | fatal("%s: bad port number in PermitOpen", __func__); | 885 | fatal("%s: bad port number in %s", __func__, what); |
848 | /* Send it to channels layer */ | 886 | /* Send it to channels layer */ |
849 | channel_add_adm_permitted_opens(ssh, host, port); | 887 | channel_add_permission(ssh, FORWARD_ADM, |
888 | where, host, port); | ||
850 | free(oarg); | 889 | free(oarg); |
851 | } | 890 | } |
852 | } | 891 | } |
853 | 892 | ||
893 | /* | ||
894 | * Inform channels layer of permitopen options from configuration. | ||
895 | */ | ||
896 | void | ||
897 | process_permitopen(struct ssh *ssh, ServerOptions *options) | ||
898 | { | ||
899 | process_permitopen_list(ssh, sPermitOpen, | ||
900 | options->permitted_opens, options->num_permitted_opens); | ||
901 | process_permitopen_list(ssh, sPermitListen, | ||
902 | options->permitted_listens, | ||
903 | options->num_permitted_listens); | ||
904 | } | ||
905 | |||
854 | struct connection_info * | 906 | struct connection_info * |
855 | get_connection_info(int populate, int use_dns) | 907 | get_connection_info(int populate, int use_dns) |
856 | { | 908 | { |
@@ -1144,12 +1196,12 @@ process_server_config_line(ServerOptions *options, char *line, | |||
1144 | const char *filename, int linenum, int *activep, | 1196 | const char *filename, int linenum, int *activep, |
1145 | struct connection_info *connectinfo) | 1197 | struct connection_info *connectinfo) |
1146 | { | 1198 | { |
1147 | char *cp, **charptr, *arg, *arg2, *p; | 1199 | char *cp, ***chararrayptr, **charptr, *arg, *arg2, *p; |
1148 | int cmdline = 0, *intptr, value, value2, n, port; | 1200 | int cmdline = 0, *intptr, value, value2, n, port; |
1149 | SyslogFacility *log_facility_ptr; | 1201 | SyslogFacility *log_facility_ptr; |
1150 | LogLevel *log_level_ptr; | 1202 | LogLevel *log_level_ptr; |
1151 | ServerOpCodes opcode; | 1203 | ServerOpCodes opcode; |
1152 | u_int i, flags = 0; | 1204 | u_int i, *uintptr, uvalue, flags = 0; |
1153 | size_t len; | 1205 | size_t len; |
1154 | long long val64; | 1206 | long long val64; |
1155 | const struct multistate *multistate_ptr; | 1207 | const struct multistate *multistate_ptr; |
@@ -1480,7 +1532,29 @@ process_server_config_line(ServerOptions *options, char *line, | |||
1480 | 1532 | ||
1481 | case sPermitUserEnvironment: | 1533 | case sPermitUserEnvironment: |
1482 | intptr = &options->permit_user_env; | 1534 | intptr = &options->permit_user_env; |
1483 | goto parse_flag; | 1535 | charptr = &options->permit_user_env_whitelist; |
1536 | arg = strdelim(&cp); | ||
1537 | if (!arg || *arg == '\0') | ||
1538 | fatal("%s line %d: missing argument.", | ||
1539 | filename, linenum); | ||
1540 | value = 0; | ||
1541 | p = NULL; | ||
1542 | if (strcmp(arg, "yes") == 0) | ||
1543 | value = 1; | ||
1544 | else if (strcmp(arg, "no") == 0) | ||
1545 | value = 0; | ||
1546 | else { | ||
1547 | /* Pattern-list specified */ | ||
1548 | value = 1; | ||
1549 | p = xstrdup(arg); | ||
1550 | } | ||
1551 | if (*activep && *intptr == -1) { | ||
1552 | *intptr = value; | ||
1553 | *charptr = p; | ||
1554 | p = NULL; | ||
1555 | } | ||
1556 | free(p); | ||
1557 | break; | ||
1484 | 1558 | ||
1485 | case sCompression: | 1559 | case sCompression: |
1486 | intptr = &options->compression; | 1560 | intptr = &options->compression; |
@@ -1769,6 +1843,19 @@ process_server_config_line(ServerOptions *options, char *line, | |||
1769 | } | 1843 | } |
1770 | break; | 1844 | break; |
1771 | 1845 | ||
1846 | case sSetEnv: | ||
1847 | uvalue = options->num_setenv; | ||
1848 | while ((arg = strdelimw(&cp)) && *arg != '\0') { | ||
1849 | if (strchr(arg, '=') == NULL) | ||
1850 | fatal("%s line %d: Invalid environment.", | ||
1851 | filename, linenum); | ||
1852 | if (!*activep || uvalue != 0) | ||
1853 | continue; | ||
1854 | array_append(filename, linenum, "SetEnv", | ||
1855 | &options->setenv, &options->num_setenv, arg); | ||
1856 | } | ||
1857 | break; | ||
1858 | |||
1772 | case sPermitTunnel: | 1859 | case sPermitTunnel: |
1773 | intptr = &options->permit_tun; | 1860 | intptr = &options->permit_tun; |
1774 | arg = strdelim(&cp); | 1861 | arg = strdelim(&cp); |
@@ -1799,36 +1886,57 @@ process_server_config_line(ServerOptions *options, char *line, | |||
1799 | *activep = value; | 1886 | *activep = value; |
1800 | break; | 1887 | break; |
1801 | 1888 | ||
1889 | case sPermitListen: | ||
1802 | case sPermitOpen: | 1890 | case sPermitOpen: |
1891 | if (opcode == sPermitListen) { | ||
1892 | uintptr = &options->num_permitted_listens; | ||
1893 | chararrayptr = &options->permitted_listens; | ||
1894 | } else { | ||
1895 | uintptr = &options->num_permitted_opens; | ||
1896 | chararrayptr = &options->permitted_opens; | ||
1897 | } | ||
1803 | arg = strdelim(&cp); | 1898 | arg = strdelim(&cp); |
1804 | if (!arg || *arg == '\0') | 1899 | if (!arg || *arg == '\0') |
1805 | fatal("%s line %d: missing PermitOpen specification", | 1900 | fatal("%s line %d: missing %s specification", |
1806 | filename, linenum); | 1901 | filename, linenum, lookup_opcode_name(opcode)); |
1807 | value = options->num_permitted_opens; /* modified later */ | 1902 | uvalue = *uintptr; /* modified later */ |
1808 | if (strcmp(arg, "any") == 0 || strcmp(arg, "none") == 0) { | 1903 | if (strcmp(arg, "any") == 0 || strcmp(arg, "none") == 0) { |
1809 | if (*activep && value == 0) { | 1904 | if (*activep && uvalue == 0) { |
1810 | options->num_permitted_opens = 1; | 1905 | *uintptr = 1; |
1811 | options->permitted_opens = xcalloc(1, | 1906 | *chararrayptr = xcalloc(1, |
1812 | sizeof(*options->permitted_opens)); | 1907 | sizeof(**chararrayptr)); |
1813 | options->permitted_opens[0] = xstrdup(arg); | 1908 | (*chararrayptr)[0] = xstrdup(arg); |
1814 | } | 1909 | } |
1815 | break; | 1910 | break; |
1816 | } | 1911 | } |
1817 | for (; arg != NULL && *arg != '\0'; arg = strdelim(&cp)) { | 1912 | for (; arg != NULL && *arg != '\0'; arg = strdelim(&cp)) { |
1818 | arg2 = xstrdup(arg); | 1913 | if (opcode == sPermitListen && |
1819 | p = hpdelim(&arg); | 1914 | strchr(arg, ':') == NULL) { |
1820 | if (p == NULL) | 1915 | /* |
1821 | fatal("%s line %d: missing host in PermitOpen", | 1916 | * Allow bare port number for PermitListen |
1822 | filename, linenum); | 1917 | * to indicate a wildcard listen host. |
1823 | p = cleanhostname(p); | 1918 | */ |
1824 | if (arg == NULL || ((port = permitopen_port(arg)) < 0)) | 1919 | xasprintf(&arg2, "*:%s", arg); |
1825 | fatal("%s line %d: bad port number in " | 1920 | } else { |
1826 | "PermitOpen", filename, linenum); | 1921 | arg2 = xstrdup(arg); |
1827 | if (*activep && value == 0) { | 1922 | p = hpdelim(&arg); |
1923 | if (p == NULL) { | ||
1924 | fatal("%s line %d: missing host in %s", | ||
1925 | filename, linenum, | ||
1926 | lookup_opcode_name(opcode)); | ||
1927 | } | ||
1928 | p = cleanhostname(p); | ||
1929 | } | ||
1930 | if (arg == NULL || | ||
1931 | ((port = permitopen_port(arg)) < 0)) { | ||
1932 | fatal("%s line %d: bad port number in %s", | ||
1933 | filename, linenum, | ||
1934 | lookup_opcode_name(opcode)); | ||
1935 | } | ||
1936 | if (*activep && uvalue == 0) { | ||
1828 | array_append(filename, linenum, | 1937 | array_append(filename, linenum, |
1829 | "PermitOpen", | 1938 | lookup_opcode_name(opcode), |
1830 | &options->permitted_opens, | 1939 | chararrayptr, uintptr, arg2); |
1831 | &options->num_permitted_opens, arg2); | ||
1832 | } | 1940 | } |
1833 | free(arg2); | 1941 | free(arg2); |
1834 | } | 1942 | } |
@@ -1951,7 +2059,7 @@ process_server_config_line(ServerOptions *options, char *line, | |||
1951 | case sAuthenticationMethods: | 2059 | case sAuthenticationMethods: |
1952 | if (options->num_auth_methods == 0) { | 2060 | if (options->num_auth_methods == 0) { |
1953 | value = 0; /* seen "any" pseudo-method */ | 2061 | value = 0; /* seen "any" pseudo-method */ |
1954 | value2 = 0; /* sucessfully parsed any method */ | 2062 | value2 = 0; /* successfully parsed any method */ |
1955 | while ((arg = strdelim(&cp)) && *arg != '\0') { | 2063 | while ((arg = strdelim(&cp)) && *arg != '\0') { |
1956 | if (strcmp(arg, "any") == 0) { | 2064 | if (strcmp(arg, "any") == 0) { |
1957 | if (options->num_auth_methods > 0) { | 2065 | if (options->num_auth_methods > 0) { |
@@ -2056,22 +2164,21 @@ process_server_config_line(ServerOptions *options, char *line, | |||
2056 | /* Reads the server configuration file. */ | 2164 | /* Reads the server configuration file. */ |
2057 | 2165 | ||
2058 | void | 2166 | void |
2059 | load_server_config(const char *filename, Buffer *conf) | 2167 | load_server_config(const char *filename, struct sshbuf *conf) |
2060 | { | 2168 | { |
2061 | char line[4096], *cp; | 2169 | char *line = NULL, *cp; |
2170 | size_t linesize = 0; | ||
2062 | FILE *f; | 2171 | FILE *f; |
2063 | int lineno = 0; | 2172 | int r, lineno = 0; |
2064 | 2173 | ||
2065 | debug2("%s: filename %s", __func__, filename); | 2174 | debug2("%s: filename %s", __func__, filename); |
2066 | if ((f = fopen(filename, "r")) == NULL) { | 2175 | if ((f = fopen(filename, "r")) == NULL) { |
2067 | perror(filename); | 2176 | perror(filename); |
2068 | exit(1); | 2177 | exit(1); |
2069 | } | 2178 | } |
2070 | buffer_clear(conf); | 2179 | sshbuf_reset(conf); |
2071 | while (fgets(line, sizeof(line), f)) { | 2180 | while (getline(&line, &linesize, f) != -1) { |
2072 | lineno++; | 2181 | lineno++; |
2073 | if (strlen(line) == sizeof(line) - 1) | ||
2074 | fatal("%s line %d too long", filename, lineno); | ||
2075 | /* | 2182 | /* |
2076 | * Trim out comments and strip whitespace | 2183 | * Trim out comments and strip whitespace |
2077 | * NB - preserve newlines, they are needed to reproduce | 2184 | * NB - preserve newlines, they are needed to reproduce |
@@ -2080,12 +2187,14 @@ load_server_config(const char *filename, Buffer *conf) | |||
2080 | if ((cp = strchr(line, '#')) != NULL) | 2187 | if ((cp = strchr(line, '#')) != NULL) |
2081 | memcpy(cp, "\n", 2); | 2188 | memcpy(cp, "\n", 2); |
2082 | cp = line + strspn(line, " \t\r"); | 2189 | cp = line + strspn(line, " \t\r"); |
2083 | 2190 | if ((r = sshbuf_put(conf, cp, strlen(cp))) != 0) | |
2084 | buffer_append(conf, cp, strlen(cp)); | 2191 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
2085 | } | 2192 | } |
2086 | buffer_append(conf, "\0", 1); | 2193 | free(line); |
2194 | if ((r = sshbuf_put_u8(conf, 0)) != 0) | ||
2195 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
2087 | fclose(f); | 2196 | fclose(f); |
2088 | debug2("%s: done config len = %d", __func__, buffer_len(conf)); | 2197 | debug2("%s: done config len = %zu", __func__, sshbuf_len(conf)); |
2089 | } | 2198 | } |
2090 | 2199 | ||
2091 | void | 2200 | void |
@@ -2095,7 +2204,7 @@ parse_server_match_config(ServerOptions *options, | |||
2095 | ServerOptions mo; | 2204 | ServerOptions mo; |
2096 | 2205 | ||
2097 | initialize_server_options(&mo); | 2206 | initialize_server_options(&mo); |
2098 | parse_server_config(&mo, "reprocess config", &cfg, connectinfo); | 2207 | parse_server_config(&mo, "reprocess config", cfg, connectinfo); |
2099 | copy_set_server_options(options, &mo, 0); | 2208 | copy_set_server_options(options, &mo, 0); |
2100 | } | 2209 | } |
2101 | 2210 | ||
@@ -2135,7 +2244,7 @@ int parse_server_match_testspec(struct connection_info *ci, char *spec) | |||
2135 | * | 2244 | * |
2136 | * If the preauth flag is set, we do not bother copying the string or | 2245 | * If the preauth flag is set, we do not bother copying the string or |
2137 | * array values that are not used pre-authentication, because any that we | 2246 | * array values that are not used pre-authentication, because any that we |
2138 | * do use must be explictly sent in mm_getpwnamallow(). | 2247 | * do use must be explicitly sent in mm_getpwnamallow(). |
2139 | */ | 2248 | */ |
2140 | void | 2249 | void |
2141 | copy_set_server_options(ServerOptions *dst, ServerOptions *src, int preauth) | 2250 | copy_set_server_options(ServerOptions *dst, ServerOptions *src, int preauth) |
@@ -2239,13 +2348,13 @@ copy_set_server_options(ServerOptions *dst, ServerOptions *src, int preauth) | |||
2239 | #undef M_CP_STRARRAYOPT | 2348 | #undef M_CP_STRARRAYOPT |
2240 | 2349 | ||
2241 | void | 2350 | void |
2242 | parse_server_config(ServerOptions *options, const char *filename, Buffer *conf, | 2351 | parse_server_config(ServerOptions *options, const char *filename, |
2243 | struct connection_info *connectinfo) | 2352 | struct sshbuf *conf, struct connection_info *connectinfo) |
2244 | { | 2353 | { |
2245 | int active, linenum, bad_options = 0; | 2354 | int active, linenum, bad_options = 0; |
2246 | char *cp, *obuf, *cbuf; | 2355 | char *cp, *obuf, *cbuf; |
2247 | 2356 | ||
2248 | debug2("%s: config %s len %d", __func__, filename, buffer_len(conf)); | 2357 | debug2("%s: config %s len %zu", __func__, filename, sshbuf_len(conf)); |
2249 | 2358 | ||
2250 | if ((obuf = cbuf = sshbuf_dup_string(conf)) == NULL) | 2359 | if ((obuf = cbuf = sshbuf_dup_string(conf)) == NULL) |
2251 | fatal("%s: sshbuf_dup_string failed", __func__); | 2360 | fatal("%s: sshbuf_dup_string failed", __func__); |
@@ -2307,17 +2416,6 @@ fmt_intarg(ServerOpCodes code, int val) | |||
2307 | } | 2416 | } |
2308 | } | 2417 | } |
2309 | 2418 | ||
2310 | static const char * | ||
2311 | lookup_opcode_name(ServerOpCodes code) | ||
2312 | { | ||
2313 | u_int i; | ||
2314 | |||
2315 | for (i = 0; keywords[i].name != NULL; i++) | ||
2316 | if (keywords[i].opcode == code) | ||
2317 | return(keywords[i].name); | ||
2318 | return "UNKNOWN"; | ||
2319 | } | ||
2320 | |||
2321 | static void | 2419 | static void |
2322 | dump_cfg_int(ServerOpCodes code, int val) | 2420 | dump_cfg_int(ServerOpCodes code, int val) |
2323 | { | 2421 | { |
@@ -2471,7 +2569,6 @@ dump_config(ServerOptions *o) | |||
2471 | dump_cfg_fmtint(sStrictModes, o->strict_modes); | 2569 | dump_cfg_fmtint(sStrictModes, o->strict_modes); |
2472 | dump_cfg_fmtint(sTCPKeepAlive, o->tcp_keep_alive); | 2570 | dump_cfg_fmtint(sTCPKeepAlive, o->tcp_keep_alive); |
2473 | dump_cfg_fmtint(sEmptyPasswd, o->permit_empty_passwd); | 2571 | dump_cfg_fmtint(sEmptyPasswd, o->permit_empty_passwd); |
2474 | dump_cfg_fmtint(sPermitUserEnvironment, o->permit_user_env); | ||
2475 | dump_cfg_fmtint(sCompression, o->compression); | 2572 | dump_cfg_fmtint(sCompression, o->compression); |
2476 | dump_cfg_fmtint(sGatewayPorts, o->fwd_opts.gateway_ports); | 2573 | dump_cfg_fmtint(sGatewayPorts, o->fwd_opts.gateway_ports); |
2477 | dump_cfg_fmtint(sUseDNS, o->use_dns); | 2574 | dump_cfg_fmtint(sUseDNS, o->use_dns); |
@@ -2528,6 +2625,7 @@ dump_config(ServerOptions *o) | |||
2528 | dump_cfg_strarray(sAllowGroups, o->num_allow_groups, o->allow_groups); | 2625 | dump_cfg_strarray(sAllowGroups, o->num_allow_groups, o->allow_groups); |
2529 | dump_cfg_strarray(sDenyGroups, o->num_deny_groups, o->deny_groups); | 2626 | dump_cfg_strarray(sDenyGroups, o->num_deny_groups, o->deny_groups); |
2530 | dump_cfg_strarray(sAcceptEnv, o->num_accept_env, o->accept_env); | 2627 | dump_cfg_strarray(sAcceptEnv, o->num_accept_env, o->accept_env); |
2628 | dump_cfg_strarray(sSetEnv, o->num_setenv, o->setenv); | ||
2531 | dump_cfg_strarray_oneline(sAuthenticationMethods, | 2629 | dump_cfg_strarray_oneline(sAuthenticationMethods, |
2532 | o->num_auth_methods, o->auth_methods); | 2630 | o->num_auth_methods, o->auth_methods); |
2533 | 2631 | ||
@@ -2562,4 +2660,20 @@ dump_config(ServerOptions *o) | |||
2562 | printf(" %s", o->permitted_opens[i]); | 2660 | printf(" %s", o->permitted_opens[i]); |
2563 | } | 2661 | } |
2564 | printf("\n"); | 2662 | printf("\n"); |
2663 | printf("permitlisten"); | ||
2664 | if (o->num_permitted_listens == 0) | ||
2665 | printf(" any"); | ||
2666 | else { | ||
2667 | for (i = 0; i < o->num_permitted_listens; i++) | ||
2668 | printf(" %s", o->permitted_listens[i]); | ||
2669 | } | ||
2670 | printf("\n"); | ||
2671 | |||
2672 | if (o->permit_user_env_whitelist == NULL) { | ||
2673 | dump_cfg_fmtint(sPermitUserEnvironment, o->permit_user_env); | ||
2674 | } else { | ||
2675 | printf("permituserenvironment %s\n", | ||
2676 | o->permit_user_env_whitelist); | ||
2677 | } | ||
2678 | |||
2565 | } | 2679 | } |
diff --git a/servconf.h b/servconf.h index 37a0fb1a3..557521d73 100644 --- a/servconf.h +++ b/servconf.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: servconf.h,v 1.130 2017/10/25 00:19:47 djm Exp $ */ | 1 | /* $OpenBSD: servconf.h,v 1.136 2018/07/09 21:26:02 markus Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
@@ -32,12 +32,6 @@ | |||
32 | #define PRIVSEP_ON 1 | 32 | #define PRIVSEP_ON 1 |
33 | #define PRIVSEP_NOSANDBOX 2 | 33 | #define PRIVSEP_NOSANDBOX 2 |
34 | 34 | ||
35 | /* AllowTCPForwarding */ | ||
36 | #define FORWARD_DENY 0 | ||
37 | #define FORWARD_REMOTE (1) | ||
38 | #define FORWARD_LOCAL (1<<1) | ||
39 | #define FORWARD_ALLOW (FORWARD_REMOTE|FORWARD_LOCAL) | ||
40 | |||
41 | /* PermitOpen */ | 35 | /* PermitOpen */ |
42 | #define PERMITOPEN_ANY 0 | 36 | #define PERMITOPEN_ANY 0 |
43 | #define PERMITOPEN_NONE -2 | 37 | #define PERMITOPEN_NONE -2 |
@@ -139,6 +133,7 @@ typedef struct { | |||
139 | int permit_empty_passwd; /* If false, do not permit empty | 133 | int permit_empty_passwd; /* If false, do not permit empty |
140 | * passwords. */ | 134 | * passwords. */ |
141 | int permit_user_env; /* If true, read ~/.ssh/environment */ | 135 | int permit_user_env; /* If true, read ~/.ssh/environment */ |
136 | char *permit_user_env_whitelist; /* pattern-list whitelist */ | ||
142 | int compression; /* If true, compression is allowed */ | 137 | int compression; /* If true, compression is allowed */ |
143 | int allow_tcp_forwarding; /* One of FORWARD_* */ | 138 | int allow_tcp_forwarding; /* One of FORWARD_* */ |
144 | int allow_streamlocal_forwarding; /* One of FORWARD_* */ | 139 | int allow_streamlocal_forwarding; /* One of FORWARD_* */ |
@@ -160,6 +155,8 @@ typedef struct { | |||
160 | 155 | ||
161 | u_int num_accept_env; | 156 | u_int num_accept_env; |
162 | char **accept_env; | 157 | char **accept_env; |
158 | u_int num_setenv; | ||
159 | char **setenv; | ||
163 | 160 | ||
164 | int max_startups_begin; | 161 | int max_startups_begin; |
165 | int max_startups_rate; | 162 | int max_startups_rate; |
@@ -187,8 +184,10 @@ typedef struct { | |||
187 | 184 | ||
188 | int permit_tun; | 185 | int permit_tun; |
189 | 186 | ||
190 | char **permitted_opens; | 187 | char **permitted_opens; /* May also be one of PERMITOPEN_* */ |
191 | u_int num_permitted_opens; /* May also be one of PERMITOPEN_* */ | 188 | u_int num_permitted_opens; |
189 | char **permitted_listens; /* May also be one of PERMITOPEN_* */ | ||
190 | u_int num_permitted_listens; | ||
192 | 191 | ||
193 | char *chroot_directory; | 192 | char *chroot_directory; |
194 | char *revoked_keys_file; | 193 | char *revoked_keys_file; |
@@ -209,6 +208,7 @@ typedef struct { | |||
209 | 208 | ||
210 | int fingerprint_hash; | 209 | int fingerprint_hash; |
211 | int expose_userauth_info; | 210 | int expose_userauth_info; |
211 | u_int64_t timing_secret; | ||
212 | } ServerOptions; | 212 | } ServerOptions; |
213 | 213 | ||
214 | /* Information about the incoming connection as used by Match */ | 214 | /* Information about the incoming connection as used by Match */ |
@@ -243,6 +243,7 @@ struct connection_info { | |||
243 | M_CP_STROPT(hostbased_key_types); \ | 243 | M_CP_STROPT(hostbased_key_types); \ |
244 | M_CP_STROPT(pubkey_key_types); \ | 244 | M_CP_STROPT(pubkey_key_types); \ |
245 | M_CP_STROPT(routing_domain); \ | 245 | M_CP_STROPT(routing_domain); \ |
246 | M_CP_STROPT(permit_user_env_whitelist); \ | ||
246 | M_CP_STRARRAYOPT(authorized_keys_files, num_authkeys_files); \ | 247 | M_CP_STRARRAYOPT(authorized_keys_files, num_authkeys_files); \ |
247 | M_CP_STRARRAYOPT(allow_users, num_allow_users); \ | 248 | M_CP_STRARRAYOPT(allow_users, num_allow_users); \ |
248 | M_CP_STRARRAYOPT(deny_users, num_deny_users); \ | 249 | M_CP_STRARRAYOPT(deny_users, num_deny_users); \ |
@@ -251,6 +252,7 @@ struct connection_info { | |||
251 | M_CP_STRARRAYOPT(accept_env, num_accept_env); \ | 252 | M_CP_STRARRAYOPT(accept_env, num_accept_env); \ |
252 | M_CP_STRARRAYOPT(auth_methods, num_auth_methods); \ | 253 | M_CP_STRARRAYOPT(auth_methods, num_auth_methods); \ |
253 | M_CP_STRARRAYOPT(permitted_opens, num_permitted_opens); \ | 254 | M_CP_STRARRAYOPT(permitted_opens, num_permitted_opens); \ |
255 | M_CP_STRARRAYOPT(permitted_listens, num_permitted_listens); \ | ||
254 | } while (0) | 256 | } while (0) |
255 | 257 | ||
256 | struct connection_info *get_connection_info(int, int); | 258 | struct connection_info *get_connection_info(int, int); |
@@ -259,8 +261,8 @@ void fill_default_server_options(ServerOptions *); | |||
259 | int process_server_config_line(ServerOptions *, char *, const char *, int, | 261 | int process_server_config_line(ServerOptions *, char *, const char *, int, |
260 | int *, struct connection_info *); | 262 | int *, struct connection_info *); |
261 | void process_permitopen(struct ssh *ssh, ServerOptions *options); | 263 | void process_permitopen(struct ssh *ssh, ServerOptions *options); |
262 | void load_server_config(const char *, Buffer *); | 264 | void load_server_config(const char *, struct sshbuf *); |
263 | void parse_server_config(ServerOptions *, const char *, Buffer *, | 265 | void parse_server_config(ServerOptions *, const char *, struct sshbuf *, |
264 | struct connection_info *); | 266 | struct connection_info *); |
265 | void parse_server_match_config(ServerOptions *, struct connection_info *); | 267 | void parse_server_match_config(ServerOptions *, struct connection_info *); |
266 | int parse_server_match_testspec(struct connection_info *, char *); | 268 | int parse_server_match_testspec(struct connection_info *, char *); |
diff --git a/serverloop.c b/serverloop.c index d6fe24cc1..7be83e2d3 100644 --- a/serverloop.c +++ b/serverloop.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: serverloop.c,v 1.205 2018/03/03 03:15:51 djm Exp $ */ | 1 | /* $OpenBSD: serverloop.c,v 1.209 2018/07/27 05:13:02 dtucker Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -58,7 +58,7 @@ | |||
58 | #include "openbsd-compat/sys-queue.h" | 58 | #include "openbsd-compat/sys-queue.h" |
59 | #include "xmalloc.h" | 59 | #include "xmalloc.h" |
60 | #include "packet.h" | 60 | #include "packet.h" |
61 | #include "buffer.h" | 61 | #include "sshbuf.h" |
62 | #include "log.h" | 62 | #include "log.h" |
63 | #include "misc.h" | 63 | #include "misc.h" |
64 | #include "servconf.h" | 64 | #include "servconf.h" |
@@ -67,7 +67,7 @@ | |||
67 | #include "channels.h" | 67 | #include "channels.h" |
68 | #include "compat.h" | 68 | #include "compat.h" |
69 | #include "ssh2.h" | 69 | #include "ssh2.h" |
70 | #include "key.h" | 70 | #include "sshkey.h" |
71 | #include "cipher.h" | 71 | #include "cipher.h" |
72 | #include "kex.h" | 72 | #include "kex.h" |
73 | #include "hostfile.h" | 73 | #include "hostfile.h" |
@@ -103,6 +103,17 @@ static void server_init_dispatch(void); | |||
103 | /* requested tunnel forwarding interface(s), shared with session.c */ | 103 | /* requested tunnel forwarding interface(s), shared with session.c */ |
104 | char *tun_fwd_ifnames = NULL; | 104 | char *tun_fwd_ifnames = NULL; |
105 | 105 | ||
106 | /* returns 1 if bind to specified port by specified user is permitted */ | ||
107 | static int | ||
108 | bind_permitted(int port, uid_t uid) | ||
109 | { | ||
110 | if (use_privsep) | ||
111 | return 1; /* allow system to decide */ | ||
112 | if (port < IPPORT_RESERVED && uid != 0) | ||
113 | return 0; | ||
114 | return 1; | ||
115 | } | ||
116 | |||
106 | /* | 117 | /* |
107 | * we write to this pipe if a SIGCHLD is caught in order to avoid | 118 | * we write to this pipe if a SIGCHLD is caught in order to avoid |
108 | * the race between select() and child_terminated | 119 | * the race between select() and child_terminated |
@@ -145,7 +156,7 @@ notify_done(fd_set *readset) | |||
145 | 156 | ||
146 | if (notify_pipe[0] != -1 && FD_ISSET(notify_pipe[0], readset)) | 157 | if (notify_pipe[0] != -1 && FD_ISSET(notify_pipe[0], readset)) |
147 | while (read(notify_pipe[0], &c, 1) != -1) | 158 | while (read(notify_pipe[0], &c, 1) != -1) |
148 | debug2("notify_done: reading"); | 159 | debug2("%s: reading", __func__); |
149 | } | 160 | } |
150 | 161 | ||
151 | /*ARGSUSED*/ | 162 | /*ARGSUSED*/ |
@@ -623,7 +634,7 @@ server_input_channel_open(int type, u_int32_t seq, struct ssh *ssh) | |||
623 | rwindow = packet_get_int(); | 634 | rwindow = packet_get_int(); |
624 | rmaxpack = packet_get_int(); | 635 | rmaxpack = packet_get_int(); |
625 | 636 | ||
626 | debug("server_input_channel_open: ctype %s rchan %d win %d max %d", | 637 | debug("%s: ctype %s rchan %d win %d max %d", __func__, |
627 | ctype, rchan, rwindow, rmaxpack); | 638 | ctype, rchan, rwindow, rmaxpack); |
628 | 639 | ||
629 | if (strcmp(ctype, "session") == 0) { | 640 | if (strcmp(ctype, "session") == 0) { |
@@ -636,7 +647,7 @@ server_input_channel_open(int type, u_int32_t seq, struct ssh *ssh) | |||
636 | c = server_request_tun(ssh); | 647 | c = server_request_tun(ssh); |
637 | } | 648 | } |
638 | if (c != NULL) { | 649 | if (c != NULL) { |
639 | debug("server_input_channel_open: confirm %s", ctype); | 650 | debug("%s: confirm %s", __func__, ctype); |
640 | c->remote_id = rchan; | 651 | c->remote_id = rchan; |
641 | c->have_remote_id = 1; | 652 | c->have_remote_id = 1; |
642 | c->remote_window = rwindow; | 653 | c->remote_window = rwindow; |
@@ -650,7 +661,7 @@ server_input_channel_open(int type, u_int32_t seq, struct ssh *ssh) | |||
650 | packet_send(); | 661 | packet_send(); |
651 | } | 662 | } |
652 | } else { | 663 | } else { |
653 | debug("server_input_channel_open: failure %s", ctype); | 664 | debug("%s: failure %s", __func__, ctype); |
654 | packet_start(SSH2_MSG_CHANNEL_OPEN_FAILURE); | 665 | packet_start(SSH2_MSG_CHANNEL_OPEN_FAILURE); |
655 | packet_put_int(rchan); | 666 | packet_put_int(rchan); |
656 | packet_put_int(reason); | 667 | packet_put_int(reason); |
@@ -750,11 +761,11 @@ server_input_global_request(int type, u_int32_t seq, struct ssh *ssh) | |||
750 | struct passwd *pw = the_authctxt->pw; | 761 | struct passwd *pw = the_authctxt->pw; |
751 | 762 | ||
752 | if (pw == NULL || !the_authctxt->valid) | 763 | if (pw == NULL || !the_authctxt->valid) |
753 | fatal("server_input_global_request: no/invalid user"); | 764 | fatal("%s: no/invalid user", __func__); |
754 | 765 | ||
755 | rtype = packet_get_string(NULL); | 766 | rtype = packet_get_string(NULL); |
756 | want_reply = packet_get_char(); | 767 | want_reply = packet_get_char(); |
757 | debug("server_input_global_request: rtype %s want_reply %d", rtype, want_reply); | 768 | debug("%s: rtype %s want_reply %d", __func__, rtype, want_reply); |
758 | 769 | ||
759 | /* -R style forwarding */ | 770 | /* -R style forwarding */ |
760 | if (strcmp(rtype, "tcpip-forward") == 0) { | 771 | if (strcmp(rtype, "tcpip-forward") == 0) { |
@@ -763,7 +774,7 @@ server_input_global_request(int type, u_int32_t seq, struct ssh *ssh) | |||
763 | memset(&fwd, 0, sizeof(fwd)); | 774 | memset(&fwd, 0, sizeof(fwd)); |
764 | fwd.listen_host = packet_get_string(NULL); | 775 | fwd.listen_host = packet_get_string(NULL); |
765 | fwd.listen_port = (u_short)packet_get_int(); | 776 | fwd.listen_port = (u_short)packet_get_int(); |
766 | debug("server_input_global_request: tcpip-forward listen %s port %d", | 777 | debug("%s: tcpip-forward listen %s port %d", __func__, |
767 | fwd.listen_host, fwd.listen_port); | 778 | fwd.listen_host, fwd.listen_port); |
768 | 779 | ||
769 | /* check permissions */ | 780 | /* check permissions */ |
@@ -802,7 +813,7 @@ server_input_global_request(int type, u_int32_t seq, struct ssh *ssh) | |||
802 | 813 | ||
803 | memset(&fwd, 0, sizeof(fwd)); | 814 | memset(&fwd, 0, sizeof(fwd)); |
804 | fwd.listen_path = packet_get_string(NULL); | 815 | fwd.listen_path = packet_get_string(NULL); |
805 | debug("server_input_global_request: streamlocal-forward listen path %s", | 816 | debug("%s: streamlocal-forward listen path %s", __func__, |
806 | fwd.listen_path); | 817 | fwd.listen_path); |
807 | 818 | ||
808 | /* check permissions */ | 819 | /* check permissions */ |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: session.c,v 1.294 2018/03/03 03:15:51 djm Exp $ */ | 1 | /* $OpenBSD: session.c,v 1.305 2018/07/25 13:56:23 deraadt Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 3 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
4 | * All rights reserved | 4 | * All rights reserved |
@@ -69,12 +69,13 @@ | |||
69 | #include "ssh2.h" | 69 | #include "ssh2.h" |
70 | #include "sshpty.h" | 70 | #include "sshpty.h" |
71 | #include "packet.h" | 71 | #include "packet.h" |
72 | #include "buffer.h" | 72 | #include "sshbuf.h" |
73 | #include "ssherr.h" | ||
73 | #include "match.h" | 74 | #include "match.h" |
74 | #include "uidswap.h" | 75 | #include "uidswap.h" |
75 | #include "compat.h" | 76 | #include "compat.h" |
76 | #include "channels.h" | 77 | #include "channels.h" |
77 | #include "key.h" | 78 | #include "sshkey.h" |
78 | #include "cipher.h" | 79 | #include "cipher.h" |
79 | #ifdef GSSAPI | 80 | #ifdef GSSAPI |
80 | #include "ssh-gss.h" | 81 | #include "ssh-gss.h" |
@@ -139,7 +140,7 @@ extern int debug_flag; | |||
139 | extern u_int utmp_len; | 140 | extern u_int utmp_len; |
140 | extern int startup_pipe; | 141 | extern int startup_pipe; |
141 | extern void destroy_sensitive_data(void); | 142 | extern void destroy_sensitive_data(void); |
142 | extern Buffer loginmsg; | 143 | extern struct sshbuf *loginmsg; |
143 | extern struct sshauthopt *auth_opts; | 144 | extern struct sshauthopt *auth_opts; |
144 | char *tun_fwd_ifnames; /* serverloop.c */ | 145 | char *tun_fwd_ifnames; /* serverloop.c */ |
145 | 146 | ||
@@ -248,11 +249,14 @@ auth_input_request_forwarding(struct ssh *ssh, struct passwd * pw) | |||
248 | static void | 249 | static void |
249 | display_loginmsg(void) | 250 | display_loginmsg(void) |
250 | { | 251 | { |
251 | if (buffer_len(&loginmsg) > 0) { | 252 | int r; |
252 | buffer_append(&loginmsg, "\0", 1); | 253 | |
253 | printf("%s", (char *)buffer_ptr(&loginmsg)); | 254 | if (sshbuf_len(loginmsg) == 0) |
254 | buffer_clear(&loginmsg); | 255 | return; |
255 | } | 256 | if ((r = sshbuf_put_u8(loginmsg, 0)) != 0) |
257 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
258 | printf("%s", (char *)sshbuf_ptr(loginmsg)); | ||
259 | sshbuf_reset(loginmsg); | ||
256 | } | 260 | } |
257 | 261 | ||
258 | static void | 262 | static void |
@@ -290,26 +294,43 @@ prepare_auth_info_file(struct passwd *pw, struct sshbuf *info) | |||
290 | } | 294 | } |
291 | 295 | ||
292 | static void | 296 | static void |
293 | set_permitopen_from_authopts(struct ssh *ssh, const struct sshauthopt *opts) | 297 | set_fwdpermit_from_authopts(struct ssh *ssh, const struct sshauthopt *opts) |
294 | { | 298 | { |
295 | char *tmp, *cp, *host; | 299 | char *tmp, *cp, *host; |
296 | int port; | 300 | int port; |
297 | size_t i; | 301 | size_t i; |
298 | 302 | ||
299 | if ((options.allow_tcp_forwarding & FORWARD_LOCAL) == 0) | 303 | if ((options.allow_tcp_forwarding & FORWARD_LOCAL) != 0) { |
300 | return; | 304 | channel_clear_permission(ssh, FORWARD_USER, FORWARD_LOCAL); |
301 | channel_clear_permitted_opens(ssh); | 305 | for (i = 0; i < auth_opts->npermitopen; i++) { |
302 | for (i = 0; i < auth_opts->npermitopen; i++) { | 306 | tmp = cp = xstrdup(auth_opts->permitopen[i]); |
303 | tmp = cp = xstrdup(auth_opts->permitopen[i]); | 307 | /* This shouldn't fail as it has already been checked */ |
304 | /* This shouldn't fail as it has already been checked */ | 308 | if ((host = hpdelim(&cp)) == NULL) |
305 | if ((host = hpdelim(&cp)) == NULL) | 309 | fatal("%s: internal error: hpdelim", __func__); |
306 | fatal("%s: internal error: hpdelim", __func__); | 310 | host = cleanhostname(host); |
307 | host = cleanhostname(host); | 311 | if (cp == NULL || (port = permitopen_port(cp)) < 0) |
308 | if (cp == NULL || (port = permitopen_port(cp)) < 0) | 312 | fatal("%s: internal error: permitopen port", |
309 | fatal("%s: internal error: permitopen port", | 313 | __func__); |
310 | __func__); | 314 | channel_add_permission(ssh, |
311 | channel_add_permitted_opens(ssh, host, port); | 315 | FORWARD_USER, FORWARD_LOCAL, host, port); |
312 | free(tmp); | 316 | free(tmp); |
317 | } | ||
318 | } | ||
319 | if ((options.allow_tcp_forwarding & FORWARD_REMOTE) != 0) { | ||
320 | channel_clear_permission(ssh, FORWARD_USER, FORWARD_REMOTE); | ||
321 | for (i = 0; i < auth_opts->npermitlisten; i++) { | ||
322 | tmp = cp = xstrdup(auth_opts->permitlisten[i]); | ||
323 | /* This shouldn't fail as it has already been checked */ | ||
324 | if ((host = hpdelim(&cp)) == NULL) | ||
325 | fatal("%s: internal error: hpdelim", __func__); | ||
326 | host = cleanhostname(host); | ||
327 | if (cp == NULL || (port = permitopen_port(cp)) < 0) | ||
328 | fatal("%s: internal error: permitlisten port", | ||
329 | __func__); | ||
330 | channel_add_permission(ssh, | ||
331 | FORWARD_USER, FORWARD_REMOTE, host, port); | ||
332 | free(tmp); | ||
333 | } | ||
313 | } | 334 | } |
314 | } | 335 | } |
315 | 336 | ||
@@ -322,14 +343,22 @@ do_authenticated(struct ssh *ssh, Authctxt *authctxt) | |||
322 | 343 | ||
323 | /* setup the channel layer */ | 344 | /* setup the channel layer */ |
324 | /* XXX - streamlocal? */ | 345 | /* XXX - streamlocal? */ |
325 | set_permitopen_from_authopts(ssh, auth_opts); | 346 | set_fwdpermit_from_authopts(ssh, auth_opts); |
326 | if (!auth_opts->permit_port_forwarding_flag || | ||
327 | options.disable_forwarding || | ||
328 | (options.allow_tcp_forwarding & FORWARD_LOCAL) == 0) | ||
329 | channel_disable_adm_local_opens(ssh); | ||
330 | else | ||
331 | channel_permit_all_opens(ssh); | ||
332 | 347 | ||
348 | if (!auth_opts->permit_port_forwarding_flag || | ||
349 | options.disable_forwarding) { | ||
350 | channel_disable_admin(ssh, FORWARD_LOCAL); | ||
351 | channel_disable_admin(ssh, FORWARD_REMOTE); | ||
352 | } else { | ||
353 | if ((options.allow_tcp_forwarding & FORWARD_LOCAL) == 0) | ||
354 | channel_disable_admin(ssh, FORWARD_LOCAL); | ||
355 | else | ||
356 | channel_permit_all(ssh, FORWARD_LOCAL); | ||
357 | if ((options.allow_tcp_forwarding & FORWARD_REMOTE) == 0) | ||
358 | channel_disable_admin(ssh, FORWARD_REMOTE); | ||
359 | else | ||
360 | channel_permit_all(ssh, FORWARD_REMOTE); | ||
361 | } | ||
333 | auth_debug_send(); | 362 | auth_debug_send(); |
334 | 363 | ||
335 | prepare_auth_info_file(authctxt->pw, authctxt->session_info); | 364 | prepare_auth_info_file(authctxt->pw, authctxt->session_info); |
@@ -349,7 +378,7 @@ xauth_valid_string(const char *s) | |||
349 | if (!isalnum((u_char)s[i]) && | 378 | if (!isalnum((u_char)s[i]) && |
350 | s[i] != '.' && s[i] != ':' && s[i] != '/' && | 379 | s[i] != '.' && s[i] != ':' && s[i] != '/' && |
351 | s[i] != '-' && s[i] != '_') | 380 | s[i] != '-' && s[i] != '_') |
352 | return 0; | 381 | return 0; |
353 | } | 382 | } |
354 | return 1; | 383 | return 1; |
355 | } | 384 | } |
@@ -500,7 +529,7 @@ do_exec_no_pty(struct ssh *ssh, Session *s, const char *command) | |||
500 | * it to the user, otherwise multiple sessions may accumulate | 529 | * it to the user, otherwise multiple sessions may accumulate |
501 | * multiple copies of the login messages. | 530 | * multiple copies of the login messages. |
502 | */ | 531 | */ |
503 | buffer_clear(&loginmsg); | 532 | sshbuf_reset(loginmsg); |
504 | 533 | ||
505 | #ifdef USE_PIPES | 534 | #ifdef USE_PIPES |
506 | /* We are the parent. Close the child sides of the pipes. */ | 535 | /* We are the parent. Close the child sides of the pipes. */ |
@@ -732,7 +761,7 @@ do_exec(struct ssh *ssh, Session *s, const char *command) | |||
732 | * it to the user, otherwise multiple sessions may accumulate | 761 | * it to the user, otherwise multiple sessions may accumulate |
733 | * multiple copies of the login messages. | 762 | * multiple copies of the login messages. |
734 | */ | 763 | */ |
735 | buffer_clear(&loginmsg); | 764 | sshbuf_reset(loginmsg); |
736 | 765 | ||
737 | return ret; | 766 | return ret; |
738 | } | 767 | } |
@@ -842,24 +871,26 @@ check_quietlogin(Session *s, const char *command) | |||
842 | * into the environment. If the file does not exist, this does nothing. | 871 | * into the environment. If the file does not exist, this does nothing. |
843 | * Otherwise, it must consist of empty lines, comments (line starts with '#') | 872 | * Otherwise, it must consist of empty lines, comments (line starts with '#') |
844 | * and assignments of the form name=value. No other forms are allowed. | 873 | * and assignments of the form name=value. No other forms are allowed. |
874 | * If whitelist is not NULL, then it is interpreted as a pattern list and | ||
875 | * only variable names that match it will be accepted. | ||
845 | */ | 876 | */ |
846 | static void | 877 | static void |
847 | read_environment_file(char ***env, u_int *envsize, | 878 | read_environment_file(char ***env, u_int *envsize, |
848 | const char *filename) | 879 | const char *filename, const char *whitelist) |
849 | { | 880 | { |
850 | FILE *f; | 881 | FILE *f; |
851 | char buf[4096]; | 882 | char *line = NULL, *cp, *value; |
852 | char *cp, *value; | 883 | size_t linesize = 0; |
853 | u_int lineno = 0; | 884 | u_int lineno = 0; |
854 | 885 | ||
855 | f = fopen(filename, "r"); | 886 | f = fopen(filename, "r"); |
856 | if (!f) | 887 | if (!f) |
857 | return; | 888 | return; |
858 | 889 | ||
859 | while (fgets(buf, sizeof(buf), f)) { | 890 | while (getline(&line, &linesize, f) != -1) { |
860 | if (++lineno > 1000) | 891 | if (++lineno > 1000) |
861 | fatal("Too many lines in environment file %s", filename); | 892 | fatal("Too many lines in environment file %s", filename); |
862 | for (cp = buf; *cp == ' ' || *cp == '\t'; cp++) | 893 | for (cp = line; *cp == ' ' || *cp == '\t'; cp++) |
863 | ; | 894 | ; |
864 | if (!*cp || *cp == '#' || *cp == '\n') | 895 | if (!*cp || *cp == '#' || *cp == '\n') |
865 | continue; | 896 | continue; |
@@ -878,8 +909,12 @@ read_environment_file(char ***env, u_int *envsize, | |||
878 | */ | 909 | */ |
879 | *value = '\0'; | 910 | *value = '\0'; |
880 | value++; | 911 | value++; |
912 | if (whitelist != NULL && | ||
913 | match_pattern_list(cp, whitelist, 0) != 1) | ||
914 | continue; | ||
881 | child_set_env(env, envsize, cp, value); | 915 | child_set_env(env, envsize, cp, value); |
882 | } | 916 | } |
917 | free(line); | ||
883 | fclose(f); | 918 | fclose(f); |
884 | } | 919 | } |
885 | 920 | ||
@@ -916,7 +951,8 @@ read_etc_default_login(char ***env, u_int *envsize, uid_t uid) | |||
916 | * so we use a temporary environment and copy the variables we're | 951 | * so we use a temporary environment and copy the variables we're |
917 | * interested in. | 952 | * interested in. |
918 | */ | 953 | */ |
919 | read_environment_file(&tmpenv, &tmpenvsize, "/etc/default/login"); | 954 | read_environment_file(&tmpenv, &tmpenvsize, "/etc/default/login", |
955 | options.permit_user_env_whitelist); | ||
920 | 956 | ||
921 | if (tmpenv == NULL) | 957 | if (tmpenv == NULL) |
922 | return; | 958 | return; |
@@ -978,7 +1014,7 @@ do_setup_env(struct ssh *ssh, Session *s, const char *shell) | |||
978 | char buf[256]; | 1014 | char buf[256]; |
979 | size_t n; | 1015 | size_t n; |
980 | u_int i, envsize; | 1016 | u_int i, envsize; |
981 | char *ocp, *cp, **env, *laddr; | 1017 | char *ocp, *cp, *value, **env, *laddr; |
982 | struct passwd *pw = s->pw; | 1018 | struct passwd *pw = s->pw; |
983 | #if !defined (HAVE_LOGIN_CAP) && !defined (HAVE_CYGWIN) | 1019 | #if !defined (HAVE_LOGIN_CAP) && !defined (HAVE_CYGWIN) |
984 | char *path = NULL; | 1020 | char *path = NULL; |
@@ -1052,46 +1088,10 @@ do_setup_env(struct ssh *ssh, Session *s, const char *shell) | |||
1052 | 1088 | ||
1053 | if (getenv("TZ")) | 1089 | if (getenv("TZ")) |
1054 | child_set_env(&env, &envsize, "TZ", getenv("TZ")); | 1090 | child_set_env(&env, &envsize, "TZ", getenv("TZ")); |
1055 | |||
1056 | /* Set custom environment options from pubkey authentication. */ | ||
1057 | if (options.permit_user_env) { | ||
1058 | for (n = 0 ; n < auth_opts->nenv; n++) { | ||
1059 | ocp = xstrdup(auth_opts->env[n]); | ||
1060 | cp = strchr(ocp, '='); | ||
1061 | if (*cp == '=') { | ||
1062 | *cp = '\0'; | ||
1063 | child_set_env(&env, &envsize, ocp, cp + 1); | ||
1064 | } | ||
1065 | free(ocp); | ||
1066 | } | ||
1067 | } | ||
1068 | |||
1069 | /* SSH_CLIENT deprecated */ | ||
1070 | snprintf(buf, sizeof buf, "%.50s %d %d", | ||
1071 | ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), | ||
1072 | ssh_local_port(ssh)); | ||
1073 | child_set_env(&env, &envsize, "SSH_CLIENT", buf); | ||
1074 | |||
1075 | laddr = get_local_ipaddr(packet_get_connection_in()); | ||
1076 | snprintf(buf, sizeof buf, "%.50s %d %.50s %d", | ||
1077 | ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), | ||
1078 | laddr, ssh_local_port(ssh)); | ||
1079 | free(laddr); | ||
1080 | child_set_env(&env, &envsize, "SSH_CONNECTION", buf); | ||
1081 | |||
1082 | if (tun_fwd_ifnames != NULL) | ||
1083 | child_set_env(&env, &envsize, "SSH_TUNNEL", tun_fwd_ifnames); | ||
1084 | if (auth_info_file != NULL) | ||
1085 | child_set_env(&env, &envsize, "SSH_USER_AUTH", auth_info_file); | ||
1086 | if (s->ttyfd != -1) | ||
1087 | child_set_env(&env, &envsize, "SSH_TTY", s->tty); | ||
1088 | if (s->term) | 1091 | if (s->term) |
1089 | child_set_env(&env, &envsize, "TERM", s->term); | 1092 | child_set_env(&env, &envsize, "TERM", s->term); |
1090 | if (s->display) | 1093 | if (s->display) |
1091 | child_set_env(&env, &envsize, "DISPLAY", s->display); | 1094 | child_set_env(&env, &envsize, "DISPLAY", s->display); |
1092 | if (original_command) | ||
1093 | child_set_env(&env, &envsize, "SSH_ORIGINAL_COMMAND", | ||
1094 | original_command); | ||
1095 | 1095 | ||
1096 | /* | 1096 | /* |
1097 | * Since we clear KRB5CCNAME at startup, if it's set now then it | 1097 | * Since we clear KRB5CCNAME at startup, if it's set now then it |
@@ -1111,7 +1111,8 @@ do_setup_env(struct ssh *ssh, Session *s, const char *shell) | |||
1111 | 1111 | ||
1112 | if ((cp = getenv("AUTHSTATE")) != NULL) | 1112 | if ((cp = getenv("AUTHSTATE")) != NULL) |
1113 | child_set_env(&env, &envsize, "AUTHSTATE", cp); | 1113 | child_set_env(&env, &envsize, "AUTHSTATE", cp); |
1114 | read_environment_file(&env, &envsize, "/etc/environment"); | 1114 | read_environment_file(&env, &envsize, "/etc/environment", |
1115 | options.permit_user_env_whitelist); | ||
1115 | } | 1116 | } |
1116 | #endif | 1117 | #endif |
1117 | #ifdef KRB5 | 1118 | #ifdef KRB5 |
@@ -1119,6 +1120,37 @@ do_setup_env(struct ssh *ssh, Session *s, const char *shell) | |||
1119 | child_set_env(&env, &envsize, "KRB5CCNAME", | 1120 | child_set_env(&env, &envsize, "KRB5CCNAME", |
1120 | s->authctxt->krb5_ccname); | 1121 | s->authctxt->krb5_ccname); |
1121 | #endif | 1122 | #endif |
1123 | if (auth_sock_name != NULL) | ||
1124 | child_set_env(&env, &envsize, SSH_AUTHSOCKET_ENV_NAME, | ||
1125 | auth_sock_name); | ||
1126 | |||
1127 | |||
1128 | /* Set custom environment options from pubkey authentication. */ | ||
1129 | if (options.permit_user_env) { | ||
1130 | for (n = 0 ; n < auth_opts->nenv; n++) { | ||
1131 | ocp = xstrdup(auth_opts->env[n]); | ||
1132 | cp = strchr(ocp, '='); | ||
1133 | if (*cp == '=') { | ||
1134 | *cp = '\0'; | ||
1135 | /* Apply PermitUserEnvironment whitelist */ | ||
1136 | if (options.permit_user_env_whitelist == NULL || | ||
1137 | match_pattern_list(ocp, | ||
1138 | options.permit_user_env_whitelist, 0) == 1) | ||
1139 | child_set_env(&env, &envsize, | ||
1140 | ocp, cp + 1); | ||
1141 | } | ||
1142 | free(ocp); | ||
1143 | } | ||
1144 | } | ||
1145 | |||
1146 | /* read $HOME/.ssh/environment. */ | ||
1147 | if (options.permit_user_env) { | ||
1148 | snprintf(buf, sizeof buf, "%.200s/.ssh/environment", | ||
1149 | pw->pw_dir); | ||
1150 | read_environment_file(&env, &envsize, buf, | ||
1151 | options.permit_user_env_whitelist); | ||
1152 | } | ||
1153 | |||
1122 | #ifdef USE_PAM | 1154 | #ifdef USE_PAM |
1123 | /* | 1155 | /* |
1124 | * Pull in any environment variables that may have | 1156 | * Pull in any environment variables that may have |
@@ -1141,16 +1173,40 @@ do_setup_env(struct ssh *ssh, Session *s, const char *shell) | |||
1141 | } | 1173 | } |
1142 | #endif /* USE_PAM */ | 1174 | #endif /* USE_PAM */ |
1143 | 1175 | ||
1144 | if (auth_sock_name != NULL) | 1176 | /* Environment specified by admin */ |
1145 | child_set_env(&env, &envsize, SSH_AUTHSOCKET_ENV_NAME, | 1177 | for (i = 0; i < options.num_setenv; i++) { |
1146 | auth_sock_name); | 1178 | cp = xstrdup(options.setenv[i]); |
1147 | 1179 | if ((value = strchr(cp, '=')) == NULL) { | |
1148 | /* read $HOME/.ssh/environment. */ | 1180 | /* shouldn't happen; vars are checked in servconf.c */ |
1149 | if (options.permit_user_env) { | 1181 | fatal("Invalid config SetEnv: %s", options.setenv[i]); |
1150 | snprintf(buf, sizeof buf, "%.200s/.ssh/environment", | 1182 | } |
1151 | strcmp(pw->pw_dir, "/") ? pw->pw_dir : ""); | 1183 | *value++ = '\0'; |
1152 | read_environment_file(&env, &envsize, buf); | 1184 | child_set_env(&env, &envsize, cp, value); |
1153 | } | 1185 | } |
1186 | |||
1187 | /* SSH_CLIENT deprecated */ | ||
1188 | snprintf(buf, sizeof buf, "%.50s %d %d", | ||
1189 | ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), | ||
1190 | ssh_local_port(ssh)); | ||
1191 | child_set_env(&env, &envsize, "SSH_CLIENT", buf); | ||
1192 | |||
1193 | laddr = get_local_ipaddr(packet_get_connection_in()); | ||
1194 | snprintf(buf, sizeof buf, "%.50s %d %.50s %d", | ||
1195 | ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), | ||
1196 | laddr, ssh_local_port(ssh)); | ||
1197 | free(laddr); | ||
1198 | child_set_env(&env, &envsize, "SSH_CONNECTION", buf); | ||
1199 | |||
1200 | if (tun_fwd_ifnames != NULL) | ||
1201 | child_set_env(&env, &envsize, "SSH_TUNNEL", tun_fwd_ifnames); | ||
1202 | if (auth_info_file != NULL) | ||
1203 | child_set_env(&env, &envsize, "SSH_USER_AUTH", auth_info_file); | ||
1204 | if (s->ttyfd != -1) | ||
1205 | child_set_env(&env, &envsize, "SSH_TTY", s->tty); | ||
1206 | if (original_command) | ||
1207 | child_set_env(&env, &envsize, "SSH_ORIGINAL_COMMAND", | ||
1208 | original_command); | ||
1209 | |||
1154 | if (debug_flag) { | 1210 | if (debug_flag) { |
1155 | /* dump the environment */ | 1211 | /* dump the environment */ |
1156 | fprintf(stderr, "Environment:\n"); | 1212 | fprintf(stderr, "Environment:\n"); |
@@ -1324,7 +1380,7 @@ safely_chroot(const char *path, uid_t uid) | |||
1324 | void | 1380 | void |
1325 | do_setusercontext(struct passwd *pw) | 1381 | do_setusercontext(struct passwd *pw) |
1326 | { | 1382 | { |
1327 | char *chroot_path, *tmp; | 1383 | char uidstr[32], *chroot_path, *tmp; |
1328 | 1384 | ||
1329 | platform_setusercontext(pw); | 1385 | platform_setusercontext(pw); |
1330 | 1386 | ||
@@ -1356,8 +1412,10 @@ do_setusercontext(struct passwd *pw) | |||
1356 | strcasecmp(options.chroot_directory, "none") != 0) { | 1412 | strcasecmp(options.chroot_directory, "none") != 0) { |
1357 | tmp = tilde_expand_filename(options.chroot_directory, | 1413 | tmp = tilde_expand_filename(options.chroot_directory, |
1358 | pw->pw_uid); | 1414 | pw->pw_uid); |
1415 | snprintf(uidstr, sizeof(uidstr), "%llu", | ||
1416 | (unsigned long long)pw->pw_uid); | ||
1359 | chroot_path = percent_expand(tmp, "h", pw->pw_dir, | 1417 | chroot_path = percent_expand(tmp, "h", pw->pw_dir, |
1360 | "u", pw->pw_name, (char *)NULL); | 1418 | "u", pw->pw_name, "U", uidstr, (char *)NULL); |
1361 | safely_chroot(chroot_path, pw->pw_uid); | 1419 | safely_chroot(chroot_path, pw->pw_uid); |
1362 | free(tmp); | 1420 | free(tmp); |
1363 | free(chroot_path); | 1421 | free(chroot_path); |
@@ -1858,7 +1916,6 @@ static int | |||
1858 | session_pty_req(struct ssh *ssh, Session *s) | 1916 | session_pty_req(struct ssh *ssh, Session *s) |
1859 | { | 1917 | { |
1860 | u_int len; | 1918 | u_int len; |
1861 | int n_bytes; | ||
1862 | 1919 | ||
1863 | if (!auth_opts->permit_pty_flag || !options.permit_tty) { | 1920 | if (!auth_opts->permit_pty_flag || !options.permit_tty) { |
1864 | debug("Allocating a pty not permitted for this connection."); | 1921 | debug("Allocating a pty not permitted for this connection."); |
@@ -1893,8 +1950,7 @@ session_pty_req(struct ssh *ssh, Session *s) | |||
1893 | } | 1950 | } |
1894 | debug("session_pty_req: session %d alloc %s", s->self, s->tty); | 1951 | debug("session_pty_req: session %d alloc %s", s->self, s->tty); |
1895 | 1952 | ||
1896 | n_bytes = packet_remaining(); | 1953 | ssh_tty_parse_modes(ssh, s->ttyfd); |
1897 | tty_parse_modes(s->ttyfd, &n_bytes); | ||
1898 | 1954 | ||
1899 | if (!use_privsep) | 1955 | if (!use_privsep) |
1900 | pty_setowner(s->pw, s->tty); | 1956 | pty_setowner(s->pw, s->tty); |
diff --git a/sftp-client.c b/sftp-client.c index 0b53a2e68..4986d6d8d 100644 --- a/sftp-client.c +++ b/sftp-client.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: sftp-client.c,v 1.128 2017/11/28 21:10:22 dtucker Exp $ */ | 1 | /* $OpenBSD: sftp-client.c,v 1.130 2018/07/31 03:07:24 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2001-2004 Damien Miller <djm@openbsd.org> | 3 | * Copyright (c) 2001-2004 Damien Miller <djm@openbsd.org> |
4 | * | 4 | * |
@@ -669,7 +669,7 @@ do_lsreaddir(struct sftp_conn *conn, const char *path, int print_flag, | |||
669 | **dir = NULL; | 669 | **dir = NULL; |
670 | } | 670 | } |
671 | 671 | ||
672 | return status; | 672 | return status == SSH2_FX_OK ? 0 : -1; |
673 | } | 673 | } |
674 | 674 | ||
675 | int | 675 | int |
@@ -1019,7 +1019,7 @@ do_fsync(struct sftp_conn *conn, u_char *handle, u_int handle_len) | |||
1019 | if (status != SSH2_FX_OK) | 1019 | if (status != SSH2_FX_OK) |
1020 | error("Couldn't sync file: %s", fx2txt(status)); | 1020 | error("Couldn't sync file: %s", fx2txt(status)); |
1021 | 1021 | ||
1022 | return status; | 1022 | return status == SSH2_FX_OK ? 0 : -1; |
1023 | } | 1023 | } |
1024 | 1024 | ||
1025 | #ifdef notyet | 1025 | #ifdef notyet |
@@ -1451,7 +1451,7 @@ do_download(struct sftp_conn *conn, const char *remote_path, | |||
1451 | sshbuf_free(msg); | 1451 | sshbuf_free(msg); |
1452 | free(handle); | 1452 | free(handle); |
1453 | 1453 | ||
1454 | return(status); | 1454 | return status == SSH2_FX_OK ? 0 : -1; |
1455 | } | 1455 | } |
1456 | 1456 | ||
1457 | static int | 1457 | static int |
@@ -1461,7 +1461,7 @@ download_dir_internal(struct sftp_conn *conn, const char *src, const char *dst, | |||
1461 | { | 1461 | { |
1462 | int i, ret = 0; | 1462 | int i, ret = 0; |
1463 | SFTP_DIRENT **dir_entries; | 1463 | SFTP_DIRENT **dir_entries; |
1464 | char *filename, *new_src, *new_dst; | 1464 | char *filename, *new_src = NULL, *new_dst = NULL; |
1465 | mode_t mode = 0777; | 1465 | mode_t mode = 0777; |
1466 | 1466 | ||
1467 | if (depth >= MAX_DIR_DEPTH) { | 1467 | if (depth >= MAX_DIR_DEPTH) { |
@@ -1499,8 +1499,10 @@ download_dir_internal(struct sftp_conn *conn, const char *src, const char *dst, | |||
1499 | } | 1499 | } |
1500 | 1500 | ||
1501 | for (i = 0; dir_entries[i] != NULL && !interrupted; i++) { | 1501 | for (i = 0; dir_entries[i] != NULL && !interrupted; i++) { |
1502 | filename = dir_entries[i]->filename; | 1502 | free(new_dst); |
1503 | free(new_src); | ||
1503 | 1504 | ||
1505 | filename = dir_entries[i]->filename; | ||
1504 | new_dst = path_append(dst, filename); | 1506 | new_dst = path_append(dst, filename); |
1505 | new_src = path_append(src, filename); | 1507 | new_src = path_append(src, filename); |
1506 | 1508 | ||
@@ -1523,9 +1525,9 @@ download_dir_internal(struct sftp_conn *conn, const char *src, const char *dst, | |||
1523 | } else | 1525 | } else |
1524 | logit("%s: not a regular file\n", new_src); | 1526 | logit("%s: not a regular file\n", new_src); |
1525 | 1527 | ||
1526 | free(new_dst); | ||
1527 | free(new_src); | ||
1528 | } | 1528 | } |
1529 | free(new_dst); | ||
1530 | free(new_src); | ||
1529 | 1531 | ||
1530 | if (preserve_flag) { | 1532 | if (preserve_flag) { |
1531 | if (dirattrib->flags & SSH2_FILEXFER_ATTR_ACMODTIME) { | 1533 | if (dirattrib->flags & SSH2_FILEXFER_ATTR_ACMODTIME) { |
@@ -1793,7 +1795,7 @@ upload_dir_internal(struct sftp_conn *conn, const char *src, const char *dst, | |||
1793 | int ret = 0; | 1795 | int ret = 0; |
1794 | DIR *dirp; | 1796 | DIR *dirp; |
1795 | struct dirent *dp; | 1797 | struct dirent *dp; |
1796 | char *filename, *new_src, *new_dst; | 1798 | char *filename, *new_src = NULL, *new_dst = NULL; |
1797 | struct stat sb; | 1799 | struct stat sb; |
1798 | Attrib a, *dirattrib; | 1800 | Attrib a, *dirattrib; |
1799 | 1801 | ||
@@ -1844,6 +1846,8 @@ upload_dir_internal(struct sftp_conn *conn, const char *src, const char *dst, | |||
1844 | while (((dp = readdir(dirp)) != NULL) && !interrupted) { | 1846 | while (((dp = readdir(dirp)) != NULL) && !interrupted) { |
1845 | if (dp->d_ino == 0) | 1847 | if (dp->d_ino == 0) |
1846 | continue; | 1848 | continue; |
1849 | free(new_dst); | ||
1850 | free(new_src); | ||
1847 | filename = dp->d_name; | 1851 | filename = dp->d_name; |
1848 | new_dst = path_append(dst, filename); | 1852 | new_dst = path_append(dst, filename); |
1849 | new_src = path_append(src, filename); | 1853 | new_src = path_append(src, filename); |
@@ -1870,9 +1874,9 @@ upload_dir_internal(struct sftp_conn *conn, const char *src, const char *dst, | |||
1870 | } | 1874 | } |
1871 | } else | 1875 | } else |
1872 | logit("%s: not a regular file\n", filename); | 1876 | logit("%s: not a regular file\n", filename); |
1873 | free(new_dst); | ||
1874 | free(new_src); | ||
1875 | } | 1877 | } |
1878 | free(new_dst); | ||
1879 | free(new_src); | ||
1876 | 1880 | ||
1877 | do_setstat(conn, dst, &a); | 1881 | do_setstat(conn, dst, &a); |
1878 | 1882 | ||
diff --git a/sftp-server.0 b/sftp-server.0 index 4f994f4c5..4c42b26c9 100644 --- a/sftp-server.0 +++ b/sftp-server.0 | |||
@@ -93,4 +93,4 @@ HISTORY | |||
93 | AUTHORS | 93 | AUTHORS |
94 | Markus Friedl <markus@openbsd.org> | 94 | Markus Friedl <markus@openbsd.org> |
95 | 95 | ||
96 | OpenBSD 6.2 December 11, 2014 OpenBSD 6.2 | 96 | OpenBSD 6.4 December 11, 2014 OpenBSD 6.4 |
diff --git a/sftp-server.c b/sftp-server.c index df0fb5068..ab1b063f2 100644 --- a/sftp-server.c +++ b/sftp-server.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: sftp-server.c,v 1.111 2017/04/04 00:24:56 djm Exp $ */ | 1 | /* $OpenBSD: sftp-server.c,v 1.112 2018/06/01 03:33:53 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2000-2004 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2000-2004 Markus Friedl. All rights reserved. |
4 | * | 4 | * |
@@ -1503,7 +1503,7 @@ sftp_server_main(int argc, char **argv, struct passwd *user_pw) | |||
1503 | int i, r, in, out, max, ch, skipargs = 0, log_stderr = 0; | 1503 | int i, r, in, out, max, ch, skipargs = 0, log_stderr = 0; |
1504 | ssize_t len, olen, set_size; | 1504 | ssize_t len, olen, set_size; |
1505 | SyslogFacility log_facility = SYSLOG_FACILITY_AUTH; | 1505 | SyslogFacility log_facility = SYSLOG_FACILITY_AUTH; |
1506 | char *cp, *homedir = NULL, buf[4*4096]; | 1506 | char *cp, *homedir = NULL, uidstr[32], buf[4*4096]; |
1507 | long mask; | 1507 | long mask; |
1508 | 1508 | ||
1509 | extern char *optarg; | 1509 | extern char *optarg; |
@@ -1554,8 +1554,10 @@ sftp_server_main(int argc, char **argv, struct passwd *user_pw) | |||
1554 | break; | 1554 | break; |
1555 | case 'd': | 1555 | case 'd': |
1556 | cp = tilde_expand_filename(optarg, user_pw->pw_uid); | 1556 | cp = tilde_expand_filename(optarg, user_pw->pw_uid); |
1557 | snprintf(uidstr, sizeof(uidstr), "%llu", | ||
1558 | (unsigned long long)pw->pw_uid); | ||
1557 | homedir = percent_expand(cp, "d", user_pw->pw_dir, | 1559 | homedir = percent_expand(cp, "d", user_pw->pw_dir, |
1558 | "u", user_pw->pw_name, (char *)NULL); | 1560 | "u", user_pw->pw_name, "U", uidstr, (char *)NULL); |
1559 | free(cp); | 1561 | free(cp); |
1560 | break; | 1562 | break; |
1561 | case 'p': | 1563 | case 'p': |
@@ -146,10 +146,10 @@ DESCRIPTION | |||
146 | SendEnv | 146 | SendEnv |
147 | ServerAliveInterval | 147 | ServerAliveInterval |
148 | ServerAliveCountMax | 148 | ServerAliveCountMax |
149 | SetEnv | ||
149 | StrictHostKeyChecking | 150 | StrictHostKeyChecking |
150 | TCPKeepAlive | 151 | TCPKeepAlive |
151 | UpdateHostKeys | 152 | UpdateHostKeys |
152 | UsePrivilegedPort | ||
153 | User | 153 | User |
154 | UserKnownHostsFile | 154 | UserKnownHostsFile |
155 | VerifyHostKeyDNS | 155 | VerifyHostKeyDNS |
@@ -197,16 +197,16 @@ INTERACTIVE COMMANDS | |||
197 | change directory to the one the session started in. | 197 | change directory to the one the session started in. |
198 | 198 | ||
199 | chgrp grp path | 199 | chgrp grp path |
200 | Change group of file path to grp. path may contain glob(3) | 200 | Change group of file path to grp. path may contain glob(7) |
201 | characters and may match multiple files. grp must be a numeric | 201 | characters and may match multiple files. grp must be a numeric |
202 | GID. | 202 | GID. |
203 | 203 | ||
204 | chmod mode path | 204 | chmod mode path |
205 | Change permissions of file path to mode. path may contain | 205 | Change permissions of file path to mode. path may contain |
206 | glob(3) characters and may match multiple files. | 206 | glob(7) characters and may match multiple files. |
207 | 207 | ||
208 | chown own path | 208 | chown own path |
209 | Change owner of file path to own. path may contain glob(3) | 209 | Change owner of file path to own. path may contain glob(7) |
210 | characters and may match multiple files. own must be a numeric | 210 | characters and may match multiple files. own must be a numeric |
211 | UID. | 211 | UID. |
212 | 212 | ||
@@ -223,7 +223,7 @@ INTERACTIVE COMMANDS | |||
223 | get [-afPpr] remote-path [local-path] | 223 | get [-afPpr] remote-path [local-path] |
224 | Retrieve the remote-path and store it on the local machine. If | 224 | Retrieve the remote-path and store it on the local machine. If |
225 | the local path name is not specified, it is given the same name | 225 | the local path name is not specified, it is given the same name |
226 | it has on the remote machine. remote-path may contain glob(3) | 226 | it has on the remote machine. remote-path may contain glob(7) |
227 | characters and may match multiple files. If it does and | 227 | characters and may match multiple files. If it does and |
228 | local-path is specified, then local-path must specify a | 228 | local-path is specified, then local-path must specify a |
229 | directory. | 229 | directory. |
@@ -254,7 +254,7 @@ INTERACTIVE COMMANDS | |||
254 | Display local directory listing of either path or current | 254 | Display local directory listing of either path or current |
255 | directory if path is not specified. ls-options may contain any | 255 | directory if path is not specified. ls-options may contain any |
256 | flags supported by the local system's ls(1) command. path may | 256 | flags supported by the local system's ls(1) command. path may |
257 | contain glob(3) characters and may match multiple files. | 257 | contain glob(7) characters and may match multiple files. |
258 | 258 | ||
259 | lmkdir path | 259 | lmkdir path |
260 | Create local directory specified by path. | 260 | Create local directory specified by path. |
@@ -268,7 +268,7 @@ INTERACTIVE COMMANDS | |||
268 | 268 | ||
269 | ls [-1afhlnrSt] [path] | 269 | ls [-1afhlnrSt] [path] |
270 | Display a remote directory listing of either path or the current | 270 | Display a remote directory listing of either path or the current |
271 | directory if path is not specified. path may contain glob(3) | 271 | directory if path is not specified. path may contain glob(7) |
272 | characters and may match multiple files. | 272 | characters and may match multiple files. |
273 | 273 | ||
274 | The following flags are recognized and alter the behaviour of ls | 274 | The following flags are recognized and alter the behaviour of ls |
@@ -311,7 +311,7 @@ INTERACTIVE COMMANDS | |||
311 | put [-afPpr] local-path [remote-path] | 311 | put [-afPpr] local-path [remote-path] |
312 | Upload local-path and store it on the remote machine. If the | 312 | Upload local-path and store it on the remote machine. If the |
313 | remote path name is not specified, it is given the same name it | 313 | remote path name is not specified, it is given the same name it |
314 | has on the local machine. local-path may contain glob(3) | 314 | has on the local machine. local-path may contain glob(7) |
315 | characters and may match multiple files. If it does and | 315 | characters and may match multiple files. If it does and |
316 | remote-path is specified, then remote-path must specify a | 316 | remote-path is specified, then remote-path must specify a |
317 | directory. | 317 | directory. |
@@ -369,10 +369,10 @@ INTERACTIVE COMMANDS | |||
369 | ? Synonym for help. | 369 | ? Synonym for help. |
370 | 370 | ||
371 | SEE ALSO | 371 | SEE ALSO |
372 | ftp(1), ls(1), scp(1), ssh(1), ssh-add(1), ssh-keygen(1), glob(3), | 372 | ftp(1), ls(1), scp(1), ssh(1), ssh-add(1), ssh-keygen(1), ssh_config(5), |
373 | ssh_config(5), sftp-server(8), sshd(8) | 373 | glob(7), sftp-server(8), sshd(8) |
374 | 374 | ||
375 | T. Ylonen and S. Lehtinen, SSH File Transfer Protocol, draft-ietf-secsh- | 375 | T. Ylonen and S. Lehtinen, SSH File Transfer Protocol, draft-ietf-secsh- |
376 | filexfer-00.txt, January 2001, work in progress material. | 376 | filexfer-00.txt, January 2001, work in progress material. |
377 | 377 | ||
378 | OpenBSD 6.2 February 23, 2018 OpenBSD 6.2 | 378 | OpenBSD 6.4 July 23, 2018 OpenBSD 6.4 |
@@ -1,4 +1,4 @@ | |||
1 | .\" $OpenBSD: sftp.1,v 1.114 2018/02/23 07:38:09 jmc Exp $ | 1 | .\" $OpenBSD: sftp.1,v 1.119 2018/07/23 19:53:55 jmc Exp $ |
2 | .\" | 2 | .\" |
3 | .\" Copyright (c) 2001 Damien Miller. All rights reserved. | 3 | .\" Copyright (c) 2001 Damien Miller. All rights reserved. |
4 | .\" | 4 | .\" |
@@ -22,7 +22,7 @@ | |||
22 | .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | 22 | .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
23 | .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 23 | .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
24 | .\" | 24 | .\" |
25 | .Dd $Mdocdate: February 23 2018 $ | 25 | .Dd $Mdocdate: July 23 2018 $ |
26 | .Dt SFTP 1 | 26 | .Dt SFTP 1 |
27 | .Os | 27 | .Os |
28 | .Sh NAME | 28 | .Sh NAME |
@@ -243,10 +243,10 @@ For full details of the options listed below, and their possible values, see | |||
243 | .It SendEnv | 243 | .It SendEnv |
244 | .It ServerAliveInterval | 244 | .It ServerAliveInterval |
245 | .It ServerAliveCountMax | 245 | .It ServerAliveCountMax |
246 | .It SetEnv | ||
246 | .It StrictHostKeyChecking | 247 | .It StrictHostKeyChecking |
247 | .It TCPKeepAlive | 248 | .It TCPKeepAlive |
248 | .It UpdateHostKeys | 249 | .It UpdateHostKeys |
249 | .It UsePrivilegedPort | ||
250 | .It User | 250 | .It User |
251 | .It UserKnownHostsFile | 251 | .It UserKnownHostsFile |
252 | .It VerifyHostKeyDNS | 252 | .It VerifyHostKeyDNS |
@@ -315,7 +315,7 @@ to | |||
315 | .Ar grp . | 315 | .Ar grp . |
316 | .Ar path | 316 | .Ar path |
317 | may contain | 317 | may contain |
318 | .Xr glob 3 | 318 | .Xr glob 7 |
319 | characters and may match multiple files. | 319 | characters and may match multiple files. |
320 | .Ar grp | 320 | .Ar grp |
321 | must be a numeric GID. | 321 | must be a numeric GID. |
@@ -326,7 +326,7 @@ to | |||
326 | .Ar mode . | 326 | .Ar mode . |
327 | .Ar path | 327 | .Ar path |
328 | may contain | 328 | may contain |
329 | .Xr glob 3 | 329 | .Xr glob 7 |
330 | characters and may match multiple files. | 330 | characters and may match multiple files. |
331 | .It Ic chown Ar own Ar path | 331 | .It Ic chown Ar own Ar path |
332 | Change owner of file | 332 | Change owner of file |
@@ -335,7 +335,7 @@ to | |||
335 | .Ar own . | 335 | .Ar own . |
336 | .Ar path | 336 | .Ar path |
337 | may contain | 337 | may contain |
338 | .Xr glob 3 | 338 | .Xr glob 7 |
339 | characters and may match multiple files. | 339 | characters and may match multiple files. |
340 | .Ar own | 340 | .Ar own |
341 | must be a numeric UID. | 341 | must be a numeric UID. |
@@ -373,7 +373,7 @@ path name is not specified, it is given the same name it has on the | |||
373 | remote machine. | 373 | remote machine. |
374 | .Ar remote-path | 374 | .Ar remote-path |
375 | may contain | 375 | may contain |
376 | .Xr glob 3 | 376 | .Xr glob 7 |
377 | characters and may match multiple files. | 377 | characters and may match multiple files. |
378 | If it does and | 378 | If it does and |
379 | .Ar local-path | 379 | .Ar local-path |
@@ -429,7 +429,7 @@ may contain any flags supported by the local system's | |||
429 | command. | 429 | command. |
430 | .Ar path | 430 | .Ar path |
431 | may contain | 431 | may contain |
432 | .Xr glob 3 | 432 | .Xr glob 7 |
433 | characters and may match multiple files. | 433 | characters and may match multiple files. |
434 | .It Ic lmkdir Ar path | 434 | .It Ic lmkdir Ar path |
435 | Create local directory specified by | 435 | Create local directory specified by |
@@ -460,7 +460,7 @@ or the current directory if | |||
460 | is not specified. | 460 | is not specified. |
461 | .Ar path | 461 | .Ar path |
462 | may contain | 462 | may contain |
463 | .Xr glob 3 | 463 | .Xr glob 7 |
464 | characters and may match multiple files. | 464 | characters and may match multiple files. |
465 | .Pp | 465 | .Pp |
466 | The following flags are recognized and alter the behaviour of | 466 | The following flags are recognized and alter the behaviour of |
@@ -513,7 +513,7 @@ If the remote path name is not specified, it is given the same name it has | |||
513 | on the local machine. | 513 | on the local machine. |
514 | .Ar local-path | 514 | .Ar local-path |
515 | may contain | 515 | may contain |
516 | .Xr glob 3 | 516 | .Xr glob 7 |
517 | characters and may match multiple files. | 517 | characters and may match multiple files. |
518 | If it does and | 518 | If it does and |
519 | .Ar remote-path | 519 | .Ar remote-path |
@@ -616,8 +616,8 @@ Synonym for help. | |||
616 | .Xr ssh 1 , | 616 | .Xr ssh 1 , |
617 | .Xr ssh-add 1 , | 617 | .Xr ssh-add 1 , |
618 | .Xr ssh-keygen 1 , | 618 | .Xr ssh-keygen 1 , |
619 | .Xr glob 3 , | ||
620 | .Xr ssh_config 5 , | 619 | .Xr ssh_config 5 , |
620 | .Xr glob 7 , | ||
621 | .Xr sftp-server 8 , | 621 | .Xr sftp-server 8 , |
622 | .Xr sshd 8 | 622 | .Xr sshd 8 |
623 | .Rs | 623 | .Rs |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: sftp.c,v 1.182 2017/11/03 03:46:52 djm Exp $ */ | 1 | /* $OpenBSD: sftp.c,v 1.185 2018/04/26 14:47:03 bluhm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2001-2004 Damien Miller <djm@openbsd.org> | 3 | * Copyright (c) 2001-2004 Damien Miller <djm@openbsd.org> |
4 | * | 4 | * |
@@ -81,7 +81,7 @@ FILE* infile; | |||
81 | int batchmode = 0; | 81 | int batchmode = 0; |
82 | 82 | ||
83 | /* PID of ssh transport process */ | 83 | /* PID of ssh transport process */ |
84 | static pid_t sshpid = -1; | 84 | static volatile pid_t sshpid = -1; |
85 | 85 | ||
86 | /* Suppress diagnositic messages */ | 86 | /* Suppress diagnositic messages */ |
87 | int quiet = 0; | 87 | int quiet = 0; |
@@ -253,6 +253,25 @@ cmd_interrupt(int signo) | |||
253 | errno = olderrno; | 253 | errno = olderrno; |
254 | } | 254 | } |
255 | 255 | ||
256 | /*ARGSUSED*/ | ||
257 | static void | ||
258 | sigchld_handler(int sig) | ||
259 | { | ||
260 | int save_errno = errno; | ||
261 | pid_t pid; | ||
262 | const char msg[] = "\rConnection closed. \n"; | ||
263 | |||
264 | /* Report if ssh transport process dies. */ | ||
265 | while ((pid = waitpid(sshpid, NULL, WNOHANG)) == -1 && errno == EINTR) | ||
266 | continue; | ||
267 | if (pid == sshpid) { | ||
268 | (void)write(STDERR_FILENO, msg, sizeof(msg) - 1); | ||
269 | sshpid = -1; | ||
270 | } | ||
271 | |||
272 | errno = save_errno; | ||
273 | } | ||
274 | |||
256 | static void | 275 | static void |
257 | help(void) | 276 | help(void) |
258 | { | 277 | { |
@@ -1844,7 +1863,7 @@ complete_cmd_parse(EditLine *el, char *cmd, int lastarg, char quote, | |||
1844 | return 0; | 1863 | return 0; |
1845 | } | 1864 | } |
1846 | 1865 | ||
1847 | /* Complete ambigious command */ | 1866 | /* Complete ambiguous command */ |
1848 | tmp = complete_ambiguous(cmd, list, count); | 1867 | tmp = complete_ambiguous(cmd, list, count); |
1849 | if (count > 1) | 1868 | if (count > 1) |
1850 | complete_display(list, 0); | 1869 | complete_display(list, 0); |
@@ -2227,6 +2246,7 @@ interactive_loop(struct sftp_conn *conn, char *file1, char *file2) | |||
2227 | if (err != 0) | 2246 | if (err != 0) |
2228 | break; | 2247 | break; |
2229 | } | 2248 | } |
2249 | signal(SIGCHLD, SIG_DFL); | ||
2230 | free(remote_path); | 2250 | free(remote_path); |
2231 | free(startdir); | 2251 | free(startdir); |
2232 | free(conn); | 2252 | free(conn); |
@@ -2296,6 +2316,7 @@ connect_to_server(char *path, char **args, int *in, int *out) | |||
2296 | signal(SIGTSTP, suspchild); | 2316 | signal(SIGTSTP, suspchild); |
2297 | signal(SIGTTIN, suspchild); | 2317 | signal(SIGTTIN, suspchild); |
2298 | signal(SIGTTOU, suspchild); | 2318 | signal(SIGTTOU, suspchild); |
2319 | signal(SIGCHLD, sigchld_handler); | ||
2299 | close(c_in); | 2320 | close(c_in); |
2300 | close(c_out); | 2321 | close(c_out); |
2301 | } | 2322 | } |
@@ -2535,7 +2556,7 @@ main(int argc, char **argv) | |||
2535 | if (batchmode) | 2556 | if (batchmode) |
2536 | fclose(infile); | 2557 | fclose(infile); |
2537 | 2558 | ||
2538 | while (waitpid(sshpid, NULL, 0) == -1) | 2559 | while (waitpid(sshpid, NULL, 0) == -1 && sshpid > 1) |
2539 | if (errno != EINTR) | 2560 | if (errno != EINTR) |
2540 | fatal("Couldn't wait for ssh process: %s", | 2561 | fatal("Couldn't wait for ssh process: %s", |
2541 | strerror(errno)); | 2562 | strerror(errno)); |
@@ -120,4 +120,4 @@ AUTHORS | |||
120 | created OpenSSH. Markus Friedl contributed the support for SSH protocol | 120 | created OpenSSH. Markus Friedl contributed the support for SSH protocol |
121 | versions 1.5 and 2.0. | 121 | versions 1.5 and 2.0. |
122 | 122 | ||
123 | OpenBSD 6.2 August 29, 2017 OpenBSD 6.2 | 123 | OpenBSD 6.4 August 29, 2017 OpenBSD 6.4 |
diff --git a/ssh-agent.0 b/ssh-agent.0 index 86ac988bd..f4575d01b 100644 --- a/ssh-agent.0 +++ b/ssh-agent.0 | |||
@@ -117,4 +117,4 @@ AUTHORS | |||
117 | created OpenSSH. Markus Friedl contributed the support for SSH protocol | 117 | created OpenSSH. Markus Friedl contributed the support for SSH protocol |
118 | versions 1.5 and 2.0. | 118 | versions 1.5 and 2.0. |
119 | 119 | ||
120 | OpenBSD 6.2 November 30, 2016 OpenBSD 6.2 | 120 | OpenBSD 6.4 November 30, 2016 OpenBSD 6.4 |
diff --git a/ssh-agent.c b/ssh-agent.c index 2a4578b03..d8a8260f9 100644 --- a/ssh-agent.c +++ b/ssh-agent.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssh-agent.c,v 1.228 2018/02/23 15:58:37 markus Exp $ */ | 1 | /* $OpenBSD: ssh-agent.c,v 1.231 2018/05/11 03:38:51 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -709,7 +709,7 @@ process_message(u_int socknum) | |||
709 | 709 | ||
710 | debug("%s: socket %u (fd=%d) type %d", __func__, socknum, e->fd, type); | 710 | debug("%s: socket %u (fd=%d) type %d", __func__, socknum, e->fd, type); |
711 | 711 | ||
712 | /* check wheter agent is locked */ | 712 | /* check whether agent is locked */ |
713 | if (locked && type != SSH_AGENTC_UNLOCK) { | 713 | if (locked && type != SSH_AGENTC_UNLOCK) { |
714 | sshbuf_reset(e->request); | 714 | sshbuf_reset(e->request); |
715 | switch (type) { | 715 | switch (type) { |
@@ -886,10 +886,10 @@ handle_conn_write(u_int socknum) | |||
886 | } | 886 | } |
887 | 887 | ||
888 | static void | 888 | static void |
889 | after_poll(struct pollfd *pfd, size_t npfd) | 889 | after_poll(struct pollfd *pfd, size_t npfd, u_int maxfds) |
890 | { | 890 | { |
891 | size_t i; | 891 | size_t i; |
892 | u_int socknum; | 892 | u_int socknum, activefds = npfd; |
893 | 893 | ||
894 | for (i = 0; i < npfd; i++) { | 894 | for (i = 0; i < npfd; i++) { |
895 | if (pfd[i].revents == 0) | 895 | if (pfd[i].revents == 0) |
@@ -909,19 +909,30 @@ after_poll(struct pollfd *pfd, size_t npfd) | |||
909 | /* Process events */ | 909 | /* Process events */ |
910 | switch (sockets[socknum].type) { | 910 | switch (sockets[socknum].type) { |
911 | case AUTH_SOCKET: | 911 | case AUTH_SOCKET: |
912 | if ((pfd[i].revents & (POLLIN|POLLERR)) != 0 && | 912 | if ((pfd[i].revents & (POLLIN|POLLERR)) == 0) |
913 | handle_socket_read(socknum) != 0) | 913 | break; |
914 | close_socket(&sockets[socknum]); | 914 | if (npfd > maxfds) { |
915 | debug3("out of fds (active %u >= limit %u); " | ||
916 | "skipping accept", activefds, maxfds); | ||
917 | break; | ||
918 | } | ||
919 | if (handle_socket_read(socknum) == 0) | ||
920 | activefds++; | ||
915 | break; | 921 | break; |
916 | case AUTH_CONNECTION: | 922 | case AUTH_CONNECTION: |
917 | if ((pfd[i].revents & (POLLIN|POLLERR)) != 0 && | 923 | if ((pfd[i].revents & (POLLIN|POLLERR)) != 0 && |
918 | handle_conn_read(socknum) != 0) { | 924 | handle_conn_read(socknum) != 0) { |
919 | close_socket(&sockets[socknum]); | 925 | goto close_sock; |
920 | break; | ||
921 | } | 926 | } |
922 | if ((pfd[i].revents & (POLLOUT|POLLHUP)) != 0 && | 927 | if ((pfd[i].revents & (POLLOUT|POLLHUP)) != 0 && |
923 | handle_conn_write(socknum) != 0) | 928 | handle_conn_write(socknum) != 0) { |
929 | close_sock: | ||
930 | if (activefds == 0) | ||
931 | fatal("activefds == 0 at close_sock"); | ||
924 | close_socket(&sockets[socknum]); | 932 | close_socket(&sockets[socknum]); |
933 | activefds--; | ||
934 | break; | ||
935 | } | ||
925 | break; | 936 | break; |
926 | default: | 937 | default: |
927 | break; | 938 | break; |
@@ -930,7 +941,7 @@ after_poll(struct pollfd *pfd, size_t npfd) | |||
930 | } | 941 | } |
931 | 942 | ||
932 | static int | 943 | static int |
933 | prepare_poll(struct pollfd **pfdp, size_t *npfdp, int *timeoutp) | 944 | prepare_poll(struct pollfd **pfdp, size_t *npfdp, int *timeoutp, u_int maxfds) |
934 | { | 945 | { |
935 | struct pollfd *pfd = *pfdp; | 946 | struct pollfd *pfd = *pfdp; |
936 | size_t i, j, npfd = 0; | 947 | size_t i, j, npfd = 0; |
@@ -959,6 +970,16 @@ prepare_poll(struct pollfd **pfdp, size_t *npfdp, int *timeoutp) | |||
959 | for (i = j = 0; i < sockets_alloc; i++) { | 970 | for (i = j = 0; i < sockets_alloc; i++) { |
960 | switch (sockets[i].type) { | 971 | switch (sockets[i].type) { |
961 | case AUTH_SOCKET: | 972 | case AUTH_SOCKET: |
973 | if (npfd > maxfds) { | ||
974 | debug3("out of fds (active %zu >= limit %u); " | ||
975 | "skipping arming listener", npfd, maxfds); | ||
976 | break; | ||
977 | } | ||
978 | pfd[j].fd = sockets[i].fd; | ||
979 | pfd[j].revents = 0; | ||
980 | pfd[j].events = POLLIN; | ||
981 | j++; | ||
982 | break; | ||
962 | case AUTH_CONNECTION: | 983 | case AUTH_CONNECTION: |
963 | pfd[j].fd = sockets[i].fd; | 984 | pfd[j].fd = sockets[i].fd; |
964 | pfd[j].revents = 0; | 985 | pfd[j].revents = 0; |
@@ -1059,6 +1080,7 @@ main(int ac, char **av) | |||
1059 | int timeout = -1; /* INFTIM */ | 1080 | int timeout = -1; /* INFTIM */ |
1060 | struct pollfd *pfd = NULL; | 1081 | struct pollfd *pfd = NULL; |
1061 | size_t npfd = 0; | 1082 | size_t npfd = 0; |
1083 | u_int maxfds; | ||
1062 | 1084 | ||
1063 | ssh_malloc_init(); /* must be called before any mallocs */ | 1085 | ssh_malloc_init(); /* must be called before any mallocs */ |
1064 | /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */ | 1086 | /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */ |
@@ -1070,6 +1092,9 @@ main(int ac, char **av) | |||
1070 | 1092 | ||
1071 | platform_disable_tracing(0); /* strict=no */ | 1093 | platform_disable_tracing(0); /* strict=no */ |
1072 | 1094 | ||
1095 | if (getrlimit(RLIMIT_NOFILE, &rlim) == -1) | ||
1096 | fatal("%s: getrlimit: %s", __progname, strerror(errno)); | ||
1097 | |||
1073 | #ifdef WITH_OPENSSL | 1098 | #ifdef WITH_OPENSSL |
1074 | OpenSSL_add_all_algorithms(); | 1099 | OpenSSL_add_all_algorithms(); |
1075 | #endif | 1100 | #endif |
@@ -1166,6 +1191,18 @@ main(int ac, char **av) | |||
1166 | printf("echo Agent pid %ld killed;\n", (long)pid); | 1191 | printf("echo Agent pid %ld killed;\n", (long)pid); |
1167 | exit(0); | 1192 | exit(0); |
1168 | } | 1193 | } |
1194 | |||
1195 | /* | ||
1196 | * Minimum file descriptors: | ||
1197 | * stdio (3) + listener (1) + syslog (1 maybe) + connection (1) + | ||
1198 | * a few spare for libc / stack protectors / sanitisers, etc. | ||
1199 | */ | ||
1200 | #define SSH_AGENT_MIN_FDS (3+1+1+1+4) | ||
1201 | if (rlim.rlim_cur < SSH_AGENT_MIN_FDS) | ||
1202 | fatal("%s: file descriptior rlimit %lld too low (minimum %u)", | ||
1203 | __progname, (long long)rlim.rlim_cur, SSH_AGENT_MIN_FDS); | ||
1204 | maxfds = rlim.rlim_cur - SSH_AGENT_MIN_FDS; | ||
1205 | |||
1169 | parent_pid = getpid(); | 1206 | parent_pid = getpid(); |
1170 | 1207 | ||
1171 | if (agentsocket == NULL) { | 1208 | if (agentsocket == NULL) { |
@@ -1285,7 +1322,7 @@ skip: | |||
1285 | platform_pledge_agent(); | 1322 | platform_pledge_agent(); |
1286 | 1323 | ||
1287 | while (1) { | 1324 | while (1) { |
1288 | prepare_poll(&pfd, &npfd, &timeout); | 1325 | prepare_poll(&pfd, &npfd, &timeout, maxfds); |
1289 | result = poll(pfd, npfd, timeout); | 1326 | result = poll(pfd, npfd, timeout); |
1290 | saved_errno = errno; | 1327 | saved_errno = errno; |
1291 | if (parent_alive_interval != 0) | 1328 | if (parent_alive_interval != 0) |
@@ -1296,7 +1333,7 @@ skip: | |||
1296 | continue; | 1333 | continue; |
1297 | fatal("poll: %s", strerror(saved_errno)); | 1334 | fatal("poll: %s", strerror(saved_errno)); |
1298 | } else if (result > 0) | 1335 | } else if (result > 0) |
1299 | after_poll(pfd, npfd); | 1336 | after_poll(pfd, npfd, maxfds); |
1300 | } | 1337 | } |
1301 | /* NOTREACHED */ | 1338 | /* NOTREACHED */ |
1302 | } | 1339 | } |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssh-gss.h,v 1.12 2017/06/24 06:34:38 djm Exp $ */ | 1 | /* $OpenBSD: ssh-gss.h,v 1.14 2018/07/10 09:13:30 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2001-2003 Simon Wilkinson. All rights reserved. | 3 | * Copyright (c) 2001-2003 Simon Wilkinson. All rights reserved. |
4 | * | 4 | * |
@@ -107,6 +107,9 @@ ssh_gssapi_mech *ssh_gssapi_get_ctype(Gssctxt *); | |||
107 | void ssh_gssapi_prepare_supported_oids(void); | 107 | void ssh_gssapi_prepare_supported_oids(void); |
108 | OM_uint32 ssh_gssapi_test_oid_supported(OM_uint32 *, gss_OID, int *); | 108 | OM_uint32 ssh_gssapi_test_oid_supported(OM_uint32 *, gss_OID, int *); |
109 | 109 | ||
110 | struct sshbuf; | ||
111 | int ssh_gssapi_get_buffer_desc(struct sshbuf *, gss_buffer_desc *); | ||
112 | |||
110 | OM_uint32 ssh_gssapi_import_name(Gssctxt *, const char *); | 113 | OM_uint32 ssh_gssapi_import_name(Gssctxt *, const char *); |
111 | OM_uint32 ssh_gssapi_init_ctx(Gssctxt *, int, | 114 | OM_uint32 ssh_gssapi_init_ctx(Gssctxt *, int, |
112 | gss_buffer_desc *, gss_buffer_desc *, OM_uint32 *); | 115 | gss_buffer_desc *, gss_buffer_desc *, OM_uint32 *); |
@@ -118,7 +121,8 @@ char *ssh_gssapi_last_error(Gssctxt *, OM_uint32 *, OM_uint32 *); | |||
118 | void ssh_gssapi_build_ctx(Gssctxt **); | 121 | void ssh_gssapi_build_ctx(Gssctxt **); |
119 | void ssh_gssapi_delete_ctx(Gssctxt **); | 122 | void ssh_gssapi_delete_ctx(Gssctxt **); |
120 | OM_uint32 ssh_gssapi_sign(Gssctxt *, gss_buffer_t, gss_buffer_t); | 123 | OM_uint32 ssh_gssapi_sign(Gssctxt *, gss_buffer_t, gss_buffer_t); |
121 | void ssh_gssapi_buildmic(Buffer *, const char *, const char *, const char *); | 124 | void ssh_gssapi_buildmic(struct sshbuf *, const char *, |
125 | const char *, const char *); | ||
122 | int ssh_gssapi_check_mechanism(Gssctxt **, gss_OID, const char *); | 126 | int ssh_gssapi_check_mechanism(Gssctxt **, gss_OID, const char *); |
123 | 127 | ||
124 | /* In the server */ | 128 | /* In the server */ |
diff --git a/ssh-keygen.0 b/ssh-keygen.0 index 417e8382b..f8cc3c3e2 100644 --- a/ssh-keygen.0 +++ b/ssh-keygen.0 | |||
@@ -88,9 +88,8 @@ DESCRIPTION | |||
88 | new host keys. | 88 | new host keys. |
89 | 89 | ||
90 | -a rounds | 90 | -a rounds |
91 | When saving a new-format private key (i.e. an ed25519 key or when | 91 | When saving a private key this option specifies the number of KDF |
92 | the -o flag is set), this option specifies the number of KDF (key | 92 | (key derivation function) rounds used. Higher numbers result in |
93 | derivation function) rounds used. Higher numbers result in | ||
94 | slower passphrase verification and increased resistance to brute- | 93 | slower passphrase verification and increased resistance to brute- |
95 | force password cracking (should the keys be stolen). | 94 | force password cracking (should the keys be stolen). |
96 | 95 | ||
@@ -115,10 +114,9 @@ DESCRIPTION | |||
115 | Provides a new comment. | 114 | Provides a new comment. |
116 | 115 | ||
117 | -c Requests changing the comment in the private and public key | 116 | -c Requests changing the comment in the private and public key |
118 | files. This operation is only supported for keys stored in the | 117 | files. The program will prompt for the file containing the |
119 | newer OpenSSH format. The program will prompt for the file | 118 | private keys, for the passphrase if the key has one, and for the |
120 | containing the private keys, for the passphrase if the key has | 119 | new comment. |
121 | one, and for the new comment. | ||
122 | 120 | ||
123 | -D pkcs11 | 121 | -D pkcs11 |
124 | Download the RSA public keys provided by the PKCS#11 shared | 122 | Download the RSA public keys provided by the PKCS#11 shared |
@@ -212,7 +210,9 @@ DESCRIPTION | |||
212 | conversion options. The supported key formats are: M-bM-^@M-^\RFC4716M-bM-^@M-^] | 210 | conversion options. The supported key formats are: M-bM-^@M-^\RFC4716M-bM-^@M-^] |
213 | (RFC 4716/SSH2 public or private key), M-bM-^@M-^\PKCS8M-bM-^@M-^] (PEM PKCS8 public | 211 | (RFC 4716/SSH2 public or private key), M-bM-^@M-^\PKCS8M-bM-^@M-^] (PEM PKCS8 public |
214 | key) or M-bM-^@M-^\PEMM-bM-^@M-^] (PEM public key). The default conversion format is | 212 | key) or M-bM-^@M-^\PEMM-bM-^@M-^] (PEM public key). The default conversion format is |
215 | M-bM-^@M-^\RFC4716M-bM-^@M-^]. | 213 | M-bM-^@M-^\RFC4716M-bM-^@M-^]. Setting a format of M-bM-^@M-^\PEMM-bM-^@M-^] when generating or updating |
214 | a supported private key type will cause the key to be stored in | ||
215 | the legacy PEM private key format. | ||
216 | 216 | ||
217 | -N new_passphrase | 217 | -N new_passphrase |
218 | Provides the new passphrase. | 218 | Provides the new passphrase. |
@@ -289,12 +289,6 @@ DESCRIPTION | |||
289 | separated list of one or more address/netmask pairs in | 289 | separated list of one or more address/netmask pairs in |
290 | CIDR format. | 290 | CIDR format. |
291 | 291 | ||
292 | -o Causes ssh-keygen to save private keys using the new OpenSSH | ||
293 | format rather than the more compatible PEM format. The new | ||
294 | format has increased resistance to brute-force password cracking | ||
295 | but is not supported by versions of OpenSSH prior to 6.5. | ||
296 | Ed25519 keys always use the new private key format. | ||
297 | |||
298 | -P passphrase | 292 | -P passphrase |
299 | Provides the (old) passphrase. | 293 | Provides the (old) passphrase. |
300 | 294 | ||
@@ -577,4 +571,4 @@ AUTHORS | |||
577 | created OpenSSH. Markus Friedl contributed the support for SSH protocol | 571 | created OpenSSH. Markus Friedl contributed the support for SSH protocol |
578 | versions 1.5 and 2.0. | 572 | versions 1.5 and 2.0. |
579 | 573 | ||
580 | OpenBSD 6.2 March 12, 2018 OpenBSD 6.2 | 574 | OpenBSD 6.4 August 8, 2018 OpenBSD 6.4 |
diff --git a/ssh-keygen.1 b/ssh-keygen.1 index 3525d7d17..dd6e7e5a8 100644 --- a/ssh-keygen.1 +++ b/ssh-keygen.1 | |||
@@ -1,4 +1,4 @@ | |||
1 | .\" $OpenBSD: ssh-keygen.1,v 1.147 2018/03/12 00:52:01 djm Exp $ | 1 | .\" $OpenBSD: ssh-keygen.1,v 1.148 2018/08/08 01:16:01 djm Exp $ |
2 | .\" | 2 | .\" |
3 | .\" Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | .\" Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | .\" Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | .\" Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -35,7 +35,7 @@ | |||
35 | .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | 35 | .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
36 | .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 36 | .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
37 | .\" | 37 | .\" |
38 | .Dd $Mdocdate: March 12 2018 $ | 38 | .Dd $Mdocdate: August 8 2018 $ |
39 | .Dt SSH-KEYGEN 1 | 39 | .Dt SSH-KEYGEN 1 |
40 | .Os | 40 | .Os |
41 | .Sh NAME | 41 | .Sh NAME |
@@ -233,10 +233,8 @@ This is used by | |||
233 | .Pa /etc/rc | 233 | .Pa /etc/rc |
234 | to generate new host keys. | 234 | to generate new host keys. |
235 | .It Fl a Ar rounds | 235 | .It Fl a Ar rounds |
236 | When saving a new-format private key (i.e. an ed25519 key or when the | 236 | When saving a private key this option specifies the number of KDF |
237 | .Fl o | 237 | (key derivation function) rounds used. |
238 | flag is set), this option specifies the number of KDF (key derivation function) | ||
239 | rounds used. | ||
240 | Higher numbers result in slower passphrase verification and increased | 238 | Higher numbers result in slower passphrase verification and increased |
241 | resistance to brute-force password cracking (should the keys be stolen). | 239 | resistance to brute-force password cracking (should the keys be stolen). |
242 | .Pp | 240 | .Pp |
@@ -264,8 +262,6 @@ flag will be ignored. | |||
264 | Provides a new comment. | 262 | Provides a new comment. |
265 | .It Fl c | 263 | .It Fl c |
266 | Requests changing the comment in the private and public key files. | 264 | Requests changing the comment in the private and public key files. |
267 | This operation is only supported for keys stored in the | ||
268 | newer OpenSSH format. | ||
269 | The program will prompt for the file containing the private keys, for | 265 | The program will prompt for the file containing the private keys, for |
270 | the passphrase if the key has one, and for the new comment. | 266 | the passphrase if the key has one, and for the new comment. |
271 | .It Fl D Ar pkcs11 | 267 | .It Fl D Ar pkcs11 |
@@ -410,6 +406,10 @@ or | |||
410 | (PEM public key). | 406 | (PEM public key). |
411 | The default conversion format is | 407 | The default conversion format is |
412 | .Dq RFC4716 . | 408 | .Dq RFC4716 . |
409 | Setting a format of | ||
410 | .Dq PEM | ||
411 | when generating or updating a supported private key type will cause the | ||
412 | key to be stored in the legacy PEM private key format. | ||
413 | .It Fl N Ar new_passphrase | 413 | .It Fl N Ar new_passphrase |
414 | Provides the new passphrase. | 414 | Provides the new passphrase. |
415 | .It Fl n Ar principals | 415 | .It Fl n Ar principals |
@@ -504,14 +504,6 @@ The | |||
504 | is a comma-separated list of one or more address/netmask pairs in CIDR | 504 | is a comma-separated list of one or more address/netmask pairs in CIDR |
505 | format. | 505 | format. |
506 | .El | 506 | .El |
507 | .It Fl o | ||
508 | Causes | ||
509 | .Nm | ||
510 | to save private keys using the new OpenSSH format rather than | ||
511 | the more compatible PEM format. | ||
512 | The new format has increased resistance to brute-force password cracking | ||
513 | but is not supported by versions of OpenSSH prior to 6.5. | ||
514 | Ed25519 keys always use the new private key format. | ||
515 | .It Fl P Ar passphrase | 507 | .It Fl P Ar passphrase |
516 | Provides the (old) passphrase. | 508 | Provides the (old) passphrase. |
517 | .It Fl p | 509 | .It Fl p |
diff --git a/ssh-keygen.c b/ssh-keygen.c index 9aac64fc3..22860ad90 100644 --- a/ssh-keygen.c +++ b/ssh-keygen.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssh-keygen.c,v 1.314 2018/03/12 00:52:01 djm Exp $ */ | 1 | /* $OpenBSD: ssh-keygen.c,v 1.319 2018/08/08 01:16:01 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1994 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1994 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -38,6 +38,7 @@ | |||
38 | #include <unistd.h> | 38 | #include <unistd.h> |
39 | #include <limits.h> | 39 | #include <limits.h> |
40 | #include <locale.h> | 40 | #include <locale.h> |
41 | #include <time.h> | ||
41 | 42 | ||
42 | #include "xmalloc.h" | 43 | #include "xmalloc.h" |
43 | #include "sshkey.h" | 44 | #include "sshkey.h" |
@@ -178,7 +179,7 @@ char *key_type_name = NULL; | |||
178 | char *pkcs11provider = NULL; | 179 | char *pkcs11provider = NULL; |
179 | 180 | ||
180 | /* Use new OpenSSH private key format when writing SSH2 keys instead of PEM */ | 181 | /* Use new OpenSSH private key format when writing SSH2 keys instead of PEM */ |
181 | int use_new_format = 0; | 182 | int use_new_format = 1; |
182 | 183 | ||
183 | /* Cipher for new-format private keys */ | 184 | /* Cipher for new-format private keys */ |
184 | char *new_format_cipher = NULL; | 185 | char *new_format_cipher = NULL; |
@@ -870,7 +871,8 @@ do_fingerprint(struct passwd *pw) | |||
870 | { | 871 | { |
871 | FILE *f; | 872 | FILE *f; |
872 | struct sshkey *public = NULL; | 873 | struct sshkey *public = NULL; |
873 | char *comment = NULL, *cp, *ep, line[SSH_MAX_PUBKEY_BYTES]; | 874 | char *comment = NULL, *cp, *ep, *line = NULL; |
875 | size_t linesize = 0; | ||
874 | int i, invalid = 1; | 876 | int i, invalid = 1; |
875 | const char *path; | 877 | const char *path; |
876 | u_long lnum = 0; | 878 | u_long lnum = 0; |
@@ -885,7 +887,8 @@ do_fingerprint(struct passwd *pw) | |||
885 | } else if ((f = fopen(path, "r")) == NULL) | 887 | } else if ((f = fopen(path, "r")) == NULL) |
886 | fatal("%s: %s: %s", __progname, path, strerror(errno)); | 888 | fatal("%s: %s: %s", __progname, path, strerror(errno)); |
887 | 889 | ||
888 | while (read_keyfile_line(f, path, line, sizeof(line), &lnum) == 0) { | 890 | while (getline(&line, &linesize, f) != -1) { |
891 | lnum++; | ||
889 | cp = line; | 892 | cp = line; |
890 | cp[strcspn(cp, "\n")] = '\0'; | 893 | cp[strcspn(cp, "\n")] = '\0'; |
891 | /* Trim leading space and comments */ | 894 | /* Trim leading space and comments */ |
@@ -905,6 +908,7 @@ do_fingerprint(struct passwd *pw) | |||
905 | */ | 908 | */ |
906 | if (lnum == 1 && strcmp(identity_file, "-") != 0 && | 909 | if (lnum == 1 && strcmp(identity_file, "-") != 0 && |
907 | strstr(cp, "PRIVATE KEY") != NULL) { | 910 | strstr(cp, "PRIVATE KEY") != NULL) { |
911 | free(line); | ||
908 | fclose(f); | 912 | fclose(f); |
909 | fingerprint_private(path); | 913 | fingerprint_private(path); |
910 | exit(0); | 914 | exit(0); |
@@ -951,6 +955,7 @@ do_fingerprint(struct passwd *pw) | |||
951 | invalid = 0; /* One good key in the file is sufficient */ | 955 | invalid = 0; /* One good key in the file is sufficient */ |
952 | } | 956 | } |
953 | fclose(f); | 957 | fclose(f); |
958 | free(line); | ||
954 | 959 | ||
955 | if (invalid) | 960 | if (invalid) |
956 | fatal("%s is not a public key file.", path); | 961 | fatal("%s is not a public key file.", path); |
@@ -1254,13 +1259,12 @@ do_known_hosts(struct passwd *pw, const char *name) | |||
1254 | } | 1259 | } |
1255 | inplace = 1; | 1260 | inplace = 1; |
1256 | } | 1261 | } |
1257 | |||
1258 | /* XXX support identity_file == "-" for stdin */ | 1262 | /* XXX support identity_file == "-" for stdin */ |
1259 | foreach_options = find_host ? HKF_WANT_MATCH : 0; | 1263 | foreach_options = find_host ? HKF_WANT_MATCH : 0; |
1260 | foreach_options |= print_fingerprint ? HKF_WANT_PARSE_KEY : 0; | 1264 | foreach_options |= print_fingerprint ? HKF_WANT_PARSE_KEY : 0; |
1261 | if ((r = hostkeys_foreach(identity_file, | 1265 | if ((r = hostkeys_foreach(identity_file, (find_host || !hash_hosts) ? |
1262 | hash_hosts ? known_hosts_hash : known_hosts_find_delete, &ctx, | 1266 | known_hosts_find_delete : known_hosts_hash, &ctx, name, NULL, |
1263 | name, NULL, foreach_options)) != 0) { | 1267 | foreach_options)) != 0) { |
1264 | if (inplace) | 1268 | if (inplace) |
1265 | unlink(tmp); | 1269 | unlink(tmp); |
1266 | fatal("%s: hostkeys_foreach failed: %s", __func__, ssh_err(r)); | 1270 | fatal("%s: hostkeys_foreach failed: %s", __func__, ssh_err(r)); |
@@ -2005,8 +2009,9 @@ do_show_cert(struct passwd *pw) | |||
2005 | struct stat st; | 2009 | struct stat st; |
2006 | int r, is_stdin = 0, ok = 0; | 2010 | int r, is_stdin = 0, ok = 0; |
2007 | FILE *f; | 2011 | FILE *f; |
2008 | char *cp, line[SSH_MAX_PUBKEY_BYTES]; | 2012 | char *cp, *line = NULL; |
2009 | const char *path; | 2013 | const char *path; |
2014 | size_t linesize = 0; | ||
2010 | u_long lnum = 0; | 2015 | u_long lnum = 0; |
2011 | 2016 | ||
2012 | if (!have_identity) | 2017 | if (!have_identity) |
@@ -2022,7 +2027,8 @@ do_show_cert(struct passwd *pw) | |||
2022 | } else if ((f = fopen(identity_file, "r")) == NULL) | 2027 | } else if ((f = fopen(identity_file, "r")) == NULL) |
2023 | fatal("fopen %s: %s", identity_file, strerror(errno)); | 2028 | fatal("fopen %s: %s", identity_file, strerror(errno)); |
2024 | 2029 | ||
2025 | while (read_keyfile_line(f, path, line, sizeof(line), &lnum) == 0) { | 2030 | while (getline(&line, &linesize, f) != -1) { |
2031 | lnum++; | ||
2026 | sshkey_free(key); | 2032 | sshkey_free(key); |
2027 | key = NULL; | 2033 | key = NULL; |
2028 | /* Trim leading space and comments */ | 2034 | /* Trim leading space and comments */ |
@@ -2047,6 +2053,7 @@ do_show_cert(struct passwd *pw) | |||
2047 | printf("%s:%lu:\n", path, lnum); | 2053 | printf("%s:%lu:\n", path, lnum); |
2048 | print_cert(key); | 2054 | print_cert(key); |
2049 | } | 2055 | } |
2056 | free(line); | ||
2050 | sshkey_free(key); | 2057 | sshkey_free(key); |
2051 | fclose(f); | 2058 | fclose(f); |
2052 | exit(ok ? 0 : 1); | 2059 | exit(ok ? 0 : 1); |
@@ -2078,7 +2085,8 @@ update_krl_from_file(struct passwd *pw, const char *file, int wild_ca, | |||
2078 | { | 2085 | { |
2079 | struct sshkey *key = NULL; | 2086 | struct sshkey *key = NULL; |
2080 | u_long lnum = 0; | 2087 | u_long lnum = 0; |
2081 | char *path, *cp, *ep, line[SSH_MAX_PUBKEY_BYTES]; | 2088 | char *path, *cp, *ep, *line = NULL; |
2089 | size_t linesize = 0; | ||
2082 | unsigned long long serial, serial2; | 2090 | unsigned long long serial, serial2; |
2083 | int i, was_explicit_key, was_sha1, r; | 2091 | int i, was_explicit_key, was_sha1, r; |
2084 | FILE *krl_spec; | 2092 | FILE *krl_spec; |
@@ -2093,8 +2101,8 @@ update_krl_from_file(struct passwd *pw, const char *file, int wild_ca, | |||
2093 | 2101 | ||
2094 | if (!quiet) | 2102 | if (!quiet) |
2095 | printf("Revoking from %s\n", path); | 2103 | printf("Revoking from %s\n", path); |
2096 | while (read_keyfile_line(krl_spec, path, line, sizeof(line), | 2104 | while (getline(&line, &linesize, krl_spec) != -1) { |
2097 | &lnum) == 0) { | 2105 | lnum++; |
2098 | was_explicit_key = was_sha1 = 0; | 2106 | was_explicit_key = was_sha1 = 0; |
2099 | cp = line + strspn(line, " \t"); | 2107 | cp = line + strspn(line, " \t"); |
2100 | /* Trim trailing space, comments and strip \n */ | 2108 | /* Trim trailing space, comments and strip \n */ |
@@ -2194,6 +2202,7 @@ update_krl_from_file(struct passwd *pw, const char *file, int wild_ca, | |||
2194 | } | 2202 | } |
2195 | if (strcmp(path, "-") != 0) | 2203 | if (strcmp(path, "-") != 0) |
2196 | fclose(krl_spec); | 2204 | fclose(krl_spec); |
2205 | free(line); | ||
2197 | free(path); | 2206 | free(path); |
2198 | } | 2207 | } |
2199 | 2208 | ||
@@ -2247,7 +2256,7 @@ do_gen_krl(struct passwd *pw, int updating, int argc, char **argv) | |||
2247 | fatal("Couldn't generate KRL"); | 2256 | fatal("Couldn't generate KRL"); |
2248 | if ((fd = open(identity_file, O_WRONLY|O_CREAT|O_TRUNC, 0644)) == -1) | 2257 | if ((fd = open(identity_file, O_WRONLY|O_CREAT|O_TRUNC, 0644)) == -1) |
2249 | fatal("open %s: %s", identity_file, strerror(errno)); | 2258 | fatal("open %s: %s", identity_file, strerror(errno)); |
2250 | if (atomicio(vwrite, fd, (void *)sshbuf_ptr(kbuf), sshbuf_len(kbuf)) != | 2259 | if (atomicio(vwrite, fd, sshbuf_mutable_ptr(kbuf), sshbuf_len(kbuf)) != |
2251 | sshbuf_len(kbuf)) | 2260 | sshbuf_len(kbuf)) |
2252 | fatal("write %s: %s", identity_file, strerror(errno)); | 2261 | fatal("write %s: %s", identity_file, strerror(errno)); |
2253 | close(fd); | 2262 | close(fd); |
@@ -2425,6 +2434,7 @@ main(int argc, char **argv) | |||
2425 | } | 2434 | } |
2426 | if (strcasecmp(optarg, "PEM") == 0) { | 2435 | if (strcasecmp(optarg, "PEM") == 0) { |
2427 | convert_format = FMT_PEM; | 2436 | convert_format = FMT_PEM; |
2437 | use_new_format = 0; | ||
2428 | break; | 2438 | break; |
2429 | } | 2439 | } |
2430 | fatal("Unsupported conversion format \"%s\"", optarg); | 2440 | fatal("Unsupported conversion format \"%s\"", optarg); |
@@ -2432,7 +2442,7 @@ main(int argc, char **argv) | |||
2432 | cert_principals = optarg; | 2442 | cert_principals = optarg; |
2433 | break; | 2443 | break; |
2434 | case 'o': | 2444 | case 'o': |
2435 | use_new_format = 1; | 2445 | /* no-op; new format is already the default */ |
2436 | break; | 2446 | break; |
2437 | case 'p': | 2447 | case 'p': |
2438 | change_passphrase = 1; | 2448 | change_passphrase = 1; |
diff --git a/ssh-keyscan.0 b/ssh-keyscan.0 index c0278ee0a..497ac0d9e 100644 --- a/ssh-keyscan.0 +++ b/ssh-keyscan.0 | |||
@@ -93,4 +93,4 @@ AUTHORS | |||
93 | Davison <wayned@users.sourceforge.net> added support for protocol version | 93 | Davison <wayned@users.sourceforge.net> added support for protocol version |
94 | 2. | 94 | 2. |
95 | 95 | ||
96 | OpenBSD 6.2 March 5, 2018 OpenBSD 6.2 | 96 | OpenBSD 6.4 March 5, 2018 OpenBSD 6.4 |
diff --git a/ssh-keyscan.c b/ssh-keyscan.c index 381fb0844..38b1c548b 100644 --- a/ssh-keyscan.c +++ b/ssh-keyscan.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssh-keyscan.c,v 1.119 2018/03/02 21:40:15 jmc Exp $ */ | 1 | /* $OpenBSD: ssh-keyscan.c,v 1.120 2018/06/06 18:29:18 markus Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright 1995, 1996 by David Mazieres <dm@lcs.mit.edu>. | 3 | * Copyright 1995, 1996 by David Mazieres <dm@lcs.mit.edu>. |
4 | * | 4 | * |
@@ -646,9 +646,9 @@ main(int argc, char **argv) | |||
646 | { | 646 | { |
647 | int debug_flag = 0, log_level = SYSLOG_LEVEL_INFO; | 647 | int debug_flag = 0, log_level = SYSLOG_LEVEL_INFO; |
648 | int opt, fopt_count = 0, j; | 648 | int opt, fopt_count = 0, j; |
649 | char *tname, *cp, line[NI_MAXHOST]; | 649 | char *tname, *cp, *line = NULL; |
650 | size_t linesize = 0; | ||
650 | FILE *fp; | 651 | FILE *fp; |
651 | u_long linenum; | ||
652 | 652 | ||
653 | extern int optind; | 653 | extern int optind; |
654 | extern char *optarg; | 654 | extern char *optarg; |
@@ -769,11 +769,8 @@ main(int argc, char **argv) | |||
769 | else if ((fp = fopen(argv[j], "r")) == NULL) | 769 | else if ((fp = fopen(argv[j], "r")) == NULL) |
770 | fatal("%s: %s: %s", __progname, argv[j], | 770 | fatal("%s: %s: %s", __progname, argv[j], |
771 | strerror(errno)); | 771 | strerror(errno)); |
772 | linenum = 0; | ||
773 | 772 | ||
774 | while (read_keyfile_line(fp, | 773 | while (getline(&line, &linesize, fp) != -1) { |
775 | argv[j] == NULL ? "(stdin)" : argv[j], line, sizeof(line), | ||
776 | &linenum) != -1) { | ||
777 | /* Chomp off trailing whitespace and comments */ | 774 | /* Chomp off trailing whitespace and comments */ |
778 | if ((cp = strchr(line, '#')) == NULL) | 775 | if ((cp = strchr(line, '#')) == NULL) |
779 | cp = line + strlen(line) - 1; | 776 | cp = line + strlen(line) - 1; |
@@ -798,6 +795,7 @@ main(int argc, char **argv) | |||
798 | 795 | ||
799 | fclose(fp); | 796 | fclose(fp); |
800 | } | 797 | } |
798 | free(line); | ||
801 | 799 | ||
802 | while (optind < argc) | 800 | while (optind < argc) |
803 | do_host(argv[optind++]); | 801 | do_host(argv[optind++]); |
diff --git a/ssh-keysign.0 b/ssh-keysign.0 index d855ad07a..db4355d29 100644 --- a/ssh-keysign.0 +++ b/ssh-keysign.0 | |||
@@ -49,4 +49,4 @@ HISTORY | |||
49 | AUTHORS | 49 | AUTHORS |
50 | Markus Friedl <markus@openbsd.org> | 50 | Markus Friedl <markus@openbsd.org> |
51 | 51 | ||
52 | OpenBSD 6.2 February 17, 2016 OpenBSD 6.2 | 52 | OpenBSD 6.4 February 17, 2016 OpenBSD 6.4 |
diff --git a/ssh-keysign.c b/ssh-keysign.c index 78bb66b08..744ecb4f9 100644 --- a/ssh-keysign.c +++ b/ssh-keysign.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssh-keysign.c,v 1.54 2018/02/23 15:58:38 markus Exp $ */ | 1 | /* $OpenBSD: ssh-keysign.c,v 1.55 2018/07/27 05:34:42 dtucker Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2002 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2002 Markus Friedl. All rights reserved. |
4 | * | 4 | * |
@@ -62,11 +62,6 @@ struct ssh *active_state = NULL; /* XXX needed for linking */ | |||
62 | 62 | ||
63 | extern char *__progname; | 63 | extern char *__progname; |
64 | 64 | ||
65 | /* XXX readconf.c needs these */ | ||
66 | uid_t original_real_uid; | ||
67 | |||
68 | extern char *__progname; | ||
69 | |||
70 | static int | 65 | static int |
71 | valid_request(struct passwd *pw, char *host, struct sshkey **ret, | 66 | valid_request(struct passwd *pw, char *host, struct sshkey **ret, |
72 | u_char *data, size_t datalen) | 67 | u_char *data, size_t datalen) |
@@ -201,8 +196,7 @@ main(int argc, char **argv) | |||
201 | key_fd[i++] = open(_PATH_HOST_XMSS_KEY_FILE, O_RDONLY); | 196 | key_fd[i++] = open(_PATH_HOST_XMSS_KEY_FILE, O_RDONLY); |
202 | key_fd[i++] = open(_PATH_HOST_RSA_KEY_FILE, O_RDONLY); | 197 | key_fd[i++] = open(_PATH_HOST_RSA_KEY_FILE, O_RDONLY); |
203 | 198 | ||
204 | original_real_uid = getuid(); /* XXX readconf.c needs this */ | 199 | if ((pw = getpwuid(getuid())) == NULL) |
205 | if ((pw = getpwuid(original_real_uid)) == NULL) | ||
206 | fatal("getpwuid failed"); | 200 | fatal("getpwuid failed"); |
207 | pw = pwcopy(pw); | 201 | pw = pwcopy(pw); |
208 | 202 | ||
diff --git a/ssh-pkcs11-client.c b/ssh-pkcs11-client.c index fc7582827..028b272cb 100644 --- a/ssh-pkcs11-client.c +++ b/ssh-pkcs11-client.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssh-pkcs11-client.c,v 1.8 2018/02/05 05:37:46 tb Exp $ */ | 1 | /* $OpenBSD: ssh-pkcs11-client.c,v 1.10 2018/07/09 21:59:10 markus Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2010 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2010 Markus Friedl. All rights reserved. |
4 | * | 4 | * |
@@ -34,13 +34,14 @@ | |||
34 | 34 | ||
35 | #include "pathnames.h" | 35 | #include "pathnames.h" |
36 | #include "xmalloc.h" | 36 | #include "xmalloc.h" |
37 | #include "buffer.h" | 37 | #include "sshbuf.h" |
38 | #include "log.h" | 38 | #include "log.h" |
39 | #include "misc.h" | 39 | #include "misc.h" |
40 | #include "key.h" | 40 | #include "sshkey.h" |
41 | #include "authfd.h" | 41 | #include "authfd.h" |
42 | #include "atomicio.h" | 42 | #include "atomicio.h" |
43 | #include "ssh-pkcs11.h" | 43 | #include "ssh-pkcs11.h" |
44 | #include "ssherr.h" | ||
44 | 45 | ||
45 | /* borrows code from sftp-server and ssh-agent */ | 46 | /* borrows code from sftp-server and ssh-agent */ |
46 | 47 | ||
@@ -48,34 +49,37 @@ int fd = -1; | |||
48 | pid_t pid = -1; | 49 | pid_t pid = -1; |
49 | 50 | ||
50 | static void | 51 | static void |
51 | send_msg(Buffer *m) | 52 | send_msg(struct sshbuf *m) |
52 | { | 53 | { |
53 | u_char buf[4]; | 54 | u_char buf[4]; |
54 | int mlen = buffer_len(m); | 55 | size_t mlen = sshbuf_len(m); |
56 | int r; | ||
55 | 57 | ||
56 | put_u32(buf, mlen); | 58 | POKE_U32(buf, mlen); |
57 | if (atomicio(vwrite, fd, buf, 4) != 4 || | 59 | if (atomicio(vwrite, fd, buf, 4) != 4 || |
58 | atomicio(vwrite, fd, buffer_ptr(m), | 60 | atomicio(vwrite, fd, sshbuf_mutable_ptr(m), |
59 | buffer_len(m)) != buffer_len(m)) | 61 | sshbuf_len(m)) != sshbuf_len(m)) |
60 | error("write to helper failed"); | 62 | error("write to helper failed"); |
61 | buffer_consume(m, mlen); | 63 | if ((r = sshbuf_consume(m, mlen)) != 0) |
64 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
62 | } | 65 | } |
63 | 66 | ||
64 | static int | 67 | static int |
65 | recv_msg(Buffer *m) | 68 | recv_msg(struct sshbuf *m) |
66 | { | 69 | { |
67 | u_int l, len; | 70 | u_int l, len; |
68 | u_char buf[1024]; | 71 | u_char c, buf[1024]; |
72 | int r; | ||
69 | 73 | ||
70 | if ((len = atomicio(read, fd, buf, 4)) != 4) { | 74 | if ((len = atomicio(read, fd, buf, 4)) != 4) { |
71 | error("read from helper failed: %u", len); | 75 | error("read from helper failed: %u", len); |
72 | return (0); /* XXX */ | 76 | return (0); /* XXX */ |
73 | } | 77 | } |
74 | len = get_u32(buf); | 78 | len = PEEK_U32(buf); |
75 | if (len > 256 * 1024) | 79 | if (len > 256 * 1024) |
76 | fatal("response too long: %u", len); | 80 | fatal("response too long: %u", len); |
77 | /* read len bytes into m */ | 81 | /* read len bytes into m */ |
78 | buffer_clear(m); | 82 | sshbuf_reset(m); |
79 | while (len > 0) { | 83 | while (len > 0) { |
80 | l = len; | 84 | l = len; |
81 | if (l > sizeof(buf)) | 85 | if (l > sizeof(buf)) |
@@ -84,10 +88,13 @@ recv_msg(Buffer *m) | |||
84 | error("response from helper failed."); | 88 | error("response from helper failed."); |
85 | return (0); /* XXX */ | 89 | return (0); /* XXX */ |
86 | } | 90 | } |
87 | buffer_append(m, buf, l); | 91 | if ((r = sshbuf_put(m, buf, l)) != 0) |
92 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
88 | len -= l; | 93 | len -= l; |
89 | } | 94 | } |
90 | return (buffer_get_char(m)); | 95 | if ((r = sshbuf_get_u8(m, &c)) != 0) |
96 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
97 | return c; | ||
91 | } | 98 | } |
92 | 99 | ||
93 | int | 100 | int |
@@ -109,34 +116,39 @@ pkcs11_rsa_private_encrypt(int flen, const u_char *from, u_char *to, RSA *rsa, | |||
109 | { | 116 | { |
110 | struct sshkey key; /* XXX */ | 117 | struct sshkey key; /* XXX */ |
111 | u_char *blob, *signature = NULL; | 118 | u_char *blob, *signature = NULL; |
112 | u_int blen, slen = 0; | 119 | size_t blen, slen = 0; |
113 | int ret = -1; | 120 | int r, ret = -1; |
114 | Buffer msg; | 121 | struct sshbuf *msg; |
115 | 122 | ||
116 | if (padding != RSA_PKCS1_PADDING) | 123 | if (padding != RSA_PKCS1_PADDING) |
117 | return (-1); | 124 | return (-1); |
118 | key.type = KEY_RSA; | 125 | key.type = KEY_RSA; |
119 | key.rsa = rsa; | 126 | key.rsa = rsa; |
120 | if (key_to_blob(&key, &blob, &blen) == 0) | 127 | if ((r = sshkey_to_blob(&key, &blob, &blen)) != 0) { |
128 | error("%s: sshkey_to_blob: %s", __func__, ssh_err(r)); | ||
121 | return -1; | 129 | return -1; |
122 | buffer_init(&msg); | 130 | } |
123 | buffer_put_char(&msg, SSH2_AGENTC_SIGN_REQUEST); | 131 | if ((msg = sshbuf_new()) == NULL) |
124 | buffer_put_string(&msg, blob, blen); | 132 | fatal("%s: sshbuf_new failed", __func__); |
125 | buffer_put_string(&msg, from, flen); | 133 | if ((r = sshbuf_put_u8(msg, SSH2_AGENTC_SIGN_REQUEST)) != 0 || |
126 | buffer_put_int(&msg, 0); | 134 | (r = sshbuf_put_string(msg, blob, blen)) != 0 || |
135 | (r = sshbuf_put_string(msg, from, flen)) != 0 || | ||
136 | (r = sshbuf_put_u32(msg, 0)) != 0) | ||
137 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
127 | free(blob); | 138 | free(blob); |
128 | send_msg(&msg); | 139 | send_msg(msg); |
129 | buffer_clear(&msg); | 140 | sshbuf_reset(msg); |
130 | 141 | ||
131 | if (recv_msg(&msg) == SSH2_AGENT_SIGN_RESPONSE) { | 142 | if (recv_msg(msg) == SSH2_AGENT_SIGN_RESPONSE) { |
132 | signature = buffer_get_string(&msg, &slen); | 143 | if ((r = sshbuf_get_string(msg, &signature, &slen)) != 0) |
133 | if (slen <= (u_int)RSA_size(rsa)) { | 144 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
145 | if (slen <= (size_t)RSA_size(rsa)) { | ||
134 | memcpy(to, signature, slen); | 146 | memcpy(to, signature, slen); |
135 | ret = slen; | 147 | ret = slen; |
136 | } | 148 | } |
137 | free(signature); | 149 | free(signature); |
138 | } | 150 | } |
139 | buffer_free(&msg); | 151 | sshbuf_free(msg); |
140 | return (ret); | 152 | return (ret); |
141 | } | 153 | } |
142 | 154 | ||
@@ -185,31 +197,39 @@ pkcs11_start_helper(void) | |||
185 | } | 197 | } |
186 | 198 | ||
187 | int | 199 | int |
188 | pkcs11_add_provider(char *name, char *pin, Key ***keysp) | 200 | pkcs11_add_provider(char *name, char *pin, struct sshkey ***keysp) |
189 | { | 201 | { |
190 | struct sshkey *k; | 202 | struct sshkey *k; |
191 | int i, nkeys; | 203 | int r; |
192 | u_char *blob; | 204 | u_char *blob; |
193 | u_int blen; | 205 | size_t blen; |
194 | Buffer msg; | 206 | u_int nkeys, i; |
207 | struct sshbuf *msg; | ||
195 | 208 | ||
196 | if (fd < 0 && pkcs11_start_helper() < 0) | 209 | if (fd < 0 && pkcs11_start_helper() < 0) |
197 | return (-1); | 210 | return (-1); |
198 | 211 | ||
199 | buffer_init(&msg); | 212 | if ((msg = sshbuf_new()) == NULL) |
200 | buffer_put_char(&msg, SSH_AGENTC_ADD_SMARTCARD_KEY); | 213 | fatal("%s: sshbuf_new failed", __func__); |
201 | buffer_put_cstring(&msg, name); | 214 | if ((r = sshbuf_put_u8(msg, SSH_AGENTC_ADD_SMARTCARD_KEY)) != 0 || |
202 | buffer_put_cstring(&msg, pin); | 215 | (r = sshbuf_put_cstring(msg, name)) != 0 || |
203 | send_msg(&msg); | 216 | (r = sshbuf_put_cstring(msg, pin)) != 0) |
204 | buffer_clear(&msg); | 217 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
218 | send_msg(msg); | ||
219 | sshbuf_reset(msg); | ||
205 | 220 | ||
206 | if (recv_msg(&msg) == SSH2_AGENT_IDENTITIES_ANSWER) { | 221 | if (recv_msg(msg) == SSH2_AGENT_IDENTITIES_ANSWER) { |
207 | nkeys = buffer_get_int(&msg); | 222 | if ((r = sshbuf_get_u32(msg, &nkeys)) != 0) |
208 | *keysp = xcalloc(nkeys, sizeof(Key *)); | 223 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
224 | *keysp = xcalloc(nkeys, sizeof(struct sshkey *)); | ||
209 | for (i = 0; i < nkeys; i++) { | 225 | for (i = 0; i < nkeys; i++) { |
210 | blob = buffer_get_string(&msg, &blen); | 226 | /* XXX clean up properly instead of fatal() */ |
211 | free(buffer_get_string(&msg, NULL)); | 227 | if ((r = sshbuf_get_string(msg, &blob, &blen)) != 0 || |
212 | k = key_from_blob(blob, blen); | 228 | (r = sshbuf_skip_string(msg)) != 0) |
229 | fatal("%s: buffer error: %s", | ||
230 | __func__, ssh_err(r)); | ||
231 | if ((r = sshkey_from_blob(blob, blen, &k)) != 0) | ||
232 | fatal("%s: bad key: %s", __func__, ssh_err(r)); | ||
213 | wrap_key(k->rsa); | 233 | wrap_key(k->rsa); |
214 | (*keysp)[i] = k; | 234 | (*keysp)[i] = k; |
215 | free(blob); | 235 | free(blob); |
@@ -217,26 +237,28 @@ pkcs11_add_provider(char *name, char *pin, Key ***keysp) | |||
217 | } else { | 237 | } else { |
218 | nkeys = -1; | 238 | nkeys = -1; |
219 | } | 239 | } |
220 | buffer_free(&msg); | 240 | sshbuf_free(msg); |
221 | return (nkeys); | 241 | return (nkeys); |
222 | } | 242 | } |
223 | 243 | ||
224 | int | 244 | int |
225 | pkcs11_del_provider(char *name) | 245 | pkcs11_del_provider(char *name) |
226 | { | 246 | { |
227 | int ret = -1; | 247 | int r, ret = -1; |
228 | Buffer msg; | 248 | struct sshbuf *msg; |
229 | 249 | ||
230 | buffer_init(&msg); | 250 | if ((msg = sshbuf_new()) == NULL) |
231 | buffer_put_char(&msg, SSH_AGENTC_REMOVE_SMARTCARD_KEY); | 251 | fatal("%s: sshbuf_new failed", __func__); |
232 | buffer_put_cstring(&msg, name); | 252 | if ((r = sshbuf_put_u8(msg, SSH_AGENTC_REMOVE_SMARTCARD_KEY)) != 0 || |
233 | buffer_put_cstring(&msg, ""); | 253 | (r = sshbuf_put_cstring(msg, name)) != 0 || |
234 | send_msg(&msg); | 254 | (r = sshbuf_put_cstring(msg, "")) != 0) |
235 | buffer_clear(&msg); | 255 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
256 | send_msg(msg); | ||
257 | sshbuf_reset(msg); | ||
236 | 258 | ||
237 | if (recv_msg(&msg) == SSH_AGENT_SUCCESS) | 259 | if (recv_msg(msg) == SSH_AGENT_SUCCESS) |
238 | ret = 0; | 260 | ret = 0; |
239 | buffer_free(&msg); | 261 | sshbuf_free(msg); |
240 | return (ret); | 262 | return (ret); |
241 | } | 263 | } |
242 | 264 | ||
diff --git a/ssh-pkcs11-helper.0 b/ssh-pkcs11-helper.0 index 93e5565b7..4d5c9843b 100644 --- a/ssh-pkcs11-helper.0 +++ b/ssh-pkcs11-helper.0 | |||
@@ -22,4 +22,4 @@ HISTORY | |||
22 | AUTHORS | 22 | AUTHORS |
23 | Markus Friedl <markus@openbsd.org> | 23 | Markus Friedl <markus@openbsd.org> |
24 | 24 | ||
25 | OpenBSD 6.2 July 16, 2013 OpenBSD 6.2 | 25 | OpenBSD 6.4 July 16, 2013 OpenBSD 6.4 |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssh-rsa.c,v 1.66 2018/02/14 16:27:24 jsing Exp $ */ | 1 | /* $OpenBSD: ssh-rsa.c,v 1.67 2018/07/03 11:39:54 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2000, 2003 Markus Friedl <markus@openbsd.org> | 3 | * Copyright (c) 2000, 2003 Markus Friedl <markus@openbsd.org> |
4 | * | 4 | * |
@@ -51,11 +51,14 @@ rsa_hash_alg_ident(int hash_alg) | |||
51 | return NULL; | 51 | return NULL; |
52 | } | 52 | } |
53 | 53 | ||
54 | /* | ||
55 | * Returns the hash algorithm ID for a given algorithm identifier as used | ||
56 | * inside the signature blob, | ||
57 | */ | ||
54 | static int | 58 | static int |
55 | rsa_hash_alg_from_ident(const char *ident) | 59 | rsa_hash_id_from_ident(const char *ident) |
56 | { | 60 | { |
57 | if (strcmp(ident, "ssh-rsa") == 0 || | 61 | if (strcmp(ident, "ssh-rsa") == 0) |
58 | strcmp(ident, "ssh-rsa-cert-v01@openssh.com") == 0) | ||
59 | return SSH_DIGEST_SHA1; | 62 | return SSH_DIGEST_SHA1; |
60 | if (strcmp(ident, "rsa-sha2-256") == 0) | 63 | if (strcmp(ident, "rsa-sha2-256") == 0) |
61 | return SSH_DIGEST_SHA256; | 64 | return SSH_DIGEST_SHA256; |
@@ -64,6 +67,27 @@ rsa_hash_alg_from_ident(const char *ident) | |||
64 | return -1; | 67 | return -1; |
65 | } | 68 | } |
66 | 69 | ||
70 | /* | ||
71 | * Return the hash algorithm ID for the specified key name. This includes | ||
72 | * all the cases of rsa_hash_id_from_ident() but also the certificate key | ||
73 | * types. | ||
74 | */ | ||
75 | static int | ||
76 | rsa_hash_id_from_keyname(const char *alg) | ||
77 | { | ||
78 | int r; | ||
79 | |||
80 | if ((r = rsa_hash_id_from_ident(alg)) != -1) | ||
81 | return r; | ||
82 | if (strcmp(alg, "ssh-rsa-cert-v01@openssh.com") == 0) | ||
83 | return SSH_DIGEST_SHA1; | ||
84 | if (strcmp(alg, "rsa-sha2-256-cert-v01@openssh.com") == 0) | ||
85 | return SSH_DIGEST_SHA256; | ||
86 | if (strcmp(alg, "rsa-sha2-512-cert-v01@openssh.com") == 0) | ||
87 | return SSH_DIGEST_SHA512; | ||
88 | return -1; | ||
89 | } | ||
90 | |||
67 | static int | 91 | static int |
68 | rsa_hash_alg_nid(int type) | 92 | rsa_hash_alg_nid(int type) |
69 | { | 93 | { |
@@ -135,7 +159,7 @@ ssh_rsa_sign(const struct sshkey *key, u_char **sigp, size_t *lenp, | |||
135 | if (alg_ident == NULL || strlen(alg_ident) == 0) | 159 | if (alg_ident == NULL || strlen(alg_ident) == 0) |
136 | hash_alg = SSH_DIGEST_SHA1; | 160 | hash_alg = SSH_DIGEST_SHA1; |
137 | else | 161 | else |
138 | hash_alg = rsa_hash_alg_from_ident(alg_ident); | 162 | hash_alg = rsa_hash_id_from_keyname(alg_ident); |
139 | if (key == NULL || key->rsa == NULL || hash_alg == -1 || | 163 | if (key == NULL || key->rsa == NULL || hash_alg == -1 || |
140 | sshkey_type_plain(key->type) != KEY_RSA) | 164 | sshkey_type_plain(key->type) != KEY_RSA) |
141 | return SSH_ERR_INVALID_ARGUMENT; | 165 | return SSH_ERR_INVALID_ARGUMENT; |
@@ -202,7 +226,7 @@ ssh_rsa_verify(const struct sshkey *key, | |||
202 | const char *alg) | 226 | const char *alg) |
203 | { | 227 | { |
204 | char *sigtype = NULL; | 228 | char *sigtype = NULL; |
205 | int hash_alg, ret = SSH_ERR_INTERNAL_ERROR; | 229 | int hash_alg, want_alg, ret = SSH_ERR_INTERNAL_ERROR; |
206 | size_t len = 0, diff, modlen, dlen; | 230 | size_t len = 0, diff, modlen, dlen; |
207 | struct sshbuf *b = NULL; | 231 | struct sshbuf *b = NULL; |
208 | u_char digest[SSH_DIGEST_MAX_LENGTH], *osigblob, *sigblob = NULL; | 232 | u_char digest[SSH_DIGEST_MAX_LENGTH], *osigblob, *sigblob = NULL; |
@@ -220,18 +244,24 @@ ssh_rsa_verify(const struct sshkey *key, | |||
220 | ret = SSH_ERR_INVALID_FORMAT; | 244 | ret = SSH_ERR_INVALID_FORMAT; |
221 | goto out; | 245 | goto out; |
222 | } | 246 | } |
223 | /* XXX djm: need cert types that reliably yield SHA-2 signatures */ | 247 | if ((hash_alg = rsa_hash_id_from_ident(sigtype)) == -1) { |
224 | if (alg != NULL && strcmp(alg, sigtype) != 0 && | ||
225 | strcmp(alg, "ssh-rsa-cert-v01@openssh.com") != 0) { | ||
226 | error("%s: RSA signature type mismatch: " | ||
227 | "expected %s received %s", __func__, alg, sigtype); | ||
228 | ret = SSH_ERR_SIGNATURE_INVALID; | ||
229 | goto out; | ||
230 | } | ||
231 | if ((hash_alg = rsa_hash_alg_from_ident(sigtype)) == -1) { | ||
232 | ret = SSH_ERR_KEY_TYPE_MISMATCH; | 248 | ret = SSH_ERR_KEY_TYPE_MISMATCH; |
233 | goto out; | 249 | goto out; |
234 | } | 250 | } |
251 | /* | ||
252 | * Allow ssh-rsa-cert-v01 certs to generate SHA2 signatures for | ||
253 | * legacy reasons, but otherwise the signature type should match. | ||
254 | */ | ||
255 | if (alg != NULL && strcmp(alg, "ssh-rsa-cert-v01@openssh.com") != 0) { | ||
256 | if ((want_alg = rsa_hash_id_from_keyname(alg)) == -1) { | ||
257 | ret = SSH_ERR_INVALID_ARGUMENT; | ||
258 | goto out; | ||
259 | } | ||
260 | if (hash_alg != want_alg) { | ||
261 | ret = SSH_ERR_SIGNATURE_INVALID; | ||
262 | goto out; | ||
263 | } | ||
264 | } | ||
235 | if (sshbuf_get_string(b, &sigblob, &len) != 0) { | 265 | if (sshbuf_get_string(b, &sigblob, &len) != 0) { |
236 | ret = SSH_ERR_INVALID_FORMAT; | 266 | ret = SSH_ERR_INVALID_FORMAT; |
237 | goto out; | 267 | goto out; |
@@ -269,7 +269,6 @@ DESCRIPTION | |||
269 | IdentitiesOnly | 269 | IdentitiesOnly |
270 | IdentityAgent | 270 | IdentityAgent |
271 | IdentityFile | 271 | IdentityFile |
272 | Include | ||
273 | IPQoS | 272 | IPQoS |
274 | KbdInteractiveAuthentication | 273 | KbdInteractiveAuthentication |
275 | KbdInteractiveDevices | 274 | KbdInteractiveDevices |
@@ -298,6 +297,7 @@ DESCRIPTION | |||
298 | SendEnv | 297 | SendEnv |
299 | ServerAliveInterval | 298 | ServerAliveInterval |
300 | ServerAliveCountMax | 299 | ServerAliveCountMax |
300 | SetEnv | ||
301 | StreamLocalBindMask | 301 | StreamLocalBindMask |
302 | StreamLocalBindUnlink | 302 | StreamLocalBindUnlink |
303 | StrictHostKeyChecking | 303 | StrictHostKeyChecking |
@@ -305,7 +305,6 @@ DESCRIPTION | |||
305 | Tunnel | 305 | Tunnel |
306 | TunnelDevice | 306 | TunnelDevice |
307 | UpdateHostKeys | 307 | UpdateHostKeys |
308 | UsePrivilegedPort | ||
309 | User | 308 | User |
310 | UserKnownHostsFile | 309 | UserKnownHostsFile |
311 | VerifyHostKeyDNS | 310 | VerifyHostKeyDNS |
@@ -405,9 +404,12 @@ DESCRIPTION | |||
405 | The devices may be specified by numerical ID or the keyword | 404 | The devices may be specified by numerical ID or the keyword |
406 | M-bM-^@M-^\anyM-bM-^@M-^], which uses the next available tunnel device. If | 405 | M-bM-^@M-^\anyM-bM-^@M-^], which uses the next available tunnel device. If |
407 | remote_tun is not specified, it defaults to M-bM-^@M-^\anyM-bM-^@M-^]. See also the | 406 | remote_tun is not specified, it defaults to M-bM-^@M-^\anyM-bM-^@M-^]. See also the |
408 | Tunnel and TunnelDevice directives in ssh_config(5). If the | 407 | Tunnel and TunnelDevice directives in ssh_config(5). |
409 | Tunnel directive is unset, it is set to the default tunnel mode, | 408 | |
410 | which is M-bM-^@M-^\point-to-pointM-bM-^@M-^]. | 409 | If the Tunnel directive is unset, it will be set to the default |
410 | tunnel mode, which is M-bM-^@M-^\point-to-pointM-bM-^@M-^]. If a different Tunnel | ||
411 | forwarding mode it desired, then it should be specified before | ||
412 | -w. | ||
411 | 413 | ||
412 | -X Enables X11 forwarding. This can also be specified on a per-host | 414 | -X Enables X11 forwarding. This can also be specified on a per-host |
413 | basis in a configuration file. | 415 | basis in a configuration file. |
@@ -973,4 +975,4 @@ AUTHORS | |||
973 | created OpenSSH. Markus Friedl contributed the support for SSH protocol | 975 | created OpenSSH. Markus Friedl contributed the support for SSH protocol |
974 | versions 1.5 and 2.0. | 976 | versions 1.5 and 2.0. |
975 | 977 | ||
976 | OpenBSD 6.2 February 23, 2018 OpenBSD 6.2 | 978 | OpenBSD 6.4 July 19, 2018 OpenBSD 6.4 |
@@ -33,8 +33,8 @@ | |||
33 | .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | 33 | .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
34 | .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 34 | .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
35 | .\" | 35 | .\" |
36 | .\" $OpenBSD: ssh.1,v 1.391 2018/02/23 07:38:09 jmc Exp $ | 36 | .\" $OpenBSD: ssh.1,v 1.396 2018/07/19 10:28:47 dtucker Exp $ |
37 | .Dd $Mdocdate: February 23 2018 $ | 37 | .Dd $Mdocdate: July 19 2018 $ |
38 | .Dt SSH 1 | 38 | .Dt SSH 1 |
39 | .Os | 39 | .Os |
40 | .Sh NAME | 40 | .Sh NAME |
@@ -499,7 +499,6 @@ For full details of the options listed below, and their possible values, see | |||
499 | .It IdentitiesOnly | 499 | .It IdentitiesOnly |
500 | .It IdentityAgent | 500 | .It IdentityAgent |
501 | .It IdentityFile | 501 | .It IdentityFile |
502 | .It Include | ||
503 | .It IPQoS | 502 | .It IPQoS |
504 | .It KbdInteractiveAuthentication | 503 | .It KbdInteractiveAuthentication |
505 | .It KbdInteractiveDevices | 504 | .It KbdInteractiveDevices |
@@ -528,6 +527,7 @@ For full details of the options listed below, and their possible values, see | |||
528 | .It SendEnv | 527 | .It SendEnv |
529 | .It ServerAliveInterval | 528 | .It ServerAliveInterval |
530 | .It ServerAliveCountMax | 529 | .It ServerAliveCountMax |
530 | .It SetEnv | ||
531 | .It StreamLocalBindMask | 531 | .It StreamLocalBindMask |
532 | .It StreamLocalBindUnlink | 532 | .It StreamLocalBindUnlink |
533 | .It StrictHostKeyChecking | 533 | .It StrictHostKeyChecking |
@@ -535,7 +535,6 @@ For full details of the options listed below, and their possible values, see | |||
535 | .It Tunnel | 535 | .It Tunnel |
536 | .It TunnelDevice | 536 | .It TunnelDevice |
537 | .It UpdateHostKeys | 537 | .It UpdateHostKeys |
538 | .It UsePrivilegedPort | ||
539 | .It User | 538 | .It User |
540 | .It UserKnownHostsFile | 539 | .It UserKnownHostsFile |
541 | .It VerifyHostKeyDNS | 540 | .It VerifyHostKeyDNS |
@@ -742,10 +741,15 @@ and | |||
742 | .Cm TunnelDevice | 741 | .Cm TunnelDevice |
743 | directives in | 742 | directives in |
744 | .Xr ssh_config 5 . | 743 | .Xr ssh_config 5 . |
744 | .Pp | ||
745 | If the | 745 | If the |
746 | .Cm Tunnel | 746 | .Cm Tunnel |
747 | directive is unset, it is set to the default tunnel mode, which is | 747 | directive is unset, it will be set to the default tunnel mode, which is |
748 | .Dq point-to-point . | 748 | .Dq point-to-point . |
749 | If a different | ||
750 | .Cm Tunnel | ||
751 | forwarding mode it desired, then it should be specified before | ||
752 | .Fl w . | ||
749 | .Pp | 753 | .Pp |
750 | .It Fl X | 754 | .It Fl X |
751 | Enables X11 forwarding. | 755 | Enables X11 forwarding. |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssh.c,v 1.475 2018/02/23 15:58:38 markus Exp $ */ | 1 | /* $OpenBSD: ssh.c,v 1.490 2018/07/27 05:34:42 dtucker Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -87,9 +87,9 @@ | |||
87 | #include "cipher.h" | 87 | #include "cipher.h" |
88 | #include "digest.h" | 88 | #include "digest.h" |
89 | #include "packet.h" | 89 | #include "packet.h" |
90 | #include "buffer.h" | 90 | #include "sshbuf.h" |
91 | #include "channels.h" | 91 | #include "channels.h" |
92 | #include "key.h" | 92 | #include "sshkey.h" |
93 | #include "authfd.h" | 93 | #include "authfd.h" |
94 | #include "authfile.h" | 94 | #include "authfile.h" |
95 | #include "pathnames.h" | 95 | #include "pathnames.h" |
@@ -104,7 +104,6 @@ | |||
104 | #include "sshpty.h" | 104 | #include "sshpty.h" |
105 | #include "match.h" | 105 | #include "match.h" |
106 | #include "msg.h" | 106 | #include "msg.h" |
107 | #include "uidswap.h" | ||
108 | #include "version.h" | 107 | #include "version.h" |
109 | #include "ssherr.h" | 108 | #include "ssherr.h" |
110 | #include "myproposal.h" | 109 | #include "myproposal.h" |
@@ -178,12 +177,8 @@ struct sockaddr_storage hostaddr; | |||
178 | /* Private host keys. */ | 177 | /* Private host keys. */ |
179 | Sensitive sensitive_data; | 178 | Sensitive sensitive_data; |
180 | 179 | ||
181 | /* Original real UID. */ | ||
182 | uid_t original_real_uid; | ||
183 | uid_t original_effective_uid; | ||
184 | |||
185 | /* command to be executed */ | 180 | /* command to be executed */ |
186 | Buffer command; | 181 | struct sshbuf *command; |
187 | 182 | ||
188 | /* Should we execute a command or invoke a subsystem? */ | 183 | /* Should we execute a command or invoke a subsystem? */ |
189 | int subsystem_flag = 0; | 184 | int subsystem_flag = 0; |
@@ -224,7 +219,7 @@ tilde_expand_paths(char **paths, u_int num_paths) | |||
224 | char *cp; | 219 | char *cp; |
225 | 220 | ||
226 | for (i = 0; i < num_paths; i++) { | 221 | for (i = 0; i < num_paths; i++) { |
227 | cp = tilde_expand_filename(paths[i], original_real_uid); | 222 | cp = tilde_expand_filename(paths[i], getuid()); |
228 | free(paths[i]); | 223 | free(paths[i]); |
229 | paths[i] = cp; | 224 | paths[i] = cp; |
230 | } | 225 | } |
@@ -504,6 +499,30 @@ resolve_canonicalize(char **hostp, int port) | |||
504 | } | 499 | } |
505 | 500 | ||
506 | /* | 501 | /* |
502 | * Check the result of hostkey loading, ignoring some errors and | ||
503 | * fatal()ing for others. | ||
504 | */ | ||
505 | static void | ||
506 | check_load(int r, const char *path, const char *message) | ||
507 | { | ||
508 | switch (r) { | ||
509 | case 0: | ||
510 | break; | ||
511 | case SSH_ERR_INTERNAL_ERROR: | ||
512 | case SSH_ERR_ALLOC_FAIL: | ||
513 | fatal("load %s \"%s\": %s", message, path, ssh_err(r)); | ||
514 | case SSH_ERR_SYSTEM_ERROR: | ||
515 | /* Ignore missing files */ | ||
516 | if (errno == ENOENT) | ||
517 | break; | ||
518 | /* FALLTHROUGH */ | ||
519 | default: | ||
520 | error("load %s \"%s\": %s", message, path, ssh_err(r)); | ||
521 | break; | ||
522 | } | ||
523 | } | ||
524 | |||
525 | /* | ||
507 | * Read per-user configuration file. Ignore the system wide config | 526 | * Read per-user configuration file. Ignore the system wide config |
508 | * file if the user specifies a config file on the command line. | 527 | * file if the user specifies a config file on the command line. |
509 | */ | 528 | */ |
@@ -597,35 +616,10 @@ main(int ac, char **av) | |||
597 | */ | 616 | */ |
598 | closefrom(STDERR_FILENO + 1); | 617 | closefrom(STDERR_FILENO + 1); |
599 | 618 | ||
600 | /* | ||
601 | * Save the original real uid. It will be needed later (uid-swapping | ||
602 | * may clobber the real uid). | ||
603 | */ | ||
604 | original_real_uid = getuid(); | ||
605 | original_effective_uid = geteuid(); | ||
606 | |||
607 | /* | ||
608 | * Use uid-swapping to give up root privileges for the duration of | ||
609 | * option processing. We will re-instantiate the rights when we are | ||
610 | * ready to create the privileged port, and will permanently drop | ||
611 | * them when the port has been created (actually, when the connection | ||
612 | * has been made, as we may need to create the port several times). | ||
613 | */ | ||
614 | PRIV_END; | ||
615 | |||
616 | #ifdef HAVE_SETRLIMIT | ||
617 | /* If we are installed setuid root be careful to not drop core. */ | ||
618 | if (original_real_uid != original_effective_uid) { | ||
619 | struct rlimit rlim; | ||
620 | rlim.rlim_cur = rlim.rlim_max = 0; | ||
621 | if (setrlimit(RLIMIT_CORE, &rlim) < 0) | ||
622 | fatal("setrlimit failed: %.100s", strerror(errno)); | ||
623 | } | ||
624 | #endif | ||
625 | /* Get user data. */ | 619 | /* Get user data. */ |
626 | pw = getpwuid(original_real_uid); | 620 | pw = getpwuid(getuid()); |
627 | if (!pw) { | 621 | if (!pw) { |
628 | logit("No user exists for uid %lu", (u_long)original_real_uid); | 622 | logit("No user exists for uid %lu", (u_long)getuid()); |
629 | exit(255); | 623 | exit(255); |
630 | } | 624 | } |
631 | /* Take a copy of the returned structure. */ | 625 | /* Take a copy of the returned structure. */ |
@@ -728,7 +722,6 @@ main(int ac, char **av) | |||
728 | fatal("Invalid multiplex command."); | 722 | fatal("Invalid multiplex command."); |
729 | break; | 723 | break; |
730 | case 'P': /* deprecated */ | 724 | case 'P': /* deprecated */ |
731 | options.use_privileged_port = 0; | ||
732 | break; | 725 | break; |
733 | case 'Q': | 726 | case 'Q': |
734 | cp = NULL; | 727 | cp = NULL; |
@@ -769,7 +762,7 @@ main(int ac, char **av) | |||
769 | options.gss_deleg_creds = 1; | 762 | options.gss_deleg_creds = 1; |
770 | break; | 763 | break; |
771 | case 'i': | 764 | case 'i': |
772 | p = tilde_expand_filename(optarg, original_real_uid); | 765 | p = tilde_expand_filename(optarg, getuid()); |
773 | if (stat(p, &st) < 0) | 766 | if (stat(p, &st) < 0) |
774 | fprintf(stderr, "Warning: Identity file %s " | 767 | fprintf(stderr, "Warning: Identity file %s " |
775 | "not accessible: %s.\n", p, | 768 | "not accessible: %s.\n", p, |
@@ -1042,7 +1035,8 @@ main(int ac, char **av) | |||
1042 | #endif | 1035 | #endif |
1043 | 1036 | ||
1044 | /* Initialize the command to execute on remote host. */ | 1037 | /* Initialize the command to execute on remote host. */ |
1045 | buffer_init(&command); | 1038 | if ((command = sshbuf_new()) == NULL) |
1039 | fatal("sshbuf_new failed"); | ||
1046 | 1040 | ||
1047 | /* | 1041 | /* |
1048 | * Save the command to execute on the remote host in a buffer. There | 1042 | * Save the command to execute on the remote host in a buffer. There |
@@ -1059,9 +1053,10 @@ main(int ac, char **av) | |||
1059 | } else { | 1053 | } else { |
1060 | /* A command has been specified. Store it into the buffer. */ | 1054 | /* A command has been specified. Store it into the buffer. */ |
1061 | for (i = 0; i < ac; i++) { | 1055 | for (i = 0; i < ac; i++) { |
1062 | if (i) | 1056 | if ((r = sshbuf_putf(command, "%s%s", |
1063 | buffer_append(&command, " ", 1); | 1057 | i ? " " : "", av[i])) != 0) |
1064 | buffer_append(&command, av[i], strlen(av[i])); | 1058 | fatal("%s: buffer error: %s", |
1059 | __func__, ssh_err(r)); | ||
1065 | } | 1060 | } |
1066 | } | 1061 | } |
1067 | 1062 | ||
@@ -1171,6 +1166,14 @@ main(int ac, char **av) | |||
1171 | */ | 1166 | */ |
1172 | if (options.jump_host != NULL) { | 1167 | if (options.jump_host != NULL) { |
1173 | char port_s[8]; | 1168 | char port_s[8]; |
1169 | const char *sshbin = argv0; | ||
1170 | |||
1171 | /* | ||
1172 | * Try to use SSH indicated by argv[0], but fall back to | ||
1173 | * "ssh" if it appears unavailable. | ||
1174 | */ | ||
1175 | if (strchr(argv0, '/') != NULL && access(argv0, X_OK) != 0) | ||
1176 | sshbin = "ssh"; | ||
1174 | 1177 | ||
1175 | /* Consistency check */ | 1178 | /* Consistency check */ |
1176 | if (options.proxy_command != NULL) | 1179 | if (options.proxy_command != NULL) |
@@ -1179,7 +1182,8 @@ main(int ac, char **av) | |||
1179 | options.proxy_use_fdpass = 0; | 1182 | options.proxy_use_fdpass = 0; |
1180 | snprintf(port_s, sizeof(port_s), "%d", options.jump_port); | 1183 | snprintf(port_s, sizeof(port_s), "%d", options.jump_port); |
1181 | xasprintf(&options.proxy_command, | 1184 | xasprintf(&options.proxy_command, |
1182 | "ssh%s%s%s%s%s%s%s%s%s%.*s -W '[%%h]:%%p' %s", | 1185 | "%s%s%s%s%s%s%s%s%s%s%.*s -W '[%%h]:%%p' %s", |
1186 | sshbin, | ||
1183 | /* Optional "-l user" argument if jump_user set */ | 1187 | /* Optional "-l user" argument if jump_user set */ |
1184 | options.jump_user == NULL ? "" : " -l ", | 1188 | options.jump_user == NULL ? "" : " -l ", |
1185 | options.jump_user == NULL ? "" : options.jump_user, | 1189 | options.jump_user == NULL ? "" : options.jump_user, |
@@ -1220,16 +1224,12 @@ main(int ac, char **av) | |||
1220 | } | 1224 | } |
1221 | if (options.connection_attempts <= 0) | 1225 | if (options.connection_attempts <= 0) |
1222 | fatal("Invalid number of ConnectionAttempts"); | 1226 | fatal("Invalid number of ConnectionAttempts"); |
1223 | #ifndef HAVE_CYGWIN | ||
1224 | if (original_effective_uid != 0) | ||
1225 | options.use_privileged_port = 0; | ||
1226 | #endif | ||
1227 | 1227 | ||
1228 | if (buffer_len(&command) != 0 && options.remote_command != NULL) | 1228 | if (sshbuf_len(command) != 0 && options.remote_command != NULL) |
1229 | fatal("Cannot execute command-line and remote command."); | 1229 | fatal("Cannot execute command-line and remote command."); |
1230 | 1230 | ||
1231 | /* Cannot fork to background if no command. */ | 1231 | /* Cannot fork to background if no command. */ |
1232 | if (fork_after_authentication_flag && buffer_len(&command) == 0 && | 1232 | if (fork_after_authentication_flag && sshbuf_len(command) == 0 && |
1233 | options.remote_command == NULL && !no_shell_flag) | 1233 | options.remote_command == NULL && !no_shell_flag) |
1234 | fatal("Cannot fork into background without a command " | 1234 | fatal("Cannot fork into background without a command " |
1235 | "to execute."); | 1235 | "to execute."); |
@@ -1242,7 +1242,7 @@ main(int ac, char **av) | |||
1242 | tty_flag = 1; | 1242 | tty_flag = 1; |
1243 | 1243 | ||
1244 | /* Allocate a tty by default if no command specified. */ | 1244 | /* Allocate a tty by default if no command specified. */ |
1245 | if (buffer_len(&command) == 0 && options.remote_command == NULL) | 1245 | if (sshbuf_len(command) == 0 && options.remote_command == NULL) |
1246 | tty_flag = options.request_tty != REQUEST_TTY_NO; | 1246 | tty_flag = options.request_tty != REQUEST_TTY_NO; |
1247 | 1247 | ||
1248 | /* Force no tty */ | 1248 | /* Force no tty */ |
@@ -1269,7 +1269,8 @@ main(int ac, char **av) | |||
1269 | strlcpy(shorthost, thishost, sizeof(shorthost)); | 1269 | strlcpy(shorthost, thishost, sizeof(shorthost)); |
1270 | shorthost[strcspn(thishost, ".")] = '\0'; | 1270 | shorthost[strcspn(thishost, ".")] = '\0'; |
1271 | snprintf(portstr, sizeof(portstr), "%d", options.port); | 1271 | snprintf(portstr, sizeof(portstr), "%d", options.port); |
1272 | snprintf(uidstr, sizeof(uidstr), "%d", pw->pw_uid); | 1272 | snprintf(uidstr, sizeof(uidstr), "%llu", |
1273 | (unsigned long long)pw->pw_uid); | ||
1273 | 1274 | ||
1274 | if ((md = ssh_digest_start(SSH_DIGEST_SHA1)) == NULL || | 1275 | if ((md = ssh_digest_start(SSH_DIGEST_SHA1)) == NULL || |
1275 | ssh_digest_update(md, thishost, strlen(thishost)) < 0 || | 1276 | ssh_digest_update(md, thishost, strlen(thishost)) < 0 || |
@@ -1294,6 +1295,7 @@ main(int ac, char **av) | |||
1294 | "L", shorthost, | 1295 | "L", shorthost, |
1295 | "d", pw->pw_dir, | 1296 | "d", pw->pw_dir, |
1296 | "h", host, | 1297 | "h", host, |
1298 | "i", uidstr, | ||
1297 | "l", thishost, | 1299 | "l", thishost, |
1298 | "n", host_arg, | 1300 | "n", host_arg, |
1299 | "p", portstr, | 1301 | "p", portstr, |
@@ -1302,18 +1304,19 @@ main(int ac, char **av) | |||
1302 | (char *)NULL); | 1304 | (char *)NULL); |
1303 | debug3("expanded RemoteCommand: %s", options.remote_command); | 1305 | debug3("expanded RemoteCommand: %s", options.remote_command); |
1304 | free(cp); | 1306 | free(cp); |
1305 | buffer_append(&command, options.remote_command, | 1307 | if ((r = sshbuf_put(command, options.remote_command, |
1306 | strlen(options.remote_command)); | 1308 | strlen(options.remote_command))) != 0) |
1309 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
1307 | } | 1310 | } |
1308 | 1311 | ||
1309 | if (options.control_path != NULL) { | 1312 | if (options.control_path != NULL) { |
1310 | cp = tilde_expand_filename(options.control_path, | 1313 | cp = tilde_expand_filename(options.control_path, getuid()); |
1311 | original_real_uid); | ||
1312 | free(options.control_path); | 1314 | free(options.control_path); |
1313 | options.control_path = percent_expand(cp, | 1315 | options.control_path = percent_expand(cp, |
1314 | "C", conn_hash_hex, | 1316 | "C", conn_hash_hex, |
1315 | "L", shorthost, | 1317 | "L", shorthost, |
1316 | "h", host, | 1318 | "h", host, |
1319 | "i", uidstr, | ||
1317 | "l", thishost, | 1320 | "l", thishost, |
1318 | "n", host_arg, | 1321 | "n", host_arg, |
1319 | "p", portstr, | 1322 | "p", portstr, |
@@ -1323,7 +1326,6 @@ main(int ac, char **av) | |||
1323 | (char *)NULL); | 1326 | (char *)NULL); |
1324 | free(cp); | 1327 | free(cp); |
1325 | } | 1328 | } |
1326 | free(conn_hash_hex); | ||
1327 | 1329 | ||
1328 | if (config_test) { | 1330 | if (config_test) { |
1329 | dump_client_config(&options, host); | 1331 | dump_client_config(&options, host); |
@@ -1357,8 +1359,7 @@ main(int ac, char **av) | |||
1357 | /* Open a connection to the remote host. */ | 1359 | /* Open a connection to the remote host. */ |
1358 | if (ssh_connect(ssh, host, addrs, &hostaddr, options.port, | 1360 | if (ssh_connect(ssh, host, addrs, &hostaddr, options.port, |
1359 | options.address_family, options.connection_attempts, | 1361 | options.address_family, options.connection_attempts, |
1360 | &timeout_ms, options.tcp_keep_alive, | 1362 | &timeout_ms, options.tcp_keep_alive) != 0) |
1361 | options.use_privileged_port) != 0) | ||
1362 | exit(255); | 1363 | exit(255); |
1363 | 1364 | ||
1364 | if (addrs != NULL) | 1365 | if (addrs != NULL) |
@@ -1373,100 +1374,45 @@ main(int ac, char **av) | |||
1373 | debug3("timeout: %d ms remain after connect", timeout_ms); | 1374 | debug3("timeout: %d ms remain after connect", timeout_ms); |
1374 | 1375 | ||
1375 | /* | 1376 | /* |
1376 | * If we successfully made the connection, load the host private key | 1377 | * If we successfully made the connection and we have hostbased auth |
1377 | * in case we will need it later for combined rsa-rhosts | 1378 | * enabled, load the public keys so we can later use the ssh-keysign |
1378 | * authentication. This must be done before releasing extra | 1379 | * helper to sign challenges. |
1379 | * privileges, because the file is only readable by root. | ||
1380 | * If we cannot access the private keys, load the public keys | ||
1381 | * instead and try to execute the ssh-keysign helper instead. | ||
1382 | */ | 1380 | */ |
1383 | sensitive_data.nkeys = 0; | 1381 | sensitive_data.nkeys = 0; |
1384 | sensitive_data.keys = NULL; | 1382 | sensitive_data.keys = NULL; |
1385 | sensitive_data.external_keysign = 0; | ||
1386 | if (options.hostbased_authentication) { | 1383 | if (options.hostbased_authentication) { |
1387 | sensitive_data.nkeys = 11; | 1384 | sensitive_data.nkeys = 10; |
1388 | sensitive_data.keys = xcalloc(sensitive_data.nkeys, | 1385 | sensitive_data.keys = xcalloc(sensitive_data.nkeys, |
1389 | sizeof(struct sshkey)); /* XXX */ | 1386 | sizeof(struct sshkey)); |
1390 | for (i = 0; i < sensitive_data.nkeys; i++) | 1387 | |
1391 | sensitive_data.keys[i] = NULL; | 1388 | /* XXX check errors? */ |
1392 | 1389 | #define L_PUBKEY(p,o) do { \ | |
1393 | PRIV_START; | 1390 | if ((o) >= sensitive_data.nkeys) \ |
1394 | #ifdef OPENSSL_HAS_ECC | 1391 | fatal("%s pubkey out of array bounds", __func__); \ |
1395 | sensitive_data.keys[1] = key_load_private_cert(KEY_ECDSA, | 1392 | check_load(sshkey_load_public(p, &(sensitive_data.keys[o]), NULL), \ |
1396 | _PATH_HOST_ECDSA_KEY_FILE, "", NULL); | 1393 | p, "pubkey"); \ |
1397 | #endif | 1394 | } while (0) |
1398 | sensitive_data.keys[2] = key_load_private_cert(KEY_ED25519, | 1395 | #define L_CERT(p,o) do { \ |
1399 | _PATH_HOST_ED25519_KEY_FILE, "", NULL); | 1396 | if ((o) >= sensitive_data.nkeys) \ |
1400 | sensitive_data.keys[3] = key_load_private_cert(KEY_RSA, | 1397 | fatal("%s cert out of array bounds", __func__); \ |
1401 | _PATH_HOST_RSA_KEY_FILE, "", NULL); | 1398 | check_load(sshkey_load_cert(p, &(sensitive_data.keys[o])), p, "cert"); \ |
1402 | sensitive_data.keys[4] = key_load_private_cert(KEY_DSA, | 1399 | } while (0) |
1403 | _PATH_HOST_DSA_KEY_FILE, "", NULL); | 1400 | |
1404 | #ifdef OPENSSL_HAS_ECC | 1401 | if (options.hostbased_authentication == 1) { |
1405 | sensitive_data.keys[5] = key_load_private_type(KEY_ECDSA, | 1402 | L_CERT(_PATH_HOST_ECDSA_KEY_FILE, 0); |
1406 | _PATH_HOST_ECDSA_KEY_FILE, "", NULL, NULL); | 1403 | L_CERT(_PATH_HOST_ED25519_KEY_FILE, 1); |
1407 | #endif | 1404 | L_CERT(_PATH_HOST_RSA_KEY_FILE, 2); |
1408 | sensitive_data.keys[6] = key_load_private_type(KEY_ED25519, | 1405 | L_CERT(_PATH_HOST_DSA_KEY_FILE, 3); |
1409 | _PATH_HOST_ED25519_KEY_FILE, "", NULL, NULL); | 1406 | L_PUBKEY(_PATH_HOST_ECDSA_KEY_FILE, 4); |
1410 | sensitive_data.keys[7] = key_load_private_type(KEY_RSA, | 1407 | L_PUBKEY(_PATH_HOST_ED25519_KEY_FILE, 5); |
1411 | _PATH_HOST_RSA_KEY_FILE, "", NULL, NULL); | 1408 | L_PUBKEY(_PATH_HOST_RSA_KEY_FILE, 6); |
1412 | sensitive_data.keys[8] = key_load_private_type(KEY_DSA, | 1409 | L_PUBKEY(_PATH_HOST_DSA_KEY_FILE, 7); |
1413 | _PATH_HOST_DSA_KEY_FILE, "", NULL, NULL); | 1410 | L_CERT(_PATH_HOST_XMSS_KEY_FILE, 8); |
1414 | sensitive_data.keys[9] = key_load_private_cert(KEY_XMSS, | 1411 | L_PUBKEY(_PATH_HOST_XMSS_KEY_FILE, 9); |
1415 | _PATH_HOST_XMSS_KEY_FILE, "", NULL); | ||
1416 | sensitive_data.keys[10] = key_load_private_type(KEY_XMSS, | ||
1417 | _PATH_HOST_XMSS_KEY_FILE, "", NULL, NULL); | ||
1418 | PRIV_END; | ||
1419 | |||
1420 | if (options.hostbased_authentication == 1 && | ||
1421 | sensitive_data.keys[0] == NULL && | ||
1422 | sensitive_data.keys[5] == NULL && | ||
1423 | sensitive_data.keys[6] == NULL && | ||
1424 | sensitive_data.keys[7] == NULL && | ||
1425 | sensitive_data.keys[8] == NULL && | ||
1426 | sensitive_data.keys[9] == NULL) { | ||
1427 | #ifdef OPENSSL_HAS_ECC | ||
1428 | sensitive_data.keys[1] = key_load_cert( | ||
1429 | _PATH_HOST_ECDSA_KEY_FILE); | ||
1430 | #endif | ||
1431 | sensitive_data.keys[2] = key_load_cert( | ||
1432 | _PATH_HOST_ED25519_KEY_FILE); | ||
1433 | sensitive_data.keys[3] = key_load_cert( | ||
1434 | _PATH_HOST_RSA_KEY_FILE); | ||
1435 | sensitive_data.keys[4] = key_load_cert( | ||
1436 | _PATH_HOST_DSA_KEY_FILE); | ||
1437 | #ifdef OPENSSL_HAS_ECC | ||
1438 | sensitive_data.keys[5] = key_load_public( | ||
1439 | _PATH_HOST_ECDSA_KEY_FILE, NULL); | ||
1440 | #endif | ||
1441 | sensitive_data.keys[6] = key_load_public( | ||
1442 | _PATH_HOST_ED25519_KEY_FILE, NULL); | ||
1443 | sensitive_data.keys[7] = key_load_public( | ||
1444 | _PATH_HOST_RSA_KEY_FILE, NULL); | ||
1445 | sensitive_data.keys[8] = key_load_public( | ||
1446 | _PATH_HOST_DSA_KEY_FILE, NULL); | ||
1447 | sensitive_data.keys[9] = key_load_cert( | ||
1448 | _PATH_HOST_XMSS_KEY_FILE); | ||
1449 | sensitive_data.keys[10] = key_load_public( | ||
1450 | _PATH_HOST_XMSS_KEY_FILE, NULL); | ||
1451 | sensitive_data.external_keysign = 1; | ||
1452 | } | 1412 | } |
1453 | } | 1413 | } |
1454 | /* | ||
1455 | * Get rid of any extra privileges that we may have. We will no | ||
1456 | * longer need them. Also, extra privileges could make it very hard | ||
1457 | * to read identity files and other non-world-readable files from the | ||
1458 | * user's home directory if it happens to be on a NFS volume where | ||
1459 | * root is mapped to nobody. | ||
1460 | */ | ||
1461 | if (original_effective_uid == 0) { | ||
1462 | PRIV_START; | ||
1463 | permanently_set_uid(pw); | ||
1464 | } | ||
1465 | 1414 | ||
1466 | /* | 1415 | /* Create ~/.ssh * directory if it doesn't already exist. */ |
1467 | * Now that we are back to our own permissions, create ~/.ssh | ||
1468 | * directory if it doesn't already exist. | ||
1469 | */ | ||
1470 | if (config == NULL) { | 1416 | if (config == NULL) { |
1471 | r = snprintf(buf, sizeof buf, "%s%s%s", pw->pw_dir, | 1417 | r = snprintf(buf, sizeof buf, "%s%s%s", pw->pw_dir, |
1472 | strcmp(pw->pw_dir, "/") ? "/" : "", _PATH_SSH_USER_DIR); | 1418 | strcmp(pw->pw_dir, "/") ? "/" : "", _PATH_SSH_USER_DIR); |
@@ -1485,17 +1431,22 @@ main(int ac, char **av) | |||
1485 | /* load options.identity_files */ | 1431 | /* load options.identity_files */ |
1486 | load_public_identity_files(pw); | 1432 | load_public_identity_files(pw); |
1487 | 1433 | ||
1488 | /* optionally set the SSH_AUTHSOCKET_ENV_NAME varibale */ | 1434 | /* optionally set the SSH_AUTHSOCKET_ENV_NAME variable */ |
1489 | if (options.identity_agent && | 1435 | if (options.identity_agent && |
1490 | strcmp(options.identity_agent, SSH_AUTHSOCKET_ENV_NAME) != 0) { | 1436 | strcmp(options.identity_agent, SSH_AUTHSOCKET_ENV_NAME) != 0) { |
1491 | if (strcmp(options.identity_agent, "none") == 0) { | 1437 | if (strcmp(options.identity_agent, "none") == 0) { |
1492 | unsetenv(SSH_AUTHSOCKET_ENV_NAME); | 1438 | unsetenv(SSH_AUTHSOCKET_ENV_NAME); |
1493 | } else { | 1439 | } else { |
1494 | p = tilde_expand_filename(options.identity_agent, | 1440 | p = tilde_expand_filename(options.identity_agent, |
1495 | original_real_uid); | 1441 | getuid()); |
1496 | cp = percent_expand(p, "d", pw->pw_dir, | 1442 | cp = percent_expand(p, |
1497 | "u", pw->pw_name, "l", thishost, "h", host, | 1443 | "d", pw->pw_dir, |
1498 | "r", options.user, (char *)NULL); | 1444 | "h", host, |
1445 | "i", uidstr, | ||
1446 | "l", thishost, | ||
1447 | "r", options.user, | ||
1448 | "u", pw->pw_name, | ||
1449 | (char *)NULL); | ||
1499 | setenv(SSH_AUTHSOCKET_ENV_NAME, cp, 1); | 1450 | setenv(SSH_AUTHSOCKET_ENV_NAME, cp, 1); |
1500 | free(cp); | 1451 | free(cp); |
1501 | free(p); | 1452 | free(p); |
@@ -1527,7 +1478,7 @@ main(int ac, char **av) | |||
1527 | if (sensitive_data.keys[i] != NULL) { | 1478 | if (sensitive_data.keys[i] != NULL) { |
1528 | /* Destroys contents safely */ | 1479 | /* Destroys contents safely */ |
1529 | debug3("clear hostkey %d", i); | 1480 | debug3("clear hostkey %d", i); |
1530 | key_free(sensitive_data.keys[i]); | 1481 | sshkey_free(sensitive_data.keys[i]); |
1531 | sensitive_data.keys[i] = NULL; | 1482 | sensitive_data.keys[i] = NULL; |
1532 | } | 1483 | } |
1533 | } | 1484 | } |
@@ -1537,7 +1488,7 @@ main(int ac, char **av) | |||
1537 | free(options.identity_files[i]); | 1488 | free(options.identity_files[i]); |
1538 | options.identity_files[i] = NULL; | 1489 | options.identity_files[i] = NULL; |
1539 | if (options.identity_keys[i]) { | 1490 | if (options.identity_keys[i]) { |
1540 | key_free(options.identity_keys[i]); | 1491 | sshkey_free(options.identity_keys[i]); |
1541 | options.identity_keys[i] = NULL; | 1492 | options.identity_keys[i] = NULL; |
1542 | } | 1493 | } |
1543 | } | 1494 | } |
@@ -1638,10 +1589,10 @@ ssh_confirm_remote_forward(struct ssh *ssh, int type, u_int32_t seq, void *ctxt) | |||
1638 | logit("Allocated port %u for remote forward to %s:%d", | 1589 | logit("Allocated port %u for remote forward to %s:%d", |
1639 | rfwd->allocated_port, | 1590 | rfwd->allocated_port, |
1640 | rfwd->connect_host, rfwd->connect_port); | 1591 | rfwd->connect_host, rfwd->connect_port); |
1641 | channel_update_permitted_opens(ssh, | 1592 | channel_update_permission(ssh, |
1642 | rfwd->handle, rfwd->allocated_port); | 1593 | rfwd->handle, rfwd->allocated_port); |
1643 | } else { | 1594 | } else { |
1644 | channel_update_permitted_opens(ssh, rfwd->handle, -1); | 1595 | channel_update_permission(ssh, rfwd->handle, -1); |
1645 | } | 1596 | } |
1646 | } | 1597 | } |
1647 | 1598 | ||
@@ -1830,7 +1781,7 @@ ssh_session2_setup(struct ssh *ssh, int id, int success, void *arg) | |||
1830 | options.ip_qos_interactive, options.ip_qos_bulk); | 1781 | options.ip_qos_interactive, options.ip_qos_bulk); |
1831 | 1782 | ||
1832 | client_session2_setup(ssh, id, tty_flag, subsystem_flag, getenv("TERM"), | 1783 | client_session2_setup(ssh, id, tty_flag, subsystem_flag, getenv("TERM"), |
1833 | NULL, fileno(stdin), &command, environ); | 1784 | NULL, fileno(stdin), command, environ); |
1834 | } | 1785 | } |
1835 | 1786 | ||
1836 | /* open new channel for a session */ | 1787 | /* open new channel for a session */ |
@@ -1900,6 +1851,7 @@ ssh_session2(struct ssh *ssh, struct passwd *pw) | |||
1900 | "L", shorthost, | 1851 | "L", shorthost, |
1901 | "d", pw->pw_dir, | 1852 | "d", pw->pw_dir, |
1902 | "h", host, | 1853 | "h", host, |
1854 | "i", uidstr, | ||
1903 | "l", thishost, | 1855 | "l", thishost, |
1904 | "n", host_arg, | 1856 | "n", host_arg, |
1905 | "p", portstr, | 1857 | "p", portstr, |
@@ -2009,8 +1961,10 @@ load_public_identity_files(struct passwd *pw) | |||
2009 | u_int n_ids, n_certs; | 1961 | u_int n_ids, n_certs; |
2010 | char *identity_files[SSH_MAX_IDENTITY_FILES]; | 1962 | char *identity_files[SSH_MAX_IDENTITY_FILES]; |
2011 | struct sshkey *identity_keys[SSH_MAX_IDENTITY_FILES]; | 1963 | struct sshkey *identity_keys[SSH_MAX_IDENTITY_FILES]; |
1964 | int identity_file_userprovided[SSH_MAX_IDENTITY_FILES]; | ||
2012 | char *certificate_files[SSH_MAX_CERTIFICATE_FILES]; | 1965 | char *certificate_files[SSH_MAX_CERTIFICATE_FILES]; |
2013 | struct sshkey *certificates[SSH_MAX_CERTIFICATE_FILES]; | 1966 | struct sshkey *certificates[SSH_MAX_CERTIFICATE_FILES]; |
1967 | int certificate_file_userprovided[SSH_MAX_CERTIFICATE_FILES]; | ||
2014 | #ifdef ENABLE_PKCS11 | 1968 | #ifdef ENABLE_PKCS11 |
2015 | struct sshkey **keys; | 1969 | struct sshkey **keys; |
2016 | int nkeys; | 1970 | int nkeys; |
@@ -2019,8 +1973,12 @@ load_public_identity_files(struct passwd *pw) | |||
2019 | n_ids = n_certs = 0; | 1973 | n_ids = n_certs = 0; |
2020 | memset(identity_files, 0, sizeof(identity_files)); | 1974 | memset(identity_files, 0, sizeof(identity_files)); |
2021 | memset(identity_keys, 0, sizeof(identity_keys)); | 1975 | memset(identity_keys, 0, sizeof(identity_keys)); |
1976 | memset(identity_file_userprovided, 0, | ||
1977 | sizeof(identity_file_userprovided)); | ||
2022 | memset(certificate_files, 0, sizeof(certificate_files)); | 1978 | memset(certificate_files, 0, sizeof(certificate_files)); |
2023 | memset(certificates, 0, sizeof(certificates)); | 1979 | memset(certificates, 0, sizeof(certificates)); |
1980 | memset(certificate_file_userprovided, 0, | ||
1981 | sizeof(certificate_file_userprovided)); | ||
2024 | 1982 | ||
2025 | #ifdef ENABLE_PKCS11 | 1983 | #ifdef ENABLE_PKCS11 |
2026 | if (options.pkcs11_provider != NULL && | 1984 | if (options.pkcs11_provider != NULL && |
@@ -2030,7 +1988,7 @@ load_public_identity_files(struct passwd *pw) | |||
2030 | &keys)) > 0) { | 1988 | &keys)) > 0) { |
2031 | for (i = 0; i < nkeys; i++) { | 1989 | for (i = 0; i < nkeys; i++) { |
2032 | if (n_ids >= SSH_MAX_IDENTITY_FILES) { | 1990 | if (n_ids >= SSH_MAX_IDENTITY_FILES) { |
2033 | key_free(keys[i]); | 1991 | sshkey_free(keys[i]); |
2034 | continue; | 1992 | continue; |
2035 | } | 1993 | } |
2036 | identity_keys[n_ids] = keys[i]; | 1994 | identity_keys[n_ids] = keys[i]; |
@@ -2041,8 +1999,6 @@ load_public_identity_files(struct passwd *pw) | |||
2041 | free(keys); | 1999 | free(keys); |
2042 | } | 2000 | } |
2043 | #endif /* ENABLE_PKCS11 */ | 2001 | #endif /* ENABLE_PKCS11 */ |
2044 | if ((pw = getpwuid(original_real_uid)) == NULL) | ||
2045 | fatal("load_public_identity_files: getpwuid failed"); | ||
2046 | for (i = 0; i < options.num_identity_files; i++) { | 2002 | for (i = 0; i < options.num_identity_files; i++) { |
2047 | if (n_ids >= SSH_MAX_IDENTITY_FILES || | 2003 | if (n_ids >= SSH_MAX_IDENTITY_FILES || |
2048 | strcasecmp(options.identity_files[i], "none") == 0) { | 2004 | strcasecmp(options.identity_files[i], "none") == 0) { |
@@ -2050,19 +2006,20 @@ load_public_identity_files(struct passwd *pw) | |||
2050 | options.identity_files[i] = NULL; | 2006 | options.identity_files[i] = NULL; |
2051 | continue; | 2007 | continue; |
2052 | } | 2008 | } |
2053 | cp = tilde_expand_filename(options.identity_files[i], | 2009 | cp = tilde_expand_filename(options.identity_files[i], getuid()); |
2054 | original_real_uid); | ||
2055 | filename = percent_expand(cp, "d", pw->pw_dir, | 2010 | filename = percent_expand(cp, "d", pw->pw_dir, |
2056 | "u", pw->pw_name, "l", thishost, "h", host, | 2011 | "u", pw->pw_name, "l", thishost, "h", host, |
2057 | "r", options.user, (char *)NULL); | 2012 | "r", options.user, (char *)NULL); |
2058 | free(cp); | 2013 | free(cp); |
2059 | public = key_load_public(filename, NULL); | 2014 | check_load(sshkey_load_public(filename, &public, NULL), |
2015 | filename, "pubkey"); | ||
2060 | debug("identity file %s type %d", filename, | 2016 | debug("identity file %s type %d", filename, |
2061 | public ? public->type : -1); | 2017 | public ? public->type : -1); |
2062 | free(options.identity_files[i]); | 2018 | free(options.identity_files[i]); |
2063 | identity_files[n_ids] = filename; | 2019 | identity_files[n_ids] = filename; |
2064 | identity_keys[n_ids] = public; | 2020 | identity_keys[n_ids] = public; |
2065 | 2021 | identity_file_userprovided[n_ids] = | |
2022 | options.identity_file_userprovided[i]; | ||
2066 | if (++n_ids >= SSH_MAX_IDENTITY_FILES) | 2023 | if (++n_ids >= SSH_MAX_IDENTITY_FILES) |
2067 | continue; | 2024 | continue; |
2068 | 2025 | ||
@@ -2073,23 +2030,26 @@ load_public_identity_files(struct passwd *pw) | |||
2073 | if (options.num_certificate_files != 0) | 2030 | if (options.num_certificate_files != 0) |
2074 | continue; | 2031 | continue; |
2075 | xasprintf(&cp, "%s-cert", filename); | 2032 | xasprintf(&cp, "%s-cert", filename); |
2076 | public = key_load_public(cp, NULL); | 2033 | check_load(sshkey_load_public(cp, &public, NULL), |
2034 | filename, "pubkey"); | ||
2077 | debug("identity file %s type %d", cp, | 2035 | debug("identity file %s type %d", cp, |
2078 | public ? public->type : -1); | 2036 | public ? public->type : -1); |
2079 | if (public == NULL) { | 2037 | if (public == NULL) { |
2080 | free(cp); | 2038 | free(cp); |
2081 | continue; | 2039 | continue; |
2082 | } | 2040 | } |
2083 | if (!key_is_cert(public)) { | 2041 | if (!sshkey_is_cert(public)) { |
2084 | debug("%s: key %s type %s is not a certificate", | 2042 | debug("%s: key %s type %s is not a certificate", |
2085 | __func__, cp, key_type(public)); | 2043 | __func__, cp, sshkey_type(public)); |
2086 | key_free(public); | 2044 | sshkey_free(public); |
2087 | free(cp); | 2045 | free(cp); |
2088 | continue; | 2046 | continue; |
2089 | } | 2047 | } |
2090 | /* NB. leave filename pointing to private key */ | 2048 | /* NB. leave filename pointing to private key */ |
2091 | identity_files[n_ids] = xstrdup(filename); | 2049 | identity_files[n_ids] = xstrdup(filename); |
2092 | identity_keys[n_ids] = public; | 2050 | identity_keys[n_ids] = public; |
2051 | identity_file_userprovided[n_ids] = | ||
2052 | options.identity_file_userprovided[i]; | ||
2093 | n_ids++; | 2053 | n_ids++; |
2094 | } | 2054 | } |
2095 | 2055 | ||
@@ -2097,13 +2057,19 @@ load_public_identity_files(struct passwd *pw) | |||
2097 | fatal("%s: too many certificates", __func__); | 2057 | fatal("%s: too many certificates", __func__); |
2098 | for (i = 0; i < options.num_certificate_files; i++) { | 2058 | for (i = 0; i < options.num_certificate_files; i++) { |
2099 | cp = tilde_expand_filename(options.certificate_files[i], | 2059 | cp = tilde_expand_filename(options.certificate_files[i], |
2100 | original_real_uid); | 2060 | getuid()); |
2101 | filename = percent_expand(cp, "d", pw->pw_dir, | 2061 | filename = percent_expand(cp, |
2102 | "u", pw->pw_name, "l", thishost, "h", host, | 2062 | "d", pw->pw_dir, |
2103 | "r", options.user, (char *)NULL); | 2063 | "h", host, |
2064 | "i", uidstr, | ||
2065 | "l", thishost, | ||
2066 | "r", options.user, | ||
2067 | "u", pw->pw_name, | ||
2068 | (char *)NULL); | ||
2104 | free(cp); | 2069 | free(cp); |
2105 | 2070 | ||
2106 | public = key_load_public(filename, NULL); | 2071 | check_load(sshkey_load_public(filename, &public, NULL), |
2072 | filename, "certificate"); | ||
2107 | debug("certificate file %s type %d", filename, | 2073 | debug("certificate file %s type %d", filename, |
2108 | public ? public->type : -1); | 2074 | public ? public->type : -1); |
2109 | free(options.certificate_files[i]); | 2075 | free(options.certificate_files[i]); |
@@ -2112,26 +2078,33 @@ load_public_identity_files(struct passwd *pw) | |||
2112 | free(filename); | 2078 | free(filename); |
2113 | continue; | 2079 | continue; |
2114 | } | 2080 | } |
2115 | if (!key_is_cert(public)) { | 2081 | if (!sshkey_is_cert(public)) { |
2116 | debug("%s: key %s type %s is not a certificate", | 2082 | debug("%s: key %s type %s is not a certificate", |
2117 | __func__, filename, key_type(public)); | 2083 | __func__, filename, sshkey_type(public)); |
2118 | key_free(public); | 2084 | sshkey_free(public); |
2119 | free(filename); | 2085 | free(filename); |
2120 | continue; | 2086 | continue; |
2121 | } | 2087 | } |
2122 | certificate_files[n_certs] = filename; | 2088 | certificate_files[n_certs] = filename; |
2123 | certificates[n_certs] = public; | 2089 | certificates[n_certs] = public; |
2090 | certificate_file_userprovided[n_certs] = | ||
2091 | options.certificate_file_userprovided[i]; | ||
2124 | ++n_certs; | 2092 | ++n_certs; |
2125 | } | 2093 | } |
2126 | 2094 | ||
2127 | options.num_identity_files = n_ids; | 2095 | options.num_identity_files = n_ids; |
2128 | memcpy(options.identity_files, identity_files, sizeof(identity_files)); | 2096 | memcpy(options.identity_files, identity_files, sizeof(identity_files)); |
2129 | memcpy(options.identity_keys, identity_keys, sizeof(identity_keys)); | 2097 | memcpy(options.identity_keys, identity_keys, sizeof(identity_keys)); |
2098 | memcpy(options.identity_file_userprovided, | ||
2099 | identity_file_userprovided, sizeof(identity_file_userprovided)); | ||
2130 | 2100 | ||
2131 | options.num_certificate_files = n_certs; | 2101 | options.num_certificate_files = n_certs; |
2132 | memcpy(options.certificate_files, | 2102 | memcpy(options.certificate_files, |
2133 | certificate_files, sizeof(certificate_files)); | 2103 | certificate_files, sizeof(certificate_files)); |
2134 | memcpy(options.certificates, certificates, sizeof(certificates)); | 2104 | memcpy(options.certificates, certificates, sizeof(certificates)); |
2105 | memcpy(options.certificate_file_userprovided, | ||
2106 | certificate_file_userprovided, | ||
2107 | sizeof(certificate_file_userprovided)); | ||
2135 | } | 2108 | } |
2136 | 2109 | ||
2137 | static void | 2110 | static void |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssh.h,v 1.87 2017/05/07 23:15:59 djm Exp $ */ | 1 | /* $OpenBSD: ssh.h,v 1.88 2018/06/06 18:29:18 markus Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
@@ -31,13 +31,6 @@ | |||
31 | #define SSH_MAX_IDENTITY_FILES 100 | 31 | #define SSH_MAX_IDENTITY_FILES 100 |
32 | 32 | ||
33 | /* | 33 | /* |
34 | * Maximum length of lines in authorized_keys file. | ||
35 | * Current value permits 16kbit RSA keys and 8kbit DSA keys, with | ||
36 | * some room for options and comments. | ||
37 | */ | ||
38 | #define SSH_MAX_PUBKEY_BYTES 16384 | ||
39 | |||
40 | /* | ||
41 | * Major protocol version. Different version indicates major incompatibility | 34 | * Major protocol version. Different version indicates major incompatibility |
42 | * that prevents communication. | 35 | * that prevents communication. |
43 | * | 36 | * |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssh_api.h,v 1.1 2015/01/19 20:30:23 markus Exp $ */ | 1 | /* $OpenBSD: ssh_api.h,v 1.2 2018/04/10 00:10:49 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2012 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2012 Markus Friedl. All rights reserved. |
4 | * | 4 | * |
@@ -81,7 +81,7 @@ int ssh_set_verify_host_key_callback(struct ssh *ssh, | |||
81 | * ssh_packet_next() sets typep if there is no new packet available. | 81 | * ssh_packet_next() sets typep if there is no new packet available. |
82 | * in this case the caller must fill the input byte-stream by passing | 82 | * in this case the caller must fill the input byte-stream by passing |
83 | * the data received over network to ssh_input_append(). | 83 | * the data received over network to ssh_input_append(). |
84 | * additinally, the caller needs to send the resulting output | 84 | * additionally, the caller needs to send the resulting output |
85 | * byte-stream back over the network. otherwise the key exchange | 85 | * byte-stream back over the network. otherwise the key exchange |
86 | * would not proceed. the output byte-stream is accessed through | 86 | * would not proceed. the output byte-stream is accessed through |
87 | * ssh_output_ptr(). | 87 | * ssh_output_ptr(). |
diff --git a/ssh_config.0 b/ssh_config.0 index 4109b1909..00afda1ca 100644 --- a/ssh_config.0 +++ b/ssh_config.0 | |||
@@ -109,13 +109,11 @@ DESCRIPTION | |||
109 | BindAddress | 109 | BindAddress |
110 | Use the specified address on the local machine as the source | 110 | Use the specified address on the local machine as the source |
111 | address of the connection. Only useful on systems with more than | 111 | address of the connection. Only useful on systems with more than |
112 | one address. Note that this option does not work if | 112 | one address. |
113 | UsePrivilegedPort is set to yes. | ||
114 | 113 | ||
115 | BindInterface | 114 | BindInterface |
116 | Use the address of the specified interface on the local machine | 115 | Use the address of the specified interface on the local machine |
117 | as the source address of the connection. Note that this option | 116 | as the source address of the connection. |
118 | does not work if UsePrivilegedPort is set to yes. | ||
119 | 117 | ||
120 | CanonicalDomains | 118 | CanonicalDomains |
121 | When CanonicalizeHostname is enabled, this option specifies the | 119 | When CanonicalizeHostname is enabled, this option specifies the |
@@ -216,8 +214,7 @@ DESCRIPTION | |||
216 | 214 | ||
217 | chacha20-poly1305@openssh.com, | 215 | chacha20-poly1305@openssh.com, |
218 | aes128-ctr,aes192-ctr,aes256-ctr, | 216 | aes128-ctr,aes192-ctr,aes256-ctr, |
219 | aes128-gcm@openssh.com,aes256-gcm@openssh.com, | 217 | aes128-gcm@openssh.com,aes256-gcm@openssh.com |
220 | aes128-cbc,aes192-cbc,aes256-cbc | ||
221 | 218 | ||
222 | The list of available ciphers may also be obtained using "ssh -Q | 219 | The list of available ciphers may also be obtained using "ssh -Q |
223 | cipher". | 220 | cipher". |
@@ -429,11 +426,11 @@ DESCRIPTION | |||
429 | 426 | ||
430 | HostbasedKeyTypes | 427 | HostbasedKeyTypes |
431 | Specifies the key types that will be used for hostbased | 428 | Specifies the key types that will be used for hostbased |
432 | authentication as a comma-separated pattern list. Alternately if | 429 | authentication as a comma-separated list of patterns. |
433 | the specified value begins with a M-bM-^@M-^X+M-bM-^@M-^Y character, then the | 430 | Alternately if the specified value begins with a M-bM-^@M-^X+M-bM-^@M-^Y character, |
434 | specified key types will be appended to the default set instead | 431 | then the specified key types will be appended to the default set |
435 | of replacing them. If the specified value begins with a M-bM-^@M-^X-M-bM-^@M-^Y | 432 | instead of replacing them. If the specified value begins with a |
436 | character, then the specified key types (including wildcards) | 433 | M-bM-^@M-^X-M-bM-^@M-^Y character, then the specified key types (including wildcards) |
437 | will be removed from the default set instead of replacing them. | 434 | will be removed from the default set instead of replacing them. |
438 | The default for this option is: | 435 | The default for this option is: |
439 | 436 | ||
@@ -441,9 +438,10 @@ DESCRIPTION | |||
441 | ecdsa-sha2-nistp384-cert-v01@openssh.com, | 438 | ecdsa-sha2-nistp384-cert-v01@openssh.com, |
442 | ecdsa-sha2-nistp521-cert-v01@openssh.com, | 439 | ecdsa-sha2-nistp521-cert-v01@openssh.com, |
443 | ssh-ed25519-cert-v01@openssh.com, | 440 | ssh-ed25519-cert-v01@openssh.com, |
441 | rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com, | ||
444 | ssh-rsa-cert-v01@openssh.com, | 442 | ssh-rsa-cert-v01@openssh.com, |
445 | ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521, | 443 | ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521, |
446 | ssh-ed25519,ssh-rsa | 444 | ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa |
447 | 445 | ||
448 | The -Q option of ssh(1) may be used to list supported key types. | 446 | The -Q option of ssh(1) may be used to list supported key types. |
449 | 447 | ||
@@ -460,9 +458,10 @@ DESCRIPTION | |||
460 | ecdsa-sha2-nistp384-cert-v01@openssh.com, | 458 | ecdsa-sha2-nistp384-cert-v01@openssh.com, |
461 | ecdsa-sha2-nistp521-cert-v01@openssh.com, | 459 | ecdsa-sha2-nistp521-cert-v01@openssh.com, |
462 | ssh-ed25519-cert-v01@openssh.com, | 460 | ssh-ed25519-cert-v01@openssh.com, |
461 | rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com, | ||
463 | ssh-rsa-cert-v01@openssh.com, | 462 | ssh-rsa-cert-v01@openssh.com, |
464 | ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521, | 463 | ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521, |
465 | ssh-ed25519,ssh-rsa | 464 | ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa |
466 | 465 | ||
467 | If hostkeys are known for the destination host then this default | 466 | If hostkeys are known for the destination host then this default |
468 | is modified to prefer their algorithms. | 467 | is modified to prefer their algorithms. |
@@ -544,7 +543,7 @@ DESCRIPTION | |||
544 | 543 | ||
545 | Include | 544 | Include |
546 | Include the specified configuration file(s). Multiple pathnames | 545 | Include the specified configuration file(s). Multiple pathnames |
547 | may be specified and each pathname may contain glob(3) wildcards | 546 | may be specified and each pathname may contain glob(7) wildcards |
548 | and, for user configurations, shell-like M-bM-^@M-^X~M-bM-^@M-^Y references to user | 547 | and, for user configurations, shell-like M-bM-^@M-^X~M-bM-^@M-^Y references to user |
549 | home directories. Files without absolute paths are assumed to be | 548 | home directories. Files without absolute paths are assumed to be |
550 | in ~/.ssh if included in a user configuration file or /etc/ssh if | 549 | in ~/.ssh if included in a user configuration file or /etc/ssh if |
@@ -561,8 +560,8 @@ DESCRIPTION | |||
561 | is specified, it is used as the packet class unconditionally. If | 560 | is specified, it is used as the packet class unconditionally. If |
562 | two values are specified, the first is automatically selected for | 561 | two values are specified, the first is automatically selected for |
563 | interactive sessions and the second for non-interactive sessions. | 562 | interactive sessions and the second for non-interactive sessions. |
564 | The default is lowdelay for interactive sessions and throughput | 563 | The default is af21 (Low-Latency Data) for interactive sessions |
565 | for non-interactive sessions. | 564 | and cs1 (Lower Effort) for non-interactive sessions. |
566 | 565 | ||
567 | KbdInteractiveAuthentication | 566 | KbdInteractiveAuthentication |
568 | Specifies whether to use keyboard-interactive authentication. | 567 | Specifies whether to use keyboard-interactive authentication. |
@@ -573,8 +572,7 @@ DESCRIPTION | |||
573 | authentication. Multiple method names must be comma-separated. | 572 | authentication. Multiple method names must be comma-separated. |
574 | The default is to use the server specified list. The methods | 573 | The default is to use the server specified list. The methods |
575 | available vary depending on what the server supports. For an | 574 | available vary depending on what the server supports. For an |
576 | OpenSSH server, it may be zero or more of: bsdauth, pam, and | 575 | OpenSSH server, it may be zero or more of: bsdauth and pam. |
577 | skey. | ||
578 | 576 | ||
579 | KexAlgorithms | 577 | KexAlgorithms |
580 | Specifies the available KEX (Key Exchange) algorithms. Multiple | 578 | Specifies the available KEX (Key Exchange) algorithms. Multiple |
@@ -735,11 +733,11 @@ DESCRIPTION | |||
735 | 733 | ||
736 | PubkeyAcceptedKeyTypes | 734 | PubkeyAcceptedKeyTypes |
737 | Specifies the key types that will be used for public key | 735 | Specifies the key types that will be used for public key |
738 | authentication as a comma-separated pattern list. Alternately if | 736 | authentication as a comma-separated list of patterns. |
739 | the specified value begins with a M-bM-^@M-^X+M-bM-^@M-^Y character, then the key | 737 | Alternately if the specified value begins with a M-bM-^@M-^X+M-bM-^@M-^Y character, |
740 | types after it will be appended to the default instead of | 738 | then the key types after it will be appended to the default |
741 | replacing it. If the specified value begins with a M-bM-^@M-^X-M-bM-^@M-^Y | 739 | instead of replacing it. If the specified value begins with a |
742 | character, then the specified key types (including wildcards) | 740 | M-bM-^@M-^X-M-bM-^@M-^Y character, then the specified key types (including wildcards) |
743 | will be removed from the default set instead of replacing them. | 741 | will be removed from the default set instead of replacing them. |
744 | The default for this option is: | 742 | The default for this option is: |
745 | 743 | ||
@@ -747,9 +745,10 @@ DESCRIPTION | |||
747 | ecdsa-sha2-nistp384-cert-v01@openssh.com, | 745 | ecdsa-sha2-nistp384-cert-v01@openssh.com, |
748 | ecdsa-sha2-nistp521-cert-v01@openssh.com, | 746 | ecdsa-sha2-nistp521-cert-v01@openssh.com, |
749 | ssh-ed25519-cert-v01@openssh.com, | 747 | ssh-ed25519-cert-v01@openssh.com, |
748 | rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com, | ||
750 | ssh-rsa-cert-v01@openssh.com, | 749 | ssh-rsa-cert-v01@openssh.com, |
751 | ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521, | 750 | ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521, |
752 | ssh-ed25519,ssh-rsa | 751 | ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa |
753 | 752 | ||
754 | The list of available key types may also be obtained using "ssh | 753 | The list of available key types may also be obtained using "ssh |
755 | -Q key". | 754 | -Q key". |
@@ -781,7 +780,7 @@ DESCRIPTION | |||
781 | 780 | ||
782 | RemoteForward | 781 | RemoteForward |
783 | Specifies that a TCP port on the remote machine be forwarded over | 782 | Specifies that a TCP port on the remote machine be forwarded over |
784 | the secure channel. The remote port may either be fowarded to a | 783 | the secure channel. The remote port may either be forwarded to a |
785 | specified host and port from the local machine, or may act as a | 784 | specified host and port from the local machine, or may act as a |
786 | SOCKS 4/5 proxy that allows a remote client to connect to | 785 | SOCKS 4/5 proxy that allows a remote client to connect to |
787 | arbitrary destinations from the local machine. The first | 786 | arbitrary destinations from the local machine. The first |
@@ -832,11 +831,14 @@ DESCRIPTION | |||
832 | server. Variables are specified by name, which may contain | 831 | server. Variables are specified by name, which may contain |
833 | wildcard characters. Multiple environment variables may be | 832 | wildcard characters. Multiple environment variables may be |
834 | separated by whitespace or spread across multiple SendEnv | 833 | separated by whitespace or spread across multiple SendEnv |
835 | directives. The default is not to send any environment | 834 | directives. |
836 | variables. | ||
837 | 835 | ||
838 | See PATTERNS for more information on patterns. | 836 | See PATTERNS for more information on patterns. |
839 | 837 | ||
838 | It is possible to clear previously set SendEnv variable names by | ||
839 | prefixing patterns with -. The default is not to send any | ||
840 | environment variables. | ||
841 | |||
840 | ServerAliveCountMax | 842 | ServerAliveCountMax |
841 | Sets the number of server alive messages (see below) which may be | 843 | Sets the number of server alive messages (see below) which may be |
842 | sent without ssh(1) receiving any messages back from the server. | 844 | sent without ssh(1) receiving any messages back from the server. |
@@ -862,6 +864,10 @@ DESCRIPTION | |||
862 | default is 0, indicating that these messages will not be sent to | 864 | default is 0, indicating that these messages will not be sent to |
863 | the server. | 865 | the server. |
864 | 866 | ||
867 | SetEnv Directly specify one or more environment variables and their | ||
868 | contents to be sent to the server. Similarly to SendEnv, the | ||
869 | server must be prepared to accept the environment variable. | ||
870 | |||
865 | StreamLocalBindMask | 871 | StreamLocalBindMask |
866 | Sets the octal file creation mode mask (umask) used when creating | 872 | Sets the octal file creation mode mask (umask) used when creating |
867 | a Unix-domain socket file for local or remote port forwarding. | 873 | a Unix-domain socket file for local or remote port forwarding. |
@@ -956,11 +962,6 @@ DESCRIPTION | |||
956 | "hostkeys@openssh.com" protocol extension used to inform the | 962 | "hostkeys@openssh.com" protocol extension used to inform the |
957 | client of all the server's hostkeys. | 963 | client of all the server's hostkeys. |
958 | 964 | ||
959 | UsePrivilegedPort | ||
960 | Specifies whether to use a privileged port for outgoing | ||
961 | connections. The argument must be yes or no (the default). If | ||
962 | set to yes, ssh(1) must be setuid root. | ||
963 | |||
964 | User Specifies the user to log in as. This can be useful when a | 965 | User Specifies the user to log in as. This can be useful when a |
965 | different user name is used on different machines. This saves | 966 | different user name is used on different machines. This saves |
966 | the trouble of having to remember to give the user name on the | 967 | the trouble of having to remember to give the user name on the |
@@ -1046,24 +1047,25 @@ TOKENS | |||
1046 | tunnel forwarding was requested, or "NONE" otherwise. | 1047 | tunnel forwarding was requested, or "NONE" otherwise. |
1047 | %u The local username. | 1048 | %u The local username. |
1048 | 1049 | ||
1049 | Match exec accepts the tokens %%, %h, %L, %l, %n, %p, %r, and %u. | 1050 | Match exec accepts the tokens %%, %h, %i, %L, %l, %n, %p, %r, and %u. |
1050 | 1051 | ||
1051 | CertificateFile accepts the tokens %%, %d, %h, %l, %r, and %u. | 1052 | CertificateFile accepts the tokens %%, %d, %h, %i, %l, %r, and %u. |
1052 | 1053 | ||
1053 | ControlPath accepts the tokens %%, %C, %h, %i, %L, %l, %n, %p, %r, and | 1054 | ControlPath accepts the tokens %%, %C, %h, %i, %L, %l, %n, %p, %r, and |
1054 | %u. | 1055 | %u. |
1055 | 1056 | ||
1056 | HostName accepts the tokens %% and %h. | 1057 | HostName accepts the tokens %% and %h. |
1057 | 1058 | ||
1058 | IdentityAgent and IdentityFile accept the tokens %%, %d, %h, %l, %r, and | 1059 | IdentityAgent and IdentityFile accept the tokens %%, %d, %h, %i, %l, %r, |
1059 | %u. | 1060 | and %u. |
1060 | 1061 | ||
1061 | LocalCommand accepts the tokens %%, %C, %d, %h, %l, %n, %p, %r, %T, and | 1062 | LocalCommand accepts the tokens %%, %C, %d, %h, %i, %l, %n, %p, %r, %T, |
1062 | %u. | 1063 | and %u. |
1063 | 1064 | ||
1064 | ProxyCommand accepts the tokens %%, %h, %p, and %r. | 1065 | ProxyCommand accepts the tokens %%, %h, %p, and %r. |
1065 | 1066 | ||
1066 | RemoteCommand accepts the tokens %%, %C, %d, %h, %l, %n, %p, %r, and %u. | 1067 | RemoteCommand accepts the tokens %%, %C, %d, %h, %i, %l, %n, %p, %r, and |
1068 | %u. | ||
1067 | 1069 | ||
1068 | FILES | 1070 | FILES |
1069 | ~/.ssh/config | 1071 | ~/.ssh/config |
@@ -1089,4 +1091,4 @@ AUTHORS | |||
1089 | created OpenSSH. Markus Friedl contributed the support for SSH protocol | 1091 | created OpenSSH. Markus Friedl contributed the support for SSH protocol |
1090 | versions 1.5 and 2.0. | 1092 | versions 1.5 and 2.0. |
1091 | 1093 | ||
1092 | OpenBSD 6.2 February 23, 2018 OpenBSD 6.2 | 1094 | OpenBSD 6.4 July 23, 2018 OpenBSD 6.4 |
diff --git a/ssh_config.5 b/ssh_config.5 index 71705cabd..f499396a3 100644 --- a/ssh_config.5 +++ b/ssh_config.5 | |||
@@ -33,8 +33,8 @@ | |||
33 | .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | 33 | .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
34 | .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 34 | .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
35 | .\" | 35 | .\" |
36 | .\" $OpenBSD: ssh_config.5,v 1.268 2018/02/23 07:38:09 jmc Exp $ | 36 | .\" $OpenBSD: ssh_config.5,v 1.281 2018/07/23 19:02:49 kn Exp $ |
37 | .Dd $Mdocdate: February 23 2018 $ | 37 | .Dd $Mdocdate: July 23 2018 $ |
38 | .Dt SSH_CONFIG 5 | 38 | .Dt SSH_CONFIG 5 |
39 | .Os | 39 | .Os |
40 | .Sh NAME | 40 | .Sh NAME |
@@ -258,17 +258,9 @@ or | |||
258 | Use the specified address on the local machine as the source address of | 258 | Use the specified address on the local machine as the source address of |
259 | the connection. | 259 | the connection. |
260 | Only useful on systems with more than one address. | 260 | Only useful on systems with more than one address. |
261 | Note that this option does not work if | ||
262 | .Cm UsePrivilegedPort | ||
263 | is set to | ||
264 | .Cm yes . | ||
265 | .It Cm BindInterface | 261 | .It Cm BindInterface |
266 | Use the address of the specified interface on the local machine as the | 262 | Use the address of the specified interface on the local machine as the |
267 | source address of the connection. | 263 | source address of the connection. |
268 | Note that this option does not work if | ||
269 | .Cm UsePrivilegedPort | ||
270 | is set to | ||
271 | .Cm yes . | ||
272 | .It Cm CanonicalDomains | 264 | .It Cm CanonicalDomains |
273 | When | 265 | When |
274 | .Cm CanonicalizeHostname | 266 | .Cm CanonicalizeHostname |
@@ -425,8 +417,7 @@ The default is: | |||
425 | .Bd -literal -offset indent | 417 | .Bd -literal -offset indent |
426 | chacha20-poly1305@openssh.com, | 418 | chacha20-poly1305@openssh.com, |
427 | aes128-ctr,aes192-ctr,aes256-ctr, | 419 | aes128-ctr,aes192-ctr,aes256-ctr, |
428 | aes128-gcm@openssh.com,aes256-gcm@openssh.com, | 420 | aes128-gcm@openssh.com,aes256-gcm@openssh.com |
429 | aes128-cbc,aes192-cbc,aes256-cbc | ||
430 | .Ed | 421 | .Ed |
431 | .Pp | 422 | .Pp |
432 | The list of available ciphers may also be obtained using | 423 | The list of available ciphers may also be obtained using |
@@ -758,7 +749,7 @@ or | |||
758 | (the default). | 749 | (the default). |
759 | .It Cm HostbasedKeyTypes | 750 | .It Cm HostbasedKeyTypes |
760 | Specifies the key types that will be used for hostbased authentication | 751 | Specifies the key types that will be used for hostbased authentication |
761 | as a comma-separated pattern list. | 752 | as a comma-separated list of patterns. |
762 | Alternately if the specified value begins with a | 753 | Alternately if the specified value begins with a |
763 | .Sq + | 754 | .Sq + |
764 | character, then the specified key types will be appended to the default set | 755 | character, then the specified key types will be appended to the default set |
@@ -773,9 +764,10 @@ ecdsa-sha2-nistp256-cert-v01@openssh.com, | |||
773 | ecdsa-sha2-nistp384-cert-v01@openssh.com, | 764 | ecdsa-sha2-nistp384-cert-v01@openssh.com, |
774 | ecdsa-sha2-nistp521-cert-v01@openssh.com, | 765 | ecdsa-sha2-nistp521-cert-v01@openssh.com, |
775 | ssh-ed25519-cert-v01@openssh.com, | 766 | ssh-ed25519-cert-v01@openssh.com, |
767 | rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com, | ||
776 | ssh-rsa-cert-v01@openssh.com, | 768 | ssh-rsa-cert-v01@openssh.com, |
777 | ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521, | 769 | ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521, |
778 | ssh-ed25519,ssh-rsa | 770 | ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa |
779 | .Ed | 771 | .Ed |
780 | .Pp | 772 | .Pp |
781 | The | 773 | The |
@@ -800,9 +792,10 @@ ecdsa-sha2-nistp256-cert-v01@openssh.com, | |||
800 | ecdsa-sha2-nistp384-cert-v01@openssh.com, | 792 | ecdsa-sha2-nistp384-cert-v01@openssh.com, |
801 | ecdsa-sha2-nistp521-cert-v01@openssh.com, | 793 | ecdsa-sha2-nistp521-cert-v01@openssh.com, |
802 | ssh-ed25519-cert-v01@openssh.com, | 794 | ssh-ed25519-cert-v01@openssh.com, |
795 | rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com, | ||
803 | ssh-rsa-cert-v01@openssh.com, | 796 | ssh-rsa-cert-v01@openssh.com, |
804 | ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521, | 797 | ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521, |
805 | ssh-ed25519,ssh-rsa | 798 | ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa |
806 | .Ed | 799 | .Ed |
807 | .Pp | 800 | .Pp |
808 | If hostkeys are known for the destination host then this default is modified | 801 | If hostkeys are known for the destination host then this default is modified |
@@ -933,7 +926,7 @@ to unknown options that appear before it. | |||
933 | .It Cm Include | 926 | .It Cm Include |
934 | Include the specified configuration file(s). | 927 | Include the specified configuration file(s). |
935 | Multiple pathnames may be specified and each pathname may contain | 928 | Multiple pathnames may be specified and each pathname may contain |
936 | .Xr glob 3 | 929 | .Xr glob 7 |
937 | wildcards and, for user configurations, shell-like | 930 | wildcards and, for user configurations, shell-like |
938 | .Sq ~ | 931 | .Sq ~ |
939 | references to user home directories. | 932 | references to user home directories. |
@@ -984,9 +977,11 @@ If one argument is specified, it is used as the packet class unconditionally. | |||
984 | If two values are specified, the first is automatically selected for | 977 | If two values are specified, the first is automatically selected for |
985 | interactive sessions and the second for non-interactive sessions. | 978 | interactive sessions and the second for non-interactive sessions. |
986 | The default is | 979 | The default is |
987 | .Cm lowdelay | 980 | .Cm af21 |
981 | (Low-Latency Data) | ||
988 | for interactive sessions and | 982 | for interactive sessions and |
989 | .Cm throughput | 983 | .Cm cs1 |
984 | (Lower Effort) | ||
990 | for non-interactive sessions. | 985 | for non-interactive sessions. |
991 | .It Cm KbdInteractiveAuthentication | 986 | .It Cm KbdInteractiveAuthentication |
992 | Specifies whether to use keyboard-interactive authentication. | 987 | Specifies whether to use keyboard-interactive authentication. |
@@ -1002,10 +997,9 @@ The default is to use the server specified list. | |||
1002 | The methods available vary depending on what the server supports. | 997 | The methods available vary depending on what the server supports. |
1003 | For an OpenSSH server, | 998 | For an OpenSSH server, |
1004 | it may be zero or more of: | 999 | it may be zero or more of: |
1005 | .Cm bsdauth , | 1000 | .Cm bsdauth |
1006 | .Cm pam , | ||
1007 | and | 1001 | and |
1008 | .Cm skey . | 1002 | .Cm pam . |
1009 | .It Cm KexAlgorithms | 1003 | .It Cm KexAlgorithms |
1010 | Specifies the available KEX (Key Exchange) algorithms. | 1004 | Specifies the available KEX (Key Exchange) algorithms. |
1011 | Multiple algorithms must be comma-separated. | 1005 | Multiple algorithms must be comma-separated. |
@@ -1239,7 +1233,7 @@ The default is | |||
1239 | .Cm no . | 1233 | .Cm no . |
1240 | .It Cm PubkeyAcceptedKeyTypes | 1234 | .It Cm PubkeyAcceptedKeyTypes |
1241 | Specifies the key types that will be used for public key authentication | 1235 | Specifies the key types that will be used for public key authentication |
1242 | as a comma-separated pattern list. | 1236 | as a comma-separated list of patterns. |
1243 | Alternately if the specified value begins with a | 1237 | Alternately if the specified value begins with a |
1244 | .Sq + | 1238 | .Sq + |
1245 | character, then the key types after it will be appended to the default | 1239 | character, then the key types after it will be appended to the default |
@@ -1254,9 +1248,10 @@ ecdsa-sha2-nistp256-cert-v01@openssh.com, | |||
1254 | ecdsa-sha2-nistp384-cert-v01@openssh.com, | 1248 | ecdsa-sha2-nistp384-cert-v01@openssh.com, |
1255 | ecdsa-sha2-nistp521-cert-v01@openssh.com, | 1249 | ecdsa-sha2-nistp521-cert-v01@openssh.com, |
1256 | ssh-ed25519-cert-v01@openssh.com, | 1250 | ssh-ed25519-cert-v01@openssh.com, |
1251 | rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com, | ||
1257 | ssh-rsa-cert-v01@openssh.com, | 1252 | ssh-rsa-cert-v01@openssh.com, |
1258 | ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521, | 1253 | ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521, |
1259 | ssh-ed25519,ssh-rsa | 1254 | ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa |
1260 | .Ed | 1255 | .Ed |
1261 | .Pp | 1256 | .Pp |
1262 | The list of available key types may also be obtained using | 1257 | The list of available key types may also be obtained using |
@@ -1307,7 +1302,7 @@ section. | |||
1307 | .It Cm RemoteForward | 1302 | .It Cm RemoteForward |
1308 | Specifies that a TCP port on the remote machine be forwarded over | 1303 | Specifies that a TCP port on the remote machine be forwarded over |
1309 | the secure channel. | 1304 | the secure channel. |
1310 | The remote port may either be fowarded to a specified host and port | 1305 | The remote port may either be forwarded to a specified host and port |
1311 | from the local machine, or may act as a SOCKS 4/5 proxy that allows a remote | 1306 | from the local machine, or may act as a SOCKS 4/5 proxy that allows a remote |
1312 | client to connect to arbitrary destinations from the local machine. | 1307 | client to connect to arbitrary destinations from the local machine. |
1313 | The first argument must be | 1308 | The first argument must be |
@@ -1393,11 +1388,16 @@ Multiple environment variables may be separated by whitespace or spread | |||
1393 | across multiple | 1388 | across multiple |
1394 | .Cm SendEnv | 1389 | .Cm SendEnv |
1395 | directives. | 1390 | directives. |
1396 | The default is not to send any environment variables. | ||
1397 | .Pp | 1391 | .Pp |
1398 | See | 1392 | See |
1399 | .Sx PATTERNS | 1393 | .Sx PATTERNS |
1400 | for more information on patterns. | 1394 | for more information on patterns. |
1395 | .Pp | ||
1396 | It is possible to clear previously set | ||
1397 | .Cm SendEnv | ||
1398 | variable names by prefixing patterns with | ||
1399 | .Pa - . | ||
1400 | The default is not to send any environment variables. | ||
1401 | .It Cm ServerAliveCountMax | 1401 | .It Cm ServerAliveCountMax |
1402 | Sets the number of server alive messages (see below) which may be | 1402 | Sets the number of server alive messages (see below) which may be |
1403 | sent without | 1403 | sent without |
@@ -1432,6 +1432,12 @@ will send a message through the encrypted | |||
1432 | channel to request a response from the server. | 1432 | channel to request a response from the server. |
1433 | The default | 1433 | The default |
1434 | is 0, indicating that these messages will not be sent to the server. | 1434 | is 0, indicating that these messages will not be sent to the server. |
1435 | .It Cm SetEnv | ||
1436 | Directly specify one or more environment variables and their contents to | ||
1437 | be sent to the server. | ||
1438 | Similarly to | ||
1439 | .Cm SendEnv , | ||
1440 | the server must be prepared to accept the environment variable. | ||
1435 | .It Cm StreamLocalBindMask | 1441 | .It Cm StreamLocalBindMask |
1436 | Sets the octal file creation mode mask | 1442 | Sets the octal file creation mode mask |
1437 | .Pq umask | 1443 | .Pq umask |
@@ -1588,17 +1594,6 @@ Presently, only | |||
1588 | from OpenSSH 6.8 and greater support the | 1594 | from OpenSSH 6.8 and greater support the |
1589 | .Qq hostkeys@openssh.com | 1595 | .Qq hostkeys@openssh.com |
1590 | protocol extension used to inform the client of all the server's hostkeys. | 1596 | protocol extension used to inform the client of all the server's hostkeys. |
1591 | .It Cm UsePrivilegedPort | ||
1592 | Specifies whether to use a privileged port for outgoing connections. | ||
1593 | The argument must be | ||
1594 | .Cm yes | ||
1595 | or | ||
1596 | .Cm no | ||
1597 | (the default). | ||
1598 | If set to | ||
1599 | .Cm yes , | ||
1600 | .Xr ssh 1 | ||
1601 | must be setuid root. | ||
1602 | .It Cm User | 1597 | .It Cm User |
1603 | Specifies the user to log in as. | 1598 | Specifies the user to log in as. |
1604 | This can be useful when a different user name is used on different machines. | 1599 | This can be useful when a different user name is used on different machines. |
@@ -1737,10 +1732,10 @@ The local username. | |||
1737 | .El | 1732 | .El |
1738 | .Pp | 1733 | .Pp |
1739 | .Cm Match exec | 1734 | .Cm Match exec |
1740 | accepts the tokens %%, %h, %L, %l, %n, %p, %r, and %u. | 1735 | accepts the tokens %%, %h, %i, %L, %l, %n, %p, %r, and %u. |
1741 | .Pp | 1736 | .Pp |
1742 | .Cm CertificateFile | 1737 | .Cm CertificateFile |
1743 | accepts the tokens %%, %d, %h, %l, %r, and %u. | 1738 | accepts the tokens %%, %d, %h, %i, %l, %r, and %u. |
1744 | .Pp | 1739 | .Pp |
1745 | .Cm ControlPath | 1740 | .Cm ControlPath |
1746 | accepts the tokens %%, %C, %h, %i, %L, %l, %n, %p, %r, and %u. | 1741 | accepts the tokens %%, %C, %h, %i, %L, %l, %n, %p, %r, and %u. |
@@ -1751,16 +1746,16 @@ accepts the tokens %% and %h. | |||
1751 | .Cm IdentityAgent | 1746 | .Cm IdentityAgent |
1752 | and | 1747 | and |
1753 | .Cm IdentityFile | 1748 | .Cm IdentityFile |
1754 | accept the tokens %%, %d, %h, %l, %r, and %u. | 1749 | accept the tokens %%, %d, %h, %i, %l, %r, and %u. |
1755 | .Pp | 1750 | .Pp |
1756 | .Cm LocalCommand | 1751 | .Cm LocalCommand |
1757 | accepts the tokens %%, %C, %d, %h, %l, %n, %p, %r, %T, and %u. | 1752 | accepts the tokens %%, %C, %d, %h, %i, %l, %n, %p, %r, %T, and %u. |
1758 | .Pp | 1753 | .Pp |
1759 | .Cm ProxyCommand | 1754 | .Cm ProxyCommand |
1760 | accepts the tokens %%, %h, %p, and %r. | 1755 | accepts the tokens %%, %h, %p, and %r. |
1761 | .Pp | 1756 | .Pp |
1762 | .Cm RemoteCommand | 1757 | .Cm RemoteCommand |
1763 | accepts the tokens %%, %C, %d, %h, %l, %n, %p, %r, and %u. | 1758 | accepts the tokens %%, %C, %d, %h, %i, %l, %n, %p, %r, and %u. |
1764 | .Sh FILES | 1759 | .Sh FILES |
1765 | .Bl -tag -width Ds | 1760 | .Bl -tag -width Ds |
1766 | .It Pa ~/.ssh/config | 1761 | .It Pa ~/.ssh/config |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: sshbuf.c,v 1.11 2017/06/01 06:58:25 djm Exp $ */ | 1 | /* $OpenBSD: sshbuf.c,v 1.12 2018/07/09 21:56:06 markus Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2011 Damien Miller | 3 | * Copyright (c) 2011 Damien Miller |
4 | * | 4 | * |
@@ -36,7 +36,6 @@ sshbuf_check_sanity(const struct sshbuf *buf) | |||
36 | (!buf->readonly && buf->d != buf->cd) || | 36 | (!buf->readonly && buf->d != buf->cd) || |
37 | buf->refcount < 1 || buf->refcount > SSHBUF_REFS_MAX || | 37 | buf->refcount < 1 || buf->refcount > SSHBUF_REFS_MAX || |
38 | buf->cd == NULL || | 38 | buf->cd == NULL || |
39 | (buf->dont_free && (buf->readonly || buf->parent != NULL)) || | ||
40 | buf->max_size > SSHBUF_SIZE_MAX || | 39 | buf->max_size > SSHBUF_SIZE_MAX || |
41 | buf->alloc > buf->max_size || | 40 | buf->alloc > buf->max_size || |
42 | buf->size > buf->alloc || | 41 | buf->size > buf->alloc || |
@@ -132,23 +131,8 @@ sshbuf_fromb(struct sshbuf *buf) | |||
132 | } | 131 | } |
133 | 132 | ||
134 | void | 133 | void |
135 | sshbuf_init(struct sshbuf *ret) | ||
136 | { | ||
137 | explicit_bzero(ret, sizeof(*ret)); | ||
138 | ret->alloc = SSHBUF_SIZE_INIT; | ||
139 | ret->max_size = SSHBUF_SIZE_MAX; | ||
140 | ret->readonly = 0; | ||
141 | ret->dont_free = 1; | ||
142 | ret->refcount = 1; | ||
143 | if ((ret->cd = ret->d = calloc(1, ret->alloc)) == NULL) | ||
144 | ret->alloc = 0; | ||
145 | } | ||
146 | |||
147 | void | ||
148 | sshbuf_free(struct sshbuf *buf) | 134 | sshbuf_free(struct sshbuf *buf) |
149 | { | 135 | { |
150 | int dont_free = 0; | ||
151 | |||
152 | if (buf == NULL) | 136 | if (buf == NULL) |
153 | return; | 137 | return; |
154 | /* | 138 | /* |
@@ -173,14 +157,12 @@ sshbuf_free(struct sshbuf *buf) | |||
173 | buf->refcount--; | 157 | buf->refcount--; |
174 | if (buf->refcount > 0) | 158 | if (buf->refcount > 0) |
175 | return; | 159 | return; |
176 | dont_free = buf->dont_free; | ||
177 | if (!buf->readonly) { | 160 | if (!buf->readonly) { |
178 | explicit_bzero(buf->d, buf->alloc); | 161 | explicit_bzero(buf->d, buf->alloc); |
179 | free(buf->d); | 162 | free(buf->d); |
180 | } | 163 | } |
181 | explicit_bzero(buf, sizeof(*buf)); | 164 | explicit_bzero(buf, sizeof(*buf)); |
182 | if (!dont_free) | 165 | free(buf); |
183 | free(buf); | ||
184 | } | 166 | } |
185 | 167 | ||
186 | void | 168 | void |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: sshbuf.h,v 1.9 2017/09/12 06:32:07 djm Exp $ */ | 1 | /* $OpenBSD: sshbuf.h,v 1.11 2018/07/09 21:56:06 markus Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2011 Damien Miller | 3 | * Copyright (c) 2011 Damien Miller |
4 | * | 4 | * |
@@ -50,15 +50,6 @@ struct sshbuf { | |||
50 | struct sshbuf *parent; /* If child, pointer to parent */ | 50 | struct sshbuf *parent; /* If child, pointer to parent */ |
51 | }; | 51 | }; |
52 | 52 | ||
53 | #ifndef SSHBUF_NO_DEPREACTED | ||
54 | /* | ||
55 | * NB. Please do not use sshbuf_init() in new code. Please use sshbuf_new() | ||
56 | * instead. sshbuf_init() is deprectated and will go away soon (it is | ||
57 | * only included to allow compat with buffer_* in OpenSSH) | ||
58 | */ | ||
59 | void sshbuf_init(struct sshbuf *buf); | ||
60 | #endif | ||
61 | |||
62 | /* | 53 | /* |
63 | * Create a new sshbuf buffer. | 54 | * Create a new sshbuf buffer. |
64 | * Returns pointer to buffer on success, or NULL on allocation failure. | 55 | * Returns pointer to buffer on success, or NULL on allocation failure. |
diff --git a/sshconnect.c b/sshconnect.c index 3805d35d9..78813c164 100644 --- a/sshconnect.c +++ b/sshconnect.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: sshconnect.c,v 1.297 2018/02/23 15:58:38 markus Exp $ */ | 1 | /* $OpenBSD: sshconnect.c,v 1.304 2018/07/27 05:34:42 dtucker Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -49,14 +49,12 @@ | |||
49 | #endif | 49 | #endif |
50 | 50 | ||
51 | #include "xmalloc.h" | 51 | #include "xmalloc.h" |
52 | #include "key.h" | ||
53 | #include "hostfile.h" | 52 | #include "hostfile.h" |
54 | #include "ssh.h" | 53 | #include "ssh.h" |
55 | #include "buffer.h" | 54 | #include "sshbuf.h" |
56 | #include "packet.h" | 55 | #include "packet.h" |
57 | #include "uidswap.h" | ||
58 | #include "compat.h" | 56 | #include "compat.h" |
59 | #include "key.h" | 57 | #include "sshkey.h" |
60 | #include "sshconnect.h" | 58 | #include "sshconnect.h" |
61 | #include "hostfile.h" | 59 | #include "hostfile.h" |
62 | #include "log.h" | 60 | #include "log.h" |
@@ -82,8 +80,6 @@ static pid_t proxy_command_pid = 0; | |||
82 | /* import */ | 80 | /* import */ |
83 | extern Options options; | 81 | extern Options options; |
84 | extern char *__progname; | 82 | extern char *__progname; |
85 | extern uid_t original_real_uid; | ||
86 | extern uid_t original_effective_uid; | ||
87 | 83 | ||
88 | static int show_other_keys(struct hostkeys *, struct sshkey *); | 84 | static int show_other_keys(struct hostkeys *, struct sshkey *); |
89 | static void warn_changed_key(struct sshkey *); | 85 | static void warn_changed_key(struct sshkey *); |
@@ -131,9 +127,6 @@ ssh_proxy_fdpass_connect(struct ssh *ssh, const char *host, u_short port, | |||
131 | if ((pid = fork()) == 0) { | 127 | if ((pid = fork()) == 0) { |
132 | char *argv[10]; | 128 | char *argv[10]; |
133 | 129 | ||
134 | /* Child. Permanently give up superuser privileges. */ | ||
135 | permanently_drop_suid(original_real_uid); | ||
136 | |||
137 | close(sp[1]); | 130 | close(sp[1]); |
138 | /* Redirect stdin and stdout. */ | 131 | /* Redirect stdin and stdout. */ |
139 | if (sp[0] != 0) { | 132 | if (sp[0] != 0) { |
@@ -213,9 +206,6 @@ ssh_proxy_connect(struct ssh *ssh, const char *host, u_short port, | |||
213 | if ((pid = fork()) == 0) { | 206 | if ((pid = fork()) == 0) { |
214 | char *argv[10]; | 207 | char *argv[10]; |
215 | 208 | ||
216 | /* Child. Permanently give up superuser privileges. */ | ||
217 | permanently_drop_suid(original_real_uid); | ||
218 | |||
219 | /* Redirect stdin and stdout. */ | 209 | /* Redirect stdin and stdout. */ |
220 | close(pin[1]); | 210 | close(pin[1]); |
221 | if (pin[0] != 0) { | 211 | if (pin[0] != 0) { |
@@ -277,7 +267,7 @@ ssh_kill_proxy_command(void) | |||
277 | #ifdef HAVE_IFADDRS_H | 267 | #ifdef HAVE_IFADDRS_H |
278 | /* | 268 | /* |
279 | * Search a interface address list (returned from getifaddrs(3)) for an | 269 | * Search a interface address list (returned from getifaddrs(3)) for an |
280 | * address that matches the desired address family on the specifed interface. | 270 | * address that matches the desired address family on the specified interface. |
281 | * Returns 0 and fills in *resultp and *rlenp on success. Returns -1 on failure. | 271 | * Returns 0 and fills in *resultp and *rlenp on success. Returns -1 on failure. |
282 | */ | 272 | */ |
283 | static int | 273 | static int |
@@ -338,12 +328,12 @@ check_ifaddrs(const char *ifname, int af, const struct ifaddrs *ifaddrs, | |||
338 | #endif | 328 | #endif |
339 | 329 | ||
340 | /* | 330 | /* |
341 | * Creates a (possibly privileged) socket for use as the ssh connection. | 331 | * Creates a socket for use as the ssh connection. |
342 | */ | 332 | */ |
343 | static int | 333 | static int |
344 | ssh_create_socket(int privileged, struct addrinfo *ai) | 334 | ssh_create_socket(struct addrinfo *ai) |
345 | { | 335 | { |
346 | int sock, r, oerrno; | 336 | int sock, r; |
347 | struct sockaddr_storage bindaddr; | 337 | struct sockaddr_storage bindaddr; |
348 | socklen_t bindaddrlen = 0; | 338 | socklen_t bindaddrlen = 0; |
349 | struct addrinfo hints, *res = NULL; | 339 | struct addrinfo hints, *res = NULL; |
@@ -360,8 +350,7 @@ ssh_create_socket(int privileged, struct addrinfo *ai) | |||
360 | fcntl(sock, F_SETFD, FD_CLOEXEC); | 350 | fcntl(sock, F_SETFD, FD_CLOEXEC); |
361 | 351 | ||
362 | /* Bind the socket to an alternative local IP address */ | 352 | /* Bind the socket to an alternative local IP address */ |
363 | if (options.bind_address == NULL && options.bind_interface == NULL && | 353 | if (options.bind_address == NULL && options.bind_interface == NULL) |
364 | !privileged) | ||
365 | return sock; | 354 | return sock; |
366 | 355 | ||
367 | if (options.bind_address != NULL) { | 356 | if (options.bind_address != NULL) { |
@@ -410,22 +399,7 @@ ssh_create_socket(int privileged, struct addrinfo *ai) | |||
410 | ssh_gai_strerror(r)); | 399 | ssh_gai_strerror(r)); |
411 | goto fail; | 400 | goto fail; |
412 | } | 401 | } |
413 | /* | 402 | if (bind(sock, (struct sockaddr *)&bindaddr, bindaddrlen) != 0) { |
414 | * If we are running as root and want to connect to a privileged | ||
415 | * port, bind our own socket to a privileged port. | ||
416 | */ | ||
417 | if (privileged) { | ||
418 | PRIV_START; | ||
419 | r = bindresvport_sa(sock, | ||
420 | bindaddrlen == 0 ? NULL : (struct sockaddr *)&bindaddr); | ||
421 | oerrno = errno; | ||
422 | PRIV_END; | ||
423 | if (r < 0) { | ||
424 | error("bindresvport_sa %s: %s", ntop, | ||
425 | strerror(oerrno)); | ||
426 | goto fail; | ||
427 | } | ||
428 | } else if (bind(sock, (struct sockaddr *)&bindaddr, bindaddrlen) != 0) { | ||
429 | error("bind %s: %s", ntop, strerror(errno)); | 403 | error("bind %s: %s", ntop, strerror(errno)); |
430 | goto fail; | 404 | goto fail; |
431 | } | 405 | } |
@@ -515,9 +489,7 @@ timeout_connect(int sockfd, const struct sockaddr *serv_addr, | |||
515 | /* | 489 | /* |
516 | * Opens a TCP/IP connection to the remote server on the given host. | 490 | * Opens a TCP/IP connection to the remote server on the given host. |
517 | * The address of the remote host will be returned in hostaddr. | 491 | * The address of the remote host will be returned in hostaddr. |
518 | * If port is 0, the default port will be used. If needpriv is true, | 492 | * If port is 0, the default port will be used. |
519 | * a privileged port will be allocated to make the connection. | ||
520 | * This requires super-user privileges if needpriv is true. | ||
521 | * Connection_attempts specifies the maximum number of tries (one per | 493 | * Connection_attempts specifies the maximum number of tries (one per |
522 | * second). If proxy_command is non-NULL, it specifies the command (with %h | 494 | * second). If proxy_command is non-NULL, it specifies the command (with %h |
523 | * and %p substituted for host and port, respectively) to use to contact | 495 | * and %p substituted for host and port, respectively) to use to contact |
@@ -526,14 +498,14 @@ timeout_connect(int sockfd, const struct sockaddr *serv_addr, | |||
526 | static int | 498 | static int |
527 | ssh_connect_direct(struct ssh *ssh, const char *host, struct addrinfo *aitop, | 499 | ssh_connect_direct(struct ssh *ssh, const char *host, struct addrinfo *aitop, |
528 | struct sockaddr_storage *hostaddr, u_short port, int family, | 500 | struct sockaddr_storage *hostaddr, u_short port, int family, |
529 | int connection_attempts, int *timeout_ms, int want_keepalive, int needpriv) | 501 | int connection_attempts, int *timeout_ms, int want_keepalive) |
530 | { | 502 | { |
531 | int on = 1; | 503 | int on = 1; |
532 | int oerrno, sock = -1, attempt; | 504 | int oerrno, sock = -1, attempt; |
533 | char ntop[NI_MAXHOST], strport[NI_MAXSERV]; | 505 | char ntop[NI_MAXHOST], strport[NI_MAXSERV]; |
534 | struct addrinfo *ai; | 506 | struct addrinfo *ai; |
535 | 507 | ||
536 | debug2("%s: needpriv %d", __func__, needpriv); | 508 | debug2("%s", __func__); |
537 | memset(ntop, 0, sizeof(ntop)); | 509 | memset(ntop, 0, sizeof(ntop)); |
538 | memset(strport, 0, sizeof(strport)); | 510 | memset(strport, 0, sizeof(strport)); |
539 | 511 | ||
@@ -565,7 +537,7 @@ ssh_connect_direct(struct ssh *ssh, const char *host, struct addrinfo *aitop, | |||
565 | host, ntop, strport); | 537 | host, ntop, strport); |
566 | 538 | ||
567 | /* Create a socket for connecting. */ | 539 | /* Create a socket for connecting. */ |
568 | sock = ssh_create_socket(needpriv, ai); | 540 | sock = ssh_create_socket(ai); |
569 | if (sock < 0) { | 541 | if (sock < 0) { |
570 | /* Any error is already output */ | 542 | /* Any error is already output */ |
571 | errno = 0; | 543 | errno = 0; |
@@ -615,12 +587,11 @@ ssh_connect_direct(struct ssh *ssh, const char *host, struct addrinfo *aitop, | |||
615 | int | 587 | int |
616 | ssh_connect(struct ssh *ssh, const char *host, struct addrinfo *addrs, | 588 | ssh_connect(struct ssh *ssh, const char *host, struct addrinfo *addrs, |
617 | struct sockaddr_storage *hostaddr, u_short port, int family, | 589 | struct sockaddr_storage *hostaddr, u_short port, int family, |
618 | int connection_attempts, int *timeout_ms, int want_keepalive, int needpriv) | 590 | int connection_attempts, int *timeout_ms, int want_keepalive) |
619 | { | 591 | { |
620 | if (options.proxy_command == NULL) { | 592 | if (options.proxy_command == NULL) { |
621 | return ssh_connect_direct(ssh, host, addrs, hostaddr, port, | 593 | return ssh_connect_direct(ssh, host, addrs, hostaddr, port, |
622 | family, connection_attempts, timeout_ms, want_keepalive, | 594 | family, connection_attempts, timeout_ms, want_keepalive); |
623 | needpriv); | ||
624 | } else if (strcmp(options.proxy_command, "-") == 0) { | 595 | } else if (strcmp(options.proxy_command, "-") == 0) { |
625 | if ((ssh_packet_set_connection(ssh, | 596 | if ((ssh_packet_set_connection(ssh, |
626 | STDIN_FILENO, STDOUT_FILENO)) == NULL) | 597 | STDIN_FILENO, STDOUT_FILENO)) == NULL) |
@@ -767,11 +738,11 @@ check_host_cert(const char *host, const struct sshkey *host_key) | |||
767 | { | 738 | { |
768 | const char *reason; | 739 | const char *reason; |
769 | 740 | ||
770 | if (key_cert_check_authority(host_key, 1, 0, host, &reason) != 0) { | 741 | if (sshkey_cert_check_authority(host_key, 1, 0, host, &reason) != 0) { |
771 | error("%s", reason); | 742 | error("%s", reason); |
772 | return 0; | 743 | return 0; |
773 | } | 744 | } |
774 | if (buffer_len(host_key->cert->critical) != 0) { | 745 | if (sshbuf_len(host_key->cert->critical) != 0) { |
775 | error("Certificate for %s contains unsupported " | 746 | error("Certificate for %s contains unsupported " |
776 | "critical options(s)", host); | 747 | "critical options(s)", host); |
777 | return 0; | 748 | return 0; |
@@ -1496,9 +1467,9 @@ show_other_keys(struct hostkeys *hostkeys, struct sshkey *key) | |||
1496 | logit("WARNING: %s key found for host %s\n" | 1467 | logit("WARNING: %s key found for host %s\n" |
1497 | "in %s:%lu\n" | 1468 | "in %s:%lu\n" |
1498 | "%s key fingerprint %s.", | 1469 | "%s key fingerprint %s.", |
1499 | key_type(found->key), | 1470 | sshkey_type(found->key), |
1500 | found->host, found->file, found->line, | 1471 | found->host, found->file, found->line, |
1501 | key_type(found->key), fp); | 1472 | sshkey_type(found->key), fp); |
1502 | if (options.visual_host_key) | 1473 | if (options.visual_host_key) |
1503 | logit("%s", ra); | 1474 | logit("%s", ra); |
1504 | free(ra); | 1475 | free(ra); |
@@ -1525,7 +1496,7 @@ warn_changed_key(struct sshkey *host_key) | |||
1525 | error("Someone could be eavesdropping on you right now (man-in-the-middle attack)!"); | 1496 | error("Someone could be eavesdropping on you right now (man-in-the-middle attack)!"); |
1526 | error("It is also possible that a host key has just been changed."); | 1497 | error("It is also possible that a host key has just been changed."); |
1527 | error("The fingerprint for the %s key sent by the remote host is\n%s.", | 1498 | error("The fingerprint for the %s key sent by the remote host is\n%s.", |
1528 | key_type(host_key), fp); | 1499 | sshkey_type(host_key), fp); |
1529 | error("Please contact your system administrator."); | 1500 | error("Please contact your system administrator."); |
1530 | 1501 | ||
1531 | free(fp); | 1502 | free(fp); |
diff --git a/sshconnect.h b/sshconnect.h index dd648b096..890d85733 100644 --- a/sshconnect.h +++ b/sshconnect.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: sshconnect.h,v 1.32 2018/02/10 09:25:35 djm Exp $ */ | 1 | /* $OpenBSD: sshconnect.h,v 1.35 2018/07/19 10:28:47 dtucker Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Copyright (c) 2000 Markus Friedl. All rights reserved. | 4 | * Copyright (c) 2000 Markus Friedl. All rights reserved. |
@@ -28,14 +28,13 @@ typedef struct Sensitive Sensitive; | |||
28 | struct Sensitive { | 28 | struct Sensitive { |
29 | struct sshkey **keys; | 29 | struct sshkey **keys; |
30 | int nkeys; | 30 | int nkeys; |
31 | int external_keysign; | ||
32 | }; | 31 | }; |
33 | 32 | ||
34 | struct addrinfo; | 33 | struct addrinfo; |
35 | struct ssh; | 34 | struct ssh; |
36 | 35 | ||
37 | int ssh_connect(struct ssh *, const char *, struct addrinfo *, | 36 | int ssh_connect(struct ssh *, const char *, struct addrinfo *, |
38 | struct sockaddr_storage *, u_short, int, int, int *, int, int); | 37 | struct sockaddr_storage *, u_short, int, int, int *, int); |
39 | void ssh_kill_proxy_command(void); | 38 | void ssh_kill_proxy_command(void); |
40 | 39 | ||
41 | void ssh_login(Sensitive *, const char *, struct sockaddr *, u_short, | 40 | void ssh_login(Sensitive *, const char *, struct sockaddr *, u_short, |
@@ -58,22 +57,3 @@ void ssh_put_password(char *); | |||
58 | int ssh_local_cmd(const char *); | 57 | int ssh_local_cmd(const char *); |
59 | 58 | ||
60 | void maybe_add_key_to_agent(char *, const struct sshkey *, char *, char *); | 59 | void maybe_add_key_to_agent(char *, const struct sshkey *, char *, char *); |
61 | |||
62 | /* | ||
63 | * Macros to raise/lower permissions. | ||
64 | */ | ||
65 | #define PRIV_START do { \ | ||
66 | int save_errno = errno; \ | ||
67 | if (seteuid(original_effective_uid) != 0) \ | ||
68 | fatal("PRIV_START: seteuid: %s", \ | ||
69 | strerror(errno)); \ | ||
70 | errno = save_errno; \ | ||
71 | } while (0) | ||
72 | |||
73 | #define PRIV_END do { \ | ||
74 | int save_errno = errno; \ | ||
75 | if (seteuid(original_real_uid) != 0) \ | ||
76 | fatal("PRIV_END: seteuid: %s", \ | ||
77 | strerror(errno)); \ | ||
78 | errno = save_errno; \ | ||
79 | } while (0) | ||
diff --git a/sshconnect2.c b/sshconnect2.c index 1f4a74cf4..10e4f0a08 100644 --- a/sshconnect2.c +++ b/sshconnect2.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: sshconnect2.c,v 1.270 2018/03/24 19:28:43 markus Exp $ */ | 1 | /* $OpenBSD: sshconnect2.c,v 1.284 2018/08/13 02:41:05 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. |
4 | * Copyright (c) 2008 Damien Miller. All rights reserved. | 4 | * Copyright (c) 2008 Damien Miller. All rights reserved. |
@@ -49,11 +49,11 @@ | |||
49 | #include "xmalloc.h" | 49 | #include "xmalloc.h" |
50 | #include "ssh.h" | 50 | #include "ssh.h" |
51 | #include "ssh2.h" | 51 | #include "ssh2.h" |
52 | #include "buffer.h" | 52 | #include "sshbuf.h" |
53 | #include "packet.h" | 53 | #include "packet.h" |
54 | #include "compat.h" | 54 | #include "compat.h" |
55 | #include "cipher.h" | 55 | #include "cipher.h" |
56 | #include "key.h" | 56 | #include "sshkey.h" |
57 | #include "kex.h" | 57 | #include "kex.h" |
58 | #include "myproposal.h" | 58 | #include "myproposal.h" |
59 | #include "sshconnect.h" | 59 | #include "sshconnect.h" |
@@ -158,7 +158,7 @@ void | |||
158 | ssh_kex2(char *host, struct sockaddr *hostaddr, u_short port) | 158 | ssh_kex2(char *host, struct sockaddr *hostaddr, u_short port) |
159 | { | 159 | { |
160 | char *myproposal[PROPOSAL_MAX] = { KEX_CLIENT }; | 160 | char *myproposal[PROPOSAL_MAX] = { KEX_CLIENT }; |
161 | char *s; | 161 | char *s, *all_key; |
162 | struct kex *kex; | 162 | struct kex *kex; |
163 | int r; | 163 | int r; |
164 | 164 | ||
@@ -178,9 +178,11 @@ ssh_kex2(char *host, struct sockaddr *hostaddr, u_short port) | |||
178 | myproposal[PROPOSAL_MAC_ALGS_CTOS] = | 178 | myproposal[PROPOSAL_MAC_ALGS_CTOS] = |
179 | myproposal[PROPOSAL_MAC_ALGS_STOC] = options.macs; | 179 | myproposal[PROPOSAL_MAC_ALGS_STOC] = options.macs; |
180 | if (options.hostkeyalgorithms != NULL) { | 180 | if (options.hostkeyalgorithms != NULL) { |
181 | if (kex_assemble_names(KEX_DEFAULT_PK_ALG, | 181 | all_key = sshkey_alg_list(0, 0, 1, ','); |
182 | &options.hostkeyalgorithms) != 0) | 182 | if (kex_assemble_names(&options.hostkeyalgorithms, |
183 | KEX_DEFAULT_PK_ALG, all_key) != 0) | ||
183 | fatal("%s: kex_assemble_namelist", __func__); | 184 | fatal("%s: kex_assemble_namelist", __func__); |
185 | free(all_key); | ||
184 | myproposal[PROPOSAL_SERVER_HOST_KEY_ALGS] = | 186 | myproposal[PROPOSAL_SERVER_HOST_KEY_ALGS] = |
185 | compat_pkalg_proposal(options.hostkeyalgorithms); | 187 | compat_pkalg_proposal(options.hostkeyalgorithms); |
186 | } else { | 188 | } else { |
@@ -230,10 +232,11 @@ ssh_kex2(char *host, struct sockaddr *hostaddr, u_short port) | |||
230 | 232 | ||
231 | #ifdef DEBUG_KEXDH | 233 | #ifdef DEBUG_KEXDH |
232 | /* send 1st encrypted/maced/compressed message */ | 234 | /* send 1st encrypted/maced/compressed message */ |
233 | packet_start(SSH2_MSG_IGNORE); | 235 | if ((r = sshpkt_start(ssh, SSH2_MSG_IGNORE)) != 0 || |
234 | packet_put_cstring("markus"); | 236 | (r = sshpkt_put_cstring(ssh, "markus")) != 0 || |
235 | packet_send(); | 237 | (r = sshpkt_send(ssh)) != 0 || |
236 | packet_write_wait(); | 238 | (r = ssh_packet_write_wait(ssh)) != 0) |
239 | fatal("%s: %s", __func__, ssh_err(r)); | ||
237 | #endif | 240 | #endif |
238 | } | 241 | } |
239 | 242 | ||
@@ -315,7 +318,7 @@ int input_gssapi_errtok(int, u_int32_t, struct ssh *); | |||
315 | 318 | ||
316 | void userauth(Authctxt *, char *); | 319 | void userauth(Authctxt *, char *); |
317 | 320 | ||
318 | static int sign_and_send_pubkey(Authctxt *, Identity *); | 321 | static int sign_and_send_pubkey(struct ssh *ssh, Authctxt *, Identity *); |
319 | static void pubkey_prepare(Authctxt *); | 322 | static void pubkey_prepare(Authctxt *); |
320 | static void pubkey_cleanup(Authctxt *); | 323 | static void pubkey_cleanup(Authctxt *); |
321 | static void pubkey_reset(Authctxt *); | 324 | static void pubkey_reset(Authctxt *); |
@@ -455,6 +458,8 @@ input_userauth_ext_info(int type, u_int32_t seqnr, struct ssh *ssh) | |||
455 | void | 458 | void |
456 | userauth(Authctxt *authctxt, char *authlist) | 459 | userauth(Authctxt *authctxt, char *authlist) |
457 | { | 460 | { |
461 | struct ssh *ssh = active_state; /* XXX */ | ||
462 | |||
458 | if (authctxt->method != NULL && authctxt->method->cleanup != NULL) | 463 | if (authctxt->method != NULL && authctxt->method->cleanup != NULL) |
459 | authctxt->method->cleanup(authctxt); | 464 | authctxt->method->cleanup(authctxt); |
460 | 465 | ||
@@ -474,7 +479,7 @@ userauth(Authctxt *authctxt, char *authlist) | |||
474 | authctxt->method = method; | 479 | authctxt->method = method; |
475 | 480 | ||
476 | /* reset the per method handler */ | 481 | /* reset the per method handler */ |
477 | dispatch_range(SSH2_MSG_USERAUTH_PER_METHOD_MIN, | 482 | ssh_dispatch_range(ssh, SSH2_MSG_USERAUTH_PER_METHOD_MIN, |
478 | SSH2_MSG_USERAUTH_PER_METHOD_MAX, NULL); | 483 | SSH2_MSG_USERAUTH_PER_METHOD_MAX, NULL); |
479 | 484 | ||
480 | /* and try new method */ | 485 | /* and try new method */ |
@@ -551,14 +556,16 @@ input_userauth_failure(int type, u_int32_t seq, struct ssh *ssh) | |||
551 | { | 556 | { |
552 | Authctxt *authctxt = ssh->authctxt; | 557 | Authctxt *authctxt = ssh->authctxt; |
553 | char *authlist = NULL; | 558 | char *authlist = NULL; |
554 | int partial; | 559 | u_char partial; |
560 | int r; | ||
555 | 561 | ||
556 | if (authctxt == NULL) | 562 | if (authctxt == NULL) |
557 | fatal("input_userauth_failure: no authentication context"); | 563 | fatal("input_userauth_failure: no authentication context"); |
558 | 564 | ||
559 | authlist = packet_get_string(NULL); | 565 | if ((r = sshpkt_get_cstring(ssh, &authlist, NULL)) != 0 || |
560 | partial = packet_get_char(); | 566 | (r = sshpkt_get_u8(ssh, &partial)) != 0 || |
561 | packet_check_eom(); | 567 | (r = sshpkt_get_end(ssh)) != 0) |
568 | goto out; | ||
562 | 569 | ||
563 | if (partial != 0) { | 570 | if (partial != 0) { |
564 | verbose("Authenticated with partial success."); | 571 | verbose("Authenticated with partial success."); |
@@ -568,6 +575,9 @@ input_userauth_failure(int type, u_int32_t seq, struct ssh *ssh) | |||
568 | debug("Authentications that can continue: %s", authlist); | 575 | debug("Authentications that can continue: %s", authlist); |
569 | 576 | ||
570 | userauth(authctxt, authlist); | 577 | userauth(authctxt, authlist); |
578 | authlist = NULL; | ||
579 | out: | ||
580 | free(authlist); | ||
571 | return 0; | 581 | return 0; |
572 | } | 582 | } |
573 | 583 | ||
@@ -579,25 +589,27 @@ input_userauth_pk_ok(int type, u_int32_t seq, struct ssh *ssh) | |||
579 | struct sshkey *key = NULL; | 589 | struct sshkey *key = NULL; |
580 | Identity *id = NULL; | 590 | Identity *id = NULL; |
581 | int pktype, sent = 0; | 591 | int pktype, sent = 0; |
582 | u_int alen, blen; | 592 | size_t blen; |
583 | char *pkalg, *fp; | 593 | char *pkalg = NULL, *fp; |
584 | u_char *pkblob; | 594 | u_char *pkblob = NULL; |
595 | int r; | ||
585 | 596 | ||
586 | if (authctxt == NULL) | 597 | if (authctxt == NULL) |
587 | fatal("input_userauth_pk_ok: no authentication context"); | 598 | fatal("input_userauth_pk_ok: no authentication context"); |
588 | 599 | ||
589 | pkalg = packet_get_string(&alen); | 600 | if ((r = sshpkt_get_cstring(ssh, &pkalg, NULL)) != 0 || |
590 | pkblob = packet_get_string(&blen); | 601 | (r = sshpkt_get_string(ssh, &pkblob, &blen)) != 0 || |
591 | packet_check_eom(); | 602 | (r = sshpkt_get_end(ssh)) != 0) |
603 | goto done; | ||
592 | 604 | ||
593 | debug("Server accepts key: pkalg %s blen %u", pkalg, blen); | 605 | debug("Server accepts key: pkalg %s blen %zu", pkalg, blen); |
594 | 606 | ||
595 | if ((pktype = key_type_from_name(pkalg)) == KEY_UNSPEC) { | 607 | if ((pktype = sshkey_type_from_name(pkalg)) == KEY_UNSPEC) { |
596 | debug("unknown pkalg %s", pkalg); | 608 | debug("unknown pkalg %s", pkalg); |
597 | goto done; | 609 | goto done; |
598 | } | 610 | } |
599 | if ((key = key_from_blob(pkblob, blen)) == NULL) { | 611 | if ((r = sshkey_from_blob(pkblob, blen, &key)) != 0) { |
600 | debug("no key from blob. pkalg %s", pkalg); | 612 | debug("no key from blob. pkalg %s: %s", pkalg, ssh_err(r)); |
601 | goto done; | 613 | goto done; |
602 | } | 614 | } |
603 | if (key->type != pktype) { | 615 | if (key->type != pktype) { |
@@ -618,31 +630,33 @@ input_userauth_pk_ok(int type, u_int32_t seq, struct ssh *ssh) | |||
618 | * duplicate keys | 630 | * duplicate keys |
619 | */ | 631 | */ |
620 | TAILQ_FOREACH_REVERSE(id, &authctxt->keys, idlist, next) { | 632 | TAILQ_FOREACH_REVERSE(id, &authctxt->keys, idlist, next) { |
621 | if (key_equal(key, id->key)) { | 633 | if (sshkey_equal(key, id->key)) { |
622 | sent = sign_and_send_pubkey(authctxt, id); | 634 | sent = sign_and_send_pubkey(ssh, authctxt, id); |
623 | break; | 635 | break; |
624 | } | 636 | } |
625 | } | 637 | } |
626 | done: | 638 | r = 0; |
627 | key_free(key); | 639 | done: |
640 | sshkey_free(key); | ||
628 | free(pkalg); | 641 | free(pkalg); |
629 | free(pkblob); | 642 | free(pkblob); |
630 | 643 | ||
631 | /* try another method if we did not send a packet */ | 644 | /* try another method if we did not send a packet */ |
632 | if (sent == 0) | 645 | if (r == 0 && sent == 0) |
633 | userauth(authctxt, NULL); | 646 | userauth(authctxt, NULL); |
634 | return 0; | 647 | return r; |
635 | } | 648 | } |
636 | 649 | ||
637 | #ifdef GSSAPI | 650 | #ifdef GSSAPI |
638 | int | 651 | int |
639 | userauth_gssapi(Authctxt *authctxt) | 652 | userauth_gssapi(Authctxt *authctxt) |
640 | { | 653 | { |
654 | struct ssh *ssh = active_state; /* XXX */ | ||
641 | Gssctxt *gssctxt = NULL; | 655 | Gssctxt *gssctxt = NULL; |
642 | static gss_OID_set gss_supported = NULL; | 656 | static gss_OID_set gss_supported = NULL; |
643 | static u_int mech = 0; | 657 | static u_int mech = 0; |
644 | OM_uint32 min; | 658 | OM_uint32 min; |
645 | int ok = 0; | 659 | int r, ok = 0; |
646 | 660 | ||
647 | /* Try one GSSAPI method at a time, rather than sending them all at | 661 | /* Try one GSSAPI method at a time, rather than sending them all at |
648 | * once. */ | 662 | * once. */ |
@@ -654,7 +668,7 @@ userauth_gssapi(Authctxt *authctxt) | |||
654 | while (mech < gss_supported->count && !ok) { | 668 | while (mech < gss_supported->count && !ok) { |
655 | /* My DER encoding requires length<128 */ | 669 | /* My DER encoding requires length<128 */ |
656 | if (gss_supported->elements[mech].length < 128 && | 670 | if (gss_supported->elements[mech].length < 128 && |
657 | ssh_gssapi_check_mechanism(&gssctxt, | 671 | ssh_gssapi_check_mechanism(&gssctxt, |
658 | &gss_supported->elements[mech], authctxt->host)) { | 672 | &gss_supported->elements[mech], authctxt->host)) { |
659 | ok = 1; /* Mechanism works */ | 673 | ok = 1; /* Mechanism works */ |
660 | } else { | 674 | } else { |
@@ -667,25 +681,26 @@ userauth_gssapi(Authctxt *authctxt) | |||
667 | 681 | ||
668 | authctxt->methoddata=(void *)gssctxt; | 682 | authctxt->methoddata=(void *)gssctxt; |
669 | 683 | ||
670 | packet_start(SSH2_MSG_USERAUTH_REQUEST); | 684 | if ((r = sshpkt_start(ssh, SSH2_MSG_USERAUTH_REQUEST)) != 0 || |
671 | packet_put_cstring(authctxt->server_user); | 685 | (r = sshpkt_put_cstring(ssh, authctxt->server_user)) != 0 || |
672 | packet_put_cstring(authctxt->service); | 686 | (r = sshpkt_put_cstring(ssh, authctxt->service)) != 0 || |
673 | packet_put_cstring(authctxt->method->name); | 687 | (r = sshpkt_put_cstring(ssh, authctxt->method->name)) != 0 || |
674 | 688 | (r = sshpkt_put_u32(ssh, 1)) != 0 || | |
675 | packet_put_int(1); | 689 | (r = sshpkt_put_u32(ssh, |
676 | 690 | (gss_supported->elements[mech].length) + 2)) != 0 || | |
677 | packet_put_int((gss_supported->elements[mech].length) + 2); | 691 | (r = sshpkt_put_u8(ssh, SSH_GSS_OIDTYPE)) != 0 || |
678 | packet_put_char(SSH_GSS_OIDTYPE); | 692 | (r = sshpkt_put_u8(ssh, |
679 | packet_put_char(gss_supported->elements[mech].length); | 693 | gss_supported->elements[mech].length)) != 0 || |
680 | packet_put_raw(gss_supported->elements[mech].elements, | 694 | (r = sshpkt_put(ssh, |
681 | gss_supported->elements[mech].length); | 695 | gss_supported->elements[mech].elements, |
682 | 696 | gss_supported->elements[mech].length)) != 0 || | |
683 | packet_send(); | 697 | (r = sshpkt_send(ssh)) != 0) |
698 | fatal("%s: %s", __func__, ssh_err(r)); | ||
684 | 699 | ||
685 | dispatch_set(SSH2_MSG_USERAUTH_GSSAPI_RESPONSE, &input_gssapi_response); | 700 | ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_RESPONSE, &input_gssapi_response); |
686 | dispatch_set(SSH2_MSG_USERAUTH_GSSAPI_TOKEN, &input_gssapi_token); | 701 | ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_TOKEN, &input_gssapi_token); |
687 | dispatch_set(SSH2_MSG_USERAUTH_GSSAPI_ERROR, &input_gssapi_error); | 702 | ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_ERROR, &input_gssapi_error); |
688 | dispatch_set(SSH2_MSG_USERAUTH_GSSAPI_ERRTOK, &input_gssapi_errtok); | 703 | ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_ERRTOK, &input_gssapi_errtok); |
689 | 704 | ||
690 | mech++; /* Move along to next candidate */ | 705 | mech++; /* Move along to next candidate */ |
691 | 706 | ||
@@ -701,44 +716,56 @@ process_gssapi_token(struct ssh *ssh, gss_buffer_t recv_tok) | |||
701 | gss_buffer_desc mic = GSS_C_EMPTY_BUFFER; | 716 | gss_buffer_desc mic = GSS_C_EMPTY_BUFFER; |
702 | gss_buffer_desc gssbuf; | 717 | gss_buffer_desc gssbuf; |
703 | OM_uint32 status, ms, flags; | 718 | OM_uint32 status, ms, flags; |
704 | Buffer b; | 719 | int r; |
705 | 720 | ||
706 | status = ssh_gssapi_init_ctx(gssctxt, options.gss_deleg_creds, | 721 | status = ssh_gssapi_init_ctx(gssctxt, options.gss_deleg_creds, |
707 | recv_tok, &send_tok, &flags); | 722 | recv_tok, &send_tok, &flags); |
708 | 723 | ||
709 | if (send_tok.length > 0) { | 724 | if (send_tok.length > 0) { |
710 | if (GSS_ERROR(status)) | 725 | u_char type = GSS_ERROR(status) ? |
711 | packet_start(SSH2_MSG_USERAUTH_GSSAPI_ERRTOK); | 726 | SSH2_MSG_USERAUTH_GSSAPI_ERRTOK : |
712 | else | 727 | SSH2_MSG_USERAUTH_GSSAPI_TOKEN; |
713 | packet_start(SSH2_MSG_USERAUTH_GSSAPI_TOKEN); | 728 | |
729 | if ((r = sshpkt_start(ssh, type)) != 0 || | ||
730 | (r = sshpkt_put_string(ssh, send_tok.value, | ||
731 | send_tok.length)) != 0 || | ||
732 | (r = sshpkt_send(ssh)) != 0) | ||
733 | fatal("%s: %s", __func__, ssh_err(r)); | ||
714 | 734 | ||
715 | packet_put_string(send_tok.value, send_tok.length); | ||
716 | packet_send(); | ||
717 | gss_release_buffer(&ms, &send_tok); | 735 | gss_release_buffer(&ms, &send_tok); |
718 | } | 736 | } |
719 | 737 | ||
720 | if (status == GSS_S_COMPLETE) { | 738 | if (status == GSS_S_COMPLETE) { |
721 | /* send either complete or MIC, depending on mechanism */ | 739 | /* send either complete or MIC, depending on mechanism */ |
722 | if (!(flags & GSS_C_INTEG_FLAG)) { | 740 | if (!(flags & GSS_C_INTEG_FLAG)) { |
723 | packet_start(SSH2_MSG_USERAUTH_GSSAPI_EXCHANGE_COMPLETE); | 741 | if ((r = sshpkt_start(ssh, |
724 | packet_send(); | 742 | SSH2_MSG_USERAUTH_GSSAPI_EXCHANGE_COMPLETE)) != 0 || |
743 | (r = sshpkt_send(ssh)) != 0) | ||
744 | fatal("%s: %s", __func__, ssh_err(r)); | ||
725 | } else { | 745 | } else { |
726 | ssh_gssapi_buildmic(&b, authctxt->server_user, | 746 | struct sshbuf *b; |
747 | |||
748 | if ((b = sshbuf_new()) == NULL) | ||
749 | fatal("%s: sshbuf_new failed", __func__); | ||
750 | ssh_gssapi_buildmic(b, authctxt->server_user, | ||
727 | authctxt->service, "gssapi-with-mic"); | 751 | authctxt->service, "gssapi-with-mic"); |
728 | 752 | ||
729 | gssbuf.value = buffer_ptr(&b); | 753 | if ((gssbuf.value = sshbuf_mutable_ptr(b)) == NULL) |
730 | gssbuf.length = buffer_len(&b); | 754 | fatal("%s: sshbuf_mutable_ptr failed", __func__); |
755 | gssbuf.length = sshbuf_len(b); | ||
731 | 756 | ||
732 | status = ssh_gssapi_sign(gssctxt, &gssbuf, &mic); | 757 | status = ssh_gssapi_sign(gssctxt, &gssbuf, &mic); |
733 | 758 | ||
734 | if (!GSS_ERROR(status)) { | 759 | if (!GSS_ERROR(status)) { |
735 | packet_start(SSH2_MSG_USERAUTH_GSSAPI_MIC); | 760 | if ((r = sshpkt_start(ssh, |
736 | packet_put_string(mic.value, mic.length); | 761 | SSH2_MSG_USERAUTH_GSSAPI_MIC)) != 0 || |
737 | 762 | (r = sshpkt_put_string(ssh, mic.value, | |
738 | packet_send(); | 763 | mic.length)) != 0 || |
764 | (r = sshpkt_send(ssh)) != 0) | ||
765 | fatal("%s: %s", __func__, ssh_err(r)); | ||
739 | } | 766 | } |
740 | 767 | ||
741 | buffer_free(&b); | 768 | sshbuf_free(b); |
742 | gss_release_buffer(&ms, &mic); | 769 | gss_release_buffer(&ms, &mic); |
743 | } | 770 | } |
744 | } | 771 | } |
@@ -752,39 +779,43 @@ input_gssapi_response(int type, u_int32_t plen, struct ssh *ssh) | |||
752 | { | 779 | { |
753 | Authctxt *authctxt = ssh->authctxt; | 780 | Authctxt *authctxt = ssh->authctxt; |
754 | Gssctxt *gssctxt; | 781 | Gssctxt *gssctxt; |
755 | int oidlen; | 782 | size_t oidlen; |
756 | char *oidv; | 783 | u_char *oidv = NULL; |
784 | int r; | ||
757 | 785 | ||
758 | if (authctxt == NULL) | 786 | if (authctxt == NULL) |
759 | fatal("input_gssapi_response: no authentication context"); | 787 | fatal("input_gssapi_response: no authentication context"); |
760 | gssctxt = authctxt->methoddata; | 788 | gssctxt = authctxt->methoddata; |
761 | 789 | ||
762 | /* Setup our OID */ | 790 | /* Setup our OID */ |
763 | oidv = packet_get_string(&oidlen); | 791 | if ((r = sshpkt_get_string(ssh, &oidv, &oidlen)) != 0) |
792 | goto done; | ||
764 | 793 | ||
765 | if (oidlen <= 2 || | 794 | if (oidlen <= 2 || |
766 | oidv[0] != SSH_GSS_OIDTYPE || | 795 | oidv[0] != SSH_GSS_OIDTYPE || |
767 | oidv[1] != oidlen - 2) { | 796 | oidv[1] != oidlen - 2) { |
768 | free(oidv); | ||
769 | debug("Badly encoded mechanism OID received"); | 797 | debug("Badly encoded mechanism OID received"); |
770 | userauth(authctxt, NULL); | 798 | userauth(authctxt, NULL); |
771 | return 0; | 799 | goto ok; |
772 | } | 800 | } |
773 | 801 | ||
774 | if (!ssh_gssapi_check_oid(gssctxt, oidv + 2, oidlen - 2)) | 802 | if (!ssh_gssapi_check_oid(gssctxt, oidv + 2, oidlen - 2)) |
775 | fatal("Server returned different OID than expected"); | 803 | fatal("Server returned different OID than expected"); |
776 | 804 | ||
777 | packet_check_eom(); | 805 | if ((r = sshpkt_get_end(ssh)) != 0) |
778 | 806 | goto done; | |
779 | free(oidv); | ||
780 | 807 | ||
781 | if (GSS_ERROR(process_gssapi_token(ssh, GSS_C_NO_BUFFER))) { | 808 | if (GSS_ERROR(process_gssapi_token(ssh, GSS_C_NO_BUFFER))) { |
782 | /* Start again with next method on list */ | 809 | /* Start again with next method on list */ |
783 | debug("Trying to start again"); | 810 | debug("Trying to start again"); |
784 | userauth(authctxt, NULL); | 811 | userauth(authctxt, NULL); |
785 | return 0; | 812 | goto ok; |
786 | } | 813 | } |
787 | return 0; | 814 | ok: |
815 | r = 0; | ||
816 | done: | ||
817 | free(oidv); | ||
818 | return r; | ||
788 | } | 819 | } |
789 | 820 | ||
790 | /* ARGSUSED */ | 821 | /* ARGSUSED */ |
@@ -793,27 +824,31 @@ input_gssapi_token(int type, u_int32_t plen, struct ssh *ssh) | |||
793 | { | 824 | { |
794 | Authctxt *authctxt = ssh->authctxt; | 825 | Authctxt *authctxt = ssh->authctxt; |
795 | gss_buffer_desc recv_tok; | 826 | gss_buffer_desc recv_tok; |
827 | u_char *p = NULL; | ||
828 | size_t len; | ||
796 | OM_uint32 status; | 829 | OM_uint32 status; |
797 | u_int slen; | 830 | int r; |
798 | 831 | ||
799 | if (authctxt == NULL) | 832 | if (authctxt == NULL) |
800 | fatal("input_gssapi_response: no authentication context"); | 833 | fatal("input_gssapi_response: no authentication context"); |
801 | 834 | ||
802 | recv_tok.value = packet_get_string(&slen); | 835 | if ((r = sshpkt_get_string(ssh, &p, &len)) != 0 || |
803 | recv_tok.length = slen; /* safe typecast */ | 836 | (r = sshpkt_get_end(ssh)) != 0) |
804 | 837 | goto out; | |
805 | packet_check_eom(); | ||
806 | 838 | ||
839 | recv_tok.value = p; | ||
840 | recv_tok.length = len; | ||
807 | status = process_gssapi_token(ssh, &recv_tok); | 841 | status = process_gssapi_token(ssh, &recv_tok); |
808 | 842 | ||
809 | free(recv_tok.value); | 843 | /* Start again with the next method in the list */ |
810 | |||
811 | if (GSS_ERROR(status)) { | 844 | if (GSS_ERROR(status)) { |
812 | /* Start again with the next method in the list */ | ||
813 | userauth(authctxt, NULL); | 845 | userauth(authctxt, NULL); |
814 | return 0; | 846 | /* ok */ |
815 | } | 847 | } |
816 | return 0; | 848 | r = 0; |
849 | out: | ||
850 | free(p); | ||
851 | return r; | ||
817 | } | 852 | } |
818 | 853 | ||
819 | /* ARGSUSED */ | 854 | /* ARGSUSED */ |
@@ -825,22 +860,26 @@ input_gssapi_errtok(int type, u_int32_t plen, struct ssh *ssh) | |||
825 | gss_buffer_desc send_tok = GSS_C_EMPTY_BUFFER; | 860 | gss_buffer_desc send_tok = GSS_C_EMPTY_BUFFER; |
826 | gss_buffer_desc recv_tok; | 861 | gss_buffer_desc recv_tok; |
827 | OM_uint32 ms; | 862 | OM_uint32 ms; |
828 | u_int len; | 863 | u_char *p = NULL; |
864 | size_t len; | ||
865 | int r; | ||
829 | 866 | ||
830 | if (authctxt == NULL) | 867 | if (authctxt == NULL) |
831 | fatal("input_gssapi_response: no authentication context"); | 868 | fatal("input_gssapi_response: no authentication context"); |
832 | gssctxt = authctxt->methoddata; | 869 | gssctxt = authctxt->methoddata; |
833 | 870 | ||
834 | recv_tok.value = packet_get_string(&len); | 871 | if ((r = sshpkt_get_string(ssh, &p, &len)) != 0 || |
835 | recv_tok.length = len; | 872 | (r = sshpkt_get_end(ssh)) != 0) { |
836 | 873 | free(p); | |
837 | packet_check_eom(); | 874 | return r; |
875 | } | ||
838 | 876 | ||
839 | /* Stick it into GSSAPI and see what it says */ | 877 | /* Stick it into GSSAPI and see what it says */ |
878 | recv_tok.value = p; | ||
879 | recv_tok.length = len; | ||
840 | (void)ssh_gssapi_init_ctx(gssctxt, options.gss_deleg_creds, | 880 | (void)ssh_gssapi_init_ctx(gssctxt, options.gss_deleg_creds, |
841 | &recv_tok, &send_tok, NULL); | 881 | &recv_tok, &send_tok, NULL); |
842 | 882 | free(p); | |
843 | free(recv_tok.value); | ||
844 | gss_release_buffer(&ms, &send_tok); | 883 | gss_release_buffer(&ms, &send_tok); |
845 | 884 | ||
846 | /* Server will be returning a failed packet after this one */ | 885 | /* Server will be returning a failed packet after this one */ |
@@ -851,43 +890,50 @@ input_gssapi_errtok(int type, u_int32_t plen, struct ssh *ssh) | |||
851 | int | 890 | int |
852 | input_gssapi_error(int type, u_int32_t plen, struct ssh *ssh) | 891 | input_gssapi_error(int type, u_int32_t plen, struct ssh *ssh) |
853 | { | 892 | { |
854 | char *msg; | 893 | char *msg = NULL; |
855 | char *lang; | 894 | char *lang = NULL; |
856 | 895 | int r; | |
857 | /* maj */(void)packet_get_int(); | ||
858 | /* min */(void)packet_get_int(); | ||
859 | msg=packet_get_string(NULL); | ||
860 | lang=packet_get_string(NULL); | ||
861 | |||
862 | packet_check_eom(); | ||
863 | 896 | ||
897 | if ((r = sshpkt_get_u32(ssh, NULL)) != 0 || /* maj */ | ||
898 | (r = sshpkt_get_u32(ssh, NULL)) != 0 || /* min */ | ||
899 | (r = sshpkt_get_cstring(ssh, &msg, NULL)) != 0 || | ||
900 | (r = sshpkt_get_cstring(ssh, &lang, NULL)) != 0) | ||
901 | goto out; | ||
902 | r = sshpkt_get_end(ssh); | ||
864 | debug("Server GSSAPI Error:\n%s", msg); | 903 | debug("Server GSSAPI Error:\n%s", msg); |
904 | out: | ||
865 | free(msg); | 905 | free(msg); |
866 | free(lang); | 906 | free(lang); |
867 | return 0; | 907 | return r; |
868 | } | 908 | } |
869 | #endif /* GSSAPI */ | 909 | #endif /* GSSAPI */ |
870 | 910 | ||
871 | int | 911 | int |
872 | userauth_none(Authctxt *authctxt) | 912 | userauth_none(Authctxt *authctxt) |
873 | { | 913 | { |
914 | struct ssh *ssh = active_state; /* XXX */ | ||
915 | int r; | ||
916 | |||
874 | /* initial userauth request */ | 917 | /* initial userauth request */ |
875 | packet_start(SSH2_MSG_USERAUTH_REQUEST); | 918 | if ((r = sshpkt_start(ssh, SSH2_MSG_USERAUTH_REQUEST)) != 0 || |
876 | packet_put_cstring(authctxt->server_user); | 919 | (r = sshpkt_put_cstring(ssh, authctxt->server_user)) != 0 || |
877 | packet_put_cstring(authctxt->service); | 920 | (r = sshpkt_put_cstring(ssh, authctxt->service)) != 0 || |
878 | packet_put_cstring(authctxt->method->name); | 921 | (r = sshpkt_put_cstring(ssh, authctxt->method->name)) != 0 || |
879 | packet_send(); | 922 | (r = sshpkt_send(ssh)) != 0) |
923 | fatal("%s: %s", __func__, ssh_err(r)); | ||
880 | return 1; | 924 | return 1; |
881 | } | 925 | } |
882 | 926 | ||
883 | int | 927 | int |
884 | userauth_passwd(Authctxt *authctxt) | 928 | userauth_passwd(Authctxt *authctxt) |
885 | { | 929 | { |
930 | struct ssh *ssh = active_state; /* XXX */ | ||
886 | static int attempt = 0; | 931 | static int attempt = 0; |
887 | char prompt[256]; | 932 | char prompt[256]; |
888 | char *password; | 933 | char *password; |
889 | const char *host = options.host_key_alias ? options.host_key_alias : | 934 | const char *host = options.host_key_alias ? options.host_key_alias : |
890 | authctxt->host; | 935 | authctxt->host; |
936 | int r; | ||
891 | 937 | ||
892 | if (attempt++ >= options.number_of_password_prompts) | 938 | if (attempt++ >= options.number_of_password_prompts) |
893 | return 0; | 939 | return 0; |
@@ -898,18 +944,20 @@ userauth_passwd(Authctxt *authctxt) | |||
898 | snprintf(prompt, sizeof(prompt), "%.30s@%.128s's password: ", | 944 | snprintf(prompt, sizeof(prompt), "%.30s@%.128s's password: ", |
899 | authctxt->server_user, host); | 945 | authctxt->server_user, host); |
900 | password = read_passphrase(prompt, 0); | 946 | password = read_passphrase(prompt, 0); |
901 | packet_start(SSH2_MSG_USERAUTH_REQUEST); | 947 | if ((r = sshpkt_start(ssh, SSH2_MSG_USERAUTH_REQUEST)) != 0 || |
902 | packet_put_cstring(authctxt->server_user); | 948 | (r = sshpkt_put_cstring(ssh, authctxt->server_user)) != 0 || |
903 | packet_put_cstring(authctxt->service); | 949 | (r = sshpkt_put_cstring(ssh, authctxt->service)) != 0 || |
904 | packet_put_cstring(authctxt->method->name); | 950 | (r = sshpkt_put_cstring(ssh, authctxt->method->name)) != 0 || |
905 | packet_put_char(0); | 951 | (r = sshpkt_put_u8(ssh, 0)) != 0 || |
906 | packet_put_cstring(password); | 952 | (r = sshpkt_put_cstring(ssh, password)) != 0 || |
907 | explicit_bzero(password, strlen(password)); | 953 | (r = sshpkt_add_padding(ssh, 64)) != 0 || |
908 | free(password); | 954 | (r = sshpkt_send(ssh)) != 0) |
909 | packet_add_padding(64); | 955 | fatal("%s: %s", __func__, ssh_err(r)); |
910 | packet_send(); | 956 | |
911 | 957 | if (password) | |
912 | dispatch_set(SSH2_MSG_USERAUTH_PASSWD_CHANGEREQ, | 958 | freezero(password, strlen(password)); |
959 | |||
960 | ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_PASSWD_CHANGEREQ, | ||
913 | &input_userauth_passwd_changereq); | 961 | &input_userauth_passwd_changereq); |
914 | 962 | ||
915 | return 1; | 963 | return 1; |
@@ -923,9 +971,10 @@ int | |||
923 | input_userauth_passwd_changereq(int type, u_int32_t seqnr, struct ssh *ssh) | 971 | input_userauth_passwd_changereq(int type, u_int32_t seqnr, struct ssh *ssh) |
924 | { | 972 | { |
925 | Authctxt *authctxt = ssh->authctxt; | 973 | Authctxt *authctxt = ssh->authctxt; |
926 | char *info, *lang, *password = NULL, *retype = NULL; | 974 | char *info = NULL, *lang = NULL, *password = NULL, *retype = NULL; |
927 | char prompt[256]; | 975 | char prompt[256]; |
928 | const char *host; | 976 | const char *host; |
977 | int r; | ||
929 | 978 | ||
930 | debug2("input_userauth_passwd_changereq"); | 979 | debug2("input_userauth_passwd_changereq"); |
931 | 980 | ||
@@ -934,24 +983,26 @@ input_userauth_passwd_changereq(int type, u_int32_t seqnr, struct ssh *ssh) | |||
934 | "no authentication context"); | 983 | "no authentication context"); |
935 | host = options.host_key_alias ? options.host_key_alias : authctxt->host; | 984 | host = options.host_key_alias ? options.host_key_alias : authctxt->host; |
936 | 985 | ||
937 | info = packet_get_string(NULL); | 986 | if ((r = sshpkt_get_cstring(ssh, &info, NULL)) != 0 || |
938 | lang = packet_get_string(NULL); | 987 | (r = sshpkt_get_cstring(ssh, &lang, NULL)) != 0) |
988 | goto out; | ||
939 | if (strlen(info) > 0) | 989 | if (strlen(info) > 0) |
940 | logit("%s", info); | 990 | logit("%s", info); |
941 | free(info); | 991 | if ((r = sshpkt_start(ssh, SSH2_MSG_USERAUTH_REQUEST)) != 0 || |
942 | free(lang); | 992 | (r = sshpkt_put_cstring(ssh, authctxt->server_user)) != 0 || |
943 | packet_start(SSH2_MSG_USERAUTH_REQUEST); | 993 | (r = sshpkt_put_cstring(ssh, authctxt->service)) != 0 || |
944 | packet_put_cstring(authctxt->server_user); | 994 | (r = sshpkt_put_cstring(ssh, authctxt->method->name)) != 0 || |
945 | packet_put_cstring(authctxt->service); | 995 | (r = sshpkt_put_u8(ssh, 1)) != 0) /* additional info */ |
946 | packet_put_cstring(authctxt->method->name); | 996 | goto out; |
947 | packet_put_char(1); /* additional info */ | 997 | |
948 | snprintf(prompt, sizeof(prompt), | 998 | snprintf(prompt, sizeof(prompt), |
949 | "Enter %.30s@%.128s's old password: ", | 999 | "Enter %.30s@%.128s's old password: ", |
950 | authctxt->server_user, host); | 1000 | authctxt->server_user, host); |
951 | password = read_passphrase(prompt, 0); | 1001 | password = read_passphrase(prompt, 0); |
952 | packet_put_cstring(password); | 1002 | if ((r = sshpkt_put_cstring(ssh, password)) != 0) |
953 | explicit_bzero(password, strlen(password)); | 1003 | goto out; |
954 | free(password); | 1004 | |
1005 | freezero(password, strlen(password)); | ||
955 | password = NULL; | 1006 | password = NULL; |
956 | while (password == NULL) { | 1007 | while (password == NULL) { |
957 | snprintf(prompt, sizeof(prompt), | 1008 | snprintf(prompt, sizeof(prompt), |
@@ -960,99 +1011,113 @@ input_userauth_passwd_changereq(int type, u_int32_t seqnr, struct ssh *ssh) | |||
960 | password = read_passphrase(prompt, RP_ALLOW_EOF); | 1011 | password = read_passphrase(prompt, RP_ALLOW_EOF); |
961 | if (password == NULL) { | 1012 | if (password == NULL) { |
962 | /* bail out */ | 1013 | /* bail out */ |
963 | return 0; | 1014 | r = 0; |
1015 | goto out; | ||
964 | } | 1016 | } |
965 | snprintf(prompt, sizeof(prompt), | 1017 | snprintf(prompt, sizeof(prompt), |
966 | "Retype %.30s@%.128s's new password: ", | 1018 | "Retype %.30s@%.128s's new password: ", |
967 | authctxt->server_user, host); | 1019 | authctxt->server_user, host); |
968 | retype = read_passphrase(prompt, 0); | 1020 | retype = read_passphrase(prompt, 0); |
969 | if (strcmp(password, retype) != 0) { | 1021 | if (strcmp(password, retype) != 0) { |
970 | explicit_bzero(password, strlen(password)); | 1022 | freezero(password, strlen(password)); |
971 | free(password); | ||
972 | logit("Mismatch; try again, EOF to quit."); | 1023 | logit("Mismatch; try again, EOF to quit."); |
973 | password = NULL; | 1024 | password = NULL; |
974 | } | 1025 | } |
975 | explicit_bzero(retype, strlen(retype)); | 1026 | freezero(retype, strlen(retype)); |
976 | free(retype); | ||
977 | } | 1027 | } |
978 | packet_put_cstring(password); | 1028 | if ((r = sshpkt_put_cstring(ssh, password)) != 0 || |
979 | explicit_bzero(password, strlen(password)); | 1029 | (r = sshpkt_add_padding(ssh, 64)) != 0 || |
980 | free(password); | 1030 | (r = sshpkt_send(ssh)) != 0) |
981 | packet_add_padding(64); | 1031 | goto out; |
982 | packet_send(); | ||
983 | 1032 | ||
984 | dispatch_set(SSH2_MSG_USERAUTH_PASSWD_CHANGEREQ, | 1033 | ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_PASSWD_CHANGEREQ, |
985 | &input_userauth_passwd_changereq); | 1034 | &input_userauth_passwd_changereq); |
986 | return 0; | 1035 | r = 0; |
987 | } | 1036 | out: |
988 | 1037 | if (password) | |
989 | static const char * | 1038 | freezero(password, strlen(password)); |
990 | key_sign_encode(const struct sshkey *key) | 1039 | free(info); |
991 | { | 1040 | free(lang); |
992 | struct ssh *ssh = active_state; | 1041 | return r; |
993 | |||
994 | if (key->type == KEY_RSA) { | ||
995 | switch (ssh->kex->rsa_sha2) { | ||
996 | case 256: | ||
997 | return "rsa-sha2-256"; | ||
998 | case 512: | ||
999 | return "rsa-sha2-512"; | ||
1000 | } | ||
1001 | } | ||
1002 | return key_ssh_name(key); | ||
1003 | } | 1042 | } |
1004 | 1043 | ||
1005 | /* | 1044 | /* |
1006 | * Some agents will return ssh-rsa signatures when asked to make a | 1045 | * Select an algorithm for publickey signatures. |
1007 | * rsa-sha2-* signature. Check what they actually gave back and warn the | 1046 | * Returns algorithm (caller must free) or NULL if no mutual algorithm found. |
1008 | * user if the agent has returned an unexpected type. | 1047 | * |
1048 | * Call with ssh==NULL to ignore server-sig-algs extension list and | ||
1049 | * only attempt with the key's base signature type. | ||
1009 | */ | 1050 | */ |
1010 | static int | 1051 | static char * |
1011 | check_sigtype(const struct sshkey *key, const u_char *sig, size_t len) | 1052 | key_sig_algorithm(struct ssh *ssh, const struct sshkey *key) |
1012 | { | 1053 | { |
1013 | int r; | 1054 | char *allowed, *oallowed, *cp, *tmp, *alg = NULL; |
1014 | char *sigtype = NULL; | ||
1015 | const char *alg = key_sign_encode(key); | ||
1016 | 1055 | ||
1017 | if (sshkey_is_cert(key)) | 1056 | /* |
1018 | return 0; | 1057 | * The signature algorithm will only differ from the key algorithm |
1019 | if ((r = sshkey_sigtype(sig, len, &sigtype)) != 0) | 1058 | * for RSA keys/certs and when the server advertises support for |
1020 | return r; | 1059 | * newer (SHA2) algorithms. |
1021 | if (strcmp(sigtype, alg) != 0) { | 1060 | */ |
1022 | logit("warning: agent returned different signature type %s " | 1061 | if (ssh == NULL || ssh->kex->server_sig_algs == NULL || |
1023 | "(expected %s)", sigtype, alg); | 1062 | (key->type != KEY_RSA && key->type != KEY_RSA_CERT)) { |
1063 | /* Filter base key signature alg against our configuration */ | ||
1064 | return match_list(sshkey_ssh_name(key), | ||
1065 | options.pubkey_key_types, NULL); | ||
1024 | } | 1066 | } |
1025 | free(sigtype); | 1067 | |
1026 | /* Incorrect signature types aren't an error ... yet */ | 1068 | /* |
1027 | return 0; | 1069 | * For RSA keys/certs, since these might have a different sig type: |
1070 | * find the first entry in PubkeyAcceptedKeyTypes of the right type | ||
1071 | * that also appears in the supported signature algorithms list from | ||
1072 | * the server. | ||
1073 | */ | ||
1074 | oallowed = allowed = xstrdup(options.pubkey_key_types); | ||
1075 | while ((cp = strsep(&allowed, ",")) != NULL) { | ||
1076 | if (sshkey_type_from_name(cp) != key->type) | ||
1077 | continue; | ||
1078 | tmp = match_list(sshkey_sigalg_by_name(cp), ssh->kex->server_sig_algs, NULL); | ||
1079 | if (tmp != NULL) | ||
1080 | alg = xstrdup(cp); | ||
1081 | free(tmp); | ||
1082 | if (alg != NULL) | ||
1083 | break; | ||
1084 | } | ||
1085 | free(oallowed); | ||
1086 | return alg; | ||
1028 | } | 1087 | } |
1029 | 1088 | ||
1030 | static int | 1089 | static int |
1031 | identity_sign(struct identity *id, u_char **sigp, size_t *lenp, | 1090 | identity_sign(struct identity *id, u_char **sigp, size_t *lenp, |
1032 | const u_char *data, size_t datalen, u_int compat) | 1091 | const u_char *data, size_t datalen, u_int compat, const char *alg) |
1033 | { | 1092 | { |
1034 | struct sshkey *prv; | 1093 | struct sshkey *prv; |
1035 | int r; | 1094 | int r; |
1036 | 1095 | ||
1037 | /* the agent supports this key */ | 1096 | /* The agent supports this key. */ |
1038 | if (id->key != NULL && id->agent_fd != -1) { | 1097 | if (id->key != NULL && id->agent_fd != -1) { |
1039 | if ((r = ssh_agent_sign(id->agent_fd, id->key, sigp, lenp, | 1098 | return ssh_agent_sign(id->agent_fd, id->key, sigp, lenp, |
1040 | data, datalen, key_sign_encode(id->key), compat)) != 0 || | 1099 | data, datalen, alg, compat); |
1041 | (r = check_sigtype(id->key, *sigp, *lenp)) != 0) | ||
1042 | return r; | ||
1043 | return 0; | ||
1044 | } | 1100 | } |
1045 | 1101 | ||
1046 | /* | 1102 | /* |
1047 | * we have already loaded the private key or | 1103 | * We have already loaded the private key or the private key is |
1048 | * the private key is stored in external hardware | 1104 | * stored in external hardware. |
1049 | */ | 1105 | */ |
1050 | if (id->key != NULL && | 1106 | if (id->key != NULL && |
1051 | (id->isprivate || (id->key->flags & SSHKEY_FLAG_EXT))) | 1107 | (id->isprivate || (id->key->flags & SSHKEY_FLAG_EXT))) { |
1052 | return (sshkey_sign(id->key, sigp, lenp, data, datalen, | 1108 | if ((r = sshkey_sign(id->key, sigp, lenp, data, datalen, |
1053 | key_sign_encode(id->key), compat)); | 1109 | alg, compat)) != 0) |
1110 | return r; | ||
1111 | /* | ||
1112 | * PKCS#11 tokens may not support all signature algorithms, | ||
1113 | * so check what we get back. | ||
1114 | */ | ||
1115 | if ((r = sshkey_check_sigtype(*sigp, *lenp, alg)) != 0) | ||
1116 | return r; | ||
1117 | return 0; | ||
1118 | } | ||
1054 | 1119 | ||
1055 | /* load the private key from the file */ | 1120 | /* Load the private key from the file. */ |
1056 | if ((prv = load_identity_file(id)) == NULL) | 1121 | if ((prv = load_identity_file(id)) == NULL) |
1057 | return SSH_ERR_KEY_NOT_FOUND; | 1122 | return SSH_ERR_KEY_NOT_FOUND; |
1058 | if (id->key != NULL && !sshkey_equal_public(prv, id->key)) { | 1123 | if (id->key != NULL && !sshkey_equal_public(prv, id->key)) { |
@@ -1060,8 +1125,7 @@ identity_sign(struct identity *id, u_char **sigp, size_t *lenp, | |||
1060 | __func__, id->filename); | 1125 | __func__, id->filename); |
1061 | return SSH_ERR_KEY_NOT_FOUND; | 1126 | return SSH_ERR_KEY_NOT_FOUND; |
1062 | } | 1127 | } |
1063 | r = sshkey_sign(prv, sigp, lenp, data, datalen, | 1128 | r = sshkey_sign(prv, sigp, lenp, data, datalen, alg, compat); |
1064 | key_sign_encode(prv), compat); | ||
1065 | sshkey_free(prv); | 1129 | sshkey_free(prv); |
1066 | return r; | 1130 | return r; |
1067 | } | 1131 | } |
@@ -1086,57 +1150,35 @@ id_filename_matches(Identity *id, Identity *private_id) | |||
1086 | } | 1150 | } |
1087 | 1151 | ||
1088 | static int | 1152 | static int |
1089 | sign_and_send_pubkey(Authctxt *authctxt, Identity *id) | 1153 | sign_and_send_pubkey(struct ssh *ssh, Authctxt *authctxt, Identity *id) |
1090 | { | 1154 | { |
1091 | Buffer b; | 1155 | struct sshbuf *b = NULL; |
1092 | Identity *private_id; | 1156 | Identity *private_id, *sign_id = NULL; |
1093 | u_char *blob, *signature; | 1157 | u_char *signature = NULL; |
1094 | size_t slen; | 1158 | size_t slen = 0, skip = 0; |
1095 | u_int bloblen, skip = 0; | 1159 | int r, fallback_sigtype, sent = 0; |
1096 | int matched, ret = -1, have_sig = 1; | 1160 | char *alg = NULL, *fp = NULL; |
1097 | char *fp; | 1161 | const char *loc = ""; |
1098 | 1162 | ||
1099 | if ((fp = sshkey_fingerprint(id->key, options.fingerprint_hash, | 1163 | if ((fp = sshkey_fingerprint(id->key, options.fingerprint_hash, |
1100 | SSH_FP_DEFAULT)) == NULL) | 1164 | SSH_FP_DEFAULT)) == NULL) |
1101 | return 0; | 1165 | return 0; |
1102 | debug3("%s: %s %s", __func__, key_type(id->key), fp); | ||
1103 | free(fp); | ||
1104 | 1166 | ||
1105 | if (key_to_blob(id->key, &blob, &bloblen) == 0) { | 1167 | debug3("%s: %s %s", __func__, sshkey_type(id->key), fp); |
1106 | /* we cannot handle this key */ | ||
1107 | debug3("sign_and_send_pubkey: cannot handle key"); | ||
1108 | return 0; | ||
1109 | } | ||
1110 | /* data to be signed */ | ||
1111 | buffer_init(&b); | ||
1112 | if (datafellows & SSH_OLD_SESSIONID) { | ||
1113 | buffer_append(&b, session_id2, session_id2_len); | ||
1114 | skip = session_id2_len; | ||
1115 | } else { | ||
1116 | buffer_put_string(&b, session_id2, session_id2_len); | ||
1117 | skip = buffer_len(&b); | ||
1118 | } | ||
1119 | buffer_put_char(&b, SSH2_MSG_USERAUTH_REQUEST); | ||
1120 | buffer_put_cstring(&b, authctxt->server_user); | ||
1121 | buffer_put_cstring(&b, authctxt->service); | ||
1122 | buffer_put_cstring(&b, authctxt->method->name); | ||
1123 | buffer_put_char(&b, have_sig); | ||
1124 | buffer_put_cstring(&b, key_sign_encode(id->key)); | ||
1125 | buffer_put_string(&b, blob, bloblen); | ||
1126 | 1168 | ||
1127 | /* | 1169 | /* |
1128 | * If the key is an certificate, try to find a matching private key | 1170 | * If the key is an certificate, try to find a matching private key |
1129 | * and use it to complete the signature. | 1171 | * and use it to complete the signature. |
1130 | * If no such private key exists, fall back to trying the certificate | 1172 | * If no such private key exists, fall back to trying the certificate |
1131 | * key itself in case it has a private half already loaded. | 1173 | * key itself in case it has a private half already loaded. |
1174 | * This will try to set sign_id to the private key that will perform | ||
1175 | * the signature. | ||
1132 | */ | 1176 | */ |
1133 | if (key_is_cert(id->key)) { | 1177 | if (sshkey_is_cert(id->key)) { |
1134 | matched = 0; | ||
1135 | TAILQ_FOREACH(private_id, &authctxt->keys, next) { | 1178 | TAILQ_FOREACH(private_id, &authctxt->keys, next) { |
1136 | if (sshkey_equal_public(id->key, private_id->key) && | 1179 | if (sshkey_equal_public(id->key, private_id->key) && |
1137 | id->key->type != private_id->key->type) { | 1180 | id->key->type != private_id->key->type) { |
1138 | id = private_id; | 1181 | sign_id = private_id; |
1139 | matched = 1; | ||
1140 | break; | 1182 | break; |
1141 | } | 1183 | } |
1142 | } | 1184 | } |
@@ -1147,18 +1189,18 @@ sign_and_send_pubkey(Authctxt *authctxt, Identity *id) | |||
1147 | * of keeping just a private key file and public | 1189 | * of keeping just a private key file and public |
1148 | * certificate on disk. | 1190 | * certificate on disk. |
1149 | */ | 1191 | */ |
1150 | if (!matched && !id->isprivate && id->agent_fd == -1 && | 1192 | if (sign_id == NULL && |
1193 | !id->isprivate && id->agent_fd == -1 && | ||
1151 | (id->key->flags & SSHKEY_FLAG_EXT) == 0) { | 1194 | (id->key->flags & SSHKEY_FLAG_EXT) == 0) { |
1152 | TAILQ_FOREACH(private_id, &authctxt->keys, next) { | 1195 | TAILQ_FOREACH(private_id, &authctxt->keys, next) { |
1153 | if (private_id->key == NULL && | 1196 | if (private_id->key == NULL && |
1154 | id_filename_matches(id, private_id)) { | 1197 | id_filename_matches(id, private_id)) { |
1155 | id = private_id; | 1198 | sign_id = private_id; |
1156 | matched = 1; | ||
1157 | break; | 1199 | break; |
1158 | } | 1200 | } |
1159 | } | 1201 | } |
1160 | } | 1202 | } |
1161 | if (matched) { | 1203 | if (sign_id != NULL) { |
1162 | debug2("%s: using private key \"%s\"%s for " | 1204 | debug2("%s: using private key \"%s\"%s for " |
1163 | "certificate", __func__, id->filename, | 1205 | "certificate", __func__, id->filename, |
1164 | id->agent_fd != -1 ? " from agent" : ""); | 1206 | id->agent_fd != -1 ? " from agent" : ""); |
@@ -1168,65 +1210,141 @@ sign_and_send_pubkey(Authctxt *authctxt, Identity *id) | |||
1168 | } | 1210 | } |
1169 | } | 1211 | } |
1170 | 1212 | ||
1171 | /* generate signature */ | 1213 | /* |
1172 | ret = identity_sign(id, &signature, &slen, | 1214 | * If the above didn't select another identity to do the signing |
1173 | buffer_ptr(&b), buffer_len(&b), datafellows); | 1215 | * then default to the one we started with. |
1174 | if (ret != 0) { | 1216 | */ |
1175 | if (ret != SSH_ERR_KEY_NOT_FOUND) | 1217 | if (sign_id == NULL) |
1176 | error("%s: signing failed: %s", __func__, ssh_err(ret)); | 1218 | sign_id = id; |
1177 | free(blob); | 1219 | |
1178 | buffer_free(&b); | 1220 | /* assemble and sign data */ |
1179 | return 0; | 1221 | for (fallback_sigtype = 0; fallback_sigtype <= 1; fallback_sigtype++) { |
1222 | free(alg); | ||
1223 | slen = 0; | ||
1224 | signature = NULL; | ||
1225 | if ((alg = key_sig_algorithm(fallback_sigtype ? NULL : ssh, | ||
1226 | id->key)) == NULL) { | ||
1227 | error("%s: no mutual signature supported", __func__); | ||
1228 | goto out; | ||
1229 | } | ||
1230 | debug3("%s: signing using %s", __func__, alg); | ||
1231 | |||
1232 | sshbuf_free(b); | ||
1233 | if ((b = sshbuf_new()) == NULL) | ||
1234 | fatal("%s: sshbuf_new failed", __func__); | ||
1235 | if (datafellows & SSH_OLD_SESSIONID) { | ||
1236 | if ((r = sshbuf_put(b, session_id2, | ||
1237 | session_id2_len)) != 0) { | ||
1238 | fatal("%s: sshbuf_put: %s", | ||
1239 | __func__, ssh_err(r)); | ||
1240 | } | ||
1241 | } else { | ||
1242 | if ((r = sshbuf_put_string(b, session_id2, | ||
1243 | session_id2_len)) != 0) { | ||
1244 | fatal("%s: sshbuf_put_string: %s", | ||
1245 | __func__, ssh_err(r)); | ||
1246 | } | ||
1247 | } | ||
1248 | skip = sshbuf_len(b); | ||
1249 | if ((r = sshbuf_put_u8(b, SSH2_MSG_USERAUTH_REQUEST)) != 0 || | ||
1250 | (r = sshbuf_put_cstring(b, authctxt->server_user)) != 0 || | ||
1251 | (r = sshbuf_put_cstring(b, authctxt->service)) != 0 || | ||
1252 | (r = sshbuf_put_cstring(b, authctxt->method->name)) != 0 || | ||
1253 | (r = sshbuf_put_u8(b, 1)) != 0 || | ||
1254 | (r = sshbuf_put_cstring(b, alg)) != 0 || | ||
1255 | (r = sshkey_puts(id->key, b)) != 0) { | ||
1256 | fatal("%s: assemble signed data: %s", | ||
1257 | __func__, ssh_err(r)); | ||
1258 | } | ||
1259 | |||
1260 | /* generate signature */ | ||
1261 | r = identity_sign(sign_id, &signature, &slen, | ||
1262 | sshbuf_ptr(b), sshbuf_len(b), datafellows, alg); | ||
1263 | if (r == 0) | ||
1264 | break; | ||
1265 | else if (r == SSH_ERR_KEY_NOT_FOUND) | ||
1266 | goto out; /* soft failure */ | ||
1267 | else if (r == SSH_ERR_SIGN_ALG_UNSUPPORTED && | ||
1268 | !fallback_sigtype) { | ||
1269 | if (sign_id->agent_fd != -1) | ||
1270 | loc = "agent "; | ||
1271 | else if ((sign_id->key->flags & SSHKEY_FLAG_EXT) != 0) | ||
1272 | loc = "token "; | ||
1273 | logit("%skey %s %s returned incorrect signature type", | ||
1274 | loc, sshkey_type(id->key), fp); | ||
1275 | continue; | ||
1276 | } | ||
1277 | error("%s: signing failed: %s", __func__, ssh_err(r)); | ||
1278 | goto out; | ||
1180 | } | 1279 | } |
1181 | #ifdef DEBUG_PK | 1280 | if (slen == 0 || signature == NULL) /* shouldn't happen */ |
1182 | buffer_dump(&b); | 1281 | fatal("%s: no signature", __func__); |
1183 | #endif | ||
1184 | free(blob); | ||
1185 | 1282 | ||
1186 | /* append signature */ | 1283 | /* append signature */ |
1187 | buffer_put_string(&b, signature, slen); | 1284 | if ((r = sshbuf_put_string(b, signature, slen)) != 0) |
1188 | free(signature); | 1285 | fatal("%s: append signature: %s", __func__, ssh_err(r)); |
1189 | 1286 | ||
1287 | #ifdef DEBUG_PK | ||
1288 | sshbuf_dump(b, stderr); | ||
1289 | #endif | ||
1190 | /* skip session id and packet type */ | 1290 | /* skip session id and packet type */ |
1191 | if (buffer_len(&b) < skip + 1) | 1291 | if ((r = sshbuf_consume(b, skip + 1)) != 0) |
1192 | fatal("userauth_pubkey: internal error"); | 1292 | fatal("%s: consume: %s", __func__, ssh_err(r)); |
1193 | buffer_consume(&b, skip + 1); | ||
1194 | 1293 | ||
1195 | /* put remaining data from buffer into packet */ | 1294 | /* put remaining data from buffer into packet */ |
1196 | packet_start(SSH2_MSG_USERAUTH_REQUEST); | 1295 | if ((r = sshpkt_start(ssh, SSH2_MSG_USERAUTH_REQUEST)) != 0 || |
1197 | packet_put_raw(buffer_ptr(&b), buffer_len(&b)); | 1296 | (r = sshpkt_putb(ssh, b)) != 0 || |
1198 | buffer_free(&b); | 1297 | (r = sshpkt_send(ssh)) != 0) |
1199 | packet_send(); | 1298 | fatal("%s: enqueue request: %s", __func__, ssh_err(r)); |
1200 | 1299 | ||
1201 | return 1; | 1300 | /* success */ |
1301 | sent = 1; | ||
1302 | |||
1303 | out: | ||
1304 | free(fp); | ||
1305 | free(alg); | ||
1306 | sshbuf_free(b); | ||
1307 | freezero(signature, slen); | ||
1308 | return sent; | ||
1202 | } | 1309 | } |
1203 | 1310 | ||
1204 | static int | 1311 | static int |
1205 | send_pubkey_test(Authctxt *authctxt, Identity *id) | 1312 | send_pubkey_test(struct ssh *ssh, Authctxt *authctxt, Identity *id) |
1206 | { | 1313 | { |
1207 | u_char *blob; | 1314 | u_char *blob = NULL; |
1208 | u_int bloblen, have_sig = 0; | 1315 | char *alg = NULL; |
1209 | 1316 | size_t bloblen; | |
1210 | debug3("send_pubkey_test"); | 1317 | u_int have_sig = 0; |
1318 | int sent = 0, r; | ||
1319 | |||
1320 | if ((alg = key_sig_algorithm(ssh, id->key)) == NULL) { | ||
1321 | debug("%s: no mutual signature algorithm", __func__); | ||
1322 | goto out; | ||
1323 | } | ||
1211 | 1324 | ||
1212 | if (key_to_blob(id->key, &blob, &bloblen) == 0) { | 1325 | if ((r = sshkey_to_blob(id->key, &blob, &bloblen)) != 0) { |
1213 | /* we cannot handle this key */ | 1326 | /* we cannot handle this key */ |
1214 | debug3("send_pubkey_test: cannot handle key"); | 1327 | debug3("%s: cannot handle key", __func__); |
1215 | return 0; | 1328 | goto out; |
1216 | } | 1329 | } |
1217 | /* register callback for USERAUTH_PK_OK message */ | 1330 | /* register callback for USERAUTH_PK_OK message */ |
1218 | dispatch_set(SSH2_MSG_USERAUTH_PK_OK, &input_userauth_pk_ok); | 1331 | ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_PK_OK, &input_userauth_pk_ok); |
1219 | 1332 | ||
1220 | packet_start(SSH2_MSG_USERAUTH_REQUEST); | 1333 | if ((r = sshpkt_start(ssh, SSH2_MSG_USERAUTH_REQUEST)) != 0 || |
1221 | packet_put_cstring(authctxt->server_user); | 1334 | (r = sshpkt_put_cstring(ssh, authctxt->server_user)) != 0 || |
1222 | packet_put_cstring(authctxt->service); | 1335 | (r = sshpkt_put_cstring(ssh, authctxt->service)) != 0 || |
1223 | packet_put_cstring(authctxt->method->name); | 1336 | (r = sshpkt_put_cstring(ssh, authctxt->method->name)) != 0 || |
1224 | packet_put_char(have_sig); | 1337 | (r = sshpkt_put_u8(ssh, have_sig)) != 0 || |
1225 | packet_put_cstring(key_sign_encode(id->key)); | 1338 | (r = sshpkt_put_cstring(ssh, alg)) != 0 || |
1226 | packet_put_string(blob, bloblen); | 1339 | (r = sshpkt_put_string(ssh, blob, bloblen)) != 0 || |
1340 | (r = sshpkt_send(ssh)) != 0) | ||
1341 | fatal("%s: %s", __func__, ssh_err(r)); | ||
1342 | sent = 1; | ||
1343 | |||
1344 | out: | ||
1345 | free(alg); | ||
1227 | free(blob); | 1346 | free(blob); |
1228 | packet_send(); | 1347 | return sent; |
1229 | return 1; | ||
1230 | } | 1348 | } |
1231 | 1349 | ||
1232 | static struct sshkey * | 1350 | static struct sshkey * |
@@ -1284,10 +1402,8 @@ load_identity_file(Identity *id) | |||
1284 | !(id->key && id->isprivate)) | 1402 | !(id->key && id->isprivate)) |
1285 | maybe_add_key_to_agent(id->filename, private, comment, | 1403 | maybe_add_key_to_agent(id->filename, private, comment, |
1286 | passphrase); | 1404 | passphrase); |
1287 | if (i > 0) { | 1405 | if (i > 0) |
1288 | explicit_bzero(passphrase, strlen(passphrase)); | 1406 | freezero(passphrase, strlen(passphrase)); |
1289 | free(passphrase); | ||
1290 | } | ||
1291 | free(comment); | 1407 | free(comment); |
1292 | if (private != NULL || quit) | 1408 | if (private != NULL || quit) |
1293 | break; | 1409 | break; |
@@ -1295,6 +1411,36 @@ load_identity_file(Identity *id) | |||
1295 | return private; | 1411 | return private; |
1296 | } | 1412 | } |
1297 | 1413 | ||
1414 | static int | ||
1415 | key_type_allowed_by_config(struct sshkey *key) | ||
1416 | { | ||
1417 | if (match_pattern_list(sshkey_ssh_name(key), | ||
1418 | options.pubkey_key_types, 0) == 1) | ||
1419 | return 1; | ||
1420 | |||
1421 | /* RSA keys/certs might be allowed by alternate signature types */ | ||
1422 | switch (key->type) { | ||
1423 | case KEY_RSA: | ||
1424 | if (match_pattern_list("rsa-sha2-512", | ||
1425 | options.pubkey_key_types, 0) == 1) | ||
1426 | return 1; | ||
1427 | if (match_pattern_list("rsa-sha2-256", | ||
1428 | options.pubkey_key_types, 0) == 1) | ||
1429 | return 1; | ||
1430 | break; | ||
1431 | case KEY_RSA_CERT: | ||
1432 | if (match_pattern_list("rsa-sha2-512-cert-v01@openssh.com", | ||
1433 | options.pubkey_key_types, 0) == 1) | ||
1434 | return 1; | ||
1435 | if (match_pattern_list("rsa-sha2-256-cert-v01@openssh.com", | ||
1436 | options.pubkey_key_types, 0) == 1) | ||
1437 | return 1; | ||
1438 | break; | ||
1439 | } | ||
1440 | return 0; | ||
1441 | } | ||
1442 | |||
1443 | |||
1298 | /* | 1444 | /* |
1299 | * try keys in the following order: | 1445 | * try keys in the following order: |
1300 | * 1. certificates listed in the config file | 1446 | * 1. certificates listed in the config file |
@@ -1334,7 +1480,7 @@ pubkey_prepare(Authctxt *authctxt) | |||
1334 | /* list of certificates specified by user */ | 1480 | /* list of certificates specified by user */ |
1335 | for (i = 0; i < options.num_certificate_files; i++) { | 1481 | for (i = 0; i < options.num_certificate_files; i++) { |
1336 | key = options.certificates[i]; | 1482 | key = options.certificates[i]; |
1337 | if (!key_is_cert(key) || key->cert == NULL || | 1483 | if (!sshkey_is_cert(key) || key->cert == NULL || |
1338 | key->cert->type != SSH2_CERT_TYPE_USER) | 1484 | key->cert->type != SSH2_CERT_TYPE_USER) |
1339 | continue; | 1485 | continue; |
1340 | id = xcalloc(1, sizeof(*id)); | 1486 | id = xcalloc(1, sizeof(*id)); |
@@ -1408,8 +1554,7 @@ pubkey_prepare(Authctxt *authctxt) | |||
1408 | /* If IdentitiesOnly set and key not found then don't use it */ | 1554 | /* If IdentitiesOnly set and key not found then don't use it */ |
1409 | if (!found && options.identities_only) { | 1555 | if (!found && options.identities_only) { |
1410 | TAILQ_REMOVE(&files, id, next); | 1556 | TAILQ_REMOVE(&files, id, next); |
1411 | explicit_bzero(id, sizeof(*id)); | 1557 | freezero(id, sizeof(*id)); |
1412 | free(id); | ||
1413 | } | 1558 | } |
1414 | } | 1559 | } |
1415 | /* append remaining keys from the config file */ | 1560 | /* append remaining keys from the config file */ |
@@ -1419,9 +1564,7 @@ pubkey_prepare(Authctxt *authctxt) | |||
1419 | } | 1564 | } |
1420 | /* finally, filter by PubkeyAcceptedKeyTypes */ | 1565 | /* finally, filter by PubkeyAcceptedKeyTypes */ |
1421 | TAILQ_FOREACH_SAFE(id, preferred, next, id2) { | 1566 | TAILQ_FOREACH_SAFE(id, preferred, next, id2) { |
1422 | if (id->key != NULL && | 1567 | if (id->key != NULL && !key_type_allowed_by_config(id->key)) { |
1423 | match_pattern_list(sshkey_ssh_name(id->key), | ||
1424 | options.pubkey_key_types, 0) != 1) { | ||
1425 | debug("Skipping %s key %s - " | 1568 | debug("Skipping %s key %s - " |
1426 | "not in PubkeyAcceptedKeyTypes", | 1569 | "not in PubkeyAcceptedKeyTypes", |
1427 | sshkey_ssh_name(id->key), id->filename); | 1570 | sshkey_ssh_name(id->key), id->filename); |
@@ -1467,10 +1610,10 @@ try_identity(Identity *id) | |||
1467 | { | 1610 | { |
1468 | if (!id->key) | 1611 | if (!id->key) |
1469 | return (0); | 1612 | return (0); |
1470 | if (key_type_plain(id->key->type) == KEY_RSA && | 1613 | if (sshkey_type_plain(id->key->type) == KEY_RSA && |
1471 | (datafellows & SSH_BUG_RSASIGMD5) != 0) { | 1614 | (datafellows & SSH_BUG_RSASIGMD5) != 0) { |
1472 | debug("Skipped %s key %s for RSA/MD5 server", | 1615 | debug("Skipped %s key %s for RSA/MD5 server", |
1473 | key_type(id->key), id->filename); | 1616 | sshkey_type(id->key), id->filename); |
1474 | return (0); | 1617 | return (0); |
1475 | } | 1618 | } |
1476 | return 1; | 1619 | return 1; |
@@ -1479,6 +1622,7 @@ try_identity(Identity *id) | |||
1479 | int | 1622 | int |
1480 | userauth_pubkey(Authctxt *authctxt) | 1623 | userauth_pubkey(Authctxt *authctxt) |
1481 | { | 1624 | { |
1625 | struct ssh *ssh = active_state; /* XXX */ | ||
1482 | Identity *id; | 1626 | Identity *id; |
1483 | int sent = 0; | 1627 | int sent = 0; |
1484 | char *fp; | 1628 | char *fp; |
@@ -1506,7 +1650,7 @@ userauth_pubkey(Authctxt *authctxt) | |||
1506 | debug("Offering public key: %s %s %s", | 1650 | debug("Offering public key: %s %s %s", |
1507 | sshkey_type(id->key), fp, id->filename); | 1651 | sshkey_type(id->key), fp, id->filename); |
1508 | free(fp); | 1652 | free(fp); |
1509 | sent = send_pubkey_test(authctxt, id); | 1653 | sent = send_pubkey_test(ssh, authctxt, id); |
1510 | } | 1654 | } |
1511 | } else { | 1655 | } else { |
1512 | debug("Trying private key: %s", id->filename); | 1656 | debug("Trying private key: %s", id->filename); |
@@ -1514,10 +1658,10 @@ userauth_pubkey(Authctxt *authctxt) | |||
1514 | if (id->key != NULL) { | 1658 | if (id->key != NULL) { |
1515 | if (try_identity(id)) { | 1659 | if (try_identity(id)) { |
1516 | id->isprivate = 1; | 1660 | id->isprivate = 1; |
1517 | sent = sign_and_send_pubkey( | 1661 | sent = sign_and_send_pubkey(ssh, |
1518 | authctxt, id); | 1662 | authctxt, id); |
1519 | } | 1663 | } |
1520 | key_free(id->key); | 1664 | sshkey_free(id->key); |
1521 | id->key = NULL; | 1665 | id->key = NULL; |
1522 | id->isprivate = 0; | 1666 | id->isprivate = 0; |
1523 | } | 1667 | } |
@@ -1534,28 +1678,31 @@ userauth_pubkey(Authctxt *authctxt) | |||
1534 | int | 1678 | int |
1535 | userauth_kbdint(Authctxt *authctxt) | 1679 | userauth_kbdint(Authctxt *authctxt) |
1536 | { | 1680 | { |
1681 | struct ssh *ssh = active_state; /* XXX */ | ||
1537 | static int attempt = 0; | 1682 | static int attempt = 0; |
1683 | int r; | ||
1538 | 1684 | ||
1539 | if (attempt++ >= options.number_of_password_prompts) | 1685 | if (attempt++ >= options.number_of_password_prompts) |
1540 | return 0; | 1686 | return 0; |
1541 | /* disable if no SSH2_MSG_USERAUTH_INFO_REQUEST has been seen */ | 1687 | /* disable if no SSH2_MSG_USERAUTH_INFO_REQUEST has been seen */ |
1542 | if (attempt > 1 && !authctxt->info_req_seen) { | 1688 | if (attempt > 1 && !authctxt->info_req_seen) { |
1543 | debug3("userauth_kbdint: disable: no info_req_seen"); | 1689 | debug3("userauth_kbdint: disable: no info_req_seen"); |
1544 | dispatch_set(SSH2_MSG_USERAUTH_INFO_REQUEST, NULL); | 1690 | ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_INFO_REQUEST, NULL); |
1545 | return 0; | 1691 | return 0; |
1546 | } | 1692 | } |
1547 | 1693 | ||
1548 | debug2("userauth_kbdint"); | 1694 | debug2("userauth_kbdint"); |
1549 | packet_start(SSH2_MSG_USERAUTH_REQUEST); | 1695 | if ((r = sshpkt_start(ssh, SSH2_MSG_USERAUTH_REQUEST)) != 0 || |
1550 | packet_put_cstring(authctxt->server_user); | 1696 | (r = sshpkt_put_cstring(ssh, authctxt->server_user)) != 0 || |
1551 | packet_put_cstring(authctxt->service); | 1697 | (r = sshpkt_put_cstring(ssh, authctxt->service)) != 0 || |
1552 | packet_put_cstring(authctxt->method->name); | 1698 | (r = sshpkt_put_cstring(ssh, authctxt->method->name)) != 0 || |
1553 | packet_put_cstring(""); /* lang */ | 1699 | (r = sshpkt_put_cstring(ssh, "")) != 0 || /* lang */ |
1554 | packet_put_cstring(options.kbd_interactive_devices ? | 1700 | (r = sshpkt_put_cstring(ssh, options.kbd_interactive_devices ? |
1555 | options.kbd_interactive_devices : ""); | 1701 | options.kbd_interactive_devices : "")) != 0 || |
1556 | packet_send(); | 1702 | (r = sshpkt_send(ssh)) != 0) |
1557 | 1703 | fatal("%s: %s", __func__, ssh_err(r)); | |
1558 | dispatch_set(SSH2_MSG_USERAUTH_INFO_REQUEST, &input_userauth_info_req); | 1704 | |
1705 | ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_INFO_REQUEST, &input_userauth_info_req); | ||
1559 | return 1; | 1706 | return 1; |
1560 | } | 1707 | } |
1561 | 1708 | ||
@@ -1566,9 +1713,11 @@ int | |||
1566 | input_userauth_info_req(int type, u_int32_t seq, struct ssh *ssh) | 1713 | input_userauth_info_req(int type, u_int32_t seq, struct ssh *ssh) |
1567 | { | 1714 | { |
1568 | Authctxt *authctxt = ssh->authctxt; | 1715 | Authctxt *authctxt = ssh->authctxt; |
1569 | char *name, *inst, *lang, *prompt, *response; | 1716 | char *name = NULL, *inst = NULL, *lang = NULL, *prompt = NULL; |
1717 | char *response = NULL; | ||
1718 | u_char echo = 0; | ||
1570 | u_int num_prompts, i; | 1719 | u_int num_prompts, i; |
1571 | int echo = 0; | 1720 | int r; |
1572 | 1721 | ||
1573 | debug2("input_userauth_info_req"); | 1722 | debug2("input_userauth_info_req"); |
1574 | 1723 | ||
@@ -1577,44 +1726,52 @@ input_userauth_info_req(int type, u_int32_t seq, struct ssh *ssh) | |||
1577 | 1726 | ||
1578 | authctxt->info_req_seen = 1; | 1727 | authctxt->info_req_seen = 1; |
1579 | 1728 | ||
1580 | name = packet_get_string(NULL); | 1729 | if ((r = sshpkt_get_cstring(ssh, &name, NULL)) != 0 || |
1581 | inst = packet_get_string(NULL); | 1730 | (r = sshpkt_get_cstring(ssh, &inst, NULL)) != 0 || |
1582 | lang = packet_get_string(NULL); | 1731 | (r = sshpkt_get_cstring(ssh, &lang, NULL)) != 0) |
1732 | goto out; | ||
1583 | if (strlen(name) > 0) | 1733 | if (strlen(name) > 0) |
1584 | logit("%s", name); | 1734 | logit("%s", name); |
1585 | if (strlen(inst) > 0) | 1735 | if (strlen(inst) > 0) |
1586 | logit("%s", inst); | 1736 | logit("%s", inst); |
1587 | free(name); | ||
1588 | free(inst); | ||
1589 | free(lang); | ||
1590 | 1737 | ||
1591 | num_prompts = packet_get_int(); | 1738 | if ((r = sshpkt_get_u32(ssh, &num_prompts)) != 0) |
1739 | goto out; | ||
1592 | /* | 1740 | /* |
1593 | * Begin to build info response packet based on prompts requested. | 1741 | * Begin to build info response packet based on prompts requested. |
1594 | * We commit to providing the correct number of responses, so if | 1742 | * We commit to providing the correct number of responses, so if |
1595 | * further on we run into a problem that prevents this, we have to | 1743 | * further on we run into a problem that prevents this, we have to |
1596 | * be sure and clean this up and send a correct error response. | 1744 | * be sure and clean this up and send a correct error response. |
1597 | */ | 1745 | */ |
1598 | packet_start(SSH2_MSG_USERAUTH_INFO_RESPONSE); | 1746 | if ((r = sshpkt_start(ssh, SSH2_MSG_USERAUTH_INFO_RESPONSE)) != 0 || |
1599 | packet_put_int(num_prompts); | 1747 | (r = sshpkt_put_u32(ssh, num_prompts)) != 0) |
1748 | goto out; | ||
1600 | 1749 | ||
1601 | debug2("input_userauth_info_req: num_prompts %d", num_prompts); | 1750 | debug2("input_userauth_info_req: num_prompts %d", num_prompts); |
1602 | for (i = 0; i < num_prompts; i++) { | 1751 | for (i = 0; i < num_prompts; i++) { |
1603 | prompt = packet_get_string(NULL); | 1752 | if ((r = sshpkt_get_cstring(ssh, &prompt, NULL)) != 0 || |
1604 | echo = packet_get_char(); | 1753 | (r = sshpkt_get_u8(ssh, &echo)) != 0) |
1605 | 1754 | goto out; | |
1606 | response = read_passphrase(prompt, echo ? RP_ECHO : 0); | 1755 | response = read_passphrase(prompt, echo ? RP_ECHO : 0); |
1607 | 1756 | if ((r = sshpkt_put_cstring(ssh, response)) != 0) | |
1608 | packet_put_cstring(response); | 1757 | goto out; |
1609 | explicit_bzero(response, strlen(response)); | 1758 | freezero(response, strlen(response)); |
1610 | free(response); | ||
1611 | free(prompt); | 1759 | free(prompt); |
1760 | response = prompt = NULL; | ||
1612 | } | 1761 | } |
1613 | packet_check_eom(); /* done with parsing incoming message. */ | 1762 | /* done with parsing incoming message. */ |
1614 | 1763 | if ((r = sshpkt_get_end(ssh)) != 0 || | |
1615 | packet_add_padding(64); | 1764 | (r = sshpkt_add_padding(ssh, 64)) != 0) |
1616 | packet_send(); | 1765 | goto out; |
1617 | return 0; | 1766 | r = sshpkt_send(ssh); |
1767 | out: | ||
1768 | if (response) | ||
1769 | freezero(response, strlen(response)); | ||
1770 | free(prompt); | ||
1771 | free(name); | ||
1772 | free(inst); | ||
1773 | free(lang); | ||
1774 | return r; | ||
1618 | } | 1775 | } |
1619 | 1776 | ||
1620 | static int | 1777 | static int |
@@ -1655,7 +1812,6 @@ ssh_keysign(struct sshkey *key, u_char **sigp, size_t *lenp, | |||
1655 | if (pid == 0) { | 1812 | if (pid == 0) { |
1656 | /* keep the socket on exec */ | 1813 | /* keep the socket on exec */ |
1657 | fcntl(sock, F_SETFD, 0); | 1814 | fcntl(sock, F_SETFD, 0); |
1658 | permanently_drop_suid(getuid()); | ||
1659 | close(from[0]); | 1815 | close(from[0]); |
1660 | if (dup2(from[1], STDOUT_FILENO) < 0) | 1816 | if (dup2(from[1], STDOUT_FILENO) < 0) |
1661 | fatal("%s: dup2: %s", __func__, strerror(errno)); | 1817 | fatal("%s: dup2: %s", __func__, strerror(errno)); |
@@ -1735,7 +1891,7 @@ ssh_keysign(struct sshkey *key, u_char **sigp, size_t *lenp, | |||
1735 | int | 1891 | int |
1736 | userauth_hostbased(Authctxt *authctxt) | 1892 | userauth_hostbased(Authctxt *authctxt) |
1737 | { | 1893 | { |
1738 | struct ssh *ssh = active_state; | 1894 | struct ssh *ssh = active_state; /* XXX */ |
1739 | struct sshkey *private = NULL; | 1895 | struct sshkey *private = NULL; |
1740 | struct sshbuf *b = NULL; | 1896 | struct sshbuf *b = NULL; |
1741 | u_char *sig = NULL, *keyblob = NULL; | 1897 | u_char *sig = NULL, *keyblob = NULL; |
@@ -1822,7 +1978,7 @@ userauth_hostbased(Authctxt *authctxt) | |||
1822 | (r = sshbuf_put_cstring(b, authctxt->server_user)) != 0 || | 1978 | (r = sshbuf_put_cstring(b, authctxt->server_user)) != 0 || |
1823 | (r = sshbuf_put_cstring(b, authctxt->service)) != 0 || | 1979 | (r = sshbuf_put_cstring(b, authctxt->service)) != 0 || |
1824 | (r = sshbuf_put_cstring(b, authctxt->method->name)) != 0 || | 1980 | (r = sshbuf_put_cstring(b, authctxt->method->name)) != 0 || |
1825 | (r = sshbuf_put_cstring(b, key_ssh_name(private))) != 0 || | 1981 | (r = sshbuf_put_cstring(b, sshkey_ssh_name(private))) != 0 || |
1826 | (r = sshbuf_put_string(b, keyblob, keylen)) != 0 || | 1982 | (r = sshbuf_put_string(b, keyblob, keylen)) != 0 || |
1827 | (r = sshbuf_put_cstring(b, chost)) != 0 || | 1983 | (r = sshbuf_put_cstring(b, chost)) != 0 || |
1828 | (r = sshbuf_put_cstring(b, authctxt->local_user)) != 0) { | 1984 | (r = sshbuf_put_cstring(b, authctxt->local_user)) != 0) { |
@@ -1833,12 +1989,8 @@ userauth_hostbased(Authctxt *authctxt) | |||
1833 | #ifdef DEBUG_PK | 1989 | #ifdef DEBUG_PK |
1834 | sshbuf_dump(b, stderr); | 1990 | sshbuf_dump(b, stderr); |
1835 | #endif | 1991 | #endif |
1836 | if (authctxt->sensitive->external_keysign) | 1992 | r = ssh_keysign(private, &sig, &siglen, |
1837 | r = ssh_keysign(private, &sig, &siglen, | 1993 | sshbuf_ptr(b), sshbuf_len(b)); |
1838 | sshbuf_ptr(b), sshbuf_len(b)); | ||
1839 | else if ((r = sshkey_sign(private, &sig, &siglen, | ||
1840 | sshbuf_ptr(b), sshbuf_len(b), NULL, datafellows)) != 0) | ||
1841 | debug("%s: sshkey_sign: %s", __func__, ssh_err(r)); | ||
1842 | if (r != 0) { | 1994 | if (r != 0) { |
1843 | error("sign using hostkey %s %s failed", | 1995 | error("sign using hostkey %s %s failed", |
1844 | sshkey_ssh_name(private), fp); | 1996 | sshkey_ssh_name(private), fp); |
@@ -1848,7 +2000,7 @@ userauth_hostbased(Authctxt *authctxt) | |||
1848 | (r = sshpkt_put_cstring(ssh, authctxt->server_user)) != 0 || | 2000 | (r = sshpkt_put_cstring(ssh, authctxt->server_user)) != 0 || |
1849 | (r = sshpkt_put_cstring(ssh, authctxt->service)) != 0 || | 2001 | (r = sshpkt_put_cstring(ssh, authctxt->service)) != 0 || |
1850 | (r = sshpkt_put_cstring(ssh, authctxt->method->name)) != 0 || | 2002 | (r = sshpkt_put_cstring(ssh, authctxt->method->name)) != 0 || |
1851 | (r = sshpkt_put_cstring(ssh, key_ssh_name(private))) != 0 || | 2003 | (r = sshpkt_put_cstring(ssh, sshkey_ssh_name(private))) != 0 || |
1852 | (r = sshpkt_put_string(ssh, keyblob, keylen)) != 0 || | 2004 | (r = sshpkt_put_string(ssh, keyblob, keylen)) != 0 || |
1853 | (r = sshpkt_put_cstring(ssh, chost)) != 0 || | 2005 | (r = sshpkt_put_cstring(ssh, chost)) != 0 || |
1854 | (r = sshpkt_put_cstring(ssh, authctxt->local_user)) != 0 || | 2006 | (r = sshpkt_put_cstring(ssh, authctxt->local_user)) != 0 || |
@@ -1860,10 +2012,8 @@ userauth_hostbased(Authctxt *authctxt) | |||
1860 | success = 1; | 2012 | success = 1; |
1861 | 2013 | ||
1862 | out: | 2014 | out: |
1863 | if (sig != NULL) { | 2015 | if (sig != NULL) |
1864 | explicit_bzero(sig, siglen); | 2016 | freezero(sig, siglen); |
1865 | free(sig); | ||
1866 | } | ||
1867 | free(keyblob); | 2017 | free(keyblob); |
1868 | free(lname); | 2018 | free(lname); |
1869 | free(fp); | 2019 | free(fp); |
@@ -1960,20 +2110,22 @@ static char * | |||
1960 | authmethods_get(void) | 2110 | authmethods_get(void) |
1961 | { | 2111 | { |
1962 | Authmethod *method = NULL; | 2112 | Authmethod *method = NULL; |
1963 | Buffer b; | 2113 | struct sshbuf *b; |
1964 | char *list; | 2114 | char *list; |
2115 | int r; | ||
1965 | 2116 | ||
1966 | buffer_init(&b); | 2117 | if ((b = sshbuf_new()) == NULL) |
2118 | fatal("%s: sshbuf_new failed", __func__); | ||
1967 | for (method = authmethods; method->name != NULL; method++) { | 2119 | for (method = authmethods; method->name != NULL; method++) { |
1968 | if (authmethod_is_enabled(method)) { | 2120 | if (authmethod_is_enabled(method)) { |
1969 | if (buffer_len(&b) > 0) | 2121 | if ((r = sshbuf_putf(b, "%s%s", |
1970 | buffer_append(&b, ",", 1); | 2122 | sshbuf_len(b) ? "," : "", method->name)) != 0) |
1971 | buffer_append(&b, method->name, strlen(method->name)); | 2123 | fatal("%s: buffer error: %s", |
2124 | __func__, ssh_err(r)); | ||
1972 | } | 2125 | } |
1973 | } | 2126 | } |
1974 | if ((list = sshbuf_dup_string(&b)) == NULL) | 2127 | if ((list = sshbuf_dup_string(b)) == NULL) |
1975 | fatal("%s: sshbuf_dup_string failed", __func__); | 2128 | fatal("%s: sshbuf_dup_string failed", __func__); |
1976 | buffer_free(&b); | 2129 | sshbuf_free(b); |
1977 | return list; | 2130 | return list; |
1978 | } | 2131 | } |
1979 | |||
@@ -145,7 +145,7 @@ AUTHENTICATION | |||
145 | Regardless of the authentication type, the account is checked to ensure | 145 | Regardless of the authentication type, the account is checked to ensure |
146 | that it is accessible. An account is not accessible if it is locked, | 146 | that it is accessible. An account is not accessible if it is locked, |
147 | listed in DenyUsers or its group is listed in DenyGroups . The | 147 | listed in DenyUsers or its group is listed in DenyGroups . The |
148 | definition of a locked account is system dependant. Some platforms have | 148 | definition of a locked account is system dependent. Some platforms have |
149 | their own account database (eg AIX) and some modify the passwd field ( | 149 | their own account database (eg AIX) and some modify the passwd field ( |
150 | M-bM-^@M-^X*LK*M-bM-^@M-^Y on Solaris and UnixWare, M-bM-^@M-^X*M-bM-^@M-^Y on HP-UX, containing M-bM-^@M-^XNologinM-bM-^@M-^Y on | 150 | M-bM-^@M-^X*LK*M-bM-^@M-^Y on Solaris and UnixWare, M-bM-^@M-^X*M-bM-^@M-^Y on HP-UX, containing M-bM-^@M-^XNologinM-bM-^@M-^Y on |
151 | Tru64, a leading M-bM-^@M-^X*LOCKED*M-bM-^@M-^Y on FreeBSD and a leading M-bM-^@M-^X!M-bM-^@M-^Y on most | 151 | Tru64, a leading M-bM-^@M-^X*LOCKED*M-bM-^@M-^Y on FreeBSD and a leading M-bM-^@M-^X!M-bM-^@M-^Y on most |
@@ -341,14 +341,28 @@ AUTHORIZED_KEYS FILE FORMAT | |||
341 | Forbids X11 forwarding when this key is used for authentication. | 341 | Forbids X11 forwarding when this key is used for authentication. |
342 | Any X11 forward requests by the client will return an error. | 342 | Any X11 forward requests by the client will return an error. |
343 | 343 | ||
344 | permitlisten="[host:]port" | ||
345 | Limit remote port forwarding with the ssh(1) -R option such that | ||
346 | it may only listen on the specified host (optional) and port. | ||
347 | IPv6 addresses can be specified by enclosing the address in | ||
348 | square brackets. Multiple permitlisten options may be applied | ||
349 | separated by commas. Hostnames may include wildcards as | ||
350 | described in the PATTERNS section in ssh_config(5). A port | ||
351 | specification of * matches any port. Note that the setting of | ||
352 | GatewayPorts may further restrict listen addresses. Note that | ||
353 | ssh(1) will send a hostname of M-bM-^@M-^\localhostM-bM-^@M-^] if a listen host was | ||
354 | not specified when the forwarding was requested, and that this | ||
355 | name is treated differently to the explicit localhost addresses | ||
356 | M-bM-^@M-^\127.0.0.1M-bM-^@M-^] and M-bM-^@M-^\::1M-bM-^@M-^]. | ||
357 | |||
344 | permitopen="host:port" | 358 | permitopen="host:port" |
345 | Limit local port forwarding with ssh(1) -L such that it may only | 359 | Limit local port forwarding with the ssh(1) -L option such that |
346 | connect to the specified host and port. IPv6 addresses can be | 360 | it may only connect to the specified host and port. IPv6 |
347 | specified by enclosing the address in square brackets. Multiple | 361 | addresses can be specified by enclosing the address in square |
348 | permitopen options may be applied separated by commas. No | 362 | brackets. Multiple permitopen options may be applied separated |
349 | pattern matching is performed on the specified hostnames, they | 363 | by commas. No pattern matching is performed on the specified |
350 | must be literal domains or addresses. A port specification of * | 364 | hostnames, they must be literal domains or addresses. A port |
351 | matches any port. | 365 | specification of * matches any port. |
352 | 366 | ||
353 | port-forwarding | 367 | port-forwarding |
354 | Enable port forwarding previously disabled by the restrict | 368 | Enable port forwarding previously disabled by the restrict |
@@ -390,9 +404,11 @@ AUTHORIZED_KEYS FILE FORMAT | |||
390 | ssh-rsa AAAAB3Nza...LiPk== user@example.net | 404 | ssh-rsa AAAAB3Nza...LiPk== user@example.net |
391 | from="*.sales.example.net,!pc.sales.example.net" ssh-rsa | 405 | from="*.sales.example.net,!pc.sales.example.net" ssh-rsa |
392 | AAAAB2...19Q== john@example.net | 406 | AAAAB2...19Q== john@example.net |
393 | command="dump /home",no-pty,no-port-forwarding ssh-dss | 407 | command="dump /home",no-pty,no-port-forwarding ssh-rsa |
394 | AAAAC3...51R== example.net | 408 | AAAAC3...51R== example.net |
395 | permitopen="192.0.2.1:80",permitopen="192.0.2.2:25" ssh-dss | 409 | permitopen="192.0.2.1:80",permitopen="192.0.2.2:25" ssh-rsa |
410 | AAAAB5...21S== | ||
411 | permitlisten="localhost:8080",permitopen="localhost:22000" ssh-rsa | ||
396 | AAAAB5...21S== | 412 | AAAAB5...21S== |
397 | tunnel="0",command="sh /etc/netstart tun0" ssh-rsa AAAA...== | 413 | tunnel="0",command="sh /etc/netstart tun0" ssh-rsa AAAA...== |
398 | jane@example.net | 414 | jane@example.net |
@@ -634,4 +650,4 @@ AUTHORS | |||
634 | versions 1.5 and 2.0. Niels Provos and Markus Friedl contributed support | 650 | versions 1.5 and 2.0. Niels Provos and Markus Friedl contributed support |
635 | for privilege separation. | 651 | for privilege separation. |
636 | 652 | ||
637 | OpenBSD 6.2 March 14, 2018 OpenBSD 6.2 | 653 | OpenBSD 6.4 July 22, 2018 OpenBSD 6.4 |
@@ -33,8 +33,8 @@ | |||
33 | .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | 33 | .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
34 | .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 34 | .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
35 | .\" | 35 | .\" |
36 | .\" $OpenBSD: sshd.8,v 1.299 2018/03/14 06:56:20 jmc Exp $ | 36 | .\" $OpenBSD: sshd.8,v 1.304 2018/07/22 12:16:59 dtucker Exp $ |
37 | .Dd $Mdocdate: March 14 2018 $ | 37 | .Dd $Mdocdate: July 22 2018 $ |
38 | .Dt SSHD 8 | 38 | .Dt SSHD 8 |
39 | .Os | 39 | .Os |
40 | .Sh NAME | 40 | .Sh NAME |
@@ -277,7 +277,7 @@ locked, listed in | |||
277 | .Cm DenyUsers | 277 | .Cm DenyUsers |
278 | or its group is listed in | 278 | or its group is listed in |
279 | .Cm DenyGroups | 279 | .Cm DenyGroups |
280 | \&. The definition of a locked account is system dependant. Some platforms | 280 | \&. The definition of a locked account is system dependent. Some platforms |
281 | have their own account database (eg AIX) and some modify the passwd field ( | 281 | have their own account database (eg AIX) and some modify the passwd field ( |
282 | .Ql \&*LK\&* | 282 | .Ql \&*LK\&* |
283 | on Solaris and UnixWare, | 283 | on Solaris and UnixWare, |
@@ -554,11 +554,37 @@ Disables execution of | |||
554 | .It Cm no-X11-forwarding | 554 | .It Cm no-X11-forwarding |
555 | Forbids X11 forwarding when this key is used for authentication. | 555 | Forbids X11 forwarding when this key is used for authentication. |
556 | Any X11 forward requests by the client will return an error. | 556 | Any X11 forward requests by the client will return an error. |
557 | .It Cm permitlisten="[host:]port" | ||
558 | Limit remote port forwarding with the | ||
559 | .Xr ssh 1 | ||
560 | .Fl R | ||
561 | option such that it may only listen on the specified host (optional) and port. | ||
562 | IPv6 addresses can be specified by enclosing the address in square brackets. | ||
563 | Multiple | ||
564 | .Cm permitlisten | ||
565 | options may be applied separated by commas. | ||
566 | Hostnames may include wildcards as described in the PATTERNS section in | ||
567 | .Xr ssh_config 5 . | ||
568 | A port specification of | ||
569 | .Cm * | ||
570 | matches any port. | ||
571 | Note that the setting of | ||
572 | .Cm GatewayPorts | ||
573 | may further restrict listen addresses. | ||
574 | Note that | ||
575 | .Xr ssh 1 | ||
576 | will send a hostname of | ||
577 | .Dq localhost | ||
578 | if a listen host was not specified when the forwarding was requested, and | ||
579 | that this name is treated differently to the explicit localhost addresses | ||
580 | .Dq 127.0.0.1 | ||
581 | and | ||
582 | .Dq ::1 . | ||
557 | .It Cm permitopen="host:port" | 583 | .It Cm permitopen="host:port" |
558 | Limit local port forwarding with | 584 | Limit local port forwarding with the |
559 | .Xr ssh 1 | 585 | .Xr ssh 1 |
560 | .Fl L | 586 | .Fl L |
561 | such that it may only connect to the specified host and port. | 587 | option such that it may only connect to the specified host and port. |
562 | IPv6 addresses can be specified by enclosing the address in square brackets. | 588 | IPv6 addresses can be specified by enclosing the address in square brackets. |
563 | Multiple | 589 | Multiple |
564 | .Cm permitopen | 590 | .Cm permitopen |
@@ -618,9 +644,11 @@ An example authorized_keys file: | |||
618 | ssh-rsa AAAAB3Nza...LiPk== user@example.net | 644 | ssh-rsa AAAAB3Nza...LiPk== user@example.net |
619 | from="*.sales.example.net,!pc.sales.example.net" ssh-rsa | 645 | from="*.sales.example.net,!pc.sales.example.net" ssh-rsa |
620 | AAAAB2...19Q== john@example.net | 646 | AAAAB2...19Q== john@example.net |
621 | command="dump /home",no-pty,no-port-forwarding ssh-dss | 647 | command="dump /home",no-pty,no-port-forwarding ssh-rsa |
622 | AAAAC3...51R== example.net | 648 | AAAAC3...51R== example.net |
623 | permitopen="192.0.2.1:80",permitopen="192.0.2.2:25" ssh-dss | 649 | permitopen="192.0.2.1:80",permitopen="192.0.2.2:25" ssh-rsa |
650 | AAAAB5...21S== | ||
651 | permitlisten="localhost:8080",permitopen="localhost:22000" ssh-rsa | ||
624 | AAAAB5...21S== | 652 | AAAAB5...21S== |
625 | tunnel="0",command="sh /etc/netstart tun0" ssh-rsa AAAA...== | 653 | tunnel="0",command="sh /etc/netstart tun0" ssh-rsa AAAA...== |
626 | jane@example.net | 654 | jane@example.net |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: sshd.c,v 1.506 2018/03/03 03:15:51 djm Exp $ */ | 1 | /* $OpenBSD: sshd.c,v 1.514 2018/08/13 02:41:05 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -91,7 +91,7 @@ | |||
91 | #include "sshpty.h" | 91 | #include "sshpty.h" |
92 | #include "packet.h" | 92 | #include "packet.h" |
93 | #include "log.h" | 93 | #include "log.h" |
94 | #include "buffer.h" | 94 | #include "sshbuf.h" |
95 | #include "misc.h" | 95 | #include "misc.h" |
96 | #include "match.h" | 96 | #include "match.h" |
97 | #include "servconf.h" | 97 | #include "servconf.h" |
@@ -99,7 +99,7 @@ | |||
99 | #include "compat.h" | 99 | #include "compat.h" |
100 | #include "cipher.h" | 100 | #include "cipher.h" |
101 | #include "digest.h" | 101 | #include "digest.h" |
102 | #include "key.h" | 102 | #include "sshkey.h" |
103 | #include "kex.h" | 103 | #include "kex.h" |
104 | #include "myproposal.h" | 104 | #include "myproposal.h" |
105 | #include "authfile.h" | 105 | #include "authfile.h" |
@@ -237,10 +237,10 @@ Authctxt *the_authctxt = NULL; | |||
237 | struct sshauthopt *auth_opts = NULL; | 237 | struct sshauthopt *auth_opts = NULL; |
238 | 238 | ||
239 | /* sshd_config buffer */ | 239 | /* sshd_config buffer */ |
240 | Buffer cfg; | 240 | struct sshbuf *cfg; |
241 | 241 | ||
242 | /* message to be displayed after login */ | 242 | /* message to be displayed after login */ |
243 | Buffer loginmsg; | 243 | struct sshbuf *loginmsg; |
244 | 244 | ||
245 | /* Unprivileged user */ | 245 | /* Unprivileged user */ |
246 | struct passwd *privsep_pw = NULL; | 246 | struct passwd *privsep_pw = NULL; |
@@ -473,11 +473,11 @@ destroy_sensitive_data(void) | |||
473 | 473 | ||
474 | for (i = 0; i < options.num_host_key_files; i++) { | 474 | for (i = 0; i < options.num_host_key_files; i++) { |
475 | if (sensitive_data.host_keys[i]) { | 475 | if (sensitive_data.host_keys[i]) { |
476 | key_free(sensitive_data.host_keys[i]); | 476 | sshkey_free(sensitive_data.host_keys[i]); |
477 | sensitive_data.host_keys[i] = NULL; | 477 | sensitive_data.host_keys[i] = NULL; |
478 | } | 478 | } |
479 | if (sensitive_data.host_certificates[i]) { | 479 | if (sensitive_data.host_certificates[i]) { |
480 | key_free(sensitive_data.host_certificates[i]); | 480 | sshkey_free(sensitive_data.host_certificates[i]); |
481 | sensitive_data.host_certificates[i] = NULL; | 481 | sensitive_data.host_certificates[i] = NULL; |
482 | } | 482 | } |
483 | } | 483 | } |
@@ -489,11 +489,16 @@ demote_sensitive_data(void) | |||
489 | { | 489 | { |
490 | struct sshkey *tmp; | 490 | struct sshkey *tmp; |
491 | u_int i; | 491 | u_int i; |
492 | int r; | ||
492 | 493 | ||
493 | for (i = 0; i < options.num_host_key_files; i++) { | 494 | for (i = 0; i < options.num_host_key_files; i++) { |
494 | if (sensitive_data.host_keys[i]) { | 495 | if (sensitive_data.host_keys[i]) { |
495 | tmp = key_demote(sensitive_data.host_keys[i]); | 496 | if ((r = sshkey_demote(sensitive_data.host_keys[i], |
496 | key_free(sensitive_data.host_keys[i]); | 497 | &tmp)) != 0) |
498 | fatal("could not demote host %s key: %s", | ||
499 | sshkey_type(sensitive_data.host_keys[i]), | ||
500 | ssh_err(r)); | ||
501 | sshkey_free(sensitive_data.host_keys[i]); | ||
497 | sensitive_data.host_keys[i] = tmp; | 502 | sensitive_data.host_keys[i] = tmp; |
498 | } | 503 | } |
499 | /* Certs do not need demotion */ | 504 | /* Certs do not need demotion */ |
@@ -649,7 +654,7 @@ privsep_postauth(Authctxt *authctxt) | |||
649 | fatal("fork of unprivileged child failed"); | 654 | fatal("fork of unprivileged child failed"); |
650 | else if (pmonitor->m_pid != 0) { | 655 | else if (pmonitor->m_pid != 0) { |
651 | verbose("User child is on pid %ld", (long)pmonitor->m_pid); | 656 | verbose("User child is on pid %ld", (long)pmonitor->m_pid); |
652 | buffer_clear(&loginmsg); | 657 | sshbuf_reset(loginmsg); |
653 | monitor_clear_keystate(pmonitor); | 658 | monitor_clear_keystate(pmonitor); |
654 | monitor_child_postauth(pmonitor); | 659 | monitor_child_postauth(pmonitor); |
655 | 660 | ||
@@ -681,45 +686,47 @@ privsep_postauth(Authctxt *authctxt) | |||
681 | packet_set_authenticated(); | 686 | packet_set_authenticated(); |
682 | } | 687 | } |
683 | 688 | ||
689 | static void | ||
690 | append_hostkey_type(struct sshbuf *b, const char *s) | ||
691 | { | ||
692 | int r; | ||
693 | |||
694 | if (match_pattern_list(s, options.hostkeyalgorithms, 0) != 1) { | ||
695 | debug3("%s: %s key not permitted by HostkeyAlgorithms", | ||
696 | __func__, s); | ||
697 | return; | ||
698 | } | ||
699 | if ((r = sshbuf_putf(b, "%s%s", sshbuf_len(b) > 0 ? "," : "", s)) != 0) | ||
700 | fatal("%s: sshbuf_putf: %s", __func__, ssh_err(r)); | ||
701 | } | ||
702 | |||
684 | static char * | 703 | static char * |
685 | list_hostkey_types(void) | 704 | list_hostkey_types(void) |
686 | { | 705 | { |
687 | Buffer b; | 706 | struct sshbuf *b; |
688 | const char *p; | 707 | struct sshkey *key; |
689 | char *ret; | 708 | char *ret; |
690 | u_int i; | 709 | u_int i; |
691 | struct sshkey *key; | ||
692 | 710 | ||
693 | buffer_init(&b); | 711 | if ((b = sshbuf_new()) == NULL) |
712 | fatal("%s: sshbuf_new failed", __func__); | ||
694 | for (i = 0; i < options.num_host_key_files; i++) { | 713 | for (i = 0; i < options.num_host_key_files; i++) { |
695 | key = sensitive_data.host_keys[i]; | 714 | key = sensitive_data.host_keys[i]; |
696 | if (key == NULL) | 715 | if (key == NULL) |
697 | key = sensitive_data.host_pubkeys[i]; | 716 | key = sensitive_data.host_pubkeys[i]; |
698 | if (key == NULL) | 717 | if (key == NULL) |
699 | continue; | 718 | continue; |
700 | /* Check that the key is accepted in HostkeyAlgorithms */ | ||
701 | if (match_pattern_list(sshkey_ssh_name(key), | ||
702 | options.hostkeyalgorithms, 0) != 1) { | ||
703 | debug3("%s: %s key not permitted by HostkeyAlgorithms", | ||
704 | __func__, sshkey_ssh_name(key)); | ||
705 | continue; | ||
706 | } | ||
707 | switch (key->type) { | 719 | switch (key->type) { |
708 | case KEY_RSA: | 720 | case KEY_RSA: |
721 | /* for RSA we also support SHA2 signatures */ | ||
722 | append_hostkey_type(b, "rsa-sha2-512"); | ||
723 | append_hostkey_type(b, "rsa-sha2-256"); | ||
724 | /* FALLTHROUGH */ | ||
709 | case KEY_DSA: | 725 | case KEY_DSA: |
710 | case KEY_ECDSA: | 726 | case KEY_ECDSA: |
711 | case KEY_ED25519: | 727 | case KEY_ED25519: |
712 | case KEY_XMSS: | 728 | case KEY_XMSS: |
713 | if (buffer_len(&b) > 0) | 729 | append_hostkey_type(b, sshkey_ssh_name(key)); |
714 | buffer_append(&b, ",", 1); | ||
715 | p = key_ssh_name(key); | ||
716 | buffer_append(&b, p, strlen(p)); | ||
717 | |||
718 | /* for RSA we also support SHA2 signatures */ | ||
719 | if (key->type == KEY_RSA) { | ||
720 | p = ",rsa-sha2-512,rsa-sha2-256"; | ||
721 | buffer_append(&b, p, strlen(p)); | ||
722 | } | ||
723 | break; | 730 | break; |
724 | } | 731 | } |
725 | /* If the private key has a cert peer, then list that too */ | 732 | /* If the private key has a cert peer, then list that too */ |
@@ -728,21 +735,24 @@ list_hostkey_types(void) | |||
728 | continue; | 735 | continue; |
729 | switch (key->type) { | 736 | switch (key->type) { |
730 | case KEY_RSA_CERT: | 737 | case KEY_RSA_CERT: |
738 | /* for RSA we also support SHA2 signatures */ | ||
739 | append_hostkey_type(b, | ||
740 | "rsa-sha2-512-cert-v01@openssh.com"); | ||
741 | append_hostkey_type(b, | ||
742 | "rsa-sha2-256-cert-v01@openssh.com"); | ||
743 | /* FALLTHROUGH */ | ||
731 | case KEY_DSA_CERT: | 744 | case KEY_DSA_CERT: |
732 | case KEY_ECDSA_CERT: | 745 | case KEY_ECDSA_CERT: |
733 | case KEY_ED25519_CERT: | 746 | case KEY_ED25519_CERT: |
734 | case KEY_XMSS_CERT: | 747 | case KEY_XMSS_CERT: |
735 | if (buffer_len(&b) > 0) | 748 | append_hostkey_type(b, sshkey_ssh_name(key)); |
736 | buffer_append(&b, ",", 1); | ||
737 | p = key_ssh_name(key); | ||
738 | buffer_append(&b, p, strlen(p)); | ||
739 | break; | 749 | break; |
740 | } | 750 | } |
741 | } | 751 | } |
742 | if ((ret = sshbuf_dup_string(&b)) == NULL) | 752 | if ((ret = sshbuf_dup_string(b)) == NULL) |
743 | fatal("%s: sshbuf_dup_string failed", __func__); | 753 | fatal("%s: sshbuf_dup_string failed", __func__); |
744 | buffer_free(&b); | 754 | sshbuf_free(b); |
745 | debug("list_hostkey_types: %s", ret); | 755 | debug("%s: %s", __func__, ret); |
746 | return ret; | 756 | return ret; |
747 | } | 757 | } |
748 | 758 | ||
@@ -809,7 +819,7 @@ get_hostkey_index(struct sshkey *key, int compare, struct ssh *ssh) | |||
809 | u_int i; | 819 | u_int i; |
810 | 820 | ||
811 | for (i = 0; i < options.num_host_key_files; i++) { | 821 | for (i = 0; i < options.num_host_key_files; i++) { |
812 | if (key_is_cert(key)) { | 822 | if (sshkey_is_cert(key)) { |
813 | if (key == sensitive_data.host_certificates[i] || | 823 | if (key == sensitive_data.host_certificates[i] || |
814 | (compare && sensitive_data.host_certificates[i] && | 824 | (compare && sensitive_data.host_certificates[i] && |
815 | sshkey_equal(key, | 825 | sshkey_equal(key, |
@@ -953,31 +963,33 @@ send_rexec_state(int fd, struct sshbuf *conf) | |||
953 | } | 963 | } |
954 | 964 | ||
955 | static void | 965 | static void |
956 | recv_rexec_state(int fd, Buffer *conf) | 966 | recv_rexec_state(int fd, struct sshbuf *conf) |
957 | { | 967 | { |
958 | Buffer m; | 968 | struct sshbuf *m; |
959 | char *cp; | 969 | u_char *cp, ver; |
960 | u_int len; | 970 | size_t len; |
971 | int r; | ||
961 | 972 | ||
962 | debug3("%s: entering fd = %d", __func__, fd); | 973 | debug3("%s: entering fd = %d", __func__, fd); |
963 | 974 | ||
964 | buffer_init(&m); | 975 | if ((m = sshbuf_new()) == NULL) |
965 | 976 | fatal("%s: sshbuf_new failed", __func__); | |
966 | if (ssh_msg_recv(fd, &m) == -1) | 977 | if (ssh_msg_recv(fd, m) == -1) |
967 | fatal("%s: ssh_msg_recv failed", __func__); | 978 | fatal("%s: ssh_msg_recv failed", __func__); |
968 | if (buffer_get_char(&m) != 0) | 979 | if ((r = sshbuf_get_u8(m, &ver)) != 0) |
980 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
981 | if (ver != 0) | ||
969 | fatal("%s: rexec version mismatch", __func__); | 982 | fatal("%s: rexec version mismatch", __func__); |
970 | 983 | if ((r = sshbuf_get_string(m, &cp, &len)) != 0) | |
971 | cp = buffer_get_string(&m, &len); | 984 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
972 | if (conf != NULL) | 985 | if (conf != NULL && (r = sshbuf_put(conf, cp, len))) |
973 | buffer_append(conf, cp, len); | 986 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
974 | free(cp); | ||
975 | |||
976 | #if defined(WITH_OPENSSL) && !defined(OPENSSL_PRNG_ONLY) | 987 | #if defined(WITH_OPENSSL) && !defined(OPENSSL_PRNG_ONLY) |
977 | rexec_recv_rng_seed(&m); | 988 | rexec_recv_rng_seed(m); |
978 | #endif | 989 | #endif |
979 | 990 | ||
980 | buffer_free(&m); | 991 | free(cp); |
992 | sshbuf_free(m); | ||
981 | 993 | ||
982 | debug3("%s: done", __func__); | 994 | debug3("%s: done", __func__); |
983 | } | 995 | } |
@@ -1258,8 +1270,7 @@ server_accept_loop(int *sock_in, int *sock_out, int *newsock, int *config_s) | |||
1258 | startup_pipe = -1; | 1270 | startup_pipe = -1; |
1259 | pid = getpid(); | 1271 | pid = getpid(); |
1260 | if (rexec_flag) { | 1272 | if (rexec_flag) { |
1261 | send_rexec_state(config_s[0], | 1273 | send_rexec_state(config_s[0], cfg); |
1262 | &cfg); | ||
1263 | close(config_s[0]); | 1274 | close(config_s[0]); |
1264 | } | 1275 | } |
1265 | break; | 1276 | break; |
@@ -1305,7 +1316,7 @@ server_accept_loop(int *sock_in, int *sock_out, int *newsock, int *config_s) | |||
1305 | close(startup_p[1]); | 1316 | close(startup_p[1]); |
1306 | 1317 | ||
1307 | if (rexec_flag) { | 1318 | if (rexec_flag) { |
1308 | send_rexec_state(config_s[0], &cfg); | 1319 | send_rexec_state(config_s[0], cfg); |
1309 | close(config_s[0]); | 1320 | close(config_s[0]); |
1310 | close(config_s[1]); | 1321 | close(config_s[1]); |
1311 | } | 1322 | } |
@@ -1336,7 +1347,7 @@ server_accept_loop(int *sock_in, int *sock_out, int *newsock, int *config_s) | |||
1336 | * return an error if any are found). Basically we are worried about | 1347 | * return an error if any are found). Basically we are worried about |
1337 | * source routing; it can be used to pretend you are somebody | 1348 | * source routing; it can be used to pretend you are somebody |
1338 | * (ip-address) you are not. That itself may be "almost acceptable" | 1349 | * (ip-address) you are not. That itself may be "almost acceptable" |
1339 | * under certain circumstances, but rhosts autentication is useless | 1350 | * under certain circumstances, but rhosts authentication is useless |
1340 | * if source routing is accepted. Notice also that if we just dropped | 1351 | * if source routing is accepted. Notice also that if we just dropped |
1341 | * source routing here, the other side could use IP spoofing to do | 1352 | * source routing here, the other side could use IP spoofing to do |
1342 | * rest of the interaction and could still bypass security. So we | 1353 | * rest of the interaction and could still bypass security. So we |
@@ -1413,6 +1424,43 @@ set_process_rdomain(struct ssh *ssh, const char *name) | |||
1413 | #endif | 1424 | #endif |
1414 | } | 1425 | } |
1415 | 1426 | ||
1427 | static void | ||
1428 | accumulate_host_timing_secret(struct sshbuf *server_cfg, | ||
1429 | const struct sshkey *key) | ||
1430 | { | ||
1431 | static struct ssh_digest_ctx *ctx; | ||
1432 | u_char *hash; | ||
1433 | size_t len; | ||
1434 | struct sshbuf *buf; | ||
1435 | int r; | ||
1436 | |||
1437 | if (ctx == NULL && (ctx = ssh_digest_start(SSH_DIGEST_SHA512)) == NULL) | ||
1438 | fatal("%s: ssh_digest_start", __func__); | ||
1439 | if (key == NULL) { /* finalize */ | ||
1440 | /* add server config in case we are using agent for host keys */ | ||
1441 | if (ssh_digest_update(ctx, sshbuf_ptr(server_cfg), | ||
1442 | sshbuf_len(server_cfg)) != 0) | ||
1443 | fatal("%s: ssh_digest_update", __func__); | ||
1444 | len = ssh_digest_bytes(SSH_DIGEST_SHA512); | ||
1445 | hash = xmalloc(len); | ||
1446 | if (ssh_digest_final(ctx, hash, len) != 0) | ||
1447 | fatal("%s: ssh_digest_final", __func__); | ||
1448 | options.timing_secret = PEEK_U64(hash); | ||
1449 | freezero(hash, len); | ||
1450 | ssh_digest_free(ctx); | ||
1451 | ctx = NULL; | ||
1452 | return; | ||
1453 | } | ||
1454 | if ((buf = sshbuf_new()) == NULL) | ||
1455 | fatal("%s could not allocate buffer", __func__); | ||
1456 | if ((r = sshkey_private_serialize(key, buf)) != 0) | ||
1457 | fatal("sshkey_private_serialize: %s", ssh_err(r)); | ||
1458 | if (ssh_digest_update(ctx, sshbuf_ptr(buf), sshbuf_len(buf)) != 0) | ||
1459 | fatal("%s: ssh_digest_update", __func__); | ||
1460 | sshbuf_reset(buf); | ||
1461 | sshbuf_free(buf); | ||
1462 | } | ||
1463 | |||
1416 | /* | 1464 | /* |
1417 | * Main program for the daemon. | 1465 | * Main program for the daemon. |
1418 | */ | 1466 | */ |
@@ -1620,14 +1668,15 @@ main(int ac, char **av) | |||
1620 | "test mode (-T)"); | 1668 | "test mode (-T)"); |
1621 | 1669 | ||
1622 | /* Fetch our configuration */ | 1670 | /* Fetch our configuration */ |
1623 | buffer_init(&cfg); | 1671 | if ((cfg = sshbuf_new()) == NULL) |
1672 | fatal("%s: sshbuf_new failed", __func__); | ||
1624 | if (rexeced_flag) | 1673 | if (rexeced_flag) |
1625 | recv_rexec_state(REEXEC_CONFIG_PASS_FD, &cfg); | 1674 | recv_rexec_state(REEXEC_CONFIG_PASS_FD, cfg); |
1626 | else if (strcasecmp(config_file_name, "none") != 0) | 1675 | else if (strcasecmp(config_file_name, "none") != 0) |
1627 | load_server_config(config_file_name, &cfg); | 1676 | load_server_config(config_file_name, cfg); |
1628 | 1677 | ||
1629 | parse_server_config(&options, rexeced_flag ? "rexec" : config_file_name, | 1678 | parse_server_config(&options, rexeced_flag ? "rexec" : config_file_name, |
1630 | &cfg, NULL); | 1679 | cfg, NULL); |
1631 | 1680 | ||
1632 | seed_rng(); | 1681 | seed_rng(); |
1633 | 1682 | ||
@@ -1714,11 +1763,18 @@ main(int ac, char **av) | |||
1714 | for (i = 0; i < options.num_host_key_files; i++) { | 1763 | for (i = 0; i < options.num_host_key_files; i++) { |
1715 | if (options.host_key_files[i] == NULL) | 1764 | if (options.host_key_files[i] == NULL) |
1716 | continue; | 1765 | continue; |
1717 | key = key_load_private(options.host_key_files[i], "", NULL); | 1766 | if ((r = sshkey_load_private(options.host_key_files[i], "", |
1718 | pubkey = key_load_public(options.host_key_files[i], NULL); | 1767 | &key, NULL)) != 0 && r != SSH_ERR_SYSTEM_ERROR) |
1719 | 1768 | error("Error loading host key \"%s\": %s", | |
1769 | options.host_key_files[i], ssh_err(r)); | ||
1770 | if ((r = sshkey_load_public(options.host_key_files[i], | ||
1771 | &pubkey, NULL)) != 0 && r != SSH_ERR_SYSTEM_ERROR) | ||
1772 | error("Error loading host key \"%s\": %s", | ||
1773 | options.host_key_files[i], ssh_err(r)); | ||
1720 | if (pubkey == NULL && key != NULL) | 1774 | if (pubkey == NULL && key != NULL) |
1721 | pubkey = key_demote(key); | 1775 | if ((r = sshkey_demote(key, &pubkey)) != 0) |
1776 | fatal("Could not demote key: \"%s\": %s", | ||
1777 | options.host_key_files[i], ssh_err(r)); | ||
1722 | sensitive_data.host_keys[i] = key; | 1778 | sensitive_data.host_keys[i] = key; |
1723 | sensitive_data.host_pubkeys[i] = pubkey; | 1779 | sensitive_data.host_pubkeys[i] = pubkey; |
1724 | 1780 | ||
@@ -1728,6 +1784,7 @@ main(int ac, char **av) | |||
1728 | keytype = pubkey->type; | 1784 | keytype = pubkey->type; |
1729 | } else if (key != NULL) { | 1785 | } else if (key != NULL) { |
1730 | keytype = key->type; | 1786 | keytype = key->type; |
1787 | accumulate_host_timing_secret(cfg, key); | ||
1731 | } else { | 1788 | } else { |
1732 | error("Could not load host key: %s", | 1789 | error("Could not load host key: %s", |
1733 | options.host_key_files[i]); | 1790 | options.host_key_files[i]); |
@@ -1753,6 +1810,7 @@ main(int ac, char **av) | |||
1753 | key ? "private" : "agent", i, sshkey_ssh_name(pubkey), fp); | 1810 | key ? "private" : "agent", i, sshkey_ssh_name(pubkey), fp); |
1754 | free(fp); | 1811 | free(fp); |
1755 | } | 1812 | } |
1813 | accumulate_host_timing_secret(cfg, NULL); | ||
1756 | if (!sensitive_data.have_ssh2_key) { | 1814 | if (!sensitive_data.have_ssh2_key) { |
1757 | logit("sshd: no hostkeys available -- exiting."); | 1815 | logit("sshd: no hostkeys available -- exiting."); |
1758 | exit(1); | 1816 | exit(1); |
@@ -1770,21 +1828,21 @@ main(int ac, char **av) | |||
1770 | for (i = 0; i < options.num_host_cert_files; i++) { | 1828 | for (i = 0; i < options.num_host_cert_files; i++) { |
1771 | if (options.host_cert_files[i] == NULL) | 1829 | if (options.host_cert_files[i] == NULL) |
1772 | continue; | 1830 | continue; |
1773 | key = key_load_public(options.host_cert_files[i], NULL); | 1831 | if ((r = sshkey_load_public(options.host_cert_files[i], |
1774 | if (key == NULL) { | 1832 | &key, NULL)) != 0) { |
1775 | error("Could not load host certificate: %s", | 1833 | error("Could not load host certificate \"%s\": %s", |
1776 | options.host_cert_files[i]); | 1834 | options.host_cert_files[i], ssh_err(r)); |
1777 | continue; | 1835 | continue; |
1778 | } | 1836 | } |
1779 | if (!key_is_cert(key)) { | 1837 | if (!sshkey_is_cert(key)) { |
1780 | error("Certificate file is not a certificate: %s", | 1838 | error("Certificate file is not a certificate: %s", |
1781 | options.host_cert_files[i]); | 1839 | options.host_cert_files[i]); |
1782 | key_free(key); | 1840 | sshkey_free(key); |
1783 | continue; | 1841 | continue; |
1784 | } | 1842 | } |
1785 | /* Find matching private key */ | 1843 | /* Find matching private key */ |
1786 | for (j = 0; j < options.num_host_key_files; j++) { | 1844 | for (j = 0; j < options.num_host_key_files; j++) { |
1787 | if (key_equal_public(key, | 1845 | if (sshkey_equal_public(key, |
1788 | sensitive_data.host_keys[j])) { | 1846 | sensitive_data.host_keys[j])) { |
1789 | sensitive_data.host_certificates[j] = key; | 1847 | sensitive_data.host_certificates[j] = key; |
1790 | break; | 1848 | break; |
@@ -1793,12 +1851,12 @@ main(int ac, char **av) | |||
1793 | if (j >= options.num_host_key_files) { | 1851 | if (j >= options.num_host_key_files) { |
1794 | error("No matching private key for certificate: %s", | 1852 | error("No matching private key for certificate: %s", |
1795 | options.host_cert_files[i]); | 1853 | options.host_cert_files[i]); |
1796 | key_free(key); | 1854 | sshkey_free(key); |
1797 | continue; | 1855 | continue; |
1798 | } | 1856 | } |
1799 | sensitive_data.host_certificates[j] = key; | 1857 | sensitive_data.host_certificates[j] = key; |
1800 | debug("host certificate: #%u type %d %s", j, key->type, | 1858 | debug("host certificate: #%u type %d %s", j, key->type, |
1801 | key_type(key)); | 1859 | sshkey_type(key)); |
1802 | } | 1860 | } |
1803 | 1861 | ||
1804 | if (privsep_chroot) { | 1862 | if (privsep_chroot) { |
@@ -2065,7 +2123,7 @@ main(int ac, char **av) | |||
2065 | /* allocate authentication context */ | 2123 | /* allocate authentication context */ |
2066 | authctxt = xcalloc(1, sizeof(*authctxt)); | 2124 | authctxt = xcalloc(1, sizeof(*authctxt)); |
2067 | 2125 | ||
2068 | authctxt->loginmsg = &loginmsg; | 2126 | authctxt->loginmsg = loginmsg; |
2069 | 2127 | ||
2070 | /* XXX global for cleanup, access from other modules */ | 2128 | /* XXX global for cleanup, access from other modules */ |
2071 | the_authctxt = authctxt; | 2129 | the_authctxt = authctxt; |
@@ -2075,7 +2133,8 @@ main(int ac, char **av) | |||
2075 | fatal("allocation failed"); | 2133 | fatal("allocation failed"); |
2076 | 2134 | ||
2077 | /* prepare buffer to collect messages to display to user after login */ | 2135 | /* prepare buffer to collect messages to display to user after login */ |
2078 | buffer_init(&loginmsg); | 2136 | if ((loginmsg = sshbuf_new()) == NULL) |
2137 | fatal("%s: sshbuf_new failed", __func__); | ||
2079 | auth_debug_reset(); | 2138 | auth_debug_reset(); |
2080 | 2139 | ||
2081 | if (use_privsep) { | 2140 | if (use_privsep) { |
@@ -2178,26 +2237,21 @@ main(int ac, char **av) | |||
2178 | 2237 | ||
2179 | int | 2238 | int |
2180 | sshd_hostkey_sign(struct sshkey *privkey, struct sshkey *pubkey, | 2239 | sshd_hostkey_sign(struct sshkey *privkey, struct sshkey *pubkey, |
2181 | u_char **signature, size_t *slen, const u_char *data, size_t dlen, | 2240 | u_char **signature, size_t *slenp, const u_char *data, size_t dlen, |
2182 | const char *alg, u_int flag) | 2241 | const char *alg, u_int flag) |
2183 | { | 2242 | { |
2184 | int r; | 2243 | int r; |
2185 | u_int xxx_slen, xxx_dlen = dlen; | ||
2186 | 2244 | ||
2187 | if (privkey) { | 2245 | if (privkey) { |
2188 | if (PRIVSEP(key_sign(privkey, signature, &xxx_slen, data, xxx_dlen, | 2246 | if (PRIVSEP(sshkey_sign(privkey, signature, slenp, data, dlen, |
2189 | alg) < 0)) | 2247 | alg, datafellows)) < 0) |
2190 | fatal("%s: key_sign failed", __func__); | 2248 | fatal("%s: key_sign failed", __func__); |
2191 | if (slen) | ||
2192 | *slen = xxx_slen; | ||
2193 | } else if (use_privsep) { | 2249 | } else if (use_privsep) { |
2194 | if (mm_key_sign(pubkey, signature, &xxx_slen, data, xxx_dlen, | 2250 | if (mm_sshkey_sign(pubkey, signature, slenp, data, dlen, |
2195 | alg) < 0) | 2251 | alg, datafellows) < 0) |
2196 | fatal("%s: pubkey_sign failed", __func__); | 2252 | fatal("%s: pubkey_sign failed", __func__); |
2197 | if (slen) | ||
2198 | *slen = xxx_slen; | ||
2199 | } else { | 2253 | } else { |
2200 | if ((r = ssh_agent_sign(auth_sock, pubkey, signature, slen, | 2254 | if ((r = ssh_agent_sign(auth_sock, pubkey, signature, slenp, |
2201 | data, dlen, alg, datafellows)) != 0) | 2255 | data, dlen, alg, datafellows)) != 0) |
2202 | fatal("%s: ssh_agent_sign failed: %s", | 2256 | fatal("%s: ssh_agent_sign failed: %s", |
2203 | __func__, ssh_err(r)); | 2257 | __func__, ssh_err(r)); |
diff --git a/sshd_config b/sshd_config index 3109d5d73..19b7c91a1 100644 --- a/sshd_config +++ b/sshd_config | |||
@@ -1,4 +1,4 @@ | |||
1 | # $OpenBSD: sshd_config,v 1.102 2018/02/16 02:32:40 djm Exp $ | 1 | # $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $ |
2 | 2 | ||
3 | # This is the sshd server system-wide configuration file. See | 3 | # This is the sshd server system-wide configuration file. See |
4 | # sshd_config(5) for more information. | 4 | # sshd_config(5) for more information. |
@@ -91,7 +91,6 @@ AuthorizedKeysFile .ssh/authorized_keys | |||
91 | #PrintMotd yes | 91 | #PrintMotd yes |
92 | #PrintLastLog yes | 92 | #PrintLastLog yes |
93 | #TCPKeepAlive yes | 93 | #TCPKeepAlive yes |
94 | #UseLogin no | ||
95 | #PermitUserEnvironment no | 94 | #PermitUserEnvironment no |
96 | #Compression delayed | 95 | #Compression delayed |
97 | #ClientAliveInterval 0 | 96 | #ClientAliveInterval 0 |
diff --git a/sshd_config.0 b/sshd_config.0 index 95c17fc8d..0498495fe 100644 --- a/sshd_config.0 +++ b/sshd_config.0 | |||
@@ -16,17 +16,17 @@ DESCRIPTION | |||
16 | 16 | ||
17 | AcceptEnv | 17 | AcceptEnv |
18 | Specifies what environment variables sent by the client will be | 18 | Specifies what environment variables sent by the client will be |
19 | copied into the session's environ(7). See SendEnv in | 19 | copied into the session's environ(7). See SendEnv and SetEnv in |
20 | ssh_config(5) for how to configure the client. The TERM | 20 | ssh_config(5) for how to configure the client. The TERM |
21 | environment variable is always sent whenever the client requests | 21 | environment variable is always accepted whenever the client |
22 | a pseudo-terminal as it is required by the protocol. Variables | 22 | requests a pseudo-terminal as it is required by the protocol. |
23 | are specified by name, which may contain the wildcard characters | 23 | Variables are specified by name, which may contain the wildcard |
24 | M-bM-^@M-^X*M-bM-^@M-^Y and M-bM-^@M-^X?M-bM-^@M-^Y. Multiple environment variables may be separated by | 24 | characters M-bM-^@M-^X*M-bM-^@M-^Y and M-bM-^@M-^X?M-bM-^@M-^Y. Multiple environment variables may be |
25 | whitespace or spread across multiple AcceptEnv directives. Be | 25 | separated by whitespace or spread across multiple AcceptEnv |
26 | warned that some environment variables could be used to bypass | 26 | directives. Be warned that some environment variables could be |
27 | restricted user environments. For this reason, care should be | 27 | used to bypass restricted user environments. For this reason, |
28 | taken in the use of this directive. The default is not to accept | 28 | care should be taken in the use of this directive. The default |
29 | any environment variables. | 29 | is not to accept any environment variables. |
30 | 30 | ||
31 | AddressFamily | 31 | AddressFamily |
32 | Specifies which address family should be used by sshd(8). Valid | 32 | Specifies which address family should be used by sshd(8). Valid |
@@ -88,7 +88,7 @@ DESCRIPTION | |||
88 | AuthenticationMethods | 88 | AuthenticationMethods |
89 | Specifies the authentication methods that must be successfully | 89 | Specifies the authentication methods that must be successfully |
90 | completed for a user to be granted access. This option must be | 90 | completed for a user to be granted access. This option must be |
91 | followed by one or more comma-separated lists of authentication | 91 | followed by one or more lists of comma-separated authentication |
92 | method names, or by the single string any to indicate the default | 92 | method names, or by the single string any to indicate the default |
93 | behaviour of accepting any single authentication method. If the | 93 | behaviour of accepting any single authentication method. If the |
94 | default is overridden, then successful authentication requires | 94 | default is overridden, then successful authentication requires |
@@ -104,8 +104,8 @@ DESCRIPTION | |||
104 | 104 | ||
105 | For keyboard interactive authentication it is also possible to | 105 | For keyboard interactive authentication it is also possible to |
106 | restrict authentication to a specific device by appending a colon | 106 | restrict authentication to a specific device by appending a colon |
107 | followed by the device identifier bsdauth, pam, or skey, | 107 | followed by the device identifier bsdauth or pam. depending on |
108 | depending on the server configuration. For example, | 108 | the server configuration. For example, |
109 | "keyboard-interactive:bsdauth" would restrict keyboard | 109 | "keyboard-interactive:bsdauth" would restrict keyboard |
110 | interactive authentication to the bsdauth device. | 110 | interactive authentication to the bsdauth device. |
111 | 111 | ||
@@ -120,7 +120,7 @@ DESCRIPTION | |||
120 | 120 | ||
121 | The available authentication methods are: "gssapi-with-mic", | 121 | The available authentication methods are: "gssapi-with-mic", |
122 | "hostbased", "keyboard-interactive", "none" (used for access to | 122 | "hostbased", "keyboard-interactive", "none" (used for access to |
123 | password-less accounts when PermitEmptyPassword is enabled), | 123 | password-less accounts when PermitEmptyPasswords is enabled), |
124 | "password" and "publickey". | 124 | "password" and "publickey". |
125 | 125 | ||
126 | AuthorizedKeysCommand | 126 | AuthorizedKeysCommand |
@@ -382,11 +382,11 @@ DESCRIPTION | |||
382 | 382 | ||
383 | HostbasedAcceptedKeyTypes | 383 | HostbasedAcceptedKeyTypes |
384 | Specifies the key types that will be accepted for hostbased | 384 | Specifies the key types that will be accepted for hostbased |
385 | authentication as a comma-separated pattern list. Alternately if | 385 | authentication as a list of comma-separated patterns. |
386 | the specified value begins with a M-bM-^@M-^X+M-bM-^@M-^Y character, then the | 386 | Alternately if the specified value begins with a M-bM-^@M-^X+M-bM-^@M-^Y character, |
387 | specified key types will be appended to the default set instead | 387 | then the specified key types will be appended to the default set |
388 | of replacing them. If the specified value begins with a M-bM-^@M-^X-M-bM-^@M-^Y | 388 | instead of replacing them. If the specified value begins with a |
389 | character, then the specified key types (including wildcards) | 389 | M-bM-^@M-^X-M-bM-^@M-^Y character, then the specified key types (including wildcards) |
390 | will be removed from the default set instead of replacing them. | 390 | will be removed from the default set instead of replacing them. |
391 | The default for this option is: | 391 | The default for this option is: |
392 | 392 | ||
@@ -394,9 +394,10 @@ DESCRIPTION | |||
394 | ecdsa-sha2-nistp384-cert-v01@openssh.com, | 394 | ecdsa-sha2-nistp384-cert-v01@openssh.com, |
395 | ecdsa-sha2-nistp521-cert-v01@openssh.com, | 395 | ecdsa-sha2-nistp521-cert-v01@openssh.com, |
396 | ssh-ed25519-cert-v01@openssh.com, | 396 | ssh-ed25519-cert-v01@openssh.com, |
397 | rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com, | ||
397 | ssh-rsa-cert-v01@openssh.com, | 398 | ssh-rsa-cert-v01@openssh.com, |
398 | ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521, | 399 | ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521, |
399 | ssh-ed25519,ssh-rsa | 400 | ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa |
400 | 401 | ||
401 | The list of available key types may also be obtained using "ssh | 402 | The list of available key types may also be obtained using "ssh |
402 | -Q key". | 403 | -Q key". |
@@ -449,9 +450,10 @@ DESCRIPTION | |||
449 | ecdsa-sha2-nistp384-cert-v01@openssh.com, | 450 | ecdsa-sha2-nistp384-cert-v01@openssh.com, |
450 | ecdsa-sha2-nistp521-cert-v01@openssh.com, | 451 | ecdsa-sha2-nistp521-cert-v01@openssh.com, |
451 | ssh-ed25519-cert-v01@openssh.com, | 452 | ssh-ed25519-cert-v01@openssh.com, |
453 | rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com, | ||
452 | ssh-rsa-cert-v01@openssh.com, | 454 | ssh-rsa-cert-v01@openssh.com, |
453 | ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521, | 455 | ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521, |
454 | ssh-ed25519,ssh-rsa | 456 | ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa |
455 | 457 | ||
456 | The list of available key types may also be obtained using "ssh | 458 | The list of available key types may also be obtained using "ssh |
457 | -Q key". | 459 | -Q key". |
@@ -478,8 +480,9 @@ DESCRIPTION | |||
478 | If one argument is specified, it is used as the packet class | 480 | If one argument is specified, it is used as the packet class |
479 | unconditionally. If two values are specified, the first is | 481 | unconditionally. If two values are specified, the first is |
480 | automatically selected for interactive sessions and the second | 482 | automatically selected for interactive sessions and the second |
481 | for non-interactive sessions. The default is lowdelay for | 483 | for non-interactive sessions. The default is af21 (Low-Latency |
482 | interactive sessions and throughput for non-interactive sessions. | 484 | Data) for interactive sessions and cs1 (Lower Effort) for non- |
485 | interactive sessions. | ||
483 | 486 | ||
484 | KbdInteractiveAuthentication | 487 | KbdInteractiveAuthentication |
485 | Specifies whether to allow keyboard-interactive authentication. | 488 | Specifies whether to allow keyboard-interactive authentication. |
@@ -651,9 +654,9 @@ DESCRIPTION | |||
651 | HostbasedAuthentication, HostbasedUsesNameFromPacketOnly, IPQoS, | 654 | HostbasedAuthentication, HostbasedUsesNameFromPacketOnly, IPQoS, |
652 | KbdInteractiveAuthentication, KerberosAuthentication, LogLevel, | 655 | KbdInteractiveAuthentication, KerberosAuthentication, LogLevel, |
653 | MaxAuthTries, MaxSessions, PasswordAuthentication, | 656 | MaxAuthTries, MaxSessions, PasswordAuthentication, |
654 | PermitEmptyPasswords, PermitOpen, PermitRootLogin, PermitTTY, | 657 | PermitEmptyPasswords, PermitListen, PermitOpen, PermitRootLogin, |
655 | PermitTunnel, PermitUserRC, PubkeyAcceptedKeyTypes, | 658 | PermitTTY, PermitTunnel, PermitUserRC, PubkeyAcceptedKeyTypes, |
656 | PubkeyAuthentication, RekeyLimit, RevokedKeys, RDomain, | 659 | PubkeyAuthentication, RekeyLimit, RevokedKeys, RDomain, SetEnv, |
657 | StreamLocalBindMask, StreamLocalBindUnlink, TrustedUserCAKeys, | 660 | StreamLocalBindMask, StreamLocalBindUnlink, TrustedUserCAKeys, |
658 | X11DisplayOffset, X11Forwarding and X11UseLocalHost. | 661 | X11DisplayOffset, X11Forwarding and X11UseLocalHost. |
659 | 662 | ||
@@ -694,6 +697,28 @@ DESCRIPTION | |||
694 | server allows login to accounts with empty password strings. The | 697 | server allows login to accounts with empty password strings. The |
695 | default is no. | 698 | default is no. |
696 | 699 | ||
700 | PermitListen | ||
701 | Specifies the addresses/ports on which a remote TCP port | ||
702 | forwarding may listen. The listen specification must be one of | ||
703 | the following forms: | ||
704 | |||
705 | PermitListen port | ||
706 | PermitListen host:port | ||
707 | |||
708 | Multiple permissions may be specified by separating them with | ||
709 | whitespace. An argument of any can be used to remove all | ||
710 | restrictions and permit any listen requests. An argument of none | ||
711 | can be used to prohibit all listen requests. The host name may | ||
712 | contain wildcards as described in the PATTERNS section in | ||
713 | ssh_config(5). The wildcard M-bM-^@M-^X*M-bM-^@M-^Y can also be used in place of a | ||
714 | port number to allow all ports. By default all port forwarding | ||
715 | listen requests are permitted. Note that the GatewayPorts option | ||
716 | may further restrict which addresses may be listened on. Note | ||
717 | also that ssh(1) will request a listen host of M-bM-^@M-^\localhostM-bM-^@M-^] if no | ||
718 | listen host was specifically requested, and this this name is | ||
719 | treated differently to explicit localhost addresses of | ||
720 | M-bM-^@M-^\127.0.0.1M-bM-^@M-^] and M-bM-^@M-^\::1M-bM-^@M-^]. | ||
721 | |||
697 | PermitOpen | 722 | PermitOpen |
698 | Specifies the destinations to which TCP port forwarding is | 723 | Specifies the destinations to which TCP port forwarding is |
699 | permitted. The forwarding specification must be one of the | 724 | permitted. The forwarding specification must be one of the |
@@ -743,10 +768,12 @@ DESCRIPTION | |||
743 | 768 | ||
744 | PermitUserEnvironment | 769 | PermitUserEnvironment |
745 | Specifies whether ~/.ssh/environment and environment= options in | 770 | Specifies whether ~/.ssh/environment and environment= options in |
746 | ~/.ssh/authorized_keys are processed by sshd(8). The default is | 771 | ~/.ssh/authorized_keys are processed by sshd(8). Valid options |
747 | no. Enabling environment processing may enable users to bypass | 772 | are yes, no or a pattern-list specifying which environment |
748 | access restrictions in some configurations using mechanisms such | 773 | variable names to accept (for example "LANG,LC_*"). The default |
749 | as LD_PRELOAD. | 774 | is no. Enabling environment processing may enable users to |
775 | bypass access restrictions in some configurations using | ||
776 | mechanisms such as LD_PRELOAD. | ||
750 | 777 | ||
751 | PermitUserRC | 778 | PermitUserRC |
752 | Specifies whether any ~/.ssh/rc file is executed. The default is | 779 | Specifies whether any ~/.ssh/rc file is executed. The default is |
@@ -773,11 +800,11 @@ DESCRIPTION | |||
773 | 800 | ||
774 | PubkeyAcceptedKeyTypes | 801 | PubkeyAcceptedKeyTypes |
775 | Specifies the key types that will be accepted for public key | 802 | Specifies the key types that will be accepted for public key |
776 | authentication as a comma-separated pattern list. Alternately if | 803 | authentication as a list of comma-separated patterns. |
777 | the specified value begins with a M-bM-^@M-^X+M-bM-^@M-^Y character, then the | 804 | Alternately if the specified value begins with a M-bM-^@M-^X+M-bM-^@M-^Y character, |
778 | specified key types will be appended to the default set instead | 805 | then the specified key types will be appended to the default set |
779 | of replacing them. If the specified value begins with a M-bM-^@M-^X-M-bM-^@M-^Y | 806 | instead of replacing them. If the specified value begins with a |
780 | character, then the specified key types (including wildcards) | 807 | M-bM-^@M-^X-M-bM-^@M-^Y character, then the specified key types (including wildcards) |
781 | will be removed from the default set instead of replacing them. | 808 | will be removed from the default set instead of replacing them. |
782 | The default for this option is: | 809 | The default for this option is: |
783 | 810 | ||
@@ -785,9 +812,10 @@ DESCRIPTION | |||
785 | ecdsa-sha2-nistp384-cert-v01@openssh.com, | 812 | ecdsa-sha2-nistp384-cert-v01@openssh.com, |
786 | ecdsa-sha2-nistp521-cert-v01@openssh.com, | 813 | ecdsa-sha2-nistp521-cert-v01@openssh.com, |
787 | ssh-ed25519-cert-v01@openssh.com, | 814 | ssh-ed25519-cert-v01@openssh.com, |
815 | rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com, | ||
788 | ssh-rsa-cert-v01@openssh.com, | 816 | ssh-rsa-cert-v01@openssh.com, |
789 | ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521, | 817 | ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521, |
790 | ssh-ed25519,ssh-rsa | 818 | ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa |
791 | 819 | ||
792 | The list of available key types may also be obtained using "ssh | 820 | The list of available key types may also be obtained using "ssh |
793 | -Q key". | 821 | -Q key". |
@@ -827,6 +855,13 @@ DESCRIPTION | |||
827 | rdomain(4). If the routing domain is set to %D, then the domain | 855 | rdomain(4). If the routing domain is set to %D, then the domain |
828 | in which the incoming connection was received will be applied. | 856 | in which the incoming connection was received will be applied. |
829 | 857 | ||
858 | SetEnv Specifies one or more environment variables to set in child | ||
859 | sessions started by sshd(8) as M-bM-^@M-^\NAME=VALUEM-bM-^@M-^]. The environment | ||
860 | value may be quoted (e.g. if it contains whitespace characters). | ||
861 | Environment variables set by SetEnv override the default | ||
862 | environment and any variables specified by the user via AcceptEnv | ||
863 | or PermitUserEnvironment. | ||
864 | |||
830 | StreamLocalBindMask | 865 | StreamLocalBindMask |
831 | Sets the octal file creation mode mask (umask) used when creating | 866 | Sets the octal file creation mode mask (umask) used when creating |
832 | a Unix-domain socket file for local or remote port forwarding. | 867 | a Unix-domain socket file for local or remote port forwarding. |
@@ -1011,18 +1046,19 @@ TOKENS | |||
1011 | %s The serial number of the certificate. | 1046 | %s The serial number of the certificate. |
1012 | %T The type of the CA key. | 1047 | %T The type of the CA key. |
1013 | %t The key or certificate type. | 1048 | %t The key or certificate type. |
1049 | %U The numeric user ID of the target user. | ||
1014 | %u The username. | 1050 | %u The username. |
1015 | 1051 | ||
1016 | AuthorizedKeysCommand accepts the tokens %%, %f, %h, %k, %t, and %u. | 1052 | AuthorizedKeysCommand accepts the tokens %%, %f, %h, %k, %t, %U, and %u. |
1017 | 1053 | ||
1018 | AuthorizedKeysFile accepts the tokens %%, %h, and %u. | 1054 | AuthorizedKeysFile accepts the tokens %%, %h, %U, and %u. |
1019 | 1055 | ||
1020 | AuthorizedPrincipalsCommand accepts the tokens %%, %F, %f, %h, %i, %K, | 1056 | AuthorizedPrincipalsCommand accepts the tokens %%, %F, %f, %h, %i, %K, |
1021 | %k, %s, %T, %t, and %u. | 1057 | %k, %s, %T, %t, %U, and %u. |
1022 | 1058 | ||
1023 | AuthorizedPrincipalsFile accepts the tokens %%, %h, and %u. | 1059 | AuthorizedPrincipalsFile accepts the tokens %%, %h, %U, and %u. |
1024 | 1060 | ||
1025 | ChrootDirectory accepts the tokens %%, %h, and %u. | 1061 | ChrootDirectory accepts the tokens %%, %h, %U, and %u. |
1026 | 1062 | ||
1027 | RoutingDomain accepts the token %D. | 1063 | RoutingDomain accepts the token %D. |
1028 | 1064 | ||
@@ -1043,4 +1079,4 @@ AUTHORS | |||
1043 | versions 1.5 and 2.0. Niels Provos and Markus Friedl contributed support | 1079 | versions 1.5 and 2.0. Niels Provos and Markus Friedl contributed support |
1044 | for privilege separation. | 1080 | for privilege separation. |
1045 | 1081 | ||
1046 | OpenBSD 6.2 February 16, 2018 OpenBSD 6.2 | 1082 | OpenBSD 6.4 July 20, 2018 OpenBSD 6.4 |
diff --git a/sshd_config.5 b/sshd_config.5 index e3c7c3936..e1b54ba20 100644 --- a/sshd_config.5 +++ b/sshd_config.5 | |||
@@ -33,8 +33,8 @@ | |||
33 | .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | 33 | .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
34 | .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 34 | .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
35 | .\" | 35 | .\" |
36 | .\" $OpenBSD: sshd_config.5,v 1.263 2018/02/16 02:40:45 djm Exp $ | 36 | .\" $OpenBSD: sshd_config.5,v 1.281 2018/07/20 05:01:10 djm Exp $ |
37 | .Dd $Mdocdate: February 16 2018 $ | 37 | .Dd $Mdocdate: July 20 2018 $ |
38 | .Dt SSHD_CONFIG 5 | 38 | .Dt SSHD_CONFIG 5 |
39 | .Os | 39 | .Os |
40 | .Sh NAME | 40 | .Sh NAME |
@@ -66,12 +66,14 @@ the session's | |||
66 | .Xr environ 7 . | 66 | .Xr environ 7 . |
67 | See | 67 | See |
68 | .Cm SendEnv | 68 | .Cm SendEnv |
69 | and | ||
70 | .Cm SetEnv | ||
69 | in | 71 | in |
70 | .Xr ssh_config 5 | 72 | .Xr ssh_config 5 |
71 | for how to configure the client. | 73 | for how to configure the client. |
72 | The | 74 | The |
73 | .Ev TERM | 75 | .Ev TERM |
74 | environment variable is always sent whenever the client | 76 | environment variable is always accepted whenever the client |
75 | requests a pseudo-terminal as it is required by the protocol. | 77 | requests a pseudo-terminal as it is required by the protocol. |
76 | Variables are specified by name, which may contain the wildcard characters | 78 | Variables are specified by name, which may contain the wildcard characters |
77 | .Ql * | 79 | .Ql * |
@@ -184,7 +186,7 @@ for more information on patterns. | |||
184 | .It Cm AuthenticationMethods | 186 | .It Cm AuthenticationMethods |
185 | Specifies the authentication methods that must be successfully completed | 187 | Specifies the authentication methods that must be successfully completed |
186 | for a user to be granted access. | 188 | for a user to be granted access. |
187 | This option must be followed by one or more comma-separated lists of | 189 | This option must be followed by one or more lists of comma-separated |
188 | authentication method names, or by the single string | 190 | authentication method names, or by the single string |
189 | .Cm any | 191 | .Cm any |
190 | to indicate the default behaviour of accepting any single authentication | 192 | to indicate the default behaviour of accepting any single authentication |
@@ -203,10 +205,9 @@ keyboard-interactive authentication before public key. | |||
203 | For keyboard interactive authentication it is also possible to | 205 | For keyboard interactive authentication it is also possible to |
204 | restrict authentication to a specific device by appending a | 206 | restrict authentication to a specific device by appending a |
205 | colon followed by the device identifier | 207 | colon followed by the device identifier |
206 | .Cm bsdauth , | 208 | .Cm bsdauth |
207 | .Cm pam , | ||
208 | or | 209 | or |
209 | .Cm skey , | 210 | .Cm pam . |
210 | depending on the server configuration. | 211 | depending on the server configuration. |
211 | For example, | 212 | For example, |
212 | .Qq keyboard-interactive:bsdauth | 213 | .Qq keyboard-interactive:bsdauth |
@@ -231,7 +232,7 @@ The available authentication methods are: | |||
231 | .Qq keyboard-interactive , | 232 | .Qq keyboard-interactive , |
232 | .Qq none | 233 | .Qq none |
233 | (used for access to password-less accounts when | 234 | (used for access to password-less accounts when |
234 | .Cm PermitEmptyPassword | 235 | .Cm PermitEmptyPasswords |
235 | is enabled), | 236 | is enabled), |
236 | .Qq password | 237 | .Qq password |
237 | and | 238 | and |
@@ -657,7 +658,7 @@ The default is | |||
657 | .Cm yes . | 658 | .Cm yes . |
658 | .It Cm HostbasedAcceptedKeyTypes | 659 | .It Cm HostbasedAcceptedKeyTypes |
659 | Specifies the key types that will be accepted for hostbased authentication | 660 | Specifies the key types that will be accepted for hostbased authentication |
660 | as a comma-separated pattern list. | 661 | as a list of comma-separated patterns. |
661 | Alternately if the specified value begins with a | 662 | Alternately if the specified value begins with a |
662 | .Sq + | 663 | .Sq + |
663 | character, then the specified key types will be appended to the default set | 664 | character, then the specified key types will be appended to the default set |
@@ -672,9 +673,10 @@ ecdsa-sha2-nistp256-cert-v01@openssh.com, | |||
672 | ecdsa-sha2-nistp384-cert-v01@openssh.com, | 673 | ecdsa-sha2-nistp384-cert-v01@openssh.com, |
673 | ecdsa-sha2-nistp521-cert-v01@openssh.com, | 674 | ecdsa-sha2-nistp521-cert-v01@openssh.com, |
674 | ssh-ed25519-cert-v01@openssh.com, | 675 | ssh-ed25519-cert-v01@openssh.com, |
676 | rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com, | ||
675 | ssh-rsa-cert-v01@openssh.com, | 677 | ssh-rsa-cert-v01@openssh.com, |
676 | ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521, | 678 | ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521, |
677 | ssh-ed25519,ssh-rsa | 679 | ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa |
678 | .Ed | 680 | .Ed |
679 | .Pp | 681 | .Pp |
680 | The list of available key types may also be obtained using | 682 | The list of available key types may also be obtained using |
@@ -749,9 +751,10 @@ ecdsa-sha2-nistp256-cert-v01@openssh.com, | |||
749 | ecdsa-sha2-nistp384-cert-v01@openssh.com, | 751 | ecdsa-sha2-nistp384-cert-v01@openssh.com, |
750 | ecdsa-sha2-nistp521-cert-v01@openssh.com, | 752 | ecdsa-sha2-nistp521-cert-v01@openssh.com, |
751 | ssh-ed25519-cert-v01@openssh.com, | 753 | ssh-ed25519-cert-v01@openssh.com, |
754 | rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com, | ||
752 | ssh-rsa-cert-v01@openssh.com, | 755 | ssh-rsa-cert-v01@openssh.com, |
753 | ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521, | 756 | ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521, |
754 | ssh-ed25519,ssh-rsa | 757 | ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa |
755 | .Ed | 758 | .Ed |
756 | .Pp | 759 | .Pp |
757 | The list of available key types may also be obtained using | 760 | The list of available key types may also be obtained using |
@@ -816,9 +819,11 @@ If one argument is specified, it is used as the packet class unconditionally. | |||
816 | If two values are specified, the first is automatically selected for | 819 | If two values are specified, the first is automatically selected for |
817 | interactive sessions and the second for non-interactive sessions. | 820 | interactive sessions and the second for non-interactive sessions. |
818 | The default is | 821 | The default is |
819 | .Cm lowdelay | 822 | .Cm af21 |
823 | (Low-Latency Data) | ||
820 | for interactive sessions and | 824 | for interactive sessions and |
821 | .Cm throughput | 825 | .Cm cs1 |
826 | (Lower Effort) | ||
822 | for non-interactive sessions. | 827 | for non-interactive sessions. |
823 | .It Cm KbdInteractiveAuthentication | 828 | .It Cm KbdInteractiveAuthentication |
824 | Specifies whether to allow keyboard-interactive authentication. | 829 | Specifies whether to allow keyboard-interactive authentication. |
@@ -1123,6 +1128,7 @@ Available keywords are | |||
1123 | .Cm MaxSessions , | 1128 | .Cm MaxSessions , |
1124 | .Cm PasswordAuthentication , | 1129 | .Cm PasswordAuthentication , |
1125 | .Cm PermitEmptyPasswords , | 1130 | .Cm PermitEmptyPasswords , |
1131 | .Cm PermitListen , | ||
1126 | .Cm PermitOpen , | 1132 | .Cm PermitOpen , |
1127 | .Cm PermitRootLogin , | 1133 | .Cm PermitRootLogin , |
1128 | .Cm PermitTTY , | 1134 | .Cm PermitTTY , |
@@ -1133,6 +1139,7 @@ Available keywords are | |||
1133 | .Cm RekeyLimit , | 1139 | .Cm RekeyLimit , |
1134 | .Cm RevokedKeys , | 1140 | .Cm RevokedKeys , |
1135 | .Cm RDomain , | 1141 | .Cm RDomain , |
1142 | .Cm SetEnv , | ||
1136 | .Cm StreamLocalBindMask , | 1143 | .Cm StreamLocalBindMask , |
1137 | .Cm StreamLocalBindUnlink , | 1144 | .Cm StreamLocalBindUnlink , |
1138 | .Cm TrustedUserCAKeys , | 1145 | .Cm TrustedUserCAKeys , |
@@ -1182,6 +1189,48 @@ When password authentication is allowed, it specifies whether the | |||
1182 | server allows login to accounts with empty password strings. | 1189 | server allows login to accounts with empty password strings. |
1183 | The default is | 1190 | The default is |
1184 | .Cm no . | 1191 | .Cm no . |
1192 | .It Cm PermitListen | ||
1193 | Specifies the addresses/ports on which a remote TCP port forwarding may listen. | ||
1194 | The listen specification must be one of the following forms: | ||
1195 | .Pp | ||
1196 | .Bl -item -offset indent -compact | ||
1197 | .It | ||
1198 | .Cm PermitListen | ||
1199 | .Sm off | ||
1200 | .Ar port | ||
1201 | .Sm on | ||
1202 | .It | ||
1203 | .Cm PermitListen | ||
1204 | .Sm off | ||
1205 | .Ar host : port | ||
1206 | .Sm on | ||
1207 | .El | ||
1208 | .Pp | ||
1209 | Multiple permissions may be specified by separating them with whitespace. | ||
1210 | An argument of | ||
1211 | .Cm any | ||
1212 | can be used to remove all restrictions and permit any listen requests. | ||
1213 | An argument of | ||
1214 | .Cm none | ||
1215 | can be used to prohibit all listen requests. | ||
1216 | The host name may contain wildcards as described in the PATTERNS section in | ||
1217 | .Xr ssh_config 5 . | ||
1218 | The wildcard | ||
1219 | .Sq * | ||
1220 | can also be used in place of a port number to allow all ports. | ||
1221 | By default all port forwarding listen requests are permitted. | ||
1222 | Note that the | ||
1223 | .Cm GatewayPorts | ||
1224 | option may further restrict which addresses may be listened on. | ||
1225 | Note also that | ||
1226 | .Xr ssh 1 | ||
1227 | will request a listen host of | ||
1228 | .Dq localhost | ||
1229 | if no listen host was specifically requested, and this this name is | ||
1230 | treated differently to explicit localhost addresses of | ||
1231 | .Dq 127.0.0.1 | ||
1232 | and | ||
1233 | .Dq ::1 . | ||
1185 | .It Cm PermitOpen | 1234 | .It Cm PermitOpen |
1186 | Specifies the destinations to which TCP port forwarding is permitted. | 1235 | Specifies the destinations to which TCP port forwarding is permitted. |
1187 | The forwarding specification must be one of the following forms: | 1236 | The forwarding specification must be one of the following forms: |
@@ -1284,6 +1333,12 @@ options in | |||
1284 | .Pa ~/.ssh/authorized_keys | 1333 | .Pa ~/.ssh/authorized_keys |
1285 | are processed by | 1334 | are processed by |
1286 | .Xr sshd 8 . | 1335 | .Xr sshd 8 . |
1336 | Valid options are | ||
1337 | .Cm yes , | ||
1338 | .Cm no | ||
1339 | or a pattern-list specifying which environment variable names to accept | ||
1340 | (for example | ||
1341 | .Qq LANG,LC_* ) . | ||
1287 | The default is | 1342 | The default is |
1288 | .Cm no . | 1343 | .Cm no . |
1289 | Enabling environment processing may enable users to bypass access | 1344 | Enabling environment processing may enable users to bypass access |
@@ -1330,7 +1385,7 @@ The default is | |||
1330 | .Cm yes . | 1385 | .Cm yes . |
1331 | .It Cm PubkeyAcceptedKeyTypes | 1386 | .It Cm PubkeyAcceptedKeyTypes |
1332 | Specifies the key types that will be accepted for public key authentication | 1387 | Specifies the key types that will be accepted for public key authentication |
1333 | as a comma-separated pattern list. | 1388 | as a list of comma-separated patterns. |
1334 | Alternately if the specified value begins with a | 1389 | Alternately if the specified value begins with a |
1335 | .Sq + | 1390 | .Sq + |
1336 | character, then the specified key types will be appended to the default set | 1391 | character, then the specified key types will be appended to the default set |
@@ -1345,9 +1400,10 @@ ecdsa-sha2-nistp256-cert-v01@openssh.com, | |||
1345 | ecdsa-sha2-nistp384-cert-v01@openssh.com, | 1400 | ecdsa-sha2-nistp384-cert-v01@openssh.com, |
1346 | ecdsa-sha2-nistp521-cert-v01@openssh.com, | 1401 | ecdsa-sha2-nistp521-cert-v01@openssh.com, |
1347 | ssh-ed25519-cert-v01@openssh.com, | 1402 | ssh-ed25519-cert-v01@openssh.com, |
1403 | rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com, | ||
1348 | ssh-rsa-cert-v01@openssh.com, | 1404 | ssh-rsa-cert-v01@openssh.com, |
1349 | ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521, | 1405 | ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521, |
1350 | ssh-ed25519,ssh-rsa | 1406 | ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa |
1351 | .Ed | 1407 | .Ed |
1352 | .Pp | 1408 | .Pp |
1353 | The list of available key types may also be obtained using | 1409 | The list of available key types may also be obtained using |
@@ -1402,6 +1458,21 @@ will be bound to this | |||
1402 | If the routing domain is set to | 1458 | If the routing domain is set to |
1403 | .Cm \&%D , | 1459 | .Cm \&%D , |
1404 | then the domain in which the incoming connection was received will be applied. | 1460 | then the domain in which the incoming connection was received will be applied. |
1461 | .It Cm SetEnv | ||
1462 | Specifies one or more environment variables to set in child sessions started | ||
1463 | by | ||
1464 | .Xr sshd 8 | ||
1465 | as | ||
1466 | .Dq NAME=VALUE . | ||
1467 | The environment value may be quoted (e.g. if it contains whitespace | ||
1468 | characters). | ||
1469 | Environment variables set by | ||
1470 | .Cm SetEnv | ||
1471 | override the default environment and any variables specified by the user | ||
1472 | via | ||
1473 | .Cm AcceptEnv | ||
1474 | or | ||
1475 | .Cm PermitUserEnvironment . | ||
1405 | .It Cm StreamLocalBindMask | 1476 | .It Cm StreamLocalBindMask |
1406 | Sets the octal file creation mode mask | 1477 | Sets the octal file creation mode mask |
1407 | .Pq umask | 1478 | .Pq umask |
@@ -1687,24 +1758,26 @@ The serial number of the certificate. | |||
1687 | The type of the CA key. | 1758 | The type of the CA key. |
1688 | .It %t | 1759 | .It %t |
1689 | The key or certificate type. | 1760 | The key or certificate type. |
1761 | .It \&%U | ||
1762 | The numeric user ID of the target user. | ||
1690 | .It %u | 1763 | .It %u |
1691 | The username. | 1764 | The username. |
1692 | .El | 1765 | .El |
1693 | .Pp | 1766 | .Pp |
1694 | .Cm AuthorizedKeysCommand | 1767 | .Cm AuthorizedKeysCommand |
1695 | accepts the tokens %%, %f, %h, %k, %t, and %u. | 1768 | accepts the tokens %%, %f, %h, %k, %t, %U, and %u. |
1696 | .Pp | 1769 | .Pp |
1697 | .Cm AuthorizedKeysFile | 1770 | .Cm AuthorizedKeysFile |
1698 | accepts the tokens %%, %h, and %u. | 1771 | accepts the tokens %%, %h, %U, and %u. |
1699 | .Pp | 1772 | .Pp |
1700 | .Cm AuthorizedPrincipalsCommand | 1773 | .Cm AuthorizedPrincipalsCommand |
1701 | accepts the tokens %%, %F, %f, %h, %i, %K, %k, %s, %T, %t, and %u. | 1774 | accepts the tokens %%, %F, %f, %h, %i, %K, %k, %s, %T, %t, %U, and %u. |
1702 | .Pp | 1775 | .Pp |
1703 | .Cm AuthorizedPrincipalsFile | 1776 | .Cm AuthorizedPrincipalsFile |
1704 | accepts the tokens %%, %h, and %u. | 1777 | accepts the tokens %%, %h, %U, and %u. |
1705 | .Pp | 1778 | .Pp |
1706 | .Cm ChrootDirectory | 1779 | .Cm ChrootDirectory |
1707 | accepts the tokens %%, %h, and %u. | 1780 | accepts the tokens %%, %h, %U, and %u. |
1708 | .Pp | 1781 | .Pp |
1709 | .Cm RoutingDomain | 1782 | .Cm RoutingDomain |
1710 | accepts the token %D. | 1783 | accepts the token %D. |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssherr.c,v 1.7 2017/09/12 06:32:08 djm Exp $ */ | 1 | /* $OpenBSD: ssherr.c,v 1.8 2018/07/03 11:39:54 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2011 Damien Miller | 3 | * Copyright (c) 2011 Damien Miller |
4 | * | 4 | * |
@@ -139,6 +139,8 @@ ssh_err(int n) | |||
139 | return "Invalid key length"; | 139 | return "Invalid key length"; |
140 | case SSH_ERR_NUMBER_TOO_LARGE: | 140 | case SSH_ERR_NUMBER_TOO_LARGE: |
141 | return "number is too large"; | 141 | return "number is too large"; |
142 | case SSH_ERR_SIGN_ALG_UNSUPPORTED: | ||
143 | return "signature algorithm not supported"; | ||
142 | default: | 144 | default: |
143 | return "unknown error"; | 145 | return "unknown error"; |
144 | } | 146 | } |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssherr.h,v 1.5 2017/09/12 06:32:08 djm Exp $ */ | 1 | /* $OpenBSD: ssherr.h,v 1.6 2018/07/03 11:39:54 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2011 Damien Miller | 3 | * Copyright (c) 2011 Damien Miller |
4 | * | 4 | * |
@@ -79,6 +79,7 @@ | |||
79 | #define SSH_ERR_PROTOCOL_ERROR -55 | 79 | #define SSH_ERR_PROTOCOL_ERROR -55 |
80 | #define SSH_ERR_KEY_LENGTH -56 | 80 | #define SSH_ERR_KEY_LENGTH -56 |
81 | #define SSH_ERR_NUMBER_TOO_LARGE -57 | 81 | #define SSH_ERR_NUMBER_TOO_LARGE -57 |
82 | #define SSH_ERR_SIGN_ALG_UNSUPPORTED -58 | ||
82 | 83 | ||
83 | /* Translate a numeric error code to a human-readable error string */ | 84 | /* Translate a numeric error code to a human-readable error string */ |
84 | const char *ssh_err(int n); | 85 | const char *ssh_err(int n); |
diff --git a/sshkey-xmss.c b/sshkey-xmss.c index 5d66ee790..aaae70289 100644 --- a/sshkey-xmss.c +++ b/sshkey-xmss.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: sshkey-xmss.c,v 1.1 2018/02/23 15:58:38 markus Exp $ */ | 1 | /* $OpenBSD: sshkey-xmss.c,v 1.3 2018/07/09 21:59:10 markus Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2017 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2017 Markus Friedl. All rights reserved. |
4 | * | 4 | * |
@@ -66,7 +66,7 @@ struct ssh_xmss_state { | |||
66 | treehash_inst *treehash; | 66 | treehash_inst *treehash; |
67 | 67 | ||
68 | u_int32_t idx; /* state read from file */ | 68 | u_int32_t idx; /* state read from file */ |
69 | u_int32_t maxidx; /* resticted # of signatures */ | 69 | u_int32_t maxidx; /* restricted # of signatures */ |
70 | int have_state; /* .state file exists */ | 70 | int have_state; /* .state file exists */ |
71 | int lockfd; /* locked in sshkey_xmss_get_state() */ | 71 | int lockfd; /* locked in sshkey_xmss_get_state() */ |
72 | int allow_update; /* allow sshkey_xmss_update_state() */ | 72 | int allow_update; /* allow sshkey_xmss_update_state() */ |
@@ -583,7 +583,7 @@ sshkey_xmss_update_state(const struct sshkey *k, sshkey_printfn *pr) | |||
583 | } | 583 | } |
584 | idx = PEEK_U32(k->xmss_sk); | 584 | idx = PEEK_U32(k->xmss_sk); |
585 | if (idx == state->idx) { | 585 | if (idx == state->idx) { |
586 | /* no signature happend, no need to update */ | 586 | /* no signature happened, no need to update */ |
587 | ret = 0; | 587 | ret = 0; |
588 | goto done; | 588 | goto done; |
589 | } else if (idx != state->idx + 1) { | 589 | } else if (idx != state->idx + 1) { |
@@ -625,7 +625,7 @@ sshkey_xmss_update_state(const struct sshkey *k, sshkey_printfn *pr) | |||
625 | close(fd); | 625 | close(fd); |
626 | goto done; | 626 | goto done; |
627 | } | 627 | } |
628 | if (atomicio(vwrite, fd, (void *)sshbuf_ptr(enc), sshbuf_len(enc)) != | 628 | if (atomicio(vwrite, fd, sshbuf_mutable_ptr(enc), sshbuf_len(enc)) != |
629 | sshbuf_len(enc)) { | 629 | sshbuf_len(enc)) { |
630 | ret = SSH_ERR_SYSTEM_ERROR; | 630 | ret = SSH_ERR_SYSTEM_ERROR; |
631 | PRINT("%s: write new state file data: %s", __func__, nstatefile); | 631 | PRINT("%s: write new state file data: %s", __func__, nstatefile); |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: sshkey.c,v 1.64 2018/03/22 07:05:48 markus Exp $ */ | 1 | /* $OpenBSD: sshkey.c,v 1.66 2018/07/03 13:20:25 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. |
4 | * Copyright (c) 2008 Alexander von Gernler. All rights reserved. | 4 | * Copyright (c) 2008 Alexander von Gernler. All rights reserved. |
@@ -83,46 +83,64 @@ static int sshkey_from_blob_internal(struct sshbuf *buf, | |||
83 | struct keytype { | 83 | struct keytype { |
84 | const char *name; | 84 | const char *name; |
85 | const char *shortname; | 85 | const char *shortname; |
86 | const char *sigalg; | ||
86 | int type; | 87 | int type; |
87 | int nid; | 88 | int nid; |
88 | int cert; | 89 | int cert; |
89 | int sigonly; | 90 | int sigonly; |
90 | }; | 91 | }; |
91 | static const struct keytype keytypes[] = { | 92 | static const struct keytype keytypes[] = { |
92 | { "ssh-ed25519", "ED25519", KEY_ED25519, 0, 0, 0 }, | 93 | { "ssh-ed25519", "ED25519", NULL, KEY_ED25519, 0, 0, 0 }, |
93 | { "ssh-ed25519-cert-v01@openssh.com", "ED25519-CERT", | 94 | { "ssh-ed25519-cert-v01@openssh.com", "ED25519-CERT", NULL, |
94 | KEY_ED25519_CERT, 0, 1, 0 }, | 95 | KEY_ED25519_CERT, 0, 1, 0 }, |
95 | #ifdef WITH_XMSS | 96 | #ifdef WITH_XMSS |
96 | { "ssh-xmss@openssh.com", "XMSS", KEY_XMSS, 0, 0, 0 }, | 97 | { "ssh-xmss@openssh.com", "XMSS", NULL, KEY_XMSS, 0, 0, 0 }, |
97 | { "ssh-xmss-cert-v01@openssh.com", "XMSS-CERT", | 98 | { "ssh-xmss-cert-v01@openssh.com", "XMSS-CERT", NULL, |
98 | KEY_XMSS_CERT, 0, 1, 0 }, | 99 | KEY_XMSS_CERT, 0, 1, 0 }, |
99 | #endif /* WITH_XMSS */ | 100 | #endif /* WITH_XMSS */ |
100 | #ifdef WITH_OPENSSL | 101 | #ifdef WITH_OPENSSL |
101 | { "ssh-rsa", "RSA", KEY_RSA, 0, 0, 0 }, | 102 | { "ssh-rsa", "RSA", NULL, KEY_RSA, 0, 0, 0 }, |
102 | { "rsa-sha2-256", "RSA", KEY_RSA, 0, 0, 1 }, | 103 | { "rsa-sha2-256", "RSA", NULL, KEY_RSA, 0, 0, 1 }, |
103 | { "rsa-sha2-512", "RSA", KEY_RSA, 0, 0, 1 }, | 104 | { "rsa-sha2-512", "RSA", NULL, KEY_RSA, 0, 0, 1 }, |
104 | { "ssh-dss", "DSA", KEY_DSA, 0, 0, 0 }, | 105 | { "ssh-dss", "DSA", NULL, KEY_DSA, 0, 0, 0 }, |
105 | # ifdef OPENSSL_HAS_ECC | 106 | # ifdef OPENSSL_HAS_ECC |
106 | { "ecdsa-sha2-nistp256", "ECDSA", KEY_ECDSA, NID_X9_62_prime256v1, 0, 0 }, | 107 | { "ecdsa-sha2-nistp256", "ECDSA", NULL, |
107 | { "ecdsa-sha2-nistp384", "ECDSA", KEY_ECDSA, NID_secp384r1, 0, 0 }, | 108 | KEY_ECDSA, NID_X9_62_prime256v1, 0, 0 }, |
109 | { "ecdsa-sha2-nistp384", "ECDSA", NULL, | ||
110 | KEY_ECDSA, NID_secp384r1, 0, 0 }, | ||
108 | # ifdef OPENSSL_HAS_NISTP521 | 111 | # ifdef OPENSSL_HAS_NISTP521 |
109 | { "ecdsa-sha2-nistp521", "ECDSA", KEY_ECDSA, NID_secp521r1, 0, 0 }, | 112 | { "ecdsa-sha2-nistp521", "ECDSA", NULL, |
113 | KEY_ECDSA, NID_secp521r1, 0, 0 }, | ||
110 | # endif /* OPENSSL_HAS_NISTP521 */ | 114 | # endif /* OPENSSL_HAS_NISTP521 */ |
111 | # endif /* OPENSSL_HAS_ECC */ | 115 | # endif /* OPENSSL_HAS_ECC */ |
112 | { "ssh-rsa-cert-v01@openssh.com", "RSA-CERT", KEY_RSA_CERT, 0, 1, 0 }, | 116 | { "ssh-rsa-cert-v01@openssh.com", "RSA-CERT", NULL, |
113 | { "ssh-dss-cert-v01@openssh.com", "DSA-CERT", KEY_DSA_CERT, 0, 1, 0 }, | 117 | KEY_RSA_CERT, 0, 1, 0 }, |
118 | { "rsa-sha2-256-cert-v01@openssh.com", "RSA-CERT", | ||
119 | "ssh-rsa-sha2-256", KEY_RSA_CERT, 0, 1, 1 }, | ||
120 | { "rsa-sha2-512-cert-v01@openssh.com", "RSA-CERT", | ||
121 | "ssh-rsa-sha2-512", KEY_RSA_CERT, 0, 1, 1 }, | ||
122 | { "ssh-dss-cert-v01@openssh.com", "DSA-CERT", NULL, | ||
123 | KEY_DSA_CERT, 0, 1, 0 }, | ||
124 | { "ssh-rsa-cert-v01@openssh.com", "RSA-CERT", NULL, | ||
125 | KEY_RSA_CERT, 0, 1, 0 }, | ||
126 | { "rsa-sha2-256-cert-v01@openssh.com", "RSA-CERT", | ||
127 | "ssh-rsa-sha2-256", KEY_RSA_CERT, 0, 1, 1 }, | ||
128 | { "rsa-sha2-512-cert-v01@openssh.com", "RSA-CERT", | ||
129 | "ssh-rsa-sha2-512", KEY_RSA_CERT, 0, 1, 1 }, | ||
130 | { "ssh-dss-cert-v01@openssh.com", "DSA-CERT", NULL, | ||
131 | KEY_DSA_CERT, 0, 1, 0 }, | ||
114 | # ifdef OPENSSL_HAS_ECC | 132 | # ifdef OPENSSL_HAS_ECC |
115 | { "ecdsa-sha2-nistp256-cert-v01@openssh.com", "ECDSA-CERT", | 133 | { "ecdsa-sha2-nistp256-cert-v01@openssh.com", "ECDSA-CERT", NULL, |
116 | KEY_ECDSA_CERT, NID_X9_62_prime256v1, 1, 0 }, | 134 | KEY_ECDSA_CERT, NID_X9_62_prime256v1, 1, 0 }, |
117 | { "ecdsa-sha2-nistp384-cert-v01@openssh.com", "ECDSA-CERT", | 135 | { "ecdsa-sha2-nistp384-cert-v01@openssh.com", "ECDSA-CERT", NULL, |
118 | KEY_ECDSA_CERT, NID_secp384r1, 1, 0 }, | 136 | KEY_ECDSA_CERT, NID_secp384r1, 1, 0 }, |
119 | # ifdef OPENSSL_HAS_NISTP521 | 137 | # ifdef OPENSSL_HAS_NISTP521 |
120 | { "ecdsa-sha2-nistp521-cert-v01@openssh.com", "ECDSA-CERT", | 138 | { "ecdsa-sha2-nistp521-cert-v01@openssh.com", "ECDSA-CERT", NULL, |
121 | KEY_ECDSA_CERT, NID_secp521r1, 1, 0 }, | 139 | KEY_ECDSA_CERT, NID_secp521r1, 1, 0 }, |
122 | # endif /* OPENSSL_HAS_NISTP521 */ | 140 | # endif /* OPENSSL_HAS_NISTP521 */ |
123 | # endif /* OPENSSL_HAS_ECC */ | 141 | # endif /* OPENSSL_HAS_ECC */ |
124 | #endif /* WITH_OPENSSL */ | 142 | #endif /* WITH_OPENSSL */ |
125 | { NULL, NULL, -1, -1, 0, 0 } | 143 | { NULL, NULL, NULL, -1, -1, 0, 0 } |
126 | }; | 144 | }; |
127 | 145 | ||
128 | const char * | 146 | const char * |
@@ -2198,8 +2216,8 @@ sshkey_froms(struct sshbuf *buf, struct sshkey **keyp) | |||
2198 | return r; | 2216 | return r; |
2199 | } | 2217 | } |
2200 | 2218 | ||
2201 | int | 2219 | static int |
2202 | sshkey_sigtype(const u_char *sig, size_t siglen, char **sigtypep) | 2220 | get_sigtype(const u_char *sig, size_t siglen, char **sigtypep) |
2203 | { | 2221 | { |
2204 | int r; | 2222 | int r; |
2205 | struct sshbuf *b = NULL; | 2223 | struct sshbuf *b = NULL; |
@@ -2223,6 +2241,50 @@ sshkey_sigtype(const u_char *sig, size_t siglen, char **sigtypep) | |||
2223 | return r; | 2241 | return r; |
2224 | } | 2242 | } |
2225 | 2243 | ||
2244 | /* | ||
2245 | * Returns the expected signature algorithm for a given public key algorithm. | ||
2246 | */ | ||
2247 | const char * | ||
2248 | sshkey_sigalg_by_name(const char *name) | ||
2249 | { | ||
2250 | const struct keytype *kt; | ||
2251 | |||
2252 | for (kt = keytypes; kt->type != -1; kt++) { | ||
2253 | if (strcmp(kt->name, name) != 0) | ||
2254 | continue; | ||
2255 | if (kt->sigalg != NULL) | ||
2256 | return kt->sigalg; | ||
2257 | if (!kt->cert) | ||
2258 | return kt->name; | ||
2259 | return sshkey_ssh_name_from_type_nid( | ||
2260 | sshkey_type_plain(kt->type), kt->nid); | ||
2261 | } | ||
2262 | return NULL; | ||
2263 | } | ||
2264 | |||
2265 | /* | ||
2266 | * Verifies that the signature algorithm appearing inside the signature blob | ||
2267 | * matches that which was requested. | ||
2268 | */ | ||
2269 | int | ||
2270 | sshkey_check_sigtype(const u_char *sig, size_t siglen, | ||
2271 | const char *requested_alg) | ||
2272 | { | ||
2273 | const char *expected_alg; | ||
2274 | char *sigtype = NULL; | ||
2275 | int r; | ||
2276 | |||
2277 | if (requested_alg == NULL) | ||
2278 | return 0; | ||
2279 | if ((expected_alg = sshkey_sigalg_by_name(requested_alg)) == NULL) | ||
2280 | return SSH_ERR_INVALID_ARGUMENT; | ||
2281 | if ((r = get_sigtype(sig, siglen, &sigtype)) != 0) | ||
2282 | return r; | ||
2283 | r = strcmp(expected_alg, sigtype) == 0; | ||
2284 | free(sigtype); | ||
2285 | return r ? 0 : SSH_ERR_SIGN_ALG_UNSUPPORTED; | ||
2286 | } | ||
2287 | |||
2226 | int | 2288 | int |
2227 | sshkey_sign(const struct sshkey *key, | 2289 | sshkey_sign(const struct sshkey *key, |
2228 | u_char **sigp, size_t *lenp, | 2290 | u_char **sigp, size_t *lenp, |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: sshkey.h,v 1.24 2018/02/23 15:58:38 markus Exp $ */ | 1 | /* $OpenBSD: sshkey.h,v 1.26 2018/07/03 13:20:25 djm Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. | 4 | * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. |
@@ -191,11 +191,12 @@ int sshkey_puts_opts(const struct sshkey *, struct sshbuf *, | |||
191 | int sshkey_plain_to_blob(const struct sshkey *, u_char **, size_t *); | 191 | int sshkey_plain_to_blob(const struct sshkey *, u_char **, size_t *); |
192 | int sshkey_putb_plain(const struct sshkey *, struct sshbuf *); | 192 | int sshkey_putb_plain(const struct sshkey *, struct sshbuf *); |
193 | 193 | ||
194 | int sshkey_sigtype(const u_char *, size_t, char **); | ||
195 | int sshkey_sign(const struct sshkey *, u_char **, size_t *, | 194 | int sshkey_sign(const struct sshkey *, u_char **, size_t *, |
196 | const u_char *, size_t, const char *, u_int); | 195 | const u_char *, size_t, const char *, u_int); |
197 | int sshkey_verify(const struct sshkey *, const u_char *, size_t, | 196 | int sshkey_verify(const struct sshkey *, const u_char *, size_t, |
198 | const u_char *, size_t, const char *, u_int); | 197 | const u_char *, size_t, const char *, u_int); |
198 | int sshkey_check_sigtype(const u_char *, size_t, const char *); | ||
199 | const char *sshkey_sigalg_by_name(const char *); | ||
199 | 200 | ||
200 | /* for debug */ | 201 | /* for debug */ |
201 | void sshkey_dump_ec_point(const EC_GROUP *, const EC_POINT *); | 202 | void sshkey_dump_ec_point(const EC_GROUP *, const EC_POINT *); |
diff --git a/sshlogin.c b/sshlogin.c index cea3e7697..1b2ee5f85 100644 --- a/sshlogin.c +++ b/sshlogin.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: sshlogin.c,v 1.32 2015/12/26 20:51:35 guenther Exp $ */ | 1 | /* $OpenBSD: sshlogin.c,v 1.33 2018/07/09 21:26:02 markus Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -55,13 +55,15 @@ | |||
55 | #include <unistd.h> | 55 | #include <unistd.h> |
56 | #include <limits.h> | 56 | #include <limits.h> |
57 | 57 | ||
58 | #include "sshlogin.h" | ||
59 | #include "ssherr.h" | ||
58 | #include "loginrec.h" | 60 | #include "loginrec.h" |
59 | #include "log.h" | 61 | #include "log.h" |
60 | #include "buffer.h" | 62 | #include "sshbuf.h" |
61 | #include "misc.h" | 63 | #include "misc.h" |
62 | #include "servconf.h" | 64 | #include "servconf.h" |
63 | 65 | ||
64 | extern Buffer loginmsg; | 66 | extern struct sshbuf *loginmsg; |
65 | extern ServerOptions options; | 67 | extern ServerOptions options; |
66 | 68 | ||
67 | /* | 69 | /* |
@@ -88,8 +90,9 @@ static void | |||
88 | store_lastlog_message(const char *user, uid_t uid) | 90 | store_lastlog_message(const char *user, uid_t uid) |
89 | { | 91 | { |
90 | #ifndef NO_SSH_LASTLOG | 92 | #ifndef NO_SSH_LASTLOG |
91 | char *time_string, hostname[HOST_NAME_MAX+1] = "", buf[512]; | 93 | char *time_string, hostname[HOST_NAME_MAX+1] = ""; |
92 | time_t last_login_time; | 94 | time_t last_login_time; |
95 | int r; | ||
93 | 96 | ||
94 | if (!options.print_lastlog) | 97 | if (!options.print_lastlog) |
95 | return; | 98 | return; |
@@ -97,7 +100,9 @@ store_lastlog_message(const char *user, uid_t uid) | |||
97 | # ifdef CUSTOM_SYS_AUTH_GET_LASTLOGIN_MSG | 100 | # ifdef CUSTOM_SYS_AUTH_GET_LASTLOGIN_MSG |
98 | time_string = sys_auth_get_lastlogin_msg(user, uid); | 101 | time_string = sys_auth_get_lastlogin_msg(user, uid); |
99 | if (time_string != NULL) { | 102 | if (time_string != NULL) { |
100 | buffer_append(&loginmsg, time_string, strlen(time_string)); | 103 | if ((r = sshbuf_put(loginmsg, |
104 | time_string, strlen(time_string))) != 0) | ||
105 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
101 | free(time_string); | 106 | free(time_string); |
102 | } | 107 | } |
103 | # else | 108 | # else |
@@ -108,12 +113,13 @@ store_lastlog_message(const char *user, uid_t uid) | |||
108 | time_string = ctime(&last_login_time); | 113 | time_string = ctime(&last_login_time); |
109 | time_string[strcspn(time_string, "\n")] = '\0'; | 114 | time_string[strcspn(time_string, "\n")] = '\0'; |
110 | if (strcmp(hostname, "") == 0) | 115 | if (strcmp(hostname, "") == 0) |
111 | snprintf(buf, sizeof(buf), "Last login: %s\r\n", | 116 | r = sshbuf_putf(loginmsg, "Last login: %s\r\n", |
112 | time_string); | 117 | time_string); |
113 | else | 118 | else |
114 | snprintf(buf, sizeof(buf), "Last login: %s from %s\r\n", | 119 | r = sshbuf_putf(loginmsg, "Last login: %s from %s\r\n", |
115 | time_string, hostname); | 120 | time_string, hostname); |
116 | buffer_append(&loginmsg, buf, strlen(buf)); | 121 | if (r != 0) |
122 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
117 | } | 123 | } |
118 | # endif /* CUSTOM_SYS_AUTH_GET_LASTLOGIN_MSG */ | 124 | # endif /* CUSTOM_SYS_AUTH_GET_LASTLOGIN_MSG */ |
119 | #endif /* NO_SSH_LASTLOG */ | 125 | #endif /* NO_SSH_LASTLOG */ |
diff --git a/ttymodes.c b/ttymodes.c index f9fdb92de..f0c2a5d37 100644 --- a/ttymodes.c +++ b/ttymodes.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ttymodes.c,v 1.33 2018/02/16 04:43:11 dtucker Exp $ */ | 1 | /* $OpenBSD: ttymodes.c,v 1.34 2018/07/09 21:20:26 markus Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -55,8 +55,8 @@ | |||
55 | #include "packet.h" | 55 | #include "packet.h" |
56 | #include "log.h" | 56 | #include "log.h" |
57 | #include "compat.h" | 57 | #include "compat.h" |
58 | #include "buffer.h" | 58 | #include "sshbuf.h" |
59 | #include "compat.h" | 59 | #include "ssherr.h" |
60 | 60 | ||
61 | #define TTY_OP_END 0 | 61 | #define TTY_OP_END 0 |
62 | /* | 62 | /* |
@@ -276,17 +276,18 @@ special_char_decode(u_int c) | |||
276 | * being constructed. | 276 | * being constructed. |
277 | */ | 277 | */ |
278 | void | 278 | void |
279 | tty_make_modes(int fd, struct termios *tiop) | 279 | ssh_tty_make_modes(struct ssh *ssh, int fd, struct termios *tiop) |
280 | { | 280 | { |
281 | struct termios tio; | 281 | struct termios tio; |
282 | int baud; | 282 | struct sshbuf *buf; |
283 | Buffer buf; | 283 | int r, ibaud, obaud; |
284 | 284 | ||
285 | buffer_init(&buf); | 285 | if ((buf = sshbuf_new()) == NULL) |
286 | fatal("%s: sshbuf_new failed", __func__); | ||
286 | 287 | ||
287 | if (tiop == NULL) { | 288 | if (tiop == NULL) { |
288 | if (fd == -1) { | 289 | if (fd == -1) { |
289 | debug("tty_make_modes: no fd or tio"); | 290 | debug("%s: no fd or tio", __func__); |
290 | goto end; | 291 | goto end; |
291 | } | 292 | } |
292 | if (tcgetattr(fd, &tio) == -1) { | 293 | if (tcgetattr(fd, &tio) == -1) { |
@@ -297,27 +298,29 @@ tty_make_modes(int fd, struct termios *tiop) | |||
297 | tio = *tiop; | 298 | tio = *tiop; |
298 | 299 | ||
299 | /* Store input and output baud rates. */ | 300 | /* Store input and output baud rates. */ |
300 | baud = speed_to_baud(cfgetospeed(&tio)); | 301 | obaud = speed_to_baud(cfgetospeed(&tio)); |
301 | buffer_put_char(&buf, TTY_OP_OSPEED); | 302 | ibaud = speed_to_baud(cfgetispeed(&tio)); |
302 | buffer_put_int(&buf, baud); | 303 | if ((r = sshbuf_put_u8(buf, TTY_OP_OSPEED)) != 0 || |
303 | baud = speed_to_baud(cfgetispeed(&tio)); | 304 | (r = sshbuf_put_u32(buf, obaud)) != 0 || |
304 | buffer_put_char(&buf, TTY_OP_ISPEED); | 305 | (r = sshbuf_put_u8(buf, TTY_OP_ISPEED)) != 0 || |
305 | buffer_put_int(&buf, baud); | 306 | (r = sshbuf_put_u32(buf, ibaud)) != 0) |
307 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
306 | 308 | ||
307 | /* Store values of mode flags. */ | 309 | /* Store values of mode flags. */ |
308 | #define TTYCHAR(NAME, OP) \ | 310 | #define TTYCHAR(NAME, OP) \ |
309 | buffer_put_char(&buf, OP); \ | 311 | if ((r = sshbuf_put_u8(buf, OP)) != 0 || \ |
310 | buffer_put_int(&buf, special_char_encode(tio.c_cc[NAME])); | 312 | (r = sshbuf_put_u32(buf, \ |
313 | special_char_encode(tio.c_cc[NAME]))) != 0) \ | ||
314 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); \ | ||
311 | 315 | ||
312 | #define SSH_TTYMODE_IUTF8 42 /* for SSH_BUG_UTF8TTYMODE */ | 316 | #define SSH_TTYMODE_IUTF8 42 /* for SSH_BUG_UTF8TTYMODE */ |
313 | 317 | ||
314 | #define TTYMODE(NAME, FIELD, OP) \ | 318 | #define TTYMODE(NAME, FIELD, OP) \ |
315 | if (OP == SSH_TTYMODE_IUTF8 && (datafellows & SSH_BUG_UTF8TTYMODE)) { \ | 319 | if (OP == SSH_TTYMODE_IUTF8 && (datafellows & SSH_BUG_UTF8TTYMODE)) { \ |
316 | debug3("%s: SSH_BUG_UTF8TTYMODE", __func__); \ | 320 | debug3("%s: SSH_BUG_UTF8TTYMODE", __func__); \ |
317 | } else { \ | 321 | } else if ((r = sshbuf_put_u8(buf, OP)) != 0 || \ |
318 | buffer_put_char(&buf, OP); \ | 322 | (r = sshbuf_put_u32(buf, ((tio.FIELD & NAME) != 0))) != 0) \ |
319 | buffer_put_int(&buf, ((tio.FIELD & NAME) != 0)); \ | 323 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); \ |
320 | } | ||
321 | 324 | ||
322 | #include "ttymodes.h" | 325 | #include "ttymodes.h" |
323 | 326 | ||
@@ -326,9 +329,10 @@ tty_make_modes(int fd, struct termios *tiop) | |||
326 | 329 | ||
327 | end: | 330 | end: |
328 | /* Mark end of mode data. */ | 331 | /* Mark end of mode data. */ |
329 | buffer_put_char(&buf, TTY_OP_END); | 332 | if ((r = sshbuf_put_u8(buf, TTY_OP_END)) != 0 || |
330 | packet_put_string(buffer_ptr(&buf), buffer_len(&buf)); | 333 | (r = sshpkt_put_stringb(ssh, buf)) != 0) |
331 | buffer_free(&buf); | 334 | fatal("%s: packet error: %s", __func__, ssh_err(r)); |
335 | sshbuf_free(buf); | ||
332 | } | 336 | } |
333 | 337 | ||
334 | /* | 338 | /* |
@@ -336,16 +340,24 @@ end: | |||
336 | * manner from a packet being read. | 340 | * manner from a packet being read. |
337 | */ | 341 | */ |
338 | void | 342 | void |
339 | tty_parse_modes(int fd, int *n_bytes_ptr) | 343 | ssh_tty_parse_modes(struct ssh *ssh, int fd) |
340 | { | 344 | { |
341 | struct termios tio; | 345 | struct termios tio; |
342 | int opcode, baud; | 346 | struct sshbuf *buf; |
343 | int n_bytes = 0; | 347 | const u_char *data; |
344 | int failure = 0; | 348 | u_char opcode; |
345 | 349 | u_int baud, u; | |
346 | *n_bytes_ptr = packet_get_int(); | 350 | int r, failure = 0; |
347 | if (*n_bytes_ptr == 0) | 351 | size_t len; |
352 | |||
353 | if ((r = sshpkt_get_string_direct(ssh, &data, &len)) != 0) | ||
354 | fatal("%s: packet error: %s", __func__, ssh_err(r)); | ||
355 | if (len == 0) | ||
356 | return; | ||
357 | if ((buf = sshbuf_from(data, len)) == NULL) { | ||
358 | error("%s: sshbuf_from failed", __func__); | ||
348 | return; | 359 | return; |
360 | } | ||
349 | 361 | ||
350 | /* | 362 | /* |
351 | * Get old attributes for the terminal. We will modify these | 363 | * Get old attributes for the terminal. We will modify these |
@@ -357,42 +369,48 @@ tty_parse_modes(int fd, int *n_bytes_ptr) | |||
357 | failure = -1; | 369 | failure = -1; |
358 | } | 370 | } |
359 | 371 | ||
360 | for (;;) { | 372 | while (sshbuf_len(buf) > 0) { |
361 | n_bytes += 1; | 373 | if ((r = sshbuf_get_u8(buf, &opcode)) != 0) |
362 | opcode = packet_get_char(); | 374 | fatal("%s: packet error: %s", __func__, ssh_err(r)); |
363 | switch (opcode) { | 375 | switch (opcode) { |
364 | case TTY_OP_END: | 376 | case TTY_OP_END: |
365 | goto set; | 377 | goto set; |
366 | 378 | ||
367 | case TTY_OP_ISPEED: | 379 | case TTY_OP_ISPEED: |
368 | n_bytes += 4; | 380 | if ((r = sshbuf_get_u32(buf, &baud)) != 0) |
369 | baud = packet_get_int(); | 381 | fatal("%s: packet error: %s", |
382 | __func__, ssh_err(r)); | ||
370 | if (failure != -1 && | 383 | if (failure != -1 && |
371 | cfsetispeed(&tio, baud_to_speed(baud)) == -1) | 384 | cfsetispeed(&tio, baud_to_speed(baud)) == -1) |
372 | error("cfsetispeed failed for %d", baud); | 385 | error("cfsetispeed failed for %d", baud); |
373 | break; | 386 | break; |
374 | 387 | ||
375 | case TTY_OP_OSPEED: | 388 | case TTY_OP_OSPEED: |
376 | n_bytes += 4; | 389 | if ((r = sshbuf_get_u32(buf, &baud)) != 0) |
377 | baud = packet_get_int(); | 390 | fatal("%s: packet error: %s", |
391 | __func__, ssh_err(r)); | ||
378 | if (failure != -1 && | 392 | if (failure != -1 && |
379 | cfsetospeed(&tio, baud_to_speed(baud)) == -1) | 393 | cfsetospeed(&tio, baud_to_speed(baud)) == -1) |
380 | error("cfsetospeed failed for %d", baud); | 394 | error("cfsetospeed failed for %d", baud); |
381 | break; | 395 | break; |
382 | 396 | ||
383 | #define TTYCHAR(NAME, OP) \ | 397 | #define TTYCHAR(NAME, OP) \ |
384 | case OP: \ | 398 | case OP: \ |
385 | n_bytes += 4; \ | 399 | if ((r = sshbuf_get_u32(buf, &u)) != 0) \ |
386 | tio.c_cc[NAME] = special_char_decode(packet_get_int()); \ | 400 | fatal("%s: packet error: %s", __func__, \ |
387 | break; | 401 | ssh_err(r)); \ |
402 | tio.c_cc[NAME] = special_char_decode(u); \ | ||
403 | break; | ||
388 | #define TTYMODE(NAME, FIELD, OP) \ | 404 | #define TTYMODE(NAME, FIELD, OP) \ |
389 | case OP: \ | 405 | case OP: \ |
390 | n_bytes += 4; \ | 406 | if ((r = sshbuf_get_u32(buf, &u)) != 0) \ |
391 | if (packet_get_int()) \ | 407 | fatal("%s: packet error: %s", __func__, \ |
392 | tio.FIELD |= NAME; \ | 408 | ssh_err(r)); \ |
393 | else \ | 409 | if (u) \ |
394 | tio.FIELD &= ~NAME; \ | 410 | tio.FIELD |= NAME; \ |
395 | break; | 411 | else \ |
412 | tio.FIELD &= ~NAME; \ | ||
413 | break; | ||
396 | 414 | ||
397 | #include "ttymodes.h" | 415 | #include "ttymodes.h" |
398 | 416 | ||
@@ -410,11 +428,12 @@ tty_parse_modes(int fd, int *n_bytes_ptr) | |||
410 | * to stop. | 428 | * to stop. |
411 | */ | 429 | */ |
412 | if (opcode > 0 && opcode < 160) { | 430 | if (opcode > 0 && opcode < 160) { |
413 | n_bytes += 4; | 431 | if ((r = sshbuf_get_u32(buf, NULL)) != 0) |
414 | (void) packet_get_int(); | 432 | fatal("%s: packet error: %s", __func__, |
433 | ssh_err(r)); | ||
415 | break; | 434 | break; |
416 | } else { | 435 | } else { |
417 | logit("parse_tty_modes: unknown opcode %d", | 436 | logit("%s: unknown opcode %d", __func__, |
418 | opcode); | 437 | opcode); |
419 | goto set; | 438 | goto set; |
420 | } | 439 | } |
@@ -422,10 +441,10 @@ tty_parse_modes(int fd, int *n_bytes_ptr) | |||
422 | } | 441 | } |
423 | 442 | ||
424 | set: | 443 | set: |
425 | if (*n_bytes_ptr != n_bytes) { | 444 | len = sshbuf_len(buf); |
426 | *n_bytes_ptr = n_bytes; | 445 | sshbuf_free(buf); |
427 | logit("parse_tty_modes: n_bytes_ptr != n_bytes: %d %d", | 446 | if (len > 0) { |
428 | *n_bytes_ptr, n_bytes); | 447 | logit("%s: %zu bytes left", __func__, len); |
429 | return; /* Don't process bytes passed */ | 448 | return; /* Don't process bytes passed */ |
430 | } | 449 | } |
431 | if (failure == -1) | 450 | if (failure == -1) |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: uidswap.c,v 1.39 2015/06/24 01:49:19 dtucker Exp $ */ | 1 | /* $OpenBSD: uidswap.c,v 1.41 2018/07/18 11:34:04 dtucker Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -49,6 +49,7 @@ static gid_t saved_egid = 0; | |||
49 | /* Saved effective uid. */ | 49 | /* Saved effective uid. */ |
50 | static int privileged = 0; | 50 | static int privileged = 0; |
51 | static int temporarily_use_uid_effective = 0; | 51 | static int temporarily_use_uid_effective = 0; |
52 | static uid_t user_groups_uid; | ||
52 | static gid_t *saved_egroups = NULL, *user_groups = NULL; | 53 | static gid_t *saved_egroups = NULL, *user_groups = NULL; |
53 | static int saved_egroupslen = -1, user_groupslen = -1; | 54 | static int saved_egroupslen = -1, user_groupslen = -1; |
54 | 55 | ||
@@ -92,10 +93,11 @@ temporarily_use_uid(struct passwd *pw) | |||
92 | fatal("getgroups: %.100s", strerror(errno)); | 93 | fatal("getgroups: %.100s", strerror(errno)); |
93 | } else { /* saved_egroupslen == 0 */ | 94 | } else { /* saved_egroupslen == 0 */ |
94 | free(saved_egroups); | 95 | free(saved_egroups); |
96 | saved_egroups = NULL; | ||
95 | } | 97 | } |
96 | 98 | ||
97 | /* set and save the user's groups */ | 99 | /* set and save the user's groups */ |
98 | if (user_groupslen == -1) { | 100 | if (user_groupslen == -1 || user_groups_uid != pw->pw_uid) { |
99 | if (initgroups(pw->pw_name, pw->pw_gid) < 0) | 101 | if (initgroups(pw->pw_name, pw->pw_gid) < 0) |
100 | fatal("initgroups: %s: %.100s", pw->pw_name, | 102 | fatal("initgroups: %s: %.100s", pw->pw_name, |
101 | strerror(errno)); | 103 | strerror(errno)); |
@@ -110,7 +112,9 @@ temporarily_use_uid(struct passwd *pw) | |||
110 | fatal("getgroups: %.100s", strerror(errno)); | 112 | fatal("getgroups: %.100s", strerror(errno)); |
111 | } else { /* user_groupslen == 0 */ | 113 | } else { /* user_groupslen == 0 */ |
112 | free(user_groups); | 114 | free(user_groups); |
115 | user_groups = NULL; | ||
113 | } | 116 | } |
117 | user_groups_uid = pw->pw_uid; | ||
114 | } | 118 | } |
115 | /* Set the effective uid to the given (unprivileged) uid. */ | 119 | /* Set the effective uid to the given (unprivileged) uid. */ |
116 | if (setgroups(user_groupslen, user_groups) < 0) | 120 | if (setgroups(user_groupslen, user_groups) < 0) |
@@ -131,37 +135,6 @@ temporarily_use_uid(struct passwd *pw) | |||
131 | strerror(errno)); | 135 | strerror(errno)); |
132 | } | 136 | } |
133 | 137 | ||
134 | void | ||
135 | permanently_drop_suid(uid_t uid) | ||
136 | { | ||
137 | #ifndef NO_UID_RESTORATION_TEST | ||
138 | uid_t old_uid = getuid(); | ||
139 | #endif | ||
140 | |||
141 | debug("permanently_drop_suid: %u", (u_int)uid); | ||
142 | if (setresuid(uid, uid, uid) < 0) | ||
143 | fatal("setresuid %u: %.100s", (u_int)uid, strerror(errno)); | ||
144 | |||
145 | #ifndef NO_UID_RESTORATION_TEST | ||
146 | /* | ||
147 | * Try restoration of UID if changed (test clearing of saved uid). | ||
148 | * | ||
149 | * Note that we don't do this on Cygwin, or on Solaris-based platforms | ||
150 | * where fine-grained privileges are available (the user might be | ||
151 | * deliberately allowed the right to setuid back to root). | ||
152 | */ | ||
153 | if (old_uid != uid && | ||
154 | (setuid(old_uid) != -1 || seteuid(old_uid) != -1)) | ||
155 | fatal("%s: was able to restore old [e]uid", __func__); | ||
156 | #endif | ||
157 | |||
158 | /* Verify UID drop was successful */ | ||
159 | if (getuid() != uid || geteuid() != uid) { | ||
160 | fatal("%s: euid incorrect uid:%u euid:%u (should be %u)", | ||
161 | __func__, (u_int)getuid(), (u_int)geteuid(), (u_int)uid); | ||
162 | } | ||
163 | } | ||
164 | |||
165 | /* | 138 | /* |
166 | * Restores to the original (privileged) uid. | 139 | * Restores to the original (privileged) uid. |
167 | */ | 140 | */ |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: uidswap.h,v 1.13 2006/08/03 03:34:42 deraadt Exp $ */ | 1 | /* $OpenBSD: uidswap.h,v 1.14 2018/07/18 11:34:05 dtucker Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
@@ -15,4 +15,3 @@ | |||
15 | void temporarily_use_uid(struct passwd *); | 15 | void temporarily_use_uid(struct passwd *); |
16 | void restore_uid(void); | 16 | void restore_uid(void); |
17 | void permanently_set_uid(struct passwd *); | 17 | void permanently_set_uid(struct passwd *); |
18 | void permanently_drop_suid(uid_t); | ||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: umac.c,v 1.16 2017/12/12 15:06:12 naddy Exp $ */ | 1 | /* $OpenBSD: umac.c,v 1.17 2018/04/10 00:10:49 djm Exp $ */ |
2 | /* ----------------------------------------------------------------------- | 2 | /* ----------------------------------------------------------------------- |
3 | * | 3 | * |
4 | * umac.c -- C Implementation UMAC Message Authentication | 4 | * umac.c -- C Implementation UMAC Message Authentication |
@@ -65,7 +65,7 @@ | |||
65 | /* #define AES_IMPLEMENTAION 1 1 = OpenSSL, 2 = Barreto, 3 = Gladman */ | 65 | /* #define AES_IMPLEMENTAION 1 1 = OpenSSL, 2 = Barreto, 3 = Gladman */ |
66 | /* #define SSE2 0 Is SSE2 is available? */ | 66 | /* #define SSE2 0 Is SSE2 is available? */ |
67 | /* #define RUN_TESTS 0 Run basic correctness/speed tests */ | 67 | /* #define RUN_TESTS 0 Run basic correctness/speed tests */ |
68 | /* #define UMAC_AE_SUPPORT 0 Enable auhthenticated encrytion */ | 68 | /* #define UMAC_AE_SUPPORT 0 Enable authenticated encryption */ |
69 | 69 | ||
70 | /* ---------------------------------------------------------------------- */ | 70 | /* ---------------------------------------------------------------------- */ |
71 | /* -- Global Includes --------------------------------------------------- */ | 71 | /* -- Global Includes --------------------------------------------------- */ |
@@ -295,9 +295,9 @@ static void pdf_gen_xor(pdf_ctx *pc, const UINT8 nonce[8], UINT8 buf[8]) | |||
295 | * Before beginning another hash calculation the nh_reset() routine | 295 | * Before beginning another hash calculation the nh_reset() routine |
296 | * must be called. The single-buffer routine, nh(), is equivalent to | 296 | * must be called. The single-buffer routine, nh(), is equivalent to |
297 | * the sequence of calls nh_update() and nh_final(); however it is | 297 | * the sequence of calls nh_update() and nh_final(); however it is |
298 | * optimized and should be prefered whenever the multiple-buffer interface | 298 | * optimized and should be preferred whenever the multiple-buffer interface |
299 | * is not necessary. When using either interface, it is the client's | 299 | * is not necessary. When using either interface, it is the client's |
300 | * responsability to pass no more than L1_KEY_LEN bytes per hash result. | 300 | * responsibility to pass no more than L1_KEY_LEN bytes per hash result. |
301 | * | 301 | * |
302 | * The routine nh_init() initializes the nh_ctx data structure and | 302 | * The routine nh_init() initializes the nh_ctx data structure and |
303 | * must be called once, before any other PDF routine. | 303 | * must be called once, before any other PDF routine. |
@@ -319,8 +319,8 @@ static void pdf_gen_xor(pdf_ctx *pc, const UINT8 nonce[8], UINT8 buf[8]) | |||
319 | typedef struct { | 319 | typedef struct { |
320 | UINT8 nh_key [L1_KEY_LEN + L1_KEY_SHIFT * (STREAMS - 1)]; /* NH Key */ | 320 | UINT8 nh_key [L1_KEY_LEN + L1_KEY_SHIFT * (STREAMS - 1)]; /* NH Key */ |
321 | UINT8 data [HASH_BUF_BYTES]; /* Incoming data buffer */ | 321 | UINT8 data [HASH_BUF_BYTES]; /* Incoming data buffer */ |
322 | int next_data_empty; /* Bookeeping variable for data buffer. */ | 322 | int next_data_empty; /* Bookkeeping variable for data buffer. */ |
323 | int bytes_hashed; /* Bytes (out of L1_KEY_LEN) incorperated. */ | 323 | int bytes_hashed; /* Bytes (out of L1_KEY_LEN) incorporated. */ |
324 | UINT64 state[STREAMS]; /* on-line state */ | 324 | UINT64 state[STREAMS]; /* on-line state */ |
325 | } nh_ctx; | 325 | } nh_ctx; |
326 | 326 | ||
@@ -851,7 +851,7 @@ static void poly_hash(uhash_ctx_t hc, UINT32 data_in[]) | |||
851 | 851 | ||
852 | 852 | ||
853 | /* The final step in UHASH is an inner-product hash. The poly hash | 853 | /* The final step in UHASH is an inner-product hash. The poly hash |
854 | * produces a result not neccesarily WORD_LEN bytes long. The inner- | 854 | * produces a result not necessarily WORD_LEN bytes long. The inner- |
855 | * product hash breaks the polyhash output into 16-bit chunks and | 855 | * product hash breaks the polyhash output into 16-bit chunks and |
856 | * multiplies each with a 36 bit key. | 856 | * multiplies each with a 36 bit key. |
857 | */ | 857 | */ |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: utf8.c,v 1.7 2017/05/31 09:15:42 deraadt Exp $ */ | 1 | /* $OpenBSD: utf8.c,v 1.8 2018/08/21 13:56:27 schwarze Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org> | 3 | * Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org> |
4 | * | 4 | * |
@@ -53,6 +53,8 @@ static int vasnmprintf(char **, size_t, int *, const char *, va_list); | |||
53 | * For state-dependent encodings, recovery is impossible. | 53 | * For state-dependent encodings, recovery is impossible. |
54 | * For arbitrary encodings, replacement of non-printable | 54 | * For arbitrary encodings, replacement of non-printable |
55 | * characters would be non-trivial and too fragile. | 55 | * characters would be non-trivial and too fragile. |
56 | * The comments indicate what nl_langinfo(CODESET) | ||
57 | * returns for US-ASCII on various operating systems. | ||
56 | */ | 58 | */ |
57 | 59 | ||
58 | static int | 60 | static int |
@@ -60,9 +62,12 @@ dangerous_locale(void) { | |||
60 | char *loc; | 62 | char *loc; |
61 | 63 | ||
62 | loc = nl_langinfo(CODESET); | 64 | loc = nl_langinfo(CODESET); |
63 | return strcmp(loc, "US-ASCII") != 0 && strcmp(loc, "UTF-8") != 0 && | 65 | return strcmp(loc, "UTF-8") != 0 && |
64 | strcmp(loc, "ANSI_X3.4-1968") != 0 && strcmp(loc, "646") != 0 && | 66 | strcmp(loc, "US-ASCII") != 0 && /* OpenBSD */ |
65 | strcmp(loc, "") != 0; | 67 | strcmp(loc, "ANSI_X3.4-1968") != 0 && /* Linux */ |
68 | strcmp(loc, "ISO8859-1") != 0 && /* AIX */ | ||
69 | strcmp(loc, "646") != 0 && /* Solaris, NetBSD */ | ||
70 | strcmp(loc, "") != 0; /* Solaris 6 */ | ||
66 | } | 71 | } |
67 | 72 | ||
68 | static int | 73 | static int |
@@ -1,6 +1,6 @@ | |||
1 | /* $OpenBSD: version.h,v 1.81 2018/03/24 19:29:03 markus Exp $ */ | 1 | /* $OpenBSD: version.h,v 1.82 2018/07/03 11:42:12 djm Exp $ */ |
2 | 2 | ||
3 | #define SSH_VERSION "OpenSSH_7.7" | 3 | #define SSH_VERSION "OpenSSH_7.8" |
4 | 4 | ||
5 | #define SSH_PORTABLE "p1" | 5 | #define SSH_PORTABLE "p1" |
6 | #define SSH_RELEASE SSH_VERSION SSH_PORTABLE | 6 | #define SSH_RELEASE SSH_VERSION SSH_PORTABLE |
diff --git a/xmss_wots.c b/xmss_wots.c index b4702ed8d..ed904cd75 100644 --- a/xmss_wots.c +++ b/xmss_wots.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: xmss_wots.c,v 1.2 2018/02/26 03:56:44 dtucker Exp $ */ | 1 | /* $OpenBSD: xmss_wots.c,v 1.3 2018/04/10 00:10:49 djm Exp $ */ |
2 | /* | 2 | /* |
3 | wots.c version 20160722 | 3 | wots.c version 20160722 |
4 | Andreas Hülsing | 4 | Andreas Hülsing |
@@ -65,7 +65,7 @@ static void expand_seed(unsigned char *outseeds, const unsigned char *inseed, co | |||
65 | * Computes the chaining function. | 65 | * Computes the chaining function. |
66 | * out and in have to be n-byte arrays | 66 | * out and in have to be n-byte arrays |
67 | * | 67 | * |
68 | * interpretes in as start-th value of the chain | 68 | * interprets in as start-th value of the chain |
69 | * addr has to contain the address of the chain | 69 | * addr has to contain the address of the chain |
70 | */ | 70 | */ |
71 | static void gen_chain(unsigned char *out, const unsigned char *in, unsigned int start, unsigned int steps, const wots_params *params, const unsigned char *pub_seed, uint32_t addr[8]) | 71 | static void gen_chain(unsigned char *out, const unsigned char *in, unsigned int start, unsigned int steps, const wots_params *params, const unsigned char *pub_seed, uint32_t addr[8]) |