Compare commits

..

No commits in common. "65c2b9872b55918d057b5489de81ce2c59480054" and "0d5ca344fbcedaedae60e3c036cab5e21d70420a" have entirely different histories.

11 changed files with 131 additions and 85 deletions

View File

@ -41,7 +41,7 @@
environment.persistence.ephemeral = { environment.persistence.ephemeral = {
persistentStoragePath = "${persist-dir}/ephemeral"; persistentStoragePath = "${persist-dir}/ephemeral";
hideMounts = true; hideMounts = true;
directories = [ "/var/lib" "/etc/nixos" ]; directories = [ "/var/lib" "/var/log" "/etc/nixos" ];
}; };
}; };
}; };

View File

@ -0,0 +1,54 @@
{ config, specialArgs, fqdn, ... }:
let
gitlab_home = "/var/lib/gitlab";
gitlab_host = "gitlab.old.${fqdn}";
in
{
environment.persistence.save.directories = [
gitlab_home
];
systemd.timers.delay-gitlab-start = {
after = [ "docker.service" "docker.socket" ];
wantedBy = [ "timers.target" "network-online.target" ];
timerConfig = {
OnActiveSec = "30sec";
Unit = "docker-gitlab.service";
};
};
virtualisation.oci-containers.containers.gitlab = {
image = "gitlab/gitlab-ee:latest";
autoStart = true;
ports = [
"127.0.0.1:8080:80"
"2222:22"
];
volumes = [
"${gitlab_home}/config:/etc/gitlab"
"${gitlab_home}/logs:/var/log/gitlab"
"${gitlab_home}/data:/var/opt/gitlab"
];
environment = {
GITLAB_OMNIBUS_CONFIG="external_url 'https://${gitlab_host}'; nginx['listen_https'] = false;";
};
extraOptions = [
"--shm-size=256m"
"--hostname=${gitlab_host}"
"--pull=always"
];
};
systemd.services.docker-gitlab.after = [ "delay-gitlab.timer" ];
networking.firewall.allowedTCPPorts = [
2222
];
services.nginx.virtualHosts."${gitlab_host}" = {
locations."/".proxyPass = "http://127.0.0.1:8080";
serverAliases = [ "gitlab.${fqdn}" ];
forceSSL = true;
enableACME = true;
};
}

View File

@ -7,10 +7,6 @@
]; ];
boot = { boot = {
tmp = {
useTmpfs = true;
cleanOnBoot = true;
};
loader = { loader = {
systemd-boot.enable = true; systemd-boot.enable = true;
efi.canTouchEfiVariables = true; efi.canTouchEfiVariables = true;
@ -19,7 +15,7 @@
kernelParams = [ "audit=1" ]; kernelParams = [ "audit=1" ];
extraModulePackages = [ ]; extraModulePackages = [ ];
initrd = { initrd = {
availableKernelModules = [ "xhci_pci" "ahci" "nvme" "uas" "sd_mod" ]; availableKernelModules = [ "ahci" "xhci_pci" "virtio_pci" "sr_mod" "virtio_blk" ];
kernelModules = [ ]; kernelModules = [ ];
systemd = { systemd = {
enable = true; enable = true;

View File

@ -1,4 +1,4 @@
{ lib, root-disk, persist-dir, ... }: { modulesPath, config, lib, root-disk, persist-dir, ... }:
{ {
services = { services = {
fstrim.enable = true; fstrim.enable = true;
@ -69,20 +69,12 @@
"/root" = { "/root" = {
mountpoint = "/"; mountpoint = "/";
}; };
"/var-log" = {
mountpoint = "/var/log";
mountOptions = [ "compress=zstd" "noatime" ];
};
"/nix" = { "/nix" = {
mountpoint = "/nix"; mountpoint = "/nix";
mountOptions = [ "compress=zstd" "noatime" ]; mountOptions = [ "compress=zstd" "noatime" ];
}; };
"${persist-dir}" = { "/persist" = {
mountpoint = "${persist-dir}"; mountpoint = "/persist";
mountOptions = [ "compress=zstd" "noatime" ];
};
"${persist-dir}/.snapshots" = {
mountpoint = "${persist-dir}/.snapshots";
mountOptions = [ "compress=zstd" "noatime" ]; mountOptions = [ "compress=zstd" "noatime" ];
}; };
}; };

View File

@ -1 +1 @@
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJZzZ6q/V7f8zbb9Xm0uZPn4zfdXAj3QgwGkGKzEV9Q5 luna" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJO2ufKRT1NCwp4c9cbOjxfb+/XlY8AUgnDLObA0gYaB luna"

View File

@ -1,15 +1,15 @@
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IFdvUU04QSBDRFJ6 YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IDFmRzBvdyB5Sm54
Yzd5dTVSS2JYYTROQkJmbmhoc0lQbnJQaFFRdlR0bDJYblZjT1dRCllHeVNSSmpq eEZVbVJZeENxVm5YWjBzNHlSRG1FTEJvRm5QU0pnU0RSSkVPMlFJCk1mTHQ2eUVs
dHRqeXRITWVveUdFOHFSSXhqNmk5Qm1TWENEMk8vbnQvM1EKLT4gcGl2LXAyNTYg WUFTa3hwM0Ivc0JnWjJPdUJLWTJxUnIrcVkxV29jQmF1R0EKLT4gcGl2LXAyNTYg
ckpzMUhBIEEveEkvWWQxQWt2RGQ5RGtGeG5xRTNRdkZRNzJIQ2ZVdVU3OEcwbkVn ckpzMUhBIEF5T2FReDJ6akp1MjBCMWlKTnV0NnFyZVY3b1hnbVhwZmhVN3c5TDVP
MENEClpsbzZvVVR3L3VOcyt0M3FZN05MTGxFUXdMNERLdDcvdjFzcTh5QXB0dDgK YW9DCkxUNk1lR1N4TzFHSGdLNERaQ2wxdXd4bjVtUWFKT1h1QWYwUVpjazZPUlEK
LT4gQVNpSm4sZF8tZ3JlYXNlIFUzdHZgCk5tTWgwbCtXcCtpcUorTW1Xb2NOMHpB LT4gJjVRQU8tZ3JlYXNlIDpICkxWSHdOT0EwSVpXdzJoQmVEeHdIdGlxVEdXUk1w
U1crZUpuWVBxZ0FVV1FRSzBKdGJ5U21TbDBZa0oxTjJGZXFMTHRKRE8KVzZRR21F MkoraTB5anIrUStOMGpMbEdpYkhadUliZTA1R0N1d3h1Y1IKWkc2NzVRCi0tLSBR
QjR6VTl6WmpVMkN5T1BVRHVCcGZPbW0rUQotLS0gNEdETzduNUhEV3JvcGEwczZV Y2cxTnB6bElHWHlMeXhxajhjeDF2TTJqMndJbjlNUWVUQ1c3QjhJTVdnChQsSDjC
eXUxREZOVVdxMHhObk9LOXBSSjN3U2gvdwozi6VTRpR9IbD3Zq170Yvq2e1trUAj IWGSOJD8wfLlou/BFvp7x/e/dobgW3FMazunhUqV5K09jp1Ak7nTeeyRDUz+Mpv5
YlTiojTiHQUPDmaril1FxoZVHJpwMngTPk0iDzb8BdrVwrD8oURH2CGvBvGUoTig HaZqL6aCWNn6ZhprF+ZBZfYVyw7EdaCWNAFrR25DP8/JQrQ3lrJIoJZ3VF1a4y+l
/tMqox+NOVg5a/+6hmN2MldoV1ecWbFswBIln8/BE36M7HRTrUny58zguw6mT+62 55rLJIfBkho6HHycZ6hde8fo4lGUMhsSC2cKviMwa4FvMH3QpodOuN0h5PAX20mg
Ca6z329mULHqPSxt2cFHaDSxwaiJj7FoOwy6P8F8RY6EX31vWmXmCHgOSUXQ7kVy 19uVVQnw4AOUgzm7QZ32Gesj8vORnQHQbFhERlooDuxTSrvnkpBztaxSTVPcv5d+
KgdYvJds19sod59QrcvgMs5wjeyBlNAYCv2YLLQj202Zp60E6aaA wDf/rxP05UA=
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----

View File

@ -1,12 +1,13 @@
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IFdvUU04QSBOaENT YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IDFmRzBvdyBYTndG
d2o4dVRxaXh5cVltNS9ob3oyT0E4YVFrSm5va28wVmV4YkdxZVFjCmUrY09scUwr b3pCWDA0T3hnMC9mOXlEaWRLMVpSbzhmeWliMVc2MElsekJhc2dVCmFicFY1WXAv
NE8zdEVmREpLZGZEUVo4bnVHTHM4blJVNHl2Y05ERlhyVjgKLT4gcGl2LXAyNTYg ZEZNaUNLcE11V3pqZHBBWHZXTzRXTnBHN2h3a1R5ZkhzaFEKLT4gcGl2LXAyNTYg
ckpzMUhBIEFwenhTY1JrblZCOHRZdldpMXNDMGwwRDgwYkJwV2Fza0I3eW04WGJX ckpzMUhBIEE3V2dzUkhYYmFTSHAvdlNmeUgvRENzbmV1N05QQUNoMlRMMjZPVy9w
ODFRCjAwS1Q4L2R5RWZxUldvdWZUSzRxSTlUWWRpMTBhaDR0aW5ZM0JxVjUydGMK WmV0CjJsZFowa3d5dEpZTXF2c05tSkJEalc5bFJUNmxGdUZwQTlTQjVEQXJxSkUK
LT4gbS1ncmVhc2UgdAppWDAyWnFvNGtxSWlVWnlCU2diYW11QW8xejdFTkZYejQw LT4gQUZ3c2BxRS1ncmVhc2UKa0dwbElwS2NYaU5ubzdUSHpQR1RTWmFXOUxweStD
bnhPVGZPRzZ5aEU5bGxKdGh0aG0wL0J3aFZ1d1RTCnM2S1BzNTdkN3cKLS0tIHVa Y0Z4emdFNHpIb2ViQnZmWFdnUVB3YU9CL3I2Vk1Nc2Y1MgpGdTFLeHNwVlBzd2la
Qk5jcHdmdUJPb0RXZVRpRVRNOGlYdndZQVVZYUQ4S1gxRDNKMGpxTUkK5Rjeq+nK NTdNT1c2T05uQkpUT0t4c2ZSeFNiZ3ZXSzhzUXNHOUtUMDRKQyttQVF5QXB3Ci0t
qfdNFv7evcxmfL6AvINareVNi5c7d5G9buRRTre3me9PmBv3u5NXbvspLY1SRvax LSBqYUdhdGdqckRRcE5IS0EwTlZ1dEZlRm90TStiYkxzdTZabGV0VjlSK0N3Cu+b
NPR6XbkoDLVZolOAWeEgpXEE+1surFkVFQ== 4KRcjCda0CxdH4Z2pw3ndhUU596wdGT7Py92uIiV3kdPLFgaUXHL8qMiAoC74o9T
BzCx4IobN6ysTTSqT3awzFpJGt8Mqt4sjt1zEz4=
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----

View File

@ -1,14 +1,14 @@
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IFdvUU04QSBsalFx YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IDFmRzBvdyA4VGhH
SHhwamNrQTZ4RHpSRGRmblhjQ1ZmT0RYNDBzR3JYWGM0em1pNnpRCnMvdklzeExS VVZrUUE3SUg3SGNMTWdYUDROZFRqRW13WHVjQmpmWHVOdHFtakE0CkRiQ0VnQ215
eU1hRno0c1lpR3AyL1FkaE91VjVBQ0VwQzJqaHJCQ0JQNUkKLT4gcGl2LXAyNTYg bU9XZDlMYWVtcEd1c09BYlFkcVZnL0xYLzd3akREdkxoMTQKLT4gcGl2LXAyNTYg
ckpzMUhBIEFsNkh3VW92NkdQZEhYemNiOGFPa1VSdS9keEVtLzUxakFNQ3JlanZT ckpzMUhBIEEvSytKaU45NC9Pa3d2OWtFUWltdjdpM3cwRmhCOU5YRWlSNUFFZThP
a1BBClBJa20xem5VbVlEWG9OK2ZBN1NUWUVtekVQNklkV3Bndml6VFI3Q3dQTlEK NWp3CjF5YzlYaU9jOFlsZ0xBWHdXS09TVHc4VVBxOGdoR3kxcjZnczY0cWhJRG8K
LT4gdUw8RTR5LWdyZWFzZSBgeXdFST0gQGRLdCxLXwoxWWFkV2tCem53cVpEK1JR LT4gOXN0LWdyZWFzZSAnSnVjMGpPdyBWbXN8WEkgcX1eQmFpClY3NlhUMFRyMURJ
dHhCMmdpZEovOUk4b0VPa0p5MnBNRzhnczN2S3NORTJpRUpwVm5DNzhndlFPa2JG Wmw4d0plM3R4VzNCeXZnK29jbVl1NHc2ZjdCb1R5M2xEYlhXMFBTbVlHdngxb3hJ
ClY1L2Z5NHBqRGM4NmxiVTU1bW8zTG94eksxK0xtc3IxdFY5Rk1DNAotLS0gdHhZ Y2lIdlAKVTF3Ci0tLSBZR216cXRYNmJ1ZHJ4RHlmaWdTcmpSR0cwMVpDVTh4QjBl
NWFlUitjRFBQOEF5TTZXSlMyTHlTblNZOHpicFFRazU3NFdTVzQzUQrc8qpgfFHH Z013Uktsbjg4CnXf38il0oLVMjg7GwLmE6GCh4R3EJ7Bs6fPZLf7ktcCmy3FAiVQ
03zJk7Ru1ybG9EIDcnAEW0itJex/l70m7/Ckt6B4vwczDlEl3YKvdFwHbSkfpM08 nZ3nndURKmcvawZHCnnANYKxzILcwgF1eQrtV4Mf/giBJGQASu8zx/F7NIR1vXnt
ykmzrts0vqA0rBYRXxbuVfV12kemhuIQVAHglpy3MUQJ8a7oSfKokCuxqIpqBIW/ IOXiboxism7lhh2Za+qK0hdxaDsmXvB46kuxgtG0x2E3jC0NaANKFEmE+aS3iMTl
UoFw9HGH8Dmk3SWPuddgyJxbtFT7ugP38AE/2F50D/ceEk3Y q1cdOuM=
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----

View File

@ -1,12 +1,12 @@
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IFdvUU04QSA1a0dM YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IDFmRzBvdyBJbnRJ
TVh2SkJITnc5RFFoYXB5WFBFdXBBZXBDb0U3UkVoK1dhWWl0WWcwClliSWR4MWR2 MTl2TGR4OTQyV0VVSm9CQ0F3K24yZmRpK0xrODdHWDZTTUtyRFFvCjB1dnAzdkxu
VnNEZkpTN2VYWVpRK1FqSHdESjBxMndIdk9zVnpNdG9JcGsKLT4gcGl2LXAyNTYg REREamdiZmRqdmxSQm1ONHZiKzVpZnZBczFrcklJRnZzSDQKLT4gcGl2LXAyNTYg
ckpzMUhBIEFqd2Vtc2tDLzI3dEFCWk4yTiticWhYWUszZitNek5sVXF0QkpNMFcr ckpzMUhBIEFzMFRXOEJPUDIrb2N5MzdoQmZmR0VlQ285SnBxRk9heGh1SmxaYTJR
MDZUCk56Q1JUSW9CcTEvMjZlelZya05HVXZSWHFXU1BXU3p4enhGREErY3BNdzgK MmhECmhFV1BiL00xMFdpOHlublJHamhmOVVaODB5TE5uT2NCVE5Uc0l2SURWU1UK
LT4gZ29rX2V3Ky1ncmVhc2UgblQmRHQgJyBECjhJeG4zTWl1S1ZhcAotLS0gYTNK LT4gWnxYO3RGLWdyZWFzZSBxVQoKLS0tIE13WGJqR0dpY0p3UlBkeWFVVm96M0Qw
K25ESFV4c003RUJ3WnhKbG1Zd04rYStaWmdEbm5QcGREVHNyb04wbwom2cKrI3/i Y0ttK0FGTHZDa1I2b0xCeE1aT1UK7DcEAWPiclnaKA9MZNtiIf89clLK3aADLgA1
dSD9FChcxABPd73Hx5n+hLv+FHEcg3VrLRByhfdYRlUydRlj2HRZox5qju4yqF7x Dj3VvSYQbC2/GlS8KKpnB5KrwuMHEiCFk8QNzP3u5kmxtoxR88mxGgOczNoQu8Fd
3QoWfkTM9oelWXXXbhiWnNuNyBo2/DUjgV5IQfY/8kSXGxN19tofRS516uQJYrDU 2rDXEQGmt+1xt8mO4nj0THABrxvQTr1lYappdvmuT1w8py1ip4qTZWw2hv9kiCQ1
2UaPa3KnTOnlXIiFceUpP8enWfD0D54SYBQkhosbiI6PEXrv Lu6rJssCAUEs/NWAWfD2Mg==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----

View File

@ -1,14 +1,15 @@
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IGNmNCtpdyAxMVBR YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IGNmNCtpdyA3UHl3
YVMxTmhkUllvZDVtUmZ4M0krcE9hNmdtb01McTdCZmFFVk9rT1VNCkpRSWlMcGpt QmhOR0tjcFErNVpJd1JNbzZoWmRmVEtiNFR3d0xia1dNOXd2WURVClc2S1laWDZ2
cTY1T1dOK21Kd1M4MnRJRHE3SnRTdk1WaDNiWE1wTGd6TUkKLT4gcGl2LXAyNTYg Q2E0dU56RUVoN1RmS2lpazlnVFhEUkJyUnE4WmZ5OGNnL00KLT4gcGl2LXAyNTYg
ckpzMUhBIEE2WGczY2hUeWJOSTFoTk5HekN1ZEZCZ1hkRUJyMmRsYWs0S3BBUDhI ckpzMUhBIEF0emdpQTkvaHoxakRIUHFNZnBKNzZoRkpmYzM3L09yeko5SW91ajRH
azNXCmliaVVXVndIb01scXRRWE9uVnFReEhXNmRKNDBoWXltVzhjZm0yUGlQaUkK dy9iCklwTFB5Z01pc1A0ZnRKVEFoYlZsQjBiL0l0cVVwcm13cnNHTEN1ZDZnV0UK
LT4gIy1ncmVhc2UgWXJsaHlgTCBCWWZPXlRhICtbLmUpfmkKVU4weDhWWVh6bWk4 LT4gfDZrMWtaPXEtZ3JlYXNlIHwrfV8geFY1Mz53Ogp3QTdqM0wyMGx4ZTNicEtP
Y2ovQkhPVzRoaDE3Tnc0RXJRTitHSGxJaHNERXNjQTlKZHVrM3B6bVZlVksyTGtu UktIYkpMLzhSaC9JSG9FeWNvNGlvQUF6VDE0bW5HSEUvVCs3L01FU2lnNVNqNysy
a3o4QQozcnJvRXhYdFBwRTU5VCtRTHlwczAvYlR1bXNoOEZDOUR2OHF5NmJxTG5R Ckt0WFg5REJRdnZ0ZDF4T2I1eFRkb1ZLcjliWjNNNytxYk5RcWpKSDR6MUpsWURu
WFh3MAotLS0gR25tRXN0aWpuQzY5cVFVcXhxcU0vRDl5VTcrWFdvdmxhT2J2amhZ OWdDQWlBQU9rWTk5RU9sQ28KblEKLS0tIEF6Skh4N0NWMVlZOXcyWVhiMUtWRXcv
aTF3SQruXpwozUYt5QoeEDnn6aY8OU2J1FN+zYrXh72HCdHC3DWxiBjEcyZaim+1 dUpNS2xnMHBRd1djbC92TUI5bFUK1ZM/H3yxgBVHspKrfNM6sag7ZiT+ZypSDouI
mUL3N3FbGXA3ajwGe1Eke1GBOz5tfEJJMjRKbiqFE+uwxsKVlanq9MrZphnKzjsB RoNZBcEjQUarcS2Dxn4G9amAUor0gZcl9hlx3OQnG8HLrFLhryu/550aKeVJZxtV
5Kza9ETW1p72EtOAbYLh78040gUvtRNESwN+/QFgiWK5EMlY0pu3+LKNZdRjFl+v 9AJdDMV2XuEqSEx+mjNeUwAc1nvO9nTC0YKwvFILtvJPPateLZhbGfOzba2UO4EM
aoX5QgifkfqJx7ZZ9Qmb3Q==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----

View File

@ -1,12 +1,14 @@
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IGNmNCtpdyByQ2Z0 YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IGNmNCtpdyA0T2Y3
Y3VqTTFPa21BOXZ5cGQvNjQ4TmlzWEVOb0s5d25hUFI4V1pWRlhzCi93Nit4cVMr RjdlVHRGVzdTa2VmQ05tNFUvc2xVV1NxZ0xRV0JXOXRCa0V6ZHowCnVsaERWYjN5
RDg2TXBJY0lKbjFpaWhlZ290dDBxa2V5aTN3SjlPYnZzMEUKLT4gcGl2LXAyNTYg c2J3V3A1LzRqZUNUQWU0Y0ZMSkQ2OHRkRzJIY045L2VjQW8KLT4gcGl2LXAyNTYg
ckpzMUhBIEFxQ3JYUjJNQ2YybXNZTStEVVFzUE9TVnBIYU9UK3B2WGMxeTNISUNO ckpzMUhBIEFsMnJ3ZGhkNHRaTi9BNjk2MnBsMnprNE5CdEhTVGJJMHR4aG1CbVZJ
RnhOCjg5Y0toMFAzeVJMamh6TWhreTMwaStyY3NTUmtWd3lZTmhycmVSTGZEdDQK WnhYClVvNUh6L1AvaERGb0pZVU1kUzZLWGNLSVo3NWZSQ0dZSFI2WDlxcFlpNDAK
LT4gITRrLWdyZWFzZSBtKCBtNUgKR3lUbmFpRXh0MHVwUm5FQkY5bmRLTVNSbjhV LT4gPmZIbidXYi4tZ3JlYXNlIEdLKDI4cmggSgpOWDVqak1iald1ZlRPcm05VVEv
WnprMAotLS0gQzhTcVB0VnZKUUJHcjk3ckJXbFcrVVJ1YjRvNGhOemxsd0o5czhE ZXhzMHE3RGo3SEs3blRMSHpoRU9QeFVpdENERXFnNE04NDBuMzEzSUhhRUw5Cjh3
MmRMMAqf3WKatFl4s/TjRG/6RHPa0DXeePrJ+YJ67csK1sUBMQwJqA7OhoL2Y0lq bUNYRkl4L1plQk5mRzZHSmtPUTZaMCswR052bndrbWpNL3lYRQotLS0gQ2pMTVBx
x7Vjn0IfRkFK2vPg1Xgz7hnQ9lgMOdgu08GY1NeMnuKGez+ZyjV9aFz08Q9I8Zrv VlZyaUFvc0NJOTFkZGVsZnJUYUlnVmdlem5SdFV4OGMvYUhvQQocxqI0TBwKWsSJ
4YZ+NMhMefndUWn/645DiT0fL0H/OWol/FDnhPUIPSeP7cnMp2jJcZJRBX3oQri9 amGmeBJsUze1Rhlg9ErW7ei+dA//DuPIEK4nqCpwTNyhJGbBUBJKOW3plX2NyQwH
ReC0GvHQRSxQWUyzPdDRefAhJpbFX/TB/TlB5k/iq3/BgXacLOuUtbkUWtPu0X+R
jdYtCHiJGY5IuXrfhP4OZcPbVhVGEx67e5ca0RMbsAqJ
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----