--=.1wi5s(cPrG1_Cd
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Hi all,
I am trying to priorityse outgoing traffic basing on UID of the sender.
Script follows:
# First mark packets with their respective priority
iptables -t mangle -F OUTPUT
iptables -t mangle -A OUTPUT -m owner --uid-owner root -j MARK
--set-mark 1
iptables -t mangle -A OUTPUT -m owner --uid-owner aigarius -j MARK
--set-mark 2
iptables -t mangle -A OUTPUT -m owner --uid-owner bind -j MARK
--set-mark 3
iptables -t mangle -A OUTPUT -m owner --uid-owner proxy -j MARK
--set-mark 4
iptables -t mangle -A OUTPUT -m owner --uid-owner nobody -j MARK
--set-mark 5
iptables -t mangle -A OUTPUT -m owner --uid-owner www-data -j MARK
--set-mark 6
iptables -t mangle -A OUTPUT -m owner --uid-owner ftp -j MARK --set-mark
7
iptables -t mangle -A OUTPUT -m owner --uid-owner ivarix -j MARK
--set-mark 8
iptables -t mangle -A OUTPUT -m owner --uid-owner blacky -j MARK
--set-mark 9
iptables -t mangle -A OUTPUT -j MARK --set-mark 666
# now make outgoing traffic classes
# clean existing qdiscs, hide errors
/home/aigarius/bin/tc qdisc del dev eth0 root 2> /dev/null >
/dev/null
/home/aigarius/bin/tc qdisc add dev eth0 root handle 1: htb
/home/aigarius/bin/tc class add dev eth0 parent 1: classid 1:1 htb rate
100mbit burst 64k
/home/aigarius/bin/tc class add dev eth0 parent 1:1 classid 1:10 htb
rate 100mbit burst 64k prio 1
/home/aigarius/bin/tc class add dev eth0 parent 1:1 classid 1:20 htb
rate 100mbit burst 64k prio 2
/home/aigarius/bin/tc class add dev eth0 parent 1:1 classid 1:30 htb
rate 100mbit burst 64k prio 3
/home/aigarius/bin/tc class add dev eth0 parent 1:1 classid 1:40 htb
rate 100mbit burst 64k prio 4
/home/aigarius/bin/tc class add dev eth0 parent 1:1 classid 1:50 htb
rate 100mbit burst 64k prio 5
/home/aigarius/bin/tc class add dev eth0 parent 1:1 classid 1:60 htb
rate 100mbit burst 64k prio 6
/home/aigarius/bin/tc class add dev eth0 parent 1:1 classid 1:70 htb
rate 100mbit burst 64k prio 7
/home/aigarius/bin/tc class add dev eth0 parent 1:1 classid 1:80 htb
rate 100mbit burst 64k prio 8
/home/aigarius/bin/tc class add dev eth0 parent 1:1 classid 1:90 htb
rate 100mbit burst 64k prio 9
/home/aigarius/bin/tc class add dev eth0 parent 1:1 classid 1:666 htb
rate 10mbit burst 64k prio 20
# all get Stochastic Fairness:
/home/aigarius/bin/tc qdisc add dev eth0 parent 1:10 handle 10: sfq
perturb 10
/home/aigarius/bin/tc qdisc add dev eth0 parent 1:20 handle 20: sfq
perturb 10
/home/aigarius/bin/tc qdisc add dev eth0 parent 1:30 handle 30: sfq
perturb 10
/home/aigarius/bin/tc qdisc add dev eth0 parent 1:40 handle 40: sfq
perturb 10
/home/aigarius/bin/tc qdisc add dev eth0 parent 1:50 handle 50: sfq
perturb 10
/home/aigarius/bin/tc qdisc add dev eth0 parent 1:60 handle 60: sfq
perturb 10
/home/aigarius/bin/tc qdisc add dev eth0 parent 1:70 handle 70: sfq
perturb 10
/home/aigarius/bin/tc qdisc add dev eth0 parent 1:80 handle 80: sfq
perturb 10
/home/aigarius/bin/tc qdisc add dev eth0 parent 1:90 handle 90: sfq
perturb 10
/home/aigarius/bin/tc qdisc add dev eth0 parent 1:666 handle 666: sfq
perturb 10
# Filter traffic into classes
/home/aigarius/bin/tc filter add dev eth0 parent 1:0 protocol ip prio 10
handle 1 fw flowid 1:10
/home/aigarius/bin/tc filter add dev eth0 parent 1:0 protocol ip prio 10
handle 2 fw flowid 1:20
/home/aigarius/bin/tc filter add dev eth0 parent 1:0 protocol ip prio 10
handle 3 fw flowid 1:30
/home/aigarius/bin/tc filter add dev eth0 parent 1:0 protocol ip prio 10
handle 4 fw flowid 1:40
/home/aigarius/bin/tc filter add dev eth0 parent 1:0 protocol ip prio 10
handle 5 fw flowid 1:50
/home/aigarius/bin/tc filter add dev eth0 parent 1:0 protocol ip prio 10
handle 6 fw flowid 1:60
/home/aigarius/bin/tc filter add dev eth0 parent 1:0 protocol ip prio 10
handle 7 fw flowid 1:70
/home/aigarius/bin/tc filter add dev eth0 parent 1:0 protocol ip prio 10
handle 8 fw flowid 1:80
/home/aigarius/bin/tc filter add dev eth0 parent 1:0 protocol ip prio 10
handle 9 fw flowid 1:90
/home/aigarius/bin/tc filter add dev eth0 parent 1:0 protocol ip prio 10
handle 666 fw flowid 1:666
--- END OF SCRIPT ---
Problem:
no shaping is done
# tc -s qdisc show
qdisc sfq 666: dev eth0 quantum 1514b limit 128p flows 128/1024 perturb
10sec
Sent 679086470 bytes 985634 pkts (dropped 0, overlimits 0)
qdisc sfq 90: dev eth0 quantum 1514b limit 128p flows 128/1024 perturb
10sec
Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
qdisc sfq 80: dev eth0 quantum 1514b limit 128p flows 128/1024 perturb
10sec
Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
qdisc sfq 70: dev eth0 quantum 1514b limit 128p flows 128/1024 perturb
10sec
Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
qdisc sfq 60: dev eth0 quantum 1514b limit 128p flows 128/1024 perturb
10sec
Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
qdisc sfq 50: dev eth0 quantum 1514b limit 128p flows 128/1024 perturb
10sec
Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
qdisc sfq 40: dev eth0 quantum 1514b limit 128p flows 128/1024 perturb
10sec
Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
qdisc sfq 30: dev eth0 quantum 1514b limit 128p flows 128/1024 perturb
10sec
Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
qdisc sfq 20: dev eth0 quantum 1514b limit 128p flows 128/1024 perturb
10sec
Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
qdisc sfq 10: dev eth0 quantum 1514b limit 128p flows 128/1024 perturb
10sec
Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
qdisc htb 1: dev eth0 r2q 10 default 0 direct_packets_stat 778 ver 3.6
Sent 679175569 bytes 986412 pkts (dropped 0, overlimits 9647)
#iptables -v -t mangle -L OUTPUT
Chain OUTPUT (policy ACCEPT 25M packets, 16G bytes)
pkts bytes target prot opt in out source
destination
6782 802K MARK all -- any any anywhere
anywhere OWNER UID match root MARK set 0x1
7439 393K MARK all -- any any anywhere
anywhere OWNER UID match aigarius MARK set 0x2
7878 2018K MARK all -- any any anywhere
anywhere OWNER UID match bind MARK set 0x3
65687 49M MARK all -- any any anywhere
anywhere OWNER UID match proxy MARK set 0x4
752K 524M MARK all -- any any anywhere
anywhere OWNER UID match nobody MARK set 0x5
24388 35M MARK all -- any any anywhere
anywhere OWNER UID match www-data MARK set 0x6
44401 62M MARK all -- any any anywhere
anywhere OWNER UID match ftp MARK set 0x7
7 600 MARK all -- any any anywhere
anywhere OWNER UID match ivarix MARK set 0x8
0 0 MARK all -- any any anywhere
anywhere OWNER UID match blacky MARK set 0x9
1019K 680M MARK all -- any any anywhere
anywhere MARK set 0x29a
As I see there is no shaping done -- the filters do not work.
I also do routing based on firewall key -> it doesn't work either, but
nothing shows any errors.
Please help. Thanks.
PS. I am using kernel 2.4.19 patched with htb3 and gr-security patch and
htb3 precompiled tc on Debian unstable system.
--
Best regards,
Aigars Mahinovs mailto:aigarius@debian.org
#--------------------------------------------------#
| .''`. |
| : :' : Debian GNU/Linux |
| `. `' http://www.debian.org |
| `- |
#--------------------------------------------------#
--=.1wi5s(cPrG1_Cd
Content-Type: application/pgp-signature
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.0 (GNU/Linux)
iQIXAwUBPbqcMqGOGKy2xwh7FAJ07wgAvRp5/DbIxZFeSRmE/6qoNLyAizUC3BH7
WFFSniafjHO8EunPvZVjQyz2sTG5oEwmj9w6vLC2qWPlLuQcvfOEqc5OKpS4G5hk
HoCDq23z097xJyAIwe+jIm/RPcUKjG5xDh7d7uHUL8hNdCNf7Fv8LK5xhfN7epsL
aCkRa6Dq971EJfIh52m6P3/yRdgq7g5ukmVSOUx2NOXsbYkmAD9vgvymQ2YhnnfG
lYQnXcRwZrwBnhB5lmGzxh8aNz7Twlbxr7OCob5iekOV17Aky5r3KqnGRwWo2XT+
TckXUhwlh7dAKes6IAbH8aYoV/PSLAye0vZnyTyj0bKpVSIRuPebxQgAzpQbCOoH
otkWQIl3qpQmCp/0GJphouFWPpNH0qUSofHCfFimn4KaTGX/UsFAsX0hyaFupLz/
tEKCjNR1xl+cM49QuDNTWRAs694WtZjonIwNRw5h/BKzsFb5Py9wb3O69JrfIbyD
vIT8xKi74GVYrFwlc9BMa5AVW9pCVjVZkTGT2QqyHQksxaeq+VNf8ApoTNGDdkbR
F9aX06WZMQnjTMzxya9KlCEKCK8PFmp5XVHbrFmCxnjVGYcCiiY2ihgE+3X34KhV
yx2+eXAz2FQuOk/Wk8JnmqBxlk2KEExgbqoLPf0UWRfqVc9wET8oahqD2k5ZCxNq
ZAhs2Lh3ZnULNA==
=uKll
-----END PGP SIGNATURE-----
--=.1wi5s(cPrG1_Cd--
Hi, Prio is a number between 0 and 7. prio 10 is actually prio 7. It's reported before that using the uid in routing keys is not working. = Maybe=20 it's the same problem. The marking is working, but I'm wondering why the= fw=20 filter is not picking up the packets. Don't know. Stef On Saturday 26 October 2002 15:44, Aigars Mahinovs wrote: > Hi all, > > I am trying to priorityse outgoing traffic basing on UID of the sender. > Script follows: > > # First mark packets with their respective priority > > iptables -t mangle -F OUTPUT > > iptables -t mangle -A OUTPUT -m owner --uid-owner root -j MARK > --set-mark 1 > iptables -t mangle -A OUTPUT -m owner --uid-owner aigarius -j MARK > --set-mark 2 > iptables -t mangle -A OUTPUT -m owner --uid-owner bind -j MARK > --set-mark 3 > iptables -t mangle -A OUTPUT -m owner --uid-owner proxy -j MARK > --set-mark 4 > iptables -t mangle -A OUTPUT -m owner --uid-owner nobody -j MARK > --set-mark 5 > iptables -t mangle -A OUTPUT -m owner --uid-owner www-data -j MARK > --set-mark 6 > iptables -t mangle -A OUTPUT -m owner --uid-owner ftp -j MARK --set-mar= k > 7 > iptables -t mangle -A OUTPUT -m owner --uid-owner ivarix -j MARK > --set-mark 8 > iptables -t mangle -A OUTPUT -m owner --uid-owner blacky -j MARK > --set-mark 9 > iptables -t mangle -A OUTPUT -j MARK --set-mark 666 > > # now make outgoing traffic classes > # clean existing qdiscs, hide errors > /home/aigarius/bin/tc qdisc del dev eth0 root 2> /dev/null > > /dev/null > > /home/aigarius/bin/tc qdisc add dev eth0 root handle 1: htb > /home/aigarius/bin/tc class add dev eth0 parent 1: classid 1:1 htb rate > 100mbit burst 64k > /home/aigarius/bin/tc class add dev eth0 parent 1:1 classid 1:10 htb > rate 100mbit burst 64k prio 1 > /home/aigarius/bin/tc class add dev eth0 parent 1:1 classid 1:20 htb > rate 100mbit burst 64k prio 2 > /home/aigarius/bin/tc class add dev eth0 parent 1:1 classid 1:30 htb > rate 100mbit burst 64k prio 3 > /home/aigarius/bin/tc class add dev eth0 parent 1:1 classid 1:40 htb > rate 100mbit burst 64k prio 4 > /home/aigarius/bin/tc class add dev eth0 parent 1:1 classid 1:50 htb > rate 100mbit burst 64k prio 5 > /home/aigarius/bin/tc class add dev eth0 parent 1:1 classid 1:60 htb > rate 100mbit burst 64k prio 6 > /home/aigarius/bin/tc class add dev eth0 parent 1:1 classid 1:70 htb > rate 100mbit burst 64k prio 7 > /home/aigarius/bin/tc class add dev eth0 parent 1:1 classid 1:80 htb > rate 100mbit burst 64k prio 8 > /home/aigarius/bin/tc class add dev eth0 parent 1:1 classid 1:90 htb > rate 100mbit burst 64k prio 9 > /home/aigarius/bin/tc class add dev eth0 parent 1:1 classid 1:666 htb > rate 10mbit burst 64k prio 20 > # all get Stochastic Fairness: > /home/aigarius/bin/tc qdisc add dev eth0 parent 1:10 handle 10: sfq > perturb 10 > /home/aigarius/bin/tc qdisc add dev eth0 parent 1:20 handle 20: sfq > perturb 10 > /home/aigarius/bin/tc qdisc add dev eth0 parent 1:30 handle 30: sfq > perturb 10 > /home/aigarius/bin/tc qdisc add dev eth0 parent 1:40 handle 40: sfq > perturb 10 > /home/aigarius/bin/tc qdisc add dev eth0 parent 1:50 handle 50: sfq > perturb 10 > /home/aigarius/bin/tc qdisc add dev eth0 parent 1:60 handle 60: sfq > perturb 10 > /home/aigarius/bin/tc qdisc add dev eth0 parent 1:70 handle 70: sfq > perturb 10 > /home/aigarius/bin/tc qdisc add dev eth0 parent 1:80 handle 80: sfq > perturb 10 > /home/aigarius/bin/tc qdisc add dev eth0 parent 1:90 handle 90: sfq > perturb 10 > /home/aigarius/bin/tc qdisc add dev eth0 parent 1:666 handle 666: sfq > perturb 10 > # Filter traffic into classes > /home/aigarius/bin/tc filter add dev eth0 parent 1:0 protocol ip prio 1= 0 > handle 1 fw flowid 1:10 > /home/aigarius/bin/tc filter add dev eth0 parent 1:0 protocol ip prio 1= 0 > handle 2 fw flowid 1:20 > /home/aigarius/bin/tc filter add dev eth0 parent 1:0 protocol ip prio 1= 0 > handle 3 fw flowid 1:30 > /home/aigarius/bin/tc filter add dev eth0 parent 1:0 protocol ip prio 1= 0 > handle 4 fw flowid 1:40 > /home/aigarius/bin/tc filter add dev eth0 parent 1:0 protocol ip prio 1= 0 > handle 5 fw flowid 1:50 > /home/aigarius/bin/tc filter add dev eth0 parent 1:0 protocol ip prio 1= 0 > handle 6 fw flowid 1:60 > /home/aigarius/bin/tc filter add dev eth0 parent 1:0 protocol ip prio 1= 0 > handle 7 fw flowid 1:70 > /home/aigarius/bin/tc filter add dev eth0 parent 1:0 protocol ip prio 1= 0 > handle 8 fw flowid 1:80 > /home/aigarius/bin/tc filter add dev eth0 parent 1:0 protocol ip prio 1= 0 > handle 9 fw flowid 1:90 > /home/aigarius/bin/tc filter add dev eth0 parent 1:0 protocol ip prio 1= 0 > handle 666 fw flowid 1:666 > > --- END OF SCRIPT --- > > Problem: > no shaping is done > > # tc -s qdisc show > qdisc sfq 666: dev eth0 quantum 1514b limit 128p flows 128/1024 perturb > 10sec > Sent 679086470 bytes 985634 pkts (dropped 0, overlimits 0) > > qdisc sfq 90: dev eth0 quantum 1514b limit 128p flows 128/1024 perturb > 10sec > Sent 0 bytes 0 pkts (dropped 0, overlimits 0) > > qdisc sfq 80: dev eth0 quantum 1514b limit 128p flows 128/1024 perturb > 10sec > Sent 0 bytes 0 pkts (dropped 0, overlimits 0) > > qdisc sfq 70: dev eth0 quantum 1514b limit 128p flows 128/1024 perturb > 10sec > Sent 0 bytes 0 pkts (dropped 0, overlimits 0) > > qdisc sfq 60: dev eth0 quantum 1514b limit 128p flows 128/1024 perturb > 10sec > Sent 0 bytes 0 pkts (dropped 0, overlimits 0) > > qdisc sfq 50: dev eth0 quantum 1514b limit 128p flows 128/1024 perturb > 10sec > Sent 0 bytes 0 pkts (dropped 0, overlimits 0) > > qdisc sfq 40: dev eth0 quantum 1514b limit 128p flows 128/1024 perturb > 10sec > Sent 0 bytes 0 pkts (dropped 0, overlimits 0) > > qdisc sfq 30: dev eth0 quantum 1514b limit 128p flows 128/1024 perturb > 10sec > Sent 0 bytes 0 pkts (dropped 0, overlimits 0) > > qdisc sfq 20: dev eth0 quantum 1514b limit 128p flows 128/1024 perturb > 10sec > Sent 0 bytes 0 pkts (dropped 0, overlimits 0) > > qdisc sfq 10: dev eth0 quantum 1514b limit 128p flows 128/1024 perturb > 10sec > Sent 0 bytes 0 pkts (dropped 0, overlimits 0) > > qdisc htb 1: dev eth0 r2q 10 default 0 direct_packets_stat 778 ver 3.6 > Sent 679175569 bytes 986412 pkts (dropped 0, overlimits 9647) > > #iptables -v -t mangle -L OUTPUT > Chain OUTPUT (policy ACCEPT 25M packets, 16G bytes) > pkts bytes target prot opt in out source > destination > 6782 802K MARK all -- any any anywhere > anywhere OWNER UID match root MARK set 0x1 > 7439 393K MARK all -- any any anywhere > anywhere OWNER UID match aigarius MARK set 0x2 > 7878 2018K MARK all -- any any anywhere > anywhere OWNER UID match bind MARK set 0x3 > 65687 49M MARK all -- any any anywhere > anywhere OWNER UID match proxy MARK set 0x4 > 752K 524M MARK all -- any any anywhere > anywhere OWNER UID match nobody MARK set 0x5 > 24388 35M MARK all -- any any anywhere > anywhere OWNER UID match www-data MARK set 0x6 > 44401 62M MARK all -- any any anywhere > anywhere OWNER UID match ftp MARK set 0x7 > 7 600 MARK all -- any any anywhere > anywhere OWNER UID match ivarix MARK set 0x8 > 0 0 MARK all -- any any anywhere > anywhere OWNER UID match blacky MARK set 0x9 > 1019K 680M MARK all -- any any anywhere > anywhere MARK set 0x29a > > As I see there is no shaping done -- the filters do not work. > I also do routing based on firewall key -> it doesn't work either, but > nothing shows any errors. > > Please help. Thanks. > > PS. I am using kernel 2.4.19 patched with htb3 and gr-security patch an= d > htb3 precompiled tc on Debian unstable system. --=20 stef.coene@docum.org "Using Linux as bandwidth manager" http://www.docum.org/ #lartc @ irc.oftc.net
On Sat, 2002-10-26 at 15:44, Aigars Mahinovs wrote: > Hi all, > > I am trying to priorityse outgoing traffic basing on UID of the sender. > Script follows: > > # First mark packets with their respective priority > > iptables -t mangle -F OUTPUT > > iptables -t mangle -A OUTPUT -m owner --uid-owner root -j MARK > --set-mark 1 > iptables -t mangle -A OUTPUT -m owner --uid-owner aigarius -j MARK > --set-mark 2 > iptables -t mangle -A OUTPUT -m owner --uid-owner bind -j MARK > --set-mark 3 > iptables -t mangle -A OUTPUT -m owner --uid-owner proxy -j MARK > --set-mark 4 > iptables -t mangle -A OUTPUT -m owner --uid-owner nobody -j MARK > --set-mark 5 > iptables -t mangle -A OUTPUT -m owner --uid-owner www-data -j MARK > --set-mark 6 > iptables -t mangle -A OUTPUT -m owner --uid-owner ftp -j MARK --set-mark > 7 > iptables -t mangle -A OUTPUT -m owner --uid-owner ivarix -j MARK > --set-mark 8 > iptables -t mangle -A OUTPUT -m owner --uid-owner blacky -j MARK > --set-mark 9 > iptables -t mangle -A OUTPUT -j MARK --set-mark 666 This won't work the way you want it to. MARK doesn't terminate the rule-traversal... so all packets will be marked as 666 in the end. -- /Martin Never argue with an idiot. They drag you down to their level, then beat you with experience.
--=.sf.LIWwXT7de5t Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Hello, On 26 Oct 2002 18:06:17 +0200, Martin Josefsson <gandalf@wlug.westbo.se> wrote: > > iptables -t mangle -A OUTPUT -j MARK --set-mark 666 > > This won't work the way you want it to. > MARK doesn't terminate the rule-traversal... so all packets will be > marked as 666 in the end. Thanks, that worked. -- Best regards, Aigars Mahinovs mailto:aigarius@debian.org #--------------------------------------------------# | .''`. | | : :' : Debian GNU/Linux | | `. `' http://www.debian.org | | `- | #--------------------------------------------------# --=.sf.LIWwXT7de5t Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.0 (GNU/Linux) iQIXAwUBPbrGkKGOGKy2xwh7FAIS1wgAl4dvl+J70rnTRyMJOTd0cOXPTjOljRuf aZXRLLdWbyNY4JscyhH1lvEkbgiJSQQVQ2nq5XzEplL+LaOQ1YYpMeYlQLd8eoy3 qHYziJxqkAWkTLLFyndsV04H4sQEJlYkz5YAKzkkUnl1p6JZFOi4imfoweqN7Jm1 UPfD72MAYIF+cC/eEwYujj2gzUFvrHHDKtyTC5uw1bOcsWHP7PLl/vOYO3Q+c6Sv NcWzl9WKp6rUGPMPwd+2FTmdnq3F/mAaw967VdFkFkaBeAPdr092bAeJaDPeVRsn HRPmXGvmAmQOW8L4AdkoN4vEl3inm33i+E2O+Mp/fzZUO96r3iXhewgAkrLwFkxV EuHibflXKsNzamIgZQ+REzjj8ub+6veIqXJ1zTGL4OapfdieRBhfFZCxXZajwRED enFNbLSZr/bxGHrpspC7h++TsOl2ju4weHx4Eiq7HVsApL5mIIw6BqYs4TQs0IwO j1sovMbPBaNRniTVHQvlCa+INBqnFwD5aNcHQxfETsP/OmDwx0vqkVkEyYCDQac1 6MH/Ci5T4qtIya6PANuyAFn80T8T4yT0GSHAWDRAbt7DLXW3MtTibUFNJPOauqKL CKLZOGA2a1myu1KQPqMxkfXWJKmIIk1u/yBhm25wZyVL/bfSiH0Dkhbxd7g7oMSo x5IdZgW/xTtN9Q== =mk2q -----END PGP SIGNATURE----- --=.sf.LIWwXT7de5t--