From 5b2030025a49b8364666953e75a20349feb705d6 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 5 Jan 2024 08:44:41 +0800 Subject: [PATCH 001/447] spec(incinerator): add postgresql service --- spec/incinerator/postgresql.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 spec/incinerator/postgresql.nix diff --git a/spec/incinerator/postgresql.nix b/spec/incinerator/postgresql.nix new file mode 100644 index 00000000..dc082ee9 --- /dev/null +++ b/spec/incinerator/postgresql.nix @@ -0,0 +1,10 @@ +{ pkgs +, config +, ...}: { + services.postgresql = { + enable = true; + dataDir = "/nix/persist/service/postgresql/${config.services.postgresql.package.psqlSchema}"; + + package = pkgs.postgresql_15; + }; +} From d9a1fa028d02aad24e046f9e0fc286f3b801ed9b Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 5 Jan 2024 08:46:03 +0800 Subject: [PATCH 002/447] spec(incinerator): add lib --- spec/incinerator/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/spec/incinerator/default.nix b/spec/incinerator/default.nix index e89145f9..2e916a17 100644 --- a/spec/incinerator/default.nix +++ b/spec/incinerator/default.nix @@ -1,4 +1,6 @@ -{ modulesPath, ... }: { +{ lib +, modulesPath +, ... }: { faucet = { id = "bc8036643fc24f04ab150ff6a38dcce7"; auth.openssh.enable = true; From bc0f40c66ef58f5cbe8811cbc94c02925207f88b Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 5 Jan 2024 09:08:15 +0800 Subject: [PATCH 003/447] home(util): add thunar --- home/util/home.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/home/util/home.nix b/home/util/home.nix index 3d37a054..6918a25f 100644 --- a/home/util/home.nix +++ b/home/util/home.nix @@ -5,6 +5,7 @@ home.packages = with pkgs; [ pciutils usbutils lsscsi ] ++ optionals config.passthrough.gui [ + xfce.thunar mission-planner betaflight-configurator inav-configurator From a0829f2b4cfe3e8a87188708cd748199c66772f1 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 5 Jan 2024 09:10:01 +0800 Subject: [PATCH 004/447] home(imv): enable imv --- home/imv/home.nix | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 home/imv/home.nix diff --git a/home/imv/home.nix b/home/imv/home.nix new file mode 100644 index 00000000..02ebcb3e --- /dev/null +++ b/home/imv/home.nix @@ -0,0 +1,3 @@ +{ + programs.imv.enable = true; +} From bf2ebe46714a3881273ce653f932f9d7c6ac863a Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 5 Jan 2024 09:11:07 +0800 Subject: [PATCH 005/447] home(imv): add gui check --- home/imv/home.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/home/imv/home.nix b/home/imv/home.nix index 02ebcb3e..e50dc321 100644 --- a/home/imv/home.nix +++ b/home/imv/home.nix @@ -1,3 +1,6 @@ -{ +{ pkgs +, lib +, config +, ... }: with lib; mkIf config.passthrough.gui { programs.imv.enable = true; } From 1e59d53a712088c453edbfb86e680f595f041f58 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 5 Jan 2024 09:26:14 +0800 Subject: [PATCH 006/447] faucet(gui): configure video acceleration --- faucet/gui/default.nix | 1 + faucet/gui/va.nix | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 faucet/gui/va.nix diff --git a/faucet/gui/default.nix b/faucet/gui/default.nix index 7844d6ed..6aaaa21b 100644 --- a/faucet/gui/default.nix +++ b/faucet/gui/default.nix @@ -6,6 +6,7 @@ in { imports = [ ./plymouth.nix + ./va.nix ./greetd.nix ]; diff --git a/faucet/gui/va.nix b/faucet/gui/va.nix new file mode 100644 index 00000000..e45495f9 --- /dev/null +++ b/faucet/gui/va.nix @@ -0,0 +1,21 @@ +# https://nixos.wiki/wiki/Accelerated_Video_Playback + +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.faucet.gui; +in mkIf cfg.enable { + nixpkgs.config.packageOverrides = pkgs: { + vaapiIntel = pkgs.vaapiIntel.override { enableHybridCodec = true; }; + }; + + hardware.opengl = { + extraPackages = with pkgs; optionals ((cfg.type == "intel") || (cfg.type == "prime")) [ + intel-media-driver # LIBVA_DRIVER_NAME=iHD + vaapiIntel # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium) + vaapiVdpau + libvdpau-va-gl + ] ++ optional ((cfg.type == "nvidia") || (cfg.type == "prime")) nvidia-vaapi-driver; + }; +} From 7edb874ff26f371df8cd03f4b453e49275449dce Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 5 Jan 2024 09:26:49 +0800 Subject: [PATCH 007/447] home(mpv): enable mpv and add va configuration --- home/mpv/home.nix | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 home/mpv/home.nix diff --git a/home/mpv/home.nix b/home/mpv/home.nix new file mode 100644 index 00000000..b95bb44c --- /dev/null +++ b/home/mpv/home.nix @@ -0,0 +1,14 @@ +{ pkgs +, lib +, config +, ... }: with lib; mkIf config.passthrough.gui { + programs.mpv = { + enable = true; + config = { + hwdec = "auto-safe"; + vo = "gpu"; + profile = "gpu-hq"; + gpu-context = "wayland"; + }; + }; +} From 2605432885a9730240fa32eb6dc9fd3d8fc756f9 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 5 Jan 2024 10:59:21 +0800 Subject: [PATCH 008/447] home(sway): bind pavucontrol --- home/sway/home.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/home/sway/home.nix b/home/sway/home.nix index bd05fbf6..e69e69c2 100644 --- a/home/sway/home.nix +++ b/home/sway/home.nix @@ -21,6 +21,7 @@ "Print" = "exec ${pkgs.grim}/bin/grim - | ${pkgs.wl-clipboard}/bin/wl-copy"; "${modifier}+Print" = "exec ${pkgs.grim}/bin/grim -g \"$(${pkgs.slurp}/bin/slurp)\" - | ${pkgs.wl-clipboard}/bin/wl-copy"; "${modifier}+q" = "exec google-chrome-stable"; + "${modifier}+Home" = "exec ${pkgs.pavucontrol}/bin/pavucontrol"; }; bars = [ { From b99db1800d56980ff7e3346c6dbff9e78812e172 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 5 Jan 2024 13:40:16 +0800 Subject: [PATCH 009/447] home(util): add helpful packages --- home/util/home.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/home/util/home.nix b/home/util/home.nix index 6918a25f..fd405361 100644 --- a/home/util/home.nix +++ b/home/util/home.nix @@ -3,6 +3,7 @@ , config , ... }: with lib; { home.packages = with pkgs; [ + pv wget e2fsprogs pciutils usbutils lsscsi ] ++ optionals config.passthrough.gui [ xfce.thunar From eb42b157df9017b35da4481ed0a9d46383cd2f87 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 5 Jan 2024 18:00:51 +0800 Subject: [PATCH 010/447] faucet(adb): add android tools --- faucet/android/default.nix | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 faucet/android/default.nix diff --git a/faucet/android/default.nix b/faucet/android/default.nix new file mode 100644 index 00000000..a9d46612 --- /dev/null +++ b/faucet/android/default.nix @@ -0,0 +1,17 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.faucet.android; +in { + options.faucet.android = { + enable = mkEnableOption "android tools"; + }; + + config = mkIf cfg.enable { + programs.adb.enable = true; + + # allow device access by admin users + users.adminGroups = [ "adbusers" ]; + }; +} From 57d6945faf5b66e91ca20d562fd3986f2bbc3ca0 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 5 Jan 2024 18:02:07 +0800 Subject: [PATCH 011/447] spec(chireiden): enable android tools --- spec/chireiden/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/chireiden/default.nix b/spec/chireiden/default.nix index 7fa774e4..d5b6e146 100644 --- a/spec/chireiden/default.nix +++ b/spec/chireiden/default.nix @@ -14,6 +14,7 @@ boot.lanzaboote = true; gui.enable = true; gui.type = "prime"; + android.enable = true; }; hardware.nvidia.prime = { From cf10c385b4e19f0c013f1080d684b37b1839b90e Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 5 Jan 2024 20:47:25 +0800 Subject: [PATCH 012/447] spec(library): add allowed port --- spec/library/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/library/default.nix b/spec/library/default.nix index e69ec41d..c3b00584 100644 --- a/spec/library/default.nix +++ b/spec/library/default.nix @@ -32,5 +32,6 @@ boot.kernelModules = [ "kvm-intel" ]; boot.extraModulePackages = [ ]; boot.kernelParams = [ "console=ttyS0,115200n8" ]; + networking.firewall.allowedTCPPorts = [ 25565 ]; environment.systemPackages = with pkgs; [ python3 ]; } From 39867c7cb225fd76e3f4e54e86d0af6d18350778 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 5 Jan 2024 22:23:41 +0800 Subject: [PATCH 013/447] faucet(gui): improve driver selection correctness --- faucet/gui/default.nix | 30 ++++++++++++++++++------------ faucet/gui/plymouth.nix | 1 - faucet/gui/va.nix | 21 --------------------- 3 files changed, 18 insertions(+), 34 deletions(-) delete mode 100644 faucet/gui/va.nix diff --git a/faucet/gui/default.nix b/faucet/gui/default.nix index 6aaaa21b..17643e98 100644 --- a/faucet/gui/default.nix +++ b/faucet/gui/default.nix @@ -3,10 +3,13 @@ , config , ... }: with lib; let cfg = config.faucet.gui; + + intel = cfg.type == "intel" || (cfg.type == "prime" && config.hardware.nvidia.prime.intelBusId != ""); + amdgpu = cfg.type == "amdgpu" || (cfg.type == "prime" && config.hardware.nvidia.prime.amdgpuBusId != ""); + nvidia = cfg.type == "nvidia" || cfg.type == "prime"; in { imports = [ ./plymouth.nix - ./va.nix ./greetd.nix ]; @@ -17,13 +20,6 @@ in { type = with types; enum [ "intel" "amdgpu" "nvidia" "prime" ]; description = "type of graphics acceleration used"; }; - prime = { - integrated = mkOption { - type = with types; str; - default = "i915"; - description = "integrated gpu driver"; - }; - }; }; config = mkIf cfg.enable { @@ -31,15 +27,23 @@ in { enable = true; driSupport = true; driSupport32Bit = true; + + # https://nixos.wiki/wiki/Accelerated_Video_Playback + extraPackages = with pkgs; optionals intel [ + intel-media-driver # LIBVA_DRIVER_NAME=iHD + vaapiIntel # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium) + vaapiVdpau + libvdpau-va-gl + ] ++ optional nvidia nvidia-vaapi-driver; }; services.xserver.videoDrivers = - optional ((cfg.type == "nvidia") || (cfg.type == "prime")) "nvidia" ++ + optional nvidia "nvidia" ++ optional (cfg.type == "amdgpu") "amdgpu"; # inhibits default display manager services.xserver.displayManager.startx.enable = mkDefault true; - hardware.nvidia = mkIf ((cfg.type == "nvidia") || (cfg.type == "prime")) { + hardware.nvidia = mkIf nvidia { modesetting.enable = true; nvidiaSettings = true; @@ -56,7 +60,9 @@ in { }; boot.initrd.kernelModules = - optional (cfg.type == "amdgpu") "amdgpu" ++ - optional (cfg.type == "prime") cfg.prime.integrated; + optional amdgpu "amdgpu" ++ + optional intel "i915"; + + boot.kernelParams = optional intel "i915.fastboot=1"; }; } diff --git a/faucet/gui/plymouth.nix b/faucet/gui/plymouth.nix index 2408af6d..fc96c061 100644 --- a/faucet/gui/plymouth.nix +++ b/faucet/gui/plymouth.nix @@ -13,7 +13,6 @@ in mkIf cfg.enable { kernelParams = [ "quiet" "splash" - "i915.fastboot=1" "loglevel=3" "rd.systemd.show_status=false" "rd.udev.log_level=3" diff --git a/faucet/gui/va.nix b/faucet/gui/va.nix deleted file mode 100644 index e45495f9..00000000 --- a/faucet/gui/va.nix +++ /dev/null @@ -1,21 +0,0 @@ -# https://nixos.wiki/wiki/Accelerated_Video_Playback - -{ pkgs -, lib -, config -, ... }: with lib; let - cfg = config.faucet.gui; -in mkIf cfg.enable { - nixpkgs.config.packageOverrides = pkgs: { - vaapiIntel = pkgs.vaapiIntel.override { enableHybridCodec = true; }; - }; - - hardware.opengl = { - extraPackages = with pkgs; optionals ((cfg.type == "intel") || (cfg.type == "prime")) [ - intel-media-driver # LIBVA_DRIVER_NAME=iHD - vaapiIntel # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium) - vaapiVdpau - libvdpau-va-gl - ] ++ optional ((cfg.type == "nvidia") || (cfg.type == "prime")) nvidia-vaapi-driver; - }; -} From fcb87d00b5e44e278dd34a50ab6b28d2f93dc55e Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 5 Jan 2024 22:24:35 +0800 Subject: [PATCH 014/447] faucet(asusd): add asusd service --- faucet/asusd/default.nix | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 faucet/asusd/default.nix diff --git a/faucet/asusd/default.nix b/faucet/asusd/default.nix new file mode 100644 index 00000000..8654b37a --- /dev/null +++ b/faucet/asusd/default.nix @@ -0,0 +1,18 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.faucet.asusd; +in { + options.faucet.asusd = { + enable = mkEnableOption "ASUS laptop userland support daemon"; + }; + + config = mkIf cfg.enable { + services.asusd.enable = true; + + environment.persistence."/nix/persist/fhs".directories = [ + "/etc/asusd" + ]; + }; +} From 5ff12513497901e15d1dd5bdad2c02589365a73b Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 5 Jan 2024 22:24:55 +0800 Subject: [PATCH 015/447] home(minecraft): add prism launcher --- home/minecraft/home.nix | 6 ++++++ home/minecraft/nixos.nix | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 home/minecraft/home.nix create mode 100644 home/minecraft/nixos.nix diff --git a/home/minecraft/home.nix b/home/minecraft/home.nix new file mode 100644 index 00000000..bb7cce9d --- /dev/null +++ b/home/minecraft/home.nix @@ -0,0 +1,6 @@ +{ pkgs +, lib +, config +, ... }: with lib; mkIf config.passthrough.minecraft.enable { + home.packages = with pkgs; [ prismlauncher ]; +} diff --git a/home/minecraft/nixos.nix b/home/minecraft/nixos.nix new file mode 100644 index 00000000..ca2646a6 --- /dev/null +++ b/home/minecraft/nixos.nix @@ -0,0 +1,19 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.home.minecraft; +in { + options.home.minecraft = { + enable = mkEnableOption "minecraft game launcher and jvm"; + }; + + config = { + users.homeModules = [ + # this module passes minecraft configuration to home-manager + { passthrough.minecraft = cfg; } + ]; + + users.home.persist.directories = [ ".local/share/PrismLauncher" ]; + }; +} From a149f7b5cecff25a2a7cde0a6b65390b2c8e67cf Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 5 Jan 2024 22:26:34 +0800 Subject: [PATCH 016/447] home(minecraft): add check to persistence --- home/minecraft/nixos.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home/minecraft/nixos.nix b/home/minecraft/nixos.nix index ca2646a6..d15d957d 100644 --- a/home/minecraft/nixos.nix +++ b/home/minecraft/nixos.nix @@ -14,6 +14,6 @@ in { { passthrough.minecraft = cfg; } ]; - users.home.persist.directories = [ ".local/share/PrismLauncher" ]; + users.home.persist.directories = mkIf cfg.enable [ ".local/share/PrismLauncher" ]; }; } From ffaf9cf30df5b58ad1ec86bc543b07cd11872ac5 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 5 Jan 2024 22:27:04 +0800 Subject: [PATCH 017/447] spec(koumakyou): initial configuration --- spec/koumakyou/default.nix | 42 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 spec/koumakyou/default.nix diff --git a/spec/koumakyou/default.nix b/spec/koumakyou/default.nix new file mode 100644 index 00000000..45dc6359 --- /dev/null +++ b/spec/koumakyou/default.nix @@ -0,0 +1,42 @@ +{ pkgs +, lib +, ... }: { + faucet = { + id = "bc8036643fc24f04ab150ff6a38dcce7"; + auth.openssh.enable = true; + fs.esp.uuid = "B20E-5994"; + fs.type = "xfs"; + fs.store = "e8eea851-51b0-4c29-80c4-3d9358c4f3f8"; + fs.extPersist.enable = true; + fs.extPersist.device = "/dev/disk/by-uuid/f0e13b58-1223-479c-b673-3a8e629c7f72"; + fs.extPersist.fsType = "ext4"; + fs.cryptsetup.enable = true; + fs.cryptsetup.uuids.nix = "84baa53a-c76d-4716-813a-196f5a53e44d"; + fs.cryptsetup.uuids.persist = "e31f8b1c-6504-4b43-93dd-997ad17ebf5e"; + boot.lanzaboote = true; + gui.enable = true; + gui.type = "prime"; + asusd.enable = true; + }; + + home = { + minecraft.enable = true; + }; + + hardware.nvidia.prime = { + amdgpuBusId = "PCI:6:0:0"; + nvidiaBusId = "PCI:1:0:0"; + }; + + imports = lib.pipe ./. [ + builtins.readDir + (lib.filterAttrs (n: ty: ty == "regular" && n != "default.nix")) + (lib.mapAttrsToList (n: _: ./${n})) + ]; + + hardware.enableRedistributableFirmware = true; + boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "ahci" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; +} From 73eed30320718108e00110cc0f507fcf53281573 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 6 Jan 2024 17:40:14 +0800 Subject: [PATCH 018/447] flake: bump inputs --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 7a3c7d69..31357dc3 100644 --- a/flake.lock +++ b/flake.lock @@ -155,11 +155,11 @@ ] }, "locked": { - "lastModified": 1704383912, - "narHash": "sha256-Be7O73qoOj/z+4ZCgizdLlu+5BkVvO2KO299goZ9cW8=", + "lastModified": 1704498488, + "narHash": "sha256-yINKdShHrtjdiJhov+q0s3Y3B830ujRoSbHduUNyKag=", "owner": "nix-community", "repo": "home-manager", - "rev": "26b8adb300e50efceb51fff6859a1a6ba1ade4f7", + "rev": "51e44a13acea71b36245e8bd8c7db53e0a3e61ee", "type": "github" }, "original": { From 04264a5441c6faebe72f6832767cdeb1c2dbd147 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 6 Jan 2024 19:22:04 +0800 Subject: [PATCH 019/447] spec(library): add matrix and coturn service --- spec/library/coturn.nix | 57 +++++++++++++++++++++++++++++++++++++++++ spec/library/matrix.nix | 48 ++++++++++++++++++++++++++++++++++ 2 files changed, 105 insertions(+) create mode 100644 spec/library/coturn.nix create mode 100644 spec/library/matrix.nix diff --git a/spec/library/coturn.nix b/spec/library/coturn.nix new file mode 100644 index 00000000..81cac29c --- /dev/null +++ b/spec/library/coturn.nix @@ -0,0 +1,57 @@ +{ config +, ... }: let + host = "514fpv.io"; +in { + services.coturn = rec { + enable = true; + no-cli = true; + no-tcp-relay = true; + min-port = 49000; + max-port = 50000; + use-auth-secret = true; + static-auth-secret-file = "/nix/persist/service/coturn/secret"; + realm = "edge.${host}"; + cert = "${config.security.acme.certs.".${host}".directory}/full.pem"; + pkey = "${config.security.acme.certs.".${host}".directory}/key.pem"; + extraConfig = '' + # for debugging + #verbose + # ban private IP ranges + no-multicast-peers + denied-peer-ip=0.0.0.0-0.255.255.255 + denied-peer-ip=10.0.0.0-10.255.255.255 + denied-peer-ip=100.64.0.0-100.127.255.255 + denied-peer-ip=127.0.0.0-127.255.255.255 + denied-peer-ip=169.254.0.0-169.254.255.255 + denied-peer-ip=172.16.0.0-172.31.255.255 + denied-peer-ip=192.0.0.0-192.0.0.255 + denied-peer-ip=192.0.2.0-192.0.2.255 + denied-peer-ip=192.88.99.0-192.88.99.255 + denied-peer-ip=192.168.0.0-192.168.255.255 + denied-peer-ip=198.18.0.0-198.19.255.255 + denied-peer-ip=198.51.100.0-198.51.100.255 + denied-peer-ip=203.0.113.0-203.0.113.255 + denied-peer-ip=240.0.0.0-255.255.255.255 + denied-peer-ip=::1 + denied-peer-ip=64:ff9b::-64:ff9b::ffff:ffff + denied-peer-ip=::ffff:0.0.0.0-::ffff:255.255.255.255 + denied-peer-ip=100::-100::ffff:ffff:ffff:ffff + denied-peer-ip=2001::-2001:1ff:ffff:ffff:ffff:ffff:ffff:ffff + denied-peer-ip=2002::-2002:ffff:ffff:ffff:ffff:ffff:ffff:ffff + denied-peer-ip=fc00::-fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff + denied-peer-ip=fe80::-febf:ffff:ffff:ffff:ffff:ffff:ffff:ffff + ''; + }; + + networking.firewall = let + range = with config.services.coturn; [ { + from = min-port; + to = max-port; + } ]; + in { + allowedUDPPortRanges = range; + allowedUDPPorts = [ 3478 5349 ]; + allowedTCPPortRanges = range; + allowedTCPPorts = [ 3478 5349 ]; + }; +} diff --git a/spec/library/matrix.nix b/spec/library/matrix.nix new file mode 100644 index 00000000..0569cb3c --- /dev/null +++ b/spec/library/matrix.nix @@ -0,0 +1,48 @@ +{ config +, ... }: let + host = "514fpv.io"; +in { + services.matrix-synapse = { + enable = true; + withJemalloc = true; + dataDir = "/nix/persist/service/matrix"; + extraConfigFiles = [ "/nix/persist/service/matrix/secrets.yml" ]; + + settings = { + server_name = host; + public_baseurl = "https://${host}:8448/"; + + listeners = [ { + bind_addresses = [ "127.0.0.1" ]; + port = 8008; + tls = false; + type = "http"; + x_forwarded = true; + resources = [ + { compress = true; names = [ "client" ]; } + { compress = false; names = [ "federation" ]; } + ]; + } ]; + + # turn server configuration + turn_uris = [ + "turn:${config.services.coturn.realm}:3478?transport=udp" + "turn:${config.services.coturn.realm}:3478?transport=tcp" + ]; + turn_user_lifetime = "1h"; + }; + }; + + services.nginx.virtualHosts.${host} = { + listen = [{ addr = "0.0.0.0"; port = 8448; ssl = true; }]; + useACMEHost = host; + addSSL = true; + locations."/".extraConfig = '' + return 404; + ''; + locations."/_matrix".proxyPass = "http://127.0.0.1:8008"; + locations."/_synapse/client".proxyPass = "http://127.0.0.1:8008"; + }; + + networking.firewall.allowedTCPPorts = [ 8448 ]; +} From 066c58bda926c85f5f5544dc1114eda0bf685140 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 7 Jan 2024 13:57:59 +0800 Subject: [PATCH 020/447] home(minecraft): add jdk8 package --- home/minecraft/home.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/home/minecraft/home.nix b/home/minecraft/home.nix index bb7cce9d..67e336cd 100644 --- a/home/minecraft/home.nix +++ b/home/minecraft/home.nix @@ -2,5 +2,8 @@ , lib , config , ... }: with lib; mkIf config.passthrough.minecraft.enable { - home.packages = with pkgs; [ prismlauncher ]; + home.packages = with pkgs; [ + prismlauncher + jdk8 + ]; } From 14c9f3ff8a31c70d4d4bb661e72aeaa8bb2c8964 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 7 Jan 2024 13:58:29 +0800 Subject: [PATCH 021/447] faucet(steam): add steam program and directories --- faucet/steam/default.nix | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 faucet/steam/default.nix diff --git a/faucet/steam/default.nix b/faucet/steam/default.nix new file mode 100644 index 00000000..3f1f1db1 --- /dev/null +++ b/faucet/steam/default.nix @@ -0,0 +1,23 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.faucet.steam; +in { + options.faucet.steam = { + enable = mkEnableOption "steam software and environment"; + }; + + config = mkIf cfg.enable { + programs.steam = { + enable = true; + remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play + dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server + }; + + users.home.persist.directories = [ + ".local/share/Steam" + ".steam" + ]; + }; +} From 84378f6b4771e5ccd0aa0f2ee2f5a5b5a7d4d89d Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 7 Jan 2024 13:58:45 +0800 Subject: [PATCH 022/447] spec(koumakyou): enable steam and power management --- spec/koumakyou/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/spec/koumakyou/default.nix b/spec/koumakyou/default.nix index 45dc6359..25381dc1 100644 --- a/spec/koumakyou/default.nix +++ b/spec/koumakyou/default.nix @@ -17,12 +17,16 @@ gui.enable = true; gui.type = "prime"; asusd.enable = true; + steam.enable = true; }; home = { minecraft.enable = true; }; + powerManagement.enable = true; + powerManagement.cpuFreqGovernor = "performance"; + hardware.nvidia.prime = { amdgpuBusId = "PCI:6:0:0"; nvidiaBusId = "PCI:1:0:0"; From e6c19c257e0a74dd1c0446c089fa5e088e79d58e Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 7 Jan 2024 14:09:44 +0800 Subject: [PATCH 023/447] spec(chireiden): enable power management --- spec/chireiden/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/spec/chireiden/default.nix b/spec/chireiden/default.nix index d5b6e146..267b72fc 100644 --- a/spec/chireiden/default.nix +++ b/spec/chireiden/default.nix @@ -17,6 +17,9 @@ android.enable = true; }; + powerManagement.enable = true; + powerManagement.cpuFreqGovernor = "performance"; + hardware.nvidia.prime = { intelBusId = "PCI:0:2:0"; nvidiaBusId = "PCI:5:0:0"; From 997c1b0540abd81f8e0ee13feca0a33849426d95 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 7 Jan 2024 14:47:25 +0800 Subject: [PATCH 024/447] home(gui): unify qt theme --- home/gui/home.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/home/gui/home.nix b/home/gui/home.nix index 152d48a4..b6aca66f 100644 --- a/home/gui/home.nix +++ b/home/gui/home.nix @@ -21,5 +21,9 @@ name = "WhiteSur-dark"; }; + # unify qt theme + qt.platformTheme = "gtk"; + gtk.enable = true; + qt.enable = true; } From 749af042cc9f5c6794c4dda30d38767ee0847e3c Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 7 Jan 2024 16:14:53 +0800 Subject: [PATCH 025/447] home(sway): source profile in sway wrapper --- home/sway/nixos.nix | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/home/sway/nixos.nix b/home/sway/nixos.nix index f6900dd3..8c01337b 100644 --- a/home/sway/nixos.nix +++ b/home/sway/nixos.nix @@ -12,7 +12,21 @@ in mkIf gui { [Desktop Entry] Name=Sway Comment=An i3-compatible Wayland compositor - Exec=sway --unsupported-gpu + Exec=${pkgs.writeTextFile { + name = "sway-wrapper"; + executable = true; + text = '' + #!${pkgs.zsh}/bin/zsh + SHLVL=0 + for profile in ''${(z)NIX_PROFILES}; do + fpath+=($profile/share/zsh/site-functions $profile/share/zsh/$ZSH_VERSION/functions $profile/share/zsh/vendor-completions) + done + exec sway --unsupported-gpu + ''; + checkPhase = '' + ${pkgs.stdenv.shellDryRun} "$target" + ''; + }} Type=Application ''; } // { providedSessions = [ pkgs.sway.meta.mainProgram ]; }) From 50749ed595e9b8e77ac00dc8fdad0edf1fdafa6f Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 7 Jan 2024 18:00:10 +0800 Subject: [PATCH 026/447] faucet(gui): switch to proprietary nvidia drivers --- faucet/gui/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/faucet/gui/default.nix b/faucet/gui/default.nix index 17643e98..e80226fa 100644 --- a/faucet/gui/default.nix +++ b/faucet/gui/default.nix @@ -56,7 +56,7 @@ in { powerManagement.enable = false; powerManagement.finegrained = false; - open = true; + open = false; }; boot.initrd.kernelModules = From 2081040e55ebcfb54f20cb4c1a93fbe6fc52c6a9 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 7 Jan 2024 21:50:42 +0800 Subject: [PATCH 027/447] home(steam): port to home --- faucet/steam/default.nix | 23 ----------------------- home/steam/config.nix | 14 ++++++++++++++ home/steam/home.nix | 13 +++++++++++++ home/steam/nixos.nix | 29 +++++++++++++++++++++++++++++ 4 files changed, 56 insertions(+), 23 deletions(-) delete mode 100644 faucet/steam/default.nix create mode 100644 home/steam/config.nix create mode 100644 home/steam/home.nix create mode 100644 home/steam/nixos.nix diff --git a/faucet/steam/default.nix b/faucet/steam/default.nix deleted file mode 100644 index 3f1f1db1..00000000 --- a/faucet/steam/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ pkgs -, lib -, config -, ... }: with lib; let - cfg = config.faucet.steam; -in { - options.faucet.steam = { - enable = mkEnableOption "steam software and environment"; - }; - - config = mkIf cfg.enable { - programs.steam = { - enable = true; - remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play - dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server - }; - - users.home.persist.directories = [ - ".local/share/Steam" - ".steam" - ]; - }; -} diff --git a/home/steam/config.nix b/home/steam/config.nix new file mode 100644 index 00000000..0b696a43 --- /dev/null +++ b/home/steam/config.nix @@ -0,0 +1,14 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.home.steam; +in mkIf cfg.enable { + hardware.steam-hardware.enable = true; + + networking.firewall = { + allowedTCPPorts = [ 27015 27036 ]; + allowedUDPPorts = [ 27015 ]; + allowedUDPPortRanges = [ { from = 27031; to = 27036; } ]; + }; +} diff --git a/home/steam/home.nix b/home/steam/home.nix new file mode 100644 index 00000000..bb63e66b --- /dev/null +++ b/home/steam/home.nix @@ -0,0 +1,13 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.passthrough.steam; + enable = cfg.enable && (cfg.allUsers || (config.home.username == "app")); + package = config.programs.steam.package; +in mkIf enable { + home.packages = with pkgs; [ + cfg.package + cfg.package.run + ]; +} diff --git a/home/steam/nixos.nix b/home/steam/nixos.nix new file mode 100644 index 00000000..cccf99b3 --- /dev/null +++ b/home/steam/nixos.nix @@ -0,0 +1,29 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.home.steam; + persist = [ ".steam" ".local/share/Steam" ]; +in { + imports = [ ./config.nix ]; + + options.home.steam = { + enable = mkEnableOption "steam software and environment"; + package = mkOption { + type = with types; package; + default = config.programs.steam.package; + description = "steam package"; + }; + allUsers = mkEnableOption "set up for all users"; + }; + + config = { + users.homeModules = [ + # this module passes steam configuration to home-manager + { passthrough.steam = cfg; } + ]; + + users.home.persist.directories = with cfg; mkIf (enable && allUsers) persist; + users.home.persistApp.directories = with cfg; mkIf (enable && !allUsers) persist; + }; +} From 72dac229cdc0f0eea475bfea5bffa82e8653f875 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 7 Jan 2024 21:51:12 +0800 Subject: [PATCH 028/447] home(minecraft): add app user capability --- home/minecraft/home.nix | 5 ++++- home/minecraft/nixos.nix | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/home/minecraft/home.nix b/home/minecraft/home.nix index 67e336cd..7414ccdf 100644 --- a/home/minecraft/home.nix +++ b/home/minecraft/home.nix @@ -1,7 +1,10 @@ { pkgs , lib , config -, ... }: with lib; mkIf config.passthrough.minecraft.enable { +, ... }: with lib; let + cfg = config.passthrough.minecraft; + enable = cfg.enable && (cfg.allUsers || (config.home.username == "app")); +in mkIf enable { home.packages = with pkgs; [ prismlauncher jdk8 diff --git a/home/minecraft/nixos.nix b/home/minecraft/nixos.nix index d15d957d..a412f200 100644 --- a/home/minecraft/nixos.nix +++ b/home/minecraft/nixos.nix @@ -3,9 +3,11 @@ , config , ... }: with lib; let cfg = config.home.minecraft; + persist = [ ".local/share/PrismLauncher" ]; in { options.home.minecraft = { enable = mkEnableOption "minecraft game launcher and jvm"; + allUsers = mkEnableOption "set up for all users"; }; config = { @@ -14,6 +16,7 @@ in { { passthrough.minecraft = cfg; } ]; - users.home.persist.directories = mkIf cfg.enable [ ".local/share/PrismLauncher" ]; + users.home.persist.directories = with cfg; mkIf (enable && allUsers) persist; + users.home.persistApp.directories = with cfg; mkIf (enable && !allUsers) persist; }; } From e2765fc0a5cd111ff1c9f262d005a0dfab1662de Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 7 Jan 2024 21:51:34 +0800 Subject: [PATCH 029/447] home: add app user capability --- home/profile.nix | 24 +++++++++++++++--------- home/user.nix | 5 +++++ 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/home/profile.nix b/home/profile.nix index d65672f8..70b425ce 100644 --- a/home/profile.nix +++ b/home/profile.nix @@ -43,13 +43,8 @@ in { description = "home manager modules imported into every profile"; }; - home = { - size = mkOption { - type = with types; str; - default = "1G"; - description = "default home tmpfs size, mounted to prevent accidentally filling up root"; - }; - persist = { + home = let + persistOpts = { files = mkOption { type = with types; listOf (oneOf [ str (attrsOf str) ]); default = [ ]; @@ -59,6 +54,14 @@ in { default = [ ]; }; }; + in { + size = mkOption { + type = with types; str; + default = "1G"; + description = "default home tmpfs size, mounted to prevent accidentally filling up root"; + }; + persist = persistOpts; + persistApp = persistOpts; }; }; @@ -132,12 +135,15 @@ in { # set up standard persistence for users # this is registered internally for each software's configuration environment.persistence."/nix/persist" = { - users = mapAttrs (name: _: cfg.home.persist // { + users = (mapAttrs (name: _: cfg.home.persist // { # root workaround, ugly but necessary # cannot get it properly for the same reason # mentioned above in fileSystems home = mkIf (name == "root") "/root"; - }) cfg.profiles; + }) cfg.profiles) // { + # extra persistence specific to the app user + app = cfg.home.persistApp; + }; hideMounts = true; }; diff --git a/home/user.nix b/home/user.nix index 82342a93..0273d872 100644 --- a/home/user.nix +++ b/home/user.nix @@ -12,6 +12,11 @@ description = "Staging Environment"; }; + app = { + uid = 5800; + description = "Insecure Applications"; + }; + root.uid = 0; }; } From 05c9789947708075c94c58de139e962b9df4bb60 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 7 Jan 2024 21:51:53 +0800 Subject: [PATCH 030/447] spec(chireiden): enable app user minecraft and steam --- spec/chireiden/default.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/spec/chireiden/default.nix b/spec/chireiden/default.nix index 267b72fc..b57d1459 100644 --- a/spec/chireiden/default.nix +++ b/spec/chireiden/default.nix @@ -17,6 +17,11 @@ android.enable = true; }; + home = { + minecraft.enable = true; + steam.enable = true; + }; + powerManagement.enable = true; powerManagement.cpuFreqGovernor = "performance"; From 785ab73c50030c5126c4f848316d491a74bfe9eb Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 7 Jan 2024 21:52:20 +0800 Subject: [PATCH 031/447] spec(koumakyou): enable all-users minecraft and steam --- spec/koumakyou/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/spec/koumakyou/default.nix b/spec/koumakyou/default.nix index 25381dc1..0c6a973c 100644 --- a/spec/koumakyou/default.nix +++ b/spec/koumakyou/default.nix @@ -17,11 +17,13 @@ gui.enable = true; gui.type = "prime"; asusd.enable = true; - steam.enable = true; }; home = { minecraft.enable = true; + minecraft.allUsers = true; + steam.enable = true; + steam.allUsers = true; }; powerManagement.enable = true; From d3f97a71e4cb569b7421a2aff6f09c7c598c3f84 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 7 Jan 2024 22:01:31 +0800 Subject: [PATCH 032/447] global: rename from faucet --- {faucet => global}/android/default.nix | 4 ++-- {faucet => global}/asusd/default.nix | 4 ++-- {faucet => global}/auth/default.nix | 4 ++-- {faucet => global}/auth/pub/chireiden.pub | 0 {faucet => global}/auth/pub/diag.pub | 0 {faucet => global}/boot/default.nix | 4 ++-- {faucet => global}/default.nix | 0 {faucet => global}/fs/btrfs.nix | 4 ++-- {faucet => global}/fs/default.nix | 4 ++-- {faucet => global}/fs/ext4.nix | 2 +- {faucet => global}/fs/xfs.nix | 2 +- {faucet => global}/gui/default.nix | 4 ++-- {faucet => global}/gui/greetd.nix | 2 +- {faucet => global}/gui/plymouth.nix | 2 +- {faucet => global}/id/default.nix | 4 ++-- {faucet => global}/io/default.nix | 4 ++-- {faucet => global}/kernel/default.nix | 4 ++-- {faucet => global}/libvirt/default.nix | 4 ++-- {faucet => global}/util/default.nix | 4 ++-- home/auth/nixos.nix | 2 +- home/chrome/nixos.nix | 2 +- home/gui/nixos.nix | 2 +- home/profile.nix | 2 +- home/sway/nixos.nix | 2 +- home/util/nixos.nix | 2 +- home/virt-manager/nixos.nix | 2 +- spec/chireiden/default.nix | 2 +- spec/default.nix | 2 +- spec/incinerator/default.nix | 2 +- spec/koumakyou/default.nix | 2 +- spec/library/default.nix | 2 +- 31 files changed, 40 insertions(+), 40 deletions(-) rename {faucet => global}/android/default.nix (80%) rename {faucet => global}/asusd/default.nix (83%) rename {faucet => global}/auth/default.nix (96%) rename {faucet => global}/auth/pub/chireiden.pub (100%) rename {faucet => global}/auth/pub/diag.pub (100%) rename {faucet => global}/boot/default.nix (93%) rename {faucet => global}/default.nix (100%) rename {faucet => global}/fs/btrfs.nix (87%) rename {faucet => global}/fs/default.nix (98%) rename {faucet => global}/fs/ext4.nix (86%) rename {faucet => global}/fs/xfs.nix (87%) rename {faucet => global}/gui/default.nix (97%) rename {faucet => global}/gui/greetd.nix (95%) rename {faucet => global}/gui/plymouth.nix (93%) rename {faucet => global}/id/default.nix (80%) rename {faucet => global}/io/default.nix (96%) rename {faucet => global}/kernel/default.nix (93%) rename {faucet => global}/libvirt/default.nix (92%) rename {faucet => global}/util/default.nix (72%) diff --git a/faucet/android/default.nix b/global/android/default.nix similarity index 80% rename from faucet/android/default.nix rename to global/android/default.nix index a9d46612..a7f94c17 100644 --- a/faucet/android/default.nix +++ b/global/android/default.nix @@ -2,9 +2,9 @@ , lib , config , ... }: with lib; let - cfg = config.faucet.android; + cfg = config.global.android; in { - options.faucet.android = { + options.global.android = { enable = mkEnableOption "android tools"; }; diff --git a/faucet/asusd/default.nix b/global/asusd/default.nix similarity index 83% rename from faucet/asusd/default.nix rename to global/asusd/default.nix index 8654b37a..00b4af2e 100644 --- a/faucet/asusd/default.nix +++ b/global/asusd/default.nix @@ -2,9 +2,9 @@ , lib , config , ... }: with lib; let - cfg = config.faucet.asusd; + cfg = config.global.asusd; in { - options.faucet.asusd = { + options.global.asusd = { enable = mkEnableOption "ASUS laptop userland support daemon"; }; diff --git a/faucet/auth/default.nix b/global/auth/default.nix similarity index 96% rename from faucet/auth/default.nix rename to global/auth/default.nix index 1c433054..aaad15f3 100644 --- a/faucet/auth/default.nix +++ b/global/auth/default.nix @@ -2,14 +2,14 @@ , lib , config , ... }: with lib; let - cfg = config.faucet.auth; + cfg = config.global.auth; pub = lib.pipe ./pub [ builtins.readDir (lib.filterAttrs (n: ty: ty == "regular")) (lib.mapAttrsToList (n: _: builtins.readFile ./pub/${n})) ]; in { - options.faucet.auth = { + options.global.auth = { enable = mkEnableOption "identity authentication in various software" // { default = true; }; openssh = { enable = mkEnableOption "openssh server"; diff --git a/faucet/auth/pub/chireiden.pub b/global/auth/pub/chireiden.pub similarity index 100% rename from faucet/auth/pub/chireiden.pub rename to global/auth/pub/chireiden.pub diff --git a/faucet/auth/pub/diag.pub b/global/auth/pub/diag.pub similarity index 100% rename from faucet/auth/pub/diag.pub rename to global/auth/pub/diag.pub diff --git a/faucet/boot/default.nix b/global/boot/default.nix similarity index 93% rename from faucet/boot/default.nix rename to global/boot/default.nix index 7c197629..7da95ebe 100644 --- a/faucet/boot/default.nix +++ b/global/boot/default.nix @@ -2,9 +2,9 @@ , lib , config , ... }: with lib; let - cfg = config.faucet.boot; + cfg = config.global.boot; in { - options.faucet.boot = { + options.global.boot = { enable = mkEnableOption "bootloader installation and maintenance" // { default = true; }; systemd-boot = mkEnableOption "generation selection via systemd-boot" // { default = !cfg.lanzaboote; }; lanzaboote = mkEnableOption "secure boot maintenance via lanzaboote"; diff --git a/faucet/default.nix b/global/default.nix similarity index 100% rename from faucet/default.nix rename to global/default.nix diff --git a/faucet/fs/btrfs.nix b/global/fs/btrfs.nix similarity index 87% rename from faucet/fs/btrfs.nix rename to global/fs/btrfs.nix index f8252be3..66d53090 100644 --- a/faucet/fs/btrfs.nix +++ b/global/fs/btrfs.nix @@ -2,9 +2,9 @@ , lib , config , ... }: with lib; let - cfg = config.faucet.fs; + cfg = config.global.fs; in { - options.faucet.fs.btrfs = { + options.global.fs.btrfs = { options = mkOption { type = with types; listOf str; default = [ "noatime" "compress=zstd" ]; diff --git a/faucet/fs/default.nix b/global/fs/default.nix similarity index 98% rename from faucet/fs/default.nix rename to global/fs/default.nix index 084e6177..f5b718cf 100644 --- a/faucet/fs/default.nix +++ b/global/fs/default.nix @@ -2,7 +2,7 @@ , lib , config , ... }: with lib; let - cfg = config.faucet.fs; + cfg = config.global.fs; in { imports = [ ./ext4.nix @@ -11,7 +11,7 @@ in { ./btrfs.nix ]; - options.faucet.fs = { + options.global.fs = { type = mkOption { type = with types; enum [ "ext4" "xfs" "bcachefs" "btrfs" ]; default = "bcachefs"; diff --git a/faucet/fs/ext4.nix b/global/fs/ext4.nix similarity index 86% rename from faucet/fs/ext4.nix rename to global/fs/ext4.nix index aeaafb18..9a6f990c 100644 --- a/faucet/fs/ext4.nix +++ b/global/fs/ext4.nix @@ -1,7 +1,7 @@ { lib , config , ... }: with lib; let - cfg = config.faucet.fs; + cfg = config.global.fs; in mkIf (cfg.type == "ext4") { fileSystems."/nix" = { device = "/dev/disk/by-uuid/${cfg.store}"; diff --git a/faucet/fs/xfs.nix b/global/fs/xfs.nix similarity index 87% rename from faucet/fs/xfs.nix rename to global/fs/xfs.nix index 03025993..ec7de391 100644 --- a/faucet/fs/xfs.nix +++ b/global/fs/xfs.nix @@ -1,7 +1,7 @@ { lib , config , ... }: with lib; let - cfg = config.faucet.fs; + cfg = config.global.fs; in mkIf (cfg.type == "xfs") { # NOTE: -m reflink=1 fileSystems."/nix" = diff --git a/faucet/gui/default.nix b/global/gui/default.nix similarity index 97% rename from faucet/gui/default.nix rename to global/gui/default.nix index e80226fa..f6f95f85 100644 --- a/faucet/gui/default.nix +++ b/global/gui/default.nix @@ -2,7 +2,7 @@ , lib , config , ... }: with lib; let - cfg = config.faucet.gui; + cfg = config.global.gui; intel = cfg.type == "intel" || (cfg.type == "prime" && config.hardware.nvidia.prime.intelBusId != ""); amdgpu = cfg.type == "amdgpu" || (cfg.type == "prime" && config.hardware.nvidia.prime.amdgpuBusId != ""); @@ -13,7 +13,7 @@ in { ./greetd.nix ]; - options.faucet.gui = { + options.global.gui = { enable = mkEnableOption "various setup required for GUI and support software"; session = mkEnableOption "software required for a graphical session" // { default = true; }; type = mkOption { diff --git a/faucet/gui/greetd.nix b/global/gui/greetd.nix similarity index 95% rename from faucet/gui/greetd.nix rename to global/gui/greetd.nix index ef6143ef..7a208862 100644 --- a/faucet/gui/greetd.nix +++ b/global/gui/greetd.nix @@ -2,7 +2,7 @@ , lib , config , ... }: with lib; let - cfg = config.faucet.gui; + cfg = config.global.gui; in mkIf (cfg.enable && cfg.session) { programs.regreet = { enable = true; diff --git a/faucet/gui/plymouth.nix b/global/gui/plymouth.nix similarity index 93% rename from faucet/gui/plymouth.nix rename to global/gui/plymouth.nix index fc96c061..a588206c 100644 --- a/faucet/gui/plymouth.nix +++ b/global/gui/plymouth.nix @@ -2,7 +2,7 @@ , lib , config , ... }: with lib; let - cfg = config.faucet.gui; + cfg = config.global.gui; in mkIf cfg.enable { boot = { loader.timeout = lib.mkDefault 0; diff --git a/faucet/id/default.nix b/global/id/default.nix similarity index 80% rename from faucet/id/default.nix rename to global/id/default.nix index 075efe43..c225845e 100644 --- a/faucet/id/default.nix +++ b/global/id/default.nix @@ -2,9 +2,9 @@ , lib , config , ... }: with lib; let - cfg = config.faucet.id; + cfg = config.global.id; in { - options.faucet.id = mkOption { + options.global.id = mkOption { type = with types; str; description = "systemd machine id"; }; diff --git a/faucet/io/default.nix b/global/io/default.nix similarity index 96% rename from faucet/io/default.nix rename to global/io/default.nix index 381554db..d7fb8dbe 100644 --- a/faucet/io/default.nix +++ b/global/io/default.nix @@ -2,9 +2,9 @@ , lib , config , ... }: with lib; let - cfg = config.faucet.io; + cfg = config.global.io; in { - options.faucet.io = { + options.global.io = { betaflight = mkEnableOption "betaflight udev rules" // { default = true; }; bluetooth = mkEnableOption "bluetooth daemons and state persistence" // { default = true; }; audio = mkEnableOption "pulseaudio server configuration" // { default = true; }; diff --git a/faucet/kernel/default.nix b/global/kernel/default.nix similarity index 93% rename from faucet/kernel/default.nix rename to global/kernel/default.nix index 9a3e7e08..9617608b 100644 --- a/faucet/kernel/default.nix +++ b/global/kernel/default.nix @@ -2,9 +2,9 @@ , lib , config , ... }: with lib; let - cfg = config.faucet.kernel; + cfg = config.global.kernel; in { - options.faucet.kernel = { + options.global.kernel = { enable = mkEnableOption "kernel version and configuration" // { default = true; }; lts = mkEnableOption "longterm kernel releases"; sysctl = { diff --git a/faucet/libvirt/default.nix b/global/libvirt/default.nix similarity index 92% rename from faucet/libvirt/default.nix rename to global/libvirt/default.nix index 48dacbbf..1de52ea4 100644 --- a/faucet/libvirt/default.nix +++ b/global/libvirt/default.nix @@ -2,9 +2,9 @@ , lib , config , ... }: with lib; let - cfg = config.faucet.libvirt; + cfg = config.global.libvirt; in { - options.faucet.libvirt = { + options.global.libvirt = { enable = mkEnableOption "libvirt virtualisation daemon" // { default = true; }; }; diff --git a/faucet/util/default.nix b/global/util/default.nix similarity index 72% rename from faucet/util/default.nix rename to global/util/default.nix index 6f3b29f5..feb08b7b 100644 --- a/faucet/util/default.nix +++ b/global/util/default.nix @@ -2,9 +2,9 @@ , lib , config , ... }: with lib; let - cfg = config.faucet.util; + cfg = config.global.util; in { - options.faucet.util = { }; + options.global.util = { }; config = { programs.zsh.enable = true; diff --git a/home/auth/nixos.nix b/home/auth/nixos.nix index d57ea2e3..55984071 100644 --- a/home/auth/nixos.nix +++ b/home/auth/nixos.nix @@ -2,6 +2,6 @@ , ... }: { # this module passes openssh public keys to home-manager users.homeModules = [ { - passthrough.publicKeys = config.faucet.auth.openssh.publicKeys; + passthrough.publicKeys = config.global.auth.openssh.publicKeys; } ]; } diff --git a/home/chrome/nixos.nix b/home/chrome/nixos.nix index 7726bc31..a432134b 100644 --- a/home/chrome/nixos.nix +++ b/home/chrome/nixos.nix @@ -2,7 +2,7 @@ , lib , config , ... }: with lib; let - gui = with config.faucet.gui; ( enable && session ); + gui = with config.global.gui; ( enable && session ); in { users.home.persist.directories = mkIf gui [ ".config/google-chrome" ]; security.chromiumSuidSandbox.enable = mkIf gui true; diff --git a/home/gui/nixos.nix b/home/gui/nixos.nix index 35370e5a..a5e5efdf 100644 --- a/home/gui/nixos.nix +++ b/home/gui/nixos.nix @@ -2,7 +2,7 @@ , lib , config , ... }: with lib; let - gui = with config.faucet.gui; ( enable && session ); + gui = with config.global.gui; ( enable && session ); in { config = { users.homeModules = [ diff --git a/home/profile.nix b/home/profile.nix index 70b425ce..cc26dfb6 100644 --- a/home/profile.nix +++ b/home/profile.nix @@ -72,7 +72,7 @@ in { description = with opts; mkIf (description != null) description; extraGroups = mkIf opts.admin cfg.adminGroups; openssh.authorizedKeys.keys = mkIf (opts.sshLogin && config.services.openssh.enable) - config.faucet.auth.openssh.publicKeys; + config.global.auth.openssh.publicKeys; hashedPasswordFile = "/nix/persist/shadow/${name}"; shell = pkgs.zsh; isNormalUser = mkIf (name != "root") true; diff --git a/home/sway/nixos.nix b/home/sway/nixos.nix index 8c01337b..7bf782f5 100644 --- a/home/sway/nixos.nix +++ b/home/sway/nixos.nix @@ -2,7 +2,7 @@ , lib , config , ... }: with lib; let - gui = with config.faucet.gui; ( enable && session ); + gui = with config.global.gui; ( enable && session ); in mkIf gui { services.xserver.displayManager.sessionPackages = [ (pkgs.writeTextFile { diff --git a/home/util/nixos.nix b/home/util/nixos.nix index c93ca39a..694b0f7f 100644 --- a/home/util/nixos.nix +++ b/home/util/nixos.nix @@ -2,7 +2,7 @@ , lib , config , ... }: with lib; let - gui = with config.faucet.gui; ( enable && session ); + gui = with config.global.gui; ( enable && session ); in { users.home.persist.directories = [ ] ++ optionals gui [ diff --git a/home/virt-manager/nixos.nix b/home/virt-manager/nixos.nix index 30ff9fbf..ab11e6f5 100644 --- a/home/virt-manager/nixos.nix +++ b/home/virt-manager/nixos.nix @@ -2,7 +2,7 @@ , lib , config , ... }: with lib; let - gui = with config.faucet.gui; ( enable && session ); + gui = with config.global.gui; ( enable && session ); in mkIf gui { programs.virt-manager.enable = true; } diff --git a/spec/chireiden/default.nix b/spec/chireiden/default.nix index b57d1459..3a4265bb 100644 --- a/spec/chireiden/default.nix +++ b/spec/chireiden/default.nix @@ -1,5 +1,5 @@ { - faucet = { + global = { id = "5d3c16fe58444e12ad621600039f10af"; fs.esp.uuid = "32A5-6257"; fs.type = "xfs"; diff --git a/spec/default.nix b/spec/default.nix index 15dbcba6..67555689 100644 --- a/spec/default.nix +++ b/spec/default.nix @@ -4,7 +4,7 @@ system = "x86_64-linux"; specialArgs = inputs // { inherit inputs; }; modules = [ - ../faucet + ../global ../home/profile.nix ../home/user.nix ./constant.nix diff --git a/spec/incinerator/default.nix b/spec/incinerator/default.nix index 2e916a17..b68d0b77 100644 --- a/spec/incinerator/default.nix +++ b/spec/incinerator/default.nix @@ -1,7 +1,7 @@ { lib , modulesPath , ... }: { - faucet = { + global = { id = "bc8036643fc24f04ab150ff6a38dcce7"; auth.openssh.enable = true; libvirt.enable = false; diff --git a/spec/koumakyou/default.nix b/spec/koumakyou/default.nix index 0c6a973c..73ed21aa 100644 --- a/spec/koumakyou/default.nix +++ b/spec/koumakyou/default.nix @@ -1,7 +1,7 @@ { pkgs , lib , ... }: { - faucet = { + global = { id = "bc8036643fc24f04ab150ff6a38dcce7"; auth.openssh.enable = true; fs.esp.uuid = "B20E-5994"; diff --git a/spec/library/default.nix b/spec/library/default.nix index c3b00584..6616d4c1 100644 --- a/spec/library/default.nix +++ b/spec/library/default.nix @@ -2,7 +2,7 @@ , lib , modulesPath , ... }: { - faucet = { + global = { id = "bc8036643fc24f04ab150ff6a38dcce7"; auth.openssh.enable = true; libvirt.enable = false; From d9f0db25ef046e445cc4e5849a6a356290f6250e Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 8 Jan 2024 09:47:46 +0800 Subject: [PATCH 033/447] global(gui): add specialisation for disabling nvidia under a prime configuration --- global/gui/default.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/global/gui/default.nix b/global/gui/default.nix index f6f95f85..09c1595f 100644 --- a/global/gui/default.nix +++ b/global/gui/default.nix @@ -59,6 +59,13 @@ in { open = false; }; + specialisation.integratedGraphics = mkIf (cfg.type == "prime") { + configuration = { + global.gui.type = mkForce (if intel then "intel" else if amdgpu then "amdgpu" else "prime"); + boot.blacklistedKernelModules = [ "nouveau" ]; + }; + }; + boot.initrd.kernelModules = optional amdgpu "amdgpu" ++ optional intel "i915"; From 25d61847e692c29864bf667e95ac30fe9cf353d4 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 8 Jan 2024 18:18:53 +0800 Subject: [PATCH 034/447] spec(incinerator): replace machine-id with unique value --- spec/incinerator/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/incinerator/default.nix b/spec/incinerator/default.nix index b68d0b77..79faf577 100644 --- a/spec/incinerator/default.nix +++ b/spec/incinerator/default.nix @@ -2,7 +2,7 @@ , modulesPath , ... }: { global = { - id = "bc8036643fc24f04ab150ff6a38dcce7"; + id = "62ea62fde6c04fb6b5c791892b6798c8"; auth.openssh.enable = true; libvirt.enable = false; io.bluetooth = false; From affed489c3a54e73ab19f70a199608f09099e122 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 8 Jan 2024 18:19:07 +0800 Subject: [PATCH 035/447] spec(koumakyou): replace machine-id with unique value --- spec/koumakyou/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/koumakyou/default.nix b/spec/koumakyou/default.nix index 73ed21aa..34483fc4 100644 --- a/spec/koumakyou/default.nix +++ b/spec/koumakyou/default.nix @@ -2,7 +2,7 @@ , lib , ... }: { global = { - id = "bc8036643fc24f04ab150ff6a38dcce7"; + id = "eeb44fb1150944aab7d146b7caad789f"; auth.openssh.enable = true; fs.esp.uuid = "B20E-5994"; fs.type = "xfs"; From 4c1cded8527893cee1aef96fb58b34bbc3496ae5 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 9 Jan 2024 13:12:50 +0800 Subject: [PATCH 036/447] global(auth): add eientei public key --- global/auth/pub/eientei.pub | 1 + 1 file changed, 1 insertion(+) create mode 100644 global/auth/pub/eientei.pub diff --git a/global/auth/pub/eientei.pub b/global/auth/pub/eientei.pub new file mode 100644 index 00000000..dd660984 --- /dev/null +++ b/global/auth/pub/eientei.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGIZq1mD3J1cgWK61okXx3hQSe+5g3UTBfAf4RHkkFVd koishi@eientei From 453acac7ec6bf911a0ada71bcf21f3140850daf8 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 9 Jan 2024 13:17:47 +0800 Subject: [PATCH 037/447] global(fs): add f2fs and zfs --- global/fs/default.nix | 5 ++++- global/fs/f2fs.nix | 10 ++++++++++ global/fs/zfs.nix | 41 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 global/fs/f2fs.nix create mode 100644 global/fs/zfs.nix diff --git a/global/fs/default.nix b/global/fs/default.nix index f5b718cf..f5c2569b 100644 --- a/global/fs/default.nix +++ b/global/fs/default.nix @@ -6,19 +6,22 @@ in { imports = [ ./ext4.nix + ./f2fs.nix ./xfs.nix + ./zfs.nix #./bcachefs.nix ./btrfs.nix ]; options.global.fs = { type = mkOption { - type = with types; enum [ "ext4" "xfs" "bcachefs" "btrfs" ]; + type = with types; enum [ "ext4" "f2fs" "xfs" "zfs" "bcachefs" "btrfs" ]; default = "bcachefs"; description = "filesystem type to use for persistent state storage"; }; store = mkOption { type = with types; str; + default = config.networking.hostName; description = "UUID/dataset of nix store backing device"; }; esp = { diff --git a/global/fs/f2fs.nix b/global/fs/f2fs.nix new file mode 100644 index 00000000..f9043a39 --- /dev/null +++ b/global/fs/f2fs.nix @@ -0,0 +1,10 @@ +{ lib +, config +, ... }: with lib; let + cfg = config.global.fs; +in mkIf (cfg.type == "f2fs") { + fileSystems."/nix" = + { device = "/dev/disk/by-uuid/${cfg.store}"; + fsType = "f2fs"; + }; +} diff --git a/global/fs/zfs.nix b/global/fs/zfs.nix new file mode 100644 index 00000000..beec8db5 --- /dev/null +++ b/global/fs/zfs.nix @@ -0,0 +1,41 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.global.fs; +in { + options.global.fs.zfs = { + persist = mkOption { + type = with types; str; + default = cfg.store; + description = '' + pool for persist dataset + defaults to nix store dataset + ''; + }; + }; + + config = mkIf (cfg.type == "zfs") { + fileSystems = { + "/nix" = + { device = "${cfg.store}/nix"; + fsType = "zfs"; + }; + "/nix/persist" = + { device = "${cfg.zfs.persist}/persist"; + fsType = "zfs"; + neededForBoot = true; + }; + } // (mapAttrs' (name: opts: nameValuePair + "/nix/persist/home/${name}" { + device = "${cfg.zfs.persist}/home/${name}"; + fsType = "zfs"; + neededForBoot = true; + }) (filterAttrs (n: _: n != "root") config.users.profiles)); + + services.zfs.trim.enable = true; + services.zfs.autoSnapshot.enable = true; + services.zfs.autoScrub.enable = true; + boot.zfs.devNodes = mkDefault "/dev/disk/by-partuuid"; + }; +} From 948aa08f57017cb3a28b19d4317da303e19c4220 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 9 Jan 2024 14:10:05 +0800 Subject: [PATCH 038/447] home(app): isolate app user configuration --- home/app/nixos.nix | 27 +++++++++++++++++++++++++++ home/profile.nix | 27 +++++++++++---------------- home/user.nix | 5 ----- 3 files changed, 38 insertions(+), 21 deletions(-) create mode 100644 home/app/nixos.nix diff --git a/home/app/nixos.nix b/home/app/nixos.nix new file mode 100644 index 00000000..9318e957 --- /dev/null +++ b/home/app/nixos.nix @@ -0,0 +1,27 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.users; +in { + options.users.home.persistApp = { + files = mkOption { + type = with types; listOf (oneOf [ str (attrsOf str) ]); + default = [ ]; + }; + directories = mkOption { + type = with types; listOf (oneOf [ str (attrsOf str) ]); + default = [ ]; + }; + }; + + config = { + users.profiles.app = { + uid = 5800; + description = "Insecure Applications"; + }; + + # extra persistence specific to the app user + environment.persistence."/nix/persist".users.app = cfg.home.persistApp; + }; +} diff --git a/home/profile.nix b/home/profile.nix index cc26dfb6..37cafbcd 100644 --- a/home/profile.nix +++ b/home/profile.nix @@ -43,8 +43,13 @@ in { description = "home manager modules imported into every profile"; }; - home = let - persistOpts = { + home = { + size = mkOption { + type = with types; str; + default = "1G"; + description = "default home tmpfs size, mounted to prevent accidentally filling up root"; + }; + persist = { files = mkOption { type = with types; listOf (oneOf [ str (attrsOf str) ]); default = [ ]; @@ -54,14 +59,6 @@ in { default = [ ]; }; }; - in { - size = mkOption { - type = with types; str; - default = "1G"; - description = "default home tmpfs size, mounted to prevent accidentally filling up root"; - }; - persist = persistOpts; - persistApp = persistOpts; }; }; @@ -70,7 +67,7 @@ in { users = mapAttrs (name: opts: { inherit (opts) uid; description = with opts; mkIf (description != null) description; - extraGroups = mkIf opts.admin cfg.adminGroups; + extraGroups = [ "dialout" ] ++ optionals opts.admin cfg.adminGroups; openssh.authorizedKeys.keys = mkIf (opts.sshLogin && config.services.openssh.enable) config.global.auth.openssh.publicKeys; hashedPasswordFile = "/nix/persist/shadow/${name}"; @@ -82,7 +79,7 @@ in { # base groups adminGroups = [ - "wheel" "dialout" "kvm" + "wheel" "kvm" "systemd-journal" ]; @@ -140,10 +137,8 @@ in { # cannot get it properly for the same reason # mentioned above in fileSystems home = mkIf (name == "root") "/root"; - }) cfg.profiles) // { - # extra persistence specific to the app user - app = cfg.home.persistApp; - }; + }) cfg.profiles); + hideMounts = true; }; diff --git a/home/user.nix b/home/user.nix index 0273d872..82342a93 100644 --- a/home/user.nix +++ b/home/user.nix @@ -12,11 +12,6 @@ description = "Staging Environment"; }; - app = { - uid = 5800; - description = "Insecure Applications"; - }; - root.uid = 0; }; } From b2e791ed0f182e39d52e4598e60e43e69e5cd6e3 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 9 Jan 2024 14:16:37 +0800 Subject: [PATCH 039/447] spec(eientei): initial configuration --- spec/eientei/default.nix | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 spec/eientei/default.nix diff --git a/spec/eientei/default.nix b/spec/eientei/default.nix new file mode 100644 index 00000000..ba2e55df --- /dev/null +++ b/spec/eientei/default.nix @@ -0,0 +1,27 @@ +{ + global = { + id = "6b564d01975a4e93b4a51f34ba24e5b4"; + fs.esp.uuid = "FC6D-75D8"; + fs.type = "zfs"; + boot.lanzaboote = true; + gui.enable = true; + gui.type = "intel"; + android.enable = true; + }; + + home = { + minecraft.enable = true; + steam.enable = true; + }; + + powerManagement.enable = true; + powerManagement.cpuFreqGovernor = "performance"; + boot.kernelParams = [ "zfs.zfs_arc_max=34359738368" ]; + + hardware.enableRedistributableFirmware = true; + boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + hardware.cpu.intel.updateMicrocode = true; +} From 171a3ea82be7cd703eff27b790d99145ddd9887f Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 9 Jan 2024 14:50:30 +0800 Subject: [PATCH 040/447] global(fs): add zfs comment regarding pool creation --- global/fs/zfs.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/global/fs/zfs.nix b/global/fs/zfs.nix index beec8db5..2ad0a722 100644 --- a/global/fs/zfs.nix +++ b/global/fs/zfs.nix @@ -4,6 +4,9 @@ , ... }: with lib; let cfg = config.global.fs; in { + # -o ashift=12 + # -O encryption=on -O keyformat=passphrase -O keylocation=prompt + # -O compression=on -O mountpoint=none -O xattr=sa -O acltype=posixacl options.global.fs.zfs = { persist = mkOption { type = with types; str; From bf06c3479f27c7e2f03d6bf3236eab0c01cc9b99 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 9 Jan 2024 15:02:40 +0800 Subject: [PATCH 041/447] global(gui): add arc toggle specialisation --- global/gui/default.nix | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/global/gui/default.nix b/global/gui/default.nix index 09c1595f..9d44a37d 100644 --- a/global/gui/default.nix +++ b/global/gui/default.nix @@ -20,6 +20,11 @@ in { type = with types; enum [ "intel" "amdgpu" "nvidia" "prime" ]; description = "type of graphics acceleration used"; }; + arc = mkOption { + type = with types; nullOr str; + default = null; + description = "intel arc PCI ID if installed, enables toggling the arc before boot"; + }; }; config = mkIf cfg.enable { @@ -66,9 +71,21 @@ in { }; }; + specialisation.withArc = mkIf (cfg.arc != null) { + configuration = { + global.gui.arc = mkForce null; + }; + }; + boot.initrd.kernelModules = optional amdgpu "amdgpu" ++ - optional intel "i915"; + optional intel "i915" ++ + optional (cfg.arc != null) "vfio-pci"; + + boot.extraModprobeConfig = mkIf (cfg.arc != null) '' + softdep drm pre: vfio-pci + options vfio-pci ids=${cfg.arc} + ''; boot.kernelParams = optional intel "i915.fastboot=1"; }; From 004601ee2a50da45e085814ed3f34c843a497333 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 9 Jan 2024 15:02:59 +0800 Subject: [PATCH 042/447] spec(eientei): add arc id and enable bootloader timeout --- spec/eientei/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/spec/eientei/default.nix b/spec/eientei/default.nix index ba2e55df..b463819b 100644 --- a/spec/eientei/default.nix +++ b/spec/eientei/default.nix @@ -6,6 +6,7 @@ boot.lanzaboote = true; gui.enable = true; gui.type = "intel"; + gui.arc = "8086:5691"; android.enable = true; }; @@ -17,6 +18,7 @@ powerManagement.enable = true; powerManagement.cpuFreqGovernor = "performance"; boot.kernelParams = [ "zfs.zfs_arc_max=34359738368" ]; + boot.loader.timeout = 2; hardware.enableRedistributableFirmware = true; boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" ]; From b6897272aaf5c82ff3a83c7e346511ee2c492089 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 9 Jan 2024 16:48:28 +0800 Subject: [PATCH 043/447] global(fs): improve zfs mountpoint handling --- global/fs/zfs.nix | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/global/fs/zfs.nix b/global/fs/zfs.nix index 2ad0a722..6d09fedf 100644 --- a/global/fs/zfs.nix +++ b/global/fs/zfs.nix @@ -16,25 +16,25 @@ in { defaults to nix store dataset ''; }; + mountpoints = mkOption { + type = with types; attrsOf str; + description = "zfs dataset mountpoints"; + }; }; config = mkIf (cfg.type == "zfs") { - fileSystems = { + fileSystems = (mapAttrs (path: dataset: { + device = "${cfg.zfs.persist}/${dataset}"; + fsType = "zfs"; + # required by impermanence + neededForBoot = true; + }) cfg.zfs.mountpoints) // { "/nix" = { device = "${cfg.store}/nix"; fsType = "zfs"; }; - "/nix/persist" = - { device = "${cfg.zfs.persist}/persist"; - fsType = "zfs"; - neededForBoot = true; - }; - } // (mapAttrs' (name: opts: nameValuePair - "/nix/persist/home/${name}" { - device = "${cfg.zfs.persist}/home/${name}"; - fsType = "zfs"; - neededForBoot = true; - }) (filterAttrs (n: _: n != "root") config.users.profiles)); + }; + global.fs.zfs.mountpoints."/nix/persist" = "persist"; services.zfs.trim.enable = true; services.zfs.autoSnapshot.enable = true; From cca40455c87a0306cfc2a1d0c8e02b69087516c2 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 9 Jan 2024 16:48:49 +0800 Subject: [PATCH 044/447] home: map home persistence to zfs mountpoints --- home/profile.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/home/profile.nix b/home/profile.nix index 37cafbcd..d10a1552 100644 --- a/home/profile.nix +++ b/home/profile.nix @@ -124,6 +124,12 @@ in { neededForBoot = true; }) cfg.profiles; + global.fs.zfs.mountpoints = mapAttrs' + (name: opts: nameValuePair + "/nix/persist/home/${name}" + "home/${name}") + (filterAttrs (n: _: n != "root") config.users.profiles); + home-manager.users = mapAttrs (name: opts: { imports = cfg.homeModules; home.stateVersion = "23.11"; From 01e14e155f1cd391b188718f3b03ec2665d6b5ee Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 9 Jan 2024 17:02:15 +0800 Subject: [PATCH 045/447] global(libvirt): add zfs mountpoint --- global/libvirt/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/global/libvirt/default.nix b/global/libvirt/default.nix index 1de52ea4..a11d63cf 100644 --- a/global/libvirt/default.nix +++ b/global/libvirt/default.nix @@ -26,6 +26,7 @@ in { environment.persistence."/nix/persist/fhs".directories = [ "/var/lib/libvirt" ]; + global.fs.zfs.mountpoints."/nix/persist/service/libvirt" = "service/libvirt"; # allow management by admin users users.adminGroups = [ "libvirtd" ]; From 2a3d621b784dca9e392ac58335b9ed863e307e23 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 9 Jan 2024 17:46:33 +0800 Subject: [PATCH 046/447] home(foot): configure font --- home/foot/home.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/home/foot/home.nix b/home/foot/home.nix index d0d7bf86..87c6f7fa 100644 --- a/home/foot/home.nix +++ b/home/foot/home.nix @@ -5,5 +5,6 @@ programs.foot = { enable = true; settings.main.term = "xterm-256color"; + settings.main.font = "DejaVu Sans Mono:size=11"; }; } From 441b4a363c6948887b6dab7481d0536fdcac9b8e Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 9 Jan 2024 18:48:40 +0800 Subject: [PATCH 047/447] spec(eientei): switch to powersave governor --- spec/eientei/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/eientei/default.nix b/spec/eientei/default.nix index b463819b..1a206e6b 100644 --- a/spec/eientei/default.nix +++ b/spec/eientei/default.nix @@ -16,7 +16,7 @@ }; powerManagement.enable = true; - powerManagement.cpuFreqGovernor = "performance"; + powerManagement.cpuFreqGovernor = "powersave"; boot.kernelParams = [ "zfs.zfs_arc_max=34359738368" ]; boot.loader.timeout = 2; From 5ab271b704e9eeb5b15ae94accd4768f440581c2 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 9 Jan 2024 19:11:05 +0800 Subject: [PATCH 048/447] global(gui): improve withArc specialisation --- global/gui/default.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/global/gui/default.nix b/global/gui/default.nix index 9d44a37d..d2e1bd2b 100644 --- a/global/gui/default.nix +++ b/global/gui/default.nix @@ -74,6 +74,13 @@ in { specialisation.withArc = mkIf (cfg.arc != null) { configuration = { global.gui.arc = mkForce null; + environment.variables.DRI_PRIME = "1"; + powerManagement.cpuFreqGovernor = mkForce "performance"; + services.greetd.settings.default_session.command = '' + env DRI_PRIME=0 ${pkgs.dbus}/bin/dbus-run-session \ + ${getExe pkgs.cage} ${escapeShellArgs config.programs.regreet.cageArgs} -- \ + ${getExe config.programs.regreet.package} + ''; }; }; From 715f2899189a7217c273bc30da9967d841ba81f2 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 10 Jan 2024 13:38:13 +0800 Subject: [PATCH 049/447] home(libreoffice): add libreoffice package --- home/libreoffice/home.nix | 9 +++++++++ home/libreoffice/nixos.nix | 22 ++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 home/libreoffice/home.nix create mode 100644 home/libreoffice/nixos.nix diff --git a/home/libreoffice/home.nix b/home/libreoffice/home.nix new file mode 100644 index 00000000..628782af --- /dev/null +++ b/home/libreoffice/home.nix @@ -0,0 +1,9 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.passthrough.libreoffice; + enable = cfg.enable && (cfg.allUsers || (config.home.username == "app")); +in mkIf enable { + home.packages = with pkgs; [ libreoffice ]; +} diff --git a/home/libreoffice/nixos.nix b/home/libreoffice/nixos.nix new file mode 100644 index 00000000..9e911164 --- /dev/null +++ b/home/libreoffice/nixos.nix @@ -0,0 +1,22 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.home.libreoffice; + persist = [ ".config/libreoffice" ]; +in { + options.home.libreoffice = { + enable = mkEnableOption "open source office suite"; + allUsers = mkEnableOption "set up for all users"; + }; + + config = { + users.homeModules = [ + # this module passes minecraft configuration to home-manager + { passthrough.libreoffice = cfg; } + ]; + + users.home.persist.directories = with cfg; mkIf (enable && allUsers) persist; + users.home.persistApp.directories = with cfg; mkIf (enable && !allUsers) persist; + }; +} From b7cc73d661544a13e8a98aa13173226a7eca9771 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 10 Jan 2024 13:38:29 +0800 Subject: [PATCH 050/447] spec(eientei): enable libreoffice --- spec/eientei/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/eientei/default.nix b/spec/eientei/default.nix index 1a206e6b..e1d916b4 100644 --- a/spec/eientei/default.nix +++ b/spec/eientei/default.nix @@ -11,6 +11,7 @@ }; home = { + libreoffice.enable = true; minecraft.enable = true; steam.enable = true; }; From cda6073cc6f8827d3edd90abc2f8f159e84a981f Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 10 Jan 2024 15:58:27 +0800 Subject: [PATCH 051/447] home(util): add nix-index --- home/util/home.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home/util/home.nix b/home/util/home.nix index fd405361..fe014588 100644 --- a/home/util/home.nix +++ b/home/util/home.nix @@ -3,7 +3,7 @@ , config , ... }: with lib; { home.packages = with pkgs; [ - pv wget e2fsprogs + pv wget nix-index e2fsprogs pciutils usbutils lsscsi ] ++ optionals config.passthrough.gui [ xfce.thunar From f5956fc512f233e2add6eecacdec51f14ba66191 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 10 Jan 2024 16:31:17 +0800 Subject: [PATCH 052/447] home(util): add nix-index persistence --- home/util/nixos.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/home/util/nixos.nix b/home/util/nixos.nix index 694b0f7f..83ab6066 100644 --- a/home/util/nixos.nix +++ b/home/util/nixos.nix @@ -4,7 +4,9 @@ , ... }: with lib; let gui = with config.global.gui; ( enable && session ); in { - users.home.persist.directories = [ ] ++ + users.home.persist.directories = [ + ".cache/nix-index" + ] ++ optionals gui [ ".local/share/Mission Planner" ".config/betaflight-configurator" From ae719fa70638a656f4a8dd558d9b26c32c7f90c8 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 10 Jan 2024 16:54:03 +0800 Subject: [PATCH 053/447] home(util): add zip and unzip --- home/util/home.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/home/util/home.nix b/home/util/home.nix index fe014588..f9f45b97 100644 --- a/home/util/home.nix +++ b/home/util/home.nix @@ -3,7 +3,8 @@ , config , ... }: with lib; { home.packages = with pkgs; [ - pv wget nix-index e2fsprogs + pv wget nix-index + e2fsprogs zip unzip pciutils usbutils lsscsi ] ++ optionals config.passthrough.gui [ xfce.thunar From f0289b1685002a3c320e1e258cdd704618401443 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 10 Jan 2024 19:21:40 +0800 Subject: [PATCH 054/447] home(util): add file --- home/util/home.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home/util/home.nix b/home/util/home.nix index f9f45b97..d4fa8e84 100644 --- a/home/util/home.nix +++ b/home/util/home.nix @@ -3,7 +3,7 @@ , config , ... }: with lib; { home.packages = with pkgs; [ - pv wget nix-index + pv file wget nix-index e2fsprogs zip unzip pciutils usbutils lsscsi ] ++ optionals config.passthrough.gui [ From 416bf5d2600a75c03f7dfeacc40532bcb23939c1 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 10 Jan 2024 23:37:17 +0800 Subject: [PATCH 055/447] home(util): add gtk theme engines --- home/util/home.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/home/util/home.nix b/home/util/home.nix index d4fa8e84..cd116457 100644 --- a/home/util/home.nix +++ b/home/util/home.nix @@ -7,6 +7,8 @@ e2fsprogs zip unzip pciutils usbutils lsscsi ] ++ optionals config.passthrough.gui [ + gtk-engine-murrine + gnome-themes-extra xfce.thunar mission-planner betaflight-configurator From d59639bfa1bcc4613d79e307ce009ebc25b77388 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 10 Jan 2024 23:37:33 +0800 Subject: [PATCH 056/447] global(gui): add intel icd --- global/gui/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/global/gui/default.nix b/global/gui/default.nix index d2e1bd2b..df30fb45 100644 --- a/global/gui/default.nix +++ b/global/gui/default.nix @@ -39,6 +39,7 @@ in { vaapiIntel # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium) vaapiVdpau libvdpau-va-gl + intel-compute-runtime ] ++ optional nvidia nvidia-vaapi-driver; }; From 8b2f1ed9dd086143aaa32d7cf94e3e97674f0693 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 10 Jan 2024 23:49:00 +0800 Subject: [PATCH 057/447] home(gyroflow): add package and module --- home/gyroflow/home.nix | 11 ++ home/gyroflow/nixos.nix | 19 ++ home/gyroflow/package/crash-dump.patch | 27 +++ home/gyroflow/package/default.nix | 253 +++++++++++++++++++++++++ 4 files changed, 310 insertions(+) create mode 100644 home/gyroflow/home.nix create mode 100644 home/gyroflow/nixos.nix create mode 100644 home/gyroflow/package/crash-dump.patch create mode 100644 home/gyroflow/package/default.nix diff --git a/home/gyroflow/home.nix b/home/gyroflow/home.nix new file mode 100644 index 00000000..a0e708a1 --- /dev/null +++ b/home/gyroflow/home.nix @@ -0,0 +1,11 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.passthrough.gyroflow; +in mkIf cfg.enable { + home.packages = with pkgs; [ (pkgs.callPackage ./package { + inherit (pkgs.qt6) wrapQtAppsHook qmake + qtbase qtsvg qtwayland qtvirtualkeyboard qtdeclarative; + }) ]; +} diff --git a/home/gyroflow/nixos.nix b/home/gyroflow/nixos.nix new file mode 100644 index 00000000..34fe3356 --- /dev/null +++ b/home/gyroflow/nixos.nix @@ -0,0 +1,19 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.home.gyroflow; +in { + options.home.gyroflow = { + enable = mkEnableOption "gyroflow stabilisation software"; + }; + + config = { + users.homeModules = [ + # this module passes gyroflow configuration to home-manager + { passthrough.gyroflow = cfg; } + ]; + + users.home.persist.directories = [ ".config/Gyroflow" ]; + }; +} diff --git a/home/gyroflow/package/crash-dump.patch b/home/gyroflow/package/crash-dump.patch new file mode 100644 index 00000000..bc953294 --- /dev/null +++ b/home/gyroflow/package/crash-dump.patch @@ -0,0 +1,27 @@ +diff --git a/src/util.rs b/src/util.rs +index 1d58ffb8..afee58d4 100644 +--- a/src/util.rs ++++ b/src/util.rs +@@ -302,22 +302,6 @@ pub fn install_crash_handler() -> std::io::Result<()> { + } + } + +- // Upload crash dumps +- crate::core::run_threaded(move || { +- if let Ok(files) = std::fs::read_dir(cur_dir) { +- for path in files.flatten() { +- let path = path.path(); +- if path.to_string_lossy().ends_with(".dmp") { +- if let Ok(content) = std::fs::read(&path) { +- if let Ok(Ok(body)) = ureq::post("https://api.gyroflow.xyz/upload_dump").set("Content-Type", "application/octet-stream").send_bytes(&content).map(|x| x.into_string()) { +- ::log::debug!("Minidump uploaded: {}", body.as_str()); +- let _ = std::fs::remove_file(path); +- } +- } +- } +- } +- } +- }); + Ok(()) + } + diff --git a/home/gyroflow/package/default.nix b/home/gyroflow/package/default.nix new file mode 100644 index 00000000..a35bdf43 --- /dev/null +++ b/home/gyroflow/package/default.nix @@ -0,0 +1,253 @@ +{ lib +, stdenv +, stdenvNoCC +, symlinkJoin +, fetchurl +, fetchpatch +, fetchFromGitHub +, writeShellScript +, writeShellScriptBin +, makeDesktopItem +, fetchzip +, rustPlatform +, alsaLib +, libpulseaudio +, ffmpeg +, libclang +, xorg +, wayland +, glfw +, libva +, mesa +, libdrm +, xz +, zlib +, ocl-icd +, opencv +, qtbase +, qtsvg +, qtwayland +, qtvirtualkeyboard +, qtdeclarative +, qmake +, clang +, imagemagick +, wrapQtAppsHook +, autoPatchelfHook +, pkg-config }: let + name = "gyroflow"; + version = "1.5.4"; + + src-unpatched = fetchFromGitHub { + name = "${name}-src-unpatched"; + owner = name; + repo = name; + rev = "v${version}"; + hash = "sha256-Pdqe8T03KpO3ApOjm/z7gd5waQOvEZBHcvdrLyot4O8="; + }; + + mdk-sdk = stdenvNoCC.mkDerivation rec { + name = "mdk-sdk"; + version = "20240110111804"; + src = fetchzip { + name = "mdk-sdk"; + # unfortunately the only way to pin the version + url = "https://web.archive.org/web/${version}if_/https://master.dl.sourceforge.net/project/mdk-sdk/mdk-sdk-linux.tar.xz?viasf=1"; + hash = "sha256-Jtdp0YKVOK5+0xBigezB2Oatsr00gAgJuCZlbzpZPHk="; + }; + + buildInputs = [ + stdenv.cc.cc.lib + alsaLib libpulseaudio + glfw libdrm mesa + xz wayland xorg.libX11 + ]; + + nativeBuildInputs = [ autoPatchelfHook ]; + + installPhase = '' + cp -r . "$out" + ''; + }; + + gyroflow-unwrapped = rustPlatform.buildRustPackage rec { + pname = "gyroflow-unwrapped"; + inherit version; + cargoHash = "sha256-KkGXKoVRZZ7HUTtWYBerrN36a7RqsHjYQb+bwG1JagY="; + cargoLock = { + outputHashes = { + "ahrs-0.6.0" = "sha256-CxWyX8t+BjqIyNj1p1LdkCmNrtJkudmKgZPv0MVcghY="; + "akaze-0.7.0" = "sha256-KkGXKoVRZZ7HUTtWYBerrN36a7RqsHjYQb+bwG1JagY="; + "d3d12-0.7.0" = "sha256-0b/LozKVPm+UQTO066s5uoebRxEWoC0V8T7a6e0z9YE="; + "fc-blackbox-0.2.0" = "sha256-gL8m9DpHJPVD8vvrmuYv+biJT4PA5LmtohJwFVO+khU="; + "glow-0.13.0" = "sha256-vhPWzsm7NZx9JiRZcVoUslTGySQbASRh/wNlo1nK5jg="; + "keep-awake-0.1.0" = "sha256-EoXhK4/Aij70f73+5NBUoCXqZISG1+n2eVavNqe8mq4="; + "nshare-0.9.0" = "sha256-PAV41mMLDmhkAz4+qyf+MZnYTAdMwjk83+f+RdaJji8="; + "qmetaobject-0.2.10" = "sha256-ldmpbOYoCOaAoipfcCSwuV+fzF9gg1PTbRz2Jm4zJvA="; + "qml-video-rs-0.1.0" = "sha256-yvA+Je50rF6SgTxDQuDPgyM2MgtD4AAV9uGnAj/ecf4="; + "rs-sync-0.1.0" = "sha256-sfym7zv5SUitopqNJ6uFP6AMzAGf4Y7U0dzXAKlvuGA="; + "simplelog-0.12.0" = "sha256-NvmtLbzahSw1WMS3LY+jWiX4SxfSRwidTMvICGcmDO4="; + "system_shutdown-4.0.1" = "sha256-arJWmEjDdaig/oAfwSolVmk9s1UovrQ5LNUgTpUvoOQ="; + "telemetry-parser-0.2.8" = "sha256-J4eHCojoGKKbqVKHkyQjxXbfrYsyYn7DR7ZdogbOQK4="; + }; + + lockFile = "${src}/Cargo.lock"; + }; + + # breaks some build.rs + dontCargoCheck = true; + + src = stdenvNoCC.mkDerivation { + name = "${name}-src"; + inherit version; + phases = [ "unpackPhase" "patchPhase" "installPhase" ]; + installPhase = '' + cp -r . "$out" + ''; + patches = [ + (fetchpatch { + name = "fix-ffmpeg.patch"; + url = "https://github.com/gyroflow/gyroflow/compare/v1.5.4...cdca1ee.patch"; + hash = "sha256-kEjKlFSa02sa2NvFyoFl1EWL4TuLeFsmYOY0/dYykrg="; + }) + ./crash-dump.patch + ]; + src = src-unpatched; + }; + + buildInputs = [ + alsaLib + ffmpeg + libclang + ocl-icd + opencv + zlib.static + qtdeclarative + wrapQtAppsHook + ]; + + nativeBuildInputs = [ pkg-config qmake clang ] ++ [ + # build.rs abuses qt path variables to get path to qmlcachegen + # it fails and falls back to calling qmlcachegen directly which doesn't work + # since it's in libexec, this derivation provides a wrapper to make it work + (writeShellScriptBin "qmlcachegen" '' + exec "${qtdeclarative}/libexec/qmlcachegen" "$@" + '') + ]; + + # build error debugging + RUST_BACKTRACE="full"; + # build script cannot find libclang + LIBCLANG_PATH="${libclang.lib}/lib"; + # proprietary mdk-sdk library has to be patched + MDK_SDK="${mdk-sdk}/"; + # compiler cannot find these for some reason + CPLUS_INCLUDE_PATH=lib.concatImapStrings (i: path: + (if i != 1 then ":" else "") + + "${qtdeclarative}/include/${path}") [ + "QtQuick" + "QtQuick/${qtdeclarative.version}" + "QtQuick/${qtdeclarative.version}/QtQuick" + "QtQml" + "QtQml/${qtdeclarative.version}" + "QtQml/${qtdeclarative.version}/QtQml" + "QtQuickControls2" + "QtQuickControls2/${qtdeclarative.version}" + "QtQuickControls2/${qtdeclarative.version}/QtQuickControls2" + ]; + # build.rs relies on these variables to point to deps + # instead of discovering them properly + OPENCV_LINK_PATHS="${opencv}"; + OPENCV_LINK_LIBS=lib.concatImapStrings (i: opt: + (if i != 1 then "," else "") + opt) [ + "opencv_core" + "opencv_calib3d" + "opencv_features2d" + "opencv_imgproc" + "opencv_video" + "opencv_flann" + "opencv_dnn" + "opencv_imgcodecs" + "opencv_objdetect" + "opencv_stitching" + "png" + ]; + FFMPEG_DIR="${ffmpeg.dev}"; + + installPhase = '' + CARGO_TARGET="target/x86_64-unknown-linux-gnu/release/" + FFMPEG_DIR=${ffmpeg.lib} + + mkdir -p "$out" + mkdir -p "$out/lib" + + cp -f "$CARGO_TARGET/libmdk.so.0" "$out/lib/" + cp -f "$CARGO_TARGET/libmdk-braw.so" "$out/lib/" + cp -f "$CARGO_TARGET/libmdk-r3d.so" "$out/lib/" + + cp -f "$CARGO_TARGET/gyroflow" "$out/" + strip "$out/gyroflow" + + cp -rf "${lens-profiles}" "$out/camera_presets" + ''; + }; + + lens-profiles = fetchFromGitHub { + name = "gyroflow-lens-profiles"; + owner = name; + repo = "lens_profiles"; + rev = "3e72169ae6b8601260497d7216d5fcbbc8b67194"; + hash = "sha256-18KtunSxTsJhBge+uOGBcNZRG3W26M/Osyxllu+N0UI="; + }; + + gyroflow-qt-runtime = symlinkJoin { + name = "gyroflow-qt-runtime"; + paths = [ + qtbase + qtsvg + qtwayland + qtdeclarative + qtvirtualkeyboard + ]; + }; + + desktopItem = makeDesktopItem { + inherit name; + exec = name; + icon = name; + comment = '' + Advanced gyro-based video stabilization tool for cinematography, drone videography and much more! + ''; + desktopName = "Gyroflow"; + genericName = "Video stabilization tool"; + }; +in stdenvNoCC.mkDerivation { + pname = name; + inherit version; + phases = [ "unpackPhase" "patchPhase" "installPhase" ]; + src = src-unpatched; + + nativeBuildInputs = [ imagemagick ]; + + installPhase = '' + mkdir -p "$out/bin" + + convert resources/icon.png -resize 128x128 icon-128.png + install -m 444 -D icon-128.png $out/share/icons/hicolor/128x128/apps/${name}.png + cp -r ${desktopItem}/share/applications $out/share/ + + # mdk-sdk reads program name as part of its license check + # therefore a custom wrapper that preserves the gyroflow name is required + cp ${writeShellScript "gyroflow-wrapper" '' + export QT_PLUGIN_PATH=${gyroflow-qt-runtime}/lib/qt-6/plugins + export QML2_IMPORT_PATH=${qtdeclarative}/lib/qt-6/qml + + # does not find drivers without this + export LD_LIBRARY_PATH="/run/opengl-driver/lib:/run/opengl-driver/lib/dri:/run/opengl-driver/lib/vdpau:${libva.out}/lib" + # video acceleration in preview only works with this set + export MDK_DECODERS=VAAPI + + exec -a "$0" "${gyroflow-unwrapped}/gyroflow" "$@" + ''} $out/bin/gyroflow + ''; +} From 9409130507399802a96ad7a53be12baf9e1d33be Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 10 Jan 2024 23:49:25 +0800 Subject: [PATCH 058/447] spec(eientei): enable gyroflow --- spec/eientei/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/eientei/default.nix b/spec/eientei/default.nix index e1d916b4..a35ee350 100644 --- a/spec/eientei/default.nix +++ b/spec/eientei/default.nix @@ -11,6 +11,7 @@ }; home = { + gyroflow.enable = true; libreoffice.enable = true; minecraft.enable = true; steam.enable = true; From dc6f9ce518bf395b3fc264c45a81848459c4ac0f Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 11 Jan 2024 10:52:22 +0800 Subject: [PATCH 059/447] spec(koumakyou): enable gyroflow --- spec/koumakyou/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/koumakyou/default.nix b/spec/koumakyou/default.nix index 34483fc4..2e5492b9 100644 --- a/spec/koumakyou/default.nix +++ b/spec/koumakyou/default.nix @@ -20,6 +20,7 @@ }; home = { + gyroflow.enable = true; minecraft.enable = true; minecraft.allUsers = true; steam.enable = true; From 164140c92e05bc17e4834da1fb05e2b0210f20da Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 11 Jan 2024 10:59:16 +0800 Subject: [PATCH 060/447] global(gui): add withArcFull specialisation for always-on offload --- global/gui/default.nix | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/global/gui/default.nix b/global/gui/default.nix index df30fb45..d3702d26 100644 --- a/global/gui/default.nix +++ b/global/gui/default.nix @@ -75,9 +75,19 @@ in { specialisation.withArc = mkIf (cfg.arc != null) { configuration = { global.gui.arc = mkForce null; - environment.variables.DRI_PRIME = "1"; powerManagement.cpuFreqGovernor = mkForce "performance"; + }; + }; + + specialisation.withArcFull = mkIf (cfg.arc != null) { + configuration = { + global.gui.arc = mkForce null; + powerManagement.cpuFreqGovernor = mkForce "performance"; + + # set DRI_PRIME in profile to always enable offloading + environment.variables.DRI_PRIME = "1"; services.greetd.settings.default_session.command = '' + # regreet is buggy with offload enabled so we turn it off env DRI_PRIME=0 ${pkgs.dbus}/bin/dbus-run-session \ ${getExe pkgs.cage} ${escapeShellArgs config.programs.regreet.cageArgs} -- \ ${getExe config.programs.regreet.package} From 39913415f48a3b95158f42ca7006f76e5568d065 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 11 Jan 2024 11:44:09 +0800 Subject: [PATCH 061/447] flake: bump inputs --- flake.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/flake.lock b/flake.lock index 31357dc3..012fcdf2 100644 --- a/flake.lock +++ b/flake.lock @@ -155,11 +155,11 @@ ] }, "locked": { - "lastModified": 1704498488, - "narHash": "sha256-yINKdShHrtjdiJhov+q0s3Y3B830ujRoSbHduUNyKag=", + "lastModified": 1704809957, + "narHash": "sha256-Z8sBeoeeY2O+BNqh5C+4Z1h1F1wQ2mij7yPZ2GY397M=", "owner": "nix-community", "repo": "home-manager", - "rev": "51e44a13acea71b36245e8bd8c7db53e0a3e61ee", + "rev": "e13aa9e287b3365473e5897e3667ea80a899cdfb", "type": "github" }, "original": { @@ -213,11 +213,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1704194953, - "narHash": "sha256-RtDKd8Mynhe5CFnVT8s0/0yqtWFMM9LmCzXv/YKxnq4=", + "lastModified": 1704722960, + "narHash": "sha256-mKGJ3sPsT6//s+Knglai5YflJUF2DGj7Ai6Ynopz0kI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "bd645e8668ec6612439a9ee7e71f7eac4099d4f6", + "rev": "317484b1ead87b9c1b8ac5261a8d2dd748a0492d", "type": "github" }, "original": { From 3833d15d572659bbc5fe79a0292cfaca4830f31e Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 11 Jan 2024 12:22:52 +0800 Subject: [PATCH 062/447] home(gyroflow): remove unnecessary library copies and wrapper variables --- home/gyroflow/package/default.nix | 18 +++++------------- home/gyroflow/package/mdk-log.patch | 13 +++++++++++++ 2 files changed, 18 insertions(+), 13 deletions(-) create mode 100644 home/gyroflow/package/mdk-log.patch diff --git a/home/gyroflow/package/default.nix b/home/gyroflow/package/default.nix index a35bdf43..b2885866 100644 --- a/home/gyroflow/package/default.nix +++ b/home/gyroflow/package/default.nix @@ -111,6 +111,7 @@ hash = "sha256-kEjKlFSa02sa2NvFyoFl1EWL4TuLeFsmYOY0/dYykrg="; }) ./crash-dump.patch + ./mdk-log.patch ]; src = src-unpatched; }; @@ -175,19 +176,9 @@ FFMPEG_DIR="${ffmpeg.dev}"; installPhase = '' - CARGO_TARGET="target/x86_64-unknown-linux-gnu/release/" - FFMPEG_DIR=${ffmpeg.lib} - mkdir -p "$out" - mkdir -p "$out/lib" - - cp -f "$CARGO_TARGET/libmdk.so.0" "$out/lib/" - cp -f "$CARGO_TARGET/libmdk-braw.so" "$out/lib/" - cp -f "$CARGO_TARGET/libmdk-r3d.so" "$out/lib/" - - cp -f "$CARGO_TARGET/gyroflow" "$out/" + cp -f "target/x86_64-unknown-linux-gnu/release/gyroflow" "$out/" strip "$out/gyroflow" - cp -rf "${lens-profiles}" "$out/camera_presets" ''; }; @@ -244,8 +235,9 @@ in stdenvNoCC.mkDerivation { # does not find drivers without this export LD_LIBRARY_PATH="/run/opengl-driver/lib:/run/opengl-driver/lib/dri:/run/opengl-driver/lib/vdpau:${libva.out}/lib" - # video acceleration in preview only works with this set - export MDK_DECODERS=VAAPI + + # our build crashes on exit so this silences the excessive crash dumps + cd /var/empty exec -a "$0" "${gyroflow-unwrapped}/gyroflow" "$@" ''} $out/bin/gyroflow diff --git a/home/gyroflow/package/mdk-log.patch b/home/gyroflow/package/mdk-log.patch new file mode 100644 index 00000000..5b3351d3 --- /dev/null +++ b/home/gyroflow/package/mdk-log.patch @@ -0,0 +1,13 @@ +diff --git a/src/util.rs b/src/util.rs +index 8bcbd2e0..7e51865f 100644 +--- a/src/util.rs ++++ b/src/util.rs +@@ -226,7 +226,7 @@ pub fn init_logging() { + .init().unwrap(); + } + } else { +- let log_config = [ "mp4parse", "wgpu", "naga", "akaze", "ureq", "rustls", "mdk" ] ++ let log_config = [ "mp4parse", "wgpu", "naga", "akaze", "ureq", "rustls" ] + .into_iter() + .fold(ConfigBuilder::new(), |mut cfg, x| { cfg.add_filter_ignore_str(x); cfg }) + .build(); From c4d85a0d3e24c59c77ca1bd4321f97842fac1b47 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 11 Jan 2024 12:24:14 +0800 Subject: [PATCH 063/447] global(fs): set kernel version when zfs is selected --- global/fs/zfs.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/global/fs/zfs.nix b/global/fs/zfs.nix index 6d09fedf..66252da3 100644 --- a/global/fs/zfs.nix +++ b/global/fs/zfs.nix @@ -40,5 +40,6 @@ in { services.zfs.autoSnapshot.enable = true; services.zfs.autoScrub.enable = true; boot.zfs.devNodes = mkDefault "/dev/disk/by-partuuid"; + boot.kernelPackages = config.boot.zfs.package.latestCompatibleLinuxPackages; }; } From a5e7e6a62319091236ae7c186c09730f3a0b1b1e Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 11 Jan 2024 13:26:49 +0800 Subject: [PATCH 064/447] home(gyroflow): add enable check to persist --- home/gyroflow/nixos.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home/gyroflow/nixos.nix b/home/gyroflow/nixos.nix index 34fe3356..94e86471 100644 --- a/home/gyroflow/nixos.nix +++ b/home/gyroflow/nixos.nix @@ -14,6 +14,6 @@ in { { passthrough.gyroflow = cfg; } ]; - users.home.persist.directories = [ ".config/Gyroflow" ]; + users.home.persist.directories = mkIf cfg.enable [ ".config/Gyroflow" ]; }; } From 0928b4d54302b4e70d14c037aa93affb4106e82d Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 11 Jan 2024 13:59:55 +0800 Subject: [PATCH 065/447] global(oci): add podman runtime --- global/oci/default.nix | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 global/oci/default.nix diff --git a/global/oci/default.nix b/global/oci/default.nix new file mode 100644 index 00000000..4827c71a --- /dev/null +++ b/global/oci/default.nix @@ -0,0 +1,20 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.global.oci; +in { + options.global.oci = { + enable = mkEnableOption "oci container runtime"; + }; + + config = mkIf cfg.enable { + virtualisation.podman = { + enable = true; + enableNvidia = with config.global.gui; mkDefault (type == "prime" || type == "nvidia"); + dockerCompat = true; + }; + + users.home.persist.directories = [ ".local/share/containers" ]; + }; +} From ad694f6eac571008d1612dfbb5398ec1dde25872 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 11 Jan 2024 14:03:06 +0800 Subject: [PATCH 066/447] spec(incinerator): enable oci runtime --- spec/incinerator/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/incinerator/default.nix b/spec/incinerator/default.nix index 79faf577..5ee06959 100644 --- a/spec/incinerator/default.nix +++ b/spec/incinerator/default.nix @@ -9,6 +9,7 @@ io.audio = false; fs.type = "btrfs"; fs.store = "534f985d-0540-49eb-a2f6-b30ea16f41ad"; + oci.enable = true; }; imports = lib.pipe ./. [ From 10f1a139db446bbf7a89bd077339486f5f82b9fb Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 11 Jan 2024 14:03:17 +0800 Subject: [PATCH 067/447] spec(koumakyou): enable oci runtime --- spec/koumakyou/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/koumakyou/default.nix b/spec/koumakyou/default.nix index 2e5492b9..39075108 100644 --- a/spec/koumakyou/default.nix +++ b/spec/koumakyou/default.nix @@ -17,6 +17,7 @@ gui.enable = true; gui.type = "prime"; asusd.enable = true; + podman.enable = true; }; home = { From c8291ebc32509b28c5b4653382e3c3a4cde65879 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 11 Jan 2024 14:03:36 +0800 Subject: [PATCH 068/447] global(gui): add default null value to type --- global/gui/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/global/gui/default.nix b/global/gui/default.nix index d3702d26..5c573d35 100644 --- a/global/gui/default.nix +++ b/global/gui/default.nix @@ -17,7 +17,8 @@ in { enable = mkEnableOption "various setup required for GUI and support software"; session = mkEnableOption "software required for a graphical session" // { default = true; }; type = mkOption { - type = with types; enum [ "intel" "amdgpu" "nvidia" "prime" ]; + type = with types; nullOr enum [ "intel" "amdgpu" "nvidia" "prime" ]; + default = null; description = "type of graphics acceleration used"; }; arc = mkOption { From 4cdc4727091482ab94fb9dc04a0d7869ff4d69fb Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 11 Jan 2024 14:04:23 +0800 Subject: [PATCH 069/447] spec(library): enable oci runtime --- spec/library/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/library/default.nix b/spec/library/default.nix index 6616d4c1..751ac1b0 100644 --- a/spec/library/default.nix +++ b/spec/library/default.nix @@ -14,6 +14,7 @@ fs.extPersist.enable = true; fs.extPersist.device = "/dev/disk/by-uuid/ba3d0989-9f81-4ac0-b5a7-124c86835cfa"; fs.extPersist.fsType = "ext4"; + oci.enable = true; }; networking.proxy = { From 9e916e2818601a70c7e38e81872872620181817f Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 11 Jan 2024 14:15:04 +0800 Subject: [PATCH 070/447] global(gui): fix type --- global/gui/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global/gui/default.nix b/global/gui/default.nix index 5c573d35..3b2082de 100644 --- a/global/gui/default.nix +++ b/global/gui/default.nix @@ -17,7 +17,7 @@ in { enable = mkEnableOption "various setup required for GUI and support software"; session = mkEnableOption "software required for a graphical session" // { default = true; }; type = mkOption { - type = with types; nullOr enum [ "intel" "amdgpu" "nvidia" "prime" ]; + type = with types; nullOr (enum [ "intel" "amdgpu" "nvidia" "prime" ]); default = null; description = "type of graphics acceleration used"; }; From 9ddbc86b68b2990d587c9370d398a1838a8b515e Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 11 Jan 2024 14:29:06 +0800 Subject: [PATCH 071/447] spec(library): add act_runner instance --- spec/library/forgejo.nix | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/spec/library/forgejo.nix b/spec/library/forgejo.nix index d957c9cf..8c086e95 100644 --- a/spec/library/forgejo.nix +++ b/spec/library/forgejo.nix @@ -1,4 +1,5 @@ { pkgs +, config , ...}: let host = "src.514fpv.io"; in { @@ -30,4 +31,33 @@ in { addSSL = true; locations."/".proxyPass = "http://unix:/run/forgejo/forgejo.sock"; }; + + services.gitea-actions-runner.instances.local = { + enable = true; + url = "https://${host}:2096"; + name = config.networking.hostName; + tokenFile = "/nix/persist/secret/gitea-runner"; + labels = [ + # provide a debian base with nodejs for actions + "debian-latest:docker://node:18-bullseye" + # fake the ubuntu name, because node provides no ubuntu builds + "ubuntu-latest:docker://node:18-bullseye" + # provide native execution on the host + "native:host" + ]; + settings = { + runner.envs = let + proxy = "socks5://192.168.1.253:1080"; + in { + all_proxy = proxy; + ftp_proxy = proxy; + http_proxy = proxy; + https_proxy = proxy; + rsync_proxy = proxy; + no_proxy = "127.0.0.1,localhost,.localdomain"; + }; + }; + }; + + environment.persistence."/nix/persist/fhs".directories = [ "/var/lib/private/gitea-runner" ]; } From 80ca15997e2248f7ad7ed495c515be3f6e835f42 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 11 Jan 2024 14:34:42 +0800 Subject: [PATCH 072/447] spec(library): disable act_runner host --- spec/library/forgejo.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/spec/library/forgejo.nix b/spec/library/forgejo.nix index 8c086e95..16a89ffa 100644 --- a/spec/library/forgejo.nix +++ b/spec/library/forgejo.nix @@ -42,8 +42,6 @@ in { "debian-latest:docker://node:18-bullseye" # fake the ubuntu name, because node provides no ubuntu builds "ubuntu-latest:docker://node:18-bullseye" - # provide native execution on the host - "native:host" ]; settings = { runner.envs = let From f2f857d0d32187bb3f666b6e8d7feedfd8bf8588 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 11 Jan 2024 15:57:39 +0800 Subject: [PATCH 073/447] spec(incinerator): switch to ext4 --- spec/incinerator/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/incinerator/default.nix b/spec/incinerator/default.nix index 5ee06959..bc5c8243 100644 --- a/spec/incinerator/default.nix +++ b/spec/incinerator/default.nix @@ -7,8 +7,8 @@ libvirt.enable = false; io.bluetooth = false; io.audio = false; - fs.type = "btrfs"; - fs.store = "534f985d-0540-49eb-a2f6-b30ea16f41ad"; + fs.type = "ext4"; + fs.store = "7c3459d2-c046-4ef6-8bc6-a8cf97bcade9"; oci.enable = true; }; From 83ccec0342a8a3e79e0d45ea8d82dd7e80773d3c Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 12 Jan 2024 17:46:47 +0800 Subject: [PATCH 074/447] home(gyroflow): change mdk-sdk pname --- home/gyroflow/package/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home/gyroflow/package/default.nix b/home/gyroflow/package/default.nix index b2885866..c20d7633 100644 --- a/home/gyroflow/package/default.nix +++ b/home/gyroflow/package/default.nix @@ -47,7 +47,7 @@ }; mdk-sdk = stdenvNoCC.mkDerivation rec { - name = "mdk-sdk"; + pname = "mdk-sdk"; version = "20240110111804"; src = fetchzip { name = "mdk-sdk"; From 26df0c06435454a3476bb9f4adb4009d41431793 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 12 Jan 2024 17:50:48 +0800 Subject: [PATCH 075/447] home(util): add BLHeliSuite32 --- home/util/home.nix | 2 ++ home/util/package/blheli32.nix | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 home/util/package/blheli32.nix diff --git a/home/util/home.nix b/home/util/home.nix index cd116457..20b75065 100644 --- a/home/util/home.nix +++ b/home/util/home.nix @@ -14,5 +14,7 @@ betaflight-configurator inav-configurator inav-blackbox-tools + + (pkgs.callPackage ./package/blheli32.nix { }) ]; } diff --git a/home/util/package/blheli32.nix b/home/util/package/blheli32.nix new file mode 100644 index 00000000..18a652f9 --- /dev/null +++ b/home/util/package/blheli32.nix @@ -0,0 +1,28 @@ +{ stdenvNoCC +, lib +, fetchzip +, buildFHSUserEnv }: let + name = "BLHeliSuite32"; + pname = "blhelisuite32"; + version = "32.10"; + + dist = fetchzip { + name = "${pname}-dist"; + url = "https://github.com/bitdump/BLHeli/releases/download/Rev${version}/${name}xLinux64_1044.zip"; + hash = "sha256-7BuB/Mn5W8oOKePindxiOwPqCo2M67JEBHzD/CiQWAc="; + + postFetch = '' + # BLHeliSuite32 tries to write next to its binary + ln -s /tmp/${pname}_settings $out/Settings + ''; + }; +in buildFHSUserEnv { + inherit pname; + targetPkgs = pkgs: (with pkgs; [ + glib libGL curl + libgcc gtk3 + zlib systemdLibs + ]); + + runScript = "sh -c 'mkdir -p /tmp/blhelisuite32_settings && exec ${dist}/${name}xl'"; +} From b3b097692e095959e80f92b5dc8cbf8254c33919 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 12 Jan 2024 18:05:03 +0800 Subject: [PATCH 076/447] home(util): link BLHeliSuite32 music directory --- home/util/package/blheli32.nix | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/home/util/package/blheli32.nix b/home/util/package/blheli32.nix index 18a652f9..f75b71b0 100644 --- a/home/util/package/blheli32.nix +++ b/home/util/package/blheli32.nix @@ -4,16 +4,18 @@ , buildFHSUserEnv }: let name = "BLHeliSuite32"; pname = "blhelisuite32"; + workdir = "/tmp/${pname}"; version = "32.10"; dist = fetchzip { name = "${pname}-dist"; url = "https://github.com/bitdump/BLHeli/releases/download/Rev${version}/${name}xLinux64_1044.zip"; - hash = "sha256-7BuB/Mn5W8oOKePindxiOwPqCo2M67JEBHzD/CiQWAc="; + hash = "sha256-lempCne+Sf/38WHfJHRdL6MspSpi+UhpZNFcsPgI0jw="; postFetch = '' # BLHeliSuite32 tries to write next to its binary - ln -s /tmp/${pname}_settings $out/Settings + ln -s ${workdir}/settings $out/Settings + ln -s ${workdir}/music $out/Music ''; }; in buildFHSUserEnv { @@ -24,5 +26,8 @@ in buildFHSUserEnv { zlib systemdLibs ]); - runScript = "sh -c 'mkdir -p /tmp/blhelisuite32_settings && exec ${dist}/${name}xl'"; + runScript = "sh -c '" + + "mkdir -p ${workdir}/settings && " + + "mkdir -p ${workdir}/music && " + + "exec ${dist}/${name}xl'"; } From 9cf2eca26b300050b6c875b6aabe63f52ff9802b Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 12 Jan 2024 19:24:39 +0800 Subject: [PATCH 077/447] home(util): remove stdenvNoCC from BLHeliSuite32 --- home/util/package/blheli32.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/home/util/package/blheli32.nix b/home/util/package/blheli32.nix index f75b71b0..e93274ab 100644 --- a/home/util/package/blheli32.nix +++ b/home/util/package/blheli32.nix @@ -1,5 +1,4 @@ -{ stdenvNoCC -, lib +{ lib , fetchzip , buildFHSUserEnv }: let name = "BLHeliSuite32"; From 2e40bb5f886906d2d08ff401d9e49640e9a85d6e Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 12 Jan 2024 19:24:57 +0800 Subject: [PATCH 078/447] home(util): add ExpressLRS configurator --- home/util/home.nix | 1 + home/util/package/expresslrs.nix | 51 ++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 home/util/package/expresslrs.nix diff --git a/home/util/home.nix b/home/util/home.nix index 20b75065..384141f0 100644 --- a/home/util/home.nix +++ b/home/util/home.nix @@ -16,5 +16,6 @@ inav-blackbox-tools (pkgs.callPackage ./package/blheli32.nix { }) + (pkgs.callPackage ./package/expresslrs.nix { }) ]; } diff --git a/home/util/package/expresslrs.nix b/home/util/package/expresslrs.nix new file mode 100644 index 00000000..12cebf46 --- /dev/null +++ b/home/util/package/expresslrs.nix @@ -0,0 +1,51 @@ +{ lib +, fetchzip +, makeDesktopItem +, imagemagick +, buildFHSUserEnv }: let + name = "ExpressLRS-Configurator"; + pname = "expresslrs-configurator"; + version = "1.6.1"; + + dist = fetchzip { + name = "${pname}-dist"; + url = "https://github.com/ExpressLRS/ExpressLRS-Configurator/releases/download/v${version}/${pname}-${version}.zip"; + stripRoot = false; + hash = "sha256-m/e8dsOadjk63cwfnnCBbjXzI/ooWZUGRM5n267JmhQ="; + }; + + desktopItem = makeDesktopItem { + name = pname; + exec = pname; + icon = pname; + comment = "Cross platform configuration & build tool for the ExpressLRS radio link"; + desktopName = "ExpressLRS Configurator"; + genericName = "radio link configuration & build tool"; + }; +in buildFHSUserEnv { + inherit pname; + # copied from chromium deps + targetPkgs = pkgs: (with pkgs; [ + glib fontconfig freetype pango cairo xorg.libX11 xorg.libXi atk nss nspr + xorg.libXcursor xorg.libXext xorg.libXfixes xorg.libXrender + xorg.libXScrnSaver xorg.libXcomposite xorg.libxcb + alsa-lib xorg.libXdamage xorg.libXtst xorg.libXrandr xorg.libxshmfence expat cups + dbus gdk-pixbuf gcc-unwrapped.lib + systemd + libexif pciutils + liberation_ttf curl util-linux wget + flac harfbuzz icu libpng libopus snappy speechd + bzip2 libcap at-spi2-atk at-spi2-core + libkrb5 libdrm libglvnd mesa coreutils + libxkbcommon pipewire wayland + libva gtk3 gtk4 + ]); + extraInstallCommands = '' + mkdir -p $out/share + ${imagemagick}/bin/convert ${dist}/resources/assets/icon.png -resize 128x128 icon-128.png + install -m 444 -D icon-128.png $out/share/icons/hicolor/128x128/apps/${pname}.png + cp -r ${desktopItem}/share/applications $out/share/ + ''; + + runScript = "${dist}/expresslrs-configurator"; +} From 39eb7d9e9b77c73fbead868e2d4e47d8fc7ac31a Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 12 Jan 2024 19:33:39 +0800 Subject: [PATCH 079/447] spec(koumakyou): enable oci runtime --- spec/koumakyou/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/koumakyou/default.nix b/spec/koumakyou/default.nix index 39075108..5929d584 100644 --- a/spec/koumakyou/default.nix +++ b/spec/koumakyou/default.nix @@ -17,7 +17,7 @@ gui.enable = true; gui.type = "prime"; asusd.enable = true; - podman.enable = true; + oci.enable = true; }; home = { From f9bd098425457994eef41d02c1f2c3072010de37 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 13 Jan 2024 16:14:43 +0800 Subject: [PATCH 080/447] flake: bump inputs --- flake.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/flake.lock b/flake.lock index 012fcdf2..bbefac69 100644 --- a/flake.lock +++ b/flake.lock @@ -56,11 +56,11 @@ ] }, "locked": { - "lastModified": 1704152458, - "narHash": "sha256-DS+dGw7SKygIWf9w4eNBUZsK+4Ug27NwEWmn2tnbycg=", + "lastModified": 1704982712, + "narHash": "sha256-2Ptt+9h8dczgle2Oo6z5ni5rt/uLMG47UFTR1ry/wgg=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "88a2cd8166694ba0b6cb374700799cec53aef527", + "rev": "07f6395285469419cf9d078f59b5b49993198c00", "type": "github" }, "original": { @@ -155,11 +155,11 @@ ] }, "locked": { - "lastModified": 1704809957, - "narHash": "sha256-Z8sBeoeeY2O+BNqh5C+4Z1h1F1wQ2mij7yPZ2GY397M=", + "lastModified": 1705104164, + "narHash": "sha256-pllCu3Hcm1wP/B0SUxgUXvHeEd4w8s2aVrEQRdIL1yo=", "owner": "nix-community", "repo": "home-manager", - "rev": "e13aa9e287b3365473e5897e3667ea80a899cdfb", + "rev": "0912d26b30332ae6a90e1b321ff88e80492127dd", "type": "github" }, "original": { From a0b88b6ae8c4afe4d3e4f421421c6be28f446b9e Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 13 Jan 2024 19:38:39 +0800 Subject: [PATCH 081/447] global(io): improve bluetooth/audio defaults --- global/io/default.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/global/io/default.nix b/global/io/default.nix index d7fb8dbe..13345ac2 100644 --- a/global/io/default.nix +++ b/global/io/default.nix @@ -3,11 +3,12 @@ , config , ... }: with lib; let cfg = config.global.io; + gui = with config.global.gui; enable && session; in { options.global.io = { betaflight = mkEnableOption "betaflight udev rules" // { default = true; }; - bluetooth = mkEnableOption "bluetooth daemons and state persistence" // { default = true; }; - audio = mkEnableOption "pulseaudio server configuration" // { default = true; }; + bluetooth = mkEnableOption "bluetooth daemons and state persistence" // { default = gui; }; + audio = mkEnableOption "pulseaudio server configuration" // { default = gui; }; coredump = mkEnableOption "save coredumps handled by systemd"; }; From 6c99f3158127c29b2aa735f0f6412bf1925c7ce7 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 13 Jan 2024 19:38:54 +0800 Subject: [PATCH 082/447] spec(library): remove redundant configuration --- spec/library/default.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/spec/library/default.nix b/spec/library/default.nix index 751ac1b0..63c4fb6a 100644 --- a/spec/library/default.nix +++ b/spec/library/default.nix @@ -6,8 +6,6 @@ id = "bc8036643fc24f04ab150ff6a38dcce7"; auth.openssh.enable = true; libvirt.enable = false; - io.bluetooth = false; - io.audio = false; fs.esp.uuid = "00A5-929C"; fs.type = "xfs"; fs.store = "25b9f83f-7f6d-432f-a169-2985e5930401"; From 2d8ab457fda6fc45e44e5715006ae16cdfa5a049 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 14 Jan 2024 12:41:39 +0800 Subject: [PATCH 083/447] global(lowmem): add swap and trusted users --- global/lowmem/default.nix | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 global/lowmem/default.nix diff --git a/global/lowmem/default.nix b/global/lowmem/default.nix new file mode 100644 index 00000000..8a3ca395 --- /dev/null +++ b/global/lowmem/default.nix @@ -0,0 +1,25 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.global.lowmem; +in { + options.global.lowmem = { + enable = mkEnableOption "low memory optimisations"; + swapsize = mkOption { + type = with types; int; + default = 8 * 1024; + description = "automatic swap file size"; + }; + }; + + config = mkIf cfg.enable { + # enables remote nixos-rebuild + nix.settings.trusted-users = [ "koishi" ]; + + swapDevices = [ { + device = "/nix/persist/secret/swap"; + size = cfg.swapsize; + } ]; + }; +} From 05a1d4957c8bcdebd20eae57cee3c6cc668df61e Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 14 Jan 2024 12:41:57 +0800 Subject: [PATCH 084/447] spec(web): initial configuration --- spec/web/default.nix | 18 ++++++ spec/web/google-compute-config.nix | 90 ++++++++++++++++++++++++++++++ 2 files changed, 108 insertions(+) create mode 100644 spec/web/default.nix create mode 100644 spec/web/google-compute-config.nix diff --git a/spec/web/default.nix b/spec/web/default.nix new file mode 100644 index 00000000..8eb83f80 --- /dev/null +++ b/spec/web/default.nix @@ -0,0 +1,18 @@ +{ lib +, ... }: { + global = { + id = "63795fdf54e048dcbefcbc525ec3779d"; + auth.openssh.enable = true; + libvirt.enable = false; + fs.esp.uuid = "3838-0946"; + fs.type = "xfs"; + fs.store = "8476f738-b83b-4736-abd7-08a1943cf60a"; + lowmem.enable = true; + }; + + imports = lib.pipe ./. [ + builtins.readDir + (lib.filterAttrs (n: ty: ty == "regular" && n != "default.nix")) + (lib.mapAttrsToList (n: _: ./${n})) + ]; +} diff --git a/spec/web/google-compute-config.nix b/spec/web/google-compute-config.nix new file mode 100644 index 00000000..74f26982 --- /dev/null +++ b/spec/web/google-compute-config.nix @@ -0,0 +1,90 @@ +{ pkgs +, lib +, config +, modulesPath +, ... }: + +let + inherit (lib) + boolToString + mkDefault + mkIf + optional + readFile + ; +in + +{ + imports = [ + (modulesPath + "/profiles/headless.nix") + (modulesPath + "/profiles/qemu-guest.nix") + ]; + + + boot.kernelParams = [ "console=ttyS0,115200n8" "panic=1" "boot.panic_on_fail" ]; + boot.initrd.kernelModules = [ "virtio_scsi" ]; + boot.kernelModules = [ "virtio_pci" "virtio_net" ]; + + # enable OS Login. This also requires setting enable-oslogin=TRUE metadata on + # instance or project level + security.googleOsLogin.enable = true; + + # Use GCE udev rules for dynamic disk volumes + services.udev.packages = [ pkgs.google-guest-configs ]; + services.udev.path = [ pkgs.google-guest-configs ]; + + # Configure default metadata hostnames + networking.extraHosts = '' + 169.254.169.254 metadata.google.internal metadata + ''; + + networking.timeServers = [ "metadata.google.internal" ]; + + networking.usePredictableInterfaceNames = false; + + # GC has 1460 MTU + networking.interfaces.eth0.mtu = 1460; + + systemd.packages = [ pkgs.google-guest-agent ]; + systemd.services.google-guest-agent = { + wantedBy = [ "multi-user.target" ]; + restartTriggers = [ config.environment.etc."default/instance_configs.cfg".source ]; + path = optional config.users.mutableUsers pkgs.shadow; + }; + systemd.services.google-startup-scripts.wantedBy = [ "multi-user.target" ]; + systemd.services.google-shutdown-scripts.wantedBy = [ "multi-user.target" ]; + + security.sudo.extraRules = mkIf config.users.mutableUsers [ + { groups = [ "google-sudoers" ]; commands = [ { command = "ALL"; options = [ "NOPASSWD" ]; } ]; } + ]; + + security.sudo-rs.extraRules = mkIf config.users.mutableUsers [ + { groups = [ "google-sudoers" ]; commands = [ { command = "ALL"; options = [ "NOPASSWD" ]; } ]; } + ]; + + users.groups.google-sudoers = mkIf config.users.mutableUsers { }; + + boot.extraModprobeConfig = readFile "${pkgs.google-guest-configs}/etc/modprobe.d/gce-blacklist.conf"; + + environment.etc."sysctl.d/60-gce-network-security.conf".source = "${pkgs.google-guest-configs}/etc/sysctl.d/60-gce-network-security.conf"; + + environment.etc."default/instance_configs.cfg".text = '' + [Accounts] + useradd_cmd = useradd -m -s /run/current-system/sw/bin/bash -p * {user} + + [Daemons] + accounts_daemon = ${boolToString config.users.mutableUsers} + + [InstanceSetup] + # Make sure GCE image does not replace host key that NixOps sets. + set_host_keys = false + + [MetadataScripts] + default_shell = ${pkgs.stdenv.shell} + + [NetworkInterfaces] + dhclient_script = ${pkgs.google-guest-configs}/bin/google-dhclient-script + # We set up network interfaces declaratively. + setup = false + ''; +} From 730850c4cc0bab059c3bf01acb3084080ec01c03 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 14 Jan 2024 12:52:45 +0800 Subject: [PATCH 085/447] spec(web): remove headless profile --- spec/web/google-compute-config.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/web/google-compute-config.nix b/spec/web/google-compute-config.nix index 74f26982..8b878f31 100644 --- a/spec/web/google-compute-config.nix +++ b/spec/web/google-compute-config.nix @@ -16,7 +16,7 @@ in { imports = [ - (modulesPath + "/profiles/headless.nix") + #(modulesPath + "/profiles/headless.nix") (modulesPath + "/profiles/qemu-guest.nix") ]; From 9c41bcdd5526078494fac34cbd36932d4ce5007f Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 15 Jan 2024 11:19:38 +0800 Subject: [PATCH 086/447] home(util): add gimp --- home/util/home.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/home/util/home.nix b/home/util/home.nix index 384141f0..fe8f690a 100644 --- a/home/util/home.nix +++ b/home/util/home.nix @@ -9,12 +9,12 @@ ] ++ optionals config.passthrough.gui [ gtk-engine-murrine gnome-themes-extra - xfce.thunar + xfce.thunar gimp + mission-planner betaflight-configurator inav-configurator inav-blackbox-tools - (pkgs.callPackage ./package/blheli32.nix { }) (pkgs.callPackage ./package/expresslrs.nix { }) ]; From 3ae38cc470b115f0e80bfda85314f2f657e175b3 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 15 Jan 2024 15:39:28 +0800 Subject: [PATCH 087/447] spec(web): add jekyll website --- spec/web/site/Gemfile | 23 +++ spec/web/site/Gemfile.lock | 114 +++++++++++++++ spec/web/site/_config.yml | 136 ++++++++++++++++++ spec/web/site/_data/contact.yml | 25 ++++ spec/web/site/_data/locales/en.yml | 1 + spec/web/site/_data/share.yml | 23 +++ spec/web/site/_plugins/posts-lastmod-hook.rb | 14 ++ spec/web/site/_tabs/about.md | 14 ++ spec/web/site/_tabs/archives.md | 5 + spec/web/site/_tabs/categories.md | 5 + spec/web/site/_tabs/tags.md | 5 + .../img/favicons/android-chrome-192x192.png | Bin 0 -> 27772 bytes .../img/favicons/android-chrome-512x512.png | Bin 0 -> 83645 bytes .../assets/img/favicons/apple-touch-icon.png | Bin 0 -> 8580 bytes .../assets/img/favicons/favicon-16x16.png | Bin 0 -> 14189 bytes .../assets/img/favicons/favicon-32x32.png | Bin 0 -> 14732 bytes spec/web/site/assets/img/favicons/favicon.ico | Bin 0 -> 15086 bytes .../assets/img/favicons/mstile-150x150.png | Bin 0 -> 7909 bytes .../assets/img/favicons/safari-pinned-tab.svg | 69 +++++++++ .../site/assets/img/koishi-margin-noalpha.png | Bin 0 -> 21872 bytes spec/web/site/assets/img/koishi0.png | Bin 0 -> 241517 bytes spec/web/site/assets/lib/.placeholder | 0 spec/web/site/default.nix | 80 +++++++++++ spec/web/site/index.html | 3 + 24 files changed, 517 insertions(+) create mode 100644 spec/web/site/Gemfile create mode 100644 spec/web/site/Gemfile.lock create mode 100644 spec/web/site/_config.yml create mode 100644 spec/web/site/_data/contact.yml create mode 100644 spec/web/site/_data/locales/en.yml create mode 100644 spec/web/site/_data/share.yml create mode 100644 spec/web/site/_plugins/posts-lastmod-hook.rb create mode 100644 spec/web/site/_tabs/about.md create mode 100644 spec/web/site/_tabs/archives.md create mode 100644 spec/web/site/_tabs/categories.md create mode 100644 spec/web/site/_tabs/tags.md create mode 100644 spec/web/site/assets/img/favicons/android-chrome-192x192.png create mode 100644 spec/web/site/assets/img/favicons/android-chrome-512x512.png create mode 100644 spec/web/site/assets/img/favicons/apple-touch-icon.png create mode 100644 spec/web/site/assets/img/favicons/favicon-16x16.png create mode 100644 spec/web/site/assets/img/favicons/favicon-32x32.png create mode 100644 spec/web/site/assets/img/favicons/favicon.ico create mode 100644 spec/web/site/assets/img/favicons/mstile-150x150.png create mode 100644 spec/web/site/assets/img/favicons/safari-pinned-tab.svg create mode 100644 spec/web/site/assets/img/koishi-margin-noalpha.png create mode 100644 spec/web/site/assets/img/koishi0.png create mode 100644 spec/web/site/assets/lib/.placeholder create mode 100644 spec/web/site/default.nix create mode 100644 spec/web/site/index.html diff --git a/spec/web/site/Gemfile b/spec/web/site/Gemfile new file mode 100644 index 00000000..d464b577 --- /dev/null +++ b/spec/web/site/Gemfile @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +source "https://rubygems.org" + +gem "jekyll-theme-chirpy", "~> 6.4", ">= 6.4.2" + +group :test do + gem "html-proofer", "~> 4.4" +end + +# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem +# and associated library. +platforms :mingw, :x64_mingw, :mswin, :jruby do + gem "tzinfo", ">= 1", "< 3" + gem "tzinfo-data" +end + +# Performance-booster for watching directories on Windows +gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin] + +# Lock `http_parser.rb` gem to `v0.6.x` on JRuby builds since newer versions of the gem +# do not have a Java counterpart. +gem "http_parser.rb", "~> 0.6.0", :platforms => [:jruby] diff --git a/spec/web/site/Gemfile.lock b/spec/web/site/Gemfile.lock new file mode 100644 index 00000000..e7e99549 --- /dev/null +++ b/spec/web/site/Gemfile.lock @@ -0,0 +1,114 @@ +GEM + remote: https://rubygems.org/ + specs: + addressable (2.8.6) + public_suffix (>= 2.0.2, < 6.0) + colorator (1.1.0) + concurrent-ruby (1.2.2) + em-websocket (0.5.3) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0) + ethon (0.16.0) + ffi (>= 1.15.0) + eventmachine (1.2.7) + ffi (1.16.3) + forwardable-extended (2.6.0) + google-protobuf (3.25.2-x86_64-linux) + html-proofer (4.4.3) + addressable (~> 2.3) + mercenary (~> 0.3) + nokogiri (~> 1.13) + parallel (~> 1.10) + rainbow (~> 3.0) + typhoeus (~> 1.3) + yell (~> 2.0) + zeitwerk (~> 2.5) + http_parser.rb (0.6.0) + i18n (1.14.1) + concurrent-ruby (~> 1.0) + jekyll (4.3.3) + addressable (~> 2.4) + colorator (~> 1.0) + em-websocket (~> 0.5) + i18n (~> 1.0) + jekyll-sass-converter (>= 2.0, < 4.0) + jekyll-watch (~> 2.0) + kramdown (~> 2.3, >= 2.3.1) + kramdown-parser-gfm (~> 1.0) + liquid (~> 4.0) + mercenary (>= 0.3.6, < 0.5) + pathutil (~> 0.9) + rouge (>= 3.0, < 5.0) + safe_yaml (~> 1.0) + terminal-table (>= 1.8, < 4.0) + webrick (~> 1.7) + jekyll-archives (2.2.1) + jekyll (>= 3.6, < 5.0) + jekyll-include-cache (0.2.1) + jekyll (>= 3.7, < 5.0) + jekyll-paginate (1.1.0) + jekyll-redirect-from (0.16.0) + jekyll (>= 3.3, < 5.0) + jekyll-sass-converter (3.0.0) + sass-embedded (~> 1.54) + jekyll-seo-tag (2.8.0) + jekyll (>= 3.8, < 5.0) + jekyll-sitemap (1.4.0) + jekyll (>= 3.7, < 5.0) + jekyll-theme-chirpy (6.4.2) + jekyll (~> 4.3) + jekyll-archives (~> 2.2) + jekyll-include-cache (~> 0.2) + jekyll-paginate (~> 1.1) + jekyll-redirect-from (~> 0.16) + jekyll-seo-tag (~> 2.8) + jekyll-sitemap (~> 1.4) + jekyll-watch (2.2.1) + listen (~> 3.0) + kramdown (2.4.0) + rexml + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) + liquid (4.0.4) + listen (3.8.0) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) + mercenary (0.4.0) + nokogiri (1.16.0-x86_64-linux) + racc (~> 1.4) + parallel (1.24.0) + pathutil (0.16.2) + forwardable-extended (~> 2.6) + public_suffix (5.0.4) + racc (1.7.3) + rainbow (3.1.1) + rb-fsevent (0.11.2) + rb-inotify (0.10.1) + ffi (~> 1.0) + rexml (3.2.6) + rouge (4.2.0) + safe_yaml (1.0.5) + sass-embedded (1.69.7-x86_64-linux-gnu) + google-protobuf (~> 3.25) + terminal-table (3.0.2) + unicode-display_width (>= 1.1.1, < 3) + typhoeus (1.4.1) + ethon (>= 0.9.0) + unicode-display_width (2.5.0) + webrick (1.8.1) + yell (2.2.2) + zeitwerk (2.6.12) + +PLATFORMS + x86_64-linux + +DEPENDENCIES + html-proofer (~> 4.4) + http_parser.rb (~> 0.6.0) + jekyll-theme-chirpy (~> 6.4, >= 6.4.2) + tzinfo (>= 1, < 3) + tzinfo-data + wdm (~> 0.1.1) + +BUNDLED WITH + 2.4.22 diff --git a/spec/web/site/_config.yml b/spec/web/site/_config.yml new file mode 100644 index 00000000..555fc780 --- /dev/null +++ b/spec/web/site/_config.yml @@ -0,0 +1,136 @@ +theme: "jekyll-theme-chirpy" +lang: "en" +timezone: "Asia/Hong_Kong" + +title: "514fpv" +tagline: "Unconscious requiem in the sky" +description: >- + Unconscious requiem in the sky + +url: "https://514fpv.one" +avatar: "/assets/img/koishi-margin-noalpha.png" +social_preview_image: "/assets/img/koishi0.png" +toc: true +theme_mode: + +github: + username: "514fpv" + +twitter: + username: "514fpv" + +social: + name: "514fpv" + email: "koishi@514fpv.one" + links: + - "https://src.514fpv.io:2096/koishi" + - "https://youtube.com/@514fpv" + +assets: + self_host: + enabled: true + env: production + +pwa: + enabled: true + +paginate: 8 +baseurl: "" + +comments: + active: # The global switch for posts comments, e.g., 'disqus'. Keep it empty means disable + # The active options are as follows: + disqus: + shortname: # fill with the Disqus shortname. › https://help.disqus.com/en/articles/1717111-what-s-a-shortname + # utterances settings › https://utteranc.es/ + utterances: + repo: # / + issue_term: # < url | pathname | title | ...> + # Giscus options › https://giscus.app + giscus: + repo: # / + repo_id: + category: + category_id: + mapping: # optional, default to 'pathname' + input_position: # optional, default to 'bottom' + lang: # optional, default to the value of `site.lang` + reactions_enabled: # optional, default to the value of `1` + +# ------------ The following options are not recommended to be modified ------------------ + +kramdown: + syntax_highlighter: rouge + syntax_highlighter_opts: # Rouge Options › https://github.com/jneen/rouge#full-options + css_class: highlight + # default_lang: console + span: + line_numbers: false + block: + line_numbers: true + start_line: 1 + +collections: + tabs: + output: true + sort_by: order + +defaults: + - scope: + path: "" # An empty string here means all files in the project + type: posts + values: + layout: post + comments: true # Enable comments in posts. + toc: true # Display TOC column in posts. + permalink: /posts/:title/ + - scope: + path: _drafts + values: + comments: false + - scope: + path: "" + type: tabs # see `site.collections` + values: + layout: page + permalink: /:title/ + - scope: + path: assets/img/favicons + values: + swcache: true + - scope: + path: assets/js/dist + values: + swcache: true + +sass: + style: compressed + +compress_html: + clippings: all + comments: all + endings: all + profile: false + blanklines: false + ignore: + envs: [development] + +exclude: + - "*.gem" + - "*.gemspec" + - docs + - tools + - README.md + - LICENSE + - rollup.config.js + - package*.json + - result # nix result symlink + +jekyll-archives: + enabled: [categories, tags] + layouts: + category: category + tag: tag + permalinks: + tag: /tags/:name/ + category: /categories/:name/ diff --git a/spec/web/site/_data/contact.yml b/spec/web/site/_data/contact.yml new file mode 100644 index 00000000..b3a8c96c --- /dev/null +++ b/spec/web/site/_data/contact.yml @@ -0,0 +1,25 @@ +# The contact options. + +- type: git + icon: "fab fa-git-alt" + url: "https://src.514fpv.io:2096/koishi" + +- type: mastodon + icon: "fab fa-mastodon" + url: "" + +#- type: github +# icon: "fab fa-github" +# +#- type: twitter +# icon: "fa-brands fa-x-twitter" + +- type: email + icon: "fas fa-envelope" + noblank: true + +- type: rss + icon: "fas fa-rss" + noblank: true + + diff --git a/spec/web/site/_data/locales/en.yml b/spec/web/site/_data/locales/en.yml new file mode 100644 index 00000000..8322299e --- /dev/null +++ b/spec/web/site/_data/locales/en.yml @@ -0,0 +1 @@ +meta: 'Source code' diff --git a/spec/web/site/_data/share.yml b/spec/web/site/_data/share.yml new file mode 100644 index 00000000..14375ee8 --- /dev/null +++ b/spec/web/site/_data/share.yml @@ -0,0 +1,23 @@ +# Sharing options at the bottom of the post. +# Icons from + +platforms: + - type: Twitter + icon: "fa-brands fa-square-x-twitter" + link: "https://twitter.com/intent/tweet?text=TITLE&url=URL" + + - type: Facebook + icon: "fab fa-facebook-square" + link: "https://www.facebook.com/sharer/sharer.php?title=TITLE&u=URL" + + - type: Telegram + icon: "fab fa-telegram" + link: "https://t.me/share/url?url=URL&text=TITLE" + + - type: Linkedin + icon: "fab fa-linkedin" + link: "https://www.linkedin.com/sharing/share-offsite/?url=URL" + + - type: Weibo + icon: "fab fa-weibo" + link: "http://service.weibo.com/share/share.php?title=TITLE&url=URL" diff --git a/spec/web/site/_plugins/posts-lastmod-hook.rb b/spec/web/site/_plugins/posts-lastmod-hook.rb new file mode 100644 index 00000000..1fd6ecf9 --- /dev/null +++ b/spec/web/site/_plugins/posts-lastmod-hook.rb @@ -0,0 +1,14 @@ +#!/usr/bin/env ruby +# +# Check for changed posts + +Jekyll::Hooks.register :posts, :post_init do |post| + + commit_num = `git rev-list --count HEAD "#{ post.path }"` + + if commit_num.to_i > 1 + lastmod_date = `git log -1 --pretty="%ad" --date=iso "#{ post.path }"` + post.data['last_modified_at'] = lastmod_date + end + +end diff --git a/spec/web/site/_tabs/about.md b/spec/web/site/_tabs/about.md new file mode 100644 index 00000000..73e1cd5c --- /dev/null +++ b/spec/web/site/_tabs/about.md @@ -0,0 +1,14 @@ +--- +icon: fas fa-info-circle +order: 4 +--- +I fly multirotor aircraft, with a focus on cinematic and long range FPV cruising. + +I also write software, and I self host [almost everything](https://src.514fpv.io:2096/koishi/nixos/src/branch/master/spec/library) I use online, including the [website](https://src.514fpv.io:2096/koishi/nixos/src/branch/master/spec/web/site) you're currently visiting. + +If you find what I do interesting, feel free to drop by and say hi, I would really appreciate that. + +> I can read and write Simplified Chinese. If you prefer conversing with me in Chinese, feel free to do so without the overhead of a translation software. +> +> 我会读写简体中文。如果您喜欢用中文与我交谈,请随意,无需翻译软件。 +{: .prompt-tip } diff --git a/spec/web/site/_tabs/archives.md b/spec/web/site/_tabs/archives.md new file mode 100644 index 00000000..c3abc594 --- /dev/null +++ b/spec/web/site/_tabs/archives.md @@ -0,0 +1,5 @@ +--- +layout: archives +icon: fas fa-archive +order: 3 +--- diff --git a/spec/web/site/_tabs/categories.md b/spec/web/site/_tabs/categories.md new file mode 100644 index 00000000..2d241be9 --- /dev/null +++ b/spec/web/site/_tabs/categories.md @@ -0,0 +1,5 @@ +--- +layout: categories +icon: fas fa-stream +order: 1 +--- diff --git a/spec/web/site/_tabs/tags.md b/spec/web/site/_tabs/tags.md new file mode 100644 index 00000000..ded3adc1 --- /dev/null +++ b/spec/web/site/_tabs/tags.md @@ -0,0 +1,5 @@ +--- +layout: tags +icon: fas fa-tags +order: 2 +--- diff --git a/spec/web/site/assets/img/favicons/android-chrome-192x192.png b/spec/web/site/assets/img/favicons/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..23e9954e11b33583388600ec0788d25581b0c559 GIT binary patch literal 27772 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 D7y9!# literal 0 HcmV?d00001 diff --git a/spec/web/site/assets/img/favicons/apple-touch-icon.png b/spec/web/site/assets/img/favicons/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..13d2b96d41d50fd20777201259a751b34bb35a30 GIT binary patch literal 8580 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 literal 0 HcmV?d00001 diff --git a/spec/web/site/assets/img/favicons/favicon-16x16.png b/spec/web/site/assets/img/favicons/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..139447161db58c12786305af9bdb6235ed0ea142 GIT binary patch literal 14189 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 literal 0 HcmV?d00001 diff --git a/spec/web/site/assets/img/favicons/favicon-32x32.png b/spec/web/site/assets/img/favicons/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..56251a477af01f7080b80ed2c130d8dcf81026dd GIT binary patch literal 14732 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 L{D&PPkFFj7dcFqI literal 0 HcmV?d00001 diff --git a/spec/web/site/assets/img/favicons/mstile-150x150.png b/spec/web/site/assets/img/favicons/mstile-150x150.png new file mode 100644 index 0000000000000000000000000000000000000000..4a21e29cabe87a58f21c95760c066531ec3a40d5 GIT binary patch literal 7909 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 literal 0 HcmV?d00001 diff --git a/spec/web/site/assets/img/favicons/safari-pinned-tab.svg b/spec/web/site/assets/img/favicons/safari-pinned-tab.svg new file mode 100644 index 00000000..0390ba7b --- /dev/null +++ b/spec/web/site/assets/img/favicons/safari-pinned-tab.svg @@ -0,0 +1,69 @@ + + + + +Created by potrace 1.14, written by Peter Selinger 2001-2017 + + + + + diff --git a/spec/web/site/assets/img/koishi-margin-noalpha.png b/spec/web/site/assets/img/koishi-margin-noalpha.png new file mode 100644 index 0000000000000000000000000000000000000000..aa7846ecaa30ccbf36d75237ece2fbd895c979fa GIT binary patch literal 21872 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 literal 0 HcmV?d00001 diff --git a/spec/web/site/assets/img/koishi0.png b/spec/web/site/assets/img/koishi0.png new file mode 100644 index 0000000000000000000000000000000000000000..3a61f2e68c19ca88a6950306b784dde5c467d0f8 GIT binary patch literal 241517 zcmeAS@N?(olHy`uVBq!ia0y~yU||4Z4mJh`hI(1;W(Ed5y{eFilAy$Lg@U5|w9K4T zg_6pGRE5-v%rpjuid%Q*L{E#^KGF5RAs0WR!vjkho9nM6zkH~cPnkGLwh21|L0JA@+@fG+Al#i|Ci3IlBv1;=lTAR|9I{8*6;s2 zeP7()!>`}{=2y~}jDP#NIm|Bp@b>HbV_&?^mZ+ItU%qhLzB+^dKbrsT+|&QIo%`r{ z@yo(5fB!9A_^(v4d%k?jdhVX{8){yz{a45Fx#sSU+P#gWFJeEs_9dh`E3{s*Ui zD|==q_IP8$y!ypQ&oj^XH*539eU<+|9ZP6^-@Cp!T>Jf+`~~yZ$NT@TQ_d=|t*O3S zd)Kl~t@6(g?mKtyo%wgQrCRsn^$qu1&)9wc`t3IVy$Oe|zfN6ZAM@h)|69+U?2mc= zSZ(q1-(CL1p!3g5k8{_@-23$Rb^JcLPyFj|Z*REr=g+%yy0!a1%g22;?vro-{Pz9c z-8-w#rxc4vL9%D8=F_F-Bt=H-wp1&XWB2G1tV_)rj?RnZ-x)nTY=lpvbtK+fb{v(b3 zod3Q(KmOmYaDK(~WjhTIJbeCK$hdv|jUbtu(HW0>XReRm5c>W55zjl;pA8O1Fvd4M z4e0nOko+gbaZ%f=?R`0S zLm1}@)w-;#BNt9g3qH5=$*kyil_J_Jp9Fd7Ha!kpyKGkW%B|aOz0SB6bb9TUTeGtF z_R8&MyuNdKT=na{{Re&7!{z>bd%&A~#v*sw%=DS1+ipIOXgTkty?)cHth}$LWp}nY zu8S?ZoBQ3?&!Xj$r~3S&SDDM_7jkaRHoseQdhPbRb;rMla=+WWrvBIG&#T4ut&OVD zUTS{r{pw@uul;%}l4y*%qD--oC^o78KM-YgJJ zX1&a5c>hD~+q&qT_G@N)znp$ew=UXp`O@F{Yvx?O^!Mzkzm<3YC0*V2Ag{7GzjaF6 ztdRUA^7$6IN6cI{+yA}#clZ7e`uZj5tfi4JU;lKQa&8SvZTX)o=IYbR^1Tm={qMgX zEThuCFZ-j(@$$9BYj5Auk3Cnr?)&TM#rx~`#P6K*`*X(s&8K(npS`F4d(pf3>yMs~ zKlk^{rGICh-Z}4n%6|Wx-{s8j-|Id9x7p&~=cjkpFFE>N|9PG5X}jsg`{$+p_n%z$ z$vXFwUh(z!mw$iV{LJq9m+SX08}m#!{5G-Z^^Uf!dspAo`nTX3!%wkb+qOJg<0WVQ zFUhjM|L4{9`o~T`4GtZs@PGC1%u2^;i|gN?IM^E7etzrg*3fTzWy@sUwZ82A`h}(1 zsO{VN_fP)RXXdZA`zGl;$6eR%MM^wINu5A*l!I&W@yZZr3( zWc#(7-tW_#ay4h2Y;9cm?6*eMvz{w4`zf68i^;yb>y<_;_glmK`K*5Nw{M%w-tau; z^z~LgjU#+f$_4^6{_R=#q1k43;oLjbb%l4!OP)Ru)0_VC_ud=U{2l`9W($SCu}O|? zy|LG$C;9D>xr??2S~;yhvi;W9HBa=GJ$v@u;mm|1MPJ${9uKIS_T%}hGK1qBO9VYu zlw5E&a^&27+23s4S>ED6=@Z{8ZAc$#bfcO_ADUuy5uhDVvy7#VOP7-#lvb>D>;yXUgmEoj)q|L11fn z(H-NP5?jj3UA9f#^5)u+uD(;sKfjvpTGH@m_X!QbqwQyBYgnqJeCD|>rlu>z- z7`1udJSx8@7c-Zqow(Fo);oJ?ni-qZ1Wx|+v$xAwS9ml{NWW)Y%&h&Z{Cw7F!%DN6 zg=*m!Pw9m5m>SA6*152b?lU%fQ9<;97w(*m#MaC^6keAD}KNO^_G)x(;$ z+b91{d=*|5Fe@oX(@d$`;al?3oi#5Of1bSL|8b_s3sZIrR!{Hln9*@aCf{JrPo*={ zO?|~b#(b9GUoUX&jI+|-M{D29+FU;svwTP4o@-MVWcg_AYux(mWAzHdWPu>F?gMSH z2UdWEvl2W@{?hcFEzf+^*h)~(_t7}dezY*A6 zX4t7Bao9q~W%pFclfNe&UD`a!;n1d#h9Z8S%{vago58Hywkdg6^X|8kCfVn<&U0Ck zAhhhC2#cz0DVlTPG} z?RQQ(6jT}(9&z}3xFTi)>(OmRGsN6jLq4gfEcjzwu>9ucmP0y0pF;}Trnvchh{)9V zRJQ&0arSw)&%M1E$b5_~(&`lZmb@nEqFt_!6E_L+%s4M?Tez(v`}~iCA|0>R$ZzKA zUb6MBmrUmecHjFAA)E(av|06X$}R9ap8U(KM{!M9L}@%%_l2sP6VG^`(JVBn))zBo zn;al>W_|*zQN{@U@EI9;I@BHU24@UutWoNWsY zi@02NE%sY6gW-8raQ0#Gsb^n_cCUTrT^Cv(4JVVmjXTO*(lphIJTmLTdw@O%+NVunq!L9qTlFboG+B-RP zJ_;F{`-*b5MJesf-`?uZe1v0-Wi_wOsgC1}KR7dNwC0?d#3*5*B$#=XX%0tG!~PE< zXMB{Jf+8>SUC&#_=ro~$Ve<53N39j7iY8ir^@3?dsn-hY070;TE&z1j7wg@_)x;$27`C~ zH|_`*xSpO^d-07!`d_&xOGN^CODhD}HNDX9U4P~ zQas3%5!o@XwD+c_=7R-kg|X8(9T~FbpSmfveM7H!eC9HM30Ug2$JRRYFXs zy!Q(Q8=SFJ_hB!MU43H17Q=Xfm}je&9BKNL-E->EnKx5)FCLu`_`D(Id++g6j2cS6 z*7d&j;9}dOA~f^FW{-tlCM!ecOg~k?y0c>G8hxKs+n-r2>Ka$QkC{&6(d@IlE5@&F z{`^_)fz>67Q^dKx%+oEuk$E^qg_UW4v)3htsA7kT=R7UOlVW1HJ2i%_{WER54 z82om^-=>|>Tds?#9&=0W;MxECuBVK~F)N*-z);5e0M_cM9A3}Nca<(_`N980ATgwK zKGR0Uy_{@feeJKk6=z*LAU#_-`rx1CCHyrZ^JkqD3!1e?dlgG3^J<>dvj;5M6*Bu( z8HFq6316GQs-?$LXt_!E_08vxZa&rBwCA*}#eU81_>DV-;hovVodbhs3*OBriH)DrW3fnxMJx{)~YaTt5w{q(gvx#e$W=6^w zd$jlTsXh*7xT$Eozv@vSf41T_$*_Yf^*XoAShv}5j{2cByS;jpwnnEmOYsM`;b?O$7V~ZA zPw=k3bz$+;3G4OTFLll53uxTHCV3)NOmu32)wHJy=O^lRtopglFVaZQ#O!^_F)5e6 zBb@2h4BX34Fi7xy-@RDm`xZiZ2H}yE9d}QF0%!a%UN%q-OLTCOwDQwQdnbYwu znuAl~(}GvbOKea6kmSfy3f;Xw(Q9*37l&F6tK{1mQXhnE4^2*(EHX7kW0v=ajBO0( zLTx$O@)xl!$nRM@BtLy#r#*@E;O!et1%1H7M~O7cxvI*L`w_ChMwu{cQP*P z{7KERQ;t*lr@cwo`{bt-^_AMPho5?yJ!6}0+S78gkafaz33Ww*!`&y;q8BhVHa!u} zGB{B!`0t^`6upZaGfUZmcwR7W;dpj!p_j*YmJr=}>@kydox9at)U>NuDz-|!*}XZ& zER!vNk?)1K%YGbKHp%dWrpwzmO%EzBM5*tWNJ~_(uj&5CR-bV2hRPlpO>d7wehU;i zx}A2M_xE0{)TAi(WRnp`|-DhMKC+axdY|7md?_-a2 znM~Hayl^(WmCJ&~bPmhglVM&uS-IP)PRp%i*gC<(<>Qsxj!RWLTMXkj^`H4&^g(|A zd-FdNv}a~_@98_TmP_acLy*MHph*?G1dX}3^ZjO@daB}PbAj%Mqo%D{YY+WvjaPli z6Mv|ONq+;E-d?qxVal0}47tw?mkF)Ukp3}|r$K4@;ehiDFZ?DjO=xx98203~jdX3P zR?1R++oc{x25g-(kG+{2u4}2{WWlgG+0rAif4|Gy!p*I9N2M9NJ|C2FV4R-ye~;|c zB?T=koKYv_8gpg1g_IxkonZNqoM|oitL1&i5{u5RwJ&2Fx}H6Fl&Iv)DEe`(k@~5L zj5i#2NSu3UrQ|q~)8p~cje!SZS6D>eeb!VF5qm`H%pA@un=UkQls`M|?|HqY=c%Nj zsjR@qt*hoOtdlJ@4q@_6om>2L@duYncbYPVlmUBt$%} z^zUgd5n0xhQF)`K$>oDWvfbADaJ8tQlGVL=1TLmjS=Z1w_ zB2MpEo#hxPdXlAHIr#SPcYcl>4c}EJm7TqK<<2hth?R#qcQhSs6-rP&qv!9PX@CE8 zjL@?`%TC2`ro8kCZ#+gUs4XAQu&l~ zLfUr|nH+x)(+{^IqFw}6DsXG)2l02FNm=;LzM9|ivyiujpikDVDbE}3m9ZcE>;0rM zKrQ+%9|vm?kBPd%;{(gz)l9q_Ughq3s-tz~r2XAr-2-^fsAQh{#qf29<6GmclfDPk zi}*CYFBC{po*huMK7irr0)>i4L3(`xWk)oNVwc>hA_ zeFCcl(<{@XAv&UVEJX`dmvB8?p2eM?<{<7Js`Rj@D9|qP{0Z5TRo?94T%U8qWD1^n zR(LaP`E_#>@0xEXer#EENiK@rw~sgI>;C4J&_^6R_b>W(<|(&6xX{R_W)rZiO)*lT zVOj6eh$bV(e|jBE3|{x#fAhZxb~X|)*QjUm_4>8x-vO%yZLeOo@H{!=dc9`f*CzKU zd6^l%{vJ?QxEIpHYOyu-;f(l)OKa>EZBi27`L6PqpmS@pqm9sB@tg)@PP=vYLrvPv zy8p=^V{>`E?wq#djXwv^KKNdiAaJ12J}z4NxdW>)kE)J~9@q8Rk_$q-BTr13744e7 zzdc--v$M-I!L9fE!kP%rt1R0DCUdsTe=z$l|0cG}9o80_Ovz^#@7uZ7IsA(H&uv?7 zK8@6hvML*>6O3KLmEOJcY|0sQjrS!h~i3$Y^?ukww?3Ri% zmWqb7xvL9akTqR-cK({e*4&u$p1ypV9X*K$?roHjEK$fR6k1=x|6Z!=X8IaKsmRh} zJ2&kSJgg_HlBRq1U`=R5d5CYL8N0_`L;u3lQ9{?)5A*$2+L@UA;Fxr+y; zXE>bZO$ptka%rOMSJ%EnqF#q5E_%eeX@kldp$YLbL=6NZUAFL=F3{Rl$aB|2Q0Lr_ z^JPx;`vqTBbg3#yXly#L*?ekt(>&gS+CzECZ$2Eq!zA6hOX-02Gt(N;^(x$zW$f?U z3OAs zgyM&Ux*Rz!rl;*9sjtj02ZsD^xw7N1+ZvI-?;LWhYez^qXa1k(6002EEPkc&Gb%)hVa?)`O9eSPC%D!u zJnFfzAyav~q2X^OKIOz0vQ|@DwFFhBw5P31v~B6@Iy6gseN|5I(n}E^TRX0tW6W-N z(J!oMr0*Enl{{fB%S+|W%d9+~uGHr;SmtBXG|%GVg--b&NsYIXG#4CP9mO-R-RH{z zZoc{bea3emd#E~YmGJ0b>&$EEmGMlJoYj>zO|i9ePpkHmknr7wnU{W-y{@?-(&nUA zy)nn=$R@K%+vn`#%35N@G&^w1y{qTgOB+8l&T#*&q~I=}x9UP+==IEIpYS^qc*I#1 z`M0#zZJ)aK(dvm`XO=uv)5$T`e6Y_;$KqRW!h6}q?N|LdE*gv13a}?%TXh z=JmBlA8d`~z2CI(@T%$WwK;YP$WG?@m7?@v#hm^yU6wm@F9q%3%wZ@>Fnc!ZPWODO3u6uRnuLS7puc_tJTNnxRIs7mh7_diGmIUHXD=muJM}nS_3QY{+5FQX~?c+JE&}bIadv=O^gy&^ghi z^2B`WMDv2W*(F9Vqt`ani0l#Ln{d2ovya10!B4m1A1Ha}+iFda*ORq5z!y<;GIB@Z zRlQ@3w?po*b1Zn%`YplIBu&GB`^%#hJGQIUPGCON`RCX48Sk?44a$zXBp3OIGJfFm z;JnDpzIfSs_WmVLKkW`#)u4H7dEF!#wf8)Q@$6q$*IWpF5v;P!=)wm^{ZmY{y`p_n zdl+X_X!z`oC^ty1%-n70hOK*6| z&9*lGqZx3zAfd2fzKQ1g(k1*Yd$MY8M09ZdJGh_qt-XP28H#n$ZWh7;M!Nu=V7+>2NjUF>jdO ztt-m?+u56y@5#G1E8X<6Nx835V5sfkwAI8qf%R9n!XcIoTXr_cY&-Y0=;}GuMn9Pk zEJv?7wYhRstlHrqw#Y|$XWk~OK7reFmj--sE8W1*J7Hy1kP^?zSq&}nI#pZaXL)E_ zUeJ@=Zx-cK(>IxE^Fgt#@xofwhiVhn`}=Nkl-4xT$$F$6)G(|5ZNf^qzFp^Z%0i`C zU!_8U1%>f{dRhYryI!QBz*sDA(P(jyW`1^k-F~^5sJ9 zEtghE%$dZvVL{i&$zOJ_yw_gmZs&My_3mw3KS~z#pl-d%lnR$!CF(Od z|A~*)LE(}o&j(1FMMboUeN^G;t7+cR zvrbykX^!yRTWYU)ij-q2JXlt{N*V?GGjHk&n4)W$zk7-#TlSA!gFjC){FXaE$P)b< z(lq&RdPk77&K{r8M`t}nyEq?B`mlGY(FIr8|BKi8SM)Mi8N7YMEwgfMUCy)D^P5_H zH-BvKo4s_^FBQ{ii)<%~WlcUb`^@ogx0tT3(}+0bwZ-iOlktM@D_6MfQ!v@ik~>}f zUEnf#Z>h)=(K$AC`?Jd) zhH|aUig8g1<2iP1=Y}%pmbi&qm$@xltsEx!v(;_&r0KWJ13g1j4oMwTf0R-kV9;;a z_2y$1@4`94X5zdIb1e6yO!m6Gq#^s&0Tq{{TFZ1*RFdR`-dOY$Ib@wb^=R4G6w#%N zPgUslTu3x;6H)Q{E@0)FYPqjdD}VXodlTeB72Y!3<71E!ymvqBhQdi<$2FOmCmt*Q z=qhM1Q)~NmufcXx-;dr~`6;~`@Q^bT4y)QZ$ z*yP8!Jnjy=wli~c#P5?98-%ZXD6ZVGO;G2FWLJXlO}QRt{*pJ5Uwc{k-X=fW+O9KY zQ)fX~`z2P}sGdx@n=fuzDOPm)+nnaobDAkBeJ36Tz1M$W`3W>B%RgFPRkcgDc$-#Fm%#`)cx(Z5-0CkHem-#OxVqMY3o}h z?$?|JR&a;Zmi0`E_hgV0I99STZF);(bn-vtz(5(#Gg;D8&hawckyla75SI%RyFSOt zLCdSl)9dnuh{-vjmp7Va?DknvU)r6n*m=O3d)0F8sDSx_dv|xAIl*_@@=AA?4tHn5 z=L74GyEm?icw8!ya^(6;3oVPPRhOTtuza(&Gc8GZHIwInea2_U!$<4fD?&oeYdjxb z-0Hp~^2ln|_VtGps{@N4u(+)IoUHNU&#th*oXEF-o(FTXW_3xu4G>)NJMcZ5lay&s zOTyKln}!G3QtI8eHw#V*&V0x$+a@BpVsR$Vw|!RGPh~5Fn+w7nH%>fyDC?@r4yL;L z%y5N?3I4krZYi=)7t}o=n>20Z0Zu_H1u3!in^Qi7%d+%^7>iY{niSA5_m>U>!!w6j z3g(?0CvxTqT`lSSfAr`9o(Ft;c$a>doW@~(&G~myYPH3()t1^^juEk?e|%j$${$^6 z@Ky0|>WY-?3(l6+6I#@|_v+R!1roMCOLRgt_c-)cPIaD`c-wCGx_dm`(-}|STD4{_c&ZHg@-S` zVk*lLuwOd=dZBynbdh5RQx?x(Riry*MXhC>-sf$laY7SnZu7THv+{emR(3~8x@)82 zwIJ!WA02M|v~tn>6*0RkrrW?JGGo4Dw0+hq(^A1lmpeOle0Z_Ssg&tx2E>>HSgM!Hkx(f+>NRqUTvG< z&8~DcY^{~*4+Hz(8Eb^!{5iMvvq`Y4_5@}}M&XkSzSwR3`0~oFb5)CWrtB5iKFPYY z>vuxK*{Okbx8l=VLJik_Gnwj}7w)>E!qoN0RN01t0Mn)O7|%a!I_PymWUhp1mXm;P z&kpBHG7~MPxh>ylD84{ckl{wv-D7hjYuZ;45o|Fg~5?QoYzgE2JY zw(7I)J4x~y^|_&qk3)AKW$h1hzi_kjdcnV43Re5(-Edn}=V!ZezQmnxJwCgC1z*`L z`^D*m%GBC;;i!!X6C9GmQs;-?*!t*_!Geex-=fkIy+35FezCdM=;x2(33Z8lr3po+ zT^B9bx$M&83~!f>@tevfJiHRMb@|F?hDX*}ecdH%KfhS>U$KSz-k{_=lAe6a%8IS0 zreB%%?B_(gPl=hfd(7sUJXu#;v0*{~A4_G!z?@s^%oh`HXVc@tdIe+z3<h2kbs{#4qeBrY?BLlTX{3JuZIp?W&%`}|)JT!M&K3`FY{$<4|o>jaVr#ue5l4$!j zXNuN|93bIrd1qrB8Zm$uC8EV;b1k9%g7?D>Pd zMms*3i5m;ncu&b>^ya?zD(QObJ&yP*hif=DmFTd%UMscF%Js^vsk^xz1pd}x%uC3! z5?XBg<(rVcY{KjOxu0{D+*l6g{LoZ;{Ppzees{h_VlxeLOES6VxLQ5=;9|z0pCz1m zQ*`Pq{lK!TK`VKAETgV)hx=^qzA@QvxBT1gRW0Av)G;zMBJlp5y_^Q&52 z;qp8irheRTYwIT-)*I8ruUgLMR9R7XZ>i$RiMokb&-oOxF?{~HhD)E;o4f3q zXt3#QzEbnm-R&_e+9q7Tr)jKydtuiGC$pD#x`WTkT<@rLt$BG^?@C2PD)&`^iKkv) zecb2aQ}{PF*-1JwdKnWh%fE_L#_OURkDXa<{KJGPMtyIH(zyt~Jr>{W7TTs9<@m2^ z`j&J4lEr1-XQgi`%)MzkclJRkqc{#<-zVG*^KS(uPSta4F8L#KAlvGhW5?@;{x?q& zuH0aHJo8uS+7;ER4-=U-`KD%DN1vMZVWa;pQ&Ig>&z+eVikU6C4q0Z@2ejw%bv(Ey zxX<*ftx(+Y^kp#$pV!u%-)eNSK=C1Ok7?=6=0DLBj^rF?yYndX=h{~f>@F0q&S&}0 z@GVsI!q!HgFS3Us-KF@&{GZ8)$CvJVGPQX9l{E{G`lURZ^J{+FDMcaPR~8PUEsy_R zjq5+KS$_TD_VCgb0qgc>UA|^HbLHgiuYOe5#`D?DE4tpE!Fu}Y&hySq%C@%moCGFU z1W&2F;x%PU>DtOyT7gX|3f@ZfGH=$3x#c#>iY87Fxg_%HKurYSp%bSY-m_d|dnho` zd2aQl4)@k0=j*l|KCwEylcTa``K--7yJtz>v$UGh!1w*o+ECps@(S;Lm-ZQ!gne9b zHBnvsz^rA<{xhXMHq5F~T`8oxbYkcWPgzyAstEH5Ix=dUzFH}~-yfQC6if=5UEVu;xCIp-t(gPy+E!cEhlA-o!9rY9$Ld} zbn%*7Zu_2s%9j^(*OiIt3K)FP`LCEc&8o}g&vSvx2|VkZ|GvL?NzXY%*?MA*_hf4$ z;V(0?wq918vGhEjr`Ar#Tl_9xHk!&NN6%iyp1QzNUoowuPpX!!!f}h$rdZnwX{qUR zCdYMW&3^Rm1n+~%?+*l*TDzS!V4IfG+<4??R#dpp6iHb&L8r?Lon@^>=2zQxIC6Nq ziyY8xNHn=7dcGW>v0X zPP||I?3*iJ`@vm(j~+h{{(ZTP{tRa~XRYpZM4 zzM{X`IUdiHlY2f_)8W7I)C3!z@_aFCrh|W!CeOUUq~jC2q$)OPbMu9)jr)3+{Ptk) zI`yivXXDBj^%3r}cXMBLDDgxea-VH9Z$jp+^1!dDD-Hf}Db=Q$s+`=qz*3oQyP2f^ zk#M*0m7D!fUMMy5=+e~`?e=TmH0k|{smeU7b>tSWHdYo}_+cOdF z>xW8r$UW3_Ynj8nK>lIwcAM}unHRG`bt2BIU9{jBE*|BKFidBc39NWdy z*%xhjppf_Jh-F8I;iSmxojP-c?<%pb*PEy&u66KxUwz^}2DQ1d=B5Vc4!63y@8y5+ z`BToT;E${`n;b(E1ErOMOQmyp?`r&A^VZ{Xol@s@*&aRP{oDNl9J)9Rg6^%J(-!o< z#KkxyuKlv->Lr^i8cd6_aw%$ z>ld#NuH}`OzSU0mGrL{3h46O9j><*1Q-X;2)(5|dGf0T8gsX+ddWS%^f6RS z)IIQa!`~UV`pq_+(>QnK`R|3>w@FGYp2V%>bUY&@hV_af>r@l9wALL{<`{@SG;b1> zXg+-T_1=S*)3)lnJeVypZ&T;Ct9xgaK9FMEW~Eak5_DqD?vpcLpL>1S<c4f|TOA}vSoV0_}^wZ0b1+)BKSR@MPm{hxfiJI;h4{8#3*axBAx*v*V|aET~$uik(++<>%PaE!TC|s2R=u ze|*!5zt3lAC!M((;T`6)c21k#9hT0h6I;JosT@#Zns7s1^MKk^K0dvQvKJqe?AE53 z&o4Mo?)A#+uvTkS*n4J=UbmY%JQuFVwVzmJ5&pJcX{Vv^`^m;y|0FAQ&U@b}44=C{ zO>shK7N3Psjqr+f%MM>%EKzoac}Z5E=n{`u+1ftlnH)Ylzi1Z^3CEa3zzVVU5FGDd$n&e)tn62sEc`#D%b%Ur^&g#V~ z3A5YSPkGnN2d#Q*`pDP((lW=*3;MS@xYTVE_&Skm#=Ni#PxIPcgRZah)B8GM!d2h3 z_iXNNyu3xfF)HTPiS>UxdVl!}oI172v3*PK-e}*xo9j8%7hIdX&1{*g^xlVCkErNB zulmyI9T{41PrTG-Md{SMK>k-(k4;<3w;@;4spD+**Z!5(wXtux6&)Lje5(R1cg}dP zHDUXCb%RouWp+A2AzOWA9sGC$4j7(OOPurJO@+peXR<|Xr&gcSW4dj%ZhN8Hdc|oo z-4#~lws|ujiDG1DJ9Jki_k!8$Oso2TLOD^+O>T3aM6oPXXR$JUJ|2swh#58FwzMpUT%L9^Y{G8t{2!0W^%0M$CzA@6@eAtPX$IUb|&; z?;Kl=Ieq5YjDgYj9pw@>ep}dotaACSDElIl$A|8MbnqfuUkf?L=FT!wwQ{_m_!whsdl^cr;<5RiuDu;T0{Bg-$C(qe=~S ze&L^GqN1tS*OYzm;QXVjn!7iz<6GCH@Pql$t4B*-D5=&>7l}GjalDZKeeL_xcgq_t ztS~ss)yq69Z}!U+r!&vOj=l@$FgYyY;E^`XP~B7WN8kEtmLGNE&m;ep*7wDk<{K&~ z2%R@Nyrt8;W4U>5^JlxlDN|FX{+Ls7W(l{DeNpVkAHBsFQybIW&iYi%v+&XpvyOO~ z5N2fhNb}K*RWGOLr`U#B<`-VmGQGA-y*^Q8{d%3^xz`LPMH~@Q=?DmLmK43wae3Y3 zBt_rnobvxCyq4eohZhfpF3mwb;KB)h&dwW=7(IM|Hm4Ebzzw|m+w~XaWF0=UcT;H3_dgToV)t${!!?`XAaj`!5+p|xT z{mXqO+w8deQO_-E8H}#1zQS8jz|kY7S$+5U-G}G){f)l->OTKDnWEGmEJ}lpi<;HsXMd|v6mX?*7iAWd zWaj57fXqxx$}cUkRZ`+oP*8vxo>@?m>{?L*w*bTk8(&ROhXSE7t;X+chDF|wVd#i<}6u)A|o()25GAvPoHarg8Mfa?JTV|r$8 z0ayn}HL}W-WVpJ5(xM!&nv`Vy)ST4Z)Vz{neM3D%6c3eTrXeB-#Xle!a1bCHUy)k? zHy=ecEWE&q!QpDdeyyB9?yyR4nQ5CrbdYPFiR>`JmCW$GjM!M#v24=b@ zsm5lyN#-WWx~7RnX(_2D#>QzD$w)@{7iFer<|XDJy9#7fN@j{xQi^G!QBqopuBnBw znXXBqVWMtQQj&?Tk$GxLl0l+TVydYD*eFmuSUCoG+A108A&CU!B$lM*7v&QIW6>y((T59ZqF<5P@bQgB9oc^+6J zB~DJXyo0jtDhNbnaYmZheEqd);Bm7I~7m!6tps|3wzF!4+* z$=Jvu+04YqB2hQlAk|XW#K1IFH!;Q7LN_@j*}x#hEHTZ{!~)gy;{3Fd^2DN4$Mn>^ z5?dwr%-jNSJS%8`Q=cZP>hg@#JXTqK16Ns32P7uAA`3(><)%}cRWDp#_%t6l!~E&~Gt zTavfC3&Ssl{|q;G1+0~0U|`@Z@Q5sCV9-+rVaAH3_GJtV4D2PIzOL-gnV2}_We$i) zN-!`eFnGE+hE&{obGLFrYI^1KpZBY`?S48hGBUC|>uOVrn3vcj2IeT9rZi)T4aW@< z+_xmkl$_ro`}Rdz(whTsGc&$dr0v<7drV@xVXn0FdW9_!hlGR_4oq@j^1Kok>7Dj; z-<`K>-v23lXIYuQ@<3Kk?vsCYN?Jubv+wGj|Gek?=RHE8k%Lh@8UmvsFd71*Aut*O zBRB*a-Uqg|GcYjJY`^pQc)e8hzRyoyUS7^0Tl;pa`Q3uky7A8f85tTtr|bMs{}e9& zyLR`!U5jSs3eUP__HU!}`l`RXRbT4c{mK4z;8SGZ7Q#)|GR(qyv)y)Y1P4R&+R&<=3esotbXn3f79>$dp@b; zkv6~ooBEI6*V}x&z-(T&>*H1Py{|&$pGq=A++D#p@6Vs-*^^4no{qcr^Hc2inh%@j z|9$g&`gF0URx`uGrkU7UE)AM}Q&V38D*X;_r8y5Y1 zy4cp*tl2i_gZJLL@c(P~{vWs6<*Ht+YnQ8WNR&ABIri%7QpXj=COCNh&i@N%{bnlO&=CAJDnX~WHRQIQ$tEA*4FR$}1 zdwpQ(^t<+Era#+W$9>zxcV3NwL4|>V!QuSe`9E4}@ACiOu=BI<{0+yVY=1tPyzASo z?5_`+`ClB___*rD!uBmU^G>f0xyrSB*33KWI#+t$Gzp$^Bq~1k@~dA_bqf-DQr4Ee zyS3EBZ_C9ySB~7+QTFE6%AY@rXU&^;?bD@6esioel{0TY*>Uaq^{c){XV3U(oHkm! zHt&SQVw1Bbc2>)dP7U?t=|5E(TRCs}x3pmMyA{oDQqEBp_Uj*J#r9T(UJe$PT4iox zWwpkl)5O?#@m%Y470+&OZK>IFrkw4W7B=ncyZY~Sec22Q3XBX42khhHfBzBB?zjCG zQT_hj-ue69_O7o#9RF{-{TA!(=U;q0E`NP-zul^zKPxT!l+SThxT>5!`7AsCo3PW zI-4E0_~gex+izFZue@u^+IFj`ckzO#$?t#f`uFR#s;BhXZGCes*3FLlHEGG+yz2jt z?%JpA`|xuAuPfg1|Bsn}SjEUN0aX5+m;V0mq57M1-rs!GGIzaxxBGqFqZ=EOqi*MD z@i_PP_MVJdUHtr9W^%IgJn4+@@9t)qNJYiO1zq7a-I*KZIcwGBmoH{2w?F;8&&}OE zbp3TxW8=kPtC!~2ecrH0;}Wm=9fjkCPk!$^WDp|2a%z)L??Xjd+p3VMUar5tzY7*% z$=ZH<*6i7rjoas6%-w!>UE1cAy=lQ~!@LtEPDQLv+q|;1l~wZk^)qLBu7yvZx@_f? z)J@m2s_W8p4ztiKduiX5+(13x%V}7?bOFop{qk%164e|E{AwdS`oHd(>J(s-um8N zUSB`IRadi4ezsBdR676piACQdovB;H);&I5C=;2j>Uk|HGJEQ>l`_Wz1J<4>jg8Ds z?Fp1Qe(T1K2_Iv6dwMiHg(9=3rp`RHLD@ZM_uWa4cX&;TXrKRcS=qZ;7e8EB;WyuM zsYX}H(WUHPZ``j7Y2Iz+ zxw2!~@@*^c=4I8^#!io~-I`PD@&2E={o#+WAX#4ie!2bM>g9d&E3QxWuL-R${?B}? z`lQ}ko%JgN*RQ^rmHGbO-c`K3pn%EE^))s&?mFb+?CgAMlTYNdlRM_AXr4BzoTq-h zbgD{cijU-y=qr&uUCR^-HEw=(n)~{~46Y4vXSg~RMI4ie%ob(&St^llPiELKCi+zFd{h^at$ICJ#5I*^fknKKTT!g?^{=X_Mqx!UEAPHq74-G#jC)Tn z@8Mb)w0f1aYgBgLi!VDbTUEW8@$JpswU?LsXBXA@sGVJMCaXBp)%j~%n*ZD>CwI;I zz#Lomp`j@%R)5dG3F|5^D*k=3|DWgQ7wPgfzUDdmlUCgOaX8=R=MmxE-{1WFqJ8hg z8&Gc>6cXPHuB-ol^=EOvomK6V6M|dKW>;#~Owu@QsSjd9ctjX$W-a?v z8=pDrRB7zd!g&Q6`j3C@6=N=cP*!{Y{CfM_tHd<&w*QY$Qa%3UElb~Hk5jkVWjrIN zohY;^-JQ!iZ@t0?k>e|E&Ie9<;>oVRLZk1~s-_jvt1f0}yv@~?IKFV!*=2omZ5F0& zUitE+=2fZEwd>cfHZ)qZ^YZd5F|ii{wk|R_Tk`mRU``a3A!_1@>H zsgaTwp0EBhF-Ctrt3X@gOqmHGd_Q07f7cgcbS+Zw6xvyr`g*~l?VsXR}uRq$BU~TNKIWXD$2R??5Ecq$)U|%Q_{Q^Ma+AB zs{GS!j>7?tYge5)DWcjr>+Q5XQLce9+TO{vkF)zK>h1l~khkll+FSdI2g`PT?vCebdhjuP?@!K?YH~2B1(F8YJbh*uy852qF&|HnO1AJZBhvpVBxys;3#my%5C5K)i?822CY2t zW8NW)Nzd7eY!`1?zkVObt7e4&5!I&`_9tE4$1$gSQf>Cyp2yRc{&f8i9}_>(<3-u- zO@4JJ0;as0zWQrq+&TS~Il?EjnLqvBJk_A!v|{~VQHEou^Y6diY9R9ceCgkVEDgI$ z?Jt{5RldBMgJY^nC)4@U(L#sza4GS9K7Not#xz=2@_Jyv>Q&OMn~t6McxO|QW6_i) zD}$bj3Vf}KRqvObp1kIn-+8T9WmAtWT(fo8lS$rBe#|R-dvERg-Or@%{<}2$)#l}X zTl~+?yZGo;*SbCLqW(VU-`D(D8&Yb_HcA~=smB&`hYgr%E)6HtSmv@t0qmm~d|X{L61nKDH`3{PowV@O_JxK27E2<<&H} zbecbQ@zT$qZ*4ALzwY-w>5^A>B=>&W7A;@@RrZ4h;f*-_} zdrx{hcfWWxe@y$5M$!7@o}N1gnLG9^totc>_FC@urq|uE?>DF3e`fOh_P=uxCpZ3l zYOEZoymasSo2=%qZ~XbQ?EUXQ+3z<_opMsMTvy}W>_Q`5oinFD+R9p&xm@#D{W@Dp zPA<%pW62KP^Bb$aXxFdyTDofQ?y~IL+j6U3p4Gn?8oobZdR*1Zt?h9?PpMbBGctI9 z3R;`*C;R{I+xz`p^_7_W6G}f7{n)zI^lBFG*4uCQY`++0exo zFPz-G{OVaH-Sz7-Za}Po&KQcFK5Fdp$CUp9R7d(qRzm!{_*aK3_Bu(5$&3~jGEz#cpXyxs981r(RYz76x9JbCi2x7(t>9FwoPe16Z9KI^*9a&BnE8}I+p z_&;HO%_nKD+p?ZBv$oDUl(${x#&ng=XV0FQn3^u_?Oj%LJ$P^2^;4(1)Q%tDx@XUt znKLElMq8|ZdN%Z`d;4d_vPn5}GHPmKf)_uYq;kC?m1#l5)a|tk*S=?a`tsG?y7~oi ze{xdU+P+MExcwrl_V>LD?pif-HgF5`xGFtta_;O_75;aQrD3Os&;hISii!`uG}Rdk zoQapXQ?Gq(<6Z~**Sq7Ezb~5Ev+d>|8*JqcMgm6DUukC3pYg_3B>ba$# zfA?qOrkT&4pU+IHiRtcsZW^;*b4A6i@{_7n*LUArdHuh^XGTbO>&LvWH~0VOK7YUb z{a=0CUuO@m3SCv1G2`pDtK2cU+oGRdsj=tSvT4(zojWbx-q{&E`?W7GKfg8yQ*Uo? zW@%;QR4>=rvuDqWj=6ASTjATAyUpjXl0SZGQi$``U5_lLy=RMFxbE?k)Nihp)f=_) zd$b?(v7I@(hpVE)ZdRWEG;P}z*!yqCmc?T|EJV_wg0dF`^n?@;PlO!vzMH@WHSHSe6P$o86_nlZ}Z$I8kt(Z zE#lr=wtR8k_SIpluX4|e1qDmwG))es&}OflqVa|k*5A0c{&LoH$4XFB8>OE_@n}4irtPziYIsNf8&US8p z=?uXiWtz<}rJi4}1xwcn(D+Ox+sp&|#=@w=ANwK-z->eE%PUgl?feWg350 zURwI}_Lr~QKH2#9J$`cg&ev0KnD?(T=}z5TGpV+4*JF!l=C{9=-Hgtj8l`>x`#jT{ ze1#X=(h}4h3?u7Tx5Q66xi6LJ!J+r_rwSC@d4EVbe#(RRA73qFF7d?K@juwS?{Zc7 zF+xxto;6KL#Nf; zX=di;rZz@PT3cCjZ=0=LxKOe7;lg&)>Q^n3^4t&i?z;D9nfc3K(s>i!|E~J}``+=7 zl90r4KUe%_EFlDQo-}*KC;?`?-CbK#& zSo$>e>g!U|*_9{vfBe*N>-*oh4R^Q?Y_@4Aiw$2_IK{1Ug1p*FEz$T$wV(UepG^zy zbxYphvfqQ@%i1-&&#@l<{pP`{-Gz7JPX1@@WO{wV!puJ@Cg9P1`3Lo@=hbC*iT?Y4 zZ{Gj44bfU&U$!$ghlj*0=gfShMm0$bv-^0eAsnvV`Uz7b|Z?*Tq ze&MnysWWZV{qNm4a_X~;Yox~c)2lV3)=tx!+9mT^<7H@}isvE|->J)1f(ko3yOnv{ zS08roe|6^#=h}7iE_!TT)cl)2WAoK3+HoJf_I{3i|113Yv*&ex*S@bZKb{FqEwwd& z_WxVA_qXx)6?-?XQ#cdCuhq3^#rC^#aw=tyJsbrzw$6+>f7xyI%CO~YvuZuAMTKUC zN@|;~GA*^1y}F8bZSI;?VQW|2%iviv<#?pl_U(uA)`o743KelRI(DMCrt;Xt@Rgw6 zEB~i`|4n?S&a?>(V7cA*`rFiB&mUP#OI{;$d~(mp{~M&0mrvKY@hf=$R@H<$h6mrG zxZZ4L`y(3PYv^_P%OcLEB00yhk1Yr9$NsuMpFzS$r^Z@bjp0sriNF{CkN?9w8`j=r zIQqAsD!q*Do%gI`r+ns3@tou`@44o?woiY%Ht9^<6LReA{PwJX;7KZ8lU%mm`+m$S zRmtO;MvwB=DBar6FAQ1xrntQ>%3XBwWv*4xlMb_J-^zK*~dX5+B$!6F~9Ae*Nf$U&Nc4t?lv+Dl}hJ|S^h?x|8PLugXfIp`W3m`Z?C#0 zRXO2pbyQs3wPVkgEnBwC#KdF@`=gnGYl9}f5B;>TD011GCWffK%CH5|U!LsV%W$P| zPf_71{Z-=`*H1j(toNNhS6(o4jk!-jLBoUA{`h^fo&N1n^;~rJtZ#1K zy6oFOI?T+jnQqMW+W-Bx{N*QK%uHuXckN!7woL8oHS>Q9;=Wy)ZE9sw^Z)z)m!3uu@*gVi|0ezIa{X7$&=~hVL!-!9>-*Bp;#1$VKAM^pdM#@0x^-TYR$W~+ z>+CWc{eZP$!PalGii?9iC#|@c0jgrJW`$->IaS=er|Q71J@fZT+)B@#$+N>?hF(+1 zdYy~qr@|T^ZAs#5c>DETdgL_rNqOtlZBIYhRe8Qj@J;-V)cA=88vCY~vI#N#wf%E` z`-A^K7p=IlqoA&7Ygpzj??)DH<@am1Uo#6UeS7u#i_P=@X7BvD+VSw#U2)%MS$|po z|N8g4m)@1V=U88EbIM0+br{F zsjMp{x4q-nO}}3=*-yr9mH7T2N9A{Y+*Y&sA@ScHsjs^>S-i}>KmAm>tz_iU!Zj0*1?-z%Ewb`%W_EFL@axyFe;%p7KmB#3 zl&tJjL%*G$>`bP7|DPVYENbntw9P9OR`9HOBWC;Ssn#FXzn{a--&0#3BUskc^Z3;F z+RAzAkF7QZ?bL24oKwW!xW;^s|K6AX{vQ0_8p`l9^W1?y4WH~J(-l6b|M>sz)%?}~ zmE5l93R`Ce&0b}AWy13vS^0TcNhvYCZn0ArENY$}yKF(+^$$O0oSSREUfI3x#MH(A zzx|fK{_d@{=#GD<|9_cx{*O(+5yOL>kJj5TJg9s>S^jtJ@AUb9f?WfbXmo|F4NILI zlDJ*_{O1sEt;&Y0IVV5M?ld|zDWpy{z`SqEjy)>iQO274*DqYSaE-xc=c?9j0_q(IOlu%}Iw(~RRr2kzv<4McuYlmQK0qg}DzAroVeELRaQ5Mf>THc}mbgl;q zgnYU@DMev{{ER>OJw10CS2cETW%HO+XdCD7zo9F|cjAV^yKA4T8czZZ$r)uX%X)A+ z(5_;`?YF0RYf}3zCdb$Mba!{ZDv6Go7k{B(t=@I1*y6X`U%CH(wBPeob^Coc>jU=> z*Z=F^pOL@!>9k+n@nylw|9>y9e>KlOE-IoXTEhL+w%xDXVl^kn+z&mv{sec;&#ANA z+}zC6)z$C+J9Rtm&;~c~z{8LBPY>h&nO2`qe-|RA{#2_%qz%-^n50rvUH|No#l%fE zJHE}?qZ2(dR89M}#8#`fMhe@^?Blmag)Y7rAe8=7-H1Y*I$UUi$0)v zKA7cR-{TWInzg@P`@(dHo9&}0^M4!j30uQD&w8JHq8u_D7})m{p*j%{VVUj zT@}O`vi^E$*}pYwd`lnmUVk0G=M~@EdmDovKYncgd6RYAS8tn7&HH}b++TUt`&U`; zk01H*`PIn6UO z?ofVJ^S?zqR=cfTXYuaq-}Il2HA{m6C#iI8-lM*4hZR{{XFWT2PW!`ZDQW5Jjm+#NS3|>}in?6W@@Bsu{xiH>`{lK4{!Ok)zI)Fv zNLuYVnP2MbpPKZE6DKOh)_%SE>tgvof0=q_@D$7ar_1mEwyXZ}A(3@2gMGKKWUA3j z-R&1nvwu$AlsWDDMeX3_mo@ocb+b51w0)|LFPt{bF>-0pO|CV}_V@ptuSk7x?SA$9 za3)nxBY_FK-(AZ}_`hLqjaY;A2B!Fb#_z(I4wjy}Z{4SU{_~X7nUhSWKL1(7Y@hG_ z;%?YRrJM3!;%6ij#BRUyc7Z*|T`#^5yMDEYynB+sE^Kfu>gy|$DUzC{ODw#f{;p(g z*f?oYh+o#z8}~kE2p`@|AmCNP2Ft{ikd4m-hc{ z<)2Y)_m8vsxOM%H`ENJgJN*6M*WdfT{RpqG{dUB2ZC=i+A0HP-Mc=;gZKmYebLX-u zOI@$J#d=Q4$ViFM*4FO2T=UL-lFF`kyPS7%w~HyrO0E zRO7vOt#a;v&g_|3*yXioiwuKi>eKIGk#@}~DK5Lq-(Nc?yZg$^k}VrAUU~Lx*RH!B zg)&;6MyZjDOtx+^o4VEQ+OoYYEpLBkiG+Nf>($oQW@2Tv>gCIq_LYC7<35+&s|61x z%$r{KNcR1f?(XhQnQ?vb+@FkM&zC;Eac|Z3(4D;T_3<@=8q&K(XMCT2R^0Z_-_@Uw zNl2RWPupB#FhjqY;W!V=<-d*f^_}%;XI-nmcHd8(x#V8g{{vsew$WK`NaSGG`;lK zmrUQ@zU-nBm+tiEUw&QR6IOnwZuh+(!td+u$-lq*xzm2z)&-w_1l0cEU$_79w)kIv z;_v+YdH?5)`r4P_{Pn@!(%Dhbw*zF_cfHx9EmF4YQ*He0*|S$&&9bWev}D!QRc>x> zCieF0A3jWEbzJc9*9K50%WwJW*Zg-EnD}1JF$49s&Yqoi?D+B2os&pBPJU)eja16+t+^j6 zag2+}KQn7;YG>1eRe5)&8gBE^^9+(GJ?*&g=W|D`>!nxowr@>8FZcH5=IHnTKFS+U z`l4R{$NgJw{{L%lIp_cS@&4w@kDd0FCtu$SP!rzw@xb4FyV_r0=F3_XJlJ$P{#)1L zJ>86;o?uP*oxjiPKi-i4b5LF;DkdUeZO~Lhx4`AA-4-u2;F)@4W7gJLIg{j5tc}Ed z8K&4?zsc(Ssp{aC=auJw#R}F)C#zH+yz*z?mTD$C!!6nh~n00>3S2O?qmYtE|vAgWe zg;%F`#hAexWnwpx4we{-Y<$f8rx8-JSzkO?4?rgc*FM+Y;cTKH|pY=q|emzS@_Tty;vCBVx zER5atzhRZ5YkvLt>NENEFPgtS=@c%?S$5aDJTo=Z^Y!c1MZJrw_Uc_PEV;cpuJ+Zj z?SC%p`}h3a#&)?q&wfqc|H<>-P4EoVyvhClzq!9@xBruPQzv+B(A5_&R&25elxSNO zrj=@6w>Tqxo~M!|l?&jSTzuzu9ijn4rJuP=2nR%ZC3| z+y5PS)>ytQ?!beJO4kOq?c61A9>g@95n2BHpmP|DjB7*woW|c1qi%bL<*@$x%gMIw z>+gHhX4)_Yto!s`l{v`$)EZ6ivvZXg6;7W0#NzO1Y1d>A)Afri`kwsW_io>FW2@?S zbFA)8i}4IKzpyWM`iuI?^ZT#(|C9g!ulg11$Lah3MVq~8S#@QV)a)4-lH+S*{OcZP z%Fef4xmewQMbP?_73+2tF7b{pSekZzPMC!Iu9Ww2YjxLWRwhP9&Uv+J^}0*Xo-GRt z4>!G=%@`3If0;YJqBkww|J5q-xW%={PX<4&h z=`~9_b(^b_eI(cXUKg4s?3x(F_Pp}K{8dqFr#&}5CVPYTP+Cx0aOJ#kwlA)e7F5)W ze_wg$=92J>Au1e8d^&xf{Qh}P<-E=3o_+s%)lF?|)_CjfbUEHHfBn&;MX$c@TDSjS zmF?#4i zu3ft}#pNfT#^lG3Cuz&>dDPIR?sg?_``2gR|81GLR2b%cZC@Wz`QG@=b;x*m>If1#a%xe&G@T&;^uv?_ZQ5NKluN%@(=yEh3jN< zI5qtIdyRKEx162-(k5|&rr}B%?WyD{G4Xbu3Ovl=l2*!MMnp3z8NC&v~%Iz-R0U{yP{%Z&e$)W6ylX+ z`YO~la7o_w#RpDC`!SuL>T7Ii6f{jUaM^*vkoDI@SQ@h&U4QevyL@Du;M?2#-It#~ z_f<=y&BVw`>*R~6+wV=9V{80e)~+mM`~82b{OkX}zW1Z;(bf+a=9d2pTYK@x3*PN_ zKBd}mg2osd{x|-~e_y%&@15s%%QbjHKQiau-xs^ir|yGpW=&1Zyuwp)G1p5)SsHJ> z{nK#o?Oe6X-1B~i{oSmi-CksQOuPDb_XAu0ZS2AfsSj!M(6j>YI*1rATy53M^!w&h#_=5Oz0y|F3|CGP;srt?l$FbtFW<6p)2g=jubu6` zfBrS```+*Je=I({Y`5G0`pe6k#)%SHnYp3*J6?6g|2q?Z|8wxnHT!=35RQtByZ+}- z6R5J;xKZ(Vp@`Z_z5RcR)~;RudgbzY7q4EAUCqqSmyuf=`?k#e_V)bgk1eF+=((CnEv8FXw7PcfUE(13L;UdH zu4zokYj)lBxSF*<Pn5@2_GzED=vuT+MSJlc--WlN zEh_2~0}ng%zP-Oce%|w!GnapU)%0;PMplxK`TdH?&z_$&vqWLSKj}5_WsQJ z_lx(hUV7Bk*VpG6`-8A7v)QxmZS!>$IFSi-wMM_zvNXJ|I-kWqVH?xtf0urB``*(3z4iAu&hyp3?%sQKpY`?u$?^n^gskmV zKR$c4trfjr^qg_?)gXfno8ITJN-@7>ubs-H!Z6R?v%%=;mFX-6zvB9@-P)s@puo6b z)0LQYQ`{>3f4utCHES(z>ZV_xlIvG*>@3{5ZsNp}KQq%y{!R^l{oMXT@ppY4y?g(* z)&G24zy9&T>i?f6KhK@zd*|b{?Z5r&|1FF?yY<=mdtYB#-@lzZOma zcg$eqzSjBS{lAG@>}V!Wtj_4+#+xxyqG(ZqCJ%!N*I#95FPN z;=P(>3QD_c*1ULdu=!PqRaA8J<$blkO>Aw~y319%7#kadrW!?DXU(5K{qe3@^JWH0 zv{@A-?BDn0sC&xVtD@mC3r##ro}3V5ZCrlzsO#OT*K4h+zN~0#do^qR{Og}SZCbbM zRaR`#$+)@J<$lNck=(dQ*F%#__^WnjcSX@BO@IkISC0l`mdgR9%adV-7WujO_|^R$Gyb+m%s0Q zVRdo`clx=xbIbNPbgy1*RrF>@n*aQ(PqsTwV8GSOAi(+?|oh*&@_3@c{uzG1w@bb%ni>IkGEY=8Id@*46?UUiB zW2bg*^IE#7On+v;ln?2VVSdN%SFK@cotrl=ZSzWDb-#?Ns;GI-R~k-H*SvQ9`qtv-=Zp*u zH`lgLn>G!!EVDIng#pjg%Ae`a4;^YcH{V|Wc%g}v)w+!j1$%pXGSaGcKYR8}gr%`5 zYoBVCNcm|O@69)-6vpc6>1Cxo=Q~=s=IGJX-oBpG-)raEl*TAKAGWIgH6?28G_z~h zwtSxyJ8Q1(N|i3rAM4cA)V6Heq;$Uc3-kJl)@83md09nsx845veD>oNQR_3Wt5*N7 z|8~#j)TY;KKK+^d@ZRrZGn9>#ilzkxEo+;Sa&pp!RPO|vsg2tfE?Bsbd)Bgsqjz{h zS+6D}cO7zdoSEb}vxvEM<3S1k9U%$Q-ZwU_y*R6V%9PJGE@?gadk$MJ|G&d|PlwOV zO(_R7@9zy;bEad*`(xeW-{+O@`};OOzwTM=e@~lVGxz^L`8xi8oBf&fyW8#l@0^`i zlWS=fu*k)eVTwlJBA3qf)qi%+|6lq2A%Fdh71xhTIB&kG(x>#QuJz-`!eegkosVa@ zZ4L9t*_f@ouE<$O|3l~DtG&A>WS)ulW6)SCQ1o?UvrB{Px`|J^YV^tvSghCBV8rCW z5jf-T+LM3Iaj`EI@mg2DOg?{Anh0b0$mBsYgFO z)b)Q<-*8!#V^zjVuA_{{CRs%HxMs{xR zd_^KTW2;pw*V6m%g1|3ptkQ4u%V6!&R0gyBdvi1;`Znc0Hd)U9&V6Ud z*22GEuYdk^egC}2$NPhMnapx;9eH_qxum3Y^5<*1Jw5$_`DXuque`jx{>|g|L?`A^?z@zH}#)u6`Et<-qyDAYL-t=|Kyfhx3>1~b^j7B z&T^Z(b5TH4@}=pbF2{~ByS{7n{eR8-4?B0xSG3+eM=g*oe9hb@e-*Y&=LOdnt>D67eYds(SYT9??G<&7dfp8_h zPuV)*ho4;cw)#GIjay*aq@uT;eDb!ZRt7JZkd;6Dy>?#ZC(jre!Ee7zq)qodx4wTY z)Ovlw^>f-~@uj!3yDhe-+m}E8UiN&B`x^YBu zr;>q~&C})Ii{=Qp3Py3Q@wF)b#&RnBN}JonO-@^lnl=e#CJVH=v{`UYyK?isD%*Yk zT8;x^uYGslP0P&e%-ZU;`syKx!wa3;Kh(~D`7(2o%EHSpC$tFejnkK|&JbW>ER-pJ zazfB7@6L%gZ*mrLcuZ=^+Ip&ynZ4kgp{eQ73jwbV?BB8D#E~N`g)*1(wsW&KZq<|& zIo@`-o!`jL?&OOX25ZCE*P1#Ctog`YcuXw&N_ddSP5sYr|NJsl>vecjw!7x#LiUbD z9bv1FZp*zL5i#TVnnaS$@6IwE-gf0$SK2I{hx372dk;>&~#9~+PN!WO8QSoHE?b|*q*Z6t%v)KRU zqn}!zeZTBv+xx5dP+S1xg01`OvS;_oEYWKIQV}h{TzO`Gz{~d&Z){OszIA?C66?|T zX>*-lCGZ+f%s+D8TWrF4@z>!(4EJB0NWU~$Mf2IwVC9`(qP+Q|&Mvkue&+KmZ++#P zkM5GIu3OZ-;V85}a!fGU*>~UX-TNjxXy@(zdiBn~z5m-Q?(hEBT>b5(txuo-g}m)Q zurv;9LlF(e9%bT-M?k! zm3!PaNz%$&6+BOHY`Ib&eBz6Qd(-rlNj^C%SxRG+Jd&p0`+X|GBf!YPtJjoCSJd;0 zyO-l5C7XD`V~ML~Oz5h!KlEM8C9o-I<*JO2Z!9;oS-gB4Zew;PZ^=a&#Wz+s|g^1`_F;`20K-e^+bXmTo?uzq1>NTS^A zsFh3pv0TkEm37Y8%F(nSz~HH}Q1g>#KT{reYnT{aopxvv0nZ+qSnmdd^ON^JtsA zhBBM?6b;S>Ayuy_8Xx`pzW@98erM;#!dYh%>t2f2O?>)P%yH?VCr?z8g&)7Ee3hA& zmL?%B?abAdydxE-TAfd|192hLEbUb>aQm?}DziQQFUU)LiGASN+biYOmbs)29=3 zRSKRywf?cM{-<$;wQdD{;c4wYDisbhUz+U=a5lU*ETV^0vp;Zr?ZUXmR%f z(ck`ZDWBiC<(Q}aydyNxI7CY{Z^yf+Uw7rMDjZ;PTgJNICqHh#s9r%vcb)+SuIOU82p$-(TF- zCP3uL&-<3&H9y$se-`i9%(q|f+Po4Mr}dU*JkCuD8rSw7{QUeS$Ik0s`_i5rx#+FR zP?Q?J|Ni+C?FPzW!JA#xFV8qyx7<5PiBI0fL*lDN*&7LN?&m8iW_jz~GAVKSs3*UXIQ-TlayZHc~pAN#_2(iiYD)8 zWOWEUz;1Ro8i(e@ zAVKNv&uU(CHY81Xu;*R9C&LtviQ?Hmw;Iowq^PQ+r>C?uB_*Zh@bNw|$&csX-fjM- zGyVOYgN@AWGvXssQg zoZu8|Z5PjY<;j2jwUVov?)8-+HkU+qB{sbeKX8=AOW^3;H3B9qbyF?6E;v2bX`VUDel$2_di8%?X^2Jon@=m+PrQHzL(o?%UD-UIa-u3YxH* zuc&DIZQuLMAcJ|%1)-34M7UeXZb4OgK zghy$taN0J@J7(z=j@Mk%{~r`=xZ3+_`t*PNVpqgxE!_UPPdw>u;jw42weOo)EBqAJ zxbdu8#yF! z+4(nBetxEu_3p|Y$*8%h)56aMtz=d4JoM*}(&EF)GPYH7Hcku-3%m8BZkA*I+Q+^5 z6~@x$xeKG#KAOWIt{mH9x*&UT%iRgPOe>;+c`uoNv%`^YaJOO-`s?7-n9 zRr$5YtmKtzrxb+Db>wnRkxhSo{^J2=egiwZbMNl%=KgHgkhRro^G%=KcmA4`9*BxA zd1kAxac%e2l>V!REB<`8=ws($51!v}Fyp|V>}JFEpQaPFSFzbDvDIHwP~0``OU+Be zML&zTFn?V0vUsA(Ii=850xMoHJiL@`-se1JxnR@<&fPK=H60HxD!$wIJFjZ4o*JK| zyqs$1uN(>a)Zf#3-|Q-}jyCt%oc(+0ov$nRr&m2z`(RV|%l?1f&WvdqfkF(R+9>eR z(nl9}+kHM9zvuHh`@mC=ndN_LsGpmYc>J5}9P9GF&W)anG?H?1bX1v)*k8sZNwo_` zcpv>9^mFBOS>@~Jboiwhm*q#?yngpq)7_}zgOC0nYO56gac|cl>(VFk3XDs%L>QX; z#hsS^V{CpNwmPk0o5rKkz(3XwYrNS7PDLBnSI3!)Z+EKnQPGR+epbL5H12S1ObXSDFy0Y5z+&sI(KYm!O4QtQ4 z@%+QY#UZOor4Bpi+}zaL+1a_}bB~i|dx7A-c*R%TQ$%}yh(@gyyZ1q3qN&BBE!}y# zbqbw_1?iUYSZ7Lxpwea@aqBl=Cn^v8_ zaz^C#wzxxW4>cbdq+OooTVf?^6YI<_n)I+^lE7Qb14=zdEM1jsM3~+tEis5tuXxbN zF5m=8Jr^zrO!aEb+Um9c{_?QZqD#E(_Rs%4_sNs4Ag=SDUwo~~WNI>W2@E;$%~t>I zr`0+eRcd2GM6RFPd5B#>UisAid6PMJdMU*3FA`exp<@R_<*sQNwI5kR?V6ZGTsnf9 zZdeJ-v{LN)I7R8z_Z1;pFF%WmH6P}#vD#~P+;7eS%j0+M$jp0w@#Qv78~44BigWJU z9b0AUw&lF``g+#r?K#VY+j4f6u;13-|L5>>zxjXPX_v)W?t6VL`jlWJsNmVh0!db_ z4?fTTbKBl(OZor)zYos;TeIW;`+x85?*A%(|7&r-%|D4--e>1zIkrmY?P&bDnY*XI zZ`r#`TBWD@7ICEP@_bvm%OuM*>a_Qj*QIk3dVlXfo&0B0<+Vlb_7m6`7DRY6+$atD z`Bhd&@yV^TxpLfU*Tk-sDV&b(xMHGHec;ym=N}vVM2!9_={jgGxssjqheb$zlizHS z*4Op{fA%%UTB@IF+JA&wdjs3mMlwIz7O_!bE6`Swiu=JxLzepe!S zlBqlw=!`4f7#;J zkbiscygn!qT*3Hc)4!T62?35%g?WEUWv|ucXxaMu@lUqJ`dfd-R?H_PTwuF+b#oY-}7qGHX`l~=PYn3e9Iuxc-!IeTwO%gsM|SKco- zj5X_>qt$h94YS>j%22J_OP(43u9T~KCN?iWXnsG#iS8W5Yn2Qs$E}mEpZ&DkwBOgq zk7LEwBTjmEug7hSJSWQP8k3;-JN(5Nkqar4>NLMd9smF5|52Uw6OQr}d|dX|bi$Kq z6_tq}>LT;+sV!CEabB~v#7bAHmu+iQuix^?qCH|yLq8Zlw)NK*Y0BH~yEQ8H-J49m z`PSZ#gybrp2p+OnBL6M(T6Rx=fAR0P_nr1$JYi%YvX9RouqQ~)%x`|QtM(!d7dEcP zLUa7)FZYybyfnkF#embv?aW-eQ#Usszp*Ei`Mk|f7PGDwTdYF1xS!({Fg67GLyBv9W9N! z@Z5FJ``@jS@o`t4|6{Lgw0UuB{%po)TB{D4D*Tst^XWNj*}bdh)8BkP{`|VfKbglC zddCDmnWj$Q`4P30fhTVAPYx%)q>6d%0-6sSr+hhdMZ>^TsAgqBVAC|NY@Wt%FI*Mp zy`RkCo^fdl^J}3R)tT0{)70nJHBF6cUwoV|aAn4Jy!L8~lJ^>0p=6FZk2iU5 zGqy9DCH5w1YjNnA>0AYRuRlF!wGp2-Z=KkVn}4!5GL~lhFtofM!LOGP}UN;0h4>Q+~zpz83fFeRql2L!EOHyWWcN*S%z%7VUlJ?0jd98MEdsyZ^rU z>(y{$8=F%%UZ~8AS9T0qef34@Esksjvn$%6V&dT$<-dP?)tZ|(z4d7EnR7l1eUF^l zDcln(y3N%6YUxcY!y}JgF5Y3`a$3hK*kP~X5wG1-?aUQdT-7=fVe?eEcfn;Z-e+dH zH$6(1c;&7*)fs%8b8*Y#{BUtx$B9|{3A_HQ>S0*)^(Cuk+ajBsmDh)b`HbC zl#jKkmzz{&*}dBj&ha>T>&CGkQycPjw-@(Szu(!vK+M3repXrf%!O^|cTQGc!F2!6 ztLPnXXUF+UxbJzod*A18+IfGU?LNKVsWabY%IYxi;EM%+|NYwUru#oE{=aK$$+I(a z8`uAQB){MG41ZH9C{mM#jfI z;@TIa{=3pD;PoSh%PI{AlU)iU?ll&l6Px{^&Z>eR;q#7NmOFLX!sulEGu{c}|5u+6d-lfNlVQpa^%mwLCa)CNZAVY_a0u{C zjGgOzR_&TZpRDz)vqjcz?(Q$YR<-Pvdpp%^YgPlF$->P#Tca&5FTWkP?0)X$xTu7e zZ#=EI(<^>GWVhJzT=N!px@F-D$!C4Ghh6R(1RAgSXJc(<@?wtdkqJB>C+jgPmZoO> zXga$2GmF)+n-Z$L&WA(i^hn6A-u!u!_k}|WElaOPKe~21U&-in#nc&5S1;txP2KVE zv+nl2Vwt=_5%Vhk7;Y*1vPjN$_65%5wB_lRRX;ci&0QF-J`>nlCE9*8m?>U!1K(Pk zDIdCaToBT4Vo11p(~f3ftV&UzAkw@b?CvD=g;6GhtwlYr=I+KwI}lbpBlf0=d4E~8Uj}Lvm01^Ij{!Q#r?6$ zyr@#^SofZiH5UER(a{SmyIm3po4(Js4gcb)iD zx4F*g=Zv-{D*GOnL110 z-M%{Wx95aTzpZq0YnyS?!dpb`P4zp0-RpPFtKadO`_J3^_s%x+%RcszKgTj_-{%7! z$J~ysP?>i9?mw#uv!+fJ-IjN^M?T}%U9rY^)h?f1*D}5?ivK;GJ!NCu{vEHcue0>7 zQ&UeV%w5-+QYz%RipxM~QqP06S-$C+oeLK#TK(mVTkDh~bSQ5A)2FWUYQ7jQs%u|y z|L}K~{L07DJKtVie<+x7YgF$|-_7RnwZC)ur)hh^3*q|#Kid0i-^|<@e7wvpu)q4< z&i4NMh3wABlV2?GS}tyEXLRn!36{lY6>Rst=&)@XQ zp>Y0JpQRECj8|q|Y^qs3J3lYH?D+VW$PUQWNfm+yReOgdw}?a8gyWzvg$*jUKs!?KS__)_lHm+N#Ue{o(_VN-JdvCYp5j&{ZW<>qC% z&goORmaouyeCzJA!lO&AC03bzwBhen=yMKeQdsd|&7$kvf%nXJMLzddX2@}SqBVQo z${q7OIT@5Mzcz{2Pc@U8AfN6L8hT6ek&c|vHclt6B_TUbBu&23o={ge&)NOE@#aM4 zzu$}sw;%rh@7jAO3+KIYk43k~)c>BkUh_B;e7L(}=41W3|NVEq|3A~u-C%9^!Oq;| z(v!pT|0T-nAAXjxshQLHkvHS5@g<4m*VA-w7%Y?fapbR@lc!JGx8~>DpYHW9xSnUKaB*bg)bfO>*CJwOJz?}<@jA3KINhS?3CH<2cb#|N zSKc`7hpPfG&_+2_=>G_AY=LNr4l~jB8^zm*?eH}Kh z>XqiKuW4GJ3McW-HYB#o`}Qtf6l5`zPQYP$zRK+sAOKc*seGEMNZ`~K{%_%fmy=qB*2GfJp@%?KeR2fptUeAwj_w$g^ zWK3Xbep*5%9u1|aXg>6mu%}uq^!P4gcu9R-y`;h;%=rZ_B?sQ(ezZd)E!uqrVZLY2e zeYf}N+WgwD*7Xmc-;r&}Ytqmczk9y$T!Iv_rEt zmbg}-*0xkU9Q13-!Ze^k737~pB`(u zg!j*3I3Zu}$fWT4#ciF73{yq_Ii&~ISM{nN$g*NMdj9-;|6iNKtp8_U;`Cx#aKv7j zae{FEp_5K?jWf6;X0bfh*&5ZW(Z$7d;23B6Grza-ma%o@AiJ@&beW5`p?ePNjC()@g80* z{AS-rw{_KDbptL2Ojglyx^DaHuh~>L-phFlUCNAqnsOu`c-V5llhy0ed-p3^p*cC1 zm+)mfdd1kgut*7P>7SqYzS+O%``qt~R!zS1`H7?5-!n1?e+W!mwITa?=$(?gyefYM zvJV8?d1>l2X{2fgOq#?{!O3#q)z|408Cp}%ysEOy;G0qJn|AznnDBAK5Zffl$8!$O zYS|^eK;XuaNk^tRut#J^#>A*?Yx{YWb=vgjl|LT-<`6O2@?h@&_v<(0pO-sO^tJT* z=C7MhN3XBFUCuvswNK}CX)oaepvj0IY)5@}m+$|5Vq){x&FTHcN2gl+Sf+wEq-P$xvqc1>rHbxo`2ZtRL!IwqqRPK(v8SDzRJH^m^D@AeVO2~=H%S( z#@lZ0EM4Xwxg`GH$#OGWKc1TU4HpE(6vMdxJ$k)UGbHSQcvthD4d?%rGWSdTIlk+U z`cnC@9fv09zki~=RM1KM)4wa+3aUa!7#JV2)pwl(z6(L9C*$Y7trl))mXM*t%Fr(iIVQ3)-&(C9Uo-YEG_i(nJ1nwmyz@A zLp9NOBbz%FYDRCi8IBTjM($lDqC+k2&>4^mbsc*4q=8B;?Wy69v^};;SAh zwjFb?{5ErMPhX#6&HS0(+ludI@9Xp~dw=A%g=fmG6I}`$6>kN5XmadU3<{l4C!8#D zj7vy;f|s%_e|GW`u^;=CynaRS1W8R&abw!6acH%9=Puh-%E>#r+T-~pR)<~aT&O22 z8k_j}nrzOkea(y8`!^Lc8nf3sd~cFlxyHe&(ILV0 zS7OTnuMI_Cb55gh`})Vn)aTdnJ!g?N&vo^jzw)GJ)>XE@b<@)pJMO>l zoITa;)zi;EycCx@X}9Xk`K+qud1+?iS`YP}x0SbD8&A({yn1%ghMR(#k`vC|S+15+ zxjJ~mH64B5wkYYl)1|(x+)`{mfosCN151~I6q z{x1=6NT090G{ETZuY^erQ-nT!=AXdX99XXxZqlJ2{%8LLuXQR6r#`)2{qxu@=Ow}% z(*=E%R2kUhU-vMw&l9<6tKa#E<7wuSNgAAIe+jIeswd^SH)!F@!~6gJd;j33ZT|({ z-#+JZl-{Vnsm-%LZ}(g0@Z-Zd`%<`%`^zL37Pj8K9`9dTGDCNIyi;va%dLvZmzVb$ zn;Car;L=r1+~0lb-EozT919Jd5@i%v=RFs0SG3~rIAnL~bHTX>Kkbf1Y*=6;zdlO! z<@b+GTAX5$7kT(iD;|0C8%3?&oLe=G{ayVW=XCMTrN`H4mtV}<`f+7IV*>a_j-V#_NI-n~JS-db;Co;Ed%d$L88xAv7kT!*a6a_%1c`~9Br=ho%(etj)k zs`-)k<34aBTs1E4$A#*9k5_qZtbIK#K6u`}|6lIe*8jXN|J$OyZ?1|T4?CaCqPT1$ z8=F(6*JGNEBL%Z^9`2}L7&pCUUa#zHImJ1Cng z@TybvmD5oAwd6=tcVXGtj0SBMhM&oo1R1Beq`9@NX5H`P72Cu9MC6Fn$@*)iqRg#z zzy4n>VGQ4Qd)kkxyBzxt2sV}IRe#-g&i7`Ew?M|4z&Uo6T|YN3-w*2F?*>Oj|^#yC}w8=MLO76O=*Z4ent?SzEWt;UI7(C45Uvqu4 zQ7`!WO?UQR@yLbqv_7!j*t+ijd3Oeh?XPz1KX%sM-ff-kna}4x|EyhVGspY5RDsY! zlc?;LPnXX9+cm@9d_oa}!q)gdYqn~!d~M=dEu^aVs&|Rljw6md`}jJ1`PWwI$kjIq zUR`w4{`9q(h4X6ON!EREub(p4{JuxP_nFqa=AZi{bX#xdoVpn&zpb`g6nFSb^#c>F z6%LOsRmV#RcxJJ&gC^e=wfr_Z`Y_z>M)!xQ?)eMPSJ!{P`{n$cw0*08{NX%U%x$=E zQp~QmLF?`oif%TJ<_KNoCX^_jp0wl}d)Ij(aq*uCA4RrQ$Nq5>Zh7>jbMl?i`|?z0pBQ~p=azJAX%tIzTR6;aApUq#Oj;#wJE zwx0i*RnJC=@9q}lYLwmvOBN@7!J+2YWAGJz)mtM-b6d9SaNNQv5qGR8BH_x%FZCf2zD12!B zgHR^5ZMn>kKV+G1kym(CddN?FeUPKp#B(P*dKeBYYcPce$4UNe)p(HuegbU z+lDDD9Ump7jE#Nz%{tbm*5&na=8NqQI(n2X<=N$hCMs;_`7iB?*PdkHqB(J9YufjD zlT#kfz4>>l*UoqoMg>uhlf}R1FBC5e4!RKKlg=l*z94O(cXA4I;QsEgC9_Jn_iDH- z2v}6YxT8Xm^Kr*RH{p1di0qZunEcLvuXvif{c^r;VpT2QT&v#VzSZmR`lj&kuKhlJ zeQamz3%oYp zRN+&8byZ5uZ$+q8Mu_WIKD z!1&gb`%Bg0oK~EQu`Xwwa5I_%J)u6@0WW#dHxR$_j$E4 ziMpO5$~OG!tkG`Qw)v-M`DHEQxaE>JC{jb-rfpskL8@_C&2c_^F6n-Jw!* z$_dZUboGW&o7;gw%C|ozrE(ESIij=QSfZ%N29}w%kO^O zW~}aC!;@V3s8hY-e*8aCZf)IlclORM+kO1av9l$+|0-RM%I@qGK4jp+;kft;$8=mJrDQ0aDh_7s(zx(~;l(0X`)f$|Zv^2=}JkvfmJ?~C$@eLKn ztX821EeE6~=droI(wS@Pbny>tEx-(o$)8pqiV5)QoFFdeY0>{dU@6OjBd5i`x{0ny ztjuhUTH7{Bj?eoIgXD%JTf55p#d9Jp+}A%hzQqyX$or_}@b7uaB~_C;d4oBY7l?Vt zI0m?8HGYw~<|3ivwPGtvilfM_>B}~46cf$(U^}O+^Q7lFx%tV@ze)1V$^Creim=sRCUv-NJ@n_2&Dl=R zynoMbSN_()-kJQhC=!4hijEwp-t$ewuF0USrSvw13M#ZPzGFtbAXYR)6&KNuS@Fj&rXJ zKDqx}SKq!#a+fY^EPe5Pw}yTwi$ZYHfzF(B5uR(77W|a&`4z3I@a6M9y`L7YokIGj zA9+SpsV$KU`LL_a;a7`_N|az)oXjnkE4GeT;uJsp%DEl%@Z0S2OC4exJll`8dA6DR zJeuR=*}HYgN!h3e9s)*;I$W(AxaP#^{)vB;ca2evZK=UELA@=N=hy!eo1S;)(7na& zFRm~9`Jq(}(#-+^SRFSc;aGeT+UY^I2YhMoQ&3mpW)cu_G%VL3r zBAs3ladQ?g;$6R^NPN0a{*kieeSg*K_Qc%qjyV!u3m)v=v7+$(bNj#D4E4YF*%$Bi zE6>U+Y%JgRI(ANE)WZ`qjdencG(}uM)vWZnI9I03rDe>L^ta>0$L0SYn$Ov2 zI6baVwf@h)@1GAW?oY7gZ%(K>tn;>2G)>*yAZBfHuOqjErw-raJC%m@@gIAW@6I!y zenVWXB5$fi!MWHAD%w+j%zjh2`uSPTju=LTmIH~`M6SIKW|&DeRSR&|cg;`CNVolfr;sj*#J-F81!%(%j_OWh_S56m0nCBz!+>{^{5DI%&2Yk1l!N2xx9=_N#6@ ze4Ov|%>DZ(A6TEzpP3sSnWekA^t4!3V}DojwwxKqgcEu_-+o)7RLGak>b3fev-bJx&$P1-Z({y@ zSmyP!kA>MvACK&^v2Sc`On$OUe&#Z!j+}4z7q+-?MIK@8D*gOpVc?!ge2Dowuj2i+$tEqIY*> zzAk8b&$@uAWr~6fUxB3Y^y>fIiJPk zG|Rhr;Bou;!m^#Ni!IM>%bgyuR;%i6-YeN4t}Oi^iJ+=WJUoJng_vN49wa}*bi%HOnEqa14-|H{cyOBRz zP|!=W<%~P~6RAlDc_&FO(z)S1C8E{$`M2Qrep8sI&n%Nt6!fqWO;{wi?@9(^;T8AH z)=#rlu6Kaci5x^r{6W!zdowU3Uj zW@wrGz;jBW#N!Et^6TGS=G`5!bY}Dn_gQ+&#ETD~)9foTaZV2YvPdq7E6cI<$h61y z;^vK0^KGlwV zl;pIM0o?fR=Ggyb@Bih|k#UI`J5J91UNcX>=B1-sdRo9#t-l6KUWMP-l-PE$YVt)l z;U4D{R>Pp+lG96k%59b2|Jhy27M)W2>$82A^StFB%j%BbU#t1)=&y)g3Tl<)vZJsw*M}^Ix8~`hS$8@dVHR zB~E-j3~Pi0-tD>nWA)*xv(BCxQ+7l=ykx@fVAWm1)y^d1rYe!zIhXNm@>~|}kENnA zGj{YYm+{Pyl$1>_a-JM(y?yfz6aNRlE5a^w|E>_V4`z&*pfHg`QSq~spwp)ys}E{^ z0znPeJUBgXBi|2Si^cgOkoKR@FO&X!*Pz-|Bc za`@ky?Djt%ehSrvuc*szI{){q`n#Dc`Tur4|IOiFc>gee(TgL7DMy{zL$$tI1q)BE z@JdW}UL3XfJ~yY${3BgTT<4>jH;ZXr7L3xAS#)A`{Qj-=^L#Id-wJtn?dac~`rZN} zEDgI2CI)CQJh|l*!@=m4G%18@j{Bd?^Zt_=rW}dr4$+$XU;L&1+b;RpC+n}z^-p1G zkm&dmz1pr~B}>DD*1eZhy<&J+8crt}7i$G3wtDzpX>rZ$^yE2brNY&D$dX%$jpb^> zl)t~f7r)NEo)pu*u&TkBtt+d&-S8m_( z38wOg>`qnv2r4YNFXuC<;N{ZkpH@ZZKVSdu2hXls3IVeg1bJScI*DP2hh)PZk)oAF zt~agU=%wxL zy!xv^SN)n-%>I}k*IKQ<{Jg&Zl3LB#eK`rvbI<=;-t_3;&-yN=Sg+0rQb)3m--~Q4 zPV$|T`0vk};?_lpSFIhCJktMv{^8)^d-l!slzRQs+wThL@6KIv`0&CG)gz~pmM~6S zAd`{((PP58ekGS~mf0;DGIbY@bV+^Ibu?f3@#t@P_e#?x?-$m%CJEd4Z``uOLE@W$ zQLjkJlkc0KWM4cUG|zvM%9ZxE&ck*WPbsm;B`Y6pNj%~I=ZXL3$D49ze2e6J|5IrF z&Yw|XV&?^q8=m4WShQ!k{p`+mMVU-v}+&dtfkU+Cx;KA8D@#=JR?PHYr*2|V;>+S-`Pw_j_1_y7Iz zdEL?YUuWjp|2cKN{`LH4^ZonyEZ=G}oj)$o{QPH6uiu8!%VCdhBs^+~TIzSFKj`zG zH9Ja=G4zEzd}kn`!`+n*Sfi-SFegTpX-l~0)8D7G`^2LZmmGVr;hNGCzsHPA8K&D6PnBfWn!2l- zd!ic?mnu6~&(%lqyBxWmoZc&>|3$QV-{+|sg@vMlVKGIOB)en*y zJyoLEj~o-&$+Fa>iL1-3(eBv!e^+kLkb0%GNY3obhHHgCjyN7$eoR7E&hZq(>?KQL zSKT$!|9La|QmM+T?;l==#$0i;IQr?NsGpq8!PxnGn%`Yw;ywR()9bjyA2WLFe_cqw zvF-KL5UJ!IKJ%`vC%Gcm=>NQ%xB0rN=#<-yrB7DJ+I#(39J70-;A$nMaHa^wLcQMU zKF3*P&Z%VRaz5sGcwoBRce@Jty+$a0 zyM{Y>H1Sb($L;bsv;C<_Gt}kw{cpebd3V0O`<5^Ia=V`!>&V`0zHfWHv(|q>?)<3G zjhi+dx%spB&l~>#AFTiV-T(7w^83pBzvX3ZuG^N^Jn~E0{pL(`vJ%&#O7>moQ};U9Z`6Kxg{d*UMw`Ul(1hH1nP<8-3-C z{)gs9-gUxyb92OJ9*K)^Imhzk2m_yDnEHdu#WN1M+SJx)DNQ@4=z8np`QBdwD}(n7 z8+E_9?D2GI>z)fY=j`{{%ja?{x13{-!ig)4LLq4_Gc12CH~uHJ(8TNY8S#YDWj8FR zuj0G*XX^a-Q-63Boc|oS=*ZEYJG+&?KKJLo^X8Tqlcwo0t2w^crC!VUHBEZZ;{1}M z!_dw6l0<6Rnx^yt&n1B2?mGs>%Ym$|hcaLe$&%=!C8)?^h%{#J$_ z24&f>Wh$Mgt{tlJjf)NT`tvzvx6)4Orq5JZ+`rtc#M_)^aChZeQ}S zbD#C}#;lEfsny3exqk~-G;O0wmrT}EwL(S*M~00PBRY;<;w@p$C^4^cT)#Cu^{JHL z`@KJvl{T-EV({cNSuIr|?>EmWHPtoEJ#}Bj_wx6DW4GnsKDkbI_m4B_cE|7Ct^V;s z|8Mbs_OENQ|43hX{ITMm%J;gb{&Uw}6}bFartXj7lAGmJ1^A-f8)f}GIU-ynX z{^#Q7@iuP9)#lh#_Dpwy4EMhOq1eqUJt^T+#vb0ff+wZ@x;_BV& z_Q%%#pDJmj{yCxMXieHm(V)yN*IKNiLM0mlc2@5{RsAn@{eJt|5);zZtJg9=d@b?! zqA)|t`}bcf{%OB;3QoH0DtXM4riEF+5zbJNdV`|+e%-*CfE zDZ4NKtT~$+rWr~sH1G@V@hX`%ZGuZlkZM5$=2=k zjmWw(bN>9)f(7&0-|gk^d}?0z*#6UG`M;9&4?k2e9smV*SIx)rf4$cAk2JoX^wycX zx5XzoMZ>c6n~Cyl^9|Y8&GhElwRTG9NJ*z1epaZZtbC{HxU7s#&5V~(hki_xmXN%C z@?-LI4;~XK-n?B;Wlek!?d7*Qb6wuvW8;ebd0GYm?NR!(JPgC9jxP ztiEk~;3++WZ|_wYN?vkug>x`Cc`ONgp>Tq^YU?Xej;o~~uPaRF6$o7Q{LB8LGxH}T z`U`xhu(==2$dKw0%ptizL;T0n`PJ%+nR6#FMl|yth-~z7_Fxp6pIHKLn$IHVWO+j4Kg{`E&b z{NR|{SZDV~`G3Ryo&V$Vs*n4MC>_0)D;)8(!0Yo5^Z5!qT{ge(6n53lzPa%;!&%jc zh>W6dhg?r3JOBBY{;#F+BdbHCiu4ev8*^J<@v}dO2)r8J3VS~+pX|^#>Sg1jB_8TbhzxvWOT^5D$Fot zbArqZAq!7!!Va+>-%P&{`##64{@(9~HTNAdm$IJ~P1_pQaJ1ll?RO!Kv#ZnnHkY5*J7n-g zyzb%ipYH!3+kY#ZmLB`amcd4@|9Sq&=K3G6-(9%A&*$+YO|f(Hmu?P7-*D^riwgU| z_yg1S&ffXC{hi7S?i*X{)vs=}V>9P9nto-$f)3d^Hs84V@BHRf^Y;&$zuK_2a1!(O zJ+qaM`zf4G{r5xP{(RHxg2KXSw!6PS66!YV>rIvxOl%Nj%HA9orG9N&f6Y#2bNRDR zH_c0!`JJu%UATH!>1A*AO||O__TG;>xoL%>U}fa~OH#5d8fzy8H3wPj4vIUWK6&?= z?boBaFF8Kr-Jn!_nfKrB$Ny~P&VQFvmpK=?W@^i-F4J5$H`CkOdKWNv8)zP4^$=7_ zxo19q_O?i&HKiUZ_1|lzIe4)Ot??E(q-fkKH0P|1i`U;Jod=H?s%_NqiFWQy6>jop1wLu6->m}XLo$ER?81Em9;jRG^-8`J0RbHB?~ z9Hm*kmf>9LWBuE6#iF#IJ%6_GSi#Fnu59e=KWFdXIsNCYMe>|4AW1pq?4D0AnC-2u z%&dEPWHNv7?uxEoXIxthL%c-G-rjUg-En|-d+hPI?{~KzO5hada8U_Vlz3WjYf{od zjU%>@`Xt*M)LH#qXcdZxMT|AnTrzY7#lobt-{ zUYR?qR%d`v_NRSk_pmOgeqF_A5zq7dWa3$`AU@?3G6WBLWpXBEeLcXzr-$8;^2 zFth%Yh|8>>3>J;2d)aPFpvw$C*tg&ez?Eo+v`d+ruCwlMIit!q5?$L4sS z+|tW2N+Esof2@>Wd^xl5*B4f*s;Om777X|9G)!(X*TG?Rj?u zO!oh4{r`!7_VYM}63*S*a+a=-Ni3-7*!Pg}*!DibFW&dQ?qfc(shNj$t%YM|>qgDF zOFB7ZS`{3QOuP6=V)OFnGwjTLlk=wiOzVE!?Q8e->F!KP*H0pw?9` z&)W$-t{J_;0vc2Mr$s$yYB;UUylXT2omUfX?|fsZ{XO)iNn=j({j-mxg9(eq*<~=Ke($60%_z3m$|7-sU*m+EAA~mAT>Jd~pHh&H=e0BynM;uZPu98$X^TX) zYOK5%R`Bjg=DGboqeMZ*Ok`zWxmZ;{lujVcB zC_I#~AV2b%dS1P^R}_hGkO|MAB^#cayo$IjpVe{;P_^{boh0llZcxNAC#`pz=Bu`5~o z?Uutgo*8x>R<--`-QMB&wu_Am_HA+4Dd8|nY0cvOciMYoJr^II*nGbDd;Gnl;qUiN z->iNWzO4rjydVI$K@^0cl@7ryI^g> z*K(uV8J3P_PG>CFM66RWIF_=QX{rm`ECr4WiPzK?Tq*jnzexG|-@DrTzgO7YKkU1L zd9CT$Fj?7%CMOqbzKU-UWP63huLh7M{3!SNUJ(pvMMg z`OF*GJiAm>eQ$}ZN)1}N<5`=u*IG{AD#N1KS?EL=8ZGw=2~Z(&CZ#3Fc;*vz~B{GosS8QafW&&QO1dvRS-FXGl)H3iLS%4WVfDOq{b zy=iC;!*|GF=sodWGoKrdtHm20&33e`c zCz5mb*w3S8YolhL$lTW7yD9lH%Y>>JBHoJ6gHPeeV?O|R^LNu0s&e?b7 zd4Kxss++m|0$Q)Xi$<~uPTa~`;>zBC{PSLQzoac<8LA$WTUJ~-f9H+K^|x~sGW8!m z;#+9eA)v!2EuA8e)a%IAS#0*draSa?*94&@F>&ShCamc_z%e~ssq}U;3tzXfrqzWd zb7z=%W|~Rm+}t-e`1!dFwa@cr$sYc3!XQ1armfRA`O2+n+`*sEY?lpO*%X$`^z;RT zp^)fQ&t6BXb}^;*6F$8@UzNI){lM#3^(|AbOq(`i&YYyAB;n@6&K!ysm7i2vgBs(1 zPW}J)`nz4PwfAuyc+ASsfBbRe`|caJFa+HZoA?%g>40k=(oJvC%5h{pHybGH?I7x%B9XVC0o*Eo?ff@yyMr+@M)XZ z<*^FH{?`8fOIjx^XTzGU5fjtnKl$tnkqS{`ShFX-Bgd#=Lge}VCw~7mp5HL_@xNW7 zBA=r3UVth_u5LaNFOCAXmIYTg?odgrd&VT~#xAkKE#k6UE2CD=1gDAHlBaMvYVC4% zI_b)=anFVWUH9Ia_kA#OywLT|gt60E>9g}HCyzTZN;=aowsv@E`pvUFTK(>iozQcO z!at&JZEPA@?mHt=5)!5etDn1Mz&eLZV>(lhx5v_BD?4`Na)feZIxP^n#?26JnmNnB z%*so`RmSd*%ed!Qqu!&;;CH=2w#Q&ZDfAZ}7+G!gZ zk1qR|$j0t|V`IMjE&+p$*-f(7-zTShwpg5;9Pv`&l8Ke?8gEC3H$faC8#gRqE{Sjp ze)hfYv9Qd~XN6M1y0f}-+m5@t-b8+{KGAD`F6G4qzrYZ#Ph~ar#J1e|{;oWU62B9@) zUaf37v;8Pn+}t{M=Tg>?C7nuV|J>2J9$#;KHORhQuDXfY zT>e34dYoDyYg3V+v`B#!i?YTEB}O4lo6S#UM)vi*(o({!UP%KzDj z>&L5fCU48Vee4*obj7oq>3bL+fNIjmAJ>G-{kU8I^xfY#@<#RVEc7xBZA?5K>FkpD zpltt5P$+Q)5C0@D2g{)87yP0-kP>OFeeX%+PQbWAEaKOA3lhXWyI@@zCJX)7fzo^AoQ}F%+y9 zWT|p;IR7APC+mU4Psg7|7p$y$Jat#&PA=v{1}^Q4jslCCIaVIldAxoa@83IJI{RMF zGA?DVotpmZvsU9e28EU{2lpS}?8m~;?#gjN>wrXe$Sf1z7bUkeSf?tPh(DKnBfTU- zYtxo34kB$Hk}2~Gw^#MVZI^vuz50V-qUmw!H4s^18SC ze!u^$)NmZ!irIXx;_E^Cg3sykj~;bC*73b&_;$w6R?Bbqx3t%qzgsA_{e`rY+SbT` zn?AF*_%wT{TijOhwVvWFc#dNUk7w}FM?RB}%iEpsJ}00{TBC>=xY7&#?wr-(|b2Z z@jZFF%E4Ybaz~6LgW3Iz^(UU4K665!$9W6iC!xkYRtToExUB68}@a`G4fe z{b!i}uVW}kUAA`j$8UNua_6Hs8N4`_Oo*7=xh!yDhcKVIOz`CCl5f`s@i|%bvK=*0 z&=TEvPT}Gb&mOKY?*%hI+?dPq=`CwRPHiDa5X;Q@4KIB47#GH**<{E%X4dAt529V|ttwm)NbfYSQi9Ceo&QS6Pp~a`Vzl*m0}fP}b|{ge%()%u2m4 zbUw7bAmLGqlf*?oAvU&l58qRF{@6VA>fD@uPN3Xs$|9xvHLqra3LkLa{hBa;?X&pZ zt=#Gc-k;yx-Z%NyA(@q)JHH)!z4O_zy*#-x&eKnwP*5?|EWD$ltGC zLGE`pg&eB$ld(L!)Od2wx86^OjL#Q-{Ng&NQ!`9k#VWzEEhfwQoQ_H5`MLM~>o?91 z(Ar?AHDv+oT#J{i>rOxY5*Ze|^XrC|=aO{~i{{&J|MhR4V#2fN2VuPoZ?^Grtl8?J zY0Um#!QuI0zO`E;ckYilcZYjr)jS3x={tL6emtMb806(r{$~D!)m8u3bBKa+^O{(W ztI;=m3N2oHd|I$CS!j)C;arK!Ig4|+C!0u0$UdBz&bM&sg8U4F-!jkRcK!c< zS)2XJvyBv7*&7`#roU!0l4kEXEIC<{#jEp5;5I$Z7h9rQyo#T^2+ZoW`rFK$GwX)W z0-dcdKWFG#l)X~wU21mKsnJPf0aNQn&WP^K3Mn6CIYj4u{rT=}ONAm!kfzXNAyKDi z&!5knKR-FKuJPYLySDbWA2;fMo%gT%ba}qj%k#6KnSih2-@p4so1e!m*&pKMeeywo zJ*RBjG4{Zv9oBXq6nnHLEm&bXT|jSP(3Kg#l$6Xg#2@-}6bpHJq=qafi!BfuvL~C#N~bM7mu= zv^dr{L|-_!aL!xN|K*#*v)iLp8A_V}Pkm^rw_0FNs(uz@72otx!XU#I_Z2xY6j?E;2Pd>tzBf+`C(IteW2bQDmyV4-}ViHBR`IR_J`UTV^7F}8NI4VkCSo;_Qp zF`fI$>+UPrpJVnHH)RDDeEMT4W+hv)LbJ`)E0I;zi6^P|dcpbGf(%n8m`L%qOtE0> z-pcw&B{45=nnU)Mu#nTDOCBu$|7%}$tthNWx@Pn9=>0EU-y*m!X&i~J~NZF$L z6HjgJ-#7d7>_xiXSQaqfulXoaJNvuwRlb}1zE^QIvLttubOcPeG3AP6*HNWHYc&N2 zi;2_E>07_D775$4jlKRYE5r6Vf6t%(_qqK`T(ufQ%F^GBe1#3y7@g7&^XlGYVOVPF zl)dGe$JCwww3kk_I`Nlb+EJ#N{mfgmzx~m!{x_YK;p43O=HrherMGZ(SaU{Ytl8Xf z*2Zs(Qm5|J1^vRu;~vCrf3xiJy!6-Ka=(OX%{Zd4WKoEg-u53JTa#)9@7rzGJHXj3 z!smGDwiLGtN2{|yn^d-r+S%y!Dcjy7KhBK(;ergb?jbeObE zF`fE`c|cwm#9X|GPM^`sjx{i~EazUM+re zZ}VK{?RU?d_`$JQ`0?GMNd6PgueAmrk3T+&5CX!(SwgPqg; z1y?n^JgFHpdBOvW%F0=dxxaV(-sn6h)*!^)d~@buF|NjAJ4KWk6g@Vt5LGn2)*yD% z=xxgZui4iBpYQv1sMf!^{`;=aTVnOxQbIYMIF_7X&VMdoR^O{#7w&QKb+u`Oh>#?U zhN#jM29cl?bC+#`$JfsIJoo&+bKCAJoj&)p_Mh0y*<5K(jRHcdsbV4>Q&svdV6E|*u}fs4-S7KLwk{$4e5KCB!u zd+T3?12;^5pRu0I`gsEP#Joz)S7Dqx_dJi!P&l!VYwG%Ru{mein7t;hk5$U%onR{+ z+)}K-6Q=UQU`c&N%SPYXH}~YSxAV!SRpiW(=D&09%^9V~(&ZQ5Y|#u+nY*R!vQe~a zEQgR@uDPZz$6C`P0HU@sUed+x*&ftYL?icBk+Bxa;qg zG&RfOM=HnTEzX^Js@b=++)R^NCSpk=(-cQQ-5PH)v*4W5-@zd4&G zymFA=|KaogAKCR^m+DstLOXUp<33-xUU%L0+x7Z`6SyQLB@&PS%ii(qS@z9+)!O>| zi<)Y$$2D_xmrUaO`b_8s-`Zm`M;!#V&ze%&vVk$IMMcwN@y>!rJm+oyNUXY<`25*g z6}OL9IycMgGC02G-Sa0tvp+pZYjZPOe4)fjb`FzdR)nC!`qO{UN`JYO_I>jAAG<|W z|K07~cKYt$lbZ`ppK29Ylzwk{=!Dt7pQiqadU{@cDt>YV9WvkdQ6({A*)8*~Qq~0%Dt9InF{Y$`SRbaLs=b`G z#QoqS)&|pKQQji1DxN;O?=IWFf4+Ep%|wl^8M9_NdAY6(acZBX(pmZ9A^RSN2a)XB z>p=thXDxmo5{}tj$|K~wwVp$e_08UwQPXba-uvG8y*aEThv!mK4!e)f5|hlF7wh>H zI0BrKE=>u@oK!V=@p+r`tC#CDq@IgeQ}`!oZh!qRJvrN=w&37Wv1G@HRY}FlyZ;?z zTyts5snu?LVETQhx!ts_V%fRxXN1e`{#}##PeQ#a`t6?U<*w7}U6<7_ zjZob8*z$o~fBM-b^-Xd$+MD*(tM3YRK7FuMBIDLZMZv!+4=vjL&P`qw$o9MKrM_6^ zx$7Bcu1dUp?XJ)%E~aonM9cM(#koF}108F!SN~?YuY2D%TlXAS&h`6O(v+EZKUrtcb@|La6_T?vS~vsr95|XMXgZZ$KdOCw{Zyugule)73VC>X zF28&*%DcYa{%qRh=={B+nyS|2?^14W%jMzY6FP3VdGqFfEtS_;_c0xK{Bh6P9k2QS zrC;Aw($rfUYSx?M*3SCvP6_XEzr8LSW0qYBcbu+dwas<+-j*$#N2cw#xlmwAhMDl3 zOGiAtBH3jue~8@Q@!n3&EO)8qsy}CgkN>=stY2Jot*G!~fL4E??zEdbE9YEnlrF+Sh) zuTC>{-rwna?f&0MQ8?ZA^jY2B<8g`tUpD=}$^B6tl$h7b9eOHR-+so|IW#UTzx4>G zr_gbcLmh6bo$ntoNZ0cz{&AuB%gHJGJd$P3oI6|a>xd_x{cn@)^&e_gJlR!M^vcu9 znR4vZ0&YF+YIt|0VZXH!{}t2N*@6#Uma%XYTuPj}Bt-90xbCHO*Cpg-m)`BOEG%jZ zs_bzPo#3TV!tT-|%+-F#a%Q;hliL4xv_JiiZQfSyB_Z$ZlYR5&tS#>IS~}_H zX1#j=!3P?98D4CfF zOH?NvKIQs$_x4_~7KM_1VLRX4S7z~Gz9h)PSU4+bZR+`VZ+X5%cBFHpwl9fX92$RQ zS?-d8nJ2XuJ@^0cE4u9U_7AT)l6f5D-lQvM&MlterP_5=DNtnLltpptlh;0d*eKF zOY>izo?fNaBa*vi%(xp%6mrE}tfxwU`>19UI+sN}C3}L8!;+s%?5@9lZtk|=LP(eB z8qb-tcX~ude+i?ZJ0C1LGAT(PPx{fKHy+qDD?kK{Qc_w^-LeuXvW!nsj$hf)RWuyJ^bw< z)^&F`b_Q6*Sr&G=Z9bcn-C1=fC1HiUDA%u5t}ULNa}I3fZPdB2qCCUYS|Z(0?`+d4 zzAdjgcUc^2uX~ej`RkRC`}wN^M+Hk3dI_+YNSnH~vujLSv_>^V%gXGi#q897mnAM| z31qhJ@%m-CfAYOw*H??YV11-_x?t^}dlHv_?|aQV;qB_rzYBJ}`+V|h?LQ-P#y_|B zi1i=e+-J6sZ%L?z_QboV{_GK2@O|%@s+Z2HoUP80-Vv*ex}Uk6{qW%6bImXP8wyXC z-79>Z8|k{g%V4GJqD@^)?qWL6S9^&$-hS_;*iamKet$9BbDgjyH+AiIo%$u|z$((6 zx{A3rA~^lj)8rs)Uk)zW_G{;6`zzPo!`>H5S( ziA`I!v`m@gwD7>2H#$#?X8J8Z{N>9Q`^+k;xe( zg}cs9dH1|KzPjrq>%nKa)t0|cS(d%M<0f%D=l+(?tesAiR7_eNUG6&Ee^$FgV$onfo5h$Z7JBTOz%@;F=Iu z=j#%UcEu>~Q->E@NL_I~a^&4#6TSHh*4H;AlyC%ONH(6F^R=~fXKBZY$7$_~r>~qc zkL1x-RggK?wPsz|(@RYgIg|sH&dj@hj1Dz0jOBMte^2-c9vOnOZzvmRRxd_Xn-M z%6WJ~*49&h{@6G>GjEB~t-oZG-Ive!p~5CVQ|{;I`$e^BU0qqtEhdJ0{2zh|zzesgoVd}h*xK$dGyUN;|kIN@9xQ^T1j5npveaZh zvoN43s&=Bo$vcAa3NZ~^6n6-8pNnGNacIt~RY$*>UCe9!y zsV)h+^wMHYAd6$eM$We;%R=-vq(63xx*WV^7U$7@jCuRMioN@>@B60IB;!UdPVS?k zjT=v>@!Yt#eP+jxyA^*gHFyXdddBvbafin5E*90QM-ExMVO(x*ZV?f4mV|5(X;QQQ z^8H=HuTQIEEXwB@aClsv;@}zemTj*@ed-0xoO_oZT;Fb5&mO&dmD5^nwk@}Fv$je- zEt)xTqTsE!X4Caz7v0VKJ^5K=aSe9^D5x*Zv-@1&dMqYt#`2q4#&-J}&)(iX$>l*x zmv__&i)AJTEuOlK9TE~85fLjEaw!(>ZrhmaGHHP;t2WE*Z+p7;SNsq-FSFla?dB8H zbcLssIP6?_P-|Px%{EiMwM@UXTzd+CTG-5-`PXt|%%}RPD!F0P|LmXkCSBX;Z_>~5 zUGM%maRg+A>f1Yg&HcCgF^jF-`CnoTYYZ$B3pIF* z?$1h_xT}CkQ}kNItG9fC0!9HnGiL4ah|1qkSTo_+BUL{6N;%vAM$3$kH?Dnue3_w< zPU7VhOP6g=7XSZbdg$c)Nxx<_ZTKnd(Q-91+VTAj&K)eXt(uZLOxTtv@R)Lc{>;*< zE&}H$(1wkt>HHkUQnq zsufLVc%GFs2sH&6o|?0$bgTxg?en=b zv8TT$utS8qS8~z53FZ5r^NBEKdN0UnT$1Z?S;VDF#r462lx5+UR@N;3eJ!eOcO0WO z?++fn=GT@g(azWOXWQGAPP=mR>HUeP4>^_>Z#BB`KCf}^>9m6NBFukY*!MrziZ-rN zeZ!{C%hsx@U?7w$o4BAr%17kV!Jzm#>92oCJYM|xOE|lRxORzD>AQ;WjL*{a8(${) zHXWYuWaf99U*}JM{d|o{J+LzM!0g(;d6CSnyUu*^wC8eYmtzX~2zUJw>-G63&1}&AVoc(dBfBhxdJ^xqB z@BZ{peE-jgi}UBc=UXpR<#fC|c!r;_`hisqr#^7_xxZM^P#mBcdO^#DbA#Hldof8> zWo=is98?R@5>?Z``s2&|+Nsmeng87X@4kO=)xuUSvCgImn{*0(esP`lEc?x^jndhh z$}TsaQux}+_B5$AAhk6tEMktw#zSA`%-I~fc!_y;*4$5PH@(s3WvXVZvtxVt)t5P3 ze)I3m*SR0O6+QoX?J>bBn|Z5?rLzJfSeUvC%3RH4mu#Nl$G*!>IY>Z6S?{b*;lEF* ze6n@(_7!zze}DJv&C16;yrGeE=DK)0uD+_EBerSH&J(6=F8O;!`C9(!t=;R_6#Vm} z?y035yZZj}X*V92ILqu7=N!h^x5>ZX#cF82c&+_m-uHVghTSf#orau;cHMJfVdPkS z;ALF5OSw^lIODY_hJwAXX9UfZ_noy&#k0vUQpkbBF+N`Y^XJb;3eOxmbjbcg`nk>1 zeuy#jKi@CpZ~x;!|Gi(0{BG4|BeIke=e&3Jpcbw{D)@wUl;1DAG6#2II7%lS9F;7{oc)wn1w=VyA^zfUTrhXPdNmX@?x9@%R%L$ywBBjdm_oz^zvg)h%&Z}lDZM96XRPj*A zz0x@+<=-6}e!DL^{_#15=acyrP6_6H4BfJ|qwLVNgRyruymfOk>v_0E#aGA4OX@A# z)kdwgY1W&gM1?#IFHQKmC~MByp0(3>m#pjSJvY_y`znXJpA$J8^}G9nPV@b1aQ-&u z_uOI*&2ahmT;laR51sMnXcbw#`Ct9@xUP3C1uxAn$eo{+Fwr99+Whx2k(RYh!U;>5 zR9rSt-Qx#>zI(1 z))ut&$cYmifg*)3FR9i)vH{Ig-Rqjt{NTj%`rq5{o_wtCVWs=;>-m3cx}{6?_7%-K zddo(=fBu8}f6w?^-Qs=pOzHFF=QsCdg3bW^bm^e`|5w@dKMMbS;;*0X|9^MSgUFHscb9+C#EXSd&sbRMc9_2JD zVY$k+?Xr@gFGG*7L18=7tXoOV)$f0@t)H|0^H%lvrHfUUnQQ7+qGcQ#Kyo4 zlLA^I9_1vfAFyzqq~c=5B%a*L!lQToMnq!ZU9N^wKl6b1tiQCGN**#O1_Z79HB*3T zqV#Xe<3*V%dC`Ao1=i|(f9tI%5T)pcsQyKIFqXk}<5yT#11z|Ns7PDxRBaVxtOqO^#j2F^i0eNvWuq zupwf>-MmRE8_k)%fC{{ww<_OlRPXZK^I`S#^K*Yqjotn2Pm-d>pR;GKoQdVP|8l_8 z(^zc+mpb#TwN`W8<~DkD-aL6a#EY?U+m0=ctL-|c@vghQdHPQ8=Nz+4=hgoU)GD0) z{C(Y|&;9kKIviIf&;Ow=|7h3j{3VjxGmhnQJr&x$es9~O2MSXkPK;lZ^Y_C0eYyYn z{B6Q==Gfh;d6gaSVwM(A)x$1V*C7AvL_246SGr4maSdl(NcQDo+7kF#F%)7qUbjh_vbB;bW-r6c~;?C80 zubI7Tgt%UBS{S-B?n1Gjn38t;R;DE)9&;^!r_X+zqkL8Rd;5#rb+O+LRULmH%2%Q- zv~RNS?(=`DZL&{yZ9U&%^8ZfS%%3`o=k0u9%^1~s!$fUM-@>3y?sbRnA$7@-xX&Eo7E3Z$}`L{{M1wGynDJYCCIwhU(3=_-M_{%xp3F)8BHLg!{YiA6@?M zaJ_=B?rb;q8MF2rdFDIocHX|Z>il*GF9gVc-mD)OJ>yC2`#rsrRvAu?OR4*1^Y>^= z>r&0Uy_wSe^^XJH+}te8%iEsw+j%Tq?{)tGL$a`R=X1TsPG?KE-~DIpzW>|*KYd!E zEBW$%{XP4;{>Srse)W^Z`DJtT_I;4>7WbcYC2i;POP=>W?kiu!rFeCr-J+t7qlt4J z*e5Amu~3;?w(J;tMvQu6#K-XXstGG24_}`jt<~iUHeu0eYD-S7%`;JRA`+I8nzwXQ3-E(aJ=sf4M{a*-Pn9~_s()p0K6<$k_A z!|YjRzU~E^xaWJf^Im$Vb1__Z(z4KBs}$dUOSSv-@NUe$nwh@Q+ZQywjmXZ_(cP3^ zFMqrI&BGU;^*=Pq|KljMR+Q1Yuxh(SF@E56_>+x zif&imJ9*=)H76U_mYm5ut~yzD@*O@?XveF0LrAI2#Y_114394#pU?kqlz3lH?)NiC zJ%+V@?5a-R{BjaLebEllR%L7d6`5ta@he;46koxL-4Es*E^HNdkXz#&mwoMd-0~ye zPL(x1{rB(c;@@-5x-*v5GOV*`o6cY}Z#&ywM}`yHr^gp@6 zbC+-k_!-w`wt0wEJUx;*ul`l#q%tQ(oe9S{J$E}xuukz(yneTYSL;G(8`i{sM7n*M(E_>a``1wr~LfC?+3&A_!()JB3uNFf>vFUce{{N@Y&Z~ zFxovt@8O&SQUdSZUTxO9!*$R(Vo71-YiGG5-@U#Szh}_=WO*`ZjS%0od@b##;X+ef zPSkvf|F^Z;rt^*LVNb@pm+GHr)id-TFaDZv^i@Orw_kUs|6a8_Elce9Wqod#Fl+}}U{ipmr(Rl9G||4$xIm}h!8oT0+zep|Zy-(yD_zt`Po zeJixBcZ&VbOX>FS#M1SO?}xun$}5^>eZQXl=|iSX_Y2ROR&QA6ywSpAj)|nayu+gn z9@DZ)fBj_{gwCeg&n(8q##^l0e3Pv!UR`X?xwEacTi@=C_Wd8e z+h6~#d#PJ`@aL!be`nq{kT4ALs{EB5zwCm~3}epd{5!{ATr>0$5I!!;B&yizrd-&0 z@TS-~4tEjf`vJrT2iv;4kuH|#a580~ew|K5MG z!lD28=6@6YHtnjp_w5LSg7oEC{o=lB7Y68EocCtJG0wu}XD=>3Uwqc3RYBxV!R4h($)Fz{+(XG)u6KL=F8xm+eQc8zQ1$+oNaPU@m-7G z>+g5)%yLO}&w2eqqu9V-M!|X2-^EvEa|Vffu61w~^vj$u>k8ML02NIYO_A=@MM;bc zMZ+SjJZG0(QYthwVp?t0)Azmj@!IR3)_uQw$lCsgU)h}v&4=}6AN`8XOIUdIV3*SF zvbfWKp6EP}tLj@}eB8PI-|GCCAzvqdzyF^$ydf%Yd^87)=3 zrL*<5hOUP-Tc)X=>6Y2Pll*uN3Ek%F?v=W1>^rOQM2UOx`Q-COJ0*ixZ-1%(^=54=L7P9Z%wJVnHD^#^E_?$l*l)q&~$ghg?vgHAq(**QVOKLh!zC2y?cVoUn ziCI-hcJCy|v|rn6wp_Pa9dUVeQr?0ro**wPZsQ|oCGAR{zwO}(n=x;u%c}|L{PzC4 z=d%7WHa5N@ZJLv1beZM+u47T%*Jklbn;94x9s2XfW^2^h`4Z=6JBLht^Zn*-$v&B{(rOjv%<-Bug|8$;fEi6GDH+zPt@O-H#6Ww*$LxGwzCWmUpnC&IZ3lu z%u7i#P)Sixg>}*maVB09slD%Gt3$)|^zZNP{$DZk>eb$3PDw9W-*@kr8agv_=bf6$ z`{s(ZUqpS^4ZhV%jlx%knp_axuTSoQusrz6t-Y|Nou;|39VsW33EBe$EYM ze`bF>!t(S*clqSJq=sI<=GyW*XRe%4$-S<4K`@9VV=d>@V=0ni+>Q=f2Y2&vPI}t+ z=+8~pe}CWqw~Up1IPr>?VP5Xkm9oK8UK=vRCUbk3C+j@kdzYxR3C z{rgj;_wwQXC;wyeu0H=Q{cTUtSBHJS>mwgb`EPycd)>}C4IlQr*|;rAOiUx-!7sww}?e7oN(keP>HPe>>kk4+;00H_7u=e1qlwoO50hdwAvXe;3Z*{k-{l?uidu z?SI+Ue|UNPhOzOXNwG?NqS?}`d-{DhJnyqrxvRD`tFvs@qrIwMxE==wO;&R53}Bip zxyi@bq@~yE&n5l;-nZoDlr}ibXvux7%ro^g4dnQD@&oH@mV{fsw==LKgCm-MWeqH~j@3GYvuXgObyW1i6YwG?> zpJSch-%Gn;qIf~oK=WKwRIjMr*Usvnf5hdN*##`U=qDj3wLFOLX2#mhd$xHwIEYN^ zI{e&9fgvnB+_LhM1v4|VOQDC%@uNpXcI-NyYRJmU71Oo<$JzML-}n4hOWA$!(n4n) zIqQ~_Vn46+-#h-p<;?DTTf096Og;62K}m#V<11DTAyw6LX&y5bYq}$Cr=@&Ek#KidEP@z;Ibbysa_!54HeH+ zpXtw0kkARfWp?QA|EuX4E7bzmd|c_u#p~2qy0dvtLB)K<-JGi8pKkvD{5it>kp1ta z@ylK+awxUEE?u=y<+YiloLovy4pXM+DG!4MRqsB|Jn#DcUZ;{z(5bT*#kamu|N8f} zp4xM9@1IkHrtf5qshP9(NMjHqQ>o@lhx_qA7i~N6w7=5wX21f6#@C%JFOt2F>BXG4 zHL*V~m26S)fpw9F(~h11ue@8k*`M>CxA|>*uloGmomb;S4oNgm*?DyShX+gFi{E+t zq2l#AMt1S`346mdRyww6$SSM8xozs_xot&A(ze{$$=}cI_3=GtWNqy&;d*5ivqkWl z^6OTg&dNK^TDE5G+Kn4FI80Ij#oQ_lEe0-;8%^i`y^jB)9$(QV+^@H};)#awGLnN=l`E$|MAl0J2uun*?*agjhXNKemGxkop;nr zD=$aQu8jOA=Q!e?J-f8>e8*#nsdp6;-t+aJxi`OCA7vYeY2h?>1z(9AG9RYNr9q2*JtSr1>mZRO<8 zXbpOBStMWQ=_`g6LY;4otRtV^eB3=H`?iF{{AIJt6xJ-9a%7us)VJg=C&{N#t}@44 z5>Nd5`Z>@W(^f|1IQiORGCRztr0|4re@(mppFjRa+t<3)=153pOfXu1CWz~4P5+GhH5LvE zwlT)q?)@^Mi5(Z1HtBV9clVsVvg7+X+c~jzhqAJn^|d^7J$nyUdulNEY@Yp=k9A$F zkDp&sZrk^Ho72xvTBgZw|K~#@m-RQMaL%Kv0v9;&r~At|-ehY|J!t#BPF(mfvq{uz zfrw?_&nS2|iFjvi+LLqBTZL)*%+p~78+R(-DOP;d8*}4CXWRj0owx`Au}6*2 z4TrmHEOhv~pC|p?8pNgQ$USrVuKZ)(OzTzSviC5wySh%gqBbXb|AD^f@}ft73Lo9L zu&-doPjUIbt?U1MTmQ>_-MmX3Q@yxXbkd5L zL)G2Wm=@Y*&T`U{4?cy2%53FJn9d_I+x4wVzTgN;Fh1p);ySuwRmTsu9^5oX# zvH$t_`{o@xPW*VnqAz39VaoPiR_nqH6~@x1D)#Z#PfP{aylb9u9^%N}RkB;R=W9>y z{c{W7+nzi2$TF_tm!Q%_!RaDS6;85>dl;_f&(|vZzy9mzbcr?-sor_KThu&-_++g@ zeEb@l7&HPNWIdMue}un(j?EVx`F-zgue>s}E<0;z7LfY{hVTckWVS-LjF9b{+h{8%BG zAgG}lz#;eV_VJ&0@BbWwaED8mopY`O)JRgC^KIeqSaWs<4lg) z?68L0yRx{x_X+&3{>k@msafq`m-^LW4MANB92`v#QkVW+U*|O`n(0gT`L}zIe~UXD zrrW^8$`x~ehtb6CPk+Ca@$!gTD>m1!-D|1O-l(L-7oYuPKL6oNu>Xgp`hQi+_kGU` ziE%rk+H&QE!h!V2{NA#kl{?G*j-Kv*^CvXUyM<@N%7dKlA=-<*8B-+RrZKnSS06~GS}?fvLj0w^ku?!optd3VwcSSe#V2<`&Z|$ zz5C|vd-b1%GQzHci4u#dtn>c9YS1|y=Oz^+^ymA@b@y`L8Es0`X527UMmu1^0bXau zFPA^vJMZm$*?{NdrkKM|k2>pL$T6KUfB%6W1wP5Cokcs(96H1lIql&Z#oVnPRy(!( zC+y`~YZtiN^G2MqO49nTjuiooOD^XoZAi&%w|-x3FRXm{&bD;EOKfMq3B65W&bM(C zNbGTJcP#u7^SI;jjIUoy8N$NC1e^lahRvKmUtewcfl%j#i~$Q6HvIT%Z(aD{;d(>M z*yp?X>v%=kZNA+JesjDk_QSKWEP_xNM|m)Fa$DSqG(aq@8Szre4lcaeX`9EJ~0 z3fp7m_ji{y%>Li)^r5Km023?MofQ-Iw*8IyYkzu|$!yx_^gFd|BVud*8iY{=Hf||1Qr$k(uTl3_ZRbO$@g< zZ>uf;d84*@PsyXxI;GcFwqCY)ED)!}>^Vs_Be3Pub)!u>j~^Ut?&;|XSbgB7-IGS$u7Yih zjo&y}Gu2i3ykc~&oewU3$?Er|iMuMP_Rx2ivwHXR%=6DPGj5#uB%UXv<$ZkI8lD%+ z?VXY?<@w`*qHjg|q*@`8n%#;Fif# zG`c*jblu$A0#yCC)imz@_Wt3w+xg3*UI)p^GOfMnu>H2`mdJg}SXM1pOqduKcSYc% z?W@15^kw-}IBG9)g`SM7c3N;EX7Xlr{!Qt}Ro1dPZ@!zPaY19DfW{P|9ZpOSX1T2m zd%W#--s2k^lWln$8m!;#XinQ4>EqY9diy)E;D85n`{v)>emdF6gz@-%+e63S{V-U) z{CZ?`j5?2~idTL1l7E{#mA>-0G; zZsrUXTQ763bmBe5l!nQQPHiQV^r9s0m0p$$N?*ytyK&pK2mgN8_w0VRTY3uf?1|6+ zFm2R4rfvTFPwV^6?^OYZl(&_=U3ZRTrK|^{awIx{Y2!}`>$@k zw-an?Y-Bw3)JVElt+~1RsEVitM*|bZ5l((zW`soEDGZCYx*63%){=Leov)eqmd4I*555^L^kJ)~|cg*(t zUB_3uOD^$!t(v=K@}s@ZukQ%0n_M!{N_=_skJ-zq$mQTNb+{4NxvO|vPVqA9g`9RmxHSh07b(dc74K7(=QT78gV32scFSbJ8qWGD} z|Ch!4k3JN3SGcg?Kw4y+?sJ(SuQ`T$WB+weE&03Av*O!z)$C$k;pYL44cqx7Sv**- z-MSa6V`srbozL9fIyxmk z-yQb9m?LfXZ6p80lG{fLdmNryPrRfMGVAsi&fA+`8(;rxv&Aa+)Kso1PA-}Y%@_})G?L+f>-=@5t9sm2%ea1as{xF}Pwwm+(-vf5XzVmFz6YETBztps~ zPjyXiqHDuR^GuED-WB>8UxhkmKw`um5kX?^|4$NO%5-h1mUD7@>g%cLK)?li8vJu7I{_q*Rb z9%@ci?vu54TN{?R_~L@AHy&*J`~K1XA1mdbI?L~CZ)}X3H%EGMIB)L8f3Ksb?aN}i zcirUWTK8?28P|SRvG@JF>5qcA(v_&>%{*0n8b8b*UU}hi@74ACGxu(-SnKm32DTPJ z;7FlQZpjq4;;H?2cK2WX?Ec~2=4&~ZUzuozA9^IPE3E&`yoe23C71inJz#nK(HB`n z-TpYV_Dk^p2g2@he{|!6q_4c5_o~37c8yQO)QbC#-u+z3w`Q_SDz%=wIytsYP3h)` z0IBEe<*J&N_sKl{@w1pib!F(PkV9IBI9y(FEY;e_ai4vkywHQKCmK)d$G`u(oh^cu zOJqmib>aEj12ZKR_PpVJv5~1EwXSa7&(F_y6#Ucq{Q2`5oi!i+G&1{~?^)0^CHmXj zljZ+f9kO}P<#Kf_imR?YzlleXZD+>HYb$~{ujf79#3S0mq3C%#ch6b*@YckA&idP~ zl<%Kt8SpSo+U0)KwP^Np%2Sm#N(x_od}n9AwDqym9Pc^2Qd1N>eZO1v+vn9R$vpMw zky5W)^VhGTk1U=wvdi6AqooBB-86jn|BQM>#6E|mamhtx zT@zO_mZaRsFy%Nb;KJb4_{AdgWHwj+oV)J*uC7YkC4w#(a$1R~ytLX;8dE+`egEI- z`#*h<|Fdg<=Is;qRlDQDt3R47$!?jbpuxK2-h^3thn7c7o?yvsb)Y(v_J5fBEaWvyg~Jz=NvTXpu&q3r>oR`9-?}8xP*>VVC=%<=!WAP{R3A z*5-|y4hC#Jcju19?ef0nNfysP71d}OMr$$dseH?|SApZets3+DmMMPrv*MhV6nub|iyOnEneVJV8j_21R zTh2RZh+UsHu~920aQ#;oZ?9#`mq*6OKV7%`T~bm~lgVo%GqW&QFX^q@t%%gxr#4Y3 zYu4)-7)Wg1weiSK?&Uk4Uc38Z(~-%!dJnubmz-Mrb5HOC=Q(Fji?9E_ev;6F50-)p zSc5cgdA0|sy0G!paL?BJ_@sQ_shiIJ^DO_KFt_{kVE*5Q|M~ZSv)`Y(@^g3nU(5O1 z!d4zrEL_@C_+X6!msf`50u~R=7bR8_uQ?xeoQZ6iI>&Zrm(bxqzw-Yvre8NRh;29N zOWS<-!2<(kXXc8R9gFUmE;#VrQ{wBdpZfma;&ngPn#=Y|)e*NqsRGYm?b$|Lokuo?LXc z!JO-QbZ|9G!;Ku)6Y;-4{E(P@S$NNfFXcPGf7_e0Mz`qQ9m!+Ik9+!t$v9lM*m5mI zOSJ6$z22=m^R86i{~c%ddFJ^){72u2?8pKSo8Mb$QTxPI>NNM9S8Ed2rYEI!Ol*|Q zyZK+!XNSwHTMIrVxO@|q&@cY2Am0$$aHP6=?(PYeEiHb#PX?@YTYXvWLZxTzbxEID z3zH7sImam_t=qT%hrsbZxnIjx^$18EeqR6E{Ez+5<@-M@J9l8`@qM47@Beyz|M|1G z%_j`hHVZA)@^~H)D{$`NTy+kXRYH&FE|^_*;ZotdCzaQtx}LfiTiCeit~0QTQ1;!$ z6D}J0YNbE_hKo4?d|nO5_CNM!c#?hR)#tk#PxF^t)Zbd0duW0Djd(w{iud}{E`Q@} z)V|yPCrgo~_VB?u9U9j*F|n>ouXulQ&D}rqtS=VxO}y}K%L;y8BLjm2FO3UcpDEk- zYdgQ8`NEm=<~d9~T=Q2*X!_HW8?>ehM3x0!dB62s!!ZF@K{L;Zwwv!6tNUHbEnjgp zD`(3rA75X=vCxKK=Y39~Ji- zhv{DwF?8>fORg$vv(WhVX!YnzKijBRXAoH(Iycyj18sq`D0^Tm%zwg{v|wtZeUJ%{6i)I-xI2F_wDaF=^uX>?)$gA{?D>y ziQVb*|G)o!-{$avgsHDCFw8tZT|2Qsq(JNa%q@LeE+35cw$u+9FX z{(ZlE`~DRIpaC_%f2=1Qas~ehUocKKJ+@)v#>PvEPqXIkh&dj0{9f#C!@E=Z|6OoD zkh-(0ZrVbxr8b8C!6o(6|Czcl{5D%^b~eDVVZx+qzpR*w{TtlT=y~Ph9r5Kiho&hZQ@&TuM>Vo*6SB9mm_fz0c+Td|9}BzG8@? zwl?p%xv?kwza^`_tNNcSkuMO`6wczMywusFTexz6Qv8PF@tNUYtXhJ&@@=A8EFMpM z^8TWtfnNj9M!u#=53cyJPeA|Mk1Iwk1eY>2y%ZiVdzGzU-Qm^WOGQbjp1OLksP$iF{GE6G-v+b$k;Ug?FIpA6E{&f5{?mSL5siYs2NFMCdYl@! zY5i8U&5~9j64{xmvJ#-L?Gdk zNH)*iyy?BYy*3`xgcgc?J?L07O^}7L*Nu5?X`HP3)ij<0*VUJ=t7ynNJzc_nO);?Y z=YEl$8VdzNyi%8h9GPmB81rcF`+c2TxsON2Mjf;66sfvwyI_6&h4nQW9GA9#v?$9f zzBjkn_T9wbGXt(#Lj05mPJ=Wc{;{jYqrSIi}|WFKuf7W;nR zY+38FiM#l;n$AS8nO>p)>4)Qvc~9>joosgKVe4MTnun_5vF}Xf_U<&%n9u*R*y(^p zclb0fUnASd#P4quj1Q~k-7`EJVESmM`n(@+?$`eN{BPm@ACH3VPiW7SDmmQ$|L^o| z*G~&*cw92G;xbe_Y~?J%&hgUBQe06*sP$b{hBsf$dli4X@}6I3G*-nejagmv@J?jZ zS~1WXhb&Vj-9V>ggcs+Ylnf0*U1|cwu2i=nA^&Zpm%GlMp`!jo$~>95o8=T`-koob|cg@6-GLZ__Qy79Ku%wddeP&RJ{4PWOtg*>I=! z{O=uqzuhj>TY5P&(b#=~)0R{6?TdIHe0};?pIgng;OV}9r(K!iGtqYGC->01yq^v*X@bOF|vrpd@iS^lH=j0y$c<3B4d*Rl5YZkqlygEos z@!##*x;t8rZrHP%nO$2EqIIYC`(2knmz5!lZsz=pF-(SZCbmoZ+x+qs6F;|M-@bF= z`#!kJ)qn9kWT567>^H~CHD=v~cO@5tCY1@P2vXV+VJx~FH#j)He0YkQx4|3CB3*Y&?XtItzgF!TMT z*BuHR7lVXZ4H>%(uAFd~lqzXvJf&Ia>{T^>+aDa0AMdu@J@3*7#nruHp39H6{;W)q zSg?44$>|e5PFsb9Pc#G^&5(SsR&&yc>w-7-+&l2iE0kfnFyr*;f8y)*ubs*m^;%nq z9n{wle2}qy_UurH!-o&AS+{Oc>k&(Ti8c;hfkT_`WjxxuG*0}?8J?%vy*0uiKXUJt z75sY>`N-m!#Nm&Rk4HvFFSat7AD2W3m2J%D?M^@W!SZ@__J-CEdoJDj z`OE*1?Z&HTFYNig-|J#--h-)&%xq5FDCn*7e0Yhi@Il0mg1XILY&?Zp1YEff+^%H# zelGQI?Eg8zlVC53n*Z}>d;M+u-(UaV zJ>Qe@NFlLch0o47=A|FSeAJaQ%Q##Z{1o@P30}B+!lL?(O#T0_?k~29KA(Qurt%BV z#TP0oPfDz~y7Fq)o4u*>jxmQUx{obtU3%BoBdGbM6jR`gg&hB{O}&zTmF32&FZDl5 zr?anieGs+afHiZX#J5`vJkqau*xe40F8M{VtaPX!YUaJ;6S@5`G)1D>XT&#=AjqXY1SMXNsnPBeX zzbVDrwRw63qmxC?`$uaXv|J@Jwyb-Q)24VhS<~IXCMG@g4Gxi6zk-Ec+ff#g{kysy%-FUcTnUx2k_Td>3jfvaFl`=C@77EA9%* z=jP>`i<}-zeapfvqES$LNTRu*DPZcyg^O$G=l6H;VDLKaTl5)rZEz^R~a`JYdISN?mV z_4T3VB8^*beqWCY)|wjNb@63M+;q{TMtPaPtGfUFT<4#oy)+^=_UVg@i_e@nqrg&P zrF-m{dzU9PcioM!sDD&{W#Lm}`;W?huI>NLw1iRq&jZ_txgWmf*ERS5JHalwYPyHD ztP>NHY{Fi)^=6YrK5*z4EPCHx_c#6j&P}`DR<7}$BTz9>{a94w2FXKFK9dw(JJ{Ep zIDIEc_2b*pRZ$!2{yj{;oqIxpNg&+o-+89D4e!cCZ)6>*{fpb+dC*Cw$ zxamhor=POEZhIAPfWnvrqnXky5=IaEET^oGe{OZU|`AKv?Z|MaI@Hj!zPl2V6v zwtT-^t$ojo)3oCG{ST8KT;^G5Qn-`pi4{xrw|8f!t53FOT3N(-|J?=ONq@dZo&Iq} zgnfSfyoGD0DWsq zOJnq&PiwpOEVt;I*vbF58!Y3gxw zVUQu2*$;EQwniN*6LNE7kFeQ%?$INq&DCn1Y$lE?Jgnc|xunXGp|1Prm4pAgHT#3# zFf@KiV0>6@W_R86P8zGjKRa7KMkVn_+${q3*5<0lP5I90%@!OR&OJ==us&-nq@?^(Ow?`fS>bmNM`Vuo!mI{r9VZog*p^MkTP@`*W1gH{_^SUE+kO_;O``TJE=b%QL+$tPjxmFip{PXYN`driYH+t%8~g8C#@y`1pgR zB@(i-Ch_0-e(?W~&foSQ&v!*av*OteY7g)HOjYwvZP}DFd+viT6N`Czct5?n{as=0 z@lxGF%_C9XOQVi)Ojh4j`O16W$N9@oG8NtpXZXU*|6KLwzvk1ujIsAVJ*Z{iGh%mo zWz#9lw6^M6zSD)Rl7#|7$1a@ZS-Pp&;NhK@?sZE)Ke}#J81r*({rA=XSFZ~h2pV{=@?6jQu1(0@4sG%-Nx?w1wGJGRDN}pnVXL!a!xPxw91{camwjbKN)LJ_18u_t7jF3 zF5Fc5?*Bx8W5WQp%PyWDGQ}02W^Zl|%A5Al`TX+O>;Wb9%qxng1avp3TAs2z1Qh~^Iau*XW*PC+tr#Xy&GQdWYlO0Xt-0t z{o!8Rmg>t~E1fT0N$7RY_FTT#Z<3CYl~$xx{e$a#wqMUaty(V}s|$KQYQES}rN<`d$S_Uecolvg-&(?)Nd!i(=-H>zgu zY2rw*-}(Nw0heNcQy!Pr*R^YW`X?+X|NoCK{Jzr$heoFB`ioXfna|ARnzif7>(VJf zZ*Fbvo;XqQSeyHaTd)88`1?Nn`8TTxO+mBQIYJ zTy`_h*xa1mYvPi-HRJyw2*De(~&T}m(&gzG4)LFjY-`=`w9=&u)=x*Nhpp{o1E7thU5qteOnr|V~n)9m} zPAwIh`;5)(tjA@Rg$pjf4O$=m^I`x03-!@w!Wy$#U0EF(%VkzQW&HML&&*ZDb28>9 zR;@Z@ygYtEoPP0xoy~9d)`|x`+vcqH*`@GK^7qe=DmGLk7EBjl`qbv98h`S%?f#%= zv*oTWOl=6NJS4`VCGNqbq#9wd-Dy^?fvN4Gm&WWLnfm0ckLv#ZHesgT3?5zWE!TLb zE>tWrIJE68^OChad*6rk@bVek1TDXuwW%a=o>kdUfSZl2o_j=pfdnfkESLA>6{B}>6C9%I@*A>A7zhkxpzR-T3BD!=f zD_6|@32~2ty0^Qk!vwms!n#gI~MP4EbePGg^BPb7 zof98%Ov-)n#RVZ+iY*SW3pQVJ%%01=TCC#rxz>9@eabPH9JMbvUGlU7wWj@+AHHxw z;Paz)W;+3Jc% z57Q;qT$?d(?lJBOjmIpTg_z!(b3eMjvG`k7=QM@&Vg-AJauh{^90XVwh-Rj3*mw5K z8-vG-O_zMVqkRAHr&CPD#kVuJ3%|O`b(;Hh$!%$t#Lo4#PaVakPhT0rHe>GG#Q(b1 zFVtjDF&o~meWQ3z)}HmC#MYO4b+*fTpJj6lNlQ*{<`&o6Q2g8vbZzzazEiU|ItM@K zI)3E!&Dz((471r!t8(r;pa1%8kY!DrXv3+k3{`UX|9;r&uM!j2dZAvo)f$wqZ5n=#N690%hsX6lzbuTa^_Zzsi$}Dojs+2^}YGkZ@cg6S#jO}5p^qm zlh6BH7E8-lIu;KF#To^Uv{hGn&(H%h>NeU;OP5Q}X8GKR=o4PuFZdx^8au#+iw?w^_QmALndJD4ufq>7xbp!gl{p zA73r#JUw22`;>RtYxOlB-><4ywQ-8^c{F#kMY`a*=2DCNf_r=3l!B(ItlBoScqxT8 zY~)*gP}5yzdST|FzJXzZms+@AE%DKg-zHSf~pvU1DO{EZvT`RX*D}JtF3%Lg<0F+wY(A*5B*0 zG|16w=SrXZ>sd5Dh^Yk~`f9S+NNXzBJu5Ravm4c)edkye&bb)Xd+rw3sc5?o|Ejw= zwF`U~tYFaiaISe{&YIkUhktDD|C;@LN9uc#>hEtCnTZvByCbTmWJd5)|8d4 zAFduLxi^FT zP@Fkuj@s#6EW2DbUraiFMkhU7FJP5h&4*{zhI)%%2TjWB3YwLBSvW%W9Oi*bthPm(1z?bgk_ph*-Z)u zW*mC-P1pCItwjC@HGBT8lUs^pia(w3UXv!x5@o!Asb=}v15a+m|Gki2_w0CAq;`R? z%o@_Q+hfc&(L`}X-l+%&f7BP^*T$lX8PSy zC%-a3uI2@m}b*t&N{QI8EucoDB%sBXqAyB}`#KdJ~NL9Oe!5+)`|6lL@ z>ot{W!t{q$&kc?xtUVgFyK?tgAGxzUlg6KKUKl;+fT*8WTd=vMNm{25_(!E^Rrw=giS3PkEZp3jd5V(%Hh6 zeK9CVZ@Q#}M8f-fds!SCw5ESva`Sf#$M)w2N>iEMXPV8HNS2V3OiZZgFzCAXV0Ssk zzT- z%H=spfQ2#Y_1V&G2ckLM7koPJsnHoQ>qtb1NbuS#nQKjdy!>51XXZx3H6@3S)`;#1 z3kYElsc?7XvM7Bdv3uKjLvx#RFAlK8|9-`+AQK!MtaEd-#dK~K*F=VMiEG&}`pZ{) zwii6u{>8L<$3<5L{re~H{wlZZ^PKd5{$6w5O)A#sKhN8o^6YNb{ng)Jrf!?ZYRtgV zpm2ayz{7cpvWMriw;NK}oR_@4!2fsQp|Xg?(+}5_}{(r^x1xUsnAu)`4Xz$y2ZuCOEOQbe7Zd%GJe^`6&Ev2 zSN4PyD5)CTZt2)rTH5(@XYHA{a})l)(ONtIj>2KXw)FG!Y!{Z!;V+$8InUV2s>^WM zn&ujN4~GBWmK@mNwBUZv<<|>em!2>>H_xh7AZfLWPxhoN(Mu+0Jnt>;x>Y~@`NMrqE3c^QufCe4!1j*S zZjX6Gkl?u;2K-zC=Ptb7R`Hg7eeuU9p3Br;*L>R?|G*OZ2CUWZ@Kd%73QL)M}B)Sis*{x<~e4CT??!H{KfNGnp)+ni|Qw%WaDao zirW2N9slS4sf$`44;*oRDlnyD2M5FM4Bu0)P8oR$eLlo}f6?TvJ1c%N{eKkyFZ$ct z+vY1W%g+hE{PFF9lTFRcW7}76ExRXhv@6S0(JM(nXma%$(Ttf5lP#W~+{Cj|Wan9f za|)_gq&WSg_+)OMzvuq#;=9s_=-Uaom7z&)R77FDG$vLaNThv#oNlctv8olRBxc;I&$uEy-b#HFpv2V)9#ooT>w%e-f-&-Jc z{m0SxKdx@>?uYM(FWApEO_jlZZ*dIA!Aqx%@?)+1L)I^nsd-tv{{U!k=X0^m*PHRb zqAY_{?@l0b8m6UCBAk(d8K(B5wWpJbt%(ygs*7x z9uPjxsp;IkLSASJKTn5Tn%>#O&2#QV3Uqmd2WTmIiX4-;G|zDr$DYIDPdddP6mkfD zvk!DNHZ(ld+kO4zOu4mT?RTy9P{&W&!emlowO1b=FZtRt>W9u z{)fGHwh4UyKQ)!1;=Z}Xz26spK8($&V&8xJ|KEl0SIEnJIp1Bk+aW?2St=EuGrAawVf+gN8>ycJspA z?cOn~8_%+>Y7AR_v{P8U;?vCZ9os)CbM^{uIxAKfqxk-7K&ay)(U8@9z8#)!VNg8b z=FPuz_H8-2y{=+fp2^80^DMu;Vq1JwFfG0L?pF*9n)EFwN%rDt zW3#H*sHto1(LK7Vh6z$TkLGoLvYM6eWUUCPj( z_#|Z}|Jqrt><>4H%#7rBYB?LWR!(_ILQPdqvU~rgeVh82r>rXa_9gP%e4Epc_AQ@j zU)7NR=OXuxj43;JT7G*!|M(I~FGG%Re*+qRezU&ZWFfHBE8+R~%I(Kf0);OBzgM32 zJXBTSQg!?&7u1z|is^=*#G5~sD;QXo-T+0@JQj(0#=pK- zzTc49HLWRZd9U~MAJy^ySoYPkPTOWA>L$-s!=hO(6;Ly)v`ZtuAjp7=F1T9xzPze8fLqn2NO`0A_n8ND+_1^1QMJ!Z_GlahA-&;Hs+ zpY8uQ7cKFc!U8HFu5hmZI`ipOQ5!`M+oC5L#l^)jyNjkixBJW^zJ6|E*?kjFnWz(? zt3}tGoH$W!id;UckYaZ%Q;Ogm&p8t$CbP@4Djuv9Q9S$pW&V|4vqjnkiYEAO(^L0K zTBjSkeD}?V4;tMwwnb-zs+xAm@2{H`JU7}!xHu*9+^0*vV&dW+B~727Z9A~}Ox2zL zXMaCP|Ff?D?n<%xY+YKZyq*2}diLz95T&DApU#$<5&mSYwvXTW3oEV%ezocnQTH|YDEJ^& zfuTV0#MD>sSmLLp9_eMfRT(4KRG!Quyg1qCoX=(7>Vi$Od_WoM~_ix`B>JYPf(zhy&hZp3g1bn$AsbBlveTL4W@`Sea|89OS zNUqK_%P;uzc)lCg**`xtCQh5-#As@B@9)m_@$=&z{cRR#%G&C+{r1rrJzRYkRi2gq zn_d4$`_hcV?*EUS|Jz+O#mlC``n!;-oYIy4+K1oyWvf^gD(C5~50ICAculY+ z_wj$FU!By53fh<)8$VFOcZPxv8 zdsdy2$<-ZQeM)M})o0F~pH}&l&3s+#^HWz88m2oxl~#SXZR1Vd1^Xvo{%@dIpf2BNEl{kn^g_^rDH270`QsQW`pfy= zAHKL=`5n8^-}>_Ezec}97aeJKW?{I^!Jw(wB{DnPJY#KK!u_1qi>s8*-&(TGcV4*z z??g7%pBhVDJUT`4=O6D{9l9y3J8${nPoIp=rWG6L$5_=j{yM=?n-rBT+w{+%Qe@fU zgIh$NOUTL}PtnxyTzqi{e=LK-d80=WldFaIu-6>g{{NAy-T%({&K*|&uhxIxJ?BmX zul~xu-p_}&$1Rx`(z(T@%72OKDg%u-{qGCZrwYB-&q;fkrn!F4N391lJ(Bp&p53%_ z=P&eE-*z-tP4O4GmK1sp9CzEsI>3F*0dtnzIy_nlWq{@CCDW4F%Cu`j)BnWJjw zM7^4Dr!H%@CA--ht?R^=MkV}yk+c5l)TUf}?t{6dKgyN)+0IX1^?_-^?OhBRYx6&g zJ9KO~sK1Mar<&uA8o$sD7cyy<3fc<|{_lUVAHAJT)aHr6q2A_a&*7_kRCT`rz@h z&?04yLaNK_Yf=+?e{Qz_$+ld7eX)0+!KUX1Q{ASnJek=iQ`fWdBj<_YEt4$t%ilO` zJHLCW)Vtby|22-Ddc}2QQdsp|i?ctD@Be#y|74Y4>*anQJzu|BW}y(j(kYRM&UUV; zhwcA2fBfhfSMzcGj*6FD`Ex8z{{N`|-+zgSjBU+?jTfz^u3C0+#lmj6JyX5*d}XR- zc90i$cX@E}iL-5Q#N)$>vd64-B#(VFSk}H-bBE0YwdSbb4s$&81?5(GO)TBzva73b z(y@M9XVq)1o&29Zcw`kk+P3D4-{zGEzlW#& ztN+z zwuMGH_Z*LxUb`L~SNpQ`+?;(Ue*6iHv#p+-Q8Q1j>*!I}s=K_K_V}(1TPhTO@RXza z)Vgc??ft(!zbf?J_+YBe-7Uvoc0d35WqEy@%GrqB6(8r@e?6-I@AdTk-{&en<(R6$ z*&w7U#}KopYVOaYdv)&aIV$XLbFh(_eZ~x##fH}ux|DpTO-kQ;Xvw*DGyBA)Y)%(; zZQVU#$0sAFjMgh$YfUGHaO_w8JjLou*|wbAWg!z67PQ{p^tH`xvD^B|LMJ&Ms-~Zt z^Yp9m^A|HYRm^4z88IoJyyR%Hn#Kk_R9U!pTDn}o5)%J z-}-Wtux4wDHRFOMcf|gD_iWmsp(t_Z`S$(!okFVjj{m&B`(Vwx2@wkmJX*>*-Ulr5 zzr)J3xBhNa_Q|T;bul%)M_MdZ(*T*JnWwH?2?=0K zk=&a$Icu%i2lgH563$CZw#_a4_jR($%!PY5c6J|+I4fjhIQem~kMFsS_5U6FWNm$x zZM$|ZkbV4Xk`@1@ z#!m_xqVF;AJ2Kqh-%~b=S5x)FrALMdx|b?NxLkRZ4pp^I=WF2At?AWsji;fAq&pWn7_UjUUO-z zH~4HLe{1EgyZuH7?py6|FWFLbTuD*GDDND<*`wW|{yaUu<{YqY-2AX?zglSaUSB?& zKX)ykGjUE|UXeYKqow?Yjk14r#N>x-4n_vgXteA(c|ej$_PM~l$7`i)&i#8kcXp!s zp}<8ho!{mDv}d1tI8kEd374LUT%FF<-N%&o9C;#_&U$r;)2+7;mZsrgCa6cdwEYb68(G;JF&&4Ka2!6cf zy*{XWl~14Vrky)aUX{KcI8`Fj(}AnUaN!#dj+SdTY~=sU5!JmnVN%?BcbV*}yJj5n z*EUtpsxghbBB1B^mB;?y|9$7O@BdR%}G} zCpVXEKKkQ_#kE@x#NNopoye7C&|vDFFzLsO?F=$yaqro4u0{12KBtx+~KysPn{a>5!WC_SJ!4vFwEx>-!i5rY_5q;+uYHbT!SKCvaz1X}5{*$`Gx967`+SKMDyw zW^oB!xA&`9yZCp9X-3xO{>M3Qu^l^h%;M*<*EU5T1dknG?y;yNZ?|km_oe;MYTc)$ zIwT5sM$F%&^Yqo#)fGizV$Tmm_Px1(zWBTix7YoyS6}O6`(irTC7+(#am2YjdGpl& zFVA@E7yh~EE-5Q{*z){U>FYm^>i=ch^=icx;YAi{si{+=7W++cv4~_5YOUCt|Lb|n z5$*~6otzKMEXx#Uzez8;zpnhxTs}=vucHlWzPy#k3m&O2x2%1pR{v+N{N_6wb=Kw? zS(!B&3%D9`bOs5%H+s~iW`2;PAbqYy&ed7dDt;e`zc77**!|B5GQXeimuI ze>qnLZa*&-xwpJr?fQQTlM)X`&f3efT*NE$T3FtNot1s*{bvoLw#MwL;7ZnI=aWdKL_8-=D79MXx^l<%kDD9( zga5tIj(4p-`013Dc$n3mqOC`xxV*i+Wvstxu=CkA757<8%2>+SsPnnv`(u@R+s@_w zm44U%c!tjDLpP2Kp0kWv>$~sY*Y%g*ZoL_EKcO(MZ{|-E7#E+Om)NM$wIJd+!yLmG8d4H}6ji0ArRP`{w|U82&f6Xt6{Xar zbZptO5BDZt$y)Hg`v#5S(!|gs_Vcv}7qP#|CcK%HpHXPWPeEdb} zZH=9#|2q+;{^PH|3No{^=c=kDuEFTb7E z9QLTu{iec}BhKxM-Q|}mE4+`Cv;D=Azps=@w0hs4?EO7gVtY1gEX^>RePz$$p!HLh zoaE~)v*)N@u9jWSb?Eo80J|^YDsM}FUW>1rJw1Nk$?tVVlT-f3`8@N~3SBZSWHQHO zc4f7tEHh6#?RMOr%C&v=mOV#q*YCggn{lG*eYK^g1~;U*HoP~xW_^C*+{XPc*k4%7 z{&PL?Bzs}k+D~uSm#eoPU)L59q4BEOdx}P3{eyr8cWdTDd}(a1VqRPKFfkrV^?3e4 zsA{e1H{WAVq{Aa-%wBLcYg2yJq*F&MB!q8$;AAW>-NEaTR#46i$u{)czd|bCqG08H0 z^|i|2|70eXCwt=*gx|F~Yh3$MUK&kRc_e(k zevXRgkLdq5?`xaOsmfJM0S(v5&ij4icxUNU^ZOQ_%jX(d8y`RRicQ^rUP@wOqu+98 znd3(aeMDSuEZVo{ebW2wrBj9ZQzuxixU83@QqKLQE&u(rr?S)ft)-cEPF&)()~ZQv z?ovDB^Dm3TcUFAVI-Q+;=Iq(aIcALk?0G(HLLo~EldL5-u0FNk$Zj>(duMO#75;i) z+pWK`RU!Q8uiE#jwVhlx_u&6?llrZH^4xi83d$ezw@o}Gxaz5sH5!K7XO|xPb#sjY}S&nqm}*M!8US*;;A>cRk}5-Qeoa4zP8yVT4{v} zXQlqrFDHYqWSKrv+P!|VihzjM#OIYWvU?oEv<`k>uE6+BN5{zC`uMM3R%)ju<>i-~ z897b+HleV^&@ymsmH*=F>f%c_-`P>sySU%(Oq zw#tn`D;w%gmk=DTk^6zzWP)rX(wYX$Gmc=D)fw#W6Eax+~Py!d7$ z)ysCza*_wHO6ANl|9Ris#-D!r&+d9zwg|9zpHp1w z{{PSW?HtlN1$+;;bF?^yH-I~)b_XwRKk+qV4Nq}i;_PPUORq{YdipN;R_Cm{`{*XK z@}I;1pK$y5gxoAnurE|i{QvLo6*aYOr)t(5yd|^nNNjUG!}RB_-1l{U^ir}5;D6UQ8m&tA83ngm{KG}MdVabRch^9gckX=y92 zW?eaU?8L6vM_HojJ_-hB_m(j-B=X$&hci@0+_ky&|VE{4x0!?i8^4YQ|Qx%9l&0@2L8!b@}pTnc6pj&&0)N z%%1(&y#BNK&&&2dzMG%EsP!??(NlI>#fuNm>;FBU^Z#A<4&T!Y|9+0KD4%z;wQ!Nf zqT6qkwk)`tclqU)88c=qm=q%a%TRjVO}V`5+oHP{-ep>SH-zc$bs?t-v!|SJpHuN! zB>v}N@ru-)r;^Xx`B!I(&Q3j}b8eE$)C*0X>RWc{KJxOJC#@AI`p`6KdR<=Xgz|jH zUw^Ig+c+hk%gkF_e4={)S(gp@pVV78Y3O6OMl?dV0-w3y0%B<$jx{^Tj!NhvHOy1DzDMK3aUQ^+mJWtYwV}Ms0cP zeK+59(Tv!;=iKGv^BEHI^7{V2$p8N<#xhFPPDewOK~>I*MeVwgr6l_`d)~-~r%zM2 z@GY}4&%3iAZ1u){`}XNt+|tah4>0Qdd*GC$w3*|zg-fMUEZ!Y|{hsIE?}JyYfBr5% zwPm~gdDi0@=_~qtHr?C0rnGv2$z@?-j%<&Vp6!#ombMixWbHSUG-G}!dT46nzrR2F z%DrBevt6*RFZ=OU)zErf|HB9S|3}=vkpH_hg?;vo#GCs+ENF4b?)@$oyoE((1>>H> z&m?!A+;Hx}o}-)ZDiqAHx$$dG+3i3rSFb4*?*p1HNS&3K(zo&6<luleS zyRN_Iu?zJBhRCs$sVF3J)WJ)WRD)r-~siKK(0#<%O2P9Aj)3lCq}-xshl*=;@2v~xG~C%(^i|A!-Fk)8-fVMo%j$=0Z_8#YyZ1fV zyZrj=hkM;!r5-zIbc!=YzI*gu(t7{##7#FqS7ZAvcV2xvv9569$(NZ{nfU=mRc~$> z{(D#dlmC?Kk|XV0OPLlNac;LcJ7d;5gGpC*R6b^F=a+x*BKdcOg@Nz(+pb5uZaRGm zUmIo^=_jJj?3o;&bZ5HGZuW#*=11K$yPWQMSAf&j3vu zo{7Cz>|;^-WV5rrEB@b`z**t(%rB*T*1mwP1(2L6;T)FqD2sK^$VvPgYA_vd?;*b0Vg5>u{mtPQ-^{IMkL+K$qv zVru<6cHBzcIx}!?_lB9tFR$^+*?v;ln$^7Kvf61Q8^J)CWM8)|o{2iXzVAB^1aWB| ztZpoBQ}Oh;Y%)jQYvS{1-qZCq?%C!elg%e*9k=#`g{YuQz#yJ3y`#OkU*^$8clp$k zA|^rCiuC3rO_%EC*Y{H`nHtX)t-7iezCJFsv~=p$-cq$?YAdg0-@d*vHpDf5GlSE_ z)O$*%viG7+6#sjm9l!MU*~qAuMUU>3iaq=OU~fWka_^Sgi=);~n)zt6`0ok-eji^I z^Z%V_;hM~?QD3TTC#fvFnDPk`g{5Bf!!znvrB8d_pENa9%p@W zviyJ5xQf-C2`roD?5+Nu6q{jW`X?%=qUU7CVwEk8+Sv;4trLykT>OxCVs5z?!`p8^ z{F+ZPS{?|yR{x{$#cA`a@7}*GuRnj+tMZ-r&A>%R4!5bSV-by7l99X4*v!mn`*pRI zS2Ne?C*EEia*Vb8Tdz^vTBEJ$)28~(UfeI6nzDuKp2Pe(laqFh0_E%+dwkD)yf$H;+C6bcz+DpDSh}@nRzlYh#FJt{$!Q+N&!@6zR`JLu92hFf? zcN6?_veT}zfn)yHxoeg>wVc@>bmEY+!g-@9K^2c9Vk4aw7zT=lmYPJ%)&!*%)l2~| z5h!}?xkyE0fsyyT=Ra)RGdy2r73JT!b0;M$t1GRzId6M+$c3z}1!8`4EF8B6F29;} zF~`jF@|1}a1>KITSyp^dsQ;o~AHi4G$*=15YQqud_RY`zltnonb|`r+5n1lP_vnuk z8q59Xr=_H{lx;TUaQI}iKYPMw1r{E=C8hydi*Du=|NZ3~wU*B_NLTN3L4`is{@s5o z{&O}szJ1bnj_VqC%bJ1@FM|IZEwA^9nV+yF%-zy^{dI0>hld+lXYVfN(>1wt`oN(n zjJN;V&p$Hl@V9MYRnDLOJUo7nlX1i46YtI9IqTDn99OQ5x_)<;?VWFRJ95|DnH$CY z&IUA!^KN2U^+T)Tfc4i;?#`XE{Y#as+4Ot^*;0#r<@0jv z6Z1bmk`SnN{T=5M9ycXJNkUQqIS+wGWLC7mX|k+HE$FJ>q#O{uJulzdr` zA==}*R@dvtp*x9Dy1U+*Wov6+Ssl75Ph6iRL-s`R`@(yzw~Gu6n@ZpJ{L%j=)VzQB z3d8AvM{eDU;?S$MoZ4A=?#`VfT%OaGm+a16(zNm8$AHi8Sj4erGa$eaw=ZIhQg_PJEuTd|p-8V)y<{_5bVYUT?2^?SJZ`Hn^o- zYqs#{PvbCNkH&+dO~a?QA1!>(l1@fBHVMaML_`;sl5H_PkcBiqW;7O9z|Xw0FI|_F&eox{o@-p(l5oThS%A zJufEl{Jy<4uhQ)gEBDK(uG5$hy{Ueoij&ux`$iv1&gBZWwI=0M*i8r$aup2MkAL`T z>1j}J|KrEPbMx%om&PR*o|g*{Vu_I7k`&hkn8N+NpH(%^eZ< zemPz{b-O8175W!~lx$tR7CvQP@9<{>sQi0w8TI%%M{9dJY($taqs*62Y&sM64#GQI6u!; z#cGkz@he%plXiGbOJ)9k*IM@ne-qP!{hpJ8jLgiA&9kkZ5VUFEKEHX-$Uhl{XOl{2sHwb2@piuAnKcOLFN&TskE z`TpDZq@Ks8mU^#QzrOg#hs0xU?vc^apabzzBHOx@*Ko^nZJWq>?{W7z%h%egGuE!W z{<9Nck`y-|IvGYhL-!fBkht)*&RCD`BuNq{`2CgyrCYeT5&^CUE##ePR?b^ zm#;L}O4+H>)%3EvPxR964Hvj$C7Afw=hk}uWf$-8T6^O29Jl0_9YQ_XJ%&dLZ88dr zzc0w0!Cm6~|6Z?hNqL3ccH8^a(q@%$dHmnz9G5!z%$zaC2bpzX*gx& zTszwJV7tI^sbraZoC1zQlA5+F&g&G`Z@kQ$u>JOXm5hCBSyEo4o1S>Xo4%>*9g}k` zo6|A-FMF>UZ8`8Nf6>;y{CwWB>HCv^*uAgKP}V#hG)ahGT}G%y`%2FC)3^5C&=S3! zyUcg9TvSz0xdo$Ixrr9%%UiB>zwQ4U{a*I!&y%U|CvzS?UiYlBLut*+MN9OvUUe(% zpRn1RWyOQUX5K7@i~I)^|D3P(nRhw2d`HCFFYns4W0$_3zM{@Q`Ss}+SuGQ0U7Tomg7sG8gr+l3 zG9)>~GgE&=bDU}rdM~>*syAb_~lk? z(d&STj+y643^(e;_{`QFYQLNNaN$wD_y)&-yYG)E+~IRN zz_(<#+yo`9rabXi6%#EKKitbR{@QGpxwOFf=7B_|)%STFj(=?6Szy2{lk#Kk(aQc1 zu58{zqU#S%6E=@hbkT5nAz$lkr2o!u&R1WD)SZm_9~Jrj9sU}8=BkBAnSpWz%Q^A? zT#`&5_I0%#n5{WedFz67+1aym^J4ZmHk-MB58F}t@_5K4+lRNxCN1u_XFRq*sq-_R zI!n}xfOo75-RA4Am*AI3_k1LgtQ+N(GfjD_TV=Bm+kMkLAD^v`uyN9;+N&41mC5VT z8u?dpN``ku)|zDQZoek=o|n&i^XEUhcAg*n_`#$*Uvtk^8CWw~kD2lj-Fw-YNA zH!7W3xXS*#hkIJkqo}D{t~wqMU1PXr&h8VN`{kbNpZnMF^r`5y>Trcqf>w!(rxqLJhJ!iiB#Kd=EP|@dOLgv%+jjXM^4cS_r zKUi3M=G?hY{{N5v-*2*d6N>p1yPI9+zpUOETSL zj+@N(-Lrj3=Jc@a$zjE^Pi-fLR777<)#{wUmwcK1f!Dn*mllmXolnEm8=}@8ySX`i zXVFusuT^u`OuxM1Dx>GLR1emjo}G(2R8}U$&~ zxeqw_O{thrsQ$m9F5&&s1AJc@1b>HBsy>gkeCN0y9oHjA_ro&I8 zn4(Mdbt10dF;d4{(JYc?r?>y)<@wDwC6!TCZkKOj;jZq5mUl%D{{QxRbNy{$b*c8J zZ+?FM^W(VvlTS0RujmrcIRI1?vT}?)22-exXNXB{z74oDci$?UxH@6 zmfrJW?)!wE#M08KdD~Baooy~DE1#T`B@`}j->UET}k`due|;mbW5w+@l3PX3^hMb?=M;{vr$N%b&BCMzWFGlgw_Y~Jl1od@$=_}==d?9J=- zzYRMiRwnI=^`3J@z-WcYuDg1LGKrrL9Qxk7a1LwCL`%JuXV{Hi$mea`KD+pTnC-i= zAcm9^r^NSP&;S42_5aTzhdfWsliZc-3(V&156aiJHaM13Z@+E3bV<2_n!vstJx5}j zmkO!cZ8^x#_q@5uOGK#dWoW?j1x@=n?4Z4c)m%O4*}B)J-%{aw_DnSX z&!1!;A9tAuo0dGE4I6Jhys*$&AbZKSCz)+iCRwaH7$Ez5fn9vg)?2>2W2Xd#Oya8C z?JS}`LE7xv^~m_hr^lwg)_KR9R)0()Ej|69mCwAzd-&z|R;;=FGGJxM2ZuZ!<-#*3 zPHAn7&lgV-G&bE_IKR$f-UOv%}f64zhf9595>RiNi z&Fa&gpw%IrQ{1Xvlm+ek^t;|+tzDntq~2b=W1e%wBVKnGs?V^@be!bUVs=JM(Kg7t zMQG`t|BM{p%1=*w&-3qordjRs%m)sv3q+#WkAJK?>F{4lMvwnSCew}j8gr#2bKyhV zUq=NjI^v$?`-Sc5_rQ-r+A3i#5euC=8$>+bbLq>7cZ5%0T$6D;eQt7Q=FFWJ3rns& zO1H0@@O<9Qy9w{Dy%{PDq1 zOzfMHnWf{b{7pOZ`=YmpNl3~rzWjF5a?41qm0`y&1h#xtOW|pC@!A^t{|x(dzBlYg zqJP%+9}w5&ZvGg!Hp+RC$D@`w^P^JIoBrHu77fWRt=cQ1s2aG&BbR?I>$TYd$@~=| z8#x7!*8km=8NWiHYr=hYX7idAOgC$7U)~F)P!lX|?-J$>e^+3K&qO3a^~miS-EDC~qsqfp9T5lxlAwQSe!6mp6R82z+5 zv_$e!bXjERIQk=3Do3q2!kQI4h3pwnjlqBE!xU$lZRs zu=UxmrLWiINc=m@f8MC_Lt$R-mKpbV&v(n6a&{|kpZzx$PZ@UB2Ahn6ND$mTlS?e}uSMU^Z6$McPQNJIeI;9YhR)+-SEYUY zd@jF!($jbS*aN4?lGUg-?y>F#Y~?XOBG}EV5sg?JimS{JpZT+99EKl||T@EiM*3Ae7ONHAaJl5oEFQlT+#z5CWE*^*-`ue`Q+ zzv0>PPi8IciZre0gTlq;5Ric_dbdc5tymz%|J zzOj79FL(5sx@C=u+V=|*tAjtza$DSXQr2me!$pp^D`l>p^KNXsH@)IIhiqDtech0ydWb*XJ#^k3CQ-5R##)EeMNPK)0zyE}E{@e%GP6^pp{#C8}`@W{L z{*(W|?0w(Z>yNCREgdpR@Y_4v6Z4MNx@=rv`07JZ@0pwjHT?cv>b#EYH#hIHd6@4# z>ED!fPxf8jrPJqR79pc}n(6s02FUoF9%r-Q&J}TTV|NPig)qk(-|Ck=~*fPCj zcdph}E+wY*wqash|2Hkr*0|ID`}kcGfjEb0(Yx-7s48zVS$h5DhV=JwiA7TYq$RW^?#wlzIsuf*$H7u5O2q(f5mO7Ck~fQSM{oS!qJfXaods30$r|nn`b!zGr#g$?^QZ$dp4|n>QvD! zU*}kVG&(&!eyP~@7pAkd7yYf3-|9 z<>rEE|NQ@d@!whTQR$rJv**ue&Y7L~?}B4Mmx;HcZ)V<_$;&j?@B5{7&+69M2hET7 z%Cme4R6RITM)bG>%QgdnsZq{>LLd4%1NHOOL%JO9T3#q*RbBk8Fw3 z{r3L;`D4e}`tAQ!SO%ziF)eWE?Q+^~w<8 zPd2J&cP+{E+I^R|dq>X!t4~SE3sMWt|6id0Sm4i!Sf*8r_@cOa410Qem6kquJpT{N z+I|KhGs^d#fy7Oxc0s+<&JXPaj@+yH`^12L+xiK zFqq%iVv(|>b27`6BT=VcWHd)_&--{|vj1g6xyK8_)(5Y?`avmWw$bd#>9&s|l4I>S z{>_J0MDA$;)r=kBYvop8r9= zFyG+Vf+R7nvVPg_$&KCh^5J^%kDpGDe|qh# z>A&gq-*(qL{r}IZ{oByZ)zQC&AHK#V?A0*Z>MYGHXgA?-(w>8y?S3XR&(54T+wu6U*{82d zO0NBI;$rQYb7v-$^2|Oh`$_GIZoiS>#NdRYDJ2hh3r!bIE)(=@5tLh~a<28>IS+r4 zm5a*P9p(1VGv33;z4qE9zvV~I9O8+6y>sWDQ@4&;ZM`V9DgVoInYG`nrh4%l5k)_eJu&y-yQ`5wR9^i!7a$6-U63V!KNy#L>st*jTU z_@4jT;+Qz!-M{bmuV;F>{l{ciNk{t`-(Baf`4G)mKi_4N(}OifXUK$?OcGGqGSkFN zI_C7>^T|D$ahLgeuU>nu9r)<*9^R656aH$;t}DzJxVMP)ff0+?%0pZ4o-SH5dCi*q zB!PTcDKjorK6*mjO2pXHMRi$!gVRK3Dh`~X|2x%cL(P*nO8j%Jpf zwdiK=-&j;Ez2wkmna6ID0chyS-HXFn<5}_g>x=Kcos=r+ zC}U`7dGg5_ljO&bRXqD&n@`(O^;hcr{vS&0{IZMgzAbut%al*f=EOv0_l`#rlC8B_ z`?p@}{Pgpm!-?xNtY7@ApISD5V#40~Sk~Yj6FinGoKDPcpKYF3@bs3^>D9A){C$n? zt@(Va`@ZVkyNP*OT#c$<_AGk3D&Wui{M)VB3<8^O9s4gTWbC!FZbSS!_ow&0*g&g= zc4g#tKAsV^_E`SE%kkp&pBDS?i=2CuE0k%0Q!9Vfj>Qk(+}u3Jw)E7|mu?ePEUm3& zm#IDXxICqmxmaUC-1^HoJ&TPWPx-QUf{pLSTMIVN$y@KcfNkoLhY9R#VrlQ+y$Z`= z`4%9k>13eD;>4SA=hzd8*+NGcKXZTnb4LFU@3J)YmrHGzOwqZ&!}Z$5n99FaadL}_ z`VX+pxWejvd$+ZT`s|$YZ5z2JG#RYB__E|e)Z}N9fg%a5j*CAk&-c5eJx~1M&q>_* zaY`q3S4&%SEUox@Rea_3W;_V{`uGrZw_M`0L$% z?yC;{|J{h|-7~QOBSEc@9}0&*JM&ChGsAh_1P#T&YeE{FX2omsyo9c2uer0!caqAU zZ?C*_?(FLGx;A6o;YMcRIaMD_!dTCoIcIEc?LRHEMf9A~ww&dHY)2AebtYF`D&7=w z=<|zhQ4^LusXX`U6xa22vCi3Nd!MG-{p(c!ab@}ZWBpD=*%|7#&-i2(Tzy&a?M);@ z-#nX>fBx76CHwbT!PWwJ{ZUx3p#8*Q?Aet6s8p<@^c}5vARmvY0EhpYQkJTb}79z@prFche*N7TsTe zcgO6hXw=}lsFt3yCUEWnF8e7fVi>gUO#gAxy}zceZqLC8lY`~+Yo|4LPgV%3+B=6` zu4aOQfJ)``tzU1m>|1p0%Y-;L{g(<$94iw}WNa1IuF>nmZ+>~*O7}-@eJ;hvpRHXYPQc6^@zPY zyF3?)UGuc!>~(97o2S6+8or%#QG?A%&&yXTHJQ~;bJv$Pe_?gw$|~$RQ8>kavVocD z`SQ59M?b^Y2_Jdv% z_fL7F{hVJ?4_j}fI9}JUZh60AlBl1^q7?oU*2h;1xXSOVHrH%t%25;uTI4mWKJcLa z+y6T2F3lG^srK;7-w93@^`G{I9XOzxkiXhd@_;f+mH!0$A7Xj`G#1{l?sdO6KTACB zAu|`_&TSk^1x}qU&hCC)^76nUo-i*XmFU~DY0H*J?yQ`9k}W0r`p=#I_NT6`HQ%|l zs`;(o^ab~xES~?z!co^nQNWF7S*OO4Hyb!!m%LpnpRlHIQFTz$#vfm;PJZK)o-KW( z@Jz(!lTWUQB)(Ynqj#g)q0cXtaz;F9eG4W9&|J>AXCwS)GHGBNncan;70Ar$VT6+0(gHN1~B{-K6WE}VfeFto*M@b!zP^6*zO9}z?J`y+0!vxee$z`%?p;*7)Tve8 zFNCLo>$~c|+wnhVp4Xpif8P82zC+KdrmJj>*;g|)Zc@>Q4@_Uv4qSU@6)3WC=T6t< z$&nEjEN1Fwcew^7P%U^{iA{N{^_nU z53iipjYt-BTEumbNm29|$0QS1%|`Jmm%;-_T!a;M+4<$3e0!DKBdGCGdCB>$r^7AF zzDUfyYqoU(n`O$(gP%n`^^ZC?npQNHFttR~=qqfHn^$PN%SCErE-xcPmqNLFm5PePc`%i_tcDajOJ!x&bBz#Mz zXZO@rGj=9z5jT#O(#HK8HtgQnx~VC@{&jTDnzhE}*53M_9oeRjqRvJ#N%>xT{q^_H zP>H0iZqdyXSd%q4PF&g|@bz`NOxNqsi2@q+^}9J6Ch@9l-F@t4li`y+A`0cVbI*UD zcMTiyWg2 zkNB*LVEFFEFy(C=gO}#5w`PGNmb()tC-y81TYd3u8OLFU4S#0e|9SoDu|vzmse{a`Cfl52|e)+|h+os3Y%>}Jk+pyullP4@3hYuZ6>h5+w5#+r6cIm-3 z(I>2?vDv-nf+ndfy#D&DER)ykP2bflO7}K4?b#u}mW}7T_4Jzs*`iG4haE)P*8LK$ zTC$8?@r=wY=W5HHry^~hnQ7|V{})=n=L6gQAD7=Jl(DR@|IW19`!$P}gThMJ!uxri zioe2gqi#3aHEw)yXVc!xN4o?PMXqsd3VFP;!{p@4E!9^Z8QO^MIC5AntySa5;&&o( zt3KrEiU00>o;daY?qv+$zFeJN`#*Bp-HX5NbB=G{e!MQ?%=$UWhi(5VZ(g+G*PC*g z+Nu8+?tlMX_L~|@oB5RLXf~~o9|_C;^F*buaB8`l@KQ~4=Qafq?d{q~oI-KO^ z&&hdi=3n=M#lQZI;tAuL`_Hd5FSjgyr!!6Fyzqq7io(73y;4pG?N0Sr?Y6+US)}im zJiFp_{n$s>&ZZuF#k*@R-@FMXQocU(zBAX`_kEP+J)ZXZ>l}j&iCz2hG+%t(^<$rX zMsm?#w*VEn`=;&vf4^ijF=Q{e?pyio_W6K*X$_U#*0Dvr&(Fs@a2zblp5AZ!Q{?WM z1#4ZRIWI{sNj>V&Fh%L2etp2T!}11GvRkh0(*H62xuxf$TT;uHE#qM7ciZf@{`%uP zJBzP+uKwWM+ro4-smWztvkE^ZN(cx%?Yb%$G??#^o-=Zn)%i2dI2&+>G8)rHj#Z{D^rJoUJ< zdG=D9z1N~r_TPxldlGvg_dUm~o!$z2_p3Do6q&4;)@P#JwZwU6;^a$*Ki4dor0i~c zhH2u`GKRymWcmsfx?2u@FxGFySh@%CZ^u^W+`oIj^hy{HJo8`Su@Agy%1~{j%W00VYS0OZbAQ!U9@N<4zNS<-ZV&V8HeK=M zo39%6eYXhrB($lJe^x|1_+NQ2)YI zwr$&q$uh}2k@J+M9{tYJsQ&9)eb7#y;%Q%Ae6@OEQpk0DM)kV$(=MG$|F2p3e(T?A z|K#(Z-Krj(da!KGf@hUs9V*d2(;lyE(CE6ek+XT4B}>5U4vtrL?tSuyl_K|+&Tif5 ztnu`7@BSZF?R>J%&$wo1YzpIl>K^fMva067YWe(rQFvzCmumaW>`QnmNq z`ft~=N_z@l?Mall_fXmXN34>T=(lq5MO$86D&N5v@!I1zbJu?9v)}TnRf!VPMsWU(4T$2jCVf}XPG5+ZPywU96>^BRD@*Ljq|K_0^fA=Rx z>Y6OpX)9mb6|wM8b;l%CWt}`f&TjFFEm690m4A8lVt1Z<8Js?I)~p44_d4yXp35&g z`_WbLd7#~rbADd1Y}&}yU-#wki37~J0>>6H@jrc^xz*8N4nsJHM^MRj_v&)-WS-r- zcc-`oXPZ^LJ1QP=|3<>YABHE2Q)H66w=FRGs9rnY#&bfD=yaXi`=>jL)}PMMK45+H zp5(UArEht6o!Bt_^=8LkUGMU`jnm~8*qNQYIC*)-(}dQP>g{L$++lhgJXuFiZ_;a# zL=(^T&xIua+B#jlknV23`_=#b=BMWUpF3B!Mc_-7?I)Ym+S<8y&#m*8O68pQT(RZB z$K&=vbGLBWe_0{HAo|YxkN*D$@3&50AOCaB^^=@yk_ta^IQ@*-Up05-PB!`4Pdsn8 zxUSCq7}~sM^~Z)4&mR8PyPTgBcFg*TnSM^+n$==rvw0i2wQMve27UQ%pL!vMm1F4~ zF3WY(cf=R!wA9BOy*<@$PSK_p-2ZO~ey!iWu~6$^Qp({3#=x3=OG}svy3TVn3ra=r z*)PJBxW-t(K;h$sna92}XZ5PJ_sK4{G(7gEF*2^=DQnqe**!NN|5zF9nYs=I#h#MDEX*&UBQuQhd6iWWCj72gi!#UYIQr)xXBoTbo}e{(wb>Q&{U_r#tA6xh~O zXFonA)+g)MaBZ4JpGTE#Sa{yYH{16+7Z){MPWKD!cCLCIUXh{p_`{Bc7c(~P+I#rP z#^x<0?ZxtyJ#o8R!}F6a^DMNvurqmXs#G?s(W-@;&#W~MYBGGXR?O=3&YG7-JI`Ho z6Fz1*H*UIcx?k~|GcS!+KYzpVoAc;Dm9mqM7p+?FB`#vQXg3>y|HJm&7+ za*XxA8hc___H3sLuDPl#b!XmP<2!YzS-y5s{nz&RRAX}q#hZ8Tq-ABzYCmVoacd{5 z%e?lByDoT3=!#4Um($L%|5ER2D~vX{lEpM=fMtcw$peSa!SL^4>3^ zx1M~t)KXSGU4yGL%kZsV`^lA_{|^5D^K;d&_=o!>`&nx@FD=zLn za5JIjSc>GX>627rC*@7wa{cJDTe)FgT3fb8%)L0BN9)&>6wPUAr?cE{elI_M$$ZPv z$$xp9YQ2N2A87I9(Y;2 zoI|<)=TFvaVb?1k?$-ZQz5n-bo!I?HKbolkBR5cUX8x;D%s}$9ql)7N?wRX zab>=W5Y{U&UJ}`_JOa%I~$x@NQ{uuK&J6H*c}%wuh@KC0}zz zUn=;z&--G5s@?hGPj@msd9qo1_VAa7y*XWXUd8iQ6f<*FeWL1&Wq+?rC2w#J{X5A~ zp(XgVgczqxn&unZdt9P+8H`i5iuwPVap%(OGS5qTmG_cAo=~bx`*GU-zm{Qa-5X*4 zPsR0rH5Z*Icyq;5tbhKKOIy8bo^7u0-SfQVzejQTQG=P$$wj^5*8}S~Zk-i=`g1~d z%k$#j*R<}2Nv}2Sb!%>yuWY&8Z+B?o0i6b zYN6;m?hvyE(RY_+`*$U-O~}oi`t6gJ(YJ`(QHs7sbuWwm8=6no+gS0(g5Tx?L!*A> z+oR7dYAU7)Pi{Z4R_%lGr7H?8PF}$*ueS+^%iZ9WT)Z(VSyW^HjUNvbTZ^)e{`IQe z*&+ER;OL=gGv97He&f_a*86)7Tkffi68QBc-+5iN>xai$26yugx!eB}wEKAFctqTO z&&3xXJd$2-96J9|vcJvIr_%e+i~oP%ZS&*dW|^6FcfK}hMclsgVC!`K!mm-Yzxhc^ zUk?<19ATWo8_rT$IWKu_X_B94-2&+~4-*nEm|Op<*vTn(j-RL7{N3FRyx-sL-hcbw z=hMee-ES56Yqk8SNN~=Em-kLHNx02hepKeGjOq@bD$&Ph#6*wmeaCRPvtj$DpE5Pa zn}T$|?GXNwdFb$$2VA1}=C<68zQ^I^xcu@_F4wi!7TmqL?E341(w|1g#>FuekJ(I9 zJ;Kj@{&?Q*n9E%Q!^p=Ajh}n0Rhzfc_+E}ujr^2DDx6v$45O55`S&!exyyEd-}(3k zPa~gc7w_Iv^$ngjeY$1Y8;R@F))^aHcfTx~85dD-i$T7DrK_cBt~$eh0mDEJ?T$kn zQMv!#c*j3`c1d^Ix;qKSO)LukSe)Op@yL%O7I*WU*3TAj72NlwyKCDkZr<=6$1}tm zq+-0cZmXE*zy5KHLjK*j#Ny(~GiPdE4@wjHS~b~i@v&#m)aEVsxZLvcWv1PC@BINw zL$vOQuZRMV8Mg2L)%s4q_FL!q{J33y3A&P!bpl0CKlx4z&!2EZ?73XsgpHk=+sv|<>INJed&@1ykCA%baVaPCD!t&xGk2gZS~*Og#2$7;t}s2F%?Xo_h@$~ zbJt$`P+bPmdov|#+>_o_@4F=BGcP#b#A6bVqDtl^)ziUEvmQM!Ovr*2|)%TMHI(sH&Qso)}d4aqIP+ zRUd`&_k6R`Uac*Wy|e1AROGzR2Nw4$WEqOAkze`b_m4CDx0WB7aI7I%s^n^IqRw@_ z*reK@V(a%;&10AUClUYWa{gm~nUtsB_~tz?esV(4Z@!)Jqz}`BCOxm3za*`6uY_;8 zsFlHvC2OBsHrlIBUH#*C+{QMJNh%Akt=PPEtLysftO{Mqi!>g||Ih!w;+9v)j{E>a z2CX~WchuF+ypr)M@WA2zx*6heHLRMft5@%qvD$s&+A*`Up3fuKm$p5xjF^4dSNPa0 zVTokUKND=OubU8_!N8#y@b_MVx^;^0yEPqKqjznclhHdfL^0{>wZfJUTY%|?e-pU2Js_g6+@4J|B<%aLU@9g_N%=K%x@$Fo+LZ2Zba_!#) zL!mAA1uLdpt-6@L&tiMq!&CoW{GMWedr^Mym)13I@xf|5rxfmrP5t*TP((-SV*bR5 z%JUU-Zr2OS$O>Co@UN~g@>$# zxoY>HnABp>@j}J+RpE)F+W8wc?RAXlwHerwBQzI>bS zR`!J-mUpD9D|-H7Ts74%ctObR>v#1Q%I}DozBOlU{)YoEjqk|Ke{k%TZ`M~UM}dMj zPdIa?DfS#=(BgT(tguD%m(>cUmh8jEi(d47V%~Pm%;Nv2(-FBlciwyU=c@0YyP{0? zDyNOs#qU3NQTh0<9`j@#M}Z4(%LEtQT6O>Po%fliKmDCBcdl&KR;kQ)QTst>PjTzp z9KUi!1H|_Fr|NnlaYT6;34P2t{nCDbK5xiBQVPJJrZseCF)g2{Y#G+$m|Z?8oQzwNvN+dToEKES-I=>Dn-9|6f+I|;o(4_|Hm&J8*MePdC3M`=XARqbnsLM3{f8b!uvgx{ zbY8+&chy3}ih1srJU{#uxF7!ImhG`)QZ|2XwBN`nOb!--r2Rr_id99d7QOhp?3Y^10FL> zzgQmjY1_-$rqH6ZvATir#ZjdCJE*0B+59yyTO*Z`}E=Ga*wV~ zk6(B%=R)50jb5J~_Sdm2RB2I6kxVeGtUE6@=ezSI*Pbn(cEr`{w%wX+B`at3n<3xk zvyAmyUb8aeDmI_HP>ox&)T)IO!pr@Jnr}TLc70#WvsK7=kluuGfv;RW8)N6G+Fp+Qj@}w@KyU4 z@J#vo^7i7XXW}$n7be)3ykEp}{d+!7MC^)ByYJNpZetgj&26l5DK3b&^|Ji4+{q7I zUm7W}8OFx1Jv%{#v+=z~spq5#>3xgzmuUUr5!t${_n1{U!UWr>{?++AkYX9Vvd{ z_P)E*-#!;jnW&?ocGqF;{uOSo7P>ghELk*X{;@C7oNSN%dTQ1itqix4`%*7wb?^P_ zJ>e@pOf$$i{Im8isRgs-0j z+m@)^GInKC4ovPaU{Ex06W>;&Iq!XPaqpIklPBjbcfRKRW3hhS#HX{(FS;3< znI8NYte)A|zj*D@l$nc5uVlGy%FTFP-W&7QSS6&8RdCfcPtlHM7UYpaLhbJg-bZ5_hp)RfU>wlf*45xU{ z6H1H;6M_U>6+JI4zWlP_<0IFa`^jZx)1s8!c5a&#yY$NQy06#&UDppu-{>@zVMV}0 zyMy+>=KuTGnP2m=yWj5n+WgH`*|QC}E?7N2(5T5LJ3DRr?q<v`PAh4s?F5@>R&-u@Rr<^tW4LVL1_ln4!`YfPPvhL$jrLCGXPh3dx=`lTNrMdR& zls%I-Z{B=t>(kpYH!tYqfB#@3Z_i<{bLnmG-&*fQOg!#?|Gkzml<5Kc40(a0e0OFY z;yT~gXCK(b&=>a1o9912dr95)$Z4CFJbKT$>3hg!b}NQO_oMHp^LGRubF>uq7F=7G zn(GmBp;q7W5?8>#w|vVRA10Ua-&x6A;Jzq%0dGL>1+Mq+zce2EY`bRTo*$RId;EPj z?yH-9bf%hr{TCkpx*rVof4S`$_pt{hELnIl=Rvhy;a)e3YX@H3QGH>14kW&!vdPDmp-4UwtX^zt>=f_ z>+Ad`|CN01GhXrN6lCgjja1ma=gZvmou$R1`^^sT|2sK<>`ar61&rnuHKN|`0BPp*4mdPR!0hbCaK)nRoXpus%X^OxsB^4 zEazx?;G6xn|Nk-jzgzdO@k?m^Ef~t}(E7XL;soj0w`Xs$dY~N<6O&Ms)U)-g>b{R( zdC%F^G~Kjt@;dqJm(|`Shkv|bPMLYE-)Ym8ugvL@Z6T}VV|emCbeQc6Z@({2TjDOo zkbE&LIfw0-!c@m!VozB)Qa8FO^c)qN%_E*PbE3nmw+@e*=3TnJH|37^N`qsMP718% zeJXAkv|ta%V%ORTGt3tV4pBrqqM$F?NZ?cP1>9Hb zlLPjdC;Zs6e&O6#`!6nF3J{w7Ji%n%my=~tTW)hYMm(P>9+z0V-1)|wM+XkFhUMuA z{}5F8`1gV;gU$J$H?F^~{W~%1ujCrmRPPzjD~|@8JW*VJ@7lHN1~U_Lb9;C0w5-}I z_xQ1ITKaNHY3apR?;Y&_qwlF%|MGhM=Wz4YtDRf57y}j_s%<-Zy#Ckz%4hTcey@Lj z=<|KWZ&`C}%iGr1f6bm_QQ2`={h4LuBMa%Zrq7-)-&y!qY<|TX&TYH1R|H&qy^O_? z;g%u8neVU4|H-{Bk2KwSt*Pvhd+LLhfFJwbubQ%LP0*`@uUjf^M=!BHa{kGNTRRU$ zHJU#7Etfe>d5Y=>+n#F`aSbjDOWn-sOp4lc;lPyGz)Hy?cGvUtcVD{O{vHuTUw5_wPR(GGu;Ij*)>Pa2t<9A4NVN4lM(y;Fm-pXomXx&=GhCIrA)KLLM&XA0-&X}Z zjOF#;`mQ^3*~-mFN~WeBxBBcn|Lxn{ygNG_1+H4wzL7A$Wp266;M`?@JEkmgCU3PE z3%wQx4Q@BFNQ-7Owrt*05>wt!ez$GMuV<=j43{L^Ub}Y9V{^~pc79`P`{P@sy*n(l zS`6$@T>rlCF@Mbkwz*k<4jkXiRAqVI?laGHy|{&2XMcPotu15ynIT*D;GsiI?R9HTro~cPoOZQwo{-VSxCnu-i#RW$* zb92f08A8Vm17-e%#jO87H~#ni|Ak?(l3I7Je_mz9D*7({&-D7wFVCmn<*oAUUb=d^ z;moHW7Cv?@#{ko3?E{ba8R}$rAqNW!F|rOzT_qj$8he)Y0gu#jgL;et-Gr z_vlz4=VQH*bm4bC`~QWz zEjf6CpR6^l`RwYzVs#jb9gl6783=0*bFe*Nl6 zJWJae?y7SJ>=NSec8t;ZV#2kp$6CJmvBa0`-JfGs8MXG@{$R5{ztS?s)>Q5IXO?K| z)pz1{pS^Lz#!=$Z-I%AH?tGsQeC+rs+5hYckDFH!qnp%{f-7Z#9mmslyjm^KlAxpJ zsc63BuAF)P9T&x$H|~^}eE(@VEj+*Q&5y$E+kVE~kNeV>edJzc)%K@f*txj(9ZHdW zBDSz*kA+J*XXN%)pW=Q0mdB^>u{_?p)l7T$EN^MqXZ*6tQ-l_q8W$VC*>;OVamK7! zP7Il|m>$hD+wq;-jdkkL4vi&KCP|+*kBHjUHl^w1OU-HdcaBJ$ee}rD=KSK@Z-drf zFM9gB{`>ZQA7=l5ynX-Yv#S;bEQ}Ig6&&!eu8pVmoLxm1`}uiGw%>hh|7U*vnb+(0 zJHCG^^0qY7r)JKAhfGV#b|1ZwGI{M<-9=Ht*(_F<*L{DV+aVIYgnL!@kJa)ik-Q!) zqA7dz_Q@yJ9tbWE(Yas7?Qn5%u9w%hj;9NbgrBoF=WwceYZmsTWvkWe=-Die2V9iF zTbPYczP-JDrT8^Br%INu4I2atQh#!NwD|Mx{onYMnFsrwKKVRWWZZ73Ys%2}@@8b1 z>Z|+y(icDac!Fa z770AOQ@tm@b*4d0{4w>X<&%T@d@i3-U2v$nRmJmH+4QBWYAW|$bu0e-Oh{XM^&Gpe z65;yu($8cYe}5w5&hKkjoFKG8LU*H+ap3jsO3N|95SEXm~T1=qeV6R<4SD z{z*a8^!9YV<&>*>!5CNh)3+$M@{@7DaI5LE<=H8bZX#D-ER`(W>$%KSZ8Hl~jpoU< zJJSXJg-v_^(5!Lam-(7no3BlZ-eBeaQ_jn>(5AV{U5MeZG>@k3^W+>|kw?yN%cSpr z&wTr4L5;jUmqXOCV^UAtl5IWpc(k>*&ybv-^7NMPvgONPF0o}g|NP0#$u*yj*RgEs z5flFNJN*BYJ6j^JPfJ^S?fq-+!yEMfg@5}WUg5tz>Z!(!@*18u>%6Yku+CW2RKHyI z!Ct1~@AH=3U!1?zb;`-cf6r(AyRqZ?N3Ew#QkpT3PHb3id%z;ww^z<{&f9eTXIkHm zRtjW&k$IEI_Gami(}zM2bR0Z$-~UE|!F{&-`<+_Lxf3P&zW7N`{w|!odu{BcynbQ# z{tsvKYkHS04=n7S|M#T2#OzZsNAF7*xSsCY>M^_7EFw|hlCxIh{HJ=6b5*vKNALOZ zsGH-#jg84MyX)q*%h$HtkvjG)&GEU)UOp$!CXFJoCi#RXZjaebOU|nb9acDyV*5fZ zW_QWVs*vZ`UWvumK2x$4e!$8&@4(iW3dMGQ*{7$zs$SZ1_RSlc%6BvJ3v~?L_P5F& z;s5^i@aH{BhKqiAPTG{Qar0*9y>aP9SxsT9k1jneUinIRK1QZJd~v5H5||Lgw$ zc>C%H`<+^UKU)>J@X&V$0rrxr+`f4hCttFk6KZ3$|Nq(Ed!6ZCzxK4vo$uRKY<)Ky zc1~ivo5!!I8YttSIPd$m#G?<6E%<*wwBk8dt1hx>?q-V>7BvN84s>q;;LMAvUln9 z>}7m%DuQ;~x0N$C_AiigJrdY*D`)_Er(1erCFMt-dX!ttv5>6-^1?n%<}~=J|rH}cyz{@KPcO5#=QCLI+^nX z&7@eqT18H(d9c2A9#=t0t^CX5Gj!Bnes%DuS$Tk?X@#dg|IWR0FT7q>Vl6wb?pJ1? zoc*z5$J#D4Ta<8srk?L?y>^u$P2rf;9kvP2E$8~RgKp#7y46*}>e<83=k5J>-%ZQS z)y>@+wf{%<{-3MkSDs5~<*F9SzN)#Rz&^RGu5Yn>zftV$huQJ}itWBG_WyV{eg5+^ zH=XBLRB}A!+#q-DK>5DEHtOePmDjX#XukLsb!D%>YVTG5{uSC@5PyGr_kyqW)BJp6 zBYv4>r?y^U6dLgl`yj);kyZn_Cx^KP&<>hTVafBsM;L&lxM*W64 zQET0H-(Gt8<%3GOh401d_HA3=74z`#Ud!Fmb8B0K?u(z*meu)nUP|gcQ{$U#7KU;I z2DYnzjXd;^x36BoopN72dB>|fpSV3?eQGk_R2bh$EfDW%*{y1HYX8Yk=P!wbwHH0v z+crOXD^o~?{_kV1*U$c%uRO?QsSL~8QwY}&6 z|K0!f!cp$^_Fr1#|1-rc`*F^EKIo|F{ojQBiyuCEEfXdHHr_+P#1fRtAZTHVT(0v!fmh{NAz@X~A&aV{36t!Q{s+zHz7Q7cw;L0`&+#)cA z@#?-`d1)^kSvh*j;$AKiD4!<8bl*MQGIHHSuSwCp*VwXI)y!KQJH%by4)a@)x|#+w}j=#U~9CKf`Jjbzf(kd7AB&XtKEUzIWApI;9D`K13(;<=n%$H^!T5w8BC)?!_~Wg(l7NH|YRTXT1p?+f;lU9oEF z>NBG)4jj9t*4@sZ+_>YW%4wtNEE?;i|7IVGU)uWCcK-$MdtS`*J%f*@OrA9NtnVQO zrMKU1+`YL-(tpFw)Su1vKh+LCQB)J>oAiWpn@5;Inm zsh$64_p4O_3lH60pC_tyXM2bL|1-~zJ?jhRUltjC>*24fx_$E14c_^2F5j!Zl<~~V zHHw@6?8?f^EI|ug+Dt6xB|V5dqtRX8arQoc#kYGcDFxa#i~{SzZ|-=@$kyoC5aOK6 zXn82B{IaIg@(C&ta~XxSRl_va7_8frWO}IM(5mxEt*hs7WqzFEttX+AIVm~F@!nMp z&4781n$vUpvwXJ%#O&PIbFe*TV$Sj}+k(T^tt)zcNyyOdZW+I_=wxp0J3DH*lX)&b z4%YEI`}tF`{^zIqwUgi5l}p;MFtoKkeeRuJ=Cp}VByZoot)r{^)!Zia>i;-Vfyme+ z_YN*~xc9Z^Tj=+VM{i8a^WkdM6*)RLHsz;Hvuw~eGqdA27XDv6l|w|RRcM~{VvEv3 z%{gKXTiKF}*PPrKCT{-y->idcZR~nVJN1%(pBKNzs;72d@Y*65L5axbBTW})*c6AQ zs2zWz8J5nmdLoyNztAr^uLtwuS!|DGtTA=o&bYU}MK*!OYuCn=8oSPS?VZ<0!_2P=qDTer8Es19)``ey;c(i#= z{X5Y;Ch0{!#+GxLqfc-cFx}ny!)<5Q#8U^16HKfOH6DL_v{`@S&b_V|Rv1=)VA#Ev zuTG-i(G|^E!oo++vdx&I@WCP7gHzc!LSl`fp5TV#v5PnCtK`4(?|YP>*ygKN+XCwS zroaAvp;U17-K~xpw`QMaIW^&{PJr^d-i>>9o?h)edrwX2WNGvDg>OH-E{Tc;Ed+iW z*8aAPJ)5<1(jtM1B!!?=TX)~Btljth>#t_9KivKaOI5e;EN*pJRNTBpDA8fL)E36v zj>8Ri@8;gxYnD0f;;XGMp4tjDHFvu^wmehrxBEChc30uc^3~eTtz6~qM;TTW+<*MM z{!{09{rzQ)CCgoR&%N*}Z}Ku-zqxiN_y68&zbtP3!&bSoA3I*&w7T?KdY)pa$F%Gt z)wx%LbEd5+wPFn7&=JzMSyR%M8YXc{%vZB!`(D9>HI5wa@855!((qTTX%(Dikz?^` z%Y`3a7jNB2txcVKV|C%jL#cZ4`wo@w`^w|~jQ`^??e)f{cD@fP?U zW?ti|y(VCs!f(C6=E>g0Cq)=Lj`nR~onfoT+T7QA(eD4l1*s)#?)|ih+_P=Z_J#@X zs(BOiAj-5L<9m&?;G1W&mWJnkJh2eh zk54Ph>tp8T=2&`XmkR5$1^M?4IlrGPGu$zC+G5r0XLo&@X4-yt-FA>Kqw?Kj-}|46 zj~ohSsPwyaPciSBK~%D@hltCZ`j@WP%&q=B^)}zJW7EO1NsSw>%u0?>G;}L^^1*PC zfeM$?aW|u7>+6GG&Do=D<@`Q6qG;~-*wig%5y3r=58X5EQo3Zqn3z#+)e?BZZ+WZ0 zB%kGL?(RGL?VH)zTRVE2UgZDpzW-Bwe{8IXR>%q=Q0*xE|LXl;JJ09G?>_NXI^5#- z0nGy&cJ6gsY7pX!>{!(F$A zK{@pPAs^8-OzA7*Z1fx|SW?>qGB>ui;|a>2pDF+0AfnTO{K{E)kBJbBCQ+zAtwN?r~QzOu;b zmX}!n+^4rru_>((G*_SCHR-8k<|8wP%vnONf|0X=)?fc!TNf(&*znoa zQ2kq%&^z7-t+IW=Y`TKq@|x=2bh+FA9mgV?i{<|r)CsQPy07jnw8u^MnL<4r{pna>cTT$g zqwc>C{QJ&$pWYpFFK2OM+_cTNUv1b?F{S;SZIeqN_hGxg`~U1)%9=MVwOMSL{H3pl zx#yg+4_Y*(|9!g$HN>a9)7rYp7-I(AolUsZOv@j%_G$5Gi!CP*y2yU%rJM3#P!VZ}VB z>~v;PSHrtYd}H_pG(OF3Sv`GyKzH)AdogKWUvU|q)hyZ7Ev|J;zLsHj`jsrh&+K9| zX3bB{%44?pK+pi~=)wRuio6DznF0lXAms^(6b46WLBxkRfTqe3UZuSL! zk4Y?=F-!N~%n?fpRlJ)w-GE11^a(!$53|xM4pzB+>v?PJXKY)n)YNhDr@;pGKmVRh zmR%&nZ_It_zPI(kz0w~TP4~~Je|FBH_Q&_S{hwo>eTWNm+;{$S*u#HwYAdHLTEc(J z`MIS>>lZFfpJc_e0sH#DD4Y(Cv;41R{MAZ3JnuoO?!V9T|GV1#zS(b3zsGa;W-kf% z65-}al8GXdw``l}G~w;LO`G?fT&=(7$dex;kIx#`tei1-?$XVho!5prYq3TNn@PR! zd%kw}l{bPX-)v@Vi(;-T2;Z*sVY>6@J6WHccASqWUprx+(if+usGfTf&%aJTC+se~ zr|_q571yz2*(!His$!mBJDbX+Hp-FzVgc@ zxhS4nM{8DoaPIHjS{fD>W>HYUsLgt|s`+_*P2=6*I!)Yo~79$Z2L?#`#+Ax&EGGhx_NdadSE;E>$^e zdMfydmE+#iN^#|z#b1Y;`SzV;eAz74x+7{PO901fCX-+lZWFPmKPNbAIB)Xfp8WKV z&Hi&|Pix0S?>cw?$I1U4g%_7xepQrRJ@vxpokg$No)`p7=_9}9#4c}HK z1g$xD^3xQ*<%e$^k!TEV<&jjP#3U8Yj4^XV{$oSi9egY0vqGP3eYL+_HZ){)|`ckd?cg%Cz8z_s8#nqVq)qitZ zKy_}!JLw4Sg}{gDp|Z%P)V7~XXd^0!>h`$@Vtw+GKG&D`q%z) z&)k0dj7-##w8;5C7gyVcJh*RMA@2P7ci#i~2ew=_Z{>O$4;Id>D>`)ci_s7BCy{Qm z(o$wFo33)?tCXXR<;GoWdOz9B5-yIZe-|nBm@#&>!M^r%RsXt2ntJp1pSg2K<{F1n zeBk=)5C5mXKijNx`qS=x=PjSFd;j$GQlrh^wys`%{pGut?<6x#E^(Y~I_8w2(yROA zK*XmehX08-`P!WX8+a9!WVZ3RF*XZi929D7V2F0gNM)I%D#6D4O0x9(m$2B_tD#dv zXGZRPe*4|t^pEn-?@fQdwwc5m4EzoB=kes0^ncXMt1>F?Yku7(d7D(ad4+j=ja z5%+FsFZ0TdNgZ+P+qa4(b9LppE&F{&_sk^m+O)K^ig!DoAMm`iqw&I@rStzSum6Ai z^~D9-Zr$s6y>{EJedpFzJ`4VDk)f868W9`+_{Yb`HRr$AOf$*-bdbMpf{LewiMjLk zyC3Jed37yv7qIHl3<&HH&VSETJ1K0}e3`Q=*6p}x5nS=e1q#`~PiiJ{)09(eg+W ziqXh8=Res*y2HSsRWWknV+K){mcW*>S$^xAc@Ey1GjpcqoRXHpmIWP<@_m+Xy zJ(O6_0$@V*+{X2KuYDIl$D#PK~ zL0Jk9!@q9#yzThBK4AXZZ4d2i>gH~}T2?-}S(QV@$zll)M-xl7!fCFSW|hvDU#d$s z%gugmJ~P*J#=NNv!}8B_H# zbcw*1-?dV~zII=H?|WEXO?mjFQ)vD4l)9j*WB+%T#Dz+lJN*>0?%!B@zv6f5hf}E= zX1lCVcb8$P>oXOp^qcp*xj5TonZYqZHO*E%g|3R1JJWw2DgWaccFS^ZnV-}$5vjiU z7DvxYn@7aNd~vBiC!}V0&T`AQnUz;>eE#S6_r7tmOd|(J%lWbsn|PABmMxPqiRKLp z56?V%CSh%AdV2fWv!HR+$e0)v-^=p9TmL_o|C9gKAs{+8|I90%hFe+8hpzFwUGw13 zU;dAu!u5(?y|I+5c)++U{aHjD>tt)Qyxby5BR_j2EkK|9St|JD}!P-ptmZYr9r& zEcyM{+TwtC?p+P}@W|i#r%v37v)w=AM1P=c*82ZDYHK;v*{v=&XZ(Lqk@sZBHZ8#o zVl4-(82uhSk@)VY`Tu#&&&s#oHmNYE=Sn_ZqjGymxZwn$^lw=`+Am$hxnr-DNneio z{bI`&i%bo!ZV^RKnFYSbe!UYj&(qzwck97Z;`yI0DEk|l8z0?xbVmN)8;e;y`4n9~ zirn;@Z;>n1#^@a$m%PrjRomq3HIdJsKhLqLob+36N5i&0_qYh1Y_;r(eC&3U@uSb*s7vnTUoznomn;I_`H8^|DK-z%N@2(ck|ZWM_al1Km9ykKku54%Wm-x z$M=8kUns@(n8!=1WZvW@7p;ryRE-NnSIYFa{MvF_NW!vx!=clgrm|#iyWkS&a#26S zXXz6+=1Fchp7ihg5^9#8BiubDt+>tEUCbj|^YiiN9m1ae+c_Vf@Rns2n=Ec}h$H>r z*IyD#H#&OU^67XyLm}YJmhwy=)0c1GEm-T=%6N@y%T~KhilVKhM>eY46&>SisM~*E zUZ*1KL%qHw!>N#}L_rO$Yi}kV{hPb5Uf|($^?SQ)J#W1AFgkw!_IJrM9afD3OzpEP z>K<>ZvHN}OQI9i+>6BykA@fx4dcB3M1u%}eAMa)^T3y4;%zjwl`+xJ=i7lQ0AJ{Bn!vaa_je%%@o($cjD5k(nAJMK1^gS%Zq*d=AqjBzi*ajoM91o za>K?wNT8k5I{S6W?cFhzUtPuK{}W(4c^RM9#C7s_YzXI_ z)+yC*{+BcUJ1X$wdKACczC#9ks@V@+ulj#vhVZ7U#1Cy>9>h18&aydwaud%4mPQ3G z;S`DFPfZ#fdzg=SUAw;hCg-z`=lvI|Ygrd6DX}Sd$ zl5y1jQ=J~GfS;1!i!}#4Gt_*$bkcJli(S5~D<&>}vPv@j+?>S9O39@ni6Vg_NALgp zdjH4L|10GfvsS;&-n@%t!M0lsi`C`-q`NKCk(rnNE}(hk%NhEAkLzE0U2=2B*28D7 z=WpD&r@3Sy`;}!5p7WE|`~I88u;O;EsD^}}tlawP(}ILN;@`hN6St~xqV$w0C1quX zR_xy{y^XK@D3tC$&t1eYdUY(*#0yy<<6Tw7#8XdfIIzR6k10Asgy|RSM#hV;7jKeT zUi&tEfzlK%kI8J6^Qt}ff0Ei_DiK^^`{L8A?c2&;eE-|D>i+x1Q>3o^4ey@6>)-#l z8J<@(YHKa`@-W{{TwwjqLSkL5eEx4ai61X++a<)GDhfTf@uA5tt_K5$bLSjm(Cy#llHn1pT+VA=KXjRH@nw(D>etaRyLUF3S$@A? zZ@+fu;VrX*w@iArc9{a>bsdz5H&qriDS8`makzeo3uk(zY!Lk3J zJySco2Qy_(r~zsJ_E zDlp`?t!g}OU(tA3UEH$#zGmK?4CNk`_m0Z*(u#Ardz3{453$)jQg7OB>sY=+uQEvG zQnE_(Rm*E4sxxjx|9SuB&4Udlvo&v9&(=`wcsymz?dP|isy z^XkP8sO)QKmdRJX$t8R)@lIx9`>V;_oA!oBf8C||XW7@y7?Y~I(TAYs99k5hU=L)*r1Lk}VQc~g()zb`rQd7)j8il@+` zB@ewD3%-<>aY*@Y_;A_&V{n2}nboYj`<`96xVYwd`o7hB5=jA?%8L*d@*?& z_gj2QQ2n?3e{26QmV1-6dTklQm9X2<7bG8PJ`(k{?}hM4<;Vp zPdqS-M}dM@S5`7USjjP=Nuh$>V?kE+=Cspi zIXi`a8#W3j6bdU}FIR7T{wFP0GWUD`AFIb-Og)av_?ATlHmZ+CRps`|#^^Jz;moy>a%ZCYKiut;U)RM)=jNZw0<}t3tF5?Ue8qfu(!BbQmA7P% zPL{9fdAc`^Wa|Pc|HXx*aO-spg*i+!Q0h z^<2P6DM)DYbC$pZj~-T*{gQp8pv2=GSM^nBuitcqX>ZER6kC4x&s}u=eFa+`w?crD zma^=$LzetImK^FO-GWoB6T{S<$b!i~qA76%xUjw!Eb zK9luxA2Zk1T3+s*3XAUEJt+L1`_mr&Yn!%JO+LFey2MJhB)@&~=cfGsH`pyIBbaKf zc3bM#d`(@qucr04-`vNqu4v(2%55K-_d7mi8D6r-rZU<;ko27v4-*jb1B}YO)dwf z_Vw<$t>!gbfoa!m*?GTTy}lFk`qHe(1YyT{&uhMFpEt0t?+K6Ff23XR7enT(OOyL_ zPS2P%>yTJg09&}_zFxzY#ESFQ2ag{=E9k!A(sr)l}nrex?5q($v`cY0Kv+6`;|?r*gfZkE;uH^%~8{EbUEMe7yD(e1fSco z>@;iJfvB^`)|&QQt9ha<|M11kWErcS4pkYm%I-a%s6KDeY{?d$mt{o-T&-G*=c!IO z*f^;pKyk@p4Wp{PdX@7QPf_v>zNF#idH#m9hO11QYT&}97kvV}3bHFDH~9GbPhO@O zmHo&C`GD2i(=i6h z_5N1j@}1i)k~gGs9xyO(zi-3N@HB1fv8?6-1wjv)Ly>bXKB=tNKYKrNj_lJP5^)ax zTHF%xG1mkCueX2weYXcoW5-6dgyQ1a;d=XAwr@Xs?3YorwDufJyW{_VhS$$<4wS!p zKeaMba`ID~qJK>HKhJ!x)Wfp;+}wn$yjhFY`!?TwJyB0)nFi0itP9PlFI5(KeH3g+ za#{J*)^2;)8lqS6?6m%e z_WB=Effna`v!!KbSsnRxOKi6F=@mQW=KtK6zx;ltu-T-8D!KR5*8cM3d8RDrw3f4F zy0LZ_(_@_zUbkZmr>cGVUHe4jNMMUu-_Dzn`}X__-S?^W`HdS{lg*g>=Gz>-n5@3D z=%9aFBenVa$!Fizn{YM zYi1cAk6yAcEw^;;_4xg#TG{2)@?31b{|TQlclOgWJKc9|ESh2beg0v~-n{P|$?JbK z6>DstZuofj4&AG1Z)BhAKR?!C(|(}-s{A1X7Y)-{svr2aWNNCqJ=aiuQFhzn`HQc= zI9^_eJon{`i07n=MXu2ay>2UC#qe&MF5IFh@uIXiujKa{=Aff?(E-mjR8QWLU6%H2 z!=+EJwqCa=`ehRT^OUj8w-=8!M0W4q?V;&;x#Ync?!zBy7cv>VIkM&npZ2}x)8YD; zUzVNxmAmfVjx*+UkJ~f1&eBk=cyN$AjO*+2|2O~t?q7dpFT8E4TbA)oC2?FL9ajzDM{cr(!`+lg8qO zhkC61z1-bGqis)mMtq;Sp5MKpxbKjd&(h$Snt!fQYsGqJN5r@e)f=k7AJ&$R?(%nIz; z$g1u)&rSOHt9N2SUc18AeR$B!U#YO>yM;j8@y74L(Q`w%F6b9636infb>e9FwHulF zpWl40KO*dJ`2StK>-hDs+tD`fu5Mqj?bf$9Cw}t($y^*|^XtXp z2PU3E8+R1UP|2B)-WR<5e9}^fZYFJ$b0SARy$xry@Q^E*VQa&|^hjl?sp;7>XLO8% zja?i&j4gMb44C-gWl!tUi6(&>Elr1>Nj$Fj(b(R}bad@g(MJZ)ZcSBfS`cD2p|PJS zv-yHpBI~Ip1F6~RDS!1`?=8RnGC-s?y^!y3dH0IMV+it-stqm%hRE4$-!fD8Q3>|xqs5L;6nD}1<8|) z7aD~&{eS4*I)fwTSSW*0tjvx0)&C+bHy$#OF{lYoWj^=gQbS={y}sg$-`g~6v^K3S zx#k^tAZxW3-=D&>xpQ^4?k)GVu-wA?U3>TXz3=~C6Vue)9+p?|>k6k?{@PEo_kWvh zGI`3@so8VvEzf_ieHN`4udH8nMo-6RcR@?=^LNR`)ssK-&v9MK80KhY+-$s0cBKLn zx98%m)7#>$F0A^z!9pP4z{*x7Gum<=Tkic^MvKo>t~^kl@#g(@>n-Km3&VuDW@Ndr zcnP>O28vAdGu<;~;noP2b6jf*EtrGa5_Gm*PR`wX_-wD;Y|AfeRW7&cpDdpB^QPq_ zjRg~ru_T^2^M}db_Nz(1%@+-|``V2w7Cm}kEd1{5i~TY;=M>*?YzuMaczHW8FeT@G z-a@6POPfQFl-x>6&J|WXvc9DIUjKDvXXuz&b+vecxZT(O$ww#W@Wp6}uE3KO zI~FW2FL2Os{&lgTYe|MSP?={-{Wz~F~&fTk@(k^G&Y&=V&YeP@~hr1fnnx2VD zjsnb#*EA>eDKuyZc<6ZEVPLuaHn*y>%~dI-#idd3$i)6P;+9WZ9a=d3e!5N*YSQ4? zpc=8tA^0uBj`C^Mhu2rQGVuS?6e#>&i8pCmwIzVH%O#)&wKKt=p1hd zn@)0l|LG@*4mS?|`#yz}MWTSspl6vD|8-sOPT_g1ce%PJ^DRAMm&f$*l&^-3cXg9M z)}yT<-4DAS*3XbX@G5D6fWn&kvon)YHd`H!Tz{kSt9YO#OOK|(GL5;+)u|?70UKo! z3YuT9Tz9hT;`xyC>bY0n+j7OZn?FBd7Z8x^q%lXh`E9SRx0|g0`~ddX8VvGSex%MIHWT#)4O7HB<^=_J6SEVMoK`1dUN za$(l(c_EPrd*1h*PMbF0yjAUe`j_9eC2depZVNdl z7%?g@EGWs-`S|IxeqrU(v-^wd%Wuxi&i#vryb{{<|eBA&40sVi6&R?H*=2q5fS%$4wzkR#i$!>RGb$Hyla^=?}s8f2bHW9+E1%bvtH%;nd~!Us#HbH~-mv|9@@K+=ngfp>7>o zH-*!+{g&^|SYbRb$Dl7rs+TQume6s{%vnmQ1|C0oLK_U*;`TQL@yAZP$#6Jup#hIO zLrm`bm#Pmu#{Ws6S>z|zAHS$4_cfQ+DoH-LQLg@Vy5~%jsb}W*uj6m* zV*Y)5-s6R<{!Vwk$$NN#zn7%~*BTjy!|!>GfBH}Pyjj$7f&cchYj18F?BkDm9=vMq z)p=(wOz9I!cK^2a!*RY-|H^k)*OxP#c`!%PW$FDJi>vQX7MJ^RoA2HBL!3{aer;iV zn5vul(xd2@z;VUICr@KjUmU-@^=fEbf0gPx!nHX#4k=!Z ztFc?IDf{i&-gEzHgW-~(sg7PQM|VGz(P$NF+H?P?sMKWfc@r*AOU(;XY7%IYXjx>? zWOJG=wKQ^`;-L%aM_01V^!;&4TU#V+*3Fl$&-itPR5j)u~dg0tL=&VLJ&Ui0+H z&dPazmKB?%IUU;2YQX5Iz}Q^+NH$U1j^jy2a=|$#$t9dEPFjszB8eh`M+I+X9nx5K z!gTF3okW4ha}>^-NN+F8c)#W5t-DWdeSQ7qm*i*nXE$%`J^C^D_#Y>(Zh>7_V#Omg z4L12WmL{w{AmO->_pj1ojV}tlmYqtQ_BaTCl%H4G7#%(9kj5m7g?I0)~GU-&2g*50~y%e)IRoKaC|)mfJu2uo*6VSN=rGrt)CJzJz!! zi#!3tqfv9d{uVp;YxA}Q?YrNCG8>BaNU&x9Gdf-U=*|VTZ=0l!ZDag?h=Jjat<}R& z&o*!2Z}sPR-~DgUerR@X&dC#B;>H;PCd=0xc?t69WlBna%Q~5l9)Vt!^qaWGN>s_2!Zr0!Pv%i-hv(*$x^dd6vcBY@Ar;?0&yTefw3Zg-2}p z|Hr;G6+P^uk(B@DQrP1)OXq*>d^}_AS>3Kh4}M)$y>{LF#4kzl_{y0_j~-U(?KtN1 zxV`Sv^MB{^uN!CQZrxiOHksjC*zF%hIx}l+XGU6V-n#YF)bMphwJ)vs<0>Y!F4pXI z^ICsdy)Sr?%EH_C6}XP(s!q7K&9hwNl~B9gUWsIer@?b&>mDvrX*+cNqqSqA$!zP{ zCXX}u1_6$h^WN0#J&j)turm1o@RfnJ+j$i-62;X@ixFIL7Tnp!McX;|Lz}9 zVqaZr{OQFi_w>`na<%as)<;fiNQQUqxSap5&ftBsVe0Ko7J&*f5+awP3K$D79GJYmq^V!I%A=7xH~2Z(H1)oe*$d-u2?XoayGb^Y@FTTN*rAWO!_Wib!Q& zfPjmjQI}v~(?mv#Rs*huDwXBaHN+B%QbZCy^=vV8&Hl#{z1#QS)Au#=-qtm1n_rKJ zjC=fL=j1KRqPCb{w@|Ex-GFjcfm})JGOaBo5~o z9sYHUOB%fFw=8`2!vD|Q`M>VyU)h`iYqq)T&YS(4+t&K4 zwE4PyEfc0qUd}IgthUTL_tQU37mZTX*>~Zz%+EUUEz{=3!MoFZ2A>Qq@N(U3uHjPnNHk^gOt z9#Lnz%4Hl+%v&En)%5hGbk>aKNnCS21hqu;Y&KaY{pEMthB+VBuiKWn{kDfl<$8Y! z&9wA%_bi3ATbWmGx%G}$*xBcS&^M*-&{_4KY^rnDtoowa{Y|}TZ(@MmpFd>>{+_j9 z{I=Juu2!|+?&|Wddk@?SbU$j5nILfVcc1AVR>ubq@3-)@Pu$ef#go@`dZ|y)hl>{B z^JY(Y;B~w~xLS*K-I_xi6qe3<(~}sXd+_ePpGpjg{ADe_KD<^*Ve^~z+pL`T!9D+H zkzzI1TK#|WpZ+A&sJT8myL*bE(CP5`wbPQ1i|^RF&E)eNr{&muS|M6u$ zIpH_=h}f(}7v@-%&eQ1HdnUo$+0%R8ch1xkdt=xXjvrsX@xJo=bcyE?arYj4dU|?G zl<}4*-D~0b8+Y$Mos%u~mP@Sv%>Um?C+fG%^UPlTR`$hqNCjB^DBAAh?B(z3=NR+b z96WYTuTaXUSR-|p=;v46(`RI!N#gFE&=;rg%;$M+uXWl*tM8Y5-KJkOlP_KQ>h;!d zJ&(_BX}mToZ@YJ*>CTs*bLan%P-^m9fA;nI_{aY?i|;7QTYd#@8m@<9t%FMHT_r4`0x1Qx0AmWPS85|;pZD= zW9Cgd%I7~fzL_bIw4hqf^Wt$`Wuhuw%$(uGs|r4KA%+oF^%8WWA#EC@A~Xn3VjEj%ur&_ z&L}V6cq;Ho?JUn<&ldkr=3D>iq{3uv&q)U*;;&wC4}5aE{@%I!JD;2r@Jj4z@>~9x z^Z%)R4}LFRJU_EUaf4e^sD-xSIu(PdT?(DHnn~;V*>aYh{LG*(_T%dL`k7z%J$iLZ zOv%fl{$Zq$(i_-X0J~p%^{)M}tbBMuNB-Z3%QCiAb7tPOw3;h-&Qa)i+|K8*@%DRq z1DtL!&UXs=_w4rV+i{#HEL|Q{cE;`eAr!V_YHRZ6``?S_|DL&Lo@@5%w{N%a+Ocih zEwvl{f4H92R$H-?_#q9VmqwXh@`tSpjThx{dEP+n@ud7da6|3V~ z%A(r6;lT3WQO{quuC{un5R&mad+yv)3zbY|RUYMQ*ROFl&sa3yc=EZ8C12G(Z|0U* zY*~DtGws>(!b?f2c2VlKo44C5F#tEsD)8i|8&&GCh z3F))mcx!BH9BZZh#6#u!^1j!~7?lL&x(0J{{ z0c+MKHy?rHH+0-Bzl)uT-M9Dc$w;X+rXs2@?{AnBE78W1_+)?RwCcT)OQ$1X&RYIlNcm5m=+2wz0_;iW}tB}=U)33RcN*?KChwnS}`1$+CTfM_0b}7z` zoug#tp*J2{HO1k@Gx#{jfiD)4zV<%&v>YhEe@*>Mdp`UfO%Byr!^x|LGs!|5_~iFwgmC zDdWHIsje2UkH6Wd#q*HirNE)U8*;mEiiJmbY;65f^p&QeJlP7;|1CSBi$A)5O ztSzo6oOko4Wr~E*QQs61rLBwZ-c{vc;yZih;`_H1TW43>NtVC=^Ohxa$s!GdTj}4n z-p-Y)`;k}_d*QsXRIujSo7ejP+@1gD&ikvzsj!w%xbITleQ(+89RA$8|0Da|_iN!h zYI3LEbUStR^z;{{yCiO=X4TzN&k$=Xmt7oYlz2{&CH2V#rBkk3*F5Q8!`~<3>L{Z6 zM9n?BdopXHO69ZD=ZmZUNo>!%bI9WC`v0f$KfnF|QeDu6gC*+st{PR=Wfwf2vL!4! zQGCf{>GX8DBjwdgGMhHf+H-=lX^MlZMYQMQR1;zSjWbLh9dz2S(KSgiDo}*AP==p_ zF?+ZB^!8A8O=I^p8p@Y`gj75{firP&HXxIrs2|ty^niV ziG_UMll0syPvn8Ih2KgYgP<+Zli0W(PGxRu{J&xHvMS#O;Vh*H@jUw<>y2c;`EC1^ zxL3<@>d7bHb@~6)-j9~kD~@gtV(sc)q~Iy^X^})t7%Ss7%aVKQ96VmF8tR%`Qj?SC z=3Pw7{Vw+Mi^ym9zT(HHd?!6K3B2?;`F_>B&*{&8&O2W>>F8lzsl@q<@(U{c)-W-x z6m*&_*}H*LsUslq&GEwLdzczZ^CkYi|8Kh_e3C|eNHS05yylG>FE=0iWTUQg`EKmg ztE#G2r#YG)_%U;=)8Utv^k4P(bfReICz-YO?Ta+_c=Z}ar0)@G(Aj);i3J2tC;I=N?mxWs>YOudI&$`>T0f_AFr9oF9{=pH zf9(wE_48E;;3;jl54K;N{+_Qo<-l+%=catAmTRJOz75Lvp|sv zqHP)+g||K|wg2JVCvWR0;+m8DcEi4{eZmDlUMNMqsQ*=7|EbtM@cg8$SHr9svR1#1 z-F{fzukM@upI`a^&es3`8K3^`L*|)hp?$LUUghQ8ch|-~{(LS^>E9&Hx}mC^NL<%dfi3lk#+p+Nqt4d|yg&beO z&JLUNFQ409GLfCwA*IH==I!6?(9#2Q8IG$w`)%#|^n2qb<_hL_Y;St3c)Sww)zgJ~ zl7oib&EDRSw?t^K+6Cv*xXy9{2o8 zr}2wJhNfE`_P=UE}Qa=Tp1=r!Vt=Ki~hO`>RVtbnaGW(Bk;o-!IhdKYAa~|9e*c z@5TQcOMkGaU5MFL)qGsOy36MM#w}Y8Jq+efki9mud}ob6-!*}CQ(`}He^T_#RTgNJ za=9-f^!$&L9fwG9d)mv?*mt`Nrajfp&X}vnba3lZ(Q{>f#XmoZ_RY8Sl4zf|)gpj{ z({Gf$p5l(~c>GXAzw-|Q0xN#%=uci)xO z=~&HLqRP&}ljV_Jt>66P_5_E!st3MJeZzdh;@Xkgl4uJxrVYC-+t^p<1&A3u;B4qz z`R(!Z_YCPzpKPf$l$>*lYl^|oJ*?M^zlZy+TexD^ibao{=TB3*!5pi4K)z6P_r-E)=RUehFB)@$-(|jKLPKH``Yv`_10I zr?%fRhHpwziqZb&psu{_)(Qu+O{Dh4oRWBCvT%8ElY)YebVhJN@>?tE+tO>+j#^Z%s$9~YXR?A1HBPVjV(28W@U+WBG~$zGEthFz6y8QUCK zJrZqxTxW`5aQb;aDC1raSA%*rb2jfWv4l0xJ2j5yMmD`mnDOD9rGSuN%e;j5e0&V2 zdKzsH*njD`YhC}GasOquL|Lx&%O1$a9&BhZ=uwJa*5=68q%q}19)Gk*hryRx^=T=u zXUD|eT=+Ka$J6?+OsAt+gV$O<>+@@#YLRSN^Mhky=Zo^9XHncOn>qz1tyy1abZiIH z29I>Fsq+pPKi}`aBKMGi%4wsN7srn~W$Uzw$JcdoKY#!HAiKQE^|m!9cJ3;fyF+s0 z4uku3KRVm(elNEFWB>k&F??*n|K|3ZKmGsL8#ms~xL@nPI9tclW$d?| z=)JDLdFRHni~UVs?s9HP^wJm4$;&sqJImF}o=4R)Xd0VHvr&U*>4~j-{pYYbE8J3I zPpD)GmpQ;`@bBK+tY3-xOtx~Z_m~gf`S!b@`grqh<$@65^W{M*^%52GFHWrBFgl$r z{qpVhha3{qGG#i``UP|Q?$0k|zf+;RyR`bcg(vGliOv7#@$ap-W}m-1_U&=&J7LF- z4Zp4PzrRh_OS4wD?xoMkO+3jwjsg{RJmO8lId5|&FB4p^ADjB}m}%Pb=NW8Fm+z?+ zr_0O%C0rnD;~Jzcy{-0Z>9r+iw@ML8p!>* zeQ9Bk2&>iQdxAmVdNsP(UNJig{5Y{+C)IQA^wYd+mTYJ<@to-BP+u;7`((wlncX>M z(tob)|IK9Fes1%``%c=2HwL@U$UY<7ePjN70h7xuY00zVwjVgjAkHR{?dY}S!aRq| zmFKt>MZ$Wl-o0}b=3At2pjGkK(~R^?v*5U@r>SP<<}Xug7ilP+|9$5CdEq0I=H=}^ ztSgr_WZl}{x896?W630=kh^j_pT*0Y|Fv&wssyoe2tJr|z$(LJ*^W)My)SQy>3@$) z`**@*v-|VRGv|vwo^qY{>qc_U`y2%hkINF-MLk_Saz+sd49&snGe7J-+x~C zM8|<&N26tynM}^yb=ND&bAv(sjA--gosUHx@>pA2Z;4ua&?#Co^!mSg*_#XY_E~Pp z>-XNbZC|;%&;ic{dnT=sX1jf9CFApdD#wpKun3ZokX_Gk+3`rZ+>3C*)L^SGUhPd^ zYvi{*`Sn5Y^GB=t`c2Jm7`FeH^RS%L^@gp6rTRTPyOsT_TE0z^T8k!r{2dkBeWSi^ zae073z;7=_HEXkX>*nrxdGRZQ(eXy+Cw!@1p=J)OzqI>=mx|2w>sRr)dGD5^YEyXp zZjXhI-?^%e>dIAqVp139`?xayuivvYm9r_c-}d^>Iy=RJ$H2lxKq=SZ1&f!61&@p1 zBE#lsjK?Bdj5Su*Zfh4+5Ovd-Q=suKpsl$5-=c1r$<^!)IldwO>5YnXuM% znxx`3rqAWY|Bo+WV_zTo_GU)OyyPw4`dA-M$ny78<8hwfD!^j*Nxzn}#igN?LwsQf zhu)EAvXfMv{tVytC@N_kZ25e>DI4<~UeK!2kA6|C;x~;dPJSTkb6Fd+q9GoK^65 ztF(-DU5Cn!Zl!12FVFe#spin+lE{Z{*Y6$T3;TbJYsn;LrX{QLw%x=xXoG#IrF!h%I=<0r3V+J8V$XtAkK_eIv{=kBf8Trm$5WF{_B|0M3I^gjgw{O zXMdPm|EAFHpDw>JtL>&5_Vn9ZqI^HusOKJg5;@C;=?ZDHFpmIlwUE#-U3wB`$!#oW5tCV3BX z`nZy+T;)YAWTr9fxsx3E>WSCKE30zvpY~(WJSgEU!W!{($F?m;-n`+_-}fW*kU>gu z`t06bQ>n|}lVko_^V`(?)4#qsK6mTh-OFA@2Sn$VZ##SXzuw-upG)_DIrIKs^tye2 zq~`jyFW>*L`A$T1(!Uc67al#bJ27d+w9CJ)xIKKjSY_VA$SGg{+5K7{kk}G%FH<4V zNA>cZ9lOq4`l@>Fetn<)znA%Gm5{2Iq&bO;w|O7_k1`NYGw80T3P?R=Cf;KnO+9Rr!R|c<~VCm zv7&=JTj{{}ZJ{~B)vrFY?={X$UXb;^<@49~Jr8d0ZT-*qAnuXr>wIx<8G-M-jav%c zep~C6u%}xsxN(HD-GR?9@6OH#zhiga5ud#D-71cccD+BiDo+08>sck@&e8c_{nY=~ z_wUy|5h&oZeDXv<*vxv~y}kOUc7M12wf)!}#^m3{Q(h@tUA+0m!?RVjW!b&;=PVlU zy(oV8cnh?-M8`ZPNxcIT;U z@1&&7df5e(mTbX zQ==e4bfVu`K^8@;(;O2$)DLRT|E4di(LIfA!wTlu0^xM&`nA`VpUYl*vC`~;$%mHB ziz9WFINX*pd0%Z{+ir*L{SDJ+<1!m;?oeD*0% z+LtPIvgWF2`3SZ?e6>_s=l+#Hch3J83!hfpbTipRJS{Rm|KjU3AM><|FL#t>vd%5+ zRWxR;U0Zl)f|(Q7W##LV*PgL-9@)_oAi=_x>V1@D`39#2OFtOxe0Ogtvp~QnTZ=L) zYn#tg^@WcLCJJ57F^i0iJScVg&%($_ZZ)4@d~EgqKXw0)RhOo0;i5mK=QZhN;qAy-##+ zT=@nExxRnlTx_PC4}RZ1cJlSNQ;ap$)4X`a{++uibY~aioi$HbcXH1>@bOnEzsA$L z-hCV2%SS}#-&GKVas%ARldg32}{HF^ndae z5KDLcxkG)nn#GKo_kO1T4!;kNlvY+{c|4P&>2{h)&;EC3IOYDiF z8jZ!z`efMSPyf)Ild@;c0Z#rB-sJBoD_Ro$SvM#}N)|;-6Dn#wJJBoX#vEyF^B3E! zWA;=`Y?s^DU}XJbZs;;+3q#>ghwZ=om5KfF|7P{&jML{f@B94Sull|5osG{tLnp0L ziM-aK+b_}FoZG?d>rpNg@p9{=sr+-_@yYLs)c(70{}*oRoV~>ul(%kN0+6mi+dC@9)FA>GO-1ubR}WJhf(C)be+G({FvQyZ`+E zpZWjo6Zb`5+?hI2fa}tgfUs$cG(3!3%Tq-*UuJul%(_cu!V=D?tt;oaNBL)&+z@15 z;#cDua(23D?0&z;>*RSp$~|AT?0vkV)V44Yt2qffW-MXkk=nga%En=ptfb=Ycf7(p zGX0z4L8bZQDJ{J%tZ%1Z73Of_dCgo7Ll1g~7`ntIiAUCfR{ z^8c3af5aVMH}9&=Q!mE63N~$>xnb-tdA{GR;}_x5W^&|g5!2AW7!`DbF^Fwah~m^` zD~g_Yuq)+=KhDW3Gv6WHFlCbC#Lav59BJ)-zGF+t#Jug@Q`(Y`_dQ;le12c8>n$Vu z-|PRMkGHdz{kY7qce>p&o`y`H$66mJ#{b{?;UxdxrNte^yge){+nwe!YrGCdwY2#d2$ToIIw8d+0~T$GTS^ ze)`$_fvEh?56gEJe6-m-SC9L1@tLypz=I9K512X)Bk~ImKHN|er5p3|!l4HfS{_`C zDth_HvMT&q#iNtYe|~!WeB(njWM9#ONUS3-X;TmJD==UUMR zcjIsVR9vdy5qQ4mctWVdm9@GP#q7lXi9pc93%m8NPVT%Q z81muko0uzRvleHiPQHM*tgHTXQJT#=;*^M_^q$p4yoTSBBUDnd6&%Bch_%U z3wf4$=lsHZ=Pu-YKc_1m-N+WWdwS0_<4s~RhU!h_3XiP>Z5H0^7d*)G)xSUGPO#mt zH3~jIj`SC=yI@npBH`pv)%j&>#43J^@Pydba7O(_n=FkKmaPA&CfDk8f<;rr&GCcS zS{0|Or>}M`nH#vP>$tyt-&fXt+i$w_Y-(rK)i>X}RGIcyE5G{e+BdTc|J>lefB1EL zHT!4oHWk*_+MhNxJeUxa=wtIPsCS20;PImw&Z~rbj7~)L1fJZn|JB?``98xNiW65% zRPO0%YOrJZb7EP3iLIAmVIJ$6wHjS3X6U=F$zm68v|1|S=r&g})#tFE@Z#)MY|=|Y zHWtMM|2*jG&gnMg|Bv0uMiBxgr;l6a%nW{Jxo=g#A!V14Ki7jMuACCGR3);_Psk;y zz$@U_is=v5y0Zmt-(b1m$;5oyWAp3Zbl1GuZ*y#^X z)6}3Qehi#YM?kZ_kWw@otY7Gm`~Z0S5d0TVDYtv z3kq=uew1!p`Z1y0mv7_a`$iqdvT~LjI`8sH_ekFSdvBCBtSzq>SG19m-p3*4azXpe z3uAq=+Pv+5Y<+YR{}k_uE4q9?`uf|b`+KKevs>vXU@B6!Y;S(9=nYYaSvzV?r5F;E zvR|!Q-(SAzqw96DD!x;&4`k)O4o)%-o@#AEt3EPO5e53)Uv2Q;gezINGD z-`6m=s@7J}glps0Q@^`5otQcIrGXAx%3867Y0|4lfb&nZa=6*nvAQ=HGvoryw;~LNS$PZI;2pRa#AJ1A>%PBGNZ5UHvve`Dt8M zXnoxKqBlpsee`xqJan;;=ZaF5*Q3|>6%$r>8Ocw2ZW%f+Sd4XE!)8W#hm$uRExT-T z>DOhQS28MrlO0wy6f^3IlqKAJF*PU0!tTTSe;xhxuV$xktG~E8qh&{bi^8)|)+5t>%?C z-miFIp2hhgT4=&tVZrw~x@PK94GRU&t^Rw;T=hz{+PR#-Yxg~K3cSnqyp0h{3UW+5 z6CmKE@Oss@`>G%3hq&EmQMwX;-(rR0_O-XK{&}-q?aS@^;;aAce$C!(0PdAx#?)wy!?ZP|ZR6zLuz3QiV zoL;q=eoZ=fY3=)|riT|h3e^1F{#{UG<-wb)Iv%YJQuWio+ADJrG@%8hZU9a=>^mK(+O=_KK+4h>X%+Sbhj=YjkV|e4D z6%!Vw-FnNk>gfDWZ9Ct;6KOu!pmX{{)U|bdv+DM{FX9b4q=_Wm>bzjXc&3(Zs9?)zzK&{p}vIdfQJmS{cNaOh)izU`U$f8HIxX>NVk z|NoQSKfZ03d;DNw?Sx9X+Ao3ccK-K^GS>WCC!c8B8Mt+?$eAr^D_3>ZzGsywR0Tm(c0r=QZPlJ@#ajvsj{24Y&m8w zU)}R_r|Y*jw@**i4&PDpQRwt^y?}4OG~z$(s`e{9&z!H6+&uqpr}^iT{0-*ERLWn2l{R;>HB}TM?Sgj$O@0x z+ut&KwY{Bqr*LXYpSE9WvWjiW)@!rp>cyS;)#5pgU-&h{wpAb29g6Ip$TU-B;xs)L zCsm8}6Py-KYVdJfGHZc}p3Ag0hexY~){1KMYRmfD7kAqKd!YW~vHee-@TyodFW>UI zzSG*?Hea6zYb<^#XMN_^E4JlvrP7_(cz)aN;Sky8B+=}7*Z_SP4B#j?N75@@`O|l=4Q>AafA8xq<_A8tk=C14xhVy{g3A1(Dl(9wLOf= zIy=sH8afy|F1*K9#&Z3__i}5!c?~jwfA_LwXS~yJTD0~aj}F&&SDbQ8 z-1$_Z94q_l;H$T|xR)@t7_SIX5cc=riCfAt$>JcdXwX%sxlRT#t0Ug0*SuKF|5?5M zYiOK=7N6|i<|P~=-?)zZ&wKE$`rU&&H;r3XJ!*fqPh3*v?>&L%x{=r1yc>muP{T@c7a7!r7l{0_2l@C#g(HJ$Z9;dgYUe?mJ4JDzWqFK8kU)&NY4^ey8ZP zrh?A?m+tZ3gWuQwufDcS`3|i7n_g@4p{@LHx4QhFrT-m6UhAAWtF-jVi;c{4Y|E#e zUOoK+=bAP19zU4q{3BuJ{P>!e!Ygz|5-zInKKA_E5hSboRmRJ6%A_ghCN5#KO@2{g zb*JQs#!;W6w%_j@E=fQ0jaexRG#s%MMM8rI%>aCu3+)Z-@~UhVxB zEqprrriWkHjMN)9Z#>Qt{qX+lpE+Ch-g)`_#qPf?QomBJmKD{%xzZ-EBkX8>`mXd`VhbpwYqV&b2lgok5GU z_V&Dub*%G$8#sBssBmZXmaH!#u8jgr$v(_-*=q%j0<5H6A7*`@#xciqo5c0)aYnb8 z`WmvPF8jDS)zef)Xw6bBFRkb+vkU_7D>lV9nuxw|Q4;RGz!~>yVyy$q#U)3gIrNlY z%RJg%_uv2Lf&BlH3%53$kFxoAsCdt_cDaPgl@E?|Hpf_$&--~ZGH?ISZ98n_JuXi< z<-LYm!F0g^)+=hy=Z2?wXnJ0rVsl=SuU%v5k4w|{9r^UhXzot4?AO|F?r!HubxKQ{ z5EORYPv+nId%ypEw=tF7xXiFulfj@jb5G9W)AN75o?rdIz5Y)#L%7`UnAa=Y>-u-P z6y2U%-q^fE)uJM0;g-8}-TNn~Y}SAID}Q!Eu2A(Yn?U)C zZ{6+Ln;9Khf-Wx7vT1faX?^covdxzZ&K7H5uH}!sW6U41Dky1_h$_>$@QwwZAx@!3 zJ0o9mO<|eI;gxM!oi~;Fu4R~>-sPw}{AIHF?JrDTwRfwyGI3t`Zo5QiVxHBad56qo z8#4DWsn4+fV>VN=Z}set%d>^PU(m=uuKs7)mHjU--d`#o>GSO!_xZ4`^-Z@X9q3pc z*L?l*^L@e&f*)=lVLYzX_)&JDm_yH-mXB3$)ef2O`*WL1sKagI-N&7s zB}?YHciXf&Ok5CfvD1lVkCx-~3QotR7BdrS*EB4TJoL!t;Of42=|A60UU9YkXZZie z_1!|!cZ$z@-YS-y{<*Y?OJku&R<*YxYmmFGh-xVB7mZ6xjwVb{ZavJ}XsEe%i|?da zQO1kxT>NVKugA~WaC1%WH>U%k7hjzZHM{lu>X-WWiz`;I7p_@rdTfcuN_ROS-iCs? z0xWq?UKlVbtWlN!BFV!hu~a~DLYA;_k*2}1=ANVyPix23ESkn2xLi7g_2Q26DIAP+ zjywB#|G!87kE-wgp^<)F`_3;mBTvJX4`$#0sdKzf?&+DC&v*U~E#FjLsDJL~uZfE< zt3*As>K2N;4);rLJnar|Mc~)Mw7EIqvn-I^0eAeSxO*`+fnY(9n(Bwz*AG&6sN> z!K3lHY5$+o`=9jY*C_MUbsP&#eMnQi|_Lfln33pzw3{u+JOx2 zb>a$lJm)8T@2b1;Q6eYW{g9eNa<)f)(Obi6P9Iu;Xhu}JrH&=enoPA19fH%~Pf zXz>;>S`!wZ0%=w!sj!^)9q;Qxj5-q?Q@oEw%UAtBl+#k&BMX|wnrB_yI(kV`91&5 z`WFg!TW|h<9)AD3_kK&+t?*)P&13KRKhI2jKEL*ruYc{|&E4DY{XZQ3OMG6^`GYJa zuCARP4%MDQL913VERbU9d%M5&j@7C}L3O!DOIL^V|9YnWJZiD0yU&%!@5`3dyp?sb z*y8ze+pQ_*f}XM-@0WXcv-kN+-S0ndh3`LjGT6K@@vn^c^zcmma{?_(FJ}gdEHmW) zc5u-Y=I0k8oKgj?68}Bm$^UR*KTX)z^P}>o(&Xnz7r61 zV@la}=laF%QvyOaE}D_bd2nY$v&@v|;BEX#S1zRbL{La=E^R+IFf7p3vhKUT`N zempkyo9^`$J?noNywou$e9O@}K`BiAF_ZK}%QBzI>*s!WKjp#uX)3L;LhpaX#C#Vx z(0z8zytKKmy8f6QNNBP(*w!QL`#Ru*^2GyEHItRynYI=;NxGeVyzpX5M|QaW{>c3O zOQjvmICECK^;Yk{zd|(m$b;$8M;TrhY|CP3@C;aVGyh!Qd+Et$&G)X);#d0ixm`x} zRdvr5j?@ngp&S1?tguMkbWf?N<6HB(mH>sA{^rkJ<$qrA7ydcHbM%9ev2oibnIMsk zUh6Jo_-yf7df+6_QdKu~UT?*TR$V*TS_Rk^ifjt|5$<+fv`9XZ|N6u`@xm1|ZQ@Fq z;-9jnMhfk5?P{175Y@dl^Sk2;DYMDE%nK}+Ps!5Tk#;ib;oBXd44T>Xw*-TAyYz%? zu1)=FA>E%E8rtzd`L@G_4Bm?OE4{q8+cpPBZrQ=h=hS*pGi0CG!IvM*<14!A{~!F{ z<0Iy=oBK}fbH=F5wzunx-+hYwcK-arP^Zv{Z|^P7Tsj)c!WlXl+CKCc+Y7nuwaT( zh2tcNEq)rOJl>v}B&KguJg=FZPk^oI>pLmwzj9^~_dYGQKV&ZVPwM;re|c@G2amb+ z`>pmB2zX|>w#+Nit#Db`q)V^AdX${Awi zRleT$FFTdDj%o6%f46lQoM#A}-~DUbTNW>$yweej6Ta8(`n-?#x`o<8Pph&^_7Zom z_gtJk&D1Mk&v#$bUs(&f?_XjvsC@r{qsOoCo{&>#$Rrit!njAx3L35AjJZN>hnd#$ zYGqh;rd)`2dp#*EtMYaKo#V{k?>c!upVEAK#x`f~32Rwe(kwJq%yADCYI9yPQN``i zT4js=X>BTo8jF>u?(^HC{{Ca~h9kMw=dN4TABhlH##no-tYhD|a{jGyjR&K=Bbhh4 z2AcSYEEHYEHf>6f$6B+U!Ebi_+10yRkX^>Iy5+zM(Zk`Qp^=lmvxm6m9*>YuR?K2> zb$fVN#W!>NZH~1CaSF{x*bOp;mMVICMr!`D{PQ~gcd6a)ug@bbN~90poAB>*_=;c7 zX;GRhndFayzu2syTffKfUPx{^W`FWV- z_d7z*&#x&ei0>}By6JtwG4HpZwU^#gT4g%x3FjW}8CL>CSnu7sadlQoi@=NTza^#? z{5+Iu_hotgxd%nA>MskvJaFWby?=aV_+7{J`q|d<7UwQ~V(oc#$#3_R!;G2Mu3U~! z4|q8XG}hUxhvw!;3fO&kwL9-IfBk#=i;;5@^X@wyQa(Lp>EkDV%Rl|O$$h8pvSQ2T z7fZGU3n@%h@m_rP@`CV5Dw^l6zPj9#xoYu}lv#iFe>&X%^iP?ONzL8ex<^x3ZF=_Z zl#Z{A^iKZa%cySYgPwX z^&a1K>gCtzFPGK6+y9#7eZ}wB2frFT;##NWDa?5-;G1^TTApr)(<18^CwG5n^6|dq z^|)ZhO-UWD=P_?AxAQF&jXHiRTVV0M9~+;haxBbzzAG$;DbU@+@9d8c_uOyo3!2hw zw|ezzfh6uZVw-lJ&ssatt$(ZBk{f^S{AkHqH~oTvMOK62B|SBUwI7eKTD9O*@v2n^ z*u%Fcxom2fvMTS=1c}^$Qx60r7G{-2I9PGFDp|Ci5VP36<=p$f2jf4^Tp#bUtXt#m zA>N|6udjYr{E5E*;AFa=@oX(Vd7D$Y>vy%Q%uOtywu*32mM$ z$tP=7lv;TIj{n}@d-w0Ml3fd{`R^EfG`9a=yy*Ln<^I$BRhRSYsfBD?a5wL=^qNbV zsXW)s0z#d%qGk5K6xmlVr^+iWEv=)UDzi8D{^_jhZAMI=Y}TtE;%Yn+6Am&yLA(P#f7Y2UikQ!-|^b*TwnbDew+OB&sV+v*qm?MRPXQpvhsg! z&gYb4Teha(XW!3louF;8p?InNo1mlnXLbFv=oI%|w7puiE?w>D3p>+y+4t|fGl+V( z;+B0@YQ~xmOYX36y*+m0hObA-mNOxVF8J!G z_nrTE|IZWu3976MV-Ee6$#z`r5E*5X(6VIzwl0t0OJUO93v|3wKI}MTD8px<_ViSO z=+v|&p4~dR$~`k9JmYtV{HU-oXWYB^_n)ny-(2_pcl*7Ukp(xw3x>Q>gm?!1+!w)i#ra_S~*{zb=}uE2(4sqR-tyT$T_27+9T~n4s?& zE$OMf`aEx|0oN%-quB>}WoEG2{n@Dh@u2;07VqpXr!$i#e0X6l?|!nyvEF0*<%P!9 z$A221|M*P4PTH%)GlW}L%PV|Rnq>1<#<$mE&MpWpjDIY6N=*-|!1BV!X+qRv-di@QM0V-QYH>uJn!wTcUG&~`mZux`b@4IXdvr?Zq4V7H-YH2ZZpDVInz(A4 z0*`PU5AWCd%@5)?|BE^P)70~4y76PBd*!l67xag9nfT8Bo}pQIE~wI-L)i9VRPw9e zC5x36Qi|vEHTj<7>sh#B*;xmUiwwMn7(wX6Ju+*k8|k*Y3!jdCfd+mfP?C%lh`-`ox0!kDshnfARgA=BcjR zakc#J{&Q3=%EqJ?E>u`w6|(L8nVj}hRXI-slq4_zU-?zx0!zpf$=ZCaCHl2LDrBdI zy6(QaOy_gOoz-2-=hw~Jb4FR2;rzY5)iY+#KW=q=_WeI;yNvI~|LCp%{?C3EU()3n z$9UQPfKqH-z~k@rug#rjWqd0Ux^s%V=HF!br|S31q&+l>{nckbzIlAUvv;G%!|!(TPA>X!!){N-%gO&`85^w*YIZg0oW9Vh(DGw@nC7-mHh-T? z-f^k$*O$zefHP;xBhQCN=wDlLN@%JVSM&r8-_@5B4NhFt@;h?vlj)=_tZ@rk4tGwv zWUXQxqW3F(c1ZD)YlnHR*>0czGT=pJ*zHNn_x%-lt}me%7x8G?HxdLPN-kR0nGx@)~!=40ju>(is^|d~VS%+LJ|21#*H%ouDqt_#@?_c}c zcEe^phZ!QJyS>)ix2!f2b8G5QuK#{l>+NnsmP34}Z*qF9$eLQdaq0A$FTXry1q z@H4iT_u;gX&5S&+zUJ>s_FnJykgJKyL-_YR!KScD4`MruY+E*;DPzvBxhre);Xq+e zjAMt)OD3lbw!L$F)VK5`ZrIo-#Fs3@c33ge`e=CHBAFx?uT{xYO+AG!nH**74`8<^G)fD}9?+=3MBHO<5*vReR-9BQIrbz2G(R zxuuq2@9m}wT$7i)IO6i1S^lVzd8~5M^Ut9z0h=WsSxrs#oXRgPc>Lt&lfnU86BYz$ zZ8{f{V|^g<)FKDXX0ND<_ zsB_LT?)xqF7dmGi%KTV#U@Ge}*%Pe{f{F{GY{I@sh6|w~GZtJq|ci@~q;8as1Ld8Wu$v`ekY# zZdJ!0UUTbw{lC}#pAPizpV#dEeM7mLvaiUr>DN}<{V;r6AM#P!f5pPPd6(aRpJ=u4 z?znz~N!o2gcF#hy<;S9tvH_D3O(W}6-2zA8Tr_Nsbq+v6#y zbU`|2!WLdvyOd)kg;yD-KI>p`^IElN(N({fU(F(HHa6IncUr%jo&Nq|bmhV~pLVXV znRs*OY=gLsRjE^-Bs8tpT()YROYeb(D@!J}MP)PgZ2OqM^^{fbbjP%Kb)nr%S(BYI ztS|n3{luxqgdt1KK|54Y!GqnTY0bZ)7itFT0+2-&L5UBL%che%N&MsL|u_d*7>X7(LeJw?F&nkfL6E+_M)K4?lTr+jUPW z$m`yhw(FbrY&kT~_IJU$MQ?JCq^_7Ufde$tA=uvZpINwE0+)xY3#BcJ!`=Ng~7CY#?q>HhzVi4@R?{yDaw5Byslcc!$J+y0_*zmvu+&D2}3 z64tsWWNf_^6B+mX(ogS@zmr;bR!%DW?)GE`Y%KuyYAwCB^B$k8es^F|R^wW(hYr7a z8l5ElMRgpHpKM;okf^xQ!J|#OOK0xE-9j@RUdo2fG~Q7m>E8WWT6bEtr2Nkh;ybrY z`TV7|J7um}_iyo?uh;E1IJTiKRW@B$DWF?O)K_)G!oU8l4Dpej^~FZ<-GPtGJqwQz#cqJqm7OOYgNh7G1C`IHwZVzplRr-^D-_O9ND{L9xpVFBP%qB| zf`8K71s19(aO!Ct_2;rXc0Y7Yp4Vlca<{l|3)9>ySAK9(5>XL~x#+x$Nx3M`e&6){ zzt3IYl)lYr2X7DCob(CSK9d#-J5T)Xx#iHVNr{mYw^(aTeh}lpC0qTEajkn;?*bub zgtojeO4z3@FgLCKZNmxIaEAwX!)fnPiBnLY7%Ix%YUbJflq#TG{K z?;DQ@rSLLvNaZp}KJn&bsQ7rdNnq>Z<_RK4CxmIIR+e^d-D-Mnj^*J5g9n!`35A9h z{&^3Q1 z3LHHC^`mgzy$+3gED?eZ8n@m??h)=#P|QdX$kADUVcyFL-HIoDxFXRFOI6y;bnZvmU|d|^=zZ-I?X(_c=Rs%?3A)8XlIRg?VxTn+z_HBofp zhcidLr))dFcKh5%*Cv+>$V}0$ZQ<{5c~r>5X6dDw6M1xgXyA97)0*55*lP`Ld+xRC zaebn8^s$>l^9RLM-RwIx1E)>CevR+%>&2h>dDqLT&*zoY70xZPTfF4^ z(KXBt1$BGgr}(HG_SlrzH1FNfa|u2ll7j#LQ(x2CSG`a3^Z zh?~kz@%*6lY+Y1VimGR?()zX(UEj!Kzg;+(8XbQW7OfI;je8czuP`yhOdz9qeL$jY z=K6w1CwTJzPyD^}?KI{cS*%W-(@Z?qNv(Wb-5tXC+SZSyNqm7ykoFq>tt;kc9=YoF z{K1Jyp<2Pl+sl}zZwq?uTC8Bs>Bv=}=wqOgB+Y!TY08dGE|SdWf}b*XEjn;5tUAi` zl+p1hZ^JX3>$<-Gu8J*9TCr#G-Icy(F`H(+Z3Fe>TO%#U7f;*^%0h?^VC=ef{8ohHs#Viq)#S-g8|h z#N;GSWxYAa+^M6&er2R>T+i`+)15!bm(93vT6e9(!ZP+xrYq9c_U6o7pxo_fJx9JM z^`}tk%+E)J{S}rh+rXzN%5nH(blyFSy3ZHQ|2^AZd4Bt{#pg_x6+S+;g*8FS{z75J z!qd<9e+UiJU$@~_+yeU*JH8we4ZC)2$KP|-8RymSR3HBvl6PR?V|GuY&grVnS52+v z@-etZE6)ok8lb@cdMyWYx z95vtnSL6Hsr~f<>OXn@pI@#j1NWk&x@NR{<@7e!&h`}h)!EWDZ(s8l|F`{aY;EsuDzm}vhQi4p zp~+XLYWD|9B`?~0-TO|XVefRun6u0fiy+k>PLCQg4)luVZN~wF84|fzEY?&&{lq?kUfhGLA za<|8BzJpiK6>ikhEfFy)Jtx@W#KG%0d5LC}cgY406|Y{QcN(mkOAkf02VKlMufc0% zAoC@2`|S$*1*@*zG}o{E9bMm2op0a4ldVxNnQOD{(?zSTVjMhn3N7j_U8`11@Ra&} z?X@3!ui8bSbXG@}MKAU_c*rs~OzdV9Ng|2c)!%u zH`$yedXZ4GEYFRI_ zdClznZsKi+7L}fvmdriVNkh0kzsAN@`Gw|^3>VJFmU^?dO`FdB^uE84yOcwL^@NPI zy|XyI9u3 zeb3hS-*V`L{GEu86Yu|j?2!3#)g1r2FUlg`t8KpCFe+Q?8X$V@tEQyUm+3!W)_>q@ z(s^;FY{i`kTk9MJ zh$!EP>RlsxX6mJosmpKY20wG|yI&&^{jK8q?t6!p@B1JjzFz0!TyJfgpI^A|ls~Vv z`Tr!+?{1awPW_i#Zu78zWreDjwjXX-3M3i`!BWp|C86(bE0p&oTr>59mr94 zyZnR#XWZ4=?}2yiPE36E`$&0D1k>053&q$}SWa{=JL=%+%E6Z}8{`<&Tr;(lV?lD1 z$JBtR{>@A)RhFI?)H=-W7#J~0pdo^a4_Cob2{NK)7-N8 z+xNc(4Jqt48*p8K*H0ym6~PZR5yrJZWI=t=W5tz8>c*d{Mi5MA1z>=`*t!CUCE8cV;S=G5N% zD_!2qKYqPW!b!ok;ejNd*@@q_OPF+nQeG8aGTy+Nsoi;fhS`=V-Kdu~UMfE}sa)jD zV9a1!`s~c+>_7YKKPdRy?>_RAd%DLZvvxkY!|k6V-fMoE#2)wCDl9zQvhtJ4z3Qm7 z8gbG&BGY)!?bi^<*<||csm$WfY1$TnpU|6lK$j7Q)yhjdoQP@dDGIUly{-s~%6sKaIvt{4)=zxUJcZRd6e zHtzlYL*N8^plhVyYOkPUEzzfLs7G6Ld-ATECy}Ad8F%5;mWqdGB-5gbE5ui<>e_NS zskXM+Z+Y`IruVsb_AS%j{qA4y*~_7XldNi9 z1@jx;FO`WinX{9L{oDKJpPrtcv+Ju$vy!@}QP)2KWzk6UgQ5GDz2zzi*ytYZvzB3b z;Z&91S$&MxXHI!v;%g>a_3ztJjdCW>#e-zcTY*-@JBr?Qy?#(s3;ve;-P-R$OH0 z7k-s-FrSG}P$7F(^|IrfMh=1Bo4XZ0gjBpYJl3QAoAH)s*N4Va>|D>( zcUj*2PkdU@3Cz7$Q(npjS@>u#KBe2)Rr_()4YmcX4w=4_QWiX!CML2|HJe*_gGYy1 zqwsOZ96|e>RsR(Q_P7cJxIJw9dqXN!_pf$s!MuM7%3=3DdMJ8K>3iN?F2U+0`Rnfw z%h>GIJuXa3*Iu}mRO_IoX_dY3l1ZNPTb&274qZ#)t{c6|^^o6w+I8-T%S{@$s_w zoO^t?G48qJ)OJ><;cn8Ax|OTCbc`oPGIB_6Fnj)a{!bZyo5EQ)Z%TfuIbi$!{&C~; zdk^St-)2$$j+kQrZ!8<#e2_9Q#NS{22Gl-+UY65)3)Wdt+HETDd*YOJ-yz|Cp@7K~*HO&3auf&*|d74~i zN6ZwtKK+Q#V|F3V8zpf$n1UrQ6pn(b4ispLlA)1i*_`JdcX2Hh5}F%mCGPruiPH&Edsfrvx8N?xhd>netzP5_(AJW2OEs! zALSlA_Dd_uD`(#0+)iz;Q;QDV=5qYA?}4n<#f#tf>P&E$wshmt1C^f^DZDN_VI{l8 z^Te&(9?y@83#J_VE#S&H^FrByCT)#wxn@WHc-B=$57w~j3tA-zF?$7Bc{?O{2P|^c zek5^f#*KX-v8Hd->(y{=jKUoxTbGe@kHQwo|R)@)HJ>LV=ty`()f7o z^D683vw!|Dg{FF5=6T2*wJOTTY+HfG(hrI*2F@|EEZH%tam$juR?HPoy|G7g@$IQ$ zQtxYOXC2+RQ=>>|G3UKcPhK96*jY4j(W%H8@d=fsy{D?C_!+Ex_$_??uL-B_*#Eus zeBYDh%_mKkeLU5n$($f%Z}9QNbGx6{^y^<;7TFsbvn+B~$;4oD`DZr{PC0bw-eJ!C zy3?}@cr;H5sVnAgU9sjUduPz32h5(69u|bS_61$3?Z1D&^Wc(>n|+*l6BgI7Ec6Yr z5L0^ffzxrGxW?j(RtsmRinxBMwJUzcGdHL0=uy`tmn1~1|9$RNG@cu|YL9~_@4|Nz z?=0D8w<_i8-~W@>yBnCT-n0wnf-(blm#>q=t7NuNxop|fyvX;DAfBciR8_Ya^&u2OR zDBC(d{PwCR*L_5eeE%v_V|exN`?8TRfFHYLlTJTB^kSZ%)X{$e zF}!LmQ4{T>gxKC2#67A#VBKh@rDkBJ5L(M4Y7w7wx+`S+hI2u!pk*I*@0pB3pKN;& zeZPiBX3s;@?~1kki`k?9yxD#4;6!J(htoZML!O>*pEk{NMUi(wqt5F|(?wfP&*rkL zXew5TTHMnY*0{9$OZ{5q#fd>WhAsz9LxX>qGX|Zl6EQqE|Hk&m)70!4w+a1z<$T4V zVBMjeCm0G2Gb&kpvN=8@;_ln8*94WetrTRsw3~y&+FkU3cIzc0rafMZTU}n>;Gh3I z&}HM@yv@svnQtu!YW~Xf(D|;u-r}{19a}!#IA^%aWzp67x?ZOe9Y1g$;-2CqV3n{| zU49xzu7^+e(VeVpdz<{W%Q`mJc}7lCF|Ph`O8NXJasIlwy^c-7v3_%EM2~Ttn`eLg zFu(n&hlksDzP!PC>#f<_GU>IZo4G%43~ltN=f7t9ID@0nW%jfDWS*&;Z{KP%V{SG7 zSCO>#=#s~UMxH`Trr3ObvpM9d!7GOp&bKr5mgnuB8&`iKcl-Tw6CbzR>rMV7zyJGm z`v70}Ntr&6rwRwN9Wbd&c(nHWoxgAX*?#^}BRh3{@w1cdJO5s5-t*A6Jkg4^z5o2h zR~|C|?W^I8;n4mpLNWo9%c)^>FjY8fwNA;{wBY2#%TBbhdySU zNviL>y*gXuag%a;|KcgnPF>ahB330R_fl5L#s1j~VY}NuryEO$Zp^M1*;f81clRlY z%XyztqtA5AJ|SNwmxkhOZV^2goxqyBq^HPuZDc;}?P=i$SdwXM~A%Kr9=D9u|e!1D0pDZ!Kj z-XEMEOk`Qep~7O~DB%?Fw!-y)Nxw5oyYi=}69tXdPjTaJb(*-M#cx({ue4C^g`mLe zV&XcU>W)ii?OJ)jtj9fiMM%J}rto!px;%~7#nkb>%sTb;y2X|^Kcnrx)b0Du+`sw8 z%8MZ($?Y7Hp^^rxobNVV(Nxq}bu4)k&+C|yDn+%sMl42?C!7#@Dq7K5nwT|NeXE<6 ztANl-k)YQnd#i3=^Y7SQa5!Z5q3ZtceGU#?CySL|t?oM|^jaoJ z(r40wEslP76k@Jq2^fi$HI=hG-&lIUn)6=56vZDIU)kjr^K$XtQ>b+^T=(*sWa(bV zK)#Pg$4mM?EsXyY`|q#(-1O216A4Hhwr&#zr@u2<|z0YSM9a) zoD?)w^dRdeo#WB>`6_k(NG4zKa#uX*$rx}?|L1h;uIBo@{QNt+Kil7SXt<_lR54}J zl+=UA5+;AvpZoa3L*|Iv1;5TjwpmLIyW&&Z$@`a!fK= zt|gN>NqMQ-Rn6^T;gK;hNtK!W>pI`>E&D3fywdHd(T zO}|y1?LK07G`#T7`tLubMMeH(>HJH(|9`pdK7+PQ3ec!1%9_eS==zTgtN$pko zq?rCoY|ok2ZM>ZQWY5uCYE>7Xa~{6faVe~V^R={eOx;_f!yhN)tv|k0JG}DQ&GSX? z4zY&i-&>}qrMK^gO?T75Qp7YW~p&9j=NQT`9>k%)DuX`8(?M z%i6+MrykfQ9h=MGvc+&o==bYV3x%uxwnoV0b)UUgnX+h+oWll|=wLDBV~?8_t;w9_ zP%yD;np&YxlW5DewlHniX%anVQ`XAHXY$StJ?8)KjD33UlutLG$347sb#)H!wiji> zdF$^c*~nZx{oCf>joX^tlWeQMPg-`eWS;N5>7}vCOOL#L_2IVKIqkKj(F`~AroEr@ z_>u3=KRZtIZE)rL^MW3(vo~k;t)LVb^uBzFG-Te(D`Yda{a9B;P-|{@+ z|L_0T=l_d8_F4Um%`-!NhBL`>`MZ8B?yr6F|JUFCKhK1_JJa?Q&QAI)X1;#kk=t_i zCuh3%FDz~hVC+9o-KfCGbFX=lRbF39`vrw1y?eX`tIGp7?t1&UR`wgm_ggt<)P8L) zOWVxZ5w=XUr6_pmyC24`ADUdAYa~v{$h&_}B~bGk+ZHd+%QB4$zQJyb4ZFE(eI~i2 zGzJCU@n*BRxJmPu;`S#AngLO+wd+q7a&O;zQrtN9+J?CtNsYCExYao*jADQgPgL?gG|j9E@fE z=1RW%8!PkchE+eOsI_%p;xcQQcL$Gu&z)rZ^WKx!C%mUy|NHjlzTo$nt2Zar1$pf$ zeQ`}r$9waPmhD+zyu9w5*|q7~w!2CGNj&Qc8;+e2$!B)UYAWT(Y562Q!RWzku0~hS z0HarI70)kfF=}6Qa((?PVdX5t=B$P@EL(GKXl$$adMtZS(O1)T_xGLLp|fLW)oktX z{0)YBmG3^KwuLg=sdBgZMPAnB{&#A-{mF8huL|k?>pwKt|7_-Ym$PZB<%0wN4hP;i zd!0k-0;9B))NO?&?kgIEc^$2qN)&7ly3g1>O-eQCqe7r;Q_u_>_N4+rzJd%L9Y?wr z2wv3s$?WCGak0(!HIkkWUM`=Pa{nK5heE}(nddj|*x|CS_}ly2{f5g# zz3zCv<$PlWwX3tbJtXV6#F4Fn=L;9T{OHDAP=8JFwo|_V)7r0mw=Z#OU8wF4 z`S|$kZS%^Hr}Z~gRg10_UHoyzseu(tp2Hm}VS zgxg*%$rjxvd}qP(xwF@A|M%w|Z+mf`b>xjufezWPH(t(I<-7W%n%lw@uMZQR$FAE` zCYx=0eopl?W%oV>mxR*VUcXs|pP%_!Mfxq`y}P7+`9dvipS*&Do9?~|)|I*CFFMun zXx_cpkcMy7j((+#i_T6}SfHT6aEADFWdiA^Z15sW$nGU%O_a0 zwCTs&o}ak*c;&B+<%W8?vpC+qDcuzk>KZ6=rPO!UGQ-T3udhFCtY0g=XD9Q)X#IDk zzVE{&1b&#Cw3nSfcysEfsn0H5DSW_tgUPR(+xUI$-uv@K7^eh@xHf*D=eNB1`@CK2 zE_P;Gugv?k{jy1_jhwr$i1Z3+?`di*Hmh_e%nEVm+r{Crc;hwYC5s9ZaveCFLrqk? zl=q}Z@Cb6=xw*$#Rw{09W$*3RuS+h?*}8S>3V$OxMP`|s`{jLmCDs>a1a7!zqN8!# z`n=5JPWJwyUpKhS*UwAdQrIr6&R_iTss5*L>hcFuGG7bdUtFYYHMeJx)Yk7_o!pF? zrf!}#f_tZ^O5V%f5|S}BF{SN;lxvp{@4bp8duFeCc+<~ixrUbf!oM4*X&*2TS!~$Z z$5a{`_-M}JBHn|QTlyZYjAA*qm{F;sNg!ma@u{s%$={9NUiX#)ANqSB@{@r(tiMng=swG<7U1=@K5B4m{(@|vE z(i7Hjh+Al>fz{GXsa<>d%+^dSwGs(E7dG*ew*0?byZU!l=H|L{|HZ9~jepvhtp1|B zNX**Xr1$W(#^v+t#4S$jlDzgaw^^zzyL!txp@-V`>G#hZy?yelu#%E(&FV^noAM^U z%|?@sEZI}@(I&p;Vdbo45BI*W)jx0hy>inY|Iq4rKkuaf?Bn0_-e0cb#f9&G&-nlI zZ~hsaAosa~`@8cqXM_IjMKzzU+yAi^pZEU{yZA22nd?{P#U*a20jSBb?V-V_mw{%xr&KZ?|Cen|NON0x#HKqcx&Ejb~TmT{Z;AT|F^L1 zY@S8yCfHg4F{|ql_XV1qSvsdk3En!Jtj(sXw$bAN@twn$54vbuG%aP4Ug zuN!BBvf`8HKEAc<>HV4?l6L?8&wKo7s-Rz1h#lbJW{+vgZMMdn`d zgpb$M9$%E*#q>*ZiO{{DeeMyj)Hw_vom?)b`eRo4-rsX8@-RDVmvmyV!oz2C? zaZ;@z^AvPA#D!nY+UBfRC^tcBt?4|6ROueW%fCI6jHY-^h&$dNCEViv;%!q7hxL1P zr3!(hsE(ff;*%e((&F%SnP%$Cyw+*&R?~Y?Tl$U%^|@EP-&kt7_q=Inulm2b%ZF|` zb6A^bl*#y?E}d>XxBmH^FH+Ic!YA|UC+@k;nCqa?Vz^|k%;XfoNLCI}-H4Ui8>SVR zEZb1J=jdsN)YTUCQDOY%)2%t7}cN$EE|Vg3JCd^2Z(Z>p32rCz{Ci7sytc8;ma(s!!Yv-3W+7Ab`I)TL{R`0s z@joug|L(W{!C(I<{rWTi#>z8~*UA>N9I&}}DKKYU{e`K?>+;uLn%Wm`|64LIu6m;S z{=X)3;|@J5m~7*#{HN%5;jKKCKYhGTJ_+0F<;uD1o;{E6Z+ZNW^VpK;;`QzITFNY! z9xvV+$RM4Rex$lTY*KN2&BWGwO5$-==P#WyQum+Zkah6TA*O!2UmV?g?R+1e@HzDC z6`TIt>dxSP+aqC?4(d$$Dyw||995YpVC3}sa9%mX{>{fU{_u$$cy~nIQ`u+ZCf-c- zgS#2q`O^PfxBqwj#i{-e*7bjk%-$Bid}b;%dGXxD$%gv-OXfBI{veU{MJ#Ga(p8WO#3Yu2rslqR|N9#i(Jb(*J{vSocElV-C;hhJP3 zz`19uVdht+?Cc)H9yeyINU`;epJ&*7y3-pH;=5N^@|qvVbD3+~j%F(=d92oDJ9}>O zA`Op8Ejp)@p5M>NdVMfDMd_u4@XLhFpKTmgNT2#B5#EWwl)q!!|4DlP(fKtmP0iY!eeNZuzOT!>v*X~uz3eY$@SV5+ zu6oMx;J>GTJy@2@S)9FfO!iWo*w5cy$K1VlFMIcO&YitwW$Uh*=YO)V_U~N5FWDVl zx4Yt|iCDI-{=P3t*{`=p#>E|3GRs}g^7Ps0?UfG>Uj8Cx{rp$=Fa5KV|5u(#j$@c{ z+~(ewkB_?JlQgfsIBHk4=VWhqe6o$iWC_R6eve5k_gyBc2p;I3>u26L?MUY=Pj-<- zZ}Y16*=^fVo`0cSO>DQ~9_vZh1a|(r*T`+Rh@r|0xgD zj$6u6*Lumh7G**y7IB&oS||{M6I8-%aAU zW6I;0FV3iT^8c6DWh&_j!sjA=W*MzJ=D`%Y;)O(~MEv9Tf6l&lSvu?f-z%(gcgm-% zn#95QOn@b{_~|Kc6|IK{8l6>cZP>Bn#I-!eFxq4>ttUMJ}x9gy?W>oght6xnone=XvQoOli^TAuUq)t~) zi-@i6U9~DAe!sKfI*Xzg7VP|T%XVu>^n35|h={Xmm@qGT`})o0_4D^UkBGQ;`qfdfz@D__#RdZshYTE9DoIO}jO1j!iYwLZ(P_=6uQB zQfq^cU7DjhIq7*oc!+D`_lt7*CUODOc|$`Lm^MC` z`0R$&r=QLR5>s8SFwN8PjG9+|U{~AOvl&;zubZm*mZ|JxG<22p;5@d(n(NrL-Lls< zMJ{jOI&IUolv@+MdJQ~F&P|Y-xaTsWJ#zo9gEQODT{^vc&6+pQgXjNtzV})7ednJ; zWx zaO;@V`q=%)J{5_tR5^EDMe|PN{$m*i3jV=DOK(cWKfUqM*<|bU7aK)#zb!VMWB2iG zPVCOk72fy0=l*Am6nddL?_&k?OYzDFM+$%aJszmGaD`WidU8Z>^omN~$Fg_prtix6 zaL-t3+Lzzl4{RrCOu2r;VV)+pMYggxvXMpWWJ; zz2~{@`-iWx!vnkuzr47pk)-zcSmd3>GmLg8{;E>@8*gYi`}q9%>AhHoTeW-D?_Rsx+7!uhP|MtA4yd!WU4LhYhqez z8sz)n6W3CnC{>P?+XAJ81mxD=s*b)aR{n%1>9p0XWrre9R~V>x3s32Y{kcj*qwC_A zUsFn3#pUkbSb0F{kbkSBy2!G;X~ENuUYVF^BR4rU@(N#udC6uy{zq|hb2ZCE?53J= zq89JQ?1*Y9bH-S1hy=j2D_SigO_@_YAc&R*Q4^ZuN}fxmrB2ky$= ziD2o__$JBH@FPm`$?dzDiXnF-xFi=Y@yNNWaAi&S#`#(@$KQq4{NP?(cqw^ru4^O9 zV#kxuUNOjg+0DIX{o0~mZ!|9mwJ*(*sl4~_+g8)KA8)$%d|CQ=%44Zi75hK){}{}E z%J#eO-Qgu&M`pYTly%Zx^5jFyOqb*!27&JyeK&S8ZCT7^LEAOL zKWx(Ph-BPdu=J?M(O0h;6uy7>XkXFy|Kanx=1Y#N5;F_+m!G#gB|fiup7Qa&$xCIw zy@_46F8h;-az*!or=Paj+{jJb^7i%X^u8FjosVav_t%B}2;9Th5^_&jagOhqNB2KY z%$CitKlSs`Ut}jOAhc_S+TjQ{~fG+~0rwU37eJ;w8>| zZARNCJeTd;_eoE1hvz2w$vYe_hv=Hiw1lZ-_Hobium5%V&E4IHDom0r?j$89Hri^R z=3$#{Q}Bjkx?b#)3k#cj+M*{umetv|YDZ~tv%8$#F>AT{mhJX+)1tS>J*|CTE50{o z((|UTS6A!km%dDG)0uo@mCJ=y=e?VKs(vUKxIO%6aeqRJMzhq-LLPA@`*fdQ;0~c*QvRi7d#*)6riOd{4_cWInY@D5wyQTc7u!~6W z<&}z_lU5oe#Pl1pGC0<_ZJGJF#P)Z_e2Ez6*eN}3&aYN2km$V_^k{FdA5)ZnAbV)2 z082=ys4Ls#mIrUAoacQY-92T}u64_%Ou7(ddMRrE&ug&>Me)Vw7Dll+&#`v+eMZ15 zuiIP8bK18TUv?>&h9(OJP5i!VhRrKRpJ(y0*F|!l%fH^1%h0;uqnwP#!sO@nCLR|R zT;^0yeSM+h@Sn~6wNw1-{%NhhdoQJQgWn{sU7ZeGC#++yT{oA=>$Rx-qmp0!=Is(s zvAZHm9MrA)7GCp^H&9x*N^8l*1yA@=TsRn8mEO2L_b^P}|MQv#gU`A3ANB0M$IfAn zUaT8e^U?K_O}dR-(aWo+r<8gobNeh?_hBf3yFWy=+aNU(5g4aP{=~wEOesoZ=Teb}{x%l92P`SGf_-k8H1F;>zjWzWx8% zoVCj>qWU@P^4g*z{(O6VPx}9c#az!fZd3CX-ZE*5tLLIgFT}2ToI13q>7Zp}Zp{*1 zmd-0yWyMX0e{-!&u6oq!q|y4BF+cI~HMPZSCtcTzfBNCyUkTlasJKO|xV@gA{KOaC z%osT@dCId-Pfv#|o>aH~_~GT}KUvHF&;9oH=J9=dt21+Yk1q`NO@6)7yd=A0Uu~Jw zmdKA!Zr7C^*cP9=(1ER)$EfV?6txGOS`VChCrxDb7P!H-Ypz}7qz!k@M)+t~ZBh_y zWbczp%+5aW_ABqYI}uMWZC!2i<$`A0V#RZ&GgN-rX|G-UW7^iW1xYT3EP_$-8La|V zc`~gonX)TI8;(Ex5b=vrgi=(fAcDR=4@xx8NZHd>YQ9C#$tQ)4}Q`0)g^=Tzfcv2uyYIne`xd!8++(m3^DV zuKtq|wLP_ZS?38^6|c-$w_G3YVmP%T!(Gd{WukX~xv5vN%Jx4o^x!#!&z{%HmN$Pp*m*xD7nj-5mg(KDqFwMypxF=NO{2_3=tCwfw zQ~{=KD+|s&s%_?%doCNq8N*@H+ij(pdu~oD=iR)%ASETfNgN0LFNv(>y`_?o>)?{; zFf(Hh2ZySI{}CVO-!>dKmN|O0>T0k0IN@W#fs75E`Cd7Z6Qq1svHob-%-iS?8y*sR zC7k2lyMp;rvs)H2H zT2(A4lgs2$^9_vj+rRxp(E9TkApzmMk@psEzMy>8XiAuZ?zWXH+?-E6lB6s7?%Jx-y zCpP!!oVFWY{&AsLi@OT{lEVlmnUkke~ z$>aTP&6XWzp?zszHI(h%kK2Y!tesyc2n&s0K zX&X#aGBaEIYu*UYsr%ts_gZ-VBhb9=v8uD$+sz^(Y#c6~JZYu5Jufc(|G&L9Ro?=0 zWZ&}ihGeK}tTH^dLdT|nJW zQ7#5Ap9QxCPZ|rdf6is<2&k}c3_Z@byDPHZrNSd^i*wEGtNpRw9X2tov$z8KjwgRI zag_FqoHj!x+h3(DvbQttW#+7Hi*k9bdS%L%vOKMD*?#-zZZ>%)FG;EQ8+s2{cV5(d zes1p(W`3Ik877PFzu&xV+o{Ip>K#8$RZii05#sm!LPo%Ztg}l`Uw`@i0rUIcV$-JY zmbth8OhWS1<@f$cq@SO&WVU3ErNVj9A6$zQ4Q?#CeKP%A^|8LSbKAXUzTjNHxM*+w z^=n6V<=Dt6r#@NYpJO?D+0Dd8i;H>!xyP$7IhL>MT)!dL_l8Mc`!@G^rGicghgp8D zTP9PWsk-uHR7wey7%yWY)Os$3}@`X^miYVq%`85a#ZML0BXH#PKgOgp*J zsl-_0bywc<{&SD-ywdyfvg9`p`|JxQ5|byDi5o`t`5Cz^V(<>-(dcGem$_kT#{0sL zQkTShFG{_C{PEe!&Z8!Z1!7BH78c+A%)S3hU>N%>YvslO*_;noo;GBM$3K43d0E8u z;Hy_!ck`wPFZWCAS*UZ`qkTr?!ObPJPtNd|`ljJub=jqyrW=``#h;w}{b;@^(}C{m z_I;ga=L<9~%M@sQd23=&khrOp@1no!i}!qbrM+b3!}9v~!gDN()fUx8RX>P+Z5}rL zd)fW}Z{+JgdViLE1YZoW^T!!=yN`GGf0y3>Z=?Lb#`n(-@BgF!^U(78>9(~;+3i2* z&d7Uk;w1BlGe+xyWX>}$qs3*9*(9FEhZUM)Iyvq7jUJg#nP?eA|JH*Goa z?3rvp(>H7fhNGSKhd+@BRBFvyvh%`hWj;YxVVtpMShd#CDfVpB5PDbj#DS z;Dy4u#NcUTNI_EMF&Y z6guVVio0uGPuu@z>)Qp(zC~LfE4uCKu!zI1Y-W$=1Ut2tf~8Us@%zudz3m*f{%Xwr zzz?VYe|uc=UH18>xxCl9CK+9c$o_fn{h#g(be)Xo5BGXDk zmUQLv?Y>Mg92H7)Zf$qvzWa*%2Pdo3mUV(ka`AsIJ-+qspNZvkF2P&t3O`(4Y|8S-nc-j($_;-dRtk-~f)K}IFlJ#C3W zDpNFAq$C5G6<58qwtsv^(Wb(D>B$C_(?+KjeQn4$f9c59(qWJ)E8?5_@`+|>=#g~= z9J*GjVnQ_>7jFf-=>J-^N+8bR&XwR@ZBL)t#_TSfU6h| zybYz#)eiP~n9A60Idogj(%Dq5;OEj}o2qAyVq(SL-bFvy{qNH658E8H`ZF@w4n{Az z5|M3awRDx%uDg2Y%zp$JdizcYdhZdjT;{9f|DT+#nUfxz>AGV1yzE9v+qdT%ll7Os zU-^30u62zXR_Q)gt&PW(9A%C#(z)%T{crwcrRI<}oAc4@>Re zr%&Zp$xSJ~8+W1>7xrDxTerzn;^VsI_d2)tO`SS5^|>IfARIV#q)^h z=))3+FBSC*^UL1lSoZUQ{-4eNpWpn+S19-S$Fn|5)&#lyn?KIi{juLW>p^{z;pLFo z*)h9I=I!mSWs8>fP`$Z1y)!|kG{l-<#rvOj+~HfhC&(Casn`UEQfG_O^RoOG0L zBEO8yj`_E3|e)GvLxP0EQvdc&+S0pqzVN22uQ-@@MxKA%;x_>N9Fp((!^(B&N-eYzD z4I8#JTQYmjH z8#~{d#P>n-lim4^gWtfu)K6^1H=CQl^eNEe!<=T;FVS71@__-uXz&rmIswBwbRS#-hmK_^{Qb zqVt2?OJ)mC4uP7M$?W$p2?cnFE?hIYw|0)T;4^7g&G*NZ|36!i(r)(gf7ZEM+?~R@ zoC~%-nZ2ng>VJu%h(N!u;X-FUf2u_7lq`bOD;&{@u}ryOJ5 z;`jJ`?EzNzSuX6|8b|Ie5ITGBulTj`u}$48 zh4;1J7uyu1OuTbtg@M`+!%34|m@f(MS$g@T#%iI-8mCqvIqz;Fes8N-5993!sn;hy ziD*9EB4O0{!@RWDFfHoJ42~~H14XQl#H%N7S$sj=>9?Hy)`mH=!hSWB_6aQ5$Qvqb zeNfH&PWDPI6TAm?V;GQn~Eqm)$&WtcwdB*I!P}EbR1KZalYT zL2(9bEr77+qzNjTi!Wwa*-c(jul4Erpy#lgxl_a)vtRe zZf|~H_FS^u=NZZj&puA;pZ~wQ-rOX6dgZ_V`uTk#dw$3I7kzredB*8LdE1k2O`{W< zI=|Ol`6s>hfgDSdNVaVh=ds5Rw@B~YwCPN*^!13ixOuB=&3&Dxm0pNCepaDL&11?r zj;+qxt*f>4_7+V&Eq=Y?&BpD9GHW+}|G@Rr$?2ANpjy%W=8!wP>bgIMIqnRc@LH}~ z>|4>_skiU!s+*jr|M;o5{$|TtPxi|H2=n1fm$UYboc3hyjoj5awwV?6y$|ERyP4j- zVlKQs`Nj9&Yx3_Ld?LAc)spM41E-0ukK1uc3qkT~qbi(c*c3WbL^>t1GBo_$sOY>n88}*PR0A z@>=eH;onm5zPNJluPMSp+956tTcYH&etfh27^Ste%!27gLiGHy&MTU6Wy-lnOgUtN zEVeLcCPf|!o2K&m!Q2DvM~@|VtiOG{^~6-ZkQpv+A$?PB9GkpMb8(W4?L*d>eV?Q% z=PmA4w2D3JGbnS0zODf--;Y`ukS@F| zoaN})AuIbga(eUbXODE864XBS3;c}`n9w1cF{AVR&f<%|^e?{L#yW3`#Nmyr^FPq@?(D}AueyR7i>lax5KA0%%+p#OjMj~*U>uK-pS5lW4JgM~K z==)e;B3jbBg_rf-CO}E8?t8c7Z{@mE|Ip-(GjtGNUBCcuIHw#!Fch+qET<4bR z>KEv8S*hpZle={yGC4AP<3#>xpPIGg^5Lory1IvVcV)#qSQXZBVQaRdnT1wNL4_t~ ziie7p2}^wP6qgrzhnJn7KWF#R|Npr6AN?B5dr-YFkJEqs{Een}SQKBB{m#kdwXFKV z(atY7Yu^4VSyi&>f8Wg9Xw`E)YHR%I-ADc{E8)~E4`8@=X5rR6LH!9TC#T3I<(}<+ zzVFDhXI6WU%0(Y$^qlrcR;KcSK=$hEZvD0&KYai5$Nuk9`x);!o*VX89*|))=-*zk z=g&&}Q{C3v>mR*3DjvE2o7ARnC7bzHXJ^l`DP~&Dm9xU|)SDABYMod9%g1CjI#fEY z<5`^OXsB~z^QQJyIw!0p)j~NmUz8MY+S7ea(`~86>y5qLv6{&f)P6b6R(aSe9{1qI z#>X-i6?4{1o~$aBn^1Y4$tkKS<5r6EL{-a6ny(fm+Q=BoO}VqLbard2t6t2W1E=nZ z^2u7AIW2yEv+1n|58cnX_&+a_sa+Y(_WydAUrjA95fVyec{wmpCGoW;o^($cRr!WTOo{^Z0SkH~hvm$&0Sd6*4*K&mI(Dt0+D;Br?({Hu=(*9r6mM>Sj_v0m}%aW1>0UV3& zRbROpeqzRhEwOHmF0)ydF1Fh9S?)I1qMZ)}jwsCw6H;Zpcbvs9vw7>puz>5Pr?s_t zjx$ek5nPg-yW!XZxefa^_IVmBd^p4%@5FJzts#F$#Y35=6%Bl<+2(r1e;ycl$DT}j zwXr!gWbaX7e)*^CYybcLx$k||tlI8*#_H34Xy5;yD|2i5f+rn1xe+fig@gqTDYq_O zb!rgQd2h@7C;f}8`2XaPmu8`^c-^EAK6QCMZyMCpI!oqdmd77y@?}^l8aZv@Wfo15 z6Ot}X6V|ph-4oNByJl|ZLGJ>N_mVleMd`V{9}_w@`!0E7(VnaIfv@%OiWd5X?@1~S3)X4nT=qHo#cB2j|JclTiGO$eUOL5T>nx6f7R zBD*|=mRvK*b=-VCzT?ivWp1xqc4fYgJQz5Y`Bjla@b%n>ZpW)<@#uD*6pCe3?NXU$ zw&UyTzDU-6HMcvOHq$^Su{O82wN;Ou|E+V@!2}Bz&BLD_aq-L4H|*7} zUh!Jv*zK1kNrA`QT@IW4R1fk<6J(e?o!k0&dfA>^=5>eXKfeE=I;Q&lgdo4!jDh+t z6PL`o`t`QLgQeX13x%EYH@e^RjfmYJsHa!H|95!(&&8jg)XRZZwx-@T@2{+R`osPI z&-*;t&;Pe%>)V~Lmap$xrDIw7OvOy!;`ck}7k%mxjU1oWxxC~RXDHh)dtXDvjw6I4 zK$OS4{mEQWv+Z0>mm(5h>MmPSD=fNSP{70}LnN1-yIVcLe^;K;g65=(^fS-*e{kLR z)%u=)ph$;WLXhO{|CRzuQ?||4OO!rX5%Hn*eC@>WxH?{0p7!suPyS5T-;n=aG4F1i z>RYdUPix;lx_rK-P5$Rb`GsZ5Q~F}XZs#34d_9UmVBgzShx5d?7xN|a_{Ls(TPE3m zd`ae;UzO~=z0!%V-8_Up+;i=JulDrXRNlJB@&DEKUCCL;`|``QNXv>I|GJNrFZ7Ix z8sql+U#%#)=32h%3get99GAKDZ!)>gB-PFC6VYN%kFaN%}O`f?&72lr> z;@?=Ts@$URY3Ik>=l16m-`na%TvF*jc~Ebar-GX9X4y+881KE*wtuV8W^Pt{zlXJ< zv-Qz@JC&Ag2FA)xnl3lCofFPo=&h>a*)(Be^gAi;Llb8;ge2}(zRBfj*4w>elEdkj z-z~y7?$~pnb^89EOO3az_n5@&ESeg({Pf!F>yamRmrQE8ZJt-~;{jK?-&}{}%5O8D zzbJpOvAw^z;=fV-!@KVvT{viaBBAnQ>+_1+!u=cftnc@9kn+FUGg0l8sLLwvuI)_u zj*}OZI!$OgBwF$Gqwe*pNj}pbGp+U2>CkYE4cE{u*rwvktGLB;&vk_}v9bR$+0Al( zPdV@OZ+Sue*4P!ZM0k|$y1mmlk#|0Q_u}Ars+LjeAO9-|*hI)rj-4torRPz#lg5OJ z%niv?W`ndC1BP3e)T*Hk^n4qB?%+x>c- z23MbqWy|)y-mkZFC-H5|3vjz+a+_nGtVly--0vQ?18ep*W!&{D`&akJ>Xnj&(Bwet z?kim;y;mkL(g<+7{8l%qmVGJf4n|*Nl^rY86*8Vz&HmyX@+f>oN5Mg%m@Q#zV*CWf zer)Zp?dq@jv$;f!|I*v{4{z$%%!{)>yrN-BlZo%kl3hGz$L3glHF&xs<9W1;YiOvc zXbX>0*M76LsZUdCb1$z{6Ok>vKEvl)Ud{Zv%i;`5ybBIWG;f`@YE@F=X^*(Qzofi4 zuU#|Wv3cjYx7OP$Z(GYfZ4_?bS@ZSL{a+vU|NGJY%=%#EnPj=oOb2ZCt$Y;!_wawc zm_KjScYJA0KdF7vtA3)hdVkTQi_UW@-z%<>nY7}~I;I1E?f$!oFw__(Z82S>;rL?8 zzfVTXCQm9;ajZJEYeCsOowvy)ez7j{Z%s@u%AHQ(csXIwA&s-Y-ZmvZe7Roc*{7we zmmDm7weYb@?b#J~T(Z6Am2Ft+P~m#nqOIBRy59W;Y@@T_mp<){62e`S(aSN=REc5lfW+YQstew?smcf*;Yyqp}v zJQ=OCE27tbdh4wnV5jz8>BTiGgD&R0d@s=l%U^wZ@KMQWX)MRZPXVhWbs4Wlg|qe; zF3G&qb=36Axkar<*!uIOn{OwD-(D2Ic|yX@)ek;|=`*bOR`NHzQqF0`N`V_k8k4wO z!-ZZS6#A+@#cxK(+DzS(LA`6u94(r}Bi^rEdwiD$p9E7#=;236^LwqgpRjJ59#_S; zQfBU%gxs?QF^Vlo8!spCyuVnJtLvkHvd#OtU!41%+WK$4a{5JDllF9dgBuZ#W&7<< zoeJu=xvat4s1_A@s$ufHTUS*o-L6gvUbx}ohK_Txz6z$2>pDMFXfOQ8TRHF1tXZA2 z8#6QA+-7l{RV&+;d)ejnB^^bUMzhK-`{%s;bH3=Ox>Eh*Ct+J<@7-l>_}{RSIpEPso?Y-Y~-aq1hZ~6S* znRU}z*mOAWE?=yyoj>nP_4}Lee*c;Of76XO3_Ff}oBZ(TTkFG)YfX>2O#du3Bc{J8V=Di=kI8~eQt=T6MHIjd>g8MgN) zF0tI7rE+cC!i{{_)v9=oD{s)os(5u5iRWHdijXjEw<~Y z_9TU@<}z}d`HSr~OH0IJq3l2T|9|%vz5KD|Vi-{n-FNuGt|U^0p4 zHH(JhS}nHa#glY7wI{4st9g?w|M04K+=838-Ndc;{FmkbxNo_>QNpR6riU;0-#dTo zL_#;`zN`aH7d5YO8F()Fo835>@2PA>_eG(#E~}aOIb_`2v(|p+(-jTM*kTg#`s5_W zbJlxG7U*gTvb-#a$O=y~YA!A9;mR&Ob4%lrO84)>tuwgq1zicf&GO@cq30#H*7hH> zSbhkoiWueDPj>+kMxl(kvEr>ymLe$4Y* zz1a`4*TvSgZk*^-zU}4-p8omvhuP;>_2k$7xBhuozK&nM?pvW*(dhu0kJbC0TJC$g z`243A&C+vhCmTvcY*|(L=wEt@UA9Wgszm@fC)(pRZjJs_71p zO#Y?PyyCA|aqRy?wx(VBi&{=ti$8u_V{(l9?aq|jFW)~(xjv)Ch zsZJifp20rzl()J`3pX;ZO;+}K{p7yYKlaxGLVGrQC}y0}+9bQ=Nk;wrlNTA!U0dRo zJY~sBuPF_V^AcyzkO-Ql>KeH1`V1Du=);#9_zgEI{K$}dIagWW(caa$4|X5h&Kz*0 z>E7PYN-zJ#vn+jVH*tqTft?GR)AW=J$HJL7G(Xr`z1Cjpv1!X!z6}p_o7(PuR#-Ia zB8O-rhtjVJ9T_b*Z!GJ*e>(Hf4E@^D{{5f++WV{x+gVjTfA3=FuB=nno^fq{DY&mN zL$I;KMY6|_u`!G@s4U^=o!^X_0&Cg5Z2CJsb{lzF``u%9ahV`yZ&VeKZusq^dG_b^ zr70r1MrmTR>lLHIX7>e|Pge6u3%2_^Gycif>+$TGo}Wb)s&3W2F!Moq?eF)0PS&jW zf93rD)$u&1r#{#;ZR;9Uh7D`(hkY&ocdviXzrXiCi_h2lRyJQwrEU8B`ib9dfAeih zJa&6tUB~DCc}g16(ms9u0)A#X-)9~8V$Z+dNbW)H>!|pvf8Se4&tA1D=YxvORMGJK zJ#358K3~b2v+m}BfA6LgJ^J}-dfcNo*KS^u+?N<8Ybf*F#MgISaLnVCdtB4A@7!1! zaFhAZpY*(f&%YGqtKJ9O{JJ1HiP0iF@T%&qC0Ba;{Vq5uY(22EZPluu7uxNP+-;VX ztNY@}*Zc+g%`&>X14q>Y7FF$zz=S``;#R+n&F1>$X#O=Stsr)o^*X^11u_Pc}dI z|NP4P{O76qe}(SOE2+Iz2LTa+rG9-UAwYYyjC+axU?XYsl@8B zh2U$cCwWS@Og&0t&q{v~@V#8M*ks`^*5%g%|KIt$C)>dc(y3k4rjA+fPJR(stGYe!?t`P#k)^ zmU;8`QLJyUOyQ2tZ0)zN2b3Lp%%5i%HtoC3X9MNf&sUtE@A&^^#`~Y$_0#hI-uP{h zbnNBVDO)!_n{EHiZkr$Pj|b-ax{JTB6>@34vhDjviN2xp1MVy2C`)9j}4lEpe4`qF?223?hyX^V?UH{Q53rcPY$23m2 zEDF4mc;vJG+YkKzKAu-%kG^xy`cRdBpqNj(yAL0~;DKYWq!!m4v4~Hc(C_(`VX3gy zC)Y_XCq3Dnl>F3YZAn;Qq1U}*`sw|9+%Fxu&hGdBxBmObe^>8*{_@)8#5x_@%6Y+8 zOZius`W{ZV`?)?AgaEi8eOx45BJH9le@BcaR+Cz(79dqZnlyPs| zp2YYkYV$Q!rt3F$p1bOH{pa4j%xi>m=G{&D{;c%eT>IvUyo+Nddv%5|Z~M--vo?43 z*{{4InUc@ACVJmllW2BVoyDKiNo`*9Pi&wCxYne3l6ww>!vEW9WczuEfQgYxUH-z&Dyc&o~#t~U3sS@-3K zDxUYAOxU;M#QSaAuPNPL@8srQIaw{lx1@ugY088fn+~j)@wsn`NvUrZk89wft#4L7 zy%@Xu7_0vW(^DCJuQ>fGCnX+x_)xLEoS*Yt@#kZvY>}tlz0<3NsYEJSZr$iLOG_$x)2AP6s{U=y7v@4!f>WXk6LZoxN^_t5`is z()XzgTv||i@72r4B9Tm;BDpb{KHD{-gYD#{Tw)iC&GOoRVN3bheL-BhtU>4dQ$H~J z8|QypJ3~HL@?hJ~+J&{cT4r1Bu66M0G?7wNzR}X<_ib5j+r)`%@^iYy!_8&C%cU!y zwGR}!ePv3j>*XsCY-aYo4^@*=yYK(?^I^0O zUvCg6UwFUu_s8C&OE|B&eO~YS{lDw>SFTa__U`M7cV&J*N7++oNyv?3$vuz0y}kXU zvhUKY!-s3HU32G|B)EFds$?%q*d$g^85+w<{X~dH}#_$`{h|S z@#+<4=N>+AzV=n+z7I=ZUr7|6I&Y~U?={mqdum(rYrboqQds%A&BVK4t>2aC_Dfo` zUYeRN)s^52{^Z#7fh${jiJ{Lj_QI}JqP=T>Ez|Q9Y7*ZwlkMaC1xIZ7e;?uRYh<6; zAfVt9Z03~V$l%T)C7-lp$|tGkQXk|dbFAU!xmGmq_pixMAx>p8qDE&ckWC2d>3mcDwh;`NO)qNT1%!F%{GPFdS4>z&dU#OWG1Sw$*a z*309PiR$T1mI6XdTeqe}wsCB{Xk~Hd_>2q@$;Reou?d%csh3>&>tJ@`_shEF+uxo0 zo%iWq*!822OyV`K`fsqBa3JdT@jbe;w&`Xa6yN^3|J|V{n-_oi9(~@BC_gyYuJ& zeDUA3&FaZTcX_4r!SD7L*dN|1+9JlHDR69&3eVRGt26?=g8kChvtgQsP_oD5mNcu!e|G+^c+l8w zp&qr^uQQBoi&I8__%wx@>NAID`~LCs`Q2a3w1<`9!|a)_{)b(4{iWM9>*9T-y7-$M zN75pX-Mc5}rP+2^QU2eD_MbcJ|9+Mc6LxvaacOF(@n7cq-|hdrU444$eNe+bzOZsH zsDghRaR2xHKhqx`yeeouuYTTZ{koa`buS|4)m?8sQP}7q8}zFB)!*I6#g-d>-!~~` zyUxDnW^PCS+!IKc&~I_a+U0f2>hSfOwiR-zGf7KlvpnDEd$gp!X=2;z@O7I?tD1Yy z3O?>N^l&$dN{rGtW#zuO(l?$yX?4Ja^~Jt>v*>6Vl^Yc^WNE#BC7_^>luGvltg z4t~qpHB==SKOPK(tp(sKo}}aWa-C%vX!GF}vsan3S1nleNFe&&q_BrH!(%iHSo*E{Mf^jQzhA}fA<`J{I521Zoo9v+t$`M z9(aD{nX*KKYsr@sw+WiZm7i}vaj0kQ#z%)%8osakRcQBhWxPV9rr!C8i^axt8W!XmF zYvvlfaTP+m=dNa4HR@jDqWJq{MoG?OmW99itK^xKP9!t*3usAIvfVzG&^7Jf{W$yB z;JBM+SCyJfT@9CR6r6GD^PE*(4F0j#-)`(ZBPJ+zBjk|qn>msf3>}s{@ny*7U|J~Z zR{lxl^1ZZZ0S~vw+fOVqfhz8H?x;5%Dkyw7~d|(FtMZBY{Oj1 zM0M{M>pJsxzuUwA=&a>;N3KgM?P1T~?LA&qCFZ-`f7kukDVb-^I*LYV&ndXLBt+Ga zaiM0Q#g-D5^@WMO=W9Rm?t5Kb-x0NbW4`V0&76x1_gpKobYMUFtAcg0N`C$E%L*b+ zO9S~tKWAUiI;In5^uXoIhlo4spQ}%-=V9=;X;{S)cY#?a|K2zA?YFiX7m9kxb^luZ z+Q=(yiNg8fzCOMkH9w8Cvse4539pN*m3=LJF3!T)>dJ~OKOfKk@zMWZ^V6>U$kS2R zgcu^OZEBGJ@$SD}&4ZchKi>HNE6&^ZM|9gYmG@QWo%ekH+i$$`TebPuqn*!Aw%$1T zEUj?kqiXh#1^x>TM2o-t*8BYH_4OM!?z-q##2&M=Xy)3>uN6$=YafQ5n_Js(_pN5X z-7g9KeSeg!cw=h5)ER8pxb^70x|3&bi>}{O(;gmoFR`9Y*wkUU@~f4HIsB8q-?+Qm zcd6?8irZrH)ke>6?|T`0LuKI_-6*zMn-WrPv6f9T(p1Y(&YZ=Soy;>U$9G{tAa_nK zZ-d_@57}vquVvI%{{H_>SfaB3+5P!Hsz2#6GTcA5M$ksd#E{kI#*LB+$AZA;b6&~l znoM5I+{1U}>=cvh5t=i@Oq*?v?{v6jeUR@n7$-`#z@yu*L^S=|vs%4Ct8mlJt_VRY^di3By z!{z1vo2%1j-@O~l_wC!wTel8HoxZs_{pP;nZWGg<=ANQ3m4HpvEx#cpSZ|y>zv?ZQ*^xdATFOo_5 zz4ndzl518UiqE${uvOgRR?HL=+*HgVnf!ri+Ok#3ckdowx#a!IQ*SLF<$8Pe3s%Pl z%U8Aksjz9ynJIHtrhrRVHcqoOzmYN7=lqFPuccCh+!hO-QsL0Nc*{XMz4JhWlV&rw zl2P2027!Ww-r^a{58FvedhL2IYvCU%A|vNEdB2J2604;e%S2oc8puybm7IKXN&cMG ziw;N}K6Q%A_wtd)bC-Zm7HScgaW?Hr>CL#}FAiZGjSmhL3cFl1GT-&Gyt-DWN<(J% z^i$^UcUc$Sa+@I+GTG{7quKSQ#P08x1p1_3eqF#L$fJHFJC?&i>x_(f0oLyY=7J>&pJ04sF`&u3r8B`Tsu$ zHx&OA&9nQ@dgmbTxx9>P*I3{GY*Uw9_moBRon&j7QT?yAV#@!Xm>raj?(tq!W*ziY zb#gPOyL<4G0Ee^Bel>io=zSi)op(y3L-wr|N0wy>ETTCw4wN_f3(# zowdAtxys8KE~*wY3$AeZOfr~#C-wI;-Y_=HAZ@-^2R8f9dHj7}{@nbE>&!l`2QodU zX{2rD)NWSv4NcBIZs5Q1V9@o{IsZC$B(P6#T)gy%wLzrZ^4e{RnU8;19p1Wq&&5Al z4G!Y|;zyhw>-#YIc1(@V>U;hdA(c`e`fmTE|Xm865Sj3?=RL^&a-)rj`xk*d%KJKE*409 zZ}+-!|9<+EehD5nlYKAMFYn&Ho2UJ-`O7!f#||Wwo~^t0Z%y*)IVMbNZntfp%~t;Z zoe=w~RaKJ{6OQv`%+iQ|!E?^4dB@S$>u1|7&-BXGo#zl4{^sr5!neKB9Euh;R!Z5Q z->!~4nA~sc#?g54U~HS)2CEA;-#+{exh#7wkMHLP_Is{LGSSP!Dt}wgd-8O8{Iff) zpL@cN%`kCSkt~gzxP^uHiXo#*+WhB4k$5X`@$rmM%G4cI3LLQQt>JLzed| z=BftHdSGMZxng;+(Bwt|i}wM?j<{X>ouMSI^5R>5$K;7i=l-i(r`s2#8nwOTqTlz& ze?0_xe@$R|?{%uk?ediq-}0wyUSzxO;|!MTTOMR^Gq6CF}2sE6iSk>KT(yeggO@@>B_ZvTBGuBr3mfe-w6dLL}iMMK+XQ(L4 z^)2gj{qo?B^ z>Y~lhCzB1s3Uw1dA9^u=Uj2tJ^`Gqjz1;t9`s%%@y4jK53<;5^qgKrScTt{`Jv{E2 zZ2!E+!SNV=TEBVs&M5BYlLaly=u5*@>mx$M~=P=Zd)?fX1;2;r0K|YYSV!f zA@!`BP@@3LgRW`Lfzw!S9@8-kol{oT?X;mdefr0Yxi15cirf8G{q|jL&)?YhPZl1R zb4VAuYqeQgIUwpmP4Bfyy9!l2+sc`ooMx>LoX)t`IAvC_M&tEai#DBEcJa;oZ)$79m@A1)kq=TLOr z{knupE&6{xO|N{la`}#upP|>Tg;`kLao23*nwMmjS~_FH&V6pd(_<{QA8mf_|MB?0 z6ZJmJWas}_Isd_7`HE@3&#x=2Dn6oc-B4fswBkvIR^G0JpbMG@E2nJLc==l`Jgaka z>Fiv&;-{&zg5>2UKB-)?E`!lmSh_|sVD6Mf$-=D_Yum5M1ihHDOvB*ig1tT}CT2}s zMpbcV&YruSeS9}Zo2C5u>Dx4yGBfRY5y>9N|88ZhZ?Kp}KIg%QQq?^>FPiW!n(noA zV_|Lc{Y$@?zxxDqKJYVfC|&oGkwN$QvXb6njmZ<99rk!XeU{4kK&zLIYzuu>f9y}I zJATvAZlAg2f{iA=t(&JUTgiFt;uTfj(8WttSlk0eICN&uo_!|Gcuw&X-M9Cve--Bi zM&I8UW);@s?&jI>J;l=}YQr@pt9&NS$G_i}+3HF>iSC^FWXF-zgB9CmzhZa1zeV4T ziEW{P(LqMViX}Oh%|o`EyY$FU{oHZJ@0#*NmWLdh`gr8#3du}y^|iaRV1wrL_3u9a z|Mz2m+INl?xge8u{cEM4DxbQw$j4^hVMn*vD}qNt*jf+nWShycr>Np`w{bvRQj^mn z4llXv2dz8GZyjIsC;4NstInT)e~Q0v=VK6vne%IUDNEw%O+BC1xqN)-Uq36`Jb%Nc zO^2qQ4wp#LbYj_*c@WU*GgNNJ4$?%-+Y~cJ?zeUdp{YaZ};20ZIfH9*_(U2PCrRFrCcJC?Un)BjI6>9T2}&yU;xFTa1@+0Jf}T;TPf#&uCJ$E<|i zKJRWAM1((nrRArTsUGmw<(%*YtIl;FH!WSj(XG38=gjOsd5$}F zaCF;$&!0EBq`@ou)AiitO{yhUAImPOxtzZD;?9Y`A2kCx_+H26y!*?v)P%+9dcc;# zjHv8ctJFM=R&8?BJgoljs=7t(FCEv&qJM{KL03X-ub$q`Z|@Q4W7x@5Zj}(Y3j|WA>KKeVu>jpo+8F z<*o!)uV*1km#>lu&0Kl9?d{vUE4Ch6yj9_}YICAjpj_e4tJ*!svt?xcB)9P}Du!J7 z(${9MGpT0DncIQ>AlC0(y{rVE=wwQ69CWqZ7=B`BvHgQLzPJfj)kBE&` zmFK;A%j)pm-Q}K>G-4|rKl5Fsl=a9sx8m8!Q|V-D3OJL!hx}wadG0{+jlPauW#q~ulUG5VO8z9GAFr1cZwBTBo=0zX3EZsB zEw1xg@`Cxlxc6}1&1HW-`-l17<(l4e)~;ODv}@IhZlUK=n^bz=Oj&m1D(}7BamOw( z%59EZ@~1qw#FNEqP3)caz@iJX@}3rDdzj=@pBSF!(o}6+@wdNs|NF}}k1CaZA2Tyb ze6jdpjKJ{-hJ)G{BCGeWU}QH^2s!;{LRZLB5m(<^OnWb?9-O#p%FUd%Fs6mfsm6{= z+cKFi&3Ux^-&6h1C;j(3B{T~Z?fGDs>r%nOrTf`3;-Z)Pl&)usy=GY!s5~+iWXZkd z;K1FPx4rP1{O>yvCKhkLMgHjt`fJvG;D8dtm#>T$_MdD0;>nayE~i&z*S4en5pSYi zby2TsAZKc%a=WBs!)omwu9(`tM)7}6=@&me#(Qp_b^FGq-`md>lz&&-{{8(2_kEwO z^XBiac((KXPviUhP5wq-+ca$}3&XUnYpSo_|1Di_{O5W7yZxf(_CGuAfA#-c|NpUj z_u*)plK*1s<16R=f7AcZ?%TV2%QU#+c7M@QxVdxl;ltwc4>ul{OSXx6dOH4}k$%nF z)iL`%S@FkIFie)bcK!OsdxbBzYS;WYEWgag>e1)utND(?zhaLs zS}iv_|M7JEAE~qrrzTD{v3hJAU)%Wimhno(v&H9fayRbWdGblYsSJ~(*Hcm0xe>aOR(Uq9@GwjZAVZ}IsLZ|{HN znW{h0>eZ5^S2)r;+`JW99m>?&?rmdec;CBcSDGE4yfVXrklDI&eZgjjIXAzyd$wZl z(~>F2XSm-pJNjs?c*y7DPiMy*UL0E5%3o$@D*Ve=j_>%^?Me4~*xQ8`*8478?sk6e zyVFKY&f9uLgo@ShWPGMt>1>Gf0Uq%C?=fcCBs=_o|qEHL7O5b_PHJ4D5NA5=gt*)RD9>wzQeWO z?;gLpdj01EKR2tm6@5G;Y4>g6^9b1ty*ZKYJ0x#RI^)r@i6zl+rJ8T>r-v49a%=&Y z5}M~*Pw|#K-hJ=8)%S{djEj~=ZU0qu{?N{AL0_wX)tT@7w($Cj@-JU2{I>L;mWX^2 zEqP?`y8e6djz>7`qaN>^v0CiqzlBqMTnrYy3>G=HY1uli9tKU;s1wO?JlC%NFe}=$ zGHI5}bsp>IQNi}z1t04!dO9>s&`t12;bZLGyu&YO%Y-n6Cg&ew3K!W@gM93iPO~rI z6>~I`P@2-iJ7toJmf62^S9jc+tP;uJ$8z1}^OjwU=7~<(tjXBETDpZpV(G_&-`ZLg zS==i90!1vIOYpE=DZLx_|1(SL<7I7+W=N*0w??oeh`n$3>Z&$d+Ty$&=Ze) ztN7b?T&NGzdAI-Znud(Lo3{HnHk|w*&ChVcApeIy6GQQb<+Zx!zTcBD(pVDw;z$6O z|KqHb4L<#RKR->cm(+i7^z?KIzT-AuFD&K>KHK|x{l_c2<@N7>x4!@1`ro1Qe^=vU z*1dzxS?azHU-|y;IeW>NjqR(ydAc4>=AZlYmv{WbSF804|J`9-R&5;j^Oo6a<+J8{ zzBi|+J>ES3uTFJ)wFzGc)9myx&RdiDgzKJfuhW+Qe{%jJ9WA?06Z-?EsZQ66ee__3 zgPP{ysk|OV=j^{&{C|}GpLhM;9cNFi{Cwx8^&-Jpe-ATr^evaGmu@+5>sHiydwHI4 z(EdXCg~HCErYw>gYQil%Q=YC_KEo{3cdLEs?{{W?)@r3^TZ{V_{#C61QEq$8ectW{ zLDo2v7bPBnQ)d{&pE-Wa=1cdd2hXDJA7x$5&G3f<9~|At_F_p& zQsKiZGsDlS|Jwg+i7LxRgT~^PWy|Jk+)Hk>jbHJ*+RgQ(p7UQ_h6WYSMK7mseNyRX zxOzfR&@|P<4<{UMX5O}adt_u}VtxJm&(F_q?@sBw_GyM-oOo;59cQIi?V0Mw=Nj)4 zh&{K{QLFh%WOhfIz^MnES5lpyiJpt9;kY62_2f0{Wua#;E_wFuU{Ch-{Lfp(*B5<% z$Mf8HjPcXySlN^iHw!&U26uI_T^k=H(@x%#mvTl1dl zZ>5DB`xj|N#>PH9cJ?-hVnl3gYH~93YuUgm0xVPZ(H+xo|6^k zkZ~gDXhufBrHLBnOEx)A(|Gsp?!%ME=PTUUq3@r+w(#MfOgWqVM>9Zoo{DUn>6(0I zS?36U>?bH@9`@S#_hgWt98Cy-^>3a;o#5Y1=05lw)5t^*rOSevah6makjuz!xz`2 zlMLGeygrysNYPxx%AYdHSZe(Qp0>bekC@ebFLd_3KWdhHn3KaZW6_o4X1wb*3bL&5 z>U!C;OzXqFMNtYyO^OdAJ~_mO=j7!Tm6TjL=6J4`Yif{&V*g#|UElwNU6qek?fV&} zv&mQ~+TqK)e;1E@v8YhkYI)6rdtuaj=Bx9?gS>J!*g9NY+Hxd$^`kZREK9Q9pYA=b z(VXkmHgn0U^eYiI+8l-R;(t6@{inPBtLhwyhb|^;BFDa-QP5O%n{|Ta;IaL>m+nnh z_51YHaI*7Of%7{g-rk&=7cA#z_I4qwAJeB6c8A{;r=5i3{&e;J%NJozFua@gvG{`i ziQ7FUEmrf=T{QyS9yC9FDjuIyT|Is3M=kxmMV$`~o=K@`|g|+i#b@o50IH zXZL#>r_6J6?2e1?|HNb}WE}U9{r|syqim+^+3Aw&=Oo!gIcqYmdv;}|Y1g&FSg%e` zqdDAb*5oE^(#c}Z_6`jVIXXqf@QSZz!N-k9B+}S}=d9mR_ngiBvgYAGBK)xyM=$sD z{Cr&hLOF-mdsWf=349yQP0W^EUX&YWHus*zk)yk_UnRF?-(7UQ>bic`RHNG9)l<3@ z4jfvtkD2M+)g2`a4)TRxU$ZcL*w*{)u`l2CSmTnSi#vZr<;2P@k5sz1-T&vdiYj);~tlzMWe@7v7?`QnFn#2!yfwDGtRBVU+RJoTeN_ZiW|Mbr6v{6C%oOd?8>5V z_77?uPGz**dOEj!;w0C=3H--XZZb?x<5(Kt={AesbCZqPYa*{ZWBHT?8eFrMDV{dkq~q*$FvTd*MoyS1B-Awj zTJ(qHiQno!#ck%`_>wSxPx*-s4_)i_Q9%%!w28CK&zV)acBs6>vH&a3N}O zFz>#+vmZkAPe<)>zqQM8MMYGrnc+gMG!-?!=h{4>wolmqpYz|md$!V9%e1M-QyLG+ zO<2_g$num;9f=t{1aF!@I0pZOYcCORtyjDAthB_Ea+F(*EGMjoYQ2$BNHl_uM5a zK}TQC$r9HMES3>B>J0jE&B2Go{{y46%sI{_x#H`x61i?A_kOx(*maNXg2yM=T7dtn z&i?<%8k@2BMAQPum(ymxP2MwezVuvOyZeiz%kK1_F}-v5(c2^MPnE3-yKXvlt;2=m zk2x29I2Rv%ddcbi|uBzbe67E}YL7tL@C&u(eaz zN7(cLQ~y@pbJI57G~!e`J7cP7Sz4gimW|m>0xEp&SxhZbPqSNeJX=zV=X`q6T6*vE zH^Vra?f|xI-RkOU8Cl<%K5DkiNmg?oy(zSGy;yIj1RmCSYtwSF-5(kc-< z|M=K72~Cdxk;z=jZ4$OiG*)NaxW>{FBIC%qr+7H1|I9eH)k zDrjkiil4`)90xn8MUz%!m!Dhs%2Hx!Nebfw*=?&d(k^E(M1|hi)p`7KWJre{tFPcw zR?kTZue(k@WIQIZN$2p2j4wN_@21w)&fT-D$S&v=~ph^3;c==SzWF@OHw{Ue|M>poA4`vcX! zJ6o<*9N5|LRWK$vN@&UB-rMGtU$=U<2xu%*y}D+RrnFq$o5VezDl#=S>mM~9m;1Bs zsaGCo5yExWC_Qi)aGiVpzn#zL)%|z3uYR*}{?Fy}Ykrmg`N#k7js2hK#Pagl&+q-_ z{r{tp|KGj;TYmq{p8tF2^SGLqSI_r^hrh3R@%`UH;is{>$xwtD{AN zFZBKW>pUm;O6l2O$2y+hE1dWK$F}r{^Vw3WnzJQmPOP}Sq}*q zx7pp;XUU)_aoXNhVLKARIpsTW~gM;*_P*fdBd(vj+2%edifcA7b@8JGyLsO zPmbe{44#X((|jYUfwSo%v%eIpZJTikuOM|;iJWf7Yz9xeYH#9;&ROIbV|^doQAJoOSf&` z{yV}aJNJF;CX0*TxtI0FZmx`RE7|ifK1E*lUUZU8vh?B|3=Ac~CH@MYMzf~PT{^{S z^%DO$PQ?jZCKq_y$eCU8P%v4+u&MD(ip)EI!=D1SGMj8yuDIH<|My}0V-N36`CHp> zW*KRB?3aT;pqau__mdZ1T|LNp(}+1pj=L|U^Y457-pGfZlW((zx!CY0nPBc3Dq@aJ(Mw8xz^8ES7SkL84{<}2)SFFwF7g8N;Q(0OHHtrOC`H^+T zhvOOR>|B`j^IuXU_9j~uw>fe=I>My+=U0A`y4amW$JIJf zi?{tNojXDK%lq#~oMON1V?2J4Av^i;t{*k`eoxyftNHudExWG^GG`_K{5CgdQTg$* zi~f#Mz5Ki34kN zlEU_cP4V?L^T?d_Q>A=D+LX;*A<}Hkjwbcl(#yAAEuCbO9H_Zyiq*9eccq3yx3n&u zIL)NWeD9i!oS#N|u+ZE|QmxzPrZ?oIN`CxpBEMv22^@6Okxb_JhCu%?4*h?-K$>lXwp)x<{zx zH0o?nr>2E|_bETW z<hl8cBU62&i_?=KdtE4jbrORf8D z6CHp554HY@Moy<5yD`<@`|f<%NS>QxuKN9ESJjNR%a?;Mp7)57uatHA68(Deb*uNK zyQj?ixNpjS_1aHOwm$r?eo8v&pOxILswgsPI(Ko-njcN&`-HP?Vq=o~cfL?-lnSYK$n`f69+-b2;yZ*1(Uo=snN zXU9jOi{%MA@_%1AyXf?C?|FQyXZ?@h;(xpM|MT@ZrJDM1XK7XU&xefbK6_rYT>Wu* z=Ys>jqVLwdpIb1i+2?=gr{8&#!!49K-Yk$@AUgSEPI9M7(B^aRjn{wo+h|=Vz5o8B zf5*T4S4px^nPE6*whEtFZnIIPUd$bXmy??!f9$Y)X}{jj5~y+l${#qo!!{DY|Dcf?bghuj@2`c9xYz&C_nmk&8=N})?JpcUhp|-=bx{vnmc(lym>a`rsJ)XucYG+&(ukU)h`$_5E zWjflw@_ZLExn*zJ^kc!yGklKHtE&8-+gx3urY2W+U~^7bh5nwjY#yr{3vZ^JZVJ78 zqIOQ#g-vTT*QkA&xGpmAwvun>+BLbMLV+_jNxXTzW~0h~)1>>{|L?Qk%G0g;7~8+K zZPO+lF?F9;Lf6^FmLK17?cr}eQITyIt~_lC-MnOjsB7$n5?ej1w9n4VE^D4+?d$8~ zP}~r;R^et~lF8jFpla`e%vlemq8GEdG<4NDtb1{=#Q1KvXRl54 z>ZjG0HENF?3%FzYXxj8WUdK(`z8!fX{G~obK~VFw(3GY938!Z@FLv(Qw2a>|fU&f7 z>(ziCuUncFESicd)HRl*?S1s)$BYL-#kyU6jm3AL?duWDUK()jx!jxuVW6#c<~ECy z);?$Z|MkuR<6|3aVo$ukFlS?gj0PvC>&D!vJNDMq-p`LwDdUP;%X>_O`OxX-doQ1Q z-kh{RTvGe2yZ9f6%u5_WEJEMo84U$$RH__{pX^;&%6dNj{m(}EUy&=`KRaf%z^Ah_ zAfvh4cG(5ySI1`vWuIyh@zQ9x^2M=R&Y|OGUEyU03Gp{GUrmr^c>E#fa%5Rx)K10? zPgfXjJ1t{sWgpDjFyVjPGB$<=&fB~V3k5?mVrKmdzs#9?{o|Wr|4mWypBM7~*ZTUT zdXUvH!te&0Br zUijzX`oFhs|9`jr@AvaN>{J+cb~=RZma91s)!Vgb-MijHVX2QMXm7m39O$uq+Q~Ns z84MX~4FfA~o}Qen8Mjx&ZCluvzq6*t*ECL#+vyj2zVgXr|AM#se$SXPPk%@KG4ub^ z>pRQizlx-_8b|5;-J=rSD9B@RGmrPAm{Qx*-E!}(J{tLLOKhxgtIY6I_C|I3$n8v8xZ zWGc5EV>l`+epK94_ndzKvsb=a*(4XWtvMmTe(3as&Dh7bR_T~KPu2nsmQN~%OIS=# z9nT4QbKL7n6-%V3$+4eY&ja&qwjaNKdxNdxJu%PE8M&NVZ`Szcsb%M}N;dlr<+mIN527 zsDWyrv|#9FG1qOcCjGA28YSqgXCfQroXB&olqt8L?|t<`KY7d#IU=p7caM~X6zTdw|GLPZR?%sCrzCq9p#Q(i8-@6 zphqJl`u73L*8i?%^*bNjcV&FicId~yy&3j*LMOVNUp58-3bgQAWz+h&<%Zx+S_sZ?xSKWX9?fsA7@AZGT|KIxl*V5Xs zt^Kuc9)IoH%kjYO+efS8?f3uxd!N_mzyGK8|8wOhmgucYxtlim#B86aX792Gw-U6i zRq7{MbgthXQSJFCcaiL}vf3$`*GkL|Tf1*B+T!ajZ*%IJ~|M|r$ za%H#2{Vgqa3)U1wv`*)?+hNRk-__=pzbRY%tCaojTFLFlobG5$>sS1reExIcB+V1- zy1G|fns02ivf=02b6Y|}=$b&PmGuRNC13g-1*g=k@yNR25MuXp&+$Yi`ODv13YpfF z2$g?1qT_U;?U13!Q)Mr=9>uS1&T*=mD;BTVneW*6IcnA0We0BP>52cYQc2tXbB~EM z6I1TA&a5C;e#ZXeTHVF6lQ*#_TQN&D>w0rVa~rAl9eF)Pu4ZRx$PA4P&SdX3YaOa% z9>1J>`0>izgIgvYGAZruP<-@z+R>zgMTJ_wIQK2jj(Rvl+B-5*Q=<0xuE^dDwXO+$ zi2_SZxZayxnX>QwQC(;4TU*oLKKbD*RLrfoK+RNytM%DTbvfTYfveZH?CkBz6D`=c zaN8^arMp?0d;V@ZmgPJ7!H1%~+kQT0nzSLEYsE+7314-}q-&zTmpkdDl-3Kff6>Sd zICg5wjVT(z2|cdUg;#m{M*6#cxw5A3TjfG#v&i0Ib=(#t9Sm{%9uEj z>;Io9JyV}ko20n@+q}FU6?`j7YJKA8Gj3C7)hKf8iQ^Vhn%^Gbb?f2xultUFm&@ka z$RCmX@|M{91?IwYW`3})|G;7Yv)H~-YyG8frlFyMng=>fQw%pg+P2_vgOMOFli=^o zr^|fru-uZstcEg#s^M5~JuYX(f8}Z>;~hHvGB!{qOew`|In!e!1)~9B@Woc4><)-yMg=N)gT1 zgPvS{+VY|$d;Z>yN2|_oiChW0v1y6U>x0qz4BD1O78bppaij6lM7^>tZzmmnX{f*F zgOL8dlIBGkGp>kbKP)LdvvqOb`+wH=kLPmipjiXx^E7&OMkgE4J&;gX0r!`97R~Upw_&Zb8nUV|TA@(SFt2 zRdda6$A?=BJ1(kB^w`?E;X-Q%hgPzsg;kQ#Z0;?QFR!fFv_P3}p$UhH+!X$nCs7NU z<-oCI#EF$-U;e%h(w#7dFRVTn&a!~lo ziOeS6PYUZR>v9vECts-2cqP&lq$R7jo^SO zqE}P8bhC3J7vy#thP`VzByhWQ(J7W$UuS(yYP>ewX*Bnpow>|dQ-~Q-n^FBkXggdh?9T5L3{eIV%+x&KAd(N)_HKO(eCVunY z&|kZ!?qmJ`AN_xyg^2%c=C^SO4GX!UIV`TYODo z$M0a#zj7&z1KX29UKFiKkeMgni?9Y@^Ra}uMNv} zblkc>?a{d4J^73n>oSuaFE+F;T;Zh_Jkw5l?UQ}J`RBfVd2PD-Y17k3Emw;?udn$~ zd;HOl84s!*)PB|8SIzdBsiduXe3hHH-EFI;f&;~Y8Cx7PXU@`I`eJwA3+98>k;$ry zvWosiU292MIoIMH&}eJtMFB@bS$&%fBJD*KFFNRhp~1lseyMCSTqw`Qfcp za%oXe#07KTBEjA{^X?qdu$Xgx#i_1+;@-}J=~FoCF0a|%R~dBu4Bs=(*bNJHEuOn* zFU$;XR`z{-_2!|VI{{Z_)+*QA)SX^5-|)!VzvsomuBn(G-eQ^D{7QLB>fW!rdcJrh z^-Kx%oXrxS+_NQC+vd|Izw>Qr8)Fi?G+&>))TU|w?Y!NA_PXbReqpKy&t&dC@##s6 z_H@0CHn9OBNun=m9fB86nfm#v;agkJ7X7R()7JBDTNRaDqL?(_&AF`qrsa0sEhi-w ztuGgdf4=7Qx4NorFYfEUdjI98dD$ef%XVwe-F(J;>&3#(D`na9DxYP>RlRhLt9+Wu zmu8$7x8HN6a%chnANK$E!tej*mjBh9HsAMcvi$Fg1L3K#L3L4bnEGus*Ogr%Cz{VTUF^KP#+^?|U|P&s&90uJ0@P z%j0d8#Qq*&oZ8~a|ET!DG_8uTH}X24_h=NHK3=zh`Sib+iY%*Ec{Ta3Oz``bcCG83 zV}NyMyqJHGxbut8*Ueeq9xc2ml2O3>;qL+={SU?ae^&MQtjf}O5L4uIV=h~sB8Q%r z)m1%~xG;0gYq_euhqKjHziw<5+c~2@YJzb2tNta=j?Lh}4R8melxLCv7tL+e{ae(`xrWHJajhb3&n>E{~_sx)% z;mNwyEaqw@)EJoGov-=jgG}0Ww&ya2Y+Si7Zke9V^1aS2vd1Ls9jkh4U1oQp)4Lk` z2%W5zH@3e~EZ3DccG;uB6?2{6ig~8lWL?qEKiy4*I&VMJe@w2w+t>c|)s)lI^^2=stF6nAoO|cj zUGcEj`nS^qf8RK6cdzG$GQ+ox{nriG*?<32ey#LuiP6J#+TkjNCG&Rc#S6YKWet?> zS~SHxG%3W1W68_Z4#AkVHIr?onZEuSm9SbdVG?V|e3uhW*9!|?c7)ze?rPd5tpDcL zlot{fv9iW9eOIn_w)^?v_|BS;qVKWOHDsnl8C$OD$XW1v0_*Zg_20rOmtWdq&Udu6 znD2d6P0;S^R-d1LZF8P4C1X@-p6R8-`SXF9fy%Zj4JG!iA8&6lct7RS+{S19_I|>j zd&~}SNI5NixhzcTxvib!?9UmonZ15TZ{&U4etMzZ?IKxmiIoYWht`UGi*{&Gc_;2X z>$-6Ulg5$^@l8!q5&u3VE7rA&*?!BVz{Y|Ua6O~&U7+gdy-%3*1!FDVwNApo;YHT9+>@x%2xO3pcCITgE0)p;uzWmCECN zJt{a%)Gaz@(X*br+J~mCh`qs)Kk19wlzX#c-mkim{;o=F;cbystgeBVem88IwtzQK zGAELA)(RbsSDgh9ia+`*RJCVI-TFFdTjXXN+oh5EmX?;wBK2SH65Ep;b^WC4LJvMp z?@hN{x7`()b>!KcPQmxGxtDZL%wqYugFBhsW8ZhjzV?EL^EPI;&zLB?yGpz=_tW3C z!bVOl0#_A6I0L2}{gz@Q8{GE4UzdAxbB9Sy_ris@mKTTZO1T>?=6lxu$2|Gx50{It z`NiDz$>^fCPtO#$#YrOStgNX^Be&~bt~$2s?S@vdr@MIGhpX+qZ<5n9X+QhTo30Fu ziJ$k(XTE=azWl63=~w=J{qXa%G)GSTeM{GW=}C|3uUQO@*TuEf3DyQ#ASHK}GiPcZWn&7jn0(J8rQtpzGLzH3fmrJx5-o zJQ5P@E4;jj+xkZEQ7w65DDK6Ulbng2a ze)*p-)PJ6;|Lk4)WTF41x${0O{k})s)-Zy_X!WCvB$=d7<>yaEHd$*mKFC_j;dg<{ zkyF;;`OC*M#AnrowQ^J$hZZ|t5WF38oAF59zbF6BEZ=51Ox;-AS+Z zNd-t1R`Zw}RZqU&nfd4(-yx@K;Vw*}ciwrgxO=_F@^tUwq&U^W&1)JJK70~THvG|| zz&ZQ(R~~!wohB^pZi}Z#UyBOh7Q5;lxV(w|`Ag^iE?%t+!HL@0FO)SdG6$qY?0X?} zL?Xa&QM3B5j`;N-N@E4f_-(_!ACA87OOTb(c*6UJZGK^|DM|U6XY-b?_!bv zcrY-f#nsMm@7wxyTbI4AUbz2_`Jp1(RIPb@YR-Rb0 zYNoIHjZMqeEuRwFyUFP2x8`Vf9U^dviK8d)lkl?`>Y(tbFTh)4A^arcBp^EPa* z-nKKj@PAstpZMyQwacDgK5ute-R_^j*{Y*OJDdtrWlgmrnM3U;C=}zY4ei z_Ho1c1>oMpOlViyx#sx&Ki7VA_S^d;awj$He!ok4?G}!SjP29)6IV}KVRG*1k=ffs z0+;M;srcSvfqyG5rFpnby=Iij+Ott2J3uR`H*sr3Lf53y+ksP9Yd0^uHmh?j z$GwN8M?_eUt9$!RQjjse^;POywZ>(KzHeo+$i96Vt;=}= z^8L@Z3Tbt&+IZ+_SX9MIH|aH^b-TB+OkR)h~F>$6Re*@e7R<9eDrgf!YPB_1|kt%4hmHt?s4Wsc`p=85{NP@^!U*uHd|*g z>pL0t{a+Gyx}^)4zir#`@XhJp8$x?tKV(08I(Fgl+%DaY?;daSBUT(ZCTF0;xqSnl z5Qlxsl^rK0{CoS|&|GE84HhmZ=Y4t;e!Y=;*ls$tsWjLocFKX%TW`7r@c6D{@m+tq zYg=~aHQAZ@>n0{ewRUJ`U2vObRMGUlaNY5(y0y0--D-P!(s1?BN&8}rHNBDwcC1U@ z8|87>x6${O^u^y-4sbZAr0BNW%#<}TGTCNu`09mL{VKPvE1G2q6lJ10N8oeAcj9Ffd( zY}%Am*U+mob|uyQm8^>+7SI$$YnWT+VF`Gm&ExI4#7WQW3rucGX>jrB2H2r?P z5`1@t88=Z$YPuv>*X|`1E+S^*XJ>QZ{-|P)^ z6};;EzW%j&UGwt!b+e9s)YX%fE%@6izO%-}{@34j`Ct3g1B= ztULdI{{ON+Q{#V$I`R0V8!KI~?$`9*buaN%*S6P&+a|c{xpC>X*5BT4vd%raxp=Qi z)vXgxLQbljaKCWO<6w^PnmFw(f~PkNDBZgDMNi;E%f7>I?kkndRF&hj&un?NxW7(j zy{-PfA2Pwg1)pzDul#xQ`Ht`NPS>2Py*^`#=&_7l@20HU!XmC&(t6F*&LP0Bgng05 z!^vE>Q#$q>UGahC!=)z^Sc1+Sw^rxO6%$tWGFqun!Z&%6>rcD>K(5uMk?Zw^+L_`t zO#?VM0w1gl%2NOS-n8bmFqzYN~BkzLiTY z7j?9lc=5lyvn8;3MnXs70_mQ{KT30!Ulxg3F1g?H_%xQUW%%(DLaHJ&)up{$_w`lIb@2~>o5pTV*}3EBqaSQ{vs&LvPwNg&y6@?H z?CYA@Z32^gV={~Q-HvEFpE=UmvP{DHk?{o8oAXo!?T+5OeDekW68mk*{pE9Qu6*7+ zS;u1O&Lb-lLZf*X}DVL6@F^~b6+HGT*z5p)rA2>tY5;39|U3X`Z`0jGqwI=*D; zKg#MG;wkKq-J_c_-~alO@AF=6QQI|-$(_SCHS>VW9R42yOCzO3YS|}p>dAfFU;Ezw z!vpvEi)Y;P4V8aT`=Ir;zL92j*QN*WR)@dbYY`?RCl_=rc-B7lTtin@msgv7c1epZ z_7?osZDo7ciT%W*erc~s9E_7P3@U%syKx8@cqRKP_TJgUpQ*iH{XPG$H3bQ7v**72 zcc`_gaemgv^&HG!y}s~Hl6JpUoGh|kEa>pc3#?YA$CImGHHleYk#N1a{JZYn{E8nB z+biBo?%xnKui)teq0c9uM9;I|`LWc0?+2&d=jVZHE69Xlv_akP>2+_V>p!s9zgQo$ zv!rsysi~=&o+TfqOrEuA)e7~}rVUX!vtCrbKYA-aO5NkPTfyn{dn+^pq5{KGgI<@F zoVO$5bj4rA6YEnSWlpMY z53K6mU;plFzvShO3%?$jvHa1=E5_RzRO~79+oFRnPwH|wW{Ae={8+W>(TfiP9U-osU;6gF-gbfSoaL=;vM%Djo6eoS zQ~%!8;DT7%>t8*YT*<#q{&ZD4Ja6Ln`)}?|{3>>?;F|k&M{U>3%_S#kui)}jk;^YzmPIB8Ek0Vk@Y|NT{=HY4_I>tQ=Dx$?;YxAof8Xx^ zmXoV{)$;h*g{mEeuf_8Bzqfn0`@7v5!z-m{Z@=4n?CR?B!ioY1+nEAMF4^9;b34tP zIyRkOu9uYe;^mV=i9U@NpYfDt9`*@p{`zp;kNe+hm$&V$EPpQ{#l3y!e)g_2mb?xA z_HAYNFMK%tLbK3gVx9ZKvk$%q23D{-a;{R&aYi50{eIm4XjOtKW{K}O^Cjn*TL)k&vaSO;+2bH*4ypv^5f&k zdc8NWtibJtOo#%TYVePTKhAGYaL)a|@2+xRx~pK>8xDJ8jmw{HcG_Q+2)3A{bJ#7= zzGthfS@u-!zrKm$lhqESy_%7{rfL7u7w3-tdq01p{he1nN4I=sw=KT<)o-E5qiw#j zomvYfOI2Stbrv@M?_;`>)ouM+hntHRt;l+HvSrn(mFdATn|@u1YJQ!0Eqm8jsrNEk zY_rN-H^=ZEzf>ywbjh;st<~`1i5h^*FFz$J^(U%ZXhaKX0XUHGg5)x299{=LU!}?#0a#dLe3m5OKe9e-qbNS?)mnnye&)b}S zdV2cOlLcYxBP7Xm#o_x&_Wcvh@iyp8So(?9cSzeUPbJxQFl zTGZe6r^V7Xqc!)7dHUaNUIuE)%;$x41?DIHnY#an{Ly`{BlV`Q5#!d2->1_QagH}w zYjV!cXP+%sU*!s5I_h)k%CQJ1mgE*?`-n=#%WMBE+v>2sbe6@FC0pNHeN=g0z2|k{ zI&u4t4>-LVw1~RmAb*yz>3+&*LjwCm+=`Uq4@<=E;+1r}un1^!d!P z;A^MZV#PGpYH~TpieGVMHGEL3{O_%qqucS5Q?40pWWQ+6G4b9`6)&-Ju61i}$-1#d zO*vWr=uy6rpJl!2yaG4Vj(bOSG?s2x_hPEF+yB@y>Eiv353J5Vulm4f9y!O*RO`yJ z$i>3ub6tELlxJ~S{mfb2>+$G;`rO=4A={qco;!(`t=f50?YorEn-?V1+Ab^Ec|*$i z-uAA&EJwvV_6T2Y(bzU6GQr?}c9)KwSi9%@O4rBf(HHA?m!6#^S{O0?t=iS2dQzTy zE}Y(#vDi$koRBf53tWFoy>Se`gl{wgLG?~wO<=}Bwh>ktoOb)?}o11`3}{%g4pt( z|D>&hw#nE&@@uqyp%%e?%qeg|?o^g&-ld@-#}b5WoqOllHceAg;Ama>opHIY?`7e| z)8@s$H@qkia&(jKPjUHQ8uHbD)c9?S&m^DU=VLnmvSmBp#K+R+mEU*YKby7n(cApp z{o2#@gQcuZe3E+>%}sp!?0@UjwElZ~KQ^-+TJXUBP3o_09$jap-Y?MGaVAHVqG|C@Z5NZq#cPebRW=>eTe0)mF86GSAGIT|<)miuVWws4WV&#rb^vfus} z%l5o`N49F8y0PbZO8lSq$@0H%n1jYIx0n6-y8l=F@$~t%VIs?V9~Rj88+`YDbgNX> z_jXXIXliU>L4^a$t#wORWp`~_lAC%dRHUr?_ng0rypmV0=34EmRb|8V@TB=`)7aaO z<_aI%(KSP&suG&INRa5*b#vXUWuI%*&lZ;D3!Bbu^?aTtx9jZ z)5(u23zmLRX?;99@bzOR{T77{k5f#aE|!l|X3vt6 zvOYWM*7vyNRt~H!;b;`*SH_N#JK3X}Ui@3GV$K1YT&il6N?58g?(ssHW?{H+{pZ(NJ zsv}g>cijWwsJOm`xzfM($v^mZ^X(B!_sb^C-|J&m^xsd}Z?XP>&F`{%*UuHNJaM5U zGi_C4k;<&ui|?=HxgnG@(}n-&+XXDAI9!G7c%vTkRIFv|-n-`1!^Ml%qKeQ;(issTEz=lrs!&{S!x@bn6yMs+wObuyY!&z zC!Z$V?h~5)jx*Ju^=?GKv)ZDRuhZZDyW+v}anGUXl@q&=w@@SbSj%%$d8_HwdKg8uM6R0oVIivWQg4nOh?9VaCJoJuZ&DQ7t%J;YLn(?vI{%7*O7ykGCx7#G{ z&FN4ym@RKO|GdQxo2BKtb`_Ox8T2&v1l?HVqWblt?@1B%jT%cswT^k-sm)}~SgN^Z z>4s?rL3QUZe|Y#CAOU(O%lb3W>f9W=ko43Gw;+n^1>uXhv)!og5%K0KK-iIFB zDV&&Uw!i+%?M-Lz29zvOiqGuz^lh?{751p|+9f<)TJ@xr*A_ODS2B!iLOkY7XI^c7 zTwr5CJseeK$o z`QnhlLmtf|(KD-V3~1eG@P zYnij?dWknNI3=H+ly-H&uLE0jGQ+&r%q@64?Q!|P51#w}yVv)n=dsBBxuJX~YRyca z?2FDDR44CJ+NK-->uCI;t=ZQLYVA!n^jwM-o8)Y`ew(a(k8aS#{Bs$~J=ZfU>Yx3) zoc^t;a5L-D^SMu+nlF7Ha^Zg5m-m;e?Uw#ff7QF;)rHT#=Y+H#iE2z1!rz?=)*dncwLX5T^%60TxypLJ#!g)=3g9oPLoMW+Vq%q$Yag52UmLJ+r+Mo*v?xVdf`q@ z=Wc$c{~!1NPp^3N-R{VdFFxt+GIwidCfA>OzW;sfp2xD`lY{n8&D~QV zrYBvU_vM@fO8@Uuu9|tTJB&eNZUM6vUs%vjo6UD`&6qEJ<=LKIy#P07MYB+;hu8R2 z3cs8az0)|!ZEDy5539QVb=R!ex~+(Bcju>>^SRR}-w^2ZU|h7gB7Jqiw^Ei%`+TQP zFy?9&l@eEZb7$p2L$y71U9LY{&kDxbTl}rG*N>^6dChfixa zvx3SJ=TE-(W8C(}?pWre(=*Gda{Wp*(_7Orq64l4`vfNCD9U}i7BJ1|!+GtnyU^yiV^tw|I43rzIr>c_qNLfRyDo}=Q;XkTCU7&wqtpWJ7OK; zc)p+i{lPU`BKgRxT)~3}zTHZHcz%ukqDe;k4B1k7b_rPZb57G)CN5I(*73O-+l&QE zUtE`3Z{m0Q^Sa-Ck&y|Dk}EGgxYZP%r&;$vy{<96PqyFYvyyqA_=^RZv-=inmmAKP z51KaZYSGEx`yPB=*){2C(!qlzZuhIzCU<7&PEkE)d2z1cQH5KprZ`1fwm*=p`2V=J zyyktcra*d&fcxw1Yh@Gi>fgWmeDu$`fB$=PE@U#P{Y-CZoVKuSKc{1Z%VM^vpBlZQ zdAhD`|MSs!{*#0Ef5$#r^!$R@jIV}EQ4t0=C&joR}PX1X?-w%KX^-u;As?&Nz9f*wg7 zPRPFg{jb7|>C01ZMfF^Ck>|W9EHG~i`DBM{wwLewT=(n3#iR48-|h8^6#a58SS0wutabS;`{aU@rdR&RnleRm zqdQmNGVQ2ruFZiV=L~-ED4y7Jf67hHs|uYCTAwVr&u!?~nGa+PkNSt<)>LfOwv9g`1L?*F}~_{O%&Rib+z z_#5`uE!Jd6miu<|k@KHZ#fA$fmp<7MAQRue;#}O~!n;4RxZj&kRx0>?onN`z$@WIV zGwxm844sP~d26>C9eTfhdGVf06(W;wGF~m|($rqIS@LN~pPsg$_vd+acQ-`oMCkkN z{CVoM$yq7a16jIPmR}WGDl&Q1u_*8RrHiyDT+`LQ&@H=Ixo6hwWR7~Dvxj3UdZk&a zSbX^nb7C*YGM?#v!63cvzu)HslY`T0Z3B5W$;NGJ+j1>PtZ7e>oyXe_wJbqq9_80I zqC932nL$ZMABA?Nwe~iAxA}Xfcu!68S^obo&VT;<|NQxnozJi9)VP}3Klv#h_hj8+ z$#U5wRdo;%#58?(ZM( zocu3Yb%eE~D>rff#eIvv%)EZ%*Uh=vrG?B6@jJHH{yINTsxrw#+d(fyLMK#ollX0h zRpQrYEz*eC-8Vfi_W9raKe&%VnJXv1vfEuNsV|*x2r3Mrt;>p<^W}fn ze{A0WqdOvdXGuxtp@>^ws~$w>b@k_RRQF8OGiB~tq|)MW*(4%+=9#n=9H*Zq&4@ZK z!MWG_oBz#!I^8v@8O2&9#e%DQWHqhCnP&Rm`xcq4Rorq>VC(VYavc(HH{KH5bNGnn zQp+bBr{{f`TK_M5$FDx;b@!|v@B6K1IRDB5?=^FU=1gbt6j<|O1GD7Wmm!}5q<$PT zjJ$W$;KNl__S+xWw}qTq9Kke8rD?{|b1wE#s(bAV9XsOG%y0I3H!v*vHE-eCz|zyxBe4ai%tDgRwhGPIXf&y1R?1(E z_rcCC9y^-L_g?bU3Fm|pJ{sFxW3oE@}Hlc*WRzZ@ap=c z9r0g&o4e+^O-u>h+!d!M+zLxaO>p_jMqTq9eH1f%)JbI)q32|F>&J?gnf{hMv=<)W&ZGmm~q ztX+7a%QIGJQ9#QnC#gxPs?%14R;}N{!TU==Y(doOgJz{GraGE9ZSr{GQSB_%^Rnys zgmqPW-de>T`7K{>+xA7uE&rnOrnC-ConumKblDYcrz(CmToAip3#%jN`T2()6}DUm z7Eu-Rexc-QsC>lb^TEYaoqw}QE44H|k1wftb20hfN%p$-zqyUEgx2{(f!7 z)14;sKkmG~&QLqsE82OA`VNCO33H~pNO#AW&?S`_JqIHMwMAb|RMax?++(sTP`_Y% zW=XrP!<5fo7nCyD_;FO2;QKYj8&^is3^-xU4df419xFrHuWNc)@QW%ypCitgk3{}1Wc z{r+C}{(GJ8=D5ez$8(I5jbQ54GMjyN#@RHDBSPLQ zdF^dmHn4sb6FHd1wCU)47qt_Dt^5-mZip~+Jm2E$nWfjg$nW2CuPG~e1-G;>SaFuo zSNg(b$^9R9^Be8XJ~lPGJaKF4-ne1|dnGsb``fQv7UFRVK5^lfZ1;~dYt5TqOcnaL zP34kWSsmljbB$}~hc~>xvF)k(;@&;$ihtbed|%zO=v;h6%=0AzUaf&wiY6#_o_x7E z?8^Q_)1kKTFdJixTyD-TDN}o8jiY+%`O4bYg;~dyQ+sEzuCy;hVHS3?}sMdk1@WLWpf&~7Qpt$mc_2dj*`u0 ztlM;Eo_ThLkN;w+tLaRmnX&=r`8K#}9;)(M+|AX)_`bmRaMjKuyXRffSmQM1e69QC zoR&YIYNrPV9Aw|sQglj>*(`G=2bUVp^@lbZ|6gD9*?IT*nFSX&HVZf;{Ga_dw&CH= z*T*E*Y>ZG1TPh;8UeuOvspwMO3mx~^PbGCVo%>!=+pV}@&*BhKfBVw8>ht42Ro8!F zvj27Y|0MD2Z2{*C9Sf^AE!d`d@vF>Pz8&B1RbO<}Nl~9X((|T8er!(Nfu0xq zm;Qg9?Ps`2J zj!U*0PLoiQn)yro+NP}QFD`w!!tG!D`l+~O-7871{m<@KzTYkPVI9Z2O{>|~%&cdoI+%kHw($|vF;51%{huU~TYf%|$6iIX=t)O`78 zdxVDGv9L@lTKR11(e9dmyVrm0jsHD$&+B)Zmn*pca86#_b@^!1t~rmbJtr)Ekp8+> zuRK(QV?UQ*%><>pp3DrQ90zkn@BO^9=~&a&Z!z=V-*qwQ<5|7c_o&~jidLID*SP#! zH16HiYPwqWK)PT3S~~Y5ZZ0p;xVvrA`oAh`Z?B*K{c|!e!`iRQ3SBP6Is^#boK+;V zyW!T0yE8xEZMyJ!^Vx~lgDPT|EHtRG6K(h?v*P_~?HBgG(-|K{SJi(qJh*r2T@yj~ zvIf^c!O*NQv9KTajs;vd{aVwt-O1YUSimeVwZn#sCT(@w9`$&aU(3HR?Z&myy^arS z+%KE23G?R4ZQtv!Zsnl&rI^_vCg@B-e4BuVux-NkdsTa-7|RzG%_zB(&J}NZDZn7< za#oL^%TW(AXZPOY&a83nRnIkZU6(H3VHR-R^!RdhpZ=^ZjTgQd1?HLf+Z9j#{{Pea z&sTJhtIykg?(}Lt>%B)F``h{^>a<^$Ox<#)`l%NCWXsZ6;SUw}gT>P<%&xc{(2riE z<&)(k&isCUO7JP!mhapCE!*f@&*f~pzWsi2-r;Fy?>GCe{jfjdcvbD}&UqdjeVw|7 zT9?$z=gqhf=_u`^SpT`VYmVIgMcJS&JH>PMebKplTK~iQx|ibhKkfhZ_S@_@KMmCS zgG}1&XZk36|6BRv_PUqTch>#2V&813$ntLY_qPsOGGE;?f1VLBRb(*QKAYw6nVK69 zRA0W?9X9FVy|ypteecb*=E+#raX!PK&O~EU5L~9reh$-%YUTFsnbuyhR$@=iL`zN{!^RlB<;O zHsq1d*5#9*e`@d7DpSTixBvWeY(DVfN?dY=lbEYw?@<%Oe#1wdBHI@6^PW;U`hSH% zRTH0R?B(X78%m2x{4cMu+`0A9P4&2k5BqITKY38M?=^cJ7oT2X!TZ}5dDmoQW1me8 zk4p>+J9BDQr0v7E-|x6*DCgb|I;VEz#$u=Tt!_O*A+!F?7Sxw-Hi~lbIv!k|tgrL! zeD;mG*BK;AJf}3RIDggMay{dRTiyTPvK@HctHgCv^XQ5Dvmdyu*k&TOSVz#8n}xSK z?WD8(|75v;FXW4MntU-||9Ri}o$njh|6f)AclEz(_P>7~09S#KgcNOG_s6}?r0)O! zkM%`GpT(}n*Rithd7GR6_|?bJ-%_%qaRX9v(Rx#k%g0lm zUga0gIP3PYZuO1+?f$Ryvkp9Qx%c}b%lZw@lXSuw*xu*++gF@+5&C({iA$kr;!aJ2 zWqvIJ3KczF%ux?wmewBH$vf$KcGPTXhTXgq!|yXx^wvKpvkuAs$mSrywM`{!#ZnD! zMS*~j&{iW>*U(^pwWQEl(u~IztbVdg@Y7~x`S0DT-Is-Ll{)W^I~C{R;<{1gYR93v z$Z1njEpL3;n(KZ4yF{>n(}M4Jr%A*t`@dq%1o^MCcg3Yo(Dc|ipZlueQ&p|00wRy+ zi>ub(jBjvySlj+nJi3bQbySV~i#t8@|E%Qy+^H`8@4-XypHI5C zTkNUQ?|v*Tb7uLS((89)>~^(qO*C4_x8)j(eunnyH8#85X4N-uShHz%vU%0wH}YQ_ zxCH(();{}ZAAbJvob)&;hTS2Yg3XrxFG9@ZOMide&upb&&Ty~eZ-s+#hVS#JfW}+X zW^gRz|FL3$&d$23$y4(yKJHB45fvr(|1Nvw``GgO&-VY1sQ}_+N&Q(5lI$hUrPxggHN2 z9u&qFm%W-)v+4Y2&%P|3tgRcHE+1iO7C&D(_r%*w2m306r#UlTIasS7!^$+zQ#CBhu)vznqzHkp)WT@q`L#hIk z4*gB*lYY#`E8yfY?_Je~d$%^R`tS+~+6t$BHhdqeK2cx5@!$iQb>#w!6nM7m;Ls@j zt$8iIT5-qIeG87Ax)wD@>QYqBTHl}x;;~yd$Gw!6KG?l;?|Ltlk9~7r?5K8He|}fY zkIJoY#XgGVwDw=GUhKzT`=LTTEPwM)M)v7_E7Xlwot(02-O6RbYL_)#b+!KQ(h0mJ zwAY(=p~oB9)kig#A3wfEZ269LN7b$~Jh$5On$4Hd8t zhg^Pbdv0F;SJ~#z3GWw=?Cd_Qu0P`JuV4AB>af(|qOH%o_kHL-P`OS1K-}ZTZS$;+7!OztPH=pZUp)})Q z?h_l{#@NJz)^9hb+ka>4%55?^cUk__CLP0D531Vx1$vJ$t9J{}tNCPj=T(dM)Tj1; zkLCZ6zW+7Y{`da(o0ov5zkY*K%*XWsHE-wtE&ka0e7^X^eF8Jjrui%nez)_v+^S7N zaitwQ_8k}dR&({;l8AVf-@6{D9MsEg4C`8#nRz|i=?mv7Ue1D@8)Lox{AdyD)_o~;;)#35hn5u$O&n8}s=n~J{LN<-XKC!i-*U1_YE7@A z`JRcI=ig1LE9pEJZu9L4cg;ibKbc%pbN-y0xhU=9?~P}#Pbk%#xobv9guvnm@wN?t zh5b8id|q8tPTcpfw?nhr@mIWd;DPWcuKI_v%cpY6y_dOoTH4S-K+4tSZlK|xM;7i! zI6L zzFJ(_9S4`DN8Z~Mk?^6e;gj~6gujwb2WC0F`yw#ukzMpTh5T!*J61%BK00ww#qE;W z+*wV^yLUO-+MAXM&SjP5oyD|P&4uTIMsIpjl+$hp)}xpG?>?HS9xYdO>!Yy!|J^$t z$%WK{tVKILr8$-sL zZ7)`A@S0G(?={D-|LO1dHtU{V_j%uazUOnK<6m6QR5DOtYWG;=(W&=a{&s5Dnnf!g zxJ0X|PWPRddg`cF*S3|Ly7g}S_t4wvGn4JKnC?N5)Gh^1B?AT*g-Z;~2@MAm3|1~z zFFE)3)9!~Yd$<3;@q12nUe#UOX2!P5>ArV&{(ZOm;T_>`(XXTL|FRP(JaSMYwK~21 z@_C!nAIsP+(AG|I&XLK;#cK0 z>(*SzEMJvZwEJ$_oU|i>E{Qx=m!_VWHRn^VcfMfT?~( z!ZhF5NG_wxb4&RIS^iI%p~ocn@4lJJoykYEe$3l_Ny#T+&OuA>M4c$jPdcpG8Lpk| zI#a&Pwaa#N%gO7n_;*E8Z|?2`oyqQ&+cq{G2vKM#s4FZyv1&(|mqKd5qw>iqAzr=d z^3gq}SEo;(%BnQE*4UVNeUq%*q2P(VhQYU(*0FH*EI(L%_1%O6?X?*`j)4(9x(kfD zx%)WJ?H28b-qv~aQhWZ~ZB|)RFC6+lTiSQUz3O>hua63^j1VrppR0QHj-{4sW!=N> z_5)%I*c>Xg4+hwIzn}lY>Fb+)%x|LuXGWb1&Ds8w@10qH*NT7nN2S>rIv&lqBO>DJ zxI}o@U%9(eLm!o~ORo5@)pyZTTGD;r4}C_L=NlEKi}RFizj^mgl8w}&r4HVWCyjF+ zvi`YLA~NMq?W=&Yf2>V5pVu^S$q4l6=m&UBNVR;rBB*j*rCY8DTFk|Jl{+Xpqi+)Dj>zvQTl6EjK#G)*3m4~=-o`Lu7KTl6I>=xyA zxN~fV182uB>$qBnMCKd1f={j~Oi3utpRK;{tHrt#5xMGf>Rx%)eGUJ2`}n_S=l}hQ z&)u{{ZC1u3{h}9X;wBf5)a?0x{U3kdI{AZQY9gM8xW99@Zd~xV@XyBP?D2>T}1e zmkh9#`8U^vE1TD92YZUE;Gcz}R-O@}U0Y6gmbBPxI<~Ude5d7$4co&nU5^6EL$aGp^qZ3-!qNyio!!q%4-iTDm;`ll`S=3V>#CZmR%c8?&WJLyt;$A;yUwl zo6C+$g4e#^4bga`&eYiw$Pqt7BE8_6p=ps`?f+9&8eJmFEKaYu_6QdB8A#s{p3HLd z+^yfbGYezi#0lIHoUmPE!t?A{!J12ZdFQOIi|kSln{Ph(zyH~H?bo?PLl*M)6wdiE*Y=6!`sFKP292q5?%a=Cy2&Ft(`$DTE(Ca|MSD$4y6%CTSdu``3WEXKI zGe6zWabQyU41;sb^H$x_)3LfX`77`Jpy@(uj5VHi+aBi;=BPY=S#I<5Y2n%PFRm!q z%rkA~_kvPKo5s+4FAqtyAL>@+df2qgQEZN|Lxi`8>(mP?*pHd`sfp-0cPY;5DN8Aw zseCr7=AHNRAHQC{uKARGep9~b@%PmXZq*vuJ4^m?W&ahu_vyfFt?R;)43Se5HnXva zShy_NsLGMUlo8&i^kT)LU&_q|iKVeW9;-1KpSYUwYg5|VSCSe3{^l%o4t77zq80Er zcSlYv=N-?$L!4KOHuL1nOgk~PhjHhF_j4oGcyIWSzj(>E2l{&+t=*a-tK71Jp?dA! zX-$QED@9w4MYbJyG~v*vJHh@%e=k+aS?%;&B(ndP{on8VD_)&h`Q2PHNZ8lpqqwaU zn}e|LnIrWdgX?d{?yX@>*R{TV+a=0af+u5Zl!mNt&P#@DomRsY0SV{S=Aq>-*kXM=osKdspX{@BOs=i#2bBqS&A{pUBu=ZpS$%>TO8 zF4Ahz^*rUZAAhqq`Ux3v#jkiYK~H5@VglpCf=zD}eKYQ#vnq&-U7#n&HhIxKuKQ2* zRmHt;Z??LyX~m3HmlJF`@3ZNZEaybn%oe(>tJ5_l4>8 z9)oDjM-k46X|11Y4(|P7Ae-iFaW$nlQF_g6k&j!iPhW85O=Y<1&!7jg_d{mzT-aJ| z@Aatmn6kc<`r#9+?jij$6e%Qhm!xvONNUNHe4)lnb!L^o#n$p zwz&;EC(cuS{w{mteDPgg9Y@ncSTEentnL0KnLbz5e5bzB-0hbqpXyfPdKqA~CNxON zMWi9Bv9u{nJ<;Ht#B$K5Gd1}i&Gyev-`{s6Zr#lt?;T5~ zEND>{o75XOf3f!JIEk>UGc79~1fD98*ZH^P+he()YTKDX>C2Xx2k*buI%DS5__WL6 zR;?Y8hS8Rr7r!(+9?!7RXKHp0e;ybp z!l5bA+qT6jS1)$wk(Bx!q6Cn{P`dI!$=dQDUR!X|-m(tYhX=;kJMRO~qA@>IE4BRA-h- z?~m3vE6*lS^Zl@R$1#!6kAZ4eg1mnHwJX$qc)GuK^4G76WiEErt+_DQOtY(& z1|g=G4mUXhA~H8_Vn}q5m{U-K!-e95SI!=xgQ!^wNyGXCy{iN09Ma#zu zpVgP0ygM~`nrByYTz`J1^x)*@MRlL~=R*JG5gG8@1@J!7;4n(qqN(cOMSh1`;RKsKK;Fu%Y`F4oQW;z zTWsIL0t3 z`m$Y5yiUIix>{+LnHjCodL*h{^V2Ej>O~@QeTyf# zI8N~v%#mu|eQ1rZijVrvWd`j*7xPQkO?mz>v3O7W-u26;SMTH2mUY0ey`<5INFT9rYd5(^+B+qxjYn9U`3r(Fne}C$h+iwjfJ(mBzXz98ng_`w! zUl$eENxnYbUvzbbf#ZJ$70)Z5?v~0XE|`mu!1SKdEAbRqY<`8@mNs`{<`M%}KxPE~~$Vs&~USh1151G?Mc3yHAUsZ_>RG^x?7n$Hz6_KG&bSm$BW$(Ek6I?dNM2M)uCi zSk!6mWWv*+HjCpUxBd6e?|yB4U1BYJ>7qn)MqL-Yrw-<;B15*lp!n?{(ZZ;)mk0EsSZCPyRBT>9s*N_)*1D zx&7}I{M?vNeJoK;)##i1eb>CeS?tgEp6zZ@I&Vx3MHVmaSfgQZ?PAu}Om)v0zrR0U zZ_Ii#m`oo`a!FC!lKul*dQ?_py7~KYmZRS?B-2Jq;5q8 z^SFI^BzJSegQdmRHJ>(quKBg`^BWP_Mc24qR?MF!^yb~$kJHTS0NSME}(?|aVbsl99itGIsbgOBU$=XO8W z->~V@(V!1^UZ%g4f62R@&HDerr{e4X)NK|*?&Cd5xBvdQ{zLWt|Ce7DJQ1BS_pk`- zYHe+osLh*pNxgY9$N!LXQ>dC~Y3kRTN4EM{om#T&-yN&j55CH{KD@f`vBf&B36r9- zyPCpwpG`11)G?!Yy56V!zq9LS)|n?2Z17d@JXo=72QO>c%4Kg|G+xf-`#Ed&;_h7w z{NB%5oz}m%G$G*A_Eg44Vq)Cf!lxHZh*!I^)ce3Djpqwo7rfD4+4Nw6e0adAW~XZs zU56exrH8b=J-NB(kVH;mjkv9duO5SEP(^61q}2Pam-F*W<5fR?Es643^Vh4FDbTxH z{d=C)!};C^vOD*$xVTT9wb42B9jEc{`?_b}&#q`?Es))zb-iCDvvJZBN9hCITW)qb z%%3pBCe_3yAwPfm-np`u9x~{%%nfS_<4X1k{W0BjAGbsEa_`-m28Wol-%Vq^Q+`G7 zlYrFkN9Vr&$=SJ9^Vx5v=*3gT{Y#@7if&wTbat(~7wgf&l36^(AVWb`H0PdA<-euc zf9|>4ADv(KkMrAGspsqX1a~#}DTP((zO${IA}sB$(dI0-=e?r|*ULXv6Os$P&a6(D zvN+&r-MaJNPoI=<{<>Fd*Z!Ct`|nKp8*=x2CUb|RE#pQ3h8aB!d#V^7h`zq>qib@y zkyTUmn8dBOWk>T~mR9Gy&nf(N=JcL|UnaM2&+a+S+$U%6RKC z{l%d%BrEUVo_Txpy)yPqmfdvSYD-^$*W}cfb0i|QJ3E$!UliMGXZ>=*+OxXXs%+og ze(`vdqQ?Ed;(ov1MZa`-V8Rqz`oQ&RcKo?z(@$p3Xy$LKf4XM<=D5^7AUS|4{uk~0oaxi3S+ssqpL4t9We?2*NuTEE zco$wvSo3kq>kB`R`$aIg&P()Z)aCj=ukzh}^E=7S3W+y6=kDEpY%{~5-`C&QGQQY7 zPpd|=^*YyuL)<-eDO-Q&d;p{T;9FXFBVvK}R=^IxtP5V*sVa#3k;=DV53ff{%DoG;*aTb87o14)aewkc=jby7AJOWx zsr5f6p8wpre%`Z3Y3ELz67-Y1{oq({cEsey4PUG|ZQok#yX7j?JZZv0h0a0|jko;^ zXJ|G3{S}s%uld3K#fNHJhV>U8?*5;kW&@^ftdmiVG z4R0bg@px1mt>+fs$<*;GPP2Ck*Yh>(CvqIO-&Q;wJg@#=Wm)-mi{fXgd~MZt>i^r` zxv}rm-+a5D8~=Yv|Mz(QkMRF*oYQBEu7Edqn~&=Mzhqw!U->0)o0++%dva9anPa!C zqOy0*o#$ULRmpSG%A21r{g2Xo`uBC>s>Sik=TC1qsN{Aao<+Ao=X6u*B*m^p6I?32 zbqZ9x0xS-n;4I_&X8H9_cZ^Ma-wnx}Sw&B72;Tp?{>TFvKaM5bu_dq9zS;9sK~!|- ztAEk2jlQk%U|>*S@N{tu*`2ub~kHm87_n>B6Mw686Nr}_*<3^pHkKBsoZ zv>^Q!|Lm;YHOH^8JZSWKv0jRw^Xuk9wrrcbx2AIaJD1qA{kHM3mft7Oud8`KvpQJh z#sLF^t<~vH6Q@-RI#2%nd}_aS^2TK!-iWRFo+|M0-gigAL-(t%R`Bnruyq!8xyq2e zD*2HqL(JD$an%>adylX&>{zQ*QO2@hNvC-0!AB9X(aSHt3`k)O`fZwBP|$F#OG(yP zitog+@(I%b68lSvQFN|3qldx_|zrX0Ca)*x^9j9r^O5iZv*Rg*!~YN@HS%3Rj|xF5^bliIz)Ve0ZC#KlzmM zpI`R>o%Qmi&*k@a?AG>p9BKJ|zKy3)_Pf2$SuTlf*}C22s+Q8}UUtbT2POvJkkM7% z@7MA+I7qp4XDwrauJ!+@(8Y|C7scz{+kX1nS(yVS`~O}2zSUV~mHwwJhK5w1UTfyw zXSyt}zd!xDXe*a8!>qGsef{QIx$d4^@bFRPw{K-Hzgef0#q9aMe$VszjIWR4|E&H0 z+WB$X)67MkYWF%Wb}*O~UO&Fv{%>a6Va3XMo40OlJ}vuphwsGR$d_x4q1sajkWBCo65;MO+tNUaraYI`qNe?^>D9bl2Xvds|t)@8aL&oM(di zv5h*ipAR@MSj02eW78gmuG>ePCM{FuP^vulGxLYm!^ugjD!$)h5WFU-FZJT**NA9^ zDJt9967Pm=)SIHe&s*`J=SQR13*u9Gr_BiFC_gB)p+tGb{`yFl@Oux8nOX$?JnQ{j zd`!TqJhkN_^TJi;}G1)P$*Y%Hw&MBVpAnakwig(RD zyY0hU7Z_w##7nwJiF$}zb^p8P*)Db~+oDCU;Df`L)|Foqd^9yIO8d;e{?*p1IQ{$A zjEgypaedDsR1P;ghTce9tjNCGIwkU0W3h+e4d#UkY7IHZsu;9p39Xtkd1i^?iO+kA zPDdO`s9M|g@8Tng(<$J!r zoxuI;ZmE!|!!ylusVN>VQxbGI)&@Me!KA-vWpaydcgD->on9Fs)eW1I%v!&mn0A2e z>FPhf4*$8oco*-=**~RK#0@ULYOS}_Q+y+I&^~gVdH4PFi}!a%8f<%aXwwUI;c|Jv$b|Mp@U zYZfRiow#VgFl)!^$M64qIlp7?T-jfD=gnt7F5c7J%5C^%Hu7YQa_m`PyQQG z_9a_hn5*EWyTKNKrLDg{Rr*W~kSB@o$bg1zEe(?p+t( z&J-+?@Fqlll~>g1Gkd?qF1xZNHu6S=!NHxKpB--{;u2Aq;&e^XPG&R4R)rB+_B$%I$5Rwl}DL}&g!x$A8F%jCG{ zZ00--;j9cEnw^U@4D$A@h+KIQw~GhD^tc zX53kK&#n2Iz3J4Mj&eOF53dJ{Uj4Cl7j)RK(W%+hq~e*eHR_3}d+Q+wp{)m zGMu}k^#rf>Nv)$d3g6zEaR1+f<3E3G4*z-A{;yH=;~CP`tcBUF7Y#snb1Zi6+jPsG z>Dok>SuWZl0Z%NQGWDai)TYgwXa3M#c#iJzd>4jqhf-y}t?sf}@bHO?@B+C_X~(y( zxop3BqQT!8bAH9LmV{sbIO%&es~zh0 z>0>rOp9tr?&s!|Q)BgJn|F)Ow%j~Pa%l2HEzC2pXIKNjeSa8chqlPJyXxja7OjtAK8ka%SIp1{Za{K zds{EA@#k1n&sL46&#V3x{C}d>9KUnIJgv1$xE{q9W%(R7jDEl_wfloo(%r%$~qBg(KYeLV3Z} zy^hnKFJ2+AZszkdQPb+a=gOR7+Op_GcV*gyzR3%E^s|qye!ot8spn>yr6#S#BFFr` z2+vXOG*$8yT(;oy`^o8+8#k}GV{k)mv-yOYKd1FSeOy2H;j-9;)sN1q%#~|yWiaGtnjtJsk)LdoWkpMFzYciu>CiE)Zc(vzmtAIuUM_g^K0hjZN|%6F z`0LKTNeX|KtNl{@>J)v7)v0ds-|);w=X;r_eEI!APQhz?|AscB*gv}qcDVXRCx}_> zkbRK&?|C>ogN3l$p_WfodVUGLYbAJov;XF4W8d@VQ>NMW{Gx}KEWfc?r`+uD(>Hs& z?pOR0GyCdiU$!Lp0pIS|;h`FnnT?&kgb{kPvvuC1N>G2=*ujoLNA<9)K+hr)T8 z9~5vn7|Er5`JK(<&V23K^@&ae1~Nq-Pw`$_^We@+<3CUK{}*1fwxo0Gfk^K}qfJVS zZ@>Lz`MuTJtmFjq+RY)`-Gj~^<&s>(GVisEOKd`K1Go8qK!I*`lj?|ucbh}pm6xq3WyUT9m>d7GVa%eCNJ!b_`NuP)?w zljz=}Wz(J6RutQ5@+(l#S~dHwWLg~M-~BD?FStYC!VyN9Sv%X}rQBX-`< zoT1_Wr-^wJpR)Qjma?AXoTQOvBDYBS=)~mXKVMznfAZozsqDL=kMhz%~R=-!mXVz-V{&fx7xz+KdvsH|H@9wS5>kM0ai}0 zZdgaP6nnkqkaeG0ksbBKV_|2B%(v+-TD_%hI=+D(eI->j-;DbgMScG~^Z2FQAO6mfsU@5XS%OL47Yr*fA~`kdu1Yb9Ru1T~dN zWts{+Y&qn$;go>;DdUbU-?m@)EAFK{Rjq3g=L5~A+ihD#mT@FaD0*qQTKwDPZylx& z9ab(oK1q!0tM9tYx8GioPrGix&9Gma(^#QpTGap+O(zcn&MrX@ckX%GuIkcIwo@Y-6`f@e6i!| zRM909)~s7+B-h(fVlr35oZ-Nsy$Z^{4|({ydA21UvUEGln4SGPX7A3U6;nR;uCJRr z_pPs7&5O86DoR~KYYZFry?<8rm`SrC>t1xlOtcguuw@kR26SOBnVbi^@bMJ23b#;33y_pF&zv*gy$`5@J%G7l& z^c|b(3c zn0fxPns?s*A2*)2JNZ~YPW^q(hS^rX_R3{z+ge#At=;Z4?HPw+pcL2Si(NupHj5{_ zJgI!;UfAN`HgWs^DRmEyaW}Rdindy^#p7j@jXrBI;A$19u9UwTkuc+M>b2E1s~(93 zmt6n!d5PX}$rRJ|uTO2NTea9fw`|_3>~QfXvmTkZ^sp`IO>;+v(@6`5vIX&Z{=Cs{e_lDha$^46o6m#$_a5QC&Q@}*Us%((YJ-3H@i`Vnb4n&8 zb4A2P9)2Qe(JaIiz2wNmB?Xd?ZB+A)TPSK6HTMavnH-_H;nE`)#zP7lj~rU$Dj|ER zs;E};>G8a#G|nLBt6RkP_*&l?8oy6#p5DvpP+-Au;LMr-Zy6Z2bAPH) zXJAOzwVL!K(r@+Dg1^U1zkUC1aBaiZ+Q~Zd!pFH3Z=UV?=x_i3?dJVu|DI}Zi;RR1 zd+k;+`?dQ0?y{#^yLZd|*)gQviBULcuoTL7%_u`lKx6iHmyC-4he>LNyKCB@#TF*3kEh#uy^DTraR@!(*D#sP> zqpm#6&($Ven^Mg9c^&(i8->1e1ZK<@kN@)TwBDR&RaQ1>t^d82)_?fLu=G~tUX6KH zcHUhZZhlS<6pVXspuhe_oM}&o{Na_6f7J zemZ5=>vDH*nC78fFhQKp<;=afgT>3&ZLs#RC{3Hb{9N9oHTS)*M5>oK5XWP~3urr7;7H>Yj@DLR#`Dw zaPcKJ(=MgFyxgL9eoex|?ei3R8nIHNi$|6- zX5K?CNBx({K^ro9wpb(!^8lNzo~ z3f-RI<1l3wbLm1`Q`eWe-D|9_Zl5={t+Ep)Z|8#O)Ge`Hl>ecu4z3=4z z{!-Ap?^^j2quGo_(?mbqfBRSe&e~JIXKlRO^!fM>B^y1#dp%o^g%zyucr@o=)c$Kn z3TJz4FFe<*=w+Ed@p{%oYmeq)@AY>TrDX-Q1(qEU_l(#?z6dx-h_{b)wbOD7e!SPH(?UVpunb%XGZ4Q(Ob?UO1V z^>V!W&Gh=nlw;0cf9M1R&otE$d{u1R`mbm2V&SZX9r1Hjiy{K!Z!w+gRlNJ^&x(1Q zXJi^!)-U@$b?ps4xdXjh@BiO+!qI1q%+?DWOMl$DzR&GaXXVE?r#V=k>(5<&Ia|2= z(fyhqbKn0ss$c)fBZJTazcp(3!_)#S>r8XDuvw_3wiVwKC#)@&=Zbb{EDz$Y`)vUflDwe9iee!J7^`#$)_ z?b&nu=j!S;GPa$Q1eg2GeUy+tJtEt0o`vA9%cbEHvo5R%ix5^*Y&yrVXwwgo9R@+p zs$8!kIfbSi0QQyyYojY^$gW=}Bla;Iff7+V&(=xoaZO_zM|JUyN z>%E0F?YxTN-bGQ_osVZIotNluFS#{0>n_`kTelR?7tgc)tJC~ZK%Hydy**BsuCZ&o z|EmA~>*nkKKMr||`)r;Bi8}@d;qu5g`R{GaWq5Ahy}f$M!s}uE0HFq5Q!Lsi5>*_|M$(zeJv~T=yX=ZUxTT}U- z$8!_hw@g{QG%95=Q?|_7xao}=8YPUE&Y$m6SfM)Sz1XyKB?_yX;uV_9cQ|>*2ByZ^ zHcs2R^VUkq+o@Zg-)ylq5SYRhmR+<`seJAw>+pi^qpd%TPQBB%ls_tD^!F*|F9o@92>yH>>OFyNF|VIx z%94#7i&E<=XCIHt*LOQC*!t|*+1WDIWj!A) zQd3h~KW4bBzs_9}^!~)UDXWfLo~86+!<+k|H?vM!l{O~5UvsqWiA7&joUL_GPF`;1 zjsuN-Q89aV9DUZSd++Oq=z}R7$(dWDEYu~_EcJve9u^$>@$;s_1@%AvajG%b($ceA zJKyi|@2U>$oImx|qsbS)Ma!j{=btrud1mKQ&vh$)PnzEKE7y+e81MpS>LuU zv6B7u*KTgv>P6F|v!AQA95G5L;A9Bc#XsfH?4T8=9&O$i7kWlf%(_ZP__grn1509- zaVq2ouFz+j@y>;z;9_!j+Mnt3_cQ(zSjNQCQjoD$l85a`q0h9+qyH~voZ;5re`cxn z^oo~fy8lew|7&{X>1g=_s~*Mw{m}pC!TldE*#Ex?+FXUmTbVod{Fv?<_~Dbce&X7v z|9;CqxwZAR-Q5k->efH!u77^PYvOausO%oYjJ49UKIe)Z3+g(>z3f~r3li*CN9ipQKjHMtC8$j=BH*?<1BXTMAy(lw2iKqc2bh|=bOKa=3vX}Sv?JbS z`}{Lp=lfZGf~)hB!}VugwS5zIf8EXRT8wSWZr?w$+KGWr`P>=Ny3794ynG@UotnBF z+&x4WhlIqY2Q`IpX)62wp3bG1Trh8A>LunVuBgE2&9xTgH$SYs{QJ-R{eLCrS?oW* z?nOaidH=gxQmgOE{rtxGeVzQ``!6SMNiyqOlkDqgC9`m;leTD%SE68N?2e;O)xyu3 zSM7Qy$8h0ljeY4vJM)(lsvC+9zS%!RZ^`oRFTXyEF;{mpG`MCTKlJF27{kG}2aeo) zJFm8nw~fE<2zLvI6!*cxqs%)J<~)2gHG9tflFsGxE8Dcg*Dv1k=vVJ)o@3Q9J8IJY zOt1T~cmJP@_y7N}uX%GZ|Jm8ro1m)fA_If(ouwbu<^R1Xj{kWpyg%>m9To53ygNG_ z10~GN%sL)RXsX`zGe5JUx@#M!Qjn_h0!D^BQ9H)6#dh72!QGM_8-z~d!dl=Wa?wTZ~v&S~!Xg_akZ5r3R znUN8%|H$Oct?FR+2-Ko8MfpNubE-W`TqxY-}{(c|EGQapT%igGZsN-F5i8-bmikeoAZSS zGNx?Wwy#f<>)2z%zj^%@U4o74>}Ctps=v5i?mXpgx%#Q38)r3aszsk03GONTYvshX zZF|{`J9`e^zW+_EN?Uea?EOOm9}oT1-t+bM{`q-H7nGQ}Z+R(c2lyqm9`b0N9rEOI z@9|BgA{tAU>NRqo)LD4iP2kz*doL5GELg_;KufJ*wcYX64d-kAM}4x(X0-5qs5|+~ zq=bNTyXEFh*&oHQAnt)aljbx_hCOnu&)?n4_Sus+Q_A~o;OUz`COH~AiwYc+JHLXH zfq^g8)%DQEOA1P@9m*|!0!C_+I5&2A3S_8vE}BuOwX@>xha)dz>)!tVDIs2_9Jg!R z`MQS}q8@$f5#B3$@9(wp3!%9=VGRKy=aM#RXa+h>>J5%6JXBz?Hq#*zb-wS%&FYa`nrutte1sF%(3Er>d`$%Z}Z;UxU3^)lkN76 z-+W^Do-90H8hkq0LSKeMeXlgj1Q$cT9ThK?rt8HX;_MEZw0-a6-!ImG-?6j!>;LNS z)%QP|%l$l)EIw;0IGPqQGR)d>`mwS6|IP8gABpe(k<80=g>w(5)07$9d0%)%#pq*GC-TSyB3#Rb%PGuqELl|BL=^cvqm1 z-?-sLV$VX?Ta4Wd`(4c@UG8Dbt9&cZ$8~2`?1L=6)k=SCHC6IrAK~c)23J?v=Fv|HGU0|-T=x(pxDV^nmF73^f672)?$NmLA&1a zJ-#?Y>9pmxjgEmLp%eFOC}ws2k6!+F-K)6PWq|@mCNnMhVp6RcGviFTMRKM(=i4%A zRTka31us9PcAZF6c_0!U?R+kN&&k90{~K()vt0Oj97}-v4W=m_W%BK({q~<({=d%uqZnWLNonSrq6yJ`IWo=( zJ4&80@yl3yDk)vFsx`ZI?V{tQ`-uWt79A1m&GeV1Ygy`CtGsTp^oq=Z!2NAD8zNRs zV%gUGrR#st%Tqs_Z`thUkgaV>_LNo8Tpy{a>d{(yGk#V&(4jV zSNToSPsZMH-t#$kEZl^S=H%yJe*f*AN6XsImm7?KpHr%pdzs_GvDW<6W;SQWYu#3j zD$|%m)vxY(`|h9K{r~6WA3PP0TPD$KQT~l7TtEJa{GU7i7xwNy|LvJ*Shb*+*R8cJ zbDL|U)^?c4C$2p#(JauU;#qJm^uf8rhfIg#Ia;SAMjWu5Q+ngVPjQbq#u36V4kXQ5 zwSPr(y#9gwsUG*a6n4Z4yxPjNT1sF|r}OoONr8{V$``&?Hr#x@)nP$uOEFWnf|t_z zkBX{m! z>HUWXejQH{xH8#Ep;dLerS@LYq??NJVlOltRi#u#|4!wdSNqZ`@V7>O7n9xqoO4r-N*S7)kF z5Wl}9BFf@Q{&r)#4H`e=o;|)R^47P;d~wpWj-yc$#{y>;PrthMRZ4X4G(#t?p3Nzh zjaQmfHXSK+Oe+tJ+GyW%L-Nay`*nX8*S!3w9V6|LCzGXU~1fZ~XC^ z{e}b`B?IP^lQy#$Sf;!VK6`GtvE3~KQy1j@ti5FNRqKCLXubB9J_#Q8o=b++zkl0&daB>lw07_8nA>}7s-9QN z|NA}v|C8x;UstNn%MSTB8`O>f&k`ekFScZq+C+Qr)VK(BwnlKb!QE=Ee5sr_Hz~Iz#`K_E4&ytrs>I zr^meseZHTO;n4N%Ti4aEd?m8WiK!*zV0WCtlKIn387m5%776<%a&61YTiBYA{8Ym{ zFK1&}PV?PnTfhA!T+dmquUkH+>K_;Xo&Rc+R22Of-WGUF3S)0kIbFQvlH>J8E}j{E zotNrWLqabbGK8H;Cn*$t0;}fSU9A9)>(2KjJ zz$1Ht(XzXio@xG{Hu~>7@Z0`FlFSHZUt z$-Z7P)&goJM^*i_WTe^;SZz2L(zB#Uaer`C4QGMJ%d7wH=1i1-^Zy7F!-4v?H9c;B zdj9hm1Z>ueHA#AquuvgkseQolj5*GoSyR6ic$}^JP}cQ7nvr4idHu!+@i(Gtzdl$K z)TMKJN8w+q+tJZ6`^$O{X3YQiqv1?X#kVWlB~y0WeA&ic|GB;HiT+>r`9CMy@4ppO z2^(~95#~-_dbj%iyK{Q!=jW#Wf6#D9f~}b`b5_xY{r%IrCLi|~$hNPpJI-)GSANIr zLw<}5lVz2fj&J5TSvF(6e(Og83llHxo)21ow6(K2v<+rHJ)2)QA>aP9ZrS&39m@YX zm&fn%TD|$$=jCw;bHwiy->Vt?exqp*3z8zv}bd~BoppuUH@NgWsLa1`D;(YwM5R+;2QIfRZR6-^1lKKrhO|@ z{k+s*Tg}4#aZ5h&NUsfyY8HB-k!EqKaLa^`T)P*~$hWC&t^ZYD-{CH2eR^x|=^I{U z{A?mWJCsgGzFu=7cYCI~;Bm9Q4Yyui%vR;lsWemR5@mCKsMA^yk-pKRfKQV}s&SH1 z%=PVhDbqP6r`?ZcQ&`~l`#V#^o*UzK30~>0-yi22 z&8e59Dzoj}8T)+^EhQJD!kC1fZWD1mcy)F7&u8ZQ8;iw6xw)oadb?dBmHjvW-mm}u zf6|^`|3=>S?-66y;-{cx<-R5i4#K`VJ^#PY|I1zeYG%6UqZxnq+E(qAv##DPk^JKO z@0fiho!e{gN59+>Wg(pL=+ifbhMni?nHd!3I421ls*2uMbZz>iXVPuVO~33GePQ~r zd0kkC!(q{snT}eXlQQ(;?M|ONd-};^#+Mam&b^bHdsWYKd2f$Z%wEd}ulsG!ADdWR z`C;EJ`@b&K|J12(clzqyIe(SZH!HVjWMp=3nN)Wt zt^Bu|x_{1v{O>0=PYFx-&5_t)&AHg-sM{o`rm2h*O2iU%FEyActo{0?;gaT(7L!-4 z#cLzxmHp$0QfRywF#jjJKvvY+`aa2qIsbGl8QEX;$?9nQN#CBYSYW}-utF;1DmTQn=U23L7^~SDE7}k#4*1F1wvq`0MB8m|aDU8q;F-SI*qN z=WC<-yy}lHn+q`X?pGaokT$|3mT~AgXc``{n&f@fCf7_F`-|wBDxL94X zH|V|mIz{i`MINEb45`aEm1xi2Aegg3bIL!v6_d}a-I?ZfRbdC`E{E$=9~_7>H_m(D z%GA5@VCaH9kv$u497^Jfb`tbvRb9O^^2wR^xikOmf5sZmY_zBBVcfwg4s-_5Bj1ONLIbJH^^UEEaCmkjd@IOnxGzAAjdL^Zw7A z`@Y=h&fzz`zRgX-B*?OAuijh@H*Qz+Z;NC2@0IIYaG$%_x94+vh{BTX)15tgOf4S9 zx-SvYPzf}+fBBsCG?9f2>waIC5BtGoc(_7i<Ry7_?OrRMwh85t6OzSeP__;}9Jt67s%B@1O9&v|@jr}2}_ zQ(s?S-+1Uk{Oirt8$4Gpu6I`bqkg~c&C%CqUtIvzb04Gr$mTEVG!LkGdb)qx|C9E= zjvrntZEpGdlcW-8Sh1wqc9Ke>fmG4^z2A$zoG_fTQN`*b4@2VYx!<$ICPiI*{p#}@ zziT;6>Pd)@~-}npv*TznfXtG@(>)EyFfMmxbzH^m-8719idX9au;?(oKC=syB z>p|{~W0v=G(gm*lcxzNAZOD|)dhEw>@1w6@?d=LUu={1LV*0nvt!1aeF8Z=HXaBw? z{+BPfTK=hHhgw`BtKPJ^H~wYl7G`PmPu%02kg}~hd+K{XZfTd#GACGbl*6l2isnsu z-od*|dZA1C=l$ZQYCfz1oa{HeOz-`V^QrysRoztNb*%fv&*QSk(!TtXWvl*OVqIJG zcz&?RG!OMUw|Mr2HnN82cml5|pH|hfJY}q(_tAa+4<_^N-)~6wct&Nv;d4{*oLx9; zlDMXqhrzVC?cLXA#a+ms7}Qki&7Zk*eoU^s$Mf%{JNwr})Nx(u-yi;Ry{xmS)$cH$ zopK@9b2a{~UbIi^U1|jDpU))~az$;&;+duX6h$rm%ROOg**+&DMw5Kjm^1(KX2!0Z zT*k-3Qcxzfpn&bs4%a}DsTvE5+0g-*dVDr-Jui*YQHsq1#3OpVj|U`~A}A<(ijzR!?6);fSG^W>|Rm z&Z@6k%?~G(@Be*Q;_=ZAl`a$C&eC9;z01B{^=Y!4o^kES$F%gY)3bxR0%uK9;XEes z?fZ8@rwPk6SO2vOdg5ZVShU}=O68IJ|GDzd=JMNfl)0=qIEyDy)-~`#Ub)2cnc)l0 z87FBLY@4BSB}6K zU+O%>_UXu)WCu&zKM7+P<%eO+OT}fA(FodcEt68w{R3HgVFJQ^GMdP(*U>H?G5uUDwun zJz0A-YvIoCgeuw6( z|4)inznw4mf3-;HDM2Pn&40@yn8Lys4$LiimoC3slp%nb=l;>=x5=nL?qDPt5nbZoi#cT`fKN_j7q3b_vGS?!V*j-@gB6WxoBtFEi5|K}(t; zdy03w{Sj^d^ZMOy&%|C99LX?PGF7EycWlqrH*ek)JUYU;NJFVJibL_l@tyPikC<4$ z-@Wt08I@DlZaH)7tTjDn`N_tewh($d?@_Tw7n;mvHkaI**8ftx@n4_=6 z4ft#GE%-y8Uitj?N_1&^l;e|!JpWi24Zg0w-~01S|JF$n5511obc>d;%u>|||F%1t zmtzWd!KH^OU4>$=qg)cjvmLFxSF66@|HiSHU@y}SDFhTQxYXm33Ar@hJfRb33lTkIMHn6lq)d{F=Ehw{%2 zGoJ@|gzP-`vsAaksqL_$lg6#LX3Yl~xow@V3&$0`4UHc*HipDK@!4hN+|Ht?y6V&&%MGFa8?;*YE@6M? z$FW8?T6GS4+*Z+rb9ET?TDh|Xf@>{fj8EQ^RW)tp;Xi+H@vk-gzi#Wuf4Lc!+vGJX z$nyW^9jjUVnm+ei8>+=eaz%D*x^tg9#%Q6sB44daG}pze`67xsMQe60xORNPV#{~0 zCUe%Ti&Sc@x7A$5CF{E&dClSJ|J((4vWlLacrnes_s606b#wjyJbPaG`WN4A=A+jR zOn4&DD!A|(OQOrPR1sH4iMB0KZ-33x&)@fH_gtChnN6-fllAh{7!|U(FR;gc)|B=$ ze8-?L!O1tolGE}M+lsi_J=5nKG9~PKUjJ$9>T8Y4UO!%+uV-oeAdpc1?EXDLMg_qi z=d*MBE;apo(D1X>@{>(^b#-_2_PmXox1avo%lrR-c*DV>XLn}a-MRGJ{r_i{*Z+SW zSNrj5TWdaeES&>%Izf8jqU|3hyUv@as>x9P?#@CDuCVa%%=TMhLMx%1*bP7%2{J3e9KZB=ihZ{NOqPHMS&HTX#3YBAom?`mUr zW_W~h=S5||F5@(RZ1wB8+{0;wM@sE;)|-F*^D?N`+_lWhmg)bwtB)E?7t9a)IiKxu z@R4R=cg6x%Kc6iN_DFwtf8=4A`2U|;MvF=cG^0IMou8bhnJAL9=IgaSrfu8a6+eBu z{lumzJMKE3YB>9QH%sE|_kaJrS3Ujvy!fLB`SlNr&;N_u%mC@yu{a3()_51Dy?o;D zrFrA_?Z>C4YJYk5oa0c#-)3g9XU}imy!r6U%gZW<6X(v{dhGj@sOu{7_eATg(wZ&# zeyDFsc`Uh=J%lkN^1v#S{dV&E?nhcU%CvE0W|T8^DIMfIesc2i0Ijrod)HNbo=hDb z=KCt=+SmURz4zmpsS*3#dq#doJw&S)ICJjnJt$%sb!rkr!QwTFNsDGioC++vVjnQi zxuU+{^?``@RS$wY_<9{UdZ#sR|38T@|95QOy4b7bv3q;ItPkC)$Ps>9#O&kTC+tTi z9=WcP@c72h`YVqYbN8rE5r_y6WLjF?`oZ4vp&Os*ysl5@wfklNe_F8aQnyCyKeai^ zrz}J&fz5-T;&C4q zWd{kgDK0;^rttHv(sS$PKD@Fr_{`U;8E2+Xv38E^yE`Sop69@PHY0xRci$JRs0vx` z82oj&VOol!MVMf~-!(cSu8sm)T}sMX+avbZPk(oZsnvAP*K5&pEQ{MTx^CRMrO>C` zbN1y|s}gI&#tm~UOPkd7*M5AlQ`AqlwZzF=BY4Y+g32K7ILU|63_Su83mLnQDY{-= z9c#()gR3sOYnNs6#$^r`&1HO=J=;Y}+P18?@?UnB8iSiIgPQ(V2DP^0FWu+wbV}~M z_x_EQiJ|HHyN4&nO|^I&xZsjhxyc8i#Xp12&W!q>`0C#zQ$Z7<&Dy4aB(F0_*gkUA z{`-0P?Ky4_E_rmjD$RAV>Mco~X}{{qNex$)rJqGveoPng`emjiVl^Xu|BJ$G<;U^= zo;`p0yem;nVu_>|`}N zR-d6eMS1K0#~n)^v;0l_`mO)jgC!kLUKEx-`Kfj+RJ-l4U7*6v`}bY7PM(%}LZ=F8>-*fXW@IsM4S6lPi7Ic1h{&P}%zsCyZEfY$t zWS@zPXKao7BK8c_6_Ee`35MHjk-U9FVP7hA2>tDI-f{6m1{fKKbb_OGq$PsJRc zZ~fQwVWI6)t_54aE$XebOWdlu^oT@r@iYZKfu*JKW*QNZ5lc6Sg-7Vkt!I&KeIxs3 zbG<==y>Dh|)th_w(_1BSMP}drUin$NeCBJeY1NF&r{9j*RWa%Fa&gO@HB6n37S^ZK ztO8P%u0}Rb=rLMzsBy|ZC5LI-@`4sH^RJk)If2V(V&WRt*Bi<>4p^?|4R|G2QSD;N zCa~&L3jdG0Jz_7^{t3P3Hk{dLoA*zCW~XV}raR1>5sI}t_x)chw%d5qmQUJ@v)AbU zoT0$srsBZ*MfNe*|D;(O1w~g*E9e}GRN?AmWZcBEjO{??nji&Jr#1<}38EYJYyW(E z|EEm&d%hRXb?4+vl^`mT5Vh~yuk84sz>n|uef!jX z`|K(3!pM)|d+IYGF}qj(@Ao+;xy`n{+q`k}*}c8L*UYi<+<*W1o12@Tc%Hhs)z~6? zW2NH)r+BZZRet@^n`#4+osL%B`Mi_m*5jq$L-p&na>}zmeZ2SIWv&12p&T9Mfrs*D ziWE*)J@D~R#=rNK6P2budiG2Am*@Q8^lKcq6?a!xbEpTpKIos$ChOT0@YsXXX~t`} zElekWZWUgm_wC1t$>Nb6qQ!F=UKaTn9#|oqCG;m)V0r@c5QsVMi|5@}`sc}&8` zP{=^UVv~;gmQ&GIy%vx7ebNu*kjn_xN zzpAN~*kG4^FI4NLapNT6c8)cR4=hYQ_QOAuq37P=4uJ_4bGBwEdUE?0L_QB_R61FF z|9Ri)#`gslYu?+hHFcdPe6m5w*iLyp)2A~PlAWLaR8E|B{`>bg1v4&WZ9QS^EWi>W zbL`2MM;%Ju0jI*Zv?QKTkW`wY#<5$5hr8(;(+a)HbvN#L|NQk-dQaU`J@dT$B(BcV zS%+9TBn{7Sw_M3k^_a|9X5r%Py8Etb-|dK%UakKNXCFHJScN}S|HjPg_j|V%g|1~h z-gx`t??dVTo-WKbU-!$th;^nC)0BA@_x$D_-m$VYR7R}TrYqpX{4hI#j`LMD)5;F` z7+yQYnttf(lMj}kZI)lnnyBJw$^Q42-I=zW_wP3B+jnk*{Q?c0wPD>BeLL$uYxUcI zJu$!T$;{>dubuxpIX>gxMKf@M0afpNe*c)h|Bv>&|9_9<3%qJbocQ7C^Lfd2m7Q_x zj~_h9c|)d6SH2f_Wpof=;ZW4*T6E8% zKiwidH)(ZpdM4wZ*WdXfUV1NI`t?A(r595|O*4P1=@M72Mh8|Qbse?sD!U~cuPjgv z^2N3tIxDmUvcvIm5L|;!^K}J1d3f>@S#P{QP>rLgg;eWgZ+$T{+vs zCZtL>e)@MKh`r9I_wba|JAnepY?ceJCGcjN9k?OVdHBX0ozq@(xx%+ggxvlnxWQ7% z*z%s50W-_q>Cw#hI2k`Ic#~$@&wsYw`XuYmf}Q5DwE!H?_j}J5b5~OPwK-jop}l^3 zI|s*8mdI(9Yq?(*_)QR9so!3HE&Y7EbC01*V94Ym&q)F&CfO97>)xQLZx{JGb;hCS zjlBFEhXvAW%W4fgIGRo{=PZ2vJA`$X2A712<}rzqE62Ee!#K+LgWkPYxwB*E!L75u z-@GL?VMasDR|^j=Ce@Rdr!3OQI4V0Q*y6S8E2pKLQ}-wL7K%i0y^P*EWwY>GvE#xF z-%h-Kzidm)6X!02Ybp_$x6Sv~J-s%irD@j9)$hF=;&0dbF_*4fwuM#Bhrvf+#R>Mb zhv`DnkA56q9k8orZWnvO;B09QGa*uZS|7Fip@D5 zv(j_kDZ^qTV4FT*6WHKi%oZ_J2 zY2}mAE_h6WkL@?lq?Q$;!bb!Tt0bo9PgmeLF=@)f2MxvPewW`KITDrV+g9B6^Jk^s zd>cm*NxgaTPw(7PdVc-c$w|6V3lGoYiSZM06*-pREqlPmm?diQntXk+YZFsvUboRW zy>9K+l*r6}-5U9A0%9f{5BFa3jq*AwJ5}E!PpWi6%UUXoF%uAJHzpgE@=y~z|cZ-#Shr0mF44v-^yRRyp z3~u{r=cs*z`=@qGfJkNL?8v*tegRJ`gEE*T8H6-VPcST0YFnv#@?gZ-v(~rY$cb18 zZmynC^!J<9ck^wU0{23lJ*M!ToFr4?;m6`6w8g~pe}j_$%#v1vYZtgbC^B17{^`PV3$MNZcUb;VU~&lAt6ZAhVe@5{muAmNTg@e=nPw{HZRzuC zr`-{e`O-ee_BThu$;Gq+x4}HYLZ;~R zJKty1#W)vD`1-YU&PJUt&nlkWsZ?6IP$yjflu*{n+MV0}HSA_M$D}M8v3`@CjrcR5PEgr9eYh z;81tFM;28t-QEV%sg%A%BoT!j*IWQEwL z#T|dxRjW5A`q|_A-xc-dSbEAdOcIM;Vv)|lY=3N-N8qgq;*#f_7Kj98_~dQesjIug zWv$?Y#^63-wwC>3mt0pE?l6hVd^l(I*5h_7SPm?_^x~x$Lpe{SDr?XS=Y;H-gS9+t zzbc=&i870|Pn)`F-;5P1AMSe>IeN7nR$MsEBDs@!efXmsNA0e{W6l3;&e|*x`4`8d z)H{`LiNbkazl3Gd|~JOzI|JS&eqUJ0m3X?={iAKJdBx%7Z@X^KhAMmqM}sX!Q>_QK{5P?D;{D?&i=u(7vD8lc`AQQ=|aMbzi|Hc2(VhuwdE=UV&Y*ghCy}m9sIr*`j z=e&(u_ny5MC$Fe_H*b1VjrQ4Z|3ALX-d?xz=3Gci^lOhB%ZASHC4WAq+yC#c`#Arf zO>@eLxx33JG`eY=TpPW;;GCd_@3bW@b?H?V%o=~5o%AcIuQT9m$P7?fy5_X)@y&lX zdu3^hzWca8JazHoe);tMU)KsVGNn45Pv>G5sk1%XDX+oPqh{Rl_l134(#-%5OxgK7asB}fw zC+~Fc4hPE(=Y*M;aw>RfEfIE)3r;`#yY8PH`;TMKpXMA&-Zg(eOI(oB5{KT@hP5+t zlOqKg{J2swA1KIL%sIXzHSFrNinHN-6%KDE@O+-5k*BDt(yTaRj^A?Ud8$vAIXqbV zYf;|nkdy3!nm&1)vD2R%SWw!*6D8ty>3zD(TRF*TyUWXee)_B*v>@{Sorm|H$yx7q zt}5>4Sn9E9O5&`^X>D`&Dz^1F23>gf&PamCqV|``^!58W!+HH}swN)SxAU^HaIkc| z@vbrW#G$6m8JdDd3_NbpEkY_v?mHVCGMHG7Su=05xQOYEJ5(3c6n_6cxUm+s~NE3erCey8|<_d&s9g3T!>KK(J;{{EgS2UFPe={xJbN}aFy z?_Qg~THCm!$7WvdRuiUI8@6n5nfH82rq{gRKFOiqA}2D6cC6p@?`mOaS^YJ(;%TY( zedfO^5A6w=XwDa{`5}4Z((jfhgbEsjxD;8JY1CZv=Hki@DD;SG`mtk8$%*3k&UIzE zy*B3qjaJxuKjiv!=lhH5=q*gm2^JolkHwl(8iE)zpH0|u!r66ST*2#e(KSDJuHR^~ zyyD3pBl({fRIi=Wc^K1hiLJmQdO^VoiJZh2>C9Vr{-jUgYjxVS<4=#GkjADz5!wxr zOW(UUKl~oIXY!`!FTKPSSz0$LAM*Az$vX5p)+@GotLKF9u6B!Nna``_+tV&pPW>Cz zU4Lg1pT3T~8{^RpD|A0RdnV?=&bf0Uk1?x8Tl19GrK0b0b2snVbnM-~dG+h95@xXS zd~S-q{_f*a{rbk}*U}ayN;$>P@2RnJU46CSkl6P3xffsQBz5d4tZnc89X-ct@2OwM ztoY(@=`)`^_f5~yC}rL4$6MF$^%BWgBAW9yCs5@1ixMjib&obqFK?!|rh+}%ceNRo ztZQTMcD3^Fd$4Ejg2PHJtFJ$0kI%3^DPnh|#=eWi;@rh0YD}lhG(=g1`=!&>wP&@= z^0o4v`fPXdv)9efUIo7YI`@vS`(5$Jxv^8b54J38ERNavNz99zt=X>n_wFsX4cCSp z`P*y#=fwSg+t;i8d~m$}Z+y+8&1dT`BPE!OJs*!rKdC%-JAZ#K7c<+*2@eZSB=_4M zo1MS!{XA5BBRF=~ zMzKcce6}MCh29E9L~>tya7i&%SMX4v#mQ%PeQ&L`Ou688g0F8v`2CvJtHz)I{FAR~ zecQ~q{M_8d27S-x)ibVCdY7L!k;iyjneN_oI@&HOT0Aelv$HrJIP{3~kioNCTeIK1 z(Iy&0odBu}Ui}!pu#J%DDgeYSfzD!rag_m3sBf8f7{Pq5hi0T8u(rLFv<#Wmx zMb5qunXu^+gT#8i6>kdeHL!jtgB5?iP&4o1GIa~>JLRa+zJ+g&<7=@Uck*w{Ju2CqYW3Q_&2P2bmrLL8%BS-;celSeDj{3e za`%?=oC8yz-ajsDy->vdW5b*uze`*@H`}d#x$Npi#zqy665R*STy7>QvIO;{PCkD1 zpZW>m;NOS4H}%K%z4UKbGgY%kzvQ^0p~V{Ei0}!rUvA#Lr=*`yn%XNKxAWLd?*5Oz zq}PA`UH`#dXRgKJU)SW;*FV-vR6n#}g8p3=*$GQn|Gr^ZX?pjXQRj~S5?%hNiEGa2 zPmq10q4e&~U6sD%bMyBfSUbD?#g^MCk;lG06B9o_FMWm@i=%_g@iW___Ix~M`pil; z>aE%RJMR}yRpLr2kXmXQ)XsCcC7^Oah7O0U!jwa^F1aq;vwaEk!YTUC#l^yVBERho zmKL+Gl;>#ak9xhV@w>&t$hFa74Ku`CWH(!{y>6;GAz7DcpL~6nhsC95{l9G9f9RXJ zOFyOdznzCb!JqeWzx}5jstesZeg4C1simPezMWIsyOU4)w)6@I!R^s=EDZl&ot&+0 z|1J9etKj&5i|up1DM4oF885g9*GC?>S{3@{>|5PMVJ8v{4m@E!bl}}FzKfr@&i&ex z9=9}e$+y}i=M)Pgk}KEmW{?XP`(YyuR!TU$sp>~dG)ZZJs zCn-<$DF2cixAiV_U89ERh2!6DF5NLtr;{Tx_r%(zD`dHQj?dV(f^or`l<#X?J>Q!> zENDqIxMaVfX~$bv=44r;H}5y^+H>gGF*ZFz7qtWnj~nNMx3rY)_N~8P_&Ym#&!=Z% zZzB{>?)-8>Q!mcq38b0XddtnN|xu&8-qkw_)mxd&@LD6lqe-M7^#JC-@D`Qx-6 zi3vi1vFcp^bPRy92krim+n8=eTlJNNuw~1J5`Em`ODJgC;ZYeXx4+?X1DXDWf z=}a=w=O}G)U)W@D`cpeBQ?i~j9L)|$1JO2{M%D6jb(_qEbZz;&PP3Z>qb z_xH_@DNJSGEET^^ujgpO#Kx2v&%Qj;bDbp2$-DD#O4HuEjDHi485rxVTlewJeEZ{* z<^Sq&Y2K7q^N_u8fAgPv@Be16i`{?L`2OG8FYT84^^d}L?%(MAj)i;oZJl`*C;z_D zo4COu-5||l_uXaN4g3>pwNGC=X2xCI{iO2Tr%PO~%dg$sx4+kb>7k0y(NmqFR%`Xr z{pPzq$klR|E&TUK`OdytX+@Uey_S~}kMY<1$)E5%j^p#8o813yamH%joUP=}{W4Qp zape}FxtgIODjI>2FBs1)I`w?l#!Ww8iZK{|bzbWjwC)ODyX%U8Vv_IWh(6m5g*XLQP=OpegTA<>jLh_ z%e@vIkjfHojLd%WkW0+^+m7`Ki9X4PruK`ko1q|6lKOo{Xv>PvegcjyrF}~Noz5r! z9pua3_c3&n&OwR8uTC2CY;N((=UeG|&wuj#-!~S^|LeT}qyAs$tv61f`3SXp%|BL3 zHmTiP{n7jXoBHzjAAjVFp5L>|uX}71xZ3rWJi|Vt1;XVKaS@MZrqBDBddoP;?cCUHE$c_oq%)*X*tDT4#Gd=lsyeSSYi3^JeGmw^eW#KXd z$w(^)&BkfdR3w#J_q)jzRM@h-k5aHHbm%MLlgzke;=GDM(=^D7?Qcuia^G3Ywnopq zCX~&+NoVohw+0?Y6Pg^nr%Y0L$)L!RC^1Q0)53Fs>AAjD9!msT5*^|sLIfr~v-Gm) z`FKG7`PI+8h8jyxZdy~eNWdw-F@XTjT%x=H1`vuju@(P114w;jg=E51F|n9(kaUdZT^n zRaUdIvdB2gv-c7XygF&DQhD&#Ufx}I^(yCW-n+N+z@|-`oL1}+uikI(lF{l^G20{J~w9hb-0}hdYt%XtJ~5) zS2s@9Wh(n)p_#RuFKtaDgV#&vwLz1o2E6)E*{|T6Ugu~1PUFEVEr#{ciP?guZ9F>{ zoyazta_V1D)|x3xD%&RY9ZcvCkN?MIo*%pXc3xq9akIO=o#R8D`=9^b|GxBV?^pTX zcb40K{`zcx5@;ynNVWMat_HPxn+tz_O8xfzd*;@tHEY)vrq{~G=H*xyw)-tV{PXj3 z+Z!2eucMi^er2ma!1F{KPMz!y~v^#i7eA{@*KxrEM9d{Edfq&iO3vSDcqSbMorqHFIYr zFI>*)!Fj7oNm@YTctQI7x4phOd7UX88f#zPN<5NauwcWqqf=Fj(k~iX=)U-}D`lBN zPAktOyTCP)&zL8b9EjQOp4jGMG3D|O9p&@Ew-P%-x(?p63tZi7$fqju*ThlNRi=FJ z(%6RueiN2+CN8*Obzq9+2_}*=2SkhX}(+gE;lc6Zc=e||5oGYJIeE${dT*{xZODP;mYLx&AWG> z`ghLE+S*#>$Elvp+37cK+yZq?{`~yx@$%}e=eumho;^Rg=}hz%(W4zQoZjZ$(-d-! ze)(Pd$l{x*LZzn1ix}HhJo_*3cpKKuD&Xn>$ zj@8L?MTzv0lx`2*04vuAo|?y_SdVBp+pqhkzuL^GcW&TIleNF>ebYkhX9r0X&YEN4 z$5YTGF!AV%h$}ZfGm5xAWDRV#P&#S!Na2X3w?O8%@83Ib>CTZ=Dm}p+UpX)APFmte z6SM6xHD5$lFQ3N#Ht$35TsiySJLCWMWd5@T58v-O{(a3^0h5n$z5D;m|7p+r`%U&< z)o-rIiJN!qII+Qg!R40*_vfY;7f(K}AGhlCPRq30Hw9SSn{Re8%(%CwuYUa;hE+Y^ zzkGcEy+VL7=%rf7RHo2vk~KTG6zzMn&dN`B(sPR+AGh=` z5)*r-;bD2>wgS&WS;tHF9d~C-QdGwBm}rTW?j@6zU*(rfxp63|t7+RMk95yTE$?F5 z4<IsPJ!tZ?ndje#v#t&6uDj*l z&h=sMb1#oYD_r;AcYk?d{$iFLS1Z&HPZ93!UgFuO%My5Fk;a)5%=bL43fpgQe_z44 zchZW^rU`e?>fZZxEHv-_uJh6P_n#j7YnMIU?o9gp+P<|*66~ih;n15?-?IAp`X7@j zG%d>i*<4>Azufrx;{DtEwVpeRRMd91wz58p()H6hBh1Puc5O7S;?RK)2&&!C$s5+2GfHTp@)5^{<8165o_A6 z_RjlA%Z=pJixzP&pUlzz{qywmZb=tsSB5FYc|w1)e!el*ltb?@6JiS%0ejm3N`_f+mFX4CE}>Wd0l;5li^imMAX6!dleHXoV3 z@Hul-uCD+GXb;Gw3%yY-Rt{0^)0%8v3TsI4eT#^CQJD8uh5fH=%hsCf?(>q$Yn!JY zt@N8a>-oF4+bdtsUjN}s@bkzS+y*}z{H&j?RF_N6PnXYTiBx*|UHH&~!*^o({ro41 z*B&xZIUUqe;;~d?4*LQ}iOEkYZ_2N|u<-w%OsgeVyEay~O~^Yl)%n^1R}N1JR~64D z;RRD%SeVwTHZO^vzDHX9f|ZL$Z}Eg>mUr{EvpGkx@s$1Ea%e``jinykO$sUb2?0+W4+dIgf}I#PS1a%7%e1wtYr7+ zFWZIL{<1WS^NV;*vi4qn-L;i5`ujCOrwsj zsnyl9BDLO&L^R9ILo!WCe?VT_0{oBvOw4m#1=ll`vk-k(;8ER?m9Vv<$7byE-*M~4 zxmUIS7aT3Q`L6I#yXcQq2YWSUhZod18_)Ze(@_CbElpZf{*^#|@&m+$y-BvY>TjZC*U zH%FpCM3ckhH0PENW?6+Y)rtFT+&SDuDo(p*>jt@h{qreB*v0CQWuvA}tn7@6`+vf!nHt*WyHBTgC?as>2X7?*T8_ECuP%e0)L74k=%+F(@ zc7I=(D<8#lByGi96jvu-tlz1m8wRGz4@^=@yl3F&-iHTCX#@M}A z@27!!hZEbi#z}VB@oD!r2ThE(uvb&l->_}P=I@D1P6qj_Jzch9>KpB*lM>A z?|$`PIdhhvHy4Bg7%?7}d+qQWS_s@d!;@ZQI0*xZ0Pgix!++>OK9(m-qh}#r5N!9O(@G_U*Syq~o2u z&6{sOe|OAEDQr&d8^gT2x05}N#A#K0?Ona6_AlT0n)}BqU$5P6apU&$GdE55{X3TG zH$N)1yuSbGQ&Fp8+n$pVadBzc+1&~p5s{XiM=K{fh+gPQ>M86vB=m|yS9O~~#=?_p z8x@q!8oyt&p!VQC4Q-btAFjt*1UG+Mqfx_Vu3sSPnBc?vZ{xak*FJ_yM%v!j`jojx zbm<1=_Wr^}t2AsjE|^lqFf&8@hV5quPkjT}T7bClL$aPu`+}Jg?u6xkF)!6=%q$4z zW1IYabD_d+%wo{BMr)^-qtke(U%Aczo5z z*7Iinze2jf`!9Adn0=hrv%CELzISsTKX}lv<;2a~w-?`i8(As{m#qK2h4n$9!jHcaq1{JJB#l;v*j-{h@wp~s8V}1tcJ@PA zb2f?`TPUMp(%4gYEHSoGXjaOEOPO11!@?e|{SeaQTl_zcVb1v#={_54Q6)UozvWU-Cyry(ye-0$;ENIJ~%92H*3*}i2J+F^Z$F`YWM$=_MQFp^Z(Tyy6kU%mOK8h)Y_xRZ=8y%xvzZx z?D~JN)?a$}?Zr9W4^M*qKQGtcd#bhjd1Oq~lT&YN|Gn_m-&FOGGbFvWIbq(5knY{i z-ZhU*HrcxGzWn(9uW0)-(fM)DI{9nGi@Uv3t|csWWSgYG!7)|5%;eamw^i1*)1?+E zIIt=nlW6OVU)~nk6(SYh^tDW8q8jJKYZ2jsmTaB*D-Di4Xi?~jQn|Te%6*COF4d|H z^PXxZzBqmAvWf2RpSG0&TjzyDF=Wna3fZa~6Z%iTWx?HVpL1?~T|DdZalCgHRo%A z|DB&-|KyB+&A-j{H}cCQz?JX&_ZeCYvnu?L{r~uR{|mdHC;f~5zFi%&yYle&6Az5$<6_mg z;a~cKGyfvz=*->MdUWdf+1q?4Z}pvR^U2g*{LFUQ23LznCN9pjlE0s9zSln2Q}<+x z;L(uaV}J7|Zz5k?f~?c8q7SXDmHP^RN_l(ho||uZ`s(WNoA=IFro3ed`uX!hr*e;O z#iNhiGC8?{D$a{E9<5ZL_oTc2i>pswCNPp#?yr_@cHsJwGyU3-iZ-xslGm2WzaSN{Ea-LqXX-G6>!{r3ikR-Lo@ z6PDXK?<*=2eay0gL9|syMRTp+ZRT9|Q(jX(Kh~YApRxUEfMn+D{oD@Ij)z`fb|^Eh z#Lwr?*}hl@&&qkfq;76p9d?%0GVn!hN&esM(-Uky#cfMV+qqllT}0BRUpbdumd?4T zZ|}G2rs0IQom)JQ_a2(6($15`@P5u=Bkz^*K6li=TAtqjTdZ;7rhUm_p8q{~wknCN z*=nKr>QxWd3ww?${yn9p_F1RxER}?h>AFqLPwXghn6-?9y-+5p$e$}OCx64vohLh| zrfw@MyK(#eQiHb5&(Ck%zWsa9^2Hm$(@~M@TlId?Y8m!<<%R3-1#vya{wv}wCWs$Irz=Y}#>-QYm zC4Kf@7sG}_kCx0-;#<+#B=}+aWQ|7`j+P{ExKt$&zVBX1*hPupX#&lKtbQCJ3LDSe zKE=tNIqTPYo24ge+N`^h*2V4hyYouGRq*e>37`q^DWff&xvt~`f_iMRPj@{naPfOq^k(-lx1t=U`%hqr)`y zmcSOnr+*)oSYAsq32T_RI8p4}G?j+AN@;uScMHeOy=xehxqdz4CHwgocdFUkoxA4X ze&MHEMf180ew^mlRlnX^Wn0+p>a5l@B~S9D z0cb`3n)Ub7>+0k*AAY+VZS(WW(#*|<5i+xDw4tjc0|=w-0#^_u?{PfhL4XKSdwQTb3J zFhj7#Xx%0^Y3qAYEnk@?Fm-R>OV?c$vS+)+Bpqi>*VVFyHZP`oJuYV8Veb_GrtSTp zwS=Wn?X=M+8&w`AGcz+#^+91&Z9cf5##F|;M|{twxXSw;){I|VInNwFIajce`Lbon(^LO))%zJfZQ8ePYVKVV z#sj+*7@jz<1CNo>$Wn#VV-ZFojY@#iIDM$W0`^nJQL5pnz2b}!I^2{4ts(= z%YXg4+Sw(|mF3D*zaqAck@Du6MjBhJwzOG2x9Kcb$uzhf`C!LK!($b_>?^*?$*^S? z_ZYS$_6SUB{@WrRS26MLUgl@d#b?fbZFJ(-oQTMT%+$WUf6w~ce*Cid|5f|HGyi{1 z+x!bW1XS~3(M5)gN4AoV54>fkPn+fds*$hf-%EIV<>jq=8F_hplhb^E{&YUl%O)MeGA3{?*XBx2<8*8+8 zg>3NXnP8!AYcch4OY?H2C6^wsaK&HK%pX#U(IRx)gwtS=fgI4(vNzpLRdnDhFJjo||xEuOu5=U!^@6682KIXioW!z6Ld zV^L9W`PLp~b&|cX&Cd81SG0=fsZW|vLv!ifJ;+m-HC}zYm7CP z3I-(>aA={rJ?S`oPP&riqUxl$N@E-G1}>LZzxV9XXnw3fgYDY(0(t zPpa=uZv0+eHFrgw{N4ZGCa~T!QMB;nFbFnxmfI+IR!EWc*ca|AK1>I8unY6Yxtwn< zRG;xvE^Xq>&9{{MgxG5&CVka-w6!R0MU13d6>r?;1$R4d?%3}->B*kLpSmqUDwSO9 z)@x!dj{drOd&Bhmb&r(A|GmEdV{82Xwf_I>&(6B-0=i4su{SOJ-jQmfb8F}RJbCu4 z@3}c~kAIz&e)InQ=8`1NwIZIA3VuDwyf5GR{@{^aCwsCcPpCUC{XbIc`{p@}%ieB~ zTju(pSw^g2>Y?vPrmuaza`pce0(pP59V|khwd*dj3sRWlU^T&SO1xZzm&~ckiH^Ck zkwNP>22Eus{?yBHKtya#z5F%H9)So=L#GLm-A>6x-9lWNB0&}5jS3lpY=(TU0$V(c zokg|^22EUM`L^u*Y*`**6+T^tr@>K~uH9kJ&(=U#e@N?yhljlhMkNdWW+i+vrPrs7zxcv4x zKe^oNcRJfRRk9Us3EIEE{q(+S`@?Q~|81)2Hnw?vJlA>kbN}_qUaTG~Po1f{>Hm=B zT+>!QRnvQnm-;1=zGTi>-SUBD*%kH`GCW1W32QXH|FABbbGZH5rb%BU%Oz%1$aIRd z@1HV-L(}aRli#%PEA@SmWex4;Y)fyt!fVN^sr`@|re%dgVLs`g70T znY|5@UTaz?6D-0SIql->uK|3Ubd&?mhSWzi*lVwn`&XD?KlkYD(sOEZNqWrJZc5en zrdO(eoS}1@`3Orv@u8*(!42yci9Jc&5&oL%$8pt3FWC|dzs?C@|0=U`)83%z#R~cp zycTXz&<`q+nE1?c?md}h1rphTiBHZub1O44TlHzIQ9NrLRmk0`d^Tu`7)zs?ERWX{ z<;?9$J(>X=TeuuNKi!$cYusevT}eS3?kG8t|=~Y@M1rwG)MPf{mguM=De~~)qADxMqU?i%a!}b&@FuV z+}om%!-X7cr!$o&r~bcu{=eTE{>Nute%V`lr>bB@&HTmHFJ9mG3jLossW7SM*ty8Y z#L5@7p;MU_)lJPT64HG2`}vBVJr<9Ot)JIeHfKj2~D#yI2zRM%}(rj`1ARE_4CDk>*gJia29cm**h4Yc- zTPnvmn=*H=jeNTI?2P@BH<-?t?3Z+0&z1Mhsa-V(Rg|Vk@H2XUX9%}n-!%WI;1uQu zCB7UQGI9F*YuuAIEx9Afd?@^q$8$&TfM;`iLsDGZx=nVnF0Em^qG@nV=$K;Wte(6}WdcFDLnSz*tqD6bwG5xvx*s9J{U85x^w{FiQhiiwbuCBg0i(y0FtFQgL&L3S^ zZdKYaM?sQrEpzB1Y4fYi`TaV%-?NV_k$CXs*8@|RW51pXmMX<@9AkN}c06Z~=z*y2 z*?IO7#he083dgJ79cSEG>dsuIShMxmmnzGs_kTLLt|%%!u`t?FC7;K3(zv!J^xOKa z>%NAy9afaS9jzf+@c*3JT)+0>=Xyr_Z#=yA%T&*g3AzPfypbU9)ucs@1!qb+@WWaT@mM-kxE3jBUQ< zwvX}^ZI(>udJZxhv#Cs&(9*)gvGJydk(1eK1BL$H4Oe-SGC5VeJvgFzcSY}AaedXg z+S6ax3Vy%$Q+b;B`=_VZyqb39Zs@Ptb0;Uy)Q@+$(;+S>x&Qs&zx(VR1sEN6tn-}I z^0d`eFJ_0s^2>?4?@S>;C#amYVvd-dqWR0~;@htrk2zAamUJGT z-Jo#c#eoS-jv?x$eFi;+cEzvw4@)fFlpQTS`RuEzR>j{pRr}m*k3|~nytv@I-RhU; zneSY&W)e-i>%8YU(=}Czsii^}HJp+IP9 zwsGNNReINh61i3wCmwoVx6XF@@A!@XR~ec0%jUe-lH{m9dr#bPOHlLmyB^mL^qph; z`Fz3G16$7ja-11%dg45br>zdhiics#ZnY$D50zp!%BYX}VQp3P*_HL4^%SWsFK^HM zx*#y?&)%Y#%Bu;It-%Rvk6Usyohc}-uAbdJ{ao>3@km&UNkfoxTN=3LB1U^m+&Lq^-DN!oJMtxvg4qzKGt+|=B*h+upg@jyro>Vmki!CR= zUwP)eVo&LOqn)oNwN{_AoMP5o@?Yt~x&7Jp&n`>MTqyVbq^PV|n_Yb9%>Un+H>Pa~ zS+Fbb`PT=3PO>)WI9zWwYf633U>-6lAZ41!de*7;zB)|%x?uCPmgd(r6J!$toYlL6 z>e}T!zWy`Ro3Z}ioTcZ&WB;|Ecbv){9l2_c_V$^zjk-+5rY9x_9<^L+swd7~va~nB z?A*m&^{rd=%x@c~deuihUVq@(JZ`_IPBYKn{!-b!UC;h)_avst-Av8?dcxKC)4I)POZL~F*Z$C_ZGMJ z%l>#M|9@inpJ{g@Ssevf1Q}YSxw3WrZ9l4LYin1my|KN1>gM$GLEOq>&&7?Vr_4SZ za4pMJXf~hihb+sM>mq03&q_P|_|(a8K6huKjs3!na%B9p3-Ad8{BG4_IkChq#k;C|W*6Qs7Taf~SGx7BIG?=eN(V|9x@hOQ)6(%-8=bUHI?C+0-0aGnM_%E~Q}0IYyNY z>yN$LE+weC>UYe#-9>SsuYb57?N-V@EP9i1q2#Unr`(AN3NupvF<-s5^5%`nTg;yn zFWBlPT@W`>rS_5AT$92hfk$rLlDc&Ov@ms|vU%aBC!TwnuKxX<>1Q7KI_K9jpFh#& z^7g-&^MBkkkC|w_N`a$EfvKV3uwa|w>({TpTyDAjzCzO9?ytz-I(ebf*RF{LiUf8m zwc?il61tN^_my6?308FMSbk?PqvX z;{0iDRSP~|d$?CO{gij$q3~Wpr*LlA{O08AkB>4GJyMfTZgv*Y$kjT2ZISOb+vhSXw@V}& z{pXmU$|Ul9|JRusf=8uhmjoR6bxZWtTCv%;Z(Ce{zIpy%p5OfMo}YTgR(`KiU7LNn zyhX+5ef2+|$yc0S{xnN~#Zkb8K_D+;+Vts$YTm;8zTd0PG*N$1wp%79a_P+(3<=fM zvo$z2&y-Ux{#U(mvsyTl&coBkuevN*G;Md)zo}mzh&JymJh-1DBw>$qO7V|}KCQBi z_RTZjESk4>#@X{}t2c+W9Zp)Xf7$Qj0T*m8$$hywPk8rCuBe)uO&hd$c)A%P8Q!_E zaD;ACHC0Y)tXspG@N@IEhvXx)7Z4!Iqz!SK0yVE=ImCX$6 zMLM_6oVd)WWh>`4YuT(qhgl_+5B61G)OfZ`e8#-F>81A-A650%{?32&=c%!e&++=Q z&$8=(%rpOMZ~x78CliaKKuh}HHwx_zJLG<*|9>I>`|MZVbFmiwuVi1(miF=Womf`2 z=gGC(23iL+re0043ZKQ$SH;l5;PCT;wH32=NLG`uT{H6QT zmo-$Ke-J;t+_^n$p9$j`E87#T0uD;bEi)wOclDKC~UdU4$` zPjBT3?lncPIZj`oB4bLBonU?Tmf_km`E1?U(&C+m8g9Pi)QjEWA#>gHmsl##Ua?i`#)qUX2|2c7c z*U9+`98DkQOypsBxGSZqYL@YGzsngW6+gQBFM0oxv9Fu+wR?Kz_S8zHHTQuWXOEC!0geGweAl z(l0igyFYv9uiK~oCQQHb!^uH*ryjws~=Yk?d{#~f8|hm&o3AEV{L`fkAw36 z>hD)Yo-2o@^3{E5n@?W4B&64JN*)ulc$9r=2X_`As2b`?T1m z4>fb!t($H8b`tO~;W6!a!-=wfdVtz35XM2emE`3}Kr(R5q`aieHt@O;*zb9`6^2z+# z``vZwQHKRu+cG~Jbrs1nE4pO+&RUis`edJ}*n81Lfy=MIT2z12$(*#|?!C1CuN=k1 z#C~kH|7{Wf-+pgbOUuuvCy%Fz&%Xb8@%sAX$DinkL&~jvSu^L&OUupeRq^b2JY#2T z<)pazZ{OxFQ(u0n-6C5zQDT}TLlWx_cLu|>ZGLGntw^^R6FlpT!*Ra zhuycITm6cRdVj$y-T29qXSFHDUyjYVba?3rjtiBYO?*62*^}aC$#-`dgovtck=*@O z$@&s1=3+U?a{%16zZa$l5KU3p!4$;4hxZi4{3Y1Lkq)i!Ix z+OJq%TbJ`_@A8{-mfX!Vw%>f@(j_6sH9uyB@10T+v{rs!<^A1jUi~}N|L=kIkthD3 zGMv#tfboEY^WuvM|Ns5{a=B&c-`_8{T9@pO4YA8+?yB1#U&X-Dq;Mz0LS$XZPkGPd z#~ZI{ybrkdXpZYm748{xk81Z8?mO{czxi8X-w&^svW_KNW0K7smq(fJpFP1?KvZOw zm({+o6)_bHlCGt%Ro$q0ui8m?sw7M3#*C6^>phHIkL|j67~H%9*`94YCb7lPIhOBK z@>9jDk-zGePnJF(b=qaG-}c)}^KA=dHebE`LSt6`h6JO3k( z%&ptE<=6f^SZ{A?{&C&)`t#A(p1cu*L^R8$eGjv z&V|kH?BtwNUR}m0z~Z>$A1i~c(2wxme=_%Woq2kH=>r+J%AQm27RO1>3EJ8Cz`&Iw zzvM&eX#uJ2J>hEF9v}Aky#1~vY&J#N_}6K%b929%dcE9aHoxZDJ{|54Ssnr!{gbs$ ziG8}nptY1;w7#+NcYR@vapRGw=&~g%rg>|~+)L->@?Fr;)S$p|`S*GL^KH}jw76|Pwla9RMa^Z$s=sfq9oqLY-g1}C|8v*t|KC1$I#QRT zNuh&5fkQNJ@7HVYe6m(0x6}XsTEF4m#kXaQH}2ed5>(UqvQx83VZrnzGu0a=KB;#U z*eCU2>CO3{_@*fHnB23RbE#6>w%d84RX|j#@$cOs5jL~8)jqzre|BZ^*IL)!+RQuQ zhObXEeMs!O_3P1Uj#KQfb+i7J%jbXnyZ9gL;$>63Qtz)l>vgin@bEwObLnk$pmR39 z{I0!ZqS~c&Vb<2Irh4n+549*}oZcACCv491_2rCI)7#Ov?ElX0_72YfJ@NYfw{zy~ zZ&Khm6fUK?N@QL1zjLei-D3~*Sbh89%*)GX%*oiab>Bf*{aVSb3g_hbB-dS*$^EXL z%fRZm<6rW>t^<*rf3~u}*Ug+XVdwAk?}r^`+fx@ArcpCiUA-*9QI07Uwv| z_Tbc%+v}u0gnrkaU1**f$=E@8HUZq0wP6!tIXc6j>V?c-)cwa=;> z${v&_Z2G8rcZvaz=cJa)%l(T#JaC*>@yc_K|IM7-jXU-@tloU~&Lf$(d8_L$Up%~j z;~t~mkL~{*wl8(_OM(=ljyIa^|Lpz$?Mw9iKhtKfDc@2Z>o?!_aO2g#I%o9*`m=qG z@IJCod#kR*z|mCj_`k9KyVQG&jKdrL?0bG%^3$8u88g#0asm(AIA?ADognza%G6Hz zfPqbSoG9wrgF<^8e@z$seLW9_lgd=46PQxsmBe#r)=nAFJO7 zsu}+?PD@~l$O+eUouo3uVdK`DNx8YbFHdT&Dc=&M`)>DtyLS~oPj|c){M>D>CHJx zYp(9xv+dkbZSj|1tM)uIUBB>N52w;pm#-hn`QJoW9lw45$2s*UYeZQb1>!b5XR~BE z^!1eekLddA_N9+9*X67+wzof@yZ!F5`*(g@ep~-0IkQgF_`i2hlY)d1V+qeKMlZGo z1&-_GALj4;t<7Iy{UmPvo}(-8w8l#YNUb$~Y@f>XL29Y3#cXM|zU8xiy{~;{7*Kn5 zLD`o7tN+=VNUv{?=3L}sdFoib^Yes`L4g7oSWM_b*kv2 zs$P|sg|Ds{>*(q)V1EBi_Qv;W_xyb?&)R=GR&Jw~z6R1=QLu6UcRK(7w*L?1t8AB_ zpZhd>|F^3eOFgPtV53l`Dv$Qw< z-`$_5{$5IT+*0Ih`rBFa>(1*9U*+2Mn`_sLo}0w_y)w73BaAo$!-8!$7Lp@$u=ur9TT*Pu}{H`g?XKZ|BD)UV;l&EL|{1 z>7awmrH!1OZy(3b?|y#1@aZM1b4xSU?tHo}`HHmRv?EugFTOu}#&_RW_4~hy`%i(( z&OH$mgcu&~dV0}a{^_Zy+CEoa&9NwKdVIV;m|OYKqVN(q;pLgLcIw|h;Bi2o!(8v` zf;}1W;ZmO~+qao@K zxj(b%y=bJRli}mOQ=8dq)FfUwUURVg9540psT^zIl>ff`x4t>reV)Hxy!ldB)~5aL zjo)_snbD}c*>wfaz3dW^2Nx}Z))YxhP8HF3|Itryj|`P+N9UxAYSMj_bz4wJIFRRyTugXnTW`*B(SH9lOv)~s)?B9LY5ARXn zxZce$VfK%wjAfS1Z)2u?%hz?Q6j?TB>-kHsHcOVIep$e?peSC0h3W0h#4G0C8WY90 z|KFI@81zFa;k(@W5KF#z!_V4je^;N*l;v4_nI$nY$ep7rrFc9 znQNz>EpAp@-Fy9}PxZvK^~}Zvd%~;Uba`LiE13RA_Hl*S_xWcg+82uj?Bq!7acpPo z(g}@!n%r{n9YfWQV26F{uL`v<>Q%IIn5l5v?V_#2&o>n-8aFNo%X;v8xe>GDT9I24 zLE%%pM1Id`*qXsTiy@u&?Ujwwwq$i_>obY8~&7J$KjujhY4lHi0EZl!8`+xU^+sh*r-fVgux%v*5 zzvdiu@8{vGl2(|X;E^hQvp!9PXWRDMf0N#uHCj(;3|zQym)!csJKPHAlQhykbyrXO zJafgu&$S=Vg-0=l-C})qtgUZPX+q#R28sFAG8JzJBwc)>4D0g?pC^x-98* zwQl|__Ehv(hD{}>b4>e*3-48LT)CXTcB4t;>&v%(T+r38KdJw3e*XWP=TCU*K-)Rz zna`$8o;p?ZT+A+)Nhqu0dlJM`y{jCQZ;uf28?zGmy4N^F;3>v+F`so~5o?nAxK z6W!wDUjICA^*?&n?7u%_bXKsPw$nay-`IP_uisaX99n%h`c&laH`CYX?f;;lv0t0X zc1~fynODDUe#pn&KbOaJG-7VKzzm<(6Rjfr7EcYI+}Vxn@*zkT}`M&=vboRLtOIPvP#+LmJ%-Y<17 z{kQlh!}Z-92Cx48&5?h_>R6$u|KOt}!zpn|hM%(9{-Nsmso`557gz4xeJ=gd<}W{1 zDeu4ec^_k*`>_ivK0b&m_lb}E|3PQ(L2ZsEhIqs8%HP#A3g&Hm%6@f0{K_*n8zjQh z+A=oCaV)Y~eDL}4Qws}385L%q^bd(snmC^WDOp-mQOrvUT>m^Zr-)Al@SVcvoB2+I@1TSOUBfnS!|(teXq> z9#$y1qEWKPV8i#GdQAhPJKxsNc&gv^ZteFMUSiHyiw{_uD~0i-vsJw3Y+7)J<%AcT z(PxKN$Hg8sYKvGzCyVzVuQWI(EYaPvi<0#%-l=wa)iF9 ztzbX+EM%Q!_Q7=}n(0?&GQOPwn-8)K$!u-kgz;mDN?Y{P51= z=N4s8G`{{~NfAz4Vy4>Rv?WNzv+0slwys<3eM^Q(pY%D*%~~JV2kw49=X6ZXRHv6~ zuJ64*^M9>i27AiNkJoPPZEcM;YA@^R+%>0j{kF%!JZZmA_I_=5LC;n~c+xK5ofA8b?ysgnOI|>?i&a@1AZ&Ck|Nn9`H!3SS+LGAwQ z^AtEfvtJYWG$mxFtvJg=*5041*Quo5c=?Uv2K(2KQQ31Y&9GU!_m&=iX>O|HtcQ{n z>yM?2TAJ3`xOUqopIMOKcqv16!RMQ`uVoAjer>+CXv*o^3}UftCSKV!aaIdHeYCQ+ zP;>2eWOy&LqQ!v6<2UEM>Mh*`=O#w97c$;!ES;w@=Y$t4PsuOoC3nT@awkWJiJd#w z{*C$fGO71}x0UbxKV?oYs7KWM|BfPuIm7#k%h7+_?SBQzRX!0ckuWd@osM?I(L=W@ za$fuajo#v$&6~p$*6PY{?CoG^QrHvlzoY!flROoN@})oT2e36hXaM1`@Yk7v}wUR%_gKNtCf$ z$uT?Q2roy{w%xHdjE#L9a}_sT@UC8?Dy`yp=;zkUSGN3qqRY+w{@<_1?sflf-~VB} za!xBWSryFvxOMx!E2|F_d^=Q`mY%-xnvt=wb9QmJ^KbqOYs_D4*%cX;C34aG*M#$K zoeT;bhq%=l-Wc7UKb=|R;5t3^Z+9nL-e0<#{nvFZ1|HTsSrw7(a<7F0SU#xrd^p8( zYzq5}d%V|DdsbF(&sccBTaU^0Ta$iE-=?JtV7#+|?9V=Q-knD_nvmwJ(4dr%i=wU8#GK%PY2zMpA!zr*WYH{VRj zO`d!8YUr-Na>1L8Z}LnDdvUqu44$ECmPCw^KV5+*f4#nbX$j!xYQZU$>3?k^J#G?ee= zV$dk4ZU650E$(S&mf*^wira@@>7D!RQEXQcUtIL{dfhwqe`{y_;)Eve-UDY+Cc7;@ z_|tp(i!Zy*oH@I3?_S^Cch&fua%LIboN?s#nzxg$NxhD}HqVQ1z5<7S$%FMVlIQwo zy%XK~K2m4BF?%hS;pC5vb@Qy=uZt2gSjXKZbvvlwMR{t!|mFK->&e7xea*E$3-~Ic2z1HtHu>X7iyROb(_WN1& zUwZTZS?)Z`-K4<56vU)(C!yxF`9J-CjqUp!WR6?d?2Y4JY*KvLScBg^&#LRwyu9t+ zn++Y;UsvX6TDXp(NrB_M`mU<~fqbo!uh<^!)la`LRhq9W_T9Gkd)c3Fp7Q(8?oZ7k ze`J%Kzn0r8G4)h1>=0yh&}7R&ok zvohC6yMR93@_(Q2B_B$-a5LffTB`#;7?#UueOR)rJj{O;f6mr*d%m0B`x~9~N*z>+ zC`(wf9O^yt`~LUS@9v%dclAE^l(ed(NoTkEZriqP9Gvd65&O2L4Ut2Hn!{kmv} zp8%VLY*I;s8Qb%PajO@XI%LTfUQyU8aJ)3=xg)y;znAo(s@{FRov(Ox`V_b}E@?Qf z-Cruky5!oXyZ08!UEP@3wOOuN&44i~^TUEEM_Xd0F8`Vw{99`Mdf)c{pVIGt+g$(2 zyuR}PvY1j(MmKo2(~GaMVDZOU)9ZWV=gfZI9sfrudbY06Y$L;)OJ;wmyt+DmuI+^7 zeN_^UNrq9AA00n8rT66t+p^hJXRKKrZ%Cf7pI-GPoA;Fa^>~)wuJeChyzaif*w`(l zA!l0c`MjT>^XS_Rp_e zKO@J-bCLiHqgQs!tIpSgYu|n~>OT0~JZXCVaxu4^5sx{V7;+VSh1d9Im`Kf@9Q=`e zaa-m2+4sKWAGrb^I(1^wPI^KHy_{xuvn|I}(Zw1x4HV;2ZeZ07!Y>q?0+C>hfKUF;0mX-ayzvsKf z^J8feZ`2rg?mhn|bNyV@uY?z07pW|Wx;?-5WMAz29Srq%HcHKxO#GmCUgE&Rt?V)L z1Q&ezQq$}l-2Y1D+T*=yJy{y-FRCrcu6}XgLdKO%d%tVmEt`Gvr01`{bvtd>nqJ$r zsWw45ui)V))@^3`f%(@so2>#xg7bYYddqkwt-SiWLZ{GHWvTo6{a0ts>a*YW{=ldA z*>CNBIRAf@tGm;Q1v0kvaP=JP{MwcFGJtGkFJ*Qn|1VN zPk&YJfA-4%7iaJPPmV5f1(msnik){c zaG0y;*FV*+_+Ve(=)fA0zj1HNaz7j2NoqQ0&Rx#R4eWMG5*Bbb^h`Rw>|L=ftGutaz`XVnVVI_|#vY#;l(=N}#(-t*__`X>+D<=NN^ zb0;l!?@v;4-hN*-k7eEbZSS&|zAo2&JA40b!<&EZMAto#P1>RaDgZ&vsEU6t?f-A% zmj8LeecCm%>j9@6;;eUX+T*nP>Z3QUpTAheep|n8QE=}hhd63>kdN2JNubFZtr+@7N>Q<6^px~1kQQ1I?h z&vSodz7@2uT*AD7>& z4_hY#O0qvbDXTIZ;yvBJ@88#d)9YSNzmc~+)8y5bU9uu=7bMb_r(5jUHGkzZmC0w- zPCey+5MH@W?kvXy8wST6WsC~NYvk8CpMQ1e?dJc_w|281$dLViwdwh*iepnXd05|G zPxxl8_v7ALmW4Iz&uv!z^P!?7_3z?GEkRt}?!O-v^2&;b?nx`_*>-1NQAO%UtJii7 zT!C6Hs|Avsws0D%Ey$m|XKs8Gr^w&B{;$2>SJbj%BKIE&%bxx7W~JQkN5L|?f0}LE zZmqF?W{w|o*Uy=ex8{oVM#;X{-Msm7#B`gL%tIF^6*ni}H|7Uyc&M0UOb*wm7 zb2&Tywf)zZ`xi`KR>8k@N87bo7CbADoA$|Co_h1eCoN4ClsjEDs;-JNIV7%IzV(>I z(oVEz8@~oh!=sd3UGqRfgI*2?5)9?l?0@OuuGtHSgks{XBEy7wg+wNKC21tb|{$yn^! zb6fCA`1YrBw2$^B#XPlLa_Qj$nQGSv3EQ@)>>&FHJr1S~%{g5rzMI9Gc5YbIb5O#0 z{dHv?=QZU|H<}(xc`B%-vhI4pIYC#!m0Pd8=8ak_c6+Ybbp7~eM~u}yC$-GnY5DB= zbIbB~GVXmc4-c}-FS-BL$k6cMzNvp@Y-(DT&$Bsrec!LEIXO87+YQPMzy9s7n0sff z^7rHW|8Vc$q8UC1G|&s08;Uoy`!IX|yZb+mnNL#ToGpD@W9f`}pxMFAyEgGB^IY!L ze3q8R+0@{+)@}9GMRDsNUpm9NXGQMXbE_<$e{g+mp#LwVX+!h_`&rZMt!Bsao?1PV z@v1_l`NqWUQor{e>7HB1@HqHKcjVW-EImpe?sS}Vl_8tPRY56%QV$^PUUp0nRh>sTX_oSMYTou{WqGOY-Koo>lxcI z3ArDKnzuyh?)i4+{Q2TM?<$^7vz9H%^xABA z@a^_{ZtE|nCM8XZ5(!>^-ShI4CD)a^l%}Lxa0G_Wzbeuq-CC&kY4_P>{nze^8=t*; z^PLihF4LcjU;Ad~u3uNJzj)upkFnmf9eeMGn%v0tIhuV{sQJ~mRrT`aX9AQPYkz+F zP_brfOJc`0spm2CHm(2Qm$+7yqiNyB$n1^x1dkWayf~%GUE;`>-?dw=namRYvfFk~ zQ@8lKf{&k6r%j*kxmVd&_}pA;_tl%vre)9eTkagf-MOga=1zx+--Go3XZKs{hWEnaUSGrh3$y);{}0yfe(|+x&Dynsu7N)b za;7X3yuRb@w%adDcO5D85ou|jS!uGprAfo{LMmZpwNi`OJT}=9fug zwI;gz1O&bbF}NK!*K&9hI-ft`%8v#6we)&~Esjl9=y@F!z`xT@MTz|c=M~&xjQOsTw{`R>tJ0~yy;_I&wF>y*WGpktbD8V*|^xp-+%L- z4JXcA(OJmp#puukGi9zj4n?&`9#XY=HL z?%RG(JG>7b!C7`cH`@Pyc75-=Qu)aHHF?mdQo;u#=cA@U-oR(YgAd_Rz<%i$jUhnq1Wgyq8SEuS}Eo7T9`knMG- z8ixi)Q-g{p$D@w8^~aw)QOTTj$zSNzS5CiqRcy&T^Z&j{UwQqt&)IVZrlv=ac8hl| z;+T?DmN-p)eqEPEU**-+ajtviK8w%)Dbn62v#;k_a(wY~+48scTmG*z|NnaX`qNk8 zEtJyZ_v_!9|7w@7oAG(N-lM(h943Jx3maEHQ`s)Nzct-&PD){2=hCH1*JL*sW`t-m zFeIPd&*JFPoYZpgUDi>*=fm~oJj zftE+lvOoRCsx52g-rr$3<#kB24(EGYEpuj{n6$90wM*x#{J9!`_w>PL_R2RKkMH>T z!*EK_oZS_TYuD<|`JU=_@Y5%w#Og+{xLQFr>NMp=@x~LSZ?2*t+H2c`~5oWsO)#u zAL+io$ z?os4%-t)a=_g%&RJ+I#U-;vw@&rZrh{Pg>8`}Q8?GM`fYp1aUr^FZ_Ubtv@4llIH`nl=w@yg{46Q$KArFy+k@cy~K;v>`a^)Zf`hrfL@ zTkALb>C@D>PnT|6R)5nuyV5gDn0Jo%%vm#2cHd6gbu%Tej_uPr#_rYJb7!_5^*_7* z+&xoc>#x7=TvztC zs=epFJP}!V=}L3Q)K<})_5Gl;oL;KWwBCNbD{sHM%<;Ds(VX@}m0H`sf_ zwLUW#?ksL7(wHqYYk`j7sXsg=mU*+&Hou#>y;1M9+#-!bJ4L1(-Z{mfXY;gLtLpp( zrcv3u=Gr+56g;|OtfL3&c)e7soo87L8X<48SoL_$@h6gu?)`F4&+NP$v$Lr6Z~M36 zA14$q%nRG?TU^w1EamZ$g@?`m7D~*jes%Vj`@L_!=HHmM+8LC3To?pe)^pwaKJWXl z|3AF*iGh2G*E%gg*|5e>SC^2w=2j2EqZ@GNiS3$yh_PptbrsV$BGXCt! zeZYx9;{H7S_u1>)d6~K&*mE=$-MyN6`pR!X#)LWDb)gLs^G=pW#G1;6Xw0t`eX{vS z;yj(_qB|K93Qj$o!j{hYA>--6G~HiY_`L2jC-XFRz9_MJYW8TyJj-v|t>49#>TZqd zEuXVP4Yn4bx0hE>^UvI?Ql|FiTe$Vgpd;fRD@WNY= zp`V|BulaJj{_pkrzvX^&t&Xmoe7@l4Ay=udGc-Wg@!cu;VNm-%GCDfBG}S(Px?b_? zv&TPH_UAqQEO+Ox%4gvVQhU-t%U%15*EcGxz8)$zclV;~wThy`jt_r|GOS`O-s)fb z^?hn?)xYn1U78CcnU8*3vo*Q3c~y7a#@rK6}&J9kZii;uUMAr89HPUgm7yQSwyi zvhn3B%d>p^{2%One(5Q9dVJCExAk}ZcYR;CW=+j2RsG$6_3J(zuUn{_z8_TMfXCP+ z{(U)IUvRzu|Bc)GzE0G)X*pzQYup^1@G+-!ch1%*6Di(j>CbL%-*M#36_bf(6|ZNk zxa#>Uva?}(vskR7zyvF9uZJREYMETM3>T~ss%LmunOx#lza^}0`}?bsKklxudf0#N z#(On}kjsC%5A2_%8O*_PwUnP*tn9sE?A!RcW~mR}i)c(;`d9q4bnj#Tzkm1BOUwH7ZT<)pF7{h}J#|yy^Ea)Z8FKP- zFTMY6S^QB)o4Z>k>W;rI$I7c&UnaLit#uP|-Euqkkb%O+Y5RN`-6h;zQf4yfZLK)4 zBEetSQINewKm0*F@3+;N-*)e<-+uG2mg}tgkD(>UHJZL&r~l(dVTpE^{rxW7v6s@$kMjY$LCp`y!A|MZXN%7TlaoB zHQ(TK^Q@0wyCx=l)~frmu*K7J53IiLdn2m<_sWqkbLW?|Roj2q$6vPp$BoNHMWFHD zrUG9Nwg!cs57Xs;A2DAazvsim&CC6YpU*A-#=N!wAJl@{kXU?75WMF*y$`ug{`zeR!+^EZ(Hf_hjHOtChX(@Io)TFXBWHrR{ zu3GI_W!kX5i@|y87v;CV5+)c1oOu;~JfODzmCV+twK@LJFO{_aFxYa(!)w31DWi-a z!?$w<7iM%ZJUDTRX-bf5)42mI7sQXX*-d5RPtNXtMZY-nX?R&Pko&WinsD# zBBxKER`GO_agEtk(%Bm}J6$g(Y4>gA$;`6s{BkMT$-Qywo5S+{&ffP@y8cK0|GW7+ zUbDyl|5jWi1`Y&p$F%jwh4p`z)jxYF{O4)75iOd=OvzOnMM#jcI zU8(M$@H_I5Ca^}_6my>88M>!;6L!n*8@(1NYUZax=#BHq|H zgMsUO7>C5Vh2_c2f0`b}$kx_=XnXi|;nfKf0`kgTOf>GzS7E;2lO@)8Pw>a>g&V~m zxd!TOxc$Sue*M2SE2nT|n5r;@tlzvw+hL#nDPC@^xal{!j_%W5`XOp!)aj?Ev*%cR z<;k3N>Gk)Svu7{9`!?mhIivcyIcI$xg&%1=`F6YS;}>K9;x8{I_Pg~yu>Sw3zQ!-= zGib03+y=La|8p__|GNLr{=dC_b#>m(qxOZ5G8Y|VnY+b*_jT1(*E7Bge~_ERvSp#* z^%ptYXUv_IcK;KX;;gAtMSbQ;$v$7!;3|-4aQ-cm7^6eQG{*X`TUXDEuP$L(!S*ar zV4A)4b2j4_m2HlK3x3DeFdQ;ia{vAGx#nGEP5T}(KUmFZ5wq3U@$1%$JZ%qi7`rb% zb*fmq>Gete9(GM5#Sc&I{o1wX{@eTYNFk5c#k}pFLf&^)Jl+F3rtf_1zq+WuX6|`b z$2x=0Z`iQGVfSUlE+vCm#p350+AO#tB4((UdX|@#K7G43?{&I-?Sq!d#u1>3mj%?x zWPR|x{;&BT`=95ouYCXCe&6N#KbPkxEx!KjP3z~%+WNk)3mhbSi@K^}4o4rqbckv4 zR<_=#xqnY<@3g->O^G!J|W_$c}AM?})xfj}FcM0r~VES_LK?fLv-)72~AFE;F~$X##s z|Kj)F-_|L5->%(S;~Q7EFLUkb;*A#XFV&Ro=lIoqZKi9Q&&SYp_iq=)Z@I>NaP=d8 zgI)U};)^Q*1KZ)Ng*h zR8R8L19g3OirzGKo;>#dUwr*r{&&;0!R;4tFuERiZvSy*^7@Lm|Ns1`ulZj6$A8c3 zxodLsHf+6misx_7A*+5)6SKn9hL-X(rps^c&!2igVw$+vMGZAIH3#W!+qSK^{yNpF z#87&c3a4AQnkxzzIf?J*mn3Gb&h*{|DH ztIwGDo3fD zrM6ru)-%4M?Yh23=IH%ZZEcI2Jht{Gl-}{2B;dw2UyWrU<66(TM_21iwST#^^0(db zZ^zQE9a?`|war)OriB z`1ty!?qB|LLiMgySAy6b8+I`kcCC)`@u&-Jb(1cv@V$_=bw^EQ?_~e^ z3EA1*J9k=sleanW^z?Mg%2zDL#>P8Tmd5pO&b}V0rY3Du{LIAaLd1K^nl}dgc7Fug z`Q)F>-v3m7ZsmuC?C)al?*D&Jf$#m^r`MAC_deWx|I3m&PvPNnT~YqW()e%ozm)S+ zinE#fmy2C{p;r6v{rkUmbsuZrCsq};o%QQJvP?%$fAh|Lecram`|q8(^;8?QUMwmp zHI;R#NTXTm?5!%E9Zd-uFAR@OSeB{A5)!pR^kCp5mDCHNqAc@rZFhWNy0_x^j_dtt zMLlfKt`_wN9$c_%-Np0uAv#j(3?a<_R_zFgJtyHTz>=}{Wtdm=Bo$5OpH4Ox(kf(b z@plVfjr@0pyTR!40*U#C%l=f)D!-xehh^8@yqTZwzbxT6T;LILA@RUe?dcH_5lOkV zbC>(iQ{Z5lHZAN$+3qbfGvxZVc}L{uE_`LUHL6!r`0~9wi{y^xu@~yXKjsgO&Hu!ASWBRZ3V*N7v{_LyYp7Q-W z&N}1J^!Gd7squu|{?=Q!FO)H3{rT$cR{t+b{#~`X{@Jhf?f2||-P~=WyE(FJ=AT#Z zkMS&j7k-rcd5q=kc$UxieqZv~eCyPCf@3(oa{!i<0y>)j>PH#;9uhjS0 zf6nfbkL%w5IQRb7ESJi2Yhw?!vvnuu)ioYo&0g_mqWi{cm)@3UUXk`ORnOcS<>TkK zY2!x6?YEyzE#D)Qts5;p`%cLdgUgeHXWon#xSY8)!$hiNcdUZ3XwKHCr7v$-ByTBv z_aXkALa0lF{zo?3V^{Lmhy1^L>CbUayTx1o>|Xmn%Fa33@c!y)>qMLy+ZN8OcdIMc zll`=2#kHT}rQeT9WNnrDTPJ_QDl^18l`GLPJ2r3so$$3@_PvKnHk_D~S#DMGn=`)V zQDInkc;x*X55By-eCCYb#n&mf=gwGB{OpcplY^jn)}3#gZb#(je!R8+`>o~X+phi3 zDXaUI%+4?W=SK9utGCaeh|~tnC4m+fDKLEaTE6ep`t|FJA0A@8_15fOb)Vesncm^+ zF1#!`6?sO1BVx|{=Z}tdA1RzBnvi?y%M+8^w{N%H3dr{}xH~7Mv~+4!#PR3Gv#x%5 zwn*E-&^U^v=V;l!IS2Q1FvS0RP#-hx*bY60s}FYP91Z_j!_Annearv5HcYEtug|N# zl6k+1KkDIHX|7M*pU;Jz3g}|kXW_qgYijlWMcoHh96#{wo7uTkzF$`r_FsOVlKD?! zk%m@l!x7%{y*KXMSrWGT;@PvtzyI1z*Nc60QholD6KCBm3tvf23!4@h9sT&s&f+75 zKFe=E%&$M34cfuc9 z>B>`)_-+4gmnYay?7XpKi=S>s#`fDfy1ExLObX6z+_Y&Dt7D~9=|!%y)%@!?o~>9? zlI;-O)_BTrALq}6XFE-DPBZU&wTX-QRO9u-_t!I;Z<+dN>Z|-+HSKcKudZ9Sw|3X3 z$Pbpk{;a9eXH-CL~{_29*aF&Kbr*kVl1mvi%_z^H=pK#?* z&#iA%Hs0jf>(=NUSZ83JUt5+Znf$?X)_Ui}T&MfXET&JhV`6jNeOI+>(HU{&j(}qq z{Hw3LF5U8ZNv7B8+lrpDU#sRuE%sZz_2^RX=@zA*B*VV1FDUrWc+KqE&qL1q8@FsZ zvhuR}=4-PZU0&$~2M5<2f4#5yeC@m97Y>`Zl~t~uU-G}Gs_N6cV)1i#Kl9%I@OA$0 z-uR!khG)QyGDj8$M}d7Mc3*Dqe;h6@zVH3VcKPb}?e+hiZ9W|kpD};#)9!xzzM~h_ zivKQ`yZCw9&!?*A=I(a5gn|=KJCVZQG z#>621Y+4V~e5NiF-iumCGeO#ia*wH1G#T&PHB}-9e*EYGS>~(kdoQ)Qc3Xu9> zvGhXJ!#VD+-)x(#!dWPjeveh|(1{IKvkWh;xtv$p`P#HV%iQ8hh0vVyyBAloYO%;O zN%_8$>z8JkbLw%e*aW_&%5b(np^DDc1zFF(%Qk+SUT|FIdf7&fRm{0%cl}I7@AZ8Q z54g8Dlwqn!m1&Uk{3>&me;I2pHabo|d%)jRy2NVkB?BSnZ^S8g}I4mGODfhPJB){2dxlD7^ePz}9GL~wpb#VmuZ|}RZ^h@mYu=Lpm zd@G)A{-sxX#Ia}l0v`v7>zSpumK-=*{CtJ$%pZlR)w5fVKGoUG;BWu-|zYgf)ZS-$`4{6CMYqvl?-eY>Rm z{`)_#+UMMv37WZa6kv1^Xjv~&|7ZSx`}&7xBE{0vR$k8n?}=Ks`+Zt+H8;~)VfA@# z?uv7__)m&Z61}ipvun-O2TxokD{x(mGPbt%UVb$#JDdBxZExXb>#UIaYcuq1Q-j<~~7{Bg-4asF#X*j#nHUY1*b3HIJTeda1r z)7yT$RzfLl`E3d(n6~*XcNTG-u)TzPkw*S)vCD721$aGOmTPOm7h<+J=FC6q>`fm< z+S)}-pC4voi0Tz&D4A*b;M)%2KDNKEX@}17wA$uvnc7fqvUUH7V-k0t{l9;2@6o7P z%f37QufK1#zV_bkbG5V9SyrSuCjcX{0!eL_nhdr zx9&}FCJQti7}`MJH`_UGo!R5SBqD_5mfH5;u?oBA+g!qrVt z_Vz((JJ%S^KXX~WFL=u9a}B9mPkooGpU{54+I;%-=aRWO>#W&UnU%l0b8`24`x6N^ zUYElvf4;lBC3LR*|6u!RAJ5LMd0l@0)UgDE*)ehZe(wD)zb|n8s`%Z1FYUempy2XZ(Ytq+tFUg(cxBkrC-TJBZ z@7?CreAvrlbvLJf+or7>XP&*7Hf!6dbLYakl4^@@zx{UI{G4ai-O}6TldV2qweg&J zG-+CIZ|~~c&zIbe7FSxe%Io*@8o~|?dR9` z>sGDmU;1qM=Zj{IDlbdAUYpjP7ydQ-Sys%Fx_xXLCi?|0i(bEfo9io++)KHWcC8Eg zx=GLFimz4brZr+OzyDsTc3MZQyQF=wi0j0oMbqLUQ%q!*t$ej4FQ}wSvgcT&S*}`l zs@$I6abcxXH*enjCMWm#*6?`GnQHf|e`y@Q>Z-SV`c3Kn%{Dft{Vsa$j#zs8{c?$~ z#X-8ozwdclT3fDdvwpnZ*XaLN{XZ|~|J-_eJO92f@&D8R|GlHl!?1vX;m^h|tL^`9 zza2MM=bYZByYKhRF5map`eongFKnrHHZ{}c|2gEpJag8b-ye3rt|CDq7{KaK8)9#)Pd{sF$&hpIJ+1n?Z z+`NDH?7x3`etvzQK0G}9<@et=@8y=PTJ`464c}-JNxt@*w{CfbhH9RE_x`3`K+Iha z{_4ML!d8FTz4wgR63SMIlG z#=8GC_v}1R#r@pabm;5<{RXc-BpD>k?7#HOdamEItFLz5UUdESQs22xiz;I)Jl5?J znAN|F*J`fcsck;N*E6SI{q@&s?iJsudAsHQo>*|E#P0lx>t{DbEqN&-$y2q{!pife zTJu4T)b+EECQYl`KRqop-A3x^r<_S2pM|Miu3T0+_h!+|c7M62j~*#~{;9J5?%vtI z*YBJ3@}{TQS)=2ZyM2~FkF2Sf=zs6d$>;C)O}fp_{`1!D{n7RomEW$Oy!OKT>9cFn z_P>qoKWo>&&j0&pXSg7P10%za|4Z}#p0fY3da>ijv-kA8|rKK}x zshxgmin|`cJL-@10+8|71;M z`i1u?TYd86?wqXHGIMddeA@p6?Z1u_7avxi={J4lt0m#zihrLw`{zaf--vsa&*#2* z|2}?gRP<7xjsL7(Sw%-jXRbEe8>fHzr_$q(7Lz}B^BilAIiqhZm#-G8e%f_%VE&9n zD~x0PHf=OLvnXl}|Mv6E|7U%(TDL*tcF5Pz+f|$GeoW8ZndiH|sx^C^->0)*&(zOc z5^?{5_*;G*hCdtrWpXpT{eJe-{{?yt&*$C0wLEiu{^R-br%vaom%e(f*S1M#y)kQ7 zTJ7TfQ99SzzpY+yVAEd>gMzD9G=CqyqF-~y?CkL-mdiC;T$BD9UUQsS8oG4d>o31w zPx*5&Van5@dFMXQuit*A#?Jrdm78~No_Y8)v+Z%?$$A)!-2 zlT9B!7?|hX^SiCPdDkf}3oHAx?ecc#Ua#Lf>29xMUQT{mzR8($6%%x(zdU<;j&0qf zlau-N*-O9H-<9eA|MB9{o6=XG{V=cl_wnP*a83pWR)!zX&;9=q|L6Hz|G!uK|IR%B z_jUcZZqHB0^#8oQ8h-CjQF&3}%%@os{qO!y`SmwXY;)wX$A$Yozb&7Xr{7)j>Gb}8 zuPa}_y?=7cs!Nh(#g^+Yz5R08EcMr2$5&NT@6L4$yZR-|&OTCS(k2aKIlfI%YmH?1 zKHofFXVx!YKjUS|tfx8iZg08D2ZkBa{Xty*=e_wU~+nwNA>UCF#GU0z&O zHS1x5b#tEm>Z3;1yKh@sTKnbS@V>OfbM~@xSMU7%9R23puLU>5G`qefD>Iz^Z24=^ ziO{^eRon-^i!$6=wD+Bu#(()gcmLFB|ERmcbl`LJk41l9wEeG=jZe2VzMo>Nbn#`0 z9hc~u>vx&=o^#Lr|9V}|*IRq)mha}P(K&6BTln>x>#0pX`|roE|FHVCNMyU2U3_3< zjQT%u&E2lk&MM_bFOLj;Szi5e`rJ9OaVhEl6~x8GCCh)$JfnVc!*qT*`*R1+<*hnu z#4lgF;h&w=-jdySZR);ggl_e@xJ8nOZRecWv@7yY((Ar0zjUp%D{ZF#o*I4Wze?-x z?VkL5{hjK9AO8;PKfU?oZ1m%^=F^|6$N%g8|5<;=Lw1G$hKBl$wNK^$y*mH*bp5mY zf8^^vPp|v9cK+Y({~ta7cYFU&`R$uedmd{(D-x=%zxPwozvlfP<)5zozJGS~`g>?!>HYC`;|NlF6By61bzkXv!z&82+F|HpkzO4@w zc|GC4B9DnnGH+jrOgD|m=hWybv3h-{?Ptxriy2c^t=bf!yPjFrdahsBl$EEnPU~#m zXn88j=yaBq|MJVHKYlD^lb$_uj{l}zGt!Eywc~4lNB{hiZa4Yz;l(DtlllAkuE#Qc z{dLCfRf)0J#JH_q>+_8CPJg*&X8%{%e&YN;o$}V+v9&udpPe3d^~qWNnuqH3pO^pN zyT9y-zBIUOO#g8I&+_`kf3NL+|K$DOTkF%Z^X=n*A2Xl4$RpC^W$9^=TqC*s6szde zjZtaE)z+JD>YUx=ciZIU_g|6groAk!er@@6ncw=|emVDV-8=E{^5L8w_nqa>^XAFc z&4}Kf_f&ZOo>}*69{=~beC6d=>y@|F^zT-y`t$pLT0H-MaOP{X#}D0}b!Vn+&U{rh zb<=In_4Yo?&Ha`KrzGF-o|rYa>i)X?W%HkZ*?xZV>;3PqzO&-^(E9khd>F$I$Jb2% zH!vOee*eS%2!@RR4LAQkXKnCX{(0lI|6gy%{nh2YOm(*G;IwAO!J zo*w`6l=R~LU#9>6`||ysuVrDY%?`iQnA}~NcX!v+mo?L#7R~%uFym#(ysMi|7KJ`d z_^;4@-2d|Huff+tUoG?79v!##@#@R3zg~K~_V(%Y&6&II=HugL9)T=bzhTc<j>)!j+@^bUfKW*II-78Nf@k zzEDpW$B_5wRfcEJor}wpzjI>q=gU``>&mv97yr8V`((~M$1a}JX40vjGtw<8J||Sa zK09~qS@UCu|4ILUdi~zKpV=%70SpZP;=g=dU-!}f-`@CNU)R_F&CY*1JHA@m_42c4 zXWyP#CT?l@%V4gb`guRU%dh!^Lrc${I~Tm&bM}(!+M6RxCHsF#_PWhH|2+KVr`%hs zkKfr{tuAj@H*3?Ib>%m{pXxC;FRCe-bhh{Ho40SCJ-M0Kwd~xcs3pEZC6iny=g8)y z6&ZRif2CSF+y3Ls^G`oMJ|3wjW@%w@;@B}az2)LB%XVAZSnjhr5q|Ub?bFXP<{UnJ zcu&dqxM!bJ#a5@5Z7<)nd;j#OH4`r$v+xa#mrt7o;_zOl6RbIo#9thSvm7$%A~Wsyp~2*zI;oT5CcRyIHzy}QbyHMIO||*=__|c1 z`VaTQ+a~{<-F)@c*{eTq+W&fb^O0?RCIbT(!vXo=_`g&4|5pG1egAL!T>H9D_fDp4 zwW%zsFsc3W;^dC&^6zXbiwf7#;}aUXv-*3UoNe8l$(tvC*){jdS1XNt1BsNaGnPkBi8L*3 zd)#|w`e~UrZ&Uvt>$R!*|MyPq%cWbwb3d8q-SOD8Z|i&?HA_32Q#pqIv&?qy-fel~ zu6Lk_ByZczo40+pzj^ZEhsM`cr#3}BO~|+RpI0}-asB+=`gc!1yqvDNd#*@skm>7l z9jkJU_U<@SVRP=Y7zrck|3sBcFB0|4HgvbV7Umo=GoL zCSAUKc}nWc)0;nsLk{r|h;MXs=ei`VW)#kcpa z{rgwCJnzn~;^b{ncWd77=Fj(8e);y~o3GNg&z`;8oXvcj8Qb>d-7me@@BMW$`nbFJ z&uh2)FTLjt+L~&%y}a1a(!a`e)-$aIc~_sDTYKBm-qv@M-+}mRp{Ev|`S#Aw&)+X- z$%zb`6GdkJ>o1>OwJJ#U<=5Yq78V|XB9&iW1m@k_Gc*1Cywv1m<-PZ;E+-TfR?cnN zzbZ^~Q{K<}w{M-RvGd=5`RuoQd3K*q`agZW|L@rx9(PMi`_l*C#pT`EH?{r!-uY|q z&XsxdE;VrNq+OmjUq9RX{od)UtzPS|pFTU=+*pRMxU6j2%cH5cHhJugd0J$4w!+}d zzq8Vky>8c!HhxT)vCYryc=Sxa<(77K=W-1F*Iz&VSlvIUY|@mwe_qzVjX&93e*f&b zcVY8n=cX9#Jn`~n<*Hp?>u-B6zwEtvRglQhuivBBuL{YX`l<3q()!s?i{|ah4Vw0P zN~?*d`Q6avZ)(3^JH7pWZPlMAccsn0?JutR@n(Bl>Q8^abK=)NFfwQ`F#LJ=Z}t9v z&+9*xT>N7_ef7E5_bYx^uiyXcz$8tlFCwc3P|YcJ$6Yd-iZ0luogbN!uBdR$p)5 zFK>TtRa9z)={5ryzRmmh&tI1L>Bq;%s}=Ts&DxW* z9D5vcI+Sg3;~U0m6JA3=}wSP93M#OK| z2{z3wE8DitjML=ity_`ezGADF=oHsfO$!Z8z3@KWLPqVZyEIGM=Ezr7Q?0+hv$Nf8 zQG4P2_xrlL@3K#y{JA{7_U+d4{h!ZS^LH)#5w~}h*7-0{7pTEL$o_lyzq=2&*MFZ| zy*=;Vj{m2;_3!_GX1>4j|A!AB{+(@Z{(b+)D|5Tw%J!dj_NvRRo-4 zW5zk-prY1mTQ%&zIvJ8c8%iy!ShcYZs!jc zaeel=^4qs>MzeK|=K8MRZlH2yo@xGtY`;-d4+<^l`=fWuAHW_s#77{CUkS zwcN;*J)5__m^PRH*0x%M`Df%sTt6lh7k@rjVpUu4{@&dD`ln~t&#!(4NrD?c<^TCP z|L*T|*6;7yTUqVgA9eM6_1%MiUzU{B7Z?BjcdXz`=h2){XG#oD>0kNy|foGY<9 z`}gU%`R+n#@;cq+(6Av#x|LN3f{ikoe z8R8n~WB32(dHwXyKffGoX766RcJ0rst+PTyx2}0zb;-o{>ih5dzYaUrR#w*Si!#g2 zzhe8AA5^4T*jia-rEk9ZbM9^P*OMnt?vCD`7qa+YLeY;mH#fg5`E~bYs&)-Os58@` z^7C~4)8~0tO83T!xQcbB+Wq-(c#Et0;fDsLvCkhRO}gT1=Jr_SWR2PBq@8C#CvO!N zPVDaP))DKj`L=of*@Fii&z(EBY3tU>i-MPBbj!%fr&n28TiV&4eE03#&F%aD%5Hzh oFbYOPU^E0qLjZ3G{0aQMpK(emyLVLRu8Sa*p00i_>zopr0KGuHPXGV_ literal 0 HcmV?d00001 diff --git a/spec/web/site/assets/lib/.placeholder b/spec/web/site/assets/lib/.placeholder new file mode 100644 index 00000000..e69de29b diff --git a/spec/web/site/default.nix b/spec/web/site/default.nix new file mode 100644 index 00000000..fce8bcfb --- /dev/null +++ b/spec/web/site/default.nix @@ -0,0 +1,80 @@ +{ lib +, stdenvNoCC +, ruby +, bundler +, libffi +, gcc +, writeShellScriptBin +, fetchFromGitHub }: let + name = "website"; + version = "20240114"; + + assets = fetchFromGitHub { + name = "${name}-assets"; + owner = "cotes2020"; + repo = "chirpy-static-assets"; + rev = "c577249"; + hash = "sha256-Uxe7PMNwzKUN2b77QbjWLxEtOOLodPOyeMuUM1eKdlc="; + }; + + vendor = stdenvNoCC.mkDerivation { + pname = "${name}-vendor"; + inherit version; + src = ./.; + + nativeBuildInputs = [ bundler ]; + + buildPhase = '' + export HOME="$(mktemp -d)" + bundle config set --local path "$out" + bundler package --no-install + ''; + + installPhase = '' + cp Gemfile* $out + ''; + + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + outputHash = "sha256-ql0Rf1annFrlhaPF/s96xPTNsSjQbM44SCBmE53DaEY="; + }; + + deps = stdenvNoCC.mkDerivation { + pname = "${name}-deps"; + inherit version; + src = vendor; + + buildInputs = [ ruby libffi gcc ]; + + nativeBuildInputs = [ bundler ]; + + buildPhase = '' + export HOME="$(mktemp -d)" + bundle config set --local path "$out" + mkdir -p "vendor" + mv ruby/*/cache "vendor/" + bundle install --local + ''; + }; +in stdenvNoCC.mkDerivation { + pname = name; + inherit version; + src = ./.; + + buildInputs = [ ruby libffi gcc ]; + + nativeBuildInputs = [ (writeShellScriptBin "git" "true") bundler ]; + + configurePhase = '' + export HOME="$(mktemp -d)" + bundle config set --local path "${deps}" + + cp -r ${assets}/. assets/lib/ + ''; + + buildPhase = "JEKYLL_ENV=production bundle exec jekyll build"; + + installPhase = '' + cp -r _site "$out" + ''; +} diff --git a/spec/web/site/index.html b/spec/web/site/index.html new file mode 100644 index 00000000..e4d427d2 --- /dev/null +++ b/spec/web/site/index.html @@ -0,0 +1,3 @@ +--- +layout: home +--- From f4bf1829056057dafc550aec3b8133df4b47fb52 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 15 Jan 2024 15:57:25 +0800 Subject: [PATCH 088/447] global(acme): add acme defaults --- global/acme/default.nix | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 global/acme/default.nix diff --git a/global/acme/default.nix b/global/acme/default.nix new file mode 100644 index 00000000..dacf367e --- /dev/null +++ b/global/acme/default.nix @@ -0,0 +1,20 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.global.acme; +in { + options.global.acme = { + enable = mkEnableOption "ACME SSL certificates"; + }; + + config = mkIf cfg.enable { + security.acme = { + acceptTerms = true; + defaults.email = mkDefault "koishi@514fpv.one"; + defaults.group = config.services.nginx.group; + }; + + environment.persistence."/nix/persist/fhs".directories = [ "/var/lib/acme" ]; + }; +} From a72a864ca09eab3ad70b508824b6d25eaf700fbc Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 15 Jan 2024 15:57:40 +0800 Subject: [PATCH 089/447] spec(web): enable acme --- spec/web/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/web/default.nix b/spec/web/default.nix index 8eb83f80..db890e35 100644 --- a/spec/web/default.nix +++ b/spec/web/default.nix @@ -8,6 +8,7 @@ fs.type = "xfs"; fs.store = "8476f738-b83b-4736-abd7-08a1943cf60a"; lowmem.enable = true; + acme.enable = true; }; imports = lib.pipe ./. [ From 30f1195ee24c5f68856cbc298ad78f73a48da93b Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 15 Jan 2024 16:56:47 +0800 Subject: [PATCH 090/447] spec(web): add nginx configuration --- spec/web/nginx.nix | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 spec/web/nginx.nix diff --git a/spec/web/nginx.nix b/spec/web/nginx.nix new file mode 100644 index 00000000..7cf9cb86 --- /dev/null +++ b/spec/web/nginx.nix @@ -0,0 +1,27 @@ +{ pkgs +, ...}: { + services.nginx = { + enable = true; + + # enable all recommended settings + recommendedTlsSettings = true; + recommendedOptimisation = true; + recommendedGzipSettings = true; + recommendedProxySettings = true; + + virtualHosts = { + "_" = { + rejectSSL = true; + extraConfig = "return 444;"; + }; + + "514fpv.one" = { + root = pkgs.callPackage ./site { }; + forceSSL = true; + enableACME = true; + }; + }; + }; + + networking.firewall.allowedTCPPorts = [ 80 443 ]; +} From 6f93cf9caca52ac9433d0543b01c9c952914af3d Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 15 Jan 2024 17:06:11 +0800 Subject: [PATCH 091/447] spec(web): post: BLHeli32 ESC Startup Music --- .../site/_posts/2023-04-22-startup-music.md | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 spec/web/site/_posts/2023-04-22-startup-music.md diff --git a/spec/web/site/_posts/2023-04-22-startup-music.md b/spec/web/site/_posts/2023-04-22-startup-music.md new file mode 100644 index 00000000..78d17d23 --- /dev/null +++ b/spec/web/site/_posts/2023-04-22-startup-music.md @@ -0,0 +1,34 @@ +--- +title: "BLHeli32 ESC Startup Music" +date: "2023-04-22 23:05:14 +0800" +categories: [ "Multirotor", "Hardware" ] +tags: [ "music", "propulsion", "blheli32" ] +pin: true +--- +This post details how to replicate my quadcopter ESC startup music. Note that a BLHeli32 ESC or one with compatible music functionality is required. + +Turn on music for all four ESCs, and set `Gen. Length` to 11, `Gen. Interval` to 0. In the `All ESC together` section, make sure the checkboxes for `Show 1/X for length`, `Show Space` and `Play 1 Octave lower` are all set to enable. + +Then, set the music data as follows. + +``` +A5 1/4 G5 1/4 A5 1/4 E5 1/4 C5 1/4 B4 1/4 C5 1/4 A4 1/8 B4 1/8 A4 1/2 A5 1/2 G5 1/2 E5 1/2 A5 1/4 B5 1/4 C6 1/4 E6 1/4 C6 1/4 B5 1/4 G5 1/4 B4 1/4 A4 1/2 B4 1/2 C5 1/2 P1/2 P1/1 P1/1 P1/1 P1/1 P1/1 P1/1 P1/1 P1/1 +``` +{: file='ESC#1'} + +``` +P1/1 P1/1 C5 1/2 C6 1/2 B5 1/2 G5 1/2 P1/1 P1/1 C5 1/2 G5 1/2 A5 1/2 P1/2 P1/1 P1/1 P1/1 P1/1 P1/1 P1/1 P1/1 P1/1 +``` +{: file='ESC#2'} + +``` +P1/1 P1/1 P1/1 P1/1 P1/1 P1/1 P1/1 P1/2 E5 1/4 G5 1/4 A5 1/4 G5 1/4 A5 1/4 B5 1/4 C6 1/4 B5 1/4 D6 1/4 B5 1/4 A5 1/4 G5 1/4 E5 1/4 E5 1/4 A4 1/2 G4 1/2 A4 1/4 B4 1/4 C5 1/4 E5 1/4 C5 1/4 E5 1/4 C5 1/4 B4 1/4 E4 1/4 E4 1/4 C4 1/4 E4 1/4 C4 1/2 D4 1/2 +``` +{: file='ESC#3'} + +``` +P1/1 P1/1 P1/1 P1/1 P1/1 P1/1 P1/1 P1/2 P1/2 P1/1 P1/1 C6 1/4 B5 1/4 A5 1/4 G5 1/4 C5 1/2 B4 1/2 P1/1 P1/1 A4 1/4 G4 1/4 E4 1/4 G4 1/4 A4 1/2 B4 1/2 +``` +{: file='ESC#4'} + + From 713314539505945533ef7564656d4ff04fa54655 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 15 Jan 2024 17:13:03 +0800 Subject: [PATCH 092/447] spec(library): enable acme --- spec/library/acme.nix | 21 +++++++-------------- spec/library/default.nix | 1 + 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/spec/library/acme.nix b/spec/library/acme.nix index 82a71ff9..7fec425c 100644 --- a/spec/library/acme.nix +++ b/spec/library/acme.nix @@ -1,18 +1,11 @@ { - security.acme = { - acceptTerms = true; - defaults.email = "koishi@514fpv.one"; - defaults.group = "nginx"; - certs = let - cloudflare = { - dnsProvider = "cloudflare"; - credentialsFile = "/nix/persist/secret/cloudflare"; - }; - in { - "514fpv.io" = cloudflare; - ".514fpv.io" = cloudflare // { domain = "*.514fpv.io"; }; + security.acme.certs = let + cloudflare = { + dnsProvider = "cloudflare"; + credentialsFile = "/nix/persist/secret/cloudflare"; }; + in { + "514fpv.io" = cloudflare; + ".514fpv.io" = cloudflare // { domain = "*.514fpv.io"; }; }; - - environment.persistence."/nix/persist/fhs".directories = [ "/var/lib/acme" ]; } diff --git a/spec/library/default.nix b/spec/library/default.nix index 63c4fb6a..aa0147d2 100644 --- a/spec/library/default.nix +++ b/spec/library/default.nix @@ -13,6 +13,7 @@ fs.extPersist.device = "/dev/disk/by-uuid/ba3d0989-9f81-4ac0-b5a7-124c86835cfa"; fs.extPersist.fsType = "ext4"; oci.enable = true; + acme.enable = true; }; networking.proxy = { From 27a728a4fa6b20e9307c7b01fa5cd2fa18fe45ea Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 15 Jan 2024 17:15:39 +0800 Subject: [PATCH 093/447] spec(web): about: open gitea links in blank pages and improve wording of prompt tip --- spec/web/site/_tabs/about.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/spec/web/site/_tabs/about.md b/spec/web/site/_tabs/about.md index 73e1cd5c..2f30913e 100644 --- a/spec/web/site/_tabs/about.md +++ b/spec/web/site/_tabs/about.md @@ -4,11 +4,11 @@ order: 4 --- I fly multirotor aircraft, with a focus on cinematic and long range FPV cruising. -I also write software, and I self host [almost everything](https://src.514fpv.io:2096/koishi/nixos/src/branch/master/spec/library) I use online, including the [website](https://src.514fpv.io:2096/koishi/nixos/src/branch/master/spec/web/site) you're currently visiting. +I also write software, and I self host [almost everything](https://src.514fpv.io:2096/koishi/nixos/src/branch/master/spec/library){:target="_blank"} I use online, including the [website](https://src.514fpv.io:2096/koishi/nixos/src/branch/master/spec/web/site){:target="_blank"} you're currently visiting. If you find what I do interesting, feel free to drop by and say hi, I would really appreciate that. -> I can read and write Simplified Chinese. If you prefer conversing with me in Chinese, feel free to do so without the overhead of a translation software. +> I can read and write Simplified Chinese. If you prefer to converse with me in Chinese, feel free to do so without the overhead of translation software. > -> 我会读写简体中文。如果您喜欢用中文与我交谈,请随意,无需翻译软件。 +> 我会读写简体中文。如果您喜欢用中文与我交流,请随时与我联系,无需使用翻译软件。 {: .prompt-tip } From 1035546b00738c06976441085afc813e57bb2354 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 15 Jan 2024 17:44:39 +0800 Subject: [PATCH 094/447] flake: bump inputs --- flake.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/flake.lock b/flake.lock index bbefac69..c0148017 100644 --- a/flake.lock +++ b/flake.lock @@ -95,11 +95,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1701680307, - "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", + "lastModified": 1705309234, + "narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=", "owner": "numtide", "repo": "flake-utils", - "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", + "rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26", "type": "github" }, "original": { @@ -155,11 +155,11 @@ ] }, "locked": { - "lastModified": 1705104164, - "narHash": "sha256-pllCu3Hcm1wP/B0SUxgUXvHeEd4w8s2aVrEQRdIL1yo=", + "lastModified": 1705269478, + "narHash": "sha256-j7Rp8Y3ckBHOlIzqe0g2+/BVce9SU/dVtn4Eb0rMuY4=", "owner": "nix-community", "repo": "home-manager", - "rev": "0912d26b30332ae6a90e1b321ff88e80492127dd", + "rev": "846200eb574faa2af808ed02e653c2b8ed51fd71", "type": "github" }, "original": { @@ -213,11 +213,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1704722960, - "narHash": "sha256-mKGJ3sPsT6//s+Knglai5YflJUF2DGj7Ai6Ynopz0kI=", + "lastModified": 1705133751, + "narHash": "sha256-rCIsyE80jgiOU78gCWN3A0wE0tR2GI5nH6MlS+HaaSQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "317484b1ead87b9c1b8ac5261a8d2dd748a0492d", + "rev": "9b19f5e77dd906cb52dade0b7bd280339d2a1f3d", "type": "github" }, "original": { From 64f9b82c52aa20fb8acb594e50b9c466bb952908 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 15 Jan 2024 18:57:35 +0800 Subject: [PATCH 095/447] home(util): add BLHeliSuite32 desktop item and icon from MacOS app --- home/util/package/blheli32.nix | 54 +++++++++++++++++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/home/util/package/blheli32.nix b/home/util/package/blheli32.nix index e93274ab..18656550 100644 --- a/home/util/package/blheli32.nix +++ b/home/util/package/blheli32.nix @@ -1,14 +1,19 @@ { lib +, libicns +, p7zip , fetchzip +, stdenvNoCC +, makeDesktopItem , buildFHSUserEnv }: let name = "BLHeliSuite32"; pname = "blhelisuite32"; workdir = "/tmp/${pname}"; version = "32.10"; + suffix = "1044"; dist = fetchzip { name = "${pname}-dist"; - url = "https://github.com/bitdump/BLHeli/releases/download/Rev${version}/${name}xLinux64_1044.zip"; + url = "https://github.com/bitdump/BLHeli/releases/download/Rev${version}/${name}xLinux64_${suffix}.zip"; hash = "sha256-lempCne+Sf/38WHfJHRdL6MspSpi+UhpZNFcsPgI0jw="; postFetch = '' @@ -17,6 +22,40 @@ ln -s ${workdir}/music $out/Music ''; }; + + desktopItem = makeDesktopItem { + name = pname; + exec = pname; + icon = pname; + comment = "This Application may flash and configure BLHeli_32 based ESCs"; + desktopName = name; + genericName = "BLHeli for brushless ESC firmware"; + }; + + icons = stdenvNoCC.mkDerivation { + pname = "${pname}-icons"; + inherit version; + src = fetchzip { + name = "${pname}-macos"; + url = "https://github.com/bitdump/BLHeli/releases/download/Rev${version}/${name}xm_MacOS64_${suffix}.zip"; + hash = "sha256-StRnrVI8p51vNsTMO1LtaZvENbG7XZ1V/mKHe4pO7kU="; + }; + + nativeBuildInputs = [ libicns p7zip ]; + + configurePhase = '' + 7z x *.dmg + ''; + + buildPhase = '' + icns2png -x ${name}xm_MacOS64_${suffix}/${name}xm.app/Contents/Resources/${name}xm.icns + ''; + + installPhase = '' + mkdir -p "$out" + cp -r ${name}*.png "$out" + ''; + }; in buildFHSUserEnv { inherit pname; targetPkgs = pkgs: (with pkgs; [ @@ -24,6 +63,19 @@ in buildFHSUserEnv { libgcc gtk3 zlib systemdLibs ]); + extraInstallCommands = let + mkIconScale = scale: + "install -m 444 -D ${icons}/${name}xm_${scale}x${scale}x32.png $out/share/icons/hicolor/${scale}x${scale}/apps/${pname}.png"; + in '' + ${mkIconScale "16"} + ${mkIconScale "32"} + ${mkIconScale "64"} + ${mkIconScale "128"} + ${mkIconScale "256"} + ${mkIconScale "512"} + ${mkIconScale "1024"} + cp -r ${desktopItem}/share/applications $out/share/ + ''; runScript = "sh -c '" + "mkdir -p ${workdir}/settings && " + From eecc4911d30cde62e1f253f375f932c7e202d384 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 15 Jan 2024 19:02:18 +0800 Subject: [PATCH 096/447] spec(chireiden): change default frequency governor to powersave --- spec/chireiden/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/chireiden/default.nix b/spec/chireiden/default.nix index 3a4265bb..d3068a84 100644 --- a/spec/chireiden/default.nix +++ b/spec/chireiden/default.nix @@ -23,7 +23,7 @@ }; powerManagement.enable = true; - powerManagement.cpuFreqGovernor = "performance"; + powerManagement.cpuFreqGovernor = "powersave"; hardware.nvidia.prime = { intelBusId = "PCI:0:2:0"; From 67c28e74afbcf4557667e80464750ffa2639ab65 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 15 Jan 2024 22:22:30 +0800 Subject: [PATCH 097/447] package: migrate gyroflow, expresslrs-configurator and blhelisuite32 --- home/gyroflow/home.nix | 5 +---- home/util/home.nix | 4 ++-- .../blhelisuite32/default.nix | 0 package/default.nix | 13 +++++++++++++ .../expresslrs-configurator/default.nix | 0 package/gyroflow/args.nix | 4 ++++ .../package => package/gyroflow}/crash-dump.patch | 0 .../package => package/gyroflow}/default.nix | 0 .../package => package/gyroflow}/mdk-log.patch | 0 spec/default.nix | 1 + 10 files changed, 21 insertions(+), 6 deletions(-) rename home/util/package/blheli32.nix => package/blhelisuite32/default.nix (100%) create mode 100644 package/default.nix rename home/util/package/expresslrs.nix => package/expresslrs-configurator/default.nix (100%) create mode 100644 package/gyroflow/args.nix rename {home/gyroflow/package => package/gyroflow}/crash-dump.patch (100%) rename {home/gyroflow/package => package/gyroflow}/default.nix (100%) rename {home/gyroflow/package => package/gyroflow}/mdk-log.patch (100%) diff --git a/home/gyroflow/home.nix b/home/gyroflow/home.nix index a0e708a1..afdb7ee4 100644 --- a/home/gyroflow/home.nix +++ b/home/gyroflow/home.nix @@ -4,8 +4,5 @@ , ... }: with lib; let cfg = config.passthrough.gyroflow; in mkIf cfg.enable { - home.packages = with pkgs; [ (pkgs.callPackage ./package { - inherit (pkgs.qt6) wrapQtAppsHook qmake - qtbase qtsvg qtwayland qtvirtualkeyboard qtdeclarative; - }) ]; + home.packages = with pkgs; [ gyroflow ]; } diff --git a/home/util/home.nix b/home/util/home.nix index fe8f690a..7daeddf5 100644 --- a/home/util/home.nix +++ b/home/util/home.nix @@ -15,7 +15,7 @@ betaflight-configurator inav-configurator inav-blackbox-tools - (pkgs.callPackage ./package/blheli32.nix { }) - (pkgs.callPackage ./package/expresslrs.nix { }) + blhelisuite32 + expresslrs-configurator ]; } diff --git a/home/util/package/blheli32.nix b/package/blhelisuite32/default.nix similarity index 100% rename from home/util/package/blheli32.nix rename to package/blhelisuite32/default.nix diff --git a/package/default.nix b/package/default.nix new file mode 100644 index 00000000..38b64d27 --- /dev/null +++ b/package/default.nix @@ -0,0 +1,13 @@ +{ lib, ... }: { + nixpkgs.overlays = [ (final: prev: + builtins.listToAttrs (map (pkg: { + name = pkg; + value = let + argsPath = ./${pkg}/args.nix; + in final.callPackage ./${pkg} + (if (builtins.pathExists argsPath) then + (import argsPath final) + else { }); + }) (builtins.attrNames (builtins.readDir ./.))) + ) ]; +} diff --git a/home/util/package/expresslrs.nix b/package/expresslrs-configurator/default.nix similarity index 100% rename from home/util/package/expresslrs.nix rename to package/expresslrs-configurator/default.nix diff --git a/package/gyroflow/args.nix b/package/gyroflow/args.nix new file mode 100644 index 00000000..cfbddb63 --- /dev/null +++ b/package/gyroflow/args.nix @@ -0,0 +1,4 @@ +pkgs: { + inherit (pkgs.qt6) wrapQtAppsHook qmake + qtbase qtsvg qtwayland qtvirtualkeyboard qtdeclarative; +} diff --git a/home/gyroflow/package/crash-dump.patch b/package/gyroflow/crash-dump.patch similarity index 100% rename from home/gyroflow/package/crash-dump.patch rename to package/gyroflow/crash-dump.patch diff --git a/home/gyroflow/package/default.nix b/package/gyroflow/default.nix similarity index 100% rename from home/gyroflow/package/default.nix rename to package/gyroflow/default.nix diff --git a/home/gyroflow/package/mdk-log.patch b/package/gyroflow/mdk-log.patch similarity index 100% rename from home/gyroflow/package/mdk-log.patch rename to package/gyroflow/mdk-log.patch diff --git a/spec/default.nix b/spec/default.nix index 67555689..fe88c033 100644 --- a/spec/default.nix +++ b/spec/default.nix @@ -7,6 +7,7 @@ ../global ../home/profile.nix ../home/user.nix + ../package ./constant.nix ./channel.nix impermanence.nixosModules.impermanence From 6fca99d6aebbe18a79d9dfe7caf9a7ec783a515e Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 15 Jan 2024 22:29:23 +0800 Subject: [PATCH 098/447] package: deprecate home-grown gyroflow package in favour of nixpkgs --- package/gyroflow/args.nix | 4 - package/gyroflow/crash-dump.patch | 27 ---- package/gyroflow/default.nix | 245 ------------------------------ package/gyroflow/mdk-log.patch | 13 -- 4 files changed, 289 deletions(-) delete mode 100644 package/gyroflow/args.nix delete mode 100644 package/gyroflow/crash-dump.patch delete mode 100644 package/gyroflow/default.nix delete mode 100644 package/gyroflow/mdk-log.patch diff --git a/package/gyroflow/args.nix b/package/gyroflow/args.nix deleted file mode 100644 index cfbddb63..00000000 --- a/package/gyroflow/args.nix +++ /dev/null @@ -1,4 +0,0 @@ -pkgs: { - inherit (pkgs.qt6) wrapQtAppsHook qmake - qtbase qtsvg qtwayland qtvirtualkeyboard qtdeclarative; -} diff --git a/package/gyroflow/crash-dump.patch b/package/gyroflow/crash-dump.patch deleted file mode 100644 index bc953294..00000000 --- a/package/gyroflow/crash-dump.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff --git a/src/util.rs b/src/util.rs -index 1d58ffb8..afee58d4 100644 ---- a/src/util.rs -+++ b/src/util.rs -@@ -302,22 +302,6 @@ pub fn install_crash_handler() -> std::io::Result<()> { - } - } - -- // Upload crash dumps -- crate::core::run_threaded(move || { -- if let Ok(files) = std::fs::read_dir(cur_dir) { -- for path in files.flatten() { -- let path = path.path(); -- if path.to_string_lossy().ends_with(".dmp") { -- if let Ok(content) = std::fs::read(&path) { -- if let Ok(Ok(body)) = ureq::post("https://api.gyroflow.xyz/upload_dump").set("Content-Type", "application/octet-stream").send_bytes(&content).map(|x| x.into_string()) { -- ::log::debug!("Minidump uploaded: {}", body.as_str()); -- let _ = std::fs::remove_file(path); -- } -- } -- } -- } -- } -- }); - Ok(()) - } - diff --git a/package/gyroflow/default.nix b/package/gyroflow/default.nix deleted file mode 100644 index c20d7633..00000000 --- a/package/gyroflow/default.nix +++ /dev/null @@ -1,245 +0,0 @@ -{ lib -, stdenv -, stdenvNoCC -, symlinkJoin -, fetchurl -, fetchpatch -, fetchFromGitHub -, writeShellScript -, writeShellScriptBin -, makeDesktopItem -, fetchzip -, rustPlatform -, alsaLib -, libpulseaudio -, ffmpeg -, libclang -, xorg -, wayland -, glfw -, libva -, mesa -, libdrm -, xz -, zlib -, ocl-icd -, opencv -, qtbase -, qtsvg -, qtwayland -, qtvirtualkeyboard -, qtdeclarative -, qmake -, clang -, imagemagick -, wrapQtAppsHook -, autoPatchelfHook -, pkg-config }: let - name = "gyroflow"; - version = "1.5.4"; - - src-unpatched = fetchFromGitHub { - name = "${name}-src-unpatched"; - owner = name; - repo = name; - rev = "v${version}"; - hash = "sha256-Pdqe8T03KpO3ApOjm/z7gd5waQOvEZBHcvdrLyot4O8="; - }; - - mdk-sdk = stdenvNoCC.mkDerivation rec { - pname = "mdk-sdk"; - version = "20240110111804"; - src = fetchzip { - name = "mdk-sdk"; - # unfortunately the only way to pin the version - url = "https://web.archive.org/web/${version}if_/https://master.dl.sourceforge.net/project/mdk-sdk/mdk-sdk-linux.tar.xz?viasf=1"; - hash = "sha256-Jtdp0YKVOK5+0xBigezB2Oatsr00gAgJuCZlbzpZPHk="; - }; - - buildInputs = [ - stdenv.cc.cc.lib - alsaLib libpulseaudio - glfw libdrm mesa - xz wayland xorg.libX11 - ]; - - nativeBuildInputs = [ autoPatchelfHook ]; - - installPhase = '' - cp -r . "$out" - ''; - }; - - gyroflow-unwrapped = rustPlatform.buildRustPackage rec { - pname = "gyroflow-unwrapped"; - inherit version; - cargoHash = "sha256-KkGXKoVRZZ7HUTtWYBerrN36a7RqsHjYQb+bwG1JagY="; - cargoLock = { - outputHashes = { - "ahrs-0.6.0" = "sha256-CxWyX8t+BjqIyNj1p1LdkCmNrtJkudmKgZPv0MVcghY="; - "akaze-0.7.0" = "sha256-KkGXKoVRZZ7HUTtWYBerrN36a7RqsHjYQb+bwG1JagY="; - "d3d12-0.7.0" = "sha256-0b/LozKVPm+UQTO066s5uoebRxEWoC0V8T7a6e0z9YE="; - "fc-blackbox-0.2.0" = "sha256-gL8m9DpHJPVD8vvrmuYv+biJT4PA5LmtohJwFVO+khU="; - "glow-0.13.0" = "sha256-vhPWzsm7NZx9JiRZcVoUslTGySQbASRh/wNlo1nK5jg="; - "keep-awake-0.1.0" = "sha256-EoXhK4/Aij70f73+5NBUoCXqZISG1+n2eVavNqe8mq4="; - "nshare-0.9.0" = "sha256-PAV41mMLDmhkAz4+qyf+MZnYTAdMwjk83+f+RdaJji8="; - "qmetaobject-0.2.10" = "sha256-ldmpbOYoCOaAoipfcCSwuV+fzF9gg1PTbRz2Jm4zJvA="; - "qml-video-rs-0.1.0" = "sha256-yvA+Je50rF6SgTxDQuDPgyM2MgtD4AAV9uGnAj/ecf4="; - "rs-sync-0.1.0" = "sha256-sfym7zv5SUitopqNJ6uFP6AMzAGf4Y7U0dzXAKlvuGA="; - "simplelog-0.12.0" = "sha256-NvmtLbzahSw1WMS3LY+jWiX4SxfSRwidTMvICGcmDO4="; - "system_shutdown-4.0.1" = "sha256-arJWmEjDdaig/oAfwSolVmk9s1UovrQ5LNUgTpUvoOQ="; - "telemetry-parser-0.2.8" = "sha256-J4eHCojoGKKbqVKHkyQjxXbfrYsyYn7DR7ZdogbOQK4="; - }; - - lockFile = "${src}/Cargo.lock"; - }; - - # breaks some build.rs - dontCargoCheck = true; - - src = stdenvNoCC.mkDerivation { - name = "${name}-src"; - inherit version; - phases = [ "unpackPhase" "patchPhase" "installPhase" ]; - installPhase = '' - cp -r . "$out" - ''; - patches = [ - (fetchpatch { - name = "fix-ffmpeg.patch"; - url = "https://github.com/gyroflow/gyroflow/compare/v1.5.4...cdca1ee.patch"; - hash = "sha256-kEjKlFSa02sa2NvFyoFl1EWL4TuLeFsmYOY0/dYykrg="; - }) - ./crash-dump.patch - ./mdk-log.patch - ]; - src = src-unpatched; - }; - - buildInputs = [ - alsaLib - ffmpeg - libclang - ocl-icd - opencv - zlib.static - qtdeclarative - wrapQtAppsHook - ]; - - nativeBuildInputs = [ pkg-config qmake clang ] ++ [ - # build.rs abuses qt path variables to get path to qmlcachegen - # it fails and falls back to calling qmlcachegen directly which doesn't work - # since it's in libexec, this derivation provides a wrapper to make it work - (writeShellScriptBin "qmlcachegen" '' - exec "${qtdeclarative}/libexec/qmlcachegen" "$@" - '') - ]; - - # build error debugging - RUST_BACKTRACE="full"; - # build script cannot find libclang - LIBCLANG_PATH="${libclang.lib}/lib"; - # proprietary mdk-sdk library has to be patched - MDK_SDK="${mdk-sdk}/"; - # compiler cannot find these for some reason - CPLUS_INCLUDE_PATH=lib.concatImapStrings (i: path: - (if i != 1 then ":" else "") + - "${qtdeclarative}/include/${path}") [ - "QtQuick" - "QtQuick/${qtdeclarative.version}" - "QtQuick/${qtdeclarative.version}/QtQuick" - "QtQml" - "QtQml/${qtdeclarative.version}" - "QtQml/${qtdeclarative.version}/QtQml" - "QtQuickControls2" - "QtQuickControls2/${qtdeclarative.version}" - "QtQuickControls2/${qtdeclarative.version}/QtQuickControls2" - ]; - # build.rs relies on these variables to point to deps - # instead of discovering them properly - OPENCV_LINK_PATHS="${opencv}"; - OPENCV_LINK_LIBS=lib.concatImapStrings (i: opt: - (if i != 1 then "," else "") + opt) [ - "opencv_core" - "opencv_calib3d" - "opencv_features2d" - "opencv_imgproc" - "opencv_video" - "opencv_flann" - "opencv_dnn" - "opencv_imgcodecs" - "opencv_objdetect" - "opencv_stitching" - "png" - ]; - FFMPEG_DIR="${ffmpeg.dev}"; - - installPhase = '' - mkdir -p "$out" - cp -f "target/x86_64-unknown-linux-gnu/release/gyroflow" "$out/" - strip "$out/gyroflow" - cp -rf "${lens-profiles}" "$out/camera_presets" - ''; - }; - - lens-profiles = fetchFromGitHub { - name = "gyroflow-lens-profiles"; - owner = name; - repo = "lens_profiles"; - rev = "3e72169ae6b8601260497d7216d5fcbbc8b67194"; - hash = "sha256-18KtunSxTsJhBge+uOGBcNZRG3W26M/Osyxllu+N0UI="; - }; - - gyroflow-qt-runtime = symlinkJoin { - name = "gyroflow-qt-runtime"; - paths = [ - qtbase - qtsvg - qtwayland - qtdeclarative - qtvirtualkeyboard - ]; - }; - - desktopItem = makeDesktopItem { - inherit name; - exec = name; - icon = name; - comment = '' - Advanced gyro-based video stabilization tool for cinematography, drone videography and much more! - ''; - desktopName = "Gyroflow"; - genericName = "Video stabilization tool"; - }; -in stdenvNoCC.mkDerivation { - pname = name; - inherit version; - phases = [ "unpackPhase" "patchPhase" "installPhase" ]; - src = src-unpatched; - - nativeBuildInputs = [ imagemagick ]; - - installPhase = '' - mkdir -p "$out/bin" - - convert resources/icon.png -resize 128x128 icon-128.png - install -m 444 -D icon-128.png $out/share/icons/hicolor/128x128/apps/${name}.png - cp -r ${desktopItem}/share/applications $out/share/ - - # mdk-sdk reads program name as part of its license check - # therefore a custom wrapper that preserves the gyroflow name is required - cp ${writeShellScript "gyroflow-wrapper" '' - export QT_PLUGIN_PATH=${gyroflow-qt-runtime}/lib/qt-6/plugins - export QML2_IMPORT_PATH=${qtdeclarative}/lib/qt-6/qml - - # does not find drivers without this - export LD_LIBRARY_PATH="/run/opengl-driver/lib:/run/opengl-driver/lib/dri:/run/opengl-driver/lib/vdpau:${libva.out}/lib" - - # our build crashes on exit so this silences the excessive crash dumps - cd /var/empty - - exec -a "$0" "${gyroflow-unwrapped}/gyroflow" "$@" - ''} $out/bin/gyroflow - ''; -} diff --git a/package/gyroflow/mdk-log.patch b/package/gyroflow/mdk-log.patch deleted file mode 100644 index 5b3351d3..00000000 --- a/package/gyroflow/mdk-log.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/util.rs b/src/util.rs -index 8bcbd2e0..7e51865f 100644 ---- a/src/util.rs -+++ b/src/util.rs -@@ -226,7 +226,7 @@ pub fn init_logging() { - .init().unwrap(); - } - } else { -- let log_config = [ "mp4parse", "wgpu", "naga", "akaze", "ureq", "rustls", "mdk" ] -+ let log_config = [ "mp4parse", "wgpu", "naga", "akaze", "ureq", "rustls" ] - .into_iter() - .fold(ConfigBuilder::new(), |mut cfg, x| { cfg.add_filter_ignore_str(x); cfg }) - .build(); From 4d7fa964b34c16359d1fc0a057f64b4388b3c337 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 16 Jan 2024 11:59:49 +0800 Subject: [PATCH 099/447] home(util): add nvme-cli --- home/util/home.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/home/util/home.nix b/home/util/home.nix index 7daeddf5..4fd9df3c 100644 --- a/home/util/home.nix +++ b/home/util/home.nix @@ -4,8 +4,8 @@ , ... }: with lib; { home.packages = with pkgs; [ pv file wget nix-index - e2fsprogs zip unzip - pciutils usbutils lsscsi + e2fsprogs lsscsi zip unzip + pciutils usbutils nvme-cli ] ++ optionals config.passthrough.gui [ gtk-engine-murrine gnome-themes-extra From fbed1d7b977214a61a2271d65b6918c916218a9b Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 16 Jan 2024 12:12:57 +0800 Subject: [PATCH 100/447] home(util): add ExpressLRS Configurator persistence --- home/util/nixos.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/home/util/nixos.nix b/home/util/nixos.nix index 83ab6066..b0eca5bf 100644 --- a/home/util/nixos.nix +++ b/home/util/nixos.nix @@ -9,6 +9,7 @@ in { ] ++ optionals gui [ ".local/share/Mission Planner" + ".config/ExpressLRS Configurator" ".config/betaflight-configurator" ".config/inav-configurator" ]; From 65b3e65dbeee51d1a33aa4ec9c7fcc99e29eb989 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 16 Jan 2024 14:16:35 +0800 Subject: [PATCH 101/447] home(util): add floating window rules --- home/util/home.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/home/util/home.nix b/home/util/home.nix index 4fd9df3c..dcb69b34 100644 --- a/home/util/home.nix +++ b/home/util/home.nix @@ -18,4 +18,9 @@ blhelisuite32 expresslrs-configurator ]; + + wayland.windowManager.sway.config.window.commands = mkIf config.passthrough.gui [ + { criteria.class = "BLHeliSuite32xl"; command = "floating enable"; } + { criteria.app_id = "thunar"; command = "floating enable"; } + ]; } From d58f892041cf1f7fef932653a0b82f66c9f0f1a5 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 16 Jan 2024 14:23:25 +0800 Subject: [PATCH 102/447] home(steam): add floating window rules --- home/steam/home.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/home/steam/home.nix b/home/steam/home.nix index bb63e66b..89fa75bb 100644 --- a/home/steam/home.nix +++ b/home/steam/home.nix @@ -10,4 +10,8 @@ in mkIf enable { cfg.package cfg.package.run ]; + + wayland.windowManager.sway.config.window.commands = [ + { criteria.class = "steam"; command = "floating enable"; } + ]; } From d96ffaf7b59e397cea50b3bb9361ca15f1bef8a5 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 16 Jan 2024 14:23:33 +0800 Subject: [PATCH 103/447] home(minecraft): add floating window rules --- home/minecraft/home.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/home/minecraft/home.nix b/home/minecraft/home.nix index 7414ccdf..4db63464 100644 --- a/home/minecraft/home.nix +++ b/home/minecraft/home.nix @@ -9,4 +9,8 @@ in mkIf enable { prismlauncher jdk8 ]; + + wayland.windowManager.sway.config.window.commands = [ + { criteria.app_id = "org.prismlauncher.PrismLauncher"; command = "floating enable"; } + ]; } From 81de77c3d98fdb40cbce52f4bad64d6bb9d822b1 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 16 Jan 2024 17:30:12 +0800 Subject: [PATCH 104/447] home(sway): add --unsupported-gpu conditionally --- home/sway/nixos.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/home/sway/nixos.nix b/home/sway/nixos.nix index 7bf782f5..6e09b3af 100644 --- a/home/sway/nixos.nix +++ b/home/sway/nixos.nix @@ -3,6 +3,7 @@ , config , ... }: with lib; let gui = with config.global.gui; ( enable && session ); + nvidia = with config.global.gui; ( type == "nvidia" || type == "prime" ); in mkIf gui { services.xserver.displayManager.sessionPackages = [ (pkgs.writeTextFile { @@ -21,7 +22,7 @@ in mkIf gui { for profile in ''${(z)NIX_PROFILES}; do fpath+=($profile/share/zsh/site-functions $profile/share/zsh/$ZSH_VERSION/functions $profile/share/zsh/vendor-completions) done - exec sway --unsupported-gpu + exec sway ${if nvidia then "--unsupported-gpu" else ""} ''; checkPhase = '' ${pkgs.stdenv.shellDryRun} "$target" From 6e361a98ee9193afa72bababcecab794a901a0d9 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 17 Jan 2024 18:32:51 +0800 Subject: [PATCH 105/447] spec(web): set mastodon url --- spec/web/site/_data/contact.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/web/site/_data/contact.yml b/spec/web/site/_data/contact.yml index b3a8c96c..3ca78a76 100644 --- a/spec/web/site/_data/contact.yml +++ b/spec/web/site/_data/contact.yml @@ -6,7 +6,7 @@ - type: mastodon icon: "fab fa-mastodon" - url: "" + url: "https://cathode.church/@koishi" #- type: github # icon: "fab fa-github" From 86806b0795602d59b4aa7b827acece2ba848429a Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 17 Jan 2024 18:58:15 +0800 Subject: [PATCH 106/447] spec(web): update deps --- spec/web/site/Gemfile.lock | 53 +++++++++++++++++++++++++++++++++++--- spec/web/site/default.nix | 2 +- 2 files changed, 50 insertions(+), 5 deletions(-) diff --git a/spec/web/site/Gemfile.lock b/spec/web/site/Gemfile.lock index e7e99549..d44f5b11 100644 --- a/spec/web/site/Gemfile.lock +++ b/spec/web/site/Gemfile.lock @@ -4,7 +4,7 @@ GEM addressable (2.8.6) public_suffix (>= 2.0.2, < 6.0) colorator (1.1.0) - concurrent-ruby (1.2.2) + concurrent-ruby (1.2.3) em-websocket (0.5.3) eventmachine (>= 0.12.9) http_parser.rb (~> 0) @@ -13,6 +13,11 @@ GEM eventmachine (1.2.7) ffi (1.16.3) forwardable-extended (2.6.0) + google-protobuf (3.25.2) + google-protobuf (3.25.2-aarch64-linux) + google-protobuf (3.25.2-arm64-darwin) + google-protobuf (3.25.2-x86-linux) + google-protobuf (3.25.2-x86_64-darwin) google-protobuf (3.25.2-x86_64-linux) html-proofer (4.4.3) addressable (~> 2.3) @@ -23,7 +28,7 @@ GEM typhoeus (~> 1.3) yell (~> 2.0) zeitwerk (~> 2.5) - http_parser.rb (0.6.0) + http_parser.rb (0.8.0) i18n (1.14.1) concurrent-ruby (~> 1.0) jekyll (4.3.3) @@ -74,6 +79,16 @@ GEM rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) mercenary (0.4.0) + nokogiri (1.16.0-aarch64-linux) + racc (~> 1.4) + nokogiri (1.16.0-arm-linux) + racc (~> 1.4) + nokogiri (1.16.0-arm64-darwin) + racc (~> 1.4) + nokogiri (1.16.0-x86-linux) + racc (~> 1.4) + nokogiri (1.16.0-x86_64-darwin) + racc (~> 1.4) nokogiri (1.16.0-x86_64-linux) racc (~> 1.4) parallel (1.24.0) @@ -88,8 +103,26 @@ GEM rexml (3.2.6) rouge (4.2.0) safe_yaml (1.0.5) + sass-embedded (1.69.7-aarch64-linux-gnu) + google-protobuf (~> 3.25) + sass-embedded (1.69.7-aarch64-linux-musl) + google-protobuf (~> 3.25) + sass-embedded (1.69.7-arm-linux-gnueabihf) + google-protobuf (~> 3.25) + sass-embedded (1.69.7-arm-linux-musleabihf) + google-protobuf (~> 3.25) + sass-embedded (1.69.7-arm64-darwin) + google-protobuf (~> 3.25) + sass-embedded (1.69.7-x86-linux-gnu) + google-protobuf (~> 3.25) + sass-embedded (1.69.7-x86-linux-musl) + google-protobuf (~> 3.25) + sass-embedded (1.69.7-x86_64-darwin) + google-protobuf (~> 3.25) sass-embedded (1.69.7-x86_64-linux-gnu) google-protobuf (~> 3.25) + sass-embedded (1.69.7-x86_64-linux-musl) + google-protobuf (~> 3.25) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) typhoeus (1.4.1) @@ -100,7 +133,19 @@ GEM zeitwerk (2.6.12) PLATFORMS - x86_64-linux + aarch64-linux + aarch64-linux-gnu + aarch64-linux-musl + arm-linux + arm-linux-gnueabihf + arm-linux-musleabihf + arm64-darwin + x86-linux + x86-linux-gnu + x86-linux-musl + x86_64-darwin + x86_64-linux-gnu + x86_64-linux-musl DEPENDENCIES html-proofer (~> 4.4) @@ -111,4 +156,4 @@ DEPENDENCIES wdm (~> 0.1.1) BUNDLED WITH - 2.4.22 + 2.5.3 diff --git a/spec/web/site/default.nix b/spec/web/site/default.nix index fce8bcfb..6dc201a9 100644 --- a/spec/web/site/default.nix +++ b/spec/web/site/default.nix @@ -36,7 +36,7 @@ outputHashAlgo = "sha256"; outputHashMode = "recursive"; - outputHash = "sha256-ql0Rf1annFrlhaPF/s96xPTNsSjQbM44SCBmE53DaEY="; + outputHash = "sha256-TEpo7m4a257kAFxCCx51PRZBRF4Fk6ItX+6t4GEp6Zs="; }; deps = stdenvNoCC.mkDerivation { From ae7c18b3973ff3615526ddaf1d0d34d38be2b874 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 17 Jan 2024 19:31:56 +0800 Subject: [PATCH 107/447] home(util): add minimal system option --- global/util/default.nix | 13 ------------- home/util/home.nix | 10 +++++++--- home/util/nixos.nix | 34 +++++++++++++++++++++++++--------- 3 files changed, 32 insertions(+), 25 deletions(-) delete mode 100644 global/util/default.nix diff --git a/global/util/default.nix b/global/util/default.nix deleted file mode 100644 index feb08b7b..00000000 --- a/global/util/default.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ pkgs -, lib -, config -, ... }: with lib; let - cfg = config.global.util; -in { - options.global.util = { }; - - config = { - programs.zsh.enable = true; - environment.shells = singleton pkgs.zsh; - }; -} diff --git a/home/util/home.nix b/home/util/home.nix index dcb69b34..cc5834d0 100644 --- a/home/util/home.nix +++ b/home/util/home.nix @@ -1,10 +1,14 @@ { pkgs , lib , config -, ... }: with lib; { +, ... }: with lib; let + cfg = config.passthrough.util; +in { home.packages = with pkgs; [ - pv file wget nix-index - e2fsprogs lsscsi zip unzip + pv file wget e2fsprogs + ] ++ optionals (!cfg.minimal) [ + nix-index + lsscsi zip unzip pciutils usbutils nvme-cli ] ++ optionals config.passthrough.gui [ gtk-engine-murrine diff --git a/home/util/nixos.nix b/home/util/nixos.nix index b0eca5bf..f8943085 100644 --- a/home/util/nixos.nix +++ b/home/util/nixos.nix @@ -2,15 +2,31 @@ , lib , config , ... }: with lib; let + cfg = config.home.util; gui = with config.global.gui; ( enable && session ); in { - users.home.persist.directories = [ - ".cache/nix-index" - ] ++ - optionals gui [ - ".local/share/Mission Planner" - ".config/ExpressLRS Configurator" - ".config/betaflight-configurator" - ".config/inav-configurator" - ]; + options.home.util = { + minimal = mkEnableOption "minimal system environment with less packages"; + }; + + config = { + users.homeModules = [ + # this module passes util configuration to home-manager + { passthrough.util = cfg; } + ]; + + programs.zsh.enable = true; + environment.shells = singleton pkgs.zsh; + + users.home.persist.directories = [ ] ++ + optionals (!cfg.minimal) [ + ".cache/nix-index" + ] ++ + optionals gui [ + ".local/share/Mission Planner" + ".config/ExpressLRS Configurator" + ".config/betaflight-configurator" + ".config/inav-configurator" + ]; + }; } From f75e6a0d944cf6f6313cda0ce5ee4dba124fd44e Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 17 Jan 2024 19:33:01 +0800 Subject: [PATCH 108/447] spec(web): enable minimum utils --- spec/web/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/spec/web/default.nix b/spec/web/default.nix index db890e35..f3d240db 100644 --- a/spec/web/default.nix +++ b/spec/web/default.nix @@ -11,6 +11,10 @@ acme.enable = true; }; + home = { + util.minimal = true; + }; + imports = lib.pipe ./. [ builtins.readDir (lib.filterAttrs (n: ty: ty == "regular" && n != "default.nix")) From 01b3f930a39290ade441024ddd0f996b74f26040 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 17 Jan 2024 21:39:34 +0800 Subject: [PATCH 109/447] global(gui): remove withArcFull specialisation since it had no use case --- global/gui/default.nix | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/global/gui/default.nix b/global/gui/default.nix index 3b2082de..cf2edf3b 100644 --- a/global/gui/default.nix +++ b/global/gui/default.nix @@ -80,22 +80,6 @@ in { }; }; - specialisation.withArcFull = mkIf (cfg.arc != null) { - configuration = { - global.gui.arc = mkForce null; - powerManagement.cpuFreqGovernor = mkForce "performance"; - - # set DRI_PRIME in profile to always enable offloading - environment.variables.DRI_PRIME = "1"; - services.greetd.settings.default_session.command = '' - # regreet is buggy with offload enabled so we turn it off - env DRI_PRIME=0 ${pkgs.dbus}/bin/dbus-run-session \ - ${getExe pkgs.cage} ${escapeShellArgs config.programs.regreet.cageArgs} -- \ - ${getExe config.programs.regreet.package} - ''; - }; - }; - boot.initrd.kernelModules = optional amdgpu "amdgpu" ++ optional intel "i915" ++ From b713b0e40c33aaf183ff3ce0f70f7b4022e0f58a Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 19 Jan 2024 10:54:55 +0800 Subject: [PATCH 110/447] home(util): add dnsutils and whois --- home/util/home.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home/util/home.nix b/home/util/home.nix index cc5834d0..49a9266b 100644 --- a/home/util/home.nix +++ b/home/util/home.nix @@ -7,8 +7,8 @@ in { home.packages = with pkgs; [ pv file wget e2fsprogs ] ++ optionals (!cfg.minimal) [ - nix-index lsscsi zip unzip + nix-index dnsutils whois pciutils usbutils nvme-cli ] ++ optionals config.passthrough.gui [ gtk-engine-murrine From e248b8f9ed37b4c370d9f35268c1bd4e8ae5e9d1 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 19 Jan 2024 15:47:39 +0800 Subject: [PATCH 111/447] spec(web): add nginx redirect --- spec/web/nginx.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/spec/web/nginx.nix b/spec/web/nginx.nix index 7cf9cb86..c0bf7f1e 100644 --- a/spec/web/nginx.nix +++ b/spec/web/nginx.nix @@ -20,6 +20,11 @@ forceSSL = true; enableACME = true; }; + + "www.514fpv.one" = { + globalRedirect = "514fpv.one"; + enableACME = true; + }; }; }; From 5f58dfefaf0b0687848f8c9f9fea134b1d4f47f0 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 19 Jan 2024 15:48:24 +0800 Subject: [PATCH 112/447] flake: bump inputs --- flake.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/flake.lock b/flake.lock index c0148017..9d45b9a0 100644 --- a/flake.lock +++ b/flake.lock @@ -155,11 +155,11 @@ ] }, "locked": { - "lastModified": 1705269478, - "narHash": "sha256-j7Rp8Y3ckBHOlIzqe0g2+/BVce9SU/dVtn4Eb0rMuY4=", + "lastModified": 1705535278, + "narHash": "sha256-V5+XKfNbiY0bLKLQlH+AXyhHttEL7XcZBH9iSbxxexA=", "owner": "nix-community", "repo": "home-manager", - "rev": "846200eb574faa2af808ed02e653c2b8ed51fd71", + "rev": "b84191db127c16a92cbdf7f7b9969d58bb456699", "type": "github" }, "original": { @@ -213,11 +213,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1705133751, - "narHash": "sha256-rCIsyE80jgiOU78gCWN3A0wE0tR2GI5nH6MlS+HaaSQ=", + "lastModified": 1705496572, + "narHash": "sha256-rPIe9G5EBLXdBdn9ilGc0nq082lzQd0xGGe092R/5QE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "9b19f5e77dd906cb52dade0b7bd280339d2a1f3d", + "rev": "842d9d80cfd4560648c785f8a4e6f3b096790e19", "type": "github" }, "original": { From 7f13612f8bfbd49439b9858a1f5ddca2d545d3bc Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 19 Jan 2024 15:50:50 +0800 Subject: [PATCH 113/447] global(auth): remove diag key --- global/auth/pub/diag.pub | 1 - 1 file changed, 1 deletion(-) delete mode 100644 global/auth/pub/diag.pub diff --git a/global/auth/pub/diag.pub b/global/auth/pub/diag.pub deleted file mode 100644 index b29d4af3..00000000 --- a/global/auth/pub/diag.pub +++ /dev/null @@ -1 +0,0 @@ -ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICvi83M2V/DHUthDPzoiYgLhc8wlWNBFaBsYOWi115f4 diag From 0beee1c56b609f9e9290372a4010688d5a40bb8a Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 19 Jan 2024 21:23:31 +0800 Subject: [PATCH 114/447] spec(yume): initial configuration --- global/auth/pub/yume.pub | 1 + spec/yume/default.nix | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 global/auth/pub/yume.pub create mode 100644 spec/yume/default.nix diff --git a/global/auth/pub/yume.pub b/global/auth/pub/yume.pub new file mode 100644 index 00000000..444ab0db --- /dev/null +++ b/global/auth/pub/yume.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPdzq2g13LEyxTZnA0HQ5hMEp4XNh0TOB/KY1bRwjsaq koishi@yume diff --git a/spec/yume/default.nix b/spec/yume/default.nix new file mode 100644 index 00000000..c2084658 --- /dev/null +++ b/spec/yume/default.nix @@ -0,0 +1,40 @@ +{ pkgs +, lib +, config +, modulesPath +, ... }: { + global = { + id = "d40d05288c1544af94e534eab24768fc"; + fs.esp.uuid = "6CEB-765A"; + fs.type = "xfs"; + fs.store = "b80e8bbe-d1ff-4d2e-ae25-9e9048d67355"; + gui.enable = true; + gui.type = "nvidia"; + }; + + home = { + gyroflow.enable = true; + libreoffice.enable = true; + minecraft.enable = true; + steam.enable = true; + }; + + imports = lib.pipe ./. [ + builtins.readDir + (lib.filterAttrs (n: ty: ty == "regular" && n != "default.nix")) + (lib.mapAttrsToList (n: _: ./${n})) + ] ++ [ (modulesPath + "/profiles/qemu-guest.nix") ]; + + # work around low cage resolution on pure nvidia + services.greetd.settings.default_session.command = let + cfg = config.programs.regreet; + in "${pkgs.dbus}/bin/dbus-run-session ${lib.getExe pkgs.cage} ${lib.escapeShellArgs cfg.cageArgs} -- ${pkgs.writeShellScript "cageResolution" '' + ${lib.getExe pkgs.wlr-randr} --output DP-2 --mode 1920x1080@60.000000Hz + ${lib.getExe cfg.package} + ''}"; + + boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "virtio_pci" "usbhid" "sr_mod" "virtio_blk" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; +} From a2dfd20cb14083acc3c88147bb6b16848f927809 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 19 Jan 2024 21:25:03 +0800 Subject: [PATCH 115/447] global(gui): add pure nvidia workarounds --- global/gui/default.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/global/gui/default.nix b/global/gui/default.nix index cf2edf3b..45c5a073 100644 --- a/global/gui/default.nix +++ b/global/gui/default.nix @@ -66,6 +66,9 @@ in { open = false; }; + # work around broken nvidia hw cursor on wayland + environment.variables.WLR_NO_HARDWARE_CURSORS = mkIf (cfg.type == "nvidia") "1"; + specialisation.integratedGraphics = mkIf (cfg.type == "prime") { configuration = { global.gui.type = mkForce (if intel then "intel" else if amdgpu then "amdgpu" else "prime"); @@ -83,8 +86,11 @@ in { boot.initrd.kernelModules = optional amdgpu "amdgpu" ++ optional intel "i915" ++ + optionals nvidia [ "nvidia" "nvidia_drm" "nvidia_modeset" "nvidia_uvm" ] ++ optional (cfg.arc != null) "vfio-pci"; + boot.extraModulePackages = optional nvidia config.boot.kernelPackages.nvidia_x11; + boot.extraModprobeConfig = mkIf (cfg.arc != null) '' softdep drm pre: vfio-pci options vfio-pci ids=${cfg.arc} From ebe904e9f68ee71983a7e8d7e297ae59f89a31ed Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 19 Jan 2024 21:59:46 +0800 Subject: [PATCH 116/447] global(gui): add pure nvidia flicker workaround --- global/gui/default.nix | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/global/gui/default.nix b/global/gui/default.nix index 45c5a073..8a7e88f4 100644 --- a/global/gui/default.nix +++ b/global/gui/default.nix @@ -41,7 +41,9 @@ in { vaapiVdpau libvdpau-va-gl intel-compute-runtime - ] ++ optional nvidia nvidia-vaapi-driver; + ] ++ + optional nvidia nvidia-vaapi-driver ++ + optional (cfg.type == "nvidia") vulkan-validation-layers; }; services.xserver.videoDrivers = @@ -66,8 +68,12 @@ in { open = false; }; - # work around broken nvidia hw cursor on wayland - environment.variables.WLR_NO_HARDWARE_CURSORS = mkIf (cfg.type == "nvidia") "1"; + environment.variables = { + # work around broken nvidia hw cursor on wayland + WLR_NO_HARDWARE_CURSORS = mkIf (cfg.type == "nvidia") "1"; + # work around wlroots flickering on pure nvidia + WLR_RENDERER = mkIf (cfg.type == "nvidia") "vulkan"; + }; specialisation.integratedGraphics = mkIf (cfg.type == "prime") { configuration = { From dd22303d349b8e7cca25bbc134d96a4f2d8afe85 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 20 Jan 2024 12:35:48 +0800 Subject: [PATCH 117/447] global(fs): add noatime option --- global/fs/ext4.nix | 1 + global/fs/xfs.nix | 1 + 2 files changed, 2 insertions(+) diff --git a/global/fs/ext4.nix b/global/fs/ext4.nix index 9a6f990c..109c29cc 100644 --- a/global/fs/ext4.nix +++ b/global/fs/ext4.nix @@ -6,5 +6,6 @@ in mkIf (cfg.type == "ext4") { fileSystems."/nix" = { device = "/dev/disk/by-uuid/${cfg.store}"; fsType = "ext4"; + options = [ "noatime" ]; }; } diff --git a/global/fs/xfs.nix b/global/fs/xfs.nix index ec7de391..42c8c7ea 100644 --- a/global/fs/xfs.nix +++ b/global/fs/xfs.nix @@ -7,5 +7,6 @@ in mkIf (cfg.type == "xfs") { fileSystems."/nix" = { device = "/dev/disk/by-uuid/${cfg.store}"; fsType = "xfs"; + options = [ "noatime" ]; }; } From 285fabfcb72f3dfa282304ea4c42caee4d7a6174 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 20 Jan 2024 12:36:48 +0800 Subject: [PATCH 118/447] flake: bump inputs --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 9d45b9a0..db70c9c8 100644 --- a/flake.lock +++ b/flake.lock @@ -155,11 +155,11 @@ ] }, "locked": { - "lastModified": 1705535278, - "narHash": "sha256-V5+XKfNbiY0bLKLQlH+AXyhHttEL7XcZBH9iSbxxexA=", + "lastModified": 1705708511, + "narHash": "sha256-3f4BkRY70Fj7yvuo87c4QQPAjnt571g2wJ50jY7hnYc=", "owner": "nix-community", "repo": "home-manager", - "rev": "b84191db127c16a92cbdf7f7b9969d58bb456699", + "rev": "ce4b88c465d928f4f8b75d0920f1788d5b65ca94", "type": "github" }, "original": { From b02286b66daf177dace9fbabed827dd8b9a2726d Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 20 Jan 2024 12:47:00 +0800 Subject: [PATCH 119/447] spec(library): add noatime option --- spec/library/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/library/default.nix b/spec/library/default.nix index aa0147d2..e6742c41 100644 --- a/spec/library/default.nix +++ b/spec/library/default.nix @@ -12,6 +12,7 @@ fs.extPersist.enable = true; fs.extPersist.device = "/dev/disk/by-uuid/ba3d0989-9f81-4ac0-b5a7-124c86835cfa"; fs.extPersist.fsType = "ext4"; + fs.extPersist.options = [ "noatime" ]; oci.enable = true; acme.enable = true; }; From 3aedb1ab135a986e2b1ead8a2694d4ab37f66dcf Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 20 Jan 2024 14:20:32 +0800 Subject: [PATCH 120/447] home(gui): enable blueman --- home/gui/nixos.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/home/gui/nixos.nix b/home/gui/nixos.nix index a5e5efdf..469ab38c 100644 --- a/home/gui/nixos.nix +++ b/home/gui/nixos.nix @@ -17,12 +17,16 @@ in { bibata-cursors ]; + fonts.enableDefaultPackages = mkIf gui true; + security = mkIf gui { polkit.enable = true; }; - fonts.enableDefaultPackages = mkIf gui true; programs = mkIf gui { dconf.enable = true; }; + services = mkIf gui { + blueman.enable = true; + }; }; } From dec4a51848495df4b5a24e6ff96ed38ecb87d076 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 21 Jan 2024 20:43:50 +0800 Subject: [PATCH 121/447] global(fs): extPersist -> external --- global/fs/default.nix | 6 +++--- spec/chireiden/default.nix | 8 ++++---- spec/koumakyou/default.nix | 6 +++--- spec/library/default.nix | 8 ++++---- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/global/fs/default.nix b/global/fs/default.nix index f5c2569b..67df0b5f 100644 --- a/global/fs/default.nix +++ b/global/fs/default.nix @@ -32,7 +32,7 @@ in { description = "vfat serial number of EFI system partition"; }; }; - extPersist = { + external = { enable = mkEnableOption "external persist filesystem"; # this wraps the standard fileSystems module # since some attrs have to be unconditionally set @@ -73,8 +73,8 @@ in { { device = "/dev/disk/by-uuid/${cfg.esp.uuid}"; fsType = "vfat"; }; - fileSystems."/nix/persist" = mkIf cfg.extPersist.enable - { inherit (cfg.extPersist) device fsType options; + fileSystems."/nix/persist" = mkIf cfg.external.enable + { inherit (cfg.external) device fsType options; neededForBoot = true; depends = [ "/nix" ]; }; diff --git a/spec/chireiden/default.nix b/spec/chireiden/default.nix index d3068a84..2791079c 100644 --- a/spec/chireiden/default.nix +++ b/spec/chireiden/default.nix @@ -4,10 +4,10 @@ fs.esp.uuid = "32A5-6257"; fs.type = "xfs"; fs.store = "c0408dd5-dfc1-42e3-b925-2f32407d320a"; - fs.extPersist.enable = true; - fs.extPersist.device = "/dev/disk/by-uuid/af2b8ec5-62d8-4b14-8ba8-083cc4fb33f4"; - fs.extPersist.fsType = "btrfs"; - fs.extPersist.options = [ "noatime" "compress=zstd" ]; + fs.external.enable = true; + fs.external.device = "/dev/disk/by-uuid/af2b8ec5-62d8-4b14-8ba8-083cc4fb33f4"; + fs.external.fsType = "btrfs"; + fs.external.options = [ "noatime" "compress=zstd" ]; fs.cryptsetup.enable = true; fs.cryptsetup.uuids.nix = "3905f87f-7b11-49ef-8ddf-f4202c555ffd"; fs.cryptsetup.uuids.persist = "b2322f01-1c44-433f-a995-4ddce5845cf9"; diff --git a/spec/koumakyou/default.nix b/spec/koumakyou/default.nix index 5929d584..0c3cf9d0 100644 --- a/spec/koumakyou/default.nix +++ b/spec/koumakyou/default.nix @@ -7,9 +7,9 @@ fs.esp.uuid = "B20E-5994"; fs.type = "xfs"; fs.store = "e8eea851-51b0-4c29-80c4-3d9358c4f3f8"; - fs.extPersist.enable = true; - fs.extPersist.device = "/dev/disk/by-uuid/f0e13b58-1223-479c-b673-3a8e629c7f72"; - fs.extPersist.fsType = "ext4"; + fs.external.enable = true; + fs.external.device = "/dev/disk/by-uuid/f0e13b58-1223-479c-b673-3a8e629c7f72"; + fs.external.fsType = "ext4"; fs.cryptsetup.enable = true; fs.cryptsetup.uuids.nix = "84baa53a-c76d-4716-813a-196f5a53e44d"; fs.cryptsetup.uuids.persist = "e31f8b1c-6504-4b43-93dd-997ad17ebf5e"; diff --git a/spec/library/default.nix b/spec/library/default.nix index e6742c41..daaac493 100644 --- a/spec/library/default.nix +++ b/spec/library/default.nix @@ -9,10 +9,10 @@ fs.esp.uuid = "00A5-929C"; fs.type = "xfs"; fs.store = "25b9f83f-7f6d-432f-a169-2985e5930401"; - fs.extPersist.enable = true; - fs.extPersist.device = "/dev/disk/by-uuid/ba3d0989-9f81-4ac0-b5a7-124c86835cfa"; - fs.extPersist.fsType = "ext4"; - fs.extPersist.options = [ "noatime" ]; + fs.external.enable = true; + fs.external.device = "/dev/disk/by-uuid/ba3d0989-9f81-4ac0-b5a7-124c86835cfa"; + fs.external.fsType = "ext4"; + fs.external.options = [ "noatime" ]; oci.enable = true; acme.enable = true; }; From f5e6b290381dacc79f8d0ebe7e5041c0e7359a90 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 21 Jan 2024 20:44:12 +0800 Subject: [PATCH 122/447] global(fs): add zfs external nix store --- global/fs/zfs.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/global/fs/zfs.nix b/global/fs/zfs.nix index 66252da3..149273c5 100644 --- a/global/fs/zfs.nix +++ b/global/fs/zfs.nix @@ -20,6 +20,7 @@ in { type = with types; attrsOf str; description = "zfs dataset mountpoints"; }; + externalStore = mkEnableOption "external nix store filesystem"; }; config = mkIf (cfg.type == "zfs") { @@ -29,10 +30,11 @@ in { # required by impermanence neededForBoot = true; }) cfg.zfs.mountpoints) // { - "/nix" = + "/nix" = (if !cfg.zfs.externalStore then { device = "${cfg.store}/nix"; fsType = "zfs"; - }; + } else + { inherit (cfg.external) device fsType options; }); }; global.fs.zfs.mountpoints."/nix/persist" = "persist"; From e677fd23ec70223706ecb98c7e73078e93d76d47 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 21 Jan 2024 20:48:59 +0800 Subject: [PATCH 123/447] home(sway): remove vanity options --- home/sway/home.nix | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/home/sway/home.nix b/home/sway/home.nix index e69e69c2..a5b61907 100644 --- a/home/sway/home.nix +++ b/home/sway/home.nix @@ -38,14 +38,10 @@ # sets transparency colors.background = "00000000"; } ]; - gaps.inner = 12; - gaps.outer = 5; - # dodge the status bar - gaps.bottom = 0; input."*".natural_scroll = "enabled"; input."type:touchpad".tap = "enabled"; - output."*".bg = "${../../share/54345906_p0.jpg} fill"; + output."*".bg = "#000000 solid_color"; }; }; } From f39f117eacbe440261bf4a81af7554cc348e3ef3 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 22 Jan 2024 11:32:00 +0800 Subject: [PATCH 124/447] home(virt-manager): add sway window commands --- home/virt-manager/home.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/home/virt-manager/home.nix b/home/virt-manager/home.nix index e9a4ca71..b5bf3e67 100644 --- a/home/virt-manager/home.nix +++ b/home/virt-manager/home.nix @@ -49,4 +49,10 @@ }; "${p}/conns/qemu:system".pretty-name = "KVM"; }; + + # floating other than main window + wayland.windowManager.sway.config.window.commands = [ + { criteria.app_id = "virt-manager"; command = "floating enable"; } + { criteria.app_id = "virt-manager"; criteria.title = "Virtual Machine Manager"; command = "floating disable"; } + ]; } From dd5c2395fe1d8a884b91da2ad2f4677d4f3ab30f Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 24 Jan 2024 08:28:48 +0800 Subject: [PATCH 125/447] global(fs): remove btrfs --- global/fs/btrfs.nix | 22 ---------------------- global/fs/default.nix | 3 +-- 2 files changed, 1 insertion(+), 24 deletions(-) delete mode 100644 global/fs/btrfs.nix diff --git a/global/fs/btrfs.nix b/global/fs/btrfs.nix deleted file mode 100644 index 66d53090..00000000 --- a/global/fs/btrfs.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ pkgs -, lib -, config -, ... }: with lib; let - cfg = config.global.fs; -in { - options.global.fs.btrfs = { - options = mkOption { - type = with types; listOf str; - default = [ "noatime" "compress=zstd" ]; - description = "btrfs mount options"; - }; - }; - - config = mkIf (cfg.type == "btrfs") { - fileSystems."/nix" = - { inherit (cfg.btrfs) options; - device = "/dev/disk/by-uuid/${cfg.store}"; - fsType = "btrfs"; - }; - }; -} diff --git a/global/fs/default.nix b/global/fs/default.nix index 67df0b5f..40aeaaea 100644 --- a/global/fs/default.nix +++ b/global/fs/default.nix @@ -10,12 +10,11 @@ in { ./xfs.nix ./zfs.nix #./bcachefs.nix - ./btrfs.nix ]; options.global.fs = { type = mkOption { - type = with types; enum [ "ext4" "f2fs" "xfs" "zfs" "bcachefs" "btrfs" ]; + type = with types; enum [ "ext4" "f2fs" "xfs" "zfs" "bcachefs" ]; default = "bcachefs"; description = "filesystem type to use for persistent state storage"; }; From 77ad6635107b4f6d3bde86270b3004c0bebb1644 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 24 Jan 2024 08:31:59 +0800 Subject: [PATCH 126/447] spec(incinerator): remove postgresql --- spec/incinerator/postgresql.nix | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 spec/incinerator/postgresql.nix diff --git a/spec/incinerator/postgresql.nix b/spec/incinerator/postgresql.nix deleted file mode 100644 index dc082ee9..00000000 --- a/spec/incinerator/postgresql.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ pkgs -, config -, ...}: { - services.postgresql = { - enable = true; - dataDir = "/nix/persist/service/postgresql/${config.services.postgresql.package.psqlSchema}"; - - package = pkgs.postgresql_15; - }; -} From be496bc68740ed5615ae2331a7b0ff06498d8c1a Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 24 Jan 2024 08:34:07 +0800 Subject: [PATCH 127/447] global(fs): adjust zfs kernelPackages priority --- global/fs/zfs.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global/fs/zfs.nix b/global/fs/zfs.nix index 149273c5..a7faedd8 100644 --- a/global/fs/zfs.nix +++ b/global/fs/zfs.nix @@ -42,6 +42,6 @@ in { services.zfs.autoSnapshot.enable = true; services.zfs.autoScrub.enable = true; boot.zfs.devNodes = mkDefault "/dev/disk/by-partuuid"; - boot.kernelPackages = config.boot.zfs.package.latestCompatibleLinuxPackages; + boot.kernelPackages = mkDefault config.boot.zfs.package.latestCompatibleLinuxPackages; }; } From a3e9dc078203898c224dbb8822c2bc0326bdf161 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 24 Jan 2024 08:38:04 +0800 Subject: [PATCH 128/447] global(kernel): lower priority of default kernel to below mkDefault --- global/kernel/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global/kernel/default.nix b/global/kernel/default.nix index 9617608b..0fc6c935 100644 --- a/global/kernel/default.nix +++ b/global/kernel/default.nix @@ -23,6 +23,6 @@ in { "kernel.dmesg_restrict" = mkIf cfg.sysctl.harden 1; "vm.swappiness" = cfg.sysctl.swappiness; }; - boot.kernelPackages = with pkgs; mkDefault (if cfg.lts then linuxPackages else linuxPackages_latest); + boot.kernelPackages = with pkgs; mkOverride 1001 (if cfg.lts then linuxPackages else linuxPackages_latest); }; } From b4148325a570257ff98f0dc265a210c237fd15f4 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 24 Jan 2024 08:59:12 +0800 Subject: [PATCH 129/447] global(fs): add bcachefs --- global/fs/bcachefs.nix | 22 ++++++++++++++++++++++ global/fs/default.nix | 2 +- 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 global/fs/bcachefs.nix diff --git a/global/fs/bcachefs.nix b/global/fs/bcachefs.nix new file mode 100644 index 00000000..a779d7bd --- /dev/null +++ b/global/fs/bcachefs.nix @@ -0,0 +1,22 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.global.fs; +in { + options.global.fs.bcachefs = { + options = mkOption { + type = with types; listOf str; + default = [ "noatime" "compression=zstd" ]; + description = "bcachefs mount options"; + }; + }; + + config = mkIf (cfg.type == "bcachefs") { + fileSystems."/nix" = + { inherit (cfg.bcachefs) options; + device = "/dev/disk/by-uuid/${cfg.store}"; + fsType = "bcachefs"; + }; + }; +} diff --git a/global/fs/default.nix b/global/fs/default.nix index 40aeaaea..e2c80c57 100644 --- a/global/fs/default.nix +++ b/global/fs/default.nix @@ -9,7 +9,7 @@ in { ./f2fs.nix ./xfs.nix ./zfs.nix - #./bcachefs.nix + ./bcachefs.nix ]; options.global.fs = { From 6e3bb8c502ef10c5f953a88ba0c14972ae63806c Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 26 Jan 2024 13:59:24 +0800 Subject: [PATCH 130/447] spec(focus): initial configuration --- spec/focus/default.nix | 50 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 spec/focus/default.nix diff --git a/spec/focus/default.nix b/spec/focus/default.nix new file mode 100644 index 00000000..5db6cb4d --- /dev/null +++ b/spec/focus/default.nix @@ -0,0 +1,50 @@ +{ lib +, ... }: { + global = { + id = "22e9d4e37bd7436ba0cbe6e767fb0912"; + auth.openssh.enable = true; + libvirt.enable = false; + fs.esp.uuid = "8C36-CBE2"; + fs.type = "zfs"; + fs.zfs.externalStore = true; + fs.external.device = "/dev/disk/by-uuid/59b73292-8098-4774-b8b6-59c23130d405"; + fs.external.fsType = "xfs"; + fs.external.options = [ "noatime" ]; + fs.cryptsetup.enable = true; + fs.cryptsetup.allowDiscards = false; + fs.cryptsetup.uuids.secret = "c2bc361e-6f9a-48fa-b698-ed3603a9664a"; + boot.lanzaboote = true; + }; + + services.fstrim.enable = true; + boot.swraid.enable = true; + boot.swraid.mdadmConf = '' + PROGRAM /usr/bin/true + ''; + fileSystems."/nix/var/secret" = + { device = "/dev/disk/by-uuid/f8983719-f9e7-42b2-b8f3-0f32f6b328ae"; + fsType = "ext4"; + options = [ "noatime" ]; + neededForBoot = true; + depends = [ "/nix/var" ]; + }; + boot.initrd.systemd.services.zfs-import-focus.after = [ "cryptsetup.target" ]; + + networking.proxy = { + default = "socks5://192.168.1.1:1080"; + noProxy = "10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,127.0.0.1,localhost,.localdomain"; + }; + + imports = lib.pipe ./. [ + builtins.readDir + (lib.filterAttrs (n: ty: ty == "regular" && n != "default.nix")) + (lib.mapAttrsToList (n: _: ./${n})) + ]; + + hardware.enableRedistributableFirmware = true; + boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ]; + boot.initrd.kernelModules = [ "i915" ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + hardware.cpu.intel.updateMicrocode = true; +} From bf5815790f4bf408abec491b2607c2c5c6b698f6 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 27 Jan 2024 09:55:36 +0800 Subject: [PATCH 131/447] spec(focus): enable libvirt and acme --- spec/focus/acme.nix | 11 +++++++++++ spec/focus/default.nix | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 spec/focus/acme.nix diff --git a/spec/focus/acme.nix b/spec/focus/acme.nix new file mode 100644 index 00000000..47a359d3 --- /dev/null +++ b/spec/focus/acme.nix @@ -0,0 +1,11 @@ +{ + security.acme.certs = let + cloudflare = { + dnsProvider = "cloudflare"; + credentialsFile = "/nix/persist/secret/cloudflare"; + }; + in { + "sf.514fpv.io" = cloudflare; + ".sf.514fpv.io" = cloudflare // { domain = "*.sf.514fpv.io"; }; + }; +} diff --git a/spec/focus/default.nix b/spec/focus/default.nix index 5db6cb4d..55521803 100644 --- a/spec/focus/default.nix +++ b/spec/focus/default.nix @@ -3,7 +3,6 @@ global = { id = "22e9d4e37bd7436ba0cbe6e767fb0912"; auth.openssh.enable = true; - libvirt.enable = false; fs.esp.uuid = "8C36-CBE2"; fs.type = "zfs"; fs.zfs.externalStore = true; @@ -14,6 +13,7 @@ fs.cryptsetup.allowDiscards = false; fs.cryptsetup.uuids.secret = "c2bc361e-6f9a-48fa-b698-ed3603a9664a"; boot.lanzaboote = true; + acme.enable = true; }; services.fstrim.enable = true; From e64a5aa3b118e398aa9b618faa68f5228a0ca192 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 27 Jan 2024 09:55:46 +0800 Subject: [PATCH 132/447] spec(focus): enable postgresql --- spec/focus/postgresql.nix | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 spec/focus/postgresql.nix diff --git a/spec/focus/postgresql.nix b/spec/focus/postgresql.nix new file mode 100644 index 00000000..22d99ced --- /dev/null +++ b/spec/focus/postgresql.nix @@ -0,0 +1,12 @@ +{ pkgs +, config +, ...}: { + services.postgresql = { + enable = true; + dataDir = "/nix/persist/service/postgresql/${config.services.postgresql.package.psqlSchema}"; + + package = pkgs.postgresql_15; + }; + + global.fs.zfs.mountpoints."/nix/persist/service/postgresql" = "service/postgresql"; +} From 3f47deafabf81a83cf153535df23ac3c1e59c641 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 27 Jan 2024 09:56:16 +0800 Subject: [PATCH 133/447] spec(focus): configure nginx --- spec/focus/nginx.nix | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 spec/focus/nginx.nix diff --git a/spec/focus/nginx.nix b/spec/focus/nginx.nix new file mode 100644 index 00000000..7c8bb5e7 --- /dev/null +++ b/spec/focus/nginx.nix @@ -0,0 +1,24 @@ +{ + services.nginx = { + enable = true; + + # enable all recommended settings + recommendedTlsSettings = true; + recommendedOptimisation = true; + recommendedGzipSettings = true; + recommendedProxySettings = true; + + # set a reasonable default + clientMaxBodySize = "64m"; + + virtualHosts = { + "_" = { + addSSL = true; + useACMEHost = ".sf.514fpv.io"; + extraConfig = "return 444;"; + }; + }; + }; + + networking.firewall.allowedTCPPorts = [ 80 443 ]; +} From 9021472c569a18fd96171f9509188fbd86e70f57 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 27 Jan 2024 09:56:24 +0800 Subject: [PATCH 134/447] spec(focus): enable nextcloud --- spec/focus/nextcloud.nix | 42 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 spec/focus/nextcloud.nix diff --git a/spec/focus/nextcloud.nix b/spec/focus/nextcloud.nix new file mode 100644 index 00000000..94f32236 --- /dev/null +++ b/spec/focus/nextcloud.nix @@ -0,0 +1,42 @@ +{ pkgs +, ...}: let + host = "cloud.sf.514fpv.io"; +in { + services.nextcloud = { + enable = true; + package = pkgs.nextcloud28; + extraApps = { + inherit (pkgs.nextcloud28Packages.apps) + notify_push impersonate spreed + contacts bookmarks deck polls notes forms; + }; + home = "/nix/persist/service/nextcloud"; + configureRedis = true; + webfinger = true; + maxUploadSize = "128G"; + hostName = host; + phpExtraExtensions = all: with all; [ bz2 ]; + database.createLocally = true; + config.dbtype = "pgsql"; + config.adminuser = "koishi"; + config.adminpassFile = builtins.toString (pkgs.writeText "password" "initial_password"); + extraOptions.overwriteprotocol = "https"; + extraOptions.default_phone_region = "US"; + caching.redis = true; + phpOptions.upload_max_filesize = "128G"; + phpOptions.post_max_size = "128G"; + phpOptions.output_buffering = "0"; + phpOptions."opcache.interned_strings_buffer" = "32"; + https = true; + }; + + users.users.nextcloud.uid = 1022; + users.groups.nextcloud.gid = 1022; + + services.nginx.virtualHosts.${host} = { + useACMEHost = ".sf.514fpv.io"; + addSSL = true; + }; + + global.fs.zfs.mountpoints."/nix/persist/service/nextcloud" = "service/nextcloud"; +} From c2f6bcde7fda240fa5ec1b3f8cd01b0a1a938b72 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 27 Jan 2024 09:58:08 +0800 Subject: [PATCH 135/447] flake: bump inputs --- flake.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/flake.lock b/flake.lock index db70c9c8..f3fccfaa 100644 --- a/flake.lock +++ b/flake.lock @@ -155,11 +155,11 @@ ] }, "locked": { - "lastModified": 1705708511, - "narHash": "sha256-3f4BkRY70Fj7yvuo87c4QQPAjnt571g2wJ50jY7hnYc=", + "lastModified": 1706306660, + "narHash": "sha256-lZvgkHtVeduGByPb0Tz9LpAi4olfkEm8XPgv0o7GRsk=", "owner": "nix-community", "repo": "home-manager", - "rev": "ce4b88c465d928f4f8b75d0920f1788d5b65ca94", + "rev": "b2f56952074cb46e93902ecaabfb04dd93733434", "type": "github" }, "original": { @@ -213,11 +213,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1705496572, - "narHash": "sha256-rPIe9G5EBLXdBdn9ilGc0nq082lzQd0xGGe092R/5QE=", + "lastModified": 1706191920, + "narHash": "sha256-eLihrZAPZX0R6RyM5fYAWeKVNuQPYjAkCUBr+JNvtdE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "842d9d80cfd4560648c785f8a4e6f3b096790e19", + "rev": "ae5c332cbb5827f6b1f02572496b141021de335f", "type": "github" }, "original": { From e6b7b1fab545b06076c5cf421048b1bb978d9d0d Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 27 Jan 2024 15:41:25 +0800 Subject: [PATCH 136/447] spec(focus): set default nextcloud language --- spec/focus/nextcloud.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/spec/focus/nextcloud.nix b/spec/focus/nextcloud.nix index 94f32236..da47afcc 100644 --- a/spec/focus/nextcloud.nix +++ b/spec/focus/nextcloud.nix @@ -22,6 +22,8 @@ in { config.adminpassFile = builtins.toString (pkgs.writeText "password" "initial_password"); extraOptions.overwriteprotocol = "https"; extraOptions.default_phone_region = "US"; + extraOptions.default_language = "zh"; + extraOptions.default_locale = "zh_Hans_CN"; caching.redis = true; phpOptions.upload_max_filesize = "128G"; phpOptions.post_max_size = "128G"; From 213eb87b9065729311c1aabce767ed826130cef0 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 27 Jan 2024 22:14:03 +0800 Subject: [PATCH 137/447] global(gpu): rename from gui --- global/{gui => gpu}/default.nix | 8 ++++---- global/{gui => gpu}/greetd.nix | 2 +- global/{gui => gpu}/plymouth.nix | 4 ++-- global/io/default.nix | 2 +- global/oci/default.nix | 2 +- home/chrome/nixos.nix | 2 +- home/gui/nixos.nix | 2 +- home/sway/nixos.nix | 4 ++-- home/util/nixos.nix | 2 +- home/virt-manager/nixos.nix | 2 +- spec/chireiden/default.nix | 4 ++-- spec/eientei/default.nix | 6 +++--- spec/koumakyou/default.nix | 4 ++-- spec/yume/default.nix | 4 ++-- 14 files changed, 24 insertions(+), 24 deletions(-) rename global/{gui => gpu}/default.nix (95%) rename global/{gui => gpu}/greetd.nix (95%) rename global/{gui => gpu}/plymouth.nix (84%) diff --git a/global/gui/default.nix b/global/gpu/default.nix similarity index 95% rename from global/gui/default.nix rename to global/gpu/default.nix index 8a7e88f4..24c84b9e 100644 --- a/global/gui/default.nix +++ b/global/gpu/default.nix @@ -2,7 +2,7 @@ , lib , config , ... }: with lib; let - cfg = config.global.gui; + cfg = config.global.gpu; intel = cfg.type == "intel" || (cfg.type == "prime" && config.hardware.nvidia.prime.intelBusId != ""); amdgpu = cfg.type == "amdgpu" || (cfg.type == "prime" && config.hardware.nvidia.prime.amdgpuBusId != ""); @@ -13,7 +13,7 @@ in { ./greetd.nix ]; - options.global.gui = { + options.global.gpu = { enable = mkEnableOption "various setup required for GUI and support software"; session = mkEnableOption "software required for a graphical session" // { default = true; }; type = mkOption { @@ -77,14 +77,14 @@ in { specialisation.integratedGraphics = mkIf (cfg.type == "prime") { configuration = { - global.gui.type = mkForce (if intel then "intel" else if amdgpu then "amdgpu" else "prime"); + global.gpu.type = mkForce (if intel then "intel" else if amdgpu then "amdgpu" else "prime"); boot.blacklistedKernelModules = [ "nouveau" ]; }; }; specialisation.withArc = mkIf (cfg.arc != null) { configuration = { - global.gui.arc = mkForce null; + global.gpu.arc = mkForce null; powerManagement.cpuFreqGovernor = mkForce "performance"; }; }; diff --git a/global/gui/greetd.nix b/global/gpu/greetd.nix similarity index 95% rename from global/gui/greetd.nix rename to global/gpu/greetd.nix index 7a208862..507e9a36 100644 --- a/global/gui/greetd.nix +++ b/global/gpu/greetd.nix @@ -2,7 +2,7 @@ , lib , config , ... }: with lib; let - cfg = config.global.gui; + cfg = config.global.gpu; in mkIf (cfg.enable && cfg.session) { programs.regreet = { enable = true; diff --git a/global/gui/plymouth.nix b/global/gpu/plymouth.nix similarity index 84% rename from global/gui/plymouth.nix rename to global/gpu/plymouth.nix index a588206c..2d7f7404 100644 --- a/global/gui/plymouth.nix +++ b/global/gpu/plymouth.nix @@ -2,10 +2,10 @@ , lib , config , ... }: with lib; let - cfg = config.global.gui; + cfg = config.global.gpu; in mkIf cfg.enable { boot = { - loader.timeout = lib.mkDefault 0; + loader.timeout = mkDefault 0; consoleLogLevel = 0; initrd.verbose = false; initrd.systemd.enable = true; diff --git a/global/io/default.nix b/global/io/default.nix index 13345ac2..b6c690a5 100644 --- a/global/io/default.nix +++ b/global/io/default.nix @@ -3,7 +3,7 @@ , config , ... }: with lib; let cfg = config.global.io; - gui = with config.global.gui; enable && session; + gui = with config.global.gpu; enable && session; in { options.global.io = { betaflight = mkEnableOption "betaflight udev rules" // { default = true; }; diff --git a/global/oci/default.nix b/global/oci/default.nix index 4827c71a..a31bfbdc 100644 --- a/global/oci/default.nix +++ b/global/oci/default.nix @@ -11,7 +11,7 @@ in { config = mkIf cfg.enable { virtualisation.podman = { enable = true; - enableNvidia = with config.global.gui; mkDefault (type == "prime" || type == "nvidia"); + enableNvidia = with config.global.gpu; mkDefault type == "prime" || type == "nvidia"; dockerCompat = true; }; diff --git a/home/chrome/nixos.nix b/home/chrome/nixos.nix index a432134b..cdb23871 100644 --- a/home/chrome/nixos.nix +++ b/home/chrome/nixos.nix @@ -2,7 +2,7 @@ , lib , config , ... }: with lib; let - gui = with config.global.gui; ( enable && session ); + gui = with config.global.gpu; enable && session; in { users.home.persist.directories = mkIf gui [ ".config/google-chrome" ]; security.chromiumSuidSandbox.enable = mkIf gui true; diff --git a/home/gui/nixos.nix b/home/gui/nixos.nix index 469ab38c..605e5acb 100644 --- a/home/gui/nixos.nix +++ b/home/gui/nixos.nix @@ -2,7 +2,7 @@ , lib , config , ... }: with lib; let - gui = with config.global.gui; ( enable && session ); + gui = with config.global.gpu; enable && session; in { config = { users.homeModules = [ diff --git a/home/sway/nixos.nix b/home/sway/nixos.nix index 6e09b3af..3817720f 100644 --- a/home/sway/nixos.nix +++ b/home/sway/nixos.nix @@ -2,8 +2,8 @@ , lib , config , ... }: with lib; let - gui = with config.global.gui; ( enable && session ); - nvidia = with config.global.gui; ( type == "nvidia" || type == "prime" ); + gui = with config.global.gpu; enable && session; + nvidia = with config.global.gpu; type == "nvidia" || type == "prime"; in mkIf gui { services.xserver.displayManager.sessionPackages = [ (pkgs.writeTextFile { diff --git a/home/util/nixos.nix b/home/util/nixos.nix index f8943085..9ff31114 100644 --- a/home/util/nixos.nix +++ b/home/util/nixos.nix @@ -3,7 +3,7 @@ , config , ... }: with lib; let cfg = config.home.util; - gui = with config.global.gui; ( enable && session ); + gui = with config.global.gpu; enable && session; in { options.home.util = { minimal = mkEnableOption "minimal system environment with less packages"; diff --git a/home/virt-manager/nixos.nix b/home/virt-manager/nixos.nix index ab11e6f5..fc865a12 100644 --- a/home/virt-manager/nixos.nix +++ b/home/virt-manager/nixos.nix @@ -2,7 +2,7 @@ , lib , config , ... }: with lib; let - gui = with config.global.gui; ( enable && session ); + gui = with config.global.gpu; enable && session; in mkIf gui { programs.virt-manager.enable = true; } diff --git a/spec/chireiden/default.nix b/spec/chireiden/default.nix index 2791079c..0e3a9dde 100644 --- a/spec/chireiden/default.nix +++ b/spec/chireiden/default.nix @@ -12,8 +12,8 @@ fs.cryptsetup.uuids.nix = "3905f87f-7b11-49ef-8ddf-f4202c555ffd"; fs.cryptsetup.uuids.persist = "b2322f01-1c44-433f-a995-4ddce5845cf9"; boot.lanzaboote = true; - gui.enable = true; - gui.type = "prime"; + gpu.enable = true; + gpu.type = "prime"; android.enable = true; }; diff --git a/spec/eientei/default.nix b/spec/eientei/default.nix index a35ee350..64fb3dbc 100644 --- a/spec/eientei/default.nix +++ b/spec/eientei/default.nix @@ -4,9 +4,9 @@ fs.esp.uuid = "FC6D-75D8"; fs.type = "zfs"; boot.lanzaboote = true; - gui.enable = true; - gui.type = "intel"; - gui.arc = "8086:5691"; + gpu.enable = true; + gpu.type = "intel"; + gpu.arc = "8086:5691"; android.enable = true; }; diff --git a/spec/koumakyou/default.nix b/spec/koumakyou/default.nix index 0c3cf9d0..05bbe757 100644 --- a/spec/koumakyou/default.nix +++ b/spec/koumakyou/default.nix @@ -14,8 +14,8 @@ fs.cryptsetup.uuids.nix = "84baa53a-c76d-4716-813a-196f5a53e44d"; fs.cryptsetup.uuids.persist = "e31f8b1c-6504-4b43-93dd-997ad17ebf5e"; boot.lanzaboote = true; - gui.enable = true; - gui.type = "prime"; + gpu.enable = true; + gpu.type = "prime"; asusd.enable = true; oci.enable = true; }; diff --git a/spec/yume/default.nix b/spec/yume/default.nix index c2084658..6e5d0d1f 100644 --- a/spec/yume/default.nix +++ b/spec/yume/default.nix @@ -8,8 +8,8 @@ fs.esp.uuid = "6CEB-765A"; fs.type = "xfs"; fs.store = "b80e8bbe-d1ff-4d2e-ae25-9e9048d67355"; - gui.enable = true; - gui.type = "nvidia"; + gpu.enable = true; + gpu.type = "nvidia"; }; home = { From 8d5d26241af0bec3849c2e64f9e929e6653b0ed8 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 27 Jan 2024 22:47:32 +0800 Subject: [PATCH 138/447] home(util): separate BLHeliSuite32 state workaround from dist and add per-user state dir --- home/util/home.nix | 2 +- package/blhelisuite32/default.nix | 28 ++++++++++++++++++---------- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/home/util/home.nix b/home/util/home.nix index 49a9266b..3f43c287 100644 --- a/home/util/home.nix +++ b/home/util/home.nix @@ -19,7 +19,7 @@ in { betaflight-configurator inav-configurator inav-blackbox-tools - blhelisuite32 + (blhelisuite32.override { workdir = "${config.home.homeDirectory}/.blhelisuite32"; }) expresslrs-configurator ]; diff --git a/package/blhelisuite32/default.nix b/package/blhelisuite32/default.nix index 18656550..d07b318b 100644 --- a/package/blhelisuite32/default.nix +++ b/package/blhelisuite32/default.nix @@ -4,23 +4,17 @@ , fetchzip , stdenvNoCC , makeDesktopItem -, buildFHSUserEnv }: let +, buildFHSUserEnv +, workdir ? "/tmp/blhelisuite32" }: let name = "BLHeliSuite32"; pname = "blhelisuite32"; - workdir = "/tmp/${pname}"; version = "32.10"; suffix = "1044"; dist = fetchzip { name = "${pname}-dist"; url = "https://github.com/bitdump/BLHeli/releases/download/Rev${version}/${name}xLinux64_${suffix}.zip"; - hash = "sha256-lempCne+Sf/38WHfJHRdL6MspSpi+UhpZNFcsPgI0jw="; - - postFetch = '' - # BLHeliSuite32 tries to write next to its binary - ln -s ${workdir}/settings $out/Settings - ln -s ${workdir}/music $out/Music - ''; + hash = "sha256-y4S824s9Ipxb1M1IeD6Lo6k7hmm8CEmPflvhaqZz+84="; }; desktopItem = makeDesktopItem { @@ -56,6 +50,20 @@ cp -r ${name}*.png "$out" ''; }; + + linked = stdenvNoCC.mkDerivation { + inherit pname version; + phases = [ "unpackPhase" "patchPhase" "installPhase" ]; + src = dist; + + installPhase = '' + cp -r . "$out" + + # BLHeliSuite32 tries to write next to its binary + ln -s ${workdir}/settings $out/Settings + ln -s ${workdir}/music $out/Music + ''; + }; in buildFHSUserEnv { inherit pname; targetPkgs = pkgs: (with pkgs; [ @@ -80,5 +88,5 @@ in buildFHSUserEnv { runScript = "sh -c '" + "mkdir -p ${workdir}/settings && " + "mkdir -p ${workdir}/music && " + - "exec ${dist}/${name}xl'"; + "exec ${linked}/${name}xl'"; } From 60e994f49748a68e40c3d290da5562af02f098e4 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 28 Jan 2024 10:38:29 +0800 Subject: [PATCH 139/447] home(gui): switch to papirus icon theme --- global/gpu/greetd.nix | 4 ++-- home/gui/home.nix | 18 +++++++++--------- home/gui/nixos.nix | 2 +- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/global/gpu/greetd.nix b/global/gpu/greetd.nix index 507e9a36..ed9231da 100644 --- a/global/gpu/greetd.nix +++ b/global/gpu/greetd.nix @@ -5,7 +5,7 @@ cfg = config.global.gpu; in mkIf (cfg.enable && cfg.session) { programs.regreet = { - enable = true; + enable = mkDefault true; cageArgs = [ "-s" "-d" "-m" "last" ]; settings = { background.path = ../../share/54345906_p0.jpg; @@ -13,7 +13,7 @@ in mkIf (cfg.enable && cfg.session) { GTK = { application_prefer_dark_theme = true; cursor_theme_name = "Bibata-Modern-Classic"; - icon_theme_name = "WhiteSur-dark"; + icon_theme_name = "Papirus-Dark"; theme_name = "WhiteSur-Dark"; }; }; diff --git a/home/gui/home.nix b/home/gui/home.nix index b6aca66f..db833554 100644 --- a/home/gui/home.nix +++ b/home/gui/home.nix @@ -4,26 +4,26 @@ , ... }: with lib; mkIf config.passthrough.gui { # cursor theme home.pointerCursor = { - package = pkgs.bibata-cursors; - name = "Bibata-Modern-Classic"; + package = mkDefault pkgs.bibata-cursors; + name = mkDefault "Bibata-Modern-Classic"; size = 24; }; # gtk theme gtk.theme = { - package = pkgs.whitesur-gtk-theme; - name = "WhiteSur-Dark"; + package = mkDefault pkgs.whitesur-gtk-theme; + name = mkDefault "WhiteSur-Dark"; }; # gtk icons gtk.iconTheme = { - package = pkgs.whitesur-icon-theme; - name = "WhiteSur-dark"; + package = mkDefault pkgs.papirus-icon-theme; + name = mkDefault "Papirus-Dark"; }; # unify qt theme - qt.platformTheme = "gtk"; + qt.platformTheme = mkDefault "gtk"; - gtk.enable = true; - qt.enable = true; + gtk.enable = mkDefault true; + qt.enable = mkDefault true; } diff --git a/home/gui/nixos.nix b/home/gui/nixos.nix index 605e5acb..abde0634 100644 --- a/home/gui/nixos.nix +++ b/home/gui/nixos.nix @@ -14,7 +14,7 @@ in { # themes and icons environment.systemPackages = with pkgs; mkIf gui [ whitesur-gtk-theme whitesur-icon-theme - bibata-cursors + papirus-icon-theme bibata-cursors ]; fonts.enableDefaultPackages = mkIf gui true; From a36f1fb48bec1c58ee6aa4f5ec742a23bae9b33c Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 28 Jan 2024 10:38:51 +0800 Subject: [PATCH 140/447] global(io): betaflight default follow gui --- global/io/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global/io/default.nix b/global/io/default.nix index b6c690a5..9aad2d97 100644 --- a/global/io/default.nix +++ b/global/io/default.nix @@ -6,7 +6,7 @@ gui = with config.global.gpu; enable && session; in { options.global.io = { - betaflight = mkEnableOption "betaflight udev rules" // { default = true; }; + betaflight = mkEnableOption "betaflight udev rules" // { default = gui; }; bluetooth = mkEnableOption "bluetooth daemons and state persistence" // { default = gui; }; audio = mkEnableOption "pulseaudio server configuration" // { default = gui; }; coredump = mkEnableOption "save coredumps handled by systemd"; From 5025216ce631bafb758f12d8cd6cf1918faca3c9 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 28 Jan 2024 11:24:48 +0800 Subject: [PATCH 141/447] home(plasma): add plasma desktop --- home/plasma/nixos.nix | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 home/plasma/nixos.nix diff --git a/home/plasma/nixos.nix b/home/plasma/nixos.nix new file mode 100644 index 00000000..55e19f9d --- /dev/null +++ b/home/plasma/nixos.nix @@ -0,0 +1,31 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.home.plasma; +in { + options.home.plasma = { + enable = mkEnableOption "KDE plasma desktop environment"; + }; + + config = { + users.homeModules = [ + # this module passes plasma configuration to home-manager + { passthrough.plasma = cfg; } + ]; + + specialisation.noplasma = with cfg; mkIf enable { + configuration = { + home.plasma.enable = mkForce false; + }; + }; + + programs.regreet.enable = mkIf cfg.enable false; + services.xserver.enable = mkIf cfg.enable true; + services.xserver.displayManager.startx.enable = mkIf cfg.enable false; + services.xserver.displayManager.sddm.enable = mkIf cfg.enable true; + services.xserver.desktopManager.plasma5.enable = mkIf cfg.enable true; + + users.home.persist.directories = mkIf cfg.enable [ ]; + }; +} From d83301cbd1ce9cdebde4e98d974f94845f0a8729 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 28 Jan 2024 11:25:17 +0800 Subject: [PATCH 142/447] home(gui): disable hm qt config for plasma since it breaks the wayland session --- home/gui/home.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/home/gui/home.nix b/home/gui/home.nix index db833554..58e3d73b 100644 --- a/home/gui/home.nix +++ b/home/gui/home.nix @@ -22,8 +22,8 @@ }; # unify qt theme - qt.platformTheme = mkDefault "gtk"; + qt.platformTheme = mkIf (!config.passthrough.plasma.enable) "gtk"; gtk.enable = mkDefault true; - qt.enable = mkDefault true; + qt.enable = mkDefault (!config.passthrough.plasma.enable); } From 75f14809081bf55479f78375d6003e33860abc93 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 28 Jan 2024 16:38:17 +0800 Subject: [PATCH 143/447] home(plasma): remove plasma desktop --- home/gui/home.nix | 4 ++-- home/plasma/nixos.nix | 31 ------------------------------- 2 files changed, 2 insertions(+), 33 deletions(-) delete mode 100644 home/plasma/nixos.nix diff --git a/home/gui/home.nix b/home/gui/home.nix index 58e3d73b..db833554 100644 --- a/home/gui/home.nix +++ b/home/gui/home.nix @@ -22,8 +22,8 @@ }; # unify qt theme - qt.platformTheme = mkIf (!config.passthrough.plasma.enable) "gtk"; + qt.platformTheme = mkDefault "gtk"; gtk.enable = mkDefault true; - qt.enable = mkDefault (!config.passthrough.plasma.enable); + qt.enable = mkDefault true; } diff --git a/home/plasma/nixos.nix b/home/plasma/nixos.nix deleted file mode 100644 index 55e19f9d..00000000 --- a/home/plasma/nixos.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ pkgs -, lib -, config -, ... }: with lib; let - cfg = config.home.plasma; -in { - options.home.plasma = { - enable = mkEnableOption "KDE plasma desktop environment"; - }; - - config = { - users.homeModules = [ - # this module passes plasma configuration to home-manager - { passthrough.plasma = cfg; } - ]; - - specialisation.noplasma = with cfg; mkIf enable { - configuration = { - home.plasma.enable = mkForce false; - }; - }; - - programs.regreet.enable = mkIf cfg.enable false; - services.xserver.enable = mkIf cfg.enable true; - services.xserver.displayManager.startx.enable = mkIf cfg.enable false; - services.xserver.displayManager.sddm.enable = mkIf cfg.enable true; - services.xserver.desktopManager.plasma5.enable = mkIf cfg.enable true; - - users.home.persist.directories = mkIf cfg.enable [ ]; - }; -} From caa9cd51f6c6182c3d550892bf7e517b8a0fef04 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 28 Jan 2024 16:51:53 +0800 Subject: [PATCH 144/447] home(gnome): add gnome desktop --- home/gnome/impl.nix | 15 +++++++++++++++ home/gnome/nixos.nix | 25 +++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 home/gnome/impl.nix create mode 100644 home/gnome/nixos.nix diff --git a/home/gnome/impl.nix b/home/gnome/impl.nix new file mode 100644 index 00000000..c6617c86 --- /dev/null +++ b/home/gnome/impl.nix @@ -0,0 +1,15 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.home.gnome; +in mkIf cfg.enable { + programs.regreet.enable = false; + services.xserver.enable = true; + services.xserver.displayManager.startx.enable = false; + services.xserver.displayManager.gdm.enable = true; + services.xserver.desktopManager.gnome.enable = true; + + users.home.persist.directories = [ ]; + environment.persistence."/nix/persist/fhs".directories = [ ]; +} diff --git a/home/gnome/nixos.nix b/home/gnome/nixos.nix new file mode 100644 index 00000000..26687e9d --- /dev/null +++ b/home/gnome/nixos.nix @@ -0,0 +1,25 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.home.gnome; +in { + imports = [ ./impl.nix ]; + + options.home.gnome = { + enable = mkEnableOption "GNOME desktop environment"; + }; + + config = { + users.homeModules = [ + # this module passes gnome configuration to home-manager + { passthrough.gnome= cfg; } + ]; + + specialisation.nognome = with cfg; mkIf enable { + configuration = { + home.gnome.enable = mkForce false; + }; + }; + }; +} From 070015806c55f2eb93430e088d908835c38b0456 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 28 Jan 2024 16:52:19 +0800 Subject: [PATCH 145/447] spec(incinerator): remove unnecessary configuration --- spec/incinerator/default.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/spec/incinerator/default.nix b/spec/incinerator/default.nix index bc5c8243..89b26aa6 100644 --- a/spec/incinerator/default.nix +++ b/spec/incinerator/default.nix @@ -5,8 +5,6 @@ id = "62ea62fde6c04fb6b5c791892b6798c8"; auth.openssh.enable = true; libvirt.enable = false; - io.bluetooth = false; - io.audio = false; fs.type = "ext4"; fs.store = "7c3459d2-c046-4ef6-8bc6-a8cf97bcade9"; oci.enable = true; From 2b0394902c1ca26d052cc02d3aa296fdb9daba9a Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 29 Jan 2024 00:19:57 +0800 Subject: [PATCH 146/447] home: add profile pictures --- home/app/nixos.nix | 1 + home/picture/app.png | Bin 0 -> 33957 bytes home/picture/koishi.png | Bin 0 -> 241517 bytes home/picture/staging.png | Bin 0 -> 21235 bytes home/profile.nix | 8 ++++++++ home/user.nix | 2 ++ 6 files changed, 11 insertions(+) create mode 100644 home/picture/app.png create mode 100644 home/picture/koishi.png create mode 100644 home/picture/staging.png diff --git a/home/app/nixos.nix b/home/app/nixos.nix index 9318e957..4cfb6191 100644 --- a/home/app/nixos.nix +++ b/home/app/nixos.nix @@ -19,6 +19,7 @@ in { users.profiles.app = { uid = 5800; description = "Insecure Applications"; + picture = ../picture/app.png; }; # extra persistence specific to the app user diff --git a/home/picture/app.png b/home/picture/app.png new file mode 100644 index 0000000000000000000000000000000000000000..6cbfd8a25af580442438dd3135c94b6b98317975 GIT binary patch literal 33957 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%0Aw7U5lX8$22pt?9Tdx$MIhvrFG> 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
EST*vRbeD(Mx+Kx7)TW&J&c| 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 diff --git a/home/profile.nix b/home/profile.nix index d14f39c4..4a00bf32 100644 --- a/home/profile.nix +++ b/home/profile.nix @@ -144,6 +144,26 @@ in { home.stateVersion = "23.11"; }) cfg.profiles; + system.activationScripts = mapAttrs' + (name: opts: nameValuePair + "${name}-profile-icon" + { + deps = [ "users" ]; + text = let + iconDest = "/var/lib/AccountsService/icons/${name}"; + userConf = pkgs.writeText "${name}-config" '' + [User] + Session= + Icon=${iconDest} + SystemAccount=false + ''; + in '' + install -Dm 0444 ${opts.picture} ${iconDest} + install -Dm 0400 ${userConf} /var/lib/AccountsService/users/${name} + ''; + }) + (filterAttrs (n: _: n != "root") config.users.profiles); + # set up standard persistence for users # this is registered internally for each software's configuration environment.persistence."/nix/persist" = { From df532b181765b56abcc6fa16769db34b99b4a35e Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 14 May 2024 20:02:58 +0800 Subject: [PATCH 344/447] spec(koumakyou): disable autolock --- spec/koumakyou/jovian.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/koumakyou/jovian.nix b/spec/koumakyou/jovian.nix index efc34d27..500f11ab 100644 --- a/spec/koumakyou/jovian.nix +++ b/spec/koumakyou/jovian.nix @@ -26,6 +26,7 @@ home.plasma.extraConfig = { configFile = { kwinrc.Xwayland.Scale = 1.75; + kscreenlockerrc.Daemon.Autolock = false; }; }; } // { From 9f0b2ea52bc1c254f83ed2738e1e11fdc5e196a7 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 14 May 2024 20:03:10 +0800 Subject: [PATCH 345/447] spec(yume): disable autolock --- spec/yume/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/yume/default.nix b/spec/yume/default.nix index da31ff9e..9d0dec00 100644 --- a/spec/yume/default.nix +++ b/spec/yume/default.nix @@ -24,6 +24,7 @@ home.plasma.extraConfig = { configFile = { + kscreenlockerrc.Daemon.Autolock = false; kcminputrc."Libinput/16700/9486/Dell Computer Corp Dell Laser Mouse MS3220".NaturalScroll = true; }; }; From 9c4d7673f9c6efa2686604220bc84b0a7e6f972b Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 14 May 2024 20:10:30 +0800 Subject: [PATCH 346/447] flake: bump inputs --- flake.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/flake.lock b/flake.lock index a14427c4..32408568 100644 --- a/flake.lock +++ b/flake.lock @@ -155,11 +155,11 @@ ] }, "locked": { - "lastModified": 1715380449, - "narHash": "sha256-716+f9Rj3wjSyD1xitCv2FcYbgPz1WIVDj+ZBclH99Y=", + "lastModified": 1715486357, + "narHash": "sha256-4pRuzsHZOW5W4CsXI9uhKtiJeQSUoe1d2M9mWU98HC4=", "owner": "nix-community", "repo": "home-manager", - "rev": "d7682620185f213df384c363288093b486b2883f", + "rev": "44677a1c96810a8e8c4ffaeaad10c842402647c1", "type": "github" }, "original": { @@ -190,11 +190,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1715329503, - "narHash": "sha256-0JbGas4wnC4KEVclsC7QGUMhLAujCpPRwqMcLQekLuM=", + "lastModified": 1715417624, + "narHash": "sha256-Wp3vGZRQYVrEveB9UXXZRDvRFrkw6rXXXLxj/6sbg7M=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "653ade87d2918df1fff927ed6666e72d26ffcdff", + "rev": "8fef078acb3206be58ae5892a32d6ed75b695647", "type": "github" }, "original": { @@ -286,11 +286,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1715266358, - "narHash": "sha256-doPgfj+7FFe9rfzWo1siAV2mVCasW+Bh8I1cToAXEE4=", + "lastModified": 1715534503, + "narHash": "sha256-5ZSVkFadZbFP1THataCaSf0JH2cAH3S29hU9rrxTEqk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "f1010e0469db743d14519a1efd37e23f8513d714", + "rev": "2057814051972fa1453ddfb0d98badbea9b83c06", "type": "github" }, "original": { From 61e56b0a4f455b0a32f028188c349c49fd1a6ae8 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 18 May 2024 21:57:57 +0800 Subject: [PATCH 347/447] flake: bump inputs --- flake.lock | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/flake.lock b/flake.lock index 32408568..65c58a95 100644 --- a/flake.lock +++ b/flake.lock @@ -56,11 +56,11 @@ ] }, "locked": { - "lastModified": 1714641030, - "narHash": "sha256-yzcRNDoyVP7+SCNX0wmuDju1NUCt8Dz9+lyUXEI0dbI=", + "lastModified": 1715865404, + "narHash": "sha256-/GJvTdTpuDjNn84j82cU6bXztE0MSkdnTWClUCRub78=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "e5d10a24b66c3ea8f150e47dfdb0416ab7c3390e", + "rev": "8dc45382d5206bd292f9c2768b8058a8fd8311d9", "type": "github" }, "original": { @@ -155,11 +155,11 @@ ] }, "locked": { - "lastModified": 1715486357, - "narHash": "sha256-4pRuzsHZOW5W4CsXI9uhKtiJeQSUoe1d2M9mWU98HC4=", + "lastModified": 1715930644, + "narHash": "sha256-W9pyM3/vePxrffHtzlJI6lDS3seANQ+Nqp+i58O46LI=", "owner": "nix-community", "repo": "home-manager", - "rev": "44677a1c96810a8e8c4ffaeaad10c842402647c1", + "rev": "e3ad5108f54177e6520535768ddbf1e6af54b59d", "type": "github" }, "original": { @@ -190,11 +190,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1715417624, - "narHash": "sha256-Wp3vGZRQYVrEveB9UXXZRDvRFrkw6rXXXLxj/6sbg7M=", + "lastModified": 1715922002, + "narHash": "sha256-FSUrne82MXFzZ7R88ZnJz21kv06GS2TS/Ctsd+RXbP4=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "8fef078acb3206be58ae5892a32d6ed75b695647", + "rev": "23a55d6bb80f6340d0acdb9feef754646b68f895", "type": "github" }, "original": { @@ -254,11 +254,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1714076141, - "narHash": "sha256-Drmja/f5MRHZCskS6mvzFqxEaZMeciScCTFxWVLqWEY=", + "lastModified": 1715787315, + "narHash": "sha256-cYApT0NXJfqBkKcci7D9Kr4CBYZKOQKDYA23q8XNuWg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "7bb2ccd8cdc44c91edba16c48d2c8f331fb3d856", + "rev": "33d1e753c82ffc557b4a585c77de43d4c922ebb5", "type": "github" }, "original": { @@ -286,11 +286,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1715534503, - "narHash": "sha256-5ZSVkFadZbFP1THataCaSf0JH2cAH3S29hU9rrxTEqk=", + "lastModified": 1715787315, + "narHash": "sha256-cYApT0NXJfqBkKcci7D9Kr4CBYZKOQKDYA23q8XNuWg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "2057814051972fa1453ddfb0d98badbea9b83c06", + "rev": "33d1e753c82ffc557b4a585c77de43d4c922ebb5", "type": "github" }, "original": { From dd37b390fbc809d135209d9e154d4db55bbad6f5 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 20 May 2024 08:34:37 +0800 Subject: [PATCH 348/447] spec(eientei): nextcloud 28 -> 29 --- spec/eientei/nextcloud.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/eientei/nextcloud.nix b/spec/eientei/nextcloud.nix index d0a7b6a1..dd1c00a6 100644 --- a/spec/eientei/nextcloud.nix +++ b/spec/eientei/nextcloud.nix @@ -4,9 +4,9 @@ in { services.nextcloud = { enable = true; - package = pkgs.nextcloud28; + package = pkgs.nextcloud29; extraApps = { - inherit (pkgs.nextcloud28Packages.apps) + inherit (pkgs.nextcloud29Packages.apps) notify_push impersonate spreed contacts bookmarks deck polls notes forms twofactor_webauthn; From 137157f542781c73156891b3a12460efe190118b Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 20 May 2024 08:59:26 +0800 Subject: [PATCH 349/447] spec(eientei): add nextcloud maintenance window --- spec/eientei/nextcloud.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/eientei/nextcloud.nix b/spec/eientei/nextcloud.nix index dd1c00a6..51af4cf0 100644 --- a/spec/eientei/nextcloud.nix +++ b/spec/eientei/nextcloud.nix @@ -23,6 +23,7 @@ in { config.adminpassFile = builtins.toString (pkgs.writeText "password" "initial_password"); settings.overwriteprotocol = "https"; settings.default_phone_region = "US"; + settings.maintenance_window_start = 17; caching.redis = true; phpOptions.upload_max_filesize = "128G"; phpOptions.post_max_size = "128G"; From c5d10e3fc2c6ee97cf137a739b97a6291a6462b6 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 20 May 2024 09:00:57 +0800 Subject: [PATCH 350/447] spec(focus): add nextcloud maintenance window --- spec/focus/nextcloud.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/focus/nextcloud.nix b/spec/focus/nextcloud.nix index 01067df3..7b9c3b82 100644 --- a/spec/focus/nextcloud.nix +++ b/spec/focus/nextcloud.nix @@ -23,6 +23,7 @@ in { config.adminuser = "koishi"; config.adminpassFile = builtins.toString (pkgs.writeText "password" "initial_password"); settings.overwriteprotocol = "https"; + settings.maintenance_window_start = 17; settings.default_phone_region = "US"; settings.default_language = "zh"; settings.default_locale = "zh_Hans_CN"; From 4fe24f10e80ae61d4a8bc57cccfb50ae06af3e6c Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 20 May 2024 09:01:46 +0800 Subject: [PATCH 351/447] spec(focus): nextcloud 28 -> 29 --- spec/focus/nextcloud.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/focus/nextcloud.nix b/spec/focus/nextcloud.nix index 7b9c3b82..6c9debc0 100644 --- a/spec/focus/nextcloud.nix +++ b/spec/focus/nextcloud.nix @@ -4,9 +4,9 @@ in { services.nextcloud = { enable = true; - package = pkgs.nextcloud28; + package = pkgs.nextcloud29; extraApps = { - inherit (pkgs.nextcloud28Packages.apps) + inherit (pkgs.nextcloud29Packages.apps) notify_push impersonate spreed contacts bookmarks deck polls notes forms twofactor_webauthn; From bd08b5e746ca15918ddd13fa45bd0dd3379a3856 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 20 May 2024 09:18:26 +0800 Subject: [PATCH 352/447] home(jetbrains): add go compiler --- home/jetbrains/home.nix | 2 +- home/jetbrains/nixos.nix | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/home/jetbrains/home.nix b/home/jetbrains/home.nix index 90f931d2..637dc689 100644 --- a/home/jetbrains/home.nix +++ b/home/jetbrains/home.nix @@ -4,7 +4,7 @@ , ... }: with lib; let cfg = config.passthrough.jetbrains; in mkIf cfg.enable { - home.packages = with pkgs.jetbrains; [ ] ++ + home.packages = with pkgs.jetbrains; [ pkgs.go ] ++ optional cfg.idea idea-community ++ optional cfg.clion clion ++ optional cfg.goland goland; diff --git a/home/jetbrains/nixos.nix b/home/jetbrains/nixos.nix index e0a69550..e2d01f60 100644 --- a/home/jetbrains/nixos.nix +++ b/home/jetbrains/nixos.nix @@ -18,6 +18,7 @@ in { ]; users.home.persist.directories = mkIf cfg.enable [ + "go" ".java/.userPrefs" ".config/JetBrains" ".local/share/JetBrains" From bdaca3ccd0ca003fce35d8c09d04918e644435f3 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 22 May 2024 21:11:06 +0800 Subject: [PATCH 353/447] spec(koumakyou): set console font --- spec/koumakyou/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/spec/koumakyou/default.nix b/spec/koumakyou/default.nix index 68dc3c30..186d5e10 100644 --- a/spec/koumakyou/default.nix +++ b/spec/koumakyou/default.nix @@ -34,6 +34,9 @@ ${pkgs.kmod}/bin/modprobe bmi260_i2c ${pkgs.kmod}/bin/modprobe bmi260_core ''; + console.packages = [ pkgs.terminus_font ]; + console.font = "ter-v32n"; + console.earlySetup = true; specialisation.desktop.configuration = { programs.regreet.enable = lib.mkForce true; From 77924de53fc56d88121a6de1ef08146e5e88662e Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 22 May 2024 22:10:06 +0800 Subject: [PATCH 354/447] spec(koumakyou): add kodi --- spec/koumakyou/jovian.nix | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/spec/koumakyou/jovian.nix b/spec/koumakyou/jovian.nix index 500f11ab..2a20be30 100644 --- a/spec/koumakyou/jovian.nix +++ b/spec/koumakyou/jovian.nix @@ -1,4 +1,4 @@ -{ jovian, ... }: { +{ pkgs, jovian, ... }: { imports = [ jovian.nixosModules.jovian ]; @@ -18,6 +18,7 @@ users.home.persistApp.directories = [ ".steam" ".local/share/Steam" ".config/gamescope" + ".kodi" ]; users.users.app.extraGroups = [ "networkmanager" ]; @@ -29,6 +30,17 @@ kscreenlockerrc.Daemon.Autolock = false; }; }; + + home-manager.users.app.home.packages = with pkgs; [ + (pkgs.kodi-wayland.passthru.withPackages (kodiPkgs: with kodiPkgs; [ + joystick # keymap steam-controller + #controller-topology-project + libretro libretro-2048 + libretro-fuse libretro-genplus libretro-mgba + libretro-nestopia libretro-snes9x + jellycon + ])) + ]; } // { #users.users.decky.uid = 514; #users.groups.decky.gid = 514; From add24cc5164e4d84219e3111b1349ba8415d83e2 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 22 May 2024 22:10:13 +0800 Subject: [PATCH 355/447] flake: bump inputs --- flake.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/flake.lock b/flake.lock index 65c58a95..73294af6 100644 --- a/flake.lock +++ b/flake.lock @@ -190,11 +190,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1715922002, - "narHash": "sha256-FSUrne82MXFzZ7R88ZnJz21kv06GS2TS/Ctsd+RXbP4=", + "lastModified": 1716274466, + "narHash": "sha256-upoklExLKqq6LiZTLkaVK5LcBdl/VIiW7kZ8g2vdqhw=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "23a55d6bb80f6340d0acdb9feef754646b68f895", + "rev": "3516515f04e8ab8339a5d1eefd8f051b00d7c362", "type": "github" }, "original": { @@ -286,11 +286,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1715787315, - "narHash": "sha256-cYApT0NXJfqBkKcci7D9Kr4CBYZKOQKDYA23q8XNuWg=", + "lastModified": 1716293225, + "narHash": "sha256-pU9ViBVE3XYb70xZx+jK6SEVphvt7xMTbm6yDIF4xPs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "33d1e753c82ffc557b4a585c77de43d4c922ebb5", + "rev": "3eaeaeb6b1e08a016380c279f8846e0bd8808916", "type": "github" }, "original": { @@ -310,11 +310,11 @@ ] }, "locked": { - "lastModified": 1714856962, - "narHash": "sha256-2te5GG8TVNBF44uMF4G0XFGW+Jt02i/ZkspSNFzjgT0=", + "lastModified": 1716145823, + "narHash": "sha256-S2cfXdWCRf6Z+Gas6GN1kMSYqG01583uuJKITDVQp0o=", "owner": "pjones", "repo": "plasma-manager", - "rev": "1554e19ede17de46106dd95820eeea05086a5720", + "rev": "5db76cbb4d66231769cd8939472ae00c55c24a44", "type": "github" }, "original": { From 48ed9e178ca734d3f4421c762b3a2afd13296da6 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 25 May 2024 16:03:26 +0800 Subject: [PATCH 356/447] flake: bump inputs --- flake.lock | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/flake.lock b/flake.lock index 73294af6..c200f9f5 100644 --- a/flake.lock +++ b/flake.lock @@ -155,11 +155,11 @@ ] }, "locked": { - "lastModified": 1715930644, - "narHash": "sha256-W9pyM3/vePxrffHtzlJI6lDS3seANQ+Nqp+i58O46LI=", + "lastModified": 1716457508, + "narHash": "sha256-ZxzffLuWRyuMrkVVq7wastNUqeO0HJL9xqfY1QsYaqo=", "owner": "nix-community", "repo": "home-manager", - "rev": "e3ad5108f54177e6520535768ddbf1e6af54b59d", + "rev": "850cb322046ef1a268449cf1ceda5fd24d930b05", "type": "github" }, "original": { @@ -190,11 +190,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1716274466, - "narHash": "sha256-upoklExLKqq6LiZTLkaVK5LcBdl/VIiW7kZ8g2vdqhw=", + "lastModified": 1716618639, + "narHash": "sha256-H3kcJDVqDmXZ9IfVtqObL3JUx/a0ERn6gWBTn+7vwN4=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "3516515f04e8ab8339a5d1eefd8f051b00d7c362", + "rev": "a358c56a163b3b7d149571e853a8f75b2c1ceb38", "type": "github" }, "original": { @@ -254,11 +254,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1715787315, - "narHash": "sha256-cYApT0NXJfqBkKcci7D9Kr4CBYZKOQKDYA23q8XNuWg=", + "lastModified": 1716330097, + "narHash": "sha256-8BO3B7e3BiyIDsaKA0tY8O88rClYRTjvAp66y+VBUeU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "33d1e753c82ffc557b4a585c77de43d4c922ebb5", + "rev": "5710852ba686cc1fd0d3b8e22b3117d43ba374c2", "type": "github" }, "original": { @@ -286,11 +286,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1716293225, - "narHash": "sha256-pU9ViBVE3XYb70xZx+jK6SEVphvt7xMTbm6yDIF4xPs=", + "lastModified": 1716330097, + "narHash": "sha256-8BO3B7e3BiyIDsaKA0tY8O88rClYRTjvAp66y+VBUeU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "3eaeaeb6b1e08a016380c279f8846e0bd8808916", + "rev": "5710852ba686cc1fd0d3b8e22b3117d43ba374c2", "type": "github" }, "original": { @@ -310,11 +310,11 @@ ] }, "locked": { - "lastModified": 1716145823, - "narHash": "sha256-S2cfXdWCRf6Z+Gas6GN1kMSYqG01583uuJKITDVQp0o=", + "lastModified": 1716497069, + "narHash": "sha256-R8tGjY7wUKWY5O3iZiy1gyg0+8pdXcOeP3RppdKgLLM=", "owner": "pjones", "repo": "plasma-manager", - "rev": "5db76cbb4d66231769cd8939472ae00c55c24a44", + "rev": "6d697a8dd6d0699bce69424dbed55184212ff21a", "type": "github" }, "original": { From 92d57712b770b23b90242c474b503ea0773ce8da Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 29 May 2024 16:10:21 +0800 Subject: [PATCH 357/447] flake: bump inputs --- flake.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/flake.lock b/flake.lock index c200f9f5..00f39f08 100644 --- a/flake.lock +++ b/flake.lock @@ -155,11 +155,11 @@ ] }, "locked": { - "lastModified": 1716457508, - "narHash": "sha256-ZxzffLuWRyuMrkVVq7wastNUqeO0HJL9xqfY1QsYaqo=", + "lastModified": 1716930911, + "narHash": "sha256-t4HT5j3Jy7skRB5PINnxcEBCkgE89rGBpwTI7YS4Ffo=", "owner": "nix-community", "repo": "home-manager", - "rev": "850cb322046ef1a268449cf1ceda5fd24d930b05", + "rev": "a9b36cbe9292a649222b89fdb9ae9907e9c74086", "type": "github" }, "original": { @@ -286,11 +286,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1716330097, - "narHash": "sha256-8BO3B7e3BiyIDsaKA0tY8O88rClYRTjvAp66y+VBUeU=", + "lastModified": 1716509168, + "narHash": "sha256-4zSIhSRRIoEBwjbPm3YiGtbd8HDWzFxJjw5DYSDy1n8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5710852ba686cc1fd0d3b8e22b3117d43ba374c2", + "rev": "bfb7a882678e518398ce9a31a881538679f6f092", "type": "github" }, "original": { @@ -310,11 +310,11 @@ ] }, "locked": { - "lastModified": 1716497069, - "narHash": "sha256-R8tGjY7wUKWY5O3iZiy1gyg0+8pdXcOeP3RppdKgLLM=", + "lastModified": 1716902607, + "narHash": "sha256-jShqpVupP/7ksp6gCBVG9/05zYSX8Q+z6eGe9HLYtUs=", "owner": "pjones", "repo": "plasma-manager", - "rev": "6d697a8dd6d0699bce69424dbed55184212ff21a", + "rev": "4a255e5ea6bf2c7815d893a693c5c801d835ba6b", "type": "github" }, "original": { From 845469eec0aab0c50233a7adbec73052ece685a2 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 30 May 2024 17:18:26 +0800 Subject: [PATCH 358/447] spec(shinkirou): use plasma by default --- spec/shinkirou/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/shinkirou/default.nix b/spec/shinkirou/default.nix index 4eee2b0c..9f4ff76f 100644 --- a/spec/shinkirou/default.nix +++ b/spec/shinkirou/default.nix @@ -14,7 +14,7 @@ }; home = { - plasma.specialise = true; + plasma.enable = true; gyroflow.enable = true; vscode.enable = true; libreoffice.enable = true; From b42f8f2f0e04a11ebeaed93ed59bd1cd52b136ea Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 30 May 2024 17:19:18 +0800 Subject: [PATCH 359/447] spec(shinkirou): add mouse natural scrolling --- spec/shinkirou/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/shinkirou/default.nix b/spec/shinkirou/default.nix index 9f4ff76f..a0464ab6 100644 --- a/spec/shinkirou/default.nix +++ b/spec/shinkirou/default.nix @@ -39,6 +39,7 @@ kwinrc.Xwayland.Scale = 2.25; kcminputrc."Libinput/1267/16857/ELAN9009:00 04F3:41D9".OutputName = "DP-3"; kcminputrc."Libinput/1267/12962/ASUE140F:00 04F3:32A2 Touchpad".NaturalScroll = true; + kcminputrc."Libinput/2821/6523/ASUSTeK ROG GLADIUS III".NaturalScroll = true; }; }; From 4f04190a05a992d3813deffe0a742daa84bd2362 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 30 May 2024 17:21:41 +0800 Subject: [PATCH 360/447] package(tubesync): temporarily allow obsolete dependency --- package/tubesync/nixos.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/package/tubesync/nixos.nix b/package/tubesync/nixos.nix index 53628cf2..8681edb9 100644 --- a/package/tubesync/nixos.nix +++ b/package/tubesync/nixos.nix @@ -179,5 +179,10 @@ in { ids.uids.tubesync = 101; ids.gids.tubesync = 101; + + # package is local-only, will allow this for now + nixpkgs.config.permittedInsecurePackages = [ + "python3.11-django-3.2.25" + ]; }; } From 44ca762deb276d50e7fd1ef0e00171703fcf7603 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 31 May 2024 11:08:29 +0800 Subject: [PATCH 361/447] home: improve profile pictures --- home/picture/aux.png | Bin 0 -> 116701 bytes home/picture/koishi.png | Bin 241517 -> 97456 bytes home/picture/staging.png | Bin 21235 -> 100938 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 home/picture/aux.png diff --git a/home/picture/aux.png b/home/picture/aux.png new file mode 100644 index 0000000000000000000000000000000000000000..8262154f8a11815913f5a529364457256e2deb40 GIT binary patch literal 116701 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
  • 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 diff --git a/home/picture/staging.png b/home/picture/staging.png index 4de219ed6ff4ee4ebf1fb60feaf864d99290f232..1702e24e66b82e2b673746c810ad27d443746e0d 100644 GIT binary patch literal 100938 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 literal 21235 zcmeAS@N?(olHy`uVBq!ia0y~yU}6Aa4mJh`hA$OYelajGTu6=ZO!M^AV&Gt4VBlh4 zU}RxnWB{vTU_@dwF)}kSGcYi;F)%O)F*1YIfYeDbvVz$?3=9m?Q1%oC1_lkN8jyvC zj7$u?3=9l&7#J9g7?~JE7#J8wnOaN2eOZWfq?@Ibr>1ICclIl$A|S)rgP zKP@vSm4TsRPVGcnkHY~Xt^Sw2T(!8$1YS;9Xm!)oRVG`sD?srI*IKI?d%p0`l9(hS z?tXCVg9qo6t{yxZ8O|Q=DDa1|u&f}cWTMb}Z!X=WJs&FMpWiL6cyH&BacxFg>!gNd zx6{n#3Vm)BHT=`XkR;*4kvKE**cz482hs80ulSZue-Qbvwmxis)D{T=fzHWi400cp zK6>eU`@tT6nN-n8RXcS#^OsFW`eVXv>K@0GMLw7rXgqzca-UH5Q@yZVGeUiOE4nP! zWm!GtuIvvz7d>Zd)ZDG_PsU4VzB=t4vs~0!iaVl(MUd;&ibZVFoVQAYbW&d0Jbf%* z_*ZDBNKxp)6Nde~853gdf5`utw>EUvoDY+fG#5NST4?9i_(AVNmc_a68y|1+Yj|K> zu(bS-v~R+*$zR;uyX6^~Zyz{X>K^>9;k0bRkCPL8Z%%F6(h|g3VZS(Ei@|xj!~Ip} z+rL@*$v4QH)hcF|kzq+t zIX_n~F(p4KRj(qq02E;iHue<-iOJciB??KY>6v-9O7C~?S5nAKu~iB;^)>JvhzmDRN z%7Rq=pw#00(xT*4*Rs^S5@lo~Qj+2N3rdS}z}`to)=$kz%}vcKDb_dCGeofxl;hw! zKtYh6nOgwXRgqhOqOv424G~x?&Dvm`TvBm<*l-82(R3tbb#L}OjcB+E2iW6KniRP5GCF`0PryA)dnIxI(S|%qa8C#kp8dxSL zBN^del$oBHmzaa>Dv(hrnJHH0rk3W0iH6C#X~srLx+X@Z2D*u9CI-4`My6(#Ddxs0 zh6WI$Qj)FQ@{4j4OKg=ga}(23^$YUS!FGTG+{!V)(^kny&j2A3kds)FmS2=>tK^fJ zS6YFP2+7P%4K7Ipg{Gmoff>jz#>QsmmPUr=2t{G3Ma7xpaO5?vBYQf-wGkdR0FdlQ&iK7^V3So6N^$E(^KrJwSm@zcK^dVlf(Fc_oFdy6KV}uDr0a77j$E5%f3vzL@~ z4`Lvw)S)GY#sw{{P*51Pgrx8t4X)APA}It&QaqZvMuUr_5FknMXzHR`aB(5JQ>l3= zwo2tn_I8K;bLKNJFt8?NMQ zuIw)uWdzuHZFcRx#K54y;OXKRQgQ3e-O4HV!fT)Z{JwYp*PE{@v%*(;{Z2alDNj2t z;?jde(*)+m5~Gxvo=%rle4UCW&0F$YpuEb%%0Q8`WdqBsglRq;$IKF%KQg&Z60e-B zd;8X!t5K^%maeLrS2gW^+4KG&kMnalO>VH=u8DhoW#Ze#!K#1P&42&>_wMi2?^y*$ z!DtAKq!5@m-)){;W5)^p=k|NQmv7(uYwCKReS0fEFRqeOQc}_ndjEUwean)s-f^$a z$w?Njmge1lgg?f9$JDD`yHl=meLuecceJ0sXIw@P$dLW-R&ncU+MYh8nmna;{+`PV1J@;W&uM*TlO4A9$*I%p6DlfZ*p%xmvGx02 z_2=vTda3l} zB~9M?dm1(_UA$y(Pf&1J*Zx?)a(%?H?d9(SdqhPUl$6ewuiyQ~X#4+@ zbA5Pt1GN?iwzZsl__eAcvupbEoS5xx)AM%qSa5k-<+ic6y*#U%@My*|LzSm9g0B_c zb^ph8`F_IZbFp2U7cn`wJo)+R)Ya8@zkGb$!_OaVG|eqW=@j=NrR7f)Vj~hB?=p?q zm?_LWRchUd4{P18d26(*K8xmN`D(Y!O17)2SD9Pa?$gfmldfmq`TNB0XjJ9Bja4j4 zpDw@guY1qGuOe^jyFWk0UbDMPY_Q`^?!45Z;QR5CTx5Bp@AQ}hqTw-)Th||Rns%YM zPp?nqL&OK!D@vb~5*7F~bhku2tp4+Ab)2t(<rO{87K)v<9g!yLm0)n{}}PS$oC@=gEN zak*!g;hK1(W72W|xcp?TPOOhDUfab0j@!uvhk4ES{ht5-XKDDpGk5Dg`(D}8a4?Hk zp8Z^4mlD(YcAe!H!=L}@eO~l$=ktvzB`pW40xWEjKlU87U~g6aQd5(DVzLPHk-(Pr zg>mbO{v9jcnREI4hYQWOf7svuzHfSl$djK=uY;661wWOy|10_ZA%ES3pDTl>{GHHf zk)-g!&{O=pV}@>HV`J9T;%n<4&-wa##Wb%SI>(& z%z8LS`9sZ`X212_oHaK0FU*?#ytCH-V))9UPfwPxInFcR!lIyLFZ%C`{ojSZFTY-= ze5Q(LT2h;r>MxxTo|bhBtnK?fg~Ie=Pq|8)Z_2vKvNfplK*Mt`CLKApPfXLF&N!5~ zR`pBGCY{3)%^U41rfKwbo>E=rcfR2K-|rs}F!L8=Wpy2FWPG>d>uk~9HXHd2Eiae2 zFLm!@_rKfsr&T|I-${*)O`=DOC9`e%l9ac6Q#FpHY9=c$jww3$b4`p{<8v7i)}`vR|H^d(6uDBtM63^Ze&);&x8j zeBP>i<3&NIY(u@{sjP3)x(z-QTyxqO!4i?ZVP1Q2pUP=Xo91+#mBk`YY-&GAl;_+$ zbTIhx6t?yg*`|Lqj%a@E29*iV@2&rHC;E=Ad3~#>@?oBCVI_td$Q97W#)-%-J|2 z=tT4F?Vk^PYtQ^@w5Upcok&pb6;IhYwdZ!`+}-HRtgOZ0;xbP=|7ZNVqUiT~<{tE# zxwM)2#uD!d;!`$!i7GC+Eqkp;|M{fPdI={_aBPk0z3~0yLh=iRVpO|vGd1N^L-a{_q{cH6?kCP*Vmr2d~2pZ7H8ddg5zU^nccBe z@whXeJ{C@D<&$i?Gvj@3_a__vY~9xAJJ0jiEWMc(^j==!bg@`f?5VAGlWZPeS(&-- z_XFoQmOJM2xGxPn-X^%TiZ^gD5p1(g_2sGhh5Y&VPHj5I zu;uoQpR7`G4lh_umM`x-JfU=Tc+s^}S9!kkKN3xNn{;dYwYv8c>#(F~TBS#tNKp|Sb-?fX8<^39*4vSM0ilZ3Qe2>UP18t={5m5&?T&nh}= zn*S_!{~zx47c@?OZmkM(ed7A?)oH!*{=55od9}lW4BNUkUa|4M_%?8f?4tweXFolS zDY#eJ!^fALxbfoo&l=}M7{oNXn5L)S*XHU;KiPHkaP6z+W}owCg{PdFGsEWO^nWke zsv2~sDt_o#Eh=^R|D->+S$)oLwpA&XdU3FEe zonJoj?yb!x9*ZOy1Sh6no+=*uMyyX};loN3uT-sT%09+k5_{tMqeKd?&APfKdiSh{ z4<8<_{geLg>FLikg?sNCFRAP+e0S!TefqZ_;!oBoXiR-kB7A5cm;akvXXlpJPv6;U z_S9?YiuL_F*7Hldm2B2C<2hmLyj&yWYY?BD^}%g_e~V5{{8oscC*jwx4)$N3%<{pVCl59B8KxA@ zR9^nv!lrmuczpF+x87+PYz{6@A`3o?@B45>{_k^ptMt0Mc~5)UgnzKi<=ZI!fZ6p@ z@{0WjE2Yn+o$Y#h#YTm=aq zHn5#r!*bze$%^Z*RXm-x-&XBV`e197=`~O7PSNe{H@4Q>&ot!e?RAuBd@p?DV$!Gg zrG|+P4|&x6d?$)-`1$ep)IZR`xBut=zy0@>cKb8OIzvOcnl?-q7H2i{=2&}Flr{OV zb4=Ai)-{nEW%%7EE@e5EB$Iyc_rv;_zki;8{(0F(y-R76lDe<)s$Q$f#+PfJ&#SKZ z(y7j=CA#Xc^ORq|PV8;qaeuX7a=Ob^qq`=LPulM0^h(|K?%v`XTHvCT_x;ba<-5+; zyqO%ct4_D~%;GsuzdV&&61(R>a^k|1yS8TUe00fMGV996f*;o=eXnY%YbZVX|9tsY z5w@b_0ye9?a>q7@Xqo!?%}+YL?RQ1W@yB0yc>`Bn=gbP_y031^_J={3<%!s`XVEtM zvemuSkL`T?@NL&>aD(V(!Q1Tkr|<>ysYg1MKiSOT*S@~y$)92~ zBQv8O&7w_9+%s$!9a!!m-v7Ncukg}-i_fbKPbBLE}jl%0ME5f{% zWOfx>o|BwYyu;X=;hdBVTeMbTQd(Qo+GA(_$ZW5BJzK`EY|g@^-Wv;j?t~w8RXnSr z$oMF0s^6rd7cT_;{LU9#6b=8hQ#wDyW~#VIF0;tQ=S%bNe(Zg?l)1FL;JKV$#LlkL z!;3>M^*s6_lbW3|*Y50r1o`K4w>O6WdvkiFi{ji?vA_qy62;F<_BZ)0Z~iI2?7wWl zjHCML3fm2C=UtYNdUA64w+~14>t{M2_rG9n)D*6jcv|(AtKYNAFLMsN37+Gxc(l@X zj*acv(Dl{5llJdX$P{nruz6qeN4WlR-P2rq{~0NBc9-!oSFmvBX4Q3wyX$OuCLt^P z?2+&EO?hXtsu{$KQ6&u_Hlo*O_!3oxA6y^Yf)8|j_04=*)UPXEiJ9kzbS_6y5e zw%>S}&vUF%^V3n=f5#Gg6wh+yJeZtf8PUHYXxZ!~XU?9V9CbQ2dfSHL`*x3tI)6P- zs9V{iJN3m*nf)=#CZ~UyvzUYF-Om4Ze=HuIRJOVu4^9=@an)DP?{eR_yLIA*Bd;a~ zx}6U7xulw1uF=kzx%}*;i-~b%PepZNjofa%7GhUa)BbQS=d*EZbj&dUYHpSjn_$fW745lEM;%x=sQNsM)zxIE|1jz(|2eKUe261d%O z@}IcebD^r6aqWr5`j_9zuQixHIrqR-aPAiOJhA0}BA254xBOm-ueFz32XoQ9kcT4 z!#5WVU$MGmdc{~w>+cCtk##y>bgpgljwg@0C12$yT$*#DBIM7E3z0q#&+Yj+`>1~Q zfz1iFTsmuUjsA_H4)Bce{6fU)b)^tGFt3B|m@C;~7^Z#HwOGA->o5pgN6 zyRk}M`r7=Xsk7_aE^I$@{)|yX{sU|0?OPqzhAqDQy5{}a`;nU~X3uZDBN@bH^n63& zk;m2F3hp=a8{W-%sv2 z$N$;)@zd(iO=w)AxN*)r;NTHnElOpi_6=rNx)RQ}5G z%i8&DzO34K)cpTH$3F%Orl+T``>Q)S^7I*}ZrSQ@0Y4P;YhFj+|Gr%Q--r6Yb@kKr z@0S$6e7Co{V?`7Y-=UL+Fr|$n!O!EGo*Lr@Yv**M`9O(8o zVPoTXERn8b_CZn0@P6C@7RKVaeEfFbB$|_x@9YmhTleYF)0cuBC;Bhz@B0<{Ze_dt zvrVSiFJ&#=78lG|^xT)cUUt#=^TN`C%}<`?{@J=>vj_y^mc3fnOmP}UYa5*{CH0FwMZRVNwrTlPOm4XbLyQw*zi^7Skx!ux&N+7iCNiZO_i#g z7Wm*pQ-^GI+2+dIX3r+e*(OJ51hq}mS$J)QvH5)^4yIRMtkev|6IA? z|3%j)mS4l`f7O*=e*V9)tFh=E2Uojqb;@47g{^Qv8_m5sqo_yuk@0V$kPxndH zGB=;mGts>M%cD1S-}PhNN@cPZ2VRCv@7CKt=ltD@=A=b`u3Qjm=&(tz`)yK^j`&#g6k9ll_?7QYkRZ|gTl<%-b?%kGz3RMK*>$pbk-~vT8kcyApZV@D=#y#RYIiNZrv4Yi_+>l2P%S{mYQILGtfzO4~5*BbxUul+gu=!R4s*0#7=hTAVZdhl^^PTd1Wxx0J2 zM%g>RPjuh#bcXrfzi*d*um8||_x<Y(Q5KU4V~ z?`q#!-~S`_d2(>YTRqeB%LS)%eiGTQ@xhld(rc+m@ws1{cYL_hdqvyy)>^fN@&R2+ zn{<@DgBEEVFrTL4$>70V{wzrTz;}ar=RXQhw)yj-Y+l7H&0CBvTcwzL>$Ik7owJ;D zDDa13<%7$|46ncbbf8bx<*Sr6zs#@3jqhLI|Ks+ScYSSau(CGTIimajzANA5zU|)O zkITOq3%KZLUe9zB4ZDQ^10Mz-hqHtkG!lbMmg&KP4>&mnSo;Ue8`v_FKMwPEK9lj)u;t=8HSprmODA z;}1{y@-gke3=gYx4_qR_!c0{88 zO+}EQ{}UciyHx(9eeJu=d1XbPb}jz>{o>3yDO)ZbkBFaZXRqK9{NhW;n$(H~^EY2x z|Fo&td{fp@E}wTVwnhDjaC$sZg|kj#-pzaA3AOz89}Y$p$z(o!k;eJ=u<{$bf`;gQ zrPjxnEnms^C3xNUKxwH(*$4Ee7Fw1}W=Yq*yC~uPMrE6CSK`#JtxvrDP1ft5(kw=S ziRq7m<$q21{pjm;y}jMo()w_v{pQZ~_kQLcwGtF%Q2OMv=Y4tI@!FT4;};m4 zyJy&5)00iU(ytNeu}k)ZQJYk$+O(ccMM-m>dQT7POS)7h-qmEl!`akebAJE!bMw<# zkLkp{n*8`gmyABgfzL0WX;$;gJo&c!ecG;@DH%yJ!mcb!jS9EAWiRZNZ+#*$CqJ{S zTE?bu%Fevm#rpeZ=+`|>J8B7W#-Duq|M_=w&F}hLd~Fo7&d|!@z^Q|ZpH2q1xc2et zFgyQU6S1-B<5F*lOp_P-;V;gaz3f)1$uB%*e_B@U%gNrzJ?sqpuMf*|!|eYDTcs?sm$Nyuu`UB$Usf0=!@KHvHM;#-sMmg_N}+3fy) zj}Pb(28|J&KVljl`}E!J*VZ96{TKIHB`Y6p;qzI3+9539TkS7*wupU2lHTgaUcO!} z6w&QloRrK_RB-cA^!~3*IU*CJooA&_`7>k5ZRMp4Hn8b`i1Y}OyZw_TdRy+|*-x*u zv#*}L}vi**#k6vxxyY%P7{eNBNyZO4XHgwo9=hvJR zefMwe_aJ7yn9XdPn9f`LT4j1EZL*^DhP))n)z{W6iCZsxl+p1)^4g=RnoAXy+|3cJ zW?UN7X`_20w(S> z8*|lOy~t_7-AQ_pyZbsHCc3$~bu40dEy?scu}ArQaY5e+egnQqDhE^ZK32t_KmOUK z%Cqsa&Ni9Cnr9->a+Mu-+4&L{brdb`UlDRllK*veMV&|A;@jRCrMJ$Av+~Q_IDg=X zMR;uKRcX5~3;8vFcCTO%m?(c$H-7KKUH5-|z5nC!n=hHuu4I9F6AF5PTXrv*tGCaz zr(gf^o6yw~@8uV)4_YSEo__94yv+ml;0K$I{{6F5BQECud80==d;&#EtZnxkQ2*}y zN8`!L<@2B2YnOX);)#kGkH+_}f}vh5g)>{@nm#hmd4BO^a8UNlIhIG0tG^lSdnog+ z_J!h6i~Elrb+Fv{{DpDbopO72 ze)*(=63)Me4?kJAz(6kY-G`^i?zZqA? z_x$36u(beHdGlnezZd-%w$4bi)!M4%?5u2&?0H!xxwa?vj@}Jju4T8m-&oajuulKD z>H5B|*Y>|%j~YyrpLkVSVB-4wC5KB-v;EpP{ZF`A+X`#%9Tyf)5pBuzJ8C>$YjpJ-O5L$%!HMEeCXI^@FdeI~NcY$@=aBJ^1CL*<47U06 zAFqpxhNsA=<4fpCsxUQj&$05Vn&wf&3)P8ahlI^|G(DX_nckz ze{|l?R0m~k&>-l~@IMdV|8M;L<$hg@fp?_6*|~_F{N+{C+$1J$i@u_jYIA=>=H;V4 zK0X3b&bnF;pYvTly&^>GOlqu5_wheftT&X7TYOl1^t0IZcT0~=2zbCWUwHH8oZI{6 z+W!9jux9?psjFwaFXQk^<*4=3*LmP-xHM~O*z(gGPipeXS)Q8I$r)F6HPrk6>-azM z$4!gCm2vwQ@&8Z%@+I$hyv}-O`seZpbHj5UTb(T17u;Q(ryKfub6Qf<#*K*|5=vfb zJk1jA>Nzm;=<1ryOy@smEY*DKmHP4Q{@DV*#JU%rkg1cH@U-uU#h;?i!@-m9)ZVX^ zv8tPswb*a#y#)o+7KmK-66#2f(px$?U7+oa{U4L#YRfIE4_n^Z7J0S~;*?Lf_y5X% zCmsLW>T8tz^5upQB~`B#Qnoh zCGFVc+o#Xnc}AVX;8?&CNs+z-#@)9Wxtl*SS5>z4D)Y^^IJoV&+~b!kJ$?54XnW7f zSi98f_;SBMxr_}DjG~SOw#fO*-8lc`Oy;_plioiko%qDB`}xCGbv#TK96drnGNtJ>i-=cC3Nc1MTvPg%BdS@X+1c=ucW!G)8a zkM^w`!ai>TNEh2 z7ag;Y{lD`hf9(h6!xN3yNJM*?YE3M)_L*yS^3qc8gUxZPdwqkv;tqV-IGN|_>NE3f zPA=otdveNmdQghyJnaQ1KCEp|7r*~yE$e-@C$77G9R9>~Ki(!v<)m?w!Lc85XUk>_ zFZVBgK229)JV8ZsnE}gEqqmC^cHMq-P`&(ux!Iv)>+c$Foi^?^ zwoDVn*9&}ZJXbUM>0<88U>I5c9x~FlS`l|JHA>+G$@5(d3T$PlR zStR5#9)N_GMZ7^|;^1j@$j^|G&XyvHGVwmjVwc=_l!(|G1XD(oKTp z!S9N73tp&|SaFA(7R`Ff6&LX6${QWcpGk+~Rgy?pLXJItj2;%xnM1GdJ$kL1FisoBuPYr}-J~s$r5ouHx#KXuBw=^H4<8 zT)nmDWQ;xCu5Zt=-*P?Y|BpD{IUQ*XE>GOQPPG4@|L$VD+@m?A*_<(b;TE6b#9u4) zIq5uTXS}PT=-GXA_P3^n9U+T$ZgAKcvM5IH;iWmt`DN2mGGGmmvbXJ)u`Hbw`}s}xU=bb<&;Mf`y0N! zu{nIzDss8|JnKbn^1A%{YOZg$xG-y3G^fSf^1_Kr*T*fr{Cd*^qgx9TS8YCE+i!nJ zcD8x(gBO8^vgEHeItnFkES%{VcHwi)A2)mVXU{7N?&oPKAFlbmZ!N4Z^6St2+Ecmp zUj&ye^9vN|zWZ}$aZ90OP5;enOf$FM*m3B}9UJbwdS}xn8}Mkls#eWyxzMjM{q&bl zO}8#6L~1@-U4HlA%Q*2vB|vUy6Y$x=h3rq4FB_R2ktntFL{<-8j|Rq|^t zZ>@Q{I{x>*lmB1G@87!WqDW=liceyd6Mr3;AM-r#*CqSFZ?$1PJ%SO=+wU&B{Vt)l zKW^3~->Qmv#~tE(EqXX?=jSbVmT3zRDcPNS>gf!n^O~)UXKzOK$yyv)9rv$D&-T4j zmrCmGZMmS-9P_}?Xxo&=gN{X;D?BEAX11#Id&q8KpYZ$KTp#o2m9MT$N$T(5Vi2rc zx98KR(|68vPR_A;onsSjP@FZZY_n_ag82(%imS?|{oHA3_4#v-O}4FbbMun7dTQr6 z|28Ojf2j2i6zM*wbUtE6eo@sYk@fXovrp`b-S=gwzTvKto_~#uT3@Z+nk=2279#!k z$5NroYsEg_)!WT4bD&#ko4n0}9m=0<7Q`|r=_mbvH~0U$U1y`sHWyvh>XWhc(myK^ zZFX={XR3)?+e%)Zptr9V7f8Ns6+64Ll8v41fT&2MpTv)pNWVafKL^y$a(hkXdRx}7 z{{2nbwwp@F4UD#x6hB6)TjO zn99kJD8qOmYiq}2qubkZ7e}qzP6+)Xv)~N=Y(zP3kH8#n*Q%>|xpT^)4x5VyOXTSC1o3AISq+VTRY9hsZX^n!` z^aGzW%B)xlTeh}!iC@UpFZgmHF{`k1l6*o@yXL2(r|XT}1zMi897yjmZqyE9k>3sTv{q-NU;?FCe44R|av0Ah$^3y&*X=@{oeq5<3SMewC z+S>T@hpS5_&j+R7pBpPb->y3s`8v6_KWeGh6ZRd87TkUtv^MPJ*QzIa%B8IC{xU~T z8&#<Jq4?9-V+5opPjqYZ!?Evn{Hxi(l{dJJuQ`Gpa0%C_4CD> zbQXqaUd}$dvHpKu-@E(g&&L&THa9nKiPDV`xDdX6a;epnLjnz3P8dqeF}2`|2@AM! zR7~mo=NWHJUY0$pJn0>GEH~O*`)Btah83IvPh20Yy&m)W-JZ{WJFdM)}m|27<` z`mxVHP{icm z(KV$>CRyygFoS_>-|65_N=rl5U6hddIp6DF{QjrXs=YHnL0HLV_wS?sE^Yn&hvr(9 zb``}W{k^r-;yK5f<12%gpV-v1|T5HbaRjL@kY}K?s@qeuO%6ZxH?AYecWZf_aXbg%KSYq zS6`G~R~PH9to~{8@|9K-#aDda_x<~wwcGEVdNox$Vsnz}-@m2HmZfW~Q9R4V#>O^d z{_MpeT8Z6rE?+jDV^cYanf=>EU#mS|(&LYb@B87;_CPkjYVq#J*Yb_7tk|4*R_dBg zv|DxEw6Nm7i3=H{){4!0KGC{)tKE}?wM(zR{P^P^^OoPMY_?P{f7A)Cp?7}q-v34W z-M8EM>0e)6T@$gfYoFWPR=?Q_T?OX?^`_34IrE^U`}VsFZ{}>OelN!-Yjxno3yu8x z-?#67KYvpG!RPqDvnt<8uTx_*v;V>1|E9X@WtsH;pyXw@mHCx|^c4@}cJZXq zt;}Oiw~|X<&R}x|H7GyD?0mUw{l0&T<^R6WW#^Ym`TOf@Pk+C$jm;US;(1}KT?JZG zBHd;!Yf1E&_xwraxp#ASzbLVaDZ80k^XR?Z&-Hch>c8K8Z&maD+S=27GBz#gI^NTJ zHssVW-T&P2c*eb%NlM<_ReR+a3gde}z0io?^-{Y_9o+K2`R#jseeLUH`QH(#iHVIL zKNh;VyGL%%lU?pNchTiY1s>-f!!5USA6XpxUdtzIb>zwwk-c&K?DBseZhN-(V`%u! z!#D;rF}U?-S7LU;D1u{@eKPyG^U?6neF@R`E&97x5eGhe}Au%oura@yiYbI@|du{%}3#%Irpnxn>SzIA1D61 zV~;?F^nw$gFZ{m$KmFb3`TuQJhpl~dh+9A9=clJFi6=fjK0b5KoF#YjCO`lA-Rke| zyL!>vauRcL-njeyGp~Dl?co2L_kUlF&d+A3`MGTU)Vw_}Uq94M_xm3FNgOmQ`lsXG z&vWHFqx1JpJ*~fgPG={lo4dPaSJTXylDFQPWzI_KQRH!c_Uze=Idf9(@7oJbaUZ+m zP0a7te73wEQ+#%^{h9NBe(7#!&EN6M)axENQK>&PU0*qO_y2#tE5ELe|GPKyf86@x z4-dDC_kZ;jTBM=WrL=6>GK-oY24~YIYp>g}=I6BSd!9ZF-~a3Ce>eX?mk@@IJq;KF4-MB>#SO@TXWua?@1~pyJO4V-RXQ@nRB~rzTI)9 zPtL*o4JSSycsf1)<+EqcEdKxb9J#m3R9RX1Nu}TBn<}0{T2r}#gM(8d-Bw?H^srrC zjpwku<e8ot|GzIx}!W3wO2KYboo`}L}E)h{LcyEV2<6X*B%*L@0p zx4r)NcE*a^x9=UhaYLd|#@OEee5bJbi?3A?*`13z(l(#$6jrw=dcq-Xp7$g>e)r8g z6_3w;oPEE>H{3tSrA{QuTI46^kHz-C&cE9{|F2H=wKWg-d_I?ab5m+dqQ~Z&Pi|~X z7IAgl8nyKH+oD%jH2LK1&fK{pqhI^d`{$MAb}P@X?O4GeP`U7D{jJ^KZ|pc_-2ZsL zWpSE~aaj+inWDwUV1+V|17#h_9G!)83$mT2i0a7>a_LgnoiTooA3vToYgUkf z#FW>&w8Xl-RD`4?Bqk(ESe3p~`ODS7z%XU;`I@xVj`c(M^W`iD{;!=k?_U4y zvZRcR43F|Vh3(hYL@qvc$}81K^62A2Q7+b{L7Jl7t~=MQK6ubE)ksn|dYjMQy|y|3 z7-ldqJbjjK|NH0V^ERK)9G;d6a5y`2v$qX0vL(dOLShvRJI!cC+? z!^5Xf(~sAie}4Jr=jXL2pFFWGm$lhZRfu!%*K5&6zQNJk^Zq`2+;9JFeF#4TBZG$X z{QrN%_fA&#*P7^&aeA6=)P{t{rh^OI+}%?nr`enj))2XL<;s+MHJ^RY&Nla-|MyM$ z&nx^7{>%C^GSsu`@4pkC8Cmx5%gf6~zQNz`Rj;2ldv>UXh>4-0;_Yprfq@H4tk%w) zDJg4H5irrig_&8shMn)r+{I0xuugr(ZvSK9_Wb*HN0SU$n;mQ470(Y|84{!+5>#Km zUrS5tiACR^y8Y+o*{*(ky#MvJ==`e>53j#m4+>|?U)Q$J`_LzAz3kvY$JqM6Uw6IV z_gjRkb;|kYrlzJ#ebkf>8%*(0Gqtc-A*}9~@$}SGtCANAd)XU6Y4W)I{dcmqRUyjC z%2B&YR$f~lzrMi2ru@M9Cr_5Vdi`3o*Ui+%X3fNjf~Do<+2`lYzg!Nn@>KZ0i@y)c z|65RDv+nBZ@a(s@wto8kS4v*~`kOavWR3@>rY?1Ja}()xo9dx*<>t+mvAg3IJ!cSL zXej!!(*N&Ta|43~DMl;by~`^tDLGLZJJ-70?`Trs$`G%K9xmc~F&AE5ULL9;vZd^8 z)ZQPD>M!Lp=tE#wN{kSzCr=Ogp zdMa(Rl#EQs%8*Hk5?Uf$QnIpFA3Rv#v~Yr$Zq$-}`=-A%W?*4ha0iz09TXNw=kE!W zm6ct!diCWuZ`PcfYrQDc!U$3v;y*t{})O6LVRhM48Sh4BmnxdU^ zd@hGE?e`ADCr;F3kq(Hm*{zsDn`yQ{@zCHY4LV)))or}wSXG__gdbYp*zjmS) zUjrvY!Nl5^-tnLKWGohZ`&M?h>~<~}TXUC-5-7UVCQp1`X~g5a?sZm8O^kb=Okj5Q zYEVg1{yy#(2Pi|E^V@#OeE;NR-QBw1Z(qH7H7WPD*U}&_6`@)4=7oiZPW|+AkInhZ zyWj6yZJd5?#m=3P=66db&#V0wS;gTH`ACRiT}Jk`HD7=I{=K#GbK2Uty-}SmN$*na zjE#-C+7F*f+pHzl{p$Vu>kl3*n5GxIYTdeZ{ab$i|1@1cJTRBRhoPbS&C=;*f6IP< zdn-TRzJ8xv%?HQO@bHtRvA%wOr#9)N8cEJvwlY9t$;+3Sb1jSAR)%h-fGZgtq&OWpeWJoYo}$SL4wSSKNEZuelWO=Zw* z^ZaYGOtV8GBQyQnDW`<>$Rk>IrkqXt`uqO>I8jm2 zF1N*BIKb83wRLa5G#y+3>MX{V-!1i88q{_CvDfm;Tx`u+B3xW7f3(E9rKF@l#bZ=- z^w-(<|Fr#MD7g7Zh(Ryf{_o5BxA~cwpP!wdzy91gKT{Kv6WelodwW+#=&TCS(wyt3 zEyK4uKqI53Cgx&B2*|-giY zqe-8B|1F9QUmE0jFd<-Nh}ZkQ;-NZXm-l|Z_xsmnfBV0MS{$J4HZ%A3wn}xsITzY^ zrAyv!y{;v}b83^$(ImsCMV6KG)UTI{a6eH*&t_4+lK9{c?YUQ4KHtlKUJS{D)DSpeJ?pn8M)v76e%SC(L zO21wWe|=+PvV7I&_iyjo_h&KhkomBZJ@x%b_5E*UZL1>Iu3fw9-LBUmfq{zWKR>Cw zcPI8=a&q#i=b)0RNX9*X&&M_?DXA^#=jEyx4v2PoGiZ2&3ud8}HdR+cP5mRLEj@OO zO*e9r%fo_*r9qx`|9^X1&-KgB%JQ0)swvlh`uXRVPfkwG%FTV6Vh_qGMH`ck`@O%g z(0SI}xuFXK0xV?0l9Lzj+GX{$a$e5uFbkP!i4szhk`q%Sx!9VEWZZ>?g{7pVF8%uY zdTa4>ziW03Obi7pe}9_3{}Ct=PYMYSUtVCbCiV2Rm&x+KXQZX2iE#XQS~*YV_{AST zcBrYVr_NgTr*41I&N(3V?QQRNJm!0QV`FnEe*=R9XMtw*my7iu`(!MY_TOKB?3mlt zt5;vn%3c?ko4Z!#c%a_&;Ly;ilRTqu=7c3DCmZ<&+s*g?Srgaj;2l{EOrJa20hpPKaT2~y}PwF`~QUt6L=0^Xkz8Qa^b>)UAwHVUb%9@fM@4AZO>Cr zi@cU!-c|6hsb=5*$a8i3>))NYf9qD%y6>RV!ltiUKCkN3?ak@^I;Vpa1TL%!U47-^ z#f1SHOPm%i=<4E_k&JuY{`j`U69zo4N`g;|EJH&= zP87<_T&4*wN%&+eHoV{W``vHpRXhy!U6UCKFP4^-mCatZ(rMv>01cJng;UO^g@%Tj zntz% znGhX)dt-{x%7qIT?&NGx5#?&#sqb0b|IKsO?LYPvJNsYn;$mx_HD}J1CRT2{EBD{M ze7W+OJwpQnLySuF_Pn1U0W zSof#je@{LC+;#l%uAk3lSKGz>xG`zLF9r^V1Fm0gB=`TEHEWiMo!z>J4-=OLY0g}x zdDtLCYwDBFKc9U6Ey}?n!o&7_9#?^k`@@2Wy8ZFfQZ*-^ToIs=vv3i^hy9QFGGmJ5 z>VB-g_u|D0Ep6?q7cVLvHZU`ngh7 zh||=}?BCJ*=e27Y8yFhAuiP!azt%@>@nZM>R}T(0&zd*yT9>HymW+#wcFtyqy&jsH z`t;7z#t^NgNgG$p&fjPGb9&wPXJ=h)_iAD0ya15*X)T!5?Ve??qoIKaX%-JRjbwEV+uysOr&yS94$ zzEzi(`)A+VQ_0nS*vL0{X^`j3lBlz1&;I}Tysqy5zwkpLf($bl7WCBqecfMSYikR# z=hoJ2Q)A=BFJETz^76j?dcFR16&u5YqOIlc_w9fG?%spDmCvp6pP#G$Z1?kIyUi*l zh6AFH)a@&;{XQiA@8Itv>Slj$G8}jz4?b6Jlo*~Nuw&03^Lb}I1YiB%)d=#Tr>mdK II;Vst0Gi@98~^|S From debe03c516e0bb3afca331d5dbf7ae1c7077494b Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 31 May 2024 11:09:20 +0800 Subject: [PATCH 362/447] home(minecraft): run minecraft under dedicated user --- home/minecraft/home.nix | 2 +- home/minecraft/nixos.nix | 14 ++++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/home/minecraft/home.nix b/home/minecraft/home.nix index 4db63464..5dedf251 100644 --- a/home/minecraft/home.nix +++ b/home/minecraft/home.nix @@ -3,7 +3,7 @@ , config , ... }: with lib; let cfg = config.passthrough.minecraft; - enable = cfg.enable && (cfg.allUsers || (config.home.username == "app")); + enable = cfg.enable && config.home.username == "minecraft"; in mkIf enable { home.packages = with pkgs; [ prismlauncher diff --git a/home/minecraft/nixos.nix b/home/minecraft/nixos.nix index a412f200..a570db79 100644 --- a/home/minecraft/nixos.nix +++ b/home/minecraft/nixos.nix @@ -3,11 +3,10 @@ , config , ... }: with lib; let cfg = config.home.minecraft; - persist = [ ".local/share/PrismLauncher" ]; + gui = with config.global.gpu; enable && session; in { options.home.minecraft = { enable = mkEnableOption "minecraft game launcher and jvm"; - allUsers = mkEnableOption "set up for all users"; }; config = { @@ -16,7 +15,14 @@ in { { passthrough.minecraft = cfg; } ]; - users.home.persist.directories = with cfg; mkIf (enable && allUsers) persist; - users.home.persistApp.directories = with cfg; mkIf (enable && !allUsers) persist; + users.profiles.minecraft = mkIf cfg.enable { + uid = 5801; + description = "Minecraft"; + picture = ../picture/aux.png; + }; + + environment.persistence."/nix/persist".users.minecraft.directories = mkIf (cfg.enable && gui) [ + ".local/share/PrismLauncher" + ]; }; } From d098650c749220c69925cb6ec4c74e131e1a4508 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 31 May 2024 11:12:26 +0800 Subject: [PATCH 363/447] home: crop koishi profile pictures --- home/picture/koishi.png | Bin 97456 -> 90931 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/home/picture/koishi.png b/home/picture/koishi.png index 0c78cf6e950b9233d961f379e8dfb1ac0df8dfcd..8f44f8e0accb59cafaa53ef149d514d0b4007e96 100644 GIT binary patch literal 90931 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 fo86saf9qK<8tFf3ILpJpz`)??>gTe~DWM4fL} Date: Fri, 31 May 2024 11:20:56 +0800 Subject: [PATCH 364/447] home(minecraft): check gui condition in home --- home/minecraft/home.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/home/minecraft/home.nix b/home/minecraft/home.nix index 5dedf251..f67be4ff 100644 --- a/home/minecraft/home.nix +++ b/home/minecraft/home.nix @@ -2,15 +2,15 @@ , lib , config , ... }: with lib; let + inherit (config.passthrough) gui; cfg = config.passthrough.minecraft; enable = cfg.enable && config.home.username == "minecraft"; in mkIf enable { home.packages = with pkgs; [ - prismlauncher jdk8 - ]; + ] ++ optional gui prismlauncher; - wayland.windowManager.sway.config.window.commands = [ + wayland.windowManager.sway.config.window.commands = mkIf gui [ { criteria.app_id = "org.prismlauncher.PrismLauncher"; command = "floating enable"; } ]; } From ab343f2e89c2f0c9f7a099a06b2c7f53bf206102 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 31 May 2024 14:00:52 +0800 Subject: [PATCH 365/447] home(minecraft): make username configurable --- home/minecraft/home.nix | 2 +- home/minecraft/nixos.nix | 13 +++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/home/minecraft/home.nix b/home/minecraft/home.nix index f67be4ff..410eef4c 100644 --- a/home/minecraft/home.nix +++ b/home/minecraft/home.nix @@ -4,7 +4,7 @@ , ... }: with lib; let inherit (config.passthrough) gui; cfg = config.passthrough.minecraft; - enable = cfg.enable && config.home.username == "minecraft"; + enable = cfg.enable && config.home.username == cfg.user; in mkIf enable { home.packages = with pkgs; [ jdk8 diff --git a/home/minecraft/nixos.nix b/home/minecraft/nixos.nix index a570db79..ebbdab5d 100644 --- a/home/minecraft/nixos.nix +++ b/home/minecraft/nixos.nix @@ -7,6 +7,11 @@ in { options.home.minecraft = { enable = mkEnableOption "minecraft game launcher and jvm"; + user = mkOption { + type = with types; str; + default = "minecraft"; + description = "username which minecraft game client runs under"; + }; }; config = { @@ -15,14 +20,14 @@ in { { passthrough.minecraft = cfg; } ]; - users.profiles.minecraft = mkIf cfg.enable { + users.profiles.minecraft = mkIf (cfg.enable && cfg.user == "minecraft") { uid = 5801; description = "Minecraft"; picture = ../picture/aux.png; }; - environment.persistence."/nix/persist".users.minecraft.directories = mkIf (cfg.enable && gui) [ - ".local/share/PrismLauncher" - ]; + environment.persistence."/nix/persist".users.${cfg.user} = mkIf (cfg.enable && gui) { + directories = [ ".local/share/PrismLauncher" ]; + }; }; } From 47ea3ecb9852b1af38a0f1583afbbc0e8cb1ceea Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 31 May 2024 14:01:32 +0800 Subject: [PATCH 366/447] spec(koumakyou): minecraft retain app user --- spec/koumakyou/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/koumakyou/default.nix b/spec/koumakyou/default.nix index 186d5e10..0bba4365 100644 --- a/spec/koumakyou/default.nix +++ b/spec/koumakyou/default.nix @@ -14,6 +14,7 @@ home = { vscode.enable = true; minecraft.enable = true; + minecraft.user = "app"; }; users.homeModules = [ { From ee4ea70851b9e164b80b318bcffd1021fd119221 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 2 Jun 2024 22:19:21 +0800 Subject: [PATCH 367/447] global(fs): make syncoid delete target snapshots --- global/fs/zfs/replication.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/global/fs/zfs/replication.nix b/global/fs/zfs/replication.nix index f2edba41..1650c118 100644 --- a/global/fs/zfs/replication.nix +++ b/global/fs/zfs/replication.nix @@ -11,6 +11,7 @@ in mkIf cfg.enable { commonArgs = [ "--recursive" "--mbuffer-size=128M" + "--delete-target-snapshots" "--sshport=${toString cfg.port}" ]; localSourceAllow = mkOptionDefault [ "mount" ]; From 64ba8a8987ac4d37be7c4af004c94bc8773e97cf Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 2 Jun 2024 23:01:58 +0800 Subject: [PATCH 368/447] flake: bump inputs --- flake.lock | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/flake.lock b/flake.lock index 00f39f08..62889ce4 100644 --- a/flake.lock +++ b/flake.lock @@ -56,11 +56,11 @@ ] }, "locked": { - "lastModified": 1715865404, - "narHash": "sha256-/GJvTdTpuDjNn84j82cU6bXztE0MSkdnTWClUCRub78=", + "lastModified": 1717285511, + "narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "8dc45382d5206bd292f9c2768b8058a8fd8311d9", + "rev": "2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8", "type": "github" }, "original": { @@ -155,11 +155,11 @@ ] }, "locked": { - "lastModified": 1716930911, - "narHash": "sha256-t4HT5j3Jy7skRB5PINnxcEBCkgE89rGBpwTI7YS4Ffo=", + "lastModified": 1717316182, + "narHash": "sha256-Xi0EpZcu39N0eW7apLjFfUOR9y80toyjYizez7J1wMI=", "owner": "nix-community", "repo": "home-manager", - "rev": "a9b36cbe9292a649222b89fdb9ae9907e9c74086", + "rev": "9b53a10f4c91892f5af87cf55d08fba59ca086af", "type": "github" }, "original": { @@ -190,11 +190,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1716618639, - "narHash": "sha256-H3kcJDVqDmXZ9IfVtqObL3JUx/a0ERn6gWBTn+7vwN4=", + "lastModified": 1717012808, + "narHash": "sha256-Wn0fbjqmpIiuPUWnvxu85a9sPYtSd/2tcPDhAYW54RM=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "a358c56a163b3b7d149571e853a8f75b2c1ceb38", + "rev": "a8e6557f29fa0cbcc2c54d15f9664c14ae2a3e98", "type": "github" }, "original": { @@ -286,11 +286,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1716509168, - "narHash": "sha256-4zSIhSRRIoEBwjbPm3YiGtbd8HDWzFxJjw5DYSDy1n8=", + "lastModified": 1716948383, + "narHash": "sha256-SzDKxseEcHR5KzPXLwsemyTR/kaM9whxeiJohbL04rs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "bfb7a882678e518398ce9a31a881538679f6f092", + "rev": "ad57eef4ef0659193044870c731987a6df5cf56b", "type": "github" }, "original": { @@ -310,11 +310,11 @@ ] }, "locked": { - "lastModified": 1716902607, - "narHash": "sha256-jShqpVupP/7ksp6gCBVG9/05zYSX8Q+z6eGe9HLYtUs=", + "lastModified": 1717265895, + "narHash": "sha256-SsNTqFnefBO5wV5qD7nzd5wwrf2eOA/yahnP0lnQXhk=", "owner": "pjones", "repo": "plasma-manager", - "rev": "4a255e5ea6bf2c7815d893a693c5c801d835ba6b", + "rev": "6e6d6a457355c7675484c0197bab06c2a4840b7d", "type": "github" }, "original": { From 68d72a076f67562cd9049604617644171e8c8f81 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 3 Jun 2024 11:05:58 +0800 Subject: [PATCH 369/447] spec(eientei): add minecraft services --- spec/eientei/default.nix | 1 - spec/eientei/minecraft.nix | 95 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 spec/eientei/minecraft.nix diff --git a/spec/eientei/default.nix b/spec/eientei/default.nix index 4da7d086..b5a098e7 100644 --- a/spec/eientei/default.nix +++ b/spec/eientei/default.nix @@ -42,6 +42,5 @@ boot.kernelModules = [ "kvm-intel" ]; boot.extraModulePackages = [ ]; - networking.firewall.allowedTCPPorts = [ 25565 ]; environment.systemPackages = with pkgs; [ python3 ]; } diff --git a/spec/eientei/minecraft.nix b/spec/eientei/minecraft.nix new file mode 100644 index 00000000..fc485da1 --- /dev/null +++ b/spec/eientei/minecraft.nix @@ -0,0 +1,95 @@ +{ pkgs, lib, config, ... }: let + inherit (lib) mapAttrs' nameValuePair; + + servers = { + bungeecord = { + cmdline = "${pkgs.graalvmCEPackages.graalvm-ce}/bin/java -Xms2G -Xmx4G -XX:+UseG1GC -XX:G1HeapRegionSize=4M -XX:+UnlockExperimentalVMOptions -XX:+ParallelRefProcEnabled -XX:+AlwaysPreTouch -jar BungeeCord.jar"; + stop = "end"; + }; + + nfwc = { + cmdline = "${pkgs.jdk}/bin/java @user_jvm_args.txt @libraries/net/minecraftforge/forge/1.19.2-43.3.8/unix_args.txt"; + stop = "stop"; + }; + }; + + prefix = "minecraft-server-"; + data = "/nix/persist/service/minecraft"; +in { + # https://github.com/NixOS/nixpkgs/blob/nixos-unstable/nixos/modules/services/games/minecraft-server.nix + users.users.minecraft = { + description = "Minecraft server service user"; + home = data; + createHome = true; + isSystemUser = true; + uid = 1021; + group = "minecraft"; + }; + users.groups.minecraft.gid = 1021; + + systemd.sockets = mapAttrs' (name: value: with value; (nameValuePair "${prefix}${name}" { + bindsTo = [ "${prefix}${name}.service" ]; + socketConfig = { + ListenFIFO = "/run/minecraft-server/${name}.stdin"; + SocketMode = "0660"; + SocketUser = "minecraft"; + SocketGroup = "minecraft"; + RemoveOnStop = true; + FlushPending = true; + }; + })) servers; + + systemd.services = let + stopScript = { name, stop }: pkgs.writeShellScript "minecraft-server-stop" '' + echo ${stop} > ${config.systemd.sockets."${prefix}${name}".socketConfig.ListenFIFO} + + # Wait for the PID of the minecraft server to disappear before + # returning, so systemd doesn't attempt to SIGKILL it. + while kill -0 "$1" 2> /dev/null; do + sleep 1s + done + ''; + in mapAttrs' (name: value: with value; (nameValuePair "${prefix}${name}" { + description = "Minecraft Server Service for ${name}"; + wantedBy = [ "multi-user.target" ]; + requires = [ "${prefix}${name}.socket" ]; + after = [ "network.target" "${prefix}${name}.socket" ]; + + serviceConfig = { + ExecStart = cmdline; + ExecStop = "${stopScript { inherit name stop; }} $MAINPID"; + Restart = "always"; + User = "minecraft"; + WorkingDirectory = "${data}/${name}"; + + StandardInput = "socket"; + StandardOutput = "journal"; + StandardError = "journal"; + + # Hardening + CapabilityBoundingSet = [ "" ]; + DeviceAllow = [ "" ]; + LockPersonality = true; + PrivateDevices = true; + PrivateTmp = true; + PrivateUsers = true; + ProtectClock = true; + ProtectControlGroups = true; + ProtectHome = true; + ProtectHostname = true; + ProtectKernelLogs = true; + ProtectKernelModules = true; + ProtectKernelTunables = true; + ProtectProc = "invisible"; + RestrictAddressFamilies = [ "AF_INET" "AF_INET6" ]; + RestrictNamespaces = true; + RestrictRealtime = true; + RestrictSUIDSGID = true; + SystemCallArchitectures = "native"; + UMask = "0077"; + }; + })) servers; + + global.fs.zfs.mountpoints.${data} = "service/minecraft"; + networking.firewall.allowedTCPPorts = [ 25565 ]; +} From eb7fe8397a7816e02d72833fb6e80831dcd77715 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 3 Jun 2024 16:03:15 +0800 Subject: [PATCH 370/447] spec(eientei): remove minecraft reverse proxy --- spec/eientei/minecraft.nix | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/spec/eientei/minecraft.nix b/spec/eientei/minecraft.nix index fc485da1..a9b88b9f 100644 --- a/spec/eientei/minecraft.nix +++ b/spec/eientei/minecraft.nix @@ -2,10 +2,15 @@ inherit (lib) mapAttrs' nameValuePair; servers = { - bungeecord = { - cmdline = "${pkgs.graalvmCEPackages.graalvm-ce}/bin/java -Xms2G -Xmx4G -XX:+UseG1GC -XX:G1HeapRegionSize=4M -XX:+UnlockExperimentalVMOptions -XX:+ParallelRefProcEnabled -XX:+AlwaysPreTouch -jar BungeeCord.jar"; - stop = "end"; - }; + #bungeecord = { + # cmdline = "${pkgs.graalvmCEPackages.graalvm-ce}/bin/java -Xms2G -Xmx4G -XX:+UseG1GC -XX:G1HeapRegionSize=4M -XX:+UnlockExperimentalVMOptions -XX:+ParallelRefProcEnabled -XX:+AlwaysPreTouch -jar waterfall-1.20-578.jar"; + # stop = "end"; + #}; + + #limbo = { + # cmdline = "${pkgs.graalvmCEPackages.graalvm-ce}/bin/java -Xms1G -Xmx1G -jar NanoLimbo-1.8-all.jar"; + # stop = "stop"; + #}; nfwc = { cmdline = "${pkgs.jdk}/bin/java @user_jvm_args.txt @libraries/net/minecraftforge/forge/1.19.2-43.3.8/unix_args.txt"; @@ -54,6 +59,7 @@ in { wantedBy = [ "multi-user.target" ]; requires = [ "${prefix}${name}.socket" ]; after = [ "network.target" "${prefix}${name}.socket" ]; + path = [ pkgs.bash ]; serviceConfig = { ExecStart = cmdline; From 67b56d98051df50e484efcfce8c04aa24f4a0f01 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 10 Jun 2024 10:11:39 +0800 Subject: [PATCH 371/447] flake: bump inputs --- flake.lock | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/flake.lock b/flake.lock index 62889ce4..d84596e7 100644 --- a/flake.lock +++ b/flake.lock @@ -155,11 +155,11 @@ ] }, "locked": { - "lastModified": 1717316182, - "narHash": "sha256-Xi0EpZcu39N0eW7apLjFfUOR9y80toyjYizez7J1wMI=", + "lastModified": 1717931644, + "narHash": "sha256-Sz8Wh9cAiD5FhL8UWvZxBfnvxETSCVZlqWSYWaCPyu0=", "owner": "nix-community", "repo": "home-manager", - "rev": "9b53a10f4c91892f5af87cf55d08fba59ca086af", + "rev": "3d65009effd77cb0d6e7520b68b039836a7606cf", "type": "github" }, "original": { @@ -170,11 +170,11 @@ }, "impermanence": { "locked": { - "lastModified": 1708968331, - "narHash": "sha256-VUXLaPusCBvwM3zhGbRIJVeYluh2uWuqtj4WirQ1L9Y=", + "lastModified": 1717932370, + "narHash": "sha256-7C5lCpiWiyPoIACOcu2mukn/1JRtz6HC/1aEMhUdcw0=", "owner": "nix-community", "repo": "impermanence", - "rev": "a33ef102a02ce77d3e39c25197664b7a636f9c30", + "rev": "27979f1c3a0d3b9617a3563e2839114ba7d48d3f", "type": "github" }, "original": { @@ -190,11 +190,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1717012808, - "narHash": "sha256-Wn0fbjqmpIiuPUWnvxu85a9sPYtSd/2tcPDhAYW54RM=", + "lastModified": 1717685136, + "narHash": "sha256-S+C/DX5HOhlhJAmcGxbB+Tv6oqZOkr3z/WzPuydXI14=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "a8e6557f29fa0cbcc2c54d15f9664c14ae2a3e98", + "rev": "fd13986ede9b94c50e84aecb2c88863e297bbb52", "type": "github" }, "original": { @@ -286,11 +286,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1716948383, - "narHash": "sha256-SzDKxseEcHR5KzPXLwsemyTR/kaM9whxeiJohbL04rs=", + "lastModified": 1717786204, + "narHash": "sha256-4q0s6m0GUcN7q+Y2DqD27iLvbcd1G50T2lv08kKxkSI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ad57eef4ef0659193044870c731987a6df5cf56b", + "rev": "051f920625ab5aabe37c920346e3e69d7d34400e", "type": "github" }, "original": { @@ -310,11 +310,11 @@ ] }, "locked": { - "lastModified": 1717265895, - "narHash": "sha256-SsNTqFnefBO5wV5qD7nzd5wwrf2eOA/yahnP0lnQXhk=", + "lastModified": 1717666468, + "narHash": "sha256-SKPMh/Apjk3DhY0B/SqTvmt1/UFf2AHwoVPTGA6Md9c=", "owner": "pjones", "repo": "plasma-manager", - "rev": "6e6d6a457355c7675484c0197bab06c2a4840b7d", + "rev": "d982fe0063be13bbe57a0c4ace8b406236812b94", "type": "github" }, "original": { From cc9d40b5a5a838eb135ff01793f2ad648d8c81d5 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 10 Jun 2024 17:08:44 +0800 Subject: [PATCH 372/447] spec(koumakyou): add gamemode and enable decky --- spec/koumakyou/default.nix | 1 + spec/koumakyou/jovian.nix | 59 +++++++++++++++++++++++++++++++------- 2 files changed, 50 insertions(+), 10 deletions(-) diff --git a/spec/koumakyou/default.nix b/spec/koumakyou/default.nix index 0bba4365..51163f68 100644 --- a/spec/koumakyou/default.nix +++ b/spec/koumakyou/default.nix @@ -43,6 +43,7 @@ programs.regreet.enable = lib.mkForce true; jovian.steam.autoStart = lib.mkForce false; jovian.steam.desktopSession = lib.mkForce "sway"; + jovian.decky-loader.enable = lib.mkForce false; home.plasma.enable = lib.mkForce false; services.greetd.settings.default_session.command = let cfg = config.programs.regreet; diff --git a/spec/koumakyou/jovian.nix b/spec/koumakyou/jovian.nix index 2a20be30..23c95207 100644 --- a/spec/koumakyou/jovian.nix +++ b/spec/koumakyou/jovian.nix @@ -1,4 +1,4 @@ -{ pkgs, jovian, ... }: { +{ pkgs, lib, config, jovian, ... }: { imports = [ jovian.nixosModules.jovian ]; @@ -17,11 +17,13 @@ }; users.home.persistApp.directories = [ - ".steam" ".local/share/Steam" ".config/gamescope" + ".steam" ".local/share/Steam" + ".config/gamescope" ".config/hhd" ".kodi" ]; - users.users.app.extraGroups = [ "networkmanager" ]; + users.users.app.extraGroups = [ "networkmanager" "gamemode" ]; + programs.gamemode.enable = true; programs.regreet.enable = false; home.plasma.enable = true; home.plasma.extraConfig = { @@ -41,11 +43,48 @@ jellycon ])) ]; -} // { - #users.users.decky.uid = 514; - #users.groups.decky.gid = 514; - #jovian.decky-loader = { - # enable = true; - # stateDir = "/nix/persist/decky"; - #}; + + services.handheld-daemon = { + enable = true; + user = "app"; + }; + + jovian.decky-loader = let + adjustor = pkgs.python3.pkgs.buildPythonApplication rec { + pname = "adjustor"; + version = "2.1.5"; + pyproject = true; + + src = pkgs.fetchFromGitHub { + owner = "hhd-dev"; + repo = pname; + rev = "v${version}"; + hash = "sha256-KgeK2lC3b9VbjYmy7rD/ImODWDDx3pWIzWgNnSLJeDs="; + }; + + propagatedBuildInputs = with pkgs.python3.pkgs; [ + setuptools + pyroute2 + rich + ]; + + # This package doesn't have upstream tests. + doCheck = false; + }; + in { + # ~/.steam/steam/.cef-enable-remote-debugging + enable = true; + user = "app"; + extraPackages = with pkgs; [ + curl unzip util-linux gnugrep procps pciutils kmod + ryzenadj # adjustor + ]; + extraPythonPackages = pythonPackages: with pythonPackages; [ + hid pyyaml + # adjustor + ]; + stateDir = "/nix/persist/decky"; + }; + + boot.kernelParams = lib.mkIf config.jovian.decky-loader.enable [ "iomem=relaxed" "amd_pstate=passive" ]; } From a88cabfc802ac5de8edd56391c025d19b525b5d6 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 11 Jun 2024 08:24:40 +0800 Subject: [PATCH 373/447] spec(koumakyou): enable jetbrains defaults --- spec/koumakyou/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/koumakyou/default.nix b/spec/koumakyou/default.nix index 51163f68..152489a5 100644 --- a/spec/koumakyou/default.nix +++ b/spec/koumakyou/default.nix @@ -12,6 +12,7 @@ }; home = { + jetbrains.enable = true; vscode.enable = true; minecraft.enable = true; minecraft.user = "app"; From 8592b666ba8c6daa155081e2f1370b71cdd9196a Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 11 Jun 2024 11:53:49 +0800 Subject: [PATCH 374/447] spec(koumakyou): clean up jovian config --- spec/koumakyou/default.nix | 14 ++-- spec/koumakyou/jovian.nix | 136 +++++++++++++++---------------------- 2 files changed, 63 insertions(+), 87 deletions(-) diff --git a/spec/koumakyou/default.nix b/spec/koumakyou/default.nix index 152489a5..b1c239d3 100644 --- a/spec/koumakyou/default.nix +++ b/spec/koumakyou/default.nix @@ -1,4 +1,4 @@ -{ pkgs, lib, config, ... }: { +{ pkgs, lib, config, jovian, ... }: { global = { id = "0a920a834b5f480bab258040096d4c6e"; fs.esp.uuid = "ACB3-4AFF"; @@ -41,11 +41,8 @@ console.earlySetup = true; specialisation.desktop.configuration = { - programs.regreet.enable = lib.mkForce true; - jovian.steam.autoStart = lib.mkForce false; - jovian.steam.desktopSession = lib.mkForce "sway"; - jovian.decky-loader.enable = lib.mkForce false; - home.plasma.enable = lib.mkForce false; + global.jovian = false; + jovian.steamos.useSteamOSConfig = false; services.greetd.settings.default_session.command = let cfg = config.programs.regreet; in "${pkgs.dbus}/bin/dbus-run-session ${lib.getExe pkgs.cage} ${lib.escapeShellArgs cfg.cageArgs} -- ${pkgs.writeShellScript "cageResolution" '' @@ -67,5 +64,8 @@ boot.extraModulePackages = [ ]; hardware.cpu.intel.updateMicrocode = true; - imports = [ ./jovian.nix ]; + imports = [ + jovian.nixosModules.jovian + ./jovian.nix + ]; } diff --git a/spec/koumakyou/jovian.nix b/spec/koumakyou/jovian.nix index 23c95207..d08aa145 100644 --- a/spec/koumakyou/jovian.nix +++ b/spec/koumakyou/jovian.nix @@ -1,90 +1,66 @@ -{ pkgs, lib, config, jovian, ... }: { - imports = [ - jovian.nixosModules.jovian - ]; +{ pkgs, lib, config, ... }: with lib; { + options.global.jovian = mkEnableOption "set up Jovian NixOS" // { default = true; }; - jovian = { - hardware.has.amd.gpu = true; - steamos.useSteamOSConfig = true; - steamos.enableDefaultCmdlineConfig = false; + config = mkIf config.global.jovian { + jovian = { + hardware.has.amd.gpu = true; + steamos.useSteamOSConfig = true; + #steamos.enableDefaultCmdlineConfig = false; - steam = { + steam = { + enable = true; + autoStart = true; + desktopSession = "plasma"; + user = "app"; + }; + }; + + users.home.persistApp.directories = [ + ".steam" ".local/share/Steam" + ".config/gamescope" ".config/hhd" + ".kodi" + ]; + + users.users.app.extraGroups = [ "networkmanager" "gamemode" ]; + programs.gamemode.enable = true; + programs.regreet.enable = false; + home.plasma.enable = true; + home.plasma.extraConfig = { + configFile = { + kwinrc.Xwayland.Scale = 1.75; + kscreenlockerrc.Daemon.Autolock = false; + }; + }; + + home-manager.users.app.home.packages = with pkgs; [ + (pkgs.kodi-wayland.passthru.withPackages (kodiPkgs: with kodiPkgs; [ + joystick # keymap steam-controller + #controller-topology-project + libretro libretro-2048 + libretro-fuse libretro-genplus libretro-mgba + libretro-nestopia libretro-snes9x + jellycon + ])) + ]; + + services.handheld-daemon = { enable = true; - autoStart = true; - desktopSession = "plasma"; user = "app"; }; - }; - users.home.persistApp.directories = [ - ".steam" ".local/share/Steam" - ".config/gamescope" ".config/hhd" - ".kodi" - ]; - - users.users.app.extraGroups = [ "networkmanager" "gamemode" ]; - programs.gamemode.enable = true; - programs.regreet.enable = false; - home.plasma.enable = true; - home.plasma.extraConfig = { - configFile = { - kwinrc.Xwayland.Scale = 1.75; - kscreenlockerrc.Daemon.Autolock = false; - }; - }; - - home-manager.users.app.home.packages = with pkgs; [ - (pkgs.kodi-wayland.passthru.withPackages (kodiPkgs: with kodiPkgs; [ - joystick # keymap steam-controller - #controller-topology-project - libretro libretro-2048 - libretro-fuse libretro-genplus libretro-mgba - libretro-nestopia libretro-snes9x - jellycon - ])) - ]; - - services.handheld-daemon = { - enable = true; - user = "app"; - }; - - jovian.decky-loader = let - adjustor = pkgs.python3.pkgs.buildPythonApplication rec { - pname = "adjustor"; - version = "2.1.5"; - pyproject = true; - - src = pkgs.fetchFromGitHub { - owner = "hhd-dev"; - repo = pname; - rev = "v${version}"; - hash = "sha256-KgeK2lC3b9VbjYmy7rD/ImODWDDx3pWIzWgNnSLJeDs="; - }; - - propagatedBuildInputs = with pkgs.python3.pkgs; [ - setuptools - pyroute2 - rich + jovian.decky-loader = { + # ~/.steam/steam/.cef-enable-remote-debugging + enable = true; + user = "app"; + extraPackages = with pkgs; [ + curl unzip util-linux gnugrep procps pciutils kmod ryzenadj ]; - - # This package doesn't have upstream tests. - doCheck = false; + extraPythonPackages = pythonPackages: with pythonPackages; [ + hid pyyaml + ]; + stateDir = "/nix/persist/decky"; }; - in { - # ~/.steam/steam/.cef-enable-remote-debugging - enable = true; - user = "app"; - extraPackages = with pkgs; [ - curl unzip util-linux gnugrep procps pciutils kmod - ryzenadj # adjustor - ]; - extraPythonPackages = pythonPackages: with pythonPackages; [ - hid pyyaml - # adjustor - ]; - stateDir = "/nix/persist/decky"; - }; - boot.kernelParams = lib.mkIf config.jovian.decky-loader.enable [ "iomem=relaxed" "amd_pstate=passive" ]; + boot.kernelParams = [ "iomem=relaxed" "amd_pstate=passive" ]; + }; } From ab6b29a30a305a271960354e3317f41b8b84ebd7 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 13 Jun 2024 08:56:50 +0800 Subject: [PATCH 375/447] spec(koumakyou): set max-performance on power disconnect --- spec/koumakyou/jovian.nix | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/spec/koumakyou/jovian.nix b/spec/koumakyou/jovian.nix index d08aa145..a5754ee1 100644 --- a/spec/koumakyou/jovian.nix +++ b/spec/koumakyou/jovian.nix @@ -5,7 +5,7 @@ jovian = { hardware.has.amd.gpu = true; steamos.useSteamOSConfig = true; - #steamos.enableDefaultCmdlineConfig = false; + steamos.enableDefaultCmdlineConfig = false; steam = { enable = true; @@ -61,6 +61,13 @@ stateDir = "/nix/persist/decky"; }; - boot.kernelParams = [ "iomem=relaxed" "amd_pstate=passive" ]; + boot.kernelParams = [ + "iomem=relaxed" + "amd_pstate=passive" + ]; + + services.udev.extraRules = '' + SUBSYSTEM=="power_supply", ATTR{online}=="0", RUN+="${pkgs.ryzenadj}/bin/ryzenadj --max-performance" + ''; }; } From 5752c8339f23ae293c7a4570db1591505af8cddd Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 24 Jun 2024 09:56:31 +0800 Subject: [PATCH 376/447] home(gui): switch to catppuccin module --- flake.nix | 1 + home/btop/home.nix | 88 ------------------ home/catppuccin/flake.png | Bin 0 -> 47817 bytes home/catppuccin/home.nix | 59 ++++++++++++ home/{gui => }/catppuccin/nixos.nix | 30 ++++--- home/{gui => }/catppuccin/solid.png | Bin 29882 -> 33649 bytes home/gui/catppuccin/flake.png | Bin 50243 -> 0 bytes home/gui/catppuccin/home.nix | 135 ---------------------------- home/gui/catppuccin/palette.nix | 117 ------------------------ home/gui/home.nix | 14 +-- home/gui/nixos.nix | 2 - home/profile.nix | 5 +- spec/default.nix | 1 + 13 files changed, 91 insertions(+), 361 deletions(-) create mode 100644 home/catppuccin/flake.png create mode 100644 home/catppuccin/home.nix rename home/{gui => }/catppuccin/nixos.nix (68%) rename home/{gui => }/catppuccin/solid.png (68%) delete mode 100644 home/gui/catppuccin/flake.png delete mode 100644 home/gui/catppuccin/home.nix delete mode 100644 home/gui/catppuccin/palette.nix diff --git a/flake.nix b/flake.nix index 50b13ca2..df435879 100644 --- a/flake.nix +++ b/flake.nix @@ -12,6 +12,7 @@ plasma-manager.url = "github:pjones/plasma-manager"; plasma-manager.inputs.nixpkgs.follows = "nixpkgs"; plasma-manager.inputs.home-manager.follows = "home-manager"; + catppuccin.url = "github:catppuccin/nix"; lanzaboote.url = "github:nix-community/lanzaboote/v0.3.0"; lanzaboote.inputs.nixpkgs.follows = "nixpkgs"; diff --git a/home/btop/home.nix b/home/btop/home.nix index ade22460..f435fee1 100644 --- a/home/btop/home.nix +++ b/home/btop/home.nix @@ -7,95 +7,7 @@ in mkIf cfg.enable { programs.btop = { enable = true; settings = { - color_theme = "catppuccin"; theme_background = false; }; }; - - home.file."${config.xdg.configHome}/btop/themes/catppuccin.theme".text = with (import ../gui/catppuccin/palette.nix) - .${config.passthrough.catppuccin.palette}; '' - # Main background, empty for terminal default, need to be empty if you want transparent background - theme[main_bg]="${base}" - - # Main text color - theme[main_fg]="${text}" - - # Title color for boxes - theme[title]="${text}" - - # Highlight color for keyboard shortcuts - theme[hi_fg]="${blue}" - - # Background color of selected item in processes box - theme[selected_bg]="${surface1}" - - # Foreground color of selected item in processes box - theme[selected_fg]="${blue}" - - # Color of inactive/disabled text - theme[inactive_fg]="${overlay1}" - - # Color of text appearing on top of graphs, i.e uptime and current network graph scaling - theme[graph_text]="${rosewater}" - - # Background color of the percentage meters - theme[meter_bg]="${surface1}" - - # Misc colors for processes box including mini cpu graphs, details memory graph and details status text - theme[proc_misc]="${rosewater}" - - # CPU, Memory, Network, Proc box outline colors - theme[cpu_box]="${mauve}" #Mauve - theme[mem_box]="${green}" #Green - theme[net_box]="${maroon}" #Maroon - theme[proc_box]="${blue}" #Blue - - # Box divider line and small boxes line color - theme[div_line]="${overlay0}" - - # Temperature graph color (Green -> Yellow -> Red) - theme[temp_start]="${green}" - theme[temp_mid]="${yellow}" - theme[temp_end]="${red}" - - # CPU graph colors (Teal -> Lavender) - theme[cpu_start]="${teal}" - theme[cpu_mid]="${sapphire}" - theme[cpu_end]="${lavender}" - - # Mem/Disk free meter (Mauve -> Lavender -> Blue) - theme[free_start]="${mauve}" - theme[free_mid]="${lavender}" - theme[free_end]="${blue}" - - # Mem/Disk cached meter (Sapphire -> Lavender) - theme[cached_start]="${sapphire}" - theme[cached_mid]="${blue}" - theme[cached_end]="${lavender}" - - # Mem/Disk available meter (Peach -> Red) - theme[available_start]="${peach}" - theme[available_mid]="${maroon}" - theme[available_end]="${red}" - - # Mem/Disk used meter (Green -> Sky) - theme[used_start]="${green}" - theme[used_mid]="${teal}" - theme[used_end]="${sky}" - - # Download graph colors (Peach -> Red) - theme[download_start]="${peach}" - theme[download_mid]="${maroon}" - theme[download_end]="${red}" - - # Upload graph colors (Green -> Sky) - theme[upload_start]="${green}" - theme[upload_mid]="${teal}" - theme[upload_end]="${sky}" - - # Process box color gradient for threads, mem and cpu usage (Sapphire -> Mauve) - theme[process_start]="${sapphire}" - theme[process_mid]="${lavender}" - theme[process_end]="${mauve}" - ''; } diff --git a/home/catppuccin/flake.png b/home/catppuccin/flake.png new file mode 100644 index 0000000000000000000000000000000000000000..ea098e877f2b249cca7f90a70e342ef21948cbad GIT binary patch literal 47817 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 UD#@7T;G<1EUHx3vIVCg!0M3Ac#sB~S literal 0 HcmV?d00001 diff --git a/home/catppuccin/home.nix b/home/catppuccin/home.nix new file mode 100644 index 00000000..b72fbd75 --- /dev/null +++ b/home/catppuccin/home.nix @@ -0,0 +1,59 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.passthrough.catppuccin; + palette = (import ./palette.nix).${cfg.palette}; +in mkIf cfg.enable { + catppuccin = { + enable = true; + accent = "pink"; + flavor = "mocha"; + }; + + gtk.theme = { inherit (cfg.gtk) package name; }; + home.pointerCursor = { inherit (cfg.cursor) package name; }; + + # sway colour palette override + wayland.windowManager.sway.config = { + colors = { + focused = { border = "$lavender"; background = "$base"; text = "$text"; indicator = "$rosewater"; childBorder = "$lavender"; }; + focusedInactive = { border = "$overlay0"; background = "$base"; text = "$text"; indicator = "$rosewater"; childBorder = "$overlay0"; }; + unfocused = { border = "$overlay0"; background = "$base"; text = "$text"; indicator = "$rosewater"; childBorder = "$overlay0"; }; + urgent = { border = "$peach"; background = "$base"; text = "$peach"; indicator = "$overlay0"; childBorder = "$peach"; }; + placeholder = { border = "$overlay0"; background = "$base"; text = "$text"; indicator = "$overlay0"; childBorder = "$overlay0"; }; + background = "$base"; + }; + + bars = mkForce [ { + colors = { + background = "$base"; + statusline = "$text"; + focusedStatusline = "$text"; + focusedSeparator = "$base"; + focusedWorkspace = { border = "$base"; background = "$base"; text = "$green"; }; + activeWorkspace = { border = "$base"; background = "$base"; text = "$blue"; }; + inactiveWorkspace = { border = "$base"; background = "$base"; text = "$surface1"; }; + urgentWorkspace = { border = "$base"; background = "$base"; text = "$surface1"; }; + bindingMode = { border = "$base"; background = "$base"; text = "$surface1"; }; + }; + + mode = "dock"; + position = "bottom"; + workspaceButtons = true; + workspaceNumbers = true; + statusCommand = "${pkgs.i3status}/bin/i3status"; + fonts = { + names = [ "monospace" ]; + size = 8.0; + }; + trayOutput = "primary"; + } ]; + + output."*".bg = mkForce "${./flake.png} fill"; + gaps.inner = 12; + gaps.outer = 5; + # dodge the status bar + gaps.bottom = 0; + }; +} diff --git a/home/gui/catppuccin/nixos.nix b/home/catppuccin/nixos.nix similarity index 68% rename from home/gui/catppuccin/nixos.nix rename to home/catppuccin/nixos.nix index 4d360baa..cf470aa4 100644 --- a/home/gui/catppuccin/nixos.nix +++ b/home/catppuccin/nixos.nix @@ -8,26 +8,30 @@ in { options.home.catppuccin = { enable = mkEnableOption "catppuccin colour scheme" // { default = gui; }; - palette = mkOption { - type = with types; str; - default = "frappe"; - description = "colour palette in use"; - }; - gtk = { package = mkOption { type = with types; package; - default = pkgs.catppuccin-gtk.override { + default = (pkgs.catppuccin-gtk.overrideAttrs { + src = pkgs.fetchFromGitHub { + owner = "catppuccin"; + repo = "gtk"; + rev = "v1.0.3"; + fetchSubmodules = true; + hash = "sha256-q5/VcFsm3vNEw55zq/vcM11eo456SYE5TQA3g2VQjGc="; + }; + + postUnpack = ""; + }).override { accents = [ "pink" ]; size = "compact"; #tweaks = [ "rimless" "black" ]; - variant = "frappe"; + variant = "mocha"; }; description = "catppuccin gtk theme package"; }; name = mkOption { type = with types; str; - default = "Catppuccin-Frappe-Compact-Pink-Dark"; + default = "catppuccin-mocha-pink-compact+default"; description = "name of catppuccin gtk theme"; }; }; @@ -35,12 +39,12 @@ in { cursor = { package = mkOption { type = with types; package; - default = pkgs.catppuccin-cursors.frappeDark; + default = pkgs.catppuccin-cursors.mochaDark; description = "catppuccin cursor theme package"; }; name = mkOption { type = with types; str; - default = "Catppuccin-Frappe-Dark-Cursors"; + default = "catppuccin-mocha-dark-cursors"; description = "name of catppuccin cursor theme"; }; }; @@ -52,8 +56,10 @@ in { { passthrough.catppuccin = cfg; } ]; + catppuccin.enable = cfg.enable; + # gtk and cursor themes - environment.systemPackages = with cfg; mkIf cfg.enable [ + environment.systemPackages = with cfg; mkIf enable [ gtk.package cursor.package ]; diff --git a/home/gui/catppuccin/solid.png b/home/catppuccin/solid.png similarity index 68% rename from home/gui/catppuccin/solid.png rename to home/catppuccin/solid.png index 2c512dd6394541a9e2c3c5b5b44eeb870f5b098f..81bd01e2b7637f8ad16b5b80b0638bce52352982 100644 GIT binary patch literal 33649 zcmeAS@N?(olHy`uVBq!ia0y~y;Adc9;3(i=Vqjp9zZ0X%z`!Vy8sVAd>8ZuQ!N9=4 z&A`CO!obMD09MHeWfyQTFfcJPGcYqSFic`#VBlk9Vi00rV3@(cz#zoP3|0@)BgM!H zX0KvkV33BgH!(0UXh79~^cylVG4L`lFzjMrU@&52Vh~|qU^v0Rz>wJvvG)$hZjd7x zI2bq>oQqNuOHxx5$}>wc6x=<10~r2jGB89lFu-Y$pn{Q}p@E*U1p|YTfsu)ofti(& ziGqQpm7#@|fiVLUL)#>F21y16hF=T}42%m9?uA+frZ8=aYh|`$U|?*`baoE#baqxK zD9TUE%t>WnsF+hb(bnT|fJm!<^j0NNL2Hr1j)1vu7Af^@<#JsikkuL{>l62j-B)Uo zh`9T~tq&fYPr7>WXk<8hxTC-y#=^3KppuC~@4dNnllFY5kbi!+xZ=Itf%_{AuD>KGR5h{v#{0&+EoIL{LKw1-fz41=U;{lxuQk<*3)+~Fz{AnhD4M^ z`1)8S=jZArrsOB3>Q&?xfFseyzM>#8IXksPAt^OIGtXA({qFrr3YjUkO5vuy2EGN( zsTr9bRYj@6RemAKRoTgwDN6QsTs9R}6}bhusU?XD6}dTi#a0!zN?>!X@`|lM!um=I zU?nBlwn`Dc0SeCfMX3rVdM0`Xx~>(OWkyPNTnaWtDQQ+gE^bgGic->Sl`=|73as?? z%gf94%8m8%i_-NCEiEne4UF`SjC6}q(sYX}^GXscbn}XpK}JB#a7isrF3Kz@$;{7F z0GXMXlwVq6tE9xGpr8OXydt;2*B5SlUNJNjlJj%*D-sLz4fPE4b942PbrhGlmX+Yw zQ5;fPkg6Y)TAW{6l$`2XmYP?hjBG?oGF*Q_X;BW?J1NQfsX3{+sd**E`i6RjC{}_p zCR_(72+}ii3&6T6atlyYmSm}AAQ`ZCkR4KyTL3o~MK#RtV8!4tvU15!E(JNy z)5TT^WWQBPesX4t6_{ycoMx14nQE?Um};7&Ym#VSq??#zlBSzvVwsw3ZfTmDn3{-W zlxJRXNn&1dD#)mc+ycGK%oHojv{aK+!&FOMOJh?*U6Vu;16>P~6hmDzQ`00914AS8 z#KaUNBm9dp(=+oDbC6vHGAboA#md+$)xtc{(nvSO$kiLFv*Zen_>enDP3SOOH_R*nIlwn|2N1_+UWoWzo}{Gwc2 zC7;Z^(h7t`NM>$oa7iL4G!4xSEe$OVEi8=9jZDqWjSz~$Qj3Z+^YcJvf{R$N3@BQx z{EISE^GXsy>C{%q5G-DiTVMq)NArt9^7C_Sl|W7c7tU~L-_(-Cl*E!mm&B4(TO~ws z9Re$^wGAw+3?R-28Rwgyl9^UXNVOd(bJ#$l+#|ENB)_N!KsB19)z2d2~w?~ zpa9MkR*A_FFBB)1r9vVLE|r{-n3tZKVygsAt}rc`SdxNSlBtD>L2{z5fkBdqu8B!n zs;)(vX^O6eX`+Q$T57Ucim^F36yT;8=ckpFCl;kTrl;nW*ebba<`#g%NTzEgG)M4 zsRuC-RO-+YL*s&$RwyWpT0&Czjt19gaFG-OBq<(EU8BK8QV5WwcrNS3%plsM<-f?DO6-TUxHK5+&H1qM$S$B>F!Z*DmXGAQsI zFmO1ba%R6x$rrte7s}tCkpuVjz(hlnI%wbl%w}K+NNiw(GC`vYJQolghc-qj1n-1_ z186J)Dj><00c9~TFen@b4^Kb^QY022%x~afHi3#WFfdFQwQMvP8AcNbgVAU{8!bUb z%SMLLDrU6u9BmeWrgKJHSEJ2>(PjYy!)UW$v{^9PEEw%mkB%0AhD}CC3x>jIK~34) z1{MYe28Rp(ufOFeY2ToTJX9vlgfs#+Dm5A!NW-Y3X=5~}fXaCY9xWV33y0Cd0g@LO z7#K#g!)SIG%?_j40Tu$IjU|GOrRSRxrD1CUAi*{oXaoaoG@w8sFk0J=*0!UyEhr~| z@o07!uuhtcdXnjJtn0gOkp!)SIG%?{wK03t@S!)SIG%?_ZP0LG))VKh68W(ROq z01-nlJ0xA_^8h)W= z5il{DHb!#_(m9Kxg~Mp!04^86#Ax9#S~!dr4&bZ+B1W^rXm%LQ4xpR>#-rI`G&_uD z2XIyZ5u@2*G&_uD2T)D`W8$*IU!Btj7#M^aKz9T%Ffa^k_j5(8wE}2$p}?2_rPfS$ z6~X=(J@18qVf3tq(X$$0nPK$!qtWazdW_`g$(e}qV6=7^tsM}lVf1{G0Xv^$v{)W3 xmJu0ov{)W3mJz98v{)W3mPb!fgXagd?7$dVE9kZHq}~sZ0#8>zmvv4FO#or2+^4YxWQNyy^X;w1@Ht!5I{KCbU_$9En{?r+xXDXVk_rI3* zGu(flWOMrez4@!-&qnibbQ~#6n_>2m?c?9XYe)d8hJ`q>ar}`O;K_mFKDTt(xWc)9G6B)X!q+YlD*4+Wq7{Tv?ks^L2=_ zN0OlT1O+EY-qer;Ww+gaU9I&dbJc7999|c%G~H>Pk%XmKKr7qLug(7tzP}mOy3$i$ za}L9oD2*M4GaFSzb*KJFL85WTm=u$MXj4T z3=9eko-U3dn;qkJu?Z-by=`D&U|?{#@c;T-j*|AxiABE!HYccBG6@`6Cp!UTI>)d7 zyJQ>R32bJx{KU%h;q%4s2qP>Vcm+CQtrZv<7#IY;{4cd;x~sUEF-VwaQ{Y@So+Ft{ zjTsn(8bQ`gKIq*f5U{(<0pwzZ7yn! diff --git a/home/gui/catppuccin/flake.png b/home/gui/catppuccin/flake.png deleted file mode 100644 index 97fb644a2a2db6ff6e867e552d8cb809a9ba98f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50243 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 diff --git a/home/gui/catppuccin/home.nix b/home/gui/catppuccin/home.nix deleted file mode 100644 index 7853f5ea..00000000 --- a/home/gui/catppuccin/home.nix +++ /dev/null @@ -1,135 +0,0 @@ -{ pkgs -, lib -, config -, ... }: with lib; let - cfg = config.passthrough.catppuccin; - palette = (import ./palette.nix).${cfg.palette}; -in mkIf cfg.enable { - # cursor theme - home.pointerCursor = { inherit (cfg.cursor) package name; }; - gtk.cursorTheme = { inherit (cfg.cursor) package name; }; - - # gtk theme - gtk.theme = { inherit (cfg.gtk) package name; }; - gtk.iconTheme = { - package = pkgs.catppuccin-papirus-folders.override { - flavor = cfg.palette; - accent = "pink"; - }; - name = "Papirus-Dark"; - }; - - # sway colour palette override - wayland.windowManager.sway.config = { - colors = with palette; { - focused = { border = lavender; background = base; text = text; indicator = rosewater; childBorder = lavender; }; - focusedInactive = { border = overlay0; background = base; text = text; indicator = rosewater; childBorder = overlay0; }; - unfocused = { border = overlay0; background = base; text = text; indicator = rosewater; childBorder = overlay0; }; - urgent = { border = peach; background = base; text = peach; indicator = overlay0; childBorder = peach; }; - placeholder = { border = overlay0; background = base; text = text; indicator = overlay0; childBorder = overlay0; }; - background = base; - }; - - bars = mkForce [ { - colors = let - p = palette; - in { - background = p.base; - statusline = p.text; - focusedStatusline = p.text; - focusedSeparator = p.base; - focusedWorkspace = { border = p.base; background = p.base; text = p.green; }; - activeWorkspace = { border = p.base; background = p.base; text = p.blue; }; - inactiveWorkspace = { border = p.base; background = p.base; text = p.surface1; }; - urgentWorkspace = { border = p.base; background = p.base; text = p.surface1; }; - bindingMode = { border = p.base; background = p.base; text = p.surface1; }; - }; - - mode = "dock"; - position = "bottom"; - workspaceButtons = true; - workspaceNumbers = true; - statusCommand = "${pkgs.i3status}/bin/i3status"; - fonts = { - names = [ "monospace" ]; - size = 8.0; - }; - trayOutput = "primary"; - } ]; - - output."*".bg = mkForce "${./flake.png} fill"; - gaps.inner = 12; - gaps.outer = 5; - # dodge the status bar - gaps.bottom = 0; - }; - - # swaylock colour palette override - programs.swaylock.settings = with palette; let - transparent = "00000000"; - in { - color = base; - bs-hl-color = rosewater; - caps-lock-bs-hl-color = rosewater; - caps-lock-key-hl-color = green; - inside-color = transparent; - inside-clear-color = transparent; - inside-caps-lock-color = transparent; - inside-ver-color = transparent; - inside-wrong-color = transparent; - key-hl-color = green; - layout-bg-color = transparent; - layout-border-color = transparent; - layout-text-color = text; - line-color = transparent; - line-clear-color = transparent; - line-caps-lock-color = transparent; - line-ver-color = transparent; - line-wrong-color = transparent; - ring-color = lavender; - ring-clear-color = rosewater; - ring-caps-lock-color = peach; - ring-ver-color = blue; - ring-wrong-color = maroon; - separator-color = transparent; - text-color = text; - text-clear-color = rosewater; - text-caps-lock-color = peach; - text-ver-color = blue; - text-wrong-color = maroon; - }; - - # i3status colour palette override - programs.i3status.general = with palette; { - color_good = lavender; - color_degraded = yellow; - color_bad = red; - }; - - # mako colour palette override - services.mako = with palette; { - backgroundColor = base; - textColor = text; - borderColor = blue; - progressColor = "over ${surface0}"; - extraConfig = '' - [urgency=high] - border-color=${peach} - ''; - }; - - # foot colour palette override - programs.foot.settings.colors = with palette; let - c = substring 1 7; - in { - foreground = c text; background = c base; - regular0 = c overlay2; regular1 = c red; - regular2 = c green; regular3 = c yellow; - regular4 = c blue; regular5 = c pink; - regular6 = c teal; regular7 = c surface2; - bright0 = c subtext0; bright1 = c red; - bright2 = c green; bright3 = c yellow; - bright4 = c blue; bright5 = c pink; - bright6 = c teal; bright7 = c surface1; - }; -} diff --git a/home/gui/catppuccin/palette.nix b/home/gui/catppuccin/palette.nix deleted file mode 100644 index 1e330574..00000000 --- a/home/gui/catppuccin/palette.nix +++ /dev/null @@ -1,117 +0,0 @@ -{ - latte = { - rosewater = "#dc8a78"; - flamingo = "#dd7878"; - pink = "#ea76cb"; - mauve = "#8839ef"; - red = "#d20f39"; - maroon = "#e64553"; - peach = "#fe640b"; - yellow = "#df8e1d"; - green = "#40a02b"; - teal = "#179299"; - sky = "#04a5e5"; - sapphire = "#209fb5"; - blue = "#1e66f5"; - lavender = "#7287fd"; - text = "#4c4f69"; - subtext1 = "#5c5f77"; - subtext0 = "#6c6f85"; - overlay2 = "#7c7f93"; - overlay1 = "#8c8fa1"; - overlay0 = "#9ca0b0"; - surface2 = "#acb0be"; - surface1 = "#bcc0cc"; - surface0 = "#ccd0da"; - base = "#eff1f5"; - mantle = "#e6e9ef"; - crust = "#dce0e8"; - }; - - frappe = { - rosewater = "#f2d5cf"; - flamingo = "#eebebe"; - pink = "#f4b8e4"; - mauve = "#ca9ee6"; - red = "#e78284"; - maroon = "#ea999c"; - peach = "#ef9f76"; - yellow = "#e5c890"; - green = "#a6d189"; - teal = "#81c8be"; - sky = "#99d1db"; - sapphire = "#85c1dc"; - blue = "#8caaee"; - lavender = "#babbf1"; - text = "#c6d0f5"; - subtext1 = "#b5bfe2"; - subtext0 = "#a5adce"; - overlay2 = "#949cbb"; - overlay1 = "#838ba7"; - overlay0 = "#737994"; - surface2 = "#626880"; - surface1 = "#51576d"; - surface0 = "#414559"; - base = "#303446"; - mantle = "#292c3c"; - crust = "#232634"; - }; - - macchiato = { - rosewater = "#f4dbd6"; - flamingo = "#f0c6c6"; - pink = "#f5bde6"; - mauve = "#c6a0f6"; - red = "#ed8796"; - maroon = "#ee99a0"; - peach = "#f5a97f"; - yellow = "#eed49f"; - green = "#a6da95"; - teal = "#8bd5ca"; - sky = "#91d7e3"; - sapphire = "#7dc4e4"; - blue = "#8aadf4"; - lavender = "#b7bdf8"; - text = "#cad3f5"; - subtext1 = "#b8c0e0"; - subtext0 = "#a5adcb"; - overlay2 = "#939ab7"; - overlay1 = "#8087a2"; - overlay0 = "#6e738d"; - surface2 = "#5b6078"; - surface1 = "#494d64"; - surface0 = "#363a4f"; - base = "#24273a"; - mantle = "#1e2030"; - crust = "#181926"; - }; - - mocha = { - rosewater = "#f5e0dc"; - flamingo = "#f2cdcd"; - pink = "#f5c2e7"; - mauve = "#cba6f7"; - red = "#f38ba8"; - maroon = "#eba0ac"; - peach = "#fab387"; - yellow = "#f9e2af"; - green = "#a6e3a1"; - teal = "#94e2d5"; - sky = "#89dceb"; - sapphire = "#74c7ec"; - blue = "#89b4fa"; - lavender = "#b4befe"; - text = "#cdd6f4"; - subtext1 = "#bac2de"; - subtext0 = "#a6adc8"; - overlay2 = "#9399b2"; - overlay1 = "#7f849c"; - overlay0 = "#6c7086"; - surface2 = "#585b70"; - surface1 = "#45475a"; - surface0 = "#313244"; - base = "#1e1e2e"; - mantle = "#181825"; - crust = "#11111b"; - }; -} diff --git a/home/gui/home.nix b/home/gui/home.nix index 52eac590..f8423161 100644 --- a/home/gui/home.nix +++ b/home/gui/home.nix @@ -1,15 +1,17 @@ { pkgs , lib , config -, ... }: with lib; { - imports = [ ./catppuccin/home.nix ]; - +, ... }: with lib; let + catppuccin = config.passthrough.catppuccin.enable; +in { config = mkIf config.passthrough.gui { # cursor theme - home.pointerCursor = mkDefault { - package = pkgs.bibata-cursors; - name = "Bibata-Modern-Classic"; + home.pointerCursor = { + package = mkDefault pkgs.bibata-cursors; + name = mkDefault "Bibata-Modern-Classic"; size = 24; + x11.enable = true; + gtk.enable = true; }; # gtk theme diff --git a/home/gui/nixos.nix b/home/gui/nixos.nix index 82012777..6b1fccd3 100644 --- a/home/gui/nixos.nix +++ b/home/gui/nixos.nix @@ -5,8 +5,6 @@ gui = with config.global.gpu; enable && session; catppuccin = config.home.catppuccin; in { - imports = [ ./catppuccin/nixos.nix ]; - config = { users.homeModules = [ # this module passes gui configuration to home-manager diff --git a/home/profile.nix b/home/profile.nix index 4a00bf32..6cf374df 100644 --- a/home/profile.nix +++ b/home/profile.nix @@ -1,6 +1,7 @@ { pkgs , lib , config +, inputs , ... }: with lib; let cfg = config.users; in { @@ -137,7 +138,9 @@ in { (filterAttrs (n: _: n != "root") config.users.profiles); home-manager.users = mapAttrs (name: opts: { - imports = cfg.homeModules; + imports = with inputs; cfg.homeModules ++ [ + catppuccin.homeManagerModules.catppuccin + ]; home.file.".face" = mkIf (opts.picture != null) { source = opts.picture; }; diff --git a/spec/default.nix b/spec/default.nix index fe88c033..021aa4c1 100644 --- a/spec/default.nix +++ b/spec/default.nix @@ -12,6 +12,7 @@ ./channel.nix impermanence.nixosModules.impermanence home-manager.nixosModules.home-manager + catppuccin.nixosModules.catppuccin { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; From f7a42fec82abca5abd3fb709a3a1ef3a6d8d0f31 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 24 Jun 2024 09:56:37 +0800 Subject: [PATCH 377/447] flake: bump inputs --- flake.lock | 46 +++++++++++++++++++++++++++++++--------------- 1 file changed, 31 insertions(+), 15 deletions(-) diff --git a/flake.lock b/flake.lock index d84596e7..c2d8e039 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,20 @@ { "nodes": { + "catppuccin": { + "locked": { + "lastModified": 1719104749, + "narHash": "sha256-ZYRhOs5Qm3KzTl0sZg3XVD9zAQf2yDM9E2NHyFMPv8I=", + "owner": "catppuccin", + "repo": "nix", + "rev": "2fb16f2d6ffb2759f14fbcbd1f1e242f5fb662c7", + "type": "github" + }, + "original": { + "owner": "catppuccin", + "repo": "nix", + "type": "github" + } + }, "crane": { "inputs": { "flake-compat": [ @@ -155,11 +170,11 @@ ] }, "locked": { - "lastModified": 1717931644, - "narHash": "sha256-Sz8Wh9cAiD5FhL8UWvZxBfnvxETSCVZlqWSYWaCPyu0=", + "lastModified": 1718788307, + "narHash": "sha256-SqiOz0sljM0GjyQEVinPXQxaGcbOXw5OgpCWGPgh/vo=", "owner": "nix-community", "repo": "home-manager", - "rev": "3d65009effd77cb0d6e7520b68b039836a7606cf", + "rev": "d7830d05421d0ced83a0f007900898bdcaf2a2ca", "type": "github" }, "original": { @@ -190,11 +205,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1717685136, - "narHash": "sha256-S+C/DX5HOhlhJAmcGxbB+Tv6oqZOkr3z/WzPuydXI14=", + "lastModified": 1718916561, + "narHash": "sha256-BOZ06KJ2l7E9z0y2pjrd1dyoV5ERJRHeD6K1lkapw4w=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "fd13986ede9b94c50e84aecb2c88863e297bbb52", + "rev": "e7740b673956283e30529dbaff3aa99ff98f4062", "type": "github" }, "original": { @@ -254,11 +269,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1716330097, - "narHash": "sha256-8BO3B7e3BiyIDsaKA0tY8O88rClYRTjvAp66y+VBUeU=", + "lastModified": 1718714799, + "narHash": "sha256-FUZpz9rg3gL8NVPKbqU8ei1VkPLsTIfAJ2fdAf5qjak=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5710852ba686cc1fd0d3b8e22b3117d43ba374c2", + "rev": "c00d587b1a1afbf200b1d8f0b0e4ba9deb1c7f0e", "type": "github" }, "original": { @@ -286,11 +301,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1717786204, - "narHash": "sha256-4q0s6m0GUcN7q+Y2DqD27iLvbcd1G50T2lv08kKxkSI=", + "lastModified": 1718714799, + "narHash": "sha256-FUZpz9rg3gL8NVPKbqU8ei1VkPLsTIfAJ2fdAf5qjak=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "051f920625ab5aabe37c920346e3e69d7d34400e", + "rev": "c00d587b1a1afbf200b1d8f0b0e4ba9deb1c7f0e", "type": "github" }, "original": { @@ -310,11 +325,11 @@ ] }, "locked": { - "lastModified": 1717666468, - "narHash": "sha256-SKPMh/Apjk3DhY0B/SqTvmt1/UFf2AHwoVPTGA6Md9c=", + "lastModified": 1718956312, + "narHash": "sha256-iH+ilQbskYuwoOgN1w3sTgkEcVuuFPIJZ1HCGdgeh70=", "owner": "pjones", "repo": "plasma-manager", - "rev": "d982fe0063be13bbe57a0c4ace8b406236812b94", + "rev": "6f182700ad78f13f367fdfff2b0a4062e70eeea8", "type": "github" }, "original": { @@ -356,6 +371,7 @@ }, "root": { "inputs": { + "catppuccin": "catppuccin", "flake-parts": "flake-parts", "flake-utils": "flake-utils", "home-manager": "home-manager", From 32f726d7d0c8b339bad996855e167975d6f980a9 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 24 Jun 2024 10:04:43 +0800 Subject: [PATCH 378/447] home(vscode): update vscode color theme --- home/vscode/home.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/home/vscode/home.nix b/home/vscode/home.nix index 6fb4b99b..b6ab9c29 100644 --- a/home/vscode/home.nix +++ b/home/vscode/home.nix @@ -16,8 +16,8 @@ in mkIf cfg.enable { bbenoist.nix golang.go rust-lang.rust-analyzer ]; userSettings = { - "workbench.colorTheme" = mkIf theme "Catppuccin Frappé"; - "workbench.iconTheme" = mkIf theme "catppuccin-frappe"; + "workbench.colorTheme" = mkIf theme "Catppuccin Mocha"; + "workbench.iconTheme" = mkIf theme "catppuccin-mocha"; "[nix]"."editor.tabSize" = 2; }; }; From 96a6ac54e46ca082e53a00943a5aa6235c6acd26 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 24 Jun 2024 16:32:20 +0800 Subject: [PATCH 379/447] flake: bump inputs --- flake.lock | 36 ++++++++++++++++++------------------ global/gpu/default.nix | 4 +--- 2 files changed, 19 insertions(+), 21 deletions(-) diff --git a/flake.lock b/flake.lock index c2d8e039..a489bad8 100644 --- a/flake.lock +++ b/flake.lock @@ -170,11 +170,11 @@ ] }, "locked": { - "lastModified": 1718788307, - "narHash": "sha256-SqiOz0sljM0GjyQEVinPXQxaGcbOXw5OgpCWGPgh/vo=", + "lastModified": 1719180626, + "narHash": "sha256-vZAzm5KQpR6RGple1dzmSJw5kPivES2heCFM+ZWkt0I=", "owner": "nix-community", "repo": "home-manager", - "rev": "d7830d05421d0ced83a0f007900898bdcaf2a2ca", + "rev": "6b1f90a8ff92e81638ae6eb48cd62349c3e387bb", "type": "github" }, "original": { @@ -185,11 +185,11 @@ }, "impermanence": { "locked": { - "lastModified": 1717932370, - "narHash": "sha256-7C5lCpiWiyPoIACOcu2mukn/1JRtz6HC/1aEMhUdcw0=", + "lastModified": 1719091691, + "narHash": "sha256-AxaLX5cBEcGtE02PeGsfscSb/fWMnyS7zMWBXQWDKbE=", "owner": "nix-community", "repo": "impermanence", - "rev": "27979f1c3a0d3b9617a3563e2839114ba7d48d3f", + "rev": "23c1f06316b67cb5dabdfe2973da3785cfe9c34a", "type": "github" }, "original": { @@ -205,11 +205,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1718916561, - "narHash": "sha256-BOZ06KJ2l7E9z0y2pjrd1dyoV5ERJRHeD6K1lkapw4w=", + "lastModified": 1719032789, + "narHash": "sha256-MIPobSKR53T0Yrb8wu2fbjSVokhJeJy5AF6B1Hzckso=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "e7740b673956283e30529dbaff3aa99ff98f4062", + "rev": "495a672a2024bdc0e86af95f4e338827f9bfb865", "type": "github" }, "original": { @@ -269,11 +269,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1718714799, - "narHash": "sha256-FUZpz9rg3gL8NVPKbqU8ei1VkPLsTIfAJ2fdAf5qjak=", + "lastModified": 1718895438, + "narHash": "sha256-k3JqJrkdoYwE3fHE6xGDY676AYmyh4U2Zw+0Bwe5DLU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c00d587b1a1afbf200b1d8f0b0e4ba9deb1c7f0e", + "rev": "d603719ec6e294f034936c0d0dc06f689d91b6c3", "type": "github" }, "original": { @@ -301,11 +301,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1718714799, - "narHash": "sha256-FUZpz9rg3gL8NVPKbqU8ei1VkPLsTIfAJ2fdAf5qjak=", + "lastModified": 1719075281, + "narHash": "sha256-CyyxvOwFf12I91PBWz43iGT1kjsf5oi6ax7CrvaMyAo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c00d587b1a1afbf200b1d8f0b0e4ba9deb1c7f0e", + "rev": "a71e967ef3694799d0c418c98332f7ff4cc5f6af", "type": "github" }, "original": { @@ -325,11 +325,11 @@ ] }, "locked": { - "lastModified": 1718956312, - "narHash": "sha256-iH+ilQbskYuwoOgN1w3sTgkEcVuuFPIJZ1HCGdgeh70=", + "lastModified": 1719145147, + "narHash": "sha256-Es/sgvSvVzv3DfWcl3OMABIuBUWiYXx2uwT94hQO4Io=", "owner": "pjones", "repo": "plasma-manager", - "rev": "6f182700ad78f13f367fdfff2b0a4062e70eeea8", + "rev": "5db39ce2fa95f4dfe1bdfe371fd9a90c65b3a9a0", "type": "github" }, "original": { diff --git a/global/gpu/default.nix b/global/gpu/default.nix index 768ed74e..a51e8ddf 100644 --- a/global/gpu/default.nix +++ b/global/gpu/default.nix @@ -29,10 +29,8 @@ in { }; config = mkIf cfg.enable { - hardware.opengl = { + hardware.graphics = { enable = true; - driSupport = true; - driSupport32Bit = true; # https://nixos.wiki/wiki/Accelerated_Video_Playback extraPackages = with pkgs; optionals intel [ From 12365b57e6f7034c5d1812aed908488894ff9182 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 24 Jun 2024 18:22:30 +0800 Subject: [PATCH 380/447] global(io): switch audio system to pipewire --- global/io/default.nix | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/global/io/default.nix b/global/io/default.nix index 7d70afe7..9763ec11 100644 --- a/global/io/default.nix +++ b/global/io/default.nix @@ -30,11 +30,15 @@ in { networking.firewall.logRefusedConnections = true; hardware.bluetooth.enable = mkDefault cfg.bluetooth; - hardware.pulseaudio = mkIf cfg.audio { + # rtkit is optional but recommended + security.rtkit.enable = cfg.audio; + services.pipewire = mkIf cfg.audio { enable = true; - support32Bit = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + jack.enable = true; }; - #nixpkgs.config.pulseaudio = mkIf cfg.audio; security.pam.loginLimits = mkIf (!cfg.coredump) (singleton { domain = "*"; item = "core"; type = "hard"; value = "0"; }); systemd.coredump.extraConfig = mkIf (!cfg.coredump) "Storage=none"; @@ -47,5 +51,8 @@ in { optional cfg.bluetooth "/var/lib/bluetooth" ++ optional cfg.coredump "/var/lib/systemd/coredump"; environment.persistence."/nix/persist/fhs".hideMounts = true; + + users.home.persist.directories = [ ] ++ + optional cfg.audio ".local/state/wireplumber"; }; } From 006f38f4ea1d0d3d7ee43eebafcf9f8d16190ed7 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 24 Jun 2024 20:28:49 +0800 Subject: [PATCH 381/447] global(gui): add nvidia options --- global/gpu/default.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/global/gpu/default.nix b/global/gpu/default.nix index a51e8ddf..dd3a92ca 100644 --- a/global/gpu/default.nix +++ b/global/gpu/default.nix @@ -73,7 +73,7 @@ in { # work around broken nvidia hw cursor on wayland WLR_NO_HARDWARE_CURSORS = mkIf (cfg.type == "nvidia") "1"; # work around wlroots flickering on pure nvidia - WLR_RENDERER = mkIf (cfg.type == "nvidia") "vulkan"; + #WLR_RENDERER = mkIf (cfg.type == "nvidia") "vulkan"; }; specialisation.integratedGraphics = mkIf (cfg.type == "prime") { @@ -103,6 +103,8 @@ in { options vfio-pci ids=${cfg.arc} ''; - boot.kernelParams = optional intel "i915.fastboot=1"; + boot.kernelParams = + optional intel "i915.fastboot=1" ++ + optionals nvidia [ "nvidia_drm.modeset=1" "nvidia_drm.fbdev=1" ]; }; } From 3c4865a2a287795fda544db57b8d1835399db95b Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 12 Jul 2024 17:10:40 +0800 Subject: [PATCH 382/447] spec(yume): enable lanzaboote --- flake.nix | 2 +- spec/yume/default.nix | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index df435879..d50b4480 100644 --- a/flake.nix +++ b/flake.nix @@ -13,7 +13,7 @@ plasma-manager.inputs.nixpkgs.follows = "nixpkgs"; plasma-manager.inputs.home-manager.follows = "home-manager"; catppuccin.url = "github:catppuccin/nix"; - lanzaboote.url = "github:nix-community/lanzaboote/v0.3.0"; + lanzaboote.url = "github:nix-community/lanzaboote/v0.4.1"; lanzaboote.inputs.nixpkgs.follows = "nixpkgs"; # steamdeck diff --git a/spec/yume/default.nix b/spec/yume/default.nix index 9d0dec00..3352e4e4 100644 --- a/spec/yume/default.nix +++ b/spec/yume/default.nix @@ -8,6 +8,7 @@ fs.esp.uuid = "6CEB-765A"; fs.type = "xfs"; fs.store = "b80e8bbe-d1ff-4d2e-ae25-9e9048d67355"; + boot.lanzaboote = true; gpu.enable = true; gpu.type = "nvidia"; }; From a79f83fe785b5ec83e8009bff27480d0ee719bd8 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 12 Jul 2024 17:10:48 +0800 Subject: [PATCH 383/447] flake: bump inputs --- flake.lock | 116 +++++++++++++++++++++++------------------------------ 1 file changed, 50 insertions(+), 66 deletions(-) diff --git a/flake.lock b/flake.lock index a489bad8..4ae8ef03 100644 --- a/flake.lock +++ b/flake.lock @@ -2,11 +2,11 @@ "nodes": { "catppuccin": { "locked": { - "lastModified": 1719104749, - "narHash": "sha256-ZYRhOs5Qm3KzTl0sZg3XVD9zAQf2yDM9E2NHyFMPv8I=", + "lastModified": 1720472194, + "narHash": "sha256-CYscFEts6tyvosc1T29nxhzIYJAj/1CCEkV3ZMzSN/c=", "owner": "catppuccin", "repo": "nix", - "rev": "2fb16f2d6ffb2759f14fbcbd1f1e242f5fb662c7", + "rev": "d75d5803852fb0833767dc969a4581ac13204e22", "type": "github" }, "original": { @@ -17,29 +17,17 @@ }, "crane": { "inputs": { - "flake-compat": [ - "lanzaboote", - "flake-compat" - ], - "flake-utils": [ - "lanzaboote", - "flake-utils" - ], "nixpkgs": [ "lanzaboote", "nixpkgs" - ], - "rust-overlay": [ - "lanzaboote", - "rust-overlay" ] }, "locked": { - "lastModified": 1681177078, - "narHash": "sha256-ZNIjBDou2GOabcpctiQykEQVkI8BDwk7TyvlWlI4myE=", + "lastModified": 1717535930, + "narHash": "sha256-1hZ/txnbd/RmiBPNUs7i8UQw2N89uAK3UzrGAWdnFfU=", "owner": "ipetkov", "repo": "crane", - "rev": "0c9f468ff00576577d83f5019a66c557ede5acf6", + "rev": "55e7754ec31dac78980c8be45f8a28e80e370946", "type": "github" }, "original": { @@ -51,11 +39,11 @@ "flake-compat": { "flake": false, "locked": { - "lastModified": 1673956053, - "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", "owner": "edolstra", "repo": "flake-compat", - "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", "type": "github" }, "original": { @@ -71,11 +59,11 @@ ] }, "locked": { - "lastModified": 1717285511, - "narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=", + "lastModified": 1719994518, + "narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8", + "rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7", "type": "github" }, "original": { @@ -92,11 +80,11 @@ ] }, "locked": { - "lastModified": 1680392223, - "narHash": "sha256-n3g7QFr85lDODKt250rkZj2IFS3i4/8HBU2yKHO3tqw=", + "lastModified": 1717285511, + "narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "dcc36e45d054d7bb554c9cdab69093debd91a0b5", + "rev": "2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8", "type": "github" }, "original": { @@ -128,11 +116,11 @@ "systems": "systems_2" }, "locked": { - "lastModified": 1681202837, - "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "cfacdce06f30d2b68473a46042957675eebb3401", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", "type": "github" }, "original": { @@ -150,11 +138,11 @@ ] }, "locked": { - "lastModified": 1660459072, - "narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=", + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", "owner": "hercules-ci", "repo": "gitignore.nix", - "rev": "a20de23b925fd8264fd7fad6454652e142fd7f73", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", "type": "github" }, "original": { @@ -170,11 +158,11 @@ ] }, "locked": { - "lastModified": 1719180626, - "narHash": "sha256-vZAzm5KQpR6RGple1dzmSJw5kPivES2heCFM+ZWkt0I=", + "lastModified": 1720734513, + "narHash": "sha256-neWQ8eNtLTd+YMesb7WjKl1SVCbDyCm46LUgP/g/hdo=", "owner": "nix-community", "repo": "home-manager", - "rev": "6b1f90a8ff92e81638ae6eb48cd62349c3e387bb", + "rev": "90ae324e2c56af10f20549ab72014804a3064c7f", "type": "github" }, "original": { @@ -205,11 +193,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1719032789, - "narHash": "sha256-MIPobSKR53T0Yrb8wu2fbjSVokhJeJy5AF6B1Hzckso=", + "lastModified": 1720697445, + "narHash": "sha256-IvFFc57vljkR1eP4VeNMuXJTS/POClq+ytFAadigSY0=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "495a672a2024bdc0e86af95f4e338827f9bfb865", + "rev": "bba994424596df09228f5437bcf8ef7fde1fe56e", "type": "github" }, "original": { @@ -231,16 +219,16 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1682802423, - "narHash": "sha256-Fb5TeRTdvUlo/5Yi2d+FC8a6KoRLk2h1VE0/peMhWPs=", + "lastModified": 1718178907, + "narHash": "sha256-eSZyrQ9uoPB9iPQ8Y5H7gAmAgAvCw3InStmU3oEjqsE=", "owner": "nix-community", "repo": "lanzaboote", - "rev": "64b903ca87d18cef2752c19c098af275c6e51d63", + "rev": "b627ccd97d0159214cee5c7db1412b75e4be6086", "type": "github" }, "original": { "owner": "nix-community", - "ref": "v0.3.0", + "ref": "v0.4.1", "repo": "lanzaboote", "type": "github" } @@ -269,11 +257,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1718895438, - "narHash": "sha256-k3JqJrkdoYwE3fHE6xGDY676AYmyh4U2Zw+0Bwe5DLU=", + "lastModified": 1720418205, + "narHash": "sha256-cPJoFPXU44GlhWg4pUk9oUPqurPlCFZ11ZQPk21GTPU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d603719ec6e294f034936c0d0dc06f689d91b6c3", + "rev": "655a58a72a6601292512670343087c2d75d859c1", "type": "github" }, "original": { @@ -285,27 +273,27 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1678872516, - "narHash": "sha256-/E1YwtMtFAu2KUQKV/1+KFuReYPANM2Rzehk84VxVoc=", + "lastModified": 1710695816, + "narHash": "sha256-3Eh7fhEID17pv9ZxrPwCLfqXnYP006RKzSs0JptsN84=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "9b8e5abb18324c7fe9f07cb100c3cd4a29cda8b8", + "rev": "614b4613980a522ba49f0d194531beddbb7220d3", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-22.11", + "ref": "nixos-23.11", "repo": "nixpkgs", "type": "github" } }, "nixpkgs_2": { "locked": { - "lastModified": 1719075281, - "narHash": "sha256-CyyxvOwFf12I91PBWz43iGT1kjsf5oi6ax7CrvaMyAo=", + "lastModified": 1720542800, + "narHash": "sha256-ZgnNHuKV6h2+fQ5LuqnUaqZey1Lqqt5dTUAiAnqH0QQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "a71e967ef3694799d0c418c98332f7ff4cc5f6af", + "rev": "feb2849fdeb70028c70d73b848214b00d324a497", "type": "github" }, "original": { @@ -325,11 +313,11 @@ ] }, "locked": { - "lastModified": 1719145147, - "narHash": "sha256-Es/sgvSvVzv3DfWcl3OMABIuBUWiYXx2uwT94hQO4Io=", + "lastModified": 1720603727, + "narHash": "sha256-A5qYbCT3rHvVi95u8Zy12cRmW5OPT7yFl1LrTDSejyE=", "owner": "pjones", "repo": "plasma-manager", - "rev": "5db39ce2fa95f4dfe1bdfe371fd9a90c65b3a9a0", + "rev": "f0691e1a9fff4684ce399c345c3a941d2ef0fe78", "type": "github" }, "original": { @@ -344,10 +332,6 @@ "lanzaboote", "flake-compat" ], - "flake-utils": [ - "lanzaboote", - "flake-utils" - ], "gitignore": "gitignore", "nixpkgs": [ "lanzaboote", @@ -356,11 +340,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1681413034, - "narHash": "sha256-/t7OjNQcNkeWeSq/CFLYVBfm+IEnkjoSm9iKvArnUUI=", + "lastModified": 1717664902, + "narHash": "sha256-7XfBuLULizXjXfBYy/VV+SpYMHreNRHk9nKMsm1bgb4=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "d3de8f69ca88fb6f8b09e5b598be5ac98d28ede5", + "rev": "cc4d466cb1254af050ff7bdf47f6d404a7c646d1", "type": "github" }, "original": { @@ -394,11 +378,11 @@ ] }, "locked": { - "lastModified": 1682129965, - "narHash": "sha256-1KRPIorEL6pLpJR04FwAqqnt4Tzcm4MqD84yhlD+XSk=", + "lastModified": 1717813066, + "narHash": "sha256-wqbRwq3i7g5EHIui0bIi84mdqZ/It1AXBSLJ5tafD28=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "2c417c0460b788328220120c698630947547ee83", + "rev": "6dc3e45fe4aee36efeed24d64fc68b1f989d5465", "type": "github" }, "original": { From 82ffac9620781c762ef1fa0ca12394b85a77b240 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 12 Jul 2024 19:41:43 +0800 Subject: [PATCH 384/447] home(catppuccin): set qt style --- home/catppuccin/home.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/home/catppuccin/home.nix b/home/catppuccin/home.nix index b72fbd75..cfb64092 100644 --- a/home/catppuccin/home.nix +++ b/home/catppuccin/home.nix @@ -12,6 +12,8 @@ in mkIf cfg.enable { }; gtk.theme = { inherit (cfg.gtk) package name; }; + qt.style.name = "kvantum"; + qt.platformTheme.name = "kvantum"; home.pointerCursor = { inherit (cfg.cursor) package name; }; # sway colour palette override From de9e8eda5a60459d4c568445d5c949dd132b4a22 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 12 Jul 2024 23:42:33 +0800 Subject: [PATCH 385/447] package(tubesync): temporarily allow obsolete dependency --- package/tubesync/nixos.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/tubesync/nixos.nix b/package/tubesync/nixos.nix index 8681edb9..383503a9 100644 --- a/package/tubesync/nixos.nix +++ b/package/tubesync/nixos.nix @@ -182,7 +182,7 @@ in { # package is local-only, will allow this for now nixpkgs.config.permittedInsecurePackages = [ - "python3.11-django-3.2.25" + "python3.12-django-3.2.25" ]; }; } From 251bfe0475d2d14eb1c0b1dca2d18322a86d876e Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 13 Jul 2024 21:05:28 +0800 Subject: [PATCH 386/447] home(catppuccin): fix gtk theme name again --- home/catppuccin/nixos.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home/catppuccin/nixos.nix b/home/catppuccin/nixos.nix index cf470aa4..c68d41ff 100644 --- a/home/catppuccin/nixos.nix +++ b/home/catppuccin/nixos.nix @@ -31,7 +31,7 @@ in { }; name = mkOption { type = with types; str; - default = "catppuccin-mocha-pink-compact+default"; + default = "catppuccin-mocha-pink-compact"; description = "name of catppuccin gtk theme"; }; }; From 1849e4836d3e06e5f1792bc458fdfa39a2846aa5 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 13 Jul 2024 21:34:25 +0800 Subject: [PATCH 387/447] global(gpu): enable 32-bit drivers --- global/gpu/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/global/gpu/default.nix b/global/gpu/default.nix index dd3a92ca..3b950361 100644 --- a/global/gpu/default.nix +++ b/global/gpu/default.nix @@ -31,6 +31,7 @@ in { config = mkIf cfg.enable { hardware.graphics = { enable = true; + enable32Bit = true; # https://nixos.wiki/wiki/Accelerated_Video_Playback extraPackages = with pkgs; optionals intel [ From ba098bf6413b4ccf122063962bacc0f143e343fc Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 18 Jul 2024 11:01:19 +0800 Subject: [PATCH 388/447] flake: bump inputs --- flake.lock | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/flake.lock b/flake.lock index 4ae8ef03..7d6a0490 100644 --- a/flake.lock +++ b/flake.lock @@ -158,11 +158,11 @@ ] }, "locked": { - "lastModified": 1720734513, - "narHash": "sha256-neWQ8eNtLTd+YMesb7WjKl1SVCbDyCm46LUgP/g/hdo=", + "lastModified": 1721135958, + "narHash": "sha256-H548rpPMsn25LDKn1PCFmPxmWlClJJGnvdzImHkqjuY=", "owner": "nix-community", "repo": "home-manager", - "rev": "90ae324e2c56af10f20549ab72014804a3064c7f", + "rev": "afd2021bedff2de92dfce0e257a3d03ae65c603d", "type": "github" }, "original": { @@ -193,11 +193,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1720697445, - "narHash": "sha256-IvFFc57vljkR1eP4VeNMuXJTS/POClq+ytFAadigSY0=", + "lastModified": 1721226562, + "narHash": "sha256-KfdwusX12hhkzXKBmu2HhaU9EhaxVeWLDQw1Ll2A03o=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "bba994424596df09228f5437bcf8ef7fde1fe56e", + "rev": "927eea31915468e06b94bedf678261dc7cf048c8", "type": "github" }, "original": { @@ -289,11 +289,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1720542800, - "narHash": "sha256-ZgnNHuKV6h2+fQ5LuqnUaqZey1Lqqt5dTUAiAnqH0QQ=", + "lastModified": 1720957393, + "narHash": "sha256-oedh2RwpjEa+TNxhg5Je9Ch6d3W1NKi7DbRO1ziHemA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "feb2849fdeb70028c70d73b848214b00d324a497", + "rev": "693bc46d169f5af9c992095736e82c3488bf7dbb", "type": "github" }, "original": { @@ -313,11 +313,11 @@ ] }, "locked": { - "lastModified": 1720603727, - "narHash": "sha256-A5qYbCT3rHvVi95u8Zy12cRmW5OPT7yFl1LrTDSejyE=", + "lastModified": 1720992717, + "narHash": "sha256-8j1bZVfKT1vJ0e+U7NYRNBG+DdBj5C/tpwe5krxT4/4=", "owner": "pjones", "repo": "plasma-manager", - "rev": "f0691e1a9fff4684ce399c345c3a941d2ef0fe78", + "rev": "460b48dc3dcd05df568e27cbb90581d23baec8dc", "type": "github" }, "original": { From af83b7cd04f58057baba730f9c22002559c2d123 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 18 Jul 2024 17:06:03 +0800 Subject: [PATCH 389/447] spec(shinkirou): specialise plasma --- spec/shinkirou/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/shinkirou/default.nix b/spec/shinkirou/default.nix index a0464ab6..d2594a80 100644 --- a/spec/shinkirou/default.nix +++ b/spec/shinkirou/default.nix @@ -14,7 +14,7 @@ }; home = { - plasma.enable = true; + plasma.specialise = true; gyroflow.enable = true; vscode.enable = true; libreoffice.enable = true; From 64cd40c5ea9ffba1cfb157162b38dbda00465a1a Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 18 Jul 2024 17:36:24 +0800 Subject: [PATCH 390/447] home(catppuccin): add i3status colours --- home/catppuccin/home.nix | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/home/catppuccin/home.nix b/home/catppuccin/home.nix index cfb64092..56b4ad0a 100644 --- a/home/catppuccin/home.nix +++ b/home/catppuccin/home.nix @@ -3,7 +3,7 @@ , config , ... }: with lib; let cfg = config.passthrough.catppuccin; - palette = (import ./palette.nix).${cfg.palette}; + palette = (lib.importJSON "${config.catppuccin.sources.palette}/palette.json").${config.catppuccin.flavor}.colors; in mkIf cfg.enable { catppuccin = { enable = true; @@ -58,4 +58,11 @@ in mkIf cfg.enable { # dodge the status bar gaps.bottom = 0; }; + + # i3status colour palette override + programs.i3status.general = with palette; { + color_good = lavender.hex; + color_degraded = yellow.hex; + color_bad = red.hex; + }; } From 6ec1a24da0da0d457b50c9a7d458467e2858466a Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 18 Jul 2024 17:36:44 +0800 Subject: [PATCH 391/447] spec(chireiden): disable catppuccin for plymouth --- spec/chireiden/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/chireiden/default.nix b/spec/chireiden/default.nix index bfc15ee2..4dd70842 100644 --- a/spec/chireiden/default.nix +++ b/spec/chireiden/default.nix @@ -37,6 +37,7 @@ nvidiaBusId = "PCI:5:0:0"; }; + boot.plymouth.catppuccin.enable = false; hardware.enableRedistributableFirmware = true; boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" ]; boot.initrd.kernelModules = [ ]; From e811f827bc9878c358dcb79fe86b44bf521bca63 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 21 Jul 2024 10:54:14 +0800 Subject: [PATCH 392/447] package(photoview): bump photoview 2.3.13 to 2.4.0 --- package/photoview/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package/photoview/default.nix b/package/photoview/default.nix index 40194a29..be549841 100644 --- a/package/photoview/default.nix +++ b/package/photoview/default.nix @@ -14,18 +14,18 @@ , runCommandLocal , makeWrapper }: buildGoModule rec { pname = "photoview"; - version = "2.3.13"; + version = "2.4.0"; source = fetchFromGitHub { name = "${pname}-src"; owner = pname; repo = pname; rev = "refs/tags/v${version}"; - hash = "sha256-O6k5nbiWTsuOi8YLX0rsZJ9dOIo5d6pdwjhFZrdwI0E="; + hash = "sha256-ZfvBdQlyqONsrviZGL22Kt+AiPaVWwdoREDUrHDYyIs="; }; src = source + "/api"; - vendorHash = "sha256-0SWywy9YdPtgvxRhwKhKvspPmhbnibSuhvzhsjIQvZk="; + vendorHash = "sha256-Tn4OxSV41s/4n2Q3teJRJNc39s6eKW4xE9wW/CIR5Fg="; nativeBuildInputs = [ pkg-config makeWrapper @@ -48,7 +48,7 @@ REACT_APP_BUILD_DATE = builtins.readFile (runCommandLocal "date" { } "date -uI > $out" ); REACT_APP_BUILD_COMMIT_SHA = "nix"; - npmDepsHash = "sha256-31CyjyNd85hNg4MXIWctoQ3YgorGqCMz+wDAu/K1lWo="; + npmDepsHash = "sha256-wUbfq+7SuJUBxfy9TxHVda8A0g4mmYCbzJT64XBN2mI="; }; postInstall = '' From 620ed3b39ebed8921581585f5239f7e6e9021d81 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 21 Jul 2024 10:59:09 +0800 Subject: [PATCH 393/447] package(expresslrs-configurator): bump expresslrs-configurator 1.6.1 to 1.7.2 --- package/expresslrs-configurator/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/expresslrs-configurator/default.nix b/package/expresslrs-configurator/default.nix index e68f639a..affbbe58 100644 --- a/package/expresslrs-configurator/default.nix +++ b/package/expresslrs-configurator/default.nix @@ -5,13 +5,13 @@ , buildFHSUserEnv }: let name = "ExpressLRS-Configurator"; pname = "expresslrs-configurator"; - version = "1.6.1"; + version = "1.7.2"; dist = fetchzip { name = "${pname}-dist"; url = "https://github.com/ExpressLRS/ExpressLRS-Configurator/releases/download/v${version}/${pname}-${version}.zip"; stripRoot = false; - hash = "sha256-m/e8dsOadjk63cwfnnCBbjXzI/ooWZUGRM5n267JmhQ="; + hash = "sha256-pXmJ420HeJaMjAZCzlIriuFrTK5xabxTrSy3PDVisgU="; }; desktopItem = makeDesktopItem { From e135ab7483b729405497ab8220140eeed59a3d6b Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 21 Jul 2024 16:37:39 +0800 Subject: [PATCH 394/447] home(catppuccin): enable catppuccin module even without gui --- home/catppuccin/gui.nix | 62 +++++++++++++++++++++++++++++++++++++++ home/catppuccin/home.nix | 63 ++-------------------------------------- 2 files changed, 64 insertions(+), 61 deletions(-) create mode 100644 home/catppuccin/gui.nix diff --git a/home/catppuccin/gui.nix b/home/catppuccin/gui.nix new file mode 100644 index 00000000..c52a3b96 --- /dev/null +++ b/home/catppuccin/gui.nix @@ -0,0 +1,62 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.passthrough.catppuccin; + palette = (lib.importJSON "${config.catppuccin.sources.palette}/palette.json").${config.catppuccin.flavor}.colors; +in mkIf cfg.enable { + gtk.theme = { inherit (cfg.gtk) package name; }; + qt.style.name = "kvantum"; + qt.platformTheme.name = "kvantum"; + home.pointerCursor = { inherit (cfg.cursor) package name; }; + + # sway colour palette override + wayland.windowManager.sway.config = { + colors = { + focused = { border = "$lavender"; background = "$base"; text = "$text"; indicator = "$rosewater"; childBorder = "$lavender"; }; + focusedInactive = { border = "$overlay0"; background = "$base"; text = "$text"; indicator = "$rosewater"; childBorder = "$overlay0"; }; + unfocused = { border = "$overlay0"; background = "$base"; text = "$text"; indicator = "$rosewater"; childBorder = "$overlay0"; }; + urgent = { border = "$peach"; background = "$base"; text = "$peach"; indicator = "$overlay0"; childBorder = "$peach"; }; + placeholder = { border = "$overlay0"; background = "$base"; text = "$text"; indicator = "$overlay0"; childBorder = "$overlay0"; }; + background = "$base"; + }; + + bars = mkForce [ { + colors = { + background = "$base"; + statusline = "$text"; + focusedStatusline = "$text"; + focusedSeparator = "$base"; + focusedWorkspace = { border = "$base"; background = "$base"; text = "$green"; }; + activeWorkspace = { border = "$base"; background = "$base"; text = "$blue"; }; + inactiveWorkspace = { border = "$base"; background = "$base"; text = "$surface1"; }; + urgentWorkspace = { border = "$base"; background = "$base"; text = "$surface1"; }; + bindingMode = { border = "$base"; background = "$base"; text = "$surface1"; }; + }; + + mode = "dock"; + position = "bottom"; + workspaceButtons = true; + workspaceNumbers = true; + statusCommand = "${pkgs.i3status}/bin/i3status"; + fonts = { + names = [ "monospace" ]; + size = 8.0; + }; + trayOutput = "primary"; + } ]; + + output."*".bg = mkForce "${./flake.png} fill"; + gaps.inner = 12; + gaps.outer = 5; + # dodge the status bar + gaps.bottom = 0; + }; + + # i3status colour palette override + programs.i3status.general = with palette; { + color_good = lavender.hex; + color_degraded = yellow.hex; + color_bad = red.hex; + }; +} diff --git a/home/catppuccin/home.nix b/home/catppuccin/home.nix index 56b4ad0a..01950f15 100644 --- a/home/catppuccin/home.nix +++ b/home/catppuccin/home.nix @@ -1,68 +1,9 @@ -{ pkgs -, lib -, config -, ... }: with lib; let - cfg = config.passthrough.catppuccin; - palette = (lib.importJSON "${config.catppuccin.sources.palette}/palette.json").${config.catppuccin.flavor}.colors; -in mkIf cfg.enable { +{ catppuccin = { enable = true; accent = "pink"; flavor = "mocha"; }; - gtk.theme = { inherit (cfg.gtk) package name; }; - qt.style.name = "kvantum"; - qt.platformTheme.name = "kvantum"; - home.pointerCursor = { inherit (cfg.cursor) package name; }; - - # sway colour palette override - wayland.windowManager.sway.config = { - colors = { - focused = { border = "$lavender"; background = "$base"; text = "$text"; indicator = "$rosewater"; childBorder = "$lavender"; }; - focusedInactive = { border = "$overlay0"; background = "$base"; text = "$text"; indicator = "$rosewater"; childBorder = "$overlay0"; }; - unfocused = { border = "$overlay0"; background = "$base"; text = "$text"; indicator = "$rosewater"; childBorder = "$overlay0"; }; - urgent = { border = "$peach"; background = "$base"; text = "$peach"; indicator = "$overlay0"; childBorder = "$peach"; }; - placeholder = { border = "$overlay0"; background = "$base"; text = "$text"; indicator = "$overlay0"; childBorder = "$overlay0"; }; - background = "$base"; - }; - - bars = mkForce [ { - colors = { - background = "$base"; - statusline = "$text"; - focusedStatusline = "$text"; - focusedSeparator = "$base"; - focusedWorkspace = { border = "$base"; background = "$base"; text = "$green"; }; - activeWorkspace = { border = "$base"; background = "$base"; text = "$blue"; }; - inactiveWorkspace = { border = "$base"; background = "$base"; text = "$surface1"; }; - urgentWorkspace = { border = "$base"; background = "$base"; text = "$surface1"; }; - bindingMode = { border = "$base"; background = "$base"; text = "$surface1"; }; - }; - - mode = "dock"; - position = "bottom"; - workspaceButtons = true; - workspaceNumbers = true; - statusCommand = "${pkgs.i3status}/bin/i3status"; - fonts = { - names = [ "monospace" ]; - size = 8.0; - }; - trayOutput = "primary"; - } ]; - - output."*".bg = mkForce "${./flake.png} fill"; - gaps.inner = 12; - gaps.outer = 5; - # dodge the status bar - gaps.bottom = 0; - }; - - # i3status colour palette override - programs.i3status.general = with palette; { - color_good = lavender.hex; - color_degraded = yellow.hex; - color_bad = red.hex; - }; + imports = [ ./gui.nix ]; } From 67c3de80f87394ec7cc46dc9adbc93c19af2bdd3 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 26 Jul 2024 15:46:49 +0800 Subject: [PATCH 395/447] flake: bump inputs --- flake.lock | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/flake.lock b/flake.lock index 7d6a0490..9f33d7a4 100644 --- a/flake.lock +++ b/flake.lock @@ -2,11 +2,11 @@ "nodes": { "catppuccin": { "locked": { - "lastModified": 1720472194, - "narHash": "sha256-CYscFEts6tyvosc1T29nxhzIYJAj/1CCEkV3ZMzSN/c=", + "lastModified": 1721784420, + "narHash": "sha256-bgF6fN4Qgk7NErFKGuuqWXcLORsiykTYyqMUFRiAUBY=", "owner": "catppuccin", "repo": "nix", - "rev": "d75d5803852fb0833767dc969a4581ac13204e22", + "rev": "8bdb55cc1c13f572b6e4307a3c0d64f1ae286a4f", "type": "github" }, "original": { @@ -158,11 +158,11 @@ ] }, "locked": { - "lastModified": 1721135958, - "narHash": "sha256-H548rpPMsn25LDKn1PCFmPxmWlClJJGnvdzImHkqjuY=", + "lastModified": 1721852138, + "narHash": "sha256-JH8N5uoqoVA6erV4O40VtKKHsnfmhvMGbxMNDLtim5o=", "owner": "nix-community", "repo": "home-manager", - "rev": "afd2021bedff2de92dfce0e257a3d03ae65c603d", + "rev": "304a011325b7ac7b8c9950333cd215a7aa146b0e", "type": "github" }, "original": { @@ -289,11 +289,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1720957393, - "narHash": "sha256-oedh2RwpjEa+TNxhg5Je9Ch6d3W1NKi7DbRO1ziHemA=", + "lastModified": 1721743106, + "narHash": "sha256-adRZhFpBTnHiK3XIELA3IBaApz70HwCYfv7xNrHjebA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "693bc46d169f5af9c992095736e82c3488bf7dbb", + "rev": "dc14ed91132ee3a26255d01d8fd0c1f5bff27b2f", "type": "github" }, "original": { @@ -313,11 +313,11 @@ ] }, "locked": { - "lastModified": 1720992717, - "narHash": "sha256-8j1bZVfKT1vJ0e+U7NYRNBG+DdBj5C/tpwe5krxT4/4=", + "lastModified": 1721724566, + "narHash": "sha256-6H+OTxXkOrh3P+15bhkQJY7OaBrQVzx4Pz+pCn6rtIg=", "owner": "pjones", "repo": "plasma-manager", - "rev": "460b48dc3dcd05df568e27cbb90581d23baec8dc", + "rev": "b967e042896de0f64513d4596e3d1f3eae445d1c", "type": "github" }, "original": { From 58a968f745ce49275dd65ab5341ee656317d976a Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 27 Jul 2024 18:18:35 +0800 Subject: [PATCH 396/447] spec(hakugyokurou): initial configuration --- global/auth/pub/hakugyokurou.pub | 1 + spec/hakugyokurou/default.nix | 65 ++++++++++++++++++++++ spec/hakugyokurou/jovian.nix | 93 ++++++++++++++++++++++++++++++++ 3 files changed, 159 insertions(+) create mode 100644 global/auth/pub/hakugyokurou.pub create mode 100644 spec/hakugyokurou/default.nix create mode 100644 spec/hakugyokurou/jovian.nix diff --git a/global/auth/pub/hakugyokurou.pub b/global/auth/pub/hakugyokurou.pub new file mode 100644 index 00000000..4fa391d2 --- /dev/null +++ b/global/auth/pub/hakugyokurou.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHKCA0/6dsdVyLEgzWt8+u5lWVc0o6A3MY4M2Hf2BT8h koishi@hakugyokurou diff --git a/spec/hakugyokurou/default.nix b/spec/hakugyokurou/default.nix new file mode 100644 index 00000000..8d49af87 --- /dev/null +++ b/spec/hakugyokurou/default.nix @@ -0,0 +1,65 @@ +{ pkgs, lib, config, ... }: { + global = { + id = "09a2900f15b74f36b023a9ebcd539f6a"; + fs.esp.uuid = "AE73-B83E"; + fs.type = "xfs"; + fs.store = "e4c673cb-03c5-44ac-b2f1-1085a7f7a553"; + fs.cryptsetup.enable = true; + fs.cryptsetup.uuids.persist = "122001b1-7a43-4bab-ae7c-ba8eeb1cc864"; + boot.lanzaboote = true; + gpu.enable = true; + gpu.type = "amdgpu"; + }; + + home = { + jetbrains.enable = true; + vscode.enable = true; + minecraft.enable = true; + minecraft.user = "app"; + }; + + users.homeModules = [ { + wayland.windowManager.sway.config = { + input = { + "9610:30:HID_258a:001e_Mouse".natural_scroll = "disabled"; + "1539:61441:NVTK0603:00_0603:F001_UNKNOWN".map_to_output = "eDP-1"; + "1539:61441:NVTK0603:00_0603:F001".map_to_output = "eDP-1"; + }; + output = { + eDP-1.scale = "2"; + eDP-1.transform = "270"; + }; + }; + } ]; + + powerManagement.enable = true; + powerManagement.cpuFreqGovernor = "performance"; + boot.kernelParams = [ + "video=eDP-1:panel_orientation=left_side_up" + ]; + + jovian.steamos.useSteamOSConfig = lib.mkDefault false; + services.greetd.settings.default_session.command = let + cfg = config.programs.regreet; + in lib.mkOverride 999 "${pkgs.dbus}/bin/dbus-run-session ${lib.getExe pkgs.cage} ${lib.escapeShellArgs cfg.cageArgs} -- ${pkgs.writeShellScript "cageResolution" '' + ${lib.getExe pkgs.wlr-randr} --output eDP-1 --scale 2 --transform 90 + ${lib.getExe cfg.package} + ''}"; + environment.systemPackages = with pkgs; [ + (writeShellScriptBin "sway-logout" '' + ${systemd}/bin/systemctl --user unset-environment WAYLAND_DISPLAY SWAYSOCK + ${sway}/bin/swaymsg exit + '') + ]; + + hardware.enableRedistributableFirmware = true; + boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "usbhid" "rtsx_pci_sdmmc" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; + hardware.cpu.intel.updateMicrocode = true; + + imports = [ + ./jovian.nix + ]; +} diff --git a/spec/hakugyokurou/jovian.nix b/spec/hakugyokurou/jovian.nix new file mode 100644 index 00000000..a50e3a40 --- /dev/null +++ b/spec/hakugyokurou/jovian.nix @@ -0,0 +1,93 @@ +{ pkgs, lib, config, jovian, ... }: with lib; { + specialisation.steamos.configuration = { + jovian = { + hardware.has.amd.gpu = true; + steamos.useSteamOSConfig = true; + steamos.enableDefaultCmdlineConfig = false; + + steam = { + enable = true; + autoStart = true; + desktopSession = "plasma"; + user = "app"; + }; + }; + + users.home.persistApp.directories = [ + ".steam" ".local/share/Steam" + ".config/gamescope" ".config/hhd" + ".kodi" + ]; + + users.users.app.extraGroups = [ "networkmanager" "gamemode" ]; + programs.gamemode.enable = true; + programs.regreet.enable = false; + home.plasma.enable = true; + home.plasma.extraConfig = { + configFile = { + kwinrc.Xwayland.Scale = 1.75; + kscreenlockerrc.Daemon.Autolock = false; + }; + }; + + home-manager.users.app = { + home.packages = with pkgs; [ + (pkgs.kodi-wayland.passthru.withPackages (kodiPkgs: with kodiPkgs; [ + joystick # keymap steam-controller + #controller-topology-project + libretro libretro-2048 + libretro-fuse libretro-genplus libretro-mgba + libretro-nestopia libretro-snes9x + jellycon + ])) + ]; + + home.pointerCursor = { + package = pkgs.steamdeck-hw-theme; + name = "steam"; + }; + }; + + services.handheld-daemon = { + enable = true; + user = "app"; + }; + + jovian.decky-loader = { + # ~/.steam/steam/.cef-enable-remote-debugging + enable = true; + user = "app"; + extraPackages = with pkgs; [ + curl unzip util-linux gnugrep procps pciutils kmod ryzenadj + ]; + extraPythonPackages = pythonPackages: with pythonPackages; [ + hid pyyaml + ]; + stateDir = "/nix/persist/decky"; + }; + + boot.kernelParams = [ + "iomem=relaxed" + "amd_pstate=passive" + ]; + boot.plymouth.themePackages = [ pkgs.steamdeck-hw-theme ]; + boot.plymouth.theme = "steamos"; + + services.udev.extraRules = '' + SUBSYSTEM=="power_supply", ATTR{online}=="0", RUN+="${pkgs.ryzenadj}/bin/ryzenadj --max-performance" + ''; + + nixpkgs.overlays = [ (final: prev: { + gamescope = prev.gamescope.overrideAttrs (finalAttrs: previousAttrs: { + postInstall = previousAttrs.postInstall + "\n" + '' + wrapProgram "$out/bin/gamescope" \ + --append-flags "--force-orientation left" + ''; + }); + }) ]; + }; + + imports = [ + jovian.nixosModules.jovian + ]; +} From c52911cdb82db28693c1848fbf23d378f8959343 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 27 Jul 2024 23:03:53 +0800 Subject: [PATCH 397/447] spec(hakugyokurou): correct Xwayland scale value --- spec/hakugyokurou/jovian.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/hakugyokurou/jovian.nix b/spec/hakugyokurou/jovian.nix index a50e3a40..d486d6e5 100644 --- a/spec/hakugyokurou/jovian.nix +++ b/spec/hakugyokurou/jovian.nix @@ -25,7 +25,7 @@ home.plasma.enable = true; home.plasma.extraConfig = { configFile = { - kwinrc.Xwayland.Scale = 1.75; + kwinrc.Xwayland.Scale = 2; kscreenlockerrc.Daemon.Autolock = false; }; }; From 58fb9a6e7ab2e4016dfe78e01424e53f8bd201ce Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 27 Jul 2024 23:05:13 +0800 Subject: [PATCH 398/447] spec(koumakyou): set cursor theme --- spec/koumakyou/jovian.nix | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/spec/koumakyou/jovian.nix b/spec/koumakyou/jovian.nix index a5754ee1..f06d43f7 100644 --- a/spec/koumakyou/jovian.nix +++ b/spec/koumakyou/jovian.nix @@ -32,16 +32,23 @@ }; }; - home-manager.users.app.home.packages = with pkgs; [ - (pkgs.kodi-wayland.passthru.withPackages (kodiPkgs: with kodiPkgs; [ - joystick # keymap steam-controller - #controller-topology-project - libretro libretro-2048 - libretro-fuse libretro-genplus libretro-mgba - libretro-nestopia libretro-snes9x - jellycon - ])) - ]; + home-manager.users.app = { + home.packages = with pkgs; [ + (pkgs.kodi-wayland.passthru.withPackages (kodiPkgs: with kodiPkgs; [ + joystick # keymap steam-controller + #controller-topology-project + libretro libretro-2048 + libretro-fuse libretro-genplus libretro-mgba + libretro-nestopia libretro-snes9x + jellycon + ])) + ]; + + home.pointerCursor = { + package = pkgs.steamdeck-hw-theme; + name = "steam"; + }; + }; services.handheld-daemon = { enable = true; From e2c06f3b3d3cd6157d513f66e75d93fc43894f80 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 28 Jul 2024 16:06:12 +0800 Subject: [PATCH 399/447] flake: bump inputs --- flake.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/flake.lock b/flake.lock index 9f33d7a4..4f2efc23 100644 --- a/flake.lock +++ b/flake.lock @@ -158,11 +158,11 @@ ] }, "locked": { - "lastModified": 1721852138, - "narHash": "sha256-JH8N5uoqoVA6erV4O40VtKKHsnfmhvMGbxMNDLtim5o=", + "lastModified": 1722119539, + "narHash": "sha256-2kU90liMle0vKR8exJx1XM4hZh9CdNgZGHCTbeA9yzY=", "owner": "nix-community", "repo": "home-manager", - "rev": "304a011325b7ac7b8c9950333cd215a7aa146b0e", + "rev": "d0240a064db3987eb4d5204cf2400bc4452d9922", "type": "github" }, "original": { @@ -193,11 +193,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1721226562, - "narHash": "sha256-KfdwusX12hhkzXKBmu2HhaU9EhaxVeWLDQw1Ll2A03o=", + "lastModified": 1721993749, + "narHash": "sha256-dGqEQ68GNGmA8+HHzHEqAcW2uGu/AX+sRWcMO99UM8s=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "927eea31915468e06b94bedf678261dc7cf048c8", + "rev": "3bd059992912139d6a12e86ba418f933ec368ef2", "type": "github" }, "original": { @@ -289,11 +289,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1721743106, - "narHash": "sha256-adRZhFpBTnHiK3XIELA3IBaApz70HwCYfv7xNrHjebA=", + "lastModified": 1722062969, + "narHash": "sha256-QOS0ykELUmPbrrUGmegAUlpmUFznDQeR4q7rFhl8eQg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "dc14ed91132ee3a26255d01d8fd0c1f5bff27b2f", + "rev": "b73c2221a46c13557b1b3be9c2070cc42cf01eb3", "type": "github" }, "original": { From b7f2c65c1611fe833c4a99e26b2354542b30c3d0 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 29 Jul 2024 14:19:20 +0800 Subject: [PATCH 400/447] home(gnome): update gtk theme names --- home/gnome/impl/dconf.nix | 16 +++++++++------- home/gnome/impl/nixos.nix | 5 ++++- home/gnome/nixos.nix | 2 +- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/home/gnome/impl/dconf.nix b/home/gnome/impl/dconf.nix index f8426c5d..b729c39c 100644 --- a/home/gnome/impl/dconf.nix +++ b/home/gnome/impl/dconf.nix @@ -3,6 +3,7 @@ , config , ... }: with lib; let cfg = config.passthrough.gnome; + bg = ../../catppuccin/flake.png; in mkIf cfg.enable { dconf.settings = let p = "org/gnome"; @@ -26,18 +27,18 @@ in mkIf cfg.enable { "${pd}/background" = { color-shading-type = "solid"; picture-options = "zoom"; - picture-uri = "file://${../../../share/catppuccin-nix.png}"; - picture-uri-dark = "file://${../../../share/catppuccin-nix.png}"; + picture-uri = "file://${bg}"; + picture-uri-dark = "file://${bg}"; primary-color = "#000000000000"; secondary-color = "#000000000000"; }; "${pd}/interface" = { color-scheme = "prefer-dark"; - cursor-theme = "Catppuccin-Frappe-Dark-Cursors"; + cursor-theme = "catppuccin-mocha-dark-cursors"; font-antialiasing = "grayscale"; font-hinting = "slight"; - gtk-theme = "Catppuccin-Frappe-Compact-Pink-Dark"; + gtk-theme = "catppuccin-mocha-pink-compact"; icon-theme = "Papirus-Dark"; }; @@ -45,7 +46,7 @@ in mkIf cfg.enable { color-shading-type = "solid"; lock-enabled = false; picture-options = "zoom"; - picture-uri = "file://${../../../share/catppuccin-nix.png}"; + picture-uri = "file://${bg}"; primary-color = "#000000000000"; secondary-color = "#000000000000"; }; @@ -54,10 +55,11 @@ in mkIf cfg.enable { action-double-click-titlebar = "toggle-maximize"; action-middle-click-titlebar = "minimize"; button-layout = "close,minimize,maximize:appmenu"; + resize-with-right-button = true; }; "${ptlp}" = { - default = "71a9971e-e829-43a9-9b2f-4565c855d664"; + default = "95894cfd-82f7-430d-af6e-84d168bc34f5"; list = [ "de8a9081-8352-4ce4-9519-5de655ad9361" "71a9971e-e829-43a9-9b2f-4565c855d664" @@ -162,7 +164,7 @@ in mkIf cfg.enable { welcome-dialog-last-shown-version = "45.3"; }; - "${pse}/user-theme".name = "Catppuccin-Frappe-Compact-Pink-Dark"; + "${pse}/user-theme".name = "catppuccin-mocha-pink-compact"; "${pse}/dash-to-dock" = { background-opacity = 0.80000000000000004; diff --git a/home/gnome/impl/nixos.nix b/home/gnome/impl/nixos.nix index e7ebd0a8..57716860 100644 --- a/home/gnome/impl/nixos.nix +++ b/home/gnome/impl/nixos.nix @@ -10,7 +10,10 @@ in mkIf cfg.enable { services.xserver.displayManager.gdm.enable = true; services.xserver.desktopManager.gnome.enable = true; services.udev.packages = with pkgs; [ gnome.gnome-settings-daemon ]; + hardware.pulseaudio.enable = false; - users.home.persist.directories = [ ]; + users.home.persist.directories = [ + ".config/dconf" + ]; environment.persistence."/nix/persist/fhs".directories = [ ]; } diff --git a/home/gnome/nixos.nix b/home/gnome/nixos.nix index ee00b3ef..c7a3bd26 100644 --- a/home/gnome/nixos.nix +++ b/home/gnome/nixos.nix @@ -13,7 +13,7 @@ in { config = { users.homeModules = [ # this module passes gnome configuration to home-manager - { passthrough.gnome= cfg; } + { passthrough.gnome = cfg; } ]; specialisation.nognome = with cfg; mkIf enable { From 4996bf46f19952bb61e640321c2c0863d19872a1 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 29 Jul 2024 14:43:01 +0800 Subject: [PATCH 401/447] spec(hakugyokurou): enable gnome --- spec/hakugyokurou/default.nix | 3 +++ spec/hakugyokurou/jovian.nix | 2 ++ 2 files changed, 5 insertions(+) diff --git a/spec/hakugyokurou/default.nix b/spec/hakugyokurou/default.nix index 8d49af87..f2f4f0f8 100644 --- a/spec/hakugyokurou/default.nix +++ b/spec/hakugyokurou/default.nix @@ -12,8 +12,10 @@ }; home = { + gnome.enable = true; jetbrains.enable = true; vscode.enable = true; + steam.enable = true; minecraft.enable = true; minecraft.user = "app"; }; @@ -52,6 +54,7 @@ '') ]; + hardware.sensor.iio.enable = true; hardware.enableRedistributableFirmware = true; boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "usbhid" "rtsx_pci_sdmmc" ]; boot.initrd.kernelModules = [ ]; diff --git a/spec/hakugyokurou/jovian.nix b/spec/hakugyokurou/jovian.nix index d486d6e5..68759ab7 100644 --- a/spec/hakugyokurou/jovian.nix +++ b/spec/hakugyokurou/jovian.nix @@ -22,6 +22,8 @@ users.users.app.extraGroups = [ "networkmanager" "gamemode" ]; programs.gamemode.enable = true; programs.regreet.enable = false; + home.gnome.enable = mkForce false; + home.steam.enable = mkForce false; home.plasma.enable = true; home.plasma.extraConfig = { configFile = { From f184b281c5fbfc51191514b1ee5fa35acc576c53 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 29 Jul 2024 15:40:41 +0800 Subject: [PATCH 402/447] global(flatpak): add portals and persist --- global/flatpak/default.nix | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 global/flatpak/default.nix diff --git a/global/flatpak/default.nix b/global/flatpak/default.nix new file mode 100644 index 00000000..48bafda6 --- /dev/null +++ b/global/flatpak/default.nix @@ -0,0 +1,17 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.global.flatpak; +in { + options.global.flatpak = { + enable = mkEnableOption "flatpak sandbox"; + }; + + config = mkIf cfg.enable { + services.flatpak.enable = true; + xdg.portal.enable = true; + users.home.persist.directories = [ ".local/share/flatpak" ]; + environment.persistence."/nix/persist/fhs".directories = [ "/var/lib/flatpak" ]; + }; +} From 951b1562bb7d01c1079d421771125aca3c882031 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 29 Jul 2024 15:40:59 +0800 Subject: [PATCH 403/447] home(gnome): enable flatpak by default --- home/gnome/impl/home.nix | 7 +++---- home/gnome/impl/nixos.nix | 2 ++ 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/home/gnome/impl/home.nix b/home/gnome/impl/home.nix index 24d15901..d10861b1 100644 --- a/home/gnome/impl/home.nix +++ b/home/gnome/impl/home.nix @@ -5,11 +5,10 @@ cfg = config.passthrough.gnome; in mkIf cfg.enable { home.packages = - with pkgs; - with gnome; - with gnomeExtensions; [ + with pkgs.gnome; + with pkgs.gnomeExtensions; [ # gnome - gnome-terminal + pkgs.gnome-terminal # gnomeExtensions dash-to-panel diff --git a/home/gnome/impl/nixos.nix b/home/gnome/impl/nixos.nix index 57716860..c05b24e4 100644 --- a/home/gnome/impl/nixos.nix +++ b/home/gnome/impl/nixos.nix @@ -4,12 +4,14 @@ , ... }: with lib; let cfg = config.home.gnome; in mkIf cfg.enable { + global.flatpak.enable = mkDefault true; programs.regreet.enable = false; services.xserver.enable = true; services.xserver.displayManager.startx.enable = false; services.xserver.displayManager.gdm.enable = true; services.xserver.desktopManager.gnome.enable = true; services.udev.packages = with pkgs; [ gnome.gnome-settings-daemon ]; + xdg.portal.configPackages = with pkgs; [ gnome.gnome-session ]; hardware.pulseaudio.enable = false; users.home.persist.directories = [ From 280ee4d89750b0132cc1b99ed73f0d1ab5f9f4e1 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 29 Jul 2024 19:56:16 +0800 Subject: [PATCH 404/447] home(gnome): disable theme --- home/gnome/impl/dconf.nix | 53 ++++++++++++++++++++++++++++++--------- home/gnome/impl/home.nix | 7 +++--- home/gnome/impl/nixos.nix | 13 +++++++--- 3 files changed, 55 insertions(+), 18 deletions(-) diff --git a/home/gnome/impl/dconf.nix b/home/gnome/impl/dconf.nix index b729c39c..4edf9c72 100644 --- a/home/gnome/impl/dconf.nix +++ b/home/gnome/impl/dconf.nix @@ -3,7 +3,7 @@ , config , ... }: with lib; let cfg = config.passthrough.gnome; - bg = ../../catppuccin/flake.png; + bg = ../../../share/54345906_p0.jpg; in mkIf cfg.enable { dconf.settings = let p = "org/gnome"; @@ -35,11 +35,11 @@ in mkIf cfg.enable { "${pd}/interface" = { color-scheme = "prefer-dark"; - cursor-theme = "catppuccin-mocha-dark-cursors"; + #cursor-theme = "catppuccin-mocha-dark-cursors"; font-antialiasing = "grayscale"; font-hinting = "slight"; - gtk-theme = "catppuccin-mocha-pink-compact"; - icon-theme = "Papirus-Dark"; + #gtk-theme = "catppuccin-mocha-pink-compact"; + #icon-theme = "Papirus-Dark"; }; "${pd}/screensaver" = { @@ -54,12 +54,12 @@ in mkIf cfg.enable { "${pd}/wm/preferences" = { action-double-click-titlebar = "toggle-maximize"; action-middle-click-titlebar = "minimize"; - button-layout = "close,minimize,maximize:appmenu"; + button-layout = "close:appmenu"; resize-with-right-button = true; }; "${ptlp}" = { - default = "95894cfd-82f7-430d-af6e-84d168bc34f5"; + #default = "95894cfd-82f7-430d-af6e-84d168bc34f5"; list = [ "de8a9081-8352-4ce4-9519-5de655ad9361" "71a9971e-e829-43a9-9b2f-4565c855d664" @@ -153,18 +153,19 @@ in mkIf cfg.enable { "windowsNavigator@gnome-shell-extensions.gcampax.github.com" "window-list@gnome-shell-extensions.gcampax.github.com" "workspace-indicator@gnome-shell-extensions.gcampax.github.com" - "dash-to-panel@jderose9.github.com" + "dash-to-dock@micxgx.gmail.com" ]; enabled-extensions = [ "user-theme@gnome-shell-extensions.gcampax.github.com" "apps-menu@gnome-shell-extensions.gcampax.github.com" "drive-menu@gnome-shell-extensions.gcampax.github.com" - "dash-to-dock@micxgx.gmail.com" + "appindicatorsupport@rgcjonas.gmail.com" + "dash-to-panel@jderose9.github.com" ]; welcome-dialog-last-shown-version = "45.3"; }; - "${pse}/user-theme".name = "catppuccin-mocha-pink-compact"; + #"${pse}/user-theme".name = "catppuccin-mocha-pink-compact"; "${pse}/dash-to-dock" = { background-opacity = 0.80000000000000004; @@ -172,22 +173,50 @@ in mkIf cfg.enable { dock-position = "BOTTOM"; height-fraction = 0.90000000000000002; multi-monitor = true; + running-indicator-style = "DOTS"; + custom-theme-shrink = true; }; "${pse}/dash-to-panel" = { - animate-appicon-hover-animation-extent = ''{'RIPPLE': 4, 'PLANK': 4, 'SIMPLE': 1}''; + animate-appicon-hover = false; + animate-appicon-hover-animation-type = "SIMPLE"; appicon-margin = 0; appicon-padding = 4; + appicon-style= "NORMAL"; available-monitors = [ 0 ]; dot-position = "BOTTOM"; + dot-style-focused = "METRO"; + dot-style-unfocused = "DOTS"; + group-apps = true; + hide-overview-on-startup = true; hotkeys-overlay-combo = "TEMPORARILY"; + isolate-workspaces = false; leftbox-padding = -1; + overview-click-to-exit = true; panel-anchors = ''{"0":"MIDDLE"}''; - panel-lengths=''{"0":100}''; - panel-sizes=''{"0":42}''; + panel-element-positions = ''{"0":[{"element":"showAppsButton","visible":true,"position":"stackedTL"},{"element":"activitiesButton","visible":true,"position":"stackedTL"},{"element":"leftBox","visible":false,"position":"stackedTL"},{"element":"taskbar","visible":true,"position":"centerMonitor"},{"element":"centerBox","visible":true,"position":"stackedBR"},{"element":"rightBox","visible":true,"position":"stackedBR"},{"element":"dateMenu","visible":true,"position":"stackedBR"},{"element":"systemMenu","visible":true,"position":"stackedBR"},{"element":"desktopButton","visible":false,"position":"stackedBR"}]}''; + panel-lengths = ''{"0":100}''; + panel-positions = ''{"0":"BOTTOM"}''; + panel-sizes = ''{"0":42}''; primary-monitor = 0; + secondarymenu-contains-showdetails = true; + show-showdesktop-hover = true; status-icon-padding = -1; + stockgs-force-hotcorner = false; + stockgs-keep-dash = false; + stockgs-keep-top-panel = false; + stockgs-panelbtn-click-only = false; + trans-bg-color = "#82a5c1"; + trans-dynamic-anim-target = 0.80000000000000002; + trans-dynamic-behavior = "MAXIMIZED_WINDOWS"; + trans-gradient-bottom-color = "#000000"; + trans-gradient-bottom-opacity = 0.5; + trans-gradient-top-opacity = 0.0; + trans-panel-opacity = 0.0; trans-use-custom-bg = false; + trans-use-custom-gradient = true; + trans-use-custom-opacity = true; + trans-use-dynamic-opacity = true; tray-padding = -1; window-preview-title-position = "TOP"; }; diff --git a/home/gnome/impl/home.nix b/home/gnome/impl/home.nix index d10861b1..8abf18ef 100644 --- a/home/gnome/impl/home.nix +++ b/home/gnome/impl/home.nix @@ -7,12 +7,13 @@ in mkIf cfg.enable { home.packages = with pkgs.gnome; with pkgs.gnomeExtensions; [ - # gnome - pkgs.gnome-terminal - # gnomeExtensions dash-to-panel dash-to-dock appindicator ]; + + catppuccin.enable = mkForce false; + home.pointerCursor = mkForce null; + gtk.enable = false; } diff --git a/home/gnome/impl/nixos.nix b/home/gnome/impl/nixos.nix index c05b24e4..bd5d6ff1 100644 --- a/home/gnome/impl/nixos.nix +++ b/home/gnome/impl/nixos.nix @@ -5,6 +5,8 @@ cfg = config.home.gnome; in mkIf cfg.enable { global.flatpak.enable = mkDefault true; + home.catppuccin.enable = mkDefault false; + catppuccin.enable = false; programs.regreet.enable = false; services.xserver.enable = true; services.xserver.displayManager.startx.enable = false; @@ -14,8 +16,13 @@ in mkIf cfg.enable { xdg.portal.configPackages = with pkgs; [ gnome.gnome-session ]; hardware.pulseaudio.enable = false; - users.home.persist.directories = [ - ".config/dconf" - ]; + environment.gnome.excludePackages = (with pkgs; [ + gnome-tour + ] ++ optionals config.global.flatpak.enable [ + gnome-calculator + ]) ++ (with pkgs.gnome; [ ] ++ optionals config.global.flatpak.enable [ + ]); + + users.home.persist.directories = [ ".config/dconf" ]; environment.persistence."/nix/persist/fhs".directories = [ ]; } From c931c7c9a1d9f7bb567dd2e2655677b77cf8d345 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 29 Jul 2024 20:01:06 +0800 Subject: [PATCH 405/447] spec(hakugyokurou): set plymouth scale --- spec/hakugyokurou/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/spec/hakugyokurou/default.nix b/spec/hakugyokurou/default.nix index f2f4f0f8..fcf7536d 100644 --- a/spec/hakugyokurou/default.nix +++ b/spec/hakugyokurou/default.nix @@ -39,6 +39,9 @@ boot.kernelParams = [ "video=eDP-1:panel_orientation=left_side_up" ]; + boot.plymouth.extraConfig = '' + DeviceScale=2 + ''; jovian.steamos.useSteamOSConfig = lib.mkDefault false; services.greetd.settings.default_session.command = let From fab1f9c0886cc1e50955cc3a1dcde998687459f9 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 29 Jul 2024 23:44:44 +0800 Subject: [PATCH 406/447] home(gnome): move applications to flatpak --- home/gnome/impl/dconf.nix | 35 +++++++++++++++++++++++++++++++++++ home/gnome/impl/nixos.nix | 21 +++++++++++++++++++++ home/gui/nixos.nix | 2 +- home/util/home.nix | 7 ++++--- home/util/nixos.nix | 2 ++ 5 files changed, 63 insertions(+), 4 deletions(-) diff --git a/home/gnome/impl/dconf.nix b/home/gnome/impl/dconf.nix index 4edf9c72..88a265af 100644 --- a/home/gnome/impl/dconf.nix +++ b/home/gnome/impl/dconf.nix @@ -58,6 +58,41 @@ in mkIf cfg.enable { resize-with-right-button = true; }; + "${pd}/wm/keybindings" = { + move-to-workspace-1 = [ "1" ]; + move-to-workspace-2 = [ "2" ]; + move-to-workspace-3 = [ "3" ]; + move-to-workspace-4 = [ "4" ]; + switch-to-workspace-1 = [ "1" ]; + switch-to-workspace-2 = [ "2" ]; + switch-to-workspace-3 = [ "3" ]; + switch-to-workspace-4 = [ "4" ]; + }; + + "${ps}/keybindings" = { + switch-to-application-1 = [ ]; + switch-to-application-2 = [ ]; + switch-to-application-3 = [ ]; + switch-to-application-4 = [ ]; + switch-to-application-5 = [ ]; + switch-to-application-6 = [ ]; + switch-to-application-7 = [ ]; + switch-to-application-8 = [ ]; + switch-to-application-9 = [ ]; + }; + + "${p}/settings-daemon/plugins/media-keys" = { + custom-keybindings = [ + "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/" + ]; + }; + + "${p}/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = { + binding = "Return"; + command = "kgx"; + name = "Launch console"; + }; + "${ptlp}" = { #default = "95894cfd-82f7-430d-af6e-84d168bc34f5"; list = [ diff --git a/home/gnome/impl/nixos.nix b/home/gnome/impl/nixos.nix index bd5d6ff1..41a5a517 100644 --- a/home/gnome/impl/nixos.nix +++ b/home/gnome/impl/nixos.nix @@ -17,10 +17,31 @@ in mkIf cfg.enable { hardware.pulseaudio.enable = false; environment.gnome.excludePackages = (with pkgs; [ + snapshot gnome-tour ] ++ optionals config.global.flatpak.enable [ + baobab + simple-scan + evince + file-roller + geary + loupe + seahorse + totem + epiphany gnome-calculator + gnome-calendar + gnome-connections + gnome-font-viewer + gnome-text-editor ]) ++ (with pkgs.gnome; [ ] ++ optionals config.global.flatpak.enable [ + gnome-characters + gnome-clocks + gnome-contacts + gnome-logs + gnome-maps + gnome-music + gnome-weather ]); users.home.persist.directories = [ ".config/dconf" ]; diff --git a/home/gui/nixos.nix b/home/gui/nixos.nix index 6b1fccd3..0e655654 100644 --- a/home/gui/nixos.nix +++ b/home/gui/nixos.nix @@ -30,7 +30,7 @@ in { dconf.enable = true; }; services = mkIf gui { - blueman.enable = true; + blueman.enable = !config.global.flatpak.enable; }; }; } diff --git a/home/util/home.nix b/home/util/home.nix index 19d6eb0d..2c377008 100644 --- a/home/util/home.nix +++ b/home/util/home.nix @@ -14,14 +14,15 @@ in { ] ++ optionals config.passthrough.gui [ gtk-engine-murrine gnome-themes-extra - xfce.thunar gimp - jellyfin-media-player mission-planner - betaflight-configurator inav-configurator inav-blackbox-tools (blhelisuite32.override { workdir = "${config.home.homeDirectory}/.blhelisuite32"; }) + ] ++ optionals (config.passthrough.gui && !config.passthrough.flatpak.enable) [ + xfce.thunar gimp + jellyfin-media-player + betaflight-configurator expresslrs-configurator ]; diff --git a/home/util/nixos.nix b/home/util/nixos.nix index 4e55af9a..e69f027d 100644 --- a/home/util/nixos.nix +++ b/home/util/nixos.nix @@ -13,6 +13,8 @@ in { users.homeModules = [ # this module passes util configuration to home-manager { passthrough.util = cfg; } + # this module passes flatpak configuration to home-manager + { passthrough.flatpak = config.global.flatpak; } ]; programs.zsh.enable = true; From 64946b2c468d33697a8c597876780cf1da9979ef Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 30 Jul 2024 18:45:20 +0800 Subject: [PATCH 407/447] home(gnome): add some gnome-specific theming --- home/gnome/impl/dconf.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/home/gnome/impl/dconf.nix b/home/gnome/impl/dconf.nix index 88a265af..fb1a3d8c 100644 --- a/home/gnome/impl/dconf.nix +++ b/home/gnome/impl/dconf.nix @@ -35,11 +35,11 @@ in mkIf cfg.enable { "${pd}/interface" = { color-scheme = "prefer-dark"; - #cursor-theme = "catppuccin-mocha-dark-cursors"; + cursor-theme = "Bibata-Modern-Classic"; font-antialiasing = "grayscale"; font-hinting = "slight"; - #gtk-theme = "catppuccin-mocha-pink-compact"; - #icon-theme = "Papirus-Dark"; + gtk-theme = "Adwaita-dark"; + icon-theme = "Papirus"; }; "${pd}/screensaver" = { From ddeaf512ae956dd71ba4de658a817dca7fba648a Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 30 Jul 2024 18:51:45 +0800 Subject: [PATCH 408/447] home(gnome): improve gtk3 theme consistency --- home/gnome/impl/dconf.nix | 4 ++-- home/gnome/impl/home.nix | 8 ++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/home/gnome/impl/dconf.nix b/home/gnome/impl/dconf.nix index fb1a3d8c..21b45593 100644 --- a/home/gnome/impl/dconf.nix +++ b/home/gnome/impl/dconf.nix @@ -38,8 +38,8 @@ in mkIf cfg.enable { cursor-theme = "Bibata-Modern-Classic"; font-antialiasing = "grayscale"; font-hinting = "slight"; - gtk-theme = "Adwaita-dark"; - icon-theme = "Papirus"; + gtk-theme = "adw-gtk3-dark"; + icon-theme = "Papirus-Dark"; }; "${pd}/screensaver" = { diff --git a/home/gnome/impl/home.nix b/home/gnome/impl/home.nix index 8abf18ef..f01abc33 100644 --- a/home/gnome/impl/home.nix +++ b/home/gnome/impl/home.nix @@ -5,8 +5,12 @@ cfg = config.passthrough.gnome; in mkIf cfg.enable { home.packages = - with pkgs.gnome; - with pkgs.gnomeExtensions; [ + with pkgs; + with gnome; + with gnomeExtensions; [ + # gtk3 theme + adw-gtk3 + # gnomeExtensions dash-to-panel dash-to-dock From 1d284464e354f66ea99f30459cd39965acfd60fa Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 3 Aug 2024 18:02:17 +0800 Subject: [PATCH 409/447] home(gnome): add more shortcuts --- home/gnome/impl/dconf.nix | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/home/gnome/impl/dconf.nix b/home/gnome/impl/dconf.nix index 21b45593..6cb920b8 100644 --- a/home/gnome/impl/dconf.nix +++ b/home/gnome/impl/dconf.nix @@ -59,10 +59,16 @@ in mkIf cfg.enable { }; "${pd}/wm/keybindings" = { + panel-run-dialog = [ ]; + begin-resize = [ "r" ]; + close = [ "q" ]; + minimize = [ "BackSpace" ]; move-to-workspace-1 = [ "1" ]; move-to-workspace-2 = [ "2" ]; move-to-workspace-3 = [ "3" ]; move-to-workspace-4 = [ "4" ]; + move-to-workspace-left = [ "h" ]; + move-to-workspace-right = [ "l" ]; switch-to-workspace-1 = [ "1" ]; switch-to-workspace-2 = [ "2" ]; switch-to-workspace-3 = [ "3" ]; @@ -79,12 +85,16 @@ in mkIf cfg.enable { switch-to-application-7 = [ ]; switch-to-application-8 = [ ]; switch-to-application-9 = [ ]; + toggle-application-view = [ "d" ]; }; "${p}/settings-daemon/plugins/media-keys" = { custom-keybindings = [ "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/" + "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/" ]; + logout = [ ]; + screensaver = [ "l" ]; }; "${p}/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = { @@ -93,6 +103,12 @@ in mkIf cfg.enable { name = "Launch console"; }; + "${p}/settings-daemon/plugins/media-keys/custom-keybindings/custom1" = { + binding = "q"; + command = "google-chrome-stable"; + name = "Launch Google Chrome"; + }; + "${ptlp}" = { #default = "95894cfd-82f7-430d-af6e-84d168bc34f5"; list = [ From 056b6934de7a54c37512e96253a96a98697d2bbb Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 4 Aug 2024 12:27:11 +0800 Subject: [PATCH 410/447] spec(hakugyokurou): enable android --- spec/hakugyokurou/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/hakugyokurou/default.nix b/spec/hakugyokurou/default.nix index fcf7536d..a2032d45 100644 --- a/spec/hakugyokurou/default.nix +++ b/spec/hakugyokurou/default.nix @@ -9,6 +9,7 @@ boot.lanzaboote = true; gpu.enable = true; gpu.type = "amdgpu"; + android.enable = true; }; home = { From f770641792a50911ac798d8c0b668c9e1e8e0a2e Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 4 Aug 2024 12:28:13 +0800 Subject: [PATCH 411/447] flake: bump inputs --- flake.lock | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/flake.lock b/flake.lock index 4f2efc23..83f01ba3 100644 --- a/flake.lock +++ b/flake.lock @@ -2,11 +2,11 @@ "nodes": { "catppuccin": { "locked": { - "lastModified": 1721784420, - "narHash": "sha256-bgF6fN4Qgk7NErFKGuuqWXcLORsiykTYyqMUFRiAUBY=", + "lastModified": 1722661201, + "narHash": "sha256-2JX3S1hmmUhHuyGyGWnaM4xT0SiaDdVkNzmBrEowwK0=", "owner": "catppuccin", "repo": "nix", - "rev": "8bdb55cc1c13f572b6e4307a3c0d64f1ae286a4f", + "rev": "19a0f144f0204a12a89243363efb6a493b8cfc83", "type": "github" }, "original": { @@ -59,11 +59,11 @@ ] }, "locked": { - "lastModified": 1719994518, - "narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=", + "lastModified": 1722555600, + "narHash": "sha256-XOQkdLafnb/p9ij77byFQjDf5m5QYl9b2REiVClC+x4=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7", + "rev": "8471fe90ad337a8074e957b69ca4d0089218391d", "type": "github" }, "original": { @@ -158,11 +158,11 @@ ] }, "locked": { - "lastModified": 1722119539, - "narHash": "sha256-2kU90liMle0vKR8exJx1XM4hZh9CdNgZGHCTbeA9yzY=", + "lastModified": 1722630065, + "narHash": "sha256-QfM/9BMRkCmgWzrPDK+KbgJOUlSJnfX4OvsUupEUZvA=", "owner": "nix-community", "repo": "home-manager", - "rev": "d0240a064db3987eb4d5204cf2400bc4452d9922", + "rev": "afc892db74d65042031a093adb6010c4c3378422", "type": "github" }, "original": { @@ -193,11 +193,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1721993749, - "narHash": "sha256-dGqEQ68GNGmA8+HHzHEqAcW2uGu/AX+sRWcMO99UM8s=", + "lastModified": 1722666143, + "narHash": "sha256-uTr3LiytFHFUYmIrhs5NoGlm5DCJxQlfyaZEKCU/DS8=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "3bd059992912139d6a12e86ba418f933ec368ef2", + "rev": "bcfe9dc708c92590fec676692b3ed79443eda819", "type": "github" }, "original": { @@ -257,11 +257,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1720418205, - "narHash": "sha256-cPJoFPXU44GlhWg4pUk9oUPqurPlCFZ11ZQPk21GTPU=", + "lastModified": 1722185531, + "narHash": "sha256-veKR07psFoJjINLC8RK4DiLniGGMgF3QMlS4tb74S6k=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "655a58a72a6601292512670343087c2d75d859c1", + "rev": "52ec9ac3b12395ad677e8b62106f0b98c1f8569d", "type": "github" }, "original": { @@ -289,11 +289,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1722062969, - "narHash": "sha256-QOS0ykELUmPbrrUGmegAUlpmUFznDQeR4q7rFhl8eQg=", + "lastModified": 1722421184, + "narHash": "sha256-/DJBI6trCeVnasdjUo9pbnodCLZcFqnVZiLUfqLH4jA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b73c2221a46c13557b1b3be9c2070cc42cf01eb3", + "rev": "9f918d616c5321ad374ae6cb5ea89c9e04bf3e58", "type": "github" }, "original": { @@ -313,11 +313,11 @@ ] }, "locked": { - "lastModified": 1721724566, - "narHash": "sha256-6H+OTxXkOrh3P+15bhkQJY7OaBrQVzx4Pz+pCn6rtIg=", + "lastModified": 1722693897, + "narHash": "sha256-Gpa3Gf60AqshNJKUP5mAmVImFFQ6BsWG+zbqx0JGFD4=", "owner": "pjones", "repo": "plasma-manager", - "rev": "b967e042896de0f64513d4596e3d1f3eae445d1c", + "rev": "b17a2666bcf400cf245528d143597d1480e298f8", "type": "github" }, "original": { From 39f5670533cedfc9ee5176145df6bd3a5a962fa3 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 4 Aug 2024 13:05:00 +0800 Subject: [PATCH 412/447] home(gnome): add more shortcuts --- home/gnome/impl/dconf.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/home/gnome/impl/dconf.nix b/home/gnome/impl/dconf.nix index 6cb920b8..ba4a1569 100644 --- a/home/gnome/impl/dconf.nix +++ b/home/gnome/impl/dconf.nix @@ -73,6 +73,7 @@ in mkIf cfg.enable { switch-to-workspace-2 = [ "2" ]; switch-to-workspace-3 = [ "3" ]; switch-to-workspace-4 = [ "4" ]; + toggle-maximized = [ "f" ]; }; "${ps}/keybindings" = { From 6ee6f38210448795d0f50710cc4941da9a25ad14 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 4 Aug 2024 17:20:50 +0800 Subject: [PATCH 413/447] home(gnome): set power profile toggle --- home/gnome/impl/dconf.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/home/gnome/impl/dconf.nix b/home/gnome/impl/dconf.nix index ba4a1569..59484807 100644 --- a/home/gnome/impl/dconf.nix +++ b/home/gnome/impl/dconf.nix @@ -214,6 +214,7 @@ in mkIf cfg.enable { "appindicatorsupport@rgcjonas.gmail.com" "dash-to-panel@jderose9.github.com" ]; + last-selected-power-profile = "performance"; welcome-dialog-last-shown-version = "45.3"; }; From 466302416d78ad91f0216f145f07040d6091474e Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 7 Aug 2024 22:49:43 +0800 Subject: [PATCH 414/447] global(flatpak): add var persist --- global/flatpak/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global/flatpak/default.nix b/global/flatpak/default.nix index 48bafda6..a3b77f76 100644 --- a/global/flatpak/default.nix +++ b/global/flatpak/default.nix @@ -11,7 +11,7 @@ in { config = mkIf cfg.enable { services.flatpak.enable = true; xdg.portal.enable = true; - users.home.persist.directories = [ ".local/share/flatpak" ]; + users.home.persist.directories = [ ".local/share/flatpak" ".var" ]; environment.persistence."/nix/persist/fhs".directories = [ "/var/lib/flatpak" ]; }; } From 7dc2f866724c92ae56203b3fd2c77e8dd38834c3 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 7 Aug 2024 23:01:06 +0800 Subject: [PATCH 415/447] home(util): remove persist unnecessary for flatpak --- home/util/nixos.nix | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/home/util/nixos.nix b/home/util/nixos.nix index e69f027d..990d9e61 100644 --- a/home/util/nixos.nix +++ b/home/util/nixos.nix @@ -25,18 +25,20 @@ in { ".cache/nix-index" ] ++ optionals gui [ + # mission-planner + ".local/share/Mission Planner" + # inav-configurator + ".config/inav-configurator" + ] ++ + optionals (gui && !config.global.flatpak.enable) [ # jellyfin-media-player ".config/jellyfin.org" ".local/share/jellyfinmediaplayer" ".local/share/Jellyfin Media Player" - # mission-planner - ".local/share/Mission Planner" # expresslrs-configurator ".config/ExpressLRS Configurator" # betaflight-configurator ".config/betaflight-configurator" - # inav-configurator - ".config/inav-configurator" ]; }; } From 49ef382902c63c5ce8283263efdb7529b5a9aa1f Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 13 Aug 2024 10:10:58 +0800 Subject: [PATCH 416/447] flake: bump inputs --- flake.lock | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/flake.lock b/flake.lock index 83f01ba3..4e6263a1 100644 --- a/flake.lock +++ b/flake.lock @@ -2,11 +2,11 @@ "nodes": { "catppuccin": { "locked": { - "lastModified": 1722661201, - "narHash": "sha256-2JX3S1hmmUhHuyGyGWnaM4xT0SiaDdVkNzmBrEowwK0=", + "lastModified": 1722997334, + "narHash": "sha256-vE5FcKVQ3E0txJKt5w3vOlfcN1XoTAlxK9PnQ/CJavA=", "owner": "catppuccin", "repo": "nix", - "rev": "19a0f144f0204a12a89243363efb6a493b8cfc83", + "rev": "66f4ea170093b62f319f41cebd2337a51b225c5a", "type": "github" }, "original": { @@ -158,11 +158,11 @@ ] }, "locked": { - "lastModified": 1722630065, - "narHash": "sha256-QfM/9BMRkCmgWzrPDK+KbgJOUlSJnfX4OvsUupEUZvA=", + "lastModified": 1723399884, + "narHash": "sha256-97wn0ihhGqfMb8WcUgzzkM/TuAxce2Gd20A8oiruju4=", "owner": "nix-community", "repo": "home-manager", - "rev": "afc892db74d65042031a093adb6010c4c3378422", + "rev": "086f619dd991a4d355c07837448244029fc2d9ab", "type": "github" }, "original": { @@ -193,11 +193,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1722666143, - "narHash": "sha256-uTr3LiytFHFUYmIrhs5NoGlm5DCJxQlfyaZEKCU/DS8=", + "lastModified": 1723367191, + "narHash": "sha256-noi5tre7BLtxImN38jEHeVOtOG1Xu37sJFwHKSAPHjo=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "bcfe9dc708c92590fec676692b3ed79443eda819", + "rev": "91178062f365b64eece94c5dff93e09b07e87d9d", "type": "github" }, "original": { @@ -257,11 +257,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1722185531, - "narHash": "sha256-veKR07psFoJjINLC8RK4DiLniGGMgF3QMlS4tb74S6k=", + "lastModified": 1722813957, + "narHash": "sha256-IAoYyYnED7P8zrBFMnmp7ydaJfwTnwcnqxUElC1I26Y=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "52ec9ac3b12395ad677e8b62106f0b98c1f8569d", + "rev": "cb9a96f23c491c081b38eab96d22fa958043c9fa", "type": "github" }, "original": { @@ -289,11 +289,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1722421184, - "narHash": "sha256-/DJBI6trCeVnasdjUo9pbnodCLZcFqnVZiLUfqLH4jA=", + "lastModified": 1723175592, + "narHash": "sha256-M0xJ3FbDUc4fRZ84dPGx5VvgFsOzds77KiBMW/mMTnI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "9f918d616c5321ad374ae6cb5ea89c9e04bf3e58", + "rev": "5e0ca22929f3342b19569b21b2f3462f053e497b", "type": "github" }, "original": { @@ -313,11 +313,11 @@ ] }, "locked": { - "lastModified": 1722693897, - "narHash": "sha256-Gpa3Gf60AqshNJKUP5mAmVImFFQ6BsWG+zbqx0JGFD4=", + "lastModified": 1723483411, + "narHash": "sha256-h6F9JK9PrrTmt5WgsZChLCn7ECk+G/cYJL2CuQVY/Cc=", "owner": "pjones", "repo": "plasma-manager", - "rev": "b17a2666bcf400cf245528d143597d1480e298f8", + "rev": "b3b9d4ce20d75319c20a7faada08ad9135a1f008", "type": "github" }, "original": { From c9bee6e93a9d1d3bd007186d399aa1e835c9dafe Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 15 Aug 2024 18:26:59 +0800 Subject: [PATCH 417/447] home(gnome): disable d2p multi-monitor --- home/gnome/impl/dconf.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home/gnome/impl/dconf.nix b/home/gnome/impl/dconf.nix index 59484807..f1cb59d6 100644 --- a/home/gnome/impl/dconf.nix +++ b/home/gnome/impl/dconf.nix @@ -225,7 +225,7 @@ in mkIf cfg.enable { dash-max-icon-size = 48; dock-position = "BOTTOM"; height-fraction = 0.90000000000000002; - multi-monitor = true; + multi-monitor = false; running-indicator-style = "DOTS"; custom-theme-shrink = true; }; From 2b23003a9f0ccca60b50d6d93dfe6e8c11c77269 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 15 Aug 2024 20:50:14 +0800 Subject: [PATCH 418/447] home(gnome): add extensions --- home/gnome/impl/dconf.nix | 8 +++++++- home/gnome/impl/home.nix | 2 ++ home/gnome/impl/nixos.nix | 1 + 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/home/gnome/impl/dconf.nix b/home/gnome/impl/dconf.nix index f1cb59d6..2f1b1a55 100644 --- a/home/gnome/impl/dconf.nix +++ b/home/gnome/impl/dconf.nix @@ -213,6 +213,8 @@ in mkIf cfg.enable { "drive-menu@gnome-shell-extensions.gcampax.github.com" "appindicatorsupport@rgcjonas.gmail.com" "dash-to-panel@jderose9.github.com" + "caffeine@patapon.info" + "PrivacyMenu@stuarthayhurst" ]; last-selected-power-profile = "performance"; welcome-dialog-last-shown-version = "45.3"; @@ -220,6 +222,10 @@ in mkIf cfg.enable { #"${pse}/user-theme".name = "catppuccin-mocha-pink-compact"; + "${pse}/caffeine" = { + screen-blank = "always"; + }; + "${pse}/dash-to-dock" = { background-opacity = 0.80000000000000004; dash-max-icon-size = 48; @@ -260,7 +266,7 @@ in mkIf cfg.enable { stockgs-keep-top-panel = false; stockgs-panelbtn-click-only = false; trans-bg-color = "#82a5c1"; - trans-dynamic-anim-target = 0.80000000000000002; + trans-dynamic-anim-target = 1.0; trans-dynamic-behavior = "MAXIMIZED_WINDOWS"; trans-gradient-bottom-color = "#000000"; trans-gradient-bottom-opacity = 0.5; diff --git a/home/gnome/impl/home.nix b/home/gnome/impl/home.nix index f01abc33..8e034b20 100644 --- a/home/gnome/impl/home.nix +++ b/home/gnome/impl/home.nix @@ -12,9 +12,11 @@ in mkIf cfg.enable { adw-gtk3 # gnomeExtensions + caffeine dash-to-panel dash-to-dock appindicator + privacy-settings-menu ]; catppuccin.enable = mkForce false; diff --git a/home/gnome/impl/nixos.nix b/home/gnome/impl/nixos.nix index 41a5a517..28b2236f 100644 --- a/home/gnome/impl/nixos.nix +++ b/home/gnome/impl/nixos.nix @@ -13,6 +13,7 @@ in mkIf cfg.enable { services.xserver.displayManager.gdm.enable = true; services.xserver.desktopManager.gnome.enable = true; services.udev.packages = with pkgs; [ gnome.gnome-settings-daemon ]; + services.hardware.bolt.enable = true; xdg.portal.configPackages = with pkgs; [ gnome.gnome-session ]; hardware.pulseaudio.enable = false; From 0c036cbbb24a0c0d0779bf06529ee3dd8c7f058d Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 17 Aug 2024 20:07:47 +0800 Subject: [PATCH 419/447] spec(reimaden): enable gnome --- spec/reimaden/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spec/reimaden/default.nix b/spec/reimaden/default.nix index 447d1f8a..cef0b1ff 100644 --- a/spec/reimaden/default.nix +++ b/spec/reimaden/default.nix @@ -11,7 +11,8 @@ }; home = { - plasma.specialise = true; + gnome.enable = true; + #plasma.specialise = true; #headless.enable = "eDP-1"; gyroflow.enable = true; jetbrains.enable = true; From ca1376c9905a264ad9bd645eb65708683ac17d2f Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 17 Aug 2024 20:08:02 +0800 Subject: [PATCH 420/447] global(fs): add zfs option --- global/fs/zfs/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/global/fs/zfs/default.nix b/global/fs/zfs/default.nix index 10c88a85..61976560 100644 --- a/global/fs/zfs/default.nix +++ b/global/fs/zfs/default.nix @@ -83,6 +83,7 @@ in { fileSystems = (mapAttrs (path: dataset: { device = "${cfg.zfs.persist}/${dataset}"; fsType = "zfs"; + options = [ "zfsutil" ]; # required by impermanence neededForBoot = true; }) cfg.zfs.mountpoints) // { From d2a3a326e9f3833eb708d65ba4a2073b60e0b70b Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 17 Aug 2024 20:08:25 +0800 Subject: [PATCH 421/447] global(io): udisks ignore zvols --- global/io/default.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/global/io/default.nix b/global/io/default.nix index 9763ec11..cc0b1331 100644 --- a/global/io/default.nix +++ b/global/io/default.nix @@ -13,7 +13,10 @@ in { }; config = { - services.udev.extraRules = "" + (if cfg.betaflight then '' + services.udev.extraRules = '' + # ignore zvols + KERNEL=="zd*", ENV{UDISKS_IGNORE}="1" + '' + (if cfg.betaflight then '' # DFU (Internal bootloader for STM32 and AT32 MCUs) SUBSYSTEM=="usb", ATTRS{idVendor}=="2e3c", ATTRS{idProduct}=="df11", MODE="0664", GROUP="dialout" SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE="0664", GROUP="dialout" From 41af94ba54b52bccc9f266e3a94d67f2d1aa2036 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 18 Aug 2024 13:33:29 +0800 Subject: [PATCH 422/447] spec(reimaden): disable unsandboxed minecraft --- spec/reimaden/default.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/spec/reimaden/default.nix b/spec/reimaden/default.nix index cef0b1ff..10962ef7 100644 --- a/spec/reimaden/default.nix +++ b/spec/reimaden/default.nix @@ -12,13 +12,11 @@ home = { gnome.enable = true; - #plasma.specialise = true; #headless.enable = "eDP-1"; gyroflow.enable = true; jetbrains.enable = true; vscode.enable = true; libreoffice.enable = true; - minecraft.enable = true; steam.enable = true; }; From 87ac53b876c93fc496e5c76d415ad02ff13f8604 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 28 Aug 2024 22:15:58 +0800 Subject: [PATCH 423/447] flake: bump inputs --- flake.lock | 42 +++++++++++++++++++-------------------- global/io/default.nix | 1 + home/catppuccin/nixos.nix | 10 ++++++---- home/gnome/impl/nixos.nix | 2 +- home/gyroflow/home.nix | 3 ++- 5 files changed, 31 insertions(+), 27 deletions(-) diff --git a/flake.lock b/flake.lock index 4e6263a1..af7876d4 100644 --- a/flake.lock +++ b/flake.lock @@ -2,11 +2,11 @@ "nodes": { "catppuccin": { "locked": { - "lastModified": 1722997334, - "narHash": "sha256-vE5FcKVQ3E0txJKt5w3vOlfcN1XoTAlxK9PnQ/CJavA=", + "lastModified": 1724469296, + "narHash": "sha256-p3R4LUNk6gC+fTKRUm9ByXaoRIocnQMwVuJSIxECQ8o=", "owner": "catppuccin", "repo": "nix", - "rev": "66f4ea170093b62f319f41cebd2337a51b225c5a", + "rev": "874e668ddaf3687e8d38ccd0188a641ffefe1cfb", "type": "github" }, "original": { @@ -158,11 +158,11 @@ ] }, "locked": { - "lastModified": 1723399884, - "narHash": "sha256-97wn0ihhGqfMb8WcUgzzkM/TuAxce2Gd20A8oiruju4=", + "lastModified": 1724435763, + "narHash": "sha256-UNky3lJNGQtUEXT2OY8gMxejakSWPTfWKvpFkpFlAfM=", "owner": "nix-community", "repo": "home-manager", - "rev": "086f619dd991a4d355c07837448244029fc2d9ab", + "rev": "c2cd2a52e02f1dfa1c88f95abeb89298d46023be", "type": "github" }, "original": { @@ -173,11 +173,11 @@ }, "impermanence": { "locked": { - "lastModified": 1719091691, - "narHash": "sha256-AxaLX5cBEcGtE02PeGsfscSb/fWMnyS7zMWBXQWDKbE=", + "lastModified": 1724489415, + "narHash": "sha256-ey8vhwY/6XCKoh7fyTn3aIQs7WeYSYtLbYEG87VCzX4=", "owner": "nix-community", "repo": "impermanence", - "rev": "23c1f06316b67cb5dabdfe2973da3785cfe9c34a", + "rev": "c7f5b394397398c023000cf843986ee2571a1fd7", "type": "github" }, "original": { @@ -193,11 +193,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1723367191, - "narHash": "sha256-noi5tre7BLtxImN38jEHeVOtOG1Xu37sJFwHKSAPHjo=", + "lastModified": 1724837759, + "narHash": "sha256-gt1mCTlqnirTHAG8Q90IWEs91fRsTSjBqXhb6bQboe8=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "91178062f365b64eece94c5dff93e09b07e87d9d", + "rev": "a679e3a0ef9d3d43639f7ba894069c43e2d39c2c", "type": "github" }, "original": { @@ -257,11 +257,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1722813957, - "narHash": "sha256-IAoYyYnED7P8zrBFMnmp7ydaJfwTnwcnqxUElC1I26Y=", + "lastModified": 1723991338, + "narHash": "sha256-Grh5PF0+gootJfOJFenTTxDTYPidA3V28dqJ/WV7iis=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "cb9a96f23c491c081b38eab96d22fa958043c9fa", + "rev": "8a3354191c0d7144db9756a74755672387b702ba", "type": "github" }, "original": { @@ -289,11 +289,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1723175592, - "narHash": "sha256-M0xJ3FbDUc4fRZ84dPGx5VvgFsOzds77KiBMW/mMTnI=", + "lastModified": 1724479785, + "narHash": "sha256-pP3Azj5d6M5nmG68Fu4JqZmdGt4S4vqI5f8te+E/FTw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5e0ca22929f3342b19569b21b2f3462f053e497b", + "rev": "d0e1602ddde669d5beb01aec49d71a51937ed7be", "type": "github" }, "original": { @@ -313,11 +313,11 @@ ] }, "locked": { - "lastModified": 1723483411, - "narHash": "sha256-h6F9JK9PrrTmt5WgsZChLCn7ECk+G/cYJL2CuQVY/Cc=", + "lastModified": 1724556439, + "narHash": "sha256-gPR3sxkKxISUvydnqoj54znpUkK8av/HVFuFJuYUw3w=", "owner": "pjones", "repo": "plasma-manager", - "rev": "b3b9d4ce20d75319c20a7faada08ad9135a1f008", + "rev": "5c97fe8af2a2e561f14195ed357d8c451fdbff4c", "type": "github" }, "original": { diff --git a/global/io/default.nix b/global/io/default.nix index cc0b1331..407a3de2 100644 --- a/global/io/default.nix +++ b/global/io/default.nix @@ -48,6 +48,7 @@ in { environment.persistence."/nix/persist/fhs".directories = [ "/var/log" + "/var/lib/nixos" "/var/lib/systemd/backlight" ] ++ optional config.networking.networkmanager.enable "/etc/NetworkManager/system-connections" ++ diff --git a/home/catppuccin/nixos.nix b/home/catppuccin/nixos.nix index c68d41ff..dbdf05cc 100644 --- a/home/catppuccin/nixos.nix +++ b/home/catppuccin/nixos.nix @@ -65,12 +65,14 @@ in { # override greetd theme programs.regreet = mkIf cfg.enable { + theme = { + inherit (cfg.gtk) name package; + }; + cursorTheme = { + inherit (cfg.cursor) name package; + }; settings = { background.path = ./solid.png; - GTK = { - theme_name = cfg.gtk.name; - cursor_theme_name = cfg.cursor.name; - }; }; }; }; diff --git a/home/gnome/impl/nixos.nix b/home/gnome/impl/nixos.nix index 28b2236f..f870a99c 100644 --- a/home/gnome/impl/nixos.nix +++ b/home/gnome/impl/nixos.nix @@ -35,7 +35,6 @@ in mkIf cfg.enable { gnome-connections gnome-font-viewer gnome-text-editor - ]) ++ (with pkgs.gnome; [ ] ++ optionals config.global.flatpak.enable [ gnome-characters gnome-clocks gnome-contacts @@ -43,6 +42,7 @@ in mkIf cfg.enable { gnome-maps gnome-music gnome-weather + ]) ++ (with pkgs.gnome; [ ] ++ optionals config.global.flatpak.enable [ ]); users.home.persist.directories = [ ".config/dconf" ]; diff --git a/home/gyroflow/home.nix b/home/gyroflow/home.nix index 5ec39359..abff2f37 100644 --- a/home/gyroflow/home.nix +++ b/home/gyroflow/home.nix @@ -4,7 +4,8 @@ , ... }: with lib; let cfg = config.passthrough.gyroflow; in mkIf cfg.enable { - home.packages = [ cfg.package ]; + # temporarily gone until regression is fixed + #home.packages = [ cfg.package ]; wayland.windowManager.sway.config.window.commands = [ { criteria.app_id = "xyz.gyroflow.gyroflow"; command = "floating enable"; } From 79b3436531f65f6dd847e774ffb3356cfef37baf Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 31 Aug 2024 21:25:47 +0800 Subject: [PATCH 424/447] home(gnome): add some gnome-specific theming --- home/gnome/impl/dconf.nix | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/home/gnome/impl/dconf.nix b/home/gnome/impl/dconf.nix index 2f1b1a55..da11cf46 100644 --- a/home/gnome/impl/dconf.nix +++ b/home/gnome/impl/dconf.nix @@ -249,6 +249,9 @@ in mkIf cfg.enable { group-apps = true; hide-overview-on-startup = true; hotkeys-overlay-combo = "TEMPORARILY"; + intellihide = true; + intellihide-behaviour = "MAXIMIZED_WINDOWS"; + intellihide-hide-from-windows = true; isolate-workspaces = false; leftbox-padding = -1; overview-click-to-exit = true; @@ -265,14 +268,14 @@ in mkIf cfg.enable { stockgs-keep-dash = false; stockgs-keep-top-panel = false; stockgs-panelbtn-click-only = false; - trans-bg-color = "#82a5c1"; + trans-bg-color = "#2a2a2a"; trans-dynamic-anim-target = 1.0; trans-dynamic-behavior = "MAXIMIZED_WINDOWS"; trans-gradient-bottom-color = "#000000"; trans-gradient-bottom-opacity = 0.5; trans-gradient-top-opacity = 0.0; trans-panel-opacity = 0.0; - trans-use-custom-bg = false; + trans-use-custom-bg = true; trans-use-custom-gradient = true; trans-use-custom-opacity = true; trans-use-dynamic-opacity = true; From e7257165e7f2e0c416ff2a8c088df8ee786275d4 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 2 Sep 2024 22:14:26 +0800 Subject: [PATCH 425/447] home(gnome): add monitors persist --- home/gnome/impl/dconf.nix | 2 +- home/gnome/impl/nixos.nix | 1 + spec/yume/default.nix | 17 +---------------- 3 files changed, 3 insertions(+), 17 deletions(-) diff --git a/home/gnome/impl/dconf.nix b/home/gnome/impl/dconf.nix index da11cf46..42c82ff2 100644 --- a/home/gnome/impl/dconf.nix +++ b/home/gnome/impl/dconf.nix @@ -223,7 +223,7 @@ in mkIf cfg.enable { #"${pse}/user-theme".name = "catppuccin-mocha-pink-compact"; "${pse}/caffeine" = { - screen-blank = "always"; + screen-blank = "never"; }; "${pse}/dash-to-dock" = { diff --git a/home/gnome/impl/nixos.nix b/home/gnome/impl/nixos.nix index f870a99c..e95def1e 100644 --- a/home/gnome/impl/nixos.nix +++ b/home/gnome/impl/nixos.nix @@ -46,5 +46,6 @@ in mkIf cfg.enable { ]); users.home.persist.directories = [ ".config/dconf" ]; + users.home.persist.files = [ ".config/monitors.xml" ]; environment.persistence."/nix/persist/fhs".directories = [ ]; } diff --git a/spec/yume/default.nix b/spec/yume/default.nix index 3352e4e4..c3847fe8 100644 --- a/spec/yume/default.nix +++ b/spec/yume/default.nix @@ -14,7 +14,7 @@ }; home = { - plasma.enable = true; + gnome.enable = true; gyroflow.enable = true; jetbrains.enable = true; vscode.enable = true; @@ -23,27 +23,12 @@ steam.enable = true; }; - home.plasma.extraConfig = { - configFile = { - kscreenlockerrc.Daemon.Autolock = false; - kcminputrc."Libinput/16700/9486/Dell Computer Corp Dell Laser Mouse MS3220".NaturalScroll = true; - }; - }; - imports = lib.pipe ./. [ builtins.readDir (lib.filterAttrs (n: ty: ty == "regular" && n != "default.nix")) (lib.mapAttrsToList (n: _: ./${n})) ] ++ [ (modulesPath + "/profiles/qemu-guest.nix") ]; - # work around low cage resolution on pure nvidia - services.greetd.settings.default_session.command = let - cfg = config.programs.regreet; - in "${pkgs.dbus}/bin/dbus-run-session ${lib.getExe pkgs.cage} ${lib.escapeShellArgs cfg.cageArgs} -- ${pkgs.writeShellScript "cageResolution" '' - ${lib.getExe pkgs.wlr-randr} --output DP-2 --mode 1920x1080@60.000000Hz - ${lib.getExe cfg.package} - ''}"; - boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "virtio_pci" "usbhid" "sr_mod" "virtio_blk" ]; boot.initrd.kernelModules = [ ]; boot.kernelModules = [ "kvm-amd" ]; From 02b08487676c7c5565b716955ca72f5e860c5d42 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 10 Sep 2024 22:53:05 +0800 Subject: [PATCH 426/447] flake: bump inputs --- flake.lock | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/flake.lock b/flake.lock index af7876d4..44e292ea 100644 --- a/flake.lock +++ b/flake.lock @@ -2,11 +2,11 @@ "nodes": { "catppuccin": { "locked": { - "lastModified": 1724469296, - "narHash": "sha256-p3R4LUNk6gC+fTKRUm9ByXaoRIocnQMwVuJSIxECQ8o=", + "lastModified": 1725509983, + "narHash": "sha256-NHCgHVqumPraFJnLrkanoLDuhOoUHUvRhvp/RIHJR+A=", "owner": "catppuccin", "repo": "nix", - "rev": "874e668ddaf3687e8d38ccd0188a641ffefe1cfb", + "rev": "45745fe5960acaefef2b60f3455bcac6a0ca6bc9", "type": "github" }, "original": { @@ -59,11 +59,11 @@ ] }, "locked": { - "lastModified": 1722555600, - "narHash": "sha256-XOQkdLafnb/p9ij77byFQjDf5m5QYl9b2REiVClC+x4=", + "lastModified": 1725234343, + "narHash": "sha256-+ebgonl3NbiKD2UD0x4BszCZQ6sTfL4xioaM49o5B3Y=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "8471fe90ad337a8074e957b69ca4d0089218391d", + "rev": "567b938d64d4b4112ee253b9274472dc3a346eb6", "type": "github" }, "original": { @@ -158,11 +158,11 @@ ] }, "locked": { - "lastModified": 1724435763, - "narHash": "sha256-UNky3lJNGQtUEXT2OY8gMxejakSWPTfWKvpFkpFlAfM=", + "lastModified": 1725948275, + "narHash": "sha256-4QOPemDQ9VRLQaAdWuvdDBhh+lEUOAnSMHhdr4nS1mk=", "owner": "nix-community", "repo": "home-manager", - "rev": "c2cd2a52e02f1dfa1c88f95abeb89298d46023be", + "rev": "e5fa72bad0c6f533e8d558182529ee2acc9454fe", "type": "github" }, "original": { @@ -173,11 +173,11 @@ }, "impermanence": { "locked": { - "lastModified": 1724489415, - "narHash": "sha256-ey8vhwY/6XCKoh7fyTn3aIQs7WeYSYtLbYEG87VCzX4=", + "lastModified": 1725690722, + "narHash": "sha256-4qWg9sNh5g1qPGO6d/GV2ktY+eDikkBTbWSg5/iD2nY=", "owner": "nix-community", "repo": "impermanence", - "rev": "c7f5b394397398c023000cf843986ee2571a1fd7", + "rev": "63f4d0443e32b0dd7189001ee1894066765d18a5", "type": "github" }, "original": { @@ -193,11 +193,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1724837759, - "narHash": "sha256-gt1mCTlqnirTHAG8Q90IWEs91fRsTSjBqXhb6bQboe8=", + "lastModified": 1725944773, + "narHash": "sha256-MG/rHAx1soZTnuSrFsYLuSRzuQCUOXP8o7k8M0FzEd8=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "a679e3a0ef9d3d43639f7ba894069c43e2d39c2c", + "rev": "b9af8b3887f231334c1fae0efcb7be45096559e4", "type": "github" }, "original": { @@ -289,11 +289,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1724479785, - "narHash": "sha256-pP3Azj5d6M5nmG68Fu4JqZmdGt4S4vqI5f8te+E/FTw=", + "lastModified": 1725634671, + "narHash": "sha256-v3rIhsJBOMLR8e/RNWxr828tB+WywYIoajrZKFM+0Gg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d0e1602ddde669d5beb01aec49d71a51937ed7be", + "rev": "574d1eac1c200690e27b8eb4e24887f8df7ac27c", "type": "github" }, "original": { @@ -313,11 +313,11 @@ ] }, "locked": { - "lastModified": 1724556439, - "narHash": "sha256-gPR3sxkKxISUvydnqoj54znpUkK8av/HVFuFJuYUw3w=", + "lastModified": 1725914634, + "narHash": "sha256-U74hu15xSb6JNySMOwyJrsh4uk1DVa182bdHLeHdYMc=", "owner": "pjones", "repo": "plasma-manager", - "rev": "5c97fe8af2a2e561f14195ed357d8c451fdbff4c", + "rev": "60becd0e994e25b372c8d0500fc944396f6c1085", "type": "github" }, "original": { From 880b0c47e45e25a574858830d753a5a210bfe9dc Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 13 Sep 2024 12:14:49 +0800 Subject: [PATCH 427/447] home(gnome): update package --- home/gnome/impl/nixos.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/home/gnome/impl/nixos.nix b/home/gnome/impl/nixos.nix index e95def1e..56835110 100644 --- a/home/gnome/impl/nixos.nix +++ b/home/gnome/impl/nixos.nix @@ -12,9 +12,9 @@ in mkIf cfg.enable { services.xserver.displayManager.startx.enable = false; services.xserver.displayManager.gdm.enable = true; services.xserver.desktopManager.gnome.enable = true; - services.udev.packages = with pkgs; [ gnome.gnome-settings-daemon ]; + services.udev.packages = with pkgs; [ gnome-settings-daemon ]; services.hardware.bolt.enable = true; - xdg.portal.configPackages = with pkgs; [ gnome.gnome-session ]; + xdg.portal.configPackages = with pkgs; [ gnome-session ]; hardware.pulseaudio.enable = false; environment.gnome.excludePackages = (with pkgs; [ From f0c5559b718f53ce937a79058d2fd5122ed4f5e9 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 13 Sep 2024 12:28:17 +0800 Subject: [PATCH 428/447] flake: bump inputs --- flake.lock | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/flake.lock b/flake.lock index 44e292ea..d9f08260 100644 --- a/flake.lock +++ b/flake.lock @@ -59,11 +59,11 @@ ] }, "locked": { - "lastModified": 1725234343, - "narHash": "sha256-+ebgonl3NbiKD2UD0x4BszCZQ6sTfL4xioaM49o5B3Y=", + "lastModified": 1726153070, + "narHash": "sha256-HO4zgY0ekfwO5bX0QH/3kJ/h4KvUDFZg8YpkNwIbg1U=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "567b938d64d4b4112ee253b9274472dc3a346eb6", + "rev": "bcef6817a8b2aa20a5a6dbb19b43e63c5bf8619a", "type": "github" }, "original": { @@ -158,11 +158,11 @@ ] }, "locked": { - "lastModified": 1725948275, - "narHash": "sha256-4QOPemDQ9VRLQaAdWuvdDBhh+lEUOAnSMHhdr4nS1mk=", + "lastModified": 1726142087, + "narHash": "sha256-uT4TRd3PgreUD5sJaNioVfMemdyWFLoPHqN4AFszGmw=", "owner": "nix-community", "repo": "home-manager", - "rev": "e5fa72bad0c6f533e8d558182529ee2acc9454fe", + "rev": "da8406a6ff556b86dc368e96ca8bd81b2704a91a", "type": "github" }, "original": { @@ -193,11 +193,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1725944773, - "narHash": "sha256-MG/rHAx1soZTnuSrFsYLuSRzuQCUOXP8o7k8M0FzEd8=", + "lastModified": 1726115155, + "narHash": "sha256-VDylz5VX4JD4/TZv6xUJDwuvNdgLRGoOpue1dlZGdIQ=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "b9af8b3887f231334c1fae0efcb7be45096559e4", + "rev": "02cf60ce20b6034fc0459e5116cec7016aaff6e4", "type": "github" }, "original": { @@ -289,11 +289,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1725634671, - "narHash": "sha256-v3rIhsJBOMLR8e/RNWxr828tB+WywYIoajrZKFM+0Gg=", + "lastModified": 1725983898, + "narHash": "sha256-4b3A9zPpxAxLnkF9MawJNHDtOOl6ruL0r6Og1TEDGCE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "574d1eac1c200690e27b8eb4e24887f8df7ac27c", + "rev": "1355a0cbfeac61d785b7183c0caaec1f97361b43", "type": "github" }, "original": { From 9f69104395ed375352aabe07011e5af8d1984945 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 13 Sep 2024 12:32:12 +0800 Subject: [PATCH 429/447] spec(hakugyokurou): remove jovian mode --- spec/hakugyokurou/default.nix | 11 ---- spec/hakugyokurou/jovian.nix | 95 ----------------------------------- 2 files changed, 106 deletions(-) delete mode 100644 spec/hakugyokurou/jovian.nix diff --git a/spec/hakugyokurou/default.nix b/spec/hakugyokurou/default.nix index a2032d45..f1f9f285 100644 --- a/spec/hakugyokurou/default.nix +++ b/spec/hakugyokurou/default.nix @@ -44,19 +44,12 @@ DeviceScale=2 ''; - jovian.steamos.useSteamOSConfig = lib.mkDefault false; services.greetd.settings.default_session.command = let cfg = config.programs.regreet; in lib.mkOverride 999 "${pkgs.dbus}/bin/dbus-run-session ${lib.getExe pkgs.cage} ${lib.escapeShellArgs cfg.cageArgs} -- ${pkgs.writeShellScript "cageResolution" '' ${lib.getExe pkgs.wlr-randr} --output eDP-1 --scale 2 --transform 90 ${lib.getExe cfg.package} ''}"; - environment.systemPackages = with pkgs; [ - (writeShellScriptBin "sway-logout" '' - ${systemd}/bin/systemctl --user unset-environment WAYLAND_DISPLAY SWAYSOCK - ${sway}/bin/swaymsg exit - '') - ]; hardware.sensor.iio.enable = true; hardware.enableRedistributableFirmware = true; @@ -65,8 +58,4 @@ boot.kernelModules = [ "kvm-amd" ]; boot.extraModulePackages = [ ]; hardware.cpu.intel.updateMicrocode = true; - - imports = [ - ./jovian.nix - ]; } diff --git a/spec/hakugyokurou/jovian.nix b/spec/hakugyokurou/jovian.nix deleted file mode 100644 index 68759ab7..00000000 --- a/spec/hakugyokurou/jovian.nix +++ /dev/null @@ -1,95 +0,0 @@ -{ pkgs, lib, config, jovian, ... }: with lib; { - specialisation.steamos.configuration = { - jovian = { - hardware.has.amd.gpu = true; - steamos.useSteamOSConfig = true; - steamos.enableDefaultCmdlineConfig = false; - - steam = { - enable = true; - autoStart = true; - desktopSession = "plasma"; - user = "app"; - }; - }; - - users.home.persistApp.directories = [ - ".steam" ".local/share/Steam" - ".config/gamescope" ".config/hhd" - ".kodi" - ]; - - users.users.app.extraGroups = [ "networkmanager" "gamemode" ]; - programs.gamemode.enable = true; - programs.regreet.enable = false; - home.gnome.enable = mkForce false; - home.steam.enable = mkForce false; - home.plasma.enable = true; - home.plasma.extraConfig = { - configFile = { - kwinrc.Xwayland.Scale = 2; - kscreenlockerrc.Daemon.Autolock = false; - }; - }; - - home-manager.users.app = { - home.packages = with pkgs; [ - (pkgs.kodi-wayland.passthru.withPackages (kodiPkgs: with kodiPkgs; [ - joystick # keymap steam-controller - #controller-topology-project - libretro libretro-2048 - libretro-fuse libretro-genplus libretro-mgba - libretro-nestopia libretro-snes9x - jellycon - ])) - ]; - - home.pointerCursor = { - package = pkgs.steamdeck-hw-theme; - name = "steam"; - }; - }; - - services.handheld-daemon = { - enable = true; - user = "app"; - }; - - jovian.decky-loader = { - # ~/.steam/steam/.cef-enable-remote-debugging - enable = true; - user = "app"; - extraPackages = with pkgs; [ - curl unzip util-linux gnugrep procps pciutils kmod ryzenadj - ]; - extraPythonPackages = pythonPackages: with pythonPackages; [ - hid pyyaml - ]; - stateDir = "/nix/persist/decky"; - }; - - boot.kernelParams = [ - "iomem=relaxed" - "amd_pstate=passive" - ]; - boot.plymouth.themePackages = [ pkgs.steamdeck-hw-theme ]; - boot.plymouth.theme = "steamos"; - - services.udev.extraRules = '' - SUBSYSTEM=="power_supply", ATTR{online}=="0", RUN+="${pkgs.ryzenadj}/bin/ryzenadj --max-performance" - ''; - - nixpkgs.overlays = [ (final: prev: { - gamescope = prev.gamescope.overrideAttrs (finalAttrs: previousAttrs: { - postInstall = previousAttrs.postInstall + "\n" + '' - wrapProgram "$out/bin/gamescope" \ - --append-flags "--force-orientation left" - ''; - }); - }) ]; - }; - - imports = [ - jovian.nixosModules.jovian - ]; -} From 1685c8f6c61cb9d40da56c5e65edfd75dbd6ec25 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 18 Sep 2024 19:23:46 +0800 Subject: [PATCH 430/447] flake: bump inputs --- flake.lock | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/flake.lock b/flake.lock index d9f08260..dd7d688d 100644 --- a/flake.lock +++ b/flake.lock @@ -98,11 +98,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1710146030, - "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "lastModified": 1726560853, + "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", "type": "github" }, "original": { @@ -158,11 +158,11 @@ ] }, "locked": { - "lastModified": 1726142087, - "narHash": "sha256-uT4TRd3PgreUD5sJaNioVfMemdyWFLoPHqN4AFszGmw=", + "lastModified": 1726611255, + "narHash": "sha256-/bxaYvIK6/d3zqpW26QFS0rqfd0cO4qreSNWvYLTl/w=", "owner": "nix-community", "repo": "home-manager", - "rev": "da8406a6ff556b86dc368e96ca8bd81b2704a91a", + "rev": "d2493de5cd1da06b6a4c3e97f4e7d5dd791df457", "type": "github" }, "original": { @@ -193,11 +193,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1726115155, - "narHash": "sha256-VDylz5VX4JD4/TZv6xUJDwuvNdgLRGoOpue1dlZGdIQ=", + "lastModified": 1726630303, + "narHash": "sha256-6xF6AqSGl/fNXeliuXAIOnEb4tMTUXOl1Yr1v4hURxg=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "02cf60ce20b6034fc0459e5116cec7016aaff6e4", + "rev": "f7a1bb0db21db79dfbee6950220e2816330a08b1", "type": "github" }, "original": { @@ -289,11 +289,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1725983898, - "narHash": "sha256-4b3A9zPpxAxLnkF9MawJNHDtOOl6ruL0r6Og1TEDGCE=", + "lastModified": 1726463316, + "narHash": "sha256-gI9kkaH0ZjakJOKrdjaI/VbaMEo9qBbSUl93DnU7f4c=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1355a0cbfeac61d785b7183c0caaec1f97361b43", + "rev": "99dc8785f6a0adac95f5e2ab05cc2e1bf666d172", "type": "github" }, "original": { @@ -313,11 +313,11 @@ ] }, "locked": { - "lastModified": 1725914634, - "narHash": "sha256-U74hu15xSb6JNySMOwyJrsh4uk1DVa182bdHLeHdYMc=", + "lastModified": 1726509788, + "narHash": "sha256-PmCmO8NDKzwHrTp9Ox/rcLiCYivqIpZlnLk8wZRjv2I=", "owner": "pjones", "repo": "plasma-manager", - "rev": "60becd0e994e25b372c8d0500fc944396f6c1085", + "rev": "5a0c70a007837e2db01e0bb68971792e8653d32c", "type": "github" }, "original": { From a378dd430abb5a4427b1d23cb0802c90dfb99264 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 19 Sep 2024 09:25:48 +0800 Subject: [PATCH 431/447] home(gnome): intellihide from focused windows --- home/gnome/impl/dconf.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home/gnome/impl/dconf.nix b/home/gnome/impl/dconf.nix index 42c82ff2..b9d88c18 100644 --- a/home/gnome/impl/dconf.nix +++ b/home/gnome/impl/dconf.nix @@ -250,7 +250,7 @@ in mkIf cfg.enable { hide-overview-on-startup = true; hotkeys-overlay-combo = "TEMPORARILY"; intellihide = true; - intellihide-behaviour = "MAXIMIZED_WINDOWS"; + intellihide-behaviour = "FOCUSED_WINDOWS"; intellihide-hide-from-windows = true; isolate-workspaces = false; leftbox-padding = -1; From 80315e3ade8865ce835bf09984d554f82ec2632b Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 28 Sep 2024 16:52:28 +0800 Subject: [PATCH 432/447] flake: bump inputs --- flake.lock | 42 +++++++++++++++++++-------------------- spec/eientei/tubesync.nix | 2 +- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/flake.lock b/flake.lock index dd7d688d..031b8512 100644 --- a/flake.lock +++ b/flake.lock @@ -2,11 +2,11 @@ "nodes": { "catppuccin": { "locked": { - "lastModified": 1725509983, - "narHash": "sha256-NHCgHVqumPraFJnLrkanoLDuhOoUHUvRhvp/RIHJR+A=", + "lastModified": 1726952185, + "narHash": "sha256-l/HbsQjJMT6tlf8KCooFYi3J6wjIips3n6/aWAoLY4g=", "owner": "catppuccin", "repo": "nix", - "rev": "45745fe5960acaefef2b60f3455bcac6a0ca6bc9", + "rev": "630b559cc1cb4c0bdd525af506935323e4ccd5d1", "type": "github" }, "original": { @@ -158,11 +158,11 @@ ] }, "locked": { - "lastModified": 1726611255, - "narHash": "sha256-/bxaYvIK6/d3zqpW26QFS0rqfd0cO4qreSNWvYLTl/w=", + "lastModified": 1727383923, + "narHash": "sha256-4/vacp3CwdGoPf8U4e/N8OsGYtO09WTcQK5FqYfJbKs=", "owner": "nix-community", "repo": "home-manager", - "rev": "d2493de5cd1da06b6a4c3e97f4e7d5dd791df457", + "rev": "ffe2d07e771580a005e675108212597e5b367d2d", "type": "github" }, "original": { @@ -173,11 +173,11 @@ }, "impermanence": { "locked": { - "lastModified": 1725690722, - "narHash": "sha256-4qWg9sNh5g1qPGO6d/GV2ktY+eDikkBTbWSg5/iD2nY=", + "lastModified": 1727198257, + "narHash": "sha256-/qMVI+SG9zvhLbQFOnqb4y4BH6DdK3DQHZU5qGptehc=", "owner": "nix-community", "repo": "impermanence", - "rev": "63f4d0443e32b0dd7189001ee1894066765d18a5", + "rev": "8514fff0f048557723021ffeb31ca55f69b67de3", "type": "github" }, "original": { @@ -193,11 +193,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1726630303, - "narHash": "sha256-6xF6AqSGl/fNXeliuXAIOnEb4tMTUXOl1Yr1v4hURxg=", + "lastModified": 1727453186, + "narHash": "sha256-nZRCfVEZ9osWXsCD0xCpU66M8JkabMTukBzPRrD/CTA=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "f7a1bb0db21db79dfbee6950220e2816330a08b1", + "rev": "3390ff2632d0d8a14c92473db60fa52bf881f979", "type": "github" }, "original": { @@ -257,11 +257,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1723991338, - "narHash": "sha256-Grh5PF0+gootJfOJFenTTxDTYPidA3V28dqJ/WV7iis=", + "lastModified": 1726755586, + "narHash": "sha256-PmUr/2GQGvFTIJ6/Tvsins7Q43KTMvMFhvG6oaYK+Wk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "8a3354191c0d7144db9756a74755672387b702ba", + "rev": "c04d5652cfa9742b1d519688f65d1bbccea9eb7e", "type": "github" }, "original": { @@ -289,11 +289,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1726463316, - "narHash": "sha256-gI9kkaH0ZjakJOKrdjaI/VbaMEo9qBbSUl93DnU7f4c=", + "lastModified": 1727348695, + "narHash": "sha256-J+PeFKSDV+pHL7ukkfpVzCOO7mBSrrpJ3svwBFABbhI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "99dc8785f6a0adac95f5e2ab05cc2e1bf666d172", + "rev": "1925c603f17fc89f4c8f6bf6f631a802ad85d784", "type": "github" }, "original": { @@ -313,11 +313,11 @@ ] }, "locked": { - "lastModified": 1726509788, - "narHash": "sha256-PmCmO8NDKzwHrTp9Ox/rcLiCYivqIpZlnLk8wZRjv2I=", + "lastModified": 1727463368, + "narHash": "sha256-5glMknkwQejUrKy28iy/kCFlSMwHcVyf/whmxqD0ggk=", "owner": "pjones", "repo": "plasma-manager", - "rev": "5a0c70a007837e2db01e0bb68971792e8653d32c", + "rev": "29ad64f0ac4ae84710dfeb1d37572d95c94cbfd8", "type": "github" }, "original": { diff --git a/spec/eientei/tubesync.nix b/spec/eientei/tubesync.nix index f67b7e49..202dae12 100644 --- a/spec/eientei/tubesync.nix +++ b/spec/eientei/tubesync.nix @@ -1,6 +1,6 @@ { services.tubesync = { - enable = true; + enable = false; stateDir = "/nix/persist/service/tubesync"; }; From 64043d00b9d9443e13b1be5b52410e4a40c37fe5 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 21 Oct 2024 20:48:04 +0800 Subject: [PATCH 433/447] spec(yume): enable android --- spec/yume/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/yume/default.nix b/spec/yume/default.nix index c3847fe8..1550ec16 100644 --- a/spec/yume/default.nix +++ b/spec/yume/default.nix @@ -11,6 +11,7 @@ boot.lanzaboote = true; gpu.enable = true; gpu.type = "nvidia"; + android.enable = true; }; home = { From c8a1a007817c671800e8c252abcc900ff006346b Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 21 Oct 2024 20:48:13 +0800 Subject: [PATCH 434/447] flake: bump inputs --- flake.lock | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/flake.lock b/flake.lock index 031b8512..78b7ee52 100644 --- a/flake.lock +++ b/flake.lock @@ -2,11 +2,11 @@ "nodes": { "catppuccin": { "locked": { - "lastModified": 1726952185, - "narHash": "sha256-l/HbsQjJMT6tlf8KCooFYi3J6wjIips3n6/aWAoLY4g=", + "lastModified": 1728407414, + "narHash": "sha256-B8LaxUP93eh+it8RW1pGq4SsU2kj7f0ipzFuhBvpON8=", "owner": "catppuccin", "repo": "nix", - "rev": "630b559cc1cb4c0bdd525af506935323e4ccd5d1", + "rev": "96cf8b4a05fb23a53c027621b1147b5cf9e5439f", "type": "github" }, "original": { @@ -59,11 +59,11 @@ ] }, "locked": { - "lastModified": 1726153070, - "narHash": "sha256-HO4zgY0ekfwO5bX0QH/3kJ/h4KvUDFZg8YpkNwIbg1U=", + "lastModified": 1727826117, + "narHash": "sha256-K5ZLCyfO/Zj9mPFldf3iwS6oZStJcU4tSpiXTMYaaL0=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "bcef6817a8b2aa20a5a6dbb19b43e63c5bf8619a", + "rev": "3d04084d54bedc3d6b8b736c70ef449225c361b1", "type": "github" }, "original": { @@ -158,11 +158,11 @@ ] }, "locked": { - "lastModified": 1727383923, - "narHash": "sha256-4/vacp3CwdGoPf8U4e/N8OsGYtO09WTcQK5FqYfJbKs=", + "lastModified": 1729459288, + "narHash": "sha256-gBOVJv+q6Mx8jGvwX7cE6J8+sZmi1uxpRVsO7WxvVuQ=", "owner": "nix-community", "repo": "home-manager", - "rev": "ffe2d07e771580a005e675108212597e5b367d2d", + "rev": "1e27f213d77fc842603628bcf2df6681d7d08f7e", "type": "github" }, "original": { @@ -173,11 +173,11 @@ }, "impermanence": { "locked": { - "lastModified": 1727198257, - "narHash": "sha256-/qMVI+SG9zvhLbQFOnqb4y4BH6DdK3DQHZU5qGptehc=", + "lastModified": 1729068498, + "narHash": "sha256-C2sGRJl1EmBq0nO98TNd4cbUy20ABSgnHWXLIJQWRFA=", "owner": "nix-community", "repo": "impermanence", - "rev": "8514fff0f048557723021ffeb31ca55f69b67de3", + "rev": "e337457502571b23e449bf42153d7faa10c0a562", "type": "github" }, "original": { @@ -193,11 +193,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1727453186, - "narHash": "sha256-nZRCfVEZ9osWXsCD0xCpU66M8JkabMTukBzPRrD/CTA=", + "lastModified": 1729492135, + "narHash": "sha256-yXmCZaw0Pe4H9Xv3BDSoQdSulevJMH34XrtQD3v7aoY=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "3390ff2632d0d8a14c92473db60fa52bf881f979", + "rev": "82bdda12079fbbe40cd1e26d3cbbf5093ea052c0", "type": "github" }, "original": { @@ -257,11 +257,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1726755586, - "narHash": "sha256-PmUr/2GQGvFTIJ6/Tvsins7Q43KTMvMFhvG6oaYK+Wk=", + "lastModified": 1728888510, + "narHash": "sha256-nsNdSldaAyu6PE3YUA+YQLqUDJh+gRbBooMMekZJwvI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c04d5652cfa9742b1d519688f65d1bbccea9eb7e", + "rev": "a3c0b3b21515f74fd2665903d4ce6bc4dc81c77c", "type": "github" }, "original": { @@ -289,11 +289,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1727348695, - "narHash": "sha256-J+PeFKSDV+pHL7ukkfpVzCOO7mBSrrpJ3svwBFABbhI=", + "lastModified": 1729256560, + "narHash": "sha256-/uilDXvCIEs3C9l73JTACm4quuHUsIHcns1c+cHUJwA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1925c603f17fc89f4c8f6bf6f631a802ad85d784", + "rev": "4c2fcb090b1f3e5b47eaa7bd33913b574a11e0a0", "type": "github" }, "original": { @@ -313,11 +313,11 @@ ] }, "locked": { - "lastModified": 1727463368, - "narHash": "sha256-5glMknkwQejUrKy28iy/kCFlSMwHcVyf/whmxqD0ggk=", + "lastModified": 1729372184, + "narHash": "sha256-Tb2/jJ74pt0nmfprkOW1g5zZphJTNbzLnyDENM+c5+I=", "owner": "pjones", "repo": "plasma-manager", - "rev": "29ad64f0ac4ae84710dfeb1d37572d95c94cbfd8", + "rev": "9390dadadc58ffda8e494b31ef66a4ae041f6dd1", "type": "github" }, "original": { From 0330b1a88b51834edc987458e52a13b564312703 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 21 Oct 2024 22:11:31 +0800 Subject: [PATCH 435/447] spec(eientei): nextcloud 29 -> 30 --- spec/eientei/nextcloud.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/eientei/nextcloud.nix b/spec/eientei/nextcloud.nix index 51af4cf0..23d1e678 100644 --- a/spec/eientei/nextcloud.nix +++ b/spec/eientei/nextcloud.nix @@ -4,9 +4,9 @@ in { services.nextcloud = { enable = true; - package = pkgs.nextcloud29; + package = pkgs.nextcloud30; extraApps = { - inherit (pkgs.nextcloud29Packages.apps) + inherit (pkgs.nextcloud30Packages.apps) notify_push impersonate spreed contacts bookmarks deck polls notes forms twofactor_webauthn; From 80212f4f588e90166ca23ba74572d7c95a0b0383 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 24 Oct 2024 15:08:00 +0800 Subject: [PATCH 436/447] spec(focus): nextcloud 29 -> 30 --- spec/focus/nextcloud.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/focus/nextcloud.nix b/spec/focus/nextcloud.nix index 6c9debc0..eabee803 100644 --- a/spec/focus/nextcloud.nix +++ b/spec/focus/nextcloud.nix @@ -4,9 +4,9 @@ in { services.nextcloud = { enable = true; - package = pkgs.nextcloud29; + package = pkgs.nextcloud30; extraApps = { - inherit (pkgs.nextcloud29Packages.apps) + inherit (pkgs.nextcloud30Packages.apps) notify_push impersonate spreed contacts bookmarks deck polls notes forms twofactor_webauthn; From 3b6f7fb826a21310107079e864f69ce1b97c2721 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 26 Oct 2024 01:01:06 +0800 Subject: [PATCH 437/447] spec(chireiden): enable gnome --- spec/chireiden/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/chireiden/default.nix b/spec/chireiden/default.nix index 4dd70842..f59fbf08 100644 --- a/spec/chireiden/default.nix +++ b/spec/chireiden/default.nix @@ -18,6 +18,7 @@ }; home = { + gnome.enable = true; vscode.enable = true; libreoffice.enable = true; minecraft.enable = true; From fb3d4b94934477a2513d64db79a4ef24d5f9ea6e Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 26 Oct 2024 01:02:09 +0800 Subject: [PATCH 438/447] global(zfs): split setup depend on secret mountpoint --- global/fs/zfs/split.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global/fs/zfs/split.nix b/global/fs/zfs/split.nix index f49c2c09..22f9231f 100644 --- a/global/fs/zfs/split.nix +++ b/global/fs/zfs/split.nix @@ -31,5 +31,5 @@ in mkIf cfg.enable { }; # import system state pool after encrypted filesystems become available for key loading - boot.initrd.systemd.services."zfs-import-${config.global.fs.store}".after = [ "cryptsetup.target" ]; + boot.initrd.systemd.services."zfs-import-${config.global.fs.store}".after = [ "sysroot-nix-var-secret.mount" "cryptsetup.target" ]; } From 72ea81a11b01768bc3b1ef39cf155d44e15eff0a Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 26 Oct 2024 01:14:54 +0800 Subject: [PATCH 439/447] flake: bump inputs --- flake.lock | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/flake.lock b/flake.lock index 78b7ee52..4831dd0e 100644 --- a/flake.lock +++ b/flake.lock @@ -158,11 +158,11 @@ ] }, "locked": { - "lastModified": 1729459288, - "narHash": "sha256-gBOVJv+q6Mx8jGvwX7cE6J8+sZmi1uxpRVsO7WxvVuQ=", + "lastModified": 1729864948, + "narHash": "sha256-CeGSqbN6S8JmzYJX/HqZjr7dMGlvHLLnJJarwB45lPs=", "owner": "nix-community", "repo": "home-manager", - "rev": "1e27f213d77fc842603628bcf2df6681d7d08f7e", + "rev": "0c0268a3c80d30b989d0aadbd65f38d4fa27a9a0", "type": "github" }, "original": { @@ -193,11 +193,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1729492135, - "narHash": "sha256-yXmCZaw0Pe4H9Xv3BDSoQdSulevJMH34XrtQD3v7aoY=", + "lastModified": 1729751760, + "narHash": "sha256-sJIYCzp0AyWeIFDUvrX8DpakEFIAnYgMQbIupqT0Um4=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "82bdda12079fbbe40cd1e26d3cbbf5093ea052c0", + "rev": "899f84dd062dffc5dd912ba235e86be4855e5ffb", "type": "github" }, "original": { @@ -241,11 +241,11 @@ ] }, "locked": { - "lastModified": 1690328911, - "narHash": "sha256-fxtExYk+aGf2YbjeWQ8JY9/n9dwuEt+ma1eUFzF8Jeo=", + "lastModified": 1729697500, + "narHash": "sha256-VFTWrbzDlZyFHHb1AlKRiD/qqCJIripXKiCSFS8fAOY=", "owner": "zhaofengli", "repo": "nix-github-actions", - "rev": "96df4a39c52f53cb7098b923224d8ce941b64747", + "rev": "e418aeb728b6aa5ca8c5c71974e7159c2df1d8cf", "type": "github" }, "original": { @@ -257,11 +257,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1728888510, - "narHash": "sha256-nsNdSldaAyu6PE3YUA+YQLqUDJh+gRbBooMMekZJwvI=", + "lastModified": 1729665710, + "narHash": "sha256-AlcmCXJZPIlO5dmFzV3V2XF6x/OpNWUV8Y/FMPGd8Z4=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "a3c0b3b21515f74fd2665903d4ce6bc4dc81c77c", + "rev": "2768c7d042a37de65bb1b5b3268fc987e534c49d", "type": "github" }, "original": { @@ -289,11 +289,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1729256560, - "narHash": "sha256-/uilDXvCIEs3C9l73JTACm4quuHUsIHcns1c+cHUJwA=", + "lastModified": 1729665710, + "narHash": "sha256-AlcmCXJZPIlO5dmFzV3V2XF6x/OpNWUV8Y/FMPGd8Z4=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "4c2fcb090b1f3e5b47eaa7bd33913b574a11e0a0", + "rev": "2768c7d042a37de65bb1b5b3268fc987e534c49d", "type": "github" }, "original": { @@ -313,11 +313,11 @@ ] }, "locked": { - "lastModified": 1729372184, - "narHash": "sha256-Tb2/jJ74pt0nmfprkOW1g5zZphJTNbzLnyDENM+c5+I=", + "lastModified": 1729710171, + "narHash": "sha256-2sVt2hbL+G0FzEESm/EZBewPOmNtZ6MTnYhsvHJW6Rs=", "owner": "pjones", "repo": "plasma-manager", - "rev": "9390dadadc58ffda8e494b31ef66a4ae041f6dd1", + "rev": "247a8e677b51f053ca89dcf67059e24f85e47391", "type": "github" }, "original": { From c9c8dad5c9ac72113b58d27b747d5b98636e694f Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 26 Oct 2024 01:33:16 +0800 Subject: [PATCH 440/447] flake: bump inputs --- flake.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/flake.lock b/flake.lock index 4831dd0e..1fdde768 100644 --- a/flake.lock +++ b/flake.lock @@ -3,10 +3,10 @@ "catppuccin": { "locked": { "lastModified": 1728407414, - "narHash": "sha256-B8LaxUP93eh+it8RW1pGq4SsU2kj7f0ipzFuhBvpON8=", + "narHash": "sha256-iPrs6bLWdp7qdFRba2AfiHj604SpxC6AGASx7I692Lo=", "owner": "catppuccin", "repo": "nix", - "rev": "96cf8b4a05fb23a53c027621b1147b5cf9e5439f", + "rev": "037e2f091a2144433566c5122f385a388cb5d5d3", "type": "github" }, "original": { From d1ba7ee3d5e282b32232ec67f832fa9551ace3b6 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 8 Nov 2024 14:54:30 +0800 Subject: [PATCH 441/447] flake: bump inputs --- flake.lock | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/flake.lock b/flake.lock index 1fdde768..5c681067 100644 --- a/flake.lock +++ b/flake.lock @@ -2,11 +2,11 @@ "nodes": { "catppuccin": { "locked": { - "lastModified": 1728407414, - "narHash": "sha256-iPrs6bLWdp7qdFRba2AfiHj604SpxC6AGASx7I692Lo=", + "lastModified": 1730458408, + "narHash": "sha256-JQ+SphQn13bdibKUrBBBznYehXX4xJrxD1ifBp6vSWw=", "owner": "catppuccin", "repo": "nix", - "rev": "037e2f091a2144433566c5122f385a388cb5d5d3", + "rev": "191fbf2d81a63fad8f62f1233c0051f09b75d0ad", "type": "github" }, "original": { @@ -59,11 +59,11 @@ ] }, "locked": { - "lastModified": 1727826117, - "narHash": "sha256-K5ZLCyfO/Zj9mPFldf3iwS6oZStJcU4tSpiXTMYaaL0=", + "lastModified": 1730504689, + "narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "3d04084d54bedc3d6b8b736c70ef449225c361b1", + "rev": "506278e768c2a08bec68eb62932193e341f55c90", "type": "github" }, "original": { @@ -158,11 +158,11 @@ ] }, "locked": { - "lastModified": 1729864948, - "narHash": "sha256-CeGSqbN6S8JmzYJX/HqZjr7dMGlvHLLnJJarwB45lPs=", + "lastModified": 1730837930, + "narHash": "sha256-0kZL4m+bKBJUBQse0HanewWO0g8hDdCvBhudzxgehqc=", "owner": "nix-community", "repo": "home-manager", - "rev": "0c0268a3c80d30b989d0aadbd65f38d4fa27a9a0", + "rev": "2f607e07f3ac7e53541120536708e824acccfaa8", "type": "github" }, "original": { @@ -173,11 +173,11 @@ }, "impermanence": { "locked": { - "lastModified": 1729068498, - "narHash": "sha256-C2sGRJl1EmBq0nO98TNd4cbUy20ABSgnHWXLIJQWRFA=", + "lastModified": 1730403150, + "narHash": "sha256-W1FH5aJ/GpRCOA7DXT/sJHFpa5r8sq2qAUncWwRZ3Gg=", "owner": "nix-community", "repo": "impermanence", - "rev": "e337457502571b23e449bf42153d7faa10c0a562", + "rev": "0d09341beeaa2367bac5d718df1404bf2ce45e6f", "type": "github" }, "original": { @@ -193,11 +193,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1729751760, - "narHash": "sha256-sJIYCzp0AyWeIFDUvrX8DpakEFIAnYgMQbIupqT0Um4=", + "lastModified": 1730962714, + "narHash": "sha256-Zi2NfnEqB+Xfxtnx6arIohSarXiJmwTqVa3nSpNWx30=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "899f84dd062dffc5dd912ba235e86be4855e5ffb", + "rev": "93b525229c99fec0016db72a174f43b9d6237714", "type": "github" }, "original": { @@ -289,11 +289,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1729665710, - "narHash": "sha256-AlcmCXJZPIlO5dmFzV3V2XF6x/OpNWUV8Y/FMPGd8Z4=", + "lastModified": 1730785428, + "narHash": "sha256-Zwl8YgTVJTEum+L+0zVAWvXAGbWAuXHax3KzuejaDyo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "2768c7d042a37de65bb1b5b3268fc987e534c49d", + "rev": "4aa36568d413aca0ea84a1684d2d46f55dbabad7", "type": "github" }, "original": { @@ -313,11 +313,11 @@ ] }, "locked": { - "lastModified": 1729710171, - "narHash": "sha256-2sVt2hbL+G0FzEESm/EZBewPOmNtZ6MTnYhsvHJW6Rs=", + "lastModified": 1730635861, + "narHash": "sha256-Npp3pl9aeAiq+wZPDbw2ZxybNuZWyuN7AY6fik56DCo=", "owner": "pjones", "repo": "plasma-manager", - "rev": "247a8e677b51f053ca89dcf67059e24f85e47391", + "rev": "293668587937daae1df085ee36d2b2d0792b7a0f", "type": "github" }, "original": { From d0e98e35261645401ea6c95ec9b3eef4e4c8946c Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 14 Nov 2024 11:00:55 +0800 Subject: [PATCH 442/447] flake: bump inputs --- flake.lock | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/flake.lock b/flake.lock index 5c681067..b294ddd1 100644 --- a/flake.lock +++ b/flake.lock @@ -2,11 +2,11 @@ "nodes": { "catppuccin": { "locked": { - "lastModified": 1730458408, - "narHash": "sha256-JQ+SphQn13bdibKUrBBBznYehXX4xJrxD1ifBp6vSWw=", + "lastModified": 1731232837, + "narHash": "sha256-0aIwr/RC/oe7rYkfJb47xjdEQDSNcqpFGsEa+EPlDEs=", "owner": "catppuccin", "repo": "nix", - "rev": "191fbf2d81a63fad8f62f1233c0051f09b75d0ad", + "rev": "32359bf226fe874d3b7a0a5753d291a4da9616fe", "type": "github" }, "original": { @@ -98,11 +98,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1726560853, - "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "owner": "numtide", "repo": "flake-utils", - "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "type": "github" }, "original": { @@ -158,11 +158,11 @@ ] }, "locked": { - "lastModified": 1730837930, - "narHash": "sha256-0kZL4m+bKBJUBQse0HanewWO0g8hDdCvBhudzxgehqc=", + "lastModified": 1731535640, + "narHash": "sha256-2EckCJn4wxran/TsRiCOFcmVpep2m9EBKl99NBh2GnM=", "owner": "nix-community", "repo": "home-manager", - "rev": "2f607e07f3ac7e53541120536708e824acccfaa8", + "rev": "35b055009afd0107b69c286fca34d2ad98940d57", "type": "github" }, "original": { @@ -173,11 +173,11 @@ }, "impermanence": { "locked": { - "lastModified": 1730403150, - "narHash": "sha256-W1FH5aJ/GpRCOA7DXT/sJHFpa5r8sq2qAUncWwRZ3Gg=", + "lastModified": 1731242966, + "narHash": "sha256-B3C3JLbGw0FtLSWCjBxU961gLNv+BOOBC6WvstKLYMw=", "owner": "nix-community", "repo": "impermanence", - "rev": "0d09341beeaa2367bac5d718df1404bf2ce45e6f", + "rev": "3ed3f0eaae9fcc0a8331e77e9319c8a4abd8a71a", "type": "github" }, "original": { @@ -193,11 +193,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1730962714, - "narHash": "sha256-Zi2NfnEqB+Xfxtnx6arIohSarXiJmwTqVa3nSpNWx30=", + "lastModified": 1731227601, + "narHash": "sha256-aGUQ6W/Oxd9xjH9RQbnUtC61sTK2fWlKr+J7kavT/RQ=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "93b525229c99fec0016db72a174f43b9d6237714", + "rev": "7691d0ac1deb6ac7482c5a22fe1a14a34ca608b0", "type": "github" }, "original": { @@ -289,11 +289,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1730785428, - "narHash": "sha256-Zwl8YgTVJTEum+L+0zVAWvXAGbWAuXHax3KzuejaDyo=", + "lastModified": 1731139594, + "narHash": "sha256-IigrKK3vYRpUu+HEjPL/phrfh7Ox881er1UEsZvw9Q4=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "4aa36568d413aca0ea84a1684d2d46f55dbabad7", + "rev": "76612b17c0ce71689921ca12d9ffdc9c23ce40b2", "type": "github" }, "original": { @@ -313,11 +313,11 @@ ] }, "locked": { - "lastModified": 1730635861, - "narHash": "sha256-Npp3pl9aeAiq+wZPDbw2ZxybNuZWyuN7AY6fik56DCo=", + "lastModified": 1731193165, + "narHash": "sha256-pGF8L5g9QpkQtJP9JmNIRNZfcyhJHf7uT+d8tqI1h6Y=", "owner": "pjones", "repo": "plasma-manager", - "rev": "293668587937daae1df085ee36d2b2d0792b7a0f", + "rev": "f33173b9d22e554a6f869626bc01808d35995257", "type": "github" }, "original": { From 98be936f03de16a66e8affdd78cc8bae504fafeb Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 22 Nov 2024 04:48:24 +0800 Subject: [PATCH 443/447] flake: bump inputs --- flake.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/flake.lock b/flake.lock index b294ddd1..2314e68a 100644 --- a/flake.lock +++ b/flake.lock @@ -158,11 +158,11 @@ ] }, "locked": { - "lastModified": 1731535640, - "narHash": "sha256-2EckCJn4wxran/TsRiCOFcmVpep2m9EBKl99NBh2GnM=", + "lastModified": 1732025103, + "narHash": "sha256-qjEI64RKvDxRyEarY0jTzrZMa8ebezh2DEZmJJrpVdo=", "owner": "nix-community", "repo": "home-manager", - "rev": "35b055009afd0107b69c286fca34d2ad98940d57", + "rev": "a46e702093a5c46e192243edbd977d5749e7f294", "type": "github" }, "original": { @@ -193,11 +193,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1731227601, - "narHash": "sha256-aGUQ6W/Oxd9xjH9RQbnUtC61sTK2fWlKr+J7kavT/RQ=", + "lastModified": 1732032028, + "narHash": "sha256-NjyfJQQxs/a2a/KwTmXM44K7XjeJwGsf4YFtebueQzo=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "7691d0ac1deb6ac7482c5a22fe1a14a34ca608b0", + "rev": "65dc04371cf914c9af4f073638821e4787303005", "type": "github" }, "original": { @@ -289,11 +289,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1731139594, - "narHash": "sha256-IigrKK3vYRpUu+HEjPL/phrfh7Ox881er1UEsZvw9Q4=", + "lastModified": 1732014248, + "narHash": "sha256-y/MEyuJ5oBWrWAic/14LaIr/u5E0wRVzyYsouYY3W6w=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "76612b17c0ce71689921ca12d9ffdc9c23ce40b2", + "rev": "23e89b7da85c3640bbc2173fe04f4bd114342367", "type": "github" }, "original": { From dead3b78d35ab5bee9709eb4c8939c9d6e59de19 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 22 Nov 2024 04:52:45 +0800 Subject: [PATCH 444/447] spec(shatter): initial configuration --- spec/shatter/default.nix | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 spec/shatter/default.nix diff --git a/spec/shatter/default.nix b/spec/shatter/default.nix new file mode 100644 index 00000000..9602114c --- /dev/null +++ b/spec/shatter/default.nix @@ -0,0 +1,34 @@ +{ lib +, pkgs +, ... }: { + global = { + id = "f16d3a87afdd4eb2b1fa4c098d4a9c1a"; + auth.openssh.enable = true; + fs.esp.uuid = "153D-AA49"; + fs.type = "xfs"; + fs.store = "67878f8f-3724-4551-a2e2-f43d674e1d93"; + fs.cryptsetup.enable = true; + fs.cryptsetup.uuids.persist = "3633e292-59e8-497d-9e51-0186ca73c25c"; + gpu.enable = true; + gpu.type = "intel"; + gpu.session = false; + boot.lanzaboote = true; + }; + + services.udev.extraRules = '' + SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="88:c9:b3:b5:15:0e", NAME="i225-v" + SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="8c:a6:82:70:08:ca", NAME="aqc113c" + ''; + boot.kernelParams = [ "zfs.zfs_arc_max=2147483648" ]; + networking.firewall.checkReversePath = false; + boot.swraid.enable = true; + boot.swraid.mdadmConf = '' + PROGRAM /run/current-system/sw/bin/true + ''; + + hardware.enableRedistributableFirmware = true; + boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ]; + boot.initrd.kernelModules = [ "i915" ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; +} From 29ca6c9a85b790023700fd507964367fc0ffb439 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 26 Nov 2024 22:42:49 +0800 Subject: [PATCH 445/447] home(gnome): link monitors.xml --- home/gnome/impl/home.nix | 7 +++++++ home/gnome/impl/nixos.nix | 2 -- home/profile.nix | 1 + 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/home/gnome/impl/home.nix b/home/gnome/impl/home.nix index 8e034b20..ff5b9eba 100644 --- a/home/gnome/impl/home.nix +++ b/home/gnome/impl/home.nix @@ -22,4 +22,11 @@ in mkIf cfg.enable { catppuccin.enable = mkForce false; home.pointerCursor = mkForce null; gtk.enable = false; + + home.persistence."/nix/persist/home/${config.home.username}" = { + removePrefixDirectory = true; + files = [ + (if config.specialisation != {} then "gnome/.config/monitors.xml" else "extern/.config/monitors.xml") + ]; + }; } diff --git a/home/gnome/impl/nixos.nix b/home/gnome/impl/nixos.nix index 56835110..e49c6ad2 100644 --- a/home/gnome/impl/nixos.nix +++ b/home/gnome/impl/nixos.nix @@ -46,6 +46,4 @@ in mkIf cfg.enable { ]); users.home.persist.directories = [ ".config/dconf" ]; - users.home.persist.files = [ ".config/monitors.xml" ]; - environment.persistence."/nix/persist/fhs".directories = [ ]; } diff --git a/home/profile.nix b/home/profile.nix index 6cf374df..ee64c439 100644 --- a/home/profile.nix +++ b/home/profile.nix @@ -139,6 +139,7 @@ in { home-manager.users = mapAttrs (name: opts: { imports = with inputs; cfg.homeModules ++ [ + impermanence.homeManagerModules.impermanence catppuccin.homeManagerModules.catppuccin ]; home.file.".face" = mkIf (opts.picture != null) { From df79c760bd55922a0dcc8e6389d3e7398b652762 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 14 Dec 2024 17:47:10 +0800 Subject: [PATCH 446/447] spec(eientei): add minecraft greedycraft instance --- spec/eientei/minecraft.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/spec/eientei/minecraft.nix b/spec/eientei/minecraft.nix index a9b88b9f..a18a5e6b 100644 --- a/spec/eientei/minecraft.nix +++ b/spec/eientei/minecraft.nix @@ -12,6 +12,11 @@ # stop = "stop"; #}; + greedycraft = { + cmdline = "${pkgs.jdk8}/bin/java -Xmx10G -Xms10G -Xss4M -Dfile.encoding=GBK -Dsun.rmi.dgc.server.gcInterval=1800000 -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:+AlwaysPreTouch -XX:+UseStringDeduplication -Dfml.ignorePatchDiscrepancies=true -Dfml.ignoreInvalidMinecraftCertificates=true -XX:-OmitStackTraceInFastThrow -XX:+OptimizeStringConcat -XX:+UseAdaptiveGCBoundary -XX:G1HeapRegionSize=32M -jar forge-1.12.2-14.23.5.2855.jar nogui"; + stop = "stop"; + }; + nfwc = { cmdline = "${pkgs.jdk}/bin/java @user_jvm_args.txt @libraries/net/minecraftforge/forge/1.19.2-43.3.8/unix_args.txt"; stop = "stop"; From 077aa1474b03161041be4fe102254c3b2f091326 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 14 Dec 2024 17:58:40 +0800 Subject: [PATCH 447/447] chore(flake): bump inputs --- flake.lock | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/flake.lock b/flake.lock index 2314e68a..a38f2578 100644 --- a/flake.lock +++ b/flake.lock @@ -2,11 +2,11 @@ "nodes": { "catppuccin": { "locked": { - "lastModified": 1731232837, - "narHash": "sha256-0aIwr/RC/oe7rYkfJb47xjdEQDSNcqpFGsEa+EPlDEs=", + "lastModified": 1734057772, + "narHash": "sha256-waF/2Y39JXJ4kG3zawmw1J1GxPHopyoOkJKJhfJ7RBs=", "owner": "catppuccin", "repo": "nix", - "rev": "32359bf226fe874d3b7a0a5753d291a4da9616fe", + "rev": "20b6328df20ae45752c81311d225fd47cba32483", "type": "github" }, "original": { @@ -59,11 +59,11 @@ ] }, "locked": { - "lastModified": 1730504689, - "narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=", + "lastModified": 1733312601, + "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "506278e768c2a08bec68eb62932193e341f55c90", + "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", "type": "github" }, "original": { @@ -158,11 +158,11 @@ ] }, "locked": { - "lastModified": 1732025103, - "narHash": "sha256-qjEI64RKvDxRyEarY0jTzrZMa8ebezh2DEZmJJrpVdo=", + "lastModified": 1734093295, + "narHash": "sha256-hSwgGpcZtdDsk1dnzA0xj5cNaHgN9A99hRF/mxMtwS4=", "owner": "nix-community", "repo": "home-manager", - "rev": "a46e702093a5c46e192243edbd977d5749e7f294", + "rev": "66c5d8b62818ec4c1edb3e941f55ef78df8141a8", "type": "github" }, "original": { @@ -193,11 +193,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1732032028, - "narHash": "sha256-NjyfJQQxs/a2a/KwTmXM44K7XjeJwGsf4YFtebueQzo=", + "lastModified": 1734162608, + "narHash": "sha256-m2AX+3eiVqIK6uO7GbGY7SFnkkYOlR5fQiNI0eRvWOQ=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "65dc04371cf914c9af4f073638821e4787303005", + "rev": "31bdf4c7c91204d65afbde01146deee0259a8fb7", "type": "github" }, "original": { @@ -257,11 +257,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1729665710, - "narHash": "sha256-AlcmCXJZPIlO5dmFzV3V2XF6x/OpNWUV8Y/FMPGd8Z4=", + "lastModified": 1733392399, + "narHash": "sha256-kEsTJTUQfQFIJOcLYFt/RvNxIK653ZkTBIs4DG+cBns=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "2768c7d042a37de65bb1b5b3268fc987e534c49d", + "rev": "d0797a04b81caeae77bcff10a9dde78bc17f5661", "type": "github" }, "original": { @@ -289,11 +289,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1732014248, - "narHash": "sha256-y/MEyuJ5oBWrWAic/14LaIr/u5E0wRVzyYsouYY3W6w=", + "lastModified": 1733940404, + "narHash": "sha256-Pj39hSoUA86ZePPF/UXiYHHM7hMIkios8TYG29kQT4g=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "23e89b7da85c3640bbc2173fe04f4bd114342367", + "rev": "5d67ea6b4b63378b9c13be21e2ec9d1afc921713", "type": "github" }, "original": { @@ -313,11 +313,11 @@ ] }, "locked": { - "lastModified": 1731193165, - "narHash": "sha256-pGF8L5g9QpkQtJP9JmNIRNZfcyhJHf7uT+d8tqI1h6Y=", + "lastModified": 1733858086, + "narHash": "sha256-h2BDIDKiqgMpA6E+mu0RgMGy3FeM6k+EuJ9xgOQ1+zw=", "owner": "pjones", "repo": "plasma-manager", - "rev": "f33173b9d22e554a6f869626bc01808d35995257", + "rev": "7e2010249529931a3848054d5ff0dbf24675ab68", "type": "github" }, "original": {

    -^_kYZOkl~*c(ziliT27&NnRWDrnCK6 z(-(A7OSy@UYa*M#F@+_&#TAYy&ka$K3=V2H{e4Dt;`2u;O8nJ2pKQQ&N1_O>q^jV)?E?$$O^ z&x6D`w`w)ZOpfw)NwH1YDH3#$FKw2Pf=kKC-$feroA;b~vz}$&x2f{~pYQ*4{PW@d zg!kv^{z2R8AR1f%m@?7MB#}776xUTlTKl<-6adV1D6+avd)s zrMHQtuE`FS&Y5tq&8h!Q(V8XM@>>q5UADKdm>t6o&)ja+Cx%qQ@ zm*?O5xqD(LON7_TRMoJxR~$`Zf_Z|MPS%|J@}laV*6JrIVZKMZ_*{KrcegpoTv}eM zSsJp{@%q*kd{*11`xUY|M>`AZDhcwWmwdao$C~Bfyuffq(Q}?tg$zXnb1zIv&Cjsf zD|E~8`<+b-x$jP&G2h?7Wr~=f_v|@p<~NHx6@A! zmg=$NeuM54}%W@qn`sY+yDTiceCAbJ0u3lxDKJ{G*i;~Tr5ZzTvH5gToI-5Eq zZ`l0(oN4!t@`W4^E(-E+T`*qEHf`0pO}89Wb1Y1@3HmbhFW{S0VH4eNsc`o4j4XZ9F@SO~|bh#xU zKK+EFV;KkI#HZ%=A*L~G=`Jays#^0)#ao&pI+Pg>Pd+{UX-k0S1QWkAot|-j?ijeN z+RJsq#miK^*70G|dKbnSuIET5VOsQLC09AqVdkEn#o2ixYO59diCCCAc~LfA5!_JdH}vtPGCaNw=VU-x&t%o)-Y=9Z53a1)`WHH=IYsd zq<06*xY~2>uAsu=ulw9xRE&5VS3MDkbxPG(njw33%``1VuJVuXgl(iAWT-yhcCY!w z@5M$Ux}G%(znS>e_o<(<3E-%YnV({h*4lvRxWk8(iOm`%o6Wq$EB3d z=aSRdrsO=$i)GqPS;5W{$2U*DTv>7`bG7pHN!$_3v>d}50;^s}Tx+ytatWBetl!b= z%M~G^;C=_KKW&%1IJ?~3zZexetD3)2iMr#z57z+WZ-$DFXy$Db{U0E z&MKW?#23~0B3In+Kvc=5>?WQUDGfmk7Z*)id?@Rsz*JGb=xeL^B&G?^<9)~Et#etj zRppz$WhkSE&gmKLi#XWMc7_;T=M&}aw2-+!Vbh-;6%hqbmUhDl8Z*Ag3a~M{oGLQn z|F0v!U-XJm;ovUTGrm_;7QZiY?rboaqVB3bZF z>Dpvv?xjwulF3>@t2npL3fr8tbw=;9tr>zlTFlEgc>AO@oI3JwvT#DC>`a~H9VLxg zA_h~h==vlmosjdij8R*;Xr_XY{3I2PV-H_&doJg0PHGGJ_h-$j!U9iL_B$P%x{gzR znl9AKc*OKOab@;pu@@79i?j+lE=uk%`d4X@&&`>k==8zh*O~o`f7&-mT5vk5XtV1T zGOVp~`%$CHuDZ#^^J^pn*LlSUM!S1cW?!1DJgHT3%FDT|6>%pb?3%vBFR?mdaluA` z(P$d8kK&Yh3hzG!PFnDVrAFgt9G9RCkDz2rp=5^Mdj$o(pbCiyu3qla?k0h&CY#RX z@dq>(`g6Io@4D%lTP)7G$#DPCy9#VCf1ci1-Lk-?#YO0_jet_;$Cbe^b%j=nY<bs2jbeM5K`n!QLeoh{MVqoHTz{dkXhQ-M?Ws)&_FT{AngBBM7dr5#$(CT5t( zec^DZE(@3FRxOP*qiI`LNSc;7DrtUTt#3~gac<=4TwT2L`N0=Ax9epJTmH0ZP<3if z;JkEGSbN%$Uy{=⋙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

  • EST*vRbeD(Mx+Kx7)TW&J&c| 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 literal 0 HcmV?d00001 diff --git a/home/picture/koishi.png b/home/picture/koishi.png new file mode 100644 index 0000000000000000000000000000000000000000..3a61f2e68c19ca88a6950306b784dde5c467d0f8 GIT binary patch literal 241517 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 literal 0 HcmV?d00001 diff --git a/home/picture/staging.png b/home/picture/staging.png new file mode 100644 index 0000000000000000000000000000000000000000..4de219ed6ff4ee4ebf1fb60feaf864d99290f232 GIT binary patch literal 21235 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 II;Vst0Gi@98~^|S literal 0 HcmV?d00001 diff --git a/home/profile.nix b/home/profile.nix index d10a1552..c6b20c45 100644 --- a/home/profile.nix +++ b/home/profile.nix @@ -28,6 +28,11 @@ in { default = false; description = "enable ssh authorized keys for user"; }; + picture = mkOption { + type = with types; nullOr path; + default = null; + description = "path to user profile picture"; + }; }; }); description = "preconfigured users with profile options"; @@ -132,6 +137,9 @@ in { home-manager.users = mapAttrs (name: opts: { imports = cfg.homeModules; + home.file.".face" = mkIf (opts.picture != null) { + source = opts.picture; + }; home.stateVersion = "23.11"; }) cfg.profiles; diff --git a/home/user.nix b/home/user.nix index 82342a93..6f61a442 100644 --- a/home/user.nix +++ b/home/user.nix @@ -5,11 +5,13 @@ description = "Koishi"; admin = true; sshLogin = true; + picture = ./picture/koishi.png; }; staging = { uid = 1000; description = "Staging Environment"; + picture = ./picture/staging.png; }; root.uid = 0; From 9037aba427586e8d4d613600e2df7d4df5aa2622 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 29 Jan 2024 00:20:21 +0800 Subject: [PATCH 147/447] home(gnome): configure gnome user experience --- home/gnome/home.nix | 11 +++ home/gnome/impl/catppuccin-nix.png | Bin 0 -> 70180 bytes home/gnome/impl/catppuccin.png | Bin 0 -> 41442 bytes home/gnome/impl/dconf.nix | 101 ++++++++++++++++++++++++ home/gnome/impl/home.nix | 29 +++++++ home/gnome/{impl.nix => impl/nixos.nix} | 1 + home/gnome/nixos.nix | 2 +- 7 files changed, 143 insertions(+), 1 deletion(-) create mode 100644 home/gnome/home.nix create mode 100644 home/gnome/impl/catppuccin-nix.png create mode 100644 home/gnome/impl/catppuccin.png create mode 100644 home/gnome/impl/dconf.nix create mode 100644 home/gnome/impl/home.nix rename home/gnome/{impl.nix => impl/nixos.nix} (85%) diff --git a/home/gnome/home.nix b/home/gnome/home.nix new file mode 100644 index 00000000..fa7c5948 --- /dev/null +++ b/home/gnome/home.nix @@ -0,0 +1,11 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.passthrough.gnome; +in { + imports = [ + ./impl/home.nix + ./impl/dconf.nix + ]; +} diff --git a/home/gnome/impl/catppuccin-nix.png b/home/gnome/impl/catppuccin-nix.png new file mode 100644 index 0000000000000000000000000000000000000000..7b5094e194b900eebb4edbfe1f028dd98f8435d3 GIT binary patch literal 70180 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%0Dc)k$vLh(KF2doaX`?w}$l%<9 zpYUR55~%8XzwLHV`hod1UmkUX22Vxjl-^J6mneFq`TsM&k)V3q*Y6WgR0d`r|PgmV~h5@dys`9TNd%h*JQ5do*v)>p1IDwyxq$F<*fRyQ?E|h z|K5CW_d6N)KPgVp%NbeU*#Bv{QT^cqD6#*nv70x)?sC|DGk$P}ayShy&RjwLYrk13 zoNZ6y_W$1(@&D^}*7U!8a$?Nv@?iyLzxJG7w9NbaHXr7HPSC+)P+GY+`>XuNpS!!^ zF0_Uv)u@~0^0gw~^DE6t*<^40%HP*{l;3X0)t{c%|EL+w^f?&0TyJaPo%8>_qn9$W z%KW|Dz4-dOzo4?z^jd!B^!M}Tz%pL!CRk*%J-b&HeI@_S46A0otaE40-IMQ5Yuc>1 z+^=Kb-}3(l-}77j`|;xP{{!1RnEyFVm)o0sQwxh2g@UGr@^XKvrSJHwkMwz*9J{qJt^Kf!!onz$>*O zjO_9fzk4mVntpEBzv1kdZt@2ft#K=@eh_sE$(M{b<17X>xQPBH%z2hF5`M*SlD-)h=xPunNxoo){= z24g>~Kvq>O;DwYwpiwGW2k26l?N;`wkN(R|4LuwE?Cs9aeui(}ye{9sqw(Z{p?#Mv zpA@K2)}4R)=;!VCw_M$R7Lpn-SizI}#+#FuyMUIAvAw<1WSxFw+11tD=f2t0_`IpT zp{Q$B{$u8I*X8f_maFjo;0`sN`{+iu`ZCaf_3NYd$HL|J!K;b8utMv?u`vB;vG+C~ zU0(6r+PF2oPBP#2+l{d2>akz@pjlS;sOq_JB8_2)<(~^YA(yV_T(gZM6>LQ=Y|)A z#ojjUv;4hCcAxU>v&TBa|E0B`XH+^C_iy!zRWGN2YPYl3wUaIie}@&4$bGKc^%XW@ zwZAf7@!Xmi6C8YIo>A#)P#SW+Qug+aR{7W4`SUHlw0w?ws`FySH;WG+Ktson(*L9W z#VY~xVcF*}tgH-B0nd3?g66y@ZkMagS?&FF@3$M~eAe%FgzbHQqg&n0H8phgJWg3x zwb{Le;eTRNjAmZZypVJHUX+CVxq3@@NG8Eb%Z_~&f4~07dAH|^TD^Vje5(Gnn)(59gX%T<_<9f!8AXv%Aa0=G*~?$^NgYrKQ~!A#!nP^mB`Em;T3Gv0fO%WBa!0g>k}s&;q%QUwSL* z-+hLa(F@+dD$oT>dUt&4TJi3ZYN=b%=H+*VzRorio%7cE&6F4Q59(a?e#y7ZDe-!< z<@P<#cWpsecOLgM{B%b`KOP5-u?$^ltH|%0k1_hBB87Eo`5X>eUSa*!OyMt z7tCC{q6gFipXoDk@xS`1Q$-Emy{h*qww$uUP~5L)mfl^^49Sz5?#WM&zlXIV8#clE z&<&HOfR<8xz3#4dd!u~j)6YL=SVEgQiO*x?t>0c+eIm3z@4*7+5wSIna8RyKSY0pBq=gLm;R0O}sb6-2t1vNn4wh$(KZc)=}2K+xg?w+U?xutV(Zd zw#~20o7l~D!lh^Tr}xT}KmHIr7F(E{V*MjNMnKT;b@}!qNNe;OHa%SlJq=QI`KDms zo*hXwuX>(Hz20`D>Gt~@uWIgu{+BSFYc0Al<8{^BTk389zO1?;IpIp<@i`LAe3nL~ zZbhs2{V<8E|FsZSRtH>zRZ#&&eS1DEda=v<{uRlSd&}Y4Q6knDe6D$t%y+U3}y_bGLx3V(G-h1(SUGFJB)0M`PW}BvFnOw`&w78xBqkqx;y5Ax@Gk(jIy(zqy ze!y|1@q!h*zTQ&>4~+FZnI$FtXsP7?Sy`z&mDrm$#P#CljNbmZT?wOO9=akw#`m?`tp7r~XBa5EBu7AK-c))P^(sK=qZq)ui z{OEz9J*Xr(wsm#VJLPg%|EQttFtq4mP<=RI{vVTHJa^Pf-HP7Z{Y+W&>&N4!&3>`f zM=vg)8~S9?v(qU`eiHvzp9l+C=GSNjS``FdpchoDS}wTP=JEE8sh8VeadaUMmOmAC z&dR&{=*9ea(8@VoX|p3u*4zKFot>=yFZjxpYa$z0JgxfjPEz^YU(h&YaJyW6)SG?x z6+z47etxX}`0cbmY&fBz>?q8wCwZmoVM{K!)6aCA&Aui!=j+|{0GWa>7hUyk86K{y ziYs|{QN5IHODA+>dFeS1JFLL7-T!a6`tzjl zf5T0pPrp{I-xXZiv-gpFP`blxiNbF`Ufjxl4ob+MPX&KGTI~&M<2vjPj@u6znqpXR zSJD(ZO5l&vLb4>U-Pt%}?+7G6=5OxIIJ2SL7&L6PHrL zK_)Q~)}`AMXUu$URevY_yUJ`wP2=n7&t^UUeEw(L_4nUDG5$KAfA3$?L2msm6=AWl zvdiPXJWtijvJDLlHT<(_^(Ny5p>wM~eqXd~8|dV=%8O;1U2-B*V-761Q=ov+H-o-FgVRe##f6}db+ zA9Sr)_wiVW)wWfuR$08gT|ag1MLnCs%m2lFdwF4Jz65N9?Lg7kJ@0nDJoEmKy>EI- zzG{aZ>50z2{o?0`iT0hl^h#58vaD^lzZF%F`*8iH}KOjw&jO=FK$Tl?M~kt-HF;}+PegC<6 zQTYCUHzhZ??)vsdwt0VDWtrQqq>U2&_dlG6JMtskk*nwOS*m=q{yODNPl@-l^ZnQ5 zfBtnl-yUCADzb_zRVS-@Yw1?Qk|(Ah1KH|pQ%c_N1)VcIy{6KS3s-6R$(U+!wVsmNme;Ad__)i)oi`rcJh*(0u=U%W*)zLOCI3Iq+Y`$#J7q58 z?4|G5RUbWIeD35qkMR9zsXjZaYhau9O1R*Lo^_o6zvfNB1IC+@FQ3_dEzy}{yZh+o zSF>(eJe_@CvpDdl2v@5`?UT@(k{crZcK^^{ylR)4wesC3*6VtIUDbwd4_Xjx0G&l& zpz~^1d4ID0zcA1Vfo;5orGHALZS7wkl6P5exA#;;NZsxCyMkptwsvnaPMG|r`itkr z?*|@lHol}A`JwF0tRJgk9)Dp156bSv`%42$?&s}((^H~ZyAX_eR*$n^_-%Q_fyjkEVp{KzgBtM>;0gEs?C@A zc9o~uPlt|qGR%da^O5`Ri1zx9Rj+2f=_$E<%)jH<*VoZDx4%AEoP590eacRa>kpUn zcH3FMpE{RO_tn0$Wrcsj^-rGjxPIk^fd8FO`LGmp;U#QG*o9@^WK1;5?4Qke(^JwN zS8aN4mPzK~=ZD>5WLupU_PGAc%378DSiP3<~5!ze9hiq}%H^Zh^mxNdwb_xE(nRl7H(HxxI14|Lva z{Gk8Mj_ZttH&&*nrZ0)!`{i-PyT)ile8W!WSa4RR?%d6dZ}WDir7x-ed$Dt4#k<$K z^R8Yg?G`@2cgY#ow;qZ~FI4M=TbtacZ;^M_|M^-Y-(SQ?MYnx{CG`j%9k6<+$Fnj&3{|=O5FYbP0^c@0)m3< z^DC;}l$|*6rl*Aa{tV&uzW-|BUXOx%z4Nhqj996y)%OjiN=e7wZa=1ng7f3GI< zy9Fl)OLpH{{`kD5{;qF#)U2ER)-7A-&GYkFIW(L~4%@r03_0ZonG|a9gP$N0w*BwF z-^Upbw}C?F>qU3N-}`>se>K(?-!H9i|J7w?*RA#I?(ROea{3t?@qJJ#1|SLN>q zo!vcsevO7*&Fic1#C`>q*fT;~ofN^jJXFrrw)*XkjC&g%8rz${Y@2`VR%rI=fGhiC zs~&k?%s=0}$@s;Rs;{>V`~F@s-)wv-H)6lpyq&c^aNk$ey@u>}YY5x=e?#KN&x!46 z=}V%2T=M?-ZHngXFE^L9l^TBi7kzujiodH@t?Rn%9tS!ZuJlxEz2Mf^-Jp}pi>|js zY_9P{7zq#1S-0};CS6FKo|e8u+e|$9(~Ps#&Cj~`&lH%i6LZJSRrYuu`#W)Vo_|SY zY;%47GqW9WY;I3aUlP6VMRUc+@^bj8d$7YJ9ki`p{rSAu{rev3rz)h zV5;sdzh}v3|NPCHo)X^G;m5hn?{9LwA8U~Awa57P)G)nQ6;&Z^7rYf%}WD ziq-$0m|ZX7+v~eF;)pPzR=Q+&55BOoG zZ@5|}Yhm!s>fetyJte2b_lU3m^K9YTUB_1Siy!gsx4q@%DjObqeV2sUr{f?ah0pCZ zsrqJUGXLX+*o`R%Z^KHF1M;w@X!!95f%g_j3L2)KxuIc}|MzzF{C!XBkKLM@ z9ldZxvh{--$w|*a$IS&S{Pku_woK`>>zj=)t&QHPGjDIX6Fdas;cg7&`@LD;_5R*( zr_OnNKX+y2#)MxzVLQVvxBZ$?^PP8X(b~Q>t5#{X#TS;Av5CIA(*56PRrc#m#+Phs zf8WT6*lh(n&g_RiETV2C#a4gsTfDClbntajaI(+dce}#&K3jADzEJo5=o_o9zv(Eu zm;K$MXWs8f-+;$y(zeiBt|5qu@nHS)vAa1)+I6Y1%wmN?@=rrou z@5j5o+h=@zZD;mxd7#$RsK2{p&rbO4?pEqM{SA+nOK52+&);wHsp(s|K^1zSju@=k zXb^*Y-1XPn&Hgf9e(I;BFIgSGQ7P?Co%`&V-_6&T9p5u^^Q|YhWIfO4Rv+^e|Cd|F zCYtm>GQRii_Z#Nc%6GFT%lCedpF0y)Z{)PVw#`SUd?4-x%8_pViczwSk&idVq zxf9==_4Gf|Ui@sz)3~#~y&s>fO+Hn${@a=WjUyif?N6Lr&}{YgcD-!q)vGrpU(Va} z^ZufZiSR=HgCsl=rR*)cq1b2fJsT82Qf5brugAwY#UfGw!{qDE`&0`905n*Vk8K%WHnGdc$MY zk-V>>E@%7cyql6Q(`>&b=*+S=hvlFfF0cZ*X4$G&t1Nz=|8E06TVdDA$H!bB|N5Hw zeZIxJ_Kgb@op1fU-OcFi*PUB_Q{B3`Y~69Q+T;tC_s^a4xW1vR)MsCD4lE08fQRT0 zANKi`Xt{ZW#IX z=7xEn?QiRwl3R?~=l}S5!m`P7@95^#>t|E~*=b0=7wZ^?Ln zusQkr;{H?TJhp#2%>Vc)yWEL$85fVg-y^i%{(DTB+b&T1BXjyc1MB9pqzjh!`|kZM zJ9o~*{IB`;S)-4y6V(t-J)Q-U0o-BQxGa0egj>3w$W*qff-Sr+eRWvs|Q zan7Us1ZQ*d@>>4$=M*B}*I6GmjNb#gmgCk`@8ny5&0)J_N`ayjGi%-(`Pn`1z&&li4Og@&Do---)`=4r^|0$7WZo6W?-&g08 z{B-pV&!jh14;~gCSg`P>%WWji`u5(`oD#S&phNilZY8N} z>-^qkSN?t@r+s(O#u>LD%~^(=y@%fI=GRDdhwv}dueuJ9R-~R1R{*-Hf8kX!Ebi<~~LX2_vy{YKo zp&7;h|K5~b8Mou*Gd}Zwy&XUPzL0k-E(SF*lh6I~`toXXG0d|JIfk%o`0vP<==^R| z?`bLNOCrAAtN!@PnLjl>XX4WL`vuqA{>~|L+jVQ#EsNYE{IEKZA)y=ARsNtZ_4;-4 ztsk5>B{k>C8k=>={?Ogk-@jk&)pgL-XVwpHEMENo;Bk0~e?ZI-)-`m^_njreoesK$ zYxQ<@|2|gZw3PImscl$=Pyn#_%^|Qu|tcdH6el{+jFL!tQ z?R95D9n!!3>()P}p1%)Pk2_eyPI^DEyz1RC>E!u}&WmoF?cE%F%jfT>ryn25mZzj| zS@rX>d@pOUevd7moq@G#X#YLiM^Cu-%THGOld*WdWXa8?Pq~?_wzipOC%tVuT|WRm&e}pn30if%klzAgJb z=i{5+PT}N>cXmGIWwKf;x&5BhS8aHRUSNb(=^tjs)xLQ6XOuW9OB1~)QqnY*pE2nfFH40~(dv;a7UDtH^Kc%p= zB@1uO%wLIAuy0uvwDQaU|HYvnethnft`qv2{c5xErMJ~b8g6_(5gcXn`^j1J$Gykp z^@{~B+_VApb@Fmx_f9NmhGqAJ$vRbEuU2G(t}+VydToj4$BU=er=)LL$@?`s>DBtY z^XE>4cSx8$%3mCi@l){SmDk6Px0Sv=CBs@G#+`n?Z~Jl|*sXR8m|;mVVY2VevY4ER z-DcK{LrvD^cVu3_4>~^RviuISX>~se%iMPDv(A-gKEG?r(apb}o=$!yTRv?k#|s{> zqe(up<*{&&_rTi;YwCV}no$^?y2tn1QR{adrtG5aJd0gM>zTM(!bokbau$-)(%*V&4@8npK;>#Pesw#)yhl>{Xqt0o!s|7Wn^e;7Ufy{Rw$S1=JXX4WZQ+39Tl|9W-F!-B@+;(VHIMO^J7RRXh|s ze7&P%y4*fRvHkxO%iMP5{>qg;KJW8fvGY=4>-%1s-;cScupr4t&Q{IqXc9c_%z&kx z=rt=7oo%e&-FnmGYxMV7bkf~TsW&Cx9y?N4FTXTM(^~m%Vg0wQFK+G5?@nKD_vLnk zRejye?uNd+f5zuQ&1U#%LI>e-9s11P*iy`A{=~T-SBB}uNEFNcDJ^r`z3Ic&=gI%p zOy6vLsr2P7)wZ~AhsDl!ojp3kCM^eK;+h**B+kdy!yDI#1H;yufjf`psp&aao?J{` zbmPj5xfkF0$ds3w5p_S{ zn9>5}Rq-2*;`aRQgQZ6;c;U15QS0oy&QkB`sp)?vCKVU^NLJ^Tx$XY;MgM>Jn#i4M zpbJK7zjrzN|BdQSUv2--BJFN@KFHf?zjU{|9G3cT3td513M(ZqXi2@keze#;X8zod z?$7?bYK-{yZud>ew^87}?(vp4J!KD{aIfomHS3nx`M5oQzeRlh_{d0{QTFI3*7rwO z^V`A>J9c1&CGrJV_xyWtW-e8QTTf8O-b29Z#uUheN=9L;+)6z)&A=( z9`4zn_YssbeC8H7gIt+(>PBH;P9FR)swTKAv%HoD`N-K?b)7x>W=h4sWzvfi&(3<& z!}s{&>wk7$M}x}Tb}c^tC+N$Y+xw4huJpGNls{Lw^Ng!QHK;+h@j8a z^1oN59asP4`$}H#=jZ!(?*AQ|xMZQz16D;-wPHhcIhVt-cZt-tdnZI{LFY2C4SX2sj97jIkuU1Rot zG25|q?R;4ub58E5{P=5e|FoSP8SCS!e>{x%_01aA1Pp!d3XIWB=_JKeupRKi;-A`*Z}$7Wdw-uakc1*Tbvt zR`@Wc@19?`G8Zr>lYGGtrzzLN8{ph9EQ z-StAI=BCGlxA&Yomm%(F^?uWemzVY)-E6tPN+E2|e^Ac;mUMNItKswT{fM}Ro0?`< z^>gZs?@xkLcV3^R>Yem#Zu!)waZ~f&UH*Q2QF%{v^_N$2&U(KbyVH*@J2s=}?N*R0 zyECu%_CMp5hR1UPJf2sAdWy-lwX^T1-}=Fsy3;@Xo$HTAPgdLd z($;FW>*uuNlR!iMm#$t3Ilf_{{jC>2L8ZvfjT>tm9aaUc6geMP9XrKq=^MyuRt7Ej zv4XkpmR7&(6@6cSLG8NUR4>EIFA~XX!nPe3R6owQ`|YH;7xmuQKDcn>^@__;Hqko^ z68HRhu>N!mOG;(-r6mzxUaf{Do)RXwmv@3jnEoBrzxCu+zRw(q?&tgNsa=1!hO2dz zgxw={!PYmE$`%P2zM1siec^>qkFUPmen;r_G+pgtk$^m3Ug<|WK^KfdTHy;O!&)f| zbi~fg5PWa@y=HaX=8gO8=I#F17PePS@c6vHb6@QK{OzXX+f!xMU%MCo%Sq`@m%g^P z`+5GZoqHS|Zl2xsd>&|20ah=}g_mck#+6@QWZc`Z@anqnkKUFaxwX_g`fZg<$=j>y zY_&h{yy+=>*|J%`W1a2x%#S(m-q*{^@BimEv%8^aW&A#yxLv>B!HP&LL0FZ2D(z{z z{INB^-(^qDUi<6C;;`Lf|F2&VwC~fqyE`p?i+5~wNpG;;zEwvz2W^y?e7vVKXl2MV ztpzg6V(V*jBDU+na<(7r*7Jr}(^`A?n8 zxXx!?>G9?E-vwgl#rFQnI#c~=m_! zuMyI}TN*yIyJ6d>bDPf}`wcn-8#3(_@znb^TO#jgM(nj(cE6_hHcM%edhCzp7gv{;m$|iX^1Yv%d?9@Q?MIQphudaU z-7QVkV~Vjv&G3Y8WswcGpajSO>p zy`uGEXRB}C@!jukf64xsbMLbM@%GK>(|2-Y=z@mHdv52!hQbyI!!oym@8MThKi>Iz zJ^xbrbo~nbxSwD1Z|_*~+4Ar1{{mZMvo;%BE!nlM)bPuuY_qC=U-tjE={kEhRfj3+ zG&d*%h3EeIzW_2H!4NeY=E{}N>^^zu%=`T-z3$!3jn~~a?p(>^I`{ZHX1|`=J_{Y| z#m?3R7Ya9C{^!1}VjC!swzk)YKT}G`Ui;_6;fkl`{II^_g_E!na>A+*onyxK;ND7a z-Lt!ymmlpFUp9T?s$x*?2F(~4TWwjj3Y6Dh_0F@ef82XdiA(m(6vO1jphgWWwqYGR zhh6>mE0p8r|A+vWs1;>*b{L6=?pwUS#`VkV{mEr+t~XNW+djH*`CRVDoWH9=4If{- zeJX|}XJzZ=w4=K(FM~O-0p{hmhqruu462~*fBt;)yIxfL-hYLKD~hg`zLq>*|MbtB zo-U&&P1=igE%WY9*SG)i8dL+O>M@yxuZ-wPKOPI8dK83DomdC%PjWr;vFq!bX>$VutMYDZ`~7(qzr7+1JXCUg+D?ueF~#zgD&V#-beg$?16D%Z znrO*y^T9peYp&VDUpF?C{k;Hop-+e`SQTn*tv59 zCuY6QO8#*|KKDz_sTmtD-nkL6Pa$FQ**%}nMQksLgr)00>Tvf>ZPni^@_AmJm0G`? z@X=>UWqz(V^DoT2Siiq^ld;yVeeo=lwW7|7d&hGtgaFuU@^9s5%+%x^O~l&`qvZr#W_?R`t$1zvC@mzGQ1z z+O3w?i!*DT;ckMLs<-AI`}%sbu+}-w=k@m6UheiSb6dXQ?>g(F6XSR6IJ)`RuhNfq zc&|_2$#G+bYw`1A(Ua9+sp7zVSOwC+bv=2v?Bf;sHHOxUgDpS4zTdZNoo$p2cuqCr z-5n!wM%|fKc`=|$5*leg5SL{=Y>WSRdBy9X>2oixEO~#`wyoxMJ$k>r{>57L`Ca{S zb*j)(oFNJpOAMkp*PHwM{<8C(Irm};pM7b>mz$OA#mGMy0qtm-kmgs@yI4rZ*w6$l&mL z^~+1PZ1ry!z2V^!bk_eld&Y-H!hu?%|DRM`+xz_(AG@5u*1NlMFFoD$2{lAV|6lI*w zpSSeSyggr+Rs0KI47viqk6m6U{^!yC?h6C%IhIs!t~pp;cwJR_5oiD!s(H(zRc|1^ zWLQv|yZ!Y(!-Nx>HzofxI;PhvgD0mKFVd-cdv(Tl@XesV-hj@(z7`3q^c=KdWpx8r z@i9^R-dD3;z2W)iaQ$8E<15~EGv)>sF6)yP2lx9g$yR@Ky|{IIqb0<`5cmx=D-?dq zRlB_@yYTO(%!LZ`xejk z&z(E>pqj`7F8r=%bzMK{wr&J~(jW@s4EJ&}Kte0(9(~LG(e7_CLE_ zC9fyVJ*f8LZvJhHcX!^WriV-kS}8Kwy}vVP<&?RT-W>^C3?8|KjvU|cf_eSI!M8;R z0t*iqx~HdaknFR4{pQ8Kw|qAxMN>cCxt??nbRWx-+so?zTfFg(hc)aOwjpleDmbja z--;`=^$m}iGh~j}{idX7`m55%iwpmPE(LXu{c-liwzp<5j~{>!i8t`Q`CzQqGxysa zQ|o5kf(M4jkDU9>d*<81Wy+h3dl_+Iq9|6`JsmA%P0 zgVlEXTS@i!FaJR$IVi?Jt=Ek+=1$7{Fg4tzG&dJkZf}?gEBzNV-~4|tvGwk(^qYnFuFBX!V~6+1bvyC>Jyg8Jb4dlYtkzYA+bGu+^TC!I!_?^o^n z?X16@J-2}Ojd6j)8@q&pGB?-A%_*K|_Pk#Arl(}<-Cf5wipRr76c}>g(`qjic73~} z*Z2EU_-5k_RZKn;}_RfN6-26cJ(G> zt#hExVTevz`V#Ahr?eL>%bpJF$~-Xs!3!<^GoJI=J)Lu-^1baQV~xd(%jb#JmRl=W zFJ7cG(_A0aU@LRm6=(fMzxwThdWr8ecJxd{mZM%*4E7|)iOl^Z_HnudDGJsw7;hE z%$~>RAklSn*MC7X=pRqr=c^T>Q_eZwmYz%6A(Nw;%0emqmmbyj!>>czOKK%PUqI|9f+0+ueQsGM}GnZ#LHQ+PKninePre zYvtI5tH6s?Kr_M6b1o6fA~M>)S^QaYqxyj2P020H&HFxm1r02gxw+2#f5v!Y!8g!S z8Ee@Zk2lq)Ccu2YfEAul&xvq_8rB@)-!s!#DNH|p?%WCMytnHW-ck)uPY;;`S(6Bw z%lt7>dGWUF>o5}@?1#5=%AUQ@kC&@0zo}@geD_!B>&MI9&rN2L5p17R;Pht8`-h+c z^CY-;2)YpP>z%sa7LT&y;Zwi=xZ&aG{%Y6P9>;h)ee1=sGphc--I(`u(u|ttEpMij zgkB9b`~q6{s&x)J{sX#P@XxWzi^c7-@S@)yUi7~`v0Ag3{Ri>gcui> zGnH??MSOY3e$w@4+1>j07AYO(TemIyC90it>}@${4amzN@n*fhh}6XnFInck*nYdQ z@WX?HHzj|13HIOpuvuej*Z-f3J0I6cEltuiTvaPk^l-(Bbt})FTcNS}{ciiPnhl_6 zuUkG>%v!!I1D;^v3y&PEKmL6G&t%o=)u2mi=YRIvW1M_R{_mT^=4nS}>!0({%CfKe z`cm}x{O{92_e+7M$d2`crdKsY9)aqtfT!0vAl2;x+Ye8mGfTG`nf?D1eYv0i9&|ge z@7a$xwqD;-VODtODrn8X%Doynj#6+kG_-&ij2l zVsB0;Xq6pvpQY9>`I;P1f%)y-Zo}{8`_G^AxV|}lzr>HP>tRzNNM?3|)*sir`hbqCmYhFV`|ID27js#2W3K#ryWzKkl1odPL2&?&pse zYiG{>I`?S)`A+k=85iALW!=FulllL0%iLTw%}kG7dA;s5XpHjDxfL2AKes|#sV5$I zLMNeBe%uk)@0KmUt!k|td-zvdMa`f7Z7+8B_wCk_dLJ8;o2K46lofR=>Wb%vS&P5NKfiXZ(HP*I{}$7rkE>zttq| z&%1-51$&@XuP;tygDQ#5$;aI`?gXWt1>XAIyWZV}W$Xo);VnWV>#vit7e)Iw@0#iz zcBJ@w-@R4YK6^jMCq2D1b#2I%Lhx*4^@Ek5Qs-thc+7sv+==U==i7bU`S~1dRJXzJ zID-Tv^PI}qefL}U;Wi%7e6^OVP2J=DZX0)Iu3mTf&K(*5d!M?)R=qj^D%8LI)ex~^ z%JbE~Q&PMpJ~g54$n|rb|Igl=%l10*TBY3o`KsJ*9xOV6Dw|B0ExfX&85eGB6%)C= z@a0UoUCX0(3wkf|Ie#tma_Hj*g@ms`YlGiTkY(!Z(zu`_c-DzyQZ0Wr8C38 z(0Vb)^qzf+x2*rngf|W|r>O0 z?EdiUb@GP|iLho_Kqb7QJ-@Hw@%N+?h0dFdFTK6coddR7H;pRtY9S1FUdbdOH@Z-zzf8lFaL*_9;FBJN+n1Al?mln@2 zFWzK)$#nMF8HNx0>h>=WTz~YUx!}IUbJ?vuC?-A?$cpMo|$s9KUv4yT_+kHcgH}X zd}_{*lgf_{+5dh0rpN2$%U4~g!OK(9mt?<}5fSf~gWrNW6<+lHeIgwGH?-zKN&d+< zuith@3h%RCQ2y`Lx%V!6+{CEe}5SFZgz2Qa6JhPvsqpcVzYjjW&hJV*+@6}gqUkG*&yGi7d|ruTBcUgzrXsp(68|1hnWQJ+^= z1#8lT!1qjS@raJDu1Wmzza!(c-pTF1UdA7nmcE{z?&5N!?davlTfc%9+FJjsJ%0TC z|D*Ni&#jm;@9*#AmwUgbffCP)j{E=n&0!^*!%|qG;m{pZ^0vP3d+mcIZ+c4ZvhPYh z_vH3w z>)4rmEG1p!;U($)qHksA!t*yLJbyEV*S+2*QFLd*o1T*0arY%p%gvoJw=iO}`dz8^ zZ}O+kd6a)!alf0t{*5sxf>NKJsz^Q9^rojo*{!dqKfV~g_9g^g2FWbspHo>kr}|;* zP063L1UIYyO*Wa``)1PNSGHU1#r~c4-)wvdbdi#H-jDg9L{$G~$BOS?K{50t{$Hw$ z`JWbe0sIP?&i9-4ox$fUbgh+R*KQXx zK7N1B+>igS=9ndYds5#8PDe}Y|9yQSQxj9>wp3?ld6vwby`a^d?)z&>=af8?gau|n z2z9@iCuaSh9sBXimHHFsD%|TzpZf-` zmdvYv)TMvqx7`chwQIM$o4&tiuKu10b0=necXS1-Sjxvz*ECwc&)JIz^BaeBtbT9a+>h(NmdSUp^8d52 zR*sK8A{zhyc1HH+A3LT#>z9`Qdhgzw9>%NH9};wC7UldihMpvvVd`H1scsjzrupu$ zopm;?>{vtO{)EIm{|=pc)1$oU%SFzO*{}QF^pvR2D=O;Ql~z*bw)D;IZMyR+Uo3pn z!?^X!JuJZ@L|1PzW^?f`_dhf1%iT9U(`HzHe6Q3u_wKjo zT~F@UsQ-ydrW3$DL=)5Ey2{PeVnZxh|&1+EdIJWK1_Y5A+_*Cyj%cMrAK zi{1TQmYTlh$g=c#ebd9&pFQVcUUK8YjyJz%!xD{2Wl`C&h8fk*XJlMi^?x_yoEQc+ zL~#~yeO~Uynqynu^wfQQcFuO=lZA#iC3Q_}&-ezuUJc4TA^*X=B)03>J$cka}=7xka{>{I4@V>@B)#Jne!>BlXn|C#-!$E&jT?X8N+cX!_O)NO>f z*dPt5084mb#(&NJZ$Zx84Tjc>m%gg~I>YeYwKqL=!LMyaKFiIRG&iv2^!{)0i}x-z zwq6|ctY21q>$`bxdZxX)w_ShQ-yiC*>=NJ!H_(4s|6Wz8Ubiy0(`%}V!uIU^y7Wy? z-PTVZcPIbOjt2GR?K53!p56LCX>OoqtaaIuRqb-8&Sk7T`u&dZ-QVBfm4Yg)Aak(4 z`SH}Oi0ui9Wp3UwFRUbr-~EgO#ir%Iz6`V3Hzi-{?fK>Z*!HmhxpOO~hK zs)Pp%n;(BRzXQtCwe5UIAMJjB?p#La&*Woni{lVgHoW&!cjfL@burs-4rRv#Z~nZs zts?E$l{Y<%rp15G2EJaKn!d#P`y%egQ|iB-1Vv2Vvo$yN{oDDbNBPsIJ(V9{f!2&c zBPJ6bj_1Yx{%PNs{(IeAHTTcdv)E(O*i(GC6>8$#ryyL zZL#6ILz&wy{<&W#{d=Sw>GO!yZ`+%EaOhJdR6jl&@!|4&P)qIDkK2oHW~8Mr`Mp>FU!Y9=r@kNB+s)-fVntnz>m{ z$Mdu^@PaqF4b~jzS#Y!bt{D5bY5&>I-VFX{`RXgEeY(wVyNTJF2+(eb3lAI%pT39& zl|R=mOLxE9r*8c?cV_kTxfgRxU=6efGhp+;49qL8Rck!6HBhyFyuGUQZ}-PPdya21 z?lLNVQ@&{Za(!#%yYFjWO*Z`WcseK;x&3VfZ(mz;_S}!PaWzGLIkjc*Hib+uEVdIG z*4F%acjMoyX>WQCXI+stEdEoz*|_WS*7WE#Gk%_a(^Hb0n_GC4_dY1sq-~b`e7v_G zRQwc0Y@K&6!Xh&W*65Qdh8d}Fa1G~namydo-&R_FJhuAvX5+3eU#{%$US}H%+IaW> zVeq5L^G8U`uP%0vMRi%(vBb4|{{MS%Yo9G_`k@bA_Do3lyld&k#Gj|$^xVHt z`yk-V&gXq^dXlbY*BU-|FHZxt!R&Y2vGL1Jn;WRft?t*g@7=pMJ@+@%KR*}obMt)I zfYSlPld!sfl8=0O@RzS&Qq%v$7uVaFR`I<#eNN-nE=&Gnucgh?)0b4A|Mq~>u=9q z_`9lV@lBgQ3_Gvg7ViD^u)eRh*7o9>>-_(>-n+MAzpMY=YvNny9p2CStvS73>E4}R zm!h|QI(Mb2>hVhXKMJ7E`kN^cpKom0{$~!PwrBXeKKIFq&$b((Q(_hDZ2Yof%61iQ zSF&s`7AM?K+`s(Zb?LjY)oeSUQ`Zezu<>AUh%qoQG&F5VhaT1g6Jq$^56dbrA(11n zSb~XgCBdfeU?QxrJ`hZx0lrcaCgK3UP#7k%KmitKFp&TOSS<__(dZa;4lFE2LkAWT z3=E@b2N4#dISUaMqvZ}FEEq;oseB>I(iOHA04WF<7#K$DFGP5ZR;P%t7_CkbVKG{r zBEn*{Iz@y9-K*0B{}b=`fwzRQ{fzcccCUnvbAp|8paZ?%p$t3w4lK{Wz|g}1y+a%( zV4ws&Zww|dY6!zhWOh(37fxz!F9k6dt+^>?dKBWv|L$QQl19ZwADv;m;JzNjUXJ`HKJqX+&d7YzTYc_<30E1Lzi#kSk@t=&sUM_xGA~8ERQR#{ zs)(@TYD-P0TP7>h-cL}AlH=nz?>CE-b=a!f2pKXt?`Eu}n-3#Vv@d-Z;MX1o0VGk{ieG7onP_O|7S~7yuJ03`}fT6>DMNA z-)4uav{@3pJN5f*eY>BJ&F_~#tiJzm``vw&#j(%)jX(eCH{yjWv{)aXoA&wI$EU07 z?ROXdUd)Y(=ia{mbIXVFLkHfT zd|CZ^*S^p7GeNNfQERhidY^uL?V~s6-uD0h`@#Oufw$kz&i;N+gaabaz`*e5%ifZo zKTgG;Klks`^WW^J|H@xqH+SEL`Cm`Zto)>K8LqD3bM*81zmH!Nx8MJ@JwH9o?ECre z#_#(z1mG&_;->vPnzsGVzkm17o;g!iU6q_>Yk5ZtF8@IA&W*hKVxwYxo|x%>Z@1rN zhD+IWmEPQAY`i&U|G#6#<=@@Yjf+bj_`;KXzK*(sy5< zmo_(EzKRnrT)_D4blK)}RbMYy!^Ilhx9hx~dUnm};&wSiG}`PceO6&?>@Qn|2#*5B zYd@c+P1{-WLKd$30BgjvOV2Jy!vz|;m3dfTyas_p1sI#5g@c(9#!+yQK$xp|2;p!J zK{mJ}96AgTLFm-d2-D0Upfqa5Xh1QHrYHsmhS7Y%z%W{XFpQS83=E_71p~uq#mX?+ zJYZm87;PSmHV;7U<;!|=E0xtz1F>(UfaBO z`G5cUl@*tCyszm*ZhPw3{Md4yk)V$gho`exi?mQ$#D#7}fn^MPBTCHAwmvI*$!fC3 z`?8Ld(5wqfE-Nc0r^;D?TNp@h@2yq;W2* zjs(PzS&6_w#L(ENMWFC*7!5j5FpMS!P$-Nh22dyrlOkxsx}AAo?^sk%Ieb|2`#b+* zZj-9Qv%IG*iP)l%x^~9vYar={$tvKo)4^SP(wo6@T*n|JS}Af1fj@-sx+L z{{Nd|U8c77(`)VIOj${WkcQ?LH3V7h1)y}8R&A&8aQw5(Dct&Q~YP0L$d8q?AyZ(JTefj?F z*(y78e}5BcU0FVrPtGT5?aJ36Hy*Hb1Q+QIeWBW2ced5u-grLREOv@2x7e9P_w<#U ze0KgnaHYSeSM}+W%qFmgo9<8zr3W7!-I;TESMvPdRaHfIMW>$!>6myiB`4=q`mD86 z&OV#@5R;<+CRqu7_t6RY^LFs-Ze*c)@O%jcLu zY7(n!xwp6bNA1qJ`)f_at`fdomfl;VPA+s-uUqG1WN7&MEyy(t%l)CQ*;4rQ)SB4J zhfBUzt(`V|d*00EzH@$0A0%9|*s0y*4KWfPq!aV*?pynIdi?gdt-7tRTPCYKJve!W z*pEe>A8%%Zr-Wu0LY+M2-MV#mwxoK;Ro^YmogcZq#&zHOt?N%NYHT#VadV|+mr{7l z2DSUeM|*eHUcPqb^}Crn4@>txIdS2nz5T@*JIld7+Ptjd=<0h>=Sqb^PA=H>?EClU z*WTX#lxrS0f9vV+IalT>FIN6}W%|4G?)K&RWpD0I-(>T9pVsceuc|)}uFmt_Yw^o` zpTEqF$^UDgL3W^+-9kVMh_n5j=W!3d{JM&mU zR;9&Uk1+=^7?vmhd~~$(ZRz!ASFgv+Rpl1*$$tN5-@lsQr{m}4?|gTw=HbNk&*s0| zr`~V(J0@!FW&XQoTcW!56ditg+^NxXQ|8I8oS02E{qOJB{?fOwvDo`udaj}2hUL4p z_y4HPKl|ZDMBTsse?Qjzd=E}@#;%Y^DZaFdd)m{p+wabr9$%UI?CaOL*CO}E-rZUG z`r4g}r=pclW~P7s=U;2}-TvDTp3~)rJ10Hx^&HkEm zbB7_=d7o6f)8E_)zUnp8-|p{+!s~4HrT^F2l)h-aY`0rR(o;=ME1O%qeEZESvlfOt zy0a_y_BRpNiBX_blsorz8OZd6V>7`y`GDoi2M;DjT34s!=p;XWyt(XONloGPV9S#8 z1>52_=&>K~dou6&zG=^VVrr|G{Q7?Va`fqKtHqxi|1bLW@bKn~O_iUEt}dM}^SkD+ z==A6LcE2|EY~}O>%_1Jy=>ZF}|G&%MpVqy-?dk3Ox=OQ{io~u*U-Wm{8re+hzxVs+ zpU<}C&p%xFz*AEB>(r(*kAIgx|M+)z`iBcD%~!8;Z~ zKlkU~zvTJTbz^4eiszmYm#@uvHw$EAgQObNOPPBvp4fk#CBke{q_gK3SFf+4HT}W2fti$C|7xJ3KY~neXKV+$SToYTgp?)a~<0k3`p3 zWm{ecPevc`iQ1bJS@-m9{^?bzr?pmutM^Y;JSb*JoVXrw{@y(#DAq@+$Q z-&ay^SM~n+=Is0XjIStyQqGw@zuJ1E>x{+EB=!@P5HPd|7V85O!F==LxYf^}-~VL`%Ab?D zSn4+Kn>P>S!Jjj??@1Ng1uDxLZmNS*jf4BG@)reib-!kMzD^bv-ueAu`?Cd$cZQou zW!iquxn%Wm&5@|RE9{a}RE|d0{Vm#j^^ASpvv)E!MNg)jzhQ4NgTMCMI>|SnH7N|| z=D=#xw9}vf+!j}Iu`oNn>di(OIlHf&mCrX79Y1$UyCpv4z1F8quctjZdw;tgzkPwm z`=9y#zI7Q%N~x=-UU|Lw`U{>PA7aa&KA!)-Ca&=6x0>H)_0Qkpp0-?L)!{zA1PUo1Xu zCvQ`v!f*HSh)kJD`Ki6tx36uB+iUUv-S=&>+^lMz<^HqR^PM(&9+k81X4cbt?s6yh z|3AI|)aBjf{;TZ&90~sU_W#H0JKtYC-ogZm^cNh^+H1`wo#N-r{Bpnl9CepJd*Q?j znKBc1sk2ks*|oh-Py7DtdR@9Vo0v@f&J+9gCQm&t{`pbH=i%O$k_K|(#lC7121sy^7{kMq;qz+ z9Y6M|e*bgZ$Xx}Aa#f#J?#xTi)atx=!_2=Y5|rbA-T8OQ)-^vq$l6?; zP3`2mzrR1<_)t$(&(GDFnP*Oou5v%FJzaliPMw(UJIil7Z|W3(m#zNH|Gv`f z_xI5EC;v2FexIIW^YlT2k@t(dkVw=j!>*;T{K6NQQk$?Covu4)G z2MarEzBKRtRR8bY&NnrADX$J6JLb2s(@0Xr=jWk)Q=FYApJwM*+g-LaqA;=RsrVT` zhflBVzJECU^WgRRXg77Ko$oguPk-+UvfjWQ(z}1)V_`Gnn(=v+wVVDLKNi+3f9tig zJim)Od`ZNn6t{J6b*0XR>@7`NbY}j)f5|^@u$QNP_;AE?ZYUq`(u}E>U#*sr^4ghQ zep|b@KXWQbv)ZxXHE~l#Hc#fWu`!wQz3!2)q@?Wm8x^xpc7Uuc;M0!#xN5uKM_&~% z_m-O4rK&gCo{J6l)_#7zbX!*GrTgWt-s?^N^w2%X@AKWgwOf07x2cJDDQ!J%u73Bf zy4{kSK0B-ZPyPM9oX^Ft$~`E0w^`(-A5Xr6jAJ-{<=HM!%rd+vc{)#gnLL-zB;~`I zwjWbY)&35){PcdwmY{i0o-Ojw+m)hV|J8f;=hgf7s%~AivLSV5(HoUzZ+PqXe&73h znK+lvB%{o?b&8p0%eV7`O!j!Bl?b9|#GXw%#mw%X|G#hU$qNNtrmH7a)kfVuUCTZx z?dX&J(^p*Wim5$3Y0t~G*~MRby)WO6KK*a+S*)KiW%Tr5v*z*R z!O{EmURri$*G!)B__6zP(QTHy*YBSfes7;r{;zvmZz9OnwASL6^-=_v+zgi?^*+Pq z6*fi@JMUe;KE3?^vE7?1K0dPfd*$-a-{1e%zT5l!-l>K=hKCPp?*Fzm<#C(H-@od0 zKkwD%t~ZFQa`gW<|9@F-*!tOz=4^YouPY*9@yt&S@+&7<}A zs%@>Z{r_}*opyZfr_+<=W#lZSR;{_}SD^+9>JPk-GRk1Ko0i)<)tj4gv#04qPFkc< zba7etr|$iKx+_04vVVSF|Lu9@zn{-<%Z2-yOj>U{b4~p8q=!w9yVn{?%6VoN7)Z)l zNv&CZ;coD0>;HE}gWH(c`F)pM%$Uq0Bk5~tH*eAI=NWDVHA-uj&(Hk5dEbil+wJfF z>)QS#I`3ECm8|*iZ?hT#?t}A6A-3o>@@6}U#{6nVc?fq#l-EWd# z|9Jn|RZp|kubQpfY4WuyeAe0gS$PrD+|P@G3$lhx$iQ5~O{0q*yMI?)UmG93(=Pws zo_g)p|nywo+@!q?8JoUu}2A-C7 zfu)6pphz=dg(hI#Ubo#b3DaUP)Fs6Sid0@*9Y6K!>+8??>;Cg^Dn5Sh6?^p4El!P| zMW3~&r~hodD*WTy8>zFh@^>fu*JOmx`xQ0Y;gQLgZ{ME1wg2$#&c9u^jSF{7J6yeb z{_EFo{p;^Lw7F~FyE#Kf4BQu621~F@a?JYuuC3mX@o{m;HIR|Nq%P2kZYe z+kE<~JC!W8*HUHtlnVgSwV|EzW|1GwkyL$c3 zUoUoN2ix1%CnSE8y<@yHz|a-Ees9JsNMqp4G_!>Vs`k!Xw{G(9th}3>Qh#2J|9|z* zMfrb$@BZG|yZowOc(|_iE;gfG`_DYwxUuHb{PO3I|L@Q~Z)-azZ1vfU!@(O;UQXKc z`}+O4-Da^RIcqHr)*h&}t-abR`39W6&WS@)fAp=ETf27e4!+_yVM=vpV`Jl<&#~{% z%>R3G{?oqty^p8de))d&^Na1EjPNf*uHuD*np)J<^P;Xr4?q2zlDg@4>%`2x$xl~J zt^B@zzxC?tYwYs=x_sPMwfAiJ)Z9Z;L2>3#4YkUe_&ftO^GJVx|GHPp>$UFM z-u-#xxZT80vzdy&R@uJ3w*K_m?RRG#m#?-dzhC-&i7_9)-xL0SPfq9Fzj!_Td}#Ev zXH&PYIU_n-{P|z`Dy#p`=g*t@<<6m2?&7<=*Pnm>esA{Sc0T!NaNJy4|0hTvd@@h3qqked`>3Hh?x#cNsH)L4J}x$TWR-~azefBL@z4tAf;%bz`Q z!h?;Ctq9a-{dT=RT5oqwao3^~^Z%WkKkv)Ttx*$0wVyxTHe2t^>GiSmRJ*JDul}lD zeYk3G?cSdk<^NCobAkVV!n@t?_t|{@VjQ`%C^c`-%VS@@e-D4Bxw>6g?sAT)_Vwk) zk>FO1g%`Mo!Z7K}wcSM@Cvk6HQ}4)jy#4c!Mq5iGyQ->ov8|_`rfshDI(R^3<<;z; z|KuyGvavGu=DyU-xXRC`VyaFqD!Ho8{(-Gs zP3!x&FJG2~tzMcQ=byLl>9adEr_ZX_#7EBkZN2Q`in{RIC90rcxd3g8KHu9tJ!Z!C z{JoZ|#dQ2WepR@2aO1;2hn2rSnJB7+am|Uw0k>`X_i%A*~G1PViUL4x;MU; zLi7J`jnB`w&9D0V>rTz#*2qme(odDYxnmo&b6>{AMOR*5z07jkGSHx4O)SS}6{kLs zod-TbS_&5HV=Xpl*jK*Yo|5Q)zwmW;_4B8)xAV?=B-?y{U-#__-}T)-?SvzY!FIp34soyR3ZOOl{osDb5X4d{b{^_YZ z-;>q-va4*8zrMPv+4a)*Q+9Fi2SerL!&h5(LGqi=bO`-?>uvp8R+=I|7Oji2&EN6l zRZZ&o&zV!!zLd9fUGetBMCHr&?^R-p-~d~x;p%+>H5FZ zgzdtoo%~Uu?R>cR&0YIh;@^6oow#sh%EANh-o4AYy)XBc?bc;GEGtuTRL-W&X5R$~ z-~=dbkuT~RwA%NtXk_3OqqEV){hF`8mhC(sV^i?q3ZE^fYv7aL_djmS*`M{hXMXMJ z-0dk(S53Wq@48HWytJgO*Wy@%4eu_22a;y!K?>t@(Y;~D)@=MfKhNBIcvwy<}?$iB$DRob;*QtibR37DAuDmUH{q^G0x!a$F*Z&RQTyXJF=KFlp z$(#PZJz{CG!#?#YvujWZWK@OW^3!NjPz;>Q?w7wY`Fq{dbv5s&nlD?w`uUBj%~wyU z&#TgyU-xa|MK29+^3KF;F-JW$jzPx(foua3j?A(`6T@*=^X6JjmR`1I0Nrf%>%v zN;tt2U`p`NXS!z|9PxN}`>)SD%O6h5BudJQZu#)s*ulPta~E9pRPCL2c6#o)XQ$1U-^@uXC@|Pv_U_cX*xkh+9vtlH=~<$4`peg^sV66? zMsCjY4O<^Kx3RJDa(#LHrR^q?nZ_!G?;G#Fo#p3e+5_$fJvW5Js>i28A0GbsEX;rA z&%xjrRU1RY!edR1`l0KugPLkOaeFML#~1#TtbD#F^yH0)OH2)SemnFpc4~Fkx^+v; zb_OrD&z_kZ6>hX))2_0L7XeSJENv$7^q)xz z2PwQT6Pj4XL~XAgJfKqfZD#uU1oh(e`I(ol+E>vFZVMP<^Uplje$ zhBPcUuiR~|xoUq~^{bQ1&*kVBul0BqYf;KQpeW4Th+N(;;CvJbuypH<)?Q9Vw@Fk(16Pv=$ zueSD8VdMJx!>=!2zFgd9ZMD1P{QR1^1(Vjq*B0vSuc-dIY~sa~loVJTC_v)Cc&$$G zww>R~Zf;85`E%Or^99c7^P|EqnXXUTyW;6p^F4O1T_=xj@~QlA;f*+|M3-@6j3aE648dd!GNf@q4{OYUH!6_kZ2` zbHxAe5y{&6@}ox%sJwjn?&Q|!{B!N^fBg2`T2y0m^hAcy`m<>uV;vy%a$3mDln)-M znO|RBy}9M(qG0Q7I-jTN*QgWm^*);@!D$_ zUsjjjt4yzZ;a;y{Yiql_ByRJ~Gtb}ut&yvFa8TuBsQzxP>v83|SzEtNpLXTbaqZzoIG`D_PU+VrZm-@O*5|l`2Vk~ z-M5SVvfQ6)Uo^{~x_UikZu!2~b6>uHKmXfI_dc1EA3l88c)qvOjqi>91n%%Si?^GP z9Xs|Z{@(-s&pWH%`9{k5{;Yj6-)@q0{w_oN-{K&(r^FAfOFD}ZAB$2n$eT5buT($dOfz-EB)R_{qiTu|Nl%( zUU=Zi3zmcWbq~9L#=rj^zr5sGGr!G@h04yy?fiXwp4>Zsx7sVc_5-v08Qb#ucM%#N zj{bZ1@6FwxAMERPyxq5G-j!QVR9=5w7qc(3I(4m#wC~M~5b)F%12ok{9#)=u`t!51 zr`vj^{a&8%uYYwpH@m$4+q$0qe*f2d{{H^<{QbXg@731UKluCK+Pdt`jBAm-Zp!7g z&(>}GYHeSdeyVGAQ+&v3Ikg!oJKrqQ&5gU|b8OXeBhUyn10?7T7N43PbN+Ww_Vu-A z|NQ*Cyf$w2)l&~19^CeI;>C+S{c~dsHr&j4ws5`8l>Z;1|0`OTznK$aU+^HI?)Uxw zW&3`#>Zc_wdQ^AcES-;^f9qO)Uf!iwv$m}jk9~VSuK3}xFWGUVP z_kSKM`5w~$?e)u-CtsOne>%int^NA-we{Y6?>*c1K;@`N{jNPJ4>#$^L`)GsrtQ?Q z7!nc}`XH^OGgH#EQ)hctzrMEK_G$9{569l0c>eycliPkxp78b8KhMqob?(aRx0g%H z|GZxQX?p#~>6+T_KI?WV@BZ3HyIPVZZe2m+{&#?en(3W9C(V+gbB&-ub0r ztDl~||Ml6a&)tho%>H+F_NNQZ{HaNQe$3yye7So5FZ29apVGCvzHN(5%5 zcdLspudFo!h1?wf7*!q+!#H)(#4W3sD^_1$WBD{$|87m@y`S9g&wLU+-M>~hVuOPH zFJb#xv-5Ulp4z*+{Ou|p)^FdxJbwpr_JVvXc%~gt&f~*|7WrNnbPa=F3@6V0 z{mrN9TWfQ5KR0V!-O;B%AKU+aoU^Oqvgh~hiI3ZIZtQrt#HrCU$ZYvK{g?}C0XMVe zT7*KH60qSW&9$#q=f3`0^^Et7_2IKM&i?-Xc@;l-kFVYPKluNY=kYfx-+aF3{QL9v z`9BU6o{uU2TdFSWU=zAln1z}B*YoW+BbKe%u}u;brUg?CK-8HzW(PryT@ly9w%L~V ze9iAq`Tp;0_2&Bf|5Q%ybN>B#cm3z%JChzSU3vXg<%^Z>#VIK-ZhYnz(>tLZ|MgVl z`_*gYHdXlem*;mavMA&IzUO3nL%pmr@mdy+A5MMys8A^ z)DR&aaCIIT_UsMEhPwridBOd|FJHcFsa>{uwf6n*+qOS5U0-{4&G+DG>gT>~je07w zfB(+8hrmIYt{u(^YUF_26I+n{h~@j!d5W%qPonp~{g!iQi)Q_Q`}@;>?=PvB>Rr6| zYSz}Ao4Zu=f6m+f~)4f{OD4mC$Z>+9?sst($bt$H+gQuqgZ0uOCMuzV2Hz?@}muP9(q+Qt6*# zICvmyt1t`m?6qm7jv4}>WOoY^mkiH*_NKq8TJ3AFVG1`m47NeTv~9~=t_YEr@7~#M zK08PG)!yLixBvP*1<#2ru!UAximtO?mTg_+k^i1ksNnfZVOHkdyH~q&O-s!d0}n1Y zoP)KcmWIlPX|pijUiDSwsL1`GvhuAvvm^A7UD6;K{=Ck{w<4b5^}j#;spQtWemcy! za4tA!!IJCDOBo@0`f;0n@R%3ny_Cv`k2ct_V%LS7WjV#A#vmi-yodUESx;}Mo__SU zH(-@=9zh}3#kO&?Z965RTMkaU4x&(>bEXFM^@mRjTNhQ@HrsN0$yfEQRi(KXo0hJ; zs=?xv=(THA~lC)^kwyLcO4??=4F4^wiwXNderIPZmA>y}v zGQffVc`meCYDg+E$t>Rd_Lb@C+wWF?Em>M!7oTOD>-KD}dX-q%dVPtADf{mId-Z4r zqN9rxqS$o^0ORGjHZIkgFfaBqxFM#+inq9aa)MYL0%=iP(^E zsp|fxR>_F%I4p>6dx!?606-F0V=)~3?eLDHtuP_~->wD&%dVczI1yh{=Y@a8$rb?@~YR89c z<4ghPkDoq}laA807x~K1lXxxNK?>v2#z!%S&q_H$U64^I=9YJxUirGW-D)!eIsQS7Dx@Q^eDOt(wpHsl?=3n#_2o;; zf2ST))qfQ|q&a!vbG|v@ird3hPmSGOmi|LE`2Vh3JZyVX4vS8G{q#r0smpuM$HCSD zeEfJb13bTSE)vp$DUdp~@ZprRVX1F-Nw1r|<(iD7zt*ODVRtv9!ViCTifzA{^UVL> z3;$2t_P;+@UbntKb@{w1Ezhq<4yf!*y8P{1yR2RP`gm|Dss%OBicfxB%)9sR&tJ=p zR$tpMFLm<8y~pe2^k%P>sVvGr^*JNz!MnS=i;wTWGjZd_jc;ylR)7Ed_V=Yar?(wE zV5)7NcJdJSs_xu%MPNfePlcr9Ijho)pC)|Wvg@?o{W-4PV!nD)Qu*w68Mn*do_bN7 zFTLV;qFC0t}m3SN=awi zzfHaO;YP{#xfK}}`+r;SpDzEeQT|;0-^c%Fxy`nFerl0xchTWqbD7_FGE9o@*M48R zLiOvsSGKp!;-h0VPCw~*-2#qMS4dFJi9hw}MafP#@;{+- zZ{~U3owYT4Q_|5-GhhD~`SR_H-1nc4<^NXX?fg2;^3}3iZN1W$u3jz8nf378T3bT z#m>gF>-~9UWPNwm*Pl|K@AvbFux3Bc{5w0(rk&dO@zkwrxzWL^W&dA|Ub}i;W2yJ% z7hP9p)?fT|<@YZC-|4f#oj6tR=`z3nTnLvtH8FD5s`3{X7J{Z3B;~Aj-oM-Z>-VqA zx4-u?Jic(@B4^KAH8wHViKor-*6R70OzM2~Uk;oj_d)8%1<6yZzb&cxv@#{-$qSR6 zn(}(VeElH)6#X~0A0IAGc0b%Ix-HMvZco^i?8rT(xzF-r=I!GaOG$WpNoQ|X?W@1J zLIuVN|C)Z@+?IQLFe^_uWe6C+$H`+c6-?Cm!}TgT6+0)?kuzTZ9jLMx1M+3 z@bUW}|8MU8tYP`?*SqiYSH-2@7w?@m^Wr}JYe_dZvEDnVoxsfG)F3eJfb+F#{qw4p zoGK5WwORPf6gRRTl2VX3E^+$?+xi>Ra&KPSr@uH>IrH1r^kvsq{cfKy(ZqJ~yLqox zUOV%Po;7;&7cFX42kfrr zZdjlH#QV_6=EkX^Q&+86vE#*z{VMh^x8D16#fr^MDUg?k=fu94>xaFwSMJ%-SF-Ep z(pCHR#kD2w`TI3^f0b7|pPX0b+iz=c>sKvnJI3a@n4S4^6YHwAYrN||HBA6lDhvz; zGa<==f#JXrp>A(o-Jn^$Ozj(UZ>FC+)pvaIoXH}dcH6csT=;O&f;lQbxtcxK`?@4e z*G+yuZ||==%m2H~|8qnA>xsktOGNqhd^zR)y6Dg$SMIGfM?Y=f-{-b?*Z=wN!#}Tl z7I^*Zw{Nd*rqA2^;zrl%usN$QD`&O@@gBbLMRW6{d7G6d7Av=c$^{0722W^*l7T^O z+Pu7*8&wkR=5kLxJI6Fw{$DfyYwr4gthFzc<%66be^9u8dy(PF<>@~@x;S;I@_)T* zel5PnzhBeepptt}#Q&$(cmBTWj9u#Dp-?}~aj_JlFDnB{y zZTwJS^XrDX-LgfC7H#h@EiHX{y8d_S-mk}^y;Ot_U*lT;}Zi>+9wH*JfT$ zzZaK3Ynk1Shs~cVY$lznjcGG1x_o@ss+TAIBeuPX2x+VTavoIwFfcI8c)zc)9S>>*}SN*-v$WzsaCoW#QQ}Wptl-Q>I*(~qq7`O0KGwVrzH%POVfq|g}+_eE^ z#EBkqH%^~FAD)~0c7^wHzqwlb@2@YYs1UcZmfOFhG1jK?hmHi#ss#@o9hjv);g9GX z(N67?PaZ7+B`s6gtV_?fo6TQ+eB0Mo$HKSP->=*I`dfMC*Q={TgM$}0HZtbk-xk|% z^QR*!I!b@lYuopG)wj;>y}0S=>5~8Z|8~p$fBLxU-OT4AT&b5n&wr0Mk=wC(bFls2kN#gT%l|Jq zvb8Pog|htLj;!T9ay=zMiHQsCK3(j8v5)`G@>uKgmlqB?zj|XM{%G}@HCI4oP0Gtj zf$oa@zt89g#)PPCohPwRM@&AK3%oXffx$o%(qjY#Yr6NxikOcTpZc06x!IckdGtiN z!Q0ELP1d;fcJo5BMtn<%qDR`K{)YxG6S$+P+SEj4KesJc0{bJ(cO>3TPz2dj> zYP;PY$LnjN)i3YaRQ2NKx2Ll;pRu=tY>O6yg}%W{c=6qm9y#sY9J|M7(zfYVw;06L z)&1L$e2inEjrGJ^5)V_>MO99nrWd{Huy6a;+S_Ha)>S^WwY8sq)~s5+`tl~x(_3ne zep>Q1#!&C`M;7MFll~Fcc7`l;v;p@l85kyuLz;#R3<|n!Jh%O3MSuQT>!~NNxS(w3 zw2J8uzgC&nAFMeWZ&2^^`-w{Qrpf90_n&?K<$k|mA9&o0fnmlGM7S99I3G+1IHnQ% zBTzu*bmu+9n;d$P zjQ94)%5{qF{bSncqVuxwuz`y5=fVq+lyblYI+wt}AlznnsN!aY(z*zp$_a1wB*e{Y zYE1Yv`62hDtTs0pW*JGDI)3eGd;Z?_P;~M5c-psknnq+x@T2+2GovT-75vab!Ch~IUkBBwqm8W#CO?Ud0 zYqV+UjRQ~hx!Wh#*KNx*@RWd%0E-(5WYNjL`n**)t6bK;Ic@E{y=S?mh@XlU2&gew<&o~OEmiey@+R)` zrJt7gTwXkBQqt8c*EH5>36mL7bFtrfR|l@8d(VMwI_P~bj&>QGhufTzaTvIsAw0z*IxG}kJ|3{i^};=OMUsUUGAEG{YP(Aq5ba{WXxLjYT32S zo1apn%I{j8on`AS=l|*AiO0Dsd^bH3m*1S@-EaF{c<+Xno{?o-v0}9+oxw}I85j4wm6(}zt zYj!-kbKN<}e{zV0FV_^0$Ci)Fj(?M_`ZCcyHP&d;jZHeH^RvP}uS~Q3`{eSh{R#Wt z{eJL!YspI?$+l|eipPnW8*+bqocsI!rO&hLRBvw!zJ20-`8M#F5(C2nE*H3yx&mkD z-!@Urt|;HR?wsD*y=8AxnF}_joxK$Q|NQ`-`>?-HQ(y@_v4R(?iXqX zsEJB{_YI{ZR+3MRKY`r3=EH3wA8&wuQ**!Z~F45`21`6eSi30 zy?AjVDfFRBJ&Wy9POWUzyNrZI#y%iNwj62t@(|db+vw!xrb%6#FCEFHwM-*z_QT#gJ zN}Nx|GqG;ty<1xYIkhMLdbV+fiGjl6B_T$4rTd{da7Qa-#DRf9O>V#ct9PDOem}09 z4365Fwe-}f(|WtlPT8dywJ&KW-y7=%`&1kcrwDbnTwA{{blFSEpGwi2l7hCxbCu8K zKH*xmB;xN?b`OpUS+~;kYgV4+vI`0Ir_L{oh$+)iTfD^LD|k@`1H%E9#5MKL z*>1m8frId z&#z1A@2^i;m6>^c4)3;HZL$6=4Vwkq)`^+Q-d}xocYJ8}bIF@!pTe8l5?}P+|37_K z)g=g+zvAltNd-rCwqS}NLh4x_mYY6g;Kp=jk>yytq*{>LxKH*A+(kdo+QX~ z;@zuhlUnXuSy_p2u$a^z{4?d-r>ebCTPh~z?Ru&01xEh%riYbX_A+$<<9tx6`u;vyP0S$-cvJYH7mr0cOV;~ zKpoG?nO<#60zUE8vwxGnaHq03G&p$jr)iB24#m&UUOl`0&YIHeYcDUmZl)>2$G>}> z!uo*I&(@#Y@@b7RZ}8>iCRq>PJiS$$(S2y*!o=%e+IDR%xu-Q%?0Mdbb0)rLSIl0? zYCJvbdE@p;?J|!GC66ARbl&dk1H%cX#fzM{SSHQuc3b@G7jyje zlatkrZ|z>T&CNLdtWVXtmq+#qT7P^xDbw`pt%BdnQzTBt3(HyT%ATWr>P*kB$X^F` z+pjG4yx@IflAiHD@PrTp!;B1gW8;yL@66!k9%+*f%viE+onGzR`TLe#KD*rbR^7)* zM?L$?%eKGFsV;V_?%TffbJ)sdoAh4p+?>1o*v?sJbZ7663VnKVxBV^8T~<(s3roVA z5IL=_&#l<|7Cg=A{`XP){|e>y{v~_APFm{yECz35Y`G^fd~L& z9!cY6o(CUvOy}X_dv%cgUo5}fhXucW{R+Bu?e*7;r>~}Zo;Te-@4`&&ggFJ#&m(2+ zYb{>xJhkan;X1YA^xOU`cRsDSRNQvoe&10@3S!WMuC8HdIC=2()Ij^>D-&kqdavK} zrR(1(|NlYz>t0=#l9Jl>W?S~UIOWSS|7M-trki_nZXElek7Au|U*rAj+&@<6y!?67 zSgfbmbtb2K+n0F%I`ztSx5E=YeLlWl17gns*LlC%j>ebm22Xo2FeKPW#P#aM#qU%x1}Sh#t)uYJWAM_G$q+An`TIuvxb`nCM2=V#yMRlkj0`|FF?iLn<~98 zz1BXp$~5_u&+=2}JaojaCR8}s*3Ny!`&C7LXLTp5@pLVTGiwF+T#RsWc4mI{?tM`F zis;V3U3OlRniywpPWM*33!b`SU@+K;2$NLrGXL#wHm?o(^C{6X#?eM@rm^&rJvQ65 zp>^A_xi8D0%!X{9lN#ESEz_rkgehH&$V>WAk#c5+A7nC(fnoBr>u;fXjp6#w8l&a@ z)3vlxw{G)VIN`{gUhQB7h2&!Uq)EQo2j?V8 zOuDbWc!`T!1d5S^#V@1l8XYv;rw)l$gN<-M1tm%Z9ne>PFukj;Tw`kL%X?~fcNOLQ&)L1D?w2_B)bHEBRn24GHWbhouXJGJAfK2BhL}oa^g8(XM z&#sz+f)9jOX$M#eSdl?s5I$%g*ax{<0$$QcpE3h6ZPY_WWFJDajxksW2U>X;VFR z#0oMz;7Y36`{^gsr(eyV*gvTpF4zs;zr@gB2n*kJ5uFhs6Aw;UbW!o9*j)xjhM5~5 z6}mnubZuiZ$(Z$t{gcQE?Fq-l3wA@gAq_pSs0yD`VX|gnW8KlkiQByy8GH=3rD__P zEI4tYVb8yYCRWu?KRG$T$*Vz|8=6cCj&68V$lF#W(#^9omWv@lsKZ^E%k}mXZkDO> zA$pe|7s6aO1!l?4^V>w_-h@{y@ZXlZJC>IrVN$2-p;x{0LgO4en|`)VO570(sjLpb z>Z*o0Y0=Z1YUg&jOGxuD6im#`*0{2`qQv8;s;H6gE_R5E?xgODg`}bb9zq*u{IZJX zU}a(`a?_Ctj1OP^=;MmpOCi!du%lp3cy7#a`D>fIX-x}Au0YUwV!(>kz8f_TmV#AI zm<@}CIl|p-rWY=&-QILZkCmZeNzUzS4*u;)7dt@uKx%nlIqS)k3Y%4p^Z0IVyFHbG z!NBVFHqlp^;Wlm-khb3wF=$>=NRQ~;;dJ-yCQnu-hIJy_)&}@5U*mG>0XPMO}oBg&4viZc!!A*F3l4+ z_?2&aRq;FXt;H_?=>9jM_XAG6-J~z{p<>IHbza`fLRM{D6S4Ius}>)d$cG9MPZbk^ z&X+m=8~jSXXI`IK_BQL~g#?plWjDn&&wS2)x+iPxoaogvOI2ruMJ`!XGoPt$z0$=U zRZfC)^WKMFekqr0eP!9&_9)T5V|Vp_D;;%pjNQ7&&s*I0Vvpp~RkMTE{IQwe#5n)Z z#2LGGx0fti>hIoHmi2p`@vY74T{lML{jJf`I(_-g>SZhI0_UzupR#JtwupTT!sGUb zZ}jk4_)f9Z+^vh!J=&gj{Pdn zJF(W>5gdI9K~h{_HEb@tFOxhxMO5_F-uHW=wy%v{_-fOmDc5gqTYJ~t??q>C^q1Rf zcc(_a+uNk6zw%0N`2B^er>_q$bj&>UI_LDIe~YcZUV4_k_4R|aaBEAy^>Y^Suc@A% z7ge>k>l0T{oVfRqug@0B{yMrWee2T?^K`;0DveKjmz-Y|xocbDs!z2m|9{_gvBGJ# z-<+$$zx!S|M2CxM@7c3-^QtcgrJrT~-IU4o!$xzxG{^BTkG@T=deO?9l~rb*v#aQ6 z$lmAYT%$H;?bv%6;IJA{Fs`$9m**H7jHubLp zQT5*^lEckJ%_RdKh?>{cEO z$QN6E#%IFL`d!3wLyG)mva27{dGgu{6+2i9Z_}r^L?u4 z=DokNz3$_hxZ7LrFMJg=SzhNtb>6=X>!K?++dR9$=5Dfm&V|GKf9~UxlfGXNn;N*% z?)N+X*V9t3pE3#JFI3(9JY}-npR4s*|6eNeg-)M!>k(7!tJISx6<})tUa9V?s>+RG zT#>SEe%|HsdpDL&wtXzUXl`ius{Ownc&(ikZoRBF=k_&k>sen9DBmvGR$SAZ`T2S1 zYwr0w-9A4L>(7+ePJI1y`m8T=<@YRoH&3yBmG{{~Ownd0;}<>Fg&T zf8AZj0!~>zMbJ99VRue+?cH3jBgf3=7|l}M{QB$l`8)hgQ&s!k{XW%KyX(Jt|LS^! z--(Nsehz!Z|NiHmF0MJXZP&N$UoqeQYpm-r#g5|JpI(0vFRzbbJy>)6+m;+}{{6qC zYoFh27x7Lh-?BDQVpsM-pW39aN`{oCX(9Jb~^d8$a<{j$lIleee8 z5PlywC9Hh!X-@aYRUgD}e>rj5x9_c`(ERI*{cDqY?^Rz{nz^i4InJ3m@b7Q)_^aLe z>Gm0~&VPRS?tJX>)p;|Yzu32Mo}+Eie{ZWTPnRtItu{G4U`=`b3xCt}k5TU5-@eVd zI@x|_{8{(o<`uS5>#wh0^eHQ|$1wpM7!4agTrt=Ax9K)`KQTkYNo^s?kdg~~Cr+Eb z>-*g6FY^DruoHdy+;U%eZSK^(h@BD9{4$~b83#W8U0R&DWq1Ca1^oAaO0xcOJpO&Y z;nKj<&(~jkw`{Ex7r)iM{VFq;t=zxo_v2q*a;2Yq?^_%Fcqz}}3y*$TMp;&GjJv(x z_n{7}Os!n-|L4}>uWP-Zok+G4UolzbvcZ-$>%2a%KK13<$<1An(-!}pA3o#x<-hZ* z+uy~RpT6iYSEbT+*)`pntA5QA+PiCaWT#H=Ej`_nm-p9vy&JWEUE!I#QubZgV%$eX7!rd<PyC69l%U%zUdqx`=^ z|5xv-N^kC+ByvXk%A>31nl?AqZ&u$dZ{pjUs`}(()k`TzwHcicHZTuV#i z;wjhb8RsA7a`9UI=8?O+czw=~rhBDVtK7fu4Jq|(T^GF}X#Jb}iw<^dmX%?a>)%&& zdux<&ZO-B#{dBLwh3jTTEe`LW8)owG&Hjatni}@~d~Tk7^Np7K_q|uvtXvvpwAo8P z$9kp9p_?hOp{@(%emvi8vU%a1i?#Zu^>JHYEua4K>h=E9Wfrm#rh9$n|D3)%G%oth zi+$ooJkG|`udUpm;@`e)PEpN&&99%gJp3FV>Ui)f8KFN`@!dzzn*e`{q?T-6|d#> z()ahG{|A__+k1H9UpHZ%C)qdmT)nleeDWba*4I3TFZ{24zr6JGrqaGQ<(8_fuDhzv z3EA$?p1kPe4CU%7pWyo1&sTS4W%Vlmj`gdo3+T?${`x8K`L1`Yf8%U_EH}?cbZ%At z9eeJ|DW|hDqn3$pn^&;rbzEU!!1w=`WoH?ly%~5*IdewfvQ?{?a;q-yoVZ6dwDs4O z>+iw}Qx_&z_odz1lT}$OCwsH-)<#?H>}A=9pYLC_=a16yZ!%|lZhDJIN?n*K%zpf7 z-Qtb9-f{E&<=S`812?4@mUKaT1qEjl;U+G6s*(>GLowA%YWc7DNvO;?_>em32m*m&>8$4NTXZ)9Ja#nkV%+w)J4UCTQ* zGO;twcjfiZ*74;j`~BC%Et&oNiuI=ORjar@hXe{-kybxvwdwx-nv%8aqK&Rj+#3`c zAFQ)JGwbugX@>7pXSMD7v~>2?f`30+jL*-u-5j*AvE!S3j`Zg^x&D>?e-FQ1weo!4 z_QT$$I`bB-Gp^0Dyk_}q@1Mp6W;Or*2Nq_Q?e>dXRrrr@rr4TER3&#suhFy3B!qOt4J_Of?IcdO6lCf`f1jGcOKd&M?p(WURF zS$>VOFTOS7`_5e7=DhgZFC1K7{yuzLEbHo?js5ZazRy#Q+FG;=q%wGZ#Nx=_Wd6^0 zKYcWvwK1Wlx%c_qzpbxBqfEc)wQj%n-EwMp|KDn(*tW!1=j?y1E_@wiF{{EvN&8{l z56A$3j~}dR&{lFj*Ly*>+y8FyW-so$uU~vww^e&f%C{Rv!pR2y4&)=QrbD!Om_i5Dk zeM|Ymrp|Mi=U@KsWNGrP4q2RVkjs7t-%nXCHf=?l*t=($8U*5rMyKmW7w!|MIZs`ug}S zQQgaSU(S5L=Z`~x{QifwlI!cQ?_s+ty4%`li;n(+?>e)le*D#cXOF{E*Gj&yDf`-P z3Ei!Id#305|ATF-r-+}ik$KtT%AK_(FZWsE{b>7rZgTy**XN4I-Cpp^b!K^fO#SoY zF}x?eE^XSnedU^}8uui1;qJD(dXQlZpCD-1AK0;3*ZZT(mA6J;7T#W0p4#$ZshFAH z^-Y$%l56+Y{@r^{Z1TdVpRcFfG5w(Y`hC%kS!eF-`@|M1GHuD;b0)ld^H0vv37N8Q zxA@s0gXX^KpN#A63J&i93H9IGrLnkvy6DrNyS^^l8M#8ER{qz4Pd(Q{uTRhXcQyI7 z!mBCed+J@?UZ)wEO>L;(=tdeGeHQtYmDJotc}>z zobqgrU$wgmpC*-e?>O-G`ZD`}Tb8Vd=}u1`qE z@_c>sxbk!JgO?s_`?Tfy+FhmlUeEn@Zua)7wysl`-Ye|P$$cgpFn3$RQ|qVvJIvGm z?y1muR0f#}Ob|NNYn}?O?-PPNkKBDPR&n;y&r{q_+yuNPt&86mVCP>o_g3-hc6L$0hEy^JmsQKQ=r3+zBVunY&9voo{8| ztE_#NJZ1C4w%3>W_vqEO?^fQbpHji2>-X9C>#v$wyG{PqJKuctncbwgarfeDs+xlR zyJI0`<&2i1=Vu{n3TBwBsW|giXiHICUdc*pefOcpoWWecBfzWn~ebl+?-KhM{{ z9xYmsX1eVDLjBq6qNc?qY^kc6*`Sgg&%y6;O`Guu8KJG|)F%gk8&;$L@kLMQDk$@)~eXO{I+#p^MnSAYQ@T=nY>6fmwvF1%z==zW;^ zT9xnr_*62pqz)cvyLG3g?boeGQ`XNl+-uT3HRV|HtXW2?U(avLii#9lebUF#b6ykc z%KjMr^{4h8D2+^=%X9ed^#^(X&p}4kCksPIFAU!0+%Eh2?W3zsj$=8j$M4#^b z$um`SrM+`uYM!05XK3Q7>ta)%-8-+k{{H$sOy!5yPdmN;GdMyHJaK^z!1Y*fZ*Kf~ zuwnIgdCxehQdZ`jk{;Yk0>kSRz6Nf5tT}gAlcj{g)FpdN+-^K$E&43U)wJ^Z)alcs z7f(2U+JEsn2ZOKYY94D&IA;8#=*#m-_Al~cx8?4vst4O*Ur>5vla*J)ASRkf-GRCU3HTk1X*rc5cE0n%wEARZtv#>zt zX?A;C(Ec(TULLpLeP%*_e{X#h@qE0w_vwrCOEYfV-R0AK{R7ypgg+nMAo&99!&>I% zu4f4gR{7dd#6aho2ki!U+1so6#Om+FI;7q zF$XqIQl)xRn@b-kRo?dmkQ@_io-B)VT$NHrc+ zUcTFO!m%6oJ{D}tc9>hcvcJTxV1@6r)bx#uzL=VpYD_!k@jUqV?M)HBX@2j#*Do_x z5BmSzKJJ{%{r6>@pJu#+r+0pMdbg3Ae_J)<_QAz@(+egZEO24(o9~x>_TS>&n?iik ztg3Hay;f(9SkzU#8oZEHEce1Cn1+Fw5yk1m?16FPb3WA^f0 zu}wbff5QU{*4FN^_UCI+iMwAL;5_k)drI2vW3s^|@3pStRs0z9A1yE~`Oc7N?t4>7Hicf6%9 z^UJ?KwJ?2y(6n#+X5BMZd1NSiYp*2RW< zccgB=ox11k%j?^h?p?NhzxVFh+tL@#`VzTqsqgLj+23|OUVHXdy_NZ)fQc18=ihtS zuh{W8XZNjNmtPyr(EU4c#XXCOaocS@f4%)S`IY>c-UV-7ew(n(bnCLc?^>txX^Wli zUGS#SIoGOekM`Tr==qikx6k!XJi%^0KcxP9z^&J1`#T%g6gxaXdpQeA3aE_AbR3JCmF_vK7n zWZ18VJI<|h{QIo68PwFU|NFDA=i1h}Z?66G-Fb2E$Eoec)osGQyRX!g>_2>U$@y(M zdw)J!oHt!@{eAtz26yxz#jTGMwBT>h{=@ivH`~0IFHWrpop6mA2FIr|*JA;~S>ke*^ zyFa_~`_cJ(3j$>KzAW!3zI1W(-m0SDU&tA2V^ZC}*YCAu3iU61eUsh4a_QfaW3O{>U;AJ6=XaOt zBT%FFf5p4!uU@=ASy8K#_)>cP+X+vTBwpRle{(6pxLoy+{|VE=ZDh|sDeLvQ|?&sz;!AKmgR%YIz{zGTCyFD>kgt3KUc-=EnZ z?EWp|{Iln>t2AmC?#tWz=}P^svj5yqPrbJSm&gV`VdL)W3~b{nixcJ)+aV|Mzw3GY_uKb-7dAeQO}_WMRX$%X`1rn!6@Ok!U%hSjZNrz(`+sb+ ziZ+(kw-eiz`*P*{KdTQpzbpGNMP7b&`QR#ec76Ll+Z z+`hGP{oXCEob89!=D)FDJ+(M1Bs%WFiMo{)mFb)R{Y=k4xw5T0dYkF%S*FGzQATyi zG4t!5HSGH@oW4u+*0#0F)-K=jV%N-5+7kO2zIxl=UUgmm_S+M2oh~uzv&u3Kc76Ty z^Z0woxQZ{z?$D3i#7CX<~^uJBEJ8lu&njvS1#qm;|HsX>O@9BOY@siE zd4^l)T&e73mb>ze)Nh@Cp%yXEneYiHJnhGu>{zF^=oD-l47vTdA5J%#jU+uPkzhZE?1d7@5bW$HSc}hzspFyxO{Ti z-C4W;MEyLr(D}`=`2Q~Xdw*nHdq0`0|M>Dhi-JxXfM#7lsTtn8YN+OMUY7XG<+_9C zt(zq=dlxdUjkAbOn|4Sh-Fny8dYd20vX*n_8ZO*Ddz;s!XJ$H+CN534xLf7)|J&jH z!S35PFLZbrvwTbVx7@J6xJEI*^Kl0XuXj5CTK)e2tuZ#4m%G|Fm z&{%dq&t{QocUEZV%)NYl`zvbt|GoWRZL0nF1pDtpw|>7eJi9Y%7nj%O%YQFy%d!1F zKl;lX{yDs?^Tc1hzA|y|Y}4$ATCATpeg2-H`l#yN#Qe<9-uX%Xy;^6=%{o3`+P3%CCG+}4-{#r5 zf8Tp$;p6JkKP8jJ&P1(hxW6+mb6f7~t-0r4*Z=<$Z(<-)lyg7jd*$Z~esf=0tPb5Q ze)|0b4ZqWyzHILGf3^DmUtM0;!+me9-`H(id%b^tV7|qorKO>tW-UvuKCbI+e{Yxn z{aahSH@bY=m3!>bw0U=HVm9trDq6fMb=Emn-}XhEe_uOCe_4CHJWVyAJWfUEda=HV zroe~HgL|^v4{!Rruw&o1eErw^>v!JXD0t#z3;Uv5zwS7ShCazYb%x7*{=)Uy0rtON z72o>yhVl3}pEQFjt8Mf5uGsX-D)gF9dCB{EePXts?yg^v`CYp2owZn8{ezh8;M2(& z7{n!C-`}a&y?!ky6)`aA=?iwRT)+G29hqw~f**c5 z-e$4+H<^+ZyRJN8e^3Ldy;RxzH)Q%ub=Dd7c3M0Ewf6`^l7W=uQ$2U zCAYg?r}i1fZ2x`4(e}e?`Ii@FK0YThebK8!HGeJ`>Wr)Y~@b# z>Vs!eq_Vxgh|5Q;+{(SYCsY3PrmvtGm=EH&uU;~J5Ky{urulNO`TxI|Mr~P;=JQ)c z$NRj^{Uz`JW^AsiI==n(%QdONrN7hHU!8KS%kZsme`M9?leSe4)uTn_IxIqBv(ohU zMVa6G>^U{`YH#NJ43#yy`nJn_^=;Nvn7j%o4sP zjc>{>op$jIY`nL*uJ_*7vYlDlr-I_rBe#{A$zGqlKJS|M?Qf?}rFm~Wt)ac{LT~o_ z3s=3@hkFKAo_ejLy|C83?A6n=`!Bw8zMZoB2hU}#tkU~i-(Na=dR?Gr-K)j9i$Cr# zlLc2MZnyh-@>hHe;(e;REB&HQ?Dc@hU4{b}#_;>Z|u3zU`XKhZ}#pC}f@$$cOjJfq2J=fdsi>{S@EPZCrgv431 z_W!Zc-T&?GEW7N9Jj!49x8FM#_V(tVrfvIvEopPw`Q2JMB4Ev)Lqgk6LlTn$WD_bw zk$Zi4c3x@Su7*U3S>}uVw4a$~#r+NOUA->E)pOyezjdy{oV=~dSubB*JvpuHtyPUv zG`~z>dj9^~sqse)e9z7@3;!%NJ>%CDx2s`SR<76(!dM@$u_EN*i3zuMM_s*ibIr2H zzqkBe;%(X% zw`Nrb&sN%ar>bqyp@wPtt1oX-4ZdQq*e7^ZcSyjC@B{BdErf#0&rdiv=jHW>$#ZXQ z{JiDco9s}V?!~i>0|O>4j|}$>ef-EO)L%dN<`gB?Pc@%@?d{?{D)LG)==V#xxtUql zFV0Ob`INBwjZ5BMK0Tea0f+BAon=-$QES!m)l2qx{d1USBR7B1MaR}(RafrbTeDf6 z|Fz3yzpeAE-eh@Hn#9eIcYS(w(j4jUkVeD=O{6LKmS4M~Qloc@Dljo5m@La&wPKIk zGl}EdAk9__)vuDgkT{M^tFqD3TI-d)MumYP&xpslb?H^;S|bO)hq{n!pHFDY&G%ZQVqj}+PFUL2JG3qhHS&pzWnd_poG78Cv33fm&jCK4 zh@l~|VmIW*@S;iAfWnP7<*t{rnWoYm`BF>?;e}&Jo_V8EWka=+GKs3ajf};ku zaZjg*oR}ZJ;)BEdq>CGFt1>dE8N@5BNO0V^XI}#>9G1YA5$||Z@t0Bb*J_b|cTq{1 z0392R+uQEwaWfb&O0;R#8^r(H!&F&YxBWC^Wc36G)E@;$KUMwxB=$R1e5#h5WRQ+j zpp8_Rl3@966NUq#N4``%{mlOKEBjM!mQ;y0kP|@e?BRrKHs*2Om$0wqV2$UbsU8}F z{U^PSOzk+Hdi&bWzNQjUmWGpO4O0KS>p%W_>dUXE9)CRfrQ*&yhz}10LhIWDEy-0j zEjA#7L3r{s*z5s_2gV01p-RC#5J9gMQh)xxxzz}A?*WDS*VQ#gL2J~MAx8~>oWao3 z0U3+~aSW88`}Y_a7!Gtmi!qSINY`MtPFoeW7GN~QMw7{C-WV-GMvG0z!2W1m!N9;U z(ksZ(N^!JO9IX^bE5*@DakNqdbr`{Tv{D@HTaOMXKo(bnGQ?auK<(^85kH8T#&~06c0fLk3n+7 z>b`oAhZr0>3?Mu0Ks=`wMEgWQ33`ea0|P^YKq7SiHUk4g3kU4Ls?mS~1=?spF))ng zi_v@m$_t|f2m`}teKA^JFffc(tfTEHP>IMe+B_Ip&4W#|bNAi*j_A}rV9NRYH81Vo z&i9bbhM+`ofHmTo{O-tSCHEl)84(SW(D!UxPWon(|dW_Ebo1XtZo4b zKDen{yzQObp9;G~V_H^&enRm~e*|qQg$1^pXuDgQ7!T3P%t-Q6bFIs(m zZ%~l-?BS;mYiItzw$ z97ASSChKnoDFx$(ap850Y9|s>q%*O0!-<-R>?DVI5yX4mX zfB9kOp#$!5wO`HcW9z;=_-YxwPVaPC Date: Mon, 29 Jan 2024 00:48:19 +0800 Subject: [PATCH 148/447] home(gnome): disable workspace indicator and install gnome-terminal --- home/gnome/impl/dconf.nix | 2 +- home/gnome/impl/home.nix | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/home/gnome/impl/dconf.nix b/home/gnome/impl/dconf.nix index ab7e92c8..ecb0c601 100644 --- a/home/gnome/impl/dconf.nix +++ b/home/gnome/impl/dconf.nix @@ -58,13 +58,13 @@ in mkIf cfg.enable { "places-menu@gnome-shell-extensions.gcampax.github.com" "windowsNavigator@gnome-shell-extensions.gcampax.github.com" "window-list@gnome-shell-extensions.gcampax.github.com" + "workspace-indicator@gnome-shell-extensions.gcampax.github.com" "dash-to-panel@jderose9.github.com" ]; enabled-extensions = [ "user-theme@gnome-shell-extensions.gcampax.github.com" "apps-menu@gnome-shell-extensions.gcampax.github.com" "drive-menu@gnome-shell-extensions.gcampax.github.com" - "workspace-indicator@gnome-shell-extensions.gcampax.github.com" "dash-to-dock@micxgx.gmail.com" ]; welcome-dialog-last-shown-version = "45.3"; diff --git a/home/gnome/impl/home.nix b/home/gnome/impl/home.nix index cf909522..49d3112b 100644 --- a/home/gnome/impl/home.nix +++ b/home/gnome/impl/home.nix @@ -21,7 +21,14 @@ in mkIf cfg.enable { name = "Catppuccin-Frappe-Compact-Pink-Dark"; }; - home.packages = with pkgs.gnomeExtensions; [ + home.packages = + with pkgs; + with gnome; + with gnomeExtensions; [ + # gnome + gnome-terminal + + # gnomeExtensions dash-to-panel dash-to-dock appindicator From ab9354202602e410d92d6c8243e7a9d4c53cf5b8 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 29 Jan 2024 01:13:23 +0800 Subject: [PATCH 149/447] home(gnome): enable tap to click, add terminal themes --- home/gnome/impl/dconf.nix | 92 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) diff --git a/home/gnome/impl/dconf.nix b/home/gnome/impl/dconf.nix index ecb0c601..900f0bbe 100644 --- a/home/gnome/impl/dconf.nix +++ b/home/gnome/impl/dconf.nix @@ -9,8 +9,11 @@ in mkIf cfg.enable { pd = "${p}/desktop"; ps = "${p}/shell"; pse = "${ps}/extensions"; + ptl = "${p}/terminal/legacy"; + ptlp = "${ptl}/profiles:"; in { "${pd}/peripherals/mouse".natural-scroll = true; + "${pd}/peripherals/touchpad".tap-to-click = true; "${p}/epiphany".ask-for-default = false; "${p}/evolution-data-server".migrated = true; @@ -40,6 +43,7 @@ in mkIf cfg.enable { "${pd}/screensaver" = { color-shading-type = "solid"; + lock-enabled = false; picture-options = "zoom"; picture-uri = "file://${./catppuccin-nix.png}"; primary-color = "#000000000000"; @@ -52,6 +56,94 @@ in mkIf cfg.enable { button-layout = "close,minimize,maximize:appmenu"; }; + "${ptlp}" = { + default = "71a9971e-e829-43a9-9b2f-4565c855d664"; + list = [ + "de8a9081-8352-4ce4-9519-5de655ad9361" + "71a9971e-e829-43a9-9b2f-4565c855d664" + "5083e06b-024e-46be-9cd2-892b814f1fc8" + "95894cfd-82f7-430d-af6e-84d168bc34f5" + ]; + }; + + "${ptlp}/:5083e06b-024e-46be-9cd2-892b814f1fc8" = { + background-color = "#24273a"; + cursor-background-color = "#f4dbd6"; + cursor-colors-set = true; + cursor-foreground-color = "#24273a"; + foreground-color = "#cad3f5"; + highlight-background-color = "#24273a"; + highlight-colors-set = true; + highlight-foreground-color = "#5b6078"; + palette = [ + "#494d64" "#ed8796" "#a6da95" "#eed49f" + "#8aadf4" "#f5bde6" "#8bd5ca" "#b8c0e0" + "#5b6078" "#ed8796" "#a6da95" "#eed49f" + "#8aadf4" "#f5bde6" "#8bd5ca" "#a5adcb" + ]; + use-theme-colors = false; + visible-name = "Catppuccin Macchiato"; + }; + + "${ptlp}/:71a9971e-e829-43a9-9b2f-4565c855d664" = { + background-color = "#303446"; + cursor-background-color = "#f2d5cf"; + cursor-colors-set = true; + cursor-foreground-color = "#303446"; + default-size-columns = 150; + default-size-rows = 35; + foreground-color = "#c6d0f5"; + highlight-background-color = "#303446"; + highlight-colors-set = true; + highlight-foreground-color = "#626880"; + palette = [ + "#51576d" "#e78284" "#a6d189" "#e5c890" + "#8caaee" "#f4b8e4" "#81c8be" "#b5bfe2" + "#626880" "#e78284" "#a6d189" "#e5c890" + "#8caaee" "#f4b8e4" "#81c8be" "#a5adce" + ]; + use-theme-colors = false; + visible-name = "Catppuccin Frappe"; + }; + + "${ptlp}/:95894cfd-82f7-430d-af6e-84d168bc34f5" = { + background-color = "#1e1e2e"; + cursor-background-color = "#f5e0dc"; + cursor-colors-set = true; + cursor-foreground-color = "#1e1e2e"; + foreground-color = "#cdd6f4"; + highlight-background-color = "#1e1e2e"; + highlight-colors-set = true; + highlight-foreground-color = "#585b70"; + palette = [ + "#45475a" "#f38ba8" "#a6e3a1" "#f9e2af" + "#89b4fa" "#f5c2e7" "#94e2d5" "#bac2de" + "#585b70" "#f38ba8" "#a6e3a1" "#f9e2af" + "#89b4fa" "#f5c2e7" "#94e2d5" "#a6adc8" + ]; + use-theme-colors = false; + visible-name = "Catppuccin Mocha"; + }; + + "${ptlp}/:de8a9081-8352-4ce4-9519-5de655ad9361" = { + background-color = "#eff1f5"; + cursor-background-color = "#dc8a78"; + cursor-colors-set = true; + cursor-foreground-color = "#eff1f5"; + foreground-color = "#4c4f69"; + highlight-background-color = "#eff1f5"; + highlight-colors-set = true; + highlight-foreground-color = "#acb0be"; + palette = [ + "#5c5f77" "#d20f39" "#40a02b" "#df8e1d" + "#1e66f5" "#ea76cb" "#179299" "#acb0be" + "#6c6f85" "#d20f39" "#40a02b" "#df8e1d" + "#1e66f5" "#ea76cb" "#179299" "#bcc0cc" + ]; + use-theme-colors = false; + visible-name = "Catppuccin Latte"; + }; + "${ps}" = { disabled-extensions = [ "light-style@gnome-shell-extensions.gcampax.github.com" From 1a3a007e15443be48d8ef85f13914db2e2843af0 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 29 Jan 2024 17:44:01 +0800 Subject: [PATCH 150/447] spec(focus): rename ethernet via hw address --- spec/focus/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/spec/focus/default.nix b/spec/focus/default.nix index 55521803..5c930a44 100644 --- a/spec/focus/default.nix +++ b/spec/focus/default.nix @@ -30,6 +30,10 @@ }; boot.initrd.systemd.services.zfs-import-focus.after = [ "cryptsetup.target" ]; + services.udev.extraRules = '' + SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="6c:b3:11:3d:80:13", NAME="2g5" + ''; + networking.proxy = { default = "socks5://192.168.1.1:1080"; noProxy = "10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,127.0.0.1,localhost,.localdomain"; From 055c1dc3ce9643cffb21fbfabf2cfb51c36589c9 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 29 Jan 2024 17:44:41 +0800 Subject: [PATCH 151/447] spec(focus): add grafana dashboard --- spec/focus/grafana.nix | 36 ++++++++++++++++++++++++++++++++++++ spec/focus/nginx.nix | 8 ++++++++ 2 files changed, 44 insertions(+) create mode 100644 spec/focus/grafana.nix diff --git a/spec/focus/grafana.nix b/spec/focus/grafana.nix new file mode 100644 index 00000000..bd667368 --- /dev/null +++ b/spec/focus/grafana.nix @@ -0,0 +1,36 @@ +{ config +, ... }: { + services.grafana = { + enable = true; + dataDir = "/nix/persist/service/grafana"; + settings = { + server = { + http_addr = "127.0.0.1"; + http_port = 3000; + domain = "sf.514fpv.io"; + root_url = "https://sf.514fpv.io:8086/dash"; + serve_from_sub_path = true; + }; + }; + }; + + services.prometheus = { + enable = true; + port = 9001; + exporters = { + node = { + enable = true; + enabledCollectors = [ "systemd" ]; + port = 9002; + }; + }; + }; + + services.nginx.virtualHosts."sf.514fpv.io".locations."/dash/" = { + proxyPass = "http://${toString config.services.grafana.settings.server.http_addr}:${toString config.services.grafana.settings.server.http_port}"; + proxyWebsockets = true; + recommendedProxySettings = true; + }; + + global.fs.zfs.mountpoints."/nix/persist/service/grafana" = "service/grafana"; +} diff --git a/spec/focus/nginx.nix b/spec/focus/nginx.nix index 7c8bb5e7..38c33ba0 100644 --- a/spec/focus/nginx.nix +++ b/spec/focus/nginx.nix @@ -17,6 +17,14 @@ useACMEHost = ".sf.514fpv.io"; extraConfig = "return 444;"; }; + + "sf.514fpv.io" = { + addSSL = true; + useACMEHost = "sf.514fpv.io"; + locations."/" = { + return = "307 https://sf.514fpv.io:8086/dash/"; + }; + }; }; }; From 57c224012f5e83c7daa4ef118d8c549829af2f48 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 31 Jan 2024 11:45:26 +0800 Subject: [PATCH 152/447] spec(reimaden): rename from eientei --- spec/{eientei => reimaden}/default.nix | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename spec/{eientei => reimaden}/default.nix (100%) diff --git a/spec/eientei/default.nix b/spec/reimaden/default.nix similarity index 100% rename from spec/eientei/default.nix rename to spec/reimaden/default.nix From c0a8daf10355e9f9049288dbd292df2a49c7e511 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 31 Jan 2024 11:47:30 +0800 Subject: [PATCH 153/447] flake: bump inputs --- flake.lock | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/flake.lock b/flake.lock index f3fccfaa..1548679d 100644 --- a/flake.lock +++ b/flake.lock @@ -56,11 +56,11 @@ ] }, "locked": { - "lastModified": 1704982712, - "narHash": "sha256-2Ptt+9h8dczgle2Oo6z5ni5rt/uLMG47UFTR1ry/wgg=", + "lastModified": 1706569497, + "narHash": "sha256-oixb0IDb5eZYw6BaVr/R/1pSoMh4rfJHkVnlgeRIeZs=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "07f6395285469419cf9d078f59b5b49993198c00", + "rev": "60c614008eed1d0383d21daac177a3e036192ed8", "type": "github" }, "original": { @@ -155,11 +155,11 @@ ] }, "locked": { - "lastModified": 1706306660, - "narHash": "sha256-lZvgkHtVeduGByPb0Tz9LpAi4olfkEm8XPgv0o7GRsk=", + "lastModified": 1706473109, + "narHash": "sha256-iyuAvpKTsq2u23Cr07RcV5XlfKExrG8gRpF75hf1uVc=", "owner": "nix-community", "repo": "home-manager", - "rev": "b2f56952074cb46e93902ecaabfb04dd93733434", + "rev": "d634c3abafa454551f2083b054cd95c3f287be61", "type": "github" }, "original": { @@ -170,11 +170,11 @@ }, "impermanence": { "locked": { - "lastModified": 1703656108, - "narHash": "sha256-hCSUqdFJKHHbER8Cenf5JRzjMlBjIdwdftGQsO0xoJs=", + "lastModified": 1706639736, + "narHash": "sha256-CaG4j9+UwBDfinxxvJMo6yOonSmSo0ZgnbD7aj2Put0=", "owner": "nix-community", "repo": "impermanence", - "rev": "033643a45a4a920660ef91caa391fbffb14da466", + "rev": "cd13c2917eaa68e4c49fea0ff9cada45440d7045", "type": "github" }, "original": { @@ -213,11 +213,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1706191920, - "narHash": "sha256-eLihrZAPZX0R6RyM5fYAWeKVNuQPYjAkCUBr+JNvtdE=", + "lastModified": 1706371002, + "narHash": "sha256-dwuorKimqSYgyu8Cw6ncKhyQjUDOyuXoxDTVmAXq88s=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ae5c332cbb5827f6b1f02572496b141021de335f", + "rev": "c002c6aa977ad22c60398daaa9be52f2203d0006", "type": "github" }, "original": { From 628180b27928d4210994af4dd54bb7d568ac65c2 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 1 Feb 2024 17:24:23 +0800 Subject: [PATCH 154/447] spec(reimaden): rename public key --- global/auth/pub/{eientei.pub => reimaden.pub} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename global/auth/pub/{eientei.pub => reimaden.pub} (65%) diff --git a/global/auth/pub/eientei.pub b/global/auth/pub/reimaden.pub similarity index 65% rename from global/auth/pub/eientei.pub rename to global/auth/pub/reimaden.pub index dd660984..0c845b69 100644 --- a/global/auth/pub/eientei.pub +++ b/global/auth/pub/reimaden.pub @@ -1 +1 @@ -ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGIZq1mD3J1cgWK61okXx3hQSe+5g3UTBfAf4RHkkFVd koishi@eientei +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGIZq1mD3J1cgWK61okXx3hQSe+5g3UTBfAf4RHkkFVd koishi@reimaden From 07308885c7eeb33436c34bc3b98c0c8c0d9cd535 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 1 Feb 2024 17:27:06 +0800 Subject: [PATCH 155/447] spec(eientei): initial configuration --- global/auth/pub/eientei.pub | 1 + spec/eientei/default.nix | 43 +++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 global/auth/pub/eientei.pub create mode 100644 spec/eientei/default.nix diff --git a/global/auth/pub/eientei.pub b/global/auth/pub/eientei.pub new file mode 100644 index 00000000..cfe7e155 --- /dev/null +++ b/global/auth/pub/eientei.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJnhMCGSLMY+QldeCTaRovmfuzKdJsllQy9XinN2JU2z koishi@eientei diff --git a/spec/eientei/default.nix b/spec/eientei/default.nix new file mode 100644 index 00000000..70eb7281 --- /dev/null +++ b/spec/eientei/default.nix @@ -0,0 +1,43 @@ +{ lib +, ... }: { + global = { + id = "ff96c05be13e44f681292205370eed1a"; + auth.openssh.enable = true; + fs.esp.uuid = "C368-7571"; + fs.type = "zfs"; + fs.zfs.externalStore = true; + fs.external.device = "/dev/disk/by-uuid/d9202e56-a14f-4342-acdb-dbae33d680fc"; + fs.external.fsType = "xfs"; + fs.external.options = [ "noatime" ]; + fs.cryptsetup.enable = true; + fs.cryptsetup.allowDiscards = false; + fs.cryptsetup.uuids.secret = "c33c9b18-a280-42d7-8740-3f8d3f60dc43"; + boot.lanzaboote = true; + }; + + services.fstrim.enable = true; + boot.swraid.enable = true; + boot.swraid.mdadmConf = '' + PROGRAM /usr/bin/true + ''; + fileSystems."/nix/var/secret" = + { device = "/dev/disk/by-uuid/1404c4f1-b890-4cf0-ab8a-26bd81bd2254"; + fsType = "ext4"; + options = [ "noatime" ]; + neededForBoot = true; + depends = [ "/nix/var" ]; + }; + boot.initrd.systemd.services.zfs-import-eientei.after = [ "cryptsetup.target" ]; + + imports = lib.pipe ./. [ + builtins.readDir + (lib.filterAttrs (n: ty: ty == "regular" && n != "default.nix")) + (lib.mapAttrsToList (n: _: ./${n})) + ]; + + hardware.enableRedistributableFirmware = true; + boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ]; + boot.initrd.kernelModules = [ "i915" ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; +} From a646252782854ec8ca7e8ed0e226325b966c79a7 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 2 Feb 2024 01:59:11 +0800 Subject: [PATCH 156/447] spec(eientei): add proxy configuration --- spec/eientei/default.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/spec/eientei/default.nix b/spec/eientei/default.nix index 70eb7281..0e277d8a 100644 --- a/spec/eientei/default.nix +++ b/spec/eientei/default.nix @@ -29,6 +29,11 @@ }; boot.initrd.systemd.services.zfs-import-eientei.after = [ "cryptsetup.target" ]; + networking.proxy = { + default = "socks5://192.168.1.253:1080"; + noProxy = "127.0.0.1,localhost,.localdomain"; + }; + imports = lib.pipe ./. [ builtins.readDir (lib.filterAttrs (n: ty: ty == "regular" && n != "default.nix")) From 93945e9eef9304911a16749a77cca774fc2affa5 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 2 Feb 2024 04:39:50 +0800 Subject: [PATCH 157/447] spec(eientei): migrate library configuration --- spec/{library => eientei}/acme.nix | 0 spec/{library => eientei}/coturn.nix | 2 + spec/eientei/default.nix | 5 ++ spec/eientei/forgejo.nix | 36 ++++++++++++++ spec/{library => eientei}/matrix.nix | 2 + spec/{library => eientei}/nextcloud.nix | 6 ++- spec/{library => eientei}/nginx.nix | 3 +- spec/{library => eientei}/postgresql.nix | 2 + spec/library/default.nix | 38 --------------- spec/library/forgejo.nix | 61 ------------------------ 10 files changed, 52 insertions(+), 103 deletions(-) rename spec/{library => eientei}/acme.nix (100%) rename spec/{library => eientei}/coturn.nix (96%) create mode 100644 spec/eientei/forgejo.nix rename spec/{library => eientei}/matrix.nix (94%) rename spec/{library => eientei}/nextcloud.nix (86%) rename spec/{library => eientei}/nginx.nix (88%) rename spec/{library => eientei}/postgresql.nix (70%) delete mode 100644 spec/library/default.nix delete mode 100644 spec/library/forgejo.nix diff --git a/spec/library/acme.nix b/spec/eientei/acme.nix similarity index 100% rename from spec/library/acme.nix rename to spec/eientei/acme.nix diff --git a/spec/library/coturn.nix b/spec/eientei/coturn.nix similarity index 96% rename from spec/library/coturn.nix rename to spec/eientei/coturn.nix index 81cac29c..6f633083 100644 --- a/spec/library/coturn.nix +++ b/spec/eientei/coturn.nix @@ -54,4 +54,6 @@ in { allowedTCPPortRanges = range; allowedTCPPorts = [ 3478 5349 ]; }; + + global.fs.zfs.mountpoints."/nix/persist/service/coturn" = "service/coturn"; } diff --git a/spec/eientei/default.nix b/spec/eientei/default.nix index 0e277d8a..0f6ce2b1 100644 --- a/spec/eientei/default.nix +++ b/spec/eientei/default.nix @@ -1,4 +1,5 @@ { lib +, pkgs , ... }: { global = { id = "ff96c05be13e44f681292205370eed1a"; @@ -13,6 +14,7 @@ fs.cryptsetup.allowDiscards = false; fs.cryptsetup.uuids.secret = "c33c9b18-a280-42d7-8740-3f8d3f60dc43"; boot.lanzaboote = true; + acme.enable = true; }; services.fstrim.enable = true; @@ -45,4 +47,7 @@ boot.initrd.kernelModules = [ "i915" ]; boot.kernelModules = [ "kvm-intel" ]; boot.extraModulePackages = [ ]; + + networking.firewall.allowedTCPPorts = [ 25565 ]; + environment.systemPackages = with pkgs; [ python3 ]; } diff --git a/spec/eientei/forgejo.nix b/spec/eientei/forgejo.nix new file mode 100644 index 00000000..2f9e029e --- /dev/null +++ b/spec/eientei/forgejo.nix @@ -0,0 +1,36 @@ +{ pkgs +, config +, ...}: let + host = "src.514fpv.io"; +in { + services.forgejo = { + enable = true; + lfs.enable = true; + stateDir = "/nix/persist/service/forgejo"; + database.type = "postgres"; + database.createDatabase = true; + settings = { + server = { + SSH_PORT = 8087; + COOKIE_SECURE = true; + LANDING_PAGE = "explore"; + DOMAIN = host; + PROTOCOL = "http+unix"; + ROOT_URL = "https://${host}:2096/"; + }; + DEFAULT.APP_NAME = "Forgejo"; + service.DISABLE_REGISTRATION = true; + }; + }; + + users.users.forgejo.uid = 1023; + users.groups.forgejo.gid = 1023; + + services.nginx.virtualHosts.${host} = { + useACMEHost = ".514fpv.io"; + addSSL = true; + locations."/".proxyPass = "http://unix:/run/forgejo/forgejo.sock"; + }; + + global.fs.zfs.mountpoints."/nix/persist/service/forgejo" = "service/forgejo"; +} diff --git a/spec/library/matrix.nix b/spec/eientei/matrix.nix similarity index 94% rename from spec/library/matrix.nix rename to spec/eientei/matrix.nix index 0569cb3c..8b884e5f 100644 --- a/spec/library/matrix.nix +++ b/spec/eientei/matrix.nix @@ -45,4 +45,6 @@ in { }; networking.firewall.allowedTCPPorts = [ 8448 ]; + + global.fs.zfs.mountpoints."/nix/persist/service/matrix" = "service/matrix"; } diff --git a/spec/library/nextcloud.nix b/spec/eientei/nextcloud.nix similarity index 86% rename from spec/library/nextcloud.nix rename to spec/eientei/nextcloud.nix index dfac5afb..be80b390 100644 --- a/spec/library/nextcloud.nix +++ b/spec/eientei/nextcloud.nix @@ -20,8 +20,8 @@ in { config.dbtype = "pgsql"; config.adminuser = "koishi"; config.adminpassFile = builtins.toString (pkgs.writeText "password" "initial_password"); - extraOptions.overwriteprotocol = "https"; - extraOptions.default_phone_region = "US"; + settings.overwriteprotocol = "https"; + settings.default_phone_region = "US"; caching.redis = true; phpOptions.upload_max_filesize = "128G"; phpOptions.post_max_size = "128G"; @@ -37,4 +37,6 @@ in { useACMEHost = ".514fpv.io"; addSSL = true; }; + + global.fs.zfs.mountpoints."/nix/persist/service/nextcloud" = "service/nextcloud"; } diff --git a/spec/library/nginx.nix b/spec/eientei/nginx.nix similarity index 88% rename from spec/library/nginx.nix rename to spec/eientei/nginx.nix index e6980dcc..facdc9ba 100644 --- a/spec/library/nginx.nix +++ b/spec/eientei/nginx.nix @@ -11,7 +11,6 @@ # set a reasonable default clientMaxBodySize = "64m"; - # proxy services running on TrueNAS virtualHosts = { "_" = { addSSL = true; @@ -26,7 +25,7 @@ proxy_buffering off; ''; locations."/" = { - proxyPass = "http://192.168.1.250:8123"; + proxyPass = "http://127.0.0.1:8123"; proxyWebsockets = true; }; }; diff --git a/spec/library/postgresql.nix b/spec/eientei/postgresql.nix similarity index 70% rename from spec/library/postgresql.nix rename to spec/eientei/postgresql.nix index dc082ee9..22d99ced 100644 --- a/spec/library/postgresql.nix +++ b/spec/eientei/postgresql.nix @@ -7,4 +7,6 @@ package = pkgs.postgresql_15; }; + + global.fs.zfs.mountpoints."/nix/persist/service/postgresql" = "service/postgresql"; } diff --git a/spec/library/default.nix b/spec/library/default.nix deleted file mode 100644 index daaac493..00000000 --- a/spec/library/default.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ pkgs -, lib -, modulesPath -, ... }: { - global = { - id = "bc8036643fc24f04ab150ff6a38dcce7"; - auth.openssh.enable = true; - libvirt.enable = false; - fs.esp.uuid = "00A5-929C"; - fs.type = "xfs"; - fs.store = "25b9f83f-7f6d-432f-a169-2985e5930401"; - fs.external.enable = true; - fs.external.device = "/dev/disk/by-uuid/ba3d0989-9f81-4ac0-b5a7-124c86835cfa"; - fs.external.fsType = "ext4"; - fs.external.options = [ "noatime" ]; - oci.enable = true; - acme.enable = true; - }; - - networking.proxy = { - default = "socks5://192.168.1.253:1080"; - noProxy = "127.0.0.1,localhost,.localdomain"; - }; - - imports = lib.pipe ./. [ - builtins.readDir - (lib.filterAttrs (n: ty: ty == "regular" && n != "default.nix")) - (lib.mapAttrsToList (n: _: ./${n})) - ] ++ [ (modulesPath + "/profiles/qemu-guest.nix") ]; - - boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "ahci" "virtio_pci" "sr_mod" "virtio_blk" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-intel" ]; - boot.extraModulePackages = [ ]; - boot.kernelParams = [ "console=ttyS0,115200n8" ]; - networking.firewall.allowedTCPPorts = [ 25565 ]; - environment.systemPackages = with pkgs; [ python3 ]; -} diff --git a/spec/library/forgejo.nix b/spec/library/forgejo.nix deleted file mode 100644 index 16a89ffa..00000000 --- a/spec/library/forgejo.nix +++ /dev/null @@ -1,61 +0,0 @@ -{ pkgs -, config -, ...}: let - host = "src.514fpv.io"; -in { - services.forgejo = { - enable = true; - lfs.enable = true; - stateDir = "/nix/persist/service/forgejo"; - database.type = "postgres"; - database.createDatabase = true; - settings = { - server = { - SSH_PORT = 8087; - COOKIE_SECURE = true; - LANDING_PAGE = "explore"; - DOMAIN = host; - PROTOCOL = "http+unix"; - ROOT_URL = "https://${host}:2096/"; - }; - DEFAULT.APP_NAME = "Forgejo"; - service.DISABLE_REGISTRATION = true; - }; - }; - - users.users.forgejo.uid = 1023; - users.groups.forgejo.gid = 1023; - - services.nginx.virtualHosts.${host} = { - useACMEHost = ".514fpv.io"; - addSSL = true; - locations."/".proxyPass = "http://unix:/run/forgejo/forgejo.sock"; - }; - - services.gitea-actions-runner.instances.local = { - enable = true; - url = "https://${host}:2096"; - name = config.networking.hostName; - tokenFile = "/nix/persist/secret/gitea-runner"; - labels = [ - # provide a debian base with nodejs for actions - "debian-latest:docker://node:18-bullseye" - # fake the ubuntu name, because node provides no ubuntu builds - "ubuntu-latest:docker://node:18-bullseye" - ]; - settings = { - runner.envs = let - proxy = "socks5://192.168.1.253:1080"; - in { - all_proxy = proxy; - ftp_proxy = proxy; - http_proxy = proxy; - https_proxy = proxy; - rsync_proxy = proxy; - no_proxy = "127.0.0.1,localhost,.localdomain"; - }; - }; - }; - - environment.persistence."/nix/persist/fhs".directories = [ "/var/lib/private/gitea-runner" ]; -} From 6093613aae05224f1bf865bfb72c9b25c7ce2f71 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 2 Feb 2024 05:13:13 +0800 Subject: [PATCH 158/447] spec(eientei): fix noProxy --- spec/eientei/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spec/eientei/default.nix b/spec/eientei/default.nix index 0f6ce2b1..e0eed1c6 100644 --- a/spec/eientei/default.nix +++ b/spec/eientei/default.nix @@ -15,6 +15,7 @@ fs.cryptsetup.uuids.secret = "c33c9b18-a280-42d7-8740-3f8d3f60dc43"; boot.lanzaboote = true; acme.enable = true; + oci.enable = true; }; services.fstrim.enable = true; @@ -33,7 +34,7 @@ networking.proxy = { default = "socks5://192.168.1.253:1080"; - noProxy = "127.0.0.1,localhost,.localdomain"; + noProxy = "10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,127.0.0.1,localhost,.localdomain"; }; imports = lib.pipe ./. [ From 81234bcd8c127838c2cacbf2ca7833c685772626 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 2 Feb 2024 07:33:17 +0800 Subject: [PATCH 159/447] spec(eientei): add frigate --- spec/eientei/frigate.nix | 30 ++++++++++++++++++++++++++++++ spec/eientei/mosquitto.nix | 13 +++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 spec/eientei/frigate.nix create mode 100644 spec/eientei/mosquitto.nix diff --git a/spec/eientei/frigate.nix b/spec/eientei/frigate.nix new file mode 100644 index 00000000..c3239f10 --- /dev/null +++ b/spec/eientei/frigate.nix @@ -0,0 +1,30 @@ +{ pkgs +, config +, ...}: { + # container image used for edgetpu support + virtualisation.oci-containers.containers.frigate = { + extraOptions = [ + "--privileged" + "--shm-size=128mb" + "--device=/dev/bus/usb:/dev/bus/usb" + ]; + image = "ghcr.io/blakeblackshear/frigate:stable"; + volumes = [ + "/etc/localtime:/etc/localtime:ro" + "/nix/persist/service/frigate/config:/config" + "/nix/persist/service/frigate/data:/media/frigate" + #"/tmp/frigate:/tmp/cache" + ]; + ports = [ + "5000:5000" + "8554:8554" # RTSP feeds + "8555:8555/tcp" # WebRTC over tcp + "8555:8555/udp" # WebRTC over udp + ]; + }; + + networking.firewall.interfaces.enp0s20f0u1.allowedTCPPorts = [ 5000 8554 8555 ]; + networking.firewall.interfaces.enp0s20f0u1.allowedUDPPorts = [ 8555 ]; + + global.fs.zfs.mountpoints."/nix/persist/service/frigate" = "service/frigate"; +} diff --git a/spec/eientei/mosquitto.nix b/spec/eientei/mosquitto.nix new file mode 100644 index 00000000..42fd0639 --- /dev/null +++ b/spec/eientei/mosquitto.nix @@ -0,0 +1,13 @@ +{ + services.mosquitto = { + enable = true; + listeners = [ { + users.frigate = { + acl = [ "readwrite #" ]; + hashedPassword = "$7$101$Zt3Me3AkHbrKBbbI$SsLTGeTwtkFGXS2F1/S3Vg6w7TcgMLU037ttedKaw/Ela0wgqbaAVxecK1j5i5TDw9OjZMkNI9mUzz9l0d7vcg=="; + }; + } ]; + }; + + networking.firewall.allowedTCPPorts = [ 1883 ]; +} From 694c5d1e8e69aff8ae60add37b5884e068df3bc8 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 2 Feb 2024 07:33:30 +0800 Subject: [PATCH 160/447] spec(eientei): fix proxy --- spec/eientei/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/eientei/default.nix b/spec/eientei/default.nix index e0eed1c6..6f7bcbdb 100644 --- a/spec/eientei/default.nix +++ b/spec/eientei/default.nix @@ -33,7 +33,7 @@ boot.initrd.systemd.services.zfs-import-eientei.after = [ "cryptsetup.target" ]; networking.proxy = { - default = "socks5://192.168.1.253:1080"; + allProxy = "socks5://192.168.1.253:1080"; noProxy = "10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,127.0.0.1,localhost,.localdomain"; }; From a4e1a6ba6c41f786645e3449cefc5cc6ad2ad3ee Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 2 Feb 2024 07:33:48 +0800 Subject: [PATCH 161/447] global(oci): add system-wide persistence --- global/oci/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/global/oci/default.nix b/global/oci/default.nix index a31bfbdc..60e5e4d1 100644 --- a/global/oci/default.nix +++ b/global/oci/default.nix @@ -16,5 +16,6 @@ in { }; users.home.persist.directories = [ ".local/share/containers" ]; + environment.persistence."/nix/persist/fhs".directories = [ "/var/lib/containers" ]; }; } From 224fcb33a061f8f1be5b1799e665c2aa93211764 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 2 Feb 2024 07:33:59 +0800 Subject: [PATCH 162/447] flake: bump inputs --- flake.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/flake.lock b/flake.lock index 1548679d..68612df6 100644 --- a/flake.lock +++ b/flake.lock @@ -155,11 +155,11 @@ ] }, "locked": { - "lastModified": 1706473109, - "narHash": "sha256-iyuAvpKTsq2u23Cr07RcV5XlfKExrG8gRpF75hf1uVc=", + "lastModified": 1706798041, + "narHash": "sha256-BbvuF4CsVRBGRP8P+R+JUilojk0M60D7hzqE0bEvJBQ=", "owner": "nix-community", "repo": "home-manager", - "rev": "d634c3abafa454551f2083b054cd95c3f287be61", + "rev": "4d53427bce7bf3d17e699252fd84dc7468afc46e", "type": "github" }, "original": { @@ -213,11 +213,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1706371002, - "narHash": "sha256-dwuorKimqSYgyu8Cw6ncKhyQjUDOyuXoxDTVmAXq88s=", + "lastModified": 1706550542, + "narHash": "sha256-UcsnCG6wx++23yeER4Hg18CXWbgNpqNXcHIo5/1Y+hc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c002c6aa977ad22c60398daaa9be52f2203d0006", + "rev": "97b17f32362e475016f942bbdfda4a4a72a8a652", "type": "github" }, "original": { From 1d1d11fea50b55492fa776d9c473dc52bc84eb2e Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 2 Feb 2024 09:13:18 +0800 Subject: [PATCH 163/447] spec(eientei): add home-assistant --- spec/eientei/hass.nix | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 spec/eientei/hass.nix diff --git a/spec/eientei/hass.nix b/spec/eientei/hass.nix new file mode 100644 index 00000000..6c107b22 --- /dev/null +++ b/spec/eientei/hass.nix @@ -0,0 +1,20 @@ +{ pkgs +, config +, ...}: { + services.home-assistant = { + enable = true; + config = null; + configDir = "/nix/persist/service/hass"; + + extraComponents = [ + "default_config" + "met" + "esphome" + "synology_dsm" + ]; + }; + + nixpkgs.config.permittedInsecurePackages = [ "openssl-1.1.1w" ]; + + global.fs.zfs.mountpoints."/nix/persist/service/hass" = "service/hass"; +} From 206cd7405284f5fe8530bdf9b5ef28f494c763a9 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 2 Feb 2024 09:15:35 +0800 Subject: [PATCH 164/447] spec(eientei): add home-assistant mqtt --- spec/eientei/hass.nix | 1 + spec/eientei/mosquitto.nix | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/spec/eientei/hass.nix b/spec/eientei/hass.nix index 6c107b22..70aa960e 100644 --- a/spec/eientei/hass.nix +++ b/spec/eientei/hass.nix @@ -10,6 +10,7 @@ "default_config" "met" "esphome" + "mqtt" "synology_dsm" ]; }; diff --git a/spec/eientei/mosquitto.nix b/spec/eientei/mosquitto.nix index 42fd0639..8cbeae02 100644 --- a/spec/eientei/mosquitto.nix +++ b/spec/eientei/mosquitto.nix @@ -6,6 +6,10 @@ acl = [ "readwrite #" ]; hashedPassword = "$7$101$Zt3Me3AkHbrKBbbI$SsLTGeTwtkFGXS2F1/S3Vg6w7TcgMLU037ttedKaw/Ela0wgqbaAVxecK1j5i5TDw9OjZMkNI9mUzz9l0d7vcg=="; }; + users.root = { + acl = [ "readwrite #" ]; + hashedPassword = "$7$101$FjpEh+NpG27RltQe$u2dmg9wz+BBnp1s4z6E6x95TyGO5B9RM2z51qxetvAqO4QDvye1J3UCdMvjuz52iMqzZ3eKi+T2xDeLR7CeMgQ=="; + }; } ]; }; From a32f84b3d2687a0f71ce089b00d7bc6c0c6948bd Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 2 Feb 2024 09:31:15 +0800 Subject: [PATCH 165/447] spec(eientei): correct forgejo ssh port --- spec/eientei/forgejo.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/eientei/forgejo.nix b/spec/eientei/forgejo.nix index 2f9e029e..f207d7c3 100644 --- a/spec/eientei/forgejo.nix +++ b/spec/eientei/forgejo.nix @@ -11,7 +11,7 @@ in { database.createDatabase = true; settings = { server = { - SSH_PORT = 8087; + SSH_PORT = 8086; COOKIE_SECURE = true; LANDING_PAGE = "explore"; DOMAIN = host; From eb599088f6e10b6761f571efcb38419e58471229 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 3 Feb 2024 21:47:35 +0800 Subject: [PATCH 166/447] spec(focus): fix proxy --- spec/focus/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/focus/default.nix b/spec/focus/default.nix index 5c930a44..a161d860 100644 --- a/spec/focus/default.nix +++ b/spec/focus/default.nix @@ -35,7 +35,7 @@ ''; networking.proxy = { - default = "socks5://192.168.1.1:1080"; + allProxy = "socks5://192.168.1.1:1080"; noProxy = "10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,127.0.0.1,localhost,.localdomain"; }; From d9c5ad9aa7c47474106586f235247def25a53d00 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 3 Feb 2024 22:29:38 +0800 Subject: [PATCH 167/447] spec(focus): update nextcloud options --- spec/focus/nextcloud.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/spec/focus/nextcloud.nix b/spec/focus/nextcloud.nix index da47afcc..45d011f3 100644 --- a/spec/focus/nextcloud.nix +++ b/spec/focus/nextcloud.nix @@ -20,10 +20,10 @@ in { config.dbtype = "pgsql"; config.adminuser = "koishi"; config.adminpassFile = builtins.toString (pkgs.writeText "password" "initial_password"); - extraOptions.overwriteprotocol = "https"; - extraOptions.default_phone_region = "US"; - extraOptions.default_language = "zh"; - extraOptions.default_locale = "zh_Hans_CN"; + settings.overwriteprotocol = "https"; + settings.default_phone_region = "US"; + settings.default_language = "zh"; + settings.default_locale = "zh_Hans_CN"; caching.redis = true; phpOptions.upload_max_filesize = "128G"; phpOptions.post_max_size = "128G"; From 8b99375e1c717901c078b9252f80249a9d48e3c2 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 4 Feb 2024 22:17:19 +0800 Subject: [PATCH 168/447] global(boot): add memtest option --- global/boot/default.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/global/boot/default.nix b/global/boot/default.nix index 7da95ebe..fe27a997 100644 --- a/global/boot/default.nix +++ b/global/boot/default.nix @@ -8,6 +8,11 @@ in { enable = mkEnableOption "bootloader installation and maintenance" // { default = true; }; systemd-boot = mkEnableOption "generation selection via systemd-boot" // { default = !cfg.lanzaboote; }; lanzaboote = mkEnableOption "secure boot maintenance via lanzaboote"; + memtest = mkOption { + type = with types; nullOr int; + default = null; + description = "memtest passes to perform on boot"; + }; }; config = let @@ -20,6 +25,7 @@ in { loader.systemd-boot.enable = cfg.systemd-boot; loader.efi.canTouchEfiVariables = true; tmp.cleanOnBoot = true; + kernelParams = optional (cfg.memtest != null) "memtest=${toString cfg.memtest}"; }; # symlink for sbctl From e6e5e64b5628e960362bbe796ba34a01ada3aae8 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 4 Feb 2024 22:17:38 +0800 Subject: [PATCH 169/447] spec(focus): pin network interfaces --- spec/eientei/default.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/spec/eientei/default.nix b/spec/eientei/default.nix index 6f7bcbdb..b87cf794 100644 --- a/spec/eientei/default.nix +++ b/spec/eientei/default.nix @@ -14,6 +14,7 @@ fs.cryptsetup.allowDiscards = false; fs.cryptsetup.uuids.secret = "c33c9b18-a280-42d7-8740-3f8d3f60dc43"; boot.lanzaboote = true; + boot.memtest = 4; acme.enable = true; oci.enable = true; }; @@ -32,6 +33,11 @@ }; boot.initrd.systemd.services.zfs-import-eientei.after = [ "cryptsetup.target" ]; + services.udev.extraRules = '' + SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="80:61:5f:07:9e:2f", NAME="ix0" + SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:e0:4c:68:bb:30", NAME="ss0" + ''; + networking.proxy = { allProxy = "socks5://192.168.1.253:1080"; noProxy = "10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,127.0.0.1,localhost,.localdomain"; From cfc232f3f9d759f9823f7f76a6b231ac737d6e61 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 5 Feb 2024 14:17:10 +0800 Subject: [PATCH 170/447] spec(focus): enable boot-time memory test --- spec/focus/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/focus/default.nix b/spec/focus/default.nix index a161d860..d8e281fe 100644 --- a/spec/focus/default.nix +++ b/spec/focus/default.nix @@ -13,6 +13,7 @@ fs.cryptsetup.allowDiscards = false; fs.cryptsetup.uuids.secret = "c2bc361e-6f9a-48fa-b698-ed3603a9664a"; boot.lanzaboote = true; + boot.memtest = 4; acme.enable = true; }; From 540779473a9f09fd8e9af0ab059eb272ca76f4e2 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 5 Feb 2024 14:23:14 +0800 Subject: [PATCH 171/447] flake: bump inputs --- flake.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/flake.lock b/flake.lock index 68612df6..0a3e4246 100644 --- a/flake.lock +++ b/flake.lock @@ -56,11 +56,11 @@ ] }, "locked": { - "lastModified": 1706569497, - "narHash": "sha256-oixb0IDb5eZYw6BaVr/R/1pSoMh4rfJHkVnlgeRIeZs=", + "lastModified": 1706830856, + "narHash": "sha256-a0NYyp+h9hlb7ddVz4LUn1vT/PLwqfrWYcHMvFB1xYg=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "60c614008eed1d0383d21daac177a3e036192ed8", + "rev": "b253292d9c0a5ead9bc98c4e9a26c6312e27d69f", "type": "github" }, "original": { @@ -155,11 +155,11 @@ ] }, "locked": { - "lastModified": 1706798041, - "narHash": "sha256-BbvuF4CsVRBGRP8P+R+JUilojk0M60D7hzqE0bEvJBQ=", + "lastModified": 1707088232, + "narHash": "sha256-nxPBAZ//BwKkBcjwLE5g9zTq29g7gccTnH5+CeMTxpA=", "owner": "nix-community", "repo": "home-manager", - "rev": "4d53427bce7bf3d17e699252fd84dc7468afc46e", + "rev": "4740f2ccda184e9cc509d7a82b26d7271e0c79d9", "type": "github" }, "original": { @@ -213,11 +213,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1706550542, - "narHash": "sha256-UcsnCG6wx++23yeER4Hg18CXWbgNpqNXcHIo5/1Y+hc=", + "lastModified": 1706913249, + "narHash": "sha256-x3M7iV++CsvRXI1fpyFPduGELUckZEhSv0XWnUopAG8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "97b17f32362e475016f942bbdfda4a4a72a8a652", + "rev": "e92b6015881907e698782c77641aa49298330223", "type": "github" }, "original": { From 8cb00d4cb1eb5935c504953bb0a771ccd3e9270d Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 6 Feb 2024 09:34:05 +0800 Subject: [PATCH 172/447] flake: bump inputs --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 0a3e4246..beb03ef9 100644 --- a/flake.lock +++ b/flake.lock @@ -155,11 +155,11 @@ ] }, "locked": { - "lastModified": 1707088232, - "narHash": "sha256-nxPBAZ//BwKkBcjwLE5g9zTq29g7gccTnH5+CeMTxpA=", + "lastModified": 1707175763, + "narHash": "sha256-0MKHC6tQ4KEuM5rui6DjKZ/VNiSANB4E+DJ/+wPS1PU=", "owner": "nix-community", "repo": "home-manager", - "rev": "4740f2ccda184e9cc509d7a82b26d7271e0c79d9", + "rev": "f99eace7c167b8a6a0871849493b1c613d0f1b80", "type": "github" }, "original": { From 7ae70e4d58a34f33b4b650f943ec0c7ed75a5e09 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 7 Feb 2024 22:32:42 +0800 Subject: [PATCH 173/447] spec(eientei): add sas driver --- spec/eientei/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/eientei/default.nix b/spec/eientei/default.nix index b87cf794..7ebf418f 100644 --- a/spec/eientei/default.nix +++ b/spec/eientei/default.nix @@ -50,7 +50,7 @@ ]; hardware.enableRedistributableFirmware = true; - boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ]; + boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "mpt3sas" "nvme" "usbhid" "usb_storage" "sd_mod" ]; boot.initrd.kernelModules = [ "i915" ]; boot.kernelModules = [ "kvm-intel" ]; boot.extraModulePackages = [ ]; From 144336fc866919428eda6b512b5f46f70aaace05 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 9 Feb 2024 12:40:02 +0800 Subject: [PATCH 174/447] home(util): add serial client and mbuffer --- home/util/home.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/home/util/home.nix b/home/util/home.nix index 3f43c287..4c0df172 100644 --- a/home/util/home.nix +++ b/home/util/home.nix @@ -7,6 +7,7 @@ in { home.packages = with pkgs; [ pv file wget e2fsprogs ] ++ optionals (!cfg.minimal) [ + tio mbuffer lsscsi zip unzip nix-index dnsutils whois pciutils usbutils nvme-cli From b5153ae162b60e99264e0b74a06789c17d284fb7 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 9 Feb 2024 19:48:11 +0800 Subject: [PATCH 175/447] spec(eientei): add replication service --- spec/eientei/replication.nix | 43 ++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 spec/eientei/replication.nix diff --git a/spec/eientei/replication.nix b/spec/eientei/replication.nix new file mode 100644 index 00000000..9611807c --- /dev/null +++ b/spec/eientei/replication.nix @@ -0,0 +1,43 @@ +{ + services.syncoid = { + enable = true; + interval = "daily"; + sshKey = "/var/lib/syncoid/.ssh/id_ed25519"; + commonArgs = [ + "--recursive" + #"--use-hold" + "--compress=lz4" + "--mbuffer-size=128M" + ]; + localSourceAllow = [ + "bookmark" + "hold" + "send" + "snapshot" + "destroy" + "mount" + ]; + + commands = let + sendOptions = "w"; + remote = "koishi@archive:archive/backup/koishi/eientei"; + in { + "eientei/persist" = { + inherit sendOptions; + target = "${remote}/persist"; + }; + "eientei/service" = { + inherit sendOptions; + target = "${remote}/service"; + }; + "eientei/storage" = { + inherit sendOptions; + target = "${remote}/storage"; + }; + }; + }; + + users.users.syncoid.uid = 82; + users.groups.syncoid.gid = 82; + environment.persistence."/nix/persist/fhs".directories = [ "/var/lib/syncoid" ]; +} From 6c1231255847fe34be21ad8075c02aec5bed3bf1 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 9 Feb 2024 22:25:08 +0800 Subject: [PATCH 176/447] spec(chireiden): add trackpad driver workaround --- spec/chireiden/default.nix | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/spec/chireiden/default.nix b/spec/chireiden/default.nix index 0e3a9dde..723f3c6a 100644 --- a/spec/chireiden/default.nix +++ b/spec/chireiden/default.nix @@ -1,4 +1,4 @@ -{ +{ pkgs, ... }: { global = { id = "5d3c16fe58444e12ad621600039f10af"; fs.esp.uuid = "32A5-6257"; @@ -30,6 +30,18 @@ nvidiaBusId = "PCI:5:0:0"; }; + # trackpad driver resume workaround + systemd.services.trackpad-workaround = { + description = "Reload trackpad driver"; + after = [ "suspend.target" ]; + wantedBy = [ "suspend.target" ]; + path = with pkgs; [ kmod ]; + script = '' + modprobe -r psmouse + modprobe psmouse + ''; + }; + hardware.enableRedistributableFirmware = true; boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" ]; boot.initrd.kernelModules = [ ]; From 7607a12e77e4a41e7db0f1ea7c168b6023040fca Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 9 Feb 2024 22:25:17 +0800 Subject: [PATCH 177/447] flake: bump inputs --- flake.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/flake.lock b/flake.lock index beb03ef9..111d6542 100644 --- a/flake.lock +++ b/flake.lock @@ -155,11 +155,11 @@ ] }, "locked": { - "lastModified": 1707175763, - "narHash": "sha256-0MKHC6tQ4KEuM5rui6DjKZ/VNiSANB4E+DJ/+wPS1PU=", + "lastModified": 1707467182, + "narHash": "sha256-/Bw/xgCXfj4nXDd8Xq+r1kaorfsYkkomMf5w5MpsDyA=", "owner": "nix-community", "repo": "home-manager", - "rev": "f99eace7c167b8a6a0871849493b1c613d0f1b80", + "rev": "5b9156fa9a8b8beba917b8f9adbfd27bf63e16af", "type": "github" }, "original": { @@ -213,11 +213,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1706913249, - "narHash": "sha256-x3M7iV++CsvRXI1fpyFPduGELUckZEhSv0XWnUopAG8=", + "lastModified": 1707268954, + "narHash": "sha256-2en1kvde3cJVc3ZnTy8QeD2oKcseLFjYPLKhIGDanQ0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e92b6015881907e698782c77641aa49298330223", + "rev": "f8e2ebd66d097614d51a56a755450d4ae1632df1", "type": "github" }, "original": { From 7f26a0d1a0a74e4f4bd02c6402c8e019e4f698a5 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 10 Feb 2024 00:16:09 +0800 Subject: [PATCH 178/447] global(fs): add zfs split store options --- global/fs/default.nix | 2 +- global/fs/{zfs.nix => zfs/default.nix} | 17 ++++++++++++++++ global/fs/zfs/split.nix | 27 ++++++++++++++++++++++++++ 3 files changed, 45 insertions(+), 1 deletion(-) rename global/fs/{zfs.nix => zfs/default.nix} (78%) create mode 100644 global/fs/zfs/split.nix diff --git a/global/fs/default.nix b/global/fs/default.nix index e2c80c57..4805dc3e 100644 --- a/global/fs/default.nix +++ b/global/fs/default.nix @@ -8,8 +8,8 @@ in { ./ext4.nix ./f2fs.nix ./xfs.nix - ./zfs.nix ./bcachefs.nix + ./zfs ]; options.global.fs = { diff --git a/global/fs/zfs.nix b/global/fs/zfs/default.nix similarity index 78% rename from global/fs/zfs.nix rename to global/fs/zfs/default.nix index a7faedd8..a36916f2 100644 --- a/global/fs/zfs.nix +++ b/global/fs/zfs/default.nix @@ -4,6 +4,10 @@ , ... }: with lib; let cfg = config.global.fs; in { + imports = [ + ./split.nix + ]; + # -o ashift=12 # -O encryption=on -O keyformat=passphrase -O keylocation=prompt # -O compression=on -O mountpoint=none -O xattr=sa -O acltype=posixacl @@ -21,6 +25,19 @@ in { description = "zfs dataset mountpoints"; }; externalStore = mkEnableOption "external nix store filesystem"; + + split = { + enable = mkEnableOption "zfs state with split nix store"; + mdProg = mkOption { + type = with types; str; + default = "/usr/bin/true"; + description = "mdadm PROGRAM config value"; + }; + secret = mkOption { + type = with types; str; + description = "UUID of secret filesystem"; + }; + }; }; config = mkIf (cfg.type == "zfs") { diff --git a/global/fs/zfs/split.nix b/global/fs/zfs/split.nix new file mode 100644 index 00000000..ea0dd93b --- /dev/null +++ b/global/fs/zfs/split.nix @@ -0,0 +1,27 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.global.fs.zfs.split; +in mkIf cfg.enable { + # unconditionally enable fstrim for xfs and ext4 + services.fstrim.enable = mkDefault true; + + # enable swraid for split raid1 system array + boot.swraid.enable = mkDefault true; + boot.swraid.mdadmConf = mkDefault '' + PROGRAM ${cfg.mdProg} + ''; + + # secret filesystem backed by LUKS on swraid + fileSystems."/nix/var/secret" = + { device = "/dev/disk/by-uuid/${cfg.secret}"; + fsType = "ext4"; + options = [ "noatime" ]; + neededForBoot = true; + depends = [ "/nix/var" ]; + }; + + # import system state pool after encrypted filesystems become available for key loading + boot.initrd.systemd.services."zfs-import-${config.global.fs.store}".after = [ "cryptsetup.target" ]; +} From 9a01ce1fc644c4c432a416cce460f2508cb31f99 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 10 Feb 2024 00:20:43 +0800 Subject: [PATCH 179/447] global(fs): add missing fs options --- global/fs/zfs/default.nix | 4 ++++ global/fs/zfs/split.nix | 10 +++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/global/fs/zfs/default.nix b/global/fs/zfs/default.nix index a36916f2..095f39d8 100644 --- a/global/fs/zfs/default.nix +++ b/global/fs/zfs/default.nix @@ -37,6 +37,10 @@ in { type = with types; str; description = "UUID of secret filesystem"; }; + store = mkOption { + type = with types; str; + description = "UUID of store filesystem"; + }; }; }; diff --git a/global/fs/zfs/split.nix b/global/fs/zfs/split.nix index ea0dd93b..f49c2c09 100644 --- a/global/fs/zfs/split.nix +++ b/global/fs/zfs/split.nix @@ -13,7 +13,7 @@ in mkIf cfg.enable { PROGRAM ${cfg.mdProg} ''; - # secret filesystem backed by LUKS on swraid + # secret filesystem backed by swraid fileSystems."/nix/var/secret" = { device = "/dev/disk/by-uuid/${cfg.secret}"; fsType = "ext4"; @@ -22,6 +22,14 @@ in mkIf cfg.enable { depends = [ "/nix/var" ]; }; + # external store backed by swraid + global.fs = { + zfs.externalStore = mkDefault true; + external.device = "/dev/disk/by-uuid/${cfg.store}"; + external.fsType = "xfs"; + external.options = [ "noatime" ]; + }; + # import system state pool after encrypted filesystems become available for key loading boot.initrd.systemd.services."zfs-import-${config.global.fs.store}".after = [ "cryptsetup.target" ]; } From 837d1fe9dc1057f4a5599725767175a3e38baf8a Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 10 Feb 2024 00:23:47 +0800 Subject: [PATCH 180/447] spec(eientei): convert to global split zfs --- spec/eientei/default.nix | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-) diff --git a/spec/eientei/default.nix b/spec/eientei/default.nix index 7ebf418f..a59baa1e 100644 --- a/spec/eientei/default.nix +++ b/spec/eientei/default.nix @@ -6,10 +6,9 @@ auth.openssh.enable = true; fs.esp.uuid = "C368-7571"; fs.type = "zfs"; - fs.zfs.externalStore = true; - fs.external.device = "/dev/disk/by-uuid/d9202e56-a14f-4342-acdb-dbae33d680fc"; - fs.external.fsType = "xfs"; - fs.external.options = [ "noatime" ]; + fs.zfs.split.enable = true; + fs.zfs.split.store = "d9202e56-a14f-4342-acdb-dbae33d680fc"; + fs.zfs.split.secret = "1404c4f1-b890-4cf0-ab8a-26bd81bd2254"; fs.cryptsetup.enable = true; fs.cryptsetup.allowDiscards = false; fs.cryptsetup.uuids.secret = "c33c9b18-a280-42d7-8740-3f8d3f60dc43"; @@ -19,20 +18,6 @@ oci.enable = true; }; - services.fstrim.enable = true; - boot.swraid.enable = true; - boot.swraid.mdadmConf = '' - PROGRAM /usr/bin/true - ''; - fileSystems."/nix/var/secret" = - { device = "/dev/disk/by-uuid/1404c4f1-b890-4cf0-ab8a-26bd81bd2254"; - fsType = "ext4"; - options = [ "noatime" ]; - neededForBoot = true; - depends = [ "/nix/var" ]; - }; - boot.initrd.systemd.services.zfs-import-eientei.after = [ "cryptsetup.target" ]; - services.udev.extraRules = '' SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="80:61:5f:07:9e:2f", NAME="ix0" SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:e0:4c:68:bb:30", NAME="ss0" From 3961ed0d7aa1b29a481cab35c050e7193c60217c Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 10 Feb 2024 00:32:16 +0800 Subject: [PATCH 181/447] spec(focus): convert to global split zfs --- spec/focus/default.nix | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-) diff --git a/spec/focus/default.nix b/spec/focus/default.nix index d8e281fe..1ad5e877 100644 --- a/spec/focus/default.nix +++ b/spec/focus/default.nix @@ -5,10 +5,9 @@ auth.openssh.enable = true; fs.esp.uuid = "8C36-CBE2"; fs.type = "zfs"; - fs.zfs.externalStore = true; - fs.external.device = "/dev/disk/by-uuid/59b73292-8098-4774-b8b6-59c23130d405"; - fs.external.fsType = "xfs"; - fs.external.options = [ "noatime" ]; + fs.zfs.split.enable = true; + fs.zfs.split.store = "59b73292-8098-4774-b8b6-59c23130d405"; + fs.zfs.split.secret = "f8983719-f9e7-42b2-b8f3-0f32f6b328ae"; fs.cryptsetup.enable = true; fs.cryptsetup.allowDiscards = false; fs.cryptsetup.uuids.secret = "c2bc361e-6f9a-48fa-b698-ed3603a9664a"; @@ -17,20 +16,6 @@ acme.enable = true; }; - services.fstrim.enable = true; - boot.swraid.enable = true; - boot.swraid.mdadmConf = '' - PROGRAM /usr/bin/true - ''; - fileSystems."/nix/var/secret" = - { device = "/dev/disk/by-uuid/f8983719-f9e7-42b2-b8f3-0f32f6b328ae"; - fsType = "ext4"; - options = [ "noatime" ]; - neededForBoot = true; - depends = [ "/nix/var" ]; - }; - boot.initrd.systemd.services.zfs-import-focus.after = [ "cryptsetup.target" ]; - services.udev.extraRules = '' SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="6c:b3:11:3d:80:13", NAME="2g5" ''; From 6aa44feb7e22b1565eaf3b74860f93d386462394 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 10 Feb 2024 00:57:35 +0800 Subject: [PATCH 182/447] global(fs): add zfs replication options --- global/fs/zfs/default.nix | 19 +++++++++++++++++++ global/fs/zfs/replication.nix | 29 +++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 global/fs/zfs/replication.nix diff --git a/global/fs/zfs/default.nix b/global/fs/zfs/default.nix index 095f39d8..70520af2 100644 --- a/global/fs/zfs/default.nix +++ b/global/fs/zfs/default.nix @@ -6,6 +6,7 @@ in { imports = [ ./split.nix + ./replication.nix ]; # -o ashift=12 @@ -42,6 +43,24 @@ in { description = "UUID of store filesystem"; }; }; + + replication = { + enable = mkEnableOption "zfs replication to remote"; + remote = mkOption { + type = with types; str; + description = "remote host as replication destination"; + }; + datasets = mkOption { + type = with types; listOf str; + default = [ "persist" "service" "storage" ]; + description = "list of filesystems to perform replication for"; + }; + sendOptions = mkOption { + type = with types; str; + default = "w"; + description = "send options for all datasets"; + }; + }; }; config = mkIf (cfg.type == "zfs") { diff --git a/global/fs/zfs/replication.nix b/global/fs/zfs/replication.nix new file mode 100644 index 00000000..8f04cd63 --- /dev/null +++ b/global/fs/zfs/replication.nix @@ -0,0 +1,29 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.global.fs.zfs.replication; +in mkIf cfg.enable { + services.syncoid = { + enable = mkDefault true; + interval = mkDefault "daily"; + sshKey = mkDefault "/var/lib/syncoid/.ssh/id_ed25519"; + commonArgs = [ + "--recursive" + "--compress=lz4" + "--mbuffer-size=128M" + ]; + localSourceAllow = options.services.syncoid.localSourceAllow.default ++ [ "mount" ]; + + commands = (lists.foldr (name: commands: commands // { + "${config.global.fs.store}/${name}" = { + inherit (cfg) sendOptions; + target = "${cfg.remote}/${name}"; + }; + }) { }) cfg.datasets; + }; + + users.users.syncoid.uid = 82; + users.groups.syncoid.gid = 82; + environment.persistence."/nix/persist/fhs".directories = [ "/var/lib/syncoid" ]; +} From 95a06e001e7ee3c82da05d0766d18b6c211bb878 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 10 Feb 2024 01:03:36 +0800 Subject: [PATCH 183/447] global(fs): fix permission fix --- global/fs/zfs/replication.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global/fs/zfs/replication.nix b/global/fs/zfs/replication.nix index 8f04cd63..9022d7d2 100644 --- a/global/fs/zfs/replication.nix +++ b/global/fs/zfs/replication.nix @@ -13,7 +13,7 @@ in mkIf cfg.enable { "--compress=lz4" "--mbuffer-size=128M" ]; - localSourceAllow = options.services.syncoid.localSourceAllow.default ++ [ "mount" ]; + localSourceAllow = mkOptionDefault [ "mount" ]; commands = (lists.foldr (name: commands: commands // { "${config.global.fs.store}/${name}" = { From 92c2fb6de685b57c50ed3d3d8eaf405cf5aa0b49 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 10 Feb 2024 01:03:54 +0800 Subject: [PATCH 184/447] spec(eientei): convert to global zfs replication --- spec/eientei/default.nix | 2 ++ spec/eientei/replication.nix | 43 ------------------------------------ 2 files changed, 2 insertions(+), 43 deletions(-) delete mode 100644 spec/eientei/replication.nix diff --git a/spec/eientei/default.nix b/spec/eientei/default.nix index a59baa1e..9e30aa89 100644 --- a/spec/eientei/default.nix +++ b/spec/eientei/default.nix @@ -9,6 +9,8 @@ fs.zfs.split.enable = true; fs.zfs.split.store = "d9202e56-a14f-4342-acdb-dbae33d680fc"; fs.zfs.split.secret = "1404c4f1-b890-4cf0-ab8a-26bd81bd2254"; + fs.zfs.replication.enable = true; + fs.zfs.replication.remote = "koishi@archive:archive/backup/koishi/eientei"; fs.cryptsetup.enable = true; fs.cryptsetup.allowDiscards = false; fs.cryptsetup.uuids.secret = "c33c9b18-a280-42d7-8740-3f8d3f60dc43"; diff --git a/spec/eientei/replication.nix b/spec/eientei/replication.nix deleted file mode 100644 index 9611807c..00000000 --- a/spec/eientei/replication.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ - services.syncoid = { - enable = true; - interval = "daily"; - sshKey = "/var/lib/syncoid/.ssh/id_ed25519"; - commonArgs = [ - "--recursive" - #"--use-hold" - "--compress=lz4" - "--mbuffer-size=128M" - ]; - localSourceAllow = [ - "bookmark" - "hold" - "send" - "snapshot" - "destroy" - "mount" - ]; - - commands = let - sendOptions = "w"; - remote = "koishi@archive:archive/backup/koishi/eientei"; - in { - "eientei/persist" = { - inherit sendOptions; - target = "${remote}/persist"; - }; - "eientei/service" = { - inherit sendOptions; - target = "${remote}/service"; - }; - "eientei/storage" = { - inherit sendOptions; - target = "${remote}/storage"; - }; - }; - }; - - users.users.syncoid.uid = 82; - users.groups.syncoid.gid = 82; - environment.persistence."/nix/persist/fhs".directories = [ "/var/lib/syncoid" ]; -} From 09c67a488732f0a507f981a8f2c068dd9ff7c3ae Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 10 Feb 2024 05:47:40 +0800 Subject: [PATCH 185/447] spec(eientei): remove proxy configuration --- spec/eientei/default.nix | 5 ----- 1 file changed, 5 deletions(-) diff --git a/spec/eientei/default.nix b/spec/eientei/default.nix index 9e30aa89..8bdd5e56 100644 --- a/spec/eientei/default.nix +++ b/spec/eientei/default.nix @@ -25,11 +25,6 @@ SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:e0:4c:68:bb:30", NAME="ss0" ''; - networking.proxy = { - allProxy = "socks5://192.168.1.253:1080"; - noProxy = "10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,127.0.0.1,localhost,.localdomain"; - }; - imports = lib.pipe ./. [ builtins.readDir (lib.filterAttrs (n: ty: ty == "regular" && n != "default.nix")) From 337dba2c57e7bf6d7b99a5f63e6f0448531e8b3b Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 10 Feb 2024 05:48:08 +0800 Subject: [PATCH 186/447] home: add networkmanager as an adminGroup --- home/profile.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/home/profile.nix b/home/profile.nix index c6b20c45..ef8be539 100644 --- a/home/profile.nix +++ b/home/profile.nix @@ -86,6 +86,7 @@ in { adminGroups = [ "wheel" "kvm" "systemd-journal" + "networkmanager" ]; # base home modules in current directory From 1ea225c9209a654301069360e3602eb1153477fb Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 12 Feb 2024 15:17:57 +0800 Subject: [PATCH 187/447] home(gnome): move desktop backgrounds to share directory --- home/gnome/impl/dconf.nix | 6 +++--- {home/gnome/impl => share}/catppuccin-nix.png | Bin {home/gnome/impl => share}/catppuccin.png | Bin 3 files changed, 3 insertions(+), 3 deletions(-) rename {home/gnome/impl => share}/catppuccin-nix.png (100%) rename {home/gnome/impl => share}/catppuccin.png (100%) diff --git a/home/gnome/impl/dconf.nix b/home/gnome/impl/dconf.nix index 900f0bbe..f8426c5d 100644 --- a/home/gnome/impl/dconf.nix +++ b/home/gnome/impl/dconf.nix @@ -26,8 +26,8 @@ in mkIf cfg.enable { "${pd}/background" = { color-shading-type = "solid"; picture-options = "zoom"; - picture-uri = "file://${./catppuccin-nix.png}"; - picture-uri-dark = "file://${./catppuccin-nix.png}"; + picture-uri = "file://${../../../share/catppuccin-nix.png}"; + picture-uri-dark = "file://${../../../share/catppuccin-nix.png}"; primary-color = "#000000000000"; secondary-color = "#000000000000"; }; @@ -45,7 +45,7 @@ in mkIf cfg.enable { color-shading-type = "solid"; lock-enabled = false; picture-options = "zoom"; - picture-uri = "file://${./catppuccin-nix.png}"; + picture-uri = "file://${../../../share/catppuccin-nix.png}"; primary-color = "#000000000000"; secondary-color = "#000000000000"; }; diff --git a/home/gnome/impl/catppuccin-nix.png b/share/catppuccin-nix.png similarity index 100% rename from home/gnome/impl/catppuccin-nix.png rename to share/catppuccin-nix.png diff --git a/home/gnome/impl/catppuccin.png b/share/catppuccin.png similarity index 100% rename from home/gnome/impl/catppuccin.png rename to share/catppuccin.png From 646f3ecb82c8173a6388d16f31d78b3378efef1b Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 12 Feb 2024 15:18:12 +0800 Subject: [PATCH 188/447] spec(koumakyou): enable gnome --- spec/koumakyou/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/koumakyou/default.nix b/spec/koumakyou/default.nix index 05bbe757..c6a8f17c 100644 --- a/spec/koumakyou/default.nix +++ b/spec/koumakyou/default.nix @@ -21,6 +21,7 @@ }; home = { + gnome.enable = true; gyroflow.enable = true; minecraft.enable = true; minecraft.allUsers = true; From 6ff45fa8b063e2e05386e0a99016bcc2796d7ee1 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 12 Feb 2024 17:33:12 +0800 Subject: [PATCH 189/447] global(gpu): greetd settings priority --- global/gpu/greetd.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/global/gpu/greetd.nix b/global/gpu/greetd.nix index ed9231da..17dc4e9e 100644 --- a/global/gpu/greetd.nix +++ b/global/gpu/greetd.nix @@ -8,13 +8,13 @@ in mkIf (cfg.enable && cfg.session) { enable = mkDefault true; cageArgs = [ "-s" "-d" "-m" "last" ]; settings = { - background.path = ../../share/54345906_p0.jpg; + background.path = mkDefault ../../share/54345906_p0.jpg; background.fit = "Fill"; GTK = { - application_prefer_dark_theme = true; - cursor_theme_name = "Bibata-Modern-Classic"; - icon_theme_name = "Papirus-Dark"; - theme_name = "WhiteSur-Dark"; + application_prefer_dark_theme = mkDefault true; + cursor_theme_name = mkDefault "Bibata-Modern-Classic"; + icon_theme_name = mkDefault "Papirus-Dark"; + theme_name = mkDefault "WhiteSur-Dark"; }; }; }; From 3ad2146c101c170a7fcaa72d53f76426411b00cb Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 12 Feb 2024 17:40:58 +0800 Subject: [PATCH 190/447] home(gui): add catppuccin gtk and cursor themes --- home/gnome/impl/home.nix | 17 ---------- home/gui/catppuccin/home.nix | 13 +++++++ home/gui/catppuccin/nixos.nix | 64 +++++++++++++++++++++++++++++++++++ home/gui/home.nix | 52 +++++++++++++++------------- home/gui/nixos.nix | 14 +++++--- 5 files changed, 115 insertions(+), 45 deletions(-) create mode 100644 home/gui/catppuccin/home.nix create mode 100644 home/gui/catppuccin/nixos.nix diff --git a/home/gnome/impl/home.nix b/home/gnome/impl/home.nix index 49d3112b..24d15901 100644 --- a/home/gnome/impl/home.nix +++ b/home/gnome/impl/home.nix @@ -4,23 +4,6 @@ , ... }: with lib; let cfg = config.passthrough.gnome; in mkIf cfg.enable { - # cursor theme - home.pointerCursor = { - package = pkgs.catppuccin-cursors.frappeDark; - name = "Catppuccin-Frappe-Dark-Cursors"; - }; - - # gtk theme - gtk.theme = { - package = pkgs.catppuccin-gtk.override { - accents = [ "pink" ]; - size = "compact"; - #tweaks = [ "rimless" "black" ]; - variant = "frappe"; - }; - name = "Catppuccin-Frappe-Compact-Pink-Dark"; - }; - home.packages = with pkgs; with gnome; diff --git a/home/gui/catppuccin/home.nix b/home/gui/catppuccin/home.nix new file mode 100644 index 00000000..84b27de6 --- /dev/null +++ b/home/gui/catppuccin/home.nix @@ -0,0 +1,13 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.passthrough.catppuccin; +in mkIf cfg.enable { + # cursor theme + home.pointerCursor = { inherit (cfg.cursor) package name; }; + gtk.cursorTheme = { inherit (cfg.cursor) package name; }; + + # gtk theme + gtk.theme = { inherit (cfg.gtk) package name; }; +} diff --git a/home/gui/catppuccin/nixos.nix b/home/gui/catppuccin/nixos.nix new file mode 100644 index 00000000..6b22b3f7 --- /dev/null +++ b/home/gui/catppuccin/nixos.nix @@ -0,0 +1,64 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + gui = with config.global.gpu; enable && session; + cfg = config.home.catppuccin; +in { + options.home.catppuccin = { + enable = mkEnableOption "catppuccin colour scheme" // { default = gui; }; + + gtk = { + package = mkOption { + type = with types; package; + default = pkgs.catppuccin-gtk.override { + accents = [ "pink" ]; + size = "compact"; + #tweaks = [ "rimless" "black" ]; + variant = "frappe"; + }; + description = "catppuccin gtk theme package"; + }; + name = mkOption { + type = with types; str; + default = "Catppuccin-Frappe-Compact-Pink-Dark"; + description = "name of catppuccin gtk theme"; + }; + }; + + cursor = { + package = mkOption { + type = with types; package; + default = pkgs.catppuccin-cursors.frappeDark; + description = "catppuccin cursor theme package"; + }; + name = mkOption { + type = with types; str; + default = "Catppuccin-Frappe-Dark-Cursors"; + description = "name of catppuccin cursor theme"; + }; + }; + }; + + config = { + users.homeModules = [ + # this module passes catppuccin configuration to home-manager + { passthrough.catppuccin = cfg; } + ]; + + # gtk and cursor themes + environment.systemPackages = with cfg; mkIf cfg.enable [ + gtk.package cursor.package + ]; + + # override greetd theme + programs.regreet = mkIf cfg.enable { + settings = { + GTK = { + cursor_theme_name = cfg.cursor.name; + theme_name = cfg.gtk.name; + }; + }; + }; + }; +} diff --git a/home/gui/home.nix b/home/gui/home.nix index db833554..5168a78c 100644 --- a/home/gui/home.nix +++ b/home/gui/home.nix @@ -1,29 +1,33 @@ { pkgs , lib , config -, ... }: with lib; mkIf config.passthrough.gui { - # cursor theme - home.pointerCursor = { - package = mkDefault pkgs.bibata-cursors; - name = mkDefault "Bibata-Modern-Classic"; - size = 24; +, ... }: with lib; { + imports = [ ./catppuccin/home.nix ]; + + config = mkIf config.passthrough.gui { + # cursor theme + home.pointerCursor = { + package = mkDefault pkgs.bibata-cursors; + name = mkDefault "Bibata-Modern-Classic"; + size = 24; + }; + + # gtk theme + gtk.theme = { + package = mkDefault pkgs.whitesur-gtk-theme; + name = mkDefault "WhiteSur-Dark"; + }; + + # gtk icons + gtk.iconTheme = { + package = mkDefault pkgs.papirus-icon-theme; + name = mkDefault "Papirus-Dark"; + }; + + # unify qt theme + qt.platformTheme = mkDefault "gtk"; + + gtk.enable = mkDefault true; + qt.enable = mkDefault true; }; - - # gtk theme - gtk.theme = { - package = mkDefault pkgs.whitesur-gtk-theme; - name = mkDefault "WhiteSur-Dark"; - }; - - # gtk icons - gtk.iconTheme = { - package = mkDefault pkgs.papirus-icon-theme; - name = mkDefault "Papirus-Dark"; - }; - - # unify qt theme - qt.platformTheme = mkDefault "gtk"; - - gtk.enable = mkDefault true; - qt.enable = mkDefault true; } diff --git a/home/gui/nixos.nix b/home/gui/nixos.nix index abde0634..82012777 100644 --- a/home/gui/nixos.nix +++ b/home/gui/nixos.nix @@ -3,7 +3,10 @@ , config , ... }: with lib; let gui = with config.global.gpu; enable && session; + catppuccin = config.home.catppuccin; in { + imports = [ ./catppuccin/nixos.nix ]; + config = { users.homeModules = [ # this module passes gui configuration to home-manager @@ -12,10 +15,13 @@ in { users.adminGroups = mkIf gui [ "video" ]; # themes and icons - environment.systemPackages = with pkgs; mkIf gui [ - whitesur-gtk-theme whitesur-icon-theme - papirus-icon-theme bibata-cursors - ]; + environment.systemPackages = with pkgs; mkIf gui ([ + papirus-icon-theme + ] ++ optionals (!catppuccin.enable) [ + whitesur-gtk-theme + whitesur-icon-theme + bibata-cursors + ]); fonts.enableDefaultPackages = mkIf gui true; From fbd026bff62ae5c9ef2b02f5204462c58c9aea1e Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 12 Feb 2024 19:25:55 +0800 Subject: [PATCH 191/447] home(gui): theme sway with catppuccin --- home/gui/catppuccin/home.nix | 60 ++++++++++ home/gui/catppuccin/nixos.nix | 9 +- home/gui/catppuccin/palette.nix | 205 ++++++++++++++++++++++++++++++++ home/gui/catppuccin/solid.png | Bin 0 -> 29882 bytes 4 files changed, 273 insertions(+), 1 deletion(-) create mode 100644 home/gui/catppuccin/palette.nix create mode 100644 home/gui/catppuccin/solid.png diff --git a/home/gui/catppuccin/home.nix b/home/gui/catppuccin/home.nix index 84b27de6..d06e419c 100644 --- a/home/gui/catppuccin/home.nix +++ b/home/gui/catppuccin/home.nix @@ -3,6 +3,7 @@ , config , ... }: with lib; let cfg = config.passthrough.catppuccin; + palette = import ./palette.nix; in mkIf cfg.enable { # cursor theme home.pointerCursor = { inherit (cfg.cursor) package name; }; @@ -10,4 +11,63 @@ in mkIf cfg.enable { # gtk theme gtk.theme = { inherit (cfg.gtk) package name; }; + + # sway colour palette override + wayland.windowManager.sway.config = { + colors = with palette.sway.${cfg.sway}; { + focused = { border = lavender; background = base; text = text; indicator = rosewater; childBorder = lavender; }; + focusedInactive = { border = overlay0; background = base; text = text; indicator = rosewater; childBorder = overlay0; }; + unfocused = { border = overlay0; background = base; text = text; indicator = rosewater; childBorder = overlay0; }; + urgent = { border = peach; background = base; text = peach; indicator = overlay0; childBorder = peach; }; + placeholder = { border = overlay0; background = base; text = text; indicator = overlay0; childBorder = overlay0; }; + background = base; + }; + + bars = mkForce [ { + colors = let + p = palette.sway.${cfg.sway}; + in { + background = p.base; + statusline = p.text; + focusedStatusline = p.text; + focusedSeparator = p.base; + focusedWorkspace = { border = p.base; background = p.base; text = p.green; }; + activeWorkspace = { border = p.base; background = p.base; text = p.blue; }; + inactiveWorkspace = { border = p.base; background = p.base; text = p.surface1; }; + urgentWorkspace = { border = p.base; background = p.base; text = p.surface1; }; + bindingMode = { border = p.base; background = p.base; text = p.surface1; }; + }; + + mode = "dock"; + position = "bottom"; + workspaceButtons = true; + workspaceNumbers = true; + statusCommand = "${pkgs.i3status}/bin/i3status"; + fonts = { + names = [ "monospace" ]; + size = 8.0; + }; + trayOutput = "primary"; + } ]; + + output."*".bg = mkForce "${palette.sway.${cfg.sway}.base} solid_color"; + + gaps.inner = 12; + gaps.outer = 5; + # dodge the status bar + gaps.bottom = 0; + }; + + programs.i3status.general = with palette.sway.${cfg.sway}; { + color_good = lavender; + color_degraded = yellow; + color_bad = red; + }; + + # foot colour palette override + programs.foot.settings.colors = { + inherit (palette.foot.${cfg.sway}) foreground background + regular0 regular1 regular2 regular3 regular4 regular5 regular6 regular7 + bright0 bright1 bright2 bright3 bright4 bright5 bright6 bright7; + }; } diff --git a/home/gui/catppuccin/nixos.nix b/home/gui/catppuccin/nixos.nix index 6b22b3f7..92e6371e 100644 --- a/home/gui/catppuccin/nixos.nix +++ b/home/gui/catppuccin/nixos.nix @@ -8,6 +8,12 @@ in { options.home.catppuccin = { enable = mkEnableOption "catppuccin colour scheme" // { default = gui; }; + sway = mkOption { + type = with types; str; + default = "frappe"; + description = "colour palette used in sway"; + }; + gtk = { package = mkOption { type = with types; package; @@ -54,9 +60,10 @@ in { # override greetd theme programs.regreet = mkIf cfg.enable { settings = { + background.path = ./solid.png; GTK = { - cursor_theme_name = cfg.cursor.name; theme_name = cfg.gtk.name; + cursor_theme_name = cfg.cursor.name; }; }; }; diff --git a/home/gui/catppuccin/palette.nix b/home/gui/catppuccin/palette.nix new file mode 100644 index 00000000..5f2f084d --- /dev/null +++ b/home/gui/catppuccin/palette.nix @@ -0,0 +1,205 @@ +{ + sway = { + latte = { + rosewater = "#dc8a78"; + flamingo = "#dd7878"; + pink = "#ea76cb"; + mauve = "#8839ef"; + red = "#d20f39"; + maroon = "#e64553"; + peach = "#fe640b"; + yellow = "#df8e1d"; + green = "#40a02b"; + teal = "#179299"; + sky = "#04a5e5"; + sapphire = "#209fb5"; + blue = "#1e66f5"; + lavender = "#7287fd"; + text = "#4c4f69"; + subtext1 = "#5c5f77"; + subtext0 = "#6c6f85"; + overlay2 = "#7c7f93"; + overlay1 = "#8c8fa1"; + overlay0 = "#9ca0b0"; + surface2 = "#acb0be"; + surface1 = "#bcc0cc"; + surface0 = "#ccd0da"; + base = "#eff1f5"; + mantle = "#e6e9ef"; + crust = "#dce0e8"; + }; + + frappe = { + rosewater = "#f2d5cf"; + flamingo = "#eebebe"; + pink = "#f4b8e4"; + mauve = "#ca9ee6"; + red = "#e78284"; + maroon = "#ea999c"; + peach = "#ef9f76"; + yellow = "#e5c890"; + green = "#a6d189"; + teal = "#81c8be"; + sky = "#99d1db"; + sapphire = "#85c1dc"; + blue = "#8caaee"; + lavender = "#babbf1"; + text = "#c6d0f5"; + subtext1 = "#b5bfe2"; + subtext0 = "#a5adce"; + overlay2 = "#949cbb"; + overlay1 = "#838ba7"; + overlay0 = "#737994"; + surface2 = "#626880"; + surface1 = "#51576d"; + surface0 = "#414559"; + base = "#303446"; + mantle = "#292c3c"; + crust = "#232634"; + }; + + macchiato = { + rosewater = "#f4dbd6"; + flamingo = "#f0c6c6"; + pink = "#f5bde6"; + mauve = "#c6a0f6"; + red = "#ed8796"; + maroon = "#ee99a0"; + peach = "#f5a97f"; + yellow = "#eed49f"; + green = "#a6da95"; + teal = "#8bd5ca"; + sky = "#91d7e3"; + sapphire = "#7dc4e4"; + blue = "#8aadf4"; + lavender = "#b7bdf8"; + text = "#cad3f5"; + subtext1 = "#b8c0e0"; + subtext0 = "#a5adcb"; + overlay2 = "#939ab7"; + overlay1 = "#8087a2"; + overlay0 = "#6e738d"; + surface2 = "#5b6078"; + surface1 = "#494d64"; + surface0 = "#363a4f"; + base = "#24273a"; + mantle = "#1e2030"; + crust = "#181926"; + }; + + mocha = { + rosewater = "#f5e0dc"; + flamingo = "#f2cdcd"; + pink = "#f5c2e7"; + mauve = "#cba6f7"; + red = "#f38ba8"; + maroon = "#eba0ac"; + peach = "#fab387"; + yellow = "#f9e2af"; + green = "#a6e3a1"; + teal = "#94e2d5"; + sky = "#89dceb"; + sapphire = "#74c7ec"; + blue = "#89b4fa"; + lavender = "#b4befe"; + text = "#cdd6f4"; + subtext1 = "#bac2de"; + subtext0 = "#a6adc8"; + overlay2 = "#9399b2"; + overlay1 = "#7f849c"; + overlay0 = "#6c7086"; + surface2 = "#585b70"; + surface1 = "#45475a"; + surface0 = "#313244"; + base = "#1e1e2e"; + mantle = "#181825"; + crust = "#11111b"; + }; + }; + + foot = { + latte = { + foreground = "4c4f69"; # Text + background = "eff1f5"; # Base + regular0 = "5c5f77"; # Subtext 1 + regular1 = "d20f39"; # red + regular2 = "40a02b"; # green + regular3 = "df8e1d"; # yellow + regular4 = "1e66f5"; # blue + regular5 = "ea76cb"; # pink + regular6 = "179299"; # teal + regular7 = "acb0be"; # Surface 2 + bright0 = "6c6f85"; # Subtext 0 + bright1 = "d20f39"; # red + bright2 = "40a02b"; # green + bright3 = "df8e1d"; # yellow + bright4 = "1e66f5"; # blue + bright5 = "ea76cb"; # pink + bright6 = "179299"; # teal + bright7 = "bcc0cc"; # Surface 1 + }; + + frappe = { + foreground = "c6d0f5"; # Text + background = "303446"; # Base + regular0 = "51576d"; # Surface 1 + regular1 = "e78284"; # red + regular2 = "a6d189"; # green + regular3 = "e5c890"; # yellow + regular4 = "8caaee"; # blue + regular5 = "f4b8e4"; # pink + regular6 = "81c8be"; # teal + regular7 = "b5bfe2"; # Subtext 1 + bright0 = "626880"; # Surface 2 + bright1 = "e78284"; # red + bright2 = "a6d189"; # green + bright3 = "e5c890"; # yellow + bright4 = "8caaee"; # blue + bright5 = "f4b8e4"; # pink + bright6 = "81c8be"; # teal + bright7 = "a5adce"; # Subtext 0 + }; + + macchiato = { + foreground = "cad3f5"; # Text + background = "24273a"; # Base + regular0 = "494d64"; # Surface 1 + regular1 = "ed8796"; # red + regular2 = "a6da95"; # green + regular3 = "eed49f"; # yellow + regular4 = "8aadf4"; # blue + regular5 = "f5bde6"; # pink + regular6 = "8bd5ca"; # teal + regular7 = "b8c0e0"; # Subtext 1 + bright0 = "5b6078"; # Surface 2 + bright1 = "ed8796"; # red + bright2 = "a6da95"; # green + bright3 = "eed49f"; # yellow + bright4 = "8aadf4"; # blue + bright5 = "f5bde6"; # pink + bright6 = "8bd5ca"; # teal + bright7 = "a5adcb"; # Subtext 0 + }; + + mocha = { + foreground = "cdd6f4"; # Text + background = "1e1e2e"; # Base + regular0 = "45475a"; # Surface 1 + regular1 = "f38ba8"; # red + regular2 = "a6e3a1"; # green + regular3 = "f9e2af"; # yellow + regular4 = "89b4fa"; # blue + regular5 = "f5c2e7"; # pink + regular6 = "94e2d5"; # teal + regular7 = "bac2de"; # Subtext 1 + bright0 = "585b70"; # Surface 2 + bright1 = "f38ba8"; # red + bright2 = "a6e3a1"; # green + bright3 = "f9e2af"; # yellow + bright4 = "89b4fa"; # blue + bright5 = "f5c2e7"; # pink + bright6 = "94e2d5"; # teal + bright7 = "a6adc8"; # Subtext 0 + }; + }; +} diff --git a/home/gui/catppuccin/solid.png b/home/gui/catppuccin/solid.png new file mode 100644 index 0000000000000000000000000000000000000000..2c512dd6394541a9e2c3c5b5b44eeb870f5b098f GIT binary patch literal 29882 zcmeAS@N?(olHy`uVBq!ia0y~y;Adc9;3(i=Vqjp9zZ0X%z`)p?>FgZf>FlgfP?VpR znUl)EpfRy_qOHf_0FhSz;H8U1*{wS)Tvqs%1qvRIYE=s1*y^;JPfh=Cvl_2wSNGxv zQ3W5;H@3-MU7inJqVmOSrNK9aPtc`9F;YOwM=wZ2ue z{C+xJOP=~!EPZWI@>;u}+=nY`Q)j*oQT9j@^q!#L21szhL6w=H)#0>Dzn;1_sFz*N775{M_8syb=cIqSVBa)D(sC%#sWR zcTeAd@J2py1_lKNPZ!6Kid%1PIr1_n2plkQxM+K!q2BXF#3ipA)z$B!84!Tg9h4@Z z`~`;?c%e)N28I-g1&nZB0}rzaoWn37v4IW2Gvc{`;5f7~N+EbB3>=sdJV~|;1V`cU zsAZ$UIGR94^BDufXbHkFS~iYWF$|-XC&Os7V6=6`z%be@7;P4eHVZ)gz0oeyXwP%B zSuolxU>I!{42fpJk2kj%IT;uj8W#Lte_QYcU!pVeP?;GE(g;|>sMKg^AO=K7)5d5{ zL8OM!!eO+iM4Dq6EgVJ*hta|T9s;A;VKh6y69dC&U5TZxyr^|E2euXf8dRgXW;EA8 zlL7<7Xs#K}4x`y&G&{gUU{GcU<+8U8EDQ_`4j2Akf6GzQ&V;lIZG$56;xg$`DWs)# zqoFaHHsCp%VKk?V77n9@13W*BW{1)2Fq$1kvjZ#yMjK0`jU`xGU>I#Ijb?|@>@b=g z;2|)Y9Y(VQJTVN#+TqAL*$E&IaQyneOSbWy0Ei974ZO&EHE#$Y@An*)8VwC_A^{Vl zX=5~}AZ-R8EgXhc;qc+}#qY4S0Hbj?wBl|wzDDB@b=gKsf=7N3+9db{NeL;H&^5Xp$W|VyzWGVJz_Ff2lRoT}6;ZV4TB&bPU>oHssUI zMx{nW1Dr;{#Aw44=(2T;H;Ffa_tjk=>}*^QoM2Th-&Np$pVjnOh{^lS}8aWGn& zkJjd+hZ(~2!)SIG%?_j4VKh6yLSVG9G}>5#rG*i5E*}%CvtSpqmC*{2&ploJT-G@y GGywoS=TkcX literal 0 HcmV?d00001 From a3e69641ff92deead12ca7dc08f3c1b3eeada183 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 12 Feb 2024 23:29:13 +0800 Subject: [PATCH 192/447] home(vscode): add vscodium and extensions --- home/vscode/home.nix | 23 +++++++++++++++++++++++ home/vscode/nixos.nix | 19 +++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 home/vscode/home.nix create mode 100644 home/vscode/nixos.nix diff --git a/home/vscode/home.nix b/home/vscode/home.nix new file mode 100644 index 00000000..6662884b --- /dev/null +++ b/home/vscode/home.nix @@ -0,0 +1,23 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.passthrough.vscode; +in mkIf cfg.enable { + programs.vscode = { + enable = true; + mutableExtensionsDir = false; + enableUpdateCheck = false; + enableExtensionUpdateCheck = false; + package = pkgs.vscodium; + extensions = with pkgs.vscode-extensions; [ + catppuccin.catppuccin-vsc catppuccin.catppuccin-vsc-icons + bbenoist.nix golang.go rust-lang.rust-analyzer + ]; + userSettings = { + "workbench.colorTheme" = "Catppuccin Frappé"; + "workbench.iconTheme" = "catppuccin-frappe"; + "[nix]"."editor.tabSize" = 2; + }; + }; +} diff --git a/home/vscode/nixos.nix b/home/vscode/nixos.nix new file mode 100644 index 00000000..7ecffe47 --- /dev/null +++ b/home/vscode/nixos.nix @@ -0,0 +1,19 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.home.vscode; +in { + options.home.vscode = { + enable = mkEnableOption "vscode text editor"; + }; + + config = { + users.homeModules = [ + # this module passes vscode configuration to home-manager + { passthrough.vscode = cfg; } + ]; + + users.home.persist.directories = mkIf cfg.enable [ ".config/VSCodium" ]; + }; +} From db1b3791ea3e120d6b34b809311c9dc2c6377be5 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 12 Feb 2024 23:30:11 +0800 Subject: [PATCH 193/447] spec(reimaden): enable vscode --- spec/reimaden/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/reimaden/default.nix b/spec/reimaden/default.nix index 64fb3dbc..6e0fc5a8 100644 --- a/spec/reimaden/default.nix +++ b/spec/reimaden/default.nix @@ -12,6 +12,7 @@ home = { gyroflow.enable = true; + vscode.enable = true; libreoffice.enable = true; minecraft.enable = true; steam.enable = true; From f52061c93d09b0e97efeeb5b65be98ebf768c308 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 12 Feb 2024 23:30:56 +0800 Subject: [PATCH 194/447] spec(chireiden): enable vscode --- spec/chireiden/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/chireiden/default.nix b/spec/chireiden/default.nix index 723f3c6a..c640e355 100644 --- a/spec/chireiden/default.nix +++ b/spec/chireiden/default.nix @@ -18,6 +18,7 @@ }; home = { + vscode.enable = true; minecraft.enable = true; steam.enable = true; }; From f5169cc44c1e15fcbbb07017901be9345e0c610a Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 13 Feb 2024 00:42:30 +0800 Subject: [PATCH 195/447] flake: bump inputs --- flake.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/flake.lock b/flake.lock index 111d6542..81f8fa8e 100644 --- a/flake.lock +++ b/flake.lock @@ -155,11 +155,11 @@ ] }, "locked": { - "lastModified": 1707467182, - "narHash": "sha256-/Bw/xgCXfj4nXDd8Xq+r1kaorfsYkkomMf5w5MpsDyA=", + "lastModified": 1707683400, + "narHash": "sha256-Zc+J3UO1Xpx+NL8UB6woPHyttEy9cXXtm+0uWwzuYDc=", "owner": "nix-community", "repo": "home-manager", - "rev": "5b9156fa9a8b8beba917b8f9adbfd27bf63e16af", + "rev": "21b078306a2ab68748abf72650db313d646cf2ca", "type": "github" }, "original": { @@ -213,11 +213,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1707268954, - "narHash": "sha256-2en1kvde3cJVc3ZnTy8QeD2oKcseLFjYPLKhIGDanQ0=", + "lastModified": 1707546158, + "narHash": "sha256-nYYJTpzfPMDxI8mzhQsYjIUX+grorqjKEU9Np6Xwy/0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "f8e2ebd66d097614d51a56a755450d4ae1632df1", + "rev": "d934204a0f8d9198e1e4515dd6fec76a139c87f0", "type": "github" }, "original": { From fa3ac51cf68450cd8dd838741587a05f328d7e85 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 13 Feb 2024 11:26:48 +0800 Subject: [PATCH 196/447] home(sway): set default workspace --- home/sway/home.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/home/sway/home.nix b/home/sway/home.nix index a5b61907..eccf1583 100644 --- a/home/sway/home.nix +++ b/home/sway/home.nix @@ -10,6 +10,7 @@ swaynag.enable = true; config = { + defaultWorkspace = "workspace number 1"; modifier = "Mod4"; keybindings = let modifier = config.wayland.windowManager.sway.config.modifier; From 8a0ec45d555daf4b809c8ab2336544f5c5958fcd Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 13 Feb 2024 11:55:39 +0800 Subject: [PATCH 197/447] home(gui): add flake background --- home/gui/catppuccin/flake.png | Bin 0 -> 50243 bytes home/gui/catppuccin/home.nix | 3 ++- 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 home/gui/catppuccin/flake.png diff --git a/home/gui/catppuccin/flake.png b/home/gui/catppuccin/flake.png new file mode 100644 index 0000000000000000000000000000000000000000..97fb644a2a2db6ff6e867e552d8cb809a9ba98f9 GIT binary patch literal 50243 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 literal 0 HcmV?d00001 diff --git a/home/gui/catppuccin/home.nix b/home/gui/catppuccin/home.nix index d06e419c..f08d6265 100644 --- a/home/gui/catppuccin/home.nix +++ b/home/gui/catppuccin/home.nix @@ -50,7 +50,8 @@ in mkIf cfg.enable { trayOutput = "primary"; } ]; - output."*".bg = mkForce "${palette.sway.${cfg.sway}.base} solid_color"; + #output."*".bg = mkForce "${palette.sway.${cfg.sway}.base} solid_color"; + output."*".bg = mkForce "${./flake.png} fill"; gaps.inner = 12; gaps.outer = 5; From 5641dc74c566659e4d8e0b9ce81e82b3ba193850 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 14 Feb 2024 03:23:48 +0800 Subject: [PATCH 198/447] spec(reimaden): add platform support kernel module --- spec/reimaden/ac71/Makefile | 25 +++ spec/reimaden/ac71/battery.c | 123 +++++++++++ spec/reimaden/ac71/battery.h | 26 +++ spec/reimaden/ac71/default.nix | 6 + spec/reimaden/ac71/ec.c | 101 +++++++++ spec/reimaden/ac71/ec.h | 256 +++++++++++++++++++++++ spec/reimaden/ac71/events.c | 369 +++++++++++++++++++++++++++++++++ spec/reimaden/ac71/events.h | 26 +++ spec/reimaden/ac71/fan.c | 212 +++++++++++++++++++ spec/reimaden/ac71/fan.h | 22 ++ spec/reimaden/ac71/hwmon.c | 35 ++++ spec/reimaden/ac71/hwmon.h | 26 +++ spec/reimaden/ac71/hwmon_fan.c | 152 ++++++++++++++ spec/reimaden/ac71/hwmon_fan.h | 10 + spec/reimaden/ac71/hwmon_pwm.c | 122 +++++++++++ spec/reimaden/ac71/hwmon_pwm.h | 10 + spec/reimaden/ac71/main.c | 130 ++++++++++++ spec/reimaden/ac71/misc.c | 35 ++++ spec/reimaden/ac71/misc.h | 12 ++ spec/reimaden/ac71/package.nix | 19 ++ spec/reimaden/ac71/pdev.c | 295 ++++++++++++++++++++++++++ spec/reimaden/ac71/pdev.h | 17 ++ spec/reimaden/ac71/pr.h | 9 + spec/reimaden/ac71/util.h | 7 + spec/reimaden/ac71/wmi.h | 24 +++ spec/reimaden/default.nix | 2 + 26 files changed, 2071 insertions(+) create mode 100644 spec/reimaden/ac71/Makefile create mode 100644 spec/reimaden/ac71/battery.c create mode 100644 spec/reimaden/ac71/battery.h create mode 100644 spec/reimaden/ac71/default.nix create mode 100644 spec/reimaden/ac71/ec.c create mode 100644 spec/reimaden/ac71/ec.h create mode 100644 spec/reimaden/ac71/events.c create mode 100644 spec/reimaden/ac71/events.h create mode 100644 spec/reimaden/ac71/fan.c create mode 100644 spec/reimaden/ac71/fan.h create mode 100644 spec/reimaden/ac71/hwmon.c create mode 100644 spec/reimaden/ac71/hwmon.h create mode 100644 spec/reimaden/ac71/hwmon_fan.c create mode 100644 spec/reimaden/ac71/hwmon_fan.h create mode 100644 spec/reimaden/ac71/hwmon_pwm.c create mode 100644 spec/reimaden/ac71/hwmon_pwm.h create mode 100644 spec/reimaden/ac71/main.c create mode 100644 spec/reimaden/ac71/misc.c create mode 100644 spec/reimaden/ac71/misc.h create mode 100644 spec/reimaden/ac71/package.nix create mode 100644 spec/reimaden/ac71/pdev.c create mode 100644 spec/reimaden/ac71/pdev.h create mode 100644 spec/reimaden/ac71/pr.h create mode 100644 spec/reimaden/ac71/util.h create mode 100644 spec/reimaden/ac71/wmi.h diff --git a/spec/reimaden/ac71/Makefile b/spec/reimaden/ac71/Makefile new file mode 100644 index 00000000..80f68679 --- /dev/null +++ b/spec/reimaden/ac71/Makefile @@ -0,0 +1,25 @@ +# SPDX-License-Identifier: GPL-2.0 +PWD := $(shell pwd) +MODNAME = ac71 +MODVER = 0.0 + +obj-m += $(MODNAME).o + +# alphabetically sorted +$(MODNAME)-y += ec.o \ + main.o \ + misc.o \ + pdev.o \ + events.o \ + +$(MODNAME)-$(CONFIG_ACPI_BATTERY) += battery.o +$(MODNAME)-$(CONFIG_HWMON) += hwmon.o hwmon_fan.o hwmon_pwm.o fan.o + +all: + $(MAKE) -C $(KERNEL_DIR) M=$(PWD) modules + +install: + $(MAKE) -C $(KERNEL_DIR) M=$(PWD) modules_install + +clean: + $(MAKE) -C $(KERNEL_DIR) M=$(PWD) clean diff --git a/spec/reimaden/ac71/battery.c b/spec/reimaden/ac71/battery.c new file mode 100644 index 00000000..67311c22 --- /dev/null +++ b/spec/reimaden/ac71/battery.c @@ -0,0 +1,123 @@ +// SPDX-License-Identifier: GPL-2.0 +#include "pr.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "ec.h" + +/* ========================================================================== */ + +#if IS_ENABLED(CONFIG_ACPI_BATTERY) + +static bool battery_hook_registered; + +static bool nobattery; +module_param(nobattery, bool, 0444); +MODULE_PARM_DESC(nobattery, "do not expose battery related controls (default=false)"); + +/* ========================================================================== */ + +static ssize_t charge_control_end_threshold_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int status = ec_read_byte(BATT_CHARGE_CTRL_ADDR); + + if (status < 0) + return status; + + status &= BATT_CHARGE_CTRL_VALUE_MASK; + + if (status == 0) + status = 100; + + return sprintf(buf, "%d\n", status); +} + +static ssize_t charge_control_end_threshold_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t count) +{ + int status, value; + + if (kstrtoint(buf, 10, &value) || !(1 <= value && value <= 100)) + return -EINVAL; + + status = ec_read_byte(BATT_CHARGE_CTRL_ADDR); + if (status < 0) + return status; + + if (value == 100) + value = 0; + + status = (status & ~BATT_CHARGE_CTRL_VALUE_MASK) | value; + + status = ec_write_byte(BATT_CHARGE_CTRL_ADDR, status); + + if (status < 0) + return status; + + return count; +} + +static DEVICE_ATTR_RW(charge_control_end_threshold); +static struct attribute *ac71_batt_attrs[] = { + &dev_attr_charge_control_end_threshold.attr, + NULL +}; +ATTRIBUTE_GROUPS(ac71_batt); + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 2, 0) +static int ac71_batt_add(struct power_supply *battery, struct acpi_battery_hook *hook) +#else +static int ac71_batt_add(struct power_supply *battery) +#endif +{ + if (strcmp(battery->desc->name, "BAT0") != 0) + return 0; + + return device_add_groups(&battery->dev, ac71_batt_groups); +} + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 2, 0) +static int ac71_batt_remove(struct power_supply *battery, struct acpi_battery_hook *hook) +#else +static int ac71_batt_remove(struct power_supply *battery) +#endif +{ + if (strcmp(battery->desc->name, "BAT0") != 0) + return 0; + + device_remove_groups(&battery->dev, ac71_batt_groups); + return 0; +} + +static struct acpi_battery_hook ac71_batt_hook = { + .add_battery = ac71_batt_add, + .remove_battery = ac71_batt_remove, + .name = "AC71 laptop battery extension", +}; + +int __init ac71_battery_setup(void) +{ + if (nobattery) + return -ENODEV; + + battery_hook_register(&ac71_batt_hook); + battery_hook_registered = true; + + return 0; +} + +void ac71_battery_cleanup(void) +{ + if (battery_hook_registered) + battery_hook_unregister(&ac71_batt_hook); +} + +#endif diff --git a/spec/reimaden/ac71/battery.h b/spec/reimaden/ac71/battery.h new file mode 100644 index 00000000..eeffb19c --- /dev/null +++ b/spec/reimaden/ac71/battery.h @@ -0,0 +1,26 @@ +// SPDX-License-Identifier: GPL-2.0 +#ifndef AC71_BATTERY_H +#define AC71_BATTERY_H + +#if IS_ENABLED(CONFIG_ACPI_BATTERY) + +#include + +int __init ac71_battery_setup(void); +void ac71_battery_cleanup(void); + +#else + +static inline int ac71_battery_setup(void) +{ + return 0; +} + +static inline void ac71_battery_cleanup(void) +{ + +} + +#endif + +#endif /* AC71_BATTERY_H */ diff --git a/spec/reimaden/ac71/default.nix b/spec/reimaden/ac71/default.nix new file mode 100644 index 00000000..87ccdd59 --- /dev/null +++ b/spec/reimaden/ac71/default.nix @@ -0,0 +1,6 @@ +{ config +, ... }: { + boot.extraModulePackages = [ + (config.boot.kernelPackages.callPackage ./package.nix { }) + ]; +} diff --git a/spec/reimaden/ac71/ec.c b/spec/reimaden/ac71/ec.c new file mode 100644 index 00000000..2ce7a02c --- /dev/null +++ b/spec/reimaden/ac71/ec.c @@ -0,0 +1,101 @@ +// SPDX-License-Identifier: GPL-2.0 +#include "pr.h" + +#include +#include +#include +#include +#include +#include + +#include "ec.h" +#include "wmi.h" + +/* ========================================================================== */ + +static DECLARE_RWSEM(ec_lock); + +/* ========================================================================== */ + +int __must_check ac71_ec_lock(void) +{ + return down_write_killable(&ec_lock); +} + +void ac71_ec_unlock(void) +{ + up_write(&ec_lock); +} + +int __must_check ac71_ec_transaction(uint16_t addr, uint16_t data, + union ac71_ec_result *result, bool read) +{ + uint8_t buf[] = { + addr & 0xFF, + addr >> 8, + data & 0xFF, + data >> 8, + 0, + read ? 1 : 0, + 0, + 0, + }; + static_assert(ARRAY_SIZE(buf) == 8); + + /* the returned ACPI_TYPE_BUFFER is 40 bytes long for some reason ... */ + uint8_t output_buf[sizeof(union acpi_object) + 40]; + + struct acpi_buffer input = { sizeof(buf), buf }, + output = { sizeof(output_buf), output_buf }; + union acpi_object *obj; + acpi_status status = AE_OK; + int err; + + if (read) err = down_read_killable(&ec_lock); + else err = down_write_killable(&ec_lock); + + if (err) + goto out; + + memset(output_buf, 0, sizeof(output_buf)); + + status = wmi_evaluate_method(AC71_WMI_WMBC_GUID, 0, + AC71_WMBC_GETSETULONG_ID, &input, &output); + + if (read) up_read(&ec_lock); + else up_write(&ec_lock); + + if (ACPI_FAILURE(status)) { + err = -EIO; + goto out; + } + + obj = output.pointer; + + if (result) { + if (obj && obj->type == ACPI_TYPE_BUFFER && obj->buffer.length >= sizeof(*result)) { + memcpy(result, obj->buffer.pointer, sizeof(*result)); + } else { + err = -ENODATA; + goto out; + } + } + +out: + pr_debug( + "%s(addr=%#06x, data=%#06x, result=%c, read=%c)" + ": (%d) [%#010lx] %s" + ": [%*ph]\n", + + __func__, (unsigned int) addr, (unsigned int) data, + result ? 'y' : 'n', read ? 'y' : 'n', + err, (unsigned long) status, acpi_format_exception(status), + (obj && obj->type == ACPI_TYPE_BUFFER) ? + (int) min(sizeof(*result), (size_t) obj->buffer.length) : 0, + (obj && obj->type == ACPI_TYPE_BUFFER) ? + obj->buffer.pointer : NULL + ); + + return err; +} +ALLOW_ERROR_INJECTION(ac71_ec_transaction, ERRNO); diff --git a/spec/reimaden/ac71/ec.h b/spec/reimaden/ac71/ec.h new file mode 100644 index 00000000..739cbb6c --- /dev/null +++ b/spec/reimaden/ac71/ec.h @@ -0,0 +1,256 @@ +// SPDX-License-Identifier: GPL-2.0 +#ifndef AC71_LAPTOP_EC_H +#define AC71_LAPTOP_EC_H + +#include +#include + +/* ========================================================================== */ +/* + * EC register addresses and bitmasks, + * some of them are not used, + * only for documentation + */ + +#define ADDR(page, offset) (((uint16_t)(page) << 8) | ((uint16_t)(offset))) + +/* ========================================================================== */ + +#define AP_BIOS_BYTE_ADDR ADDR(0x07, 0xA4) +#define AP_BIOS_BYTE_FN_LOCK_SWITCH BIT(3) + +/* ========================================================================== */ + +/* battery charger control register */ +#define BATT_CHARGE_CTRL_ADDR ADDR(0x07, 0xB9) +#define BATT_CHARGE_CTRL_VALUE_MASK GENMASK(6, 0) +#define BATT_CHARGE_CTRL_REACHED BIT(7) + +#define BATT_STATUS_ADDR ADDR(0x04, 0x32) +#define BATT_STATUS_DISCHARGING BIT(0) + +/* possibly temp (in C) = value / 10 + X */ +#define BATT_TEMP_ADDR ADDR(0x04, 0xA2) + +#define BATT_ALERT_ADDR ADDR(0x04, 0x94) + +#define BIOS_CTRL_1_ADDR ADDR(0x07, 0x4E) +#define BIOS_CTRL_1_FN_LOCK_STATUS BIT(4) + +#define BIOS_CTRL_2_ADDR ADDR(0x07, 0x82) +#define BIOS_CTRL_2_FAN_V2_NEW BIT(0) +#define BIOS_CTRL_2_FAN_QKEY BIT(1) +#define BIOS_CTRL_2_OFFICE_MODE_FAN_TABLE_TYPE BIT(2) +#define BIOS_CTRL_2_FAN_V3 BIT(3) +#define BIOS_CTRL_2_DEFAULT_MODE BIT(4) + +/* 3rd control register of a different kind */ +#define BIOS_CTRL_3_ADDR ADDR(0x7, 0xA3) +#define BIOS_CTRL_3_FAN_REDUCED_DUTY_CYCLE BIT(5) +#define BIOS_CTRL_3_FAN_ALWAYS_ON BIT(6) + +#define BIOS_INFO_1_ADDR ADDR(0x04, 0x9F) +#define BIOS_INFO_5_ADDR ADDR(0x04, 0x66) + +/* ========================================================================== */ + +#define CTRL_1_ADDR ADDR(0x07, 0x41) +#define CTRL_1_MANUAL_MODE BIT(0) +#define CTRL_1_ITE_KBD_EFFECT_REACTIVE BIT(3) +#define CTRL_1_FAN_ABNORMAL BIT(5) + +#define CTRL_2_ADDR ADDR(0x07, 0x8C) +#define CTRL_2_SINGLE_COLOR_KEYBOARD BIT(0) +#define CTRL_2_SINGLE_COLOR_KBD_BL_OFF BIT(1) +#define CTRL_2_TURBO_LEVEL_MASK GENMASK(3, 2) +#define CTRL_2_TURBO_LEVEL_0 0x00 +#define CTRL_2_TURBO_LEVEL_1 BIT(2) +#define CTRL_2_TURBO_LEVEL_2 BIT(3) +#define CTRL_2_TURBO_LEVEL_3 (BIT(2) | BIT(3)) +// #define CTRL_2_SINGLE_COLOR_KBD_? BIT(4) +#define CTRL_2_SINGLE_COLOR_KBD_BRIGHTNESS GENMASK(7, 5) + +#define CTRL_3_ADDR ADDR(0x07, 0xA5) +#define CTRL_3_PWR_LED_MASK GENMASK(1, 0) +#define CTRL_3_PWR_LED_NONE BIT(1) +#define CTRL_3_PWR_LED_BOTH BIT(0) +#define CTRL_3_PWR_LED_LEFT 0x00 +#define CTRL_3_FAN_QUIET BIT(2) +#define CTRL_3_OVERBOOST BIT(4) +#define CTRL_3_HIGH_PWR BIT(7) + +#define CTRL_4_ADDR ADDR(0x07, 0xA6) +#define CTRL_4_OVERBOOST_DYN_TEMP_OFF BIT(1) +#define CTRL_4_TOUCHPAD_TOGGLE_OFF BIT(6) + +#define CTRL_5_ADDR ADDR(0x07, 0xC5) + +#define CTRL_6_ADDR ADDR(0x07, 0x8E) + +/* ========================================================================== */ + +#define DEVICE_STATUS_ADDR ADDR(0x04, 0x7B) +#define DEVICE_STATUS_WIFI_ON BIT(7) + +/* ========================================================================== */ + +/* fan control register */ +#define FAN_CTRL_ADDR ADDR(0x07, 0x51) +#define FAN_CTRL_LEVEL_MASK GENMASK(2, 0) +#define FAN_CTRL_TURBO BIT(4) +#define FAN_CTRL_AUTO BIT(5) +#define FAN_CTRL_FAN_BOOST BIT(6) + +#define FAN_RPM_1_ADDR ADDR(0x04, 0x64) +#define FAN_RPM_2_ADDR ADDR(0x04, 0x6C) + +#define FAN_PWM_1_ADDR ADDR(0x18, 0x04) +#define FAN_PWM_2_ADDR ADDR(0x18, 0x09) + +#define FAN_TEMP_1_ADDR ADDR(0x04, 0x3e) +#define FAN_TEMP_2_ADDR ADDR(0x04, 0x4f) + +#define FAN_MODE_INDEX_ADDR ADDR(0x07, 0xAB) +#define FAN_MODE_INDEX_LOW_MASK GENMASK(3, 0) +#define FAN_MODE_INDEX_HIGH_MASK GENMASK(7, 4) + +/* ========================================================================== */ + +/* + * the actual keyboard type is seemingly determined from this number, + * the project id, the controller firmware version, + * and the HID usage page of the descriptor of the controller + */ +#define KEYBOARD_TYPE_ADDR ADDR(0x07, 0x3C) +#define KEYBOARD_TYPE_101 25 +#define KEYBOARD_TYPE_101M 41 +#define KEYBOARD_TYPE_102 17 +#define KEYBOARD_TYPE_102M 33 +#define KEYBOARD_TYPE_85 25 +#define KEYBOARD_TYPE_86 17 +#define KEYBOARD_TYPE_87 73 +#define KEYBOARD_TYPE_88 65 +#define KEYBOARD_TYPE_97 57 +#define KEYBOARD_TYPE_98 49 +#define KEYBOARD_TYPE_99 121 +#define KEYBOARD_TYPE_100 113 + +/* ========================================================================== */ + +#define PROJ_ID_ADDR ADDR(0x07, 0x40) +#define PROJ_ID_GIxKN 1 +#define PROJ_ID_GJxKN 2 +#define PROJ_ID_GKxCN 3 +#define PROJ_ID_GIxCN 4 +#define PROJ_ID_GJxCN 5 +#define PROJ_ID_GK5CN_X 6 +#define PROJ_ID_GK7CN_S 7 +#define PROJ_ID_GK7CPCS_GK5CQ7Z 8 +#define PROJ_ID_IDP 11 +#define PROJ_ID_ID6Y 12 +#define PROJ_ID_ID7Y 13 +#define PROJ_ID_PF4MU_PF4MN_PF5MU 14 +#define PROJ_ID_CML_GAMING 15 +#define PROJ_ID_GK7NXXR 16 +#define PROJ_ID_GM5MU1Y 17 + +/* ========================================================================== */ + +#define STATUS_1_ADDR ADDR(0x07, 0x68) +#define STATUS_1_SUPER_KEY_LOCK BIT(0) +#define STATUS_1_LIGHTBAR BIT(1) +#define STATUS_1_FAN_BOOST BIT(2) + +#define SUPPORT_1_ADDR ADDR(0x07, 0x65) +#define SUPPORT_1_AIRPLANE_MODE BIT(0) +#define SUPPORT_1_GPS_SWITCH BIT(1) +#define SUPPORT_1_OVERCLOCK BIT(2) +#define SUPPORT_1_MACRO_KEY BIT(3) +#define SUPPORT_1_SHORTCUT_KEY BIT(4) +#define SUPPORT_1_SUPER_KEY_LOCK BIT(5) +#define SUPPORT_1_LIGHTBAR BIT(6) +#define SUPPORT_1_FAN_BOOST BIT(7) + +#define SUPPORT_2_ADDR ADDR(0x07, 0x66) +#define SUPPORT_2_SILENT_MODE BIT(0) +#define SUPPORT_2_USB_CHARGING BIT(1) +#define SUPPORT_2_SINGLE_ZONE_KBD BIT(2) +#define SUPPORT_2_CHINA_MODE BIT(5) +#define SUPPORT_2_MY_BATTERY BIT(6) + +#define SUPPORT_5_ADDR ADDR(0x07, 0x42) +#define SUPPORT_5_FAN_TURBO BIT(4) +#define SUPPORT_5_FAN BIT(5) + +#define SUPPORT_6 ADDR(0x07, 0x8E) +#define SUPPORT_6_FAN3P5 BIT(1) + +/* ========================================================================== */ + +#define TRIGGER_1_ADDR ADDR(0x07, 0x67) +#define TRIGGER_1_SUPER_KEY_LOCK BIT(0) +#define TRIGGER_1_LIGHTBAR BIT(1) +#define TRIGGER_1_FAN_BOOST BIT(2) +#define TRIGGER_1_SILENT_MODE BIT(3) +#define TRIGGER_1_USB_CHARGING BIT(4) + +#define TRIGGER_2_ADDR ADDR(0x07, 0x5D) + +/* ========================================================================== */ + +#define PLATFORM_ID_ADDR ADDR(0x04, 0x56) +#define POWER_STATUS_ADDR ADDR(0x04, 0x5E) +#define POWER_SOURCE_ADDR ADDR(0x04, 0x90) + +#define PL1_ADDR ADDR(0x07, 0x83) +#define PL2_ADDR ADDR(0x07, 0x84) +#define PL4_ADDR ADDR(0x07, 0x85) + +/* ========================================================================== */ + +union ac71_ec_result { + uint32_t dword; + struct { + uint16_t w1; + uint16_t w2; + } words; + struct { + uint8_t b1; + uint8_t b2; + uint8_t b3; + uint8_t b4; + } bytes; +}; + +int __must_check ac71_ec_transaction(uint16_t addr, uint16_t data, + union ac71_ec_result *result, bool read); + +static inline __must_check int ac71_ec_read(uint16_t addr, union ac71_ec_result *result) +{ + return ac71_ec_transaction(addr, 0, result, true); +} + +static inline __must_check int ac71_ec_write(uint16_t addr, uint16_t data) +{ + return ac71_ec_transaction(addr, data, NULL, false); +} + +static inline __must_check int ec_write_byte(uint16_t addr, uint8_t data) +{ + return ac71_ec_write(addr, data); +} + +static inline __must_check int ec_read_byte(uint16_t addr) +{ + union ac71_ec_result result; + int err; + + err = ac71_ec_read(addr, &result); + + if (err) + return err; + + return result.bytes.b1; +} + +#endif /* AC71_LAPTOP_EC_H */ diff --git a/spec/reimaden/ac71/events.c b/spec/reimaden/ac71/events.c new file mode 100644 index 00000000..5f3212a1 --- /dev/null +++ b/spec/reimaden/ac71/events.c @@ -0,0 +1,369 @@ +// SPDX-License-Identifier: GPL-2.0 +#include "pr.h" + +#include +#include +#include +#include +#include +#include +#include + +#include "misc.h" +#include "pdev.h" +#include "wmi.h" + +/* ========================================================================== */ + +#define KBD_BL_LED_SUFFIX ":" LED_FUNCTION_KBD_BACKLIGHT + +/* ========================================================================== */ + +static struct { + const char *guid; + bool handler_installed; +} ac71_wmi_event_guids[] = { + { .guid = AC71_WMI_EVENT0_GUID }, + { .guid = AC71_WMI_EVENT1_GUID }, + { .guid = AC71_WMI_EVENT2_GUID }, +}; + +static const struct key_entry ac71_wmi_hotkeys[] = { + + /* reported via keyboard controller */ + { KE_IGNORE, 0x01, { KEY_CAPSLOCK }}, + { KE_IGNORE, 0x02, { KEY_NUMLOCK }}, + { KE_IGNORE, 0x03, { KEY_SCROLLLOCK }}, + + /* reported via "video bus" */ + { KE_IGNORE, 0x14, { KEY_BRIGHTNESSUP }}, + { KE_IGNORE, 0x15, { KEY_BRIGHTNESSDOWN }}, + + /* reported via keyboard controller */ + { KE_IGNORE, 0x35, { KEY_MUTE }}, + { KE_IGNORE, 0x36, { KEY_VOLUMEDOWN }}, + { KE_IGNORE, 0x37, { KEY_VOLUMEUP }}, + + /* + * not reported by other means when in manual mode, + * handled automatically when it automatic mode + */ + { KE_KEY, 0xb1, { KEY_KBDILLUMDOWN }}, + { KE_KEY, 0xb2, { KEY_KBDILLUMUP }}, + { KE_KEY, 0xb8, { KEY_FN_ESC }}, + + { KE_END } + +}; + +/* ========================================================================== */ + +static struct input_dev *ac71_input_dev; + +/* ========================================================================== */ + +static void toggle_fn_lock_from_event_handler(void) +{ + int status = ac71_fn_lock_get_state(); + + if (status < 0) + return; + + /* seemingly the returned status in the WMI event handler is not the current */ + pr_info("setting Fn lock state from %d to %d\n", !status, status); + ac71_fn_lock_set_state(status); +} + +#if IS_ENABLED(CONFIG_LEDS_BRIGHTNESS_HW_CHANGED) +extern struct rw_semaphore leds_list_lock; +extern struct list_head leds_list; + +static void emit_keyboard_led_hw_changed(void) +{ + struct led_classdev *led; + + if (down_read_killable(&leds_list_lock)) + return; + + list_for_each_entry (led, &leds_list, node) { + size_t name_length; + const char *suffix; + + if (!(led->flags & LED_BRIGHT_HW_CHANGED)) + continue; + + name_length = strlen(led->name); + + if (name_length < strlen(KBD_BL_LED_SUFFIX)) + continue; + + suffix = led->name + name_length - strlen(KBD_BL_LED_SUFFIX); + + if (strcmp(suffix, KBD_BL_LED_SUFFIX) == 0) { + if (mutex_lock_interruptible(&led->led_access)) + break; + + if (led_update_brightness(led) >= 0) + led_classdev_notify_brightness_hw_changed(led, led->brightness); + + mutex_unlock(&led->led_access); + break; + } + } + + up_read(&leds_list_lock); +} +#endif + +static void ac71_wmi_event_d2_handler(union acpi_object *obj) +{ + bool do_report = true; + + if (!obj || obj->type != ACPI_TYPE_INTEGER) + return; + + switch (obj->integer.value) { + /* caps lock */ + case 1: + pr_info("caps lock\n"); + break; + + /* num lock */ + case 2: + pr_info("num lock\n"); + break; + + /* scroll lock */ + case 3: + pr_info("scroll lock\n"); + break; + + /* touchpad on */ + case 4: + pr_info("touchpad on\n"); + break; + + /* touchpad off */ + case 5: + pr_info("touchpad off\n"); + break; + + /* increase screen brightness */ + case 20: + pr_info("increase screen brightness\n"); + /* do_report = !acpi_video_handles_brightness_key_presses() */ + break; + + /* decrease screen brightness */ + case 21: + pr_info("decrease screen brightness\n"); + /* do_report = !acpi_video_handles_brightness_key_presses() */ + break; + + /* mute/unmute */ + case 53: + pr_info("toggle mute\n"); + break; + + /* decrease volume */ + case 54: + pr_info("decrease volume\n"); + break; + + /* increase volume */ + case 55: + pr_info("increase volume\n"); + break; + + /* enable super key (win key) lock */ + case 64: + pr_info("enable super key lock\n"); + break; + + /* decrease volume */ + case 65: + pr_info("disable super key lock\n"); + break; + + /* enable/disable airplane mode */ + case 164: + pr_info("toggle airplane mode\n"); + break; + + /* super key (win key) lock state changed */ + case 165: + pr_info("super key lock state changed\n"); + sysfs_notify(&ac71_platform_dev->dev.kobj, NULL, "super_key_lock"); + break; + + case 166: + pr_info("lightbar state changed\n"); + break; + + /* fan boost state changed */ + case 167: + pr_info("fan boost state changed\n"); + break; + + /* charger unplugged/plugged in */ + case 171: + pr_info("AC plugged/unplugged\n"); + break; + + /* perf mode button pressed */ + case 176: + pr_info("change perf mode\n"); + /* TODO: should it be handled here? */ + break; + + /* increase keyboard backlight */ + case 177: + pr_info("keyboard backlight decrease\n"); + /* TODO: should it be handled here? */ + break; + + /* decrease keyboard backlight */ + case 178: + pr_info("keyboard backlight increase\n"); + /* TODO: should it be handled here? */ + break; + + /* toggle Fn lock (Fn+ESC)*/ + case 184: + pr_info("toggle Fn lock\n"); + toggle_fn_lock_from_event_handler(); + sysfs_notify(&ac71_platform_dev->dev.kobj, NULL, "fn_lock"); + break; + + /* keyboard backlight brightness changed */ + case 240: + pr_info("keyboard backlight changed\n"); + +#if IS_ENABLED(CONFIG_LEDS_BRIGHTNESS_HW_CHANGED) + emit_keyboard_led_hw_changed(); +#endif + break; + + default: + pr_warn("unknown code: %u\n", (unsigned int) obj->integer.value); + break; + } + + if (do_report && ac71_input_dev) + sparse_keymap_report_event(ac71_input_dev, + obj->integer.value, 1, true); + +} + +static void ac71_wmi_event_handler(u32 value, void *context) +{ + struct acpi_buffer response = { ACPI_ALLOCATE_BUFFER, NULL }; + union acpi_object *obj; + acpi_status status; + + pr_info("%s(value=%#04x)\n", __func__, (unsigned int) value); + status = wmi_get_event_data(value, &response); + + if (ACPI_FAILURE(status)) { + pr_err("bad WMI event status: %#010x\n", (unsigned int) status); + return; + } + + obj = response.pointer; + + if (obj) { + pr_info("obj->type = %d\n", (int) obj->type); + if (obj->type == ACPI_TYPE_INTEGER) { + pr_info("int = %u\n", (unsigned int) obj->integer.value); + } else if (obj->type == ACPI_TYPE_STRING) { + pr_info("string = '%s'\n", obj->string.pointer); + } else if (obj->type == ACPI_TYPE_BUFFER) { + uint32_t i; + + for (i = 0; i < obj->buffer.length; i++) + pr_info("buf[%u] = %#04x\n", + (unsigned int) i, + (unsigned int) obj->buffer.pointer[i]); + } + } + + switch (value) { + case 0xd2: + ac71_wmi_event_d2_handler(obj); + break; + case 0xd1: + case 0xd0: + break; + } + + kfree(obj); +} + +static int __init setup_input_dev(void) +{ + int err = 0; + + ac71_input_dev = input_allocate_device(); + if (!ac71_input_dev) + return -ENOMEM; + + ac71_input_dev->name = "AC71 laptop input device"; + ac71_input_dev->phys = "ac71/input0"; + ac71_input_dev->id.bustype = BUS_HOST; + ac71_input_dev->dev.parent = &ac71_platform_dev->dev; + + err = sparse_keymap_setup(ac71_input_dev, ac71_wmi_hotkeys, NULL); + if (err) + goto err_free_device; + + err = input_register_device(ac71_input_dev); + if (err) + goto err_free_device; + + return err; + +err_free_device: + input_free_device(ac71_input_dev); + ac71_input_dev = NULL; + + return err; +} + +/* ========================================================================== */ + +int __init ac71_wmi_events_setup(void) +{ + int err = 0, i; + + (void) setup_input_dev(); + + for (i = 0; i < ARRAY_SIZE(ac71_wmi_event_guids); i++) { + const char *guid = ac71_wmi_event_guids[i].guid; + acpi_status status = + wmi_install_notify_handler(guid, ac71_wmi_event_handler, NULL); + + if (ACPI_FAILURE(status)) { + pr_warn("could not install WMI notify handler for '%s': [%#010lx] %s\n", + guid, (unsigned long) status, acpi_format_exception(status)); + } else { + ac71_wmi_event_guids[i].handler_installed = true; + } + } + + return err; +} + +void ac71_wmi_events_cleanup(void) +{ + int i; + + for (i = 0; i < ARRAY_SIZE(ac71_wmi_event_guids); i++) { + if (ac71_wmi_event_guids[i].handler_installed) { + wmi_remove_notify_handler(ac71_wmi_event_guids[i].guid); + ac71_wmi_event_guids[i].handler_installed = false; + } + } + + if (ac71_input_dev) + input_unregister_device(ac71_input_dev); +} diff --git a/spec/reimaden/ac71/events.h b/spec/reimaden/ac71/events.h new file mode 100644 index 00000000..313b9487 --- /dev/null +++ b/spec/reimaden/ac71/events.h @@ -0,0 +1,26 @@ +// SPDX-License-Identifier: GPL-2.0 +#ifndef AC71_WMI_EVENTS_H +#define AC71_WMI_EVENTS_H + +#if IS_ENABLED(CONFIG_LEDS_CLASS) + +#include + +int __init ac71_wmi_events_setup(void); +void ac71_wmi_events_cleanup(void); + +#else + +static inline int ac71_wmi_events_setup(void) +{ + return 0; +} + +static inline void ac71_wmi_events_cleanup(void) +{ + +} + +#endif + +#endif /* AC71_WMI_EVENTS_H */ diff --git a/spec/reimaden/ac71/fan.c b/spec/reimaden/ac71/fan.c new file mode 100644 index 00000000..fb6cb29c --- /dev/null +++ b/spec/reimaden/ac71/fan.c @@ -0,0 +1,212 @@ +// SPDX-License-Identifier: GPL-2.0 +#include "pr.h" + +#include + +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 12, 0) +static inline int fixp_linear_interpolate(int x0, int y0, int x1, int y1, int x) +{ + if (y0 == y1 || x == x0) + return y0; + if (x1 == x0 || x == x1) + return y1; + + return y0 + ((y1 - y0) * (x - x0) / (x1 - x0)); +} +#else +#include /* fixp-arith.h needs it, but doesn't include it */ +#include +#endif + +#include +#include +#include + +#include "ec.h" +#include "fan.h" +#include "util.h" + +/* ========================================================================== */ + +static const uint16_t ac71_fan_rpm_addrs[] = { + FAN_RPM_1_ADDR, + FAN_RPM_2_ADDR, +}; + +static const uint16_t ac71_fan_pwm_addrs[] = { + FAN_PWM_1_ADDR, + FAN_PWM_2_ADDR, +}; + +static const uint16_t ac71_fan_temp_addrs[] = { + FAN_TEMP_1_ADDR, + FAN_TEMP_2_ADDR, +}; + +/* ========================================================================== */ + +static DEFINE_MUTEX(fan_lock); + +/* ========================================================================== */ + +static int ac71_fan_get_status(void) +{ + return ec_read_byte(FAN_CTRL_ADDR); +} + +/* 'fan_lock' must be held */ +static int ac71_fan_get_mode_unlocked(void) +{ + int err; + + lockdep_assert_held(&fan_lock); + + err = ec_read_byte(CTRL_1_ADDR); + if (err < 0) + return err; + + if (err & CTRL_1_MANUAL_MODE) { + err = ac71_fan_get_status(); + if (err < 0) + return err; + + if (err & FAN_CTRL_FAN_BOOST) { + err = ac71_fan_get_pwm(0); + + if (err < 0) + return err; + + if (err == FAN_MAX_PWM) + err = 0; /* disengaged */ + else + err = 1; /* manual */ + + } else if (err & FAN_CTRL_AUTO) { + err = 2; /* automatic fan control */ + } else { + err = 1; /* manual */ + } + } else { + err = 2; /* automatic fan control */ + } + + return err; +} + +/* ========================================================================== */ + +int ac71_fan_get_rpm(uint8_t fan_index) +{ + union ac71_ec_result res; + int err; + + if (fan_index >= ARRAY_SIZE(ac71_fan_rpm_addrs)) + return -EINVAL; + + err = ac71_ec_read(ac71_fan_rpm_addrs[fan_index], &res); + + if (err) + return err; + + return res.bytes.b1 << 8 | res.bytes.b2; +} + +int ac71_fan_query_abnorm(void) +{ + int res = ec_read_byte(CTRL_1_ADDR); + + if (res < 0) + return res; + + return !!(res & CTRL_1_FAN_ABNORMAL); +} + +int ac71_fan_get_pwm(uint8_t fan_index) +{ + int err; + + if (fan_index >= ARRAY_SIZE(ac71_fan_pwm_addrs)) + return -EINVAL; + + err = ec_read_byte(ac71_fan_pwm_addrs[fan_index]); + if (err < 0) + return err; + + return fixp_linear_interpolate(0, 0, FAN_MAX_PWM, U8_MAX, err); +} + +int ac71_fan_set_pwm(uint8_t fan_index, uint8_t pwm) +{ + if (fan_index >= ARRAY_SIZE(ac71_fan_pwm_addrs)) + return -EINVAL; + + return ec_write_byte(ac71_fan_pwm_addrs[fan_index], + fixp_linear_interpolate(0, 0, + U8_MAX, FAN_MAX_PWM, + pwm)); +} + +int ac71_fan_get_temp(uint8_t fan_index) +{ + if (fan_index >= ARRAY_SIZE(ac71_fan_temp_addrs)) + return -EINVAL; + + return ec_read_byte(ac71_fan_temp_addrs[fan_index]); +} + +int ac71_fan_get_mode(void) +{ + int err = mutex_lock_interruptible(&fan_lock); + + if (err) + return err; + + err = ac71_fan_get_mode_unlocked(); + + mutex_unlock(&fan_lock); + return err; +} + +int ac71_fan_set_mode(uint8_t mode) +{ + int err, oldpwm; + + err = mutex_lock_interruptible(&fan_lock); + if (err) + return err; + + switch (mode) { + case 0: + err = ec_write_byte(FAN_CTRL_ADDR, FAN_CTRL_FAN_BOOST); + if (err) + goto out; + + err = ac71_fan_set_pwm(0, FAN_MAX_PWM); + break; + case 1: + oldpwm = err = ac71_fan_get_pwm(0); + if (err < 0) + goto out; + + err = ec_write_byte(FAN_CTRL_ADDR, FAN_CTRL_FAN_BOOST); + if (err < 0) + goto out; + + err = ac71_fan_set_pwm(0, oldpwm); + if (err < 0) + (void) ec_write_byte(FAN_CTRL_ADDR, 0x80 | FAN_CTRL_AUTO); + /* try to restore automatic fan control */ + + break; + case 2: + err = ec_write_byte(FAN_CTRL_ADDR, 0x80 | FAN_CTRL_AUTO); + break; + default: + err = -EINVAL; + break; + } + +out: + mutex_unlock(&fan_lock); + return err; +} diff --git a/spec/reimaden/ac71/fan.h b/spec/reimaden/ac71/fan.h new file mode 100644 index 00000000..deab2b99 --- /dev/null +++ b/spec/reimaden/ac71/fan.h @@ -0,0 +1,22 @@ +#ifndef AC71_LAPTOP_FAN_H +#define AC71_LAPTOP_FAN_H + +#include + +/* ========================================================================== */ + +#define FAN_MAX_PWM 200 +#define FAN_CTRL_MAX_LEVEL 7 +#define FAN_CTRL_LEVEL(level) (128 + (level)) + +/* ========================================================================== */ + +int ac71_fan_get_rpm(uint8_t fan_index); +int ac71_fan_query_abnorm(void); +int ac71_fan_get_pwm(uint8_t fan_index); +int ac71_fan_set_pwm(uint8_t fan_index, uint8_t pwm); +int ac71_fan_get_temp(uint8_t fan_index); +int ac71_fan_get_mode(void); +int ac71_fan_set_mode(uint8_t mode); + +#endif /* AC71_LAPTOP_FAN_H */ diff --git a/spec/reimaden/ac71/hwmon.c b/spec/reimaden/ac71/hwmon.c new file mode 100644 index 00000000..5098dead --- /dev/null +++ b/spec/reimaden/ac71/hwmon.c @@ -0,0 +1,35 @@ +// SPDX-License-Identifier: GPL-2.0 +#include "pr.h" + +#include +#include +#include +#include + +#include "hwmon_fan.h" +#include "hwmon_pwm.h" + +/* ========================================================================== */ + +static bool nohwmon; +module_param(nohwmon, bool, 0444); +MODULE_PARM_DESC(nohwmon, "do not report to the hardware monitoring subsystem (default=false)"); + +/* ========================================================================== */ + +int __init ac71_hwmon_setup(void) +{ + if (nohwmon) + return -ENODEV; + + (void) ac71_hwmon_fan_setup(); + (void) ac71_hwmon_pwm_setup(); + + return 0; +} + +void ac71_hwmon_cleanup(void) +{ + (void) ac71_hwmon_fan_cleanup(); + (void) ac71_hwmon_pwm_cleanup(); +} diff --git a/spec/reimaden/ac71/hwmon.h b/spec/reimaden/ac71/hwmon.h new file mode 100644 index 00000000..13489234 --- /dev/null +++ b/spec/reimaden/ac71/hwmon.h @@ -0,0 +1,26 @@ +// SPDX-License-Identifier: GPL-2.0 +#ifndef AC71_HWMON_H +#define AC71_HWMON_H + +#if IS_ENABLED(CONFIG_HWMON) + +#include + +int __init ac71_hwmon_setup(void); +void ac71_hwmon_cleanup(void); + +#else + +static inline int ac71_hwmon_setup(void) +{ + return 0; +} + +static inline void ac71_hwmon_cleanup(void) +{ + +} + +#endif + +#endif /* AC71_HWMON_H */ diff --git a/spec/reimaden/ac71/hwmon_fan.c b/spec/reimaden/ac71/hwmon_fan.c new file mode 100644 index 00000000..48df41a1 --- /dev/null +++ b/spec/reimaden/ac71/hwmon_fan.c @@ -0,0 +1,152 @@ +// SPDX-License-Identifier: GPL-2.0 +#include "pr.h" + +#include +#include +#include +#include +#include +#include + +#include "ec.h" +#include "fan.h" +#include "pdev.h" + +/* ========================================================================== */ + +static struct device *ac71_hwmon_fan_dev; + +/* ========================================================================== */ + +static umode_t ac71_hwmon_fan_is_visible(const void *data, enum hwmon_sensor_types type, + u32 attr, int channel) +{ + switch (type) { + case hwmon_fan: + switch (attr) { + case hwmon_fan_input: + case hwmon_fan_fault: + return 0444; + } + break; + case hwmon_temp: + switch (attr) { + case hwmon_temp_input: + case hwmon_temp_label: + return 0444; + } + default: + break; + } + + return 0; +} + +static int ac71_hwmon_fan_read(struct device *device, enum hwmon_sensor_types type, + u32 attr, int channel, long *value) +{ + int err; + + switch (type) { + case hwmon_fan: + switch (attr) { + case hwmon_fan_input: + err = ac71_fan_get_rpm(channel); + if (err < 0) + return err; + + *value = err; + break; + default: + return -EOPNOTSUPP; + } + break; + case hwmon_temp: + switch (attr) { + case hwmon_temp_input: + err = ac71_fan_get_temp(channel); + if (err < 0) + return err; + + *value = err * 1000; + break; + default: + return -EOPNOTSUPP; + } + break; + default: + return -EOPNOTSUPP; + } + + return 0; +} + +static int ac71_hwmon_fan_read_string(struct device *dev, enum hwmon_sensor_types type, + u32 attr, int channel, const char **str) +{ + static const char * const temp_labels[] = { + "fan1_temp", + "fan2_temp", + }; + + switch (type) { + case hwmon_temp: + switch (attr) { + case hwmon_temp_label: + *str = temp_labels[channel]; + break; + default: + return -EOPNOTSUPP; + } + break; + default: + return -EOPNOTSUPP; + } + + return 0; +} + +/* ========================================================================== */ + +static const struct hwmon_channel_info *ac71_hwmon_fan_ch_info[] = { + HWMON_CHANNEL_INFO(fan, + HWMON_F_INPUT, + HWMON_F_INPUT), + HWMON_CHANNEL_INFO(temp, + HWMON_T_INPUT | HWMON_T_LABEL, + HWMON_T_INPUT | HWMON_T_LABEL), + NULL +}; + +static const struct hwmon_ops ac71_hwmon_fan_ops = { + .is_visible = ac71_hwmon_fan_is_visible, + .read = ac71_hwmon_fan_read, + .read_string = ac71_hwmon_fan_read_string, +}; + +static const struct hwmon_chip_info ac71_hwmon_fan_chip_info = { + .ops = &ac71_hwmon_fan_ops, + .info = ac71_hwmon_fan_ch_info, +}; + +/* ========================================================================== */ + +int __init ac71_hwmon_fan_setup(void) +{ + int err = 0; + + ac71_hwmon_fan_dev = hwmon_device_register_with_info( + &ac71_platform_dev->dev, KBUILD_MODNAME ".hwmon.fan", NULL, + &ac71_hwmon_fan_chip_info, NULL); + + if (IS_ERR(ac71_hwmon_fan_dev)) + err = PTR_ERR(ac71_hwmon_fan_dev); + + return err; +} + +void ac71_hwmon_fan_cleanup(void) +{ + if (!IS_ERR_OR_NULL(ac71_hwmon_fan_dev)) + hwmon_device_unregister(ac71_hwmon_fan_dev); +} diff --git a/spec/reimaden/ac71/hwmon_fan.h b/spec/reimaden/ac71/hwmon_fan.h new file mode 100644 index 00000000..ce3b6ca4 --- /dev/null +++ b/spec/reimaden/ac71/hwmon_fan.h @@ -0,0 +1,10 @@ +// SPDX-License-Identifier: GPL-2.0 +#ifndef AC71_HWMON_FAN_H +#define AC71_HWMON_FAN_H + +#include + +int __init ac71_hwmon_fan_setup(void); +void ac71_hwmon_fan_cleanup(void); + +#endif /* AC71_HWMON_FAN_H */ diff --git a/spec/reimaden/ac71/hwmon_pwm.c b/spec/reimaden/ac71/hwmon_pwm.c new file mode 100644 index 00000000..b0a39388 --- /dev/null +++ b/spec/reimaden/ac71/hwmon_pwm.c @@ -0,0 +1,122 @@ +// SPDX-License-Identifier: GPL-2.0 +#include "pr.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "fan.h" +#include "pdev.h" +#include "util.h" + +/* ========================================================================== */ + +static struct device *ac71_hwmon_pwm_dev; + +/* ========================================================================== */ + +static umode_t ac71_hwmon_pwm_is_visible(const void *data, enum hwmon_sensor_types type, + u32 attr, int channel) +{ + if (type != hwmon_pwm && attr != hwmon_pwm_enable) + return -EOPNOTSUPP; + + return 0644; +} + +static int ac71_hwmon_pwm_read(struct device *device, enum hwmon_sensor_types type, + u32 attr, int channel, long *value) +{ + int err; + + switch (type) { + case hwmon_pwm: + switch (attr) { + case hwmon_pwm_enable: + err = ac71_fan_get_mode(); + if (err < 0) + return err; + + *value = err; + break; + case hwmon_pwm_input: + err = ac71_fan_get_pwm(channel); + if (err < 0) + return err; + + *value = err; + break; + default: + return -EOPNOTSUPP; + } + break; + default: + return -EOPNOTSUPP; + } + + return 0; +} + +static int ac71_hwmon_pwm_write(struct device *device, enum hwmon_sensor_types type, + u32 attr, int channel, long value) +{ + switch (type) { + case hwmon_pwm: + switch (attr) { + case hwmon_pwm_enable: + return ac71_fan_set_mode(value); + case hwmon_pwm_input: + return ac71_fan_set_pwm(channel, value); + default: + return -EOPNOTSUPP; + } + default: + return -EOPNOTSUPP; + } + + return 0; +} + +static const struct hwmon_channel_info *ac71_hwmon_pwm_ch_info[] = { + HWMON_CHANNEL_INFO(pwm, HWMON_PWM_ENABLE), + HWMON_CHANNEL_INFO(pwm, HWMON_PWM_INPUT, HWMON_PWM_INPUT), + NULL +}; + +static const struct hwmon_ops ac71_hwmon_pwm_ops = { + .is_visible = ac71_hwmon_pwm_is_visible, + .read = ac71_hwmon_pwm_read, + .write = ac71_hwmon_pwm_write, +}; + +static const struct hwmon_chip_info ac71_hwmon_pwm_chip_info = { + .ops = &ac71_hwmon_pwm_ops, + .info = ac71_hwmon_pwm_ch_info, +}; + +/* ========================================================================== */ + +int __init ac71_hwmon_pwm_setup(void) +{ + int err = 0; + + ac71_hwmon_pwm_dev = hwmon_device_register_with_info( + &ac71_platform_dev->dev, KBUILD_MODNAME ".hwmon.pwm", NULL, + &ac71_hwmon_pwm_chip_info, NULL); + + if (IS_ERR(ac71_hwmon_pwm_dev)) + err = PTR_ERR(ac71_hwmon_pwm_dev); + + return err; +} + +void ac71_hwmon_pwm_cleanup(void) +{ + if (!IS_ERR_OR_NULL(ac71_hwmon_pwm_dev)) + hwmon_device_unregister(ac71_hwmon_pwm_dev); +} diff --git a/spec/reimaden/ac71/hwmon_pwm.h b/spec/reimaden/ac71/hwmon_pwm.h new file mode 100644 index 00000000..8c5110a3 --- /dev/null +++ b/spec/reimaden/ac71/hwmon_pwm.h @@ -0,0 +1,10 @@ +// SPDX-License-Identifier: GPL-2.0 +#ifndef AC71_HWMON_PWM_H +#define AC71_HWMON_PWM_H + +#include + +int __init ac71_hwmon_pwm_setup(void); +void ac71_hwmon_pwm_cleanup(void); + +#endif /* AC71_HWMON_PWM_H */ diff --git a/spec/reimaden/ac71/main.c b/spec/reimaden/ac71/main.c new file mode 100644 index 00000000..fbc5449b --- /dev/null +++ b/spec/reimaden/ac71/main.c @@ -0,0 +1,130 @@ +// SPDX-License-Identifier: GPL-2.0 +#include "pr.h" + +#include +#include +#include +#include +#include +#include +#include + +#include "ec.h" +#include "wmi.h" + +/* submodules */ +#include "pdev.h" +#include "events.h" +#include "hwmon.h" +#include "battery.h" + +/* ========================================================================== */ + +#define SUBMODULE_ENTRY(_name, _req) { .name = #_name, .init = ac71_ ## _name ## _setup, .cleanup = ac71_ ## _name ## _cleanup, .required = _req } + +static struct ac71_submodule { + const char *name; + + bool required : 1, + initialized : 1; + + int (*init)(void); + void (*cleanup)(void); +} ac71_submodules[] __refdata = { + SUBMODULE_ENTRY(pdev, true), /* must be first */ + SUBMODULE_ENTRY(wmi_events, false), + SUBMODULE_ENTRY(hwmon, false), + SUBMODULE_ENTRY(battery, false), +}; + +#undef SUBMODULE_ENTRY + +static void do_cleanup(void) +{ + int i; + + for (i = ARRAY_SIZE(ac71_submodules) - 1; i >= 0; i--) { + const struct ac71_submodule *sm = &ac71_submodules[i]; + + if (sm->initialized) + sm->cleanup(); + } +} + +static const struct dmi_system_id ac71_dmi_table[] __initconst = { + { + .matches = { + DMI_MATCH(DMI_BOARD_NAME, "LAPAC71H"), + { } + } + } +}; + +static int __init ac71_module_init(void) +{ + int err = 0, i; + + if (!wmi_has_guid(AC71_WMI_WMBC_GUID)) { + pr_err("WMI GUID not found\n"); + err = -ENODEV; goto out; + } + + if (!dmi_check_system(ac71_dmi_table)) { + pr_err("no DMI match\n"); + err = -ENODEV; goto out; + } + + err = ec_read_byte(PROJ_ID_ADDR); + if (err < 0) { + pr_err("failed to query project id: %d\n", err); + goto out; + } + + pr_info("project id: %d\n", err); + + err = ec_read_byte(PLATFORM_ID_ADDR); + if (err < 0) { + pr_err("failed to query platform id: %d\n", err); + goto out; + } + + pr_info("platform id: %d\n", err); + + for (i = 0; i < ARRAY_SIZE(ac71_submodules); i++) { + struct ac71_submodule *sm = &ac71_submodules[i]; + + err = sm->init(); + if (err) { + pr_warn("failed to initialize %s submodule: %d\n", sm->name, err); + if (sm->required) + goto out; + } else { + sm->initialized = true; + } + } + + err = 0; + +out: + if (err) + do_cleanup(); + else + pr_info("module loaded\n"); + + return err; +} + +static void __exit ac71_module_cleanup(void) +{ + do_cleanup(); + pr_info("module unloaded\n"); +} + +/* ========================================================================== */ + +module_init(ac71_module_init); +module_exit(ac71_module_cleanup); + +MODULE_LICENSE("GPL"); +MODULE_DESCRIPTION("AC71 laptop platform driver"); +MODULE_ALIAS("wmi:" AC71_WMI_WMBC_GUID); diff --git a/spec/reimaden/ac71/misc.c b/spec/reimaden/ac71/misc.c new file mode 100644 index 00000000..8c4c49d0 --- /dev/null +++ b/spec/reimaden/ac71/misc.c @@ -0,0 +1,35 @@ +// SPDX-License-Identifier: GPL-2.0 +#include "pr.h" + +#include +#include +#include +#include + +#include "ec.h" +#include "misc.h" +#include "util.h" + +/* ========================================================================== */ + +int ac71_fn_lock_get_state(void) +{ + int status = ec_read_byte(BIOS_CTRL_1_ADDR); + + if (status < 0) + return status; + + return !!(status & BIOS_CTRL_1_FN_LOCK_STATUS); +} + +int ac71_fn_lock_set_state(bool state) +{ + int status = ec_read_byte(BIOS_CTRL_1_ADDR); + + if (status < 0) + return status; + + status = SET_BIT(status, BIOS_CTRL_1_FN_LOCK_STATUS, state); + + return ec_write_byte(BIOS_CTRL_1_ADDR, status); +} diff --git a/spec/reimaden/ac71/misc.h b/spec/reimaden/ac71/misc.h new file mode 100644 index 00000000..3b394d8a --- /dev/null +++ b/spec/reimaden/ac71/misc.h @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: GPL-2.0 +#ifndef AC71_MISC_H +#define AC71_MISC_H + +#include + +/* ========================================================================== */ + +int ac71_fn_lock_get_state(void); +int ac71_fn_lock_set_state(bool state); + +#endif /* AC71_MISC_H */ diff --git a/spec/reimaden/ac71/package.nix b/spec/reimaden/ac71/package.nix new file mode 100644 index 00000000..7d7fba1f --- /dev/null +++ b/spec/reimaden/ac71/package.nix @@ -0,0 +1,19 @@ +{ stdenv +, lib +, kernel +, kmod }: stdenv.mkDerivation rec { + name = "ac71-${version}-${kernel.version}"; + version = "2024.2.13"; + + # adapted from https://github.com/pobrn/qc71_laptop + src = ./.; + + hardeningDisable = [ "pic" "format" ]; + nativeBuildInputs = kernel.moduleBuildDependencies; + + makeFlags = [ + "KERNELRELEASE=${kernel.modDirVersion}" + "KERNEL_DIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" + "INSTALL_MOD_PATH=$(out)" + ]; +} diff --git a/spec/reimaden/ac71/pdev.c b/spec/reimaden/ac71/pdev.c new file mode 100644 index 00000000..ec2ceed9 --- /dev/null +++ b/spec/reimaden/ac71/pdev.c @@ -0,0 +1,295 @@ +// SPDX-License-Identifier: GPL-2.0 +#include "pr.h" + +#include +#include +#include +#include +#include + +#include "util.h" +#include "ec.h" +#include "misc.h" +#include "pdev.h" + +/* ========================================================================== */ + +struct platform_device *ac71_platform_dev; + +/* ========================================================================== */ + +static ssize_t fan_reduced_duty_cycle_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int status = ec_read_byte(BIOS_CTRL_3_ADDR); + + if (status < 0) + return status; + + return sprintf(buf, "%d\n", !!(status & BIOS_CTRL_3_FAN_REDUCED_DUTY_CYCLE)); +} + +static ssize_t fan_reduced_duty_cycle_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t count) +{ + int status; + bool value; + + if (kstrtobool(buf, &value)) + return -EINVAL; + + status = ec_read_byte(BIOS_CTRL_3_ADDR); + if (status < 0) + return status; + + status = SET_BIT(status, BIOS_CTRL_3_FAN_REDUCED_DUTY_CYCLE, value); + + status = ec_write_byte(BIOS_CTRL_3_ADDR, status); + + if (status < 0) + return status; + + return count; +} + +static ssize_t fan_always_on_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int status = ec_read_byte(BIOS_CTRL_3_ADDR); + + if (status < 0) + return status; + + return sprintf(buf, "%d\n", !!(status & BIOS_CTRL_3_FAN_ALWAYS_ON)); +} + +static ssize_t fan_always_on_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t count) +{ + int status; + bool value; + + if (kstrtobool(buf, &value)) + return -EINVAL; + + status = ec_read_byte(BIOS_CTRL_3_ADDR); + if (status < 0) + return status; + + status = SET_BIT(status, BIOS_CTRL_3_FAN_ALWAYS_ON, value); + + status = ec_write_byte(BIOS_CTRL_3_ADDR, status); + + if (status < 0) + return status; + + return count; +} + +static ssize_t fn_lock_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int status = ac71_fn_lock_get_state(); + + if (status < 0) + return status; + + return sprintf(buf, "%d\n", status); +} + +static ssize_t fn_lock_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t count) +{ + int status; + bool value; + + if (kstrtobool(buf, &value)) + return -EINVAL; + + status = ac71_fn_lock_set_state(value); + if (status < 0) + return status; + + return count; +} + +static ssize_t fn_lock_switch_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int status = ec_read_byte(AP_BIOS_BYTE_ADDR); + + if (status < 0) + return status; + + return sprintf(buf, "%d\n", !!(status & AP_BIOS_BYTE_FN_LOCK_SWITCH)); +} + +static ssize_t fn_lock_switch_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t count) +{ + int status; + bool value; + + if (kstrtobool(buf, &value)) + return -EINVAL; + + status = ec_read_byte(AP_BIOS_BYTE_ADDR); + if (status < 0) + return status; + + status = SET_BIT(status, AP_BIOS_BYTE_FN_LOCK_SWITCH, value); + + status = ec_write_byte(AP_BIOS_BYTE_ADDR, status); + + if (status < 0) + return status; + + return count; +} + +static ssize_t manual_control_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int status = ec_read_byte(CTRL_1_ADDR); + + if (status < 0) + return status; + + return sprintf(buf, "%d\n", !!(status & CTRL_1_MANUAL_MODE)); +} + +static ssize_t manual_control_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t count) +{ + int status; + bool value; + + if (kstrtobool(buf, &value)) + return -EINVAL; + + status = ec_read_byte(CTRL_1_ADDR); + if (status < 0) + return status; + + status = SET_BIT(status, CTRL_1_MANUAL_MODE, value); + + status = ec_write_byte(CTRL_1_ADDR, status); + + if (status < 0) + return status; + + return count; +} + +static ssize_t super_key_lock_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int status = ec_read_byte(STATUS_1_ADDR); + + if (status < 0) + return status; + + return sprintf(buf, "%d\n", !!(status & STATUS_1_SUPER_KEY_LOCK)); +} + +static ssize_t super_key_lock_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t count) +{ + int status; + bool value; + + if (kstrtobool(buf, &value)) + return -EINVAL; + + status = ec_read_byte(STATUS_1_ADDR); + if (status < 0) + return status; + + if (value != !!(status & STATUS_1_SUPER_KEY_LOCK)) { + status = ec_write_byte(TRIGGER_1_ADDR, TRIGGER_1_SUPER_KEY_LOCK); + + if (status < 0) + return status; + } + + return count; +} + +/* ========================================================================== */ + +static DEVICE_ATTR_RW(fn_lock); +static DEVICE_ATTR_RW(fn_lock_switch); +static DEVICE_ATTR_RW(fan_always_on); +static DEVICE_ATTR_RW(fan_reduced_duty_cycle); +static DEVICE_ATTR_RW(manual_control); +static DEVICE_ATTR_RW(super_key_lock); + +static struct attribute *ac71_attrs[] = { + &dev_attr_fn_lock.attr, + &dev_attr_fn_lock_switch.attr, + &dev_attr_fan_always_on.attr, + &dev_attr_fan_reduced_duty_cycle.attr, + &dev_attr_manual_control.attr, + &dev_attr_super_key_lock.attr, + NULL +}; + +/* ========================================================================== */ + +static umode_t ac71_attr_is_visible(struct kobject *kobj, struct attribute *attr, int n) +{ + bool ok = false; + + if (attr == &dev_attr_fn_lock.attr || attr == &dev_attr_fn_lock_switch.attr) + ok = true; + else if (attr == &dev_attr_fan_always_on.attr || attr == &dev_attr_fan_reduced_duty_cycle.attr) + ok = true; + else if (attr == &dev_attr_manual_control.attr) + ok = true; + else if (attr == &dev_attr_super_key_lock.attr) + ok = false; + + return ok ? attr->mode : 0; +} + +/* ========================================================================== */ + +static const struct attribute_group ac71_group = { + .is_visible = ac71_attr_is_visible, + .attrs = ac71_attrs, +}; + +static const struct attribute_group *ac71_groups[] = { + &ac71_group, + NULL +}; + +/* ========================================================================== */ + +int __init ac71_pdev_setup(void) +{ + int err; + + ac71_platform_dev = platform_device_alloc(KBUILD_MODNAME, PLATFORM_DEVID_NONE); + if (!ac71_platform_dev) { + err = -ENOMEM; + goto out; + } + + ac71_platform_dev->dev.groups = ac71_groups; + + err = platform_device_add(ac71_platform_dev); + if (err) { + platform_device_put(ac71_platform_dev); + ac71_platform_dev = NULL; + } + +out: + return err; +} + +void ac71_pdev_cleanup(void) +{ + /* checks for IS_ERR_OR_NULL() */ + platform_device_unregister(ac71_platform_dev); +} diff --git a/spec/reimaden/ac71/pdev.h b/spec/reimaden/ac71/pdev.h new file mode 100644 index 00000000..33e176a5 --- /dev/null +++ b/spec/reimaden/ac71/pdev.h @@ -0,0 +1,17 @@ +// SPDX-License-Identifier: GPL-2.0 +#ifndef AC71_PDEV_H +#define AC71_PDEV_H + +#include +#include + +/* ========================================================================== */ + +extern struct platform_device *ac71_platform_dev; + +/* ========================================================================== */ + +int __init ac71_pdev_setup(void); +void ac71_pdev_cleanup(void); + +#endif /* AC71_PDEV_H */ diff --git a/spec/reimaden/ac71/pr.h b/spec/reimaden/ac71/pr.h new file mode 100644 index 00000000..853a4e21 --- /dev/null +++ b/spec/reimaden/ac71/pr.h @@ -0,0 +1,9 @@ +// SPDX-License-Identifier: GPL-2.0 +#ifndef AC71_PR_H +#define AC71_PR_H + +#define pr_fmt(fmt) KBUILD_MODNAME "/" KBUILD_BASENAME ": %s: " fmt, __func__ + +#include + +#endif /* AC71_PR_H */ diff --git a/spec/reimaden/ac71/util.h b/spec/reimaden/ac71/util.h new file mode 100644 index 00000000..7a8b356b --- /dev/null +++ b/spec/reimaden/ac71/util.h @@ -0,0 +1,7 @@ +// SPDX-License-Identifier: GPL-2.0 +#ifndef AC71_UTIL_H +#define AC71_UTIL_H + +#define SET_BIT(value, bit, on) ((on) ? ((value) | (bit)) : ((value) & ~(bit))) + +#endif /* AC71_UTIL_H */ diff --git a/spec/reimaden/ac71/wmi.h b/spec/reimaden/ac71/wmi.h new file mode 100644 index 00000000..7fd2172d --- /dev/null +++ b/spec/reimaden/ac71/wmi.h @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: GPL-2.0 +#ifndef AC71_LAPTOP_WMI_H +#define AC71_LAPTOP_WMI_H + +/* ========================================================================== */ +/* WMI methods */ + +/* AcpiTest_MULong */ +#define AC71_WMI_WMBC_GUID "ABBC0F6F-8EA1-11D1-00A0-C90629100000" +#define AC71_WMBC_GETSETULONG_ID 4 + +/* ========================================================================== */ +/* WMI events */ + +/* AcpiTest_EventULong */ +#define AC71_WMI_EVENT0_GUID "ABBC0F72-8EA1-11D1-00A0-C90629100000" + +/* AcpiTest_EventString */ +#define AC71_WMI_EVENT1_GUID "ABBC0F71-8EA1-11D1-00A0-C90629100000" + +/* AcpiTest_EventPackage */ +#define AC71_WMI_EVENT2_GUID "ABBC0F70-8EA1-11D1-00A0-C90629100000" + +#endif /* AC71_LAPTOP_WMI_H */ diff --git a/spec/reimaden/default.nix b/spec/reimaden/default.nix index 6e0fc5a8..c82f1cf5 100644 --- a/spec/reimaden/default.nix +++ b/spec/reimaden/default.nix @@ -29,4 +29,6 @@ boot.kernelModules = [ "kvm-intel" ]; boot.extraModulePackages = [ ]; hardware.cpu.intel.updateMicrocode = true; + + imports = [ ./ac71 ]; } From df57061bf047b8a5b2a510acd8900bc9a8ac2486 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 14 Feb 2024 12:33:51 +0800 Subject: [PATCH 199/447] home(sway): switch to swaylock-effects --- home/gui/catppuccin/home.nix | 36 ++++++++++++++++++++++++++++++++++-- home/sway/home.nix | 22 +++++++++++++++++++++- 2 files changed, 55 insertions(+), 3 deletions(-) diff --git a/home/gui/catppuccin/home.nix b/home/gui/catppuccin/home.nix index f08d6265..d13a4b21 100644 --- a/home/gui/catppuccin/home.nix +++ b/home/gui/catppuccin/home.nix @@ -50,15 +50,47 @@ in mkIf cfg.enable { trayOutput = "primary"; } ]; - #output."*".bg = mkForce "${palette.sway.${cfg.sway}.base} solid_color"; output."*".bg = mkForce "${./flake.png} fill"; - gaps.inner = 12; gaps.outer = 5; # dodge the status bar gaps.bottom = 0; }; + programs.swaylock.settings = with palette.sway.${cfg.sway}; let + transparent = "00000000"; + in { + color = base; + bs-hl-color = rosewater; + caps-lock-bs-hl-color = rosewater; + caps-lock-key-hl-color = green; + inside-color = transparent; + inside-clear-color = transparent; + inside-caps-lock-color = transparent; + inside-ver-color = transparent; + inside-wrong-color = transparent; + key-hl-color = green; + layout-bg-color = transparent; + layout-border-color = transparent; + layout-text-color = text; + line-color = transparent; + line-clear-color = transparent; + line-caps-lock-color = transparent; + line-ver-color = transparent; + line-wrong-color = transparent; + ring-color = lavender; + ring-clear-color = rosewater; + ring-caps-lock-color = peach; + ring-ver-color = blue; + ring-wrong-color = maroon; + separator-color = transparent; + text-color = text; + text-clear-color = rosewater; + text-caps-lock-color = peach; + text-ver-color = blue; + text-wrong-color = maroon; + }; + programs.i3status.general = with palette.sway.${cfg.sway}; { color_good = lavender; color_degraded = yellow; diff --git a/home/sway/home.nix b/home/sway/home.nix index eccf1583..139995cd 100644 --- a/home/sway/home.nix +++ b/home/sway/home.nix @@ -18,7 +18,7 @@ XF86MonBrightnessUp = "light -A 5"; XF86MonBrightnessDown = "light -U 5"; - "Control+Alt+l" = "exec ${pkgs.swaylock}/bin/swaylock -c 000000"; + "Control+Alt+l" = "exec swaylock -f --grace 0"; "Print" = "exec ${pkgs.grim}/bin/grim - | ${pkgs.wl-clipboard}/bin/wl-copy"; "${modifier}+Print" = "exec ${pkgs.grim}/bin/grim -g \"$(${pkgs.slurp}/bin/slurp)\" - | ${pkgs.wl-clipboard}/bin/wl-copy"; "${modifier}+q" = "exec google-chrome-stable"; @@ -45,4 +45,24 @@ output."*".bg = "#000000 solid_color"; }; }; + + programs.swaylock = { + enable = true; + package = pkgs.swaylock-effects; + settings = { + indicator-caps-lock = true; + font-size = 20; + ignore-empty-password = true; + show-failed-attempts = true; + color = mkDefault "#00000000"; + + # Ring + indicator-radius = 115; + + # Swaylock-effects specific settings + clock = true; + timestr = "%r"; + grace = 2; + }; + }; } From f022a00cf4623eabc7d50870830b606e33927c65 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 14 Feb 2024 13:04:17 +0800 Subject: [PATCH 200/447] home(swaylock): isolate from sway --- home/sway/home.nix | 20 -------------------- home/sway/nixos.nix | 1 - home/swaylock/home.nix | 24 ++++++++++++++++++++++++ home/swaylock/nixos.nix | 8 ++++++++ 4 files changed, 32 insertions(+), 21 deletions(-) create mode 100644 home/swaylock/home.nix create mode 100644 home/swaylock/nixos.nix diff --git a/home/sway/home.nix b/home/sway/home.nix index 139995cd..0f389fe4 100644 --- a/home/sway/home.nix +++ b/home/sway/home.nix @@ -45,24 +45,4 @@ output."*".bg = "#000000 solid_color"; }; }; - - programs.swaylock = { - enable = true; - package = pkgs.swaylock-effects; - settings = { - indicator-caps-lock = true; - font-size = 20; - ignore-empty-password = true; - show-failed-attempts = true; - color = mkDefault "#00000000"; - - # Ring - indicator-radius = 115; - - # Swaylock-effects specific settings - clock = true; - timestr = "%r"; - grace = 2; - }; - }; } diff --git a/home/sway/nixos.nix b/home/sway/nixos.nix index 3817720f..f5b2bbdc 100644 --- a/home/sway/nixos.nix +++ b/home/sway/nixos.nix @@ -33,6 +33,5 @@ in mkIf gui { } // { providedSessions = [ pkgs.sway.meta.mainProgram ]; }) ]; - security.pam.services.swaylock = { }; programs.light.enable = true; } diff --git a/home/swaylock/home.nix b/home/swaylock/home.nix new file mode 100644 index 00000000..25a72c88 --- /dev/null +++ b/home/swaylock/home.nix @@ -0,0 +1,24 @@ +{ pkgs +, lib +, config +, ... }: with lib; mkIf config.passthrough.gui { + programs.swaylock = { + enable = true; + package = pkgs.swaylock-effects; + settings = { + indicator-caps-lock = true; + font-size = 20; + ignore-empty-password = true; + show-failed-attempts = true; + color = mkDefault "#00000000"; + + # Ring + indicator-radius = 115; + + # Swaylock-effects specific settings + clock = true; + timestr = "%r"; + grace = 2; + }; + }; +} diff --git a/home/swaylock/nixos.nix b/home/swaylock/nixos.nix new file mode 100644 index 00000000..3891904b --- /dev/null +++ b/home/swaylock/nixos.nix @@ -0,0 +1,8 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + gui = with config.global.gpu; enable && session; +in mkIf gui { + security.pam.services.swaylock = { }; +} From 2f231304c97cf01e8287bb36cb6fb77a6d0db7bb Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 14 Feb 2024 14:40:48 +0800 Subject: [PATCH 201/447] home(gui): fix catppuccin palette --- home/gui/catppuccin/home.nix | 26 ++- home/gui/catppuccin/nixos.nix | 4 +- home/gui/catppuccin/palette.nix | 308 ++++++++++++-------------------- 3 files changed, 129 insertions(+), 209 deletions(-) diff --git a/home/gui/catppuccin/home.nix b/home/gui/catppuccin/home.nix index d13a4b21..541350aa 100644 --- a/home/gui/catppuccin/home.nix +++ b/home/gui/catppuccin/home.nix @@ -3,7 +3,7 @@ , config , ... }: with lib; let cfg = config.passthrough.catppuccin; - palette = import ./palette.nix; + palette = (import ./palette.nix).${cfg.palette}; in mkIf cfg.enable { # cursor theme home.pointerCursor = { inherit (cfg.cursor) package name; }; @@ -14,7 +14,7 @@ in mkIf cfg.enable { # sway colour palette override wayland.windowManager.sway.config = { - colors = with palette.sway.${cfg.sway}; { + colors = with palette; { focused = { border = lavender; background = base; text = text; indicator = rosewater; childBorder = lavender; }; focusedInactive = { border = overlay0; background = base; text = text; indicator = rosewater; childBorder = overlay0; }; unfocused = { border = overlay0; background = base; text = text; indicator = rosewater; childBorder = overlay0; }; @@ -25,7 +25,7 @@ in mkIf cfg.enable { bars = mkForce [ { colors = let - p = palette.sway.${cfg.sway}; + p = palette; in { background = p.base; statusline = p.text; @@ -57,7 +57,7 @@ in mkIf cfg.enable { gaps.bottom = 0; }; - programs.swaylock.settings = with palette.sway.${cfg.sway}; let + programs.swaylock.settings = with palette; let transparent = "00000000"; in { color = base; @@ -91,16 +91,24 @@ in mkIf cfg.enable { text-wrong-color = maroon; }; - programs.i3status.general = with palette.sway.${cfg.sway}; { + programs.i3status.general = with palette; { color_good = lavender; color_degraded = yellow; color_bad = red; }; # foot colour palette override - programs.foot.settings.colors = { - inherit (palette.foot.${cfg.sway}) foreground background - regular0 regular1 regular2 regular3 regular4 regular5 regular6 regular7 - bright0 bright1 bright2 bright3 bright4 bright5 bright6 bright7; + programs.foot.settings.colors = with palette; let + c = substring 1 7; + in { + foreground = c text; background = c base; + regular0 = c subtext1; regular1 = c red; + regular2 = c green; regular3 = c yellow; + regular4 = c blue; regular5 = c pink; + regular6 = c teal; regular7 = c surface2; + bright0 = c subtext0; bright1 = c red; + bright2 = c green; bright3 = c yellow; + bright4 = c blue; bright5 = c pink; + bright6 = c teal; bright7 = c surface1; }; } diff --git a/home/gui/catppuccin/nixos.nix b/home/gui/catppuccin/nixos.nix index 92e6371e..4d360baa 100644 --- a/home/gui/catppuccin/nixos.nix +++ b/home/gui/catppuccin/nixos.nix @@ -8,10 +8,10 @@ in { options.home.catppuccin = { enable = mkEnableOption "catppuccin colour scheme" // { default = gui; }; - sway = mkOption { + palette = mkOption { type = with types; str; default = "frappe"; - description = "colour palette used in sway"; + description = "colour palette in use"; }; gtk = { diff --git a/home/gui/catppuccin/palette.nix b/home/gui/catppuccin/palette.nix index 5f2f084d..1e330574 100644 --- a/home/gui/catppuccin/palette.nix +++ b/home/gui/catppuccin/palette.nix @@ -1,205 +1,117 @@ { - sway = { - latte = { - rosewater = "#dc8a78"; - flamingo = "#dd7878"; - pink = "#ea76cb"; - mauve = "#8839ef"; - red = "#d20f39"; - maroon = "#e64553"; - peach = "#fe640b"; - yellow = "#df8e1d"; - green = "#40a02b"; - teal = "#179299"; - sky = "#04a5e5"; - sapphire = "#209fb5"; - blue = "#1e66f5"; - lavender = "#7287fd"; - text = "#4c4f69"; - subtext1 = "#5c5f77"; - subtext0 = "#6c6f85"; - overlay2 = "#7c7f93"; - overlay1 = "#8c8fa1"; - overlay0 = "#9ca0b0"; - surface2 = "#acb0be"; - surface1 = "#bcc0cc"; - surface0 = "#ccd0da"; - base = "#eff1f5"; - mantle = "#e6e9ef"; - crust = "#dce0e8"; - }; - - frappe = { - rosewater = "#f2d5cf"; - flamingo = "#eebebe"; - pink = "#f4b8e4"; - mauve = "#ca9ee6"; - red = "#e78284"; - maroon = "#ea999c"; - peach = "#ef9f76"; - yellow = "#e5c890"; - green = "#a6d189"; - teal = "#81c8be"; - sky = "#99d1db"; - sapphire = "#85c1dc"; - blue = "#8caaee"; - lavender = "#babbf1"; - text = "#c6d0f5"; - subtext1 = "#b5bfe2"; - subtext0 = "#a5adce"; - overlay2 = "#949cbb"; - overlay1 = "#838ba7"; - overlay0 = "#737994"; - surface2 = "#626880"; - surface1 = "#51576d"; - surface0 = "#414559"; - base = "#303446"; - mantle = "#292c3c"; - crust = "#232634"; - }; - - macchiato = { - rosewater = "#f4dbd6"; - flamingo = "#f0c6c6"; - pink = "#f5bde6"; - mauve = "#c6a0f6"; - red = "#ed8796"; - maroon = "#ee99a0"; - peach = "#f5a97f"; - yellow = "#eed49f"; - green = "#a6da95"; - teal = "#8bd5ca"; - sky = "#91d7e3"; - sapphire = "#7dc4e4"; - blue = "#8aadf4"; - lavender = "#b7bdf8"; - text = "#cad3f5"; - subtext1 = "#b8c0e0"; - subtext0 = "#a5adcb"; - overlay2 = "#939ab7"; - overlay1 = "#8087a2"; - overlay0 = "#6e738d"; - surface2 = "#5b6078"; - surface1 = "#494d64"; - surface0 = "#363a4f"; - base = "#24273a"; - mantle = "#1e2030"; - crust = "#181926"; - }; - - mocha = { - rosewater = "#f5e0dc"; - flamingo = "#f2cdcd"; - pink = "#f5c2e7"; - mauve = "#cba6f7"; - red = "#f38ba8"; - maroon = "#eba0ac"; - peach = "#fab387"; - yellow = "#f9e2af"; - green = "#a6e3a1"; - teal = "#94e2d5"; - sky = "#89dceb"; - sapphire = "#74c7ec"; - blue = "#89b4fa"; - lavender = "#b4befe"; - text = "#cdd6f4"; - subtext1 = "#bac2de"; - subtext0 = "#a6adc8"; - overlay2 = "#9399b2"; - overlay1 = "#7f849c"; - overlay0 = "#6c7086"; - surface2 = "#585b70"; - surface1 = "#45475a"; - surface0 = "#313244"; - base = "#1e1e2e"; - mantle = "#181825"; - crust = "#11111b"; - }; + latte = { + rosewater = "#dc8a78"; + flamingo = "#dd7878"; + pink = "#ea76cb"; + mauve = "#8839ef"; + red = "#d20f39"; + maroon = "#e64553"; + peach = "#fe640b"; + yellow = "#df8e1d"; + green = "#40a02b"; + teal = "#179299"; + sky = "#04a5e5"; + sapphire = "#209fb5"; + blue = "#1e66f5"; + lavender = "#7287fd"; + text = "#4c4f69"; + subtext1 = "#5c5f77"; + subtext0 = "#6c6f85"; + overlay2 = "#7c7f93"; + overlay1 = "#8c8fa1"; + overlay0 = "#9ca0b0"; + surface2 = "#acb0be"; + surface1 = "#bcc0cc"; + surface0 = "#ccd0da"; + base = "#eff1f5"; + mantle = "#e6e9ef"; + crust = "#dce0e8"; }; - foot = { - latte = { - foreground = "4c4f69"; # Text - background = "eff1f5"; # Base - regular0 = "5c5f77"; # Subtext 1 - regular1 = "d20f39"; # red - regular2 = "40a02b"; # green - regular3 = "df8e1d"; # yellow - regular4 = "1e66f5"; # blue - regular5 = "ea76cb"; # pink - regular6 = "179299"; # teal - regular7 = "acb0be"; # Surface 2 - bright0 = "6c6f85"; # Subtext 0 - bright1 = "d20f39"; # red - bright2 = "40a02b"; # green - bright3 = "df8e1d"; # yellow - bright4 = "1e66f5"; # blue - bright5 = "ea76cb"; # pink - bright6 = "179299"; # teal - bright7 = "bcc0cc"; # Surface 1 - }; + frappe = { + rosewater = "#f2d5cf"; + flamingo = "#eebebe"; + pink = "#f4b8e4"; + mauve = "#ca9ee6"; + red = "#e78284"; + maroon = "#ea999c"; + peach = "#ef9f76"; + yellow = "#e5c890"; + green = "#a6d189"; + teal = "#81c8be"; + sky = "#99d1db"; + sapphire = "#85c1dc"; + blue = "#8caaee"; + lavender = "#babbf1"; + text = "#c6d0f5"; + subtext1 = "#b5bfe2"; + subtext0 = "#a5adce"; + overlay2 = "#949cbb"; + overlay1 = "#838ba7"; + overlay0 = "#737994"; + surface2 = "#626880"; + surface1 = "#51576d"; + surface0 = "#414559"; + base = "#303446"; + mantle = "#292c3c"; + crust = "#232634"; + }; - frappe = { - foreground = "c6d0f5"; # Text - background = "303446"; # Base - regular0 = "51576d"; # Surface 1 - regular1 = "e78284"; # red - regular2 = "a6d189"; # green - regular3 = "e5c890"; # yellow - regular4 = "8caaee"; # blue - regular5 = "f4b8e4"; # pink - regular6 = "81c8be"; # teal - regular7 = "b5bfe2"; # Subtext 1 - bright0 = "626880"; # Surface 2 - bright1 = "e78284"; # red - bright2 = "a6d189"; # green - bright3 = "e5c890"; # yellow - bright4 = "8caaee"; # blue - bright5 = "f4b8e4"; # pink - bright6 = "81c8be"; # teal - bright7 = "a5adce"; # Subtext 0 - }; + macchiato = { + rosewater = "#f4dbd6"; + flamingo = "#f0c6c6"; + pink = "#f5bde6"; + mauve = "#c6a0f6"; + red = "#ed8796"; + maroon = "#ee99a0"; + peach = "#f5a97f"; + yellow = "#eed49f"; + green = "#a6da95"; + teal = "#8bd5ca"; + sky = "#91d7e3"; + sapphire = "#7dc4e4"; + blue = "#8aadf4"; + lavender = "#b7bdf8"; + text = "#cad3f5"; + subtext1 = "#b8c0e0"; + subtext0 = "#a5adcb"; + overlay2 = "#939ab7"; + overlay1 = "#8087a2"; + overlay0 = "#6e738d"; + surface2 = "#5b6078"; + surface1 = "#494d64"; + surface0 = "#363a4f"; + base = "#24273a"; + mantle = "#1e2030"; + crust = "#181926"; + }; - macchiato = { - foreground = "cad3f5"; # Text - background = "24273a"; # Base - regular0 = "494d64"; # Surface 1 - regular1 = "ed8796"; # red - regular2 = "a6da95"; # green - regular3 = "eed49f"; # yellow - regular4 = "8aadf4"; # blue - regular5 = "f5bde6"; # pink - regular6 = "8bd5ca"; # teal - regular7 = "b8c0e0"; # Subtext 1 - bright0 = "5b6078"; # Surface 2 - bright1 = "ed8796"; # red - bright2 = "a6da95"; # green - bright3 = "eed49f"; # yellow - bright4 = "8aadf4"; # blue - bright5 = "f5bde6"; # pink - bright6 = "8bd5ca"; # teal - bright7 = "a5adcb"; # Subtext 0 - }; - - mocha = { - foreground = "cdd6f4"; # Text - background = "1e1e2e"; # Base - regular0 = "45475a"; # Surface 1 - regular1 = "f38ba8"; # red - regular2 = "a6e3a1"; # green - regular3 = "f9e2af"; # yellow - regular4 = "89b4fa"; # blue - regular5 = "f5c2e7"; # pink - regular6 = "94e2d5"; # teal - regular7 = "bac2de"; # Subtext 1 - bright0 = "585b70"; # Surface 2 - bright1 = "f38ba8"; # red - bright2 = "a6e3a1"; # green - bright3 = "f9e2af"; # yellow - bright4 = "89b4fa"; # blue - bright5 = "f5c2e7"; # pink - bright6 = "94e2d5"; # teal - bright7 = "a6adc8"; # Subtext 0 - }; + mocha = { + rosewater = "#f5e0dc"; + flamingo = "#f2cdcd"; + pink = "#f5c2e7"; + mauve = "#cba6f7"; + red = "#f38ba8"; + maroon = "#eba0ac"; + peach = "#fab387"; + yellow = "#f9e2af"; + green = "#a6e3a1"; + teal = "#94e2d5"; + sky = "#89dceb"; + sapphire = "#74c7ec"; + blue = "#89b4fa"; + lavender = "#b4befe"; + text = "#cdd6f4"; + subtext1 = "#bac2de"; + subtext0 = "#a6adc8"; + overlay2 = "#9399b2"; + overlay1 = "#7f849c"; + overlay0 = "#6c7086"; + surface2 = "#585b70"; + surface1 = "#45475a"; + surface0 = "#313244"; + base = "#1e1e2e"; + mantle = "#181825"; + crust = "#11111b"; }; } From b65cd055f586e9fadeecd815e9d0360623386e25 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 14 Feb 2024 14:47:48 +0800 Subject: [PATCH 202/447] home(gui): theme mako --- home/gui/catppuccin/home.nix | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/home/gui/catppuccin/home.nix b/home/gui/catppuccin/home.nix index 541350aa..f61c8ecd 100644 --- a/home/gui/catppuccin/home.nix +++ b/home/gui/catppuccin/home.nix @@ -57,6 +57,7 @@ in mkIf cfg.enable { gaps.bottom = 0; }; + # swaylock colour palette override programs.swaylock.settings = with palette; let transparent = "00000000"; in { @@ -91,12 +92,25 @@ in mkIf cfg.enable { text-wrong-color = maroon; }; + # i3status colour palette override programs.i3status.general = with palette; { color_good = lavender; color_degraded = yellow; color_bad = red; }; + # mako colour palette override + services.mako = with palette; { + backgroundColor = base; + textColor = text; + borderColor = blue; + progressColor = "over ${surface0}"; + extraConfig = '' + [urgency=high] + border-color=${peach} + ''; + }; + # foot colour palette override programs.foot.settings.colors = with palette; let c = substring 1 7; From e221b7f8db0ae3c3fb86192caa219bca1132c545 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 14 Feb 2024 15:38:19 +0800 Subject: [PATCH 203/447] home(swayidle): set up idle behaviour --- home/swayidle/home.nix | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 home/swayidle/home.nix diff --git a/home/swayidle/home.nix b/home/swayidle/home.nix new file mode 100644 index 00000000..93158c26 --- /dev/null +++ b/home/swayidle/home.nix @@ -0,0 +1,20 @@ +{ pkgs +, lib +, config +, ... }: with lib; mkIf config.passthrough.gui { + services.swayidle = { + enable = true; + systemdTarget = "sway-session.target"; + timeouts = [ + { timeout = 600; command = "swaymsg 'output * dpms off'"; resumeCommand = "swaymsg 'output * dpms on'"; } + ]; + events = [ + { event = "before-sleep"; command = "${pkgs.swaylock-effects}/bin/swaylock -f --grace 0"; } + ]; + }; + + # fullscreen as simple idle inhibitor shortcut + wayland.windowManager.sway.config.window.commands = [ + { criteria.shell = ".*"; command = "inhibit_idle fullscreen"; } + ]; +} From 22fb04981be2ba2575be96e3e5de69e312ce7993 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 14 Feb 2024 16:47:30 +0800 Subject: [PATCH 204/447] home(swayidle): fix idle commands --- home/swayidle/home.nix | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/home/swayidle/home.nix b/home/swayidle/home.nix index 93158c26..c7d0daef 100644 --- a/home/swayidle/home.nix +++ b/home/swayidle/home.nix @@ -2,14 +2,18 @@ , lib , config , ... }: with lib; mkIf config.passthrough.gui { - services.swayidle = { + services.swayidle = let + sway = config.wayland.windowManager.sway.package; + swaymsg = "${sway}/bin/swaymsg"; + swaylock = "${config.programs.swaylock.package}/bin/swaylock"; + in { enable = true; systemdTarget = "sway-session.target"; timeouts = [ - { timeout = 600; command = "swaymsg 'output * dpms off'"; resumeCommand = "swaymsg 'output * dpms on'"; } + { timeout = 600; command = "${swaymsg} 'output * dpms off'"; resumeCommand = "${swaymsg} 'output * dpms on'"; } ]; events = [ - { event = "before-sleep"; command = "${pkgs.swaylock-effects}/bin/swaylock -f --grace 0"; } + { event = "before-sleep"; command = "${swaylock} -f --grace 0"; } ]; }; From 9e80dccac5145417ada00aac16f31d92bdde61e1 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 15 Feb 2024 12:30:07 +0800 Subject: [PATCH 205/447] home(gui): add catppuccin icons --- home/gui/catppuccin/home.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/home/gui/catppuccin/home.nix b/home/gui/catppuccin/home.nix index f61c8ecd..b3bd6afd 100644 --- a/home/gui/catppuccin/home.nix +++ b/home/gui/catppuccin/home.nix @@ -11,6 +11,10 @@ in mkIf cfg.enable { # gtk theme gtk.theme = { inherit (cfg.gtk) package name; }; + gtk.iconTheme.package = pkgs.catppuccin-papirus-folders.override { + flavor = cfg.palette; + accent = "pink"; + }; # sway colour palette override wayland.windowManager.sway.config = { From 485a2b7ac1dd600fc6272c05f5f801155bb9eb06 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 15 Feb 2024 17:20:28 +0800 Subject: [PATCH 206/447] spec(incinerator): unlock initrd emergency access --- spec/incinerator/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/incinerator/default.nix b/spec/incinerator/default.nix index 89b26aa6..124e93a6 100644 --- a/spec/incinerator/default.nix +++ b/spec/incinerator/default.nix @@ -21,4 +21,5 @@ boot.kernelModules = [ "kvm-intel" ]; boot.extraModulePackages = [ ]; boot.kernelParams = [ "console=ttyS0,115200n8" ]; + boot.initrd.systemd.emergencyAccess = true; } From 2d50d38a40cd7b1baebe8d8006a4035644a180cc Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 17 Feb 2024 23:52:50 +0800 Subject: [PATCH 207/447] spec(eientei): add hass deps --- spec/eientei/hass.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/spec/eientei/hass.nix b/spec/eientei/hass.nix index 70aa960e..cbad0c79 100644 --- a/spec/eientei/hass.nix +++ b/spec/eientei/hass.nix @@ -13,6 +13,10 @@ "mqtt" "synology_dsm" ]; + + extraPackages = python3Packages: with python3Packages; [ + aiogithubapi gtts radios + ]; }; nixpkgs.config.permittedInsecurePackages = [ "openssl-1.1.1w" ]; From 0f9149bd5ef04a8b24a4c61876840a3aec16fdf5 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 18 Feb 2024 12:49:39 +0800 Subject: [PATCH 208/447] flake: bump inputs --- flake.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/flake.lock b/flake.lock index 81f8fa8e..34e66436 100644 --- a/flake.lock +++ b/flake.lock @@ -155,11 +155,11 @@ ] }, "locked": { - "lastModified": 1707683400, - "narHash": "sha256-Zc+J3UO1Xpx+NL8UB6woPHyttEy9cXXtm+0uWwzuYDc=", + "lastModified": 1708031129, + "narHash": "sha256-EH20hJfNnc1/ODdDVat9B7aKm0B95L3YtkIRwKLvQG8=", "owner": "nix-community", "repo": "home-manager", - "rev": "21b078306a2ab68748abf72650db313d646cf2ca", + "rev": "3d6791b3897b526c82920a2ab5f61d71985b3cf8", "type": "github" }, "original": { @@ -213,11 +213,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1707546158, - "narHash": "sha256-nYYJTpzfPMDxI8mzhQsYjIUX+grorqjKEU9Np6Xwy/0=", + "lastModified": 1708118438, + "narHash": "sha256-kk9/0nuVgA220FcqH/D2xaN6uGyHp/zoxPNUmPCMmEE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d934204a0f8d9198e1e4515dd6fec76a139c87f0", + "rev": "5863c27340ba4de8f83e7e3c023b9599c3cb3c80", "type": "github" }, "original": { From b287d7c00d8e791651e74f18f0bd564b5edf0c9d Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 18 Feb 2024 17:36:49 +0800 Subject: [PATCH 209/447] global(netdata): add netdata module and nginx wrapper --- global/netdata/default.nix | 52 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 global/netdata/default.nix diff --git a/global/netdata/default.nix b/global/netdata/default.nix new file mode 100644 index 00000000..fb9bebf6 --- /dev/null +++ b/global/netdata/default.nix @@ -0,0 +1,52 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.global.netdata; +in { + options.global.netdata = { + enable = mkEnableOption "netdata"; + host = mkOption { + type = with types; str; + default = "localhost"; + description = "hostname of netdata web interface"; + }; + addSSL = mkEnableOption "add SSL to netdata proxy"; + useACMEHost = mkOption { + type = with types; nullOr str; + default = null; + description = "existing acme host"; + }; + basicAuthFile = mkOption { + type = with types; nullOr path; + default = "/nix/persist/secret/netdata"; + description = "path to passwd file"; + }; + }; + + config = mkIf cfg.enable { + services.netdata = { + enable = true; + config = { + global = { + "error log" = "syslog"; + "access log" = "none"; + "debug log" = "syslog"; + }; + web."bind to" = "unix:/var/run/netdata/netdata.sock"; + }; + }; + + users.users.netdata.uid = 287; + users.groups.netdata.gid = 287; + + services.nginx.enable = mkDefault true; + services.nginx.virtualHosts.${cfg.host} = { + inherit (cfg) addSSL useACMEHost basicAuthFile; + locations."/".proxyPass = "http://unix:/var/run/netdata/netdata.sock"; + }; + users.users.nginx.extraGroups = [ "netdata" ]; + + environment.persistence."/nix/persist/fhs".directories = [ "/var/lib/netdata" ]; + }; +} From 1ccaa40a394be6bb155cafaeb7b315043600da07 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 18 Feb 2024 17:59:13 +0800 Subject: [PATCH 210/447] spec(focus): remove grafana dashboard --- spec/focus/grafana.nix | 36 ------------------------------------ spec/focus/nginx.nix | 8 -------- 2 files changed, 44 deletions(-) delete mode 100644 spec/focus/grafana.nix diff --git a/spec/focus/grafana.nix b/spec/focus/grafana.nix deleted file mode 100644 index bd667368..00000000 --- a/spec/focus/grafana.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ config -, ... }: { - services.grafana = { - enable = true; - dataDir = "/nix/persist/service/grafana"; - settings = { - server = { - http_addr = "127.0.0.1"; - http_port = 3000; - domain = "sf.514fpv.io"; - root_url = "https://sf.514fpv.io:8086/dash"; - serve_from_sub_path = true; - }; - }; - }; - - services.prometheus = { - enable = true; - port = 9001; - exporters = { - node = { - enable = true; - enabledCollectors = [ "systemd" ]; - port = 9002; - }; - }; - }; - - services.nginx.virtualHosts."sf.514fpv.io".locations."/dash/" = { - proxyPass = "http://${toString config.services.grafana.settings.server.http_addr}:${toString config.services.grafana.settings.server.http_port}"; - proxyWebsockets = true; - recommendedProxySettings = true; - }; - - global.fs.zfs.mountpoints."/nix/persist/service/grafana" = "service/grafana"; -} diff --git a/spec/focus/nginx.nix b/spec/focus/nginx.nix index 38c33ba0..7c8bb5e7 100644 --- a/spec/focus/nginx.nix +++ b/spec/focus/nginx.nix @@ -17,14 +17,6 @@ useACMEHost = ".sf.514fpv.io"; extraConfig = "return 444;"; }; - - "sf.514fpv.io" = { - addSSL = true; - useACMEHost = "sf.514fpv.io"; - locations."/" = { - return = "307 https://sf.514fpv.io:8086/dash/"; - }; - }; }; }; From 9e0f9ce6c59eb3a06037cd07a82a881767121993 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 18 Feb 2024 17:59:23 +0800 Subject: [PATCH 211/447] spec(focus): enable netdata dashboard --- spec/focus/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/spec/focus/default.nix b/spec/focus/default.nix index 1ad5e877..2d54633a 100644 --- a/spec/focus/default.nix +++ b/spec/focus/default.nix @@ -14,6 +14,10 @@ boot.lanzaboote = true; boot.memtest = 4; acme.enable = true; + netdata.enable = true; + netdata.host = "sf.514fpv.io"; + netdata.addSSL = true; + netdata.useACMEHost = "sf.514fpv.io"; }; services.udev.extraRules = '' From 8476a7476a4808050eadd0b2f65b7ddb37b1e351 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 18 Feb 2024 18:41:27 +0800 Subject: [PATCH 212/447] spec(eientei): move hass nginx configuration --- spec/eientei/hass.nix | 14 +++++++++++++- spec/eientei/nginx.nix | 12 ------------ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/spec/eientei/hass.nix b/spec/eientei/hass.nix index cbad0c79..210d6755 100644 --- a/spec/eientei/hass.nix +++ b/spec/eientei/hass.nix @@ -19,7 +19,19 @@ ]; }; - nixpkgs.config.permittedInsecurePackages = [ "openssl-1.1.1w" ]; + services.nginx.virtualHosts."home.514fpv.io" = { + useACMEHost = ".514fpv.io"; + addSSL = true; + extraConfig = '' + proxy_buffering off; + ''; + locations."/" = { + proxyPass = "http://127.0.0.1:8123"; + proxyWebsockets = true; + }; + }; global.fs.zfs.mountpoints."/nix/persist/service/hass" = "service/hass"; + + nixpkgs.config.permittedInsecurePackages = [ "openssl-1.1.1w" ]; } diff --git a/spec/eientei/nginx.nix b/spec/eientei/nginx.nix index facdc9ba..a83b542e 100644 --- a/spec/eientei/nginx.nix +++ b/spec/eientei/nginx.nix @@ -17,18 +17,6 @@ useACMEHost = ".514fpv.io"; extraConfig = "return 444;"; }; - - "home.514fpv.io" = { - useACMEHost = ".514fpv.io"; - addSSL = true; - extraConfig = '' - proxy_buffering off; - ''; - locations."/" = { - proxyPass = "http://127.0.0.1:8123"; - proxyWebsockets = true; - }; - }; }; }; From 73dafad1ad114501ef9df67dcb53f458f5cf7dd2 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 18 Feb 2024 19:08:27 +0800 Subject: [PATCH 213/447] spec(eientei): add jellyfin --- spec/eientei/jellyfin.nix | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 spec/eientei/jellyfin.nix diff --git a/spec/eientei/jellyfin.nix b/spec/eientei/jellyfin.nix new file mode 100644 index 00000000..75003a31 --- /dev/null +++ b/spec/eientei/jellyfin.nix @@ -0,0 +1,33 @@ +{ pkgs +, config +, ...}: { + services.jellyfin = { + enable = true; + openFirewall = true; + dataDir = "/nix/persist/service/jellyfin"; + }; + + users.users.jellyfin.uid = 282; + users.groups.jellyfin.gid = 282; + + services.nginx.virtualHosts."jellyfin.514fpv.io" = { + useACMEHost = ".514fpv.io"; + addSSL = true; + locations = { + "= /".return = "302 https://jellyfin.514fpv.io:2096/web/"; + "/" = { + proxyPass = "http://127.0.0.1:8096"; + extraConfig = '' + proxy_buffering off; + ''; + }; + "= /web/".proxyPass = "http://127.0.0.1:8096/web/index.html"; + "/socket" = { + proxyPass = "http://127.0.0.1:8096"; + proxyWebsockets = true; + }; + }; + }; + + global.fs.zfs.mountpoints."/nix/persist/service/jellyfin" = "service/jellyfin"; +} From c920fffcc2571d9ef7f7b8a8b8534b200bd03c02 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 18 Feb 2024 21:48:47 +0800 Subject: [PATCH 214/447] home(btop): add btop and catppuccin colours --- home/btop/home.nix | 101 ++++++++++++++++++++++++++++++++++++++++++++ home/btop/nixos.nix | 17 ++++++++ 2 files changed, 118 insertions(+) create mode 100644 home/btop/home.nix create mode 100644 home/btop/nixos.nix diff --git a/home/btop/home.nix b/home/btop/home.nix new file mode 100644 index 00000000..ade22460 --- /dev/null +++ b/home/btop/home.nix @@ -0,0 +1,101 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.passthrough.btop; +in mkIf cfg.enable { + programs.btop = { + enable = true; + settings = { + color_theme = "catppuccin"; + theme_background = false; + }; + }; + + home.file."${config.xdg.configHome}/btop/themes/catppuccin.theme".text = with (import ../gui/catppuccin/palette.nix) + .${config.passthrough.catppuccin.palette}; '' + # Main background, empty for terminal default, need to be empty if you want transparent background + theme[main_bg]="${base}" + + # Main text color + theme[main_fg]="${text}" + + # Title color for boxes + theme[title]="${text}" + + # Highlight color for keyboard shortcuts + theme[hi_fg]="${blue}" + + # Background color of selected item in processes box + theme[selected_bg]="${surface1}" + + # Foreground color of selected item in processes box + theme[selected_fg]="${blue}" + + # Color of inactive/disabled text + theme[inactive_fg]="${overlay1}" + + # Color of text appearing on top of graphs, i.e uptime and current network graph scaling + theme[graph_text]="${rosewater}" + + # Background color of the percentage meters + theme[meter_bg]="${surface1}" + + # Misc colors for processes box including mini cpu graphs, details memory graph and details status text + theme[proc_misc]="${rosewater}" + + # CPU, Memory, Network, Proc box outline colors + theme[cpu_box]="${mauve}" #Mauve + theme[mem_box]="${green}" #Green + theme[net_box]="${maroon}" #Maroon + theme[proc_box]="${blue}" #Blue + + # Box divider line and small boxes line color + theme[div_line]="${overlay0}" + + # Temperature graph color (Green -> Yellow -> Red) + theme[temp_start]="${green}" + theme[temp_mid]="${yellow}" + theme[temp_end]="${red}" + + # CPU graph colors (Teal -> Lavender) + theme[cpu_start]="${teal}" + theme[cpu_mid]="${sapphire}" + theme[cpu_end]="${lavender}" + + # Mem/Disk free meter (Mauve -> Lavender -> Blue) + theme[free_start]="${mauve}" + theme[free_mid]="${lavender}" + theme[free_end]="${blue}" + + # Mem/Disk cached meter (Sapphire -> Lavender) + theme[cached_start]="${sapphire}" + theme[cached_mid]="${blue}" + theme[cached_end]="${lavender}" + + # Mem/Disk available meter (Peach -> Red) + theme[available_start]="${peach}" + theme[available_mid]="${maroon}" + theme[available_end]="${red}" + + # Mem/Disk used meter (Green -> Sky) + theme[used_start]="${green}" + theme[used_mid]="${teal}" + theme[used_end]="${sky}" + + # Download graph colors (Peach -> Red) + theme[download_start]="${peach}" + theme[download_mid]="${maroon}" + theme[download_end]="${red}" + + # Upload graph colors (Green -> Sky) + theme[upload_start]="${green}" + theme[upload_mid]="${teal}" + theme[upload_end]="${sky}" + + # Process box color gradient for threads, mem and cpu usage (Sapphire -> Mauve) + theme[process_start]="${sapphire}" + theme[process_mid]="${lavender}" + theme[process_end]="${mauve}" + ''; +} diff --git a/home/btop/nixos.nix b/home/btop/nixos.nix new file mode 100644 index 00000000..3379a317 --- /dev/null +++ b/home/btop/nixos.nix @@ -0,0 +1,17 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.home.btop; +in { + options.home.btop = { + enable = mkEnableOption "btop" // { default = !config.home.util.minimal; }; + }; + + config = { + users.homeModules = [ + # this module passes gyroflow configuration to home-manager + { passthrough.btop = cfg; } + ]; + }; +} From 9cc608bfb680e19e22dc1e1117d8431fa3ce6dd3 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 19 Feb 2024 12:36:44 +0800 Subject: [PATCH 215/447] spec(eientei): add jellyfin packages --- spec/eientei/jellyfin.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/spec/eientei/jellyfin.nix b/spec/eientei/jellyfin.nix index 75003a31..9f3c3671 100644 --- a/spec/eientei/jellyfin.nix +++ b/spec/eientei/jellyfin.nix @@ -7,6 +7,8 @@ dataDir = "/nix/persist/service/jellyfin"; }; + environment.systemPackages = with pkgs; [ jellyfin jellyfin-web jellyfin-ffmpeg ]; + users.users.jellyfin.uid = 282; users.groups.jellyfin.gid = 282; From 899a9daf9664fcaa073e6b6f12c72222cbbe5696 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 19 Feb 2024 12:55:23 +0800 Subject: [PATCH 216/447] global(gpu): add session checks for session-specific options --- global/gpu/default.nix | 13 ++++++++----- global/gpu/greetd.nix | 3 ++- global/gpu/plymouth.nix | 3 ++- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/global/gpu/default.nix b/global/gpu/default.nix index 24c84b9e..1980ad8d 100644 --- a/global/gpu/default.nix +++ b/global/gpu/default.nix @@ -46,11 +46,14 @@ in { optional (cfg.type == "nvidia") vulkan-validation-layers; }; - services.xserver.videoDrivers = - optional nvidia "nvidia" ++ - optional (cfg.type == "amdgpu") "amdgpu"; - # inhibits default display manager - services.xserver.displayManager.startx.enable = mkDefault true; + services.xserver = mkIf cfg.session { + videoDrivers = + optional nvidia "nvidia" ++ + optional (cfg.type == "amdgpu") "amdgpu"; + # inhibits default display manager + + displayManager.startx.enable = mkDefault true; + }; hardware.nvidia = mkIf nvidia { modesetting.enable = true; diff --git a/global/gpu/greetd.nix b/global/gpu/greetd.nix index 17dc4e9e..d31f6c5c 100644 --- a/global/gpu/greetd.nix +++ b/global/gpu/greetd.nix @@ -3,7 +3,8 @@ , config , ... }: with lib; let cfg = config.global.gpu; -in mkIf (cfg.enable && cfg.session) { + gui = with cfg; enable && session; +in mkIf gui { programs.regreet = { enable = mkDefault true; cageArgs = [ "-s" "-d" "-m" "last" ]; diff --git a/global/gpu/plymouth.nix b/global/gpu/plymouth.nix index 2d7f7404..0705fd8a 100644 --- a/global/gpu/plymouth.nix +++ b/global/gpu/plymouth.nix @@ -3,7 +3,8 @@ , config , ... }: with lib; let cfg = config.global.gpu; -in mkIf cfg.enable { + gui = with cfg; enable && session; +in mkIf gui { boot = { loader.timeout = mkDefault 0; consoleLogLevel = 0; From 66f73551c9811a4f08a3c74685ca0667e728c805 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 19 Feb 2024 12:55:37 +0800 Subject: [PATCH 217/447] spec(eientei): enable gpu drivers --- spec/eientei/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/spec/eientei/default.nix b/spec/eientei/default.nix index 8bdd5e56..f33d3c8a 100644 --- a/spec/eientei/default.nix +++ b/spec/eientei/default.nix @@ -14,6 +14,9 @@ fs.cryptsetup.enable = true; fs.cryptsetup.allowDiscards = false; fs.cryptsetup.uuids.secret = "c33c9b18-a280-42d7-8740-3f8d3f60dc43"; + gpu.enable = true; + gpu.type = "intel"; + gpu.session = false; boot.lanzaboote = true; boot.memtest = 4; acme.enable = true; From b109482e00a6f2f8562254dd6e1cdb889876ddac Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 19 Feb 2024 13:58:55 +0800 Subject: [PATCH 218/447] home(gui): improve catppuccin terminal visibility --- home/gui/catppuccin/home.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home/gui/catppuccin/home.nix b/home/gui/catppuccin/home.nix index b3bd6afd..5d6a587a 100644 --- a/home/gui/catppuccin/home.nix +++ b/home/gui/catppuccin/home.nix @@ -120,7 +120,7 @@ in mkIf cfg.enable { c = substring 1 7; in { foreground = c text; background = c base; - regular0 = c subtext1; regular1 = c red; + regular0 = c overlay2; regular1 = c red; regular2 = c green; regular3 = c yellow; regular4 = c blue; regular5 = c pink; regular6 = c teal; regular7 = c surface2; From fcd6744602506e35473d9aa4677c88da5866fecb Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 19 Feb 2024 15:19:11 +0800 Subject: [PATCH 219/447] global(fs): remove replication compress flag --- global/fs/zfs/replication.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/global/fs/zfs/replication.nix b/global/fs/zfs/replication.nix index 9022d7d2..c8f58b44 100644 --- a/global/fs/zfs/replication.nix +++ b/global/fs/zfs/replication.nix @@ -10,7 +10,6 @@ in mkIf cfg.enable { sshKey = mkDefault "/var/lib/syncoid/.ssh/id_ed25519"; commonArgs = [ "--recursive" - "--compress=lz4" "--mbuffer-size=128M" ]; localSourceAllow = mkOptionDefault [ "mount" ]; From 2514327369f30eac47d7de3f585056477ad6fd19 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 19 Feb 2024 15:19:22 +0800 Subject: [PATCH 220/447] spec(eientei): change replication user --- spec/eientei/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/eientei/default.nix b/spec/eientei/default.nix index f33d3c8a..a5d67f3f 100644 --- a/spec/eientei/default.nix +++ b/spec/eientei/default.nix @@ -10,7 +10,7 @@ fs.zfs.split.store = "d9202e56-a14f-4342-acdb-dbae33d680fc"; fs.zfs.split.secret = "1404c4f1-b890-4cf0-ab8a-26bd81bd2254"; fs.zfs.replication.enable = true; - fs.zfs.replication.remote = "koishi@archive:archive/backup/koishi/eientei"; + fs.zfs.replication.remote = "eientei@archive:archive/backup/koishi/eientei"; fs.cryptsetup.enable = true; fs.cryptsetup.allowDiscards = false; fs.cryptsetup.uuids.secret = "c33c9b18-a280-42d7-8740-3f8d3f60dc43"; From be583ed13b7a8ed7a5630a57919edb08c210a662 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 21 Feb 2024 21:53:08 +0800 Subject: [PATCH 221/447] package: add nixos module imports --- package/default.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/package/default.nix b/package/default.nix index 38b64d27..3f21f9d6 100644 --- a/package/default.nix +++ b/package/default.nix @@ -10,4 +10,10 @@ else { }); }) (builtins.attrNames (builtins.readDir ./.))) ) ]; + + imports = lib.pipe ./. [ + builtins.readDir + (lib.filterAttrs (n: ty: ty == "directory" && builtins.pathExists ./${n}/nixos.nix)) + (lib.mapAttrsToList (n: _: ./${n}/nixos.nix)) + ]; } From 5a71752aa0cfeb1cbad0376daa0ce750f0a2a8d4 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 21 Feb 2024 23:25:06 +0800 Subject: [PATCH 222/447] package(tubesync): add tubesync application and module --- package/tubesync/database-local-socket.patch | 27 +++ package/tubesync/default.nix | 122 +++++++++++++ package/tubesync/gunicorn-env.patch | 19 ++ package/tubesync/nixos.nix | 172 +++++++++++++++++++ package/tubesync/state-dir-env.patch | 16 ++ 5 files changed, 356 insertions(+) create mode 100644 package/tubesync/database-local-socket.patch create mode 100644 package/tubesync/default.nix create mode 100644 package/tubesync/gunicorn-env.patch create mode 100644 package/tubesync/nixos.nix create mode 100644 package/tubesync/state-dir-env.patch diff --git a/package/tubesync/database-local-socket.patch b/package/tubesync/database-local-socket.patch new file mode 100644 index 00000000..b422f3ed --- /dev/null +++ b/package/tubesync/database-local-socket.patch @@ -0,0 +1,27 @@ +diff --git a/tubesync/tubesync/local_settings.py.container b/tubesync/tubesync/local_settings.py.container +index a7a07ab..7564138 100644 +--- a/tubesync/tubesync/local_settings.py.container ++++ b/tubesync/tubesync/local_settings.py.container +@@ -34,14 +34,20 @@ if database_connection_env: + database_dict = parse_database_connection_string(database_connection_env) + + ++database_host = database_dict.get("HOST") ++if database_host == "localhost": ++ database_dict["HOST"] = None ++ database_dict["PASSWORD"] = None ++ ++ + if database_dict: + log.info(f'Using database connection: {database_dict["ENGINE"]}://' +- f'{database_dict["USER"]}:[hidden]@{database_dict["HOST"]}:' ++ f'{database_dict["USER"]}:[hidden]@{database_host}:' + f'{database_dict["PORT"]}/{database_dict["NAME"]}') + DATABASES = { + 'default': database_dict, + } +- DATABASE_CONNECTION_STR = (f'{database_dict["DRIVER"]} at "{database_dict["HOST"]}:' ++ DATABASE_CONNECTION_STR = (f'{database_dict["DRIVER"]} at "{database_host}:' + f'{database_dict["PORT"]}" database ' + f'"{database_dict["NAME"]}"') + else: diff --git a/package/tubesync/default.nix b/package/tubesync/default.nix new file mode 100644 index 00000000..c038690d --- /dev/null +++ b/package/tubesync/default.nix @@ -0,0 +1,122 @@ +{ lib +, stdenvNoCC +, ffmpeg +, callPackage +, fetchFromGitHub +, fetchPypi +, makeWrapper +, python3Packages }: with python3Packages; let + mkPypi = pname: version: src: format: buildPythonPackage { + inherit pname version src format; + doCheck = false; + nativeBuildInputs = [ setuptools ]; + }; + + mkPypi' = pname: version: hash: format: mkPypi pname version + (fetchPypi { + inherit pname version hash; + }) format; + + mkPypi'' = pname: version: hash: mkPypi' pname version hash + "setuptools"; + + django-compat = mkPypi'' "django-compat" "1.0.15" "sha256-OsmjvtxWuTZdnrJBvFFX0MGTdpv5lfmnjcG8JOfCMxs="; + django-appconf = mkPypi'' "django-appconf" "1.0.6" "sha256-z+h+qCfE7gS5pw+rkLhtcEywLymB+J2oQjyw+r+I778="; + django-basicauth = mkPypi'' "django-basicauth" "0.5.3" "sha256-FenjZvaY9TxxseeU2v6gYPmQoqxVa65rczDdJTJKCRw="; + django-sass-processor = mkPypi'' "django-sass-processor" "1.4" "sha256-sX850H06dRCuxCXBkZN+IwUC3ut8pr9pUKGt+LS3wcM="; + django-background-tasks = mkPypi'' "django-background-tasks" "1.2.5" "sha256-4bGejUlaJ2ydZMWh/4tBEy910vWORb5xt4ZQ2tWa+d4="; + + django-compressor = let + pname = "django-compressor"; + version = "4.4"; + in mkPypi pname version (fetchFromGitHub { + owner = pname; + repo = pname; + rev = "refs/tags/${version}"; + hash = "sha256-c9uS5Z077b23Aj8jV30XNsshbEfrLRX3ozXasitQ6UQ="; + }) "setuptools"; + + app = buildPythonApplication rec { + pname = "tubesync"; + version = "0.13.3"; + format = "other"; + + src = fetchFromGitHub { + name = "${pname}-src"; + owner = "meeb"; + repo = pname; + rev = "v${version}"; + hash = "sha256-33DDbECEn/3vrQ0qvxoz5OZ/y8bR6BZ2cYUtPsA7YYc="; + }; + + patches = [ + ./gunicorn-env.patch + ./state-dir-env.patch + ./database-local-socket.patch + ]; + + propagatedBuildInputs = [ + yt-dlp requests + httptools pillow + gunicorn whitenoise + psycopg2 mysqlclient + redis hiredis + libsass six + ] ++ [ + django_3 + django-compat + django-appconf + django-compressor + django-basicauth + django-sass-processor + django-background-tasks + ]; + + buildPhase = '' + mv "tubesync/tubesync/local_settings.py.container" "tubesync/tubesync/local_settings.py" + rm "tubesync/tubesync/local_settings.py.example" + rm "tubesync/tubesync/local_settings.py.container.orig" + + python3 tubesync/manage.py compilescss + python3 tubesync/manage.py collectstatic --no-input + ''; + + installPhase = '' + mkdir -p "$out" + cp -r "tubesync" "$out/app" + + FFMPEG_VERSION=$(${ffmpeg}/bin/ffmpeg -version | head -n 1 | awk '{ print $3 }') + echo "ffmpeg_version = '$FFMPEG_VERSION'" >> "$out/app/common/third_party_versions.py" + + mv "$out/app/static" "$out/static" + ln -s "/tmp/tubesync/static" "$out/app/static" + ''; + }; +in stdenvNoCC.mkDerivation { + pname = "${app.pname}-wrapped"; + inherit (app) version; + + nativeBuildInputs = [ makeWrapper ]; + unpackPhase = "true"; + installPhase = '' + mkdir -p "$out/bin" + + makeWrapper "${python}/bin/python3" "$out/bin/tubesync-worker" \ + --chdir ${app}/app --add-flags \ + "${app}/app/manage.py process_tasks" \ + --set PATH ${lib.makeBinPath [ ffmpeg ]} + + makeWrapper "${gunicorn}/bin/gunicorn" "$out/bin/tubesync-gunicorn" \ + --chdir ${app}/app --add-flags \ + "-c ${app}/app/tubesync/gunicorn.py --capture-output tubesync.wsgi:application" + + makeWrapper "${python}/bin/python3" "$out/bin/tubesync-migrate" \ + --chdir "${app}/app" --add-flags \ + "${app}/app/manage.py migrate" + ''; + + passthru = { + inherit app; + pythonPath = makePythonPath app.propagatedBuildInputs; + }; +} diff --git a/package/tubesync/gunicorn-env.patch b/package/tubesync/gunicorn-env.patch new file mode 100644 index 00000000..d1ee0965 --- /dev/null +++ b/package/tubesync/gunicorn-env.patch @@ -0,0 +1,19 @@ +diff --git a/tubesync/tubesync/gunicorn.py b/tubesync/tubesync/gunicorn.py +index d59c138..341af25 100644 +--- a/tubesync/tubesync/gunicorn.py ++++ b/tubesync/tubesync/gunicorn.py +@@ -23,11 +23,10 @@ def get_bind(): + + workers = get_num_workers() + timeout = 30 +-chdir = '/app' + daemon = False +-pidfile = '/run/app/gunicorn.pid' +-user = 'app' +-group = 'app' ++pidfile = os.getenv('GUNICORN_PID_FILE', '/var/run/tubesync/gunicorn.pid') ++user = os.getenv('GUNICORN_USER', 'tubesync') ++group = os.getenv('GUNICORN_GROUP', 'tubesync') + loglevel = 'info' + errorlog = '-' + accesslog = '/dev/null' # Access logs are printed to stdout from nginx diff --git a/package/tubesync/nixos.nix b/package/tubesync/nixos.nix new file mode 100644 index 00000000..efa6cbf5 --- /dev/null +++ b/package/tubesync/nixos.nix @@ -0,0 +1,172 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.services.tubesync; +in { + options.services.tubesync = { + enable = mkEnableOption "tubesync stack"; + debug = mkEnableOption "debug logging"; + package = mkOption { + type = with types; package; + default = pkgs.tubesync; + description = "tubesync launcher package"; + }; + + user = mkOption { + type = with types; str; + default = "tubesync"; + description = "user under which tubesync runs"; + }; + group = mkOption { + type = with types; str; + default = "tubesync"; + description = "group under which tubesync runs"; + }; + + listen = { + host = mkOption { + type = with types; str; + default = "127.0.0.1"; + description = "host to listen on"; + }; + port = mkOption { + type = with types; port; + default = 8080; + description = "port to listen on"; + }; + }; + + stateDir = mkOption { + type = with types; str; + default = "/var/lib/tubesync"; + description = "path to tubesync state storage directory"; + }; + + dataDir = mkOption { + type = with types; str; + default = "${cfg.stateDir}/downloads"; + description = "path to tubesync video downloads"; + }; + + database = mkOption { + type = with types; str; + default = "postgresql://tubesync:@localhost:5432/tubesync"; + description = "database connection string"; + }; + }; + + config = mkIf cfg.enable { + systemd.services = let + env = { + PYTHONPATH = cfg.package.pythonPath; + GUNICORN_PID_FILE = "${cfg.stateDir}/run/gunicorn.pid"; + GUNICORN_USER = cfg.user; + GUNICORN_GROUP = cfg.group; + DATABASE_CONNECTION = cfg.database; + CONFIG_BASE_DIR = cfg.stateDir; + DOWNLOADS_BASE_DIR = cfg.dataDir; + TUBESYNC_DEBUG = mkIf cfg.debug "True"; + + REDIS_CONNECTION = "redis+socket://" + + "${cfg.stateDir}/run/redis.sock"; + }; + + base = description: { + description = "tubesync: ${description}"; + wantedBy = [ "multi-user.target" ]; + environment = env; + path = [ cfg.package ]; + serviceConfig = { + WorkingDirectory = cfg.stateDir; + User = cfg.user; + Group = cfg.group; + LockPersonality = true; + MemoryDenyWriteExecute = true; + NoNewPrivileges = true; + PrivateTmp = true; + PrivateDevices = true; + PrivateUsers = false; + ProtectClock = true; + ProtectControlGroups = true; + ProtectHome = true; + ProtectHostname = true; + ProtectKernelLogs = true; + ProtectKernelModules = true; + ProtectKernelTunables = true; + ProtectProc = "invisible"; + ProcSubset = "all"; + ProtectSystem = "strict"; + RemoveIPC = true; + ReadWritePaths = with cfg; [ stateDir dataDir ]; + RestrictAddressFamilies = [ + "AF_INET" + "AF_INET6" + "AF_NETLINK" + "AF_UNIX" + ]; + SystemCallArchitectures = "native"; + SystemCallFilter = [ + "@system-service" + "~@privileged" + "@chown" + ]; + UMask = "0077"; + }; + }; + + base' = description: (base description) // { + after = [ "tubesync.service" ]; + partOf = [ "tubesync.service" ]; + }; + in { + tubesync = recursiveUpdate (base "gunicorn") ({ + after = [ "network.target" ]; + serviceConfig = { + PIDFile = env.GUNICORN_PID_FILE; + ExecStartPre = pkgs.writeShellScript "tubesync-setup" '' + set -xe + tubesync-migrate + + mkdir -p "/tmp/tubesync" + cp -r "${cfg.package.app}/static/." "/tmp/tubesync/static" + chmod +w -R "/tmp/tubesync/static" + ''; + ExecStart = "${cfg.package}/bin/tubesync-gunicorn"; + ExecReload = "/usr/bin/env kill -s HUP $MAINPID"; + ExecStop = "/usr/bin/env kill -s TERM $MAINPID"; + ExecStopPost = pkgs.writeShellScript "tubesync-cleanup" '' + rm -f "$GUNICORN_PID_FILE" + rm -rf "/tmp/tubesync" + ''; + }; + }); + + tubesync-worker = recursiveUpdate (base' "worker") ({ + serviceConfig.ExecStart = "${cfg.package}/bin/tubesync-worker"; + }); + }; + + services.redis.servers.tubesync-celery = { + enable = true; + inherit (cfg) user; + unixSocket = "${cfg.stateDir}/run/redis.sock"; + save = [ ]; + }; + + users.users = mkIf (cfg.user == "tubesync") { + tubesync = { + description = "tubesync service account"; + group = cfg.group; + uid = config.ids.uids.tubesync; + }; + }; + + users.groups = mkIf (cfg.group == "tubesync") { + tubesync.gid = config.ids.gids.tubesync; + }; + + ids.uids.tubesync = 101; + ids.gids.tubesync = 101; + }; +} diff --git a/package/tubesync/state-dir-env.patch b/package/tubesync/state-dir-env.patch new file mode 100644 index 00000000..f7bb1d2d --- /dev/null +++ b/package/tubesync/state-dir-env.patch @@ -0,0 +1,16 @@ +diff --git a/tubesync/tubesync/local_settings.py.container b/tubesync/tubesync/local_settings.py.container +index a7a07ab..9207c7f 100644 +--- a/tubesync/tubesync/local_settings.py.container ++++ b/tubesync/tubesync/local_settings.py.container +@@ -6,9 +6,8 @@ from common.utils import parse_database_connection_string + + + BASE_DIR = Path(__file__).resolve().parent.parent +-ROOT_DIR = Path('/') +-CONFIG_BASE_DIR = ROOT_DIR / 'config' +-DOWNLOADS_BASE_DIR = ROOT_DIR / 'downloads' ++CONFIG_BASE_DIR = Path(os.getenv('CONFIG_BASE_DIR', "/var/lib/tubesync")) ++DOWNLOADS_BASE_DIR = Path(os.getenv('DOWNLOADS_BASE_DIR', f"{CONFIG_BASE_DIR}/downloads")) + DJANGO_URL_PREFIX = os.getenv('DJANGO_URL_PREFIX', None) + STATIC_URL = str(os.getenv('DJANGO_STATIC_URL', '/static/')) + if DJANGO_URL_PREFIX and STATIC_URL: From dae61762be727ecec8bb0b4ef17b88830c3898d8 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 21 Feb 2024 23:36:27 +0800 Subject: [PATCH 223/447] package(tubesync): create run directory pre-startup --- package/tubesync/nixos.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/package/tubesync/nixos.nix b/package/tubesync/nixos.nix index efa6cbf5..3745e71f 100644 --- a/package/tubesync/nixos.nix +++ b/package/tubesync/nixos.nix @@ -127,6 +127,7 @@ in { ExecStartPre = pkgs.writeShellScript "tubesync-setup" '' set -xe tubesync-migrate + mkdir -p "${cfg.stateDir}/run" mkdir -p "/tmp/tubesync" cp -r "${cfg.package.app}/static/." "/tmp/tubesync/static" From 9ae717566bbf9da75209face4edb3daaf2c4c6c6 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 22 Feb 2024 00:01:25 +0800 Subject: [PATCH 224/447] package(tubesync): allow redis access to run directory --- package/tubesync/nixos.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/package/tubesync/nixos.nix b/package/tubesync/nixos.nix index 3745e71f..0d62e52d 100644 --- a/package/tubesync/nixos.nix +++ b/package/tubesync/nixos.nix @@ -146,6 +146,9 @@ in { tubesync-worker = recursiveUpdate (base' "worker") ({ serviceConfig.ExecStart = "${cfg.package}/bin/tubesync-worker"; }); + + # allow binding to unix socket + redis-tubesync-celery.serviceConfig.ReadWritePaths = [ "${cfg.stateDir}/run" ]; }; services.redis.servers.tubesync-celery = { From dda8893d40dd373911a8dd96bab83a7539371a98 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 22 Feb 2024 00:45:24 +0800 Subject: [PATCH 225/447] spec(eientei): enable tubesync --- spec/eientei/tubesync.nix | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 spec/eientei/tubesync.nix diff --git a/spec/eientei/tubesync.nix b/spec/eientei/tubesync.nix new file mode 100644 index 00000000..f67b7e49 --- /dev/null +++ b/spec/eientei/tubesync.nix @@ -0,0 +1,8 @@ +{ + services.tubesync = { + enable = true; + stateDir = "/nix/persist/service/tubesync"; + }; + + global.fs.zfs.mountpoints."/nix/persist/service/tubesync" = "service/tubesync"; +} From 8bbe229d0a8f57cf732091e98c4cea353b7496da Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 22 Feb 2024 00:45:35 +0800 Subject: [PATCH 226/447] package(tubesync): remove umask --- package/tubesync/nixos.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/tubesync/nixos.nix b/package/tubesync/nixos.nix index 0d62e52d..e4552f4b 100644 --- a/package/tubesync/nixos.nix +++ b/package/tubesync/nixos.nix @@ -111,7 +111,7 @@ in { "~@privileged" "@chown" ]; - UMask = "0077"; + #UMask = "0077"; }; }; From 7ee037fc29ca3f375f6d3543e071f503d79081a3 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 22 Feb 2024 11:24:59 +0800 Subject: [PATCH 227/447] package(tubesync): add worker option --- package/tubesync/nixos.nix | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/package/tubesync/nixos.nix b/package/tubesync/nixos.nix index e4552f4b..53628cf2 100644 --- a/package/tubesync/nixos.nix +++ b/package/tubesync/nixos.nix @@ -13,6 +13,12 @@ in { description = "tubesync launcher package"; }; + workers = mkOption { + type = with types; int; + default = 1; + description = "maximum amount of concurrent workers"; + }; + user = mkOption { type = with types; str; default = "tubesync"; @@ -59,7 +65,6 @@ in { config = mkIf cfg.enable { systemd.services = let env = { - PYTHONPATH = cfg.package.pythonPath; GUNICORN_PID_FILE = "${cfg.stateDir}/run/gunicorn.pid"; GUNICORN_USER = cfg.user; GUNICORN_GROUP = cfg.group; @@ -67,7 +72,9 @@ in { CONFIG_BASE_DIR = cfg.stateDir; DOWNLOADS_BASE_DIR = cfg.dataDir; TUBESYNC_DEBUG = mkIf cfg.debug "True"; + TUBESYNC_WORKERS = toString cfg.workers; + PYTHONPATH = cfg.package.pythonPath; REDIS_CONNECTION = "redis+socket://" + "${cfg.stateDir}/run/redis.sock"; }; From 2701746bce59967695b7759e42829969feb7d993 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 23 Feb 2024 10:45:54 +0800 Subject: [PATCH 228/447] package(tubesync): add tools called by yt-dlp to PATH --- package/tubesync/default.nix | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/package/tubesync/default.nix b/package/tubesync/default.nix index c038690d..22cd3726 100644 --- a/package/tubesync/default.nix +++ b/package/tubesync/default.nix @@ -1,6 +1,8 @@ { lib , stdenvNoCC , ffmpeg +, rtmpdump +, atomicparsley , callPackage , fetchFromGitHub , fetchPypi @@ -98,17 +100,22 @@ in stdenvNoCC.mkDerivation { nativeBuildInputs = [ makeWrapper ]; unpackPhase = "true"; - installPhase = '' + installPhase = let + prefix = ''--prefix PATH : "${lib.makeBinPath [ + ffmpeg rtmpdump atomicparsley + ]}"''; + in '' mkdir -p "$out/bin" makeWrapper "${python}/bin/python3" "$out/bin/tubesync-worker" \ --chdir ${app}/app --add-flags \ "${app}/app/manage.py process_tasks" \ - --set PATH ${lib.makeBinPath [ ffmpeg ]} + ${prefix} makeWrapper "${gunicorn}/bin/gunicorn" "$out/bin/tubesync-gunicorn" \ --chdir ${app}/app --add-flags \ - "-c ${app}/app/tubesync/gunicorn.py --capture-output tubesync.wsgi:application" + "-c ${app}/app/tubesync/gunicorn.py --capture-output tubesync.wsgi:application" \ + ${prefix} makeWrapper "${python}/bin/python3" "$out/bin/tubesync-migrate" \ --chdir "${app}/app" --add-flags \ From 02bdeabf960e170a3b443c2fb5c61519dff74315 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 24 Feb 2024 15:08:45 +0800 Subject: [PATCH 229/447] flake: bump inputs --- flake.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/flake.lock b/flake.lock index 34e66436..8ed0f889 100644 --- a/flake.lock +++ b/flake.lock @@ -155,11 +155,11 @@ ] }, "locked": { - "lastModified": 1708031129, - "narHash": "sha256-EH20hJfNnc1/ODdDVat9B7aKm0B95L3YtkIRwKLvQG8=", + "lastModified": 1708591310, + "narHash": "sha256-8mQGVs8JccWTnORgoLOTh9zvf6Np+x2JzhIc+LDcJ9s=", "owner": "nix-community", "repo": "home-manager", - "rev": "3d6791b3897b526c82920a2ab5f61d71985b3cf8", + "rev": "0e0e9669547e45ea6cca2de4044c1a384fd0fe55", "type": "github" }, "original": { @@ -213,11 +213,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1708118438, - "narHash": "sha256-kk9/0nuVgA220FcqH/D2xaN6uGyHp/zoxPNUmPCMmEE=", + "lastModified": 1708655239, + "narHash": "sha256-ZrP/yACUvDB+zbqYJsln4iwotbH6CTZiTkANJ0AgDv4=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5863c27340ba4de8f83e7e3c023b9599c3cb3c80", + "rev": "cbc4211f0afffe6dfd2478a62615dd5175a13f9a", "type": "github" }, "original": { From 92bb4d66d549e572354bd9f282658ae19ed554b0 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 24 Feb 2024 15:35:03 +0800 Subject: [PATCH 230/447] home: add test password for koishi in vmVariant --- home/profile.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/home/profile.nix b/home/profile.nix index ef8be539..d14f39c4 100644 --- a/home/profile.nix +++ b/home/profile.nix @@ -159,6 +159,12 @@ in { # enable passwordless sudo security.sudo.wheelNeedsPassword = false; + + # enable access in build-vm + virtualisation.vmVariant = { + users.users.koishi.password = "passwd"; + users.users.koishi.hashedPasswordFile = mkForce null; + }; }; # this is for home components that need to extend nixos From 9dd07b3897ca04983f440c9644a2ddc6cce30d90 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 24 Feb 2024 17:19:50 +0800 Subject: [PATCH 231/447] spec(web): convert to bundlerEnv --- spec/web/site/Gemfile | 2 +- spec/web/site/Gemfile.lock | 65 +---- spec/web/site/default.nix | 57 +---- spec/web/site/gemset.nix | 495 +++++++++++++++++++++++++++++++++++++ spec/web/site/gemset.sh | 3 + 5 files changed, 520 insertions(+), 102 deletions(-) create mode 100644 spec/web/site/gemset.nix create mode 100755 spec/web/site/gemset.sh diff --git a/spec/web/site/Gemfile b/spec/web/site/Gemfile index d464b577..b6961f93 100644 --- a/spec/web/site/Gemfile +++ b/spec/web/site/Gemfile @@ -20,4 +20,4 @@ gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin] # Lock `http_parser.rb` gem to `v0.6.x` on JRuby builds since newer versions of the gem # do not have a Java counterpart. -gem "http_parser.rb", "~> 0.6.0", :platforms => [:jruby] +gem "http_parser.rb", "~> 0.6.0"#, :platforms => [:jruby] diff --git a/spec/web/site/Gemfile.lock b/spec/web/site/Gemfile.lock index d44f5b11..fd1b90e6 100644 --- a/spec/web/site/Gemfile.lock +++ b/spec/web/site/Gemfile.lock @@ -13,12 +13,7 @@ GEM eventmachine (1.2.7) ffi (1.16.3) forwardable-extended (2.6.0) - google-protobuf (3.25.2) - google-protobuf (3.25.2-aarch64-linux) - google-protobuf (3.25.2-arm64-darwin) - google-protobuf (3.25.2-x86-linux) - google-protobuf (3.25.2-x86_64-darwin) - google-protobuf (3.25.2-x86_64-linux) + google-protobuf (3.25.3) html-proofer (4.4.3) addressable (~> 2.3) mercenary (~> 0.3) @@ -28,7 +23,7 @@ GEM typhoeus (~> 1.3) yell (~> 2.0) zeitwerk (~> 2.5) - http_parser.rb (0.8.0) + http_parser.rb (0.6.0) i18n (1.14.1) concurrent-ruby (~> 1.0) jekyll (4.3.3) @@ -60,7 +55,7 @@ GEM jekyll (>= 3.8, < 5.0) jekyll-sitemap (1.4.0) jekyll (>= 3.7, < 5.0) - jekyll-theme-chirpy (6.4.2) + jekyll-theme-chirpy (6.5.0) jekyll (~> 4.3) jekyll-archives (~> 2.2) jekyll-include-cache (~> 0.2) @@ -79,17 +74,9 @@ GEM rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) mercenary (0.4.0) - nokogiri (1.16.0-aarch64-linux) - racc (~> 1.4) - nokogiri (1.16.0-arm-linux) - racc (~> 1.4) - nokogiri (1.16.0-arm64-darwin) - racc (~> 1.4) - nokogiri (1.16.0-x86-linux) - racc (~> 1.4) - nokogiri (1.16.0-x86_64-darwin) - racc (~> 1.4) - nokogiri (1.16.0-x86_64-linux) + mini_portile2 (2.8.5) + nokogiri (1.16.2) + mini_portile2 (~> 2.8.2) racc (~> 1.4) parallel (1.24.0) pathutil (0.16.2) @@ -97,32 +84,16 @@ GEM public_suffix (5.0.4) racc (1.7.3) rainbow (3.1.1) + rake (13.1.0) rb-fsevent (0.11.2) rb-inotify (0.10.1) ffi (~> 1.0) rexml (3.2.6) rouge (4.2.0) safe_yaml (1.0.5) - sass-embedded (1.69.7-aarch64-linux-gnu) - google-protobuf (~> 3.25) - sass-embedded (1.69.7-aarch64-linux-musl) - google-protobuf (~> 3.25) - sass-embedded (1.69.7-arm-linux-gnueabihf) - google-protobuf (~> 3.25) - sass-embedded (1.69.7-arm-linux-musleabihf) - google-protobuf (~> 3.25) - sass-embedded (1.69.7-arm64-darwin) - google-protobuf (~> 3.25) - sass-embedded (1.69.7-x86-linux-gnu) - google-protobuf (~> 3.25) - sass-embedded (1.69.7-x86-linux-musl) - google-protobuf (~> 3.25) - sass-embedded (1.69.7-x86_64-darwin) - google-protobuf (~> 3.25) - sass-embedded (1.69.7-x86_64-linux-gnu) - google-protobuf (~> 3.25) - sass-embedded (1.69.7-x86_64-linux-musl) + sass-embedded (1.71.1) google-protobuf (~> 3.25) + rake (>= 13.0.0) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) typhoeus (1.4.1) @@ -130,22 +101,10 @@ GEM unicode-display_width (2.5.0) webrick (1.8.1) yell (2.2.2) - zeitwerk (2.6.12) + zeitwerk (2.6.13) PLATFORMS - aarch64-linux - aarch64-linux-gnu - aarch64-linux-musl - arm-linux - arm-linux-gnueabihf - arm-linux-musleabihf - arm64-darwin - x86-linux - x86-linux-gnu - x86-linux-musl - x86_64-darwin - x86_64-linux-gnu - x86_64-linux-musl + ruby DEPENDENCIES html-proofer (~> 4.4) @@ -156,4 +115,4 @@ DEPENDENCIES wdm (~> 0.1.1) BUNDLED WITH - 2.5.3 + 2.5.5 diff --git a/spec/web/site/default.nix b/spec/web/site/default.nix index 6dc201a9..63913a06 100644 --- a/spec/web/site/default.nix +++ b/spec/web/site/default.nix @@ -1,9 +1,7 @@ { lib , stdenvNoCC , ruby -, bundler -, libffi -, gcc +, bundlerEnv , writeShellScriptBin , fetchFromGitHub }: let name = "website"; @@ -17,58 +15,21 @@ hash = "sha256-Uxe7PMNwzKUN2b77QbjWLxEtOOLodPOyeMuUM1eKdlc="; }; - vendor = stdenvNoCC.mkDerivation { - pname = "${name}-vendor"; - inherit version; - src = ./.; - - nativeBuildInputs = [ bundler ]; - - buildPhase = '' - export HOME="$(mktemp -d)" - bundle config set --local path "$out" - bundler package --no-install - ''; - - installPhase = '' - cp Gemfile* $out - ''; - - outputHashAlgo = "sha256"; - outputHashMode = "recursive"; - outputHash = "sha256-TEpo7m4a257kAFxCCx51PRZBRF4Fk6ItX+6t4GEp6Zs="; - }; - - deps = stdenvNoCC.mkDerivation { - pname = "${name}-deps"; - inherit version; - src = vendor; - - buildInputs = [ ruby libffi gcc ]; - - nativeBuildInputs = [ bundler ]; - - buildPhase = '' - export HOME="$(mktemp -d)" - bundle config set --local path "$out" - mkdir -p "vendor" - mv ruby/*/cache "vendor/" - bundle install --local - ''; + gems = bundlerEnv { + name = "${name}-gems"; + inherit ruby; + gemfile = ./Gemfile; + lockfile = ./Gemfile.lock; + gemset = ./gemset.nix; }; in stdenvNoCC.mkDerivation { pname = name; inherit version; src = ./.; - - buildInputs = [ ruby libffi gcc ]; - - nativeBuildInputs = [ (writeShellScriptBin "git" "true") bundler ]; + buildInputs = [ gems ruby ]; + nativeBuildInputs = [ (writeShellScriptBin "git" "true") ]; configurePhase = '' - export HOME="$(mktemp -d)" - bundle config set --local path "${deps}" - cp -r ${assets}/. assets/lib/ ''; diff --git a/spec/web/site/gemset.nix b/spec/web/site/gemset.nix new file mode 100644 index 00000000..b526c889 --- /dev/null +++ b/spec/web/site/gemset.nix @@ -0,0 +1,495 @@ +{ + addressable = { + dependencies = ["public_suffix"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0irbdwkkjwzajq1ip6ba46q49sxnrl2cw7ddkdhsfhb6aprnm3vr"; + type = "gem"; + }; + version = "2.8.6"; + }; + colorator = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0f7wvpam948cglrciyqd798gdc6z3cfijciavd0dfixgaypmvy72"; + type = "gem"; + }; + version = "1.1.0"; + }; + concurrent-ruby = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1qh1b14jwbbj242klkyz5fc7npd4j0mvndz62gajhvl1l3wd7zc2"; + type = "gem"; + }; + version = "1.2.3"; + }; + em-websocket = { + dependencies = ["eventmachine" "http_parser.rb"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1a66b0kjk6jx7pai9gc7i27zd0a128gy73nmas98gjz6wjyr4spm"; + type = "gem"; + }; + version = "0.5.3"; + }; + ethon = { + dependencies = ["ffi"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "17ix0mijpsy3y0c6ywrk5ibarmvqzjsirjyprpsy3hwax8fdm85v"; + type = "gem"; + }; + version = "0.16.0"; + }; + eventmachine = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0wh9aqb0skz80fhfn66lbpr4f86ya2z5rx6gm5xlfhd05bj1ch4r"; + type = "gem"; + }; + version = "1.2.7"; + }; + ffi = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1yvii03hcgqj30maavddqamqy50h7y6xcn2wcyq72wn823zl4ckd"; + type = "gem"; + }; + version = "1.16.3"; + }; + forwardable-extended = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15zcqfxfvsnprwm8agia85x64vjzr2w0xn9vxfnxzgcv8s699v0v"; + type = "gem"; + }; + version = "2.6.0"; + }; + google-protobuf = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1mnxzcq8kmyfb9bkzqnp019d1hx1vprip3yzdkkha6b3qz5rgg9r"; + type = "gem"; + }; + version = "3.25.3"; + }; + html-proofer = { + dependencies = ["addressable" "mercenary" "nokogiri" "parallel" "rainbow" "typhoeus" "yell" "zeitwerk"]; + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00hhwzl5llvsasbj6gpgd1272xrqz8wlxzq7qm0xa4z3mk24013j"; + type = "gem"; + }; + version = "4.4.3"; + }; + "http_parser.rb" = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi"; + type = "gem"; + }; + version = "0.6.0"; + }; + i18n = { + dependencies = ["concurrent-ruby"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qaamqsh5f3szhcakkak8ikxlzxqnv49n2p7504hcz2l0f4nj0wx"; + type = "gem"; + }; + version = "1.14.1"; + }; + jekyll = { + dependencies = ["addressable" "colorator" "em-websocket" "i18n" "jekyll-sass-converter" "jekyll-watch" "kramdown" "kramdown-parser-gfm" "liquid" "mercenary" "pathutil" "rouge" "safe_yaml" "terminal-table" "webrick"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0638cvpmk3py1w2dxpav6l0c854y6l94b6gyc2aa16i7r897z64a"; + type = "gem"; + }; + version = "4.3.3"; + }; + jekyll-archives = { + dependencies = ["jekyll"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0c2rks7xf6ajp18h4f4wmmbqm5ljprv70bqcz2sabi17zncmz9n0"; + type = "gem"; + }; + version = "2.2.1"; + }; + jekyll-include-cache = { + dependencies = ["jekyll"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01d2l6qrmjc42664ns83cv36jbvalcxqbkmj5i22fakka7jvkm67"; + type = "gem"; + }; + version = "0.2.1"; + }; + jekyll-paginate = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0r7bcs8fq98zldih4787zk5i9w24nz5wa26m84ssja95n3sas2l8"; + type = "gem"; + }; + version = "1.1.0"; + }; + jekyll-redirect-from = { + dependencies = ["jekyll"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nz6kd6qsa160lmjmls4zgx7fwcpp8ac07mpzy80z6zgd7jwldb6"; + type = "gem"; + }; + version = "0.16.0"; + }; + jekyll-sass-converter = { + dependencies = ["sass-embedded"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00n9v19h0qgjijygfdkdh2gwpmdlz49nw1mqk6fnp43f317ngrz2"; + type = "gem"; + }; + version = "3.0.0"; + }; + jekyll-seo-tag = { + dependencies = ["jekyll"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0638mqhqynghnlnaz0xi1kvnv53wkggaq94flfzlxwandn8x2biz"; + type = "gem"; + }; + version = "2.8.0"; + }; + jekyll-sitemap = { + dependencies = ["jekyll"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0622rwsn5i0m5xcyzdn86l68wgydqwji03lqixdfm1f1xdfqrq0d"; + type = "gem"; + }; + version = "1.4.0"; + }; + jekyll-theme-chirpy = { + dependencies = ["jekyll" "jekyll-archives" "jekyll-include-cache" "jekyll-paginate" "jekyll-redirect-from" "jekyll-seo-tag" "jekyll-sitemap"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xlrwyz68rfr820gm98gidc49vprb80im32s6ydli0q1mv1inmzq"; + type = "gem"; + }; + version = "6.5.0"; + }; + jekyll-watch = { + dependencies = ["listen"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1qd7hy1kl87fl7l0frw5qbn22x7ayfzlv9a5ca1m59g0ym1ysi5w"; + type = "gem"; + }; + version = "2.2.1"; + }; + kramdown = { + dependencies = ["rexml"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ic14hdcqxn821dvzki99zhmcy130yhv5fqfffkcf87asv5mnbmn"; + type = "gem"; + }; + version = "2.4.0"; + }; + kramdown-parser-gfm = { + dependencies = ["kramdown"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0a8pb3v951f4x7h968rqfsa19c8arz21zw1vaj42jza22rap8fgv"; + type = "gem"; + }; + version = "1.1.0"; + }; + liquid = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1czxv2i1gv3k7hxnrgfjb0z8khz74l4pmfwd70c7kr25l2qypksg"; + type = "gem"; + }; + version = "4.0.4"; + }; + listen = { + dependencies = ["rb-fsevent" "rb-inotify"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "13rgkfar8pp31z1aamxf5y7cfq88wv6rxxcwy7cmm177qq508ycn"; + type = "gem"; + }; + version = "3.8.0"; + }; + mercenary = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0f2i827w4lmsizrxixsrv2ssa3gk1b7lmqh8brk8ijmdb551wnmj"; + type = "gem"; + }; + version = "0.4.0"; + }; + mini_portile2 = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1kl9c3kdchjabrihdqfmcplk3lq4cw1rr9f378y6q22qwy5dndvs"; + type = "gem"; + }; + version = "2.8.5"; + }; + nokogiri = { + dependencies = ["mini_portile2" "racc"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "173zavvxlwyi48lfskk48wcrdbkvjlhjhvy4jpcrfx72rpjjx4k8"; + type = "gem"; + }; + version = "1.16.2"; + }; + parallel = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15wkxrg1sj3n1h2g8jcrn7gcapwcgxr659ypjf75z1ipkgxqxwsv"; + type = "gem"; + }; + version = "1.24.0"; + }; + pathutil = { + dependencies = ["forwardable-extended"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "12fm93ljw9fbxmv2krki5k5wkvr7560qy8p4spvb9jiiaqv78fz4"; + type = "gem"; + }; + version = "0.16.2"; + }; + public_suffix = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1bni4qjrsh2q49pnmmd6if4iv3ak36bd2cckrs6npl111n769k9m"; + type = "gem"; + }; + version = "5.0.4"; + }; + racc = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01b9662zd2x9bp4rdjfid07h09zxj7kvn7f5fghbqhzc625ap1dp"; + type = "gem"; + }; + version = "1.7.3"; + }; + rainbow = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0smwg4mii0fm38pyb5fddbmrdpifwv22zv3d3px2xx497am93503"; + type = "gem"; + }; + version = "3.1.1"; + }; + rake = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ilr853hawi09626axx0mps4rkkmxcs54mapz9jnqvpnlwd3wsmy"; + type = "gem"; + }; + version = "13.1.0"; + }; + rb-fsevent = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zmf31rnpm8553lqwibvv3kkx0v7majm1f341xbxc0bk5sbhp423"; + type = "gem"; + }; + version = "0.11.2"; + }; + rb-inotify = { + dependencies = ["ffi"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jm76h8f8hji38z3ggf4bzi8vps6p7sagxn3ab57qc0xyga64005"; + type = "gem"; + }; + version = "0.10.1"; + }; + rexml = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "05i8518ay14kjbma550mv0jm8a6di8yp5phzrd8rj44z9qnrlrp0"; + type = "gem"; + }; + version = "3.2.6"; + }; + rouge = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fkfa0iq3r9b0zzrxpxha17avmyzci3kidzmfbf6fd1279mndpb0"; + type = "gem"; + }; + version = "4.2.0"; + }; + safe_yaml = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0j7qv63p0vqcd838i2iy2f76c3dgwzkiz1d1xkg7n0pbnxj2vb56"; + type = "gem"; + }; + version = "1.0.5"; + }; + sass-embedded = { + dependencies = ["google-protobuf" "rake"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ccqqkmicqs2nbawyknb17qfafwqq0k6jxibcm86vqd1jp185pxa"; + type = "gem"; + }; + version = "1.71.1"; + }; + terminal-table = { + dependencies = ["unicode-display_width"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "14dfmfjppmng5hwj7c5ka6qdapawm3h6k9lhn8zj001ybypvclgr"; + type = "gem"; + }; + version = "3.0.2"; + }; + typhoeus = { + dependencies = ["ethon"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0z7gamf6s83wy0yqms3bi4srirn3fc0lc7n65lqanidxcj1xn5qw"; + type = "gem"; + }; + version = "1.4.1"; + }; + unicode-display_width = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1d0azx233nags5jx3fqyr23qa2rhgzbhv8pxp46dgbg1mpf82xky"; + type = "gem"; + }; + version = "2.5.0"; + }; + webrick = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "13qm7s0gr2pmfcl7dxrmq38asaza4w0i2n9my4yzs499j731wh8r"; + type = "gem"; + }; + version = "1.8.1"; + }; + yell = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1g16kcdhdfvczn7x81jiq6afg3bdxmb73skqjyjlkp5nqcy6y5hx"; + type = "gem"; + }; + version = "2.2.2"; + }; + zeitwerk = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1m67qmsak3x8ixs8rb971azl3l7wapri65pmbf5z886h46q63f1d"; + type = "gem"; + }; + version = "2.6.13"; + }; +} diff --git a/spec/web/site/gemset.sh b/spec/web/site/gemset.sh new file mode 100755 index 00000000..bf061e7a --- /dev/null +++ b/spec/web/site/gemset.sh @@ -0,0 +1,3 @@ +#!/bin/sh +rm -f Gemfile.lock gemset.nix +BUNDLE_FORCE_RUBY_PLATFORM=true nix run nixpkgs#bundix --impure -- --lock From c737cc777c4929dfcd0d4d66657064f48b3bb117 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 24 Feb 2024 22:09:39 +0800 Subject: [PATCH 232/447] spec(web): about: update link to server spec --- spec/web/site/_tabs/about.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/web/site/_tabs/about.md b/spec/web/site/_tabs/about.md index 2f30913e..e5c2bea5 100644 --- a/spec/web/site/_tabs/about.md +++ b/spec/web/site/_tabs/about.md @@ -4,7 +4,7 @@ order: 4 --- I fly multirotor aircraft, with a focus on cinematic and long range FPV cruising. -I also write software, and I self host [almost everything](https://src.514fpv.io:2096/koishi/nixos/src/branch/master/spec/library){:target="_blank"} I use online, including the [website](https://src.514fpv.io:2096/koishi/nixos/src/branch/master/spec/web/site){:target="_blank"} you're currently visiting. +I also write software, and I self host [almost everything](https://src.514fpv.io:2096/koishi/nixos/src/branch/master/spec/eientei){:target="_blank"} I use online, including the [website](https://src.514fpv.io:2096/koishi/nixos/src/branch/master/spec/web/site){:target="_blank"} you're currently visiting. If you find what I do interesting, feel free to drop by and say hi, I would really appreciate that. From 3ee0425780e349af7b91128982fa9095fc12fd55 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 28 Feb 2024 08:57:47 +0800 Subject: [PATCH 233/447] spec(focus): increase fastcgi read timeout --- spec/focus/nextcloud.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/focus/nextcloud.nix b/spec/focus/nextcloud.nix index 45d011f3..91732de1 100644 --- a/spec/focus/nextcloud.nix +++ b/spec/focus/nextcloud.nix @@ -14,6 +14,7 @@ in { configureRedis = true; webfinger = true; maxUploadSize = "128G"; + fastcgiTimeout = 300; hostName = host; phpExtraExtensions = all: with all; [ bz2 ]; database.createLocally = true; From a055f042bec011dc99f6bd7722a811f150bdba85 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 2 Mar 2024 18:20:40 +0800 Subject: [PATCH 234/447] flake: bump inputs --- flake.lock | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/flake.lock b/flake.lock index 8ed0f889..3a760ef9 100644 --- a/flake.lock +++ b/flake.lock @@ -56,11 +56,11 @@ ] }, "locked": { - "lastModified": 1706830856, - "narHash": "sha256-a0NYyp+h9hlb7ddVz4LUn1vT/PLwqfrWYcHMvFB1xYg=", + "lastModified": 1709336216, + "narHash": "sha256-Dt/wOWeW6Sqm11Yh+2+t0dfEWxoMxGBvv3JpIocFl9E=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "b253292d9c0a5ead9bc98c4e9a26c6312e27d69f", + "rev": "f7b3c975cf067e56e7cda6cb098ebe3fb4d74ca2", "type": "github" }, "original": { @@ -95,11 +95,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1705309234, - "narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=", + "lastModified": 1709126324, + "narHash": "sha256-q6EQdSeUZOG26WelxqkmR7kArjgWCdw5sfJVHPH/7j8=", "owner": "numtide", "repo": "flake-utils", - "rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26", + "rev": "d465f4819400de7c8d874d50b982301f28a84605", "type": "github" }, "original": { @@ -155,11 +155,11 @@ ] }, "locked": { - "lastModified": 1708591310, - "narHash": "sha256-8mQGVs8JccWTnORgoLOTh9zvf6Np+x2JzhIc+LDcJ9s=", + "lastModified": 1709204054, + "narHash": "sha256-U1idK0JHs1XOfSI1APYuXi4AEADf+B+ZU4Wifc0pBHk=", "owner": "nix-community", "repo": "home-manager", - "rev": "0e0e9669547e45ea6cca2de4044c1a384fd0fe55", + "rev": "2f3367769a93b226c467551315e9e270c3f78b15", "type": "github" }, "original": { @@ -170,11 +170,11 @@ }, "impermanence": { "locked": { - "lastModified": 1706639736, - "narHash": "sha256-CaG4j9+UwBDfinxxvJMo6yOonSmSo0ZgnbD7aj2Put0=", + "lastModified": 1708968331, + "narHash": "sha256-VUXLaPusCBvwM3zhGbRIJVeYluh2uWuqtj4WirQ1L9Y=", "owner": "nix-community", "repo": "impermanence", - "rev": "cd13c2917eaa68e4c49fea0ff9cada45440d7045", + "rev": "a33ef102a02ce77d3e39c25197664b7a636f9c30", "type": "github" }, "original": { @@ -213,11 +213,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1708655239, - "narHash": "sha256-ZrP/yACUvDB+zbqYJsln4iwotbH6CTZiTkANJ0AgDv4=", + "lastModified": 1709237383, + "narHash": "sha256-cy6ArO4k5qTx+l5o+0mL9f5fa86tYUX3ozE1S+Txlds=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "cbc4211f0afffe6dfd2478a62615dd5175a13f9a", + "rev": "1536926ef5621b09bba54035ae2bb6d806d72ac8", "type": "github" }, "original": { From 2b34a2d1b686e9e5ec8c62ccb7625c648e832417 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 3 Mar 2024 15:04:33 +0800 Subject: [PATCH 235/447] global(fs): add zfs replication custom ssh port --- global/fs/zfs/default.nix | 5 +++++ global/fs/zfs/replication.nix | 1 + 2 files changed, 6 insertions(+) diff --git a/global/fs/zfs/default.nix b/global/fs/zfs/default.nix index 70520af2..99e4f59c 100644 --- a/global/fs/zfs/default.nix +++ b/global/fs/zfs/default.nix @@ -50,6 +50,11 @@ in { type = with types; str; description = "remote host as replication destination"; }; + port = mkOption { + type = with types; port; + description = "ssh port of replication target"; + default = 22; + }; datasets = mkOption { type = with types; listOf str; default = [ "persist" "service" "storage" ]; diff --git a/global/fs/zfs/replication.nix b/global/fs/zfs/replication.nix index c8f58b44..f2edba41 100644 --- a/global/fs/zfs/replication.nix +++ b/global/fs/zfs/replication.nix @@ -11,6 +11,7 @@ in mkIf cfg.enable { commonArgs = [ "--recursive" "--mbuffer-size=128M" + "--sshport=${toString cfg.port}" ]; localSourceAllow = mkOptionDefault [ "mount" ]; From 9b90675fbfd4ed8636f05d657ef2d06132f13302 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 3 Mar 2024 15:04:49 +0800 Subject: [PATCH 236/447] spec(focus): enable zfs replication --- spec/focus/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/spec/focus/default.nix b/spec/focus/default.nix index 2d54633a..1845261a 100644 --- a/spec/focus/default.nix +++ b/spec/focus/default.nix @@ -8,6 +8,9 @@ fs.zfs.split.enable = true; fs.zfs.split.store = "59b73292-8098-4774-b8b6-59c23130d405"; fs.zfs.split.secret = "f8983719-f9e7-42b2-b8f3-0f32f6b328ae"; + fs.zfs.replication.enable = true; + fs.zfs.replication.remote = "focus@edge.514fpv.io:archive/backup/koishi/focus"; + fs.zfs.replication.port = 8087; fs.cryptsetup.enable = true; fs.cryptsetup.allowDiscards = false; fs.cryptsetup.uuids.secret = "c2bc361e-6f9a-48fa-b698-ed3603a9664a"; From e10bb089627d839a7ce14796eff37916b8b2605d Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 3 Mar 2024 21:37:51 +0800 Subject: [PATCH 237/447] flake: bump inputs --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 3a760ef9..6a63bde6 100644 --- a/flake.lock +++ b/flake.lock @@ -155,11 +155,11 @@ ] }, "locked": { - "lastModified": 1709204054, - "narHash": "sha256-U1idK0JHs1XOfSI1APYuXi4AEADf+B+ZU4Wifc0pBHk=", + "lastModified": 1709445365, + "narHash": "sha256-DVv6nd9FQBbMWbOmhq0KVqmlc3y3FMSYl49UXmMcO+0=", "owner": "nix-community", "repo": "home-manager", - "rev": "2f3367769a93b226c467551315e9e270c3f78b15", + "rev": "4de84265d7ec7634a69ba75028696d74de9a44a7", "type": "github" }, "original": { From cd98f2db10e47bbfe7fcb60a8b556021a985303e Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 4 Mar 2024 09:26:16 +0800 Subject: [PATCH 238/447] package(photoview): package photoview --- package/photoview/default.nix | 63 +++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 package/photoview/default.nix diff --git a/package/photoview/default.nix b/package/photoview/default.nix new file mode 100644 index 00000000..d4d8e4a4 --- /dev/null +++ b/package/photoview/default.nix @@ -0,0 +1,63 @@ +{ lib +, pkg-config +, libjpeg_turbo +, libheif +, lapack +, dlib +, blas +, ffmpeg +, exiftool +, darktable +, fetchFromGitHub +, buildGoModule +, buildNpmPackage +, makeWrapper }: buildGoModule rec { + pname = "photoview"; + version = "2.3.13"; + + source = fetchFromGitHub { + name = "${pname}-src"; + owner = pname; + repo = pname; + rev = "refs/tags/v${version}"; + hash = "sha256-O6k5nbiWTsuOi8YLX0rsZJ9dOIo5d6pdwjhFZrdwI0E="; + }; + + src = source + "/api"; + vendorHash = "sha256-0SWywy9YdPtgvxRhwKhKvspPmhbnibSuhvzhsjIQvZk="; + nativeBuildInputs = [ + pkg-config + makeWrapper + ]; + buildInputs = [ + libjpeg_turbo + libheif + lapack + dlib + blas + ]; + + ui = buildNpmPackage { + pname = "${pname}-ui"; + inherit version; + src = source + "/ui"; + npmDepsHash = "sha256-31CyjyNd85hNg4MXIWctoQ3YgorGqCMz+wDAu/K1lWo="; + }; + + postInstall = '' + mv "$out/bin/api" "$out/bin/${pname}" + mkdir -p "$out/lib/${pname}" + wrapProgram $out/bin/${pname} \ + --prefix PATH ":" "${lib.makeBinPath [ + ffmpeg + exiftool + darktable + ]}" \ + --set PHOTOVIEW_SERVE_UI 1 \ + --set PHOTOVIEW_UI_PATH "$out/lib/${pname}/ui" + + cp -r \ + "${ui}/lib/node_modules/photoview-ui/dist" \ + "$out/lib/${pname}/ui" + ''; +} From e90d1beef8d78d48e90515bd3b6459f7219a5511 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 4 Mar 2024 12:07:20 +0800 Subject: [PATCH 239/447] package(photoview): install model data, add ui build info --- package/photoview/default.nix | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/package/photoview/default.nix b/package/photoview/default.nix index d4d8e4a4..40194a29 100644 --- a/package/photoview/default.nix +++ b/package/photoview/default.nix @@ -11,6 +11,7 @@ , fetchFromGitHub , buildGoModule , buildNpmPackage +, runCommandLocal , makeWrapper }: buildGoModule rec { pname = "photoview"; version = "2.3.13"; @@ -41,12 +42,19 @@ pname = "${pname}-ui"; inherit version; src = source + "/ui"; + + #REACT_APP_API_ENDPOINT = ""; + REACT_APP_BUILD_VERSION = version; + REACT_APP_BUILD_DATE = builtins.readFile (runCommandLocal "date" { } "date -uI > $out" ); + REACT_APP_BUILD_COMMIT_SHA = "nix"; + npmDepsHash = "sha256-31CyjyNd85hNg4MXIWctoQ3YgorGqCMz+wDAu/K1lWo="; }; postInstall = '' - mv "$out/bin/api" "$out/bin/${pname}" mkdir -p "$out/lib/${pname}" + + mv "$out/bin/api" "$out/bin/${pname}" wrapProgram $out/bin/${pname} \ --prefix PATH ":" "${lib.makeBinPath [ ffmpeg @@ -55,6 +63,9 @@ ]}" \ --set PHOTOVIEW_SERVE_UI 1 \ --set PHOTOVIEW_UI_PATH "$out/lib/${pname}/ui" + cp -r \ + "${src}/data/" \ + "$out/lib/${pname}/data/" cp -r \ "${ui}/lib/node_modules/photoview-ui/dist" \ From de4bdbccc5eb9b92552d1d341ce0294428ab450a Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 4 Mar 2024 12:14:05 +0800 Subject: [PATCH 240/447] package(photoview): add nixos module --- package/photoview/nixos.nix | 148 ++++++++++++++++++++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100644 package/photoview/nixos.nix diff --git a/package/photoview/nixos.nix b/package/photoview/nixos.nix new file mode 100644 index 00000000..08c7d167 --- /dev/null +++ b/package/photoview/nixos.nix @@ -0,0 +1,148 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.services.photoview; +in { + options.services.photoview = { + enable = mkEnableOption "photoview server"; + + package = mkOption { + type = with types; package; + default = pkgs.photoview; + description = "photoview package"; + }; + + user = mkOption { + type = with types; str; + default = "photoview"; + description = "user under which photoview runs"; + }; + group = mkOption { + type = with types; str; + default = "photoview"; + description = "group under which photoview runs"; + }; + + listen = { + host = mkOption { + type = with types; str; + default = "127.0.0.1"; + description = "host to listen on"; + }; + port = mkOption { + type = with types; port; + default = 8000; + description = "port to listen on"; + }; + }; + + database = { + driver = mkOption { + type = with types; enum [ "sqlite" "mysql" "postgres" ]; + default = "sqlite"; + description = "database driver"; + }; + string = mkOption { + type = with types; str; + description = "database connection string"; + }; + }; + + stateDir = mkOption { + type = with types; str; + default = "/var/lib/photoview"; + description = "path to photoview state directory"; + }; + + cacheDir = mkOption { + type = with types; str; + default = "${cfg.stateDir}/media_cache"; + description = "path to photoview media cache"; + }; + + secrets = mkOption { + type = with types; nullOr str; + default = null; + description = "path to secrets environment file"; + example = '' + MAPBOX_TOKEN= + ''; + }; + }; + + config = mkIf cfg.enable { + systemd.services.photoview = { + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; + description = "Photoview - Photo gallery for self-hosted personal servers"; + environment = with cfg; { + PHOTOVIEW_LISTEN_IP = listen.host; + PHOTOVIEW_LISTEN_PORT = toString listen.port; + PHOTOVIEW_MEDIA_CACHE = cacheDir; + PHOTOVIEW_DATABASE_DRIVER = database.driver; + "PHOTOVIEW_${toUpper database.driver}_URL" = database.string; + }; + serviceConfig = { + ExecStartPre = pkgs.writeShellScript "photoview-pre" '' + rm -f "${cfg.stateDir}/data" + ln -s "${cfg.package}/lib/photoview/data" "${cfg.stateDir}/data" + ''; + ExecStart = "${cfg.package}/bin/photoview"; + WorkingDirectory = cfg.stateDir; + User = cfg.user; + Group = cfg.group; + EnvironmentFile = mkIf (cfg.secrets != null) cfg.secrets; + + DevicePolicy = "closed"; + LockPersonality = true; + MemoryDenyWriteExecute = true; + NoNewPrivileges = true; + PrivateTmp = true; + PrivateUsers = true; + ProtectClock = true; + ProtectControlGroups = true; + ProtectHome = true; + ProtectHostname = true; + ProtectKernelLogs = true; + ProtectKernelModules = true; + ProtectKernelTunables = true; + ProtectProc = "invisible"; + ProcSubset = "all"; + ProtectSystem = "strict"; + RemoveIPC = true; + ReadWritePaths = [ cfg.stateDir ]; + RestrictAddressFamilies = [ + "AF_INET" + "AF_INET6" + "AF_NETLINK" + "AF_UNIX" + ]; + RestrictNamespaces = true; + RestrictRealtime = true; + RestrictSUIDSGID = true; + SystemCallArchitectures = "native"; + SystemCallFilter = [ + "@system-service" + "~@privileged" + ]; + UMask = "0077"; + }; + }; + + users.users = mkIf (cfg.user == "photoview") { + photoview = { + description = "photoview service account"; + group = cfg.group; + uid = config.ids.uids.photoview; + }; + }; + + users.groups = mkIf (cfg.group == "photoview") { + photoview.gid = config.ids.gids.photoview; + }; + + ids.uids.photoview = 287; + ids.gids.photoview = 287; + }; +} From 27c119a90a4ffc06fd0db03b9408aab825c397da Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 4 Mar 2024 21:28:16 +0800 Subject: [PATCH 241/447] spec(shinkirou): initial configuration --- global/auth/pub/shinkirou.pub | 1 + spec/shinkirou/default.nix | 52 +++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 global/auth/pub/shinkirou.pub create mode 100644 spec/shinkirou/default.nix diff --git a/global/auth/pub/shinkirou.pub b/global/auth/pub/shinkirou.pub new file mode 100644 index 00000000..8da18c48 --- /dev/null +++ b/global/auth/pub/shinkirou.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDwV7Z+PDC8ARRj1LxUJlv59gJ3A84LCMMyMSqLtRtuQ koishi@shinkirou diff --git a/spec/shinkirou/default.nix b/spec/shinkirou/default.nix new file mode 100644 index 00000000..faf06ae7 --- /dev/null +++ b/spec/shinkirou/default.nix @@ -0,0 +1,52 @@ +{ pkgs +, ... }: { + global = { + id = "23c46cfc573f4f889af9ba5d4678c2ab"; + fs.esp.uuid = "6695-0740"; + fs.type = "zfs"; + boot.lanzaboote = true; + gpu.enable = true; + gpu.type = "prime"; + android.enable = true; + asusd.enable = true; + }; + + home = { + gyroflow.enable = true; + vscode.enable = true; + libreoffice.enable = true; + minecraft.enable = true; + steam.enable = true; + }; + + users.homeModules = [ { + wayland.windowManager.sway.config = { + input."1267:16857:ELAN9009:00_04F3:41D9".map_to_output = "DP-3"; + output = { + eDP-1.scale = "1.5"; + eDP-1.pos = "0 0"; + DP-3.scale = "2.25"; + DP-3.pos = "0 1066"; + }; + }; + } ]; + + powerManagement.enable = true; + powerManagement.cpuFreqGovernor = "performance"; + boot.kernelParams = [ "zfs.zfs_arc_max=34359738368" ]; + console.packages = [ pkgs.terminus_font ]; + console.font = "ter-v32n"; + console.earlySetup = true; + + hardware.nvidia.prime = { + amdgpuBusId = "PCI:9:0:0"; + nvidiaBusId = "PCI:1:0:0"; + }; + + hardware.enableRedistributableFirmware = true; + boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "usbhid" "usb_storage" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; + hardware.cpu.amd.updateMicrocode = true; +} From 4450039dc4eebfc47d23bdaf44ae97f77902006a Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 4 Mar 2024 21:31:34 +0800 Subject: [PATCH 242/447] global(fs): switch default zfs kernel to lts --- global/fs/zfs/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/global/fs/zfs/default.nix b/global/fs/zfs/default.nix index 99e4f59c..37ca13ee 100644 --- a/global/fs/zfs/default.nix +++ b/global/fs/zfs/default.nix @@ -87,6 +87,7 @@ in { services.zfs.autoSnapshot.enable = true; services.zfs.autoScrub.enable = true; boot.zfs.devNodes = mkDefault "/dev/disk/by-partuuid"; - boot.kernelPackages = mkDefault config.boot.zfs.package.latestCompatibleLinuxPackages; + #boot.kernelPackages = mkDefault config.boot.zfs.package.latestCompatibleLinuxPackages; + global.kernel.lts = mkDefault true; }; } From 96851db8c7bdef1b23c65e022e0ec739ed33e987 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 5 Mar 2024 07:52:44 +0800 Subject: [PATCH 243/447] spec(chireiden): enable libreoffice --- spec/chireiden/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/chireiden/default.nix b/spec/chireiden/default.nix index c640e355..a1ea35b6 100644 --- a/spec/chireiden/default.nix +++ b/spec/chireiden/default.nix @@ -19,6 +19,7 @@ home = { vscode.enable = true; + libreoffice.enable = true; minecraft.enable = true; steam.enable = true; }; From 8c20a243c7a90edd0599c369989888667386cb37 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 5 Mar 2024 09:39:03 +0800 Subject: [PATCH 244/447] spec(eientei): enable photoview --- spec/eientei/photoview.nix | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 spec/eientei/photoview.nix diff --git a/spec/eientei/photoview.nix b/spec/eientei/photoview.nix new file mode 100644 index 00000000..f127e015 --- /dev/null +++ b/spec/eientei/photoview.nix @@ -0,0 +1,20 @@ +{ + services.photoview = { + enable = true; + database.driver = "postgres"; + database.string = "postgresql:///photoview?host=/var/run/postgresql"; + stateDir = "/nix/persist/service/photoview"; + secrets = "/nix/persist/service/photoview/secrets.env" ; + }; + + services.nginx.virtualHosts."raw.514fpv.io" = { + useACMEHost = ".514fpv.io"; + addSSL = true; + locations."/" = { + proxyPass = "http://127.0.0.1:8000"; + proxyWebsockets = true; + }; + }; + + global.fs.zfs.mountpoints."/nix/persist/service/photoview" = "service/photoview"; +} From 8faac7a846b6071a8c48a22c97c444b5de7d9e97 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 6 Mar 2024 09:09:06 +0800 Subject: [PATCH 245/447] flake: bump inputs --- flake.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/flake.lock b/flake.lock index 6a63bde6..b032d45b 100644 --- a/flake.lock +++ b/flake.lock @@ -155,11 +155,11 @@ ] }, "locked": { - "lastModified": 1709445365, - "narHash": "sha256-DVv6nd9FQBbMWbOmhq0KVqmlc3y3FMSYl49UXmMcO+0=", + "lastModified": 1709578243, + "narHash": "sha256-hF96D+c2PBmAFhymMw3z8hou++lqKtZ7IzpFbYeL1/Y=", "owner": "nix-community", "repo": "home-manager", - "rev": "4de84265d7ec7634a69ba75028696d74de9a44a7", + "rev": "23ff9821bcaec12981e32049e8687f25f11e5ef3", "type": "github" }, "original": { @@ -213,11 +213,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1709237383, - "narHash": "sha256-cy6ArO4k5qTx+l5o+0mL9f5fa86tYUX3ozE1S+Txlds=", + "lastModified": 1709479366, + "narHash": "sha256-n6F0n8UV6lnTZbYPl1A9q1BS0p4hduAv1mGAP17CVd0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1536926ef5621b09bba54035ae2bb6d806d72ac8", + "rev": "b8697e57f10292a6165a20f03d2f42920dfaf973", "type": "github" }, "original": { From 659bd0142f1b57a909a86321d6c68ce574e99304 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 6 Mar 2024 10:26:31 +0800 Subject: [PATCH 246/447] spec(shinkirou): scale login screen --- spec/shinkirou/default.nix | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/spec/shinkirou/default.nix b/spec/shinkirou/default.nix index faf06ae7..d93f5920 100644 --- a/spec/shinkirou/default.nix +++ b/spec/shinkirou/default.nix @@ -1,4 +1,6 @@ -{ pkgs +{ lib +, pkgs +, config , ... }: { global = { id = "23c46cfc573f4f889af9ba5d4678c2ab"; @@ -43,6 +45,13 @@ nvidiaBusId = "PCI:1:0:0"; }; + services.greetd.settings.default_session.command = let + cfg = config.programs.regreet; + in "${pkgs.dbus}/bin/dbus-run-session ${lib.getExe pkgs.cage} ${lib.escapeShellArgs cfg.cageArgs} -- ${pkgs.writeShellScript "cageResolution" '' + ${lib.getExe pkgs.wlr-randr} --output DP-3 --scale 2.25 + ${lib.getExe cfg.package} + ''}"; + hardware.enableRedistributableFirmware = true; boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "usbhid" "usb_storage" "sd_mod" ]; boot.initrd.kernelModules = [ ]; From 66e81a8f38e9a162dbc8b932375c897c9ce40cb7 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 6 Mar 2024 13:48:49 +0800 Subject: [PATCH 247/447] home(chrome): add ozone wayland environment variable --- home/chrome/nixos.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/home/chrome/nixos.nix b/home/chrome/nixos.nix index cdb23871..44a2b5c0 100644 --- a/home/chrome/nixos.nix +++ b/home/chrome/nixos.nix @@ -6,4 +6,5 @@ in { users.home.persist.directories = mkIf gui [ ".config/google-chrome" ]; security.chromiumSuidSandbox.enable = mkIf gui true; + environment.sessionVariables.NIXOS_OZONE_WL = "1"; } From 4c97d7ebe4fdc681001371d993f943742fd14107 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 6 Mar 2024 14:03:08 +0800 Subject: [PATCH 248/447] home(gyroflow): add qtwayland --- home/gyroflow/home.nix | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/home/gyroflow/home.nix b/home/gyroflow/home.nix index afdb7ee4..9146afda 100644 --- a/home/gyroflow/home.nix +++ b/home/gyroflow/home.nix @@ -4,5 +4,11 @@ , ... }: with lib; let cfg = config.passthrough.gyroflow; in mkIf cfg.enable { - home.packages = with pkgs; [ gyroflow ]; + home.packages = with pkgs; [ (gyroflow.overrideAttrs (finalAttrs: previousAttrs: { + buildInputs = previousAttrs.buildInputs ++ [ pkgs.qt6Packages.qtwayland ]; + })) ]; + + wayland.windowManager.sway.config.window.commands = [ + { criteria.app_id = "xyz.gyroflow.gyroflow"; command = "floating enable"; } + ]; } From 85ac98af053c33f7f996895525d0c8eafdf78574 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 7 Mar 2024 07:58:42 +0800 Subject: [PATCH 249/447] spec(eientei): disable photoview --- spec/eientei/photoview.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/eientei/photoview.nix b/spec/eientei/photoview.nix index f127e015..86e716a8 100644 --- a/spec/eientei/photoview.nix +++ b/spec/eientei/photoview.nix @@ -1,6 +1,6 @@ { services.photoview = { - enable = true; + enable = false; database.driver = "postgres"; database.string = "postgresql:///photoview?host=/var/run/postgresql"; stateDir = "/nix/persist/service/photoview"; From a18016c81cc582076ce5b4f03127de00eef17939 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 7 Mar 2024 08:39:56 +0800 Subject: [PATCH 250/447] spec(eientei): enable photoprism --- spec/eientei/photoprism.nix | 24 ++++++++++++++++++++++++ spec/eientei/photoview.nix | 20 -------------------- 2 files changed, 24 insertions(+), 20 deletions(-) create mode 100644 spec/eientei/photoprism.nix delete mode 100644 spec/eientei/photoview.nix diff --git a/spec/eientei/photoprism.nix b/spec/eientei/photoprism.nix new file mode 100644 index 00000000..05cf9e38 --- /dev/null +++ b/spec/eientei/photoprism.nix @@ -0,0 +1,24 @@ +{ + services.photoprism = { + enable = true; + originalsPath = "/run/storage/aerial"; + settings.PHOTOPRISM_ADMIN_USER = "koishi"; + passwordFile = "/var/lib/photoprism/password"; + }; + + services.nginx.virtualHosts."raw.514fpv.io" = { + useACMEHost = ".514fpv.io"; + addSSL = true; + extraConfig = '' + proxy_buffering off; + ''; + locations."/" = { + proxyPass = "http://127.0.0.1:2342"; + proxyWebsockets = true; + }; + }; + + environment.persistence."/nix/persist/fhs".directories = [ + "/var/lib/photoprism" + ]; +} diff --git a/spec/eientei/photoview.nix b/spec/eientei/photoview.nix deleted file mode 100644 index 86e716a8..00000000 --- a/spec/eientei/photoview.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ - services.photoview = { - enable = false; - database.driver = "postgres"; - database.string = "postgresql:///photoview?host=/var/run/postgresql"; - stateDir = "/nix/persist/service/photoview"; - secrets = "/nix/persist/service/photoview/secrets.env" ; - }; - - services.nginx.virtualHosts."raw.514fpv.io" = { - useACMEHost = ".514fpv.io"; - addSSL = true; - locations."/" = { - proxyPass = "http://127.0.0.1:8000"; - proxyWebsockets = true; - }; - }; - - global.fs.zfs.mountpoints."/nix/persist/service/photoview" = "service/photoview"; -} From 1cb345b90ff037625c08dca60e5a6e259544d160 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 7 Mar 2024 08:49:53 +0800 Subject: [PATCH 251/447] spec(eientei): photoprism use intel hwaccel --- spec/eientei/photoprism.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/eientei/photoprism.nix b/spec/eientei/photoprism.nix index 05cf9e38..cd775081 100644 --- a/spec/eientei/photoprism.nix +++ b/spec/eientei/photoprism.nix @@ -3,6 +3,7 @@ enable = true; originalsPath = "/run/storage/aerial"; settings.PHOTOPRISM_ADMIN_USER = "koishi"; + settings.PHOTOPRISM_FFMPEG_ENCODER = "intel"; passwordFile = "/var/lib/photoprism/password"; }; From 82377fd7194a18797cadf67a945ebd7169b0c8ca Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 7 Mar 2024 08:53:58 +0800 Subject: [PATCH 252/447] spec(eientei): photoprism remove limits --- spec/eientei/photoprism.nix | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/spec/eientei/photoprism.nix b/spec/eientei/photoprism.nix index cd775081..55ccb7fe 100644 --- a/spec/eientei/photoprism.nix +++ b/spec/eientei/photoprism.nix @@ -2,8 +2,12 @@ services.photoprism = { enable = true; originalsPath = "/run/storage/aerial"; - settings.PHOTOPRISM_ADMIN_USER = "koishi"; - settings.PHOTOPRISM_FFMPEG_ENCODER = "intel"; + settings = { + PHOTOPRISM_ADMIN_USER = "koishi"; + PHOTOPRISM_FFMPEG_ENCODER = "intel"; + PHOTOPRISM_ORIGINALS_LIMIT = "-1"; + PHOTOPRISM_RESOLUTION_LIMIT = "-1"; + }; passwordFile = "/var/lib/photoprism/password"; }; From f723565eb009741fe57c62140c44f72cb99c982e Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 7 Mar 2024 21:54:15 +0800 Subject: [PATCH 253/447] spec(eientei): photoprism switch to vaapi hwaccel --- spec/eientei/photoprism.nix | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/spec/eientei/photoprism.nix b/spec/eientei/photoprism.nix index 55ccb7fe..5532320d 100644 --- a/spec/eientei/photoprism.nix +++ b/spec/eientei/photoprism.nix @@ -1,10 +1,11 @@ -{ +{ lib +, ... }: with lib; { services.photoprism = { enable = true; originalsPath = "/run/storage/aerial"; settings = { PHOTOPRISM_ADMIN_USER = "koishi"; - PHOTOPRISM_FFMPEG_ENCODER = "intel"; + PHOTOPRISM_FFMPEG_ENCODER = "vaapi"; PHOTOPRISM_ORIGINALS_LIMIT = "-1"; PHOTOPRISM_RESOLUTION_LIMIT = "-1"; }; @@ -23,6 +24,12 @@ }; }; + systemd.services.photoprism.serviceConfig = { + PrivateDevices = mkForce false; + DevicePolicy = "closed"; + DeviceAllow = [ "/dev/dri/renderD128 rw" ]; + }; + environment.persistence."/nix/persist/fhs".directories = [ "/var/lib/photoprism" ]; From a782a9c025e3676a1ef3324cc6f6d299e8820979 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 8 Mar 2024 19:33:02 +0800 Subject: [PATCH 254/447] home(sway): redirect output to file --- home/sway/nixos.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home/sway/nixos.nix b/home/sway/nixos.nix index f5b2bbdc..feeb32cd 100644 --- a/home/sway/nixos.nix +++ b/home/sway/nixos.nix @@ -22,7 +22,7 @@ in mkIf gui { for profile in ''${(z)NIX_PROFILES}; do fpath+=($profile/share/zsh/site-functions $profile/share/zsh/$ZSH_VERSION/functions $profile/share/zsh/vendor-completions) done - exec sway ${if nvidia then "--unsupported-gpu" else ""} + exec sway${if nvidia then " --unsupported-gpu" else ""} 2>&1 >> $XDG_CACHE_HOME/sway ''; checkPhase = '' ${pkgs.stdenv.shellDryRun} "$target" From e2924d633e37ffffb7dad8d02c55619e0789b6e3 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 10 Mar 2024 15:04:33 +0800 Subject: [PATCH 255/447] spec(eientei): photoprism update path --- spec/eientei/photoprism.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/eientei/photoprism.nix b/spec/eientei/photoprism.nix index 5532320d..a9e0af7f 100644 --- a/spec/eientei/photoprism.nix +++ b/spec/eientei/photoprism.nix @@ -2,7 +2,7 @@ , ... }: with lib; { services.photoprism = { enable = true; - originalsPath = "/run/storage/aerial"; + originalsPath = "/run/storage/aerial/raw"; settings = { PHOTOPRISM_ADMIN_USER = "koishi"; PHOTOPRISM_FFMPEG_ENCODER = "vaapi"; From e988b6dcf68cea50edb5141e25a2988cd34a3657 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 11 Mar 2024 15:08:00 +0800 Subject: [PATCH 256/447] flake: bump inputs --- flake.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/flake.lock b/flake.lock index b032d45b..2de8c6a8 100644 --- a/flake.lock +++ b/flake.lock @@ -155,11 +155,11 @@ ] }, "locked": { - "lastModified": 1709578243, - "narHash": "sha256-hF96D+c2PBmAFhymMw3z8hou++lqKtZ7IzpFbYeL1/Y=", + "lastModified": 1709938482, + "narHash": "sha256-2Vw2WOFmEXWQH8ziFNOr0U48Guh5FacuD6BOEIcE99s=", "owner": "nix-community", "repo": "home-manager", - "rev": "23ff9821bcaec12981e32049e8687f25f11e5ef3", + "rev": "17431970b4ebc75a92657101ccffcfc9e1f9d8f0", "type": "github" }, "original": { @@ -213,11 +213,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1709479366, - "narHash": "sha256-n6F0n8UV6lnTZbYPl1A9q1BS0p4hduAv1mGAP17CVd0=", + "lastModified": 1709703039, + "narHash": "sha256-6hqgQ8OK6gsMu1VtcGKBxKQInRLHtzulDo9Z5jxHEFY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b8697e57f10292a6165a20f03d2f42920dfaf973", + "rev": "9df3e30ce24fd28c7b3e2de0d986769db5d6225d", "type": "github" }, "original": { From e8e03c3d4df917aeed61669f55a7f42cd8fec60a Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 11 Mar 2024 21:39:46 +0800 Subject: [PATCH 257/447] global(libvirt): add virtiofsd to environment --- global/libvirt/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/global/libvirt/default.nix b/global/libvirt/default.nix index a11d63cf..b8149719 100644 --- a/global/libvirt/default.nix +++ b/global/libvirt/default.nix @@ -20,6 +20,8 @@ in { parallelShutdown = 5; }; + environment.systemPackages = with pkgs; [ virtiofsd ]; + # USB redirection requires a setuid wrapper virtualisation.spiceUSBRedirection.enable = true; From 87b97d279907c7996d0c28882d1ecb903c7ae8f8 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 14 Mar 2024 10:06:54 +0800 Subject: [PATCH 258/447] package(tubesync): patch yt-dlp options to ensure integrity --- package/tubesync/default.nix | 1 + package/tubesync/ensure-fragments.patch | 13 +++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 package/tubesync/ensure-fragments.patch diff --git a/package/tubesync/default.nix b/package/tubesync/default.nix index 22cd3726..321dc1fc 100644 --- a/package/tubesync/default.nix +++ b/package/tubesync/default.nix @@ -55,6 +55,7 @@ ./gunicorn-env.patch ./state-dir-env.patch ./database-local-socket.patch + ./ensure-fragments.patch ]; propagatedBuildInputs = [ diff --git a/package/tubesync/ensure-fragments.patch b/package/tubesync/ensure-fragments.patch new file mode 100644 index 00000000..c3f30bea --- /dev/null +++ b/package/tubesync/ensure-fragments.patch @@ -0,0 +1,13 @@ +diff --git a/tubesync/sync/youtube.py b/tubesync/sync/youtube.py +index 4ac6e83..2915bf9 100644 +--- a/tubesync/sync/youtube.py ++++ b/tubesync/sync/youtube.py +@@ -119,6 +119,8 @@ def download_media(url, media_format, extension, output_file, info_json, + 'writesubtitles': write_subtitles, + 'writeautomaticsub': auto_subtitles, + 'subtitleslangs': sub_langs.split(','), ++ 'fragment_retries': 65536, ++ 'skip_unavailable_fragments': False, + } + + sbopt = { From 7dddbfd6ddc3a354bd023f959513ca034ee49ec7 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 14 Mar 2024 10:46:52 +0800 Subject: [PATCH 259/447] flake: bump inputs --- flake.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/flake.lock b/flake.lock index 2de8c6a8..70751d42 100644 --- a/flake.lock +++ b/flake.lock @@ -95,11 +95,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1709126324, - "narHash": "sha256-q6EQdSeUZOG26WelxqkmR7kArjgWCdw5sfJVHPH/7j8=", + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "d465f4819400de7c8d874d50b982301f28a84605", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", "type": "github" }, "original": { @@ -155,11 +155,11 @@ ] }, "locked": { - "lastModified": 1709938482, - "narHash": "sha256-2Vw2WOFmEXWQH8ziFNOr0U48Guh5FacuD6BOEIcE99s=", + "lastModified": 1710349883, + "narHash": "sha256-bjbdS2mC76xNJwt1d/uZa+JdHR8CCyYbF4Ey/NgOJus=", "owner": "nix-community", "repo": "home-manager", - "rev": "17431970b4ebc75a92657101ccffcfc9e1f9d8f0", + "rev": "2f0db7d418e781354d8a3c50e611e3b1cd413087", "type": "github" }, "original": { @@ -213,11 +213,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1709703039, - "narHash": "sha256-6hqgQ8OK6gsMu1VtcGKBxKQInRLHtzulDo9Z5jxHEFY=", + "lastModified": 1710272261, + "narHash": "sha256-g0bDwXFmTE7uGDOs9HcJsfLFhH7fOsASbAuOzDC+fhQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "9df3e30ce24fd28c7b3e2de0d986769db5d6225d", + "rev": "0ad13a6833440b8e238947e47bea7f11071dc2b2", "type": "github" }, "original": { From e3f1827788849e759af8f06682aafb2715f71cf7 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 14 Mar 2024 10:47:46 +0800 Subject: [PATCH 260/447] spec(eientei): enable photoview --- spec/eientei/photoview.nix | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 spec/eientei/photoview.nix diff --git a/spec/eientei/photoview.nix b/spec/eientei/photoview.nix new file mode 100644 index 00000000..f7ccb595 --- /dev/null +++ b/spec/eientei/photoview.nix @@ -0,0 +1,20 @@ +{ + services.photoview = { + enable = true; + database.driver = "postgres"; + database.string = "postgresql:///photoview?host=/var/run/postgresql"; + stateDir = "/nix/persist/service/photoview"; + secrets = "/nix/persist/service/photoview/secrets.env" ; + }; + + services.nginx.virtualHosts."dvr.514fpv.io" = { + useACMEHost = ".514fpv.io"; + addSSL = true; + locations."/" = { + proxyPass = "http://127.0.0.1:8000"; + proxyWebsockets = true; + }; + }; + + global.fs.zfs.mountpoints."/nix/persist/service/photoview" = "service/photoview"; +} From cb21340d22b994ce409e3946b21a86d0974899a2 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 14 Mar 2024 17:40:56 +0800 Subject: [PATCH 261/447] global(fs): ensure /var/lib/private mode --- global/fs/default.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/global/fs/default.nix b/global/fs/default.nix index 4805dc3e..0871b015 100644 --- a/global/fs/default.nix +++ b/global/fs/default.nix @@ -90,5 +90,10 @@ in { inherit (cfg.cryptsetup) allowDiscards bypassWorkqueues; device = "/dev/disk/by-uuid/${uuid}"; }) cfg.cryptsetup.uuids); + + environment.persistence."/nix/persist/fhs".files = [ { + file = "/var/lib/private/mode"; + parentDirectory.mode = "0700"; + } ]; }; } From 3cf03f271645ae8a30c01104bc59f2224de923f2 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 14 Mar 2024 17:41:14 +0800 Subject: [PATCH 262/447] spec(eientei): fix photoprism persistence path --- spec/eientei/photoprism.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/eientei/photoprism.nix b/spec/eientei/photoprism.nix index a9e0af7f..66a3874e 100644 --- a/spec/eientei/photoprism.nix +++ b/spec/eientei/photoprism.nix @@ -31,6 +31,6 @@ }; environment.persistence."/nix/persist/fhs".directories = [ - "/var/lib/photoprism" + "/var/lib/private/photoprism" ]; } From ed5e5d46407140cd9b835934b760c17e1080234e Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 14 Mar 2024 18:51:59 +0800 Subject: [PATCH 263/447] package(tubesync): patch yt-dlp options to disable continue --- package/tubesync/ensure-fragments.patch | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package/tubesync/ensure-fragments.patch b/package/tubesync/ensure-fragments.patch index c3f30bea..42c38673 100644 --- a/package/tubesync/ensure-fragments.patch +++ b/package/tubesync/ensure-fragments.patch @@ -1,13 +1,14 @@ diff --git a/tubesync/sync/youtube.py b/tubesync/sync/youtube.py -index 4ac6e83..2915bf9 100644 +index 4ac6e83..f0cf5b7 100644 --- a/tubesync/sync/youtube.py +++ b/tubesync/sync/youtube.py -@@ -119,6 +119,8 @@ def download_media(url, media_format, extension, output_file, info_json, +@@ -119,6 +119,9 @@ def download_media(url, media_format, extension, output_file, info_json, 'writesubtitles': write_subtitles, 'writeautomaticsub': auto_subtitles, 'subtitleslangs': sub_langs.split(','), + 'fragment_retries': 65536, + 'skip_unavailable_fragments': False, ++ 'continue_dl': False, } sbopt = { From 2e4a4047ed42ef036b829a6eed2a0b3145b8a159 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 18 Mar 2024 09:38:16 +0800 Subject: [PATCH 264/447] home(gyroflow): move package to module --- home/gyroflow/home.nix | 4 +--- home/gyroflow/nixos.nix | 7 +++++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/home/gyroflow/home.nix b/home/gyroflow/home.nix index 9146afda..5ec39359 100644 --- a/home/gyroflow/home.nix +++ b/home/gyroflow/home.nix @@ -4,9 +4,7 @@ , ... }: with lib; let cfg = config.passthrough.gyroflow; in mkIf cfg.enable { - home.packages = with pkgs; [ (gyroflow.overrideAttrs (finalAttrs: previousAttrs: { - buildInputs = previousAttrs.buildInputs ++ [ pkgs.qt6Packages.qtwayland ]; - })) ]; + home.packages = [ cfg.package ]; wayland.windowManager.sway.config.window.commands = [ { criteria.app_id = "xyz.gyroflow.gyroflow"; command = "floating enable"; } diff --git a/home/gyroflow/nixos.nix b/home/gyroflow/nixos.nix index 94e86471..02b46551 100644 --- a/home/gyroflow/nixos.nix +++ b/home/gyroflow/nixos.nix @@ -6,6 +6,13 @@ in { options.home.gyroflow = { enable = mkEnableOption "gyroflow stabilisation software"; + package = mkOption { + type = with types; package; + default = pkgs.gyroflow.overrideAttrs (finalAttrs: previousAttrs: { + buildInputs = previousAttrs.buildInputs ++ [ pkgs.qt6Packages.qtwayland ]; + }); + description = "gyroflow package"; + }; }; config = { From 3b525684f5e69a974d993988b0964653a61bebbb Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 18 Mar 2024 11:09:56 +0800 Subject: [PATCH 265/447] spec(web): enable uptime-kuma --- spec/web/nginx.nix | 9 +++++++++ spec/web/uptime.nix | 11 +++++++++++ 2 files changed, 20 insertions(+) create mode 100644 spec/web/uptime.nix diff --git a/spec/web/nginx.nix b/spec/web/nginx.nix index c0bf7f1e..ae1506bc 100644 --- a/spec/web/nginx.nix +++ b/spec/web/nginx.nix @@ -25,6 +25,15 @@ globalRedirect = "514fpv.one"; enableACME = true; }; + + "uptime.514fpv.one" = { + locations."/" = { + proxyPass = "http://127.0.0.1:4000"; + proxyWebsockets = true; + }; + forceSSL = true; + enableACME = true; + }; }; }; diff --git a/spec/web/uptime.nix b/spec/web/uptime.nix new file mode 100644 index 00000000..d9b27c68 --- /dev/null +++ b/spec/web/uptime.nix @@ -0,0 +1,11 @@ +{ + services.uptime-kuma = { + enable = true; + settings.HOST = "127.0.0.1"; + settings.PORT = "4000"; + }; + + environment.persistence."/nix/persist/fhs".directories = [ + "/var/lib/private/uptime-kuma" + ]; +} From dff75439a10bf338c1839a013ec392304bb4917a Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 18 Mar 2024 11:46:47 +0800 Subject: [PATCH 266/447] spec(eientei): proxy matrix health endpoint --- spec/eientei/matrix.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/eientei/matrix.nix b/spec/eientei/matrix.nix index 8b884e5f..1af2d400 100644 --- a/spec/eientei/matrix.nix +++ b/spec/eientei/matrix.nix @@ -40,6 +40,7 @@ in { locations."/".extraConfig = '' return 404; ''; + locations."/health".proxyPass = "http://127.0.0.1:8008"; locations."/_matrix".proxyPass = "http://127.0.0.1:8008"; locations."/_synapse/client".proxyPass = "http://127.0.0.1:8008"; }; From 710cec9d0f2db2b28d9fcdd54d3693b3509eb92d Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 19 Mar 2024 08:56:21 +0800 Subject: [PATCH 267/447] home(auth): add ssh ports --- home/auth/home.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/home/auth/home.nix b/home/auth/home.nix index 890628c3..4b2cfeba 100644 --- a/home/auth/home.nix +++ b/home/auth/home.nix @@ -22,4 +22,12 @@ }; }; }; + + programs.ssh = { + enable = true; + matchBlocks = { + "edge.514fpv.io".port = 8086; + "sf.514fpv.io".port = 8087; + }; + }; } From d16f1c824d2e1c2fb74f49c39d76474361cf9faf Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 19 Mar 2024 09:05:57 +0800 Subject: [PATCH 268/447] spec(eientei): fix frigate firewall interface names --- spec/eientei/frigate.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/eientei/frigate.nix b/spec/eientei/frigate.nix index c3239f10..dcdbb2e5 100644 --- a/spec/eientei/frigate.nix +++ b/spec/eientei/frigate.nix @@ -23,8 +23,8 @@ ]; }; - networking.firewall.interfaces.enp0s20f0u1.allowedTCPPorts = [ 5000 8554 8555 ]; - networking.firewall.interfaces.enp0s20f0u1.allowedUDPPorts = [ 8555 ]; + networking.firewall.interfaces.ss0.allowedTCPPorts = [ 5000 8554 8555 ]; + networking.firewall.interfaces.ss0.allowedUDPPorts = [ 8555 ]; global.fs.zfs.mountpoints."/nix/persist/service/frigate" = "service/frigate"; } From 185bbc4446f3861845049ba5af283584843e7da5 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 19 Mar 2024 09:50:08 +0800 Subject: [PATCH 269/447] spec(eientei): enable vaultwarden --- spec/eientei/vaultwarden.nix | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 spec/eientei/vaultwarden.nix diff --git a/spec/eientei/vaultwarden.nix b/spec/eientei/vaultwarden.nix new file mode 100644 index 00000000..8e6d6d30 --- /dev/null +++ b/spec/eientei/vaultwarden.nix @@ -0,0 +1,27 @@ +{ + services.vaultwarden = { + enable = true; + environmentFile = "/nix/persist/service/vaultwarden/secret.env"; + config = { + domain = "https://vault.514fpv.io:2096"; + signupsAllowed = true; + rocketAddress = "127.0.0.1"; + rocketPort = 8222; + rocketLog = "critical"; + databaseUrl = "postgresql:///vaultwarden"; + }; + dbBackend = "postgresql"; + }; + + services.nginx.virtualHosts."vault.514fpv.io" = { + useACMEHost = ".514fpv.io"; + addSSL = true; + locations."/".proxyPass = "http://127.0.0.1:8222"; + }; + + environment.persistence."/nix/persist/fhs".directories = [ + "/var/lib/bitwarden_rs" + ]; + + global.fs.zfs.mountpoints."/nix/persist/service/vaultwarden" = "service/vaultwarden"; +} From f46a89611835d3ce028719007f8d749a7de059e1 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 21 Mar 2024 08:14:58 +0800 Subject: [PATCH 270/447] spec(eientei): set zfs_arc_max --- spec/eientei/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/eientei/default.nix b/spec/eientei/default.nix index a5d67f3f..f864e146 100644 --- a/spec/eientei/default.nix +++ b/spec/eientei/default.nix @@ -27,6 +27,7 @@ SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="80:61:5f:07:9e:2f", NAME="ix0" SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:e0:4c:68:bb:30", NAME="ss0" ''; + boot.kernelParams = [ "zfs.zfs_arc_max=17179869184" ]; imports = lib.pipe ./. [ builtins.readDir From 81ec04da13239795eb7b9414c89f55d7603af836 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 21 Mar 2024 08:30:13 +0800 Subject: [PATCH 271/447] flake: bump inputs --- flake.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/flake.lock b/flake.lock index 70751d42..2e9ce5c4 100644 --- a/flake.lock +++ b/flake.lock @@ -155,11 +155,11 @@ ] }, "locked": { - "lastModified": 1710349883, - "narHash": "sha256-bjbdS2mC76xNJwt1d/uZa+JdHR8CCyYbF4Ey/NgOJus=", + "lastModified": 1710974515, + "narHash": "sha256-jZpdsypecYTOO9l12Vy77otGmh9uz8tGzcguifA30Vs=", "owner": "nix-community", "repo": "home-manager", - "rev": "2f0db7d418e781354d8a3c50e611e3b1cd413087", + "rev": "1c2acec99933f9835cc7ad47e35303de92d923a4", "type": "github" }, "original": { @@ -213,11 +213,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1710272261, - "narHash": "sha256-g0bDwXFmTE7uGDOs9HcJsfLFhH7fOsASbAuOzDC+fhQ=", + "lastModified": 1710806803, + "narHash": "sha256-qrxvLS888pNJFwJdK+hf1wpRCSQcqA6W5+Ox202NDa0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "0ad13a6833440b8e238947e47bea7f11071dc2b2", + "rev": "b06025f1533a1e07b6db3e75151caa155d1c7eb3", "type": "github" }, "original": { From cd07d25c0d881a303cd26b236707c682610b309c Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 21 Mar 2024 09:06:23 +0800 Subject: [PATCH 272/447] package(tubesync): patch yt-dlp options to print newlines as progress --- package/tubesync/ensure-fragments.patch | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package/tubesync/ensure-fragments.patch b/package/tubesync/ensure-fragments.patch index 42c38673..f25534ea 100644 --- a/package/tubesync/ensure-fragments.patch +++ b/package/tubesync/ensure-fragments.patch @@ -1,11 +1,12 @@ diff --git a/tubesync/sync/youtube.py b/tubesync/sync/youtube.py -index 4ac6e83..f0cf5b7 100644 +index 4ac6e83..192b031 100644 --- a/tubesync/sync/youtube.py +++ b/tubesync/sync/youtube.py -@@ -119,6 +119,9 @@ def download_media(url, media_format, extension, output_file, info_json, +@@ -119,6 +119,10 @@ def download_media(url, media_format, extension, output_file, info_json, 'writesubtitles': write_subtitles, 'writeautomaticsub': auto_subtitles, 'subtitleslangs': sub_langs.split(','), ++ 'progress_with_newline': True, + 'fragment_retries': 65536, + 'skip_unavailable_fragments': False, + 'continue_dl': False, From b8a330f7f575ee75dbba2825c0191dbf4b46e78b Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 21 Mar 2024 17:11:58 +0800 Subject: [PATCH 273/447] package(tubesync): patch ffmpeg --- package/tubesync/default.nix | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/package/tubesync/default.nix b/package/tubesync/default.nix index 321dc1fc..8ddb6f0f 100644 --- a/package/tubesync/default.nix +++ b/package/tubesync/default.nix @@ -6,6 +6,7 @@ , callPackage , fetchFromGitHub , fetchPypi +, fetchpatch , makeWrapper , python3Packages }: with python3Packages; let mkPypi = pname: version: src: format: buildPythonPackage { @@ -88,13 +89,21 @@ mkdir -p "$out" cp -r "tubesync" "$out/app" - FFMPEG_VERSION=$(${ffmpeg}/bin/ffmpeg -version | head -n 1 | awk '{ print $3 }') + FFMPEG_VERSION=$(${ffmpegFix}/bin/ffmpeg -version | head -n 1 | awk '{ print $3 }') echo "ffmpeg_version = '$FFMPEG_VERSION'" >> "$out/app/common/third_party_versions.py" mv "$out/app/static" "$out/static" ln -s "/tmp/tubesync/static" "$out/app/static" ''; }; + + ffmpegFix = ffmpeg.overrideAttrs (finalAttrs: previousAttrs: { + patches = previousAttrs.patches ++ [ (fetchpatch { + name = "avformat-webvttdec-skip-style-region.patch"; + url = "https://git.ffmpeg.org/gitweb/ffmpeg.git/patch/51d303e20cbb0874172f50b5172c515a973587d4"; + hash = "sha256-dxCjKZUz2H2QyktsprkzyfNp5aDG6X8deF4ZGdvhvfk="; + }) ]; + }); in stdenvNoCC.mkDerivation { pname = "${app.pname}-wrapped"; inherit (app) version; @@ -103,7 +112,7 @@ in stdenvNoCC.mkDerivation { unpackPhase = "true"; installPhase = let prefix = ''--prefix PATH : "${lib.makeBinPath [ - ffmpeg rtmpdump atomicparsley + ffmpegFix rtmpdump atomicparsley ]}"''; in '' mkdir -p "$out/bin" From 41998787b8c72ec41b9593b89c902fa61e701df5 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 24 Mar 2024 11:10:09 +0800 Subject: [PATCH 274/447] global(virtualbox): add kvm virtualbox host --- global/virtualbox/default.nix | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 global/virtualbox/default.nix diff --git a/global/virtualbox/default.nix b/global/virtualbox/default.nix new file mode 100644 index 00000000..bf705e14 --- /dev/null +++ b/global/virtualbox/default.nix @@ -0,0 +1,34 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.global.virtualbox; +in { + options.global.virtualbox = { + enable = mkEnableOption "virtualbox host (kvm)"; + }; + + config = mkIf cfg.enable { + virtualisation.virtualbox.host = { + enable = true; + enableKvm = true; + enableExtensionPack = true; + + enableHardening = false; + addNetworkInterface = false; + }; + + # allow virtualbox USB passthrough + users.adminGroups = [ "vboxusers" ]; + + users.home.persist.directories = [ + ".config/VirtualBox" + ]; + + users.homeModules = [ { + wayland.windowManager.sway.config.window.commands = [ + { criteria.class = "VirtualBox Manager"; command = "floating enable"; } + ]; + } ]; + }; +} From 22ccce5fc5d5a725f23fcbc719fae332c2cc6b22 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 25 Mar 2024 09:36:56 +0800 Subject: [PATCH 275/447] home(util): add sedutil --- home/util/home.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home/util/home.nix b/home/util/home.nix index 4c0df172..45d5823e 100644 --- a/home/util/home.nix +++ b/home/util/home.nix @@ -7,7 +7,7 @@ in { home.packages = with pkgs; [ pv file wget e2fsprogs ] ++ optionals (!cfg.minimal) [ - tio mbuffer + tio mbuffer sedutil lsscsi zip unzip nix-index dnsutils whois pciutils usbutils nvme-cli From efe0526c04ffbede1b527955742d803f8f36d8bd Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 25 Mar 2024 12:31:50 +0800 Subject: [PATCH 276/447] global(fs): add zfs alerts --- global/fs/zfs/alert.nix | 120 ++++++++++++++++++++++++++++++++++++++ global/fs/zfs/default.nix | 11 ++++ 2 files changed, 131 insertions(+) create mode 100644 global/fs/zfs/alert.nix diff --git a/global/fs/zfs/alert.nix b/global/fs/zfs/alert.nix new file mode 100644 index 00000000..d9c76ae7 --- /dev/null +++ b/global/fs/zfs/alert.nix @@ -0,0 +1,120 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.global.fs.zfs.alert; + + backend = { + text = pkgs.writeShellScript "telegram-text" '' + set -e + source ${cfg.secret} + + ${pkgs.curl}/bin/curl -sG \ + --data-urlencode "chat_id=$CHATID" \ + --data-urlencode "text=$ALERT" \ + "https://api.telegram.org/bot$APIKEY/sendMessage" + ''; + image = pkgs.writeShellScript "telegram-image" '' + set -e + source ${cfg.secret} + + ${pkgs.curl}/bin/curl -sG \ + -F "chat_id=$CHATID" \ + -F "caption=$ALERT" \ + -F "photo=@-" \ + "https://api.telegram.org/bot$APIKEY/sendPhoto" + ''; + }; + + zedAlert = pkgs.writeShellScript "zed-alert" '' + set -e + export BODY="$(cat)" + + # add tag + ALERT="$1 #zfs" + + export ALERT + echo -e "$BODY" | \ + ${pkgs.imagemagick}/bin/convert \ + -size 1500x2000 xc:black \ + -font "${pkgs.freefont_ttf}/share/fonts/truetype/FreeMono.ttf" \ + -pointsize 16 \ + -fill white -annotate +15+80 "@-" \ + -trim -bordercolor "#000" \ + -border 32 +repage \ + png:- | \ + ${backend.image} + ''; + + mdadmAlert = pkgs.writeShellScript "mdadm-alert" '' + set -e + + EVENT="$1" + ARRAY="$2" + DEVICE="$3" + + # fallback alert + ALERT="$EVENT | $ARRAY | $DEVICE" + + case $EVENT in + DegradedArray) + ALERT="Array $ARRAY is in a degraded state" + ;; + DeviceDisappeared) + ALERT="Array $ARRAY disappeared" + ;; + Fail) + ALERT="Array $ARRAY encountered failure of component $DEVICE" + ;; + FailSpare) + ALERT="Array $ARRAY encountered failure of spare component $DEVICE during rebuild" + ;; + MoveSpare) + ALERT="Spare $DEVICE moved to array $ARRAY" + ;; + NewArray) + ALERT="Array $ARRAY appeared" + ;; + Rebuild??) + ALERT="Array $ARRAY rebuild is now $(echo $EVENT | ${pkgs.sedutil}/bin/sed 's/Rebuild//')% complete" + ;; + RebuildFinished) + ALERT="Rebuild of array $ARRAY has concluded" + ;; + RebuildStarted) + ALERT="Rebuild of array $ARRAY has started" + ;; + SpareActive) + ALERT="Spare $DEVICE activated in array $ARRAY" + ;; + SparesMissing) + ALERT="Array $ARRAY missing one or more spares" + ;; + TestMessage) + ALERT="Test message generated for array $ARRAY" + ;; + esac + + # add tag + ALERT="$ALERT #swraid" + + export ALERT + exec ${backend.text} + ''; +in mkIf (cfg.secret != null) { + services.zfs.zed = mkIf cfg.zed { + settings = { + ZED_EMAIL_ADDR = [ "root" ]; + ZED_EMAIL_PROG = toString zedAlert; + ZED_EMAIL_OPTS = "'@SUBJECT@'"; + + ZED_NOTIFY_INTERVAL_SECS = 3600; + ZED_NOTIFY_VERBOSE = false; + + ZED_USE_ENCLOSURE_LEDS = true; + ZED_SCRUB_AFTER_RESILVER = false; + }; + }; + + global.fs.zfs.split.mdProg = mkIf cfg.swraid (toString mdadmAlert); +} diff --git a/global/fs/zfs/default.nix b/global/fs/zfs/default.nix index 37ca13ee..10c88a85 100644 --- a/global/fs/zfs/default.nix +++ b/global/fs/zfs/default.nix @@ -5,6 +5,7 @@ cfg = config.global.fs; in { imports = [ + ./alert.nix ./split.nix ./replication.nix ]; @@ -13,6 +14,16 @@ in { # -O encryption=on -O keyformat=passphrase -O keylocation=prompt # -O compression=on -O mountpoint=none -O xattr=sa -O acltype=posixacl options.global.fs.zfs = { + alert = { + zed = mkEnableOption "zfs event alerts" // { default = true; }; + swraid = mkEnableOption "software raid alerts" // { default = true; }; + secret = mkOption { + type = with types; nullOr str; + default = null; + description = "path to alert secrets"; + }; + }; + persist = mkOption { type = with types; str; default = cfg.store; From 14a01168a8b90f52801b9dfe15be912dc808f43d Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 25 Mar 2024 12:32:01 +0800 Subject: [PATCH 277/447] spec(eientei): enable zfs alerts --- spec/eientei/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/eientei/default.nix b/spec/eientei/default.nix index f864e146..4da7d086 100644 --- a/spec/eientei/default.nix +++ b/spec/eientei/default.nix @@ -6,6 +6,7 @@ auth.openssh.enable = true; fs.esp.uuid = "C368-7571"; fs.type = "zfs"; + fs.zfs.alert.secret = "/nix/persist/secret/telegram"; fs.zfs.split.enable = true; fs.zfs.split.store = "d9202e56-a14f-4342-acdb-dbae33d680fc"; fs.zfs.split.secret = "1404c4f1-b890-4cf0-ab8a-26bd81bd2254"; From f9d508ba32143908d9937eca434059fab9dca2ca Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 25 Mar 2024 12:46:45 +0800 Subject: [PATCH 278/447] spec(focus): enable zfs alerts --- spec/focus/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/focus/default.nix b/spec/focus/default.nix index 1845261a..019932da 100644 --- a/spec/focus/default.nix +++ b/spec/focus/default.nix @@ -5,6 +5,7 @@ auth.openssh.enable = true; fs.esp.uuid = "8C36-CBE2"; fs.type = "zfs"; + fs.zfs.alert.secret = "/nix/persist/secret/telegram"; fs.zfs.split.enable = true; fs.zfs.split.store = "59b73292-8098-4774-b8b6-59c23130d405"; fs.zfs.split.secret = "f8983719-f9e7-42b2-b8f3-0f32f6b328ae"; From 6fed230ae7843905840508d8e91192851b3922c4 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 25 Mar 2024 13:15:25 +0800 Subject: [PATCH 279/447] global(fs): add ability to customise curl args in alert --- global/fs/zfs/alert.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/global/fs/zfs/alert.nix b/global/fs/zfs/alert.nix index d9c76ae7..9af1317d 100644 --- a/global/fs/zfs/alert.nix +++ b/global/fs/zfs/alert.nix @@ -12,6 +12,7 @@ ${pkgs.curl}/bin/curl -sG \ --data-urlencode "chat_id=$CHATID" \ --data-urlencode "text=$ALERT" \ + $CURL_EXTRA_ARGS \ "https://api.telegram.org/bot$APIKEY/sendMessage" ''; image = pkgs.writeShellScript "telegram-image" '' @@ -22,6 +23,7 @@ -F "chat_id=$CHATID" \ -F "caption=$ALERT" \ -F "photo=@-" \ + $CURL_EXTRA_ARGS \ "https://api.telegram.org/bot$APIKEY/sendPhoto" ''; }; From 2c2637f7ace51727e8d627bf14eb6889e2b01433 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 26 Mar 2024 08:57:36 +0800 Subject: [PATCH 280/447] package(tubesync): bump tubesync 0.13.3 to 0.13.6 --- package/tubesync/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/tubesync/default.nix b/package/tubesync/default.nix index 8ddb6f0f..5318f882 100644 --- a/package/tubesync/default.nix +++ b/package/tubesync/default.nix @@ -41,7 +41,7 @@ app = buildPythonApplication rec { pname = "tubesync"; - version = "0.13.3"; + version = "0.13.6"; format = "other"; src = fetchFromGitHub { @@ -49,7 +49,7 @@ owner = "meeb"; repo = pname; rev = "v${version}"; - hash = "sha256-33DDbECEn/3vrQ0qvxoz5OZ/y8bR6BZ2cYUtPsA7YYc="; + hash = "sha256-5l1HkMoTn99rNeeK5u+KoFejTFi2LfLyt8upq7xwrj0="; }; patches = [ From db4bfb30893840fc8b01c139204fed0adf99baea Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 28 Mar 2024 08:01:16 +0800 Subject: [PATCH 281/447] flake: bump inputs --- flake.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/flake.lock b/flake.lock index 2e9ce5c4..fd5f3a94 100644 --- a/flake.lock +++ b/flake.lock @@ -155,11 +155,11 @@ ] }, "locked": { - "lastModified": 1710974515, - "narHash": "sha256-jZpdsypecYTOO9l12Vy77otGmh9uz8tGzcguifA30Vs=", + "lastModified": 1711554349, + "narHash": "sha256-RypwcWEIFePBI0Hubfj4chanbM/G2yzJzC6wgz+dmS4=", "owner": "nix-community", "repo": "home-manager", - "rev": "1c2acec99933f9835cc7ad47e35303de92d923a4", + "rev": "179f6acaf7c068c7870542cdae72afec9427a5b0", "type": "github" }, "original": { @@ -213,11 +213,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1710806803, - "narHash": "sha256-qrxvLS888pNJFwJdK+hf1wpRCSQcqA6W5+Ox202NDa0=", + "lastModified": 1711333969, + "narHash": "sha256-5PiWGn10DQjMZee5NXzeA6ccsv60iLu+Xtw+mfvkUAs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b06025f1533a1e07b6db3e75151caa155d1c7eb3", + "rev": "57e6b3a9e4ebec5aa121188301f04a6b8c354c9b", "type": "github" }, "original": { From e7c31837d5052ebf25a0cab29370db9a12da180a Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 28 Mar 2024 08:13:19 +0800 Subject: [PATCH 282/447] repo: update gitignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index b2be92b7..141b99d0 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ +result-* result +repl-result-* From e0ddf2c4e72f80c7931ae4388cdec9f7b591d079 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 28 Mar 2024 08:37:04 +0800 Subject: [PATCH 283/447] flake: compact input lines --- flake.nix | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/flake.nix b/flake.nix index 37bfbfbf..14cf472b 100644 --- a/flake.nix +++ b/flake.nix @@ -3,24 +3,14 @@ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; - flake-utils.url = "github:numtide/flake-utils"; - flake-parts = { - url = "github:hercules-ci/flake-parts"; - inputs.nixpkgs-lib.follows = "nixpkgs"; - }; - + flake-parts.url = "github:hercules-ci/flake-parts"; + flake-parts.inputs.nixpkgs-lib.follows = "nixpkgs"; impermanence.url = "github:nix-community/impermanence/master"; - - home-manager = { - url = "github:nix-community/home-manager"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - - lanzaboote = { - url = "github:nix-community/lanzaboote/v0.3.0"; - inputs.nixpkgs.follows = "nixpkgs"; - }; + home-manager.url = "github:nix-community/home-manager"; + home-manager.inputs.nixpkgs.follows = "nixpkgs"; + lanzaboote.url = "github:nix-community/lanzaboote/v0.3.0"; + lanzaboote.inputs.nixpkgs.follows = "nixpkgs"; }; outputs = inputs: From 0149295825e9b0b2cba691c6e895a11fd1de1a31 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 29 Mar 2024 10:29:57 +0800 Subject: [PATCH 284/447] global(io): add net-priv hosts --- global/io/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/global/io/default.nix b/global/io/default.nix index 9aad2d97..e76751c6 100644 --- a/global/io/default.nix +++ b/global/io/default.nix @@ -20,6 +20,10 @@ in { '' else ""); networking.networkmanager.enable = mkDefault true; + networking.hosts = { + "10.5.14.0" = [ "codec" ]; + "10.15.14.0" = [ "redir" ]; + }; hardware.bluetooth.enable = mkDefault cfg.bluetooth; hardware.pulseaudio = mkIf cfg.audio { From c3c2127576cbf2cc1c3323fda430e6d49558d61a Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 29 Mar 2024 10:33:23 +0800 Subject: [PATCH 285/447] global(io): add netvm to hosts --- global/io/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/global/io/default.nix b/global/io/default.nix index e76751c6..b75bb71c 100644 --- a/global/io/default.nix +++ b/global/io/default.nix @@ -23,6 +23,8 @@ in { networking.hosts = { "10.5.14.0" = [ "codec" ]; "10.15.14.0" = [ "redir" ]; + + "192.168.123.1" = [ "netvm" ]; }; hardware.bluetooth.enable = mkDefault cfg.bluetooth; From 743b9d511f426a554280793de2d6b0be366c3711 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 29 Mar 2024 11:02:13 +0800 Subject: [PATCH 286/447] global(gpu): remove i915 from initrd when arc is set --- global/gpu/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global/gpu/default.nix b/global/gpu/default.nix index 1980ad8d..768ed74e 100644 --- a/global/gpu/default.nix +++ b/global/gpu/default.nix @@ -94,7 +94,7 @@ in { boot.initrd.kernelModules = optional amdgpu "amdgpu" ++ - optional intel "i915" ++ + optional (intel && cfg.arc == null) "i915" ++ optionals nvidia [ "nvidia" "nvidia_drm" "nvidia_modeset" "nvidia_uvm" ] ++ optional (cfg.arc != null) "vfio-pci"; From fc6a007323bbf8a7c038e969fdc50e561dabf215 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 29 Mar 2024 21:47:16 +0800 Subject: [PATCH 287/447] spec(focus): update proxy address --- spec/focus/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/focus/default.nix b/spec/focus/default.nix index 019932da..2b83d710 100644 --- a/spec/focus/default.nix +++ b/spec/focus/default.nix @@ -29,7 +29,7 @@ ''; networking.proxy = { - allProxy = "socks5://192.168.1.1:1080"; + allProxy = "http://10.0.0.2:3128"; noProxy = "10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,127.0.0.1,localhost,.localdomain"; }; From a9f796476ff390fd673dc063cba5cca14ce7c21b Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 30 Mar 2024 14:01:48 +0800 Subject: [PATCH 288/447] global(io): update redir address --- global/io/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global/io/default.nix b/global/io/default.nix index b75bb71c..1b9b6ef8 100644 --- a/global/io/default.nix +++ b/global/io/default.nix @@ -22,7 +22,7 @@ in { networking.networkmanager.enable = mkDefault true; networking.hosts = { "10.5.14.0" = [ "codec" ]; - "10.15.14.0" = [ "redir" ]; + "10.5.14.1" = [ "redir" ]; "192.168.123.1" = [ "netvm" ]; }; From 800fe7913213b25faeca2bd9398f95a9bbeae0f9 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 30 Mar 2024 14:09:52 +0800 Subject: [PATCH 289/447] global(auth): translate key list --- global/auth/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/global/auth/default.nix b/global/auth/default.nix index aaad15f3..45e245fd 100644 --- a/global/auth/default.nix +++ b/global/auth/default.nix @@ -7,6 +7,8 @@ builtins.readDir (lib.filterAttrs (n: ty: ty == "regular")) (lib.mapAttrsToList (n: _: builtins.readFile ./pub/${n})) + (foldr (payload: keys: (splitString "\n" payload) ++ keys) [ ]) + (foldr (candidate: keys: keys ++ (if candidate == "" then [ ] else [ candidate ])) [ ]) ]; in { options.global.auth = { @@ -15,7 +17,7 @@ in { enable = mkEnableOption "openssh server"; password = mkEnableOption "password authentication"; publicKeys = mkOption { - type = with types; listOf str; + type = with types; listOf singleLineStr; default = pub; description = "list of trusted openssh keys"; }; From d79a6fc908136c6d47f3d192d3eb9466292e93b3 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 1 Apr 2024 08:07:29 +0800 Subject: [PATCH 290/447] global(auth): add utility port to firewall allow --- global/auth/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global/auth/default.nix b/global/auth/default.nix index 45e245fd..1c0572a6 100644 --- a/global/auth/default.nix +++ b/global/auth/default.nix @@ -42,7 +42,7 @@ in { settings.PasswordAuthentication = cfg.openssh.password; }; - networking.firewall.allowedTCPPorts = [ ] ++ + networking.firewall.allowedTCPPorts = [ 1300 ] ++ # utility port optional (cfg.openssh.enable && (cfg.openssh.port != null)) cfg.openssh.port; environment.persistence."/nix/persist/fhs".directories = [ ] ++ From ed4d3f6efbd7e84b5d92a66aec86eb1f76b48dd4 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 1 Apr 2024 08:26:47 +0800 Subject: [PATCH 291/447] home(headless): add headless module --- home/headless/home.nix | 24 +++++++++++++++++++ home/headless/nixos.nix | 51 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 home/headless/home.nix create mode 100644 home/headless/nixos.nix diff --git a/home/headless/home.nix b/home/headless/home.nix new file mode 100644 index 00000000..e30334d8 --- /dev/null +++ b/home/headless/home.nix @@ -0,0 +1,24 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.passthrough.headless; +in mkIf (cfg.enable != null) { + wayland.windowManager.sway.config = { + output = { + ${cfg.enable}.pos = "0 0"; + HEADLESS-1 = cfg.output; + }; + + startup = [ { command = "swaymsg create_output && swaymsg output HEADLESS-1 disable"; } ]; + }; + + home.packages = [ (pkgs.writeShellScriptBin "headless" '' + swaymsg output HEADLESS-1 enable + ${pkgs.wayvnc}/bin/wayvnc \ + --output=HEADLESS-1 \ + ${cfg.extraArgs} \ + ${cfg.host} ${toString cfg.port} + swaymsg output HEADLESS-1 disable + '') ]; +} diff --git a/home/headless/nixos.nix b/home/headless/nixos.nix new file mode 100644 index 00000000..77521f05 --- /dev/null +++ b/home/headless/nixos.nix @@ -0,0 +1,51 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.home.headless; +in { + options.home.headless = { + enable = mkOption { + type = with types; nullOr str; + default = null; + description = "a headless, remotely viewed sway display"; + }; + + output = mkOption { + type = with types; attrsOf str; + default = { + # pixel tablet + mode = "2560x1600"; + scale = "2"; + pos = "1920 0"; + }; + description = "headless display configuration"; + }; + + host = mkOption { + type = with types; str; + default = "0.0.0.0"; + description = "wayvnc listen host"; + }; + + port = mkOption { + type = with types; port; + # utility port + default = 1300; + description = "wayvnc listen port"; + }; + + extraArgs = mkOption { + type = with types; str; + default = "--max-fps=60"; + description = "extra wayvnc args"; + }; + }; + + config = { + users.homeModules = [ + # this module passes headless configuration to home-manager + { passthrough.headless = cfg; } + ]; + }; +} From 2ea8ecb78823dc4b4d1b69a61929038728209c3f Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 1 Apr 2024 08:27:09 +0800 Subject: [PATCH 292/447] spec(reimaden): enable headless --- spec/reimaden/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/reimaden/default.nix b/spec/reimaden/default.nix index c82f1cf5..af2ca9ba 100644 --- a/spec/reimaden/default.nix +++ b/spec/reimaden/default.nix @@ -11,6 +11,7 @@ }; home = { + headless.enable = "eDP-1"; gyroflow.enable = true; vscode.enable = true; libreoffice.enable = true; From 97cf83fe0100087b65742de14ae319feb075f5fb Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 1 Apr 2024 08:30:50 +0800 Subject: [PATCH 293/447] home(auth): fix allowed_signers file generation --- home/auth/home.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home/auth/home.nix b/home/auth/home.nix index 4b2cfeba..ee07ceed 100644 --- a/home/auth/home.nix +++ b/home/auth/home.nix @@ -17,7 +17,7 @@ # compiled from trusted keys in auth module ssh.allowedSignersFile = toString (pkgs.writeText "allowed_signers" (foldr (key: folded: - folded + "koishi@514fpv.one ${key}") "" + folded + "koishi@514fpv.one ${key}\n") "" config.passthrough.publicKeys)); }; }; From f60137de0280d45816adb676950d0f0073418c2c Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 1 Apr 2024 11:00:44 +0800 Subject: [PATCH 294/447] spec(web): add home redirects --- spec/web/nginx.nix | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/spec/web/nginx.nix b/spec/web/nginx.nix index ae1506bc..fa4cb3da 100644 --- a/spec/web/nginx.nix +++ b/spec/web/nginx.nix @@ -9,7 +9,13 @@ recommendedGzipSettings = true; recommendedProxySettings = true; - virtualHosts = { + virtualHosts = let + mkRedirect = host: { + locations."/".return = "307 https://${host}$request_uri"; + forceSSL = true; + enableACME = true; + }; + in { "_" = { rejectSSL = true; extraConfig = "return 444;"; @@ -34,6 +40,10 @@ forceSSL = true; enableACME = true; }; + + # redirections to home server + "src.514fpv.one" = mkRedirect "src.514fpv.io:2096"; + "cloud.514fpv.one" = mkRedirect "cloud.514fpv.io:2096"; }; }; From f7c76541d0ecd4ec067795b19f1761fdf5c30e59 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 4 Apr 2024 11:55:17 +0800 Subject: [PATCH 295/447] flake: bump inputs --- flake.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/flake.lock b/flake.lock index fd5f3a94..7a0b42bd 100644 --- a/flake.lock +++ b/flake.lock @@ -56,11 +56,11 @@ ] }, "locked": { - "lastModified": 1709336216, - "narHash": "sha256-Dt/wOWeW6Sqm11Yh+2+t0dfEWxoMxGBvv3JpIocFl9E=", + "lastModified": 1712014858, + "narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "f7b3c975cf067e56e7cda6cb098ebe3fb4d74ca2", + "rev": "9126214d0a59633752a136528f5f3b9aa8565b7d", "type": "github" }, "original": { @@ -155,11 +155,11 @@ ] }, "locked": { - "lastModified": 1711554349, - "narHash": "sha256-RypwcWEIFePBI0Hubfj4chanbM/G2yzJzC6wgz+dmS4=", + "lastModified": 1712093955, + "narHash": "sha256-94I0sXz6fiVBvUAk2tg6t3UpM5rOImj4JTSTNFbg64s=", "owner": "nix-community", "repo": "home-manager", - "rev": "179f6acaf7c068c7870542cdae72afec9427a5b0", + "rev": "80546b220e95a575c66c213af1b09fe255299438", "type": "github" }, "original": { @@ -213,11 +213,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1711333969, - "narHash": "sha256-5PiWGn10DQjMZee5NXzeA6ccsv60iLu+Xtw+mfvkUAs=", + "lastModified": 1712122226, + "narHash": "sha256-pmgwKs8Thu1WETMqCrWUm0CkN1nmCKX3b51+EXsAZyY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "57e6b3a9e4ebec5aa121188301f04a6b8c354c9b", + "rev": "08b9151ed40350725eb40b1fe96b0b86304a654b", "type": "github" }, "original": { From 6af960d53a876a25fad33be64229d56e2e9622ae Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 8 Apr 2024 11:24:37 +0800 Subject: [PATCH 296/447] home(auth): float Bitwarden windows --- home/auth/home.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/home/auth/home.nix b/home/auth/home.nix index ee07ceed..1e86f8e1 100644 --- a/home/auth/home.nix +++ b/home/auth/home.nix @@ -30,4 +30,8 @@ "sf.514fpv.io".port = 8087; }; }; + + wayland.windowManager.sway.config.window.commands = mkIf config.passthrough.gui [ + { criteria.title = "Bitwarden"; command = "floating enable"; } + ]; } From 81644015928922fb05f02495d7a35779324efa12 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 8 Apr 2024 11:25:24 +0800 Subject: [PATCH 297/447] spec(focus): add webauthn nextcloud app --- spec/focus/nextcloud.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spec/focus/nextcloud.nix b/spec/focus/nextcloud.nix index 91732de1..01067df3 100644 --- a/spec/focus/nextcloud.nix +++ b/spec/focus/nextcloud.nix @@ -8,7 +8,8 @@ in { extraApps = { inherit (pkgs.nextcloud28Packages.apps) notify_push impersonate spreed - contacts bookmarks deck polls notes forms; + contacts bookmarks deck polls notes forms + twofactor_webauthn; }; home = "/nix/persist/service/nextcloud"; configureRedis = true; From e5fd0a224308ab9c91ff989f19342fce6f8fedba Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 8 Apr 2024 11:26:41 +0800 Subject: [PATCH 298/447] spec(eientei): add webauthn nextcloud app --- spec/eientei/nextcloud.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spec/eientei/nextcloud.nix b/spec/eientei/nextcloud.nix index be80b390..d0a7b6a1 100644 --- a/spec/eientei/nextcloud.nix +++ b/spec/eientei/nextcloud.nix @@ -8,7 +8,8 @@ in { extraApps = { inherit (pkgs.nextcloud28Packages.apps) notify_push impersonate spreed - contacts bookmarks deck polls notes forms; + contacts bookmarks deck polls notes forms + twofactor_webauthn; }; home = "/nix/persist/service/nextcloud"; configureRedis = true; From 57e51474037103081b52ad041b6e91b555856ac1 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 8 Apr 2024 22:25:06 +0800 Subject: [PATCH 299/447] flake: bump inputs --- flake.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/flake.lock b/flake.lock index 7a0b42bd..de6446de 100644 --- a/flake.lock +++ b/flake.lock @@ -155,11 +155,11 @@ ] }, "locked": { - "lastModified": 1712093955, - "narHash": "sha256-94I0sXz6fiVBvUAk2tg6t3UpM5rOImj4JTSTNFbg64s=", + "lastModified": 1712462372, + "narHash": "sha256-WA3bbBWhd3o1wAgyHZNypjb/LG4oq+IWxFq8ey8yNPU=", "owner": "nix-community", "repo": "home-manager", - "rev": "80546b220e95a575c66c213af1b09fe255299438", + "rev": "a561ad6ab38578c812cc9af3b04f2cc60ebf48c9", "type": "github" }, "original": { @@ -213,11 +213,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1712122226, - "narHash": "sha256-pmgwKs8Thu1WETMqCrWUm0CkN1nmCKX3b51+EXsAZyY=", + "lastModified": 1712439257, + "narHash": "sha256-aSpiNepFOMk9932HOax0XwNxbA38GOUVOiXfUVPOrck=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "08b9151ed40350725eb40b1fe96b0b86304a654b", + "rev": "ff0dbd94265ac470dda06a657d5fe49de93b4599", "type": "github" }, "original": { From 5f29d6eb229fa95f76566d50521c9630be820202 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 9 Apr 2024 12:17:05 +0800 Subject: [PATCH 300/447] spec(eientei): disable vaultwarden registration --- spec/eientei/vaultwarden.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/eientei/vaultwarden.nix b/spec/eientei/vaultwarden.nix index 8e6d6d30..8e3df95f 100644 --- a/spec/eientei/vaultwarden.nix +++ b/spec/eientei/vaultwarden.nix @@ -4,7 +4,7 @@ environmentFile = "/nix/persist/service/vaultwarden/secret.env"; config = { domain = "https://vault.514fpv.io:2096"; - signupsAllowed = true; + signupsAllowed = false; rocketAddress = "127.0.0.1"; rocketPort = 8222; rocketLog = "critical"; From 3e3b992f369b2ed800d27db57db6e0b4ac744f6d Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 11 Apr 2024 14:26:48 +0800 Subject: [PATCH 301/447] spec(chireiden): move trackpad workaround to powerManagement --- spec/chireiden/default.nix | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/spec/chireiden/default.nix b/spec/chireiden/default.nix index a1ea35b6..bfc15ee2 100644 --- a/spec/chireiden/default.nix +++ b/spec/chireiden/default.nix @@ -26,24 +26,17 @@ powerManagement.enable = true; powerManagement.cpuFreqGovernor = "powersave"; + powerManagement.resumeCommands = '' + # trackpad driver resume workaround + ${pkgs.kmod}/bin/modprobe -r psmouse + ${pkgs.kmod}/bin/modprobe psmouse + ''; hardware.nvidia.prime = { intelBusId = "PCI:0:2:0"; nvidiaBusId = "PCI:5:0:0"; }; - # trackpad driver resume workaround - systemd.services.trackpad-workaround = { - description = "Reload trackpad driver"; - after = [ "suspend.target" ]; - wantedBy = [ "suspend.target" ]; - path = with pkgs; [ kmod ]; - script = '' - modprobe -r psmouse - modprobe psmouse - ''; - }; - hardware.enableRedistributableFirmware = true; boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" ]; boot.initrd.kernelModules = [ ]; From 5b3028c680142a36866faa1a83e6b72a3a195974 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 11 Apr 2024 14:44:32 +0800 Subject: [PATCH 302/447] global(io): add compat to hosts --- global/io/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/global/io/default.nix b/global/io/default.nix index 1b9b6ef8..25c4f647 100644 --- a/global/io/default.nix +++ b/global/io/default.nix @@ -23,6 +23,7 @@ in { networking.hosts = { "10.5.14.0" = [ "codec" ]; "10.5.14.1" = [ "redir" ]; + "10.5.14.2" = [ "compat" ]; "192.168.123.1" = [ "netvm" ]; }; From 0e71ccfa381b5c95026c130b2a389b943b1ed283 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Thu, 11 Apr 2024 15:15:55 +0800 Subject: [PATCH 303/447] spec(focus): update proxy address --- spec/focus/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/focus/default.nix b/spec/focus/default.nix index 2b83d710..46b14034 100644 --- a/spec/focus/default.nix +++ b/spec/focus/default.nix @@ -29,7 +29,7 @@ ''; networking.proxy = { - allProxy = "http://10.0.0.2:3128"; + allProxy = "http://compat:3128"; noProxy = "10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,127.0.0.1,localhost,.localdomain"; }; From 857cccd809e593ec33c2de64b9ca50602b2b7980 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 15 Apr 2024 10:33:03 +0800 Subject: [PATCH 304/447] flake: bump inputs --- flake.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/flake.lock b/flake.lock index de6446de..02b7d196 100644 --- a/flake.lock +++ b/flake.lock @@ -155,11 +155,11 @@ ] }, "locked": { - "lastModified": 1712462372, - "narHash": "sha256-WA3bbBWhd3o1wAgyHZNypjb/LG4oq+IWxFq8ey8yNPU=", + "lastModified": 1713131281, + "narHash": "sha256-/Jm1X9MPfLXAxZSCdWmQAFNUQggEfNWHol5jSyyzFzw=", "owner": "nix-community", "repo": "home-manager", - "rev": "a561ad6ab38578c812cc9af3b04f2cc60ebf48c9", + "rev": "9f32c66a51d05e6d4ec0dea555bbff9135749ec7", "type": "github" }, "original": { @@ -213,11 +213,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1712439257, - "narHash": "sha256-aSpiNepFOMk9932HOax0XwNxbA38GOUVOiXfUVPOrck=", + "lastModified": 1712963716, + "narHash": "sha256-WKm9CvgCldeIVvRz87iOMi8CFVB1apJlkUT4GGvA0iM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ff0dbd94265ac470dda06a657d5fe49de93b4599", + "rev": "cfd6b5fc90b15709b780a5a1619695a88505a176", "type": "github" }, "original": { From d1d687abc25e37690c77a2c34d88af3557a2728c Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 19 Apr 2024 08:15:03 +0800 Subject: [PATCH 305/447] flake: bump inputs --- flake.lock | 12 ++++++------ home/gui/home.nix | 2 +- home/sway/nixos.nix | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/flake.lock b/flake.lock index 02b7d196..19a977d2 100644 --- a/flake.lock +++ b/flake.lock @@ -155,11 +155,11 @@ ] }, "locked": { - "lastModified": 1713131281, - "narHash": "sha256-/Jm1X9MPfLXAxZSCdWmQAFNUQggEfNWHol5jSyyzFzw=", + "lastModified": 1713479280, + "narHash": "sha256-e8+ZgayVccw6h8ay15jM9hXh+sjZDc1XdBGLn3pdYdc=", "owner": "nix-community", "repo": "home-manager", - "rev": "9f32c66a51d05e6d4ec0dea555bbff9135749ec7", + "rev": "ff1c3646541316258b1ca64e9b25d4c9cca8e587", "type": "github" }, "original": { @@ -213,11 +213,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1712963716, - "narHash": "sha256-WKm9CvgCldeIVvRz87iOMi8CFVB1apJlkUT4GGvA0iM=", + "lastModified": 1713297878, + "narHash": "sha256-hOkzkhLT59wR8VaMbh1ESjtZLbGi+XNaBN6h49SPqEc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "cfd6b5fc90b15709b780a5a1619695a88505a176", + "rev": "66adc1e47f8784803f2deb6cacd5e07264ec2d5c", "type": "github" }, "original": { diff --git a/home/gui/home.nix b/home/gui/home.nix index 5168a78c..10c81c94 100644 --- a/home/gui/home.nix +++ b/home/gui/home.nix @@ -25,7 +25,7 @@ }; # unify qt theme - qt.platformTheme = mkDefault "gtk"; + qt.platformTheme.name = mkDefault "gtk"; gtk.enable = mkDefault true; qt.enable = mkDefault true; diff --git a/home/sway/nixos.nix b/home/sway/nixos.nix index feeb32cd..44b3e32c 100644 --- a/home/sway/nixos.nix +++ b/home/sway/nixos.nix @@ -5,7 +5,7 @@ gui = with config.global.gpu; enable && session; nvidia = with config.global.gpu; type == "nvidia" || type == "prime"; in mkIf gui { - services.xserver.displayManager.sessionPackages = [ + services.displayManager.sessionPackages = [ (pkgs.writeTextFile { name = "sway-session"; destination = "/share/wayland-sessions/sway.desktop"; From caac44a27a6ffc3a034d312b47228d198ab5dfd2 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 19 Apr 2024 09:24:37 +0800 Subject: [PATCH 306/447] home(foot): enable terminal transparency --- home/foot/home.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/home/foot/home.nix b/home/foot/home.nix index 87c6f7fa..80325207 100644 --- a/home/foot/home.nix +++ b/home/foot/home.nix @@ -6,5 +6,6 @@ enable = true; settings.main.term = "xterm-256color"; settings.main.font = "DejaVu Sans Mono:size=11"; + settings.colors.alpha = 0.8; }; } From e67b6296b61bb83c8162c85200828e86cd6242ed Mon Sep 17 00:00:00 2001 From: 514fpv Date: Fri, 19 Apr 2024 09:27:33 +0800 Subject: [PATCH 307/447] spec(reimaden): disable headless due to scaling bugs --- spec/reimaden/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/reimaden/default.nix b/spec/reimaden/default.nix index af2ca9ba..e99cb890 100644 --- a/spec/reimaden/default.nix +++ b/spec/reimaden/default.nix @@ -11,7 +11,7 @@ }; home = { - headless.enable = "eDP-1"; + #headless.enable = "eDP-1"; gyroflow.enable = true; vscode.enable = true; libreoffice.enable = true; From 56e4a7eaa2e357e5b1cd2e0f986ea59aada842e2 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 22 Apr 2024 12:54:50 +0800 Subject: [PATCH 308/447] flake: bump inputs --- flake.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/flake.lock b/flake.lock index 19a977d2..89ed6dbd 100644 --- a/flake.lock +++ b/flake.lock @@ -155,11 +155,11 @@ ] }, "locked": { - "lastModified": 1713479280, - "narHash": "sha256-e8+ZgayVccw6h8ay15jM9hXh+sjZDc1XdBGLn3pdYdc=", + "lastModified": 1713732794, + "narHash": "sha256-AYCofb8Zu4Mbc1lHDtju/uxeARawRijmOueAqEMEfMU=", "owner": "nix-community", "repo": "home-manager", - "rev": "ff1c3646541316258b1ca64e9b25d4c9cca8e587", + "rev": "670d9ecc3e46a6e3265c203c2d136031a3d3548e", "type": "github" }, "original": { @@ -213,11 +213,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1713297878, - "narHash": "sha256-hOkzkhLT59wR8VaMbh1ESjtZLbGi+XNaBN6h49SPqEc=", + "lastModified": 1713537308, + "narHash": "sha256-XtTSSIB2DA6tOv+l0FhvfDMiyCmhoRbNB+0SeInZkbk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "66adc1e47f8784803f2deb6cacd5e07264ec2d5c", + "rev": "5c24cf2f0a12ad855f444c30b2421d044120c66f", "type": "github" }, "original": { From d8eb1522a6f6717a620219e31521778ff5021b8a Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 22 Apr 2024 15:59:18 +0800 Subject: [PATCH 309/447] home(util): add jellyfin-media-player --- home/util/home.nix | 1 + home/util/nixos.nix | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/home/util/home.nix b/home/util/home.nix index 45d5823e..19d6eb0d 100644 --- a/home/util/home.nix +++ b/home/util/home.nix @@ -16,6 +16,7 @@ in { gnome-themes-extra xfce.thunar gimp + jellyfin-media-player mission-planner betaflight-configurator inav-configurator diff --git a/home/util/nixos.nix b/home/util/nixos.nix index 9ff31114..4e55af9a 100644 --- a/home/util/nixos.nix +++ b/home/util/nixos.nix @@ -23,9 +23,17 @@ in { ".cache/nix-index" ] ++ optionals gui [ + # jellyfin-media-player + ".config/jellyfin.org" + ".local/share/jellyfinmediaplayer" + ".local/share/Jellyfin Media Player" + # mission-planner ".local/share/Mission Planner" + # expresslrs-configurator ".config/ExpressLRS Configurator" + # betaflight-configurator ".config/betaflight-configurator" + # inav-configurator ".config/inav-configurator" ]; }; From 24c1aa86b55ab13228f475baf5f1022b25ed0110 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 28 Apr 2024 09:36:26 +0800 Subject: [PATCH 310/447] flake: bump inputs --- flake.lock | 12 ++++++------ package/blhelisuite32/default.nix | 2 +- package/expresslrs-configurator/default.nix | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/flake.lock b/flake.lock index 89ed6dbd..e094042a 100644 --- a/flake.lock +++ b/flake.lock @@ -155,11 +155,11 @@ ] }, "locked": { - "lastModified": 1713732794, - "narHash": "sha256-AYCofb8Zu4Mbc1lHDtju/uxeARawRijmOueAqEMEfMU=", + "lastModified": 1714203603, + "narHash": "sha256-eT7DENhYy7EPLOqHI9zkIMD9RvMCXcqh6gGqOK5BWYQ=", "owner": "nix-community", "repo": "home-manager", - "rev": "670d9ecc3e46a6e3265c203c2d136031a3d3548e", + "rev": "c1609d584a6b5e9e6a02010f51bd368cb4782f8e", "type": "github" }, "original": { @@ -213,11 +213,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1713537308, - "narHash": "sha256-XtTSSIB2DA6tOv+l0FhvfDMiyCmhoRbNB+0SeInZkbk=", + "lastModified": 1714076141, + "narHash": "sha256-Drmja/f5MRHZCskS6mvzFqxEaZMeciScCTFxWVLqWEY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5c24cf2f0a12ad855f444c30b2421d044120c66f", + "rev": "7bb2ccd8cdc44c91edba16c48d2c8f331fb3d856", "type": "github" }, "original": { diff --git a/package/blhelisuite32/default.nix b/package/blhelisuite32/default.nix index d07b318b..65f3b509 100644 --- a/package/blhelisuite32/default.nix +++ b/package/blhelisuite32/default.nix @@ -65,7 +65,7 @@ ''; }; in buildFHSUserEnv { - inherit pname; + inherit pname version; targetPkgs = pkgs: (with pkgs; [ glib libGL curl libgcc gtk3 diff --git a/package/expresslrs-configurator/default.nix b/package/expresslrs-configurator/default.nix index 12cebf46..e68f639a 100644 --- a/package/expresslrs-configurator/default.nix +++ b/package/expresslrs-configurator/default.nix @@ -23,7 +23,7 @@ genericName = "radio link configuration & build tool"; }; in buildFHSUserEnv { - inherit pname; + inherit pname version; # copied from chromium deps targetPkgs = pkgs: (with pkgs; [ glib fontconfig freetype pango cairo xorg.libX11 xorg.libXi atk nss nspr From 84bc8621082033fdb74817bbb3b517de21f313ea Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 28 Apr 2024 10:58:54 +0800 Subject: [PATCH 311/447] home(jetbrains): add jetbrains products and directories --- home/jetbrains/home.nix | 11 +++++++++++ home/jetbrains/nixos.nix | 26 ++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 home/jetbrains/home.nix create mode 100644 home/jetbrains/nixos.nix diff --git a/home/jetbrains/home.nix b/home/jetbrains/home.nix new file mode 100644 index 00000000..90f931d2 --- /dev/null +++ b/home/jetbrains/home.nix @@ -0,0 +1,11 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.passthrough.jetbrains; +in mkIf cfg.enable { + home.packages = with pkgs.jetbrains; [ ] ++ + optional cfg.idea idea-community ++ + optional cfg.clion clion ++ + optional cfg.goland goland; +} diff --git a/home/jetbrains/nixos.nix b/home/jetbrains/nixos.nix new file mode 100644 index 00000000..e0a69550 --- /dev/null +++ b/home/jetbrains/nixos.nix @@ -0,0 +1,26 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.home.jetbrains; +in { + options.home.jetbrains = { + enable = mkEnableOption "jetbrains text editor"; + idea = mkEnableOption "intellij idea"; + clion = mkEnableOption "clion ide"; + goland = mkEnableOption "goland ide" // { default = true; }; + }; + + config = { + users.homeModules = [ + # this module passes jetbrains configuration to home-manager + { passthrough.jetbrains = cfg; } + ]; + + users.home.persist.directories = mkIf cfg.enable [ + ".java/.userPrefs" + ".config/JetBrains" + ".local/share/JetBrains" + ]; + }; +} From baec4a2b3937dc72059aff9e50f1177f11e673aa Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 28 Apr 2024 11:00:10 +0800 Subject: [PATCH 312/447] spec(reimaden): enable jetbrains defaults --- spec/reimaden/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/reimaden/default.nix b/spec/reimaden/default.nix index e99cb890..d5d80bda 100644 --- a/spec/reimaden/default.nix +++ b/spec/reimaden/default.nix @@ -13,6 +13,7 @@ home = { #headless.enable = "eDP-1"; gyroflow.enable = true; + jetbrains.enable = true; vscode.enable = true; libreoffice.enable = true; minecraft.enable = true; From f4e43231ce66ae877c3ad933d6248b167d2fe3e7 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 29 Apr 2024 22:36:32 +0800 Subject: [PATCH 313/447] spec(koumakyou): init --- flake.lock | 60 ++++++++++++++++++++++++++++++++- flake.nix | 3 ++ global/auth/pub/koumakyou.pub | 1 + spec/koumakyou/default.nix | 63 ++++++++++++++++++----------------- spec/koumakyou/jovian.nix | 28 ++++++++++++++++ 5 files changed, 124 insertions(+), 31 deletions(-) create mode 100644 global/auth/pub/koumakyou.pub create mode 100644 spec/koumakyou/jovian.nix diff --git a/flake.lock b/flake.lock index e094042a..18ece039 100644 --- a/flake.lock +++ b/flake.lock @@ -184,6 +184,25 @@ "type": "github" } }, + "jovian": { + "inputs": { + "nix-github-actions": "nix-github-actions", + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1714235105, + "narHash": "sha256-QCEp+JZOQzFWsNSs3KMCAMf4Ik+YglNdrQJXq10yYaw=", + "owner": "Jovian-Experiments", + "repo": "Jovian-NixOS", + "rev": "03448a4e169d4590d21138f0ac65ab64bd1a2d85", + "type": "github" + }, + "original": { + "owner": "Jovian-Experiments", + "repo": "Jovian-NixOS", + "type": "github" + } + }, "lanzaboote": { "inputs": { "crane": "crane", @@ -211,6 +230,28 @@ "type": "github" } }, + "nix-github-actions": { + "inputs": { + "nixpkgs": [ + "jovian", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1690328911, + "narHash": "sha256-fxtExYk+aGf2YbjeWQ8JY9/n9dwuEt+ma1eUFzF8Jeo=", + "owner": "zhaofengli", + "repo": "nix-github-actions", + "rev": "96df4a39c52f53cb7098b923224d8ce941b64747", + "type": "github" + }, + "original": { + "owner": "zhaofengli", + "ref": "matrix-name", + "repo": "nix-github-actions", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1714076141, @@ -243,6 +284,22 @@ "type": "github" } }, + "nixpkgs_2": { + "locked": { + "lastModified": 1714076141, + "narHash": "sha256-Drmja/f5MRHZCskS6mvzFqxEaZMeciScCTFxWVLqWEY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "7bb2ccd8cdc44c91edba16c48d2c8f331fb3d856", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "pre-commit-hooks-nix": { "inputs": { "flake-compat": [ @@ -280,8 +337,9 @@ "flake-utils": "flake-utils", "home-manager": "home-manager", "impermanence": "impermanence", + "jovian": "jovian", "lanzaboote": "lanzaboote", - "nixpkgs": "nixpkgs" + "nixpkgs": "nixpkgs_2" } }, "rust-overlay": { diff --git a/flake.nix b/flake.nix index 14cf472b..565ff4ae 100644 --- a/flake.nix +++ b/flake.nix @@ -11,6 +11,9 @@ home-manager.inputs.nixpkgs.follows = "nixpkgs"; lanzaboote.url = "github:nix-community/lanzaboote/v0.3.0"; lanzaboote.inputs.nixpkgs.follows = "nixpkgs"; + + # steamdeck + jovian.url = "github:Jovian-Experiments/Jovian-NixOS"; }; outputs = inputs: diff --git a/global/auth/pub/koumakyou.pub b/global/auth/pub/koumakyou.pub new file mode 100644 index 00000000..305fe6a9 --- /dev/null +++ b/global/auth/pub/koumakyou.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINJOoXrfB4D8Vi6HH4E7RqHHIWhPPqEiiOeLRfggW1XZ koishi@koumakyou diff --git a/spec/koumakyou/default.nix b/spec/koumakyou/default.nix index c6a8f17c..bda72da0 100644 --- a/spec/koumakyou/default.nix +++ b/spec/koumakyou/default.nix @@ -1,51 +1,54 @@ -{ pkgs -, lib -, ... }: { +{ pkgs, lib, config, ... }: { global = { - id = "eeb44fb1150944aab7d146b7caad789f"; - auth.openssh.enable = true; - fs.esp.uuid = "B20E-5994"; + id = "0a920a834b5f480bab258040096d4c6e"; + fs.esp.uuid = "ACB3-4AFF"; fs.type = "xfs"; - fs.store = "e8eea851-51b0-4c29-80c4-3d9358c4f3f8"; - fs.external.enable = true; - fs.external.device = "/dev/disk/by-uuid/f0e13b58-1223-479c-b673-3a8e629c7f72"; - fs.external.fsType = "ext4"; + fs.store = "6b885fa6-5c13-4a46-94da-a287232606b9"; fs.cryptsetup.enable = true; - fs.cryptsetup.uuids.nix = "84baa53a-c76d-4716-813a-196f5a53e44d"; - fs.cryptsetup.uuids.persist = "e31f8b1c-6504-4b43-93dd-997ad17ebf5e"; + fs.cryptsetup.uuids.persist = "b4a5a66d-b491-4ac7-bc71-1ea8b1a503be"; boot.lanzaboote = true; gpu.enable = true; - gpu.type = "prime"; - asusd.enable = true; - oci.enable = true; + gpu.type = "amdgpu"; }; home = { - gnome.enable = true; - gyroflow.enable = true; + vscode.enable = true; minecraft.enable = true; - minecraft.allUsers = true; - steam.enable = true; - steam.allUsers = true; }; + users.homeModules = [ { + wayland.windowManager.sway.config = { + input."1046:911:Goodix_Capacitive_TouchScreen".map_to_output = "eDP-1"; + output = { + eDP-1.scale = "1.75"; + }; + }; + } ]; + powerManagement.enable = true; powerManagement.cpuFreqGovernor = "performance"; + powerManagement.resumeCommands = '' + # trackpad driver resume workaround + ${pkgs.kmod}/bin/modprobe -r bmi260_i2c + ${pkgs.kmod}/bin/modprobe -r bmi260_core + ${pkgs.kmod}/bin/modprobe bmi260_i2c + ${pkgs.kmod}/bin/modprobe bmi260_core + ''; - hardware.nvidia.prime = { - amdgpuBusId = "PCI:6:0:0"; - nvidiaBusId = "PCI:1:0:0"; - }; - imports = lib.pipe ./. [ - builtins.readDir - (lib.filterAttrs (n: ty: ty == "regular" && n != "default.nix")) - (lib.mapAttrsToList (n: _: ./${n})) - ]; + services.greetd.settings.default_session.command = let + cfg = config.programs.regreet; + in "${pkgs.dbus}/bin/dbus-run-session ${lib.getExe pkgs.cage} ${lib.escapeShellArgs cfg.cageArgs} -- ${pkgs.writeShellScript "cageResolution" '' + ${lib.getExe pkgs.wlr-randr} --output eDP-1 --scale 2 + ${lib.getExe cfg.package} + ''}"; hardware.enableRedistributableFirmware = true; - boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "ahci" "sd_mod" ]; + boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "usbhid" "usb_storage" "sd_mod" ]; boot.initrd.kernelModules = [ ]; boot.kernelModules = [ "kvm-amd" ]; boot.extraModulePackages = [ ]; + hardware.cpu.intel.updateMicrocode = true; + + imports = [ ./jovian.nix ]; } diff --git a/spec/koumakyou/jovian.nix b/spec/koumakyou/jovian.nix new file mode 100644 index 00000000..69ee35f3 --- /dev/null +++ b/spec/koumakyou/jovian.nix @@ -0,0 +1,28 @@ +{ jovian, ... }: { + jovian = { + hardware.has.amd.gpu = true; + steamos.useSteamOSConfig = true; + + steam = { + enable = true; + user = "app"; + #desktopSession + }; + + decky-loader = { + enable = true; + stateDir = "/nix/persist/decky"; + }; + }; + + users.home.persistApp.directories = [ + ".steam" ".local/share/Steam" ".config/gamescope" + ]; + + users.users.decky.uid = 514; + users.groups.decky.gid = 514; + + imports = [ + jovian.nixosModules.jovian + ]; +} From 0f7dc7fbd7100e1b01e9d4dd9ebe167c239bab8b Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 30 Apr 2024 19:50:42 +0800 Subject: [PATCH 314/447] flake: bump inputs --- flake.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/flake.lock b/flake.lock index 18ece039..055fe22b 100644 --- a/flake.lock +++ b/flake.lock @@ -155,11 +155,11 @@ ] }, "locked": { - "lastModified": 1714203603, - "narHash": "sha256-eT7DENhYy7EPLOqHI9zkIMD9RvMCXcqh6gGqOK5BWYQ=", + "lastModified": 1714430505, + "narHash": "sha256-SSJQ/KOy8uISnoZgqDoRha7g7PFLSFP/BtMWm0wUz8Q=", "owner": "nix-community", "repo": "home-manager", - "rev": "c1609d584a6b5e9e6a02010f51bd368cb4782f8e", + "rev": "f8e6694edabe4aaa7a85aac47b43ea5d978b116d", "type": "github" }, "original": { @@ -190,11 +190,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1714235105, - "narHash": "sha256-QCEp+JZOQzFWsNSs3KMCAMf4Ik+YglNdrQJXq10yYaw=", + "lastModified": 1714464433, + "narHash": "sha256-ztvukQ2LvrRQBtiRiut8FgCOyKXgqLTIp3Deg/OguUY=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "03448a4e169d4590d21138f0ac65ab64bd1a2d85", + "rev": "2a5194b960801b68cfc4c811eb1733cf3aa8ece6", "type": "github" }, "original": { @@ -286,11 +286,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1714076141, - "narHash": "sha256-Drmja/f5MRHZCskS6mvzFqxEaZMeciScCTFxWVLqWEY=", + "lastModified": 1714253743, + "narHash": "sha256-mdTQw2XlariysyScCv2tTE45QSU9v/ezLcHJ22f0Nxc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "7bb2ccd8cdc44c91edba16c48d2c8f331fb3d856", + "rev": "58a1abdbae3217ca6b702f03d3b35125d88a2994", "type": "github" }, "original": { From c097e3a3871ca44c9485a8a752d62cb3596a3e63 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 1 May 2024 01:48:58 +0800 Subject: [PATCH 315/447] spec(koumakyou): remove steamos cmdline --- spec/koumakyou/jovian.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/koumakyou/jovian.nix b/spec/koumakyou/jovian.nix index 69ee35f3..004a33b4 100644 --- a/spec/koumakyou/jovian.nix +++ b/spec/koumakyou/jovian.nix @@ -2,11 +2,11 @@ jovian = { hardware.has.amd.gpu = true; steamos.useSteamOSConfig = true; + steamos.enableDefaultCmdlineConfig = false; steam = { enable = true; user = "app"; - #desktopSession }; decky-loader = { From 48adffb07b2e86cc18681bbd072e4b7f667310fd Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 5 May 2024 20:52:07 +0800 Subject: [PATCH 316/447] spec(yume): enable jetbrains defaults --- spec/yume/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/spec/yume/default.nix b/spec/yume/default.nix index 6e5d0d1f..82cb255b 100644 --- a/spec/yume/default.nix +++ b/spec/yume/default.nix @@ -14,6 +14,8 @@ home = { gyroflow.enable = true; + jetbrains.enable = true; + vscode.enable = true; libreoffice.enable = true; minecraft.enable = true; steam.enable = true; From 617f8db26bb975135afbede3a5dd96d303422afe Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sun, 5 May 2024 23:13:53 +0800 Subject: [PATCH 317/447] flake: bump inputs --- flake.lock | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/flake.lock b/flake.lock index 055fe22b..49dcf123 100644 --- a/flake.lock +++ b/flake.lock @@ -56,11 +56,11 @@ ] }, "locked": { - "lastModified": 1712014858, - "narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=", + "lastModified": 1714641030, + "narHash": "sha256-yzcRNDoyVP7+SCNX0wmuDju1NUCt8Dz9+lyUXEI0dbI=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "9126214d0a59633752a136528f5f3b9aa8565b7d", + "rev": "e5d10a24b66c3ea8f150e47dfdb0416ab7c3390e", "type": "github" }, "original": { @@ -155,11 +155,11 @@ ] }, "locked": { - "lastModified": 1714430505, - "narHash": "sha256-SSJQ/KOy8uISnoZgqDoRha7g7PFLSFP/BtMWm0wUz8Q=", + "lastModified": 1714900398, + "narHash": "sha256-H7XYHpjk1G6dkA3AnbYrKtaTFjcCE7ul6nUVlVQxtsA=", "owner": "nix-community", "repo": "home-manager", - "rev": "f8e6694edabe4aaa7a85aac47b43ea5d978b116d", + "rev": "fdaaf543bad047639ef0b356ea2e6caec2f1215c", "type": "github" }, "original": { @@ -190,11 +190,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1714464433, - "narHash": "sha256-ztvukQ2LvrRQBtiRiut8FgCOyKXgqLTIp3Deg/OguUY=", + "lastModified": 1714803703, + "narHash": "sha256-4m9wG6mZR0I2d7itErhpY0JqSHomNnUdoKfkjnYp+wI=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "2a5194b960801b68cfc4c811eb1733cf3aa8ece6", + "rev": "d0799ebebfb37fd2df6409dc8da622738c5930bb", "type": "github" }, "original": { @@ -286,11 +286,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1714253743, - "narHash": "sha256-mdTQw2XlariysyScCv2tTE45QSU9v/ezLcHJ22f0Nxc=", + "lastModified": 1714763106, + "narHash": "sha256-DrDHo74uTycfpAF+/qxZAMlP/Cpe04BVioJb6fdI0YY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "58a1abdbae3217ca6b702f03d3b35125d88a2994", + "rev": "e9be42459999a253a9f92559b1f5b72e1b44c13d", "type": "github" }, "original": { From a94f46466132b31740abb14e73deac97c57a88c0 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Wed, 8 May 2024 15:22:12 +0800 Subject: [PATCH 318/447] spec(koumakyou): disable decky --- spec/koumakyou/default.nix | 1 - spec/koumakyou/jovian.nix | 15 +++++++-------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/spec/koumakyou/default.nix b/spec/koumakyou/default.nix index bda72da0..6346244b 100644 --- a/spec/koumakyou/default.nix +++ b/spec/koumakyou/default.nix @@ -35,7 +35,6 @@ ${pkgs.kmod}/bin/modprobe bmi260_core ''; - services.greetd.settings.default_session.command = let cfg = config.programs.regreet; in "${pkgs.dbus}/bin/dbus-run-session ${lib.getExe pkgs.cage} ${lib.escapeShellArgs cfg.cageArgs} -- ${pkgs.writeShellScript "cageResolution" '' diff --git a/spec/koumakyou/jovian.nix b/spec/koumakyou/jovian.nix index 004a33b4..27e911f6 100644 --- a/spec/koumakyou/jovian.nix +++ b/spec/koumakyou/jovian.nix @@ -8,21 +8,20 @@ enable = true; user = "app"; }; - - decky-loader = { - enable = true; - stateDir = "/nix/persist/decky"; - }; }; users.home.persistApp.directories = [ ".steam" ".local/share/Steam" ".config/gamescope" ]; - users.users.decky.uid = 514; - users.groups.decky.gid = 514; - imports = [ jovian.nixosModules.jovian ]; +} // { + #users.users.decky.uid = 514; + #users.groups.decky.gid = 514; + #jovian.decky-loader = { + # enable = true; + # stateDir = "/nix/persist/decky"; + #}; } From 9f8c6f3bd806cb5528d3b7ba436d4639d404ea26 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 11 May 2024 00:03:05 +0800 Subject: [PATCH 319/447] spec(koumakyou): boot to gamescope --- spec/koumakyou/default.nix | 16 ++++++++++------ spec/koumakyou/jovian.nix | 10 +++++++--- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/spec/koumakyou/default.nix b/spec/koumakyou/default.nix index 6346244b..f9177341 100644 --- a/spec/koumakyou/default.nix +++ b/spec/koumakyou/default.nix @@ -35,12 +35,16 @@ ${pkgs.kmod}/bin/modprobe bmi260_core ''; - services.greetd.settings.default_session.command = let - cfg = config.programs.regreet; - in "${pkgs.dbus}/bin/dbus-run-session ${lib.getExe pkgs.cage} ${lib.escapeShellArgs cfg.cageArgs} -- ${pkgs.writeShellScript "cageResolution" '' - ${lib.getExe pkgs.wlr-randr} --output eDP-1 --scale 2 - ${lib.getExe cfg.package} - ''}"; + specialisation.desktop.configuration = { + programs.regreet.enable = lib.mkForce true; + jovian.steam.autoStart = lib.mkForce false; + services.greetd.settings.default_session.command = let + cfg = config.programs.regreet; + in "${pkgs.dbus}/bin/dbus-run-session ${lib.getExe pkgs.cage} ${lib.escapeShellArgs cfg.cageArgs} -- ${pkgs.writeShellScript "cageResolution" '' + ${lib.getExe pkgs.wlr-randr} --output eDP-1 --scale 2 + ${lib.getExe cfg.package} + ''}"; + }; hardware.enableRedistributableFirmware = true; boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "usbhid" "usb_storage" "sd_mod" ]; diff --git a/spec/koumakyou/jovian.nix b/spec/koumakyou/jovian.nix index 27e911f6..1906e734 100644 --- a/spec/koumakyou/jovian.nix +++ b/spec/koumakyou/jovian.nix @@ -1,4 +1,8 @@ { jovian, ... }: { + imports = [ + jovian.nixosModules.jovian + ]; + jovian = { hardware.has.amd.gpu = true; steamos.useSteamOSConfig = true; @@ -6,6 +10,8 @@ steam = { enable = true; + autoStart = true; + desktopSession = "sway"; user = "app"; }; }; @@ -14,9 +20,7 @@ ".steam" ".local/share/Steam" ".config/gamescope" ]; - imports = [ - jovian.nixosModules.jovian - ]; + programs.regreet.enable = false; } // { #users.users.decky.uid = 514; #users.groups.decky.gid = 514; From fbaa388392144fdba664ec5e760c720bde1e290c Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 11 May 2024 10:30:20 +0800 Subject: [PATCH 320/447] home(foot): disable terminal transparency --- home/foot/home.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home/foot/home.nix b/home/foot/home.nix index 80325207..af10a83a 100644 --- a/home/foot/home.nix +++ b/home/foot/home.nix @@ -6,6 +6,6 @@ enable = true; settings.main.term = "xterm-256color"; settings.main.font = "DejaVu Sans Mono:size=11"; - settings.colors.alpha = 0.8; + #settings.colors.alpha = 0.8; }; } From 1c016469f26b22e3154b3beac4a53b83e969377c Mon Sep 17 00:00:00 2001 From: 514fpv Date: Sat, 11 May 2024 10:30:26 +0800 Subject: [PATCH 321/447] flake: bump inputs --- flake.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/flake.lock b/flake.lock index 49dcf123..b935cb00 100644 --- a/flake.lock +++ b/flake.lock @@ -155,11 +155,11 @@ ] }, "locked": { - "lastModified": 1714900398, - "narHash": "sha256-H7XYHpjk1G6dkA3AnbYrKtaTFjcCE7ul6nUVlVQxtsA=", + "lastModified": 1715380449, + "narHash": "sha256-716+f9Rj3wjSyD1xitCv2FcYbgPz1WIVDj+ZBclH99Y=", "owner": "nix-community", "repo": "home-manager", - "rev": "fdaaf543bad047639ef0b356ea2e6caec2f1215c", + "rev": "d7682620185f213df384c363288093b486b2883f", "type": "github" }, "original": { @@ -190,11 +190,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1714803703, - "narHash": "sha256-4m9wG6mZR0I2d7itErhpY0JqSHomNnUdoKfkjnYp+wI=", + "lastModified": 1715329503, + "narHash": "sha256-0JbGas4wnC4KEVclsC7QGUMhLAujCpPRwqMcLQekLuM=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "d0799ebebfb37fd2df6409dc8da622738c5930bb", + "rev": "653ade87d2918df1fff927ed6666e72d26ffcdff", "type": "github" }, "original": { @@ -286,11 +286,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1714763106, - "narHash": "sha256-DrDHo74uTycfpAF+/qxZAMlP/Cpe04BVioJb6fdI0YY=", + "lastModified": 1715266358, + "narHash": "sha256-doPgfj+7FFe9rfzWo1siAV2mVCasW+Bh8I1cToAXEE4=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e9be42459999a253a9f92559b1f5b72e1b44c13d", + "rev": "f1010e0469db743d14519a1efd37e23f8513d714", "type": "github" }, "original": { From 5cbc847d77f69be152a5f01b32b68ae981ed828b Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 13 May 2024 08:38:38 +0800 Subject: [PATCH 322/447] home(gui): cleaner defaults --- home/gui/home.nix | 18 +++++++++--------- home/vscode/home.nix | 5 +++-- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/home/gui/home.nix b/home/gui/home.nix index 10c81c94..52eac590 100644 --- a/home/gui/home.nix +++ b/home/gui/home.nix @@ -6,22 +6,22 @@ config = mkIf config.passthrough.gui { # cursor theme - home.pointerCursor = { - package = mkDefault pkgs.bibata-cursors; - name = mkDefault "Bibata-Modern-Classic"; + home.pointerCursor = mkDefault { + package = pkgs.bibata-cursors; + name = "Bibata-Modern-Classic"; size = 24; }; # gtk theme - gtk.theme = { - package = mkDefault pkgs.whitesur-gtk-theme; - name = mkDefault "WhiteSur-Dark"; + gtk.theme = mkDefault { + package = pkgs.whitesur-gtk-theme; + name = "WhiteSur-Dark"; }; # gtk icons - gtk.iconTheme = { - package = mkDefault pkgs.papirus-icon-theme; - name = mkDefault "Papirus-Dark"; + gtk.iconTheme = mkDefault { + package = pkgs.papirus-icon-theme; + name = "Papirus-Dark"; }; # unify qt theme diff --git a/home/vscode/home.nix b/home/vscode/home.nix index 6662884b..6fb4b99b 100644 --- a/home/vscode/home.nix +++ b/home/vscode/home.nix @@ -3,6 +3,7 @@ , config , ... }: with lib; let cfg = config.passthrough.vscode; + theme = config.passthrough.catppuccin.enable; in mkIf cfg.enable { programs.vscode = { enable = true; @@ -15,8 +16,8 @@ in mkIf cfg.enable { bbenoist.nix golang.go rust-lang.rust-analyzer ]; userSettings = { - "workbench.colorTheme" = "Catppuccin Frappé"; - "workbench.iconTheme" = "catppuccin-frappe"; + "workbench.colorTheme" = mkIf theme "Catppuccin Frappé"; + "workbench.iconTheme" = mkIf theme "catppuccin-frappe"; "[nix]"."editor.tabSize" = 2; }; }; From 37326f67986e769dcdeee5091a65d8ba5c45c3e6 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 13 May 2024 08:55:58 +0800 Subject: [PATCH 323/447] home(plasma): add plasma-manager --- flake.nix | 3 +++ home/plasma/config.nix | 13 +++++++++++++ home/plasma/home.nix | 42 ++++++++++++++++++++++++++++++++++++++++++ home/plasma/nixos.nix | 38 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 96 insertions(+) create mode 100644 home/plasma/config.nix create mode 100644 home/plasma/home.nix create mode 100644 home/plasma/nixos.nix diff --git a/flake.nix b/flake.nix index 565ff4ae..50b13ca2 100644 --- a/flake.nix +++ b/flake.nix @@ -9,6 +9,9 @@ impermanence.url = "github:nix-community/impermanence/master"; home-manager.url = "github:nix-community/home-manager"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; + plasma-manager.url = "github:pjones/plasma-manager"; + plasma-manager.inputs.nixpkgs.follows = "nixpkgs"; + plasma-manager.inputs.home-manager.follows = "home-manager"; lanzaboote.url = "github:nix-community/lanzaboote/v0.3.0"; lanzaboote.inputs.nixpkgs.follows = "nixpkgs"; diff --git a/home/plasma/config.nix b/home/plasma/config.nix new file mode 100644 index 00000000..207bba57 --- /dev/null +++ b/home/plasma/config.nix @@ -0,0 +1,13 @@ +{ + programs.plasma = { + workspace = { + lookAndFeel = "org.kde.breezedark.desktop"; + #clickItemTo = "select"; + }; + + configFile = { + baloofilerc."Basic Settings"."Indexing-Enabled" = false; + kcminputrc.Libinput."2362"."597"."UNIW0001:00 093A:0255 Touchpad".NaturalScroll = true; + }; + }; +} diff --git a/home/plasma/home.nix b/home/plasma/home.nix new file mode 100644 index 00000000..f5aba0a0 --- /dev/null +++ b/home/plasma/home.nix @@ -0,0 +1,42 @@ +{ pkgs +, lib +, config +, ... }: with lib; let + cfg = config.passthrough.plasma; +in mkIf cfg.enable { + programs.plasma = { + # https://github.com/pjones/plasma-manager + enable = true; + overrideConfig = true; + + workspace = { + lookAndFeel = "org.kde.breezedark.desktop"; + }; + + configFile = { + baloofilerc."Basic Settings"."Indexing-Enabled" = false; + }; + } // cfg.extraConfig; + + qt.enable = false; + qt.platformTheme.name = null; + + # cursor theme + home.pointerCursor = { + package = pkgs.kdePackages.breeze; + name = "breeze_cursors"; + size = 24; + }; + + # gtk theme + gtk.theme = { + package = pkgs.kdePackages.breeze-gtk; + name = "Breeze-Dark"; + }; + + # gtk icons + gtk.iconTheme = { + package = pkgs.kdePackages.breeze-icons; + name = "breeze-dark"; + }; +} diff --git a/home/plasma/nixos.nix b/home/plasma/nixos.nix new file mode 100644 index 00000000..87b551cd --- /dev/null +++ b/home/plasma/nixos.nix @@ -0,0 +1,38 @@ +{ pkgs +, lib +, config +, plasma-manager +, ... }: with lib; let + cfg = config.home.plasma; +in { + options.home.plasma = { + enable = mkEnableOption "plasma desktop and configuration"; + extraConfig = mkOption { + type = with types; anything; + default = { }; + description = "extra plasma-manager configuration"; + }; + }; + + config = { + users.homeModules = [ + # this module passes plasma configuration to home-manager + { passthrough.plasma = cfg; } + ]; + + services.desktopManager.plasma6 = mkIf cfg.enable { + enable = true; + }; + home-manager.sharedModules = mkIf cfg.enable [ + plasma-manager.homeManagerModules.plasma-manager + ]; + + services.blueman = mkIf cfg.enable { + enable = mkForce false; + }; + + home = mkIf cfg.enable { + catppuccin.enable = mkForce false; + }; + }; +} From 1434b2b9b01aaa44c7f5a24f4e0e5162efb40492 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 13 May 2024 08:56:11 +0800 Subject: [PATCH 324/447] flake: bump inputs --- flake.lock | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/flake.lock b/flake.lock index b935cb00..a14427c4 100644 --- a/flake.lock +++ b/flake.lock @@ -300,6 +300,29 @@ "type": "github" } }, + "plasma-manager": { + "inputs": { + "home-manager": [ + "home-manager" + ], + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1714856962, + "narHash": "sha256-2te5GG8TVNBF44uMF4G0XFGW+Jt02i/ZkspSNFzjgT0=", + "owner": "pjones", + "repo": "plasma-manager", + "rev": "1554e19ede17de46106dd95820eeea05086a5720", + "type": "github" + }, + "original": { + "owner": "pjones", + "repo": "plasma-manager", + "type": "github" + } + }, "pre-commit-hooks-nix": { "inputs": { "flake-compat": [ @@ -339,7 +362,8 @@ "impermanence": "impermanence", "jovian": "jovian", "lanzaboote": "lanzaboote", - "nixpkgs": "nixpkgs_2" + "nixpkgs": "nixpkgs_2", + "plasma-manager": "plasma-manager" } }, "rust-overlay": { From 45be0acaccf1e0529e9bcffd5c72f90f90bd18a0 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 13 May 2024 09:15:41 +0800 Subject: [PATCH 325/447] home(gui): set catppuccin iconTheme name --- home/gui/catppuccin/home.nix | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/home/gui/catppuccin/home.nix b/home/gui/catppuccin/home.nix index 5d6a587a..7853f5ea 100644 --- a/home/gui/catppuccin/home.nix +++ b/home/gui/catppuccin/home.nix @@ -11,9 +11,12 @@ in mkIf cfg.enable { # gtk theme gtk.theme = { inherit (cfg.gtk) package name; }; - gtk.iconTheme.package = pkgs.catppuccin-papirus-folders.override { - flavor = cfg.palette; - accent = "pink"; + gtk.iconTheme = { + package = pkgs.catppuccin-papirus-folders.override { + flavor = cfg.palette; + accent = "pink"; + }; + name = "Papirus-Dark"; }; # sway colour palette override From 499635bee59568ad0349607b2d32562b99836bf4 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 13 May 2024 09:16:06 +0800 Subject: [PATCH 326/447] home(plasma): enable home-manager auto replace --- home/plasma/nixos.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/home/plasma/nixos.nix b/home/plasma/nixos.nix index 87b551cd..8eba21f7 100644 --- a/home/plasma/nixos.nix +++ b/home/plasma/nixos.nix @@ -23,7 +23,9 @@ in { services.desktopManager.plasma6 = mkIf cfg.enable { enable = true; }; - home-manager.sharedModules = mkIf cfg.enable [ + + home-manager.backupFileExtension = mkIf cfg.enable "old"; + home-manager.sharedModules = [ plasma-manager.homeManagerModules.plasma-manager ]; From 4be3aedcc1f7078db19b15816a4249d90a4e03a1 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 13 May 2024 09:23:43 +0800 Subject: [PATCH 327/447] spec(reimaden): add plasma specialisation --- spec/reimaden/default.nix | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/spec/reimaden/default.nix b/spec/reimaden/default.nix index d5d80bda..c8ad6b7e 100644 --- a/spec/reimaden/default.nix +++ b/spec/reimaden/default.nix @@ -20,6 +20,17 @@ steam.enable = true; }; + specialisation.plasma = { + configuration = { + home.plasma.enable = true; + home.plasma.extraConfig = { + configFile = { + kcminputrc."Libinput/2362/597/UNIW0001:00 093A:0255 Touchpad".NaturalScroll = true; + }; + }; + }; + }; + powerManagement.enable = true; powerManagement.cpuFreqGovernor = "powersave"; boot.kernelParams = [ "zfs.zfs_arc_max=34359738368" ]; From 4e2625bc2ca3c4f1c28c55b4fd303d73e574faf0 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 13 May 2024 09:43:33 +0800 Subject: [PATCH 328/447] spec(koumakyou): add plasma session --- spec/koumakyou/default.nix | 8 ++++++++ spec/koumakyou/jovian.nix | 3 ++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/spec/koumakyou/default.nix b/spec/koumakyou/default.nix index f9177341..68dc3c30 100644 --- a/spec/koumakyou/default.nix +++ b/spec/koumakyou/default.nix @@ -38,12 +38,20 @@ specialisation.desktop.configuration = { programs.regreet.enable = lib.mkForce true; jovian.steam.autoStart = lib.mkForce false; + jovian.steam.desktopSession = lib.mkForce "sway"; + home.plasma.enable = lib.mkForce false; services.greetd.settings.default_session.command = let cfg = config.programs.regreet; in "${pkgs.dbus}/bin/dbus-run-session ${lib.getExe pkgs.cage} ${lib.escapeShellArgs cfg.cageArgs} -- ${pkgs.writeShellScript "cageResolution" '' ${lib.getExe pkgs.wlr-randr} --output eDP-1 --scale 2 ${lib.getExe cfg.package} ''}"; + environment.systemPackages = with pkgs; [ + (writeShellScriptBin "sway-logout" '' + ${systemd}/bin/systemctl --user unset-environment WAYLAND_DISPLAY SWAYSOCK + ${sway}/bin/swaymsg exit + '') + ]; }; hardware.enableRedistributableFirmware = true; diff --git a/spec/koumakyou/jovian.nix b/spec/koumakyou/jovian.nix index 1906e734..a4b705e0 100644 --- a/spec/koumakyou/jovian.nix +++ b/spec/koumakyou/jovian.nix @@ -11,7 +11,7 @@ steam = { enable = true; autoStart = true; - desktopSession = "sway"; + desktopSession = "plasma"; user = "app"; }; }; @@ -21,6 +21,7 @@ ]; programs.regreet.enable = false; + home.plasma.enable = true; } // { #users.users.decky.uid = 514; #users.groups.decky.gid = 514; From 381e5e973c9f12b5a5b419ebb8eff0abbbfbbf77 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Mon, 13 May 2024 11:39:48 +0800 Subject: [PATCH 329/447] home(plasma): set wallpaper --- home/plasma/home.nix | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/home/plasma/home.nix b/home/plasma/home.nix index f5aba0a0..ce5fdef6 100644 --- a/home/plasma/home.nix +++ b/home/plasma/home.nix @@ -11,6 +11,15 @@ in mkIf cfg.enable { workspace = { lookAndFeel = "org.kde.breezedark.desktop"; + wallpaper = ../../share/54345906_p0.jpg; + }; + + hotkeys.commands = { + launch-konsole = { + name = "Launch Konsole"; + key = "Meta+Enter"; + command = "konsole"; + }; }; configFile = { From a2ec7ea1ec6935d6f4d18ca7ed0e52df9aba6564 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 14 May 2024 10:20:46 +0800 Subject: [PATCH 330/447] home(plasma): add specialise option --- home/plasma/nixos.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/home/plasma/nixos.nix b/home/plasma/nixos.nix index 8eba21f7..7616fd7c 100644 --- a/home/plasma/nixos.nix +++ b/home/plasma/nixos.nix @@ -7,6 +7,7 @@ in { options.home.plasma = { enable = mkEnableOption "plasma desktop and configuration"; + specialise = mkEnableOption "enable plasma in a specialisation"; extraConfig = mkOption { type = with types; anything; default = { }; @@ -36,5 +37,9 @@ in { home = mkIf cfg.enable { catppuccin.enable = mkForce false; }; + + specialisation.plasma = mkIf cfg.specialise { + configuration.home.plasma.enable = true; + }; }; } From 26b30be953760d86072fd41de717f970b6ba3d62 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 14 May 2024 10:20:58 +0800 Subject: [PATCH 331/447] spec(reimaden): enable plasma specialisation --- spec/reimaden/default.nix | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/spec/reimaden/default.nix b/spec/reimaden/default.nix index c8ad6b7e..447d1f8a 100644 --- a/spec/reimaden/default.nix +++ b/spec/reimaden/default.nix @@ -11,6 +11,7 @@ }; home = { + plasma.specialise = true; #headless.enable = "eDP-1"; gyroflow.enable = true; jetbrains.enable = true; @@ -20,14 +21,9 @@ steam.enable = true; }; - specialisation.plasma = { - configuration = { - home.plasma.enable = true; - home.plasma.extraConfig = { - configFile = { - kcminputrc."Libinput/2362/597/UNIW0001:00 093A:0255 Touchpad".NaturalScroll = true; - }; - }; + home.plasma.extraConfig = { + configFile = { + kcminputrc."Libinput/2362/597/UNIW0001:00 093A:0255 Touchpad".NaturalScroll = true; }; }; From 40722585aad6eed2ea7c2d63aadcdddd20af1edf Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 14 May 2024 10:21:10 +0800 Subject: [PATCH 332/447] spec(shinkirou): enable plasma specialisation --- spec/shinkirou/default.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/spec/shinkirou/default.nix b/spec/shinkirou/default.nix index d93f5920..c2c87fd6 100644 --- a/spec/shinkirou/default.nix +++ b/spec/shinkirou/default.nix @@ -14,6 +14,7 @@ }; home = { + plasma.specialise = true; gyroflow.enable = true; vscode.enable = true; libreoffice.enable = true; @@ -33,6 +34,12 @@ }; } ]; + home.plasma.extraConfig = { + configFile = { + kcminputrc."Libinput/2362/597/UNIW0001:00 093A:0255 Touchpad".NaturalScroll = true; + }; + }; + powerManagement.enable = true; powerManagement.cpuFreqGovernor = "performance"; boot.kernelParams = [ "zfs.zfs_arc_max=34359738368" ]; From 7a63fc2be37ae76984227a9d71acb0502ade0ea9 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 14 May 2024 10:48:16 +0800 Subject: [PATCH 333/447] global(io): reduce firewall spam --- global/io/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/global/io/default.nix b/global/io/default.nix index 25c4f647..7d70afe7 100644 --- a/global/io/default.nix +++ b/global/io/default.nix @@ -27,6 +27,7 @@ in { "192.168.123.1" = [ "netvm" ]; }; + networking.firewall.logRefusedConnections = true; hardware.bluetooth.enable = mkDefault cfg.bluetooth; hardware.pulseaudio = mkIf cfg.audio { From f541e8169829662bee09feba169f9da91af11105 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 14 May 2024 11:20:51 +0800 Subject: [PATCH 334/447] home(plasma): disable home-manager cursor and unify image --- home/plasma/home.nix | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/home/plasma/home.nix b/home/plasma/home.nix index ce5fdef6..09920f4d 100644 --- a/home/plasma/home.nix +++ b/home/plasma/home.nix @@ -3,15 +3,16 @@ , config , ... }: with lib; let cfg = config.passthrough.plasma; + image = ../../share/54345906_p0.jpg; in mkIf cfg.enable { programs.plasma = { # https://github.com/pjones/plasma-manager enable = true; - overrideConfig = true; + #overrideConfig = true; workspace = { lookAndFeel = "org.kde.breezedark.desktop"; - wallpaper = ../../share/54345906_p0.jpg; + wallpaper = image; }; hotkeys.commands = { @@ -24,19 +25,15 @@ in mkIf cfg.enable { configFile = { baloofilerc."Basic Settings"."Indexing-Enabled" = false; + kwalletrc.Wallet.Enabled = false; + kscreenlockerrc.Greeter.Wallpaper."org.kde.image".General.Image = image; + kscreenlockerrc.Greeter.Wallpaper."org.kde.image".General.PreviewImage = image; }; } // cfg.extraConfig; qt.enable = false; qt.platformTheme.name = null; - # cursor theme - home.pointerCursor = { - package = pkgs.kdePackages.breeze; - name = "breeze_cursors"; - size = 24; - }; - # gtk theme gtk.theme = { package = pkgs.kdePackages.breeze-gtk; From a28f8d6619307527e4f9f829a599a91e191f3bb6 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 14 May 2024 11:21:11 +0800 Subject: [PATCH 335/447] spec(shinkirou): configure plasma inputs --- spec/shinkirou/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spec/shinkirou/default.nix b/spec/shinkirou/default.nix index c2c87fd6..95864bc6 100644 --- a/spec/shinkirou/default.nix +++ b/spec/shinkirou/default.nix @@ -36,7 +36,8 @@ home.plasma.extraConfig = { configFile = { - kcminputrc."Libinput/2362/597/UNIW0001:00 093A:0255 Touchpad".NaturalScroll = true; + kcminputrc."Libinput/1267/16857/ELAN9009:00 04F3:41D9".OutputName = "DP-3"; + kcminputrc."Libinput/1267/12962/ASUE140F:00 04F3:32A2 Touchpad".NaturalScroll = true; }; }; From 79b810cd68b90edcf80972169246f12a81189dfe Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 14 May 2024 11:26:39 +0800 Subject: [PATCH 336/447] home(plasma): persist display output config --- home/plasma/nixos.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/home/plasma/nixos.nix b/home/plasma/nixos.nix index 7616fd7c..f3f8a2ba 100644 --- a/home/plasma/nixos.nix +++ b/home/plasma/nixos.nix @@ -21,6 +21,10 @@ in { { passthrough.plasma = cfg; } ]; + users.home.persist.files = mkIf cfg.enable [ + ".config/kwinoutputconfig.json" + ]; + services.desktopManager.plasma6 = mkIf cfg.enable { enable = true; }; From 990eea0b3cb38ea0126c6c63e6f2bf7edc6eaef1 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 14 May 2024 11:40:32 +0800 Subject: [PATCH 337/447] home(plasma): do not back up gtkrc-2.0 --- home/plasma/home.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/home/plasma/home.nix b/home/plasma/home.nix index 09920f4d..9426be7b 100644 --- a/home/plasma/home.nix +++ b/home/plasma/home.nix @@ -31,6 +31,10 @@ in mkIf cfg.enable { }; } // cfg.extraConfig; + home.activation.gtkCleanup = hm.dag.entryAfter [ "writeBoundary" ] '' + $DRY_RUN_CMD rm -f $HOME/.gtkrc-2.0.old + ''; + qt.enable = false; qt.platformTheme.name = null; From e57e635104ad90a4bb09d68bcc4b733b7d764cb5 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 14 May 2024 11:40:47 +0800 Subject: [PATCH 338/447] spec(shinkirou): add Xwayland scale --- spec/shinkirou/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/shinkirou/default.nix b/spec/shinkirou/default.nix index 95864bc6..4eee2b0c 100644 --- a/spec/shinkirou/default.nix +++ b/spec/shinkirou/default.nix @@ -36,6 +36,7 @@ home.plasma.extraConfig = { configFile = { + kwinrc.Xwayland.Scale = 2.25; kcminputrc."Libinput/1267/16857/ELAN9009:00 04F3:41D9".OutputName = "DP-3"; kcminputrc."Libinput/1267/12962/ASUE140F:00 04F3:32A2 Touchpad".NaturalScroll = true; }; From 552677e8a950265e574ff4123cc56d537b9b3edc Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 14 May 2024 12:14:12 +0800 Subject: [PATCH 339/447] home(plasma): persist wallet --- home/plasma/home.nix | 1 - home/plasma/nixos.nix | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/home/plasma/home.nix b/home/plasma/home.nix index 9426be7b..7c329a8b 100644 --- a/home/plasma/home.nix +++ b/home/plasma/home.nix @@ -25,7 +25,6 @@ in mkIf cfg.enable { configFile = { baloofilerc."Basic Settings"."Indexing-Enabled" = false; - kwalletrc.Wallet.Enabled = false; kscreenlockerrc.Greeter.Wallpaper."org.kde.image".General.Image = image; kscreenlockerrc.Greeter.Wallpaper."org.kde.image".General.PreviewImage = image; }; diff --git a/home/plasma/nixos.nix b/home/plasma/nixos.nix index f3f8a2ba..5920abe5 100644 --- a/home/plasma/nixos.nix +++ b/home/plasma/nixos.nix @@ -23,6 +23,7 @@ in { users.home.persist.files = mkIf cfg.enable [ ".config/kwinoutputconfig.json" + ".local/share/kwalletd" ]; services.desktopManager.plasma6 = mkIf cfg.enable { From efc8432b22af9bed0c3e3afea6fa4dfc998aea30 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 14 May 2024 12:14:35 +0800 Subject: [PATCH 340/447] spec(koumakyou): allow network management and xwayland scale --- spec/koumakyou/jovian.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/spec/koumakyou/jovian.nix b/spec/koumakyou/jovian.nix index a4b705e0..efc34d27 100644 --- a/spec/koumakyou/jovian.nix +++ b/spec/koumakyou/jovian.nix @@ -20,8 +20,14 @@ ".steam" ".local/share/Steam" ".config/gamescope" ]; + users.users.app.extraGroups = [ "networkmanager" ]; programs.regreet.enable = false; home.plasma.enable = true; + home.plasma.extraConfig = { + configFile = { + kwinrc.Xwayland.Scale = 1.75; + }; + }; } // { #users.users.decky.uid = 514; #users.groups.decky.gid = 514; From ed4113fe3290a8ef215ddd4992894de41a676fd1 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 14 May 2024 17:29:54 +0800 Subject: [PATCH 341/447] home(plasma): fix wallet persist --- home/plasma/nixos.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/home/plasma/nixos.nix b/home/plasma/nixos.nix index 5920abe5..b1a642cc 100644 --- a/home/plasma/nixos.nix +++ b/home/plasma/nixos.nix @@ -23,6 +23,8 @@ in { users.home.persist.files = mkIf cfg.enable [ ".config/kwinoutputconfig.json" + ]; + users.home.persist.directories = mkIf cfg.enable [ ".local/share/kwalletd" ]; From 2e669cacf77cbfd955aa6aeda872ef0df4c3b09d Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 14 May 2024 17:31:05 +0800 Subject: [PATCH 342/447] spec(yume): enable plasma --- spec/yume/default.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/spec/yume/default.nix b/spec/yume/default.nix index 82cb255b..da31ff9e 100644 --- a/spec/yume/default.nix +++ b/spec/yume/default.nix @@ -13,6 +13,7 @@ }; home = { + plasma.enable = true; gyroflow.enable = true; jetbrains.enable = true; vscode.enable = true; @@ -21,6 +22,12 @@ steam.enable = true; }; + home.plasma.extraConfig = { + configFile = { + kcminputrc."Libinput/16700/9486/Dell Computer Corp Dell Laser Mouse MS3220".NaturalScroll = true; + }; + }; + imports = lib.pipe ./. [ builtins.readDir (lib.filterAttrs (n: ty: ty == "regular" && n != "default.nix")) From 3ec2a95865d375634c8f245829c6432686156317 Mon Sep 17 00:00:00 2001 From: 514fpv Date: Tue, 14 May 2024 19:59:29 +0800 Subject: [PATCH 343/447] home: fix profile icon installation --- home/picture/app.png | Bin 33957 -> 117007 bytes home/profile.nix | 20 ++++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/home/picture/app.png b/home/picture/app.png index 6cbfd8a25af580442438dd3135c94b6b98317975..bd1b86c3048ae6f5767cc29316bf1a74678cc5d1 100644 GIT binary patch literal 117007 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⪼JcGtEy?1oldmvsI%{brIhO9< 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%0AZJB>=-rUKn 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 literal 33957 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%0Aw7U5lX8$22pt?9Tdx$MIhvrFG> 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