diff --git a/.sops.yaml b/.sops.yaml index 7b3ae50..9d7e62a 100644 --- a/.sops.yaml +++ b/.sops.yaml @@ -8,13 +8,18 @@ keys: - &zammad age14ukkn4plvnjacvjux929qwpeynxk4cfxw285vlwddqakm43kfyysfdg02c - &forgejo age1vd33efsea2509hm0dwmhkuu7mm2kgw6tsss6lmzsqfg7gat06qyqys3qfh - &mastodon age19efecaur72d92g452zpe4uxjtwev2ktjtaezascxg9l2p8544s8s05d93r + - &paperless age1afzpkw0u6s796tv3e84f2c46cr8curwuvus8kd9dr24um5fja4msvf838w creation_rules: - path_regex: secrets\/all\/* key_groups: - pgp: [*clara] - age: [*wireguard, *mcserver, *zammad, *forgejo, *mastodon] + age: [*wireguard, *mcserver, *zammad, *forgejo, *mastodon, *paperless] - path_regex: secrets\/wireguard\/* key_groups: - pgp: [*clara] - age: [*wireguard] \ No newline at end of file + age: [*wireguard] + - path_regex: secrets\/paperless\/* + key_groups: + - pgp: [*clara] + age: [*paperless] \ No newline at end of file diff --git a/configs/containers/paperless_container.nix b/configs/containers/paperless_container.nix new file mode 100644 index 0000000..9331a50 --- /dev/null +++ b/configs/containers/paperless_container.nix @@ -0,0 +1,58 @@ +{ lib, pkgs, config, ... }: +let paperless_dir = "/mnt/paperless_dir"; +in { + + deployment = { + targetHost = "192.168.178.93"; + targetPort = 22; + targetUser = "root"; + }; + networking.hostName = "paperless"; + networking.interfaces.wgbr.ipv4.addresses = [ + { + address = "10.8.1.7"; + prefixLength = 24; + } + ]; + imports = [ + ../container_config.nix + ../services/paperless.nix + ]; + + + # set up secret key + sops = { + age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ]; + secrets = { + smb_uname.sopsFile = ../../secrets/paperless/secrets.yaml; + smb_pass.sopsFile = ../../secrets/paperless/secrets.yaml; + }; + + templates."cifs-credentials".content = '' + username=${config.sops.placeholder.smb_uname} + password=${config.sops.placeholder.smb_pass} + ''; + }; + + # Mount paperless directory + environment.systemPackages = [ pkgs.cifs-utils ]; + systemd.tmpfiles.rules = [ + "d ${paperless_dir} 0755 paperless paperless 99999y" + ]; + fileSystems.${paperless_dir} = { + device = "//10.8.1.5/mnt/main_zfs/milo_paperless"; + fsType = "cifs"; + options = + let + # this line prevents hanging on network split + automount_opts = "x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s"; + + in + [ + "${automount_opts}" + "credentials=${config.sops.templates."cifs-credentials".path}" + "uid=315,gid=315" + ]; + }; +} + diff --git a/configs/services/paperless.nix b/configs/services/paperless.nix index 28fdea2..b818bf4 100644 --- a/configs/services/paperless.nix +++ b/configs/services/paperless.nix @@ -3,9 +3,10 @@ services.paperless = { enable = true; consumptionDirIsPublic = true; - address = "192.168.178.51"; + address = "10.8.1.7"; user = "paperless"; database.createLocally = true; + dataDir = "/mnt/paperless_dir/"; settings = { PAPERLESS_CONSUMER_IGNORE_PATTERN = [ ".DS_STORE/*" @@ -20,6 +21,7 @@ optimize = 1; pdfa_image_compression = "lossless"; }; + PAPERLESS_URL = "https://paperless.annika.mainberger.name"; }; }; diff --git a/flake.nix b/flake.nix index e1bcb2c..c11268c 100644 --- a/flake.nix +++ b/flake.nix @@ -21,6 +21,8 @@ forgejo = import ./configs/containers/forgejo_container.nix; mastodon = import ./configs/containers/mastodon_container.nix; + + paperless = import ./configs/containers/paperless_container.nix; }; }; } diff --git a/secrets/all/secrets.yaml b/secrets/all/secrets.yaml index 496a58f..566d7c0 100644 --- a/secrets/all/secrets.yaml +++ b/secrets/all/secrets.yaml @@ -1,72 +1,81 @@ -initial_password_clara: ENC[AES256_GCM,data:TUXb6axbRcIL3IGk1JfvpAMNl03vR5IZuvcrYUKpbp2SS2vhVBtMOCff4lR1VZLoJG/0wskRKaMeiJWWJhq/WYwRi/Xzr+zOlD4c,iv:9vIt760Y6pv7S/EIrsy7KtTG1rtTSInCGHz0Rj3iIZk=,tag:levJuPx04XNX3saDfc61Mw==,type:str] +initial_password_clara: ENC[AES256_GCM,data:ZDPryp8w38Z/66G4IanjsC9kJ7ACmMN3NjjaBgypPROgWyi80wmGCMjid1qBPx39UBz50x35hmyVHU4GVpFxaTPwjdYzPWex17ja,iv:AFt4KRDRDq4ovkwos9eCiuB60ovq/pb3EbGn/HyN3PA=,tag:7WAtluwtoKvD9QrBL/5KBQ==,type:str] sops: age: - recipient: age12d8mxwnt0a7gl4uu0uwdqaxuqdf5j7zm50qy5qrhj0kd4ny7luaqv7rj4e enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAvMG44OXJHQndpZjBubmRp - VDZGTldneFZzMEpUOWxmM1R6MGJnVkgxK0RVClNpTXFJeHd2NjdPOVdxa1RWLyth - bXROcEJ0cWlidDBuYmZNZGt5d3RocmMKLS0tIEhCWFJaUmo2MXlYMHpkS1pETmlW - cTJwbzZOaEJaQ0szcnlKeXZFaTBvdHMKM8nuq1/HG0Zo4XKQZcmGqnomDZFysrG2 - yiJZ1SMo9l6bxU94omee3SJbgWtmNzD0IH3YqgOuFwMDszcq1GpFxA== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwc1M4Y0FWTFpEdVhpVE9Y + WXRKU3Boa3FiVzcva1VSa0ZOVXNxVWRpUlVjClRTZTJnQVEySmU0YmExRFZMZnpF + enhDN3ZEZ3pVczRXcHR2Y1BMZkRqUG8KLS0tIDNuWVBWdDRKSUdhM1dBck8rc3Fz + emhKZmc3V3JIbmRMMUhtNmZkUzRqTzQKnXWj3wGKjYnIZYPP6gjoDk3xQfKFgNgn + QBn82NAJH9bOPBitStTUELY/HEF5QTu0ER7NTJQ08P13EieP6KbI3g== -----END AGE ENCRYPTED FILE----- - recipient: age1v98yggaarelrp7z8rljzpf3gm70up4q8460trejmptdpv7gjucrqssjz9h enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBlQXQ1WHNkc2hqVWxzTGYz - UE9Ib3I2cUVRclpMdHEwdDQ5V2lXT20zNm53CmZONis1RmR1eU5BWkxWb09palFn - UlJoTkpLTmJtZHJvYkdIK3QwWXAxZmcKLS0tIFM1endNSkJBck15ZnRHUmxsSVht - VHZtWUV1ZFpQYjZ5T3dJR0o0QWt0akkK0TfTUe9syCY+oQcRztB0fDTqIQ3M364w - sEjx4wmpbJR/ommgybUla56CV58bvs/da6eJdJBqnTxBe9c3tTxkGg== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5R0lZMkdNTEwzU3NyN05R + Yk1NVWpwRVpORkFEWGUwZDBoZUVKTHlMVEhrCkJjVkRBU0l3R0xjUDlDYmJjQnNu + V3ZSbkxzajRNK3hQcnUrYkl4blZVc2cKLS0tIExiKzlxU281Wlk4N3VnZ1RmdWdP + TjNxZk1PQUNFS01NSlhJQkhiT0sxbDgKlP5uXnj8EVyVc+OIAwVddPQo5jzzE+YO + yo7utUKaw843qqV0IsCL0OBMc82IoOX6CIJE5APMatrdSp/Dgj/Rpw== -----END AGE ENCRYPTED FILE----- - recipient: age14ukkn4plvnjacvjux929qwpeynxk4cfxw285vlwddqakm43kfyysfdg02c enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBweGR1YlBWRElhV2ZqM2ww - SGlMWTByenVzY3hGTVc3OS9EMUFEekNIUlFvCmVxREZGUnMxNDNWajdCRXdlSkRK - WTVUWXBiT2JXNTMweXNCK2NPSUIwZEEKLS0tIHNXSkliOW1xRDcrOWVjSFNkYnhM - VkxDRHpKejdQSzhYSzIydDVsRkJTMTQKKrJAz4VllTLj1r+uLbUIUaeZUbxMMpBX - z7/zISKBKVBxc6Qs7md06QzGnMVKZ1QBGwNY3Mzhb/i7XKzT216X+A== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBlRmpyL2tvcDNTVXZKeG0w + NUJycENxaGJtMllrYjRPNGMxZS90RUQ5WldFCnFra1VoQUZERmtxREFSamVLV1BF + ZGFkK2RJVUJyMTQ1NnFuUmtBVnErYXcKLS0tIHIxWHJYRlV3MFUzSkhKMDdsR2ww + d0hUOWp1YklHTS9VcTZkZytvdmNYVFkKL0B02S6u6+Vitru5QECUD8UgfJnDZ/sx + 18ei2oWfjQYA++XRC3MtdRqV6DHm8yTw806kpBHEANvVSRNViUsVVw== -----END AGE ENCRYPTED FILE----- - recipient: age1vd33efsea2509hm0dwmhkuu7mm2kgw6tsss6lmzsqfg7gat06qyqys3qfh enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWM0lxV3JaRUwvSmtnOGJW - UXdqczl5WlJ4SjhGbEF0elV1ZWxEaGYxVGx3CmdQZXVIYzVDWlkxN0NTcU5sZHVQ - M3hERm1WQmhrSE82ZHRza1lXSEtZcGMKLS0tIHNBb21oUXJmR2pqdWMyTjhUUGdX - c0U5TXFaTm5yYzhQZkNkenpTcWxiUFEK7eOsxRmOBMAABZGaafnl/wA18Xch2Jik - B0xXWfZ1ZGtWxtmLigFQidZuwhkI2fXRV1h8N+wHGw17rwPyHy/vUQ== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVMEg2VTFGSkp4OEk4WXl4 + anNpd0hJRjN4VUt2NEZ1cU4weVV4d01UaUhRCkp2N0Zkdm11cWt4d2VveEhSYWxz + dkRPSzJxUjN1QUJBTFp5S0p1dDZDWE0KLS0tIE5sQTRMUitTTVRGZVcxZlhETmJj + SDVURHpPUVpBZE5QYjhubGFhdDdZRGcK3dZFCJLgNmnEhkFBMze9pwp3BY4s/C84 + oJtY9OCu9T/VUKNEtsTkvl6JzTvr1LHfvgg+cufKlfbVVqYJLhvdOQ== -----END AGE ENCRYPTED FILE----- - recipient: age19efecaur72d92g452zpe4uxjtwev2ktjtaezascxg9l2p8544s8s05d93r enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBrZEFIVU8vY3JUVFg0RlB1 - d3pDbkNGZVhQQ0g2cnpTbnpkZm5McmkzMGpZClNIR3FlWjdNMXN6cW1SZUc5RmlN - THBTN3pRaFRWZ2ZaRVhScTBCeGZZWlEKLS0tIG5BaStoZ0J5L3hLQ1AvSzRpZHZI - YnVQM0FPV3g1M3dvbEhGRlhKU3hqd0EK/1qGFQ/WN/Fl4apNps+40aBErOCUOuug - 8YbBwmZDcCFupa6mSeqy4xim2fRw5AjSNMlG5cZthLBiT+HRfcBPww== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBsZjE4OE9MeHl3L1VQWDA0 + N0l2TnhMM29tSG5nLytRczN2enZQbnZrMmp3Cm1pL0NpS2hwVjJZdFc5dWk2YkpK + bFdnMEF2VnE5dEdLSkoyQ3l6UHNReG8KLS0tIHlIN0U2Y0t2TWJTM2VuSEQrdEQ1 + bTJBaXZBdVpZRFlDV05IRE5nNFprVGsK1NDgQ15rPILU+rz50wbkiyacdshipmUP + FlWM0P28n810O9Sk/x9Hw4LD1GNI0SvldmgAt+c198PaP4kF2DfTZg== -----END AGE ENCRYPTED FILE----- - lastmodified: "2025-07-19T17:07:16Z" - mac: ENC[AES256_GCM,data:rXQlQVI6SOo5HXgZhCJAoMKqzmqwvAZdC9McZTaB6BAlAqBUkxmvNt0TsxfO/BngXUix/yIPZCmdWMiPoKuui0SnuZR/cutN4gZa9mwA7/LSqIuBUNdvOWrJCRQMPla3hrQEHPI//pAsAPlrzpYPhxi89fumGDcYSHW/tohJ0kA=,iv:s+l85/wml+uOEnz/yoJzsucj9tziHtpBamasVN2jG/g=,tag:z54uFmtOQw+Gs8nHbJ5Ovw==,type:str] + - recipient: age1afzpkw0u6s796tv3e84f2c46cr8curwuvus8kd9dr24um5fja4msvf838w + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUN2pWZWRXaWJPZnpUUWQy + aWUyb200cFY0STFFOXFkbUNWOTk3VjFGOFRzCkNTN1A5NXhoa1g2cVBkbzZDdDVs + WEpTMVpOR3NlMTlDb2lDd2tvcTBMVDQKLS0tIHFYV0V6SjNNSzQ1OWUySjBPRUtI + YVRmUkwzZEZZeGxubHgraEVDaytxSkkKILZxyF1YUBjbMK3rx97hL2PTvHsWs4d5 + UALyu1vhPFQqrSENaP7L0rA48zb3O7IgcaXN+o4yUt3PAdcqsiDUoQ== + -----END AGE ENCRYPTED FILE----- + lastmodified: "2025-08-02T18:05:54Z" + mac: ENC[AES256_GCM,data:eoEoCMwmF0KVQVO32C9gkJHMOxxae2ZQ54dVpg6Iwjrko8i39EQsgZ/Fps1bBfhRiIijYAUUlUAjskV6mZ7a0h4uGtbPalYe8apIGnpFjIRNxKJ5C2PJqLkikMbpLd3oYDIIvTl0IVGN98s0ki6PuRHbSs/DYbYk7oZZie6vy4g=,iv:sfWcrpjJimVK6HUow2hphQqDN6nIGF9TJEKkXM/3shY=,tag:Oltq2l++S2IJND9fh7JJQQ==,type:str] pgp: - - created_at: "2025-07-19T17:07:09Z" + - created_at: "2025-08-02T18:05:33Z" enc: |- -----BEGIN PGP MESSAGE----- - hQIMAzwtBoBqH5ZOAQ//ZhD72QA+bliRW0pWpMKe++KTkSmqu8Xc/e42FGGtT/JT - cUhA2KOuUGt4qjK7tCgvC6eTQsPWk224UG8gx5PsXreYzzxeAn6tHmxJd9ckJ63n - dOFN0yoo0JMwu6AJ2V+oaSZWgg4jFC6E/fJ+L8juWGVYwtfVIPF3PmZ94425Gxam - RftfePcEJPTMSCIZY81DAVpJkewwfl0AspprMJi9fjvsrV+1y6naQApsbcPoXjmQ - C8l7w4K79G9bdPFmeYE3O9nkwgDaFw/17XGZBg59KtawJqFg/tzDKOCwUretPafV - 11fNJs4pit83Z++8Nb4+QtyruK0LXrEkgAt1lFTN5EqoRVQ/iqp/bYokybJ2tltu - A7B5zTffazGvHUT3iMBLVYI7ICCC8a/LoroUA1ZOomfXn6zDgDpf5SCIi9SYTSHm - iYQ/EV+3dRU1byV87hHBfIRkcsHHo1wNU6rjIFIsGMt68uXCIltt2wetZPTWI0+A - /fOHKY7ouBj0+aPiA1lXQ19dvIX4AIYnCrnYAHVrJEqscWHw3uXjnESS3L9awZ5M - xFNWGO2Jb++h9xQ3IB8t/SwL1BG/qhPaN9ixdHjWrxg3O9cM5/PIOz9To4+46j7K - YxVB9d8Cay2uw1Hbm1bmJOHZWK47PZbBkAdnJIws6nWJVtzdEpOH3C/M1ISIKRfS - XgGhM3HvrPDEbrrlKD6ilUbOwNqRpN1jsWoGqfvSY9KPm46+E+iq9XzpCfo4YC23 - KBxKgMOe45Qf2llvF+bt9gNoQscG2lrxJCgmgNq/87zdz+zr9MB5MpMXY7ZaYUI= - =o3ND + hQIMAzwtBoBqH5ZOAQ/+IPwPuPq3fBFyLD6ofy5i3ieha/TrxIdY5RmnO1Fe+tfE + cfe0V0EjEGq1OBqcmStqs2UMAnfMmw+0kzxGxeIfrZ7h1MCyQnBzxUuLWCw5sBlZ + TzvdUJCyg+lWmAR3T1sSRr8o/SdYE4174ym6b/z8Z8LAlhBFeHdiuGHMTGEc4/XL + PAxq4KAtovmRQOqEzKqQQcsRrB6HMKR/R8H7hKce6Tqn9uuvjOpWs82FES19ABsS + uJ8ySK2NQBtatT9VYKMuB0dF9B7hy6iy/tdGkVrNQE3d7d71dW3DQn4brMWceFdq + cKo3JD05NOeya5kvGyJmE4qDhs0W48tMRLzjwME7ldKK9WGLTbLUHQn9Vsc/d0nh + FzgqXXC5QiB0fU8QphkgZyzS84Jfk7wtoeSmUZNm/0v43AekGJ5w43YTPnEe/BX1 + Saoc1WL2IngR3Quu229gbEH3ershmtegh1T5Lh8iTvvmM6Fgu5uvpblPWpTfNqwG + rSPGMSKGi3l3jKQT6UiNwZ4ah4VPiXxI6FaFyWGyq0HBKAcwBxETetUgGce+mjsR + sE9aaGKqQ1alhAsPoAXorqlZmlZTygGL4cDpsAUsiz2YH4j/EByBm9RYyYhTC9kb + qpdfruN8jy1PfKQl/f1UdGW8010pJ0a/154YWrfdouOC0RqUWSkNHSSAeS1GPG/S + XgHnTNoCL7AvVe4RyYjnMAqxu9wznffy+C7HORQ763cm8uBHh4BpfenbY6tlRdwc + 2Q2vxLDpZRP2AfjqDPEIWet1kcArd4QRKYAgKUFqxR2Cp43ZSIjAejl3TPH00DQ= + =KSwB -----END PGP MESSAGE----- fp: 58EF8D71114EF548DEE3320DE6F04916B6EEBD83 unencrypted_suffix: _unencrypted diff --git a/secrets/paperless/secrets.yaml b/secrets/paperless/secrets.yaml new file mode 100644 index 0000000..d82a7cd --- /dev/null +++ b/secrets/paperless/secrets.yaml @@ -0,0 +1,38 @@ +smb_pass: ENC[AES256_GCM,data:dp/ollY0DyE+cbVEDGOsxJPok1U=,iv:aRQcDU7vgMRptWv5YnvAAijhC0psAZhe/Dy7QicGElw=,tag:kSzRJH41u6fJOcyu+/0iyQ==,type:str] +smb_uname: ENC[AES256_GCM,data:9PeiXw==,iv:l2yjW9EkQa74dTKq8b0a7geNsRK11/ytm0SYj08+kB4=,tag:E4dEwdXZ/OTjj7UBGgVNMw==,type:str] +sops: + age: + - recipient: age1afzpkw0u6s796tv3e84f2c46cr8curwuvus8kd9dr24um5fja4msvf838w + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3VWxncCtENlVwK2k4eUJG + dStzR1BNWmFsUTU1WGg0d1B5eEo5ZUgvMXhNClZEdEpBRGVqbDVXWmdnMkd3bGhH + WnhuYzJOZCt2Mmo0ZnI1cVNoRkdOQ2cKLS0tIG1XWm9haE9OVXNYQko3N3dCbGRY + SzA2TXJNcGVqa1lLNzU3WFN0elllN0EKjP9Kmtm72LSLCeUHOkPuIj8GoDJ5w+BY + 1SUc+TzyT8qfgUv1lnGoiBdzmZkHLOySvg4aBStACk/3kdJfjHX9Ew== + -----END AGE ENCRYPTED FILE----- + lastmodified: "2025-08-02T18:32:09Z" + mac: ENC[AES256_GCM,data:hUakvI0shkqtLup9MaviNeXTROhMmCy+fAvWnqnCRB9MReIQlSjahtPyi/nyY9HgHBQbu4Gcpn93G3u5StXrmCFCWZJEoCMMV8SCraCtpKxdykAena7TUElz8cQXdxk9Azowb8nz+arFg+oyKlbik/NdB3Nl5JJ2Z+c+pQLydR8=,iv:BLG91tFRFjMGFc3v72VO91GCYRoQhev3xK8Glaxmg2M=,tag:HoaC20y8jK2LS+62XNnDAw==,type:str] + pgp: + - created_at: "2025-08-02T18:31:31Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hQIMAzwtBoBqH5ZOAQ/+MovGsAkeeP0HSvr6mTiC/Bh8NrOgvphOo1ABo5aeNtiH + 1axA22Oq7gXTztItS2xxbgk5PDBfw/jnVxPFU7+pR1VIofIwQcr4F8HA4+ARGzS2 + urf2Y0toJjIAKLu8ktAvLCXzvA9o6G81Qqomvm87CO5ig2tJviE6TTTM12HDCMGm + UUI6vXZGxsU10WAlxB+6UpetwTfoMyNpg+k0yjZeGHKpwnStjvSlx9pPCZ/v/J0+ + MP//dd5y54sbzrtvKsGg0Ga+yUwy+iq62Axns3o+bQ2cFQvdGdzZI5seHQmFRQNF + io4rIlSzippqGe3YUtcBO/Vzsf00zrV3M+Fy+yLHyIHUyHMNWKGNhNFEPPuqMjKp + SLkKvJtfME21jGFjvuwLNJZqiwIPbVPF9p8vdyQkSeCHlLqk6sVG6xvEEPfarejc + n5CVrVZNTI1Y11KzL0D9O4utIBNx2vW7/b4Sp0GodSrjYDMGiusyHczyNCY2IOoR + 3BpY9+iLIUNPTX99XE79HupSDsWqGYruTN/FYy7oiYpDVpJndJouVJ4aGr3PRNKs + cT7MhoO72KPQlmMWz2aLxr6dGV0K1McQfk0CcL9lgEwR1PetSFLrGgS9B4T1gwe/ + f5eHgGEsvrecOI7QPJaeb79Au3VFvx4QewiTJyxPe6NQKaS6vRtW2r9ejj7eaSHS + XAH1v/YNwWVwj6LrGZSh1T/U0XGH6bDqQFlzaQgKTjnn+mho4peFdwIRG7UNICeS + NivBLn66i8wnqeg4+vWQpfYKq4zV1nDmyeSQ5EtdDDK1Pq4lZvQoZuQdFA1O + =TO+4 + -----END PGP MESSAGE----- + fp: 58EF8D71114EF548DEE3320DE6F04916B6EEBD83 + unencrypted_suffix: _unencrypted + version: 3.10.2