(instructions copied from cocoons's KEYS file)

This file contains the PGP keys of various developers.
Please don't use them for email unless you have to. Their main
purpose is code signing.

Users: pgp < KEYS
Developers:
        pgp -kxa <your name> and append it to this file.
        (pgpk -ll <your name> && pgpk -xa <your name>) >> this file.
        (gpg --list-sigs <your name>
             && gpg --armor --export <your name>) >> this file.
             
pub  1024D/08586F81 2004-12-29 Rolf Kulemann (Commiter of the Apache Software Foundation) <roku@apache.org>
sig 3       08586F81 2004-12-29   Rolf Kulemann (Commiter of the Apache Software Foundation) <roku@apache.org>
sub  2048g/A57AD592 2004-12-29
sig         08586F81 2004-12-29   Rolf Kulemann (Commiter of the Apache Software Foundation) <roku@apache.org>
 
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.2.4 (GNU/Linux)
 
mQGiBEHTMc8RBACrsQmDSKRahyGhnb2744to8ejgPpNSnZ2Zxr4D7YFG3h5YfbXJ
GOGbtqelSCHUUhUxmOUOUmaiuhSN0l3a1D+zgiesuZxQyCVUVuKPqKkmxm3+q5Ir
dg6/BXTVQJ+oLJNa4/k/P3V4uncq67NXvweJSzsm15Z9b92K0uFne+m8FwCgp85g
Lhq+KSHxWTbeZfkUOhhTm7UD/3bcXgOs2NWmqvoOjNVvGu1Fp8mUvpDt5k4mXLqc
SxAWHm84Mb4K4jrutoc+zWUvXI+ZtoElYGBm3VPBmqSxMgtUrnlPPpQCqZ6w2dU9
TgJRzJgzwqJFwT++ivPMIokwL5ORn9oKMZUjNjjwCDGFuhUGNTZ2hwiF8568CPs2
VDIQA/9vQlH5qyJrS9iHvpWKSkE2IdLf1KzpiLx/wiMdRU3UPRN4+ZlObfYwOOdp
HG0/1njFqueQT4N38DsIzbkXrPd9QPYFiVgbH7dfXKMl3Ddc/5WibfvAWABC6p2u
Jm6/NANTG9/3aHzg2BsYi+LYgbKJP9+DBIurM511PnIhlW46zLRMUm9sZiBLdWxl
bWFubiAoQ29tbWl0ZXIgb2YgdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
KSA8cm9rdUBhcGFjaGUub3JnPoheBBMRAgAeBQJB0zHPAhsDBgsJCAcDAgMVAgMD
FgIBAh4BAheAAAoJEAFpbawIWG+BG7gAoJ5fRwMJ3uH4458Plut5lmKu3bggAKCf
TAn5L3xkjOuIeLjsHM3eI8nYJbkCDQRB0zHgEAgArsy9ADrDmueVAPyYBCDwR2nL
IekaRRngrocjPPiy4dbEAywkw9A0ixpWKOsTeWHu8/+fKu7+gbInwH3YPLvpJ2+N
3sHdNpGlGYEV2v50EoJnjeRzRi9HZzPlMtyde/x6Buedz/UtuA3P3IRxSH64OzJE
DQmMEETkgbIC+//OiNBlxZNzXDhwxoCXjZMTAiXoGITPg6PvDfzgFITWnu6kbLy0
37aaWAlOS1OLCP9emhDC6I6fE+JaHJyfXfNYlNIy3IMEHVJPsn9uMPcI2jsfiaF2
HcHJXWFxwWXLHAwRIxXyKPDuKpY6eWU2SIXMNRPsYBiEdgjn8hBWwwFAfT8P0wAD
Bgf9HSwOjl6MIEpM//JPRV4WMWje7orme+uNVIv5PUmtEev2VE8nSJE5zjgcTYjs
scSqRFKxHojCDEMbN7GtIXF+AUgoB8BNYT0x0fGf2uohWSteKjGLV23AYG1T+ENr
v/VqEEP0KnRSwi214rKOsl9msvUtKsX3VqnFiWfSsfv7Azntv1gnHIAIEtlL2Av+
5aIlbDQ85MGQITOMDO8jGFb+IT/8uf6JnyyxzQzxnKlpp19kew6jnrCCTorral8r
e7RV4b+KAkHU19YsJWyb+9boCyzA/sgZpjEA9BTAxQOG/TgnR3nqeLyC6mpCVczZ
JQ7nBdkp2cPEyuTJoE7g1JIhKohJBBgRAgAJBQJB0zHgAhsMAAoJEAFpbawIWG+B
cMIAmwYpKy/m/LVY7OVZFg7ZoxUU0M14AJ9KrFhoLUbekdKWVY6YNMKarO055w==
=ndjW
-----END PGP PUBLIC KEY BLOCK-----
             pub  1024D/6A6DC9F7 2005-05-01 Gregor J. Rothfuss <gregor@apache.org>
sig 3       6A6DC9F7 2005-05-01   Gregor J. Rothfuss <gregor@apache.org>
sub  1024g/E245A2B0 2005-05-01
sig         6A6DC9F7 2005-05-01   Gregor J. Rothfuss <gregor@apache.org>

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.2.3-nr1 (Windows XP)

mQGiBEJ1SoQRBAC99TailoMLV0eeOkkt+j2qcSiMIFkHdjvh4HoqR6IFwU25gBTB
0kc6oqx6DzeHI+k8OYh0oG6d7N82kgeGAYsxtYfSrHGqWTr7zz/YjY1N/0xHS+iW
AEprN7s8Zf3kKQH53bKS6OOVMfdjTkrjwTOw9z0EE6aWzV0y9SIyj3QiKwCgm1dt
Z1EdHHWGQ0D/iOuPJy4ejCkD/3MLJqjBicx5Lbhm444C28Na7G4QMq84QqhC+qNf
VY2NcnuMxni7AbcrbGxB5Cvo8untgt/flTvMmK+o0oYZ/zuvvK4sJ5uXDawWnFLH
nFcvRyLdzHglKeqpEh4LirxR0noiZyrBy0JiHg9NeB/UviFD3bMPRHZorYNoeACK
WrAHA/wNoH8w/lyYjycVJXgYCW1a4KXpkYqPBpJKKjqPvg9djuWNOaAmWoHcKBI3
dxyySihi5nQ7ZsZhPXA1Qs/Mp8FeF7xXvr9c2j+r5LWDm4fy3kIpUEcQt3DPubpm
N+jsb7q3zYcx9jDE5/gE3G4oiS2WqzZ/5+KVrU8dycxAO2tVmbQmR3JlZ29yIEou
IFJvdGhmdXNzIDxncmVnb3JAYXBhY2hlLm9yZz6IXwQTEQIAHwUCQnVKhAIbAwcL
CQgHAwIBAxUCAwMWAgECHgECF4AACgkQ8XfjPGptyfe1UwCfaZ8d+pVjgb2yMMa/
q9+HYzsF9KIAnicPkeNbup0JWZ/Ax5ejNS/1s1GAuQENBEJ1SocQBACN+vU6lOYw
TB+4s/7xdzSmGWoLv5ZNUNUrXVUwNYAdSCpwfIUcCOkE7mD2QCY7lkeukyYUzy6n
y7C2zYCIxcf5B12mEX82jUcvHyezgCLziTCKKKnO6kfn5rG18MaPwqNEpyI+PG+h
FFXGO42+aansVLIMpvHxwkVF0V/fqDtmEwADBQP/cFz7JuuEu0KgAxv8Q2oGsfbm
qZzrPErChls7mSYBN2n7fWiqb1qcm2rfGq7vUtWGM+I26p+UKZhcF/AnDbfp9lT9
xdp3rSg3t64//i8VbOv3Y5DCFbcfSVjRCvLzFMnQIT0NwLxkhGh8ugrharCVKgr2
dEmRNV5jP7dHEpQx356ISQQYEQIACQUCQnVKhwIbDAAKCRDxd+M8am3J97oCAJ0d
IfihpLACvSdSiT2fCm5UEFrI3ACfXOPMYHCtG4wDI7hrpjFcIjuTzEo=
=C9sc
-----END PGP PUBLIC KEY BLOCK-----
pub   1024D/2B04F430 2008-01-07
uid                  Andreas Hartmann <andreas@apache.org>
sig 3        2B04F430 2008-01-07  Andreas Hartmann <andreas@apache.org>
sub   2048g/2568CAEC 2008-01-07
sig          2B04F430 2008-01-07  Andreas Hartmann <andreas@apache.org>

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.8 (Darwin)

mQGiBEeCG5gRBADFnn4GKetkE0xK3vD1y6ppoAG8FAorfhjJL12q5yaGbutJP/uE
hq0DYSMQVGjBt4mR4Vj/A65VOlCQAcBcmtJPbiHInWPWI1gwkG+inv9PiNneNH8y
wM6iz64GwaXP1aLEJomoHQPo7j7uQpeKz/eMwIrtlpPtIClRWCJZEOJCXwCgm65E
oioSEU8St3NXqFnaoSj/0aUD/jnwdAQ8am3t6MqyCxiBZ1cfHvbUIY/xC7Q7/fok
XgvuVQpx+zyCEze8OfNo8pcvfJ0YD7e9P6O4n4bkH34V+tQuqfxKvuXudu7hkc5K
WhnhWVvEMqKfuLMPUKOklHtJvKWLk3Mt0PKArLtpwcz6FrTuV6yvYY/FfI3LQt5c
ew+WA/4zf9F8yWBRfccXytt/gGmP+wWe+zzvS7uQmFonmhcH6iPOyJ92Migilmzq
9UraqPrQt2PGBVTfVNGhy214+z0gka+YCEzkibgELQ4B95Cm1H05RNvbo6dplROR
e5He+4up6xnWurk8D/UwTkozN8YAXuaZ8F+jA+GgaxZe/ZtWFLQlQW5kcmVhcyBI
YXJ0bWFubiA8YW5kcmVhc0BhcGFjaGUub3JnPohgBBMRAgAgBQJHghuYAhsDBgsJ
CAcDAgQVAggDBBYCAwECHgECF4AACgkQl5IU5CsE9DCFuACeP5aw0T26mVTpjSIL
8gxVVXeDYBsAnR8RBS+LG2AMgNinpI1puMLshiPUuQINBEeCG5gQCACT+efL0rbC
B/mJPr3L5VgSizdYfVToY78kMotCOEogHlXbfT90EmsGIoHfuSNIpQYty9GUQdC6
Ow1Qs0TMMnzgvhpzJrOd6JI+/7PT2FkqNUjaRU1bKiYoPjxC687JeyB9EQzQWHUz
HTTqdiRHC5qlZlqjNxlp3x5CU7a6VK/QtqLXnVxcpbEjYDVQQjnvdrBfAPn+LNdz
ytDPRbIeOpr0hzwiW2X5KDQLVbxDN9WxDSjHZEIPUafZDGzH9wUsbcxmwU69yuZm
njLv+sF3Nev7s4S/Srf76paGVtJNPEaZ4KEBI18FM+S9hoUtBXQf4sCpUAxyiBOf
AEy/DMSnoq4LAAMGB/9bQam3w+uw8FC0VVIQZuxEg6gE8QNJNXGItVrVz+YoN0N1
JmD/oGRYZR47qtEuZqPHufTiqhmbwxoPU6+OtkBoKl0ky3s8GyqmUauo3PNo8zXd
aS08mY07CinbmBvFJnwRusXWCeo3tWUcawwJJ1jujqI/BAPur1jSTgY1GkdJ9lMD
Zgy9rPMYW7oMHkduXwn2rS25BQlKbnq7E2zme1InCPZQ5kqYSwCX7sFWATVPR6hm
IGTEspiBABNgtB9orJb/WKEU4WCCNtbWIYO3Pf2iTZICHphQhrBkYix4/+MjuKQ3
zwqRNmw6jQpCryD0jx3DQXpCs1XdcY+HqUwgz6r9iEkEGBECAAkFAkeCG5gCGwwA
CgkQl5IU5CsE9DDi8ACgl5k6Jon259JgmHOZTWKYsgaCyLAAn1oILH90Ej8dCq0b
LlxwQddtbUHk
=kEph
-----END PGP PUBLIC KEY BLOCK-----
