From 5b8b17f7b47894ca0b523de1da1806161a52d061 Mon Sep 17 00:00:00 2001 From: bol-van Date: Thu, 23 Jul 2026 13:46:38 +0300 Subject: [PATCH] bundle --- .gitattributes | 4 + .github/lockdown.yml | 2 + arm64/WinDivert64.sys | Bin 0 -> 79808 bytes arm64/install_arm64.cmd | 47 + arm64/ip2net.exe | Bin 0 -> 23552 bytes arm64/mdig.exe | Bin 0 -> 122368 bytes blockcheck/blockcheck-kyber.cmd | 8 + blockcheck/blockcheck.cmd | 8 + blockcheck/blockcheck2-kyber.cmd | 8 + blockcheck/blockcheck2.cmd | 8 + blockcheck/zapret/blockcheck.sh | 2349 ++++ blockcheck/zapret/blog.sh | 8 + blockcheck/zapret/blog_kyber.sh | 6 + blockcheck/zapret/common/base.sh | 460 + blockcheck/zapret/common/dialog.sh | 57 + blockcheck/zapret/common/elevate.sh | 28 + blockcheck/zapret/common/fwtype.sh | 64 + blockcheck/zapret/common/virt.sh | 39 + .../zapret/files/fake/dht_find_node.bin | Bin 0 -> 98 bytes .../zapret/files/fake/dht_get_peers.bin | 2 + .../fake/discord-ip-discovery-with-port.bin | Bin 0 -> 74 bytes .../discord-ip-discovery-without-port.bin | Bin 0 -> 74 bytes .../files/fake/dtls_clienthello_w3_org.bin | Bin 0 -> 226 bytes .../zapret/files/fake/http_iana_org.bin | 9 + .../files/fake/isakmp_initiator_request.bin | Bin 0 -> 584 bytes .../files/fake/quic_initial_facebook_com.bin | Bin 0 -> 1200 bytes .../fake/quic_initial_facebook_com_quiche.bin | Bin 0 -> 1200 bytes ...xguxaxjvh-n8me_googlevideo_com_kyber_1.bin | Bin 0 -> 1230 bytes ...xguxaxjvh-n8me_googlevideo_com_kyber_2.bin | Bin 0 -> 1230 bytes ...2---sn-gvnuxaxjvh-o8ge_googlevideo_com.bin | Bin 0 -> 1200 bytes .../files/fake/quic_initial_rutracker_org.bin | Bin 0 -> 1200 bytes .../quic_initial_rutracker_org_kyber_1.bin | Bin 0 -> 1230 bytes .../quic_initial_rutracker_org_kyber_2.bin | Bin 0 -> 1230 bytes .../zapret/files/fake/quic_initial_vk_com.bin | Bin 0 -> 1357 bytes .../fake/quic_initial_www_google_com.bin | Bin 0 -> 1200 bytes .../zapret/files/fake/quic_short_header.bin | Bin 0 -> 620 bytes blockcheck/zapret/files/fake/stun.bin | Bin 0 -> 100 bytes .../fake/tls_clienthello_gosuslugi_ru.bin | Bin 0 -> 517 bytes .../files/fake/tls_clienthello_iana_org.bin | Bin 0 -> 517 bytes .../tls_clienthello_rutracker_org_kyber.bin | Bin 0 -> 1787 bytes .../fake/tls_clienthello_sberbank_ru.bin | Bin 0 -> 517 bytes .../files/fake/tls_clienthello_vk_com.bin | Bin 0 -> 517 bytes .../fake/tls_clienthello_vk_com_kyber.bin | Bin 0 -> 1812 bytes .../fake/tls_clienthello_www_google_com.bin | Bin 0 -> 681 bytes .../files/fake/wireguard_initiation.bin | Bin 0 -> 148 bytes .../zapret/files/fake/wireguard_response.bin | Bin 0 -> 92 bytes blockcheck/zapret/files/fake/zero_1024.bin | Bin 0 -> 1024 bytes blockcheck/zapret/files/fake/zero_256.bin | Bin 0 -> 256 bytes blockcheck/zapret/files/fake/zero_512.bin | Bin 0 -> 512 bytes blockcheck/zapret/ip2net/ip2net.exe | Bin 0 -> 92672 bytes blockcheck/zapret/mdig/mdig.exe | Bin 0 -> 130560 bytes blockcheck/zapret/nfq/WinDivert.dll | Bin 0 -> 47616 bytes blockcheck/zapret/nfq/WinDivert64.sys | Bin 0 -> 94144 bytes blockcheck/zapret/nfq/winws.exe | Bin 0 -> 223232 bytes .../zapret2/blockcheck2.d/custom/10-list.sh | 58 + .../zapret2/blockcheck2.d/custom/README.txt | 12 + .../blockcheck2.d/custom/list_http.txt | 5 + .../blockcheck2.d/custom/list_https_tls12.txt | 4 + .../blockcheck2.d/custom/list_https_tls13.txt | 5 + .../blockcheck2.d/custom/list_quic.txt | 4 + .../blockcheck2.d/standard/10-http-basic.sh | 12 + .../zapret2/blockcheck2.d/standard/15-misc.sh | 42 + .../zapret2/blockcheck2.d/standard/17-oob.sh | 39 + .../blockcheck2.d/standard/20-multi.sh | 74 + .../blockcheck2.d/standard/23-seqovl.sh | 92 + .../blockcheck2.d/standard/24-syndata.sh | 55 + .../zapret2/blockcheck2.d/standard/25-fake.sh | 153 + .../blockcheck2.d/standard/30-faked.sh | 108 + .../blockcheck2.d/standard/35-hostfake.sh | 104 + .../blockcheck2.d/standard/50-fake-multi.sh | 164 + .../blockcheck2.d/standard/55-fake-faked.sh | 165 + .../standard/60-fake-hostfake.sh | 117 + .../zapret2/blockcheck2.d/standard/90-quic.sh | 36 + .../zapret2/blockcheck2.d/standard/def.inc | 21 + blockcheck/zapret2/blockcheck2.sh | 1948 +++ blockcheck/zapret2/blog.sh | 8 + blockcheck/zapret2/blog_kyber.sh | 6 + blockcheck/zapret2/common/base.sh | 466 + blockcheck/zapret2/common/dialog.sh | 57 + blockcheck/zapret2/common/elevate.sh | 28 + blockcheck/zapret2/common/fwtype.sh | 64 + blockcheck/zapret2/common/virt.sh | 39 + blockcheck/zapret2/ip2net/ip2net.exe | Bin 0 -> 92672 bytes blockcheck/zapret2/lua/zapret-antidpi.lua | 1250 ++ blockcheck/zapret2/lua/zapret-auto.lua | 577 + blockcheck/zapret2/lua/zapret-lib.lua | 2713 ++++ blockcheck/zapret2/lua/zapret-obfs.lua | 487 + blockcheck/zapret2/lua/zapret-pcap.lua | 40 + blockcheck/zapret2/lua/zapret-tests.lua | 1160 ++ blockcheck/zapret2/mdig/mdig.exe | Bin 0 -> 130560 bytes blockcheck/zapret2/nfq2/WinDivert.dll | Bin 0 -> 47616 bytes blockcheck/zapret2/nfq2/WinDivert64.sys | Bin 0 -> 94144 bytes blockcheck/zapret2/nfq2/winws2.exe | Bin 0 -> 655360 bytes cygwin/bin/[.exe | Bin 0 -> 73747 bytes cygwin/bin/arch.exe | Bin 0 -> 36883 bytes cygwin/bin/awk | 3 + cygwin/bin/basename.exe | Bin 0 -> 36371 bytes cygwin/bin/bash.exe | Bin 0 -> 854035 bytes cygwin/bin/bunzip2.exe | Bin 0 -> 33299 bytes cygwin/bin/bzcat.exe | Bin 0 -> 33299 bytes cygwin/bin/bzgrep | 85 + cygwin/bin/bzip2.exe | Bin 0 -> 33299 bytes cygwin/bin/cat.exe | Bin 0 -> 39955 bytes cygwin/bin/chattr.exe | Bin 0 -> 15379 bytes cygwin/bin/chgrp.exe | Bin 0 -> 64019 bytes cygwin/bin/chmod.exe | Bin 0 -> 59411 bytes cygwin/bin/chown.exe | Bin 0 -> 66067 bytes cygwin/bin/chrt.exe | Bin 0 -> 28179 bytes cygwin/bin/clear.exe | Bin 0 -> 10752 bytes cygwin/bin/cmp.exe | Bin 0 -> 46611 bytes cygwin/bin/cp.exe | Bin 0 -> 132115 bytes cygwin/bin/cut.exe | Bin 0 -> 45075 bytes cygwin/bin/cygattr-1.dll | Bin 0 -> 16915 bytes cygwin/bin/cygbsd-0.dll | Bin 0 -> 69892 bytes cygwin/bin/cygbz2-1.dll | Bin 0 -> 67603 bytes cygwin/bin/cygcrypto-1.1.dll | Bin 0 -> 2546707 bytes cygwin/bin/cyggcc_s-seh-1.dll | Bin 0 -> 75283 bytes cygwin/bin/cyggmp-10.dll | Bin 0 -> 604691 bytes cygwin/bin/cygiconv-2.dll | Bin 0 -> 1088019 bytes cygwin/bin/cygintl-8.dll | Bin 0 -> 107027 bytes cygwin/bin/cyglz4-1.dll | Bin 0 -> 138771 bytes cygwin/bin/cyglzma-5.dll | Bin 0 -> 178195 bytes cygwin/bin/cygmagic-1.dll | Bin 0 -> 163859 bytes cygwin/bin/cygmd-0.dll | Bin 0 -> 40979 bytes cygwin/bin/cygmpfr-6.dll | Bin 0 -> 665619 bytes cygwin/bin/cygncursesw-10.dll | Bin 0 -> 344595 bytes cygwin/bin/cygpath.exe | Bin 0 -> 26131 bytes cygwin/bin/cygpcre-1.dll | Bin 0 -> 508947 bytes cygwin/bin/cygpcre2-8-0.dll | Bin 0 -> 634387 bytes cygwin/bin/cygpopt-0.dll | Bin 0 -> 43027 bytes cygwin/bin/cygproc2-0.dll | Bin 0 -> 140819 bytes cygwin/bin/cygreadline7.dll | Bin 0 -> 262675 bytes cygwin/bin/cygssl-1.1.dll | Bin 0 -> 523795 bytes cygwin/bin/cygstart.exe | Bin 0 -> 22035 bytes cygwin/bin/cygtls-26.dll | Bin 0 -> 59923 bytes cygwin/bin/cygwin-console-helper.exe | Bin 0 -> 41491 bytes cygwin/bin/cygwin1.dll | Bin 0 -> 2954293 bytes cygwin/bin/cygz.dll | Bin 0 -> 89619 bytes cygwin/bin/cygzstd-1.dll | Bin 0 -> 665107 bytes cygwin/bin/date.exe | Bin 0 -> 120851 bytes cygwin/bin/dircolors.exe | Bin 0 -> 59923 bytes cygwin/bin/dirname.exe | Bin 0 -> 35347 bytes cygwin/bin/dos2unix.exe | Bin 0 -> 53267 bytes cygwin/bin/echo.exe | Bin 0 -> 36883 bytes cygwin/bin/egrep | 4 + cygwin/bin/env.exe | Bin 0 -> 44563 bytes cygwin/bin/expr.exe | Bin 0 -> 112659 bytes cygwin/bin/false.exe | Bin 0 -> 34323 bytes cygwin/bin/fgrep | 4 + cygwin/bin/find.exe | Bin 0 -> 269331 bytes cygwin/bin/fmt.exe | Bin 0 -> 44563 bytes cygwin/bin/fold.exe | Bin 0 -> 39443 bytes cygwin/bin/gawk.exe | Bin 0 -> 689683 bytes cygwin/bin/getconf.exe | Bin 0 -> 27155 bytes cygwin/bin/getopt.exe | Bin 0 -> 15891 bytes cygwin/bin/grep.exe | Bin 0 -> 227859 bytes cygwin/bin/gunzip | 57 + cygwin/bin/gzip.exe | Bin 0 -> 106515 bytes cygwin/bin/head.exe | Bin 0 -> 45587 bytes cygwin/bin/hexdump.exe | Bin 0 -> 49171 bytes cygwin/bin/hostname.exe | Bin 0 -> 13843 bytes cygwin/bin/id.exe | Bin 0 -> 44051 bytes cygwin/bin/install.exe | Bin 0 -> 139283 bytes cygwin/bin/kill.exe | Bin 0 -> 13843 bytes cygwin/bin/killall.exe | Bin 0 -> 24083 bytes cygwin/bin/ldd.exe | Bin 0 -> 17427 bytes cygwin/bin/ldh.exe | Bin 0 -> 17427 bytes cygwin/bin/link.exe | Bin 0 -> 34835 bytes cygwin/bin/ln.exe | Bin 0 -> 66067 bytes cygwin/bin/look.exe | Bin 0 -> 14355 bytes cygwin/bin/ls.exe | Bin 0 -> 150547 bytes cygwin/bin/md5sum.exe | Bin 0 -> 47635 bytes cygwin/bin/mkdir.exe | Bin 0 -> 72723 bytes cygwin/bin/more.exe | Bin 0 -> 36371 bytes cygwin/bin/mount.exe | Bin 0 -> 17939 bytes cygwin/bin/mv.exe | Bin 0 -> 140819 bytes cygwin/bin/nano.exe | Bin 0 -> 323603 bytes cygwin/bin/nc.exe | Bin 0 -> 42003 bytes cygwin/bin/nice.exe | Bin 0 -> 38419 bytes cygwin/bin/nl.exe | Bin 0 -> 107027 bytes cygwin/bin/pgrep.exe | Bin 0 -> 29715 bytes cygwin/bin/pidof.exe | Bin 0 -> 15891 bytes cygwin/bin/pkill.exe | Bin 0 -> 29715 bytes cygwin/bin/printenv.exe | Bin 0 -> 34835 bytes cygwin/bin/printf.exe | Bin 0 -> 75795 bytes cygwin/bin/ps.exe | Bin 0 -> 14867 bytes cygwin/bin/pwd.exe | Bin 0 -> 37395 bytes cygwin/bin/readlink.exe | Bin 0 -> 47123 bytes cygwin/bin/realpath.exe | Bin 0 -> 48147 bytes cygwin/bin/renice.exe | Bin 0 -> 12819 bytes cygwin/bin/rm.exe | Bin 0 -> 65555 bytes cygwin/bin/rmdir.exe | Bin 0 -> 65043 bytes cygwin/bin/sed.exe | Bin 0 -> 176659 bytes cygwin/bin/seq.exe | Bin 0 -> 73747 bytes cygwin/bin/sh.exe | Bin 0 -> 105472 bytes cygwin/bin/sha1sum.exe | Bin 0 -> 50707 bytes cygwin/bin/sha224sum.exe | Bin 0 -> 57363 bytes cygwin/bin/sha256sum.exe | Bin 0 -> 57363 bytes cygwin/bin/sha384sum.exe | Bin 0 -> 63507 bytes cygwin/bin/sha512sum.exe | Bin 0 -> 63507 bytes cygwin/bin/sleep.exe | Bin 0 -> 39955 bytes cygwin/bin/sort.exe | Bin 0 -> 109075 bytes cygwin/bin/stat.exe | Bin 0 -> 98323 bytes cygwin/bin/sync.exe | Bin 0 -> 35347 bytes cygwin/bin/tac.exe | Bin 0 -> 103955 bytes cygwin/bin/tail.exe | Bin 0 -> 61459 bytes cygwin/bin/tar.exe | Bin 0 -> 501267 bytes cygwin/bin/tee.exe | Bin 0 -> 38931 bytes cygwin/bin/test.exe | Bin 0 -> 71187 bytes cygwin/bin/timeout.exe | Bin 0 -> 44563 bytes cygwin/bin/touch.exe | Bin 0 -> 108051 bytes cygwin/bin/tr.exe | Bin 0 -> 51219 bytes cygwin/bin/true.exe | Bin 0 -> 34323 bytes cygwin/bin/truncate.exe | Bin 0 -> 40979 bytes cygwin/bin/tset.exe | Bin 0 -> 21504 bytes cygwin/bin/tty.exe | Bin 0 -> 34323 bytes cygwin/bin/ul.exe | Bin 0 -> 17939 bytes cygwin/bin/umount.exe | Bin 0 -> 11283 bytes cygwin/bin/uname.exe | Bin 0 -> 36883 bytes cygwin/bin/uniq.exe | Bin 0 -> 45587 bytes cygwin/bin/unix2dos.exe | Bin 0 -> 53267 bytes cygwin/bin/unzip.exe | Bin 0 -> 177171 bytes cygwin/bin/wc.exe | Bin 0 -> 48659 bytes cygwin/bin/which.exe | Bin 0 -> 25619 bytes cygwin/bin/xargs.exe | Bin 0 -> 68115 bytes cygwin/bin/xz.exe | Bin 0 -> 75283 bytes cygwin/bin/yes.exe | Bin 0 -> 35347 bytes cygwin/bin/zcat | 51 + cygwin/bin/zgrep | 285 + cygwin/bin/zip.exe | Bin 0 -> 204819 bytes cygwin/bin/zstd.exe | Bin 0 -> 828435 bytes cygwin/cygwin-admin.cmd | 3 + cygwin/cygwin.cmd | 3 + cygwin/dev/mqueue/.gitkeep | 0 cygwin/dev/shm/.gitkeep | 0 cygwin/etc/DIR_COLORS | 223 + cygwin/etc/bash.bash_logout | 23 + cygwin/etc/bash.bashrc | 63 + cygwin/etc/defaults/etc/DIR_COLORS | 223 + cygwin/etc/defaults/etc/bash.bash_logout | 23 + cygwin/etc/defaults/etc/bash.bashrc | 33 + cygwin/etc/defaults/etc/cygserver.conf | 147 + cygwin/etc/defaults/etc/man_db.conf | 132 + .../defaults/etc/pki/ca-trust/ca-legacy.conf | 24 + .../etc/defaults/etc/pki/tls/ct_log_list.cnf | 9 + cygwin/etc/defaults/etc/pki/tls/openssl.cnf | 368 + cygwin/etc/defaults/etc/profile | 163 + cygwin/etc/defaults/etc/shells | 18 + cygwin/etc/defaults/etc/skel/.bash_profile | 44 + cygwin/etc/defaults/etc/skel/.bashrc | 186 + cygwin/etc/defaults/etc/skel/.inputrc | 74 + cygwin/etc/defaults/etc/skel/.profile | 37 + cygwin/etc/fstab | 0 cygwin/etc/pki/tls/certs/ca-bundle.crt | 10918 ++++++++++++++++ cygwin/etc/pki/tls/openssl.cnf | 368 + cygwin/etc/profile | 163 + cygwin/etc/profile.d/gawk.csh | 11 + cygwin/etc/profile.d/gawk.sh | 31 + cygwin/etc/shells | 18 + cygwin/etc/skel/.bash_profile | 44 + cygwin/etc/skel/.bashrc | 186 + cygwin/etc/skel/.inputrc | 74 + cygwin/etc/skel/.profile | 37 + cygwin/home/.gitkeep | 0 cygwin/lib/charset.alias | 4 + cygwin/lib/gawk/.gitkeep | 0 cygwin/sbin/.gitkeep | 0 cygwin/tmp/.gitkeep | 0 cygwin/usr/libexec/awk/grcat.exe | Bin 0 -> 9235 bytes cygwin/usr/libexec/awk/pwcat.exe | Bin 0 -> 9235 bytes cygwin/usr/libexec/coreutils/libstdbuf.so | Bin 0 -> 9235 bytes cygwin/usr/local/bin/curl-kyber.exe | Bin 0 -> 7211008 bytes cygwin/usr/local/bin/curl.exe | Bin 0 -> 261632 bytes cygwin/usr/local/bin/cygcrypto-3.dll | Bin 0 -> 5220864 bytes cygwin/usr/local/bin/cygcurl-4.dll | Bin 0 -> 698880 bytes cygwin/usr/local/bin/cygidn2-0.dll | Bin 0 -> 339456 bytes cygwin/usr/local/bin/cygnghttp2-14.dll | Bin 0 -> 173056 bytes cygwin/usr/local/bin/cygnghttp3-9.dll | Bin 0 -> 151040 bytes cygwin/usr/local/bin/cygssl-3.dll | Bin 0 -> 1001472 bytes cygwin/usr/local/bin/idn2.exe | Bin 0 -> 190005 bytes cygwin/usr/local/etc/.gitkeep | 0 cygwin/usr/local/lib/.gitkeep | 0 cygwin/usr/sbin/.gitkeep | 0 cygwin/usr/share/awk/.gitkeep | 0 .../share/bash-completion/completions/getopt | 37 + .../share/bash-completion/completions/more | 30 + .../share/bash-completion/completions/renice | 41 + .../usr/share/bash-completion/completions/ul | 33 + cygwin/usr/share/cygwin/cygwin.ldif | 253 + cygwin/usr/share/locale/.gitkeep | 0 cygwin/usr/share/tabset/std | 1 + cygwin/usr/share/tabset/stdcrt | 1 + cygwin/usr/share/tabset/vt100 | 3 + cygwin/usr/share/tabset/vt300 | 3 + cygwin/usr/share/terminfo/45/Eterm | Bin 0 -> 2224 bytes cygwin/usr/share/terminfo/45/Eterm-256color | Bin 0 -> 2464 bytes cygwin/usr/share/terminfo/45/Eterm-88color | Bin 0 -> 2394 bytes cygwin/usr/share/terminfo/45/Eterm-color | Bin 0 -> 22 bytes cygwin/usr/share/terminfo/61/ansi | Bin 0 -> 1481 bytes cygwin/usr/share/terminfo/61/aterm | Bin 0 -> 2192 bytes cygwin/usr/share/terminfo/62/bracketed+paste | Bin 0 -> 120 bytes cygwin/usr/share/terminfo/62/bterm | Bin 0 -> 1155 bytes cygwin/usr/share/terminfo/63/cons25 | Bin 0 -> 1502 bytes cygwin/usr/share/terminfo/63/cygwin | Bin 0 -> 1518 bytes cygwin/usr/share/terminfo/63/cygwinB19 | Bin 0 -> 1625 bytes cygwin/usr/share/terminfo/63/cygwinDBG | Bin 0 -> 1530 bytes cygwin/usr/share/terminfo/64/dumb | Bin 0 -> 308 bytes cygwin/usr/share/terminfo/64/dumb-emacs-ansi | Bin 0 -> 898 bytes cygwin/usr/share/terminfo/65/eterm | Bin 0 -> 908 bytes cygwin/usr/share/terminfo/65/eterm-color | Bin 0 -> 1271 bytes cygwin/usr/share/terminfo/67/gnome | Bin 0 -> 3029 bytes cygwin/usr/share/terminfo/67/gnome-256color | Bin 0 -> 3299 bytes cygwin/usr/share/terminfo/68/hurd | Bin 0 -> 1587 bytes cygwin/usr/share/terminfo/6a/jfbterm | Bin 0 -> 1620 bytes cygwin/usr/share/terminfo/6b/konsole | Bin 0 -> 3339 bytes cygwin/usr/share/terminfo/6b/konsole-16color | Bin 0 -> 3625 bytes cygwin/usr/share/terminfo/6b/konsole-256color | Bin 0 -> 3507 bytes cygwin/usr/share/terminfo/6c/linux | Bin 0 -> 1740 bytes cygwin/usr/share/terminfo/6d/mach | Bin 0 -> 635 bytes cygwin/usr/share/terminfo/6d/mach-bold | Bin 0 -> 669 bytes cygwin/usr/share/terminfo/6d/mach-color | Bin 0 -> 1113 bytes cygwin/usr/share/terminfo/6d/mach-gnu | Bin 0 -> 1073 bytes cygwin/usr/share/terminfo/6d/mach-gnu-color | Bin 0 -> 1339 bytes cygwin/usr/share/terminfo/6d/mintty | Bin 0 -> 4022 bytes cygwin/usr/share/terminfo/6d/mintty+common | Bin 0 -> 3926 bytes cygwin/usr/share/terminfo/6d/mintty-direct | Bin 0 -> 4048 bytes cygwin/usr/share/terminfo/6d/mlterm | Bin 0 -> 3265 bytes cygwin/usr/share/terminfo/6d/mrxvt | Bin 0 -> 3044 bytes cygwin/usr/share/terminfo/6d/mrxvt-256color | Bin 0 -> 3306 bytes cygwin/usr/share/terminfo/6e/nsterm | Bin 0 -> 1988 bytes cygwin/usr/share/terminfo/70/pcansi | Bin 0 -> 1198 bytes cygwin/usr/share/terminfo/70/putty | Bin 0 -> 2530 bytes cygwin/usr/share/terminfo/70/putty-256color | Bin 0 -> 2608 bytes cygwin/usr/share/terminfo/70/putty-m1 | Bin 0 -> 1895 bytes cygwin/usr/share/terminfo/70/putty-m1b | Bin 0 -> 1837 bytes cygwin/usr/share/terminfo/70/putty-m2 | Bin 0 -> 1955 bytes cygwin/usr/share/terminfo/70/putty-noapp | Bin 0 -> 2548 bytes cygwin/usr/share/terminfo/70/putty-sco | Bin 0 -> 2606 bytes cygwin/usr/share/terminfo/70/putty-screen | Bin 0 -> 2600 bytes cygwin/usr/share/terminfo/70/putty-vt100 | Bin 0 -> 2510 bytes cygwin/usr/share/terminfo/72/rxvt | Bin 0 -> 2234 bytes cygwin/usr/share/terminfo/72/rxvt+pcfkeys | Bin 0 -> 1194 bytes cygwin/usr/share/terminfo/72/rxvt-16color | Bin 0 -> 2494 bytes cygwin/usr/share/terminfo/72/rxvt-256color | Bin 0 -> 2460 bytes cygwin/usr/share/terminfo/72/rxvt-88color | Bin 0 -> 2428 bytes cygwin/usr/share/terminfo/72/rxvt-basic | Bin 0 -> 2137 bytes cygwin/usr/share/terminfo/72/rxvt-color | Bin 0 -> 21 bytes cygwin/usr/share/terminfo/72/rxvt-cygwin | Bin 0 -> 2248 bytes .../usr/share/terminfo/72/rxvt-cygwin-native | Bin 0 -> 2266 bytes cygwin/usr/share/terminfo/72/rxvt-unicode | Bin 0 -> 2208 bytes .../share/terminfo/72/rxvt-unicode-256color | Bin 0 -> 2234 bytes cygwin/usr/share/terminfo/72/rxvt-xpm | Bin 0 -> 2234 bytes cygwin/usr/share/terminfo/73/screen | Bin 0 -> 1607 bytes cygwin/usr/share/terminfo/73/screen-16color | Bin 0 -> 1877 bytes cygwin/usr/share/terminfo/73/screen-256color | Bin 0 -> 1747 bytes cygwin/usr/share/terminfo/73/screen.Eterm | Bin 0 -> 2255 bytes cygwin/usr/share/terminfo/73/screen.gnome | Bin 0 -> 3146 bytes cygwin/usr/share/terminfo/73/screen.konsole | Bin 0 -> 3319 bytes .../share/terminfo/73/screen.konsole-256color | Bin 0 -> 3477 bytes cygwin/usr/share/terminfo/73/screen.linux | Bin 0 -> 1754 bytes cygwin/usr/share/terminfo/73/screen.linux-m1 | Bin 0 -> 1971 bytes cygwin/usr/share/terminfo/73/screen.linux-m1b | Bin 0 -> 1941 bytes cygwin/usr/share/terminfo/73/screen.linux-m2 | Bin 0 -> 1913 bytes cygwin/usr/share/terminfo/73/screen.linux-s | Bin 0 -> 29 bytes cygwin/usr/share/terminfo/73/screen.minitel1 | Bin 0 -> 1674 bytes .../usr/share/terminfo/73/screen.minitel1-nb | Bin 0 -> 1656 bytes .../usr/share/terminfo/73/screen.minitel12-80 | Bin 0 -> 36 bytes cygwin/usr/share/terminfo/73/screen.minitel1b | Bin 0 -> 1736 bytes .../usr/share/terminfo/73/screen.minitel1b-80 | Bin 0 -> 1758 bytes .../usr/share/terminfo/73/screen.minitel1b-nb | Bin 0 -> 1720 bytes .../usr/share/terminfo/73/screen.minitel2-80 | Bin 0 -> 36 bytes cygwin/usr/share/terminfo/73/screen.mlterm | Bin 0 -> 3221 bytes .../share/terminfo/73/screen.mlterm-256color | Bin 0 -> 3391 bytes cygwin/usr/share/terminfo/73/screen.mrxvt | Bin 0 -> 3125 bytes cygwin/usr/share/terminfo/73/screen.putty | Bin 0 -> 2498 bytes .../share/terminfo/73/screen.putty-256color | Bin 0 -> 2590 bytes cygwin/usr/share/terminfo/73/screen.putty-m1 | Bin 0 -> 1765 bytes cygwin/usr/share/terminfo/73/screen.putty-m1b | Bin 0 -> 1737 bytes cygwin/usr/share/terminfo/73/screen.putty-m2 | Bin 0 -> 1709 bytes cygwin/usr/share/terminfo/73/screen.rxvt | Bin 0 -> 2251 bytes cygwin/usr/share/terminfo/73/screen.teraterm | Bin 0 -> 1700 bytes cygwin/usr/share/terminfo/73/screen.vte | Bin 0 -> 3508 bytes .../usr/share/terminfo/73/screen.vte-256color | Bin 0 -> 3660 bytes .../share/terminfo/73/screen.xterm-256color | Bin 0 -> 3681 bytes cygwin/usr/share/terminfo/73/screen.xterm-new | Bin 0 -> 37 bytes cygwin/usr/share/terminfo/73/screen.xterm-r6 | Bin 0 -> 1607 bytes .../share/terminfo/73/screen.xterm-xfree86 | Bin 0 -> 3783 bytes cygwin/usr/share/terminfo/73/st | Bin 0 -> 2639 bytes cygwin/usr/share/terminfo/73/st-0.6 | Bin 0 -> 2412 bytes cygwin/usr/share/terminfo/73/st-0.7 | Bin 0 -> 2731 bytes cygwin/usr/share/terminfo/73/st-0.8 | Bin 0 -> 2637 bytes cygwin/usr/share/terminfo/73/st-16color | Bin 0 -> 2799 bytes cygwin/usr/share/terminfo/73/st-256color | Bin 0 -> 2759 bytes cygwin/usr/share/terminfo/73/st-direct | Bin 0 -> 2705 bytes cygwin/usr/share/terminfo/73/sun | Bin 0 -> 1004 bytes cygwin/usr/share/terminfo/74/tek4014 | Bin 0 -> 212 bytes cygwin/usr/share/terminfo/74/tek4014-sm | Bin 0 -> 228 bytes cygwin/usr/share/terminfo/74/teraterm | Bin 0 -> 1683 bytes .../usr/share/terminfo/74/teraterm-256color | Bin 0 -> 1853 bytes cygwin/usr/share/terminfo/74/teraterm2.3 | Bin 0 -> 1596 bytes cygwin/usr/share/terminfo/74/teraterm4.59 | Bin 0 -> 1588 bytes cygwin/usr/share/terminfo/74/teraterm4.97 | Bin 0 -> 1695 bytes cygwin/usr/share/terminfo/74/tmux | Bin 0 -> 3316 bytes cygwin/usr/share/terminfo/74/tmux-256color | Bin 0 -> 3458 bytes cygwin/usr/share/terminfo/74/tmux-direct | Bin 0 -> 3596 bytes cygwin/usr/share/terminfo/76/vt100 | Bin 0 -> 1282 bytes cygwin/usr/share/terminfo/76/vt100-nav | Bin 0 -> 1147 bytes cygwin/usr/share/terminfo/76/vt102 | Bin 0 -> 1276 bytes cygwin/usr/share/terminfo/76/vt220 | Bin 0 -> 1391 bytes cygwin/usr/share/terminfo/76/vt320 | Bin 0 -> 1538 bytes cygwin/usr/share/terminfo/76/vt420 | Bin 0 -> 1689 bytes cygwin/usr/share/terminfo/76/vt52 | Bin 0 -> 839 bytes cygwin/usr/share/terminfo/76/vt520 | Bin 0 -> 1723 bytes cygwin/usr/share/terminfo/76/vte | Bin 0 -> 3534 bytes cygwin/usr/share/terminfo/76/vte-256color | Bin 0 -> 3784 bytes cygwin/usr/share/terminfo/76/vwmterm | Bin 0 -> 1304 bytes cygwin/usr/share/terminfo/77/wsvt25 | Bin 0 -> 1597 bytes cygwin/usr/share/terminfo/77/wsvt25m | Bin 0 -> 1607 bytes cygwin/usr/share/terminfo/78/xfce | Bin 0 -> 2995 bytes cygwin/usr/share/terminfo/78/xterm | Bin 0 -> 3977 bytes cygwin/usr/share/terminfo/78/xterm-1002 | Bin 0 -> 3980 bytes cygwin/usr/share/terminfo/78/xterm-1003 | Bin 0 -> 3978 bytes cygwin/usr/share/terminfo/78/xterm-1005 | Bin 0 -> 3971 bytes cygwin/usr/share/terminfo/78/xterm-1006 | Bin 0 -> 3957 bytes cygwin/usr/share/terminfo/78/xterm-16color | Bin 0 -> 4217 bytes cygwin/usr/share/terminfo/78/xterm-24 | Bin 0 -> 1533 bytes cygwin/usr/share/terminfo/78/xterm-256color | Bin 0 -> 4071 bytes cygwin/usr/share/terminfo/78/xterm-88color | Bin 0 -> 4039 bytes cygwin/usr/share/terminfo/78/xterm-8bit | Bin 0 -> 1913 bytes cygwin/usr/share/terminfo/78/xterm-basic | Bin 0 -> 1828 bytes cygwin/usr/share/terminfo/78/xterm-bold | Bin 0 -> 1592 bytes cygwin/usr/share/terminfo/78/xterm-color | Bin 0 -> 1551 bytes cygwin/usr/share/terminfo/78/xterm-direct | Bin 0 -> 4028 bytes cygwin/usr/share/terminfo/78/xterm-direct16 | Bin 0 -> 4104 bytes cygwin/usr/share/terminfo/78/xterm-direct2 | Bin 0 -> 4018 bytes cygwin/usr/share/terminfo/78/xterm-direct256 | Bin 0 -> 4158 bytes cygwin/usr/share/terminfo/78/xterm-hp | Bin 0 -> 2652 bytes cygwin/usr/share/terminfo/78/xterm-mono | Bin 0 -> 1489 bytes cygwin/usr/share/terminfo/78/xterm-new | Bin 0 -> 3971 bytes cygwin/usr/share/terminfo/78/xterm-nic | Bin 0 -> 3987 bytes cygwin/usr/share/terminfo/78/xterm-noapp | Bin 0 -> 3933 bytes cygwin/usr/share/terminfo/78/xterm-old | Bin 0 -> 1493 bytes cygwin/usr/share/terminfo/78/xterm-p370 | Bin 0 -> 3957 bytes cygwin/usr/share/terminfo/78/xterm-p371 | Bin 0 -> 3991 bytes cygwin/usr/share/terminfo/78/xterm-pcolor | Bin 0 -> 1658 bytes cygwin/usr/share/terminfo/78/xterm-r5 | Bin 0 -> 1301 bytes cygwin/usr/share/terminfo/78/xterm-r6 | Bin 0 -> 1491 bytes cygwin/usr/share/terminfo/78/xterm-sco | Bin 0 -> 2620 bytes cygwin/usr/share/terminfo/78/xterm-sun | Bin 0 -> 2784 bytes cygwin/usr/share/terminfo/78/xterm-utf8 | Bin 0 -> 3994 bytes cygwin/usr/share/terminfo/78/xterm-vt220 | Bin 0 -> 2476 bytes cygwin/usr/share/terminfo/78/xterm-vt52 | Bin 0 -> 537 bytes cygwin/usr/share/terminfo/78/xterm-x10mouse | Bin 0 -> 3953 bytes cygwin/usr/share/terminfo/78/xterm-x11hilite | Bin 0 -> 3981 bytes cygwin/usr/share/terminfo/78/xterm-x11mouse | Bin 0 -> 3965 bytes cygwin/usr/share/terminfo/78/xterm-xf86-v32 | Bin 0 -> 2006 bytes cygwin/usr/share/terminfo/78/xterm-xf86-v33 | Bin 0 -> 1996 bytes cygwin/usr/share/terminfo/78/xterm-xf86-v333 | Bin 0 -> 2006 bytes cygwin/usr/share/terminfo/78/xterm-xf86-v40 | Bin 0 -> 2212 bytes cygwin/usr/share/terminfo/78/xterm-xf86-v43 | Bin 0 -> 2226 bytes cygwin/usr/share/terminfo/78/xterm-xf86-v44 | Bin 0 -> 2260 bytes cygwin/usr/share/terminfo/78/xterm-xfree86 | Bin 0 -> 2240 bytes cygwin/usr/share/terminfo/78/xterm-xi | Bin 0 -> 1986 bytes cygwin/var/cache/.gitkeep | 0 cygwin/var/lib/.gitkeep | 0 cygwin/var/log/.gitkeep | 0 cygwin/var/run/.gitkeep | 0 cygwin/var/tmp/.gitkeep | 0 readme.md | 94 + tools/elevator.exe | Bin 0 -> 4096 bytes win7/WinDivert.dll | Bin 0 -> 47104 bytes win7/WinDivert64.sys | Bin 0 -> 90456 bytes win7/install_win7.cmd | 41 + windivert-hide/Monkey64.sys | Bin 0 -> 94144 bytes windivert-hide/README.txt | 19 + windivert-hide/WinDivert.dll | Bin 0 -> 45568 bytes windivert-hide/monkey_delete.cmd | 21 + zapret-winws/WinDivert.dll | Bin 0 -> 47616 bytes zapret-winws/WinDivert64.sys | Bin 0 -> 94144 bytes zapret-winws/_CMD_ADMIN.cmd | 3 + zapret-winws/cygwin1.dll | Bin 0 -> 2954293 bytes zapret-winws/elevator.exe | Bin 0 -> 4096 bytes zapret-winws/enable_timestamps.cmd | 14 + zapret-winws/files/list-youtube.txt | 14 + .../files/quic_initial_www_google_com.bin | Bin 0 -> 1200 bytes zapret-winws/killall.exe | Bin 0 -> 20992 bytes zapret-winws/lua/zapret-antidpi.lua | 1250 ++ zapret-winws/lua/zapret-auto.lua | 577 + zapret-winws/lua/zapret-lib.lua | 2713 ++++ zapret-winws/lua/zapret-obfs.lua | 487 + zapret-winws/lua/zapret-pcap.lua | 40 + zapret-winws/lua/zapret-tests.lua | 1160 ++ zapret-winws/preset1_example.cmd | 11 + zapret-winws/preset2_example.cmd | 38 + zapret-winws/preset2_wireguard.cmd | 10 + zapret-winws/service1_create.cmd | 30 + zapret-winws/service2_create.cmd | 58 + zapret-winws/service_create.cmd | 30 + zapret-winws/service_del.cmd | 7 + zapret-winws/service_start.cmd | 2 + zapret-winws/service_stop.cmd | 2 + zapret-winws/windivert.filter/README.txt | 14 + .../windivert.filter/windivert_part.dht.txt | 1 + .../windivert_part.discord_media.txt | 20 + .../windivert_part.quic_initial_ietf.txt | 4 + .../windivert.filter/windivert_part.stun.txt | 3 + .../windivert_part.wireguard.txt | 3 + zapret-winws/windivert_delete.cmd | 21 + zapret-winws/winws.exe | Bin 0 -> 223232 bytes zapret-winws/winws2.exe | Bin 0 -> 655360 bytes 510 files changed, 34448 insertions(+) create mode 100644 .gitattributes create mode 100644 .github/lockdown.yml create mode 100644 arm64/WinDivert64.sys create mode 100644 arm64/install_arm64.cmd create mode 100644 arm64/ip2net.exe create mode 100644 arm64/mdig.exe create mode 100644 blockcheck/blockcheck-kyber.cmd create mode 100644 blockcheck/blockcheck.cmd create mode 100644 blockcheck/blockcheck2-kyber.cmd create mode 100644 blockcheck/blockcheck2.cmd create mode 100644 blockcheck/zapret/blockcheck.sh create mode 100644 blockcheck/zapret/blog.sh create mode 100644 blockcheck/zapret/blog_kyber.sh create mode 100644 blockcheck/zapret/common/base.sh create mode 100644 blockcheck/zapret/common/dialog.sh create mode 100644 blockcheck/zapret/common/elevate.sh create mode 100644 blockcheck/zapret/common/fwtype.sh create mode 100644 blockcheck/zapret/common/virt.sh create mode 100644 blockcheck/zapret/files/fake/dht_find_node.bin create mode 100644 blockcheck/zapret/files/fake/dht_get_peers.bin create mode 100644 blockcheck/zapret/files/fake/discord-ip-discovery-with-port.bin create mode 100644 blockcheck/zapret/files/fake/discord-ip-discovery-without-port.bin create mode 100644 blockcheck/zapret/files/fake/dtls_clienthello_w3_org.bin create mode 100644 blockcheck/zapret/files/fake/http_iana_org.bin create mode 100644 blockcheck/zapret/files/fake/isakmp_initiator_request.bin create mode 100644 blockcheck/zapret/files/fake/quic_initial_facebook_com.bin create mode 100644 blockcheck/zapret/files/fake/quic_initial_facebook_com_quiche.bin create mode 100644 blockcheck/zapret/files/fake/quic_initial_rr1---sn-xguxaxjvh-n8me_googlevideo_com_kyber_1.bin create mode 100644 blockcheck/zapret/files/fake/quic_initial_rr1---sn-xguxaxjvh-n8me_googlevideo_com_kyber_2.bin create mode 100644 blockcheck/zapret/files/fake/quic_initial_rr2---sn-gvnuxaxjvh-o8ge_googlevideo_com.bin create mode 100644 blockcheck/zapret/files/fake/quic_initial_rutracker_org.bin create mode 100644 blockcheck/zapret/files/fake/quic_initial_rutracker_org_kyber_1.bin create mode 100644 blockcheck/zapret/files/fake/quic_initial_rutracker_org_kyber_2.bin create mode 100644 blockcheck/zapret/files/fake/quic_initial_vk_com.bin create mode 100644 blockcheck/zapret/files/fake/quic_initial_www_google_com.bin create mode 100644 blockcheck/zapret/files/fake/quic_short_header.bin create mode 100644 blockcheck/zapret/files/fake/stun.bin create mode 100644 blockcheck/zapret/files/fake/tls_clienthello_gosuslugi_ru.bin create mode 100644 blockcheck/zapret/files/fake/tls_clienthello_iana_org.bin create mode 100644 blockcheck/zapret/files/fake/tls_clienthello_rutracker_org_kyber.bin create mode 100644 blockcheck/zapret/files/fake/tls_clienthello_sberbank_ru.bin create mode 100644 blockcheck/zapret/files/fake/tls_clienthello_vk_com.bin create mode 100644 blockcheck/zapret/files/fake/tls_clienthello_vk_com_kyber.bin create mode 100644 blockcheck/zapret/files/fake/tls_clienthello_www_google_com.bin create mode 100644 blockcheck/zapret/files/fake/wireguard_initiation.bin create mode 100644 blockcheck/zapret/files/fake/wireguard_response.bin create mode 100644 blockcheck/zapret/files/fake/zero_1024.bin create mode 100644 blockcheck/zapret/files/fake/zero_256.bin create mode 100644 blockcheck/zapret/files/fake/zero_512.bin create mode 100644 blockcheck/zapret/ip2net/ip2net.exe create mode 100644 blockcheck/zapret/mdig/mdig.exe create mode 100644 blockcheck/zapret/nfq/WinDivert.dll create mode 100644 blockcheck/zapret/nfq/WinDivert64.sys create mode 100644 blockcheck/zapret/nfq/winws.exe create mode 100644 blockcheck/zapret2/blockcheck2.d/custom/10-list.sh create mode 100644 blockcheck/zapret2/blockcheck2.d/custom/README.txt create mode 100644 blockcheck/zapret2/blockcheck2.d/custom/list_http.txt create mode 100644 blockcheck/zapret2/blockcheck2.d/custom/list_https_tls12.txt create mode 100644 blockcheck/zapret2/blockcheck2.d/custom/list_https_tls13.txt create mode 100644 blockcheck/zapret2/blockcheck2.d/custom/list_quic.txt create mode 100644 blockcheck/zapret2/blockcheck2.d/standard/10-http-basic.sh create mode 100644 blockcheck/zapret2/blockcheck2.d/standard/15-misc.sh create mode 100644 blockcheck/zapret2/blockcheck2.d/standard/17-oob.sh create mode 100644 blockcheck/zapret2/blockcheck2.d/standard/20-multi.sh create mode 100644 blockcheck/zapret2/blockcheck2.d/standard/23-seqovl.sh create mode 100644 blockcheck/zapret2/blockcheck2.d/standard/24-syndata.sh create mode 100644 blockcheck/zapret2/blockcheck2.d/standard/25-fake.sh create mode 100644 blockcheck/zapret2/blockcheck2.d/standard/30-faked.sh create mode 100644 blockcheck/zapret2/blockcheck2.d/standard/35-hostfake.sh create mode 100644 blockcheck/zapret2/blockcheck2.d/standard/50-fake-multi.sh create mode 100644 blockcheck/zapret2/blockcheck2.d/standard/55-fake-faked.sh create mode 100644 blockcheck/zapret2/blockcheck2.d/standard/60-fake-hostfake.sh create mode 100644 blockcheck/zapret2/blockcheck2.d/standard/90-quic.sh create mode 100644 blockcheck/zapret2/blockcheck2.d/standard/def.inc create mode 100644 blockcheck/zapret2/blockcheck2.sh create mode 100644 blockcheck/zapret2/blog.sh create mode 100644 blockcheck/zapret2/blog_kyber.sh create mode 100644 blockcheck/zapret2/common/base.sh create mode 100644 blockcheck/zapret2/common/dialog.sh create mode 100644 blockcheck/zapret2/common/elevate.sh create mode 100644 blockcheck/zapret2/common/fwtype.sh create mode 100644 blockcheck/zapret2/common/virt.sh create mode 100644 blockcheck/zapret2/ip2net/ip2net.exe create mode 100644 blockcheck/zapret2/lua/zapret-antidpi.lua create mode 100644 blockcheck/zapret2/lua/zapret-auto.lua create mode 100644 blockcheck/zapret2/lua/zapret-lib.lua create mode 100644 blockcheck/zapret2/lua/zapret-obfs.lua create mode 100644 blockcheck/zapret2/lua/zapret-pcap.lua create mode 100644 blockcheck/zapret2/lua/zapret-tests.lua create mode 100644 blockcheck/zapret2/mdig/mdig.exe create mode 100644 blockcheck/zapret2/nfq2/WinDivert.dll create mode 100644 blockcheck/zapret2/nfq2/WinDivert64.sys create mode 100644 blockcheck/zapret2/nfq2/winws2.exe create mode 100644 cygwin/bin/[.exe create mode 100644 cygwin/bin/arch.exe create mode 100644 cygwin/bin/awk create mode 100644 cygwin/bin/basename.exe create mode 100644 cygwin/bin/bash.exe create mode 100644 cygwin/bin/bunzip2.exe create mode 100644 cygwin/bin/bzcat.exe create mode 100644 cygwin/bin/bzgrep create mode 100644 cygwin/bin/bzip2.exe create mode 100644 cygwin/bin/cat.exe create mode 100644 cygwin/bin/chattr.exe create mode 100644 cygwin/bin/chgrp.exe create mode 100644 cygwin/bin/chmod.exe create mode 100644 cygwin/bin/chown.exe create mode 100644 cygwin/bin/chrt.exe create mode 100644 cygwin/bin/clear.exe create mode 100644 cygwin/bin/cmp.exe create mode 100644 cygwin/bin/cp.exe create mode 100644 cygwin/bin/cut.exe create mode 100644 cygwin/bin/cygattr-1.dll create mode 100644 cygwin/bin/cygbsd-0.dll create mode 100644 cygwin/bin/cygbz2-1.dll create mode 100644 cygwin/bin/cygcrypto-1.1.dll create mode 100644 cygwin/bin/cyggcc_s-seh-1.dll create mode 100644 cygwin/bin/cyggmp-10.dll create mode 100644 cygwin/bin/cygiconv-2.dll create mode 100644 cygwin/bin/cygintl-8.dll create mode 100644 cygwin/bin/cyglz4-1.dll create mode 100644 cygwin/bin/cyglzma-5.dll create mode 100644 cygwin/bin/cygmagic-1.dll create mode 100644 cygwin/bin/cygmd-0.dll create mode 100644 cygwin/bin/cygmpfr-6.dll create mode 100644 cygwin/bin/cygncursesw-10.dll create mode 100644 cygwin/bin/cygpath.exe create mode 100644 cygwin/bin/cygpcre-1.dll create mode 100644 cygwin/bin/cygpcre2-8-0.dll create mode 100644 cygwin/bin/cygpopt-0.dll create mode 100644 cygwin/bin/cygproc2-0.dll create mode 100644 cygwin/bin/cygreadline7.dll create mode 100644 cygwin/bin/cygssl-1.1.dll create mode 100644 cygwin/bin/cygstart.exe create mode 100644 cygwin/bin/cygtls-26.dll create mode 100644 cygwin/bin/cygwin-console-helper.exe create mode 100644 cygwin/bin/cygwin1.dll create mode 100644 cygwin/bin/cygz.dll create mode 100644 cygwin/bin/cygzstd-1.dll create mode 100644 cygwin/bin/date.exe create mode 100644 cygwin/bin/dircolors.exe create mode 100644 cygwin/bin/dirname.exe create mode 100644 cygwin/bin/dos2unix.exe create mode 100644 cygwin/bin/echo.exe create mode 100644 cygwin/bin/egrep create mode 100644 cygwin/bin/env.exe create mode 100644 cygwin/bin/expr.exe create mode 100644 cygwin/bin/false.exe create mode 100644 cygwin/bin/fgrep create mode 100644 cygwin/bin/find.exe create mode 100644 cygwin/bin/fmt.exe create mode 100644 cygwin/bin/fold.exe create mode 100644 cygwin/bin/gawk.exe create mode 100644 cygwin/bin/getconf.exe create mode 100644 cygwin/bin/getopt.exe create mode 100644 cygwin/bin/grep.exe create mode 100644 cygwin/bin/gunzip create mode 100644 cygwin/bin/gzip.exe create mode 100644 cygwin/bin/head.exe create mode 100644 cygwin/bin/hexdump.exe create mode 100644 cygwin/bin/hostname.exe create mode 100644 cygwin/bin/id.exe create mode 100644 cygwin/bin/install.exe create mode 100644 cygwin/bin/kill.exe create mode 100644 cygwin/bin/killall.exe create mode 100644 cygwin/bin/ldd.exe create mode 100644 cygwin/bin/ldh.exe create mode 100644 cygwin/bin/link.exe create mode 100644 cygwin/bin/ln.exe create mode 100644 cygwin/bin/look.exe create mode 100644 cygwin/bin/ls.exe create mode 100644 cygwin/bin/md5sum.exe create mode 100644 cygwin/bin/mkdir.exe create mode 100644 cygwin/bin/more.exe create mode 100644 cygwin/bin/mount.exe create mode 100644 cygwin/bin/mv.exe create mode 100644 cygwin/bin/nano.exe create mode 100644 cygwin/bin/nc.exe create mode 100644 cygwin/bin/nice.exe create mode 100644 cygwin/bin/nl.exe create mode 100644 cygwin/bin/pgrep.exe create mode 100644 cygwin/bin/pidof.exe create mode 100644 cygwin/bin/pkill.exe create mode 100644 cygwin/bin/printenv.exe create mode 100644 cygwin/bin/printf.exe create mode 100644 cygwin/bin/ps.exe create mode 100644 cygwin/bin/pwd.exe create mode 100644 cygwin/bin/readlink.exe create mode 100644 cygwin/bin/realpath.exe create mode 100644 cygwin/bin/renice.exe create mode 100644 cygwin/bin/rm.exe create mode 100644 cygwin/bin/rmdir.exe create mode 100644 cygwin/bin/sed.exe create mode 100644 cygwin/bin/seq.exe create mode 100644 cygwin/bin/sh.exe create mode 100644 cygwin/bin/sha1sum.exe create mode 100644 cygwin/bin/sha224sum.exe create mode 100644 cygwin/bin/sha256sum.exe create mode 100644 cygwin/bin/sha384sum.exe create mode 100644 cygwin/bin/sha512sum.exe create mode 100644 cygwin/bin/sleep.exe create mode 100644 cygwin/bin/sort.exe create mode 100644 cygwin/bin/stat.exe create mode 100644 cygwin/bin/sync.exe create mode 100644 cygwin/bin/tac.exe create mode 100644 cygwin/bin/tail.exe create mode 100644 cygwin/bin/tar.exe create mode 100644 cygwin/bin/tee.exe create mode 100644 cygwin/bin/test.exe create mode 100644 cygwin/bin/timeout.exe create mode 100644 cygwin/bin/touch.exe create mode 100644 cygwin/bin/tr.exe create mode 100644 cygwin/bin/true.exe create mode 100644 cygwin/bin/truncate.exe create mode 100644 cygwin/bin/tset.exe create mode 100644 cygwin/bin/tty.exe create mode 100644 cygwin/bin/ul.exe create mode 100644 cygwin/bin/umount.exe create mode 100644 cygwin/bin/uname.exe create mode 100644 cygwin/bin/uniq.exe create mode 100644 cygwin/bin/unix2dos.exe create mode 100644 cygwin/bin/unzip.exe create mode 100644 cygwin/bin/wc.exe create mode 100644 cygwin/bin/which.exe create mode 100644 cygwin/bin/xargs.exe create mode 100644 cygwin/bin/xz.exe create mode 100644 cygwin/bin/yes.exe create mode 100644 cygwin/bin/zcat create mode 100644 cygwin/bin/zgrep create mode 100644 cygwin/bin/zip.exe create mode 100644 cygwin/bin/zstd.exe create mode 100644 cygwin/cygwin-admin.cmd create mode 100644 cygwin/cygwin.cmd create mode 100644 cygwin/dev/mqueue/.gitkeep create mode 100644 cygwin/dev/shm/.gitkeep create mode 100644 cygwin/etc/DIR_COLORS create mode 100644 cygwin/etc/bash.bash_logout create mode 100644 cygwin/etc/bash.bashrc create mode 100644 cygwin/etc/defaults/etc/DIR_COLORS create mode 100644 cygwin/etc/defaults/etc/bash.bash_logout create mode 100644 cygwin/etc/defaults/etc/bash.bashrc create mode 100644 cygwin/etc/defaults/etc/cygserver.conf create mode 100644 cygwin/etc/defaults/etc/man_db.conf create mode 100644 cygwin/etc/defaults/etc/pki/ca-trust/ca-legacy.conf create mode 100644 cygwin/etc/defaults/etc/pki/tls/ct_log_list.cnf create mode 100644 cygwin/etc/defaults/etc/pki/tls/openssl.cnf create mode 100644 cygwin/etc/defaults/etc/profile create mode 100644 cygwin/etc/defaults/etc/shells create mode 100644 cygwin/etc/defaults/etc/skel/.bash_profile create mode 100644 cygwin/etc/defaults/etc/skel/.bashrc create mode 100644 cygwin/etc/defaults/etc/skel/.inputrc create mode 100644 cygwin/etc/defaults/etc/skel/.profile create mode 100644 cygwin/etc/fstab create mode 100644 cygwin/etc/pki/tls/certs/ca-bundle.crt create mode 100644 cygwin/etc/pki/tls/openssl.cnf create mode 100644 cygwin/etc/profile create mode 100644 cygwin/etc/profile.d/gawk.csh create mode 100644 cygwin/etc/profile.d/gawk.sh create mode 100644 cygwin/etc/shells create mode 100644 cygwin/etc/skel/.bash_profile create mode 100644 cygwin/etc/skel/.bashrc create mode 100644 cygwin/etc/skel/.inputrc create mode 100644 cygwin/etc/skel/.profile create mode 100644 cygwin/home/.gitkeep create mode 100644 cygwin/lib/charset.alias create mode 100644 cygwin/lib/gawk/.gitkeep create mode 100644 cygwin/sbin/.gitkeep create mode 100644 cygwin/tmp/.gitkeep create mode 100644 cygwin/usr/libexec/awk/grcat.exe create mode 100644 cygwin/usr/libexec/awk/pwcat.exe create mode 100644 cygwin/usr/libexec/coreutils/libstdbuf.so create mode 100644 cygwin/usr/local/bin/curl-kyber.exe create mode 100644 cygwin/usr/local/bin/curl.exe create mode 100644 cygwin/usr/local/bin/cygcrypto-3.dll create mode 100644 cygwin/usr/local/bin/cygcurl-4.dll create mode 100644 cygwin/usr/local/bin/cygidn2-0.dll create mode 100644 cygwin/usr/local/bin/cygnghttp2-14.dll create mode 100644 cygwin/usr/local/bin/cygnghttp3-9.dll create mode 100644 cygwin/usr/local/bin/cygssl-3.dll create mode 100644 cygwin/usr/local/bin/idn2.exe create mode 100644 cygwin/usr/local/etc/.gitkeep create mode 100644 cygwin/usr/local/lib/.gitkeep create mode 100644 cygwin/usr/sbin/.gitkeep create mode 100644 cygwin/usr/share/awk/.gitkeep create mode 100644 cygwin/usr/share/bash-completion/completions/getopt create mode 100644 cygwin/usr/share/bash-completion/completions/more create mode 100644 cygwin/usr/share/bash-completion/completions/renice create mode 100644 cygwin/usr/share/bash-completion/completions/ul create mode 100644 cygwin/usr/share/cygwin/cygwin.ldif create mode 100644 cygwin/usr/share/locale/.gitkeep create mode 100644 cygwin/usr/share/tabset/std create mode 100644 cygwin/usr/share/tabset/stdcrt create mode 100644 cygwin/usr/share/tabset/vt100 create mode 100644 cygwin/usr/share/tabset/vt300 create mode 100644 cygwin/usr/share/terminfo/45/Eterm create mode 100644 cygwin/usr/share/terminfo/45/Eterm-256color create mode 100644 cygwin/usr/share/terminfo/45/Eterm-88color create mode 100644 cygwin/usr/share/terminfo/45/Eterm-color create mode 100644 cygwin/usr/share/terminfo/61/ansi create mode 100644 cygwin/usr/share/terminfo/61/aterm create mode 100644 cygwin/usr/share/terminfo/62/bracketed+paste create mode 100644 cygwin/usr/share/terminfo/62/bterm create mode 100644 cygwin/usr/share/terminfo/63/cons25 create mode 100644 cygwin/usr/share/terminfo/63/cygwin create mode 100644 cygwin/usr/share/terminfo/63/cygwinB19 create mode 100644 cygwin/usr/share/terminfo/63/cygwinDBG create mode 100644 cygwin/usr/share/terminfo/64/dumb create mode 100644 cygwin/usr/share/terminfo/64/dumb-emacs-ansi create mode 100644 cygwin/usr/share/terminfo/65/eterm create mode 100644 cygwin/usr/share/terminfo/65/eterm-color create mode 100644 cygwin/usr/share/terminfo/67/gnome create mode 100644 cygwin/usr/share/terminfo/67/gnome-256color create mode 100644 cygwin/usr/share/terminfo/68/hurd create mode 100644 cygwin/usr/share/terminfo/6a/jfbterm create mode 100644 cygwin/usr/share/terminfo/6b/konsole create mode 100644 cygwin/usr/share/terminfo/6b/konsole-16color create mode 100644 cygwin/usr/share/terminfo/6b/konsole-256color create mode 100644 cygwin/usr/share/terminfo/6c/linux create mode 100644 cygwin/usr/share/terminfo/6d/mach create mode 100644 cygwin/usr/share/terminfo/6d/mach-bold create mode 100644 cygwin/usr/share/terminfo/6d/mach-color create mode 100644 cygwin/usr/share/terminfo/6d/mach-gnu create mode 100644 cygwin/usr/share/terminfo/6d/mach-gnu-color create mode 100644 cygwin/usr/share/terminfo/6d/mintty create mode 100644 cygwin/usr/share/terminfo/6d/mintty+common create mode 100644 cygwin/usr/share/terminfo/6d/mintty-direct create mode 100644 cygwin/usr/share/terminfo/6d/mlterm create mode 100644 cygwin/usr/share/terminfo/6d/mrxvt create mode 100644 cygwin/usr/share/terminfo/6d/mrxvt-256color create mode 100644 cygwin/usr/share/terminfo/6e/nsterm create mode 100644 cygwin/usr/share/terminfo/70/pcansi create mode 100644 cygwin/usr/share/terminfo/70/putty create mode 100644 cygwin/usr/share/terminfo/70/putty-256color create mode 100644 cygwin/usr/share/terminfo/70/putty-m1 create mode 100644 cygwin/usr/share/terminfo/70/putty-m1b create mode 100644 cygwin/usr/share/terminfo/70/putty-m2 create mode 100644 cygwin/usr/share/terminfo/70/putty-noapp create mode 100644 cygwin/usr/share/terminfo/70/putty-sco create mode 100644 cygwin/usr/share/terminfo/70/putty-screen create mode 100644 cygwin/usr/share/terminfo/70/putty-vt100 create mode 100644 cygwin/usr/share/terminfo/72/rxvt create mode 100644 cygwin/usr/share/terminfo/72/rxvt+pcfkeys create mode 100644 cygwin/usr/share/terminfo/72/rxvt-16color create mode 100644 cygwin/usr/share/terminfo/72/rxvt-256color create mode 100644 cygwin/usr/share/terminfo/72/rxvt-88color create mode 100644 cygwin/usr/share/terminfo/72/rxvt-basic create mode 100644 cygwin/usr/share/terminfo/72/rxvt-color create mode 100644 cygwin/usr/share/terminfo/72/rxvt-cygwin create mode 100644 cygwin/usr/share/terminfo/72/rxvt-cygwin-native create mode 100644 cygwin/usr/share/terminfo/72/rxvt-unicode create mode 100644 cygwin/usr/share/terminfo/72/rxvt-unicode-256color create mode 100644 cygwin/usr/share/terminfo/72/rxvt-xpm create mode 100644 cygwin/usr/share/terminfo/73/screen create mode 100644 cygwin/usr/share/terminfo/73/screen-16color create mode 100644 cygwin/usr/share/terminfo/73/screen-256color create mode 100644 cygwin/usr/share/terminfo/73/screen.Eterm create mode 100644 cygwin/usr/share/terminfo/73/screen.gnome create mode 100644 cygwin/usr/share/terminfo/73/screen.konsole create mode 100644 cygwin/usr/share/terminfo/73/screen.konsole-256color create mode 100644 cygwin/usr/share/terminfo/73/screen.linux create mode 100644 cygwin/usr/share/terminfo/73/screen.linux-m1 create mode 100644 cygwin/usr/share/terminfo/73/screen.linux-m1b create mode 100644 cygwin/usr/share/terminfo/73/screen.linux-m2 create mode 100644 cygwin/usr/share/terminfo/73/screen.linux-s create mode 100644 cygwin/usr/share/terminfo/73/screen.minitel1 create mode 100644 cygwin/usr/share/terminfo/73/screen.minitel1-nb create mode 100644 cygwin/usr/share/terminfo/73/screen.minitel12-80 create mode 100644 cygwin/usr/share/terminfo/73/screen.minitel1b create mode 100644 cygwin/usr/share/terminfo/73/screen.minitel1b-80 create mode 100644 cygwin/usr/share/terminfo/73/screen.minitel1b-nb create mode 100644 cygwin/usr/share/terminfo/73/screen.minitel2-80 create mode 100644 cygwin/usr/share/terminfo/73/screen.mlterm create mode 100644 cygwin/usr/share/terminfo/73/screen.mlterm-256color create mode 100644 cygwin/usr/share/terminfo/73/screen.mrxvt create mode 100644 cygwin/usr/share/terminfo/73/screen.putty create mode 100644 cygwin/usr/share/terminfo/73/screen.putty-256color create mode 100644 cygwin/usr/share/terminfo/73/screen.putty-m1 create mode 100644 cygwin/usr/share/terminfo/73/screen.putty-m1b create mode 100644 cygwin/usr/share/terminfo/73/screen.putty-m2 create mode 100644 cygwin/usr/share/terminfo/73/screen.rxvt create mode 100644 cygwin/usr/share/terminfo/73/screen.teraterm create mode 100644 cygwin/usr/share/terminfo/73/screen.vte create mode 100644 cygwin/usr/share/terminfo/73/screen.vte-256color create mode 100644 cygwin/usr/share/terminfo/73/screen.xterm-256color create mode 100644 cygwin/usr/share/terminfo/73/screen.xterm-new create mode 100644 cygwin/usr/share/terminfo/73/screen.xterm-r6 create mode 100644 cygwin/usr/share/terminfo/73/screen.xterm-xfree86 create mode 100644 cygwin/usr/share/terminfo/73/st create mode 100644 cygwin/usr/share/terminfo/73/st-0.6 create mode 100644 cygwin/usr/share/terminfo/73/st-0.7 create mode 100644 cygwin/usr/share/terminfo/73/st-0.8 create mode 100644 cygwin/usr/share/terminfo/73/st-16color create mode 100644 cygwin/usr/share/terminfo/73/st-256color create mode 100644 cygwin/usr/share/terminfo/73/st-direct create mode 100644 cygwin/usr/share/terminfo/73/sun create mode 100644 cygwin/usr/share/terminfo/74/tek4014 create mode 100644 cygwin/usr/share/terminfo/74/tek4014-sm create mode 100644 cygwin/usr/share/terminfo/74/teraterm create mode 100644 cygwin/usr/share/terminfo/74/teraterm-256color create mode 100644 cygwin/usr/share/terminfo/74/teraterm2.3 create mode 100644 cygwin/usr/share/terminfo/74/teraterm4.59 create mode 100644 cygwin/usr/share/terminfo/74/teraterm4.97 create mode 100644 cygwin/usr/share/terminfo/74/tmux create mode 100644 cygwin/usr/share/terminfo/74/tmux-256color create mode 100644 cygwin/usr/share/terminfo/74/tmux-direct create mode 100644 cygwin/usr/share/terminfo/76/vt100 create mode 100644 cygwin/usr/share/terminfo/76/vt100-nav create mode 100644 cygwin/usr/share/terminfo/76/vt102 create mode 100644 cygwin/usr/share/terminfo/76/vt220 create mode 100644 cygwin/usr/share/terminfo/76/vt320 create mode 100644 cygwin/usr/share/terminfo/76/vt420 create mode 100644 cygwin/usr/share/terminfo/76/vt52 create mode 100644 cygwin/usr/share/terminfo/76/vt520 create mode 100644 cygwin/usr/share/terminfo/76/vte create mode 100644 cygwin/usr/share/terminfo/76/vte-256color create mode 100644 cygwin/usr/share/terminfo/76/vwmterm create mode 100644 cygwin/usr/share/terminfo/77/wsvt25 create mode 100644 cygwin/usr/share/terminfo/77/wsvt25m create mode 100644 cygwin/usr/share/terminfo/78/xfce create mode 100644 cygwin/usr/share/terminfo/78/xterm create mode 100644 cygwin/usr/share/terminfo/78/xterm-1002 create mode 100644 cygwin/usr/share/terminfo/78/xterm-1003 create mode 100644 cygwin/usr/share/terminfo/78/xterm-1005 create mode 100644 cygwin/usr/share/terminfo/78/xterm-1006 create mode 100644 cygwin/usr/share/terminfo/78/xterm-16color create mode 100644 cygwin/usr/share/terminfo/78/xterm-24 create mode 100644 cygwin/usr/share/terminfo/78/xterm-256color create mode 100644 cygwin/usr/share/terminfo/78/xterm-88color create mode 100644 cygwin/usr/share/terminfo/78/xterm-8bit create mode 100644 cygwin/usr/share/terminfo/78/xterm-basic create mode 100644 cygwin/usr/share/terminfo/78/xterm-bold create mode 100644 cygwin/usr/share/terminfo/78/xterm-color create mode 100644 cygwin/usr/share/terminfo/78/xterm-direct create mode 100644 cygwin/usr/share/terminfo/78/xterm-direct16 create mode 100644 cygwin/usr/share/terminfo/78/xterm-direct2 create mode 100644 cygwin/usr/share/terminfo/78/xterm-direct256 create mode 100644 cygwin/usr/share/terminfo/78/xterm-hp create mode 100644 cygwin/usr/share/terminfo/78/xterm-mono create mode 100644 cygwin/usr/share/terminfo/78/xterm-new create mode 100644 cygwin/usr/share/terminfo/78/xterm-nic create mode 100644 cygwin/usr/share/terminfo/78/xterm-noapp create mode 100644 cygwin/usr/share/terminfo/78/xterm-old create mode 100644 cygwin/usr/share/terminfo/78/xterm-p370 create mode 100644 cygwin/usr/share/terminfo/78/xterm-p371 create mode 100644 cygwin/usr/share/terminfo/78/xterm-pcolor create mode 100644 cygwin/usr/share/terminfo/78/xterm-r5 create mode 100644 cygwin/usr/share/terminfo/78/xterm-r6 create mode 100644 cygwin/usr/share/terminfo/78/xterm-sco create mode 100644 cygwin/usr/share/terminfo/78/xterm-sun create mode 100644 cygwin/usr/share/terminfo/78/xterm-utf8 create mode 100644 cygwin/usr/share/terminfo/78/xterm-vt220 create mode 100644 cygwin/usr/share/terminfo/78/xterm-vt52 create mode 100644 cygwin/usr/share/terminfo/78/xterm-x10mouse create mode 100644 cygwin/usr/share/terminfo/78/xterm-x11hilite create mode 100644 cygwin/usr/share/terminfo/78/xterm-x11mouse create mode 100644 cygwin/usr/share/terminfo/78/xterm-xf86-v32 create mode 100644 cygwin/usr/share/terminfo/78/xterm-xf86-v33 create mode 100644 cygwin/usr/share/terminfo/78/xterm-xf86-v333 create mode 100644 cygwin/usr/share/terminfo/78/xterm-xf86-v40 create mode 100644 cygwin/usr/share/terminfo/78/xterm-xf86-v43 create mode 100644 cygwin/usr/share/terminfo/78/xterm-xf86-v44 create mode 100644 cygwin/usr/share/terminfo/78/xterm-xfree86 create mode 100644 cygwin/usr/share/terminfo/78/xterm-xi create mode 100644 cygwin/var/cache/.gitkeep create mode 100644 cygwin/var/lib/.gitkeep create mode 100644 cygwin/var/log/.gitkeep create mode 100644 cygwin/var/run/.gitkeep create mode 100644 cygwin/var/tmp/.gitkeep create mode 100644 readme.md create mode 100644 tools/elevator.exe create mode 100644 win7/WinDivert.dll create mode 100644 win7/WinDivert64.sys create mode 100644 win7/install_win7.cmd create mode 100644 windivert-hide/Monkey64.sys create mode 100644 windivert-hide/README.txt create mode 100644 windivert-hide/WinDivert.dll create mode 100644 windivert-hide/monkey_delete.cmd create mode 100644 zapret-winws/WinDivert.dll create mode 100644 zapret-winws/WinDivert64.sys create mode 100644 zapret-winws/_CMD_ADMIN.cmd create mode 100644 zapret-winws/cygwin1.dll create mode 100644 zapret-winws/elevator.exe create mode 100644 zapret-winws/enable_timestamps.cmd create mode 100644 zapret-winws/files/list-youtube.txt create mode 100644 zapret-winws/files/quic_initial_www_google_com.bin create mode 100644 zapret-winws/killall.exe create mode 100644 zapret-winws/lua/zapret-antidpi.lua create mode 100644 zapret-winws/lua/zapret-auto.lua create mode 100644 zapret-winws/lua/zapret-lib.lua create mode 100644 zapret-winws/lua/zapret-obfs.lua create mode 100644 zapret-winws/lua/zapret-pcap.lua create mode 100644 zapret-winws/lua/zapret-tests.lua create mode 100644 zapret-winws/preset1_example.cmd create mode 100644 zapret-winws/preset2_example.cmd create mode 100644 zapret-winws/preset2_wireguard.cmd create mode 100644 zapret-winws/service1_create.cmd create mode 100644 zapret-winws/service2_create.cmd create mode 100644 zapret-winws/service_create.cmd create mode 100644 zapret-winws/service_del.cmd create mode 100644 zapret-winws/service_start.cmd create mode 100644 zapret-winws/service_stop.cmd create mode 100644 zapret-winws/windivert.filter/README.txt create mode 100755 zapret-winws/windivert.filter/windivert_part.dht.txt create mode 100644 zapret-winws/windivert.filter/windivert_part.discord_media.txt create mode 100644 zapret-winws/windivert.filter/windivert_part.quic_initial_ietf.txt create mode 100644 zapret-winws/windivert.filter/windivert_part.stun.txt create mode 100644 zapret-winws/windivert.filter/windivert_part.wireguard.txt create mode 100644 zapret-winws/windivert_delete.cmd create mode 100644 zapret-winws/winws.exe create mode 100644 zapret-winws/winws2.exe diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..a23dc7c --- /dev/null +++ b/.gitattributes @@ -0,0 +1,4 @@ +* text=auto eol=lf +readme.md eol=crlf +*.cmd eol=crlf +*.bat eol=crlf diff --git a/.github/lockdown.yml b/.github/lockdown.yml new file mode 100644 index 0000000..b9a7134 --- /dev/null +++ b/.github/lockdown.yml @@ -0,0 +1,2 @@ +# Lock issues and pull requests +lock: true diff --git a/arm64/WinDivert64.sys b/arm64/WinDivert64.sys new file mode 100644 index 0000000000000000000000000000000000000000..20fd7a1adfde495e59381a98ffe16a8fbefdf5b6 GIT binary patch literal 79808 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 +echo setting testsigning on +bcdedit /set {current} testsigning on +echo replacing WinDivert64.sys with unsigned ARM64 version +copy WinDivert64.sys ..\zapret-winws +copy WinDivert64.sys ..\blockcheck\zapret\nfq +copy WinDivert64.sys ..\blockcheck\zapret2\nfq2 +echo copying ip2net and mdig +copy ip2net.exe ..\blockcheck\zapret\ip2net +copy ip2net.exe ..\blockcheck\zapret2\ip2net +copy mdig.exe ..\blockcheck\zapret\mdig +copy mdig.exe ..\blockcheck\zapret2\mdig +echo DONE. now reboot if testsigning was not enabled earlier. + +:ex +pause diff --git a/arm64/ip2net.exe b/arm64/ip2net.exe new file mode 100644 index 0000000000000000000000000000000000000000..3e366ed2e64f19a667e52117f2c325100d2425be GIT binary patch literal 23552 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 literal 0 HcmV?d00001 diff --git a/blockcheck/blockcheck-kyber.cmd b/blockcheck/blockcheck-kyber.cmd new file mode 100644 index 0000000..0705b9e --- /dev/null +++ b/blockcheck/blockcheck-kyber.cmd @@ -0,0 +1,8 @@ +@echo off + +cd /d "%~dp0" +FOR /F "tokens=* USEBACKQ" %%F IN (`..\cygwin\bin\cygpath -C OEM -a -m zapret\blog_kyber.sh`) DO ( +SET P='%%F' +) + +"%~dp0..\tools\elevator" ..\cygwin\bin\bash -i "%P%" diff --git a/blockcheck/blockcheck.cmd b/blockcheck/blockcheck.cmd new file mode 100644 index 0000000..44c26dd --- /dev/null +++ b/blockcheck/blockcheck.cmd @@ -0,0 +1,8 @@ +@echo off + +cd /d "%~dp0" +FOR /F "tokens=* USEBACKQ" %%F IN (`..\cygwin\bin\cygpath -C OEM -a -m zapret\blog.sh`) DO ( +SET P='%%F' +) + +"%~dp0..\tools\elevator" ..\cygwin\bin\bash -i "%P%" diff --git a/blockcheck/blockcheck2-kyber.cmd b/blockcheck/blockcheck2-kyber.cmd new file mode 100644 index 0000000..9448d74 --- /dev/null +++ b/blockcheck/blockcheck2-kyber.cmd @@ -0,0 +1,8 @@ +@echo off + +cd /d "%~dp0" +FOR /F "tokens=* USEBACKQ" %%F IN (`..\cygwin\bin\cygpath -C OEM -a -m zapret2\blog_kyber.sh`) DO ( +SET P='%%F' +) + +"%~dp0..\tools\elevator" ..\cygwin\bin\bash -i "%P%" diff --git a/blockcheck/blockcheck2.cmd b/blockcheck/blockcheck2.cmd new file mode 100644 index 0000000..96aaf4e --- /dev/null +++ b/blockcheck/blockcheck2.cmd @@ -0,0 +1,8 @@ +@echo off + +cd /d "%~dp0" +FOR /F "tokens=* USEBACKQ" %%F IN (`..\cygwin\bin\cygpath -C OEM -a -m zapret2\blog.sh`) DO ( +SET P='%%F' +) + +"%~dp0..\tools\elevator" ..\cygwin\bin\bash -i "%P%" diff --git a/blockcheck/zapret/blockcheck.sh b/blockcheck/zapret/blockcheck.sh new file mode 100644 index 0000000..e7025e3 --- /dev/null +++ b/blockcheck/zapret/blockcheck.sh @@ -0,0 +1,2349 @@ +#!/bin/sh + +EXEDIR="$(dirname "$0")" +EXEDIR="$(cd "$EXEDIR"; pwd)" +ZAPRET_BASE=${ZAPRET_BASE:-"$EXEDIR"} +ZAPRET_RW=${ZAPRET_RW:-"$ZAPRET_BASE"} +ZAPRET_CONFIG=${ZAPRET_CONFIG:-"$ZAPRET_RW/config"} +ZAPRET_CONFIG_DEFAULT="$ZAPRET_BASE/config.default" + +CURL=${CURL:-curl} + +[ -f "$ZAPRET_CONFIG" ] || { + [ -f "$ZAPRET_CONFIG_DEFAULT" ] && { + ZAPRET_CONFIG_DIR="$(dirname "$ZAPRET_CONFIG")" + [ -d "$ZAPRET_CONFIG_DIR" ] || mkdir -p "$ZAPRET_CONFIG_DIR" + cp "$ZAPRET_CONFIG_DEFAULT" "$ZAPRET_CONFIG" + } +} +[ -f "$ZAPRET_CONFIG" ] && . "$ZAPRET_CONFIG" +. "$ZAPRET_BASE/common/base.sh" +. "$ZAPRET_BASE/common/dialog.sh" +. "$ZAPRET_BASE/common/elevate.sh" +. "$ZAPRET_BASE/common/fwtype.sh" +. "$ZAPRET_BASE/common/virt.sh" + +DOMAINS_DEFAULT=${DOMAINS_DEFAULT:-rutracker.org} +QNUM=${QNUM:-59780} +SOCKS_PORT=${SOCKS_PORT:-1993} +TPWS_UID=${TPWS_UID:-1} +TPWS_GID=${TPWS_GID:-3003} +NFQWS=${NFQWS:-${ZAPRET_BASE}/nfq/nfqws} +DVTWS=${DVTWS:-${ZAPRET_BASE}/nfq/dvtws} +WINWS=${WINWS:-${ZAPRET_BASE}/nfq/winws} +TPWS=${TPWS:-${ZAPRET_BASE}/tpws/tpws} +MDIG=${MDIG:-${ZAPRET_BASE}/mdig/mdig} +DESYNC_MARK=0x10000000 +IPFW_RULE_NUM=${IPFW_RULE_NUM:-1} +IPFW_DIVERT_PORT=${IPFW_DIVERT_PORT:-59780} +CURL_MAX_TIME=${CURL_MAX_TIME:-2} +CURL_MAX_TIME_QUIC=${CURL_MAX_TIME_QUIC:-$CURL_MAX_TIME} +CURL_MAX_TIME_DOH=${CURL_MAX_TIME_DOH:-2} +MIN_TTL=${MIN_TTL:-1} +MAX_TTL=${MAX_TTL:-12} +MIN_AUTOTTL_DELTA=${MIN_AUTOTTL_DELTA:-1} +MAX_AUTOTTL_DELTA=${MAX_AUTOTTL_DELTA:-5} +USER_AGENT=${USER_AGENT:-Mozilla} +HTTP_PORT=${HTTP_PORT:-80} +HTTPS_PORT=${HTTPS_PORT:-443} +QUIC_PORT=${QUIC_PORT:-443} +UNBLOCKED_DOM=${UNBLOCKED_DOM:-iana.org} +PARALLEL_OUT=/tmp/zapret_parallel +SIM_SUCCESS_RATE=${SIM_SUCCESS_RATE:-10} + +HDRTEMP=/tmp/zapret-hdr + +NFT_TABLE=blockcheck + +DNSCHECK_DNS=${DNSCHECK_DNS:-8.8.8.8 1.1.1.1 77.88.8.1} +DNSCHECK_DOM=${DNSCHECK_DOM:-pornhub.com ej.ru rutracker.org www.torproject.org bbc.com} +DOH_SERVERS=${DOH_SERVERS:-"https://cloudflare-dns.com/dns-query https://dns.google/dns-query https://dns.quad9.net/dns-query https://dns.adguard.com/dns-query https://common.dot.dns.yandex.net/dns-query"} +DNSCHECK_DIG1=/tmp/dig1.txt +DNSCHECK_DIG2=/tmp/dig2.txt +DNSCHECK_DIGS=/tmp/digs.txt + +IPSET_FILE=/tmp/blockcheck_ipset.txt + +unset PF_STATUS +PF_RULES_SAVE=/tmp/pf-zapret-save.conf + +unset ALL_PROXY + +killwait() +{ + # $1 - signal (-9, -2, ...) + # $2 - pid + kill $1 $2 + # suppress job kill message + wait $2 2>/dev/null +} + +exitp() +{ + local A + + [ "$BATCH" = 1 ] || { + echo + echo press enter to continue + read A + } + exit $1 +} + +pf_is_avail() +{ + [ -c /dev/pf ] +} +pf_status() +{ + pfctl -qsi | sed -nre "s/^Status: ([^ ]+).*$/\1/p" +} +pf_is_enabled() +{ + [ "$(pf_status)" = Enabled ] +} +pf_save() +{ + PF_STATUS=0 + pf_is_enabled && PF_STATUS=1 + [ "$UNAME" = "OpenBSD" ] && pfctl -sr >"$PF_RULES_SAVE" +} +pf_restore() +{ + [ -n "$PF_STATUS" ] || return + case "$UNAME" in + OpenBSD) + if [ -f "$PF_RULES_SAVE" ]; then + pfctl -qf "$PF_RULES_SAVE" + else + echo | pfctl -qf - + fi + ;; + Darwin) + # it's not possible to save all rules in the right order. hard to reorder. if not ordered pf will refuse to load conf. + pfctl -qf /etc/pf.conf + ;; + esac + if [ "$PF_STATUS" = 1 ]; then + pfctl -qe + else + pfctl -qd + fi +} +pf_clean() +{ + rm -f "$PF_RULES_SAVE" +} +opf_dvtws_anchor() +{ + # $1 - tcp/udp + # $2 - port + # $3 - ip list + local iplist family=inet + [ "$IPV" = 6 ] && family=inet6 + make_comma_list iplist "$3" + echo "set reassemble no" + [ "$1" = tcp ] && echo "pass in quick $family proto $1 from {$iplist} port $2 flags SA/SA divert-packet port $IPFW_DIVERT_PORT no state" + echo "pass in quick $family proto $1 from {$iplist} port $2 no state" + echo "pass out quick $family proto $1 to {$iplist} port $2 divert-packet port $IPFW_DIVERT_PORT no state" + echo "pass" +} +opf_prepare_dvtws() +{ + # $1 - tcp/udp + # $2 - port + # $3 - ip list + opf_dvtws_anchor $1 $2 "$3" | pfctl -qf - + pfctl -qe +} + +cleanup() +{ + case "$UNAME" in + OpenBSD) + pf_clean + ;; + esac +} + +IPT() +{ + $IPTABLES -C "$@" >/dev/null 2>/dev/null || $IPTABLES -I "$@" +} +IPT_DEL() +{ + $IPTABLES -C "$@" >/dev/null 2>/dev/null && $IPTABLES -D "$@" +} +IPT_ADD_DEL() +{ + on_off_function IPT IPT_DEL "$@" +} +IPFW_ADD() +{ + ipfw -qf add $IPFW_RULE_NUM "$@" +} +IPFW_DEL() +{ + ipfw -qf delete $IPFW_RULE_NUM 2>/dev/null +} +ipt6_has_raw() +{ + ip6tables -nL -t raw >/dev/null 2>/dev/null +} +ipt6_has_frag() +{ + ip6tables -A OUTPUT -m frag 2>/dev/null || return 1 + ip6tables -D OUTPUT -m frag 2>/dev/null +} +ipt_has_nfq() +{ + # cannot just check /proc/net/ip_tables_targets because of iptables-nft or modules not loaded yet + iptables -A OUTPUT -t mangle -p 255 -j NFQUEUE --queue-num $QNUM --queue-bypass 2>/dev/null || return 1 + iptables -D OUTPUT -t mangle -p 255 -j NFQUEUE --queue-num $QNUM --queue-bypass 2>/dev/null + return 0 +} +nft_has_nfq() +{ + local res=1 + nft delete table ${NFT_TABLE}_test 2>/dev/null + nft add table ${NFT_TABLE}_test 2>/dev/null && { + nft add chain ${NFT_TABLE}_test test + nft add rule ${NFT_TABLE}_test test queue num $QNUM bypass 2>/dev/null && res=0 + nft delete table ${NFT_TABLE}_test + } + return $res +} + +doh_resolve() +{ + # $1 - ip version 4/6 + # $2 - hostname + # $3 - doh server URL. use $DOH_SERVER if empty + "$MDIG" --family=$1 --dns-make-query=$2 | "$CURL" --max-time $CURL_MAX_TIME_DOH -s --data-binary @- -H "Content-Type: application/dns-message" "${3:-$DOH_SERVER}" | "$MDIG" --dns-parse-query +} +doh_find_working() +{ + local doh + + [ -n "$DOH_SERVER" ] && return 0 + echo "* searching working DoH server" + DOH_SERVER= + for doh in $DOH_SERVERS; do + echo -n "$doh : " + if doh_resolve 4 iana.org $doh >/dev/null 2>/dev/null; then + echo OK + DOH_SERVER="$doh" + return 0 + else + echo FAIL + fi + done + echo all DoH servers failed + return 1 +} + +mdig_vars() +{ + # $1 - ip version 4/6 + # $2 - hostname + + hostvar=$(echo $2 | sed -e 's/[\./?&#@%*$^:~=!()+-]/_/g') + cachevar=DNSCACHE_${hostvar}_$1 + countvar=${cachevar}_COUNT + eval count=\$${countvar} +} +mdig_cache() +{ + # $1 - ip version 4/6 + # $2 - hostname + local hostvar cachevar countvar count ip ips + mdig_vars "$@" + [ -n "$count" ] || { + # windows version of mdig outputs 0D0A line ending. remove 0D. + if [ "$SECURE_DNS" = 1 ]; then + ips="$(echo $2 | doh_resolve $1 $2 | tr -d '\r' | xargs)" + else + ips="$(echo $2 | "$MDIG" --family=$1 | tr -d '\r' | xargs)" + fi + [ -n "$ips" ] || return 1 + count=0 + for ip in $ips; do + eval ${cachevar}_$count=$ip + count=$(($count+1)) + done + eval $countvar=$count + } + return 0 +} +mdig_resolve() +{ + # $1 - ip version 4/6 + # $2 - var to receive result + # $3 - hostname, possibly with uri : rutracker.org/xxx/xxxx + local hostvar cachevar countvar count n sdom + + split_by_separator "$3" / sdom + mdig_vars "$1" "$sdom" + if [ -n "$count" ]; then + n=$(random 0 $(($count-1))) + eval $2=\$${cachevar}_$n + return 0 + else + mdig_cache "$1" "$sdom" && mdig_resolve "$1" "$2" "$sdom" + fi +} +mdig_resolve_all() +{ + # $1 - ip version 4/6 + # $2 - var to receive result + # $3 - hostname + + local hostvar cachevar countvar count ip__ ips__ n sdom + + split_by_separator "$3" / sdom + mdig_vars "$1" "$sdom" + if [ -n "$count" ]; then + n=0 + while [ "$n" -le $count ]; do + eval ip__=\$${cachevar}_$n + if [ -n "$ips__" ]; then + ips__="$ips__ $ip__" + else + ips__="$ip__" + fi + n=$(($n + 1)) + done + eval $2="\$ips__" + return 0 + else + mdig_cache "$1" "$sdom" && mdig_resolve_all "$1" "$2" "$sdom" + fi +} + +netcat_setup() +{ + [ -n "$NCAT" ] || { + if exists ncat; then + NCAT=ncat + elif exists nc; then + # busybox netcat does not support any required options + is_linked_to_busybox nc && return 1 + NCAT=nc + else + return 1 + fi + } + return 0 + +} +netcat_test() +{ + # $1 - ip + # $2 - port + local cmd + netcat_setup && { + cmd="$NCAT -z -w 2 $1 $2" + echo $cmd + $cmd 2>&1 + } +} + +tpws_can_fix_seg() +{ + # fix-seg requires kernel 4.6+ + "$TPWS" --port 1 --dry-run --fix-seg >/dev/null 2>/dev/null +} + +check_system() +{ + echo \* checking system + + UNAME=$(uname) + SUBSYS= + FIX_SEG= + local s + + # can be passed FWTYPE=iptables to override default nftables preference + case "$UNAME" in + Linux) + PKTWS="$NFQWS" + PKTWSD=nfqws + if [ -x "$TPWS" ] ; then + if tpws_can_fix_seg ; then + echo tpws supports --fix-seg on this system + FIX_SEG='--fix-seg' + else + echo tpws does not support --fix-seg on this system + fi + fi + linux_fwtype + [ "$FWTYPE" = iptables -o "$FWTYPE" = nftables ] || { + echo firewall type $FWTYPE not supported in $UNAME + exitp 5 + } + ;; + FreeBSD) + PKTWS="$DVTWS" + PKTWSD=dvtws + FWTYPE=ipfw + [ -f /etc/platform ] && read SUBSYS /dev/null + ;; + *) + echo $UNAME not supported + exitp 5 + esac + echo $UNAME${SUBSYS:+/$SUBSYS} detected + echo -n 'kernel: ' + if [ -f "/proc/version" ]; then + cat /proc/version + else + uname -a + fi + [ -f /etc/os-release ] && { + . /etc/os-release + [ -n "$PRETTY_NAME" ] && echo "distro: $PRETTY_NAME" + [ -n "$OPENWRT_RELEASE" ] && echo "openwrt release: $OPENWRT_RELEASE" + [ -n "$OPENWRT_BOARD" ] && echo "openwrt board: $OPENWRT_BOARD" + [ -n "$OPENWRT_ARCH" ] && echo "openwrt arch: $OPENWRT_ARCH" + } + echo firewall type is $FWTYPE + echo CURL=$CURL + "$CURL" --version +} + +zp_already_running() +{ + case "$UNAME" in + CYGWIN) + win_process_exists $PKTWSD || win_process_exists goodbyedpi + ;; + *) + process_exists $PKTWSD || process_exists tpws + esac +} +check_already() +{ + echo \* checking already running DPI bypass processes + if zp_already_running; then + echo "!!! WARNING. some dpi bypass processes already running !!!" + echo "!!! WARNING. blockcheck requires all DPI bypass methods disabled !!!" + echo "!!! WARNING. pls stop all dpi bypass instances that may interfere with blockcheck !!!" + fi +} + +freebsd_module_loaded() +{ + # $1 - module name + kldstat -qm "${1}" +} +freebsd_modules_loaded() +{ + # $1,$2,$3, ... - module names + while [ -n "$1" ]; do + freebsd_module_loaded $1 || return 1 + shift + done + return 0 +} + +check_prerequisites() +{ + echo \* checking prerequisites + + [ "$SKIP_PKTWS" = 1 -o "$UNAME" = Darwin -o -x "$PKTWS" ] && [ "$SKIP_TPWS" = 1 -o "$UNAME" = CYGWIN -o -x "$TPWS" ] && [ -x "$MDIG" ] || { + local target + case $UNAME in + Darwin) + target="mac" + ;; + OpenBSD) + target="bsd" + ;; + esac + echo $PKTWS or $TPWS or $MDIG is not available. run \"$ZAPRET_BASE/install_bin.sh\" or \`make -C \"$ZAPRET_BASE\" $target\` + exitp 6 + } + + local prog progs="$CURL" + [ "$SKIP_PKTWS" = 1 ] || { + case "$UNAME" in + Linux) + case "$FWTYPE" in + iptables) + ipt_has_nfq || { + echo NFQUEUE iptables or ip6tables target is missing. pls install modules. + exitp 6 + } + progs="$progs iptables ip6tables" + ;; + nftables) + nft_has_nfq || { + echo nftables queue support is not available. pls install modules. + exitp 6 + } + progs="$progs nft" + ;; + esac + ;; + FreeBSD) + freebsd_modules_loaded ipfw ipdivert || { + echo ipfw or ipdivert kernel module not loaded + exitp 6 + } + [ "$(sysctl -qn net.inet.ip.fw.enable)" = 0 -o "$(sysctl -qn net.inet6.ip6.fw.enable)" = 0 ] && { + echo ipfw is disabled. use : ipfw enable firewall + exitp 6 + } + pf_is_avail && { + pf_save + [ "$SUBSYS" = "pfSense" ] && { + # pfsense's ipfw may not work without these workarounds + sysctl net.inet.ip.pfil.outbound=ipfw,pf 2>/dev/null + sysctl net.inet.ip.pfil.inbound=ipfw,pf 2>/dev/null + sysctl net.inet6.ip6.pfil.outbound=ipfw,pf 2>/dev/null + sysctl net.inet6.ip6.pfil.inbound=ipfw,pf 2>/dev/null + pfctl -qd + pfctl -qe + pf_restore + } + } + progs="$progs ipfw" + ;; + OpenBSD|Darwin) + pf_is_avail || { + echo pf is not available + exitp 6 + } + pf_save + progs="$progs pfctl" + ;; + esac + } + + case "$UNAME" in + CYGWIN) + SKIP_TPWS=1 + ;; + esac + + for prog in $progs; do + exists $prog || { + echo $prog does not exist. please install + exitp 6 + } + done + + if exists nslookup; then + LOOKUP=nslookup + elif exists host; then + LOOKUP=host + else + echo nslookup or host does not exist. please install + exitp 6 + fi +} + + +curl_translate_code() +{ + # $1 - code + printf $1 + case $1 in + 0) printf ": ok" + ;; + 1) printf ": unsupported protocol" + ;; + 2) printf ": early initialization code failed" + ;; + 3) printf ": the URL was not properly formatted" + ;; + 4) printf ": feature not supported by libcurl" + ;; + 5) printf ": could not resolve proxy" + ;; + 6) printf ": could not resolve host" + ;; + 7) printf ": could not connect" + ;; + 8) printf ": invalid server reply" + ;; + 9) printf ": remote access denied" + ;; + 27) printf ": out of memory" + ;; + 28) printf ": operation timed out" + ;; + 35) printf ": SSL connect error" + ;; + esac +} +curl_supports_tls13() +{ + local r + "$CURL" --tlsv1.3 -Is -o /dev/null --max-time 1 http://127.0.0.1:65535 2>/dev/null + # return code 2 = init failed. likely bad command line options + [ $? = 2 ] && return 1 + # curl can have tlsv1.3 key present but ssl library without TLS 1.3 support + # this is online test because there's no other way to trigger library incompatibility case + "$CURL" --tlsv1.3 --max-time 1 -Is -o /dev/null https://iana.org 2>/dev/null + r=$? + [ $r != 4 -a $r != 35 ] +} + +curl_supports_tlsmax() +{ + # supported only in OpenSSL and LibreSSL + "$CURL" --version | grep -Fq -e OpenSSL -e LibreSSL -e BoringSSL -e GnuTLS -e quictls || return 1 + # supported since curl 7.54 + "$CURL" --tls-max 1.2 -Is -o /dev/null --max-time 1 http://127.0.0.1:65535 2>/dev/null + # return code 2 = init failed. likely bad command line options + [ $? != 2 ] +} + +curl_supports_connect_to() +{ + "$CURL" --connect-to 127.0.0.1:: -o /dev/null --max-time 1 http://127.0.0.1:65535 2>/dev/null + [ "$?" != 2 ] +} + +curl_supports_http3() +{ + # if it has http3 : curl: (3) HTTP/3 requested for non-HTTPS URL + # otherwise : curl: (2) option --http3-only: is unknown + "$CURL" --connect-to 127.0.0.1:: -o /dev/null --max-time 1 --http3-only http://127.0.0.1:65535 2>/dev/null + [ "$?" != 2 ] +} + +hdrfile_http_code() +{ + # $1 - hdr file + sed -nre '1,1 s/^HTTP\/1\.[0,1] ([0-9]+) .*$/\1/p' "$1" +} +hdrfile_location() +{ + # $1 - hdr file + + # some DPIs return CRLF line ending + tr -d '\015' <"$1" | sed -nre 's/^[Ll][Oo][Cc][Aa][Tt][Ii][Oo][Nn]:[ ]*([^ ]*)[ ]*$/\1/p' +} + +curl_with_subst_ip() +{ + # $1 - domain + # $2 - port + # $3 - ip + # $4+ - curl params + local ip="$3" + case "$ip" in + *:*) ip="[$ip]" ;; + esac + local connect_to="--connect-to $1::$ip${2:+:$2}" arg + shift ; shift ; shift; + [ "$CURL_VERBOSE" = 1 ] && arg="-v" + [ "$CURL_CMD" = 1 ] && echo $CURL ${arg:+$arg }$connect_to "$@" + ALL_PROXY="$ALL_PROXY" "$CURL" ${arg:+$arg }$connect_to "$@" +} +curl_with_dig() +{ + # $1 - ip version : 4/6 + # $2 - domain name + # $3 - port + # $4+ - curl params + local dom="$2" port=$3 + local sdom suri ip + + split_by_separator "$dom" / sdom suri + mdig_resolve $1 ip $sdom + shift ; shift ; shift + if [ -n "$ip" ]; then + curl_with_subst_ip "$sdom" "$port" "$ip" "$@" + else + return 6 + fi +} +curl_probe() +{ + # $1 - ip version : 4/6 + # $2 - domain name + # $3 - port + # $4 - subst ip + # $5+ - curl params + local ipv=$1 dom="$2" port=$3 subst=$4 + shift; shift; shift; shift + if [ -n "$subst" ]; then + curl_with_subst_ip "$dom" $port $subst "$@" + else + curl_with_dig $ipv "$dom" $port "$@" + fi +} +curl_test_http() +{ + # $1 - ip version : 4/6 + # $2 - domain name + # $3 - subst ip + # $4 - "detail" - detail info + + local code loc hdrt="${HDRTEMP}_${!:-$$}.txt" dom="$(tolower "$2")" + curl_probe $1 "$2" $HTTP_PORT "$3" -SsD "$hdrt" -A "$USER_AGENT" --max-time $CURL_MAX_TIME $CURL_OPT "http://$2" -o /dev/null 2>&1 || { + code=$? + rm -f "$hdrt" + return $code + } + if [ "$4" = "detail" ] ; then + head -n 1 "$hdrt" + grep "^[lL]ocation:" "$hdrt" + else + code=$(hdrfile_http_code "$hdrt") + [ "$code" = 301 -o "$code" = 302 -o "$code" = 307 -o "$code" = 308 ] && { + loc=$(hdrfile_location "$hdrt") + split_by_separator "$dom" / dom + tolower "$loc" | grep -qE "^https?://.*$dom(/|$)" || + tolower "$loc" | grep -vqE '^https?://' || { + echo suspicious redirection $code to : $loc + rm -f "$hdrt" + return 254 + } + } + fi + rm -f "$hdrt" + [ "$code" = 400 ] && { + # this can often happen if the server receives fake packets it should not receive + echo http code $code. likely the server receives fakes. + return 254 + } + return 0 +} +curl_test_https_tls12() +{ + # $1 - ip version : 4/6 + # $2 - domain name + # $3 - subst ip + + # do not use tls 1.3 to make sure server certificate is not encrypted + curl_probe $1 $2 $HTTPS_PORT "$3" $HTTPS_HEAD -Ss -A "$USER_AGENT" --max-time $CURL_MAX_TIME $CURL_OPT --tlsv1.2 $TLSMAX12 "https://$2" -o /dev/null 2>&1 +} +curl_test_https_tls13() +{ + # $1 - ip version : 4/6 + # $2 - domain name + # $3 - subst ip + + # force TLS1.3 mode + curl_probe $1 $2 $HTTPS_PORT "$3" $HTTPS_HEAD -Ss -A "$USER_AGENT" --max-time $CURL_MAX_TIME $CURL_OPT --tlsv1.3 $TLSMAX13 "https://$2" -o /dev/null 2>&1 +} + +curl_test_http3() +{ + # $1 - ip version : 4/6 + # $2 - domain name + + # force QUIC only mode without tcp + curl_with_dig $1 $2 $QUIC_PORT $HTTPS_HEAD -Ss -A "$USER_AGENT" --max-time $CURL_MAX_TIME_QUIC --http3-only $CURL_OPT "https://$2" -o /dev/null 2>&1 +} + +ipt_aux_scheme() +{ + # $1 - 1 - add , 0 - del + # $2 - tcp/udp + # $3 - port + + # to avoid possible INVALID state drop + [ "$2" = tcp ] && IPT_ADD_DEL $1 INPUT -p $2 --sport $3 ! --syn -j ACCEPT + + local icmp_filter="-p icmp -m icmp --icmp-type" + [ "$IPV" = 6 ] && icmp_filter="-p icmpv6 -m icmp6 --icmpv6-type" + IPT_ADD_DEL $1 INPUT $icmp_filter time-exceeded -m connmark --mark $DESYNC_MARK/$DESYNC_MARK -j DROP + + # for strategies with incoming packets involved (autottl) + IPT_ADD_DEL $1 OUTPUT -p $2 --dport $3 -m conntrack --ctstate INVALID -j ACCEPT + if [ "$IPV" = 6 -a -n "$IP6_DEFRAG_DISABLE" ]; then + # the only way to reliable disable ipv6 defrag. works only in 4.16+ kernels + IPT_ADD_DEL $1 OUTPUT -t raw -p $2 -m frag -j CT --notrack + elif [ "$IPV" = 4 ]; then + # enable fragments + IPT_ADD_DEL $1 OUTPUT -f -j ACCEPT + fi + # enable everything generated by nfqws (works only in OUTPUT, not in FORWARD) + # raw table may not be present + IPT_ADD_DEL $1 OUTPUT -t raw -m mark --mark $DESYNC_MARK/$DESYNC_MARK -j CT --notrack +} +ipt_scheme() +{ + # $1 - tcp/udp + # $2 - port + # $3 - ip list + + local ip + + $IPTABLES -t mangle -N blockcheck_output 2>/dev/null + $IPTABLES -t mangle -F blockcheck_output + IPT OUTPUT -t mangle -j blockcheck_output + + # prevent loop + $IPTABLES -t mangle -A blockcheck_output -m mark --mark $DESYNC_MARK/$DESYNC_MARK -j RETURN + $IPTABLES -t mangle -A blockcheck_output ! -p $1 -j RETURN + $IPTABLES -t mangle -A blockcheck_output -p $1 ! --dport $2 -j RETURN + + for ip in $3; do + $IPTABLES -t mangle -A blockcheck_output -d $ip -j CONNMARK --or-mark $DESYNC_MARK + $IPTABLES -t mangle -A blockcheck_output -d $ip -j NFQUEUE --queue-num $QNUM + done + + ipt_aux_scheme 1 $1 $2 +} +nft_scheme() +{ + # $1 - tcp/udp + # $2 - port + # $3 - ip list + + local iplist ipver=$IPV + [ "$IPV" = 6 ] || ipver= + make_comma_list iplist $3 + + nft add table inet $NFT_TABLE + nft "add chain inet $NFT_TABLE postnat { type filter hook postrouting priority 102; }" + nft "add rule inet $NFT_TABLE postnat meta nfproto ipv${IPV} $1 dport $2 mark and $DESYNC_MARK == 0 ip${ipver} daddr {$iplist} ct mark set ct mark or $DESYNC_MARK queue num $QNUM" + # for strategies with incoming packets involved (autottl) + nft "add chain inet $NFT_TABLE prenat { type filter hook prerouting priority -102; }" + # enable everything generated by nfqws (works only in OUTPUT, not in FORWARD) + nft "add chain inet $NFT_TABLE predefrag { type filter hook output priority -402; }" + nft "add rule inet $NFT_TABLE predefrag meta nfproto ipv${IPV} mark and $DESYNC_MARK !=0 notrack" + [ "$IPV" = 4 ] && { + nft "add rule inet $NFT_TABLE prenat icmp type time-exceeded ct mark and $DESYNC_MARK != 0 drop" + nft "add rule inet $NFT_TABLE prenat icmp type time-exceeded ct state invalid drop" + } + [ "$IPV" = 6 ] && { + nft "add rule inet $NFT_TABLE prenat icmpv6 type time-exceeded ct mark and $DESYNC_MARK != 0 drop" + nft "add rule inet $NFT_TABLE prenat icmpv6 type time-exceeded ct state invalid drop" + } +} + +pktws_ipt_prepare() +{ + # $1 - tcp/udp + # $2 - port + # $3 - ip list + + local ip + + case "$FWTYPE" in + iptables) + ipt_scheme $1 $2 "$3" + ;; + nftables) + nft_scheme $1 $2 "$3" + ;; + ipfw) + # disable PF to avoid interferences + pf_is_avail && pfctl -qd + for ip in $3; do + IPFW_ADD divert $IPFW_DIVERT_PORT $1 from me to $ip $2 proto ip${IPV} out not diverted + done + ;; + opf) + opf_prepare_dvtws $1 $2 "$3" + ;; + windivert) + WF="--wf-l3=ipv${IPV} --wf-${1}=$2" + rm -f "$IPSET_FILE" + for ip in $3; do + echo $ip >>"$IPSET_FILE" + done + ;; + + esac +} +pktws_ipt_unprepare() +{ + # $1 - tcp/udp + # $2 - port + + case "$FWTYPE" in + iptables) + ipt_aux_scheme 0 $1 $2 + IPT_DEL OUTPUT -t mangle -j blockcheck_output + $IPTABLES -t mangle -F blockcheck_output 2>/dev/null + $IPTABLES -t mangle -X blockcheck_output 2>/dev/null + ;; + nftables) + nft delete table inet $NFT_TABLE 2>/dev/null + ;; + ipfw) + IPFW_DEL + pf_is_avail && pf_restore + ;; + opf) + pf_restore + ;; + windivert) + unset WF + rm -f "$IPSET_FILE" + ;; + esac +} + +pktws_ipt_prepare_tcp() +{ + # $1 - port + # $2 - ip list + + local ip iplist ipver + + pktws_ipt_prepare tcp $1 "$2" + + # for autottl mode + case "$FWTYPE" in + iptables) + $IPTABLES -N blockcheck_input -t mangle 2>/dev/null + $IPTABLES -F blockcheck_input -t mangle 2>/dev/null + IPT INPUT -t mangle -j blockcheck_input + $IPTABLES -t mangle -A blockcheck_input ! -p tcp -j RETURN + $IPTABLES -t mangle -A blockcheck_input -p tcp ! --sport $1 -j RETURN + $IPTABLES -t mangle -A blockcheck_input -p tcp ! --tcp-flags SYN,ACK SYN,ACK -j RETURN + for ip in $2; do + $IPTABLES -A blockcheck_input -t mangle -s $ip -j NFQUEUE --queue-num $QNUM + done + ;; + nftables) + ipver=$IPV + [ "$IPV" = 6 ] || ipver= + make_comma_list iplist $2 + nft "add rule inet $NFT_TABLE prenat meta nfproto ipv${IPV} tcp sport $1 tcp flags & (syn | ack) == (syn | ack) ip${ipver} saddr {$iplist} queue num $QNUM" + ;; + ipfw) + for ip in $2; do + IPFW_ADD divert $IPFW_DIVERT_PORT tcp from $ip $1 to me proto ip${IPV} tcpflags syn,ack in not diverted + done + ;; + esac +} +pktws_ipt_unprepare_tcp() +{ + # $1 - port + + pktws_ipt_unprepare tcp $1 + + case "$FWTYPE" in + iptables) + IPT_DEL INPUT -t mangle -j blockcheck_input + $IPTABLES -t mangle -F blockcheck_input 2>/dev/null + $IPTABLES -t mangle -X blockcheck_input 2>/dev/null + ;; + esac +} +pktws_ipt_prepare_udp() +{ + # $1 - port + # $2 - ip list + + pktws_ipt_prepare udp $1 "$2" +} +pktws_ipt_unprepare_udp() +{ + # $1 - port + + pktws_ipt_unprepare udp $1 +} + +pktws_start() +{ + case "$UNAME" in + Linux) + "$NFQWS" --uid $TPWS_UID:$TPWS_GID --dpi-desync-fwmark=$DESYNC_MARK --qnum=$QNUM "$@" >/dev/null & + ;; + FreeBSD|OpenBSD) + "$DVTWS" --port=$IPFW_DIVERT_PORT "$@" >/dev/null & + ;; + CYGWIN) + "$WINWS" $WF --ipset="$IPSET_FILE" "$@" >/dev/null & + ;; + esac + PID=$! + # give some time to initialize + minsleep +} +tpws_start() +{ + local uid + [ -n "$HAVE_ROOT" ] && uid="--uid $TPWS_UID:$TPWS_GID" + "$TPWS" $uid --socks --bind-addr=127.0.0.1 --port=$SOCKS_PORT "$@" >/dev/null & + PID=$! + # give some time to initialize + minsleep +} +ws_kill() +{ + [ -z "$PID" ] || { + killwait -9 $PID 2>/dev/null + PID= + } +} + +check_domain_port_block() +{ + # $1 - domain + # $2 - port + local ip ips + echo + echo \* port block tests ipv$IPV $1:$2 + if netcat_setup; then + mdig_resolve_all $IPV ips $1 + if [ -n "$ips" ]; then + for ip in $ips; do + if netcat_test $ip $2; then + echo $ip connects + else + echo $ip does not connect. netcat code $? + fi + done + else + echo "ipv${IPV} $1 does not resolve" + fi + else + echo suitable netcat not found. busybox nc is not supported. pls install nmap ncat or openbsd netcat. + fi +} + +curl_test() +{ + # $1 - test function + # $2 - domain + # $3 - subst ip + # $4 - param of test function + local code=0 n=0 p pids + + if [ "$PARALLEL" = 1 ]; then + rm -f "${PARALLEL_OUT}"* + for n in $(seq -s ' ' 1 $REPEATS); do + $1 "$IPV" $2 $3 "$4" >"${PARALLEL_OUT}_$n" & + pids="${pids:+$pids }$!" + done + n=1 + for p in $pids; do + [ $REPEATS -gt 1 ] && printf "[attempt $n] " + if wait $p; then + [ $REPEATS -gt 1 ] && echo 'AVAILABLE' + else + code=$? + cat "${PARALLEL_OUT}_$n" + fi + n=$(($n+1)) + done + rm -f "${PARALLEL_OUT}"* + else + while [ $n -lt $REPEATS ]; do + n=$(($n+1)) + [ $REPEATS -gt 1 ] && printf "[attempt $n] " + if $1 "$IPV" $2 $3 "$4" ; then + [ $REPEATS -gt 1 ] && echo 'AVAILABLE' + else + code=$? + [ "$SCANLEVEL" = quick ] && break + fi + done + fi + [ "$4" = detail ] || { + if [ $code = 254 ]; then + echo "UNAVAILABLE" + elif [ $code = 0 ]; then + echo '!!!!! AVAILABLE !!!!!' + else + echo "UNAVAILABLE code=$code" + fi + } + return $code +} +ws_curl_test() +{ + + # $1 - ws start function + # $2 - test function + # $3 - domain + # $4,$5,$6, ... - ws params + local code ws_start=$1 testf=$2 dom="$3" + + [ "$SIMULATE" = 1 ] && { + n=$(random 0 99) + if [ "$n" -lt "$SIM_SUCCESS_RATE" ]; then + echo "SUCCESS" + return 0 + else + echo "FAILED" + return 7 + fi + } + shift + shift + shift + $ws_start "$@" + curl_test $testf "$dom" + code=$? + ws_kill + return $code +} +tpws_curl_test() +{ + # $1 - test function + # $2 - domain + # $3,$4,$5, ... - tpws params + echo - $1 ipv$IPV $2 : tpws $3 $4 $5 $6 $7 $8 $9${TPWS_EXTRA:+ $TPWS_EXTRA}${TPWS_EXTRA_1:+ "$TPWS_EXTRA_1"}${TPWS_EXTRA_2:+ "$TPWS_EXTRA_2"}${TPWS_EXTRA_3:+ "$TPWS_EXTRA_3"}${TPWS_EXTRA_4:+ "$TPWS_EXTRA_4"}${TPWS_EXTRA_5:+ "$TPWS_EXTRA_5"}${TPWS_EXTRA_6:+ "$TPWS_EXTRA_6"}${TPWS_EXTRA_7:+ "$TPWS_EXTRA_7"}${TPWS_EXTRA_8:+ "$TPWS_EXTRA_8"}${TPWS_EXTRA_9:+ "$TPWS_EXTRA_9"} + local ALL_PROXY="socks5://127.0.0.1:$SOCKS_PORT" + ws_curl_test tpws_start "$@"${TPWS_EXTRA:+ $TPWS_EXTRA}${TPWS_EXTRA_1:+ "$TPWS_EXTRA_1"}${TPWS_EXTRA_2:+ "$TPWS_EXTRA_2"}${TPWS_EXTRA_3:+ "$TPWS_EXTRA_3"}${TPWS_EXTRA_4:+ "$TPWS_EXTRA_4"}${TPWS_EXTRA_5:+ "$TPWS_EXTRA_5"}${TPWS_EXTRA_6:+ "$TPWS_EXTRA_6"}${TPWS_EXTRA_7:+ "$TPWS_EXTRA_7"}${TPWS_EXTRA_8:+ "$TPWS_EXTRA_8"}${TPWS_EXTRA_9:+ "$TPWS_EXTRA_9"} + local testf=$1 dom="$2" strategy code=$? + [ "$code" = 0 ] && { + shift; shift; + strategy="$@" + strategy_append_extra_tpws + report_append "$dom" "$testf ipv${IPV}" "tpws ${WF:+$WF }$strategy" + } + return $code +} +pktws_curl_test() +{ + # $1 - test function + # $2 - domain + # $3,$4,$5, ... - nfqws/dvtws params + local testf=$1 dom="$2" strategy code + + shift; shift; + echo - $testf ipv$IPV $dom : $PKTWSD ${WF:+$WF }${PKTWS_EXTRA_PRE:+$PKTWS_EXTRA_PRE }${PKTWS_EXTRA_PRE_1:+"$PKTWS_EXTRA_PRE_1" }${PKTWS_EXTRA_PRE_2:+"$PKTWS_EXTRA_PRE_2" }${PKTWS_EXTRA_PRE_3:+"$PKTWS_EXTRA_PRE_3" }${PKTWS_EXTRA_PRE_4:+"$PKTWS_EXTRA_PRE_4" }${PKTWS_EXTRA_PRE_5:+"$PKTWS_EXTRA_PRE_5" }${PKTWS_EXTRA_PRE_6:+"$PKTWS_EXTRA_PRE_6" }${PKTWS_EXTRA_PRE_7:+"$PKTWS_EXTRA_PRE_7" }${PKTWS_EXTRA_PRE_8:+"$PKTWS_EXTRA_PRE_8" }${PKTWS_EXTRA_PRE_9:+"$PKTWS_EXTRA_PRE_9" }$@${PKTWS_EXTRA:+ $PKTWS_EXTRA}${PKTWS_EXTRA_1:+ "$PKTWS_EXTRA_1"}${PKTWS_EXTRA_2:+ "$PKTWS_EXTRA_2"}${PKTWS_EXTRA_3:+ "$PKTWS_EXTRA_3"}${PKTWS_EXTRA_4:+ "$PKTWS_EXTRA_4"}${PKTWS_EXTRA_5:+ "$PKTWS_EXTRA_5"}${PKTWS_EXTRA_6:+ "$PKTWS_EXTRA_6"}${PKTWS_EXTRA_7:+ "$PKTWS_EXTRA_7"}${PKTWS_EXTRA_8:+ "$PKTWS_EXTRA_8"}${PKTWS_EXTRA_9:+ "$PKTWS_EXTRA_9"} + ws_curl_test pktws_start $testf "$dom" ${PKTWS_EXTRA_PRE:+$PKTWS_EXTRA_PRE }${PKTWS_EXTRA_PRE_1:+"$PKTWS_EXTRA_PRE_1" }${PKTWS_EXTRA_PRE_2:+"$PKTWS_EXTRA_PRE_2" }${PKTWS_EXTRA_PRE_3:+"$PKTWS_EXTRA_PRE_3" }${PKTWS_EXTRA_PRE_4:+"$PKTWS_EXTRA_PRE_4" }${PKTWS_EXTRA_PRE_5:+"$PKTWS_EXTRA_PRE_5" }${PKTWS_EXTRA_PRE_6:+"$PKTWS_EXTRA_PRE_6" }${PKTWS_EXTRA_PRE_7:+"$PKTWS_EXTRA_PRE_7" }${PKTWS_EXTRA_PRE_8:+"$PKTWS_EXTRA_PRE_8" }${PKTWS_EXTRA_PRE_9:+"$PKTWS_EXTRA_PRE_9" }"$@"${PKTWS_EXTRA:+ $PKTWS_EXTRA}${PKTWS_EXTRA_1:+ "$PKTWS_EXTRA_1"}${PKTWS_EXTRA_2:+ "$PKTWS_EXTRA_2"}${PKTWS_EXTRA_3:+ "$PKTWS_EXTRA_3"}${PKTWS_EXTRA_4:+ "$PKTWS_EXTRA_4"}${PKTWS_EXTRA_5:+ "$PKTWS_EXTRA_5"}${PKTWS_EXTRA_6:+ "$PKTWS_EXTRA_6"}${PKTWS_EXTRA_7:+ "$PKTWS_EXTRA_7"}${PKTWS_EXTRA_8:+ "$PKTWS_EXTRA_8"}${PKTWS_EXTRA_9:+ "$PKTWS_EXTRA_9"} + + code=$? + [ "$code" = 0 ] && { + strategy="$@" + strategy_append_extra_pktws + report_append "$dom" "$testf ipv${IPV}" "$PKTWSD ${WF:+$WF }$strategy" + } + return $code +} + +strategy_append_extra_pktws() +{ + strategy="${strategy:+${PKTWS_EXTRA_PRE:+$PKTWS_EXTRA_PRE }${PKTWS_EXTRA_PRE_1:+"$PKTWS_EXTRA_PRE_1" }${PKTWS_EXTRA_PRE_2:+"$PKTWS_EXTRA_PRE_2" }${PKTWS_EXTRA_PRE_3:+"$PKTWS_EXTRA_PRE_3" }${PKTWS_EXTRA_PRE_4:+"$PKTWS_EXTRA_PRE_4" }${PKTWS_EXTRA_PRE_5:+"$PKTWS_EXTRA_PRE_5" }${PKTWS_EXTRA_PRE_6:+"$PKTWS_EXTRA_PRE_6" }${PKTWS_EXTRA_PRE_7:+"$PKTWS_EXTRA_PRE_7" }${PKTWS_EXTRA_PRE_8:+"$PKTWS_EXTRA_PRE_8" }${PKTWS_EXTRA_PRE_9:+"$PKTWS_EXTRA_PRE_9" }$strategy${PKTWS_EXTRA:+ $PKTWS_EXTRA}${PKTWS_EXTRA_1:+ "$PKTWS_EXTRA_1"}${PKTWS_EXTRA_2:+ "$PKTWS_EXTRA_2"}${PKTWS_EXTRA_3:+ "$PKTWS_EXTRA_3"}${PKTWS_EXTRA_4:+ "$PKTWS_EXTRA_4"}${PKTWS_EXTRA_5:+ "$PKTWS_EXTRA_5"}${PKTWS_EXTRA_6:+ "$PKTWS_EXTRA_6"}${PKTWS_EXTRA_7:+ "$PKTWS_EXTRA_7"}${PKTWS_EXTRA_8:+ "$PKTWS_EXTRA_8"}${PKTWS_EXTRA_9:+ "$PKTWS_EXTRA_9"}}" +} +strategy_append_extra_tpws() +{ + strategy="${strategy:+${PKTWS_EXTRA_PRE:+$PKTWS_EXTRA_PRE }${PKTWS_EXTRA_PRE_1:+"$PKTWS_EXTRA_PRE_1" }${PKTWS_EXTRA_PRE_2:+"$PKTWS_EXTRA_PRE_2" }${PKTWS_EXTRA_PRE_3:+"$PKTWS_EXTRA_PRE_3" }${PKTWS_EXTRA_PRE_4:+"$PKTWS_EXTRA_PRE_4" }${PKTWS_EXTRA_PRE_5:+"$PKTWS_EXTRA_PRE_5" }${PKTWS_EXTRA_PRE_6:+"$PKTWS_EXTRA_PRE_6" }${PKTWS_EXTRA_PRE_7:+"$PKTWS_EXTRA_PRE_7" }${PKTWS_EXTRA_PRE_8:+"$PKTWS_EXTRA_PRE_8" }${PKTWS_EXTRA_PRE_9:+"$PKTWS_EXTRA_PRE_9" }$strategy${TPWS_EXTRA:+ $TPWS_EXTRA}${TPWS_EXTRA_1:+ "$TPWS_EXTRA_1"}${TPWS_EXTRA_2:+ "$TPWS_EXTRA_2"}${TPWS_EXTRA_3:+ "$TPWS_EXTRA_3"}${TPWS_EXTRA_4:+ "$TPWS_EXTRA_4"}${TPWS_EXTRA_5:+ "$TPWS_EXTRA_5"}${TPWS_EXTRA_6:+ "$TPWS_EXTRA_6"}${TPWS_EXTRA_7:+ "$TPWS_EXTRA_7"}${TPWS_EXTRA_8:+ "$TPWS_EXTRA_8"}${TPWS_EXTRA_9:+ "$TPWS_EXTRA_9"}}" +} + +xxxws_curl_test_update() +{ + # $1 - xxx_curl_test function + # $2 - test function + # $3 - domain + # $4,$5,$6, ... - nfqws/dvtws params + local code xxxf=$1 testf=$2 dom="$3" + shift + shift + shift + $xxxf $testf "$dom" "$@" + code=$? + [ $code = 0 ] && strategy="${strategy:-$@}" + return $code +} +pktws_curl_test_update() +{ + xxxws_curl_test_update pktws_curl_test "$@" +} +tpws_curl_test_update() +{ + xxxws_curl_test_update tpws_curl_test "$@" +} + +report_append() +{ + # $1 - domain + # $2 - test function + ipver + # $3 - value + local hashstr hash hashvar hashcountvar val ct + + # save resources if only one domain + [ "$DOMAINS_COUNT" -gt 1 ] && { + hashstr="$2 : $3" + hash="$(echo -n "$hashstr" | md5f)" + hashvar=RESHASH_${hash} + hashcountvar=${hashvar}_COUNTER + + NRESHASH=${NRESHASH:-0} + + eval val="\$$hashvar" + if [ -n "$val" ]; then + eval ct="\$$hashcountvar" + ct=$(($ct + 1)) + eval $hashcountvar="\$ct" + else + eval $hashvar=\"$hashstr\" + eval $hashcountvar=1 + eval RES_$NRESHASH="\$hash" + NRESHASH=$(($NRESHASH+1)) + fi + } + + NREPORT=${NREPORT:-0} + eval REPORT_${NREPORT}=\"$2 $1 : $3\" + NREPORT=$(($NREPORT+1)) +} +report_print() +{ + local n=0 s + NREPORT=${NREPORT:-0} + while [ $n -lt $NREPORT ]; do + eval s=\"\${REPORT_$n}\" + echo $s + n=$(($n+1)) + done +} +result_intersection_print() +{ + local n=0 hash hashvar hashcountvar ct val + while : ; do + eval hash=\"\$RES_$n\" + [ -n "$hash" ] || break + hashvar=RESHASH_${hash} + hashcountvar=${hashvar}_COUNTER + eval ct=\"\$$hashcountvar\" + [ "$ct" = "$DOMAINS_COUNT" ] && { + eval val=\"\$$hashvar\" + echo "$val" + } + n=$(($n + 1)) + done +} +report_strategy() +{ + # $1 - test function + # $2 - domain + # $3 - daemon + echo + if [ -n "$strategy" ]; then + # trim spaces at the end + strategy="$(echo "$strategy" | xargs)" + echo "!!!!! $1: working strategy found for ipv${IPV} $2 : $3 $strategy !!!!!" + echo + return 0 + else + echo "$1: $3 strategy for ipv${IPV} $2 not found" + echo + report_append "$2" "$1 ipv${IPV}" "$3 not working" + return 1 + fi +} +test_has_fakedsplit() +{ + contains "$1" fakedsplit || contains "$1" fakeddisorder +} +test_has_split() +{ + contains "$1" multisplit || contains "$1" multidisorder || test_has_fakedsplit "$1" +} +test_has_hostfakesplit() +{ + contains "$1" hostfakesplit +} +test_has_fake() +{ + [ "$1" = fake ] || starts_with "$1" fake, +} +warn_fool() +{ + case "$1" in + md5sig) echo 'WARNING ! although md5sig fooling worked it will not work on all sites. it typically works only on linux servers.' + [ "$2" = "fakedsplit" -o "$2" = "fakeddisorder" ] && \ + echo "WARNING ! fakedsplit/fakeddisorder with md5sig fooling and low split position causes MTU overflow with multi-segment TLS (kyber)" + ;; + datanoack) echo 'WARNING ! although datanoack fooling worked it may break NAT and may only work with external IP. Additionally it may require nftables to work correctly.' ;; + ts) echo 'WARNING ! although ts fooling worked it will not work without timestamps being enabled in the client OS. In windows timestamps are DISABLED by default.' + esac +} +pktws_curl_test_update_vary() +{ + # $1 - test function + # $2 - encrypted test : 0 = plain, 1 - encrypted with server reply risk, 2 - encrypted without server reply risk + # $3 - domain + # $4 - desync mode + # $5,$6,... - strategy + + local testf=$1 sec=$2 domain=$3 desync=$4 proto splits= pos fake ret=1 + local fake1=- fake2=- fake3=- fake4=- + + shift; shift; shift; shift + + proto=http + [ "$sec" = 0 ] || proto=tls + test_has_fake $desync && { + fake1="--dpi-desync-fake-$proto=0x00000000" + [ "$sec" = 0 ] || { + fake2='--dpi-desync-fake-tls=0x00000000 --dpi-desync-fake-tls=! --dpi-desync-fake-tls-mod=rnd,rndsni,dupsid' + # this splits actual fake to '1603' and modified standard fake from offset 2 + fake3='--dpi-desync-fake-tls=0x1603 --dpi-desync-fake-tls=!+2 --dpi-desync-fake-tls-mod=rnd,dupsid,rndsni --dpi-desync-fake-tcp-mod=seq' + fake4='--dpi-desync-fake-tls-mod=rnd,dupsid,rndsni,padencap' + } + } + if test_has_fakedsplit $desync ; then + splits="method+2 midsld" + [ "$sec" = 0 ] || splits="1 midsld" + # do not send fake first + fake1='--dpi-desync-fakedsplit-mod=altorder=1' + elif test_has_split $desync ; then + splits="method+2 midsld" + [ "$sec" = 0 ] || splits="1 midsld 1,midsld" + fi + test_has_hostfakesplit $desync && { + fake1="--dpi-desync-hostfakesplit-mod=altorder=1" + fake2="--dpi-desync-hostfakesplit-midhost=midsld" + fake3="--dpi-desync-hostfakesplit-mod=altorder=1 --dpi-desync-hostfakesplit-midhost=midsld" + } + for fake in '' "$fake1" "$fake2" "$fake3" "$fake4" ; do + [ "$fake" = "-" ] && continue + if [ -n "$splits" ]; then + for pos in $splits ; do + pktws_curl_test_update $testf "$domain" --dpi-desync=$desync "$@" --dpi-desync-split-pos=$pos $fake && { + [ "$SCANLEVEL" = force ] || return 0 + ret=0 + } + done + else + pktws_curl_test_update $testf "$domain" --dpi-desync=$desync "$@" $fake && { + [ "$SCANLEVEL" = force ] || return 0 + ret=0 + } + fi + done + + return $ret +} + +pktws_check_domain_http_bypass_() +{ + # $1 - test function + # $2 - encrypted test : 0 = plain, 1 - encrypted with server reply risk, 2 - encrypted without server reply risk + # $3 - domain + + local ok ttls attls s f f2 e desync pos fooling frag sec="$2" delta orig splits + local need_split need_disorder need_fakedsplit need_hostfakesplit need_fakeddisorder need_fake need_wssize + local splits_http='method+2 midsld method+2,midsld' + local splits_tls='2 1 sniext+1 sniext+4 host+1 midsld 1,midsld 1,sniext+1,host+1,midsld-2,midsld,midsld+2,endhost-1' + + [ "$sec" = 0 ] && { + for s in '--hostcase' '--hostspell=hoSt' '--hostnospace' '--domcase' '--methodeol'; do + pktws_curl_test_update $1 $3 $s && [ "$SCANLEVEL" = quick ] && return + done + } + + ttls=$(seq -s ' ' $MIN_TTL $MAX_TTL) + attls=$(seq -s ' ' $MIN_AUTOTTL_DELTA $MAX_AUTOTTL_DELTA) + need_wssize=1 + for e in '' '--wssize 1:6'; do + need_split= + need_disorder= + + [ -n "$e" ] && { + pktws_curl_test_update $1 $3 $e && [ "$SCANLEVEL" = quick ] && return + } + + for desync in multisplit multidisorder; do + ok=0 + splits="$splits_http" + [ "$sec" = 0 ] || splits="$splits_tls" + for pos in $splits; do + pktws_curl_test_update $1 $3 --dpi-desync=$desync --dpi-desync-split-pos=$pos $e && { + [ "$SCANLEVEL" = quick ] && return + ok=1 + need_wssize=0 + [ "$SCANLEVEL" = force ] || break + } + done + [ "$ok" = 1 -a "$SCANLEVEL" != force ] || { + case $desync in + multisplit) + need_split=1 + ;; + multidisorder) + need_disorder=1 + ;; + esac + } + done + + need_fakedsplit=1 + need_hostfakesplit=1 + need_fakeddisorder=1 + need_fake=1 + for desync in fake ${need_split:+fakedsplit fake,multisplit fake,fakedsplit hostfakesplit fake,hostfakesplit} ${need_disorder:+fakeddisorder fake,multidisorder fake,fakeddisorder}; do + [ "$need_fake" = 0 ] && test_has_fake "$desync" && continue + [ "$need_fakedsplit" = 0 ] && contains "$desync" fakedsplit && continue + [ "$need_hostfakesplit" = 0 ] && contains "$desync" hostfakesplit && continue + [ "$need_fakeddisorder" = 0 ] && contains "$desync" fakeddisorder && continue + ok=0 + for ttl in $ttls; do + # orig-ttl=1 with start/cutoff limiter drops empty ACK packet in response to SYN,ACK. it does not reach DPI or server. + # missing ACK is transmitted in the first data packet of TLS/HTTP proto + for f in '' '--orig-ttl=1 --orig-mod-start=s1 --orig-mod-cutoff=d1'; do + pktws_curl_test_update_vary $1 $2 $3 $desync --dpi-desync-ttl=$ttl $f $e && { + [ "$SCANLEVEL" = quick ] && return + ok=1 + need_wssize=0 + [ "$SCANLEVEL" = force ] || break + } + done + [ "$ok" = 1 ] && break + done + # only skip tests if TTL succeeded. do not skip if TTL failed but fooling succeeded + [ $ok = 1 -a "$SCANLEVEL" != force ] && { + [ "$desync" = fake ] && need_fake=0 + [ "$desync" = fakedsplit ] && need_fakedsplit=0 + [ "$desync" = hostfakesplit ] && need_hostfakesplit=0 + [ "$desync" = fakeddisorder ] && need_fakeddisorder=0 + } + f= + [ "$UNAME" = "OpenBSD" ] || f="badsum" + f="$f badseq datanoack ts md5sig" + [ "$IPV" = 6 ] && f="$f hopbyhop hopbyhop2" + for fooling in $f; do + ok=0 + f2= + pktws_curl_test_update_vary $1 $2 $3 $desync --dpi-desync-fooling=$fooling $e && { + warn_fool $fooling $desync + [ "$SCANLEVEL" = quick ] && return + need_wssize=0 + ok=1 + } + [ "$fooling" = badseq ] && { + [ "$ok" = 1 -a "$SCANLEVEL" != force ] && continue + # --dpi-desync-badseq-increment=0 leaves modified by default ack increment + pktws_curl_test_update_vary $1 $2 $3 $desync --dpi-desync-fooling=$fooling --dpi-desync-badseq-increment=0 $e && { + [ "$SCANLEVEL" = quick ] && return + need_wssize=0 + } + } + [ "$fooling" = md5sig ] && { + [ "$ok" = 1 -a "$SCANLEVEL" != force ] && continue + pktws_curl_test_update_vary $1 $2 $3 $desync --dpi-desync-fooling=$fooling --dup=1 --dup-cutoff=n2 --dup-fooling=md5sig $e && { + warn_fool $fooling $desync + echo "HINT ! To avoid possible 1 sec server response delay use --dup-ttl or --dup-autottl and block ICMP time exceeded" + [ "$SCANLEVEL" = quick ] && return + need_wssize=0 + } + } + done + done + + [ "$IPV" = 6 ] && { + f="hopbyhop ${need_split:+hopbyhop,multisplit} ${need_disorder:+hopbyhop,multidisorder} destopt ${need_split:+destopt,multisplit} ${need_disorder:+destopt,multidisorder}" + [ -n "$IP6_DEFRAG_DISABLE" ] && f="$f ipfrag1 ${need_split:+ ipfrag1,multisplit} ${need_disorder:+ ipfrag1,multidisorder}" + for desync in $f; do + pktws_curl_test_update_vary $1 $2 $3 $desync $e && { + [ "$SCANLEVEL" = quick ] && return + need_wssize=0 + } + done + } + + [ "$need_split" = 1 ] && { + # relative markers can be anywhere, even in subsequent packets. first packet can be MTU-full. + # make additional split pos "10" to guarantee enough space for seqovl and likely to be before midsld,sniext,... + # method is always expected in the beginning of the first packet + f="method+2 method+2,midsld" + [ "$sec" = 0 ] || f="10 10,sniext+1 10,sniext+4 10,midsld" + for pos in $f; do + pktws_curl_test_update $1 $3 --dpi-desync=multisplit --dpi-desync-split-pos=$pos --dpi-desync-split-seqovl=1 $e && { + [ "$SCANLEVEL" = quick ] && return + need_wssize=0 + } + done + [ "$sec" != 0 ] && pktws_curl_test_update $1 $3 --dpi-desync=multisplit --dpi-desync-split-pos=2 --dpi-desync-split-seqovl=336 --dpi-desync-split-seqovl-pattern="$ZAPRET_BASE/files/fake/tls_clienthello_iana_org.bin" $e && { + [ "$SCANLEVEL" = quick ] && return + need_wssize=0 + } + } + [ "$need_disorder" = 1 ] && { + if [ "$sec" = 0 ]; then + for pos in 'method+1 method+2' 'midsld-1 midsld' 'method+1 method+2,midsld'; do + f="$(extract_arg 1 $pos)" + f2="$(extract_arg 2 $pos)" + pktws_curl_test_update $1 $3 --dpi-desync=multidisorder --dpi-desync-split-pos=$f2 --dpi-desync-split-seqovl=$f $e && { + [ "$SCANLEVEL" = quick ] && return + need_wssize=0 + } + done + else + for pos in '1 2' 'sniext sniext+1' 'sniext+3 sniext+4' 'midsld-1 midsld' '1 2,midsld'; do + f=$(extract_arg 1 $pos) + f2=$(extract_arg 2 $pos) + pktws_curl_test_update $1 $3 --dpi-desync=multidisorder --dpi-desync-split-pos=$f2 --dpi-desync-split-seqovl=$f $e && { + [ "$SCANLEVEL" = quick ] && return + need_wssize=0 + } + done + fi + } + + need_fakedsplit=1 + need_fakeddisorder=1 + need_hostfakesplit=1 + need_fake=1 + for desync in fake ${need_split:+fakedsplit fake,multisplit fake,fakedsplit hostfakesplit fake,hostfakesplit} ${need_disorder:+fakeddisorder fake,multidisorder fake,fakeddisorder}; do + [ "$need_fake" = 0 ] && test_has_fake "$desync" && continue + [ "$need_fakedsplit" = 0 ] && contains "$desync" fakedsplit && continue + [ "$need_hostfakesplit" = 0 ] && contains "$desync" hostfakesplit && continue + [ "$need_fakeddisorder" = 0 ] && contains "$desync" fakeddisorder && continue + ok=0 + # orig-ttl=1 with start/cutoff limiter drops empty ACK packet in response to SYN,ACK. it does not reach DPI or server. + # missing ACK is transmitted in the first data packet of TLS/HTTP proto + for delta in $attls; do + for f in '' '--orig-ttl=1 --orig-mod-start=s1 --orig-mod-cutoff=d1'; do + pktws_curl_test_update_vary $1 $2 $3 $desync --dpi-desync-ttl=1 --dpi-desync-autottl=-$delta $f $e && ok=1 + [ "$ok" = 1 -a "$SCANLEVEL" != force ] && break + done + done + [ "$SCANLEVEL" = force ] && { + for orig in 1 2 3; do + for delta in $attls; do + pktws_curl_test_update_vary $1 $2 $3 $desync ${orig:+--orig-autottl=+$orig} --dpi-desync-ttl=1 --dpi-desync-autottl=-$delta $e && ok=1 + done + [ "$ok" = 1 -a "$SCANLEVEL" != force ] && break + done + } + [ "$ok" = 1 ] && + { + echo "WARNING ! although autottl worked it requires testing on multiple domains to find out reliable delta" + echo "WARNING ! if a reliable delta cannot be found it's a good idea not to use autottl" + [ "$SCANLEVEL" = quick ] && return + need_wssize=0 + [ "$SCANLEVEL" = force ] || { + [ "$desync" = fake ] && need_fake=0 + [ "$desync" = fakedsplit ] && need_fakedsplit=0 + [ "$desync" = hostfakesplit ] && need_hostfakesplit=0 + [ "$desync" = fakeddisorder ] && need_fakeddisorder=0 + } + } + done + + s="http_iana_org.bin" + [ "$sec" = 0 ] || s="tls_clienthello_iana_org.bin" + for desync in syndata ${need_split:+syndata,multisplit} ${need_disorder:+syndata,multidisorder} ; do + pktws_curl_test_update_vary $1 $2 $3 $desync $e && [ "$SCANLEVEL" = quick ] && return + pktws_curl_test_update_vary $1 $2 $3 $desync --dpi-desync-fake-syndata="$ZAPRET_BASE/files/fake/$s" $e && [ "$SCANLEVEL" = quick ] && return + done + + # do not do wssize test for http and TLS 1.3. it's useless + [ "$sec" = 1 ] || break + [ "$SCANLEVEL" = force -o "$need_wssize" = 1 ] || break + done +} +pktws_check_domain_http_bypass() +{ + # $1 - test function + # $2 - encrypted test : 0 = plain, 1 - encrypted with server reply risk, 2 - encrypted without server reply risk + # $3 - domain + + local strategy + pktws_check_domain_http_bypass_ "$@" + strategy_append_extra_pktws + report_strategy $1 $3 $PKTWSD +} + +pktws_check_domain_http3_bypass_() +{ + # $1 - test function + # $2 - domain + + local f desync frag tests rep fake + + for fake in '' "--dpi-desync-fake-quic=$ZAPRET_BASE/files/fake/quic_initial_www_google_com.bin"; do + for rep in '' 2 5 10 20; do + pktws_curl_test_update $1 $2 --dpi-desync=fake ${fake:+"$fake" }${rep:+--dpi-desync-repeats=$rep} && [ "$SCANLEVEL" != force ] && { + [ "$SCANLEVEL" = quick ] && return + break + } + done + done + + [ "$IPV" = 6 ] && { + f="hopbyhop destopt" + [ -n "$IP6_DEFRAG_DISABLE" ] && f="$f ipfrag1" + for desync in $f; do + pktws_curl_test_update $1 $2 --dpi-desync=$desync && [ "$SCANLEVEL" = quick ] && return + done + } + + # OpenBSD has checksum issues with fragmented packets + [ "$UNAME" != "OpenBSD" ] && [ "$IPV" = 4 -o -n "$IP6_DEFRAG_DISABLE" ] && { + for frag in 8 16 24 32 40 64; do + tests="ipfrag2" + [ "$IPV" = 6 ] && tests="$tests hopbyhop,ipfrag2 destopt,ipfrag2" + for desync in $tests; do + pktws_curl_test_update $1 $2 --dpi-desync=$desync --dpi-desync-ipfrag-pos-udp=$frag && [ "$SCANLEVEL" = quick ] && return + done + done + } + +} +pktws_check_domain_http3_bypass() +{ + # $1 - test function + # $2 - domain + + local strategy + pktws_check_domain_http3_bypass_ "$@" + strategy_append_extra_pktws + report_strategy $1 $2 $PKTWSD +} +warn_mss() +{ + [ -n "$1" ] && echo 'WARNING ! although mss worked it may not work on all sites and will likely cause significant slowdown. it may only be required for TLS1.2, not TLS1.3' + return 0 +} +fix_seg() +{ + # $1 - split-pos + [ -n "$FIX_SEG" ] && contains "$1" , && echo "$FIX_SEG" +} + +tpws_check_domain_http_bypass_() +{ + # $1 - test function + # $2 - encrypted test : 0 = plain, 1 - encrypted with server reply risk, 2 - encrypted without server reply risk + # $3 - domain + + local s mss s2 s3 oobdis pos sec="$2" + local splits_tls='2 1 sniext+1 sniext+4 host+1 midsld 1,midsld 1,sniext+1,host+1,midsld,endhost-1' + local splits_http='method+2 midsld method+2,midsld' + + # simulteneous oob and disorder works properly only in linux. other systems retransmit oob byte without URG tcp flag and poison tcp stream. + [ "$UNAME" = Linux ] && oobdis='--oob --disorder' + if [ "$sec" = 0 ]; then + for s in '--hostcase' '--hostspell=hoSt' '--hostdot' '--hosttab' '--hostnospace' '--domcase' ; do + tpws_curl_test_update $1 $3 $s && [ "$SCANLEVEL" = quick ] && return + done + for s in 1024 2048 4096 8192 16384 ; do + tpws_curl_test_update $1 $3 --hostpad=$s && [ "$SCANLEVEL" != force ] && { + [ "$SCANLEVEL" = quick ] && return + break + } + done + for s2 in '' '--hostcase' '--oob' '--disorder' ${oobdis:+"$oobdis"}; do + for s in $splits_http ; do + tpws_curl_test_update $1 $3 --split-pos=$s $(fix_seg $s) $s2 && [ "$SCANLEVEL" != force ] && { + [ "$SCANLEVEL" = quick ] && return + break + } + done + done + for s in '--methodspace' '--unixeol' '--methodeol'; do + tpws_curl_test_update $1 $3 $s && [ "$SCANLEVEL" = quick ] && return + done + else + local need_mss=1 + for mss in '' 88; do + s3=${mss:+--mss=$mss} + for s2 in '' '--oob' '--disorder' ${oobdis:+"$oobdis"}; do + for pos in $splits_tls; do + tpws_curl_test_update $1 $3 --split-pos=$pos $(fix_seg $pos) $s2 $s3 && warn_mss $s3 && [ "$SCANLEVEL" != force ] && { + [ "$SCANLEVEL" = quick ] && return + need_mss=0 + break + } + done + done + for s in '' '--oob' '--disorder' ${oobdis:+"$oobdis"}; do + for s2 in '--tlsrec=midsld' '--tlsrec=sniext+1 --split-pos=midsld' '--tlsrec=sniext+4 --split-pos=midsld' "--tlsrec=sniext+1 --split-pos=1,midsld $FIX_SEG" "--tlsrec=sniext+4 --split-pos=1,midsld $FIX_SEG" ; do + tpws_curl_test_update $1 $3 $s2 $s $s3 && warn_mss $s3 && [ "$SCANLEVEL" != force ] && { + [ "$SCANLEVEL" = quick ] && return + need_mss=0 + break + } + done + done + # only linux supports mss + [ "$UNAME" = Linux -a "$sec" = 1 ] || break + [ "$SCANLEVEL" = force -o "$need_mss" = 1 ] || break + done + fi +} +tpws_check_domain_http_bypass() +{ + # $1 - test function + # $2 - encrypted test : 0 = plain, 1 - encrypted with server reply risk, 2 - encrypted without server reply risk + # $3 - domain + + local strategy + tpws_check_domain_http_bypass_ "$@" + strategy_append_extra_tpws + report_strategy $1 $3 tpws +} + +check_dpi_ip_block() +{ + # $1 - test function + # $2 - domain + + local blocked_dom="$2" + local blocked_ip blocked_ips unblocked_ip + + echo + echo "- IP block tests (requires manual interpretation)" + + echo "> testing $UNBLOCKED_DOM on it's original ip" + if curl_test $1 $UNBLOCKED_DOM; then + mdig_resolve $IPV unblocked_ip $UNBLOCKED_DOM + [ -n "$unblocked_ip" ] || { + echo $UNBLOCKED_DOM does not resolve. tests not possible. + return 1 + } + + echo "> testing $blocked_dom on $unblocked_ip ($UNBLOCKED_DOM)" + curl_test $1 $blocked_dom $unblocked_ip detail + + mdig_resolve_all $IPV blocked_ips $blocked_dom + for blocked_ip in $blocked_ips; do + echo "> testing $UNBLOCKED_DOM on $blocked_ip ($blocked_dom)" + curl_test $1 $UNBLOCKED_DOM $blocked_ip detail + done + else + echo $UNBLOCKED_DOM is not available. skipping this test. + fi +} + +curl_has_reason_to_continue() +{ + # $1 - curl return code + for c in 1 2 3 4 6 27 ; do + [ $1 = $c ] && return 1 + done + return 0 +} + +check_domain_prolog() +{ + # $1 - test function + # $2 - port + # $3 - domain + + local code + + [ "$SIMULATE" = 1 ] && return 0 + + echo + echo \* $1 ipv$IPV $3 + + echo "- checking without DPI bypass" + curl_test $1 $3 && { + report_append "$3" "$1 ipv${IPV}" "working without bypass" + [ "$SCANLEVEL" = force ] || return 1 + } + code=$? + curl_has_reason_to_continue $code || { + report_append "$3" "$1 ipv${IPV}" "test aborted, no reason to continue. curl code $(curl_translate_code $code)" + return 1 + } + return 0 +} +check_domain_http_tcp() +{ + # $1 - test function + # $2 - port + # $3 - encrypted test : 0 = plain, 1 - encrypted with server reply risk, 2 - encrypted without server reply risk + # $4 - domain + + local ips + + # in case was interrupted before + pktws_ipt_unprepare_tcp $2 + ws_kill + + check_domain_prolog $1 $2 $4 || return + + [ "$SKIP_IPBLOCK" = 1 ] || check_dpi_ip_block $1 $4 + + [ "$SKIP_TPWS" = 1 ] || { + echo + tpws_check_domain_http_bypass $1 $3 $4 + } + + [ "$SKIP_PKTWS" = 1 ] || { + echo + echo preparing $PKTWSD redirection + mdig_resolve_all $IPV ips $4 + pktws_ipt_prepare_tcp $2 "$ips" + + pktws_check_domain_http_bypass $1 $3 $4 + + echo clearing $PKTWSD redirection + pktws_ipt_unprepare_tcp $2 + } +} +check_domain_http_udp() +{ + # $1 - test function + # $2 - port + # $3 - domain + + local ips + + # in case was interrupted before + pktws_ipt_unprepare_udp $2 + ws_kill + + check_domain_prolog $1 $2 $3 || return + + [ "$SKIP_PKTWS" = 1 ] || { + echo + echo preparing $PKTWSD redirection + mdig_resolve_all $IPV ips $3 + pktws_ipt_prepare_udp $2 "$ips" + + pktws_check_domain_http3_bypass $1 $3 + + echo clearing $PKTWSD redirection + pktws_ipt_unprepare_udp $2 + } +} + + +check_domain_http() +{ + # $1 - domain + check_domain_http_tcp curl_test_http $HTTP_PORT 0 $1 +} +check_domain_https_tls12() +{ + # $1 - domain + check_domain_http_tcp curl_test_https_tls12 $HTTPS_PORT 1 $1 +} +check_domain_https_tls13() +{ + # $1 - domain + check_domain_http_tcp curl_test_https_tls13 $HTTPS_PORT 2 $1 +} +check_domain_http3() +{ + # $1 - domain + check_domain_http_udp curl_test_http3 $QUIC_PORT $1 +} + +configure_ip_version() +{ + if [ "$IPV" = 6 ]; then + LOCALHOST=::1 + LOCALHOST_IPT=[${LOCALHOST}] + IPVV=6 + else + IPTABLES=iptables + LOCALHOST=127.0.0.1 + LOCALHOST_IPT=$LOCALHOST + IPVV= + fi + IPTABLES=ip${IPVV}tables +} +configure_curl_opt() +{ + # wolfssl : --tlsv1.x mandates exact ssl version, tls-max not supported + # openssl : --tlsv1.x means "version equal or greater", tls-max supported + TLSMAX12= + TLSMAX13= + curl_supports_tlsmax && { + TLSMAX12="--tls-max 1.2" + TLSMAX13="--tls-max 1.3" + } + TLS13= + curl_supports_tls13 && TLS13=1 + HTTP3= + curl_supports_http3 && HTTP3=1 + + HTTPS_HEAD=-I + [ "$CURL_HTTPS_GET" = 1 ] && HTTPS_HEAD= +} + +linux_ipv6_defrag_can_be_disabled() +{ + linux_min_version 4 16 +} + +configure_defrag() +{ + IP6_DEFRAG_DISABLE= + + [ "$IPVS" = 4 ] && return + + [ "$UNAME" = "Linux" ] && { + linux_ipv6_defrag_can_be_disabled || { + echo "WARNING ! ipv6 defrag can only be effectively disabled in linux kernel 4.16+" + echo "WARNING ! ipv6 ipfrag tests are disabled" + echo + return + } + } + + case "$FWTYPE" in + iptables) + if ipt6_has_raw ; then + if ipt6_has_frag; then + IP6_DEFRAG_DISABLE=1 + else + echo "WARNING ! ip6tables does not have '-m frag' module, ipv6 ipfrag tests are disabled" + echo + fi + else + echo "WARNING ! ip6tables raw table is not available, ipv6 ipfrag tests are disabled" + echo + fi + [ -n "$IP6_DEFRAG_DISABLE" ] && { + local ipexe="$(readlink -f $(whichq ip6tables))" + if contains "$ipexe" nft; then + echo "WARNING ! ipv6 ipfrag tests may have no effect if ip6tables-nft is used. current ip6tables point to : $ipexe" + else + echo "WARNING ! ipv6 ipfrag tests may have no effect if ip6table_raw kernel module is not loaded with parameter : raw_before_defrag=1" + fi + echo + } + ;; + *) + IP6_DEFRAG_DISABLE=1 + ;; + esac +} + +ask_params() +{ + echo + echo NOTE ! this test should be run with zapret or any other bypass software disabled, without VPN + echo + + curl_supports_connect_to || { + echo "installed curl does not support --connect-to option. pls install at least curl 7.49" + echo "current curl version:" + "$CURL" --version + exitp 1 + } + + local dom + [ -n "$DOMAINS" ] || { + DOMAINS="$DOMAINS_DEFAULT" + [ "$BATCH" = 1 ] || { + echo "specify domain(s) to test. multiple domains are space separated. URIs are supported (rutracker.org/forum/index.php)" + printf "domain(s) (default: $DOMAINS) : " + read dom + [ -n "$dom" ] && DOMAINS="$dom" + } + } + DOMAINS_COUNT="$(echo "$DOMAINS" | wc -w | trim)" + + local IPVS_def=4 + [ -n "$IPVS" ] || { + # yandex public dns + pingtest 6 2a02:6b8::feed:0ff && IPVS_def=46 + [ "$BATCH" = 1 ] || { + printf "ip protocol version(s) - 4, 6 or 46 for both (default: $IPVS_def) : " + read IPVS + } + [ -n "$IPVS" ] || IPVS=$IPVS_def + [ "$IPVS" = 4 -o "$IPVS" = 6 -o "$IPVS" = 46 ] || { + echo 'invalid ip version(s). should be 4, 6 or 46.' + exitp 1 + } + } + [ "$IPVS" = 46 ] && IPVS="4 6" + + configure_curl_opt + + [ -n "$ENABLE_HTTP" ] || { + ENABLE_HTTP=1 + [ "$BATCH" = 1 ] || { + echo + ask_yes_no_var ENABLE_HTTP "check http" + } + } + + [ -n "$ENABLE_HTTPS_TLS12" ] || { + ENABLE_HTTPS_TLS12=1 + [ "$BATCH" = 1 ] || { + echo + ask_yes_no_var ENABLE_HTTPS_TLS12 "check https tls 1.2" + } + } + + [ -n "$ENABLE_HTTPS_TLS13" ] || { + ENABLE_HTTPS_TLS13=0 + if [ -n "$TLS13" ]; then + [ "$BATCH" = 1 ] || { + echo + echo "TLS 1.3 uses encrypted ServerHello. DPI cannot check domain name in server response." + echo "This can allow more bypass strategies to work." + echo "What works for TLS 1.2 will also work for TLS 1.3 but not vice versa." + echo "Most sites nowadays support TLS 1.3 but not all. If you can't find a strategy for TLS 1.2 use this test." + echo "TLS 1.3 only strategy is better than nothing." + ask_yes_no_var ENABLE_HTTPS_TLS13 "check https tls 1.3" + } + else + echo + echo "installed curl version does not support TLS 1.3 . tests disabled." + fi + } + + [ -n "$ENABLE_HTTP3" ] || { + ENABLE_HTTP3=0 + if [ -n "$HTTP3" ]; then + ENABLE_HTTP3=1 + [ "$BATCH" = 1 ] || { + echo + echo "make sure target domain(s) support QUIC or result will be negative in any case" + ask_yes_no_var ENABLE_HTTP3 "check http3 QUIC" + } + else + echo + echo "installed curl version does not support http3 QUIC. tests disabled." + fi + } + + [ -n "$REPEATS" ] || { + [ "$BATCH" = 1 ] || { + echo + echo "sometimes ISPs use multiple DPIs or load balancing. bypass strategies may work unstable." + printf "how many times to repeat each test (default: 1) : " + read REPEATS + } + REPEATS=$((0+${REPEATS:-1})) + [ "$REPEATS" = 0 ] && { + echo invalid repeat count + exitp 1 + } + } + [ -z "$PARALLEL" -a $REPEATS -gt 1 ] && { + PARALLEL=0 + [ "$BATCH" = 1 ] || { + echo + echo "parallel scan can greatly increase speed but may also trigger DDoS protection and cause false result" + ask_yes_no_var PARALLEL "enable parallel scan" + } + } + PARALLEL=${PARALLEL:-0} + + [ -n "$SCANLEVEL" ] || { + SCANLEVEL=standard + [ "$BATCH" = 1 ] || { + echo + echo quick - scan as fast as possible to reveal any working strategy + echo standard - do investigation what works on your DPI + echo force - scan maximum despite of result + ask_list SCANLEVEL "quick standard force" "$SCANLEVEL" + # disable tpws checks by default in quick mode + [ "$SCANLEVEL" = quick -a -z "$SKIP_TPWS" -a "$UNAME" != Darwin ] && SKIP_TPWS=1 + } + } + + echo + + configure_defrag +} + + + +ping_with_fix() +{ + local ret + $PING $2 $1 >/dev/null 2>/dev/null + ret=$? + # can be because of unsupported -4 option + if [ "$ret" = 2 -o "$ret" = 64 ]; then + ping $2 $1 >/dev/null + else + return $ret + fi +} + +pingtest() +{ + # $1 - ip version : 4 or 6 + # $2 - domain or ip + + # ping command can vary a lot. some implementations have -4/-6 options. others don.t + # WARNING ! macos ping6 command does not have timeout option. ping6 will fail + + local PING=ping ret + if [ "$1" = 6 ]; then + if exists ping6; then + PING=ping6 + else + PING="ping -6" + fi + else + if [ "$UNAME" = Darwin -o "$UNAME" = FreeBSD -o "$UNAME" = OpenBSD ]; then + # ping by default pings ipv4, ping6 only pings ipv6 + # in FreeBSD -4/-6 options are supported, in others not + PING=ping + else + # this can be linux or cygwin + # in linux it's not possible for sure to figure out if it supports -4/-6. only try and check for result code=2 (invalid option) + PING="ping -4" + fi + fi + case "$UNAME" in + Darwin) + $PING -c 1 -t 1 $2 >/dev/null 2>/dev/null + # WARNING ! macos ping6 command does not have timeout option. ping6 will fail. but without timeout is not an option. + ;; + OpenBSD) + $PING -c 1 -w 1 $2 >/dev/null + ;; + CYGWIN) + if starts_with "$(which ping)" /cygdrive; then + # cygwin does not have own ping by default. use windows PING. + $PING -n 1 -w 1000 $2 >/dev/null + else + ping_with_fix $2 '-c 1 -w 1' + fi + ;; + *) + ping_with_fix $2 '-c 1 -W 1' + ;; + esac +} +dnstest() +{ + # $1 - dns server. empty for system resolver + "$LOOKUP" iana.org $1 >/dev/null 2>/dev/null +} +find_working_public_dns() +{ + local dns + for dns in $DNSCHECK_DNS; do + pingtest 4 $dns && dnstest $dns && { + PUBDNS=$dns + return 0 + } + done + return 1 +} +lookup4() +{ + # $1 - domain + # $2 - DNS + case "$LOOKUP" in + nslookup) + if is_linked_to_busybox nslookup; then + nslookup $1 $2 2>/dev/null | sed -e '1,3d' -nre 's/^.*:[^0-9]*(([0-9]{1,3}\.){3}[0-9]{1,3}).*$/\1/p' + else + nslookup $1 $2 2>/dev/null | sed -e '1,3d' -nre 's/^[^0-9]*(([0-9]{1,3}\.){3}[0-9]{1,3}).*$/\1/p' + fi + ;; + host) + host -t A $1 $2 | grep "has address" | grep -oE '([0-9]{1,3}\.){3}[0-9]{1,3}' + ;; + esac +} +check_dns_spoof() +{ + # $1 - domain + # $2 - public DNS + + # windows version of mdig outputs 0D0A line ending. remove 0D. + echo $1 | "$MDIG" --family=4 | tr -d '\r' >"$DNSCHECK_DIG1" + lookup4 $1 $2 >"$DNSCHECK_DIG2" + # check whether system resolver returns anything other than public DNS + grep -qvFf "$DNSCHECK_DIG2" "$DNSCHECK_DIG1" +} +check_dns_cleanup() +{ + rm -f "$DNSCHECK_DIG1" "$DNSCHECK_DIG2" "$DNSCHECK_DIGS" 2>/dev/null +} +check_dns_() +{ + local C1 C2 dom + + DNS_IS_SPOOFED=0 + + [ "$SKIP_DNSCHECK" = 1 ] && return 0 + + echo \* checking DNS + + [ -f "$DNSCHECK_DIGS" ] && rm -f "$DNSCHECK_DIGS" + + dnstest || { + echo -- DNS is not working. It's either misconfigured or blocked or you don't have inet access. + return 1 + } + echo system DNS is working + + if find_working_public_dns ; then + echo comparing system resolver to public DNS : $PUBDNS + for dom in $DNSCHECK_DOM; do + if check_dns_spoof "$dom" $PUBDNS ; then + echo $dom : MISMATCH + echo -- system resolver : + cat "$DNSCHECK_DIG1" + echo -- $PUBDNS : + cat "$DNSCHECK_DIG2" + check_dns_cleanup + echo -- POSSIBLE DNS HIJACK DETECTED. ZAPRET WILL NOT HELP YOU IN CASE DNS IS SPOOFED !!! + echo -- DNS CHANGE OR DNSCRYPT MAY BE REQUIRED + DNS_IS_SPOOFED=1 + return 1 + else + echo $dom : OK + cat "$DNSCHECK_DIG1" >>"$DNSCHECK_DIGS" + fi + done + else + echo no working public DNS was found. looks like public DNS blocked. + for dom in $DNSCHECK_DOM; do echo $dom; done | "$MDIG" --threads=10 --family=4 >"$DNSCHECK_DIGS" + fi + + echo "checking resolved IP uniqueness for : $DNSCHECK_DOM" + echo "censor's DNS can return equal result for multiple blocked domains." + C1=$(wc -l <"$DNSCHECK_DIGS") + C2=$(sort -u "$DNSCHECK_DIGS" | wc -l) + [ "$C1" -eq 0 ] && + { + echo -- DNS is not working. It's either misconfigured or blocked or you don't have inet access. + check_dns_cleanup + return 1 + } + [ "$C1" = "$C2" ] || + { + echo system dns resolver has returned equal IPs for some domains checked above \($C1 total, $C2 unique\) + echo non-unique IPs : + sort "$DNSCHECK_DIGS" | uniq -d + echo -- POSSIBLE DNS HIJACK DETECTED. ZAPRET WILL NOT HELP YOU IN CASE DNS IS SPOOFED !!! + echo -- DNSCRYPT MAY BE REQUIRED + check_dns_cleanup + DNS_IS_SPOOFED=1 + return 1 + } + echo all resolved IPs are unique + echo -- DNS looks good + echo -- NOTE this check is Russia targeted. In your country other domains may be blocked. + check_dns_cleanup + return 0 +} + +check_dns() +{ + local r + check_dns_ + r=$? + [ "$DNS_IS_SPOOFED" = 1 ] && SECURE_DNS=${SECURE_DNS:-1} + [ "$SECURE_DNS" = 1 ] && { + doh_find_working || { + echo could not find working DoH server. exiting. + exitp 7 + } + } + return $r +} + +unprepare_all() +{ + # make sure we are not in a middle state that impacts connectivity + ws_kill + wait + [ -n "$IPV" ] && { + pktws_ipt_unprepare_tcp $HTTP_PORT + pktws_ipt_unprepare_tcp $HTTPS_PORT + pktws_ipt_unprepare_udp $QUIC_PORT + } + cleanup + rm -f "${HDRTEMP}"* "${PARALLEL_OUT}"* +} +sigint() +{ + echo + echo terminating... + unprepare_all + exitp 1 +} +sigint_cleanup() +{ + cleanup + exit 1 +} +sigsilent() +{ + # must not write anything here to stdout + unprepare_all + exit 1 +} + +fsleep_setup +fix_sbin_path +check_system +check_already +# no divert sockets in MacOS +[ "$UNAME" = "Darwin" ] && SKIP_PKTWS=1 +[ "$UNAME" != CYGWIN -a "$SKIP_PKTWS" != 1 ] && require_root +check_prerequisites +trap sigint_cleanup INT +check_dns +check_virt +ask_params +trap - INT + +PID= +NREPORT= +unset WF +trap sigint INT +trap sigsilent PIPE +trap sigsilent HUP +for dom in $DOMAINS; do + for IPV in $IPVS; do + configure_ip_version + [ "$ENABLE_HTTP" = 1 ] && { + [ "$SKIP_IPBLOCK" = 1 ] || check_domain_port_block $dom $HTTP_PORT + check_domain_http $dom + } + [ "$ENABLE_HTTPS_TLS12" = 1 -o "$ENABLE_HTTPS_TLS13" = 1 ] && [ "$SKIP_IPBLOCK" != 1 ] && check_domain_port_block $dom $HTTPS_PORT + [ "$ENABLE_HTTPS_TLS12" = 1 ] && check_domain_https_tls12 $dom + [ "$ENABLE_HTTPS_TLS13" = 1 ] && check_domain_https_tls13 $dom + [ "$ENABLE_HTTP3" = 1 ] && check_domain_http3 $dom + done +done +trap - HUP +trap - PIPE +trap - INT + +cleanup + +echo +echo \* SUMMARY +report_print +[ "$DOMAINS_COUNT" -gt 1 ] && { + echo + echo \* COMMON + result_intersection_print + echo + [ "$SCANLEVEL" = force ] || { + echo "blockcheck optimizes test sequence. To save time some strategies can be skipped if their test is considered useless." + echo "That's why COMMON intersection can miss strategies that would work for all domains." + echo "Use \"force\" scan level to test all strategies and generate trustable intersection." + echo "Current scan level was \"$SCANLEVEL\"". + } +} +echo +echo "Please note this SUMMARY does not guarantee a magic pill for you to copy/paste and be happy." +echo "Understanding how strategies work is very desirable." +echo "This knowledge allows to understand better which strategies to prefer and which to avoid if possible, how to combine strategies." +echo "Blockcheck does it's best to prioritize good strategies but it's not bullet-proof." +echo "It was designed not as magic pill maker but as a DPI bypass test tool." + +exitp 0 diff --git a/blockcheck/zapret/blog.sh b/blockcheck/zapret/blog.sh new file mode 100644 index 0000000..1bd7f84 --- /dev/null +++ b/blockcheck/zapret/blog.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +EXEDIR="$(dirname "$0")" +EXEDIR="$(cd "$EXEDIR"; pwd)" + +"$EXEDIR/blockcheck.sh" 2>&1 | tee "$EXEDIR/../blockcheck.log" +# windows 7 notepad does not view unix EOL correctly +unix2dos "$EXEDIR/../blockcheck.log" diff --git a/blockcheck/zapret/blog_kyber.sh b/blockcheck/zapret/blog_kyber.sh new file mode 100644 index 0000000..a7bd700 --- /dev/null +++ b/blockcheck/zapret/blog_kyber.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +EXEDIR="$(dirname "$0")" +EXEDIR="$(cd "$EXEDIR"; pwd)" + +CURL=curl-kyber exec "$EXEDIR/blog.sh" diff --git a/blockcheck/zapret/common/base.sh b/blockcheck/zapret/common/base.sh new file mode 100644 index 0000000..bba049f --- /dev/null +++ b/blockcheck/zapret/common/base.sh @@ -0,0 +1,460 @@ +which() +{ + # on some systems 'which' command is considered deprecated and not installed by default + # 'command -v' replacement does not work exactly the same way. it outputs shell aliases if present + # $1 - executable name + local IFS=: + [ "$1" != "${1#/}" ] && [ -x "$1" ] && { + echo "$1" + return 0 + } + for p in $PATH; do + [ -x "$p/$1" ] && { + echo "$p/$1" + return 0 + } + done + return 1 +} +exists() +{ + which "$1" >/dev/null 2>/dev/null +} +existf() +{ + type "$1" >/dev/null 2>/dev/null +} +whichq() +{ + which $1 2>/dev/null +} +exist_all() +{ + while [ -n "$1" ]; do + exists "$1" || return 1 + shift + done + return 0 +} +on_off_function() +{ + # $1 : function name on + # $2 : function name off + # $3 : 0 - off, 1 - on + local F="$1" + [ "$3" = "1" ] || F="$2" + shift + shift + shift + "$F" "$@" +} +contains() +{ + # check if substring $2 contains in $1 + [ "${1#*$2}" != "$1" ] +} +starts_with() +{ + # $1 : what + # $2 : starts with + case "$1" in + "$2"*) + return 0 + ;; + esac + return 1 +} +extract_arg() +{ + # $1 - arg number + # $2,$3,... - args + local n=$1 + while [ -n "$1" ]; do + shift + [ $n -eq 1 ] && { echo "$1"; return 0; } + n=$(($n-1)) + done + return 1 +} +find_str_in_list() +{ + # $1 - string + # $2 - space separated values + local v + [ -n "$1" ] && { + for v in $2; do + [ "$v" = "$1" ] && return 0 + done + } + return 1 +} +end_with_newline() +{ + local c="$(tail -c 1)" + [ "$c" = "" ] +} +trim() +{ + awk '{gsub(/^ +| +$/,"")}1' +} +split_by_separator() +{ + # $1 - string + # $2 - separator + # $3 - var name to get "before" part + # $4 - var name to get "after" part + local before="${1%%$2*}" + local after="${1#*$2}" + [ "$after" = "$1" ] && after= + [ -n "$3" ] && eval $3="\$before" + [ -n "$4" ] && eval $4="\$after" +} +tolower() +{ + echo "$@" | tr 'A-Z' 'a-z' +} + +dir_is_not_empty() +{ + # $1 - directory + local n + [ -d "$1" ] || return 1 + n=$(ls "$1" | wc -c | xargs) + [ "$n" != 0 ] +} + +append_separator_list() +{ + # $1 - var name to receive result + # $2 - separator + # $3 - quoter + # $4,$5,... - elements + local _var="$1" sep="$2" quo="$3" i + + eval i="\$$_var" + shift; shift; shift + while [ -n "$1" ]; do + if [ -n "$i" ] ; then + i="$i$sep$quo$1$quo" + else + i="$quo$1$quo" + fi + shift + done + eval $_var="\$i" +} +make_separator_list() +{ + eval $1='' + append_separator_list "$@" +} +make_comma_list() +{ + # $1 - var name to receive result + # $2,$3,... - elements + local var="$1" + shift + make_separator_list $var , '' "$@" +} +make_quoted_comma_list() +{ + # $1 - var name to receive result + # $2,$3,... - elements + local var="$1" + shift + make_separator_list $var , '"' "$@" +} +unique() +{ + local i + for i in "$@"; do echo $i; done | sort -u | xargs +} + +is_linked_to_busybox() +{ + local IFS F P + + IFS=: + for path in $PATH; do + F=$path/$1 + P="$(readlink $F)" + if [ -z "$P" ] && [ -x $F ] && [ ! -L $F ]; then return 1; fi + [ "${P%busybox*}" != "$P" ] && return + done +} +get_dir_inode() +{ + local dir="$1" + [ -L "$dir" ] && dir=$(readlink "$dir") + ls -id "$dir" | awk '{print $1}' +} + +linux_min_version() +{ + # $1 - major ver + # $2 - minor ver + local V1=$(sed -nre 's/^Linux version ([0-9]+)\.[0-9]+.*$/\1/p' /proc/version) + local V2=$(sed -nre 's/^Linux version [0-9]+\.([0-9]+).*$/\1/p' /proc/version) + [ -n "$V1" -a -n "$V2" ] && [ "$V1" -gt "$1" -o "$V1" -eq "$1" -a "$V2" -ge "$2" ] +} +linux_get_subsys() +{ + local INIT="$(sed 's/\x0/\n/g' /proc/1/cmdline | head -n 1)" + + [ -L "$INIT" ] && INIT=$(readlink "$INIT") + INIT="$(basename "$INIT")" + if [ -f "/etc/openwrt_release" ] && [ "$INIT" = "procd" ] ; then + SUBSYS=openwrt + elif [ -x "/bin/ndm" ] ; then + SUBSYS=keenetic + else + # generic linux + SUBSYS= + fi +} +openwrt_fw3() +{ + [ ! -x /sbin/fw4 -a -x /sbin/fw3 ] +} +openwrt_fw4() +{ + [ -x /sbin/fw4 ] +} +openwrt_fw3_integration() +{ + [ "$FWTYPE" = iptables ] && openwrt_fw3 +} + +create_dev_stdin() +{ + [ -e /dev/stdin ] || ln -s /proc/self/fd/0 /dev/stdin +} + +call_for_multiple_items() +{ + # $1 - function to get an item + # $2 - variable name to put result into + # $3 - space separated parameters to function $1 + + local i item items + for i in $3; do + $1 item $i + [ -n "$item" ] && { + if [ -n "$items" ]; then + items="$items $item" + else + items="$item" + fi + } + done + eval $2=\"$items\" +} + +fix_sbin_path() +{ + local IFS=':' + printf "%s\n" $PATH | grep -Fxq '/usr/sbin' || PATH="/usr/sbin:$PATH" + printf "%s\n" $PATH | grep -Fxq '/sbin' || PATH="/sbin:$PATH" + export PATH +} + +# it can calculate floating point expr +calc() +{ + LC_ALL=C awk "BEGIN { print $*}"; +} + +fsleep_setup() +{ + [ -n "$FSLEEP" ] || { + if sleep 0.001 2>/dev/null; then + FSLEEP=1 + elif busybox usleep 1 2>/dev/null; then + FSLEEP=2 + else + local errtext="$(read -t 0.001 2>&1)" + if [ -z "$errtext" ]; then + FSLEEP=3 + # newer openwrt has ucode with system function that supports timeout in ms + elif ucode -e "system(['sleep','1'], 1)" 2>/dev/null; then + FSLEEP=4 + # older openwrt may have lua and nixio lua module + elif lua -e 'require "nixio".nanosleep(0,1)' 2>/dev/null ; then + FSLEEP=5 + else + FSLEEP=0 + fi + fi + } +} +msleep() +{ + # $1 - milliseconds + case "$FSLEEP" in + 1) + sleep $(calc $1/1000) + ;; + 2) + busybox usleep $(calc $1*1000) + ;; + 3) + read -t $(calc $1/1000) + ;; + 4) + ucode -e "system(['sleep','2147483647'], $1)" + ;; + 5) + lua -e "require 'nixio'.nanosleep($(($1/1000)),$(calc $1%1000*1000000))" + ;; + *) + sleep $((($1+999)/1000)) + esac +} +minsleep() +{ + msleep 100 +} + +replace_char() +{ + local a="$1" + local b="$2" + shift; shift + echo "$@" | tr "$a" "$b" +} + +replace_str() +{ + local a=$(echo "$1" | sed 's/\//\\\//g') + local b=$(echo "$2" | sed 's/\//\\\//g') + shift; shift + echo "$@" | sed "s/$a/$b/g" +} + +setup_md5() +{ + [ -n "$MD5" ] && return + MD5=md5sum + exists $MD5 || MD5=md5 +} + +md5f() +{ + setup_md5 + $MD5 | cut -d ' ' -f1 +} + +setup_random() +{ + [ -n "$RCUT" ] && return + RCUT="cut -c 1-17" + # some shells can operate with 32 bit signed int + [ $((0x100000000)) = 0 ] && RCUT="cut -c 1-9" +} + +random() +{ + # $1 - min, $2 - max + local r rs + setup_random + if [ -c /dev/urandom ]; then + read rs /dev/null + elif exists pidof; then + pidof $1 >/dev/null + else + return 1 + fi +} + +win_process_exists() +{ + tasklist /NH /FI "IMAGENAME eq ${1}.exe" | grep -q "^${1}.exe" +} + +alloc_num() +{ + # $1 - source var name + # $2 - target var name + # $3 - min + # $4 - max + + local v + eval v="\$$2" + # do not replace existing value + [ -n "$v" ] && return + eval v="\$$1" + [ -n "$v" ] || v=$3 + eval $2="$v" + v=$((v + 1)) + [ $v -gt $4 ] && v=$3 + eval $1="$v" +} + +std_ports() +{ + TPWS_PORTS_IPT=$(replace_char - : $TPWS_PORTS) + NFQWS_PORTS_TCP_IPT=$(replace_char - : $NFQWS_PORTS_TCP) + NFQWS_PORTS_TCP_KEEPALIVE_IPT=$(replace_char - : $NFQWS_PORTS_TCP_KEEPALIVE) + NFQWS_PORTS_UDP_IPT=$(replace_char - : $NFQWS_PORTS_UDP) + NFQWS_PORTS_UDP_KEEPALIVE_IPT=$(replace_char - : $NFQWS_PORTS_UDP_KEEPALIVE) +} + +has_bad_ws_options() +{ + # $1 - nfqws/tpws opts + + contains "$1" "--ipset" && { + echo + echo "WARNING !!! --ipset parameter is present" + echo "It's OK if you only specialize already redirected traffic and also process the rest." + echo "If you redirect port X to process several IPs from the list and do nothing with the rest - IT'S VERY INEFFECTIVE !" + echo "Kernel ipsets should be used instead. Write custom scripts and filter IPs in kernel." + echo + } + + return 1 +} +check_bad_ws_options() +{ + # $1 - 0 = stop, 1 = start + # $2 - nfqws/tpws options + if [ "$1" = 1 ] && has_bad_ws_options "$2"; then + echo "!!! REFUSING TO USE BAD OPTIONS : $2" + help_bad_ws_options + return 1 + else + return 0 + fi +} +help_bad_ws_options() +{ + echo "WARNING ! BAD options detected" +} diff --git a/blockcheck/zapret/common/dialog.sh b/blockcheck/zapret/common/dialog.sh new file mode 100644 index 0000000..ec1c9aa --- /dev/null +++ b/blockcheck/zapret/common/dialog.sh @@ -0,0 +1,57 @@ +read_yes_no() +{ + # $1 - default (Y/N) + local A + read A + [ -z "$A" ] || ([ "$A" != "Y" ] && [ "$A" != "y" ] && [ "$A" != "N" ] && [ "$A" != "n" ]) && A=$1 + [ "$A" = "Y" ] || [ "$A" = "y" ] || [ "$A" = "1" ] +} +ask_yes_no() +{ + # $1 - default (Y/N or 0/1) + # $2 - text + local DEFAULT=$1 + [ "$1" = "1" ] && DEFAULT=Y + [ "$1" = "0" ] && DEFAULT=N + [ -z "$DEFAULT" ] && DEFAULT=N + printf "$2 (default : $DEFAULT) (Y/N) ? " + read_yes_no $DEFAULT +} +ask_yes_no_var() +{ + # $1 - variable name for answer : 0/1 + # $2 - text + local DEFAULT + eval DEFAULT="\$$1" + if ask_yes_no "$DEFAULT" "$2"; then + eval $1=1 + else + eval $1=0 + fi +} +ask_list() +{ + # $1 - mode var + # $2 - space separated value list + # $3 - (optional) default value + local M_DEFAULT + eval M_DEFAULT="\$$1" + local M_DEFAULT_VAR="$M_DEFAULT" + local M="" m + + [ -n "$3" ] && { find_str_in_list "$M_DEFAULT" "$2" || M_DEFAULT="$3" ;} + + n=1 + for m in $2; do + echo $n : $m + n=$(($n+1)) + done + printf "your choice (default : $M_DEFAULT) : " + read m + [ -n "$m" ] && M=$(echo $2 | cut -d ' ' -f$m 2>/dev/null) + [ -z "$M" ] && M="$M_DEFAULT" + echo selected : $M + eval $1="\"$M\"" + + [ "$M" != "$M_DEFAULT_VAR" ] +} diff --git a/blockcheck/zapret/common/elevate.sh b/blockcheck/zapret/common/elevate.sh new file mode 100644 index 0000000..bc86a96 --- /dev/null +++ b/blockcheck/zapret/common/elevate.sh @@ -0,0 +1,28 @@ +require_root() +{ + local exe preserve_env + echo \* checking privileges + [ $(id -u) -ne "0" ] && { + echo root is required + exe="$EXEDIR/$(basename "$0")" + exists sudo && { + echo elevating with sudo + exec sudo -E sh "$exe" + } + exists su && { + echo elevating with su + case "$UNAME" in + Linux) + preserve_env="--preserve-environment" + ;; + FreeBSD|OpenBSD|Darwin) + preserve_env="-m" + ;; + esac + exec su $preserve_env root -c "sh \"$exe\"" + } + echo su or sudo not found + exitp 2 + } + HAVE_ROOT=1 +} diff --git a/blockcheck/zapret/common/fwtype.sh b/blockcheck/zapret/common/fwtype.sh new file mode 100644 index 0000000..61390bb --- /dev/null +++ b/blockcheck/zapret/common/fwtype.sh @@ -0,0 +1,64 @@ +linux_ipt_avail() +{ + exists iptables && exists ip6tables +} +linux_maybe_iptables_fwtype() +{ + linux_ipt_avail && FWTYPE=iptables +} +linux_nft_avail() +{ + exists nft +} +linux_fwtype() +{ + [ -n "$FWTYPE" ] && return + + FWTYPE=unsupported + + linux_get_subsys + if [ "$SUBSYS" = openwrt ] ; then + # linux kernel is new enough if fw4 is there + if [ -x /sbin/fw4 ] && linux_nft_avail ; then + FWTYPE=nftables + else + linux_maybe_iptables_fwtype + fi + else + SUBSYS= + # generic linux + # flowtable is implemented since kernel 4.16 + if linux_nft_avail && linux_min_version 4 16; then + FWTYPE=nftables + else + linux_maybe_iptables_fwtype + fi + fi + + export FWTYPE +} + +get_fwtype() +{ + [ -n "$FWTYPE" ] && return + + local UNAME="$(uname)" + + case "$UNAME" in + Linux) + linux_fwtype + ;; + FreeBSD) + if exists ipfw ; then + FWTYPE=ipfw + else + FWTYPE=unsupported + fi + ;; + *) + FWTYPE=unsupported + ;; + esac + + export FWTYPE +} diff --git a/blockcheck/zapret/common/virt.sh b/blockcheck/zapret/common/virt.sh new file mode 100644 index 0000000..6e566d6 --- /dev/null +++ b/blockcheck/zapret/common/virt.sh @@ -0,0 +1,39 @@ +get_virt() +{ + local vm s v UNAME + UNAME=$(uname) + case "$UNAME" in + Linux) + if exists systemd-detect-virt; then + vm=$(systemd-detect-virt --vm) + elif [ -f /sys/class/dmi/id/product_name ]; then + read s v`S1dvdT;`GO${!>Dbb;`8!TfV>h5tA5rTL!&CigN9a>K-p9Plp`j0 literal 0 HcmV?d00001 diff --git a/blockcheck/zapret/files/fake/dht_get_peers.bin b/blockcheck/zapret/files/fake/dht_get_peers.bin new file mode 100644 index 0000000..916bc10 --- /dev/null +++ b/blockcheck/zapret/files/fake/dht_get_peers.bin @@ -0,0 +1,2 @@ +d1:ad2:id20:.+NA-¢ÔutÚÛE–wΑiJ·9:info_hash20:; +ÂÅÙ侧¾“äÙOÁ£2IÂe1:q9:get_peers1:t2:äâ1:v4:LT1:y1:qe \ No newline at end of file diff --git a/blockcheck/zapret/files/fake/discord-ip-discovery-with-port.bin b/blockcheck/zapret/files/fake/discord-ip-discovery-with-port.bin new file mode 100644 index 0000000000000000000000000000000000000000..44a3fbec20bd7de4f9747997887fb8460d4a2fe7 GIT binary patch literal 74 UcmZQzWN>3(adlvz5WIc>06N3(KC_;IVgLYm$pOXy literal 0 HcmV?d00001 diff --git a/blockcheck/zapret/files/fake/dtls_clienthello_w3_org.bin b/blockcheck/zapret/files/fake/dtls_clienthello_w3_org.bin new file mode 100644 index 0000000000000000000000000000000000000000..8d90faf51272dfe4526dafd077fee2cf09de4243 GIT binary patch literal 226 zcmWgp_n!dSXI#54111AFmTe-1beo;D*!@|tK$i%?Kzyrjx4B`xO43Z2I49Y-- zVn8eo#Jmg!40dpzOw7!TOpMG-OiV0H ItW0c70Fc2gFaQ7m literal 0 HcmV?d00001 diff --git a/blockcheck/zapret/files/fake/http_iana_org.bin b/blockcheck/zapret/files/fake/http_iana_org.bin new file mode 100644 index 0000000..3ae50b3 --- /dev/null +++ b/blockcheck/zapret/files/fake/http_iana_org.bin @@ -0,0 +1,9 @@ +GET / HTTP/1.1 +Host: www.iana.org +Connection: keep-alive +Upgrade-Insecure-Requests: 1 +User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4300.0 Safari/537.36 +Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 +Accept-Encoding: gzip, deflate +Accept-Language: en-US,en;q=0.9,ru;q=0.8 + diff --git a/blockcheck/zapret/files/fake/isakmp_initiator_request.bin b/blockcheck/zapret/files/fake/isakmp_initiator_request.bin new file mode 100644 index 0000000000000000000000000000000000000000..c58f1d9979f987978fb1f628c51e38bdc3d9535d GIT binary patch literal 584 zcmV-O0=NAD00030N>G{z4Q@k@E;nf|%j#7%AR`C>0003100KlK00Jlg0RRMv`;dm4 z5FaU}X{f=&AoY*=9u&Rhh1_#6jqt5~0d`&PX_4iC?KZ)aqas~j@p<|5a6o-)ho@uz zgaNL!zPJq6Arf20Y3!O zbpJY!B&E|`d5mbOJ~D|>VJWqUgD$IUKFWce$OMErh2w9K0$~HBEhrH@5XH)i50ek* zr|jSgMH=pR^`bhYXb*?0vA1z;?)WaMrAZj`;DOkpm^r2 zy|$1b(+?lF|F%I}a2J(+vz^?L;8!>@kDH)*Gb_ZMYs2UKDk@+>cN7C;hD?Te3Q(+( zdTqEUDzjPMFe#x9B{ZEU$TXqSTF~DDTILJX7lpBK-iqD;S>6zN!E2&V1b@CCaki2A z#3pm>`3V;u5%a8Sv8{99aZR3XP|K*CZwGfBJJGEI{$77&1jT}qIr8QFxjJi1yyc?` zGP693n1G^4i0?fVgB#ZTg^^Gt0VLLMNnJ%-TrE0Ks`tZZR1VwS1*oC;ppSY4_)DO$ WbcqMyhhYh0(yRu;B+yL}f;EYz1Pdns literal 0 HcmV?d00001 diff --git a/blockcheck/zapret/files/fake/quic_initial_facebook_com.bin b/blockcheck/zapret/files/fake/quic_initial_facebook_com.bin new file mode 100644 index 0000000000000000000000000000000000000000..5d21a5927a7b06adfb99ddfc48d9590c8a596464 GIT binary patch literal 1200 zcmV;h1W)_V000016gruq*wYT$J`J?I59H{X2d>QDOccila+`}`c8!_0eOUUwEEmfI z6uX|y0v#Oyw!GnYUNw7iI>yjsW#TDHKRry0j!m+*O~Jd6rS>=-#eRr_NI^R&1lS9d1WDSR3D&^DS1M=NFCCNO!Si+wlQFW z$istR@*ZM|k92~$1pHaEDuKU{MjmTJV$i($M^jkPs{+QixUoRW*FlB8iN0r$qG=<5 zDtHBURbwyi9OeoI(uhB{Z(y?8>4SdcebN|-yC0=kek?|301Y58hhb{3u{I@Sj)iyM<&! z!Af|P?*4ZNFn>86>gaUqt{P=1$Nyx<3;xiAsP6a-07+v)@=ll+h7ZHX85S0 zPkus0@cQd{?G7S>(gG?)-^M9=mq3MEo*%HKlST15%)#Z34njYiE6R;AoPOc4HGMT# zta~c_bQWz%X&JArvmf8Y%uiw4fkjKwLa}R)cM|sI3Aknu9~&^eDAjd2s<0eSdtq$^ zqYW3IRP_H7bMJYR0WIO`Ir@CC`gT!$ z9ResO_!0bsY*_~Ou8x!`^srkZmZjdkB4k7?b>1xeC=o2`8&2+U#B1B9kT@ zHPy>^^>{`x0TM2vOt1(O52Jr7(!yVQBFeaJDL{Pm4GOhHn8}|G9bW%J0Fx%H9LacU zeQ447xe+<%q7m3~)GW{FCGT3xfZZc_Zl*XRPB3Lj7c9`zJlk~eL`g4c6&y@bbF~Pp zKf|sN$^RH{kzrFGe>)BMJ?E>u=2uuRSC~Vi`f?r$^N>tewY5>a5oW(uMtm8As-jr& z?+-KV#9otVD>S+5JRdG7g3=8E3hsw5J$^-@H*dmk&N?v6@=M)FSnu2P8F*ceOdt^*~Nk0Xtk7tr!VA-rKE43bM>gKEP} z5<>k&<&aCov+#3>1gFh{#ZqJ_Qw&vvUva4`BtR%d3<-4~NTFM_<$oNh3|I$| zRP1|AnF>;sOpPaVWK-md7r$Z^HtBL4@4BGeC{0`)+>_M=}y@j_WkZSxc2Oi=g-3J(Zg2o(=y3W>1m8iGARnCJrHtNj Oz&ejo+=e$P_+sWMkxVZD literal 0 HcmV?d00001 diff --git a/blockcheck/zapret/files/fake/quic_initial_facebook_com_quiche.bin b/blockcheck/zapret/files/fake/quic_initial_facebook_com_quiche.bin new file mode 100644 index 0000000000000000000000000000000000000000..84dceabb6676148afae10e33afac59ac0ce3a584 GIT binary patch literal 1200 zcmX@az`(#LV7Y0!Kqk{P*VN*JN@6H|wNl&pUZ1 zUsN#l{=J*mB6DXX@0fo{I6H*fPWE&2`dMDzR_?#h`J}V{r}<0mg^$#gCwFA7U!-ol z)bZt&!=b0>V}~)r)cB{c*+i!uj;|#wllf_B(D{Yx(QOs@NN9f27vW3D0buEcAM% zxACk!M}+3TWo4ZCSj6z1Yc|UiB?g<`bob-_Jqq%HOq1S)RCxu&irC+34EkKTbK!-h z6VE1=9lpBBiu*>s0ITSK#yb6VA#n@k!gr{PWk3G&q9J#%#V?zyLr&0Qusph(l>s|B8U&h>&OR2SspOz&yI*68{ph z+Qvp-dNQA&BlkFH`6S_CbN=Q-WXbV|TWl(+9QWC~j8Yi`0z`V-Pgs%m&M7tJ{c+0H zRJoV~!)b9B>nVG75U5m4p6H{&q(G6*;(?g6gwIonMj>*WjprE7(~u=8&BtQACJXl@ z|03>B^QphWR)SwhGp>uEne&r6e8UNPdv)=N0*kvr#DmLgc#$gGEfo=-n0U;TBMk^7sJc8JRS@JB4}k^VVFKWOsSGDuCve`kOvzoLQ5d(&i+i6SM5|3o3YabL6t9; ziX&VGm*JvSZS&eY=DYDN0$=^8J(3FrMpZr$)^_m=s(FRj`Ia72B6JD<-`}NNuhm(J zUeRJzVK;wRy^vcCZ?6Oz=B{Fa82e#>XWlvigiDQAe4U;R<9;~lf~_0uLbs0L)bCS- z$0XfcKQsr?h)HzY>x9eM7O7LQ;XVo04(1AB4HDxs1wi%phXIpkvB^|QuO(>Il=x`R z%Uk9!gk^X}MyWHm!@ff-`3JT_s|ca^PZcgJ4xw-y@dsFGuFGOi_;Y$p*<7 z{4yQsa{q->yyi6dm#w+TeB9c-MlW_KFk&ma|sM*}I%odlEJjwgaf6N`8QGI7f`XN~;oeqzR7#bN^U=d$3RYwsi zh$iZX%3$hlI^BI)s7n8%iUM0}ouW#y3{TliFq1TqlS=K%ks7vy-mwd`h|gWnLSFyZ zI>@0Q{TTNbpBF_#`u08g@wyue0#R{qr4qbPP%y}*_Dl!siFByaI_L*CWs46_?F?p@ sZjPZ*)!b|n*P|{xE-9-eZyHsXHlyyMfC((yl^&7u?&{4TB3tHud~L2;6#xJL literal 0 HcmV?d00001 diff --git a/blockcheck/zapret/files/fake/quic_initial_rr1---sn-xguxaxjvh-n8me_googlevideo_com_kyber_2.bin b/blockcheck/zapret/files/fake/quic_initial_rr1---sn-xguxaxjvh-n8me_googlevideo_com_kyber_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..ec4119939afe5a74ff5a074655a11907cc3a8bcb GIT binary patch literal 1230 zcmV;<1Tp)|000012>q9J#%#V?zyLr&0Qusph(l>s|B8U&h>&OR2SspOz&yI*68{ph z+Qvp-dNQA&BlkFH`6S_CbN=Q-WXbV|TWl(+9QWC~j8Yi`0z`T;WSY+MPI5k|j0Wb& znVynCD3z$qlL(b&>V3EFnM$W_i7-69#77u1 zezctv-kQ6WWyHQ+Lp63G@umD&)*7u=C870TZi#MT76NEVinTET{Il&}QXMTT;!t&# zm)RdWPH9Jq6!LRgL+f=u@ky(R;YyVClvMA8&=j;rW7nA}QWhBKmp4oeEv?sL_W>PL ztn!PY|NjSEz3CdeqflD+!h%y2<*;%Ew_hYwh{s+>+D5#+;gQK^>#gnAkAYE71?I#; z_^!eo(6XA;Txo=|FLZCFD$p~j_BL08I_K};S~=pxIO9lCx&P0Mm0+X~U!+heb-!K% z|DV0dtt?7eX_%*M7x;x#bCnVdv|_LHC!Kjf%wJO`mh;tJe2(Bk{$`x)QsaA>6SH6^7&Z_%?%9h3 z)r=L+=bGWhe=W#Bxz~xra6E(-@YKT1Nyxz_dW?E#7O%t`gXIvCuF7E?&W)T+ zCp=hZ3SLFo8HdlJ8l3$f@s+8sEOrEC>@0Qaimlg$_{eh3JGv!6Fv&fVY!@|ado*ek zwIe~y-j3tD-l+_9WBp3WZk4D%-j54KBk==z3K_!nPX2icxFmBYz^hruPdJx*#fi@s z>V0dc*J@#lR&;_@o_;zCu@|~H@fS6LZ+P}P&1RhknBF;Eda=l`81M7D*muLcaEf!5(I2xsWq79l2W2A6n;EY8A3cZgCcSZlbWHu%4-;n+t30+Pm`$? zI))CR^)|pC&B*oDBsrA68IFxcQTdo@Wj&vAhOG>^8%6M=+PFBw7e2c0LE}5lX+T)% zMzh=~VM!7ly`+oh`O6D%6>_!){PJVs;*zey0vQf-5NyT}SM4xU(k2Y1v|)|LKi#DV zO|Z#6>KTFr0CrAh%ds?eW?RhK&N}0I%C&m?2cZ)O{GaboFMe~rg#O6 zLbk0ev#Csatd%V__Wa+LzD!UZ5J1hsZ`jS9TDEhID*ak~?^x(G`U#Om?b!O*8oprD z70_8KGv5)X3t=n05ItEgr}xWrg+z$30KMzIzyoO}MRubVKG0n2qzQ4KEMjggh~ ziqD{${#?DJmnYi$HxQS`2R8)3Q{X`n_qp%7pR8HZYjl}(X1?A&4)EJsH6rVoqU?F2 zZfu_sWrJ;(h56-tE2NJOrb6vGDv5f1dpCvewl4+itiP7Tq0Ay(Mn6esaue&)T&^MU sKw$n`M_9KcH(FBTlN(S`)}LH%Lpxo^^FP^yMjd;ufr;_NLApveW?^Gzl>h($ literal 0 HcmV?d00001 diff --git a/blockcheck/zapret/files/fake/quic_initial_rr2---sn-gvnuxaxjvh-o8ge_googlevideo_com.bin b/blockcheck/zapret/files/fake/quic_initial_rr2---sn-gvnuxaxjvh-o8ge_googlevideo_com.bin new file mode 100644 index 0000000000000000000000000000000000000000..d65c0e6cc4026e7658736e0545479eb881962cd2 GIT binary patch literal 1200 zcmV;h1W)_I000012&1%%rsNWMXaE32o<0M$RZ16Y=xeZ_qj9~O3ek;)uu00^)KYtT zGO!^Q{{dhh=Wq=?lLh$Ttdr2_itE@&c{d1V2{I(a+FpS;#hh^hPX42IADj|+b6>s7 zQt>NQ-5EA~eBYJKpqDecy+Zi6@stS(tfzyI*V95`yb;VbH#7*0-A}6YM4a^LHFf54 zW^lT)&E*k!_bU7?c9->hyKtD%Y~7AAk~uB)8dgO*vrfyVNaiS)EvUgF_m#jKffJs7 zoG?C}&zB_z8Z<2&iM5JKh`Z*8%RAh{`-RmptXv*{(;Mt;1jl^K4-OQgJ+Zem-nG$$ zKZcLAJHrK;Jf7&Jf?T=4nV))e+6!UGc3WgzuUkaY1xt)Ec6jMcp*jLR@JfKYOFp=A zgJk(zo?dxN63~^RWw2#uDq=N<$RtB&yUbzQ2iegl{@lHOnjjN;*haVzkSm+T6Wa zQI9)y2WW)3GUI-x#wvig-6RTUlAk>PCI6F9vcYzKSH{NBD$x7X6Y4tw#%dstT(y-h zro%Db^m;9TQ`%^C%pZO#?-(2G3DoxSPQ~;BWTxn=g+bVMoHFJL#>bnI z4U2?mxs7H`3M!v{)(WKilTY6JM8MYCtUzMo*kub^o^bI8C$tP5l3&wca|?E}^HjmU zbf*FSd8$NwDyo$igH8U5%q|-qA{}gtWZ9>M&+!F>A#j`Ftm?^ih&PRKBUN*>Lj8{f zz@Rq{2y+a1$TkSf+fm*bFgU-t@OBQ@-#h&7;31~Sjt@50#Wfw+pQ=)pk3!5qh=-H1 z3ZDULWU#O{_CA(i0RnR0OD`8Lv@D{;2Hk1#-mDg;b&d&v zJXVaSb+=w^L}|jGrJ2-EClj4KekjPY*#rNN4!0c)0=;IH{;ujtKXq{J`jPYI@Bb?7 zC>+%v7g88$&{+5KjnjK+VyB2ET!v$kvvK%}vHWSSk|_#Kotkw6I=!Q`geGl)uNt&^ z7Kqpi=Q-M`$XbRB62O0;^(FL6uFdC`!+~iQ<8#%6l{h;4#)ZFd5@3E!BZLOK zBi*$9Fm&vAGpw8?2O&G(Y!~q!te0;tZ`nzF>AH;#Ov4S#q_r)F!_Ryvs&7l8-!p;`AWn{r0;NrK14TGxr*m=fJSF-(xDc;NiE2=W`2s919mMh_#SmcFF57nkO<(F3*=#bH!X(Yt*IF;B zFAgrQ5VhlV%4R|V6RSG;uUeNyBA`+?v`kKPFxxuguKx$Lnl6|rf5x=2)gFsaVR9y< zC3bk!ujKnleIOWDsqOeD-g&qQitH14abJV>SbD@V#I)WnEkb5J>`5(bMw@fL75h;( z#o4oFiKvUqPEywYE4e(`g1049iA}m%vEsgf1Uhw%lbh@ppo1QP;Mvb~Gb{r+Llah% z;RtM^=DU!f>nxtbJR$)SMzJqY?b#iGn6EOc&exnm1EyX<1y|lEka8_ano;^Q;@5sH zBN0yPC6o&FwOUViZeCc0bQ#A3a*FjhsNwY0vQpZiY&=DddXt9x&<%RJW!pAmYwEpm zBW8wt13n{j(#@uA|m8@>_vYL{@^Lr0|wG6H-8f;r`lUnd85T!+-Z7>d~D@ zi~}C@ydS3@*vYd2$qWD;4HgvYR&0)Ql(q8%Z|E#=xik9)wdV)-nOW1JW}|(tf#DaMM z#djjtckt)5ZC|)0VFtSfW6>9JwSQui-hX6t^`uG^gJHg2!X~On!3sL$+LDJ_D*e#m zn5tohh05A*KKiop-c6@HJ@NlT65Hj0(3>ymdX7+91ip^=E^F0njgLZf;F&G#_I*v zjALI)TU|x9IqKgP29L}!Ze;$ySZV-wxbEfs*$Sx@0O3qc7Fc9|6L@U@sMJN7ZOf`|JN-HR`vV47 z=@hWT!UDwbw4`=b(y}FVh#oGAEGa0rbb>vs&C!2lJ0n;PoIYpY(9Nr{49lP9CTqBX OadevX!I|^r!a%=2%2Ia# literal 0 HcmV?d00001 diff --git a/blockcheck/zapret/files/fake/quic_initial_rutracker_org_kyber_1.bin b/blockcheck/zapret/files/fake/quic_initial_rutracker_org_kyber_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..9a16d987978b018a7900ced331c405b9d63e1bc8 GIT binary patch literal 1230 zcmV;<1Tp)|000012ysIPQ5%p*%>V#Iy!#f$*^4{9?|uXET6T@S)>`3W{=) zVCdnV(NZ}V+z{Y8@tO2rv-Zp_qTWBr&6w#X^O6$@Xdj?bo9@eIl3+qoOnra9<=^r-nS2!=49k5c_jv}DUJd>X$xOgUOdJWH8W)}TZcOr^ zqVo2~4Rxe0KXzJ|AS<(61)8a$3fW0o&2HownewVJcPtYkMJQ1ydcY4as30UZcC{1L zsBr&}1YDD7m=O9ei#n=^!WA3WxeBYFHJ8o(5Fv=nG^Za2z(91qsav6TkeyS1bC;3! ziN8;`;;YHlUekK&33Pi*)8sBBsmtTHnwUemG}YzpP0nd10=8!Us-xs-xd+#Q6*JKJ znOnhIsz!=riiWisPxCXrPn9u0G*_7CQH+sJ2Vzj(UqxQRK}LjKRHXgPiwFh4d(N-W zq%^Fc+aB_2UkY>$iVUD_G+|HP{a;NSwR+ta+umoeUGq<3MagHPQ0_w)tt!YCeqKSM zw9V7_zuuixK76phrRKt%K;7&l%1zpf?rWn*?WP9CS!xK}HL>SaE!^PxMKclCkh~aw zNX#S%>r?d%1H2QzPzHLXMl1`Zz)I{Ev&BFVJiU<-%5+-KK-aN}dcLq(R+I(Pnw2aI z7{t^U!}@Y!hAa1}j^Uyt1Pw(du}&jq|F_7`0NiIt4P|(&R=q_BF1odjs(^43mMBNIU2pQPF;e_$}33yRm=J!8I)W8YLJ--yqDAv$HuOQ+0unqM!Y?Vk~jQ{`u literal 0 HcmV?d00001 diff --git a/blockcheck/zapret/files/fake/quic_initial_rutracker_org_kyber_2.bin b/blockcheck/zapret/files/fake/quic_initial_rutracker_org_kyber_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..f3a721b7ed48e68f8e3dfcf8b573d4fc65bdd1d8 GIT binary patch literal 1230 zcmV;<1Tp){000012ysIPQ5%p*%>V#Iyl5F|ez2ut7E3~Gksw+$8{-8xVu@JEvK<>x zRY|^GA~TiKuQPQiE_63clk;h%!3BN11F!*@2p3sLfjNofq~osGP_^Vyx2F6lJ{aO;oPPTQGVz0hAT z3|diTnwSyP+O67PIlb1t4=qc0L_D?s5*CCAq~s7th+0{nXcaengR92iBEa5Nvj5(BAtb>RkB+Vlpw zPMd*$-mZsQQd6fOi{bf^+l2EeWdHo($1yeMZwsA-uZeyQ^Z|wUOI%C3twKOFGXMD~ zZlYuhKegAQ>ijfcZydVsb>tSq0)jX8-R5;#aZYl@Ci~3Ev>j%AK923y`bMZzsU>&( z0g(!X!5S(hbrui`9GHORL_a;59PD9|!pnui`PR=1Aos?qE^WKdZzq|BXh6dxwY~fr zj0Dyoa#48U!&#h@t_^2U0X5}uih3Kfy$K3AgkQRy&Py-g`;!QnP;OAp?G45cD+dWp zr2PCv6{u7A31kUdv+#L~+_--FhFH1=XrfKdQN3kBM|u2y#t74W-Wu5clZY9^AFjc= zl){tBlI0)qxeGDQJvt1^oc{xkpA!DFQcOSAXf9<)>y}+BTi%$d^v=Tt#xIg5KwAl4 zAvjvjU~E1Sl+27yJqJf$&i#MT`yu3?=k7^sv`h?dMJ4>xMw~;hRIm~EpQ2#?m#Beb z+PIXHQz4yk{(S_+jLqX5uBlS#J87MwV%B|Y~T*~PK^m;9l5PmXL zv}(fzE-iYJHXKpgFT9u{zMv_0PPxNU*a5rgG_cPN=&opIq&PeK+Mi1CvN=Y|0(+3h z2Nn`%S}v{@_Rww?9AZc&z9? zGNERe@%j8!H#sfK>}9H3@(i1=Ec{1+lDK#*MTtO`e%lQ#(akbFe&u!fz{7I+mYLyr zkh62>B+QmI#vfEEW4pUHzBFO|Ct>xB``RNR;+onm9OFQ;uo6^J$m|;>-D$qW zK$(*I|H+?Cf^?@QiRhkvU*xzoWdEZ>RaP6)u8MuREae`QEOE@`VeEvL9Wx)r@Vr=7 zCvsn8dgkGa9>$ldR3F9P>-wAVwf#)ET~EhTrb_F8q(!q(lb9_puf0Cx&r+l$;xohTi h>ULVQnx^{0&9_hQc(F`iH87!!g3%Bd4FTLC008NC7P9~V literal 0 HcmV?d00001 diff --git a/blockcheck/zapret/files/fake/quic_initial_www_google_com.bin b/blockcheck/zapret/files/fake/quic_initial_www_google_com.bin new file mode 100644 index 0000000000000000000000000000000000000000..80a07cc8870c88be6d8ac7f9bf9dc9bb1979468b GIT binary patch literal 1200 zcmV;h1W)_J000012zck1M!WNQga80Up0eT_O^eJg$v*FaNtH@lrZ!8F85?~L=|4FC zk&^uu@3*1@yE;Nr+phxdvmjKlDvv)J(yS~3><6w zEp#coJfYUm9CGLZ~DKk^PzBnc1%f|fM8tBsxh*3hcADV z^CU8<{XVqh;7whf0$D!%XlMGTw798<*&-QJ!J_F4aM6Bx6zTZRd8tC1&6A?yHRR@V z*(Y6i13lm}>32F&=^G*!oie_jmxN)fv~C)yRenn~>%$c!gCi?1$YU~52E7>9OR|Sm z*0or11T~hM0jX)6M$%)CyQ}2u+gTPF+39I^(olCjZ|S`FNZIz}o)#b)O`EEWD&X)8 zD*dxPl59gAxb#Z3@fjs3yr%)0G$8EX4eO0kwYPK?fVME93!RHm-IjwaEHlyOY$UAS z{-}PnuMtXZ1oyFzaHYi8wq0%YZT;bX@31QPpE;duWeOLIey~ZX({>Ct)#s~nnhkyg*!711_$gJmQ;g6N?g|dE*sv|JA3izy z`WHxH{1S6cV)gmesLpz!3FW>#E;01f9ec}Cg*NAeT5z}|OVuqL`24o6^a-?V+mF*w z3qPYBq?4tc`GvPoX}H_!HLWNemb3d@-DH`AHC0J+!`aiI!Emr{8hgF5EJH9)0BV{>t4FO7*Rn83&5KIgU<<>6KLttmv1oYA4 z=|Qj2Xr}J3MOQM@D{!=(O6=H0PX(AxaHfuc;q&mm6Vt28(`Z@~;(wo0Y%3HWd~aSl z#&4OA#_}K!cZ%ml1$@I>#6AZw$cQNc^h7W*BMq7~M7ltAZU;k10h-}sc%+cuBv6GG zu)B$*t&^YX_t`}*mbbnz$4fW~M3li?vQy=t9K+{XI^~X8D9^1+9dPY=(HU+JS5O)2G_una37W{$E@A=Y6 zz6l_Y^XKXZ?u$rOQPL8qadZWlusq6)AxNH-W5i0Hb>l zMxnwI0H0_{axGEA-0IMAcn{0>x(qs#vJ}YC{N&g*WJ!#t0}~F^x&%%+5@#2PtFl)EW9rnwIqJO$|OVm&@0-}$W~0{Gnz$OG;cp&Tq2 zMXteAz3Hl3v5Fi!8N~1O&=t>LMTGs3>>=xCX^3nz6qv9yY?hxf9q#kwo2nFg@9 z`IM}DtVEY8&Qf=x{;H3I51HJWQ|}!(OwswAQR!y&rYZYIl3-dFP=o z@DzlxL&8>!4A<9HaKC|naSThcsV3`W*%yQFl?EC}rZsGxY~S>-Pd@;atKm(^bBme|%03QDU2mlnSPn7u|_0GQE?4D+=)7_i5mF;eTC;$X2 GAGS5sQX+l; literal 0 HcmV?d00001 diff --git a/blockcheck/zapret/files/fake/tls_clienthello_gosuslugi_ru.bin b/blockcheck/zapret/files/fake/tls_clienthello_gosuslugi_ru.bin new file mode 100644 index 0000000000000000000000000000000000000000..d9e0f4a83de2f26855876574b8cf00797258558c GIT binary patch literal 517 zcmWe*W@KVuWMKTm%)FvEY)1Vw9##Ig(Ot>b-Z|@ej#_j)DfoMb!>R4u@8wGswlOC? z{O6YMcSv{FPS=`){ht(C4{Q-C-mv_Xyi_}{T_%Hql$0=|Fq1Iz0qq0&2Xqb?oLPBh z#R1_1A`EjF<}&Crm;x=DylWQ&!+#)y!6lP{m4TTl!-zqbfr*ikL5P8YfeQ#Zs;U@d z8N?YR7^H#H3`{^(tc*Z82A~)N120gW01Gn*3kxGFGY2axBL^EBBLg?k1O^6e26nbz zznEE=nHiM98bld{85jhT@=Ns6^NUN1b4t@Q^@>UvjDadOfwlm($TBE=a@*lJe|eOB z!j!<|Otbblz1F~5E{|Di{+qj$XVgwtWe{NCW8eY0lOv;~q(I+L&k&+jl;JqolA%uk E02%L3Bme*a literal 0 HcmV?d00001 diff --git a/blockcheck/zapret/files/fake/tls_clienthello_iana_org.bin b/blockcheck/zapret/files/fake/tls_clienthello_iana_org.bin new file mode 100644 index 0000000000000000000000000000000000000000..e641d731d161fb0ba957f374615d1ff823cb8948 GIT binary patch literal 517 zcmWe*W@KVuWMKTm%$(1?tu;a;@+xmmg=M`qx9j3Uf6r?s;>RMF%62k7ERt22tFu}y zVtMoa?RVleRtYXo4v{>4>g5-u134_r3_wS6G4KGfEQ2_M9D^i-gmDQ_sQ?2X0}oS%5l2QzNrAqh zo*{!6P*fa<4Z#K(FzB%`vofmQ*E&)`46kandPM&R7vsEb|dSvN=KE(Et_pA=LM> zDOp!{JK2LqwlhR24l66pNvx~Ibs?2L0Tt#7D~H+T6t?d=fd};dltiXSfpkot)u?}t z%7R#A9~Io~2zJMbC-1}%fX`j0Mp{*9;`f8q7ytzT1pxp60000001^NY000egb#!uJV{2t{E^l&Y{{a92 z001)t?*#1{8UO(RW0?fN0?6E0Cv@q`9_G~tFm{O@8k4UxJuWE0F$CKog{*^Y3wSeY z(t|`pUNrX(VB(T1T8+_cthR%DxZ7~nYNt5LevxSm5#SheQV0O#8$OUzbXhQoNX0sM zv(TKB_hhpJ)p)h*T<}FWYZMdK>0J(+v1t&Nb>Pe$@n@ghU!WvAMwJK)roTQKS-`1~ zH90;|HjRfc!{e}v?wC{l`b^NLUTS5TYx-%I1O_zHz1GDReMyO2GR^*se2R%w%_{(I zDXkWK4+1HQw4*oINpQC)6m9TL$)dsSGD}PagD+E{CW~E;x0uIBj!_hvORK)nYblNQ9b`MEITs-=F~L?6Nj_Ey?^UC)G)2B)Y7urt0{p0kIa(EHy=lY?)#Dp(375d8 zIuCG(1DMOLWlCP$dLKrd^eh{_$Tp9-6eyH=Qs8nH%nC%XRxI19BWF#4=|QOEj^%}7 z@i!zW%9Q^Hxov@-Ge93a7y$0@DpGlW@*8)*OdAW7n#J`RDx#tRBn+TC4&DKffVNKJ zS#Z{&c7i!XF#`*kY&20o8lZ?jQlQNbS*qN7lPMF*jyp42hI z{|FO~(=Y>2bL%OK&3Q}c8+@hIQ)lomx&Vv==ncamnyiD0gp$v>I}My$%ldK*Tf3<# zlz`d@K5SGFMLB>!I*{KBPp(W1UC}9?L7>uO!C~cs9kUsZC0hujM8dQd4!S0KJB?(B z3<|@zqZu>x90==2s(8a~y~Hq@s}>5y%Jm`{qKG%`b!|KGT#*ux2gqzxVLr`BP&%o= z5rrYNkQu5Xo%vvoc~BBT1_Im|RURy~r>r=hMY?^KuCt}Alu>zCvP5=Pw+qU0-IS{? z3&3r)HGT+?WATsG0+ml=X}2b>-l`jDQpBVxANx9W4dV!S=8+yJLOdzMN^+WK*Hp;h zHhvLy@kzp3m?2o%NXxXOHiJcOx}Z6xpV}Id{aIH2_pJ}(82c5zUHW@VX$q-Q9Tw6| z_4UT}d^}W&#RJr>jzcKY*FNWjtzs(=N2_^>vn`>yQ#$0viI%x-RT<+1Hfj-hySy#K zu+Cyzq}RH<=F&4@j6nXYxN$(Gtktj%1a6}kR$9X`dU^;fMXCh(%<$+~G}wMlwmu(2 zP%&JDZKRo9ka)0DY`Nnhs}l|7TLj>#vlVua3>jDaRsoiJf8c;YN8pDRDgml{D%|_R zdn^fV?8X7uWZ>K)VCuvY8F*>|XfOu8=oBAP_c6DOhQH&we>^#JHNo$8zU1XsO9qB_ zBF1StE4@ZSq=a2dmuy_B7L)iK2%xTxT*#W^DfGlC-6TZl8DO|Pd^6u}db2Rj%U z!nn*DLlA0@H(#47^D0h6ugWNM1uSgn#fR{o+L~I-QEVA50384zQ-XEZG|{7-!2_^? z9J!PxpS7_(+2{hup_!=3i{o4c02crN04o3o23lGJ1Oo#A5&!^1X#fQP0|IC=02=@U d0ssO45C9GU3<78}2xxS4a4#_~F$xL*0RXt?{JsDH literal 0 HcmV?d00001 diff --git a/blockcheck/zapret/files/fake/tls_clienthello_sberbank_ru.bin b/blockcheck/zapret/files/fake/tls_clienthello_sberbank_ru.bin new file mode 100644 index 0000000000000000000000000000000000000000..59571bb1dfc0924e8029e1389b2328dba0020f7f GIT binary patch literal 517 zcmWe*W@KVuWMKTm%xrb;#C9Gh-BOh)2{wMk*OW^e-|h+7{3Ja$O7drE*ONYlyTVbA z%w)}4lY|nI)*dtDb2+hm^TfGAmu5|}Sfa3tyM#eOOG}thm`RxVfc63X13Cu`&a6DM z;(+i05r#Poa~bp*Oo0|n_VQw2U=U#7W8h)RFyhE4DJjr5)H4K%i8F{YFbL)6J=xY79}O-W$P7{G8i*xGic751#~8ZEQ7+`)la9oHhes}!?|}&=>FG!L2KtL9Y6GV z?j6?Ot*%;~91O}pv!ofAnHZQ{G8tHbj0__NZU!cxZXuuyD+4Q#1q56`$N@A}7HF{q z&<1ukD=TIeW@ZLmpjyWNK&OJ7#K6D{)F!~f%)!FK$jZ#Y%F4*W#>RN-7D!r@;V9Us Hp-un*`=U|c literal 0 HcmV?d00001 diff --git a/blockcheck/zapret/files/fake/tls_clienthello_vk_com.bin b/blockcheck/zapret/files/fake/tls_clienthello_vk_com.bin new file mode 100644 index 0000000000000000000000000000000000000000..ec908c2bfffc29500a938f1d4ef180321393b9ca GIT binary patch literal 517 zcmWe*W@KVuWMKTm%skEWrTZ>trEL{~oEtKkvRo(L-X8Q)H8vse;Nkq7CwG4 z+ZfM$7#MgNgct-^m^oNj7+IM)SXmi4*w`3dG8tGIn3*z+ z7_=GK*>>$>W?^Oqs^wgvI<|94=60DIsUYVv?AirVEXr^ZZ1->?0LGk5Q2+n{ literal 0 HcmV?d00001 diff --git a/blockcheck/zapret/files/fake/tls_clienthello_vk_com_kyber.bin b/blockcheck/zapret/files/fake/tls_clienthello_vk_com_kyber.bin new file mode 100644 index 0000000000000000000000000000000000000000..92c639e39c7e012a239f30405744059e73d739ca GIT binary patch literal 1812 zcmV+v2kZD20|5sQ0RRUJ0|U5*L&>8durC^rtjuu{+?pZrU{1kk2jl7ua2iZ;PB|c) z*}x<1`s4b-4To7$a=|)97TobQ%eInL&-^N7)HJ97AQ~DI0TTif1Hdc5FTgCoFwCjU zsK67z6abt6od7QYH30wyqMDij07Pj31posAXfgl_01N;MdU|7-0384q02lxT00jX6 z00000D*y)u3JL=R0|NjX00RO50ss;K001oj0s#U40RRC201E&D0RR9H01f~Q0%$S_ zXmoUNFEK7L0000B00{s926k&MV{dH$4FD1V5Cj7V1Ox#E0|*5L0SE>L0RR^O001KZ z0R9aD8UO$R00Eri2T!2kbXPc_m?>2if}4-asi;KnmyY5?$Yts+1E zOwRv`{uOi2(Jr}Xc*7Vo_UN+Soa>(Lp2~oGX(Dh?Rt6u0RUr}1i-ASkt(0Sy=0j* zO6N*G^Q{a~_L8iqVwy4K{SoSh#zpJ-uqXwi?MN}g4abg#l+c_u}`3F4&ipKjnUezek_=cY*n|c+- z@6xg8#JWBpe_C9$|I~1O@S4Ao$IV#K^Hj8?{x{9~PF*YJIgyDr~ zk_;(I2|_76wH#@HP+98JB0qbj-n+1~#whiAXal^=L2%GwaTruH_R05n zW^%-jvO*S15w<-+WeGHpUGoN`9-1XVX+6>C1-^T?@_BIL;fVrQiUOMTZ$Bs#*j zV&O9J(O^TFp)J5+nkWNxU>T=6C_fUJW;vky0EYQ`aUkM&`XiRN%rD3`lh43}2wPn! zEPtgpctyyG+YnT=>1%{nGp`{zA_za#af}|YAcpf(8bG(3qB4l$3b#qYh2YAD0*}uY zhufqoBd0NE=_&kjs`+yyR`^Na;3Gj-0kXrluBv)yBc`0t0tFi_vPuHhFmdX(8Y0{= z1Nck9hR;4l3HgP>tmC#?7g|@<8IHSRpT{r2e8MK&JE~hPs!F;s*GDjBe9?5G4f`oB zwS|6ieLbX{#~@9B*OcJPd2IN>J37Yi^?NO_hzn2zvtupPC!@qbjD@my<|r=_iOk?} zPo6wTPb-X$2?!(tHz+)2wGw3v@R>LPhK7MWX#->#B~7_hx>@USzS@)nx@6)!&Gfrh z!hn++e3MYxU-3sHn(TPAhnu@2w?J98f+1~hON|U>%p3Vaxhqp|n#|IGt1f0;s251Hq9;Y9r7sYwZ zV>=f;z%l{V#Xq*gTsm=Tas|Rxws!}W0wc0G#b?aroR{hvfd}Uq85)rAd6=VcKRD7X zza%c_0=)x>OYt!@jF~&Bt31KTh~PH>HBs-7~eOF;C{903dtmw*g$>&{*(f>}xhB`m%sM@ld})-}|R!kF}-b?`#SR0098r C+Z{as literal 0 HcmV?d00001 diff --git a/blockcheck/zapret/files/fake/tls_clienthello_www_google_com.bin b/blockcheck/zapret/files/fake/tls_clienthello_www_google_com.bin new file mode 100644 index 0000000000000000000000000000000000000000..62985b63657c9343b805f915e5774a4e26a554d5 GIT binary patch literal 681 zcmV;a0#^MN0|5f00RRG^0|QeVTbDJ`aqq^!i#)(90~?C3sgivz>!@{iZ)Wz&%v2z) z$RoP%!7?G|r!sCXSzLDkuvzP9mVqgr6@=>Gs&>i%A`<}<0}}$kE5I+zsm!RrEWj|p z3cv}#6TlPzoB*8wF90UUk{!P@xKzx>s zpe>y`!2U{*0{vID`cuxAYKi&3MnaN)9|45`D*y=y0|WyD0|Em901W^b02TxT1p@{H z2m}ZP2nGZJ1px*D0s{g804)Fl0RaFU00KY(02=@Y1^@v70ssU44FMSd00964$p9eM z(fL4?(6*7RoVIwfUDnNb%ALfKl#LI;123|*9lJdM@953`rrYTbN4h4Es`QiojJkBZ zF1l{kVdzJTQ8KQO9Zd^=ti!lX(Ks9ay)4UUTIEK+40n>!y?3`VvFWT(w5MKwcI8CP z#7tf@713g5AF(pBNDK?~NMAJ4J_jy=SR?9^Y%VP$9B%XAdXFXA0Gvkf2JDPh7C?~m zwz_TkSI2I#{7PR#Zp%NfWM$`Z{27y$A z1c)@8t+4?F!h@j7i5hEr&0zY# literal 0 HcmV?d00001 diff --git a/blockcheck/zapret/files/fake/wireguard_initiation.bin b/blockcheck/zapret/files/fake/wireguard_initiation.bin new file mode 100644 index 0000000000000000000000000000000000000000..80558634c7c372f32ea0a866c09e9084a51a8e0c GIT binary patch literal 148 zcmZQ%U|?XiUtnKpB>8B=!70fNv&{NVd9%l6C#+rnOkhVt#vEbJ6VZV}HV%sMjNg0e zveuWiU2yxhB%SG!VX3q^I~%jgo_YK&&$n4vu%A2q$>Q$I`@V->D#b)Hx}VE)NP6vD t`A2@?7nVgypD(RDDw_Y^MQQc5FYBE8UjF25RQ4wYfGUtq64J#AHrWZRji7j(N)Cvd#I#jkZE^|@sXgE!yOWqJh}@pleg muFSYtwo=8|UE$xVKQGJ`ug~w6nzrz0WSi4wL2sZ@C;$M9)FBiA literal 0 HcmV?d00001 diff --git a/blockcheck/zapret/files/fake/zero_1024.bin b/blockcheck/zapret/files/fake/zero_1024.bin new file mode 100644 index 0000000000000000000000000000000000000000..06d7405020018ddf3cacee90fd4af10487da3d20 GIT binary patch literal 1024 ScmZQz7zLvtFd70QH3R?z00031 literal 0 HcmV?d00001 diff --git a/blockcheck/zapret/files/fake/zero_256.bin b/blockcheck/zapret/files/fake/zero_256.bin new file mode 100644 index 0000000000000000000000000000000000000000..65f57c2ee985713476ac0b6e3483e6fe472e2176 GIT binary patch literal 256 LcmZQz7})>-0RR92 literal 0 HcmV?d00001 diff --git a/blockcheck/zapret/files/fake/zero_512.bin b/blockcheck/zapret/files/fake/zero_512.bin new file mode 100644 index 0000000000000000000000000000000000000000..a64a5a93fb4aef4d5f63d79cb2582731b9ac5063 GIT binary patch literal 512 NcmZQz7zHCa1ONg600961 literal 0 HcmV?d00001 diff --git a/blockcheck/zapret/ip2net/ip2net.exe b/blockcheck/zapret/ip2net/ip2net.exe new file mode 100644 index 0000000000000000000000000000000000000000..3dcbbcab345ef8b72c504b84b7610e6e1a2686ee GIT binary patch literal 92672 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 VVDxf#*X8o%xyu-A=eXw{_!ecs5SIV| literal 0 HcmV?d00001 diff --git a/blockcheck/zapret/mdig/mdig.exe b/blockcheck/zapret/mdig/mdig.exe new file mode 100644 index 0000000000000000000000000000000000000000..56a4fb097f7e5298013952a9230280c37dc6e98a GIT binary patch literal 130560 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 literal 0 HcmV?d00001 diff --git a/blockcheck/zapret/nfq/WinDivert.dll b/blockcheck/zapret/nfq/WinDivert.dll new file mode 100644 index 0000000000000000000000000000000000000000..b63927441eaf2c3e39354309bf4cd5af4eaeaa7d GIT binary patch literal 47616 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%0A0F;Lb6usweP(dk=OO-@&g+nO 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 M7(DZxZNnA#1>Yv7CjbBd literal 0 HcmV?d00001 diff --git a/blockcheck/zapret/nfq/WinDivert64.sys b/blockcheck/zapret/nfq/WinDivert64.sys new file mode 100644 index 0000000000000000000000000000000000000000..218ccaf423ef0a67696226f9ef3a09149e4441d0 GIT binary patch literal 94144 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 Mok_m={2+h)7u^}>0RR91 literal 0 HcmV?d00001 diff --git a/blockcheck/zapret/nfq/winws.exe b/blockcheck/zapret/nfq/winws.exe new file mode 100644 index 0000000000000000000000000000000000000000..ea098a19fc808b11cd95466c3a04f64849580585 GIT binary patch literal 223232 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 z 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

;b_F_>X!oZaKBfPImQ(wqLr_mA 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 YE=O$d4{noU98V&ON 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/dev/null +} + +exitp() +{ + local A + + [ "$BATCH" = 1 ] || { + echo + echo press enter to continue + read A + } + exit $1 +} + +pf_is_avail() +{ + [ -c /dev/pf ] +} +pf_status() +{ + pfctl -qsi | sed -nre "s/^Status: ([^ ]+).*$/\1/p" +} +pf_is_enabled() +{ + [ "$(pf_status)" = Enabled ] +} +pf_save() +{ + PF_STATUS=0 + pf_is_enabled && PF_STATUS=1 + [ "$UNAME" = "OpenBSD" ] && pfctl -sr >"$PF_RULES_SAVE" +} +pf_restore() +{ + [ -n "$PF_STATUS" ] || return + case "$UNAME" in + OpenBSD) + if [ -f "$PF_RULES_SAVE" ]; then + pfctl -qf "$PF_RULES_SAVE" + else + echo | pfctl -qf - + fi + ;; + esac + if [ "$PF_STATUS" = 1 ]; then + pfctl -qe + else + pfctl -qd + fi +} +pf_clean() +{ + rm -f "$PF_RULES_SAVE" +} +opf_dvtws_anchor() +{ + # $1 - tcp/udp + # $2 - port + # $3 - ip list + local iplist family=inet + [ "$IPV" = 6 ] && family=inet6 + make_comma_list iplist "$3" + echo "set reassemble no" + [ "$1" = tcp ] && echo "pass in quick $family proto $1 from {$iplist} port $2 flags SA/SA divert-packet port $IPFW_DIVERT_PORT no state" + echo "pass in quick $family proto $1 from {$iplist} port $2 no state" + echo "pass out quick $family proto $1 to {$iplist} port $2 divert-packet port $IPFW_DIVERT_PORT no state" + echo "pass" +} +opf_prepare_dvtws() +{ + # $1 - tcp/udp + # $2 - port + # $3 - ip list + opf_dvtws_anchor $1 $2 "$3" | pfctl -qf - + pfctl -qe +} + +cleanup() +{ + case "$UNAME" in + OpenBSD) + pf_clean + ;; + esac +} + +IPT() +{ + $IPTABLES -C "$@" >/dev/null 2>/dev/null || $IPTABLES -I "$@" +} +IPT_DEL() +{ + $IPTABLES -C "$@" >/dev/null 2>/dev/null && $IPTABLES -D "$@" +} +IPT_ADD_DEL() +{ + on_off_function IPT IPT_DEL "$@" +} +IPFW_ADD() +{ + ipfw -qf add $IPFW_RULE_NUM "$@" +} +IPFW_DEL() +{ + ipfw -qf delete $IPFW_RULE_NUM 2>/dev/null +} +ipt6_has_raw() +{ + ip6tables -nL -t raw >/dev/null 2>/dev/null +} +ipt6_has_frag() +{ + ip6tables -A OUTPUT -m frag 2>/dev/null || return 1 + ip6tables -D OUTPUT -m frag 2>/dev/null +} +ipt_has_nfq() +{ + # cannot just check /proc/net/ip_tables_targets because of iptables-nft or modules not loaded yet + iptables -A OUTPUT -t mangle -p 255 -j NFQUEUE --queue-num $QNUM --queue-bypass 2>/dev/null || return 1 + iptables -D OUTPUT -t mangle -p 255 -j NFQUEUE --queue-num $QNUM --queue-bypass 2>/dev/null + return 0 +} +nft_has_nfq() +{ + local res=1 + nft delete table ${NFT_TABLE}_test 2>/dev/null + nft add table ${NFT_TABLE}_test 2>/dev/null && { + nft add chain ${NFT_TABLE}_test test + nft add rule ${NFT_TABLE}_test test queue num $QNUM bypass 2>/dev/null && res=0 + nft delete table ${NFT_TABLE}_test + } + return $res +} + +doh_resolve() +{ + # $1 - ip version 4/6 + # $2 - hostname + # $3 - doh server URL. use $DOH_SERVER if empty + "$MDIG" --family=$1 --dns-make-query=$2 | "$CURL" --max-time $CURL_MAX_TIME_DOH -s --data-binary @- -H "Content-Type: application/dns-message" "${3:-$DOH_SERVER}" | "$MDIG" --dns-parse-query +} +doh_find_working() +{ + local doh + + [ -n "$DOH_SERVER" ] && return 0 + echo "* searching working DoH server" + DOH_SERVER= + for doh in $DOH_SERVERS; do + echo -n "$doh : " + if doh_resolve 4 iana.org $doh >/dev/null 2>/dev/null; then + echo OK + DOH_SERVER="$doh" + return 0 + else + echo FAIL + fi + done + echo all DoH servers failed + return 1 +} + +mdig_vars() +{ + # $1 - ip version 4/6 + # $2 - hostname + + hostvar=$(echo $2 | sed -e 's/[\./?&#@%*$^:~=!()+-]/_/g' | tr 'A-Z' 'a-z') + cachevar=DNSCACHE_${hostvar}_$1 + countvar=${cachevar}_COUNT + eval count=\$${countvar} +} +mdig_cache() +{ + # $1 - ip version 4/6 + # $2 - hostname + local hostvar cachevar countvar count ip ips + mdig_vars "$@" + [ -n "$count" ] || { + # windows version of mdig outputs 0D0A line ending. remove 0D. + if [ "$SECURE_DNS" = 1 ]; then + ips="$(echo $2 | doh_resolve $1 $2 | tr -d '\r' | xargs)" + else + ips="$(echo $2 | "$MDIG" --family=$1 | tr -d '\r' | xargs)" + fi + [ -n "$ips" ] || return 1 + count=0 + for ip in $ips; do + eval ${cachevar}_$count=$ip + count=$(($count+1)) + done + eval $countvar=$count + } + return 0 +} +mdig_resolve() +{ + # $1 - ip version 4/6 + # $2 - var to receive result + # $3 - hostname, possibly with uri : rutracker.org/xxx/xxxx + local hostvar cachevar countvar count n sdom + + split_by_separator "$3" / sdom + mdig_vars "$1" "$sdom" + if [ -n "$count" ]; then + n=$(random 0 $(($count-1))) + eval $2=\$${cachevar}_$n + return 0 + else + mdig_cache "$1" "$sdom" && mdig_resolve "$1" "$2" "$sdom" + fi +} +mdig_resolve_all() +{ + # $1 - ip version 4/6 + # $2 - var to receive result + # $3 - hostname + + local hostvar cachevar countvar count ip__ ips__ n sdom + + split_by_separator "$3" / sdom + mdig_vars "$1" "$sdom" + if [ -n "$count" ]; then + n=0 + while [ "$n" -lt $count ]; do + eval ip__=\$${cachevar}_$n + if [ -n "$ips__" ]; then + ips__="$ips__ $ip__" + else + ips__="$ip__" + fi + n=$(($n + 1)) + done + eval $2="\$ips__" + return 0 + else + mdig_cache "$1" "$sdom" && mdig_resolve_all "$1" "$2" "$sdom" + fi +} + +netcat_setup() +{ + [ -n "$NCAT" ] || { + if exists ncat; then + NCAT=ncat + elif exists nc; then + # busybox netcat does not support any required options + is_linked_to_busybox nc && return 1 + NCAT=nc + else + return 1 + fi + } + return 0 +} +netcat_test() +{ + # $1 - ip + # $2 - port + local cmd + netcat_setup && { + cmd="$NCAT -z -w 2 $1 $2" + echo $cmd + $cmd 2>&1 + } +} + +check_system() +{ + echo \* checking system + + UNAME=$(uname) + SUBSYS= + local s + + # can be passed FWTYPE=iptables to override default nftables preference + case "$UNAME" in + Linux) + PKTWS="$NFQWS2" + PKTWSD=nfqws2 + linux_fwtype + [ "$FWTYPE" = iptables -o "$FWTYPE" = nftables ] || { + echo firewall type $FWTYPE not supported in $UNAME + exitp 5 + } + ;; + FreeBSD) + PKTWS="$DVTWS2" + PKTWSD=dvtws2 + FWTYPE=ipfw + [ -f /etc/platform ] && read SUBSYS /dev/null + ;; + *) + echo $UNAME not supported + exitp 5 + esac + echo $UNAME${SUBSYS:+/$SUBSYS} detected + echo -n 'kernel: ' + if [ -f "/proc/version" ]; then + cat /proc/version + else + uname -a + fi + [ -f /etc/os-release ] && { + . /etc/os-release + [ -n "$PRETTY_NAME" ] && echo "distro: $PRETTY_NAME" + [ -n "$OPENWRT_RELEASE" ] && echo "openwrt release: $OPENWRT_RELEASE" + [ -n "$OPENWRT_BOARD" ] && echo "openwrt board: $OPENWRT_BOARD" + [ -n "$OPENWRT_ARCH" ] && echo "openwrt arch: $OPENWRT_ARCH" + } + echo firewall type is $FWTYPE + echo CURL=$CURL + "$CURL" --version +} + +zp_already_running() +{ + case "$UNAME" in + CYGWIN) + win_process_exists $PKTWSD || win_process_exists winws || win_process_exists goodbyedpi + ;; + FreeBSD|OpenBSD) + process_exists $PKTWSD || process_exists tpws || process_exists dvtws + ;; + Linux) + process_exists $PKTWSD || process_exists tpws || process_exists nfqws + ;; + *) + return 1 + esac +} +check_already() +{ + echo \* checking already running DPI bypass processes + if zp_already_running; then + echo "!!! WARNING. some dpi bypass processes already running !!!" + echo "!!! WARNING. blockcheck requires all DPI bypass methods disabled !!!" + echo "!!! WARNING. pls stop all dpi bypass instances that may interfere with blockcheck !!!" + fi +} + +freebsd_module_loaded() +{ + # $1 - module name + kldstat -qm "${1}" +} +freebsd_modules_loaded() +{ + # $1,$2,$3, ... - module names + while [ -n "$1" ]; do + freebsd_module_loaded $1 || return 1 + shift + done + return 0 +} + +check_prerequisites() +{ + echo \* checking prerequisites + + [ "$SKIP_PKTWS" = 1 -o -x "$PKTWS" ] && [ -x "$MDIG" ] || { + local target + case $UNAME in + OpenBSD) + target="bsd" + echo $PKTWS or $MDIG is not available. \`gmake -C \"$ZAPRET_BASE\" bsd \` + ;; + *) + echo $PKTWS or $MDIG is not available. run \"$ZAPRET_BASE/install_bin.sh\" or \`make -C \"$ZAPRET_BASE\" $target\` + esac + exitp 6 + } + + local prog progs='curl' + [ "$SKIP_PKTWS" = 1 ] || { + case "$UNAME" in + Linux) + case "$FWTYPE" in + iptables) + ipt_has_nfq || { + echo NFQUEUE iptables or ip6tables target is missing. pls install modules. + exitp 6 + } + progs="$progs iptables ip6tables" + ;; + nftables) + nft_has_nfq || { + echo nftables queue support is not available. pls install modules. + exitp 6 + } + progs="$progs nft" + ;; + esac + ;; + FreeBSD) + freebsd_modules_loaded ipfw ipdivert || { + echo ipfw or ipdivert kernel module not loaded + exitp 6 + } + [ "$(sysctl -qn net.inet.ip.fw.enable)" = 0 -o "$(sysctl -qn net.inet6.ip6.fw.enable)" = 0 ] && { + echo ipfw is disabled. use : ipfw enable firewall + exitp 6 + } + pf_is_avail && { + pf_save + [ "$SUBSYS" = "pfSense" ] && { + # pfsense's ipfw may not work without these workarounds + sysctl net.inet.ip.pfil.outbound=ipfw,pf 2>/dev/null + sysctl net.inet.ip.pfil.inbound=ipfw,pf 2>/dev/null + sysctl net.inet6.ip6.pfil.outbound=ipfw,pf 2>/dev/null + sysctl net.inet6.ip6.pfil.inbound=ipfw,pf 2>/dev/null + pfctl -qd + pfctl -qe + pf_restore + } + } + progs="$progs ipfw" + ;; + OpenBSD) + pf_is_avail || { + echo pf is not available + exitp 6 + } + pf_save + progs="$progs pfctl" + ;; + esac + } + + for prog in $progs; do + exists $prog || { + echo $prog does not exist. please install + exitp 6 + } + done + + if exists nslookup; then + LOOKUP=nslookup + elif exists host; then + LOOKUP=host + else + echo nslookup or host does not exist. please install + exitp 6 + fi +} + + +curl_translate_code() +{ + # $1 - code + printf $1 + case $1 in + 0) printf ": ok" + ;; + 1) printf ": unsupported protocol" + ;; + 2) printf ": early initialization code failed" + ;; + 3) printf ": the URL was not properly formatted" + ;; + 4) printf ": feature not supported by libcurl" + ;; + 5) printf ": could not resolve proxy" + ;; + 6) printf ": could not resolve host" + ;; + 7) printf ": could not connect" + ;; + 8) printf ": invalid server reply" + ;; + 9) printf ": remote access denied" + ;; + 27) printf ": out of memory" + ;; + 28) printf ": operation timed out" + ;; + 35) printf ": SSL connect error" + ;; + esac +} +curl_supports_tls13() +{ + local r + "$CURL" --tlsv1.3 -Is -o /dev/null --max-time 1 http://127.0.0.1:65535 2>/dev/null + # return code 2 = init failed. likely bad command line options + [ $? = 2 ] && return 1 + # curl can have tlsv1.3 key present but ssl library without TLS 1.3 support + # this is online test because there's no other way to trigger library incompatibility case + "$CURL" --tlsv1.3 --max-time 1 -Is -o /dev/null https://iana.org 2>/dev/null + r=$? + [ $r != 4 -a $r != 35 ] +} + +curl_supports_tlsmax() +{ + # supported only in OpenSSL and LibreSSL + "$CURL" --version | grep -Fq -e OpenSSL -e LibreSSL -e BoringSSL -e GnuTLS -e quictls || return 1 + # supported since curl 7.54 + "$CURL" --tls-max 1.2 -Is -o /dev/null --max-time 1 http://127.0.0.1:65535 2>/dev/null + # return code 2 = init failed. likely bad command line options + [ $? != 2 ] +} + +curl_supports_connect_to() +{ + "$CURL" --connect-to 127.0.0.1:: -o /dev/null --max-time 1 http://127.0.0.1:65535 2>/dev/null + [ "$?" != 2 ] +} + +curl_supports_http3() +{ + # if it has http3 : curl: (3) HTTP/3 requested for non-HTTPS URL + # otherwise : curl: (2) option --http3-only: is unknown + "$CURL" --connect-to 127.0.0.1:: -o /dev/null --max-time 1 --http3-only http://127.0.0.1:65535 2>/dev/null + [ "$?" != 2 ] +} + +hdrfile_http_code() +{ + # $1 - hdr file + sed -nre '1,1 s/^HTTP\/1\.[0,1] ([0-9]+) .*$/\1/p' "$1" +} +hdrfile_location() +{ + # $1 - hdr file + + # some DPIs return CRLF line ending + tr -d '\015' <"$1" | sed -nre 's/^[Ll][Oo][Cc][Aa][Tt][Ii][Oo][Nn]:[ ]*([^ ]*)[ ]*$/\1/p' +} + +curl_with_subst_ip() +{ + # $1 - domain + # $2 - port + # $3 - ip + # $4+ - curl params + local ip="$3" + case "$ip" in + *:*) ip="[$ip]" ;; + esac + local connect_to="--connect-to $1::$ip${2:+:$2}" arg + shift ; shift ; shift; + [ "$CURL_VERBOSE" = 1 ] && arg="-v" + [ "$CURL_CMD" = 1 ] && echo $CURL ${arg:+$arg }$connect_to "$@" + ALL_PROXY="$ALL_PROXY" "$CURL" ${arg:+$arg }$connect_to "$@" +} +curl_with_dig() +{ + # $1 - ip version : 4/6 + # $2 - domain name + # $3 - port + # $4+ - curl params + local dom="$2" port=$3 + local sdom suri ip + + split_by_separator "$dom" / sdom suri + mdig_resolve $1 ip "$sdom" + shift ; shift ; shift + if [ -n "$ip" ]; then + curl_with_subst_ip "$sdom" "$port" "$ip" "$@" + else + return 6 + fi +} +curl_probe() +{ + # $1 - ip version : 4/6 + # $2 - domain name + # $3 - port + # $4 - subst ip + # $5+ - curl params + local ipv=$1 dom="$2" port=$3 subst=$4 + shift; shift; shift; shift + if [ -n "$subst" ]; then + curl_with_subst_ip "$dom" $port $subst "$@" + else + curl_with_dig $ipv "$dom" $port "$@" + fi +} +curl_test_http() +{ + # $1 - ip version : 4/6 + # $2 - domain name + # $3 - subst ip + # $4 - "detail" - detail info + + local code loc hdrt="${HDRTEMP}_${!:-$$}.txt" dom="$(tolower "$2")" + curl_probe $1 "$2" $HTTP_PORT "$3" -SsD "$hdrt" -A "$USER_AGENT" --max-time $CURL_MAX_TIME $CURL_OPT "http://$2" -o /dev/null 2>&1 || { + code=$? + rm -f "$hdrt" + return $code + } + if [ "$4" = "detail" ] ; then + head -n 1 "$hdrt" + grep "^[lL]ocation:" "$hdrt" + else + code=$(hdrfile_http_code "$hdrt") + [ "$code" = 301 -o "$code" = 302 -o "$code" = 307 -o "$code" = 308 ] && { + loc=$(hdrfile_location "$hdrt") + split_by_separator "$dom" / dom + tolower "$loc" | grep -qE "^https?://.*$dom(/|$)" || + tolower "$loc" | grep -vqE '^https?://' || { + echo suspicious redirection $code to : $loc + rm -f "$hdrt" + return 254 + } + } + fi + rm -f "$hdrt" + [ "$code" = 400 ] && { + # this can often happen if the server receives fake packets it should not receive + echo http code $code. likely the server receives fakes. + return 254 + } + return 0 +} +curl_test_https_tls12() +{ + # $1 - ip version : 4/6 + # $2 - domain name + # $3 - subst ip + + # do not use tls 1.3 to make sure server certificate is not encrypted + curl_probe $1 "$2" $HTTPS_PORT "$3" $HTTPS_HEAD -Ss -A "$USER_AGENT" --max-time $CURL_MAX_TIME $CURL_OPT --tlsv1.2 $TLSMAX12 "https://$2" -o /dev/null 2>&1 +} +curl_test_https_tls13() +{ + # $1 - ip version : 4/6 + # $2 - domain name + # $3 - subst ip + + # force TLS1.3 mode + curl_probe $1 "$2" $HTTPS_PORT "$3" $HTTPS_HEAD -Ss -A "$USER_AGENT" --max-time $CURL_MAX_TIME $CURL_OPT --tlsv1.3 $TLSMAX13 "https://$2" -o /dev/null 2>&1 +} + +curl_test_http3() +{ + # $1 - ip version : 4/6 + # $2 - domain name + + # force QUIC only mode without tcp + curl_with_dig $1 "$2" $QUIC_PORT $HTTPS_HEAD -Ss -A "$USER_AGENT" --max-time $CURL_MAX_TIME_QUIC --http3-only $CURL_OPT "https://$2" -o /dev/null 2>&1 +} + +ipt_aux_scheme() +{ + # $1 - 1 - add , 0 - del + # $2 - tcp/udp + # $3 - port + + # to avoid possible INVALID state drop + [ "$2" = tcp ] && IPT_ADD_DEL $1 INPUT -p $2 --sport $3 ! --syn $IPT_COMMENT -j ACCEPT + + local icmp_filter="-p icmp -m icmp --icmp-type" + [ "$IPV" = 6 ] && icmp_filter="-p icmpv6 -m icmp6 --icmpv6-type" + IPT_ADD_DEL $1 INPUT $icmp_filter time-exceeded -m connmark --mark $DESYNC_MARK/$DESYNC_MARK $IPT_COMMENT -j DROP + + # for strategies with incoming packets involved (autottl) + IPT_ADD_DEL $1 OUTPUT -p $2 --dport $3 -m conntrack --ctstate INVALID $IPT_COMMENT -j ACCEPT + if [ "$IPV" = 6 -a -n "$IP6_DEFRAG_DISABLE" ]; then + # the only way to reliable disable ipv6 defrag. works only in 4.16+ kernels + IPT_ADD_DEL $1 OUTPUT -t raw -p $2 -m frag $IPT_COMMENT -j CT --notrack + elif [ "$IPV" = 4 ]; then + # enable fragments + IPT_ADD_DEL $1 OUTPUT -f $IPT_COMMENT -j ACCEPT + fi + # enable everything generated by nfqws (works only in OUTPUT, not in FORWARD) + # raw table may not be present + IPT_ADD_DEL $1 OUTPUT -t raw -m mark --mark $DESYNC_MARK/$DESYNC_MARK $IPT_COMMENT -j CT --notrack +} +ipt_scheme() +{ + # $1 - tcp/udp + # $2 - port + # $3 - ip list + + local ip + + $IPTABLES -t mangle -N $IPT_OUT_CHAIN 2>/dev/null + $IPTABLES -t mangle -F $IPT_OUT_CHAIN + IPT OUTPUT -t mangle -j $IPT_OUT_CHAIN + + # prevent loop + $IPTABLES -t mangle -A $IPT_OUT_CHAIN -m mark --mark $DESYNC_MARK/$DESYNC_MARK -j RETURN + $IPTABLES -t mangle -A $IPT_OUT_CHAIN ! -p $1 -j RETURN + $IPTABLES -t mangle -A $IPT_OUT_CHAIN -p $1 ! --dport $2 -j RETURN + + for ip in $3; do + $IPTABLES -t mangle -A $IPT_OUT_CHAIN -d $ip -j CONNMARK --or-mark $DESYNC_MARK + $IPTABLES -t mangle -A $IPT_OUT_CHAIN -d $ip -j NFQUEUE --queue-num $QNUM + done + + ipt_aux_scheme 1 $1 $2 +} +nft_scheme() +{ + # $1 - tcp/udp + # $2 - port + # $3 - ip list + + local iplist ipver=$IPV + [ "$IPV" = 6 ] || ipver= + make_comma_list iplist $3 + + nft add table inet $NFT_TABLE + nft "add chain inet $NFT_TABLE postnat { type filter hook postrouting priority 102; }" + nft "add rule inet $NFT_TABLE postnat meta nfproto ipv${IPV} $1 dport $2 mark and $DESYNC_MARK == 0 ip${ipver} daddr {$iplist} ct mark set ct mark or $DESYNC_MARK queue num $QNUM" + # for strategies with incoming packets involved (autottl) + nft "add chain inet $NFT_TABLE prenat { type filter hook prerouting priority -102; }" + # enable everything generated by nfqws (works only in OUTPUT, not in FORWARD) + nft "add chain inet $NFT_TABLE predefrag { type filter hook output priority -402; }" + nft "add rule inet $NFT_TABLE predefrag meta nfproto ipv${IPV} mark and $DESYNC_MARK !=0 notrack" + [ "$IPV" = 4 ] && { + nft "add rule inet $NFT_TABLE prenat icmp type time-exceeded ct mark and $DESYNC_MARK != 0 drop" + nft "add rule inet $NFT_TABLE prenat icmp type time-exceeded ct state invalid drop" + } + [ "$IPV" = 6 ] && { + nft "add rule inet $NFT_TABLE prenat icmpv6 type time-exceeded ct mark and $DESYNC_MARK != 0 drop" + nft "add rule inet $NFT_TABLE prenat icmpv6 type time-exceeded ct state invalid drop" + } +} + +pktws_ipt_prepare() +{ + # $1 - tcp/udp + # $2 - port + # $3 - ip list + + local ip + + case "$FWTYPE" in + iptables) + ipt_scheme $1 $2 "$3" + ;; + nftables) + nft_scheme $1 $2 "$3" + ;; + ipfw) + # disable PF to avoid interferences + pf_is_avail && pfctl -qd + for ip in $3; do + IPFW_ADD divert $IPFW_DIVERT_PORT $1 from me to $ip $2 proto ip${IPV} out not diverted + done + ;; + opf) + opf_prepare_dvtws $1 $2 "$3" + ;; + windivert) + WF="--wf-l3=ipv${IPV} --wf-${1}-out=$2" + rm -f "$IPSET_FILE" + for ip in $3; do + echo $ip >>"$IPSET_FILE" + done + ;; + + esac +} +pktws_ipt_unprepare() +{ + # $1 - tcp/udp + # $2 - port + + case "$FWTYPE" in + iptables) + ipt_aux_scheme 0 $1 $2 + IPT_DEL OUTPUT -t mangle -j $IPT_OUT_CHAIN + $IPTABLES -t mangle -F $IPT_OUT_CHAIN 2>/dev/null + $IPTABLES -t mangle -X $IPT_OUT_CHAIN 2>/dev/null + ;; + nftables) + nft delete table inet $NFT_TABLE 2>/dev/null + ;; + ipfw) + IPFW_DEL + pf_is_avail && pf_restore + ;; + opf) + pf_restore + ;; + windivert) + unset WF + rm -f "$IPSET_FILE" + ;; + esac +} + +pktws_ipt_prepare_tcp() +{ + # $1 - port + # $2 - ip list + + local ip iplist ipver + + pktws_ipt_prepare tcp $1 "$2" + + # for autottl mode and tcp_mss detection + case "$FWTYPE" in + iptables) + $IPTABLES -N $IPT_IN_CHAIN -t mangle 2>/dev/null + $IPTABLES -F $IPT_IN_CHAIN -t mangle 2>/dev/null + IPT INPUT -t mangle -j $IPT_IN_CHAIN + $IPTABLES -t mangle -A $IPT_IN_CHAIN ! -p tcp -j RETURN + $IPTABLES -t mangle -A $IPT_IN_CHAIN -p tcp ! --sport $1 -j RETURN + $IPTABLES -t mangle -A $IPT_IN_CHAIN -p tcp ! --tcp-flags SYN,ACK SYN,ACK -j RETURN + for ip in $2; do + $IPTABLES -A $IPT_IN_CHAIN -t mangle -s $ip -j NFQUEUE --queue-num $QNUM + done + ;; + nftables) + ipver=$IPV + [ "$IPV" = 6 ] || ipver= + make_comma_list iplist $2 + nft "add rule inet $NFT_TABLE prenat meta nfproto ipv${IPV} tcp sport $1 tcp flags & (syn | ack) == (syn | ack) ip${ipver} saddr {$iplist} queue num $QNUM" + ;; + ipfw) + for ip in $2; do + IPFW_ADD divert $IPFW_DIVERT_PORT tcp from $ip $1 to me proto ip${IPV} tcpflags syn,ack in not diverted + done + ;; + esac +} +pktws_ipt_unprepare_tcp() +{ + # $1 - port + + pktws_ipt_unprepare tcp $1 + + case "$FWTYPE" in + iptables) + IPT_DEL INPUT -t mangle -j $IPT_IN_CHAIN + $IPTABLES -t mangle -F $IPT_IN_CHAIN 2>/dev/null + $IPTABLES -t mangle -X $IPT_IN_CHAIN 2>/dev/null + ;; + esac +} +pktws_ipt_prepare_udp() +{ + # $1 - port + # $2 - ip list + + pktws_ipt_prepare udp $1 "$2" +} +pktws_ipt_unprepare_udp() +{ + # $1 - port + + pktws_ipt_unprepare udp $1 +} + + +pktws_start() +{ + case "$UNAME" in + Linux) + "$NFQWS2" --uid $WS_UID:$WS_GID --fwmark=$DESYNC_MARK --qnum=$QNUM --lua-init=@"$ZAPRET_BASE/lua/zapret-lib.lua" --lua-init=@"$ZAPRET_BASE/lua/zapret-antidpi.lua" "$@" >/dev/null & + ;; + FreeBSD|OpenBSD) + "$DVTWS2" --port=$IPFW_DIVERT_PORT --lua-init=@"$ZAPRET_BASE/lua/zapret-lib.lua" --lua-init=@"$ZAPRET_BASE/lua/zapret-antidpi.lua" "$@" >/dev/null & + ;; + CYGWIN) + # allow multiple PKTWS instances with the same wf filter but different ipset + # some methods require empty acks + # use guard timer to kill unmanaged pktws instances + "$WINWS2" --wf-dup-check=0 --wf-tcp-empty=1 $WF --ipset="$IPSET_FILE" \ + --lua-init="timer_set('exit_guard',function(name,data) io.stderr:write('exit_guard\n'); os.exit(3000); end,20000,true)" \ + --lua-init=@"$ZAPRET_BASE/lua/zapret-lib.lua" --lua-init=@"$ZAPRET_BASE/lua/zapret-antidpi.lua" "$@" >/dev/null & + ;; + esac + PID=$! + # give some time to initialize + minsleep +} + +ws_kill() +{ + local sig + [ -z "$PID" ] || { + sig=-9 + # use fast kill using TerminateProcess() in cygwin + [ "$UNAME" = "CYGWIN" ] && sig=-f + killwait $sig $PID 2>/dev/null + PID= + } +} + +check_domain_port_block() +{ + # $1 - domain + # $2 - port + local ip ips + echo + echo \* port block tests ipv$IPV $1:$2 + if netcat_setup; then + mdig_resolve_all $IPV ips $1 + if [ -n "$ips" ]; then + for ip in $ips; do + if netcat_test $ip $2; then + echo $ip connects + else + echo $ip does not connect. netcat code $? + fi + done + else + echo "ipv${IPV} $1 does not resolve" + fi + else + echo suitable netcat not found. busybox nc is not supported. pls install nmap ncat or openbsd netcat. + fi +} + +curl_test() +{ + # $1 - test function + # $2 - domain + # $3 - subst ip + # $4 - param of test function + local code=0 n=0 p pids + + if [ "$PARALLEL" = 1 ]; then + rm -f "${PARALLEL_OUT}"* + for n in $(seq -s ' ' 1 $REPEATS); do + $1 "$IPV" "$2" $3 "$4" >"${PARALLEL_OUT}_$n" & + pids="${pids:+$pids }$!" + done + n=1 + for p in $pids; do + [ $REPEATS -gt 1 ] && printf "[attempt $n] " + if wait $p; then + [ $REPEATS -gt 1 ] && echo 'AVAILABLE' + else + code=$? + cat "${PARALLEL_OUT}_$n" + fi + n=$(($n+1)) + done + rm -f "${PARALLEL_OUT}"* + else + while [ $n -lt $REPEATS ]; do + n=$(($n+1)) + [ $REPEATS -gt 1 ] && printf "[attempt $n] " + if $1 "$IPV" "$2" $3 "$4" ; then + [ $REPEATS -gt 1 ] && echo 'AVAILABLE' + else + code=$? + [ "$SCANLEVEL" = quick ] && break + fi + done + fi + [ "$4" = detail ] || { + if [ $code = 254 ]; then + echo "UNAVAILABLE" + elif [ $code = 0 ]; then + echo '!!!!! AVAILABLE !!!!!' + else + echo "UNAVAILABLE code=$code" + fi + } + return $code +} +ws_curl_test() +{ + # $1 - ws start function + # $2 - test function + # $3 - domain + # $4,$5,$6, ... - ws params + local code ws_start=$1 testf=$2 dom="$3" + + [ "$SIMULATE" = 1 ] && { + n=$(random 0 99) + if [ "$n" -lt "$SIM_SUCCESS_RATE" ]; then + echo "SUCCESS" + return 0 + else + echo "FAILED" + return 7 + fi + } + shift + shift + shift + $ws_start "$@" + curl_test $testf "$dom" + code=$? + ws_kill + return $code +} +pktws_curl_test() +{ + # $1 - test function + # $2 - domain + # $3,$4,$5, ... - nfqws/dvtws params + local testf=$1 dom="$2" strategy code + + shift; shift; + echo - $testf ipv$IPV $dom : $PKTWSD ${WF:+$WF }${PKTWS_EXTRA_PRE:+$PKTWS_EXTRA_PRE }${PKTWS_EXTRA_PRE_1:+"$PKTWS_EXTRA_PRE_1" }${PKTWS_EXTRA_PRE_2:+"$PKTWS_EXTRA_PRE_2" }${PKTWS_EXTRA_PRE_3:+"$PKTWS_EXTRA_PRE_3" }${PKTWS_EXTRA_PRE_4:+"$PKTWS_EXTRA_PRE_4" }${PKTWS_EXTRA_PRE_5:+"$PKTWS_EXTRA_PRE_5" }${PKTWS_EXTRA_PRE_6:+"$PKTWS_EXTRA_PRE_6" }${PKTWS_EXTRA_PRE_7:+"$PKTWS_EXTRA_PRE_7" }${PKTWS_EXTRA_PRE_8:+"$PKTWS_EXTRA_PRE_8" }${PKTWS_EXTRA_PRE_9:+"$PKTWS_EXTRA_PRE_9" }$@${PKTWS_EXTRA_POST:+ $PKTWS_EXTRA_POST}${PKTWS_EXTRA_POST_1:+ "$PKTWS_EXTRA_POST_1"}${PKTWS_EXTRA_POST_2:+ "$PKTWS_EXTRA_POST_2"}${PKTWS_EXTRA_POST_3:+ "$PKTWS_EXTRA_POST_3"}${PKTWS_EXTRA_POST_4:+ "$PKTWS_EXTRA_POST_4"}${PKTWS_EXTRA_POST_5:+ "$PKTWS_EXTRA_POST_5"}${PKTWS_EXTRA_POST_6:+ "$PKTWS_EXTRA_POST_6"}${PKTWS_EXTRA_POST_7:+ "$PKTWS_EXTRA_POST_7"}${PKTWS_EXTRA_POST_8:+ "$PKTWS_EXTRA_POST_8"}${PKTWS_EXTRA_POST_9:+ "$PKTWS_EXTRA_POST_9"} + ws_curl_test pktws_start $testf "$dom" ${PKTWS_EXTRA_PRE:+$PKTWS_EXTRA_PRE }${PKTWS_EXTRA_PRE_1:+"$PKTWS_EXTRA_PRE_1" }${PKTWS_EXTRA_PRE_2:+"$PKTWS_EXTRA_PRE_2" }${PKTWS_EXTRA_PRE_3:+"$PKTWS_EXTRA_PRE_3" }${PKTWS_EXTRA_PRE_4:+"$PKTWS_EXTRA_PRE_4" }${PKTWS_EXTRA_PRE_5:+"$PKTWS_EXTRA_PRE_5" }${PKTWS_EXTRA_PRE_6:+"$PKTWS_EXTRA_PRE_6" }${PKTWS_EXTRA_PRE_7:+"$PKTWS_EXTRA_PRE_7" }${PKTWS_EXTRA_PRE_8:+"$PKTWS_EXTRA_PRE_8" }${PKTWS_EXTRA_PRE_9:+"$PKTWS_EXTRA_PRE_9" }"$@"${PKTWS_EXTRA_POST:+ $PKTWS_EXTRA_POST}${PKTWS_EXTRA_POST_1:+ "$PKTWS_EXTRA_POST_1"}${PKTWS_EXTRA_POST_2:+ "$PKTWS_EXTRA_POST_2"}${PKTWS_EXTRA_POST_3:+ "$PKTWS_EXTRA_POST_3"}${PKTWS_EXTRA_POST_4:+ "$PKTWS_EXTRA_POST_4"}${PKTWS_EXTRA_POST_5:+ "$PKTWS_EXTRA_POST_5"}${PKTWS_EXTRA_POST_6:+ "$PKTWS_EXTRA_POST_6"}${PKTWS_EXTRA_POST_7:+ "$PKTWS_EXTRA_POST_7"}${PKTWS_EXTRA_POST_8:+ "$PKTWS_EXTRA_POST_8"}${PKTWS_EXTRA_POST_9:+ "$PKTWS_EXTRA_POST_9"} + + code=$? + [ "$code" = 0 ] && { + strategy="$@" + strategy_append_extra_pktws + report_append "$dom" "$testf ipv${IPV}" "$PKTWSD ${WF:+$WF }$strategy" + } + return $code +} +strategy_append_extra_pktws() +{ + strategy="${strategy:+${PKTWS_EXTRA_PRE:+$PKTWS_EXTRA_PRE }${PKTWS_EXTRA_PRE_1:+"$PKTWS_EXTRA_PRE_1" }${PKTWS_EXTRA_PRE_2:+"$PKTWS_EXTRA_PRE_2" }${PKTWS_EXTRA_PRE_3:+"$PKTWS_EXTRA_PRE_3" }${PKTWS_EXTRA_PRE_4:+"$PKTWS_EXTRA_PRE_4" }${PKTWS_EXTRA_PRE_5:+"$PKTWS_EXTRA_PRE_5" }${PKTWS_EXTRA_PRE_6:+"$PKTWS_EXTRA_PRE_6" }${PKTWS_EXTRA_PRE_7:+"$PKTWS_EXTRA_PRE_7" }${PKTWS_EXTRA_PRE_8:+"$PKTWS_EXTRA_PRE_8" }${PKTWS_EXTRA_PRE_9:+"$PKTWS_EXTRA_PRE_9" }$strategy${PKTWS_EXTRA_POST:+ $PKTWS_EXTRA_POST}${PKTWS_EXTRA_POST_1:+ "$PKTWS_EXTRA_POST_1"}${PKTWS_EXTRA_POST_2:+ "$PKTWS_EXTRA_POST_2"}${PKTWS_EXTRA_POST_3:+ "$PKTWS_EXTRA_POST_3"}${PKTWS_EXTRA_POST_4:+ "$PKTWS_EXTRA_POST_4"}${PKTWS_EXTRA_POST_5:+ "$PKTWS_EXTRA_POST_5"}${PKTWS_EXTRA_POST_6:+ "$PKTWS_EXTRA_POST_6"}${PKTWS_EXTRA_POST_7:+ "$PKTWS_EXTRA_POST_7"}${PKTWS_EXTRA_POST_8:+ "$PKTWS_EXTRA_POST_8"}${PKTWS_EXTRA_POST_9:+ "$PKTWS_EXTRA_POST_9"}}" +} + + +xxxws_curl_test_update() +{ + # $1 - xxx_curl_test function + # $2 - test function + # $3 - domain + # $4,$5,$6, ... - nfqws2/dvtws2 params + local code xxxf=$1 testf=$2 dom="$3" + shift + shift + shift + $xxxf $testf "$dom" "$@" + code=$? + [ $code = 0 ] && strategy="${strategy:-$@}" + return $code +} +pktws_curl_test_update() +{ + xxxws_curl_test_update pktws_curl_test "$@" +} + +report_append() +{ + # $1 - domain + # $2 - test function + ipver + # $3 - value + local hashstr hash hashvar hashcountvar val ct + + # save resources if only one domain + [ "$DOMAINS_COUNT" -gt 1 ] && { + hashstr="$2 : $3" + hash="$(echo -n "$hashstr" | md5f)" + hashvar=RESHASH_${hash} + hashcountvar=${hashvar}_COUNTER + + NRESHASH=${NRESHASH:-0} + + eval val="\$$hashvar" + if [ -n "$val" ]; then + eval ct="\$$hashcountvar" + ct=$(($ct + 1)) + eval $hashcountvar="\$ct" + else + eval $hashvar=\"$hashstr\" + eval $hashcountvar=1 + eval RES_$NRESHASH="\$hash" + NRESHASH=$(($NRESHASH+1)) + fi + } + + NREPORT=${NREPORT:-0} + eval REPORT_${NREPORT}=\"$2 $1 : $3\" + NREPORT=$(($NREPORT+1)) +} +report_print() +{ + local n=0 s + NREPORT=${NREPORT:-0} + while [ $n -lt $NREPORT ]; do + eval s=\"\${REPORT_$n}\" + echo $s + n=$(($n+1)) + done +} +result_intersection_print() +{ + local n=0 hash hashvar hashcountvar ct val + while : ; do + eval hash=\"\$RES_$n\" + [ -n "$hash" ] || break + hashvar=RESHASH_${hash} + hashcountvar=${hashvar}_COUNTER + eval ct=\"\$$hashcountvar\" + [ "$ct" = "$DOMAINS_COUNT" ] && { + eval val=\"\$$hashvar\" + echo "$val" + } + n=$(($n + 1)) + done +} +report_strategy() +{ + # $1 - test function + # $2 - domain + # $3 - daemon + echo + if [ -n "$strategy" ]; then + # trim spaces at the end + strategy="$(echo "$strategy" | xargs)" + echo "!!!!! $1: working strategy found for ipv${IPV} $2 : $3 $strategy !!!!!" + echo + return 0 + else + echo "$1: $3 strategy for ipv${IPV} $2 not found" + echo + report_append "$2" "$1 ipv${IPV}" "$3 not working" + return 1 + fi +} + +test_runner() +{ + # $1 - function name + # $2+ - params + + local n script FUNC=$1 + + shift + + TESTDIR="$BLOCKCHECK2D/$TEST" + [ -d "$TESTDIR" ] && { + dir_is_not_empty "$TESTDIR" && { + for script in "$TESTDIR/"*.sh; do + [ -f "$script" ] || continue + unset -f $FUNC + . "$script" + existf $FUNC && { + echo + echo "* script : $TEST/$(basename "$script")" + $FUNC "$@" + } + done + } + } +} + +pktws_check_domain_http_bypass() +{ + # $1 - test function + # $2 - encrypted test : 0 = plain, 1 - encrypted with server reply risk, 2 - encrypted without server reply risk + # $3 - domain + + local strategy func + if [ "$2" = 0 ]; then + func=pktws_check_http + elif [ "$2" = 1 ]; then + func=pktws_check_https_tls12 + elif [ "$2" = 2 ]; then + func=pktws_check_https_tls13 + else + return 1 + fi + test_runner $func "$1" "$3" + strategy_append_extra_pktws + report_strategy $1 $3 $PKTWSD +} + +pktws_check_domain_http3_bypass() +{ + # $1 - test function + # $2 - domain + + local strategy + test_runner pktws_check_http3 "$@" + strategy_append_extra_pktws + report_strategy $1 $2 $PKTWSD +} + + +check_dpi_ip_block() +{ + # $1 - test function + # $2 - domain + + local blocked_dom=$2 + local blocked_ip blocked_ips unblocked_ip + + echo + echo "- IP block tests (requires manual interpretation)" + + echo "> testing $UNBLOCKED_DOM on it's original ip" + if curl_test $1 $UNBLOCKED_DOM; then + mdig_resolve $IPV unblocked_ip $UNBLOCKED_DOM + [ -n "$unblocked_ip" ] || { + echo $UNBLOCKED_DOM does not resolve. tests not possible. + return 1 + } + + echo "> testing $blocked_dom on $unblocked_ip ($UNBLOCKED_DOM)" + curl_test $1 $blocked_dom $unblocked_ip detail + + mdig_resolve_all $IPV blocked_ips $blocked_dom + for blocked_ip in $blocked_ips; do + echo "> testing $UNBLOCKED_DOM on $blocked_ip ($blocked_dom)" + curl_test $1 $UNBLOCKED_DOM $blocked_ip detail + done + else + echo $UNBLOCKED_DOM is not available. skipping this test. + fi +} + +curl_has_reason_to_continue() +{ + # $1 - curl return code + for c in 1 2 3 4 6 27 ; do + [ $1 = $c ] && return 1 + done + return 0 +} + +check_domain_prolog() +{ + # $1 - test function + # $2 - port + # $3 - domain + + local code + + [ "$SIMULATE" = 1 ] && return 0 + + echo + echo \* $1 ipv$IPV $3 + + echo "- checking without DPI bypass" + curl_test $1 $3 && { + report_append "$3" "$1 ipv${IPV}" "working without bypass" + [ "$SCANLEVEL" = force ] || return 1 + } + code=$? + curl_has_reason_to_continue $code || { + report_append "$3" "$1 ipv${IPV}" "test aborted, no reason to continue. curl code $(curl_translate_code $code)" + return 1 + } + return 0 +} +check_domain_http_tcp() +{ + # $1 - test function + # $2 - port + # $3 - encrypted test : 0 = plain, 1 - encrypted with server reply risk, 2 - encrypted without server reply risk + # $4 - domain + + local ips + + # in case was interrupted before + ws_kill + + check_domain_prolog $1 $2 $4 || return + + [ "$SKIP_IPBLOCK" = 1 ] || check_dpi_ip_block $1 $4 + + [ "$SKIP_PKTWS" = 1 ] || { + echo + echo preparing $PKTWSD redirection + mdig_resolve_all $IPV ips $4 + pktws_ipt_prepare_tcp $2 "$ips" + + pktws_check_domain_http_bypass $1 $3 $4 + + echo clearing $PKTWSD redirection + pktws_ipt_unprepare_tcp $2 + } +} +check_domain_http_udp() +{ + # $1 - test function + # $2 - port + # $3 - domain + + local ips + + # in case was interrupted before + ws_kill + + check_domain_prolog $1 $2 $3 || return + + [ "$SKIP_PKTWS" = 1 ] || { + echo + echo preparing $PKTWSD redirection + mdig_resolve_all $IPV ips $3 + pktws_ipt_prepare_udp $2 "$ips" + + pktws_check_domain_http3_bypass $1 $3 + + echo clearing $PKTWSD redirection + pktws_ipt_unprepare_udp $2 + } +} + + +check_domain_http() +{ + # $1 - domain + check_domain_http_tcp curl_test_http $HTTP_PORT 0 $1 +} +check_domain_https_tls12() +{ + # $1 - domain + check_domain_http_tcp curl_test_https_tls12 $HTTPS_PORT 1 $1 +} +check_domain_https_tls13() +{ + # $1 - domain + check_domain_http_tcp curl_test_https_tls13 $HTTPS_PORT 2 $1 +} +check_domain_http3() +{ + # $1 - domain + check_domain_http_udp curl_test_http3 $QUIC_PORT $1 +} + +configure_ip_version() +{ + if [ "$IPV" = 6 ]; then + LOCALHOST=::1 + LOCALHOST_IPT=[${LOCALHOST}] + IPVV=6 + else + IPTABLES=iptables + LOCALHOST=127.0.0.1 + LOCALHOST_IPT=$LOCALHOST + IPVV= + fi + IPTABLES=ip${IPVV}tables +} +configure_curl_opt() +{ + # wolfssl : --tlsv1.x mandates exact ssl version, tls-max not supported + # openssl : --tlsv1.x means "version equal or greater", tls-max supported + TLSMAX12= + TLSMAX13= + curl_supports_tlsmax && { + TLSMAX12="--tls-max 1.2" + TLSMAX13="--tls-max 1.3" + } + TLS13= + curl_supports_tls13 && TLS13=1 + HTTP3= + curl_supports_http3 && HTTP3=1 + + HTTPS_HEAD=-I + [ "$CURL_HTTPS_GET" = 1 ] && HTTPS_HEAD= +} + +linux_ipv6_defrag_can_be_disabled() +{ + linux_min_version 4 16 +} + +configure_defrag() +{ + IP6_DEFRAG_DISABLE= + + [ "$IPVS" = 4 ] && return + + [ "$UNAME" = "Linux" ] && { + linux_ipv6_defrag_can_be_disabled || { + echo "WARNING ! ipv6 defrag can only be effectively disabled in linux kernel 4.16+" + echo "WARNING ! ipv6 ipfrag tests are disabled" + echo + return + } + } + + case "$FWTYPE" in + iptables) + if ipt6_has_raw ; then + if ipt6_has_frag; then + IP6_DEFRAG_DISABLE=1 + else + echo "WARNING ! ip6tables does not have '-m frag' module, ipv6 ipfrag tests are disabled" + echo + fi + else + echo "WARNING ! ip6tables raw table is not available, ipv6 ipfrag tests are disabled" + echo + fi + [ -n "$IP6_DEFRAG_DISABLE" ] && { + local ipexe="$(readlink -f $(whichq ip6tables))" + if contains "$ipexe" nft; then + echo "WARNING ! ipv6 ipfrag tests may have no effect if ip6tables-nft is used. current ip6tables point to : $ipexe" + else + echo "WARNING ! ipv6 ipfrag tests may have no effect if ip6table_raw kernel module is not loaded with parameter : raw_before_defrag=1" + fi + echo + } + ;; + *) + IP6_DEFRAG_DISABLE=1 + ;; + esac +} + +ask_params() +{ + local d dirs more_dirs= + + echo + echo NOTE ! this test should be run with zapret or any other bypass software disabled, without VPN + echo + + curl_supports_connect_to || { + echo "installed curl does not support --connect-to option. pls install at least curl 7.49" + echo "current curl version:" + "$CURL" --version + exitp 1 + } + + [ -n "$TEST" ] || { + dir_is_not_empty "$BLOCKCHECK2D" || { + echo "directory '$BLOCKCHECK2D' is absent or empty" + exitp 1 + } + TEST="$TEST_DEFAULT" + [ "$BATCH" = 1 ] || { + for d in "$BLOCKCHECK2D"/* ; do + more_dirs=${dirs:+1} + [ -d "$d" ] && dirs="${dirs:+$dirs }$(basename "$d")" + done + [ -n "$dirs" ] || { + echo "no subdirs found in '$BLOCKCHECK2D'" + exitp 1 + } + if [ -z "$more_dirs" ]; then + TEST="$dirs" + else + echo "select test :" + ask_list TEST "$dirs" "$TEST" + fi + } + } + [ -d "$BLOCKCHECK2D/$TEST" ] || { + echo "directory '$BLOCKCHECK2D/$TEST' does not exist" + exitp 1 + } + + local dom + [ -n "$DOMAINS" ] || { + DOMAINS="$DOMAINS_DEFAULT" + [ "$BATCH" = 1 ] || { + echo "specify domain(s) to test. multiple domains are space separated. URIs are supported (rutracker.org/forum/index.php)" + printf "domain(s) (default: $DOMAINS) : " + read dom + [ -n "$dom" ] && DOMAINS="$dom" + } + } + DOMAINS_COUNT="$(echo "$DOMAINS" | wc -w | trim)" + + local IPVS_def=4 + [ -n "$IPVS" ] || { + # yandex public dns + pingtest 6 2a02:6b8::feed:0ff && IPVS_def=46 + [ "$BATCH" = 1 ] || { + printf "ip protocol version(s) - 4, 6 or 46 for both (default: $IPVS_def) : " + read IPVS + } + [ -n "$IPVS" ] || IPVS=$IPVS_def + [ "$IPVS" = 4 -o "$IPVS" = 6 -o "$IPVS" = 46 ] || { + echo 'invalid ip version(s). should be 4, 6 or 46.' + exitp 1 + } + } + [ "$IPVS" = 46 ] && IPVS="4 6" + + configure_curl_opt + + [ -n "$ENABLE_HTTP" ] || { + ENABLE_HTTP=1 + [ "$BATCH" = 1 ] || { + echo + ask_yes_no_var ENABLE_HTTP "check http" + } + } + + [ -n "$ENABLE_HTTPS_TLS12" ] || { + ENABLE_HTTPS_TLS12=1 + [ "$BATCH" = 1 ] || { + echo + ask_yes_no_var ENABLE_HTTPS_TLS12 "check https tls 1.2" + } + } + + [ -n "$ENABLE_HTTPS_TLS13" ] || { + ENABLE_HTTPS_TLS13=0 + if [ -n "$TLS13" ]; then + [ "$BATCH" = 1 ] || { + echo + echo "TLS 1.3 uses encrypted ServerHello. DPI cannot check domain name in server response." + echo "This can allow more bypass strategies to work." + echo "What works for TLS 1.2 will also work for TLS 1.3 but not vice versa." + echo "Most sites nowadays support TLS 1.3 but not all. If you can't find a strategy for TLS 1.2 use this test." + echo "TLS 1.3 only strategy is better than nothing." + ask_yes_no_var ENABLE_HTTPS_TLS13 "check https tls 1.3" + } + fi + } + [ "$ENABLE_HTTPS_TLS13" = 1 -a -z "$TLS13" ] && { + echo + echo "WARNING ! installed curl version does not support TLS 1.3 . tests disabled." + ENABLE_HTTPS_TLS13=0 + } + + [ -n "$ENABLE_HTTP3" ] || { + ENABLE_HTTP3=0 + if [ -n "$HTTP3" ]; then + ENABLE_HTTP3=1 + [ "$BATCH" = 1 ] || { + echo + echo "make sure target domain(s) support QUIC or result will be negative in any case" + ask_yes_no_var ENABLE_HTTP3 "check http3 QUIC" + } + fi + } + [ "$ENABLE_HTTP3" = 1 -a -z "$HTTP3" ] && { + echo + echo "WARNING ! installed curl version does not support http3 QUIC. tests disabled." + ENABLE_HTTP3=0 + } + + [ -n "$REPEATS" ] || { + [ "$BATCH" = 1 ] || { + echo + echo "sometimes ISPs use multiple DPIs or load balancing. bypass strategies may work unstable." + printf "how many times to repeat each test (default: 1) : " + read REPEATS + } + REPEATS=$((0+${REPEATS:-1})) + [ "$REPEATS" = 0 ] && { + echo invalid repeat count + exitp 1 + } + } + [ -z "$PARALLEL" -a $REPEATS -gt 1 ] && { + PARALLEL=0 + [ "$BATCH" = 1 ] || { + echo + echo "parallel scan can greatly increase speed but may also trigger DDoS protection and cause false result" + ask_yes_no_var PARALLEL "enable parallel scan" + } + } + PARALLEL=${PARALLEL:-0} + + [ -n "$SCANLEVEL" ] || { + SCANLEVEL=standard + [ "$BATCH" = 1 ] || { + echo + echo quick - in multi-attempt mode skip further attempts after first failure + echo standard - do investigation what works on your DPI + echo force - scan maximum despite of result + ask_list SCANLEVEL "quick standard force" "$SCANLEVEL" + } + } + + echo + + configure_defrag +} + + + +ping_with_fix() +{ + local ret + $PING $2 $1 >/dev/null 2>/dev/null + ret=$? + # can be because of unsupported -4 option + if [ "$ret" = 2 -o "$ret" = 64 ]; then + ping $2 $1 >/dev/null + else + return $ret + fi +} + +pingtest() +{ + # $1 - ip version : 4 or 6 + # $2 - domain or ip + + # ping command can vary a lot. some implementations have -4/-6 options. others don.t + + local PING=ping ret + if [ "$1" = 6 ]; then + if exists ping6; then + PING=ping6 + else + PING="ping -6" + fi + else + if [ "$UNAME" = FreeBSD -o "$UNAME" = OpenBSD ]; then + # ping by default pings ipv4, ping6 only pings ipv6 + # in FreeBSD -4/-6 options are supported, in others not + PING=ping + else + # this can be linux or cygwin + # in linux it's not possible for sure to figure out if it supports -4/-6. only try and check for result code=2 (invalid option) + PING="ping -4" + fi + fi + case "$UNAME" in + OpenBSD) + $PING -c 1 -w 1 $2 >/dev/null + ;; + CYGWIN) + if starts_with "$(which ping)" /cygdrive; then + # cygwin does not have own ping by default. use windows PING. + $PING -n 1 -w 1000 $2 >/dev/null + else + ping_with_fix $2 '-c 1 -w 1' + fi + ;; + *) + ping_with_fix $2 '-c 1 -W 1' + ;; + esac +} +dnstest() +{ + # $1 - dns server. empty for system resolver + "$LOOKUP" iana.org $1 >/dev/null 2>/dev/null +} +find_working_public_dns() +{ + local dns + for dns in $DNSCHECK_DNS; do + pingtest 4 $dns && dnstest $dns && { + PUBDNS=$dns + return 0 + } + done + return 1 +} +lookup4() +{ + # $1 - domain + # $2 - DNS + case "$LOOKUP" in + nslookup) + if is_linked_to_busybox nslookup; then + nslookup $1 $2 2>/dev/null | sed -e '1,3d' -nre 's/^.*:[^0-9]*(([0-9]{1,3}\.){3}[0-9]{1,3}).*$/\1/p' + else + nslookup $1 $2 2>/dev/null | sed -e '1,3d' -nre 's/^[^0-9]*(([0-9]{1,3}\.){3}[0-9]{1,3}).*$/\1/p' + fi + ;; + host) + host -t A $1 $2 | grep "has address" | grep -oE '([0-9]{1,3}\.){3}[0-9]{1,3}' + ;; + esac +} +check_dns_spoof() +{ + # $1 - domain + # $2 - public DNS + + # windows version of mdig outputs 0D0A line ending. remove 0D. + echo $1 | "$MDIG" --family=4 | tr -d '\r' >"$DNSCHECK_DIG1" + lookup4 $1 $2 >"$DNSCHECK_DIG2" + # check whether system resolver returns anything other than public DNS + grep -qvFf "$DNSCHECK_DIG2" "$DNSCHECK_DIG1" +} +check_dns_cleanup() +{ + rm -f "$DNSCHECK_DIG1" "$DNSCHECK_DIG2" "$DNSCHECK_DIGS" 2>/dev/null +} +check_dns_() +{ + local C1 C2 dom + + DNS_IS_SPOOFED=0 + + [ "$SKIP_DNSCHECK" = 1 ] && return 0 + + echo \* checking DNS + + [ -f "$DNSCHECK_DIGS" ] && rm -f "$DNSCHECK_DIGS" + + dnstest || { + echo -- DNS is not working. It's either misconfigured or blocked or you don't have inet access. + return 1 + } + echo system DNS is working + + if find_working_public_dns ; then + echo comparing system resolver to public DNS : $PUBDNS + for dom in $DNSCHECK_DOM; do + if check_dns_spoof $dom $PUBDNS ; then + echo $dom : MISMATCH + echo -- system resolver : + cat "$DNSCHECK_DIG1" + echo -- $PUBDNS : + cat "$DNSCHECK_DIG2" + check_dns_cleanup + echo -- POSSIBLE DNS HIJACK DETECTED. ZAPRET WILL NOT HELP YOU IN CASE DNS IS SPOOFED !!! + echo -- DNS CHANGE OR DNSCRYPT MAY BE REQUIRED + DNS_IS_SPOOFED=1 + return 1 + else + echo $dom : OK + cat "$DNSCHECK_DIG1" >>"$DNSCHECK_DIGS" + fi + done + else + echo no working public DNS was found. looks like public DNS blocked. + for dom in $DNSCHECK_DOM; do echo $dom; done | "$MDIG" --threads=10 --family=4 >"$DNSCHECK_DIGS" + fi + + echo "checking resolved IP uniqueness for : $DNSCHECK_DOM" + echo "censor's DNS can return equal result for multiple blocked domains." + C1=$(wc -l <"$DNSCHECK_DIGS") + C2=$(sort -u "$DNSCHECK_DIGS" | wc -l) + [ "$C1" -eq 0 ] && + { + echo -- DNS is not working. It's either misconfigured or blocked or you don't have inet access. + check_dns_cleanup + return 1 + } + [ "$C1" = "$C2" ] || + { + echo system dns resolver has returned equal IPs for some domains checked above \($C1 total, $C2 unique\) + echo non-unique IPs : + sort "$DNSCHECK_DIGS" | uniq -d + echo -- POSSIBLE DNS HIJACK DETECTED. ZAPRET WILL NOT HELP YOU IN CASE DNS IS SPOOFED !!! + echo -- DNSCRYPT MAY BE REQUIRED + check_dns_cleanup + DNS_IS_SPOOFED=1 + return 1 + } + echo all resolved IPs are unique + echo -- DNS looks good + echo -- NOTE this check is Russia targeted. In your country other domains may be blocked. + check_dns_cleanup + return 0 +} + +check_dns() +{ + local r + check_dns_ + r=$? + [ "$DNS_IS_SPOOFED" = 1 ] && SECURE_DNS=${SECURE_DNS:-1} + [ "$SECURE_DNS" = 1 ] && { + doh_find_working || { + echo could not find working DoH server. exiting. + exitp 7 + } + } + return $r +} + +block_signals() +{ + # prevent signal function reenter + trap '' QUIT TERM HUP PIPE INT +} +untrap() +{ + trap - QUIT TERM HUP PIPE INT +} + +unprepare_all() +{ + # make sure we are not in a middle state that impacts connectivity + ws_kill + wait + [ -n "$IPV" ] && { + pktws_ipt_unprepare_tcp $HTTP_PORT + pktws_ipt_unprepare_tcp $HTTPS_PORT + pktws_ipt_unprepare_udp $QUIC_PORT + } + cleanup + rm -f "${HDRTEMP}"* "${PARALLEL_OUT}"* +} +sigint() +{ + block_signals + echo + echo terminating... + unprepare_all + # exitp can wait for the user input. restore default signal behavior without trap + untrap + exitp 1 +} +sigint_cleanup() +{ + block_signals + cleanup + exit 1 +} +sigsilent() +{ + block_signals + # must not write anything here to stdout + unprepare_all + exit 1 +} + +fsleep_setup +fix_sbin_path +check_system +check_already +[ "$UNAME" != CYGWIN -a "$SKIP_PKTWS" != 1 ] && require_root +check_prerequisites +trap sigint_cleanup INT +check_dns +check_virt +ask_params +trap - INT + +PID= +NREPORT= +unset WF +trap sigint INT +trap sigsilent PIPE HUP TERM QUIT +for dom in $DOMAINS; do + for IPV in $IPVS; do + configure_ip_version + [ "$ENABLE_HTTP" = 1 ] && { + [ "$SKIP_IPBLOCK" = 1 ] || check_domain_port_block $dom $HTTP_PORT + check_domain_http $dom + } + [ "$ENABLE_HTTPS_TLS12" = 1 -o "$ENABLE_HTTPS_TLS13" = 1 ] && [ "$SKIP_IPBLOCK" != 1 ] && check_domain_port_block $dom $HTTPS_PORT + [ "$ENABLE_HTTPS_TLS12" = 1 ] && check_domain_https_tls12 $dom + [ "$ENABLE_HTTPS_TLS13" = 1 ] && check_domain_https_tls13 $dom + [ "$ENABLE_HTTP3" = 1 ] && check_domain_http3 $dom + done +done +untrap + +cleanup + +echo +echo \* SUMMARY +report_print +[ "$DOMAINS_COUNT" -gt 1 ] && { + echo + echo \* COMMON + result_intersection_print + echo + [ "$SCANLEVEL" = force ] || { + echo "blockcheck optimizes test sequence. To save time some strategies can be skipped if their test is considered useless." + echo "That's why COMMON intersection can miss strategies that would work for all domains." + echo "Use \"force\" scan level to test all strategies and generate trustable intersection." + echo "Current scan level was \"$SCANLEVEL\"". + } +} +echo +echo "Please note this SUMMARY does not guarantee a magic pill for you to copy/paste and be happy." +echo "Understanding how strategies work is very desirable." +echo "This knowledge allows to understand better which strategies to prefer and which to avoid if possible, how to combine strategies." +echo "Blockcheck does it's best to prioritize good strategies but it's not bullet-proof." +echo "It was designed not as magic pill maker but as a DPI bypass test tool." + +exitp 0 diff --git a/blockcheck/zapret2/blog.sh b/blockcheck/zapret2/blog.sh new file mode 100644 index 0000000..8889358 --- /dev/null +++ b/blockcheck/zapret2/blog.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +EXEDIR="$(dirname "$0")" +EXEDIR="$(cd "$EXEDIR"; pwd)" + +"$EXEDIR/blockcheck2.sh" 2>&1 | tee "$EXEDIR/../blockcheck2.log" +# windows 7 notepad does not view unix EOL correctly +unix2dos "$EXEDIR/../blockcheck2.log" diff --git a/blockcheck/zapret2/blog_kyber.sh b/blockcheck/zapret2/blog_kyber.sh new file mode 100644 index 0000000..a7bd700 --- /dev/null +++ b/blockcheck/zapret2/blog_kyber.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +EXEDIR="$(dirname "$0")" +EXEDIR="$(cd "$EXEDIR"; pwd)" + +CURL=curl-kyber exec "$EXEDIR/blog.sh" diff --git a/blockcheck/zapret2/common/base.sh b/blockcheck/zapret2/common/base.sh new file mode 100644 index 0000000..ef2db44 --- /dev/null +++ b/blockcheck/zapret2/common/base.sh @@ -0,0 +1,466 @@ +which() +{ + # on some systems 'which' command is considered deprecated and not installed by default + # 'command -v' replacement does not work exactly the same way. it outputs shell aliases if present + # $1 - executable name + local IFS=: + [ "$1" != "${1#/}" ] && [ -x "$1" ] && { + echo "$1" + return 0 + } + for p in $PATH; do + [ -x "$p/$1" ] && { + echo "$p/$1" + return 0 + } + done + return 1 +} +exists() +{ + which "$1" >/dev/null 2>/dev/null +} +existf() +{ + type "$1" >/dev/null 2>/dev/null +} +whichq() +{ + which $1 2>/dev/null +} +exist_all() +{ + while [ -n "$1" ]; do + exists "$1" || return 1 + shift + done + return 0 +} +on_off_function() +{ + # $1 : function name on + # $2 : function name off + # $3 : 0 - off, 1 - on + local F="$1" + [ "$3" = "1" ] || F="$2" + shift + shift + shift + "$F" "$@" +} +contains() +{ + # check if substring $2 contains in $1 + [ "${1#*$2}" != "$1" ] +} +starts_with() +{ + # $1 : what + # $2 : starts with + case "$1" in + "$2"*) + return 0 + ;; + esac + return 1 +} +extract_arg() +{ + # $1 - arg number + # $2,$3,... - args + local n=$1 + while [ -n "$1" ]; do + shift + [ $n -eq 1 ] && { echo "$1"; return 0; } + n=$(($n-1)) + done + return 1 +} +find_str_in_list() +{ + # $1 - string + # $2 - space separated values + local v + [ -n "$1" ] && { + for v in $2; do + [ "$v" = "$1" ] && return 0 + done + } + return 1 +} +end_with_newline() +{ + local c="$(tail -c 1)" + [ "$c" = "" ] +} +trim() +{ + awk '{gsub(/^[ \t]+|[ \t]+$/,"")}1' +} +split_by_separator() +{ + # $1 - string + # $2 - separator + # $3 - var name to get "before" part + # $4 - var name to get "after" part + local before="${1%%$2*}" + local after="${1#*$2}" + [ "$after" = "$1" ] && after= + [ -n "$3" ] && eval $3="\$before" + [ -n "$4" ] && eval $4="\$after" +} +tolower() +{ + echo "$@" | tr 'A-Z' 'a-z' +} + +dir_is_not_empty() +{ + # $1 - directory + local n + [ -d "$1" ] || return 1 + n=$(ls -A "$1" | wc -c | xargs) + [ "$n" != 0 ] +} + +append_separator_list() +{ + # $1 - var name to receive result + # $2 - separator + # $3 - quoter + # $4,$5,... - elements + local _var="$1" sep="$2" quo="$3" i + + eval i="\$$_var" + shift; shift; shift + while [ -n "$1" ]; do + if [ -n "$i" ] ; then + i="$i$sep$quo$1$quo" + else + i="$quo$1$quo" + fi + shift + done + eval $_var="\$i" +} +make_separator_list() +{ + eval $1='' + append_separator_list "$@" +} +make_comma_list() +{ + # $1 - var name to receive result + # $2,$3,... - elements + local var="$1" + shift + make_separator_list $var , '' "$@" +} +make_quoted_comma_list() +{ + # $1 - var name to receive result + # $2,$3,... - elements + local var="$1" + shift + make_separator_list $var , '"' "$@" +} +unique() +{ + local i + for i in "$@"; do echo $i; done | sort -u | xargs +} + +is_linked_to_busybox() +{ + local IFS F P BB + + BB="$(which busybox)" + + IFS=: + for path in $PATH; do + F="$path/$1" + if [ -L "$F" ]; then + P="$(readlink $F)" + if [ -z "$P" ] && [ -x $F ] && [ ! -L $F ]; then return 1; fi + [ "${P%busybox*}" != "$P" ] && return + elif [ -f "$F" -a -n "$BB" ]; then + # possible hardlink + [ $(get_dir_inode "$F") = $(get_dir_inode "$BB") ] && return + fi + done + return 1 +} +get_dir_inode() +{ + local dir="$1" + [ -L "$dir" ] && dir=$(readlink "$dir") + ls -id "$dir" | awk '{print $1}' +} + +linux_min_version() +{ + # $1 - major ver + # $2 - minor ver + local V1=$(sed -nre 's/^Linux version ([0-9]+)\.[0-9]+.*$/\1/p' /proc/version) + local V2=$(sed -nre 's/^Linux version [0-9]+\.([0-9]+).*$/\1/p' /proc/version) + [ -n "$V1" -a -n "$V2" ] && [ "$V1" -gt "$1" -o "$V1" -eq "$1" -a "$V2" -ge "$2" ] +} +linux_get_subsys() +{ + local INIT="$(sed 's/\x0/\n/g' /proc/1/cmdline | head -n 1)" + + [ -L "$INIT" ] && INIT=$(readlink "$INIT") + INIT="$(basename "$INIT")" + if [ -f "/etc/openwrt_release" ] && [ "$INIT" = "procd" ] ; then + SUBSYS=openwrt + elif [ -x "/bin/ndm" ] ; then + SUBSYS=keenetic + else + # generic linux + SUBSYS= + fi +} +openwrt_fw3() +{ + [ ! -x /sbin/fw4 -a -x /sbin/fw3 ] +} +openwrt_fw4() +{ + [ -x /sbin/fw4 ] +} +openwrt_fw3_integration() +{ + [ "$FWTYPE" = iptables ] && openwrt_fw3 +} + +create_dev_stdin() +{ + [ -e /dev/stdin ] || ln -s /proc/self/fd/0 /dev/stdin +} + +call_for_multiple_items() +{ + # $1 - function to get an item + # $2 - variable name to put result into + # $3 - space separated parameters to function $1 + + local i item items + for i in $3; do + $1 item $i + [ -n "$item" ] && { + if [ -n "$items" ]; then + items="$items $item" + else + items="$item" + fi + } + done + eval $2=\"$items\" +} + +fix_sbin_path() +{ + local IFS=':' + printf "%s\n" $PATH | grep -Fxq '/usr/sbin' || PATH="/usr/sbin:$PATH" + printf "%s\n" $PATH | grep -Fxq '/sbin' || PATH="/sbin:$PATH" + export PATH +} + +# it can calculate floating point expr +calc() +{ + LC_ALL=C awk "BEGIN { print $*}"; +} + +fsleep_setup() +{ + [ -n "$FSLEEP" ] || { + if sleep 0.001 2>/dev/null; then + FSLEEP=1 + elif busybox usleep 1 2>/dev/null; then + FSLEEP=2 + else + local errtext="$(read -t 0.001 2>&1)" + if [ -z "$errtext" ]; then + FSLEEP=3 + # newer openwrt has ucode with system function that supports timeout in ms + elif ucode -e "system(['sleep','1'], 1)" 2>/dev/null; then + FSLEEP=4 + # older openwrt may have lua and nixio lua module + elif lua -e 'require "nixio".nanosleep(0,1)' 2>/dev/null ; then + FSLEEP=5 + else + FSLEEP=0 + fi + fi + } +} +msleep() +{ + # $1 - milliseconds + case "$FSLEEP" in + 1) + sleep $(calc $1/1000) + ;; + 2) + busybox usleep $(calc $1*1000) + ;; + 3) + read -t $(calc $1/1000) + ;; + 4) + ucode -e "system(['sleep','2147483647'], $1)" + ;; + 5) + lua -e "require 'nixio'.nanosleep($(($1/1000)),$(calc $1%1000*1000000))" + ;; + *) + sleep $((($1+999)/1000)) + esac +} +minsleep() +{ + msleep 100 +} + +replace_char() +{ + local a="$1" + local b="$2" + shift; shift + echo "$@" | tr "$a" "$b" +} + +replace_str() +{ + local a=$(echo "$1" | sed 's/\//\\\//g') + local b=$(echo "$2" | sed 's/\//\\\//g') + shift; shift + echo "$@" | sed "s/$a/$b/g" +} + +setup_md5() +{ + [ -n "$MD5" ] && return + MD5=md5sum + exists $MD5 || MD5="md5 -q" +} + +md5f() +{ + setup_md5 + $MD5 | cut -d ' ' -f1 +} + +setup_random() +{ + [ -n "$RCUT" ] && return + RCUT="cut -c 1-17" + # some shells can operate with 32 bit signed int + [ $((0x100000000)) = 0 ] && RCUT="cut -c 1-9" +} + +random() +{ + # $1 - min, $2 - max + local r rs + setup_random + if [ -c /dev/urandom ]; then + rs=$(dd if=/dev/urandom count=1 bs=16 2>/dev/null | hexdump -e '1 "%02x"') + else + rs="$RANDOM$RANDOM$(date)" + fi + # shells use signed int64 + r=1$(echo $rs | md5f | sed 's/[^0-9]//g' | $RCUT) + echo $(( ($r % ($2-$1+1)) + $1 )) +} + +shell_name() +{ + [ -n "$SHELL_NAME" ] || { + [ -n "$UNAME" ] || UNAME="$(uname)" + + if [ "$UNAME" = "Linux" ]; then + SHELL_NAME="$(readlink /proc/$$/exe)" + SHELL_NAME="$(basename "$SHELL_NAME")" + else + SHELL_NAME=$(ps -p $$ -o comm=) + fi + + [ -n "$SHELL_NAME" ] || SHELL_NAME="$(basename "$SHELL")" + } +} + +process_exists() +{ + if exists pgrep; then + pgrep "^$1$" >/dev/null + elif exists pidof; then + pidof "$1" >/dev/null + else + return 1 + fi +} + +win_process_exists() +{ + tasklist /NH /FI "IMAGENAME eq ${1}.exe" | grep -q "^${1}.exe" +} + +alloc_num() +{ + # $1 - source var name + # $2 - target var name + # $3 - min + # $4 - max + + local v + eval v="\$$2" + # do not replace existing value + [ -n "$v" ] && return + eval v="\$$1" + [ -n "$v" ] || v=$3 + eval $2="$v" + v=$((v + 1)) + [ $v -gt $4 ] && v=$3 + eval $1="$v" +} + +has_bad_ws_options() +{ + # $1 - nfqws2 opts + + contains "$1" "--ipset" && { + echo + echo "WARNING !!! --ipset parameter is present" + echo "It's OK if you only specialize already redirected traffic and also process the rest." + echo "If you redirect port X to process several IPs from the list and do nothing with the rest - IT'S VERY INEFFECTIVE !" + echo "Kernel ipsets should be used instead. Write custom scripts and filter IPs in kernel." + echo + } + contains "$1" "--ipset=$ZAPRET_BASE" || contains "$1" "--ipset-exclude=$ZAPRET_BASE" || + contains "$1" "--hostlist=$ZAPRET_BASE" || contains "$1" "--hostlist-exclude=$ZAPRET_BASE" && { + echo + echo "WARNING !!! you store ipset or hostlist files inside '$ZAPRET_BASE'" + echo "It's not recommended. install_easy.sh will delete them during update." + echo + } + + return 1 +} +check_bad_ws_options() +{ + # $1 - 0 = stop, 1 = start + # $2 - nfqws options + if [ "$1" = 1 ] && has_bad_ws_options "$2"; then + echo "!!! REFUSING TO USE BAD OPTIONS : $2" + help_bad_ws_options + return 1 + else + return 0 + fi +} +help_bad_ws_options() +{ + echo "WARNING ! BAD options detected" +} diff --git a/blockcheck/zapret2/common/dialog.sh b/blockcheck/zapret2/common/dialog.sh new file mode 100644 index 0000000..ec1c9aa --- /dev/null +++ b/blockcheck/zapret2/common/dialog.sh @@ -0,0 +1,57 @@ +read_yes_no() +{ + # $1 - default (Y/N) + local A + read A + [ -z "$A" ] || ([ "$A" != "Y" ] && [ "$A" != "y" ] && [ "$A" != "N" ] && [ "$A" != "n" ]) && A=$1 + [ "$A" = "Y" ] || [ "$A" = "y" ] || [ "$A" = "1" ] +} +ask_yes_no() +{ + # $1 - default (Y/N or 0/1) + # $2 - text + local DEFAULT=$1 + [ "$1" = "1" ] && DEFAULT=Y + [ "$1" = "0" ] && DEFAULT=N + [ -z "$DEFAULT" ] && DEFAULT=N + printf "$2 (default : $DEFAULT) (Y/N) ? " + read_yes_no $DEFAULT +} +ask_yes_no_var() +{ + # $1 - variable name for answer : 0/1 + # $2 - text + local DEFAULT + eval DEFAULT="\$$1" + if ask_yes_no "$DEFAULT" "$2"; then + eval $1=1 + else + eval $1=0 + fi +} +ask_list() +{ + # $1 - mode var + # $2 - space separated value list + # $3 - (optional) default value + local M_DEFAULT + eval M_DEFAULT="\$$1" + local M_DEFAULT_VAR="$M_DEFAULT" + local M="" m + + [ -n "$3" ] && { find_str_in_list "$M_DEFAULT" "$2" || M_DEFAULT="$3" ;} + + n=1 + for m in $2; do + echo $n : $m + n=$(($n+1)) + done + printf "your choice (default : $M_DEFAULT) : " + read m + [ -n "$m" ] && M=$(echo $2 | cut -d ' ' -f$m 2>/dev/null) + [ -z "$M" ] && M="$M_DEFAULT" + echo selected : $M + eval $1="\"$M\"" + + [ "$M" != "$M_DEFAULT_VAR" ] +} diff --git a/blockcheck/zapret2/common/elevate.sh b/blockcheck/zapret2/common/elevate.sh new file mode 100644 index 0000000..bc86a96 --- /dev/null +++ b/blockcheck/zapret2/common/elevate.sh @@ -0,0 +1,28 @@ +require_root() +{ + local exe preserve_env + echo \* checking privileges + [ $(id -u) -ne "0" ] && { + echo root is required + exe="$EXEDIR/$(basename "$0")" + exists sudo && { + echo elevating with sudo + exec sudo -E sh "$exe" + } + exists su && { + echo elevating with su + case "$UNAME" in + Linux) + preserve_env="--preserve-environment" + ;; + FreeBSD|OpenBSD|Darwin) + preserve_env="-m" + ;; + esac + exec su $preserve_env root -c "sh \"$exe\"" + } + echo su or sudo not found + exitp 2 + } + HAVE_ROOT=1 +} diff --git a/blockcheck/zapret2/common/fwtype.sh b/blockcheck/zapret2/common/fwtype.sh new file mode 100644 index 0000000..61390bb --- /dev/null +++ b/blockcheck/zapret2/common/fwtype.sh @@ -0,0 +1,64 @@ +linux_ipt_avail() +{ + exists iptables && exists ip6tables +} +linux_maybe_iptables_fwtype() +{ + linux_ipt_avail && FWTYPE=iptables +} +linux_nft_avail() +{ + exists nft +} +linux_fwtype() +{ + [ -n "$FWTYPE" ] && return + + FWTYPE=unsupported + + linux_get_subsys + if [ "$SUBSYS" = openwrt ] ; then + # linux kernel is new enough if fw4 is there + if [ -x /sbin/fw4 ] && linux_nft_avail ; then + FWTYPE=nftables + else + linux_maybe_iptables_fwtype + fi + else + SUBSYS= + # generic linux + # flowtable is implemented since kernel 4.16 + if linux_nft_avail && linux_min_version 4 16; then + FWTYPE=nftables + else + linux_maybe_iptables_fwtype + fi + fi + + export FWTYPE +} + +get_fwtype() +{ + [ -n "$FWTYPE" ] && return + + local UNAME="$(uname)" + + case "$UNAME" in + Linux) + linux_fwtype + ;; + FreeBSD) + if exists ipfw ; then + FWTYPE=ipfw + else + FWTYPE=unsupported + fi + ;; + *) + FWTYPE=unsupported + ;; + esac + + export FWTYPE +} diff --git a/blockcheck/zapret2/common/virt.sh b/blockcheck/zapret2/common/virt.sh new file mode 100644 index 0000000..6e566d6 --- /dev/null +++ b/blockcheck/zapret2/common/virt.sh @@ -0,0 +1,39 @@ +get_virt() +{ + local vm s v UNAME + UNAME=$(uname) + case "$UNAME" in + Linux) + if exists systemd-detect-virt; then + vm=$(systemd-detect-virt --vm) + elif [ -f /sys/class/dmi/id/product_name ]; then + read s NTXGqalwVC`SOKYqMk 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 VVDxf#*X8o%xyu-A=eXw{_!ecs5SIV| literal 0 HcmV?d00001 diff --git a/blockcheck/zapret2/lua/zapret-antidpi.lua b/blockcheck/zapret2/lua/zapret-antidpi.lua new file mode 100644 index 0000000..78dacc4 --- /dev/null +++ b/blockcheck/zapret2/lua/zapret-antidpi.lua @@ -0,0 +1,1250 @@ +--[[ + +NFQWS2 ANTIDPI LIBRARY + +--lua-init=@zapret-lib.lua --lua-init=@zapret-antidpi.lua +--lua-desync=func1:arg1[=val1]:arg2[=val2] --lua-desync=func2:arg1[=val1]:arg2[=val2] .... --lua-desync=funcN:arg1[=val1]:arg2[=val2] + +BLOBS + +blobs can be 0xHEX, field name in desync or global var +standard way to bring binary data to lua code is using the "--blob" parameter of nfqws2 +dynamic blobs can be inside desync table. one function can prepare data for next functions. + +STANDARD FUNCTION ARGS + +standard direction : + +* dir = in|out|any + +standard fooling : + +* ip_ttl=N - set ipv.ip_ttl to N +* ip6_ttl=N - set ip6.ip6_hlim to N +* ip_autottl=delta,min-max - set ip.ip_ttl to auto discovered ttl +* ip6_autottl=delta,min-max - set ip.ip_ttl to auto discovered ttl + +* ip6_hopbyhop[=hex] - add hopbyhop ipv6 header with optional data. data size must be 6+N*8. all zero by default. +* ip6_hopbyhop2[=hex] - add second hopbyhop ipv6 header with optional data. data size must be 6+N*8. all zero by default. +* ip6_destopt[=hex] - add destopt ipv6 header with optional data. data size must be 6+N*8. all zero by default. +* ip6_destopt2[=hex] - add second destopt ipv6 header with optional data. data size must be 6+N*8. all zero by default. +* ip6_routing[=hex] - add routing ipv6 header with optional data. data size must be 6+N*8. all zero by default. +* ip6_ah[=hex] - add authentication ipv6 header with optional data. data size must be 6+N*4. 0000 + 4 random bytes by default. + +* tcp_seq=N - add N to tcp.th_seq +* tcp_ack=N - add N to tcp.th_ack +* tcp_ts=N - add N to timestamp value +* tcp_md5[=hex] - add MD5 header with optional 16-byte data. all zero by default. +* tcp_flags_set= - set tcp flags in comma separated list +* tcp_flags_unset= - unset tcp flags in comma separated list +* tcp_ts_up - move timestamp tcp option to the top if present (workaround for badack without badseq fooling) +* tcp_nop_del - delete NOP tcp options to free space in tcp header + +* fool=fool_function - custom fooling function : fool_func(dis, fooling_options) + +standard reconstruct : + +* badsum - make L4 checksum invalid + +standard rawsend : + +* repeats - how many time send the packet +* ifout - override outbound interface (if --bind_fix4, --bind-fix6 enabled) +* fwmark - override fwmark. desync mark bit(s) will be set unconditionally + +standard payload : + +* payload - comma separated list of allowed payload types. if not present - allow non-empty known payloads. + +standard ip_id : + +* ip_id - seq|rnd|zero|none +* ip_id_conn - in 'seq' mode save current ip_id in track.lua_state to use it between packets + +standard ipfrag : + +* ipfrag[=frag_function] - ipfrag function name. "ipfrag2" by default if empty +* ipfrag_disorder - send fragments from last to first +* ipfrag2 : ipfrag_pos_tcp - tcp frag position. ipv4 : starting from L4 header. ipv6: starting from fragmentable part. must be multiple of 8. default 32 +* ipfrag2 : ipfrag_pos_udp - udp frag position. ipv4 : starting from L4 header. ipv6: starting from fragmentable part. must be multiple of 8. default 8 +* ipfrag2 : ipfrag_pos_icmp - icmp frag position. ipv4 : starting from L4 header. ipv6: starting from fragmentable part. must be multiple of 8. default 8 +* ipfrag2 : ipfrag_pos - frag position for other L4. ipv4 : starting from L4 header. ipv6: starting from fragmentable part. must be multiple of 8. default 32 +* ipfrag2 : ipfrag_next - next protocol field in ipv6 fragment extenstion header of the second fragment. same as first by default. + +]] + + +-- drop packet +-- standard args : direction, payload +function drop(ctx, desync) + direction_cutoff_opposite(ctx, desync, "any") + if direction_check(desync, "any") and payload_check(desync,"all") then + DLOG("drop") + return VERDICT_DROP + end +end + +-- nfqws1 : "--dup" +-- standard args : direction, fooling, ip_id, ipfrag, rawsend, reconstruct +-- arg : delay= - drop and send delayed +function send(ctx, desync) + direction_cutoff_opposite(ctx, desync, "any") + if direction_check(desync, "any") then + DLOG("send") + local dis = deepcopy(desync.dis) + apply_fooling(desync, dis) + apply_ip_id(desync, dis, nil, "none") + if desync.arg.delay then + local tname = "send_"..desync_timer_name(desync) + timer_set(tname, "send_timer_delayed", tonumber(desync.arg.delay), true, {dis = dis, opts = desync_opts(desync)}) + else + -- it uses rawsend, reconstruct and ipfrag options + rawsend_dissect_ipfrag(dis, desync_opts(desync)) + end + end +end +function send_timer_delayed(name, data) + -- oneshot timer, auto deletes + rawsend_dissect_ipfrag(data.dis, data.opts) +end + +-- nfqws1 : "--orig" +-- apply modification to current packet +-- standard args : direction, fooling, ip_id +function pktmod(ctx, desync) + direction_cutoff_opposite(ctx, desync, "any") + if direction_check(desync, "any") then + -- apply to current packet + apply_fooling(desync) + apply_ip_id(desync, nil, nil, "none") + DLOG("pktmod: applied") + return VERDICT_MODIFY + end +end + +-- nfqws1 : "--domcase" +-- standard args : direction +function http_domcase(ctx, desync) + if not desync.dis.tcp then + -- do not cutoff on related icmp + if not desync.dis.icmp then instance_cutoff_shim(ctx, desync) end + return + end + direction_cutoff_opposite(ctx, desync) + if desync.l7payload=="http_req" and direction_check(desync) then + local host_range = resolve_multi_pos(desync.dis.payload,desync.l7payload,"host,endhost") + if #host_range == 2 then + local host = string.sub(desync.dis.payload,host_range[1],host_range[2]-1) + local newhost="" + for i = 1, #host do + newhost=newhost..((i%2)==0 and string.lower(string.sub(host,i,i)) or string.upper(string.sub(host,i,i))) + end + DLOG("http_domcase: "..host.." => "..newhost) + desync.dis.payload = string.sub(desync.dis.payload, 1, host_range[1]-1)..newhost..string.sub(desync.dis.payload, host_range[2]) + return VERDICT_MODIFY + else + DLOG("http_domcase: cannot find host range") + end + end +end + +-- nfqws1 : "--hostcase" +-- standard args : direction +-- arg : spell= . spelling of the "Host" header. must be exactly 4 chars long +function http_hostcase(ctx, desync) + if not desync.dis.tcp then + -- do not cutoff on related icmp + if not desync.dis.icmp then instance_cutoff_shim(ctx, desync) end + return + end + direction_cutoff_opposite(ctx, desync) + if desync.l7payload=="http_req" and direction_check(desync) then + local spell = desync.arg.spell or "host" + if #spell ~= 4 then + error("http_hostcase: invalid host spelling '"..spell.."'") + else + local hdis = http_dissect_req(desync.dis.payload) + if hdis then + local idx_host = array_field_search(hdis.headers, "header_low", "host") + if idx_host then + DLOG("http_hostcase: 'Host:' => '"..spell.."'") + desync.dis.payload = string.sub(desync.dis.payload,1,hdis.headers[idx_host].pos_start-1)..spell..string.sub(desync.dis.payload,hdis.headers[idx_host].pos_header_end+1) + return VERDICT_MODIFY + else + DLOG("http_hostcase: 'Host:' header not found") + end + else + DLOG("http_hostcase: http dissect error") + end + end + end +end + +-- nfqws1 : "--methodeol" +-- standard args : direction +-- NOTE : if using with other http tampering methodeol should be the last ! +function http_methodeol(ctx, desync) + if not desync.dis.tcp then + -- do not cutoff on related icmp + if not desync.dis.icmp then instance_cutoff_shim(ctx, desync) end + return + end + direction_cutoff_opposite(ctx, desync) + if desync.l7payload=="http_req" and direction_check(desync) then + local hdis = http_dissect_req(desync.dis.payload) + if hdis then + local idx_ua = array_field_search(hdis.headers, "header_low", "user-agent") + if idx_ua then + local ua = hdis.headers[idx_ua] + if (ua.pos_end - ua.pos_value_start) < 2 then + DLOG("http_methodeol: 'User-Agent:' header is too short") + else + DLOG("http_methodeol: applied") + desync.dis.payload="\r\n"..string.sub(desync.dis.payload,1,ua.pos_end-2)..(string.sub(desync.dis.payload,ua.pos_end+1) or ""); + return VERDICT_MODIFY + end + else + DLOG("http_methodeol: 'User-Agent:' header not found") + end + else + DLOG("http_methodeol: http dissect error") + end + end +end + +-- nfqws1 : not available +-- tpws : --unixeol +-- standard args : direction +function http_unixeol(ctx, desync) + if not desync.dis.tcp then + -- do not cutoff on related icmp + if not desync.dis.icmp then instance_cutoff_shim(ctx, desync) end + return + end + direction_cutoff_opposite(ctx, desync) + if desync.l7payload=="http_req" and direction_check(desync) then + local hdis = http_dissect_req(desync.dis.payload) + if hdis then + local idx_ua = array_field_search(hdis.headers, "header_low", "user-agent") + if idx_ua then + local http = http_reconstruct_req(hdis, true) + if #http < #desync.dis.payload then + hdis.headers[idx_ua].value = hdis.headers[idx_ua].value .. string.rep(" ", #desync.dis.payload - #http) + end + http = http_reconstruct_req(hdis, true) + if #http==#desync.dis.payload then + desync.dis.payload = http + DLOG("http_unixeol: applied") + return VERDICT_MODIFY + else + DLOG("http_unixeol: reconstruct differs in size from original: "..#http.."!="..#desync.dis.payload) + end + else + DLOG("http_unixeol: 'User-Agent:' header absent") + end + else + DLOG("http_unixeol: could not dissect http") + end + end +end + +-- nfqws1 : "--synack-split" +-- standard args : rawsend, reconstruct, ipfrag +-- arg : mode=syn|synack|acksyn . "synack" by default +function synack_split(ctx, desync) + if desync.dis.tcp then + if bitand(desync.dis.tcp.th_flags, TH_SYN + TH_ACK) == (TH_SYN + TH_ACK) then + local mode = desync.arg.mode or "synack" + local options = desync_opts(desync) + if mode=="syn" then + local dis = deepcopy(desync.dis) + dis.tcp.th_flags = bitand(desync.dis.tcp.th_flags, bitnot(TH_ACK)) + DLOG("synack_split: sending SYN") + if not rawsend_dissect_ipfrag(dis, options) then return VERDICT_PASS end + return VERDICT_DROP + elseif mode=="synack" then + local dis = deepcopy(desync.dis) + dis.tcp.th_flags = bitand(desync.dis.tcp.th_flags, bitnot(TH_ACK)) + DLOG("synack_split: sending SYN") + if not rawsend_dissect_ipfrag(dis, options) then return VERDICT_PASS end + dis.tcp.th_flags = bitand(desync.dis.tcp.th_flags, bitnot(TH_SYN)) + DLOG("synack_split: sending ACK") + if not rawsend_dissect_ipfrag(dis, options) then return VERDICT_PASS end + return VERDICT_DROP + elseif mode=="acksyn" then + local dis = deepcopy(desync.dis) + dis.tcp.th_flags = bitand(desync.dis.tcp.th_flags, bitnot(TH_SYN)) + DLOG("synack_split: sending ACK") + if not rawsend_dissect_ipfrag(dis, options) then return VERDICT_PASS end + dis.tcp.th_flags = bitand(desync.dis.tcp.th_flags, bitnot(TH_ACK)) + DLOG("synack_split: sending SYN") + if not rawsend_dissect_ipfrag(dis, options) then return VERDICT_PASS end + return VERDICT_DROP + else + error("synack_split: bad mode '"..mode.."'") + end + else + instance_cutoff_shim(ctx, desync) -- mission complete + end + else + -- do not cutoff on related icmp + if not desync.dis.icmp then instance_cutoff_shim(ctx, desync) end + end +end + +-- nfqws1 : "--dpi-desync=synack" +-- standard args : rawsend, reconstruct, ipfrag +function synack(ctx, desync) + if desync.dis.tcp then + if bitand(desync.dis.tcp.th_flags, TH_SYN + TH_ACK)==TH_SYN then + local dis = deepcopy(desync.dis) + dis.tcp.th_flags = bitor(dis.tcp.th_flags, TH_ACK) + DLOG("synack: sending") + rawsend_dissect_ipfrag(dis, desync_opts(desync)) + else + instance_cutoff_shim(ctx, desync) -- mission complete + end + else + -- do not cutoff on related icmp + if not desync.dis.icmp then instance_cutoff_shim(ctx, desync) end + end +end + + +-- nfqws1 : "--wsize" +-- arg : wsize=N . tcp window size +-- arg : scale=N . tcp option scale factor +function wsize(ctx, desync) + if desync.dis.tcp then + if bitand(desync.dis.tcp.th_flags, TH_SYN + TH_ACK) == (TH_SYN + TH_ACK) then + if wsize_rewrite(desync.dis, desync.arg) then + return VERDICT_MODIFY + end + else + instance_cutoff_shim(ctx, desync) -- mission complete + end + else + -- do not cutoff on related icmp + if not desync.dis.icmp then instance_cutoff_shim(ctx, desync) end + end +end + +-- nfqws1 : "--wssize" +-- standard args : direction +-- arg : wsize=N . tcp window size +-- arg : scale=N . tcp option scale factor +-- arg : forced_cutoff= - comma separated list of payloads that trigger forced wssize cutoff. by default - any non-empty payload +function wssize(ctx, desync) + if not desync.dis.tcp then + -- do not cutoff on related icmp + if not desync.dis.icmp then instance_cutoff_shim(ctx, desync) end + return + end + local verdict = VERDICT_PASS + direction_cutoff_opposite(ctx, desync) + if direction_check(desync) then + if wsize_rewrite(desync.dis, desync.arg) then + verdict = VERDICT_MODIFY + end + if #desync.dis.payload>0 and (not desync.arg.forced_cutoff or in_list(desync.arg.forced_cutoff, desync.l7payload)) then + DLOG("wssize: forced cutoff") + instance_cutoff_shim(ctx, desync) + end + end + return verdict +end + +-- nfqws1 : not available +-- standard args : direction +-- arg: blob - blob name to store cloned tls client hello (stored in desync, not global) +-- arg: fallback - copy this blob if could not clone +-- arg: sni_snt - server name type value in existing names +-- arg: sni_snt_new - server name type value for new names +-- arg: sni_del_ext - delete sni extension +-- arg: sni_del - delete all names +-- arg: sni_first - add name to the beginning +-- arg: sni_last - add name to the end +function tls_client_hello_clone(ctx, desync) + if not desync.dis.tcp then + -- do not cutoff on related icmp + if not desync.dis.icmp then instance_cutoff_shim(ctx, desync) end + return + end + direction_cutoff_opposite(ctx, desync) + if direction_check(desync) then + if not desync.arg.blob then + error("tls_client_hello_clone: 'blob' arg required") + end + if desync.l7payload=="tls_client_hello" then + desync[desync.arg.blob] = tls_client_hello_mod(desync.reasm_data or desync.dis.payload, desync.arg) + if desync[desync.arg.blob] then + DLOG("tls_client_hello_clone: cloned to desync."..desync.arg.blob) + end + end + if not desync[desync.arg.blob] and desync.arg.fallback then + DLOG("tls_client_hello_clone: desync."..desync.arg.blob.."="..desync.arg.fallback) + desync[desync.arg.blob] = blob(desync, desync.arg.fallback) + end + end +end + +-- nfqws1 : "--dpi-desync=syndata" +-- standard args : fooling, rawsend, reconstruct, ipfrag +-- arg : blob= - fake payload. must fit to single packet. no segmentation possible. default - 16 zero bytes. +-- arg : tls_mod= - comma separated list of tls mods : rnd,rndsni,sni=. sni=%var is supported +function syndata(ctx, desync) + if desync.dis.tcp then + if bitand(desync.dis.tcp.th_flags, TH_SYN + TH_ACK)==TH_SYN then + local dis = deepcopy(desync.dis) + dis.payload = blob(desync, desync.arg.blob, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00") + apply_fooling(desync, dis) + if desync.arg.tls_mod then + local pl = tls_mod_shim(desync, dis.payload, desync.arg.tls_mod, nil) + if pl then dis.payload = pl end + end + if b_debug then DLOG("syndata: "..hexdump_dlog(dis.payload)) end + if rawsend_dissect_ipfrag(dis, desync_opts(desync)) then + return VERDICT_DROP + end + else + instance_cutoff_shim(ctx, desync) -- mission complete + end + else + -- do not cutoff on related icmp + if not desync.dis.icmp then instance_cutoff_shim(ctx, desync) end + end +end + +-- nfqws1 : "--dpi-desync=rst" +-- standard args : direction, payload, fooling, ip_id, rawsend, reconstruct, ipfrag +-- arg : rstack - send RST,ACK instead of RST +function rst(ctx, desync) + if not desync.dis.tcp then + -- do not cutoff on related icmp + if not desync.dis.icmp then instance_cutoff_shim(ctx, desync) end + return + end + direction_cutoff_opposite(ctx, desync) + if direction_check(desync, "any") and payload_check(desync) then + if replay_first(desync) then + local dis = deepcopy(desync.dis) + dis.payload = "" + dis.tcp.th_flags = TH_RST + (desync.arg.rstack and TH_ACK or 0) + apply_fooling(desync, dis) + apply_ip_id(desync, dis, nil, "none") + DLOG("rst") + -- it uses rawsend, reconstruct and ipfrag options + rawsend_dissect_ipfrag(dis, desync_opts(desync)) + else + DLOG("rst: not acting on further replay pieces") + end + end +end + +-- nfqws1 : "--dpi-desync=fake" +-- standard args : direction, payload, fooling, ip_id, rawsend, reconstruct, ipfrag +-- arg : blob= - fake payload +-- arg : optional - skip if blob is absent +-- arg : tls_mod= - comma separated list of tls mods : rnd,rndsni,sni=,dupsid,padencap . sni=%var is supported +function fake(ctx, desync) + direction_cutoff_opposite(ctx, desync) + -- by default process only outgoing known payloads. works only for tcp and udp + if (desync.dis.tcp or desync.dis.udp) and direction_check(desync) and payload_check(desync) then + if replay_first(desync) then + if not desync.arg.blob then + error("fake: 'blob' arg required") + end + if desync.arg.optional and not blob_exist(desync, desync.arg.blob) then + DLOG("fake: blob '"..desync.arg.blob.."' not found. skipped") + return + end + local fake_payload = blob(desync, desync.arg.blob) + if desync.reasm_data and desync.arg.tls_mod then + local pl = tls_mod_shim(desync, fake_payload, desync.arg.tls_mod, desync.reasm_data) + if pl then fake_payload = pl end + end + -- check debug to save CPU + if b_debug then DLOG("fake: "..hexdump_dlog(fake_payload)) end + rawsend_payload_segmented(desync,fake_payload) + else + DLOG("fake: not acting on further replay pieces") + end + end +end + +-- nfqws1 : "--dpi-desync=multisplit" +-- standard args : direction, payload, fooling, ip_id, rawsend, reconstruct, ipfrag +-- arg : pos= . position marker list. for example : "1,host,midsld+1,-10" +-- arg : seqovl=N . decrease seq number of the first segment by N and fill N bytes with pattern (default - all zero) +-- arg : seqovl_pattern= . override pattern +-- arg : blob= - use this data instead of desync.dis.payload +-- arg : optional - skip if blob is absent. use zero pattern if seqovl_pattern blob is absent +-- arg : nodrop - do not drop current dissect +function multisplit(ctx, desync) + if not desync.dis.tcp then + -- do not cutoff on related icmp + if not desync.dis.icmp then instance_cutoff_shim(ctx, desync) end + return + end + direction_cutoff_opposite(ctx, desync) + if desync.arg.optional and desync.arg.blob and not blob_exist(desync, desync.arg.blob) then + DLOG("multisplit: blob '"..desync.arg.blob.."' not found. skipped") + return + end + local data = blob_or_def(desync, desync.arg.blob) or desync.reasm_data or desync.dis.payload + if #data>0 and direction_check(desync) and payload_check(desync) then + if replay_first(desync) then + local spos = desync.arg.pos or "2" + -- check debug to save CPU + if b_debug then DLOG("multisplit: split pos: "..spos) end + local pos = resolve_multi_pos(data, desync.l7payload, spos) + if b_debug then DLOG("multisplit: resolved split pos: "..table.concat(zero_based_pos(pos)," ")) end + delete_pos_1(pos) -- cannot split at the first byte + if #pos>0 then + for i=0,#pos do + local pos_start = pos[i] or 1 + local pos_end = i<#pos and pos[i+1]-1 or #data + local part = string.sub(data,pos_start,pos_end) + local seqovl=0 + if i==0 and desync.arg.seqovl and tonumber(desync.arg.seqovl)>0 then + seqovl = tonumber(desync.arg.seqovl) + local pat="\x00" + if desync.arg.seqovl_pattern then + if desync.arg.optional and not blob_exist(desync, desync.arg.seqovl_pattern) then + DLOG("multisplit: blob '"..desync.arg.seqovl_pattern.."' not found. using zero pattern") + else + pat = blob(desync,desync.arg.seqovl_pattern) + end + end + part = pattern(pat,1,seqovl)..part + end + if b_debug then DLOG("multisplit: sending part "..(i+1).." "..(pos_start-1).."-"..(pos_end-1).." len="..#part.." seqovl="..seqovl.." : "..hexdump_dlog(part)) end + if not rawsend_payload_segmented(desync,part,pos_start-1-seqovl) then + return VERDICT_PASS + end + end + replay_drop_set(desync) + return desync.arg.nodrop and VERDICT_PASS or VERDICT_DROP + else + DLOG("multisplit: no valid split positions") + end + else + DLOG("multisplit: not acting on further replay pieces") + end + -- drop replayed packets if reasm was sent successfully in splitted form + if replay_drop(desync) then + return desync.arg.nodrop and VERDICT_PASS or VERDICT_DROP + end + end +end + + +function pos_normalize(pos, low, hi) + return (pos>=low and pos0 then + if seqovl>=pos[1] then + DLOG("multidisorder: seqovl cancelled because seqovl "..(seqovl-1).." is not less than the first split pos "..(pos[1]-1)) + else + ovl = seqovl - 1 + local pat="\x00" + if desync.arg.seqovl_pattern then + if desync.arg.optional and not blob_exist(desync, desync.arg.seqovl_pattern) then + DLOG("multidisorder: blob '"..desync.arg.seqovl_pattern.."' not found. using zero pattern") + else + pat = blob(desync,desync.arg.seqovl_pattern) + end + end + part = pattern(pat,1,ovl)..part + end + end + if b_debug then DLOG("multidisorder: sending part "..(i+1).." "..(pos_start-1).."-"..(pos_end-1).." len="..#part.." seqovl="..ovl.." : "..hexdump_dlog(part)) end + if not rawsend_payload_segmented(desync,part,pos_start-1-ovl) then + return VERDICT_PASS + end + end + return VERDICT_DROP +end + +-- nfqws1 : "--dpi-desync=multidisorder" +-- algorithm is not 100% the same as in nfqws1. multi-segment queries can produce different segment ordering. +-- standard args : direction, payload, fooling, ip_id, rawsend, reconstruct, ipfrag +-- arg : pos= . position marker list. example : "1,host,midsld+1,-10" +-- arg : seqovl=N . decrease seq number of the second segment in the original order by N and fill N bytes with pattern (default - all zero). N must be less than the first split pos. +-- arg : seqovl_pattern= . override pattern +-- arg : blob= - use this data instead of reasm_data +-- arg : optional - skip if blob is absent. use zero pattern if seqovl_pattern blob is absent +-- arg : nodrop - do not drop current dissect +function multidisorder(ctx, desync) + if not desync.dis.tcp then + -- do not cutoff on related icmp + if not desync.dis.icmp then instance_cutoff_shim(ctx, desync) end + return + end + direction_cutoff_opposite(ctx, desync) + if desync.arg.optional and desync.arg.blob and not blob_exist(desync, desync.arg.blob) then + DLOG("multidisorder: blob '"..desync.arg.blob.."' not found. skipped") + return + end + local data = blob_or_def(desync, desync.arg.blob) or desync.reasm_data or desync.dis.payload + if #data>0 and direction_check(desync) and payload_check(desync) then + if replay_first(desync) then + local spos = desync.arg.pos or "2" + -- check debug to save CPU + if b_debug then DLOG("multidisorder: split pos: "..spos) end + local pos = resolve_multi_pos(data, desync.l7payload, spos) + if b_debug then DLOG("multidisorder: resolved split pos: "..table.concat(zero_based_pos(pos)," ")) end + delete_pos_1(pos) -- cannot split at the first byte + if #pos>0 then + local seqovl + if desync.arg.seqovl then + seqovl = resolve_pos(data, desync.l7payload, desync.arg.seqovl) + if not seqovl then + DLOG("multidisorder: seqovl cancelled because could not resolve marker '"..desync.arg.seqovl.."'") + end + end + if multidisorder_send(desync, data, seqovl, pos)==VERDICT_PASS then + return VERDICT_PASS + end + replay_drop_set(desync) + return desync.arg.nodrop and VERDICT_PASS or VERDICT_DROP + else + DLOG("multidisorder: no valid split positions") + end + else + DLOG("multidisorder: not acting on further replay pieces") + end + -- drop replayed packets if reasm was sent successfully in splitted form + if replay_drop(desync) then + return desync.arg.nodrop and VERDICT_PASS or VERDICT_DROP + end + end +end + +-- nfqws1 : "--dpi-desync=multidisorder". segment ordering is the same as in nfqws1 +-- standard args : direction, payload, fooling, ip_id, rawsend, reconstruct, ipfrag +-- arg : pos= . position marker list. example : "1,host,midsld+1,-10" +-- arg : seqovl=N . decrease seq number of the second segment in the original order by N and fill N bytes with pattern (default - all zero). N must be less than the first split pos. +-- arg : seqovl_pattern= . override pattern +-- arg : optional - use zero pattern if seqovl_pattern blob is absent +function multidisorder_legacy(ctx, desync) + if not desync.dis.tcp then + -- do not cutoff on related icmp + if not desync.dis.icmp then instance_cutoff_shim(ctx, desync) end + return + end + direction_cutoff_opposite(ctx, desync) + -- by default process only outgoing known payloads + local data = desync.dis.payload + local fulldata = desync.reasm_data + if #data>0 and direction_check(desync) and payload_check(desync) then + local range_low = (desync.reasm_offset or 0) + 1 + local range_hi = range_low + #data + local spos = desync.arg.pos or "2" + -- check debug to save CPU + if b_debug then DLOG("multidisorder_legacy: split pos: "..spos) end + local pos = resolve_multi_pos(fulldata, desync.l7payload, spos) + if b_debug then DLOG("multidisorder_legacy: resolved split pos: "..table.concat(zero_based_pos(pos)," ")) end + DLOG("multidisorder_legacy: reasm piece range: "..(range_low-1).."-"..(range_hi-2)) + pos_array_normalize(pos, range_low, range_hi) + delete_pos_1(pos) -- cannot split at the first byte + if #pos>0 then + if b_debug then DLOG("multidisorder_legacy: normalized split pos: "..table.concat(zero_based_pos(pos)," ")) end + local seqovl + if desync.arg.seqovl then + seqovl = resolve_pos(fulldata, desync.l7payload, desync.arg.seqovl) + if seqovl then + DLOG("multidisorder_legacy: resolved seqovl pos: "..(seqovl-1)) + seqovl = pos_normalize(seqovl, range_low, range_hi) + if seqovl then + DLOG("multidisorder_legacy: normalized seqovl pos: "..(seqovl-1)) + else + DLOG("multidisorder_legacy: normalized seqovl pos is outside of the reasm piece range") + end + else + DLOG("multidisorder_legacy: seqovl cancelled because could not resolve marker '"..desync.arg.seqovl.."'") + end + end + return multidisorder_send(desync, data, seqovl, pos) + else + DLOG("multidisorder_legacy: no normalized split pos in this packet") + -- send as is with applied options + if rawsend_payload_segmented(desync) then + return VERDICT_DROP + end + end + end +end + +-- nfqws1 : "--dpi-desync=hostfakesplit" +-- standard args : direction, payload, fooling, ip_id, rawsend, reconstruct. FOOLING AND REPEATS APPLIED ONLY TO FAKES. +-- arg : host= - hostname template. generate hosts like "random.template". example : e8nzn.vk.com +-- arg : midhost= - additionally split segment containing host at specified posmarker. must be within host+1 .. endhost-1 or split won't happen. example : "midsld" +-- arg : nofake1, nofake2 - do not send individual fakes +-- arg : disorder_after= - send after_host part in 2 disordered segments. if posmarker is empty string use marker "-1" +-- arg : blob= - use this data instead of desync.dis.payload +-- arg : optional - skip if blob is absent +-- arg : nodrop - do not drop current dissect +function hostfakesplit(ctx, desync) + if not desync.dis.tcp then + -- do not cutoff on related icmp + if not desync.dis.icmp then instance_cutoff_shim(ctx, desync) end + return + end + direction_cutoff_opposite(ctx, desync) + if desync.arg.optional and desync.arg.blob and not blob_exist(desync, desync.arg.blob) then + DLOG("hostfakesplit: blob '"..desync.arg.blob.."' not found. skipped") + return + end + local data = blob_or_def(desync, desync.arg.blob) or desync.reasm_data or desync.dis.payload + if #data>0 and direction_check(desync) and payload_check(desync) then + if replay_first(desync) then + local pos = resolve_range(data, desync.l7payload, "host,endhost-1", true) + if pos then + if b_debug then DLOG("hostfakesplit: resolved host range: "..table.concat(zero_based_pos(pos)," ")) end + + -- do not apply fooling to original parts except tcp_ts_up but apply ip_id + local part, fakehost + local opts_orig = {rawsend = rawsend_opts_base(desync), reconstruct = {}, ipfrag = {}, ipid = desync.arg, fooling = {tcp_ts_up = desync.arg.tcp_ts_up}} + local opts_fake = {rawsend = rawsend_opts(desync), reconstruct = reconstruct_opts(desync), ipfrag = {}, ipid = desync.arg, fooling = desync.arg} + + part = string.sub(data,1,pos[1]-1) + if b_debug then DLOG("hostfakesplit: sending before_host part 0-"..(pos[1]-2).." len="..#part.." : "..hexdump_dlog(part)) end + if not rawsend_payload_segmented(desync,part,0, opts_orig) then return VERDICT_PASS end + + fakehost = genhost(pos[2]-pos[1]+1, desync.arg.host) + + if not desync.arg.nofake1 then + if b_debug then DLOG("hostfakesplit: sending fake host part (1) "..(pos[1]-1).."-"..(pos[2]-1).." len="..#fakehost.." : "..hexdump_dlog(fakehost)) end + if not rawsend_payload_segmented(desync,fakehost,pos[1]-1, opts_fake) then return VERDICT_PASS end + end + + local midhost + if desync.arg.midhost then + midhost = resolve_pos(data,desync.l7payload,desync.arg.midhost) + if midhost then + DLOG("hosfakesplit: midhost marker resolved to "..midhost) + if midhost<=pos[1] or midhost>pos[2] then + DLOG("hostfakesplit: midhost is not inside the host range") + midhost = nil + end + else + DLOG("hostfakesplit: cannot resolve midhost marker '"..desync.arg.midhost.."'") + end + end + -- if present apply ipfrag only to real host parts. fakes and parts outside of the host must be visible to DPI. + if midhost then + part = string.sub(data,pos[1],midhost-1) + if b_debug then DLOG("hostfakesplit: sending real host part 1 "..(pos[1]-1).."-"..(midhost-2).." len="..#part.." : "..hexdump_dlog(part)) end + if not rawsend_payload_segmented(desync,part,pos[1]-1, opts_orig) then return VERDICT_PASS end + + part = string.sub(data,midhost,pos[2]) + if b_debug then DLOG("hostfakesplit: sending real host part 2 "..(midhost-1).."-"..(pos[2]-1).." len="..#part.." : "..hexdump_dlog(part)) end + if not rawsend_payload_segmented(desync,part,midhost-1, opts_orig) then return VERDICT_PASS end + else + part = string.sub(data,pos[1],pos[2]) + if b_debug then DLOG("hostfakesplit: sending real host part "..(pos[1]-1).."-"..(pos[2]-1).." len="..#part.." : "..hexdump_dlog(part)) end + if not rawsend_payload_segmented(desync,part,pos[1]-1, opts_orig) then return VERDICT_PASS end + end + + if not desync.arg.nofake2 then + if b_debug then DLOG("hostfakesplit: sending fake host part (2) "..(pos[1]-1).."-"..(pos[2]-1).." len="..#fakehost.." : "..hexdump_dlog(fakehost)) end + if not rawsend_payload_segmented(desync,fakehost,pos[1]-1, opts_fake) then return VERDICT_PASS end + end + + local disorder_after_pos + if desync.arg.disorder_after then + disorder_after_pos = resolve_pos(data, desync.l7payload, desync.arg.disorder_after=="" and "-1" or desync.arg.disorder_after) + if disorder_after_pos then + -- pos[2] points to the last letter of the host starting from 1 + if disorder_after_pos<=(pos[2]+1) then + DLOG("hostfakesplit: disorder_after marker '"..(disorder_after_pos-1).."' resolved to pos not after after_host pos "..pos[2]) + disorder_after_pos = nil + end + + else + DLOG("hostfakesplit: could not resolve disorder_after marker '"..desync.arg.disorder_after.."'") + end + end + if disorder_after_pos then + part = string.sub(data,disorder_after_pos) + if b_debug then DLOG("hostfakesplit: sending after_host part (2) "..(disorder_after_pos-1).."-"..(#data-1).." len="..#part.." : "..hexdump_dlog(part)) end + if not rawsend_payload_segmented(desync,part,disorder_after_pos-1, opts_orig) then return VERDICT_PASS end + + part = string.sub(data,pos[2]+1,disorder_after_pos-1) + if b_debug then DLOG("hostfakesplit: sending after_host part (1) "..pos[2].."-"..(disorder_after_pos-2).." len="..#part.." : "..hexdump_dlog(part)) end + else + part = string.sub(data,pos[2]+1) + if b_debug then DLOG("hostfakesplit: sending after_host part "..pos[2].."-"..(#data-1).." len="..#part.." : "..hexdump_dlog(part)) end + end + if not rawsend_payload_segmented(desync,part,pos[2], opts_orig) then return VERDICT_PASS end + + replay_drop_set(desync) + return desync.arg.nodrop and VERDICT_PASS or VERDICT_DROP + else + DLOG("hostfakesplit: host range cannot be resolved") + end + else + DLOG("hostfakesplit: not acting on further replay pieces") + end + -- drop replayed packets if reasm was sent successfully in splitted form + if replay_drop(desync) then + return desync.arg.nodrop and VERDICT_PASS or VERDICT_DROP + end + end +end + +-- nfqws1 : "--dpi-desync=fakedsplit" +-- standard args : direction, payload, fooling, ip_id, rawsend, reconstruct. FOOLING AND REPEATS APPLIED ONLY TO FAKES. +-- arg : pos= - split position marker +-- arg : nofake1, nofake2, nofake3, nofake4 - do not send individual fakes +-- arg : pattern= . fill fake parts with this pattern +-- arg : seqovl=N . decrease seq number of the first segment by N and fill N bytes with pattern (default - all zero) +-- arg : seqovl_pattern= . override seqovl pattern +-- arg : blob= - use this data instead of reasm_data +-- arg : optional - skip if blob is absent. use zero pattern if seqovl_pattern blob is absent +-- arg : nodrop - do not drop current dissect +function fakedsplit(ctx, desync) + if not desync.dis.tcp then + -- do not cutoff on related icmp + if not desync.dis.icmp then instance_cutoff_shim(ctx, desync) end + return + end + direction_cutoff_opposite(ctx, desync) + if desync.arg.optional and desync.arg.blob and not blob_exist(desync, desync.arg.blob) then + DLOG("fakedsplit: blob '"..desync.arg.blob.."' not found. skipped") + return + end + local data = blob_or_def(desync, desync.arg.blob) or desync.reasm_data or desync.dis.payload + if #data>0 and direction_check(desync) and payload_check(desync) then + if replay_first(desync) then + local spos = desync.arg.pos or "2" + local pos = resolve_pos(data, desync.l7payload, spos) + if pos then + if pos == 1 then + DLOG("fakedsplit: split pos resolved to 0. cannot split.") + else + if b_debug then DLOG("fakedsplit: resolved split pos: "..tostring(pos-1)) end + + -- do not apply fooling to original parts except tcp_ts_up but apply ip_id + local fake, fakepat, part, pat + local opts_orig = {rawsend = rawsend_opts_base(desync), reconstruct = {}, ipfrag = {}, ipid = desync.arg, fooling = {tcp_ts_up = desync.arg.tcp_ts_up}} + local opts_fake = {rawsend = rawsend_opts(desync), reconstruct = reconstruct_opts(desync), ipfrag = {}, ipid = desync.arg, fooling = desync.arg} + + fakepat = desync.arg.pattern and blob(desync,desync.arg.pattern) or "\x00" + + -- first fake + fake = pattern(fakepat,1,pos-1) + + if not desync.arg.nofake1 then + if b_debug then DLOG("fakedsplit: sending fake part 1 (1) : 0-"..(pos-2).." len="..#fake.." : "..hexdump_dlog(fake)) end + if not rawsend_payload_segmented(desync,fake,0, opts_fake) then return VERDICT_PASS end + end + + -- first real + part = string.sub(data,1,pos-1) + local seqovl=0 + if desync.arg.seqovl and tonumber(desync.arg.seqovl)>0 then + seqovl = tonumber(desync.arg.seqovl) + pat="\x00" + if desync.arg.seqovl_pattern then + if desync.arg.optional and not blob_exist(desync, desync.arg.seqovl_pattern) then + DLOG("fakedsplit: blob '"..desync.arg.seqovl_pattern.."' not found. using zero pattern") + else + pat = blob(desync,desync.arg.seqovl_pattern) + end + end + part = pattern(pat,1,seqovl)..part + end + if b_debug then DLOG("fakedsplit: sending real part 1 : 0-"..(pos-2).." len="..#part.." seqovl="..seqovl.." : "..hexdump_dlog(part)) end + if not rawsend_payload_segmented(desync,part,-seqovl, opts_orig) then return VERDICT_PASS end + + -- first fake again + if not desync.arg.nofake2 then + if b_debug then DLOG("fakedsplit: sending fake part 1 (2) : 0-"..(pos-2).." len="..#fake.." : "..hexdump_dlog(fake)) end + if not rawsend_payload_segmented(desync,fake,0, opts_fake) then return VERDICT_PASS end + end + + -- second fake + fake = pattern(fakepat,pos,#data-pos+1) + if not desync.arg.nofake3 then + if b_debug then DLOG("fakedsplit: sending fake part 2 (1) : "..(pos-1).."-"..(#data-1).." len="..#fake.." : "..hexdump_dlog(fake)) end + if not rawsend_payload_segmented(desync,fake,pos-1, opts_fake) then return VERDICT_PASS end + end + + -- second real + part = string.sub(data,pos) + if b_debug then DLOG("fakedsplit: sending real part 2 : "..(pos-1).."-"..(#data-1).." len="..#part.." : "..hexdump_dlog(part)) end + if not rawsend_payload_segmented(desync,part,pos-1, opts_orig) then return VERDICT_PASS end + + -- second fake again + if not desync.arg.nofake4 then + if b_debug then DLOG("fakedsplit: sending fake part 2 (2) : "..(pos-1).."-"..(#data-1).." len="..#fake.." : "..hexdump_dlog(fake)) end + if not rawsend_payload_segmented(desync,fake,pos-1, opts_fake) then return VERDICT_PASS end + end + + replay_drop_set(desync) + return desync.arg.nodrop and VERDICT_PASS or VERDICT_DROP + end + else + DLOG("fakedsplit: cannot resolve pos '"..spos.."'") + end + else + DLOG("fakedsplit: not acting on further replay pieces") + end + -- drop replayed packets if reasm was sent successfully in splitted form + if replay_drop(desync) then + return desync.arg.nodrop and VERDICT_PASS or VERDICT_DROP + end + end +end + +-- nfqws1 : "--dpi-desync=fakeddisorder" +-- standard args : direction, payload, fooling, ip_id, rawsend, reconstruct. FOOLING AND REPEATS APPLIED ONLY TO FAKES. +-- arg : pos= - split position marker +-- arg : nofake1, nofake2, nofake3, nofake4 - do not send individual fakes +-- arg : pattern= . fill fake parts with this pattern +-- arg : seqovl=N . decrease seq number of the second segment by N and fill N bytes with pattern (default - all zero). N must be less than the split pos. +-- arg : seqovl_pattern= . override seqovl pattern +-- arg : blob= - use this data instead of desync.dis.payload +-- arg : optional - skip if blob is absent. use zero pattern if seqovl_pattern blob is absent +-- arg : nodrop - do not drop current dissect +function fakeddisorder(ctx, desync) + if not desync.dis.tcp then + -- do not cutoff on related icmp + if not desync.dis.icmp then instance_cutoff_shim(ctx, desync) end + return + end + direction_cutoff_opposite(ctx, desync) + if desync.arg.optional and desync.arg.blob and not blob_exist(desync, desync.arg.blob) then + DLOG("fakeddisorder: blob '"..desync.arg.blob.."' not found. skipped") + return + end + local data = blob_or_def(desync, desync.arg.blob) or desync.reasm_data or desync.dis.payload + if #data>0 and direction_check(desync) and payload_check(desync) then + if replay_first(desync) then + local spos = desync.arg.pos or "2" + local pos = resolve_pos(data, desync.l7payload, spos) + if pos then + if pos == 1 then + DLOG("fakeddisorder: split pos resolved to 0. cannot split.") + else + if b_debug then DLOG("fakeddisorder: resolved split pos: "..tostring(pos-1)) end + + -- do not apply fooling to original parts except tcp_ts_up but apply ip_id + local fake, part + local opts_orig = {rawsend = rawsend_opts_base(desync), reconstruct = {}, ipfrag = {}, ipid = desync.arg, fooling = {tcp_ts_up = desync.arg.tcp_ts_up}} + local opts_fake = {rawsend = rawsend_opts(desync), reconstruct = reconstruct_opts(desync), ipfrag = {}, ipid = desync.arg, fooling = desync.arg} + + local fakepat = desync.arg.pattern and blob(desync,desync.arg.pattern) or "\x00" + + -- second fake + fake = pattern(fakepat,pos,#data-pos+1) + if not desync.arg.nofake1 then + if b_debug then DLOG("fakeddisorder: sending fake part 2 (1) : "..(pos-1).."-"..(#data-1).." len="..#fake.." : "..hexdump_dlog(fake)) end + if not rawsend_payload_segmented(desync,fake,pos-1, opts_fake) then return VERDICT_PASS end + end + + -- second real + part = string.sub(data,pos) + local seqovl = 0 + if desync.arg.seqovl then + seqovl = resolve_pos(data, desync.l7payload, desync.arg.seqovl) + if seqovl then + seqovl = seqovl - 1 + if seqovl>=(pos-1) then + DLOG("fakeddisorder: seqovl cancelled because seqovl "..seqovl.." is not less than the split pos "..(pos-1)) + seqovl = 0 + else + local pat="\x00" + if desync.arg.seqovl_pattern then + if desync.arg.optional and not blob_exist(desync, desync.arg.seqovl_pattern) then + DLOG("fakeddisorder: blob '"..desync.arg.seqovl_pattern.."' not found. using zero pattern") + else + pat = blob(desync,desync.arg.seqovl_pattern) + end + end + part = pattern(pat,1,seqovl)..part + end + else + DLOG("fakeddisorder: seqovl cancelled because could not resolve marker '"..desync.arg.seqovl.."'") + seqovl = 0 + end + end + if b_debug then DLOG("fakeddisorder: sending real part 2 : "..(pos-1).."-"..(#data-1).." len="..#part.." seqovl="..seqovl.." : "..hexdump_dlog(part)) end + if not rawsend_payload_segmented(desync,part,pos-1-seqovl, opts_orig) then return VERDICT_PASS end + + -- second fake again + if not desync.arg.nofake2 then + if b_debug then DLOG("fakeddisorder: sending fake part 2 (2) : "..(pos-1).."-"..(#data-1).." len="..#fake.." : "..hexdump_dlog(fake)) end + if not rawsend_payload_segmented(desync,fake,pos-1, opts_fake) then return VERDICT_PASS end + end + + -- first fake + fake = pattern(fakepat,1,pos-1) + if not desync.arg.nofake3 then + if b_debug then DLOG("fakeddisorder: sending fake part 1 (1) : 0-"..(pos-2).." len="..#fake.." : "..hexdump_dlog(fake)) end + if not rawsend_payload_segmented(desync,fake,0, opts_fake) then return VERDICT_PASS end + end + + -- first real + part = string.sub(data,1,pos-1) + if b_debug then DLOG("fakeddisorder: sending real part 1 : 0-"..(pos-2).." len="..#part.." : "..hexdump_dlog(part)) end + if not rawsend_payload_segmented(desync,part,0, opts_orig) then return VERDICT_PASS end + + -- first fake again + if not desync.arg.nofake4 then + if b_debug then DLOG("fakeddisorder: sending fake part 1 (2) : 0-"..(pos-2).." len="..#fake.." : "..hexdump_dlog(fake)) end + if not rawsend_payload_segmented(desync,fake,0, opts_fake) then return VERDICT_PASS end + end + + replay_drop_set(desync) + return desync.arg.nodrop and VERDICT_PASS or VERDICT_DROP + end + else + DLOG("fakeddisorder: cannot resolve pos '"..spos.."'") + end + else + DLOG("fakeddisorder: not acting on further replay pieces") + end + -- drop replayed packets if reasm was sent successfully in splitted form + if replay_drop(desync) then + return desync.arg.nodrop and VERDICT_PASS or VERDICT_DROP + end + end +end + +-- nfqws1 : not available +-- standard args : direction, payload, fooling, ip_id, rawsend, reconstruct, ipfrag +-- arg : pos= . position marker list. 2 pos required, only 2 first pos used. example : "host,endhost" +-- arg : seqovl=N . decrease seq number of the first segment by N and fill N bytes with pattern (default - all zero) +-- arg : seqovl_pattern= . override pattern +-- arg : blob= - use this data instead of desync.dis.payload +-- arg : optional - skip if blob is absent. use zero pattern if seqovl_pattern blob is absent +function tcpseg(ctx, desync) + if not desync.dis.tcp then + -- do not cutoff on related icmp + if not desync.dis.icmp then instance_cutoff_shim(ctx, desync) end + return + end + direction_cutoff_opposite(ctx, desync) + if not desync.arg.pos then + error("tcpseg: no pos specified") + end + if desync.arg.optional and desync.arg.blob and not blob_exist(desync, desync.arg.blob) then + DLOG("tcpseg: blob '"..desync.arg.blob.."' not found. skipped") + return + end + local data = blob_or_def(desync, desync.arg.blob) or desync.reasm_data or desync.dis.payload + if #data>0 and direction_check(desync) and payload_check(desync) then + if replay_first(desync) then + if b_debug then DLOG("tcpseg: pos: "..desync.arg.pos) end + -- always returns 2 positions or nil or causes error + local pos = resolve_range(data, desync.l7payload, desync.arg.pos) + if pos then + -- check debug to save CPU + if b_debug then DLOG("tcpseg: resolved range: "..table.concat(zero_based_pos(pos)," ")) end + local part = string.sub(data,pos[1],pos[2]) + local seqovl=0 + if desync.arg.seqovl and tonumber(desync.arg.seqovl)>0 then + seqovl = tonumber(desync.arg.seqovl) + local pat="\x00" + if desync.arg.seqovl_pattern then + if desync.arg.optional and not blob_exist(desync, desync.arg.seqovl_pattern) then + DLOG("tcpseg: blob '"..desync.arg.seqovl_pattern.."' not found. using zero pattern") + else + pat = blob(desync,desync.arg.seqovl_pattern) + end + end + part = pattern(pat,1,seqovl)..part + end + if b_debug then DLOG("tcpseg: sending "..(pos[1]-1).."-"..(pos[2]-1).." len="..#part.." seqovl="..seqovl.." : "..hexdump_dlog(part)) end + rawsend_payload_segmented(desync,part,pos[1]-1-seqovl) + else + DLOG("tcpseg: range cannot be resolved") + end + else + DLOG("tcpseg: not acting on further replay pieces") + end + end +end + +-- nfqws1 : not available +-- tpws : close analog is "--split-pos=.. --oob" but works not the same way +-- standard args : fooling, ip_id, rawsend, reconstruct, ipfrag +-- arg : char - oob char +-- arg : byte - oob byte +-- arg : urp - urgent pointer position marker, 'b' or 'e'. default - 0 +function oob(ctx, desync) + if not desync.track then return end + if not desync.dis.tcp then + -- do not cutoff on related icmp + if not desync.dis.icmp then instance_cutoff_shim(ctx, desync) end + return + end + local key = desync.func_instance.."_syn" + if not desync.track.lua_state[key] then + if bitand(desync.dis.tcp.th_flags, TH_SYN+TH_ACK)~=TH_SYN then + DLOG("oob: must be applied since the very beginning of the tcp connection - SYN packet") + instance_cutoff_shim(ctx, desync) + return + end + desync.track.lua_state[key] = true + end + if desync.outgoing then + -- direct pos - outgoing + local pos = pos_get(desync, 's', false) + if pos<=1 then + local dseq = u32add(desync.dis.tcp.th_seq, -1) + DLOG("oob: decreasing outgoing seq : "..desync.dis.tcp.th_seq.." => "..dseq) + desync.dis.tcp.th_seq = dseq + end + if pos==0 then + return VERDICT_MODIFY + elseif pos==1 then + local data = desync.reasm_data or desync.dis.payload + if #data==0 then + -- empty ACK + return VERDICT_MODIFY + else + local oob = desync.arg.char or (desync.arg.byte and bu8(desync.arg.byte) or nil) or "\x00" + if #oob~=1 then + error("oob: OOB must be exactly one byte") + end + local dis_oob = deepcopy(desync.dis) + local urp + if not desync.arg.urp or desync.arg.urp=='b' then + urp = 1 + dis_oob.tcp.th_urp = 0 + elseif desync.arg.urp=='e' then + urp = #data+1 + dis_oob.tcp.th_urp = urp + else + urp = resolve_pos(data, desync.l7payload, desync.arg.urp) + if not urp then + DLOG("oob: cannot resolve urp marker '"..desync.arg.urp.."'") + instance_cutoff_shim(ctx, desync) + return + end + DLOG("oob: resolved urp marker to "..urp-1) + dis_oob.tcp.th_urp = urp + end + DLOG("oob: th_urp "..dis_oob.tcp.th_urp) + -- one byte OOB payload + dis_oob.payload = string.sub(data, 1, urp-1) .. oob .. string.sub(data, urp) + dis_oob.tcp.th_flags = bitor(dis_oob.tcp.th_flags, TH_URG) + DLOG("oob: sending OOB") + if not rawsend_dissect_segmented(desync, dis_oob) then + instance_cutoff_shim(ctx, desync) + return + end + if not desync.replay then + instance_cutoff_shim(ctx, desync) + end + end + return VERDICT_DROP + else + -- drop replay and cutoff + if desync.replay then + DLOG("oob: dropping replay piece") + if desync.replay_piece_last then + instance_cutoff_shim(ctx, desync) + end + return VERDICT_DROP + end + instance_cutoff_shim(ctx, desync) + end + else + -- reverse pos - outgoing + local pos = pos_get(desync, 's', true) + if pos>1 then + DLOG("oob: unexpected outgoing position "..pos) + instance_cutoff_shim(ctx, desync) + return + end + local dack = u32add(desync.dis.tcp.th_ack, 1) + DLOG("oob: increasing incoming ack : "..desync.dis.tcp.th_ack.." => "..dack) + desync.dis.tcp.th_ack = dack + return VERDICT_MODIFY + end +end + +-- nfqws1 : "--dpi-desync=udplen" +-- standard args : direction, payload +-- arg : min=N . do not act on payloads smaller than N bytes +-- arg : max=N . do not act on payloads larger than N bytes +-- arg : increment=N . 2 by default. negative increment shrinks the packet, positive grows it. +-- arg : pattern= . used to fill extra bytes when length increases +-- arg : pattern_offset=N . offset in the pattern. 0 by default +function udplen(ctx, desync) + if not desync.dis.udp then + -- do not cutoff on related icmp + if not desync.dis.icmp then instance_cutoff_shim(ctx, desync) end + return + end + direction_cutoff_opposite(ctx, desync) + if direction_check(desync) and payload_check(desync) then + local len = #desync.dis.payload + if (desync.arg.min and #desync.dis.payload < tonumber(desync.arg.min)) then + DLOG("udplen: payload size "..len.." is less than the minimum size "..desync.arg.min) + elseif (desync.arg.max and #desync.dis.payload > tonumber(desync.arg.max)) then + DLOG("udplen: payload size "..len.." is more than the maximum size "..desync.arg.max) + else + local inc = desync.arg.increment and tonumber(desync.arg.increment) or 2 + if inc>0 then + local pat = desync.arg.pattern and blob(desync,desync.arg.pattern) or "\x00" + local pat_offset = desync.arg.pattern_offset and (tonumber(desync.arg.pattern_offset)+1) or 1 + desync.dis.payload = desync.dis.payload .. pattern(pat, pat_offset, inc) + DLOG("udplen: "..len.." => "..#desync.dis.payload) + return VERDICT_MODIFY + elseif inc<0 then + if (len+inc)<1 then + DLOG("udplen: will not shrink to zero length") + else + desync.dis.payload = string.sub(desync.dis.payload,1,len+inc) + DLOG("udplen: "..len.." => "..#desync.dis.payload) + return VERDICT_MODIFY + end + end + end + end +end + +-- nfqws1 : "--dpi-desync=tamper" for dht proto +-- standard args : direction +-- arg : dn=N - message starts from "dN". 3 by default +function dht_dn(ctx, desync) + if not desync.dis.udp then + -- do not cutoff on related icmp + if not desync.dis.icmp then instance_cutoff_shim(ctx, desync) end + return + end + direction_cutoff_opposite(ctx, desync) + if desync.l7payload=="dht" and direction_check(desync) then + local N = tonumber(desync.arg.dn) or 3 + -- remove "d1" from the start not breaking bencode + local prefix = "d"..tostring(N)..":"..string.rep("0",N).."1:x" + desync.dis.payload = prefix..string.sub(desync.dis.payload,2) + DLOG("dht_dn: tampered dht to start with '"..prefix.."' instead of 'd1:'") + return VERDICT_MODIFY + end +end diff --git a/blockcheck/zapret2/lua/zapret-auto.lua b/blockcheck/zapret2/lua/zapret-auto.lua new file mode 100644 index 0000000..2714771 --- /dev/null +++ b/blockcheck/zapret2/lua/zapret-auto.lua @@ -0,0 +1,577 @@ +-- standard automation/orchestration code +-- this is related to making dynamic strategy decisions without rewriting or altering strategy function code +-- orchestrators can decide which instances to call or not to call or pass them dynamic arguments +-- failure and success detectors test potential block conditions for orchestrators + +-- standard host key generator for per-host storage +-- arg: reqhost - require hostname, do not work with ip +-- arg: nld=N - cut hostname to N level domain. NLD=2 static.intranet.microsoft.com => microsoft.com +function standard_hostkey(desync) + local hostkey = desync.track and desync.track.hostname + if hostkey then + if desync.arg.nld and tonumber(desync.arg.nld)>0 and not (desync.track and desync.track.hostname_is_ip) then + -- dissect_nld returns nil if domain is invalid or does not have this NLD + -- fall back to original hostkey if it fails + local hktemp = dissect_nld(hostkey, tonumber(desync.arg.nld)) + if hktemp then + hostkey = hktemp + end + end + elseif not desync.arg.reqhost then + hostkey = host_ip(desync) + end + return hostkey +end + +-- per-host storage +-- arg: key - a string - table name inside autostate table. to allow multiple orchestrator instances to use single host storage +-- arg: hostkey - hostkey generator function name +function automate_host_record(desync) + local hostkey, hkf, askey + + if desync.arg.hostkey then + if type(_G[desync.arg.hostkey])~="function" then + error("automate: invalid hostkey function '"..desync.arg.hostkey.."'") + end + hkf = _G[desync.arg.hostkey] + else + hkf = standard_hostkey + end + hostkey = hkf(desync) + if not hostkey then + DLOG("automate: host record key unavailable") + return nil + end + + askey = (desync.arg.key and #desync.arg.key>0) and desync.arg.key or desync.func_instance + DLOG("automate: host record key 'autostate."..askey.."."..hostkey.."'") + if not autostate then + autostate = {} + end + if not autostate[askey] then + autostate[askey] = {} + end + if not autostate[askey][hostkey] then + autostate[askey][hostkey] = {} + end + return autostate[askey][hostkey] +end +-- per-connection storage +function automate_conn_record(desync) + if not desync.track then return nil end + if not desync.track.lua_state.automate then + desync.track.lua_state.automate = {} + end + return desync.track.lua_state.automate +end + +-- counts failure, optionally (if crec is given) prevents dup failure counts in a single connection +-- if 'maxtime' between failures is exceeded then failure count is reset +-- return true if threshold ('fails') is reached +-- hres is host record. host or ip bound table +-- cres is connection record. connection bound table +function automate_failure_counter(hrec, crec, fails, maxtime) + if crec and crec.failure then + DLOG("automate: duplicate failure in the same connection. not counted") + else + if crec then crec.failure = true end + local tnow=os.time() + if not hrec.failure_time_last then + hrec.failure_time_last = tnow + end + if not hrec.failure_counter then + hrec.failure_counter = 0 + elseif tnow>(hrec.failure_time_last + maxtime) then + DLOG("automate: failure counter reset because last failure was "..(tnow - hrec.failure_time_last).." seconds ago") + hrec.failure_counter = 0 + end + hrec.failure_counter = hrec.failure_counter + 1 + hrec.failure_time_last = tnow + if b_debug then DLOG("automate: failure counter "..hrec.failure_counter..(fails and ('/'..fails) or '')) end + if fails and hrec.failure_counter>=fails then + hrec.failure_counter = nil -- reset counter + return true + end + end + return false +end +-- resets failure counter if it has started counting +function automate_failure_counter_reset(hrec) + if hrec.failure_counter then + DLOG("automate: failure counter reset") + hrec.failure_counter = nil + end +end + +-- location is url compatible with Location: header +-- hostname is original hostname +function is_dpi_redirect(hostname, location) + local ds = dissect_url(location) + if ds and ds.domain then + local sld1 = dissect_nld(hostname,2) + local sld2 = dissect_nld(ds.domain,2) + return sld2 and sld1~=sld2 and true or false + end + return false +end + +function standard_detector_defaults(arg) + return { + inseq = tonumber(arg.inseq) or 4096, + retrans = tonumber(arg.retrans) or 3, + maxseq = tonumber(arg.maxseq) or 32768, + udp_in = tonumber(arg.udp_in) or 1, + udp_out = tonumber(arg.udp_out) or 4, + no_http_redirect = arg.no_http_redirect, + no_rst = arg.no_rst, + reset = arg.reset + } +end + +-- standard failure detector +-- works with tcp and udp +-- detected failures: +-- incoming RST +-- incoming http redirection +-- outgoing retransmissions +-- udp too much out with too few in +-- arg: maxseq= - tcp: test retransmissions only within this relative sequence. default is 32K +-- arg: retrans=N - tcp: retrans count threshold. default is 3 +-- arg: reset - send RST to retransmitter to break long wait +-- arg: inseq= - tcp: maximum relative sequence number to treat incoming RST as DPI reset. default is 4K +-- arg: no_http_redirect - tcp: disable http_reply dpi redirect trigger +-- arg: no_rst - tcp: disable incoming RST trigger +-- arg: udp_out - udp: >= outgoing udp packets. default is 4 +-- arg: udp_in - udp: with <= incoming udp packets. default is 1 +function standard_failure_detector(desync, crec) + local arg = standard_detector_defaults(desync.arg) + local trigger = false + if desync.dis.tcp then + local seq = pos_get(desync,'s') + if desync.outgoing then + if #desync.dis.payload>0 and arg.retrans and arg.maxseq>0 and seq<=arg.maxseq and (crec.retrans or 0)=arg.retrans + if trigger and arg.reset then + local dis = deepcopy(desync.dis) + dis.payload = nil + dis_reverse(dis) + dis.tcp.th_flags = TH_RST + dis.tcp.th_win = desync.track and desync.track.pos.reverse.tcp.winsize or 64 + dis.tcp.options = nil + if dis.ip6 then + dis.ip6.ip6_flow = (desync.track and desync.track.pos.reverse.ip6_flow) and desync.track.pos.reverse.ip6_flow or 0x60000000; + end + DLOG("standard_failure_detector: sending RST to retransmitter") + rawsend_dissect(dis, {ifout = desync.ifin}) + end + end + end + else + if not arg.no_rst and arg.inseq>0 and bitand(desync.dis.tcp.th_flags, TH_RST)~=0 and seq>=1 then + trigger = seq<=arg.inseq + if b_debug then + if trigger then + DLOG("standard_failure_detector: incoming RST s"..seq.." in range s"..arg.inseq) + else + DLOG("standard_failure_detector: not counting incoming RST s"..seq.." beyond s"..arg.inseq) + end + end + elseif not arg.no_http_redirect and desync.l7payload=="http_reply" and desync.track.hostname then + local hdis = http_dissect_reply(desync.dis.payload) + if hdis and (hdis.code==302 or hdis.code==307) then + local idx_loc = array_field_search(hdis.headers, "header_low", "location") + if idx_loc then + trigger = is_dpi_redirect(desync.track.hostname, hdis.headers[idx_loc].value) + if b_debug then + if trigger then + DLOG("standard_failure_detector: http redirect "..hdis.code.." to '"..hdis.headers[idx_loc].value.."'. looks like DPI redirect.") + else + DLOG("standard_failure_detector: http redirect "..hdis.code.." to '"..hdis.headers[idx_loc].value.."'. NOT a DPI redirect.") + end + end + end + end + end + end + elseif desync.dis.udp then + if desync.outgoing then + if arg.udp_out>0 then + local pos_out = pos_get(desync,'n',false) + local pos_in = pos_get(desync,'n',true) + trigger = pos_out>=arg.udp_out and pos_in<=arg.udp_in + if trigger then + if b_debug then + DLOG("standard_failure_detector: arg.udp_out "..pos_out..">="..arg.udp_out.." arg.udp_in "..pos_in.."<="..arg.udp_in) + end + end + end + end + end + return trigger +end + +-- standard success detector +-- success means previous failures were temporary and counter should be reset +-- detected successes: +-- tcp: outgoing seq is beyond 'maxseq' and maxseq>0 +-- tcp: incoming seq is beyond 'inseq' and inseq>0 +-- udp: incoming packets count > `udp_in` and `udp_out`>0 +-- arg: maxseq= - tcp: success if outgoing relative sequence is beyond this value. default is 32K +-- arg: inseq= - tcp: success if incoming relative sequence is beyond this value. default is 4K +-- arg: udp_out - udp : must be nil or >0 to test udp_in +-- arg: udp_in - udp: if number if incoming packets > udp_in it means success +function standard_success_detector(desync, crec) + local arg = standard_detector_defaults(desync.arg) + if desync.dis.tcp then + local seq = pos_get(desync,'s') + if desync.outgoing then + if arg.maxseq>0 and seq>arg.maxseq then + DLOG("standard_success_detector: outgoing s"..seq.." is beyond s"..arg.maxseq..". treating connection as successful") + return true + end + else + if arg.inseq>0 and seq>arg.inseq then + DLOG("standard_success_detector: incoming s"..seq.." is beyond s"..arg.inseq..". treating connection as successful") + return true + end + end + elseif desync.dis.udp then + if not desync.outgoing then + local pos = pos_get(desync,'n') + if arg.udp_out>0 and pos>arg.udp_in then + if b_debug then + DLOG("standard_success_detector: arg.udp_in "..pos..">"..arg.udp_in) + end + return true + end + end + end + + return false +end + +-- calls success and failure detectors +-- resets counter if success is detected +-- increases counter if failure is detected +-- returns true if failure counter exceeds threshold +function automate_failure_check(desync, hrec, crec) + if crec.nocheck then return false end + + local failure_detector, success_detector + if desync.arg.failure_detector then + if type(_G[desync.arg.failure_detector])~="function" then + error("automate: invalid failure detector function '"..desync.arg.failure_detector.."'") + end + failure_detector = _G[desync.arg.failure_detector] + else + failure_detector = standard_failure_detector + end + if desync.arg.success_detector then + if type(_G[desync.arg.success_detector])~="function" then + error("automate: invalid success detector function '"..desync.arg.success_detector.."'") + end + success_detector = _G[desync.arg.success_detector] + else + success_detector = standard_success_detector + end + + if success_detector(desync, crec) then + crec.nocheck = true + DLOG("automate: success detected") + automate_failure_counter_reset(hrec) + return false + end + if failure_detector(desync, crec) then + crec.nocheck = true + DLOG("automate: failure detected") + local fails = tonumber(desync.arg.fails) or 3 + local maxtime = tonumber(desync.arg.time) or 60 + return automate_failure_counter(hrec, crec, fails, maxtime) + end + + return false +end + + +-- circularily change strategy numbers when failure count reaches threshold ('fails') +-- this orchestrator requires redirection of incoming traffic to cache RST and http replies ! +-- each orchestrated instance must have strategy=N arg, where N starts from 1 and increment without gaps +-- if 'final' arg is present in an orchestrated instance it stops rotation +-- arg: fails=N - failture count threshold. default is 3 +-- arg: time= - if last failure happened earlier than `maxtime` seconds ago - reset failure counter. default is 60. +-- arg: success_detector - success detector function name +-- arg: failure_detector - failure detector function name +-- arg: hostkey - hostkey generator function name +-- args for failure detector - see standard_failure_detector or your own detector +-- args for success detector - see standard_success_detector or your own detector +-- args for hostkey generator - see standard_hostkey or your own generator +-- test case: --in-range=-s34228 --lua-desync=circular --lua-desync=argdebug:strategy=1 --lua-desync=argdebug:strategy=2 +function circular(ctx, desync) + local function count_strategies(hrec) + if not hrec.ctstrategy then + local uniq={} + local n + for i,instance in pairs(desync.plan) do + if instance.arg.strategy then + n = tonumber(instance.arg.strategy) + if not n or n<1 then + error("circular: strategy number '"..tostring(instance.arg.strategy).."' is invalid") + end + uniq[tonumber(instance.arg.strategy)] = true + if instance.arg.final then + hrec.final = n + end + end + end + n=0 + for i,v in pairs(uniq) do + n=n+1 + end + if n~=#uniq then + error("circular: strategies numbers must start from 1 and increment. gaps are not allowed.") + end + hrec.ctstrategy = n + end + end + + -- take over execution. prevent further instance execution in case of error + orchestrate(ctx, desync) + + if not desync.track then + DLOG_ERR("circular: conntrack is missing but required") + return + end + + local hrec = automate_host_record(desync) + if not hrec then + DLOG("circular: passing with no tampering") + return + end + + count_strategies(hrec) + if hrec.ctstrategy==0 then + error("circular: add strategy=N tag argument to each following instance ! N must start from 1 and increment") + end + if not hrec.nstrategy then + DLOG("circular: start from strategy 1") + hrec.nstrategy = 1 + end + + local verdict = VERDICT_PASS + if hrec.final~=hrec.nstrategy then + local crec = automate_conn_record(desync) + if automate_failure_check(desync, hrec, crec) then + hrec.nstrategy = (hrec.nstrategy % hrec.ctstrategy) + 1 + DLOG("circular: rotate strategy to "..hrec.nstrategy) + if hrec.nstrategy == hrec.final then + DLOG("circular: final strategy "..hrec.final.." reached. will rotate no more.") + end + end + end + + DLOG("circular: current strategy "..hrec.nstrategy) + while true do + local instance = plan_instance_pop(desync) + if not instance then break end + if instance.arg.strategy and tonumber(instance.arg.strategy)==hrec.nstrategy then + verdict = plan_instance_execute(desync, verdict, instance) + end + end + + return verdict +end + +-- test iff functions +function cond_true(desync) + return true +end +function cond_false(desync) + return false +end +-- arg: percent - of true . 50 by default +function cond_random(desync) + return math.random(0,99)<(tonumber(desync.arg.percent) or 50) +end +-- this iif function detects packets having 'arg.pattern' string in their payload +-- test case : --lua-desync=condition:iff=cond_payload_str:pattern=1234 --lua-desync=argdebug:testarg=1 --lua-desync=argdebug:testarg=2:morearg=xyz +-- test case (true) : echo aaz1234zzz | ncat -4u 1.1.1.1 443 +-- test case (false) : echo aaze124zzz | ncat -4u 1.1.1.1 443 +function cond_payload_str(desync) + if not desync.arg.pattern then + error("cond_payload_str: missing 'pattern'") + end + return desync.dis.payload and string.find(desync.dis.payload,desync.arg.pattern,1,true) +end +-- true if dissect is tcp and timestamp tcp option is present +function cond_tcp_has_ts(desync) + return desync.dis.tcp and find_tcp_option(desync.dis.tcp.options, TCP_KIND_TS) +end +-- exec lua code in "code" arg and return it's result +function cond_lua(desync) + if not desync.arg.cond_code then + error("cond_lua: no 'cond_code' parameter") + end + local fname = desync.func_instance.."_cond_cond_code" + if not _G[fname] then + local err + _G[fname], err = load(desync.arg.cond_code, fname) + if not _G[fname] then + error(err) + return + end + end + -- allow dynamic cond_code to access desync + _G.desync = desync + local res, v = pcall(_G[fname]) + _G.desync = nil + if not res then + error(v); + end + return v +end + +-- check iff function available. error if not +function require_iff(desync, name) + if not desync.arg.iff then + error(name..": missing 'iff' function") + end + if type(_G[desync.arg.iff])~="function" then + error(name..": invalid 'iff' function '"..desync.arg.iff.."'") + end +end +-- execute further desync instances only if user-provided 'iff' function returns true +-- for example, this can be used by custom protocol detectors +-- arg: iff - condition function. takes desync as arg and returns bool. (cant use 'if' because of reserved word) +-- arg: neg - invert condition function result +-- arg: instances - how many instances execute conditionally. all if not defined +-- test case : --lua-desync=condition:iff=cond_random --lua-desync=argdebug:testarg=1 --lua-desync=argdebug:testarg=2:morearg=xyz +function condition(ctx, desync) + require_iff(desync, "condition") + orchestrate(ctx, desync) + if logical_xor(_G[desync.arg.iff](desync), desync.arg.neg) then + DLOG("condition: true") + else + DLOG("condition: false") + plan_clear(desync, tonumber(desync.arg.instances)) + if #desync.plan>0 then + DLOG("condition: executing remaining "..#desync.plan.." instance(s)") + end + end + return replay_execution_plan(desync) +end +-- execute further desync instances. +-- each instance may have "cond" and "cond_neg" args. +-- "cond" - condition function. "neg" - invert condition function result +-- arg: instances - how many instances execute conditionally. all if not defined +function per_instance_condition(ctx, desync) + orchestrate(ctx, desync) + + local verdict = VERDICT_PASS + local n = 0 + local max = tonumber(desync.arg.instances) + while not max or n0 then + DLOG("per_instance_condition: executing remaining "..#desync.plan.." instance(s) unconditionally") + end + return verdict_aggregate(verdict, replay_execution_plan(desync)) +end + +-- clear execution plan if user provided 'iff' functions returns true +-- can be used with other orchestrators to stop execution conditionally +-- arg: iff - condition function. takes desync as arg and returns bool. (cant use 'if' because of reserved word) +-- arg: neg - invert condition function result +-- test case : --in-range=-s1 --lua-desync=circular --lua-desync=stopif:iff=cond_random:strategy=1 --lua-desync=argdebug:strategy=1 --lua-desync=argdebug:strategy=2 +function stopif(ctx, desync) + require_iff(desync, "stopif") + orchestrate(ctx, desync) + if logical_xor(_G[desync.arg.iff](desync), desync.arg.neg) then + DLOG("stopif: true") + plan_clear(desync) + else + -- do not do anything. allow other orchestrator to finish the plan + DLOG("stopif: false") + end +end + +-- repeat following 'instances' 'repeats' times, execute others with no tampering +-- arg: instances - number of following instances to be repeated. 1 by default +-- arg: repeats - number of repeats +-- arg: iff - condition function to continue execution. takes desync as arg and returns bool. (cant use 'if' because of reserved word) +-- arg: neg - invert condition function result +-- arg: stop - do not replay remaining execution plan after 'instances' +-- arg: clear - clear execution plan after 'instances' +-- test case : --lua-desync=repeater:repeats=2:instances=2 --lua-desync=argdebug:v=1 --lua-desync=argdebug:v=2 --lua-desync=argdebug:v=3 +function repeater(ctx, desync) + local repeats = tonumber(desync.arg.repeats) + if not repeats then + error("repeater: missing 'repeats'") + end + local iff = desync.arg.iff or "cond_true" + if type(_G[iff])~="function" then + error("repeater: invalid 'iff' function '"..iff.."'") + end + orchestrate(ctx, desync) + if #desync.plan==0 then + DLOG("repeater: execution plan is empty - nothing to repeat") + return + end + local neg = desync.arg.neg + local stop = desync.arg.stop + local clear = desync.arg.clear + local verdict = VERDICT_PASS + local instances = tonumber(desync.arg.instances) or 1 + local repinst = desync.func_instance + if instances>#desync.plan then + instances = #desync.plan + end + -- save plan copy + local plancopy = deepcopy(desync.plan) + for r=1,repeats do + if not logical_xor(_G[iff](desync), neg) then + DLOG("repeater: break by iff") + break + end + DLOG("repeater: "..repinst.." "..r.."/"..repeats) + -- nested orchestrators can also pop + local ct_end = #desync.plan - instances + repeat + local instance = plan_instance_pop(desync) + verdict = plan_instance_execute(desync, verdict, instance) + until #desync.plan <= ct_end + -- rollback desync plan + desync.plan = deepcopy(plancopy) + end + -- remove repeated instances from desync plan + for i=1,instances do + table.remove(desync.plan,1) + end + if clear then + plan_clear(desync) + return verdict + elseif stop then + return verdict + end + -- replay the rest + return verdict_aggregate(verdict, replay_execution_plan(desync)) +end diff --git a/blockcheck/zapret2/lua/zapret-lib.lua b/blockcheck/zapret2/lua/zapret-lib.lua new file mode 100644 index 0000000..9277f8f --- /dev/null +++ b/blockcheck/zapret2/lua/zapret-lib.lua @@ -0,0 +1,2713 @@ +NFQWS2_COMPAT_VER_REQUIRED=6 + +if NFQWS2_COMPAT_VER~=NFQWS2_COMPAT_VER_REQUIRED then + error("Incompatible NFQWS2_COMPAT_VER. Use pktws and lua scripts from the same release !") +end + +HEXDUMP_DLOG_MAX = HEXDUMP_DLOG_MAX or 32 +NOT3=bitnot(3) +NOT7=bitnot(7) +-- xor pid,tid,sec,nsec +math.randomseed(bitxor(getpid(),gettid(),clock_gettime())) + +-- basic desync function +-- execute given lua code. "desync" is temporary set as global var to be accessible to the code +-- useful for simple fast actions without writing a func +-- arg: code= +function luaexec(ctx, desync) + if not desync.arg.code then + error("luaexec: no 'code' parameter") + end + local fname = desync.func_instance.."_code" + if not _G[fname] then + local err + _G[fname], err = load(desync.arg.code, fname) + if not _G[fname] then + error(err) + return + end + end + -- allow dynamic code to access desync + _G.desync = desync + local res, err = pcall(_G[fname]) + _G.desync = nil + if not res then + error(err); + end +end + +-- basic desync function +-- does nothing just acknowledges when it's called +-- no args +function pass(ctx, desync) + DLOG("pass") +end + +-- basic desync function +-- prints desync to DLOG +function pktdebug(ctx, desync) + DLOG("desync:") + var_debug(desync) +end +-- basic desync function +-- prints function args +function argdebug(ctx, desync) + var_debug(desync.arg) +end + +-- basic desync function +-- prints conntrack positions to DLOG +function posdebug(ctx, desync) + if not desync.track then + DLOG("posdebug: no track") + return + end + local s="posdebug: "..(desync.outgoing and "out" or "in").." time +"..desync.track.pos.dt.."s direct" + for i,pos in pairs({'n','d','b','s','p'}) do + s=s.." "..pos..pos_get(desync, pos, false) + end + s=s.." reverse" + for i,pos in pairs({'n','d','b','s','p'}) do + s=s.." "..pos..pos_get(desync, pos, true) + end + s=s.." payload "..#desync.dis.payload + if desync.reasm_data then + s=s.." reasm "..#desync.reasm_data + end + if desync.decrypt_data then + s=s.." decrypt "..#desync.decrypt_data + end + if desync.replay_piece_count then + s=s.." replay "..desync.replay_piece.."/"..desync.replay_piece_count + end + DLOG(s) +end + +-- basic desync function +-- set l7payload to 'arg.payload' if reasm.data or desync.dis.payload contains 'arg.pattern' substring +-- NOTE : this does not set payload on C code side ! +-- NOTE : C code will not see payload change. --payload args take only payloads known to C code and cause error if unknown. +-- arg: pattern - substring for search inside reasm_data or desync.dis.payload +-- arg: payload - set desync.l7payload to this if detected +-- arg: undetected - set desync.l7payload to this if not detected +-- test case : --lua-desync=detect_payload_str:pattern=1234:payload=my --lua-desync=fake:blob=0x1234:payload=my +function detect_payload_str(ctx, desync) + if not desync.arg.pattern then + error("detect_payload_str: missing 'pattern'") + end + local data = desync.reasm_data or desync.dis.payload + local b = data and string.find(data,desync.arg.pattern,1,true) + if b then + DLOG("detect_payload_str: detected '"..(desync.arg.payload or '?').."'") + if desync.arg.payload then desync.l7payload = desync.arg.payload end + else + DLOG("detect_payload_str: not detected '"..(desync.arg.payload or '?').."'") + if desync.arg.undetected then desync.l7payload = desync.arg.undetected end + end +end + + +-- this shim is needed then function is orchestrated. ctx services not available +-- have to emulate cutoff in LUA using connection persistent table track.lua_state +function instance_cutoff_shim(ctx, desync, dir) + if ctx then + instance_cutoff(ctx, dir) + elseif not desync.track then + DLOG("instance_cutoff_shim: cannot cutoff '"..desync.func_instance.."' because conntrack is absent") + else + if not desync.track.lua_state.cutoff_shim then + desync.track.lua_state.cutoff_shim = {} + end + if not desync.track.lua_state.cutoff_shim[desync.func_instance] then + desync.track.lua_state.cutoff_shim[desync.func_instance] = {} + end + if type(dir)=="nil" then + -- cutoff both directions by default + desync.track.lua_state.cutoff_shim[desync.func_instance][true] = true + desync.track.lua_state.cutoff_shim[desync.func_instance][false] = true + else + desync.track.lua_state.cutoff_shim[desync.func_instance][dir] = true + end + if b_debug then DLOG("instance_cutoff_shim: cutoff '"..desync.func_instance.."' in="..tostring(type(dir)=="nil" and true or not dir).." out="..tostring(type(dir)=="nil" or dir)) end + end +end +function cutoff_shim_check(desync) + if not desync.track then + DLOG("cutoff_shim_check: cannot check '"..desync.func_instance.."' cutoff because conntrack is absent") + return false + else + local b=desync.track.lua_state.cutoff_shim and + desync.track.lua_state.cutoff_shim[desync.func_instance] and + desync.track.lua_state.cutoff_shim[desync.func_instance][desync.outgoing] + if b and b_debug then + DLOG("cutoff_shim_check: '"..desync.func_instance.."' "..(desync.outgoing and "out" or "in").." cutoff") + end + return b + end +end + + +-- applies # and $ prefixes. #var means var length, %var means var value +function apply_arg_prefix(desync) + -- prevent double apply + if desync.arg.__prefix_applied then return end + for a,v in pairs(desync.arg) do + local c = string.sub(v,1,1) + if c=='#' then + local blb = blob(desync,string.sub(v,2)) + desync.arg[a] = tostring(type(blb)=='string' and #blb or 0) + elseif c=='%' then + desync.arg[a] = blob(desync,string.sub(v,2)) + elseif c=='\\' then + c = string.sub(v,2,2); + if c=='#' or c=='%' then + desync.arg[a] = string.sub(v,2) + end + end + end + desync.arg.__prefix_applied = true +end +-- copy instance identification and args from execution plan to desync table +-- NOTE : to not lose VERDICT_MODIFY dissect changes pass original desync table +-- NOTE : if a copy was passed and VERDICT_MODIFY returned you must copy modified dissect back to desync table or resend it and return VERDICT_DROP +-- NOTE : args and some fields are substituted. if you need them - make a copy before calling this. +function apply_execution_plan(desync, instance) + desync.func = instance.func + desync.func_n = instance.func_n + desync.func_instance = instance.func_instance + desync.arg = deepcopy(instance.arg) + -- no apply_arg_prefix here because it may refer non-existing blobs +end +-- produce resulting verdict from 2 verdicts +function verdict_aggregate(v1, v2) + v1 = v1 or VERDICT_PASS + v2 = v2 or VERDICT_PASS + local vn = bitor(bitand(v1,VERDICT_PRESERVE_NEXT),bitand(v2,VERDICT_PRESERVE_NEXT)) + local v + v1 = bitand(v1, VERDICT_MASK) + v2 = bitand(v2, VERDICT_MASK) + if v1==VERDICT_DROP or v2==VERDICT_DROP then + v=VERDICT_DROP + elseif v1==VERDICT_MODIFY or v2==VERDICT_MODIFY then + v=VERDICT_MODIFY + else + v=VERDICT_PASS + end + return bitor(v,vn) +end +function plan_instance_execute_preapplied(desync, verdict, instance) + if cutoff_shim_check(desync) then + DLOG("plan_instance_execute: not calling '"..desync.func_instance.."' because of voluntary cutoff") + elseif not payload_match_filter(desync.l7payload, instance.payload_filter) then + DLOG("plan_instance_execute: not calling '"..desync.func_instance.."' because payload '"..desync.l7payload.."' does not match filter '"..instance.payload_filter.."'") + elseif not pos_check_range(desync, instance.range) then + DLOG("plan_instance_execute: not calling '"..desync.func_instance.."' because pos "..pos_str(desync,instance.range.from).." "..pos_str(desync,instance.range.to).." is out of range '"..pos_range_str(instance.range).."'") + else + -- condition is satisfied. here blobs must be referenced + apply_arg_prefix(desync) + desync.arg.__prefix_applied = nil + DLOG("plan_instance_execute: calling '"..desync.func_instance.."'") + verdict = verdict_aggregate(verdict,_G[instance.func](nil, desync)) + end + return verdict +end +function plan_instance_execute(desync, verdict, instance) + apply_execution_plan(desync, instance) + return plan_instance_execute_preapplied(desync,verdict,instance) +end +function plan_instance_pop(desync) + return (desync.plan and #desync.plan>0) and table.remove(desync.plan, 1) or nil +end +function plan_clear(desync, max) + if max then + local n=0 + while n=max then + DLOG("replay_execution_plan: reached max instances limit "..max) + end + return verdict +end +-- this function demonstrates how to stop execution of upcoming desync instances and take over their job +-- this can be used, for example, for orchestrating conditional processing without modifying of desync functions code +-- test case : --lua-desync=desync_orchestrator_example --lua-desync=pass --lua-desync=pass +function desync_orchestrator_example(ctx, desync) + DLOG("orchestrator: taking over upcoming desync instances") + orchestrate(ctx, desync) + return replay_execution_plan(desync) +end + +-- if seq is over 2G s and p position comparision can be wrong +function pos_counter_overflow(desync, mode, reverse) + if not desync.track or (mode~='s' and mode~='p') then return false end + local track_pos = reverse and desync.track.pos.reverse or desync.track.pos.direct + return track_pos.tcp and track_pos.tcp.rseq_over_2G +end +-- these functions duplicate range check logic from C code +-- mode must be n,d,b,s,x,a +-- pos is {mode,pos} +-- range is {from={mode,pos}, to={mode,pos}, upper_cutoff} +-- upper_cutoff = true means non-inclusive upper boundary +function pos_get_pos(track_pos, mode) + if track_pos then + if mode=='n' then + return track_pos.pcounter + elseif mode=='d' then + return track_pos.pdcounter + elseif mode=='b' then + return track_pos.pbcounter + elseif track_pos.tcp then + if mode=='s' then + return track_pos.tcp.rseq + elseif mode=='p' then + return track_pos.tcp.pos + end + end + end + return 0 +end +function pos_get(desync, mode, reverse) + if desync.track then + local track_pos = reverse and desync.track.pos.reverse or desync.track.pos.direct + return pos_get_pos(track_pos,mode) + end + return 0 +end +function pos_check_from(desync, range) + if range.from.mode == 'x' or pos_counter_overflow(desync, range.from.mode) then return false end + if range.from.mode ~= 'a' then + if desync.track then + return pos_get(desync, range.from.mode) >= range.from.pos + else + return false + end + end + return true; +end +function pos_check_to(desync, range) + local ps + if range.to.mode == 'x' or pos_counter_overflow(desync, range.to.mode) then return false end + if range.to.mode ~= 'a' then + if desync.track then + ps = pos_get(desync, range.to.mode) + return (ps < range.to.pos) or not range.upper_cutoff and (ps == range.to.pos) + else + return false + end + end + return true; +end +function pos_check_range(desync, range) + return pos_check_from(desync,range) and pos_check_to(desync,range) +end +function pos_range_str(range) + return range.from.mode..range.from.pos..(range.upper_cutoff and '<' or '-')..range.to.mode..range.to.pos +end +function pos_str(desync, pos) + return pos.mode..pos_get(desync, pos.mode) +end + + +-- convert array a to packed string using 'packer' function. only numeric indexes starting from 1, order preserved +function barray(a, packer) + if a then + local sa={} + for i=1,#a do + sa[i] = packer(a[i]) + end + return table.concat(sa) + end +end +-- convert table a to packed string using 'packer' function. any indexes, any order +function btable(a, packer) + if a then + local sa={} + local i=1 + for k,v in pairs(a) do + sa[i] = packer(v) + i=i+1 + end + return table.concat(sa) + end +end +-- sequence comparision functions. they work only within 2G interval +-- seq1>=seq2 +function seq_ge(seq1, seq2) + return 0==bitand(u32add(seq1, -seq2), 0x80000000) +end +-- seq1>seq2 +function seq_gt(seq1, seq2) + return seq1~=seq2 and seq_ge(seq1, seq2) +end +-- seq11 then + ss = ss .. " " + end + ss = ss .. string.format("%02X", string.byte(s, i)) + end + return ss +end +function has_nonprintable(s) + return s:match("[^ -\r\n\t]") +end +function make_readable(v) + if type(v)=="string" then + return string.gsub(v,"[^ -]","."); + else + return tostring(v) + end +end +-- return hex dump of a binary string if it has nonprintable characters or string itself otherwise +function str_or_hex(s) + if has_nonprintable(s) then + return string2hex(s) + else + return s + end +end +function logical_xor(a,b) + return a and not b or not a and b +end +-- print to DLOG any variable. tables are expanded in the tree form, unprintables strings are hex dumped +function var_debug(v) + local function dbg(v,level) + if type(v)=="table" then + for key, value in pairs(v) do + DLOG(string.rep(" ",2*level).."."..tostring(key)) + dbg(v[key],level+1) + end + elseif type(v)=="string" then + DLOG(string.rep(" ",2*level)..type(v).." "..str_or_hex(v)) + else + DLOG(string.rep(" ",2*level)..type(v).." "..make_readable(v)) + end + end + dbg(v,0) +end + +-- make hex dump +function hexdump(s, max) + if not s then return nil end + local l = max<#s and max or #s + local ss = string.sub(s,1,l) + return string2hex(ss)..(#s>max and " ... " or " " )..make_readable(ss)..(#s>max and " ... " or "" ) +end +-- make hex dump limited by HEXDUMP_DLOG_MAX chars +function hexdump_dlog(s) + return hexdump(s,HEXDUMP_DLOG_MAX) +end + +-- make copy of an array recursively +function deepcopy(orig, copies) + copies = copies or {} + local orig_type = type(orig) + local copy + if orig_type == 'table' then + if copies[orig] then + copy = copies[orig] + else + copy = {} + copies[orig] = copy + for orig_key, orig_value in next, orig, nil do + copy[deepcopy(orig_key, copies)] = deepcopy(orig_value, copies) + end + setmetatable(copy, deepcopy(getmetatable(orig), copies)) + end + else -- number, string, boolean, etc + copy = orig + end + return copy +end + +-- check if string 'v' in comma separated list 's' +function in_list(s, v) + if s then + for elem in string.gmatch(s, "[^,]+") do + if elem==v then + return true + end + end + end + return false +end + +function blob_exist(desync, name) + return name and (string.sub(name,1,2)=="0x" or _G[name] or desync[name]) +end +-- blobs can be 0xHEX, field name in desync or global var +-- if name is nil - return def +function blob(desync, name, def) + if not name or #name==0 then + if def then + return def + else + error("empty blob name") + end + end + local blob + if string.sub(name,1,2)=="0x" then + blob = parse_hex(string.sub(name,3)) + if not blob then + error("invalid hex string : "..name) + end + else + blob = desync[name] + if not blob then + -- use global var if no field in dissect table + blob = _G[name] + if not blob then + error("blob '"..name.."' unavailable") + end + end + blob = tostring(blob) + end + return blob +end +function blob_or_def(desync, name, def) + return name and blob(desync,name,def) or def +end + +-- repeat pattern as needed to extract part of it with any length +-- pat="12345" len=10 offset=4 => "4512345123" +function pattern(pat, offset, len) + if not pat or #pat==0 then + error("pattern: bad or empty pattern") + end + local off = (offset-1) % #pat + local pats = divint((len + #pat - 1), #pat) + (off==0 and 0 or 1) + return string.sub(string.rep(pat,pats),off+1,off+len) +end + +-- decrease by 1 all number values in the array +function zero_based_pos(a) + if not a then return nil end + local b={} + for i,v in ipairs(a) do + b[i] = type(a[i])=="number" and a[i] - 1 or a[i] + end + return b +end + +-- delete elements with number value 1 +function delete_pos_1(a) + local i=1 + while i<=#a do + if type(a[i])=="number" and a[i] == 1 then + table.remove(a,i) + else + i = i+1 + end + end + return a +end + +-- linear search array a for a[index]==v. return index +function array_search(a, v) + for k,val in pairs(a) do + if val==v then + return k + end + end +end +-- linear search array a for a[index].f==v. return index +function array_field_search(a, f, v) + for k,val in pairs(a) do + if type(val)=="table" and val[f]==v then + return k + end + end +end + +-- find pos of the next eol and pos of the next non-eol character after eol +function find_next_line(s, pos) + local p1, p2 + p1 = string.find(s,"[\r\n]",pos) + if p1 then + p2 = p1 + p1 = p1-1 + if string.sub(s,p2,p2)=='\r' then p2=p2+1 end + if string.sub(s,p2,p2)=='\n' then p2=p2+1 end + if p2>#s then p2=nil end + else + p1 = #s + end + return p1,p2 +end + + +-- support sni=%var +function tls_mod_shim(desync, blob, modlist, payload) + local p1,p2 = string.find(modlist,"sni=%%[^,]+") + if p1 then + local var = string.sub(modlist,p1+5,p2) + local val = desync[var] or _G[var] + if not val then + error("tls_mod_shim: non-existent var '"..var.."'") + end + modlist = string.sub(modlist,1,p1+3)..tostring(val)..string.sub(modlist,p2+1) + end + return tls_mod(blob,modlist,payload) +end + +-- convert comma separated list of tcp flags to tcp.th_flags bit field +function parse_tcp_flags(s) + local flags={FIN=TH_FIN, SYN=TH_SYN, RST=TH_RST, PSH=TH_PUSH, PUSH=TH_PUSH, ACK=TH_ACK, URG=TH_URG, ECE=TH_ECE, CWR=TH_CWR} + local f=0 + local s_upper = string.upper(s) + for flag in string.gmatch(s_upper, "[^,]+") do + if flags[flag] then + f = bitor(f,flags[flag]) + else + error("tcp flag '"..flag.."' is invalid") + end + end + return f +end + +-- get ip protocol from l3 headers +function ip_proto_l3(dis) + if dis.ip then + return dis.ip.ip_p + elseif dis.ip6 then + return #dis.ip6.exthdr==0 and dis.ip6.ip6_nxt or dis.ip6.exthdr[#dis.ip6.exthdr].next + end +end +-- get ip protocol from l4 headers +function ip_proto_l4(dis) + if dis.tcp then + return IPPROTO_TCP + elseif dis.udp then + return IPPROTO_UDP + elseif dis.ip then + return dis.icmp and IPPROTO_ICMP or nil + elseif dis.ip6 then + return dis.icmp and IPPROTO_ICMPV6 or nil + end +end +function ip_proto(dis) + return ip_proto_l4(dis) or ip_proto_l3(dis) +end +-- discover ip protocol and fix "next" fields +function fix_ip_proto(dis, proto) + local pr = proto or ip_proto(dis) + if pr then + if dis.ip then + dis.ip.ip_p = pr + elseif dis.ip6 then + fix_ip6_next(dis.ip6, pr) + end + end +end + +-- find first tcp options of specified kind in dissect.tcp.options +function find_tcp_option(options, kind) + if options then + for i, opt in ipairs(options) do + if opt.kind==kind then return i end + end + end + return nil +end + +-- find first ipv6 extension header of specified protocol in dissect.ip6.exthdr +function find_ip6_exthdr(exthdr, proto) + if exthdr then + for i, hdr in ipairs(exthdr) do + if hdr.type==proto then return i end + end + end + return nil +end + +-- insert ipv6 extension header at specified index. fix next proto chain +function insert_ip6_exthdr(ip6, idx, header_type, data) + local prev + if not ip6.exthdr then ip6.exthdr={} end + if not idx then + -- insert to the end + idx = #ip6.exthdr+1 + elseif idx<0 or idx>(#ip6.exthdr+1) then + error("insert_ip6_exthdr: invalid index "..idx) + end + if idx==1 then + prev = ip6.ip6_nxt + ip6.ip6_nxt = header_type + else + prev = ip6.exthdr[idx-1].next + ip6.exthdr[idx-1].next = header_type + end + table.insert(ip6.exthdr, idx, {type = header_type, data = data, next = prev}) +end +-- delete ipv6 extension header at specified index. fix next proto chain +function del_ip6_exthdr(ip6, idx) + if idx<=0 or idx>#ip6.exthdr then + error("delete_ip6_exthdr: nonexistent index "..idx) + end + local nxt = ip6.exthdr[idx].next + if idx==1 then + ip6.ip6_nxt = nxt + else + ip6.exthdr[idx-1].next = nxt + end + table.remove(ip6.exthdr, idx) +end +-- fills next proto fields in ipv6 header and extension headers +function fix_ip6_next(ip6, last_proto) + if ip6.exthdr and #ip6.exthdr>0 then + for i=1,#ip6.exthdr do + if i==1 then + -- first header + ip6.ip6_nxt = ip6.exthdr[i].type + end + ip6.exthdr[i].next = i==#ip6.exthdr and (last_proto or IPPROTO_NONE) or ip6.exthdr[i+1].type + end + else + -- no headers + ip6.ip6_nxt = last_proto or IPPROTO_NONE + end +end + +function dis_ipsrc(dis) + if dis.ip then + return dis.ip.ip_src + elseif dis.ip6 then + return dis.ip6.ip6_src + end +end +function dis_ipdst(dis) + if dis.ip then + return dis.ip.ip_dst + elseif dis.ip6 then + return dis.ip6.ip6_dst + end +end + +function dis_l4_name(dis) + local l4 + if dis.tcp then + l4="tcp" + elseif dis.udp then + l4="udp" + elseif dis.icmp then + l4="icmp" + else + l4="raw"..ip_proto_l3(dis) + end + return l4 +end +function dis_l4_ports(dis) + local p1,p2 + if dis.tcp then + p1=dis.tcp.th_sport + p2=dis.tcp.th_dport + elseif dis.udp then + p1=dis.udp.uh_sport + p2=dis.udp.uh_dport + elseif dis.icmp then + p1=dis.icmp.icmp_type + p2=dis.icmp.icmp_code + end + return p1 and (p1..":"..p2) or "?" +end + +function dis_timer_name(dis) + return table.concat({ntop(dis_ipsrc(dis)),"->",ntop(dis_ipdst(dis)),"_",dis_l4_name(dis),"_",dis_l4_ports(dis)}) +end +function desync_timer_name(desync) + local name = dis_timer_name(desync.dis) + if desync.track then + name = name.."_n"..desync.track.pos.direct.pcounter + else + name = name.."_"..brandom_az09(10) + end + return name +end + + +-- reverses ip addresses, ports and seq/ack +function dis_reverse(dis) + if dis.ip then + dis.ip.ip_src, dis.ip.ip_dst = dis.ip.ip_dst, dis.ip.ip_src + end + if dis.ip6 then + dis.ip6.ip6_src, dis.ip6.ip6_dst = dis.ip6.ip6_dst, dis.ip6.ip6_src + end + if dis.tcp then + dis.tcp.th_sport, dis.tcp.th_dport = dis.tcp.th_dport, dis.tcp.th_sport + dis.tcp.th_ack, dis.tcp.th_seq = dis.tcp.th_seq, dis.tcp.th_ack + end + if dis.udp then + dis.udp.uh_sport, dis.udp.uh_dport = dis.udp.uh_dport, dis.udp.uh_sport + end +end + +function dis_reconstruct_l3(dis, options) + if dis.ip then + return csum_ip4_fix(reconstruct_iphdr(dis.ip)) + elseif dis.ip6 then + return reconstruct_ip6hdr(dis.ip6, options) + end +end + +-- parse autottl : delta,min-max +function parse_autottl(s) + if s then + local delta,min,max = string.match(s,"([-+]?%d+),(%d+)-(%d+)") + min = tonumber(min) + max = tonumber(max) + delta = tonumber(delta) + if not delta or min>max then + error("parse_autottl: invalid value '"..s.."'") + end + return {delta=delta,min=min,max=max} + else + return nil + end +end + +-- calculate ttl value based on incoming_ttl and parsed attl definition (delta,min-max) +function autottl(incoming_ttl, attl) + local function hop_count_guess(incoming_ttl) + -- 18.65.168.125 ( cloudfront ) 255 + -- 157.254.246.178 128 + -- 1.1.1.1 64 + -- guess original ttl. consider path lengths less than 32 hops + + local orig + + if incoming_ttl>223 then + orig=255 + elseif incoming_ttl<=128 and incoming_ttl>96 then + orig=128 + elseif incoming_ttl<=64 and incoming_ttl>32 then + orig=64 + else + return nil + end + + return orig-incoming_ttl + end + -- return guessed fake ttl value. 0 means unsuccessfull, should not perform autottl fooling + local function autottl_eval(hop_count, attl) + local d,fake + + d = hop_count + attl.delta + + if dattl.max then fake=attl.max + else fake=d + end + + if attl.delta<0 and fake>=hop_count or attl.delta>=0 and fake - set tcp flags in comma separated list +-- tcp_flags_unset= - unset tcp flags in comma separated list +-- tcp_ts_up - move timestamp tcp option to the top if it's present. this allows linux not to accept badack segments without badseq. this is very strange discovery but it works. +-- tcp_nop_del - delete NOP tcp options to free space in tcp header + +-- fool - custom fooling function : fool_func(dis, fooling_options) +function apply_fooling(desync, dis, fooling_options) + local function prepare_bin(hex,def) + local bin = parse_hex(hex) + if not bin then error("apply_fooling: invalid hex string '"..hex.."'") end + return #bin>0 and bin or def + end + local function ttl_discover(arg_ttl,arg_autottl) + local ttl + if arg_autottl and desync.track then + if desync.track.incoming_ttl then + -- use lua_cache to store discovered autottl + if type(desync.track.lua_state.autottl_cache)~="table" then desync.track.lua_state.autottl_cache={} end + if type(desync.track.lua_state.autottl_cache[desync.func_instance])~="table" then desync.track.lua_state.autottl_cache[desync.func_instance]={} end + if not desync.track.lua_state.autottl_cache[desync.func_instance].autottl_found then + local attl = parse_autottl(arg_autottl) + if not attl then + error("apply_fooling: invalid autottl value '"..arg_autottl.."'") + end + desync.track.lua_state.autottl_cache[desync.func_instance].autottl = autottl(desync.track.incoming_ttl,attl) + if desync.track.lua_state.autottl_cache[desync.func_instance].autottl then + desync.track.lua_state.autottl_cache[desync.func_instance].autottl_found = true + DLOG("apply_fooling: discovered autottl "..desync.track.lua_state.autottl_cache[desync.func_instance].autottl) + else + DLOG("apply_fooling: could not discover autottl") + end + elseif desync.track.lua_state.autottl_cache[desync.func_instance].autottl then + DLOG("apply_fooling: using cached autottl "..desync.track.lua_state.autottl_cache[desync.func_instance].autottl) + end + ttl=desync.track.lua_state.autottl_cache[desync.func_instance].autottl + else + DLOG("apply_fooling: cannot apply autottl because incoming ttl unknown") + end + end + if not ttl and arg_ttl then + ttl = tonumber(arg_ttl) + if not ttl or ttl<0 or ttl>255 then + error("apply_fooling: ip_ttl and ip6_ttl require valid value") + end + end + --io.stderr:write("TTL "..tostring(ttl).."\n") + return ttl + end + local function move_ts_top() + local tsidx = find_tcp_option(dis.tcp.options, TCP_KIND_TS) + if tsidx and tsidx>1 then + table.insert(dis.tcp.options, 1, dis.tcp.options[tsidx]) + table.remove(dis.tcp.options, tsidx + 1) + end + end + -- take default fooling from desync.arg + if not fooling_options then fooling_options = desync.arg end + -- use current packet if dissect not given + if not dis then dis = desync.dis end + if dis.tcp then + if fooling_options.tcp_seq then + if tonumber(fooling_options.tcp_seq) then + dis.tcp.th_seq = u32add(dis.tcp.th_seq, fooling_options.tcp_seq) + else + error("apply_fooling: tcp_seq requires increment parameter. there's no default value.") + end + end + if fooling_options.tcp_ack then + if tonumber(fooling_options.tcp_ack) then + dis.tcp.th_ack = u32add(dis.tcp.th_ack, fooling_options.tcp_ack) + else + error("apply_fooling: tcp_ack requires increment parameter. there's no default value.") + end + end + if fooling_options.tcp_flags_unset then + dis.tcp.th_flags = bitand(dis.tcp.th_flags, bitnot(parse_tcp_flags(fooling_options.tcp_flags_unset))) + end + if fooling_options.tcp_flags_set then + dis.tcp.th_flags = bitor(dis.tcp.th_flags, parse_tcp_flags(fooling_options.tcp_flags_set)) + end + if fooling_options.tcp_nop_del then + for i=#dis.tcp.options,1,-1 do + if dis.tcp.options[i].kind==TCP_KIND_NOOP then + table.remove(dis.tcp.options,i) + end + end + end + if fooling_options.tcp_ts then + if tonumber(fooling_options.tcp_ts) then + local idx = find_tcp_option(dis.tcp.options,TCP_KIND_TS) + if idx and (dis.tcp.options[idx].data and #dis.tcp.options[idx].data or 0)==8 then + dis.tcp.options[idx].data = bu32(u32add(u32(dis.tcp.options[idx].data),fooling_options.tcp_ts))..string.sub(dis.tcp.options[idx].data,5) + else + DLOG("apply_fooling: timestamp tcp option not present or invalid") + end + else + error("apply_fooling: tcp_ts requires increment parameter. there's no default value.") + end + end + if fooling_options.tcp_md5 then + if find_tcp_option(dis.tcp.options,TCP_KIND_MD5) then + DLOG("apply_fooling: md5 option already present") + else + table.insert(dis.tcp.options,{kind=TCP_KIND_MD5, data=prepare_bin(fooling_options.tcp_md5,brandom(16))}) + end + end + if fooling_options.tcp_ts_up then + move_ts_top() + end + end + if dis.ip6 then + local bin + if fooling_options.ip6_hopbyhop then + bin = prepare_bin(fooling_options.ip6_hopbyhop,"\x00\x00\x00\x00\x00\x00") + insert_ip6_exthdr(dis.ip6,1,IPPROTO_HOPOPTS,bin) + end + if fooling_options.ip6_hopbyhop2 then + bin = prepare_bin(fooling_options.ip6_hopbyhop2,"\x00\x00\x00\x00\x00\x00") + insert_ip6_exthdr(dis.ip6,1,IPPROTO_HOPOPTS,bin) + end + -- for possible unfragmentable part + if fooling_options.ip6_destopt then + bin = prepare_bin(fooling_options.ip6_destopt,"\x00\x00\x00\x00\x00\x00") + insert_ip6_exthdr(dis.ip6,nil,IPPROTO_DSTOPTS,bin) + end + if fooling_options.ip6_routing then + bin = prepare_bin(fooling_options.ip6_routing,"\x00\x00\x00\x00\x00\x00") + insert_ip6_exthdr(dis.ip6,nil,IPPROTO_ROUTING,bin) + end + -- for possible fragmentable part + if fooling_options.ip6_destopt2 then + bin = prepare_bin(fooling_options.ip6_destopt2,"\x00\x00\x00\x00\x00\x00") + insert_ip6_exthdr(dis.ip6,nil,IPPROTO_DSTOPTS,bin) + end + if fooling_options.ip6_ah then + -- by default truncated authentication header - only 6 bytes + bin = prepare_bin(fooling_options.ip6_ah,"\x00\x00"..brandom(4)) + insert_ip6_exthdr(dis.ip6,nil,IPPROTO_AH,bin) + end + end + if dis.ip then + local ttl = ttl_discover(fooling_options.ip_ttl,fooling_options.ip_autottl) + if ttl then dis.ip.ip_ttl = ttl end + end + if dis.ip6 then + local ttl = ttl_discover(fooling_options.ip6_ttl,fooling_options.ip6_autottl) + if ttl then dis.ip6.ip6_hlim = ttl end + end + + if fooling_options.fool and #fooling_options.fool>0 then + if type(_G[fooling_options.fool])=="function" then + DLOG("apply_fooling: calling '"..fooling_options.fool.."'") + _G[fooling_options.fool](dis, fooling_options) + else + error("apply_fooling: fool function '"..tostring(fooling_options.fool).."' does not exist") + end + end +end + + +-- assign dis.ip.ip_id value according to policy in ipid_options or desync.arg. apply def or "seq" policy if no ip_id options +-- ip_id=seq|rnd|zero|none +-- ip_id_conn - in 'seq' mode save current ip_id in track.lua_state to use it between packets +-- remember ip_id in desync +function apply_ip_id(desync, dis, ipid_options, def) + -- use current packet if dissect not given + if not dis then dis = desync.dis end + if dis.ip then -- ip_id is ipv4 only, ipv6 doesn't have it + -- take default ipid options from desync.arg + if not ipid_options then ipid_options = desync.arg end + local mode = ipid_options.ip_id or def or "seq" + if mode == "seq" then + if desync.track and ipid_options.ip_id_conn then + dis.ip.ip_id = desync.track.lua_state.ip_id or dis.ip.ip_id + desync.track.lua_state.ip_id = dis.ip.ip_id + 1 + else + dis.ip.ip_id = desync.ip_id or dis.ip.ip_id + desync.ip_id = dis.ip.ip_id + 1 + end + elseif mode == "zero" then + dis.ip.ip_id = 0 + elseif mode == "rnd" then + dis.ip.ip_id = math.random(1,0xFFFF) + end + end +end + + +-- return length of ipv4 or ipv6 header without options and extension headers. should be 20 for ipv4 and 40 for ipv6. +function l3_base_len(dis) + if dis.ip then + return IP_BASE_LEN + elseif dis.ip6 then + return IP6_BASE_LEN + else + return 0 + end +end +-- return length of ipv4 options or summary length of all ipv6 extension headers +-- ip6_exthdr_last_idx - count lengths for headers up to this index +function l3_extra_len(dis, ip6_exthdr_last_idx) + local l=0 + if dis.ip then + if dis.ip.options then + l = bitand(#dis.ip.options+3,NOT3) + end + elseif dis.ip6 and dis.ip6.exthdr then + local ct + if ip6_exthdr_last_idx and ip6_exthdr_last_idx>=0 and ip6_exthdr_last_idx<=#dis.ip6.exthdr then + ct = ip6_exthdr_last_idx + else + ct = #dis.ip6.exthdr + end + for i=1, ct do + if dis.ip6.exthdr[i].type == IPPROTO_AH then + -- length in 32-bit words + l = l + bitand(3+2+#dis.ip6.exthdr[i].data,NOT3) + else + -- length in 64-bit words + l = l + bitand(7+2+#dis.ip6.exthdr[i].data,NOT7) + end + end + end + return l +end +-- return length of ipv4/ipv6 header with options/extension headers +function l3_len(dis) + return l3_base_len(dis)+l3_extra_len(dis) +end +-- return length of tcp/udp headers without options. should be 20 for tcp and 8 for udp. +function l4_base_len(dis) + if dis.tcp then + return TCP_BASE_LEN + elseif dis.udp then + return UDP_BASE_LEN + elseif dis.icmp then + return ICMP_BASE_LEN + else + return 0 + end +end +-- return length of tcp options or 0 if not tcp +function l4_extra_len(dis) + local l=0 + if dis.tcp and dis.tcp.options then + for i=1, #dis.tcp.options do + l = l + 1 + if dis.tcp.options[i].kind~=TCP_KIND_NOOP and dis.tcp.options[i].kind~=TCP_KIND_END then + l = l + 1 + if dis.tcp.options[i].data then l = l + #dis.tcp.options[i].data end + end + end + -- 4 byte aligned + l = bitand(3+l,NOT3) + end + return l +end +-- return length of tcp header with options or base length of udp header - 8 bytes +function l4_len(dis) + return l4_base_len(dis)+l4_extra_len(dis) +end +-- return summary extra length of ipv4/ipv6 and tcp headers. 0 if no options, no ext headers +function l3l4_extra_len(dis) + return l3_extra_len(dis)+l4_extra_len(dis) +end +-- return summary length of ipv4/ipv6 and tcp/udp headers +function l3l4_len(dis) + return l3_len(dis)+l4_len(dis) +end +-- return summary length of ipv4/ipv6 , tcp/udp headers and payload +function packet_len(dis) + return l3l4_len(dis) + #dis.payload +end + +-- option : ipfrag.ipfrag_disorder - send fragments from last to first +function rawsend_dissect_ipfrag(dis, options) + if options and options.ipfrag and options.ipfrag.ipfrag and not dis.frag then + local frag_func = options.ipfrag.ipfrag=="" and "ipfrag2" or options.ipfrag.ipfrag + if type(_G[frag_func]) ~= "function" then + error("rawsend_dissect_ipfrag: ipfrag function '"..tostring(frag_func).."' does not exist") + end + local fragments = _G[frag_func](dis, options.ipfrag) + + -- allow ipfrag function to do extheader magic with non-standard "next protocol" + -- NOTE : dis.ip6 must have valid next protocol fields !!!!! + local reconstruct_frag = options.reconstruct and deepcopy(options.reconstruct) or {} + reconstruct_frag.ip6_preserve_next = true + + if fragments then + if options.ipfrag.ipfrag_disorder then + for i=#fragments,1,-1 do + DLOG("sending ip fragment "..i) + -- C function + if not rawsend_dissect(fragments[i], options.rawsend, reconstruct_frag) then return false end + end + else + for i, d in ipairs(fragments) do + DLOG("sending ip fragment "..i) + -- C function + if not rawsend_dissect(d, options.rawsend, reconstruct_frag) then return false end + end + end + return true + end + -- ipfrag failed. send unfragmented + end + -- C function + return rawsend_dissect(dis, options and options.rawsend, options and options.reconstruct) +end + +-- send dissect with tcp segmentation based on mss value. appply specified rawsend options. +function rawsend_dissect_segmented(desync, dis, mss, options) + dis = dis or desync.dis + local discopy = deepcopy(dis) + options = options or desync_opts(desync) + apply_fooling(desync, discopy, options and options.fooling) + + if dis.tcp then + mss = mss or desync.tcp_mss + local extra_len = l3l4_extra_len(discopy) + if extra_len >= mss then return false end + local max_data = mss - extra_len + local urp = dis.tcp.th_urp + local oob = bitand(dis.tcp.th_flags, TH_URG)~=0 + if #discopy.payload > max_data then + local pos=1 + local len + local payload=discopy.payload + while pos <= #payload do + len = #payload - pos + 1 + if len > max_data then len = max_data end + if oob then + if urp==0 and pos==1 then + discopy.tcp.th_flags = bitor(discopy.tcp.th_flags, TH_URG) + elseif urp>=pos and urp<(pos+len) then + discopy.tcp.th_flags = bitor(discopy.tcp.th_flags, TH_URG) + discopy.tcp.th_urp = urp-pos+1 + else + discopy.tcp.th_flags = bitand(discopy.tcp.th_flags, bitnot(TH_URG)) + discopy.tcp.th_urp = 0 + end + end + discopy.payload = string.sub(payload,pos,pos+len-1) + apply_ip_id(desync, discopy, options and options.ipid) + if not rawsend_dissect_ipfrag(discopy, options) then + -- stop if failed + return false + end + discopy.tcp.th_seq = u32add(discopy.tcp.th_seq, len) + pos = pos + len + end + return true + end + end + apply_ip_id(desync, discopy, options and options.ipid) + -- no reason to segment + return rawsend_dissect_ipfrag(discopy, options) +end + +-- send specified payload based on existing L3/L4 headers in the dissect. add seq to tcp.th_seq. +function rawsend_payload_segmented(desync, payload, seq, options) + -- save some cpu and ram + local dis = (payload or seq and seq~=0) and deepcopy(desync.dis) or desync.dis + if payload then dis.payload = payload end + if dis.tcp and seq then + dis.tcp.th_seq = dis.tcp.th_seq + seq + end + return rawsend_dissect_segmented(desync, dis, nil, options) +end + + +-- check if desync.outgoing comply with arg.dir or def if it's not present or "out" of they are not present both. dir can be "in","out","any" +function direction_check(desync, def) + local dir = desync.arg.dir or def or "out" + return desync.outgoing and dir~="in" or not desync.outgoing and dir~="out" +end +-- if dir "in" or "out" cutoff current desync function from opposite direction +function direction_cutoff_opposite(ctx, desync, def) + local dir = desync.arg.dir or def or "out" + if dir=="out" then + -- cutoff in + instance_cutoff_shim(ctx, desync, false) + elseif dir=="in" then + -- cutoff out + instance_cutoff_shim(ctx, desync, true) + end +end + +-- return true if l7payload matches filter l7payload_filter - comma separated list of payload types +function payload_match_filter(l7payload, l7payload_filter, def) + local argpl = l7payload_filter or def or "known" + local neg = string.sub(argpl,1,1)=="~" + local pl = neg and string.sub(argpl,2) or argpl + return neg ~= (in_list(pl, "all") or in_list(pl, l7payload) or in_list(pl, "known") and l7payload~="unknown" and l7payload~="empty") +end +-- check if desync payload type comply with payload type list in arg.payload +-- if arg.payload is not present - check for known payload - not empty and not unknown (nfqws1 behavior without "--desync-any-protocol" option) +-- if arg.payload is prefixed with '~' - it means negation +function payload_check(desync, def) + local b = payload_match_filter(desync.l7payload, desync.arg.payload, def) + if not b and b_debug then + local argpl = desync.arg.payload or def or "known" + DLOG("payload_check: payload '"..desync.l7payload.."' does not pass '"..argpl.."' filter") + end + return b +end + +-- return name of replay drop field in track.lua_state for the current desync function instance +function replay_drop_key(desync) + return desync.func_instance .. "_replay_drop" +end +-- set/unset replay drop flag in track.lua_state for the current desync function instance +function replay_drop_set(desync, v) + if desync.track then + if v == nil then v=true end + local rdk = replay_drop_key(desync) + if v then + if desync.replay then desync.track.lua_state[rdk] = true end + else + desync.track.lua_state[rdk] = nil + end + end +end +-- auto unset replay drop flag if desync is not replay or it's the last replay piece +-- return true if the caller should return VERDICT_DROP +function replay_drop(desync) + if desync.track then + local drop = desync.replay and desync.track.lua_state[replay_drop_key(desync)] + if not desync.replay or desync.replay_piece_last then + -- replay stopped or last piece of reasm + replay_drop_set(desync, false) + end + if drop then + DLOG("dropping replay packet because reasm was already sent") + return true + end + end + return false +end +-- true if desync is not replay or it's the first replay piece +function replay_first(desync) + return not desync.replay or desync.replay_piece==1 +end + +-- generate random host +-- template "google.com", len=16 : h82aj.google.com +-- template "google.com", len=11 : .google.com +-- template "google.com", len=10 : google.com +-- template "google.com", len=7 : gle.com +-- no template, len=6 : b8c54a +-- no template, len=7 : u9a.edu +-- no template, len=10 : jgha7c.com +function genhost(len, template) + if template and #template>0 then + if len <= #template then + return string.sub(template,#template-len+1) + elseif len==(#template+1) then + return "."..template + else + return brandom_az(1)..brandom_az09(len-#template-2).."."..template + end + else + if len>=7 then + local tlds = {"com","org","net","edu","gov","biz"} + local tld = tlds[math.random(#tlds)] + return brandom_az(1)..brandom_az09(len-#tld-1-1).."."..tld + else + return brandom_az(1)..brandom_az09(len-1) + end + end +end + +-- return ip addr of target host in text form +function host_ip(desync) + return desync.target.ip and ntop(desync.target.ip) or desync.target.ip6 and ntop(desync.target.ip6) +end +-- return hostname of target host if present or ip address in text form otherwise +function host_or_ip(desync) + if desync.track and desync.track.hostname then + return desync.track.hostname + end + return host_ip(desync) +end + +-- rate limited update of global ifaddrs +function update_ifaddrs() + if ifaddrs then + local now = os.time() + if not ifaddrs_last then ifaddrs_last = now end + if ifaddrs_last~=now then + ifaddrs = get_ifaddrs() + ifaddrs_last = now + end + else + ifaddrs = get_ifaddrs() + end +end +-- search ifaddrs for ip and return interface name or nil if not found +-- do not call get_ifaddrs too often to avoid overhead +function ip2ifname(ip) + update_ifaddrs() + if not ifaddrs then return nil end + for ifname,ifinfo in pairs(ifaddrs) do + if array_field_search(ifinfo.addr, "addr", ip) then + return ifname + end + end +end + +function is_absolute_path(path) + if string.sub(path,1,1)=='/' then return true end + local un = uname() + return string.sub(un.sysname,1,6)=="CYGWIN" and string.sub(path,2,2)==':' +end +function append_path(path,file) + return string.sub(path,#path,#path)=='/' and path..file or path.."/"..file +end +function writable_file_name(filename) + if is_absolute_path(filename) then return filename end + local writedir = os.getenv("WRITABLE") + if not writedir then return filename end + return append_path(writedir, filename) +end + +-- arg : wsize=N . tcp window size +-- arg : scale=N . tcp option scale factor +-- return : true of changed anything +function wsize_rewrite(dis, arg) + local b = false + if arg.wsize then + local wsize = tonumber(arg.wsize) + DLOG("wsize_rewrite: window size "..dis.tcp.th_win.." => "..wsize) + dis.tcp.th_win = tonumber(arg.wsize) + b = true + end + if arg.scale then + local scale = tonumber(arg.scale) + local i = find_tcp_option(dis.tcp.options, TCP_KIND_SCALE) + if i then + local oldscale = u8(dis.tcp.options[i].data) + if scale>oldscale then + DLOG("wsize_rewrite: not increasing scale factor") + elseif scale "..scale) + dis.tcp.options[i].data = bu8(scale) + b = true + end + end + end + return b +end + +-- standard fragmentation to 2 ip fragments +-- function returns 2 dissects with fragments +-- option : ipfrag_pos_udp - udp frag position. ipv4 : starting from L4 header. ipv6: starting from fragmentable part. must be multiple of 8. default 8 +-- option : ipfrag_pos_tcp - tcp frag position. ipv4 : starting from L4 header. ipv6: starting from fragmentable part. must be multiple of 8. default 32 +-- option : ipfrag_pos_icmp - icmp frag position. ipv4 : starting from L4 header. ipv6: starting from fragmentable part. must be multiple of 8. default 8 +-- option : ipfrag_pos - icmp frag position for other L4. ipv4 : starting from L4 header. ipv6: starting from fragmentable part. must be multiple of 8. default 32 +-- option : ipfrag_next - next protocol field in ipv6 fragment extenstion header of the second fragment. same as first by default. +function ipfrag2(dis, ipfrag_options) + local function frag_idx(exthdr) + -- fragment header after hopbyhop, destopt, routing + -- allow second destopt header to be in fragmentable part + -- test case : --lua-desync=send:ipfrag:ipfrag_pos_tcp=40:ip6_hopbyhop:ip6_destopt:ip6_destopt2 + -- WINDOWS may not send second ipv6 fragment with next protocol 60 (destopt) + -- test case windows : --lua-desync=send:ipfrag:ipfrag_pos_tcp=40:ip6_hopbyhop:ip6_destopt:ip6_destopt2:ipfrag_next=255 + if exthdr then + local first_destopts + for i=1,#exthdr do + if exthdr[i].type==IPPROTO_DSTOPTS then + first_destopts = i + break + end + end + for i=#exthdr,1,-1 do + if exthdr[i].type==IPPROTO_HOPOPTS or exthdr[i].type==IPPROTO_ROUTING or (exthdr[i].type==IPPROTO_DSTOPTS and i==first_destopts) then + return i+1 + end + end + end + return 1 + end + + local pos + local dis1, dis2 + local l3 + + if dis.tcp then + pos = ipfrag_options.ipfrag_pos_tcp or 32 + elseif dis.udp then + pos = ipfrag_options.ipfrag_pos_udp or 8 + elseif dis.icmp then + pos = ipfrag_options.ipfrag_pos_icmp or 8 + else + pos = ipfrag_options.ipfrag_pos or 32 + end + + DLOG("ipfrag2") + + if not pos then + error("ipfrag2: no frag position") + end + l3 = l3_len(dis) + if bitand(pos,7)~=0 then + error("ipfrag2: frag position must be multiple of 8") + end + if (pos+l3)>0xFFFF then + error("ipfrag2: too high frag offset") + end + + local plen = l3 + l4_len(dis) + #dis.payload + if dis.ip then + -- ipv4 frag is done by both lua and C part + -- lua code must correctly set ip_len, IP_MF and ip_off and provide full unfragmented payload + -- ip_len must be set to valid value as it would appear in the fragmented packet + -- ip_off must be set to fragment offset and IP_MF bit must be set if it's not the last fragment + -- C code constructs unfragmented packet then moves everything after ip header according to ip_off and ip_len + + if (pos+l3)>=plen then + DLOG("ipfrag2: ip frag pos "..pos.." exceeds packet length. ipfrag cancelled.") + return nil + end + + -- ip_id must not be zero or fragment will be dropped + local ip_id = dis.ip.ip_id==0 and math.random(1,0xFFFF) or dis.ip.ip_id + dis1 = deepcopy(dis) + -- ip_len holds the whole packet length starting from the ip header. it includes ip, transport headers and payload + dis1.ip.ip_len = l3 + pos -- ip header + first part up to frag pos + dis1.ip.ip_off = IP_MF -- offset 0, IP_MF - more fragments + dis1.ip.ip_id = ip_id + dis2 = deepcopy(dis) + dis2.ip.ip_off = bitrshift(pos,3) -- offset = frag pos, IP_MF - not set + dis2.ip.ip_len = plen - pos -- unfragmented packet length - frag pos + dis2.ip.ip_id = ip_id + end + + if dis.ip6 then + -- ipv6 frag is done by both lua and C part + -- lua code must insert fragmentation extension header at any desirable position, fill fragment offset, more fragments flag and ident + -- lua must set up ip6_plen as it would appear in the fragmented packet + -- C code constructs unfragmented packet then moves fragmentable part as needed + + local idxfrag = frag_idx(dis.ip6.exthdr) + local l3extra = l3_extra_len(dis, idxfrag-1) -- all ext headers before frag + + l3 = l3_base_len(dis) + l3extra + if (pos+l3)>=plen then + DLOG("ipfrag2: ip frag pos "..pos.." exceeds packet length. ipfrag cancelled.") + return nil + end + + l3extra = l3extra + 8 -- + 8 bytes for frag header + local ident = math.random(1,0xFFFFFFFF) + + dis1 = deepcopy(dis) + insert_ip6_exthdr(dis1.ip6, idxfrag, IPPROTO_FRAGMENT, bu16(IP6F_MORE_FRAG)..bu32(ident)) + dis1.ip6.ip6_plen = l3extra + pos + dis2 = deepcopy(dis) + insert_ip6_exthdr(dis2.ip6, idxfrag, IPPROTO_FRAGMENT, bu16(pos)..bu32(ident)) + -- only next proto of the first fragment is considered by standard + -- fragments with non-zero offset can have different "next protocol" field + -- this can be used to evade protection systems + if ipfrag_options.ipfrag_next then + dis2.ip6.exthdr[idxfrag].next = tonumber(ipfrag_options.ipfrag_next) + end + dis2.ip6.ip6_plen = plen - IP6_BASE_LEN + 8 - pos -- packet len without frag + 8 byte frag header - ipv6 base header + end + return {dis1,dis2} +end + + +-- option: sni_snt - server name type value in existing names +-- option: sni_snt_new - server name type value for new names +-- option: sni_del_ext - delete sni extension +-- option: sni_del - delete all names +-- option: sni_first - add name to the beginning +-- option: sni_last - add name to the end +function tls_client_hello_mod(tls, options) + local tdis = tls_dissect(tls) + if not tdis then + DLOG("tls_client_hello_mod: could not dissect tls") + return + end + if not tdis.handshake or not tdis.handshake[TLS_HANDSHAKE_TYPE_CLIENT] then + DLOG("tls_client_hello_mod: handshake not dissected") + return + end + local idx_sni + if options.sni_snt or options.sni_del_ext or options.sni_del or options.sni_first or options.sni_last then + idx_sni = array_field_search(tdis.handshake[TLS_HANDSHAKE_TYPE_CLIENT].dis.ext, "type", TLS_EXT_SERVER_NAME) + if not idx_sni then + DLOG("tls_client_hello_mod: no SNI extension. adding") + table.insert(tdis.handshake[TLS_HANDSHAKE_TYPE_CLIENT].dis.ext, 1, { type = TLS_EXT_SERVER_NAME, dis = { list = {} } } ) + idx_sni = 1 + end + end + if options.sni_del_ext then + table.remove(tdis.handshake[TLS_HANDSHAKE_TYPE_CLIENT].dis.ext, idx_sni) + else + if options.sni_del then + tdis.handshake[TLS_HANDSHAKE_TYPE_CLIENT].dis.ext[idx_sni].dis.list = {} + elseif options.sni_snt then + for i,v in pairs(tdis.handshake[TLS_HANDSHAKE_TYPE_CLIENT].dis.ext[idx_sni].dis.list) do + v.type = options.sni_snt + end + end + if options.sni_first then + table.insert(tdis.handshake[TLS_HANDSHAKE_TYPE_CLIENT].dis.ext[idx_sni].dis.list, 1, { name = options.sni_first, type = options.sni_snt_new } ) + end + if options.sni_last then + table.insert(tdis.handshake[TLS_HANDSHAKE_TYPE_CLIENT].dis.ext[idx_sni].dis.list, { name = options.sni_last, type = options.sni_snt_new } ) + end + end + local rtls = tls_reconstruct(tdis) + if not rtls then + DLOG_ERR("tls_client_hello_mod: reconstruct error") + end + return rtls +end + +-- checks if filename is gzip compressed +function is_gzip_file(filename) + local f, err = io.open(filename, "rb") + if not f then + error("is_gzip_file: "..err) + end + local hdr = f:read(2) + f:close() + return hdr and hdr=="\x1F\x8B" +end +-- ungzip file to raw string +-- expected_ratio = uncompressed_size/compressed_size (default 4) +function gunzip_file(filename, expected_ratio, read_block_size) + local f, err = io.open(filename, "rb") + if not f then + error("gunzip_file: "..err) + end + if not read_block_size then read_block_size=16384 end + if not expected_ratio then expected_ratio=4 end + + local decompressed="" + local gz = gunzip_init() + if not gz then + error("gunzip_file: stream init error") + end + repeat + local compressed, err = f:read(read_block_size) + if not compressed then + f:close() + gunzip_end(gz) + if err then + error("gunzip_file: file read error : "..err) + else + return nil + end + end + local decomp, eof = gunzip_inflate(gz, compressed, #compressed * expected_ratio) + if not decomp then + f:close() + gunzip_end(gz) + return nil + end + decompressed = decompressed .. decomp + until eof + f:close() + gunzip_end(gz) + return decompressed +end +-- zip file to raw string +-- expected_ratio = uncompressed_size/compressed_size (default 2) +-- level : 1..9 (default 9) +-- memlevel : 1..8 (default 8) +function gzip_file(filename, data, expected_ratio, level, memlevel, compress_block_size) + local f, err = io.open(filename, "wb") + if not f then + error("gzip_file: "..err) + end + if not compress_block_size then compress_block_size=16384 end + if not expected_ratio then expected_ratio=2 end + + local gz = gzip_init(nil, level, memlevel) + if not gz then + error("gzip_file: stream init error") + end + local off=1 + repeat + local block_size = #data-off+1 + if block_size>compress_block_size then block_size=compress_block_size end + local comp, eof = gzip_deflate(gz, string.sub(data,off,off+block_size-1), block_size / expected_ratio) + if not comp then + f:close() + gzip_end(gz) + return nil + end + f:write(comp) + off = off + block_size + until eof + f:close() + gzip_end(gz) +end +-- reads the whole file +function readfile(filename) + local f, err = io.open(filename, "rb") + if not f then + error("readfile: "..err) + end + local s, err = f:read("*a") + f:close() + if err then + error("readfile: "..err) + end + return s +end +-- reads plain or gzipped file with transparent decompression +-- expected_ratio = uncompressed_size/compressed_size (default 4) +function z_readfile(filename, expected_ratio) + return is_gzip_file(filename) and gunzip_file(filename, expected_ratio) or readfile(filename) +end +-- write data to filename +function writefile(filename, data) + local f, err = io.open(filename, "wb") + if not f then + error("writefile: "..err) + end + local s, err = f:write(data) + f:close() + if not s then + error("writefile: "..err) + end +end + + +-- DISSECTORS + +function http_dissect_header(header) + local p1,p2 + p1,p2 = string.find(header,":") + if p1 then + p2=string.find(header,"[^ \t]",p2+1) + return string.sub(header,1,p1-1), p2 and string.sub(header,p2) or "", p1-1, p2 or #header + end + return nil +end +-- make table with structured http header representation +function http_dissect_headers(http, pos) + local eol,pnext,header,value,headers,pos_endheader,pos_startvalue,pos_headers_end + headers={} + while pos do + eol,pnext = find_next_line(http,pos) + header = string.sub(http,pos,eol) + if #header == 0 then + pos_headers_end = pnext + break + end + header,value,pos_endheader,pos_startvalue = http_dissect_header(header) + if header then + headers[#headers+1] = { header_low = string.lower(header), header = header, value = value, pos_start = pos, pos_end = eol, pos_header_end = pos+pos_endheader-1, pos_value_start = pos+pos_startvalue-1 } + end + pos=pnext + end + return headers, pos_headers_end +end +-- make table with structured http request representation +function http_dissect_req(http) + if not http then return nil; end + local eol,pnext,req,hdrpos + local pos=1 + -- skip methodeol empty line(s) + while pos do + eol,pnext = find_next_line(http,pos) + req = string.sub(http,pos,eol) + pos=pnext + if #req>0 then break end + end + hdrpos = pos + if not req or #req==0 then return nil end + pos = string.find(req,"[ \t]") + if not pos then return nil end + local method = string.sub(req,1,pos-1); + pos = string.find(req,"[^ \t]",pos+1) + if not pos then return nil end + pnext = string.find(req,"[ \t]",pos+1) + if not pnext then pnext = #req + 1 end + local uri = string.sub(req,pos,pnext-1) + pos = string.find(req,"[^ \t]",pnext) + local http_ver + if pos then + pnext = string.find(req,"[\r\n]",pos) + if not pnext then pnext = #req + 1 end + http_ver = string.sub(req,pos,pnext-1) + end + local hdis = { method = method, uri = uri, http_ver = http_ver } + hdis.headers, hdis.pos_headers_end = http_dissect_headers(http,hdrpos) + if hdis.pos_headers_end then + hdis.body = string.sub(http, hdis.pos_headers_end) + end + return hdis +end +function http_dissect_reply(http) + if not http then return nil; end + local s, pos, code + s = string.sub(http,1,8) + if s~="HTTP/1.1" and s~="HTTP/1.0" then return nil end + pos = string.find(http,"[ \t\r\n]",10) + if not pos then return nil end + code = tonumber(string.sub(http,10,pos-1)) + if not code then return nil end + s,pos = find_next_line(http,pos) + local hdis = { code = code } + hdis.headers, hdis.pos_headers_end = http_dissect_headers(http,pos) + if hdis.pos_headers_end then + hdis.body = string.sub(http, hdis.pos_headers_end) + end + return hdis +end +function http_reconstruct_headers(headers, unixeol) + local eol = unixeol and "\n" or "\r\n" + return headers and barray(headers, function(a) return a.header..": "..a.value..eol end) or "" +end +function http_reconstruct_req(hdis, unixeol) + local eol = unixeol and "\n" or "\r\n" + return hdis.method.." "..hdis.uri..(hdis.http_ver and (" "..hdis.http_ver) or "")..eol..http_reconstruct_headers(hdis.headers, unixeol)..eol..(hdis.body or "") +end + +function dissect_url(url) + local p1,pb,pstart,pend + local proto, creds, domain, port, uri + p1 = string.find(url,"[^ \t]") + if not p1 then return nil end + pb = p1 + pstart,pend = string.find(url,"[a-z]+://",p1) + if pend then + proto = string.sub(url,pstart,pend-3) + p1 = pend+1 + end + pstart,pend = string.find(url,"[@/]",p1) + if pend and string.sub(url,pstart,pend)=='@' then + creds = string.sub(url,p1,pend-1) + p1 = pend+1 + end + pstart,pend = string.find(url,"/",p1,true) + if pend then + if pend==pb then + uri = string.sub(url,pb) + else + uri = string.sub(url,pend) + domain = string.sub(url,p1,pend-1) + end + else + if proto then + domain = string.sub(url,p1) + else + uri = string.sub(url,p1) + end + end + if domain then + pstart,pend = string.find(domain,':',1,true) + if pend then + port = string.sub(domain, pend+1) + domain = string.sub(domain, 1, pstart-1) + end + end + return { proto = proto, creds = creds, domain = domain, port = port, uri=uri } +end + +function dissect_nld(domain, level) + if domain then + local n=1 + for pos=#domain,1,-1 do + if string.sub(domain,pos,pos)=='.' then + if n==level then + return string.sub(domain, pos+1) + end + n=n+1 + end + end + if n==level then + return domain + end + end + return nil +end + + + +TLS_EXT_SERVER_NAME=0 +TLS_EXT_MAX_FRAGMENT_LENGTH=1 +TLS_EXT_CLIENT_CERTIFICATE_URL=2 +TLS_EXT_TRUSTED_CA_KEYS=3 +TLS_EXT_TRUNCATED_HMAC=4 +TLS_EXT_STATUS_REQUEST=5 +TLS_EXT_USER_MAPPING=6 +TLS_EXT_CLIENT_AUTHZ=7 +TLS_EXT_SERVER_AUTHZ=8 +TLS_EXT_CERT_TYPE=9 +TLS_EXT_SUPPORTED_GROUPS=10 +TLS_EXT_EC_POINT_FORMATS=11 +TLS_EXT_SRP=12 +TLS_EXT_SIGNATURE_ALGORITHMS=13 +TLS_EXT_USE_SRTP=14 +TLS_EXT_HEARTBEAT=15 +TLS_EXT_ALPN=16 +TLS_EXT_STATUS_REQUEST_V2=17 +TLS_EXT_SIGNED_CERTIFICATE_TIMESTAMP=18 +TLS_EXT_CLIENT_CERT_TYPE=19 +TLS_EXT_SERVER_CERT_TYPE=20 +TLS_EXT_PADDING=21 +TLS_EXT_ENCRYPT_THEN_MAC=22 +TLS_EXT_EXTENDED_MASTER_SECRET=23 +TLS_EXT_TOKEN_BINDING=24 +TLS_EXT_CACHED_INFO=25 +TLS_EXT_COMPRESS_CERTIFICATE=27 +TLS_EXT_RECORD_SIZE_LIMIT=28 +TLS_EXT_DELEGATED_CREDENTIALS=34 +TLS_EXT_SESSION_TICKET_TLS=35 +TLS_EXT_KEY_SHARE_OLD=40 +TLS_EXT_PRE_SHARED_KEY=41 +TLS_EXT_EARLY_DATA=42 +TLS_EXT_SUPPORTED_VERSIONS=43 +TLS_EXT_COOKIE=44 +TLS_EXT_PSK_KEY_EXCHANGE_MODES=45 +TLS_EXT_TICKET_EARLY_DATA_INFO=46 +TLS_EXT_CERTIFICATE_AUTHORITIES=47 +TLS_EXT_OID_FILTERS=48 +TLS_EXT_POST_HANDSHAKE_AUTH=49 +TLS_EXT_SIGNATURE_ALGORITHMS_CERT=50 +TLS_EXT_KEY_SHARE=51 +TLS_EXT_TRANSPARENCY_INFO=52 +TLS_EXT_CONNECTION_ID_DEPRECATED=53 +TLS_EXT_CONNECTION_ID=54 +TLS_EXT_EXTERNAL_ID_HASH=55 +TLS_EXT_EXTERNAL_SESSION_ID=56 +TLS_EXT_QUIC_TRANSPORT_PARAMETERS_V1=57 +TLS_EXT_TICKET_REQUEST=58 +TLS_EXT_DNSSEC_CHAIN=59 +TLS_EXT_GREASE_0A0A=2570 +TLS_EXT_GREASE_1A1A=6682 +TLS_EXT_GREASE_2A2A=10794 +TLS_EXT_NPN=13172 +TLS_EXT_GREASE_3A3A=14906 +TLS_EXT_ALPS_OLD=17513 +TLS_EXT_ALPS=17613 +TLS_EXT_GREASE_4A4A=19018 +TLS_EXT_GREASE_5A5A=23130 +TLS_EXT_GREASE_6A6A=27242 +TLS_EXT_CHANNEL_ID_OLD=30031 +TLS_EXT_CHANNEL_ID=30032 +TLS_EXT_GREASE_7A7A=31354 +TLS_EXT_GREASE_8A8A=35466 +TLS_EXT_GREASE_9A9A=39578 +TLS_EXT_GREASE_AAAA=43690 +TLS_EXT_GREASE_BABA=47802 +TLS_EXT_GREASE_CACA=51914 +TLS_EXT_GREASE_DADA=56026 +TLS_EXT_GREASE_EAEA=60138 +TLS_EXT_GREASE_FAFA=64250 +TLS_EXT_ECH_OUTER_EXTENSIONS=64768 +TLS_EXT_ENCRYPTED_CLIENT_HELLO=65037 +TLS_EXT_RENEGOTIATION_INFO=65281 +TLS_EXT_QUIC_TRANSPORT_PARAMETERS=65445 +TLS_EXT_ENCRYPTED_SERVER_NAME=65486 + +TLS_HELLO_EXT_NAMES = { + [TLS_EXT_SERVER_NAME] = "server_name", -- RFC 6066 + [TLS_EXT_MAX_FRAGMENT_LENGTH] = "max_fragment_length",-- RFC 6066 + [TLS_EXT_CLIENT_CERTIFICATE_URL] = "client_certificate_url", -- RFC 6066 + [TLS_EXT_TRUSTED_CA_KEYS] = "trusted_ca_keys", -- RFC 6066 + [TLS_EXT_TRUNCATED_HMAC] = "truncated_hmac", -- RFC 6066 + [TLS_EXT_STATUS_REQUEST] = "status_request", -- RFC 6066 + [TLS_EXT_USER_MAPPING] = "user_mapping", -- RFC 4681 + [TLS_EXT_CLIENT_AUTHZ] = "client_authz", -- RFC 5878 + [TLS_EXT_SERVER_AUTHZ] = "server_authz", -- RFC 5878 + [TLS_EXT_CERT_TYPE] = "cert_type", -- RFC 6091 + [TLS_EXT_SUPPORTED_GROUPS] = "supported_groups", -- RFC 4492, RFC 7919 + [TLS_EXT_EC_POINT_FORMATS] = "ec_point_formats", -- RFC 4492 + [TLS_EXT_SRP] = "srp", -- RFC 5054 + [TLS_EXT_SIGNATURE_ALGORITHMS] = "signature_algorithms", -- RFC 5246 + [TLS_EXT_USE_SRTP] = "use_srtp", -- RFC 5764 + [TLS_EXT_HEARTBEAT] = "heartbeat", -- RFC 6520 + [TLS_EXT_ALPN] = "application_layer_protocol_negotiation", -- RFC 7301 + [TLS_EXT_STATUS_REQUEST_V2] = "status_request_v2", -- RFC 6961 + [TLS_EXT_SIGNED_CERTIFICATE_TIMESTAMP] = "signed_certificate_timestamp", -- RFC 6962 + [TLS_EXT_CLIENT_CERT_TYPE] = "client_certificate_type", -- RFC 7250 + [TLS_EXT_SERVER_CERT_TYPE] = "server_certificate_type", -- RFC 7250 + [TLS_EXT_PADDING] = "padding", -- RFC 7685 + [TLS_EXT_ENCRYPT_THEN_MAC] = "encrypt_then_mac", -- RFC 7366 + [TLS_EXT_EXTENDED_MASTER_SECRET] = "extended_master_secret", -- RFC 7627 + [TLS_EXT_TOKEN_BINDING] = "token_binding", -- https://tools.ietf.org/html/draft-ietf-tokbind-negotiation + [TLS_EXT_CACHED_INFO] = "cached_info", -- RFC 7924 + [TLS_EXT_COMPRESS_CERTIFICATE] = "compress_certificate", -- https://tools.ietf.org/html/draft-ietf-tls-certificate-compression-03 + [TLS_EXT_RECORD_SIZE_LIMIT] = "record_size_limit", -- RFC 8449 + [TLS_EXT_DELEGATED_CREDENTIALS] = "delegated_credentials", -- draft-ietf-tls-subcerts-10.txt + [TLS_EXT_SESSION_TICKET_TLS] = "session_ticket", -- RFC 5077 / RFC 8447 + [TLS_EXT_KEY_SHARE_OLD] = "Reserved (key_share)", -- https://tools.ietf.org/html/draft-ietf-tls-tls13-22 (removed in -23) + [TLS_EXT_PRE_SHARED_KEY] = "pre_shared_key", -- RFC 8446 + [TLS_EXT_EARLY_DATA] = "early_data", -- RFC 8446 + [TLS_EXT_SUPPORTED_VERSIONS] = "supported_versions", -- RFC 8446 + [TLS_EXT_COOKIE] = "cookie", -- RFC 8446 + [TLS_EXT_PSK_KEY_EXCHANGE_MODES] = "psk_key_exchange_modes", -- RFC 8446 + [TLS_EXT_TICKET_EARLY_DATA_INFO] = "Reserved (ticket_early_data_info)", -- draft-ietf-tls-tls13-18 (removed in -19) + [TLS_EXT_CERTIFICATE_AUTHORITIES] = "certificate_authorities", -- RFC 8446 + [TLS_EXT_OID_FILTERS] = "oid_filters", -- RFC 8446 + [TLS_EXT_POST_HANDSHAKE_AUTH] = "post_handshake_auth", -- RFC 8446 + [TLS_EXT_SIGNATURE_ALGORITHMS_CERT] = "signature_algorithms_cert", -- RFC 8446 + [TLS_EXT_KEY_SHARE] = "key_share", -- RFC 8446 + [TLS_EXT_TRANSPARENCY_INFO] = "transparency_info", -- draft-ietf-trans-rfc6962-bis-41 + [TLS_EXT_CONNECTION_ID_DEPRECATED] = "connection_id (deprecated)", -- draft-ietf-tls-dtls-connection-id-07 + [TLS_EXT_CONNECTION_ID] = "connection_id", -- RFC 9146 + [TLS_EXT_EXTERNAL_ID_HASH] = "external_id_hash", -- RFC 8844 + [TLS_EXT_EXTERNAL_SESSION_ID] = "external_session_id", -- RFC 8844 + [TLS_EXT_QUIC_TRANSPORT_PARAMETERS_V1] = "quic_transport_parameters", -- draft-ietf-quic-tls-33 + [TLS_EXT_TICKET_REQUEST] = "ticket_request", -- draft-ietf-tls-ticketrequests-07 + [TLS_EXT_DNSSEC_CHAIN] = "dnssec_chain", -- RFC 9102 + [TLS_EXT_GREASE_0A0A] = "Reserved (GREASE)", -- RFC 8701 + [TLS_EXT_GREASE_1A1A] = "Reserved (GREASE)", -- RFC 8701 + [TLS_EXT_GREASE_2A2A] = "Reserved (GREASE)", -- RFC 8701 + [TLS_EXT_NPN] = "next_protocol_negotiation", -- https://datatracker.ietf.org/doc/html/draft-agl-tls-nextprotoneg-03 + [TLS_EXT_GREASE_3A3A] = "Reserved (GREASE)", -- RFC 8701 + [TLS_EXT_ALPS_OLD] = "application_settings_old", -- draft-vvv-tls-alps-01 + [TLS_EXT_ALPS] = "application_settings", -- draft-vvv-tls-alps-01 -- https://chromestatus.com/feature/5149147365900288 + [TLS_EXT_GREASE_4A4A] = "Reserved (GREASE)", -- RFC 8701 + [TLS_EXT_GREASE_5A5A] = "Reserved (GREASE)", -- RFC 8701 + [TLS_EXT_GREASE_6A6A] = "Reserved (GREASE)", -- RFC 8701 + [TLS_EXT_CHANNEL_ID_OLD] = "channel_id_old", -- https://tools.ietf.org/html/draft-balfanz-tls-channelid-00 + [TLS_EXT_CHANNEL_ID] = "channel_id", -- https://tools.ietf.org/html/draft-balfanz-tls-channelid-01 + [TLS_EXT_RENEGOTIATION_INFO] = "renegotiation_info", -- RFC 5746 + [TLS_EXT_GREASE_7A7A] = "Reserved (GREASE)", -- RFC 8701 + [TLS_EXT_GREASE_8A8A] = "Reserved (GREASE)", -- RFC 8701 + [TLS_EXT_GREASE_9A9A] = "Reserved (GREASE)", -- RFC 8701 + [TLS_EXT_GREASE_AAAA] = "Reserved (GREASE)", -- RFC 8701 + [TLS_EXT_GREASE_BABA] = "Reserved (GREASE)", -- RFC 8701 + [TLS_EXT_GREASE_CACA] = "Reserved (GREASE)", -- RFC 8701 + [TLS_EXT_GREASE_DADA] = "Reserved (GREASE)", -- RFC 8701 + [TLS_EXT_GREASE_EAEA] = "Reserved (GREASE)", -- RFC 8701 + [TLS_EXT_GREASE_FAFA] = "Reserved (GREASE)", -- RFC 8701 + [TLS_EXT_QUIC_TRANSPORT_PARAMETERS] = "quic_transport_parameters (drafts version)", -- https://tools.ietf.org/html/draft-ietf-quic-tls + [TLS_EXT_ENCRYPTED_SERVER_NAME] = "encrypted_server_name", -- https://tools.ietf.org/html/draft-ietf-tls-esni-01 + [TLS_EXT_ENCRYPTED_CLIENT_HELLO] = "encrypted_client_hello", -- https://datatracker.ietf.org/doc/draft-ietf-tls-esni/17/ + [TLS_EXT_ECH_OUTER_EXTENSIONS] = "ech_outer_extensions" -- https://datatracker.ietf.org/doc/draft-ietf-tls-esni/17/ +} + +TLS_RECORD_TYPE_CHANGE_CIPHER_SPEC=0x14 +TLS_RECORD_TYPE_ALERT=0x15 +TLS_RECORD_TYPE_HANDSHAKE=0x16 +TLS_RECORD_TYPE_DATA=0x17 +TLS_RECORD_TYPE_HEARTBEAT=0x18 + +TLS_RECORD_TYPE_NAMES = { + [TLS_RECORD_TYPE_CHANGE_CIPHER_SPEC] = "change_cipher_spec", + [TLS_RECORD_TYPE_ALERT] = "alert", + [TLS_RECORD_TYPE_HANDSHAKE] = "handshake", + [TLS_RECORD_TYPE_DATA] = "data", + [TLS_RECORD_TYPE_HEARTBEAT] = "heartbeat" +} + +TLS_HANDSHAKE_TYPE_HELLO_REQUEST=0 +TLS_HANDSHAKE_TYPE_CLIENT=1 +TLS_HANDSHAKE_TYPE_SERVER=2 +TLS_HANDSHAKE_TYPE_CERTIFICATE=11 +TLS_HANDSHAKE_TYPE_KEY_EXCHANGE=12 +TLS_HANDSHAKE_TYPE_CERTIFICATE_REQUEST=13 +TLS_HANDSHAKE_TYPE_SERVER_HELLO_DONE=14 +TLS_HANDSHAKE_TYPE_CERTIFICATE_VERIFY=15 +TLS_HANDSHAKE_TYPE_CLIENT_KEY_EXCHANGE=16 +TLS_HANDSHAKE_TYPE_FINISHED=20 +TLS_HANDSHAKE_TYPE_CERTIFICATE_URL=21 +TLS_HANDSHAKE_TYPE_CERTIFICATE_STATUS=22 +TLS_HANDSHAKE_TYPE_SUPPLEMENTAL_DATA=23 +TLS_HANDSHAKE_TYPE_KEY_UPDATE=24 +TLS_HANDSHAKE_TYPE_COMPRESSED_CERTIFICATE=25 + +TLS_HANDSHAKE_TYPE_NAMES = { + [TLS_HANDSHAKE_TYPE_HELLO_REQUEST]="hello_request", + [TLS_HANDSHAKE_TYPE_CLIENT]="client_hello", + [TLS_HANDSHAKE_TYPE_SERVER]="server_hello", + [TLS_HANDSHAKE_TYPE_CERTIFICATE]="certificate", + [TLS_HANDSHAKE_TYPE_KEY_EXCHANGE]="key_exchange", + [TLS_HANDSHAKE_TYPE_CERTIFICATE_REQUEST]="certificate_request", + [TLS_HANDSHAKE_TYPE_SERVER_HELLO_DONE]="hello_done", + [TLS_HANDSHAKE_TYPE_CERTIFICATE_VERIFY]="certificate_verify", + [TLS_HANDSHAKE_TYPE_CLIENT_KEY_EXCHANGE]="client_key_exchange", + [TLS_HANDSHAKE_TYPE_FINISHED]="finished", + [TLS_HANDSHAKE_TYPE_CERTIFICATE_URL]="certificate_url", + [TLS_HANDSHAKE_TYPE_CERTIFICATE_STATUS]="certificate_status", + [TLS_HANDSHAKE_TYPE_SUPPLEMENTAL_DATA]="supplemental_data", + [TLS_HANDSHAKE_TYPE_KEY_UPDATE]="key_update", + [TLS_HANDSHAKE_TYPE_COMPRESSED_CERTIFICATE]="compressed_certificate" +} + +TLS_VER_SSL30=0x0300 +TLS_VER_TLS10=0x0301 +TLS_VER_TLS11=0x0302 +TLS_VER_TLS12=0x0303 +TLS_VER_TLS13=0x0304 + +TLS_HANDSHAKE_QUIC_TP_ORIGINAL_DESTINATION_CONNECTION_ID=0x00 +TLS_HANDSHAKE_QUIC_TP_MAX_IDLE_TIMEOUT=0x01 +TLS_HANDSHAKE_QUIC_TP_STATELESS_RESET_TOKEN=0x02 +TLS_HANDSHAKE_QUIC_TP_MAX_UDP_PAYLOAD_SIZE=0x03 +TLS_HANDSHAKE_QUIC_TP_INITIAL_MAX_DATA=0x04 +TLS_HANDSHAKE_QUIC_TP_INITIAL_MAX_STREAM_DATA_BIDI_LOCAL=0x05 +TLS_HANDSHAKE_QUIC_TP_INITIAL_MAX_STREAM_DATA_BIDI_REMOTE=0x06 +TLS_HANDSHAKE_QUIC_TP_INITIAL_MAX_STREAM_DATA_UNI=0x07 +TLS_HANDSHAKE_QUIC_TP_INITIAL_MAX_STREAMS_BIDI=0x08 +TLS_HANDSHAKE_QUIC_TP_INITIAL_MAX_STREAMS_UNI=0x09 +TLS_HANDSHAKE_QUIC_TP_ACK_DELAY_EXPONENT=0x0a +TLS_HANDSHAKE_QUIC_TP_MAX_ACK_DELAY=0x0b +TLS_HANDSHAKE_QUIC_TP_DISABLE_ACTIVE_MIGRATION=0x0c +TLS_HANDSHAKE_QUIC_TP_PREFERRED_ADDRESS=0x0d +TLS_HANDSHAKE_QUIC_TP_ACTIVE_CONNECTION_ID_LIMIT=0x0e +TLS_HANDSHAKE_QUIC_TP_INITIAL_SOURCE_CONNECTION_ID=0x0f +TLS_HANDSHAKE_QUIC_TP_RETRY_SOURCE_CONNECTION_ID=0x10 +TLS_HANDSHAKE_QUIC_TP_VERSION_INFORMATION=0x11 -- https://tools.ietf.org/html/draft-ietf-quic-version-negotiation-14 +TLS_HANDSHAKE_QUIC_TP_MAX_DATAGRAM_FRAME_SIZE=0x20 -- https://datatracker.ietf.org/doc/html/draft-ietf-quic-datagram-06 +TLS_HANDSHAKE_QUIC_TP_CIBIR_ENCODING=0x1000 -- https://datatracker.ietf.org/doc/html/draft-banks-quic-cibir-01 +TLS_HANDSHAKE_QUIC_TP_LOSS_BITS=0x1057 -- https://tools.ietf.org/html/draft-ferrieuxhamchaoui-quic-lossbits-03 +TLS_HANDSHAKE_QUIC_TP_GREASE_QUIC_BIT=0x2ab2 -- RFC 9287 +TLS_HANDSHAKE_QUIC_TP_ENABLE_TIME_STAMP=0x7157 -- https://tools.ietf.org/html/draft-huitema-quic-ts-02 +TLS_HANDSHAKE_QUIC_TP_ENABLE_TIME_STAMP_V2=0x7158 -- https://tools.ietf.org/html/draft-huitema-quic-ts-03 +TLS_HANDSHAKE_QUIC_TP_MIN_ACK_DELAY_OLD=0xde1a -- https://tools.ietf.org/html/draft-iyengar-quic-delayed-ack-00 +TLS_HANDSHAKE_QUIC_TP_GOOGLE_USER_AGENT=0x3129 +TLS_HANDSHAKE_QUIC_TP_GOOGLE_KEY_UPDATE_NOT_YET_SUPPORTED=0x312B +TLS_HANDSHAKE_QUIC_TP_GOOGLE_QUIC_VERSION=0x4752 +TLS_HANDSHAKE_QUIC_TP_GOOGLE_INITIAL_RTT=0x3127 +TLS_HANDSHAKE_QUIC_TP_GOOGLE_SUPPORT_HANDSHAKE_DONE=0x312A +TLS_HANDSHAKE_QUIC_TP_GOOGLE_QUIC_PARAMS=0x4751 +TLS_HANDSHAKE_QUIC_TP_GOOGLE_CONNECTION_OPTIONS=0x3128 +TLS_HANDSHAKE_QUIC_TP_FACEBOOK_PARTIAL_RELIABILITY=0xFF00 +TLS_HANDSHAKE_QUIC_TP_VERSION_INFORMATION_DRAFT=0xff73db -- https://datatracker.ietf.org/doc/draft-ietf-quic-version-negotiation/13/ +TLS_HANDSHAKE_QUIC_TP_ADDRESS_DISCOVERY=0x9f81a176 -- https://tools.ietf.org/html/draft-ietf-quic-address-discovery-00 +TLS_HANDSHAKE_QUIC_TP_MIN_ACK_DELAY_DRAFT_V1=0xFF03DE1A -- https://tools.ietf.org/html/draft-ietf-quic-ack-frequency-01 +TLS_HANDSHAKE_QUIC_TP_MIN_ACK_DELAY_DRAFT05=0xff04de1a -- https://tools.ietf.org/html/draft-ietf-quic-ack-frequency-04 / draft-05 +TLS_HANDSHAKE_QUIC_TP_MIN_ACK_DELAY=0xff04de1b -- https://tools.ietf.org/html/draft-ietf-quic-ack-frequency-07 + +TLS_HANDSHAKE_QUIC_TP_NAMES = { + [TLS_HANDSHAKE_QUIC_TP_ORIGINAL_DESTINATION_CONNECTION_ID]="original_destination_connection_id", + [TLS_HANDSHAKE_QUIC_TP_MAX_IDLE_TIMEOUT]="max_idle_timeout", + [TLS_HANDSHAKE_QUIC_TP_STATELESS_RESET_TOKEN]="stateless_reset_token", + [TLS_HANDSHAKE_QUIC_TP_MAX_UDP_PAYLOAD_SIZE]="max_udp_payload_size", + [TLS_HANDSHAKE_QUIC_TP_INITIAL_MAX_DATA]="initial_max_data", + [TLS_HANDSHAKE_QUIC_TP_INITIAL_MAX_STREAM_DATA_BIDI_LOCAL]="initial_max_stream_data_bidi_local", + [TLS_HANDSHAKE_QUIC_TP_INITIAL_MAX_STREAM_DATA_BIDI_REMOTE]="initial_max_stream_data_bidi_remote", + [TLS_HANDSHAKE_QUIC_TP_INITIAL_MAX_STREAM_DATA_UNI]="initial_max_stream_data_uni", + [TLS_HANDSHAKE_QUIC_TP_INITIAL_MAX_STREAMS_UNI]="initial_max_streams_uni", + [TLS_HANDSHAKE_QUIC_TP_INITIAL_MAX_STREAMS_BIDI]="initial_max_streams_bidi", + [TLS_HANDSHAKE_QUIC_TP_ACK_DELAY_EXPONENT]="ack_delay_exponent", + [TLS_HANDSHAKE_QUIC_TP_MAX_ACK_DELAY]="max_ack_delay", + [TLS_HANDSHAKE_QUIC_TP_DISABLE_ACTIVE_MIGRATION]="disable_active_migration", + [TLS_HANDSHAKE_QUIC_TP_PREFERRED_ADDRESS]="preferred_address", + [TLS_HANDSHAKE_QUIC_TP_ACTIVE_CONNECTION_ID_LIMIT]="active_connection_id_limit", + [TLS_HANDSHAKE_QUIC_TP_INITIAL_SOURCE_CONNECTION_ID]="initial_source_connection_id", + [TLS_HANDSHAKE_QUIC_TP_RETRY_SOURCE_CONNECTION_ID]="retry_source_connection_id", + [TLS_HANDSHAKE_QUIC_TP_MAX_DATAGRAM_FRAME_SIZE]="max_datagram_frame_size", + [TLS_HANDSHAKE_QUIC_TP_CIBIR_ENCODING]="cibir_encoding", + [TLS_HANDSHAKE_QUIC_TP_LOSS_BITS]="loss_bits", + [TLS_HANDSHAKE_QUIC_TP_GREASE_QUIC_BIT]="grease_quic_bit", + [TLS_HANDSHAKE_QUIC_TP_ENABLE_TIME_STAMP]="enable_time_stamp", + [TLS_HANDSHAKE_QUIC_TP_ENABLE_TIME_STAMP_V2]="enable_time_stamp_v2", + [TLS_HANDSHAKE_QUIC_TP_VERSION_INFORMATION]="version_information", + [TLS_HANDSHAKE_QUIC_TP_VERSION_INFORMATION_DRAFT]="version_information_draft", + [TLS_HANDSHAKE_QUIC_TP_MIN_ACK_DELAY_OLD]="min_ack_delay", + [TLS_HANDSHAKE_QUIC_TP_GOOGLE_USER_AGENT]="google_user_agent", + [TLS_HANDSHAKE_QUIC_TP_GOOGLE_KEY_UPDATE_NOT_YET_SUPPORTED]="google_key_update_not_yet_supported", + [TLS_HANDSHAKE_QUIC_TP_GOOGLE_QUIC_VERSION]="google_quic_version", + [TLS_HANDSHAKE_QUIC_TP_GOOGLE_INITIAL_RTT]="google_initial_rtt", + [TLS_HANDSHAKE_QUIC_TP_GOOGLE_SUPPORT_HANDSHAKE_DONE]="google_support_handshake_done", + [TLS_HANDSHAKE_QUIC_TP_GOOGLE_QUIC_PARAMS]="google_quic_params", + [TLS_HANDSHAKE_QUIC_TP_GOOGLE_CONNECTION_OPTIONS]="google_connection_options", + [TLS_HANDSHAKE_QUIC_TP_FACEBOOK_PARTIAL_RELIABILITY]="facebook_partial_reliability", + [TLS_HANDSHAKE_QUIC_TP_ADDRESS_DISCOVERY]="address_discovery", + [TLS_HANDSHAKE_QUIC_TP_MIN_ACK_DELAY_DRAFT_V1]="min_ack_delay (draft-01)", + [TLS_HANDSHAKE_QUIC_TP_MIN_ACK_DELAY_DRAFT05]="min_ack_delay (draft-05)", + [TLS_HANDSHAKE_QUIC_TP_MIN_ACK_DELAY]="min_ack_delay" +} + + +-- tls record length without header +function tls_record_data_len(tls, offset) + if not offset then offset=1 end + return u16(tls, offset+3) +end +-- true if tls has enough data to store the whole tls record +function tls_record_full(tls, offset) + if not offset then offset=1 end + return tls_record_data_len(tls, offset) <= (#tls-offset+1-5) +end +function tls_record_type(tls, offset) + if not offset then offset=1 end + return u8(tls, offset) +end +function is_tls_record(tls, offset, ctype, partialOK) + if not tls then return false end + if not offset then offset=1 end + + if (#tls-offset+1)<5 or (ctype and ctype~=tls_record_type(tls, offset)) then return false end + local f2 = u16(tls, offset+1) + return f2>=TLS_VER_SSL30 and f2<=TLS_VER_TLS12 and (partialOK or tls_record_full(tls, offset)) + +end +-- tls handshake record length without header +function tls_handshake_data_len(tls, offset) + if not offset then offset=1 end + return u24(tls, offset+1) +end +-- tls handshake record length with header +function tls_handshake_len(tls, offset) + return tls_handshake_data_len(tls, offset) + 4 +end +-- true if tls has enough data to store the whole handshake +function tls_handshake_full(tls, offset) + if not offset then offset=1 end + return tls_handshake_data_len(tls, offset) <= (#tls-offset+1-4) +end +function tls_handshake_type(tls, offset) + return u8(tls,offset) +end +function is_tls_handshake_type_hello(tls, offset) + if not tls then return false end + local typ = tls_handshake_type(tls, offset) + return typ == TLS_HANDSHAKE_TYPE_CLIENT or typ == TLS_HANDSHAKE_TYPE_SERVER +end +function is_tls_handshake(tls, offset, htype, partialOK) + if not tls then return false end + if not offset then offset=1 end + + if (#tls-offset+1)<4 then return false end + local typ = tls_handshake_type(tls,offset) + -- requested handshake type + if htype and htype~=typ then return false end + -- valid handshake type + if not TLS_HANDSHAKE_TYPE_NAMES[typ] then return false end + if typ==TLS_HANDSHAKE_TYPE_CLIENT or typ==TLS_HANDSHAKE_TYPE_SERVER then + -- valid tls versions + if (#tls-offset+1)<6 then return false end + local f2 = u16(tls,offset+4) + if f2TLS_VER_TLS12 then return false end + end + -- length fits to data buffer + return partialOK or tls_handshake_full(tls, offset) +end +function is_tls_hello(tls, offset, partialOK) + return is_tls_handshake(tls, offset, TLS_HANDSHAKE_TYPE_CLIENT, partialOK) or is_tls_handshake(tls, offset, TLS_HANDSHAKE_TYPE_SERVER, partialOK) +end +-- quic-style tvb parse +function quic_tvb(data, offset) + if not offset then offset=1 end + if offset>#data then return end + local size = bitrshift(u8(data,offset), 6) + if size==0 then + return u8(data,offset), 1 + elseif size==1 then + if (offset+1)>#data then return end + return bitand(u16(data,offset),0x3FFF), 2 + elseif size==2 then + if (offset+3)>#data then return end + return bitand(u32(data,offset),0x3FFFFFFF), 4 + elseif size==3 then + if (offset+7)>#data then return end + -- only lua 5.3+ can handle this. others can't store 64-bit integers + return bitand(u32(data,offset),0x3FFFFFFF) * 0x100000000 + u32(data,offset+4), 8 + end +end +-- quic-style tvb reconstruct +function bquic_tvb(v) + if v<0x40 then + return bu8(v) + elseif v<0x4000 then + return bu16(v + 0x4000) + elseif v<0x40000000 then + return bu32(v + 0x80000000) + elseif v<0x4000000000000000 then + -- only lua 5.3+ can handle 64-bit int ! + return bu32(divint(v, 0x100000000) + 0xC0000000) .. bu32(v % 0x100000000) + end +end + + +-- dissect tls extension +-- create dis tables inside ext for supported exts. leave 'data' as is for unsupported exts +function tls_dissect_ext(ext) + local function len16_header() + local left, len, off + left = #ext.data + if left<2 then return end + len = u16(ext.data) + left = left - 2 + off = 3 + if len>left then + return + else + left = len + end + return left, off + end + local function len8_header() + local left, len, off + left = #ext.data + if left<1 then return end + len = u8(ext.data) + left = left - 1 + off = 2 + if len>left then + return + else + left = len + end + return left, off + end + + local dis={} + local off, len, left + + ext.dis = nil + + if ext.type==TLS_EXT_SERVER_NAME then + left, off = len16_header() + if not left then return end + dis.list = {} + while left>=3 do + len = u16(ext.data, off+1) + if (len+3)>left then return end + dis.list[#dis.list+1] = { type = u8(ext.data, off), name = string.sub(ext.data, off+3, off+3+len-1) } + left = left - 3 - len + off = off + 3 + len + end + elseif ext.type==TLS_EXT_ALPN then + left, off = len16_header() + if not left then return end + dis.list = {} + while left>=1 do + len = u8(ext.data, off) + if (len+1)>left then return end + dis.list[#dis.list+1] = string.sub(ext.data, off+1, off+1+len-1) + left = left - 1 - len + off = off + 1 + len + end + elseif ext.type==TLS_EXT_SUPPORTED_VERSIONS or ext.type==TLS_EXT_COMPRESS_CERTIFICATE then + left, off = len8_header() + if not left then return end + dis.list = {} + for i=1,left/2 do + dis.list[#dis.list+1] = u16(ext.data,off) + left = left - 2 + off = off + 2 + end + elseif ext.type==TLS_EXT_SIGNATURE_ALGORITHMS or ext.type==TLS_EXT_DELEGATED_CREDENTIALS or ext.type==TLS_EXT_SUPPORTED_GROUPS then + left, off = len16_header() + if not left then return end + dis.list = {} + for i=1,left/2 do + dis.list[#dis.list+1] = u16(ext.data,off) + left = left - 2 + off = off + 2 + end + elseif ext.type==TLS_EXT_EC_POINT_FORMATS or ext.type==TLS_EXT_PSK_KEY_EXCHANGE_MODES then + left, off = len8_header() + if not left then return end + dis.list = {} + for i=1,left do + dis.list[#dis.list+1] = u8(ext.data,off) + left = left - 1 + off = off + 1 + end + elseif ext.type==TLS_EXT_KEY_SHARE then + left, off = len16_header() + if not left then return end + dis.list = {} + while left>=1 do + len = u16(ext.data, off + 2) + if (len+4)>left then return end + dis.list[#dis.list+1] = { group = u16(ext.data, off) , kex = string.sub(ext.data, off+4, off+4+len-1) } + left = left - 4 - len + off = off + 4 + len + end + elseif ext.type==TLS_EXT_QUIC_TRANSPORT_PARAMETERS then + left, off = len16_header() + if not left then return end + dis.list = {} + while left>=4 do + len = u16(ext.data, off + 2) + if (len+4)>left then return end + local typ = u16(ext.data, off) + dis.list[#dis.list+1] = { type = typ, name = TLS_HANDSHAKE_QUIC_TP_NAMES[typ], data = string.sub(ext.data, off+4, off+4+len-1) } + left = left - 4 - len + off = off + 4 + len + end + elseif ext.type==TLS_EXT_QUIC_TRANSPORT_PARAMETERS_V1 then + left, off = #ext.data, 1 + dis.list = {} + local typ, size + while left>=2 do + typ, size = quic_tvb(ext.data, off) + if not typ then return end + off = off + size + left = left - size + len, size = quic_tvb(ext.data, off) + if not len then return end + off = off + size + left = left - size + if len > left then return end + dis.list[#dis.list+1] = { type = typ, name = TLS_HANDSHAKE_QUIC_TP_NAMES[typ], data = string.sub(ext.data, off, off+len-1) } + left = left - len + off = off + len + end + else + dis = nil + end + + ext.dis = dis +end + +-- dissect client/server hello. leave 'data' as is for others +function tls_dissect_handshake(handshake, partialOK) + if is_tls_hello(handshake.data, 1, partialOK) then + local hlen = tls_handshake_len(handshake.data, 1) + if hlen > #handshake.data then + if not partialOK then return false end + hlen = #handshake.data + end + local typ = tls_handshake_type(handshake.data, 1) + handshake.dis = { type = typ , ver = u16(handshake.data, 5), name = tostring(TLS_HANDSHAKE_TYPE_NAMES[typ]) } + + -- random + if hlen<36 then return partialOK end + handshake.dis.random = string.sub(handshake.data, 7, 38) + + -- session_id + if hlen<39 then return partialOK end + local len = u8(handshake.data, 39) + local left = hlen-39-len + if left<0 then return partialOK end + handshake.dis.session_id = string.sub(handshake.data, 40, 40+len-1) + local off = 40+len + + -- cipher suite(s) + if left<2 then return partialOK end + if handshake.dis.type==TLS_HANDSHAKE_TYPE_CLIENT then + -- client hello - array + len = u16(handshake.data, off) + if left<(2+len) then return partialOK end + handshake.dis.cipher_suites={} + for i=1,(len/2) do + handshake.dis.cipher_suites[i] = u16(handshake.data, off + i*2) + end + off = off + 2 + len + left = left - 2 - len + else + -- server hello - single + handshake.dis.cipher_suite = u16(handshake.data, off) + off = off + 2 + left = left - 2 + end + + -- compression method(s) + if left<1 then return partialOK end + if handshake.dis.type==1 then + -- client hello - array + len = u8(handshake.data, off) + if left<(1+len) then return partialOK end + handshake.dis.compression_methods={} + for i=1,len do + handshake.dis.compression_methods[i] = u8(handshake.data, off + i) + end + off = off + 1 + len + left = left - 1 - len + else + -- server hello - single + handshake.dis.compression_method = u8(handshake.data, off) + off = off + 1 + left = left - 1 + end + + -- tls extensions + if left<2 then return partialOK end + local extlen = u16(handshake.data, off) + if left<(2+extlen) and not partialOK then return end + off = off + 2 + left = left - 2 + if left>extlen then left=extlen end + + handshake.dis.ext = {} + while left>=4 do + len = u16(handshake.data, off + 2) + if len>(left-4) then + if partialOK then + break + else + return + end + end + local typ = u16(handshake.data, off) + handshake.dis.ext[#handshake.dis.ext+1] = { type = typ, name = tostring(TLS_HELLO_EXT_NAMES[typ]), data = string.sub(handshake.data, off+4, off+4+len-1) } + tls_dissect_ext(handshake.dis.ext[#handshake.dis.ext]) + left = left - 4 - len + off = off + 4 + len + end + + return true + end + return false +end + +-- convert tls blob tls dissect +-- auto detects record layer. can work with pure handshake message +function tls_dissect(tls, offset, partialOK) + if not offset then offset=1 end + + local tdis = {} + local off = offset + local encrypted = false + while is_tls_record(tls, off, nil, partialOK) do + if not tdis.rec then tdis.rec = {} end + local len = tls_record_data_len(tls, off) + local typ = tls_record_type(tls, off) + tdis.rec[#tdis.rec+1] = { type = typ, name = tostring(TLS_RECORD_TYPE_NAMES[typ]), len = len, ver = u16(tls, off+1), encrypted = encrypted, data = string.sub(tls, off+5, off+5+len-1) } + if typ==TLS_RECORD_TYPE_CHANGE_CIPHER_SPEC then + encrypted = true + elseif typ==TLS_RECORD_TYPE_HANDSHAKE and not encrypted then + -- need 4 bytes for handshake type and 24-bit length + if (#tls-off+1)<9 then + if not partialOK then return end + break + end + local htyp = tls_handshake_type(tls, off + 5) + tdis.rec[#tdis.rec].htype = htyp + if not tdis.handshake then tdis.handshake = {} end + local hlen = tls_handshake_len(tls, off + 5) + tdis.handshake[htyp] = { type = htyp, name = TLS_HANDSHAKE_TYPE_NAMES[htyp], data = "" } + -- reasm handshake if required + while true do + tdis.handshake[htyp].data = tdis.handshake[htyp].data .. string.sub(tls, off + 5, off + 5 + len - 1) + if #tdis.handshake[htyp].data >= hlen then + -- reasm complete + break + end + -- next record + if not is_tls_record(tls, off + 5 + len, nil, partialOK) or tls_record_type(tls, off + 5 + len) ~= typ then + if not partialOK then return end + goto endrec + end + off = off + 5 + len + len = tls_record_data_len(tls, off) + tdis.rec[#tdis.rec+1] = { type = typ, htype = htyp, len=len, ver = u16(tls, off+1), encrypted = false, not_first = true, name = tostring(TLS_RECORD_TYPE_NAMES[typ]), data = string.sub(tls, off+5, off+5+len-1) } + end + end + -- next record + off = off + 5 + len + end +::endrec:: + + if tdis.handshake then + for htyp, handshake in pairs(tdis.handshake) do + if (handshake.type == TLS_HANDSHAKE_TYPE_CLIENT or handshake.type == TLS_HANDSHAKE_TYPE_SERVER) then + tls_dissect_handshake(handshake, partialOK) + end + end + elseif not tdis.rec and is_tls_handshake(tls, offset, nil, partialOK) then + local htyp = tls_handshake_type(tls, offset) + tdis.handshake = { [htyp] = { type = htyp, name = TLS_HANDSHAKE_TYPE_NAMES[htyp], data = string.sub(tls, offset, #tls) } } + tls_dissect_handshake(tdis.handshake[htyp], partialOK) + end + + return (tdis.rec or tdis.handshake) and tdis or nil +end + + +-- reconstruct tls extension dissects +-- unsupported ext types must have their 'data' filled +function tls_reconstruct_ext(ext) + if ext.dis then + if ext.type==TLS_EXT_SERVER_NAME then + ext.data = barray(ext.dis.list, function(a) return bu8(a.type or 0) .. bu16(#a.name) .. a.name end) + ext.data = bu16(#ext.data) .. ext.data + elseif ext.type==TLS_EXT_ALPN then + ext.data = barray(ext.dis.list, function(a) return bu8(#a) .. a end) + ext.data = bu16(#ext.data) .. ext.data + elseif ext.type==TLS_EXT_SUPPORTED_VERSIONS or ext.type==TLS_EXT_COMPRESS_CERTIFICATE then + ext.data = barray(ext.dis.list, bu16) + ext.data = bu8(#ext.data) .. ext.data + elseif ext.type==TLS_EXT_SIGNATURE_ALGORITHMS or ext.type==TLS_EXT_DELEGATED_CREDENTIALS or ext.type==TLS_EXT_SUPPORTED_GROUPS then + ext.data = barray(ext.dis.list, bu16) + ext.data = bu16(#ext.data) .. ext.data + elseif ext.type==TLS_EXT_EC_POINT_FORMATS or ext.type==TLS_EXT_PSK_KEY_EXCHANGE_MODES then + ext.data = barray(ext.dis.list, bu8) + ext.data = bu8(#ext.data) .. ext.data + elseif ext.type==TLS_EXT_KEY_SHARE then + ext.data = barray(ext.dis.list, function(a) return bu16(a.group) .. bu16(#a.kex) .. a.kex end) + ext.data = bu16(#ext.data) .. ext.data + elseif ext.type==TLS_EXT_QUIC_TRANSPORT_PARAMETERS then + ext.data = barray(ext.dis.list, function(a) return bu16(a.type) .. bu16(#a.data) .. a.data end) + ext.data = bu16(#ext.data) .. ext.data + elseif ext.type==TLS_EXT_QUIC_TRANSPORT_PARAMETERS_V1 then + ext.data = barray(ext.dis.list, function(a) return bquic_tvb(a.type) .. bquic_tvb(#a.data) .. a.data end) + else + ext.data=nil + end + end + + return type(ext.data)=="string" +end + +-- reconstruct handshake dissect to raw string +-- deeper dissects are supported for client/server hello, others must have 'data' field +function tls_reconstruct_handshake(handshake) + if handshake.dis then + if handshake.dis.type == TLS_HANDSHAKE_TYPE_CLIENT or handshake.dis.type == TLS_HANDSHAKE_TYPE_SERVER then + handshake.data = nil + local header = + bu16(handshake.dis.ver or TLS_VER_TLS12) .. + ((handshake.dis.random and #handshake.dis.random==32) and handshake.dis.random or brandom(32)) .. + bu8(handshake.dis.session_id and #handshake.dis.session_id or 0) .. + (handshake.dis.session_id or "") + if handshake.dis.type == TLS_HANDSHAKE_TYPE_CLIENT then + header = header .. + bu16(handshake.dis.cipher_suites and 2*#handshake.dis.cipher_suites or 0) .. + (handshake.dis.cipher_suites and barray(handshake.dis.cipher_suites, bu16) or "") .. + bu8(handshake.dis.compression_methods and #handshake.dis.compression_methods or 0) .. + (handshake.dis.compression_methods and barray(handshake.dis.compression_methods, bu8) or "") + else + header = header .. + bu16(handshake.dis.cipher_suite) .. + bu8(handshake.dis.compression_method) + end + local exts="" + if handshake.dis.ext then + for i=1,#handshake.dis.ext do + if not tls_reconstruct_ext(handshake.dis.ext[i]) then + return nil + end + exts = exts .. bu16(handshake.dis.ext[i].type) .. bu16(#handshake.dis.ext[i].data) .. handshake.dis.ext[i].data + end + end + handshake.data = bu8(handshake.type) .. bu24(#header + 2 + #exts) .. header .. bu16(#exts) .. exts + end + end + + return type(handshake.data)=="string" +end + +-- recconstruct tls dissect to raw tls +-- supports tls records with optional handshake dissects +-- supports single handshake without tls records +function tls_reconstruct(tdis) + if tdis.handshake then + for htyp, handshake in pairs(tdis.handshake) do + if not tls_reconstruct_handshake(handshake) then return nil end + end + end + + local tls + if tdis.rec then + -- need to follow in order + local i=1 + while i <= #tdis.rec do + local rec = tdis.rec[i] + if rec.type==TLS_RECORD_TYPE_HANDSHAKE and not rec.encrypted and rec.htype and tdis.handshake and tdis.handshake[rec.htype] and tdis.handshake[rec.htype].data then + rec.data = nil + + local data = tdis.handshake[rec.htype].data + local htyp = rec.htype + local j = i + 1 + while j <= #tdis.rec and tdis.rec[j].type==TLS_RECORD_TYPE_HANDSHAKE and not tdis.rec[j].encrypted and tdis.rec[j].htype == htyp do + j = j + 1 + end + j = j - 1 + local off = 1 + for k=i,j do + local chunk_size = #data-off+1 + -- last chunk takes all remaining data + if k~=j then + chunk_size = (chunk_size < tdis.rec[k].len) and chunk_size or tdis.rec[k].len + end + tdis.rec[k].data = string.sub(data, off, off + chunk_size - 1) + tdis.rec[k].len = chunk_size + off = off + chunk_size + end + i = j + 1 + else + i = i + 1 + end + if not rec.data then return nil end + end + tls = barray(tdis.rec, function(a) return (#a.data > 0) and (bu8(a.type) .. bu16(a.ver) .. bu16(#a.data) .. a.data) or "" end) + elseif tdis.handshake and #tdis.handshake==1 then + -- without record layer + for k,handshake in pairs(tdis.handshake) do + tls = handshake.data + break + end + end + + return tls +end diff --git a/blockcheck/zapret2/lua/zapret-obfs.lua b/blockcheck/zapret2/lua/zapret-obfs.lua new file mode 100644 index 0000000..1d39cea --- /dev/null +++ b/blockcheck/zapret2/lua/zapret-obfs.lua @@ -0,0 +1,487 @@ +-- test case : --in-range=a --out-range=a --lua-desync=wgobfs:secret=mycoolpassword +-- encrypt standard wireguard messages - initiation, response, cookie - and change udp packet size +-- do not encrypt data messages and keepalives +-- wgobfs adds maximum of 30+padmax bytes to udp size +-- reduce MTU of wireguard interface to avoid ip fragmentation ! +-- without knowing the secret encrypted packets should be crypto strong white noise with no signature +-- arg : secret - shared secret. any string. must be the same on both peers +-- arg : padmin - min random garbage bytes. 0 by default +-- arg : padmax - max random garbage bytes. 16 by default +-- NOTE : this function does not depend on zapret-lib.lua and should not be run under orchestrator (uses direct instance_cutoff) +function wgobfs(ctx, desync) + if not desync.dis.udp then + instance_cutoff_shim(ctx, desync) + return + end + + local padmin = desync.arg.padmin and tonumber(desync.arg.padmin) or 0 + local padmax = desync.arg.padmax and tonumber(desync.arg.padmax) or 16 + local function genkey() + -- cache key in a global var bound to instance name + local key_cache_name = desync.func_instance.."_key" + local key = _G[key_cache_name] + if not key then + key = hkdf("sha256", "wgobfs_salt", desync.arg.secret, nil, 16) + _G[key_cache_name] = key + end + return key + end + local function maybe_encrypted_payload(payload) + for k,plsize in pairs({2+12+16+148, 2+12+16+92, 2+12+16+64}) do + if #payload>=(plsize+padmin) and #payload<=(plsize+padmax) then + return true + end + end + return false + end + local function wg_payload_from_size(payload) + if #payload==148 then return "wireguard_initiation" + elseif #payload==92 then return "wireguard_response" + elseif #payload==64 then return "wireguard_cookie" + else return nil + end + end + + if not desync.arg.secret or #desync.arg.secret==0 then + error("wgobfs: secret required") + end + if padmin>padmax then + error("wgobfs: padmin>padmax") + end + if (desync.l7payload=="wireguard_initiation" or desync.l7payload=="wireguard_response" or desync.l7payload=="wireguard_cookie") and #desync.dis.payload<65506 then + DLOG("wgobfs: encrypting '"..desync.l7payload.."'. size "..#desync.dis.payload) + local key = genkey() + -- in aes-gcm every message require it's own crypto secure random iv + -- encrypting more than one message with the same iv is considered catastrophic failure + -- iv must be sent with encrypted message + local iv = bcryptorandom(12) + local encrypted, atag = aes_gcm(true, key, iv, bu16(#desync.dis.payload)..desync.dis.payload..brandom(math.random(padmin,padmax)), nil) + desync.dis.payload = iv..atag..encrypted + return VERDICT_MODIFY + end + + if desync.l7payload=="unknown" and maybe_encrypted_payload(desync.dis.payload) then + local key = genkey() + local iv = string.sub(desync.dis.payload,1,12) + local atag = string.sub(desync.dis.payload,13,28) + local decrypted, atag2 = aes_gcm(false, key, iv, string.sub(desync.dis.payload,29)) + if atag==atag2 then + local plen = u16(decrypted) + if plen>(#decrypted-2) then + DLOG("wgobfs: bad decrypted payload data") + else + desync.dis.payload = string.sub(decrypted, 3, 3+plen-1) + if b_debug then DLOG("wgobfs: decrypted '"..(wg_payload_from_size(desync.dis.payload) or "unknown").."' message. size "..plen) end + return VERDICT_MODIFY + end + else + DLOG("wgobfs: decrypt auth tag mismatch") + end + end +end + +-- test case : +-- endpoint1: +-- --filter-icmp=0,8,128,129 --filter-ipp=193,198,209,250 --filter-tcp=* --filter-udp=* --in-range=a --lua-desync=ippxor:ippxor=192:dataxor=0xABCD +-- nft add rule inet ztest pre meta mark and 0x40000000 == 0 meta l4proto {193, 198, 209, 250} queue num 200 bypass +-- nft add rule inet ztest post meta mark and 0x40000000 == 0 tcp dport "{5001}" queue num 200 bypass +-- nft add rule inet ztest post meta mark and 0x40000000 == 0 udp dport "{5001}" queue num 200 bypass +-- iperf -i 1 -c endpoint2 +-- endpoint2: +-- --filter-icmp=0,8,128,129 --filter-ipp=193,198,209,250 --filter-tcp=* --filter-udp=* --in-range=a --lua-desync=ippxor:ippxor=192:dataxor=0xABCD --server +-- nft add rule inet ztest pre meta mark and 0x40000000 == 0 meta l4proto {193, 198, 209, 250} queue num 200 bypass +-- nft add rule inet ztest post meta mark and 0x40000000 == 0 tcp sport "{5001}" queue num 200 bypass +-- nft add rule inet ztest post meta mark and 0x40000000 == 0 udp sport "{5001}" queue num 200 bypass +-- iperf -s +-- xor ip protocol number and optionally xor tcp,udp,icmp payload with supplied blob pattern +-- arg : ippxor - value to xor ip protocol number +-- arg : dataxor - blob to xor tcp, udp or icmp payload +-- arg : rebuild - always reconstruct desync.dis if after ippxor packet becomes tcp,udp or icmp +function ippxor(ctx, desync) + local dataxor + local function need_dxor(dis) + return dataxor and dis.payload and #dis.payload>0 and (dis.tcp or dis.udp or dis.icmp) + end + local function dxor(dis) + dis.payload = bxor(dis.payload, pattern(dataxor,1,#dis.payload)) + end + + if not desync.arg.ippxor then + error("ippxor: ippxor value required") + end + local ippxor = tonumber(desync.arg.ippxor) + if ippxor<0 or ippxor>0xFF then + error("ippxor: invalid ippxor value. should be 0..255") + end + if desync.arg.dataxor then + dataxor = blob(desync,desync.arg.dataxor) + if #dataxor==0 then + error("ippxor: empty dataxor value") + end + end + + local bdxor = need_dxor(desync.dis) + if bdxor then + DLOG("ippxor: dataxor size="..#desync.dis.payload) + dxor(desync.dis) + end + + local l3_from = ip_proto_l3(desync.dis) + local l3_to = bitxor(l3_from, ippxor) + DLOG("ippxor: "..l3_from.." => "..l3_to) + fix_ip_proto(desync.dis, l3_to) + + if (not bdxor and dataxor or desync.arg.rebuild) and + (l3_to==IPPROTO_TCP and not desync.dis.tcp or + l3_to==IPPROTO_UDP and not desync.dis.udp or + l3_to==IPPROTO_ICMP and not (desync.dis.ip and desync.dis.icmp) or + l3_to==IPPROTO_ICMPV6 and not (desync.dis.ip6 and desync.dis.icmp)) + then + DLOG("ippxor: packet rebuild") + local raw_ip = reconstruct_dissect(desync.dis, {ip6_preserve_next=true}) + local dis = dissect(raw_ip) + if not dis.ip and not dis.ip6 then + DLOG_ERR("ippxor: could not rebuild packet") + return + end + desync.dis = dis + end + + if not bdxor and need_dxor(desync.dis) then + DLOG("ippxor: dataxor size="..#desync.dis.payload) + dxor(desync.dis) + end + + return VERDICT_MODIFY + VERDICT_PRESERVE_NEXT +end + +-- test case: +-- endpoint1: +-- --in-range=a --lua-desync=udp2icmp +-- nft add rule inet ztest post meta mark and 0x40000000 == 0 udp dport 12345 queue num 200 bypass +-- nft add rule inet ztest pre meta mark and 0x40000000 == 0 meta l4proto "{icmp,icmpv6}" queue num 200 bypass +-- endpoint2: +-- --in-range=a --lua-desync=udp2icmp --server +-- nft add rule inet ztest post meta mark and 0x40000000 == 0 udp sport 12345 queue num 200 bypass +-- nft add rule inet ztest pre meta mark and 0x40000000 == 0 meta l4proto "{icmp,icmpv6}" queue num 200 bypass +-- packs udp datagram to icmp message without changing packet size +-- function keeps icmp identifier as (sport xor dport) to help traverse NAT (it won't help if NAT changes id) +-- one end must be in server mode, another - in client mode +-- arg : ctype - client icmp type +-- arg : ccode - client icmp code +-- arg : stype - server icmp type +-- arg : scode - server icmp code +-- arg : dataxor - blob to xor udp payload +-- arg : server=[0|1] - override server mode. by default use "--server" nfqws2 parameter +function udp2icmp(ctx, desync) + local dataxor + local bserver + if desync.arg.server then + bserver = desync.arg.server~="0" + else + bserver = b_server + end + + local function one_byte_arg(name) + if desync.arg[name] then + local v = tonumber(desync.arg[name]) + if v<0 or v>0xFF then + error("udp2icmp: invalid type or code value. should be 0..255") + end + return v + end + end + local function ictype(send) + local ctype = one_byte_arg("ctype") + local stype = one_byte_arg("stype") + if logical_xor(ctype,stype) then + error("udp2icmp: ctype and stype must be both set or not set") + end + if not ctype then + ctype = desync.dis.ip6 and ICMP6_ECHO_REQUEST or ICMP_ECHO + stype = desync.dis.ip6 and ICMP6_ECHO_REPLY or ICMP_ECHOREPLY + end + return logical_xor(send,bserver) and ctype or stype + end + local function iccode(send) + local ccode = one_byte_arg("ccode") + local scode = one_byte_arg("scode") + if logical_xor(ccode,scode) then + error("udp2icmp: ccode and scode must be both set or not set") + end + if not ccode then + ccode = 0 + scode = 0 + end + return logical_xor(send,bserver) and ccode or scode + end + local function plxor() + if dataxor then + DLOG("udp2icmp: dataxor") + desync.dis.payload = bxor(desync.dis.payload, pattern(dataxor,1,#desync.dis.payload)) + end + end + + if desync.arg.dataxor then + dataxor = blob(desync,desync.arg.dataxor) + if #dataxor==0 then + error("udp2icmp: empty dataxor value") + end + end + + if desync.dis.udp then + plxor() + if b_debug then -- save some cpu + DLOG("udp2icmp: udp => icmp sport="..desync.dis.udp.uh_sport.." dport="..desync.dis.udp.uh_dport.." size="..#desync.dis.payload) + end + desync.dis.icmp = { + icmp_type = ictype(true), + icmp_code = iccode(true), + icmp_data = u32( + bu16(bitxor(desync.dis.udp.uh_sport,desync.dis.udp.uh_dport)).. + (bserver and bu16(desync.dis.udp.uh_sport) or bu16(desync.dis.udp.uh_dport))) + } + desync.dis.udp = nil + fix_ip_proto(desync.dis) + return VERDICT_MODIFY + elseif desync.dis.icmp and desync.dis.icmp.icmp_type==ictype(false) and desync.dis.icmp.icmp_code==iccode(false) then + local pl = bitand(desync.dis.icmp.icmp_data,0xFFFF) + local pm = bitxor(bitrshift(desync.dis.icmp.icmp_data,16),pl) + desync.dis.udp = { + uh_sport = bserver and pm or pl, + uh_dport = bserver and pl or pm, + uh_ulen = UDP_BASE_LEN + #desync.dis.payload + } + desync.dis.icmp = nil + fix_ip_proto(desync.dis) + if b_debug then -- save some cpu + DLOG("udp2icmp: icmp => udp sport="..desync.dis.udp.uh_sport.." dport="..desync.dis.udp.uh_dport.." size="..#desync.dis.payload) + end + plxor() + return VERDICT_MODIFY + end +end + +--[[ + test case : + both: + nft create table inet ztest + nft add chain inet ztest post "{type filter hook output priority mangle;}" + nft add chain inet ztest pre "{type filter hook input priority mangle;}" + nft add chain inet ztest predefrag "{type filter hook output priority -401;}" + nft add rule inet ztest predefrag "mark & 0x40000000 != 0x00000000 notrack" + client: + --in-range=" administratively prohibited + x2 = 1 + end + + local kind + if desync.arg.kind then + kind = tonumber(desync.arg.kind) + -- do not allow noop and end + if kind<2 or kind>0xFF then + error("synhide: invalid kind value") + end + else + kind = 172 -- accurate ecn + end + + local opt + if desync.arg.opt then + opt = parse_hex(desync.arg.opt) + if not opt then + error("synhide: invalid opt value") + end + else + opt="" + end + + + local xorseq + if desync.arg.xorseq then + xorseq = parse_hex(desync.arg.xorseq) + if not xorseq or #xorseq~=4 then + error("synhide: invalid xorseq value") + end + xorseq = u32(xorseq) + end + + local function make_magic(client) + local m + -- use client seq0 + m = client and desync.dis.tcp.th_seq or desync.dis.tcp.th_ack-1 + m = bitxor(bitrshift(m,16),bitand(m,0xFFFF)) + if m==0 then + -- 0 is not acceptable + m = client and desync.dis.tcp.th_dport or desync.dis.tcp.th_sport + end + return m + end + local function xorhdr() + if xorseq then + desync.dis.tcp.th_ack = bitxor(desync.dis.tcp.th_ack, xorseq) + desync.dis.tcp.th_seq = bitxor(desync.dis.tcp.th_seq, xorseq) + end + end + local function ver_magic(client) + local r = false + xorhdr() + if magic=="tsecr" then + r = make_magic(client)==u16(string.sub(desync.dis.tcp.options[tsidx].data,7)) + elseif magic=="x2" then + r = bitand(desync.dis.tcp.th_x2, x2)~=0 + elseif magic=="urp" then + r = desync.dis.tcp.th_urp == make_magic(client) + elseif magic=="opt" then + local idx = find_tcp_option(desync.dis.tcp.options, kind) + r = idx and desync.dis.tcp.options[idx].data == opt + end + xorhdr() + return r + end + local function set_magic(client) + if magic=="tsecr" then + desync.dis.tcp.options[tsidx].data = string.sub(desync.dis.tcp.options[tsidx].data,1,6) .. bu16(make_magic(client)) + elseif magic=="x2" then + desync.dis.tcp.th_x2 = bitor(desync.dis.tcp.th_x2, x2) + elseif magic=="urp" then + desync.dis.tcp.th_urp = make_magic(client) + elseif magic=="opt" then + table.insert(desync.dis.tcp.options, {kind=kind, data=opt}) + end + xorhdr() + end + local function clear_magic() + xorhdr() + if magic=="tsecr" then + desync.dis.tcp.options[tsidx].data = string.sub(desync.dis.tcp.options[tsidx].data,1,6) .. "\x00\x00" + elseif magic=="x2" then + desync.dis.tcp.th_x2 = bitand(desync.dis.tcp.th_x2,bitnot(x2)) + elseif magic=="urp" then + desync.dis.tcp.th_urp = 0 + elseif magic=="opt" then + local idx = find_tcp_option(desync.dis.tcp.options, kind) + if idx then + table.remove(desync.dis.tcp.options, idx) + end + end + desync.track = conntrack_feed(desync.dis) + end + + if fl==TH_SYN then + -- client sent + local ttl = tonumber(desync.dis.ip and desync.arg.ghost or desync.arg.ghost6) + if ttl then + DLOG("synhide: punch NAT hole with ttl="..ttl) + local dis = deepcopy(desync.dis) + if dis.ip then + dis.ip.ip_ttl = ttl + elseif dis.ip6 then + dis.ip6.ip6_hlim = ttl + end + if not rawsend_dissect(dis, rawsend_opts_base(desync)) then + instance_cutoff_shim(ctx, desync) -- failed + return + end + end + DLOG("synhide: client sends SYN. remove SYN") + set_magic(true) + -- remove SYN, set ACK + desync.dis.tcp.th_flags = bitor(bitand(desync.dis.tcp.th_flags, bitnot(TH_SYN)), TH_ACK) + if not desync.arg.synack then + DLOG("synhide: mission complete") + instance_cutoff_shim(ctx, desync) + end + return VERDICT_MODIFY + elseif fl==(TH_SYN+TH_ACK) then + -- server sent + if desync.arg.synack then + DLOG("synhide: server sends SYN+ACK. remove SYN, set RST") + set_magic(false) + desync.dis.tcp.th_flags = bitor(bitand(desync.dis.tcp.th_flags, bitnot(TH_SYN)), TH_RST) + return VERDICT_MODIFY + else + DLOG("synhide: server sends SYN+ACK. do not remove SYN because 'synack' arg is not set.") + instance_cutoff_shim(ctx, desync) + return -- do nothing + end + elseif fl==TH_ACK and ver_magic(true) then + DLOG("synhide: server received magic. restore SYN") + desync.dis.tcp.th_flags = bitor(bitand(desync.dis.tcp.th_flags, bitnot(TH_ACK)), TH_SYN) + clear_magic() + if not desync.arg.synack then + DLOG("synhide: mission complete") + instance_cutoff_shim(ctx, desync) + end + return VERDICT_MODIFY + elseif fl==(TH_ACK+TH_RST) and ver_magic(false) then + DLOG("synhide: client received magic. restore SYN, remove RST") + desync.dis.tcp.th_flags = bitor(bitand(desync.dis.tcp.th_flags, bitnot(TH_RST)), TH_SYN) + clear_magic() + DLOG("synhide: mission complete") + instance_cutoff_shim(ctx, desync) + return VERDICT_MODIFY + end + + DLOG("synhide: sequence failed") + instance_cutoff_shim(ctx, desync) +end diff --git a/blockcheck/zapret2/lua/zapret-pcap.lua b/blockcheck/zapret2/lua/zapret-pcap.lua new file mode 100644 index 0000000..ff979dc --- /dev/null +++ b/blockcheck/zapret2/lua/zapret-pcap.lua @@ -0,0 +1,40 @@ +function pcap_write_header(file) + -- big endian, nanoseconds in timestamps, ver 2.4, max packet size - 0xFFFF (65535), 0x65 - l3 packets without l2 + file:write("\xA1\xB2\x3C\x4D\x00\x02\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\x00\x00\x00\x65") +end +function pcap_write_packet(file, raw) + local sec, nsec = clock_gettime(); + file:write(bu32(sec)..bu32(nsec)..bu32(#raw)..bu32(#raw)) + file:write(raw) +end +function pcap_write(file, raw) + local pos = file:seek('end') + if (pos==0) then + pcap_write_header(file) + end + pcap_write_packet(file, raw) +end + +-- test case : --writable=zdir --in-range=a --lua-desync=pcap:file=test.pcap +-- arg : file= - file for storing pcap data. if --writable is specified and filename is relative - append filename to writable path +-- arg : keep - do not overwrite file, append packets to existing +function pcap(ctx, desync) + if not desync.arg.file or #desync.arg.file==0 then + error("pcap requires 'file' parameter") + end + local fn_cache_name = desync.func_instance.."_fn" + if not _G[fn_cache_name] then + _G[fn_cache_name] = writable_file_name(desync.arg.file) + if not desync.arg.keep then + -- overwrite file + os.remove(_G[fn_cache_name]) + end + end + local f = io.open(_G[fn_cache_name], "ab") + if not f then + error("pcap: could not write to '".._G[fn_cache_name].."'") + end + local raw = ctx and raw_packet(ctx) or reconstruct_dissect(desync.dis) + pcap_write(f, raw) + f:close() +end diff --git a/blockcheck/zapret2/lua/zapret-tests.lua b/blockcheck/zapret2/lua/zapret-tests.lua new file mode 100644 index 0000000..6690c05 --- /dev/null +++ b/blockcheck/zapret2/lua/zapret-tests.lua @@ -0,0 +1,1160 @@ +-- nfqws2 C functions tests +-- to run : --lua-init=@zapret-lib.lua --lua-init=@zapret-tests.lua --lua-init="test_all()" + +function test_assert(b) + assert(b, "test failed") +end + +function test_run(tests,...) + for k,f in pairs(tests) do + f(...) + end +end + + +function test_all(...) + test_run({ + test_crypto, test_bin, test_time, test_gzip, test_ipstr, test_dissect, test_csum, test_resolve, + test_get_source_ip, test_ifaddrs, test_rawsend, test_timer},...) +end + + +function test_crypto(...) + test_run({test_random, test_bop, test_aes, test_aes_gcm, test_aes_ctr, test_hkdf, test_hash},...) +end + +function test_random() + print("* random") + + local rnds={} + for i=1,20 do + local rnd = bcryptorandom(math.random(10,20)) + print("random: "..string2hex(rnd)) + test_assert(not rnds[rnd]) -- should not be repeats + rnds[rnd] = true + end +end + +function test_bop() + print("* bop") + + for n,test in ipairs( + { + { fb = bxor, fbit = bitxor, nb = "bxor", nbit="bitxor" }, + { fb = bor, fbit = bitor, nb = "bor", nbit="bitor" }, + { fb = band, fbit = bitand, nb = "band", nbit="bitand" } + }) do + for k=1,5 do + local r = {} + for i=1,6 do r[i] = math.random(0,0xFFFFFFFFFFFF) end + local v1 = bu48(r[1])..bu48(r[2])..bu48(r[3]) + local v2 = bu48(r[4])..bu48(r[5])..bu48(r[6]) + print("x1 : "..string2hex(v1)) + print("x2 : "..string2hex(v2)) + local v3 = test.fb(v1,v2) + local v4 = bu48(test.fbit(r[1],r[4]))..bu48(test.fbit(r[2],r[5]))..bu48(test.fbit(r[3],r[6])) + print(test.nb.." : "..string2hex(v3)) + print(test.nbit.." : "..string2hex(v4)) + print("result : "..(v3==v4 and "OK" or "FAIL")) + test_assert(v3==v4) + end + end +end + +function test_hash() + print("* hash") + + local hashes={} + for i=1,5 do + local rnd = brandom(math.random(5,64)) + print("data: "..string2hex(rnd)) + for k,sha in pairs({"sha256","sha224"}) do + local hsh = hash(sha, rnd) + print(sha..": "..string2hex(hsh)) + local hsh2 = hash(sha, rnd) + test_assert(hsh==hsh2) + test_assert(not hashes[hsh]) + hashes[hsh] = true + end + end +end + +function test_hkdf() + print("* hkdf") + + local nblob = 2 + local okms = {} + for nsalt=1,nblob do + local salt = brandom(math.random(10,20)) + for nikm=1,nblob do + local ikm = brandom(math.random(5,10)) + for ninfo=1,nblob do + local info = brandom(math.random(5,10)) + for k,sha in pairs({"sha256","sha224"}) do + local okm_prev + for k,okml in pairs({8, 16, 50}) do + local okm + print("* hkdf "..sha) + print("salt: "..string2hex(salt)) + print("ikm : "..string2hex(ikm)) + print("info: "..string2hex(info)) + print("okml: "..tostring(okml)) + okm = hkdf(sha, salt, ikm, info, okml) + test_assert(okm) + print("okm: "..string2hex(okm)) + if okms[okm] then + print("duplicate okm !") + end + okms[okm] = true + test_assert(not okm_prev or okm_prev==string.sub(okm, 1, #okm_prev)) + okm_prev = okm + end + end + end + end + end +end + +function test_aes() + print("* aes") + + local clear_text="test "..brandom_az09(11) + local encrypted, decrypted + + for key_size=16,32,8 do + local key = brandom(key_size) + + print() + print("* aes test key_size "..tostring(key_size)) + + print("clear text: "..clear_text) + + print("* encrypting") + encrypted = aes(true, key, clear_text) + print("encrypted: "..str_or_hex(encrypted)) + + print("* decrypting everything good") + decrypted = aes(false, key, encrypted) + print("decrypted: "..str_or_hex(decrypted)) + print( decrypted==clear_text and "DECRYPT OK" or "DECRYPT ERROR" ) + test_assert(decrypted==clear_text) + + print("* decrypting bad payload with good key") + decrypted = aes(false, key, brandom(16)) + print("decrypted: "..str_or_hex(decrypted)) + print( decrypted==clear_text and "DECRYPT OK" or "DECRYPT ERROR" ) + test_assert(decrypted~=clear_text) + + print("* decrypting good payload with bad key") + decrypted = aes(false, brandom(key_size), encrypted) + print("decrypted: "..str_or_hex(decrypted)) + print( decrypted==clear_text and "DECRYPT OK" or "DECRYPT ERROR" ) + test_assert(decrypted~=clear_text) + + end +end + +function test_aes_gcm() + print("* aes_gcm") + + local authenticated_data = "authenticated message "..brandom_az09(math.random(10,50)) + local clear_text="test message "..brandom_az09(math.random(10,50)) + local iv, key, encrypted, atag, decrypted, atag2 + + for key_size=16,32,8 do + iv = brandom(12) + key = brandom(key_size) + + print() + print("* aes_gcm test key_size "..tostring(key_size)) + + print("clear text: "..clear_text) + print("authenticated data: "..authenticated_data) + + print("* encrypting") + encrypted, atag = aes_gcm(true, key, iv, clear_text, authenticated_data) + print("encrypted: "..str_or_hex(encrypted)) + print("auth tag: "..string2hex(atag)) + + print("* decrypting everything good") + decrypted, atag2 = aes_gcm(false, key, iv, encrypted, authenticated_data) + print("decrypted: "..str_or_hex(decrypted)) + print( decrypted==clear_text and "DECRYPT OK" or "DECRYPT ERROR" ) + test_assert(decrypted==clear_text) + print("auth tag: "..string2hex(atag2)) + print( atag==atag2 and "TAG OK" or "TAG ERROR" ) + test_assert(atag==atag2) + + print("* decrypting bad payload with good key/iv and correct authentication data") + decrypted, atag2 = aes_gcm(false, key, iv, brandom(#encrypted), authenticated_data) + print("decrypted: "..str_or_hex(decrypted)) + print( decrypted==clear_text and "DECRYPT OK" or "DECRYPT ERROR" ) + test_assert(decrypted~=clear_text) + print("auth tag: "..string2hex(atag2)) + print( atag==atag2 and "TAG OK" or "TAG ERROR" ) + test_assert(atag~=atag2) + + print("* decrypting good payload with good key/iv and incorrect authentication data") + decrypted, atag2 = aes_gcm(false, key, iv, encrypted, authenticated_data.."x") + print("decrypted: "..str_or_hex(decrypted)) + print( decrypted==clear_text and "DECRYPT OK" or "DECRYPT ERROR" ) + test_assert(decrypted==clear_text) + print("auth tag: "..string2hex(atag2)) + print( atag==atag2 and "TAG OK" or "TAG ERROR" ) + test_assert(atag~=atag2) + + print("* decrypting good payload with bad key, good iv and correct authentication data") + decrypted, atag2 = aes_gcm(false, brandom(key_size), iv, encrypted, authenticated_data) + print("decrypted: "..str_or_hex(decrypted)) + print( decrypted==clear_text and "DECRYPT OK" or "DECRYPT ERROR" ) + test_assert(decrypted~=clear_text) + print("auth tag: "..string2hex(atag2)) + print( atag==atag2 and "TAG OK" or "TAG ERROR" ) + test_assert(atag~=atag2) + + print("* decrypting good payload with good key, bad iv and correct authentication data") + decrypted, atag2 = aes_gcm(false, key, brandom(12), encrypted, authenticated_data) + print("decrypted: "..str_or_hex(decrypted)) + print( decrypted==clear_text and "DECRYPT OK" or "DECRYPT ERROR" ) + test_assert(decrypted~=clear_text) + print("auth tag: "..string2hex(atag2)) + print( atag==atag2 and "TAG OK" or "TAG ERROR" ) + test_assert(atag~=atag2) + end +end + +function test_aes_ctr() + print("* aes_ctr") + + local clear_text="test message "..brandom_az09(math.random(10,50)) + local iv, key, encrypted, decrypted + + for key_size=16,32,8 do + iv = brandom(16) + key = brandom(key_size) + + print() + print("* aes_ctr test key_size "..tostring(key_size)) + + print("clear text: "..clear_text) + + print("* encrypting") + encrypted = aes_ctr(key, iv, clear_text) + print("encrypted: "..str_or_hex(encrypted)) + + print("* decrypting") + decrypted = aes_ctr(key, iv, encrypted) + print("decrypted: "..str_or_hex(decrypted)) + print( decrypted==clear_text and "DECRYPT OK" or "DECRYPT ERROR" ) + test_assert(decrypted==clear_text) + + print("* decrypting with bad key") + decrypted = aes_ctr(bu8(bitand(u8(string.sub(key,1,1))+1,0xFF))..string.sub(key,2), iv, encrypted) + print("decrypted: "..str_or_hex(decrypted)) + print( decrypted==clear_text and "DECRYPT OK" or "DECRYPT ERROR" ) + test_assert(decrypted~=clear_text) + + print("* decrypting with bad iv") + decrypted = aes_ctr(key, bu8(bitand(u8(string.sub(iv,1,1))+1,0xFF))..string.sub(iv,2), encrypted) + print("decrypted: "..str_or_hex(decrypted)) + print( decrypted==clear_text and "DECRYPT OK" or "DECRYPT ERROR" ) + test_assert(decrypted~=clear_text) + end + + -- openssl enc -aes-256-ctr -d -in rnd.bin -out rnd_decrypted.bin -K c39383634d87eb3b6e56edf2c8c0ba99cc8cadf000fb2cd737e37947eecde5fd -iv d745164b233f10b93945526ffe94b87f + print("* aes_ctr const tests") + + local data="\x9d\x9c\xa0\x78\x2e\x17\x84\xfc\x87\xc7\xf5\xdf\x5b\xb5\x71\xfd\xb9\xcb\xd2\x4d\xae\x2f\xf0\x19\xf3\xad\x79\xa8\x9a\xb4\xed\x28\x88\x3c\xe1\x78\x91\x23\x27\xd4\x8d\x94\xb3\xd0\x81\x88\xd2\x55\x95\x8a\x88\x70\x67\x99\x75\xb2\xee\x30\x0f\xe7\xc6\x32\x10" + local iv="\xd7\x45\x16\x4b\x23\x3f\x10\xb9\x39\x45\x52\x6f\xfe\x94\xb8\x7f" + local tests = { + { + key="\xc3\x93\x83\x63\x4d\x87\xeb\x3b\x6e\x56\xed\xf2\xc8\xc0\xba\x99\xcc\x8c\xad\xf0\x00\xfb\x2c\xd7\x37\xe3\x79\x47\xee\xcd\xe5\xfd", + result="\x8C\x2C\x15\x99\x83\x37\x33\xEE\xA1\x70\xA7\x4A\x44\x2E\x6F\x56\x22\x41\xE1\xFC\xC5\x84\x21\x1C\x16\xC6\xE9\x75\x22\x57\x55\x4A\x02\x04\xCE\xAD\xE9\x0A\x45\xAB\x4E\x38\xB8\xB2\x6F\x95\xDA\x46\x4F\x9E\xB1\xFF\xF4\x40\x8A\x57\x25\xD2\xF6\xB6\x93\x65\x75" + }, + { + key="\xc3\x93\x83\x63\x4d\x87\xeb\x3b\x6e\x56\xed\xf2\xc8\xc0\xba\x99\xcc\x8c\xad\xf0\x00\xfb\x2c\xd7", + result="\xB0\x4C\xC9\xDB\x0C\xE5\x67\x51\x1D\x24\x3C\x15\x87\x1B\xF9\x62\x84\x8C\xD0\x57\x33\x93\xE0\x71\x91\x3A\x11\x26\xCA\x77\xA7\x54\xBD\xC6\x5E\x96\x60\x2C\x94\x0F\xBA\x3E\x79\xDC\x48\xA0\x22\x97\xA7\x77\x55\xC8\x14\xEA\xC2\xF5\xA0\x88\x6F\xE2\x44\x32\x68" + }, + { + key="\xc3\x93\x83\x63\x4d\x87\xeb\x3b\x6e\x56\xed\xf2\xc8\xc0\xba\x99", + result="\xD9\xAC\xC7\x7D\xC8\xC9\xF1\x59\x9A\xDF\x15\xF3\x58\x61\xFD\x2B\x1D\x01\x9A\x5F\x04\x53\xA2\xA8\xFD\x52\xDC\x8A\xE9\x3B\x2E\x5E\x0D\x13\xCB\xBD\x16\xED\xC1\xF2\x0D\x68\x62\xB7\xD5\x0F\x8D\xD4\xEB\xA1\xC5\x75\xF2\x0B\x26\x75\x1D\x7E\x5A\x37\xA6\x8A\xCD" + } + } + for k,t in pairs(tests) do + local decrypted = aes_ctr(t.key, iv, data) + io.write("KEY SIZE "..(#t.key*8).." ") + print( decrypted==t.result and "DECRYPT OK" or "DECRYPT ERROR" ) + test_assert(decrypted==t.result) + end +end + +function test_ub() + print("* ub") + + for k,f in pairs({{u8,bu8,0xFF,8}, {u16,bu16,0xFFFF,16}, {u24,bu24,0xFFFFFF,24}, {u32,bu32,0xFFFFFFFF,32}, {u48,bu48,0xFFFFFFFFFFFF,48}}) do + local v = math.random(0,f[3]) + local pos = math.random(1,20) + local s = brandom(pos-1)..f[2](v)..brandom(20) + local v2 = f[1](s,pos) + print(string.format("u%u pos=%u %016X %016X",f[4],pos,v,v2)) + test_assert(v==v2) + end +end + +function test_bit() + print("* bit") + + local v, v2, v3, v4, b1, b2, pow + + for i=1,100 do + v = math.random(0,0xFFFFFFFFFFFF) + b1 = math.random(1,16) + + v2 = bitrshift(v, b1) + pow = 2^b1 + v3 = divint(v, pow) + print(string.format("rshift(0x%X,%u) = 0x%X 0x%X/%u = 0x%X", v,b1,v2, v,pow,v3)) + test_assert(v2==v3) + + v = math.random(0,0xFFFFFFFFF) + b1 = math.random(1,12) + v2 = bitlshift(v, b1) + pow = 2^b1 + v3 = (v * pow) % 0x1000000000000 + print(string.format("lshift(0x%X,%u) = 0x%X 0x%X*%u %% 0x100000000000 = 0x%X", v,b1,v2, v,pow,v3)) + test_assert(v2==v3) + + v2 = math.random(0,0xFFFFFFFFFFFF) + v3 = bitxor(v, v2) + v4 = bitor(v, v2) - bitand(v, v2) + print(string.format("xor(0x%X,0x%X) = %X or/and/minus = %X", v, v2, v3, v4)) + test_assert(v3==v4) + + b1 = math.random(1,31) + b2 = b1 + math.random(1,16) + v2 = bitget(v, b1, b2) + pow = 2^(b2-b1+1) - 1 + v3 = bitand(bitrshift(v,b1), pow) + print(string.format("bitget(0x%X,%u,%u) = 0x%X bitand/bitrshift/pow = 0x%X", v, b1, b2, v2, v3)) + test_assert(v2==v3) + + v4 = math.random(0,pow) + v2 = bitset(v, b1, b2, v4) + v3 = bitor(bitlshift(v4, b1), bitand(v, bitnot(bitlshift(pow, b1)))) + print(string.format("bitset(0x%X,%u,%u,0x%X) = 0x%X bitand/bitnot/bitlshift/pow = 0x%X", v, b1, b2, v4, v2, v3)) + test_assert(v2==v3) + end +end + +function test_swap() + print("* swap") + + local v1, v2, v3 + + v1 = math.random(0,0xFFFF) + v2 = swap16(v1) + v3 = divint(v1,0x100) + v1%0x100*0x100 + print("swap16: "..(v2==v3 and "OK" or "FAIL")) + test_assert(v2==v3) + + v1 = math.random(0,0xFFFFFF) + v2 = swap24(v1) + v3 = divint(v1,0x10000) + divint(v1,0x100)%0x100*0x100 + v1%0x100*0x10000 + print("swap24: "..(v2==v3 and "OK" or "FAIL")) + test_assert(v2==v3) + + v1 = math.random(0,0xFFFFFFFF) + v2 = swap32(v1) + v3 = divint(v1,0x1000000) + divint(v1,0x10000)%0x100*0x100 + divint(v1,0x100)%0x100*0x10000 + v1%0x100*0x1000000 + print("swap32: "..(v2==v3 and "OK" or "FAIL")) + test_assert(v2==v3) + + v1 = math.random(0,0xFFFFFFFFFFFF) + v2 = swap48(v1) + v3 = divint(v1,0x10000000000) + + divint(v1,0x100000000)%0x100*0x100 + + divint(v1,0x1000000)%0x100*0x10000 + + divint(v1,0x10000)%0x100*0x1000000 + + divint(v1,0x100)%0x100*0x100000000 + + v1%0x100*0x10000000000 + print("swap48: "..(v2==v3 and "OK" or "FAIL")) + test_assert(v2==v3) +end + +function test_ux() + print("* ux") + + local v1, v2, v3, usum, sum + + for k,test in pairs({ + { add=u8add, fname="u8add", max = 0xFF }, + { add=u16add, fname="u16add", max = 0xFFFF }, + { add=u24add, fname="u24add", max = 0xFFFFFF }, + { add=u32add, fname="u32add", max = 0xFFFFFFFF }, + { add=u48add, fname="u48add", max = 0xFFFFFFFFFFFF } + }) do + io.write(test.fname.." : ") + for i=1,1000 do + v1=math.random(-test.max,test.max) + v2=math.random(-test.max,test.max) + v3=math.random(-test.max,test.max) + usum = test.add(v1,v2,v3) + sum = bitand((v1+v2+v3)%(test.max+1),test.max) + if sum~=usum then + print(string.format("FAIL: 0x%012X + 0x%012X + 0x%012X = 0x%012X 0x%012X",v1,v2,v3,usum,sum)) + end + test_assert(sum==usum) + end + print("OK") + end +end + +function test_bin(...) + test_run({test_ub, test_bit, test_swap, test_ux},...) +end + +function test_time(...) + print("* time") + + local unixtime=os.time() + local tm = localtime(unixtime); + local t + print() + print("now: "..tm.str.." "..tm.zone.." = "..unixtime) + local tm = gmtime(unixtime); + print("gmt: "..tm.str.." "..tm.zone.." = "..unixtime) + print() + for i=1,20 do + unixtime = math.random(0,0x7FFFFFFF); + tm = localtime(unixtime); + t = timelocal(tm) + print("timelocal: "..tm.str.." "..tm.zone.." = "..t) + print( t==unixtime and "LOCALTIME OK" or "LOCALTIME FAILED" ) + test_assert(t==unixtime) + + unixtime = math.random(0,0x7FFFFFFF); + tm = gmtime(unixtime); + t = timegm(tm) + print("timegm: "..tm.str.." "..tm.zone.." = "..t) + print( t==unixtime and "GMTIME OK" or "GMTIME FAILED" ) + test_assert(t==unixtime) + end + unixtime = math.random(0x80000000,0xFFFFFFFF); + tm = gmtime(unixtime) + t = timegm(tm) + print( t==unixtime and "TIME 0x80000000..0xFFFFFFFF OK" or "TIME 0x80000000..0xFFFFFFFF FAILED : "..unixtime.." != "..t.." ("..tm.str..")" ) + unixtime = math.random(0x100000000,0x200000000); + tm = gmtime(unixtime) + t = timegm(tm) + print( t==unixtime and "TIME 64 OK" or "TIME 64 FAILED : "..unixtime.." != "..t.." ("..tm.str..")" ) +end + +function test_gzip() + print("* gzip") + + local s="" + for i=1,math.random(2000,3000) do + local rnd=brandom(math.random(1,50)) + s=s..rnd..string.rep(bu8(math.random(0,255)),100-#rnd) + end + local v=math.random(100001,199999) + local level=math.random(1,9) + local memlevel=math.random(1,8) + print("gzip: original size "..#s) + print("gzip: cut point "..(v+1)) + print("gzip: level "..level) + print("gzip: memlevel "..memlevel) + local gz = gzip_init(nil, level, memlevel) + local zip = gzip_deflate(gz,string.sub(s,1,v)) + zip = zip..gzip_deflate(gz,string.sub(s,v+1)) + zip = zip..gzip_deflate(gz,nil) -- finalize + gzip_end(gz) + print("gzip: deflated size "..#zip) + local v=math.random(2,#zip-1) + print("gunzip: cut point "..(v+1)) + gz = gunzip_init() + local unzip = gunzip_inflate(gz,string.sub(zip,1,v)) + unzip = unzip..gunzip_inflate(gz,string.sub(zip,v+1)) + gunzip_end(gz) + print("gunzip: inflated size "..#unzip) + print("gzip+gunzip: "..(s==unzip and "OK" or "FAIL")) + test_assert(s==unzip) +end + +function test_ipstr() + print("* ipstr") + + local s_ip, ip, s_ip2 + + s_ip = string.format("%u.%u.%u.%u", math.random(0,255), math.random(0,255), math.random(0,255), math.random(0,255)) + ip = pton(s_ip) + s_ip2 = ntop(ip) + print("IP: "..s_ip) + print("IPBIN: "..string2hex(ip)) + print("IP2: "..s_ip2) + test_assert(s_ip==s_ip2) + + s_ip = string.format("%x:%x:%x:%x:%x:%x:%x:%x", math.random(1,0xFFFF), math.random(1,0xFFFF), math.random(1,0xFFFF), math.random(1,0xFFFF), math.random(1,0xFFFF), math.random(1,0xFFFF), math.random(1,0xFFFF), math.random(1,0xFFFF)) + ip = pton(s_ip) + s_ip2 = ntop(ip) + print("IP: "..s_ip) + print("IPBIN: "..string2hex(ip)) + print("IP2: "..s_ip2) + test_assert(s_ip==s_ip2) +end + + +function test_dissect() + print("* dissect") + + local raw1, raw2 + + for i=1,20 do + print("* dissect test "..tostring(i)) + + local ip_tcp = { + ip = { + ip_tos = math.random(0,255), + ip_id = math.random(0,0xFFFF), + ip_off = 0, + ip_ttl = math.random(0,255), + ip_p = IPPROTO_TCP, + ip_src = brandom(4), + ip_dst = brandom(4), + options = brandom(math.random(0,40)) + }, + tcp = { + th_sport = math.random(0,0xFFFF), + th_dport = math.random(0,0xFFFF), + th_seq = math.random(0,0xFFFFFFFF), + th_ack = math.random(0,0xFFFFFFFF), + th_x2 = math.random(0,0xF), + th_flags = math.random(0,0xFF), + th_win = math.random(0,0xFFFF), + th_urp = math.random(0,0xFFFF), + options = { + { kind = 1 }, + { kind = 0xE0, data = brandom(math.random(1,10)) }, + { kind = 1 }, + { kind = 0xE1, data = brandom(math.random(1,10)) }, + { kind = 0 } + } + }, + payload = brandom(math.random(0, 20)) + } + raw1 = reconstruct_dissect(ip_tcp) + print("IP+TCP : "..string2hex(raw1)) + dis1 = dissect(raw1) + raw2 = reconstruct_dissect(dis1) + dis2 = dissect(raw2) + print("IP+TCP2: "..string2hex(raw2)) + print( raw1==raw2 and "DISSECT OK" or "DISSECT FAILED" ) + test_assert(raw1==raw2) + + print("IP standalone") + raw1 = reconstruct_iphdr(ip_tcp.ip) + print("IP1: "..string2hex(raw1)) + dis1 = dissect_iphdr(raw1) + raw2 = reconstruct_iphdr(dis1) + print("IP2: "..string2hex(raw2)) + print( raw1==raw2 and "DISSECT OK" or "DISSECT FAILED" ) + test_assert(raw1==raw2) + + print("TCP standalone") + raw1 = reconstruct_tcphdr(ip_tcp.tcp) + print("TCP1: "..string2hex(raw1)) + dis1 = dissect_tcphdr(raw1) + raw2 = reconstruct_tcphdr(dis1) + print("TCP2: "..string2hex(raw2)) + print( raw1==raw2 and "DISSECT OK" or "DISSECT FAILED" ) + test_assert(raw1==raw2) + + local ip_icmp = { + ip = { + ip_tos = math.random(0,255), + ip_id = math.random(0,0xFFFF), + ip_off = 0, + ip_ttl = math.random(0,255), + ip_p = IPPROTO_ICMP, + ip_src = brandom(4), + ip_dst = brandom(4), + options = brandom(math.random(0,40)) + }, + icmp = { + icmp_type = ICMP_DEST_UNREACH, icmp_code=ICMP_UNREACH_PORT, + icmp_data = math.random(1,0xFFFFFFFF) + } + } + print("ICMP standalone") + raw1 = reconstruct_icmphdr(ip_icmp.icmp) + print("ICMP1: "..string2hex(raw1)) + dis1 = dissect_icmphdr(raw1) + raw2 = reconstruct_icmphdr(dis1) + print("ICMP2: "..string2hex(raw2)) + print( raw1==raw2 and "DISSECT OK" or "DISSECT FAILED" ) + test_assert(raw1==raw2) + + local ip6_udp = { + ip6 = { + ip6_flow = 0x60000000 + math.random(0,0xFFFFFFF), + ip6_hlim = math.random(1,0xFF), + ip6_src = brandom(16), + ip6_dst = brandom(16), + exthdr = { + { type = IPPROTO_HOPOPTS, data = brandom(6+8*math.random(0,2)) }, + { type = IPPROTO_AH, data = brandom(6+4*math.random(0,4)) } + } + }, + udp = { + uh_sport = math.random(0,0xFFFF), + uh_dport = math.random(0,0xFFFF) + }, + payload = brandom(math.random(0, 20)) + } + + raw1 = reconstruct_dissect(ip6_udp) + print("IP6+UDP : "..string2hex(raw1)) + dis1 = dissect(raw1) + raw2 = reconstruct_dissect(dis1) + dis2 = dissect(raw2) + print("IP6+UDP2: "..string2hex(raw2)) + print( raw1==raw2 and "DISSECT OK" or "DISSECT FAILED" ) + test_assert(raw1==raw2) + + raw1 = string.sub(reconstruct_dissect(ip6_udp),1,-4-#ip6_udp.payload) + dis1 = dissect(raw1, false) + dis2 = dissect(raw1, true) + local ok = not dis1.ip6 and dis2.ip6 + print("IP6 partial : "..(ok and "OK" or "FAIL")) + test_assert(ok) + + print("IP6+IPP") + dis1 = {ip6 = ip6_udp.ip6, payload=brandom(math.random(1,1))} + raw1 = reconstruct_dissect(dis1,{ip6_last_proto=IPPROTO_IPIP}) + dis2 = dissect(raw1) + raw2 = reconstruct_dissect(dis2,{ip6_preserve_next=true}) + print("IP6+IPP1: "..string2hex(raw1)) + print("IP6+IPP2: "..string2hex(raw2)) + print( raw1==raw2 and "DISSECT OK" or "DISSECT FAILED" ) + test_assert(raw1==raw2) + + print("UDP standalone") + raw1 = reconstruct_udphdr(ip6_udp.udp) + print("UDP1: "..string2hex(raw1)) + dis1 = dissect_udphdr(raw1) + raw2 = reconstruct_udphdr(dis1) + print("UDP2: "..string2hex(raw2)) + print( raw1==raw2 and "DISSECT OK" or "DISSECT FAILED" ) + test_assert(raw1==raw2) + + print("IP6 standalone") + ip6_udp.ip6.ip6_plen = nil + raw1 = reconstruct_ip6hdr(ip6_udp.ip6,{ip6_last_proto=IPPROTO_UDP}) + print("IP1: "..string2hex(raw1)) + dis1 = dissect_ip6hdr(raw1) + raw2 = reconstruct_ip6hdr(dis1,{ip6_last_proto=IPPROTO_UDP}) + print("IP2: "..string2hex(raw2)) + print( raw1==raw2 and "DISSECT OK" or "DISSECT FAILED" ) + test_assert(raw1==raw2) + end +end + +function test_csum() + print("* csum") + + local payload = brandom(math.random(10,20)) + local ip4b, ip6b, raw, tcpb, udpb, icmpb, dis1, dis2 + local ip = { + ip_tos = math.random(0,255), + ip_id = math.random(0,0xFFFF), + ip_len = math.random(0,0xFFFF), + ip_off = 0, + ip_ttl = math.random(0,255), + ip_p = IPPROTO_TCP, + ip_src = brandom(4), + ip_dst = brandom(4), + options = brandom(4*math.random(0,10)) + } + ip4b = reconstruct_iphdr(ip) + raw = bu8(0x40 + 5 + #ip.options/4) .. + bu8(ip.ip_tos) .. + bu16(ip.ip_len) .. + bu16(ip.ip_id) .. + bu16(ip.ip_off) .. + bu8(ip.ip_ttl) .. + bu8(ip.ip_p) .. + bu16(0) .. + ip.ip_src .. ip.ip_dst .. + ip.options + raw = csum_ip4_fix(raw) + print( raw==ip4b and "IP4 RECONSTRUCT+CSUM OK" or "IP4 RECONSTRUCT+CSUM FAILED" ) + test_assert(raw==ip4b) + + + local tcp = { + th_sport = math.random(0,0xFFFF), + th_dport = math.random(0,0xFFFF), + th_seq = math.random(0,0xFFFFFFFF), + th_ack = math.random(0,0xFFFFFFFF), + th_x2 = math.random(0,0xF), + th_flags = math.random(0,0xFF), + th_win = math.random(0,0xFFFF), + th_urp = math.random(0,0xFFFF), + options = { + { kind = 1 }, + { kind = 0xE0, data = brandom(math.random(1,10)) }, + { kind = 1 }, + { kind = 0xE1, data = brandom(math.random(1,10)) }, + { kind = 0 } + } + } + tcpb = reconstruct_tcphdr(tcp) + raw = bu16(tcp.th_sport) .. + bu16(tcp.th_dport) .. + bu32(tcp.th_seq) .. + bu32(tcp.th_ack) .. + bu8(l4_len({tcp = tcp}) * 4 + tcp.th_x2) .. + bu8(tcp.th_flags) .. + bu16(tcp.th_win) .. + bu16(0) .. + bu16(tcp.th_urp) .. + bu8(tcp.options[1].kind).. + bu8(tcp.options[2].kind)..bu8(2 + #tcp.options[2].data)..tcp.options[2].data .. + bu8(tcp.options[3].kind).. + bu8(tcp.options[4].kind)..bu8(2 + #tcp.options[4].data)..tcp.options[4].data .. + bu8(tcp.options[5].kind) + raw = raw .. string.rep(bu8(TCP_KIND_NOOP), bitand(4-bitand(#raw,3),3)) + print( raw==tcpb and "TCP RECONSTRUCT OK" or "TCP RECONSTRUCT FAILED" ) + test_assert(raw==tcpb) + + raw = reconstruct_dissect({ip=ip, tcp=tcp, payload=payload}) + dis1 = dissect(raw) + ip.ip_len = IP_BASE_LEN + #ip.options + #tcpb + #payload + ip4b = reconstruct_iphdr(ip) + tcpb = csum_tcp_fix(ip4b,tcpb,payload) + dis2 = dissect(ip4b..tcpb..payload) + print( dis1.tcp.th_sum==dis2.tcp.th_sum and "TCP+IP4 CSUM OK" or "TCP+IP4 CSUM FAILED" ) + test_assert(dis1.tcp.th_sum==dis2.tcp.th_sum) + + + local ip6 = { + ip6_flow = 0x60000000 + math.random(0,0xFFFFFFF), + ip6_hlim = math.random(1,0xFF), + ip6_src = brandom(16), + ip6_dst = brandom(16), + exthdr = { + { type = IPPROTO_HOPOPTS, data = brandom(6+8*math.random(0,2)) } + } + } + ip6.ip6_plen = packet_len({ip6=ip6,tcp=tcp,payload=payload}) - IP6_BASE_LEN + ip6b = reconstruct_ip6hdr(ip6, {ip6_last_proto=IPPROTO_TCP}) + raw = bu32(ip6.ip6_flow) .. + bu16(ip6.ip6_plen) .. + bu8(ip6.exthdr[1].type) .. + bu8(ip6.ip6_hlim) .. + ip6.ip6_src .. ip6.ip6_dst .. + bu8(IPPROTO_TCP) .. + bu8((#ip6.exthdr[1].data+2)/8 - 1) .. + ip6.exthdr[1].data + print( raw==ip6b and "IP6 RECONSTRUCT OK" or "IP6 RECONSTRUCT FAILED" ) + test_assert(raw==ip6b) + + raw = reconstruct_dissect({ip6=ip6, tcp=tcp, payload=payload}) + dis1 = dissect(raw) + tcpb = csum_tcp_fix(ip6b,tcpb,payload) + dis2 = dissect(ip6b..tcpb..payload) + print( dis1.tcp.th_sum==dis2.tcp.th_sum and "TCP+IP6 CSUM OK" or "TCP+IP6 CSUM FAILED" ) + test_assert(dis1.tcp.th_sum==dis2.tcp.th_sum) + + local udp = { + uh_sport = math.random(0,0xFFFF), + uh_dport = math.random(0,0xFFFF), + uh_ulen = UDP_BASE_LEN + #payload + } + + udpb = reconstruct_udphdr(udp) + raw = bu16(udp.uh_sport) .. + bu16(udp.uh_dport) .. + bu16(udp.uh_ulen) .. + bu16(0) + print( raw==udpb and "UDP RECONSTRUCT OK" or "UDP RECONSTRUCT FAILED" ) + test_assert(raw==udpb) + + ip.ip_p = IPPROTO_UDP + raw = reconstruct_dissect({ip=ip, udp=udp, payload=payload}) + dis1 = dissect(raw) + ip.ip_p = IPPROTO_UDP + ip.ip_len = IP_BASE_LEN + #ip.options + #udpb + #payload + ip4b = reconstruct_iphdr(ip) + udpb = csum_udp_fix(ip4b,udpb,payload) + dis2 = dissect(ip4b..udpb..payload) + print( dis1.udp.uh_sum==dis2.udp.uh_sum and "UDP+IP4 CSUM OK" or "UDP+IP4 CSUM FAILED" ) + test_assert(dis1.udp.uh_sum==dis2.udp.uh_sum) + + ip6.ip6_plen = packet_len({ip6=ip6,udp=udp,payload=payload}) - IP6_BASE_LEN + ip6b = reconstruct_ip6hdr(ip6, {ip6_last_proto=IPPROTO_UDP}) + raw = reconstruct_dissect({ip6=ip6, udp=udp, payload=payload}) + dis1 = dissect(raw) + udpb = csum_udp_fix(ip6b,udpb,payload) + dis2 = dissect(ip6b..udpb..payload) + print( dis1.udp.uh_sum==dis2.udp.uh_sum and "UDP+IP6 CSUM OK" or "UDP+IP6 CSUM FAILED" ) + test_assert(dis1.udp.uh_sum==dis2.udp.uh_sum) + + local icmp = { + icmp_type = math.random(0,0xFF), icmp_code=math.random(0,0xFF), + icmp_data = math.random(0,0xFFFFFFFF) + } + ip.ip_p = IPPROTO_ICMP + ip4b = reconstruct_iphdr(ip) + ip6.ip6_plen = packet_len({ip6=ip6,icmp=icmp,payload=payload}) - IP6_BASE_LEN + ip6b = reconstruct_ip6hdr(ip6, {ip6_last_proto=IPPROTO_ICMPV6}) + + icmpb = reconstruct_icmphdr(icmp) + raw = bu8(icmp.icmp_type) .. + bu8(icmp.icmp_code) .. + bu16(0) .. + bu32(icmp.icmp_data) + print( raw==icmpb and "ICMP RECONSTRUCT OK" or "ICMP RECONSTRUCT FAILED" ) + test_assert(raw==icmpb) + + raw = reconstruct_dissect({ip=ip, icmp=icmp, payload=payload}) + dis1 = dissect(raw) + icmpb = csum_icmp_fix(ip4b,icmpb,payload) + dis2 = dissect(ip4b..icmpb..payload) + print( dis1.icmp.icmp_cksum==dis2.icmp.icmp_cksum and "ICMP+IP4 CSUM OK" or "ICMP+IP4 CSUM FAILED" ) + test_assert(dis1.icmp.icmp_cksum==dis2.icmp.icmp_cksum) + + raw = reconstruct_dissect({ip6=ip6, icmp=icmp, payload=payload}) + dis1 = dissect(raw) + icmpb = csum_icmp_fix(ip6b,icmpb,payload) + dis2 = dissect(ip6b..icmpb..payload) + print( dis1.icmp.icmp_cksum==dis2.icmp.icmp_cksum and "ICMP+IP6 CSUM OK" or "ICMP+IP6 CSUM FAILED" ) + test_assert(dis1.icmp.icmp_cksum==dis2.icmp.icmp_cksum) +end + +function test_resolve() + print("* resolve") + + local pos + + local tdis = tls_dissect(fake_default_tls) + local extlen_pos = 5 + 6 + 32 + 1 + 2 + 1 + #tdis.handshake[TLS_HANDSHAKE_TYPE_CLIENT].dis.session_id + #tdis.handshake[TLS_HANDSHAKE_TYPE_CLIENT].dis.cipher_suites*2 + #tdis.handshake[TLS_HANDSHAKE_TYPE_CLIENT].dis.compression_methods + print("fake_default_tls size "..#fake_default_tls.." extlen="..extlen_pos) + local m="1,extlen,sniext,host,sld,midsld,endsld,endhost,-5" + pos = resolve_multi_pos(fake_default_tls,"tls_client_hello",m,true) + test_assert(pos) + print("resolve_multi_pos tls : "..m.." : "..table.concat(pos," ")) + m = "host,endhost" + pos = resolve_range(fake_default_tls,"tls_client_hello",m,false,true) + test_assert(pos) + print("resolve_range tls : "..m.." : "..table.concat(pos," ")) + m = "1" + pos = resolve_pos(fake_default_tls,"tls_client_hello",m,true) + test_assert(pos==1) + print("resolve_pos tls : "..m.." : "..pos) + m = "-1" + pos = resolve_pos(fake_default_tls,"tls_client_hello",m,true) + test_assert(pos==(#fake_default_tls-1)) + print("resolve_pos tls : "..m.." : "..pos) + m = "extlen" + pos = resolve_pos(fake_default_tls,"tls_client_hello",m,true) + test_assert(pos==extlen_pos) + print("resolve_pos tls : "..m.." : "..pos) + m = "midsld" + pos = resolve_pos(fake_default_tls,"tls_client_hello",m,true) + test_assert(pos) + print("resolve_pos tls : "..m.." : "..pos) + m = "method" + pos = resolve_pos(fake_default_tls,"tls_client_hello",m,true) + test_assert(not pos) + print("resolve_pos tls non-existent : "..m.." : "..tostring(pos)) + + local host_pos = string.find(fake_default_http,"Host: ")+6-1 + print("fake_default_http size "..#fake_default_http.." host="..host_pos) + m = "method,host,sld,midsld,endsld,endhost,-5" + pos = resolve_multi_pos(fake_default_http,"http_req",m,true) + test_assert(pos) + test_assert(pos[1]==0) + test_assert(pos[2]==host_pos) + print("resolve_multi_pos http : "..m.." : "..table.concat(pos," ")) + m = "sniext" + pos = resolve_pos(fake_default_http,"http_req",m,true) + test_assert(not pos) + print("resolve_pos http non-existent : "..m.." : "..tostring(pos)) +end + +function test_get_source_ip(opts) + print("* get_source_ip") + + for k,d in ipairs({ + '127.0.0.1','192.168.1.1','10.1.1.1','1.1.1.1','255.255.255.255', + '::1','fc81::4','2a06::1','2001:470::1','2002:0101:0101::1','::1.1.1.1'}) + do + local src = get_source_ip(pton(d)) + print((src and ntop(src) or "?").." => "..d) + end +end +function test_ifaddrs(opts) + print("* ifaddrs") + + local ifa = get_ifaddrs() + test_assert(ifa) + for ifname,ifinfo in pairs(ifa) do + print(ifname.." index="..tostring(ifinfo.index).." mtu="..tostring(ifinfo.mtu)) + for i,addr in ipairs(ifinfo.addr) do + print(" "..ntop(addr.addr)..(addr.netmask and " mask "..tostring(ntop(addr.netmask)) or "")) + end + end +end + +function print_current_time() + local sec,nsec = clock_gettime() + local t = sec + nsec/1000000000; + print("time: "..t) +end +function timer_info_print(tinfo) + print(" timer_info.name="..tinfo.name) + print(" timer_info.period="..tinfo.period) + print(" timer_info.oneshot="..tostring(tinfo.oneshot)) + print(" timer_info.fires="..tinfo.fires) +end +function timer_info_print_by_name(name) + local tinfo = timer_info(name) + timer_info_print(tinfo) +end + +function timer1(name, data) + print("timer "..name.." fired. data="..tostring(data)) + print_current_time() + timer_info_print_by_name(name) +end +function timer2(name, data) + data.n = data.n+1 + print("timer "..name.." fired. data.n="..tostring(data.n)) + print_current_time() + timer_info_print_by_name(name) + if data.n>=4 then + timer_del(name) + end +end +function test_timer(opts) + -- anonymous function + timer_set("t0",function(name,data) + print("timer "..name.." fired. anonymous timer function") + print_current_time() + end, + 100,true) + + -- pass function as function + timer_set("t1",timer1,500,true,"sample_data"); + local tbl = {n=0} + -- pass function through string name + timer_set("t2","timer2",700,false,tbl); + + print("* timers\n") + local timers=timer_enum() + for i,name in ipairs(timers) do + print("TIMER "..i.." :") + timer_info_print_by_name(name) + end + print_current_time() + print() +end + + +function test_rawsend(opts) + print("* rawsend") + + local ifout = (opts and opts.ifout) and opts.ifout + local function rawsend_fail_warning() + if not opts or not opts.ifout or #opts.ifout==0 then + local un = uname() + if string.sub(un.sysname,1,6)=="CYGWIN" then + print("windivert requires interface name in the form '.'. take it from winws2 output with '--debug' option and call test_rawsend({ifout=interface_name})") + end + end + end + local function rawsend_dissect_print(dis, options, reconstruct) + if options then + options.ifout = ifout + else + options = { ifout = ifout } + end + local b = rawsend_dissect(dis, options, reconstruct) + if not b then + print("rawsend_dissect failed") + rawsend_fail_warning() + end + return b + end + local function rawsend_print(raw, options) + if options then + options.ifout = ifout + else + options = { ifout = ifout } + end + print("rawsend: "..string2hex(raw)) + local b = rawsend(raw, options) + if not b then + print("rawsend failed") + rawsend_fail_warning() + end + return b + end + local ip, ip6, udp, dis, ddis, raw_ip, raw_udp, raw + local payload = brandom(math.random(100,1200)) + + local target + for ifname,ifinfo in pairs(get_ifaddrs()) do + for k,v in pairs(ifinfo.addr) do + if #v.addr==4 and string.sub(v.addr,1,2)=="\xC0\xA8" then + target = string.sub(v.addr,1,3)..bu8(u8add(u8(v.addr,4),1)) + break + end + end + end + target = target or pton("192.168.254.32") + print("ipv4 target is "..ntop(target)) + ip = { + ip_tos = 0, + ip_id = math.random(0,0xFFFF), + ip_off = 0, + ip_ttl = 1, + ip_p = IPPROTO_UDP, + ip_src = get_source_ip(target), + ip_dst = target + } + if not ip.ip_src then + print("dest "..ntop(target).." unreachable") + test_assert(false) + end + udp = { + uh_sport = math.random(0,0xFFFF), + uh_dport = math.random(0,0xFFFF) + } + dis = {ip = ip, udp = udp, payload = payload} + print("send ipv4 udp") + test_assert(rawsend_dissect_print(dis, {repeats=3})) + ddis = ipfrag2(dis, {ipfrag_pos_udp = 80}) + for k,d in pairs(ddis) do + print("send ipv4 udp frag "..k) + test_assert(rawsend_dissect_print(d)) + end + + local ip2=ip + ip2.ip_len = IP_BASE_LEN + UDP_BASE_LEN + #payload + raw_ip = reconstruct_iphdr(ip2) + raw_udp = reconstruct_udphdr({uh_sport = udp.uh_sport, uh_dport = udp.uh_dport, uh_ulen = UDP_BASE_LEN + #payload}) + raw_udp = csum_udp_fix(raw_ip,raw_udp,payload) + raw = raw_ip .. raw_udp .. payload + print("send ipv4 udp using pure rawsend without dissect") + test_assert(rawsend_print(raw, {repeats=5})) + + for ifname,ifinfo in pairs(get_ifaddrs()) do + for k,v in pairs(ifinfo.addr) do + if #v.addr==16 and (string.sub(v.addr,1,1)=="\xFC" or string.sub(v.addr,1,1)=="\xFD") then + target = string.sub(v.addr,1,1)..bu8(u8add(u8(v.addr,2),1))..string.sub(v.addr,3) + break + end + end + end + target = target or pton("fdce:3124:164a:5318::2") + print("ipv6 target is "..ntop(target)) + ip6 = { + ip6_flow = 0x60000000, + ip6_hlim = 1, + ip6_src = get_source_ip(target), + ip6_dst = target + } + if not ip6.ip6_src then + print("dest "..ntop(target).." unreachable") + test_assert(false) + end + dis = {ip6 = ip6, udp = udp, payload = payload} + print("send ipv6 udp") + test_assert(rawsend_dissect_print(dis, {repeats=3})) + + ip2 = deepcopy(ip6) + ip2.ip6_plen = UDP_BASE_LEN + #payload + raw_ip = reconstruct_ip6hdr(ip2, {ip6_last_proto = IPPROTO_UDP}) + raw_udp = reconstruct_udphdr({uh_sport = udp.uh_sport, uh_dport = udp.uh_dport, uh_ulen = UDP_BASE_LEN + #payload}) + raw_udp = csum_udp_fix(raw_ip,raw_udp,payload) + raw = raw_ip .. raw_udp .. payload + print("send ipv6 udp using pure rawsend without dissect") + test_assert(rawsend_print(raw, {repeats=7})) + + ddis = ipfrag2(dis, {ipfrag_pos_udp = 80}) + for k,d in ipairs(ddis) do + print("send ipv6 udp frag "..k) + test_assert(rawsend_dissect_print(d)) + end + + ip6.exthdr={{ type = IPPROTO_HOPOPTS, data = "\x00\x00\x00\x00\x00\x00" }} + print("send ipv6 udp with hopbyhop ext header") + test_assert(rawsend_dissect_print(dis, {repeats=3})) + + ddis = ipfrag2(dis, {ipfrag_pos_udp = 80}) + for k,d in ipairs(ddis) do + print("send ipv6 udp frag "..k.." with hopbyhop ext header") + test_assert(rawsend_dissect_print(d)) + end + + insert_ip6_exthdr(ip6, nil, IPPROTO_DSTOPTS, "\x00\x00\x00\x00\x00\x00") + insert_ip6_exthdr(ip6, nil, IPPROTO_DSTOPTS, "\x00\x00\x00\x00\x00\x00") + ip6.ip6_flow = 0x60001234 + ddis = ipfrag2(dis, {ipfrag_pos_udp = 80}) + for k,d in ipairs(ddis) do + print("send ipv6 udp frag "..k.." with hopbyhop, destopt ext headers in unfragmentable part and another destopt ext header in fragmentable part") + test_assert(rawsend_dissect_print(d, {fwmark = 0x50EA})) + end + + fix_ip_proto(dis) -- ip6_preserve_next requires next fields in ip6.exthdr + ip6.ip6_flow = 0x6000AE38 + ddis = ipfrag2(dis, {ipfrag_pos_udp = 72, ipfrag_next = IPPROTO_TCP}) + for k,d in ipairs(ddis) do + print("send ipv6 udp frag "..k.." with hopbyhop, destopt ext headers in unfragmentable part and another destopt ext header in fragmentable part. forge next proto in fragment header of the second fragment to TCP") + -- reconstruct dissect using next proto fields in the dissect. do not auto fix next proto chain. + -- by default reconstruct fixes next proto chain + test_assert(rawsend_dissect_print(d, {fwmark = 0x409A, repeats=2}, {ip6_preserve_next = true})) + end + + local icmp = { + icmp_type = ICMP_ECHO, icmp_code=0, + icmp_data = u32(bu16(math.random(1,0xFFFF))..bu16(1)) + } + ip.ip_p = IPPROTO_ICMP + payload=brandom_az09(math.random(10,1100)) + dis = {ip = ip, icmp = icmp, payload = payload} + print("send ipv4 icmp") + test_assert(rawsend_dissect_print(dis, {fwmark = 0xD133, repeats=3})) + + ip6.exthdr={{ type = IPPROTO_HOPOPTS, data = "\x00\x00\x00\x00\x00\x00" }} + ip6.ip6_flow=0x60009E3B + icmp.icmp_type = ICMP6_ECHO_REQUEST + dis = {ip6 = ip6, icmp = icmp, payload = payload} + print("send ipv6 icmp") + test_assert(rawsend_dissect_print(dis, {fwmark = 0x8E10, repeats=3})) + + ip2 = { + ip_tos = 0, + ip_id = math.random(0,0xFFFF), + ip_off = 0, + ip_ttl = 64, + ip_p = IPPROTO_UDP, + ip_src = pton("10.1.1.1"), + ip_dst = pton("10.1.1.2"), + } + + dis = {ip = ip2, udp = udp, payload = payload} + raw_udp = reconstruct_dissect(dis) + + ip6.ip6_flow=0x6000583F + dis = {ip6 = ip6, payload = raw_udp} + print("send ipv6 ipip") + test_assert(rawsend_dissect_print(dis, {fwmark = 0x8E10, repeats=3}, {ip6_last_proto=IPPROTO_IPIP})) + + dis = {ip = ip, payload = raw_udp} + dis.ip.ip_p = IPPROTO_IPIP + print("send ipv4 ipip") + test_assert(rawsend_dissect_print(dis, {fwmark = 0x8E10, repeats=3}, {ip6_last_proto=IPPROTO_IPIP})) +end diff --git a/blockcheck/zapret2/mdig/mdig.exe b/blockcheck/zapret2/mdig/mdig.exe new file mode 100644 index 0000000000000000000000000000000000000000..56a4fb097f7e5298013952a9230280c37dc6e98a GIT binary patch literal 130560 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 literal 0 HcmV?d00001 diff --git a/blockcheck/zapret2/nfq2/WinDivert.dll b/blockcheck/zapret2/nfq2/WinDivert.dll new file mode 100644 index 0000000000000000000000000000000000000000..b63927441eaf2c3e39354309bf4cd5af4eaeaa7d GIT binary patch literal 47616 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%0A0F;Lb6usweP(dk=OO-@&g+nO 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 M7(DZxZNnA#1>Yv7CjbBd literal 0 HcmV?d00001 diff --git a/blockcheck/zapret2/nfq2/WinDivert64.sys b/blockcheck/zapret2/nfq2/WinDivert64.sys new file mode 100644 index 0000000000000000000000000000000000000000..218ccaf423ef0a67696226f9ef3a09149e4441d0 GIT binary patch literal 94144 zcmeFa3wTu3)%ZQRGLVE5gwa?pM2$6yVr;x526TqZz!{xL6cMbV(Q3rjD#eM!8zxLf zm>x!{V)d<7X=_`pz7?%PK!pq-3837piq`_#ml;L{?OO;?ng4I?J!g_|vF-Q0-}C?e z-}CWsa?W1+w)Wa~YpHkaxY8frcEgRs zi;4!6rHdZ7c>RM%eYoT!`#I;;_K#hJkN?fN9}Q9OGd_~=Q6Db-XgKe4US0a}@#_8h z$4995V)bqbFaG#Q!r`#zBYC%kUsK`BZvMe!Df_^d)cYKc8}4^HmK|~G5A3*|juRaP z*#jMpB|v_mp>2bB7pre~mb~OU+u<0%OP+j(f;t=>ydmPl?`8pMAfPkZuYsi?j5<_;nl}`5=;okI$7mj#S@@KHZimAhu9G>c z2slcq7+N{@^Yr@Xb~w6*Ptgfg8)>V%AlxF1WGN&22rL5SD1j|Y$kgv4z3)A}AwDy=a zZ#5NGu8MaZ=Wrx8L&kO|++s$GW=g5iqKUj3BYERgC~t-eolz^HNS>Eh%5{GS7)Oi7 z5(q@|<`|OAb%La@*2Uj@&f%ze!5X$8yNP^t9V<5w^m*?v7pba*)+{YKdOTV+O$^9wLt{eNC8_!V7rVD*mxPgg&jxNt{vfuN9lsT~=VMgUS( z*`(@Ct7u-TNR`?xubSBHBg|o4X8T)kr~Csu6`xvV?%rZrd(GI6JTuj4S~-GLK1>>^ z?WVGFGqfYCDc-xWx&U2D=<|tn)}<8zYj)Wz7|COKN}kCw+J4D*UAV(&n=9O9UF!5z zerOawG>1^5aog%fWBU3=u+Y<)m0v1!UNLdGQGD5yKqOG+ z_FJn15pP+QXORdPFYHipU?Hn1L?X()ktfP#lZq1G7C>oau0qTw{h>eOop+~e(EL&| z-i+Q-w#aP#d>$F$)d__Vta61J@ttQ{qoxF`jRDK!3|N!y^IKO|0N!m{Gdffy#bznt zlr_p-xiRAFM{~N2L3P{A$oRov6wK$NAX#Mjc0_yyojyZU2#-;0HUK}#PHZPUCY|t@ zPTx>Fp*tY0B};uhe_Eu{M&pfDxhik*CMj!5s5={4ZW3B{H5$Ivjgh)x3Z~Ktu{ELX z$TN%ud`@3a<~chlFw~vZ=rN{u2u$cIMW`$QrE_N0ok`Rt(^}&t$`jg>rHCCUD^GWb z;alblcLbuo-NxKyk;}_U{nllr@zzEmX5D#a<(u($ekxy~2CNZ*Y`d=|Y zdSF#g54q?ksqwWZX|Gjj=Pb!S!i-qvp(jCF)4*CEzSJ6A3=qQ6;crUc4 zAUGfp8K1+mFZtboRreQ=+-F)eb7&hlFp(Jx3I~{>?OC2#&bp{O>&`DJxk1Y5UBF-p zC`gtCEZ<+u==g%h#!P+>`Qg@h)~o?$^s=lwcaR-^9am};kE=H$_mqKYsDp}n_Zn&X zb{fpOT6aOD?wCV&ok|j^J1*UKM)AXT*QI++CFt92Lv^>U^&QY{gwq|i%|nm*Dpz@> z*W&ALP(5~v^w>#H>mCzbCf#G#UNdPqUG$7Vti12_Pj^vUnT+ay)mFBNw+I7|21wuZOl~K`K;&%ggFPtW*S&FY3vT-~O0TWwxS)(C^b6r-nQ zW)J9^Av9D0)(DSiNzDeh-2)G9J2 zE%znSp{TqDi4CV5hQc}VL5~WBb)$Pz`p#eVqI3^^AIk4TUy&ceo77;ls!h`WH}T|U z2!;%${%JG=`rith~FJO(o zPsnEv=d&5kqDaWd?VzB_4{7`y`Lc&bpJ|uLc8zCOELW7GY*C65NsFw(lWhHC(qZ(ENeAj5lMbVQXhBe4uO%!xg;cNSFB!>5SM&`fh?TVMt8X9=>dx?6 zYm5cVxzpFf+>CNjA-o9rwEi$_{F%(EyL*Y#oOs#8($uuVkX9n*pj7rz9^hj4_;Cm7 z4*!vD_W-(ssBCvuShY%?-l#g@Qaa$}GMU#ZchQuGI`}%M1J;O&WB5Mt>{^~1Ea=Qp z^goXL$}1NoeEsM%??qL-eQrdLLNI2@NNF%6sdC>Ej+eVZJwJM+*= zMV~>CA0J9Nwg&w$2Dby5|1kWIuB2Blu-v82%9PO6Uc6}bJ)Ghk9n+&Xn~{5A+MR^^0w3`ZI?9Kd4_YCzi5Q%ZqpYR8zh~HCG!b z&K7OCw_zeZ#t)%iRPVKW;6VN2xK8}<|N2EA{Q`@)^jLoU$cXef!ddlkWTI0f?&M;>)on(mlmsFTI|Gr)@jztC=0K!*Q_AH+ zaGBP$Vlff6z!m`#MlW%uTyH+>a9Av%?ltu#yZXFyPQTCGcGpp zY9q|@$zetYnURZ})x(W2^3D-j@*021wUfW5_2ewUEIPZagQ-+pi)}f6_r}OMvS;@OPi*t?XyduDtwTMO zP&bxzQ6#WQ(R=&y*!t1lXx?Q%#jr6NubURzaX#0)lsG{Fk>n97)$A z*)e_VRJ)-m*L29M>DM%H@dWS9cc5IRToV=1i(X`1#Gb)J7*ITm+KZ(q+5r}R>)n*= z?%`qqf4Pjbyq_-jB2L$<_}9wj3A}Yh2QS$}u>Y~YGEtVY zLYX@2eS2y4dkG4~p5#O3WZD~m1WGTg5(yCsk3BmN+q5r%Mt@+T64yOFAncCe@28;sb94J28#h%~AG#wdGJR z>zq1ky={nRtHid&zi&5A)8HUcJtME$kPnJ30UA?$WSt16o?0u_%&x+` z>mXMEbNTmky$r*HyI1w^|IYm;Mq}@_#J6ra*-RUsa9yTbMNF1R|CElO z;JLz#K3`TWTcNF=??i}VRsZNKUb6KRjx(DW#d(i2%~^S`D09gBMsbmZBjL?5)kLE$ zbhsG}cM$6IJ#(U?4B6?M&t{&L_Z;brK`JT|Zdb{}^K_BTQdq>-VGN3{S2^3i<2csw zHHF`*GfBFyiJi|o<=XITwefhi6&CAxs5^gJLDMOr*F~0PPd&afFYjyl0)xC9`Eoei zoq2z!8T@N8qjis^Tnpz>p;gp{DEBO(Oo!RNZuhuPfBX1~(ty=z?*8#(W^8Xi(^_W6 z;uo4Z>-~oJUAF5O_|28Oz;q50!P~!S4ztARVTJoFGwPcs36Kn=G9#|Lg>dW%11n`t zYA%&(B26tR*UcwqIjl{Lk6AC}Nt*HV*b5K5E1yN@fKtkJ+lkCTWUOH4vuVJqth754 z_p7u;Lj>pcBcw2EeaaO*iIkRD#M)(!qlCYmAtlt=aQ2s;0s66m-ef~9HqVMy0SkBB zS&(vVqrSumQb9ED)uGaNUF8a0-}*olX$pA7@dExlSA#cEY!}es#|ShIvBB53S<`5u zpzfAGru=D;Ka))>@5&vLis_z=@0_T=WzWK0MRwj3r5N54S2SNmC8r1o23CXRZ zqf{&2R}n=62ncpn?7={DRpCV0R;Z9lL@7`Od*SVg^5<#+D~!|@LK-c>C*^v8BBe|2 zM2(UHtfJ>n7c#Cr0m3-JhyA{2ox>X)H8FnIgMtgw3(c55Ug32gi8Y}jKGY^3J_MaU z$3#UH+NJP0Z0&H)PKhk-^ocu#!#k^~sMD9Lh~cZpCj-xgCWdH}u+d>?b#9r>QrE%; z3OmqfryZXSlXkpIJ2cB(XvY)RrQ(h#&2lU)q+;lN>z54f_ZCUr@fGN}I!^(4qGJoJ z_egO$DdNv&qC`qW$L>;59*KG&6ZKB7sNoWIdnRhJiqZuhBT*AGQBU=Xa!S<5OjH|D za9F3WS!rw$AB;49O696f-;|cDVxe18{C%VVUL9Y4!AoYKj(?<5ve7=C?)EjHba(o0 zklc}`$(_E2maIZY{1-aQayv_uEOhO|gc;_tO)s4jTAjl4Wix3tO?D$TAmNWmRk<<# z=L~!u@c4ww>|`Pd@uT=1*7|rX1O0=B?iA>A8R%RMJ%1k1M>0@cOQeK0f!>#aPS()1 z0=+o{y-Y((eg$+~20B7RxBeFB$P8318=^(0{|@LW8ECOid#;o)C3Z8f0KcVk_Gf@fkxBN=DUEne*@%h z8!{Ql0|L3(hA@2V3Gz+BChLqBczhfsO?wYAv);!R(5G(PY z1tpv;B>sMh-^b2k_`^H%;w6Ykalwholqh?vGs7}^o+y*i;J2=-@LRW6`K?bq*IcWe z3NqTU_AhXH7SlwBvG4SvfJ$hMm@WV_{cpdvVSN7H;w4#++r1 zyVq+SUCsC7@oxxyj+o2)CLt|gdWXdW*867r&%EdT^H zmQ`kWWAL1Sb%fde+Yet!tlQV|ifMh{8K_)u-BoP1e>LcUUPF;O$O&dOa|SD9sX z1tPg`M$J44N6oCdN{=(tku5-vFs(RRFR9-RRK@_WNP5lKmeN4whU7@utZktt z8r5`+8Qv8vOcxxe%ugOAyNgqZ3cCE3v!@JQW2$2bQ;EY`J51Iz#!Q5Uqh{^Yv7s$F z-l#j@qn4@OVXI_EJhPt?HTVC`W89Xz*6PYx*=X#D{mr-!Jfr46{#FZkr7!Bn`Njs< z#O`=Y@UNi8Xl~iCoz}Z`(cCUj^hXQV8be{v<+znN&B`n@>Ua7hZd|Ii<4zT@3d=l8 zNB;4pWu7H7S0}@!^_Ce+l(vse{`nOAv8=ZOR)D?Byr!8jACSkS`Gt(9pjR5;p zvaY9+b#^7v>Te~OX?5EzF>|^#oy^!aR@`d{_b%Vls}=IymsSK-e{|3vU6M_8LRY}* zN*AB*F@?|;#2_e=E{2=oax>OZXy$bJMFsBYXD;~xj4@5v0@#M-{+ux2`CEH(|n;}ijO*MvgpFngfy)#e>ArO%+ff$Pj9Dj>P4S_ojf)l zfzf&!qphXFPu3a<+msXzN@FCXx0Av`2V%5ASVL!n$QiynkR=XFqeFL?8at|EZ5l}j zq%o3#b0~~}sb1?dKyl*D6J(TWvVgflazts_76ga?(r5-vS+H5hx zw!>vxVKHPyz(VwJ{8o(Y#|0`$xvb9^qYdpZ-gL#0DyPP1S-Pu10u0Dk z>StcbMm1vuG6B39&zsIX#?;qKn}PsBaI41XBx*Ltzj;V5-jzNfuR!^YyxB~u4kzIph{4tN&d`U~lTV4kdiL8qx* zrjQB>&o;u>Q8`L$_(|eCp_q7$-H~01ujfkYSiYM&BBQetHKZbA2N{hvX%v}rjc{2y zv)KGi%Qs&NKzmr}>pZ{p#uX$>wQl8)Lye@BMzPx&+fr-{^3CJ3#Df(nP}oZE+TCVC^$6GQMMRImM7=e*9b;nLn!9nz|G+Ycw*LpdSS+E%~!#SU9>c z7S9cBHhj^-R-xso_~R8Wf=G^tZyw*p5#Q4uV_~fEZCp2ee~5Z=8?hcZ@{{$dA=U3E<|3h+O>)RL@qYMOZlP!{VF>Wi}(~8{~HY&bZ~vDiB(%4Ds^3`P={F+l4$uCsS)P8X@a2G-xq+ysoZLUj_gdc=3%X<5oUypGpgYuA zUh|FD7?tuwCv0M6am|ucDzrD-m?55$xF$@@;?K&FEG!(x%xqxBg0`%uz370mTj%m( zojHsw%v~u_m3-mPjPQpfuGwJBc$+t)!kz7Tjf@U!C-rZNed)ATdSahCPwochE!Y(L zudHNowD6ZQnv(sZg&)g@WXE63fwZa^w!w-aH+{n4-^ZBXw?0T*uP|9wW{k))W}J@T zpo!Viy#ATC84Et3d7m1wPqSA(0@wWK34{`P!G=(xAXpvRbE*-RO{zdO z9dER~$fuI*9%wLySvvAQ) zNhV_Fq*!C9yMF3Lx`bFFSLC~hc5lsUuQ6t|RG6tNIZV$pwDNdRntF5^9rRiooupGG zsk2tsg}*S`WG|=Y8{aH8FPQ2glMu_R>mqgK#-lO(&T76f9_q;HC}1A+<(^CjA-75j zx=a=l&Hjk5xOEG#90@wZ8v&HaXK|h3r6^x193$ZpzH#eYW<1j2iPRx$v+5$gs_-r* zrSZ7OJ+jQx`e|w?43V?ZJ8Z9~fbg~yeHq(a8$6E*RG%2_FXna~#^XU@xz;;1wd2S&*;7)dDEz)DAl^m!y(*Xh+>`}~%O zy;3p0bRasd_htUNz_Xa8xFfv2>1fu2K34UEV(~mrXm7sZ?ewHphnEMpFDWI389ieO z1IuHLb9!pV6;2)Cu?bXB8!ddu%M$Y>bYQf%!Tz@svPZUMD8-qEcWoeN6;v%e)ibNG z*aNy!i_xc+;nFS)JM<98|G{$-p5Lt@1~w7h;kTL5{_EP5gdJ zGo$zAs_y<=no=c=sz{<)T~U}EAb(qz$#g8KCu+P#XR{Jp4+FL)_TT4l1OuTxS-~@e z69kh}ZVUoZ7n zO2#2Q^)t>(uS)#x8`@`=o<>2(%qE5`x6^-ijk-Vq*q-Ad;nyEF^zHA<{`Df03h&5ubdn<9UyV zLtDNbrj_THts#6*JAIv1R9zkdpbFiDec*#GLQegYG+X^$y2Tz&E*p9lpmPFE6OX{@b}a0hk#fI5=n&iEOv2o4FwbA#81x}CvE;)l_ZXi<563r(xp z8L&VyQ`Ij-4}XMm|8|5%-Y!=any(OV=A@&I^qVA0xh|1|b+Q@ed%=vr!oC+GSR;Ai zi33H7en%?S41SJZy0&wQnH{3RfFA_xWg#l~Rt}URw0rS=w@K5UD04vOw6BNfTCBjm z)}tBzyqw+E(C76W_4Kex!rW?N>a~i_R(S0ykU}xl?2KCz*?rX})!)Gm-PoyWbEz8rHzl=|_ zX1~$aDj)2jRRki>m$eXp{!--Ye6|FlCqK|6{yJkyjfE39T|2fU{wysV6)i0Hgx_j9 zc_hv32p$jC(+9CDxoCAi*)l=Hz5#{7dMD)?tD12kRW&UV+XOSHN zOQUL5pKG+qQc}rR)4IT{p2m`r9Xd!d8Xu<$BkWRvemW*g0@cl=*-b7plCN5XUlnur zC6lc&$NEnl-JEj$6at#om|~9F-jinz+my^Vhrx22%gk|6RJCFZO{y}&^gA*6ItJHWGEX7Rf6G^-U%E-n(xe9Z9fTl; zYRh10%aF8-lkMqr$d;{*AK#!`c8T4x<9b@QHszW?NLu!2E5-M2*%d^jTh=sD8WKKF zT4g=?n4l*NlyaS>a4Nc;p_bk^v))d*av3!+$RwcbhNoNsIi;5_I_26A3De~Uk4cxa z6{J}ucxLCA-q-8-!5~q8iGZ8)QdXes?I0$(Kj4}JlA-xw#T5-FWdnuZ_Ros zM21|9d?{B*GJ#mBute0v)$Tf~X{}k7t{2~<&Ky~jrCe^QKeWOv2XACNv(8NGm+0UK zlfBm4Y}J;MmO(+c%AhcVn#mn5PMxkYC%DY*hyCY8}H z2CoD;UcNRyNEgw>iSWMZZ5>eXDP@007SZ+`I3Md*y<)GtB5Adn1M%F8%R1MD7E9O3 zXxxg*<+t8}A}=7z;cpHEV(V%z%@OpNxVz)ir|@}m(c_e|p21$Zv9sSiK|b=Jj2^^s zxf!{(*!R6%fyixaSx;!-nQV5BnIczJ@ZD^7&TJtidb5MiIebVtkw>55%ZxlaU%%S* ztAkhM(JuZrMjm}r!^B~c&>UW*e@wsTskjNHKNSC0V;>|U zSi3>3swaqlfQpfQ7}VHZX7oWC>@Z{hm22iOOg1xt>RsTOLe=PlbL1s4D>E@a2ISel z($liPaO$hddti?89vGpfh|B5b=u9G@#)ph!$b-d<6f4bu` zG=E(y!j=vx>aX%WIFDEny0>7=VIsv{f`ggz836VO+m&?`j}vqX%(2&S2~+053Repq-l(4 zWhn>~k?CwY%Z%jc=?%x^le(1NvoBY-=RSD%zh(v04M((g34v zHJyi}#xR|60bo&NpOT)9x;klH{A?Zdxa5esRtV?>4VtAvF#!$Kpe7AkBA|V`s_QlA zRRP5{Xsiac3+NpU8lge22xyrGovJ}E3Frk4I#PpP5YQ7El%qk<3n-#NJ69`IpB2y@ z8uYOS{Z2qX(4f^C^cw-yYtTXsnkS%<8uYXV{Zc@uY0%F!=obPyN`t0r(4zv%)u10~ z&|Cq1b))Kqi5m1X0ezxDJ`H+6Kx;JUdm2=8H=yS=Xeglg1AL=r7t)=EgxhpnjwBCp zug&!m=0k7sq~~AT-hmGz>pn)Huac#HqK*X#S2TR(3$JQE!o&J@dL4grreDb4+@NP^ z8<#bi*4(lVM1z;zZL8>I#=lRT!GDCgRwmg7F;PsGnR$xvzS8HHSKrwJ)@~c$a%X9yf4UW=ZlS%*^Eo{K}19Ws0`CI9HIB za=me

PO_mR{_kvUOc%^^fr@xTL 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 z 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%0ASo{!{n!hXFEU( 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%0AsqOu~6>w++jl4IosN0m!a5@GhriRG(&lw5_1TT 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 Mok_m={2+h)7u^}>0RR91 literal 0 HcmV?d00001 diff --git a/blockcheck/zapret2/nfq2/winws2.exe b/blockcheck/zapret2/nfq2/winws2.exe new file mode 100644 index 0000000000000000000000000000000000000000..ac0457532be692bccab4413aeffc9c85753fdc64 GIT binary patch literal 655360 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 z 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 Z_~k2WJi{pe~r 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%0A1B=Hxs()f;M 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 IpDqyoAC4HhSO5S3 literal 0 HcmV?d00001 diff --git a/cygwin/bin/bash.exe b/cygwin/bin/bash.exe new file mode 100644 index 0000000000000000000000000000000000000000..59452eaa4590054778d92610fc19b8d346bc59e4 GIT binary patch literal 854035 zcmd44d3Y4X*7!e@q#*=`j>;$~OOSv;b`>R%!Hf(t(V%$29Tf>6?g}$3f{@rVLfa1F z?sea<+x2=~5K$o{kO37%+&~l%w{AxeT#!Y`_j9Uy64dv7pWmOqJP*^goO9~bsZ*y; zovLm|Ua-)Y>+|{Y_}AFz^DX8nf92};|Ng0_x^0&wZGEq{TGMs0zj962F_SN!T6Eo% zYcHE}>D5J5mtJ$twXve{6N{$AuPM6xnxe>=ql>P-cEZHIfj~jAM|#w7pKrp=ZG0y@ z`Jait{D3Om;p^*bos-kkH>Q=(mqXc7iVMAeaOM{%$>+FyOIDMN{Pl0E3SavmApNTL z`HG~}g+DkU_}-sN76yFx{)>XzfbWG;sc7r7MJSK9_WgLKIJdfu= zf93R|?-UoX;}=NlCF(cvT<|xz^1kEamtQsE@(Dst`lQ5o70-kI%29{D*SYkRERczB z6ad%!4{$SFxM$9yeh2mc;JNgFfEzz`DmA_>Z}IcL2&P*4G0~-`#)dKSJp+87 zC~Y5<{;@e7HCB{3l3#exUu8;r_L5e<0qYAXrJN_ATv` zQLTN(pvHKMw1R?xk7j8;OZ#_u8(-84etK4G-+R`z*|ge)n?4_$%M$`1CHm@Y&%p=bkefHi|0D_sma|>-6Mx zz(%c3Go|fR;Lt}}@d!=lVb3XU<*PKmsxa4Am>Z(0PD`Jn&aAT+9V0M-a)G%(!EBA1 z%k2*+Mj-b++=`~${zuKd5QrM}MRtwUTEn)COxDJ2usaHN$7bx?U7|-yvDRFCgA`lZ zE0;)D+efX|(d249@dDk0%VPn~w4+~9>-7G#(qC2HMrC#B)c6myZZGN6%14WvDy=Jv zDow{O=qtQO{r1iqThKXRmfMSfS#qI}G?!PHEA2_-qh@_HSzDn;zSO&v`=ITw9?~cF z`;v{>^KBHS!ULvK1JtXJYt9T}N#RoGEMHgOtNqB7dqI&zI zU-JZQ%0sFpyPaUB0&~bBZ4ns+&IHjJf1t6E(b+gujm{Wp=KG@$Zl)(t04#98DK#Zn_0E34{;57;(*z&AbDo|fvkywYDAO~sbyXG$hz^~K(} z*(bBfsLz*y8M(!WJcjdcWwi8{SPzDOWb&K%2K&`Nf%Q;eD_p4f=YZ&m_vu!0TWr7* znF$Eg{_hhld`4(ei20)@U-t?-7WsYVZkZvB%tdNwDy&Fxex+3+L-%Db=|9S{Vpfx~ zm{MkS8efS*n%Xevxk?$+>`kcc!RQZX(UZ;Sr%_g6wJBD7Ma^8hgW~J`GT|#Rxv{ZP zYVE_?=P;)SKwbEEMp16=c1H7%zWjEC)E<_tJx*%ZIsSy?;^E7Yk(X_g)ADU&8vZtTv{6Qco`d$qCKAMe0KEWqZZ zeRDxxEI*kFV|R<#nBfCfht1k0;##3E-#v)FTsks`X*0WclrL5gMW&;w2l?VBLSdB{ zG5{6mhXVR3b9_LpI|^zHjNN&2{{`qnfLgxHw^0lJqN(6N1$uiC3VS?i8#Y%aYxU$i zLdnwnNKhu^bH<=NJ^7j{EN^dw#tlKTQ7f7sYacaNW!grqQTb8JS94mvFRxHA;@gzf z7?1Sq-q+>%BIfoAa|IN;(0Zl$wacqgs?&jqTEp_g#!7$G%D3M}PEqS9e?v66G5%fH z+!4W`qyj!+^S?}~g-RO)@)vR=t>R))-ya-Z(b1N&45ZaqELNkum$|-p4xBqXNXhuQ zV~4uEa(Zi@t1_v;e;#P%vyM-TuzmKCU$tPUX7sYOTL+6O24|v}YQd;IO%is8nJs;G z@%t@({^MN<*Tdmmkgy-=4EM~k*GGspRe&yknb!`|q3{@4Dv(c1t1k7$TgucAkF8gn z*mHa3F*8?)(7%_#ZL3VZ05~6a#iB}|g#JleTKFs=ybS%2-8%uUMmMZU5=@qB$z z*dH~P`&o+1ro@Acat~oH2UVmfSsT{xs*RXRJL(sP$H>}MVg;t+1lkW{l3Y8jC+?uJ zN~=g_$1$L)S=)Ao%v!ZJeWX^Os{TybD5wlWtaZ4$tQcFc3d}e1`LQ=mZ{dqB={NrJ zYx+%{4CTT~tEvQy&R_`P_tg@GId}~~kFZ*wOf44>C0;uJdKXy$tDz{9;o|$@^n^}I z)FLfYOP@>0O<7u(H`D4%nc@VX#|3C4b#I7^^(U^Vy;W-aQM;rcwUf+3XNFAvg~DY? zma^VV`D4`2=_?@3zKOCAuC=cDvA_aKH7$w}SS`2SPox3EN?{WX>jT zl0I2|)-c1Ciki5(Vg>TRw}0=9<*>B!kwE9$729)s_8&(<<%20XK5MwIb;|*(TWjY4 z*=h&wjXi%x%jV*fn~HaS)DkLg52C$t_2eRHvu1_#)HU|?Q7d4aM1zy|%e3xuGTaPU zXEvxdT5G>jB`wrBRS3=wcVq~yXnTA8?fKXrH&1vOIigO5{m8l8EMN1lK zPKM)Iv>{nL^RQ@2tGZ9LKsyt{&RS5U`UbVcqEnZ~n{=v&l$qKw0{4uN9!P5o-SJZT zk1?Ne{{Lmn%Nd_h?t*Pc@h!}HG3WM|kLLP}ec1GBn45czvCkiGhon!$WVkjx^ABTR zi`WIqoUhNC^VjZ0+3vtdh#4-oSFy^e>Ghu&)5RK7TrQJ*3Z>!2vM*o;-wB2k-uQhB zA3iUuD@McEmpAt@T3dxF!>HRN-zMoAz|00^A6$DAHs7{{~>UhMS z5cZ?4uMJe{+R6yMOv;D#v9vvS(-vs4_7R5XDB3eZ^QAVn)!u)9jxV#(p0tt2S9ZUc zhPAZYKbXf-v?B9QyDd#;<{dP}l)rC(b`+zBi-Y}Z?%&THy#95N{(a--+S{$&{ymB9 z9K$2ST4sO+_+O+B-uXay<*Y9m&+ z>e4<~>ZpG?ZN`tOE}arP)NN7?ev>^6Mum8>A|Bs_eY}Fa%b`7VuU{2w}l0MQ+S4z4qY1&BVO8>HIb`ZBB4{yB~_7C9a6iJt69A^c}B-^NF=8TIitvgv$ z>&CC8byevu{AMYNypC^AT_-=K5v%*Iv#3l3KD!Gd7aT#_Tpl*pN6fAE7hz0PU=#KB zWA40v-0JiZS+G{QSgQrA_)l0*gXK)aawvUSBE3O-egE_(kJF$twoU72*j!}=Mnh~k zy4^RqdQLZc;PaSbOWQP*>7<=N6|@@D<%Q}2HCHUs=WMdPMn#Fv>DmVbqh_SI1aHs$G@2SyT%3*+7Yl>-@)nwS6L^Zn$=W&n2W-r=nS?y* z{iS1zi{}*K6@MXq$Ts|tm>o5LmMXjKIiFAJ=WY>OI%i2fEkHint7W{6@+b$X9ap{m z3#>0hAMl4oBl@GfqbiV=>qI>@U&(L#aG5kB*H~Lj>}{dezOYeNoEtAexM!U#wo0-3 z`Q@y2hsoY~HhJXPAN$6xZqh=#e+RZ5web%?D1yFN8$Ee5P(sKbyO#3yYV)5He;yV3 zjun9|kv(Re-*ct(L_N^0HUsB41?L+aAs0NUwVz z#7NVA>fxa96PxdicV(*k1n7ydb~Z5CWG%iNQsN&YT|F_Dj8$H;Yek`+lugGodGXHA zlFhLB*)?Yd{s7V#*e#>{-5zMz{|Uch?g94_UlKpUE}dp^)Yy2j?r=|S;9 z(^K@LIUb?3$^NN}GAt7!qAOb96hwGf)D?SH-pFe}8vZi*d_Mfc4|b;G*t`EQ*sC{`lGS&4T-4Pf2_{)nR_J0 z@HlYJAnMh;W4hl?0r3bI?qlHo#vb!i_1*D{9KH2Kv^h$TbHsBiOkLnN36f~VB0r|q zAR0v~=Gfxi@RJNNW7#5{s8&p^ODRC9TVw-h(VNQRB1F^)>_v#(C}D@Ab%YLe#)_z{ z;LJzXN7T0xbt@XMnvHt8I=h#&x2QENuz`B}W7cc4-oE-iweAW%cQMkFIk>aQjj>aq zbf%1MWpQsaAE#q_J9K>yR^415t;)M8>R;QqWzxbwJ0kCk(QkFKGKLB1ndnG`7`<%f z1zC`cK|VI);S&7D2l2`1l<3DH(wZpCVPuL22@+!TVcr5-;TrzzndWX>sk9 zjfnN3tnpNVlX)2HYzI0?=tFI;TCus(lmCX8%-fmh3BcEXESKPCdJ9J$XLjruh;P{WYZB zfTOH$!lP)cb1ud1xT-jatYcUk>7QD|CF8jyviWZeZax*&{wXq|jMx8%u1{VNR7KrC1 zR>!~67uD7;hOfrVZuha%Tm_jcg-q(S#;6$>M{@otjS$z8eWYP!JcHM(^t#v~m8nx$ zDYZ+<&#x?O%(O5AJ3$fnyRkK5r9^&CRMI`?M50x}fr4uVI?JQ+)#%JsqGIyY=Os<~M%a!RzTcS%u zA$ke%yH*5CD7JF{jnmvAbo-W*shmpeQVrdZu@}v3_tEOC} zh}DD&A=LrMc$pQ@B1y*0W|W6V1oQLK-^C<;?BSl1nb0xoXQe*wdeQXX-2U zhBM39lQaD}mx~?l!)XejjW3ZQ+8FO0O>6%kEq|gz7hcSOoZ4PSFRyxB;r^(((>`40 zDfaQ>sJV&oUer3HP}J%(dw*Nb8`jE_TZApRtrsNC4fgBkvf20k>Nrm6DT;jF0}>>Rf`{*@K{ z8nQKeJBeHq^AW?`b87Y;Np8;JHG4bqjK3YN3Op`thidYDng7)6Z7;PFkiC^s5!C~7 z76a9{WHFKe`4bbGx;|Mvo9WD)n!TN+jimUh;Er-}^@JE{xE{DbM6}$t&(HNaBV3r? zS(uX~PvwvcsXUfU_?&~z7Rn*_Sbwp^gQDi_;z0wTAMnZ46d(2wT2;QP7|ZIJeqXG8 z^~@Y!Y=#{Wb~#JHbQL&1(Dk>0fQmLjaBKEAp6v5Y&yR*032jd&;Cwb?vUbXN01m^- z8H4<>DWs23XTWaZOM!@zjIEa>TOx)Gxxz`9_`q# zw}Fea_G?d13#Az|_!U_ow(_u_suF2xpOVhpRAJg`OGxEPsa%D2X8Ox2+g}<{8^>tr zZ__$Oa|b>tL`*xHtKCnkp#_oE2Kulg{wsW6+fO8hxT3uV=}8%JRHZz7@DXMrK;<*2 zT--!u%wMQv7UQC3D&=QH)Z8r3li@4LgsPt1fn_i;MF!5l2l>zJ#6*bp+-raTd%n-u z-53iPyAQ;cMXT1zSwb9iuUp!7(C4@7A59H|*NmQ!jfYI0)YL}VHu>TY%6d)gmIZ^> zj%aQzPeDp6v{{*=-fqP_;e0DfBdDpgdpExa^n_9|W3OMoxt-{fF%;Dl2i)B;LYoGp zN6r-#+I9I%H}9x4YQArNR%zD1QI5Rr#h145nKSZP3>JvCnxhIyPIZ$-B*(c)R`uXS zH(7!YNXi_Aww{Nn*{COKpp-5z6TJa$Wj7&I$dJEDs`~UooW+6tL2+j|o0e|XLw&K% z%BWS(L8A{_EIL&^2esy;Y^QzvA<}E@n;t?)`&J%lZ7UD?OKU5Hi85!Z@bd`UeF zNHq*Zniv>NDpMotERz1W(82O)c5VUmtw2YCv%7(oG^t?L3lJ zc#x@`PC_<`u@fz=3IfKe98Boc>yYuV_*%#j(iW2)#%SQz#1# zVTv~(9c7D{lr@QSRRP@?Ycr(N3#8b;$oiQI>@#WaVoi=~Yq4clleGee0%8BNzlvTz zj)Nsj{9#7u451$@NNcA^f%j#~#$?0rok6X|q?h&6m3p zYIir?Lk zFMi_{)Sm{|c6aKTqpWpS;L9R9FrlBj$UWFnhE$t)f-AgBvXY8n?6Z=J{+;VM9aob2 zqlie_I&rMk%uybXtW(AHM26U}lPr}c%wL@AWR?%uje~bTZkEiuh`Ex`kDd@iUQtzB zUDnbU*Nkocm=>*CnK?9U+Rl?yMGf08Cy%jS9C_-C+Owspih#DEcxe0AL(%b}Mm&Cf*kNVPe;>6eg0fW%|qVzXCA$zxI zRYN8}YSj8mSH}7t)XI<2%J-aXPlF$GrCeaxV+S49esy6XHaydr3i=WM#@#u!x=7ZN zdVNvL`MC|laQ;()-)?3M9?NMSgY&yE23z{LW6)mBBJHc=)EMZ=GuYnP`M(p^iI9Tu z*3457SuI4yxA@6qe;#&#hr8>2othSYj z%`RX*>#-ccu0`q4Mdw*T58NQ_CRcMRGoFq_^~fswd!I-|J5OqeC$Vdnjjo=2si}ee zmNXE2`Z6A+9}!7nu%A+`3_M!V+odO#lTT|c$;zMD=6hQU-TKt19JV7;&~Twz-hb*O zUH_;dudskvX0&P}t!|{OA+Np9*@zO`BkMJvBl}fXk%`B!eW5EWIfroaDaT5jPm$aG zM_z|5v)-%FULr68>>Eqi%!UNk{M?0`4xCd#iQPx$VOkqcqw;5;L!*w#kJ|D$b4j@? zL2xP{_V(LofB~uZmWPX_11t{(c4UE9kKPI|qU-V8wIOGQvMnASe;=n2&dY$WNfOqb`XJ~U+O(pr6UvbH(- zb~Y&;Xj<4mAP!w=z8f*M8tT!Do8+OEyh0(&WbGnW<0IA=<>)Rszsb>^D`n#2cN(d1 zBgNxTp9)Evq0`i3;OX)Zr=8`N;VqUdF{V^-n*p*OsiQRb-BI4INA{$LM60wl6jYZH zno;{6>HVMz^FtM)3om8?5+%HPCxep;bmd|9VK8OA8zgOPLG^lRKPW8@zA2P$Xe`k0 z;=Fyee-%5Bo^^PePf-3By5dkkx3vs1WD4=lLB^;FRQ6we{_fF`mjNn$3@lfwK|zXj^Vl#J;~zA8MbyExk~Hw!Uz{P zqSk2qn$wH8#DUvD7{&e>n`VRzVDe(eS;P99TBQ&I-qnHvzYH?_C!QjT{ukD#wV8lm zsC=32M(8}!z8Nd&(6!x_g^C^46pno87}ti(2rYE%2=1iuO&u?z&j(sBuGkLNv1HSFi^y=5L5j*b{z*V@q2A7Cx+mFwbu)%i9a>%oYg0hAIk7TQv3|Pc6CU z*K9W4x9jlzWb#{q`2gTS%;a%OH6DGOfMc*qD3sPs?@^J85TGU1kr+-n+sUcFGyNh| z+sn>Y%Rp2>InS~JL#4E*5Ke17NXsA7LnoQm{9b|mvnM!ZQz}Ypr}Pn4?UCGF?76(s ztgY->ANBttUJ7nQ?)-NC%FqIz z_kUsfHmdCcm+3nN)C%1y4|8ucH+X}jQf(w;bqUGJUfN_Hc55|#eikQXl)KoBq}c7) z9{Wb+2WovOa*Ab%l2F2VV>}D{v)xJ6FF$Df?aO~=i8>%Q%F^0`Cw)Hx-uI$d$#pXV z92`W41iv6RwSXO@mY9S4wTr|oNo*r-AR4QQ-dfr}Rr)rSUURsV&y$kCa?);;g;v%x zAKiGS5qg9Q-<%OR87~7^6IdvDA7{S7!%0bCxPbM)ruz(Xjg9*oE$tdo;xK9x1;9OT zl{A$hJx0@7epBk2Z0l)lu7{e|)-?4k-IN+hiVJ-(oC}afOJRiK(qzn!fuBrD{xZL0Z?i_tHAs8x2~1ARMMPgz ziV|EzR^Ha|WeO$EV$>4~7`;OP4l5r#IG%}eTwBTv!0v3$XiL%XMstUBNP;f)DxcXd z#?}h7Jt7nO_-|zLJ%X;!q zBu9LT68U59+%QXS!5l6HdXmkkluf2=SGvfBwnC>d>PBNvJ@FAJHI1@)))U{8HbQg2 z^UvvHghYigJx5aqf$oavNJaFvHI!wsK2ePZKgL5^EV@vd))UhN$EeG*PWeMEXL!-I z4{;5?4nkXQK*HEmAPvnw!WCuzEZKMHu`YEmec1}+;KqReQ zC=?Zh_SH;ct)400jk;ic_wa~Tt>U1dUB2uUwd%dC;zzNOjNT_@qWiL~l&YVoV&zL| zk3pt-@8$8+!qv0${nya+EtH6RnmLK;8_8t)l9)om2(>)~J&1QULZ3)NPt+=|R!YX@ z>U2Stxu~4p;5=$vRb^rnVx1RI;JUUj!kI%3q;H^%c4x_hL1DQ%Pm-+Frgkc+`tZ5U zA>hR}cF;caSH#kjn+5MPdUqTtyF8q_2aDHJIbfp-koJe6H{{38Im2~Xvxk!`=M|}I z{KNG{eZ%_F{RDhurQkqq7a`o=N?QAzl!PsWDJh|1xs1A%0BiAF(2uu`CBv< z_gAJWi~CF5k;vZXvdEqOn{1+S3n*&HBX<2|es*_SJyJMGPfGi``Z9G`5NUns{%~se z=CX72d5);VqFOxZ3uhp{s=ONZ#Eo0HAzxhSIsLNP-)Ya-pYLmk6rTyPo%XDm1S1>p z>Uz5uZ;o;sF%I}+9gG8WW9_(s-McY%hQ0`p`7Ikpa2$MCLrXvW^`1Y%-@vUt36b_7 z){U>cU0>9~u=|&_)aM;7dZ~iPKgS(5N$O@J5Kb#98hm3L%H`B?yCZj&g~xK?W(}-K z2c~0Zm#-Iqopy)a`2@+9hmFPwv2pyyh+G(rW89+$QssJriOl_&#;~4vnUrwM#9)A= zo1-8Y>VlviityYivURJQ z>b8Td>Tb=}Eo!P;=hZn^s|o6oeYC0im2CAH2UXwFRDD;rx}QiZQOx~UBK2}lpOEdW zm^WD0oUSwiX-4Kx_BWJ^>TDk_s`w(8&PoAmSBHcaqwbFl{>0KhxmC@8S44GpO zqAkRdYj<(U>5ERyO<*kKMs(SYdg2zI;-kr(bwVo~S?Y_1`#AQ@E4wl7aP}0@m)__j zpcil5(6T!ka-L{~lE_HYsW5lDf?U2=T34zjO#J){A-!Gkf$k7l!8-9fv{(DK;-#Zl zPlfI7)H*!XG(ufPR_5M}m6b@Qp=ofZ2zeRY^G|CU+|H^=HMrlQX0C>ps`@ljewi}Z zgiMVsxkhcl{FanG-&|JU>9;eQJq=ZBdx?d}x92}1@>tGl-d6GKb9wG=&ta&bI#*A~Y9CF#s$gZ-Y|=1v@GSeCbce)&nn?NVH#2%aTk z!H`84;hxCzSPd1@h0_t1n6ve+XkTiPlq6 z)-Rr-@pTmW+%;I;JjoKaM{HDbaQ4aQS=#&~&@*F3p^9>9H%QL94t3aRFA&#LbUZ$y zNyi5(cQoz1NTA)m`cv9}2O8}ZR)0Y{KZ{h}jHD@~1_pd`Yyg8c{Ad}plX$g=$#;^c zz&q`SA5)A8m0>$1x!rjfWn9vij))692SXxaej8hxSu9{bN{Mjz(Wy-w-X~>d8URZh zdpHf{b5*Q&W$D0Wtq9|FB+(#=!$`bF!gVftE*GF^6+iax;}rqtU4rehly1%-CzjI9 zUimAOyL0;@)hcs4IJK+vXyUP|M~Bn$akOmA$n(W|M^mg@Eyrdse!GF}AQd;{`IdB} zR}nq(Lu7u5EKbf?$O006TPiY+{pj;pHJY95HCsl#edUkv#^pWxW%L4(T&Scy@NV8U z7Rj_0F`fH>h>OF6o%VabdGdK>c$0i)NST>-ek4Q=qdmLGJTDneh@NX34LQz6ns>W5 zMp0!TQW~?$szZSW$C~@?p4MCjL#fBr?BuZj*Zh{U}}(&Wz_p#mdx)Ez#Y^u6p8a zEX&qjgVW~4IR|3L!ALG)#x8u z7r=b9CxYeeXH$WvuEi+!e_F;XwN%!U&28l6b4l2%mM%eT*Z zj8m0M=!pHVf0CM{`m1GFPTg?uK|w4xh`E;A>gvVLwDyU#Dx5=_L6=MG%}Qj?LthBQ zbc74}BkA{&j(hi5TPgj|x8Hx1hL>Sl>|$X7*Uo3(G8e07X?Nmt$i24&`xD9MvcRZ3 z?}a0TYV@sDXo3@5HX3{=tIQyTIH`NHbWFJyiqC5^GO=~qul ziQv+8>VdvcV&79P%BgiBE!)t*(^sMBUwte3w!9);t3b`4?Vs9mWc^TTL=Hir(gywJ z0q|<k8D&!}RLR111G$F09N(L&D6L&gUjCw0 z%(zg5oIPNpS|}D`V$=}0@2U+IvhaP`&r)#YdCThl}=Dq4U}i5p3z5DY)iur#*GJoDespWf@?M0w1Aq(bDCy zGP|cOavWGE1=4zV8kME)D;7lYKTYj6RfRJYR8_%wD^|@@t-N{Fd$B*)0}!s+;xEEmYps0>4Lx}gW!zKV&+x8` z9nDn%f_V>;BWgFMu#u^*Ck6w;bk`GN+GWTmO$F4 ze80-vK#DG9%ffOsGI@tMg$;hcW0F8-!)Qpcez%})XcGU~IBw1s%9Kl@CmO}6<{l`G z$v%OhHc6s_tf7gm%Hs}PE0xSsdEjASB6mVv{s6y#QY4a>GhDV;xTxsdCsNG`b+~%> zSpBX#ebKtE@0h__VM*earq&50Rhbm_ng?#4qNyD~8zJ2&lc6k!K<^eQM-tQIsAM6? zYL4g$*=`y`lo7h)5A2a=gyf}NLmN$ryh<^MrxL|s(jBEj3HQJ$_>gKyTObXoE+^$h zedh_t(w&&x&aTBZC~=Ml)zba}oJ7}#7@?yfnj7B?J3UENbLs0N(rflfQ|n@B>9pW_`q0W+DB9U-CvKFVj#QB(t@ZzzQWN!7I2~>2BBFDY9UT|eq zlo?LW@5`|uTxJ{1gT9Rgg3lBfGs^Px#B)H^bQc~P8#i;sXT1XXuc#Ax$fJ3j+?yb3 zEN-X5xfWD7y`HrE8GY`DieGI!ozKxIL(`CK>zPO=2~p?JIDwQ^7wbu<#H13cqPImEN5q-d}F(QGG{v32oX7 zzT6>LCka(FLKU^;ysdpJU#T{b?CgH_ZQm%SzCTKOOk^f_qfW{c19p6YqzYXd)M5!A zFqj4VBk}uL#Glm`f_qTKYwq_Q*_!a-Hb<^nxy@ZCv2E@zxV?*gNc!tGE}@mo<0eAWU$8L9V$-69e}+lU3H2D;WvpSWqr!b zCQh{M>e9L!_n13+u1b~X7+b1ScloOUH-k4pM6OL)f$K=w)``m8Pav%>aO1zlFPFER zC(!oN4zAM>KZ(qxFd`mAe6ZcH1|8d75If0S-WYsiw-9V#jJrTY41H>ve;Hi)G8cd* z`!QT;<8Cf#ykUQl;<3!oP6ElF87vJQ#ar_+&Db|L&P^R5vz|Ixz#!umq$!x+F^9aY z>X$0vS6TztwuZ9nS-!>e30p11v0O&d?hb?M75&Ya3miboQs?AwuNq3F@8~JH3?^aW zwz5#EMys0I$lTB6moa3cRl6GUj>n#CjP;@;0}gRVu*)v(r{85D4mY%4NnlU;e$HTC zUDw{E(r#UR2cl^*xb6ByZ)$Ni*iKT55kYVzg({xfm^|!Q(RGI9%XQ6`@^<|_R z^WAhg={rSult*lHmu!QFMJarrLbXpFHi}$P`)uw!OVbs_aTNE|T+9iUwpH;knK8=~ z(ubO(uOfCPkfX1&f`e2dhQ?eOO&irB8~&hh3~01CgYR=G0!5S^1u$i}Mq0j`Y|kwA zlT=7)Z9AYU>4_J~iRRBb9{t5P;b^$td5>Y0@Wvz*Q9ndANj7kq%389wB^#9aryp|X zqi(j-eW%33?fI^EEvzmFgn6>5JI zIaa9m5Zl_vd?B{s^nBaToVA7(o7!x2%^Fr>YCrudiQcAmqzH(+Q`n&=K(>Z)>H8K* zjFw@12J6h_q0!}}d$)Ac5z@7+1>AYJPLJBZ{mPhHqh%ELQYu&Bt!FX0OGzYRnV-1@DpQGU& zn=%FfH+*rl1aU0})YMLvLUln*>n)Uq6`9&A0Y@a zBc=BYzT{@rNa;O0{nyQ^kaZaIH^%l%kOBhfSS7r5mptjIo(GmEs+TRD+O4j0oA`6GF{m$bAsz?&;; zzV(&+eBB#=T-sRu9({hD(zMpegGy^hcq!LxSfOP|+_eX{K-<{O;r|LKi>2+7TKGN6 z&D$2!kC&5CEAS79**D%L_NG3w+Bn%4TfzI?6uN8F^hGYEZ`r|Qo?{HC2@Qa3>_WHV zG8TL>ZM^NU!JharbX5NalwWRX>7}#U6j>{Y^#!|>$TYdP;ji4@{ z#|^?%;PbI8+joD$;G1>wjg8N_0g<`KCH^JCV~K4EFVWKa*uAu`CvFzui4#d|c!T}G z8}7|(k_&q@MHp9d2|`{q@4$-$v9r|u3(nVs_dT|`nLu+3qQeC>fwO*QFpxPMuG=TW z_^KMiXs`b96C}F*r?1tx-7J7@MKH63*Hu)Cmg4`8n!jhBv)g=1Xz?$Rv>8y3De5T6 z?BdA-8jU^v*o_e@bTiF!+!&u@Y47et1L|tF`iN=O>=jc*{NqU3kc6Zrcru{X@A2No z<7Dl`WOybrKJtEfYSSpQ0__2**>k8uH4su-JDL*7*L0r@L?hA+FY7`+)6H(TQ8F@8 znZv`Wc}iLE*N;zY+W?h6xL&$fWCF|Tg{6y2^Y2fBn}!o6J6+WA-Z6Gq;x^On@|BId({D1 za5mV!&+t1{ST7a$_yQm=aUre1(E|1uU@mzlOdF6pLdXry0_}$rdv-HWM}X2=KT6>Y zOi^~HC56QCyTxbHt4lC*5;745u5#0Q;#OBQtwkqghr{>Gf-jO$JDk|{HG%yzpBKBcIr>An`=#>Sr-GdiPr{7UBDS2SM`?@5!-FnZF2e)CVN z&ESY^GkWq%#j*?^`zvVtUdR12RAyo^UC|d22n+1Q72TCrNuJIVEBj$eN+x;|MMl?>&wTALc8~e-Rt&FYv&0ufZu(TfhnswFREi;2hk$k2+ z)+$mOYELp2b7#lvjyO`0(tWY(jeR}X?3+7_mUCv8qd53f)I{~@eU3p8TwHNM_(V^f z-CYJjyi?~UY>E+jbvts52Wz^&Kw|&0thzcAsI|8cD9n80N^+QLGjj`FjC&2JeW%O^ zZ{K;Mh=oqgJ%Qiu`hu0+$frhpZtQNa&s$7Jy+qXIeD)OCZy$u06$vl9WYQRov)REZ z2IUHv^A&||f73SoU2g2|6C28nFg0vDWfG`Pe#HC@FY68lUA+a?TyBz&gKnQ%FFlgW zOwJwTVSaHF;%y31UXB9stSn;eU1u_omiEXt^pY!Rt8fsr3H_Dm4ZHm zNs!zQG}=boup1!K#8C=Vd$6eqFL*bkxruuaE#~pJTBWHadNNofvYwf7WqlMm8oNMI z*sDS^f&FBvXG@cbKf1u63`GU-&Tew9I&J&b)$E~4ojNwPe~z%YOin~0`kJC6^EbJM zsDpjI@UW~GmCoDbE$!DInpM>%9bP719B>|`vL+X=#v#(M}cQW@&R$amEyE^8+3MnxI}&!M2ozA%`s|oJXhNIv9prU z*P_9=Van*!aBy%R8}WTkFb<51^)n6}ttUT0E!n=#UnA#DY1C{m`utk}aXcTEj&YKexHU*C5#UpiJUQL6f_JK_wNo#qE4Psjr>-jY zkF5IUl=)>{d0UasuyJZ(fBA8~FZU|&%pWD@KlJ^4qJNvrFP+cxJ=u*ACY9_4kg|Jo z`h%V7PTDyUU*s>c>m;r6eF`47-vvFCw0hHzp__){HO-$6$j(#Tt_-9*tB=^~&T6d0 zK&80aDF@?xOUA=FoN6oh%y%-+9_H5*uWWmf?X8p`g&TPgdMPoq8%X_Mvb{Fq$@VM( zl(?C6Tx2`AU9)U+m26K^RcoiphhvT>T~YNh16Ua59$rqEZsFE4kt2>K5Z^e69S1wE^!C+JPz(w-9ZDpGcRHznw|NISj%F6dWP{{pY^up4i6gxNiN0dh)F!OhKBI^}mm9l}5r5Cv&5?$o&_b%(7Q-qfv@`YWp5Ysf3$ ze#{Ey4(d|uo;))RzSP{NX6cD`Fe$Ba!+SonO{QrzjCj-ZB9cokRY8~k!KQRH^W+->f~ zRG%MKT`~F$5g=woZ(&Ym#h^pzTq8$La*LGjl@yOvua1RHN9<4}Rqnl#iab^=l`Swg zYj)aSu9hH*)*_erDwhrZ4RQp8v4X@#KT^tt6ZMX@e5i<5k_WYjO_NP=-c;FiHK?oX zT;(*i|7?Yks4hTtCr*~m7b=RA(ZUIYpP!-#OR`)Q?X>gP zatmk3$f{bo6bsYs$%_{mV;Z_%B=?i(?jE~yya_qiLw@%Ib!B+$DXB;iceRjqD?}%2 zOK;RHnj6TGEEZurfRWq@LTIPGa#eow+LB-c@fV#~DZS;}J<`=@IZ4L^FCm?I;V*Cx zxo{5)T#XBN2Wh7*BvUo=3dj<9`GYUw)ak|zQ|<9&0b_}k+ayB_t)WSl%!A)%!2xlWb3ZI!~!+yAQ^3NW?xkAngoX5i+(pgEnl62;=zlrd} zLwS+ES%mMBwL87;if}0z=Oun*CvcuUUXI@RcCg2Ip3;qNTcl5Gr~ZTUUxzgJUiyV( zsm?j2A=1xZqApzgz*LJ?t>FVEqBqA%A6T*@sfnyJ+d$|k8f5SV1;iM|ND>JYk^i|* zhO}e_5tERXf=W2~ zl80T}QL*_UY3H5881u2kgOt5iqI+2&<&NO{kU~9~Y5$@~JSle0d_ty`eormOtzB2j zD#*@;bhuT+@YIB2KP8;8*Mewi<2R}65^WXHk!19xksM~kG2BxnoTpxk?#flz4NQJ< zbJ<=!hXTr7ANg*PrF8|zY#>6UyY{G+q7gepw&mPxypOANOdI*fdKlREM*&ff+gVaG zGOSi`yeM1N0oM?&x9@q6YAd+v%O=le0B@_hj^lqQ1oKfIuH*O+De2TWx0}nifVd@_~1nJVB%}~HgEr2qbC=uR1SNz z7fCTLaImYcI#y`B!%K*F2tQgQzkb* zX)pkkLVSZ#rx8RW5K`2%=j4(302W;1C?TaV<_VpEG_^`pJ&O`{nkC)n_2oQT%Z|F+`=0kaY3{eyfM}(USrIlcdI|l!)pyQcLCS0Y|p#)k7!n|I9F*+`dQ< zRb+yLM@n@;M8O>rw_`8Drt_;BiHY7fno_|X!wJHmPYzZc=%l<%GCVbrIn(_n;EnDr z`8}{SU)o$OxO4bS(ji_a)%`tQZpsuJ+Udagxm*6ZY~KIHxG$XrxRc-qh_VT>!^>vH zx+9Tp03s1R`2#wWi3;y=TaD#b#dBtiv=RTr&~`)1ugGM|rA$x03yR0x7gX|s4Uz6* z#1%Vcmv%8FIk97_hh7x#4){g!E{bZ0r4lR;o4-3Kf{5z6Se)NJvAIlx@jrXhfUl-u zQ1<($6T!c#xNLZ<-}GcFwsXYr89@v~IicJcFNrzBYUv4w9SGLsao!i8Cd9D z01x^i{xhV3_fZou`S9E(Ig@-vi4J{DE|pQ-z>RwH zHgGNNG0LP5@(os{@(Ts%bIGN7nW=%u_&Mrz+v(+lkCoSLH`wp26!nPnA+KK$fEE0C zz06kjEMJQps?yQrTk;}ithkH-{Q}++shRE17oFj2M(kT;2f(iW0bsq&!2QDe);VVI zSqK?@4u=81t7M~LgH|G@i~{%U6X5^NgZNYxdQRB%-bVLJA+sOh-GN!Nlz60rYiMP- z`5RVxkdhd;2DwxFqMC*8I=9P?%4MB*+t%}nLfDG=@@o#rq>No)uB|zsx^P!r*w|kZ z&rh%z&!Z~ACpVWdo;3$rN)OfliBoexozNscRON@L@=r(`2WIKXFC?KI3yXdyCUNdj z|8||7Qs9gO59!HE*+aTp`O0<8E9ME`;}-Jnq7~Xl7==r2-F-!B><7iy$@^@{5&(=) zr_bcpU~)AXB(U~V>^@e8&poJXdM{I));a@2V?^rIfygci1FkBbV`@FAF#6mh)vo+M z!m~41wW;P^cM6>qDqH={AEtHy%Fe59{yl8+cF8|UUa8gzXq=^;3XVuVCByE5L`s1Zq=g}m%jV~n5K5XMo& zr(11LJ4{wNA~Y@1r!pI5K8D^AX_$NMV`(Ha5?#pT@?*FD3+j;n0rfTy^{2XgWx?}| zGxGhYZ<#M9$sCeVU#w;I>@JNxV>7Ja=1*Gtmj4idec9yv^Agvc`wx6r*W{c0*8q9u zsrgoDHfm7Qs9r`tmNVsN!3zJrg71a$-O`#y^-lVsHI3?>^nTd@MC>1yRt?}Y{@B^O zRusjDWGVGDxIV0a!jX{}>_*3)#v{#w>PHJ9uiX0+s6rtArjWs8j*W_o8gvV!} zS2N+8%wy&c#yjoIbMl4wCM&d_LGyUTuC}D*{MaQPbBBA(4b3vACtjqF-Vs6Ie1Pp2 zhBFeP22WD6tGuvKPux$cCh+>lI8Ei)?2dosby+j7#ESePw<&m+O6JlLlrfix z2nM9qn#{ci$G&~3jC6e}%2&`<+f&<$2_#gb{sX>&QdhOHA+HOXeNG{kN$z_>cGe3> z{8p$mt+JgN1GRoT?V3^rq{Pg;j|4nh%(!qTyUGbr7KR`8|1k{_!RB1(c~SN zfm^9^WE_~K3n*^h*e7@Mi5%{E+6=ZhigNU$Sv27KYKaii;?0foL9#-kRN3!tYygk* z7s{1OBC%1~M?b9+L$V33SHDb&b00t1t)3I%n?!#;Kst^R+{s=%+(_|P+r%?)BgGc( z4V7)B($Y>=jC#jzTgiBWI-4jnXE5)>r}hB9-VwljZY~h)G%3Nay@7{&1TdYHIs%X- z)eAKpe7w?^jM^ZdA%M)UlRtoh1Uth_l~R^EM8cE4`G*_rT@aIRuH5ou0mK5k zv`&8OwUPs! zguFxqokP98s59!<$as<~gpw<{R~nEU@AVWpwML$9xNi5m?!9Og zl5q}<24<<>d|-n#7yOt4w}Z(aDS@FrdSdw& z>S{u_LhC2wuiyM51zu3FT)#)X%qPJ_{@0Tz|H?S>44Yp#J!PbqVf-4MM}?M~yql!@ z00Fdn5bS{<%WC2!HPG6VXtk?3lQt`chBY%Zh7vZM`yWw!_0*FGHpyBL0YwB)E%)x; z5notOensw?BEF~4sHluoWW7`Q9b~+q;2wm|XmQsSJSQVLxy4jx?kHkQ_XFZm_dg_h zBTRnA6R9;Kdq<;j30x&cpr;aVNvt4|HSL>8v&@_i*_uX)PN5AF*?53a#phfNmw9?} zy{P!N{IHOf&*CHwb;L#$g=xn#s1nCmBJmO?_EE*8@D7+cAAa=A|vJR%Ex zbAPo82NqG_N-o)x5=M|F${>`$3ps%&!r6+JxFdLsLJHO>Bz0$`h!RF{$is9y47k1K zg}+{(tod<1(O~Etx31}$?F>o=uvN8I5pbfnlaSFkwHWqCF#Km`@++UOoD#Rm&~jvUff{P<^-Zb+@do>$R?6Y; zVuX%$Nepr!?*7~}ekJ5H&)ZM6$@AI10^Y6o#0d4H0Y2i=-H%%GttVk`6kxmuMN~IQGM#QahGIQo6v^-h7M{!)kE28}9PBzssO06$ zj})K87k6xBbRs=%4kidmMg2SEKT+YG7+HZ!YWB-^T%T7!k6Cq7!FdA?x*JHeNd><6 zPRplgrAbdNS?S7({|6UlI0pExoX;=Nc=dbLrnZe*-t(w5_o=rmosm>1BJyR8XRIwUUizfXq}fX&=%OIz6&QcmWV+e@j6F8?kM;1i>%$(?x{RFCQvcGUQGN2Pz8>=E%t zi)43sr-0&(jH@V3$MP%LI-d0`CAa}4mHrH0nHorwk+|a6Xq0ZjYtcyar?BzI4V-aM z!erN%^&VmDH}piVxJ{vd*I^#?#Cd9cdyEV`E||cEJ0u}WJ@KLJy+!BLn+p28^T><1 zf@h1xSlTYfIaNv|Mop-rx=IbAb0QWet?h!Gs9~kmg8wAw8*+T0h(B-41D{i3@4wbX z$yF%z6v>~9^513@p~EKSUxM{%O*}b{3xYvhZp<}BOw_7@-Y4lhR6O@ zO*j`Q9K}A10q>W4z|{b!wQ_2kIqIum6-S&fia?7gu}63)BeNW}rPSrTWwIpr?SDutss5**vU+U@XmbStgBNUi+2un#I&$uE&&IJ$!p`!x^cO;D7K zW>e~7T=6%Iae`rZ7^YHSHN?>-oD&s};z(Mt&+&lADvml*D}OHi0tG91zC*7#@=;=U zb5UfL7ZKldx@I}sx-84tT2kJe@Gu)Fv7M___XYF2XTkiQ+3Ahq(@nT{DO|;&;M%V? zBmGy9UIr&Tu#R+9Le)x7RBi~l-M(yQKt#&bg>4aXM?D9F?;+Cv!h_1+>BW! zn4xA)|5%#E{ehG>1Ef{Epc$#9AmuAgR{bGWH`PFXOzNGGL%;A>pb9T0H?JRsg*ygg{k#Wkdh-x+<^@5 zODnd5r0qc--q0*tjc?=7g7yGrdk8!=vKLb-XlERZ7Cs0qBxvJ2v`L_O z!t3rK1{I>mV15?S?(1PlXqfNozU4~L9igq{JZ%rSysf9i-gmj%Cx4c=I!axPm;Q$F zv|z0EFg_q^>9Mt-31_y#QDZ8t*bjQZj|0sA13|6Jw5&;^6f97_C2d`fPNl@Y+(Wq* z6eX?xl)4;s{u@R+!8pmo2sLx`$D3K4A4qxnFRj=G9&n-JXf3tEQCeF{O8%M@=D!py zX+;Uc_;1qo+R3h{K4n*@7`vC!w3hrU;*5h3V}f|Ehxm}%ASzooR-vBOgz61tD2r-W zc{rDY!*`23K;DsTLJ?-swt_4QY_=e6_w+FPW!c<;sZMK~l)*lze;-ni?cW;G_KwTk z{_WzTkTK zL4W&y`FzOq(?@l6b#--hb#?c>Zc+87Q)U@uTC7`%PxtTjd^sG~!H{txG0Jv|+@Xt% zYE`5>T?B_Mq5R2G5D|>E)oUEHPEH(a@+5ld--$az zyn2j=8r)tPv`e==hx@_wsU?Da7lyUyvOks-Z1;4?Cf1d-t+=V|!;P*H1 zZ!+-Pw1z)T;D3M-IfehQ6#SPQ{0F%3Pj%pb&i;kQzmLHGKz2cD@{cs|pLo3$eF_Br zb(!$D>kq--g};s(HGMwe;HPN*GhFy980gfY7a0B>9bq$^1pW!orOy7`;PCC#7df@mQkalHZYMjAxL??B9VLEPhj z80vzk6A;A$LNAWadMOaI3Sa>>)F7@`gNi8%|39bf0XBvh>}oC%j^&vnbLBO)=qb=k|M?A(m9 zr|7azI%P+?W$%`<O;O}~+75)#27s|}`&whLkd5s8}(h?RuFqKS5n)F5&ijLe9;1Ac*1e1u#4E-7Bd zSE$CCtBaqvRmLtLask1`XtipTTY92Xx|3V_Tq*q<`!|%XGNonY3j%BY>6Gr`mhS76 zexLlh^@mI8CcdOdAm)8V_l@-uKf%~xs=%3uA5G^lykX6Ea_n~IZ`o-C#!g^dXJAZn za(w9IxX|Q4taz(UjuB3dmz^Ag$syDD0R8Kz9>?(U2dYOWf%ZGqW4BzN3>NARgLpKU z<4J5IG8CJ*GqH()qglPDGaiOIaN*$JrHq_y&QQ)g$qhW9Om|>Q&Q;@E7Z~wBD?v+_GRL+qbJ+h?NoO^KoI;Se zcYKGEddYN`~Dn&`j?=@iZA0B@_#a^g=h@xsFEBz}++-%W$; zBjl{IbBYq39LNImWe1JD3Elf!&47E@iQVqRO3rys-21I^PIh7&iPdPo=me;3tFG-) zC&C{M6%}|AceMIU<(ifmot?O<)n_W#*+gp$MeCk>mKJS^aw3`Up>=09#fj^u%lCf}%4!q6c zFp&}e*~O;rrKTW!QOF8N$aJSu;^|b1xH3x0R3|0wq)26l8K9Cp&Pl#DRh7g}b}AZ| z0>^m_4X&?~|1?r|TbDhD%SHG|>3Y9@-9`#qPL`v7S2$U1@b{1+V&fO_oo$pRvu$-C z)N5-nx~c>7Mq=w9Bn*{=mft0K#j{qDo|7cA8smMz<Avcndnud(0hPT8{QwyK;d*y$gC90;(`gf%4AIKz6-SDYQg;0Xm`v+ zThp#isu0@EA^>uuG;%ldQEJ`5UtfKB3b}!;kb7dGOS@kQ9Ynjwu|lgG1c@hA&x4Sd zLz-bEm#NIHQ*VShASl#`PfmJvOOFdgo1A1KO6^y5S91*3&|B!K=;AicuB?QD&L zTOig}_Qvt89U4ArcJD6G>%f6M2NK)GQ^9(fPcdaAziF|aA}q)zH~&xY#~bj>p*aS0 z7eGf2Yq2J}<++COLI>{b-j6-wRCogw8Uo)U_%eq5BMhz1Cj|k!uG;=auENg=Uy&ZK z!q35Aucg80YVNX?@G&^*Fof}UY%;D_ivefMlj;D|0<&FJtWwX-MOF5>dHzPHK6y0w z{VG%C*SHu}a~Px`d3WaQYzd|D81L|4zC{ zlH%6=h3&J3vkxCkd_V;Esy>a?i79&r53{SsUPPLIiN8*Z6(U|X-xKTjj9Mq?Y`(Y0 z$`0o`y(iv}=V5XV3HEDdTmP8ELb8QQ_xtJwiJXr9m=}yDvn55YJ-`*<&(Xcn@E14< zmh0Wj4>_(Eisv7PqA-z;INKB9&82sW#^4w*vr(?uYkErD0M0_!(VPG9-T>M0NgSb@ z;q@E>y1QPWNm^9+^|tKWvfG#BDHYj9cA})is%v($!5QkeQ|<}l*$0&!EZr2@qjw}F zie3H9>Ydv~ZMM{lBAMPS5;qckvDF;_u;u*#aW!duwUw?X`FB%a@&QL`(S9y|&G^tx z^_kz3psUD1BjqH2;sT=H)}e`ns!Bh1cEghb|)kCGGbDc5_Hy zI#;CIK&x&q8ca&b>gYavp2iWBp*uirdtM~-jZfkwAeV}vZ}#58U9jGY+KMdOx>(}7 zU&>#|(QlEEqp#yy&|;MmE&sU3D;0Xg32|4vgu>#sFy<|@`L53#+Exz|>Nnsx$4OD^ zo@Plqc@{2jU*nghp(Pd=;eg)`SqFfsI%EreGtII5H6+zB=-6S=0-QEZ)S@sH*3^sKpexwL-FA!%BPE^q0*gZ$v)_YH|@ljXQ zK+U}Uz{hOw3;e~w1B!I_(Jo5$eO}u6s_uAhs>91$SF;HQ7A|oaxY>ZbDHG&$KFsZV zXAI5}+YaADt@HUC?qgefB&)`wQbH~s0Y0exPJWWL+;w{Y9v&7lF6b}c!QmPA5|x!X z$MoY}7J0x;03TMbdvF%y3fkt-_P?QEz&y%ors2EqJk%|5YC8zcr&a<>saM;;%Ao+J)2YjcW-%UOyP8eUz zMZm?qFXl2_hSd?~N=4u`Q3DfSNX>lF!>}%+YWM`+I-8K;t>RY*LWOsq6)HdiEg0A3 z3IF2mvHVJxtIV@1+*kgp9wle1PTK=J9v2t?t%+l8{Z=M=^GWV|+}v{O-e5O( z*w&M_>h~a%*-Z?lfW0-^R1qjuGxx@adjkEoMz=QM1)EdBO)^5KmE1c*FK}V+ylw*m z_KzB&Wt|Yxt06XiN+OC=eLj zcHBO?AJ6DF0YS}o%4m}l)Xajcr@bX$Vk$o?AP*{*elvrU^1J6v7)XUbCX#fqsn}n- zVn&)C!{e71y7XAIMbksSc72it?{vsVd^jC4QW_AyHe28y$sNcm0~RN)d2}^hRqer5 zW&fV^Bb}<=qBmQF=ji*XZT-=oJjvr|+~sbCkslJA^mG~D6Y&mxSPxrY-50Q|(@oI0BO07oPO<O#+X;n$+i}AxSt_*kUs~x6~7G>yZKV9UmI^@aNGF za+8}#FUm}BNu|T)xvhv={~d%Ue;ISIT$yfg-i6Uo5fCmS3TF1y8S8Y<8$H&f$@uk0nuVxN~5OS^e|AVrHzw&RbWZI? zog)mr|6<4p3fhlL`?e-#QZ!&UC9X0c#-%{)(=3?3hX{vP|3i%C)d$+ctKZ5zB6d%! zNXp0os6wr=M8FOxxbJJCR1x7Ns#)`g~zC#Kv zWq_J?nsG?gA021GH^?cilpirzPgQV_WB#>f|_Ga@6x? z*t&EKI^z z%8g!{aO|#dqgVJOO$}e&F8WED)p<4}u$B*B-A?{$4MW=D>o3EaW+uzH11wx9uF3;A z&UkLt;JnBiT*&39;&V|Qalu%ax{M1NbAGg+Q(8X4GXy2+ts!K#m$~!@Y_EXldr^7f zbEvzjhI^F~`oTf9E-E*2O%neQDOdss;d^;Xo!e-UVGe`W=V=LNJtMs3^3F)e=}=Ib zY45FlH!mSlORyQ<$3ZP|Dg7)lr=()eBF0g?c;F(?Z+mom6S~jQuI{sBqnRYnCLe05 zEDg9_C&5p2|E0eAtpuQbw@h5#;lsgYsNt)O$)fR6N-U8-Mk&2f+$S`eg1Q>CT5CF#W)jdp% zA%m}O4PiqHU;JLendG={b}Mr1y@~C_We8=hHQoaRB$r=ClbNm?Q)i@15Byu)95mb4 zO5RSj8Cfr)swLz3W3sMxvnGTcgs?FxGlcyDkC1~2o2f+Ku--6|JQLu~_1(ZSF`NiZ z)cQ(I!Tb+|2SkHEgc*PGeL_Kft7#vSF-7X0O%9@a9W@&S#7Zg3;{_mL4@jKNkF&Cf zKc)S6vM#g@w<1Avi*b=&>IT6>T2 z-HkpZ_s)$F?FfT!HoCE>#oJBJT;6Att~I0OSk&m1yRD9Qaeaaul|=atf)eW%U)^&$ zFw0l>1Ob?%2}=9wJh14&v*n@08P01@$N_z`uYSKND8mw!f)57c9l}B`2c85m9S;1K zWUU;3P9QaR*4>B1HK5~!G%ME;NG&K{Gn0KGLR_D+8=Y}0tYM3=-Uo(f6GO=>`i&>O zbjVmHjAf2Q5i=LS+@?QH@YR1!fE!`zw#W>M9qMj_y>Cuj`(x%`Pjj3WOeaf933(nu z@VfU1F35&4nB8P;=Zp6g9!)R0I%cM|X_ZE0mphf|bws;#MIT8!zT2O8k6#%S=^^1L zyYKu+Evf1L;RZ9^$M2NEyUbVLMSN}<9+RdrJmSR>;uCL)`v~`V!w8AX)18PAT?n}o zL-<4T21%ZUJ7FgKaE5CQRrr_gI3!?yA1M6Sys>a#{Ti?n-8}K4Mt6_P@~?E49mQ5n>G~kD2F~+yXCKLr!OE2 ztB{*P*7qvpF;=KfoW~{PR$zAx!|wyUfKRNqMna zY-LyfmYbyxyMcDF(PQt7dEbwtJfHipJUOvT#o?92Aab@?i>OcDuy_N2S&0(j)NlM@ z--tIGN$VFm+HvNU42#79UtK&%dZk(IV~i$#69WM=K1TbcDts+dpLZhV)QeYWW|E|V zAavZXAXI<7gU}|BSoM(e{sqXiSSPl^W1#?zdykMpqfH@7+)Ih%hj7_NG$t79Ah*@@ z^3^>6PGy|m7Q?o|)peQ3KZT6Eqyo;*4iubQOb49w5X4^T&~p;4=jl45u+@FVSA5P^ znX)hzburgkp(*^vLF~~6s~o}Vwqk*|%+yz9?=>%R2XrmX_P`n{PJG2|QafG0Um*hu zf6cEafl7OTLq6SIvht4($Vte$Q)jIkLe|>p*-Q%qgw;;MMlbz(j6jGDtht>A(H<^k z$0}$y>o!Cx4r+F}wpbQ|BIyxM)`;qJBjdPOd)o#rWzjIW)>&2i_>_D&;*tQM11zD1)w zoZs$9&PbU~9yHr~ft!3BhvhC51P-01{mts{p@!MsQc1^1oa{h*)$y7Lp!3^<>|qSp zZS^2IFWlB_W*92xKEOnhZ;`NjWga_lG4FaZ+atQy@$M>C5NznE6G0{THccvzo+ji?s%rseVcZfwD!Q{4~j_ z^H~8=0*GWYX?rDYqe;V7#9IK8dSFuu49Yy{1CtyHhv#Fd_C+ zB)Ed%X<-Vw{biZs|_BS{9uwVm{?$h5hma5WT;S&Jo|!Grfa*8+w+ zsD0NQIH0$tTC8vAU>U?M*0FO2hwl$T%rub8`^eO%`-})J`TCkKc^5CEOjdy>7 z_!i5eeH}{{p0SXAqBc051`~6wG4-W_$e1)NW=)3eg0_dyI34om5v(-90)itfEBrwVKo`(1zZ>k8ZkJe5c6 zW;crMrx}b-*dUP$taHqKT!{xvJb&@eB8oPv zvHja}5$;OvWd=m4Rl?u!#p+AA)ZloUo_+-HQsa^F6;eAOj)*Tfbz+E|HdqW7gKMX8 z?d44Tac-QBV~(eGaEHkCQt@E!AUr^Hm}?x@B~^>{#;wL7DS5BjdliDC{2C(K@J?Uv zg#_N2g-Z?Zzp_o}0QJ?qO4AvJlb_ace!I!vZ&R?}Uhz7w%t{^~uy^g*ti~PA)p%0o zp!DGVwPo%4g)ITvU2fBhT#Q*Xa)#;Nv)|F(o9ISMAuPI7*cpAf0x#~ZN+5{0TrTul zW>$!Df!t9I%-^5*!N3S?Xt{R;FTKlxTeDDNEun)jNzPUquSl;-Xa696U?Rn3J}iw1 zR}Ki;uWAM>*)8vf*Bz;IU`Lgg+OQa_t^61NTpOOun!#Y7CdSR-$f*1BV9aHLE&xo0mI zf;fv;wdK#65hCyI`3&mblrOz2ZmK)~jnoo^?l{Mrsfi*A2cAioH_zm6vk2a~ zQZQD2n$jT~ho;fMjb&fm(U%EcB%U`-a zJTT_n$8fA)J@fcre0UBo@XVihqDzlp>8fy7@uiG5<&=*8HS$xXof|td*KVt2Fp96! z&OnR}=khOL?OC@aze<<4*WkAIKxy~8sbS`wf%qBNZ`MYe@$G2}F5Q-WRy?O3?#v4A z*@S~)Ht!*Lehqq71wH=)jkc=Cl^BX?gx!4{<)uOA=O)ClF4bS^s88BKlYt~Bo@8V@ zRvLj!ZcuEn zuskHI$kKfxFPeTCv`}v}1lseRRnD zxF|E*&WBSIPRx2jt8&5#;L#Tx48MnB-XpN}Ra58X%zW=r1nwLTn35)(J?pdEvt|^$ z?DbW#uFER9`i6VLn>+zDk@^i0?k}{a!+s%qbxib;8HDXT)u#qxBL6X?$v<5qT?YS= z=K@_v{xGtp8u1OvRV>TS28AI4f`GN_?iBihu_@mui~Hsb`iqu?W&-|YA>O|=_|E}c z$%ateyTaq(AF`KL$8y%k+Rx*CDclIEnHZ88c$o$3iTorRC#Jz0Ei7jJ2h*15&_Rf^ z@FCjETXk+7mq{I+opDfQud0f5T3;FCrHLF}6R1TJ4CI#ugdsh2F!jAnbCS=ssxOvb zW#BKH@AQGEHT-qb58QXvN%sT8QTKy84yCrkligC|qpUETQ`SCG5R5MMASDrPJ1Xf} zyUC$vS#f;yM;QE<&fflCC>t3j0uBE@?kyVQA!qUkr{8>UH;s&UsukLW;yFRzqHHZ` zZ~Rt9@}5nV^{Yepb_(F2y{58cb#j^RZ_x@XSp5d-I%HKXdGB5GPpgDXI3-Qk!%smm z*(j6EDVon#RYen?syztkRl%j-x1qAXR(qO4{hFdp1N`&2VS5$4h;g|6)Qy$(pW$9w zcR==c*Pz7TLI^>8qeS=uO=^}*=AtMBk8cwZiB&PaSq-_Ek(Q#5p-F!7*bI3tw5n^u zCtjwK8+VjItCT#{<2K`44tuo=$__rf4HNnjH!=OD^Go6M*Te>GqlRPUjrVY_Z&3;N z@kKi5S*7pzi<=wN(2H_8?6BzL-GOWmNLSSUc1dJwFg}Ie8}F(6EZoQRhdPvezC{}) zTf2x=yZ@5N65pbW;fa;xiflFV1$F~y1_Id0rAPW!+3(sL1qBP`BUQhDLbDo=bVZxd zGl$TjhBmI~mHD*L@E`@_MW$RTPD%1{Q- zaAyPW5)CiHef7)x`X~4=YM$6YH82m1SF%A3n3^MVuZ+9)zC~I7!IfFz!v&8Py3mkJ zmy&v!(Pf*sI~9TSr;_XM`Df}dWg1Y(!5Fj$K+)h2Qioj5QQ>&Mo4WfnbO z$!a&*Mf0z3(J*MbO!%R{!w*u=K&BedI>H$0jWNCua!4C=xloMB)VoUzruK!xpZZ$n z9#M}hnQ5<+xgiwmMZVRN?=teCmC%yPlCRazw;q($z;*hMRnC(BupIrUHlHKj3{53X z$TZ&6ar(vKXPVTtNSq$OLvp>y91zR7Q@h$m-!7Wo#f3&v#!ojW zW4t>00sMJ{-YDWFi^$b#gKmr#w7O#nMHcao9=5pl?yPQyGV=+>x!PedIm>BFT~_zpX^O`^CS0uOELk)jO8W zB2X`2E{d#;5A%d-nh?dE+SUGYe57Dl?Jey*c9h zzRmd5SBCjvzuREj`lf09WeGHUYgUDH1WsyB*Vcahj(9-9_1nl`A`|CR#NUXZIgtD) z19>e!bcg9X;1UC5Kp;z`Hc?zuPa^iLTdH~rzF-SI4gU!q+s_xElCNX~wK-~CC&Z*X zIHq-QkfMF+6|zSMcW=dqGXGHDlI#kEdE7f%Oq2ToK=XLcTPjW5F62bss3_%wv0$!R z0|Q{Lobo36MT(@bTEjbqZZF_bksUy8*M^jhV+>b8O*~( zLA)r|wzN&SCmj;ITW1nw^0Kt$Ne?h!-I%KzA1s}c8`+TD;EY$fD78>br*~bVC1az0 z+deH1VY$E5q!;cGs4C1*&F@Qy@&ed zF91em{8DpsK8G~!X)0W2ukh6^CqBsQaz#m>>96PyJiPU5oA7z;3g}*?uhej;iVs6% z8yn)`vWmJL;ZyOE80Vve&(hn#E>Vtug%Oc{@T5>!Z-8x7+>9;ltqC$T*IqGs*M-Lxpdjg zo@CGQkf}pN`J=yh!ks0-Kq_4}i$N*E%i$M5g*()5nDrW<)WilRM|R74iN@wfO(Ego zn?WcNt)1RxxQ;hZF={z1g(ENdwb?OoF%8RTi}1B;#ZxD<9)j;r zh;{TgR?reN0(USI#75?1MA>cBCL--KauI)sTD=Qc!}yz8N1vhyoT+tuIL#}O1*AVYbFR{&bVbrNLujtLnG}O5>gTs z@BFbw#S3K7o)o;L)Bh0OO~6Aml{AUA(-qzs&^v1<8_gog{%0+_n8~z0HTwrK1cC7- ze^`Ue(fJzbNM393;a+A`yG`gv69km#RnGX;l2GQ&b3SgDYIbss3QOhmI{=IpcVall z$nP<%L;J%YO||#zmADi$~%0N z(sx~cNa>25Q{AljTE)(m`Gq@q*6a>=JZ;#QyxB8ELkWLEMd9I~5%x>nD}9U3@RU*Y zva$)(oVzA+9D|}y*@=);`pR5eNntBc+{ce)pf- zCt%F1hwaU(T8z%M;?>Hy1`ff1UC6W}*UFX{OYC*SjQ)OUS%21F6Cy8!I0;n<2yC+y*TYY)jG6)U zM4wzCQ=M3+o_kiTQ(9TPLE=Q_YeWu>^vJB+p{XLd$#I=V~;DKMAwXpSC!5(=s+ z02)35GkXVXIJNmb+{sR*I+|EUP+nDhYu>yxGcZ72a6K2+ z#fu;2N9{o-lWnCH=WFIlt6of(8X==mr#qbSW-Mwl8SRW@PDb>hFli?>9cXOXfD4yz zn5n>5Uxl=ni_nY>COy8uWGco@RmAxcF$ps3u3-Zzyh043h0?P|>MX!Rh_n|%SSAax zmdsp0XXg}!?C;8E`s(Dk7wv6e&#`2+9v8yrO|o!cTzQsia$s+$SzT4S+II&IBACHG zLt~HUbo18^?jN$3!MAehaOo$Lk4PS$Zg4RAy@yC&T?u7shxCv9D9dB)E-CaRv8w>Y zu8O66ZyVoyi_gXrPh@$}Z{5l>vw7WQRGW!*yQ-Q^(ow6Cjw=H_+i<@Ts~CrWp^e5H z8i<2|Oh|Ge{u|_A6h{<#H`cl7*@=8$tKDa5>4SXDTu-V4KFtCr*MAoA8Di@tqKsb= zVR@D$hrbbBBdS-AiHr8h2m+2?@ns||?_~6>G<=pk^e+ze&|2MtS`dgG>X*|X3yG-2 z7KOCaJ+iHANcehsV^UQOhpc07x-NFUlP!0ASJkWudA5n2c}V05KmD4DF!Cv2A6jXz6X8*8wi~|Ul^5AfG7V+8 zn)zHyPqT2=`1rws%9CrHesJsqF>9mP&Eo^RaZg9k9>9LjH663!qj}bE2mz>w&fw_m zwX{D=ySI>k@sA=%y1&Mc%G=q_NE!eH?QyxmmI_1(IN4TrfT*4L__OZoLf90y3n)56 zAhcA7^Q7cVPQq-(xe-AJ%if!&Om9B55DQYqzCHtVwt7Ia*w(XBkW?3xLDwC>EWkLT z|8B@$$te^4NGKylKPOh@9>UB?9yzfAk(@(+j>}m0g^()2Ks@+`zxJ0QQ@>@ww`K}* zXq&1Ig8e*?<*WU!9JP6gTBG~2 zIa47d<-OCZg)({m+OndVzWN13Ry8ut4jhL2*OQ&p;X4{Ns-R$cZq?$dDI1$+~Yd==-Sf0#mn&0p}`lXF*uvmXZy%Ixr zc%(Y>*EWzvgrixmGajAO;|9mN2_Pp`y*=CoyTAb(c>z#oI-nx2WkRWyHqhLKf6>h) z-%r{ipWk32l8@6qXMER|&V*RuG3re*56DFL#1pB;TuB^_5nQq&r^_VTC_P!STFw8c zok$j>y?P}inYOeNJG28c(pAvbEgoK~KCSwriTZGus+o!U@2vn-$n$J6zivxDW!BwB zAL2~fWUSO{OM|)L%FO`Lo`mexK%gh=oB*oK^xK3`f8?uz8e z;bDl#&#o%v>Rr+S<6$H4R?Xjt|J7x{5P-8@On#{2&FnV-@W+va2}5SABW2>tjpd(A zl#TPk@&RzSfrCF4kt9!K&bnFsH`$J(bRBh3OI;}#&pfr{vyAyBe#$0*e@;@Y)BQnq zYLxx9l=+01Alp7M>z{;5Kb?iTbRc|}eYjhlp^x5eQEdfz?*b_zGjRRtS@n{;V@o^X z3H{7PNmJq+xJu|Ltr@GqV-;-*cXL{E1yN3G((9pMjklV38gwoVx?1*-)U>}_Oa}P_ zH3+K%KTHQR`(Q&lj4*<_WJ8MnmDs-mb`E;uGUnCwk)Ooh;~}KCZbmaRIQXjJav4dD z_p3jr8*qzGq2uBcs7F0Y?%5P(dk!6Y9Uofbb%kuq3;#pn$*;k(E_txqd&UeJxQh??_>r3 zvIe6}NfRZDXfpFZ#w6(~OMG=sp!;6C)<~Jine=xN>+4gTeXm0!m4>p;{3ar`@0nOk zbhcTWDLY-tit5<0aWsuiuF(1d+t5WN8zAAn0+#j*RTR;~#;@3C7R!dVy7g}sjzEOi zXu9o2oH{7Wv~x2-HIX!;YtqqU34#dQNNHY|dIVm~I-69GK8am^1lC}_Z0j^BaepwD zv&@~rj7iBrap&{JGNY>9kFt-mN%y~F|Hij60`J-H0rqACb{i44^&NkM_lIId%cLXp zEL+u*Qv?)!zd}~HSk?otp~mw?>S>cBgI#(eaDp`(gQfqPGB6bHdN@V1%ZkG7XFXkZbmX7Og$)|6C;60{U#~Ph z&8E!ccN?&&ZN7^3z=qg>+C?T9dZcVX+HD8ARM|g=U@=C;`cRAqg{u1DHuS0L&g8(} z(tmGcpMhAg(eE{eUmZZX-?jzemn!F%;2br8T%`07iJMhiI~F_6wBW-h5J8( zxhLi2iA+F5og~vk%xWaw&VQS~!5T=Jv(6}M(jBQm>bBSP=bVS(x6MZ0z`=#|nz}Vr z9ULlt4PB_z!H3mS_hnZKS=^xmUtB1}us5n0S+zP_&{DzR$7f25>%%Eiz*l||6)5PydA-qKQ|;kskn~?nPR2|Fxk}tU-UcQqIT>-k0@&&9`0W} zn@H@wvitXo@=wmr(!-snXMST?-LZ~Tb{l29qT%d1&-9cP zMiy0ZTSD>~mp?c)#8&S&BOS42VDZGkV9#ULS`f$>N@|aevKsC0?CMJd5S9&1lHgzJ1 z%Ten-`Zu9^@T-@JY5|G^8q*fg(D(uJOVsTC~sJb;oh5_d@Ai#W2=x`do!C2q6C zJ*4B7Cyc|QcZI~w)p08mr;;yYY^LQClF0~~>ie7_X{1fFDkH+_O)gdV!`{ps?kW3I zUjbP_iGbb0o{jqVy&24APh+584|9DTKBS5(>*!&jPE(<<06kojXISYS3OSX-b$?j7 ztT8j1)XF~Rh?|XSDsTV{|4Mx`@b;s=gc_~uTfq!i&5`=tDo(=XrF0D@d_i9(7{@lJ z`z0+e-*do=G*kK1;C##D!y+&<<=F0fQVkJl{5!d#$An%VJN|GYj-`5W$y!Wd2ewFI zU|*l-$j3+1aK*#ocW^~MW|C)O!ymxE;QxkyS{lA+V*fwjJNiB5RgJRx^=^!pS{{&PN`a9I&D1J0lnc+SS6yt+0tnigo^c#oP)nBhXvyNHP3)W; zd$dgVdJ$^oPqV*j+L|YAm0pv!wlVm;d-cI>b+l!{%CR>c+-{k+r52i)?;Ebh~1ovc5#bQr*9?3w&qE^*3!8()eP!05K`9N*L295 zjeOmM3bxfDi_|9#-GL39+sZ8k6x(7 zx1N9gA^jP%cKnHR4{h-~-pa~c{>5^!>DGS>LY%@rAs2Pwnk--4VSLLj@M2n^i(f&6 ze=rupEgJQNx*Ig(C$wR+rSzv+{o*<8{PEGea)&{T4Lna1S4Rbw$>k~bCu-rHG!8%m zU|XC|SxsT+3)Xy&Jy$)?^dqSLd_fA;`g56hnQb2bl$qtdLClB{v|5g^EmdD!;=xt& z>+nVXl{wuEeTBFoyAVHor$sQ^xK=8FmaE3$smBM|LR@K5{eyI_S-mwj2*YR+5AVwo z&cr@WtT7TK?@jA}P{mjGH;RIl>{lHDRU*Bmd4qZ5Po(~X71{{jMS6cQ<|~VfpX<(~ zO%=8OZSSjpma;}KyT(%$UEz_~@UDbBAFJ0B-0?^L!-WPh>nwOUmbH6%t*>q_8HjoK z2D8xj)!nEgsG}-A3H+(K_Hlo=twGPa1MIHUN^V*7cg<#Sy7mxyNfxTU`VUDpB1aahMu9{=N`Bt6 z=CqmSBmLc;@?s_lATnY-WP`8%G`8e0Ufdt_G}jI-jy$un4N09<_fKToDuN#}_o8{( zV~RF)k()INl5@;BC6n3UI$7sLs|2A!895jzSBoxp97p>yiu-hNol9TQk)V&IA71%{ zet7g`X|&$G{P_ZI_x$Y?B3JW=J={8JKK3zZhAT|3mt;j2us={Q#i4cF+ZM`+4uHUs zg%hhLGvV1YWt&0fAI?*M1Cg;FwB23NHz#rvXM+kf=RHCq{MDsT}<0Z2PV@3fe_wm zIPZnqobE-u=!;jyBr+{e-AjB(Ocll~p-JIysiZDyOYQ3M%7i}Vn_7Y5Ph;SomjPGm zm(4(ddm8bukqg&skfi`>Q;J#3HoIqTTCDk(nVGxAnwJV)>x8hmo}Y?5*9m2IIr^UF zH!(4noF}4pELW4p!$srhf0?^4mFrut4C*(&Q^qQF*Z>)#J7vJ4pQ$s21C8KpgWr$d z?|`+`C1lGq#|hoBS>UXH&!uw4p($L^#(OKlq25~l&Jce<$B!_YsEux`4c4r;y;qPV z`+zstLLBQtJ~Q$yJw3Xu$@W%AEH``nI*)aqbsS&1FKp|0H@lIqt*j@bu}%&>S4Mxa zes_kOYwwpHv{6dxiXI~v;!fLVB+5)eLBv?R&dG!ZqaI<#l-;r3B2E^y!E#rI<3VI> zLaxV@@x<*aL;d;!YQ65(A+hxhRsUkXtkyIP*?1y&Z@PpQwDI1|k9rCb?HPC_L4eAJ z>|26M{Ay2G@5uAMMN>TTYWxCrgR=2Qzua7TIV(iCx38`PH501wIoEuFW-vZF7p0oM z9U%Br*`NO*N{K6_6=q%p!W3Wq`?~2s@at1>D69fX0}|=|w^P|TSSf>0bhJuQg+c_l zNhMUXn_3d0wivo|J>&xy)4*8%gZ!+_$<_=L)HAI9}zn``+Bv%sOp+Vi2}rhpzV8jZY;6!VaTA9KO_s>#)O-mg)p9vl7#mrj9)dVTRtq>s zASIqAF{MA9kwQ6!DkN#hF>Bgw1f zwa)gQlWm}rt=MEMNXR~zna{y-k5NVcNoLj21(Z#WiR?#^{)tJyUDA`--hweI+Afg} zzG?n*=i}H7%ynyb`}3G*L?Fb*a!+4L-HT3y$&pv*pKExejXR zpmZD)?m_2KNG%aGRUJ!VQ4riJ zPK7U1{ow~E?<&b1%TxcwGMA9WM@s+8v?dq2cH~>B24}D-y3*o_{Ipm-#=A0A&dPAf z7<_}87a#p=bo>5DK(yX>&cs0Jnpn7IWTkowqKdK?4B3N1HY?wwWWhfIjE(>!buH+m zV1(Zc#ikSnc;(Z;ZD-|@6phD;8*d0l=CSs3@5m@HZmDK#Ol*p%qLuZ4pT$<(LJ4~`g$Y$`ZlFx}!O5S&O=)tk1RQ^LGLuD#| zZ}}V~`CpX$0z~>>A|53|>Ix^;-8lI6D0mgX^HOMt*ePEkhuBOY2x0MxE$g{yd)l>Z%q8F692=0 z$ouzH-aLW1N#e$&VBRkImP_1Cu(T;VP2ygXxIwA7cO>p%iOWxw9W8P5B<^CVH|~8# zBBn~jPNb4yoCOkBBXL`ZBU4X_I9npjd46waiSQGloA9Y7r{PC;zQ=tJ8$Mo^hn2DZ zc?#hrp2WU-xdPP8i`~bZi@ZYmPDV(6vkK7|FWxFYh`(>SP0*FEh6!LQk&o|@AQ@K3 zZ%RHM3M4ob<+L3&b}Abh8C^TelNA{u^Q$*877e!OXjYuo_XH&)>yQr!%D>DhR`daT z9}VUy1NH~0BQe&U$K&2T5*Z>g`D}XpyY1C$z>j6kc`EHF(9J2|MhTanP+;WN7=71O zBIK*Yj+Cc5>-#Nb4vKt{MkEbg`~}SVn-fg3cfNXh53%Z9#>F(-FBMvKUwe)#^=0wg zppt8}Bl0Ce* sj_8ferF3hU@|#sTAGGg%@MAXg9W6&2c5;*k%}({=>H%?_sMTbN zdu=kQA9_hGVl^|`!Yw1{MX^)Fy?#l5mvmD;mE{7mq~w#VuhdlPVSy_qm~f94s|d^? zD;;Th4fg5t=D_VDaKov3`zCUAorb@(KaTfXIfk@)8mf-9_H46qV>(}|PQzh_9)F!U zl})(CY9y!BrG6HGf`e_{PqI)O0}c0Yfm`yE6uzb2+b9vvB~8;IIX^?0CI7+pbyjTl znX+Q@K2B$+mu2eb&ymBi-V>;cl{#vHudV{t!!TULN^?iJoxFyU73mLvpa5W9VOAe< zmyEIVwKfx*@v!80dS~%8{;1hgWK%VP73S;{#5&!=v8wvZsiPWKy3YRE)3YL7WVd+n zF(@Fh-W$en@z9;BBXl4Z3!ZxEI54L8-a_rK@4G|x)n!ATMM_DQUK+AI>(BoI0>>}e zW5pdti)&BsDB!TJ{MRBByCjBox>VBizkKPx;nSo0ei3mXh29K+_SV$O;; z!2cN7)wzA7>ZP8axevz^^!yUER|QHVSu;n+@{a}#elMk;&O9Ufn!yZUpfletXR!&(>rw zL(kI9GkeU-6E_1Kt>xgO6yRcgVEYywR<|MY1vYkR{S^2lAvYpB{lG1UPCxu|1537f zr08)`gP+hZ>KkFinw>PjH(xC3atF!)|Kctb3e~V*w@*FM6WKu1WCh$m@vttA`~eHm z@@m%E))AnrI+^z6JMDYi&ByV8Dh>zeBU)-Mu;j=(<(GHzxOS7mRm!Ym!n|9CmWuw0KC??eHlMSy6YiBDh{ zXMEJ}jv&drm6;`InOxqW*6O(|zepf3Lc2+HEG^+gC>7wP%P+#=GBs&UJLyO; z1?o>{2|fz5bg1;JYI~dSo@KpQzvKs~0KR<;G&r7GH=gkg(bPJ=6KC-u>|8`qa%|>T^4|5EkCD*D1;NH;LRHFmsHAu!_krwfvODK6zMU8Srzpg4G_bGkYG^$?Ni{z}cS_z*E; z$~4Qt+ht&}><0lj9y{-6;h|z)XcF3&kI_E^C-S4mV`|>ri3%a)l6iNIE_=|ttH+Po z506>lknVVyu|jnD6@02J(}W9j(o!`>bC~QVdxuL@Jik%;J(i`~>6DRq`f#2eH;DyW z1&0n-A7$E^T&U~&!}i@QRNkI!-M;1T==R;9e+JIs=l^csQ@ZT`YTw->TeYvAPgTg8 zj4qn4ldx}g7ff~gCQ4L1|0{?p?K@Vdv}&K&V{|{qj%?LF@%^I5UYA~pfU^EG0(=@+HGxlpu&~TF%^@0}k0mOee~rP%Q24JTqyKbt>tEcOzM64@ z6j1i}fQ4yJgK4gNTNAaL{ux-pkHe3;;d&fo^37RN)To_b(5hdhFIZxJ}LMFS23z%lZvjF3mrptOSPO?L-5>d1kaZw zw^*O^SN^H%SxP~l)qD$mmcm*7MpmqV@V-iC+$Ckb#P`DM#7u?6x6y#j9c$WqA#$O#{3!-xwcLHn|wgo!Ka?%-1%Ij;ni-rxlTE5 zcabtpx=cI9<06Vt>9wS*n{)H}(j;U>y)V8yg{0YT-_acAt zVOL(pdw1bGF-A`_jOT|AH~gNMAmthm`@7yEKWA5JX<^#GG-mY@q+mno(AP+U%{vpN z7P5{4mu#K9RP8$=qZ@aeneN7CfvZjcQ(@i;nD^y3H1l4fe+Gv6k@b$d&e#>y)58al z<7uFT7`N8}+F{>MAZ`QEt$Ti?RIys;@=hi-#oXT%NVlV3sDB*hw6|R5RruYJV1?qH zBObmWHyNtsYpjZwEzvlB!jCSW#t%Jk8}gV-OY_uj9_mevtJqn3?`}{qIulJ?thX~L ztv2X9q^0$c50ECQ@meLNA{hoUz5jZUzK#=0`R1XbZfD;6CFa9J8C2ZWKV0l~;Tza1 zx2@%T#LmchrZ!UgOirYCAl8N*$j-jGhmaNS+6=dkNN?ZQNp}^VF+aQgz=k#4IgvA;9K1*8jSc4bJtLl7N1`#@PAtO6avxni2U z%~Tq*o&;b&>pSwO8#Mx3B)C@Cj61R&1SXJ@xgR6;dXoP{vZ{rgiJQSi`YY~zp17zr z86b4e%>}9#MFZRmO9WR3`0C%ofi!AeYtl#Ms>{Rz6D_YI!nES$*8%#*k3x%TB84mS z(c=KUQc~7`B`K$pa=bS&8V%TcJYjXDM%Y^{7|9F6(c+)Z0ENVMz-xIR{W^*+L^-Mj z4!u#Ve|it&Cm6djS52jubY~yQpX$%8ra$!nJy&wXoc;t}HtL-dY(aPX4{5ftOlDmR;K^79ZF^7#yGENBE3={vF|BnA90x zY5X$z?KR4#@PoacHgGj8`xl@NF;GWIMf1pVw=$;t(tpMA#O^*h!pDLf*`HXpk!|38u;Ut)D znPg^AtRh7QMPba^c9sl^V@YVf{ z+E#`?S5j7Kaqn1aP*(vyVQhL8!hAoyO5|7~jrXGYE?X z??JR7X4R3cpS6-C80ZY*>6$IC(96+T1zEm2dBy`Y&L-WFH=_t1jD|<5K8&h?ae%_W zxL1O_0q-h{6|R^9R5T~;t}d}_*wUd@B$4P zWE%3p%OXI|)bqm00x))+IV7BljB^FJkx?^}HJLDCxw zZ;=@zRMcCa+M0;VOmFpPvH=%2zbpBu+5n;Tb^FGZDd0N>byau;jSXdT};Vn z@yn7kaVI!&ADx!-o2BRDronW&f94{LdD_%9&ph zYjy5gm8a_AN#Dm2Xor?O3ume@|@OpMW3>HdwCpG|FzLunuk+Xs`R-&eUD zqMt;xcq`#S^bHut1`Z*D)!RRzD7`S}1zFApeSuZ<(_FO8K&*QKIk@sOatw#Pe;uMv zdHd>am*G(h5$m}yk*BE{=WIj?h#LT*ZuvA#w#1%a1zU|5=?_TX{gCVKZ>TYuS>Giq zd5Q(bU=m{1d1neY-A}!V?lP7TOV6`VG`>8%w<4Lm(@9oW3M0nz^MEh%m^^*$tUw)X-dq0Oz>baKTnwJ5z2r`8JMU$rThlH*yM1I z>lG+lA~Kn8lr*Xo&zV)95}=oG&?^BL`2V)5BPw)wT3qrb86`%zjjhwSBO`sKsh< zLhJ~>f2oF3uNEcZh8VN{MmZ9n1HBgOuY3smF)#W+w8bi= zYWc_3j%|fWRqZG)Bl`5B^sKX%9Ad>ADXZ9M`N@Kc)?*)D2rZsOkBAlz643U*Q}_wk z#or7Qxv)zu{z&N5Qvi2{`x%1044no@$%ja7v33nK4d+b$vjiDf9WjSxGquQhSebF2 zKzWFMmCYM`AmZN1<(@O}r|xlA7j=^TWuGk%3yHsN+?yjDbqdw!cgI~jS?mvF%yq17 zY1{dNjBZ=gGZbBo<`^x$kVx7#jvw0Ap0=@#>8m>m{Yo17;fK=5A*8B)nj`Z|Wn9I* zBL&1FQiY&z!za};hb9iCoVHWqH;^`8%8}c|1$Ymo^e=kpDj-M|H%JxM9e&~L^{40_ zT~7zbtR_C_Jbk28EC_?W=sEFo+f>D?vqSNU-_(8W5%jMkmXI&3jfEaX0Mn;gUB_tW zH*Ft|wHNNP)RApz2lqD(!$E&^Zt3Vww;W1;2-4VyuenHWmX8D zF^zkika%sv@9+-VU9dq0?J>DQjr9ny4tA=tJFUwU zu&Mi>w54=4cVfl{4yJvZJX)%#EjtH+}3VSrX?e**=O5&n+F^X~t(& zb{V8POtdO09o`AgX!|T7)G~^3r?D~Ji{C`bpUd^PaH^lCcfpgVrufA##;E8ohfX~_ z$jcWSw=V2|OXsX`sa}q&p42U4>C7Cu6vT!Y#QeKC)aeN?Hwf-ywo5j;^jj!zABWdS zQeWkxT=G@Z-wTKQ%InuJhHMENWRy8$apRaypJHY>JGbvX@rb^6!ViGYplr z(oNNvRti`y<*H|O*H`DMzw1sRSBYvt;_#OX=tHHs>Jaj|UwNu4i6-wp59KGh<D}fGz5SA>kX%PH zBP4#Mw8l53U&N|%)#+48EqUrj0WOvsWQkXUN}NL_Vz&{#Z8e_U{V)OW+dk8(Jaq~X zbo)$i2Ub*0gCxQi1m}d9LqG#|wIE-IZ zLm{1Z_v))RQdV=Nd}-Fq?!Rr^C;=m;kmVC1zF)ARJY&Qujf;)pi6!Z z2syr`J576wb*TSry6K>1?wesV{wHcv68PTjS-p9ua(am$&1Us0J>+0wpsbDlav)qF zmnw3_s+R7x z03e$Ig}n-^+>rpKk# zyegh`ppF+#{Q4@F4J&gFy~f{oaJ9=c%1*T!-OOrNr>f1N+Vxd(kX5Sn$IswIYjw>A zs;=($>4^B)uGGFl?(4Q!xEO#ywjl5=I`2TNiXDPAD^}*TnG(N-i=-q3O|6wZg|yDw z$^Rc^Zyp#`vHbB)LJou_PFzq_kf=dHK|w`{5Y0%?K?0)UzKbGWak)AX+#om;^*9cq zg8PCyin~_?R0sqJC@P|&hzq#(IH2GH0hPSZxBE;IP=D{e{E<1QPcPNg)m7Ei)z!n< z$%@a9X1!%l%^XAO5VTWi=$HA4@{3{h|Ncvpug;5rO^pQE?SET0EoeheVO=od9hui z$s;i+RjzTfBkTB&LJrt-de~b6V+RwKbC*Y%YBH3;ExYPcJ1Q!wDj8n6yAHZ`LAb!+ z!a;4zGcQqTY+A%$8}Zjf{XZ0-mK96siYbWZ(^QY8aUJB}TrJMv?obx!8_Eg`!--3I zQa0jM*?VITVMXs=LOW!*!7#t7qzA?q_1*eQgcE&jiT?Q~iM;FFd4UN|q#%|0$4z0vu<(+bJ zIo~Zrz}S8GbCgJ3L)4cIWo_`cuL$6*NcJ3vKj5s0FvA?5CteM5Pq#b)_cL6t_f&U1B?^V-}Hx z!L~WvS01{$XtuQ7BO-;XAb}0BQ=%N;ro?d~g=2N+>2A~wDI5_LT%KWr&z^#LOO>jJ zKL_OVgJX;uS!ftpB%xrQGIA)g@cO?zZwjdJ!EtQWMd5-2vv3> z@x@VGn@ZyL18{Q8mQ4Reaiq*n4t{3l$@poKYx6 zoK;9y&AO?w_WmZht&^H7hln~jwY=F(Q5w-7u-PL>i91qo*&%?Oo(NpHr6&s>Igr=S zcy$e~x{4UhrwG|us3UIyjnLKQ1);09EIg@>x0^2!o@xp1G2gE*Z@mhscEL$X`jBAj z`AaJilwNIt%@eNfjv;{e$Gh0~SP{>sd}M2bF{Qi*Ts{srF60`h4Vjh^%R3;oKJ@pY zUQR|SM9YVCnr&h*yUX{X&_*}dcI<|;Z*xxO2v;)0>9K;?gACTXlx4=JHP#V}y7HfJ zn!j23aPDx^>t*#Hr|ENC;$A5ElS)40Ij{r zBuA5jLk%BdG)j8={6l#TBnW2Jwjo@7mwj6s8(8j_PNcBy!vGk4Yl>gAhYstrS9<_* z$H^JY!^2h zQU!l0;JNZW~IGUw^Kl zn`vmP@wc%(lHP&Lhp5IWFz3=;hBaXyw zyk|*I5T$)(Ku_Kf>6jC1YlbXq>Ga-Ov*T~5kiP{wG#s01zXB3=IF>q%n(n<&;`RRAb?s z8R3h0<66zd_KE%4gxcmx>J+SIY$cLB(^+*Uy{V`%QC)bt-h6>tWZB~UfuK-q@fYJO zjd@eeiu~SptIA~i+kqi|cqn!t=-Joc*ltD$2 z4{_J@8Vxi+o~zx22>dg?>EQ6g^TN{!uGt^MTD{bsIHxsiD1;SeB(eQv?Xl| z{9{n_*Us8Z4_MoI*RXkKyAvZOE=NqgMMXf{6T!T_g|^h}g#>oCZJHzCTG~CEm5WG!B#u1}iaCx{=x*ILP=Jyek-~!>G`WRHf!9{;4z;RV2qv z=HU8Zq;`u2BemIlwb71Lh+?MymA1A&X-z|t4=B~z#)Pih+@nGBR`02f4Psp@f|c3X z%;w-G5-=dxx#rmFWHl z*;uMJHn;iTTGj_m6Z`#u2l#Kh#q4*#2-CF$5OJ3b!zMnB5|4ph;U2_0JX%AtQ0F+% z8$iHxoBcD*ungnoX7r=P;pax)woNfXYOSR~*v{zK%=d3--smJqBTpn{nv8BRf z?+vOYGk+V+E*d31g><@z|H%M-^=~_`!;UkcxwF92Cfl_gv;yDi287&${IGX2eO1U6SpDR(eJ_{g+kJo|*kDIR*`V$a6p zbj&@oo%=<%>LWbx+mD}6dRN};FsB#sYVOb0T%@-%sabZKFUR&v7PO_C{yI8Ch)@4h z{g%{>eb0={mcZXBWcH&(vS8I7WL1`KALP7~sj1#j?*ASh@Lcg!viQFWHFB61Yx zu=9QiC$19vGC9O4#|TuB>}uND%A@$SjDn_8-qgD^*~*KH%2UVXaIG9VQ;H-r90F4r z@w!P!rBu0>+X93{N*c!Q6iFS@F{d_CGCzF#p)_D)9GjPaY>vXK;0SS0l7j)WUte$( zPQA)RKvn4n=$4Su1EiY<0H@E;3!=~Xcy3r@PwiI0PsBZwKscW(7xUt)^8LD42OD7r zl4%jo2hjdSl6!h)aTDLtGMsn-oW!@_vLn4W&S9&>Qv1*%ocP8*TbZ9=F@od_Sw3I2nRP6YXhZ&H zjl!3ZTiknVcWHrvw}lgx@lBfK3&>Ob7rE05$S4!3*@b@l3$=i4<5Yn%)MhJ9G}D7f zuqcgWm0%)%NloknUW<&5-}?*EkM(V7@U8MS`%T7dzD*TO9q3`)>lVO7N8RH47BH|i zj9=AT7~LwtY2Wc4>vvOMs@Fm*m)#*oT5jNG!(dC&tg4@<7SvYo=&CCmAg=PG$fgK~ zr0NwYY8f)~6BOu0fj$Tsj_u`{@2&$of#BZUtkORSq(*T*s`w|DG zdUhd2)2FGt{ajXP*@fCJuUFd&v0?{q?sqMMSvy@4g}GX!1_t75%+PZ{)!g+SRUJ%K zcDNiDy?qR^qG9&^n{{f?)U7&&Z`XG4^*-rN6lKRWRJom_oIPVFK|ZmedLtr^uG1=Q zqN4@rIm{_XKokmB&z9ns^e)}2jXPKw@6$Ov;Th!-Z;8AG$%NAP@g6KItCT<0e%%sd)=1s`@EJF7;HZYWJPovsBe7sGxzW`qwU5Rdt#z>r_=uO;nv&M3(srr(1GPPV$+Ni1aR+{gfOfhrcMIa7q zi#N2u!P?qNcPz{uMLoA^26~660e~2|33Bniw;gT&GoAAfYP7s1y)Q`!w8Bz`tQj)d z_(*zT^j3~g+UbixoN@4sDp58+$pLl&AL)RWi1zk{zkU=E+QS zKYn(@O1s?-Nc+Jot`R~86*W(LO=+ouuqwUgF8Tmu^fPSdkYYl{^5pdv#W#n=7UMeU z+r~Yu=Ji}kJ(;hvyH_r_Z@0cyyY@ScAuR(+yC7cr6KD!m;^yEz%8EnN2J5-^yJLBk{drzN4gr5yvM|26ZLEEq z+nRTcZ*CXs#K%#fHW|tk>!@?GEHA?<(mh}zb`LTr9c^>5TwsSTS`ZwZIFRZZ;_AYn2i|HDg*Wbj-o8&^|>S<~A>6yY3cmzXhHwb&-7L za6?^0ehB=?u+L8i_p_7xDHclVB1P_}qkd|eroFa1OHUIV%*`iN+`EJ~O=iFMK%2h8 zq^+2OKP~MO@TbqrWTpAu9%QNW`tV@Jax4=0B zo6TUYuD=C7^NCqw-)xUEOk?OFRWPF?$dwyNpp|cPr2}zX*m4|W*K_ZRBrZf#chcVa zSvoBajqd!Gp-cz!?4^{!BVc|XT zHiVA*@~l4v!f@)U_c_{Iybr3!{iG*5^&p2e+2gxESr#9s2!200M{@0abLj;wSbu(v zlg1cx6_uJ5=-Eu50ZiDyl1#xGE^YL^*TOnR+YoCNFL;K>KsN=p89AP6YvbxZ7L41q zuPNgxTlr}?^w~uco~{kC9h=tRF0e2Ad*;#eb3+-o2G4xeY{0pdiVJeDX&H>~ZeKQy z@0zA;h1+EN^$TTl1HUF2Y3E0FN=6F(NQc^FWG6q;PJzNBg|&SPUfC@_RJoVmejdNv zJ;VR_sx9$FxxV)t&vo9j{MTRY2Je0zb1PdVy|Fyh&d`j=)H~`gbGEQca|44BE6ZLW zl7&VMTMAl_qN8_JJ#u6(a-4izl@*NQYlql^Zbvp;EhlceTV^-75Jl4^+fr=fKh#@O z#>%@pQ<@=epYkQ@O&;C#ncOltGb>8NhNHW3*7-2iGkj1x^YQVTUkja1MU(@_JgE7> z&k!7#NfKa{oP}oEwmBuYBo40(a-L4k3PO>l+W(kv6TJ_zgtGbOa$B}GYrB~zF3|TG zfw{scUV`3t=hyn>SQMz@^v$j#eZ4Tm8#`Ml8@QpY8=GNW!LYJ?&tU3CZ$bL3T9bNn z#~}gx_{E&8GzsGtW+iLn04>#NOU!Leol8sqpm$)nhw9P_;5{|BvOozpDZvHsZfjPE z*QV9fiyvbZf0KNsJ%JtI7HhgfNd$tWCzT^5;ye!M78eK&!rCDdnBg{kJv&=Cqxk0>ig|M^UO#a-7f4PHfMZnKBv9gw*E#G!Ih`lVcYPRE&`N`}edqLpw1{)rw$H;OXD)3{JHGa6DbO z-r)U6Vs52pM~6H$%A=)vX04S3NpHK>P6csU+~&*aCkM)!d!06c?MJ)ri!^?)uXpkx zQ`hLb5?p$%onEe}V2{~5Z;Mb_7{w=IDxKrJ4tt&*Kf^2Mm`@S+J;`#JT?}Z|DRxby z$#CL%gr!V8lf-o6HDi76;x2ko^1{IN$GpgotzJ8}O=>_x^xlQ#c}1c4U%BB4_HrTCxO<1ISHTAe z^t9)m;p&fhq|8LhM6smrWqqA8?c!XaC?BAbk7D=%I)H?P<$;aUd31Ep1 z$G3>OBRb9t*8?-3 z(`)LybdZ7iugQz*bbGaM&@vthEjeSEnHaRX7_=^KZ?%%8abGU zJHfD>>m$hZ2JYW%5$*OiYb}O=ogTxIYiZ>=ns_yAyA|ciQ2*@wfy22_JC9IX3{kQr z?v>$0t$p@(Z{t9zp2NG*lXXB^udei;%jskiRumw`CLvz^3?DtIbc09j-+< zt6&NVPq>)jvP2~#)CprPJ4p;9ai&xp)6-4}P39ptFz~CF*?|ux^HqP4V*-(r>g3Xp z9e=8IgEIe(Ee+{;s$XR6w@mk9zRlX7oHMUf-SfNPW!pn@kVq8CcAuIZHD}p5h?I0J z9*055TV@f2|CNY1S@0pFW43%ifjY0YX`~(`SGmus&U;MxVN&R9_Nl8W0tU1HDOd!O z-h8FSXISe~<@SNDQSbt(W)sskyTv?F(U)BhZbX`7mYeGfAHE_DW=P5-} z$((vML}7KNv-S^krXS5-O7jcV@MXk8GlK2~)8sBAli?*Q# z4K8(^o~5ZtWWq~9NC?5pW35>ngcAzLXCA5-A-q{UMc=}SFfuKgyv@Fvwrs#AC)rIM z%Qy4*pqRBxh!c)>BWs0+iwi7phjo$eN@F>sI_p5% z5@uH{repLXajPIs70kUBV%}+~dONoQd;2r>GBSl}fR?t#nkSExc6OCFTcBqKCJTPd zg%B$>7n0s=mPH7`I$uJN+D)e$c{-h^4c=t(6^5%d$7Vw34JPs^ELYz&lU2G(r7eC} zyM)f_wN3bjgeIhP{}8|#cB}9HNYi#9jINg5K4G~eY;<00jO8Fz`bM6b5MM1F zx2f7YsW$y6NtR^`RYS&;-5MOy*MOv--?K;(k56o5UW@}ObL|IA7du7VqzU-_CbQ?& z$}L0U>wmO{De5vFLa~B*#%fY_~=V81$>9fa)#i#n20G@k#FKAv1vd1qI0Uih@PCx$6I{%Pg%vB@S5Au&6jv;gl4EIByf-b?6gAz4ENU@AXHZxuw1mRjenD4 z18>)PJ-2YmoWJxd%z-*@*X--#yqZ^22&m;exfM)8Q-O1;f|EbAA8hZ<`*b350y0`d zCFU6VXSY3)1#jwoG!3|FF6GIc;V5Ucv`p7M&{qiYRlJyG97OYL&CyFVU0B~=O0(nt z;5KQn3-$8clIK_}sB$l=;+BxR=%Rc&&KIRVELo|waCMh}uYYEaC5;t+&|G{`85r-Q z9m1Z}7b1BIKcsclrXjNe`1IdRYYahGm@RN`oE^A!vQtG2|LDoq86rJ~Try$+P_t@^ zDgq+fx`QZ7w;W45wdOzX1bw^XT}FR}Ih_lzwidAC*VI!b%UZlBEH-47WyPEK3k-vg?bE+9N*v@AwUU0Um}*b)f-jVyGhCV+aXd73|EHvE@o5lQy)rem!_IBBQ3NytV(73G%&LL}wN7 zU|&j>h7UXk%B&YVQ$hIgdExl3 zymCVp(^&{;6!eM32l2)^erJX&=YAOY2OO6js6_F6wGUQznkV*!G$)?GFSJ0UImQX+U)wK!~ z<$Fow3ay69!Ip5!8Sgvp$dL@Q5V2kaw|=2CmBiKLrR@58P$+HaE(!0u`nEs{`+vA8 znQ58qJ)UQ>?f0`=C~BbXLb0qjbfkr%sAMY{nCv~6G8xouueha^G(9Ab_tJchU&~WB zp5lx0{r-9B!93bKtOxjMk*a!CE^na~CVm(VEX>3Q`|H{4rwjU~4X((s7tc4SwFf6>U++;_>`(_h)YDsg>W&b-tiR@FqSgtNwE67fE zR(KD=RssjJWfGa1%QNlKBrBB0D$VyEp;&r8b#Fx;;p!gLIw0|FI8n@l-B?d|=E9(->-Jxcb@ zs9zU0)^(<>OP)`$B}*R6!gBkT5@ZH8gnpF{&*?sH0YT!{9%iCU1d~Rjut;V>r5ZCbo>FZ8#JNjBV zDB1fo@~1zvd)qSGzr9FwQxLrZeP+u!*rc9EN(|UYpIZd{f&H+Jbh(8I4{GXhi_9}7 z+$W2w_M<^ns$d6IavGH=49XQKPTDNg-3oIS0r}AL+=o-GMpZm$tNgh!f`g?htZDMzSe7;s6dP;J|D*T`NvaY5Fu#yMKay9)G9Wm=_x~~JlJ8*+$ z-z6RDyob=Q4!~QX@VnRm{;j_WV8OD{B^b*B+jVd7vt4HxfcFbcmD1dpC0W$mjN5eQCVgMcESh(nVx7{Vwh-KiQ-$xRqm(v zc2Yy!pG4_m;py&|Gma8a9LnG+Ts?zk@Fq&UWSirdQw{Ma`Va$W5oOFA6ef%vQy3;K zcV3c~Bo28`N83ljF_<%zCJo*#kHgd56=EjuEJ95~suk3Yb80=EYpaFQI1wM>@Q&;pi~ ztjHX(faTVi`+#1gE7dE%kO^Dg?`Q8uF_0FdktbkWcb#vw=Vl7#{Zu{VVu z^An*`&x9l?;j$gZF)10TtpDcbjjQG=Uw_)00^*LB$h+~p{+%JLp21veE( zp;8@32A~<#89)imY0YGNU76ocL}jaL-vMn>KH7WHXOVT=Nj6h?>&=y6dp$WWk<9i( zWIRC!70lTx5yrbQ%E0p~%Q*+&)t3EuCo}>$#wIv|jJ96K0Wp_jl{J9_Y5S|C&-!hw z`KmFWz*k%0M14Lj`>tip@B@e~_X`|6QT!?2v&T((kz_iaWm&p#jK&yF>_$`BPUAku zo4Mv_9b4JBzD=m=+b!*?d~b~&-4cn$4llN5oGNOtW}NLPK80s0TL%Wr2R3NdNrli! z70IZIWs-`0%Go0784wSNU3r}1zS|{%Mz?}A^++`I&N@4<&ivC+N@BSrr{@Do4mm*R zFF(02lWG89Drvwr4%oyVM)T_yRHLpyWHF2(b3RYw-zki$uygAT4Tdcw3r_n1 zJcauuA-PqmioYnModxFZ8U*~C?$g-*75?|u{pZkV$vTM19ex+g=e*gNEjM--jpbt! zy2F34xJvc;e?Fw!v(mQFL9Zn5fb~ukB z$qYV&14;#l@|dG@ir!%9`T6E##IudoWuCj7CmA5J1Bh_$KN7n<=6U@PAS~(^Tn$&4ND~pZnG1{RHEIh!7F1aenTOwU@kxgG{KVQ3BHOztDlwPk}6oN z(sQm68s(|PiFVSNu>CF!Cw?IBtX=un@2YS@p%ok1&e(FiAQoCeKi}1JrRuo{BPDen z!84t|2J8{`_(~Qa(c~_4J|D_b=L-j^^R287hsb<1hTf~KuUnp_4X9&2KV)xBc5E(1Xeac$e2(196M^yj_Fcs`jtx+i85;_$jvIdAp^5LEKpLWV%8e6@No5 zKk`lQO2}d~I;lzGj*=eB6Eop*M#}tXPZlk70mr=0*Zz(07L#N?0)^>XTZ|AU3s*UN zPlIagvJ&q9yZxk-lLh+;s6#M`nMcZU#gwLm)REilbTVy86DPY@iCG0QSulywFkz@A z@Mu|YZv4u%v6%S}tzHEb5b+w_{f*g66c|oi!b~@35J^s4P_B2gE~M=l!x(OM$%)c6 z8~A3jFAEJGKn411q~CDj9Evwdxhg(dL35j}-JCohNmpmyo`nV>+spblvG={1ee3@g zZ!g%lvO>=JmW8X2lK4n@GkZ1%k?zvZ4Y3_jvtC?dXGVJgc@;pK>sA2YHAm)#=+P9K z58vjlg=<0&Cf>QG6>ZU*4=$iwUv(}!1qlK{_2V1FBf}Gl`9HqFv(IwrAKxJ3P`LVf z1bX9C-5nSjr|M4`O@-d)2)A-1u9E17^heYNn$+MOH6>7=ela^J&0h$|)LfOo=21ZF zaf4%NW#Pp6k_mTnZi$IA0U`*+pD3;(*POJ%aT@s7s8 zlitrx5yej${%-R$vHr(MBFpC{n07L$jBl`(vD@$J)Pxi+qY2Fc85k3upzFM;*yL=@ zH&RVgr7>6O4=CWlIZ6`D46a#CpQcZsCNo{I_x}7xP*&%Cz>offz3S_w{SiMcNJ~E| z5r*Vb1{u@ziw!{t$l7vsdDo(`Ja^$_hus&nu$}xWMm6B9O=z_Wd|&_XO@D0BQ15ac9P=txw|%O{3KqNoBoPKJA&ztc><97FM=_b zg39}h?}PVecz3cu65|2;wU0AgVt+b*hTBnt>5SH_+J3m^x5o5oT+cb=bt!YqKMyp0 zauvwcX3*EBBBnH}$SoUvIqCKL4*AlDmPaYEmaGiO%?t=a=Ox_BRD-^zr`k^}!b2P8 z=i?RCP#*bksK+50R(;$8GTLan9gd3cj~qh)5iUwR;!%zpdAP}yHv&(?L zx)UjRiYyyf(41eWklyCI7A>^P4~(-JOY_v=77Q}G=mmc=cg)k6JvOw;Xa6vHOowtDtdEbG3`_&OE9%$B8DFZ9pMex+g zIU0dS2G#xDG{Jsc2eWAps7D~}==3@3eLnhYM;o3=U2B!N<*3VUad(01bR{`lf<+1I zvCpyz=eQihSGt7Q4hq+kY=0u}K8*Y(``Jc%4krfi5=pj#)T?!YS|r(0j}v)xBRm11 zG{W8jst@)DLH`ev#Sy%h92SE;<_NemgZqhE+V2eO))t7}@ka0aPJD-r4;j79Gyh|E zsy|Or?h>%r)`7AXCy7pDJK`vs8{40#DQ5MTh`|?ve996!fKg3)o7DGM@wtA_^!qyr zjT(?bTDQ(^#N)i#4oLbx6s_}K|0WOzbTwq&LS4{U zY%l}l4|+GP{^vgsp3iqvL*cZL1NR&0u=?(&!fGZ@DS&o>2C=Kc#SRmY*8?QHGHsrE zL42;@u``$(KORdh=qn+W`Im|Oy$C?F&1=U~d9o-wdx|uBkjuxMCgI@i@h!^L<(iA% z!ndp&%1XCvjmh8RK*wWZoKEl_chVFaxY^&^0#Z_CIfRWkiqV>?vboVzRz?%zzuTO~ zl_qMhRANq0RgsTrdNH*!X_tM)Y+Y>8?v3D!GeBi#m=!p4TPY*zqUBxf3PgnUnae$c zl8$(_-eejSnO}CdGDJB15kTG7MJ~JFnEh>+aOx-79JMZCG^3y*Sz5oyj!M=Cz4syj z_77;*zYb>LY$8_s`yk|2Q3YLuW^fi`S~Ovy(CkevIKTk^Lg{QaCzl@)4L_XN8EF-X zb5&vW_B^Fq@ekM!5bXKpFq97KRbW!*^0b@#xV`(hn?80S$y}k2-Fb4fG=90Ir5#Y+ zEN9N-XP>C~BMqgctj(aK+%L*n#KVbFZZ(vCG3{kwaC;XRqAQ9|H7`DA$!^K1klj^L z8ry@c*-A67ZY@K&N|u0>Ljti8!*KyqR-4A$w*$mDjYJ>c?YBpgClf+})MtR(@dmkY zOuN%!ViH4OEpTr@>CTGW3+q1Awi$CsaBA$7)s`>dggf~qxOCFn1B+Y0%TIir6d6|! zZ`H`l8>U-cUPLi7yqB%5Bec*M-@q_8QHb;Su0JY#2#A?T1Fb~{EV+do-7GW*{gsQz zvVM#kClX*xmxQ8HbO2sxHDN;r5r*XyaQ6uoE5cSG&U(ZQLmL}Z;83c zhc2sx`De1BnLL`AS$gc33@cY~6}+gb&b(NI<$OTick^QtV%ZV=+b-c=_^L}-LV{_{ z_LA@QUxkN;*PH+Ov?VpC!rzj$G@Ur7p`oNMTu~of%J4(vO+kbqxb@i5$eVOY&%?*| zioDrE&*T64f#0!vMc&MFulC^nj-*dPK19L~&F56_w~_dKPaaTq!}Z|jG(vbkvJd&m z3#>)=vI$Y<5^tdTpvG?KxIPIV1QIA*eK-lp9@~GZ9<<`WU~|gOTc2Y<>9O&PHo|$e zJ1<*s>&YPM;E_Vq0&9!mjAf`wr}P$5uyKY$@_Vqu#u3m%hbg31IFZ(8G}2Z2C1HZB zMbW;2DgJh`j|yCu@Qt%MQl~Jx1ExoiO0*M|s{AUNB=8_{O76G$*PG}>W_TYKE4tVf z-39$)swMKvHBkR6t|A}8=s(s1)M?O3D6@+DFM4LR2tU~O0_NV{B$*qqCa3q~X@I}_ z=v4W>>{b4#3J;l06ADO5p)?bOLca_r>uV|$RUx_k&lFu7|7FbrjLhB~<+Pall@BDG z-KYipt^}!A@`?-e6)9wat)cfAhoM9}4NY10q=sYXL7vFtTHOrkU`|4hu{z4-RIe48 zPRM<@!ai4eCe4zUgo7G^sdvD9Kn@4pW|uJK0}{H5q5^Q|EOR-seEUV-rK9MI1SZUl z46E6HL;&gYpcf**{I#HrSOMvW?6Smr!|DF>C7U-3Tf1ShbZ6d^Ov0(Tb}Ot)0Bsil zZOw#KFLtf-?qAtlIhb;~SPF$SBELQ*(kl4%L|{0qzdm?FA!x^guNI!O1D|D)>5FxO zAnA2;5FI3leiuZyP;dHAo^0juwK;y*3>=z<>{c>GHVCnnyLVL0j=@TG*kmqoa9kod zUOWo@6|EuNz!?QwL1y08Oq{TDS_mu`>cyzF(981a9MGTD;ntgPQWn@XpxpB5AIa(X zw11H0tS6v(1bq5M(ByXe);??J`qgOuft$cIQKR_uot(O|rkl;?6icDr7>b!U_P4dg zXuOe6CoMf7YWT&K<0W@yRx|h}ePLqv#v)@KL*|#M7`)Ue=o&Fp!oX9te9<8id>6 zU?xvtS?bLDZ-u-NOo#R}H<4`!D1PXDhU5Z+pWid;-g-0U38~_F#bSwfTU2?~$XGX* zWW$R8#Vs25xi4>^a=I^e$`dc4G3!Q~+m#=$cWV^B?>%|{V;W^XC0 zHuUq3JAjJhNgX!KBSgpmstWG!iG>Fy2NdExwnB_|X=WJ%iVpZ-aTTpeo48@BsHiUOF&<_5(*-VLl$fP+}dcNSoHR9-etD~bynU1JiKEbdmPl9%K5Qs4AN*%?2?W5p@ zpjbx}LYi%6DHM4@(L%GD1&sx2C)dG`(6H&?7iY2fpJNWi#BBFt-coY5(sP?vYCRLS zs))JpW^2O{%qW4owp~y>B=%nY`f%k5Yj5>v2~@ ziHW3c(W#gCrkwE2t5INN7^+4%64T`)2XC!j^U$pT9jOYiYvHbK=` zr;V}>^nPThvTbRRKuBQ9a6V|Uwx#y&oB`@<4yflMhi@II+!2JfNL6E) zMNB+3gj;Z4{J6aQ6=!sdj#->tK%B^ zr1zFo000hGSK9LfJZ{>8G2Th&Ouxl2O%Kd>s3#x*YeU&qldbsw+R$1(c2L?5r?$$4lz zw4Z!d1pgzzkH?uyJ{cj$D9Ep8cPR-$2)X0zi1^+q%j7WfH=xz81G++-9N>YFOCUF{ zDQ{QV2Q~8$apOa1*Y`G28vc^2%386&Sf!S|7Nq*E%#tqF#;7#El}g9uUOzmzt*{n~|1!)cx7aYD?CLzBj|4H%!Y zy3I0soDC^(!?8$#Ki)yuYC&VxV+h3#G%{TP==LFx2R9(Uca^12<0PxRV`n?W`!Y>s zt&aC?iz6%#z&UNHXb!Z_=Nf8zbdOJYtS-e|5f)^u?mJq!IKLES?ZJ)(%Pdebhy&G_wA~^+nsn)Wa9%{$SJrB0e z1fy!lXlJP}!NY`%GVR*-aKFglQ}Wb`jYqBdu}jm_>nPJUR^ z_^CWJYR9@*$CBnzJec41vRk!F97gR=qIeN+CG*D7jvNWcPqDJU;TY1iIF6KMJn_=Yo@gsba* z0$Ev4$Z++k;EN#~6^e!3NIE}Mp}j@iv{CGY@orpCp+0j$815PlaBWeAYowg1_`LxB20PrERsd9 z%N3MJe_}H`4J>_)RXzq2o@>*#epx5K1psw!6~B<+6{zJ`%xFG6PIy<-1FMuI_+JXR z2p$H{qZ@~_h?~5ytY{(koPAG8?KQn5oW=GApXat^XN9=PBsw>~Ni~UiLDb&;$!;gJ zb3V5@6J1mXG@eec;j4GwyOPVF;Uti{`7am(JA2`q>RUpW%N1=U>D@sFY^QhXr_LM4 zkN(nMt+HPSu@Z2rB(|GnpM(mmtJp-FO-o{X6LY@Vvl~1t)&B79`6-!)i2Iz3slfWc z6w}%(>VFmJpXnTZPI^fus^vFR`HaN8jkHg!L6agb4S#*Wt@Hj|LQhl){`CQ00T;-H zB%O0Sa4jCR_|D~G(UYItWmy=YP_}A^1ZD*0QY>DnRoLW7LFa?VR(9`C(=Mu z{^cN}naAMzhsb}5%l{1!kpCj`55~RV9ckxFAC!+wwlN{TS>gYw@NTZ~Q?BrS6s9wa zcx&|8O!D$~pG^tGMo&$*ale%xvV1oEMR;v${uAX=ZgaxSF=$4n!_BstO`xyIAUD_K zJT891N>%p>Xr&4}(V&{Ck7?cYcc0Cngmse$c@7?t_1(1Y?MISO=kB4>ZTqe}StRo^At)<`?)Zm>IiRNRE3SzfBb~)>!z)JisYe z=dVd~|KhVr>6bpvPVf=pYMl3EUb`7Tl7zslz=4mVaP@g4RQSCoFP3fr{j7&H?8A5oI)%PW&HJ zl+{*-Qa{HcvZf8<3eBQ7A@dzxd6L5-#{uL4uw{!x-g1kt^XBoaKh(rmZ89eqNPaw< z+`67XlCD^?amDkEOW1E=mPo!M0UdDxm5wS;wqRMqp`cyrWvr}$(d|i}8n3akcuRZ^ zfm_}6?Ds`ZTWh$D^7nhm--W=F3`nZxg$| zOICzU%q%an99fz9Vjxl9q3LIAvjNMLiqAMY~|If zfWyi5>M8FCq>AEmP3wE{eX~bEPT96g!2zAG857?-uMSnQ;0*qomN=&TOWx@=Z*OvC z2yl=#)9#`6zO6aXq_+FEuB_XNvBm6R>O@au_`g(mp{?-Sg_z7?G1noTILE`Ax#QX` z4c2L?N$%bJ4MN8{#~@85TteJnyV45l+Lw@dNoIhvTz#}QPlhgxLQto4WQjcawLeujK+q!!wJh z-L!s%+H?}Q^vff()w#)>(1Y3Jf5zlG+`X7+odefcrA&?w& z(~8V0ewB(Ry*KTuvaMG|Yj$7sI;;P)cwtpKKX91i~96Vx;K^t$Ltxk-w@HcA6O*|tWOw&x5%c`n*O}GKjy~2 z&LMJJMY63wkH`3?0vFnlh}ug@FOP594n3D3XuL$@tLixx$TU?$q1fT{plp6KJ!yCi zeJyk|i-vdO`;<4cQ;nC$o4@Q#W|x&OKI7i_G77aX-lzLm&RTm_jUP~H%f)Pa(1QSk zoEchV69U}#D&|>9csvTdBbTErv3cv}WE09=!ht~!#Yyq@(o4SCe;|IR-($Kp=jHS7 z`kh&4dYk7qI{*L7Be}mt^GW7op}Jizm02_p$(T3u<#fx7EM@@8+=EAuxs%m_TsWtY z5^`t9^=SIu35{+>>pJ)@2K~O5`1kaVxiST*i`Bw}7Wjy^FL-Qr-W9J)f?_a^3wXef zkY3X`Uda4Y%u7@DKY0i@Zb0n}Q8fY@#H8Dk-uUbGtcMvmzo-0S53?S*(1OPPQsRLCe%X? z4RbCyHdM7r59(}PbIc{LsMD2E+t}H+(JE2w$d3>!i1k5I(^w)tEfH?-3_4i$l2$~ zJZ5X0YjO#DNaGc>7+>Wqrk(N_ng26}z&CeE(^z3vBFHG*FX>e?vS4a7P4~BLOo+`dro9y%u)zZfgwaY$*q8jS0Brt0#O;c%7J+H;+yOr`P3iNH|ND z7D?vGd)$T?TaTN2$nyn{AjT(~$^4$8LJ_Ke1^X1<^jEV}QY6qd4)&3`sfyyLIpa`X zcp7Ss=cyva$s{cS%NYP0t4=Sw@KTYwUI&+mAI!^Oznb|p(4`>43k~1mV6ti zx4)Pzd}A-tIn4p<3%KB0GiO3v6P#C=WRh5JYW_wZvhah2AF$D&Q1L0swZ9DRFrSE^ zgF5ConPhFO=Iq-jJSZF8*IHQzk)%#O$z)b!r!wbE;D&Uo}ql zZJWXqtYd(Wpta_$B_wKHuankh??1tK(p&PP##hS~#bBFG4ohz%o8+*r+T*UU-VEzk zw+I${Iv|EwNmx1)@Tk+C-p;(J-Wi|4=V6$s;z8){Lmu3Bngjmv9ZDJ{r)7{<4mySg zNL^v_Sn>F^<|tqI;~d7tAkrM--a42wcmo~3Q8!hWw&i$sS7x7ylVRI168Gi_$oCYK zr6($c;Z^Y@*4f|NitF{6iNvNc*~CfFPhSu|IE8@|2A_Lz578uhCQ2*Kb;9b88W0i- z!Lb{K89_=<2FxnM<|$IJG0s95C5pv{tUsQ1vS28*R6f^mj8;sqA535<8A9NRClDz~NT=2xsgvB39&_ zpT0x$kv8XZc3h&V{}tEJ0KukpJp;6{dOJ5zQ%J2y1>X6jciY~jYq$pM+-TZNCo9&w z?6BH^c`M8mRiNYUZ(19J&AZ8b7F4VLs#^6*3!G(zu38-cQu5SrtNZ5I^_*}}Sb>oPoMca6s;7sA_uVt%> zkI`YmPk6Ncnf+8sbBL}}z+PPp4N?~M(2d5A7gtk zMorR#{g5W9>vBqdzJ8f+;x%O@bvJAxh6eDLr>-JA;ZHXds?$L=<+L}`=8KdpyrKRd zT0YjbOjH`GfDEd@P_{c`95$@*SI=^@J-eZOQ?JAi{a@`yqyuQ-4V(OR+jj7qm9~Q! zjxLSO4bQFt`7_|s?B|7#TbjN}f+AiQC>!<_w2sQcafKSMz6mSB6J!L)L?e*S8ByOa z)b|A6!?Sf5=Gq>R-MdwgAQvQlW`;k*>;=(-5@@&VH#PhpupZ`MO&>*NcG?S>3-dZ! zcARQIh?<>FLaT4Y)xst-oL|+S;WxdvsF3qEv;SWv%k^HlO_c*3hv7E%STb))y458~OcmE>UF z6-M5q41r2@yFx|sT+Rs;Oz%#%`d-S$b!76UC7ZQTWV4M_wg;5$1DkDueC=#DYpBX* zliG^`r~tPIvEn|;vQvb80_PaSQ(3s0o9GB+e{M?{F@DuBY?jBL3Z`&1hkgb25o+j` zUG2JdJr)b1^f{YdGHfC-jo@Z-ojw7D>dM_YoU6jHn|=NV_RdoRoI(k|zeK`I9kU6k zg5O?ZN%2Utgxy~yVM4Qn??IrsK?zouAr2#cdu9{~(Ihu|Q)v+_%KWh#Ir7y?s^A#q zIJQ|Gx2lzr#)M=+Da#Yn)z;zdNq?e&p~Ww4OIfGTujq+d7NJIS4i=Ee9G;}lbaZJC zkj9Ei7L%7OLT2Q{7~Q_WfqYY>w6dVcelB_B*2$GDguR#=PgWI**@F49nf)naern|^ zh`I{G)vK72@?yRqc}&+XRiv^fTQbc$dLEx0tjbc&whtj)yZo5-iCun(zl|f!4lO|z z3r={8uD{DrYRr-acWFds^Xj@aAN9Thy}nGXodtkHWk+zo~ zEe{r1o6UVn69KE2qtyHl9YCY)<-06b%%{9M{C@dIF1}}1yEUm(78UJ>JTLohV>8t&Tr)qYJAL-IM#w+N;wB9-P@i}9i@4W^@;O*E zcI8)pSTuIy(Jd~OV20nQkt_I?UF8E<5WDNJ;h6l1#zXj z*2b)(LUT!o&B0Fz@xILxHmRuC8}^}^U9S~=&5dZG@Qa!Dn2e1*08@W%SAUo8oR{=I zB8@fKH0xDfQQXHYjd(=#vajC%7#)ZSeNGHE3j55x9PO|24>ok{)bF3S&D8gtk~avw z3P!=620)-Drq@!$t}+UCzZbUq2UeQ&dMn?W2K(wOns5^9(KO7{=|0%I2oB=s+QC7? zTM9sCCv3#&?UAop7JecNTl26gSELm}@N>}a6224bib}vT74^PMqv>-nhm}RrD|_5h zV=Rx0eumU}5#d_-{N6{~cAdkJda;!WDriv{>%zG^Rn@z_DqhOrJ_@(yxz77Fz<7GC z?W=@Uv|~;>7m%bK4>bk%SQ-DuV-|>TLSIae|AJ)2UkWw{`q<_DCo_wH%bcVVS`+oS zTvMO5*Tb^l+C8hP>nQ!mPHg^eb3lKfzar4IVKA(3zGmkS3CwzHFhx|!Oe(RP6ZUfH z+P~Y&-izomclHsT)(|Biw8j7oUiPpCo5jE5rKXbC{dEU#DSL3_>eZE@=w=J@ZhC?b+U8WW1Q?m5!YthS=t3hrVBFXfz zQOW0;nnyv(A9$ggLpSLwyBw~ouBPLuyUyF?SvUIT{BA9Rn1P2Q^o%E=;%)dm9!TZ1z042y8(I^o54dk(lanNh@0 zhxrfH7jq6T!pAq)Xt#B>IS$u6SHTsSz}a0rj2h!dvqU>l@JMhUk!K!Royj%$2ycB|B9<4I5qQZuNw&Mm(i6h?%w>!qp!- zb}4lgAJ&g~1I}9%zjUlFcs(RkIXW_%B~8OD{bK|k1k7?9EoFBBoCN1)VQ)pCVIucy z#^FCGwOjXnAca)HQAzTiqw(36jM|JPraTwKC$58~y+OO7Ich0$P_QMe6i0AN_h7@) znoDoLoE&z~ZUhgu^giSpKO`?ygezgo$ZYVe>j{0WBcskx=w_EAC(YDF&uFF!*|%$9 zAF+E!J1hUTAYKG@QcS0^NqVsZvda70GgCrEQx^xS}B~@TMaAVb*-`{OiZ)OP? ze=aV4+-1nZ=`&ifSXY4lzjlIc{|PX5S>(`={taXVk7*w5)Qmj{^}P>m{0nlXaYBwz zrJKwjG1g0;P^=u3bsG)c=~`8Q%|&%ak7&!je0m*8<~&@P(;Inegyv`PTB@DxS>pgH zjPu|+y1oK}#fLCFU>%dVpP2>DAdo|fAl3=&DNyz3`-GgVQF%uyu>5mtiQL$VzilhD zu>jGdVJNw_;rdr zch+|j1#}Xs+^3qR#=@P;LcMB|$5UcyWc;ck<%-uA#oE?3 z>WZ|mD<2yn|BDe?NxT{wLzW2+l&iM<~QC#Q0wTE zV^?Ep-DVzg7Li-MZ0yor4Ox278Q)~bdPOWhQsYsPyo7TwY4fdA0paqUMFQI5a-vla z*4u?(|H6u7S-v^TLZut^Di;uV0<_iTl#IzAH#L1RECBkqqg6D}Ut;zmL17{3Z{$pX za}(@e`&)ar?QcK$>i^&V-ZJn1Q-6l*tz#p-QM{SBGREKs()95-s} z?lbn}jOzP;?Qd|IVQ|6KyW*=5(fd#k8@#N(`a&}HstmK5`x|&+NmhBh`Ry{96Rjoc zOzg?AQ$$7QkVuh1+SD6t6{^jgf6R^+5BXJc{jH)RP~H_4|bAWauH5E@zb`fxg=8Q{bpIBW`#Ko=Fx?vIPr6Bw`F=a?amU_9l`P6EG3f>fNnx8IF$C{+ch>7WGZ{&uWrHC%8 zuF2~k+u3~ZcCPN!o8LA4`a8K(5KXll>s+Pj@DRv)cwIBlZn#0mzNwYdz+(jzmV_mtZ;16l?%0PD+G5C9P@ ziR~KDe9OwyvNUfgPVH3`7n>0*TA}sgf#`J1KksM?A{Q3-TA3+ubWittkyw$;!z%L` zy0h+rGTX7yTykb{@wio)hs>jZ9Q5DK5rp!43?g2E=1F89^Lnr@2ug$QUPKnsz;ty3 zV_k4#ySst0vE^dh3A2~kVs*$3*4MGC0JigXX5c)rzE8oTEcP>wikuid=jfA$3?wN0 zjQ;1);Z$Xt5nM}7N7hGkzKo{M&NbD{hFM*@ghC6C&Mh6`?`&Hq*b|^E?4J{$SE4eD z;jBDTleuR3+~!TfX?s&&MNVd6i&EE*S<%#>oQl*jEK|QW9r&1eF2GwVnrrUaw)h57 zuq~dca{1KTns{uKm&fcSnov(=XHjM3AH71v5mae*t1vm!(mx_o~L?ups zMpHx3BEB}0f;n>Le^_30va+{|QXxm5!T8`xWHN1ZBV~?xoZpJ%-pCX?Nbi!DAeiioF9W!Dmio6yv9cPkFnsS4_gT`T@%-R8D4i=mUo zf&)}Avav?7jAJu(qCp3 zWJU(2&yo29w#^!SF#_45#PzIN?zlE=M|OPe49$GlINm}1)t4$`F8`YGZl`~o?9|hE ziRA?2lHM2hYaV-d-lsM2JMfK>6I+Ke-2!?|?x-B8t+RK z{bc)lc*n?Io;tQ6QnGj)XPxH8=N0PlM zI6HD?y5=IBUbeo>8GE7gHi-Ic3kN1bunaBlW6thXmV_!oq`01!Gi5? zYWSGSC)Xe{_6@~OOVq?pQkANuB6$V0*2kV?T4&$)?X{9%7Tt?8J2bTqo2)4LHFnCt zWZqWq)p{Ur|tkjg3r->IUqXdJp>>BRq%WAekd>!>q`vnEc* zqwxEJz7!-QfX6PJOO{^UJ&KW8021tIV2Yh^KTT8derBDp^T zhshX&Gv0vhe}prXPU6gvJwH+FbUZ7_=UfQS(NbkA?JgJx@Az8-UFR)?&u@40l5d{h zi;0%pU-dt2>yJ%wbgSuDhMH!l-i1y@+u z(166LFbgi&s^?vu3X1(8C{IBXt76F6%3A!%wxw_W$I=$Art)x>0I2E-SHCUXm zz7YFDlUQONJps*iu9@|>;$!}`IQrNy%m2z?bK`GntxJ8Kf)pt1Xg@_}h5$=?s~?d1 zL;~(N(G~?)PKKEc{##>h8yjWcd~qgaR-YsNt!aHzI<&eG-fh-5gv|ob z>>8*3MR-kijRPN8bbo7D+YI$38XmyfM^`DYKp1qM1WJzufl;IknC=PIFCnw-CK2E1 zpjr9Rw%xn$ynpN-SZ`Iix9eWx0*d*s_0v8%ZvB+L3@&H#)v;jSHlwHGL7O(eybcV! zU7+mHw^Qt{HlfNBnpQ++_v2cH`g&dNn*#3DyL+oZ8Kl8>toJ5712__Oj|i-+RHK1V_yFUW_l$6G@CxbQdxYl zD{|KI#W3XpzWC7y(%_4;w`v}H1?}4zGlm&+T)f$g8R?d|%$S}PsZqscW<2AfAX|OR zMJMNB$mPSVB9VokhM{+5OS-;weh9iKGEc!!k)UOv$|GG5s;B=$4_;!N8Yk6AO{#<3 z@Q%@>!uDq6UD})~*rl@`Ni9Kt@`C=nWOievti`(1ha2q;jPp7xpTtWfKYBR%v5zp+ zGF#)?*BWbl1(=1Q_ICUn*zfWAZ&Ga2+5d$2MtTc$?KdP#X`1WCr4UD@xOK~qmBlkT zv11!$;;96bik%oujxIts)b{tNSFl|%RXZTvS={&jcA{3nHH22=1OV#o42L17(6YW} z+i@{jwn`Nr8qn+8ZPFZm0_Cu@FNIhqvuNyQpGNZ()>Alfi{^10olW?k*_Ai5kdr<$ z(b${(d1~v*+VO>iGHXHQw=j4w(r?}WL)xE!M^$A1|9Aqq5QNZC3%!l2V*1CkPaZ zd}O4Qudb5#;-DRz4hojp3nbXB>L;CwiDv$DGMHUJIGxEG~{At=`P!OYPt&SqYoCr=eqJyjFS^6xhlF0hk4|^dh;x+ zKL#H{joP9~t(gt#9i(a@z==dgTF_q5PbP#6n{bDcY}r$G0Q0(Hr78DsNOtv>9_8xg zVq((l>B97Qbo}O*My}V~GQ3R9>6qp&^bd1QwXV(NgXOr{fgeFR{zA`rI1MEF|5HC4 z8o<(hObRm`7ddP-;}9L2hnE+^!R!~y?ALAJQnyexaSmeQCxDsS97;C4<>{f=;zDx{ zZ()Cb(PbXhX$<|^zVGx8yHIkb_e+D*g=^7^?5uH#`MI+IjV?r=KOh{(k+i6zkQ7Lk zIWHm~GW~7(7D&i7JCBle1(ua+qh`ZTdqR%ZwzTtEvINdpYmEF@Q*Te2 zorA^+oZPnd#X#2AgK3`Q7nZ4Xcl%TizAt1qsiOwP-gZ!YYdXMVsjt&~YS|{2ejCa+ zSHl>GhW!&PWAw@}#^oFv1G%$7PTc`Hl11R?)*rk{-r4%i!Ssn$6~4jbYdbwuQCjPx zD)dgvgC9n=&#Ulu#HA<1y`T66pp}`n9p)syGyhY@EU{TvDC-iI@>yi5&&?K+C*k-? zQTqtDzS(u0pYnGnCm82;R(Shn4b7%#$Lu(7veh%lcZIL{Ff*n&uQsy-Gk4qg`vX^u zpgglo$vz|@1%9|jEhR{~y=>g<&1Pyf9*q)i{XgIv`s~Jfeq_9tdu{Xx8Hxf6KD~3C zX0lqp?Z6d$+hgDgc1Jq42bg&sJ0~(&1HUUpt1*O>Z(dx;d`#re=xe)7RQ9Mb-B86@ z{>Yd0Ulm8cNPTAe2iDHcXX$LnkKNjLsrtblI!Edb0>549*!ih|j%;2@-rhj=G2n|7 z3FPH}MTdH7b>@O56k+>lT_y_$FBp28Ir9q^TDNnrf{U9i{A1tcN1hwwU(yqE7*S_q z%B1yiWIB?yo-aOb_zjHVyyS|UFv||^mwwZ?wj$4}PJff)6 z?B5U|w^tt1ex?3I&Ty(tw1=xLvzuwhf%1PH=surYwZ}X`5Ljrw+$li`@BLQvsYI^@ zH;5=pbwidp_??2h)IUW>#_NlGH$R>rrOR$ZcDM#w&OEPYc`L4Asq1sFr@zGyT0mxy z-;SGsx#hj_-#v;mE(l z2L;MD;}KDqnol{0a%cHexLv|0d~XPtR*dWy{Y$DTJ0GRwB|-SsIS!w+{P9ZQhAjE8 zLAxfA`TlTi+`Xh}$|+g_h~$IXZq3rt@=2OE&A${_jB@RCmqxTbMa$9WHK=*AC)?Bc zne!WW$&9D1ovn~d>HN=AmGWo%^Y>u)fA#0i$9C<{DJsLv`@j2>Ik+%Num#tvUjz-N zSJU%iUl4JUDf&@renwyROJ9%u-}qd%8$MsD%>RG*+-FCTB&EeC*mu998YTm=4!Pc9{;nA9FkFztI1;R3rLZ{Q>nQQB=7dp5YX*?c{wpC)X`6(#0QJ z9$#Mn)pzx85#={jvphZ)Behc-8Y~_bKO8w#Sf||6{k!*l+H!U92QY;^dZo}z?|z$J zK|T0xk?>Nj#v6Km$SQ%rel zr(O1X)BI_;i`3?)cCRmE)os04Ce@$h2i*%mzFrNq@TUg(L#Q9Cz)U;#Z5OvW2vi%J zfFXT@;S0jz^PCYR`yLRG6W((O2v?6O55Nu8As-Fz!}Jy#5}tW@Jnu{ zASO1bj;_ArF%Qf%j(qP~Tf!k}Kd$DZR*yFkO9g8DN6-5~sML$uG41rlztQ`wv_vv~ z?CHom*g-CR8jUI5(R{F8YaH*NRABi`bS;~ZtOvf|(cH5~fz^Xaxr~&Y<_7bb8`Jc9 z<A*F?jW_o|5HqCpN&rwLUX%pu4$96h``t69~!yROvy=%?ni4s z{h8L**XFi%uPg9`eb|h)Sx-V6Y6{1f9pm7FCb&;Y1Tg*w7KwQw1e|z;0(xH zGjc>$DIbSi4qve}@Qx=}$Ku$weCzlS`?%GNA-1S!dIqL*aCNQ6MoI zTfB2}E7NizgKBBXI9^0I%EyVDfeVrsZ83BdOuq zJ>)uxFM_Fk&`nw$!|~EZB-=HS22^JKM*f;?{_Z*X@7O)R7M4RM6P8A`j z+2hHMkCJUav8CSpN3EIh&s>qL7>EZ;`uo78sb#;S9|vkEV`guKC{{_2gbcxVY)^RX z@kjTRlt3^Zmt?#<`GWzfDa?{_eq+cBIwylDvMP&cae(NTh53P;1kY|3PuqaENY80L z`itg|yRz^`nR^3xm7%%tXwkm({!M!}tcV;Knmab1UzCZW_el)Rt!l#uBEN&{BADVP z3F%Bb*smdNaUM%G?{Ts(&O3{z2W%Sq|7m?FNb+c* zbw#O;^f!eZYhb1%%#OE%*~oIH^fCD%T=GU-%c<>kvNN?;F9r7xM%(yi^B;}{&i4NIc1F_QY=7*z^K60jY<5`CiHj-rC z;12_(pJ22J%^F1xrk5(wxv<76bM;_v>1*0&@sQ?Mo@@s$4xaPxl&}c&0jvK>+YQKM z^S>`&H7iec&mY@X5ZTv?o!GXjXa~8+mlw!AKG64U0wKcE{_@UVpIz^H9j)AtzlWj0 znvOKb+<2LtW6rrScaD*La)uFN)(bYcg78h+s4qP&%KC!u4gOO8$nrU5p~faY$6IE8 zotH=$Z0Sf~E{%GN2&A{CX>NDnpaWz$Ob<)wbzckz+sSmmN6 zN%>bw9{VR^2g1zXNtGPiY4iMoNUCP&F@@1DV@va6OUk&^JbrAan)t|m6qU)RHq>}8 z_41fMGSqmhd(?emS^P<JZ8(o0 z)CeFh&lu#FJQd}L00AHhIxM4IM5v|Za{#1+HL_9bipDyB3c5S4IhW}LRrL2LNOsSr z_FnDT*e#mQr1>Rh0IrsO#zKIpEA9qN*gvIP{kos4NoK?EWW37!Q|Jo@t6wsJ{Paw0 zbf;`rz8OVq_Hoh{pmYi>y*O67h zRMwy6vwU}YVU3Io-n^hHx-WMSQ4zDj6cPO|6*@xR?5f$#9O>knU$npSFO7_ht*we^ zoxWlNL*kCgOxvEE#ITf++M1YRYhM$)l$(XCkgS*OEBH_=b$`&GHk0|AKAw>Nn4F&N z@6392gjb4z~o0`%}X#j+LymzfXs5nS)Hk^_Cpxv0P{7MK&&>E2&L#0hsgarSvbni^^h#_5$aylr zN8HxRgY)V=Ml@TGmSW}3@;fqn#dne>uTYu!@l)VF38cT`NnL|={G*!o% z@H*av+$ip%PTE8*=6uGcRkCP-+;kwAIRQs{#5_3nWLC72t^RAG*J^QUdTwYF9Ik(f zr>s01G4PvYiDh3mUMLZP#7VRAd$FCHVBfJ6)3u*3*rypR4(zQU)%7zlQ#EkmsSq;{ zqKJeiepr{dI6o`A^6|zP8r=#O>w+D1woZNt* zqP!Vx3*$Z86lyqtLQY@S!!%(r-98D4M|jdKw@(_0EAuIDyS_J{T#pw!e{`ZilT?cf zvC#hT&+7PXYAxmO9ZugTI_)pJ?<}5^zXy{HKUKeqy5Nr4%JMYUf$i?VM$UB}?wkWA zQ*CTf8_o|T%`^+&db0!nNDIHNlq%Pn{;J>(#A$l`D}UJK2N`ws9?Eis%~E55=BJ*_ z_Fwg@aAqE7I+(p=YpAwY>J41Q0^+i-D5z`qMBfa-N7~NLywe{emG3Z{TxGj)$!(S% zw*JNDW|Y_DS?T&UV&;)jo4+VoX6wt)!(I)Xu0P3XVD+CPNVGe&Zj-!~wCew45k8xD z0sMmnxHvhPcXMQgRt;%-q}N+co^bEkY+A~83a%exh=v}2YXq|FM1^2s74-S1z>jZq z%7eu1Wp*w>ep>;L3jP*L1T8f}4bQ;O{usT^^sHW1fEX4$Q`U{j2_l#}5UwEJVBhB*MrZq2oUK+-nK$Ry2W4%6){GFNS0 zTo!7Op0&9d-AKW>BxwUD`i3K+G4nK9iK68FL~caax6sZ)uEj44+eN7H6;e0@CansK z1>Lu%wxx-Ffv)RYS3-j^6+eX<-T{a>>rkL37x0pyufqb_<=}!`qYfNfl*T=MxZOjcQTVxM&_WT>-zv)V1ya-=ci!>W`6X}{3e zWd8AyR&AjMu6D~bu;Bnc>%4)vZXzbWxlVs>u8RIWNf`S;{}WvzABzkPTS-j4leTAb z-svLzuPUaMg&Kdu7Yk^L(|)axIwoC}<&LDWBZmwB&g+TpC(?8eaEe1Zm-6!n#q4q2 zKZW#@KaIn!+f{wx@Pyn$zEW-U3ERHV4}@|i9c5$iz#6Kc>< ztT%E~q(&P~k)!H-oNS8DSj%jG*Kh5D02VQSKNEuE+9INRrt^^Yc{3;4jaI@OTOBcI zH!x#w7n^T>rzvO+NV;)mhMizFFtxn#E*97*j>&T&OM3h|`#|zsK3O{FFvMShm0<|G zbv|&j9QUlMo)_sQRog|xh#+6DZIj0VN4B5Ykx!bz%zrElC(X9~?G{;@pBlx;^_rg= zuYiriiBmX=oHQe6>A=TAEFb`xj=)l=YZP((DCt@Hf++a)2O1G1m?YY`F6Sn4XqSGM6lBq=ROwNS= z()4iwZ%!ds^-BY&c~VWBBRKPugDjvbf`&?*sosaNgs9$MKq)K#UHPt*x5uN$#Lc8Q zcTU=4mJ7_&6WlS&BaR3LQ*sO1q~u#{Nw6--vn_O;y3RcC42u3=ZQV{E03fPGI~#v0 zX}%o{`u}vs0ry>l>;e^PYdc-U$1=V*&EG?Wf9n?8d^-&(>$O(TOk!1OhlgW}`G@;n z8*7E)X96O*!ok59jX*yXf$ntQP~#l1N-F%}uhtLPAcx=rIQ|dV$=NfmjlUNm($gA~ z$4W$Fr&NN%IvsI7GWEWjbG|?==VSB>MpAD|R$C3knauDODMR*_(I1?5krg%#Afw*~ z7L71B7_6D3<@kyk)(OL0^;KN&WEt}`IF<$btv1K1$n>g)&5^0jtStm5-{fYOld){4 zl*b>B_+J&N$&SeB3{?@bW@wfl5!2L?Xr zJHq~@-ReRkws6WP`bqWXQ7S4wvRZ=pA?iX6ds6|7eJ!UyBzZputiCA{@-Ww=-J6j- zp-%p56+cDxt>xzNcq*xhL5>=s#+NDX@X_J4L{Z77NZEmhNk&=!fsx~B9e%Lq!J*`c z{2?>{!hKJW>Z*h%#CpO(1U0P;c^fJ}JKo2r>V?S}RBg)CXuotI<>4Bl7n2BwVSke7 z`h`Dc$4cg|`vj2a?m=IvofiB<0)HHZYU4jA*YbS~5pIlr7Yug-6-iTB#@ zdkk4ODdb}H%wN7{3Ju*lP@Eb2r9)`eNj%j~WSRfV#L%rTsrZFWf0#50S-Ey`P0zu3 z^S2!kp1Tt3+;HV73lR8R(oEN9OoPX zpH%rEQ2cFPl2|{YFPJMLufzO^0P|iJ^NX9#6W-yM-g?vhqXlCo%3N0$KMy2+UK^gj zzHQ=|0XG3KoG7?0oZnQNZRFr&SE_*d`g{WOJ>O5;u4}7bA*iLe&@3F6=eCQI9CT_m z@AhX#fIP|5c*~KfS^sJvbr7VNKC_({YUrUcndrZD6%vV!clGjL+_y+~Ms0nh3+KjU z)8jsn`lAjDHH@Wzlx5lYA4OS_!9O|!xGjJ%ZE($YvOUt%cFkHrRCqV_NsD*crLKo0 zD5o%#a2dN-RrA_As22YNydTh9I+*7_RQE*p29ndAP6E(O0HHwBqroBUg|k8Bsk!}j`fMqh z#L)uzYsp3@vQkn0llYUvE!h9?zmrddPDU zP&@k3#&9{~6DJx9V&|0qk|pyU%p(w&4zAJhtF}>XWe3C3bnBbl@5nv>H5PTw)sZ;^ zroe9faI~GsB(>HYM!mMPi_Q>^IE?q#d^Pb6S4>$tWwIO{WZ6Sm92)JSgg*iedj#yZ zL%?FT+Rn~c<*Ks~?O3;TH?a2sFOulUa)n_tzuN=|>w$y6mx7fM5WmWt`?dh<6?LsD z#VL5!FK+zV)ovMz48eg=DS#Varp*cMTUVD^rdkLsWjKpQsVQg8w=74)J{lpA(Xdf? z-9*?+${%n7Qxa>gFR^$Ge#Kw?06>4v1CF9b;wxtwIr!X=ht%0ve|mG$rg&-OI*D( z(3AY%_M{RygPi&vqv6Wl8pU=O;-;|}1}+Bz-+uc6-%ibb+i<+7mNf6e4V>@2IrXQU z;UW76zOPmtm%gE<#Fxj`d`C+#Nyo$Gk*8R6&>|sl+FUg_C zocmonmRF*hB!MKG8;yOt+F?G{4fCgH!0ar2-1yX}FXs-k&rY{qDs(MvBpQZ!V7gVB zk*?HG7w=UvL1*#LDYg<+U7IsH|5~0iI&--Eo}L;t-$Xi!ukJ@C(4UHrGCml*b_Dnx z=-DNOvDZ5w%QKyet}-V-vIlo_PI3d9a!;bAnUXWLYLLZ5M^+S%B=8quRML*Fw8N~i zf|^59OJ*puW&H$cG|iox(ll}l%R9=TgPL=nhhki!!Yq@lOpmWz`9+`n<1}q@5h7$E z$DbH?+Tghg-zl+ijgFb)l)s5Q(i(n?%{;38YPKfRII_OpWVYb#=oZ1bACu2wi6V|f zgoqHbdIh#Jb4XYev#Cj%))(l)wr#p~>#xl$pq`Nu6dVb&Ec!H71_A>Y=hm~^ewFn{ zgq@^zoQ`<@c|jgW+9F41I@U8wU>R!`dW{Ep9+%rbdEmUXkkwfrc_Ti^_l#Ysw$L0u zA8p;)qg;-Kvs1JFhdj~V${)sS&3IOsMTZ4|?Bn(rkCSpsaoy7ZC}S0Bo?B0EL3Na| zlEWzHpI8_lODKV&LwIrK(TdZ`LJe=gq%&X7%PV7SNcHtg@>NU4>3oyFieNZ%Y6pB- zx&M(I!Z6JhRtJ%{MKhwFxRibir)R|L5jg8a581Q|g>stfY#f6`;E z$=AeX>9NL)QzLbNao9DM9?@}@9#i;n($v!9Y+lWJW*$cm`P>JhHF+|tKf8X(Ce0_w z>T7O3s-7pl(5Wf0kKe)cz<1CO_d}jEK21kkp2#6z$Fb#l`y44*H0f;D>2hbz?f0`t z|3CY^yQa#Z-!B#NYUjyU+jb^Sw(Xq7Pfov2<<+#wv{U__Zs#S|R#l~Wq`D)W4ED3e z(a)O~lwl|4!SQlZ{xYIRdVjX$AZUj`GA|QxC(x7YXxVg>Nb~inXu@e*d`CQ7@}s>? z8)~vr+L!|+6xW#5{96AQIgSP6IOe@bSLdge&7;EB)Y?pakI)9yH#%EiAA8sb`gvwt zk2G*U03OQ)?tp!7^$FX119U>t9w3W$PMt)0;Peq0C5H^^QGnLfQ=Op2#1$^A^A!Re zS!DVESt@6_Il$JHG`+C_+J@lJYmZ@9<=GmcvrEa&f13Hq(DgT*L`Pw&>gkuv=P{$t z`NKQSkt51Ug^|6}jwmVMSZ__{GVE1lVwnOI%PyFz%HTA+K$AD8z9&jLfQ@T%%1btV_F-ynfV6+E1B4~?d6?hH%TCv(Y4fpPXKh@4_2d{WBhR081Yec z+Y_LB6=ZLUax;%Nnw+jb#&+U$Z(d^y^3y4RI*=3rqU6|46(vvc8oDLQ%o%Rc5{TM* zg-C1h{={GXQ`uT~F8=8#Qp)ucH1WN~U{_7k?a_Go`4m#+UrEf+Lv9|77w;7%^4yKJ z;)6UhUCalz1AD5#CW@M#prg~!7x~@=7WxPa9BF7np84MIEqKQ>@DE&aem64?*&gf^ zF_+CZKRqY%Z)HJdj@%zv4L@SA*<{{&0o}6VOT8pb8DHv#_UZvZC9E+a62P^bb-ddo zodt?5-nt3xMF$O2duUFfCDZawvk~5pU~ZO6K*HdV>j~lTM~g#pO#Dls@m#4zBh(m` zT)ZjW|M8MTsNVGYkFIl=&!PWS$I*Yj_xuPpx8fq_iO27empsQ#?^Zq(T}5bRqw_aT zY=;_72cjy>vlX%mU1Ubs+P(=j9K|=a^<9+Jr1k}O84gvnt{tsY$0z@&`B8jmTHdhY zL0;fo#-X>Ah_Hn5E_HNkx#Q|x*JCLrs0LdY78lGSB@)-IxQS|q} z0rqhucy1#{Ik5kv%3M;J*R0^MLM|=GGxO=i4&Eh#cj|8Nety}u^_<<|P5ytt+cyVZ z``zF@?%);g4)1{f0xxI2@Jkoh;RtDuSnlVS+{4T4ocZy$X`!BiF2h=!)7>u|_7^YT zezX|o*Yds2pNQOB7x|)gVx%YXdL1MC1J-;ioy;!!V=&ufrkd@SyQxN#DHF78Zt5mEvMa6`eE`5$3Gk24 zGU^}8`U{pkHQMsSE&8bQ1G)V0J6F*|eA}g>XBgE%MHznBExz2qZ|oUJOv0QK4K?aQ zX9m|%uCl`(rLsdZl_4GU8EP+n(YEZc-77qb3I{f6oFbd>!@`fFc}rgOd)ZHQ<7jMt zzB!h%h@4uV$xtfAcaoG7->Xfqr;L$AE00uZh92629@0KCO&cZ(b%3yBYi0o3R9|XY zO;Qcll$mjGmecyfnL^ z0@}s>R#OZ>nRsN{O3ifhYW-FDdDb_JEjeUvJ!+Qqc*6CISMw@e%^vg_G)f*zXI5AUzlG`uR(+v=hpn}&;>F8Ui6(V+AfeV6hQ*dd%AJz-&>2b^h(FO9I7 zR|r4o9BdDcHGc+>MqTAxVAK!E(y2Ck6V;o+B@U0+*$$YC6l zO7ihdzK>VG{}aICu>34}jMw>W8%AlR z(+{;kOPXCaP3y^lC)&v+ZR(Hg6KXsa0@q)i&$4C=Pl<3r{nc%*3DwL`YKqJ77a;Ee zWa^nfk7RzLEs3$M74Ka;fxe#xE`7rjOXiVE-b=}wI2JFse#_!Tk1DODW|=0dJR9L! z{tZd9WWRtJpSdJsI*E`5*X!^|y|U9cJp^kkVIs!^$DA}*`di6{O3mY*$G0%&6|S~i z!aOdxm#5*LnuWWcgKIspaSvQ9M$67__Po&$)4N#{{sMRgGj^eWOgUcGQ4bOhS%`|& zuf;q3q+q^&;3vCV*Ux@afBD`%d}GwLOU~rmuj13^*!RK{KbCGBZjf!4PlX_-A^deb^i?u*vtAo48Ffpcc$ zF~Ut4l?Q0*Zt{svLtIrPNwwLASWZ2Z=68GYuQtAfDP+)mjO)Y13|WF@_Gii%0#@0K zuQcW&O$i)~|0Z&P;2R)XVe<|j+_Kx;P8zjwu66`NA>OZNH9Hxdtcr^SmU^qzO^%)` zLz7aVbS5GM{p{vzXJL?H@0lm@V%0jjOs`!T-`&4qd_RwTu&L(sOJrfx8ee+SbaL`!yvns3{Y4uuu>-mjq$&8nqYhnKVZ`}86; zi_o^V>Cf!7ThsSv9co^*c@(JdY>1F;`b=`OzO;p-3$y7LlAggA6la2>Y3^)!CZO6W zzf1cgr1$5_AVL+`u|N3)n=OiWR53p?a&~R}6R9Ct96RRXxEI`Dx@YivjVH;muXTej z@z#dZ+KPqIm$5IDDd%?=N=SPjDn0Hk)lUvL)Qdd=dp+osKB4cv_oRaoIgx8kJA;~= zSAK=pmDHJGo4piFYbLchmgybfb-crCyn_f{aj%Bw7H=Q^>YqhNyLTD-W#|)s!wwHj z`DV!*lah(z2nL1IIgldhid!aICwOiIS;#~ z8Gb>UdP$ztt9z0ccAD`L?6l}V;t_NnyI+vJ;dFe))ApGQRlI;gsn?LliK2n8QlO?& zn*VG}toJyKZSy-@BNou1)!>x4GMt$&Y>X$*+!vx?3l1OZ9TcL9ALNo%w4sVQWHLMF zO!S}dtbZ-u>%o)7%f?S}`o_ePdcfCUCr~YZ(F}eP$K=;kG=&mR3UZlTt ziR1C!3lthNv1xQ-@2c?pwQWt~`7)1|+$*qg??L-B-<}%E5spqD*)W7jv0KdRL#BLp zUnmn}av^IPJD;HcY5%#*%x7-3>Y$AhntIFjm!oH_aww(qB768Hy?MZG!=8_wuyD5N zODW&mlT`eD&pI0Gior6U&wKc8NLEyXKG2F{xC<7GwWTuULVCo5bHmL zO7hK6+6hz6`!`J4`f`SglM7Fk!7v*yrQ~$7OMlqI_lEO`UX%{!LSML6^;H&HRY0ri z78IJ#+XHW+x3`kjGrm`1ABQaq`@bU&JuO;1HW()^hM8wx*1)ig{h91jA@igXSnY`| zTSi$9Xc^@!fNI~a5xsKk^%B`EzBD>}+jiMwk)3rxt@C@e;UE%4n_eV`M-HhbXe}I^ zNoBP+S{p&gc3bv+)~=Z+qLxY6*k^*Rd*!Cv7(7St1vh zx5(mVqO<{iRYz+F(K-O7ByZqmyAsICS8I;)`Tdr5yXh-IJU+kl zw!^SOwWR@_0x3kdROOkzSxBqJz~C7MMoU}Nbjf##pIm!L;Ga^4F1m3b5WN#C_sHw$ zb<$sgF}x{%;?=Edo zw{NsL!i8qm*9dXQ3Y8|w$S*&eGE?}ZRyq+VuTuvz4iVklHfPY|ADNP`)YUa8VGLhw z3!sfPUB^{>Ys|--57H+ceBv4sw*`>d-^fHUPOY?b7`QY!g$~X1H#&O_?y4%XJ; zmgrZktIYdM8VuNvWmQjjA9CVH95w%|0uUd-D70&->N6BSGyR<2?@kn5b%)Ff8gVZj zEJ7xV?gD^05i!)_m4T$X-TKAB&*}AK5R(NqXNQl<6j9F{|99&X!I3BPsHQP(Wcg=H zhqk-PV@Xr*BnrCK52+jz|0>kr0UH*ZainAqJGNSCyA`smvuB?H>19LEniIF%50uUM z1cw@aZ;Pfq_0KDmaps#)!z7Z?Z*9)e=(HCX&KzByk1I`lct4S?$W)Lu?G#L1C~B%} z5K2mm*I}evC}|%b_Z4oh@jlkL6Lp7+8-Af5?GCwPgy8;+to;`UHg22Ot$zaAnUMg9 zy8;lASDjaNy4E%3Q!a2!Jq}$tadK>;=AhPrt@T6tMhkhhr)^c`RfHE35w_9|dasx( zS>{fF^-@LtfNE|xexgkkI)+_GADgH{pWf!*YEEyl z+L?R;4xn+h@lTT%kvXH6l&l#dO>L9;lg#nD)8rdGYRTb_s6B-z1=vzevQdczU}@To zr{m(@4&PqD>WciEAy52=5osTaAJ)5LJ0ja#S-9_0vZ z*N^6gzd4f2Comx97=LP^d7H!WYH2O&ST`;OGCTk=c(Z$VM7i^f3{hrV4Cq|jB~)kP z0gwXO&eP+`>KUv_gH6nmqz;+edC3Nr3oa~ndzo6J?mZzR={}L)h;=J#Pnl{Cg=7D0 zAM>g>D3?zVfQF59Nwt4mKfmPQ-w_dSd88YfVHX~)L*oj*RxA%CUgsBAWKJs_RO=r{ zFqlx|A;8n2s($=x?CfE76livXo~njy#kDOX?UW587IQZvf82$8MP&$-Y8yR3V{Q@U z$SNU&A?eUM|C%zjVg{3?l@jMq$gH#vA>Gb^$#y&#j<3u1pZqxR};q1&4>2jnr$v&Wj{8T zqLpd(DrWX#d%E;Xia_~jd1fp1Z2(%4OD2#tz+UcC$v?CIqxs8uAC@ucRAlS_-T$cn zvvIEe&crk;MwAU6N15op>5YmN0q?om>&4vEyk^j@HFu}x4E)Ucnr>_&JMh4gUhspNPpLUOlZ%B3GH@2mcYnu^Ks8t0$rP;$i>$#>82M}eBzHhqAQNk~I zcpzjU+QZXu@7&iJ#69vQoJx))f%Gf*iF>D!$=uCXKAi79{N^bNG%CsO|8_rgg%QkZ zp~km6iWw@WA56;B0^LA^x@&ctM9B@V+84l*y7L?}g&IPn{H0O2i^S!mK}%%0)SBNsP#Afc$$FQ4=Ekm0#p8>yGVjAWcLa z@~qTU8#kc;PU`^=3RHF?XqmoLMnSL)>$MXZ1gH7$&{J9%J7;;O>zi$Y2J|5lc@N`9 zUbEjU5!p*WJ50lr2+XrH@(l6*y_t1_8!z0`?Bt0z0B?)N7vRsdOnI9oK2C9qL!{^B zif}^|k-Z-hLo75KK4_B{8(m(2w;CgWR-mbBE~C`5Jw=~l(|vopyq6AjU(Nk(K@6$h z9vv;5xIBMMd?TiKLQ0&cRvookTExacIpRDt??C#^p}5xClLI{fGZtJT{V739fPl;>V7nZLgOgJ z2@ZJtG@j6V6lNI>dB;D9OqnPe|F{%i7OxA;%Zr^3(B+qQ+#j9f&pqqg<#Bzx`~at7 zrtm}6^Qa1>zbB}G&^KRSCMLnVWRbc5$pEoIxT*M~3Wm0ibRh<0x`cU!tmGriz@@g~ zo6JS&65S{PE^|p|RGuWjhk^`A|JL&{E}!fd8cJ={Tqaw6`dXtbc-}V+?zDDdDz^q6 zZwl^n8trgW*>W2XX{wP8;BhSw;G=l4S^b1mV{0Ti$dxQPvp@1~3EDnVvm?g4THf_< zjDM+abF<^7@}|2)vQ1{=A}h+QpL#ex4T)0uz}>>EwClb6#HW>!(lMcw!ROsWnMALM z(4UtsM;m^odvGqLZ0W%JGKKDBiE93olkL-Nw)HoYt);3=XqiiM^0e4I7L6l(ff`T! zrT5(lsF69@9w(awPdI)#wGO_RssdC8&@QuYPS%D@R*PUUpfWZ8z#beF;hb)wXd?MI zYo$B>0;uD%P;aK?W>HS=%3Yye-QaLFe|33)SDuBZbHEnQEB_p1yE+F{Q8r`H0d+UH zY_xn&5wR{O_tywl*K(SZreI$(NN-Xt^q6_$aR5m0&4l;qu{W&5USpn1r{lG+^qc=C zHdGWm<1#qqi(ubzgC%N?Vg7kyZ z>4h%+KMy;6I;PV(l+Ac3y?9?qNvA;AGmdv@0-4!72lm-z!x@#N21bv6J*LlhHSsOj zg>V7*8RAUb$lz%>gkX~2k4~I1IB#)Vf{xmWCt5h{7>;eTS|W^H!%`p;A4JQi?A7ZT)itaCU!s+WI@`)GCS zt9*MG3gmiEb5o+|xW}+5*|wO2e$amS$(&|mMxL|}3fkg!y(Z13jcQf$tjz#Ul$=2U z%8lp8^x!l=ayjWPT(6t6zkHN0rv_N*dgtR4k-s`YU(>Oo@E54DLA9N%BV4uoujL+bcbW#%(OXuqJU zmN33|v)i55rVjUtu(`XAj<6pRO%-SEW)?aM|d>e}azU}px% zW;t23^)SSI@Q@X_2x0G%-p=|IYWR^}bDuA`!^-l;wHh%T_P*dJ!LB^FxAc0-TQ1vX zdemBFBh;|M=BvDi?{)q(Oa<73@GsV>mMGPPWQhTYKPn zq(-Pe85dRTb!+qjCtZowV%hlg(HS;AfHWqg# z#W!e#?YN|wBLH{*WMSXm%Pp3q1KRlp9niehCJ&=#!B{A(PzMQb(kwE^hf9a==pM_G z#jNT;c|s0=cbEa(HC90ReT{`ug~ca;GInMLN-sNY5K!-5+CE}mCkIMA7s`IWg0d|O zC3L+7Se885L3yWVwlTwjB87I}pfTrU8WTt41dTaL%7WthZMV$k&B_7LCIIj;y11y3 z1rW{x*l|k$;9&<~Ob&qgw>u2(`4xZ&vt3Z<9?O!| zRBvW|D@nnPrA^FNf?@1dc_d4wBN;F-fhjsM^g zmhSKXEd9cR!cTiJM4Dq^V4i0pNUyUFCqYvEp`RttI^r8re3kA3ER(~pGYMbz{n#K<$RR*O5m83)Qz(v%!&JE73r@K;7iNJES}Qa{qm zCSHW+k)g)HOhw5jEcbUbbzir&5vJrv4DxmNgZ!4i2>EPep3==oX5MJXBjKW9{-Q%DZ`!zxh3-8yW&qg z{f#HJp%=@$TR%AW<~!FVOPu zu287q8fCbIKW^SIkG#8smYv!yslznp4&Eg4lY5ebFx~5A?6O z(3LDptu{x|JgX#B&uc^j(qz|Hp*K5=4`P**%2;=r5U zEQug_1GR>3I%YpBwO@uKT0EV-lZq86CpWO<%P1#H_jJmMCdTQ^M2<5LI@)sPx&!dW zzXpyA=#sJTQNtX*vB77pBO+`&Kio+kvgNbXY5n7T2GX5Ps+Jg`?9&GOP&8lEvRiJ-+DTviPNYQ9WMjb^h=&?TI`ErDCi1<2=4Q|Cwe!d(IS1NzlzH z|D;)n3g3IT6oO+3YKI;bKdE21!h4;RP=iAM#=`jG$rfi(>oC0Bp;!|cigUV+m^bV(PD6$ET(9&-l*U&20B9Ppj3_Q5r7?S_8~+Y-rhSjtJ^ZyZl|xs#li4zuOT z!0bryP(+60k$lbAU*+!{Y9zLIu+#ENm6vBesP^(wf3y6QIZo@2OPXI^a4pqDz*N)f zpVW_~Om#;vjt?)FV{dO#d+E?A@5z05v2ff4R;1e7-n0FQP39_xW1&5sf}+_+9iHAF zu%@bHSC_>4%;udigQ7swBXi+;;xH zfwy=SQfg=?Yb7e7P;C&$pQuJ0x5VO89e>w6b(heTzecFxI!2K5*?1N94*S=@#H=+w zv@fIN-0#j)kD2&moq}8`f9O{2Ylr>G*!#HE{%(>6uFApJzm&a?F@+{(Xw<|`e=$!^ z;2}PukQ2WWY~hNt3$OdAx}teT9V_$d*ajTWE+M!|AC3Z?m0z3xNvhDvk%jrkPV6){ z2#A8o`EcMk$N$>+XEJIIWK7jod=h=v=4Z?esqM=(T8*7R39(j{wGQO?)6kTGt89%U z8rRKOI$J1a>v;Qg;rcN*b_!Kh^5*NRv#Tj)|KmDf^kLwqql{@*>M-p2wM~mK-$4fzC=@U+N-pj{;={PUi3l_ zYd3hBpJbmM?8B!2W%mC9|5lS4hLO&{Qc)ZHw$<^1p1!U!sOedNLzsTy+Rc$Y!+vM8 z{DGaV{waloS&Waxk8gB08&yI3;)Mq7SA(?{N5XD8S>#f0b*XX?mxrOn-+J3-@z1oM z1Lv2kf|CeC;96?^yE6Vla(APu$pcXl*QNTV>1T#gNJhc=+=LgeE;RdMI|#?y%Wq9S zBC8^Y(K^uW%(ioMx#_f9_6-l}Y9=DM;ftp1(dB^~INZ*j>g>$+}#?jS|poO-DoOso^0$6ec zpapM6fX6Ww-ePY5QoO!)W-TjJmK5MIk|1l}IEvBDY_u)3=YPZTZfsM?D@^B)*w$FZ z&CAd%xxhxyVRNP~epzvRBvJMw)F+ez{IT5UnH58JX*V4eA6{S-Um??qv)zkrg*nl^ zl+mPa<|kwh4`r??R|7iDFB!UC0sK1uGP;qo4A{RkzsX_lbfr6HJwRz`Qa|iK7W?hu zj5Sf{pn!-rUV-h$WU;MDe4~2gZe#XPJLo!*MPaMeZ?60odduWn%Pl~;{d_&^Hsy5< zcO{;sM4Ern@Sjw<0RB$VKxM!&x7<}Z<<4^biRYl1Y^!WxM;{RtZ;#|fPQ^zRm`Qg# zQR`124gr`;cUTn}%lg9dR$csCGsspu+WPT)U>B96;ldGx=4x=@q1Yb|BSk@NUk-|6 zV_OwPN!je82z}LLS)eXHnKIKM<%blqc8#AI!+pI{!i%`i5j2krd2%>=;PQF`0-2 zDh&-Z)!b|QWxn4QSw{G{g|4)u%7`S*LfL=rJfwGi$3R`~jqbdqE6Yk8S|E?dDc9&k7M79ONI_{D>2a4R zx`-t6i>ztrD7)(ytUJzaW^Kf$PCC<;DMx%nPvGsR+X9ePoEN#7iId!awn-WJANa*` z*OK%yrV{v8@gASw1B7+K)4^uz$LfWRi0aL^%8ndXN9gLni)L+boTH<<<54Ye4FPsJ$|?7am1qTjM$hrstg3bWp{=#I#fQjYYt2lGZkL*sk?liYjc%Ny|3%CGe%GZQ&a0HryrSJg#fn6h8(pIp15@!7)U% zowGSX(7gZb;C?lL<;GV_$Ja9dqNQZ&%dU?Il_*-9kkdjFK;@rz5bTD0%-TP$-66U02{SXyRi_@^&uTODcHwtc2fl^=-d39hqkeRljq&(b|}Dhwwg zJ;(owo_KDt&?e~5`&MugCLezm+Z?g7I=fVLen?uj&WorsAYoe@h|ZDF90+E!Gv_&l z!0a8_7TdbBY#f%?n5+AA)txAM>K3@?FYjA{XeL=K*4MFe9B=V>k6x(L2{tp@AvlJ3 zEkbZQjxIX* zfS>`>5E;sNfihm6bC_c%_}2L4W~3%)^bfrggbk^+{bocT{C9z+>LmKojjvB!jXAcKRu(dy&(M*j;6|E-ChxzrXIJ|M4tf)|s}mY}ve%tw zZ{n$o-(tNBgL`H%c9Yf@G21j*Vv^aB?*Hv+@;A4UxsvtW--ECp%cN#C+M-wS;!(1t84j zD&EOvpxH$q+(fxfl!L^nIBj|enp$bo!X72mTRji?*cUjv$VZJPWC|DY!G#1?42@Z) z`CpYxWb*2?%*iwrSs>C@Sq=TCSmNr`Q3dtGNDJ5lmTO4j)WOE`I+ zoI%MPZO6(xsw)GzF53!$gRQa9j3<`^e!K%7h-BS=n$f3dV7(gHH^^)klM>t)kt<8T z-2CS&|Muk$cqadmLOk;?w)N=i4x;s2%dRV6!slK(D3$m7*YbW0uQY@K$mlULj8ySI zFP1zjymEbf86OogAhxwf=$Hj$Yf!<=dBBO4@3-g7=&07X_ZAN_&CTRUW7Vql9U}r>{s!jsVj;>FAl+z>VpMk9sf$D`&FOaMClwxFG$WNVLrpRz8 z|9d1Ayb0ZCVSZ?C+hJvqpN4gaY|=v7t3NuA^PGvwhi;Ti>VGdk7)v7K=(0O_Hq(}g zC#PeBkAGClJfN}4LXs{wJJ?lai(?U3bE~a2K2hr5?eLmA9PVa=3x@wEUx`38pOKpS z1XrdZ0IiFEnR-yQccOOml%AwTuLp^Jc?ie1C$Dtl!tn!boA`4fKACyAJNn`~=vfl0 ztfZp+5#6~HYju6~%%*z2$_MK%;t@$V?eKF|d7COQ%kksC2LDzt?y@V!o-nRQxH^n? z@(RWwi*XLQiC1IerP&!^ESylf8La+yjM*^=%Uxp3?zmr7$ekqc5?pAut=E=>-3^|s znJE$OZcgc=hzuWT62m|F28~#IR`N1ry}MzGV6gTUkWbLew8T2k4y!fh41Oj3!kP_= z7>Hvt!BfpfT+()*-_qxA0xlZjmmWgfW7~U#8shLvZ2Jsnzm9G1??Tzcw)YJ+{EbhE z;orx$JofgEJeaw7A|oAr z?^R{m(l26STlz#khIJYnVYv2hi{a**15nL^^@~~A#d?z&iQ5+MTFT+UqeV$|==Q~R zs84p{%L$m`*6HRx%Gv$87B3tWqGp|LuBSZl`1E}?g2j%t`(#Y=YnU|$mGBPqf;EUK&1)7++Ty#FyktxeR8q-5n$uD+vPeO3Ilc!!Wv z*qhp8G<7#~Zk-hTe)pq`N|lo?l23Kf7EWvv@z89fdUcP1U0b|w+qmvY7HdJ_7p>sk zqWu8~nr8AO-xA(_(LDDhvXI6^{v$Ek6-cS)C2y~X=!I`M_Aisxm?)}H+K;chv`(bu zj$vy*H%Fk;$0{cSw+KBgdP0^S=01#I=6yS8!U2X7jYm$aaz`M8alnzeg1XQ%3&Wvj zR)v>uiGCNWEEBkBVO@M->P5J*&MmbjEOg~k-+`JZ)J_Xf`=ci2-Q)?YiK49=3+cvu zu@@1z&9UH8;}2e#Z-+p2Z0BL2+ZRr~F8mtlt)E}RM=6M{wJV90@pXQ5QdoOw`d2S? ze?Z!v;Sc^35X>ta!7x8VR{-?_OL{#rv0+v8Y~Bxv7K{l!v%1AQo}3yvR9nYmy3USu zp+|nc@&&68g69bqPb)gv650p$b~c#t%)Ggm*VGFcCiLiV-}^Mr>IUwfDQnwTy^&k! zR7vH_B*>7)1L}wbI>gr7cqz?)-Q29cQ<|`YF4O$(*mvb znm_aCQsxrrgV_7iv9(MqoKMqI2bx};>6VSWayLe62TT0g#NGv5PZHbN7p&L%gBOsV z82MiO``GFok+%~ge`fNSdXY&nHJG^?Lh#)|v&|~K|II?WDS$+*g|^{73u8O_;yUrM z-+!7Qjd(A<-a^7>B*;hiv751Sb?wSuVmmuf>*~Y^TT8q6x2ZehKgCfHcf_^~i|iF! z-&Vry#<%I&VBVOhdJnaDEKc>!*tg7RrFXUXY}x5r20rb=eHO=Bh0phXr6D~r>b>|j z*RoNnGj!wig3bJ=@^1aVFx7Lm+0Lm4vzYPQ;?2pzQ~Roe2C}TWlP}dYk;~i!^Ys>Q zdOB}>qith&<<3}Z2kPHQKHJFBn)r9A*^Y%Xp~Mze$9GtMkL_q1IWo4RAaYD>$FRt; zwG}^BhaPMm5t_S>Gw%UxN0liZYtn>@K3fz2#)jgu`Tt_`r{18|)mP0hZ^o<>IOKDCFZ-pvT`le2F^scK|&24o70uPc$c307xE#AdJnc5yd#r*EgqnO!g`+aL5nGIyDgD= zGm!Hw-fcnAaF3tVu@{@AD%4;ronb3YxAoxEa_-~G>Df~=wT{cy`VVuH01VI8n$ynN zE#86Y`UdW>U7IiZa%V!Gkw>v#x`(YZ-L;3LPIvQ1ZvTG1E#2BrdCK%}v4Fh61pfc* z--m<3>HfV)^}ol;#>}RuUwSj&v&{To`}gcj{by$Df6UAlkkQ%tbK0HRZO}}YYa@5- zFEdzNQP~-2?HRn0iqxrT{duT>cI9)6XSVX0fxzN1bjJc4Tn6p@j^^4P@5U-u=wq}@ zyYO$syhnM2ReC!Z zG=g+pMM>yW=^`dfVc%;*Im`m~F4fqUBUxZC(nnknk?%Y)f1w|25wfgrn2#gm3N_xs zClTQY!|__cyi5*(xk-gPyGFKn50J{l5NIH*{VgW!YsS0_`IK*(8BKo43>97xIo@dV zmJn&N{-gCZ^`DHqi1n|qDY10>ygqujw*n^*r#dG4Y15eO|J>vz`=>a^K-zIiyDmt( zi!@!qOZ{p6&aQyN7#sHeTH2kpF3VJ?t5|I}eetteUKu$wwxwf)$oAGChsCW>t3ylQ zaC&9xf)+UYORVxS3bKg8C0whTTP&E4p@uHV8#ebs4fX@N)iF{#wPD<6pUei|w`e7t z1epwJS)rK+(dVtc2}V-XCm$iro*;$?0~H0X8~04I>bhH95;yj0(oJR`oP1eTbpZyT zI+0WQvR7BJC31*#x@`+&klJLv=T{dIp1`7O?Pi8H|B`z{Q6~?Od3G?UwMnwP6TI>G zCXeLf?40*(@Ms7ewefN5b&csIkohM71V7BqZ^Ec zU>}HJ2~*rXLzwqaL3g>FtGw?b11!K74Z2P?YVGC#FMpZBHUt&9_N5_om(44%*z569E{Uja@H4ub` zuZLY%Dwu}^F!87@>BXti3{2of`U*&4u*`T)O}b&enp8BL+Rge`9iz7S1{%zExojL! zXZoWT>T4^SqvuLVj!wW-R6Bp&(a9Z5)@^e2p~wxGwp8CNnBJF8!FTZ&IJ3;Fr@pw9NB*mL+GA%WlD>n%oaje~N}gLBDT+ z{_qWm^|LsJ#D`J(uvhTm5I&IhT7N5J9)B!d<5&pS; zYyOmiVP&jWIYW^=9zX;+>aH=e%zA@rdl>pdHdhDA?i+$vzI|F&LKn z1dr(JiWg+sF-KXcRs;|y&)F$x6$rm5DP*aTx!saiT z$*T>L7vX_$a(<@;+~QVACLXv84Fb1LEF59?UQ>3Z^&Bv9k#;2*%%Tq$j-9{8f0n zy)}_>-mpYYAl?d6lV8HmFlARU<%KV)()ng)(xx4(v~fY&r7o>MX%P1d8mNCfn&8p& z4RQ`AC;JcS`NXagW^T|d2tJEfYf>qFMg($}gK1cjv10F+I?%~IkztuJFxRYbBE{G zB__5RR>{hne3hZb``|hjb4wwp4XLda|Ba;8#lJ|-0ffe9XzpR0|HN4Gty%M;tEYW* zy{%_mXztWjT(kR86C>hmyuW%SfW^lNgxq4T<0LLK*J;}<7oMozlo32!v4k^_pd@Ql z<4-(L@MOMfbp3+tvZL#Zy)vU~4rx_44Fc8u$pzm7^q23*?^l)zXp8qfZ~EsC{)8t8 z<0%~jk9Hx}Y}Md=jSsXb&#!#XX3_jlJPy8L8-80!e*b4|&KGzAd0W1UJkOG9jYZ~j zxXv%ShwrhiSRC(ECRtMwr+!}(??03Dc;!@qihF11M@mLrymFdLI!$m$s=@|&rb{|5 zND32q^>C8ngZHx^`uDPRdPne+wQ_Ey&u&wlE#B5|U4vg0qST$Q!u?xGO+Koj;TL_u zvm5juiNl2^`938zUb#}=;@&*{1USCyl3v)7#qmX#^kk4E9A}XfA3V)|=s!~*;@)li zD4fcZ&dNOcvqEUx=bH|&R=GATOKOO7#VZbG96;3-@YVCb^q}j^?+f!r#J{bsf4e?5 zWYCDvaX%3cu-}=XhJIoRcwzMgw1gcC?Sg(t-`On+^U}FND)+c@yD`T;KHwYhs(&h^ z&O#zha4?*t0NN8M7Iw}v=Wsi>;BNUs6e{VlUW3|u@+%c<6I>@sbUdlQjR$~(D|HBw zWV80mobj-HZe~2hzC8%8A2zjJZRn97ufQ>9aDxaCn)`>=#iLs7;Gp@hGP0F;RCRsp zfKbB{4FSww*t>WEVGgIK&I|Nn?NK*MMXODW+({tPqe3@+#?UlpP$_n@8eK8nls+%m zKH8;z+u4lkVXRl13KtOkAHD!wwH?>0GEF73aBpX9$lME1kPsMm&dpIY|+5%%VRQ55O_eV#Z`Adu8M+J5|nUw0AAq9q1erc;)Q?; zzt_9EXELy#@8>svOm|h+@zhgKJ@wR6Pd%0TZT}a`Y4AKeRTr^^jmLojOKG{U<+sv- zro<$n41aDEDLj(KTvH9=<1;Qosa$zECBGtkFyzOmmXoLj>NwzI!0EW3)m<=VejtI_ zfz!7CS?g%jy_i;=1JMh`O?!3{lRZap%sJej&3bv>NCGeF&%YWZ1sizi;zZopmD;{r z;D16*gPUc3Xmj)sTWl2PzBhK01o!+m&oW8?+Dt#b&g|SvtqXc`CVEAx5a{yH-B3;f);|;|lNcoylim}?6&1@vMS$`)& zVJ6NFub@pU@>dbBd2t^1pA@~QKmS`W%@CUw3}oq?<(^{I=flS*E@Rjgzakw#FcN+F z9@FajZwPQ+zg7Gl+z|TK_gZ)hx)Q9=o8FZi#Wp;MDbIW4-hg=x`&@^}So$AL5klYA z=jgUd0)nA9sK-<*Yh(X`Fx6cRbQrVm#5l*ngkrX+t6Al1MmrMroxVYEyX8~95~ps) z>lB>2*`G-4@R7-3=|zd7LL}Yqfh2JZSqCJ`h98jZ z35L&6X1H3Be-CN+G$ncP@F~dy`7~OegerdupMrhwj>NI=y{kCI13_5_B}WWDC|N~@ zp2~ps8j}|?APxTQ5+uK~{zs(U;#~uth)XE$xG?TK;+jr>zj4iPNvnG3g2V;Yh*1bc z=@>M?=os~xa8UUoI1n|;l*rf$b>u}>PkZxSA2v}b+VB#4=I6XA$;`F9P+dmVt@w8U z!p5Muiz$xOR^keb40!37+$9@t8uxSK)?j_ad7L*`AIVQv((`TrR-FZhy^j`S?vNY< zZ%@-Q?1>clHqm5CD^srh`p7<3k^lWqtWuk5wxl+9v2Q7d^O5qV38eh#UqKV2 zR3mT}kot~{UesPp$K)(oNtNDVtV{{v0HrQX6%83${HH11!T zNd9}m(*Ml|;vB`L!ng;B+ri%GjMHmx{CXTcM2UN$m&Bl>?F)(9Z+#iaNcGOTT6buz z^KwNksRkoba8|IEiDgh~O=RxAv{Pns{l+$>D@sZ5L+xWuS&|YkwPj5g7UJFcycQ~} zJ$H^V%Szv=4(Hr2-vcr0>St(x8@)3h@q0zIS<}K2uq8Q^Qe}xbi0Dzdf_MLfrMaNs zHehSR+5l#NsO9F^ezK77*k)!_B$iR{31LAyY7ag-Ihu8XT5e7Ph3f+yg!CpDozWEK z-%ft{A*JFG|E6?Pzp0Npvj6lh1+RJQrCIpPFIx$^8GbMRo=n+3p*&*0D!=nRVq7!B z=HPBs3zHkGE@wMUKQAcp%Og+z#OZB|H9Z`L6u{z*?@#Z(aE>HRB?x* zY#TK8PdY)OL~@>MbvJoS_|HCtKF0g(GBJu=*(4tONibt3nxMz9Z?iX2oKF%q zZf7}d>pHe!p?dw;8GDwd7bQP*yDPGe3yO$bP|~Bp?S;m-AmSS6V)Oz@E-4+(DkKN+ zFXO^2ar&W^ z>2^_aRlcTBKd-Tft9xrtmH47sOzW>uiCl*i*O2W&dDWEH%*(5tDK`>#y41jXzd#`c z+c<>8`n6d{WO0j&(|AWLHXVGy69UvD@tYx1YK8|xN#nuC5~9GmaBu;6=UQQWR+Q7T-c?ZAQC&p%dU zR<-Rd&5vk?oh8P2#rdG!s#=rVNQ94h7{r;Gt|tMbzvpSTBh~~9;wr+aY-DmJvt7;S zg1z9pZ>`(AC5DCuo?um7-8+G&UJnqN_$zh)Q4x29 z{T=ut#~r!yCSONaJVu#aYZ#zV-%{)=sWJ=nrk};{nEiT^NK;>bH@Z8oqVICx@2E@x zoSM?Q7|4eky?AufS3$bnNcY*NJERL**qa$A0B2W;SuJWz4>iMYBOKQ6M*mDXrt!x9 z#Ux9vL;$&scnz1J;kowaY-iAh#Yo_exQD8pZ>qkX(#4J5!h6*_)5jxJTxCDhJg~vuWKC47x-}R}{V-({+sq@jPcJIE)_zgxUeaIH0{g^`RX39u9av zJ0BT#`}v?-{Y<0Gh11odoVjM^mcXo&X=V3+$lSjRYy|Vu@~ODEn1@FcAYAD+J`SZB zH!U|)8eW0%24ha!x2vb}=WnVJ33@D+NRZnK)qwA>!H+GM@16Qoex!51HUSO)Q9RAn z$?JoWej;If_;7rTb8klh+vy+EGquR%qw#XqZDH2Jew%x8++8%@ySI(*T|)1qti#BG z%D5FxZ}PKn$a8-@rG-PjLsBTH4$tLykC@TkNZxQiiK=>0l}bI0(W7^bo;ug+#w%~5 zV!Be!+KW)^##Q3<$GRnrHQ0LX9mq3v4O|JmiV0=uu-ekZZf;SmsyT5OoCyaD+moRa zb;f&~W=}>Xkg9yQ@0-mT^=Ki5Q}mw%H!U@OmzBhfj1%LLE-UJsRjA8R_Z zxT?JQAQ||UweXm75oVZ%yP&)5EcuRpaXY)?xr*;yXGLn&^f>gA@*0`ar(WCHp3~O& z%XB-wfb;ct{3;=iN|Q_K8s^6xE_YcLYb(J;UBHt#*S~#UejI@{zB3q$@u%DYGv{H{ z&afTML;fCJYu*YP)ZQ91;3v#_iLqbg*HUIc7d!0lq`uZEDVBzB$K`?m*Xrnl?qIb= zD{}lB+eFR38Zk;%gp^ zM+j*CHB}7n?AbFG0SOefn$&n;F{@-R`jE!#soF=;qS>)N*%h?2uKCa)yGJ;?c4lJ5 z8WRw?hoT!rHV>a}r>v*pz4>BxcGQ(LFnH@B)8(xE&8s{poN4^%gnWhmC3^WLV{ zQR_-!PZhd{jGDd)d3ORK$W9|SjoXkNAG6*+|bXiU6U#3J43k%CgUo>ozv zj5Nm5Huu;bv8rRyGWvxG6z{#i<$GhF_5KM= zumL@Jd!Uas7(!19)JJ>}AcmP7jC@7~Tn7Wg<#>eG3~*}tAR*ed2EUP8o?v3-A*=ny1$7yUKYOO7?HkLjSN-Y@JRJN>n( zg2Z*sHg#6!6be&s{|@GMpz=Fbk+QC(8f zC~j&t_$G^#J^Ki)PIO*bfcs3EB4|VaVqA?-kHuc>L!)GA-b22vVlQejh#8VvjH(B4 zpo$a^QS4`spC~Hmq~X&O{p}Z)1_4Y45CsyuI<2WS(^KmshPs6BpkFc@1hd9QXERv# z0GJwjPEG*=zGgi$UmHJ$8q+h?T-TcRX4nJiX+$WUdOK^ZfW&HPD*Z^pXUI-Yng?jdW5k&M>K8! z2&_Mu0^lLDJqd`+CXq>G2Ghz&&Fp^#HbOi$Mc197`Cs5V)~CA|#Q6`Az^qTa?0p8{ z*ZB}L`vHPt!lNCF7F3VQk0yiNjX;2YEqblWdyZ@c9IPq&!@dCr`$a6AdtC|o|1ym> z{joD$AO)Cst?xn|P{Vi5yW9p`=lqn~T5P9V>88}y4vDEOM(y;YgyL0|f8{WIZ0^AX z5`75XVS<$e&GiNJ<-(e#8a#HD9R!d<&DnoZ^Q?20VbleWbXKr2p;?wQr={M%b=uCg zs`;q6RBd0Bgi`vLRa~%sbFF>C&+hoXskOz)PpP+09t=B^q?fZ!ZvF8RBe*Er1oG3o z7`C{2DaALH-Fdo!D5$);w7x+~oLpu8a}c)1tMH*USIl|8#(C4|4|>O|Vk|`2@gsQ% z8RuWs0nU2lKg6FN-gD4YL5h6+1?LHBSrfhTYHk7jPJRJhLpL*#%KJX{3-G!83i=%a z61KnMS-67!nXqg9w$jMerw#r%Tb8d+=OL@g*YIiDa8Uc@JJOnR1#Za-tq)eGwsAgk z*p96M(+Aej4Qg=;}If0kwFY~?2DWmZ8j`X$R zeR!-N&PSWB^#c`m;{@_|gDnX{i7Dtz0gKq(x%(7R58r~|7X{Q?neS@{? z1HR=W*U*$>V0f@hLzTf_i@+0wrqOH|gQ?J@93ZNS`3QvGC84Vyo$Z)(jx zDUKm!bW(4uTZ2BYHNVeM>vl2gptL}cN#pY5*ZzMMke4 z&cD2~V^P!Tta&*%yV?8sWy2Ty( z8X~P-d&hE2p?2oqgaGSWg8Ff&XWH4!3%+~b19>fW=0BRzPo#Fu4^8(q($;Ki4*xr?2RR=&VkI{LhiXyI2V&*$ z!XC)sc3Q(;`jesZlTocvY>QXr)TL|0QzYB!%lk%LSm|xxiFXM}c@R{Q_ZwmCp^5=b z-uQ2mH44+p93=n2AImtlsj}lZJmmDv!57R2%kjcs-=^J3n9Q<8niD?9;^tF|B<2X_ zhE0k0Oy(nO$fSoaqKs<|IgHv9?QUO-a|Dc3S5<)qZnf1s^XWcii1gk~Ug0xpu>( zD8Lume6u)u?`467u5elMYq#vxWsv5$QjAYbYvKshsYS(c=Y+nY3=VqvDq9jbOz{bD zn6=MC#orJSl!>O2_6&$gv~mqI&VEH1xU=oI>S7F5D=tY6$Eh7Q6dxt->A zTZV`{FRi;xlOE<|xXSty1gm8IVmGdBgg97-lg^t@l6J2zr;&)Ec_i?Qh|N%>M~$y! z@q;f%nCTD0EN@q(8_ee#qQlSf|geghSIo0P~cn?yY^QyANPeaE=H z536OCi91`pH?l&Zbvg+O``3(EsR0b%S|C)8$1_A~jZQ0to=b`W*}z;N>O zjr^mI{tY>(a0ekuqHrmKFS;QesSB~;m)20&|Ayq6yADR58jS1zl0Ww_Lvgj&izk|j zXkQ4t$=mHJM zBPlJ!f8g7TwPb+)3V|>AI;W3dwLE0zzyB}zm%%gh@IOjG@V{)H?eM>87;Chg+Bto< zpc&wG0K9J8byri#3j14S(d)>gB`re2XD6{aKdRl&MU%*tp&`E`%m{N(HD@vcAQs{tJAS?nrm*M zD}pt$|1(T4T%Wks{jZs|dB@!NzL_wyUy+a9e7ipk?Mqg(#{c?hDKzk<6m#A(l*Nr< z1$%~AULVB76n4`V?>Bgvuuw*%8RuIAGTWapHp4QKT>phx#b}#U2E-R*%Huxok_sh9%sMp&I6JL|#)Ye)Wx4>N)VrLM4FzlW&u0X^^&wB4R(f2- z#ir{H@UQk}FiU4|4)|}=?Tyry{h!?WV~6ql+LJqu=L_?OB%+B3BpUX{YVSS6_I&Sa z^OXC;pf`S1*xkSE74(UmI_{b66VyA_t*DSZ(Xc9}IH&F`K%Uxj3_oQrdI>p)oGYGeA;>+|9vh42= z+OypQxB}yw#BuRq=a(kG$H_3(zRANjmQg(}8QYge?s3G@VdP;b>o zWMVchb~OQ z5l|HPC(DiJX;17po*^K^cQA<+1-%Au%~Q}FhT(qa{gbDm9j?k1OPNO)Y4+WD>MZta zn#Dl6(xNR6;GxWfqU@-Sn#fC%j=UdX2NdaBe)ZSGrnp@(L+_ z$v81}p*!#%W)9BI^zOUKpgt|AcASs5KmK3iH{_+O@t<6P`#uDutviHgq2hWZVaC-N zKp;j{fxjRrrwjFkm(ua-%Lbm}IXU}}^`LS;^6AHGkMOn4>Jz?stDS<8F2|vH;iBzE z4ReDp*INH#Fu(bKV+U~7j^?FiUH@3CS#TzLyVhr&jmNAm{$uNfF6Q-})4SHSBxjK9 zN+(RBXk&?2vQXougbj_-9W%7!vp@5{Tp2n`f^obv9vV^x4>4@}y)$^1?Dr9#YYYp{ zZIDzK<#oNzJ9GPi8V8>`^XnSEYgt?Bty*a$w$(3iKpMs_ya{{sK=1FJiKWi?ZYk?= zPNGM&N@=Usc@Joa3wE8wAS>wqI`j{i=Tt3Da$tYx4vP+_ zJY$?APu<{ap3VVy3+PNYI*wHHa4aYG*5CgRak={%Tx$^dU_K3OX7n)YMWeFWo!Dt7 zg4uGi*5(yf!DhxMvUW>;08cfQNXg@!BdT$&Z|3A`VzDRB?lr_$l`m;#YvY*!gCYFE z-j{3r51*)i9Cy_ixGCfb3fZ~N3ifMDlY6O7$wb};^$h#IN=jA6{*LqNQa7Ee%3f@* zEWoF73I*P?zt7LLXw@H}{Pevp3WT}42H)Ztku@Z3jOEBVzZ9=&dqm77bke)6X9 zF+ZJR!Yh`9-DSv=ymO}QIHB&eo_h5WHK&ti7PB7QQ2;2S>^%E^m#JCMWzDl)0QiNl z09uZc@{0GEfEw013pCx-cvntULsrL|j@1t2uwh!|vO-@uJ--H9@4Za+5dKcdg9G3L zqtUS6o1#6*=$$%6)tkflPy8M6=2h<|O6Pn7^lrL-E}jI@$8tAf5G+&hn|x4;T=l*G zF;P3o_d(XfI!Zs0>>h;f3PO_yFAu_xl5MUjvr8_W30)S1CX&vCrzo8&^VV2lc_tJO z()A!+9+Ywa4c!Q$f^jNx4yqnNTs9TT9R-c+srWk!+7gUY#(!Bc?h_!(Aq<5FkePJ! zAUPx`?S?Ipupw9J%>Z{1Z*A5h+zO~xp$TRYjE`LVE4D@;!k~?PgLjj)8}B&1&&$v1 z4>!6P?Wk;G_o3haiI+p~eY!c*Jb4s$YJ38k1B1=k`QGt2hyWmqJLu2A==F>2!aTn- zq{Y-*astD1$&1XA+p`M_+MM&>%gKFD z1qP;c&e#3DdzPW$%}FkZExQ+pEj65_DCobYn;NMojDr80{AZ9KQ@*Bgvf-L1NbKW+ zY&-f(FpIV!_dT=|&qM5{bEh0(?7p;LnPWh9=5B?|OkZH~QVW`L_=x@dNnnAcO&1s; zr?zAYd-shYt5IMg0i6+U(q4@}7$Z@|QV z5EpdmxaRE;gnLX6h_yGT{A@cti*&r94855*nd-S#Z>nPc9$H)VyVB&m>>$eJ-Zeg} zg!3pNrUUOAj5y-`+oWCLjy5LjiBR6t%6hB!Y@_JV$d(@ zV7H@vJex&PCxj8h8MIDmNoL*AeX$KzOlsA()WTwCbYK5)jgK+mWIBOrLC(+r$~QQB zM*x@BpLrR{wJI4%_3pzDQ5_+zFHd*++D%88Y&XaR9-3_ zV4Jn@>73}S)3Zf^L~?DEX-bw)k6*pI7E)Lc9w_F*ujIp_D}D7K;wT% z>wokxvH}!>6aR-zgGL+;Zdj8WuOU2#LI?69GF;6{ZNwSq8?n@vkvzSY-!_K{;NwJJ z=;K?|xr0A8vr}ic{11FcEh)yM@WHgd2G>^>2C|6`sU;D&qqdD6re$&WD8?`AYu3l~ z0cQlc*-!qzteXU1Q`sIiRxP5_rO94eIcEOFE@eACW4j@^8N>SuPuge12x_i?_WD6! zZsljsYskDVE7OPA7@~+7kK=v8weJ4StjBjvt&QN(Q#)xXVyNDp@n;eSFm|IHv zBp@AXAe6;kLigybGTLiaQO&fzsqCumvcFksr@H}R4nL;2T`9y)@2#TZ71eOEF~4Gn zu5EM7ZsEF#zVPiyol{$|44F&jHftXenDHo^+aa~?V~V92&PiiVbzc+%IeZy|>6M8?aI_Bxr|!inW^$4;AV8)L9t#Y>#Syu(F^yP&5V%4}$->oB|U%CXvyu1019xPpud(TYzDZ{#+S7 zc!Pe4P;L2rX!$vn;-(%Zk`n|PC&nIpFew4J>L0mrXQ$Weqic0E8v~+jytgO{^S-VD zb!XZ{#`P5gy_WSV-r5}o=vLMObz70D6{0?5Msr8$E>pR%MxXdT1?KIn>`V{fHDoJB zR&}j09!rzgw8Bv55!fS%I$!>onWP0#Ga5I&+v`$ z!#$Qy3@9%0Pc^}6h3`|?3&VkVv+NOcPYymMH;1du;|ZGinQ@Z&+-x&cP^o}gh+@RQ zk?!NW*Y!&ECsrO;Gep?`-%bJA_RnZrQS_NUUoZ6kO!@QlPY&|c;U+>fO=r+v9c7P* z4;{$Z8nhji0;7)+dF~?y>KGGiZRuL$0aI=Hm9shi^QNthDqU=rQ&iXjt^HN-!FF&WG#;M0 zC~*zcQqN#9V)q2Jm+$BBwF01D3yz`pHA z0j1G#3`p@7m_!VUmvMFz~{y|XO z%D;kOj_9C@n|>nhW6Gx$eIC@10S!}4-tEcpl$$<{Y%v*}%VdQPsB?QSKsGeC8G%jW zgIMMWf^MLN?s@z%$y0_=jyQ^v)CJ6wc6uH4bIy(^+2pIBw_)nfBB!NRS&ZG}>^7^I zulfZg$4$wJ{b7~`D+&ANdw|KTChQvQf~~0l?(}DFCbP-dW}VKf+UxCutm2d(PmsFK zfN{+Jmt>O4GY^A8s-eTUsQMkrSEUrGanyXB9Oyv=%m ze|25l8R|9sC~gd~knqGu5HHGa0;|GgmVavAJ5zupfz zbWVjtUaJ%3?9fxXKp{x+9@W8bxU{(J#-|{Ys`Yk8UNZgeG$%;%`*nh->;ip8Dj`MM zQ;LQB<>!0vC02d@Q8jGA6vunC@JoAh!}E4-Sr4F0SyN4kLvB!c%cq@%vNV5=Tsp^(rm^X1 zefKx8yAsSAlkautBukR381}`9kB|sHh=VusGyf+SOL2(SwC!E!q3r1=(UE>M{S~7R za;;X10cgv+4&5;;h-(S!=k>UK8^;~L$NOR=SvqXUH@qZ6Q~LSnGe6J=($TWLX<3`~ z1`+y6DezzZ9JD@@jzGrt&imfe7i%9lZ&iQpI|8gXfB`v{!Y5D^a2vZ_sT}=J>CHf2 zOW}&yad}Z4o(Dy7>PFxCr^Z;K(k<(xVwNXu??JM2m!m#3Cwk`uRRGmRPO+tdJ#gr} zIpEiUKN3^k)O>j_d>59db6wndlq*j}jF1qP_Z^LqeewURyvlre7v;*^1}U=U&y}ai zs=d6w{cq(7m(ajZ_b~o@@X`&@PG`cnDi=Kk+T^Z161%~DmOMnKaCZ0!%%MBe_yfJe z(Db@xvxxxL5bYXVAcAXcy7%{!0FuXZA&xmW8Kmo&O^f~uzbPExi@F;OL}2|7uJy}o zA>3T+YTvp$1aBbdQ!7YdLNdfb3&Ur4nye7-tlkj&-KurVz*X(|B)3ZCoNl zSx=PB!AL)YM5c2Cm1J!`XjF<-`Jk4>VP{nkDY%UO>L~h=0$1TAajsF`cjT+L>=JZH z3Win`%PvJhyu*I?JGV-%4(xB7rOuMBR)m%((c|dU=)rvgYf);IR&JGR^V|3a(2Y`6OiKkKjseqw3tJxtPC$8Rg@s^(vC z8%o!e-X0{7NOlalVs1?l4iX5-?%R~1ZDNlZ(pyUxNR7}u`Bpo#mR6xc+5T{8(T&~J z9Oqy|VtGlsdINH>8|Zc3tr(%Ee8OYe_CzMSPQtbI$OC5hmpbM5@#d_kvVKnj zI~}2D@5ryjD;o7-rMC#W2c{Xv2$j)GiHxPzSyj=&q-PVgV`^2;u2wD4@y;9VbXQVg zrC!3vs+F8&Rb|nwk5a^<$+q`2C}^|3A_!R_7k$bbsXs8^?HTw`LgGtQoS)q-N1vBA z2)`wEW*vkO<3LJafLY6V*(({KtR%N5KJs-oIpANewdD>v-{ABjQ(W}fec15%;a1i6 z^!>DYQDWa=(QBwOv3sz6*$L#i(cAeJ=sthGNCl6WL_|>nqG`~J`fTJ!2p7}zc0?U_ z8(zWkf+bToigL?NCXp6S>HFvpiSxe)CM_WyfvHA?n{FGuNuNS{fuh9DR)ug&Pm&mD zbR^&7$?|-}@N+1^s3FoB%9Ju0KYYBk9n%9W7uCKdpa=)IY__UD8B-(_b1SIZ4l4Xh=eqf{=Y8uEyS?8ZPrz6y?j z`b`)=26lO|O1c+0q*Wq_oxYI*S5gKiBDB9!hZ@{e zzG?(76xJL9v5KiJlCr+#h$A`of0?J3MPh)-TzE^M!kB2x_H~Xo*nF9s(>ofIG5Ke? ziCpojRdyy0g|%5%s4!~thY*}FOBxC-tX%7AJ~-B2?!{Q*Tp~hxgE^TU?UG$J@37SL zUq$9@7uagu8~WBaT*|Te=reoM&~7x8H9KrgUTgMp5GGYxo&Zm##OwM`NDbi^jYr@O5EL z!DRYNS#EAM3gxf!K{L00O3+`f1&^k@0CkHLmodxRYIJYjB7|!tCr#O)-X?{r>gBBV1Q zlb@f)%Sib`3}@bU?y8Vkj%L@38SVMmb-0E;TFr6Xh679@fkEDJM4BEBPwAXN7>?Te zVKK8!xGmJL&Dt2gNk5BhR(?K;?oAyS89y^x*{o|`5H3xm#(zXR4D@aKF%{zH0OrSUnT1-MxkRd6 zQ~{R4f#ZPpNx+1*j)=h@2b+*wdVAF761ZohTEPKQt_XqeF#E6v|DCsF1$Z~S%1)yw zgZE3J^w)wEi=IOjg0hs^iEa|hfg_!!m$RD)@PQN@bM4%VFzusxhmx+Znx}xYp-b);vN*@MG1S-NMy_Ce zY1$`!c)(YqFoi&syr02L`CWIRv1)jaGidJ%9b+R)>f8?SH=tk5fT2~p04h5u^Y;Np z4wW7qu1B>i1V8fNkiC(a zq=#0YV;!L_k_rw#(%`NA5*4$1Ci}V3<7p9txa6k*QHe{yj@uzu147835dY%tktnb2 zwD!m~dt3u7vwJ6Y=g#c4lDy=jt$Z1;MgZ9eLg=Xh)XW)*($w{uJ=Or9TQ>F!u`496 z-r9_XrwkGuF7m!a3SbDFdt)#Qj5o8u`wS0FSP0k?cbEpytEDERz0XX7mxXk5ni_lC z9a3BLrV{Z{?yDuNH&#RkNce(=_5!k7jJ{mz=Y$O*+36M%1?2>y>j7VC;WuKGDeev0 zrJpv9GZob6z3@B9EM0ao(=wqv>}N1GM-3%KAXN=fVob@ism+?cV} zbAB+ASF--9kmxt_n&E|IGl+l^tM)dOXlJgbd~;}r_Pe%s72AluZf?^$$D7}k(5qsY z!8o$Lll1-W@H?%(ofTYt)gU{g8xH|xfGNKGqrCtWEEBn%)7f_V4~zo}NgKce>i>Wv zPuLjze7~rF|Jwt6_&P*Hxz3*q`&y2&HDF(6kf){52FfK29KV+L04~I-S1843p!+L@ z;cFG(pOQv7!9cguQB4sW@fhKE;Ene3br}_)jJxCq-37wfL?73ak7g60loz%E-lmBK z+W;>>re>T0gQgyU}p}N^on|i>y1%_Ytk;d;V1UyWI@~ z_>qHS+{ra7K!MSw*>e_R6dLCYnhvPiH+K??+=3`K+YI&B!{L20jSD399fs-8bP#(y zGZ_~!c%KlXwd38IS$f);m4pK}Zd`|h&l}j5^_PPArkfh+ArIIth*DN7 zD+I=^c8YKobSwqU?oHpD3d)+OkFnWBb)HR>`@6oIxQIEeO@?}`9O|7F*(i=Y5;0I+ zS2aITg`>fkgD22c(`&E;!F}P>NuML^Y~+ZZHmY_@tu0Al_prGbjRXEWfWeJmRqsUH z=t3RiW5?m2a1X-_GCu&YxZ~x|gZgy@+~|A~q0VY5AG0UochVf|&9jFE5*C`GpZ7ta zxc+qB8(4a_c=mK*tL%KTih^ZEVJP@Nlo$|hdDIZ@NTskYyDcQ#J5(b(kZksOjRu2{ zpsj_(w#^cWMR%nhw}&^Y(L_c}=0n5GX6DWui_8-UQFJ!9Q>2FCMuiC$nNFz^N5mutsB=#A+-06_oK>Eyedz(&Cab+i_;1b2+62)ZPLNb$N2}vNi0_PZgeuuXHFsRAcZ+aKKMXQ*+ z`vv}1ySmjn3n(MRBDVgGHEn-?ITFT;jKS^MwFPU4(7vwxE-KSp-7l0^jp0_J3+7P> zL-!crL<{!hSJEe*C1rmwALiB{ftQqOWR`zU4qd{;oOYiuc@tTfoDcB%^~cKuwElaK zXQ5^N7le&S&dGT1DB2f}x%J5AUK<|)h8;vv^SWZ%sTKPc@0;(nVqbt=!O5E9rjssT z)5!!>(W}9%8D^eqJzoIA67+epu`8Cz8Pcz}`lV z^atgg3TrivdnHt3<7yjz@m9k?^R)CF0a>)a$ul_E6G+~lh|4yW{3bS3>rA09DN;Kk zAK$EXOvz@5h{aJQdUoFqQlzBlMjOKEr**?i!8BQqi}{%i+p9%cSQ(mQI50 zf_U(v#42ZG%&vQ5f^%#M(&>xWXb^G@4~IJK%mzLO=UR4Lqy_SRzT6H5zSZ8xP+1=6 ze-RMS3wRa+{Q+VBVwyV3JAQ1i*2_$EL2+RIcbPj*&WCAKPH)RU5A z63{sHcyd@ekNVAo0qi$dKrXUxy9Cs;X4-NifHuV<<}9&s2^VMJVP_v=y3Qm!wPmwV z{1qsUBv(s9PkxL%kcaC53J*+6W9rdheXWa6f=K!2fgLb+MtRz1Pza-b? z1PRIu;)cs{XNb*{op-N8}h5~^|7ok?bBw_7s`1aM?L(Hc#DU&IbEnIsMx=rSMM`2 z!+ko@1MS?W-D}(xFdpD7U?9Jpu+t2^)BHT1`MLAunx8Mj01n>~Q!1)ajn6hSPhgv^ zN!s_~$Oa)h^SxaqC@?=B%9Gt!M74ltj3NwyOk|<3si*{7Rx9eTfngmrU1w?8ozmCC z2-G)Z$21+GnE{Eu#EZLEq8iwS@Q0B;6WO*%@`|{7s{unY-vwk_OQA67FFN7n(e3Bm zbu43~=@>C;nG@`PMf*OIj=DaNd;@Dd29X*VAtrs?OwfWI0Y7W(?Qci znc|jdT5*(ksq_2(CVQF->RtBH&=1}qj9CW&izLtFfmP)f&HyD%R+Okj->UL6gJ6Up zqTX*E0otx<*2K~j9ZjScr>iJw|F8y~p3bt?(0=QHhs?awCH$m1nS~L>SF!!v&6GIe zX-Y&Fa(xH6crpGc(3SSBt17ABP#=5D)Yb;U*V^%Sy_HO9R5fp^Y%wd4l6w!Tbw`)h zSFK7e3X!b+BF$m-E-G}K@Cv1efkF*y?P~{)hL=*1I>*?eUrKRf+-_cYB}HyL{rCBf z)?~IV7T7)qgvB^SYh)c{3h3<_eZV$T?!KJ;;LHcdKZ1SOE5!u-wLk$y(@S||H6}Ha?LAv1hO6{fQy^H1RU#V{;BraDT<5sCZw)KJ?<<^ zt^OR(T~2LZ>`5U>!D43?n=ufGkljFXu)fRr>l$^HkQ&I5aeBzG32pcfqho{Z(yLGs zb= z%iwG|epbtoLa)!K2D!K760D~bGMtBYg^G?S3C3U#b~d1tK>sL->7h&8N1=BZ)Z$Mz z>O|{+Afp{*%)a53#f?Epb>4oc>;{_5Dk!kvxp|8*-8+xC;6!0Eh&WaeW*_oGMKqO- z_ykpvG1)nV2sirIw9yheR&QbOM80}mjx#GEW5gq~uP*S=c6m_tJnd`sZ4<>W@{4oh zQ0MKuL!D|6p67wR2x#6qnCD!Eh$b&>0S_bWMq|LCLDeK8YO_WY)byeA$8sfE&HhC1 z2>Vs$B(Z!UOw;*}U9XqHMNR@=gJI|jx9sR8W=rHfbNa@T~aKLZ9VKA90tA&(q*(3Zr*4%*VL9H|IWWGa=#ixKZbu6bgI|pDe()mc z6McKfyc*Za&lwy}&LJ0^>_$t-iRIHi++$B1-W~U%h)D=9e8vFeOClZXEB;j=_l=m9 zr1$3!B^xeODa)^W+k6Vgo%iIcXmcLV&qsm2vY{-YA{tg^mQUW_T&Ghtzt%ose$_|( zFU2Rw-9ZiJQkh0!$m=x{)vMl$ycy400CAWpVJZG$U-dSP088Qu{kXtrw*ZXUZB|#_ zblHr#aVC3@+Kc_eG$I=n$zS%S0$l2Q;dn29sG)FxxYiz&=jdbscNiJ2g}UHeX>Qsr zCJj@_bKqBN@}tQ2ZYLm?@C467mN1vFwzPf^{kql*fQJ}!+XsXgQO_j|d*DJ122{Q7 zs0r_Vb6V@+3_}aX)z@Z~x~|?GT`Km9OW3%I*o7P6w9Nb|f^!dLO5))I$*FuWHPttK zGZsbc4B2aqt@_ly?I{q9%o_snAR&M_<1#iByhz+Vh`_!;RNr)JYiYI{<#6W-lG*aa zq)XKiul2-Gdi}d?#PlPuXXI zmpgx`3uATMCRx)jrCsZ3S6>2Su2H+{m*(2l%mp$niH9UKF<8Gf$n~Wg?FRQP&VCk@ zU+;3wptCI7C8YOy=50-+D=@j?uD`MP*Z!I@{Z|eI$A`sAlk>BWVX5~#!6Mrk#dsXN zi4(5v_@O1*Bc*%pAdR`8!Mk^u;dYQKvfhsRO7tlsww#YC1Sbgda)8{pG?~-oQlK=A zxaSugeNHR8Sz2VBjPUJ!53 z?h>}Y;kUZfg3@@^mT3cz$Kyz>=?ZhO>MM6#Z{xOqiGU_jE|r#>!#;0noRPs!k1{lF zExpRfwwrSb(2k<3Q2+TPW~4c}HP_du5=*@laMNo8CxzN{c4@7>6)5%kbJB)T%f-Pb zJM%a&c+0D3H5I~aw}gyjJKAxn1$&Q>f_k15gK=l1J$mT`=X7%;-wirz>@PGjX^6j2 zNt^5M9GqMK&<4g|T;Mc32G!J&bmd~XS- z1dVrRZyx|QCl^t8v!(tZNns3WsS&*|??To-kGC97yla@_nbU8j8tnt^8`5K(jUa6b zggZe^Do@QE`$o5j6zRk4MKAv_OFOz|M(K&(sK>B@*>#&@|L!gnN zF$b5JQ(9fXwLcyejE^697IN(lBx0t0b22mSfop#QheLkl-Ix_!!NMJTu>i(0Z{eFl z@sLk*pT`A?h1G~(bq(JbL$~yWnnv8RH!jx_%ggp|Z;!4UfG8dUy!(qcBK3%r*j zd9|$SNLrmLOLR&tw-Jt1F1!{oVrk0y zkSBJ-CS30fSxJz&IMWm6z?3n8U}_;&ifV5&eky<_H`?2*#>)cKc{d>XXdDKH#)mVn z1Y>b0L*pDhp?E)&g5>}smilzND5L4$tl4Qx9YxX*cB@)th7s^1F+j-}hJ!N{4GqxINInZWbi@Xy{oCz&l=VomucGdM9NNkZZ&^iqNxLQ54o5~ z)GL<*5qnq?3jYHl7IT;{P&;k8wF7t3jHHO#xxT0CmYTzS!UOe1 zs4rJ^1Emu6*%j?k*u!kQwhtkqWs@C~=q^0r>vu#meqJ9uyZ35L=TouB*48Rz*E#ZlVYta(K0*JjNM z-^}L9;beECPY^YDIlEe~Fs`;cf2n9DCH%69_#kSD77Ear*;;_1KTm=>w;RrQ7A4ll zs^+t26{&N&eQ3wm6W~8}9lWbyY4WX4(oEt(!4p=)%;g2owlbE)irhdkj2Y@ zrDnu)?E&0j-4Hse>SwHF*+Fv-6So;L<|59$|Hd}5R$3-jl{1}BROXJDp-^h&;Q-K}uFQ#k+Tw38^tyg`)YSo5v`AXy~n zq!r@Vdc?1;dt;gzbowv9!%EA#n?$1IxG|csGon^+5KUoC(AS$ZNF)W0%}NsXU0 zJM$8$m?_5-qbV}IOg$AHOOU;kU0B?`q!WqRqv4O(rx`u$Cu{NJw#Xb?)FlK@o4yZ@ zb$ZQw!@AH;-y-omYEh0i5H9Fg-(McK;ZsImmGu?Dz{pygkcmgwGkcE1+u8dk%<^ui z41sPv)Bv3wEU9)bIRxP!DcN{S*_+13*xU^*&b&uIkO*ltk&gSD`8RX^p?vqY(0Y!_ zaRt#8#Cz+HP=OP9H3jKf54Y?zeR&v~^M5rnA}HOLDE->3fxM|E@AH8nYzG+F9FxYY zGo-rzE~Ij-QvP)sDb#Z9b0HKlJD2U-Lsa#KKQg!$CVB)1+sq*y?{2=J-oC8`^|tY) zl2`*SNBoVXk-2{a3dvgAQmvKVOVfZCBk5#0-20miTG>n?l>~Vv5w>4A4yBw=S%XB+W_A#u7;pS8G@`- z+7@HIz{{U;&fp|BfSWt2Nva^;&Y4hZh+-ND$(o@JL%-^5CaQu2t0+M_LbRdDhmI{IO#IJ#M`G5e{-<>L0 zKe<#``iy_GeDxB_RPG4I0q_XIyD$1Ri<;(S9xy6(l zEJ;fTw(C2LelmJJnRL?C^7cGfHJD}J?MML7N7-(#g+%9X|2$IY+tSQ`+;^-R)9=H| znGdnQBZw8Z)kn`5=Vm#I-ewgM0t?%B)*rjLx$-WdF|iWvl;LImtQ~$ktuKedcrHFs zD`T@u&|k-DKV+(8t(kY+%}vui>zw!OIg#N9+UY0h%ru`I8MKi|k6Zuq!4^uZx4k)G@u3Ik(#?{a1!w*cH9CteoKRemk zxNZ77Nww;k_8#f#n|k+(*>k!$3!6O)p(o~+-2ARLJCbYAoAS(3<^Icp{!ZA)BDy(F(*;Px%=YnZwAvz|c~Xd2Gm z3s)5wh2gUdU~ZAc$efqJ|JPv2{|M(r5%00a4nW#s&*>mqd50vapXEaA)A7)XJO{o7 zVpg3FVp2avQeQ>#_rJ}+#r)cO=L3^7F===tq=qkm4KHDxtJ9p%`A~s=e8HEF*+-70 zMn>#8UF(|~aG7>`WZK*UI!TF6qye|Cr1C(V`v(Px9HlRw(cO?xZDf9JWPzzR>C`#? z0=0X@*m@ClJoM~k(+)JgjOLvU9E!N}G-BE>GgIVG_5r&h!!&N5Zr|0~`9nU(SeLd$ zYJ`s$sFnol`5Z~UA2SPt>@t&YK}V7;i1-IV4Tc{eqV*R9)uM)KG@$j!_k(H&;6V_H z%Nuww!l1-B@Hy)=fE8`vypC^5P)&nC=!}k_)SnGapb9l$`nnBMbh3#KgFYGzfMM;43mdnbo$P}3DFrl1;zkk;5R-kG%ZX4Ok{5VuP~S`vwLfim`9ed35n2 za~&-C*f{quqyBo`yp_u;UNk7=h|h*uCzY9OpFs=CBb|fjR@`ZjB6N{8<(X#seZ}KU z|L_UV(_LrxW1B7VJU12*tnP|e9NNOvx-r5GH3OXH z)<>!B^3s^>+Bl`+P`LeU5jt}Kmw?h~hVC))|9NS%*QplW+&!)7r3oz_OTeBM#>wtp z)jnE`MC_TX05v}JsAQMM=@BN%sR~LvxyAcnH|UVL>yPA|cd{9=(`w8(L(eyN9OrVw zdEYI$DHum3qIdSGNF1>A!->#PJ(#DR`I548bXME&gF!)I`!f~L6#8j+QKE}+f#n^x zpSTQoc6*p1=X*;nX_}et&3GGqY%t!ix@Nq2sz3GL=VI#|&y2B+Y-p<2hI-eFyWPtu zi`X}BgV=Nh8dq4>SDYX#us3sG8H20%8o*?ybt2P#;na!~0^m-A&1;;cC5ifyj>G;j z;~_HN-_=A_!y={(iEzM8_r|5>7t{9Is&DL@l^yjJL|?qz9yfy5LUphR0SvAVNgYh zJpcmujYpS6cLj=zUVSSZ8i>9FrPbMuR4vDWD zap+E7xC;ddutQ*+%^QZ7Y5J2l4k~OF<+wwR8BvDUGBD z&@W6m8QHketjm~{#ya2V5(@L3%~smCZqjRRAG(UxWZ+)k=iBq!a7(-)v4W=W6+`Bd z;&L(|n>L+yt=hy9tQN0=xY&%neC;i&-y5&PDEMVVROvy)#Tjb@y^*9cK333`_`4B3 z%iwmD$zORn5Q`=ujgd1t*GzvDrGBAd(?aUhe3(28=^A6r4 zm$NRaY#Kq4qj;1(H^Eo%2S(C+g8d z4y~(ti+xN+iTD1VL4sOu32#E-otkbyq0Sdhx&|!b+IlGV92MhaVVs-U=~LS7&7pi~ z4%UDI!l8uhp?P`&f8Mo3nMrHCiXM-mfn0S}uiNQ8L5lD$zRk=<4;?~Gy>VCnzn>S{ zlzkU`w3pT;Us{r@P+^CrX*qdJBVjXLs@B(f-|!{~<{(cQ`uOYBIj-bgKpaq+Q+@69 zXt3tLEgCiBg{~S&Sg`J>Y9#&i)>3QW2YhR?!g7vbj~sM3w)YzoO9|_ zdNV$inqd`N*lacO?f=KvxxhzR9e;l}WFcG^74QZUH7fB+EGW^SS>5PHH%cq5Xi;gS zNLy`b-BnbC;O=VHb(PwiRomLy{ifktAxX)@e?kpP|$3&KAx-5k|6Q^QSC-+xy^sO_s)N3J~(eA z^MoA}sDlB#SH|#l?Q(WCtmFmy+MZL<*RHSWu)B&_HeEA^%R0gkLpR=z*MNQSu_#Yh z^AxE)iRYj39HsMQZ#XUGaGbbTjSBVJABhsp&kfeSs@)T_Ffp)Csie6!XWt;yj9NGj z>YaG@bN}aXo1^#8TIi^l#v3CE$KzgM1P~9dkCAgEwUm+wfk`d-bAubx20Y<$(km&9 z&byR{0+Dl|6@H@wVmU#BMQ0~>(y{O3w@ZgVg?2}xOAAeoY)r4ad?;#VBkJx8yg#x1 z(6KG~OW0h{)0|otY+=LL4cbQ(4L>$0o?nRbc!e3xTc94DHaijOO(GPBpZ^k^9v-cM z8J^{uP&lvpIBc>kbNHU^!bN^r)D?iC>Cq+sh4V<;rkQYxmmsD?Ga)+4@_zB>^nwu4 zDmsuko<>p5PDUkoohs=zisKrt;D6V#bp8fPm&DZ!3$WG3 zMnIdv$JpQZLJH6sED$(iPT3BY$2PW45FTQwEuV+4{RldSP2!~NI4wVFFQiet_T^%K zFgRc=i3fX{+T)cy&5B2B#{Cq}H|*XL>}sxk-oKZxDeUyOoFlZzgNmC}9N5t7HC?Pg zSza(MmVMK|iPDm1sm;|cpM6XAQ-5DN5zl_wLe}lH*6Am9RZikiK-|TTa#x~;BbFevR#o>31;GZ#XTRy1I}t zCN`imr_vqh-%nV#)_NDhl7)}Fk)y=6y|Pw(v4eePN_feUahUaHTE;+wHrte4!70*- zGuy7v8toovtBptwQ;RV?XP@z2(Nvc0Y;4r%w}~=Sodaw$of|LSHuF}eAOyUH7Y*Q>p@=lacZAdL^RR6TA9D0`AksDHV7<(r z8I-B#YqS(&W`sW4hY(vC3@@oluSycXxve6xOWV92KD&_5x+)IV+b-ooIBbMXB^}7L zrrfX^X6h(gjEnj-(in}p6sJ=e8QkIh;79^>iQfD?L5$=UuNwB#cAR64GL*kP(ncza znUOZ~0FbZB9xSMUeSS@Mn)8=dME(T?E~RE+s*NA>fm6rNar!vtuDWrBHL@?!vCKgX zn%}@5M-N#=E20+>>Nppbi21I5^TLN5eijNX^f#QAUZxo;EZ%UCO3eWYNY zd8vyi+Ku6BucT(OI+`-`NneGs(p!H;NOp?nQna03L)|7HTk;J9o6&@>jqoMY&ZT=5 z{?(TPj_1yIoFk=ABi>vu!*ISny`uv%X8o*J#9sSP5s=L;p>=u{8+HaQZ*o z_)qX>u_H@uPlwXpY>;MqSk;MGasaFh<^Ki3izbQ${E$HqwNVYa<)B$g%j?dzdD~}( zGe4)vSjroqeCgL-%}qRis&fiCW-bhiX1i;j=0tHqbD>%<*fuXXGx33@k+TK!Y5Z~H zo;#opXd}5vHHt9k!WnMd1gfXkQ3!x>D35-L^jF!)80jaD5G^Dh+{v)SvhIL)|43?#<}NPM5(5tX6}6m7 z?~Zw@0IxZPphjj{KtfKg2bfF8`^x7p`D1Xt&rK}#k%RLUZjktgm)1R>7>_ct*1)rB zz|oRMS|N2tNy`rp1)}YT1M)q-JT9gAfKm66!jd}vZKk~=0a5JOG}{h+kq zs^CQ||I?Z_HO7=amxY&?(rfY(+LG)Ad66%&%j&rWSda^DXKTpf>p zk*j>{P3jqc*?td_Ew?Qui{FDZ#u=|POJmb|<&os{JjRvkj%Pk1Yo#u!Ih@`AfLzZ% zSrgS4+%U-7j?>x#L~X%?h@_IeaSCk5@L={MF-TnpyE?NU^b*>Yhe`;`3Yxx3A~O4m zn!Mmjp3bb9p6w>Z@gnbz6n52lj=ZhvgA!kM#Fw0>iv zF-AgIbft8I$jwOVXOs^#r;K126eCvGXT?u^TA9_Ywd9wGJw$4>6Xm)C>qqOGg5j@QunW0Cr~{Z3quP za0rbOQaGT=31ZrJu`^}atg?IWLNHVWl8@qp%y+^v}R_A9H2{P-8Kw%hWIiBPNCyr%81v@^RD5k zuI764?dtlPHX!$YU^kO*KEg>02?bm7e<>gqenK18T6OEhOUG?@`w zY+da=@fp(yC(>z46yq(JVjG-9$^69xrJ4qsar^dbmbKKCMgk_PT$P_7kF*|?7~2Uj z{&}=j950ai#mwgH%5X+zXJ*cUHvhV5wYk3g(p~)xPQCsdzczrf9Y=hZUkO**>s`vtvCBa zDPNNJ5`^l%e~IA&Jis6RkILT{XJBX`gVC;+=iW)W>9Ur(Ao1y9qNeV6tH=JZ3I1+8 zb?whSDVw<1&6=WSEh3RG=xfq{py4l=8JsypwZmH{g&*JpKAV1V;FSE#i=lAEpO+~v z)GOa?;=lDEW3*qun_n^hD)N(TUS%dLh`n^8(PEnpenE#L+1DerD_UCDVaklx7s6Mc zXW*>}YMXs=o+nj$PcuTPRHQ-onzKSp26l(E@>BBDla~CVh@PD&Cz}p581I(luMwW# zROWe;0!V~6jsL;A?e_^iX-*vojTGL2oZxp&=wq`0u*FF4AUQ3Pn`!*9giMPW`rUl!!Ho7?1wyg&z zSGUcpI4Aiy$#uK%XEBWq?3VN1xtvYo>Jz7D?JiEeKOphEc2ceG9;l*)l_h>|K{x5j zg_NI@X?IEC;i5d!Uco_;;^JOQjx*_VU59i0_BOIuu!J+m@Un2r&eq!u(qP%!^W!S+ zgnaU$N49P6=^g|OtV=tZvriLgCABUb#lQe|{>ckg-8RR0PyZNOgS3NPB|ym+0O`4u zub?eSc+Eak9nG#Irluu#U<)A-CpULn1YdLR^s4M9*~3;`KRD2{rX_nI`_Q@6KR#7( z%x+efR+KYoA(Q4!Y7o^NPc_Mh=wW|4D&b2*b5{{87lVl(#@ErLj&9*A%c99Ks55zp zeRK57@P44l+G(3l_x30=w11npFzlW;@r%u^UjvH zG&efP!&v8g6*52*fA6+MaBRC7@nDF@NcK6!@rb9-WP;B{Ca|c;HCLtHB2HWm zPT4m_Lh>hi@ktfP%oQ?x79EW5;Ilc7B9XSMkO-M&To%XsY+0X~x|dtZGZd!E8t*nx zoZ4QII5)=LhKXhuY018amz|NGd!hP%9C7GgICB*B#BxKuV-a4>`S|3Kv0$gSk5!pa z6dhJ3kKoJ3Wne~5mE~UDU^y$8-)TZZGiH&2iW8E-F137GucFku|K5A`vtX%18HGD< zJh66UIIRtmfXO~Jfl&sPHoeDZR|-O4V{Y(d2+|hAiIJZ4}~g zo>7~bvrNEX40ZPvfyWqH-v5bv;pkm}V&3y_vDVQ8y;l5446MJOJ<-5pVEpw(6H}BM*P`~&x@r<%Z+GeS70qW z?OwX{$aoO)Bi!n3Z@M^Wz&@}`EQ@10I*u-n42obpC+&;;63dU;lfK7NZ@0zrH?`5@ z=Ik!sMh;k1&Dj-&KlhhEaMhG}>#ohg$0KdWOh^olZ0dl61Bs&}sg)dh5$fuojr{P3 z`H7-`Pl)G3_j2uY@$of6=<+Fj&Tr?OscW>yd6n6;IwPHH2R03cyjK%1s-phSf3~e} z{)L^|7bef%Urde*xMWF)W>DW*rcR0IaOMdq{jFaQWG8oCOG2dlq)`f5!WBRq?FR2x1L=!`)(FNqj&MGu>ZAg; zL7~zvrUFxXTCmsFt&3zgDyJRmXT@ETe$jSG@;j4&q)1gK4h){RZK(;Tm$(8~h0`Cp zt6A9BK&!ocnWbrJ?Y6cp4Q!)qn?Fj{>UVibP5Xt@1K4206|qyl4e4sTT3O1IZz}Q> zFNx~m_5dDtHtqWibI=}4RKyf6ID>#d0t)v;e{9K*9fkM4k8)R83@!W~pYzRs59VO5>5wLioVwu#!SGlk=r5dEl-rzFL6ulN2sK2L zaIuXyp#SX{+juY-0f0*=Z3Vty)aeat=Hug^fnx1J+Gd3wHKY&`o0_|<{f zIGWJQ;HfG4o&{V>c1uh4O&-jkFM1Jg)f4Rb8%#)5lXi`-d|dAxSZJdL0*K zHoH+4VMQe7hoATe?$^1{sq7m6kJM78H%vmZD6WmR6ZsKspI#I9R*g|}OSqIH6tgL&|6>uE z$Vm=F-U>d^JzoZdHDxOc*w9#CD zwp}KCAoePe-9w1q4yWf+CcP>#k1dXM6NqC-)WlIS%FNee@>cRM`#2Hz`y7b8{UDTj zn+++WezN9+)Z0jhteVMmwJ;wXEm%P`tUfg=_!3I+<{XOLCeC^Zhy+JTkp4* z>5XwaBAodKd~5XI!bO?>ZwN@jJ*L|Hbwpc=U$A1@?p)6&MzGiNJ|I5~H@_AL`3Q7SB2z zv8Pfq#JhYl&%Y6!)!LU*qJ)=@PoiQr?{s)AyUbr}WzwL9uk$BkUw`S6@lEaLBLurJ zcy|ZYTZwIdI2`Wyqud`UhlC}((<0l^3K<&ORL^Po=u|X~B>@GxKg)v#5%GRsTGwYakF?koId zAVBF(U8hZGtJ4VVv+qY>tM7k6=I*TT*9@bD+V%OlV1|@d(W7zoG8~IQpAE;Xc>XfB zrNf?YpUR>$5D!vnLC||w{K*6`7nzG6SAm<+$pP=F|AH@`63*nWMXrI5Cs4he7PlKL z2hJYfSN6ovGM<}hBiC5j=?$`dV*!qjWJrTg_@{0BQpdeTry7a*t$_T$jd5PHai1~9 zm}z5tO$|7**{qhnY_NSd$gscc$N1$NwXie$*_rZcZV%g}u@F|!1nxmUxToLpoHLQWBGL|%kQ{a8?ek;4dyN7}d?_7Tw zLSl!J^=?1K@z64-bh1Ow+0r$iTb8zea_J@gf!!c6JzWOPTb+HvqMbv4)aoRS|l2wV14 zSS3p3hy@1zm>vdxDu&>vlj}~vUMsFNmCt`0PIPq?$W#;hX-!c*-<_NH54I_7fg;J` zjp58Z$H#HN8=6z*LnPNAHVtY;m@PIe=lj4Br^p70}B;4!<K&nw(n0Q z9;*DS|Ft`2=J^nl)aHZ{XuPJetTq$hZ|j0KWRL%Q(7L*Igr7vU61=L*1BF&u2ST3ijfPGdxhguVJbKQ zF?T?~3vCj$Fm$KnD^dS9#MpDeY&#k`N5kHGANR_+EpXqCD1G51htgkZ4{mPwi(`8^ zZV|ht+!h~M=3$11_i>yNPFL~3L}F9=opAeB@Sxot`BCBK+Re>DugrJMi_s}1#(OdO zVI-dz(&L{4U6#b6F;kh7=CLdS8UB4x9%FK@8Jrx=)LVIYib4s)*!7wYH`+bdQ1gi8#zzxbK!$XRRDv^%iYh>&z zQDw1k_RaQztl|8lKas%?iHe3q0#!8>nlO%qw4_E}D$f)Yy^&O)eJTgVvYYhPXhBcM zc}ybiXovry5fpA6@i6p}pSwLm%*o;Rh*6D=m#s4rDT#@6Ey!=e&fH4K1oS_JTeuus zulF6zH4M)ICKz@g(o-EWnT8#ezFnqLrrY!MWsypc(p1!+N*f&rHXENIb@?)4R)4_t0RX6?cx|2ag#$!?wn1 zS!Yff6bpXfri!?xinykVP04jl`RNrs{%@F*89e15mcaY%%{I0AGP9PDjh|?xzY)ZE z`+opnMilvUO`FCcyQ)YJ|8V!v!}gDg^x#NgY51DiC<`T0aOEQHl{LPp1I+L0P=5Hy ze^xG24X!ue3&C}7VWK&khftIEaJaZ@%G3F)S{HIA$p!{f#WEZaOCXue&LLq)lr2WGbv4JKBTh71tz$oiDJDrev8Zm5UOD)C(&~j zlijlO&9QyMNA6J)Qp9i+jeEy}6AJH6VcFKg>8U)hQI=w$Ky7SnhiZL+NE#Dtm=I2D zQwlnM`c(JnzxOm-V)#bIU29c>NijccOu3tOI$|XIhGiRIJ*S>Dx4z)YEEz0Q;r>#B zvD3Ml7F=x5rgz^F+T{5Zx|l-6b0-ED;k^8-Ep89sL``KVQxltO31WNJdj=zsX;Rm? zeebrRx57W0=6cuTSQh%l-&v)R{MdoMtR1r#3z%`6#`FQk_Tytyg1D_P#P8 z2HB##phwa96!k89Pd*KsuXf;vd3fAj9tzW8QFKnXIa2walzCBk9}(~qqS`wFG~$U_ z{06*}nQo)G+uT!SX<%PbWYK>DtlR7irzlvN=sHlmw7m#*ug+fFl0S4TF3EXqTj8`jL4qP?GTPeEwiR}p%%^QzVYlD&DvBQ2 zl-=C6b-(0y%=SWqOcPDwk*Km5Ox->N^2^$-%m25A63*K;uOBCZ9Jk)KdTzAlSRh}+ zg({qhzNXePw?ke$ARxRYKWuF37$&HnQLv?T6YnGKgQHpLz>_i3A3Bz;G1lpf zxW-_^YG|%$Hy-q#jz!urLy_{ETG8XA=IUi&F&z{apSK(cvq;Dq+duPCrL zUcVu^E=D%72-_ioFF3&JR+T~X$J3V46<{0nQ^el-A$vneP<%3&LafGXCbn&zkQlC> zv~9)eAkQK<6+9Ke#H1w6jG_zhXL?PPQxSpCag)Pew+K|*^o50jOF&c`5a%TCis0o+UXXnW%Sc0Z z@&+<4vTgToAt{^WgNPk628oOy#os%ppA?0kj4VaJG3mdMZmei3`IOa#5>mvW(3VKcJ^Ks;OQ73c0BtEw7R4CHDDZSifE*5^8_5KZJQDMCnGQNC$jQi z4If3@8pa?$f5J0~|ELPGbAVnuWy%at8@wfN3KWW)e+Zc$zDBm@wg%;Ho6g5}(wFFo zc4KVYoF+b>MxQXwNV|2K>m<;ktU2d1ipv-*$$ytT=YC3>>iExLea6tKj+wg*H=*D1 zMNyaiYKgk!eJyFwu8q~;K~9$ck*X|9Fc>ic^!Ef#;sr6k%y*B4qe>nMZp*3Eth2Y! ziOJf*I}jUvhRlD;C;UqQD@_ip^P$|AVK|269jK?tWQ{Ot*f#%&U?6dzjY)t03oh&XP4eH8Bl*x@E*Pw>p6X#`l9b)WYaEwa zGJ@D?DA1AYSWfg(4lZSVxk)clUkZhU{|Q-<6stCRxu~YPNH6&}i}Z4|L`Jo!V=A!r zuAj26*y?_Zw??b_*44OncRvTWuJ88184A-{AHm~C^CNedIY_s7b!;~Dzs@u7pjURj zo>=r@yX(m{JsfGJB}KYsy`E&>K)$n}cvAB$=@*C~!%hz$7l~+|EDm!2LOXN#AmF|8 zc1WaaEF25I6uxPx0?1<7ZcfEX9AhD5dJQcE5{GbGVWlDFK!UIbb0{==zo8N#vyrBz zx$(4BxpcP76?{t-Gt`{vk*3L!sewD@2wqKB?TYY9?5W@`Jy8S1e^98n{=(5nlA}6y z&p+ElY>^f#@AH{fjEzm%7ZzKfQ9F~R1s0vgEAvTe-e>$bQ(aX!eGqpTGWHLrU#BEj z(8T`k8LOZ@b!Cx7#2+GoE~=TP%F-Y5T!1%5r%;DN&!jocUfnDjM{(1U9ii40XW4E;CPDAU&3)XEuVi8&od|lZ|k@cQB0%v{9C;v zIm2(^d1?L2IpS54N9*Xw5Y|vDEc@CGRO?_Zp#6Or)(Z@Gp{MxNx%P32@~9Wu<=h3k z(2$Gma1z2ed6kvXYKy}0uTdakc6+RqE$veU>>V^|sY0^rnLrO2bO_{LkBASYkuR* z?$dCjQ?I=2=XnE=WEPKdo@&^St|CmtF9YO_MOQdqE>%&H{H~4g+xZH>v30)$izYem zTzU1VnX>Gm*!-ijvfFc^eb04^i8B}rM#@*#nzH;Z`E3PmsgZo>cfY`IOA8jU;+y0w zS9;0a>JQ}^2len-K0nAo)mTUyY{4=73JMd#%s>YZoI3zrb zkk|W;>jLU$_@>KMX=^UgA%Qn^i4M|W=o!x5ARMQgYiu-PPvB-TVN=2M2hWb-4{q^J5iyXhsDSm+; z4!V(|AfENLTguo~+GB}-^4!M`#y;EWeYSDCOa113eh;gHKI28a zHo9VhPf^$B*iWcc6(QL~k4~^<%zZ~>c5d|7&e9RenP;0@N7^ppfiYse2Y33z=Mad^ z{wRxHueRvw7rZ>IuQinvzxktjYL(%?0}ZoU8#2fgq1`FDF$iIFKCkiqia>TBOgDYY z^b0R<+}Zjd`x(j~;8qJzM$(aK;x_WMO^Kc{G-vY{sVv;5h?f;+D-_)7h!3sw?27jNxquI*?Ez6G(n z@#f26m67&gOn4o^`lSm$&aSRoRr?Yfaq8EETRLrvTq_4pZvN3txEABV_uNLg-UWsXzT!9WL!QLK zbzb@@Tf_zY!iTVGFMah}&n^1!E}CTJ@xrH^01FGvh=Z#&a)D{g+*+lsYqk4wPY*bC^ zEshs@hLY2YPg8GIaW}ts*ZEe(0f9<0xoH~GXQlfoS~c#$gWR9(IkNzoikaS0?^YJB zD9R`EBcRM#g!yq4Psxw4j(JnU#C9<(lS=-x&eYaph$beQb8u6dK+d!ID7E$YaOQ`6 zq$lY)`kMH4WMW-UycKq7#2Q({&TTqEF9guF^bbgM%1UbMLB!0iNNwFuLCS+y5IMU} zb}b!H2Cbj4eGtmGrS83rkDP)w6`ko;N{DO$=N+fRVYJ zHb^z`O&~7KQ!Km~zZh$5ja$5Ssl52Q^kztE$;hy4jNnc^(wg>8<3Fe?d8=-3cJ%;w zcAFBg^ngdyZGwKR3-Ud>E?n{X&bmNwt-5dy-@3*207kXcjd1&C(qq&W|8ASO1JR)@ zbBHhJGsY<@8s7k5ctCED|CRW{fjxLuUl*`SM9b=*3sx;dsW-J1)kXdd8@BIop_9ci zIHhaa_&_$N#ED4RRe2{@DS*8Gsl7D$is-$IcP-537%TR`pB!r~yhVL&9A){!Gqcy}#qGRM=gfD+ zi&*}jHD*tQ_w=iOlsgUYCt_)+!ic4$e1|c5mq94DW5e@0cr?}IwJn2+Hp;SUvdRt3 zQjJ@#x+(JxfuUf;21mlQo*NsRJ`IJXqufD@16?Pu5Prg}ID2tQ&bj0H0y-17E_z>! zndAu0^LlGrYI6h8aWq$y3M0dr6DU)>Yb+Xg2*QP1u}8n;$bL@%GyN(FJ|usUFQZ4% zkCHj3)RXjjsxHpg2EG4=U@|-aW~7YRlWhWT6aKUgouL)Sm6C9CqwU14uw5_>e3AqP`e3GdY~q$_(Q|BNY%Y{*eAI z%O0A@VL9z2!?vQXskd{zH66YEn`3iGlCnj^Y%ian^w39m{lY=B`C>LvXg^oMB6oTJUWXp`D&Lm$Du*8ylYjn_TDP z@l(awA_%bF0j1~p8BW&wyV(;HJVLBYxQ48iWuY=65Key}7`HZnuLrWy;6nHCBW%e8 z8xJ>i@a7DAGyG(JfX3ua89nzfTlWz)+J_Mfr#kuA8OpDte)JT?uLQ(G7r|S#xg=D_ z0Hj!Ugn&&q@z?(pTK|&t!^BQSz%r}|o(*Pkj7k!)(9XutE!43SqNuRXok;9wsUNm- zCmpzY6}2G7WB%g;%;HtWcOuDIUNeRdX%Dk(M27+|ob_8P*a&}u0Sz6fBGvsv0mQp^ z=dI-doX=u>C-8mSH5e@+man16=dQIed77Wp%E2@~0Te9f&bsVPEP$`$nK`|aR+#n# zUG&qJQXk5n_{R?r^ztV@f%_37cTvAJPvThfB%*CUC!WW-IYF9mjPVP2yP%S(JJkw~ zn}BmM^&Y)KPtJvIXfbVRlC-1+Tx&ScDh44))L=(0_qws_LkBjCh5uYW@7MzS3d<}vo?H6%iWeJM@- zZis`l;=5&KAAdY?zxj=+79jR zW$CIe`YkPUMy%*py_K_h%&&UQ77A;15Hl3~h&$O&a2jW{EHKJz%13LoTUKpOrg{itUB3(@FQe$Zzz~8~Tu+CE!n<2Vm6zR&?*qC=%Yh z(;dj_mraYIU#<#r7}7Oil+twS~0>&p)!h1`33MzmT4pT3 zM}ds|$+{f@NVd}Wd_HjWg&mE0)qDrP$&+Zh!kTWE%qZp8)YEAFd*Qs~mHz^NdgY=$ zKU>cqD?c~7ZpzmTvZ|))rF7h~{3vmYz1~N!uh#2w{=?#-S$FYJ!my&>Sf2h98_W8x zaQ;8Aq<;#fih62`_HP+OAbsJzqVyfNv?Lc!)bv1S*>$w(n`xHXCdo!Jro6#=nZ&8-2uw;J6gGcaz2KB{`sD^zM|i2(qu5M*urO zEE43{GMXq?I!2Z5BJmcPWwMhIZ$ zxY7h6l|+kVjs#{*tS$K|3`6%>S6+gD?X$uYWqdI1l6s9ccup`P6D0#Dc-6(uT{>Gu zCa4a*Xe`{=OK*<8%;!$}^q0Mho-q>h<@k{OsA#`4DxU&4CPAN(1hsXS=CqxFTHmc;+QLGNtRlA`$x-|ajMzmdMKinp#{Tcs)O3Pz~* z+F)*{cS&K_WOpFdJ9;-d2^ON-_}0al&G~m2yu$U1qxmbH7+oMp(o#er%x|z{pz8~m zZ(c-pp2^e&t12etOBp%)CFX5x#daWFfvhg)Y$;G131MC6Lm8``ZBRxUg znx%)DLDA7K(gR%d7T`o|N|Zt~ECbcP%-ME+WH>#BOA9crlbx@-O}h|3s*_;Tt0^45z!4jb@-z-?s7{P%7>t*{eUM~IbL$t3 zn(`ONTc0>BpBN5vkruo`5rcERQ!z8z25K_a*DJp2QHg4_H1@e}@UD79&bJOHf@c7+ zynS;Ezl;r#iY}=|HtksUV>X6s7vSBLP>RC|b*~m`jF0luHnnXHURufVhX;n2oCFva zcc{V(gp0>klUU!o<}U!jz$_VurdXrBzXx#jZ_F^b&^6+qs87MGG>(BnH|`;{3z`#rr8)yPu}}DxvLCBRYjyh#LumW0F@K z{NcLFO}+MICw7TzLF`^u9HfamiEQy-`*{V;H`*vpqto88f3_YcE;TwVZ$DCWFbD&k z?A4-c#@&1JZiipeB&0=l zqMZ1E^J^yf|572=&%!eanyQz!Pp|oII31!*(FX@KaK`fw>z`P7m8hVEe19FE_2RPI z>U6ZkX$Hb+@llB(wElUiFSevzso>7AwG4kBq^Ab`w1ZDnHxUc(SCg2wa>sgOe*kr7 zNzJ#_`!Sa+JEKVL0s74UDxX;YQ78<%4sRv7Q(03a(kkdABMZrwQKwuoMbfM+cwIAS)fH9n?d!aeN_jEu%CCTU$58p~H6%fW-}e0V9wal0{&Yph4> zisg<{C@_btzTvVl6}(-CXg6mU8kD2&6RYAm*3(C^+JbmO&LtE zhaKBZ_p+Hx3Qnf%wXA+8ZK0++__06$Ec1w{1XCR8_6F`cL4yE3!N+chw2F1!Op8C(w(*Xiw-SoW7E4jLHMdIQM^d|DC@o(l&lwne@Zjq~laz*>p z(CZjmbb;wmX-jtLY57S5l&F_Ia7WV}DHXP%8Ti8Kg;dcnBz&U;L_<~hHz;%+2wT`D z^wZagR>)rwlzg25K5RL25;crqzwNcJ_Bvx(kQcX2oMKoHeU~pwiA4)xw4j^B!I6C9riNhn=N%Y)X>e)P>TvpPkb>J)Ek2vo!QTD} z$h_w4*c#z`P;+*?#&y96S|%XO^xFD%EJgFwnI_c{5_R zh;H6#>7;erwO^xMQ+J!Wuu}y!o>G;*N`2~`bv>Lufm=ta7%w>`o*(^_y1~-xkwww`DVx|o5WF;mTuTlKFL|6exFLb$-ik#XFDbQ`a-37D zTxhV44x*+Xb#yfbVT-pEB1nKB_CvNq#Ih?B?<-Q@j17tFq9RxCNK`GI00+jrU>QF} z!2It5o$ytPM}!4``-~iz@5J)wR-v7j_h$^HXNj@if4-%a83%hVvlYj3JpD=$R{v@8 zHN?@oEa+poJ){X7WO6u`JJFP}KNmkkd-yS*FqP>mP9k}O!`GO9QVkp!yq6|BdZgLe zKl{3hKKW3KeJzGV3SLuKQd&p4BANOE}L00%e7`q5r3xf-OzJIM`9GY-?G^++=ql>%0{$;}(e z-wi|)BH1Usd!Z3}rzH=^5q2n9b*DF!$XA4lVC%R;D75^+mOWVbM|nBuI|EI-+Q9xk zP211)2@hOc($BnBz_*T_(o+EyaTItbTch_b9PZ$V5rq&%$6E3=q+(|<{cK{iw(S3O zDf@F`!B-HMa(^XX!eVEbMh9~A+kZdVJRRc*5n~Jd+7k>ZLV*cp7EgF&<|gtHcrQvJ zV=XRA3Cni&18!HY#^vG1nsCW>YYjSmko-dIysdlHznQN~_`?Fp){5DPbo9)pUtki; zp+i+DvEWN~ETjBAx$6yx=Ioo0-bh%vDZu=q)i}vX#F! z@y(2<7t#C=f@WuNRzX7cIp)ROXfYu5S|3JAvdunP>*c5Q*pM*c&2YnV$*iV!($}K4 zV2EMP<#5H_n_HhJN5NQyly8!az+Nii3i}bcC7S9#TCmqiQ|3?ZN$%!8=D9vr-ih(V zX)=QT_tmE&-}URi_m3}(q6*iR>`!DVXm0I}a|kN~{}|~RvM<<)_XUQ^0u43a#}s-3 z7WYJp9m~R0DSd)|6|I!$5B!bngJ&;ZY=;QjP$OD?Ze%gdrKs_eI-@a?JCBX#Pbbgi zl`hYv;t5(>{YX2A!RRC9M>PnPwPZI!|gT`Yi%$YM)eDCNifh zwDAFc8d&>6Bz=DyfBJkXFy|E?HP^Ce9=2O^@FUS1fqE!6`}B~=ZYbRf$Z+Fo!JxkoD?Av01*9I#g!Gt?XL^B0w3!8(L+VB9H!m37 z+}c6sa83@59+LJMvZ?z`ucE-jlX|h>3uHbgZ*OIM8Av^8HzYV zC^(q~eyLw8hgmXrqZ1(%$o?e^#JtIWkRgX#8AltPIeCnb#iyvNpDSZK1!uVg6p{7; zz7o|ypO$~*!l(QAF^l;}GD}5IxzVQ@bQP9_OFJEl9?fw3Fm5>5uO(l(d#v^)X4pa% z_0hnvDU!@5w#OSdF0wnhE@i=YsM?;WP_`!iz2ah?1%LAntj$tbE z92b=bIl=ZbA_3icbSwD_vE%rgUi8{h&@Afw46Gt*t1~*l5x+NPmeC&ODevyvb-BSC za0AQhcqVAh>FCW#HIR=l)++2B3c?AA5A z^1Kg$iL^vwi1{f{m*}O@dktbPr!Wj(;~7y%i4--_D3fP2P$Z5f{gyj`hDv_@dW& z8&(hU#ykXpKwJ*L4hr$ySw&G4JAbeLd){eW?-I@BLd^&2z=w@IN(|u_!w%aTy6B4h9^v#&l;V8L zL-Ef4;7K&yY=Ip-NmJ%9M@0y7EbQGYuiH5n<-f7)=f%$x=dp}VKTV%_Fsw$2Y036Z z&Q_+r1#8Ly-qGU8Rl5MrUNmANcRHTYY3)Oek(-0d5sk%4lXv&FXQw4k-Pqygyea08 z5Ro~(IQFG=zG$l2?C&Bq+>>kLwQmc36TCV&MO1d_biFsH;Y4eZ9<^go{M(_!#b3*J84&=KD5$=?W9V47*uvF+`3So(~68=E+^C$on*C3Tg~ry0(r>on9p(fj#nA#N?~ z5L7o@dEwlueXY^Un1ry-DSuHb_$AA$=#ON_H@2$6rP z=ZTRL?Kl6{Ah!9TnWK5VYxN)>KeSqB7JYYvNwk)nHmCN4Z%`bEf|xKQb~4Tj&*lIj z#Y3+3=E4B}eY|EK)_o(@peR{Ch>Z0*&N8_#Bwc{e1E=80I|TytJ)0tsS0#KUFOL}G z78Mn+3?6J8Xv`b9okZ+zVRtuQ(q}XO81Rpa4LQ-M+Pjzi9<%_|3*yQTa&ilulZ83k zDS4G2{rp)tlO9Ht3kyqs2^_Pi&71QJIVqex#ac?iF?3Qrx`DEVXZg6SUzOI|oR;M+ zMk>2bDdT$uaPSTEI6()d~46snHs@Y>FQH=9N=9_T( zhg?u{;qwx0@Zq5lVP>WtGJQ|-USuZVN&68zF|0W{GgS%I=;mlHk)DJLJQq(-@~$|3 zTaS5HaHf0tkMVn>12;6cJ{fs%7-I**VhhNh1J;YTc^&@4>8!GNd30?7kOLA3z`j`$iu0Mm$)?C9XgU5T|cNlk@^+$ zheYyC71_`}`Z70synb#bb8ZFz0$vQDqPb9zr)b#uVGqW#p)bZ$gtKOAH@CEQG_&o` z`}VDZA#^OOmgd%VsnGM3;Iy;9&;nmG`G@AN0$o!SsI2w9@Mjtx7vJDbcH~1U>fJJ= zr^hf=x5^uF1iDri{6s`cXwmXPWEs^z?}cbE;JyEgFM7QBdtiAxm*+wr zH>Nmd&UNiv%a=97trJLGL0wMf!O{=cp-H^7aQqa4{}nU5}dJt zsF3r3LVR^Gn2prGk*E@AuUOG>1B`3U7&*+lj6!_M86cNwm8 zp+_Gp)6`Olz}x|+f-T8N0PO(KX7=uhN%XHJ?{>6y2jFXJ3VqB-7AbNR(nN?GhV+#7 z0nI8|(Zvu;F}${T?nmeY>poB*$CiNh2rgJm6oH`EcJ2V2rp0whF7ym~VRoeV!EV6- z5_%bZU=BW%0EY>ciHWHG6H+|`5(lMv1}65SQxlA5NX5AVz3*n4uAph`2}{cLEuuai z{K4iGdfExP)zh7I(TgH9)Sm|WRmedt|M@!9^6SM|SL^^ZO&ZmYuql2az`Vg%nt}qx_XVyk&{#qoe~9y(OKvq#sND z6#9)A>F&+vHDsTsdZLk-h0mbr!D^imOttchvqkA@v}=n*<(+VYXq(wwhsFlABE zis^|wq5ZSK6Z>_(jSz?v6NDFwen}7h5S`K5pmbuktNRP;M)Mn1L*Q;R-e9K*KU30# zdk=Bd8Jb~@fG9ZqE}v;J`#QhvL#;CkfC@fQsy}(V8#mL3C%<>UP{NwPTwjannF|^C zvOY|jfEuOQ8cLaRpSu}M>+^9uE%(`%f5Vlx(XlDJcq$LIU`0-AU%rqwP)N&mOSSTU z3~%@9OHOZ=JyU_MrX7Ex0;Ty{`ZFpc5`%y{!R^C7%{tSM-Wj9D~Cx3%1@&v&V%{JKEN6Ju+ z4Y1i|ZS@NidwJ_%Amp{YjH3T<%12}LW#`Vm6>xe%2ATV}MBNW5@ zs@@&cAV+DVQ^QqjW000u`xLX=dK4aBCv1pd7d};6axyhrHPNFf;t3SzO zmDt-mmCe+U0A>cwLysbcZj#dzdFUVH){DW68sRA z;{0xU&*`=32kAeH!gJ%EMmm$7bE9%i41X2@-;&*07-jg1w1+tfF3z!8sb7i(Wfz3i zS8yF`-EJoj#adri@Z$;${>REjIYLYI1zo+YS-Hp^B(PE+87`dMIYAN z+BeaL_J{{RE(~$w1Ti3;d?{+n*h0){x zR%YXha7L?WhyESe73R&E(^(n4-2h_-N&=SIYqw7u1PHoHY`ju{r@E-nZ{~L z)jtXV8ua`5O&;qKk{r(lCrc4>$;FZ{l?}n!LekL0_KYNqU93~8fvmJ2)0M{>Z8 zpis7u-h3oV3|!7fvMV>_BWdA>Ow0L6m4$1Sm*i^i!)*Tn-C?~nhw*GS*ev#XhK%Rw znhpR#P$?m~mQ6P^j>X-CGK(S#CJEGHyk2!UJrfNG_E@|d3ygKLW9(I!P?CRHFOphW z-LNncj^Y_z8pKfvGYn=B-bp<f(#hSm>e&@`iRGuBxa(jAon{8oqC#<8 z%C&H2btP>vAH@M9E-=icJ#`et#S>GAjer}>r$(>=R?nBcc_dhp{6n!iUMF&)TujB5 zuG$;#qG$1X7|VyoB>5kxQg|s5aRVPAeH4ktBg+ z_mq_hQk)ME@Cr_*_l1ns16VIGT||e>ubIRyMY__qg$NJDDz$AP#6uU@u8YRM=1Y0ug3p z&^?2qghCP6Pfc)am59;#gQ%_PDv>0*x*4VAki(=Ij>y`JHVI%6juuHn{$i`?OSVc~MnzTlew+g?<>O=6Gc@8B*u>YH1{{Wsk zxFD||tK4p-a(TX2Ijnv?{x<%&a-8lhh?Q7dJo7yM5N{fm5Yw-ibvnJPPf$3>v?>fB zxf7}mkXFQ&&s7ylYeCa)Y9QGK<0a4oRZF{}AU?C6~^%3YIi%zeq2vqWRkoRW9 zf?WK8d{>lL-Z!bYFZZL+2l@Y^06wqINXNPXk<_~iN(-mgv*7gawoe<4cHiWI(XOm- zC$=?!pr3VE6u2>p{|aT9tmB#pGf#2@2m0OoT3BK6MDA)Tku0(Xyd|0OQ=*2>kL3>= zf6~A}VMHuu6_txg6{D9KnSCe>x_0b@ zx8^$8Qj)Jm7PVAqL0x#p>D6xi649Q?XQEjSy54$l;z&;P<|J>f8xsrYU6psiLZMRj z=4=!Tm0QaAr>`#aL1be`F!>|?qUhcWGiiDr9!agOiVhv#K4fqpIR;02>AOMCmcNVU zLUqINUs0Sqksa7!igl-~40BKiuRcIW_*X7;JQZ>GBBw4_CH~r!U0Ha>dt!n5ySzBg z<4bFz#Ag6(3!=S?s~`oLt+ghYgiEbl#dc3OPN{zN5VYpxNvXb?o!19K=ACG^Y2U@; zxNz|zMOW*rq8Hi4)|7qHwxT^H%+zfx)WBS>eyt2`7Fg>o;wXn$?qYGVb|p=Y<(e?| zZY5keN518Ejh4N!$GA8vE_748MuUsWz{1%8|ad_T2TIEH~UA8zk`X(X$*~C)pV^ug~q6Dicl3xzk|!FTUrFe3H0` zdiN72jQmz4@6qy&aA;hUTt=Jes5gfx33;www#?twQ`iIj2Z50hE?h_l~?&3+~fI_fHfy^HAOK zqC8aWG4Ax{@C;xI2*5yZXOv{l)aOg6)0<9&2_5ne=Elum7wLhGq}!v&_$dm;j?DBX zBUFn6`Q0nG_1IxcMfv2ql)S?Eb8OpT|8Dtv%vT#FdM}ng#rft6Pq}#jo9^0w7zF<1 zfK;a6+~^;PDiFVlT+4-S8z>qHr_be%ErhG5#RM43-*lWhAq<3 z7W;KqE&{>GZvyl`2qxd|4vnR({*~fC^{ViApZN#l7H5`(jPp;(g+6pwQ`EnTEGy!b zvCg#>-iqg-?$*##yk&lVT0iU;!c9a6C-}QBl0&ae?dZFK&Qs#%gB|))*U|UE?8Ujz z0xFZy%+aUAZ!UC^nrMAFS9voN!Vrf>FjMqdrhMM^8u2jG&okp@P;|x0< zA;kvz!Fj|Z^=(bx=RzY&@7EH!_NDiIY4_>kdiO1A&y9Yzl1($M@72AU*|^|@GQ6Pv zH`$kC`9pst7#M`)xcXNX$T<8b%13jRWF+cHUS2M*bzF1(Ysv2V7p|I4vSSJ^qF}7^ zKNW>t8E@H%Qp+mqC%5u+!I8O9docDNWH<2K>$n10lM8*7H>tx;;xF#FJ=CoGqK+pE zpE5L|ji*xRyvG&m}`Y1Pg5I^0O6ZEP7Js6mFqq)(a4bVLOY~s=0D*Q(;MHci@ zi^l6Iih*Ae!jArzE}va+2qva~a#`0=AaI?nT=lCHyDL>w{jf#JkI*%i_0|x1koIts z@yz5!X4Sks>xW;;*9#O}lH>y3=&o#6G2-2w>PU*NGkKGn+QMH%Z!0e6^B}~NxK%=h z!nhLsfZkl_5Y>|Es;qx=K|Q4>ry7pzNxqwXnU~&`m*aN{4OWTV=z;uT=j*OK(xI`d zG8_7+VsN1T&4t}XEc7R!9pinlmxT8GwfqaiD`XbMFN*DZ2AR^>)F@AL6#W$43%b}t zK%&a6WF?jjRwpYPh9v9D7Leq7uuE?AlfP0WoFWiAWH0h*4KlLsZ!U0nYao;39+kY# zg;wETDXzjZc`eLSQ&$Awdgf1ecPBmK?q%KOLPPG9S(H`61nJU~+{3TmMZ5UAr{$)2 zKGK|5?OCeF7BVfhr6PR87nI{>y4|Q@max-?vbiMO-t4OQ_T2(~^dq1lnwzk(Vh<+K z+~|uik>+;A?X_FMT(P$qmJa&^K-8_ujg01!fz;c<)Z>-jCnH4{Nepffm6bvDwr>I0l+dJEbwPh>3D=?mVnGd%2;No@o z$%O{;i4(UV60%N%C4{UQhG> z4`pWp9%Xg?|Cx|L*c?z$Tu{`2K}4a7B?>wtK_{9hZWI+OiXzsvI#H~O!OSSraTKdo zYpr!_#n!f3mEuw*ED31ca2HWbv-Rl8I$I>J19(4h99T06g^+(``A$N$DGHy4kZ@9z>ZpF~UKD!}Ou92gDvC9?YU$VgVd zN-tsJ&?T?`!)EPwSN!ZFd_h&ZG1I0=dh?W>hBvi z!YSUM)Tlw6-^Q;Eo73HUZ6ig>yr8|*(jEs}>{aGdbY*F_dytwT_=8nn4K(HgS8Q8% z6sV&P5hXP&>=#$L`*CF;>E0vrOxfWS9-_dC7&^p`^Do>NBnIEwRCbdyl9x$^y!s&3AN(xZStW)~dDc2_)o`Sj={FJvSQt{rsZqV_tYA z^D*u_g(6wc(dKn4k>1Az)m*aTZ`e$;t_k-lZ z!5EwS1ph9{J|qMbZl(wU4VZybOz`eZ?uIY(hZx&Nc(}~nl>e^*5_`fs#Y@C*v-5)s zQ9sZEm;b~g;zz7$Y8-+x5AT%OPQrc_-6~Mh2-z34zcuZNEotvxB?3&e|2QO^bkc)M&GKfS`lmfEp5t&u&=S3gdNWk?DPvC+u+knhpYt%j;Ws>Yk8j(IFf4#8_z2@YAoAIpi( z79+t4g5V+pRw zjny;Yk_?W8(BSVxn#38;CErRsv7_Y!LG2<<3v+`$>~7Y_G;)z9Ws-d>fKLea0W$6K z_6PO2lljm$rNbNXx3XlOKa$9M?RJ~I#I0V$duCz+Ar>rm<`09#Oy9Wx4;Fa3%% z-5wf;Knlj3K|+(C zvUo6rCq}PJC9+r1eeZYDn$Z$IG?Y55nMn_>m8v7mq%i+C*poV?7+*JR&{+2KEd)}g##%VxYbUp94U zXFuHn(|gC-Qg3iDm}NVkzW-fev9ypBKl6?Osq91Kpsb8kIjb;PH7KN;RtuSl@3Uh_ z+|4cruXbZ4T}ZfMD~2o_apPZVM~=aZ+#EVG(7NRY6-E+L&uaG(qPdPlqv^Fwo8;P< z^O*9FxKRX_rdlA;i;a}DQG@@nw5HV1tDcN4@u;B|#9QJP%nyOZ%5p4oJ5$~I8|bz$ zd-?PFMgk>J9KMdviD)@1nLoTlOfJ&;tS1+MH)Nj3;4x0k+O&g-24{v>pu^MOY$$88m?a{_zQ*c@vjKc{(_tf$(FJ|ajkzi2r3s8 z{NbU;b3##SveKnQx;;1L#fNR{bW;0DHn^;*u-f~Bx!}%iG7lwrH|nzAXc_U(RBiG9 zL`p52HHzKImCXMrGCd~sOFqZ-YMdYxWnqOskxrv;J$R>s&~K=vjQ0HXyyP}8v5>p; zCV%F5=2~GA>uZ#@{H4G2XEOL$3byl{J_{LW%opGK7w*vW;arnHtc#Mr<2#zN4M!P& zeo6}4$%jFW=x0NOzAc*ZceLT78MoLc68d|J@q=-2ubAOIT|~cv$^NC6UuYZ)qUcFoozH_wDRpx%rD#%N?JSWVLaB}*OfRV) zp>h*dF6eEA8UVA(X%Dv^Q)HHVa@lfGCK)QSMFPT$kkKQOQ!d;*-XB=qBiqI{b{wC^`1%b+av_`WiM&^u4WCZ@)o>w=@J3L7hb7eDNd&I(;Afc zP;4HVOw`LlB%m^fDt`*AjV$$wvqaA!)*l&zMnIt0U==1u?tJ4r!-7)`$Aw4$#wjJ7 zS}oJ&RwgH} zcQ=a6r3qfj?x=9Q2lGq_o-f5L7)?FEX81a)@dCY;k_dE`%7DZ%FdCh)Lb?rvP`V#& z9GSmzFPyC?V#GnNZ0<6|pN8Sm#E3NGvN|OM^_i#8v<7w*A4!63;sv=WSz_~_CT1*- zz}MODpj9xrMPljCD5E`1DDia2#jykvxv`bAOX{~@w-EAvpSl`8`aEP+*|C*!GrV)A zk*8bAug`Wnj0M*YYm5!lO21FotF7UnA@yBRPkjXplg-3?MKNdkt{c;}A(mlD(Tirn zZMcN~>BW)fhCm#SbT!?s$*uc^fY=he#e{jh_h2Xj#-)h92|hFCVC`eZMuqoxPEv0T z^H#!!7=T8)eK>|~__bq*i}nF;17+bY$WP6KmS0!~tA-ao7tc1$SQ&|w^qR3jf2(8F zUuNge_<-w@85{W)RMA%tSJ#4`WlD>g+|R%1AKPE?KE zCzd{*M(AtxI|NbRu}v#7!u#=wC^2Nc%lX-Z|&{nuM%> zz_a7m?PHmP(a3^9rclQLMc^8cUhKF>A?@2XIF`}LGuk{KngfB0S4%Z&X>9@yHnNK- zQ5>0TI$f!dnu(M+Lt`l=X+FK>y`|y^T+@ZT7k*apnX=XlQ{VTo4%k$D5o?Dd-qSV# zaX>6B5t=(NQB}WBETatcb}EQkh}V;}DsaI`hIM}4fl~eT*2+VGU9CKK3a$LnX0JNz z4y-9~Ke6rr%D+h41(f%wpd73aj;3{G_swm?m-z8{4*ve6Ev79!k>2<@`gk|%y6tuk zKfjmH{l~+XNH@5bj}1K9gc`U@!Y_^jBXxiLuD*tY!~4k-Y*colO9%Zx>#=ddJPv4t znF3w}lEr#xH@nuiv}iN{y`WM!>fU3z&5ff3jOf%0qcRlbWV@6g{Z;&X8I_P;_EuWOG`@!CvLO?Nqhm5Zv(XXrJ+tf`>sKkDr({W z1c6w_@9XdTilo`L@@GCkaRUspedZn9kY-J%?Sc2wUpV@9dMq=K2cQYC9vSJ?E8-4Q zUnNWjb4+N+!asvwYet44)}%yIcmSWlQ*i;HE4Vc*begm+dv#TLgbZWEbRlQ}*QaJV5gzwwL7c8z`STytnCOqHwgk2RQ6}VmhQq-arP*m0^TUnN* z&UXu$r`9PbO|i_YU@^d&e?4yh*fVPdup3|E8A(Mf-w5&aVT5&#r#cQhmiTs&9G>;3 zOMgn8B5E09LuL4TKUN(6=kRWg4owGJgbnZy+YnZOh~qj0J$XN*LFpsuE}5T01FcI; zU!-d3Lj%7weW>*@n--?y42sxy&?>>waTsNisNuNMU)+8gP?wIiZIWp7IO7QRx8l&h z=@AOe&(5coUARDxY56tFKk$BYznDht9o6oFpQ3QpoJ@7(w^1Pmy>+41w>zNwmisYg zd}^j)uK%@Hd*>ffQ%Hx0DqsZw=0C!Lc&?k``0)&0#KUT3DznrvX#UV%y28=o@Ok-@ zFn2a7X;Ey>4*A30C;QTr+-dQo5FBK@QEgeOD z!R>rfnKsnDp^)4z^_>$9n@_9nO#tm>%CxOSG9+ZEe>-=JeO~oWEWelf><_>_^bm8e z7z}&y7(Wy$axC3OOYSG#SWuRX9ljG%bX;Zj%^9CWurrwT?EzXYNgh=6()+ksH@}*r z-}l6t`v58NFc&OjT}+-@0#c-aM800?nSLGh*wS`dP{|Km^8qLGCg2P160pQOe+EB-2Kht_Kx<`sB{g+%S- z;^X4nqwf&fiVJ$N8~lQzrNtz>Oqs>rjZRD?A-8|9cHkrbJhM+uX zqVvX)`zLezCH=T#cg=UlJ|N8wlbLPyEp7~WD3{&A{NiZS7uvagXSr~ttnam2qwO~q zWuiZ~>!7`G$u@I02-H5`%)#X=%Ok;)uqN{(G?g$4#rE+dMHrVdUfdpgf|uKXRH57O zX?w@8=j<#_xe^7|?fxqp5^!WYSS)=86Ed~8EJ{H zs1RZ=@SHV&pl?5E)pM5pTmeYL&s-!#W`~pFo+j9A;Lf|y>YJuY6!D%f zyW@Qc!g;A)T;JudW0}LdZ_yk?n$s7Y@@1&!PCOIMY+mZrM0Ry(Vy;azJ{M&#gPJVI zq_A{No8wQo`Vu^-BxxZ*v zK^nZ#G(QY%8#i5r-oZuwsO60t4vt+nY!@Inw`|)6jk7%Ys$=DDRCMf)OU4dcl9{3BZk2jF?pw*sOo-qB0?=hzZxRU8%FiHDw%ybmbqK)%!^h-*Vj`i^gk&?4n{V$ zJ8L=oPsK8I+v$MdAUkz3qYK6!%S_@GwD}x(=+lUOz#GFGivN@W zj@p~0VScH7ngqiw0}ybiAX9Cj<&HkQ;rLVug_RN+9-Hd2uUK~XjkZxNyS8aPem0PZ z(=h1pFiL4gxvX@<8Z}LdAkb_qO_kS@uD$gH9PLaEHyhl0+=wE{$|;@dkmcdR_)VY_ z_d^T!gFsg|yayUmwx1LhNM}!JEpcHZzCBFf{B6MNB4yoSEz}6+1Kxe z>f5=pCh}#k74F}Z#g)S;jM~+kP_v3|r6`b9)YSz1Xk${gbMReJ|8}hpiVMlX$gVO* zI@~W~xAyb;c>{4eq}I-PMdm#UXb+EKwn;O!t@idUw|(ZV@A~pg(2^ONpvH}D^;LBO z_U|+3Fx`>& znApJX+%8wv^KC1U{xfX)SwtBh%@05N4|k@kFW@54GFA$7B$&e=$t}14eOQ|kshWad z1pOP%3;>D{3%jX@v5c$(8&{!*0*m8pV+2-sSDHGaIyW@^RyhHrYf=YiUH7s}xTzoB zF#2SE2c#+sKs0?C0r;%CU0-sd*=9nPx4AjeTGIoXS+gZ;{QEb}NMhh>%GqM6MlBxbQQ&&C0i z+jTa%iL(T2G&lP4(V)?05_gmi#Z{l~*xwd#0`0Y!G7G46<@|0?yEtJR?y@dePjUXV zv0scabdF`FAvl%tBF;w5rcbsFcEUOcBUZAeUcj&6DvV;z0wV-)%A?b@>k9UBEophh z77qBC*aGIz&JV~OvPJe4=@|u_s*sl~W^wjA3hLQMOhIB(K6^cLRUm#*% zqk#U&#d^bXq&$d6dKylZ&7Miv*Mhq2ciD#!JTe}>(Q!s`WmcNdT5t55zYN1+U0rk) z9ksN$SAe^urh9EV)K7M~*bU9-8@5*Z%9Ys0uB>rIm*QIKHhqm%{ENb*7*aZ{bQMf~ zu25ID@jl$-M|B2ItGO*_oCF zXJ&g9Phca5(FiX4>7%VP)j#aaW1tb`_NJWa;OUvjDfOa(-&p2WUUS|$#@UM% z9T(9{AiSz4s4?4f{ieT;WyZt4JYP0j!@W5CJGj(Gtn=@ok9uB5v+j3C7G1#a{ZcCP zTDLu|NsfJnw;T{0fp*+Da!Blk&0o{oT-lqLmmVZ*cn}=_Rr~nSkn-bRZrIp0c5Rd? zU}DCToErZ%6T|Y@@{E?p6aqa{n^AAzskA%IZwKuTMKIGH<$-xN9M}eQFA#2BetHy- zVQCxsi}Y2=V~O4|qr4`#9g_jX#u0J7zjU`;w|$H zSXG!meNfJ>M^$UvZ%`#SxIdq(-g^a2u9PMjGt*pKH4KB2ghpZaZUC_vZ;6!odZq<~ zkOQ8st)|t4j(v$`PU9&hh=DD8Ee#0!%xYTQo$zP$2u=PpHyv-BRjBTM3_~f@H;R#l z_5G&3KB*C5ed&(%nS%C;RG&#!Z@V9;yVr@`S!W8jYb&N{Ad}o6v{a3663BDMYlcYp z>1m()Uls13;NEt*Jpj{4urm|c*Oh&|ZJQI>c)5w1D+K~JEV8L@DSKT7B>UoN&_rL< z=>(o8XrzG&cjFFcV)AAEtbvwTntk)a@o zPWP;DD8s=WIFuxJEnu#Gn`(tFVQt3JD?Cng4z_`crp$7!N63dYPwj*ioKPCI?YN!L z2{)dGm|6=kx3(*v?pCxbm$0P+i51*OxmjDtQ-lmg%8Zvx_Llt47rP&U)^6VxY%S<6 zHO7L1>PKPxeQfGcSM6`vwqc{}GL29mo85-Eg)XZv~78d?KtRT^q} ze3C?W$1s7Cr7!)l=vusmX8=`eA(?wV!=1Nl@E||4*z(x0{;GnJ3(j+Sk(vhgr*b_( z*TJq#h3CVKoA#?8%JWHjUieJk7z^Z^@VWnP6+LU*^z&3rC@JhP=5w4m*d(;1NHu@VGJr%>R6RJ-ZPjkUPbN2 zyK1uFCnvvd^t96LIuS^;1Q(i4)S!MK50jI>Q8eqjy5(PO{vo?gPJXj4-$N_ni0Zvk zr;*L#6cmG}E@jfS&L!R82FhE~iN{j~-Jp))lAKVbeH z?(U|4)>`W=oZkyVzW^W@#|eGdWw&R;Mwrf1JgI4!C#F*qyN@JBIZ!(I6Hh}pca(0Z zngg+Bj1|N(J8@~&K(C_i-Pvn_g>RTwayz@rG0qP^grI?VjbM@QFH zN27SKpJQS=*H3ELa9Zk=e9g-Z8@gV4JiMjiGGR_{_P5n{gMpfe+#p~WpDw{JsqpmPNDX)b*W&tJ7L(RaeO?nO;*CdWYREmEWO}t#prZbb@}btS%&OEa43c#RB-!fXO_g zmA)xo_1}Fbi|u1StUJg+M;E#TN3QM&UmjJLZkFfdB&K8(C~~ZRPbDywo_a1j^;pkk zZ{mqCV6g<8_~SqB5P#e#O*O?cF@?OhFj&efC`mg_)HIhhtcl^lQYaZ^j&Effp}&|rw4d?T+SAw^PHf~VH#4ftpMCsW_iC3GY)^YEx! zEtZ}#>fn9$+u#)t3b1@aW#;wj2XKq{V|uZaq_}&8wP}=N>0f}M4W$qb`K-=fF^{{8 z4=t+6|Kd*y1fKofkEgf-)m zHaEs6XvHJBmpL2Dyoep?o&43m!xC+YTn#8$u~{q2{WEu=8tF!9uibw!@VmC)O%7@` zcUcJ_g1i476~)d5{qj?gJupiZ-Dg0hHt&mH~c+p z%~*A`C3qX5O98RY%-KL5vYW>EBEh~;faf{yk(tFzgR4*}YjYQ&#S$-|FoWE*%EEHe z>D=0Mq<_YhK3wZgJlaSi^D8O5nyR#-8}#P+6(V+&4(|Q5oK&HOou0qesD_Rf5}9>= zF^LF+zcE`jAK-TbefvLnBkw&^OnEDB$cn2x#JrIYGg-DxrxOeUJ^PP^ z``bZNci*@4vfz!3rEh|p6y;I5SDQkgWDKNa%m|V5C}fjZU#>;rC$tdYH-sF=8^QfZ zej7(mX$DPT_bT34TTxyf{DezSzo>vwRKR@z#NfpMkWFjzOIUGm_x{!tZ~${VfEnWH z-%gdw(f(MR+CDlqA-|0&5dMf)Oop;cRBatq$K8+1I^4@wVyLqZOO+Cz)H zP)qZyU8tq2__Ux}dsNyk55U5>u_cr>4hZYLqK}@F5T@D9JA`^qfdc1N>@GUq8MwPBfo6HkN1le$J;CwDO$hLl(fVRH-V7j&mUfC=HwM{mn9lC=CwU%;R7M66 zN}0^ydH=Iq9QL%57kZT5j`Ctx{S(-{shC{W-B=rd$;go*PxkIKE)3q0U!l#~gGsG? z{WssiY8DpJb5unF23#IouAa4&1Stqk{`$;4$g;51*w{0B<3=BwZPk&|jUT>GWA!w~ zp#zzDAP-R)XQ8Ozc2DRy3KD?dQgJu^6dRsOww~&l+5nByN%0#8Q?fR@zqV^|JZE7k zQAtQiox+NuJNZ-&>Ezk%%eeUo#0U*9_t zE$tOynPWCy-X_o!R{1hIf;L~{-)ALop7y<7Zyl2_okV-kn)_}PKr*V!m901@WUVV1 z6o}--$UBsf42!#$bp;@2ALKV0&g0&*gu@4fewf#>p5P5_ZDkSHyQ(N)#!rGb+yq|C z(u9oM-%u-<0*ICPGnN_QJas0;AwzA^sMWkOneBP)j-$1jmeL9Ui<^ljHcgWy71+R{ zg**-!7{!!~I(WY6z#wPR>9{P4N6(ANLpq!Z2 zCC%gw_*BqJZ_&r`52I?lM*S9v@t9o>-YCY=RrqTgCzh8|FKWGt$x+t=*J*EOR4IHX z2O&R+9!E86-F_UHFmnQ3Y;KMt5W^m^BFggSE~VkJD4o(uWoA6n6NnEOAM={hAxW<( zWq6D>g!J*xn@@!Ui{+fh3+DTc@0su2k#M2*H09^acYip8REI2i!N9(^f@uuZNIWQ~ z<3%UYhPP1(LBVO}OINK=Q!u!lKY}@9i3B$SJ&L5{mwF1y4=K~HbTL$+>Hw{frYQ}r z;>N9nSPjRS<&l)v;jNj&&cLZAbdkY?#2k0oCUOFlf8Ki@n0`=N^j-Xs-KX=} z#|4L=$7pfp&(u|m*V`jfNidyKnyP1z3Z@DF>Bgca{0lwvUiUw8Nij0~cWH~b(}}<{ zj4;)BfjbuTGzCU!#X?+zU5EfSqmL_lwL2AvC?tire-^0af$Tu>W)yxS=SsM`Q_wY; zIa0=nWsY-4jZ}9wxc&E681@EtF!#)^lxgrl6zwW`p z$aD?3R*wNXePY^tibtCTJ9;(IaJ6{VuUCdjQ#BlYlG}M~l)2ev*0%DSdU2Qr8E;X@kgAXFSHp#Ng$F!Ju~_qeC*24WRF>{sonpg zMH%u_pZ|d>vBAz<;Ri4wNOL9Qd{1I45XgKRECHKT`P89?=D`8*vqZy(2%vw_zrXjJkQYpx_oH-S9CYZz@B9itF$8^pzYSBP0M|DEoT@8-9d|Fk{55C7&t1PLp z%rlJ0mh#e%ag~^X`lWP-!Nc4MLngTgad+DygLi7Lmei7U_saF~Krmtw`08%qsXWBf zI;=Vb8Cq6HGcSRJ?fq{ON?O>#ADI`RCAKovHH}ae649GR*LSzzg;-_+nu=*S{gA;n z=-s5d2&*`)a78DJ;kpDkXr$-z>sOEs^`}s~P+$Leong6)FQE~wN)1z{)@)$e?Ty_b z)mg-EXKb8ba%sreKzX<;OBb%c`l$KmS5&j+CsAhLqgW=(bOxVcp@@b)Az7vx%)*v~ zdx5(L^(V}y2laAEs#&bzxhsF-D}3y3kBN`I9hwDRSs2|<=(N_ojsOsB;zf({<^%kP zIeyViQm1=eBXb4Q9(+kH9f&>H24jPqIu%!YCF?90fcl5jK@vV~)^;S8o@r{%ofUTj zuVff;N0u@5WCB|r-K5)uQG|)x{k+sJFcF(NL2iPJsz;hX;lTv+>&vt2NBj%wP7t4G z-L8ydzR+-`2?EqE$Eyh`@|PlxdqkG+ z0X)sY?o{p7vj?^h)w3at4{<$d9jxc#{WKxAQ{rEQhzA$E1@f=QNjiu^u^T`2Ft>!Y zthB~5AMpT9cpHO=xZ(tN^-Nk41fg5>AU1pJqc!586Nu*_i(ev^&Vl5LMH#*{oSUg0 z{MY=05vrsDanBlR;RaS29Dr)lSkNTtiZqU1KNsK=1qu2Qj35Ps`E*}(v0J5W7zs|+ zWS8sX34vCc#f0j&DH3pIrr8R3CXNF%fh=41^&dR`e)Wbp_8LGv>B(~7vB5g0CdRoH z!~HCcb8qO1S^E2a%#!9kIGbj$2R`hyr5F?GGC!&E0v(65KF-}t73$$QF~IbWz?dMJ z(s;uQ4IN2*tw?e?_@e}OSt&F;xz zyW`xru-!_vyWo?K_I>6qv5|-P6AG^J*cP6WYq^?neMN(MC_ynwZvcBB3y;D6# zg$CJvfMq-g7p%3_!k#0(f>e&!hXLpNwtT5^H@TU|GoV9X*Vo>DOUziI>cMX_0EM3S z|IL%e1S1Uy`cEK?oC>5pv583E!UOAJM%iqF-FYsSqL?`ai>!6O+>6nmoa5R`e?ax& zdg-4aj?gQikQhpk3Zv|VvpcN6wy%#CVg@aO&>eb&O%g-Q{7ZahAz^76M!xKJ!lviCn$#<~-yO*mDDu>&4 zRbj$HJn*_$`WE>>kU~Xk8a~l1h=mxM`>#>IC;d<@d~O$h?lyZ0^bA3LO2}wp}!9 z&f;N^;ExfAA4m@dq7O|_;#1K2eOi-!C1$A=VVJAFD2t@JaPbuv?uo(0@opaH$9o`M zDby0n{ME*`!9_IYYnKY$Ki-N@F^Md{;o5VVoeoi~z;5?89 ze5;Rw4K{$|0QX4VxrvoRfxhp4W}|g~I0jOGa=E?VTkl8t_fLoKuhRRufS3`fgA?4j z92={iA?H1L1SjF1G}S;#$EZEjseYNAqiQ_9xcJDy)M zntcC zlC)pLye!(0#ERrfH<60fH~eC(8i7D^_vjzJSNC98`gyW}M^umkB_!L-Me~e0;@vkB zxr#Kdh+~4QcnL+~dZcU!YhWJ4bMu%no!Ph~%GmKPP{jN{{8pURHf=|4E(18D&jANwb6!nO?sHo*y0PtpSz!k{#WIH> z(yPHiL6c=UT+Y3Ols*4~Nzhouo}hcUpH;&-;K{0QV~wP`ij0{#aWwPAmip?^1_5;@ zKa~~dMHuJ0QLjq3?9&bB0g{GI)9cfT-1u_Lj)_roSKqh+51~3BfF!c7CT4u7nDzww z`NwvBRmLiNm0qXJvuITjws+R|08Sr>*~DYFax!_k;vufJ?|6xO9j`~hb5W!A$k~%_ z>E|0zF^%wsIXv*oWf^=tGW&%y5B8T#m|nk2Y|g0>b(93`^X2-8?B|hcPlAAT-vE{{ z?W!*7CqnCabu2-2STAkV`N!YtTzPgreCZ}$Eid|_aLZ;qk{_!eK!FNZIx#Gj=vH_y zL+}O4?oSapT2%%NY&QhJ9iP8{p z)j&Z5ta7pR)E=}(^fRTC#ABo<=pJSf&!>tlG(P}PlvaHFE$Y$x8^?83QM?1k>ily10BNv(4g*-Z`@LX+Q zZ~TDb9|GG(g^48O_Smkteo0=6umg4m!BBdJD4awr#joiy*kaSj`up)vl?8zMxi{Dl zijjS;xIHmE7(AV&4#RoNl0#+!0Ke!;aWhf}kY;6Ev^Edk_~)mF`~U*24LFg&1BZC2hd_6w0)DQ-u&;0|RSl;?@Lg0(h-CE2|@cztcvyx6re z`fKvFqnX!t+~c7B7^8Y=5|<4G{R;kKQ9Psi!l%8BpHPn30tQ=Bm*yiRGWYlI$h!Hor*Li5PVWx?u|=9gxDbM0Sz$cDcotm^ z1&hF^sHp7A1A8SSoC_MK1L+wcGUE^fR{`9gYKwR*Fr(4mL_OO6)>QkgD3a>6V_X7I zYODT9vsKgCmz&miV}nSxsc}i^y7_UP-N9wKHo^PLUfT1|K9Z1;@Kn4+Nj2b`_w!0Z zjRl=h7vZK-H)=?42Dm+2jMQmR&!WhyT%uf#U1hZ_k4j<4_x+4nNLIZ9?bvF4-xmw_ zBl}Pf3IP(61lz22b!|~biU@V!T`MJfeh0|$WWbhBlDQq-Kl^`=CV#zk*1}ruVaXcz z2r(?w^aJ$!3WcdK+3c#Xh6ljgN28^Wg=aGH1yFdNs+mYMt?wPqJQfkXin!%f#x_GP z41zK zyS@=i-=%puuVR863kNZ$daj6r-|!r6Bd`$?H^JchTShLe+hU1l1KS&T;J$m))?*Xv zy1Y*s3$UJP7CGVS!auU3cX6fv#*4bDeJcERl;i-9ALPgQ6MYKq;7=jmnepgzn8!|B zs;_b!Zc9^!QL#)HE`3}`0)x(7N&CZ>&PdYXQsB(G%L1Cl72xhgrNO!>(m+|`QROA9 zUj}aRZm{dzh_#1#rF$-o*pAZ@dg*tZF6Pk|J5G!8?c4dKG!;uXz@a#d>eOS2Rm|;7 ztCip%~C(Ra}Pu^SYoh^!^U-ki|~ z{2awJ^Bj;EzAUa&MKf2RBRnyH8pWVT_u+lQA_Klk{67P+{U!iaqpwMA=c#CY2kuF&*szEtA2Sh_;IlWALtsKFG(!0%LxXs=;!r-n0= z;UKANAuJo&UsAIDS2ssa(W-%ZGnEfDR+TIe3>A_ju=}a}=@fBu`V;5yv=>KnItAyV z+!W;H{L<8JY!pZxqlrf3l6-mH{DxF_&@lxuJPvhLoyV@h^rKvTJ6|bfQe7HeL}-sM zhx5pqkn*)qVM6N;FGqEHf=krTlKUn5rD)COf$35OTqWekWbV6RgGdwI93<98+PGLb6a2jA%FWNqNTCO--4atMy!h)7M#W_ z_#7KSGj?2*7J||X7>y2=V#hC%29!YYa^E95nByAOk7n?m^G+M5m!o}-#QlkvZ2A~T zwsD$(Hprf|+n~Vt2TDBF+x0-%)@MyQ?>cNZ{A}{x%9*<`Jjjc>0dJO!8trC@+UL&c90~1{TJjL zzj2zD$i682t=2E%A-$5haR)B7#R>Rlk^iQ;hrIh&FkF)*rK$49n(|UzuUiNO%%}l@ z!*>Jh-2lDQYGJ8=%Y`pplIo(;sP2Wnr%I`-WcX5X>h&yNX;vn|A4B~QZ=uICx?Ig? zk>E>nplHYJH2Cho;~+<3^T+JjA_cH{UH?+TSDuz2wHOH+%?WaTMVT|9+6qt8*n{1(rK=lIYo- zJt&M1(^rcCxzjF{j-x9?89Kk6IsHQ(i5C*0nl+d9J<1;$_^)U_YX{|%-!Gc9Lat_FjIgA0NsgJ2Mo-g+;SG2CQsNtvDKykK3Ekz$*$0>DEK(B=ak%{wBnG z7}i$alAwxMks`dA?+FSiz7y|^yYVGMl%lP^eV8JF?JFl#Tx90Zb972pfs}~4>^>E? zv_6Dk88&lVc13wC9itFLH~=>b_cgiFidy*v2#93v0yldHjP`FqCE!g}QjNihhxkGK zk*px<4%}!S^q?1bYWAW~RE#5dUOb_|C=jL4`+t}k>Bs3jZ5HskRm5p#kTmAQr}34s zSS3`Pi!_p1Ie>oPQITPv0kl5w_WAS4u3=Pyi0>yr^ZhyyKlsA%u;<3HT_T3K=Cs-< z!*jlP94CK-I2G&&e?aBCVGOkIHI=!Vy4YBpQTW$WKxJYujF+|*@d=pjR{J6!6`keE z{zy}b@bYwUmp%M%$g|o-cP!9BS9tLjbl|=@Z)*}TJAZ5B853qFq!!t7h5|!-eM!#md=h2{HUW|u`O_qPejE)X+?iTul(b4)uLC%fd{`UwegSzyc z5zs5V>g%`V`{z7wR+zVzB|;QIDbuEn-P2UpDAY+4-yrW+5-`I~VRR*FB^=qNf~z zsJ7kdiyf>7m2ilgDY?DGWdTaVHB{|aAmPQ8Vr%0Xz0ng5J?kRNBD*UDR{B~NQZowX z-IS13_9XzPzh-i%@<&fMB-Q0&Iuk4nks!SZLIEpZO&}qbi$~n>F6_Xg>Whc|H&lI$ z;<;|Z_AltYq3S1G7?m0+dr>y@9HHt&u_b7i^xh*w{3sxn@Kh{R>lWs72t9LnP3o5g zyP|k^5J{}MxMfqlILXe(%hzRA$9n!7zTW}oDtLxKKG1N?QY?>qGJ5>9H&1huIP0)U zyLmH8j^-Zg?Gg1MehWGZsrTUK79n0DjN>rCZgyAHfqGi}Ql!D-+w1}1`wn_gSfYa_ z)YX3j&p?`Z1?XFFUDR=!gh#&bZ(s3!`GVjnJx=nty-&Ykww{PH>%rIXzOCr8dS<$U z-bCEjXO}1n+26@KppD&I&(_rxYG*9TXba~#{!f0wDdg~zX|PPM9NIAeTq<_u2^gLq z8uSXT|2d@HVh%%zt~XfYOLHTp$QR@9#jxiiXJZrN}wfV%%+3o<>>kKXz2I29!;zJv%kB0@0gwU@V~Uy z;~@mo^R7D%H^r9Vn-+radpG*5EimZ+O7Hus>fBhZorr6;^`T9u+O0ZMME{P4^H)8S zSAnB$30W9RYSHq7ssDNT_if*L6c=V-9RW51{n);x=*RRis-Ak^yc(&)4Ez&<*}~CW z(7}R%1doSS_8@`?eFV%fa@E&Pe#|sKtcvKXFp=-NvY{oqik`7z?hYBQ^?OZEpWiY) z7xwhib2h&mo`GOkb1Okfv9T+H>xnn^C0FyvjSWkV<~O)VvB>dmrLpuXI9I5=A}_Wp zVhh$)C>J_7LW8-KF4*Dd{Jjs-;Z%M{Yj&~M*b+IPkGg(m)U_`_g>b`h`hA$5a!0($ zZ(?hO>&1z)SW zk+g!J!(}z1ZdXWbdB4BHd*%C2*V3tAuzE&`_1##5@#`m@{OV}1P<-RR*ref3bA<`(_-2;nB3UPObCPyJ9I54woa+X-7f2f!1kC6QpV;7r#}rE5}|Pvp0#^37E! za;TqMD%vj7DV^_o*K;b&d9~vqQ!l4Mr_u`I65-Op!(!E2u<>?aH6q;-bJcXhM)E|N zda)cN-0};LL^Uw}9i#@)v!@_vu>lFD;8OU9JE;rigO_PZnrxS82kDN}WR)XUTY(cFPmo$vNX=o& zYE(ZC&JCuIGP+Qo)1plxktv`pWDl8>QORKc1sqJcD@P!9%zlgiZp(O=N=5_ZE*%m=&M)7=n^G7_n5WZt zFX&NNm#doz%|Gj3)Pz~-2B>UPDT(`K`aPVz{!=M$ph55&Fob;!)kMb^>$Y` z%*hL&&fyG>Gu@~0R?vyp<|=EomV$+vwHHMwK9WT4tnB6v!yU1j*M;>D zOHSTU5+M~ie`D!y1d2Ry?zLdam0*VU@nN_SA5O*7RI!`AOnPDqXmA4vq7)P9Zv>Zo z*#(9B9njV3&@>ViY*Ql#Uc4ONUl)4B`jXktJ8&&Kn3qD6`{j|a>jOhfA*poz%9_SQ zv8V_ub^Cv!oewRbvhM2b&WAQXOA&f7NClVpbt40EXIZ&^#{9xqWk_jpO_JSqb6nQI_@|Ej@WH4q0q z5E$^ff!AepDf&GNx&m@Si*f5mnQ)Y)yg-Vmuvd8n| z{?)K?pUb+jd->JaHKZNkB$;PQIlr}qtS0p<>vB6&fBl28Ik$v8Xzk|x%y*>ifAR}y<9wV@lwoA>` zmquBG5VIj!*y0|F+Gge7ZBr^P+P8k8mnw&jGagP$?xW3QAD|c2tPbU;mKaKF8=q|{ zP45JJd|+`pXAiFyZIysD^i8qwN!N&kQs8?sfu%Y5tzZouf*u&RW{^V=VwpP-b=5Py zlK%`f(kT+-lNq-|euz;+V;RDW*%wI*nL4h5Y5cM76R31PBF^yGoph^@xI*5|h7K)i zXb0has^UC!C|oNCYn~z0()z>UJy7#i3mA5+da*nEA+4b`*W`Z2JalvGOIS4Fx-NHU zGW!#To~o$H9ib_LO+DkzQT5s8)|Y+5JC*y}Ciua5!TofO1fJwE7?ZE*eN_(GP$bo?<eoKfC- z_2{bVcAOFlekII2W@Q(23NB|d zK*4c_k&R8IOoUtZvmc#<14Id$1H)MZeQ*<>KRa|N=d*$1?B{;EqCvHe!Vpx7U28+M zIE}MWM61c*8eaK9OTe{I8gcTwO@iS{cN4#K|1bN7dB1%U7v7_rQS zve07mF3)xp*8Awr!*n>}y>9tAbt>*?MsOveNx9*jV*52V^d%+rX#4Tp% z^x$xLGR!BDuq=xKNe7Hp;~1N678O`b>~+AirjdpER38CmHPa$=BfePo!-bGU~ z1Po{M`nRd?zst4LgFR(rRxwo?-9#y3{nw|_GCZ>2VCXhX1KwjSU9C-m6u2_0YqA?# z2XpTC3zP&0q+8VJVC9m!Y)MV_BZRNb}* zYGQWuG-lAd$-m|+v^t$Gg`$R$*SceEb}w6FPRJRSJF1*>43pXS!J}kux0>u`$>q}e zcLqww7_C1kMOQz01&`f|uVAC-#ZMn$$(fJPA0mt6GQ2lIaA& zfs2Q7;0|m1EE`$G{7Q~>FLytkE7)GJp6$T;@F2J9F@T=C5QeD@Uo~W)BM;xmv60l{ zOa;LS?(xUXtO|dY_41h9+pp4<&fSO zi3{TWfQYWM2<;U$*>{s!;w0C)Ie!qO2n_l?a7$*tO6Cp>KS4eXsQ;%MaT{WMo}Q)t zL`Bk?BJSaPHSK@|I{B?WJhoI_p`B+lF!YaCv@}d0{SuPcnt&)!2V|LVDQEPvlvlfkXEKOaBV;7BO7< zuD)Cp{DOP-P|?@aap<5Pr`6>U9?zV;1$b`UR0K~=ZX1KR_PbQ)`o2CxX*rhGk0(XP z3wFJv9yM7Y4CXSmVITj-rF~|bOcbeUgl&tIN1LCa=kN73hKr`NGu;agwC81e4u%%; zJ*(zpu9{7#KGx<2xLtDs?Qf z37&Hxa(DXrQsPaqZ!vF2`d!dPla%9uUE(Dn6enYq?FH7c`^YTM?%{Qn;Cffe;0tKo z@g(Zdbl53zjSEMbk$A&7g>`*mg2IP5^~w&XD>W@+nFu@)>QTs@K6_2WDBG*!Yq1Xh zy7m1jvt)~7D4%qVHvuOZTMBFc5WHR!7 zPv+BP)yt`axIQGj?$uJ(g-iXTo5M~~AMf3Z3GnWuj$J&;cQM`JZHFGN2>bU0v#N0w z`uFkG9s7rj@Lk-Zf3LhCG=j< z-|=A3k9PbwoO{Bsp6~FsW5+{2(b3;AZ)Ymn%HL72ZrzwR&``eHy^kq6I6mL3XWqLZ zr$zzva(ci*hq=%GQ$VTLm@uK#(F}2Jcs)p3vz^yc=K6q~(s#^9QK2ZkM$S+%9|eQx z%pf{W%ABQ}iAVcJpOme}4(uTDT0iJ;TnYXOkMEVxTWX9#*$;7DA!*?`l3_UTcT0X* zMC$2ZdZb3`1azR%kot)!9pV)X?)H3v&4cRgu6jGS-Xi)NK5xN)ZU11EJJ3NRh4u%7 zlQaJ%W2ea-H>TK)Z`Vqu%S}^gNi3t|lVbdYQS$)x;zZRxuBB{WP*14nbpB#X*>2qG zUpV6ZlK9s(^gfaYcY#hdK)u~tw9-AtVvC3WfW*WF@RRl%>9ZZ+8II@jEypu=jvvo8 zhZV=O*Z*NW)IVNCg{Q0kemmm!8FBjb@<>bB&-klh{TPDAdG79&Y!iZJYl{eav_10( zDx@qRsMjYwjvo130Y`_?gm6@3*eATMG#t&2c=sy#{|)0pBpvAC!l9!DESB zWw5mMOT*G?z3V`KA8bW`1DHKRZW+kB`JJ?(n)rm5oet2GGtiXL)FtM>@sj)_kkU)B zos0gPW%VnCxB0#!9xscy5=0lbAP!US?kC-bw9S67ac>y?6Uoetc=>H#qmdZC4e%t_ z9)G~+t$*o&(H;54tQ~&HFC^E}N{C_Od6A2jvOBNzQzu?>H$!vZZVadDy(5cLb)P-^ zAH3w=#f5pANqx3CR+c++HPzpz&hNla7NYyLlV>;+IpMo;Y8@PDf*yC6>rb|VAJ}dDD5ReUZIX>2i62ZO z_(uHTutSUV^9dOa9yP@og@H)YESA;<46g&a_D@xfU?9Y8m*<5ZzNc;IW*kbZe zrxo@~@s2JxZYHGnLsDQaIy}G6-@5X!po#T4^GER+cuf7Lt@v&^EIS` z<|^!co5_%J()4KoN*sVGnoRtB!7R=9-n7};&Bq%S+Pi=9kG7|JmQ3PRzV8>0_;#Nh zZ8X?=r}6tD+}qm-<-oku{2ys&)Q`8*`djd17^z2oMB{k-dBdV@JG||HOe;DdQ^=2t z{IYGk|3Z+T0cj)1kGT*T#yQa~H=@hsFg4RJ#W#;VqDYL}OXvI_g1x0|F+sXae8hEM zRKSq6JTi>?7_KLqxP0x-+A4HAbf`{X;qxx(}mwp@Qiyc+NomfZhwnTfJ|6 zZ+Kq~*;-mIXDS!1@sEfta(m(aF5%v2uy4^?Z z8oQ2V1>n>7R0Jg{hmw;^uSrH-$ycW| zy|>J7*r1HsU7ypwkIN}(n%rG(Lzv;lNnNiL(+HB}+$q}O_PD)vAu zeKigtme=GL7->E?G63md^)LGo%d>bT?msL5KHF{>&lUFd@( zmci8?V#iz-^)s1BSE?=mlG?+T9sP)?_o|YJMIxrUse>ONv2@<5L8#JoD%RT%{i;|W zY@-TmsT%WM7UW|3<3`f&;q!tokR!8rza#H;YH=*{1sK4KH+fNzUutRU?^*mXyFE1t zWXaA4UFt8GU7h+x61S;P;0-Mcz8351>@Nc<0|< zCV)q|S30)0{*GdMCv$L~!EeR~)xB7an3Qas-Y-&r5Iwl6r4)lds#7zif{DXjcvz9c9l$fwgPJ21$P=kZ z%G)b+7C!i8xxSzNRWcxObAB4Kpk{Y2NUKN3lP<%uxBi~dy2qWtCB)+W;3dk^%7I7? zB#jGk=WU)UzoN&RJq`JVHzVnMaefu_JriV93Q4x99tf= zVe{if8;o(}-Dji`;sNw!wh|F~Of%>on{!cHbDWHDhrUR_3w?jHkJujN;xmUO8yB|) zc&oyAe1n(Ar@MJbK7WXtTsJ5OdbRvprh_xL*w(HCa0h{4g4aytf>+J?m-U{SE!0o) z$&cd+xg<1>^EFeG<2{1IsNKEz3y65~Vt4qdN^Q0%c+mz>_AQE~o#@1dMk`P-#7YvK0{e%e$+kNPq%0S!v) zaZrbRUrBx6W3(MmCjFwnFZS#i?#*9^^a~#0##hB@S@{!6h$&qf%U%jPdj8h5EwilI zebX9AgG%7gQWv0=gYUuKj70t108& zT5)JFh&w-q?|Ul%D{$X@!fa?P-FfAXP(!45AphLQ__R7`M4`MsQOCv4_*C{mZEl3? zCZYXU#TVSx_>>zWF$?L)l6j$}I{SioKiSz3`6_l{XZ|1ED>j(bm)KxVa09qx5@WRc zUFY+#ak8=Cxfq}em;E*2GM{vUKKwobE9^d8RjTNZSo%cKAaN5KQq2&Kc{%|} zD1~UoLXE#Y{sD(Y+?Lf=y3RP-MUB!6r9=?nMi1$fyS}SjNhCwU@k0ef;NQci;8pBj)fHz#r^GHK10a7VR$LV8y?w0r&wI6A0UyzzC%B)F0x=*Qa_d=w z_la0EVZE2o7|4BPSf2noe3?{<(QYnC(t4oh1DdX>w`lR7;h&~q5Gkxq_Ld}E;B#`s z(j!zGtEL~hO?Q6R)^!5wl%$Uv5Zr8{ts4GJTyq5qUpcAlGr!=e=Lwwc8`2+n#F(5H z5K-`IF-e{Oc6BU$BTw8QdK74P@GNQBlU(x$%%O1yfYP85P7SVwkfzL*31;jUR(}yK8o68-$6t`w2g$ z8BZwEZ3fX^AYl7>wbLf9qahpTBw**qIi9QPT>t*(5vSQcBwM}XG$6V54xxbJJTmUHLt?6&BawUs(3%CVu zjk?^bUxyeso2MbhvDm^*$YW=5>5HBVmlE-uWtmN8s%WmUFWU^zw9`n2dMl zHE+UL?fHj4qp8K;mum6>(W)buNmZVpfl>VS}Q1rk|9l2H}%DT^1{7*^5k0~qthq*Qq<&`hyGizegoo5T;ztn zIu!(iDw?>`e;x19<0WFbS91q2y`fEXb zHNV^s75e14XE5i!(;LDeva(2f}bO4-a6bI?fyCi)zlJ? zn3@U3!30N&^UTmGWU=&R;CAuQfnRXrPZGf00c6&?(?|C6jQ=B45~sKK?$$% zr$0dq9OmR(#Sz*3a2n&2Okhjd!~BH`IscO7$?ELT`?)U;G1Xh`)YRILf=b#|{9&*c z7X^N@MLZ!u<*3ZTo!AS?QP8=ED#Rjnpw2vgi60Q7965X*!T4C=HQCo|vz&qX;wa9^ z`i4Fzh4*NFhqvjt5xJ?7Eo1pG6nQR62#}~i;jvP05rM-z4PHm?4o;S3-8r=*lJ#K< zur$0)M-Dv(p#jf0lUftG<0{uRD>@*ozNQ7c*FRV6%rIm{xf$5=;8HlhnyR}lZu|g- zqIGkkzPcy;X(W<=HQBcfprESqmDxF#YX4cp2K$@om@IczojccNPlRu=Gw5F4bfgEj z_&recdY*>%&$PU8pVVZGFFIO(3g?rj#>1YIStJt&m&YG#LRC*XwX4x3x zGzsGohW-4sQ@y{=&i-!T%Z^|<2PkQ<9YCYqKkZPdp>uv7GP{OA`wdaWiV**$`*vUo*_wsUZID?8eo@>{P<;Hplh5 z@uCNcVBe$qc8RR3{xv6#^{|ON2`42KtXN5 z&&GKogG|+HDp}(W-0evtSY{KT4DsdQqZN0)WE>vG)37bJ)%RNFzaiShUN( zy|w$3lm!Ib_dwP8Ar*np^)Sg$2a#FC9x zlL-$lGfXkM7wM`J)aykVE(f@y0XAo~t_R<@D`mKfwBQT!)N=r3VZ;(eTOD z`W%K9Ry1zzLA=tb94g|DXO~ayBvqDF%DU$nXyBfHr&Nb9TXLYEBHI#;ZG_I=MfYMizD&Eu zL5@)08wLdB}-yZK<7fo8186)#y6}ui-#P8_SA1!fa-a zHOj3P-VyyGvaYk!6?M8t7LSK~oi)f^lZ(Shk*^F@abRDYea=!cx>l3|KS4~0CfEfm zh-&;v-NxNPplG7G^Fg+DvEC-e4ce5GtpYyyfy1cIH)7XuN@M&FDYhCP^?$y%qKwT> z$}>ya)`4BRbirEB2Cc`NAlJ$$7* zhjPJBt>HN9U;mcMv?!=&_+h`3wVnC}&*Prr-t4>j!M3{OJ|9vNdD5SG){AdiA7MYP zAXJ;1P#(xlCi`)vo67>AUjK&gHIkW6gI1pI|IHZdq8|r+ZMGOUvE6n~PeFe+#=}E% z!PU_RbHP>X0vB8X=yJEo5$9uLW9bU+-RWpfnt>g-De9Bi7oh&+;P<>s1X{cTZ5;Yc zqs!?Cl>f)so4`j^WPShX&>g}OJ19|97=s2U$Rdmz5s1a^gMidt`F1U=#*sZ86 zjh!ex*T#&yGvhYS!i?iQjyedgVM_ov5EpPG;C8Q#3!@VW2zkH1s@t80d7kHe|9?Io z()ZS_<QtrIP@kCxW)NhwrQ-5oUJ|?uE%+f!QcUpTt|C1PzE@q+?}k(ArF z7cr1L6}xpbJ40@F^;w!BXDnj9dMt8{;(vB{|#DQ`y1d>m=+wV zAGDMV9SqpMc+a0TQ`wiROAlLi4olK+C(?e0oVtFkQ0cLG7df@q@k(#gg!jH2o&Cks|ImwjCYfG%V?nHY`21b; z$lmcL>z364x#pD*p>eby(HRIMs!-KJ!wf`(m29X;s4Dmls-Um9@FKQcPOUtayVV?O z_q9Qt&q}SRPJBLRlPk-s+gs(V8=kN}wZ3-(zMu!ZACsF2g1Mf>;u-AGsukZfkw2L^rZ%Qz+W51_#@gP>$c-|(FTkLRcc%SyBfNS-_ONSKuR z2G-b*C(Mbs>J_+$97^qU8xpZwW~Y&#BMHKB=Fl8{LSdYuDRzUa*||^6DvmN$@SzSj z+%3hy_*!q6lxmYlFw}qCd8)LunU{7rnoaQIVb5}`h! zfcvo;ehE~7Ic89};eH-Xj~?S;PE5UdkLJ{yhNH|(1pS`-C}hKYR?xyt?%lkI;W+#< z@JE_G1KmkW5FTgjAOB?)R)3t9W-cW_A(TZYnGM#(2FPjCjx7Yv|Ivho!8+ zBW}&i%kt}!(=$f|IBr4H+$U3;W%lPfZO+6hdHxzOPfTUJg;ay#^_8%yNdM`xwye zF+`J6o8%%fk3yV&ni<9aU|L=3bF@uDeT_YgwSc(twOQghOye6~I0=?Ij?llC5R70p z;koZ(1m|(P$!F2jE{!>clY_?u;_s3(kmxuRIwnJ+<6PqHiL_8j8dk+$tW9l2wWS>z zK$6Y$xj>{v+Z-qn;&Rgraz>XDPL|JSw|6y^qZNB zlG_fA&6IGSJ%L-R>(c%ArTJcY;R9~BR}y{-B|-L2QjxjSui+CCq(XndFIOzFs#%2C83LGiLC+O~7!5BkXqgXT7jKa)J>P*!K>#v8!?w3^fxwW;s5j7Yp0@NSo) zlcj%VY!o?_pug~dNJ`AWJ?3nowbdN*+W~HppOkY~uaqDYhqe-6j6!9?WVsI>%qFrp z(WR+=-V@{!{n#mSG=M;-sqNxL*rLPmM!OyeH`IU*_jcS9EbsLXCcjHjowC$On zC!1iqQE{pbe{X!nPdwJtDHt?|I*f)a(UFB68R9)hUfR`aqQianVT}Mi)64#VWqLQA zEZ&tipHuexQ|xZsH&mW{wcPuH-%Ihw7;q}XYmc7+I2%|uk&zXR7Wi+~V3YNJL3$QH zYG691Thm&msmWv{`sOk44@0lwblG#vb+UW?&T#nJ!Q8L7+8y>P^kITXXg5WH0LA{9 z?Owa37e$a8aO1y=3bGO8lHw=vKH%ZPA1p74jc!;qt37y_S`Qt18Y@!vaUB!v<;foIb(rps)8sHww15UC5DKU?$HFkOH z3^w6gX4a1bX8JzbfZjkESsT6(hw|Bzr_dt?E~dQqF)tePsRmazzup})-1gnq6{mS0 zLKsGvu=53h??b}|*Ox|8T-n#eDSj7oJ&=>1Fv07VA*KyuL-|cy-mv z_%|L$96H@6i2}B}e?z{0o7^%3vwDv&VgAk^D%$7{bJpd@Tr7eia%8h{ZNSR;HawFt zIge#qmxfzS%1JWHr_gXE3?WHl>71q~>9*UbjK^~KV&X6vJLixfY&g|C@`FgCZH`n@ zv)LRvR4>233r)$W=2XxR^Nphb$P~*`q*sM`uBi|V)MRkZ~4mRUfmpZOi`sO{aXz>*1 z%rx-{q;C@PMmzDG?Q^xhLfMS`M(f>HcYnk%91Cd^Ut*QbiT#bT$;Zrp`RkdN5&&r= z`)P0{Np?Cjj`scUsE{>+%RLa^6r9a5J%P?Qu zDFqfbt(bex*mnr-CjDo+vA#Y+i`Ip9#-4gC5O$0I)#yVOb8gQEsW8a6 z1n@M8Hn|7jlWQ12pkIyww6wwiI1}gZ5On8QoH5i%;XGgohV|r5xZh;z3EzoZ4155N z6;Q*;oq_l*;g^qapV>FZ3a-TFT0X&S0bwhK$GGh*=ol1nvlm_vv2?~xkiPU2s^C1z zL=kcvQ%?u9d(M5LU8DUy(k$BDm>JMDUdheqbk7NpgAxEDvs7K`m>gI61tk#p_kEIM zA6Q&jOVM*}nE zfy^fDh%XI>8$vwG=x)rW#k{!B{HcpC{6I}U&cU*e^ION|a6S>*HH#I_|KM>2N>=jV z-N7H}3z&0Z4R(HlOeI0#mVb$lZ*W`g5ycY$Z-d(lLNb?R+WwlEXfdZ*_mENDmzkOP zJas5-1FJAkCy%Aij|2MNP)uJWs4w9p3 zR6-j826PQZ^~Lu9+NIsdq5>>G?h001B4Q-V3?rE3E3&sUzVa`H)y$oS&wyY-VXPeX zcNprK(~o;l6g{Hk8`kAEdPJj)Q+Gr+{_0*I z`%xlR)&f2NP)mHOf)RB0kpm>vAO(C#X1NR|m}qS0*VF!Nmj2{qdamsRSfRFaRh#<` zhlL?PGiOYD=zbE9EH^gSaP2@_F_$Rg_lac%xz&AqF$)r4&^bkjJW_*%jj*SjqsQQlcW*O3AW)(mw)4nur0pyaU6=ZT{hWy~ zk!FR;(3%6U*--`Yaf=};&X@E-C0cCue`?UU72OBj&FQIq@*eKqYML~hC8DXr26c9B z>}2(c+~A$SKWL|q+mKtePOu_YE}I?Bd_hd4Jq$bBtQkXJMz!J&1KXEPPXxW%3}fi@ zh*pjCs3+8bW2f$e+~mFvuS2q%uEl#(x>~-KrvNTrHOH>vXaF=t5Nzr+L5vOmXjEfH7xv z;z!U{9TU_U#b9u7>X2AdqGMdlk?*O0gvxi&(W0(_+T{eoouqm0Ij_AZ%CvUb1S4bi zL~qp4vD4By#X81JXMxI|$+(#z{0;vpJzk{mT|_n}TBCe-vCp1zleSbgx%(r$jIkUn z9l<98q>4ns4WBU5=70dfN6Yax<6C6z$*`~T0w&+U4WeHYIT|;V*%di$VH^<~WktDP{bRaLb4wON zS=eHuImUM&c@$5o+U(xrVGJc{o;B*gs?`P-?Ug@oa8?R0EY&%gpQy9j=Y&nLQ!S~g zBXci>pf|#gz(prrkjr&ryB=m}RlbEMivmQZBFf``U9$LQ&>VbLXqJlR)_$N1P&?eY zP_giPllk3RmpE3o~wfoM0Ly4frn#qk)QoO;mY}iTUMR5}Mw=fBA z3MgmLvON>ymjkP}oj>ZqWoQT4N}55MmuSN$$G|0hVEUCi`Mlhl&ZpMU*T-1~4O>^E z3RAkMdO8X^CpD?fbGj6>?#_r_7 zyNZV0i=Q#_^(7QnYllK?Oj84Xgp@-m&h&mr-y<`hWRn^ub1Iyl))%XIs;rRj9F0haIz|`Ui=J9TZ}3Rg07ZzGNg&b^WS@OufEa*ZMVx@h{I6uQCFVV%5>DB? zF~wq;_u?4aOkB+>swP8AsG0{l7OL=}m=_w(6KZ?q1w?wV?Er5riFN6c{h1c{PcAN} zQh+rMPbI^s8klbbO~ATH-&#Z4j!6ciGdV^_-&RYIVf6wNd>7{%c;f1ZCpOT_~ben+`{^;{voAdiz z;Aip9fyD9-AVEVt$j@0DTfb!cfi;AM!3t1lqG7?CWFGC|ZAE}K5ii8fL#_l)m)&wb z;i5N?o`diCgM`le{+i_@&vQ2`mqvHJ@1^$}cyBWQY&;O$p=rT=mxH z`#P})l4CChMvh@=>}~stMVIc&$VMn;B45oX`KOeq|LTS=AASg=dh>dA>67`jBMFLvMM zLo_wMG;^yRhofOZjKeFqMRMBGJJC#l1h5y_^9GEf`uoTS^cP@W6WjS0U+Jo&GJ4<4 zyHNeBAn9ThYfXk~!nBRRjcP%+*m(;Alfn~-Nw&$o1aKsGhsW_gWgilMf#;Q-Xq#@8 zg&K>@qTz?L4%fYWC^d!dw@g3@gy`P`vM=1I=enm<(Q(7A*WX^kmmD1aU8J7-M+zWD z1!wS{qWtsJ$d|3|c(O`mXDC*%SYvO~jMKlEyz6g7K!1YNf%{b)PKG~pt@p7HS<9tg zDb$>xM%(Hf)2hLD4Qx!%14L3Z-V+x*L|5lwd zkgG1WrqkIa4_jwxscc*?sHkmuV5dq;^SLH}@gvR_X1tC#O#!;M*rP>C?HA zCC2@X7Oq<2E760&IsSmdl2hQE*so^b+Gzc%+H~(#bxxoz#nQPC8RHvqSS_xr`Z(Ug zFj>N4Du4d>ocuPl2K&zH%Qp5$dFoX|UGB_~*^X!VImtLBzmT94FYAwcp*|r7i}fao zrW4U6pLdHa68CHTpe}q0fnnX%X5zJF+xF!|wEjC#qGQqpZa*rDuwVltrjiJi_SToi z59a*cj~=9m9KdLJ0CBsVNN>w`_BiiB%)i&8sdvm!42B~)wZ$$TSyGu5m=7|ZzmkeE z`R4FBq2NU4$hKOi`-$mbo0fm&>^R~gNw$$6WUln{xz`8HxH04FoEunjZ*{LjbqAK?)4|Ds^-De}4lGLt_aC{Go7TfG_i1=5{&oakKgK@7%mk}LBLi7{ zOS6uhQ(ON|ol~&}NfZxf>LkY$lv9FfT%_vUihl8LjS#9iwkrO4lzr}ZnG;OT_aj{E z*q_;|*|GcRW#>1P3i*6AJ{>%|>V)32CL0==RR5Lx3Fck#JEsV`bqTv$o9av4vvSQy z+3@+uS!_+Kewt7Hm6SZ8cOdg?qc2cz=63qeSpHL=8sD0|uOyewaTAGFNaIdIbyJwC z0ceB3CgH0$_|ioWIebMezSe`Njg&k#uyW)wipAd&#tylvVyHJk#A=Xls>yiS{_QcI zl}7k7e-S`B_vYN(8##&DZUHY;J$Qng#g#a|72z3A`D7pe}vn(pmymG6m1pG}zm&TZ;&eslg@2TT9jX{oYn_D$@y(+R&NHga<{1no<}xk+~-An24?SO!;^|K zulm|YrLlX$y53EGf)ggae^rBmE%Fd?vDwAx;5f!VoW6r(8VbLBCQ-U=JeS&(YbrJ4 znjN27B6jaNK6&)a`ZxYIej4ReH?Y;cuT$BXrj z{aUMYRFv)FvUJ~s$SJ3dyL45u9r^pV8ll> zJ%a|>z5aqj?W&M3iEU_;=5g@0^t=Mpkde(xyl$);UeU@`tJHr>dG_hK+2~lF`@W1H z(pOrvit~p8VPW-Y!;kD3bn@NA_sfn!RI=k;BRiDYIkh+H<}7sY#^%}AM4dh(*`I`b6iuR^4pChe?XjOnznC-A}<%odfj|b+JAEo_i5rGDNdI z)7Itp8rO)bS;cc6Xq{jrU>1I(tJ?LWbT?l=Kgc#hCh6yWcx&qFi}<3{?xSr#4!8ZN z)cKk2QK!Ev(EDV5>dQA^6PW#2&v(At*nHDB*_N~N8h^N|Yl`PA&3vA({xq3535!4o zrn2T$GL_*sVJ|U4%VyvBaMa0qZudO{x#|R&FU9Tymul|taiTtw7_X8{njB3{E;TL? zJoM8;G#RaAPEDqyt&)R(@!?qB)Zo9HzKrzdLUYmN`ZN{ADjQ!1UE#HRymLIeTc+vcMR2;4U0d_P3M|m`! z%-*^Bqo`Zas*hurVZ|6g=inG4<6p|RY4a0?V|;8-A(PLqFEI&_QRp}-w2rE!zisXlIK-A=YN^1W3UUlSjd9m9)T$&@Y`a1}-c zRA6Z}tWDlHPc~LGtmfDW2CwdG<7HfmjgqOmykN!%LQ;6@9`ml8rI1-LYF6xzX(Bo# z^v|Jmp=wF^Vc9w|!An_BYaA*G2^EJMDYUD5xuD9@kJi7`d9UhBg>F!BSd1o#Sb6!HVK8{!`~1QtR}taD!02;Y8|e$o=>44LcHbx*pF_E`NAi%VjiK;`xx$ z8hUa_F~p*&6#8rS(XdaS`6Tqw-fmOL`EcR}I0Gh`iE~n^d+}ck4fS+S>M#c`qKo2J zUwQR4H(m`D1uJSX-WC)8tD^hiTK>B23j~g|o=T3O=WC4E$4qxe!B4JTVaEK3D>UY? z6*K1OG8F;@YObhoU!Q7>?1ta}kyQ5oF?DZn2c2rpK8P@88EbFsAT-^?_H$!LYpwMG?gj*iro|G*J?FopBi046_f@12Q&AyB{+@XieHH_J ztRt99eJejsnN+NL%9GC#j|N!mJ;}EzHK*@uWFrcMP^{5P7c!zE;mOb)5X0oE!;V zN0texT_^gi=tL*DjX2cCDj&N-u^C2aDeBB%E%c>($27wPqnfW%@Lu35kAnEI%$*_B zf^6u=b>8I#vn#W5!3cBcn#kv-9%odm1dh= ze%N%~4Ec7~yF%L!M-?s;jv6YANKhOcZHU2f;akFDzC!2y>5<&}*$K_11)2T@EJ4ei zDW&eh3)HJ{;|!@pwrBHYMvjhVV>q0?kjENO|B8J6(k1gRgBX_mR#U?8-b&`KIhZ2( zHhLz3Y|?{N*a_`RQ?{Mys7v3lvdo_IZ8l}My8TUOLSOwfn^D4(yog_+dw>Cqcxf=X z^5|&x_-0KKBu5$V!_dO6V*R33lS{*QG}Co<>&(8Gd(EGL!jMXAoXF%&aS~+G{g9@) z?H2!1Dswr01F)CxQQ6Gr%npH-TP6&IJDUo;TC2qQ{IldRiedG=^D!*uk`H4qUy?sC z-Q$xOy8muaBEQ*b_G9+B6m-UL&eJ~BW+{PkWjRI|OqcZ3$Fuy8hmhv}3dDD*G}tI> z#b(nbg~E0Hsv0NwtD01Evh5Y@bL?}j3d9a%5gXw^&4N;MK0WxWy!aW)x-ydaC@T*n zzslJ+ep}>>9^~|0?=F}OPSc@HFxh0q1G``h2~b_2-2w8Cz4lP@r%Nv6N7hQz z;&fRX;9_sSPIzq%9nUBIiw^GKZ77NQH+P8)u_T;DgZhWY%v;2N<8gS`XR#jsn9SUA@eI%S~GQA*6{KRyw&}8vG=w(OfBxqlr>MbzKN>u zueQEpZGHVzU!|$9MD>{}Zl{Xm%EHV8{PE6W)b+c!{mrb)UeMNNexZXwin0pDy2jO&@9uG4`RCPW00U*Ln_I829k0_vTY+F`BTAPNr;ys_>2_#;af!&dS5K( z#YZ)-ajwX=(;P^JeyUoXP&qoHQ)(AdbaAp9eg@8t>T#_~MBSY)NM{N4c$*hlk$8JZqPk)sk~O>R}AoG+s~cZ8}BnGRQ9?Com!`h%^${RxcrgbChQMmX!|xY zx4A5+5gAajlziQEE#f|K+^e*(m;VHI_D^1uC(pq=dGNO^JgLH1PutKs+t9h|#QX%4 z?MJEG@uGS`cmVg>rzN;Tm-|_&qxC*wnN#VqTbbPOE+Q?CD2*2-+r9y-RCESKC#TB3 zA1IWSeT9mZ>bami+^G0AjDYFSpCOVidG5U+5G*Z4hY;*VM>cBE-td5+FGhjO`D@Cq z^s3~R6WaP}5l%HB5Rt=Fg9kh25O52hqUn1omG*Z1Baf> zcBiJ&5x=tw>LCx|(gGoSj>JY2J(^Biji$mo@+t%ePH480owBp|VT;>+WKKYRyh_#q z@qTiQQI6yy(+sO$^bQhG445?OCY^qDpGQ8hi?t8wRtok&dgSzdjYOq;-~HsNzsJtJ zbf`P5Ia$%Pk?KBNE1J}}KLWfgem|JRej6STzTLtKVk(*91}>CsHgpa{Qsb06-O%q% zKq}Y0$1Fe+prOEO$IRZNem{s2Opl$afvn%)1Rq{d8XK8ff}o0~`fg0FLPBvYVtXK5 zvxHb`tC3dW2}@JKhmE*7{{nwqzaS8MmASkTxiXhC26fyV@j^7&5xC)>nh8<&#rx3u zCE<;3r z7>G^oe5W<|un@+Q2Q=)6#1+$GuVyrpm3B-c3ae6?0#ht%q8$sN^mt_P|uKk?zb;SzVvueEI4b+FyNcR2YGdU8N< zL27`*-(>KC06iT;PkmQ5F{RgsbYtzgCfx7`b=wJjwc31cU!Djz&Lzp6NuBt3{{kv9 zc0Dk#;#^d=KQxK&6S4-BnllG-TcB@wka}$k#SgO?coc<-Yhc>uj@}K86<_l-O~4 zEH)waS%h5@g-pu-t2G>ws16P z4dqF~T6!?8w>Fc=%4$a>8a{rRcMC5*A4u#tE!=PnxhJGP$2gZBcHmoJ70pM6Fuch> z59pvzHFJTbR)@QjK>*#y8ZIHNhdOIwH{)XVk#XDnf(3uDf}_G8k2yVd2yXS-M>Qq) zdB7}OIa=>24pol7Y4^J}{*H<0J2C!xErw6bRUH(K9pTQm&AmE-9md9+Oc&rz*>>ae z*e_GZyuaq;gZqRn@_>po$e!-Ef44~wH){qDx>+@*+O=ahL&!=>u3Ig zdKuFqjp^@4SjremTGx4Uzf8K!p#l~4+h64oz(nh@blG+JRZB`#y0=k3U(VtS9Q5|g zZ`~v38<~Z@$XKN3Zb=xmC-l2#;Cv--h>O55QqNY*Abn&z3%-UG0PB=Z-QSqcMkl}I z+;&L`HM*705kGBggbxF_`p?$0oW3C?xm9j9f_}gs^*Z{H@Etn*#N;f4o3jq-XQc=C zKhdE68BJtzDzud^?zaTkfu}g3FL;AjpMlQ86Fs;bf*DFp_H<1&J>VVE5kFr81N{9g zE+0>B8yB8`GiwD`ae9~mlWF$hmtYlAJpTE#=H!c}chMoE!i@^Sg2E&$_(H{wS8M1} zs#a6xu#$A?5o#O?My#J(F%-rygI3vITwj~~kw{Jl^NGZD1dA{}$b0iHHnSNvW3=T} zpUGxpED7^X8jh1z0siqRqW~AP7O+li&ZsW!_h6awbfa9fD^=IZxv2muFQFv%Gj7<% z-@7&V0PqRXL!U!=y38d+3^HVC0ip2D#9nNnCF z|Cx{r12ga>D+BHaYK_xAM&X^t*K=53aqPzpJZ*r#MXx#yL>dj4#)ulF#)hV+2Qs64 zzMU?){45%|3ilQ4K0`Sc&QQa2Zqb^cp39KS25L-`W0ta##C!*~&oJ2ja$ksnJxf76 zqBYp0j#BvA=tY+@{9WvSQHBpinrO^_a+gtt&ox(j8ve*KWa#)CtLfgs zCJsS=6NM7dTymFSIuDp?Q|n=(Lxqm_-K&7i{US{@?*r%8%v$d|+lMR8B>yn-%L(BX zw_b=8j1GSke1Q(-M+9qO5)!snNNAEi8TPJz%dhs5bz9rjT3a_9JjCd zyZNRO)KGc~94^chriSh4OXXF1=^JkR4e3s3!2ygb;f712RnI-jXvfZBgJW82=rywH zU*_p9`(kU*QIfSVq|3hN)NSi{ldU!MJ@Zum+{?Z-8bT9H$*xAdM<5O}KBANgTFpG_ z*8~B$@I+Ru$S-y4YY=)@SuNocQ_RB(XfYQ=>ov7CeM~i_qpc` zeNMybEtM^P0HoOsMrHK-fhZ_)T5K?NvLdUkrfMg&87^ep4L2%-clRi19Jap8Y<;Eq z^*!TfkDK~TuqK0_Vz*19U4ESAu zE67d0tbXY}K^3OjySl19>p!b)pj!1WSD*XKY{9d;3jRa|$L|KuN&h1}Th!hEfakz$ zwS`^PwldlGsP=oNn8A1G_i*I}h4DidRL3tOa=-};<$KTiLphMe|CewnGhMwAa9u;6 zdGt+&S_GHP5GF%*ejp!^@;3bkB5nHVhWpsmO{Ag^h4u#kW|-4=o~gWj>GAP>lAF<9 zLL2G3c1d(A_fjy99-P(R?V7O~p7^W3!V~S5ChB{{1R|C?q;qb`j!3vcer)N;%Xl~6 za6Gf)uW-j`{Z=RV+yY{{Z=rU2J&4l<*V$?FyoX}o^ldi_#tD=)MgS8}cR_J%q85YC z!SBtOKm3tM$(&lKSDKs&@vDyx;Rxbrin6$bT&n%0VC4MB1>P;+2=VCiY^IpChBl=S zy~AH71~3!u&V&< zG94;+X}Bs>TZ#ngp7pCptv04^?-L^-7=qP{BlOH$XW!dHFRA=)`OSCK7>$G78%{^0 zkKV|Q+ecm5N92LSMd%-2sJYrd89zb=ku%`Gj(TARg=j8+{N|H_z! zo;`-u_y*Hlk^5&}qRHa|@wLgihYAYw%fw#;*gU&SSIxKJ^tg!p}}_FTCLl8P_Qg^5cV zKq10n&;sH`=$@=(N8flqjB4^*zl0W}Rb}({(!PT^v}&O2@|&feKGb6^akLV?UGW&O zxi$Ps4W-MTDFL>&UDzAmCjoh1p0mYi2Rti}sOK-?>OOzc%v)3Kk z0MbNsQSE*G?I;U<=B=!r9@@aTirTyd%pbE~X19SNQVc`A=nRAKQ=o18l*(n^EGrT+ zR}M5*!!Jb^8VxJ|(*qWhO)Qa{$Uhd~X6MdieI=K*3*S!3VluJByOm$$-o+?ql0csl}1qq~KLL)EjFWY!tEA^aNI!V%#Qq__4r(T8!DT9-M?8shpCU%SVY=Ys2r>IDY zgch;(*yOgNaKmqu8d_PL>&^&taX80sY@W>dr(8sM9eE$%xEc zOZV>bTkST^sNABsx|RjkkI_Q(ztd<{|14r>oMYhYLMM6zaEyF12gmCgY&nx%)Pixpz{DDr@D}*$Y*b z*F4SocC{H!Wu}wwKWz0yMy&P;z)F`zRE>0N=Lolmic&`~I1=l5+P>Bku>+hu^Y@!%N*((x`QcN8 z$=pS6VkW5#v0gC$X-E@oL*%wxHj{e?vp%(<{k9;}m5m->)(2&0jekK8Be|a(*XrrglXt>n;ie;aoqXkH`RO z^A)9G&xgpE9(#8XMd|1!ZvBWI$TrzMA0c_Ax9rtkR2(}qhtJmFBkFJ-nj*22xU%CT zcHuv0FABzAR;gG&)w7O!^{DDE+&h?Q_34lIDypW^__Ky)Ye+d}I4Jz1p?ga+7o4|@ zedGTtQYMna8^)AzLZf(O`3?#r__z35i;-|mGkQXHZ!xqFnT-4NhemYwRs&0g_0_gS z2b+;g^9y_l!}b)d$&~t&9)K%5pBwKbA@kgB^k~9U&fIqEO!mZknNKDTxM>tn4t#PnE6+xZ8p%uk`R zW<*qJ%`@w2ftsJ4!$GmKob#%@`?};43Xrn z(KNeym|b50{8kB@QVs&bI1IfxU$%Xv#c}zeKTn_AnUzG$RPB3!GlL79zAzH@GcY^=){5y(WDx;~=@& zt>goh1haW*NJ}6Cjyu{y;SHq(nF>uyo&p9LeA)4ELT{rqnC;WXr%lNLpZrFnKE4#L zIqwORR8}BDkzbK!uI6wJJ^~^)CxZXysr_W!J&E1p*hQj<^K@XoE?tcibfl79I+l@k z5s;uHWp@9V+*T6*I9h+YsO$k#XYV!HdR1kJD&xef6vsj1w!`2lLWCU$@HTKLc++;9 zMJ6ucvgi1_{{T4P+yA1E+_U(aHa$+45bUTncij3PhpC|Vf77S7zTVouGU8EB*xHn^_zmWk+g*Gtn$a-f7S#5k3_qbm& zQlomsE_9FdpU!d*Gf%;A@gg-AOSgt3ll0H&)*5pBXKHNF&ZN`J9Wlg*rs0<) zxN{Go|I^LDYX5YTI|8tPrgnd`k(jFDlalu*8L@nDgdIr8^vi2=+aTBcmSsd}fZtMU zXg~kSAe7fb7M#gct>aCpq)j|QoKj`B? zs{lPmQY!SMYI(BF(k6Ou2j2tJFfMip}=EQwL zDq6~e^x?AomH*fvard0ES>zwttlM;THALuSN>mjSr-9Q2R-TyYTy%E@4>AbpB#Ts*!hkjV!L>GCoQ|U4KT*dzb%Z+!lo@vlbMc!F5A$t=d$dUg z%lbCL-?N?M?1vUurw#aUgY3ZOu#daCRcHC|N{cMgdYzR&-u><$rYN=Sp#tVW;N7~^ zIFT4IhViQXOyCZpxWbieLiOZ=zs{M191_+vlAhyP3E-b;`Z=A2jZms`y!%B=m5 z``0Lb>itCpqx;2|W!5lGqo?E8l)tjg* zl#@T<1LDW6-Gy;KGd|b}d`R8@~ z^DH`0$ADEv>-WzNUdU~Rn#9l+@k@U$6llJ?kl{$MD&zm9HvI~sHO}Dn2&21KS2Z{J z)m&$*Ie=>HbfU5~>Xa&ztCe@>FXZHtP@09)I$(8a8`j^<$kfJFGcKqqS+T2ofz*fr z%X!cNzOm8zCHM*u;qTMf$O+ES3SG4gJmI{O&kCW2} zv7^vu`bCGFUder5zV4#^KC8VLP?o{(qd&ZFS)Kc+Ciy!CluVnCr!N0Hwes>#Zk6Fi zn6+%9VCGs=z|kiiwdL|LdrxE4fV;^u2aJU-y30_ybwx{teo4CA7=C*XOTDV{cwwra zZT5LBmKFT+f}cpt3- z-toXIe>w#E%DZ=R`wZVS@1Sh}ItqX!6Qevo_@K`gdij&dtP|jmcQfC6#)?J{CA}o!anndXVqcm(UXJH`X1(QAg6HoWBu>ZBmok11kUQ2Gi5YCDZwN8-u z9HEy;<78?DWQU$79owEru38^9`;47yoY1eyQx&?Czq9^Pn>v!id*qiN+y9q7PNul& z<3t|lUDjo$_qjX6{A~m-LYRnbn1CLYDlZjAzEg1}ac;QVb7{$KK`K0I^ z)4i|)Q80HAVVu~=)T#=7#NTlGccOwWaCMq-V-_8T@$M_Na-WjyW zI8CZY)e%zqyQ`Q@-U?qIg)Ube&2;+y5>06Btaf$G>zuF1aN1J!yXw8(yxVA_Pcq-k z33<1WPdGnx{@A@Bp+2QT-}0!k`D=6|3!KmlbnN`3%&%D!&d z61}um8=DW4WJURitc z8Zt$Rp_^I#t+e(`IzJT?)B78WxY(s z58R9G>yI7ejBn1Y&gvHuL1RBxDzUU!kJ)3V>-e)F| zT{L{cO1JJsXusY%3Cp*!4lwFc1OQ8))Ss|V2&S9A+6?ABnmtA_PNp&`l@*ZA18RLx#*|C?3<^) zqkgqV9Kk=a`aU{`-*j}NQ8uFMHvh0R5G+W(rQ%J@qL!&=R- z-Lzl0u}z)XW3S1;HRjw{&6xAz#d5uVHFI0jn5p5$$;?Jw840YOwl57`vLA;2VH~(l z;=YiH;fAyM{p)a~)op?0xU|Ue zy}WMlzuYOruh6|AHxR0UB!TgjVgK+E>i=WrVUmo1RY3dN^pQp0Y98G33wK|gTDbZ| zQ!CRaZcKEHx$*cc>Y|H}@{3|#D)hntk8IbGaOD~K!N^s~FADLx4@Qz-^d`AHGtKIM6Vj&#(r0o- z@aB`#y>YC^xqYjOvn=SIn0Z8}ZF_3CLE9+Y)S3G7crL&`FnvX!w*Fs)RGZhEfJfie zrF$O{t$%$25iJdH_fZ9l@?yXa#DB+~C`WL%Kiq&5D>b7ID?U_h{kj?=$d*Sq7(@){ zeFCO5a;k_@hsQ>%EccxlV1VjX9!MGsK?Y2=Bj+qgApn%K4*f1=$iTJ~zUh zp5Q**a4Gp~>tEGafZSf*!-k3tya_g$dMG$%KqP%jVd`Bj@8B+%{S6+sok!eV3e;e~ z7^48bL#-7Am)*?yUGUbV&kxk3PYFZ=1k2h6J#b$*qpKJ+{pg4~0V?oG0#TZ={1l|#@ZKSRc0HZk zHa0$-Sjw@%LTMwBe^u33TNSq~O&IxBUTq#1$Uq%TkH#cV&Q%o^8j%}$HpQ>D#fRsL zXZb{a9X}^imVeRKvAN7Jll*+cZDoG9fF*)jQc#eerI)D+KK#FQKXzK`jfmm2-iI11 zBWEDMQMxjFgc()t!qaGtVJPfG@)Xp=Tom5ei6+9d1aPLMMp(2RO>!229UQ2iA=Pg3QlzLx~;up>i2$kd)AGI4j{RjVc#?~gRMj&fn zo<@K(sryE~&(?`?*3Es2GuT|-M;J@?pLCJ6wwh7YT}Kx{joq5U?;$66GJOqR=Is^L zRkPff*o%OG*CoAy5>)-I_+Hmm*SIp=C{MS)NY;lNXYpum#3p|Jx!0* z1=23;(JF2R<5sYMIZBu}AE{*o?xYgxoIlzS9gK|zPU|Mm#~7CDy%F!Yjq^pHM@ZdC zW$c|`TcI(eyOq^lcX92L>CXIR#JlBP!}YCq81vda^lWn)3c4gd$wNUlPP6pB$9U4( zn@-7dWI;9F$LisE##OBk$FY360=hRtKzv5)VL!8VTS5F^=@SF)%{#g=nuI)DZepE? z#}YK?j7Bh++BNbkf1dksQ#;&V7eOMJc6%!rj_M+^O?L#*e#DeaY#$zOkh@}X?EPP3 z9*YpHZ2xAI>%9O_M)J0{Wb?pAf|&J+gzs&MEJ4oqU}tkxyv%bbCVqy3jZQ_(vsJNM zCK!KUcL5R$o*Vll>g?rCJqLxA0C$WP5i^m|7fF`XufW-GIaL&JZtfu5nF*JxO~1bQ zdv=$dg`}Xi?7oQx2ra$IHxKWLFmES_H*{>G+pR!`5hihYW_}L;>a}>jM76rx*hdc> zN((p2)a*%#G!D$>c&N3%Y7JB4l%&2wYj;A2{mL8|pU}9TPG38 (iCq>!;1-^y1;d&*uYbzwaMig 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