summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitmodules3
-rw-r--r--ci.nix2
-rw-r--r--jeschli/1systems/bln/config.nix173
-rw-r--r--jeschli/1systems/bln/dcso-vpn.nix44
-rw-r--r--jeschli/1systems/bln/hardware-configuration.nix35
-rw-r--r--jeschli/1systems/brauerei/config.nix20
-rw-r--r--jeschli/2configs/emacs.nix1
-rw-r--r--jeschli/5pkgs/simple/xmonad-jeschli/default.nix2
-rw-r--r--jeschli/krops.nix1
-rw-r--r--krebs/2configs/buildbot-stockholm.nix6
-rw-r--r--krebs/3modules/airdcpp.nix278
-rw-r--r--krebs/3modules/buildbot/master.nix1
-rw-r--r--krebs/3modules/buildbot/slave.nix2
-rw-r--r--krebs/3modules/default.nix1
-rw-r--r--krebs/3modules/jeschli/default.nix37
-rw-r--r--krebs/3modules/lass/default.nix38
-rw-r--r--krebs/3modules/makefu/default.nix27
-rw-r--r--krebs/3modules/makefu/ssh/exco.pub1
-rw-r--r--krebs/3modules/makefu/ssh/makefu.android.pub1
-rw-r--r--krebs/3modules/makefu/ssh/makefu.bob.pub1
-rw-r--r--krebs/3modules/makefu/ssh/makefu.omo.pub1
-rw-r--r--krebs/3modules/makefu/ssh/makefu.remote-builder.pub1
-rw-r--r--krebs/3modules/makefu/ssh/makefu.tempx.pub1
-rw-r--r--krebs/3modules/makefu/ssh/makefu.tsp.pub1
-rw-r--r--krebs/3modules/makefu/ssh/makefu.vbob.pub1
-rw-r--r--krebs/3modules/makefu/ssh/makefu.x.pub1
-rw-r--r--krebs/3modules/makefu/ssh/ulrich.pub1
-rw-r--r--krebs/5pkgs/simple/Reaktor/default.nix4
-rw-r--r--krebs/5pkgs/simple/Reaktor/plugins.nix2
-rw-r--r--krebs/5pkgs/simple/airdcpp-webclient/default.nix28
-rw-r--r--krebs/5pkgs/simple/buildbot-classic/default.nix6
-rw-r--r--krebs/5pkgs/simple/repo-sync/default.nix1
-rw-r--r--krebs/krops.nix6
-rw-r--r--krebs/nixpkgs.json8
-rwxr-xr-xkrebs/update-channel.sh2
-rw-r--r--lass/1systems/mors/config.nix2
-rw-r--r--lass/1systems/prism/config.nix10
-rw-r--r--lass/1systems/prism/physical.nix84
-rw-r--r--lass/2configs/baseX.nix1
-rw-r--r--lass/2configs/exim-smarthost.nix1
-rw-r--r--lass/2configs/games.nix1
-rw-r--r--lass/2configs/git.nix28
-rw-r--r--lass/2configs/mail.nix1
-rw-r--r--lass/2configs/radio.nix86
-rw-r--r--lass/2configs/reaktor-coders.nix18
-rw-r--r--lass/2configs/urxvt.nix2
-rw-r--r--lass/2configs/vim.nix15
-rw-r--r--lass/2configs/websites/domsen.nix6
-rw-r--r--lass/2configs/websites/lassulus.nix5
-rw-r--r--lass/3modules/xjail.nix7
-rw-r--r--lass/5pkgs/custom/xmonad-lass/default.nix5
-rw-r--r--lass/krops.nix5
-rw-r--r--makefu/0tests/data/secrets/airdcpp-makefu.pw0
-rw-r--r--makefu/0tests/data/secrets/krebshub.pw0
-rw-r--r--makefu/1systems/nextgum/config.nix5
-rw-r--r--makefu/1systems/nextgum/hardware-config.nix13
-rw-r--r--makefu/1systems/x/config.nix4
-rw-r--r--makefu/1systems/x/source.nix1
-rw-r--r--makefu/2configs/dcpp/airdcpp.nix48
-rw-r--r--makefu/2configs/default.nix107
-rw-r--r--makefu/2configs/home-manager/cli.nix12
-rw-r--r--makefu/2configs/home-manager/default.nix7
-rw-r--r--makefu/2configs/home-manager/desktop.nix31
-rw-r--r--makefu/2configs/home-manager/mail.nix46
-rw-r--r--makefu/2configs/minimal.nix88
-rw-r--r--makefu/3modules/default.nix4
-rw-r--r--makefu/3modules/state.nix7
-rw-r--r--makefu/5pkgs/4nxci/default.nix52
-rw-r--r--makefu/5pkgs/pavumeter/default.nix30
-rw-r--r--makefu/krops.nix17
-rw-r--r--nin/2configs/games.nix1
-rw-r--r--nin/krops.nix1
m---------submodules/krops0
-rw-r--r--tv/2configs/xserver/default.nix4
-rw-r--r--tv/krops.nix1
75 files changed, 935 insertions, 559 deletions
diff --git a/.gitmodules b/.gitmodules
index c96fec739..f35a9250d 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,3 +1,6 @@
[submodule "submodules/nix-writers"]
path = submodules/nix-writers
url = http://cgit.krebsco.de/nix-writers
+[submodule "submodules/krops"]
+ path = submodules/krops
+ url = https://cgit.krebsco.de/krops
diff --git a/ci.nix b/ci.nix
index 6d2378759..6f4b89b08 100644
--- a/ci.nix
+++ b/ci.nix
@@ -16,6 +16,6 @@ let
ci-systems = filterAttrs (_: v: v.ci) system.config.krebs.hosts;
build = host: owner:
- ((import (toString ./. + "/${owner}/krops.nix") { name = host; }).test {target = "${getEnv "HOME"}/stockholm-build";});
+ ((import (toString ./. + "/${owner}/krops.nix") { name = host; }).test {target = "${getEnv "HOME"}/stockholm-build/${host}";});
in mapAttrs (n: h: build n h.owner.name) ci-systems
diff --git a/jeschli/1systems/bln/config.nix b/jeschli/1systems/bln/config.nix
deleted file mode 100644
index 6e3c3bec8..000000000
--- a/jeschli/1systems/bln/config.nix
+++ /dev/null
@@ -1,173 +0,0 @@
-{ config, lib, pkgs, ... }:
-# bln config file
-{
- imports = [
- ./hardware-configuration.nix
- <stockholm/jeschli>
- <stockholm/jeschli/2configs/virtualbox.nix>
- <stockholm/jeschli/2configs/urxvt.nix>
- <stockholm/jeschli/2configs/emacs.nix>
- <stockholm/jeschli/2configs/xdg.nix>
- <stockholm/jeschli/2configs/xserver>
-# <stockholm/jeschli/1systems/bln/dcso-vpn.nix>
- <stockholm/jeschli/2configs/officevpn.nix>
- ];
-
-# boot.loader.systemd-boot.enable = true;
- boot.loader.efi.canTouchEfiVariables = true;
- boot.loader.efi.efiSysMountPoint = "/boot";
- boot.loader.grub = {
- devices = [ "nodev" ];
- efiSupport = true;
- enable = true;
- extraEntries = ''
- menuentry "Debian" {
- insmod ext2
- insmod chain
- chainloader /EFI/debian/grubx64.efi
- }
- '';
- version = 2;
- };
-
- jeschliFontSize = 20;
-
- environment.shellAliases = {
- n = "nix-shell";
- gd = "cd /home/markus/go/src/gitlab.dcso.lolcat";
- gh = "cd /home/markus/go/src/github.com";
- stocki = pkgs.writeDash "deploy" ''
- cd ~/stockholm
- LOGNAME=jeschli exec nix-shell -I stockholm="$PWD" --run 'deploy --system="bln"'
- '';
- };
- networking.hostName = lib.mkForce "BLN02NB0232";
- networking.networkmanager.enable = true;
-
- # Set your time zone.
- time.timeZone = "Europe/Berlin";
-
- # Setup Packages
- nixpkgs.config.allowUnfree = true;
- environment.variables = { GOROOT= [ "${pkgs.go.out}/share/go" ]; };
- environment.systemPackages = with pkgs; [
- termite
- # system helper
- ag
- copyq
- dmenu
- git
- tig
- i3lock
- keepass
- networkmanagerapplet
- rsync
- terminator
- tmux
- wget
- rxvt_unicode
- # editors
- emacs
- # databases
- sqlite
- # internet
- thunderbird
- chromium
- google-chrome
- # programming languages
- elmPackages.elm
- go
- gcc
- ghc
- python35
- python35Packages.pip
- # go tools
- golint
- gotools
- # dev tools
- gnumake
- jetbrains.pycharm-professional
- jetbrains.webstorm
- jetbrains.goland
- jetbrains.datagrip
- texlive.combined.scheme-full
- pandoc
- redis
- vagrant
- # document viewer
- zathura
-
- samba
- ];
-
-
- programs.bash.enableCompletion = true;
- programs.vim.defaultEditor = true;
-
- services.openssh.enable = true;
-
- # Enable CUPS to print documents.
- services.printing.enable = true;
- services.printing.drivers = [ pkgs.postscript-lexmark ];
-
- services.redis.enable = true;
-
- services.xserver = {
-
- desktopManager.session = lib.mkForce [];
-
- enable = true;
- display = 11;
- tty = 11;
-
- dpi = 200;
-
- videoDrivers = [ "nvidia" ];
- synaptics = {
- enable = false;
- };
-
- };
-
-
- users.extraUsers.jeschli = {
- isNormalUser = true;
- extraGroups = ["docker" "vboxusers" "audio"];
- uid = 1000;
- };
-
- system.stateVersion = "17.09";
- # Gogland Debugger workaround
- # nixpkgs.config.packageOverrides = super: {
- # idea.gogland = lib.overrideDerivation super.idea.gogland (attrs: {
- # postFixup = ''
- # interp="$(cat $NIX_CC/nix-support/dynamic-linker)"
- # patchelf --set-interpreter $interp $out/gogland*/plugins/intellij-go-plugin/lib/dlv/linux/dlv
- # chmod +x $out/gogland*/plugins/intellij-go-plugin/lib/dlv/linux/dlv
- # '';
- # });
- # };
-
- virtualisation.docker.enable = true;
-
- # DCSO Certificates
- security.pki.certificateFiles = [
- (pkgs.fetchurl { url = "http://pki.dcso.de/ca/PEM/DCSOCAROOTC1G1.pem"; sha256 = "006j61q2z44z6d92638iin6r46r4cj82ipwm37784h34i5x4mp0d"; })
- (pkgs.fetchurl { url = "http://pki.dcso.de/ca/PEM/DCSOCAROOTC2G1.pem"; sha256 = "1nkd1rjcn02q9xxjg7sw79lbwy08i7hb4v4pn98djknvcmplpz5m"; })
- (pkgs.fetchurl { url = "http://pki.dcso.de/ca/PEM/DCSOCAROOTC3G1.pem"; sha256 = "094m12npglnnv1nf1ijcv70p8l15l00id44qq7rwynhcgxi5539i"; })
-
- (pkgs.fetchurl { url = "http://pki.dcso.de/ca/PEM/DCSOCACOMPC2G1.pem"; sha256 = "1anfncdf5xsp219kryncv21ra87flpzcjwcc85hzvlwbxhid3g4x"; })
- (pkgs.fetchurl { url = "http://pki.dcso.de/ca/PEM/DCSOCACOMPC3G1.pem"; sha256 = "035kkfizyl5dndj7rhvmy91rr75lakqbqgjx4dpiw0kqq369mz8r"; })
- (pkgs.fetchurl { url = "http://pki.dcso.de/ca/PEM/DCSOCAIDENC2G1.pem"; sha256 = "14fpzx1qjs9ws9sz0y7pb6j40336xlckkqcm2rc5j86yn7r22lp7"; })
- (pkgs.fetchurl { url = "http://pki.dcso.de/ca/PEM/DCSOCAIDENC3G1.pem"; sha256 = "1yjl3kyw4chc8vw7bnqac2h9vn8dxryw7lr7i03lqi9sdvs4108s"; })
- ];
-
-
- hardware.bluetooth.enable = true;
- krebs.build.host = config.krebs.hosts.bln;
-
- networking.interfaces.enp0s31f6.ipv4.addresses = [
- { address = "10.99.23.2"; prefixLength = 24; }
- ];
-
-}
diff --git a/jeschli/1systems/bln/dcso-vpn.nix b/jeschli/1systems/bln/dcso-vpn.nix
deleted file mode 100644
index 0a5623bf0..000000000
--- a/jeschli/1systems/bln/dcso-vpn.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-with import <stockholm/lib>;
-{ ... }:
-
-{
-
- users.extraUsers = {
- dcsovpn = rec {
- name = "dcsovpn";
- uid = genid "dcsovpn";
- description = "user for running dcso openvpn";
- home = "/home/${name}";
- };
- };
-
- users.extraGroups.dcsovpn.gid = genid "dcsovpn";
-
- services.openvpn.servers = {
- dcso = {
- config = ''
- client
- dev tun
- tun-mtu 1356
- mssfix
- proto udp
- float
- remote 217.111.55.41 1194
- nobind
- user dcsovpn
- group dcsovpn
- persist-key
- persist-tun
- ca ${toString <secrets/dcsovpn/ca.pem>}
- cert ${toString <secrets/dcsovpn/cert.pem>}
- key ${toString <secrets/dcsovpn/cert.key>}
- verb 3
- mute 20
- auth-user-pass ${toString <secrets/dcsovpn/login.txt>}
- route-method exe
- route-delay 2
- '';
- updateResolvConf = true;
- };
- };
-}
diff --git a/jeschli/1systems/bln/hardware-configuration.nix b/jeschli/1systems/bln/hardware-configuration.nix
deleted file mode 100644
index 35f0b3bca..000000000
--- a/jeschli/1systems/bln/hardware-configuration.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-{
- imports =
- [ <nixpkgs/nixos/modules/installer/scan/not-detected.nix>
- ];
-
- boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sr_mod" "rtsx_pci_sdmmc" ];
- boot.kernelModules = [ "kvm-intel" ];
- boot.extraModulePackages = [ ];
-
- boot.initrd.luks.devices.crypted.device = "/dev/disk/by-uuid/25534522-5748-4dcc-a5ca-80a3ac70f59d";
-
- fileSystems."/" =
- { device = "/dev/disk/by-uuid/496c8889-96db-446d-9bac-60d4347faeac";
- fsType = "ext4";
- };
-
- fileSystems."/home" =
- { device = "/dev/disk/by-uuid/2785adf5-a99e-49d7-86d6-99f393f457ea";
- fsType = "ext4";
- };
-
- fileSystems."/boot" =
- { device = "/dev/disk/by-uuid/927E-01A0";
- fsType = "vfat";
- };
-
- swapDevices = [ ];
-
- nix.maxJobs = lib.mkDefault 8;
- powerManagement.cpuFreqGovernor = "powersave";
-
- hardware.pulseaudio.enable = true;
-}
diff --git a/jeschli/1systems/brauerei/config.nix b/jeschli/1systems/brauerei/config.nix
index 4cd544a66..ad58226f6 100644
--- a/jeschli/1systems/brauerei/config.nix
+++ b/jeschli/1systems/brauerei/config.nix
@@ -37,6 +37,11 @@
cd ~/stockholm
exec nix-shell -I stockholm="$PWD" --run 'deploy --system="brauerei"'
'';
+ deploy = pkgs.writeDash "deploy" ''
+ set -eu
+ export SYSTEM="$1"
+ $(nix-build $HOME/stockholm/jeschli/krops.nix --no-out-link --argstr name "$SYSTEM" -A deploy)
+ '';
};
environment.systemPackages = with pkgs; [
@@ -114,10 +119,12 @@
# Don't install feh into systemPackages
# refs <nixpkgs/nixos/modules/services/x11/desktop-managers>
desktopManager.session = lib.mkForce [];
+ displayManager.lightdm.enable = lib.mkForce false;
+ displayManager.job.execCmd = lib.mkForce "derp";
enable = true;
- display = 11;
- tty = 11;
+ display = lib.mkForce 11;
+ tty = lib.mkForce 11;
dpi = 144;
@@ -138,6 +145,15 @@
isNormalUser = true;
uid = 1001; # TODO genid
};
+ users.users.dev = {
+ isNormalUser = true;
+ openssh.authorizedKeys.keys = [
+ config.krebs.users.lass.pubkey
+ "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDB0d0JA20Vqn7I4lCte6Ne2EOmLZyMJyS9yIKJYXNLjbLwkQ4AYoQKantPBkTxR75M09E7d3j5heuWnCjWH45TrfQfe1EOSSC3ppCI6C6aIVlaNs+KhAYZS0m2Y8WkKn+TT5JLEa8yybYVN/RlZPOilpj/1QgjU6CQK+eJ1k/kK+QFXcwN82GDVh5kbTVcKUNp2tiyxFA+z9LY0xFDg/JHif2ROpjJVLQBJ+YPuOXZN5LDnVcuyLWKThjxy5srQ8iDjoxBg7dwLHjby5Mv41K4W61Gq6xM53gDEgfXk4cQhJnmx7jA/pUnsn2ZQDeww3hcc7vRf8soogXXz2KC9maiq0M/svaATsa9Ul4hrKnqPZP9Q8ScSEAUX+VI+x54iWrnW0p/yqBiRAzwsczdPzaQroUFTBxrq8R/n5TFdSHRMX7fYNOeVMjhfNca/gtfw9dYBVquCvuqUuFiRc0I7yK44rrMjjVQRcAbw6F8O7+04qWCmaJ8MPlmApwu2c05VMv9hiJo5p6PnzterRSLCqF6rIdhSnuOwrUIt1s/V+EEZXHCwSaNLaQJnYL0H9YjaIuGz4c8kVzxw4c0B6nl+hqW5y5/B2cuHiumnlRIDKOIzlv8ufhh21iN7QpIsPizahPezGoT1XqvzeXfH4qryo8O4yTN/PWoA+f7o9POU7L6hQ== lhebendanz@nixos"
+ "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEZgHR1ZPDBMUjGWar/QmI2GiUkZM8pAXRyBDh8j3hGlxlS+0lsBV6bTAI5F13iyzTC4pCuEuDO2OlFB0scwjcOATci8phd8jTjOIDodqDaeQZXbshyuUBfyiAV6q0Sc+cUDV3D6GhzigH3t8EiQmvXmUGm916yFotT12o0dm83SCOh1nAf9ZveC1Hz/eEUTvgWvIb58OdUR5F/S5OVBnIIJZ8tcp0BP9lyjjJCcANWkYJlwaVcNNb0UarCRhvRtptFj+e/EPqQxSCaS2QcxW4zBsQ6C81TFf7WrdH+pwtFg0owlWsxv547sRLLiPf2h2YuQgSoAaW24N0SHhUqvOXd+JyaYw7MAF8Qh3jHm2iJQRgXNuIN0msFi1alwAevilL2mnfAt2biQ9sS9g+CVvQCwX3mg09E4Y3UmFLzvsJafD9meKVrjnDCcXySeAfts59eFmwKtMQ0qrEWaclzUiA6Ay3uD1zma8x1XELGTf8nxnXCGl8s2i2APn7y1Tcwep69DlENWSaReF5zBLIkCtIUDd+8xBFTF3yu5CpyRrRMKGa0QX/MtsQl4SGJWadOTwpM8joIbrIVfKkTNB2McxAjvo0iaRoBDm409gi2Ycy+NSoUV/KAIUG7OysAQZ62hr+E/Kw1ocJCIVI+9vzKx/EnEIHkCSwhYKl5393W7CShVJjJUcKcZddqX2smSShXq8rXPzhIHk1dAVn5Ff/vGZT9z9R0QN3z6Oa9QN5t5TjTdUDToqHTudqOpDxPl2c2yXK9wV+aoHFoML9AmbzTT1U1mKU7GXSoFACiKNzhDzkovyJGpWRyvisX5t75IfuVqvGGI8n3u8OhPMdyyOHRylVaciDzBMZ00xnIHB+dJG9IeYaMm9bW1Li4Jo0CWnogo2+olfHPMLijBuu+bsa5Kp6kFkccJYR/xqcSq0lVXkpGm692JI4dnMGjchipXEGh1gXof9jXHemMMBwjpLFGty+D0r5KdA33m+mIqc9hi0ShquA9nA7E1IxDlgE0gQg+P5ZOeeIN7q54AQmT8iCCCRyne2Kw57XxaGgZoLfj7VjjaeRlzBUglmtyq8B7/c0J3y41vt9Hxhj4sKD+vufZu+M9E6E936KsJlIi+3U0PtopM/b8L4jcH1JYpPljapsys8wkJZ1ymHf6Kj/0FHyi1V+GvquiVrlFN+aHECIzNlCiSMO4MqfPUO1A+s9zkG2ZgPNNv+LoZqnokjbmKM4kdxexMxaL/Eo9Nd/bzdYiFYXlllEL7Uox+yV0N3loQ2juh4zn+ctCnwHi+V9X4l4rB8amW96WrXiJ/WqEK2UO8St8dcQWhCsUUm2OawSrbYYZw5HhJwz/Rhz2UsdSc56s5OUiQLJqpILYvCnqSLlF4iZdRSdDQNpKn+le3CeGUl5UUuvK2BpKGrbPKx0i/2ZSEMxNA5GnDMx/NyiNyDBcoPu/XOlNi8VWsEbCtoTQRamvqHjOmNcPrxCxds+TaF8c0wMR720yj5sWq8= jeschli@nixos"
+ ];
+ };
+
users.users.root.openssh.authorizedKeys.keys = [
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEZgHR1ZPDBMUjGWar/QmI2GiUkZM8pAXRyBDh8j3hGlxlS+0lsBV6bTAI5F13iyzTC4pCuEuDO2OlFB0scwjcOATci8phd8jTjOIDodqDaeQZXbshyuUBfyiAV6q0Sc+cUDV3D6GhzigH3t8EiQmvXmUGm916yFotT12o0dm83SCOh1nAf9ZveC1Hz/eEUTvgWvIb58OdUR5F/S5OVBnIIJZ8tcp0BP9lyjjJCcANWkYJlwaVcNNb0UarCRhvRtptFj+e/EPqQxSCaS2QcxW4zBsQ6C81TFf7WrdH+pwtFg0owlWsxv547sRLLiPf2h2YuQgSoAaW24N0SHhUqvOXd+JyaYw7MAF8Qh3jHm2iJQRgXNuIN0msFi1alwAevilL2mnfAt2biQ9sS9g+CVvQCwX3mg09E4Y3UmFLzvsJafD9meKVrjnDCcXySeAfts59eFmwKtMQ0qrEWaclzUiA6Ay3uD1zma8x1XELGTf8nxnXCGl8s2i2APn7y1Tcwep69DlENWSaReF5zBLIkCtIUDd+8xBFTF3yu5CpyRrRMKGa0QX/MtsQl4SGJWadOTwpM8joIbrIVfKkTNB2McxAjvo0iaRoBDm409gi2Ycy+NSoUV/KAIUG7OysAQZ62hr+E/Kw1ocJCIVI+9vzKx/EnEIHkCSwhYKl5393W7CShVJjJUcKcZddqX2smSShXq8rXPzhIHk1dAVn5Ff/vGZT9z9R0QN3z6Oa9QN5t5TjTdUDToqHTudqOpDxPl2c2yXK9wV+aoHFoML9AmbzTT1U1mKU7GXSoFACiKNzhDzkovyJGpWRyvisX5t75IfuVqvGGI8n3u8OhPMdyyOHRylVaciDzBMZ00xnIHB+dJG9IeYaMm9bW1Li4Jo0CWnogo2+olfHPMLijBuu+bsa5Kp6kFkccJYR/xqcSq0lVXkpGm692JI4dnMGjchipXEGh1gXof9jXHemMMBwjpLFGty+D0r5KdA33m+mIqc9hi0ShquA9nA7E1IxDlgE0gQg+P5ZOeeIN7q54AQmT8iCCCRyne2Kw57XxaGgZoLfj7VjjaeRlzBUglmtyq8B7/c0J3y41vt9Hxhj4sKD+vufZu+M9E6E936KsJlIi+3U0PtopM/b8L4jcH1JYpPljapsys8wkJZ1ymHf6Kj/0FHyi1V+GvquiVrlFN+aHECIzNlCiSMO4MqfPUO1A+s9zkG2ZgPNNv+LoZqnokjbmKM4kdxexMxaL/Eo9Nd/bzdYiFYXlllEL7Uox+yV0N3loQ2juh4zn+ctCnwHi+V9X4l4rB8amW96WrXiJ/WqEK2UO8St8dcQWhCsUUm2OawSrbYYZw5HhJwz/Rhz2UsdSc56s5OUiQLJqpILYvCnqSLlF4iZdRSdDQNpKn+le3CeGUl5UUuvK2BpKGr