From b7fb0531201c848071658ba66110f7e9b00a4a3f Mon Sep 17 00:00:00 2001 From: Alexander Wood Date: Fri, 27 Mar 2026 15:58:30 +0000 Subject: [PATCH 01/26] feat: begin rewrite --- .devenv/load-exports | 1 + .devenv/profile | 1 + .devenv/root | 1 + .devenv/run | 1 + .devenv/state/files.json | 1 + .devenv/tasks.db | Bin 0 -> 4096 bytes .devenv/tasks.db-shm | Bin 0 -> 32768 bytes .devenv/tasks.db-wal | Bin 0 -> 284312 bytes .direnv/bin/nix-direnv-reload | 19 + .../12rd2bk68yfdn66pzcnwkgcyxf28y2fq-source | 1 + .../19n52d86cl95nj8jp5rgrh36sl762fba-source | 1 + .../2a9ylipb88x2sp2xn6cg58p5xm6qamai-source | 1 + .../59wm6wpldrgyplh2hjnmiba7zrq40slr-source | 1 + .../6sr5gjiqka9lw5pp65q65gsi4vwvykqd-source | 1 + .../8694kanhi1kzc34kg81l33pvn638qvnh-source | 1 + .../98mad1s6hrryyflb6qf6hd4xyb8r7cy4-source | 1 + .../9qa4c94rswp05pi33cw8djmr481xfmsb-source | 1 + .../a3lgxmqqn2hargk3zla9qwc7dk172pfd-source | 1 + .../a4vp2b9b5nypkhq15a2fjd436fhmcn1l-source | 1 + .../ah506d01i8mdjgwfzxisj0h6crv06h4d-source | 1 + .../ccsb5xyihjf7b377k5rzkqc16qc6pqd1-source | 1 + .../cp5dwcigb6sq67flr8z068sm272fqdwc-source | 1 + .../dn79d4hlja1h10w71g2dd9591bhb9gcm-source | 1 + .../g5v3sgqy6a0fsmas7mnapc196flrplix-source | 1 + .../gfsnfjvm197ha6c06n46shx5l56jr3v9-source | 1 + .../hh6i9rnxx1v6azzva6dc3ivglh9bxnzg-source | 1 + .../hs60rjkj4jf56x6ki09f3l3bjb3xmd4r-source | 1 + .../jzfmmjnq1cip816awnliw7ir69pcyg00-source | 1 + .../lscb3irg1bmxaywmpbcs1ix52519dwsv-source | 1 + .../n07s4r9cd44axqq4gzlvzckky2fiw3dv-source | 1 + .../s0bdxxy4gki016irflyqlxy5mzr96kin-source | 1 + .../sy3ism981f9xcbcmdc7gbk0yz28w6yjz-source | 1 + .../vfwqvh36nfahrhdx290ihhpgpnx68bv1-source | 1 + .../wygnldpfirbkskf6qpjbghvaqh3kkczb-source | 1 + .../xji4bckj16g6fvdwkzdlxivhwsjwk11m-source | 1 + .../yar8rblnwkp2mpk27capz695pgdbf74x-source | 1 + .../zmknnpbpzwg4s440xvwv6xww4fjgyyyb-source | 1 + ...e-a5d5b61aa8a61b7d9d765e1daf971a9a578f1cfa | 1 + ...5d5b61aa8a61b7d9d765e1daf971a9a578f1cfa.rc | 2235 ++++++++++++ .dockerignore | 8 - .envrc | 18 +- .github/workflows/deploy.yml | 56 - .gitignore | 17 +- .vscode/settings.json | 3 + .yarn/install-state.gz | Bin 258358 -> 0 bytes .yarnrc.yml | 1 - Dockerfile | 20 - LICENSE | 21 - README.MD | 52 +- elm.json | 18 +- flake.lock | 25 - flake.nix | 72 +- main.css | 6 - nginx.conf | 31 - package.json | 26 - postcss.config.js | 15 - public/index.html | 11 + src/Main.elm | 114 - src/Page.elm | 68 - src/Pages/Home_.elm | 11 + src/Redirects.elm | 19 - src/Route.elm | 64 - src/Views/Blank.elm | 10 - src/Views/Home.elm | 59 - src/Views/Rules.elm | 68 - src/Views/ServicesRules.elm | 86 - static/custom.css | 19 - static/devden_text_only.png | Bin 33327 -> 0 bytes static/devden_text_only_wide.png | Bin 31957 -> 0 bytes static/favicon-16x16.png | Bin 533 -> 0 bytes static/favicon-32x32.png | Bin 1184 -> 0 bytes static/favicon.ico | Bin 15406 -> 0 bytes static/fonts/JetBrainsMono-Regular.woff2 | Bin 69440 -> 0 bytes static/fonts/horta.otf | Bin 499316 -> 0 bytes static/index.html | 36 - static/logo.gif | Bin 458643 -> 0 bytes tailwind.config.js | 14 - yarn.lock | 2992 ----------------- 78 files changed, 2424 insertions(+), 3824 deletions(-) create mode 100755 .devenv/load-exports create mode 120000 .devenv/profile create mode 100644 .devenv/root create mode 120000 .devenv/run create mode 100644 .devenv/state/files.json create mode 100644 .devenv/tasks.db create mode 100644 .devenv/tasks.db-shm create mode 100644 .devenv/tasks.db-wal create mode 100755 .direnv/bin/nix-direnv-reload create mode 120000 .direnv/flake-inputs/12rd2bk68yfdn66pzcnwkgcyxf28y2fq-source create mode 120000 .direnv/flake-inputs/19n52d86cl95nj8jp5rgrh36sl762fba-source create mode 120000 .direnv/flake-inputs/2a9ylipb88x2sp2xn6cg58p5xm6qamai-source create mode 120000 .direnv/flake-inputs/59wm6wpldrgyplh2hjnmiba7zrq40slr-source create mode 120000 .direnv/flake-inputs/6sr5gjiqka9lw5pp65q65gsi4vwvykqd-source create mode 120000 .direnv/flake-inputs/8694kanhi1kzc34kg81l33pvn638qvnh-source create mode 120000 .direnv/flake-inputs/98mad1s6hrryyflb6qf6hd4xyb8r7cy4-source create mode 120000 .direnv/flake-inputs/9qa4c94rswp05pi33cw8djmr481xfmsb-source create mode 120000 .direnv/flake-inputs/a3lgxmqqn2hargk3zla9qwc7dk172pfd-source create mode 120000 .direnv/flake-inputs/a4vp2b9b5nypkhq15a2fjd436fhmcn1l-source create mode 120000 .direnv/flake-inputs/ah506d01i8mdjgwfzxisj0h6crv06h4d-source create mode 120000 .direnv/flake-inputs/ccsb5xyihjf7b377k5rzkqc16qc6pqd1-source create mode 120000 .direnv/flake-inputs/cp5dwcigb6sq67flr8z068sm272fqdwc-source create mode 120000 .direnv/flake-inputs/dn79d4hlja1h10w71g2dd9591bhb9gcm-source create mode 120000 .direnv/flake-inputs/g5v3sgqy6a0fsmas7mnapc196flrplix-source create mode 120000 .direnv/flake-inputs/gfsnfjvm197ha6c06n46shx5l56jr3v9-source create mode 120000 .direnv/flake-inputs/hh6i9rnxx1v6azzva6dc3ivglh9bxnzg-source create mode 120000 .direnv/flake-inputs/hs60rjkj4jf56x6ki09f3l3bjb3xmd4r-source create mode 120000 .direnv/flake-inputs/jzfmmjnq1cip816awnliw7ir69pcyg00-source create mode 120000 .direnv/flake-inputs/lscb3irg1bmxaywmpbcs1ix52519dwsv-source create mode 120000 .direnv/flake-inputs/n07s4r9cd44axqq4gzlvzckky2fiw3dv-source create mode 120000 .direnv/flake-inputs/s0bdxxy4gki016irflyqlxy5mzr96kin-source create mode 120000 .direnv/flake-inputs/sy3ism981f9xcbcmdc7gbk0yz28w6yjz-source create mode 120000 .direnv/flake-inputs/vfwqvh36nfahrhdx290ihhpgpnx68bv1-source create mode 120000 .direnv/flake-inputs/wygnldpfirbkskf6qpjbghvaqh3kkczb-source create mode 120000 .direnv/flake-inputs/xji4bckj16g6fvdwkzdlxivhwsjwk11m-source create mode 120000 .direnv/flake-inputs/yar8rblnwkp2mpk27capz695pgdbf74x-source create mode 120000 .direnv/flake-inputs/zmknnpbpzwg4s440xvwv6xww4fjgyyyb-source create mode 120000 .direnv/flake-profile-a5d5b61aa8a61b7d9d765e1daf971a9a578f1cfa create mode 100644 .direnv/flake-profile-a5d5b61aa8a61b7d9d765e1daf971a9a578f1cfa.rc delete mode 100644 .dockerignore delete mode 100644 .github/workflows/deploy.yml create mode 100644 .vscode/settings.json delete mode 100644 .yarn/install-state.gz delete mode 100644 .yarnrc.yml delete mode 100644 Dockerfile delete mode 100644 LICENSE delete mode 100644 flake.lock delete mode 100644 main.css delete mode 100644 nginx.conf delete mode 100644 package.json delete mode 100644 postcss.config.js create mode 100644 public/index.html delete mode 100644 src/Main.elm delete mode 100644 src/Page.elm create mode 100644 src/Pages/Home_.elm delete mode 100644 src/Redirects.elm delete mode 100644 src/Route.elm delete mode 100644 src/Views/Blank.elm delete mode 100644 src/Views/Home.elm delete mode 100644 src/Views/Rules.elm delete mode 100644 src/Views/ServicesRules.elm delete mode 100644 static/custom.css delete mode 100644 static/devden_text_only.png delete mode 100644 static/devden_text_only_wide.png delete mode 100644 static/favicon-16x16.png delete mode 100644 static/favicon-32x32.png delete mode 100644 static/favicon.ico delete mode 100644 static/fonts/JetBrainsMono-Regular.woff2 delete mode 100644 static/fonts/horta.otf delete mode 100644 static/index.html delete mode 100644 static/logo.gif delete mode 100644 tailwind.config.js delete mode 100644 yarn.lock diff --git a/.devenv/load-exports b/.devenv/load-exports new file mode 100755 index 0000000..8b13789 --- /dev/null +++ b/.devenv/load-exports @@ -0,0 +1 @@ + diff --git a/.devenv/profile b/.devenv/profile new file mode 120000 index 0000000..360ce2d --- /dev/null +++ b/.devenv/profile @@ -0,0 +1 @@ +/nix/store/24ccwhzzw2d1mq05cqyf9w0j2vzqrp8j-devenv-profile \ No newline at end of file diff --git a/.devenv/root b/.devenv/root new file mode 100644 index 0000000..7e364e1 --- /dev/null +++ b/.devenv/root @@ -0,0 +1 @@ +/Users/alex/workspace/website \ No newline at end of file diff --git a/.devenv/run b/.devenv/run new file mode 120000 index 0000000..8284d71 --- /dev/null +++ b/.devenv/run @@ -0,0 +1 @@ +/tmp/devenv-3226e91 \ No newline at end of file diff --git a/.devenv/state/files.json b/.devenv/state/files.json new file mode 100644 index 0000000..b4c7443 --- /dev/null +++ b/.devenv/state/files.json @@ -0,0 +1 @@ +{"managedFiles":[]} diff --git a/.devenv/tasks.db b/.devenv/tasks.db new file mode 100644 index 0000000000000000000000000000000000000000..7ee7c113a09428e4daafacb6e70a35d18573e608 GIT binary patch literal 4096 zcmWFz^vNtqRY=P(%1ta$FlG>7U}9o$P*7lCU|@t|AVoG{WYDWB;00+HAlr;ljiVtj n8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71*Aut*O6ovo*4{!$i literal 0 HcmV?d00001 diff --git a/.devenv/tasks.db-shm b/.devenv/tasks.db-shm new file mode 100644 index 0000000000000000000000000000000000000000..075b7290f098b9c40f30b68cff6c7ac8360adca2 GIT binary patch literal 32768 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 ${!varName}"; + args+=("--subst-var" "$varName"); + done < <(awk 'BEGIN { for (v in ENVIRON) if (v ~ /^[a-z][a-zA-Z0-9_]*$/) print v }') +} +_assignFirst () +{ + + local varName="$1"; + local _var; + local REMOVE=REMOVE; + shift; + for _var in "$@"; + do + if [ -n "${!_var-}" ]; then + eval "${varName}"="${_var}"; + return; + fi; + done; + echo; + echo "error: _assignFirst: could not find a non-empty variable whose name to assign to ${varName}."; + echo " The following variables were all unset or empty:"; + echo " $*"; + if [ -z "${out:-}" ]; then + echo ' If you do not want an "out" output in your derivation, make sure to define'; + echo ' the other specific required outputs. This can be achieved by picking one'; + echo " of the above as an output."; + echo ' You do not have to remove "out" if you want to have a different default'; + echo ' output, because the first output is taken as a default.'; + echo; + fi; + return 1 +} +_callImplicitHook () +{ + + local def="$1"; + local hookName="$2"; + if declare -F "$hookName" > /dev/null; then + nixTalkativeLog "calling implicit '$hookName' function hook"; + "$hookName"; + else + if type -p "$hookName" > /dev/null; then + nixTalkativeLog "sourcing implicit '$hookName' script hook"; + source "$hookName"; + else + if [ -n "${!hookName:-}" ]; then + nixTalkativeLog "evaling implicit '$hookName' string hook"; + eval "${!hookName}"; + else + return "$def"; + fi; + fi; + fi +} +_defaultUnpack () +{ + + local fn="$1"; + local destination; + if [ -d "$fn" ]; then + destination="$(stripHash "$fn")"; + if [ -e "$destination" ]; then + echo "Cannot copy $fn to $destination: destination already exists!"; + echo "Did you specify two \"srcs\" with the same \"name\"?"; + return 1; + fi; + cp -r --preserve=timestamps --reflink=auto -- "$fn" "$destination"; + else + case "$fn" in + *.tar.xz | *.tar.lzma | *.txz) + ( XZ_OPT="--threads=$NIX_BUILD_CORES" xz -d < "$fn"; + true ) | tar xf - --mode=+w --warning=no-timestamp + ;; + *.tar | *.tar.* | *.tgz | *.tbz2 | *.tbz) + tar xf "$fn" --mode=+w --warning=no-timestamp + ;; + *) + return 1 + ;; + esac; + fi +} +_doStrip () +{ + + local -ra flags=(dontStripHost dontStripTarget); + local -ra debugDirs=(stripDebugList stripDebugListTarget); + local -ra allDirs=(stripAllList stripAllListTarget); + local -ra stripCmds=(STRIP STRIP_FOR_TARGET); + local -ra ranlibCmds=(RANLIB RANLIB_FOR_TARGET); + stripDebugList=${stripDebugList[*]:-lib lib32 lib64 libexec bin sbin Applications Library/Frameworks}; + stripDebugListTarget=${stripDebugListTarget[*]:-}; + stripAllList=${stripAllList[*]:-}; + stripAllListTarget=${stripAllListTarget[*]:-}; + local i; + for i in ${!stripCmds[@]}; + do + local -n flag="${flags[$i]}"; + local -n debugDirList="${debugDirs[$i]}"; + local -n allDirList="${allDirs[$i]}"; + local -n stripCmd="${stripCmds[$i]}"; + local -n ranlibCmd="${ranlibCmds[$i]}"; + if [[ -n "${dontStrip-}" || -n "${flag-}" ]] || ! type -f "${stripCmd-}" 2> /dev/null 1>&2; then + continue; + fi; + stripDirs "$stripCmd" "$ranlibCmd" "$debugDirList" "${stripDebugFlags[*]:--S -p}"; + stripDirs "$stripCmd" "$ranlibCmd" "$allDirList" "${stripAllFlags[*]:--s -p}"; + done +} +_eval () +{ + + if declare -F "$1" > /dev/null 2>&1; then + "$@"; + else + eval "$1"; + fi +} +_logHook () +{ + + if [[ -z ${NIX_LOG_FD-} ]]; then + return; + fi; + local hookKind="$1"; + local hookExpr="$2"; + shift 2; + if declare -F "$hookExpr" > /dev/null 2>&1; then + nixTalkativeLog "calling '$hookKind' function hook '$hookExpr'" "$@"; + else + if type -p "$hookExpr" > /dev/null; then + nixTalkativeLog "sourcing '$hookKind' script hook '$hookExpr'"; + else + if [[ "$hookExpr" != "_callImplicitHook"* ]]; then + local exprToOutput; + if [[ ${NIX_DEBUG:-0} -ge 5 ]]; then + exprToOutput="$hookExpr"; + else + local hookExprLine; + while IFS= read -r hookExprLine; do + hookExprLine="${hookExprLine#"${hookExprLine%%[![:space:]]*}"}"; + if [[ -n "$hookExprLine" ]]; then + exprToOutput+="$hookExprLine\\n "; + fi; + done <<< "$hookExpr"; + exprToOutput="${exprToOutput%%\\n }"; + fi; + nixTalkativeLog "evaling '$hookKind' string hook '$exprToOutput'"; + fi; + fi; + fi +} +_makeSymlinksRelative () +{ + + local prefixes; + prefixes=(); + for output in $(getAllOutputNames); + do + [ ! -e "${!output}" ] && continue; + prefixes+=("${!output}"); + done; + find "${prefixes[@]}" -type l -printf '%H\0%p\0' | xargs -0 -n2 -r -P "$NIX_BUILD_CORES" sh -c ' + output="$1" + link="$2" + + linkTarget=$(readlink "$link") + + # only touch links that point inside the same output tree + [[ $linkTarget == "$output"/* ]] || exit 0 + + if [ ! -e "$linkTarget" ]; then + echo "the symlink $link is broken, it points to $linkTarget (which is missing)" + fi + + echo "making symlink relative: $link" + ln -snrf "$linkTarget" "$link" + ' _ +} +_moveLib64 () +{ + + if [ "${dontMoveLib64-}" = 1 ]; then + return; + fi; + if [ ! -e "$prefix/lib64" -o -L "$prefix/lib64" ]; then + return; + fi; + echo "moving $prefix/lib64/* to $prefix/lib"; + mkdir -p $prefix/lib; + shopt -s dotglob; + for i in $prefix/lib64/*; + do + mv --no-clobber "$i" $prefix/lib; + done; + shopt -u dotglob; + rmdir $prefix/lib64; + ln -s lib $prefix/lib64 +} +_moveSbin () +{ + + if [ "${dontMoveSbin-}" = 1 ]; then + return; + fi; + if [ ! -e "$prefix/sbin" -o -L "$prefix/sbin" ]; then + return; + fi; + echo "moving $prefix/sbin/* to $prefix/bin"; + mkdir -p $prefix/bin; + shopt -s dotglob; + for i in $prefix/sbin/*; + do + mv "$i" $prefix/bin; + done; + shopt -u dotglob; + rmdir $prefix/sbin; + ln -s bin $prefix/sbin +} +_moveSystemdUserUnits () +{ + + if [ "${dontMoveSystemdUserUnits:-0}" = 1 ]; then + return; + fi; + if [ ! -e "${prefix:?}/lib/systemd/user" ]; then + return; + fi; + local source="$prefix/lib/systemd/user"; + local target="$prefix/share/systemd/user"; + echo "moving $source/* to $target"; + mkdir -p "$target"; + ( shopt -s dotglob; + for i in "$source"/*; + do + mv "$i" "$target"; + done ); + rmdir "$source"; + ln -s "$target" "$source" +} +_moveToShare () +{ + + if [ -n "$__structuredAttrs" ]; then + if [ -z "${forceShare-}" ]; then + forceShare=(man doc info); + fi; + else + forceShare=(${forceShare:-man doc info}); + fi; + if [[ -z "$out" ]]; then + return; + fi; + for d in "${forceShare[@]}"; + do + if [ -d "$out/$d" ]; then + if [ -d "$out/share/$d" ]; then + echo "both $d/ and share/$d/ exist!"; + else + echo "moving $out/$d to $out/share/$d"; + mkdir -p $out/share; + mv $out/$d $out/share/; + fi; + fi; + done +} +_multioutConfig () +{ + + if [ "$(getAllOutputNames)" = "out" ] || [ -z "${setOutputFlags-1}" ]; then + return; + fi; + if [ -z "${shareDocName:-}" ]; then + local confScript="${configureScript:-}"; + if [ -z "$confScript" ] && [ -x ./configure ]; then + confScript=./configure; + fi; + if [ -f "$confScript" ]; then + local shareDocName="$(sed -n "s/^PACKAGE_TARNAME='\(.*\)'$/\1/p" < "$confScript")"; + fi; + if [ -z "$shareDocName" ] || echo "$shareDocName" | grep -q '[^a-zA-Z0-9_-]'; then + shareDocName="$(echo "$name" | sed 's/-[^a-zA-Z].*//')"; + fi; + fi; + prependToVar configureFlags --bindir="${!outputBin}"/bin --sbindir="${!outputBin}"/sbin --includedir="${!outputInclude}"/include --mandir="${!outputMan}"/share/man --infodir="${!outputInfo}"/share/info --docdir="${!outputDoc}"/share/doc/"${shareDocName}" --libdir="${!outputLib}"/lib --libexecdir="${!outputLib}"/libexec --localedir="${!outputLib}"/share/locale; + prependToVar installFlags pkgconfigdir="${!outputDev}"/lib/pkgconfig m4datadir="${!outputDev}"/share/aclocal aclocaldir="${!outputDev}"/share/aclocal +} +_multioutDevs () +{ + + if [ "$(getAllOutputNames)" = "out" ] || [ -z "${moveToDev-1}" ]; then + return; + fi; + moveToOutput include "${!outputInclude}"; + moveToOutput lib/pkgconfig "${!outputDev}"; + moveToOutput share/pkgconfig "${!outputDev}"; + moveToOutput lib/cmake "${!outputDev}"; + moveToOutput share/aclocal "${!outputDev}"; + for f in "${!outputDev}"/{lib,share}/pkgconfig/*.pc; + do + echo "Patching '$f' includedir to output ${!outputInclude}"; + sed -i "/^includedir=/s,=\${prefix},=${!outputInclude}," "$f"; + done +} +_multioutDocs () +{ + + local REMOVE=REMOVE; + moveToOutput share/info "${!outputInfo}"; + moveToOutput share/doc "${!outputDoc}"; + moveToOutput share/gtk-doc "${!outputDevdoc}"; + moveToOutput share/devhelp/books "${!outputDevdoc}"; + moveToOutput share/man "${!outputMan}"; + moveToOutput share/man/man3 "${!outputDevman}" +} +_multioutPropagateDev () +{ + + if [ "$(getAllOutputNames)" = "out" ]; then + return; + fi; + local outputFirst; + for outputFirst in $(getAllOutputNames); + do + break; + done; + local propagaterOutput="$outputDev"; + if [ -z "$propagaterOutput" ]; then + propagaterOutput="$outputFirst"; + fi; + if [ -z "${propagatedBuildOutputs+1}" ]; then + local po_dirty="$outputBin $outputInclude $outputLib"; + set +o pipefail; + propagatedBuildOutputs=`echo "$po_dirty" | tr -s ' ' '\n' | grep -v -F "$propagaterOutput" | sort -u | tr '\n' ' ' `; + set -o pipefail; + fi; + if [ -z "$propagatedBuildOutputs" ]; then + return; + fi; + mkdir -p "${!propagaterOutput}"/nix-support; + for output in $propagatedBuildOutputs; + do + echo -n " ${!output}" >> "${!propagaterOutput}"/nix-support/propagated-build-inputs; + done +} +_nixLogWithLevel () +{ + + [[ -z ${NIX_LOG_FD-} || ${NIX_DEBUG:-0} -lt ${1:?} ]] && return 0; + local logLevel; + case "${1:?}" in + 0) + logLevel=ERROR + ;; + 1) + logLevel=WARN + ;; + 2) + logLevel=NOTICE + ;; + 3) + logLevel=INFO + ;; + 4) + logLevel=TALKATIVE + ;; + 5) + logLevel=CHATTY + ;; + 6) + logLevel=DEBUG + ;; + 7) + logLevel=VOMIT + ;; + *) + echo "_nixLogWithLevel: called with invalid log level: ${1:?}" >&"$NIX_LOG_FD"; + return 1 + ;; + esac; + local callerName="${FUNCNAME[2]}"; + if [[ $callerName == "_callImplicitHook" ]]; then + callerName="${hookName:?}"; + fi; + printf "%s: %s: %s\n" "$logLevel" "$callerName" "${2:?}" >&"$NIX_LOG_FD" +} +_overrideFirst () +{ + + if [ -z "${!1-}" ]; then + _assignFirst "$@"; + fi +} +_pruneLibtoolFiles () +{ + + if [ "${dontPruneLibtoolFiles-}" ] || [ ! -e "$prefix" ]; then + return; + fi; + find "$prefix" -type f -name '*.la' -exec grep -q '^# Generated by .*libtool' {} \; -exec grep -q "^old_library=''" {} \; -exec sed -i {} -e "/^dependency_libs='[^']/ c dependency_libs='' #pruned" \; +} +_updateSourceDateEpochFromSourceRoot () +{ + + if [ -n "$sourceRoot" ]; then + updateSourceDateEpoch "$sourceRoot"; + fi +} +activatePackage () +{ + + local pkg="$1"; + local -r hostOffset="$2"; + local -r targetOffset="$3"; + (( hostOffset <= targetOffset )) || exit 1; + if [ -f "$pkg" ]; then + nixTalkativeLog "sourcing setup hook '$pkg'"; + source "$pkg"; + fi; + if [[ -z "${strictDeps-}" || "$hostOffset" -le -1 ]]; then + addToSearchPath _PATH "$pkg/bin"; + fi; + if (( hostOffset <= -1 )); then + addToSearchPath _XDG_DATA_DIRS "$pkg/share"; + fi; + if [[ "$hostOffset" -eq 0 && -d "$pkg/bin" ]]; then + addToSearchPath _HOST_PATH "$pkg/bin"; + fi; + if [[ -f "$pkg/nix-support/setup-hook" ]]; then + nixTalkativeLog "sourcing setup hook '$pkg/nix-support/setup-hook'"; + source "$pkg/nix-support/setup-hook"; + fi +} +addEnvHooks () +{ + + local depHostOffset="$1"; + shift; + local pkgHookVarsSlice="${pkgHookVarVars[$depHostOffset + 1]}[@]"; + local pkgHookVar; + for pkgHookVar in "${!pkgHookVarsSlice}"; + do + eval "${pkgHookVar}s"'+=("$@")'; + done +} +addToSearchPath () +{ + + addToSearchPathWithCustomDelimiter ":" "$@" +} +addToSearchPathWithCustomDelimiter () +{ + + local delimiter="$1"; + local varName="$2"; + local dir="$3"; + if [[ -d "$dir" && "${!varName:+${delimiter}${!varName}${delimiter}}" != *"${delimiter}${dir}${delimiter}"* ]]; then + export "${varName}=${!varName:+${!varName}${delimiter}}${dir}"; + fi +} +appendToVar () +{ + + local -n nameref="$1"; + local useArray type; + if [ -n "$__structuredAttrs" ]; then + useArray=true; + else + useArray=false; + fi; + if type=$(declare -p "$1" 2> /dev/null); then + case "${type#* }" in + -A*) + echo "appendToVar(): ERROR: trying to use appendToVar on an associative array, use variable+=([\"X\"]=\"Y\") instead." 1>&2; + return 1 + ;; + -a*) + useArray=true + ;; + *) + useArray=false + ;; + esac; + fi; + shift; + if $useArray; then + nameref=(${nameref+"${nameref[@]}"} "$@"); + else + nameref="${nameref-} $*"; + fi +} +auditTmpdir () +{ + + local dir="$1"; + [ -e "$dir" ] || return 0; + echo "checking for references to $TMPDIR/ in $dir..."; + local tmpdir elf_fifo script_fifo; + tmpdir="$(mktemp -d)"; + elf_fifo="$tmpdir/elf"; + script_fifo="$tmpdir/script"; + mkfifo "$elf_fifo" "$script_fifo"; + ( find "$dir" -type f -not -path '*/.build-id/*' -print0 | while IFS= read -r -d '' file; do + if isELF "$file"; then + printf '%s\0' "$file" 1>&3; + else + if isScript "$file"; then + filename=${file##*/}; + dir=${file%/*}; + if [ -e "$dir/.$filename-wrapped" ]; then + printf '%s\0' "$file" 1>&4; + fi; + fi; + fi; + done; + exec 3>&- 4>&- ) 3> "$elf_fifo" 4> "$script_fifo" & ( xargs -0 -r -P "$NIX_BUILD_CORES" -n 1 sh -c ' + if { printf :; patchelf --print-rpath "$1"; } | grep -q -F ":$TMPDIR/"; then + echo "RPATH of binary $1 contains a forbidden reference to $TMPDIR/" + exit 1 + fi + ' _ < "$elf_fifo" ) & local pid_elf=$!; + local pid_script; + ( xargs -0 -r -P "$NIX_BUILD_CORES" -n 1 sh -c ' + if grep -q -F "$TMPDIR/" "$1"; then + echo "wrapper script $1 contains a forbidden reference to $TMPDIR/" + exit 1 + fi + ' _ < "$script_fifo" ) & local pid_script=$!; + wait "$pid_elf" || { + echo "Some binaries contain forbidden references to $TMPDIR/. Check the error above!"; + exit 1 + }; + wait "$pid_script" || { + echo "Some scripts contain forbidden references to $TMPDIR/. Check the error above!"; + exit 1 + }; + rm -r "$tmpdir" +} +bintoolsWrapper_addLDVars () +{ + + local role_post; + getHostRoleEnvHook; + if [[ -d "$1/lib64" && ! -L "$1/lib64" ]]; then + export NIX_LDFLAGS${role_post}+=" -L$1/lib64"; + fi; + if [[ -d "$1/lib" ]]; then + local -a glob=($1/lib/lib*); + if [ "${#glob[*]}" -gt 0 ]; then + export NIX_LDFLAGS${role_post}+=" -L$1/lib"; + fi; + fi +} +buildPhase () +{ + + runHook preBuild; + if [[ -z "${makeFlags-}" && -z "${makefile:-}" && ! ( -e Makefile || -e makefile || -e GNUmakefile ) ]]; then + echo "no Makefile or custom buildPhase, doing nothing"; + else + foundMakefile=1; + local flagsArray=(${enableParallelBuilding:+-j${NIX_BUILD_CORES}} SHELL="$SHELL"); + concatTo flagsArray makeFlags makeFlagsArray buildFlags buildFlagsArray; + echoCmd 'build flags' "${flagsArray[@]}"; + make ${makefile:+-f $makefile} "${flagsArray[@]}"; + unset flagsArray; + fi; + runHook postBuild +} +ccWrapper_addCVars () +{ + + local role_post; + getHostRoleEnvHook; + local found=; + if [ -d "$1/include" ]; then + export NIX_CFLAGS_COMPILE${role_post}+=" -isystem $1/include"; + found=1; + fi; + if [ -d "$1/Library/Frameworks" ]; then + export NIX_CFLAGS_COMPILE${role_post}+=" -iframework $1/Library/Frameworks"; + found=1; + fi; + if [[ -n "1" && -n ${NIX_STORE:-} && -n $found ]]; then + local scrubbed="$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-${1#"$NIX_STORE"/*-}"; + export NIX_CFLAGS_COMPILE${role_post}+=" -fmacro-prefix-map=$1=$scrubbed"; + fi +} +checkPhase () +{ + + runHook preCheck; + if [[ -z "${foundMakefile:-}" ]]; then + echo "no Makefile or custom checkPhase, doing nothing"; + runHook postCheck; + return; + fi; + if [[ -z "${checkTarget:-}" ]]; then + if make -n ${makefile:+-f $makefile} check > /dev/null 2>&1; then + checkTarget="check"; + else + if make -n ${makefile:+-f $makefile} test > /dev/null 2>&1; then + checkTarget="test"; + fi; + fi; + fi; + if [[ -z "${checkTarget:-}" ]]; then + echo "no check/test target in ${makefile:-Makefile}, doing nothing"; + else + local flagsArray=(${enableParallelChecking:+-j${NIX_BUILD_CORES}} SHELL="$SHELL"); + concatTo flagsArray makeFlags makeFlagsArray checkFlags=VERBOSE=y checkFlagsArray checkTarget; + echoCmd 'check flags' "${flagsArray[@]}"; + make ${makefile:+-f $makefile} "${flagsArray[@]}"; + unset flagsArray; + fi; + runHook postCheck +} +compressManPages () +{ + + local dir="$1"; + if [ -L "$dir"/share ] || [ -L "$dir"/share/man ] || [ ! -d "$dir/share/man" ]; then + return; + fi; + echo "gzipping man pages under $dir/share/man/"; + find "$dir"/share/man/ -type f -a '!' -regex '.*\.\(bz2\|gz\|xz\)$' -print0 | xargs -0 -n1 -P "$NIX_BUILD_CORES" gzip -n -f; + find "$dir"/share/man/ -type l -a '!' -regex '.*\.\(bz2\|gz\|xz\)$' -print0 | sort -z | while IFS= read -r -d '' f; do + local target; + target="$(readlink -f "$f")"; + if [ -f "$target".gz ]; then + ln -sf "$target".gz "$f".gz && rm "$f"; + fi; + done +} +concatStringsSep () +{ + + local sep="$1"; + local name="$2"; + local type oldifs; + if type=$(declare -p "$name" 2> /dev/null); then + local -n nameref="$name"; + case "${type#* }" in + -A*) + echo "concatStringsSep(): ERROR: trying to use concatStringsSep on an associative array." 1>&2; + return 1 + ;; + -a*) + local IFS="$(printf '\036')" + ;; + *) + local IFS=" " + ;; + esac; + local ifs_separated="${nameref[*]}"; + echo -n "${ifs_separated//"$IFS"/"$sep"}"; + fi +} +concatTo () +{ + + local -; + set -o noglob; + local -n targetref="$1"; + shift; + local arg default name type; + for arg in "$@"; + do + IFS="=" read -r name default <<< "$arg"; + local -n nameref="$name"; + if [[ -z "${nameref[*]}" && -n "$default" ]]; then + targetref+=("$default"); + else + if type=$(declare -p "$name" 2> /dev/null); then + case "${type#* }" in + -A*) + echo "concatTo(): ERROR: trying to use concatTo on an associative array." 1>&2; + return 1 + ;; + -a*) + targetref+=("${nameref[@]}") + ;; + *) + if [[ "$name" = *"Array" ]]; then + nixErrorLog "concatTo(): $name is not declared as array, treating as a singleton. This will become an error in future"; + targetref+=(${nameref+"${nameref[@]}"}); + else + targetref+=(${nameref-}); + fi + ;; + esac; + fi; + fi; + done +} +configurePhase () +{ + + runHook preConfigure; + : "${configureScript=}"; + if [[ -z "$configureScript" && -x ./configure ]]; then + configureScript=./configure; + fi; + if [ -z "${dontFixLibtool:-}" ]; then + export lt_cv_deplibs_check_method="${lt_cv_deplibs_check_method-pass_all}"; + local i; + find . -iname "ltmain.sh" -print0 | while IFS='' read -r -d '' i; do + echo "fixing libtool script $i"; + fixLibtool "$i"; + done; + CONFIGURE_MTIME_REFERENCE=$(mktemp configure.mtime.reference.XXXXXX); + find . -executable -type f -name configure -exec grep -l 'GNU Libtool is free software; you can redistribute it and/or modify' {} \; -exec touch -r {} "$CONFIGURE_MTIME_REFERENCE" \; -exec sed -i s_/usr/bin/file_file_g {} \; -exec touch -r "$CONFIGURE_MTIME_REFERENCE" {} \;; + rm -f "$CONFIGURE_MTIME_REFERENCE"; + fi; + if [[ -z "${dontAddPrefix:-}" && -n "$prefix" ]]; then + local -r prefixKeyOrDefault="${prefixKey:---prefix=}"; + if [ "${prefixKeyOrDefault: -1}" = " " ]; then + prependToVar configureFlags "$prefix"; + prependToVar configureFlags "${prefixKeyOrDefault::-1}"; + else + prependToVar configureFlags "$prefixKeyOrDefault$prefix"; + fi; + fi; + if [[ -f "$configureScript" ]]; then + if [ -z "${dontAddDisableDepTrack:-}" ]; then + if grep -q dependency-tracking "$configureScript"; then + prependToVar configureFlags --disable-dependency-tracking; + fi; + fi; + if [ -z "${dontDisableStatic:-}" ]; then + if grep -q enable-static "$configureScript"; then + prependToVar configureFlags --disable-static; + fi; + fi; + if [ -z "${dontPatchShebangsInConfigure:-}" ]; then + patchShebangs --build "$configureScript"; + fi; + fi; + if [ -n "$configureScript" ]; then + local -a flagsArray; + concatTo flagsArray configureFlags configureFlagsArray; + echoCmd 'configure flags' "${flagsArray[@]}"; + $configureScript "${flagsArray[@]}"; + unset flagsArray; + else + echo "no configure script, doing nothing"; + fi; + runHook postConfigure +} +consumeEntire () +{ + + if IFS='' read -r -d '' "$1"; then + echo "consumeEntire(): ERROR: Input null bytes, won't process" 1>&2; + return 1; + fi +} +definePhases () +{ + + if [ -z "${phases[*]:-}" ]; then + phases="${prePhases[*]:-} unpackPhase patchPhase ${preConfigurePhases[*]:-} configurePhase ${preBuildPhases[*]:-} buildPhase checkPhase ${preInstallPhases[*]:-} installPhase ${preFixupPhases[*]:-} fixupPhase installCheckPhase ${preDistPhases[*]:-} distPhase ${postPhases[*]:-}"; + fi +} +distPhase () +{ + + runHook preDist; + local flagsArray=(); + concatTo flagsArray distFlags distFlagsArray distTarget=dist; + echo 'dist flags: %q' "${flagsArray[@]}"; + make ${makefile:+-f $makefile} "${flagsArray[@]}"; + if [ "${dontCopyDist:-0}" != 1 ]; then + mkdir -p "$out/tarballs"; + cp -pvd ${tarballs[*]:-*.tar.gz} "$out/tarballs"; + fi; + runHook postDist +} +dumpVars () +{ + + if [[ "${noDumpEnvVars:-0}" != 1 && -d "$NIX_BUILD_TOP" ]]; then + local old_umask; + old_umask=$(umask); + umask 0077; + export 2> /dev/null > "$NIX_BUILD_TOP/env-vars"; + umask "$old_umask"; + fi +} +echoCmd () +{ + + printf "%s:" "$1"; + shift; + printf ' %q' "$@"; + echo +} +exitHandler () +{ + + exitCode="$?"; + set +e; + if [ -n "${showBuildStats:-}" ]; then + read -r -d '' -a buildTimes < <(times); + echo "build times:"; + echo "user time for the shell ${buildTimes[0]}"; + echo "system time for the shell ${buildTimes[1]}"; + echo "user time for all child processes ${buildTimes[2]}"; + echo "system time for all child processes ${buildTimes[3]}"; + fi; + if (( "$exitCode" != 0 )); then + runHook failureHook; + if [ -n "${succeedOnFailure:-}" ]; then + echo "build failed with exit code $exitCode (ignored)"; + mkdir -p "$out/nix-support"; + printf "%s" "$exitCode" > "$out/nix-support/failed"; + exit 0; + fi; + else + runHook exitHook; + fi; + return "$exitCode" +} +findInputs () +{ + + local -r pkg="$1"; + local -r hostOffset="$2"; + local -r targetOffset="$3"; + (( hostOffset <= targetOffset )) || exit 1; + local varVar="${pkgAccumVarVars[hostOffset + 1]}"; + local varRef="$varVar[$((targetOffset - hostOffset))]"; + local var="${!varRef}"; + unset -v varVar varRef; + local varSlice="$var[*]"; + case " ${!varSlice-} " in + *" $pkg "*) + return 0 + ;; + esac; + unset -v varSlice; + eval "$var"'+=("$pkg")'; + if ! [ -e "$pkg" ]; then + echo "build input $pkg does not exist" 1>&2; + exit 1; + fi; + function mapOffset () + { + local -r inputOffset="$1"; + local -n outputOffset="$2"; + if (( inputOffset <= 0 )); then + outputOffset=$((inputOffset + hostOffset)); + else + outputOffset=$((inputOffset - 1 + targetOffset)); + fi + }; + local relHostOffset; + for relHostOffset in "${allPlatOffsets[@]}"; + do + local files="${propagatedDepFilesVars[relHostOffset + 1]}"; + local hostOffsetNext; + mapOffset "$relHostOffset" hostOffsetNext; + (( -1 <= hostOffsetNext && hostOffsetNext <= 1 )) || continue; + local relTargetOffset; + for relTargetOffset in "${allPlatOffsets[@]}"; + do + (( "$relHostOffset" <= "$relTargetOffset" )) || continue; + local fileRef="${files}[$relTargetOffset - $relHostOffset]"; + local file="${!fileRef}"; + unset -v fileRef; + local targetOffsetNext; + mapOffset "$relTargetOffset" targetOffsetNext; + (( -1 <= hostOffsetNext && hostOffsetNext <= 1 )) || continue; + [[ -f "$pkg/nix-support/$file" ]] || continue; + local pkgNext; + read -r -d '' pkgNext < "$pkg/nix-support/$file" || true; + for pkgNext in $pkgNext; + do + findInputs "$pkgNext" "$hostOffsetNext" "$targetOffsetNext"; + done; + done; + done +} +fixLibtool () +{ + + local search_path; + for flag in $NIX_LDFLAGS; + do + case $flag in + -L*) + search_path+=" ${flag#-L}" + ;; + esac; + done; + sed -i "$1" -e "s^eval \(sys_lib_search_path=\).*^\1'${search_path:-}'^" -e 's^eval sys_lib_.+search_path=.*^^' +} +fixupPhase () +{ + + local output; + for output in $(getAllOutputNames); + do + if [ -e "${!output}" ]; then + chmod -R u+w,u-s,g-s "${!output}"; + fi; + done; + runHook preFixup; + local output; + for output in $(getAllOutputNames); + do + prefix="${!output}" runHook fixupOutput; + done; + recordPropagatedDependencies; + if [ -n "${setupHook:-}" ]; then + mkdir -p "${!outputDev}/nix-support"; + substituteAll "$setupHook" "${!outputDev}/nix-support/setup-hook"; + fi; + if [ -n "${setupHooks:-}" ]; then + mkdir -p "${!outputDev}/nix-support"; + local hook; + for hook in ${setupHooks[@]}; + do + local content; + consumeEntire content < "$hook"; + substituteAllStream content "file '$hook'" >> "${!outputDev}/nix-support/setup-hook"; + unset -v content; + done; + unset -v hook; + fi; + if [ -n "${propagatedUserEnvPkgs[*]:-}" ]; then + mkdir -p "${!outputBin}/nix-support"; + printWords "${propagatedUserEnvPkgs[@]}" > "${!outputBin}/nix-support/propagated-user-env-packages"; + fi; + runHook postFixup +} +genericBuild () +{ + + export GZIP_NO_TIMESTAMPS=1; + if [ -f "${buildCommandPath:-}" ]; then + source "$buildCommandPath"; + return; + fi; + if [ -n "${buildCommand:-}" ]; then + eval "$buildCommand"; + return; + fi; + definePhases; + for curPhase in ${phases[*]}; + do + runPhase "$curPhase"; + done +} +getAllOutputNames () +{ + + if [ -n "$__structuredAttrs" ]; then + echo "${!outputs[*]}"; + else + echo "$outputs"; + fi +} +getHostRole () +{ + + getRole "$hostOffset" +} +getHostRoleEnvHook () +{ + + getRole "$depHostOffset" +} +getRole () +{ + + case $1 in + -1) + role_post='_FOR_BUILD' + ;; + 0) + role_post='' + ;; + 1) + role_post='_FOR_TARGET' + ;; + *) + echo "apple-sdk-14.4: used as improper sort of dependency" 1>&2; + return 1 + ;; + esac +} +getTargetRole () +{ + + getRole "$targetOffset" +} +getTargetRoleEnvHook () +{ + + getRole "$depTargetOffset" +} +getTargetRoleWrapper () +{ + + case $targetOffset in + -1) + export NIX_@wrapperName@_TARGET_BUILD_@suffixSalt@=1 + ;; + 0) + export NIX_@wrapperName@_TARGET_HOST_@suffixSalt@=1 + ;; + 1) + export NIX_@wrapperName@_TARGET_TARGET_@suffixSalt@=1 + ;; + *) + echo "apple-sdk-14.4: used as improper sort of dependency" 1>&2; + return 1 + ;; + esac +} +installCheckPhase () +{ + + runHook preInstallCheck; + if [[ -z "${foundMakefile:-}" ]]; then + echo "no Makefile or custom installCheckPhase, doing nothing"; + else + if [[ -z "${installCheckTarget:-}" ]] && ! make -n ${makefile:+-f $makefile} "${installCheckTarget:-installcheck}" > /dev/null 2>&1; then + echo "no installcheck target in ${makefile:-Makefile}, doing nothing"; + else + local flagsArray=(${enableParallelChecking:+-j${NIX_BUILD_CORES}} SHELL="$SHELL"); + concatTo flagsArray makeFlags makeFlagsArray installCheckFlags installCheckFlagsArray installCheckTarget=installcheck; + echoCmd 'installcheck flags' "${flagsArray[@]}"; + make ${makefile:+-f $makefile} "${flagsArray[@]}"; + unset flagsArray; + fi; + fi; + runHook postInstallCheck +} +installPhase () +{ + + runHook preInstall; + if [[ -z "${makeFlags-}" && -z "${makefile:-}" && ! ( -e Makefile || -e makefile || -e GNUmakefile ) ]]; then + echo "no Makefile or custom installPhase, doing nothing"; + runHook postInstall; + return; + else + foundMakefile=1; + fi; + if [ -n "$prefix" ]; then + mkdir -p "$prefix"; + fi; + local flagsArray=(${enableParallelInstalling:+-j${NIX_BUILD_CORES}} SHELL="$SHELL"); + concatTo flagsArray makeFlags makeFlagsArray installFlags installFlagsArray installTargets=install; + echoCmd 'install flags' "${flagsArray[@]}"; + make ${makefile:+-f $makefile} "${flagsArray[@]}"; + unset flagsArray; + runHook postInstall +} +isELF () +{ + + local fn="$1"; + local fd; + local magic; + exec {fd}< "$fn"; + LANG=C read -r -n 4 -u "$fd" magic; + exec {fd}>&-; + if [ "$magic" = 'ELF' ]; then + return 0; + else + return 1; + fi +} +isMachO () +{ + + local fn="$1"; + local fd; + local magic; + exec {fd}< "$fn"; + LANG=C read -r -n 4 -u "$fd" magic; + exec {fd}>&-; + if [[ "$magic" = $(echo -ne "\xfe\xed\xfa\xcf") || "$magic" = $(echo -ne "\xcf\xfa\xed\xfe") ]]; then + return 0; + else + if [[ "$magic" = $(echo -ne "\xfe\xed\xfa\xce") || "$magic" = $(echo -ne "\xce\xfa\xed\xfe") ]]; then + return 0; + else + if [[ "$magic" = $(echo -ne "\xca\xfe\xba\xbe") || "$magic" = $(echo -ne "\xbe\xba\xfe\xca") ]]; then + return 0; + else + return 1; + fi; + fi; + fi +} +isScript () +{ + + local fn="$1"; + local fd; + local magic; + exec {fd}< "$fn"; + LANG=C read -r -n 2 -u "$fd" magic; + exec {fd}>&-; + if [[ "$magic" =~ \#! ]]; then + return 0; + else + return 1; + fi +} +mapOffset () +{ + + local -r inputOffset="$1"; + local -n outputOffset="$2"; + if (( inputOffset <= 0 )); then + outputOffset=$((inputOffset + hostOffset)); + else + outputOffset=$((inputOffset - 1 + targetOffset)); + fi +} +moveToOutput () +{ + + local patt="$1"; + local dstOut="$2"; + local output; + for output in $(getAllOutputNames); + do + if [ "${!output}" = "$dstOut" ]; then + continue; + fi; + local srcPath; + for srcPath in "${!output}"/$patt; + do + if [ ! -e "$srcPath" ] && [ ! -L "$srcPath" ]; then + continue; + fi; + if [ "$dstOut" = REMOVE ]; then + echo "Removing $srcPath"; + rm -r "$srcPath"; + else + local dstPath="$dstOut${srcPath#${!output}}"; + echo "Moving $srcPath to $dstPath"; + if [ -d "$dstPath" ] && [ -d "$srcPath" ]; then + rmdir "$srcPath" --ignore-fail-on-non-empty; + if [ -d "$srcPath" ]; then + mv -t "$dstPath" "$srcPath"/*; + rmdir "$srcPath"; + fi; + else + mkdir -p "$(readlink -m "$dstPath/..")"; + mv "$srcPath" "$dstPath"; + fi; + fi; + local srcParent="$(readlink -m "$srcPath/..")"; + if [ -n "$(find "$srcParent" -maxdepth 0 -type d -empty 2> /dev/null)" ]; then + echo "Removing empty $srcParent/ and (possibly) its parents"; + rmdir -p --ignore-fail-on-non-empty "$srcParent" 2> /dev/null || true; + fi; + done; + done +} +nixChattyLog () +{ + + _nixLogWithLevel 5 "$*" +} +nixDebugLog () +{ + + _nixLogWithLevel 6 "$*" +} +nixErrorLog () +{ + + _nixLogWithLevel 0 "$*" +} +nixInfoLog () +{ + + _nixLogWithLevel 3 "$*" +} +nixLog () +{ + + [[ -z ${NIX_LOG_FD-} ]] && return 0; + local callerName="${FUNCNAME[1]}"; + if [[ $callerName == "_callImplicitHook" ]]; then + callerName="${hookName:?}"; + fi; + printf "%s: %s\n" "$callerName" "$*" >&"$NIX_LOG_FD" +} +nixNoticeLog () +{ + + _nixLogWithLevel 2 "$*" +} +nixTalkativeLog () +{ + + _nixLogWithLevel 4 "$*" +} +nixVomitLog () +{ + + _nixLogWithLevel 7 "$*" +} +nixWarnLog () +{ + + _nixLogWithLevel 1 "$*" +} +noBrokenSymlinks () +{ + + local -r output="${1:?}"; + local path; + local pathParent; + local symlinkTarget; + local -i numDanglingSymlinks=0; + local -i numReflexiveSymlinks=0; + local -i numUnreadableSymlinks=0; + if [[ ! -e $output ]]; then + nixWarnLog "skipping non-existent output $output"; + return 0; + fi; + nixInfoLog "running on $output"; + while IFS= read -r -d '' path; do + pathParent="$(dirname "$path")"; + if ! symlinkTarget="$(readlink "$path")"; then + nixErrorLog "the symlink $path is unreadable"; + numUnreadableSymlinks+=1; + continue; + fi; + if [[ $symlinkTarget == /* ]]; then + nixInfoLog "symlink $path points to absolute target $symlinkTarget"; + else + nixInfoLog "symlink $path points to relative target $symlinkTarget"; + symlinkTarget="$(realpath --no-symlinks --canonicalize-missing "$pathParent/$symlinkTarget")"; + fi; + if [[ $symlinkTarget = "$TMPDIR"/* ]]; then + nixErrorLog "the symlink $path points to $TMPDIR directory: $symlinkTarget"; + numDanglingSymlinks+=1; + continue; + fi; + if [[ $symlinkTarget != "$NIX_STORE"/* ]]; then + nixInfoLog "symlink $path points outside the Nix store; ignoring"; + continue; + fi; + if [[ $path == "$symlinkTarget" ]]; then + nixErrorLog "the symlink $path is reflexive"; + numReflexiveSymlinks+=1; + else + if [[ ! -e $symlinkTarget ]]; then + nixErrorLog "the symlink $path points to a missing target: $symlinkTarget"; + numDanglingSymlinks+=1; + else + nixDebugLog "the symlink $path is irreflexive and points to a target which exists"; + fi; + fi; + done < <(find "$output" -type l -print0); + if ((numDanglingSymlinks > 0 || numReflexiveSymlinks > 0 || numUnreadableSymlinks > 0)); then + nixErrorLog "found $numDanglingSymlinks dangling symlinks, $numReflexiveSymlinks reflexive symlinks and $numUnreadableSymlinks unreadable symlinks"; + exit 1; + fi; + return 0 +} +noBrokenSymlinksInAllOutputs () +{ + + if [[ -z ${dontCheckForBrokenSymlinks-} ]]; then + for output in $(getAllOutputNames); + do + noBrokenSymlinks "${!output}"; + done; + fi +} +patchPhase () +{ + + runHook prePatch; + local -a patchesArray; + concatTo patchesArray patches; + local -a flagsArray; + concatTo flagsArray patchFlags=-p1; + for i in "${patchesArray[@]}"; + do + echo "applying patch $i"; + local uncompress=cat; + case "$i" in + *.gz) + uncompress="gzip -d" + ;; + *.bz2) + uncompress="bzip2 -d" + ;; + *.xz) + uncompress="xz -d" + ;; + *.lzma) + uncompress="lzma -d" + ;; + esac; + $uncompress < "$i" 2>&1 | patch "${flagsArray[@]}"; + done; + runHook postPatch +} +patchShebangs () +{ + + local pathName; + local update=false; + while [[ $# -gt 0 ]]; do + case "$1" in + --host) + pathName=HOST_PATH; + shift + ;; + --build) + pathName=PATH; + shift + ;; + --update) + update=true; + shift + ;; + --) + shift; + break + ;; + -* | --*) + echo "Unknown option $1 supplied to patchShebangs" 1>&2; + return 1 + ;; + *) + break + ;; + esac; + done; + echo "patching script interpreter paths in $@"; + local f; + local oldPath; + local newPath; + local arg0; + local args; + local oldInterpreterLine; + local newInterpreterLine; + if [[ $# -eq 0 ]]; then + echo "No arguments supplied to patchShebangs" 1>&2; + return 0; + fi; + local f; + while IFS= read -r -d '' f; do + isScript "$f" || continue; + read -r oldInterpreterLine < "$f" || [ "$oldInterpreterLine" ]; + read -r oldPath arg0 args <<< "${oldInterpreterLine:2}"; + if [[ -z "${pathName:-}" ]]; then + if [[ -n $strictDeps && $f == "$NIX_STORE"* ]]; then + pathName=HOST_PATH; + else + pathName=PATH; + fi; + fi; + if [[ "$oldPath" == *"/bin/env" ]]; then + if [[ $arg0 == "-S" ]]; then + arg0=${args%% *}; + [[ "$args" == *" "* ]] && args=${args#* } || args=; + newPath="$(PATH="${!pathName}" type -P "env" || true)"; + args="-S $(PATH="${!pathName}" type -P "$arg0" || true) $args"; + else + if [[ $arg0 == "-"* || $arg0 == *"="* ]]; then + echo "$f: unsupported interpreter directive \"$oldInterpreterLine\" (set dontPatchShebangs=1 and handle shebang patching yourself)" 1>&2; + exit 1; + else + newPath="$(PATH="${!pathName}" type -P "$arg0" || true)"; + fi; + fi; + else + if [[ -z $oldPath ]]; then + oldPath="/bin/sh"; + fi; + newPath="$(PATH="${!pathName}" type -P "$(basename "$oldPath")" || true)"; + args="$arg0 $args"; + fi; + newInterpreterLine="$newPath $args"; + newInterpreterLine=${newInterpreterLine%${newInterpreterLine##*[![:space:]]}}; + if [[ -n "$oldPath" && ( "$update" == true || "${oldPath:0:${#NIX_STORE}}" != "$NIX_STORE" ) ]]; then + if [[ -n "$newPath" && "$newPath" != "$oldPath" ]]; then + echo "$f: interpreter directive changed from \"$oldInterpreterLine\" to \"$newInterpreterLine\""; + escapedInterpreterLine=${newInterpreterLine//\\/\\\\}; + timestamp=$(stat --printf "%y" "$f"); + tmpFile=$(mktemp -t patchShebangs.XXXXXXXXXX); + sed -e "1 s|.*|#\!$escapedInterpreterLine|" "$f" > "$tmpFile"; + local restoreReadOnly; + if [[ ! -w "$f" ]]; then + chmod +w "$f"; + restoreReadOnly=true; + fi; + cat "$tmpFile" > "$f"; + rm "$tmpFile"; + if [[ -n "${restoreReadOnly:-}" ]]; then + chmod -w "$f"; + fi; + touch --date "$timestamp" "$f"; + fi; + fi; + done < <(find "$@" -type f -perm -0100 -print0) +} +patchShebangsAuto () +{ + + if [[ -z "${dontPatchShebangs-}" && -e "$prefix" ]]; then + if [[ "$output" != out && "$output" = "$outputDev" ]]; then + patchShebangs --build "$prefix"; + else + patchShebangs --host "$prefix"; + fi; + fi +} +pkgConfigWrapper_addPkgConfigPath () +{ + + local role_post; + getHostRoleEnvHook; + addToSearchPath "PKG_CONFIG_PATH${role_post}" "$1/lib/pkgconfig"; + addToSearchPath "PKG_CONFIG_PATH${role_post}" "$1/share/pkgconfig" +} +prependToVar () +{ + + local -n nameref="$1"; + local useArray type; + if [ -n "$__structuredAttrs" ]; then + useArray=true; + else + useArray=false; + fi; + if type=$(declare -p "$1" 2> /dev/null); then + case "${type#* }" in + -A*) + echo "prependToVar(): ERROR: trying to use prependToVar on an associative array." 1>&2; + return 1 + ;; + -a*) + useArray=true + ;; + *) + useArray=false + ;; + esac; + fi; + shift; + if $useArray; then + nameref=("$@" ${nameref+"${nameref[@]}"}); + else + nameref="$* ${nameref-}"; + fi +} +printLines () +{ + + (( "$#" > 0 )) || return 0; + printf '%s\n' "$@" +} +printPhases () +{ + + definePhases; + local phase; + for phase in ${phases[*]}; + do + printf '%s\n' "$phase"; + done +} +printWords () +{ + + (( "$#" > 0 )) || return 0; + printf '%s ' "$@" +} +recordPropagatedDependencies () +{ + + declare -ra flatVars=(depsBuildBuildPropagated propagatedNativeBuildInputs depsBuildTargetPropagated depsHostHostPropagated propagatedBuildInputs depsTargetTargetPropagated); + declare -ra flatFiles=("${propagatedBuildDepFiles[@]}" "${propagatedHostDepFiles[@]}" "${propagatedTargetDepFiles[@]}"); + local propagatedInputsIndex; + for propagatedInputsIndex in "${!flatVars[@]}"; + do + local propagatedInputsSlice="${flatVars[$propagatedInputsIndex]}[@]"; + local propagatedInputsFile="${flatFiles[$propagatedInputsIndex]}"; + [[ -n "${!propagatedInputsSlice}" ]] || continue; + mkdir -p "${!outputDev}/nix-support"; + printWords ${!propagatedInputsSlice} > "${!outputDev}/nix-support/$propagatedInputsFile"; + done +} +runHook () +{ + + local hookName="$1"; + shift; + local hooksSlice="${hookName%Hook}Hooks[@]"; + local hook; + for hook in "_callImplicitHook 0 $hookName" ${!hooksSlice+"${!hooksSlice}"}; + do + _logHook "$hookName" "$hook" "$@"; + _eval "$hook" "$@"; + done; + return 0 +} +runOneHook () +{ + + local hookName="$1"; + shift; + local hooksSlice="${hookName%Hook}Hooks[@]"; + local hook ret=1; + for hook in "_callImplicitHook 1 $hookName" ${!hooksSlice+"${!hooksSlice}"}; + do + _logHook "$hookName" "$hook" "$@"; + if _eval "$hook" "$@"; then + ret=0; + break; + fi; + done; + return "$ret" +} +runPhase () +{ + + local curPhase="$*"; + if [[ "$curPhase" = unpackPhase && -n "${dontUnpack:-}" ]]; then + return; + fi; + if [[ "$curPhase" = patchPhase && -n "${dontPatch:-}" ]]; then + return; + fi; + if [[ "$curPhase" = configurePhase && -n "${dontConfigure:-}" ]]; then + return; + fi; + if [[ "$curPhase" = buildPhase && -n "${dontBuild:-}" ]]; then + return; + fi; + if [[ "$curPhase" = checkPhase && -z "${doCheck:-}" ]]; then + return; + fi; + if [[ "$curPhase" = installPhase && -n "${dontInstall:-}" ]]; then + return; + fi; + if [[ "$curPhase" = fixupPhase && -n "${dontFixup:-}" ]]; then + return; + fi; + if [[ "$curPhase" = installCheckPhase && -z "${doInstallCheck:-}" ]]; then + return; + fi; + if [[ "$curPhase" = distPhase && -z "${doDist:-}" ]]; then + return; + fi; + showPhaseHeader "$curPhase"; + dumpVars; + local startTime endTime; + startTime=$(date +"%s"); + eval "${!curPhase:-$curPhase}"; + endTime=$(date +"%s"); + showPhaseFooter "$curPhase" "$startTime" "$endTime"; + if [ "$curPhase" = unpackPhase ]; then + [ -n "${sourceRoot:-}" ] && chmod +x -- "${sourceRoot}"; + cd -- "${sourceRoot:-.}"; + fi +} +showPhaseFooter () +{ + + local phase="$1"; + local startTime="$2"; + local endTime="$3"; + local delta=$(( endTime - startTime )); + (( delta < 30 )) && return; + local H=$((delta/3600)); + local M=$((delta%3600/60)); + local S=$((delta%60)); + echo -n "$phase completed in "; + (( H > 0 )) && echo -n "$H hours "; + (( M > 0 )) && echo -n "$M minutes "; + echo "$S seconds" +} +showPhaseHeader () +{ + + local phase="$1"; + echo "Running phase: $phase"; + if [[ -z ${NIX_LOG_FD-} ]]; then + return; + fi; + printf "@nix { \"action\": \"setPhase\", \"phase\": \"%s\" }\n" "$phase" >&"$NIX_LOG_FD" +} +stripDirs () +{ + + local cmd="$1"; + local ranlibCmd="$2"; + local paths="$3"; + local stripFlags="$4"; + local excludeFlags=(); + local pathsNew=; + [ -z "$cmd" ] && echo "stripDirs: Strip command is empty" 1>&2 && exit 1; + [ -z "$ranlibCmd" ] && echo "stripDirs: Ranlib command is empty" 1>&2 && exit 1; + local pattern; + if [ -n "${stripExclude:-}" ]; then + for pattern in "${stripExclude[@]}"; + do + excludeFlags+=(-a '!' '(' -name "$pattern" -o -wholename "$prefix/$pattern" ')'); + done; + fi; + local p; + for p in ${paths}; + do + if [ -e "$prefix/$p" ]; then + pathsNew="${pathsNew} $prefix/$p"; + fi; + done; + paths=${pathsNew}; + if [ -n "${paths}" ]; then + echo "stripping (with command $cmd and flags $stripFlags) in $paths"; + local striperr; + striperr="$(mktemp --tmpdir="$TMPDIR" 'striperr.XXXXXX')"; + find $paths -type f "${excludeFlags[@]}" -a '!' -path "$prefix/lib/debug/*" -printf '%D-%i,%p\0' | sort -t, -k1,1 -u -z | cut -d, -f2- -z | xargs -r -0 -n1 -P "$NIX_BUILD_CORES" -- $cmd $stripFlags 2> "$striperr" || exit_code=$?; + [[ "$exit_code" = 123 || -z "$exit_code" ]] || ( cat "$striperr" 1>&2 && exit 1 ); + rm "$striperr"; + find $paths -name '*.a' -type f -exec $ranlibCmd '{}' \; 2> /dev/null; + fi +} +stripHash () +{ + + local strippedName casematchOpt=0; + strippedName="$(basename -- "$1")"; + shopt -q nocasematch && casematchOpt=1; + shopt -u nocasematch; + if [[ "$strippedName" =~ ^[a-z0-9]{32}- ]]; then + echo "${strippedName:33}"; + else + echo "$strippedName"; + fi; + if (( casematchOpt )); then + shopt -s nocasematch; + fi +} +substitute () +{ + + local input="$1"; + local output="$2"; + shift 2; + if [ ! -f "$input" ]; then + echo "substitute(): ERROR: file '$input' does not exist" 1>&2; + return 1; + fi; + local content; + consumeEntire content < "$input"; + if [ -e "$output" ]; then + chmod +w "$output"; + fi; + substituteStream content "file '$input'" "$@" > "$output" +} +substituteAll () +{ + + local input="$1"; + local output="$2"; + local -a args=(); + _allFlags; + substitute "$input" "$output" "${args[@]}" +} +substituteAllInPlace () +{ + + local fileName="$1"; + shift; + substituteAll "$fileName" "$fileName" "$@" +} +substituteAllStream () +{ + + local -a args=(); + _allFlags; + substituteStream "$1" "$2" "${args[@]}" +} +substituteInPlace () +{ + + local -a fileNames=(); + for arg in "$@"; + do + if [[ "$arg" = "--"* ]]; then + break; + fi; + fileNames+=("$arg"); + shift; + done; + if ! [[ "${#fileNames[@]}" -gt 0 ]]; then + echo "substituteInPlace called without any files to operate on (files must come before options!)" 1>&2; + return 1; + fi; + for file in "${fileNames[@]}"; + do + substitute "$file" "$file" "$@"; + done +} +substituteStream () +{ + + local var=$1; + local description=$2; + shift 2; + while (( "$#" )); do + local replace_mode="$1"; + case "$1" in + --replace) + if ! "$_substituteStream_has_warned_replace_deprecation"; then + echo "substituteStream() in derivation $name: WARNING: '--replace' is deprecated, use --replace-{fail,warn,quiet}. ($description)" 1>&2; + _substituteStream_has_warned_replace_deprecation=true; + fi; + replace_mode='--replace-warn' + ;& + --replace-quiet | --replace-warn | --replace-fail) + pattern="$2"; + replacement="$3"; + shift 3; + if ! [[ "${!var}" == *"$pattern"* ]]; then + if [ "$replace_mode" == --replace-warn ]; then + printf "substituteStream() in derivation $name: WARNING: pattern %q doesn't match anything in %s\n" "$pattern" "$description" 1>&2; + else + if [ "$replace_mode" == --replace-fail ]; then + printf "substituteStream() in derivation $name: ERROR: pattern %q doesn't match anything in %s\n" "$pattern" "$description" 1>&2; + return 1; + fi; + fi; + fi; + eval "$var"'=${'"$var"'//"$pattern"/"$replacement"}' + ;; + --subst-var) + local varName="$2"; + shift 2; + if ! [[ "$varName" =~ ^[a-zA-Z_][a-zA-Z0-9_]*$ ]]; then + echo "substituteStream() in derivation $name: ERROR: substitution variables must be valid Bash names, \"$varName\" isn't." 1>&2; + return 1; + fi; + if [ -z ${!varName+x} ]; then + echo "substituteStream() in derivation $name: ERROR: variable \$$varName is unset" 1>&2; + return 1; + fi; + pattern="@$varName@"; + replacement="${!varName}"; + eval "$var"'=${'"$var"'//"$pattern"/"$replacement"}' + ;; + --subst-var-by) + pattern="@$2@"; + replacement="$3"; + eval "$var"'=${'"$var"'//"$pattern"/"$replacement"}'; + shift 3 + ;; + *) + echo "substituteStream() in derivation $name: ERROR: Invalid command line argument: $1" 1>&2; + return 1 + ;; + esac; + done; + printf "%s" "${!var}" +} +unpackFile () +{ + + curSrc="$1"; + echo "unpacking source archive $curSrc"; + if ! runOneHook unpackCmd "$curSrc"; then + echo "do not know how to unpack source archive $curSrc"; + exit 1; + fi +} +unpackPhase () +{ + + runHook preUnpack; + if [ -z "${srcs:-}" ]; then + if [ -z "${src:-}" ]; then + echo 'variable $src or $srcs should point to the source'; + exit 1; + fi; + srcs="$src"; + fi; + local -a srcsArray; + concatTo srcsArray srcs; + local dirsBefore=""; + for i in *; + do + if [ -d "$i" ]; then + dirsBefore="$dirsBefore $i "; + fi; + done; + for i in "${srcsArray[@]}"; + do + unpackFile "$i"; + done; + : "${sourceRoot=}"; + if [ -n "${setSourceRoot:-}" ]; then + runOneHook setSourceRoot; + else + if [ -z "$sourceRoot" ]; then + for i in *; + do + if [ -d "$i" ]; then + case $dirsBefore in + *\ $i\ *) + + ;; + *) + if [ -n "$sourceRoot" ]; then + echo "unpacker produced multiple directories"; + exit 1; + fi; + sourceRoot="$i" + ;; + esac; + fi; + done; + fi; + fi; + if [ -z "$sourceRoot" ]; then + echo "unpacker appears to have produced no directories"; + exit 1; + fi; + echo "source root is $sourceRoot"; + if [ "${dontMakeSourcesWritable:-0}" != 1 ]; then + chmod -R u+w -- "$sourceRoot"; + fi; + runHook postUnpack +} +updateAutotoolsGnuConfigScriptsPhase () +{ + + if [ -n "${dontUpdateAutotoolsGnuConfigScripts-}" ]; then + return; + fi; + for script in config.sub config.guess; + do + for f in $(find . -type f -name "$script"); + do + echo "Updating Autotools / GNU config script to a newer upstream version: $f"; + cp -f "/nix/store/xb4f90wzr6nca7a1wy9ry9p2hvlhhsxx-gnu-config-2024-01-01/$script" "$f"; + done; + done +} +updateSourceDateEpoch () +{ + + local path="$1"; + [[ $path == -* ]] && path="./$path"; + local -a res=($(find "$path" -type f -not -newer "$NIX_BUILD_TOP/.." -printf '%T@ "%p"\0' | sort -n --zero-terminated | tail -n1 --zero-terminated | head -c -1)); + local time="${res[0]//\.[0-9]*/}"; + local newestFile="${res[1]}"; + if [ "${time:-0}" -gt "$SOURCE_DATE_EPOCH" ]; then + echo "setting SOURCE_DATE_EPOCH to timestamp $time of file $newestFile"; + export SOURCE_DATE_EPOCH="$time"; + local now="$(date +%s)"; + if [ "$time" -gt $((now - 60)) ]; then + echo "warning: file $newestFile may be generated; SOURCE_DATE_EPOCH may be non-deterministic"; + fi; + fi +} +PATH="$PATH${nix_saved_PATH:+:$nix_saved_PATH}" +XDG_DATA_DIRS="$XDG_DATA_DIRS${nix_saved_XDG_DATA_DIRS:+:$nix_saved_XDG_DATA_DIRS}" +export NIX_BUILD_TOP="$(mktemp -d -t nix-shell.XXXXXX)" +export TMP="$NIX_BUILD_TOP" +export TMPDIR="$NIX_BUILD_TOP" +export TEMP="$NIX_BUILD_TOP" +export TEMPDIR="$NIX_BUILD_TOP" +eval "${shellHook:-}" diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index c18493b..0000000 --- a/.dockerignore +++ /dev/null @@ -1,8 +0,0 @@ -/dist/ -package-lock.json - -# -src/Tailwind.elm -src/Tailwind -/node_modules/ -*.iml diff --git a/.envrc b/.envrc index 3550a30..117c726 100644 --- a/.envrc +++ b/.envrc @@ -1 +1,17 @@ -use flake +#!/usr/bin/env bash + +if ! has nix_direnv_version || ! nix_direnv_version 3.1.0; then + source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/3.1.0/direnvrc" "sha256-yMJ2OVMzrFaDPn7q8nCBZFRYpL/f0RcHzhmw/i6btJM=" +fi + +export DEVENV_IN_DIRENV_SHELL=true + +watch_file flake.nix +watch_file flake.lock + +mkdir -p "$PWD/.devenv" +DEVENV_ROOT_FILE="$PWD/.devenv/root" +printf %s "$PWD" >"$DEVENV_ROOT_FILE" +if ! use flake . --override-input devenv-root "file+file://$DEVENV_ROOT_FILE"; then + echo "devenv could not be built. The devenv environment was not loaded. Make the necessary changes to devenv.nix and hit enter to try again." >&2 +fi diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml deleted file mode 100644 index 1584754..0000000 --- a/.github/workflows/deploy.yml +++ /dev/null @@ -1,56 +0,0 @@ -name: CI - -on: - push: - branches: - - master - -env: - REGISTRY: ghcr.io - IMAGE_NAME: ${{ github.repository }} - name: devden-web-frontend - -jobs: - push_to_registry: - name: Push Docker image to GitHub Packages - runs-on: ubuntu-latest - permissions: - packages: write - contents: read - steps: - - - name: Check out the repo - uses: actions/checkout@v2 - - - name: Cache Docker layers - uses: actions/cache@v2 - with: - path: /tmp/.buildx-cache - key: ${{ runner.os }}-buildx-${{ github.sha }} - restore-keys: | - ${{ runner.os }}-buildx- - - name: Log in to the Container registry - uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 - with: - registry: ${{ env.REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Extract metadata (tags, labels) for Docker - id: meta - uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38 - with: - images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - tags: | - type=ref,event=branch - type=ref,event=pr - type=semver,pattern={{version}} - type=semver,pattern={{major}}.{{minor}} - - name: Build and push Docker image - uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc - with: - context: . - platforms: linux/amd64 - push: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} diff --git a/.gitignore b/.gitignore index d386d01..ce6402f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,14 +1,5 @@ -/dist/ -package-lock.json -yarn.lock - -# -src/Tailwind.elm -src/Tailwind -/node_modules/ - -.idea +.DS_Store +.elm-spa elm-stuff - -# Macs are stupid sometimes :) -.DS_Store \ No newline at end of file +node_modules +dist \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..69b361b --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "nixEnvSelector.nixFile": "${workspaceFolder}/flake.nix" +} \ No newline at end of file diff --git a/.yarn/install-state.gz b/.yarn/install-state.gz deleted file mode 100644 index af8ffa5bfdee405b75de5446692d00cd7d674d4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 258358 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¥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 Dp&^7! diff --git a/.yarnrc.yml b/.yarnrc.yml deleted file mode 100644 index 3186f3f..0000000 --- a/.yarnrc.yml +++ /dev/null @@ -1 +0,0 @@ -nodeLinker: node-modules diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index faea967..0000000 --- a/Dockerfile +++ /dev/null @@ -1,20 +0,0 @@ -FROM node:alpine as build - -RUN apk add curl - -WORKDIR /app -COPY . /app -RUN yarn - -RUN curl -L -o elm.gz https://github.com/elm/compiler/releases/download/0.19.1/binary-for-linux-64-bit.gz \ - && gunzip elm.gz \ - && chmod +x elm \ - && mv elm /usr/local/bin/ - -RUN yarn build-prod - -FROM nginx:stable-alpine -COPY --from=build /app/dist /usr/share/nginx/html -COPY nginx.conf /etc/nginx/conf.d/default.conf -EXPOSE 80 -CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 3c9a27e..0000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2021 TheDeveloperDen - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/README.MD b/README.MD index ca423fc..23d4401 100644 --- a/README.MD +++ b/README.MD @@ -1,24 +1,28 @@ -# devden-web-frontend - -## Building - -* To automatically recompile Elm files when changes are detected use `yarn watch-elm` -* To build for development run `yarn build` -* To build for production run `yarn build-prod` - -The site is built to `./dist/` - -## TODO - -- [ ] Main page (index), shows information about the organisation with links to the discord server -- [ ] `/xp/leaderboard` - show the top N users in terms of XP and level (can query the API for this). - See https://lb.helpch.at/ for inspiration. Maybe allow parameters like `?size=10` to show the top 10 users. -- [ ] `/stats/` - Shows various graphs with stats about the servers. We can decide on exactly the data we show later, - but we have logs of all user joins, leaves and messages (with user IDs, timestamps, content, etc). -- [ ] `/projects/` - Show information about a various project we have. - Should follow a standard format and show github link, contributors (fetch from github?), and other information. -- [ ] `/faqs` - Show all the FAQs that you'd see in `ddfaq` -- [X] `/rules` - ~~pretty obvious, rules of the server. we can provide these in a json format if it helps~~ -- [ ] `/team` or `/staff` - Show a nice list of admins, mods, contributors to projects, etc -- [ ] `/moderation/` Once the bot gets moderation features it would be very very cool to have a panel - like Dyno or yagpdb have. This probably won't happen for a while. +# my new project +> 🌳 built with [elm-spa](https://elm-spa.dev) + +## dependencies + +This project requires the latest LTS version of [Node.js](https://nodejs.org/) + +```bash +npm install -g elm elm-spa +``` + +## running locally + +```bash +elm-spa server # starts this app at http:/localhost:1234 +``` + +### other commands + +```bash +elm-spa add # add a new page to the application +elm-spa build # production build +elm-spa watch # runs build as you code (without the server) +``` + +## learn more + +You can learn more at [elm-spa.dev](https://elm-spa.dev) \ No newline at end of file diff --git a/elm.json b/elm.json index fbf8402..2edf09c 100644 --- a/elm.json +++ b/elm.json @@ -1,33 +1,27 @@ { "type": "application", "source-directories": [ - "src" + "src", + ".elm-spa/defaults", + ".elm-spa/generated" ], "elm-version": "0.19.1", "dependencies": { "direct": { - "NoRedInk/elm-json-decode-pipeline": "1.0.0", "elm/browser": "1.0.2", "elm/core": "1.0.5", "elm/html": "1.0.0", - "elm/http": "2.0.0", "elm/json": "1.1.3", "elm/url": "1.0.0", - "erlandsona/assoc-set": "1.1.0", - "fapian/elm-html-aria": "1.4.0", - "pablohirafuji/elm-markdown": "2.0.5" + "ryan-haskell/elm-spa": "1.0.0" }, "indirect": { - "elm/bytes": "1.0.8", - "elm/file": "1.0.5", - "elm/regex": "1.0.0", "elm/time": "1.0.0", - "elm/virtual-dom": "1.0.2", - "pzp1997/assoc-list": "1.0.0" + "elm/virtual-dom": "1.0.2" } }, "test-dependencies": { "direct": {}, "indirect": {} } -} +} \ No newline at end of file diff --git a/flake.lock b/flake.lock deleted file mode 100644 index 91a254e..0000000 --- a/flake.lock +++ /dev/null @@ -1,25 +0,0 @@ -{ - "nodes": { - "nixpkgs": { - "locked": { - "lastModified": 1728018373, - "narHash": "sha256-NOiTvBbRLIOe5F6RbHaAh6++BNjsb149fGZd1T4+KBg=", - "rev": "bc947f541ae55e999ffdb4013441347d83b00feb", - "revCount": 688563, - "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.1.688563%2Brev-bc947f541ae55e999ffdb4013441347d83b00feb/01925b66-3b70-71bd-b277-924a6c208ba7/source.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://flakehub.com/f/NixOS/nixpkgs/0.1.%2A.tar.gz" - } - }, - "root": { - "inputs": { - "nixpkgs": "nixpkgs" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/flake.nix b/flake.nix index 16c46b8..3d320f8 100644 --- a/flake.nix +++ b/flake.nix @@ -1,20 +1,60 @@ { - description = "A Nix-flake-based Elm development environment"; - - inputs.nixpkgs.url = "https://flakehub.com/f/NixOS/nixpkgs/0.1.*.tar.gz"; - - outputs = { self, nixpkgs }: - let - supportedSystems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; - forEachSupportedSystem = f: nixpkgs.lib.genAttrs supportedSystems (system: f { - pkgs = import nixpkgs { inherit system; }; - }); - in - { - devShells = forEachSupportedSystem ({ pkgs }: { - default = pkgs.mkShell { - packages = (with pkgs.elmPackages; [ elm ]) ++ (with pkgs; [ elm2nix yarn-berry ]); + description = "Description for the project"; + + inputs = { + devenv-root = { + url = "file+file:///dev/null"; + flake = false; + }; + nixpkgs.url = "github:cachix/devenv-nixpkgs/rolling"; + flake-parts.url = "github:hercules-ci/flake-parts"; + flake-parts.inputs.nixpkgs-lib.follows = "nixpkgs"; + devenv.url = "github:cachix/devenv"; + nix2container.url = "github:nlewo/nix2container"; + nix2container.inputs.nixpkgs.follows = "nixpkgs"; + mk-shell-bin.url = "github:rrbutani/nix-mk-shell-bin"; + }; + + nixConfig = { + extra-trusted-public-keys = "devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw="; + extra-substituters = "https://devenv.cachix.org"; + }; + + outputs = inputs@{ flake-parts, devenv-root, ... }: + flake-parts.lib.mkFlake { inherit inputs; } { + imports = [ + inputs.devenv.flakeModule + ]; + systems = [ "x86_64-linux" "i686-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ]; + + perSystem = { config, self', inputs', pkgs, system, ... }: { + # Per-system attributes can be defined here. The self' and inputs' + # module parameters provide easy access to attributes of the same + # system. + + # Equivalent to inputs'.nixpkgs.legacyPackages.hello; + packages.default = pkgs.hello; + + devenv.shells.default = { + name = "devden-website"; + + imports = [ + ]; + + # https://devenv.sh/reference/options/ + packages = [ config.packages.default ]; + + languages.elm.enable = true; + languages.elm.lsp.enable = true; + }; - }); + + }; + flake = { + # The usual flake attributes can be defined here, including system- + # agnostic ones like nixosModule and system-enumerating ones, although + # those are more easily expressed in perSystem. + + }; }; } diff --git a/main.css b/main.css deleted file mode 100644 index 135056d..0000000 --- a/main.css +++ /dev/null @@ -1,6 +0,0 @@ -@tailwind base; - -@tailwind components; - -@tailwind utilities; - diff --git a/nginx.conf b/nginx.conf deleted file mode 100644 index 89bea37..0000000 --- a/nginx.conf +++ /dev/null @@ -1,31 +0,0 @@ -server -{ - listen 80; - - location /discord - { - return 302 https://discord.gg/MXSDuqrdmc; - } - - location /static - { - root /nginx-shared; - autoindex on; - sendfile on; - sendfile_max_chunk 1m; - tcp_nodelay on; - keepalive_timeout 65; - } - - location /learning-resources/ - { - proxy_pass https://learningresources.developerden.org/; - } - - location / - { - root /usr/share/nginx/html; - index index.html; - try_files $uri $uri/ /index.html; - } -} diff --git a/package.json b/package.json deleted file mode 100644 index 61c8078..0000000 --- a/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "license": "MIT", - "devDependencies": { - "autoprefixer": "^10.3.6", - "postcss": "^8.3.8", - "postcss-cli": "^9.0.1", - "postcss-elm-tailwind": "^0.11.0", - "tailwindcss": "^2.2.16" - }, - "scripts": { - "copy-resources": "cp -r static/. dist/;", - "build-elm": "elm make src/Main.elm --output=dist/elm.js", - "build-elm-prod": "elm make src/Main.elm --output=dist/elm.js --optimize", - "build-tw": "postcss main.css -o dist/main.css", - "build": "yarn build-tw && yarn build-elm && yarn copy-resources", - "build-prod": "yarn build-tw && yarn build-elm-prod && NODE_ENV=production yarn build-tw && yarn copy-resources", - "check-format": "elm-format src/**/*.elm --validate", - "watch-elm": "watch 'yarn build-elm' src" - }, - "dependencies": { - "postcss-loader": "^6.1.1", - "serve": "^12.0.1", - "watch": "^1.0.2", - "yarn": "^1.22.15" - } -} diff --git a/postcss.config.js b/postcss.config.js deleted file mode 100644 index 35718dd..0000000 --- a/postcss.config.js +++ /dev/null @@ -1,15 +0,0 @@ -const postcssElmTailwind = require("postcss-elm-tailwind")({ - tailwindConfig: "./tailwind.config.js", // tell us where your tailwind.config.js lives - // only the tailwindConfig key is required, the rest are optional: - elmFile: "src/Tailwind.elm", // change where the generated Elm module is saved - elmModuleName: "Tailwind", // this must match the file name or Elm will complain - nameStyle: "snake", // "snake" for snake case, "camel" for camel case - splitByScreens: true // generate an Elm module for each screen -}) - -module.exports = { - plugins: [ - require("tailwindcss"), - ...(process.env.NODE_ENV === "production" ? [] : [postcssElmTailwind]), - ] -}; \ No newline at end of file diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..a113e35 --- /dev/null +++ b/public/index.html @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/src/Main.elm b/src/Main.elm deleted file mode 100644 index 57d38a8..0000000 --- a/src/Main.elm +++ /dev/null @@ -1,114 +0,0 @@ -module Main exposing (main) - -import Browser exposing (Document) -import Browser.Navigation as Nav -import Html exposing (Html) -import Page exposing (view) -import Route exposing (Route(..)) -import Url exposing (Url) -import Views.Home as Home -import Views.Rules as Rules -import Views.ServicesRules as ServicesRules - - -main : Program () Model Msg -main = - Browser.application - { init = init - , view = view - , update = update - , subscriptions = subscriptions - , onUrlChange = ChangedUrl - , onUrlRequest = ClickedLink - } - - -init : () -> Url -> Nav.Key -> ( Model, Cmd Msg ) -init _ url key = - ( { route = Route.fromUrl url - , key = key - } - , Cmd.none - ) - - -type alias Model = - { route : Route - , key : Nav.Key - } - - -type Msg - = ChangedUrl Url - | ClickedLink Browser.UrlRequest - | NewPage - - -update : Msg -> Model -> ( Model, Cmd Msg ) -update msg model = - case msg of - ChangedUrl url -> - let - route = - Route.maybeFromUrl url - in - case route of - Nothing -> - ( { route = Route.Home, key = model.key }, Cmd.none ) - - Just Discord -> - ( model, Nav.load (Route.routeToString Route.Discord) ) - - Just other -> - ( { route = other, key = model.key }, Cmd.none ) - - ClickedLink request -> - case request of - Browser.Internal url -> - ( model - , Nav.pushUrl model.key (Url.toString url) - ) - - Browser.External href -> - ( model - , Nav.load href - ) - - _ -> - ( model - , Cmd.none - ) - - - --- SUBSCRIPTIONS - - -subscriptions : Model -> Sub Msg -subscriptions _ = - Sub.none - - - --- VIEW - - -view : Model -> Document Msg -view model = - let - page = - case model.route of - Home -> - Page.view Page.Home (Home.view { key = model.key }) - - Rules -> - Page.view Page.Rules (Rules.view { key = model.key }) - - ServicesRules -> - Page.view Page.ServicesRules (ServicesRules.view { key = model.key }) - - Discord -> - -- default to home, this should never happen - Page.view Page.Home (Home.view { key = model.key }) - in - { title = page.title, body = List.map (Html.map (\_ -> NewPage)) page.body } diff --git a/src/Page.elm b/src/Page.elm deleted file mode 100644 index 99b837b..0000000 --- a/src/Page.elm +++ /dev/null @@ -1,68 +0,0 @@ -module Page exposing (Page(..), view) - -import Browser exposing (Document) -import Html exposing (Attribute, Html, a, div, nav, text) -import Route exposing (Route) -import Tailwind as Tw - - -type Page - = Home - | Rules - | ServicesRules - - -view : Page -> { title : String, content : Html msg } -> Document msg -view page { title, content } = - { title = title ++ " - Developer Den" - , body = [ background [ navbar page, content ] ] - } - - -background : List (Html msg) -> Html msg -background = - div [ Tw.bg_gradient_to_r, Tw.from_blue_700, Tw.to_pink_700, Tw.min_h_screen, Tw.h_full, Tw.bg_fixed, Tw.flex, Tw.flex_col ] - - -navbar : Page -> Html msg -navbar page = - nav [ Tw.font_titillium, Tw.absolute, Tw.left_5, Tw.top_5, Tw.bg_gray_200, Tw.space_x_5, Tw.p_3, Tw.rounded_2xl, Tw.shadow_md, Tw.px_5 ] - [ navbarLink page Route.Home "home" - , navbarLink page Route.Rules "rules" - , navbarLink page Route.ServicesRules "services rules" - ] - - -navbarLink : Page -> Route -> String -> Html msg -navbarLink page route name = - if isActive page route then - a (Route.href route :: selected) [ text name ] - - else - a (Route.href route :: deselected) [ text name ] - - -selected : List (Attribute msg) -selected = - [ Tw.font_bold, Tw.rounded_2xl, Tw.px_3, Tw.py_1, Tw.bg_gradient_to_r, Tw.from_blue_700, Tw.to_pink_700, Tw.text_gray_50 ] - - -deselected : List (Attribute msg) -deselected = - [ Tw.hover__bg_gray_300, Tw.rounded_2xl, Tw.px_3, Tw.py_1, Tw.ease_in_out, Tw.duration_300 ] - - -isActive : Page -> Route -> Bool -isActive page route = - case ( page, route ) of - ( Home, Route.Home ) -> - True - - ( Rules, Route.Rules ) -> - True - - ( ServicesRules, Route.ServicesRules ) -> - True - - _ -> - False diff --git a/src/Pages/Home_.elm b/src/Pages/Home_.elm new file mode 100644 index 0000000..7bf9761 --- /dev/null +++ b/src/Pages/Home_.elm @@ -0,0 +1,11 @@ +module Pages.Home_ exposing (view) + +import Html +import View exposing (View) + + +view : View msg +view = + { title = "Homepage" + , body = [ Html.text "Hello, world!" ] + } diff --git a/src/Redirects.elm b/src/Redirects.elm deleted file mode 100644 index c0c8dbb..0000000 --- a/src/Redirects.elm +++ /dev/null @@ -1,19 +0,0 @@ -module Redirects exposing (..) - --- There has to be a better way of doing this... - - -discordURL = - "https://developerden.org/discord" - - -githubURL = - "https://github.com/TheDeveloperDen" - - -paidServicesURL = - "https://discord.com/channels/821743100203368458/1024625154107654234" - - -freeServicesURL = - "https://discord.com/channels/821743100203368458/1037763084485406760" diff --git a/src/Route.elm b/src/Route.elm deleted file mode 100644 index 8fa217e..0000000 --- a/src/Route.elm +++ /dev/null @@ -1,64 +0,0 @@ -module Route exposing (Route(..), fromUrl, href, maybeFromUrl, routeToString) - -import Html exposing (Attribute) -import Html.Attributes as Attr -import Url exposing (Url) -import Url.Parser as Parser exposing ((), Parser, oneOf) - - -type Route - = Home - | Rules - | ServicesRules - | Discord - - -parser : Parser (Route -> a) a -parser = - oneOf - [ Parser.map Home Parser.top - , Parser.map Rules (Parser.s "rules") - , Parser.map ServicesRules (Parser.s "services-rules") - , Parser.map Discord (Parser.s "discord") - ] - - -href : Route -> Attribute msg -href target = - Attr.href (routeToString target) - - -maybeFromUrl : Url -> Maybe Route -maybeFromUrl url = - Parser.parse parser url - - -fromUrl : Url -> Route -fromUrl url = - case Parser.parse parser url of - Just route -> - route - - Nothing -> - Home - - -routeToString : Route -> String -routeToString route = - "/" ++ String.join "/" (routeToPieces route) - - -routeToPieces : Route -> List String -routeToPieces route = - case route of - Home -> - [] - - Rules -> - [ "rules" ] - - ServicesRules -> - [ "services-rules" ] - - Discord -> - [ "discord" ] diff --git a/src/Views/Blank.elm b/src/Views/Blank.elm deleted file mode 100644 index 9478efa..0000000 --- a/src/Views/Blank.elm +++ /dev/null @@ -1,10 +0,0 @@ -module Views.Blank exposing (..) - -import Html exposing (Html) - - -view : { title : String, content : Html msg } -view = - { title = "" - , content = Html.text "" - } diff --git a/src/Views/Home.elm b/src/Views/Home.elm deleted file mode 100644 index 31b8dc6..0000000 --- a/src/Views/Home.elm +++ /dev/null @@ -1,59 +0,0 @@ -module Views.Home exposing (Model, Msg, view) - -import Browser.Navigation as Nav -import Html exposing (Attribute, Html, a, button, div, fieldset, h1, h2, i, legend, p, text) -import Html.Attributes exposing (class, href) -import Redirects exposing (discordURL, githubURL) -import Tailwind as Tw - - -type alias Model = - { key : Nav.Key - } - - -type alias Msg = - () - - -view : Model -> { title : String, content : Html Msg } -view _ = - { title = "Home" - , content = - div [ Tw.flex, Tw.flex_col, Tw.my_auto, Tw.h_auto, Tw.items_center, Tw.justify_center, Tw.text_white ] - [ h1 [ Tw.text_center, Tw.text_9xl, class "horta" ] [ text "Developer Den" ] - , h2 [ Tw.text_center, Tw.font_titillium, Tw.text_2xl, Tw.py_4 ] [ text "A closely-knit community anchored in a common passion for programming." ] - , div [ Tw.py_7 ] - [ a [ href discordURL, Tw.bg_indigo_500, Tw.text_2xl, Tw.p_5, Tw.rounded_2xl, Tw.shadow_md, Tw.hover__bg_indigo_600, Tw.ease_in_out, Tw.duration_300 ] - [ button [ Tw.font_titillium, Tw.font_bold ] - [ i [ Tw.px_1, Tw.pr_3, class "fab fa-discord" ] [] - , text "Interested? Join our Discord!" - ] - ] - ] - , div [ Tw.inline_flex, Tw.flex_row, Tw.ml_5, Tw.mt_5 ] - [ projectOf [] "web frontend" "the frontend website that you're viewing now that is written in elm and tailwind css" "https://github.com/TheDeveloperDen/devden-web-frontend" - , projectOf [] "discord bot" "the discord bot that manages many aspects of our discord server (ex. xp, leaderboards)" "https://github.com/TheDeveloperDen/DevDenBot" - , projectOf [] "learning resources" "a repository containing crowd-sourced information on how to learn different languages" "https://github.com/TheDeveloperDen/LearningResources" - ] - , div [ Tw.absolute, Tw.bottom_5, Tw.right_5, Tw.flex, Tw.flex_row, Tw.space_x_1, Tw.rounded_xl, Tw.py_2, Tw.px_2, Tw.bg_gray_200, Tw.shadow_md ] - [ a [ href discordURL ] [ button (class "hover:bg-indigo-500 hover:text-white" :: buttonStyles) [ i [ Tw.px_1, class "fab fa-discord" ] [] ] ] - , a [ href githubURL ] [ button (class "hover:bg-gray-900 hover:text-white" :: buttonStyles) [ i [ Tw.px_1, class "fab fa-github" ] [] ] ] - ] - ] - } - - -projectOf : List (Attribute Msg) -> String -> String -> String -> Html Msg -projectOf attr name desc url = - div attr - [ fieldset [ Tw.p_3, Tw.border_gray_300, Tw.border_2, Tw.border_opacity_50, Tw.m_5, Tw.rounded_2xl, Tw.shadow_md, Tw.w_auto ] - [ legend [ Tw.px_1_dot_5, Tw.py_0, Tw.hover__bg_gray_200, Tw.rounded_2xl, Tw.duration_300, Tw.ease_in_out ] - [ a [ href url, Tw.font_poppins, Tw.font_bold, Tw.hover__text_black, Tw.p_0_dot_5, Tw.duration_300, Tw.ease_in_out ] [ text name ] ] - , p [ Tw.font_titillium, Tw.break_words ] [ text desc ] - ] - ] - - -buttonStyles = - [ Tw.font_titillium, Tw.rounded_full, Tw.text_black, Tw.font_semibold, Tw.py_2, Tw.px_2, Tw.transform, Tw.transition, Tw.duration_300, Tw.ease_in_out ] diff --git a/src/Views/Rules.elm b/src/Views/Rules.elm deleted file mode 100644 index cd91ce6..0000000 --- a/src/Views/Rules.elm +++ /dev/null @@ -1,68 +0,0 @@ -module Views.Rules exposing (Model, Msg, view) - -import Browser.Navigation as Nav -import Html exposing (Html, a, div, h1, h2, h3, h4, text) -import Html.Attributes exposing (class, href) -import Redirects exposing (freeServicesURL, paidServicesURL) -import Route -import Tailwind as Tw - - -type alias Model = - { key : Nav.Key - } - - -type alias Msg = - () - - -view : Model -> { title : String, content : Html Msg } -view _ = - { title = "Rules" - , content = - div [ Tw.bg_opacity_80, Tw.bg_gray_700, Tw.w_full, Tw.flex_1, Tw.text_white, Tw.flex, Tw.flex_col ] - [ div [ Tw.ml_16, Tw.mr_16, Tw.mb_20 ] - [ h1 [ Tw.text_6xl, class "montserrat", Tw.mt_2, Tw.py_2, Tw.text_center ] [ text "Server Rules" ] - , h2 [ Tw.text_2xl, Tw.py_2, Tw.font_titillium, Tw.text_center ] [ text "You are welcome in our community as long as you follow the rules." ] - , ruleHeader "1. Be nice" - , ruleLine [ text "a. Don't be rude or disrespectful to anyone in the server." ] - , ruleLine [ text "b. Criticism should be constructive. Nitpicking, flaming a certain programming language, etc doesn't help anyone." ] - , ruleHeader "2. Help us to help you" - , ruleLine [ text "a. Just ask your question, ", inlineLink "don't ask to ask, just ask" "https://dontasktoask.com", text "." ] - , ruleLine [ text "b. Give as much information as possible when asking for help." ] - , ruleLine [ text "c. Don't DM or ping random people / staff for help, just ask your question and be patient." ] - , ruleLine [ text "d. If you need to send large blocks of code, please use a ", inlineLink "paste service" "http://paste.developerden.net/", text "." ] - , ruleHeader "3. Don't be evil" - , ruleLine [ text "a. NSFW content is not allowed. Swearing is fine, but keep it PG13." ] - , ruleLine [ text "b. Follow Discord's Terms of Service." ] - , ruleLine [ text "c. Don't spam, self-promote or send harmful links or programs in public channels or DMs." ] - , ruleLine [ text "d. Asking for help with illegal or malicious programs is strictly forbidden." ] - , ruleLine [ text "e. Other unethical questions such as asking people to do your schoolwork are not allowed." ] - , ruleHeader "4. Stay on topic & use the right channels" - , ruleLine [ text "a. If on-topic conversations are being interrupted by off-topic ones, move to a more relevant channel or make a thread." ] - , ruleLine [ text "b. Mental health talk (suicidal thoughts, anxiety, depression, etc) is not allowed. None of us are qualified to help you, please seek professional help if you need it." ] - , ruleLine [ text "c. Keep conversations about political topics to a minimum. If it gets heated, or there is any discussion in bad faith, staff will step in." ] - , ruleLine [ text "d. Keep shitposts to ", inlineLink "#🌞-random" "https://discord.com/channels/821743100203368458/932661343520194640", text " as much as possible." ] - , ruleLine [ text "e. You can share things you've made in ", inlineLink "#💫-showcase" "https://discord.com/channels/821743100203368458/847936633964724254", text " (read the pinned message before posting)." ] - , ruleHeader "5. Other stuff" - , ruleLine [ text "a. Hiring freelancers & offering services must be done in ", inlineLink "#💰-paid-services" paidServicesURL, text " and ", inlineLink "🆓-free-services" freeServicesURL, text ". Before posting, make sure you've read the ", inlineLink "rules" (Route.routeToString Route.ServicesRules), text " for those channels." ] - , ruleLine [ text "b. Don't minimod." ] - , ruleLine [ text "c. Don't try and find loopholes in rules." ] - , ruleLine [ text "d. Staff reserve the right to punish anyone even if they haven't explicitly broken any rules." ] - ] - ] - } - - -ruleHeader body = - h3 [ class "montserrat", Tw.text_2xl, Tw.py_2, Tw.mt_2 ] [ text body ] - - -ruleLine text = - h4 [ Tw.pl_8, Tw.font_titillium, Tw.text_lg ] text - - -inlineLink : String -> String -> Html Msg -inlineLink val link = - a [ Tw.text_indigo_300, Tw.underline, Tw.hover__text_blue_500, Tw.duration_300, Tw.ease_in_out, href link ] [ text val ] diff --git a/src/Views/ServicesRules.elm b/src/Views/ServicesRules.elm deleted file mode 100644 index e964585..0000000 --- a/src/Views/ServicesRules.elm +++ /dev/null @@ -1,86 +0,0 @@ -module Views.ServicesRules exposing (Model, Msg, view) - -import Browser.Navigation as Nav -import Html exposing (Html, a, b, div, h1, h2, h3, i, li, p, text, ul) -import Html.Attributes exposing (class, href) -import Redirects exposing (freeServicesURL, paidServicesURL) -import Tailwind as Tw - - -type alias Model = - { key : Nav.Key - } - - -type alias Msg = - () - - -view : Model -> { title : String, content : Html Msg } -view _ = - { title = "Services Rules" - , content = - div [ Tw.bg_opacity_80, Tw.bg_gray_700, Tw.w_full, Tw.flex_1, Tw.text_white, Tw.flex, Tw.flex_col ] - [ div [ Tw.ml_16, Tw.mr_16, Tw.mb_20 ] - [ h1 [ Tw.text_6xl, class "montserrat", Tw.mt_2, Tw.py_2, Tw.text_center ] [ text "Services Rules" ] - , h2 [ Tw.text_2xl, Tw.py_2, Tw.font_titillium, Tw.text_center ] [ text "Rules for posting in ", inlineLink "#💰-paid-services" paidServicesURL, text " and ", inlineLink "🆓-free-services" freeServicesURL ] - , ruleHeader "Global Rules" - , rulesList - [ i [] [ text "In all rules, the term 'host' refers to someone offering their services and the term 'client' refers to anyone seeking the services of a host." ] - , text "Only active members (Tier 3+) may create posts in these channels to reduce spam and abuse." - , text "All service offers (free and paid) may only be posted by individuals representing themselves. Organizations such as service teams are not allowed to offer services, but may respond to requests privately." - , text "Posts should be appropriately tagged to describe the service(s)." - , text "Posts should include a title concisely describing the host (if applicable) and/or the service(s)." - , text "Only 1 post per service may be made per month." - , text "Anyone may respond to a post (there are no activity requirements). This should be done in Direct Messages (or any other contact method described in the post), not as replies to a thread." - , text "Hosts have no obligation to accept work offered by a client, and vice versa." - , text "It is the host's responsibility to ensure that their clients are trustworthy." - , text "Similarly, it is the client's responsibility to ensure the host is the right choice for their needs." - , text "The Developer Den has no obligation to investigate or take action in the case of scams or disputes. We will attempt to do so if possible, but no action is guaranteed." - , text "To request an investigation please send a message to @Developer Den#4726 in the Discord Server" - ] - , ruleHeader "Paid Services" - , rulesList - [ i [] [ text "These rules only apply to ", inlineLink "#💰-paid-services" paidServicesURL, text "." ] - , div [] - [ text "This channel is for offering or requesting " - , b [] [ text "paid" ] - , text " services." - ] - , text "Posts must include a price / maximum budget, which should be in $USD. Hosts may choose to offer quote-by-quote prices available after conferring with the client." - , text "Budgets / payments must be a concrete amount, not something like \"10% of profits\"." - , text "The Developer Den's only role is as a platform for finding clients / hosts. We do not act as a middleman for any funds except in exceptional circumstances." - ] - , ruleHeader "Free Services" - , rulesList - [ i [] [ text "These rules only apply to ", inlineLink "🆓-free-services" freeServicesURL, text "." ] - , div [] - [ text "This channel is only for " - , b [] [ text "offering" ] - , text " free services. To reduce spam, free requests are not allowed" - ] - , text "Hosts or clients from this channel must not request any money for work. Optional donations are permitted, but they must be optional." - , text "As work in this channel is free, scams are far less likely. However, to request an investigation please DM @ModMail#5460 in the Discord Server" - ] - ] - ] - } - - -ruleHeader body = - h3 [ class "montserrat", Tw.text_2xl, Tw.py_2, Tw.mt_2 ] [ text body ] - - -rulesList : List (Html Msg) -> Html Msg -rulesList rules = - ul [ Tw.space_y_1, Tw.list_disc ] (List.map (ruleLine << List.singleton) rules) - - -ruleLine : List (Html Msg) -> Html Msg -ruleLine text = - li [ Tw.ml_8 ] [ p [ Tw.font_titillium, Tw.text_lg ] text ] - - -inlineLink : String -> String -> Html Msg -inlineLink val link = - a [ Tw.text_indigo_300, Tw.underline, Tw.hover__text_blue_500, Tw.duration_300, Tw.ease_in_out, href link ] [ text val ] diff --git a/static/custom.css b/static/custom.css deleted file mode 100644 index 605a4b8..0000000 --- a/static/custom.css +++ /dev/null @@ -1,19 +0,0 @@ -@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@700&display=swap'); - -@font-face { - font-family: Horta; - src: url(fonts/horta.otf); -} - -@font-face { - font-family: "JetBrains Mono"; - src: url(fonts/JetBrainsMono-Regular.woff2); -} - -.horta { - font-family: 'Horta', sans-serif; -} - -.montserrat { - font-family: 'Montserrat', sans-serif; -} \ No newline at end of file diff --git a/static/devden_text_only.png b/static/devden_text_only.png deleted file mode 100644 index 782ce7dcfb80410128f6cf0b7f00971345d3b58a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33327 zcmeFZcUV)+_9(m)dJzy5l&*-Vbm?701*IuS@4XXxLJuM$q97u@>5G6!7wIHK5fSOV zlhAu_2?Y2y`kwck-~H|%-}Bu+@5!Uvnb|XI)~q&b)~s#RLoL-a)U4D10Gzq6c1H&Q zD3Aa^DosfOwqVbQdV>FuIw)%@13+0U4bh4WtV6tYRBr>t9qfx>dF7$TdCnv#Yb#*oP1b=^q z%*@REsrvi-g9Q+5L`1}&mcRb`>rVlEE-WmxwY7nTqobprKYxN__xAQiM@Rnv`O^&? z`=_wIy}h-y)z#JY?b|ndd;33)b8~ZEUS5C7|2#qBgJm=t4L)DJdi78H9}2j-x_
    $F6&1lo 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 diff --git a/static/devden_text_only_wide.png b/static/devden_text_only_wide.png deleted file mode 100644 index 391a280f1a569d0a61fa33cb8def55a18f4c340b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31957 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%0AK&WH-U4~b&Q=Pqk(!!X4e>=-#+&dT_ie$w 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 RmrnFET57uZ!n4+Y|1TqSlaT-b diff --git a/static/favicon-16x16.png b/static/favicon-16x16.png deleted file mode 100644 index 0e855ae02a0d96fbfbaca6fed12ce414a8fe15a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 533 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 ONP3X1*mj`UJMbTvL7PJW diff --git a/static/fonts/JetBrainsMono-Regular.woff2 b/static/fonts/JetBrainsMono-Regular.woff2 deleted file mode 100644 index 8c862e334da78ca6f92bf0f1939cce3a60b8c859..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69440 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�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�I2`;RltI!`q!2)h)sND4Z8MZO78y*3 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%0Ak2+A*ccrf=An7%zd~T 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

    O4?fXCi=q!i(Dsra}5hJ0GIbB(a zRtRJ$gi{1d#7dAe;A-hd!%}4f5cX$s{4h9>?8No#uccJ-_Xoi5*-)!6$E`;npIqMCvTd= zI=FgWqLoD34t1MVT2~Wt;y72=D#fcB`s9G3pM{E^)QCnzT(fNHA%w&u6mS3|$kPAk)Ec2%-!V&?lijtCmdN z;Bs;&FIV@2x*;AqUYtQwpS>Dw-1yuvsdIf^td9Y9`7IhpFKLqTh9MdIpIRu+0@}PO z;y(jhRX)5>MV^B6dq)>Cj0`hKm@{ zgtIo&oJ-v8G7s#A@qbA(Hutkhs*u*#pq#iMXL{U|k<)|lJi}bE3e1|6b_U-OFGobY zC@zva7otx_j3AFk)M0Rx@Gnh>iEG0ZyKMn9i7%(W{+$EM0r={#XYkcLeI-!Y6oAVQ zk^9BZcxS>9et8H_64F(x*Br9t)U@M~aIbKecgRZI{zLHlTsb{-MwLbT7W=L%1Kkk(J!{=BYjGWiP|VcA#|d(nEJBmCF8EHqwi zg^$e&Q5JgGjh91J)DD9uSEEl5_=YZ1VZ8_me~J=R7PmuDqBNLqzBF`fv;j&S`We0{ z^Hj?_C;O{tXBpQ0rv$snM&Gb%9g&B8dUBKupjF(Sr> z<|9#2-G@d0PvQGaVPoSMx4+sc6R?sBSTA}Z`N>NK(#3l5J{ERRMeS zW=XRW{x{3iF=7lJZSQcP0@XXIfaYq#Dr7I#Gq8-G%EYonA$QQ_VRw1*R<&Fv?UCo3D-1X(xtwsr&4V24&4?Q9ZVsCILLA1zA(7*LX82?e3%XrrS%` zPT($3K}UO{?o|~+Jn1NFIR;t#Pcw8`jzzK@NP0xQI#kk${`KNW6N0e*F^Vn7_8pM<&0K~UDeJuRx0~?1RbKq-HZ1t%y2?t= z?>JX1li=8GVpU!t?aU*lt=`n-_ac-9_xuZr`jgfCobfl%mZRc=@x0@tVNSK{z|r-8wa*Cl6gv zbA99Rn0())jY|DNm^VLamborZo>ER^ zEIYaRo(Fh-#7wkx-0$O^o^b^KtBIId+a$}O;t7cFmhk~a6cOpOrx4%UOw<0NsqLsF zRS~U%EhNB01uvd7Iy#^59cxf5t|R3NF~r}DCm({1`S&Fx#&ABE2VQns@>`^9 zUpydc;0rW=`EAi8j-*FYNDiS{+Q1rrEoSLJJNRogYzGb&mvEbLqmbhf)6mB;5zLb@ zS=>08K{dxsvtu;M%Nc~UI#$$by{uYID(sg;)fk}i^eOwjx{UXi_ntwpnk4brpAyECBoK(dU`^ubqPDr&{NeSvbE6qN3Tau#EvKw zQ5)Q;#>hv_^k-)(TiN_>(SJAwvGLrHVbxZ zmZ6kdZ)612JI=JH)&% z^9v_KGDz>Ob{?^%lc#&V^VJM;eWqjF-p9%yd#9;2tH-JmJ(R4Y+1$@$Uj>wRZM3XB z6Cm0P>FM!#g3L{p(}F2BM5gSd9}A@Bn5-xu>Gv|cW!aywx$T%$&}^}7f}(aEliji_ zU^|~xA@{E`bv5jdiK!|>Tx=t$B~K{7Fz8OpZo~_@=Equ7H&PvS0s;dh1IQH8(ZTM4b()yVDJtJfl>KCHLMYPs;7Y=1HA>EJthb8<0dedN)A1&QE^+{(pSQ#;h*{za ze2~SUu8Wmr_IoAr<8R1X$_g6O{;Vf^A%v3WkEMR5UY2>kj0L@HE_E9xS>>Fy*UK|b zi@D~atrB}IcY6iZbD(qjsQTvZ7}k_%jjMV}%6xU1VrN{69N zq}XjsBwFi>vK(#Mcd&SR*O^Fe-yF%GD#4#Se-=gEd$>IPf_JIrJZ=A}BaSFtMGsbm zpl7nQ_`pdalK@QkIs25AD_+!bp7qOqO9C-fE`ZP%orN)(P;I%1s>Kq*37yRtnr`E4 z9Qa}!g`v23m3HLM=5Ivnxo`28hLbGkj-??fx%s1e6-y`xM?e3 z>fN6)tNps6X{<1UC5+Q)5LQ!75_*x_7pOU+=@6lPL3LP7GwPVRKC3lS#GxmmavbsIPsDDM{nOif9@iV4 z$g2KgS#+D35{*Y#3)yVlZ-6L(oSRLKtFs0{TjOyB3pGPUG7N}uzBQ-31 zf^e#;Swh_?x4ep5UJgd`2|_WXZjB^wE!MSFQKxrU3_FgC(z5fGNcRb1QOHxmyj91R zh#R4BvDS&O(D)Fl1v>Di_#^4Snc^gM;w#2U>IM_@7V$c;Sd^=(tE9Gc!b2!a?Z3FGN3oC`&qXMYS4HEzww@XhPIlcUwU83H94x zvc+v-6@&eEM}*bE61Qb8DtOke)v_vbWS3XfoYRHySiB_=xk>L8D3tVGG17aLSB18c zx$9u(a1zOWuD4+Q*4w#^++Ie9ez;_r+iKM4TiAz#^zXZXHfvvY4kz`R_qt0_*-Lh( zmQ`)4g0(i?sh$uL+c94;kg}$92@^t1%BfL0aC)>Ky;e?MO0U;O$ChB;Qyy&*s}kMG zWK5);?UQGi4y!Ve)dHtae#^X@5pCg>>*CeZy4B>JRU82RAE$vFR48A-^QKs5y3i&iZ1!~@I}a8WG=oa*ctcii}1qo+7yITxJ=qobHqC< z>$T2-y*RyCJGCgISg51%TRMYpLfQ^ z+WB_EJ%!75fQ$b4lb>^LHy%;!a`G+y?D%O9K?C1?Tx1L$+xMObI303BY@2re(tEdg zckxGe@Xi+W@Vsq8H~q;=u_BP*hcE7eaQ-VcyR+6kUm7PomA~#RcrxrSkXiN2x2)k& zY=t1pQ4cV{&pv*dM(y|xYde`Zbw!W-B^F~v%5IgIfp&QBH@nZgJGoh_^t*+Vaf+ba zuO2x~=z*#14cRnWyZg%4u^6cI>*$qqWJlcLn?2^;tKZy`em5xkxtT>8CM+-{fQ8fn z{1~WUCd5B{d~Q74HJH3r7o5>A5)hH9H23FlddJ@+lzpV zn}(LT<7L~_a#ZEV8XU2MD~t|RJ2vq@E-l=WZRWRFE$`wk?_qx3lD4X(vs+T4Mr;dj z>fA#BSvpGoB7v6T?$J^0q`-_iaK}SDUOpCL%cQoKQ%cHBAQ66`q3Fe*PfUWr?xZg(g^MT%8Al0e|TTu0mip*>}gpN z0m~5SM*e5x;IxL*Fs`4eb2-1}hsZbTe($?q7~`6n2eB?nhsW`Q-_)F!-(;prN)vTE^;5-euWRYx^S_@Q&|ckrP{pt@RYzSUC0BO&C# zBP|jhX`Ap!2tKWj=wx^#M|dQ7N1sQEz#~mx6=@`oA% z?ueIj*74Hkj^c1f*Y%7yk~<=%q_h5NCrs!74B(iyITR{xmPBw0(;t>>QJuOKxZ~uh zk}6EE+f;Q)sB&>lT*04f_-jof^lS@)JD(HovF|tkuHmY2n%ak(|5a|Af&V)#Z{oH! z-=v^4^!gI9ln~ucE-Dr;*B+LJ9$X?eDRo$IxGnoxd%OIx*VBAx`f-vvBHT}vuPIKw(4=2+ z=!xTaE(yKY-)+MYbldb(ZAwDZXGBOrB!xmx%t)Qk#4YC!%m^0j@W7MnBX@Q3*6LIX zHB8>8S%Gic6Tqs#!eBP<@4Ug z+F>09g&BW2?Xm4nkvkR}M{=NLM4f|$5d{ws0WtKE_|ubvH+(NBr_niJMU!A}fffo9 zksl0vtagEz43h5ISIxxfrz4+?VVk{X&RjUl(+|u2&e1vT{-fdFnmY%@s;)-&p}*i= z4@sdrkfZdPbC7*m6#8?li&swXN$D@ddLi^ta&VKgSxyOn!%o4j8>M>RhvW=D?dH?E7n_$ak<+0okYq~_d&%eRVf>kwqp`= zlt8i_F7uV{+V3lgUCN#4gj6rLZ(dQ`wOF^91~K8i66gP+d8PL1ng(x_s}foyJ6prU zBs^Z$T@y80=G90ZYNw^*OuxIBkrK*#I!TJYw_)|hURON?V|wfRDk9hh6jE2(zhAXX z9hz6kAC$K=b`sqQpimxGKWB-EZTtPhs|c$eQnq7Qog8%AH*uQ{-B!X1jQ#$)vS#$p=mR-0N>7!E`8y)~hOS_-lfMY7(}ST=PKTkfK1IAz zy@H{Kqm1~2%qX&sg1_j?)#k7|L!j*HI?I_r9tr!4WNj1(EQaI@hS2faB%CD|P;^UowJcO%oiqAKj}N->B4*usYMQvs3pM5OoNUd47v{!i5WXMyJI;; z3sqd=&72)nCHruImm__cXn^XWx+>(3qEIa-fPw1E83f+X5vVvXd(-Mdk#;l>2XCwI zXw=h%b}9zI$NuuocvzhqoUt$XaI%<8)G;Q%hg?|2c>-mZ99&6+B#@eqfGTAZGLQ-a zVqMRthrQO-;&4otX%KqEKX_+!%Q>Uu7N-mL_Yu3lxsC6&zvoFGVw{{NPLHWaexG;l zuaWj<*+RMPfyE&Y69n{as%}5{N8AMefOa>BfD^(a0;%_nf91h`!1<7ZI3GsrFKn&v zd>AiPyCQBy$vc8ga$H6ne{F?}!q#cP`>eUa8kKhIzns{|_=p_`pzej#xw5f+sq)h6K zH)@?r9vc4&C}%mX1j3@GW~-iKtFjLJ%7i)%R;-7hr=dZ0x329c1#>{4?#Tsy3J$6u z5YgUqf~w>#U_RPOg^Bbo;ffksY$6xcz1npgMIkR~e;x=@i@Z71QDur$`DKut3Shwd z4E$nmFCNxFaG^*So`*GnnB!p$p%yUR1^nS&E# z%v{U~l=-12YCkd_NwpX%;ACZ#I@ZctUJm?Hf31clThJKinFINsInT_?8@il*nY#BQ zGm$lx*;ztU>dI<)Bu6G?FonSxCep90x4%JAe}fDP@%`Tgg_zy*Hb{2FY>=QJ<4lil zeca+E0}X<&SnQ`}laDR4R%tk218PLcs@8&e<3U9K?*%|Zb5;v-CIDN`fiol)gs?*b zm!QJxqsBFDPOqy{789|Y`_*~QRBCvo-zMO<2o?Ypo`Z*7bBxiP7mN)9|c+_ zG=#ej%NTRp4;{xHm=OP`4e@UY@n2yP`77Ut$OSbvNR3L?pwh{bxP8jIR-L|9*auZD zM09j;?Ow!_12Tt2$zE)qyFGF*=621b>f}R4F(gvI+$AlwV*dx~)Uf)!$tK12;~O}s z+BR$oo0Xt+vYnCqRae1Q-&-1sdL#WWRbS?p_6Ct@m)(ZqPbSFZKDBF=087O#bRUM1 zqX$^Z6!Izw|6vy;E=w}ZQw5~fiE`Jqa`wNmNN9g5_Z~l+2C02* z3_(4d(Z@L;s8t}7fv?Aj0(;PxXq$csGTM6e#_Xrl<6|(}4|XCB)labfTK@z^HvX&= zI`+3W;uG~`M_OsYyDbOtuDU-z-V=rY+1r7giSqSd<0$;yl11{w&v#4s^R=@UGKZdn zi9vlB@4oyS{Wd?4pVB|kTk`|KZoxwtY4ZaYAxhlhKnu)g9yzz8ALOTyf`zXRVy4sh zDSS2RJq7+j<)ZfzF@BF6#P0!H7=&6(q0kFs81XQgY%`T1?ifZL`*h=%M2EPPay#yo zawjpS9rt$fp0>QPka)IDW@?=%;N6k$2(o?gA5<=X04yeZaDHJ#>p@>e!s-up51uX? zY`2OF(1MDYC>g?P9!9Fm6r)>kJe&2nE!h9H+1_Rax}8GA9N8@D1U{VLXy<-ue?EBW z%)=Sm7i^wsWNC^<7PjWwA92`6Bb%{azBZw2vHj}E#|60e5* zCz)cBjF>DOZ)#`U8+3YSckagYsOfR7*PcU1zdeM$U;2g#?tF@;es}S1qy%_*>TeO^ z-;Ac*kgoh}O*!PdxQTbaxrU$K&3JcB_o#MGd_E!#M6m;T9lIPgR8>^3P$esjK?1?6 z_)j9F4iGc$0{HxbV%3%WqeSo;p+*(E6GgK)9mb~-k(AVp!nriUb&&oVW31!S-*uud z2E6t)(iVm^C_-9F{(+V@`@lH1E3^m2d3*d_TUHjU^RTnC9n6;;gSji&PrgQ;#Ak zrrLADX08R$)iYdD7tZGHUSA9vE4&HcQ2h*RN?@T_Xv-B~+iPBg3*@E0gT zP!r!4?h`Fgi>Q=AWitL8RHg&J{j;GUw(C`2&~^Kkk+6Cir1ZoY5gmByGP-_-zrclp zr}(zmv!Elbn5vjSydfL{v7lRFb4_9XS)uj#C26^ zVPmxOhI6rbd1S206#9_!{Fr{i)HS9Uv_yEB3he#Faw%C1r?M^6>7V^hF~fMuSd0yU z#mnkHMZmWtz{*evZbf62NUW5>VuJG9igBr!JKns(=Hea-W!VJ%95ZWf$_~OPkXTT0 zQnBv$;SW7O!*n#T?JD!H*!a-=}D`%I+G&DYIfy57z%;Mp%f|3?AXQFqaYx&&Bg?qan zLSF05L@XG#QFf))3|mC2{qp`33i3z)u5S>hYad)n@61_I)Ha=Q&&K|asNL91U>D#GPvg)pw0XjPfbk;!}WRx)F3$XkW_vCqE-^P|o z5-nrLANczf5qm*;|3gt$>$!;5%kGbB=Z^E@Ixy;5vRD>KfWMneNYy)5mr>+AO#Z@EF3^+WvDKVXm_9m7MEp^_j_jVEL@pB`8Fj5uSW~ z&SA{MIznaZ!vWb_pSR&L^`xx5I|@-)eP$k?mPgF1c{{cN_X(guz{vWPN;{u7r=4*#qB2IFwB|#_osN{_=Z=1SIQ>cUfu{>UbcmU= zHG*Q|2EO_|Yv+Fs;_E3fzX4NjW(DQe&Y;}EJNdcinrQa?KAq@jeO4^axqj+2zL=>T zypv|`xt1?W@1~02JM9V}+hS20)T z#A_+{d2@c4Fbli&437J}2c7Uwf@QzYTRJxNjlW>$d(Fe4Ohwx;+g3el`TQK$sqeeWEhNQ4hnV< zDdq=Z(nd%z^!HzrV$M~gM1b*R%?h-!hM(rD`oAb*{0C$KV)aNqmL6iexmt}tTcUe- zlv@lQTX!P{!QV7&t{Bgw&X7PGSqAjqSDOGWz{9~}9L}9T6#>7dH0Sd*gM8@`);J3( z){7n?5~HqzBz*SqTN34!)~uQ15zYE>cn6OXX=?mWxb1r7WuAthKq@?t6H)lH6hFgm z!#U}&=zXY4rUUFHe;;!%-Ot*HaF}eqk+;_Y+R0z?sra)fPr_`rT+_)2fx<^EWd8E* z;OU*@g5jLK!Z`1PuUneIqMdTe!(g!n$ZgqAHrJ1Q6%QKt!*?Dz0)lv0+s9;^oFD@4^<*{L)9E0des?@S@8i>wdiIz6O!*pyShu&yd>2&7>WZWViNWParS2fm3 z6rra&gD}u77pSLaG{}-a4@% z*0)_$d|N=>h@Z$R!Q-cbxb+lhlrx}rl*q1}B>nu8Jl)unpV*0jOAYqe+qAx6EhTvd zbT9J0>t|l#$<&FrrKGf@<;nSbK==N)7$nzwjfiIK>!?cebs|GY}|UngV7R zQc2jem{onL)f2=W$Jc(9sb=N>Z5>x{wOV2e#oXz=|C`dpL_}pzvnN_UPvcjn9#t3q z3A=1r+TOY*fIq@Uu+!OtE-Vc3>T992dSf)KmY_x5xDgMt4?FVL(%=vWiUf0g&9$fU>$DBAw=5zJhMaIL!FK8Q+D&qHX--&{m z-dVdyRnU(-xE1zoEK*muMZBd&5zpViZz!yuXC5ET`7vHhG9}s@%&2wh(9Ng`cOGG% zWNuKJ8z1=6)BWuWsrPUcr2Z_`Mz`W;*Kerybj*%F{(NXmnTK2j|;*PU~k-zO}Y?Z{Y{8;M;<}QKW zoOKkuVw01}X7NBf@K4KozF>kCA8F_CPuq=I1eU*V5bE>s(t10#>$U%ny)yxms<`&} z?b&H?SehP9Fa}2q3L+|ohoYp#4Oa{i5Vt^BTo6TE5M!hjBx)-$5Y!NeNEC%JMjb_5 zkdBHZ#^(}YTu?GWQABnIs)yS%_x(=Qy}ixCbc@EkPd~gieGM)Q|st zG>E|8i8u2)(1CxRPNUoWdI;^Y_^>R_y<}>~nY4D$gVMeC^K|;jbX#3NeqJpjwBs1b z;H*`AaWp@_IGP7v{8%#R#m_%4NXNHK+Xg+Ry<@GFVj|?oAAD1ght5JTdhIXccy;wT6KQzb zN$ihQ*j&s{d7xjBmxZfDrWUv#-Z$w*_ro8Tc;8&O;%PS@^;8@EAn`b%A5^Px0CGN-v5=^LvdIrHXJ>^n>M|G1^Q z8{L&NL2ax3z8Z6Ba9C|22VXtwt_;@ntu2&zuCgL!FJ;^Fi}6A(FABV0Y0uAIKVRzB zO#m@Ns#qiY^+T7vw61Vik=?WQ%3%5Gx8|4 zc|SsE%kTFR%jTySkQyE%^&tAf{3%C$`*+!|;4_@=GW`B?=Q_@~%PZl?bu}zF@vYc0 z)gL~I)TbP))nAHS6o3DKZ*(7RoWv0d+%VMa0+g&_DgNOGlhQYDZb)KIi$Cxhk=Vtu zHPxjYs0qh+-b+zjmIHr_v$#I>1bYme%HI~J^7Z0W&T$>)i%F+)HzWR}=Y$vZ$3)OM znv7z-oV=givxkgWFvr{!l{vha4bF^>p}LPGS!%a(tYbJ6@;!WXR6Ee08If2}bGdZ5 zMNPM_OD{KeOPRVc@<5e+W2A7Rc-eVB0wVygVOK(9ej$w+Esg1))|d)TsX80qI_D!I z7-_f%Ynpi3Ed=g?sCj{>akI(;d5Fy-;dO76`k#Q1uS8GJtsUs;5%$!~QC0tCeqI_eZ6A`xUsLoX-& zp&jc>5K0L~VLh^uLLdA?dxWU60NaT{qqca8s_nDSpo8uh^W)5&x2N_JGYiCjx#*Mu zY{FpUYC=3ZcUzo-Nx01;oe-E!j`NHawg)-RgZk|J6elESEuSy^9y+WGK4M#QAUo^Q zXP+a(+2^vE`C{W(MAF&pUW~4ApV1F5WucmlE3+25$yjuI>G+_{#JC(TMmGBm;fNvj z5RL7)<^qhn1{}(=H~QI<(m9cun>2(+hYgIxJapqS#G_IIRe52quqL|Zv32gTSKGv~ z*G+eE>?KZ*w+&4kd$skBy_^{f4@(Bc8lD;y>u=6VH!>RX?-#Nb%YsaQhDrkSl0VFf zjUtm5_7h8K)xM@k^a3spVzpQSPIi1JFrAfUbZuhVaEx|7HHU;iQ}^i%*&yjSq=GN3lf}ZCN33EihOR;4l};7) zrtG#d)tjPd%{8!54pBdwi<{F3?de803-6TPD`JUI6a3WQ+sW%RE(De0ENm0>MuV!% zh!(RLx7=^o)HQ2aCKn`OGXkQyX=o>r5;Va=e=UJ9N+%`gHXps@NBmvZz*NR%jy5FL&>+9PxIC!C2C)BbloiO_sW1eSX?EhdM^}h2%R6OISqgbI zNoctu*V(FXYzWZV!h&*uDJ*?PcS0%#n0i4&2+u7qRy}(n;`hbSpwPew7ur36k#0tg zWoMt1`71Z^;xCrW_{c%Q zV346!Oqtq4f^(SK_2Vc3MZY>9vp}##IlpQn09{tZi*&ZOgU}&B0zb!dkr0&F>eprq-`yHAf-U6{vH^ zIn)XZJYqU)sVsZbFL;LHP1PIWEfx+J{Ev%O;K>D*Wtg&>^(D(4qKc2 zVcP%VQu2c^3-sAh#IKu3`CsBvQpC@;&vGfq4`IAqBpeFZ0?2Yu*fI+f3t(2b1@@RC zBsU4H6cqAz;OUpj|7iRjJCf}g=^_ym<| zjk6~_IrEn9WrI4`u@`N+6x2EOEYj2qVb0{IJRT0JB?(x`#ER!wSXBj)gNPkRG($oF z5?~W!pSCtygI72kRF?vxi1OAuI_l?z`^&mN4A^Mn3|UxRNM@0nYhvz%N)myvd7dVV zG%JYYN-~Ulv5R9W=6IM&b>k0W@Qvz(;Hiw=rB1jw@ctG=UOe_Tir8pHoG`LvHxVqC zAwMF-WZgIBOfUPs@%TzMeM4DVT+4DgsqYn+KIl>`G;^gj1=u-uHO@5-^X5t`jOGNJ z8W6&)5YbSHpsu*q*!?mkb>W#tJ{QKBOc_Z%!81$exRc@WL}3RvUf98yN^MeHYit5% z=cMc^ebwMnFI0=MFZ_uUVn*U~|Dajv7pj@u-QNk}!#!Br=r$tZ9xnneIM5#Bf?}oz z*Xy+?74do#@z=Zg?V;+l;6MH9`GR*d_#J_!h6jI%2N3}X&kr**$37hHyR#TZ`Uie) z(>p@9bd6IkJ4ClseoqpfkrZT1{FT3_z5$XP*ns+uI+|m*C#IF*+}a-^w)(vkQi?x| zEt@~%Pv@R<`HLvC9p^VM$qNUxwitn0h>a~e#}P#sSUurp)`6XYZ=e+_!^qA7L;zH( z2cvxR!!wu+xA*45-*gB&^=H1$hgbhha_jTwkmLK_Bq*lOgFN|cn&{LkshQ!5NaP}v zr(t~y7&9*n(YC}ab^PnNKcQ1gDGTvPYW?*AfD=h%`%xt5<2cf_*2p z6jN!|)wC#f)GU!$M|bBuLm#1P$Vtv;4~9)GQ7@FKJiTS9ANRimoH>}ydoOMKC;~f- z+&ANB>E?28)L?EnfXbKM9N)1wv1D{|>X%Om$;+{2W}Ck}9JM>~baF_3$Cn9E4x4wO z>V;}${z9=(ww~5I=rf3fJV>BS(|)Rz%uUBRQ!Gxc%KETqG%S8(+|)>?Q44qNzkBoU z1;o0A2Zkg-${*HP5}=vy$ZFJqXOq<*KHjd{kV*Xqk{PA`L358$sF~U{_^Do?yi5s% zm`Zv&f=%1Ksfjo%_)|USlXRI+tf4c4EA@mo3$_-!*25mYV2Mp7VK%_p?9vTCZ`wtt z%LkRrbQ2ZkC2t?q9jQbF|JcCbjHza~(5P)^bAs8oXp_MLs@NAbutZIu{x=TF{-)_c z3CWeO+LxW^FP))hy$?M|{)VzIb?hc#g4!*gd-|{A%e%}9z6XC3ekd_m^VN0e1wV!- zRzj}5YToho1DdhyAM0Ne>>cY>jU$7BCKm3H)#j`G9Xs#j@*J7RsoC!dYK$dDjb6bk zm;nv7P0frx_+`fjV30`O(Ne5L3Z3f)~5z)PxJ@;CM%h@t2)M5#^iN13vozu zw6N@yLa8!d)6!lJ63rI-7=};+Zf&8|Tx1(N%E89z4MSiw2wNa@MDQslFeId@sE=BV zN@RT~D9|i)YHWxn0q7p>12lQJsCfghmFIAN0x zUY<| z(O;yM@r(pdo2@8eB{5EQ&ZYMO-^jg31nZ|A_Z}fCmn`X8A`yAo^qQ>ML`dz27zAK( z;t&0ovMkYk{L`=YL9PMQcUds;$Bny5Z>HypM4G1t6;-1O)$375H;DFp?@s-z?w#%K z9o4qC^dS8SY<1zu;x%z7p%eE3BT?jaE~aT~>soW<0S5yCq$ixYO3F zjeAG6b=|jAZ(X(%vO?xgp}I-R-ktRDlFCr_$B}ih+x4zds84m1bC1re@$j-PNVDfZ zKIceNW8>RK9$9I3CcrZe-)_sHViSkCylSB)6n6jlm{Pvu819j9-tu}ZSY2cHAUPX?y|y21^@{= zVJ$oXO)Pf`<NAs)lN-IZ zxmMDsQ@z*|S+9Dz21k+c5_wf{_zgF)MmosOno&B|Ljd@DJ+Cm${3#qt?xJQHr#Frg zA)ylN(fg6E-xd{mY*KNcnuOgiM}c9Zy1%AaPKDsqWIfZK>1C}pN!ACm|IIP$;c6yX zH?7%LdA9^T4Ry9cfvcg;S`-is^;I~vpBsty7m~?7T*+4#47B9AEJco+-rYSQ*o*!J=j7yHAT7(`L=NLQBp&_? zi7rOA-P&nMw%tZyEI9yPx&4UL}_TZBxMHZXnqPooz)#5CUh-2TsC1`)pTYXS$ z4;66B5321C%)EdI&hj+uuB^NOBDfhM7+zqH$dw3A|K^AwHzyNmSx!WNQsX~H1ZZ@U zMDSZl{zQmiln}x5GW309=#gzU5B?uFrMh8x`^BO^2oVt4!#=C8I*Vfr!KgfIwS87` z>2S4=YlpGhHSvH4_X`ZKjI{>@gzy&qFiwK~0|+9qo314YM$(r={JGbl4~(cWg@+A` zfDa|g80V}j!y~BJOtI74e4s`3)`l>yK84GUAJKig#&X#*mU9Rvc7TO#z>_>Nah!Uv zHaY7hO1lP^$euao9LuR%Sn@<2%4wPtbw%0Ug|lO~OSBH<8vgm-5c$0gFoX+(HMgiI zXVr{jACZe4;_~eG$qVg%>^?56EhIdSJwCT`b1~^lw!Tue5iU{5NnH6X`^j6%7jm+a z!?CcU^$&Ym38W$@7SX7AC$Dj;U$9(VSXXFYSgvS&F6Aby2P@Mu zM|CPASOx@p2FP9ScNbqpuK z-XHnG^Ad^^f!kWnNgT1_fyeQ{fGksPU4g_Q_O=ADkG9xG}~CGn-RZNa=Bj z6R2}ADRVrsYH(zHiE0zyD1FmKEhfMP?ZjelvAz*e7wX@z8-ghWUy*lE47=|ftlxRr zeP{K{!9#d1gElq!8OK;mQ;}gD3h#H^3f%kbDoL*(Dg5M|~fe94-t*S^qym zy0_aF2JU&su@2J8f=4Dt<&iW^ZcFPX=+<#JqRI;c^K=_|#yj{|$m{dmuhF4!Tjwfo z^Yj+{j?zE4+d+YTE_Wj~nYjg(_7_t7sn%o2X=C7RvA$f9q2ZHBZ%juZij)i|ly(<{-d>C(GudWf3;A!T44y zL-y;IX<>4hvq&5ZDugKbBtiIw@hS zXi75Iz`W@0@-jMjq-8HoEje%#Jx<}LF<1URBU+#?+jECYL}xl&&V2PzQ|uz$Mq!GH zGV^1*biCU5n*?+pkgfqSa!+Df=`avPd+Zo7xY&XYLk_f*Gc5O=+a%+%w0 zwAOlc5;D6YR$&I}iTISmBrbRC3b)~pryK^$n=^^dofyc#74gwd{cEVJQaeq)Wgb4B zvY+G2{L~NSvy1rbMz16kb1(0?B>7|{qtdNG0raXaV^^|rbqAR;B$jaOXMC}YA|BFO zC3T1U`VW(@$DcQ^-^JUv=^mO?DjSa;Bpw2pBX3<%~OH8b!FCvUE65fhl> z)So3_5|iCEYkG2Uj-I$AF+A>g1Gf1NU0-(e|TK?rv;v-2pNEl1i*n zgW;W>f`5DY+#XHO=RQk_cD#uZU;9`_R%xW`<#j+)c@4JWhf*i#cZdZ654MDYXQpN; zN7W+#cr6S&1%+O25i7lBzq3F}e-u%uH1p%tx@m_KnxKNf+VNahlnxUZ`DLOt}2RKj6Qddq$&aFpcbM(S;1LC!g zqh8xaXPHS?Qv8b8-TK`nwknfh#T-d(H_J{Y>GHa)JNf$;o}pJAZ^?1%v)iZp++DLW zD`i%!Bla(tVpgo*M!nA&Hm{zs-!xXbF0}UHv@%O;x4W;>sGjZ$DSVkqy7deUptNgE zX%8k#yBGVZ7Ppkz%97}uEX-?X>{y0H zN75KkRXwqTVCF8Zy43NN95WmE+SkU2Br$w=?Kwn8UG5L;YsGg7RLlAP!0lmmHZnyQ zD6+Gg#W2ZdRuxp-ST+*eEHHdOFRND3L{_(UcC!j}EOLB{Uklqkky=V)zevndceyh( z92f~vrYRjJl(i+D zkqI@?KfB*a%dHV9_>Y#o#>t!NvNYy!N|qT6&C9cNPkEki*)NpA*e(>tcD`n84MktG z)i87)7#~H78Ej-YXl`w?@&5k9F(;;ah@ZaaR=WFw*6p`W*cTip4 z=63lQ_x->UdwzVlmPt*n8O%QLTKbE^>b?CzT8=_-BV)UCB?2$Thm)z65B9V*e5h+U zLk8lD-&$WKPNNqO7C3h7s>hGF${Jy;Nxd`;m{ZjB#fTHmZ5w>&l_`FEQAW4|?h;fPj{e_n`pi^p9X#wPJSGC%;J0JfB7DPP|7o%k)(&l z%G2-5=xu7Om}E&mjn;xDVyutYB-fp9N|LdxrANKO(j+j-lN#dU=zd2H0rrv_vO3o) z{h7D3FqKOyaChRv$F2DLPTo&@hV{OnsSQj`@D}td>uw0L7F@u&OL$Uu$Jg$!xK>O% z#UfZVpc=%=4D-&P25`D@YHX7x^wdcy#%GEz4O#>5erL+Aw zI?8GAeEHRSb4!lk@do$W?>O|86p>XYAq_h5H^~L+k z)1t7kqki=^N9&klBzn#4u1)Wgi){HD>n1x2NH=?#)BUTB$Jnishu)r!|b?^EHxDYcfiCl0*k zs>YUJcA`CO(G`mQoN(h*?U-=U^{`}nP;HOkS?HMRMg`BNHNQ`I38)vOBaSbNz)JmP z7Jo}c-R1x{wBTv9xHtUIAG03d0*9f%*Ne|Kgr7{#h$4N-jAL)zN=jCBk6?9 z+R>_fst3_S@e;AF*%rtfwPxRI_;y3(9Qx1(+uuMhQG?!{q>VHA9Ul^u^6sKetSD!B z>&ZZX+;{#$){}FkENPZ_5;juM)#2JvOo$Xs9~?OTrnJS|v84?JO_kQxK20lVY+@)_ zeect&uk6a2Dvd7#_k?y&5Ov0ga9;u%CkP$3e*leA9&xDbH6%^nm;XVX_O3;%+XZAT&YX`?uR@Aii4rhj%D}+zp05mAk|RbZHmj~ z%=h_D-tUJ+%YFx+J8o16+ttybV1IwSwLVU8n-e?R?Zh;Bhb~wk>e?H$I{ZF*>Ij!$ zjZTl6J?{8UxB3U>$99$d49*)r6UTsi8Oel%U_=hyjjs#OTMR3GZ)poT;?}Z+Sy(w=guY6Itraf*FUFP^|aj_*9kz-ZIC-nx<)n{pY zIq}@Ia_lF(G;^__&&5MOSNRLCG#c83%U+6Gt?V8y_m?hk2eO}`w0_e4x4`~*Y*7l_Lto^t0~9AMu0qmWbo z`el~mEdC%&K)&6usht|8cf z1v2IPVJh~Rzw})rFyOCXHe<9?oEeN5n!x!$3NgJRGlbKDp8V0+Uo)lKZ-eR|n3(K! zX1-X>Bh5R`IY7aR9R*R4zG)X@;~&(tU&m6n>As=k!(}JCcG-!hi}&^fui0LIz%j%} z%pR)^aqw$N-In~ z)QN^KJt-4p+Fqt3ah}g@xr7uL6+QXN)@A`h0RALnN3lclX$!WEwg-NKpQ&`1!M zA&-?4`^qOK)*BbYRd$tG7_ADb_l_e-sao!BJ&m7gH$S(Y#!tJB)TS;`xRY_9a1{_3 zu8qK|tT-~>8wcrW?F}O4Zz-vcJP`BohZuwG5DdCSBMVB<8cF}3-WT&d{5YcO2gGK~ zwf{dWjx3;c7&u#HV&yEFA`MrWk`j%Q2D8NGl`z*hK}=vKekrf-!54B>2opaE(nFUo z0aya7E4us#j`IRtegllZp1$1PHbi$1AhoCN1|Ps(r%{(;IMGGi30al%D<=g1SHvJA zSDJO)h(WO-@S@Wr6U*Pg-Fp%wtHy}EvOR`mY|@g*12u@}>BhVa7L6CHMY$wX#%fW+ zuO)yyc%h{s{#Iw$!F6+KLNK>90L^rIUcwDn1>)&X1O@;ib;O0#C=38~#i*c5O;pgG z)pAeI>gI|upJ|XU%_;<$DWVPSN^*5AYShstb|(6xfpq!`dU_Ldx<&fDD+#r!k}d~6 zC;Kk|XtZ&U~_EE9JQ-23)>=W&kK?vM#4=zHP zNk~B1N3`W`PYizFGU(;}f%!xCSMH$qZv6#Zb-*;1nGeODeOViR{%UU6ah{#zKGiAf z;Iyamg~_2RLUVrGhVeIF-DnY;UPP_X4l;3bcc1cA$dn^bVRrJ^dG#xG!KSL$1@{Q{2EOSn0la%XSLas3QjmOHm^)l+$rcQt$fvv0yhFRCaJ zmmARyv4)F^S#U)n@z#Q}@^fw2euxug8L5{37@1>#7?G=jrino8PTW2A$L#_K<2duQ zBkgiaV6rgBe>w7Cj(uWavRc+BDj=TNxXh~SYC2RIP56tkcCsnYv)A-i*Da~B$Cj_K zCo|)606@$Vp3kZO`?!#TYPacH=}2d6U@nr6aA7>3z1+cmO#ntN+lhtGoD6Fw^nqrV#N z61#|3-SAo5Yrg{S00ga2Abi1~&Q3?P26@1BZ;d93lGhBN!lSpK&9CYk@ zr5EXO#WyhKo;PcDW9~|i(X7Wj&71Wb9`iJB*6ha|Z`RW}akMvaOs7#N6Bv_N{oJe- zP6GX6Hh^f!HU!lRMm?@oe4@x@TgX4bVsWg0b|Y-cVgm1F_*%PMS#Q$yIwg~!A~lsE zy$bXd(I2Y4Q=cZWT4Eb>TP`wYDoP8-c~#~WyP;j;jlOxp9a7298kwmYWUVLL245CITaoQl2_eO-VaEw6=F_N^X15Ty?~P<9vDwTN|g@T4OV2t}&88 zWheTS%y6l)WT32@3xNpHbi5GZMTbf)d(J|<+qbkk*NzunE>kFlp*1SuY5;#15J{;V z`y+MFFLLQSIMy&{fh^uvStZ4R zt;B3GK~D%PQs2vosreD`hmVe+1(24%1t>;Ao8e&vPf(PU6Y>|S*R-(@Za2r=d=h@~7=eUh; zu$kVYh|bp<^tokNQMn0?oUdQ)=@u8!W^;7u^_N-0jA$cIztR!1ofn%zcp5ddZ&1Am zC%A_pKRRW|&54G#_hrznkN%qmJ!A7Y!K3r9VbIeg-i&e+^Q+03mP;fL_q@6SmSB{p zGC7im2gy_>J9(slfoA7ER}iQh+ajiF=$NANeHIe-w;g~k*W=ZUo#?7>c1QKq0q9z; zq04^EIg8U8y6)-3IK8`UPRTA!D?3(eWmjpfEWOx3D=TCy2YQ)sozuIER@T$dCF$N{ zivrN%%>YRmy4NT+9>`>cw}!~UlFUY3y_A$$L%Q*vV2b@$@1g~7E~%lzYbhhDeDQgh^zDOhG9nx)&iKi0;)LYSdB7;vds&0W4lvJWh=feW<#LRTS+f z7HTWZ>6vRGy;#k**kzbw7S{Jz~dV?s@ zEXQgcDv7K!3!783EXI3Nesa4Ju%kjYQS%<1%T`m)mQqrgW>`4}A!3jBsh}{5DXp%< zktua^oST-#++7BRw=_u61CH;S&=En$`f%CX)c~nQ&k>yQUrw$z*0(>5IL^U8c>+tT zQo=mykfP4t=r*WTRPsyR=%3fB8x6g3s8li{%At~US@DyW2~X(tNJc-H>BDZG=@S;E z1|KF*jFKtoTxk$zM7db8GW2MO(4$kwgfb1WR=F%|51TYOO1*}m8NCWS zz*D{?u;@Q1dh^|@gs$FX6#m?u(UQQTScP6^g;mc6F-g4kbePRvsY#=jWUoH)rS4TJ z!JPJPlpR{OO}?XHlUu;mgkDQCP9GkCaOt zLQi=ZaKuTW?}7$S^p)+$sBys zlNp%TS#eJ6l@GBlD+Bsv35q>Yu@D+|W60MXW$dMc9=F?v>y|vZhjj z^Jk(x)R}k_*edrlU>}PHOlRy({JNpu#80e<%n>(4j%7mR&=T#}km1eH9N$TDAn8+b z^lUn#B_e?86_LqL1VC>s@ff5wBhX9}8yKEy;<4 zeJD^iVd+|7bE6hjf*MXkmEq21qEk4|9Hxk8(Ib%hU9rXeTugch$u%xisM$Z9rA5(c zo0FcT>M%5YcAKGQ%4PGLtyziy+Z7Os<*M3qTr=e|9RBy*4IIzah~$iiu`G{986qdv zOoC*LuHwK=@gaNaR;7$^0e3cftQPJ;n(tK|5_G3tZA4b96l(kQX zyIG4wIo7&zJFBwX^UEvA4N%6mr@10i2roknF2>D#88$z?(>qLpfJt8!<0tzc>7?dr zyhLjJcShHnDIBuxfiBc0?9Gg9UA6Z|w3*75s*_WCR#7-~7eAmb6}K?l z;t8at&f#RHEdK&V{IpF7HZ1&cxKE$Of$C;x9%iu54(9!$6=NLho@;7lulysl-$+2&!PAd0H^vzeQOYU7m;69m|VvC(W8=G3h!zspJ^HS&8x2QuuGvsE)fk;iHSGC0RHHq} zKAUQ&!~%@X!7{i%U$s%~gFyb;JwU8Tx-Z81;Mr*07bmHH#yRnh{MoT0JX&k)JBn~p zGzk&twY!!aU(33&WT7_3uWw^y_)(a1+b@cWNJpEB*pH$ykly&Y>Jhn7Z&eukJaSuaqz z8tK&DAQCP1DcOad&m0U{AdIx`Nr?@Vi)bCtx)G0+7+k(%aZ7OOx3TzWZCr}gC&9X^ z{Fe%j%u==`%>Y&aW6_>D&nn^}Vl?I*Z=4aJV0;c616V3eA=FBE8Egas8B`NojoF97 zG;a0rdIddf@Jv?Eek`1=e#s(PcusdD;$5Ul3Q4tnn$@!)Zx*ZPhl9m0Rvh1RfWXgH ze5kuY6q=6`&7FhyL%WHXbI_1bq1sgN5t=Byba-a9m4Xb`s0E?+`>U26G|*C>aO?O^ znJxZ+>zTIs*;VrZGRpEprGS9kC(eA{ZZz$me{%5Jb1)3qC@(bl|h-mY#hM z(wKd&=$1B)MYlBjBcofA93NgvkIhDOYFg{is1C`srxI@glqn@od(r0@XBp~_eV~fP z>|eK8!M$e5kMX*vE=;CE4Y%!Jr^Sc#mLBo`5QW5gF$p_PUx5HqO&C(9YLZV*#gH5W8Z?b>~A z@7eWoSMsS*qoJ9*OXMs=^=x*+q!{J0)C4lgNgV`J91pGpW_}ERAebn=gJs7 zhk5p&pdMOh+ZO_0p`}HrvWsVa$BjorF z>}C<3#*YPFt185%JMVyQoY(tB9p{R_@mo^X%s$=|{bv0xzH!d2iaPa!#QFRN9~bct zv95&ZeZ8(Gb*uD^@>F_3A~=s$4IOtl`;;aKR_IhMG`Io3@~OW6u)Z?#{GIFQR?@-4FGPR{s672Z5= zQc$2Heg(J>yFSM{!Dor;WK*Gt4*y1UxUQMCE7wUP@g0R-!>4oM5C35c@op6!4@&YS zNoA<$6Y6AMZ)qH@u83hMhc#zNk)IJEZi$R6SJ;@Mq!ST9wTWl|)LggexsDuFOW&sF z1!J$Swl_^H9#&ozDSQYD>L^Q)4-S;%s+V8HZkJqMy1ExexJ9ZMvs;X$^;sEyWFS*X@u#sZB~g z^tp6Ak`Eo9Ol3$u&7GDcWx>=_+C#*B^yNrx4>u&PC%RU$+a+jbitP1u)u4x4gG1~O z(AnW{u(a$n;Zv#9=`L*R#SHcrVGB6dN5WRFbn5u72wN%GFSA0zRq56a5V}dVU&TFh z*d7e)<001I!69R>vQQ)|bKowoZDxViM^|Y2`MFarF;;HQ21wcRb4UNENm*@{@>8C2 zHo!gk!t%?wnhHqD6f2+Y@lvJ2&k9>Lj_Do= zD!S854l$oFlVbx<_oHL=0O|>1BZcXQE^9lVcQr$6C9lbFSjDnmkRh@POv;I>XjBD^h8Yl< zxeYYgbYr4JH+SQn+o568p`2VqOLT`0iRupJ4YO9%^TxNbL*w_kECyOtQR0N@AYW!7 zOv1;56S*)L>+@}23OP#`^}o9mrdIzOTMbPW&LFUM@8aYd2(rJojHnyYe8$&)>zBdj zyhX@e22*--Ht4|B5klVEALL*irVV_|^k7n?iBgR($cdWB>iAao0?GusgL0(Rg!XM?{_FY_TQr14L+^4P-&KH*dVxI10DLnq} zUgbAwLxADT%LIfi$LByXP|LnGlDCMAX_9xu2#ILs)1+>ZtBsIY&ll4DsZ#e)?#VD& z1*G)QrApm=p@-O&Qum6~?Jm5rIbXNb9a|u(f&0p2_)U^1aK#U3X2Qz6}_O>GRt8qc-sURMKL?Ies=F1izdA?GqG^4|3pMojmIvd6l& zv2jf3_7e(d6g!?$T2h8=@_<)8oJ^2JqQ zb_$OjOfILyEyp_OW-evZdGhl9;qSWK?B28Ja&c31v8RPo6I`Nmut8V~^3&T)13haf zNhmM{gf^ni5=ye$pp~jERQMj$xQChS@Z#IDR~riybZW)c3*PYuX2%%sl5ila|5!sp z3y?NJF^qv0wKa!0qL?y=I8xhWDs$!-l%(X$X-Rt>--oG~(2h8@VFo4U{v_dsl(6nNm)M2v2L6U&9)NI+o`u&Ne*#5H+D?mk@{m8BlA=E8QYJ`*4wzm z+gPx-m&1{3OPu=4A{ zU5?cpBj#9-JAFC$Tx~5+bV4P8C~UT~K$tl}s7G;_NT0}>fVUaE`mY^%KOSxCP zm{jc!?vA5M30E>akuwVhK2yXKc?%|YyQ$FywG0*tx(y&TtC;On3gZQqzSRLV$F?* zb&>YMjCx*}SvuiMzY8ZaHUY_$al-#f<{fHskv&!itJDa%1pM`LSCQ_E-qc*noS||EDNf? zqj~MB`^Uvt#teQ?U@I}qh6DraSAzy$6xfP2v)VKZOCYR8zaC4Vl=*Hz?UNimwQ0>A zI?5h5#d_T{VM;ac6Q(2tE(jVaYf6)=OZK9tdnOTkFjF^FrpDUG=-7g_Jw(*kju*yZ zI@hVXh!4#K6(UQfQt&ctHKAB_D#MV^_;`0taCW+9hyea{5_gLa#FOWnV;)i~8LVWq z2x_C_te$FuOg(ptj_Y+J&DvQLhN;S0y5mPtmY5Fw+=}4odU6%<(|B?bb&!dNl@k$t zu@!j)YUT79hCU7F${!$d-c0lkD{uxQ-)a+tu+MW*EMq<(RdNWIw#&H~cgTlGx$cmb zICKm(4jq)96z7@{GtNO1yN;KT-sx#q4N z;%8y>)h#~;OO?kmq%fd=OMzis18L^TNmxGKEBufMgeR+GOu3UBIY1P3msATJzL zIB9(>0pT%3lD7AEtjm9Z-_F@|Zr)cfsD8fLvDQI#Eus@DzIbRr9Qnl4o*Gny_j7%6Tv02# zW0DlXfDKSfHv$RP=52no!G*WA6~`00P=tU+%nB3rYr)~>un>asD!Me~$T&_o7*}ur zRu;aZAHs_0QL{;tdwa)NbFcRfCWhKzOT9^a`iq+ABt1)8W_&3N-zIiG7J)UGLS?jE zYrHZfE6prZI_D#cGxf`Pxo9J))@wo#Z3U?|f05K+vf5t7&*GjIhRXfJyj&7OR*E`tud~SI+Au|K4N>F?yRvW5uyWNcRf8kaUy@NIQ%2m< zLA6Bvm_d>G-<*q$Ig-1wFK$R#*L;Z@>zN{}g$-L_=2dI~8VtvGlD2!dzArMX7ESgI z!i8iP=z4-oj?z;OPd5nXY;^*uq)SGVULZR+L}8@Q^Kxy7%Z|^(uJGLwFOa1a8E74% z$Z-@|0!K_KlCf!gCscbNWyJo)XS*+!)K$bLLwm+f&iYE789S8Dw5Q_Sq$Kc^dP_?p zPTm-&??g}0h6ePRpn97pGSBn2H+b}pyLEQ0*B~TRQoqz1DePD5=j@?NS1k3}FI26l z%D0auY|p?ID~e_<4UYAfzKcj6yH=}PXTc{HiZry3U$u#E6sf=Yr_6?`Hwaojjo{@y z@#da4?et(sU078dILGe!hJ0_gC3|TG86Qm;2{qHsD~k8>_6@#iRZFY#LB`7qhAtiU zc&YWkC&n@$HqcMQZHo-dgQe*#fm& z$}!Z$CgWLubu&sPl8%%ute6uo$N9JFK$U-3ve|L)xR2QWC5X>=3Q_<5`lvpIWB*9g zx`o3)Qh^V(YI2xFw@nKTkXt5GXNWs{Cj(f3n+!Ib~j%QQW>8d7+GK^W6kzveQGhbS}9-2kLINlzw zdUk+jNfP^Yyc!=ksrHpJN!a6y;;rrR9LCP(OcUIK(L^l^++(k?dkWP*17Qu4f9_6L zy)G-o{JJyL+@ggVSCeNEQk__t1_90n9u4|VS+vz1vRJEya;kHCoYow32$wlCqmFgw z@lE{p)IklvHpzh<2L7K zWS=-SswV%++M~$7{wG#QV!%31R}PwnBEsQnnE`Z>^w?cgA>GSGBa){g3Dgp(Z5X*6 zkPHE~3al(~%9U+48!E~S^dX44Hd%rLoLk6YUi)BR$;k3|aw*aAt?|Og?sCF%kP-)= zTcX((Ch;XGH}Hg7EkIC>7-}O_%H8KU3 z(-Z5^$<+_K3HVXR`Kvs2ZYv0hdSVgGARPy6vIYi6`QhXrC&)3QUkTgGaT(I80qacy zT9v-b0f3-S+@kUbqfI!T>texRZ}mF ztr4GVwNkp<}$h z$Fj7xu=GtxYwbjK*=zFgICMgMFBBTpZ$VRQq)*2~;%Vq{UEd znF(`h-f<^_SkE#mpLKb(Z1)?Crj_y%<36T7Hh)s7E{e} z?)_qi&Rxd8=}Ff0FA7D5eAl<@Y5KeWbsnbm9dGUQGJ#ue4oPd?fcmHu3)C!CyLNI5{9C@Ocf^4qE6DWmD@f_=;Z06lE*pt*a9xRkq;vAR z(?S3coR>5<-2|rJl1kM0fv2k-=lYx2;X5BmIh#lSTgoXXxho(=m~y~o^KvfiB*JxRDw_>?^@Xlok{Qo<7WR-oAMdKL_1%WDUY$tCnkw_y>-BVUn^>eJjT3dO7H+>G3=`%vsnkQtfdGS4v zRbG;{<}MI<9Opqo71e+FYm&Ym6Ghb~N193*4w|}1{j~~hT&Y>4U;)>~cgfuF7-wcn zm<~Iuy{M)~vXsjFIK{N-zC@eUD%~cJf8@uCq{r46R7SXlx{yv%<+@5w%6xiKubr@= z${1(pfj`M&NI(B#`n&ofJr zULVoyD)xO{mHuj~W4&ihf$I&*pRM9S^-t6tPTt!xofs(&i-$o~d4txnA~Z`?O^{SX zz~8_Z@vY)q$OGNfM8$MA)SyYh>#xGnU9im!y0Sp)QQ_JiL^hvf!~khiDxl%O`Hq^G-;tFj{dELFyCcbFGAemuftm5kIlV-w>7dU&Un zOrhq(RyM$cYZ-^TUoZTHrI!n!QzcubLCol=ME42Ii_|f$0?KkX)*At%k`G1Jq0@J9 zP~U0vu5g~HJgMm_VYPIu_=f0D$kt7wJ*Ur5RcuzaJ3Y#-|6UqpJAX-1_Gy}&rik!& z3=^u8Q12bJqv&W%oe)A{28f4|_*FDaaHX_Rb;iUco>&D-=vW$f$&;;;MZP3OB3(Y3 zsKmqRl{hF_i5DqH2C*=C%gngvwOpX<)^iB-_{@zVCURtM34YkDlS z*BmMHYPRFN;&9%;$i^ykcMW0Cd&ZX4ba1R=^s$rkqWlS*vqe1?RIU7+;W(?pR(x0R zEDbIK9&zLZ6b~^w?95AN{U=Nz`iE|!Cc-d0G$P^@IJjm?+AfvGQ3J!Sr@$7l@RWAFN7-$xHZ zH5z}aIu-EjW3~%r>@dpoE}S9F?^wOCOx@~NH_GE@=3Ng8qkc^66~{Wxn!+oN^&C7| z*mzJ)k#jcQd^7D$$w;lNEext+zr9?2BGqW*jWK1agh1!^S@Iks9=EIxl*Q)6?ncKx zq>d>=fSywnc(f8$QNE=p@X)|_itM4WtEBKoyN_n`R=k%zlwA!7!=lemoN+|WPSI#BGdF<=J$LNX+|G^d zvG!u!DT%(^Fj0Dw6=r$h>DjS4K{b@wHqQyi=dkmZ&AD~qiB{}B_FmQ-)U9A*h}4+y zJv=D9UFyyGcb1)0zM)9wN??G!MpH(D#LT!3r80RPs|oMfzKqaD3)qF^Qb;+3P#y0D zUGy%38rXH}0a*vNKBDpVxYcb56m+S&PV7FxR?V#>#(V{?e1(DY>@liaO>yATk*ZU5 zQD7bvwnoZigZnt8UZjipxr5;Ylx3p zSao;0vLt1qRJlaK`j(ZDs~ZqFXQ2I9vbMr0^laHwCVObdnRZ`TbCk<0s`ZfUY=I|O zuXnbO=?!|Jn%cxXXBGn%n{(%?p-d;k0umc{vpWHh{S)CKh42W+xd4PSq>^8_yY8!~ zo0e%s0Di{`7lY>;+XWAV+yOg2U)pN-V94A%9O`pthHS;{Vw5YqMr_u=IqJmPD|y0j z&Oc1QVc*!`jU!WE0P(ZRH(Qj4>kxEQYrkqA!mQX|dZzuD_rUI#`rukoo%(M0b$22o z->}xPs+}D*9o}#Si1mQ4zjWVw!N69>>3Hd(*&`fpsVNGq?@K0&mmovDe+RgtB`c5S zIA2Jp^}L@u&Kj{@ExqC{^u^DX9$w&B2e;|Lk~8jZ$Lbi9bMT7AGbn?^_JtM1&(A3y=0Zz9L7kMnfD4pD*_y~fYaR`E3N2vWPc zTGa3?HaJ2q?8`N+Ks5){K&yj&yG1*#n|=Eib}|;)K&AzF=1x z=cw+~v5WBdnxB(8@L$wo+e~a8oB`XS1&;F}gXL_W5f*ylvU5E@S1;yL`xANTuy}eU=5BIih;b|G^Up2r_29DM%@C}Ox$=RUh20_(6>`Mrvc4_9J%&SL&k^S@zm4TEtZT#b88U;XkFXa*>p?tuOcFsS}&aJ@mbi zlKGLsK=~m{Yfh&g{bgB-_rHl-?cSd4_~-_@s*RBEw!XBv?V_-JN^|9mrX*1E_6iCO z$jO>}Uej7mcI3Q!?_(+$HXqZu zOu*6yIS72JhvN&J^{!8~k@HqS)8`^DjYnRJD8Cw@T0u=WRozk*Sg*#azaipfjv!0Z ziR^^iv?`-aUAftl>53QII+m~ddIrAR5mQ1VFwAS|c-kkb_HRV`4vRz) z-cJdOD)hlcYw~w??AqWqv34|o%WbKLQ@?UQh;`*#zp7dcp-Ol2fFTj$61tRw4^5zY z)La53(}+6JZhv}Y_0kA>tI{sUWknQrl`>WNZDLArhqI%yvd0Zi5U&+j-bRo0!U>=Q z*FGQmLDNMK$my6-dS!&OD}Ddun%YB>r}=G84yqq=nBVZOahRx}F^z3XTEEXowmAcH ziQ<3#n@K6{&HwyB#>#(^lwW;OYIW-l5p%+~w5Dc$Gc|9n;#~-JB)zku%v*%yEGVTX z8d-!O0XkiGgp;ubVJlqoKPg>&-h{H8*CVqQnSoi$S|s+H344h)WvZ&Y*D!rjvz zb@uMIfaf#g8;*2y{iUW>y#X_iwF|0M{+sNv@~2e2&Mo!2PNS=E9SUUQSE(Kj+NTJ2 z$$out^`}uyE6jIeiv@GogH|J=juw(QOxprHf=&=cSneLVKNgmhy>`ORHMp$JHuvSo z8`Tl|>@p6!IJ|w%7nPG65r=n`!3VdW7lvmXK}ywfZ|iCNRJ-}P^)!Ckb)+_RiOLBP z;W!u@_4-8L0}PL2^}q9SvRznMX20%OSO43hX~(vuYu^+ZQc}*5ZRubAgx79Uyw>Xu zJ0c75lIsZqU=7)Q12>)NKjd5I^{sr-e=X%n%368=DS3jLXUOhNl;NznZl)aXU|4>5 zl^TN`wa?cTTzhN44dK|~9E%LMblz|OTSocd1Hx*I^5oH?TQR5`A*i z2uOEkPq`wTQ2=MmYCPT0pl3ike?1`Gw7jL0BNe2ZZu;W#1a+>Gv6D`8LG9S??AlRMS75a;Zr>v7~-+%lOe*-fO|4*It57gD&$a}>fzO2=plEDm0Z5^ zq)1FlEq*rw(w#+LWew6T9V%UBx-rqAo4aw(w2V!pOn3Ir$p5-ShpdXoL*6jUMLp~O zx3WW<1nJh?217(|MIsPHBht*|GMG$dOr2cfdSpGiAzRZlv{TQ;2K=dGH?<$+d9qisX#K9%W-BKi?|E@dtT1MI3*Wd)s$$u}J{~ z-91el=L_JXp&`8s*n8r5GicqpupD>iE1TbrefAz&cNTM}C45F?M^|EGrQG8N5z(r? zyXpQ^@p~xuWSBtfW~^lBQpIn+&_nz+EWb^ob!X8}&5Ga6qIE;IjmhEv4>(OGT6Zd2 z5mi)UfZdt1Bvl0ePYB)~_=th-@ib8l5s@MMuTApK39vg0+Wkhw?%146P$nGI(_`bv zjQF}`?hL^03|TwCw(!3~QEKGe7GZXOofPU-BcU(N60`eTN35Q@vPGEPUn{*PYVzG4 zaWCsnQ;D`Q*zU}w=qv3J_a1C_7IUQ~!kgGSqzP~Th5FMbVY{>FtM4|6BUW+5n>Z@U z9=7|AF9f!GxnM}|E3n;tlc2n9LmXKT;0$*UN7moLb|+BKTLjyEHy)!e?|<8OU2YIp z2191aR0>2zL!|U(V7n_Kh9g?7JawavL)3~+bgi9H~9chWdX{~6?N zW?7kZSF#I}DWl^}bf$~ci>0gX<`x?Xr`j$*7==C7pjO+5x+kE!gDKG6^tQC4#keWCG6Y=q zUFhyqg|ll~mKAz;rUoEMy`Bu{I#XAqp?41!^zPHDIOmvxg=*n7WRr^CozXikdUv+H z)0_zj%th9ookHO5kyy~RP;=3{sgjG{&Cs>3{L*}3`Q@`FIdpSHPQ__MigVGsgMbIN z481#>KK>59yE*i3s9j@*7)#$419)dM0P~Xo-q{hk3*fysi97|sTc}O_QQWgQD%lGF z-v40gzJ;yeKKI`Xi+k!zrt=Sf4r80OiBuQnZ`*t6wSo>otlwf|Be1k@1AsSEx5;CZ z6#3vk4d5-++)&|dOIh*2f9`>xEU92OD8v|Y#t%uD8EXT?gbcx|liZ2#9YfB&-aB6j zz`KzST6GH@v~Yj`c&~)i%a$~L%&s@DDV?)A#xeWlEJQ^cnH#OwK(8)+}Bm0lZr{C$j|bZegx_XQs#7VSCkC zPM;F6;U%&Z79VJR9z|ZU1EB-1*bo zG!mR(>+t6-HFs%*u^$^92sGwCVWJEbo*r6=V`QGVT51>f_`xBN-*$S1q@=dzk-by_ zU-PgBA`m6NEss)tskDa0(M?K8?fNhZ)Il8{oYMG`(x&_C_&37#9dy|4#n!lQxW5h! zh7}|_@s8-}NDOPNUD8jn`$HqVe#-knRB*z+xqbqDW?#!5>sYs6Z@s}nvombBmr?Zp zF1(_!6#3_!&#l_y=&ky&CHM-0Yv648YnYL^oUY#1gNuL^IJLhfrMJJk@3Kf8z)$-g zQngFNP)gB#QG8rSM&t}W6=w#9#!5Sd z07GCno{0j8aFk=k^l;k!xwrkbaA+NWr}dB8h@RVDi-r{Ut$mIORUOISNlQa&fTn>< zw}xWJ)2Tm{JCa?sd_udP{Cm_sng_w(F}gR7#8cbKJC>$0=CGd;AwvgNfkzvbzem{6 zi?z>2o@$^AFjgYe+b0C(HMt+(8+?qe^=e`T5Mob6x~=^_k@#$F}x#qV12UWFjWTBp0Srys2_ucN;P_Y+DJZ`U8EdqfxMb(->_=OqAZO%vEfLg-R^D_OQQ@cL=5;hRuu}XS-a7k$&$M>h~d1WM;;FTc?Ysf3# zih8^<>hemxcx3QOI?Y{HHM2`Ds~*R2w&#VUl@zB@V~7$o8+2(#=hKRi-7_~HCFCpI z;&lFY-Z!k^;m2*Y9+8{jDsWxfSyzby$$Hn55q7K!odT}Qq|ih<5%yD9x(!g=o)Clp z9m!PyRvo}G8K%TN{hRoKjy0VZ7K1Y>Xq&~3^Cy1J1==YS+C`(i#4bsJdqMqe{smsD z9p&U57k(D5b>n34c^&8M@NbJXg7Bv_ywkWppYYe-u}?jk0$RFcooOjE_{@Cvwp?o zr_9Z(!q+8kUOE{>V0rV+@UtdMVpaepF|ka&?{}<|YeV)#BBp|i$(;|mbKhd9$1kCp zSNlOg1M;js77hp1N8qPA*4tsmekp8PeQZ8i!zbsfXnbu@5z6@)$9GW)=>I`g?Jr%h zu1x)#x85mJYx(0?pU<`&-wEK?t54`>%KH?YS;u$tT^8WcY8@Mlf|##NedaH%;NjMq)p{}^%P%A^-?V>3fpS(GsN>96!n1Vg)Nj{iVWKRkFS*@cg{4*- zd0llbQ=6#hFPYx@O)B%*uxOdu%*~;%M}bKnO|7=*S`IcjZ>4T;l&NjHwEIjIw-e{a zv0earL+#MDvo`OBypCGW$2I=arH-%Dc%JRl`HV5&>;m+bHbx}efl~fbdLu@u$B*Yj zL7h>xeh`Hho)?wyV!NsLu1hRH6KBw18$cSzdi{@4f;p?WyjE*ot0RL}Gc2cmyu4N~ zPmbR|B*CQ}o;)rAh!)VzF^fTPte5qO#C-DF)4 zTeUrcu>z_PXdSK_6^s>T-XHg2*d7s#6#-#Bu`E`s2QgM68^d*Fu~z<4u6|1KU8XA& zYwZnA47^Rpx+Q$T^LUpl337Ry4>*{^owv=tSsgIef%KW3n~%pBA_rR;FW+4BZ?rlt3nh-6qPGDfQn+nlBkpmN+;A1GMnsX z=lwiqW|K`pxO#uTKi>D7dp$h!JkNRBc}|%#XJ=Gms9|tsAg8@OWM9s{#Ly4|V-E>_ zmlPV({{Ons|8=9P-DqnD-#w8&x{g8m-8T&VzH>)iA^m|hM8YCcQ@;c$)Y|Z#-yV31 zl$WpKIR~DEs-fNYK$Z72u~lK@xbM)=%dnm2fGd%kq{5~^@?t^9{)|@{I;CX2eC(Gs zz+^${?~S#SH(vhoG}r&U)EwwIQbJ^m%Zm18iFupMB7bp!V9a(W4<`S6 zm3)#28*Y_RoKJ7bBGu#-`F4Wi>!(Z}={OcE5LvmB6)Aj6;xb-$)et9|*``yz(4qDB zJZQ8|bbL+wnes7<+wPGi^Al&Aj&I_{yur50q+MmMsy=5|op*=qGVF^2!KRGcXZ)h< zC4peGifO%KCTG5U|0a{Uk441`M)}3O$NVW#|NLCT@qHw>2az6z6S4`Z%HOuqMBPTV)puq`S^bK)k_|#~x!%no4lG>zv0O%y!w2 za(13$*62Ewo#@~h3KrIiPUsTq@|HDDZ;UzCD1Rz?n=nppK{g>sCrM?KR7JVXPEXIZ z{)Mb&7MW4izyp8HRIise#EGE3@46l{?VH)2V&O)*$va5Z+(S5jk!g~+ffQ8N*`>G- z+6^*wBar`VaP=2+>Hpdgh$8t)E*pIV6#u(=nZzBEPt5B*WYRZS7N;9d`F;mguij=2 zb<|CdkYDF2OLrXdCPOA;zRTpMnEknQ8J(y)BTe~4mfM-YpZ&NMx|TH9b-4=hGDvob z*n3nc4!mpF_30|LFX}+Mt1m69T7QTQKHrTx-1@JI<8$4;kIIf!oWCHE!Zye7DuiW+H2adX- z0i7-GHeP@0{CEe;uJV~mXVA${(hK5-n~qvF4vzPqr>?yDjc@WjWAPoG?g*5PF<;~5 zhWAc5-7%h&of+Qu%Ux2wVejEWDCU^f$dWr@-RuY7H2Sng z=3nnRpT4HTJ_LkDn0L_|wqpHGx~Hl)R1qC|L=2QZ8ET18^|zFZ@m>tj0TPpn-GNvd zC3YZIG=>QJ^MTmm+u^oN+*fw6LVGGAmKeKOw|N2N$m=?33GOi3 zQG68IRp;AH`E(j$zZztPR*U|#=Na-rx7tywW|*O$C2rm*MC>-0?#QI--9emW$_J7t z3Y0z_NEQToreZK)Je58vXL~;B@&g55G1WqbC?c2Y`Cg6ftYFBTO*WdkN~i zUV@ZA?zQj~%l9-;5B1WsEs1qvDb1a2u=^H4CxY2r5Y|pAG<hyxe zm$005-AoaanrqIG8Ars7Qv{E(OZiKH{Hwv$f1k_bER)t;%cVEjG`mOH9sWl8xvzBm zOX*i_dhhcDFdNdokBlJM^5kUfRT*u}FbvzJn&fcB zJ+O0q69n^3548QU11tEF#wvs?;~A6Ve6i3B{U+nXKQV2ai~!!)YBDNdxU*Yum7{F6 zvDG`SeYmtaLW3JaRFFaaNQ1?bSRi8~gN5N{rn?q%oKbuM$x*ZK$5=h{H+&h^8y%A$ zg*d*JdJ*oORh6*ScC&MY4)w=SGt`wYBos(WItRxS5c@|gITWTSdC+3U_JSJ% zw12SRmYVbj+S3WQRQIv)+ie)3gleNOe6l`_8G9?orCt1|3LI$O948cs{PmWr_o<_b^)8a*)V;5$h%txa#u1H$yK?giJgO{Gf4%X`&hY?yrZ)J<@x)wEdHN^pst+n0_$@ad=Ti1%?CPM7;@l#IE*~s_1G!G4t}@ z8W>+MHp9~;{k_GTI{InpZ>7HTaa(2I&A7MrMKg4(v}22b%9i2x_NA76jtswYK0qBW zYjGKOPhbF@X;Q<>@*&=&&I2>=HoxO@L^oV$FoNGgABk^l*(`sY*ZZ*UKJ!@63%@hD zYuHS_PBu*_=5W}~&7@ZAKa`_B|Jh)XkXVmzLZ&N&!~Q#StkR2R-JlXLw?eJ>G-Mlt zfn41&)&e*7cQeS7tFn_!R=+yg+|P;qS93IDmbWC)tI+69g}0$3VbNPmdhs$*c4}Ss z6YEvp2+o>>YZvIR);0bD2kU%;L-k82QddH$+a6r~kGb@}!e#xjK*?uQGCv&sn!=LnInGo#Zyr?qQZ@|l#Xl&=x4@@#ke2+A@xSiOvS4np&R|np z#=c?uP{}7uWsERvzPS8i1M52Pah}~9R#_>A7SfFFdh!ImJtOnLwFYN+V&;GsFu%AI zM{1n|T39j%Z2L-u+Q?Mmi7=~*m}UK$2zMIUxWf$f`|H!lVK&n3_KxouZ^gU(7Bgi3 zwVqm_!(|ooRakd*v%*7!Ptox+T7z)j>TZR3^5#w={py*)&azl>H{>1XsjsbadZ$Z0 z_HyN@mv{*{k6I@a9kw9Jr4xW;TT&&;Hf78`Otm@l&)2j6zg?L8tu=@0ByAwiHR}EP zL&iR0=1pd9R01b5;^=9`{40}L`)KRPgzhG_E7$*wu}X`zD#Q}*qrKbzTOK=q7r%hMlP!4fwy2@boX@+a==GlBj*WPS0ur`O9yb`F?Fu1{K2Nb*+ zYQkeGC7RJ8`6jkra{i??gym|P0 z8LP)haq`OLM(~cP>+heU!oB{wpEde=`pt$N=RG#~OHCu2QgO?b+(>RD3RilS`MdY4|pEoNL=NSHD0V@ADMbO*6gEQv{x- z&+vH)cG%~+}$vo9=#bPiaK0j z+LQERDSv?(nj|Q_KQs@Z9a-8ZX0$lf;69E!Xs6ImAv-WYrUxB77o6f+)JA!e@l`0G7Xu+l0(Hkq!{t)10^&yfUY&5ejqsPI{bbApQ}5L zuAE_rE*L5z_SbF||K6}y>y34z4a99k)f?-^@!;;NdSe|}W^%LrzrL~lJENK$cJPhW z!>k;gxI<3CkQRUK5wol_j%%XqE;2UCqvGAOcmmWurfZx--v9q?ck_Qgv^q|s=S&_1 z*yS9~sq$?l-Y~E`&_SP^&*U(O`=u|Nr^NAgM)0#hNB!OC*l#gq1e;gj+)v-e+ie}+ z^LKKT=2)axd@IcRWber}HS#<(cwBX~e49Sl!p~u^$Xjt{;1vB4Zhnc%$EvLOc^ss0HyPTirmW;o0uCp{hi(6{>u3s>~q17MYmrIYJSt_bf5g~{| zU`|SiZ=7jJV<&0RobiX7QpEBdOF2!tpF^w@?IFo4LUBLj47B5lb8@b}F=vsHOLvtc zsyUo?=j=HhDTlC~usG))#?QqR_uwyDIJD0t-&%xk1T6b^p+kQ3!wkt$e+d_# z`okirwO>Akk=6k=`JSTtJwmC^A#AAnlZfI#iamr0QXrS2E4xRwrLvZwzo+OD_?{w+ z;+8)AEfJR=Z@TidWUV7rY!tiQGsxnLN*E!0_^0Bv#cOZ0GOiBwU7DOeX46L@ej+mm zL!>p`*5wPNw6;pk%5qBaLV@Nq)ZH@79`b^3@%t;w+%KRf63ZKThA-_XzSTr zq(5f_&*&Ejw)W>11cGh+>8;JsbD;qNyNkadlo7Dc^{4kyQ}{IcHU7|@*HKo;BKPOi zkT$JVRcWUg@}csf{`6kvd7(XjSxD%)aKFGXk@8V!WKAi->D8Qi*Q{zrqUs-hH*kwT zy`P$LcFp=n=?Yd14%qj*W(@xuVkEw!iSK~G5LeilHHGP>;?Uuut^BVbzKTDz(2#)r zfZt9H|FdSzqxU8yV2|O0=Whh;vHmp)`#2w zXb0@6MuwKgRu9gWwy4xxtttIpzdQfDP?y+hM`v_JhZD7n|4RKTJx!!cij|_{PaoqO zhPw*l8`rCnhS5&;QTW%`I!A4JEuE_;ZP)9+7p9ZBvR8?e>9JDWHjw^wnK+XEUKKwo zyVLo{S8oKjCsnrIb2ZX0+L3yZIH9qzT8}aiRlCq(Y+q3DptiiIqVJT1vdgnjXAk>P z_nWecepA}BfF^U)Sv{F~{VzS@sNF3_7sNZhr|U9b=UmN7w>>M}l24Tr+5MfWoZ8$T z6a0*9)rYy40@N5+V`o0Mf_}>UAQQ*L6c|sBVSZWsX*&o{^4{Ikq>r zRie?bt(u|GQ_N9H4%f`~qpF$C#2hee5Z57Y`M!C=xKumZ=%U^GG3OxF2urk-|N|| z&+p0Q(bt76G52jjz_ts8u!YO5au%leUVe+USq`O?Cd%@D^A0GbiCphG%W@p&ZUpXs z1ltlfLD)Y@pp8&NpJJeYWM0(Guv9)|VQ~DpMgY1GU3(wJ#H6GV7&Zz@!@3A79*BsB zD@?W?K0rj1hx56oI0anG-Xi-A_*yKcTH+F*W6Qy%-jeO8=Dkgh#x;h}^d+jL_n>I- zLLpEp155HusEyWwONhYI@Bx&UmgW)ur?GW!G1R(wDB9Z%mOA|~WBWrH+*teoZqp|e zWmofT)cO6QEWit>yg81r9DHs*zkvG$-0nhf+peeHZi`~yO#z^T6v10@WKUau#O#Ew z#^A;w1vYX3g)LWcoqA#b+xwxlDPPo48Q)Sg=>nn2NN~*^F6*w#g!v1!I2S=^83w05 z1Zutj+l#lEymR4ts5>*j1tws~_IH5l4#&8y$rfH*299GgK=t6;gm~xRFPORI1Bz`g zbGh?$2-{al@w5;WRu`X;FU+ns?B5g*QcQ5RT#=9brd;lL3EMJuf!j3^dz)MVRQ&w2 zJf8|0xVaF%Jq_PNXz50YpBr5HvKWem55Q?f?``! zYGN0$lbYI^XyKU&L7Sc{t~4bre9a2jd7o!8OGR(F+yQ4^!IK5Sx(rf!Ii+uyC2RP# zA~$KrD@ScM)klGX0wXEiAQ0V6CS>=Lskx!yg3}E9@z#}+(;HR4nXA;r&?ZA-ZQ7=^ zs=9z^8oh~Q^*AIv$TNZm?4H(ErsFI()svd=7d2EaFpW^b(P{|(vsU}7uVO0h{>~>- z%z-+HJynJMt!bkFf&K2iAqUq&-yf|5|5YQncLEjnjiPAI(JDG@W>vpaXdpKndgf2> zrNRdiyo9TW6`ACo`j&W|&8gUUVT|t>0H~oknKNdVEM|hUddkDEKcrd)4L8Uy9a(g8tQG739SZ z-hFYI5qhqClxus?st8W05tCZ{jMh}k^wK|UR9pMkSgfX#l)XAJt~OsM%Y~1BvzVLi zwj9-?waEZIipwCUk(_r1fIInl2GdJB0G-AO0_VMagSEz3gO`H5O>rJGoND2t={XKGY1qOpXfY z?NR>G<@_Xi6cPGJqBy5Ytzc5AU)V!qC$jB+I39koVRvJPOYh%=cxVG>aA#FB=3#{U zUwmnn%_jbZ{??jb+Hj^nG%4mH?CU2=?K8vUwSmD8w1L4j6(SqWDzHZUFbv~tqmYE5oy=Ux0lOb} zwyg%3Jiz~sUv^*OPd`zGUJsrTu%Gd#%kFiNslxY)P3aBPXwN#kPla_nCKXNBRq8_wf~ZkF(0;14Y;a62yT>^Q?}xO{x|nr^1V2k)>a z1Z>kE>f67fe%KfKS#T5WJvwaB+*Tjg|6v=0XedllHoLl^Aa?bj@;{eyk3g2khq&kZY=-&WH*LmErZd;gwGK zc-2g>Ll3jxPR_j+n*;XMmCD@_Z56>hA$VKhW`AgNh#UF){dRBmOl1-eEez4G>BZ4B zjHzrtRSBdaDJ&r5@YisgfV^1O6WaA?48!$Z(ekAQuGevoPJ zsi4{&9A6K9@48qRUI~0CPc+qwJpBAfKaq{$)N8@M zD9)afzD8F$(VxC4)M?@iz@6OS`x6v zo$bYrFDNg_IMr2O8BDuF#(UN6lJVeB(%RGm;v z+-@a$_ELYnJvD1CVr1o2933~cO0E`odH!tw+kK*qeRe~6wA?VmK2z(ESX8t>2At)u z_p=)cds>Elwzypphgi4WH*cKdueaRe-k)JlsxHxVNoe;WMeb16xjfoHaq>g5I2j@7K+7HeU6(r=vK2u|U`y zEEwt4C_3qFEu|3#cAf$#<{xarhLtwv*CE^-XYd5tIn?<}1YR;8b;mUE#2i>PKq?#D z$X~cw>SCZhvW#`pd=&5O*w0h4Yxc1owB=%`TJpwEUlb_>X8+XR+0u9r*AL#EOWme~ zvV1mfim6JinJSVA*3Ost0>|;3VRQB-v=!&5vGYToX*cVSlzlsYrtU+%v0&JJp5)!1 zuaLSpTxO5eINU7eSt%x9;JRk#qj(%GQg-~w!if3d*DrxO7SX|*&Ok~3hlpT%a5`>9 z^=T#D)`un>1UDnXwov~;QWpaq3A{*AZRhcu(c>?YoaoGyO(vlDmpr!ij=van+uM== zE!vl(xWz=binFUd^+cU&_lXbO6DThJ0zMtBeW!8ES|`P!1*HO^ZugbxBE=+vpV#$p z#YIngxIK&S@oG394D+B+7hY|o-Q4>tzig3|QNE@B0;khxGqDtxc$~Zzz0Jf@vy~SF zXJj!{$%ODr+5&>^`}N*R|b2n zW80mCQrFnmvrtP(x0LcJ@6YjVVsFt`kC)@H?U-iK3fz0B#AJjVD&kTXf`g!OK!Q_= zNl?p5O{r$I(4~un;v!o*z7w7SypR_L$-bA!xW|BL8a0czMGL`cLKLSwma=<*q?%hu zHI>MZcvanIss&b*DSm!(j2Xb8R#AV1+62jE_n0EZMA3HGie)3V>|QA#fHT|z7L7x4 zUD+e9+mu48Q5aejihk(M^_Fk7BJ`N9t_nq#%N!MIiH>Lys|b}sK#?oi(-EU+j3mJR zcP;U#vW>(lQ|eOfPeKPv@wO<7X09GOiC^8ORtqQc{M)qoS+_?$@_Z80v?BP#Dm=2h zSjBoIiin@f;&~*J#VzejrAJDgs`#bwU=>JT?nX_QB+HjbE_*?0+=QY-XG?JoMcE6Q zK%p;%;Ie3Dsiyp2Q6%0JEx2rvz9uT&R0^VOr2qV+o6;hb%yskiP!W_v2Pq_TDWH03 zZU~FU!R${X!+0f>)T1l71>K`%`e#v1O10uu2Pc?pm%poY=kWwaHAO{xokw57a;V7g zjL~LAJCEfeV>DSQQB^4lch;h*-+-8I%C+u;+MU>Lsx|4t6I!*KDygR{Q=q=3&Nih| zbT4uuTf2}PUp*hA$)HB%fDjWs>=JjP1A^&BG#b4$smCbc7NW`V&D{&r=uRYrCEm4? zLYge)B*cUYsgcmwV%jR;QWt{L1TKY;k37v1D%91uOgYKJsf2*wI>>O;zplv?m|@T| z$?_AMa5sZTC@X-1Y;d@R;54BU=dy&mAxEmYg;Z1VD_vX*FI?Ji>R(18MPB&O6h%{1 zR1wUc&~X}P3PIy^VTvspXNV3-Hm%OpB6_X{QXu6sM2F^3BjE-F+UIg< zpJxb869gxhLV!gRV5SzKKXh6rwAnz)v2fU5h~!m<;DAD#1-D8`VG4^!P$``) zv~|(dfP?@}6m?unmCqJQxV-)Y-A%S})UJ_i8b@vECc01Q-k_2v>1sl7vsxOf^OwlJ zys^n3U`AaKCz7WiCEU&Qqy(kw#43`@F_z$>EV@@qx06mJI)vbLA3CZLmF}Zz(jbWb zMAsw3Gt%{FESFlFDA(4b!-^_GsOQmPJL;yWB9)+6;Vq+BJV{CHT$jW)cSwMuMSEk9 zT)Hk9uH{ipl4{y9J?=z<7agmWlD2o8yjx_y&B|zQMG0CB`me)K=rOFIglVaSQ_xh23&W= z+bG7nJ|V`<0iA7bdn4b=0U&PzGAewcaPJ1A6FL|zPCOT8(D-dNpAl<_CFnIhEm?Da+;qZXGup|1aW z-mckyP}KKz1g>{)P#71yzY0Z0RFON<>dJNFWXhHOtteco7i>WgtT$RyMxI6`Wb*N(o zgfW8as!dRMqsMA+L`4%!sfPHNp?al@i&-Zcl3r*20ltA=Q%Mai)Rj^p)Ketdf}&Rl zQAI#h6PK`3Bi({anH2O`px4u!!x^o3wsE5lo~z09#01AE&j;6~!)ww*&!fnR7k9*2 zQOp23ek9%WRZHiZWSJX5sBZ6(8af}wil&%m5_g!kb^GbOawDzNEH-!ua0iK#k3qux z^J8+Ys_d8vN6Yq#Xs)?(#A>M~DO{Py&il*)s@cb;H`aKa6J|V)HjF8e5}{If;nFxI zILi%+%j{)IeW0n81BJAlPROBA`og5j}vy@whx9ua9b zT29HgCZ~OvG~LltnbJ1GTwAkL51rO#h$73g%I&7Lh3+FuvAs0B)}Bf2+SdV!t`q8?a(CW)g&cNLDY*vg)(=b;rI&!UvlRnEyunc;`&O<)?@O`B;_?1is72QNszfogY`LJGOcm>y2N+T`*a(b>KJ zpu0l@9$&1d{>V(7zO^=sC=zG1TNUG_ZURjZXAV0GD=(iEyRSX-O~#mKRpne6wb$#} zqU1=8q^Gb7pKulz&B~hqS)4o0br(?lbbm}bCE>Fq(e|mOu$MVQJTq%9hpEc z9YC>SWsFN6bIto27~N$$!)G)fVD?;!>6#j;VuHtL%=Z5GRJ-n#S`)(XBIvnfiZ`Op z9sPma6n8gOrdZ;RQRx%G`#xWUzh=6lvN!sJipg+DwMvbYWKbgk-5k0VH|v z7UTm-a)D;&kK}Z{@OhE0EyaLSG8OWzo!3!>78<3>T>> za;benjgtSkDg5!@QY_J$nu=6+Pv1nzHslv?SAyfxeM+Hm+eGLzjZ^4oszei&L0Y0t zBP)Dzmohx2x(EFI7n#+3LQIAIQJ-RQo=;L4^R-V}i4oO=PmZr>7;C_*c39EH2BVO; z$G)$aS!%+ZWU(uJP{fCX-TrRVc{4sC*WNBA2p6ksVkz0=$%a!k3v={FY_3cJVmk+ENv&uYvCxm#E`AD){7O6{2!qp0s<&O^JIJ560T)W#>3)d0a zMHI!hOKssY^>}J(O{j9zqrIs%<6A2bpJ8#&(9>W)JRne8#Y$@pP?(H& zwhiSnxL=BW;3}bQ4?+#Mq4>EDROc!Y(8&O5f%v9#g_?r+fqUj7SlS(WpfRYJhg#lqUP-u+_^M4f8`j`kfOQ6#b)%;!q>ZgcLUSv^?o4Xh&p#^+= z8w(@<3EvNX?L2FC)#*YLd%IIKzn9D8m!)`#%Sx#ERp1hiw_ujZM7=6^i>HN6$GPJn zael>0us&kttRD$e;y5TJO@Qib1Lr~D%I1P=Gup!9_SEQB2Wn&=mn)Vls83U@AIoLQ znYu9Cx=zV4T&|y>JeCz(Avmds>RJrJIRjB`?lhskYNB#C)RM;FDxt*jP}h$zJR?_F z*pI#NbdzBqQCg>sG_cr90nUZCE3p?`A_=LwNoJ|vRLcLI*J2;x|ITau-+3+W`2Sye zUMrvBq%=zwWQDTi<);w35F7-?yhBBqQsfH@)UwiSS)69+#i_2BCzM=4X0jML;Tf~? zyq3tgN0_Ejvv^yy5S%7NaSS(_#XGM>jk-;}YTo_H5zcGni#!x3PRsUgf@05W5y6^f2< zUQ07u2(2DEhJN|^DTQXy7G!!+iwWJde8J(-kPfw1UAa(@`A0slrNt1ZLq$>1Ugt3chkWTl z(axhaxt%9Zkm3_P&(&mA?3OYCS3R#KF>-H<^AYIYZ)u!%HnT#zmZu5XBGlES-7!T| zt{^j`8zr@#*Ft{v0YTJx_mBbC9UVgC;hkpoqL-HCItm5vP|tvH`14wr9^%*A9LB<6 zyMRkw2o8e26hb~eCGhidC$x(|rJRIhT?mfzS^+LQWHKC8Ij=> z+`FCX=d~o(bEuJULpJe07ftqgL@+c5C^RQmE;C&MESdmw%4du-9MIDB(3Efk1(%*C zeIu-DJ+GAya}NW76GaohX6Iy;XtMA#_PmxR5U7;#TGM#Z)PvAVT4H)w#3Z28JFg|$Lqd?kwuN9LO0#(9wIo`y z?oLS1g&~(F+K+HvORPH9MBW!7S>7WM+ANAT3vQK?LKGdV2^K;-i=r;Nnz(hWD5`m0 z3lZUN(B1wsj@q%wmKjZTI+mOHy0hu+|Kv%!nh>NDk>ogW`14wblD>kJ079kf#3<@o z$mN)P!D$w#ZvUC0L^4I}Lo?Y%a1)yDQMAI0DmrXO z-GmPJkM^p1UQ4?qwrQ8fLe{-C%o{FvtWoKb4iP%t*iDvHi+zCN1}{2RD($4zT@8&XX0S|m1lG+6TFXh%hhp*2-Guaz%mYJ42D?7%w3zHEAVW9!8T^FO{R3s-4%$7dJGMc0-ybCJ8Ft z$Q1piFbBj9YQ(loq2Od%@E$nHKh@4_X+>I!R-`S~o&kwaFJ9v`izeiXP@MxZ3waYz zHpoe=K~|uFKS=>>u6bTd*RaGJtw}4%6itR`!Vzh*Xv@$XUdzOERmg4*xX+mMN~E^) zTA3n7G*zEdD>Z4B{EFa7|Bs#O3gt4t9Uahu5<6!Kg@ zvC>t9_W$m@*3kq{T&T!3No}|3j&NQ}_X8a}T0CYAY5+go{M-LZchni(_R7t2T^o9XHBu zQmyU~&+s6O{dTgj5@zdWy189GB0iK}|_lu;t) z-lw+ERXMMv*|mj*B7zvj-d6=&u^Q)&K;GJh_|g-_F^P2Ly0GebEh6Nd*XqE!)jhA3 zS?#9ka07JFf-R>n@rFpIj$o45`hDKRK^Om}{&qD?JK`N7^mz zv?fSoT#s}# zvR2l|fn*2be{o(*2UsVHG>MEUvFEh{g3FZo--{hHS+(<8+DbF(QuRelg-Z~kF2U@% z6tgbV$e6ngIigY9d96GNf=S$DM%HtUyVC5caa8g8DUjDs^-4o}t8@(t*C&E^`14w| zB?RhfOlaC|9RNf7B!%d3M@~yFWn18g=d~(j8{(9>Qrn0h6RxWLhgMp(EzJ zmbU{gV?y*Vj=)qouchUQRcvDG?Pm&jWT&4ZTX2YX6(wt&DDuv0>3ZUqr%8gRZ*=t# zRPDT0ZJP2#iT10irX)?!E=lm%@)jl4G@05dx!b9BUaJ;OF?;RRG?^8_lZ2>U(_znR z>Buv*xR3eV=LeP13%G&PA#{&)xsUn0=wY^ZUMp7=OF|s}ycR(!%^(0tI|)tE$y^q7 z)Hs|i&Cr)Z=%`upT^wh#xJ>&|@+b$F4-wKg;iAcT#$))XpO4|kG z5|u)LMH667Tf}ABB2n~PzE^Nb=DGJ%dYii1d97$&sS#DAbs%0WsKjZZu2mwmHciCt z@aMIVUn;wYm~G?OaRB(ENbXNaJnv+`K;`!oYxZeSH$IO z5pl2&5_KUsO^D)163ybB*Fs|I5)n(aqdTu9@{XomM3LJrh6G9)JGNmgx#Wq670qdu z3$f?5cwrPImP7il%6YAms-M>)K&TGN4LgrZ~74cn*A=EgpCDq*XT2Ux*JO-^F zktv6?z^$|@eMW=zkhOGS^`t+y}0-G zsBA~|*+641X^n_J8_>0+4b%Zop?^a|(^1#=$;zR;fHzKp&2uYiPF*otWO{@FPvusy zU(fM8SIB^;qJsNu$P{JB(Q4lwh56bPjFOiYkIKRG_wisXKFp@CtirrnzuKd+|+WMRrk+y)H&i^AJIQ` zh`f7i%#Hl+|5V0qXVTR;62FAr^~B|lv*;IEYJ2PB9OvI({Da-n2X{NpH;-P3$-ls| zq3<~aRVB=K;x3!>F81`;a2)Si@5d{*dR~7Q`8}|^qk8@R1!}Lm2(_2`cn#Oax}0i_ z@I}sV6A4_Kck0k$9fu+3*_9_d&X4ykfV5%W+1R_jgzIhDJjQ#hEir9_b0?ieQ~&(( zYT_I@347Mu%)9R|<~?6)BN6(}%yr0F_iksPw7=PoUk(3YaWQBg?Qwep8gf$*|G$s}n9u&}J@ntY8+*2%_=Te`dZQ;p z+T>^XAhyE1=6~Ges7tQSWSGr(fH=?G$xGY5?(L{EUb`2Q%`_V6-E#8BzjUlq{?%po zVb7*Pn;6mGUcg(+rbwe@Zl%dTY)KgA6XG9cV#IT~D z?i&{Hy4wj~V9)r=?s9yY@3$c2clc2ZpUT(hT4ySzc%D1ui z$&){Gd~vtjhVr35qkMd+BuivAVKbL8LtjalK27|bDgTZ88Aqmm4fF|#@zwZz)(byE zSo;qeWBZQp9jEX#Y2D^HuXYjU|r}pwz#W($qbM?P1 zCvw#sGhol-YG<~=ONf7mHec#Z{bX-ty%jsD*S4V%u-`(<>*pJe@68*i_cm7<&scnw zy#=%dywY%@p<7^f|uH-L&!^@hJDLmCf@R&!FHns$I~6(F~md`xV}vyD*H9 z`Hi9d%N3%^=)hWt`gFFoqz8VU^B8hIlS+A5{PFLmRv)n6@H@WC;;}!g5ZcSU|FFkP z_rG+1Bf5L$1lG3Szevnqy~gofd^#`VYjHhIf7j=m(>pu9FE?3^@10_cwlAM5Ltt4x zaV|e2lL@qC9+$(j1fq4zhGTHaj}}F5aEB&CEowz?Nca#lGE;!+{!z&9c^q6x=Q9MV z3Fi+~10SOP*sGXPZra6Ya6QyG4qG|veqgM1Y-S6UF;LM>8yHCF094l7WbBUo@jSX_ ztuV=)`XkZ!Yuh}g_Qh1)lsF=XB-@(lmeg36%Lp(cfLR}AGG6RcDd``{1=4=rn=cHe zKCC|eUHENGccIXmSbc0eOjVad z&3FN-^ET!*83jx7MyMzLK+&LKzN5M@WU2UdSvb2MDBn{r9f8?Ynz z0)z|Y%NdnWXr95^qiG?0i_v@PKk>_j9)-_7DVtF40Jm>8D%3sg?*2F`=1vEKrh{5(qbZw0EuI@Q^~1<7?v zOoqP81SfYck_EIfd^#V#nE~JCo3of__U4iS=`ioRh(aJ87)d6HU7_bl+uiw+oQf*J zJ%}l8ZUNm*l>_G>-?k|ZoCDRi6(iluY%=IJgK^k~MJJmFSgmdAmB_Odd>RVgJ%Yqv&1LBpSia$Y0SJRM6iTp2ilhwEgSE7?bhQ{A z1@UA$5<44`Mc+lgFGs7&{I;MtE9% zNsCB2$3TsHKuDVapY%s{%n2};J`KyMYY`P`M6#du20G#dclv!Wiw+l3uW@+a2ktiX%`}3`|tRY{53VU$aomnpBVgJmWTVLJz#9aKCe^OeLfOo zfDLuymGJ44=#Z@pCoJqdM^vFr;seZ zsT))h;cJ4M&80_`Z!aM9y%ll%5L}0u`GjVIDRqDv_pq2(I%ecZQ20bD5!Lv*9jV~F z{w%z|0Yzp}^@1rHqUr@x5bV5;uS5SyeO+U04lL?DaAR}e3%2dR%5WcM?VAbixGVEg z(%+PeOnpIXovZl0+`N2Nr0esU(XfJQq3^TF<7a_%ob0(M3Voj|ZsZAsyz=eX9oGax za;g_u~F zmYD-#mPuKD7NoM3*%A&&w7R4|kWS#DI+}_>!7IR(bV21y#8{RN8&3gq;GJ9s$bp6k zLfgkb_k;Bv)wCJI1QtdLCC3H|Szk)V|=+QP4s?9DljI`{gA z7;NRsb(yP7CoZS6Il7VKGhW-kCS{+Y>37oIo0=Jp+VBc*;#d9y`P4}*#J#x9*#vMa z&L@6B#5{=02FDS*_z4sZ2NDn;^GOU;cOBK#y$DFU0Xv=dG6lkG4aJ{^t)(ZT#3_=` zFR3}Jkt3El2W}Mu>iJk_*T3+4v}OkAD39df+du}t_MdVm5|N=ceWe2TMj^vfBd8&{ zXV)4+azm}PmXDzIlFpN8X#I`h^B@z?a&r+s08xo!C=#9km-qluG!*v<4kX-4gQ|p{ zZb@yeIsThnXugIz@&Az3LHL?X4MHBMk@PHeDS{wZK%!xT!3b*QG2Gowk$O^A1q5Hx z4H%oY0GzH?{|qx0O6WPCk>(x*Bxb_gb`kOtGb!52D3N#)%q@Q_1UeC1Gmdq}LLCi) zn+Z#zbi=NL$QeLP=sE~lzPCWO7{j<4IT7t@4n9S8EwNZ(mOYxujrK?a9g}%<039&pks;g+U4}$@FAk~#~P>}BsJbAUfWFr1^05fn*jlcLPO392>TCWqOSqe zLyN^EHg|v|7HLQ>*)F!%g&J&v)fJFa{yp8k^hCs$%z#?fMVg~z2BOQlP=s1rRC%8j zhP1k4pOPPiIw_P~hvHHuNEPoFX4(DQxty0t+f5Pp`w37BJI-eT^XP4K%^tUtn~O24 z_ym)z?T`m_u|RXFR(!XHC|oEWMI|!~$!0P7eHQfZR$PGDKOVWEWg{4GbGeMj9YrNn zEXyXzU8l4^gs_ZvrTr19AxU}MGjb3-JWH2EEUuLWHe~5+rS?-B-Y2oF)bCFRv z0`^1oG8q$qRId+uIC1y(Th2(J4lM8Ms71x&9Oue!xt-mTnv%YWK3+#LCcK+&(k1H- zm0sWvNK<5zb1AEV{8tga6oywIF6%s{geBV})cHvhV5##{rr^logq^vXDl`cFI|n5CE<44KXs|4Vbi8siWeX!I?M;rSZ)~jzD!TL-q+*LaqOZ z>8Re!Fi@n)GAxS3OA5KM-omt~x%;H#r=+i`yugur;X0c}aGY^@tS@9y?34hBb53|G zjVKN~r9bO0(w)>sMvBk|m4ms{42tcrIp@I<`c6Z6K;P1a&IXF&H^?YuLfB)HqbmM) zz$Y)YXzjRX;GBFN6(g?^t&cl$S@u4~?lNrLgyg9Ru<^u+e4b7EkIT!!jIT{yW)YWu zh157?ASxFo+D*F__be)OBT8BTb)W**x&#rLWpOP_Jo_w)a)wY3YL68CJLIyoXCdr` zT5>Qe7K+#gK8=4CSw(f=E?G$B(y!sMN9SRpnN87MF3+MFoGoi1|9Y2V)2m<<(!MC6 z&Xz1V|L_$eqAQo>Y4EK76kO?lG8uy|Cl)26c5(STxFRPHIfUD@F=8Y9;6R!ut|8=o z_vF*N7w3?=pY(QotKa#YbRK(!kG+3BU7+eNCqcHH%kE6tX+0gaaShwF;NqRQ=klNo z=8X@$N9`D5DV)yySDs~)Yj`2IS|^hf7pBVH&a^wA445b_)_Oh$?s^OM6VJoSLo%J5 z{H=7UE54EP$~Q>;=EvkYD(hj2vpdn^kp>UbKo34>qNy|mll3pccK=BIgV!*FY?=*j z|4O`?FDFY1u0=(D3xhqpq4_y%a^ED)eP}J_C}i^O&}WNda^Rt_Cxrpy%`VM=e1PnP{dGBo*p zZm+oK!QS=cPvm<>I%nOb+5F;ug~hZdBl9Px$een|T&@R&agR4&IqL0x#K_rjIVN1* zk~&+1P;NAHS<$|PiuodUIV$}a9ZS)B}YOsPxc8GtT{&!)X%}KpVJzi z>k;;g!IywCE?CH3#FkD(_T=Aal`m&v?wCzL-y91x5!vc{cCtf{?ZV~`_1LB^SyINz z<-DiJ?)D5Pt!~BQjn51wd2Yb#AD>54#==ZCX0J4G%}S%|M1Grrpgj+!1jva;*_l5y zvo+07=S325#)(v)#^ZvGPq2r)=IlI*^R)3u`-1&A8t4*5x%rt7Y4x*6wXK7$V&ck% zzWtaI0&;mDI?zZqDdTV9aX{R4xj^IF09}sk;Oz4;=*wA*5|`n6lZzV@o~GYEPTAuC zEtIj4CO-Qu`pU^S;6t1pl}PMzINZH@z%<`+i&=MYR1_aksC&p<^aY-YC$! zK+h0-_00=FuYOMDZr`nUBFDYaIl!8F;xhC!_;m(pKBoszCu!7k$J77ok}+`;iJg7v zh2Y|N+G9WdFQ7;6$LP4n$>r|cXW47p1I^{Ri@gw8&VQy&rTo2lm_|S0Vo4L0|EYax zw%{F9bRJs{bUyppPU}m7nvqzMCA4hokNH~0?n5jO+KI4|v2W6xlbhx60)%+^NYgh3 z59+efEc=={`u~mN&GaYD(x&pYuowL47pc(g^35(lJ}%~g_3W*cUwHb)`z#uthgw>y zJ@ieg&$8tA^(COzC4kV*Sy$7l8* zLQu|KPKpg}#mM>HrzEu^Bh#E-0`bJepW2&88>4wv*KGMCjTX`C!8%)3PhbE&Ya*^X zWO2jxWaYd%J4lP$EglBVFu={=IbvcQSt$yfl`9t`tWqox8&Y4=RaRo@fzP4VJGUDw z?7yRf&$z629%5&%q&&TQFLtD@0-x7-wSIncXIUuG%C z>2Mx44D3vNoZ>cU;2AybRC@lm0?uG4;-g(oSxP>MJ&$3mxKWdo^iK^c7MGZOzHFjO z)Nl!5&C7_{vY6+!$4Z+u|H6t7%GxKYghsC zw5sIgaR~T>Oh44?2}$@v!-tccC5w3U818f#tiIDJuA2=h=sQh=$lTKso}1RA=eJb+ z%5IU8-hCheD=W7+t+h?2AQhjL#TaGOWl-7;HcrA2Hz~6Uw2P+p^@0GiTZJ-imxcXH z4+&=`ePmo=EaWq2#`5%jSQ*wIf~17~(?ej7F(@V!QanOq#z297uq=llRdB_vSspM@ z-@UG|=A+}m0Hi1=GDYzYSv_GMq`kKzzjV5uV0Yo26FTKo=GL~)5{x0&b9o4@mC(M% z+YncV*6rWkE?R%Pk>2WTU-3>3E3-yD5uO;J!Y~H=1b=2M6q1o6b?pdL2j=IIR4uj` z$?gTb|H;-wn)MURmZ~vO1EC`LRWz!0v#q38sn_5?_qnFPh&>oegAG+u&%G3>u;2@} z;hWTz?i*=mVIq?*Bj^q*F}?dRDs`NzIJA3=IP+cyLUQh%N*cUDLKeOJojiKN+)T3X zdM@jp3%?6>!Pc~~5E5q>GLq&p2vW+rFl{VC%5L;H`Q%g;NF+K%dbPJNl!tly_n5HX zj$K9XVY*Q}M4^9#k{}3(Gp^6KARr`u!j0Q?p3E^_@7?f@_Qz7eG+)7)+`g zpk`UuTx^+Eh(!$&*oRwYv~tvBS$(WORRzeyS%684EvE0Z$%xZkUnRY0(DB-cb6s^M zE@hzb6}L4QH;|!+5jA3h#h?>e{UqAveNP+M=uM<>O4~4Os`IC?s(Gi4DSE5`6;1nl zo&}5`$|~_=*vi{v)3EFDxafZ(=W&^QCQ#j_CSv@CL7DV# zEC`nh>3Niu76GMkUVlBCRY#&x#jtt=^U5 z1qxqJfmkvr-;b3Lm%Jkk+%OAhkPr^2D70U2nc#dwwb4H)G5QD5Jp__(hl%+gn?R0* z=eNJE9Cc4O=~?CZVAUfAG5QUp>S@tR>k&eUL)uj*a<R0`iazcUNoq69Zb%P3TTK0L>ehI*rfOvYC@_&5LEm#h*a^%8dB~Nj(N~Ka^sNVrW2QM{Z zq2yd}``?1m*;|*qcJ`)%2xbfRZG)l!=-_3RKwN5Q&wC~k-=Ns_xK!NrgreND2*FAJ z0K5MeOh{d*Dj-87iU9-Apc)n%veVzN7)$9wJ{~<)ES82UX zF$u^Y){yBzV!BEkZ@8|IQ2%Ox=8h?*47r1$#f#(W9|DO-kt{9~nrO%p$RshpH=*`1 z$k>a(#oev&N4kC@9oY$Ha2eT2QT8u`OLEtVJONaG5Xi|=Kucg&%>*}50kt;~+67VS zpFrhz3A7VxWIj}1$O0#s7k8~t^P$FlD%2Tt2$k@GkROMfuokk@lqv}hmwK_15P@60 zYGUu(5PT5`ao2#0zgh-{UkQ_H-$ByW!$OaB9?k?*$AsZ8JCBqa&ZAwm$9~UwSjq`z z)Ol?2oCkMA=Mm%3PEqFta-By^{99c5A__5H8{_=fpP0P!SHJ5uG8ZP_Ttq}}2dPd} zKs1OGc~`=;?pv;R+$hswq_L1B=FU|Cn2#s-&zk*V6X25j=FaH<(FsbO5Jt`@~YDmvQ~oH81DkO?$Z_`WxQItlY^k#qd% zAY0x@{xZQsDj!V|JFy98Crc(asZGVBo7fb_OHRj5Y!(926>bE9yot>Onjl4)5X3^? znH28Cb_ci`6Pw_snTU5Mw)e5Ed?Qujia@#(n~d)@CN`+v#3nUlVpHS3pkDtpMkZB% zjSK{71EGbkL52S}gYoR$%!UjtOP z7f>Ch2z{5Q>RiNS+5-?0UNdne&tNyYv}>qUfjy_7(X4`{dOw-n3{%;|d9r0HjY{W? z`S4JyfPH~KeYqJv&n^nsGyLh7sL7EV4_J zE3B7rMdiAoBL=gs3)rT_Dfo1McPCz|8$)ekg&V6?c!YLM4y{8-P&1J`T%scJx93p! z78PvL0byT1_*H4wKv-^Nie?#XF)VaQ4wW`sT}|F7Gl!vKx8CO4Z>mY;Mpo8CB%N&e z9grQk(tL^oS%aw0bxJsoT{34+R@T!bn5mxEtZqpPNiC_M>a*L(Ez*4xD|D$#MXzfE zFRL?h66at>eN#RC-1B4|s#Ge~RZ<6vdh_Q)Y{14`Q1q!r^YbQYW;Ur|bxYSkUBTHe zyN(mXe+0sp1ZM^>NecZx)V&9o6h*i2U)?ja30Pp4S)yc688Dz?1X~mgV0KV~3T9cs zfLYN&5WzK}EM`Fw1EYvwz<{)fIU>%AiUa`(LuPkpc2a%6Q!^y>z3=2%4`QJ;ISL!Z!gpAJ3qK2E`wJ+b&AVY==Tur^ctvy$f+P8H6y{bU$Fi6je*qq^dowCJxb^z|rTA_ymK(I&59j8b-o62C zO?N`{?ejols(uxpbo!t$M2|M7p89E5>{PuvD7QaUg}4{oY$&;EAe7NZ;W3a%w%kv|*w^A-uetbIDD89k!Zs1fE{avwMkSw7$NemTp}!THBYOFp(at@>;AW7O8Ra ztM6;;nDaivlf*k;@}mP6M97-{A?Bu|_*L$B*CMUEZ^vk7i1Np~74ej?Y-vG53;sok`s1h17{*#fdi+OfMirxG7HWq6Z>q7vqNWjQhW$m&KSt`m z&+`6TBRVfw|)ejNWxT5oT$sH@gd$5Kkhg=xD6V?@p0Bo`~!|o|v-xcmlfO zt0Bo9Pe4*{ekEdxoB(Cs2l$&io+!uj9SVPQ#}hm%U>*CLT%o=88-=ro;>}Mf+FnBO z&TFt+1A{>AYG)OK9VZ-WH;a0qk9 z6SSoUh^&*z=+rtK$qWMfuZ|~zay$WkO@pW$Pr#i!o&ehGcw#bG-$~FVuOf*19#4q5 z8T6#%qW11`pxp7q)C%Iix)u{|z7S|Sk8!0oy$Amz%}Ix=KG?{%R6obup)TAmP$AHe zuYjKY5NI%`#OggxguV602;v1IGI?kPW$t(ab8^QM68xVfyd&9Y?|VEU)}1M1G>HrU za6C~?>lLu7$uhA1tK$hGl0B%nK*SL=jwiw>u9S%USH}~TDA%ImV91l2kgJ0cmOGvx zu~WUm*uFn8OpQXUT?jTk8an&wG8Ehgucs^6%zd|LDU5LY5ujikuk#evQr0%&M>0`)fJI zTqtz^xJa;^SpomO;x#J0}%^gpG&=*3NX8GZG zLU@PJRws{4CHJGKc^6CeKAwO$dr)yj0PK4>wfFG^9J%8Oq@=!%;!pN?0)uRM;pE>Q zPheXEMlQz_ewLxr2uALB0)esdVE=YJfnR$cPr#c!o~U0%NLnbCu`=2+U%@MHtL-|T zs3Zt4Vb(t!PXsHt^gkU>>t2E>cRYcb9E6PA@x<^7Ii8T2cJJc}EX^HHAYxk;)tx-5 zuQ$&j#&s{3bEWtY8vgz91dRI}PXxG`!tn$q<;%Mf4bR1ehHNNy9ZwjDqNM*!R_%e1 z_^*>^WcEFt5Y<~_QKpMAE`2#KM7%r{JLZLRP@SZ}jt?s#+;)>VM=6I1_>eoE5K1dT zPn|4~jiyHVOc9AO0XdimR7i;))u@1Z*>_h|C?PLO=Xg|++-Vkx98U;&!~4x!7W^SZ zLjp9PSS}_Z`LD+ln7-?HLhkka!|?>{>HvAhN`H^j%ZQe6!E-1j@6=6Bk86 z?R7kXj@M_HJ92jzHz zc*;X)98Z8~a0>|Uiv+M?n3<_Kc9lGT&G%nQ=Ek}>Ri(4%mc_|JMCdB*a`){h zib2Y$;2Hc=Y1K2N_1eRn_+dPNDTk0;QZbi)99nGZ*ggHBP;#@c^p)6VC)qZ?bheZC z|MV4@*NWLQ9JKu-`R>GGwQSmP`ew^N6Q;@4(B<QsGRBBZkf7QHj$OPawWcH87N-^;C*h z=aP~Q2NKK%eW)r95LMyjWRTt@&^@wIPii96Uv(71w5OS zTFz9W&hoiD+N%P*XD@rHZ#0PceMQcCs&A}hh%R4@su%8{&Aik7!mkKizp0XE%Rd0I zV{tY{5fcOWgPlT=Q#Y9=^ZX_22FO!%vtdK`ZdrdIrz$ZgzC4i zQe7pNpoeq_Mx#737 zq5bMPil5$5$UIFTPIdLFp&X-*ynS!+`327XmsJ zwe{|UZf9HCnpj}B5_#3?PTIE78>-boF3=#b9ePU}wx}*a#e?~eg=s8l1Nzwmfm#uG z{gQc3q$S;b<3snf#j;rklBP~)9GlD$Y(<>y`ihhp=@|IJe>{)GM!U*EmeuK zYCRni6Zux7sG8nLPDOz9klOz;u=JX*IDY-Ko8tqjXH{EsWA@6J{hKL0bK^t(u?|Hs zJ9)f6*0CsdPVx``RZ_jhe*{Np|I8Hcxi430={{U1YimW~BA&~g*h{M!bBS~4dprfnJ184(`uE6`_Qx-r?0 zvFUw23L(Rr&yeuUv}$!zh{vf51K|q6L0}JJs43Zac;CVX;aAqtC>5E?x`Q^+qpbPp z(fL4XkwD!PZDt6ZLz_JtwfdYO(3^t2sGPO0CA@k#SkJwDse|_~^l;_~kAy_uidI|l zN+P7J>p6=fY}n(8h(E3Q2t}_{{m#|5)x&|8k2@@i|cU86duU7Q})AxK;NT z9o|2@gh$xF?#{DUuP_@*PkMf(5VJ5(-WBsz~=qv zG6UQKvrbE&%o;}cb?p?mRXy}&E}*FEhNisc5bdDfm9GPB)pG-)fVL%EWhkpZZF78J zz11wv%2Oa)$fsN|t-|z`yiBWlG?2cvTEpr63Q|u&B|*O2p}Nz2KXG+CS_|)$D8@fR zbnPgl#y>(z;e!NF-FdS)UM#p1N9=Mxe7#`sRw0m^egXw?gy|h@0IeTOlw)JrW2#nP zE1lZ$s|!;XGT1)iJSBHKUr}rcen(XuE0M|@>Eh!ea!+s1m)%8tEd4A$XPA}B2cC)1 ziep?*x-~BXjOmCJ9lr_zT8r7b4TJ8k-w?Cn7>=k-Gus)tQxG2;rYGwHyJYWpRW#JS z<4{a;uw^0mo#xQD%h|3@fAyMT7P{aDCd;R7t+u-DxMprZEDkPzg7>@T!t&CTqxni3 zkM!#uOFw36tNw%;;)Tg~5U&La-5ySXPH%sYRzog66=s=u+k_9`W#6lL$Ll@!Sf-cT zct!A!@rWt>O7VJEZ=&3I0|` zyBh4(z1SUJJ&L8E6Nlj~A4PB8SR6~2enqw&b`SY-ERpw}4R7AuL0r(@fO*lcYM9n; zpw0U@XP8AF^eo+e0L$y7ot%|!I>3>5E(B{Yln$6d2U$yrk(Mo=+9D$|H3%h{ZXuxW zfRb~7lBc*R>E}rB9}B@fMM3i<>h1H&G3hzD?GhxWUkv~i!IF7oBhV?8aNH_bZchNA z&mJFyuE;@ihXB3z425=)mv{y?y#OhxXNBau0Z4fcY;qZGndfNZ-Z79%TdGDZ_(O^Y zAhJ+>==6t3Nv~z=rXB~Ip3mk55SH|OEcf{2`lBI`??!QXn1Lb!VVh4Z%G?dY%W|nx z&nbbBntGNt&pZSs4;Qb+tU4KQIVeENpC}w_!TQ&eg}ekNr7c(a_KnE4zo+oBJ5u&{ z6y9|al#;}}V;jb#GE~`q=>Y8q1BfNvra&_vbh-~t>dUbt-3QhB3M@&_f<+CZEyGP5 zWnBnerVN|1(1p@AjVU8DBLK7-w#-Wg5_vlu+HMvpyqK@70>r0#VU|@Obli&5x@0)w zLqfuI!@X5e-bxThb8(ev=~9*N0O*#?1%M#|q0XEkW{oTddPR)+Say#&5Y74sKi>6r zfIdbnc?i1yg)X0d%*ae);i>Yz3a6(6Ywe{-^DU;Z@@VtXEkGcwJAl01k(2HOlz$PX zqz@D5I4nsQih>PMdSr!So{%RGauEKd9*EG9vOP;3gGrg2sqTT2C0(dKT22pd0GlAp zK#(M6g#$>q?MiJh`K+Kolt9%yiow#DpQl0Sse@u zL?EyRO3g%@Jvji!uK{$NEzT!@h0uEzrY4uWh?!#y1np^p(Mb|73#HzjiK&Gcoqm9} z0`A`MZ4U%yp%Mq^D>3?sFpv!1)Dwa=V|OT$^Xn>c^8m2B!)(rZRX7f_x_F4dp{^8{+Wa#PQK zf@-}lMP`4X(q8gCPE~f9%i7&5gyiqt9QDHjQ6!qW6nz|u_OPYdsp^Dm zd(!=&t6Nz~@f##{GPl-VqsXi}=3iY~4q@F(<%nkV=(<_rl+5($=YiB^K$)pkxNw$3 zw>?Xn_gK_vnX$dcB04jz63A?7r-y*v7vAYXfvBnoLo)wLhiX1;MdWM_Dupib8B&UF z!J_TsK@|OpywpJ0><_^ve-M@Z7%a(?6~(V~pHB8gd-4~G^l+$?n`T1uP!LFqSy>1P z)=N=HMgVyhK$rPVppPKQEDL~@DL6AmZlY&8ho#(K(YhRbdQ>@-^TDSU;H^h))uk4| zV;9kuzQDz)^O2a|fj_$;o!L)#FAzIdN8p$*`z{%sIwkwU^kdkW{sgp^qqfZFwB;Zn znI+~lrARar;wvd~km!^-Dg6fysPlxEl?Vt?2C^j#=@0$HbqsCk7SMUeNLx#c_Q>*@ z{Llev4{zc^jP|sLP97{%)+C_q7fKk`Ul`_Qldd}i&g7IZHl2*tST_oDC6$AquRDZ1 z$=vRT?l7?FDacK-H0X3C)#T(#peqoNtf5FB1&4WuIejE_scE!j8nbMgw9G_>q@T12 zlxfG(koX$OnOdr~GZC7pjR=I~x~b(rXVX@F3PNk*65-5}07VA0KC}|%!?8_2BIw~< zAgz_jUq1r2=4z2Yu?jIaJLnusTlyYZ9BWTdOh7-o#575mN^fQS@CUD;!0hVkqVk?%_iZ&eo>*F-RQ z9I34ADx{^C22jIIU!81+*2M8tX?J=@RMfFY;9-S-7d9pDKjiK*Y?;HR+0ia^WE>K=Qq>o@(K`Ggr%NUQUGPnpl$Q3(F*RRy@M?}aUF~)*&ZZE zxb*xBQk9sQpXNx(I7@W~k-i^9W~M15gEC_p;{QFa~=ho^5Fh%NN0Yp1iQhH_5)z6`981<`T=>F!Bp!e zAxb|;kvwl1UyY1k_pllWSPdUGT{rB4t%!fM(&%Lg{f+2wiK3 z5WE`%x}jjw)(h0%uwj8Rw7a$l_4+9 z`;2NOZTe8A3hg@s!X5i7KZY-cTfeE0I1bs#o1^d?h10R)MAhdMu@MxRqaDV^pA>w8 z17|Lx$U^;*l|EAzmDbRiL)5zM-054@3`C}W5JWLWW+HJ(T~&oppUC?}+7c+z#~~{7 zG?LRBgyT36DOu$*BL#A$ZG04LG6Xc0LLW(6;_V3IV-&n;A8F#dOb|gl&VIf`pn6i+ zv+=E-TyA-b!pws2D(1?<*B$1tK{CfH`d|6j;_*`jGRI#)NIk!ZT`#f~Qa_$Y{r421 zV!3e%kbE#rCuTsO-x)J9$B-pnzn_@@fFR3DQP3Q$_d%3@y-0QGMlr z`)I#AVoEsDEcnWEJZ5CZL8cSF0A=bsY)!9lk@&d6!38oeWaa|y7!?LzcXR~HP8Ye} zu{0=Kf{~POQtH||`hhYGMT;;Jhtl`<5%`n-BCs1mt1W{iwV)EHX8`VZ1=~~9y(?JO zV4XI5;e8q;!umoG>~@sh(E)nX4-}%RWK(J1Ep(ru-4buC;ml6zeK_o5KHjscpor;c zq06o3-pY^F1H~~mQmi*9&PLW?#rESd(aQrs*`)B*(Plk?njA#cQz*i|a4DK0QOCj7 zTP@~11EN6kI(2yv4u%F_{lc&u1lA|Zk@etAbnHY_-e%f3{m4OiUx4uSg`?nE+B{Ps zDPX&tg?!DZs$&KqV6r&+6T2>K6UB=OfgV$dQ_n{!%x#?;K%~nlG6Ly<(9NwBzkm`o z$X6R-OH_*;pRo~0bj7y%&(l_SS#URm_M!~xGG%ZS4#qb73$TTQDYB5J%|}>`xsDO}cFC4q7vjlPX^kEZ~U1;;?0w+3c4LsZN4PeB7wxClhU z8!43Le-4?etJo3 zrcY&?srh3p|K<{S*DQhf)3e~+aW%z9$D4=Z#4rhbY-|gE;8N zs>G;(KoqGSm2jNET5Z+_YXog+xlGB<3!Pj%I+d!z1+J$tQ=LVX*8m{t>VUnGkl6WP zt%cGTb^$cj!VtxTAk`&OEfD6_(pE^-vl@hXcFFsk*cPG9H&874350JTbn06Nx}&0S zd={XPjM@YFeh2G4grcw-L_R+b!^G^BD!f#|Ccyd%C9UkQBBl%@VgV@oQ9rWpg3%UL za&ZHsD5gnqKm0S$EM&e4f_jZab`b&O@hFN36sc<^ViPC~q_I?|Z*Xwo zl@P=?p+>zD76{?i`_cpDqWW8^Y8W=zq?1yY2y}#tsw#M`=dd$h;%+?$Hvd$?E@dp) z((~TNVg@-%4A7f-3OYMLTl!wuvL9oRAMMaP@=(0w3yKZbke@%F@31#p0?V&!&BSz+ zqphU_96vJXRGlU@l>?Sz!-vR%_k&zbu0f6EAflG(k2h?PQ~L@__^3aAb}Jq4%RLb4-Mw9Egg{DI}rQ1JOLO zN(U9-sMSM=g9uPh3$gk3m%fZZ>8+=``4xn!0*1s$1e;rt)ytqQY=O9x%%b*FaHXy( zN76@-qC^|VbR|=uJ`Ca3Q$c|c zWIcuI^hO896Dpy5J_NL$%i9eNM8gXZ+v^aJIopq@f^szEA4vQtu}ZftM=T2gT?Uc< zj3V7#pqB+&RtDmrFvYz=guRWb%)Jz;cc^B*u7qSYSk0_VffQXLg@GmlCEsJg)BM1x zgsOiCkJ2(}#A^bu-wBkA`Jq1xC{qW$CTn#j9s#<5BK@1R4Fj8+4?+(O1AQonPli+Y z1<@HqdL%`vb8r{*a}~tfg>EA8vu_F!jUq&)CrWT`0+CtdGPx`qAaN*`*^`pifl*>a zp;L3|8FN09ni~ds5mgyhI^}T`UAB|L{!PR_V5*SVzkyY^!DdguY34c!G9`@ng@C^I zV?aa5Jy(m#=mQdLk11e}rA=Ri2&+L*AULv+tTC3nlVN^P#JU?Z^&Dvng@I(XvE-;B z!_HdSC$pW@HKQE-k))5IovEHe{o(SCz;KtVAu}GgzKoXS8X99FCwT+ZdXR8eKN6yt z1SZ~$#>6}Zn67((#x#?QPJQM84IywmhY+Mp-W?#4ts%`^>oSubCn|?xV8L-9tf3*W z7j6VP90S$e6c)b(fb@2VT=A-zB9gPPA+sckw6)T)l6$FE0jPGqf#98Q%2ixaF5T-U zfJ(D%#UxT$*F7RO|IyMRwfN}|idRvs3LPw$eWGmFcq&&^cY&#$T}iJ&Nm)Q@n; z%PP8N6>T*u!6rw-TiuKehmt902N}5wf+N!&j`&3`bf<}^5t0L^fXG#W(lh*2*N{}a zNf0(Aa?&rCqmQ*gC(odo`GI0<5k+zVJhl6UFnw$#bcdkN>_c-<5JU-q&7(Jzs*%7F zh#a&&jHpJ;SVip}MB$>UH<*jK4HNkSZxY|BA~|!U!#-?Bh}fSP4z~6qeBA%A;3V%Z7v2i!|>!(@||Zy#P9U=_?eNk zOeqoZITE*@f+4Y=;NE$bAK7CZ0)9T8lpZ9rL%IaNeSM+MOa$HV+GqvehJI4UP;t?97Zt!Cp{97wifoEAcTc>6L?o_hsh1jL!j@gS?FSAp$j52^gSp zv>3zXzfz}Q0xz={lx~;Zl-GjUcO8hl{VFkaUO5SRbhtuF=|$h`12Cd1t)8|J+4A7E z%HN1(`O%Qsh*zdqj`E45=_oF=T0OmMluRytPAsW3WfzEFmpei$3 z!ClZ~AsknQGUoH5Q`p1aOw~6KlKM9bFIO3=U_DYZm-?v=!iv}k;T=R<7CNgO?Xv#) z`odU0EHYsGzQmW)2@b#acFQF)GaaLI+p`-RNlIZ)7Fpur9k0R4R!FCSL4 zabH6D=0!lf=!fNUjLkn7tfz$Wu8Oxf;Rp zk5F4CHP0s$N`|=S6Kqx6sCt)Szx@P~ebrKR!q}e!ksv=%sB9T?nO7qyVIt!kkTy&9 zLg~+uWxZC856p**F|16jq0R1#l^Hh*#5myBu!MIhg?bjn^1z_7=MJa3DTvN5r9-@5 z1}XCf3ghYUNY?7q)1loE+<9ZcrevV|WQ&`8j`a}`tx3_~X(TqW+;WRPKx`JkoP$u~ z@wkY-iUH#D!JKYP+g_0D6f&Pz(Uwveb{E*@MM&9v08rUyevaNwDC1$5d(g3Nprpuv zClPo+XV(vT0Yr+8qEg;~Kr+Lq#z8)#b-ui(vii?O%RgSb?v|3$4`Y+#3;a$+^3>$l zvA)R(vE~(8kH3y*EA2}dB-WWV2n{}`_`!vXo^&6&cy02oi6dNXeWcxo<$Vcfd1~lG zBiz`yi5IU;A;lztmc@r)^G&b(R5d%^~Cm2oqG%#B48!;ex*Mk=y%1<76E2`tS z?Rxay6Duowk#(UNA8F!{v&&2dZWjX3cqT;&pOSi%P=*L){_H4Eo)!#~kbOJCiP_q+ zMydRHMD+nx5o?$nvVTRgp;Yg8h{ba^yFDt9mk&SS5R^>d!(_a#l}`|?zRyb8~Az^&)bGne#P}TC0c39dMzK&+8dIX z@LUI2i4m_X{Vjgg$+i-X2S=&A|8K&PdhoyF$7%dbMh1iX@go=34RhMk$9E8+bjRZu z*1x&Dee~7~Y|hp=kR0pE2hR^Uvo|B_%-J8Ur2M9!s&uNhUjGK3dk!|kr;~!d8}!yv z`F5GI+kHcCTM8y?LX@GrVmSl2F)5_ZK1(i2Ieht?@u~wt5J7i_p3s}u&^h`%(un8y zxI0qB4SJrCa;e+1L(DPnJJb&{^~GrOb#VVy=e`}3jniO~mn(RNvT*WHaDL5O0iG~VQr*tUx=KS7vSrm#I=e96`!%+((PpX}pO zzb=ID>iTxvIa+@!eyqKi55#c?NuWUjZ8neutk)_!uCN;coyu3|+wGL;xY_S_6Y?hK zuHxhU?dMd|(VIK*)ahNg)_CYNo?|$zoZ_dJywxMqZl|^sC9)~(Ccl!Wdb|^maw`6B zmcSfzE580JOIv4lQ2G~-Koo7u zNY?yfBWKf}K#RjE2)_!pFED>Ni7ag)&07~C`EVhtCh z4yHpU-9U_^6W=DK^oA7A-di&QoJ2JkKtN7AU+W)RUq^rj0cC@hg(PT$&S&?-w)Hk1 z*EsXmU7@xgLY?=0l%%^l_-&wk^&Ac_g8@5@QE zV$cb$GF1MdL4k;2zFeckJ8i^3R&8C|j}Y_g8B)d%mOZ)lL+OF2E<=&O|1MgWQS2Eixpd18o!P?ESMVdnN6&pME;WD9 zsE3#@4`%Y%i<-fyGq*s-WjJ=3cLQd<;Yg^{`{Rivmrt2nx}ed*AT947DeGs2NVDIr ze#K!bPz3=z8>P_G3>C47KzaMaSu2Ag?;e4;VWaZrmtoalI<6o_RVj+X0+FjFYV-ZX zm>YG5DbJR9>xLtEyWl&Dh}FWAg=q6IktyGq z<)}ScNIp=EKc$ut5KHc^WHvi^JM(kKM#J&q?VH^&NdF{ISAjMdNJfy|=O*rbb?-^z zP1)>e-?>7fh$GqT`Hk6X-|PvTj2_DnV4H0N=}(F!dzMI;)qxKAoz0$>{phE=KEdQY z+0*20a^|s~cyJ1wweN(p`9bysndG}OlvH5{DRWr^KJR=SEd|`x(6FQt*vGcUb|NP_@ckiZ=}c<>>=JBJ21S5rD*|cPnm? zYzpC_)i1<5Mj7h$?}gG=1*Nr|wq%B43j;*Q8#;7kyAVcLF3?+$G`D1AH{GPrFbB(& zSHi27IzS^K-*9Az=mn(hnjAtWUsYHu*F2dI#EKGnU6u9_EAmSaoSY0QzFBTnG!t#U z0vDH)uM2;ax|;10l3os&UQ|6-QWU-qPkM_Wu0%xQV~UjI$>yn!R6|sspjz7pHuH0x zsV9JZz0_`b@OsaMST~Vkk&Ahv&6*2jeqh9Rm7?ueIBc1)Kw!L`1}ttM)cp-6ggOyz zbylETd_cYWQ3nT7k`OkLQ`Q)Psv+|2P*lb2g5MFIyfatjYf(sy-Adcm-VPFtg2q&1 z9bog03!$%ZNCZ%|#!wh}o^24PGZdQ5vDRLNd$lfYc`j_5LO`Q|>^eA9Of1YB4^91V z!RUfe7Ne7;LUWIx8;kot-%AhhGvH7*aU5=qjiAx|a(C)o+Uyz_OGXQJ0+45p!rRxN zOI!_Pe&)XZqYgLkuta%Ir7d0L(luiRdyB&i_mhu$^2d-reoztq$Z{WVA_-xA0;nIB zT#%a*Oo(W)4|5pOY84;_pw%39gHo$P=#GYD-sy=-YoSadW-ALQ^$;f1fX|A~^faWi z(30sX@~(qFC&|IiZ?&MCzYN*<%Xtwd@vkEFf{>|!0WqOqFwOgR5%qQuU^kuhzyO!&yB|8}aFLO0xN+7uh)!V3gENBuPcRZj80Pe2nu)9ZUBAWmeJdTNN30r%|| zwEm|FxXTnzlRcvL?iL)%b<19+$bc^VG>gKwB5gdTP5^K_uRis>VUD;h%Y{4@khRhT zC~*qCgu$*fDjbmT0vaOM^v^DyWOmqmPHSwsi#(I9xja(Ri}o^y^ff1>@~UsP?^GeH z5Zxq!_tc;#X91-D(gIu(6Zis6RuACreBG_bObFRg+@2g!^%h|?j~N(G_vpcnee^)I zkEc-P#uAvUZAr%ro6lk0<*72>WJgRcN(@x#hP^Cka5jc!l-Qij(jh7KEo25o! zhzaALvb0`>TP9-%ys@fQhK{`q^`__J_d3RWI@U}&zIhJgEq<>nJq0S;`$=w}@ZJzi z&||G=LY$1WY%I99jfbl6G1D#)%h_wB(`ZkZ;xD7>4g{J|#_v^GD~enBrXqjXr=M_b zBtLH1>5>!JIam}AUBd4yPSHE7d13net*jypW_9G)XZRk*juY5VkNlLAmLERS>WX?> z5OzD*rd9_&YcY-&vhD7t9?9nPd0jdY&r%O6ZRPbAPpd~^gHDBTB)S5YdLfrQ^vEQ9 zXS;~j)8xwK$rHld3|>{qM`nhFAb(n}7wpejZ}f_*Ky7_1m@7fc1wK!pJ~e3v20w+bweDHoJBcd4y}!dpUNZ!4$ze7FJ~hj7jy z@fdR}{;Pq~3D4f=@Z8g*+<^?tRXVY>F=Mn;_7%yQc;4f!ke}851Zb8uaDAoqT)+(`|6h6RE_l zFx>fJRNCfFzXZ|e(g$i_C#S+Fq35J2OYwIlXv!%G8zt`lg_2C)4p@88W#Y~E3sC(Y z-g>9=nRf0_)HwW>Sp@;2PxR7_6dxR;*yVFV#hUc+Ml4c2(f%x3C)H#we$L#EGY1~X zt%15LkudDj5VBFQcHE z6}}@2(RPy&R4Uf3c!+XzDtc(&}P~MAbVM1_Qyf;=nP~lhqmM$Ko*H< zu*x$g1j!Pvo>ljEl&t?gOi|rLM)LG1R0&9HM`DX!c0Hi6xPDrART*VM4h` zm})xYO8Acmm^%D&Gy^6FB_^S?`fhmwV8>+fY{%pfK^SRT9j3qE4J9ga5Fs*YY@T?Lt-3l{USUxZ3R>U_7bDi)D7GcM`tjk9A<0hn|LcGU;`k26*S!u1J@h zRd!sQF})}qt<;wop6VqR&SI$^aT1mqpLAM|9Fvo{SDIQa_ipf$hX^A7o$la=heO%u znhyPsyX3#uBYXO$rhPQq$-1U}q+(a1r5E`L;5QWMMR>2DAo`>z7FOKpN{S9AFolyO zOT2T)5}O%)pG@~WrNBuLvyV2)R{+iU<9;S>-XDV5VPvp6bs5>ISCI^6pwV>?vz*nN zZd4I|=_-O6M!$5Q-u$3>&@A?VEaC-Mhl%>>P{|6KBZ4I(R&d$ivF~u@HGa zt~A{#sUmaXLZ6c_i9{72QoYJ^1=ZGCU%8x#RVcGOhFjz?_4Z6KdjJPTCf;QqFBlty zYn2_6S@~b;`=3;1jqGKXfG659r|&UGGInnlcdMk;IEhbt`ImG3U;0h};Gf}A;h7^Z(^@HIjrQ~N|cKvP({bTN@!c!0zRWMvU&M=G?(&w>7?y|}czQ_;C zWEu6gu=#+{tvY0WWPP*>X)E$mn+l!j5?IAJ=%-1^et}h-b<(UA1o?jtPpPVw;Ow?k zCb5RMxDp%(m3>Tb5LEwi+O}^7%Ihvrf5wn}6>WEL9PX=bn-~&X!S9^!5LHF7^9dzZ z1J!*41WN^(zpF1$$1j%<7=Av-k>A7#%kSgVMbKS5(`Dcxj9@yu1LF`wB57g>su&dn zCPz+04Y>qH-KR`o^gYCZ2w-ofOIMl5-y%|~pWL&PW=_ep1ZK=rRq@9qZ#Ks4ja8l| zN5!s)KkBdO6SEgqEcT^(dMjd|ChhYok`MV}!v^|elZxcWgdXJ+gHOlKeb;*Ca)Q`W zI_C{3+JzK*=$Z7|{xidzLhkx=Oa$b0!Qd}^Perhug25AcT?T5sP*9~b>TdG6bZ8$SLbXVC7a<<0m^<;O6FWBb6;O$Z}r|{9M*1eQ}e-a?urald+johf7-rL~^ zv0|-?ir>JH&MX#RU+(&2Z}Tfkud(I6bUuZA%&zv^1$?UN<%QZhZ&NF+*7iJ@quhoE z(b%cq-8>xNIgIpPj32Kb$_f85y)1tH;B{0N_qeaLm$s`HINI9yV#rUB)_~aA z8$`64wz}ubwO;R&Npp)gTRO65bEO`TB|c;@0->z7cR8Dx2JmD;q*%S4vRBQ7AgtFD zw05w!ARVnB2R{l?dhfzaTL%S-A~zETx*M;38Q61JhYYqiX>bIK8U=$@6j9|L$z=`)+Bd^n30YX3ol1z{Zj?n zM3H(L-om@#-Lx57O6BshroSH%Bg&Ee1eErB5^K4o4u~{!^V@n$L9S*QCM;Dn5D3lk=(!50@L<|JZ0J?t z;bE|IqYT8CCCVLJ2+zT9D0WxJxqSPqRV4%Lwh&)nyg#rT0{h^fL8dTSDK0&iP7-4% z>%Mn!que3M^2Jv9tdEZM4$;_}di-c7_liwVmJ|1IS7`z z!A2>3wKs>M)@Kt~&fQR!`h+6=EQ0Fp3+#sA&a{Ow^$Cc~bkPu7vRjYcBZ7=q(BmB; z`%(Rhgk=Qu$t%Q(2@d3)lyFi=PGn6L7M{kgG%12DZRkUiB@5|Hq8tGY-CZsr0ky_- z-*aJFaXveElk`9qs_lmY&D@p^$j)NuOz)X!nlsNtSEAWy9*EjYC7O+12>?ob(q&A* z)v_7ba4&6!x$Y1Ura$5X0uuV+xN@h0Z6GAEJ85e)5R%wg#tYKMIBI$)U4tmmt}N-_ z_?N`OHyPq;*?8wE1XNF?&6@6jU0)`|Vn((Ij(ZV!m^lPPww_rj+A-7Q=E|91Ww|mLu8NKf6MV_~X7@r&<`RgZ^>l!|n51DgE3=7|gzl$tRb^DR&e-7b8!d;N-HW{&w`QDFM;-WNfOt&mjrc zQ^=SwQ8SB4R*`JzR3qDuD5ehy7(r&BOB#jnxgloNXEsuuIwLDn4WhNAxmNJ0D$H8> z3sn=Ag>OPvN^)f9UdaI+2b&#Vvi?X9@PKy=-sXR}xy^3Z8YUs>_zE2Os**G^!|DxG zby<$=H9sPvOKk{jHy2lAr=N=t8DWHHi~Rec$z0$d>?}eMi$;Lj2=qRXuOV8kOcY)9 zPefwl{187h@MMtqEkI(oB&y7sVGV(>$@RFAejk#0lPj6j&xXUE2gwWTXfwli+6%Pp z!ICJ5HYuj{Xi!bAg)!bGAeUv#p2LaWY`?7Zn6hmf2oubxjAKS7^ZsH4KwPman6-5SNKv|8uWOI9 zZ3jcNt^=Ce4#qFDpKR0(IWn$gc6?9z!8@XoS>}pp)^NOs(_GusehaDZD@U-jG4Vmo zb&8aJLYtSwbo&!f4Pxl9x!cXNEJ8VwYF@Hj79r8Vd_RO;kAl~eolEtcmU&XBKtmRn%ky#Ve zEVONXDGcQ-0w4>!$qKM2BAMV}1+8E#$m&q9u}lBngPyVuFz#Txk%baVu%iA*s^&6{ zN!E-eSme4x)jI-(H4B+k8_$66Pnq-^eeg3{OL^-%Xw1J zb=bMQgW{u_!S?fd96XAhvrZ+WxZ1gr+-oS^%t)jxxesUlI1p5me25mEiy=)83T3Tg$Fxm>9ml> z?CR(30eO5WYV6Y@>_*;1t}UD2?Q;;}kqO7lUfC2W=!%its*g&agR1>G$ZQ-&dhH^C zW{RBdFy==vg^ZW(W-3N!!Ep{7h@pu0+=t2^Sm$}2G7R)E^z{$J*6r;v%io%6V+oi{ zli4*nJ%*gjf6vdJ;xO6@H41lD3$zeXDYic<|EbDcmznk6416=K`w*p5@)5>@IU(%a zfdz#gw8hR3!gefsv&`iIQA8D949+n_9q$q)!1XJMI>BVyg1wucLPFz*{c^+zH=F25m;us8Ta{4&t0h@{*uY>p#D+li3W?+vlpQ#QVcwRPEJ z5SQIf+p@`ErQc;^C8FFt91>;tkbt_8(d#Tf{%o_k!(r-lw51{4vK50&V+70g&7=wDe6DSERcF9M8*!F zTdH3{K$D3A{f@TcL0FKkqKzby&JAO$h%A0ens`3TQXN$*I0Qv6S2?WcS)a2 zteRWem7iGfaEL$HHlLmLZ$VDJ>?2CfLr%l?*jfBOZ4C(_H_NG(u;Us84GU*?AqQ3-uy`p?o?qM-`XJ;t^lhPyc^im={Vaty*Y${ zZOaJ2_LE`T_PapmN<4U)8Oa-A+m1?}EoB+qxGjXJG|ZdViTofvwrx4+;@8+58*WuR z5AOI#G44FK0%NyD3ND4tuq}U8F}t0KMQhH3qHJ0Kp^C2)%;vlpH3)4|P9wba6vX1_tKPJ12#`bHFls2{-S(n|!N*GK9PmOEPY z$xw9vLFf-10ss3J#kU8$)O&p%!v03`pa-{u%VZbsm#nXMW*Ng_6T-*>4iJ`xiKG=^ z`TUW#>JS23K1np!3vt=7Fg+uCyD~|>HK9rbbgX1QqC(k@*DEx7q~pN?RsU8FhXu5O znOCpR2=rV~BvY*EG{E#5SF`j^@$ble#^wIzOWcT`*3+7bP5L8Bo?xZq<*}(uMeR})TAwqPH143>BEEA5k z-%u=nh-q2J92#r7xD>Ly*2tKuo(ELDh$4QSOCginhKC(?@BLg1-F!!=V!ZLlSVjx> zGVct3M5Xu<3IZqR{=VrBnHWV#263v}I;veSa~W1-mnwLks&ze3;|S7q+YoIN6>Xbo z>)6wwdI;6B+ku(|Xe&4%L}I;2mH3f67F!P0co22(oj{E)cbSI0RQucm)M6~qVJV<) z>=4v}(71FHX?gCES!s>OX2&5x((etC#K`v9oxxj^;NquK~>gKHhy8UU%YT#B7M zl{Wr$An$>+)gKeWlb?ag?gB#FLTHu%dW$IRO%#nciXnxkxx@nkCV>JMD<%Hf!X&yW zXlsqr36fq}&x23B0~iB1)_ zbAYSI8gm(6_;|?fo-*xw#{p4Yi!P|s&AsPDDC3cOd#JMPIhcd zkO|2(uIlG6ebI8`2N$t{7>bz9%JG*jGA*SKcwl^QrQ*m$yZ-TyjDN)Z186;-e{JYL zka~NF8!?l!LiFTcLRz=DPG-2KeNkD0&}?COZvY=51X%uCa@e zOB~kK>LG|OJlG{vGHB~fr)mmmGl)HHSrS7G8zWelO=Gs8+NN~e3CMc&B2FSt`80&> z*6)hqR%B-jdSy==AG3iv(?Ln$P?&124F$U!cQX^J_KlEu;1PcnE^7WFe1eg?yD)P1 zYRf4^w($Ngb5h-PP}i(*|DO#1C%cgy(=M_}`}iS6gpKahHIF#{_@QJ>*S3yU$6agm z8Yi*=3;o@v`$D_K?-el9hP=JwmE{$mE_Ugvm03-?ZkmJgm1>WN;(RUwCJfoC&g>N_ z5pAk}Z`;k=dMcC6_j`F@QE_*6m3oo-T9$p{%NUPQ)S2Z+CbM{B??Bp9kA! z5*+gfQ*HJj*p(v@UF>HK%&hOu&xsxJBR|6VW|2HF5}T8In1;E3!lBH?9+=k6c*j6I z{qT50p5thcyj!cyZ+9{fPg^|RkjdxXi{uhXFKZT|nOhTjH_rgJ1n)ExyUJK z-;e5Nw*n155$x2XfhO~Hhs<`|YxB8c$vYrG2AmdT3F10mmB~%EW=8=v8$nx39{5-F z5p3-8u7K@zlSIbppK z7gw)`xXve6$E(*vSm&d@@d%fg-GKaUW3j`x5|(Y_u+k@6rsRSk&W;H0ax*2&M;1Fe z&2MhVfO<2=xO$VZ|H>O}v^BiqazAdo4yO(=gw&fgKx1wMdM65W&&Q0lg&~%Vw~^cI z9&F4UgswJn)5iBQ`dhz)yT12-Z?6IR^Z$_dA8=L`N&i3I_fBLOhA>=AC4YxQS?DE4?e4|y6UPN!y5Lk5yyaOO{mNoF(;0SIg2v}L{Xv)2m=FWW^U-; z`_t!60K=m`yU+jie|_1trn;)Ss=B(nx=){Q|H9DedNm;}J%>{o_jI2%FYL*KoF)If zgy%`8b`7ja4I^o8!I(dE2K(EamU};v#ZLE$(+{N_`uTv2wh9Hqkd;DmgX0=FK}tKXAqz=7>1l>hVE7#aKiF5mapI6V>n&laqZRR8u-gkpk_%=v@LrXTO~Kp%S-!eg6Hpt z1F;2ET*Op2L#I)3mlhxQxC*pZGdO>WAvWJVOl^HT(KhT4$k2o+gJi2Y-m|Ye(r5o5ew@zv=A(`--GfC)9UAXKhgutO!N4bSBvN z<&4G`IF(Ti+xQ|+89UmV|C%KlHk$OX;Rd&{el)&F-#EE7y_l&zXH#R%8C9Gc@MD>F zaRuYC=j=&jqlryu`HIxO{8;8l&o3{echBPle7&z`AUC)-H8yye{+I-|;n>}ox0`dx zi9VLFHJ9+7OwTVd*LvvPxhkn)qea8q>bEw{nVZW=spzSXxe)2lDA#j8|9dYnvtD)&fmef#FPsUt}~J>~SO z$&ci0G`>pMHXMtV@5fz8-H$EYktBz5@|bPeW-c`pm=$jxE-hf`{JnCt*74ZrT{($n zrjDQ?&cO`2OvNnvrloZXs*j@S3(ceAf;ELZ;J$h(e3Y!z6U=n|qvN95PVE`VnTw{?YS@AUNoFRvB>~5Y^cq3|IB?9FJWX9-F*^*%YTns zzhfNtXr^;|pLmf}W2Es?{9o@YaSvw@JKFb8ERm}OV50$hibgD3?|v#5-<6LalcR-o zCxW?noVt^=&|j-o;-IS$dgOmcYrJf1PR_oTpTp7*4b90lHa{;p#&vA`OVFgHdB_Tl z1P0IC6YrAT2%f`lJuHme;?M}+oM7fqy3V=K(!_vrSZ0eGsJy`>BAqRRra6+S*cMD< zb!G89sV0`+H#LezKVd!~7}3zOW^0Zwd(P3syM|S&_s1_X_OIo% z&S`0w$-tw*s(V~qR?S7b!$z;$kB$G zMXQ$gYLViX3tf$hm7Cb?{No@tEeaw-m}+m4Q`(>!xEu0B4FHoaYOYy1TCGGpG1{V5 ztY)bi0L+DsFZ!?vF|9IGOp`iVbfsGKyo5)pMQ39-{EMSeOg%4}ief|}PS_nD7hj3V z{E-bgKyj0D-_L2s3iSJ^Kj%(2q#2cr+^T43GJI<_d|{^x0s-O|4Rgjd1J{d&Iir^m z#(Z$~YQ?E>(}N*BL)*=6J83jjhjuw5Kd@BYZVAJk=T2mZVK?Us zwC*y?S0{P0lAxA?*jK~)!>})VAMRN>*X097+##F3eyiu!S zuwg$wSTi=44sy+JGgK8B#{-&>O9z#a(x~}u>7c_>wQC{!{C$Vu+~lWBZrpioO)5N# zZb`o;HM`JXEq}*I3*F2&JsToM2aRubCL)F@)aX!MSIsd*qvv+N)@Lc~p;i>|%n?6V z)xhSYm5QxhQQO)Tdzk_-G1_Q#5@{1IXd*tU>#9Y7Vq3VJ=RK_b^S8Y1x-b?vLsjjD z&=MJ9m(2H6yqq;>R}4O?66AynR%xjH&{Ds0-}SmI#f`P^^ryxfw?s{%oNE$Tu1RgJ z$rOrK>KH`9wK~ISmyLBSc_MOL>eKbccWq+XoA3vQz|N};Z7N)W*7W7oMEIO)Ej1Kd zy3@||<+TDeD$-an5OEBI3s-1GDAY~YymM-DfFjeU_q`b1zPB6I7|m}V0$lLg^gTG7 zH%?mj#{ZVR>O{k^1Fk3#iHK$jb)8)JtPw3&SG1^`Dxx`4!2wW#XKnJKKuto}>2ozA z8!dY~9=`-DZ_flO zE|BgEMVmoUj5b;oA|6HeQ?G>=)kSq(H5e*hq|VyZ_j#+Tr$M*Iq8qf)*lE=mc4N#< zmQFK z5e?=a8mg5c{O>SicRAi8)qJm>P&RAtiGo#xNArRjgd&<8vL@pILe^Re78ycmBwVlx z8wE|ycpIR&N%=)ixoZaQtvn3pU#s_B=qM|(<08+E-R?}82o-#fAmZPJc_P3r*x z385mgliZz(ZtCwL5=Ac>5s5afoh)_q zldnL@63c~p$XTk28VV;6k#u9^foHY0Kz$<2yIVwHCS= z;ac+})0QSxNHK50s!6Y(i~~F72DuDH!IM%Kyp9#M!w|F|c2lR|wRMv$m>y=O{%|sK z5*H-JeT)lURlBA3ZtAeKPB%pZqCt^x1EQ0qs3W53vEvXSei<{=!-eLFqiY54<{rWlxQET>I+ z+bsNGPBS<V;en)<)we8kx{KZB-a2+z#Qq*v@@AimPjYGxW2qb!lqdxOTKw za{x< zPV<)dthGUv*REx`5ks+(mTjv2$P1hK3GpixAyw44Y#*l38pHs!=ZQ$f39H&#x}zdj zKQnt1pu`rYtr0!i8lf`^^{;C-N-3&;p%JKzE=qC{biO(o!t}2UIsd9v7Z7#Nc8>IOw7=rtG zC)B74(J6cn&!xfS9WM>X!!3NLiuH}RvaLBcuWk5Nw8tsh#8EA`iKA(*K~Y=Q*~GcF zDDOmV>6Eh~8XfZNCHVFcUtM+cggM{V^U)9s)NtJWL0ah;Vy>4dD%C`zt8-d`%VfvU zxITpExB^2rMT_)0o!!wPojSWN3cec!xkmh8K|}W^vuMvg(>o;+T!|8iOMS{FZdPY^CAK&=%#L~_AXlI`54 zgo<26^SwFDms}s^k{)i&0*LE^R2}tYTPF0Qh@#a6P9cmIDx#hnx;}L~ttGi3KsUMT zC?-Y)P0H4y>4PgejR!_fZe4duf22ulq#_ZwuZfaK=gSX<3q=<^U3p;1!_tZmaA?0p zE_gqh@Np!!JXUK!U|7=>OJ2lK*j(_??~?u6mmgeutk9N)Yn-_rmKFyI1&^}Z*5x+P zj1QL`U7mDVragh86t0^Px!q=`3mxNhu~#{~E6TS&hdZ)EN^(QKm=^ZH&UXpiyB9WsbR%}p> zPE%!94**vD7IzYC&wmi4p2;X#>&h|LBpq_25X1)+DpSa{=4%T+f=L?sQFh8!f3@X=gqUE8xBns1i+#DGd~N!k66r3$WC!RK|NX z>1|g}fbA;p7;~{)lXOzcQ7Uq}ox-^*E$@85Tazp5@U`uLx7r=C z3izUV0yPv@Ge&H{v4~x>w@HX!E8Vc%{hRi)@8~$!-RFr8lq21k(mAj6sBX?)hi(mO z{%;!jkCXm8=6E)H*2JGQq!lT5F9|m~8*&WS2!-p1mXsiR$jA!Wv*yah0oSDadL2!w zZEq5~oa$d@DOaz(O-$Q+3W(pes{<)l_Q~}H!HD`o>yPd!xY)Fvfmg}CW1!L9Iq2LM zaHDha*?XaTYTvf08EYHIC5`B7y}X8rb`DxrcgODPGJ3xCayqZ|a=5F@!~h^d>qRpq zjXr==T4>c#U1+-eJ^WcJ&v{!BD)~&hCpW;KD79PE0k$;IZV;HP;ug{k0})3(nZ2Om~*3?CJqvmrU2T zGfP0sv#Xu*a)n@xly^}JmP+|D8C-*{)-|FnLqq@(8H8p^c#YPSluLJ)ny4;CU01q` zV_LytYVBh?c-9WA^$F>3?-&;^S?b&~ZWXPF;uXWS>h7L3XQrc`slrQoni@2uy}Mlp zI7SD}DP6l~s-k*p^^BYON?CC}uJAGK-SVK*4mSa z(t!DJ?I9HB6w&(h97GzPUP6tNQPp}9j1H{f{VGHnr^%WWoL7s2W@^~|!FunF$@J`L z7`o9_gOf@4r$c)0-iIoe7{JBy{3fIeZjx%f z+?=<50^xZSdAo?M@tg+{e05=f-Y*_R+{o&ZgBp-LXb@Lb&9Do*$dghj(=}515kixA zgqGPus(5AfluEFZD1K23NIyz($-!VP%~gO<*eYQHOAZO7fT#YxcwE&cO2JXW#-Tp( zoYdbflk5A`ScK~xSl;hF6dXMWCzV6KsN;Dm-Z4gIU^SKVbYCO!9KIEHp;*`j)$%;T z68HFsjPelP4TiZ$4`YoZyV{MrvLr;hoQ^1RPbkv}FN8*hbVQ9ZVrx5A3U+$U!G z_Cn4c3U|8$;o2=JesCGhOHFS;!M6c5_Mq6j2Q8Bp+bofJ3q3@hFbLnHChvhu+qpq> z6vq3OQZ1$Dy^6l5qsBnEMPJkkgO)!wfr2{5g>&+Qzws0os9ZRQ%K2k(y6+Z%qB@F2 zdYe=JMp)lo2}JZmbK4z2Lrg8NQpe&CvzY$LZKvYdfTM$vJbz}FK8LsA)i|(}2PJIt zhcu|+alB~dBhNg!_Atc8zw#Kft-ltbHSbfNw+o)H*r=LQf%!;&cM`_C)`6`af(NA` z;XXGN!KU3ko{cHQ z?5aI!M!cJzWNWwrB}G-#Hw8xu{hiMvs)a}v@aCjh|1paBd9r!>aS)5=8v=D0pi915 z5$*>+Z#0HmpM;oyKUlUOv_hRUnEUn*7%?|!ddz&+W4}5mV9sofWZ~l!TR#Ka^9d=M zf0Ka|RC2%O4?btG7t|$rNN-mknAr|}W&+ey4f5s0@yzGzB+KvG%yFxs>G@qvVE z$({UD3WYR#et_wJ7+h`DTqr)0IHule0DDDsSI}u)wo*!H&i6QbyT(&=rc(3!#TaNk zEC8#*Xr_x#C%wXGFlJ|n?|mOA_Pr6}$Ce0TlLs~rb@`uE(UhIt4;*cEY9)_ceObde z`^fNA*0Y*_A0CP$qw^HqZ;uXmlIKym*YXMm8W^bDo=4Tv-C^6;4Mw+>(c+UKe$W+3 zQ#hasmNG{{i_AY<4fdhIXy0XuVxNEEMd8*M?NN=T(y{o^cW=ZKBL#Fxw2>BvZZqNb zpC|2w-+D+l(j+_UD*UM11jF@*VP^^bU_b9KJH6Epe^`O!SqIDcj~)*=`p$TAeho?s z&qcoVK5P`eh+HjDXnPpdHLv8acTPwR};+Q1E-F@|J^(>UcHldxX zwa1S$r0wbnRT%B{1;o#@xMy}%PU><5VBmDpLcfQraC~=)L*tk$P%`gTXBgba)iNQL zLW^l!cgt5ZV~=z8q>8Gy0*b|J5Z_7L znY?Z=di6$6?6QC!+DP42I6z%kIG~cykS9#uFckCTHUrLmKG@FnsI--j^DB7x)_$AC z+KRsgv}MB@u>B}D?5qLy`dC9p9pmBR;=fag@8-z)UC=yVQR;Cp@(Ye`AbclNY2ouY z(kBnlTg!U4eX0pk;}S+PL&215rOv+!;IQ~!_}}A@Ac^20Cc7ZL8X#GEGX^pj8L$E$ zH`4OG>@RY-C54?uJ&|l))Igx))eM49C@$r7Mar+i{^~UXXPbLtDfVqG*f^@k|H}uv z7vJJvG7{`ZM|#$baToZdcVTW0`*D*fA&o5lpoUjr&ZOe11*j;!+K^xmuOy;-3%k$9 z*Y#G)V;~;gnjp12p?3|2BDBHT3~t-91kut>6fH9bq187~HkCNrbYvol=m0tjh`07s z99wlUAUm7lDorEX`YPyx9X#5RegRMH-zlfht^rdE)7#-h4yJ51s{a}=PuLmpOF)X) z?6E${*WDk^-=UHLmZ+oQr&lq9PGK1{kNQ}8NpVPDiM~bW0G6MIj_fTS5xA4uMW4z0 zE*E2c`KBoDs*QZ(6qd+t4@=E%p3`E$j7k5lW9x$ zk*ICd6=s?_ZqpxC5sq!ZGFLS)ijD)z?xzlZL&?IO!>)ghM~}U)MizVt(e778`-jwk z-A8ka|Di@ku*+G@#h71BQ2q;6o>3QWzR+jVY6Dm|5vJ%~4Ywj5*s&RPWAUf>minCfC0*5m;5vw1cQb8wtxS`gL&flb7o&UP z(efgX)M^xs?8#O5H3~8{Edphiw4ySgP>plEi z|5zlyI=qgrLJVhHv3%=lR+b*>i+uN4@AxAP*p2ysCk65hIzRlvus2y{Xi#xA)a{xK z0oE34*HNhd_GrKx2l2}k7t8PVux6XEWkW!=DF931bGC_C+OKvO{NlbbOs(&#`K*P` z{|A1o3AJWd)OIN___|)43Nu#0>ffqMi*r5J9p$#BY%TN8U6ybWX1c6sK=F_&M%qyH z=3w5&2LB7-$MPz{x>lk6%PRuXYqMI?K-4IZ?Pd!<&mIRb%D3=nh*EK#mZM|nKC1Ap}Q_F!Z)Cmeo=|B7krc@sgZe1F$(E; zGv@gq0rj&wTJdM<6px_+rHg29!7PepeY9@Os7;YZhRs9m}~;-#PBO!3*M z?e@NWFP(+9gk8XwMe4EhSCM{)EoVP1VGG@+nDL`Lx;wq{27w=ih${Yv-%AOsShR z(}&)M(i0BR_}Q={;P`d z>QTLT`HgU5xLh(x4avR>ai0?;xqJ(RzB!bd;bhFuzb}y_G3ldqK&0~Tg|*~}YFfLm zVV^Oh3it9Cdn8HuWXg2$T(CK+OOI&4((W}F+0PJ?!xY?s8=~Xr6MPynpsUB&+d&Np z8!(zm;d%2;eem{JY&2g;yRvV|z2#?6KXxL-w1&(2ms7EbF>WdYxx8Ww6_=O8Uj0de z;@>Ey4lyL_HK^#o(yt=Yv|}}DcY?d-H1$lX0^-{)NAJ6u4P)htOn$oau(Y3 zeRAO;Xf3a!(|&kPz;5{}6vwak)#GYUqon~&^CbCq*sJ;>9`+$ZjYldPOGg?mlb$yO zJAWrw*@vl~zc1SDVZz4ISEl!JEdU#kq)pGMmCTbP!8RRTRb2j0mnu!O{@B=-OIXu) zJVA|`xNRj>#*G2pe2-eLq%K6;=t)(=&@g%uVDmlTjytRd!HL^3Db2*eIP>|-u*QvP zuy*>zPMok$zZip~C&9hv!CF=Hd6xRax+L&p!F#4vQZax!{UQgD%wZHi4+2$8Nc_Xv zV)qAqoA2R4exO<|AvN7sv~ws%##LeX^8gnnZc~{gR6NbEmwCJdukrR*4teOH8U~(M zO-}Ujd8AK;99E_4ZCZE8qc7#h$MSw#d@g#!Wczrb3 zjQ_d{cnF7DcFqi_Beh~aPaIsG2pixTTsg1?hwiMXRO{~SM|0feK4iIsH_uP16;O3e zg@+EJ?Q>?}`kfVgZmn$5Kl$!e^O&Yy)5G}OFkb%5^ycx2^!P9y?p-wZnPlqBFrG{{ zk1xO*_mO}7$h_%;-&}Xof?j}5n0}z%bV0=ZV103_C%^IWQ$Jl#U^{-rUTXCnpd_h^ zPy2`Q)E%<_Qea9 z;^{F%!wP=Mrg$yint$IX+@_?gHu8?FmN&i6b9`uHdZ!UV7UuuG`jjC+ zNntB0*`w+Dx9IMGWxuZv=5p__I?@ig$40qVv_+@8uUtG*=l#qG{h1l5^xr&YZhB0| zpYcV>``A8^rMaqYPx&$%Ed%Q~;C^t)J~}9n1H)JYop*K(`OtoUdL27geh7xm**u>g zDr!BQ7B%lsb2$c%ul$iEDICK3vW9ny@>8PGMEb9MGtMqS4 zC}qojE@lU@iuK7ml5PIJ%Q(kQGv@SurNhHJfQipAk3G!Wi(yBBk*oZ5&h*X_1& zl8yDw`U!3e$NZu17inmn^?x_C6dbN5vwqP~eU;Tuh9{@Enn;%wl+BEGy$^;@<%ORx zxWZxd>qR1JTfA$>xXWFPl)8(N;otUHVWmK~N*aXT+P$JM%Zmg%+bI(sM!*7t6mt)=!_>#Pjw3Y@i826f%NsERLA z7{jNYB$-?Ds`_fpJ1xo=KblNw%z26Mw7IDf`u)2fkHl}-z%>^VuSJEO!WHc-|NlN* zhh3Dot)y)9sQU2s`q-5E7whxFifa=C^+SN83eQV&fU|_IY&iw6Qh9V8;24M`&nr$n zR+Qwo`U-21QYG%09%C?M}@aBOGR*XoY1;J$|RD!tvE#eZILIglJlgK zW@pXWrP6s^lBYI#w?6OP@TSD^>$I<$ZR`SVfO=L%&d3BqOieST0J{p$Bh@RGaAE42 z^u1PxQEY&OsD&&WuJsb`6c$&^g=HFoh!-dKsDCi|$cxG3o;w`P&|Z0~?Ct_!-MNH` z@|*#E4K=OP09uS}M!q#olZKUONbMYst55a(vS|J@oHTVi4*v?NV7gRQO(vo3Wk6AA z3aBO`M_6bvUGepn;NYl+oLNvdIvVxWqY@{sJy51hN&JOjVwcO|b%(W% zoZMJ(qsEONb-KoshIWKR11lQd67D>_rJ#Lyb3mzK5>86>+>e~qGnuSUjY}p|{|bA) zn@sh@(HC*F(WW+Pfykq{3pAoK6OZ9TuIr%;oYR6kVC0+ z*6EC8iOv3B9JZjHgVh0^co)X8eLQY3aZ|)T(IenPao0hs;4ZTnzK`M6 z%aw4KZ3lPBXFfkDpJ9`cUAB{FGrN53b^a=uhWb8j>rr)h7?)|9A+*^yQ!aGrB7!91 zI?Yb;*3Hl`6r&4WOd{wMoKKXP)5XdC7}Zl4-KT1tZ_V{dZmRp{{F_~+2r`QY$uvQZ zrZ=}ge4{C@mB1}VxhbwWt#!y02y-C+6cxYmI5buL!ryC~^TlmmeNn1sSdj=1j)r+# zV;6+`CtghLGqx~XobRP~tmhuh1nsF+*|xk$(4^3|ZW2WL-6gjv#ay&}wXLs_b8N|T zp6VLOt#ZFO8HMAtL`FeZ8=PjB?7GR?PcD%h^D8)(0}TSI1v$4&w)q&H61by+R1K|C zTWoron zWCS5FN+TcFX-@^+8~(9`50*{xHPxo}^_bmiyhaB1zX*sMEm6N}1ld)9w#|s-6f*^v zag>Yn&u>UpN=a@*QX4g~xN~EruhV`_)_!tfYadVln~~or{H>RxA z%KC74k^A{>U4%9#yq+>#a~w3KK5vSR4P$oCC`k{?4=0pBqaa|l98C@9v|2kK7UY!4@^y2n^ZMk*zjA;`!_AeSnlMp}qiMTe z5r-bn{PJaVt#Qg4df0zv)1Mllm1L_jWF9%o8wxRDTJwETX%>1llxqm)Je{-y=J9T#ok zq3iMowfrs-R+Y402DI#@-sUo(Wv@i2GewTpJ5JZD!>+BB0m7TVS6tq8VQy=XQbpZ0QV#BQKHX6&8dp^R<$)VT`<9uhe^CMS1W_ z^ZN!2__-67(A{rvw-%!N4OJwZf@!(?4SdU-+acUa?ArN0!!JEQN^Mja z_Dl^*gug3E4a`rKj$N|$acbK!eA~+V?>vrJz;*NloqOHRM&dtr?)AS4J@@2(T__iG zYq4y&>+D`r!hKWw)|by!5X0ShB(VPiJsh})9uD+)IB<1+s`w{Pg^GXVIJaz2+xg4B z;j+Z$KT-2XDn^GY3!h1TwB6CkriID2J1xDY)Ze?Di}uBAMz2gf{L7pAE5^U>;r!CU z6K)jVURb_ji?PXl3UF!!vnF@LHY`hoBimMuQ3+ki6sliyNkk|9E4|d>vAjSuA*m;+ z{sZTnY$o!;Cz!f>k*b_&cUZBvvXt)W)W698IH3qDI2}tZt`8T#D7f;MhxPyPKtiT; zJAoxf`<YD%1?3{i^q0VLN&*yHPdsIE`n_s?U zUX*f~aeT)p%C(!@XNUa5+N0ioHNhLI51q+_ecSJr3cc9 z{12DIy4>ox^T_2edmm0@uhtgV`A&m%;zzE=&tdQQ4JK!dvpf2Wan< z&JkbhNs52tCQ0$GC>ncOGTc>H)AzgX@582v$0hd5Z7IVe^1_qp^6*wJdEYp{sre@N zB1{eJ?iHB;) z4S)C}Pka)ZVty0qyEpR*&GNr~%Gt{Y8Qx~Re+iFnoygOe-_6P-i&M1qw+!;=gmd=y zpK$%0zZnl_|NYN=(V%!=#?R(Gc{AbRrsiSpRXM)m;T!ga?k|r`f5vNr%1D(5JV5U~ z_SoU|AH6t=b{}xoAGuZ0W&9~5usas<*sdB}cnOb`6*VkxwhA-_5n`YXUDZ`?$*wop>32gK@aNBEsYrkc2VcS#AVITK^ zdY|TDiS#huO_{N4QL2x%FIhjCDlJ&|O}akeYfY)cc(Kz4h2a2ROwRJqjw#<47rK1+ z9fz>b67JH^JvuVJ>M*aK>9d7My{L172o?wdU(c+~~ z(Wz_t@M~);_aaTN+B_hpb>Fht-}z)ZZ4=ItRvcN!0^S{L*)|Qyvx>{+kb0WWZHhe@ zy$Tf$lSb47_Y=O4(|DEcF}wn-iaTXu9}J6^-Fu|H<~#P(c5Ry4h;H(9@R z(~|^S{$)6*`P;A4 ztvRsy$F zdQ7hVJo{z8N>qZS8Jb`55S`g_aXrbqTLYiE(N~5n@9mqx`s{=0&72h1^jL|${#j`K zKcGhc7YtxYU8EV20O2ht4qiw$v7e!S@XHulUPiSo7t7E{Y7FR62^K?Xf4wOF>3V~t znaT0t*3iswy$JtdB^>*Dj*SM`U-8Wi`&E_LU+L&~&T=$LH!39kc`fyJ=ZQFiWcr|K z2(D~B0-fFO#QA~GRPphq5@`Ll!Ha$y_^cu!VBj;JM3CG1Fc@ZURjWdoeWo(v+7;tf zcSG!bQ%sG1T`)g)7Q)@{g!aYW@_Q&g%zB}UYHvZCbrT-17!U1>y&Di-qZ-XH<}QFX z_ghyj$cfCFrfPHaFyE{P<-!1@RWH&%ccGl#SoNBO6@jf7kKDj#64ZMKFSkC~(C+&l z;<3xhsk)ulIuhk;{%pWTc_i1X$QtJSv)#*C#XF%TwixyKyZa2ik0_eG(UM;zKh&$S z@5tdPb)J2@j(qlp)c4_;OnY9wmw?}siu-44c{2R(sNedYY1Gc6V%L4374!gf)3-IU zkFm%WevB{8hfuWd@K(Q_k>nvn+x$4(+pecVvPjt{q0D7=2>@<-772gt811yVw#@Tem+- zDhepKJQQHElp-HjCF*a0ZIMO#{o7&O_@$SmoPoIgu`GG^sw&T#m+tkkp82znbxYf_ zx_6LG(BACRVChOR<{66gleIU{=**=6yH_n-`ki-(;HHOD*ZLmVe98R_khumC`%ggT zD#?w7mK`N-FB!_9B|89ac4xTh-Zfy-+*&BPk0tjg#gt-{_W;GreGR0Se@fL83UQxv zc`VZuO{}6>5-{;267c2|?ffT@YWa}h$F`wnTInP9S7_P8k&C^FUV9Cl7>i3Aj+xkV z9@wVH#m}e$JDa-k(-zUxB}6IoA_FT4AauC`5mCO&y9c<5-AMqSHw zI1($Txbid2&G=CeKh4q_(_;aSb$O3y_Id$OusP25o=iy1g=)~tJzDurQBz@gSY0V)fntpZSTKPv6QevED!WcX%V zHxF&)%5?T(1bRK!K&6-IvYr>fUd@YH)o*xIipWQ+DvE@fpg^d$8@h(9DS* z%CpttsK2wf`vB#}OcR3f=P-pPL+yUB?QztJ#U;}W%`Ei5(mvR?(CqjCECbEH<{`Jf zXc1=hI(bDJ0h2=8Rtupt!fSst{90rpZcwh*lY`&Pw1QopAU zrqBGfp$0z=6!E4&Jt&z$fE)%lzKemYDH12{HhaZdSnM`vnT7x@1JIH=kQyCW!9l8V zzsFdZq~v3gBrIdTK}D>Gz|H|`D*&;bDaI>2xF-W*mr&78fo2w|1KLoqodSr5ce!T{Fw*tQbs3)kLmbt&8z=Bs(1BeECkZio z55OL;rnRBCbg4Mo8{9meI%x*K$$!_7JX(Ye1LUz*m^>UY-Nvi(cZ)oJD*7!ip`qej zyBUGl0Vv9Bhg579{ESq_W>c{7Hc@uMNA5V%|#8uJ*x>56A>DwFH#PZ-C_w)l@Ag%0ZMrCDExeI1wy93ZbIS z0-YsLESe#3KA`vrK;hHG!NgY@^o}s(;ey?v=FbG={RI%8Vcs9XryhFphY2;X;%=f|t5g!}7YH^RSSvg*`pv}VA{48D7GeD;7Pvas zfE6F+>yd~qPY|~B5FgEDZ+eJIM{zTlNrUBWCG~k*I`udBG<{15HhYi<%uI!lIfsB` z^3c*s$Jz8T9zw_XfNKnbCqT=5LoqYabB4gGDPj`rG=WQDWX=L)X9dEbWj`@shl9DV zAZB)j!50-7S#2oT9unL_f+O(MoT*}q94FCPdm>njFtIW8!2n>Q)j4he*62~A)ey;U zrVV3dF=iZcc{@pD23Y>lfSCGAn9aN(8VSg@JnMrgk7ldk#s&vqOdC#)z%osS;*N|g zn^`3eW7B58@c?R$eP6{9?U+lAPmB94T4Q&LaS@hs7&P;NXh$gWb_Y6y(T-K)=Enjj zX{ddZuse{<-Xt!{Z1!^>Y;(A_uV@3|D$83t7+UsoFl7&$y^%4?JoSYJfK_m85tw}# znmtD#!eC?>MJz91nbW|sa}C((0EcDY_TeUQ#%v~RKe-TL0S=ZTXY--OTxebr&Be=M z4@k@Aq8%Ba^lFEpC8Nn|9)i~LfQI4fmwkQKD^uzr-v@#01jEqU24I<0oiHb&54W*M zd&o5bG7UbMv!4+5bpY5y;2p0WGhkOjvs;NVOV|}2m=5M+)X|i*?(>SV8De{)oe3>- zfz)ngsP~-1prxPlp$$eZ^NIl*3eD{V%-O;Y@}R8;m(Rn15j15^`5mEDiJt<;ybi_} zN0ka4%&#>lp9iaO7}ecZ20;U%0YZHtrVrB)%`U=ypcLdm&D`x#sSwHZQP7G{18ZFj z7C!+jbvGjEaXBuVOha9bH#-v0+)cU~uNTZPyKVN40FV#J>?Z6Cza8@^Rv7?2z zU;y^AidzA)3Uu~c4+i7OW{VAdcL=o1HfYG35D4>gSXLu2?;(Tm)dAQVKy) z<9pP|PWM^K@AHHqS9G6hg zw?ZtkbeoA+YIrpti|Crmbln%bh^mHp$FUE97mQHS%|~+AU@hzz1NRcqo(K?r$6?4h zEW1=#gTdv^z+xqyFytcaVgr^Z?$;i2>2@p?Kx+`~D%Ds+4YP^gj*0u<;vN8&Ss-i@ z{)74sg*`&V4OICq>RAHDp$8!QlCZ33oa$$AC{_G>yHvn@N0(J|^nTaAE1<0N* zY_h=F0pMz3wI1Mjf%OG`2gqI;fE{AMZW3*r52z4!qQCpt4U~6cxnZm{jQ|Pk;48^m2X0IY( zwh`?FiA?kGT}dFeIkfceePPfX##g-Imcy_k0GS08J201wvnzd6O$pe2^BG`-YR@u6 zru936cj}+?eE}*Dq-OS5Xy$?d$?P!@&4m!%MV)?*#F)MScYx525f2|VZaBOJH-8ic ztfHE~m+HUuF1#s((91(UKewbb1I?U~o?4PL--^_!t zpTkTJi*4nDogl_w(JoSOa;P{x;Ba1prAA@%&~Flk6 z+%ZNNz+vWb(Qfwu2ML=`2u;BTuuJy{=oPzMaBzzeSIa(C z2cRV8OUVF=!mPbtw2`W_wP;0Pnc>jlYKuE{h!F^GdIVIPV1yxOCLm(+400!^xI@7F zI)$Ry5g?421}%?faJ1^7d4{j~aicF3j@i%v-W9mRgYlVYA4>XNVbgr9d%`Xa7!6PO zV1I*~enK=0mbrmHv2($)fA)lV!l0RVe6XvanN7r13(dws8+NMX_LkfWU>Th%g8D*5 zjDckj5Ab6zVec5c-u!yXXDdmW7>*gU5h~qjr5h0On<$#cs2#rvU>>6wJ6PCZ0ww6N z8L)ya3>q&F2+PC5PJa z*!3QaoqXzU0A?P+ZuXx3xJ5e+=T6?bsP#a1kua&lg0D0FLit2c? zkHD@0v^CTJH-Owsn>>G3?o|qzkz06mH+Op z0w~xtv4;ygBLHJYbjG%W5obyfN?`|gU0r>|3^0qV> z&Y>Qs1l1DYY~HuaWa`0Ve2tpeCd zK41@lkp?Ye0JfN7W?~@B6GqYAZ{Qx_p=FecgF7&3X4Y~VV!&o2$FZzDob5RjOrg(S z5m4_9*!C_lz6ML53YJ~ZhxRBSdr&|dh}4-jp88Nq22`xC_+rfTo0_?9rqX=rl* zEbJm_c`kr)0prMK&+~98HW0~Fsi*Of8fXxkg;@GBu-H^&-5Qp|yf&_TI3T?qLFc+i z^(XqOpFPDuIE?z)r=VsZQ86C0VR{^Vofeu+L72s2=h!?o)pXIeev{tlPc;#-9N z9-;<4IYQd=HjJRE-yzY9R9#(V7lCCp;_Vj#y+j-80mf0xULSxR3CKZzs6gP-z_Uy47s6&#IE* zmBXZRI9wCLwa-!8oVhmku4q?L!+zy~O?8+rOma5_U>}M02VrToFhz1Od8fioZwF>x z5$9Ns$dA_*kDGtZODJcDQ89h60V@Qv&(Iiti-~fot2pZB%u}9@42D3=K1(?}Mc8aw zsOJgzSP-wW>rz%C1J%ejy9_61YkRdj+&+Ptkh$!eH33 z;vNOa-sw?17m&JL;5Hvxfx%+E>ME1B_VhYo9B{x*KjxvpSvy$fb11}YD^+NNJnQHD z>*qsAiF$y67%H)b?z)SLREPeu%g2QD*wad7k2YX{<5S@mo)3tP7Wmo&XspM+_5r(4)MPcWEh)xl8eyW%1jODK z_9q{3rU7i|Fwum$tEt#KIF@;ZV(ff}1z>;0Mcpqn@dW{XRzZ~f3(;c0d<+hHoF5f?S^goUgXT7&~lg$*Awj-X!c8L#QJu|j9KDCt3V{y zEU+1)1XRRqJj5!6p?sCPv>i0w7Tpv3h zP(6JeSiDxoW4mK4KFNT64wlzP#WOvyhy8X;#brJ(o)w%3s%r)?lf&}9M5Enb#Y6BQ zO$0k*`v+LQMKqjbFaX?jyu%m_&_4Evl6lT|&_mfJ2*pm2+Cuno_fwY!1nJgR7~K|C{1weRu3o&(dq6+khE8MuEF z<8A8U8AZ*H4lFhXVf$AZSSjprvlhlYGUiTkZxgsm+}k{10(Vk0tpV6w0CSSxj(K>w z5g=A!z-|b@KGg_pLn#}vw~$BGu+7=QT38n!+OyEIQ^idSyWa>?jk83XFEG*vyeGy; z5AZIuSS7#^bp>3*wp`s34^)x);YO^@UJhSl7YthbV;LZNChj&E8)#^^p{V?$*w&!e z4cPg@{shemiya{BK#v;R7~}{um?ta%JJyGLjyA)RDC|T z5_AX_+xx-iY~1h4i%3fjugkNs(LO)pHtbrdEPWkCdu|EX@NmH3E`TkT0Qw4S+^d0S zJoQ9(|6}SnJHCt>10RJ^x~WH=J;$fLd%-P#PuR_fY&t-g>TWuqT38KQ-lAGwT_vxC z5hhch1f0XD(eLjb(fArIo8PPU$Rqwy?&JHcbqAxNVi#ht@*agmg|f#B!zLqg4%0XbZ9AZtL8Y2YOB6%K<;6Dt5?b^9zEW%BGisng z<2OBh24WvssfN~Tn*i(-dZX7iwY(^BQx!dwLT<&Y0XvvC{m$6J)1h_$Gqf-JfvvZR z!{}p&EnZOzH-yHcE)4Mx*TPmkVmP(h#KV`{;FeD`!sz?*iCAmAwVE*#;8o)kkM}DQ zni-8#aAuPPt!;j<5+jc`BzYWoG@WXC9>DuBE;;q^5z_B>o9>TaOQjte1McFEqp7Ck zORUjR44YT6w(83Obq~T`HC#5@vGTt{3(HVZygyj$JmfY%w33syqmZk(p^E-8&^G+U zSI~8hS!C3gag;=>%h+N_+iMo3M`PaqPN~^gI0dT+4Ly^OYMYApAz~i zwG$e89mQyI?@yFHrp4RvCs(n2Z}@p9P;tFE0d0E^#(G~>3PWw_EDXk9ucrH$ywNkc zvA3#)QKN7a0kd}_SMrMVU5cubS19V<0zVW>HB$|vsF0#L7?8tM_etEeJJx_HoSJ)J zbY503ER}9bhuRXjJ?9xYT>hSF7kTvDGO(`O8XD0JtoxyWyq7!@V9y4M=fGI+i#lsI z+8##bJ%EjPk0ipn-Hgb<&4Z*HP{8=r*w+1P_p_l<;9bhgK7(ZG>$T`ErnZKLDLNcw zU204lb^{{C2T&ZaO#;RUk0RHB_C)c(Uox!-WPw%lH0T*xo^u7TlaC z_rulf2cw$HuBoH3?ec}|_6}^t#mKo|c3oJ3mNhQ`7V_dlgsrHpq}qCjXfD~z>2Om! zp)_+kBFmoytbT*y{Go`rv;ayKP}1?m*mMg<`h8*)+Z)>IO^IdxIjC7#1IR4(kt+hz zVrb{wZpcypO>u4=VBw?C=9l@ru+&I#<$-|ZUqM^h-_VT*gEg)MES$L()*J-LeGRbJ zz-UeZvX|l2((Si8UeZ-&#Ja_%aV7m(atuvz{oeZ(YA@XZuY12j8<#R7P3f5p zSYAXQ=QEz&GS`OD+fkbw_iaB{H~(!+E!}}J)4j5mB>f0BHn<8O7F4oRqBqUK@9f5u zIUj8I3B2ssZyG|$*5#rFaNpsz${hDDs?7_~ z^8bbDS=@JZPlO>O7(fLKND>ibK?EoA}>ica)FYCD%!*{Oab z5?*Gk?S-O;YH%h=W>Y@UaK6g3Z|!Mh&VrmR`<{Gz`YB|6Nb%&Ws{SREROGm4Xk@Rq z9l4nzH%v7RAV2w=BsX~(Epw!ZlznT!I0ZCWmTdAl>cZMe2VY}iMCyMgG8qev$`uFP zs~y8Z4dpX9IxnLpUS7XjDT6B=%({P$v8BXVKT2Y zM5odolQjUG%zOhySvG8O%%F6N0wCX0)Ppv)+Ksb(=BwtHT%t|(2*b*e;{kzZvag_o zJ;{UOZbOOJzZ;4saw;T#&Lv)3;+I{|kj5mmi7(0cO^Pc1j)6aQLCI_-=owIUkE^e{ zfn##Y=&Q*TYs?ZK=zbrC(Vv{CM^xuKmthlQAXeO++~o7>SA&`0G~DP>I!CQYTws{L zPs?((d!2xOAL`TP#0?^{2~;Qk83Tc`h8vhOj-ciq6fFCOw2W~;B@=u~tS4B#%0&&# z*2ryM?$e(A0!0G|uo|T4k&$^V88#0*JBJ{-gxtt`q?H|GK$dEkM~R8f3NvVY1{Iq+ z_bI2Fa$W~28Eh!mL7ZuVeArFR;fzhJpis0CNRf#I8TCEb+!iPr2^jlM6ioC@MQ!mH zl#B06@Y{m{+)}hGNw8%e#WG(YP0^5mZrMY6nY#*a6}k3mf@BFO5ysP&uJq}^o`&3W zNy}(Vlnh#!{efZ3`*>hmAmy;if)kzM2Im~g6!PK<#Xlv#5prZVY#?#{bpdqm4JgyV zX8;cdYJ^;xj72^fF@lnV!CQrdn%Z>?Y?An8T;P$rhTPSkDEB!ptKs)ji*`Xi@x(Nq zSU996t@FT(e-Jbxx9(`-3yIs9K`PA30I)H{qQ{~VTwDR5^kbN1RvGH~#HpILR34G` z&{E_;f-eFX+0<7dkxsUCsE<-A*@i4L0?1Y3sw;cVi@ApWD@;{Z4AjL!O|?h)YHG&8 z6;xXVSq*<972L8KK}egre0sVJtgx=ge6So7OwF%7rojh1;}9}|B4R?=-tF|CM(nWv zro7dvbSo}=p?JuJz;S^NSLTAa_B$>Z+AOYYum9?K1*Nd(bt-xey>!oMH6Zl2>N)LE z&&8B<(-;~CJYyHwu<0I`rBXHSlNd0fX*8-tq~NN~A? z^j#MioKnf&*ySJz(DA%s;sN8MQGgEy0n0d4<^W#cLVy+J(h3RUcKN{3%k)NI#B&3KUrK#f4I!lYYOxxlQB5_5$|@R@VszPhf1ApJN|l9N zR%Ls5H2+$Sb*(O{@paW0`2;XkW3W|?!c5JKO5JzmLva^R-OO>tx9xt|WW>r>KdB_6 zqY0ZuLZ}SG!B?|>8>42`7R9nPC>%*XNlx-zRw((`PM}E)PS|m_x*nVv^A8e3`9F+m zB>B`m1A2L7UW_i*V7n7az?Sm@4g&&77&*B)Ep(y$7ATtbWN+*rKsysMrRRW{%tXLUBoS;K z|B0;9XGu(UP<{qWN%D&k!Y?tJC1nMoXJ}S(vr^A*P4sY|LZ53dUT}vF8@8-w0kmt1 z%=zLXI~L6^P6*LMMb_MASi3tif%!@^5_=w<$B2($K9+v*OZmg^<~?Ij{hba>H+M5f_2J~=G8 zOxd;h{8zq(L^TyO50X}VA|0It~gaCKas|dWRKDQ zChPEg^7bK!-m{3D+vtm3rRZjLIif}L$U~ttXoNJ4iP|>SE}qbatU~Huy*{A0Mm3o) zLemS<5W6FeJCrv43MqD`M%5-f0u(FZ_cXDjzA9P<#Y8=Np0xssrJ89WRIdPmdxr)k zBOD8JridjQs5$2ik*%%V?>q=(7v9NrM3#wV)TaMksNgKqVz{!gmtal$t6e4qSJTtOI7G<{}|Ag1juz_8m1R+A4@a zWGbY8UFul3-bdN1qwZ#{=xplG;IwXw-xddI3z`JAtZeW~KMJ;%In7POv*BS#C2>&Q zw6$v?WcVopLN7q(v`9twQ%BgRI8HDtOaz(ZQjB0LnTxt3Whis2(lU3b<9uC}&G?$j zqqgHcI@rMwcTOi6C)31=*=#Z%+%`^y=5GYGo-uT0jt`+-+!)TMuQ@&7QrTP5M)MF8 zX%~}u8i;5lpcBX~xrQ`%?OJ?1O*SVp48>;_(C=rJ>w6IRS|zYe+tMs@6EBgQC=un? zd{AX-j4CX?9vM3gV~Q(ncU7`HG7z# zLC;C#cLu-dab&dow*sLw{E6PJ zG+Ys!Orz%7Lc-5mqq|q{>VeN>wqFVVt5Xbxgul8C&}S=x*vYxElPOt9^z;3p+j2V4 zS87mGAum&dn*GuS```>}*zYRwRF}_obw(h~yKFekiVpOwUAT@;W&X=Yw_Qx9?UauK z2L4`lz0N%<^*PB#ka~{;DH(3N=NXVrrg$<#9gdVK{$TLCI3q{NTF-b{b&8|bJkYQR zyjFn>bESePcB0`OGYncxU7OzkC1viqkHy)U#lCnKlx3=;_Wo4Kz*3?QcwK3i z`y$yH*D~jwpft7ZEp(ML!i5`YSGJandK+DBwP3-%K#?!N3(b4upA+OO?U8iuLM)2T zG#L3}HdX#;pj`JHP{g@D-+xPqY*FcSwtD1)ec-Bu>s$jH$+#LiHAWlELoYWkw^@Dw zMV4W9EgV1D`!xJ1p8!trDMA6H+P8^Ska31Or{yrz;Q+Y`tcfty zc6Ul;D&QAgf<`1(}er7p%*7nmkf0_(yLq02!ztM z#u@6!%l5SUxTy{G=85iHHXf0VYDP`cqNl3`80u_t`8jFP=_fF!ZOr_rZ^euOy&r1N@X;37Cag1FzpefEO?+`s6*<<8>z5-Lk&-P z^hbue&@v}OU1*Avq0X7&LPK4xV-y`h5iD~+(#y`Yr>IPOP{dG&8C7hh9d8 zI=jL8RQn~E?tvN^>P-C^0gcdHj;sU1PzQ9XT85zxItPeTGSpdTkCUO!CWeCK95Kp} zhcH85AIMNgqvrUO#!v@Kk5enK(SdY`Z$y)M46F^fDls_Miuf=!J&5#0?(JTSBhsPMQpL zSmKoSDbdgp_gagwkFr@sX?jxtrP$#osXs9zclOaPL zmN)_#>afHaT4;!pK?j_nuJ}+ALla&E2tyqmXd2J~40R07Lxv7GL!C3g$xs&>;GCgO z1~_M^!vIGO&QMp{iW;1u&Kdb+s0)pJ&QK>KpA2;jen+th8=W=n3QVJ-E;SL;56Dfv zErF0RKsGAf4m5@Y0g9mPHN)tvR2GTSj4|S?!bCuf4x}z59-h#O+~W0xsJ4}+!BCdf zaJ6(X2~c&lVB!#!5w4UM(pM!UMtcQW4L3P_SD~vKLmi|lwF-+sIn`FGOKr!{0anUV z=0Pi5cILYVdYU^Q(16YR2U~R=fe%~u`>wxA$sKhaeuhm=F#zGx(nHN!9n})Y04fc; z-qrwB?z-8!>&KG6!%mBm>#iuNyNqWg%ODGGiYqeBxe=-8wU1au7Sh77ZEXU^+1UU} z^;llm159&hf>h(_heofw@l=jwE|%(@EOUTjkHi5m>ZY}X#QcJ^%OGdXRZWcMV-aBV zEfZE_%Z>noQ3$@Y8}((gT(3n$in>vsT9vjF_-fBt^ma=hH&DNmQLz{q&4NIj^?pag zbucpHs!0vkLaM1eTy5Z`Z7?`o44Qf=k^4GX#G z_WNtp7z!{N^rS zRwg!U9vmw|?%O`osSRy?iTvo_r%zI;=ePmCBO{LYfS>>e;TCB zYo*R5DUvP8ma)S`^9?MMvBTNXFm@m$fldI}*t8k1NxMNnkewyYnXj=@<&s+VKGk4e zqr?^E1Wm^Ra>nWiu=^xBR+ngniOreaFtI_+csGx|dF-vX#BPq=JmHo*$KE*>u3YNl z!dh--qv5hJTnlsK2XDI@sCJBbeF5 z2TW|PpE9vQyOFwK3~FB{Hp=?08<^N^Nl*alZNnfv4CY{B1F;bY2WMh~n?AKZG~Q>f zFP;E?nJI)9>qVrET9My|7Alaj4TvF^i49J8P;*v|0=gm-8#$Q)bexIJG%tW@nAmKY zGd|U&Ov!FgEXBkYLNc-0;vSPIjET(_o!bTqnAi{)8i|RG+!nzdH^WFqn2)x|cP6&7 zF4JN0r*zE7qd_J%)lDB#Cbmq3(7nIlzD>i#M)PM1QzkZ>*foe*`|w$SnApf#;L&QC z*cc$8ULMfu!J=^@I3-^i`sYk+$s4>Fsc};-bq9lxk~*3jO5HN?BPDfgu2VHrP&Sy@8qv)A!D@Otzp(1;Y)o;P*z7lP1VJV?`@`9w z%EV@uIdd7#m7xg@6B{#CX0<`U0^MH28k{JEqEykql5lWk;v@1bw=u`RGujAmOJ?)0KULvFUk5n@XJafx;!aEn} zlsTkL>p|Ilk0UzfWVwDr>p>aQ$4(*9U$L)+eI~#$XCGpPb*Y)T=XwP7mwq+32MlV!^%H zx8~>wi5=I&7<*ZO-ulMFmXq)C@^?c08c14+GPblgyrMH3$PPCM#$1ARj~W{p^tIBC z@XPT$K38fE0W*-axN@PF#iQ8#*+||r5)yZ*ezS{eI3pnF=Mx;LLido(N{T$y{}h4a zkp#_1)7OytixBqpf!tegtB*F;3>X@SR0Cz5p+GI)!n4>$M}fTwO{$x zc5LX0!Z}W5c2)2L zIX0WLNGCzfQW>`NyMTFmrP5ZEXOtMoek_XmY|18Y7e|vlDQyl^ya!OUjYzaN;Jg*E z80-#|aUyAo@@l#V^bSzjLSIqi2tYA204zRF6pIqddYpoh$33+BXrk`%C#!Cjy$`X> zxuUptKvlPRtZ12n&NR@8wldH;))S`=Q^5}ve}Eu4$B?!cX?BRB%CPS$`XnUS_ES1* zh{uH4KxwpHpfWyLrS9l<0rBEP9bui+!-qATD1J(Lvk6Mcu@tw%fXa?CiUK*`yOJ+O zXSYC6kRw+Gl(>hq=$j@Tg#brriZP7{-U8AG!I-o?GU^3DM=H44CwPt^c}+mZ)t)lc z_>A?+ZY47RQb3L|Cjmun^0Wc_i0q>4d~s$XS&=3NXrYSV9RQ6dJDG0?-t_6fje-=l zBRr(%c#xy#rlM}yAlQCI|PJjx7FbBU~a3X^OIy0qa8Wtjf#0PFI;!Y@U)nFM0MI6vsh{?G zUx6xk)DyzqzOWqW3Q`Xlp$4f`YhR=S7gr!~ABS+g8sli`ni5b2#(==`Ct}xzam}1P zKrO3}*GyMTpsBvXY*%KhzJ~Pww6Ab8)lbLA%AHjMlgnH;%Y({&^(k42ZOBQwtF*Cl zS3|b92-HetIo8or$41vR-*wfsCG4xft@~QKQsvv2^pHm4<-#e$5V>1=0~7QKdy5FhFB`ouhyDkxm-KzJ(k_ zP)#`tnq_B)gF*iG1W(M~q2yJJhUiuv4d0zomIV+FMNd`iXgFxi_9gF+hC`I;5?u@h z&$Y#K38|67{7Lt?0`O9;fCua|A|DY?9`Aa7BNX%^LD)*iqsWwSq(V~Lb}K{=Yt=rA zs>+@gYTZC$?dEML%LouG2}hMV>hd(GYUga9VnfsdN$l@h@PKi$Qn>}{k~U{>^UvyW zYf@MbI-BQOT!|aQdZb)5AYoUxQxUC8DUWTsD!~i8TFq_k`|gY z#4JWVsJ$!6Wl7gIw_O0Z#K5?F$gvxNY*s*U1;b^`I3>FHl@;+lgmkS@{&>UU!i9en(~RbG@$N)3`|@GfauctI)iFAR9KC25po$ zLzORoCSbO0*&lp+Pyp+`CJ2|@+mtq6(c2U(5VhSrpznO3$CbNMgJM4r^$7Lam|*}9Fi=)7Ra&}a;ld_etNa-kCMgKJoXjFhVp!hK40EvXRJB5Fcd88*%|swx!LSwdaw z5u}8b8D~o-DxpvfD7#YxGr=lb=aV>!9KA&r`jI3hGRa>8GFk|FLWEPYd3Hd-&&WzX z1&K-$Ss|sDQO1t&$vr|{;F+(KY{Dm1yQ@*%VrJF=)$yBa_pnelZxF^-vI*yWa8t55 z59G?SSx>}Lve^^(#6#8MaFR3Wd8f>yifcWU8mD-PS~t=)DU2(BBsm$w0-$vPIE6x7 zf}EMiW)HBI59C-jm7GXB1#K0y4hY&1m`8k|YYBL70Z1IOD+PV5`i2>x(bSY&9RM9j zT2h;rNGtG?gFT9AKUDUu57aXG)-QF0eucOKT z^+%8RTR`?EQM+8xJp-)@dn`o^Ox-)kOTJ8Ao||Q-0p+}=4|q-1ku)ay;6lXO$ zr)I<5Ou}!>|0m2nWkVYENd1~Cmd3diBwnU`Gs-_2zq;t{M&oNXY|we8E89jThul;8 ziz@%LyyhttRW6J#3~M|fRbicd^?R~Q9r@c*bU&OKl0C?gt*~^~5<3cyWE@Y&vS$kG z5%_$lTVH;I8N){-_xtXHaOKH-`0~AsOP^ z$c(NhdjY85c+v_mPez(9BznzZg5FbFTjfI3T+?yuvQ!?;dx(sQLzLT`5{)pQ zMn+sGsDsiJl;@g9hRD)+4LH$;hd}z;1Bu@7F43aB!Y*+LxR=5>NOM!8+`@y^^@9Y} z!_rxF`lDc9cRAg;5kqM1DMbiU?+az=T-jEv`mig(HD?MsK$gyd2+eh40~@`_Svp(& z4RJXZnXw0qhaGy`2iIkS-yTA+-qNHs=MXLFM6mf?-1){H;HU74Mv}I+h})4X`zh^E z54=N6h-Z)Z)K8U-`(!|`+|s%0&7db+u<7L4U}3rGa1s@ocB=4BXs}miqSQZ)nPg0; zhK^VA3L)$h0DT66T|Jk0|GnJavwlFdF)?13IyI-fFH4=-gJvfvt$+X&%TA)MmVc1hBelW!M#AF^N2awac{$;q_GCXZ8@cFJNHO>|Ee z1&Yk{s4uCYn~Q>C7Z8oSO5w7lK^TQV0L9Elh!^V%Wn0{e{LuV(ABm-R`_TS{fOVaM z3n7vDjDgN>J~iJ6l)XsMY3ggViGjih$Ej|B$sz;W7!^%X~YE_7w?L%m&uOUE}v#JL`%fLtMfqwHqpGX;d2~b&oGLmlA zxW%g2ql6$!z>}#&HK$B;nldf{5`hYO?!i5qoDV7cvNGyHFLZ`P=&XGnQaWcCGg2tM z)b)(7l;fK9S}Mnw6M!ODlWj|X2vANhIL_Rr)Ljh4KPA!LEA+8GB+nw6e3ziiaa~b8 zyk!&r1UZ`TDXOxMcm#(LME@yBQ4wITXhM3{UhYF`wMx8c$k<02?E`{;kzr{Ueyu8Y zq@wM`{S4nD@oyr-;E)p#&{N!5)qzc7al*N?W{nHLq$RfWKrk~d75Zliem0EagJhJf zC$PI3@R(+{8GokHsl4HBi>z7%+kmkvJklt^69Q=(~-tLVAlbnv(@ zguO-8m8wK)iV^A@N81OQX{4$uwdDZM(F%!^)rHD1jfb=#8)>9=TrC3E&{q?!1!~#8 z{#JcO!c*<}U0=@)C>i!uG%EMiwfal?@+X~5({>%+eqSA_DeA-yyDCbRd#bK))m616 z>?>@k=&M@jIN%EVGS(ywWe;*wTRe~663BYB)gY<1AQhC23T`Tt|xkxCyvl4tD$7V zrpJ#GZoF)n78K3ZbPFIJj#6ZzSJ475q@pg35S5#7AMRF@#Mc7QKXkR;LRB5`YP~bNtmQD|dZuAMHPVH4ln|oxMxFLQu!i4?zb2k6b#Zo)N`BA-;~v#_w4hcB)~ddh@4DgW0y< zD&ah=96NYpTEwygDw;_?dw4+}X$H*X9RwCO+T<{wV1t5Tr0GZ5tUV+Edfreai7phe zkCZQdNA6KRm_U9Sx|lQ>m`tQsK#w8=CE!uE2{nJR~fzFJ~m z4}caasB73jH|{QNU_Le?27==cmKpQ4??^3nh)6bystG+6k zr5$-Gyk&O;#e1p33uT?sX79pTVa z>GmQuC=)Wgy9cxd%;aT(AO(W#D5Z5F2u+pNgLVcPp^)9G+zzBgYLlkXsSNcd&HgT6#B;=!80D1bpjHTuZZzK-%jdpot5>1^rPK9ASg8i zlLeh%pwY+&{Ru-qe{}7Az}G1B3?=p+543v%5<-bp(IUS>Vr3w52q}qO3o(Y<+0-wl zY{|@kghl8CoV0w%I3AQK5tEBep5_y57SvbJT0=%lMW0jq|3EH?Vkx;i9JufP zkW9_=Q2}{NJZOcQ;AX`)s>*UrQ65LD<_mMZ2hL|g{Dx67krh55+J^BrK=%TT2={qTU0L*G@P^~+RH@tCoQ>NX)O%UMFGX80O79;R6mfM zA0%)UMM|gpA+40w8zrX7?d13Iy+LR3R=#9@^$^7aLon7O?NZY0KB1ZNV8p{*zCz{1_rq-&tspg_- zwQ9wqd5dP$s@>GIY#41A#ll$wKi}PO?mWu$iPVftj652d5xq4!A^KSK!{}Gh;*1p; zMVT!!TV}J`cv!`Z1nf*%k zo7r=+7i52%y*ztuc5%)ZIbY{2$<5BaFn4_Jd%4SUf6d*Jo2>DCjafD3)mTvD>zZ@( z3iFoKYFVpmt)puVtTnP$S?$`jTh(4v`Ncx;aNUA>&Fj5WZ+`tx>o2aqw!zm8 z=QUio%khm`HhQFS&&Cfl{-Lp4W6t(_5R~(X?#OtMa%+Y8%HY}cY)n|9x}TX|s4feqSc zwvV-cz5RRbKR@WWgMx!TJ7~#4>pQ&KVL^v)JH!vJeQ<|^k2`qb!9R4I*ztjmvpRm% z@tcl6b==tLh)%saU4O_~hb-@lN9(c#SwpX$YWes#pNN4$E({3E_S zvdNLB9r@2AuQ>9izt{Ww8Grx&sPm2*d35cg4>6nsUkzW3>?Rw|*exmnt zyD8Z3IF)uAFKaS(zo#mSttB(;{GSL zKe79XFQ53)NwZE`aB`QEdz}2y$qV`&*zb^j-TL+HcUiyU{M`H&`8VZ1k^kH&*PT+* zKcjz_{&)1B(m!$PCj%ZGFzvL5PkZY0N6$F(jC0RyerEB&-3ER;p~^r z{%}y=L4yVjA2fQv-dWBpri8#id&$Z@xiD;&3KTg(QAMaX!SMlAMckgm{;+~v) z8s2m7q>CqAJ8Ax;?hDjDc>3w5-+p@D zGxMhXGOf5E{pFUmpS>&?@pY8KmpLn#W zAQ8>Zi*wE4{txvMLv!+2OQ#3?mcmTb*fTxRNDG^x+Um3NnR74>=6#J~d!wsg+^2gi zD{nyj!P(h)M`d4)id?6as2DwLHxyEKo4{p&61zG#@nTMl+lOovzAI#Ew@wwR1l4Us zE`_GXa_47HrA{TdG7f3mK*WR+o0=Pk{M4`|u8?aCeRE6; z>JetXO#-qpufpWT%G;dUR3?mk5Cd76yHZ9N!t4r${TQn23!pgFzBJz;ZT&GlB$ z7Es0*qRKVhXBm|+e4Nw93#piW7m_B*X7IOuR^H6mwB<34L@btw&V;wI4)Gq=a%_cVpSo>ZYfM*+clyk3Lzw_ z81fB>%k#b5(%W-lmvLDl^p#+m`a)j=dL^h)Yafcr-EBH1`#5zuh-(vaTq_*5Yhxuy zRMms9N4a^Oi$*QU&MSQ{9xd+EEho{KD?aPT61C`a(R+z#KiYKlWWO_VcmZW17h7K} zDt#s1e{C!=AuDeQUr|g}%exNsJHs~o&mU8C@<3C%)S63f^Qh^v%Y))wVsjFFc$-&5 z@BR{QiYXxv#mEXMpkoT2nU-TLT$U*{}1p5`^yks^=6E_2Z( zUINem6E5}Q?w^5CV>XqJ$>yIm%X-&Sesj-ML96wGx|ENd6Co3Nk7i8}4lFo6M$t{#|rIX)N#$2(| zz}Z8KeQTb+jJP0s>K&*BYa<%%W*k})YZ&djHQLQUj#)3hhC$ubvU<$b64{Iokh>;mW#7R>~!sYGAG5MP6)U`=Vce3k?wv5+d6mvnQTZ*JmzIKAN7bXcs}zCO&H zUXWXQm!63N`7Vcize5W{&ZU~*D!?OcD2_OEO#}Asez>91hA)UQ&JP@nVh6kvl_)r421~+nse!~F151A4cGPhr_Wop}| z>7uX!3W>kP&sdbG|834sv#>YR#voy`DPU^kdv|k^KiU97&}30eiI^N9W%6k2{keHV z|GRt1w!=Bx=cv+5RhktBK3~RVJ8+ve<5j*CM$6|@v z17flF&~iD_o1GIqn00@+8@mg!)HnMk=S4$D__aEW9iLp}p)B7{L`zTUR&+`tS~ety zY2(N|@5h^Y4Aw6v_=#pro$nSEb?ldO)cLW)v+`zfDKW|GYVC;^25etz#k(fz#D_A^ z;@^4yj2%5-cr1P%H#v!g@%r;(iB8hP@d?>Wc*sVYJNcDXb&MLTWpDrAZE*8CBxugO zdGmVDLvz%pxt(!%Iv71NAoYJqOIU&ynVpr_&1niTAgw6^rzsQ`7b42*-41&lqI{7Q z1%PHQ(oTlvwCCouLS{L0y@96NVy7npx}DY&p3@TwRT#zMGLfZen$UHj<*HMLG*I9) zkV2Y;W@3AenxOvOjF;XWO_TC1h#2j$wcj%uQ-~cFapvOx9mD^ZCkksO(b2q3i6gm{ zs?OVrvS&Wb_H^*bSiFNau|-Rll(L~JTCMS@I`4+NMNV?``@`5xtU&I) z+M>Q@EPK_5Jj{y+-xV+q`>&aU2QCc+J2#c*m? zR-6GVpsh}W_I889(-iDry~QxpzGD2uNq8|z9onO zc=Ej_hdWUG!uXjz@;%(V!*DOCas6zbi#7cal3L9jc_+t+i%)bM`tSnzxoU zMx@!&R6246x#5n-ZH-cUA$CP?t(``m+tN&Z{L}+@!48!(W^FsC*2eP5H=J|+`NshtfY{W8I4gFf} zYlqS|y0uu#* zann(M4BP*-aod_VoBJFIE+9DXMM@3xF|&Tx4&x8svKXEM&E8}!zt|HOl}pxR)9cg} zv|D68*|H3wx!L#0dAt|9utVF>=g5T%wUw`SdGo%?Gnm(-;A~N>Lss5w9y~Vt%kp*+ zr&7C8Y125mnq4{SueK|7)aNB`b3u7BsHLMgoyuG}@+m_DM|>UF$RU$y^|AZ=JlFmt ztv03a`qkV;4b$BK9I%0wga-o7;}2kxWTTX*37zm46L&5xzqqPj@DUh%d? zXCfWh%X}b~5L16HdVu{^sQOa(xD(h+aVgi@&6R5CMNa8yLq*zNQT2;twzP%vE8A_Z z2X88!{wB~^-FKUuroJqgisyVHQ*7=O&OlgbThpg_A<30`{5okx%Srpgm3dM26I8T| z%IWGnHHB1BIGF@(yZt@8+)i5QeDJ4(q&mdvCt|sacDO^${)Kkr=o&rMOPY|`iL~5H z{oK4Ii8Y;d3D#McU^IQE4VHuk)x?Ob|DTRJa=HCsr{_3NGfxh-fv*4KM=rq_?W`ak z7LWtTTZDa=;|5~yOcPtXPhc`#tJ&9*ML~vxKf>F=&i!}iSk+Wv0IGntHU*uYHU$k% znSyStYzn%nx~8D`R*LaYoC9Pdk}9;fhWD#jKDnJgKD**_zWi$bsCaws?Qm*gj_~Jk z+4D;mMAC5cYb#kaFC%-+bdOmlWmBx&5~UR#?8~w_Bw+iSvyOz42_Dd6K*ddcpngEV ziDH8SFQn*hd+aYNjejne6wfn(s8H_7zvNTKxy@IqJKv~oKh6F0h?if`pQ9 zQc5es^h(f9o8+=88w;=`+)@ab9!+119v$&1Q4;A2oX` z9kTQ5;!Zbv@S>U0wOD*ochgvaIQ~r!rli9k3mIyxMHj>_K$;bkCCTNEPKVCL5UUdi zSfO%7G>?N$ORuaCj$d~gYUs0;laQQS9ON8c!W^L$_bES!@VnD?C0uK-zV%`HhQ z+RJdnI-O`~U7$4wn%IckM5e4}%VDb9ut@ENlf+f!rb`HI>rYnA;f}?3(cCx=zVV2! z4Q8@mOEMbfnj5^q%&T@j@RcX&qNBYg*BjN_WIK!gpKh+UvA4vB#f!2N?N5qzn)LwN zX&tuKFt-nmM_-P;U%hs0ecai3ZCri^W{;9O17}K9icVSbpIGawcb}*uXku9D+bn}8 zum^3Nfw1KDMovbQB1~OgHSvbX&_6Z%imxEK4-?bue;WrDZwFjsu?iPYWG}U3YC`Mw zm7O_0VL>U66knoGDa;`^`?w(K9}Y>R`LUKo&J(F0cZ{Dp^XZ7{oOpJ)qu$|G-rD|^ zt`;wFruI5=eYk;}#m+f-@ze16?a4=ure+*&y1`7;Y8c&dFZ7MZJ)wE;7@nQc6FtDBP+%4}8uZI#R<#Zkxi(luu$M`cN&Sk&s zJSB1Xz)k9IFLCz(g%3)P@b)q%#z_pQbCz}{{teP7&X34>6gl4_IRweyD3<#YLr~A1 z8|yYol{K|h!WsFq9t6sIhm1^>$j&30(S>L>J3j~6Vs?Hm*A{OkS0!vo4{~={rRs+7 zjr_2=4mqsS)$3YN?jP=2m>YkPuFB|i_29rO?YJm@_w2;oi{k3Hdcc-cO;j&Z-s4(& z{?K)b?}2>7PK_x5-^8ty`;lP{~-IFO9^|lDz^H_gsSFS50o-Mczy}m+D4q zD#o|yKIcaih9vlAO4u~cEAfSp_{PVK6+3DXCNg}f=gZOKPaC1;I4^@rjc}cv&F0$d z2P+caixs_d@adYR=^pZe%5nRxo$rMqT`crmBk3~3O_LJ)$8dTxhm@0^`8&^p_y&#LemQ=8sI`xc_Bi(qj$PCtG%sUS z8%#p12-y;wusvSyn6d4vBeeT~JB zOmMxm7#F*Xvhogy_xw5Dp;PS4j%P0G6#F^Rp;e;i^4RPRZ|zHuS$t&gFu9|cr%F=^Y?_3_r#Rrc9=;ywP_?QuQQG5ZF~8&v-= zUZOstrbyX~jAjeX^9wFVrcIxtea5Lz;J$!x-gK6uyfcBEyu{jzWdcdOA5vW+zol$h zL002%hf~jx!vZ#}+5d@IJsS_HHGH|ji!PH96B~&R71yr54*UJf_xov=@nDe01Dfb? zD=4zdJIp9KlOu_orR8)uXPg@{qFjzu?ap*m^^V8#5UJ{ZvZ{Bca>Yov8-}7!t2Ya( zf5ou1325h!Z(OZvKVRB~4ZVConagKOr&aw#k=J4_vap-;gRa^~4LCf6Uyi)$b8e8n zYQ~SzRrX{L@MLG)`B%h0d9ufAmA=jKm%~?Rj<2$pet7CS#htn?)~V}2ow_EJpSot~ z)Wx+y>eN-3K6SPGwbH2z7jS){kv?@5$P`te^H&-Qzx$A@xEPb08l?heWtCX;r>Cxa zp?KvOU1%YP-Pl7+N7lXOQ`b>{*&!3%9~;V(?e9%nM# zok-<-5{z=;9f?}G?H!5sJ3FdI0}fSpQL*i%wZiAM>ZZ~cLi;7g%(SUg`zaYbWrm=In26>0s)Uqz_*_rt#htz! zcX#FCt+~4|=knX#rzd|tikd_wdCnUQ$B4#SGIeJjX|aH~?$Pai|4_sJ{=J{2D`M`~ z*??~Ef}KxS+}3E@9R;jT4Yo!+9CksKjFHv7Qpm%}rIcH7wBeWTs`AoM8*2YmbV__b zHVHPofOog~C@x*>D#iUN`!6od9O!fc!NvJ5yx_&J?OLODw9=;8 zEY@#lc2!kGtGLAGxjt@6Jl0}yHlLym>Xx0?QnEqkhax+bT}gIAHsT|yw^_`?6RZ4# zI81I0oq!C%3ksk2XW5)TyJ?%ov_>c^v{D7M4F}^3`C#g!&hd{b{wt@+$W!>76Wl>ad$nlw#T4N6-9-TG{fT z$FedUXmfLyMsyv=Ih$BV+M3#)wr$7nK(=?Fo~r9{#zt1d>tTuJt37vR-+GJ(jIo?g z849o03iZaAfD`m#;>~l_J2hytz!zPip{L4Dr_#wgu`l~Wov;JG?MSU}_w$UNIvi^M z$vHNfXq^pH5S3ST)SPep9OuLo$w)m1a12@Rw}|&Iof>}dS@cvk?EHf}|FDn0yL6Qa zvqcMzwCKg(3!P8LVbxWAdDgswWW3+PnqM)5u;IaiV#j{UdtKoz{g#i3W7ET``?I-`8^t&) zwq2(nq14qEOZBd}mG7|Z6&-!43cj=mHyw6mzV8HmR61n!yTPsha#RR%Az4YLh#wMyI@9}B`E!mW4yzN1+5Qc^dMO>|bw!QWo zhbGt0kK0YJcziY-e;({D&R#t|@JV1~#xiufi<2wAlP}1L;ixRvSZE`YK6g`47ps4? zzf6tLuuUwmX1Ycw{#iA*OV!-JRr_jqSZ6LM+%R8S&0+2qAH>d;ATfwrt!heQ(b=K% zTcfZo)fKtEoJ~1gGoF9?S#4iUKX5sigIoUH>qZT;`x;iC;pz+7SngcLvO#zSmHPZ% zAJo>$SGdh*wR52=+)7{Hr@qupeYxwt;pJ;y_gO7#Nda=%y5N8Ch)CKzS(P^ZoNQgjK4Lnt`5KB605wFo*jk z`Knh_W{VHz1b;xc_-CQaK32{7By9mBj7s2Hp z%sv@@Fk5;y8=YfvmduJJu8{gJlCifMd!`+3H_+67sP*&Whb&3t%4bLJhx(R{R#wOE zSM5Fd`b2a{?3A=~$l>wmOVxE!*&!2l$b)UoO0AhZ6=(DcXq(e|bxlhNK2~Go^@)4D z{o+_W%Felcw^)21W>t>Z{JVIQ_?3w|IQb;b ziN()xTOzDcY-0C)Pm;Sw>IZX4#_nW7@WGb!p9q=CrK; zy{VNsnDzsza0jZY9gFY2t7mHc>*xCpME!p`v(r9KeX{kjP5h`GXttD8Z}&KuCyyET z_=AS2;xVmKJ_oMq4dQ<&?M0_BVe4_>o)PPjNE{wdB(h@hdV0gDn%=e5|IWj006Xi3 zu=JGhUp3fK-S0dSueOMvl$|)qJtg(3W^b2Ryo=tEN^Drf1-u?gI&u-Se}l$+=Nwq7 z;PJs0WOiFdq6r(#o%Gm=yGMlFdqJ7nvSxA09IXKlwfBf}sOnJPObn9>N!@I=VvjoLEl~<3HqhEu%9qPFoBoKX`i z7R6W0R=8p3xj2N;!HG|!vnpV8E+mixU&%Gol_BsCaR3thCSywpF>~= zFBWgT^C~7?o~`>{Ft)}&jWtKfR(;7m<~t@Y9htW%G02<8U~7#3dT9&AS-eN25Nw52 zsOe9fJ9PqgkBX(8JJD#!5k3^i)K*TN(iHMS+$pC{iQbO9Azi23S8zKwj8)JqvEGYj z#-_;aPX2docU}YVX20A)wTVZ^)@=l5ocn1lbvkr~6;#2ktRF$qZwr|0BV^k8W~zs- zWg+Vzqp|!`op&ZA-475H&-POcl^CM)o!6ZYbzvny6O4By` zlSJD^ynNW_hxh?KVkh$QMEqQJR&LUv3%I=D|0AFH|Ka9?SLl1WSLpx0o-gq#h;SZl zPDsJ&69jxE|DVz9;fDsL9kJcCuh6i6HX9c$%FgQ@@16bb)3HS-UlRKQ#dI{!5^+Bj zE|>A||HE%r{zJ8$_fh=&qhc2(hF=gLest{LiSMyl$AfTA;YrUY1F45n;(8P%wp^db z*~KizL$7;sG1e!0p8q82KX^l8=j(9NOBxH!gxHE&%@d5LI#dpTBA+v*)N!%2Pd}(#eF5%RrpXBgPm3=IW);xges#(I=>>v$wS3aXkapN}M88-C z)N!L{%`w+IC{S*oTw_gJ4mGX>xuEpptLO^K=9qr8PTr``@etG-JX4kA%F#3&0A|gZ zKEwTbze=@7Ik|8WReFB!ZGe?I_@%k(?i8HqP#F6L0 z|I5E-6pN2g?eQF~dTav#^RCi+IlCpK&cx(=NGo^gBz?0bGQU&W67(9 z6?)|_+!e>-*J=iDVFC|g0#Dv~GfGv=9J~XAjV7V*uIHlC6VIj}Zc5Zm@3Ino6FlM6 zBChS?Rv#<04$`|_1ig~)!L}X;Y!~D2Z|a*pcUr7yZ*`*@tKcv>>2^%?$B=HPTaRsh z+Etf{rd{Gz&vP-)e&bQ6^oEPp)c}PZCq_+Nb#3z9TlGXzKEF96YD~p(S8>wXFaF}{ z_+yD0vHppcr^H((a$~CYyA*y}x%X7rr^#n-C^L8Jo%H!*l zc&G4tU)-iAWT(A;A}#rb53h(){np0+uoroWi+G8mK(0NAp8F~^fUV-u&cC;}I`JTH z*SE(zr9!N;D&(5slrtv1s_I9W*7Q!jXVu0vs{Hr2CbW^%L2j#O=Z3l01`FMddm-|0 z8NyikWyJ!-U~U^ZD^fE2-g7!>yG>{#BRp@ZV8h?7(pRxU(+8pqrHYnA;ZJ?>gF;W{ z>N6oH1t2sAp9w)B;a7sfpD$Cc`}wkpSIP?EO85(Au0WTX9gsvUi2W1A9<`5=uq*O+j(N$oC%5V^NJ?N18x?>U%ir^{8Ojf z(gMvWoE>+<>o)bPSDM#<`fD~tqPw&Hi&eSZue80_GP0vv!`O1RPJ?Ad?S=o^%!g6c*j=uura2PnuChBHbya5z z(|&1C2z#SE2aF}7$(lmerU7HgX|jgkge-EJpWT{YT)dI&{TD!Cb}gWe`n2--C9Ht0 zccqfYUM8*iE^R79liu|C6^DiwVrrU0b+sE5$iVi@O&)fv<0;+$nm`c2x*0?l4fDdN z*{>7OC)3C%z625n?MEB-dYrV+zVWPSdO5+trw~m%Oh&_(h_)Q!X+2+m0dTA5$y(E$ z(%-0p&+GblPP8$+{`w8kpMLRqgL^;E+NBFXZoiJ)Y>%M99MZnMle9YQI84ha#+pa2 z1!^$I?Gq)I~ zgTc1ElxPiFk%q|FB|@~;5<|geMC*P>~n+xdJ?GhU=N7?+q=IGI6BP$ zda#wDyGwwcx{BbZ25c_ML58S=#P1&g=k?J*U$=w85gUQ#E%zDTy~!wC0qHaQkoNtr zTR|88-RF3;nzWH(=Y}=xWx`>D>y*||hWxL4BGFd&fT`iI-+TGr%{reV-q%^?3*ULQAYE@?AZ=v%@JGtHi71i+2>-?G?(mGLyfg(-2k+v z2eUwn{7!C4jtX~@JF_RzCT=IUB=f_4wRnFnnGYq)-?Zlk0?G!G7cxzfDH_bpgU~2^r|XP#8>|$v`52a`c(9Znm294+34Y z)%5!y2xqJ5c_wMQ-bGr^Gks?37N8>nAU9k8zK<8qR$KTtAk9|0_-P=`R=adpQx1`) z*=m0}iZsnu`}6RiGNjpR-#dmhH(MWT3IWYlQ@1vdW@`v(iV9-NronKwni}UrL9^9l zyz3x81(h7&;Uw@QWJ^J%i{^BMBU|;t{1?X~NlR*WTd?Qm&w- z2?ZYpZniQ_qefF!>k8sZwOUsY*C1S15K^LAVVt~FyR(~bp`59 zt!RY-0#oaX6IZvcxQ&5ZS5nZEfy7m0FQ;tbRElX`apLOM6(_D*SF|q>^U@&e#lz4) zAqxtqo={xfx?*S7Hdxz}QYF%;SDn^`t5J+p0HYZ4S z^=?2CAG_irs;Yn_NcOv$o;4CAJO3%75+u9w^FV@Rpi+;trJ5+4P9Ug&BuHGMkt;#6 zTV5cjfZjWXjP*SToFM)BG4)E2Ozvyc=AfE;m=u(EEek-H2*^mB4`PiB5HsE-$R6h) zKLtsUOx9N#xUBs>LhS`YZZ~`dXzdx~H@VdlM41pmkj$=UDHriE4Lb*wp`{;!w`V4~ zi=yQ2zrZa3+5v?VRXZRzd5zlvX+o!WKn9j90I!`Uezr%3lmR;+GTi*u4k%O_ZuXyb zgQmM18$0AVe)EHvHSkP$DC|*$mu|*@OL{Je#DMqQgu;u>0znOdAd%NsX7GwVT z|93w#bMDkLXU;iuX6}76C0}TiG&Xjcwj*LEXCUG~}P)ISGT(cXJYEB#)Y%tU<{-07wR9wEPCRM)Q*VtBf-!SqD(N zWg@Kzgsz*DtU+n#Bx^8UyptS1%Yfx%VvQ{L-OF*py zs9y%9?Tj@j?VN-`X*4HM*9qH^y8RYBo_P$OW+!V}vJL=}L8&>(8k7=uxBJN+Cg0oO zwXERq6{g3oXv3-&>&QDQZqt z%SV!Eek3mk?V;56N^R#pt_FpB#~@vk!cmFeR*ip3lWzOqJ=I`05*#F4UY``Op+03& z_=|F`Tbd`@KitnhBQkgL8rKC;G+oVHr^Cy-^oJF`#JG4dbOXtL}fp!VXfpOsCtX2P}>x4!swes5-np zh|ED>aR%&>Zvx%ik%ZmvCd<(Mc|7!16Gd;lY9jMWGoTlx=MH+nnqbEb564DkUYl^u z99~)7qN9;H&ix*Ag*ob3cDvi0NVepF+0?YW17>RubO+4xtG+KP)1AvdqhRYW2@es6AVXiq8?m%Cmtv4MbRBsyHoe{5!*XD zwWqu@Z`U^K)~#0g+dS9k6@%Z<-MG4Tj9-9O_TXh+a^Kh{Z}re#Be#0`aJP?cW#;V{ zlzAsG*gWgjD9Ph)5y1|wFrPz!mJ_!v-Kn>o`dv4RR^QcHt#Kq8}kcXIKW** zKG=SO$@|(}_|fIQV|fW2r4Dmjn%hVtsV&p4El8++(^^eCNU4jFc+*s=d@jhl6GY8^ zF;@U*+QhgM50lq+VzsiZl9%_9o*q{m61wj)OtY8c)c7MkQVrLmB+UwP&8nEai(nH! z(&ILd%1%w_Y5CvzeC!*3aITN^fUA$GxNGIUO8Gxe19yUBiTbM-|NjsAYuTOGl5qO} zr!nS)l<)L0>a-q6>XcN7$x_BAe{Av@Umpq9lwA`<(IF{h>A@y-BH97R< zDpPnr@|Px}`7}y5yBVl>V1O0z0*_6Y%uMMOc$t+3^>AP?_Mze^b!T82_{w2DV%*px zl(?rrpZoC5W0dj&`_8p}M1P#>I+^}Bg(b~V@g7(_MlSPQYt^Gl(}^4U`+q;_k$io{X1yiiFnl zXh(K=amkw9;G@Av&+H~+A5JK%jylRp6XzhOot0{}^Ck|fqs_kR*8}tmUHwyi-Za}z zPjGD2$4aW$-+mz`4o;1A-#r!ocwD+D~<5EK*kUdZY{Q%eVO<$H-*w zg6QPm4pT@GxO*T*Fv2B8K?C22!)m?i^egvWi#}zk*u8NUWd*0$RNYs(QRkS<>eC;t5rKi!6=HgPfe<-Nw zPX2_*q`w1XJ%xtb+Yiep^QB-C#d<|qqE)Acu5h#}sU}*UrkJYc6o3E)$M57%MXYvz z(bpFiV3Fpjds|b^ufosxmb_e85k+rRhEdJOI*pgq3*HJVmeO3ovs7p*WwWsqvv-L! zEeEnZ)MOAPyiY>BiNx7^qnaENQ2jqh$jmdpqnfQp7)}|;)eP2~L=_Hu;t1q10Xw2s z(^99y@c!(M|6&t=8S$O3=3L6iY&VWZpJ65=|FR76kEe{{`&}Dy7CD6ZW;BGklR4jv zdM2C((su;>^nz2T8;{&(3>h0zD}$=v6he=m1+3=^z685PFraC1whyx6=oV)aXQ4K~ zB5t)(bw+n_-UpeD7}>4MsAoL8Zkx#=rt6;O;N^Y{)+j+> zfP47-HtV+xeCuC^+yx8J@e{wCU8l#k3E0vzcx|6H<)s{Gx*%i+Fe0MU8o#`c5ZLQ1 zQ_jb;8_LRr{QV)TVW7GbUJawv-(b%KFQCPJ!pc&xY5|U0rihq#HQq^e7<`p(AJ({VpPQBtL<1X-sKA1|+Iqe)}&@$x3Z$uw^?B$og z#MFTmKho%;Ajr7qq@euKSYIclF%p!CF9^Ban>-yqfu2u^o;Mul_eJd5P~$HUh@47= ztLGAFFQ9C}OG9TswYb=ip*A;>s$GlC7fAa2yEbe^{kAu?J-Y^|{fi;LXpf@P4iDV@ z5N6K<*n(oOs!nG+Y0$a%ffq;5Q26}Gc>C|qoHTbg>Hmi;mm&o{0EQI%6>N(!mqk(a zd1P$DOc_;vWq=-{Gi%Qefb10YOCTA3(b6k`baQLn8#y*hI5kW|ih~O7+R~r|`qsPt zsO*$FK4inQa_f+3%3}DSi7{N3h4OG^SCyUM_(Zt_46WqNsQc0zS;JBJBf7g|O{;(f z(%yJ$uT-SHzoS0%vba187Mni3yUQ*cqFedvM!4(<2HY+IF252k_v>{}@nYJuD|-52 z`CN+XKVW41$7U=THYf94Z}uazFg5_pE^opJTnQGLnSaFNRxoU~eu$8625UT((8pO) zN9B8%QzP@*r@@z4Pha|Mr3Z}A?8SI&fugv-H5F%VMq~deBLXfO^{|BFkHb+e``krW z`iPu6{UN~Ay%n$O`yry0?ry)K!qpn7t!LsjyBG5#e_VHdlh`?lVfXUqVHNnze8_wY zsrT_Khf8m_IhSqvL}{gEKD+k2a5eKV0z>!yAGnT|?dwEZN22ujoeWi=+rE zcZUl(*PYYvvntd=){^=Zl)f1qu=#@4uRR4Ovq5Yy{qSZeqq}M_w{vj;+QnkR)0+B` zyWP6QR=&IO+NBtCY*>AabYA)%y3IxO$aQ=AZhy8?c(>wE=cdJIpt{EL&6){J{y~wA zu$QgoZ-{(ZqvCs^Xzep4^KkteJ+!N~;{N=a#T5N3V6uJ(ukczt?g7&a+<$%ypda>~JjR!V{E<&g{Yn+$%M3$vj5H47e$b z%)44nx4q4eqPoR!WX!lVo*-e~Cv>dD(GV7tz4IHCpiq*^Tuqa_}m_#Y^Up%p!e)1ngc`Dnie-%4p3)rb zyNLc@6yb4?g!b*!LxyIJMTmc^H*S1%au$FofNH=>PLG8rcC z4u5*%@y*+DtqhWUlEDo`Rj zI*pUgymMFDZJG>q*vdp^VoufnYXDNfeP80?cKVcYbQCasgg^tLknM|ijV_d7D%jB4 zrJ=#eXXBsvIg`j5M)@WYh**;-iXL4aut|s_Gi|#D2vZd3Ey4Rp*SFKn9*J}n9~Hc~ zVYF@qe<^vCF;Jc|b|(l0RGPQSY#$=QRxM|tdZo*4SIKtU(AJZb6AL z`*BU6$lOGih{a|z|E5hUQ|=6^cF|ZvmjP1qpACdeN2E~mG70>KO#-Kq#%SxYEmWHPE_YAXn}N z?yG(WnycS1d;=?;wC0Qe(_(dqK3+v1?XgsAzoet~SgP_54IA+TNNuD}Ue9b>Yvbhp z9Ri&+|HIQ{lM&p&&d$bY$9k-if8X4dKZVpYd97b0r6FRAM}w0!e(aR5m|BCF+vVMU z0=&e3sGkq`aM&#h&1wEdyw+=ovYT$EnI625OzkofYz8h1c(vXPsO{6f-qGFP0y_R< zr6N}2jlRhwmj2?i0DpA~-jwBdb05Qt-b>#TvcsM}D&PzB89XoOLGtbUCn@IOUD+~QO_`|w@d0~DlrbY08K~6%YHEJu z5}rGZ@JYVKZg;;`Nv@A&B0su3WMz^H`0-DxP?wd`&LbcCRX6sBPun>%n|Zz+BG}C{63mR5zV5ftr!(}}emXN7B1c`KP*;lb`;jNY@{>NNiiHP5 zoMHCsl{f4Smk)E^WjPxmN4f(qkMfyN7em(OFNC~Bn9XCc#;jDUf%=cT?4h68+81{2 zD@oqj&XUyRoNTM$s=Pn@=Ls^{s&Vc4)&lE!-HyXMTNt*i*3Vw?HQt zjtBC-hTg?3L%gH#+~;JE`y{O5vHmfz_mupH#$cqlsq&4gpV^zV^d@PnJ%+jLdm>;z zx~?xP*Ym9;`^R^4EigYF;fCxeC_e?Jui|ht`}G!dL>0SF4RT*-=AgRYYQmSbe#^0O z?O!v&xc1*WPiMn%)WSW1_>|x0o)>%{KjL6R23cz8S1cuYpDbaTj5y_5E2b{gRk|nO4VzI1{=GCJ^Ug}>Dv}#Ac0a>rKx5RGx z>3k)q1$#&4(>kJ#uj3~BpK~WEw?>y#hHDPq)MK-%`-v}kk?=hqo3%#uN=7#3y4p=S z@8<_axR?=chQzs_Am&}LTUk_onY{_Cu%zC*us-1X?%|aoKQd!PH0MPZ9?*@ib)Mii zn$O+G*LVkfawqiZ)s$m$OndfwjMtQ3X>Re@EWFl_>qA$(7z)@=Eh4qaAK`p5Q>5*| z@>^cNge{jbq?f!qizy~UJtglx9z%s+(b&KAaxYr^iu`Xc>&A3*sk(FEc-V4rU~}@K zsA4f$SEQ+9CLwi5TbtPx!A}z#)x5mK<&3JYq-K?gsz*~r$_JV1HvPsjTsrSeKG|PcLhP3G zzxryhtL9Lns9NTYgWC2Z%d2Ej5ysS&tZwU5-$BYnA(I}>k3kZ!o2%2LzYZN@9Jl@7 z*{Ah&2?_oyLvV0cysi7=?a>ski-u)ec^%pqByADi_5*or345BIo(5{RgAdbR7C^rv zh->qXpu0nk73nNUWn+lP4u3O{ZkEqveK84zui)jN?QSF?{kcIbCW_Wzgx@X*V7wCp zzAEX-s4oA#J^<^~ld)R@Yec1Jvu%F-HAXe)&IGB;FUjP zIK$z^TF_dbxG(8`RQ0Y8viF5?*?DV#7H)4izUE-Of3Cn=a6>I<(K|jwJdC)CM*<1M zvMD0PyjB4!YfGZvyO7Sc-Yv|BKEKOnWGYGh?zIqYJ0r-47G6SJ=?LQHYzMSu$6CxZZc*79gM{G+7Xfpfbl|G|Yt?}m2215g*yheR1=7iMuSO|0gaXF~XmBf{|pkVQF zKx^ldZ|A-~hhUsZzD{=lEi%MyJu`4)l?Sz*Lh3gw4b9(Y9F_B+644Y6a3bKCQNrM$ zA_gE@K9!n_2Kh`*9neO$Ig`0RV0*9Ce5y^CQo8wR=nUd=P^ns}UPYEI zMgmp+Cdh|cenZ_gFOb^&+>lxpkeY+qJfyfXpQ-e7k<5a%Nm&BW+wz~pZL=3%x8K)-n%_g}PCJM68%DxU z-|TB(0_vWm{)ymHwK>RSim5^@VVd;EYdW4RIjHz}9y{-b*Yr?7GCkjr{!2h`dXC7Q zb_wWy7xI+ejF$(sA))2H8irPn2F|DHnPh6dH|SJ93RL_ODCQuWS~y!}(yNX0sk0{J z`8>Q-b%6JgpAXs8!cvtfK0?=UoAf^o{T^q)uo=}yoycE!PzZ~kOWYnSi2JrRaXU*L zEYzrXs501K1AyB9nAF*)k=p(HXQ)fN`|?iv!R{y@HkokHf0m+*4XcS3pXmUxx>1fX{b zsX6FdWII|lorDGZ`mrj=f+${9ZKs8*ccF}CU=BxyG6k1~pfw(^dTBtuCP13G9H)r!Ta`8;+Ai3_<-j`pk>SP7QS8!st7~!eTEm^LPA9) zUd?rQOZUW!4mG5C#1+8Db|TA%Y=3O( zo77^<7Q9KmrF+xc(rzJ2`6=4aF@Ks4wRu@{AeE)2Ij^YXx^dTyvwr~k>sUgnRDbF+ z3Z^boK0BEwaZ%0nG*z<$H9GHlTFH+ydbAa&?3}P}jjFb8jjF=c7?-wH)QO8xnrm#0 zwhD)1gEgu$Tdl)!omS!+YvE|r>uim#l`K*@9Az`8n=~NEdcncZutpm1eBYK&^S3$qVG>lKxdSP{^~ zAx5kD)J)2yr#d*!V~Z%!TopJkipB&s;!3JAcu{n1NCZEI7d%Z;A9YpQ41ercf{#KX zUQ_7c&KzPgnL{&& z0r$=v4tzxB2;d_#M*$z5845fsGYt6R%q_s0yA~Ux#yIbcP|<^a+vvi=)jRfOx4g!M+{1} zD7$o6S*qj6ApmWG2+s5MwoM~KV-zE!$+85Bb7SR;^VL?vT*+BG_f)2sYXsd27c>UlTn2)(U8-7*fZi^H4aaHR_~r^Vqp zuEosHcs>NU87+1KE)Z`wU1%Y3b648&OiNO?^$s!VqW+SDqSGW9Mf-aP;h#d@Ow(1~ zE?y6yCrt~}8O--JzBwAa2bdwI%#1eInQ>-f<&BWud`Y=-e1;kvTSVT;}-937Hc!eKY+sCudH{oSqqwIV&?T zGYAZ~#udYRMW$KtDU><9_+{=A~>#luVl=GRNTeG+TSudDnY4c)#{;^u~HOdB5>)_HOaUdAEAE z6?XUT@Wy+0dUttud-r$~ynDU-yx)5Fdk;`j<9RxKls3am5AQ+mciuzZ@4boMAH0XX zN4!V9$Gl12=C%h-Ur@W`V$=);Gv)-S)=e*~=KYLTW7rYC-i@c%UFz;e-xOa(H z=8f=1dY5`X_eOb_d6#=vcvpI(yW@m4z_lg&KuX@wG*Sy!gH@v@k)6t{7y~DjDyd%A%yraEiykouNyyLw--U;4` z-cP-gyuMyP?_}>3ufKPycba#)cZPSSH^5``;Y?SzTJ+4r{O_1*lWJpj`nR^GUV8BJ zb+pzx)tc7S*C+D&%5&4vwVqEv8*K%jbT(b#nLUx~{h1R|-pfc>cW*cReT$g6iasSy zGs#QLME!_;+k3|pqve@{tfpuFK?k&Z`MsuVs)aciSDIREI;49N zHx;+mg{fVlPn18kmFbuoML3F3&xsq7d$#2$t2z>w8frSGTj%9h9V*)g=jY;8HZ{cI zlRB7{_;`)>t050mwE+@+}`Ocy})zgdiJ7e#uFP+IV#MUMHyFQO2eGu`dMpfB3 z=xXUxK-x4@s`^BG#SwO7%sSe*h4e)(>C1SuCH0yI3Gb!Or2Nj*A$LA;&^|j(`Sb&} zZE7qu4tWlGEv4S=2bu%+C{+GWaO%Ixi$)t0)@`TZ=T_9`_)|RUWE5VpbcgnqcbqH&Gp4S6 zc%M8UOLoPp)*&w%Gs%t0Da4X?q2S(@SG;v-kl^-yRM}u!oJag($4t*^x4y7GIwx&N zW+gWYd&i-klk|-YCGS~0lJ+F`lD*pDHny$NCf9H2u7sc6SUUND4^(HY^E_ziIsF5j zh1X-aiMUfKpTLSA0Dtz1zO_1$`Yi2L?~_h8^Z70r*LC_!{#vwE`Ggk97$?udzf5(< zc&Ti@p3Ez|Zk_xhbadW0_lXwU=a{dl^S; z!WRG+01tzQe9GgnP^^BJju&ngzwYFdQ~D(GwIKWxq4fPFlUj_W`;4|jF^OdjQn?!tXc+}G|oE;rStwIUAN)z+^z z5|^~~JaOOPZpY2QJ%=MLx(ge$YpN-I(>(S7@PxRZ8c)TI;cE-&us+d92fHxud6}iL z=&bpBJY~dFl6}SDYHSNlZei4Bq7Q*}hE;gw~IPk2Wmb#7;$ z6W;0zFA9dYtX_!YZQGKMqvLeN_r)okLVHOWg&J2v%YWD~3auVe`$~_U<4^Z&Va@9* zm*~QTztunCBR*7F!fYPVNbYUg6y0K86~4B=&?0>fPWnW7#t~|K5}M_QD*q&Ts4sm{ zw3NC!+Puo|%DH;-%cwm$(VX~%=C*#yTRheFhv4uNLY0l<8I!LQTG$Xf7Cr1}S4{ho zKlsQx(S8DTSeXXSqobuwKFt%mjq=KG%TOF5UA7Hx>%Y@6z<^2T9aevkZ~WM6h5wDqVvH=l`?>W_F;{HSnU zz3Wl8)pZ)HwCEM*vAkNh?L_y9SMqSm;#Q}Qq^?AkvtgZjlk(a88%h_CX}tn3*zq_e zs7e8ldCjLwE#37?|y>-~rTJNAKpXAw%T`tX)vpNBq#(auRP%6D_>!d#O zU7V)$0eSJthfDI=eyaUg&TKqogeT)@SeI$NRhs&oa`%`v^tFv-ioQDCZ_H_Sd^Gn- z-U}SQwjS}j>Xv&JICf?gW#wXA(iPB7PBfHE$@YFXa24)t~?;TsdV|vRN2d)1!FUzS8_>nbxR?Fvj(TWDCF7V z44xLpxDWX-$6swgD=YiTe|@wt;kVSVculMMOftZ;ZI6734PnC% z=vQo0WNmqNkkbFI+b=M7Og(qc4d) zUN_8JcQM{ZwjcTDCOWBZxWRVC6T&YEg{QT->k0GwAwEmiSoMVs^;dF$O>5;rwkA7$K`YT50?IM{-jK;a!L~}IBS>79w$!YE*^+^#=^Dg(j1MGt*iR1t-sdJ z2L?T*dBLz-Ys@cjC#fFXVBFrgwdBX8R&prk*U>WdDRGuR#3OR(JZmqs06y9bOW$FJ zWjNT`MTCnTezJQlo)^;x>5+KNVqrbUx+(jtIQFz^Ju9xEyu_zi z|77!{ztl#3y3Wp}^v&+4NEeJV?d`aZhws5T-9Og9qv-nsxa-Uo>0gm=3|Hrj`Y`%}{MJ50k7@05d-^2CS?(6xQ4SVQru$Q7bhJoL?WY4=v2BO> z0GPa)D)P&wv~xhT+O190ew@!IP57vNt#1@=Wz!1zdXQzY1MKXwurnR(r8r+VP3)6X8O=ZZBGW>I1A${lZyVLQnB5aBs$C z2b{)R>u1TTvFov9{bpsB{Nh=S!zMZ_LrvYjc~Vv~mqFeVm#uqSH%}@bI9q-t)H+5y zW73S-_vWO-Ro^WeS?9*)YY4}UEni>0{@}PF*P3Ic^PC;mY0z#+^iT9mM?3cU>C6Ml z4{gQ!dgtNx=%w4_UM7ADPc)Gg=$YaOLIrOhRxO!+Z5U7zT}a<(^^QlN#E@S%@SKh z`tuU%8)e7Yq}s5L^PQ!e+XqkDpGaA`uIrF&eLonxhA9$;J^pibeRIO#5MNa&Cs zYThlJ6D@1;T+1b#w*wzJk?IM=~{3);Ud#DGaL9~VAg7xbS^&qFP@+0 z`9A0D+J|x~E0_5T;R3>TxHoW=&HT}HEi5Jer97v4sVDuJi!0cUJcc?C#O=sDbA?N{ zZH;twWPVGY(@4LK=T3ybT=zNs7G)v`E^}IA(UmLDTe&IJK`h^}mA) zlYS~q_1e0XPxN_}Jm8XkhP93QM>)$Y;#cv6_(nV{Cs=YYo^_+1lRU}VP4g>bZS!e9 zRDSE&&q~&wNgV4>n^%0F#3f-L%1M?rCnj+U<9XfMb=Y=RCXkEd+3Dn|&tlWv)=4^YQHuSRm8oQ{Wb@OHd>NtNZZGOF>d?F4L_f(k8izjMeHCA4W!DhU z#_mI=|L(;Aw7C6`BgH^%C} z<$ZYLG0Ja%SJ#`q=eoRIH-FvdTD(trOApcHzm=EYHZ6Hy(vmTd+lD>e(#(ri zn17fbX-zC1W4@uk+GE6xVvH5`!TC1MJ~L*_CDD94r}SpO{xF-SGF6mup{t_`KI&!T zhnfS(SCu*?dfh$`U>!P|=h5UZv!UQB+s^1{zS_WD%llk~OOer~Hm@r))8-}3hFzq$ zRn~MOUsdWX+Mo{Jdw=29nii-3Xn(-R_T&5LQHq6aI!=9LKPGY5%cYrt$TIsq8TQ;2rc+Tx`Wf=*DuJm-HF9k;GRLe?;^xdxNFvpW_Z^-TEc{d?|`DyyHpVkK4zX%-t65nwcL} z6}-h~j+@|A7w>YM4HV;$;AGb-tXI&HpRpD=BJ(wEv8UTWO zBe8Y>Ys-1g2GE>YD{p?ef5d6Lqp@>qvOoGZ;|Xr{maE&=W$aOHW?SpD^8t9ho`<*k z1l}p+i0^6Z-Lu8^a{XKq=hc3O?1dfT_yzQ-zvB;UZzN;9F}hCnkMft967e>Bqa8B0 XOYhdCS;Od?kL_fyp@%=NNg4A$$IqLJ diff --git a/static/index.html b/static/index.html deleted file mode 100644 index a334e31..0000000 --- a/static/index.html +++ /dev/null @@ -1,36 +0,0 @@ - - - - - Developer Den - - - - - - - - - - - - - - - - - - - - diff --git a/static/logo.gif b/static/logo.gif deleted file mode 100644 index dae9b82ab4c42b1a7470120fdd4b2e6f6ed0861f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 458643 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

    Fboe=#1S? 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

    0f#Qa`%`BS<+D%!hLv=01zl8@ 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

    vVLFHe%!@-S*aw)YM56)+y3^l+_|&F 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 n!;kY} diff --git a/tailwind.config.js b/tailwind.config.js deleted file mode 100644 index 58bcc48..0000000 --- a/tailwind.config.js +++ /dev/null @@ -1,14 +0,0 @@ -module.exports = { - purge: { - mode: 'all', // Removes unused font-awesome fonts and icons - content: ['./index.html', './dist/elm.js'], - }, - darkMode: false, // or 'media' or 'class' - theme: { - fontFamily: { - 'titillium': ['Titillium Web', 'sans-serif'], - 'poppins': ['Poppins', 'sans-serif'] - } - }, - plugins: [], -} diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index 3daf059..0000000 --- a/yarn.lock +++ /dev/null @@ -1,2992 +0,0 @@ -# This file is generated by running "yarn install" inside your project. -# Manual changes might be lost - proceed with caution! - -__metadata: - version: 8 - cacheKey: 10c0 - -"@babel/code-frame@npm:^7.0.0": - version: 7.16.7 - resolution: "@babel/code-frame@npm:7.16.7" - dependencies: - "@babel/highlight": "npm:^7.16.7" - checksum: 10c0/bed53eab44e67480e67b353b94ab9bef7bce6cdea799dde591c296cfb47d872348f20cf9a3b82b0dbf8530bf67ca438b5bed3d80622ea76c7227cea3e6f04aa6 - languageName: node - linkType: hard - -"@babel/helper-validator-identifier@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/helper-validator-identifier@npm:7.16.7" - checksum: 10c0/5dfeea422c375edef9bfc65c70e944091b487c937a1f4f49d473d812bf4d527c4b7730ab5542137b631b76bd6a68af37701620043d32fa42fda82d2fe064a75e - languageName: node - linkType: hard - -"@babel/highlight@npm:^7.16.7": - version: 7.17.12 - resolution: "@babel/highlight@npm:7.17.12" - dependencies: - "@babel/helper-validator-identifier": "npm:^7.16.7" - chalk: "npm:^2.0.0" - js-tokens: "npm:^4.0.0" - checksum: 10c0/8f3a6da93c9c07040684456ec5308a8cd888ac3342e04f0e67ed05df372275283c99b8b5a59f273d04bd8b3972965b81792d74c7487a255599dbe11f4d085a53 - languageName: node - linkType: hard - -"@isaacs/cliui@npm:^8.0.2": - version: 8.0.2 - resolution: "@isaacs/cliui@npm:8.0.2" - dependencies: - string-width: "npm:^5.1.2" - string-width-cjs: "npm:string-width@^4.2.0" - strip-ansi: "npm:^7.0.1" - strip-ansi-cjs: "npm:strip-ansi@^6.0.1" - wrap-ansi: "npm:^8.1.0" - wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" - checksum: 10c0/b1bf42535d49f11dc137f18d5e4e63a28c5569de438a221c369483731e9dac9fb797af554e8bf02b6192d1e5eba6e6402cf93900c3d0ac86391d00d04876789e - languageName: node - linkType: hard - -"@nodelib/fs.scandir@npm:2.1.5": - version: 2.1.5 - resolution: "@nodelib/fs.scandir@npm:2.1.5" - dependencies: - "@nodelib/fs.stat": "npm:2.0.5" - run-parallel: "npm:^1.1.9" - checksum: 10c0/732c3b6d1b1e967440e65f284bd06e5821fedf10a1bea9ed2bb75956ea1f30e08c44d3def9d6a230666574edbaf136f8cfd319c14fd1f87c66e6a44449afb2eb - languageName: node - linkType: hard - -"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2": - version: 2.0.5 - resolution: "@nodelib/fs.stat@npm:2.0.5" - checksum: 10c0/88dafe5e3e29a388b07264680dc996c17f4bda48d163a9d4f5c1112979f0ce8ec72aa7116122c350b4e7976bc5566dc3ddb579be1ceaacc727872eb4ed93926d - languageName: node - linkType: hard - -"@nodelib/fs.walk@npm:^1.2.3": - version: 1.2.8 - resolution: "@nodelib/fs.walk@npm:1.2.8" - dependencies: - "@nodelib/fs.scandir": "npm:2.1.5" - fastq: "npm:^1.6.0" - checksum: 10c0/db9de047c3bb9b51f9335a7bb46f4fcfb6829fb628318c12115fbaf7d369bfce71c15b103d1fc3b464812d936220ee9bc1c8f762d032c9f6be9acc99249095b1 - languageName: node - linkType: hard - -"@npmcli/agent@npm:^2.0.0": - version: 2.2.2 - resolution: "@npmcli/agent@npm:2.2.2" - dependencies: - agent-base: "npm:^7.1.0" - http-proxy-agent: "npm:^7.0.0" - https-proxy-agent: "npm:^7.0.1" - lru-cache: "npm:^10.0.1" - socks-proxy-agent: "npm:^8.0.3" - checksum: 10c0/325e0db7b287d4154ecd164c0815c08007abfb07653cc57bceded17bb7fd240998a3cbdbe87d700e30bef494885eccc725ab73b668020811d56623d145b524ae - languageName: node - linkType: hard - -"@npmcli/fs@npm:^3.1.0": - version: 3.1.1 - resolution: "@npmcli/fs@npm:3.1.1" - dependencies: - semver: "npm:^7.3.5" - checksum: 10c0/c37a5b4842bfdece3d14dfdb054f73fe15ed2d3da61b34ff76629fb5b1731647c49166fd2a8bf8b56fcfa51200382385ea8909a3cbecdad612310c114d3f6c99 - languageName: node - linkType: hard - -"@pkgjs/parseargs@npm:^0.11.0": - version: 0.11.0 - resolution: "@pkgjs/parseargs@npm:0.11.0" - checksum: 10c0/5bd7576bb1b38a47a7fc7b51ac9f38748e772beebc56200450c4a817d712232b8f1d3ef70532c80840243c657d491cf6a6be1e3a214cff907645819fdc34aadd - languageName: node - linkType: hard - -"@types/parse-json@npm:^4.0.0": - version: 4.0.0 - resolution: "@types/parse-json@npm:4.0.0" - checksum: 10c0/1d3012ab2fcdad1ba313e1d065b737578f6506c8958e2a7a5bdbdef517c7e930796cb1599ee067d5dee942fb3a764df64b5eef7e9ae98548d776e86dcffba985 - languageName: node - linkType: hard - -"@zeit/schemas@npm:2.6.0": - version: 2.6.0 - resolution: "@zeit/schemas@npm:2.6.0" - checksum: 10c0/fba8a267fa1dcdf01f925c56966e52cc82dffaa2230f5857a4bfac37708f410264e9de42eb6eab18433af6e3d55e1d9c9c5be36be5a073684d1ef1957c729cb5 - languageName: node - linkType: hard - -"abbrev@npm:^2.0.0": - version: 2.0.0 - resolution: "abbrev@npm:2.0.0" - checksum: 10c0/f742a5a107473946f426c691c08daba61a1d15942616f300b5d32fd735be88fef5cba24201757b6c407fd564555fb48c751cfa33519b2605c8a7aadd22baf372 - languageName: node - linkType: hard - -"accepts@npm:~1.3.5": - version: 1.3.8 - resolution: "accepts@npm:1.3.8" - dependencies: - mime-types: "npm:~2.1.34" - negotiator: "npm:0.6.3" - checksum: 10c0/3a35c5f5586cfb9a21163ca47a5f77ac34fa8ceb5d17d2fa2c0d81f41cbd7f8c6fa52c77e2c039acc0f4d09e71abdc51144246900f6bef5e3c4b333f77d89362 - languageName: node - linkType: hard - -"acorn-node@npm:^1.8.2": - version: 1.8.2 - resolution: "acorn-node@npm:1.8.2" - dependencies: - acorn: "npm:^7.0.0" - acorn-walk: "npm:^7.0.0" - xtend: "npm:^4.0.2" - checksum: 10c0/e9a20dae515701cd3d03812929a7f74c4363fdcb4c74d762f7c43566dc87175ad817aa281ba11c88dabf5e8d35aec590073393c02a04bbdcfda58c2f320d08ac - languageName: node - linkType: hard - -"acorn-walk@npm:^7.0.0": - version: 7.2.0 - resolution: "acorn-walk@npm:7.2.0" - checksum: 10c0/ff99f3406ed8826f7d6ef6ac76b7608f099d45a1ff53229fa267125da1924188dbacf02e7903dfcfd2ae4af46f7be8847dc7d564c73c4e230dfb69c8ea8e6b4c - languageName: node - linkType: hard - -"acorn@npm:^7.0.0": - version: 7.4.1 - resolution: "acorn@npm:7.4.1" - bin: - acorn: bin/acorn - checksum: 10c0/bd0b2c2b0f334bbee48828ff897c12bd2eb5898d03bf556dcc8942022cec795ac5bb5b6b585e2de687db6231faf07e096b59a361231dd8c9344d5df5f7f0e526 - languageName: node - linkType: hard - -"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0, agent-base@npm:^7.1.1": - version: 7.1.1 - resolution: "agent-base@npm:7.1.1" - dependencies: - debug: "npm:^4.3.4" - checksum: 10c0/e59ce7bed9c63bf071a30cc471f2933862044c97fd9958967bfe22521d7a0f601ce4ed5a8c011799d0c726ca70312142ae193bbebb60f576b52be19d4a363b50 - languageName: node - linkType: hard - -"aggregate-error@npm:^3.0.0": - version: 3.1.0 - resolution: "aggregate-error@npm:3.1.0" - dependencies: - clean-stack: "npm:^2.0.0" - indent-string: "npm:^4.0.0" - checksum: 10c0/a42f67faa79e3e6687a4923050e7c9807db3848a037076f791d10e092677d65c1d2d863b7848560699f40fc0502c19f40963fb1cd1fb3d338a7423df8e45e039 - languageName: node - linkType: hard - -"ajv@npm:6.12.6": - version: 6.12.6 - resolution: "ajv@npm:6.12.6" - dependencies: - fast-deep-equal: "npm:^3.1.1" - fast-json-stable-stringify: "npm:^2.0.0" - json-schema-traverse: "npm:^0.4.1" - uri-js: "npm:^4.2.2" - checksum: 10c0/41e23642cbe545889245b9d2a45854ebba51cda6c778ebced9649420d9205f2efb39cb43dbc41e358409223b1ea43303ae4839db682c848b891e4811da1a5a71 - languageName: node - linkType: hard - -"ansi-align@npm:^2.0.0": - version: 2.0.0 - resolution: "ansi-align@npm:2.0.0" - dependencies: - string-width: "npm:^2.0.0" - checksum: 10c0/a3e3e5e58146ca7da775b919a480b8588ea76d0c91aa03c055535de25f327a09b72f7c10be2de6c84a6e1d8387b89bd9b4c98321b1759fdf4c2767c6f10ecd29 - languageName: node - linkType: hard - -"ansi-regex@npm:^3.0.0": - version: 3.0.1 - resolution: "ansi-regex@npm:3.0.1" - checksum: 10c0/d108a7498b8568caf4a46eea4f1784ab4e0dfb2e3f3938c697dee21443d622d765c958f2b7e2b9f6b9e55e2e2af0584eaa9915d51782b89a841c28e744e7a167 - languageName: node - linkType: hard - -"ansi-regex@npm:^5.0.1": - version: 5.0.1 - resolution: "ansi-regex@npm:5.0.1" - checksum: 10c0/9a64bb8627b434ba9327b60c027742e5d17ac69277960d041898596271d992d4d52ba7267a63ca10232e29f6107fc8a835f6ce8d719b88c5f8493f8254813737 - languageName: node - linkType: hard - -"ansi-regex@npm:^6.0.1": - version: 6.1.0 - resolution: "ansi-regex@npm:6.1.0" - checksum: 10c0/a91daeddd54746338478eef88af3439a7edf30f8e23196e2d6ed182da9add559c601266dbef01c2efa46a958ad6f1f8b176799657616c702b5b02e799e7fd8dc - languageName: node - linkType: hard - -"ansi-styles@npm:^3.2.1": - version: 3.2.1 - resolution: "ansi-styles@npm:3.2.1" - dependencies: - color-convert: "npm:^1.9.0" - checksum: 10c0/ece5a8ef069fcc5298f67e3f4771a663129abd174ea2dfa87923a2be2abf6cd367ef72ac87942da00ce85bd1d651d4cd8595aebdb1b385889b89b205860e977b - languageName: node - linkType: hard - -"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": - version: 4.3.0 - resolution: "ansi-styles@npm:4.3.0" - dependencies: - color-convert: "npm:^2.0.1" - checksum: 10c0/895a23929da416f2bd3de7e9cb4eabd340949328ab85ddd6e484a637d8f6820d485f53933446f5291c3b760cbc488beb8e88573dd0f9c7daf83dccc8fe81b041 - languageName: node - linkType: hard - -"ansi-styles@npm:^6.1.0": - version: 6.2.1 - resolution: "ansi-styles@npm:6.2.1" - checksum: 10c0/5d1ec38c123984bcedd996eac680d548f31828bd679a66db2bdf11844634dde55fec3efa9c6bb1d89056a5e79c1ac540c4c784d592ea1d25028a92227d2f2d5c - languageName: node - linkType: hard - -"anymatch@npm:~3.1.2": - version: 3.1.2 - resolution: "anymatch@npm:3.1.2" - dependencies: - normalize-path: "npm:^3.0.0" - picomatch: "npm:^2.0.4" - checksum: 10c0/900645535aee46ed7958f4f5b5e38abcbf474b5230406e913de15fc9a1310f0d5322775deb609688efe31010fa57831e55d36040b19826c22ce61d537e9b9759 - languageName: node - linkType: hard - -"arch@npm:^2.1.1": - version: 2.2.0 - resolution: "arch@npm:2.2.0" - checksum: 10c0/4ceaf8d8207817c216ebc4469742052cb0a097bc45d9b7fcd60b7507220da545a28562ab5bdd4dfe87921bb56371a0805da4e10d704e01f93a15f83240f1284c - languageName: node - linkType: hard - -"arg@npm:2.0.0": - version: 2.0.0 - resolution: "arg@npm:2.0.0" - checksum: 10c0/5afbe803aec7cd385706b989338800866ea4f20b774b83f2ea4dd2bf89b829399c60b9df0d44af4ddbc555356514ab5bf3b0cec7a3d16f4dbeba1d35382c99ee - languageName: node - linkType: hard - -"arg@npm:^5.0.1": - version: 5.0.2 - resolution: "arg@npm:5.0.2" - checksum: 10c0/ccaf86f4e05d342af6666c569f844bec426595c567d32a8289715087825c2ca7edd8a3d204e4d2fb2aa4602e09a57d0c13ea8c9eea75aac3dbb4af5514e6800e - languageName: node - linkType: hard - -"array-union@npm:^3.0.1": - version: 3.0.1 - resolution: "array-union@npm:3.0.1" - checksum: 10c0/b5271d7e5688d2d1932928b271796dbbddc422448557ab05ef6f34a9f84fb645eb855384feec6234bf59c226053a0e21b8a00b0e6cd588874b90a5c13dbeb64e - languageName: node - linkType: hard - -"autoprefixer@npm:^10.3.3, autoprefixer@npm:^10.3.6": - version: 10.4.7 - resolution: "autoprefixer@npm:10.4.7" - dependencies: - browserslist: "npm:^4.20.3" - caniuse-lite: "npm:^1.0.30001335" - fraction.js: "npm:^4.2.0" - normalize-range: "npm:^0.1.2" - picocolors: "npm:^1.0.0" - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.1.0 - bin: - autoprefixer: bin/autoprefixer - checksum: 10c0/80efba20a1884598098eb718c625020f3d234a285e562997c17a5f78560b307b0494051b8851b03862e58a78bafc9e4c9c0d1828293e438a22c935834b6d629e - languageName: node - linkType: hard - -"balanced-match@npm:^1.0.0": - version: 1.0.2 - resolution: "balanced-match@npm:1.0.2" - checksum: 10c0/9308baf0a7e4838a82bbfd11e01b1cb0f0cf2893bc1676c27c2a8c0e70cbae1c59120c3268517a8ae7fb6376b4639ef81ca22582611dbee4ed28df945134aaee - languageName: node - linkType: hard - -"binary-extensions@npm:^2.0.0": - version: 2.2.0 - resolution: "binary-extensions@npm:2.2.0" - checksum: 10c0/d73d8b897238a2d3ffa5f59c0241870043aa7471335e89ea5e1ff48edb7c2d0bb471517a3e4c5c3f4c043615caa2717b5f80a5e61e07503d51dc85cb848e665d - languageName: node - linkType: hard - -"boxen@npm:1.3.0": - version: 1.3.0 - resolution: "boxen@npm:1.3.0" - dependencies: - ansi-align: "npm:^2.0.0" - camelcase: "npm:^4.0.0" - chalk: "npm:^2.0.1" - cli-boxes: "npm:^1.0.0" - string-width: "npm:^2.0.0" - term-size: "npm:^1.2.0" - widest-line: "npm:^2.0.0" - checksum: 10c0/9df2e59dd6622cee184aaffc017b3b3d506f1f70cddb0a7c19d22c865db4222faa9940512a7a6e2065f48500f9310a04d27af2037b1afeb2143e79430c9af476 - languageName: node - linkType: hard - -"brace-expansion@npm:^1.1.7": - version: 1.1.11 - resolution: "brace-expansion@npm:1.1.11" - dependencies: - balanced-match: "npm:^1.0.0" - concat-map: "npm:0.0.1" - checksum: 10c0/695a56cd058096a7cb71fb09d9d6a7070113c7be516699ed361317aca2ec169f618e28b8af352e02ab4233fb54eb0168460a40dc320bab0034b36ab59aaad668 - languageName: node - linkType: hard - -"brace-expansion@npm:^2.0.1": - version: 2.0.1 - resolution: "brace-expansion@npm:2.0.1" - dependencies: - balanced-match: "npm:^1.0.0" - checksum: 10c0/b358f2fe060e2d7a87aa015979ecea07f3c37d4018f8d6deb5bd4c229ad3a0384fe6029bb76cd8be63c81e516ee52d1a0673edbe2023d53a5191732ae3c3e49f - languageName: node - linkType: hard - -"braces@npm:^3.0.2, braces@npm:~3.0.2": - version: 3.0.2 - resolution: "braces@npm:3.0.2" - dependencies: - fill-range: "npm:^7.0.1" - checksum: 10c0/321b4d675791479293264019156ca322163f02dc06e3c4cab33bb15cd43d80b51efef69b0930cfde3acd63d126ebca24cd0544fa6f261e093a0fb41ab9dda381 - languageName: node - linkType: hard - -"browserslist@npm:^4.20.3": - version: 4.20.4 - resolution: "browserslist@npm:4.20.4" - dependencies: - caniuse-lite: "npm:^1.0.30001349" - electron-to-chromium: "npm:^1.4.147" - escalade: "npm:^3.1.1" - node-releases: "npm:^2.0.5" - picocolors: "npm:^1.0.0" - bin: - browserslist: cli.js - checksum: 10c0/a5fa95920cc66997b240c9e6f9bc16f0f5775cd91115c303f88df75f68dfd88bc7230f2576816a1d02d7bc8b58ab796bddf891116296e98ffffb8f996e4941c5 - languageName: node - linkType: hard - -"bytes@npm:3.0.0": - version: 3.0.0 - resolution: "bytes@npm:3.0.0" - checksum: 10c0/91d42c38601c76460519ffef88371caacaea483a354c8e4b8808e7b027574436a5713337c003ea3de63ee4991c2a9a637884fdfe7f761760d746929d9e8fec60 - languageName: node - linkType: hard - -"bytes@npm:^3.0.0": - version: 3.1.2 - resolution: "bytes@npm:3.1.2" - checksum: 10c0/76d1c43cbd602794ad8ad2ae94095cddeb1de78c5dddaa7005c51af10b0176c69971a6d88e805a90c2b6550d76636e43c40d8427a808b8645ede885de4a0358e - languageName: node - linkType: hard - -"cacache@npm:^18.0.0": - version: 18.0.4 - resolution: "cacache@npm:18.0.4" - dependencies: - "@npmcli/fs": "npm:^3.1.0" - fs-minipass: "npm:^3.0.0" - glob: "npm:^10.2.2" - lru-cache: "npm:^10.0.1" - minipass: "npm:^7.0.3" - minipass-collect: "npm:^2.0.1" - minipass-flush: "npm:^1.0.5" - minipass-pipeline: "npm:^1.2.4" - p-map: "npm:^4.0.0" - ssri: "npm:^10.0.0" - tar: "npm:^6.1.11" - unique-filename: "npm:^3.0.0" - checksum: 10c0/6c055bafed9de4f3dcc64ac3dc7dd24e863210902b7c470eb9ce55a806309b3efff78033e3d8b4f7dcc5d467f2db43c6a2857aaaf26f0094b8a351d44c42179f - languageName: node - linkType: hard - -"callsites@npm:^3.0.0": - version: 3.1.0 - resolution: "callsites@npm:3.1.0" - checksum: 10c0/fff92277400eb06c3079f9e74f3af120db9f8ea03bad0e84d9aede54bbe2d44a56cccb5f6cf12211f93f52306df87077ecec5b712794c5a9b5dac6d615a3f301 - languageName: node - linkType: hard - -"camelcase-css@npm:^2.0.1": - version: 2.0.1 - resolution: "camelcase-css@npm:2.0.1" - checksum: 10c0/1a1a3137e8a781e6cbeaeab75634c60ffd8e27850de410c162cce222ea331cd1ba5364e8fb21c95e5ca76f52ac34b81a090925ca00a87221355746d049c6e273 - languageName: node - linkType: hard - -"camelcase@npm:^4.0.0": - version: 4.1.0 - resolution: "camelcase@npm:4.1.0" - checksum: 10c0/54c0b6a85b54fb4e96a9d834a9d0d8f760fd608ab6752a6789042b5e1c38d3dd60f878d2c590d005046445d32d77f6e05e568a91fe8db3e282da0a1560d83058 - languageName: node - linkType: hard - -"caniuse-lite@npm:^1.0.30001335, caniuse-lite@npm:^1.0.30001349": - version: 1.0.30001352 - resolution: "caniuse-lite@npm:1.0.30001352" - checksum: 10c0/8ef195fbf7d8d3be7275b5915d517d4a25196a8ab7ce2b4412f39d9d3d2a0128f61936068e5022004f58724414d575516a4eacc6f3245bdcd1d86b11a0b900da - languageName: node - linkType: hard - -"chalk@npm:2.4.1": - version: 2.4.1 - resolution: "chalk@npm:2.4.1" - dependencies: - ansi-styles: "npm:^3.2.1" - escape-string-regexp: "npm:^1.0.5" - supports-color: "npm:^5.3.0" - checksum: 10c0/f21b77e6e791d7c2c3e44bc2bf034f11ce0806f0e2f75d5b18cda6822a8496864a9627854b540595822c33db6c6ca5aa81081889bd595d60a871e2759c0041e1 - languageName: node - linkType: hard - -"chalk@npm:^2.0.0, chalk@npm:^2.0.1": - version: 2.4.2 - resolution: "chalk@npm:2.4.2" - dependencies: - ansi-styles: "npm:^3.2.1" - escape-string-regexp: "npm:^1.0.5" - supports-color: "npm:^5.3.0" - checksum: 10c0/e6543f02ec877732e3a2d1c3c3323ddb4d39fbab687c23f526e25bd4c6a9bf3b83a696e8c769d078e04e5754921648f7821b2a2acfd16c550435fd630026e073 - languageName: node - linkType: hard - -"chalk@npm:^4.1.2": - version: 4.1.2 - resolution: "chalk@npm:4.1.2" - dependencies: - ansi-styles: "npm:^4.1.0" - supports-color: "npm:^7.1.0" - checksum: 10c0/4a3fef5cc34975c898ffe77141450f679721df9dde00f6c304353fa9c8b571929123b26a0e4617bde5018977eb655b31970c297b91b63ee83bb82aeb04666880 - languageName: node - linkType: hard - -"chokidar@npm:^3.3.0, chokidar@npm:^3.5.2": - version: 3.5.3 - resolution: "chokidar@npm:3.5.3" - dependencies: - anymatch: "npm:~3.1.2" - braces: "npm:~3.0.2" - fsevents: "npm:~2.3.2" - glob-parent: "npm:~5.1.2" - is-binary-path: "npm:~2.1.0" - is-glob: "npm:~4.0.1" - normalize-path: "npm:~3.0.0" - readdirp: "npm:~3.6.0" - dependenciesMeta: - fsevents: - optional: true - checksum: 10c0/1076953093e0707c882a92c66c0f56ba6187831aa51bb4de878c1fec59ae611a3bf02898f190efec8e77a086b8df61c2b2a3ea324642a0558bdf8ee6c5dc9ca1 - languageName: node - linkType: hard - -"chownr@npm:^2.0.0": - version: 2.0.0 - resolution: "chownr@npm:2.0.0" - checksum: 10c0/594754e1303672171cc04e50f6c398ae16128eb134a88f801bf5354fd96f205320f23536a045d9abd8b51024a149696e51231565891d4efdab8846021ecf88e6 - languageName: node - linkType: hard - -"clean-stack@npm:^2.0.0": - version: 2.2.0 - resolution: "clean-stack@npm:2.2.0" - checksum: 10c0/1f90262d5f6230a17e27d0c190b09d47ebe7efdd76a03b5a1127863f7b3c9aec4c3e6c8bb3a7bbf81d553d56a1fd35728f5a8ef4c63f867ac8d690109742a8c1 - languageName: node - linkType: hard - -"cli-boxes@npm:^1.0.0": - version: 1.0.0 - resolution: "cli-boxes@npm:1.0.0" - checksum: 10c0/1f79cd17e39cc00710d85c2a2d33ead781d1215b72546b31cfb4da5b2edc1f12ef8f99af67afb8a79fa1f92ad6b54505cc245afb16eee5fa01772f87353ba6e4 - languageName: node - linkType: hard - -"clipboardy@npm:2.3.0": - version: 2.3.0 - resolution: "clipboardy@npm:2.3.0" - dependencies: - arch: "npm:^2.1.1" - execa: "npm:^1.0.0" - is-wsl: "npm:^2.1.1" - checksum: 10c0/171c7d216dbec50213e35796740eaf79e39fb3442b7a8caf7414c2aed1da14e4d040696126c467325641612267a3dd43740d2ec29719fdcfb62065c6a2f91860 - languageName: node - linkType: hard - -"cliui@npm:^7.0.2": - version: 7.0.4 - resolution: "cliui@npm:7.0.4" - dependencies: - string-width: "npm:^4.2.0" - strip-ansi: "npm:^6.0.0" - wrap-ansi: "npm:^7.0.0" - checksum: 10c0/6035f5daf7383470cef82b3d3db00bec70afb3423538c50394386ffbbab135e26c3689c41791f911fa71b62d13d3863c712fdd70f0fbdffd938a1e6fd09aac00 - languageName: node - linkType: hard - -"color-convert@npm:^1.9.0": - version: 1.9.3 - resolution: "color-convert@npm:1.9.3" - dependencies: - color-name: "npm:1.1.3" - checksum: 10c0/5ad3c534949a8c68fca8fbc6f09068f435f0ad290ab8b2f76841b9e6af7e0bb57b98cb05b0e19fe33f5d91e5a8611ad457e5f69e0a484caad1f7487fd0e8253c - languageName: node - linkType: hard - -"color-convert@npm:^2.0.1": - version: 2.0.1 - resolution: "color-convert@npm:2.0.1" - dependencies: - color-name: "npm:~1.1.4" - checksum: 10c0/37e1150172f2e311fe1b2df62c6293a342ee7380da7b9cfdba67ea539909afbd74da27033208d01d6d5cfc65ee7868a22e18d7e7648e004425441c0f8a15a7d7 - languageName: node - linkType: hard - -"color-name@npm:1.1.3": - version: 1.1.3 - resolution: "color-name@npm:1.1.3" - checksum: 10c0/566a3d42cca25b9b3cd5528cd7754b8e89c0eb646b7f214e8e2eaddb69994ac5f0557d9c175eb5d8f0ad73531140d9c47525085ee752a91a2ab15ab459caf6d6 - languageName: node - linkType: hard - -"color-name@npm:^1.0.0, color-name@npm:~1.1.4": - version: 1.1.4 - resolution: "color-name@npm:1.1.4" - checksum: 10c0/a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95 - languageName: node - linkType: hard - -"color-string@npm:^1.9.0": - version: 1.9.1 - resolution: "color-string@npm:1.9.1" - dependencies: - color-name: "npm:^1.0.0" - simple-swizzle: "npm:^0.2.2" - checksum: 10c0/b0bfd74c03b1f837f543898b512f5ea353f71630ccdd0d66f83028d1f0924a7d4272deb278b9aef376cacf1289b522ac3fb175e99895283645a2dc3a33af2404 - languageName: node - linkType: hard - -"color@npm:^4.0.1": - version: 4.2.3 - resolution: "color@npm:4.2.3" - dependencies: - color-convert: "npm:^2.0.1" - color-string: "npm:^1.9.0" - checksum: 10c0/7fbe7cfb811054c808349de19fb380252e5e34e61d7d168ec3353e9e9aacb1802674bddc657682e4e9730c2786592a4de6f8283e7e0d3870b829bb0b7b2f6118 - languageName: node - linkType: hard - -"commander@npm:^8.0.0": - version: 8.3.0 - resolution: "commander@npm:8.3.0" - checksum: 10c0/8b043bb8322ea1c39664a1598a95e0495bfe4ca2fad0d84a92d7d1d8d213e2a155b441d2470c8e08de7c4a28cf2bc6e169211c49e1b21d9f7edc6ae4d9356060 - languageName: node - linkType: hard - -"compressible@npm:~2.0.14": - version: 2.0.18 - resolution: "compressible@npm:2.0.18" - dependencies: - mime-db: "npm:>= 1.43.0 < 2" - checksum: 10c0/8a03712bc9f5b9fe530cc5a79e164e665550d5171a64575d7dcf3e0395d7b4afa2d79ab176c61b5b596e28228b350dd07c1a2a6ead12fd81d1b6cd632af2fef7 - languageName: node - linkType: hard - -"compression@npm:1.7.3": - version: 1.7.3 - resolution: "compression@npm:1.7.3" - dependencies: - accepts: "npm:~1.3.5" - bytes: "npm:3.0.0" - compressible: "npm:~2.0.14" - debug: "npm:2.6.9" - on-headers: "npm:~1.0.1" - safe-buffer: "npm:5.1.2" - vary: "npm:~1.1.2" - checksum: 10c0/989d50d8191392ecb0442775a0374e4baceeb266fc5abf21d8c2857d52f2300d8b9c4051f6edb617c2aff0104e854776884b611e77f63cc72cb319da43036fae - languageName: node - linkType: hard - -"concat-map@npm:0.0.1": - version: 0.0.1 - resolution: "concat-map@npm:0.0.1" - checksum: 10c0/c996b1cfdf95b6c90fee4dae37e332c8b6eb7d106430c17d538034c0ad9a1630cb194d2ab37293b1bdd4d779494beee7786d586a50bd9376fd6f7bcc2bd4c98f - languageName: node - linkType: hard - -"content-disposition@npm:0.5.2": - version: 0.5.2 - resolution: "content-disposition@npm:0.5.2" - checksum: 10c0/49eebaa0da1f9609b192e99d7fec31d1178cb57baa9d01f5b63b29787ac31e9d18b5a1033e854c68c9b6cce790e700a6f7fa60e43f95e2e416404e114a8f2f49 - languageName: node - linkType: hard - -"cosmiconfig@npm:^7.0.0, cosmiconfig@npm:^7.0.1": - version: 7.0.1 - resolution: "cosmiconfig@npm:7.0.1" - dependencies: - "@types/parse-json": "npm:^4.0.0" - import-fresh: "npm:^3.2.1" - parse-json: "npm:^5.0.0" - path-type: "npm:^4.0.0" - yaml: "npm:^1.10.0" - checksum: 10c0/3cd38525ba22e13da0ef9f4be131df226c94f5b96fb50f6297eb17baeedefe15cf5819f8c73cde69f71cc5034e712c86bd20c7756883dd8094087680ecc25932 - languageName: node - linkType: hard - -"cross-spawn@npm:^5.0.1": - version: 5.1.0 - resolution: "cross-spawn@npm:5.1.0" - dependencies: - lru-cache: "npm:^4.0.1" - shebang-command: "npm:^1.2.0" - which: "npm:^1.2.9" - checksum: 10c0/1918621fddb9f8c61e02118b2dbf81f611ccd1544ceaca0d026525341832b8511ce2504c60f935dbc06b35e5ef156fe8c1e72708c27dd486f034e9c0e1e07201 - languageName: node - linkType: hard - -"cross-spawn@npm:^6.0.0": - version: 6.0.5 - resolution: "cross-spawn@npm:6.0.5" - dependencies: - nice-try: "npm:^1.0.4" - path-key: "npm:^2.0.1" - semver: "npm:^5.5.0" - shebang-command: "npm:^1.2.0" - which: "npm:^1.2.9" - checksum: 10c0/e05544722e9d7189b4292c66e42b7abeb21db0d07c91b785f4ae5fefceb1f89e626da2703744657b287e86dcd4af57b54567cef75159957ff7a8a761d9055012 - languageName: node - linkType: hard - -"cross-spawn@npm:^7.0.0": - version: 7.0.3 - resolution: "cross-spawn@npm:7.0.3" - dependencies: - path-key: "npm:^3.1.0" - shebang-command: "npm:^2.0.0" - which: "npm:^2.0.1" - checksum: 10c0/5738c312387081c98d69c98e105b6327b069197f864a60593245d64c8089c8a0a744e16349281210d56835bb9274130d825a78b2ad6853ca13cfbeffc0c31750 - languageName: node - linkType: hard - -"css-color-names@npm:^0.0.4": - version: 0.0.4 - resolution: "css-color-names@npm:0.0.4" - checksum: 10c0/88ef97c25bcfb217469cdff428049022438cc546eb208210f0edec03b75050723db3ba02cd0f4959c84cd0659be0b43af3323eff80d1ba5fb15c2accf09ccbe2 - languageName: node - linkType: hard - -"css-unit-converter@npm:^1.1.1": - version: 1.1.2 - resolution: "css-unit-converter@npm:1.1.2" - checksum: 10c0/540e94213fa5305c49215c6a2ba24d934fa400c0ae0897a87632a3a3a8f4824d168448806180c511dcfb2ecf21cf16be51af0739ff09ef5bcd946f19e9a5624d - languageName: node - linkType: hard - -"cssesc@npm:^3.0.0": - version: 3.0.0 - resolution: "cssesc@npm:3.0.0" - bin: - cssesc: bin/cssesc - checksum: 10c0/6bcfd898662671be15ae7827120472c5667afb3d7429f1f917737f3bf84c4176003228131b643ae74543f17a394446247df090c597bb9a728cce298606ed0aa7 - languageName: node - linkType: hard - -"debug@npm:2.6.9": - version: 2.6.9 - resolution: "debug@npm:2.6.9" - dependencies: - ms: "npm:2.0.0" - checksum: 10c0/121908fb839f7801180b69a7e218a40b5a0b718813b886b7d6bdb82001b931c938e2941d1e4450f33a1b1df1da653f5f7a0440c197f29fbf8a6e9d45ff6ef589 - languageName: node - linkType: hard - -"debug@npm:4, debug@npm:^4.3.4": - version: 4.3.7 - resolution: "debug@npm:4.3.7" - dependencies: - ms: "npm:^2.1.3" - peerDependenciesMeta: - supports-color: - optional: true - checksum: 10c0/1471db19c3b06d485a622d62f65947a19a23fbd0dd73f7fd3eafb697eec5360cde447fb075919987899b1a2096e85d35d4eb5a4de09a57600ac9cf7e6c8e768b - languageName: node - linkType: hard - -"deep-extend@npm:^0.6.0": - version: 0.6.0 - resolution: "deep-extend@npm:0.6.0" - checksum: 10c0/1c6b0abcdb901e13a44c7d699116d3d4279fdb261983122a3783e7273844d5f2537dc2e1c454a23fcf645917f93fbf8d07101c1d03c015a87faa662755212566 - languageName: node - linkType: hard - -"defined@npm:^1.0.0": - version: 1.0.0 - resolution: "defined@npm:1.0.0" - checksum: 10c0/2b9929414857729a97cfcc77987e65005e03b3fd92747e1d6a743b054c1387b62e669dc453b53e3a8105f1398df6aad54c07eed984871c93be8c7f4560a1828b - languageName: node - linkType: hard - -"dependency-graph@npm:^0.11.0": - version: 0.11.0 - resolution: "dependency-graph@npm:0.11.0" - checksum: 10c0/9e6968d1534fdb502f7f3a25a3819b499f9d60f8389193950ed0b4d1618f1341b36b5d039f2cee256cfe10c9e8198ace16b271e370df06a93fac206e81602e7c - languageName: node - linkType: hard - -"detective@npm:^5.2.0": - version: 5.2.1 - resolution: "detective@npm:5.2.1" - dependencies: - acorn-node: "npm:^1.8.2" - defined: "npm:^1.0.0" - minimist: "npm:^1.2.6" - bin: - detective: bin/detective.js - checksum: 10c0/0d3bdfe49ef094165e7876d83ae1a9e0a07d037785ab0edc7b50df9e4390e0a050167670f3d2d506457c7b00b612471ba840898964422c425e50fe046a379e55 - languageName: node - linkType: hard - -"didyoumean@npm:^1.2.2": - version: 1.2.2 - resolution: "didyoumean@npm:1.2.2" - checksum: 10c0/95d0b53d23b851aacff56dfadb7ecfedce49da4232233baecfeecb7710248c4aa03f0aa8995062f0acafaf925adf8536bd7044a2e68316fd7d411477599bc27b - languageName: node - linkType: hard - -"dir-glob@npm:^3.0.1": - version: 3.0.1 - resolution: "dir-glob@npm:3.0.1" - dependencies: - path-type: "npm:^4.0.0" - checksum: 10c0/dcac00920a4d503e38bb64001acb19df4efc14536ada475725e12f52c16777afdee4db827f55f13a908ee7efc0cb282e2e3dbaeeb98c0993dd93d1802d3bf00c - languageName: node - linkType: hard - -"dlv@npm:^1.1.3": - version: 1.1.3 - resolution: "dlv@npm:1.1.3" - checksum: 10c0/03eb4e769f19a027fd5b43b59e8a05e3fd2100ac239ebb0bf9a745de35d449e2f25cfaf3aa3934664551d72856f4ae8b7822016ce5c42c2d27c18ae79429ec42 - languageName: node - linkType: hard - -"eastasianwidth@npm:^0.2.0": - version: 0.2.0 - resolution: "eastasianwidth@npm:0.2.0" - checksum: 10c0/26f364ebcdb6395f95124fda411f63137a4bfb5d3a06453f7f23dfe52502905bd84e0488172e0f9ec295fdc45f05c23d5d91baf16bd26f0fe9acd777a188dc39 - languageName: node - linkType: hard - -"electron-to-chromium@npm:^1.4.147": - version: 1.4.152 - resolution: "electron-to-chromium@npm:1.4.152" - checksum: 10c0/198493c2d6fce78a0d6da580e0cb0bef3505b0992eea432d462789cf0ef37fce9836550b4ddc226980922402a8cefaede7481e89bb677da9d678276010fd20f5 - languageName: node - linkType: hard - -"emoji-regex@npm:^8.0.0": - version: 8.0.0 - resolution: "emoji-regex@npm:8.0.0" - checksum: 10c0/b6053ad39951c4cf338f9092d7bfba448cdfd46fe6a2a034700b149ac9ffbc137e361cbd3c442297f86bed2e5f7576c1b54cc0a6bf8ef5106cc62f496af35010 - languageName: node - linkType: hard - -"emoji-regex@npm:^9.2.2": - version: 9.2.2 - resolution: "emoji-regex@npm:9.2.2" - checksum: 10c0/af014e759a72064cf66e6e694a7fc6b0ed3d8db680427b021a89727689671cefe9d04151b2cad51dbaf85d5ba790d061cd167f1cf32eb7b281f6368b3c181639 - languageName: node - linkType: hard - -"encoding@npm:^0.1.13": - version: 0.1.13 - resolution: "encoding@npm:0.1.13" - dependencies: - iconv-lite: "npm:^0.6.2" - checksum: 10c0/36d938712ff00fe1f4bac88b43bcffb5930c1efa57bbcdca9d67e1d9d6c57cfb1200fb01efe0f3109b2ce99b231f90779532814a81370a1bd3274a0f58585039 - languageName: node - linkType: hard - -"end-of-stream@npm:^1.1.0": - version: 1.4.4 - resolution: "end-of-stream@npm:1.4.4" - dependencies: - once: "npm:^1.4.0" - checksum: 10c0/870b423afb2d54bb8d243c63e07c170409d41e20b47eeef0727547aea5740bd6717aca45597a9f2745525667a6b804c1e7bede41f856818faee5806dd9ff3975 - languageName: node - linkType: hard - -"env-paths@npm:^2.2.0": - version: 2.2.1 - resolution: "env-paths@npm:2.2.1" - checksum: 10c0/285325677bf00e30845e330eec32894f5105529db97496ee3f598478e50f008c5352a41a30e5e72ec9de8a542b5a570b85699cd63bd2bc646dbcb9f311d83bc4 - languageName: node - linkType: hard - -"err-code@npm:^2.0.2": - version: 2.0.3 - resolution: "err-code@npm:2.0.3" - checksum: 10c0/b642f7b4dd4a376e954947550a3065a9ece6733ab8e51ad80db727aaae0817c2e99b02a97a3d6cecc648a97848305e728289cf312d09af395403a90c9d4d8a66 - languageName: node - linkType: hard - -"error-ex@npm:^1.3.1": - version: 1.3.2 - resolution: "error-ex@npm:1.3.2" - dependencies: - is-arrayish: "npm:^0.2.1" - checksum: 10c0/ba827f89369b4c93382cfca5a264d059dfefdaa56ecc5e338ffa58a6471f5ed93b71a20add1d52290a4873d92381174382658c885ac1a2305f7baca363ce9cce - languageName: node - linkType: hard - -"escalade@npm:^3.1.1": - version: 3.1.1 - resolution: "escalade@npm:3.1.1" - checksum: 10c0/afd02e6ca91ffa813e1108b5e7756566173d6bc0d1eb951cb44d6b21702ec17c1cf116cfe75d4a2b02e05acb0b808a7a9387d0d1ca5cf9c04ad03a8445c3e46d - languageName: node - linkType: hard - -"escape-string-regexp@npm:^1.0.5": - version: 1.0.5 - resolution: "escape-string-regexp@npm:1.0.5" - checksum: 10c0/a968ad453dd0c2724e14a4f20e177aaf32bb384ab41b674a8454afe9a41c5e6fe8903323e0a1052f56289d04bd600f81278edf140b0fcc02f5cac98d0f5b5371 - languageName: node - linkType: hard - -"exec-sh@npm:^0.2.0": - version: 0.2.2 - resolution: "exec-sh@npm:0.2.2" - dependencies: - merge: "npm:^1.2.0" - checksum: 10c0/2c2ea327775f839b872cd965dc3f48f2f600a86f795bf482f8de9db3737deca4119bbafae0d47d0093f36ce6031223174c39fb5b2850e58f9d935b5d8d6bc673 - languageName: node - linkType: hard - -"execa@npm:^0.7.0": - version: 0.7.0 - resolution: "execa@npm:0.7.0" - dependencies: - cross-spawn: "npm:^5.0.1" - get-stream: "npm:^3.0.0" - is-stream: "npm:^1.1.0" - npm-run-path: "npm:^2.0.0" - p-finally: "npm:^1.0.0" - signal-exit: "npm:^3.0.0" - strip-eof: "npm:^1.0.0" - checksum: 10c0/812f1776e2a6b2226532e43c1af87d8a12e26de03a06e7e043f653acf5565e0656f5f6c64d66726fefa17178ac129caaa419a50905934e7c4a846417abb25d4a - languageName: node - linkType: hard - -"execa@npm:^1.0.0": - version: 1.0.0 - resolution: "execa@npm:1.0.0" - dependencies: - cross-spawn: "npm:^6.0.0" - get-stream: "npm:^4.0.0" - is-stream: "npm:^1.1.0" - npm-run-path: "npm:^2.0.0" - p-finally: "npm:^1.0.0" - signal-exit: "npm:^3.0.0" - strip-eof: "npm:^1.0.0" - checksum: 10c0/cc71707c9aa4a2552346893ee63198bf70a04b5a1bc4f8a0ef40f1d03c319eae80932c59191f037990d7d102193e83a38ec72115fff814ec2fb3099f3661a590 - languageName: node - linkType: hard - -"exponential-backoff@npm:^3.1.1": - version: 3.1.1 - resolution: "exponential-backoff@npm:3.1.1" - checksum: 10c0/160456d2d647e6019640bd07111634d8c353038d9fa40176afb7cd49b0548bdae83b56d05e907c2cce2300b81cae35d800ef92fefb9d0208e190fa3b7d6bb579 - languageName: node - linkType: hard - -"fast-deep-equal@npm:^3.1.1": - version: 3.1.3 - resolution: "fast-deep-equal@npm:3.1.3" - checksum: 10c0/40dedc862eb8992c54579c66d914635afbec43350afbbe991235fdcb4e3a8d5af1b23ae7e79bef7d4882d0ecee06c3197488026998fb19f72dc95acff1d1b1d0 - languageName: node - linkType: hard - -"fast-glob@npm:^3.2.7": - version: 3.2.11 - resolution: "fast-glob@npm:3.2.11" - dependencies: - "@nodelib/fs.stat": "npm:^2.0.2" - "@nodelib/fs.walk": "npm:^1.2.3" - glob-parent: "npm:^5.1.2" - merge2: "npm:^1.3.0" - micromatch: "npm:^4.0.4" - checksum: 10c0/f726d4d6545ae9ade242eba78ae418cd8beac6c9291cdc36fc6b3b4e54f04fa0ecde5767256f2a600d6e14dc49a841adb3aa4b5f3f0c06b35dd4f3954965443d - languageName: node - linkType: hard - -"fast-json-stable-stringify@npm:^2.0.0": - version: 2.1.0 - resolution: "fast-json-stable-stringify@npm:2.1.0" - checksum: 10c0/7f081eb0b8a64e0057b3bb03f974b3ef00135fbf36c1c710895cd9300f13c94ba809bb3a81cf4e1b03f6e5285610a61abbd7602d0652de423144dfee5a389c9b - languageName: node - linkType: hard - -"fast-url-parser@npm:1.1.3": - version: 1.1.3 - resolution: "fast-url-parser@npm:1.1.3" - dependencies: - punycode: "npm:^1.3.2" - checksum: 10c0/d85c5c409cf0215417380f98a2d29c23a95004d93ff0d8bdf1af5f1a9d1fc608ac89ac6ffe863783d2c73efb3850dd35390feb1de3296f49877bfee0392eb5d3 - languageName: node - linkType: hard - -"fastq@npm:^1.6.0": - version: 1.13.0 - resolution: "fastq@npm:1.13.0" - dependencies: - reusify: "npm:^1.0.4" - checksum: 10c0/76c7b5dafb93c7e74359a3e6de834ce7a7c2e3a3184050ed4cb652661de55cf8d4895178d8d3ccd23069395056c7bb15450660d38fb382ca88c142b22694d7c9 - languageName: node - linkType: hard - -"fill-range@npm:^7.0.1": - version: 7.0.1 - resolution: "fill-range@npm:7.0.1" - dependencies: - to-regex-range: "npm:^5.0.1" - checksum: 10c0/7cdad7d426ffbaadf45aeb5d15ec675bbd77f7597ad5399e3d2766987ed20bda24d5fac64b3ee79d93276f5865608bb22344a26b9b1ae6c4d00bd94bf611623f - languageName: node - linkType: hard - -"foreground-child@npm:^3.1.0": - version: 3.3.0 - resolution: "foreground-child@npm:3.3.0" - dependencies: - cross-spawn: "npm:^7.0.0" - signal-exit: "npm:^4.0.1" - checksum: 10c0/028f1d41000553fcfa6c4bb5c372963bf3d9bf0b1f25a87d1a6253014343fb69dfb1b42d9625d7cf44c8ba429940f3d0ff718b62105d4d4a4f6ef8ca0a53faa2 - languageName: node - linkType: hard - -"fraction.js@npm:^4.2.0": - version: 4.2.0 - resolution: "fraction.js@npm:4.2.0" - checksum: 10c0/b16c0a6a7f045b3416c1afbb174b7afca73bd7eb0c62598a0c734a8b1f888cb375684174daf170abfba314da9f366b7d6445e396359d5fae640883bdb2ed18cb - languageName: node - linkType: hard - -"fs-extra@npm:^10.0.0": - version: 10.1.0 - resolution: "fs-extra@npm:10.1.0" - dependencies: - graceful-fs: "npm:^4.2.0" - jsonfile: "npm:^6.0.1" - universalify: "npm:^2.0.0" - checksum: 10c0/5f579466e7109719d162a9249abbeffe7f426eb133ea486e020b89bc6d67a741134076bf439983f2eb79276ceaf6bd7b7c1e43c3fd67fe889863e69072fb0a5e - languageName: node - linkType: hard - -"fs-minipass@npm:^2.0.0": - version: 2.1.0 - resolution: "fs-minipass@npm:2.1.0" - dependencies: - minipass: "npm:^3.0.0" - checksum: 10c0/703d16522b8282d7299337539c3ed6edddd1afe82435e4f5b76e34a79cd74e488a8a0e26a636afc2440e1a23b03878e2122e3a2cfe375a5cf63c37d92b86a004 - languageName: node - linkType: hard - -"fs-minipass@npm:^3.0.0": - version: 3.0.3 - resolution: "fs-minipass@npm:3.0.3" - dependencies: - minipass: "npm:^7.0.3" - checksum: 10c0/63e80da2ff9b621e2cb1596abcb9207f1cf82b968b116ccd7b959e3323144cce7fb141462200971c38bbf2ecca51695069db45265705bed09a7cd93ae5b89f94 - languageName: node - linkType: hard - -"fs.realpath@npm:^1.0.0": - version: 1.0.0 - resolution: "fs.realpath@npm:1.0.0" - checksum: 10c0/444cf1291d997165dfd4c0d58b69f0e4782bfd9149fd72faa4fe299e68e0e93d6db941660b37dd29153bf7186672ececa3b50b7e7249477b03fdf850f287c948 - languageName: node - linkType: hard - -"fsevents@npm:~2.3.2": - version: 2.3.2 - resolution: "fsevents@npm:2.3.2" - dependencies: - node-gyp: "npm:latest" - checksum: 10c0/be78a3efa3e181cda3cf7a4637cb527bcebb0bd0ea0440105a3bb45b86f9245b307dc10a2507e8f4498a7d4ec349d1910f4d73e4d4495b16103106e07eee735b - conditions: os=darwin - languageName: node - linkType: hard - -"fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin": - version: 2.3.2 - resolution: "fsevents@patch:fsevents@npm%3A2.3.2#optional!builtin::version=2.3.2&hash=df0bf1" - dependencies: - node-gyp: "npm:latest" - conditions: os=darwin - languageName: node - linkType: hard - -"function-bind@npm:^1.1.1": - version: 1.1.1 - resolution: "function-bind@npm:1.1.1" - checksum: 10c0/60b74b2407e1942e1ed7f8c284f8ef714d0689dcfce5319985a5b7da3fc727f40b4a59ec72dc55aa83365ad7b8fa4fac3a30d93c850a2b452f29ae03dbc10a1e - languageName: node - linkType: hard - -"get-caller-file@npm:^2.0.5": - version: 2.0.5 - resolution: "get-caller-file@npm:2.0.5" - checksum: 10c0/c6c7b60271931fa752aeb92f2b47e355eac1af3a2673f47c9589e8f8a41adc74d45551c1bc57b5e66a80609f10ffb72b6f575e4370d61cc3f7f3aaff01757cde - languageName: node - linkType: hard - -"get-stdin@npm:^9.0.0": - version: 9.0.0 - resolution: "get-stdin@npm:9.0.0" - checksum: 10c0/7ef2edc0c81a0644ca9f051aad8a96ae9373d901485abafaabe59fd347a1c378689d8a3d8825fb3067415d1d09dfcaa43cb9b9516ecac6b74b3138b65a8ccc6b - languageName: node - linkType: hard - -"get-stream@npm:^3.0.0": - version: 3.0.0 - resolution: "get-stream@npm:3.0.0" - checksum: 10c0/003f5f3b8870da59c6aafdf6ed7e7b07b48c2f8629cd461bd3900726548b6b8cfa2e14d6b7814fbb08f07a42f4f738407fa70b989928b2783a76b278505bba22 - languageName: node - linkType: hard - -"get-stream@npm:^4.0.0": - version: 4.1.0 - resolution: "get-stream@npm:4.1.0" - dependencies: - pump: "npm:^3.0.0" - checksum: 10c0/294d876f667694a5ca23f0ca2156de67da950433b6fb53024833733975d32582896dbc7f257842d331809979efccf04d5e0b6b75ad4d45744c45f193fd497539 - languageName: node - linkType: hard - -"glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2": - version: 5.1.2 - resolution: "glob-parent@npm:5.1.2" - dependencies: - is-glob: "npm:^4.0.1" - checksum: 10c0/cab87638e2112bee3f839ef5f6e0765057163d39c66be8ec1602f3823da4692297ad4e972de876ea17c44d652978638d2fd583c6713d0eb6591706825020c9ee - languageName: node - linkType: hard - -"glob-parent@npm:^6.0.1": - version: 6.0.2 - resolution: "glob-parent@npm:6.0.2" - dependencies: - is-glob: "npm:^4.0.3" - checksum: 10c0/317034d88654730230b3f43bb7ad4f7c90257a426e872ea0bf157473ac61c99bf5d205fad8f0185f989be8d2fa6d3c7dce1645d99d545b6ea9089c39f838e7f8 - languageName: node - linkType: hard - -"glob@npm:^10.2.2, glob@npm:^10.3.10": - version: 10.4.5 - resolution: "glob@npm:10.4.5" - dependencies: - foreground-child: "npm:^3.1.0" - jackspeak: "npm:^3.1.2" - minimatch: "npm:^9.0.4" - minipass: "npm:^7.1.2" - package-json-from-dist: "npm:^1.0.0" - path-scurry: "npm:^1.11.1" - bin: - glob: dist/esm/bin.mjs - checksum: 10c0/19a9759ea77b8e3ca0a43c2f07ecddc2ad46216b786bb8f993c445aee80d345925a21e5280c7b7c6c59e860a0154b84e4b2b60321fea92cd3c56b4a7489f160e - languageName: node - linkType: hard - -"glob@npm:^7.1.3, glob@npm:^7.1.7": - version: 7.2.3 - resolution: "glob@npm:7.2.3" - dependencies: - fs.realpath: "npm:^1.0.0" - inflight: "npm:^1.0.4" - inherits: "npm:2" - minimatch: "npm:^3.1.1" - once: "npm:^1.3.0" - path-is-absolute: "npm:^1.0.0" - checksum: 10c0/65676153e2b0c9095100fe7f25a778bf45608eeb32c6048cf307f579649bcc30353277b3b898a3792602c65764e5baa4f643714dfbdfd64ea271d210c7a425fe - languageName: node - linkType: hard - -"globby@npm:^12.0.0": - version: 12.2.0 - resolution: "globby@npm:12.2.0" - dependencies: - array-union: "npm:^3.0.1" - dir-glob: "npm:^3.0.1" - fast-glob: "npm:^3.2.7" - ignore: "npm:^5.1.9" - merge2: "npm:^1.4.1" - slash: "npm:^4.0.0" - checksum: 10c0/121fee62bb9a43a35a32731cda9540241003ef578f9cee5ad87b27d3020b94857ff62f8d82cb99dbeedf6f26981c9fa62509d873392642ceb37674f3d6ec4e52 - languageName: node - linkType: hard - -"graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0": - version: 4.2.10 - resolution: "graceful-fs@npm:4.2.10" - checksum: 10c0/4223a833e38e1d0d2aea630c2433cfb94ddc07dfc11d511dbd6be1d16688c5be848acc31f9a5d0d0ddbfb56d2ee5a6ae0278aceeb0ca6a13f27e06b9956fb952 - languageName: node - linkType: hard - -"graceful-fs@npm:^4.2.6": - version: 4.2.11 - resolution: "graceful-fs@npm:4.2.11" - checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 - languageName: node - linkType: hard - -"has-flag@npm:^3.0.0": - version: 3.0.0 - resolution: "has-flag@npm:3.0.0" - checksum: 10c0/1c6c83b14b8b1b3c25b0727b8ba3e3b647f99e9e6e13eb7322107261de07a4c1be56fc0d45678fc376e09772a3a1642ccdaf8fc69bdf123b6c086598397ce473 - languageName: node - linkType: hard - -"has-flag@npm:^4.0.0": - version: 4.0.0 - resolution: "has-flag@npm:4.0.0" - checksum: 10c0/2e789c61b7888d66993e14e8331449e525ef42aac53c627cc53d1c3334e768bcb6abdc4f5f0de1478a25beec6f0bd62c7549058b7ac53e924040d4f301f02fd1 - languageName: node - linkType: hard - -"has@npm:^1.0.3": - version: 1.0.3 - resolution: "has@npm:1.0.3" - dependencies: - function-bind: "npm:^1.1.1" - checksum: 10c0/e1da0d2bd109f116b632f27782cf23182b42f14972ca9540e4c5aa7e52647407a0a4a76937334fddcb56befe94a3494825ec22b19b51f5e5507c3153fd1a5e1b - languageName: node - linkType: hard - -"hex-color-regex@npm:^1.1.0": - version: 1.1.0 - resolution: "hex-color-regex@npm:1.1.0" - checksum: 10c0/43f0b8bbeb3906b6b2ddfb5ce6cbc28fb4f1e7b5129d0485e006ea20f92dc65f97b3b12591dd6a993de2ca10cb64a16a6a380a37481fc09432e7be0037be8f9c - languageName: node - linkType: hard - -"hsl-regex@npm:^1.0.0": - version: 1.0.0 - resolution: "hsl-regex@npm:1.0.0" - checksum: 10c0/ddc29f4943c4a1768e611fadaebf6913d039640267f1fad2ac06f4dbdbe5cbe535d77dd19804898834671dd82751a4401c1b4d2ecade25d158ea23665d263e84 - languageName: node - linkType: hard - -"hsla-regex@npm:^1.0.0": - version: 1.0.0 - resolution: "hsla-regex@npm:1.0.0" - checksum: 10c0/307874844a055af7a8f225e3908e1f7a2d96aa28e86abcb7ce1837cd86acf32d1f3c71ae105416d4c8623c8f9220b1bc799598851b0826274faa047710985f76 - languageName: node - linkType: hard - -"html-tags@npm:^3.1.0": - version: 3.2.0 - resolution: "html-tags@npm:3.2.0" - checksum: 10c0/fc8ac525e193354bf51b64f0e32a729a2e222b6c0f34cedab0259a35ddc5b7e31ddb556b516ea1a5725339a1085098a5f47ff385a3fa50291523d426b54012da - languageName: node - linkType: hard - -"http-cache-semantics@npm:^4.1.1": - version: 4.1.1 - resolution: "http-cache-semantics@npm:4.1.1" - checksum: 10c0/ce1319b8a382eb3cbb4a37c19f6bfe14e5bb5be3d09079e885e8c513ab2d3cd9214902f8a31c9dc4e37022633ceabfc2d697405deeaf1b8f3552bb4ed996fdfc - languageName: node - linkType: hard - -"http-proxy-agent@npm:^7.0.0": - version: 7.0.2 - resolution: "http-proxy-agent@npm:7.0.2" - dependencies: - agent-base: "npm:^7.1.0" - debug: "npm:^4.3.4" - checksum: 10c0/4207b06a4580fb85dd6dff521f0abf6db517489e70863dca1a0291daa7f2d3d2d6015a57bd702af068ea5cf9f1f6ff72314f5f5b4228d299c0904135d2aef921 - languageName: node - linkType: hard - -"https-proxy-agent@npm:^7.0.1": - version: 7.0.5 - resolution: "https-proxy-agent@npm:7.0.5" - dependencies: - agent-base: "npm:^7.0.2" - debug: "npm:4" - checksum: 10c0/2490e3acec397abeb88807db52cac59102d5ed758feee6df6112ab3ccd8325e8a1ce8bce6f4b66e5470eca102d31e425ace904242e4fa28dbe0c59c4bafa7b2c - languageName: node - linkType: hard - -"iconv-lite@npm:^0.6.2": - version: 0.6.3 - resolution: "iconv-lite@npm:0.6.3" - dependencies: - safer-buffer: "npm:>= 2.1.2 < 3.0.0" - checksum: 10c0/98102bc66b33fcf5ac044099d1257ba0b7ad5e3ccd3221f34dd508ab4070edff183276221684e1e0555b145fce0850c9f7d2b60a9fcac50fbb4ea0d6e845a3b1 - languageName: node - linkType: hard - -"ignore@npm:^5.1.9": - version: 5.2.0 - resolution: "ignore@npm:5.2.0" - checksum: 10c0/7fb7b4c4c52c2555113ff968f8a83b8ac21b076282bfcb3f468c3fb429be69bd56222306c31de95dd452c647fc6ae24339b8047ebe3ef34c02591abfec58da01 - languageName: node - linkType: hard - -"import-fresh@npm:^3.2.1": - version: 3.3.0 - resolution: "import-fresh@npm:3.3.0" - dependencies: - parent-module: "npm:^1.0.0" - resolve-from: "npm:^4.0.0" - checksum: 10c0/7f882953aa6b740d1f0e384d0547158bc86efbf2eea0f1483b8900a6f65c5a5123c2cf09b0d542cc419d0b98a759ecaeb394237e97ea427f2da221dc3cd80cc3 - languageName: node - linkType: hard - -"imurmurhash@npm:^0.1.4": - version: 0.1.4 - resolution: "imurmurhash@npm:0.1.4" - checksum: 10c0/8b51313850dd33605c6c9d3fd9638b714f4c4c40250cff658209f30d40da60f78992fb2df5dabee4acf589a6a82bbc79ad5486550754bd9ec4e3fc0d4a57d6a6 - languageName: node - linkType: hard - -"indent-string@npm:^4.0.0": - version: 4.0.0 - resolution: "indent-string@npm:4.0.0" - checksum: 10c0/1e1904ddb0cb3d6cce7cd09e27a90184908b7a5d5c21b92e232c93579d314f0b83c246ffb035493d0504b1e9147ba2c9b21df0030f48673fba0496ecd698161f - languageName: node - linkType: hard - -"inflight@npm:^1.0.4": - version: 1.0.6 - resolution: "inflight@npm:1.0.6" - dependencies: - once: "npm:^1.3.0" - wrappy: "npm:1" - checksum: 10c0/7faca22584600a9dc5b9fca2cd5feb7135ac8c935449837b315676b4c90aa4f391ec4f42240178244b5a34e8bede1948627fda392ca3191522fc46b34e985ab2 - languageName: node - linkType: hard - -"inherits@npm:2": - version: 2.0.4 - resolution: "inherits@npm:2.0.4" - checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2 - languageName: node - linkType: hard - -"ini@npm:~1.3.0": - version: 1.3.8 - resolution: "ini@npm:1.3.8" - checksum: 10c0/ec93838d2328b619532e4f1ff05df7909760b6f66d9c9e2ded11e5c1897d6f2f9980c54dd638f88654b00919ce31e827040631eab0a3969e4d1abefa0719516a - languageName: node - linkType: hard - -"ip-address@npm:^9.0.5": - version: 9.0.5 - resolution: "ip-address@npm:9.0.5" - dependencies: - jsbn: "npm:1.1.0" - sprintf-js: "npm:^1.1.3" - checksum: 10c0/331cd07fafcb3b24100613e4b53e1a2b4feab11e671e655d46dc09ee233da5011284d09ca40c4ecbdfe1d0004f462958675c224a804259f2f78d2465a87824bc - languageName: node - linkType: hard - -"is-arrayish@npm:^0.2.1": - version: 0.2.1 - resolution: "is-arrayish@npm:0.2.1" - checksum: 10c0/e7fb686a739068bb70f860b39b67afc62acc62e36bb61c5f965768abce1873b379c563e61dd2adad96ebb7edf6651111b385e490cf508378959b0ed4cac4e729 - languageName: node - linkType: hard - -"is-arrayish@npm:^0.3.1": - version: 0.3.2 - resolution: "is-arrayish@npm:0.3.2" - checksum: 10c0/f59b43dc1d129edb6f0e282595e56477f98c40278a2acdc8b0a5c57097c9eff8fe55470493df5775478cf32a4dc8eaf6d3a749f07ceee5bc263a78b2434f6a54 - languageName: node - linkType: hard - -"is-binary-path@npm:~2.1.0": - version: 2.1.0 - resolution: "is-binary-path@npm:2.1.0" - dependencies: - binary-extensions: "npm:^2.0.0" - checksum: 10c0/a16eaee59ae2b315ba36fad5c5dcaf8e49c3e27318f8ab8fa3cdb8772bf559c8d1ba750a589c2ccb096113bb64497084361a25960899cb6172a6925ab6123d38 - languageName: node - linkType: hard - -"is-color-stop@npm:^1.1.0": - version: 1.1.0 - resolution: "is-color-stop@npm:1.1.0" - dependencies: - css-color-names: "npm:^0.0.4" - hex-color-regex: "npm:^1.1.0" - hsl-regex: "npm:^1.0.0" - hsla-regex: "npm:^1.0.0" - rgb-regex: "npm:^1.0.1" - rgba-regex: "npm:^1.0.0" - checksum: 10c0/12d9a9d6b3da07bd69f678d6dbe897fccbd573ead12057f60c4773129e34ea2b658f29c1fb8ef84c548e8ac62061c04c16e23ffcb00d01900fa1f72b7ab3b569 - languageName: node - linkType: hard - -"is-core-module@npm:^2.8.1": - version: 2.9.0 - resolution: "is-core-module@npm:2.9.0" - dependencies: - has: "npm:^1.0.3" - checksum: 10c0/056fe4c5f9f383dc1c1b0dc3250c300880b9b1e17e1885077d64a1667926ecc11ba696776597616bfd2fd7f87c7476c01b127a0c842b4821bee2414d0e296e6e - languageName: node - linkType: hard - -"is-docker@npm:^2.0.0": - version: 2.2.1 - resolution: "is-docker@npm:2.2.1" - bin: - is-docker: cli.js - checksum: 10c0/e828365958d155f90c409cdbe958f64051d99e8aedc2c8c4cd7c89dcf35329daed42f7b99346f7828df013e27deb8f721cf9408ba878c76eb9e8290235fbcdcc - languageName: node - linkType: hard - -"is-extglob@npm:^2.1.1": - version: 2.1.1 - resolution: "is-extglob@npm:2.1.1" - checksum: 10c0/5487da35691fbc339700bbb2730430b07777a3c21b9ebaecb3072512dfd7b4ba78ac2381a87e8d78d20ea08affb3f1971b4af629173a6bf435ff8a4c47747912 - languageName: node - linkType: hard - -"is-fullwidth-code-point@npm:^2.0.0": - version: 2.0.0 - resolution: "is-fullwidth-code-point@npm:2.0.0" - checksum: 10c0/e58f3e4a601fc0500d8b2677e26e9fe0cd450980e66adb29d85b6addf7969731e38f8e43ed2ec868a09c101a55ac3d8b78902209269f38c5286bc98f5bc1b4d9 - languageName: node - linkType: hard - -"is-fullwidth-code-point@npm:^3.0.0": - version: 3.0.0 - resolution: "is-fullwidth-code-point@npm:3.0.0" - checksum: 10c0/bb11d825e049f38e04c06373a8d72782eee0205bda9d908cc550ccb3c59b99d750ff9537982e01733c1c94a58e35400661f57042158ff5e8f3e90cf936daf0fc - languageName: node - linkType: hard - -"is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": - version: 4.0.3 - resolution: "is-glob@npm:4.0.3" - dependencies: - is-extglob: "npm:^2.1.1" - checksum: 10c0/17fb4014e22be3bbecea9b2e3a76e9e34ff645466be702f1693e8f1ee1adac84710d0be0bd9f967d6354036fd51ab7c2741d954d6e91dae6bb69714de92c197a - languageName: node - linkType: hard - -"is-lambda@npm:^1.0.1": - version: 1.0.1 - resolution: "is-lambda@npm:1.0.1" - checksum: 10c0/85fee098ae62ba6f1e24cf22678805473c7afd0fb3978a3aa260e354cb7bcb3a5806cf0a98403188465efedec41ab4348e8e4e79305d409601323855b3839d4d - languageName: node - linkType: hard - -"is-number@npm:^7.0.0": - version: 7.0.0 - resolution: "is-number@npm:7.0.0" - checksum: 10c0/b4686d0d3053146095ccd45346461bc8e53b80aeb7671cc52a4de02dbbf7dc0d1d2a986e2fe4ae206984b4d34ef37e8b795ebc4f4295c978373e6575e295d811 - languageName: node - linkType: hard - -"is-stream@npm:^1.1.0": - version: 1.1.0 - resolution: "is-stream@npm:1.1.0" - checksum: 10c0/b8ae7971e78d2e8488d15f804229c6eed7ed36a28f8807a1815938771f4adff0e705218b7dab968270433f67103e4fef98062a0beea55d64835f705ee72c7002 - languageName: node - linkType: hard - -"is-wsl@npm:^2.1.1": - version: 2.2.0 - resolution: "is-wsl@npm:2.2.0" - dependencies: - is-docker: "npm:^2.0.0" - checksum: 10c0/a6fa2d370d21be487c0165c7a440d567274fbba1a817f2f0bfa41cc5e3af25041d84267baa22df66696956038a43973e72fca117918c91431920bdef490fa25e - languageName: node - linkType: hard - -"isexe@npm:^2.0.0": - version: 2.0.0 - resolution: "isexe@npm:2.0.0" - checksum: 10c0/228cfa503fadc2c31596ab06ed6aa82c9976eec2bfd83397e7eaf06d0ccf42cd1dfd6743bf9aeb01aebd4156d009994c5f76ea898d2832c1fe342da923ca457d - languageName: node - linkType: hard - -"isexe@npm:^3.1.1": - version: 3.1.1 - resolution: "isexe@npm:3.1.1" - checksum: 10c0/9ec257654093443eb0a528a9c8cbba9c0ca7616ccb40abd6dde7202734d96bb86e4ac0d764f0f8cd965856aacbff2f4ce23e730dc19dfb41e3b0d865ca6fdcc7 - languageName: node - linkType: hard - -"jackspeak@npm:^3.1.2": - version: 3.4.3 - resolution: "jackspeak@npm:3.4.3" - dependencies: - "@isaacs/cliui": "npm:^8.0.2" - "@pkgjs/parseargs": "npm:^0.11.0" - dependenciesMeta: - "@pkgjs/parseargs": - optional: true - checksum: 10c0/6acc10d139eaefdbe04d2f679e6191b3abf073f111edf10b1de5302c97ec93fffeb2fdd8681ed17f16268aa9dd4f8c588ed9d1d3bffbbfa6e8bf897cbb3149b9 - languageName: node - linkType: hard - -"js-tokens@npm:^4.0.0": - version: 4.0.0 - resolution: "js-tokens@npm:4.0.0" - checksum: 10c0/e248708d377aa058eacf2037b07ded847790e6de892bbad3dac0abba2e759cb9f121b00099a65195616badcb6eca8d14d975cb3e89eb1cfda644756402c8aeed - languageName: node - linkType: hard - -"jsbn@npm:1.1.0": - version: 1.1.0 - resolution: "jsbn@npm:1.1.0" - checksum: 10c0/4f907fb78d7b712e11dea8c165fe0921f81a657d3443dde75359ed52eb2b5d33ce6773d97985a089f09a65edd80b11cb75c767b57ba47391fee4c969f7215c96 - languageName: node - linkType: hard - -"json-parse-even-better-errors@npm:^2.3.0": - version: 2.3.1 - resolution: "json-parse-even-better-errors@npm:2.3.1" - checksum: 10c0/140932564c8f0b88455432e0f33c4cb4086b8868e37524e07e723f4eaedb9425bdc2bafd71bd1d9765bd15fd1e2d126972bc83990f55c467168c228c24d665f3 - languageName: node - linkType: hard - -"json-schema-traverse@npm:^0.4.1": - version: 0.4.1 - resolution: "json-schema-traverse@npm:0.4.1" - checksum: 10c0/108fa90d4cc6f08243aedc6da16c408daf81793bf903e9fd5ab21983cda433d5d2da49e40711da016289465ec2e62e0324dcdfbc06275a607fe3233fde4942ce - languageName: node - linkType: hard - -"jsonfile@npm:^6.0.1": - version: 6.1.0 - resolution: "jsonfile@npm:6.1.0" - dependencies: - graceful-fs: "npm:^4.1.6" - universalify: "npm:^2.0.0" - dependenciesMeta: - graceful-fs: - optional: true - checksum: 10c0/4f95b5e8a5622b1e9e8f33c96b7ef3158122f595998114d1e7f03985649ea99cb3cd99ce1ed1831ae94c8c8543ab45ebd044207612f31a56fd08462140e46865 - languageName: node - linkType: hard - -"klona@npm:^2.0.5": - version: 2.0.5 - resolution: "klona@npm:2.0.5" - checksum: 10c0/5b752c11ca8e2996612386699f52cc5aed802aa4116663d26239ac0b054fae25191dacb95587ecf1a167b039daa9fc3fa2da17dfd5d0821f3037de3821d9a9e5 - languageName: node - linkType: hard - -"lilconfig@npm:^2.0.5": - version: 2.0.5 - resolution: "lilconfig@npm:2.0.5" - checksum: 10c0/eed9afcecf1b864405f4b7299abefb87945edba250c70896de54b19b08b87333abc268cc6689539bc33f0e8d098139578704bf51af8077d358f1ac95d58beef0 - languageName: node - linkType: hard - -"lines-and-columns@npm:^1.1.6": - version: 1.2.4 - resolution: "lines-and-columns@npm:1.2.4" - checksum: 10c0/3da6ee62d4cd9f03f5dc90b4df2540fb85b352081bee77fe4bbcd12c9000ead7f35e0a38b8d09a9bb99b13223446dd8689ff3c4959807620726d788701a83d2d - languageName: node - linkType: hard - -"lodash.topath@npm:^4.5.2": - version: 4.5.2 - resolution: "lodash.topath@npm:4.5.2" - checksum: 10c0/f555a1459c11c807517be6c3a3e8030a9e92a291b2d6b598511e0bddbe99297e870b20e097019b613a3035d061bac63cb42621386c0b9dc22fd3d85e58459653 - languageName: node - linkType: hard - -"lodash@npm:^4.17.21": - version: 4.17.21 - resolution: "lodash@npm:4.17.21" - checksum: 10c0/d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c - languageName: node - linkType: hard - -"lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0": - version: 10.4.3 - resolution: "lru-cache@npm:10.4.3" - checksum: 10c0/ebd04fbca961e6c1d6c0af3799adcc966a1babe798f685bb84e6599266599cd95d94630b10262f5424539bc4640107e8a33aa28585374abf561d30d16f4b39fb - languageName: node - linkType: hard - -"lru-cache@npm:^4.0.1": - version: 4.1.5 - resolution: "lru-cache@npm:4.1.5" - dependencies: - pseudomap: "npm:^1.0.2" - yallist: "npm:^2.1.2" - checksum: 10c0/1ca5306814e5add9ec63556d6fd9b24a4ecdeaef8e9cea52cbf30301e6b88c8d8ddc7cab45b59b56eb763e6c45af911585dc89925a074ab65e1502e3fe8103cf - languageName: node - linkType: hard - -"lru-cache@npm:^6.0.0": - version: 6.0.0 - resolution: "lru-cache@npm:6.0.0" - dependencies: - yallist: "npm:^4.0.0" - checksum: 10c0/cb53e582785c48187d7a188d3379c181b5ca2a9c78d2bce3e7dee36f32761d1c42983da3fe12b55cb74e1779fa94cdc2e5367c028a9b35317184ede0c07a30a9 - languageName: node - linkType: hard - -"make-fetch-happen@npm:^13.0.0": - version: 13.0.1 - resolution: "make-fetch-happen@npm:13.0.1" - dependencies: - "@npmcli/agent": "npm:^2.0.0" - cacache: "npm:^18.0.0" - http-cache-semantics: "npm:^4.1.1" - is-lambda: "npm:^1.0.1" - minipass: "npm:^7.0.2" - minipass-fetch: "npm:^3.0.0" - minipass-flush: "npm:^1.0.5" - minipass-pipeline: "npm:^1.2.4" - negotiator: "npm:^0.6.3" - proc-log: "npm:^4.2.0" - promise-retry: "npm:^2.0.1" - ssri: "npm:^10.0.0" - checksum: 10c0/df5f4dbb6d98153b751bccf4dc4cc500de85a96a9331db9805596c46aa9f99d9555983954e6c1266d9f981ae37a9e4647f42b9a4bb5466f867f4012e582c9e7e - languageName: node - linkType: hard - -"merge2@npm:^1.3.0, merge2@npm:^1.4.1": - version: 1.4.1 - resolution: "merge2@npm:1.4.1" - checksum: 10c0/254a8a4605b58f450308fc474c82ac9a094848081bf4c06778200207820e5193726dc563a0d2c16468810516a5c97d9d3ea0ca6585d23c58ccfff2403e8dbbeb - languageName: node - linkType: hard - -"merge@npm:^1.2.0": - version: 1.2.1 - resolution: "merge@npm:1.2.1" - checksum: 10c0/09f0ed1e85f336feb32d93d1243cb8930be22c7e6e4aa0c59a08a6f680d274dbe021c7d2a35ee8383cab2524efbb3f51985c3052e3dcf134951656511edf4693 - languageName: node - linkType: hard - -"micromatch@npm:^4.0.4": - version: 4.0.5 - resolution: "micromatch@npm:4.0.5" - dependencies: - braces: "npm:^3.0.2" - picomatch: "npm:^2.3.1" - checksum: 10c0/3d6505b20f9fa804af5d8c596cb1c5e475b9b0cd05f652c5b56141cf941bd72adaeb7a436fda344235cef93a7f29b7472efc779fcdb83b478eab0867b95cdeff - languageName: node - linkType: hard - -"mime-db@npm:1.52.0, mime-db@npm:>= 1.43.0 < 2": - version: 1.52.0 - resolution: "mime-db@npm:1.52.0" - checksum: 10c0/0557a01deebf45ac5f5777fe7740b2a5c309c6d62d40ceab4e23da9f821899ce7a900b7ac8157d4548ddbb7beffe9abc621250e6d182b0397ec7f10c7b91a5aa - languageName: node - linkType: hard - -"mime-db@npm:~1.33.0": - version: 1.33.0 - resolution: "mime-db@npm:1.33.0" - checksum: 10c0/79172ce5468c8503b49dddfdddc18d3f5fe2599f9b5fe1bc321a8cbee14c96730fc6db22f907b23701b05b2936f865795f62ec3a78a7f3c8cb2450bb68c6763e - languageName: node - linkType: hard - -"mime-types@npm:2.1.18": - version: 2.1.18 - resolution: "mime-types@npm:2.1.18" - dependencies: - mime-db: "npm:~1.33.0" - checksum: 10c0/a96a8d12f4bb98bc7bfac6a8ccbd045f40368fc1030d9366050c3613825d3715d1c1f393e10a75a885d2cdc1a26cd6d5e11f3a2a0d5c4d361f00242139430a0f - languageName: node - linkType: hard - -"mime-types@npm:~2.1.34": - version: 2.1.35 - resolution: "mime-types@npm:2.1.35" - dependencies: - mime-db: "npm:1.52.0" - checksum: 10c0/82fb07ec56d8ff1fc999a84f2f217aa46cb6ed1033fefaabd5785b9a974ed225c90dc72fff460259e66b95b73648596dbcc50d51ed69cdf464af2d237d3149b2 - languageName: node - linkType: hard - -"minimatch@npm:3.0.4": - version: 3.0.4 - resolution: "minimatch@npm:3.0.4" - dependencies: - brace-expansion: "npm:^1.1.7" - checksum: 10c0/d0a2bcd93ebec08a9eef3ca83ba33c9fb6feb93932e0b4dc6aa46c5f37a9404bea7ad9ff7cafe23ce6634f1fe3b206f5315ecbb05812da6e692c21d8ecfd3dae - languageName: node - linkType: hard - -"minimatch@npm:^3.1.1": - version: 3.1.2 - resolution: "minimatch@npm:3.1.2" - dependencies: - brace-expansion: "npm:^1.1.7" - checksum: 10c0/0262810a8fc2e72cca45d6fd86bd349eee435eb95ac6aa45c9ea2180e7ee875ef44c32b55b5973ceabe95ea12682f6e3725cbb63d7a2d1da3ae1163c8b210311 - languageName: node - linkType: hard - -"minimatch@npm:^9.0.4": - version: 9.0.5 - resolution: "minimatch@npm:9.0.5" - dependencies: - brace-expansion: "npm:^2.0.1" - checksum: 10c0/de96cf5e35bdf0eab3e2c853522f98ffbe9a36c37797778d2665231ec1f20a9447a7e567cb640901f89e4daaa95ae5d70c65a9e8aa2bb0019b6facbc3c0575ed - languageName: node - linkType: hard - -"minimist@npm:^1.2.0, minimist@npm:^1.2.6": - version: 1.2.6 - resolution: "minimist@npm:1.2.6" - checksum: 10c0/d0b566204044481c4401abbd24cc75814e753b37268e7fe7ccc78612bf3e37bf1e45a6c43fb0b119445ea1c413c000bde013f320b7211974f2f49bcbec1d0dbf - languageName: node - linkType: hard - -"minipass-collect@npm:^2.0.1": - version: 2.0.1 - resolution: "minipass-collect@npm:2.0.1" - dependencies: - minipass: "npm:^7.0.3" - checksum: 10c0/5167e73f62bb74cc5019594709c77e6a742051a647fe9499abf03c71dca75515b7959d67a764bdc4f8b361cf897fbf25e2d9869ee039203ed45240f48b9aa06e - languageName: node - linkType: hard - -"minipass-fetch@npm:^3.0.0": - version: 3.0.5 - resolution: "minipass-fetch@npm:3.0.5" - dependencies: - encoding: "npm:^0.1.13" - minipass: "npm:^7.0.3" - minipass-sized: "npm:^1.0.3" - minizlib: "npm:^2.1.2" - dependenciesMeta: - encoding: - optional: true - checksum: 10c0/9d702d57f556274286fdd97e406fc38a2f5c8d15e158b498d7393b1105974b21249289ec571fa2b51e038a4872bfc82710111cf75fae98c662f3d6f95e72152b - languageName: node - linkType: hard - -"minipass-flush@npm:^1.0.5": - version: 1.0.5 - resolution: "minipass-flush@npm:1.0.5" - dependencies: - minipass: "npm:^3.0.0" - checksum: 10c0/2a51b63feb799d2bb34669205eee7c0eaf9dce01883261a5b77410c9408aa447e478efd191b4de6fc1101e796ff5892f8443ef20d9544385819093dbb32d36bd - languageName: node - linkType: hard - -"minipass-pipeline@npm:^1.2.4": - version: 1.2.4 - resolution: "minipass-pipeline@npm:1.2.4" - dependencies: - minipass: "npm:^3.0.0" - checksum: 10c0/cbda57cea20b140b797505dc2cac71581a70b3247b84480c1fed5ca5ba46c25ecc25f68bfc9e6dcb1a6e9017dab5c7ada5eab73ad4f0a49d84e35093e0c643f2 - languageName: node - linkType: hard - -"minipass-sized@npm:^1.0.3": - version: 1.0.3 - resolution: "minipass-sized@npm:1.0.3" - dependencies: - minipass: "npm:^3.0.0" - checksum: 10c0/298f124753efdc745cfe0f2bdfdd81ba25b9f4e753ca4a2066eb17c821f25d48acea607dfc997633ee5bf7b6dfffb4eee4f2051eb168663f0b99fad2fa4829cb - languageName: node - linkType: hard - -"minipass@npm:^3.0.0": - version: 3.3.6 - resolution: "minipass@npm:3.3.6" - dependencies: - yallist: "npm:^4.0.0" - checksum: 10c0/a114746943afa1dbbca8249e706d1d38b85ed1298b530f5808ce51f8e9e941962e2a5ad2e00eae7dd21d8a4aae6586a66d4216d1a259385e9d0358f0c1eba16c - languageName: node - linkType: hard - -"minipass@npm:^5.0.0": - version: 5.0.0 - resolution: "minipass@npm:5.0.0" - checksum: 10c0/a91d8043f691796a8ac88df039da19933ef0f633e3d7f0d35dcd5373af49131cf2399bfc355f41515dc495e3990369c3858cd319e5c2722b4753c90bf3152462 - languageName: node - linkType: hard - -"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.1.2": - version: 7.1.2 - resolution: "minipass@npm:7.1.2" - checksum: 10c0/b0fd20bb9fb56e5fa9a8bfac539e8915ae07430a619e4b86ff71f5fc757ef3924b23b2c4230393af1eda647ed3d75739e4e0acb250a6b1eb277cf7f8fe449557 - languageName: node - linkType: hard - -"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": - version: 2.1.2 - resolution: "minizlib@npm:2.1.2" - dependencies: - minipass: "npm:^3.0.0" - yallist: "npm:^4.0.0" - checksum: 10c0/64fae024e1a7d0346a1102bb670085b17b7f95bf6cfdf5b128772ec8faf9ea211464ea4add406a3a6384a7d87a0cd1a96263692134323477b4fb43659a6cab78 - languageName: node - linkType: hard - -"mkdirp@npm:^1.0.3": - version: 1.0.4 - resolution: "mkdirp@npm:1.0.4" - bin: - mkdirp: bin/cmd.js - checksum: 10c0/46ea0f3ffa8bc6a5bc0c7081ffc3907777f0ed6516888d40a518c5111f8366d97d2678911ad1a6882bf592fa9de6c784fea32e1687bb94e1f4944170af48a5cf - languageName: node - linkType: hard - -"modern-normalize@npm:^1.1.0": - version: 1.1.0 - resolution: "modern-normalize@npm:1.1.0" - checksum: 10c0/7886fa57dc0fcb1021343c4dbec2f65e06e9ff25f727d51fa3a469b0b684b796e5b98554c643b8859bda8d09ea86f89e5cc70a067da91d23ad9bf7cfd545e36b - languageName: node - linkType: hard - -"ms@npm:2.0.0": - version: 2.0.0 - resolution: "ms@npm:2.0.0" - checksum: 10c0/f8fda810b39fd7255bbdc451c46286e549794fcc700dc9cd1d25658bbc4dc2563a5de6fe7c60f798a16a60c6ceb53f033cb353f493f0cf63e5199b702943159d - languageName: node - linkType: hard - -"ms@npm:^2.1.3": - version: 2.1.3 - resolution: "ms@npm:2.1.3" - checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48 - languageName: node - linkType: hard - -"nanoid@npm:^3.3.4": - version: 3.3.4 - resolution: "nanoid@npm:3.3.4" - bin: - nanoid: bin/nanoid.cjs - checksum: 10c0/a0747d5c6021828fe8d38334e5afb05d3268d7d4b06024058ec894ccc47070e4e81d268a6b75488d2ff3485fa79a75c251d4b7c6f31051bb54bb662b6fd2a27d - languageName: node - linkType: hard - -"negotiator@npm:0.6.3": - version: 0.6.3 - resolution: "negotiator@npm:0.6.3" - checksum: 10c0/3ec9fd413e7bf071c937ae60d572bc67155262068ed522cf4b3be5edbe6ddf67d095ec03a3a14ebf8fc8e95f8e1d61be4869db0dbb0de696f6b837358bd43fc2 - languageName: node - linkType: hard - -"negotiator@npm:^0.6.3": - version: 0.6.4 - resolution: "negotiator@npm:0.6.4" - checksum: 10c0/3e677139c7fb7628a6f36335bf11a885a62c21d5390204590a1a214a5631fcbe5ea74ef6a610b60afe84b4d975cbe0566a23f20ee17c77c73e74b80032108dea - languageName: node - linkType: hard - -"nice-try@npm:^1.0.4": - version: 1.0.5 - resolution: "nice-try@npm:1.0.5" - checksum: 10c0/95568c1b73e1d0d4069a3e3061a2102d854513d37bcfda73300015b7ba4868d3b27c198d1dbbd8ebdef4112fc2ed9e895d4a0f2e1cce0bd334f2a1346dc9205f - languageName: node - linkType: hard - -"node-emoji@npm:^1.11.0": - version: 1.11.0 - resolution: "node-emoji@npm:1.11.0" - dependencies: - lodash: "npm:^4.17.21" - checksum: 10c0/5dac6502dbef087092d041fcc2686d8be61168593b3a9baf964d62652f55a3a9c2277f171b81cccb851ccef33f2d070f45e633fab1fda3264f8e1ae9041c673f - languageName: node - linkType: hard - -"node-gyp@npm:latest": - version: 10.2.0 - resolution: "node-gyp@npm:10.2.0" - dependencies: - env-paths: "npm:^2.2.0" - exponential-backoff: "npm:^3.1.1" - glob: "npm:^10.3.10" - graceful-fs: "npm:^4.2.6" - make-fetch-happen: "npm:^13.0.0" - nopt: "npm:^7.0.0" - proc-log: "npm:^4.1.0" - semver: "npm:^7.3.5" - tar: "npm:^6.2.1" - which: "npm:^4.0.0" - bin: - node-gyp: bin/node-gyp.js - checksum: 10c0/00630d67dbd09a45aee0a5d55c05e3916ca9e6d427ee4f7bc392d2d3dc5fad7449b21fc098dd38260a53d9dcc9c879b36704a1994235d4707e7271af7e9a835b - languageName: node - linkType: hard - -"node-releases@npm:^2.0.5": - version: 2.0.5 - resolution: "node-releases@npm:2.0.5" - checksum: 10c0/3e098e80d9699b18f67089d2617532e7b26d1f385c7b3397e3789018f8fefc7da6478cd057b80df39ed4e307380332c1225f48bf14d16c54c3376afb673ff2f5 - languageName: node - linkType: hard - -"nopt@npm:^7.0.0": - version: 7.2.1 - resolution: "nopt@npm:7.2.1" - dependencies: - abbrev: "npm:^2.0.0" - bin: - nopt: bin/nopt.js - checksum: 10c0/a069c7c736767121242037a22a788863accfa932ab285a1eb569eb8cd534b09d17206f68c37f096ae785647435e0c5a5a0a67b42ec743e481a455e5ae6a6df81 - languageName: node - linkType: hard - -"normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0": - version: 3.0.0 - resolution: "normalize-path@npm:3.0.0" - checksum: 10c0/e008c8142bcc335b5e38cf0d63cfd39d6cf2d97480af9abdbe9a439221fd4d749763bab492a8ee708ce7a194bb00c9da6d0a115018672310850489137b3da046 - languageName: node - linkType: hard - -"normalize-range@npm:^0.1.2": - version: 0.1.2 - resolution: "normalize-range@npm:0.1.2" - checksum: 10c0/bf39b73a63e0a42ad1a48c2bd1bda5a07ede64a7e2567307a407674e595bcff0fa0d57e8e5f1e7fa5e91000797c7615e13613227aaaa4d6d6e87f5bd5cc95de6 - languageName: node - linkType: hard - -"npm-run-path@npm:^2.0.0": - version: 2.0.2 - resolution: "npm-run-path@npm:2.0.2" - dependencies: - path-key: "npm:^2.0.0" - checksum: 10c0/95549a477886f48346568c97b08c4fda9cdbf7ce8a4fbc2213f36896d0d19249e32d68d7451bdcbca8041b5fba04a6b2c4a618beaf19849505c05b700740f1de - languageName: node - linkType: hard - -"object-hash@npm:^2.2.0": - version: 2.2.0 - resolution: "object-hash@npm:2.2.0" - checksum: 10c0/1527de843926c5442ed61f8bdddfc7dc181b6497f725b0e89fcf50a55d9c803088763ed447cac85a5aa65345f1e99c2469ba679a54349ef3c4c0aeaa396a3eb9 - languageName: node - linkType: hard - -"on-headers@npm:~1.0.1": - version: 1.0.2 - resolution: "on-headers@npm:1.0.2" - checksum: 10c0/f649e65c197bf31505a4c0444875db0258e198292f34b884d73c2f751e91792ef96bb5cf89aa0f4fecc2e4dc662461dda606b1274b0e564f539cae5d2f5fc32f - languageName: node - linkType: hard - -"once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0": - version: 1.4.0 - resolution: "once@npm:1.4.0" - dependencies: - wrappy: "npm:1" - checksum: 10c0/5d48aca287dfefabd756621c5dfce5c91a549a93e9fdb7b8246bc4c4790aa2ec17b34a260530474635147aeb631a2dcc8b32c613df0675f96041cbb8244517d0 - languageName: node - linkType: hard - -"p-finally@npm:^1.0.0": - version: 1.0.0 - resolution: "p-finally@npm:1.0.0" - checksum: 10c0/6b8552339a71fe7bd424d01d8451eea92d379a711fc62f6b2fe64cad8a472c7259a236c9a22b4733abca0b5666ad503cb497792a0478c5af31ded793d00937e7 - languageName: node - linkType: hard - -"p-map@npm:^4.0.0": - version: 4.0.0 - resolution: "p-map@npm:4.0.0" - dependencies: - aggregate-error: "npm:^3.0.0" - checksum: 10c0/592c05bd6262c466ce269ff172bb8de7c6975afca9b50c975135b974e9bdaafbfe80e61aaaf5be6d1200ba08b30ead04b88cfa7e25ff1e3b93ab28c9f62a2c75 - languageName: node - linkType: hard - -"package-json-from-dist@npm:^1.0.0": - version: 1.0.1 - resolution: "package-json-from-dist@npm:1.0.1" - checksum: 10c0/62ba2785eb655fec084a257af34dbe24292ab74516d6aecef97ef72d4897310bc6898f6c85b5cd22770eaa1ce60d55a0230e150fb6a966e3ecd6c511e23d164b - languageName: node - linkType: hard - -"parent-module@npm:^1.0.0": - version: 1.0.1 - resolution: "parent-module@npm:1.0.1" - dependencies: - callsites: "npm:^3.0.0" - checksum: 10c0/c63d6e80000d4babd11978e0d3fee386ca7752a02b035fd2435960ffaa7219dc42146f07069fb65e6e8bf1caef89daf9af7535a39bddf354d78bf50d8294f556 - languageName: node - linkType: hard - -"parse-json@npm:^5.0.0": - version: 5.2.0 - resolution: "parse-json@npm:5.2.0" - dependencies: - "@babel/code-frame": "npm:^7.0.0" - error-ex: "npm:^1.3.1" - json-parse-even-better-errors: "npm:^2.3.0" - lines-and-columns: "npm:^1.1.6" - checksum: 10c0/77947f2253005be7a12d858aedbafa09c9ae39eb4863adf330f7b416ca4f4a08132e453e08de2db46459256fb66afaac5ee758b44fe6541b7cdaf9d252e59585 - languageName: node - linkType: hard - -"path-is-absolute@npm:^1.0.0": - version: 1.0.1 - resolution: "path-is-absolute@npm:1.0.1" - checksum: 10c0/127da03c82172a2a50099cddbf02510c1791fc2cc5f7713ddb613a56838db1e8168b121a920079d052e0936c23005562059756d653b7c544c53185efe53be078 - languageName: node - linkType: hard - -"path-is-inside@npm:1.0.2": - version: 1.0.2 - resolution: "path-is-inside@npm:1.0.2" - checksum: 10c0/7fdd4b41672c70461cce734fc222b33e7b447fa489c7c4377c95e7e6852d83d69741f307d88ec0cc3b385b41cb4accc6efac3c7c511cd18512e95424f5fa980c - languageName: node - linkType: hard - -"path-key@npm:^2.0.0, path-key@npm:^2.0.1": - version: 2.0.1 - resolution: "path-key@npm:2.0.1" - checksum: 10c0/dd2044f029a8e58ac31d2bf34c34b93c3095c1481942960e84dd2faa95bbb71b9b762a106aead0646695330936414b31ca0bd862bf488a937ad17c8c5d73b32b - languageName: node - linkType: hard - -"path-key@npm:^3.1.0": - version: 3.1.1 - resolution: "path-key@npm:3.1.1" - checksum: 10c0/748c43efd5a569c039d7a00a03b58eecd1d75f3999f5a28303d75f521288df4823bc057d8784eb72358b2895a05f29a070bc9f1f17d28226cc4e62494cc58c4c - languageName: node - linkType: hard - -"path-parse@npm:^1.0.7": - version: 1.0.7 - resolution: "path-parse@npm:1.0.7" - checksum: 10c0/11ce261f9d294cc7a58d6a574b7f1b935842355ec66fba3c3fd79e0f036462eaf07d0aa95bb74ff432f9afef97ce1926c720988c6a7451d8a584930ae7de86e1 - languageName: node - linkType: hard - -"path-scurry@npm:^1.11.1": - version: 1.11.1 - resolution: "path-scurry@npm:1.11.1" - dependencies: - lru-cache: "npm:^10.2.0" - minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0" - checksum: 10c0/32a13711a2a505616ae1cc1b5076801e453e7aae6ac40ab55b388bb91b9d0547a52f5aaceff710ea400205f18691120d4431e520afbe4266b836fadede15872d - languageName: node - linkType: hard - -"path-to-regexp@npm:2.2.1": - version: 2.2.1 - resolution: "path-to-regexp@npm:2.2.1" - checksum: 10c0/f4b51090a73dad5ce0720f13ce8528ac77914bc927d72cc4ba05ab32770ad3a8d2e431962734b688b9ed863d4098d858da6ff4746037e4e24259cbd3b2c32b79 - languageName: node - linkType: hard - -"path-type@npm:^4.0.0": - version: 4.0.0 - resolution: "path-type@npm:4.0.0" - checksum: 10c0/666f6973f332f27581371efaf303fd6c272cc43c2057b37aa99e3643158c7e4b2626549555d88626e99ea9e046f82f32e41bbde5f1508547e9a11b149b52387c - languageName: node - linkType: hard - -"picocolors@npm:^1.0.0": - version: 1.0.0 - resolution: "picocolors@npm:1.0.0" - checksum: 10c0/20a5b249e331c14479d94ec6817a182fd7a5680debae82705747b2db7ec50009a5f6648d0621c561b0572703f84dbef0858abcbd5856d3c5511426afcb1961f7 - languageName: node - linkType: hard - -"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.3.1": - version: 2.3.1 - resolution: "picomatch@npm:2.3.1" - checksum: 10c0/26c02b8d06f03206fc2ab8d16f19960f2ff9e81a658f831ecb656d8f17d9edc799e8364b1f4a7873e89d9702dff96204be0fa26fe4181f6843f040f819dac4be - languageName: node - linkType: hard - -"pify@npm:^2.3.0": - version: 2.3.0 - resolution: "pify@npm:2.3.0" - checksum: 10c0/551ff8ab830b1052633f59cb8adc9ae8407a436e06b4a9718bcb27dc5844b83d535c3a8512b388b6062af65a98c49bdc0dd523d8b2617b188f7c8fee457158dc - languageName: node - linkType: hard - -"postcss-cli@npm:^9.0.1": - version: 9.1.0 - resolution: "postcss-cli@npm:9.1.0" - dependencies: - chokidar: "npm:^3.3.0" - dependency-graph: "npm:^0.11.0" - fs-extra: "npm:^10.0.0" - get-stdin: "npm:^9.0.0" - globby: "npm:^12.0.0" - picocolors: "npm:^1.0.0" - postcss-load-config: "npm:^3.0.0" - postcss-reporter: "npm:^7.0.0" - pretty-hrtime: "npm:^1.0.3" - read-cache: "npm:^1.0.0" - slash: "npm:^4.0.0" - yargs: "npm:^17.0.0" - peerDependencies: - postcss: ^8.0.0 - bin: - postcss: index.js - checksum: 10c0/ae34e46217bf0317f93632263661f8296be3ee9f7859f5afb517a206197aa3abac6500814f00879702b7d372b64fea1b45cb36e00dd6ba37e021b79ab8bc67ee - languageName: node - linkType: hard - -"postcss-elm-tailwind@npm:^0.11.0": - version: 0.11.0 - resolution: "postcss-elm-tailwind@npm:0.11.0" - dependencies: - autoprefixer: "npm:^10.3.3" - tailwindcss: "npm:^2.2.9" - peerDependencies: - postcss: ^8.0.0 - checksum: 10c0/ea9f8ef4c756c0d5a597ef3d3e1cefab9113a40a6e7a4c18d57eb5d1d686707af6cde872fee500eba8ceaeca1c4819ef8e9ca3e965a8384ef9da5efca96a1ad7 - languageName: node - linkType: hard - -"postcss-js@npm:^3.0.3": - version: 3.0.3 - resolution: "postcss-js@npm:3.0.3" - dependencies: - camelcase-css: "npm:^2.0.1" - postcss: "npm:^8.1.6" - checksum: 10c0/bb569feb35bc4029072c259f52af4bf7b79e5dc2c680e3d6c7cedbb2b8d05114186832bef169abb76d601b75f83952fe0bb8c56b7c071d8f34c6ad8a0aead614 - languageName: node - linkType: hard - -"postcss-load-config@npm:^3.0.0, postcss-load-config@npm:^3.1.0": - version: 3.1.4 - resolution: "postcss-load-config@npm:3.1.4" - dependencies: - lilconfig: "npm:^2.0.5" - yaml: "npm:^1.10.2" - peerDependencies: - postcss: ">=8.0.9" - ts-node: ">=9.0.0" - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true - checksum: 10c0/7d2cc6695c2fc063e4538316d651a687fdb55e48db453ff699de916a6ee55ab68eac2b120c28a6b8ca7aa746a588888351b810a215b5cd090eabea62c5762ede - languageName: node - linkType: hard - -"postcss-loader@npm:^6.1.1": - version: 6.2.1 - resolution: "postcss-loader@npm:6.2.1" - dependencies: - cosmiconfig: "npm:^7.0.0" - klona: "npm:^2.0.5" - semver: "npm:^7.3.5" - peerDependencies: - postcss: ^7.0.0 || ^8.0.1 - webpack: ^5.0.0 - checksum: 10c0/736a1bf43a3e09e2351b5cc97cc26790a1c3261412c9dee063f3f6f2969a6ff7d8d194d9adcad01cee1afd1de071482318d9699e6157b67d46b3dccf3be1b58b - languageName: node - linkType: hard - -"postcss-nested@npm:5.0.6": - version: 5.0.6 - resolution: "postcss-nested@npm:5.0.6" - dependencies: - postcss-selector-parser: "npm:^6.0.6" - peerDependencies: - postcss: ^8.2.14 - checksum: 10c0/cff4f05b06ec752a90a36b329b4c1b620352458b3d8e02e2fc7efdfb5073945242573ec42c0dd2b7c4beccba21233e5f089903c3e5e8aea2bbceca09c406fb8f - languageName: node - linkType: hard - -"postcss-reporter@npm:^7.0.0": - version: 7.0.5 - resolution: "postcss-reporter@npm:7.0.5" - dependencies: - picocolors: "npm:^1.0.0" - thenby: "npm:^1.3.4" - peerDependencies: - postcss: ^8.1.0 - checksum: 10c0/5bd96e9681b0f1a557dbd8e8e802c112a220cd93951b7a3c4ddfd90be8910a9001ebef0a16c277f93c37f6710c73aeb22698165f7ec17b0d76892a691ddb38a4 - languageName: node - linkType: hard - -"postcss-selector-parser@npm:^6.0.6": - version: 6.0.10 - resolution: "postcss-selector-parser@npm:6.0.10" - dependencies: - cssesc: "npm:^3.0.0" - util-deprecate: "npm:^1.0.2" - checksum: 10c0/a0b27c5e3f7604c8dc7cd83f145fdd7b21448e0d86072da99e0d78e536ba27aa9db2d42024c50aa530408ee517c4bdc0260529e1afb56608f9a82e839c207e82 - languageName: node - linkType: hard - -"postcss-value-parser@npm:^3.3.0": - version: 3.3.1 - resolution: "postcss-value-parser@npm:3.3.1" - checksum: 10c0/23eed98d8eeadb1f9ef1db4a2757da0f1d8e7c1dac2a38d6b35d971aab9eb3c6d8a967d0e9f435558834ffcd966afbbe875a56bcc5bcdd09e663008c106b3e47 - languageName: node - linkType: hard - -"postcss-value-parser@npm:^4.1.0, postcss-value-parser@npm:^4.2.0": - version: 4.2.0 - resolution: "postcss-value-parser@npm:4.2.0" - checksum: 10c0/f4142a4f56565f77c1831168e04e3effd9ffcc5aebaf0f538eee4b2d465adfd4b85a44257bb48418202a63806a7da7fe9f56c330aebb3cac898e46b4cbf49161 - languageName: node - linkType: hard - -"postcss@npm:^8.1.6, postcss@npm:^8.3.5, postcss@npm:^8.3.8": - version: 8.4.14 - resolution: "postcss@npm:8.4.14" - dependencies: - nanoid: "npm:^3.3.4" - picocolors: "npm:^1.0.0" - source-map-js: "npm:^1.0.2" - checksum: 10c0/2a4cfa28e2f1bfd358313501f7771bd596e494487c7b735c492e2f8b1faf493d24fcb43e2e6ad825863fc65a77abb949ca8f228602ae46a022f02dc812c4ac8b - languageName: node - linkType: hard - -"pretty-hrtime@npm:^1.0.3": - version: 1.0.3 - resolution: "pretty-hrtime@npm:1.0.3" - checksum: 10c0/67cb3fc283a72252b49ac488647e6a01b78b7aa1b8f2061834aa1650691229081518ef3ca940f77f41cc8a8f02ba9eeb74b843481596670209e493062f2e89e0 - languageName: node - linkType: hard - -"proc-log@npm:^4.1.0, proc-log@npm:^4.2.0": - version: 4.2.0 - resolution: "proc-log@npm:4.2.0" - checksum: 10c0/17db4757c2a5c44c1e545170e6c70a26f7de58feb985091fb1763f5081cab3d01b181fb2dd240c9f4a4255a1d9227d163d5771b7e69c9e49a561692db865efb9 - languageName: node - linkType: hard - -"promise-retry@npm:^2.0.1": - version: 2.0.1 - resolution: "promise-retry@npm:2.0.1" - dependencies: - err-code: "npm:^2.0.2" - retry: "npm:^0.12.0" - checksum: 10c0/9c7045a1a2928094b5b9b15336dcd2a7b1c052f674550df63cc3f36cd44028e5080448175b6f6ca32b642de81150f5e7b1a98b728f15cb069f2dd60ac2616b96 - languageName: node - linkType: hard - -"pseudomap@npm:^1.0.2": - version: 1.0.2 - resolution: "pseudomap@npm:1.0.2" - checksum: 10c0/5a91ce114c64ed3a6a553aa7d2943868811377388bb31447f9d8028271bae9b05b340fe0b6961a64e45b9c72946aeb0a4ab635e8f7cb3715ffd0ff2beeb6a679 - languageName: node - linkType: hard - -"pump@npm:^3.0.0": - version: 3.0.0 - resolution: "pump@npm:3.0.0" - dependencies: - end-of-stream: "npm:^1.1.0" - once: "npm:^1.3.1" - checksum: 10c0/bbdeda4f747cdf47db97428f3a135728669e56a0ae5f354a9ac5b74556556f5446a46f720a8f14ca2ece5be9b4d5d23c346db02b555f46739934cc6c093a5478 - languageName: node - linkType: hard - -"punycode@npm:^1.3.2": - version: 1.4.1 - resolution: "punycode@npm:1.4.1" - checksum: 10c0/354b743320518aef36f77013be6e15da4db24c2b4f62c5f1eb0529a6ed02fbaf1cb52925785f6ab85a962f2b590d9cd5ad730b70da72b5f180e2556b8bd3ca08 - languageName: node - linkType: hard - -"punycode@npm:^2.1.0": - version: 2.1.1 - resolution: "punycode@npm:2.1.1" - checksum: 10c0/83815ca9b9177f055771f31980cbec7ffaef10257d50a95ab99b4a30f0404846e85fa6887ee1bbc0aaddb7bad6d96e2fa150a016051ff0f6b92be4ad613ddca8 - languageName: node - linkType: hard - -"purgecss@npm:^4.0.3": - version: 4.1.3 - resolution: "purgecss@npm:4.1.3" - dependencies: - commander: "npm:^8.0.0" - glob: "npm:^7.1.7" - postcss: "npm:^8.3.5" - postcss-selector-parser: "npm:^6.0.6" - bin: - purgecss: bin/purgecss.js - checksum: 10c0/9b29872298bc65a290c6ccf7ea862dd1c94f78ca593e78ae7d36c6341e113ddbe657bf1c0bf7bb3dad76f8d6c98a0667e6da1d126afa5702d3137db8547feaa2 - languageName: node - linkType: hard - -"queue-microtask@npm:^1.2.2": - version: 1.2.3 - resolution: "queue-microtask@npm:1.2.3" - checksum: 10c0/900a93d3cdae3acd7d16f642c29a642aea32c2026446151f0778c62ac089d4b8e6c986811076e1ae180a694cedf077d453a11b58ff0a865629a4f82ab558e102 - languageName: node - linkType: hard - -"quick-lru@npm:^5.1.1": - version: 5.1.1 - resolution: "quick-lru@npm:5.1.1" - checksum: 10c0/a24cba5da8cec30d70d2484be37622580f64765fb6390a928b17f60cd69e8dbd32a954b3ff9176fa1b86d86ff2ba05252fae55dc4d40d0291c60412b0ad096da - languageName: node - linkType: hard - -"range-parser@npm:1.2.0": - version: 1.2.0 - resolution: "range-parser@npm:1.2.0" - checksum: 10c0/c7aef4f6588eb974c475649c157f197d07437d8c6c8ff7e36280a141463fb5ab7a45918417334ebd7b665c6b8321cf31c763f7631dd5f5db9372249261b8b02a - languageName: node - linkType: hard - -"rc@npm:^1.0.1, rc@npm:^1.1.6": - version: 1.2.8 - resolution: "rc@npm:1.2.8" - dependencies: - deep-extend: "npm:^0.6.0" - ini: "npm:~1.3.0" - minimist: "npm:^1.2.0" - strip-json-comments: "npm:~2.0.1" - bin: - rc: ./cli.js - checksum: 10c0/24a07653150f0d9ac7168e52943cc3cb4b7a22c0e43c7dff3219977c2fdca5a2760a304a029c20811a0e79d351f57d46c9bde216193a0f73978496afc2b85b15 - languageName: node - linkType: hard - -"read-cache@npm:^1.0.0": - version: 1.0.0 - resolution: "read-cache@npm:1.0.0" - dependencies: - pify: "npm:^2.3.0" - checksum: 10c0/90cb2750213c7dd7c80cb420654344a311fdec12944e81eb912cd82f1bc92aea21885fa6ce442e3336d9fccd663b8a7a19c46d9698e6ca55620848ab932da814 - languageName: node - linkType: hard - -"readdirp@npm:~3.6.0": - version: 3.6.0 - resolution: "readdirp@npm:3.6.0" - dependencies: - picomatch: "npm:^2.2.1" - checksum: 10c0/6fa848cf63d1b82ab4e985f4cf72bd55b7dcfd8e0a376905804e48c3634b7e749170940ba77b32804d5fe93b3cc521aa95a8d7e7d725f830da6d93f3669ce66b - languageName: node - linkType: hard - -"reduce-css-calc@npm:^2.1.8": - version: 2.1.8 - resolution: "reduce-css-calc@npm:2.1.8" - dependencies: - css-unit-converter: "npm:^1.1.1" - postcss-value-parser: "npm:^3.3.0" - checksum: 10c0/9f311cdb38d4a72d5dc9275b9558199e63a6ceff2892a309691e4281fe418730995910a2179a7dd1566c11138c834c6e5958203c629c9f4357600a478470b17b - languageName: node - linkType: hard - -"registry-auth-token@npm:3.3.2": - version: 3.3.2 - resolution: "registry-auth-token@npm:3.3.2" - dependencies: - rc: "npm:^1.1.6" - safe-buffer: "npm:^5.0.1" - checksum: 10c0/934b5d504ec6d94d78672dc5e74646c52793e74a6e400c1cffc78838bbb12c5f45e3ef3edba506f3295db794d4dda76f924f2948d48fe1f8e83b6500b0ba53c5 - languageName: node - linkType: hard - -"registry-url@npm:3.1.0": - version: 3.1.0 - resolution: "registry-url@npm:3.1.0" - dependencies: - rc: "npm:^1.0.1" - checksum: 10c0/345cf9638f99d95863d92800b3f595ac312c19d6865595e499fbeb33fcda04021a0dbdafbb5e61a838a89a558bc239d78752a1f90eb68cf53fdf0d91da816a7c - languageName: node - linkType: hard - -"require-directory@npm:^2.1.1": - version: 2.1.1 - resolution: "require-directory@npm:2.1.1" - checksum: 10c0/83aa76a7bc1531f68d92c75a2ca2f54f1b01463cb566cf3fbc787d0de8be30c9dbc211d1d46be3497dac5785fe296f2dd11d531945ac29730643357978966e99 - languageName: node - linkType: hard - -"resolve-from@npm:^4.0.0": - version: 4.0.0 - resolution: "resolve-from@npm:4.0.0" - checksum: 10c0/8408eec31a3112ef96e3746c37be7d64020cda07c03a920f5024e77290a218ea758b26ca9529fd7b1ad283947f34b2291c1c0f6aa0ed34acfdda9c6014c8d190 - languageName: node - linkType: hard - -"resolve@npm:^1.20.0": - version: 1.22.0 - resolution: "resolve@npm:1.22.0" - dependencies: - is-core-module: "npm:^2.8.1" - path-parse: "npm:^1.0.7" - supports-preserve-symlinks-flag: "npm:^1.0.0" - bin: - resolve: bin/resolve - checksum: 10c0/efe07a7cd69015a95a5f4e6cc3d372354b93d67a70410ec686413b2054dfa0d5ef16ff52c057a83634debb17f278b99db6dbc60367a4475ae01dda29c6eaa6e4 - languageName: node - linkType: hard - -"resolve@patch:resolve@npm%3A^1.20.0#optional!builtin": - version: 1.22.0 - resolution: "resolve@patch:resolve@npm%3A1.22.0#optional!builtin::version=1.22.0&hash=c3c19d" - dependencies: - is-core-module: "npm:^2.8.1" - path-parse: "npm:^1.0.7" - supports-preserve-symlinks-flag: "npm:^1.0.0" - bin: - resolve: bin/resolve - checksum: 10c0/ef8061e81f40c39070748e8e263c8767d8fcc7c34e9ee85211b29fbc2aedb1ae7cda7d735c2cdbe9367060e9f85ec11c2694e370c121c6bcbb472a7bd0b19555 - languageName: node - linkType: hard - -"retry@npm:^0.12.0": - version: 0.12.0 - resolution: "retry@npm:0.12.0" - checksum: 10c0/59933e8501727ba13ad73ef4a04d5280b3717fd650408460c987392efe9d7be2040778ed8ebe933c5cbd63da3dcc37919c141ef8af0a54a6e4fca5a2af177bfe - languageName: node - linkType: hard - -"reusify@npm:^1.0.4": - version: 1.0.4 - resolution: "reusify@npm:1.0.4" - checksum: 10c0/c19ef26e4e188f408922c46f7ff480d38e8dfc55d448310dfb518736b23ed2c4f547fb64a6ed5bdba92cd7e7ddc889d36ff78f794816d5e71498d645ef476107 - languageName: node - linkType: hard - -"rgb-regex@npm:^1.0.1": - version: 1.0.1 - resolution: "rgb-regex@npm:1.0.1" - checksum: 10c0/ab43ea8b92c1e0c6d6bc811d7fff05927ae87473f9576363ae57213b1fd10605549a5cf89c79ccb7a02dd32e1f093c79891868ef31fd92cdb5378d7b180d73f5 - languageName: node - linkType: hard - -"rgba-regex@npm:^1.0.0": - version: 1.0.0 - resolution: "rgba-regex@npm:1.0.0" - checksum: 10c0/4296e7dd41c0edf66c18c13824b746099af642e1b52de97addb6b22051398567090cf1df20bacd1d400cfc79aee6f3a428e0def623d358844495e3630189892c - languageName: node - linkType: hard - -"rimraf@npm:^3.0.0": - version: 3.0.2 - resolution: "rimraf@npm:3.0.2" - dependencies: - glob: "npm:^7.1.3" - bin: - rimraf: bin.js - checksum: 10c0/9cb7757acb489bd83757ba1a274ab545eafd75598a9d817e0c3f8b164238dd90eba50d6b848bd4dcc5f3040912e882dc7ba71653e35af660d77b25c381d402e8 - languageName: node - linkType: hard - -"root-workspace-0b6124@workspace:.": - version: 0.0.0-use.local - resolution: "root-workspace-0b6124@workspace:." - dependencies: - autoprefixer: "npm:^10.3.6" - postcss: "npm:^8.3.8" - postcss-cli: "npm:^9.0.1" - postcss-elm-tailwind: "npm:^0.11.0" - postcss-loader: "npm:^6.1.1" - serve: "npm:^12.0.1" - tailwindcss: "npm:^2.2.16" - watch: "npm:^1.0.2" - yarn: "npm:^1.22.15" - languageName: unknown - linkType: soft - -"run-parallel@npm:^1.1.9": - version: 1.2.0 - resolution: "run-parallel@npm:1.2.0" - dependencies: - queue-microtask: "npm:^1.2.2" - checksum: 10c0/200b5ab25b5b8b7113f9901bfe3afc347e19bb7475b267d55ad0eb86a62a46d77510cb0f232507c9e5d497ebda569a08a9867d0d14f57a82ad5564d991588b39 - languageName: node - linkType: hard - -"safe-buffer@npm:5.1.2": - version: 5.1.2 - resolution: "safe-buffer@npm:5.1.2" - checksum: 10c0/780ba6b5d99cc9a40f7b951d47152297d0e260f0df01472a1b99d4889679a4b94a13d644f7dbc4f022572f09ae9005fa2fbb93bbbd83643316f365a3e9a45b21 - languageName: node - linkType: hard - -"safe-buffer@npm:^5.0.1": - version: 5.2.1 - resolution: "safe-buffer@npm:5.2.1" - checksum: 10c0/6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3 - languageName: node - linkType: hard - -"safer-buffer@npm:>= 2.1.2 < 3.0.0": - version: 2.1.2 - resolution: "safer-buffer@npm:2.1.2" - checksum: 10c0/7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4 - languageName: node - linkType: hard - -"semver@npm:^5.5.0": - version: 5.7.1 - resolution: "semver@npm:5.7.1" - bin: - semver: ./bin/semver - checksum: 10c0/d4884f2aeca28bff35d0bd40ff0a9b2dfc4b36a883bf0ea5dc15d10d9a01bdc9041035b05f825d4b5ac8a56e490703dbf0d986d054de82cc5e9bad3f02ca6e00 - languageName: node - linkType: hard - -"semver@npm:^7.3.5": - version: 7.3.7 - resolution: "semver@npm:7.3.7" - dependencies: - lru-cache: "npm:^6.0.0" - bin: - semver: bin/semver.js - checksum: 10c0/cffd30102de68a9f8cac9ef57b43c2173dc999da4fc5189872b421f9c9e2660f70243b8e964781ac6dc48ba2542647bb672beeb4d756c89c4a9e05e1144fa40a - languageName: node - linkType: hard - -"serve-handler@npm:6.1.3": - version: 6.1.3 - resolution: "serve-handler@npm:6.1.3" - dependencies: - bytes: "npm:3.0.0" - content-disposition: "npm:0.5.2" - fast-url-parser: "npm:1.1.3" - mime-types: "npm:2.1.18" - minimatch: "npm:3.0.4" - path-is-inside: "npm:1.0.2" - path-to-regexp: "npm:2.2.1" - range-parser: "npm:1.2.0" - checksum: 10c0/ad9a98f50eceda4d16269361a0a7b4167cb4bd8636e22f3ef1a214bb4206d8b3abf2b44ece5ba9d1a6b719e00b78321d5b1777cff178559a24778db9a3998da9 - languageName: node - linkType: hard - -"serve@npm:^12.0.1": - version: 12.0.1 - resolution: "serve@npm:12.0.1" - dependencies: - "@zeit/schemas": "npm:2.6.0" - ajv: "npm:6.12.6" - arg: "npm:2.0.0" - boxen: "npm:1.3.0" - chalk: "npm:2.4.1" - clipboardy: "npm:2.3.0" - compression: "npm:1.7.3" - serve-handler: "npm:6.1.3" - update-check: "npm:1.5.2" - bin: - serve: bin/serve.js - checksum: 10c0/ec20d3bd94ce64170b83aa96b3061f0280aa64cf11282e2d686f9484f34e17f9d4d0ab792c272366a3f0fa664663f2349861d405634974be057963fa2049e25a - languageName: node - linkType: hard - -"shebang-command@npm:^1.2.0": - version: 1.2.0 - resolution: "shebang-command@npm:1.2.0" - dependencies: - shebang-regex: "npm:^1.0.0" - checksum: 10c0/7b20dbf04112c456b7fc258622dafd566553184ac9b6938dd30b943b065b21dabd3776460df534cc02480db5e1b6aec44700d985153a3da46e7db7f9bd21326d - languageName: node - linkType: hard - -"shebang-command@npm:^2.0.0": - version: 2.0.0 - resolution: "shebang-command@npm:2.0.0" - dependencies: - shebang-regex: "npm:^3.0.0" - checksum: 10c0/a41692e7d89a553ef21d324a5cceb5f686d1f3c040759c50aab69688634688c5c327f26f3ecf7001ebfd78c01f3c7c0a11a7c8bfd0a8bc9f6240d4f40b224e4e - languageName: node - linkType: hard - -"shebang-regex@npm:^1.0.0": - version: 1.0.0 - resolution: "shebang-regex@npm:1.0.0" - checksum: 10c0/9abc45dee35f554ae9453098a13fdc2f1730e525a5eb33c51f096cc31f6f10a4b38074c1ebf354ae7bffa7229506083844008dfc3bb7818228568c0b2dc1fff2 - languageName: node - linkType: hard - -"shebang-regex@npm:^3.0.0": - version: 3.0.0 - resolution: "shebang-regex@npm:3.0.0" - checksum: 10c0/1dbed0726dd0e1152a92696c76c7f06084eb32a90f0528d11acd764043aacf76994b2fb30aa1291a21bd019d6699164d048286309a278855ee7bec06cf6fb690 - languageName: node - linkType: hard - -"signal-exit@npm:^3.0.0": - version: 3.0.7 - resolution: "signal-exit@npm:3.0.7" - checksum: 10c0/25d272fa73e146048565e08f3309d5b942c1979a6f4a58a8c59d5fa299728e9c2fcd1a759ec870863b1fd38653670240cd420dad2ad9330c71f36608a6a1c912 - languageName: node - linkType: hard - -"signal-exit@npm:^4.0.1": - version: 4.1.0 - resolution: "signal-exit@npm:4.1.0" - checksum: 10c0/41602dce540e46d599edba9d9860193398d135f7ff72cab629db5171516cfae628d21e7bfccde1bbfdf11c48726bc2a6d1a8fb8701125852fbfda7cf19c6aa83 - languageName: node - linkType: hard - -"simple-swizzle@npm:^0.2.2": - version: 0.2.2 - resolution: "simple-swizzle@npm:0.2.2" - dependencies: - is-arrayish: "npm:^0.3.1" - checksum: 10c0/df5e4662a8c750bdba69af4e8263c5d96fe4cd0f9fe4bdfa3cbdeb45d2e869dff640beaaeb1ef0e99db4d8d2ec92f85508c269f50c972174851bc1ae5bd64308 - languageName: node - linkType: hard - -"slash@npm:^4.0.0": - version: 4.0.0 - resolution: "slash@npm:4.0.0" - checksum: 10c0/b522ca75d80d107fd30d29df0549a7b2537c83c4c4ecd12cd7d4ea6c8aaca2ab17ada002e7a1d78a9d736a0261509f26ea5b489082ee443a3a810586ef8eff18 - languageName: node - linkType: hard - -"smart-buffer@npm:^4.2.0": - version: 4.2.0 - resolution: "smart-buffer@npm:4.2.0" - checksum: 10c0/a16775323e1404dd43fabafe7460be13a471e021637bc7889468eb45ce6a6b207261f454e4e530a19500cc962c4cc5348583520843b363f4193cee5c00e1e539 - languageName: node - linkType: hard - -"socks-proxy-agent@npm:^8.0.3": - version: 8.0.4 - resolution: "socks-proxy-agent@npm:8.0.4" - dependencies: - agent-base: "npm:^7.1.1" - debug: "npm:^4.3.4" - socks: "npm:^2.8.3" - checksum: 10c0/345593bb21b95b0508e63e703c84da11549f0a2657d6b4e3ee3612c312cb3a907eac10e53b23ede3557c6601d63252103494caa306b66560f43af7b98f53957a - languageName: node - linkType: hard - -"socks@npm:^2.8.3": - version: 2.8.3 - resolution: "socks@npm:2.8.3" - dependencies: - ip-address: "npm:^9.0.5" - smart-buffer: "npm:^4.2.0" - checksum: 10c0/d54a52bf9325165770b674a67241143a3d8b4e4c8884560c4e0e078aace2a728dffc7f70150660f51b85797c4e1a3b82f9b7aa25e0a0ceae1a243365da5c51a7 - languageName: node - linkType: hard - -"source-map-js@npm:^1.0.2": - version: 1.0.2 - resolution: "source-map-js@npm:1.0.2" - checksum: 10c0/32f2dfd1e9b7168f9a9715eb1b4e21905850f3b50cf02cf476e47e4eebe8e6b762b63a64357896aa29b37e24922b4282df0f492e0d2ace572b43d15525976ff8 - languageName: node - linkType: hard - -"sprintf-js@npm:^1.1.3": - version: 1.1.3 - resolution: "sprintf-js@npm:1.1.3" - checksum: 10c0/09270dc4f30d479e666aee820eacd9e464215cdff53848b443964202bf4051490538e5dd1b42e1a65cf7296916ca17640aebf63dae9812749c7542ee5f288dec - languageName: node - linkType: hard - -"ssri@npm:^10.0.0": - version: 10.0.6 - resolution: "ssri@npm:10.0.6" - dependencies: - minipass: "npm:^7.0.3" - checksum: 10c0/e5a1e23a4057a86a97971465418f22ea89bd439ac36ade88812dd920e4e61873e8abd6a9b72a03a67ef50faa00a2daf1ab745c5a15b46d03e0544a0296354227 - languageName: node - linkType: hard - -"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": - version: 4.2.3 - resolution: "string-width@npm:4.2.3" - dependencies: - emoji-regex: "npm:^8.0.0" - is-fullwidth-code-point: "npm:^3.0.0" - strip-ansi: "npm:^6.0.1" - checksum: 10c0/1e525e92e5eae0afd7454086eed9c818ee84374bb80328fc41217ae72ff5f065ef1c9d7f72da41de40c75fa8bb3dee63d92373fd492c84260a552c636392a47b - languageName: node - linkType: hard - -"string-width@npm:^2.0.0, string-width@npm:^2.1.1": - version: 2.1.1 - resolution: "string-width@npm:2.1.1" - dependencies: - is-fullwidth-code-point: "npm:^2.0.0" - strip-ansi: "npm:^4.0.0" - checksum: 10c0/e5f2b169fcf8a4257a399f95d069522f056e92ec97dbdcb9b0cdf14d688b7ca0b1b1439a1c7b9773cd79446cbafd582727279d6bfdd9f8edd306ea5e90e5b610 - languageName: node - linkType: hard - -"string-width@npm:^5.0.1, string-width@npm:^5.1.2": - version: 5.1.2 - resolution: "string-width@npm:5.1.2" - dependencies: - eastasianwidth: "npm:^0.2.0" - emoji-regex: "npm:^9.2.2" - strip-ansi: "npm:^7.0.1" - checksum: 10c0/ab9c4264443d35b8b923cbdd513a089a60de339216d3b0ed3be3ba57d6880e1a192b70ae17225f764d7adbf5994e9bb8df253a944736c15a0240eff553c678ca - languageName: node - linkType: hard - -"strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": - version: 6.0.1 - resolution: "strip-ansi@npm:6.0.1" - dependencies: - ansi-regex: "npm:^5.0.1" - checksum: 10c0/1ae5f212a126fe5b167707f716942490e3933085a5ff6c008ab97ab2f272c8025d3aa218b7bd6ab25729ca20cc81cddb252102f8751e13482a5199e873680952 - languageName: node - linkType: hard - -"strip-ansi@npm:^4.0.0": - version: 4.0.0 - resolution: "strip-ansi@npm:4.0.0" - dependencies: - ansi-regex: "npm:^3.0.0" - checksum: 10c0/d75d9681e0637ea316ddbd7d4d3be010b1895a17e885155e0ed6a39755ae0fd7ef46e14b22162e66a62db122d3a98ab7917794e255532ab461bb0a04feb03e7d - languageName: node - linkType: hard - -"strip-ansi@npm:^7.0.1": - version: 7.1.0 - resolution: "strip-ansi@npm:7.1.0" - dependencies: - ansi-regex: "npm:^6.0.1" - checksum: 10c0/a198c3762e8832505328cbf9e8c8381de14a4fa50a4f9b2160138158ea88c0f5549fb50cb13c651c3088f47e63a108b34622ec18c0499b6c8c3a5ddf6b305ac4 - languageName: node - linkType: hard - -"strip-eof@npm:^1.0.0": - version: 1.0.0 - resolution: "strip-eof@npm:1.0.0" - checksum: 10c0/f336beed8622f7c1dd02f2cbd8422da9208fae81daf184f73656332899978919d5c0ca84dc6cfc49ad1fc4dd7badcde5412a063cf4e0d7f8ed95a13a63f68f45 - languageName: node - linkType: hard - -"strip-json-comments@npm:~2.0.1": - version: 2.0.1 - resolution: "strip-json-comments@npm:2.0.1" - checksum: 10c0/b509231cbdee45064ff4f9fd73609e2bcc4e84a4d508e9dd0f31f70356473fde18abfb5838c17d56fb236f5a06b102ef115438de0600b749e818a35fbbc48c43 - languageName: node - linkType: hard - -"supports-color@npm:^5.3.0": - version: 5.5.0 - resolution: "supports-color@npm:5.5.0" - dependencies: - has-flag: "npm:^3.0.0" - checksum: 10c0/6ae5ff319bfbb021f8a86da8ea1f8db52fac8bd4d499492e30ec17095b58af11f0c55f8577390a749b1c4dde691b6a0315dab78f5f54c9b3d83f8fb5905c1c05 - languageName: node - linkType: hard - -"supports-color@npm:^7.1.0": - version: 7.2.0 - resolution: "supports-color@npm:7.2.0" - dependencies: - has-flag: "npm:^4.0.0" - checksum: 10c0/afb4c88521b8b136b5f5f95160c98dee7243dc79d5432db7efc27efb219385bbc7d9427398e43dd6cc730a0f87d5085ce1652af7efbe391327bc0a7d0f7fc124 - languageName: node - linkType: hard - -"supports-preserve-symlinks-flag@npm:^1.0.0": - version: 1.0.0 - resolution: "supports-preserve-symlinks-flag@npm:1.0.0" - checksum: 10c0/6c4032340701a9950865f7ae8ef38578d8d7053f5e10518076e6554a9381fa91bd9c6850193695c141f32b21f979c985db07265a758867bac95de05f7d8aeb39 - languageName: node - linkType: hard - -"tailwindcss@npm:^2.2.16, tailwindcss@npm:^2.2.9": - version: 2.2.19 - resolution: "tailwindcss@npm:2.2.19" - dependencies: - arg: "npm:^5.0.1" - bytes: "npm:^3.0.0" - chalk: "npm:^4.1.2" - chokidar: "npm:^3.5.2" - color: "npm:^4.0.1" - cosmiconfig: "npm:^7.0.1" - detective: "npm:^5.2.0" - didyoumean: "npm:^1.2.2" - dlv: "npm:^1.1.3" - fast-glob: "npm:^3.2.7" - fs-extra: "npm:^10.0.0" - glob-parent: "npm:^6.0.1" - html-tags: "npm:^3.1.0" - is-color-stop: "npm:^1.1.0" - is-glob: "npm:^4.0.1" - lodash: "npm:^4.17.21" - lodash.topath: "npm:^4.5.2" - modern-normalize: "npm:^1.1.0" - node-emoji: "npm:^1.11.0" - normalize-path: "npm:^3.0.0" - object-hash: "npm:^2.2.0" - postcss-js: "npm:^3.0.3" - postcss-load-config: "npm:^3.1.0" - postcss-nested: "npm:5.0.6" - postcss-selector-parser: "npm:^6.0.6" - postcss-value-parser: "npm:^4.1.0" - pretty-hrtime: "npm:^1.0.3" - purgecss: "npm:^4.0.3" - quick-lru: "npm:^5.1.1" - reduce-css-calc: "npm:^2.1.8" - resolve: "npm:^1.20.0" - tmp: "npm:^0.2.1" - peerDependencies: - autoprefixer: ^10.0.2 - postcss: ^8.0.9 - bin: - tailwind: lib/cli.js - tailwindcss: lib/cli.js - checksum: 10c0/eaa0f6e251483271db28b67305f0ab6b1be6b39472ce5ec2baf0795cbe0b05fd4ec2009315e76890b9fcdadd605c12eb6dddcb659a14d993c54f2373dfd4519d - languageName: node - linkType: hard - -"tar@npm:^6.1.11, tar@npm:^6.2.1": - version: 6.2.1 - resolution: "tar@npm:6.2.1" - dependencies: - chownr: "npm:^2.0.0" - fs-minipass: "npm:^2.0.0" - minipass: "npm:^5.0.0" - minizlib: "npm:^2.1.1" - mkdirp: "npm:^1.0.3" - yallist: "npm:^4.0.0" - checksum: 10c0/a5eca3eb50bc11552d453488344e6507156b9193efd7635e98e867fab275d527af53d8866e2370cd09dfe74378a18111622ace35af6a608e5223a7d27fe99537 - languageName: node - linkType: hard - -"term-size@npm:^1.2.0": - version: 1.2.0 - resolution: "term-size@npm:1.2.0" - dependencies: - execa: "npm:^0.7.0" - checksum: 10c0/2fbb2668cdd3b5e63038c28355145e98789d16143fc6754462cd4a194706c7153f15c2a6f05f579ffed27bcf2f35bdf752007927457128cc9a9ce3ec20075649 - languageName: node - linkType: hard - -"thenby@npm:^1.3.4": - version: 1.3.4 - resolution: "thenby@npm:1.3.4" - checksum: 10c0/8845b44db18e74885c7eb34ba8aed7950be5de4903c0e284425ee83ebb089cb8a8215c066e5fd161e4621b0a82f18dc8fb1f44dcc36522b3a4a1ac0190133087 - languageName: node - linkType: hard - -"tmp@npm:^0.2.1": - version: 0.2.1 - resolution: "tmp@npm:0.2.1" - dependencies: - rimraf: "npm:^3.0.0" - checksum: 10c0/67607aa012059c9ce697bee820ee51bc0f39b29a8766def4f92d3f764d67c7cf9205d537d24e0cb1ce9685c40d4c628ead010910118ea18348666b5c46ed9123 - languageName: node - linkType: hard - -"to-regex-range@npm:^5.0.1": - version: 5.0.1 - resolution: "to-regex-range@npm:5.0.1" - dependencies: - is-number: "npm:^7.0.0" - checksum: 10c0/487988b0a19c654ff3e1961b87f471702e708fa8a8dd02a298ef16da7206692e8552a0250e8b3e8759270f62e9d8314616f6da274734d3b558b1fc7b7724e892 - languageName: node - linkType: hard - -"unique-filename@npm:^3.0.0": - version: 3.0.0 - resolution: "unique-filename@npm:3.0.0" - dependencies: - unique-slug: "npm:^4.0.0" - checksum: 10c0/6363e40b2fa758eb5ec5e21b3c7fb83e5da8dcfbd866cc0c199d5534c42f03b9ea9ab069769cc388e1d7ab93b4eeef28ef506ab5f18d910ef29617715101884f - languageName: node - linkType: hard - -"unique-slug@npm:^4.0.0": - version: 4.0.0 - resolution: "unique-slug@npm:4.0.0" - dependencies: - imurmurhash: "npm:^0.1.4" - checksum: 10c0/cb811d9d54eb5821b81b18205750be84cb015c20a4a44280794e915f5a0a70223ce39066781a354e872df3572e8155c228f43ff0cce94c7cbf4da2cc7cbdd635 - languageName: node - linkType: hard - -"universalify@npm:^2.0.0": - version: 2.0.0 - resolution: "universalify@npm:2.0.0" - checksum: 10c0/07092b9f46df61b823d8ab5e57f0ee5120c178b39609a95e4a15a98c42f6b0b8e834e66fbb47ff92831786193be42f1fd36347169b88ce8639d0f9670af24a71 - languageName: node - linkType: hard - -"update-check@npm:1.5.2": - version: 1.5.2 - resolution: "update-check@npm:1.5.2" - dependencies: - registry-auth-token: "npm:3.3.2" - registry-url: "npm:3.1.0" - checksum: 10c0/a2b0cf77d886cd461ced7e84a84f77cac860f37fde9d1f9205bc646fc322761415cd07309014293995aaa2953741419c59854c65b6b40b6c8e3c6ff547a426d5 - languageName: node - linkType: hard - -"uri-js@npm:^4.2.2": - version: 4.4.1 - resolution: "uri-js@npm:4.4.1" - dependencies: - punycode: "npm:^2.1.0" - checksum: 10c0/4ef57b45aa820d7ac6496e9208559986c665e49447cb072744c13b66925a362d96dd5a46c4530a6b8e203e5db5fe849369444440cb22ecfc26c679359e5dfa3c - languageName: node - linkType: hard - -"util-deprecate@npm:^1.0.2": - version: 1.0.2 - resolution: "util-deprecate@npm:1.0.2" - checksum: 10c0/41a5bdd214df2f6c3ecf8622745e4a366c4adced864bc3c833739791aeeeb1838119af7daed4ba36428114b5c67dcda034a79c882e97e43c03e66a4dd7389942 - languageName: node - linkType: hard - -"vary@npm:~1.1.2": - version: 1.1.2 - resolution: "vary@npm:1.1.2" - checksum: 10c0/f15d588d79f3675135ba783c91a4083dcd290a2a5be9fcb6514220a1634e23df116847b1cc51f66bfb0644cf9353b2abb7815ae499bab06e46dd33c1a6bf1f4f - languageName: node - linkType: hard - -"watch@npm:^1.0.2": - version: 1.0.2 - resolution: "watch@npm:1.0.2" - dependencies: - exec-sh: "npm:^0.2.0" - minimist: "npm:^1.2.0" - bin: - watch: ./cli.js - checksum: 10c0/6914c5cd44d6e3cb60c8ab7849ec03c51a07259d86410356630729a14c3f4ccb011865cdb33a052c75fb9ead2eaa646afa32d0fe7682b0b585e65a868b153eca - languageName: node - linkType: hard - -"which@npm:^1.2.9": - version: 1.3.1 - resolution: "which@npm:1.3.1" - dependencies: - isexe: "npm:^2.0.0" - bin: - which: ./bin/which - checksum: 10c0/e945a8b6bbf6821aaaef7f6e0c309d4b615ef35699576d5489b4261da9539f70393c6b2ce700ee4321c18f914ebe5644bc4631b15466ffbaad37d83151f6af59 - languageName: node - linkType: hard - -"which@npm:^2.0.1": - version: 2.0.2 - resolution: "which@npm:2.0.2" - dependencies: - isexe: "npm:^2.0.0" - bin: - node-which: ./bin/node-which - checksum: 10c0/66522872a768b60c2a65a57e8ad184e5372f5b6a9ca6d5f033d4b0dc98aff63995655a7503b9c0a2598936f532120e81dd8cc155e2e92ed662a2b9377cc4374f - languageName: node - linkType: hard - -"which@npm:^4.0.0": - version: 4.0.0 - resolution: "which@npm:4.0.0" - dependencies: - isexe: "npm:^3.1.1" - bin: - node-which: bin/which.js - checksum: 10c0/449fa5c44ed120ccecfe18c433296a4978a7583bf2391c50abce13f76878d2476defde04d0f79db8165bdf432853c1f8389d0485ca6e8ebce3bbcded513d5e6a - languageName: node - linkType: hard - -"widest-line@npm:^2.0.0": - version: 2.0.1 - resolution: "widest-line@npm:2.0.1" - dependencies: - string-width: "npm:^2.1.1" - checksum: 10c0/c8c908c737b522a8cf46254bc85b3b0c9e6934a054840d9b01ea7f36442aa11c8393579fa57bc9ef9a5c5ea69f49e78783ce27b8a8ebab4f855ca044efa584fa - languageName: node - linkType: hard - -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": - version: 7.0.0 - resolution: "wrap-ansi@npm:7.0.0" - dependencies: - ansi-styles: "npm:^4.0.0" - string-width: "npm:^4.1.0" - strip-ansi: "npm:^6.0.0" - checksum: 10c0/d15fc12c11e4cbc4044a552129ebc75ee3f57aa9c1958373a4db0292d72282f54373b536103987a4a7594db1ef6a4f10acf92978f79b98c49306a4b58c77d4da - languageName: node - linkType: hard - -"wrap-ansi@npm:^8.1.0": - version: 8.1.0 - resolution: "wrap-ansi@npm:8.1.0" - dependencies: - ansi-styles: "npm:^6.1.0" - string-width: "npm:^5.0.1" - strip-ansi: "npm:^7.0.1" - checksum: 10c0/138ff58a41d2f877eae87e3282c0630fc2789012fc1af4d6bd626eeb9a2f9a65ca92005e6e69a75c7b85a68479fe7443c7dbe1eb8fbaa681a4491364b7c55c60 - languageName: node - linkType: hard - -"wrappy@npm:1": - version: 1.0.2 - resolution: "wrappy@npm:1.0.2" - checksum: 10c0/56fece1a4018c6a6c8e28fbc88c87e0fbf4ea8fd64fc6c63b18f4acc4bd13e0ad2515189786dd2c30d3eec9663d70f4ecf699330002f8ccb547e4a18231fc9f0 - languageName: node - linkType: hard - -"xtend@npm:^4.0.2": - version: 4.0.2 - resolution: "xtend@npm:4.0.2" - checksum: 10c0/366ae4783eec6100f8a02dff02ac907bf29f9a00b82ac0264b4d8b832ead18306797e283cf19de776538babfdcb2101375ec5646b59f08c52128ac4ab812ed0e - languageName: node - linkType: hard - -"y18n@npm:^5.0.5": - version: 5.0.8 - resolution: "y18n@npm:5.0.8" - checksum: 10c0/4df2842c36e468590c3691c894bc9cdbac41f520566e76e24f59401ba7d8b4811eb1e34524d57e54bc6d864bcb66baab7ffd9ca42bf1eda596618f9162b91249 - languageName: node - linkType: hard - -"yallist@npm:^2.1.2": - version: 2.1.2 - resolution: "yallist@npm:2.1.2" - checksum: 10c0/0b9e25aa00adf19e01d2bcd4b208aee2b0db643d9927131797b7af5ff69480fc80f1c3db738cbf3946f0bddf39d8f2d0a5709c644fd42d4aa3a4e6e786c087b5 - languageName: node - linkType: hard - -"yallist@npm:^4.0.0": - version: 4.0.0 - resolution: "yallist@npm:4.0.0" - checksum: 10c0/2286b5e8dbfe22204ab66e2ef5cc9bbb1e55dfc873bbe0d568aa943eb255d131890dfd5bf243637273d31119b870f49c18fcde2c6ffbb7a7a092b870dc90625a - languageName: node - linkType: hard - -"yaml@npm:^1.10.0, yaml@npm:^1.10.2": - version: 1.10.2 - resolution: "yaml@npm:1.10.2" - checksum: 10c0/5c28b9eb7adc46544f28d9a8d20c5b3cb1215a886609a2fd41f51628d8aaa5878ccd628b755dbcd29f6bb4921bd04ffbc6dcc370689bb96e594e2f9813d2605f - languageName: node - linkType: hard - -"yargs-parser@npm:^21.0.0": - version: 21.0.1 - resolution: "yargs-parser@npm:21.0.1" - checksum: 10c0/384ca19e113a053bb7858cf47f891e630c10ea6ad91f9ad7cae84ea1cdfb09b155a2d0fa97b51116ee6f01e038faaa6c46964953afecd453fa64a761bb87475f - languageName: node - linkType: hard - -"yargs@npm:^17.0.0": - version: 17.5.1 - resolution: "yargs@npm:17.5.1" - dependencies: - cliui: "npm:^7.0.2" - escalade: "npm:^3.1.1" - get-caller-file: "npm:^2.0.5" - require-directory: "npm:^2.1.1" - string-width: "npm:^4.2.3" - y18n: "npm:^5.0.5" - yargs-parser: "npm:^21.0.0" - checksum: 10c0/349c823b772bc5383d56684bca8615020ae5cc0b81bacafe1ef268b281ade93528da1982b0f2dd898e0c678932d9147b8a2e93e341733622773caf7048196de4 - languageName: node - linkType: hard - -"yarn@npm:^1.22.15": - version: 1.22.19 - resolution: "yarn@npm:1.22.19" - bin: - yarn: bin/yarn.js - yarnpkg: bin/yarn.js - checksum: 10c0/a6f9cdf67cca7e11141a18ffc1736a24dd569885b2ec0838982fcf21e5138840c66d9ebfc1846b0b35bc7b415cb985c65d79fb43aa1721b865e4f60c5569062a - languageName: node - linkType: hard From 6afe658f032001a830a14d393c82f971f45663e9 Mon Sep 17 00:00:00 2001 From: Alexander Wood Date: Fri, 27 Mar 2026 16:11:23 +0000 Subject: [PATCH 02/26] feat: re-add readme --- .gitignore | 3 ++- README.MD | 20 ++++++++++++++++++-- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index ce6402f..e2f77e4 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ .elm-spa elm-stuff node_modules -dist \ No newline at end of file +dist +.devenv diff --git a/README.MD b/README.MD index 23d4401..1e9f5ee 100644 --- a/README.MD +++ b/README.MD @@ -1,4 +1,4 @@ -# my new project +# Devden website > 🌳 built with [elm-spa](https://elm-spa.dev) ## dependencies @@ -25,4 +25,20 @@ elm-spa watch # runs build as you code (without the server) ## learn more -You can learn more at [elm-spa.dev](https://elm-spa.dev) \ No newline at end of file +You can learn more at [elm-spa.dev](https://elm-spa.dev) + + +## TODO + +- [ ] Main page (index), shows information about the organisation with links to the discord server +- [ ] `/xp/leaderboard` - show the top N users in terms of XP and level (can query the API for this). + See https://lb.helpch.at/ for inspiration. Maybe allow parameters like `?size=10` to show the top 10 users. +- [ ] `/stats/` - Shows various graphs with stats about the servers. We can decide on exactly the data we show later, + but we have logs of all user joins, leaves and messages (with user IDs, timestamps, content, etc). +- [ ] `/projects/` - Show information about a various project we have. + Should follow a standard format and show github link, contributors (fetch from github?), and other information. +- [ ] `/faqs` - Show all the FAQs that you'd see in `ddfaq` +- [X] `/rules` - ~~pretty obvious, rules of the server. we can provide these in a json format if it helps~~ +- [ ] `/team` or `/staff` - Show a nice list of admins, mods, contributors to projects, etc +- [ ] `/moderation/` Once the bot gets moderation features it would be very very cool to have a panel + like Dyno or yagpdb have. This probably won't happen for a while. From 3ab7972d563e33a65b348bd6784ce9dab7a5f8a1 Mon Sep 17 00:00:00 2001 From: Alexander Wood Date: Fri, 27 Mar 2026 17:21:07 +0000 Subject: [PATCH 03/26] chore: remove junk --- .devenv/load-exports | 1 - .devenv/profile | 1 - .devenv/root | 1 - .devenv/run | 1 - .devenv/state/files.json | 1 - .devenv/tasks.db | Bin 4096 -> 0 bytes .devenv/tasks.db-shm | Bin 32768 -> 0 bytes .devenv/tasks.db-wal | Bin 284312 -> 0 bytes .direnv/bin/nix-direnv-reload | 19 - .../12rd2bk68yfdn66pzcnwkgcyxf28y2fq-source | 1 - .../19n52d86cl95nj8jp5rgrh36sl762fba-source | 1 - .../2a9ylipb88x2sp2xn6cg58p5xm6qamai-source | 1 - .../59wm6wpldrgyplh2hjnmiba7zrq40slr-source | 1 - .../6sr5gjiqka9lw5pp65q65gsi4vwvykqd-source | 1 - .../8694kanhi1kzc34kg81l33pvn638qvnh-source | 1 - .../98mad1s6hrryyflb6qf6hd4xyb8r7cy4-source | 1 - .../9qa4c94rswp05pi33cw8djmr481xfmsb-source | 1 - .../a3lgxmqqn2hargk3zla9qwc7dk172pfd-source | 1 - .../a4vp2b9b5nypkhq15a2fjd436fhmcn1l-source | 1 - .../ah506d01i8mdjgwfzxisj0h6crv06h4d-source | 1 - .../ccsb5xyihjf7b377k5rzkqc16qc6pqd1-source | 1 - .../cp5dwcigb6sq67flr8z068sm272fqdwc-source | 1 - .../dn79d4hlja1h10w71g2dd9591bhb9gcm-source | 1 - .../g5v3sgqy6a0fsmas7mnapc196flrplix-source | 1 - .../gfsnfjvm197ha6c06n46shx5l56jr3v9-source | 1 - .../hh6i9rnxx1v6azzva6dc3ivglh9bxnzg-source | 1 - .../hs60rjkj4jf56x6ki09f3l3bjb3xmd4r-source | 1 - .../jzfmmjnq1cip816awnliw7ir69pcyg00-source | 1 - .../lscb3irg1bmxaywmpbcs1ix52519dwsv-source | 1 - .../n07s4r9cd44axqq4gzlvzckky2fiw3dv-source | 1 - .../s0bdxxy4gki016irflyqlxy5mzr96kin-source | 1 - .../sy3ism981f9xcbcmdc7gbk0yz28w6yjz-source | 1 - .../vfwqvh36nfahrhdx290ihhpgpnx68bv1-source | 1 - .../wygnldpfirbkskf6qpjbghvaqh3kkczb-source | 1 - .../xji4bckj16g6fvdwkzdlxivhwsjwk11m-source | 1 - .../yar8rblnwkp2mpk27capz695pgdbf74x-source | 1 - .../zmknnpbpzwg4s440xvwv6xww4fjgyyyb-source | 1 - ...e-a5d5b61aa8a61b7d9d765e1daf971a9a578f1cfa | 1 - ...5d5b61aa8a61b7d9d765e1daf971a9a578f1cfa.rc | 2235 ----------------- .gitignore | 1 + flake.nix | 4 - 41 files changed, 1 insertion(+), 2292 deletions(-) delete mode 100755 .devenv/load-exports delete mode 120000 .devenv/profile delete mode 100644 .devenv/root delete mode 120000 .devenv/run delete mode 100644 .devenv/state/files.json delete mode 100644 .devenv/tasks.db delete mode 100644 .devenv/tasks.db-shm delete mode 100644 .devenv/tasks.db-wal delete mode 100755 .direnv/bin/nix-direnv-reload delete mode 120000 .direnv/flake-inputs/12rd2bk68yfdn66pzcnwkgcyxf28y2fq-source delete mode 120000 .direnv/flake-inputs/19n52d86cl95nj8jp5rgrh36sl762fba-source delete mode 120000 .direnv/flake-inputs/2a9ylipb88x2sp2xn6cg58p5xm6qamai-source delete mode 120000 .direnv/flake-inputs/59wm6wpldrgyplh2hjnmiba7zrq40slr-source delete mode 120000 .direnv/flake-inputs/6sr5gjiqka9lw5pp65q65gsi4vwvykqd-source delete mode 120000 .direnv/flake-inputs/8694kanhi1kzc34kg81l33pvn638qvnh-source delete mode 120000 .direnv/flake-inputs/98mad1s6hrryyflb6qf6hd4xyb8r7cy4-source delete mode 120000 .direnv/flake-inputs/9qa4c94rswp05pi33cw8djmr481xfmsb-source delete mode 120000 .direnv/flake-inputs/a3lgxmqqn2hargk3zla9qwc7dk172pfd-source delete mode 120000 .direnv/flake-inputs/a4vp2b9b5nypkhq15a2fjd436fhmcn1l-source delete mode 120000 .direnv/flake-inputs/ah506d01i8mdjgwfzxisj0h6crv06h4d-source delete mode 120000 .direnv/flake-inputs/ccsb5xyihjf7b377k5rzkqc16qc6pqd1-source delete mode 120000 .direnv/flake-inputs/cp5dwcigb6sq67flr8z068sm272fqdwc-source delete mode 120000 .direnv/flake-inputs/dn79d4hlja1h10w71g2dd9591bhb9gcm-source delete mode 120000 .direnv/flake-inputs/g5v3sgqy6a0fsmas7mnapc196flrplix-source delete mode 120000 .direnv/flake-inputs/gfsnfjvm197ha6c06n46shx5l56jr3v9-source delete mode 120000 .direnv/flake-inputs/hh6i9rnxx1v6azzva6dc3ivglh9bxnzg-source delete mode 120000 .direnv/flake-inputs/hs60rjkj4jf56x6ki09f3l3bjb3xmd4r-source delete mode 120000 .direnv/flake-inputs/jzfmmjnq1cip816awnliw7ir69pcyg00-source delete mode 120000 .direnv/flake-inputs/lscb3irg1bmxaywmpbcs1ix52519dwsv-source delete mode 120000 .direnv/flake-inputs/n07s4r9cd44axqq4gzlvzckky2fiw3dv-source delete mode 120000 .direnv/flake-inputs/s0bdxxy4gki016irflyqlxy5mzr96kin-source delete mode 120000 .direnv/flake-inputs/sy3ism981f9xcbcmdc7gbk0yz28w6yjz-source delete mode 120000 .direnv/flake-inputs/vfwqvh36nfahrhdx290ihhpgpnx68bv1-source delete mode 120000 .direnv/flake-inputs/wygnldpfirbkskf6qpjbghvaqh3kkczb-source delete mode 120000 .direnv/flake-inputs/xji4bckj16g6fvdwkzdlxivhwsjwk11m-source delete mode 120000 .direnv/flake-inputs/yar8rblnwkp2mpk27capz695pgdbf74x-source delete mode 120000 .direnv/flake-inputs/zmknnpbpzwg4s440xvwv6xww4fjgyyyb-source delete mode 120000 .direnv/flake-profile-a5d5b61aa8a61b7d9d765e1daf971a9a578f1cfa delete mode 100644 .direnv/flake-profile-a5d5b61aa8a61b7d9d765e1daf971a9a578f1cfa.rc diff --git a/.devenv/load-exports b/.devenv/load-exports deleted file mode 100755 index 8b13789..0000000 --- a/.devenv/load-exports +++ /dev/null @@ -1 +0,0 @@ - diff --git a/.devenv/profile b/.devenv/profile deleted file mode 120000 index 360ce2d..0000000 --- a/.devenv/profile +++ /dev/null @@ -1 +0,0 @@ -/nix/store/24ccwhzzw2d1mq05cqyf9w0j2vzqrp8j-devenv-profile \ No newline at end of file diff --git a/.devenv/root b/.devenv/root deleted file mode 100644 index 7e364e1..0000000 --- a/.devenv/root +++ /dev/null @@ -1 +0,0 @@ -/Users/alex/workspace/website \ No newline at end of file diff --git a/.devenv/run b/.devenv/run deleted file mode 120000 index 8284d71..0000000 --- a/.devenv/run +++ /dev/null @@ -1 +0,0 @@ -/tmp/devenv-3226e91 \ No newline at end of file diff --git a/.devenv/state/files.json b/.devenv/state/files.json deleted file mode 100644 index b4c7443..0000000 --- a/.devenv/state/files.json +++ /dev/null @@ -1 +0,0 @@ -{"managedFiles":[]} diff --git a/.devenv/tasks.db b/.devenv/tasks.db deleted file mode 100644 index 7ee7c113a09428e4daafacb6e70a35d18573e608..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmWFz^vNtqRY=P(%1ta$FlG>7U}9o$P*7lCU|@t|AVoG{WYDWB;00+HAlr;ljiVtj n8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71*Aut*O6ovo*4{!$i diff --git a/.devenv/tasks.db-shm b/.devenv/tasks.db-shm deleted file mode 100644 index 075b7290f098b9c40f30b68cff6c7ac8360adca2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32768 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 ${!varName}"; - args+=("--subst-var" "$varName"); - done < <(awk 'BEGIN { for (v in ENVIRON) if (v ~ /^[a-z][a-zA-Z0-9_]*$/) print v }') -} -_assignFirst () -{ - - local varName="$1"; - local _var; - local REMOVE=REMOVE; - shift; - for _var in "$@"; - do - if [ -n "${!_var-}" ]; then - eval "${varName}"="${_var}"; - return; - fi; - done; - echo; - echo "error: _assignFirst: could not find a non-empty variable whose name to assign to ${varName}."; - echo " The following variables were all unset or empty:"; - echo " $*"; - if [ -z "${out:-}" ]; then - echo ' If you do not want an "out" output in your derivation, make sure to define'; - echo ' the other specific required outputs. This can be achieved by picking one'; - echo " of the above as an output."; - echo ' You do not have to remove "out" if you want to have a different default'; - echo ' output, because the first output is taken as a default.'; - echo; - fi; - return 1 -} -_callImplicitHook () -{ - - local def="$1"; - local hookName="$2"; - if declare -F "$hookName" > /dev/null; then - nixTalkativeLog "calling implicit '$hookName' function hook"; - "$hookName"; - else - if type -p "$hookName" > /dev/null; then - nixTalkativeLog "sourcing implicit '$hookName' script hook"; - source "$hookName"; - else - if [ -n "${!hookName:-}" ]; then - nixTalkativeLog "evaling implicit '$hookName' string hook"; - eval "${!hookName}"; - else - return "$def"; - fi; - fi; - fi -} -_defaultUnpack () -{ - - local fn="$1"; - local destination; - if [ -d "$fn" ]; then - destination="$(stripHash "$fn")"; - if [ -e "$destination" ]; then - echo "Cannot copy $fn to $destination: destination already exists!"; - echo "Did you specify two \"srcs\" with the same \"name\"?"; - return 1; - fi; - cp -r --preserve=timestamps --reflink=auto -- "$fn" "$destination"; - else - case "$fn" in - *.tar.xz | *.tar.lzma | *.txz) - ( XZ_OPT="--threads=$NIX_BUILD_CORES" xz -d < "$fn"; - true ) | tar xf - --mode=+w --warning=no-timestamp - ;; - *.tar | *.tar.* | *.tgz | *.tbz2 | *.tbz) - tar xf "$fn" --mode=+w --warning=no-timestamp - ;; - *) - return 1 - ;; - esac; - fi -} -_doStrip () -{ - - local -ra flags=(dontStripHost dontStripTarget); - local -ra debugDirs=(stripDebugList stripDebugListTarget); - local -ra allDirs=(stripAllList stripAllListTarget); - local -ra stripCmds=(STRIP STRIP_FOR_TARGET); - local -ra ranlibCmds=(RANLIB RANLIB_FOR_TARGET); - stripDebugList=${stripDebugList[*]:-lib lib32 lib64 libexec bin sbin Applications Library/Frameworks}; - stripDebugListTarget=${stripDebugListTarget[*]:-}; - stripAllList=${stripAllList[*]:-}; - stripAllListTarget=${stripAllListTarget[*]:-}; - local i; - for i in ${!stripCmds[@]}; - do - local -n flag="${flags[$i]}"; - local -n debugDirList="${debugDirs[$i]}"; - local -n allDirList="${allDirs[$i]}"; - local -n stripCmd="${stripCmds[$i]}"; - local -n ranlibCmd="${ranlibCmds[$i]}"; - if [[ -n "${dontStrip-}" || -n "${flag-}" ]] || ! type -f "${stripCmd-}" 2> /dev/null 1>&2; then - continue; - fi; - stripDirs "$stripCmd" "$ranlibCmd" "$debugDirList" "${stripDebugFlags[*]:--S -p}"; - stripDirs "$stripCmd" "$ranlibCmd" "$allDirList" "${stripAllFlags[*]:--s -p}"; - done -} -_eval () -{ - - if declare -F "$1" > /dev/null 2>&1; then - "$@"; - else - eval "$1"; - fi -} -_logHook () -{ - - if [[ -z ${NIX_LOG_FD-} ]]; then - return; - fi; - local hookKind="$1"; - local hookExpr="$2"; - shift 2; - if declare -F "$hookExpr" > /dev/null 2>&1; then - nixTalkativeLog "calling '$hookKind' function hook '$hookExpr'" "$@"; - else - if type -p "$hookExpr" > /dev/null; then - nixTalkativeLog "sourcing '$hookKind' script hook '$hookExpr'"; - else - if [[ "$hookExpr" != "_callImplicitHook"* ]]; then - local exprToOutput; - if [[ ${NIX_DEBUG:-0} -ge 5 ]]; then - exprToOutput="$hookExpr"; - else - local hookExprLine; - while IFS= read -r hookExprLine; do - hookExprLine="${hookExprLine#"${hookExprLine%%[![:space:]]*}"}"; - if [[ -n "$hookExprLine" ]]; then - exprToOutput+="$hookExprLine\\n "; - fi; - done <<< "$hookExpr"; - exprToOutput="${exprToOutput%%\\n }"; - fi; - nixTalkativeLog "evaling '$hookKind' string hook '$exprToOutput'"; - fi; - fi; - fi -} -_makeSymlinksRelative () -{ - - local prefixes; - prefixes=(); - for output in $(getAllOutputNames); - do - [ ! -e "${!output}" ] && continue; - prefixes+=("${!output}"); - done; - find "${prefixes[@]}" -type l -printf '%H\0%p\0' | xargs -0 -n2 -r -P "$NIX_BUILD_CORES" sh -c ' - output="$1" - link="$2" - - linkTarget=$(readlink "$link") - - # only touch links that point inside the same output tree - [[ $linkTarget == "$output"/* ]] || exit 0 - - if [ ! -e "$linkTarget" ]; then - echo "the symlink $link is broken, it points to $linkTarget (which is missing)" - fi - - echo "making symlink relative: $link" - ln -snrf "$linkTarget" "$link" - ' _ -} -_moveLib64 () -{ - - if [ "${dontMoveLib64-}" = 1 ]; then - return; - fi; - if [ ! -e "$prefix/lib64" -o -L "$prefix/lib64" ]; then - return; - fi; - echo "moving $prefix/lib64/* to $prefix/lib"; - mkdir -p $prefix/lib; - shopt -s dotglob; - for i in $prefix/lib64/*; - do - mv --no-clobber "$i" $prefix/lib; - done; - shopt -u dotglob; - rmdir $prefix/lib64; - ln -s lib $prefix/lib64 -} -_moveSbin () -{ - - if [ "${dontMoveSbin-}" = 1 ]; then - return; - fi; - if [ ! -e "$prefix/sbin" -o -L "$prefix/sbin" ]; then - return; - fi; - echo "moving $prefix/sbin/* to $prefix/bin"; - mkdir -p $prefix/bin; - shopt -s dotglob; - for i in $prefix/sbin/*; - do - mv "$i" $prefix/bin; - done; - shopt -u dotglob; - rmdir $prefix/sbin; - ln -s bin $prefix/sbin -} -_moveSystemdUserUnits () -{ - - if [ "${dontMoveSystemdUserUnits:-0}" = 1 ]; then - return; - fi; - if [ ! -e "${prefix:?}/lib/systemd/user" ]; then - return; - fi; - local source="$prefix/lib/systemd/user"; - local target="$prefix/share/systemd/user"; - echo "moving $source/* to $target"; - mkdir -p "$target"; - ( shopt -s dotglob; - for i in "$source"/*; - do - mv "$i" "$target"; - done ); - rmdir "$source"; - ln -s "$target" "$source" -} -_moveToShare () -{ - - if [ -n "$__structuredAttrs" ]; then - if [ -z "${forceShare-}" ]; then - forceShare=(man doc info); - fi; - else - forceShare=(${forceShare:-man doc info}); - fi; - if [[ -z "$out" ]]; then - return; - fi; - for d in "${forceShare[@]}"; - do - if [ -d "$out/$d" ]; then - if [ -d "$out/share/$d" ]; then - echo "both $d/ and share/$d/ exist!"; - else - echo "moving $out/$d to $out/share/$d"; - mkdir -p $out/share; - mv $out/$d $out/share/; - fi; - fi; - done -} -_multioutConfig () -{ - - if [ "$(getAllOutputNames)" = "out" ] || [ -z "${setOutputFlags-1}" ]; then - return; - fi; - if [ -z "${shareDocName:-}" ]; then - local confScript="${configureScript:-}"; - if [ -z "$confScript" ] && [ -x ./configure ]; then - confScript=./configure; - fi; - if [ -f "$confScript" ]; then - local shareDocName="$(sed -n "s/^PACKAGE_TARNAME='\(.*\)'$/\1/p" < "$confScript")"; - fi; - if [ -z "$shareDocName" ] || echo "$shareDocName" | grep -q '[^a-zA-Z0-9_-]'; then - shareDocName="$(echo "$name" | sed 's/-[^a-zA-Z].*//')"; - fi; - fi; - prependToVar configureFlags --bindir="${!outputBin}"/bin --sbindir="${!outputBin}"/sbin --includedir="${!outputInclude}"/include --mandir="${!outputMan}"/share/man --infodir="${!outputInfo}"/share/info --docdir="${!outputDoc}"/share/doc/"${shareDocName}" --libdir="${!outputLib}"/lib --libexecdir="${!outputLib}"/libexec --localedir="${!outputLib}"/share/locale; - prependToVar installFlags pkgconfigdir="${!outputDev}"/lib/pkgconfig m4datadir="${!outputDev}"/share/aclocal aclocaldir="${!outputDev}"/share/aclocal -} -_multioutDevs () -{ - - if [ "$(getAllOutputNames)" = "out" ] || [ -z "${moveToDev-1}" ]; then - return; - fi; - moveToOutput include "${!outputInclude}"; - moveToOutput lib/pkgconfig "${!outputDev}"; - moveToOutput share/pkgconfig "${!outputDev}"; - moveToOutput lib/cmake "${!outputDev}"; - moveToOutput share/aclocal "${!outputDev}"; - for f in "${!outputDev}"/{lib,share}/pkgconfig/*.pc; - do - echo "Patching '$f' includedir to output ${!outputInclude}"; - sed -i "/^includedir=/s,=\${prefix},=${!outputInclude}," "$f"; - done -} -_multioutDocs () -{ - - local REMOVE=REMOVE; - moveToOutput share/info "${!outputInfo}"; - moveToOutput share/doc "${!outputDoc}"; - moveToOutput share/gtk-doc "${!outputDevdoc}"; - moveToOutput share/devhelp/books "${!outputDevdoc}"; - moveToOutput share/man "${!outputMan}"; - moveToOutput share/man/man3 "${!outputDevman}" -} -_multioutPropagateDev () -{ - - if [ "$(getAllOutputNames)" = "out" ]; then - return; - fi; - local outputFirst; - for outputFirst in $(getAllOutputNames); - do - break; - done; - local propagaterOutput="$outputDev"; - if [ -z "$propagaterOutput" ]; then - propagaterOutput="$outputFirst"; - fi; - if [ -z "${propagatedBuildOutputs+1}" ]; then - local po_dirty="$outputBin $outputInclude $outputLib"; - set +o pipefail; - propagatedBuildOutputs=`echo "$po_dirty" | tr -s ' ' '\n' | grep -v -F "$propagaterOutput" | sort -u | tr '\n' ' ' `; - set -o pipefail; - fi; - if [ -z "$propagatedBuildOutputs" ]; then - return; - fi; - mkdir -p "${!propagaterOutput}"/nix-support; - for output in $propagatedBuildOutputs; - do - echo -n " ${!output}" >> "${!propagaterOutput}"/nix-support/propagated-build-inputs; - done -} -_nixLogWithLevel () -{ - - [[ -z ${NIX_LOG_FD-} || ${NIX_DEBUG:-0} -lt ${1:?} ]] && return 0; - local logLevel; - case "${1:?}" in - 0) - logLevel=ERROR - ;; - 1) - logLevel=WARN - ;; - 2) - logLevel=NOTICE - ;; - 3) - logLevel=INFO - ;; - 4) - logLevel=TALKATIVE - ;; - 5) - logLevel=CHATTY - ;; - 6) - logLevel=DEBUG - ;; - 7) - logLevel=VOMIT - ;; - *) - echo "_nixLogWithLevel: called with invalid log level: ${1:?}" >&"$NIX_LOG_FD"; - return 1 - ;; - esac; - local callerName="${FUNCNAME[2]}"; - if [[ $callerName == "_callImplicitHook" ]]; then - callerName="${hookName:?}"; - fi; - printf "%s: %s: %s\n" "$logLevel" "$callerName" "${2:?}" >&"$NIX_LOG_FD" -} -_overrideFirst () -{ - - if [ -z "${!1-}" ]; then - _assignFirst "$@"; - fi -} -_pruneLibtoolFiles () -{ - - if [ "${dontPruneLibtoolFiles-}" ] || [ ! -e "$prefix" ]; then - return; - fi; - find "$prefix" -type f -name '*.la' -exec grep -q '^# Generated by .*libtool' {} \; -exec grep -q "^old_library=''" {} \; -exec sed -i {} -e "/^dependency_libs='[^']/ c dependency_libs='' #pruned" \; -} -_updateSourceDateEpochFromSourceRoot () -{ - - if [ -n "$sourceRoot" ]; then - updateSourceDateEpoch "$sourceRoot"; - fi -} -activatePackage () -{ - - local pkg="$1"; - local -r hostOffset="$2"; - local -r targetOffset="$3"; - (( hostOffset <= targetOffset )) || exit 1; - if [ -f "$pkg" ]; then - nixTalkativeLog "sourcing setup hook '$pkg'"; - source "$pkg"; - fi; - if [[ -z "${strictDeps-}" || "$hostOffset" -le -1 ]]; then - addToSearchPath _PATH "$pkg/bin"; - fi; - if (( hostOffset <= -1 )); then - addToSearchPath _XDG_DATA_DIRS "$pkg/share"; - fi; - if [[ "$hostOffset" -eq 0 && -d "$pkg/bin" ]]; then - addToSearchPath _HOST_PATH "$pkg/bin"; - fi; - if [[ -f "$pkg/nix-support/setup-hook" ]]; then - nixTalkativeLog "sourcing setup hook '$pkg/nix-support/setup-hook'"; - source "$pkg/nix-support/setup-hook"; - fi -} -addEnvHooks () -{ - - local depHostOffset="$1"; - shift; - local pkgHookVarsSlice="${pkgHookVarVars[$depHostOffset + 1]}[@]"; - local pkgHookVar; - for pkgHookVar in "${!pkgHookVarsSlice}"; - do - eval "${pkgHookVar}s"'+=("$@")'; - done -} -addToSearchPath () -{ - - addToSearchPathWithCustomDelimiter ":" "$@" -} -addToSearchPathWithCustomDelimiter () -{ - - local delimiter="$1"; - local varName="$2"; - local dir="$3"; - if [[ -d "$dir" && "${!varName:+${delimiter}${!varName}${delimiter}}" != *"${delimiter}${dir}${delimiter}"* ]]; then - export "${varName}=${!varName:+${!varName}${delimiter}}${dir}"; - fi -} -appendToVar () -{ - - local -n nameref="$1"; - local useArray type; - if [ -n "$__structuredAttrs" ]; then - useArray=true; - else - useArray=false; - fi; - if type=$(declare -p "$1" 2> /dev/null); then - case "${type#* }" in - -A*) - echo "appendToVar(): ERROR: trying to use appendToVar on an associative array, use variable+=([\"X\"]=\"Y\") instead." 1>&2; - return 1 - ;; - -a*) - useArray=true - ;; - *) - useArray=false - ;; - esac; - fi; - shift; - if $useArray; then - nameref=(${nameref+"${nameref[@]}"} "$@"); - else - nameref="${nameref-} $*"; - fi -} -auditTmpdir () -{ - - local dir="$1"; - [ -e "$dir" ] || return 0; - echo "checking for references to $TMPDIR/ in $dir..."; - local tmpdir elf_fifo script_fifo; - tmpdir="$(mktemp -d)"; - elf_fifo="$tmpdir/elf"; - script_fifo="$tmpdir/script"; - mkfifo "$elf_fifo" "$script_fifo"; - ( find "$dir" -type f -not -path '*/.build-id/*' -print0 | while IFS= read -r -d '' file; do - if isELF "$file"; then - printf '%s\0' "$file" 1>&3; - else - if isScript "$file"; then - filename=${file##*/}; - dir=${file%/*}; - if [ -e "$dir/.$filename-wrapped" ]; then - printf '%s\0' "$file" 1>&4; - fi; - fi; - fi; - done; - exec 3>&- 4>&- ) 3> "$elf_fifo" 4> "$script_fifo" & ( xargs -0 -r -P "$NIX_BUILD_CORES" -n 1 sh -c ' - if { printf :; patchelf --print-rpath "$1"; } | grep -q -F ":$TMPDIR/"; then - echo "RPATH of binary $1 contains a forbidden reference to $TMPDIR/" - exit 1 - fi - ' _ < "$elf_fifo" ) & local pid_elf=$!; - local pid_script; - ( xargs -0 -r -P "$NIX_BUILD_CORES" -n 1 sh -c ' - if grep -q -F "$TMPDIR/" "$1"; then - echo "wrapper script $1 contains a forbidden reference to $TMPDIR/" - exit 1 - fi - ' _ < "$script_fifo" ) & local pid_script=$!; - wait "$pid_elf" || { - echo "Some binaries contain forbidden references to $TMPDIR/. Check the error above!"; - exit 1 - }; - wait "$pid_script" || { - echo "Some scripts contain forbidden references to $TMPDIR/. Check the error above!"; - exit 1 - }; - rm -r "$tmpdir" -} -bintoolsWrapper_addLDVars () -{ - - local role_post; - getHostRoleEnvHook; - if [[ -d "$1/lib64" && ! -L "$1/lib64" ]]; then - export NIX_LDFLAGS${role_post}+=" -L$1/lib64"; - fi; - if [[ -d "$1/lib" ]]; then - local -a glob=($1/lib/lib*); - if [ "${#glob[*]}" -gt 0 ]; then - export NIX_LDFLAGS${role_post}+=" -L$1/lib"; - fi; - fi -} -buildPhase () -{ - - runHook preBuild; - if [[ -z "${makeFlags-}" && -z "${makefile:-}" && ! ( -e Makefile || -e makefile || -e GNUmakefile ) ]]; then - echo "no Makefile or custom buildPhase, doing nothing"; - else - foundMakefile=1; - local flagsArray=(${enableParallelBuilding:+-j${NIX_BUILD_CORES}} SHELL="$SHELL"); - concatTo flagsArray makeFlags makeFlagsArray buildFlags buildFlagsArray; - echoCmd 'build flags' "${flagsArray[@]}"; - make ${makefile:+-f $makefile} "${flagsArray[@]}"; - unset flagsArray; - fi; - runHook postBuild -} -ccWrapper_addCVars () -{ - - local role_post; - getHostRoleEnvHook; - local found=; - if [ -d "$1/include" ]; then - export NIX_CFLAGS_COMPILE${role_post}+=" -isystem $1/include"; - found=1; - fi; - if [ -d "$1/Library/Frameworks" ]; then - export NIX_CFLAGS_COMPILE${role_post}+=" -iframework $1/Library/Frameworks"; - found=1; - fi; - if [[ -n "1" && -n ${NIX_STORE:-} && -n $found ]]; then - local scrubbed="$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-${1#"$NIX_STORE"/*-}"; - export NIX_CFLAGS_COMPILE${role_post}+=" -fmacro-prefix-map=$1=$scrubbed"; - fi -} -checkPhase () -{ - - runHook preCheck; - if [[ -z "${foundMakefile:-}" ]]; then - echo "no Makefile or custom checkPhase, doing nothing"; - runHook postCheck; - return; - fi; - if [[ -z "${checkTarget:-}" ]]; then - if make -n ${makefile:+-f $makefile} check > /dev/null 2>&1; then - checkTarget="check"; - else - if make -n ${makefile:+-f $makefile} test > /dev/null 2>&1; then - checkTarget="test"; - fi; - fi; - fi; - if [[ -z "${checkTarget:-}" ]]; then - echo "no check/test target in ${makefile:-Makefile}, doing nothing"; - else - local flagsArray=(${enableParallelChecking:+-j${NIX_BUILD_CORES}} SHELL="$SHELL"); - concatTo flagsArray makeFlags makeFlagsArray checkFlags=VERBOSE=y checkFlagsArray checkTarget; - echoCmd 'check flags' "${flagsArray[@]}"; - make ${makefile:+-f $makefile} "${flagsArray[@]}"; - unset flagsArray; - fi; - runHook postCheck -} -compressManPages () -{ - - local dir="$1"; - if [ -L "$dir"/share ] || [ -L "$dir"/share/man ] || [ ! -d "$dir/share/man" ]; then - return; - fi; - echo "gzipping man pages under $dir/share/man/"; - find "$dir"/share/man/ -type f -a '!' -regex '.*\.\(bz2\|gz\|xz\)$' -print0 | xargs -0 -n1 -P "$NIX_BUILD_CORES" gzip -n -f; - find "$dir"/share/man/ -type l -a '!' -regex '.*\.\(bz2\|gz\|xz\)$' -print0 | sort -z | while IFS= read -r -d '' f; do - local target; - target="$(readlink -f "$f")"; - if [ -f "$target".gz ]; then - ln -sf "$target".gz "$f".gz && rm "$f"; - fi; - done -} -concatStringsSep () -{ - - local sep="$1"; - local name="$2"; - local type oldifs; - if type=$(declare -p "$name" 2> /dev/null); then - local -n nameref="$name"; - case "${type#* }" in - -A*) - echo "concatStringsSep(): ERROR: trying to use concatStringsSep on an associative array." 1>&2; - return 1 - ;; - -a*) - local IFS="$(printf '\036')" - ;; - *) - local IFS=" " - ;; - esac; - local ifs_separated="${nameref[*]}"; - echo -n "${ifs_separated//"$IFS"/"$sep"}"; - fi -} -concatTo () -{ - - local -; - set -o noglob; - local -n targetref="$1"; - shift; - local arg default name type; - for arg in "$@"; - do - IFS="=" read -r name default <<< "$arg"; - local -n nameref="$name"; - if [[ -z "${nameref[*]}" && -n "$default" ]]; then - targetref+=("$default"); - else - if type=$(declare -p "$name" 2> /dev/null); then - case "${type#* }" in - -A*) - echo "concatTo(): ERROR: trying to use concatTo on an associative array." 1>&2; - return 1 - ;; - -a*) - targetref+=("${nameref[@]}") - ;; - *) - if [[ "$name" = *"Array" ]]; then - nixErrorLog "concatTo(): $name is not declared as array, treating as a singleton. This will become an error in future"; - targetref+=(${nameref+"${nameref[@]}"}); - else - targetref+=(${nameref-}); - fi - ;; - esac; - fi; - fi; - done -} -configurePhase () -{ - - runHook preConfigure; - : "${configureScript=}"; - if [[ -z "$configureScript" && -x ./configure ]]; then - configureScript=./configure; - fi; - if [ -z "${dontFixLibtool:-}" ]; then - export lt_cv_deplibs_check_method="${lt_cv_deplibs_check_method-pass_all}"; - local i; - find . -iname "ltmain.sh" -print0 | while IFS='' read -r -d '' i; do - echo "fixing libtool script $i"; - fixLibtool "$i"; - done; - CONFIGURE_MTIME_REFERENCE=$(mktemp configure.mtime.reference.XXXXXX); - find . -executable -type f -name configure -exec grep -l 'GNU Libtool is free software; you can redistribute it and/or modify' {} \; -exec touch -r {} "$CONFIGURE_MTIME_REFERENCE" \; -exec sed -i s_/usr/bin/file_file_g {} \; -exec touch -r "$CONFIGURE_MTIME_REFERENCE" {} \;; - rm -f "$CONFIGURE_MTIME_REFERENCE"; - fi; - if [[ -z "${dontAddPrefix:-}" && -n "$prefix" ]]; then - local -r prefixKeyOrDefault="${prefixKey:---prefix=}"; - if [ "${prefixKeyOrDefault: -1}" = " " ]; then - prependToVar configureFlags "$prefix"; - prependToVar configureFlags "${prefixKeyOrDefault::-1}"; - else - prependToVar configureFlags "$prefixKeyOrDefault$prefix"; - fi; - fi; - if [[ -f "$configureScript" ]]; then - if [ -z "${dontAddDisableDepTrack:-}" ]; then - if grep -q dependency-tracking "$configureScript"; then - prependToVar configureFlags --disable-dependency-tracking; - fi; - fi; - if [ -z "${dontDisableStatic:-}" ]; then - if grep -q enable-static "$configureScript"; then - prependToVar configureFlags --disable-static; - fi; - fi; - if [ -z "${dontPatchShebangsInConfigure:-}" ]; then - patchShebangs --build "$configureScript"; - fi; - fi; - if [ -n "$configureScript" ]; then - local -a flagsArray; - concatTo flagsArray configureFlags configureFlagsArray; - echoCmd 'configure flags' "${flagsArray[@]}"; - $configureScript "${flagsArray[@]}"; - unset flagsArray; - else - echo "no configure script, doing nothing"; - fi; - runHook postConfigure -} -consumeEntire () -{ - - if IFS='' read -r -d '' "$1"; then - echo "consumeEntire(): ERROR: Input null bytes, won't process" 1>&2; - return 1; - fi -} -definePhases () -{ - - if [ -z "${phases[*]:-}" ]; then - phases="${prePhases[*]:-} unpackPhase patchPhase ${preConfigurePhases[*]:-} configurePhase ${preBuildPhases[*]:-} buildPhase checkPhase ${preInstallPhases[*]:-} installPhase ${preFixupPhases[*]:-} fixupPhase installCheckPhase ${preDistPhases[*]:-} distPhase ${postPhases[*]:-}"; - fi -} -distPhase () -{ - - runHook preDist; - local flagsArray=(); - concatTo flagsArray distFlags distFlagsArray distTarget=dist; - echo 'dist flags: %q' "${flagsArray[@]}"; - make ${makefile:+-f $makefile} "${flagsArray[@]}"; - if [ "${dontCopyDist:-0}" != 1 ]; then - mkdir -p "$out/tarballs"; - cp -pvd ${tarballs[*]:-*.tar.gz} "$out/tarballs"; - fi; - runHook postDist -} -dumpVars () -{ - - if [[ "${noDumpEnvVars:-0}" != 1 && -d "$NIX_BUILD_TOP" ]]; then - local old_umask; - old_umask=$(umask); - umask 0077; - export 2> /dev/null > "$NIX_BUILD_TOP/env-vars"; - umask "$old_umask"; - fi -} -echoCmd () -{ - - printf "%s:" "$1"; - shift; - printf ' %q' "$@"; - echo -} -exitHandler () -{ - - exitCode="$?"; - set +e; - if [ -n "${showBuildStats:-}" ]; then - read -r -d '' -a buildTimes < <(times); - echo "build times:"; - echo "user time for the shell ${buildTimes[0]}"; - echo "system time for the shell ${buildTimes[1]}"; - echo "user time for all child processes ${buildTimes[2]}"; - echo "system time for all child processes ${buildTimes[3]}"; - fi; - if (( "$exitCode" != 0 )); then - runHook failureHook; - if [ -n "${succeedOnFailure:-}" ]; then - echo "build failed with exit code $exitCode (ignored)"; - mkdir -p "$out/nix-support"; - printf "%s" "$exitCode" > "$out/nix-support/failed"; - exit 0; - fi; - else - runHook exitHook; - fi; - return "$exitCode" -} -findInputs () -{ - - local -r pkg="$1"; - local -r hostOffset="$2"; - local -r targetOffset="$3"; - (( hostOffset <= targetOffset )) || exit 1; - local varVar="${pkgAccumVarVars[hostOffset + 1]}"; - local varRef="$varVar[$((targetOffset - hostOffset))]"; - local var="${!varRef}"; - unset -v varVar varRef; - local varSlice="$var[*]"; - case " ${!varSlice-} " in - *" $pkg "*) - return 0 - ;; - esac; - unset -v varSlice; - eval "$var"'+=("$pkg")'; - if ! [ -e "$pkg" ]; then - echo "build input $pkg does not exist" 1>&2; - exit 1; - fi; - function mapOffset () - { - local -r inputOffset="$1"; - local -n outputOffset="$2"; - if (( inputOffset <= 0 )); then - outputOffset=$((inputOffset + hostOffset)); - else - outputOffset=$((inputOffset - 1 + targetOffset)); - fi - }; - local relHostOffset; - for relHostOffset in "${allPlatOffsets[@]}"; - do - local files="${propagatedDepFilesVars[relHostOffset + 1]}"; - local hostOffsetNext; - mapOffset "$relHostOffset" hostOffsetNext; - (( -1 <= hostOffsetNext && hostOffsetNext <= 1 )) || continue; - local relTargetOffset; - for relTargetOffset in "${allPlatOffsets[@]}"; - do - (( "$relHostOffset" <= "$relTargetOffset" )) || continue; - local fileRef="${files}[$relTargetOffset - $relHostOffset]"; - local file="${!fileRef}"; - unset -v fileRef; - local targetOffsetNext; - mapOffset "$relTargetOffset" targetOffsetNext; - (( -1 <= hostOffsetNext && hostOffsetNext <= 1 )) || continue; - [[ -f "$pkg/nix-support/$file" ]] || continue; - local pkgNext; - read -r -d '' pkgNext < "$pkg/nix-support/$file" || true; - for pkgNext in $pkgNext; - do - findInputs "$pkgNext" "$hostOffsetNext" "$targetOffsetNext"; - done; - done; - done -} -fixLibtool () -{ - - local search_path; - for flag in $NIX_LDFLAGS; - do - case $flag in - -L*) - search_path+=" ${flag#-L}" - ;; - esac; - done; - sed -i "$1" -e "s^eval \(sys_lib_search_path=\).*^\1'${search_path:-}'^" -e 's^eval sys_lib_.+search_path=.*^^' -} -fixupPhase () -{ - - local output; - for output in $(getAllOutputNames); - do - if [ -e "${!output}" ]; then - chmod -R u+w,u-s,g-s "${!output}"; - fi; - done; - runHook preFixup; - local output; - for output in $(getAllOutputNames); - do - prefix="${!output}" runHook fixupOutput; - done; - recordPropagatedDependencies; - if [ -n "${setupHook:-}" ]; then - mkdir -p "${!outputDev}/nix-support"; - substituteAll "$setupHook" "${!outputDev}/nix-support/setup-hook"; - fi; - if [ -n "${setupHooks:-}" ]; then - mkdir -p "${!outputDev}/nix-support"; - local hook; - for hook in ${setupHooks[@]}; - do - local content; - consumeEntire content < "$hook"; - substituteAllStream content "file '$hook'" >> "${!outputDev}/nix-support/setup-hook"; - unset -v content; - done; - unset -v hook; - fi; - if [ -n "${propagatedUserEnvPkgs[*]:-}" ]; then - mkdir -p "${!outputBin}/nix-support"; - printWords "${propagatedUserEnvPkgs[@]}" > "${!outputBin}/nix-support/propagated-user-env-packages"; - fi; - runHook postFixup -} -genericBuild () -{ - - export GZIP_NO_TIMESTAMPS=1; - if [ -f "${buildCommandPath:-}" ]; then - source "$buildCommandPath"; - return; - fi; - if [ -n "${buildCommand:-}" ]; then - eval "$buildCommand"; - return; - fi; - definePhases; - for curPhase in ${phases[*]}; - do - runPhase "$curPhase"; - done -} -getAllOutputNames () -{ - - if [ -n "$__structuredAttrs" ]; then - echo "${!outputs[*]}"; - else - echo "$outputs"; - fi -} -getHostRole () -{ - - getRole "$hostOffset" -} -getHostRoleEnvHook () -{ - - getRole "$depHostOffset" -} -getRole () -{ - - case $1 in - -1) - role_post='_FOR_BUILD' - ;; - 0) - role_post='' - ;; - 1) - role_post='_FOR_TARGET' - ;; - *) - echo "apple-sdk-14.4: used as improper sort of dependency" 1>&2; - return 1 - ;; - esac -} -getTargetRole () -{ - - getRole "$targetOffset" -} -getTargetRoleEnvHook () -{ - - getRole "$depTargetOffset" -} -getTargetRoleWrapper () -{ - - case $targetOffset in - -1) - export NIX_@wrapperName@_TARGET_BUILD_@suffixSalt@=1 - ;; - 0) - export NIX_@wrapperName@_TARGET_HOST_@suffixSalt@=1 - ;; - 1) - export NIX_@wrapperName@_TARGET_TARGET_@suffixSalt@=1 - ;; - *) - echo "apple-sdk-14.4: used as improper sort of dependency" 1>&2; - return 1 - ;; - esac -} -installCheckPhase () -{ - - runHook preInstallCheck; - if [[ -z "${foundMakefile:-}" ]]; then - echo "no Makefile or custom installCheckPhase, doing nothing"; - else - if [[ -z "${installCheckTarget:-}" ]] && ! make -n ${makefile:+-f $makefile} "${installCheckTarget:-installcheck}" > /dev/null 2>&1; then - echo "no installcheck target in ${makefile:-Makefile}, doing nothing"; - else - local flagsArray=(${enableParallelChecking:+-j${NIX_BUILD_CORES}} SHELL="$SHELL"); - concatTo flagsArray makeFlags makeFlagsArray installCheckFlags installCheckFlagsArray installCheckTarget=installcheck; - echoCmd 'installcheck flags' "${flagsArray[@]}"; - make ${makefile:+-f $makefile} "${flagsArray[@]}"; - unset flagsArray; - fi; - fi; - runHook postInstallCheck -} -installPhase () -{ - - runHook preInstall; - if [[ -z "${makeFlags-}" && -z "${makefile:-}" && ! ( -e Makefile || -e makefile || -e GNUmakefile ) ]]; then - echo "no Makefile or custom installPhase, doing nothing"; - runHook postInstall; - return; - else - foundMakefile=1; - fi; - if [ -n "$prefix" ]; then - mkdir -p "$prefix"; - fi; - local flagsArray=(${enableParallelInstalling:+-j${NIX_BUILD_CORES}} SHELL="$SHELL"); - concatTo flagsArray makeFlags makeFlagsArray installFlags installFlagsArray installTargets=install; - echoCmd 'install flags' "${flagsArray[@]}"; - make ${makefile:+-f $makefile} "${flagsArray[@]}"; - unset flagsArray; - runHook postInstall -} -isELF () -{ - - local fn="$1"; - local fd; - local magic; - exec {fd}< "$fn"; - LANG=C read -r -n 4 -u "$fd" magic; - exec {fd}>&-; - if [ "$magic" = 'ELF' ]; then - return 0; - else - return 1; - fi -} -isMachO () -{ - - local fn="$1"; - local fd; - local magic; - exec {fd}< "$fn"; - LANG=C read -r -n 4 -u "$fd" magic; - exec {fd}>&-; - if [[ "$magic" = $(echo -ne "\xfe\xed\xfa\xcf") || "$magic" = $(echo -ne "\xcf\xfa\xed\xfe") ]]; then - return 0; - else - if [[ "$magic" = $(echo -ne "\xfe\xed\xfa\xce") || "$magic" = $(echo -ne "\xce\xfa\xed\xfe") ]]; then - return 0; - else - if [[ "$magic" = $(echo -ne "\xca\xfe\xba\xbe") || "$magic" = $(echo -ne "\xbe\xba\xfe\xca") ]]; then - return 0; - else - return 1; - fi; - fi; - fi -} -isScript () -{ - - local fn="$1"; - local fd; - local magic; - exec {fd}< "$fn"; - LANG=C read -r -n 2 -u "$fd" magic; - exec {fd}>&-; - if [[ "$magic" =~ \#! ]]; then - return 0; - else - return 1; - fi -} -mapOffset () -{ - - local -r inputOffset="$1"; - local -n outputOffset="$2"; - if (( inputOffset <= 0 )); then - outputOffset=$((inputOffset + hostOffset)); - else - outputOffset=$((inputOffset - 1 + targetOffset)); - fi -} -moveToOutput () -{ - - local patt="$1"; - local dstOut="$2"; - local output; - for output in $(getAllOutputNames); - do - if [ "${!output}" = "$dstOut" ]; then - continue; - fi; - local srcPath; - for srcPath in "${!output}"/$patt; - do - if [ ! -e "$srcPath" ] && [ ! -L "$srcPath" ]; then - continue; - fi; - if [ "$dstOut" = REMOVE ]; then - echo "Removing $srcPath"; - rm -r "$srcPath"; - else - local dstPath="$dstOut${srcPath#${!output}}"; - echo "Moving $srcPath to $dstPath"; - if [ -d "$dstPath" ] && [ -d "$srcPath" ]; then - rmdir "$srcPath" --ignore-fail-on-non-empty; - if [ -d "$srcPath" ]; then - mv -t "$dstPath" "$srcPath"/*; - rmdir "$srcPath"; - fi; - else - mkdir -p "$(readlink -m "$dstPath/..")"; - mv "$srcPath" "$dstPath"; - fi; - fi; - local srcParent="$(readlink -m "$srcPath/..")"; - if [ -n "$(find "$srcParent" -maxdepth 0 -type d -empty 2> /dev/null)" ]; then - echo "Removing empty $srcParent/ and (possibly) its parents"; - rmdir -p --ignore-fail-on-non-empty "$srcParent" 2> /dev/null || true; - fi; - done; - done -} -nixChattyLog () -{ - - _nixLogWithLevel 5 "$*" -} -nixDebugLog () -{ - - _nixLogWithLevel 6 "$*" -} -nixErrorLog () -{ - - _nixLogWithLevel 0 "$*" -} -nixInfoLog () -{ - - _nixLogWithLevel 3 "$*" -} -nixLog () -{ - - [[ -z ${NIX_LOG_FD-} ]] && return 0; - local callerName="${FUNCNAME[1]}"; - if [[ $callerName == "_callImplicitHook" ]]; then - callerName="${hookName:?}"; - fi; - printf "%s: %s\n" "$callerName" "$*" >&"$NIX_LOG_FD" -} -nixNoticeLog () -{ - - _nixLogWithLevel 2 "$*" -} -nixTalkativeLog () -{ - - _nixLogWithLevel 4 "$*" -} -nixVomitLog () -{ - - _nixLogWithLevel 7 "$*" -} -nixWarnLog () -{ - - _nixLogWithLevel 1 "$*" -} -noBrokenSymlinks () -{ - - local -r output="${1:?}"; - local path; - local pathParent; - local symlinkTarget; - local -i numDanglingSymlinks=0; - local -i numReflexiveSymlinks=0; - local -i numUnreadableSymlinks=0; - if [[ ! -e $output ]]; then - nixWarnLog "skipping non-existent output $output"; - return 0; - fi; - nixInfoLog "running on $output"; - while IFS= read -r -d '' path; do - pathParent="$(dirname "$path")"; - if ! symlinkTarget="$(readlink "$path")"; then - nixErrorLog "the symlink $path is unreadable"; - numUnreadableSymlinks+=1; - continue; - fi; - if [[ $symlinkTarget == /* ]]; then - nixInfoLog "symlink $path points to absolute target $symlinkTarget"; - else - nixInfoLog "symlink $path points to relative target $symlinkTarget"; - symlinkTarget="$(realpath --no-symlinks --canonicalize-missing "$pathParent/$symlinkTarget")"; - fi; - if [[ $symlinkTarget = "$TMPDIR"/* ]]; then - nixErrorLog "the symlink $path points to $TMPDIR directory: $symlinkTarget"; - numDanglingSymlinks+=1; - continue; - fi; - if [[ $symlinkTarget != "$NIX_STORE"/* ]]; then - nixInfoLog "symlink $path points outside the Nix store; ignoring"; - continue; - fi; - if [[ $path == "$symlinkTarget" ]]; then - nixErrorLog "the symlink $path is reflexive"; - numReflexiveSymlinks+=1; - else - if [[ ! -e $symlinkTarget ]]; then - nixErrorLog "the symlink $path points to a missing target: $symlinkTarget"; - numDanglingSymlinks+=1; - else - nixDebugLog "the symlink $path is irreflexive and points to a target which exists"; - fi; - fi; - done < <(find "$output" -type l -print0); - if ((numDanglingSymlinks > 0 || numReflexiveSymlinks > 0 || numUnreadableSymlinks > 0)); then - nixErrorLog "found $numDanglingSymlinks dangling symlinks, $numReflexiveSymlinks reflexive symlinks and $numUnreadableSymlinks unreadable symlinks"; - exit 1; - fi; - return 0 -} -noBrokenSymlinksInAllOutputs () -{ - - if [[ -z ${dontCheckForBrokenSymlinks-} ]]; then - for output in $(getAllOutputNames); - do - noBrokenSymlinks "${!output}"; - done; - fi -} -patchPhase () -{ - - runHook prePatch; - local -a patchesArray; - concatTo patchesArray patches; - local -a flagsArray; - concatTo flagsArray patchFlags=-p1; - for i in "${patchesArray[@]}"; - do - echo "applying patch $i"; - local uncompress=cat; - case "$i" in - *.gz) - uncompress="gzip -d" - ;; - *.bz2) - uncompress="bzip2 -d" - ;; - *.xz) - uncompress="xz -d" - ;; - *.lzma) - uncompress="lzma -d" - ;; - esac; - $uncompress < "$i" 2>&1 | patch "${flagsArray[@]}"; - done; - runHook postPatch -} -patchShebangs () -{ - - local pathName; - local update=false; - while [[ $# -gt 0 ]]; do - case "$1" in - --host) - pathName=HOST_PATH; - shift - ;; - --build) - pathName=PATH; - shift - ;; - --update) - update=true; - shift - ;; - --) - shift; - break - ;; - -* | --*) - echo "Unknown option $1 supplied to patchShebangs" 1>&2; - return 1 - ;; - *) - break - ;; - esac; - done; - echo "patching script interpreter paths in $@"; - local f; - local oldPath; - local newPath; - local arg0; - local args; - local oldInterpreterLine; - local newInterpreterLine; - if [[ $# -eq 0 ]]; then - echo "No arguments supplied to patchShebangs" 1>&2; - return 0; - fi; - local f; - while IFS= read -r -d '' f; do - isScript "$f" || continue; - read -r oldInterpreterLine < "$f" || [ "$oldInterpreterLine" ]; - read -r oldPath arg0 args <<< "${oldInterpreterLine:2}"; - if [[ -z "${pathName:-}" ]]; then - if [[ -n $strictDeps && $f == "$NIX_STORE"* ]]; then - pathName=HOST_PATH; - else - pathName=PATH; - fi; - fi; - if [[ "$oldPath" == *"/bin/env" ]]; then - if [[ $arg0 == "-S" ]]; then - arg0=${args%% *}; - [[ "$args" == *" "* ]] && args=${args#* } || args=; - newPath="$(PATH="${!pathName}" type -P "env" || true)"; - args="-S $(PATH="${!pathName}" type -P "$arg0" || true) $args"; - else - if [[ $arg0 == "-"* || $arg0 == *"="* ]]; then - echo "$f: unsupported interpreter directive \"$oldInterpreterLine\" (set dontPatchShebangs=1 and handle shebang patching yourself)" 1>&2; - exit 1; - else - newPath="$(PATH="${!pathName}" type -P "$arg0" || true)"; - fi; - fi; - else - if [[ -z $oldPath ]]; then - oldPath="/bin/sh"; - fi; - newPath="$(PATH="${!pathName}" type -P "$(basename "$oldPath")" || true)"; - args="$arg0 $args"; - fi; - newInterpreterLine="$newPath $args"; - newInterpreterLine=${newInterpreterLine%${newInterpreterLine##*[![:space:]]}}; - if [[ -n "$oldPath" && ( "$update" == true || "${oldPath:0:${#NIX_STORE}}" != "$NIX_STORE" ) ]]; then - if [[ -n "$newPath" && "$newPath" != "$oldPath" ]]; then - echo "$f: interpreter directive changed from \"$oldInterpreterLine\" to \"$newInterpreterLine\""; - escapedInterpreterLine=${newInterpreterLine//\\/\\\\}; - timestamp=$(stat --printf "%y" "$f"); - tmpFile=$(mktemp -t patchShebangs.XXXXXXXXXX); - sed -e "1 s|.*|#\!$escapedInterpreterLine|" "$f" > "$tmpFile"; - local restoreReadOnly; - if [[ ! -w "$f" ]]; then - chmod +w "$f"; - restoreReadOnly=true; - fi; - cat "$tmpFile" > "$f"; - rm "$tmpFile"; - if [[ -n "${restoreReadOnly:-}" ]]; then - chmod -w "$f"; - fi; - touch --date "$timestamp" "$f"; - fi; - fi; - done < <(find "$@" -type f -perm -0100 -print0) -} -patchShebangsAuto () -{ - - if [[ -z "${dontPatchShebangs-}" && -e "$prefix" ]]; then - if [[ "$output" != out && "$output" = "$outputDev" ]]; then - patchShebangs --build "$prefix"; - else - patchShebangs --host "$prefix"; - fi; - fi -} -pkgConfigWrapper_addPkgConfigPath () -{ - - local role_post; - getHostRoleEnvHook; - addToSearchPath "PKG_CONFIG_PATH${role_post}" "$1/lib/pkgconfig"; - addToSearchPath "PKG_CONFIG_PATH${role_post}" "$1/share/pkgconfig" -} -prependToVar () -{ - - local -n nameref="$1"; - local useArray type; - if [ -n "$__structuredAttrs" ]; then - useArray=true; - else - useArray=false; - fi; - if type=$(declare -p "$1" 2> /dev/null); then - case "${type#* }" in - -A*) - echo "prependToVar(): ERROR: trying to use prependToVar on an associative array." 1>&2; - return 1 - ;; - -a*) - useArray=true - ;; - *) - useArray=false - ;; - esac; - fi; - shift; - if $useArray; then - nameref=("$@" ${nameref+"${nameref[@]}"}); - else - nameref="$* ${nameref-}"; - fi -} -printLines () -{ - - (( "$#" > 0 )) || return 0; - printf '%s\n' "$@" -} -printPhases () -{ - - definePhases; - local phase; - for phase in ${phases[*]}; - do - printf '%s\n' "$phase"; - done -} -printWords () -{ - - (( "$#" > 0 )) || return 0; - printf '%s ' "$@" -} -recordPropagatedDependencies () -{ - - declare -ra flatVars=(depsBuildBuildPropagated propagatedNativeBuildInputs depsBuildTargetPropagated depsHostHostPropagated propagatedBuildInputs depsTargetTargetPropagated); - declare -ra flatFiles=("${propagatedBuildDepFiles[@]}" "${propagatedHostDepFiles[@]}" "${propagatedTargetDepFiles[@]}"); - local propagatedInputsIndex; - for propagatedInputsIndex in "${!flatVars[@]}"; - do - local propagatedInputsSlice="${flatVars[$propagatedInputsIndex]}[@]"; - local propagatedInputsFile="${flatFiles[$propagatedInputsIndex]}"; - [[ -n "${!propagatedInputsSlice}" ]] || continue; - mkdir -p "${!outputDev}/nix-support"; - printWords ${!propagatedInputsSlice} > "${!outputDev}/nix-support/$propagatedInputsFile"; - done -} -runHook () -{ - - local hookName="$1"; - shift; - local hooksSlice="${hookName%Hook}Hooks[@]"; - local hook; - for hook in "_callImplicitHook 0 $hookName" ${!hooksSlice+"${!hooksSlice}"}; - do - _logHook "$hookName" "$hook" "$@"; - _eval "$hook" "$@"; - done; - return 0 -} -runOneHook () -{ - - local hookName="$1"; - shift; - local hooksSlice="${hookName%Hook}Hooks[@]"; - local hook ret=1; - for hook in "_callImplicitHook 1 $hookName" ${!hooksSlice+"${!hooksSlice}"}; - do - _logHook "$hookName" "$hook" "$@"; - if _eval "$hook" "$@"; then - ret=0; - break; - fi; - done; - return "$ret" -} -runPhase () -{ - - local curPhase="$*"; - if [[ "$curPhase" = unpackPhase && -n "${dontUnpack:-}" ]]; then - return; - fi; - if [[ "$curPhase" = patchPhase && -n "${dontPatch:-}" ]]; then - return; - fi; - if [[ "$curPhase" = configurePhase && -n "${dontConfigure:-}" ]]; then - return; - fi; - if [[ "$curPhase" = buildPhase && -n "${dontBuild:-}" ]]; then - return; - fi; - if [[ "$curPhase" = checkPhase && -z "${doCheck:-}" ]]; then - return; - fi; - if [[ "$curPhase" = installPhase && -n "${dontInstall:-}" ]]; then - return; - fi; - if [[ "$curPhase" = fixupPhase && -n "${dontFixup:-}" ]]; then - return; - fi; - if [[ "$curPhase" = installCheckPhase && -z "${doInstallCheck:-}" ]]; then - return; - fi; - if [[ "$curPhase" = distPhase && -z "${doDist:-}" ]]; then - return; - fi; - showPhaseHeader "$curPhase"; - dumpVars; - local startTime endTime; - startTime=$(date +"%s"); - eval "${!curPhase:-$curPhase}"; - endTime=$(date +"%s"); - showPhaseFooter "$curPhase" "$startTime" "$endTime"; - if [ "$curPhase" = unpackPhase ]; then - [ -n "${sourceRoot:-}" ] && chmod +x -- "${sourceRoot}"; - cd -- "${sourceRoot:-.}"; - fi -} -showPhaseFooter () -{ - - local phase="$1"; - local startTime="$2"; - local endTime="$3"; - local delta=$(( endTime - startTime )); - (( delta < 30 )) && return; - local H=$((delta/3600)); - local M=$((delta%3600/60)); - local S=$((delta%60)); - echo -n "$phase completed in "; - (( H > 0 )) && echo -n "$H hours "; - (( M > 0 )) && echo -n "$M minutes "; - echo "$S seconds" -} -showPhaseHeader () -{ - - local phase="$1"; - echo "Running phase: $phase"; - if [[ -z ${NIX_LOG_FD-} ]]; then - return; - fi; - printf "@nix { \"action\": \"setPhase\", \"phase\": \"%s\" }\n" "$phase" >&"$NIX_LOG_FD" -} -stripDirs () -{ - - local cmd="$1"; - local ranlibCmd="$2"; - local paths="$3"; - local stripFlags="$4"; - local excludeFlags=(); - local pathsNew=; - [ -z "$cmd" ] && echo "stripDirs: Strip command is empty" 1>&2 && exit 1; - [ -z "$ranlibCmd" ] && echo "stripDirs: Ranlib command is empty" 1>&2 && exit 1; - local pattern; - if [ -n "${stripExclude:-}" ]; then - for pattern in "${stripExclude[@]}"; - do - excludeFlags+=(-a '!' '(' -name "$pattern" -o -wholename "$prefix/$pattern" ')'); - done; - fi; - local p; - for p in ${paths}; - do - if [ -e "$prefix/$p" ]; then - pathsNew="${pathsNew} $prefix/$p"; - fi; - done; - paths=${pathsNew}; - if [ -n "${paths}" ]; then - echo "stripping (with command $cmd and flags $stripFlags) in $paths"; - local striperr; - striperr="$(mktemp --tmpdir="$TMPDIR" 'striperr.XXXXXX')"; - find $paths -type f "${excludeFlags[@]}" -a '!' -path "$prefix/lib/debug/*" -printf '%D-%i,%p\0' | sort -t, -k1,1 -u -z | cut -d, -f2- -z | xargs -r -0 -n1 -P "$NIX_BUILD_CORES" -- $cmd $stripFlags 2> "$striperr" || exit_code=$?; - [[ "$exit_code" = 123 || -z "$exit_code" ]] || ( cat "$striperr" 1>&2 && exit 1 ); - rm "$striperr"; - find $paths -name '*.a' -type f -exec $ranlibCmd '{}' \; 2> /dev/null; - fi -} -stripHash () -{ - - local strippedName casematchOpt=0; - strippedName="$(basename -- "$1")"; - shopt -q nocasematch && casematchOpt=1; - shopt -u nocasematch; - if [[ "$strippedName" =~ ^[a-z0-9]{32}- ]]; then - echo "${strippedName:33}"; - else - echo "$strippedName"; - fi; - if (( casematchOpt )); then - shopt -s nocasematch; - fi -} -substitute () -{ - - local input="$1"; - local output="$2"; - shift 2; - if [ ! -f "$input" ]; then - echo "substitute(): ERROR: file '$input' does not exist" 1>&2; - return 1; - fi; - local content; - consumeEntire content < "$input"; - if [ -e "$output" ]; then - chmod +w "$output"; - fi; - substituteStream content "file '$input'" "$@" > "$output" -} -substituteAll () -{ - - local input="$1"; - local output="$2"; - local -a args=(); - _allFlags; - substitute "$input" "$output" "${args[@]}" -} -substituteAllInPlace () -{ - - local fileName="$1"; - shift; - substituteAll "$fileName" "$fileName" "$@" -} -substituteAllStream () -{ - - local -a args=(); - _allFlags; - substituteStream "$1" "$2" "${args[@]}" -} -substituteInPlace () -{ - - local -a fileNames=(); - for arg in "$@"; - do - if [[ "$arg" = "--"* ]]; then - break; - fi; - fileNames+=("$arg"); - shift; - done; - if ! [[ "${#fileNames[@]}" -gt 0 ]]; then - echo "substituteInPlace called without any files to operate on (files must come before options!)" 1>&2; - return 1; - fi; - for file in "${fileNames[@]}"; - do - substitute "$file" "$file" "$@"; - done -} -substituteStream () -{ - - local var=$1; - local description=$2; - shift 2; - while (( "$#" )); do - local replace_mode="$1"; - case "$1" in - --replace) - if ! "$_substituteStream_has_warned_replace_deprecation"; then - echo "substituteStream() in derivation $name: WARNING: '--replace' is deprecated, use --replace-{fail,warn,quiet}. ($description)" 1>&2; - _substituteStream_has_warned_replace_deprecation=true; - fi; - replace_mode='--replace-warn' - ;& - --replace-quiet | --replace-warn | --replace-fail) - pattern="$2"; - replacement="$3"; - shift 3; - if ! [[ "${!var}" == *"$pattern"* ]]; then - if [ "$replace_mode" == --replace-warn ]; then - printf "substituteStream() in derivation $name: WARNING: pattern %q doesn't match anything in %s\n" "$pattern" "$description" 1>&2; - else - if [ "$replace_mode" == --replace-fail ]; then - printf "substituteStream() in derivation $name: ERROR: pattern %q doesn't match anything in %s\n" "$pattern" "$description" 1>&2; - return 1; - fi; - fi; - fi; - eval "$var"'=${'"$var"'//"$pattern"/"$replacement"}' - ;; - --subst-var) - local varName="$2"; - shift 2; - if ! [[ "$varName" =~ ^[a-zA-Z_][a-zA-Z0-9_]*$ ]]; then - echo "substituteStream() in derivation $name: ERROR: substitution variables must be valid Bash names, \"$varName\" isn't." 1>&2; - return 1; - fi; - if [ -z ${!varName+x} ]; then - echo "substituteStream() in derivation $name: ERROR: variable \$$varName is unset" 1>&2; - return 1; - fi; - pattern="@$varName@"; - replacement="${!varName}"; - eval "$var"'=${'"$var"'//"$pattern"/"$replacement"}' - ;; - --subst-var-by) - pattern="@$2@"; - replacement="$3"; - eval "$var"'=${'"$var"'//"$pattern"/"$replacement"}'; - shift 3 - ;; - *) - echo "substituteStream() in derivation $name: ERROR: Invalid command line argument: $1" 1>&2; - return 1 - ;; - esac; - done; - printf "%s" "${!var}" -} -unpackFile () -{ - - curSrc="$1"; - echo "unpacking source archive $curSrc"; - if ! runOneHook unpackCmd "$curSrc"; then - echo "do not know how to unpack source archive $curSrc"; - exit 1; - fi -} -unpackPhase () -{ - - runHook preUnpack; - if [ -z "${srcs:-}" ]; then - if [ -z "${src:-}" ]; then - echo 'variable $src or $srcs should point to the source'; - exit 1; - fi; - srcs="$src"; - fi; - local -a srcsArray; - concatTo srcsArray srcs; - local dirsBefore=""; - for i in *; - do - if [ -d "$i" ]; then - dirsBefore="$dirsBefore $i "; - fi; - done; - for i in "${srcsArray[@]}"; - do - unpackFile "$i"; - done; - : "${sourceRoot=}"; - if [ -n "${setSourceRoot:-}" ]; then - runOneHook setSourceRoot; - else - if [ -z "$sourceRoot" ]; then - for i in *; - do - if [ -d "$i" ]; then - case $dirsBefore in - *\ $i\ *) - - ;; - *) - if [ -n "$sourceRoot" ]; then - echo "unpacker produced multiple directories"; - exit 1; - fi; - sourceRoot="$i" - ;; - esac; - fi; - done; - fi; - fi; - if [ -z "$sourceRoot" ]; then - echo "unpacker appears to have produced no directories"; - exit 1; - fi; - echo "source root is $sourceRoot"; - if [ "${dontMakeSourcesWritable:-0}" != 1 ]; then - chmod -R u+w -- "$sourceRoot"; - fi; - runHook postUnpack -} -updateAutotoolsGnuConfigScriptsPhase () -{ - - if [ -n "${dontUpdateAutotoolsGnuConfigScripts-}" ]; then - return; - fi; - for script in config.sub config.guess; - do - for f in $(find . -type f -name "$script"); - do - echo "Updating Autotools / GNU config script to a newer upstream version: $f"; - cp -f "/nix/store/xb4f90wzr6nca7a1wy9ry9p2hvlhhsxx-gnu-config-2024-01-01/$script" "$f"; - done; - done -} -updateSourceDateEpoch () -{ - - local path="$1"; - [[ $path == -* ]] && path="./$path"; - local -a res=($(find "$path" -type f -not -newer "$NIX_BUILD_TOP/.." -printf '%T@ "%p"\0' | sort -n --zero-terminated | tail -n1 --zero-terminated | head -c -1)); - local time="${res[0]//\.[0-9]*/}"; - local newestFile="${res[1]}"; - if [ "${time:-0}" -gt "$SOURCE_DATE_EPOCH" ]; then - echo "setting SOURCE_DATE_EPOCH to timestamp $time of file $newestFile"; - export SOURCE_DATE_EPOCH="$time"; - local now="$(date +%s)"; - if [ "$time" -gt $((now - 60)) ]; then - echo "warning: file $newestFile may be generated; SOURCE_DATE_EPOCH may be non-deterministic"; - fi; - fi -} -PATH="$PATH${nix_saved_PATH:+:$nix_saved_PATH}" -XDG_DATA_DIRS="$XDG_DATA_DIRS${nix_saved_XDG_DATA_DIRS:+:$nix_saved_XDG_DATA_DIRS}" -export NIX_BUILD_TOP="$(mktemp -d -t nix-shell.XXXXXX)" -export TMP="$NIX_BUILD_TOP" -export TMPDIR="$NIX_BUILD_TOP" -export TEMP="$NIX_BUILD_TOP" -export TEMPDIR="$NIX_BUILD_TOP" -eval "${shellHook:-}" diff --git a/.gitignore b/.gitignore index e2f77e4..f066e68 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ elm-stuff node_modules dist .devenv +.direnv \ No newline at end of file diff --git a/flake.nix b/flake.nix index 3d320f8..0dc7b1f 100644 --- a/flake.nix +++ b/flake.nix @@ -51,10 +51,6 @@ }; flake = { - # The usual flake attributes can be defined here, including system- - # agnostic ones like nixosModule and system-enumerating ones, although - # those are more easily expressed in perSystem. - }; }; } From 7ea254b2cff73aa83ca4b36e0823503245785cf2 Mon Sep 17 00:00:00 2001 From: Alexander Wood Date: Fri, 27 Mar 2026 17:26:19 +0000 Subject: [PATCH 04/26] build: Add treefmt --- .envrc | 2 +- flake.lock | 973 +++++++++++++++++++++++++++++++++++++++++++++++++++++ flake.nix | 61 +++- 3 files changed, 1017 insertions(+), 19 deletions(-) create mode 100644 flake.lock diff --git a/.envrc b/.envrc index 117c726..99a025c 100644 --- a/.envrc +++ b/.envrc @@ -12,6 +12,6 @@ watch_file flake.lock mkdir -p "$PWD/.devenv" DEVENV_ROOT_FILE="$PWD/.devenv/root" printf %s "$PWD" >"$DEVENV_ROOT_FILE" -if ! use flake . --override-input devenv-root "file+file://$DEVENV_ROOT_FILE"; then +if ! use flake . --override-input devenv-root "file+file://$DEVENV_ROOT_FILE" --accept-flake-config; then echo "devenv could not be built. The devenv environment was not loaded. Make the necessary changes to devenv.nix and hit enter to try again." >&2 fi diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..6bdc84e --- /dev/null +++ b/flake.lock @@ -0,0 +1,973 @@ +{ + "nodes": { + "cachix": { + "inputs": { + "devenv": [ + "devenv" + ], + "flake-compat": [ + "devenv", + "flake-compat" + ], + "git-hooks": [ + "devenv", + "git-hooks" + ], + "nixpkgs": [ + "devenv", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1767714506, + "narHash": "sha256-WaTs0t1CxhgxbIuvQ97OFhDTVUGd1HA+KzLZUZBhe0s=", + "owner": "cachix", + "repo": "cachix", + "rev": "894c649f0daaa38bbcfb21de64be47dfa7cd0ec9", + "type": "github" + }, + "original": { + "owner": "cachix", + "ref": "latest", + "repo": "cachix", + "type": "github" + } + }, + "cachix_2": { + "inputs": { + "devenv": [ + "devenv", + "crate2nix" + ], + "flake-compat": [ + "devenv", + "crate2nix" + ], + "git-hooks": "git-hooks", + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1767714506, + "narHash": "sha256-WaTs0t1CxhgxbIuvQ97OFhDTVUGd1HA+KzLZUZBhe0s=", + "owner": "cachix", + "repo": "cachix", + "rev": "894c649f0daaa38bbcfb21de64be47dfa7cd0ec9", + "type": "github" + }, + "original": { + "owner": "cachix", + "ref": "latest", + "repo": "cachix", + "type": "github" + } + }, + "cachix_3": { + "inputs": { + "devenv": [ + "devenv", + "crate2nix", + "crate2nix_stable" + ], + "flake-compat": [ + "devenv", + "crate2nix", + "crate2nix_stable" + ], + "git-hooks": "git-hooks_2", + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1767714506, + "narHash": "sha256-WaTs0t1CxhgxbIuvQ97OFhDTVUGd1HA+KzLZUZBhe0s=", + "owner": "cachix", + "repo": "cachix", + "rev": "894c649f0daaa38bbcfb21de64be47dfa7cd0ec9", + "type": "github" + }, + "original": { + "owner": "cachix", + "ref": "latest", + "repo": "cachix", + "type": "github" + } + }, + "crate2nix": { + "inputs": { + "cachix": "cachix_2", + "crate2nix_stable": "crate2nix_stable", + "devshell": "devshell_2", + "flake-compat": "flake-compat_2", + "flake-parts": "flake-parts_2", + "nix-test-runner": "nix-test-runner_2", + "nixpkgs": [ + "devenv", + "nixpkgs" + ], + "pre-commit-hooks": "pre-commit-hooks_2" + }, + "locked": { + "lastModified": 1773440526, + "narHash": "sha256-OcX1MYqUdoalY3/vU67PEx8m6RvqGxX0LwKonjzXn7I=", + "owner": "nix-community", + "repo": "crate2nix", + "rev": "e697d3049c909580128caa856ab8eb709556a97b", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "crate2nix", + "type": "github" + } + }, + "crate2nix_stable": { + "inputs": { + "cachix": "cachix_3", + "crate2nix_stable": [ + "devenv", + "crate2nix", + "crate2nix_stable" + ], + "devshell": "devshell", + "flake-compat": "flake-compat", + "flake-parts": "flake-parts", + "nix-test-runner": "nix-test-runner", + "nixpkgs": "nixpkgs_3", + "pre-commit-hooks": "pre-commit-hooks" + }, + "locked": { + "lastModified": 1769627083, + "narHash": "sha256-SUuruvw1/moNzCZosHaa60QMTL+L9huWdsCBN6XZIic=", + "owner": "nix-community", + "repo": "crate2nix", + "rev": "7c33e664668faecf7655fa53861d7a80c9e464a2", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "0.15.0", + "repo": "crate2nix", + "type": "github" + } + }, + "devenv": { + "inputs": { + "cachix": "cachix", + "crate2nix": "crate2nix", + "flake-compat": "flake-compat_3", + "flake-parts": "flake-parts_3", + "git-hooks": "git-hooks_3", + "nix": "nix", + "nixd": "nixd", + "nixpkgs": "nixpkgs_4", + "rust-overlay": "rust-overlay" + }, + "locked": { + "lastModified": 1774574416, + "narHash": "sha256-lSDwajbwYOAXggD0EAs/pOaBcnSfRjX1ScPo4fk8+tI=", + "owner": "cachix", + "repo": "devenv", + "rev": "4dbca34da522d2169cffb62e56965e4b8ee2453d", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "devenv", + "type": "github" + } + }, + "devenv-root": { + "flake": false, + "locked": { + "narHash": "sha256-d6xi4mKdjkX2JFicDIv5niSzpyI0m/Hnm8GGAIU04kY=", + "type": "file", + "url": "file:///dev/null" + }, + "original": { + "type": "file", + "url": "file:///dev/null" + } + }, + "devshell": { + "inputs": { + "nixpkgs": [ + "devenv", + "crate2nix", + "crate2nix_stable", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1768818222, + "narHash": "sha256-460jc0+CZfyaO8+w8JNtlClB2n4ui1RbHfPTLkpwhU8=", + "owner": "numtide", + "repo": "devshell", + "rev": "255a2b1725a20d060f566e4755dbf571bbbb5f76", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "devshell", + "type": "github" + } + }, + "devshell_2": { + "inputs": { + "nixpkgs": [ + "devenv", + "crate2nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1768818222, + "narHash": "sha256-460jc0+CZfyaO8+w8JNtlClB2n4ui1RbHfPTLkpwhU8=", + "owner": "numtide", + "repo": "devshell", + "rev": "255a2b1725a20d060f566e4755dbf571bbbb5f76", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "devshell", + "type": "github" + } + }, + "flake-compat": { + "locked": { + "lastModified": 1733328505, + "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", + "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", + "revCount": 69, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.1.0/01948eb7-9cba-704f-bbf3-3fa956735b52/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" + } + }, + "flake-compat_2": { + "locked": { + "lastModified": 1733328505, + "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", + "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", + "revCount": 69, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.1.0/01948eb7-9cba-704f-bbf3-3fa956735b52/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" + } + }, + "flake-compat_3": { + "flake": false, + "locked": { + "lastModified": 1767039857, + "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "devenv", + "crate2nix", + "crate2nix_stable", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1768135262, + "narHash": "sha256-PVvu7OqHBGWN16zSi6tEmPwwHQ4rLPU9Plvs8/1TUBY=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "80daad04eddbbf5a4d883996a73f3f542fa437ac", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_2": { + "inputs": { + "nixpkgs-lib": [ + "devenv", + "crate2nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1768135262, + "narHash": "sha256-PVvu7OqHBGWN16zSi6tEmPwwHQ4rLPU9Plvs8/1TUBY=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "80daad04eddbbf5a4d883996a73f3f542fa437ac", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_3": { + "inputs": { + "nixpkgs-lib": [ + "devenv", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1772408722, + "narHash": "sha256-rHuJtdcOjK7rAHpHphUb1iCvgkU3GpfvicLMwwnfMT0=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "f20dc5d9b8027381c474144ecabc9034d6a839a3", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_4": { + "inputs": { + "nixpkgs-lib": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1772408722, + "narHash": "sha256-rHuJtdcOjK7rAHpHphUb1iCvgkU3GpfvicLMwwnfMT0=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "f20dc5d9b8027381c474144ecabc9034d6a839a3", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "git-hooks": { + "inputs": { + "flake-compat": [ + "devenv", + "crate2nix", + "cachix", + "flake-compat" + ], + "gitignore": "gitignore", + "nixpkgs": [ + "devenv", + "crate2nix", + "cachix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1765404074, + "narHash": "sha256-+ZDU2d+vzWkEJiqprvV5PR26DVFN2vgddwG5SnPZcUM=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "2d6f58930fbcd82f6f9fd59fb6d13e37684ca529", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, + "git-hooks_2": { + "inputs": { + "flake-compat": [ + "devenv", + "crate2nix", + "crate2nix_stable", + "cachix", + "flake-compat" + ], + "gitignore": "gitignore_2", + "nixpkgs": [ + "devenv", + "crate2nix", + "crate2nix_stable", + "cachix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1765404074, + "narHash": "sha256-+ZDU2d+vzWkEJiqprvV5PR26DVFN2vgddwG5SnPZcUM=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "2d6f58930fbcd82f6f9fd59fb6d13e37684ca529", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, + "git-hooks_3": { + "inputs": { + "flake-compat": [ + "devenv", + "flake-compat" + ], + "gitignore": "gitignore_5", + "nixpkgs": [ + "devenv", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1772893680, + "narHash": "sha256-JDqZMgxUTCq85ObSaFw0HhE+lvdOre1lx9iI6vYyOEs=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "8baab586afc9c9b57645a734c820e4ac0a604af9", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "devenv", + "crate2nix", + "cachix", + "git-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "gitignore_2": { + "inputs": { + "nixpkgs": [ + "devenv", + "crate2nix", + "crate2nix_stable", + "cachix", + "git-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "gitignore_3": { + "inputs": { + "nixpkgs": [ + "devenv", + "crate2nix", + "crate2nix_stable", + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "gitignore_4": { + "inputs": { + "nixpkgs": [ + "devenv", + "crate2nix", + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "gitignore_5": { + "inputs": { + "nixpkgs": [ + "devenv", + "git-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "mk-shell-bin": { + "locked": { + "lastModified": 1677004959, + "narHash": "sha256-/uEkr1UkJrh11vD02aqufCxtbF5YnhRTIKlx5kyvf+I=", + "owner": "rrbutani", + "repo": "nix-mk-shell-bin", + "rev": "ff5d8bd4d68a347be5042e2f16caee391cd75887", + "type": "github" + }, + "original": { + "owner": "rrbutani", + "repo": "nix-mk-shell-bin", + "type": "github" + } + }, + "nix": { + "inputs": { + "flake-compat": [ + "devenv", + "flake-compat" + ], + "flake-parts": [ + "devenv", + "flake-parts" + ], + "git-hooks-nix": [ + "devenv", + "git-hooks" + ], + "nixpkgs": [ + "devenv", + "nixpkgs" + ], + "nixpkgs-23-11": [ + "devenv" + ], + "nixpkgs-regression": [ + "devenv" + ] + }, + "locked": { + "lastModified": 1774103430, + "narHash": "sha256-MRNVInSmvhKIg3y0UdogQJXe+omvKijGszFtYpd5r9k=", + "owner": "cachix", + "repo": "nix", + "rev": "e127c1c94cefe02d8ca4cca79ef66be4c527510e", + "type": "github" + }, + "original": { + "owner": "cachix", + "ref": "devenv-2.32", + "repo": "nix", + "type": "github" + } + }, + "nix-test-runner": { + "flake": false, + "locked": { + "lastModified": 1588761593, + "narHash": "sha256-FKJykltAN/g3eIceJl4SfDnnyuH2jHImhMrXS2KvGIs=", + "owner": "stoeffel", + "repo": "nix-test-runner", + "rev": "c45d45b11ecef3eb9d834c3b6304c05c49b06ca2", + "type": "github" + }, + "original": { + "owner": "stoeffel", + "repo": "nix-test-runner", + "type": "github" + } + }, + "nix-test-runner_2": { + "flake": false, + "locked": { + "lastModified": 1588761593, + "narHash": "sha256-FKJykltAN/g3eIceJl4SfDnnyuH2jHImhMrXS2KvGIs=", + "owner": "stoeffel", + "repo": "nix-test-runner", + "rev": "c45d45b11ecef3eb9d834c3b6304c05c49b06ca2", + "type": "github" + }, + "original": { + "owner": "stoeffel", + "repo": "nix-test-runner", + "type": "github" + } + }, + "nix2container": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1773987955, + "narHash": "sha256-vgxwF/GS9lRC9s211RnmJaGKHIUexMiRs7Eslh11E08=", + "owner": "nlewo", + "repo": "nix2container", + "rev": "20d339590c3c36252514a57b0241c47bcd8a08ce", + "type": "github" + }, + "original": { + "owner": "nlewo", + "repo": "nix2container", + "type": "github" + } + }, + "nixd": { + "inputs": { + "flake-parts": [ + "devenv", + "flake-parts" + ], + "nixpkgs": [ + "devenv", + "nixpkgs" + ], + "treefmt-nix": "treefmt-nix" + }, + "locked": { + "lastModified": 1773634079, + "narHash": "sha256-49qb4QNMv77VOeEux+sMd0uBhPvvHgVc0r938Bulvbo=", + "owner": "nix-community", + "repo": "nixd", + "rev": "8ecf93d4d93745e05ea53534e8b94f5e9506e6bd", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixd", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1765186076, + "narHash": "sha256-hM20uyap1a0M9d344I692r+ik4gTMyj60cQWO+hAYP8=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "addf7cf5f383a3101ecfba091b98d0a1263dc9b8", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-src": { + "flake": false, + "locked": { + "lastModified": 1773597492, + "narHash": "sha256-hQ284SkIeNaeyud+LS0WVLX+WL2rxcVZLFEaK0e03zg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "a07d4ce6bee67d7c838a8a5796e75dff9caa21ef", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-src_2": { + "flake": false, + "locked": { + "lastModified": 1773840656, + "narHash": "sha256-9tpvMGFteZnd3gRQZFlRCohVpqooygFuy9yjuyRL2C0=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "9cf7092bdd603554bd8b63c216e8943cf9b12512", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1765186076, + "narHash": "sha256-hM20uyap1a0M9d344I692r+ik4gTMyj60cQWO+hAYP8=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "addf7cf5f383a3101ecfba091b98d0a1263dc9b8", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1769433173, + "narHash": "sha256-Gf1dFYgD344WZ3q0LPlRoWaNdNQq8kSBDLEWulRQSEs=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "13b0f9e6ac78abbbb736c635d87845c4f4bee51b", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { + "inputs": { + "nixpkgs-src": "nixpkgs-src" + }, + "locked": { + "lastModified": 1773704619, + "narHash": "sha256-LKtmit8Sr81z8+N2vpIaN/fyiQJ8f7XJ6tMSKyDVQ9s=", + "owner": "cachix", + "repo": "devenv-nixpkgs", + "rev": "906534d75b0e2fe74a719559dfb1ad3563485f43", + "type": "github" + }, + "original": { + "owner": "cachix", + "ref": "rolling", + "repo": "devenv-nixpkgs", + "type": "github" + } + }, + "nixpkgs_5": { + "inputs": { + "nixpkgs-src": "nixpkgs-src_2" + }, + "locked": { + "lastModified": 1774287239, + "narHash": "sha256-W3krsWcDwYuA3gPWsFA24YAXxOFUL6iIlT6IknAoNSE=", + "owner": "cachix", + "repo": "devenv-nixpkgs", + "rev": "fa7125ea7f1ae5430010a6e071f68375a39bd24c", + "type": "github" + }, + "original": { + "owner": "cachix", + "ref": "rolling", + "repo": "devenv-nixpkgs", + "type": "github" + } + }, + "nixpkgs_6": { + "locked": { + "lastModified": 1770107345, + "narHash": "sha256-tbS0Ebx2PiA1FRW8mt8oejR0qMXmziJmPaU1d4kYY9g=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "4533d9293756b63904b7238acb84ac8fe4c8c2c4", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "pre-commit-hooks": { + "inputs": { + "flake-compat": [ + "devenv", + "crate2nix", + "crate2nix_stable", + "flake-compat" + ], + "gitignore": "gitignore_3", + "nixpkgs": [ + "devenv", + "crate2nix", + "crate2nix_stable", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1769069492, + "narHash": "sha256-Efs3VUPelRduf3PpfPP2ovEB4CXT7vHf8W+xc49RL/U=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "a1ef738813b15cf8ec759bdff5761b027e3e1d23", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, + "pre-commit-hooks_2": { + "inputs": { + "flake-compat": [ + "devenv", + "crate2nix", + "flake-compat" + ], + "gitignore": "gitignore_4", + "nixpkgs": [ + "devenv", + "crate2nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1769069492, + "narHash": "sha256-Efs3VUPelRduf3PpfPP2ovEB4CXT7vHf8W+xc49RL/U=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "a1ef738813b15cf8ec759bdff5761b027e3e1d23", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, + "root": { + "inputs": { + "devenv": "devenv", + "devenv-root": "devenv-root", + "flake-parts": "flake-parts_4", + "mk-shell-bin": "mk-shell-bin", + "nix2container": "nix2container", + "nixpkgs": "nixpkgs_5", + "treefmt-nix": "treefmt-nix_2" + } + }, + "rust-overlay": { + "inputs": { + "nixpkgs": [ + "devenv", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1773630837, + "narHash": "sha256-zJhgAGnbVKeBMJOb9ctZm4BGS/Rnrz+5lfSXTVah4HQ=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "f600ea449c7b5bb596fa1cf21c871cc5b9e31316", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "devenv", + "nixd", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1772660329, + "narHash": "sha256-IjU1FxYqm+VDe5qIOxoW+pISBlGvVApRjiw/Y/ttJzY=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "3710e0e1218041bbad640352a0440114b1e10428", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + }, + "treefmt-nix_2": { + "inputs": { + "nixpkgs": "nixpkgs_6" + }, + "locked": { + "lastModified": 1773297127, + "narHash": "sha256-6E/yhXP7Oy/NbXtf1ktzmU8SdVqJQ09HC/48ebEGBpk=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "71b125cd05fbfd78cab3e070b73544abe24c5016", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix index 0dc7b1f..c24e05c 100644 --- a/flake.nix +++ b/flake.nix @@ -13,6 +13,7 @@ nix2container.url = "github:nlewo/nix2container"; nix2container.inputs.nixpkgs.follows = "nixpkgs"; mk-shell-bin.url = "github:rrbutani/nix-mk-shell-bin"; + treefmt-nix.url = "github:numtide/treefmt-nix"; }; nixConfig = { @@ -20,36 +21,60 @@ extra-substituters = "https://devenv.cachix.org"; }; - outputs = inputs@{ flake-parts, devenv-root, ... }: + outputs = + inputs@{ flake-parts, devenv-root, ... }: flake-parts.lib.mkFlake { inherit inputs; } { imports = [ inputs.devenv.flakeModule ]; - systems = [ "x86_64-linux" "i686-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ]; + systems = [ + "x86_64-linux" + "i686-linux" + "x86_64-darwin" + "aarch64-linux" + "aarch64-darwin" + ]; - perSystem = { config, self', inputs', pkgs, system, ... }: { - # Per-system attributes can be defined here. The self' and inputs' - # module parameters provide easy access to attributes of the same - # system. + perSystem = + { + config, + self', + inputs', + pkgs, + system, + ... + }: + { + # Per-system attributes can be defined here. The self' and inputs' + # module parameters provide easy access to attributes of the same + # system. - # Equivalent to inputs'.nixpkgs.legacyPackages.hello; - packages.default = pkgs.hello; + # Equivalent to inputs'.nixpkgs.legacyPackages.hello; + packages.default = pkgs.hello; - devenv.shells.default = { - name = "devden-website"; + devenv.shells.default = { + name = "devden-website"; - imports = [ - ]; + imports = [ + ]; - # https://devenv.sh/reference/options/ - packages = [ config.packages.default ]; + # https://devenv.sh/reference/options/ + packages = [ config.packages.default ]; - languages.elm.enable = true; - languages.elm.lsp.enable = true; + languages.elm.enable = true; + languages.elm.lsp.enable = true; - }; + treefmt = { + enable = true; + config.programs = { + nixfmt.enable = true; + elm-format.enable = true; + }; + }; - }; + }; + + }; flake = { }; }; From 85a9c1502df9daf2e39724084bcdb25ff214eebb Mon Sep 17 00:00:00 2001 From: Alexander Wood Date: Fri, 27 Mar 2026 17:31:40 +0000 Subject: [PATCH 05/26] build: add process for elm-spa server --- README.MD | 8 ++++++++ flake.nix | 4 ++++ 2 files changed, 12 insertions(+) diff --git a/README.MD b/README.MD index 1e9f5ee..de8f0c7 100644 --- a/README.MD +++ b/README.MD @@ -13,6 +13,8 @@ npm install -g elm elm-spa ```bash elm-spa server # starts this app at http:/localhost:1234 +devenv up # also starts the app, but automatically takes care of everything + ``` ### other commands @@ -23,6 +25,12 @@ elm-spa build # production build elm-spa watch # runs build as you code (without the server) ``` +**Formatting**: + +```bash +treefmt  # formats everything +``` + ## learn more You can learn more at [elm-spa.dev](https://elm-spa.dev) diff --git a/flake.nix b/flake.nix index c24e05c..ccf5bc6 100644 --- a/flake.nix +++ b/flake.nix @@ -61,6 +61,7 @@ # https://devenv.sh/reference/options/ packages = [ config.packages.default ]; + languages.javascript.bun.enable = true; languages.elm.enable = true; languages.elm.lsp.enable = true; @@ -72,6 +73,9 @@ }; }; + processes.spa-server = { + exec = "bunx elm-spa server"; + }; }; }; From 317943a49b76c9b29e3ad1211c3cff62cdc9734f Mon Sep 17 00:00:00 2001 From: Alexander Wood Date: Fri, 27 Mar 2026 17:43:26 +0000 Subject: [PATCH 06/26] build: Move to elm-land --- .gitignore | 8 +++++++- .vscode/settings.json | 3 --- elm-land.json | 27 +++++++++++++++++++++++++++ elm.json | 10 ++++------ flake.nix | 2 +- public/index.html | 11 ----------- src/Pages/Home_.elm | 6 +++--- 7 files changed, 42 insertions(+), 25 deletions(-) delete mode 100644 .vscode/settings.json create mode 100644 elm-land.json delete mode 100644 public/index.html diff --git a/.gitignore b/.gitignore index f066e68..029a26b 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,10 @@ elm-stuff node_modules dist .devenv -.direnv \ No newline at end of file +.direnv +.vscode +dist +.elm-land +.env +.DS_Store +*.pem \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 69b361b..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "nixEnvSelector.nixFile": "${workspaceFolder}/flake.nix" -} \ No newline at end of file diff --git a/elm-land.json b/elm-land.json new file mode 100644 index 0000000..3d9c0d7 --- /dev/null +++ b/elm-land.json @@ -0,0 +1,27 @@ +{ + "app": { + "elm": { + "development": { "debugger": true }, + "production": { "debugger": false } + }, + "env": [], + "html": { + "attributes": { + "html": { "lang": "en" }, + "head": {} + }, + "title": "Elm Land", + "meta": [ + { "charset": "UTF-8" }, + { "http-equiv": "X-UA-Compatible", "content": "IE=edge" }, + { "name": "viewport", "content": "width=device-width, initial-scale=1.0" } + ], + "link": [], + "script": [] + }, + "router": { + "useHashRouting": false + }, + "proxy": null + } +} \ No newline at end of file diff --git a/elm.json b/elm.json index 2edf09c..5868b5e 100644 --- a/elm.json +++ b/elm.json @@ -2,8 +2,7 @@ "type": "application", "source-directories": [ "src", - ".elm-spa/defaults", - ".elm-spa/generated" + ".elm-land/src" ], "elm-version": "0.19.1", "dependencies": { @@ -12,16 +11,15 @@ "elm/core": "1.0.5", "elm/html": "1.0.0", "elm/json": "1.1.3", - "elm/url": "1.0.0", - "ryan-haskell/elm-spa": "1.0.0" + "elm/url": "1.0.0" }, "indirect": { "elm/time": "1.0.0", - "elm/virtual-dom": "1.0.2" + "elm/virtual-dom": "1.0.3" } }, "test-dependencies": { "direct": {}, "indirect": {} } -} \ No newline at end of file +} diff --git a/flake.nix b/flake.nix index ccf5bc6..917673d 100644 --- a/flake.nix +++ b/flake.nix @@ -74,7 +74,7 @@ }; processes.spa-server = { - exec = "bunx elm-spa server"; + exec = "bunx elm-land server"; }; }; diff --git a/public/index.html b/public/index.html deleted file mode 100644 index a113e35..0000000 --- a/public/index.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/src/Pages/Home_.elm b/src/Pages/Home_.elm index 7bf9761..945a2e3 100644 --- a/src/Pages/Home_.elm +++ b/src/Pages/Home_.elm @@ -1,11 +1,11 @@ -module Pages.Home_ exposing (view) +module Pages.Home_ exposing (page) import Html import View exposing (View) -view : View msg -view = +page : View msg +page = { title = "Homepage" , body = [ Html.text "Hello, world!" ] } From 8eb23af53a63b5b49578d1621256829f2e7c233c Mon Sep 17 00:00:00 2001 From: Alexander Wood Date: Fri, 27 Mar 2026 18:00:43 +0000 Subject: [PATCH 07/26] build: tailwind and stuff --- .gitignore | 5 +- README.MD | 23 +-- bun.lock | 500 ++++++++++++++++++++++++++++++++++++++++++++++ package.json | 17 ++ postcss.config.js | 5 + src/View.elm | 72 +++++++ 6 files changed, 599 insertions(+), 23 deletions(-) create mode 100644 bun.lock create mode 100644 package.json create mode 100644 postcss.config.js create mode 100644 src/View.elm diff --git a/.gitignore b/.gitignore index 029a26b..b3cd1bb 100644 --- a/.gitignore +++ b/.gitignore @@ -2,12 +2,11 @@ .elm-spa elm-stuff node_modules -dist .devenv .direnv .vscode dist .elm-land .env -.DS_Store -*.pem \ No newline at end of file +*.pem +gen/Tailwind \ No newline at end of file diff --git a/README.MD b/README.MD index de8f0c7..c93163d 100644 --- a/README.MD +++ b/README.MD @@ -1,40 +1,23 @@ # Devden website -> 🌳 built with [elm-spa](https://elm-spa.dev) ## dependencies -This project requires the latest LTS version of [Node.js](https://nodejs.org/) - -```bash -npm install -g elm elm-spa -``` +It's easiest to use Nix/Devenv to get everything you need. ## running locally ```bash -elm-spa server # starts this app at http:/localhost:1234 +elm-land server # starts this app at http:/localhost:1234 devenv up # also starts the app, but automatically takes care of everything ``` -### other commands - -```bash -elm-spa add # add a new page to the application -elm-spa build # production build -elm-spa watch # runs build as you code (without the server) -``` - -**Formatting**: +### Formatting ```bash treefmt  # formats everything ``` -## learn more - -You can learn more at [elm-spa.dev](https://elm-spa.dev) - ## TODO diff --git a/bun.lock b/bun.lock new file mode 100644 index 0000000..946bdb8 --- /dev/null +++ b/bun.lock @@ -0,0 +1,500 @@ +{ + "lockfileVersion": 1, + "configVersion": 1, + "workspaces": { + "": { + "name": "website", + "dependencies": { + "elm-tailwind-modules": "^0.5.0", + "postcss": "^8.4.0", + "tailwindcss": "^3.4.0", + }, + "devDependencies": { + "@types/bun": "latest", + "elm-land": "^0.20.1", + }, + "peerDependencies": { + "typescript": "^5", + }, + }, + }, + "packages": { + "@alloc/quick-lru": ["@alloc/quick-lru@5.2.0", "", {}, "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw=="], + + "@elm_binaries/darwin_arm64": ["@elm_binaries/darwin_arm64@0.19.1-0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-mjbsH7BNHEAmoE2SCJFcfk5fIHwFIpxtSgnEAqMsVLpBUFoEtAeX+LQ+N0vSFJB3WAh73+QYx/xSluxxLcL6dA=="], + + "@elm_binaries/darwin_x64": ["@elm_binaries/darwin_x64@0.19.1-0", "", { "os": "darwin", "cpu": "x64" }, "sha512-QGUtrZTPBzaxgi9al6nr+9313wrnUVHuijzUK39UsPS+pa+n6CmWyV/69sHZeX9qy6UfeugE0PzF3qcUiy2GDQ=="], + + "@elm_binaries/linux_x64": ["@elm_binaries/linux_x64@0.19.1-0", "", { "os": "linux", "cpu": "x64" }, "sha512-T1ZrWVhg2kKAsi8caOd3vp/1A3e21VuCpSG63x8rDie50fHbCytTway9B8WHEdnBFv4mYWiA68dzGxYCiFmU2w=="], + + "@elm_binaries/win32_x64": ["@elm_binaries/win32_x64@0.19.1-0", "", { "os": "win32", "cpu": "x64" }, "sha512-yDleiXqSE9EcqKtd9SkC/4RIW8I71YsXzMPL79ub2bBPHjWTcoyyeBbYjoOB9SxSlArJ74HaoBApzT6hY7Zobg=="], + + "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.20.2", "", { "os": "aix", "cpu": "ppc64" }, "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g=="], + + "@esbuild/android-arm": ["@esbuild/android-arm@0.20.2", "", { "os": "android", "cpu": "arm" }, "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w=="], + + "@esbuild/android-arm64": ["@esbuild/android-arm64@0.20.2", "", { "os": "android", "cpu": "arm64" }, "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg=="], + + "@esbuild/android-x64": ["@esbuild/android-x64@0.20.2", "", { "os": "android", "cpu": "x64" }, "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg=="], + + "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.20.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA=="], + + "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.20.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA=="], + + "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.20.2", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw=="], + + "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.20.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw=="], + + "@esbuild/linux-arm": ["@esbuild/linux-arm@0.20.2", "", { "os": "linux", "cpu": "arm" }, "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg=="], + + "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.20.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A=="], + + "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.20.2", "", { "os": "linux", "cpu": "ia32" }, "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig=="], + + "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.20.2", "", { "os": "linux", "cpu": "none" }, "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ=="], + + "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.20.2", "", { "os": "linux", "cpu": "none" }, "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA=="], + + "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.20.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg=="], + + "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.20.2", "", { "os": "linux", "cpu": "none" }, "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg=="], + + "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.20.2", "", { "os": "linux", "cpu": "s390x" }, "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ=="], + + "@esbuild/linux-x64": ["@esbuild/linux-x64@0.20.2", "", { "os": "linux", "cpu": "x64" }, "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw=="], + + "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.20.2", "", { "os": "none", "cpu": "x64" }, "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ=="], + + "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.20.2", "", { "os": "openbsd", "cpu": "x64" }, "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ=="], + + "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.20.2", "", { "os": "sunos", "cpu": "x64" }, "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w=="], + + "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.20.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ=="], + + "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.20.2", "", { "os": "win32", "cpu": "ia32" }, "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ=="], + + "@esbuild/win32-x64": ["@esbuild/win32-x64@0.20.2", "", { "os": "win32", "cpu": "x64" }, "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ=="], + + "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="], + + "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="], + + "@jridgewell/source-map": ["@jridgewell/source-map@0.3.11", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25" } }, "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA=="], + + "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="], + + "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], + + "@lydell/elm": ["@lydell/elm@0.19.1-14", "", { "optionalDependencies": { "@lydell/elm_darwin_arm64": "0.19.1-3", "@lydell/elm_darwin_x64": "0.19.1-2", "@lydell/elm_linux_arm": "0.19.1-0", "@lydell/elm_linux_arm64": "0.19.1-4", "@lydell/elm_linux_x64": "0.19.1-1", "@lydell/elm_win32_x64": "0.19.1-1" }, "bin": { "elm": "bin/elm" } }, "sha512-otpGlYiNRvL7F9k6MJOTcuyIgHr+XWy/1NtHpGUgQi8lHrnuyCjwKFPPiimKpr3bcZTwpD4nebHuYR0bmPIKuA=="], + + "@lydell/elm_darwin_arm64": ["@lydell/elm_darwin_arm64@0.19.1-3", "", { "os": "darwin", "cpu": "arm64" }, "sha512-RuKTz5ck+RBx4urj1EL/r0xWZZqBMPEXzNBQTEBCAMWLSi4Ck3TVz5pkhBaK+cRZXI+cCgytm/1bIttbp2fFIg=="], + + "@lydell/elm_darwin_x64": ["@lydell/elm_darwin_x64@0.19.1-2", "", { "os": "darwin", "cpu": "x64" }, "sha512-MXfQwxdQfmuQ22iDCFlcXu5YTA0w6/ASzbxmWc+8DkgUkHTynjViGBVkQljAbYe4ZWgrYGWinZQQyhVnp/5oZw=="], + + "@lydell/elm_linux_arm": ["@lydell/elm_linux_arm@0.19.1-0", "", { "os": "linux", "cpu": "arm" }, "sha512-crKrLzuT6jn4OOS7PWKZGYFw6vHwPu3iNP7lg8rFkOog/HxlkRwX4S695aILBG8SGTLhEdfP9tg28SQ7vR4Lpg=="], + + "@lydell/elm_linux_arm64": ["@lydell/elm_linux_arm64@0.19.1-4", "", { "os": "linux", "cpu": "arm64" }, "sha512-JuUkkVBtJjUajtTriQFFANHDmwA14NhqNqgIcq5LCJ6vUQv5/LVd6NUOkl/Rdq7Ju/VN/XwBD1/vm7MGIMOTqA=="], + + "@lydell/elm_linux_x64": ["@lydell/elm_linux_x64@0.19.1-1", "", { "os": "linux", "cpu": "x64" }, "sha512-1Y8UAb+GfUqlSjUTX9CaaZhJqvhVcfNbYC0N9AEutlXf1CzFMvF4VsDeZdxzhNI4allPRWBD1IqtdlLhBTFacA=="], + + "@lydell/elm_win32_x64": ["@lydell/elm_win32_x64@0.19.1-1", "", { "os": "win32", "cpu": "x64" }, "sha512-3LMiJ+uUxDFLNnCd6HBmvVWSjSWjs/Z9dMXZWCMOcw3vrW9iOkRrsNGNxohRXun2YRd8wXOX8/DwVn8i2SJ3KA=="], + + "@nodelib/fs.scandir": ["@nodelib/fs.scandir@2.1.5", "", { "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="], + + "@nodelib/fs.stat": ["@nodelib/fs.stat@2.0.5", "", {}, "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="], + + "@nodelib/fs.walk": ["@nodelib/fs.walk@1.2.8", "", { "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="], + + "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.60.0", "", { "os": "android", "cpu": "arm" }, "sha512-WOhNW9K8bR3kf4zLxbfg6Pxu2ybOUbB2AjMDHSQx86LIF4rH4Ft7vmMwNt0loO0eonglSNy4cpD3MKXXKQu0/A=="], + + "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.60.0", "", { "os": "android", "cpu": "arm64" }, "sha512-u6JHLll5QKRvjciE78bQXDmqRqNs5M/3GVqZeMwvmjaNODJih/WIrJlFVEihvV0MiYFmd+ZyPr9wxOVbPAG2Iw=="], + + "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.60.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-qEF7CsKKzSRc20Ciu2Zw1wRrBz4g56F7r/vRwY430UPp/nt1x21Q/fpJ9N5l47WWvJlkNCPJz3QRVw008fi7yA=="], + + "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.60.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-WADYozJ4QCnXCH4wPB+3FuGmDPoFseVCUrANmA5LWwGmC6FL14BWC7pcq+FstOZv3baGX65tZ378uT6WG8ynTw=="], + + "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.60.0", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-6b8wGHJlDrGeSE3aH5mGNHBjA0TTkxdoNHik5EkvPHCt351XnigA4pS7Wsj/Eo9Y8RBU6f35cjN9SYmCFBtzxw=="], + + "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.60.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-h25Ga0t4jaylMB8M/JKAyrvvfxGRjnPQIR8lnCayyzEjEOx2EJIlIiMbhpWxDRKGKF8jbNH01NnN663dH638mA=="], + + "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.60.0", "", { "os": "linux", "cpu": "arm" }, "sha512-RzeBwv0B3qtVBWtcuABtSuCzToo2IEAIQrcyB/b2zMvBWVbjo8bZDjACUpnaafaxhTw2W+imQbP2BD1usasK4g=="], + + "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.60.0", "", { "os": "linux", "cpu": "arm" }, "sha512-Sf7zusNI2CIU1HLzuu9Tc5YGAHEZs5Lu7N1ssJG4Tkw6e0MEsN7NdjUDDfGNHy2IU+ENyWT+L2obgWiguWibWQ=="], + + "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.60.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-DX2x7CMcrJzsE91q7/O02IJQ5/aLkVtYFryqCjduJhUfGKG6yJV8hxaw8pZa93lLEpPTP/ohdN4wFz7yp/ry9A=="], + + "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.60.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-09EL+yFVbJZlhcQfShpswwRZ0Rg+z/CsSELFCnPt3iK+iqwGsI4zht3secj5vLEs957QvFFXnzAT0FFPIxSrkQ=="], + + "@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.60.0", "", { "os": "linux", "cpu": "none" }, "sha512-i9IcCMPr3EXm8EQg5jnja0Zyc1iFxJjZWlb4wr7U2Wx/GrddOuEafxRdMPRYVaXjgbhvqalp6np07hN1w9kAKw=="], + + "@rollup/rollup-linux-loong64-musl": ["@rollup/rollup-linux-loong64-musl@4.60.0", "", { "os": "linux", "cpu": "none" }, "sha512-DGzdJK9kyJ+B78MCkWeGnpXJ91tK/iKA6HwHxF4TAlPIY7GXEvMe8hBFRgdrR9Ly4qebR/7gfUs9y2IoaVEyog=="], + + "@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.60.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-RwpnLsqC8qbS8z1H1AxBA1H6qknR4YpPR9w2XX0vo2Sz10miu57PkNcnHVaZkbqyw/kUWfKMI73jhmfi9BRMUQ=="], + + "@rollup/rollup-linux-ppc64-musl": ["@rollup/rollup-linux-ppc64-musl@4.60.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-Z8pPf54Ly3aqtdWC3G4rFigZgNvd+qJlOE52fmko3KST9SoGfAdSRCwyoyG05q1HrrAblLbk1/PSIV+80/pxLg=="], + + "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.60.0", "", { "os": "linux", "cpu": "none" }, "sha512-3a3qQustp3COCGvnP4SvrMHnPQ9d1vzCakQVRTliaz8cIp/wULGjiGpbcqrkv0WrHTEp8bQD/B3HBjzujVWLOA=="], + + "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.60.0", "", { "os": "linux", "cpu": "none" }, "sha512-pjZDsVH/1VsghMJ2/kAaxt6dL0psT6ZexQVrijczOf+PeP2BUqTHYejk3l6TlPRydggINOeNRhvpLa0AYpCWSQ=="], + + "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.60.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-3ObQs0BhvPgiUVZrN7gqCSvmFuMWvWvsjG5ayJ3Lraqv+2KhOsp+pUbigqbeWqueGIsnn+09HBw27rJ+gYK4VQ=="], + + "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.60.0", "", { "os": "linux", "cpu": "x64" }, "sha512-EtylprDtQPdS5rXvAayrNDYoJhIz1/vzN2fEubo3yLE7tfAw+948dO0g4M0vkTVFhKojnF+n6C8bDNe+gDRdTg=="], + + "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.60.0", "", { "os": "linux", "cpu": "x64" }, "sha512-k09oiRCi/bHU9UVFqD17r3eJR9bn03TyKraCrlz5ULFJGdJGi7VOmm9jl44vOJvRJ6P7WuBi/s2A97LxxHGIdw=="], + + "@rollup/rollup-openbsd-x64": ["@rollup/rollup-openbsd-x64@4.60.0", "", { "os": "openbsd", "cpu": "x64" }, "sha512-1o/0/pIhozoSaDJoDcec+IVLbnRtQmHwPV730+AOD29lHEEo4F5BEUB24H0OBdhbBBDwIOSuf7vgg0Ywxdfiiw=="], + + "@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.60.0", "", { "os": "none", "cpu": "arm64" }, "sha512-pESDkos/PDzYwtyzB5p/UoNU/8fJo68vcXM9ZW2V0kjYayj1KaaUfi1NmTUTUpMn4UhU4gTuK8gIaFO4UGuMbA=="], + + "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.60.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-hj1wFStD7B1YBeYmvY+lWXZ7ey73YGPcViMShYikqKT1GtstIKQAtfUI6yrzPjAy/O7pO0VLXGmUVWXQMaYgTQ=="], + + "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.60.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-SyaIPFoxmUPlNDq5EHkTbiKzmSEmq/gOYFI/3HHJ8iS/v1mbugVa7dXUzcJGQfoytp9DJFLhHH4U3/eTy2Bq4w=="], + + "@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.60.0", "", { "os": "win32", "cpu": "x64" }, "sha512-RdcryEfzZr+lAr5kRm2ucN9aVlCCa2QNq4hXelZxb8GG0NJSazq44Z3PCCc8wISRuCVnGs0lQJVX5Vp6fKA+IA=="], + + "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.60.0", "", { "os": "win32", "cpu": "x64" }, "sha512-PrsWNQ8BuE00O3Xsx3ALh2Df8fAj9+cvvX9AIA6o4KpATR98c9mud4XtDWVvsEuyia5U4tVSTKygawyJkjm60w=="], + + "@types/bun": ["@types/bun@1.3.11", "", { "dependencies": { "bun-types": "1.3.11" } }, "sha512-5vPne5QvtpjGpsGYXiFyycfpDF2ECyPcTSsFBMa0fraoxiQyMJ3SmuQIGhzPg2WJuWxVBoxWJ2kClYTcw/4fAg=="], + + "@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="], + + "@types/node": ["@types/node@25.5.0", "", { "dependencies": { "undici-types": "~7.18.0" } }, "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw=="], + + "acorn": ["acorn@8.16.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw=="], + + "ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + + "any-promise": ["any-promise@1.3.0", "", {}, "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A=="], + + "anymatch": ["anymatch@3.1.3", "", { "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw=="], + + "arg": ["arg@5.0.2", "", {}, "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="], + + "array-buffer-byte-length": ["array-buffer-byte-length@1.0.2", "", { "dependencies": { "call-bound": "^1.0.3", "is-array-buffer": "^3.0.5" } }, "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw=="], + + "at-least-node": ["at-least-node@1.0.0", "", {}, "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg=="], + + "available-typed-arrays": ["available-typed-arrays@1.0.7", "", { "dependencies": { "possible-typed-array-names": "^1.0.0" } }, "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ=="], + + "binary-extensions": ["binary-extensions@2.3.0", "", {}, "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw=="], + + "braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="], + + "buffer-from": ["buffer-from@1.1.2", "", {}, "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="], + + "bun-types": ["bun-types@1.3.11", "", { "dependencies": { "@types/node": "*" } }, "sha512-1KGPpoxQWl9f6wcZh57LvrPIInQMn2TQ7jsgxqpRzg+l0QPOFvJVH7HmvHo/AiPgwXy+/Thf6Ov3EdVn1vOabg=="], + + "call-bind": ["call-bind@1.0.8", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", "get-intrinsic": "^1.2.4", "set-function-length": "^1.2.2" } }, "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww=="], + + "call-bind-apply-helpers": ["call-bind-apply-helpers@1.0.2", "", { "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" } }, "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ=="], + + "call-bound": ["call-bound@1.0.4", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "get-intrinsic": "^1.3.0" } }, "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg=="], + + "camelcase-css": ["camelcase-css@2.0.1", "", {}, "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA=="], + + "chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + + "chokidar": ["chokidar@3.5.3", "", { "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" }, "optionalDependencies": { "fsevents": "~2.3.2" } }, "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw=="], + + "color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="], + + "color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], + + "commander": ["commander@7.2.0", "", {}, "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw=="], + + "cross-spawn": ["cross-spawn@7.0.3", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w=="], + + "css-what": ["css-what@5.1.0", "", {}, "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw=="], + + "cssesc": ["cssesc@3.0.0", "", { "bin": { "cssesc": "bin/cssesc" } }, "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="], + + "deep-equal": ["deep-equal@2.2.3", "", { "dependencies": { "array-buffer-byte-length": "^1.0.0", "call-bind": "^1.0.5", "es-get-iterator": "^1.1.3", "get-intrinsic": "^1.2.2", "is-arguments": "^1.1.1", "is-array-buffer": "^3.0.2", "is-date-object": "^1.0.5", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", "isarray": "^2.0.5", "object-is": "^1.1.5", "object-keys": "^1.1.1", "object.assign": "^4.1.4", "regexp.prototype.flags": "^1.5.1", "side-channel": "^1.0.4", "which-boxed-primitive": "^1.0.2", "which-collection": "^1.0.1", "which-typed-array": "^1.1.13" } }, "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA=="], + + "define-data-property": ["define-data-property@1.1.4", "", { "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", "gopd": "^1.0.1" } }, "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A=="], + + "define-properties": ["define-properties@1.2.1", "", { "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" } }, "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg=="], + + "didyoumean": ["didyoumean@1.2.2", "", {}, "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw=="], + + "dlv": ["dlv@1.1.3", "", {}, "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="], + + "dunder-proto": ["dunder-proto@1.0.1", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="], + + "elm": ["elm@0.19.1-6", "", { "optionalDependencies": { "@elm_binaries/darwin_arm64": "0.19.1-0", "@elm_binaries/darwin_x64": "0.19.1-0", "@elm_binaries/linux_x64": "0.19.1-0", "@elm_binaries/win32_x64": "0.19.1-0" }, "bin": { "elm": "bin/elm" } }, "sha512-mKYyierHICPdMx/vhiIacdPmTPnh889gjHOZ75ZAoCxo3lZmSWbGP8HMw78wyctJH0HwvTmeKhlYSWboQNYPeQ=="], + + "elm-land": ["elm-land@0.20.1", "", { "dependencies": { "@lydell/elm": "0.19.1-14", "chokidar": "3.5.3", "terser": "5.15.1", "typescript": "4.9.3", "vite": "5.2.8", "vite-plugin-elm-watch": "1.3.3" }, "bin": { "elm-land": "src/index.js" } }, "sha512-AY8BxYNT7mblaIO9SS2YQPdskZdMsLL6fqjAA5bORdkGIRDkMeaw+rXgiVSHUM2+TK0k/ld0TdQEAd24Moi5nw=="], + + "elm-tailwind-modules": ["elm-tailwind-modules@0.5.0", "", { "dependencies": { "chalk": "^4.1.1", "color-name": "^1.1.4", "commander": "^7.2.0", "css-what": "^5.0.0", "deep-equal": "^2.0.3", "fs-extra": "^9.1.0", "lodash": "^4.17.21", "rollup": "^2.45.2", "tslib": "^2.2.0" }, "peerDependencies": { "postcss": "^8.2.4", "tailwindcss": "^2.0.2 || ^3.1.6" }, "bin": { "elm-tailwind-modules": "dist/cli.js" } }, "sha512-Ad03E6lZwB2Fa+OoLTSzlRKOIzO+T5jTgTOHl53WREmNZPxcaJ+1acwdM/7RJrTkTfvoXi241pdfzzOBQX5r2A=="], + + "es-define-property": ["es-define-property@1.0.1", "", {}, "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="], + + "es-errors": ["es-errors@1.3.0", "", {}, "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="], + + "es-get-iterator": ["es-get-iterator@1.1.3", "", { "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.3", "has-symbols": "^1.0.3", "is-arguments": "^1.1.1", "is-map": "^2.0.2", "is-set": "^2.0.2", "is-string": "^1.0.7", "isarray": "^2.0.5", "stop-iteration-iterator": "^1.0.0" } }, "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw=="], + + "es-object-atoms": ["es-object-atoms@1.1.1", "", { "dependencies": { "es-errors": "^1.3.0" } }, "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA=="], + + "esbuild": ["esbuild@0.20.2", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.20.2", "@esbuild/android-arm": "0.20.2", "@esbuild/android-arm64": "0.20.2", "@esbuild/android-x64": "0.20.2", "@esbuild/darwin-arm64": "0.20.2", "@esbuild/darwin-x64": "0.20.2", "@esbuild/freebsd-arm64": "0.20.2", "@esbuild/freebsd-x64": "0.20.2", "@esbuild/linux-arm": "0.20.2", "@esbuild/linux-arm64": "0.20.2", "@esbuild/linux-ia32": "0.20.2", "@esbuild/linux-loong64": "0.20.2", "@esbuild/linux-mips64el": "0.20.2", "@esbuild/linux-ppc64": "0.20.2", "@esbuild/linux-riscv64": "0.20.2", "@esbuild/linux-s390x": "0.20.2", "@esbuild/linux-x64": "0.20.2", "@esbuild/netbsd-x64": "0.20.2", "@esbuild/openbsd-x64": "0.20.2", "@esbuild/sunos-x64": "0.20.2", "@esbuild/win32-arm64": "0.20.2", "@esbuild/win32-ia32": "0.20.2", "@esbuild/win32-x64": "0.20.2" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g=="], + + "fast-glob": ["fast-glob@3.3.3", "", { "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.8" } }, "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg=="], + + "fastq": ["fastq@1.20.1", "", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw=="], + + "fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="], + + "fill-range": ["fill-range@7.1.1", "", { "dependencies": { "to-regex-range": "^5.0.1" } }, "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="], + + "for-each": ["for-each@0.3.5", "", { "dependencies": { "is-callable": "^1.2.7" } }, "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg=="], + + "fs-extra": ["fs-extra@9.1.0", "", { "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ=="], + + "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], + + "function-bind": ["function-bind@1.1.2", "", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="], + + "functions-have-names": ["functions-have-names@1.2.3", "", {}, "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ=="], + + "get-intrinsic": ["get-intrinsic@1.3.0", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.1.0" } }, "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="], + + "get-proto": ["get-proto@1.0.1", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" } }, "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="], + + "glob-parent": ["glob-parent@6.0.2", "", { "dependencies": { "is-glob": "^4.0.3" } }, "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="], + + "gopd": ["gopd@1.2.0", "", {}, "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="], + + "graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="], + + "has-bigints": ["has-bigints@1.1.0", "", {}, "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg=="], + + "has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], + + "has-property-descriptors": ["has-property-descriptors@1.0.2", "", { "dependencies": { "es-define-property": "^1.0.0" } }, "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg=="], + + "has-symbols": ["has-symbols@1.1.0", "", {}, "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="], + + "has-tostringtag": ["has-tostringtag@1.0.2", "", { "dependencies": { "has-symbols": "^1.0.3" } }, "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw=="], + + "hasown": ["hasown@2.0.2", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="], + + "internal-slot": ["internal-slot@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "hasown": "^2.0.2", "side-channel": "^1.1.0" } }, "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw=="], + + "is-arguments": ["is-arguments@1.2.0", "", { "dependencies": { "call-bound": "^1.0.2", "has-tostringtag": "^1.0.2" } }, "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA=="], + + "is-array-buffer": ["is-array-buffer@3.0.5", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "get-intrinsic": "^1.2.6" } }, "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A=="], + + "is-bigint": ["is-bigint@1.1.0", "", { "dependencies": { "has-bigints": "^1.0.2" } }, "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ=="], + + "is-binary-path": ["is-binary-path@2.1.0", "", { "dependencies": { "binary-extensions": "^2.0.0" } }, "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw=="], + + "is-boolean-object": ["is-boolean-object@1.2.2", "", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A=="], + + "is-callable": ["is-callable@1.2.7", "", {}, "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA=="], + + "is-core-module": ["is-core-module@2.16.1", "", { "dependencies": { "hasown": "^2.0.2" } }, "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w=="], + + "is-date-object": ["is-date-object@1.1.0", "", { "dependencies": { "call-bound": "^1.0.2", "has-tostringtag": "^1.0.2" } }, "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg=="], + + "is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="], + + "is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="], + + "is-map": ["is-map@2.0.3", "", {}, "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw=="], + + "is-number": ["is-number@7.0.0", "", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="], + + "is-number-object": ["is-number-object@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw=="], + + "is-regex": ["is-regex@1.2.1", "", { "dependencies": { "call-bound": "^1.0.2", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g=="], + + "is-set": ["is-set@2.0.3", "", {}, "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg=="], + + "is-shared-array-buffer": ["is-shared-array-buffer@1.0.4", "", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A=="], + + "is-string": ["is-string@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA=="], + + "is-symbol": ["is-symbol@1.1.1", "", { "dependencies": { "call-bound": "^1.0.2", "has-symbols": "^1.1.0", "safe-regex-test": "^1.1.0" } }, "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w=="], + + "is-weakmap": ["is-weakmap@2.0.2", "", {}, "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w=="], + + "is-weakset": ["is-weakset@2.0.4", "", { "dependencies": { "call-bound": "^1.0.3", "get-intrinsic": "^1.2.6" } }, "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ=="], + + "isarray": ["isarray@2.0.5", "", {}, "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="], + + "isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], + + "jiti": ["jiti@1.21.7", "", { "bin": { "jiti": "bin/jiti.js" } }, "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A=="], + + "jsonfile": ["jsonfile@6.2.0", "", { "dependencies": { "universalify": "^2.0.0" }, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg=="], + + "launch-editor": ["launch-editor@2.6.1", "", { "dependencies": { "picocolors": "^1.0.0", "shell-quote": "^1.8.1" } }, "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw=="], + + "lilconfig": ["lilconfig@3.1.3", "", {}, "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw=="], + + "lines-and-columns": ["lines-and-columns@1.2.4", "", {}, "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="], + + "lodash": ["lodash@4.17.23", "", {}, "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w=="], + + "math-intrinsics": ["math-intrinsics@1.1.0", "", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="], + + "merge2": ["merge2@1.4.1", "", {}, "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="], + + "micromatch": ["micromatch@4.0.8", "", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="], + + "mz": ["mz@2.7.0", "", { "dependencies": { "any-promise": "^1.0.0", "object-assign": "^4.0.1", "thenify-all": "^1.0.0" } }, "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q=="], + + "nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="], + + "normalize-path": ["normalize-path@3.0.0", "", {}, "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="], + + "object-assign": ["object-assign@4.1.1", "", {}, "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="], + + "object-hash": ["object-hash@3.0.0", "", {}, "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw=="], + + "object-inspect": ["object-inspect@1.13.4", "", {}, "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew=="], + + "object-is": ["object-is@1.1.6", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1" } }, "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q=="], + + "object-keys": ["object-keys@1.1.1", "", {}, "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="], + + "object.assign": ["object.assign@4.1.7", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0", "has-symbols": "^1.1.0", "object-keys": "^1.1.1" } }, "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw=="], + + "path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="], + + "path-parse": ["path-parse@1.0.7", "", {}, "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="], + + "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], + + "picomatch": ["picomatch@2.3.2", "", {}, "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA=="], + + "pify": ["pify@2.3.0", "", {}, "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog=="], + + "pirates": ["pirates@4.0.7", "", {}, "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA=="], + + "possible-typed-array-names": ["possible-typed-array-names@1.1.0", "", {}, "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg=="], + + "postcss": ["postcss@8.5.8", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg=="], + + "postcss-import": ["postcss-import@15.1.0", "", { "dependencies": { "postcss-value-parser": "^4.0.0", "read-cache": "^1.0.0", "resolve": "^1.1.7" }, "peerDependencies": { "postcss": "^8.0.0" } }, "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew=="], + + "postcss-js": ["postcss-js@4.1.0", "", { "dependencies": { "camelcase-css": "^2.0.1" }, "peerDependencies": { "postcss": "^8.4.21" } }, "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw=="], + + "postcss-load-config": ["postcss-load-config@6.0.1", "", { "dependencies": { "lilconfig": "^3.1.1" }, "peerDependencies": { "jiti": ">=1.21.0", "postcss": ">=8.0.9", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["jiti", "postcss", "tsx", "yaml"] }, "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g=="], + + "postcss-nested": ["postcss-nested@6.2.0", "", { "dependencies": { "postcss-selector-parser": "^6.1.1" }, "peerDependencies": { "postcss": "^8.2.14" } }, "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ=="], + + "postcss-selector-parser": ["postcss-selector-parser@6.1.2", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg=="], + + "postcss-value-parser": ["postcss-value-parser@4.2.0", "", {}, "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="], + + "queue-microtask": ["queue-microtask@1.2.3", "", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="], + + "read-cache": ["read-cache@1.0.0", "", { "dependencies": { "pify": "^2.3.0" } }, "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA=="], + + "readdirp": ["readdirp@3.6.0", "", { "dependencies": { "picomatch": "^2.2.1" } }, "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA=="], + + "regexp.prototype.flags": ["regexp.prototype.flags@1.5.4", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-errors": "^1.3.0", "get-proto": "^1.0.1", "gopd": "^1.2.0", "set-function-name": "^2.0.2" } }, "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA=="], + + "resolve": ["resolve@1.22.11", "", { "dependencies": { "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ=="], + + "reusify": ["reusify@1.1.0", "", {}, "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw=="], + + "rollup": ["rollup@2.80.0", "", { "optionalDependencies": { "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-cIFJOD1DESzpjOBl763Kp1AH7UE/0fcdHe6rZXUdQ9c50uvgigvW97u3IcSeBwOkgqL/PXPBktBCh0KEu5L8XQ=="], + + "run-parallel": ["run-parallel@1.2.0", "", { "dependencies": { "queue-microtask": "^1.2.2" } }, "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="], + + "safe-regex-test": ["safe-regex-test@1.1.0", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-regex": "^1.2.1" } }, "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw=="], + + "set-function-length": ["set-function-length@1.2.2", "", { "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.2" } }, "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg=="], + + "set-function-name": ["set-function-name@2.0.2", "", { "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", "has-property-descriptors": "^1.0.2" } }, "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ=="], + + "shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="], + + "shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="], + + "shell-quote": ["shell-quote@1.8.3", "", {}, "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw=="], + + "side-channel": ["side-channel@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3", "side-channel-list": "^1.0.0", "side-channel-map": "^1.0.1", "side-channel-weakmap": "^1.0.2" } }, "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw=="], + + "side-channel-list": ["side-channel-list@1.0.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3" } }, "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA=="], + + "side-channel-map": ["side-channel-map@1.0.1", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.5", "object-inspect": "^1.13.3" } }, "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA=="], + + "side-channel-weakmap": ["side-channel-weakmap@1.0.2", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.5", "object-inspect": "^1.13.3", "side-channel-map": "^1.0.1" } }, "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A=="], + + "source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], + + "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], + + "source-map-support": ["source-map-support@0.5.21", "", { "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w=="], + + "stop-iteration-iterator": ["stop-iteration-iterator@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "internal-slot": "^1.1.0" } }, "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ=="], + + "sucrase": ["sucrase@3.35.1", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", "commander": "^4.0.0", "lines-and-columns": "^1.1.6", "mz": "^2.7.0", "pirates": "^4.0.1", "tinyglobby": "^0.2.11", "ts-interface-checker": "^0.1.9" }, "bin": { "sucrase": "bin/sucrase", "sucrase-node": "bin/sucrase-node" } }, "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw=="], + + "supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], + + "supports-preserve-symlinks-flag": ["supports-preserve-symlinks-flag@1.0.0", "", {}, "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="], + + "tailwindcss": ["tailwindcss@3.4.19", "", { "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", "chokidar": "^3.6.0", "didyoumean": "^1.2.2", "dlv": "^1.1.3", "fast-glob": "^3.3.2", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", "jiti": "^1.21.7", "lilconfig": "^3.1.3", "micromatch": "^4.0.8", "normalize-path": "^3.0.0", "object-hash": "^3.0.0", "picocolors": "^1.1.1", "postcss": "^8.4.47", "postcss-import": "^15.1.0", "postcss-js": "^4.0.1", "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0", "postcss-nested": "^6.2.0", "postcss-selector-parser": "^6.1.2", "resolve": "^1.22.8", "sucrase": "^3.35.0" }, "bin": { "tailwind": "lib/cli.js", "tailwindcss": "lib/cli.js" } }, "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ=="], + + "terser": ["terser@5.15.1", "", { "dependencies": { "@jridgewell/source-map": "^0.3.2", "acorn": "^8.5.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, "bin": { "terser": "bin/terser" } }, "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw=="], + + "thenify": ["thenify@3.3.1", "", { "dependencies": { "any-promise": "^1.0.0" } }, "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw=="], + + "thenify-all": ["thenify-all@1.6.0", "", { "dependencies": { "thenify": ">= 3.1.0 < 4" } }, "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA=="], + + "tiny-decoders": ["tiny-decoders@7.0.1", "", {}, "sha512-P1LaHTLASl/lCrdtwgAAVwxt4bEAPmxpf9HMQrlCkAseaT8oH8oxm8ndy4nx5rLTcL5U/Qxp1a+FDoQfS/ZgQQ=="], + + "tinyglobby": ["tinyglobby@0.2.15", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.3" } }, "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ=="], + + "to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="], + + "ts-interface-checker": ["ts-interface-checker@0.1.13", "", {}, "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA=="], + + "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], + + "undici-types": ["undici-types@7.18.2", "", {}, "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w=="], + + "universalify": ["universalify@2.0.1", "", {}, "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw=="], + + "util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="], + + "vite": ["vite@5.2.8", "", { "dependencies": { "esbuild": "^0.20.1", "postcss": "^8.4.38", "rollup": "^4.13.0" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || >=20.0.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "stylus": "*", "sugarss": "*", "terser": "^5.4.0" }, "optionalPeers": ["@types/node", "less", "lightningcss", "sass", "stylus", "sugarss", "terser"], "bin": { "vite": "bin/vite.js" } }, "sha512-OyZR+c1CE8yeHw5V5t59aXsUPPVTHMDjEZz8MgguLL/Q7NblxhZUlTu9xSPqlsUO/y+X7dlU05jdhvyycD55DA=="], + + "vite-plugin-elm-watch": ["vite-plugin-elm-watch@1.3.3", "", { "dependencies": { "cross-spawn": "7.0.3", "elm": "0.19.1-6", "launch-editor": "2.6.1", "terser": "5.26.0", "tiny-decoders": "7.0.1" } }, "sha512-rR78gmeYp08E4CvtpnZuumsmNXaG/XOJ/xtOVfEG3TOJqDChXy1DzE1pnPsERohbELkov7ZZPHRLGV1z2iyxKg=="], + + "which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], + + "which-boxed-primitive": ["which-boxed-primitive@1.1.1", "", { "dependencies": { "is-bigint": "^1.1.0", "is-boolean-object": "^1.2.1", "is-number-object": "^1.1.1", "is-string": "^1.1.1", "is-symbol": "^1.1.1" } }, "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA=="], + + "which-collection": ["which-collection@1.0.2", "", { "dependencies": { "is-map": "^2.0.3", "is-set": "^2.0.3", "is-weakmap": "^2.0.2", "is-weakset": "^2.0.3" } }, "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw=="], + + "which-typed-array": ["which-typed-array@1.1.20", "", { "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "call-bound": "^1.0.4", "for-each": "^0.3.5", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2" } }, "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg=="], + + "chokidar/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], + + "elm-land/typescript": ["typescript@4.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA=="], + + "fast-glob/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], + + "sucrase/commander": ["commander@4.1.1", "", {}, "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA=="], + + "tailwindcss/chokidar": ["chokidar@3.6.0", "", { "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" }, "optionalDependencies": { "fsevents": "~2.3.2" } }, "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw=="], + + "terser/commander": ["commander@2.20.3", "", {}, "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="], + + "tinyglobby/picomatch": ["picomatch@4.0.4", "", {}, "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A=="], + + "vite/rollup": ["rollup@4.60.0", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.60.0", "@rollup/rollup-android-arm64": "4.60.0", "@rollup/rollup-darwin-arm64": "4.60.0", "@rollup/rollup-darwin-x64": "4.60.0", "@rollup/rollup-freebsd-arm64": "4.60.0", "@rollup/rollup-freebsd-x64": "4.60.0", "@rollup/rollup-linux-arm-gnueabihf": "4.60.0", "@rollup/rollup-linux-arm-musleabihf": "4.60.0", "@rollup/rollup-linux-arm64-gnu": "4.60.0", "@rollup/rollup-linux-arm64-musl": "4.60.0", "@rollup/rollup-linux-loong64-gnu": "4.60.0", "@rollup/rollup-linux-loong64-musl": "4.60.0", "@rollup/rollup-linux-ppc64-gnu": "4.60.0", "@rollup/rollup-linux-ppc64-musl": "4.60.0", "@rollup/rollup-linux-riscv64-gnu": "4.60.0", "@rollup/rollup-linux-riscv64-musl": "4.60.0", "@rollup/rollup-linux-s390x-gnu": "4.60.0", "@rollup/rollup-linux-x64-gnu": "4.60.0", "@rollup/rollup-linux-x64-musl": "4.60.0", "@rollup/rollup-openbsd-x64": "4.60.0", "@rollup/rollup-openharmony-arm64": "4.60.0", "@rollup/rollup-win32-arm64-msvc": "4.60.0", "@rollup/rollup-win32-ia32-msvc": "4.60.0", "@rollup/rollup-win32-x64-gnu": "4.60.0", "@rollup/rollup-win32-x64-msvc": "4.60.0", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-yqjxruMGBQJ2gG4HtjZtAfXArHomazDHoFwFFmZZl0r7Pdo7qCIXKqKHZc8yeoMgzJJ+pO6pEEHa+V7uzWlrAQ=="], + + "vite-plugin-elm-watch/terser": ["terser@5.26.0", "", { "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, "bin": { "terser": "bin/terser" } }, "sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ=="], + + "tailwindcss/chokidar/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], + + "vite-plugin-elm-watch/terser/commander": ["commander@2.20.3", "", {}, "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="], + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..07b7de9 --- /dev/null +++ b/package.json @@ -0,0 +1,17 @@ +{ + "name": "website", + "type": "module", + "private": true, + "devDependencies": { + "@types/bun": "latest", + "elm-land": "^0.20.1" + }, + "peerDependencies": { + "typescript": "^5" + }, + "dependencies": { + "elm-tailwind-modules": "^0.5.0", + "postcss": "^8.4.0", + "tailwindcss": "^3.4.0" + } +} \ No newline at end of file diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..bce4855 --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,5 @@ +export default { + plugins: { + "@tailwindcss/postcss": {}, + } +} \ No newline at end of file diff --git a/src/View.elm b/src/View.elm new file mode 100644 index 0000000..9f9eeed --- /dev/null +++ b/src/View.elm @@ -0,0 +1,72 @@ +module View exposing + ( View, map + , none, fromString + , toBrowserDocument + ) + +{-| + +@docs View, map +@docs none, fromString +@docs toBrowserDocument + +-} + +import Browser +import Html exposing (Html) +import Route exposing (Route) +import Shared.Model + + +type alias View msg = + { title : String + , body : List (Html msg) + } + + +{-| Used internally by Elm Land to create your application +so it works with Elm's expected `Browser.Document msg` type. +-} +toBrowserDocument : + { shared : Shared.Model.Model + , route : Route () + , view : View msg + } + -> Browser.Document msg +toBrowserDocument { view } = + { title = view.title + , body = view.body + } + + +{-| Used internally by Elm Land to connect your pages together. +-} +map : (msg1 -> msg2) -> View msg1 -> View msg2 +map fn view = + { title = view.title + , body = List.map (Html.map fn) view.body + } + + +{-| Used internally by Elm Land whenever transitioning between +authenticated pages. +-} +none : View msg +none = + { title = "" + , body = [] + } + + +{-| If you customize the `View` module, anytime you run `elm-land add page`, +the generated page will use this when adding your `view` function. + +That way your app will compile after adding new pages, and you can see +the new page working in the web browser! + +-} +fromString : String -> View msg +fromString moduleName = + { title = moduleName + , body = [ Html.text moduleName ] + } From 63411236940bd8ab408cb6d8e7c4b978d0e3aa51 Mon Sep 17 00:00:00 2001 From: Alexander Wood Date: Fri, 27 Mar 2026 18:15:57 +0000 Subject: [PATCH 08/26] build: Add tailwind properly --- README.MD | 2 +- elm.json | 11 ++++++++--- flake.nix | 6 ++++-- src/Pages/Home_.elm | 31 +++++++++++++++++++++++++++++-- src/View.elm | 4 ++-- 5 files changed, 44 insertions(+), 10 deletions(-) diff --git a/README.MD b/README.MD index c93163d..a09363c 100644 --- a/README.MD +++ b/README.MD @@ -9,7 +9,7 @@ It's easiest to use Nix/Devenv to get everything you need. ```bash elm-land server # starts this app at http:/localhost:1234 devenv up # also starts the app, but automatically takes care of everything - +tw # rebuild tailwind definitions ``` ### Formatting diff --git a/elm.json b/elm.json index 5868b5e..bbfd89d 100644 --- a/elm.json +++ b/elm.json @@ -2,7 +2,8 @@ "type": "application", "source-directories": [ "src", - ".elm-land/src" + ".elm-land/src", + "./gen" ], "elm-version": "0.19.1", "dependencies": { @@ -11,11 +12,15 @@ "elm/core": "1.0.5", "elm/html": "1.0.0", "elm/json": "1.1.3", - "elm/url": "1.0.0" + "elm/url": "1.0.0", + "matheus23/elm-tailwind-modules-base": "1.0.0", + "rtfeldman/elm-css": "18.0.0" }, "indirect": { "elm/time": "1.0.0", - "elm/virtual-dom": "1.0.3" + "elm/virtual-dom": "1.0.3", + "robinheghan/murmur3": "1.0.0", + "rtfeldman/elm-hex": "1.0.0" } }, "test-dependencies": { diff --git a/flake.nix b/flake.nix index 917673d..551f757 100644 --- a/flake.nix +++ b/flake.nix @@ -73,8 +73,10 @@ }; }; - processes.spa-server = { - exec = "bunx elm-land server"; + scripts.tw.exec = "bunx elm-tailwind-modules --dir ./gen"; + + processes = { + spa-server.exec = "bunx elm-land server"; }; }; diff --git a/src/Pages/Home_.elm b/src/Pages/Home_.elm index 945a2e3..5e48ca2 100644 --- a/src/Pages/Home_.elm +++ b/src/Pages/Home_.elm @@ -1,11 +1,38 @@ module Pages.Home_ exposing (page) -import Html +import Css +import Css.Global +import Html.Styled as Html +import Html.Styled.Attributes as Attr +import Tailwind.Breakpoints as Breakpoints +import Tailwind.Theme as Tw +import Tailwind.Utilities as Tw import View exposing (View) page : View msg page = { title = "Homepage" - , body = [ Html.text "Hello, world!" ] + , body = + [ Html.a + [ Attr.css + [ Tw.inline_flex + , Tw.items_center + , Tw.justify_center + , Tw.px_5 + , Tw.py_3 + , Tw.border + , Tw.border_color Tw.transparent + , Tw.text_base + , Tw.font_medium + , Tw.rounded_md + , Tw.text_color Tw.white + , Tw.bg_color Tw.indigo_600 + + -- We can use hover styles via elm-css :) + , Css.hover [ Tw.bg_color Tw.indigo_700 ] + ] + ] + [ Html.text "Hello, world!" ] + ] } diff --git a/src/View.elm b/src/View.elm index 9f9eeed..e5fbb7b 100644 --- a/src/View.elm +++ b/src/View.elm @@ -13,7 +13,7 @@ module View exposing -} import Browser -import Html exposing (Html) +import Html.Styled as Html exposing (Html, toUnstyled) import Route exposing (Route) import Shared.Model @@ -35,7 +35,7 @@ toBrowserDocument : -> Browser.Document msg toBrowserDocument { view } = { title = view.title - , body = view.body + , body = List.map toUnstyled view.body } From 6b9e3735e91dd8888a43b246c20f884d9384491e Mon Sep 17 00:00:00 2001 From: Alexander Wood Date: Sun, 10 May 2026 13:04:40 +0100 Subject: [PATCH 09/26] feat: wip learning resources and elm-land init --- .envrc | 18 +- .github/workflows/ci.yml | 36 ++ .github/workflows/deploy.yml | 56 ++ README.MD | 7 +- bun.lock | 85 +++ elm.json | 8 + flake.lock | 935 +------------------------------ flake.nix | 86 +-- package.json | 1 + src/Api.elm | 54 ++ src/Layouts/LearningInfo.elm | 123 ++++ src/LearningResources.elm | 176 ++++++ src/Pages/Home_.elm | 2 - src/Pages/Learning.elm | 84 +++ src/Pages/Learning/Resource_.elm | 68 +++ src/Shared.elm | 91 +++ src/Shared/Model.elm | 24 + src/Shared/Msg.elm | 19 + tests/LearningResourcesTest.elm | 122 ++++ 19 files changed, 1003 insertions(+), 992 deletions(-) create mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/deploy.yml create mode 100644 src/Api.elm create mode 100644 src/Layouts/LearningInfo.elm create mode 100644 src/LearningResources.elm create mode 100644 src/Pages/Learning.elm create mode 100644 src/Pages/Learning/Resource_.elm create mode 100644 src/Shared.elm create mode 100644 src/Shared/Model.elm create mode 100644 src/Shared/Msg.elm create mode 100644 tests/LearningResourcesTest.elm diff --git a/.envrc b/.envrc index 99a025c..07fd338 100644 --- a/.envrc +++ b/.envrc @@ -1,17 +1 @@ -#!/usr/bin/env bash - -if ! has nix_direnv_version || ! nix_direnv_version 3.1.0; then - source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/3.1.0/direnvrc" "sha256-yMJ2OVMzrFaDPn7q8nCBZFRYpL/f0RcHzhmw/i6btJM=" -fi - -export DEVENV_IN_DIRENV_SHELL=true - -watch_file flake.nix -watch_file flake.lock - -mkdir -p "$PWD/.devenv" -DEVENV_ROOT_FILE="$PWD/.devenv/root" -printf %s "$PWD" >"$DEVENV_ROOT_FILE" -if ! use flake . --override-input devenv-root "file+file://$DEVENV_ROOT_FILE" --accept-flake-config; then - echo "devenv could not be built. The devenv environment was not loaded. Make the necessary changes to devenv.nix and hit enter to try again." >&2 -fi +use flake . \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..1b06e32 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,36 @@ +name: CI + +on: + push: + branches: [master] + pull_request: + branches: [master] + +permissions: + contents: read + +jobs: + build: + name: Build & Lint + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - uses: oven-sh/setup-bun@v2 + + - name: Cache Elm packages + uses: actions/cache@v4 + with: + path: ~/.elm + key: elm-${{ runner.os }}-${{ hashFiles('elm.json') }} + restore-keys: elm-${{ runner.os }}- + + - run: bun install --frozen-lockfile + + - name: Build + run: bunx elm-land build + + - name: Check Elm formatting + run: | + bunx elm-format --validate src/ diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..8e129d2 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,56 @@ +name: Deploy + +on: + push: + branches: [master] + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: pages + cancel-in-progress: false + +jobs: + build: + name: Build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: oven-sh/setup-bun@v2 + + - name: Cache Elm packages + uses: actions/cache@v4 + with: + path: ~/.elm + key: elm-${{ runner.os }}-${{ hashFiles('elm.json') }} + restore-keys: elm-${{ runner.os }}- + + - run: bun install --frozen-lockfile + + - name: Build + run: bunx elm-land build + + - name: Copy index.html as 404.html for SPA routing + run: cp dist/index.html dist/404.html + + - uses: actions/configure-pages@v5 + + - uses: actions/upload-pages-artifact@v3 + with: + path: ./dist + + deploy: + name: Deploy to GitHub Pages + needs: build + runs-on: ubuntu-latest + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - id: deployment + uses: actions/deploy-pages@v4 diff --git a/README.MD b/README.MD index a09363c..0b0cc5a 100644 --- a/README.MD +++ b/README.MD @@ -7,11 +7,12 @@ It's easiest to use Nix/Devenv to get everything you need. ## running locally ```bash -elm-land server # starts this app at http:/localhost:1234 -devenv up # also starts the app, but automatically takes care of everything +bunx elm-land server # starts this app at http:/localhost:1234 tw # rebuild tailwind definitions ``` +The site should then be running at http://localhost:1234 + ### Formatting ```bash @@ -29,7 +30,7 @@ treefmt  # formats everything - [ ] `/projects/` - Show information about a various project we have. Should follow a standard format and show github link, contributors (fetch from github?), and other information. - [ ] `/faqs` - Show all the FAQs that you'd see in `ddfaq` -- [X] `/rules` - ~~pretty obvious, rules of the server. we can provide these in a json format if it helps~~ +- [ ] `/rules` - pretty obvious, rules of the server. we can provide these in a json format if it helps - [ ] `/team` or `/staff` - Show a nice list of admins, mods, contributors to projects, etc - [ ] `/moderation/` Once the bot gets moderation features it would be very very cool to have a panel like Dyno or yagpdb have. This probably won't happen for a while. diff --git a/bun.lock b/bun.lock index 946bdb8..fc77e25 100644 --- a/bun.lock +++ b/bun.lock @@ -5,6 +5,7 @@ "": { "name": "website", "dependencies": { + "@tailwindcss/postcss": "^4.3.0", "elm-tailwind-modules": "^0.5.0", "postcss": "^8.4.0", "tailwindcss": "^3.4.0", @@ -77,6 +78,8 @@ "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="], + "@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="], + "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="], "@jridgewell/source-map": ["@jridgewell/source-map@0.3.11", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25" } }, "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA=="], @@ -155,6 +158,36 @@ "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.60.0", "", { "os": "win32", "cpu": "x64" }, "sha512-PrsWNQ8BuE00O3Xsx3ALh2Df8fAj9+cvvX9AIA6o4KpATR98c9mud4XtDWVvsEuyia5U4tVSTKygawyJkjm60w=="], + "@tailwindcss/node": ["@tailwindcss/node@4.3.0", "", { "dependencies": { "@jridgewell/remapping": "^2.3.5", "enhanced-resolve": "^5.21.0", "jiti": "^2.6.1", "lightningcss": "1.32.0", "magic-string": "^0.30.21", "source-map-js": "^1.2.1", "tailwindcss": "4.3.0" } }, "sha512-aFb4gUhFOgdh9AXo4IzBEOzBkkAxm9VigwDJnMIYv3lcfXCJVesNfbEaBl4BNgVRyid92AmdviqwBUBRKSeY3g=="], + + "@tailwindcss/oxide": ["@tailwindcss/oxide@4.3.0", "", { "optionalDependencies": { "@tailwindcss/oxide-android-arm64": "4.3.0", "@tailwindcss/oxide-darwin-arm64": "4.3.0", "@tailwindcss/oxide-darwin-x64": "4.3.0", "@tailwindcss/oxide-freebsd-x64": "4.3.0", "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.0", "@tailwindcss/oxide-linux-arm64-gnu": "4.3.0", "@tailwindcss/oxide-linux-arm64-musl": "4.3.0", "@tailwindcss/oxide-linux-x64-gnu": "4.3.0", "@tailwindcss/oxide-linux-x64-musl": "4.3.0", "@tailwindcss/oxide-wasm32-wasi": "4.3.0", "@tailwindcss/oxide-win32-arm64-msvc": "4.3.0", "@tailwindcss/oxide-win32-x64-msvc": "4.3.0" } }, "sha512-F7HZGBeN9I0/AuuJS5PwcD8xayx5ri5GhjYUDBEVYUkexyA/giwbDNjRVrxSezE3T250OU2K/wp/ltWx3UOefg=="], + + "@tailwindcss/oxide-android-arm64": ["@tailwindcss/oxide-android-arm64@4.3.0", "", { "os": "android", "cpu": "arm64" }, "sha512-TJPiq67tKlLuObP6RkwvVGDoxCMBVtDgKkLfa/uyj7/FyxvQwHS+UOnVrXXgbEsfUaMgiVvC4KbJnRr26ho4Ng=="], + + "@tailwindcss/oxide-darwin-arm64": ["@tailwindcss/oxide-darwin-arm64@4.3.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-oMN/WZRb+SO37BmUElEgeEWuU8E/HXRkiODxJxLe1UTHVXLrdVSgfaJV7pSlhRGMSOiXLuxTIjfsF3wYvz8cgQ=="], + + "@tailwindcss/oxide-darwin-x64": ["@tailwindcss/oxide-darwin-x64@4.3.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-N6CUmu4a6bKVADfw77p+iw6Yd9Q3OBhe0veaDX+QazfuVYlQsHfDgxBrsjQ/IW+zywL8mTrNd0SdJT/zgtvMdA=="], + + "@tailwindcss/oxide-freebsd-x64": ["@tailwindcss/oxide-freebsd-x64@4.3.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-zDL5hBkQdH5C6MpqbK3gQAgP80tsMwSI26vjOzjJtNCMUo0lFgOItzHKBIupOZNQxt3ouPH7RPhvNhiTfCe5CQ=="], + + "@tailwindcss/oxide-linux-arm-gnueabihf": ["@tailwindcss/oxide-linux-arm-gnueabihf@4.3.0", "", { "os": "linux", "cpu": "arm" }, "sha512-R06HdNi7A7OEoMsf6d4tjZ71RCWnZQPHj2mnotSFURjNLdBC+cIgXQ7l81CqeoiQftjf6OOblxXMInMgN2VzMA=="], + + "@tailwindcss/oxide-linux-arm64-gnu": ["@tailwindcss/oxide-linux-arm64-gnu@4.3.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-qTJHELX8jetjhRQHCLilkVLmybpzNQAtaI/gaoVoidn/ufbNDbAo8KlK2J+yPoc8wQxvDxCmh/5lr8nC1+lTbg=="], + + "@tailwindcss/oxide-linux-arm64-musl": ["@tailwindcss/oxide-linux-arm64-musl@4.3.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-Z6sukiQsngnWO+l39X4pPbiWT81IC+PLKF+PHxIlyZbGNb9MODfYlXEVlFvej5BOZInWX01kVyzeLvHsXhfczQ=="], + + "@tailwindcss/oxide-linux-x64-gnu": ["@tailwindcss/oxide-linux-x64-gnu@4.3.0", "", { "os": "linux", "cpu": "x64" }, "sha512-DRNdQRpSGzRGfARVuVkxvM8Q12nh19l4BF/G7zGA1oe+9wcC6saFBHTISrpIcKzhiXtSrlSrluCfvMuledoCTQ=="], + + "@tailwindcss/oxide-linux-x64-musl": ["@tailwindcss/oxide-linux-x64-musl@4.3.0", "", { "os": "linux", "cpu": "x64" }, "sha512-Z0IADbDo8bh6I7h2IQMx601AdXBLfFpEdUotft86evd/8ZPflZe9COPO8Q1vw+pfLWIUo9zN/JGZvwuAJqduqg=="], + + "@tailwindcss/oxide-wasm32-wasi": ["@tailwindcss/oxide-wasm32-wasi@4.3.0", "", { "dependencies": { "@emnapi/core": "^1.10.0", "@emnapi/runtime": "^1.10.0", "@emnapi/wasi-threads": "^1.2.1", "@napi-rs/wasm-runtime": "^1.1.4", "@tybys/wasm-util": "^0.10.1", "tslib": "^2.8.1" }, "cpu": "none" }, "sha512-HNZGOUxEmElksYR7S6sC5jTeNGpobAsy9u7Gu0AskJ8/20FR9GqebUyB+HBcU/ax6BHuiuJi+Oda4B+YX6H1yA=="], + + "@tailwindcss/oxide-win32-arm64-msvc": ["@tailwindcss/oxide-win32-arm64-msvc@4.3.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-Pe+RPVTi1T+qymuuRpcdvwSVZjnll/f7n8gBxMMh3xLTctMDKqpdfGimbMyioqtLhUYZxdJ9wGNhV7MKHvgZsQ=="], + + "@tailwindcss/oxide-win32-x64-msvc": ["@tailwindcss/oxide-win32-x64-msvc@4.3.0", "", { "os": "win32", "cpu": "x64" }, "sha512-Mvrf2kXW/yeW/OTezZlCGOirXRcUuLIBx/5Y12BaPM7wJoryG6dfS/NJL8aBPqtTEx/Vm4T4vKzFUcKDT+TKUA=="], + + "@tailwindcss/postcss": ["@tailwindcss/postcss@4.3.0", "", { "dependencies": { "@alloc/quick-lru": "^5.2.0", "@tailwindcss/node": "4.3.0", "@tailwindcss/oxide": "4.3.0", "postcss": "^8.5.10", "tailwindcss": "4.3.0" } }, "sha512-Jm05Tjx+9yCLGv5qw1c+84Psds8MnyrEQYCB+FFk2lgGiUjlRqdxke4mVTuYrj2xnVZqKim2Apr5ySuQRYAw/w=="], + "@types/bun": ["@types/bun@1.3.11", "", { "dependencies": { "bun-types": "1.3.11" } }, "sha512-5vPne5QvtpjGpsGYXiFyycfpDF2ECyPcTSsFBMa0fraoxiQyMJ3SmuQIGhzPg2WJuWxVBoxWJ2kClYTcw/4fAg=="], "@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="], @@ -215,6 +248,8 @@ "define-properties": ["define-properties@1.2.1", "", { "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" } }, "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg=="], + "detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="], + "didyoumean": ["didyoumean@1.2.2", "", {}, "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw=="], "dlv": ["dlv@1.1.3", "", {}, "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="], @@ -227,6 +262,8 @@ "elm-tailwind-modules": ["elm-tailwind-modules@0.5.0", "", { "dependencies": { "chalk": "^4.1.1", "color-name": "^1.1.4", "commander": "^7.2.0", "css-what": "^5.0.0", "deep-equal": "^2.0.3", "fs-extra": "^9.1.0", "lodash": "^4.17.21", "rollup": "^2.45.2", "tslib": "^2.2.0" }, "peerDependencies": { "postcss": "^8.2.4", "tailwindcss": "^2.0.2 || ^3.1.6" }, "bin": { "elm-tailwind-modules": "dist/cli.js" } }, "sha512-Ad03E6lZwB2Fa+OoLTSzlRKOIzO+T5jTgTOHl53WREmNZPxcaJ+1acwdM/7RJrTkTfvoXi241pdfzzOBQX5r2A=="], + "enhanced-resolve": ["enhanced-resolve@5.21.2", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.3.3" } }, "sha512-xe9vQb5kReirPUxgQrXA3ihgbCqssmTiM7cOZ+Gzu+VeGWgpV98lLZvp0dl4yriyAePcewxGUs9UpKD8PET9KQ=="], + "es-define-property": ["es-define-property@1.0.1", "", {}, "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="], "es-errors": ["es-errors@1.3.0", "", {}, "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="], @@ -329,12 +366,38 @@ "launch-editor": ["launch-editor@2.6.1", "", { "dependencies": { "picocolors": "^1.0.0", "shell-quote": "^1.8.1" } }, "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw=="], + "lightningcss": ["lightningcss@1.32.0", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-android-arm64": "1.32.0", "lightningcss-darwin-arm64": "1.32.0", "lightningcss-darwin-x64": "1.32.0", "lightningcss-freebsd-x64": "1.32.0", "lightningcss-linux-arm-gnueabihf": "1.32.0", "lightningcss-linux-arm64-gnu": "1.32.0", "lightningcss-linux-arm64-musl": "1.32.0", "lightningcss-linux-x64-gnu": "1.32.0", "lightningcss-linux-x64-musl": "1.32.0", "lightningcss-win32-arm64-msvc": "1.32.0", "lightningcss-win32-x64-msvc": "1.32.0" } }, "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ=="], + + "lightningcss-android-arm64": ["lightningcss-android-arm64@1.32.0", "", { "os": "android", "cpu": "arm64" }, "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg=="], + + "lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.32.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ=="], + + "lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.32.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w=="], + + "lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.32.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig=="], + + "lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.32.0", "", { "os": "linux", "cpu": "arm" }, "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw=="], + + "lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.32.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ=="], + + "lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.32.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg=="], + + "lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.32.0", "", { "os": "linux", "cpu": "x64" }, "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA=="], + + "lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.32.0", "", { "os": "linux", "cpu": "x64" }, "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg=="], + + "lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.32.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw=="], + + "lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.32.0", "", { "os": "win32", "cpu": "x64" }, "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q=="], + "lilconfig": ["lilconfig@3.1.3", "", {}, "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw=="], "lines-and-columns": ["lines-and-columns@1.2.4", "", {}, "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="], "lodash": ["lodash@4.17.23", "", {}, "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w=="], + "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], + "math-intrinsics": ["math-intrinsics@1.1.0", "", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="], "merge2": ["merge2@1.4.1", "", {}, "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="], @@ -439,6 +502,8 @@ "tailwindcss": ["tailwindcss@3.4.19", "", { "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", "chokidar": "^3.6.0", "didyoumean": "^1.2.2", "dlv": "^1.1.3", "fast-glob": "^3.3.2", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", "jiti": "^1.21.7", "lilconfig": "^3.1.3", "micromatch": "^4.0.8", "normalize-path": "^3.0.0", "object-hash": "^3.0.0", "picocolors": "^1.1.1", "postcss": "^8.4.47", "postcss-import": "^15.1.0", "postcss-js": "^4.0.1", "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0", "postcss-nested": "^6.2.0", "postcss-selector-parser": "^6.1.2", "resolve": "^1.22.8", "sucrase": "^3.35.0" }, "bin": { "tailwind": "lib/cli.js", "tailwindcss": "lib/cli.js" } }, "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ=="], + "tapable": ["tapable@2.3.3", "", {}, "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A=="], + "terser": ["terser@5.15.1", "", { "dependencies": { "@jridgewell/source-map": "^0.3.2", "acorn": "^8.5.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, "bin": { "terser": "bin/terser" } }, "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw=="], "thenify": ["thenify@3.3.1", "", { "dependencies": { "any-promise": "^1.0.0" } }, "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw=="], @@ -475,6 +540,26 @@ "which-typed-array": ["which-typed-array@1.1.20", "", { "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "call-bound": "^1.0.4", "for-each": "^0.3.5", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2" } }, "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg=="], + "@tailwindcss/node/jiti": ["jiti@2.7.0", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ=="], + + "@tailwindcss/node/tailwindcss": ["tailwindcss@4.3.0", "", {}, "sha512-y6nxMGB1nMW9R6k96e5gdIFzcfL/gTJRNaqGes1YvkLnPVXzWgbqFF2yLC0T8G774n24cx3Pe8XrKoniCOAH+Q=="], + + "@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.10.0", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.1", "tslib": "^2.4.0" }, "bundled": true }, "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw=="], + + "@tailwindcss/oxide-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.10.0", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA=="], + + "@tailwindcss/oxide-wasm32-wasi/@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.2.1", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w=="], + + "@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.1.4", "", { "dependencies": { "@tybys/wasm-util": "^0.10.1" }, "peerDependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1" }, "bundled": true }, "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow=="], + + "@tailwindcss/oxide-wasm32-wasi/@tybys/wasm-util": ["@tybys/wasm-util@0.10.2", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg=="], + + "@tailwindcss/oxide-wasm32-wasi/tslib": ["tslib@2.8.1", "", { "bundled": true }, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "@tailwindcss/postcss/postcss": ["postcss@8.5.14", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg=="], + + "@tailwindcss/postcss/tailwindcss": ["tailwindcss@4.3.0", "", {}, "sha512-y6nxMGB1nMW9R6k96e5gdIFzcfL/gTJRNaqGes1YvkLnPVXzWgbqFF2yLC0T8G774n24cx3Pe8XrKoniCOAH+Q=="], + "chokidar/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], "elm-land/typescript": ["typescript@4.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA=="], diff --git a/elm.json b/elm.json index bbfd89d..2640b95 100644 --- a/elm.json +++ b/elm.json @@ -11,12 +11,20 @@ "elm/browser": "1.0.2", "elm/core": "1.0.5", "elm/html": "1.0.0", + "elm/http": "2.0.0", "elm/json": "1.1.3", "elm/url": "1.0.0", + "elm-explorations/test": "2.2.1", + "lovebug356/yaml": "1.0.5", "matheus23/elm-tailwind-modules-base": "1.0.0", "rtfeldman/elm-css": "18.0.0" }, "indirect": { + "elm/bytes": "1.0.8", + "elm/file": "1.0.5", + "elm/parser": "1.1.0", + "elm/random": "1.0.0", + "elm/regex": "1.0.0", "elm/time": "1.0.0", "elm/virtual-dom": "1.0.3", "robinheghan/murmur3": "1.0.0", diff --git a/flake.lock b/flake.lock index 6bdc84e..d06daa6 100644 --- a/flake.lock +++ b/flake.lock @@ -1,359 +1,15 @@ { "nodes": { - "cachix": { - "inputs": { - "devenv": [ - "devenv" - ], - "flake-compat": [ - "devenv", - "flake-compat" - ], - "git-hooks": [ - "devenv", - "git-hooks" - ], - "nixpkgs": [ - "devenv", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1767714506, - "narHash": "sha256-WaTs0t1CxhgxbIuvQ97OFhDTVUGd1HA+KzLZUZBhe0s=", - "owner": "cachix", - "repo": "cachix", - "rev": "894c649f0daaa38bbcfb21de64be47dfa7cd0ec9", - "type": "github" - }, - "original": { - "owner": "cachix", - "ref": "latest", - "repo": "cachix", - "type": "github" - } - }, - "cachix_2": { - "inputs": { - "devenv": [ - "devenv", - "crate2nix" - ], - "flake-compat": [ - "devenv", - "crate2nix" - ], - "git-hooks": "git-hooks", - "nixpkgs": "nixpkgs" - }, - "locked": { - "lastModified": 1767714506, - "narHash": "sha256-WaTs0t1CxhgxbIuvQ97OFhDTVUGd1HA+KzLZUZBhe0s=", - "owner": "cachix", - "repo": "cachix", - "rev": "894c649f0daaa38bbcfb21de64be47dfa7cd0ec9", - "type": "github" - }, - "original": { - "owner": "cachix", - "ref": "latest", - "repo": "cachix", - "type": "github" - } - }, - "cachix_3": { - "inputs": { - "devenv": [ - "devenv", - "crate2nix", - "crate2nix_stable" - ], - "flake-compat": [ - "devenv", - "crate2nix", - "crate2nix_stable" - ], - "git-hooks": "git-hooks_2", - "nixpkgs": "nixpkgs_2" - }, - "locked": { - "lastModified": 1767714506, - "narHash": "sha256-WaTs0t1CxhgxbIuvQ97OFhDTVUGd1HA+KzLZUZBhe0s=", - "owner": "cachix", - "repo": "cachix", - "rev": "894c649f0daaa38bbcfb21de64be47dfa7cd0ec9", - "type": "github" - }, - "original": { - "owner": "cachix", - "ref": "latest", - "repo": "cachix", - "type": "github" - } - }, - "crate2nix": { - "inputs": { - "cachix": "cachix_2", - "crate2nix_stable": "crate2nix_stable", - "devshell": "devshell_2", - "flake-compat": "flake-compat_2", - "flake-parts": "flake-parts_2", - "nix-test-runner": "nix-test-runner_2", - "nixpkgs": [ - "devenv", - "nixpkgs" - ], - "pre-commit-hooks": "pre-commit-hooks_2" - }, - "locked": { - "lastModified": 1773440526, - "narHash": "sha256-OcX1MYqUdoalY3/vU67PEx8m6RvqGxX0LwKonjzXn7I=", - "owner": "nix-community", - "repo": "crate2nix", - "rev": "e697d3049c909580128caa856ab8eb709556a97b", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "crate2nix", - "type": "github" - } - }, - "crate2nix_stable": { - "inputs": { - "cachix": "cachix_3", - "crate2nix_stable": [ - "devenv", - "crate2nix", - "crate2nix_stable" - ], - "devshell": "devshell", - "flake-compat": "flake-compat", - "flake-parts": "flake-parts", - "nix-test-runner": "nix-test-runner", - "nixpkgs": "nixpkgs_3", - "pre-commit-hooks": "pre-commit-hooks" - }, - "locked": { - "lastModified": 1769627083, - "narHash": "sha256-SUuruvw1/moNzCZosHaa60QMTL+L9huWdsCBN6XZIic=", - "owner": "nix-community", - "repo": "crate2nix", - "rev": "7c33e664668faecf7655fa53861d7a80c9e464a2", - "type": "github" - }, - "original": { - "owner": "nix-community", - "ref": "0.15.0", - "repo": "crate2nix", - "type": "github" - } - }, - "devenv": { - "inputs": { - "cachix": "cachix", - "crate2nix": "crate2nix", - "flake-compat": "flake-compat_3", - "flake-parts": "flake-parts_3", - "git-hooks": "git-hooks_3", - "nix": "nix", - "nixd": "nixd", - "nixpkgs": "nixpkgs_4", - "rust-overlay": "rust-overlay" - }, - "locked": { - "lastModified": 1774574416, - "narHash": "sha256-lSDwajbwYOAXggD0EAs/pOaBcnSfRjX1ScPo4fk8+tI=", - "owner": "cachix", - "repo": "devenv", - "rev": "4dbca34da522d2169cffb62e56965e4b8ee2453d", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "devenv", - "type": "github" - } - }, - "devenv-root": { - "flake": false, - "locked": { - "narHash": "sha256-d6xi4mKdjkX2JFicDIv5niSzpyI0m/Hnm8GGAIU04kY=", - "type": "file", - "url": "file:///dev/null" - }, - "original": { - "type": "file", - "url": "file:///dev/null" - } - }, - "devshell": { - "inputs": { - "nixpkgs": [ - "devenv", - "crate2nix", - "crate2nix_stable", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1768818222, - "narHash": "sha256-460jc0+CZfyaO8+w8JNtlClB2n4ui1RbHfPTLkpwhU8=", - "owner": "numtide", - "repo": "devshell", - "rev": "255a2b1725a20d060f566e4755dbf571bbbb5f76", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "devshell", - "type": "github" - } - }, - "devshell_2": { - "inputs": { - "nixpkgs": [ - "devenv", - "crate2nix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1768818222, - "narHash": "sha256-460jc0+CZfyaO8+w8JNtlClB2n4ui1RbHfPTLkpwhU8=", - "owner": "numtide", - "repo": "devshell", - "rev": "255a2b1725a20d060f566e4755dbf571bbbb5f76", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "devshell", - "type": "github" - } - }, - "flake-compat": { - "locked": { - "lastModified": 1733328505, - "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", - "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", - "revCount": 69, - "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.1.0/01948eb7-9cba-704f-bbf3-3fa956735b52/source.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" - } - }, - "flake-compat_2": { - "locked": { - "lastModified": 1733328505, - "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", - "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", - "revCount": 69, - "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.1.0/01948eb7-9cba-704f-bbf3-3fa956735b52/source.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" - } - }, - "flake-compat_3": { - "flake": false, - "locked": { - "lastModified": 1767039857, - "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, "flake-parts": { "inputs": { - "nixpkgs-lib": [ - "devenv", - "crate2nix", - "crate2nix_stable", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1768135262, - "narHash": "sha256-PVvu7OqHBGWN16zSi6tEmPwwHQ4rLPU9Plvs8/1TUBY=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "80daad04eddbbf5a4d883996a73f3f542fa437ac", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_2": { - "inputs": { - "nixpkgs-lib": [ - "devenv", - "crate2nix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1768135262, - "narHash": "sha256-PVvu7OqHBGWN16zSi6tEmPwwHQ4rLPU9Plvs8/1TUBY=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "80daad04eddbbf5a4d883996a73f3f542fa437ac", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_3": { - "inputs": { - "nixpkgs-lib": [ - "devenv", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1772408722, - "narHash": "sha256-rHuJtdcOjK7rAHpHphUb1iCvgkU3GpfvicLMwwnfMT0=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "f20dc5d9b8027381c474144ecabc9034d6a839a3", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_4": { - "inputs": { - "nixpkgs-lib": [ - "nixpkgs" - ] + "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1772408722, - "narHash": "sha256-rHuJtdcOjK7rAHpHphUb1iCvgkU3GpfvicLMwwnfMT0=", + "lastModified": 1777988971, + "narHash": "sha256-qIoWPDs+0/8JecyYgE3gpKQxW/4bLW/gp45vow9ioCQ=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "f20dc5d9b8027381c474144ecabc9034d6a839a3", + "rev": "0678d8986be1661af6bb555f3489f2fdfc31f6ff", "type": "github" }, "original": { @@ -362,603 +18,56 @@ "type": "github" } }, - "git-hooks": { - "inputs": { - "flake-compat": [ - "devenv", - "crate2nix", - "cachix", - "flake-compat" - ], - "gitignore": "gitignore", - "nixpkgs": [ - "devenv", - "crate2nix", - "cachix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1765404074, - "narHash": "sha256-+ZDU2d+vzWkEJiqprvV5PR26DVFN2vgddwG5SnPZcUM=", - "owner": "cachix", - "repo": "git-hooks.nix", - "rev": "2d6f58930fbcd82f6f9fd59fb6d13e37684ca529", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "git-hooks.nix", - "type": "github" - } - }, - "git-hooks_2": { - "inputs": { - "flake-compat": [ - "devenv", - "crate2nix", - "crate2nix_stable", - "cachix", - "flake-compat" - ], - "gitignore": "gitignore_2", - "nixpkgs": [ - "devenv", - "crate2nix", - "crate2nix_stable", - "cachix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1765404074, - "narHash": "sha256-+ZDU2d+vzWkEJiqprvV5PR26DVFN2vgddwG5SnPZcUM=", - "owner": "cachix", - "repo": "git-hooks.nix", - "rev": "2d6f58930fbcd82f6f9fd59fb6d13e37684ca529", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "git-hooks.nix", - "type": "github" - } - }, - "git-hooks_3": { - "inputs": { - "flake-compat": [ - "devenv", - "flake-compat" - ], - "gitignore": "gitignore_5", - "nixpkgs": [ - "devenv", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1772893680, - "narHash": "sha256-JDqZMgxUTCq85ObSaFw0HhE+lvdOre1lx9iI6vYyOEs=", - "owner": "cachix", - "repo": "git-hooks.nix", - "rev": "8baab586afc9c9b57645a734c820e4ac0a604af9", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "git-hooks.nix", - "type": "github" - } - }, - "gitignore": { - "inputs": { - "nixpkgs": [ - "devenv", - "crate2nix", - "cachix", - "git-hooks", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1709087332, - "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", - "owner": "hercules-ci", - "repo": "gitignore.nix", - "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "gitignore.nix", - "type": "github" - } - }, - "gitignore_2": { - "inputs": { - "nixpkgs": [ - "devenv", - "crate2nix", - "crate2nix_stable", - "cachix", - "git-hooks", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1709087332, - "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", - "owner": "hercules-ci", - "repo": "gitignore.nix", - "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "gitignore.nix", - "type": "github" - } - }, - "gitignore_3": { - "inputs": { - "nixpkgs": [ - "devenv", - "crate2nix", - "crate2nix_stable", - "pre-commit-hooks", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1709087332, - "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", - "owner": "hercules-ci", - "repo": "gitignore.nix", - "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "gitignore.nix", - "type": "github" - } - }, - "gitignore_4": { - "inputs": { - "nixpkgs": [ - "devenv", - "crate2nix", - "pre-commit-hooks", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1709087332, - "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", - "owner": "hercules-ci", - "repo": "gitignore.nix", - "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "gitignore.nix", - "type": "github" - } - }, - "gitignore_5": { - "inputs": { - "nixpkgs": [ - "devenv", - "git-hooks", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1709087332, - "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", - "owner": "hercules-ci", - "repo": "gitignore.nix", - "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "gitignore.nix", - "type": "github" - } - }, - "mk-shell-bin": { - "locked": { - "lastModified": 1677004959, - "narHash": "sha256-/uEkr1UkJrh11vD02aqufCxtbF5YnhRTIKlx5kyvf+I=", - "owner": "rrbutani", - "repo": "nix-mk-shell-bin", - "rev": "ff5d8bd4d68a347be5042e2f16caee391cd75887", - "type": "github" - }, - "original": { - "owner": "rrbutani", - "repo": "nix-mk-shell-bin", - "type": "github" - } - }, - "nix": { - "inputs": { - "flake-compat": [ - "devenv", - "flake-compat" - ], - "flake-parts": [ - "devenv", - "flake-parts" - ], - "git-hooks-nix": [ - "devenv", - "git-hooks" - ], - "nixpkgs": [ - "devenv", - "nixpkgs" - ], - "nixpkgs-23-11": [ - "devenv" - ], - "nixpkgs-regression": [ - "devenv" - ] - }, - "locked": { - "lastModified": 1774103430, - "narHash": "sha256-MRNVInSmvhKIg3y0UdogQJXe+omvKijGszFtYpd5r9k=", - "owner": "cachix", - "repo": "nix", - "rev": "e127c1c94cefe02d8ca4cca79ef66be4c527510e", - "type": "github" - }, - "original": { - "owner": "cachix", - "ref": "devenv-2.32", - "repo": "nix", - "type": "github" - } - }, - "nix-test-runner": { - "flake": false, - "locked": { - "lastModified": 1588761593, - "narHash": "sha256-FKJykltAN/g3eIceJl4SfDnnyuH2jHImhMrXS2KvGIs=", - "owner": "stoeffel", - "repo": "nix-test-runner", - "rev": "c45d45b11ecef3eb9d834c3b6304c05c49b06ca2", - "type": "github" - }, - "original": { - "owner": "stoeffel", - "repo": "nix-test-runner", - "type": "github" - } - }, - "nix-test-runner_2": { - "flake": false, - "locked": { - "lastModified": 1588761593, - "narHash": "sha256-FKJykltAN/g3eIceJl4SfDnnyuH2jHImhMrXS2KvGIs=", - "owner": "stoeffel", - "repo": "nix-test-runner", - "rev": "c45d45b11ecef3eb9d834c3b6304c05c49b06ca2", - "type": "github" - }, - "original": { - "owner": "stoeffel", - "repo": "nix-test-runner", - "type": "github" - } - }, - "nix2container": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1773987955, - "narHash": "sha256-vgxwF/GS9lRC9s211RnmJaGKHIUexMiRs7Eslh11E08=", - "owner": "nlewo", - "repo": "nix2container", - "rev": "20d339590c3c36252514a57b0241c47bcd8a08ce", - "type": "github" - }, - "original": { - "owner": "nlewo", - "repo": "nix2container", - "type": "github" - } - }, - "nixd": { - "inputs": { - "flake-parts": [ - "devenv", - "flake-parts" - ], - "nixpkgs": [ - "devenv", - "nixpkgs" - ], - "treefmt-nix": "treefmt-nix" - }, - "locked": { - "lastModified": 1773634079, - "narHash": "sha256-49qb4QNMv77VOeEux+sMd0uBhPvvHgVc0r938Bulvbo=", - "owner": "nix-community", - "repo": "nixd", - "rev": "8ecf93d4d93745e05ea53534e8b94f5e9506e6bd", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixd", - "type": "github" - } - }, "nixpkgs": { "locked": { - "lastModified": 1765186076, - "narHash": "sha256-hM20uyap1a0M9d344I692r+ik4gTMyj60cQWO+hAYP8=", + "lastModified": 1778003029, + "narHash": "sha256-q/nkKLDtHIyLjZpKhWk3cSK5IYsFqtMd6UtXF3ddjgA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "addf7cf5f383a3101ecfba091b98d0a1263dc9b8", + "rev": "0c88e1f2bdb93d5999019e99cb0e61e1fe2af4c5", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-unstable", + "ref": "nixos-25.11", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-src": { - "flake": false, + "nixpkgs-lib": { "locked": { - "lastModified": 1773597492, - "narHash": "sha256-hQ284SkIeNaeyud+LS0WVLX+WL2rxcVZLFEaK0e03zg=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "a07d4ce6bee67d7c838a8a5796e75dff9caa21ef", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-src_2": { - "flake": false, - "locked": { - "lastModified": 1773840656, - "narHash": "sha256-9tpvMGFteZnd3gRQZFlRCohVpqooygFuy9yjuyRL2C0=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "9cf7092bdd603554bd8b63c216e8943cf9b12512", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_2": { - "locked": { - "lastModified": 1765186076, - "narHash": "sha256-hM20uyap1a0M9d344I692r+ik4gTMyj60cQWO+hAYP8=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "addf7cf5f383a3101ecfba091b98d0a1263dc9b8", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_3": { - "locked": { - "lastModified": 1769433173, - "narHash": "sha256-Gf1dFYgD344WZ3q0LPlRoWaNdNQq8kSBDLEWulRQSEs=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "13b0f9e6ac78abbbb736c635d87845c4f4bee51b", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_4": { - "inputs": { - "nixpkgs-src": "nixpkgs-src" - }, - "locked": { - "lastModified": 1773704619, - "narHash": "sha256-LKtmit8Sr81z8+N2vpIaN/fyiQJ8f7XJ6tMSKyDVQ9s=", - "owner": "cachix", - "repo": "devenv-nixpkgs", - "rev": "906534d75b0e2fe74a719559dfb1ad3563485f43", - "type": "github" - }, - "original": { - "owner": "cachix", - "ref": "rolling", - "repo": "devenv-nixpkgs", - "type": "github" - } - }, - "nixpkgs_5": { - "inputs": { - "nixpkgs-src": "nixpkgs-src_2" - }, - "locked": { - "lastModified": 1774287239, - "narHash": "sha256-W3krsWcDwYuA3gPWsFA24YAXxOFUL6iIlT6IknAoNSE=", - "owner": "cachix", - "repo": "devenv-nixpkgs", - "rev": "fa7125ea7f1ae5430010a6e071f68375a39bd24c", - "type": "github" - }, - "original": { - "owner": "cachix", - "ref": "rolling", - "repo": "devenv-nixpkgs", - "type": "github" - } - }, - "nixpkgs_6": { - "locked": { - "lastModified": 1770107345, - "narHash": "sha256-tbS0Ebx2PiA1FRW8mt8oejR0qMXmziJmPaU1d4kYY9g=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "4533d9293756b63904b7238acb84ac8fe4c8c2c4", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "pre-commit-hooks": { - "inputs": { - "flake-compat": [ - "devenv", - "crate2nix", - "crate2nix_stable", - "flake-compat" - ], - "gitignore": "gitignore_3", - "nixpkgs": [ - "devenv", - "crate2nix", - "crate2nix_stable", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1769069492, - "narHash": "sha256-Efs3VUPelRduf3PpfPP2ovEB4CXT7vHf8W+xc49RL/U=", - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "rev": "a1ef738813b15cf8ec759bdff5761b027e3e1d23", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "type": "github" - } - }, - "pre-commit-hooks_2": { - "inputs": { - "flake-compat": [ - "devenv", - "crate2nix", - "flake-compat" - ], - "gitignore": "gitignore_4", - "nixpkgs": [ - "devenv", - "crate2nix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1769069492, - "narHash": "sha256-Efs3VUPelRduf3PpfPP2ovEB4CXT7vHf8W+xc49RL/U=", - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "rev": "a1ef738813b15cf8ec759bdff5761b027e3e1d23", + "lastModified": 1777894051, + "narHash": "sha256-gD93nlyAyOZOQ2BG1YE/xPid8eVPrwCD2UBMMjwJ1o4=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "cea90d52f99e874eb11689f4acd7951bcde3b7a0", "type": "github" }, "original": { - "owner": "cachix", - "repo": "pre-commit-hooks.nix", + "owner": "nix-community", + "repo": "nixpkgs.lib", "type": "github" } }, "root": { "inputs": { - "devenv": "devenv", - "devenv-root": "devenv-root", - "flake-parts": "flake-parts_4", - "mk-shell-bin": "mk-shell-bin", - "nix2container": "nix2container", - "nixpkgs": "nixpkgs_5", - "treefmt-nix": "treefmt-nix_2" - } - }, - "rust-overlay": { - "inputs": { - "nixpkgs": [ - "devenv", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1773630837, - "narHash": "sha256-zJhgAGnbVKeBMJOb9ctZm4BGS/Rnrz+5lfSXTVah4HQ=", - "owner": "oxalica", - "repo": "rust-overlay", - "rev": "f600ea449c7b5bb596fa1cf21c871cc5b9e31316", - "type": "github" - }, - "original": { - "owner": "oxalica", - "repo": "rust-overlay", - "type": "github" + "flake-parts": "flake-parts", + "nixpkgs": "nixpkgs", + "treefmt-nix": "treefmt-nix" } }, "treefmt-nix": { "inputs": { "nixpkgs": [ - "devenv", - "nixd", "nixpkgs" ] }, "locked": { - "lastModified": 1772660329, - "narHash": "sha256-IjU1FxYqm+VDe5qIOxoW+pISBlGvVApRjiw/Y/ttJzY=", - "owner": "numtide", - "repo": "treefmt-nix", - "rev": "3710e0e1218041bbad640352a0440114b1e10428", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "treefmt-nix", - "type": "github" - } - }, - "treefmt-nix_2": { - "inputs": { - "nixpkgs": "nixpkgs_6" - }, - "locked": { - "lastModified": 1773297127, - "narHash": "sha256-6E/yhXP7Oy/NbXtf1ktzmU8SdVqJQ09HC/48ebEGBpk=", + "lastModified": 1775636079, + "narHash": "sha256-pc20NRoMdiar8oPQceQT47UUZMBTiMdUuWrYu2obUP0=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "71b125cd05fbfd78cab3e070b73544abe24c5016", + "rev": "790751ff7fd3801feeaf96d7dc416a8d581265ba", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 551f757..4782a13 100644 --- a/flake.nix +++ b/flake.nix @@ -1,87 +1,59 @@ { - description = "Description for the project"; + description = "DevDen Website Nix flake"; inputs = { - devenv-root = { - url = "file+file:///dev/null"; - flake = false; - }; - nixpkgs.url = "github:cachix/devenv-nixpkgs/rolling"; + nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11"; flake-parts.url = "github:hercules-ci/flake-parts"; - flake-parts.inputs.nixpkgs-lib.follows = "nixpkgs"; - devenv.url = "github:cachix/devenv"; - nix2container.url = "github:nlewo/nix2container"; - nix2container.inputs.nixpkgs.follows = "nixpkgs"; - mk-shell-bin.url = "github:rrbutani/nix-mk-shell-bin"; treefmt-nix.url = "github:numtide/treefmt-nix"; - }; - - nixConfig = { - extra-trusted-public-keys = "devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw="; - extra-substituters = "https://devenv.cachix.org"; + treefmt-nix.inputs.nixpkgs.follows = "nixpkgs"; }; outputs = - inputs@{ flake-parts, devenv-root, ... }: + inputs@{ flake-parts, ... }: flake-parts.lib.mkFlake { inherit inputs; } { imports = [ - inputs.devenv.flakeModule + inputs.treefmt-nix.flakeModule ]; + systems = [ "x86_64-linux" - "i686-linux" - "x86_64-darwin" "aarch64-linux" + "x86_64-darwin" "aarch64-darwin" ]; perSystem = + { config, pkgs, ... }: { - config, - self', - inputs', - pkgs, - system, - ... - }: - { - # Per-system attributes can be defined here. The self' and inputs' - # module parameters provide easy access to attributes of the same - # system. - - # Equivalent to inputs'.nixpkgs.legacyPackages.hello; - packages.default = pkgs.hello; + treefmt = { + projectRootFile = "flake.nix"; + programs = { + nixfmt.enable = true; + elm-format.enable = true; + }; + }; - devenv.shells.default = { + devShells.default = pkgs.mkShell { name = "devden-website"; - imports = [ + nativeBuildInputs = with pkgs; [ + bun + elmPackages.elm + elmPackages.elm-format + elmPackages.elm-language-server + elmPackages.elm-test ]; - # https://devenv.sh/reference/options/ - packages = [ config.packages.default ]; - - languages.javascript.bun.enable = true; - languages.elm.enable = true; - languages.elm.lsp.enable = true; - - treefmt = { - enable = true; - config.programs = { - nixfmt.enable = true; - elm-format.enable = true; - }; - }; - - scripts.tw.exec = "bunx elm-tailwind-modules --dir ./gen"; + shellHook = '' + alias tw="bunx elm-tailwind-modules --dir ./gen" + alias spa-server="bunx elm-land server" - processes = { - spa-server.exec = "bunx elm-land server"; - }; + echo "Dev shell active." + echo "Commands: tw, spa-server" + ''; }; + packages.default = pkgs.hello; }; - flake = { - }; }; } diff --git a/package.json b/package.json index 07b7de9..f5ec709 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "typescript": "^5" }, "dependencies": { + "@tailwindcss/postcss": "^4.3.0", "elm-tailwind-modules": "^0.5.0", "postcss": "^8.4.0", "tailwindcss": "^3.4.0" diff --git a/src/Api.elm b/src/Api.elm new file mode 100644 index 0000000..22fd179 --- /dev/null +++ b/src/Api.elm @@ -0,0 +1,54 @@ +module Api exposing (..) + +import Effect exposing (Effect) +import Http +import Json.Decode as Json +import LearningResources + + +type Data value + = Loading + | Success value + | Failure Http.Error + + +getLearningResourcesIndex : + { onResponse : Result Http.Error (List LearningResources.ResourceIndexEntry) -> msg } + -> Effect msg +getLearningResourcesIndex { onResponse } = + Effect.sendCmd <| + Http.get + { url = "https://learningresources.developerden.org" + , expect = Http.expectJson onResponse resourceIndexDecoder + } + + +resourceIndexDecoder : Json.Decoder (List LearningResources.ResourceIndexEntry) +resourceIndexDecoder = + Json.list + (Json.map LearningResources.ResourceIndexEntry + (Json.field "name" Json.string) + ) + + +toUserFriendlyMessage : Http.Error -> String +toUserFriendlyMessage httpError = + case httpError of + Http.BadUrl _ -> + "This page requested a bad URL" + + Http.Timeout -> + "Request took too long to respond" + + Http.NetworkError -> + "Could not connect to the API" + + Http.BadStatus code -> + if code == 404 then + "Item not found" + + else + "API returned an error code" + + Http.BadBody _ -> + "Unexpected response from API" diff --git a/src/Layouts/LearningInfo.elm b/src/Layouts/LearningInfo.elm new file mode 100644 index 0000000..408ddb8 --- /dev/null +++ b/src/Layouts/LearningInfo.elm @@ -0,0 +1,123 @@ +module Layouts.LearningInfo exposing (LearningInfoMode(..), Model, Msg, Props, layout) + +import Api +import Effect exposing (Effect) +import Html.Styled as Html +import Html.Styled.Attributes as Attr +import Layout exposing (Layout) +import LearningResources +import Route exposing (Route) +import Shared +import Shared.Model as SharedModel +import View exposing (View) + + +type alias Props = + { mode : LearningInfoMode } + + +type LearningInfoMode + = CardsMode -- ^ Show the index of learning resources as cards + | SidebarMode -- ^ Show the index as a sidebar + + +layout : Props -> Shared.Model -> Route () -> Layout () Model Msg contentMsg +layout props shared _ = + Layout.new + { init = init + , update = update + , view = view props shared + , subscriptions = subscriptions + } + + + +-- MODEL + + +type alias Model = + {} + + +init : () -> ( Model, Effect Msg ) +init _ = + ( {} + , Effect.none + ) + + + +-- UPDATE + + +type Msg + = NoOp + + +update : Msg -> Model -> ( Model, Effect Msg ) +update msg model = + case msg of + NoOp -> + ( model + , Effect.none + ) + + +subscriptions : Model -> Sub Msg +subscriptions _ = + Sub.none + + + +-- VIEW + + +view : Props -> Shared.Model -> { toContentMsg : Msg -> contentMsg, content : View contentMsg, model : Model } -> View contentMsg +view props shared { content } = + { title = content.title + , body = + case shared.learningIndex of + SharedModel.Loading -> + [ Html.text "Loading learning resources..." ] + + SharedModel.Failure error -> + [ Html.text "Failed to load learning resources :(" + , Html.div [] [ Html.text (Api.toUserFriendlyMessage error) ] + ] + + SharedModel.Success entries -> + case props.mode of + CardsMode -> + [ Html.div + [ Attr.class "learning-cards" ] + (List.map viewCard entries) + ] + + SidebarMode -> + [ Html.div + [ Attr.class "learning-layout" ] + [ Html.aside + [ Attr.class "learning-sidebar" ] + [ Html.h3 [] [ Html.text "Languages" ] + , Html.ul [] (List.map viewSidebarItem entries) + ] + , Html.main_ + [ Attr.class "learning-content" ] + content.body + ] + ] + } + + +viewCard : LearningResources.ResourceIndexEntry -> Html.Html msg +viewCard entry = + Html.article + [ Attr.class "learning-card" ] + [ Html.h3 [] [ Html.text entry.name ] + , Html.p [] [ Html.text "Click to browse resources" ] + ] + + +viewSidebarItem : LearningResources.ResourceIndexEntry -> Html.Html msg +viewSidebarItem entry = + Html.li [] [ Html.text entry.name ] diff --git a/src/LearningResources.elm b/src/LearningResources.elm new file mode 100644 index 0000000..d41dd77 --- /dev/null +++ b/src/LearningResources.elm @@ -0,0 +1,176 @@ +module LearningResources exposing + ( LearningResourcesSet + , Price(..) + , Resource + , ResourceIndexEntry + , learningResourcesSet + , learningResourcesSetToString + ) + +import Dict exposing (Dict) +import Yaml.Decode as Jdec +import Yaml.Encode as Jenc + + +type alias ResourceIndexEntry = + { name : String + } + + +{-| Set of resources that can be used for learning programming + +description: +A brief description of the language and its uses + +emoji: +A Unicode emoji glyph or Discord emoji ID to represent the resource, if applicable. The +emoji must be part of the main DevDen server, which isn't great design but there's not +really a better way of doing it. + +name: +The name of the language + +resources: +List of resources that can be used for learning / practicing the language + +-} +type alias LearningResourcesSet = + { description : String + , emoji : Maybe String + , name : String + , resources : List Resource + } + + +{-| cons: +Array of cons for using the resource, e.g. 'only teaches the basics rather than more +advanced concepts' + +description: +A brief description of the resource + +name: +The official name of the resource + +price: +The price of the resource, if it has one. If the resource is free, omit this field. + +pros: +Array of pros for using the resource, e.g. 'explains difficult concepts with good +analogies' + +url: +URL to the resource + +-} +type alias Resource = + { cons : List String + , description : Maybe String + , name : String + , price : Maybe Price + , pros : List String + , url : String + } + + +{-| The price of the resource, if it has one. If the resource is free, omit this field. +-} +type Price + = DoubleInPrice Float + | StringInPrice String + + + +-- decoders and encoders + + +learningResourcesSetToString : LearningResourcesSet -> String +learningResourcesSetToString r = + Jenc.toString 0 (encodeLearningResourcesSet r) + + +learningResourcesSet : Jdec.Decoder LearningResourcesSet +learningResourcesSet = + Jdec.map4 LearningResourcesSet + (Jdec.field "description" Jdec.string) + (optionalField "emoji" Jdec.string) + (Jdec.field "name" Jdec.string) + (Jdec.field "resources" (Jdec.list resource)) + + +encodeLearningResourcesSet : LearningResourcesSet -> Jenc.Encoder +encodeLearningResourcesSet x = + Jenc.record + [ ( "description", Jenc.string x.description ) + , ( "emoji", makeNullableEncoder Jenc.string x.emoji ) + , ( "name", Jenc.string x.name ) + , ( "resources", makeListEncoder encodeResource x.resources ) + ] + + +resource : Jdec.Decoder Resource +resource = + Jdec.map6 Resource + (Jdec.field "cons" (Jdec.list Jdec.string)) + (optionalField "description" Jdec.string) + (Jdec.field "name" Jdec.string) + (optionalField "price" price) + (Jdec.field "pros" (Jdec.list Jdec.string)) + (Jdec.field "url" Jdec.string) + + +encodeResource : Resource -> Jenc.Encoder +encodeResource x = + Jenc.record + [ ( "cons", makeListEncoder Jenc.string x.cons ) + , ( "description", makeNullableEncoder Jenc.string x.description ) + , ( "name", Jenc.string x.name ) + , ( "price", makeNullableEncoder encodePrice x.price ) + , ( "pros", makeListEncoder Jenc.string x.pros ) + , ( "url", Jenc.string x.url ) + ] + + +price : Jdec.Decoder Price +price = + Jdec.oneOf + [ Jdec.map StringInPrice Jdec.string + , Jdec.map DoubleInPrice Jdec.float + ] + + +optionalField : String -> Jdec.Decoder a -> Jdec.Decoder (Maybe a) +optionalField name decoder = + Jdec.oneOf + [ Jdec.field name (Jdec.nullable decoder) + , Jdec.succeed Nothing + ] + + +encodePrice : Price -> Jenc.Encoder +encodePrice x = + case x of + StringInPrice y -> + Jenc.string y + + DoubleInPrice y -> + Jenc.float y + + + +--- encoder helpers + + +makeListEncoder : (a -> Jenc.Encoder) -> List a -> Jenc.Encoder +makeListEncoder f arr = + Jenc.list f arr + + +makeNullableEncoder : (a -> Jenc.Encoder) -> Maybe a -> Jenc.Encoder +makeNullableEncoder f m = + case m of + Just x -> + f x + + Nothing -> + Jenc.null diff --git a/src/Pages/Home_.elm b/src/Pages/Home_.elm index 5e48ca2..ed70814 100644 --- a/src/Pages/Home_.elm +++ b/src/Pages/Home_.elm @@ -28,8 +28,6 @@ page = , Tw.rounded_md , Tw.text_color Tw.white , Tw.bg_color Tw.indigo_600 - - -- We can use hover styles via elm-css :) , Css.hover [ Tw.bg_color Tw.indigo_700 ] ] ] diff --git a/src/Pages/Learning.elm b/src/Pages/Learning.elm new file mode 100644 index 0000000..6d33cda --- /dev/null +++ b/src/Pages/Learning.elm @@ -0,0 +1,84 @@ +module Pages.Learning exposing (Model, Msg, page) + +import Api +import Effect exposing (Effect) +import Html.Styled as Html +import Html.Styled.Attributes as Attr +import LearningResources +import Page exposing (Page) +import Route exposing (Route) +import Shared +import Shared.Model as SharedModel +import View exposing (View) +import Route.Path + +page : Shared.Model -> Route () -> Page Model Msg +page shared _ = + Page.new + { init = init + , update = update + , subscriptions = subscriptions + , view = view shared + } + + +type alias Model = + {} + + +type Msg + = NoOp + + +init : () -> ( Model, Effect Msg ) +init _ = + ( {} + , Effect.none + ) + + +update : Msg -> Model -> ( Model, Effect Msg ) +update msg model = + case msg of + NoOp -> + ( model + , Effect.none + ) + + +subscriptions : Model -> Sub Msg +subscriptions _ = + Sub.none + + +view : Shared.Model -> Model -> View Msg +view shared _ = + { title = "Learning" + , body = + case shared.learningIndex of + SharedModel.Loading -> + [ Html.text "Loading learning resources..." ] + + SharedModel.Failure error -> + [ Html.text "Failed to load learning resources :(" + , Html.div [] [ Html.text (Api.toUserFriendlyMessage error) ] + ] + + SharedModel.Success entries -> + [ Html.div + [ Attr.class "learning-cards" ] + (List.map viewCard entries) + ] + } + + +viewCard : LearningResources.ResourceIndexEntry -> Html.Html msg +viewCard entry = + Html.article + [ Attr.class "learning-card" ] + [ Html.h3 [] [ Html.text entry.name ] + , Html.a [ + Route.Path.href ( Route.Path.Learning_Resource_ { resource = entry.name }) + |> Attr.fromUnstyled + ] [ Html.text "Click to browse resources" ] + ] diff --git a/src/Pages/Learning/Resource_.elm b/src/Pages/Learning/Resource_.elm new file mode 100644 index 0000000..956701f --- /dev/null +++ b/src/Pages/Learning/Resource_.elm @@ -0,0 +1,68 @@ +module Pages.Learning.Resource_ exposing (Model, Msg, page) + +import Effect exposing (Effect) +import Route exposing (Route) +import Html +import Page exposing (Page) +import Shared +import View exposing (View) + + +page : Shared.Model -> Route { resource : String } -> Page Model Msg +page shared route = + Page.new + { init = init + , update = update + , subscriptions = subscriptions + , view = view + } + + + +-- INIT + + +type alias Model = + {} + + +init : () -> ( Model, Effect Msg ) +init () = + ( {} + , Effect.none + ) + + + +-- UPDATE + + +type Msg + = NoOp + + +update : Msg -> Model -> ( Model, Effect Msg ) +update msg model = + case msg of + NoOp -> + ( model + , Effect.none + ) + + + +-- SUBSCRIPTIONS + + +subscriptions : Model -> Sub Msg +subscriptions model = + Sub.none + + + +-- VIEW + + +view : Shared.Model -> Model -> View Msg +view shared model = + View.fromString "Pages.Learning.Resource_" diff --git a/src/Shared.elm b/src/Shared.elm new file mode 100644 index 0000000..798a34f --- /dev/null +++ b/src/Shared.elm @@ -0,0 +1,91 @@ +module Shared exposing + ( Flags, decoder + , Model, Msg + , init, update, subscriptions + ) + +{-| + +@docs Flags, decoder +@docs Model, Msg +@docs init, update, subscriptions + +-} + +import Api +import Effect exposing (Effect) +import Json.Decode +import Route exposing (Route) +import Shared.Model +import Shared.Msg + + + +-- FLAGS + + +type alias Flags = + {} + + +decoder : Json.Decode.Decoder Flags +decoder = + Json.Decode.succeed {} + + + +-- INIT + + +type alias Model = + Shared.Model.Model + + +init : Result Json.Decode.Error Flags -> Route () -> ( Model, Effect Msg ) +init _ _ = + ( { learningIndex = Shared.Model.Loading } + , Api.getLearningResourcesIndex + { onResponse = Shared.Msg.LearningIndexResponded } + ) + + + +-- UPDATE + + +type alias Msg = + Shared.Msg.Msg + + +update : Route () -> Msg -> Model -> ( Model, Effect Msg ) +update _ msg model = + case msg of + Shared.Msg.LearningIndexResponded (Ok entries) -> + ( { model | learningIndex = Shared.Model.Success entries } + , Effect.none + ) + + Shared.Msg.LearningIndexResponded (Err error) -> + ( { model | learningIndex = Shared.Model.Failure error } + , Effect.none + ) + + Shared.Msg.RetryLearningIndex -> + ( { model | learningIndex = Shared.Model.Loading } + , Api.getLearningResourcesIndex + { onResponse = Shared.Msg.LearningIndexResponded } + ) + + Shared.Msg.NoOp -> + ( model + , Effect.none + ) + + + +-- SUBSCRIPTIONS + + +subscriptions : Route () -> Model -> Sub Msg +subscriptions _ _ = + Sub.none diff --git a/src/Shared/Model.elm b/src/Shared/Model.elm new file mode 100644 index 0000000..ec3ef13 --- /dev/null +++ b/src/Shared/Model.elm @@ -0,0 +1,24 @@ +module Shared.Model exposing (LearningIndexStatus(..), Model) + +{-| -} + +import Http +import LearningResources + + +{-| Normally, this value would live in "Shared.elm" +but that would lead to a circular dependency import cycle. + +For that reason, both `Shared.Model` and `Shared.Msg` are in their +own file, so they can be imported by `Effect.elm` + +-} +type LearningIndexStatus + = Loading + | Success (List LearningResources.ResourceIndexEntry) + | Failure Http.Error + + +type alias Model = + { learningIndex : LearningIndexStatus + } diff --git a/src/Shared/Msg.elm b/src/Shared/Msg.elm new file mode 100644 index 0000000..7c5fa99 --- /dev/null +++ b/src/Shared/Msg.elm @@ -0,0 +1,19 @@ +module Shared.Msg exposing (Msg(..)) + +{-| -} + +import Http +import LearningResources + + +{-| Normally, this value would live in "Shared.elm" +but that would lead to a circular dependency import cycle. + +For that reason, both `Shared.Model` and `Shared.Msg` are in their +own file, so they can be imported by `Effect.elm` + +-} +type Msg + = LearningIndexResponded (Result Http.Error (List LearningResources.ResourceIndexEntry)) + | RetryLearningIndex + | NoOp diff --git a/tests/LearningResourcesTest.elm b/tests/LearningResourcesTest.elm new file mode 100644 index 0000000..b89dc8e --- /dev/null +++ b/tests/LearningResourcesTest.elm @@ -0,0 +1,122 @@ +module LearningResourcesTest exposing (all) + +import Expect +import LearningResources exposing (..) +import Test exposing (Test, describe, test) +import Yaml.Decode + + +yamlString : String +yamlString = + """name: Java +description: Java is an Object Oriented language designed by James Gosling in 1995 +emoji: '821822045187866625' +resources: +- name: Tutorial Spot + url: https://www.tutorialspoint.com/java/index.htm + pros: [ ] + cons: + - Slightly dated +- name: Alex Lee + url: https://www.youtube.com/channel/UC_fFL5jgoCOrwAVoM_fBYwA + pros: + - Video series + - Covers a wide range of concepts + cons: [ ] +- name: Bro Code + url: https://www.youtube.com/c/BroCodez + pros: + - Video series + - Has videos on many different languages and concepts + cons: [ ] +- name: Javatpoint + url: https://www.javatpoint.com/java-tutorial + pros: [ ] + cons: [ ] +- name: Mooc.fi + description: Comprehensive Java (and general programming) course provided by the University of Helsinki + url: https://java-programming.mooc.fi/ + pros: + - Very well respected + cons: [ ] +- name: TheNewBoston + url: https://www.youtube.com/@thenewboston + pros: + - Beginner and intermediate video series + - Short, but a lot of videos (146 videos combined in both playlists) + cons: + - Videos may be outdated (2009 - 2012)""" + + +all : Test +all = + describe "LearningResources" + [ test "decodes java.yaml successfully" <| + \_ -> + case Yaml.Decode.fromString coordinate yamlString of + Ok result -> + Expect.all + [ \r -> Expect.equal "Java" r.name + , \r -> Expect.equal (Just "821822045187866625") r.emoji + , \r -> Expect.equal 6 (List.length r.resources) + ] + result + + Err err -> + Expect.fail ("Decode failed: " ++ Yaml.Decode.errorToString err) + , test "decodes resource with optional description" <| + \_ -> + case Yaml.Decode.fromString coordinate yamlString of + Ok result -> + let + mooc = + List.filter (\r -> r.name == "Mooc.fi") result.resources + |> List.head + in + case mooc of + Just resource -> + Expect.equal + (Just "Comprehensive Java (and general programming) course provided by the University of Helsinki") + resource.description + + Nothing -> + Expect.fail "Could not find Mooc.fi resource" + + Err err -> + Expect.fail ("Decode failed: " ++ Yaml.Decode.errorToString err) + , test "decodes resource without description as Nothing" <| + \_ -> + case Yaml.Decode.fromString coordinate yamlString of + Ok result -> + let + tutorial = + List.filter (\r -> r.name == "Tutorial Spot") result.resources + |> List.head + in + case tutorial of + Just resource -> + Expect.equal Nothing resource.description + + Nothing -> + Expect.fail "Could not find Tutorial Spot resource" + + Err err -> + Expect.fail ("Decode failed: " ++ Yaml.Decode.errorToString err) + , test "round-trips through encode and decode" <| + \_ -> + case Yaml.Decode.fromString coordinate yamlString of + Ok original -> + let + encoded = + coordinateToString original + in + case Yaml.Decode.fromString coordinate encoded of + Ok roundTripped -> + Expect.equal original.name roundTripped.name + + Err err -> + Expect.fail ("Round-trip decode failed: " ++ Yaml.Decode.errorToString err) + + Err err -> + Expect.fail ("Initial decode failed: " ++ Yaml.Decode.errorToString err) + ] From 51ef3b76d486eb1d8188dd6de4148dc6a28c7432 Mon Sep 17 00:00:00 2001 From: Alexander Wood Date: Sun, 10 May 2026 13:42:34 +0100 Subject: [PATCH 10/26] feat: render LRs basically! --- src/Api.elm | 41 +++++++++++++++ src/Pages/Learning/Resource_.elm | 87 ++++++++++++++++++++++++++------ src/Shared.elm | 8 ++- src/Shared/Model.elm | 18 ++++++- src/Shared/Msg.elm | 1 + 5 files changed, 137 insertions(+), 18 deletions(-) diff --git a/src/Api.elm b/src/Api.elm index 22fd179..bd15c7a 100644 --- a/src/Api.elm +++ b/src/Api.elm @@ -4,6 +4,7 @@ import Effect exposing (Effect) import Http import Json.Decode as Json import LearningResources +import Yaml.Decode type Data value @@ -23,6 +24,46 @@ getLearningResourcesIndex { onResponse } = } +getLearningResource : + { name : String + , onResponse : Result Http.Error LearningResources.LearningResourcesSet -> msg + } + -> Effect msg +getLearningResource { name, onResponse } = + Effect.sendCmd <| + Http.get + { url = "https://learningresources.developerden.org/" ++ name + , expect = + expectYaml onResponse LearningResources.learningResourcesSet + } + +expectYaml : (Result Http.Error a -> msg) -> Yaml.Decode.Decoder a -> Http.Expect msg +expectYaml toMsg decoder = + Http.expectStringResponse toMsg <| resolve decoder + +resolve decoder = \response -> + case response of + Http.BadUrl_ url -> + Err (Http.BadUrl url) + + Http.Timeout_ -> + Err Http.Timeout + + Http.NetworkError_ -> + Err Http.NetworkError + + Http.BadStatus_ metadata body -> + Err (Http.BadStatus metadata.statusCode) + + Http.GoodStatus_ metadata body -> + case Yaml.Decode.fromString decoder body of + Ok value -> + Ok value + + Err err -> + Err (Http.BadBody (Yaml.Decode.errorToString err)) + + resourceIndexDecoder : Json.Decoder (List LearningResources.ResourceIndexEntry) resourceIndexDecoder = Json.list diff --git a/src/Pages/Learning/Resource_.elm b/src/Pages/Learning/Resource_.elm index 956701f..1d5eb93 100644 --- a/src/Pages/Learning/Resource_.elm +++ b/src/Pages/Learning/Resource_.elm @@ -1,20 +1,26 @@ module Pages.Learning.Resource_ exposing (Model, Msg, page) +import Api +import Dict import Effect exposing (Effect) -import Route exposing (Route) -import Html +import Html.Styled as Html +import Http +import LearningResources import Page exposing (Page) +import Route exposing (Route) import Shared +import Shared.Model as SharedModel +import Shared.Msg import View exposing (View) page : Shared.Model -> Route { resource : String } -> Page Model Msg page shared route = Page.new - { init = init + { init = \() -> init shared route.params , update = update , subscriptions = subscriptions - , view = view + , view = view shared route.params } @@ -23,14 +29,37 @@ page shared route = type alias Model = - {} + { resourceInfo : ResourceInfo } + + +type ResourceInfo + = NotFound + | Loading + | Found LearningResources.LearningResourcesSet + + +init : Shared.Model -> { resource : String } -> ( Model, Effect Msg ) +init model route = + case Dict.get route.resource model.learningResources of + Nothing -> + ( { resourceInfo = Loading } + , Api.getLearningResource { name = route.resource, onResponse = LearningResourceResponded } + ) + Just info -> + ( { resourceInfo = sharedResourceInfoToResourceInfo info } + , Effect.none + ) + + +sharedResourceInfoToResourceInfo : SharedModel.ResourceInfo -> ResourceInfo +sharedResourceInfoToResourceInfo model = + case model of + SharedModel.NotFound -> + NotFound -init : () -> ( Model, Effect Msg ) -init () = - ( {} - , Effect.none - ) + SharedModel.Found resourcesSet -> + Found resourcesSet @@ -38,14 +67,19 @@ init () = type Msg - = NoOp + = LearningResourceResponded (Result Http.Error LearningResources.LearningResourcesSet) update : Msg -> Model -> ( Model, Effect Msg ) update msg model = case msg of - NoOp -> - ( model + LearningResourceResponded (Ok resourcesSet) -> + ( { model | resourceInfo = Found resourcesSet } + , Effect.none + ) + + LearningResourceResponded (Err _) -> + ( { model | resourceInfo = NotFound } , Effect.none ) @@ -63,6 +97,27 @@ subscriptions model = -- VIEW -view : Shared.Model -> Model -> View Msg -view shared model = - View.fromString "Pages.Learning.Resource_" +view : Shared.Model -> { resource : String } -> Model -> View Msg +view shared route model = + case model.resourceInfo of + Loading -> + { title = "Loading resource..." + , body = + [ Html.text "Loading learning resource..." ] + } + + NotFound -> + { title = "Resource not found" + , body = + [ Html.text "The requested learning resource could not be found." ] + } + + Found resourcesSet -> + { title = "pee" + , body = + [ Html.div [] + [ Html.text resourcesSet.name + , Html.text resourcesSet.description + ] + ] + } diff --git a/src/Shared.elm b/src/Shared.elm index 798a34f..54796c1 100644 --- a/src/Shared.elm +++ b/src/Shared.elm @@ -18,6 +18,7 @@ import Json.Decode import Route exposing (Route) import Shared.Model import Shared.Msg +import Dict @@ -43,7 +44,7 @@ type alias Model = init : Result Json.Decode.Error Flags -> Route () -> ( Model, Effect Msg ) init _ _ = - ( { learningIndex = Shared.Model.Loading } + ( { learningIndex = Shared.Model.Loading, learningResources = Dict.empty } , Api.getLearningResourcesIndex { onResponse = Shared.Msg.LearningIndexResponded } ) @@ -70,6 +71,11 @@ update _ msg model = , Effect.none ) + Shared.Msg.CacheLearningResource (resource, resourcesSet) -> + ( { model | learningResources = (Dict.insert resource (Shared.Model.Found resourcesSet) model.learningResources) } + , Effect.none + ) + Shared.Msg.RetryLearningIndex -> ( { model | learningIndex = Shared.Model.Loading } , Api.getLearningResourcesIndex diff --git a/src/Shared/Model.elm b/src/Shared/Model.elm index ec3ef13..8cd247a 100644 --- a/src/Shared/Model.elm +++ b/src/Shared/Model.elm @@ -1,7 +1,13 @@ -module Shared.Model exposing (LearningIndexStatus(..), Model) +module Shared.Model exposing + ( LearningIndexStatus(..) + , LearningResourcesData + , ResourceInfo(..) + , Model + ) {-| -} +import Dict exposing (Dict) import Http import LearningResources @@ -19,6 +25,16 @@ type LearningIndexStatus | Failure Http.Error +type alias LearningResourcesData + = (Dict String ResourceInfo) + + +type ResourceInfo + = NotFound + | Found LearningResources.LearningResourcesSet + + type alias Model = { learningIndex : LearningIndexStatus + , learningResources : LearningResourcesData } diff --git a/src/Shared/Msg.elm b/src/Shared/Msg.elm index 7c5fa99..d9035da 100644 --- a/src/Shared/Msg.elm +++ b/src/Shared/Msg.elm @@ -15,5 +15,6 @@ own file, so they can be imported by `Effect.elm` -} type Msg = LearningIndexResponded (Result Http.Error (List LearningResources.ResourceIndexEntry)) + | CacheLearningResource (String, LearningResources.LearningResourcesSet) | RetryLearningIndex | NoOp From 7f477eccd6b6aaba1c30148304088d31cfa16fd4 Mon Sep 17 00:00:00 2001 From: Alexander Wood Date: Sun, 10 May 2026 13:50:03 +0100 Subject: [PATCH 11/26] fix: learning resource caching --- src/Effect.elm | 218 +++++++++++++++++++++++++++++++ src/Pages/Learning/Resource_.elm | 10 +- 2 files changed, 223 insertions(+), 5 deletions(-) create mode 100644 src/Effect.elm diff --git a/src/Effect.elm b/src/Effect.elm new file mode 100644 index 0000000..63f0cad --- /dev/null +++ b/src/Effect.elm @@ -0,0 +1,218 @@ +module Effect exposing + ( Effect + , none, batch + , sendCmd, sendMsg + , pushRoute, replaceRoute + , pushRoutePath, replaceRoutePath + , loadExternalUrl, back + , map, toCmd + , sendSharedMsg + ) + +{-| + +@docs Effect + +@docs none, batch +@docs sendCmd, sendMsg + +@docs pushRoute, replaceRoute +@docs pushRoutePath, replaceRoutePath +@docs loadExternalUrl, back + +@docs map, toCmd + +-} + +import Browser.Navigation +import Dict exposing (Dict) +import Route exposing (Route) +import Route.Path +import Shared.Model +import Shared.Msg +import Task +import Url exposing (Url) + + +type Effect msg + = -- BASICS + None + | Batch (List (Effect msg)) + | SendCmd (Cmd msg) + -- ROUTING + | PushUrl String + | ReplaceUrl String + | LoadExternalUrl String + | Back + -- SHARED + | SendSharedMsg Shared.Msg.Msg + + + +-- BASICS + + +{-| Don't send any effect. +-} +none : Effect msg +none = + None + + +{-| Send multiple effects at once. +-} +batch : List (Effect msg) -> Effect msg +batch = + Batch + + +{-| Send a normal `Cmd msg` as an effect, something like `Http.get` or `Random.generate`. +-} +sendCmd : Cmd msg -> Effect msg +sendCmd = + SendCmd + + +{-| Send a message as an effect. Useful when emitting events from UI components. +-} +sendMsg : msg -> Effect msg +sendMsg msg = + Task.succeed msg + |> Task.perform identity + |> SendCmd + + + +-- ROUTING + + +{-| Set the new route, and make the back button go back to the current route. +-} +pushRoute : + { path : Route.Path.Path + , query : Dict String String + , hash : Maybe String + } + -> Effect msg +pushRoute route = + PushUrl (Route.toString route) + + +{-| Same as `Effect.pushRoute`, but without `query` or `hash` support +-} +pushRoutePath : Route.Path.Path -> Effect msg +pushRoutePath path = + PushUrl (Route.Path.toString path) + + +{-| Set the new route, but replace the previous one, so clicking the back +button **won't** go back to the previous route. +-} +replaceRoute : + { path : Route.Path.Path + , query : Dict String String + , hash : Maybe String + } + -> Effect msg +replaceRoute route = + ReplaceUrl (Route.toString route) + + +{-| Same as `Effect.replaceRoute`, but without `query` or `hash` support +-} +replaceRoutePath : Route.Path.Path -> Effect msg +replaceRoutePath path = + ReplaceUrl (Route.Path.toString path) + + +{-| Redirect users to a new URL, somewhere external to your web application. +-} +loadExternalUrl : String -> Effect msg +loadExternalUrl = + LoadExternalUrl + + +{-| Navigate back one page +-} +back : Effect msg +back = + Back + + + +-- INTERNALS + + +{-| Elm Land depends on this function to connect pages and layouts +together into the overall app. +-} +map : (msg1 -> msg2) -> Effect msg1 -> Effect msg2 +map fn effect = + case effect of + None -> + None + + Batch list -> + Batch (List.map (map fn) list) + + SendCmd cmd -> + SendCmd (Cmd.map fn cmd) + + PushUrl url -> + PushUrl url + + ReplaceUrl url -> + ReplaceUrl url + + Back -> + Back + + LoadExternalUrl url -> + LoadExternalUrl url + + SendSharedMsg sharedMsg -> + SendSharedMsg sharedMsg + + +{-| Elm Land depends on this function to perform your effects. +-} +toCmd : + { key : Browser.Navigation.Key + , url : Url + , shared : Shared.Model.Model + , fromSharedMsg : Shared.Msg.Msg -> msg + , batch : List msg -> msg + , toCmd : msg -> Cmd msg + } + -> Effect msg + -> Cmd msg +toCmd options effect = + case effect of + None -> + Cmd.none + + Batch list -> + Cmd.batch (List.map (toCmd options) list) + + SendCmd cmd -> + cmd + + PushUrl url -> + Browser.Navigation.pushUrl options.key url + + ReplaceUrl url -> + Browser.Navigation.replaceUrl options.key url + + Back -> + Browser.Navigation.back options.key 1 + + LoadExternalUrl url -> + Browser.Navigation.load url + + SendSharedMsg sharedMsg -> + Task.succeed sharedMsg + |> Task.perform options.fromSharedMsg + +sendSharedMsg : Shared.Msg.Msg -> Effect msg +sendSharedMsg sharedMsg = + SendSharedMsg sharedMsg \ No newline at end of file diff --git a/src/Pages/Learning/Resource_.elm b/src/Pages/Learning/Resource_.elm index 1d5eb93..a2a930b 100644 --- a/src/Pages/Learning/Resource_.elm +++ b/src/Pages/Learning/Resource_.elm @@ -2,7 +2,7 @@ module Pages.Learning.Resource_ exposing (Model, Msg, page) import Api import Dict -import Effect exposing (Effect) +import Effect exposing (Effect, sendSharedMsg) import Html.Styled as Html import Http import LearningResources @@ -29,7 +29,7 @@ page shared route = type alias Model = - { resourceInfo : ResourceInfo } + { resourceInfo : ResourceInfo, resourceId : String } type ResourceInfo @@ -42,12 +42,12 @@ init : Shared.Model -> { resource : String } -> ( Model, Effect Msg ) init model route = case Dict.get route.resource model.learningResources of Nothing -> - ( { resourceInfo = Loading } + ( { resourceInfo = Loading, resourceId = route.resource } , Api.getLearningResource { name = route.resource, onResponse = LearningResourceResponded } ) Just info -> - ( { resourceInfo = sharedResourceInfoToResourceInfo info } + ( { resourceInfo = sharedResourceInfoToResourceInfo info, resourceId = route.resource } , Effect.none ) @@ -75,7 +75,7 @@ update msg model = case msg of LearningResourceResponded (Ok resourcesSet) -> ( { model | resourceInfo = Found resourcesSet } - , Effect.none + , Effect.sendSharedMsg (Shared.Msg.CacheLearningResource ( model.resourceId, resourcesSet )) ) LearningResourceResponded (Err _) -> From 2d8b1054041104dc8b1c6894f9fdc94311227bc8 Mon Sep 17 00:00:00 2001 From: Alexander Wood Date: Sun, 10 May 2026 16:44:08 +0100 Subject: [PATCH 12/26] feat: add colours, slightly nicer UI --- elm-land.json | 4 +- flake.nix | 2 +- src/Layouts/Global.elm | 89 ++++++++++++++++++++++ src/Layouts/LearningInfo.elm | 123 ------------------------------- src/Pages/Learning.elm | 80 +++++++++++++++++--- src/Pages/Learning/Resource_.elm | 2 + static/base.css | 22 ++++++ tailwind.config.ts | 19 +++++ 8 files changed, 205 insertions(+), 136 deletions(-) create mode 100644 src/Layouts/Global.elm delete mode 100644 src/Layouts/LearningInfo.elm create mode 100644 static/base.css create mode 100644 tailwind.config.ts diff --git a/elm-land.json b/elm-land.json index 3d9c0d7..010a8f1 100644 --- a/elm-land.json +++ b/elm-land.json @@ -16,7 +16,9 @@ { "http-equiv": "X-UA-Compatible", "content": "IE=edge" }, { "name": "viewport", "content": "width=device-width, initial-scale=1.0" } ], - "link": [], + "link": [ + { "rel": "stylesheet", "href": "/base.css" } + ], "script": [] }, "router": { diff --git a/flake.nix b/flake.nix index 4782a13..04050d4 100644 --- a/flake.nix +++ b/flake.nix @@ -45,7 +45,7 @@ ]; shellHook = '' - alias tw="bunx elm-tailwind-modules --dir ./gen" + alias tw="bunx elm-tailwind-modules --dir ./gen --tailwind-config tailwind.config.ts" alias spa-server="bunx elm-land server" echo "Dev shell active." diff --git a/src/Layouts/Global.elm b/src/Layouts/Global.elm new file mode 100644 index 0000000..9630517 --- /dev/null +++ b/src/Layouts/Global.elm @@ -0,0 +1,89 @@ +module Layouts.Global exposing (Model, Msg, Props, layout) + +import Effect exposing (Effect) +import Html.Styled as Html +import Html.Styled.Attributes as Attr +import Layout exposing (Layout) +import Route exposing (Route) +import Shared +import Tailwind.Theme as Tw +import Tailwind.Utilities as Tw +import View exposing (View) + + +type alias Props = + {} + + +layout : Props -> Shared.Model -> Route () -> Layout () Model Msg contentMsg +layout props shared route = + Layout.new + { init = init + , update = update + , view = view + , subscriptions = subscriptions + } + + + +-- MODEL + + +type alias Model = + {} + + +init : () -> ( Model, Effect Msg ) +init _ = + ( {} + , Effect.none + ) + + + +-- UPDATE + + +type Msg + = ReplaceMe + + +update : Msg -> Model -> ( Model, Effect Msg ) +update msg model = + case msg of + ReplaceMe -> + ( model + , Effect.none + ) + + +subscriptions : Model -> Sub Msg +subscriptions model = + Sub.none + + + +-- VIEW + + +view : { toContentMsg : Msg -> contentMsg, content : View contentMsg, model : Model } -> View contentMsg +view { toContentMsg, model, content } = + { title = content.title ++ " | Developer Den" + , body = + [ Html.div + [ Attr.class "page" + , Attr.css + [ Tw.min_h_screen + , Tw.w_full + , Tw.bg_color Tw.dd_deepblue + , Tw.text_color Tw.white + , Tw.font_sans + , Tw.antialiased + ] + ] + [ Html.div + [ Attr.css [ Tw.max_w_7xl, Tw.mx_auto, Tw.px_8, Tw.py_12 ] ] + content.body + ] + ] + } diff --git a/src/Layouts/LearningInfo.elm b/src/Layouts/LearningInfo.elm deleted file mode 100644 index 408ddb8..0000000 --- a/src/Layouts/LearningInfo.elm +++ /dev/null @@ -1,123 +0,0 @@ -module Layouts.LearningInfo exposing (LearningInfoMode(..), Model, Msg, Props, layout) - -import Api -import Effect exposing (Effect) -import Html.Styled as Html -import Html.Styled.Attributes as Attr -import Layout exposing (Layout) -import LearningResources -import Route exposing (Route) -import Shared -import Shared.Model as SharedModel -import View exposing (View) - - -type alias Props = - { mode : LearningInfoMode } - - -type LearningInfoMode - = CardsMode -- ^ Show the index of learning resources as cards - | SidebarMode -- ^ Show the index as a sidebar - - -layout : Props -> Shared.Model -> Route () -> Layout () Model Msg contentMsg -layout props shared _ = - Layout.new - { init = init - , update = update - , view = view props shared - , subscriptions = subscriptions - } - - - --- MODEL - - -type alias Model = - {} - - -init : () -> ( Model, Effect Msg ) -init _ = - ( {} - , Effect.none - ) - - - --- UPDATE - - -type Msg - = NoOp - - -update : Msg -> Model -> ( Model, Effect Msg ) -update msg model = - case msg of - NoOp -> - ( model - , Effect.none - ) - - -subscriptions : Model -> Sub Msg -subscriptions _ = - Sub.none - - - --- VIEW - - -view : Props -> Shared.Model -> { toContentMsg : Msg -> contentMsg, content : View contentMsg, model : Model } -> View contentMsg -view props shared { content } = - { title = content.title - , body = - case shared.learningIndex of - SharedModel.Loading -> - [ Html.text "Loading learning resources..." ] - - SharedModel.Failure error -> - [ Html.text "Failed to load learning resources :(" - , Html.div [] [ Html.text (Api.toUserFriendlyMessage error) ] - ] - - SharedModel.Success entries -> - case props.mode of - CardsMode -> - [ Html.div - [ Attr.class "learning-cards" ] - (List.map viewCard entries) - ] - - SidebarMode -> - [ Html.div - [ Attr.class "learning-layout" ] - [ Html.aside - [ Attr.class "learning-sidebar" ] - [ Html.h3 [] [ Html.text "Languages" ] - , Html.ul [] (List.map viewSidebarItem entries) - ] - , Html.main_ - [ Attr.class "learning-content" ] - content.body - ] - ] - } - - -viewCard : LearningResources.ResourceIndexEntry -> Html.Html msg -viewCard entry = - Html.article - [ Attr.class "learning-card" ] - [ Html.h3 [] [ Html.text entry.name ] - , Html.p [] [ Html.text "Click to browse resources" ] - ] - - -viewSidebarItem : LearningResources.ResourceIndexEntry -> Html.Html msg -viewSidebarItem entry = - Html.li [] [ Html.text entry.name ] diff --git a/src/Pages/Learning.elm b/src/Pages/Learning.elm index 6d33cda..0369603 100644 --- a/src/Pages/Learning.elm +++ b/src/Pages/Learning.elm @@ -4,13 +4,18 @@ import Api import Effect exposing (Effect) import Html.Styled as Html import Html.Styled.Attributes as Attr +import Layouts import LearningResources import Page exposing (Page) import Route exposing (Route) +import Route.Path import Shared import Shared.Model as SharedModel +import Tailwind.Breakpoints as Breakpoints +import Tailwind.Theme as Tw +import Tailwind.Utilities as Tw import View exposing (View) -import Route.Path + page : Shared.Model -> Route () -> Page Model Msg page shared _ = @@ -20,6 +25,7 @@ page shared _ = , subscriptions = subscriptions , view = view shared } + |> Page.withLayout Layouts.Global type alias Model = @@ -65,20 +71,72 @@ view shared _ = ] SharedModel.Success entries -> - [ Html.div - [ Attr.class "learning-cards" ] - (List.map viewCard entries) + [ Html.div [] + [ Html.h1 [] [ Html.text "Learning Resources" ] + , Html.div + [ Attr.class "learning-cards" ] + (List.map viewCard entries) + ] ] } + +viewCardGrid = + Html.div + [ Attr.css + [ Tw.grid + , Tw.grid_cols_1 + , Tw.md__grid_cols_3 -- 3 columns on desktop + , Tw.gap_8 + , Tw.mt_12 + ] + ] + [ viewCard "Web Frontend" + , viewCard "Backend" + , viewCard "Systems" + ] + +viewCard : String -> Html msg +viewCard title = + div + [ css + [ Tw.flex + , Tw.flex_col + , Tw.rounded_xl + , Tw.overflow_hidden + , Tw.border + , Tw.border_slate_700 + ] + ] + [ -- Top white half + div [ css [ Tw.bg_white, Tw.h_32, Tw.w_full ] ] [] + -- Bottom dark half + , div [ css [ Tw.bg_slate_800, Tw.p_4, Tw.flex_grow ] ] + [ Html.h3 [ css [ Tw.font_bold, Tw.text_lg, Tw.mb_2 ] ] [ text title ] + , Html.p [ css [ Tw.text_xs, Tw.text_gray_400 ] ] + [ text "This is the front-end website that you are viewing right now..." ] + ] + ] + viewCard : LearningResources.ResourceIndexEntry -> Html.Html msg viewCard entry = - Html.article - [ Attr.class "learning-card" ] - [ Html.h3 [] [ Html.text entry.name ] - , Html.a [ - Route.Path.href ( Route.Path.Learning_Resource_ { resource = entry.name }) - |> Attr.fromUnstyled - ] [ Html.text "Click to browse resources" ] + Html.div + [ Attr.css + [ Tw.bg_color Tw.dd_deepblue + , Tw.text_color Tw.white + , Tw.border + , Tw.rounded_xl + , Tw.p_6 + ] + ] + [ Html.article + [ Attr.class "learning-card" ] + [ Html.h3 [] [ Html.text entry.name ] + , Html.a + [ Route.Path.href (Route.Path.Learning_Resource_ { resource = entry.name }) + |> Attr.fromUnstyled + ] + [ Html.text "Click to browse resources" ] + ] ] diff --git a/src/Pages/Learning/Resource_.elm b/src/Pages/Learning/Resource_.elm index a2a930b..b605825 100644 --- a/src/Pages/Learning/Resource_.elm +++ b/src/Pages/Learning/Resource_.elm @@ -5,6 +5,7 @@ import Dict import Effect exposing (Effect, sendSharedMsg) import Html.Styled as Html import Http +import Layouts import LearningResources import Page exposing (Page) import Route exposing (Route) @@ -22,6 +23,7 @@ page shared route = , subscriptions = subscriptions , view = view shared route.params } + |> Page.withLayout (\_ -> Layouts.Global {}) diff --git a/static/base.css b/static/base.css new file mode 100644 index 0000000..0ca377e --- /dev/null +++ b/static/base.css @@ -0,0 +1,22 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +:root { + --color-den-deepblue: #171834; + --color-den-teal: #00AFC3; + --color-den-pink: #FF52F9; + --color-den-indigo: #8099FF; +} + +.theme-light { + --color-den-deepblue: #474A9F; + --color-den-teal: #007684; + --color-den-pink: #BF00B9; + --color-den-indigo: #005FF1; +} + +body { + background-color: var(--color-den-bg); + color: var(--color-den-text); +} \ No newline at end of file diff --git a/tailwind.config.ts b/tailwind.config.ts new file mode 100644 index 0000000..89b8294 --- /dev/null +++ b/tailwind.config.ts @@ -0,0 +1,19 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: ["./src/**/*.elm"], + theme: { + extend: { + colors: { + dd: { + deepblue: 'var(--color-den-deepblue)', + teal: 'var(--color-den-teal)', + pink: 'var(--color-den-pink)', + indigo: 'var(--color-den-indigo)', + } + } + }, + }, + variants: [], + plugins: [], +} + From b8d70ed49b79d9623e879191299905ada9d1a805 Mon Sep 17 00:00:00 2001 From: Alexander Wood Date: Tue, 12 May 2026 12:27:34 +0100 Subject: [PATCH 13/26] feat: make schema to elm generation actually work --- bun.lock | 205 +++++++++++++ elm.json | 3 +- generate-elm-types.ts | 33 ++ package.json | 5 +- src/LearningResources.elm | 176 ----------- src/LearningResources/Json.elm | 513 ++++++++++++++++++++++++++++++++ src/LearningResources/Types.elm | 294 ++++++++++++++++++ src/OpenApi/Common.elm | 388 ++++++++++++++++++++++++ tsconfig.json | 30 ++ 9 files changed, 1469 insertions(+), 178 deletions(-) create mode 100644 generate-elm-types.ts delete mode 100644 src/LearningResources.elm create mode 100644 src/LearningResources/Json.elm create mode 100644 src/LearningResources/Types.elm create mode 100644 src/OpenApi/Common.elm create mode 100644 tsconfig.json diff --git a/bun.lock b/bun.lock index fc77e25..a2301d9 100644 --- a/bun.lock +++ b/bun.lock @@ -13,6 +13,9 @@ "devDependencies": { "@types/bun": "latest", "elm-land": "^0.20.1", + "elm-open-api": "^0.7.0", + "quicktype": "^23.2.6", + "quicktype-core": "^23.2.6", }, "peerDependencies": { "typescript": "^5", @@ -22,6 +25,8 @@ "packages": { "@alloc/quick-lru": ["@alloc/quick-lru@5.2.0", "", {}, "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw=="], + "@cspotcode/source-map-support": ["@cspotcode/source-map-support@0.8.1", "", { "dependencies": { "@jridgewell/trace-mapping": "0.3.9" } }, "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw=="], + "@elm_binaries/darwin_arm64": ["@elm_binaries/darwin_arm64@0.19.1-0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-mjbsH7BNHEAmoE2SCJFcfk5fIHwFIpxtSgnEAqMsVLpBUFoEtAeX+LQ+N0vSFJB3WAh73+QYx/xSluxxLcL6dA=="], "@elm_binaries/darwin_x64": ["@elm_binaries/darwin_x64@0.19.1-0", "", { "os": "darwin", "cpu": "x64" }, "sha512-QGUtrZTPBzaxgi9al6nr+9313wrnUVHuijzUK39UsPS+pa+n6CmWyV/69sHZeX9qy6UfeugE0PzF3qcUiy2GDQ=="], @@ -76,6 +81,8 @@ "@esbuild/win32-x64": ["@esbuild/win32-x64@0.20.2", "", { "os": "win32", "cpu": "x64" }, "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ=="], + "@glideapps/ts-necessities": ["@glideapps/ts-necessities@2.4.0", "", {}, "sha512-mDC+qosuNa4lxR3ioMBb6CD0XLRsQBplU+zRPUYiMLXKeVPZ6UYphdNG/EGReig0YyfnVlBKZEXl1wzTotYmPA=="], + "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="], "@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="], @@ -102,6 +109,8 @@ "@lydell/elm_win32_x64": ["@lydell/elm_win32_x64@0.19.1-1", "", { "os": "win32", "cpu": "x64" }, "sha512-3LMiJ+uUxDFLNnCd6HBmvVWSjSWjs/Z9dMXZWCMOcw3vrW9iOkRrsNGNxohRXun2YRd8wXOX8/DwVn8i2SJ3KA=="], + "@mark.probst/typescript-json-schema": ["@mark.probst/typescript-json-schema@0.55.0", "", { "dependencies": { "@types/json-schema": "^7.0.9", "@types/node": "^16.9.2", "glob": "^7.1.7", "path-equal": "^1.1.2", "safe-stable-stringify": "^2.2.0", "ts-node": "^10.9.1", "typescript": "4.9.4", "yargs": "^17.1.1" }, "bin": { "typescript-json-schema": "bin/typescript-json-schema" } }, "sha512-jI48mSnRgFQxXiE/UTUCVCpX8lK3wCFKLF1Ss2aEreboKNuLQGt3e0/YFqWVHe/WENxOaqiJvwOz+L/SrN2+qQ=="], + "@nodelib/fs.scandir": ["@nodelib/fs.scandir@2.1.5", "", { "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="], "@nodelib/fs.stat": ["@nodelib/fs.stat@2.0.5", "", {}, "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="], @@ -188,14 +197,30 @@ "@tailwindcss/postcss": ["@tailwindcss/postcss@4.3.0", "", { "dependencies": { "@alloc/quick-lru": "^5.2.0", "@tailwindcss/node": "4.3.0", "@tailwindcss/oxide": "4.3.0", "postcss": "^8.5.10", "tailwindcss": "4.3.0" } }, "sha512-Jm05Tjx+9yCLGv5qw1c+84Psds8MnyrEQYCB+FFk2lgGiUjlRqdxke4mVTuYrj2xnVZqKim2Apr5ySuQRYAw/w=="], + "@tsconfig/node10": ["@tsconfig/node10@1.0.12", "", {}, "sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ=="], + + "@tsconfig/node12": ["@tsconfig/node12@1.0.11", "", {}, "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag=="], + + "@tsconfig/node14": ["@tsconfig/node14@1.0.3", "", {}, "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow=="], + + "@tsconfig/node16": ["@tsconfig/node16@1.0.4", "", {}, "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA=="], + "@types/bun": ["@types/bun@1.3.11", "", { "dependencies": { "bun-types": "1.3.11" } }, "sha512-5vPne5QvtpjGpsGYXiFyycfpDF2ECyPcTSsFBMa0fraoxiQyMJ3SmuQIGhzPg2WJuWxVBoxWJ2kClYTcw/4fAg=="], "@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="], + "@types/json-schema": ["@types/json-schema@7.0.15", "", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="], + "@types/node": ["@types/node@25.5.0", "", { "dependencies": { "undici-types": "~7.18.0" } }, "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw=="], + "abort-controller": ["abort-controller@3.0.0", "", { "dependencies": { "event-target-shim": "^5.0.0" } }, "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg=="], + "acorn": ["acorn@8.16.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw=="], + "acorn-walk": ["acorn-walk@8.3.5", "", { "dependencies": { "acorn": "^8.11.0" } }, "sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw=="], + + "ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], + "ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], "any-promise": ["any-promise@1.3.0", "", {}, "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A=="], @@ -204,16 +229,28 @@ "arg": ["arg@5.0.2", "", {}, "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="], + "array-back": ["array-back@3.1.0", "", {}, "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q=="], + "array-buffer-byte-length": ["array-buffer-byte-length@1.0.2", "", { "dependencies": { "call-bound": "^1.0.3", "is-array-buffer": "^3.0.5" } }, "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw=="], "at-least-node": ["at-least-node@1.0.0", "", {}, "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg=="], "available-typed-arrays": ["available-typed-arrays@1.0.7", "", { "dependencies": { "possible-typed-array-names": "^1.0.0" } }, "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ=="], + "balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], + + "base64-js": ["base64-js@1.5.1", "", {}, "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="], + "binary-extensions": ["binary-extensions@2.3.0", "", {}, "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw=="], + "brace-expansion": ["brace-expansion@1.1.14", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g=="], + "braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="], + "browser-or-node": ["browser-or-node@3.0.0", "", {}, "sha512-iczIdVJzGEYhP5DqQxYM9Hh7Ztpqqi+CXZpSmX8ALFs9ecXkQIeqRyM6TfxEfMVpwhl3dSuDvxdzzo9sUOIVBQ=="], + + "buffer": ["buffer@6.0.3", "", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" } }, "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA=="], + "buffer-from": ["buffer-from@1.1.2", "", {}, "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="], "bun-types": ["bun-types@1.3.11", "", { "dependencies": { "@types/node": "*" } }, "sha512-1KGPpoxQWl9f6wcZh57LvrPIInQMn2TQ7jsgxqpRzg+l0QPOFvJVH7HmvHo/AiPgwXy+/Thf6Ov3EdVn1vOabg=="], @@ -228,14 +265,30 @@ "chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "chalk-template": ["chalk-template@0.4.0", "", { "dependencies": { "chalk": "^4.1.2" } }, "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg=="], + "chokidar": ["chokidar@3.5.3", "", { "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" }, "optionalDependencies": { "fsevents": "~2.3.2" } }, "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw=="], + "cliui": ["cliui@8.0.1", "", { "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" } }, "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ=="], + + "collection-utils": ["collection-utils@1.0.1", "", {}, "sha512-LA2YTIlR7biSpXkKYwwuzGjwL5rjWEZVOSnvdUc7gObvWe4WkjxOpfrdhoP7Hs09YWDVfg0Mal9BpAqLfVEzQg=="], + "color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="], "color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], + "command-line-args": ["command-line-args@5.2.1", "", { "dependencies": { "array-back": "^3.1.0", "find-replace": "^3.0.0", "lodash.camelcase": "^4.3.0", "typical": "^4.0.0" } }, "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg=="], + + "command-line-usage": ["command-line-usage@7.0.4", "", { "dependencies": { "array-back": "^6.2.2", "chalk-template": "^0.4.0", "table-layout": "^4.1.1", "typical": "^7.3.0" } }, "sha512-85UdvzTNx/+s5CkSgBm/0hzP80RFHAa7PsfeADE5ezZF3uHz3/Tqj9gIKGT9PTtpycc3Ua64T0oVulGfKxzfqg=="], + "commander": ["commander@7.2.0", "", {}, "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw=="], + "concat-map": ["concat-map@0.0.1", "", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="], + + "create-require": ["create-require@1.1.1", "", {}, "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ=="], + + "cross-fetch": ["cross-fetch@4.1.0", "", { "dependencies": { "node-fetch": "^2.7.0" } }, "sha512-uKm5PU+MHTootlWEY+mZ4vvXoCn4fLQxT9dSc1sXVMSFkINTJVN8cAQROpwcKm8bJ/c7rgZVIBWzH5T78sNZZw=="], + "cross-spawn": ["cross-spawn@7.0.3", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w=="], "css-what": ["css-what@5.1.0", "", {}, "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw=="], @@ -252,6 +305,8 @@ "didyoumean": ["didyoumean@1.2.2", "", {}, "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw=="], + "diff": ["diff@4.0.4", "", {}, "sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ=="], + "dlv": ["dlv@1.1.3", "", {}, "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="], "dunder-proto": ["dunder-proto@1.0.1", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="], @@ -260,8 +315,12 @@ "elm-land": ["elm-land@0.20.1", "", { "dependencies": { "@lydell/elm": "0.19.1-14", "chokidar": "3.5.3", "terser": "5.15.1", "typescript": "4.9.3", "vite": "5.2.8", "vite-plugin-elm-watch": "1.3.3" }, "bin": { "elm-land": "src/index.js" } }, "sha512-AY8BxYNT7mblaIO9SS2YQPdskZdMsLL6fqjAA5bORdkGIRDkMeaw+rXgiVSHUM2+TK0k/ld0TdQEAd24Moi5nw=="], + "elm-open-api": ["elm-open-api@0.7.0", "", { "bin": { "elm-open-api": "dist/elm-open-api.js" } }, "sha512-cp5/XHmSRz37ORgZDoaiXixb1vlZCZg+O9zi79qoHJXYm2NtWtmcOWhdnAexgX7gcrUvAWlZvckiwYHGXY5j3A=="], + "elm-tailwind-modules": ["elm-tailwind-modules@0.5.0", "", { "dependencies": { "chalk": "^4.1.1", "color-name": "^1.1.4", "commander": "^7.2.0", "css-what": "^5.0.0", "deep-equal": "^2.0.3", "fs-extra": "^9.1.0", "lodash": "^4.17.21", "rollup": "^2.45.2", "tslib": "^2.2.0" }, "peerDependencies": { "postcss": "^8.2.4", "tailwindcss": "^2.0.2 || ^3.1.6" }, "bin": { "elm-tailwind-modules": "dist/cli.js" } }, "sha512-Ad03E6lZwB2Fa+OoLTSzlRKOIzO+T5jTgTOHl53WREmNZPxcaJ+1acwdM/7RJrTkTfvoXi241pdfzzOBQX5r2A=="], + "emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], + "enhanced-resolve": ["enhanced-resolve@5.21.2", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.3.3" } }, "sha512-xe9vQb5kReirPUxgQrXA3ihgbCqssmTiM7cOZ+Gzu+VeGWgpV98lLZvp0dl4yriyAePcewxGUs9UpKD8PET9KQ=="], "es-define-property": ["es-define-property@1.0.1", "", {}, "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="], @@ -274,6 +333,12 @@ "esbuild": ["esbuild@0.20.2", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.20.2", "@esbuild/android-arm": "0.20.2", "@esbuild/android-arm64": "0.20.2", "@esbuild/android-x64": "0.20.2", "@esbuild/darwin-arm64": "0.20.2", "@esbuild/darwin-x64": "0.20.2", "@esbuild/freebsd-arm64": "0.20.2", "@esbuild/freebsd-x64": "0.20.2", "@esbuild/linux-arm": "0.20.2", "@esbuild/linux-arm64": "0.20.2", "@esbuild/linux-ia32": "0.20.2", "@esbuild/linux-loong64": "0.20.2", "@esbuild/linux-mips64el": "0.20.2", "@esbuild/linux-ppc64": "0.20.2", "@esbuild/linux-riscv64": "0.20.2", "@esbuild/linux-s390x": "0.20.2", "@esbuild/linux-x64": "0.20.2", "@esbuild/netbsd-x64": "0.20.2", "@esbuild/openbsd-x64": "0.20.2", "@esbuild/sunos-x64": "0.20.2", "@esbuild/win32-arm64": "0.20.2", "@esbuild/win32-ia32": "0.20.2", "@esbuild/win32-x64": "0.20.2" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g=="], + "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], + + "event-target-shim": ["event-target-shim@5.0.1", "", {}, "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ=="], + + "events": ["events@3.3.0", "", {}, "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q=="], + "fast-glob": ["fast-glob@3.3.3", "", { "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.8" } }, "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg=="], "fastq": ["fastq@1.20.1", "", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw=="], @@ -282,26 +347,36 @@ "fill-range": ["fill-range@7.1.1", "", { "dependencies": { "to-regex-range": "^5.0.1" } }, "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="], + "find-replace": ["find-replace@3.0.0", "", { "dependencies": { "array-back": "^3.0.1" } }, "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ=="], + "for-each": ["for-each@0.3.5", "", { "dependencies": { "is-callable": "^1.2.7" } }, "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg=="], "fs-extra": ["fs-extra@9.1.0", "", { "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ=="], + "fs.realpath": ["fs.realpath@1.0.0", "", {}, "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="], + "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], "function-bind": ["function-bind@1.1.2", "", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="], "functions-have-names": ["functions-have-names@1.2.3", "", {}, "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ=="], + "get-caller-file": ["get-caller-file@2.0.5", "", {}, "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="], + "get-intrinsic": ["get-intrinsic@1.3.0", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.1.0" } }, "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="], "get-proto": ["get-proto@1.0.1", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" } }, "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="], + "glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="], + "glob-parent": ["glob-parent@6.0.2", "", { "dependencies": { "is-glob": "^4.0.3" } }, "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="], "gopd": ["gopd@1.2.0", "", {}, "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="], "graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="], + "graphql": ["graphql@0.11.7", "", { "dependencies": { "iterall": "1.1.3" } }, "sha512-x7uDjyz8Jx+QPbpCFCMQ8lltnQa4p4vSYHx6ADe8rVYRTdsyhCJbvSty5DAsLVmU6cGakl+r8HQYolKHxk/tiw=="], + "has-bigints": ["has-bigints@1.1.0", "", {}, "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg=="], "has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], @@ -314,6 +389,12 @@ "hasown": ["hasown@2.0.2", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="], + "ieee754": ["ieee754@1.2.1", "", {}, "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="], + + "inflight": ["inflight@1.0.6", "", { "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA=="], + + "inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="], + "internal-slot": ["internal-slot@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "hasown": "^2.0.2", "side-channel": "^1.1.0" } }, "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw=="], "is-arguments": ["is-arguments@1.2.0", "", { "dependencies": { "call-bound": "^1.0.2", "has-tostringtag": "^1.0.2" } }, "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA=="], @@ -334,6 +415,8 @@ "is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="], + "is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="], + "is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="], "is-map": ["is-map@2.0.3", "", {}, "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw=="], @@ -352,6 +435,8 @@ "is-symbol": ["is-symbol@1.1.1", "", { "dependencies": { "call-bound": "^1.0.2", "has-symbols": "^1.1.0", "safe-regex-test": "^1.1.0" } }, "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w=="], + "is-url": ["is-url@1.2.4", "", {}, "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww=="], + "is-weakmap": ["is-weakmap@2.0.2", "", {}, "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w=="], "is-weakset": ["is-weakset@2.0.4", "", { "dependencies": { "call-bound": "^1.0.3", "get-intrinsic": "^1.2.6" } }, "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ=="], @@ -360,8 +445,12 @@ "isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], + "iterall": ["iterall@1.1.3", "", {}, "sha512-Cu/kb+4HiNSejAPhSaN1VukdNTTi/r4/e+yykqjlG/IW+1gZH5b4+Bq3whDX4tvbYugta3r8KTMUiqT3fIGxuQ=="], + "jiti": ["jiti@1.21.7", "", { "bin": { "jiti": "bin/jiti.js" } }, "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A=="], + "js-base64": ["js-base64@3.7.8", "", {}, "sha512-hNngCeKxIUQiEUN3GPJOkz4wF/YvdUdbNL9hsBcMQTkKzboD7T/q3OYOuuPZLUE6dBxSGpwhk5mwuDud7JVAow=="], + "jsonfile": ["jsonfile@6.2.0", "", { "dependencies": { "universalify": "^2.0.0" }, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg=="], "launch-editor": ["launch-editor@2.6.1", "", { "dependencies": { "picocolors": "^1.0.0", "shell-quote": "^1.8.1" } }, "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw=="], @@ -396,18 +485,28 @@ "lodash": ["lodash@4.17.23", "", {}, "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w=="], + "lodash.camelcase": ["lodash.camelcase@4.3.0", "", {}, "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA=="], + "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], + "make-error": ["make-error@1.3.6", "", {}, "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw=="], + "math-intrinsics": ["math-intrinsics@1.1.0", "", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="], "merge2": ["merge2@1.4.1", "", {}, "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="], "micromatch": ["micromatch@4.0.8", "", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="], + "minimatch": ["minimatch@3.1.5", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w=="], + + "moment": ["moment@2.30.1", "", {}, "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how=="], + "mz": ["mz@2.7.0", "", { "dependencies": { "any-promise": "^1.0.0", "object-assign": "^4.0.1", "thenify-all": "^1.0.0" } }, "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q=="], "nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="], + "node-fetch": ["node-fetch@2.7.0", "", { "dependencies": { "whatwg-url": "^5.0.0" }, "peerDependencies": { "encoding": "^0.1.0" }, "optionalPeers": ["encoding"] }, "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A=="], + "normalize-path": ["normalize-path@3.0.0", "", {}, "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="], "object-assign": ["object-assign@4.1.1", "", {}, "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="], @@ -422,6 +521,14 @@ "object.assign": ["object.assign@4.1.7", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0", "has-symbols": "^1.1.0", "object-keys": "^1.1.1" } }, "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw=="], + "once": ["once@1.4.0", "", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="], + + "pako": ["pako@1.0.11", "", {}, "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="], + + "path-equal": ["path-equal@1.2.5", "", {}, "sha512-i73IctDr3F2W+bsOWDyyVm/lqsXO47aY9nsFZUjTT/aljSbkxHxxCoyZ9UUrM8jK0JVod+An+rl48RCsvWM+9g=="], + + "path-is-absolute": ["path-is-absolute@1.0.1", "", {}, "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="], + "path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="], "path-parse": ["path-parse@1.0.7", "", {}, "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="], @@ -434,6 +541,8 @@ "pirates": ["pirates@4.0.7", "", {}, "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA=="], + "pluralize": ["pluralize@8.0.0", "", {}, "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA=="], + "possible-typed-array-names": ["possible-typed-array-names@1.1.0", "", {}, "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg=="], "postcss": ["postcss@8.5.8", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg=="], @@ -450,14 +559,28 @@ "postcss-value-parser": ["postcss-value-parser@4.2.0", "", {}, "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="], + "process": ["process@0.11.10", "", {}, "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A=="], + "queue-microtask": ["queue-microtask@1.2.3", "", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="], + "quicktype": ["quicktype@23.2.6", "", { "dependencies": { "@glideapps/ts-necessities": "^2.2.3", "chalk": "^4.1.2", "collection-utils": "^1.0.1", "command-line-args": "^5.2.1", "command-line-usage": "^7.0.1", "cross-fetch": "^4.0.0", "graphql": "^0.11.7", "lodash": "^4.17.21", "moment": "^2.30.1", "quicktype-core": "23.2.6", "quicktype-graphql-input": "23.2.6", "quicktype-typescript-input": "23.2.6", "readable-stream": "^4.5.2", "stream-json": "1.8.0", "string-to-stream": "^3.0.1", "typescript": "~5.8.3" }, "bin": { "quicktype": "dist/index.js" } }, "sha512-rlD1jF71bOmDn6SQ/ToLuuRkMQ7maxo5oVTn5dPCl11ymqoJCFCvl7FzRfh+fkDFmWt2etl+JiIEdWImLxferA=="], + + "quicktype-core": ["quicktype-core@23.2.6", "", { "dependencies": { "@glideapps/ts-necessities": "2.2.3", "browser-or-node": "^3.0.0", "collection-utils": "^1.0.1", "cross-fetch": "^4.0.0", "is-url": "^1.2.4", "js-base64": "^3.7.7", "lodash": "^4.17.21", "pako": "^1.0.6", "pluralize": "^8.0.0", "readable-stream": "4.5.2", "unicode-properties": "^1.4.1", "urijs": "^1.19.1", "wordwrap": "^1.0.0", "yaml": "^2.4.1" } }, "sha512-asfeSv7BKBNVb9WiYhFRBvBZHcRutPRBwJMxW0pefluK4kkKu4lv0IvZBwFKvw2XygLcL1Rl90zxWDHYgkwCmA=="], + + "quicktype-graphql-input": ["quicktype-graphql-input@23.2.6", "", { "dependencies": { "collection-utils": "^1.0.1", "graphql": "^0.11.7", "quicktype-core": "23.2.6" } }, "sha512-jHQ8XrEaccZnWA7h/xqUQhfl+0mR5o91T6k3I4QhlnZSLdVnbycrMq4FHa9EaIFcai783JKwSUl1+koAdJq4pg=="], + + "quicktype-typescript-input": ["quicktype-typescript-input@23.2.6", "", { "dependencies": { "@mark.probst/typescript-json-schema": "0.55.0", "quicktype-core": "23.2.6", "typescript": "4.9.5" } }, "sha512-dCNMxR+7PGs9/9Tsth9H6LOQV1G+Tv4sUGT8ZUfDRJ5Hq371qOYLma5BnLX6VxkPu8JT7mAMpQ9VFlxstX6Qaw=="], + "read-cache": ["read-cache@1.0.0", "", { "dependencies": { "pify": "^2.3.0" } }, "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA=="], + "readable-stream": ["readable-stream@4.7.0", "", { "dependencies": { "abort-controller": "^3.0.0", "buffer": "^6.0.3", "events": "^3.3.0", "process": "^0.11.10", "string_decoder": "^1.3.0" } }, "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg=="], + "readdirp": ["readdirp@3.6.0", "", { "dependencies": { "picomatch": "^2.2.1" } }, "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA=="], "regexp.prototype.flags": ["regexp.prototype.flags@1.5.4", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-errors": "^1.3.0", "get-proto": "^1.0.1", "gopd": "^1.2.0", "set-function-name": "^2.0.2" } }, "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA=="], + "require-directory": ["require-directory@2.1.1", "", {}, "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="], + "resolve": ["resolve@1.22.11", "", { "dependencies": { "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ=="], "reusify": ["reusify@1.1.0", "", {}, "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw=="], @@ -466,8 +589,12 @@ "run-parallel": ["run-parallel@1.2.0", "", { "dependencies": { "queue-microtask": "^1.2.2" } }, "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="], + "safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], + "safe-regex-test": ["safe-regex-test@1.1.0", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-regex": "^1.2.1" } }, "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw=="], + "safe-stable-stringify": ["safe-stable-stringify@2.5.0", "", {}, "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA=="], + "set-function-length": ["set-function-length@1.2.2", "", { "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.2" } }, "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg=="], "set-function-name": ["set-function-name@2.0.2", "", { "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", "has-property-descriptors": "^1.0.2" } }, "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ=="], @@ -494,12 +621,26 @@ "stop-iteration-iterator": ["stop-iteration-iterator@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "internal-slot": "^1.1.0" } }, "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ=="], + "stream-chain": ["stream-chain@2.2.5", "", {}, "sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA=="], + + "stream-json": ["stream-json@1.8.0", "", { "dependencies": { "stream-chain": "^2.2.5" } }, "sha512-HZfXngYHUAr1exT4fxlbc1IOce1RYxp2ldeaf97LYCOPSoOqY/1Psp7iGvpb+6JIOgkra9zDYnPX01hGAHzEPw=="], + + "string-to-stream": ["string-to-stream@3.0.1", "", { "dependencies": { "readable-stream": "^3.4.0" } }, "sha512-Hl092MV3USJuUCC6mfl9sPzGloA3K5VwdIeJjYIkXY/8K+mUvaeEabWJgArp+xXrsWxCajeT2pc4axbVhIZJyg=="], + + "string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], + + "string_decoder": ["string_decoder@1.3.0", "", { "dependencies": { "safe-buffer": "~5.2.0" } }, "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA=="], + + "strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], + "sucrase": ["sucrase@3.35.1", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", "commander": "^4.0.0", "lines-and-columns": "^1.1.6", "mz": "^2.7.0", "pirates": "^4.0.1", "tinyglobby": "^0.2.11", "ts-interface-checker": "^0.1.9" }, "bin": { "sucrase": "bin/sucrase", "sucrase-node": "bin/sucrase-node" } }, "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw=="], "supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], "supports-preserve-symlinks-flag": ["supports-preserve-symlinks-flag@1.0.0", "", {}, "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="], + "table-layout": ["table-layout@4.1.1", "", { "dependencies": { "array-back": "^6.2.2", "wordwrapjs": "^5.1.0" } }, "sha512-iK5/YhZxq5GO5z8wb0bY1317uDF3Zjpha0QFFLA8/trAoiLbQD0HUbMesEaxyzUgDxi2QlcbM8IvqOlEjgoXBA=="], + "tailwindcss": ["tailwindcss@3.4.19", "", { "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", "chokidar": "^3.6.0", "didyoumean": "^1.2.2", "dlv": "^1.1.3", "fast-glob": "^3.3.2", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", "jiti": "^1.21.7", "lilconfig": "^3.1.3", "micromatch": "^4.0.8", "normalize-path": "^3.0.0", "object-hash": "^3.0.0", "picocolors": "^1.1.1", "postcss": "^8.4.47", "postcss-import": "^15.1.0", "postcss-js": "^4.0.1", "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0", "postcss-nested": "^6.2.0", "postcss-selector-parser": "^6.1.2", "resolve": "^1.22.8", "sucrase": "^3.35.0" }, "bin": { "tailwind": "lib/cli.js", "tailwindcss": "lib/cli.js" } }, "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ=="], "tapable": ["tapable@2.3.3", "", {}, "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A=="], @@ -512,26 +653,46 @@ "tiny-decoders": ["tiny-decoders@7.0.1", "", {}, "sha512-P1LaHTLASl/lCrdtwgAAVwxt4bEAPmxpf9HMQrlCkAseaT8oH8oxm8ndy4nx5rLTcL5U/Qxp1a+FDoQfS/ZgQQ=="], + "tiny-inflate": ["tiny-inflate@1.0.3", "", {}, "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw=="], + "tinyglobby": ["tinyglobby@0.2.15", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.3" } }, "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ=="], "to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="], + "tr46": ["tr46@0.0.3", "", {}, "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="], + "ts-interface-checker": ["ts-interface-checker@0.1.13", "", {}, "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA=="], + "ts-node": ["ts-node@10.9.2", "", { "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", "@tsconfig/node12": "^1.0.7", "@tsconfig/node14": "^1.0.0", "@tsconfig/node16": "^1.0.2", "acorn": "^8.4.1", "acorn-walk": "^8.1.1", "arg": "^4.1.0", "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", "v8-compile-cache-lib": "^3.0.1", "yn": "3.1.1" }, "peerDependencies": { "@swc/core": ">=1.2.50", "@swc/wasm": ">=1.2.50", "@types/node": "*", "typescript": ">=2.7" }, "optionalPeers": ["@swc/core", "@swc/wasm"], "bin": { "ts-node": "dist/bin.js", "ts-script": "dist/bin-script-deprecated.js", "ts-node-cwd": "dist/bin-cwd.js", "ts-node-esm": "dist/bin-esm.js", "ts-node-script": "dist/bin-script.js", "ts-node-transpile-only": "dist/bin-transpile.js" } }, "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ=="], + "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], "typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], + "typical": ["typical@4.0.0", "", {}, "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw=="], + "undici-types": ["undici-types@7.18.2", "", {}, "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w=="], + "unicode-properties": ["unicode-properties@1.4.1", "", { "dependencies": { "base64-js": "^1.3.0", "unicode-trie": "^2.0.0" } }, "sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg=="], + + "unicode-trie": ["unicode-trie@2.0.0", "", { "dependencies": { "pako": "^0.2.5", "tiny-inflate": "^1.0.0" } }, "sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ=="], + "universalify": ["universalify@2.0.1", "", {}, "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw=="], + "urijs": ["urijs@1.19.11", "", {}, "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ=="], + "util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="], + "v8-compile-cache-lib": ["v8-compile-cache-lib@3.0.1", "", {}, "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg=="], + "vite": ["vite@5.2.8", "", { "dependencies": { "esbuild": "^0.20.1", "postcss": "^8.4.38", "rollup": "^4.13.0" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || >=20.0.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "stylus": "*", "sugarss": "*", "terser": "^5.4.0" }, "optionalPeers": ["@types/node", "less", "lightningcss", "sass", "stylus", "sugarss", "terser"], "bin": { "vite": "bin/vite.js" } }, "sha512-OyZR+c1CE8yeHw5V5t59aXsUPPVTHMDjEZz8MgguLL/Q7NblxhZUlTu9xSPqlsUO/y+X7dlU05jdhvyycD55DA=="], "vite-plugin-elm-watch": ["vite-plugin-elm-watch@1.3.3", "", { "dependencies": { "cross-spawn": "7.0.3", "elm": "0.19.1-6", "launch-editor": "2.6.1", "terser": "5.26.0", "tiny-decoders": "7.0.1" } }, "sha512-rR78gmeYp08E4CvtpnZuumsmNXaG/XOJ/xtOVfEG3TOJqDChXy1DzE1pnPsERohbELkov7ZZPHRLGV1z2iyxKg=="], + "webidl-conversions": ["webidl-conversions@3.0.1", "", {}, "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="], + + "whatwg-url": ["whatwg-url@5.0.0", "", { "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw=="], + "which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], "which-boxed-primitive": ["which-boxed-primitive@1.1.1", "", { "dependencies": { "is-bigint": "^1.1.0", "is-boolean-object": "^1.2.1", "is-number-object": "^1.1.1", "is-string": "^1.1.1", "is-symbol": "^1.1.1" } }, "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA=="], @@ -540,6 +701,30 @@ "which-typed-array": ["which-typed-array@1.1.20", "", { "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "call-bound": "^1.0.4", "for-each": "^0.3.5", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2" } }, "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg=="], + "wordwrap": ["wordwrap@1.0.0", "", {}, "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q=="], + + "wordwrapjs": ["wordwrapjs@5.1.1", "", {}, "sha512-0yweIbkINJodk27gX9LBGMzyQdBDan3s/dEAiwBOj+Mf0PPyWL6/rikalkv8EeD0E8jm4o5RXEOrFTP3NXbhJg=="], + + "wrap-ansi": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="], + + "wrappy": ["wrappy@1.0.2", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="], + + "y18n": ["y18n@5.0.8", "", {}, "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="], + + "yaml": ["yaml@2.9.0", "", { "bin": { "yaml": "bin.mjs" } }, "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA=="], + + "yargs": ["yargs@17.7.2", "", { "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", "yargs-parser": "^21.1.1" } }, "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w=="], + + "yargs-parser": ["yargs-parser@21.1.1", "", {}, "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw=="], + + "yn": ["yn@3.1.1", "", {}, "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q=="], + + "@cspotcode/source-map-support/@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.9", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" } }, "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ=="], + + "@mark.probst/typescript-json-schema/@types/node": ["@types/node@16.18.126", "", {}, "sha512-OTcgaiwfGFBKacvfwuHzzn1KLxH/er8mluiy8/uM3sGXHaRe73RrSIj01jow9t4kJEW633Ov+cOexXeiApTyAw=="], + + "@mark.probst/typescript-json-schema/typescript": ["typescript@4.9.4", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg=="], + "@tailwindcss/node/jiti": ["jiti@2.7.0", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ=="], "@tailwindcss/node/tailwindcss": ["tailwindcss@4.3.0", "", {}, "sha512-y6nxMGB1nMW9R6k96e5gdIFzcfL/gTJRNaqGes1YvkLnPVXzWgbqFF2yLC0T8G774n24cx3Pe8XrKoniCOAH+Q=="], @@ -562,18 +747,38 @@ "chokidar/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], + "command-line-usage/array-back": ["array-back@6.2.3", "", {}, "sha512-SGDvmg6QTYiTxCBkYVmThcoa67uLl35pyzRHdpCGBOcqFy6BtwnphoFPk7LhJshD+Yk1Kt35WGWeZPTgwR4Fhw=="], + + "command-line-usage/typical": ["typical@7.3.0", "", {}, "sha512-ya4mg/30vm+DOWfBg4YK3j2WD6TWtRkCbasOJr40CseYENzCUby/7rIvXA99JGsQHeNxLbnXdyLLxKSv3tauFw=="], + "elm-land/typescript": ["typescript@4.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA=="], "fast-glob/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], + "quicktype/typescript": ["typescript@5.8.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ=="], + + "quicktype-core/@glideapps/ts-necessities": ["@glideapps/ts-necessities@2.2.3", "", {}, "sha512-gXi0awOZLHk3TbW55GZLCPP6O+y/b5X1pBXKBVckFONSwF1z1E5ND2BGJsghQFah+pW7pkkyFb2VhUQI2qhL5w=="], + + "quicktype-core/readable-stream": ["readable-stream@4.5.2", "", { "dependencies": { "abort-controller": "^3.0.0", "buffer": "^6.0.3", "events": "^3.3.0", "process": "^0.11.10", "string_decoder": "^1.3.0" } }, "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g=="], + + "quicktype-typescript-input/typescript": ["typescript@4.9.5", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g=="], + + "string-to-stream/readable-stream": ["readable-stream@3.6.2", "", { "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="], + "sucrase/commander": ["commander@4.1.1", "", {}, "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA=="], + "table-layout/array-back": ["array-back@6.2.3", "", {}, "sha512-SGDvmg6QTYiTxCBkYVmThcoa67uLl35pyzRHdpCGBOcqFy6BtwnphoFPk7LhJshD+Yk1Kt35WGWeZPTgwR4Fhw=="], + "tailwindcss/chokidar": ["chokidar@3.6.0", "", { "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" }, "optionalDependencies": { "fsevents": "~2.3.2" } }, "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw=="], "terser/commander": ["commander@2.20.3", "", {}, "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="], "tinyglobby/picomatch": ["picomatch@4.0.4", "", {}, "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A=="], + "ts-node/arg": ["arg@4.1.3", "", {}, "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA=="], + + "unicode-trie/pako": ["pako@0.2.9", "", {}, "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA=="], + "vite/rollup": ["rollup@4.60.0", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.60.0", "@rollup/rollup-android-arm64": "4.60.0", "@rollup/rollup-darwin-arm64": "4.60.0", "@rollup/rollup-darwin-x64": "4.60.0", "@rollup/rollup-freebsd-arm64": "4.60.0", "@rollup/rollup-freebsd-x64": "4.60.0", "@rollup/rollup-linux-arm-gnueabihf": "4.60.0", "@rollup/rollup-linux-arm-musleabihf": "4.60.0", "@rollup/rollup-linux-arm64-gnu": "4.60.0", "@rollup/rollup-linux-arm64-musl": "4.60.0", "@rollup/rollup-linux-loong64-gnu": "4.60.0", "@rollup/rollup-linux-loong64-musl": "4.60.0", "@rollup/rollup-linux-ppc64-gnu": "4.60.0", "@rollup/rollup-linux-ppc64-musl": "4.60.0", "@rollup/rollup-linux-riscv64-gnu": "4.60.0", "@rollup/rollup-linux-riscv64-musl": "4.60.0", "@rollup/rollup-linux-s390x-gnu": "4.60.0", "@rollup/rollup-linux-x64-gnu": "4.60.0", "@rollup/rollup-linux-x64-musl": "4.60.0", "@rollup/rollup-openbsd-x64": "4.60.0", "@rollup/rollup-openharmony-arm64": "4.60.0", "@rollup/rollup-win32-arm64-msvc": "4.60.0", "@rollup/rollup-win32-ia32-msvc": "4.60.0", "@rollup/rollup-win32-x64-gnu": "4.60.0", "@rollup/rollup-win32-x64-msvc": "4.60.0", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-yqjxruMGBQJ2gG4HtjZtAfXArHomazDHoFwFFmZZl0r7Pdo7qCIXKqKHZc8yeoMgzJJ+pO6pEEHa+V7uzWlrAQ=="], "vite-plugin-elm-watch/terser": ["terser@5.26.0", "", { "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, "bin": { "terser": "bin/terser" } }, "sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ=="], diff --git a/elm.json b/elm.json index 2640b95..07a8d15 100644 --- a/elm.json +++ b/elm.json @@ -8,7 +8,9 @@ "elm-version": "0.19.1", "dependencies": { "direct": { + "NoRedInk/elm-json-decode-pipeline": "1.0.1", "elm/browser": "1.0.2", + "elm/bytes": "1.0.8", "elm/core": "1.0.5", "elm/html": "1.0.0", "elm/http": "2.0.0", @@ -20,7 +22,6 @@ "rtfeldman/elm-css": "18.0.0" }, "indirect": { - "elm/bytes": "1.0.8", "elm/file": "1.0.5", "elm/parser": "1.1.0", "elm/random": "1.0.0", diff --git a/generate-elm-types.ts b/generate-elm-types.ts new file mode 100644 index 0000000..c3a186c --- /dev/null +++ b/generate-elm-types.ts @@ -0,0 +1,33 @@ +import { + quicktype, + InputData, + JSONSchemaInput, + FetchingJSONSchemaStore +} from "quicktype-core"; +import path from "path"; +import fs from "fs" +import { $ } from "bun"; + +const SCHEMA_URL = "https://cdn.jsdelivr.net/gh/TheDeveloperDen/LearningResources@master/openapi.schema.json"; +const OUTPUT_DIR = path.join(__dirname, "./src"); +const MODULE_NAME = "LearningResources"; + +async function generateElmTypes() { + + await $`bunx elm-open-api ${SCHEMA_URL} --output-dir ${OUTPUT_DIR} --module-name LearningResources`; + + // remove the generated Api.elm file since we only care about the types + const apiFilePath = path.join(OUTPUT_DIR, "LearningResources/Api.elm"); + try { + await fs.promises.unlink(apiFilePath); + } catch (e) { + // doesnt exist + } + + console.log(`Successfully generated Elm types in ${OUTPUT_DIR}/${MODULE_NAME}`); +} + +generateElmTypes().catch(error => { + console.error("Generation failed:", error); + process.exit(1); +}); \ No newline at end of file diff --git a/package.json b/package.json index f5ec709..c01830a 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,10 @@ "private": true, "devDependencies": { "@types/bun": "latest", - "elm-land": "^0.20.1" + "elm-land": "^0.20.1", + "elm-open-api": "^0.7.0", + "quicktype": "^23.2.6", + "quicktype-core": "^23.2.6" }, "peerDependencies": { "typescript": "^5" diff --git a/src/LearningResources.elm b/src/LearningResources.elm deleted file mode 100644 index d41dd77..0000000 --- a/src/LearningResources.elm +++ /dev/null @@ -1,176 +0,0 @@ -module LearningResources exposing - ( LearningResourcesSet - , Price(..) - , Resource - , ResourceIndexEntry - , learningResourcesSet - , learningResourcesSetToString - ) - -import Dict exposing (Dict) -import Yaml.Decode as Jdec -import Yaml.Encode as Jenc - - -type alias ResourceIndexEntry = - { name : String - } - - -{-| Set of resources that can be used for learning programming - -description: -A brief description of the language and its uses - -emoji: -A Unicode emoji glyph or Discord emoji ID to represent the resource, if applicable. The -emoji must be part of the main DevDen server, which isn't great design but there's not -really a better way of doing it. - -name: -The name of the language - -resources: -List of resources that can be used for learning / practicing the language - --} -type alias LearningResourcesSet = - { description : String - , emoji : Maybe String - , name : String - , resources : List Resource - } - - -{-| cons: -Array of cons for using the resource, e.g. 'only teaches the basics rather than more -advanced concepts' - -description: -A brief description of the resource - -name: -The official name of the resource - -price: -The price of the resource, if it has one. If the resource is free, omit this field. - -pros: -Array of pros for using the resource, e.g. 'explains difficult concepts with good -analogies' - -url: -URL to the resource - --} -type alias Resource = - { cons : List String - , description : Maybe String - , name : String - , price : Maybe Price - , pros : List String - , url : String - } - - -{-| The price of the resource, if it has one. If the resource is free, omit this field. --} -type Price - = DoubleInPrice Float - | StringInPrice String - - - --- decoders and encoders - - -learningResourcesSetToString : LearningResourcesSet -> String -learningResourcesSetToString r = - Jenc.toString 0 (encodeLearningResourcesSet r) - - -learningResourcesSet : Jdec.Decoder LearningResourcesSet -learningResourcesSet = - Jdec.map4 LearningResourcesSet - (Jdec.field "description" Jdec.string) - (optionalField "emoji" Jdec.string) - (Jdec.field "name" Jdec.string) - (Jdec.field "resources" (Jdec.list resource)) - - -encodeLearningResourcesSet : LearningResourcesSet -> Jenc.Encoder -encodeLearningResourcesSet x = - Jenc.record - [ ( "description", Jenc.string x.description ) - , ( "emoji", makeNullableEncoder Jenc.string x.emoji ) - , ( "name", Jenc.string x.name ) - , ( "resources", makeListEncoder encodeResource x.resources ) - ] - - -resource : Jdec.Decoder Resource -resource = - Jdec.map6 Resource - (Jdec.field "cons" (Jdec.list Jdec.string)) - (optionalField "description" Jdec.string) - (Jdec.field "name" Jdec.string) - (optionalField "price" price) - (Jdec.field "pros" (Jdec.list Jdec.string)) - (Jdec.field "url" Jdec.string) - - -encodeResource : Resource -> Jenc.Encoder -encodeResource x = - Jenc.record - [ ( "cons", makeListEncoder Jenc.string x.cons ) - , ( "description", makeNullableEncoder Jenc.string x.description ) - , ( "name", Jenc.string x.name ) - , ( "price", makeNullableEncoder encodePrice x.price ) - , ( "pros", makeListEncoder Jenc.string x.pros ) - , ( "url", Jenc.string x.url ) - ] - - -price : Jdec.Decoder Price -price = - Jdec.oneOf - [ Jdec.map StringInPrice Jdec.string - , Jdec.map DoubleInPrice Jdec.float - ] - - -optionalField : String -> Jdec.Decoder a -> Jdec.Decoder (Maybe a) -optionalField name decoder = - Jdec.oneOf - [ Jdec.field name (Jdec.nullable decoder) - , Jdec.succeed Nothing - ] - - -encodePrice : Price -> Jenc.Encoder -encodePrice x = - case x of - StringInPrice y -> - Jenc.string y - - DoubleInPrice y -> - Jenc.float y - - - ---- encoder helpers - - -makeListEncoder : (a -> Jenc.Encoder) -> List a -> Jenc.Encoder -makeListEncoder f arr = - Jenc.list f arr - - -makeNullableEncoder : (a -> Jenc.Encoder) -> Maybe a -> Jenc.Encoder -makeNullableEncoder f m = - case m of - Just x -> - f x - - Nothing -> - Jenc.null diff --git a/src/LearningResources/Json.elm b/src/LearningResources/Json.elm new file mode 100644 index 0000000..6c89658 --- /dev/null +++ b/src/LearningResources/Json.elm @@ -0,0 +1,513 @@ +module LearningResources.Json exposing + ( encodeCompiledMeta, encodeDatabase, encodeEntityTag, encodeFreePricing, encodePaidPricing, encodePricing + , encodeResource, encodeResourceCategory + , decodeCompiledMeta, decodeDatabase, decodeEntityTag, decodeFreePricing, decodePaidPricing, decodePricing + , decodeResource, decodeResourceCategory + ) + +{-| + + +## Encoders + +@docs encodeCompiledMeta, encodeDatabase, encodeEntityTag, encodeFreePricing, encodePaidPricing, encodePricing +@docs encodeResource, encodeResourceCategory + + +## Decoders + +@docs decodeCompiledMeta, decodeDatabase, decodeEntityTag, decodeFreePricing, decodePaidPricing, decodePricing +@docs decodeResource, decodeResourceCategory + +-} + +import Json.Decode +import Json.Encode +import LearningResources.Types +import OpenApi.Common + + +decodeResourceCategory : Json.Decode.Decoder LearningResources.Types.ResourceCategory +decodeResourceCategory = + Json.Decode.value + + +encodeResourceCategory : LearningResources.Types.ResourceCategory -> Json.Encode.Value +encodeResourceCategory = + Basics.identity + + +decodeResource : Json.Decode.Decoder LearningResources.Types.Resource +decodeResource = + Json.Decode.succeed + (\cons description name pricing pros teaches type_ url -> + { cons = cons + , description = description + , name = name + , pricing = pricing + , pros = pros + , teaches = teaches + , type_ = type_ + , url = url + } + ) + |> OpenApi.Common.jsonDecodeAndMap + (OpenApi.Common.decodeOptionalField + "cons" + (Json.Decode.list Json.Decode.string) + ) + |> OpenApi.Common.jsonDecodeAndMap + (OpenApi.Common.decodeOptionalField + "description" + Json.Decode.string + ) + |> OpenApi.Common.jsonDecodeAndMap + (Json.Decode.field + "name" + Json.Decode.string + ) + |> OpenApi.Common.jsonDecodeAndMap + (Json.Decode.field + "pricing" + (Json.Decode.oneOf + [ Json.Decode.map + LearningResources.Types.FreePricing_Or_PaidPricing__FreePricing + decodeFreePricing + , Json.Decode.map + LearningResources.Types.FreePricing_Or_PaidPricing__PaidPricing + decodePaidPricing + ] + ) + ) + |> OpenApi.Common.jsonDecodeAndMap + (OpenApi.Common.decodeOptionalField + "pros" + (Json.Decode.list + Json.Decode.string + ) + ) + |> OpenApi.Common.jsonDecodeAndMap + (Json.Decode.field + "teaches" + (Json.Decode.list + decodeEntityTag + ) + ) + |> OpenApi.Common.jsonDecodeAndMap + (Json.Decode.field + "type" + (Json.Decode.list + Json.Decode.string + ) + ) + |> OpenApi.Common.jsonDecodeAndMap + (Json.Decode.field + "url" + Json.Decode.string + ) + + +encodeResource : LearningResources.Types.Resource -> Json.Encode.Value +encodeResource rec = + Json.Encode.object + (List.filterMap + Basics.identity + [ Maybe.map + (\mapUnpack -> + ( "cons", Json.Encode.list Json.Encode.string mapUnpack ) + ) + rec.cons + , Maybe.map + (\mapUnpack -> ( "description", Json.Encode.string mapUnpack )) + rec.description + , Just ( "name", Json.Encode.string rec.name ) + , Just + ( "pricing" + , case rec.pricing of + LearningResources.Types.FreePricing_Or_PaidPricing__FreePricing content -> + encodeFreePricing content + + LearningResources.Types.FreePricing_Or_PaidPricing__PaidPricing content -> + encodePaidPricing content + ) + , Maybe.map + (\mapUnpack -> + ( "pros", Json.Encode.list Json.Encode.string mapUnpack ) + ) + rec.pros + , Just ( "teaches", Json.Encode.list encodeEntityTag rec.teaches ) + , Just ( "type", Json.Encode.list Json.Encode.string rec.type_ ) + , Just ( "url", Json.Encode.string rec.url ) + ] + ) + + +decodePricing : Json.Decode.Decoder LearningResources.Types.Pricing +decodePricing = + Json.Decode.oneOf + [ Json.Decode.map + LearningResources.Types.FreePricing_Or_PaidPricing__FreePricing + decodeFreePricing + , Json.Decode.map + LearningResources.Types.FreePricing_Or_PaidPricing__PaidPricing + decodePaidPricing + ] + + +encodePricing : LearningResources.Types.Pricing -> Json.Encode.Value +encodePricing rec = + case rec of + LearningResources.Types.FreePricing_Or_PaidPricing__FreePricing content -> + encodeFreePricing content + + LearningResources.Types.FreePricing_Or_PaidPricing__PaidPricing content -> + encodePaidPricing content + + +decodePaidPricing : Json.Decode.Decoder LearningResources.Types.PaidPricing +decodePaidPricing = + Json.Decode.succeed + (\amount model -> { amount = amount, model = model }) + |> OpenApi.Common.jsonDecodeAndMap + (Json.Decode.field "amount" Json.Decode.float) + |> OpenApi.Common.jsonDecodeAndMap + (Json.Decode.field "model" Json.Decode.string) + + +encodePaidPricing : LearningResources.Types.PaidPricing -> Json.Encode.Value +encodePaidPricing rec = + Json.Encode.object + [ ( "amount", Json.Encode.float rec.amount ) + , ( "model", Json.Encode.string rec.model ) + ] + + +decodeFreePricing : Json.Decode.Decoder LearningResources.Types.FreePricing +decodeFreePricing = + Json.Decode.succeed + (\model -> { model = model }) + |> OpenApi.Common.jsonDecodeAndMap + (Json.Decode.field + "model" + Json.Decode.string + ) + + +encodeFreePricing : LearningResources.Types.FreePricing -> Json.Encode.Value +encodeFreePricing rec = + Json.Encode.object [ ( "model", Json.Encode.string rec.model ) ] + + +decodeEntityTag : Json.Decode.Decoder LearningResources.Types.EntityTag +decodeEntityTag = + Json.Decode.andThen + (\andThenUnpack -> + case LearningResources.Types.entityTagFromString andThenUnpack of + Maybe.Just a -> + Json.Decode.succeed a + + Maybe.Nothing -> + Json.Decode.fail + (andThenUnpack ++ " is not a valid EntityTag") + ) + Json.Decode.string + + +encodeEntityTag : LearningResources.Types.EntityTag -> Json.Encode.Value +encodeEntityTag rec = + Json.Encode.string (LearningResources.Types.entityTagToString rec) + + +decodeDatabase : Json.Decode.Decoder LearningResources.Types.Database +decodeDatabase = + Json.Decode.succeed + (\metadata resources -> { metadata = metadata, resources = resources }) + |> OpenApi.Common.jsonDecodeAndMap + (Json.Decode.field + "metadata" + (Json.Decode.list + (Json.Decode.succeed + (\category description domains emoji id name -> + { category = category + , description = + description + , domains = domains + , emoji = emoji + , id = id + , name = name + } + ) + |> OpenApi.Common.jsonDecodeAndMap + (Json.Decode.field + "category" + Json.Decode.value + ) + |> OpenApi.Common.jsonDecodeAndMap + (Json.Decode.field + "description" + Json.Decode.string + ) + |> OpenApi.Common.jsonDecodeAndMap + (Json.Decode.field + "domains" + (Json.Decode.list + Json.Decode.string + ) + ) + |> OpenApi.Common.jsonDecodeAndMap + (OpenApi.Common.decodeOptionalField + "emoji" + Json.Decode.string + ) + |> OpenApi.Common.jsonDecodeAndMap + (Json.Decode.field + "id" + decodeEntityTag + ) + |> OpenApi.Common.jsonDecodeAndMap + (Json.Decode.field + "name" + Json.Decode.string + ) + ) + ) + ) + |> OpenApi.Common.jsonDecodeAndMap + (Json.Decode.field + "resources" + (Json.Decode.list + (Json.Decode.succeed + (\cons description name pricing pros teaches type_ url -> + { cons = + cons + , description = + description + , name = + name + , pricing = + pricing + , pros = + pros + , teaches = + teaches + , type_ = + type_ + , url = + url + } + ) + |> OpenApi.Common.jsonDecodeAndMap + (OpenApi.Common.decodeOptionalField + "cons" + (Json.Decode.list + Json.Decode.string + ) + ) + |> OpenApi.Common.jsonDecodeAndMap + (OpenApi.Common.decodeOptionalField + "description" + Json.Decode.string + ) + |> OpenApi.Common.jsonDecodeAndMap + (Json.Decode.field + "name" + Json.Decode.string + ) + |> OpenApi.Common.jsonDecodeAndMap + (Json.Decode.field + "pricing" + (Json.Decode.oneOf + [ Json.Decode.map + LearningResources.Types.FreePricing_Or_PaidPricing__FreePricing + decodeFreePricing + , Json.Decode.map + LearningResources.Types.FreePricing_Or_PaidPricing__PaidPricing + decodePaidPricing + ] + ) + ) + |> OpenApi.Common.jsonDecodeAndMap + (OpenApi.Common.decodeOptionalField + "pros" + (Json.Decode.list + Json.Decode.string + ) + ) + |> OpenApi.Common.jsonDecodeAndMap + (Json.Decode.field + "teaches" + (Json.Decode.list + decodeEntityTag + ) + ) + |> OpenApi.Common.jsonDecodeAndMap + (Json.Decode.field + "type" + (Json.Decode.list + Json.Decode.string + ) + ) + |> OpenApi.Common.jsonDecodeAndMap + (Json.Decode.field + "url" + Json.Decode.string + ) + ) + ) + ) + + +encodeDatabase : LearningResources.Types.Database -> Json.Encode.Value +encodeDatabase rec = + Json.Encode.object + [ ( "metadata" + , Json.Encode.list + (\rec0 -> + Json.Encode.object + (List.filterMap + Basics.identity + [ Just + ( "category", Basics.identity rec0.category ) + , Just + ( "description" + , Json.Encode.string rec0.description + ) + , Just + ( "domains" + , Json.Encode.list + Json.Encode.string + rec0.domains + ) + , Maybe.map + (\mapUnpack -> + ( "emoji", Json.Encode.string mapUnpack ) + ) + rec0.emoji + , Just ( "id", encodeEntityTag rec0.id ) + , Just ( "name", Json.Encode.string rec0.name ) + ] + ) + ) + rec.metadata + ) + , ( "resources" + , Json.Encode.list + (\rec0 -> + Json.Encode.object + (List.filterMap + Basics.identity + [ Maybe.map + (\mapUnpack -> + ( "cons" + , Json.Encode.list + Json.Encode.string + mapUnpack + ) + ) + rec0.cons + , Maybe.map + (\mapUnpack -> + ( "description" + , Json.Encode.string mapUnpack + ) + ) + rec0.description + , Just ( "name", Json.Encode.string rec0.name ) + , Just + ( "pricing" + , case rec0.pricing of + LearningResources.Types.FreePricing_Or_PaidPricing__FreePricing content -> + encodeFreePricing content + + LearningResources.Types.FreePricing_Or_PaidPricing__PaidPricing content -> + encodePaidPricing content + ) + , Maybe.map + (\mapUnpack -> + ( "pros" + , Json.Encode.list + Json.Encode.string + mapUnpack + ) + ) + rec0.pros + , Just + ( "teaches" + , Json.Encode.list + encodeEntityTag + rec0.teaches + ) + , Just + ( "type" + , Json.Encode.list + Json.Encode.string + rec0.type_ + ) + , Just ( "url", Json.Encode.string rec0.url ) + ] + ) + ) + rec.resources + ) + ] + + +decodeCompiledMeta : Json.Decode.Decoder LearningResources.Types.CompiledMeta +decodeCompiledMeta = + Json.Decode.succeed + (\category description domains emoji id name -> + { category = category + , description = description + , domains = domains + , emoji = emoji + , id = id + , name = name + } + ) + |> OpenApi.Common.jsonDecodeAndMap + (Json.Decode.field "category" Json.Decode.value) + |> OpenApi.Common.jsonDecodeAndMap + (Json.Decode.field + "description" + Json.Decode.string + ) + |> OpenApi.Common.jsonDecodeAndMap + (Json.Decode.field + "domains" + (Json.Decode.list + Json.Decode.string + ) + ) + |> OpenApi.Common.jsonDecodeAndMap + (OpenApi.Common.decodeOptionalField + "emoji" + Json.Decode.string + ) + |> OpenApi.Common.jsonDecodeAndMap + (Json.Decode.field + "id" + decodeEntityTag + ) + |> OpenApi.Common.jsonDecodeAndMap + (Json.Decode.field + "name" + Json.Decode.string + ) + + +encodeCompiledMeta : LearningResources.Types.CompiledMeta -> Json.Encode.Value +encodeCompiledMeta rec = + Json.Encode.object + (List.filterMap + Basics.identity + [ Just ( "category", Basics.identity rec.category ) + , Just ( "description", Json.Encode.string rec.description ) + , Just + ( "domains", Json.Encode.list Json.Encode.string rec.domains ) + , Maybe.map + (\mapUnpack -> ( "emoji", Json.Encode.string mapUnpack )) + rec.emoji + , Just ( "id", encodeEntityTag rec.id ) + , Just ( "name", Json.Encode.string rec.name ) + ] + ) diff --git a/src/LearningResources/Types.elm b/src/LearningResources/Types.elm new file mode 100644 index 0000000..4010485 --- /dev/null +++ b/src/LearningResources/Types.elm @@ -0,0 +1,294 @@ +module LearningResources.Types exposing + ( CompiledMeta, Database, FreePricing, PaidPricing, Pricing, Resource, ResourceCategory + , EntityTag(..), entityTagFromString, entityTagToString, entityTagVariants + , FreePricing_Or_PaidPricing(..) + ) + +{-| + + +## Aliases + +@docs CompiledMeta, Database, FreePricing, PaidPricing, Pricing, Resource, ResourceCategory + + +## Enum + +@docs EntityTag, entityTagFromString, entityTagToString, entityTagVariants + + +## One of + +@docs FreePricing_Or_PaidPricing + +-} + +import Json.Encode + + +{-| The category of the resource +-} +type alias ResourceCategory = + Json.Encode.Value + + +{-| Fields: + + - cons: Array of cons for using the resource, e.g. 'only teaches the basics rather than more advanced concepts' + + - description: A brief description of the resource + + - name: The official name of the resource + + - pricing: Details about the cost of the resource. + + - pros: Array of pros for using the resource, e.g. 'explains difficult concepts with good analogies' + + - teaches: The topics that this resource teaches. + + - type: The type(s) of the resource, e.g. 'Video', 'Book', 'Course', etc. + + A list of: The type of the resource + + - url: URL to the resource + +-} +type alias Resource = + { cons : Maybe (List String) + , description : Maybe String + , name : String + , pricing : FreePricing_Or_PaidPricing + , pros : Maybe (List String) + , teaches : List EntityTag + , type_ : List String + , url : String + } + + +{-| Details about the cost of the resource. +-} +type alias Pricing = + FreePricing_Or_PaidPricing + + +{-| Fields: + + - amount: The price of this resource, in US Dollars. + - model: The Paid Pricing Model of this resource. 'Subscription' means the resource is paid on a recurring basis (e.g. monthly or yearly), while 'One Time' means the resource is paid with a single upfront payment. If the price varies or is not fixed, provide a close approximation. Note that the subscription renewal cycle is not specified, so if the price has different renewal cycles, provide the most common or default one (usually monthly). + +-} +type alias PaidPricing = + { amount : Float, model : String } + + +{-| Fields: + + - model: The Free(mium) Pricing Model of this resource. 'Free' should be used for resources where 100% (or close) of the content is free. 'Freemium' describes a pricing model where the core content is available for free, but features paid extensions. If the resource has a freemium model but the free portion is very limited, consider using 'Paid' instead and providing an estimated price for the full version. + +-} +type alias FreePricing = + { model : String } + + +type EntityTag + = EntityTag__Clojure + | EntityTag__Cpp + | EntityTag__General + | EntityTag__Git + | EntityTag__Haskell + | EntityTag__Java + | EntityTag__Kotlin + | EntityTag__Php + | EntityTag__ProgrammingLanguageDesign + | EntityTag__Python + | EntityTag__Rust + | EntityTag__Sql + + +entityTagToString : EntityTag -> String +entityTagToString value = + case value of + EntityTag__Clojure -> + "clojure" + + EntityTag__Cpp -> + "cpp" + + EntityTag__General -> + "general" + + EntityTag__Git -> + "git" + + EntityTag__Haskell -> + "haskell" + + EntityTag__Java -> + "java" + + EntityTag__Kotlin -> + "kotlin" + + EntityTag__Php -> + "php" + + EntityTag__ProgrammingLanguageDesign -> + "programming-language-design" + + EntityTag__Python -> + "python" + + EntityTag__Rust -> + "rust" + + EntityTag__Sql -> + "sql" + + +entityTagFromString : String -> Maybe EntityTag +entityTagFromString value = + case value of + "clojure" -> + Just EntityTag__Clojure + + "cpp" -> + Just EntityTag__Cpp + + "general" -> + Just EntityTag__General + + "git" -> + Just EntityTag__Git + + "haskell" -> + Just EntityTag__Haskell + + "java" -> + Just EntityTag__Java + + "kotlin" -> + Just EntityTag__Kotlin + + "php" -> + Just EntityTag__Php + + "programming-language-design" -> + Just EntityTag__ProgrammingLanguageDesign + + "python" -> + Just EntityTag__Python + + "rust" -> + Just EntityTag__Rust + + "sql" -> + Just EntityTag__Sql + + _ -> + Nothing + + +entityTagVariants : List EntityTag +entityTagVariants = + [ EntityTag__Clojure + , EntityTag__Cpp + , EntityTag__General + , EntityTag__Git + , EntityTag__Haskell + , EntityTag__Java + , EntityTag__Kotlin + , EntityTag__Php + , EntityTag__ProgrammingLanguageDesign + , EntityTag__Python + , EntityTag__Rust + , EntityTag__Sql + ] + + +{-| Fields: + + - metadata: List of all entities in the system + + A list of: + Fields: + + - category: The category of the resource + - description: A brief description of the language, tool, etc being described by this metadata. + - domains: The domain(s) that the entity is commonly used in, or best suited for. + + A list of: A domain that a programming language may be used in. + - emoji: A Unicode emoji glyph to represent the entity, if applicable. If there is no suitable (Unicode) emoji, omit this field. Consumers may choose to ignore this field, or replace it with a custom image. + - id: The unique identifier of the entity + - name: The name of the language, tool, etc being described by this metadata. + + - resources: List of all learning resources + + A list of: + Fields: + + - cons: Array of cons for using the resource, e.g. 'only teaches the basics rather than more advanced concepts' + - description: A brief description of the resource + - name: The official name of the resource + - pricing: Details about the cost of the resource. + - pros: Array of pros for using the resource, e.g. 'explains difficult concepts with good analogies' + - teaches: The topics that this resource teaches. + - type: The type(s) of the resource, e.g. 'Video', 'Book', 'Course', etc. + + A list of: The type of the resource + - url: URL to the resource + +-} +type alias Database = + { metadata : + List + { category : Json.Encode.Value + , description : String + , domains : List String + , emoji : Maybe String + , id : EntityTag + , name : String + } + , resources : + List + { cons : Maybe (List String) + , description : Maybe String + , name : String + , pricing : FreePricing_Or_PaidPricing + , pros : Maybe (List String) + , teaches : List EntityTag + , type_ : List String + , url : String + } + } + + +{-| Fields: + + - category: The category of the resource + + - description: A brief description of the language, tool, etc being described by this metadata. + + - domains: The domain(s) that the entity is commonly used in, or best suited for. + + A list of: A domain that a programming language may be used in. + + - emoji: A Unicode emoji glyph to represent the entity, if applicable. If there is no suitable (Unicode) emoji, omit this field. Consumers may choose to ignore this field, or replace it with a custom image. + + - id: The unique identifier of the entity + + - name: The name of the language, tool, etc being described by this metadata. + +-} +type alias CompiledMeta = + { category : Json.Encode.Value + , description : String + , domains : List String + , emoji : Maybe String + , id : EntityTag + , name : String + } + + +type FreePricing_Or_PaidPricing + = FreePricing_Or_PaidPricing__FreePricing FreePricing + | FreePricing_Or_PaidPricing__PaidPricing PaidPricing diff --git a/src/OpenApi/Common.elm b/src/OpenApi/Common.elm new file mode 100644 index 0000000..9f0b0ce --- /dev/null +++ b/src/OpenApi/Common.elm @@ -0,0 +1,388 @@ +module OpenApi.Common exposing + ( Nullable(..) + , decodeOptionalField, jsonDecodeAndMap + , Error(..), bytesResolverCustom, expectBytesCustom, expectJsonCustom, expectStringCustom, jsonResolverCustom + , stringResolverCustom + ) + +{-| + + +## Types + +@docs Nullable + + +## Decoders + +@docs decodeOptionalField, jsonDecodeAndMap + + +## Http + +@docs Error, bytesResolverCustom, expectBytesCustom, expectJsonCustom, expectStringCustom, jsonResolverCustom +@docs stringResolverCustom + +-} + +import Bytes +import Bytes.Decode +import Dict +import Http +import Json.Decode + + +expectJsonCustom : + (Result (Error err String) success -> msg) + -> Dict.Dict String (Json.Decode.Decoder err) + -> Json.Decode.Decoder success + -> Http.Expect msg +expectJsonCustom toMsg errorDecoders successDecoder = + Http.expectStringResponse + toMsg + (\expectStringResponseUnpack -> + case expectStringResponseUnpack of + Http.BadUrl_ stringString -> + Result.Err (BadUrl stringString) + + Http.Timeout_ -> + Result.Err Timeout + + Http.NetworkError_ -> + Result.Err NetworkError + + Http.BadStatus_ httpMetadata body -> + case + Dict.get + (String.fromInt httpMetadata.statusCode) + errorDecoders + of + Maybe.Just a -> + case Json.Decode.decodeString a body of + Result.Ok value -> + Result.Err + (KnownBadStatus + httpMetadata.statusCode + value + ) + + Result.Err error -> + Result.Err (BadErrorBody httpMetadata body) + + Maybe.Nothing -> + Result.Err (UnknownBadStatus httpMetadata body) + + Http.GoodStatus_ httpMetadata body -> + case Json.Decode.decodeString successDecoder body of + Result.Ok value -> + Result.Ok value + + Result.Err error -> + Result.Err (BadBody httpMetadata body) + ) + + +jsonResolverCustom : + Dict.Dict String (Json.Decode.Decoder err) + -> Json.Decode.Decoder success + -> Http.Resolver (Error err String) success +jsonResolverCustom errorDecoders successDecoder = + Http.stringResolver + (\stringResolverUnpack -> + case stringResolverUnpack of + Http.BadUrl_ stringString -> + Result.Err (BadUrl stringString) + + Http.Timeout_ -> + Result.Err Timeout + + Http.NetworkError_ -> + Result.Err NetworkError + + Http.BadStatus_ httpMetadata body -> + case + Dict.get + (String.fromInt httpMetadata.statusCode) + errorDecoders + of + Maybe.Just a -> + case Json.Decode.decodeString a body of + Result.Ok value -> + Result.Err + (KnownBadStatus + httpMetadata.statusCode + value + ) + + Result.Err error -> + Result.Err (BadErrorBody httpMetadata body) + + Maybe.Nothing -> + Result.Err (UnknownBadStatus httpMetadata body) + + Http.GoodStatus_ httpMetadata body -> + case Json.Decode.decodeString successDecoder body of + Result.Ok value -> + Result.Ok value + + Result.Err error -> + Result.Err (BadBody httpMetadata body) + ) + + +expectStringCustom : + (Result (Error err String) String -> msg) + -> Dict.Dict String (Json.Decode.Decoder err) + -> Http.Expect msg +expectStringCustom toMsg errorDecoders = + Http.expectStringResponse + toMsg + (\expectStringResponseUnpack -> + case expectStringResponseUnpack of + Http.BadUrl_ stringString -> + Result.Err (BadUrl stringString) + + Http.Timeout_ -> + Result.Err Timeout + + Http.NetworkError_ -> + Result.Err NetworkError + + Http.BadStatus_ httpMetadata body -> + case + Dict.get + (String.fromInt httpMetadata.statusCode) + errorDecoders + of + Maybe.Just a -> + case Json.Decode.decodeString a body of + Result.Ok value -> + Result.Err + (KnownBadStatus + httpMetadata.statusCode + value + ) + + Result.Err error -> + Result.Err (BadErrorBody httpMetadata body) + + Maybe.Nothing -> + Result.Err (UnknownBadStatus httpMetadata body) + + Http.GoodStatus_ httpMetadata body -> + Result.Ok body + ) + + +stringResolverCustom : + Dict.Dict String (Json.Decode.Decoder err) + -> Http.Resolver (Error err String) String +stringResolverCustom errorDecoders = + Http.stringResolver + (\stringResolverUnpack -> + case stringResolverUnpack of + Http.BadUrl_ stringString -> + Result.Err (BadUrl stringString) + + Http.Timeout_ -> + Result.Err Timeout + + Http.NetworkError_ -> + Result.Err NetworkError + + Http.BadStatus_ httpMetadata body -> + case + Dict.get + (String.fromInt httpMetadata.statusCode) + errorDecoders + of + Maybe.Just a -> + case Json.Decode.decodeString a body of + Result.Ok value -> + Result.Err + (KnownBadStatus + httpMetadata.statusCode + value + ) + + Result.Err error -> + Result.Err (BadErrorBody httpMetadata body) + + Maybe.Nothing -> + Result.Err (UnknownBadStatus httpMetadata body) + + Http.GoodStatus_ httpMetadata body -> + Result.Ok body + ) + + +expectBytesCustom : + (Result (Error err Bytes.Bytes) Bytes.Bytes -> msg) + -> Dict.Dict String (Json.Decode.Decoder err) + -> Http.Expect msg +expectBytesCustom toMsg errorDecoders = + Http.expectBytesResponse + toMsg + (\expectBytesResponseUnpack -> + case expectBytesResponseUnpack of + Http.BadUrl_ stringString -> + Result.Err (BadUrl stringString) + + Http.Timeout_ -> + Result.Err Timeout + + Http.NetworkError_ -> + Result.Err NetworkError + + Http.BadStatus_ httpMetadata body -> + case + Dict.get + (String.fromInt httpMetadata.statusCode) + errorDecoders + of + Maybe.Just a -> + case + Json.Decode.decodeString + a + (Maybe.withDefault + "" + (Bytes.Decode.decode + (Bytes.Decode.string + (Bytes.width body) + ) + body + ) + ) + of + Result.Ok value -> + Result.Err + (KnownBadStatus + httpMetadata.statusCode + value + ) + + Result.Err error -> + Result.Err (BadErrorBody httpMetadata body) + + Maybe.Nothing -> + Result.Err (UnknownBadStatus httpMetadata body) + + Http.GoodStatus_ httpMetadata body -> + Result.Ok body + ) + + +bytesResolverCustom : + Dict.Dict String (Json.Decode.Decoder err) + -> Http.Resolver (Error err Bytes.Bytes) Bytes.Bytes +bytesResolverCustom errorDecoders = + Http.bytesResolver + (\bytesResolverUnpack -> + case bytesResolverUnpack of + Http.BadUrl_ stringString -> + Result.Err (BadUrl stringString) + + Http.Timeout_ -> + Result.Err Timeout + + Http.NetworkError_ -> + Result.Err NetworkError + + Http.BadStatus_ httpMetadata body -> + case + Dict.get + (String.fromInt httpMetadata.statusCode) + errorDecoders + of + Maybe.Just a -> + case + Json.Decode.decodeString + a + (Maybe.withDefault + "" + (Bytes.Decode.decode + (Bytes.Decode.string + (Bytes.width body) + ) + body + ) + ) + of + Result.Ok value -> + Result.Err + (KnownBadStatus + httpMetadata.statusCode + value + ) + + Result.Err error -> + Result.Err (BadErrorBody httpMetadata body) + + Maybe.Nothing -> + Result.Err (UnknownBadStatus httpMetadata body) + + Http.GoodStatus_ httpMetadata body -> + Result.Ok body + ) + + +{-| Decode an optional field + + decodeString (decodeOptionalField "x" int) "{ "x": 3 }" + --> Ok (Just 3) + + decodeString (decodeOptionalField "x" int) "{ "x": true }" + --> Err ... + + decodeString (decodeOptionalField "x" int) "{ "y": 4 }" + --> Ok Nothing + +-} +decodeOptionalField : String -> Json.Decode.Decoder t -> Json.Decode.Decoder (Maybe t) +decodeOptionalField key fieldDecoder = + Json.Decode.andThen + (\andThenUnpack -> + if andThenUnpack then + Json.Decode.field + key + (Json.Decode.oneOf + [ Json.Decode.map Just fieldDecoder + , Json.Decode.null Nothing + ] + ) + + else + Json.Decode.succeed Nothing + ) + (Json.Decode.oneOf + [ Json.Decode.map + (\_ -> True) + (Json.Decode.field key Json.Decode.value) + , Json.Decode.succeed False + ] + ) + + +{-| Chain JSON decoders, when `Json.Decode.map8` isn't enough. +-} +jsonDecodeAndMap : + Json.Decode.Decoder a + -> Json.Decode.Decoder (a -> value) + -> Json.Decode.Decoder value +jsonDecodeAndMap = + Json.Decode.map2 (|>) + + +type Error err body + = BadUrl String + | Timeout + | NetworkError + | KnownBadStatus Int err + | UnknownBadStatus Http.Metadata body + | BadErrorBody Http.Metadata body + | BadBody Http.Metadata body + + +type Nullable value + = Null + | Present value diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..5a30381 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,30 @@ +{ + "compilerOptions": { + // Environment setup & latest features + "lib": ["ESNext"], + "target": "ESNext", + "module": "Preserve", + "moduleDetection": "force", + "jsx": "react-jsx", + "allowJs": true, + "types": ["bun"], + + // Bundler mode + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "noEmit": true, + + // Best practices + "strict": true, + "skipLibCheck": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedIndexedAccess": true, + "noImplicitOverride": true, + + // Some stricter flags (disabled by default) + "noUnusedLocals": false, + "noUnusedParameters": false, + "noPropertyAccessFromIndexSignature": false + } +} From b49e51a69b463aad0148f701d7fd98afc77542bb Mon Sep 17 00:00:00 2001 From: Alexander Wood Date: Wed, 13 May 2026 15:43:09 +0100 Subject: [PATCH 14/26] feat: basic learning impl! --- bun.lock | 4 +- generate-elm-types.ts | 2 +- package.json | 2 +- src/Api.elm | 80 +----- src/LearningResources.elm | 11 + src/LearningResources/Json.elm | 474 +++++++++++++++---------------- src/LearningResources/Types.elm | 341 ++++++++++++++++------ src/Pages/Learning.elm | 224 ++++++++++----- src/Pages/Learning/Resource_.elm | 247 ++++++++++------ src/Shared.elm | 13 +- src/Shared/Model.elm | 21 +- src/Shared/Msg.elm | 5 +- 12 files changed, 818 insertions(+), 606 deletions(-) create mode 100644 src/LearningResources.elm diff --git a/bun.lock b/bun.lock index a2301d9..0032db5 100644 --- a/bun.lock +++ b/bun.lock @@ -13,7 +13,7 @@ "devDependencies": { "@types/bun": "latest", "elm-land": "^0.20.1", - "elm-open-api": "^0.7.0", + "elm-open-api": "git+https://github.com/wolfadex/elm-open-api-cli.git#main", "quicktype": "^23.2.6", "quicktype-core": "^23.2.6", }, @@ -315,7 +315,7 @@ "elm-land": ["elm-land@0.20.1", "", { "dependencies": { "@lydell/elm": "0.19.1-14", "chokidar": "3.5.3", "terser": "5.15.1", "typescript": "4.9.3", "vite": "5.2.8", "vite-plugin-elm-watch": "1.3.3" }, "bin": { "elm-land": "src/index.js" } }, "sha512-AY8BxYNT7mblaIO9SS2YQPdskZdMsLL6fqjAA5bORdkGIRDkMeaw+rXgiVSHUM2+TK0k/ld0TdQEAd24Moi5nw=="], - "elm-open-api": ["elm-open-api@0.7.0", "", { "bin": { "elm-open-api": "dist/elm-open-api.js" } }, "sha512-cp5/XHmSRz37ORgZDoaiXixb1vlZCZg+O9zi79qoHJXYm2NtWtmcOWhdnAexgX7gcrUvAWlZvckiwYHGXY5j3A=="], + "elm-open-api": ["elm-open-api@github:wolfadex/elm-open-api-cli#f77df0b", { "bin": "dist/elm-open-api.js" }, "wolfadex-elm-open-api-cli-f77df0b"], "elm-tailwind-modules": ["elm-tailwind-modules@0.5.0", "", { "dependencies": { "chalk": "^4.1.1", "color-name": "^1.1.4", "commander": "^7.2.0", "css-what": "^5.0.0", "deep-equal": "^2.0.3", "fs-extra": "^9.1.0", "lodash": "^4.17.21", "rollup": "^2.45.2", "tslib": "^2.2.0" }, "peerDependencies": { "postcss": "^8.2.4", "tailwindcss": "^2.0.2 || ^3.1.6" }, "bin": { "elm-tailwind-modules": "dist/cli.js" } }, "sha512-Ad03E6lZwB2Fa+OoLTSzlRKOIzO+T5jTgTOHl53WREmNZPxcaJ+1acwdM/7RJrTkTfvoXi241pdfzzOBQX5r2A=="], diff --git a/generate-elm-types.ts b/generate-elm-types.ts index c3a186c..7c470a9 100644 --- a/generate-elm-types.ts +++ b/generate-elm-types.ts @@ -8,7 +8,7 @@ import path from "path"; import fs from "fs" import { $ } from "bun"; -const SCHEMA_URL = "https://cdn.jsdelivr.net/gh/TheDeveloperDen/LearningResources@master/openapi.schema.json"; +const SCHEMA_URL = "https://cdn.jsdelivr.net/gh/TheDeveloperDen/LearningResources@cb31652/openapi.schema.json"; const OUTPUT_DIR = path.join(__dirname, "./src"); const MODULE_NAME = "LearningResources"; diff --git a/package.json b/package.json index c01830a..3198338 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "devDependencies": { "@types/bun": "latest", "elm-land": "^0.20.1", - "elm-open-api": "^0.7.0", + "elm-open-api": "git+https://github.com/wolfadex/elm-open-api-cli.git#main", "quicktype": "^23.2.6", "quicktype-core": "^23.2.6" }, diff --git a/src/Api.elm b/src/Api.elm index bd15c7a..4b9d4de 100644 --- a/src/Api.elm +++ b/src/Api.elm @@ -3,7 +3,8 @@ module Api exposing (..) import Effect exposing (Effect) import Http import Json.Decode as Json -import LearningResources +import LearningResources.Types as LearningResources +import LearningResources.Json as LearningResources import Yaml.Decode @@ -14,82 +15,11 @@ type Data value getLearningResourcesIndex : - { onResponse : Result Http.Error (List LearningResources.ResourceIndexEntry) -> msg } + { onResponse : Result Http.Error LearningResources.Database -> msg } -> Effect msg getLearningResourcesIndex { onResponse } = Effect.sendCmd <| Http.get - { url = "https://learningresources.developerden.org" - , expect = Http.expectJson onResponse resourceIndexDecoder + { url = "https://cdn.jsdelivr.net/gh/TheDeveloperDen/LearningResources@master/database.json" + , expect = Http.expectJson onResponse LearningResources.decodeDatabase } - - -getLearningResource : - { name : String - , onResponse : Result Http.Error LearningResources.LearningResourcesSet -> msg - } - -> Effect msg -getLearningResource { name, onResponse } = - Effect.sendCmd <| - Http.get - { url = "https://learningresources.developerden.org/" ++ name - , expect = - expectYaml onResponse LearningResources.learningResourcesSet - } - -expectYaml : (Result Http.Error a -> msg) -> Yaml.Decode.Decoder a -> Http.Expect msg -expectYaml toMsg decoder = - Http.expectStringResponse toMsg <| resolve decoder - -resolve decoder = \response -> - case response of - Http.BadUrl_ url -> - Err (Http.BadUrl url) - - Http.Timeout_ -> - Err Http.Timeout - - Http.NetworkError_ -> - Err Http.NetworkError - - Http.BadStatus_ metadata body -> - Err (Http.BadStatus metadata.statusCode) - - Http.GoodStatus_ metadata body -> - case Yaml.Decode.fromString decoder body of - Ok value -> - Ok value - - Err err -> - Err (Http.BadBody (Yaml.Decode.errorToString err)) - - -resourceIndexDecoder : Json.Decoder (List LearningResources.ResourceIndexEntry) -resourceIndexDecoder = - Json.list - (Json.map LearningResources.ResourceIndexEntry - (Json.field "name" Json.string) - ) - - -toUserFriendlyMessage : Http.Error -> String -toUserFriendlyMessage httpError = - case httpError of - Http.BadUrl _ -> - "This page requested a bad URL" - - Http.Timeout -> - "Request took too long to respond" - - Http.NetworkError -> - "Could not connect to the API" - - Http.BadStatus code -> - if code == 404 then - "Item not found" - - else - "API returned an error code" - - Http.BadBody _ -> - "Unexpected response from API" diff --git a/src/LearningResources.elm b/src/LearningResources.elm new file mode 100644 index 0000000..3dcfe45 --- /dev/null +++ b/src/LearningResources.elm @@ -0,0 +1,11 @@ +module LearningResources exposing (..) + +import LearningResources.Types exposing (..) + +getResourcesByTag : EntityTag -> Database -> List Resource +getResourcesByTag tag database = + List.filter (\resource -> List.member tag resource.teaches) database.resources + +getMetadata : EntityTag -> Database -> Maybe CompiledMeta +getMetadata tag database = + List.head <| List.filter (\meta -> meta.id == tag) database.metadata \ No newline at end of file diff --git a/src/LearningResources/Json.elm b/src/LearningResources/Json.elm index 6c89658..4f6eafa 100644 --- a/src/LearningResources/Json.elm +++ b/src/LearningResources/Json.elm @@ -1,8 +1,10 @@ module LearningResources.Json exposing - ( encodeCompiledMeta, encodeDatabase, encodeEntityTag, encodeFreePricing, encodePaidPricing, encodePricing - , encodeResource, encodeResourceCategory - , decodeCompiledMeta, decodeDatabase, decodeEntityTag, decodeFreePricing, decodePaidPricing, decodePricing - , decodeResource, decodeResourceCategory + ( encodeCategoryLanguage, encodeCategoryPlatform, encodeCategoryTool, encodeCompiledMeta, encodeDatabase + , encodeEntityTag, encodeFreePricing, encodeLanguageDomain, encodeMeta, encodePaidPricing, encodePricing + , encodeProgrammingParadigm, encodeResource, encodeResourceCategory, encodeResourceType + , decodeCategoryLanguage, decodeCategoryPlatform, decodeCategoryTool, decodeCompiledMeta, decodeDatabase + , decodeEntityTag, decodeFreePricing, decodeLanguageDomain, decodeMeta, decodePaidPricing, decodePricing + , decodeProgrammingParadigm, decodeResource, decodeResourceCategory, decodeResourceType ) {-| @@ -10,14 +12,16 @@ module LearningResources.Json exposing ## Encoders -@docs encodeCompiledMeta, encodeDatabase, encodeEntityTag, encodeFreePricing, encodePaidPricing, encodePricing -@docs encodeResource, encodeResourceCategory +@docs encodeCategoryLanguage, encodeCategoryPlatform, encodeCategoryTool, encodeCompiledMeta, encodeDatabase +@docs encodeEntityTag, encodeFreePricing, encodeLanguageDomain, encodeMeta, encodePaidPricing, encodePricing +@docs encodeProgrammingParadigm, encodeResource, encodeResourceCategory, encodeResourceType ## Decoders -@docs decodeCompiledMeta, decodeDatabase, decodeEntityTag, decodeFreePricing, decodePaidPricing, decodePricing -@docs decodeResource, decodeResourceCategory +@docs decodeCategoryLanguage, decodeCategoryPlatform, decodeCategoryTool, decodeCompiledMeta, decodeDatabase +@docs decodeEntityTag, decodeFreePricing, decodeLanguageDomain, decodeMeta, decodePaidPricing, decodePricing +@docs decodeProgrammingParadigm, decodeResource, decodeResourceCategory, decodeResourceType -} @@ -27,14 +31,54 @@ import LearningResources.Types import OpenApi.Common +decodeResourceType : Json.Decode.Decoder LearningResources.Types.ResourceType +decodeResourceType = + Json.Decode.andThen + (\andThenUnpack -> + case + LearningResources.Types.resourceTypeFromString andThenUnpack + of + Maybe.Just a -> + Json.Decode.succeed a + + Maybe.Nothing -> + Json.Decode.fail + (andThenUnpack ++ " is not a valid ResourceType") + ) + Json.Decode.string + + +encodeResourceType : LearningResources.Types.ResourceType -> Json.Encode.Value +encodeResourceType rec = + Json.Encode.string (LearningResources.Types.resourceTypeToString rec) + + decodeResourceCategory : Json.Decode.Decoder LearningResources.Types.ResourceCategory decodeResourceCategory = - Json.Decode.value + Json.Decode.oneOf + [ Json.Decode.map + LearningResources.Types.CategoryLanguage_Or_CategoryPlatform_Or_CategoryTool__CategoryLanguage + decodeCategoryLanguage + , Json.Decode.map + LearningResources.Types.CategoryLanguage_Or_CategoryPlatform_Or_CategoryTool__CategoryPlatform + decodeCategoryPlatform + , Json.Decode.map + LearningResources.Types.CategoryLanguage_Or_CategoryPlatform_Or_CategoryTool__CategoryTool + decodeCategoryTool + ] encodeResourceCategory : LearningResources.Types.ResourceCategory -> Json.Encode.Value -encodeResourceCategory = - Basics.identity +encodeResourceCategory rec = + case rec of + LearningResources.Types.CategoryLanguage_Or_CategoryPlatform_Or_CategoryTool__CategoryLanguage content -> + encodeCategoryLanguage content + + LearningResources.Types.CategoryLanguage_Or_CategoryPlatform_Or_CategoryTool__CategoryPlatform content -> + encodeCategoryPlatform content + + LearningResources.Types.CategoryLanguage_Or_CategoryPlatform_Or_CategoryTool__CategoryTool content -> + encodeCategoryTool content decodeResource : Json.Decode.Decoder LearningResources.Types.Resource @@ -69,15 +113,7 @@ decodeResource = |> OpenApi.Common.jsonDecodeAndMap (Json.Decode.field "pricing" - (Json.Decode.oneOf - [ Json.Decode.map - LearningResources.Types.FreePricing_Or_PaidPricing__FreePricing - decodeFreePricing - , Json.Decode.map - LearningResources.Types.FreePricing_Or_PaidPricing__PaidPricing - decodePaidPricing - ] - ) + decodePricing ) |> OpenApi.Common.jsonDecodeAndMap (OpenApi.Common.decodeOptionalField @@ -97,7 +133,7 @@ decodeResource = (Json.Decode.field "type" (Json.Decode.list - Json.Decode.string + decodeResourceType ) ) |> OpenApi.Common.jsonDecodeAndMap @@ -121,27 +157,42 @@ encodeResource rec = (\mapUnpack -> ( "description", Json.Encode.string mapUnpack )) rec.description , Just ( "name", Json.Encode.string rec.name ) - , Just - ( "pricing" - , case rec.pricing of - LearningResources.Types.FreePricing_Or_PaidPricing__FreePricing content -> - encodeFreePricing content - - LearningResources.Types.FreePricing_Or_PaidPricing__PaidPricing content -> - encodePaidPricing content - ) + , Just ( "pricing", encodePricing rec.pricing ) , Maybe.map (\mapUnpack -> ( "pros", Json.Encode.list Json.Encode.string mapUnpack ) ) rec.pros , Just ( "teaches", Json.Encode.list encodeEntityTag rec.teaches ) - , Just ( "type", Json.Encode.list Json.Encode.string rec.type_ ) + , Just ( "type", Json.Encode.list encodeResourceType rec.type_ ) , Just ( "url", Json.Encode.string rec.url ) ] ) +decodeProgrammingParadigm : Json.Decode.Decoder LearningResources.Types.ProgrammingParadigm +decodeProgrammingParadigm = + Json.Decode.andThen + (\andThenUnpack -> + case + LearningResources.Types.programmingParadigmFromString + andThenUnpack + of + Maybe.Just a -> + Json.Decode.succeed a + + Maybe.Nothing -> + Json.Decode.fail + (andThenUnpack ++ " is not a valid ProgrammingParadigm") + ) + Json.Decode.string + + +encodeProgrammingParadigm : LearningResources.Types.ProgrammingParadigm -> Json.Encode.Value +encodeProgrammingParadigm rec = + Json.Encode.string (LearningResources.Types.programmingParadigmToString rec) + + decodePricing : Json.Decode.Decoder LearningResources.Types.Pricing decodePricing = Json.Decode.oneOf @@ -182,6 +233,84 @@ encodePaidPricing rec = ] +decodeMeta : Json.Decode.Decoder LearningResources.Types.Meta +decodeMeta = + Json.Decode.succeed + (\category description domains emoji name -> + { category = category + , description = description + , domains = domains + , emoji = emoji + , name = name + } + ) + |> OpenApi.Common.jsonDecodeAndMap + (Json.Decode.field "category" decodeResourceCategory) + |> OpenApi.Common.jsonDecodeAndMap + (Json.Decode.field + "description" + Json.Decode.string + ) + |> OpenApi.Common.jsonDecodeAndMap + (Json.Decode.field + "domains" + (Json.Decode.list + decodeLanguageDomain + ) + ) + |> OpenApi.Common.jsonDecodeAndMap + (OpenApi.Common.decodeOptionalField + "emoji" + Json.Decode.string + ) + |> OpenApi.Common.jsonDecodeAndMap + (Json.Decode.field + "name" + Json.Decode.string + ) + + +encodeMeta : LearningResources.Types.Meta -> Json.Encode.Value +encodeMeta rec = + Json.Encode.object + (List.filterMap + Basics.identity + [ Just ( "category", encodeResourceCategory rec.category ) + , Just ( "description", Json.Encode.string rec.description ) + , Just + ( "domains" + , Json.Encode.list encodeLanguageDomain rec.domains + ) + , Maybe.map + (\mapUnpack -> ( "emoji", Json.Encode.string mapUnpack )) + rec.emoji + , Just ( "name", Json.Encode.string rec.name ) + ] + ) + + +decodeLanguageDomain : Json.Decode.Decoder LearningResources.Types.LanguageDomain +decodeLanguageDomain = + Json.Decode.andThen + (\andThenUnpack -> + case + LearningResources.Types.languageDomainFromString andThenUnpack + of + Maybe.Just a -> + Json.Decode.succeed a + + Maybe.Nothing -> + Json.Decode.fail + (andThenUnpack ++ " is not a valid LanguageDomain") + ) + Json.Decode.string + + +encodeLanguageDomain : LearningResources.Types.LanguageDomain -> Json.Encode.Value +encodeLanguageDomain rec = + Json.Encode.string (LearningResources.Types.languageDomainToString rec) + + decodeFreePricing : Json.Decode.Decoder LearningResources.Types.FreePricing decodeFreePricing = Json.Decode.succeed @@ -225,230 +354,20 @@ decodeDatabase = |> OpenApi.Common.jsonDecodeAndMap (Json.Decode.field "metadata" - (Json.Decode.list - (Json.Decode.succeed - (\category description domains emoji id name -> - { category = category - , description = - description - , domains = domains - , emoji = emoji - , id = id - , name = name - } - ) - |> OpenApi.Common.jsonDecodeAndMap - (Json.Decode.field - "category" - Json.Decode.value - ) - |> OpenApi.Common.jsonDecodeAndMap - (Json.Decode.field - "description" - Json.Decode.string - ) - |> OpenApi.Common.jsonDecodeAndMap - (Json.Decode.field - "domains" - (Json.Decode.list - Json.Decode.string - ) - ) - |> OpenApi.Common.jsonDecodeAndMap - (OpenApi.Common.decodeOptionalField - "emoji" - Json.Decode.string - ) - |> OpenApi.Common.jsonDecodeAndMap - (Json.Decode.field - "id" - decodeEntityTag - ) - |> OpenApi.Common.jsonDecodeAndMap - (Json.Decode.field - "name" - Json.Decode.string - ) - ) - ) + (Json.Decode.list decodeCompiledMeta) ) |> OpenApi.Common.jsonDecodeAndMap (Json.Decode.field "resources" - (Json.Decode.list - (Json.Decode.succeed - (\cons description name pricing pros teaches type_ url -> - { cons = - cons - , description = - description - , name = - name - , pricing = - pricing - , pros = - pros - , teaches = - teaches - , type_ = - type_ - , url = - url - } - ) - |> OpenApi.Common.jsonDecodeAndMap - (OpenApi.Common.decodeOptionalField - "cons" - (Json.Decode.list - Json.Decode.string - ) - ) - |> OpenApi.Common.jsonDecodeAndMap - (OpenApi.Common.decodeOptionalField - "description" - Json.Decode.string - ) - |> OpenApi.Common.jsonDecodeAndMap - (Json.Decode.field - "name" - Json.Decode.string - ) - |> OpenApi.Common.jsonDecodeAndMap - (Json.Decode.field - "pricing" - (Json.Decode.oneOf - [ Json.Decode.map - LearningResources.Types.FreePricing_Or_PaidPricing__FreePricing - decodeFreePricing - , Json.Decode.map - LearningResources.Types.FreePricing_Or_PaidPricing__PaidPricing - decodePaidPricing - ] - ) - ) - |> OpenApi.Common.jsonDecodeAndMap - (OpenApi.Common.decodeOptionalField - "pros" - (Json.Decode.list - Json.Decode.string - ) - ) - |> OpenApi.Common.jsonDecodeAndMap - (Json.Decode.field - "teaches" - (Json.Decode.list - decodeEntityTag - ) - ) - |> OpenApi.Common.jsonDecodeAndMap - (Json.Decode.field - "type" - (Json.Decode.list - Json.Decode.string - ) - ) - |> OpenApi.Common.jsonDecodeAndMap - (Json.Decode.field - "url" - Json.Decode.string - ) - ) - ) + (Json.Decode.list decodeResource) ) encodeDatabase : LearningResources.Types.Database -> Json.Encode.Value encodeDatabase rec = Json.Encode.object - [ ( "metadata" - , Json.Encode.list - (\rec0 -> - Json.Encode.object - (List.filterMap - Basics.identity - [ Just - ( "category", Basics.identity rec0.category ) - , Just - ( "description" - , Json.Encode.string rec0.description - ) - , Just - ( "domains" - , Json.Encode.list - Json.Encode.string - rec0.domains - ) - , Maybe.map - (\mapUnpack -> - ( "emoji", Json.Encode.string mapUnpack ) - ) - rec0.emoji - , Just ( "id", encodeEntityTag rec0.id ) - , Just ( "name", Json.Encode.string rec0.name ) - ] - ) - ) - rec.metadata - ) - , ( "resources" - , Json.Encode.list - (\rec0 -> - Json.Encode.object - (List.filterMap - Basics.identity - [ Maybe.map - (\mapUnpack -> - ( "cons" - , Json.Encode.list - Json.Encode.string - mapUnpack - ) - ) - rec0.cons - , Maybe.map - (\mapUnpack -> - ( "description" - , Json.Encode.string mapUnpack - ) - ) - rec0.description - , Just ( "name", Json.Encode.string rec0.name ) - , Just - ( "pricing" - , case rec0.pricing of - LearningResources.Types.FreePricing_Or_PaidPricing__FreePricing content -> - encodeFreePricing content - - LearningResources.Types.FreePricing_Or_PaidPricing__PaidPricing content -> - encodePaidPricing content - ) - , Maybe.map - (\mapUnpack -> - ( "pros" - , Json.Encode.list - Json.Encode.string - mapUnpack - ) - ) - rec0.pros - , Just - ( "teaches" - , Json.Encode.list - encodeEntityTag - rec0.teaches - ) - , Just - ( "type" - , Json.Encode.list - Json.Encode.string - rec0.type_ - ) - , Just ( "url", Json.Encode.string rec0.url ) - ] - ) - ) - rec.resources - ) + [ ( "metadata", Json.Encode.list encodeCompiledMeta rec.metadata ) + , ( "resources", Json.Encode.list encodeResource rec.resources ) ] @@ -465,7 +384,7 @@ decodeCompiledMeta = } ) |> OpenApi.Common.jsonDecodeAndMap - (Json.Decode.field "category" Json.Decode.value) + (Json.Decode.field "category" decodeResourceCategory) |> OpenApi.Common.jsonDecodeAndMap (Json.Decode.field "description" @@ -475,7 +394,7 @@ decodeCompiledMeta = (Json.Decode.field "domains" (Json.Decode.list - Json.Decode.string + decodeLanguageDomain ) ) |> OpenApi.Common.jsonDecodeAndMap @@ -500,10 +419,12 @@ encodeCompiledMeta rec = Json.Encode.object (List.filterMap Basics.identity - [ Just ( "category", Basics.identity rec.category ) + [ Just ( "category", encodeResourceCategory rec.category ) , Just ( "description", Json.Encode.string rec.description ) , Just - ( "domains", Json.Encode.list Json.Encode.string rec.domains ) + ( "domains" + , Json.Encode.list encodeLanguageDomain rec.domains + ) , Maybe.map (\mapUnpack -> ( "emoji", Json.Encode.string mapUnpack )) rec.emoji @@ -511,3 +432,58 @@ encodeCompiledMeta rec = , Just ( "name", Json.Encode.string rec.name ) ] ) + + +decodeCategoryTool : Json.Decode.Decoder LearningResources.Types.CategoryTool +decodeCategoryTool = + Json.Decode.succeed + (\type_ -> { type_ = type_ }) + |> OpenApi.Common.jsonDecodeAndMap + (Json.Decode.field + "type" + Json.Decode.string + ) + + +encodeCategoryTool : LearningResources.Types.CategoryTool -> Json.Encode.Value +encodeCategoryTool rec = + Json.Encode.object [ ( "type", Json.Encode.string rec.type_ ) ] + + +decodeCategoryPlatform : Json.Decode.Decoder LearningResources.Types.CategoryPlatform +decodeCategoryPlatform = + Json.Decode.succeed + (\type_ -> { type_ = type_ }) + |> OpenApi.Common.jsonDecodeAndMap + (Json.Decode.field + "type" + Json.Decode.string + ) + + +encodeCategoryPlatform : LearningResources.Types.CategoryPlatform -> Json.Encode.Value +encodeCategoryPlatform rec = + Json.Encode.object [ ( "type", Json.Encode.string rec.type_ ) ] + + +decodeCategoryLanguage : Json.Decode.Decoder LearningResources.Types.CategoryLanguage +decodeCategoryLanguage = + Json.Decode.succeed + (\paradigms type_ -> { paradigms = paradigms, type_ = type_ }) + |> OpenApi.Common.jsonDecodeAndMap + (Json.Decode.field + "paradigms" + (Json.Decode.list decodeProgrammingParadigm) + ) + |> OpenApi.Common.jsonDecodeAndMap + (Json.Decode.field "type" Json.Decode.string) + + +encodeCategoryLanguage : LearningResources.Types.CategoryLanguage -> Json.Encode.Value +encodeCategoryLanguage rec = + Json.Encode.object + [ ( "paradigms" + , Json.Encode.list encodeProgrammingParadigm rec.paradigms + ) + , ( "type", Json.Encode.string rec.type_ ) + ] diff --git a/src/LearningResources/Types.elm b/src/LearningResources/Types.elm index 4010485..1b5de6a 100644 --- a/src/LearningResources/Types.elm +++ b/src/LearningResources/Types.elm @@ -1,7 +1,11 @@ module LearningResources.Types exposing - ( CompiledMeta, Database, FreePricing, PaidPricing, Pricing, Resource, ResourceCategory - , EntityTag(..), entityTagFromString, entityTagToString, entityTagVariants - , FreePricing_Or_PaidPricing(..) + ( CategoryLanguage, CategoryPlatform, CategoryTool, CompiledMeta, Database, FreePricing, Meta, PaidPricing + , Pricing, Resource, ResourceCategory + , EntityTag(..), LanguageDomain(..), ProgrammingParadigm(..), ResourceType(..), entityTagFromString, entityTagToString + , entityTagVariants, languageDomainFromString, languageDomainToString, languageDomainVariants + , programmingParadigmFromString, programmingParadigmToString, programmingParadigmVariants + , resourceTypeFromString, resourceTypeToString, resourceTypeVariants + , CategoryLanguage_Or_CategoryPlatform_Or_CategoryTool(..), FreePricing_Or_PaidPricing(..) ) {-| @@ -9,47 +13,98 @@ module LearningResources.Types exposing ## Aliases -@docs CompiledMeta, Database, FreePricing, PaidPricing, Pricing, Resource, ResourceCategory +@docs CategoryLanguage, CategoryPlatform, CategoryTool, CompiledMeta, Database, FreePricing, Meta, PaidPricing +@docs Pricing, Resource, ResourceCategory ## Enum -@docs EntityTag, entityTagFromString, entityTagToString, entityTagVariants +@docs EntityTag, LanguageDomain, ProgrammingParadigm, ResourceType, entityTagFromString, entityTagToString +@docs entityTagVariants, languageDomainFromString, languageDomainToString, languageDomainVariants +@docs programmingParadigmFromString, programmingParadigmToString, programmingParadigmVariants +@docs resourceTypeFromString, resourceTypeToString, resourceTypeVariants ## One of -@docs FreePricing_Or_PaidPricing +@docs CategoryLanguage_Or_CategoryPlatform_Or_CategoryTool, FreePricing_Or_PaidPricing -} -import Json.Encode - -{-| The category of the resource +{-| The type of the resource -} -type alias ResourceCategory = - Json.Encode.Value +type ResourceType + = ResourceType__Article + | ResourceType__Book + | ResourceType__Course + | ResourceType__InteractiveTutorial + | ResourceType__Video -{-| Fields: +resourceTypeToString : ResourceType -> String +resourceTypeToString value = + case value of + ResourceType__Article -> + "Article" - - cons: Array of cons for using the resource, e.g. 'only teaches the basics rather than more advanced concepts' + ResourceType__Book -> + "Book" - - description: A brief description of the resource + ResourceType__Course -> + "Course" - - name: The official name of the resource + ResourceType__InteractiveTutorial -> + "Interactive Tutorial" - - pricing: Details about the cost of the resource. + ResourceType__Video -> + "Video" - - pros: Array of pros for using the resource, e.g. 'explains difficult concepts with good analogies' - - teaches: The topics that this resource teaches. +resourceTypeFromString : String -> Maybe ResourceType +resourceTypeFromString value = + case value of + "Article" -> + Just ResourceType__Article - - type: The type(s) of the resource, e.g. 'Video', 'Book', 'Course', etc. + "Book" -> + Just ResourceType__Book + + "Course" -> + Just ResourceType__Course + + "Interactive Tutorial" -> + Just ResourceType__InteractiveTutorial + + "Video" -> + Just ResourceType__Video + + _ -> + Nothing + + +resourceTypeVariants : List ResourceType +resourceTypeVariants = + [ ResourceType__Article + , ResourceType__Book + , ResourceType__Course + , ResourceType__InteractiveTutorial + , ResourceType__Video + ] + + +type alias ResourceCategory = + CategoryLanguage_Or_CategoryPlatform_Or_CategoryTool - A list of: The type of the resource +{-| Fields: + + - cons: Array of cons for using the resource, e.g. 'only teaches the basics rather than more advanced concepts' + - description: A brief description of the resource + - name: The official name of the resource + - pros: Array of pros for using the resource, e.g. 'explains difficult concepts with good analogies' + - teaches: The topics that this resource teaches. + - type: The type(s) of the resource, e.g. 'Video', 'Book', 'Course', etc. - url: URL to the resource -} @@ -57,14 +112,67 @@ type alias Resource = { cons : Maybe (List String) , description : Maybe String , name : String - , pricing : FreePricing_Or_PaidPricing + , pricing : Pricing , pros : Maybe (List String) , teaches : List EntityTag - , type_ : List String + , type_ : List ResourceType , url : String } +{-| A programming paradigm. +-} +type ProgrammingParadigm + = ProgrammingParadigm__FunctionalProgramming + | ProgrammingParadigm__LogicProgramming + | ProgrammingParadigm__ObjectOrientedProgramming + | ProgrammingParadigm__ProceduralProgramming + + +programmingParadigmToString : ProgrammingParadigm -> String +programmingParadigmToString value = + case value of + ProgrammingParadigm__FunctionalProgramming -> + "Functional Programming" + + ProgrammingParadigm__LogicProgramming -> + "Logic Programming" + + ProgrammingParadigm__ObjectOrientedProgramming -> + "Object-Oriented Programming" + + ProgrammingParadigm__ProceduralProgramming -> + "Procedural Programming" + + +programmingParadigmFromString : String -> Maybe ProgrammingParadigm +programmingParadigmFromString value = + case value of + "Functional Programming" -> + Just ProgrammingParadigm__FunctionalProgramming + + "Logic Programming" -> + Just ProgrammingParadigm__LogicProgramming + + "Object-Oriented Programming" -> + Just ProgrammingParadigm__ObjectOrientedProgramming + + "Procedural Programming" -> + Just ProgrammingParadigm__ProceduralProgramming + + _ -> + Nothing + + +programmingParadigmVariants : List ProgrammingParadigm +programmingParadigmVariants = + [ ProgrammingParadigm__FunctionalProgramming + , ProgrammingParadigm__LogicProgramming + , ProgrammingParadigm__ObjectOrientedProgramming + , ProgrammingParadigm__ProceduralProgramming + ] + + {-| Details about the cost of the resource. -} type alias Pricing = @@ -81,6 +189,108 @@ type alias PaidPricing = { amount : Float, model : String } +{-| Fields: + + - description: A brief description of the language, tool, etc being described by this metadata. + - domains: The domain(s) that the entity is commonly used in, or best suited for. + - emoji: A Unicode emoji glyph to represent the entity, if applicable. If there is no suitable (Unicode) emoji, omit this field. Consumers may choose to ignore this field, or replace it with a custom image. + - name: The name of the language, tool, etc being described by this metadata. + +-} +type alias Meta = + { category : ResourceCategory + , description : String + , domains : List LanguageDomain + , emoji : Maybe String + , name : String + } + + +{-| A domain that a programming language may be used in. +-} +type LanguageDomain + = LanguageDomain__DataScience + | LanguageDomain__DevOps + | LanguageDomain__GameDevelopment + | LanguageDomain__GeneralPurpose + | LanguageDomain__MobileDevelopment + | LanguageDomain__Scripting + | LanguageDomain__SystemsProgramming + | LanguageDomain__WebDevelopment + + +languageDomainToString : LanguageDomain -> String +languageDomainToString value = + case value of + LanguageDomain__DataScience -> + "Data Science" + + LanguageDomain__DevOps -> + "DevOps" + + LanguageDomain__GameDevelopment -> + "Game Development" + + LanguageDomain__GeneralPurpose -> + "General Purpose" + + LanguageDomain__MobileDevelopment -> + "Mobile Development" + + LanguageDomain__Scripting -> + "Scripting" + + LanguageDomain__SystemsProgramming -> + "Systems Programming" + + LanguageDomain__WebDevelopment -> + "Web Development" + + +languageDomainFromString : String -> Maybe LanguageDomain +languageDomainFromString value = + case value of + "Data Science" -> + Just LanguageDomain__DataScience + + "DevOps" -> + Just LanguageDomain__DevOps + + "Game Development" -> + Just LanguageDomain__GameDevelopment + + "General Purpose" -> + Just LanguageDomain__GeneralPurpose + + "Mobile Development" -> + Just LanguageDomain__MobileDevelopment + + "Scripting" -> + Just LanguageDomain__Scripting + + "Systems Programming" -> + Just LanguageDomain__SystemsProgramming + + "Web Development" -> + Just LanguageDomain__WebDevelopment + + _ -> + Nothing + + +languageDomainVariants : List LanguageDomain +languageDomainVariants = + [ LanguageDomain__DataScience + , LanguageDomain__DevOps + , LanguageDomain__GameDevelopment + , LanguageDomain__GeneralPurpose + , LanguageDomain__MobileDevelopment + , LanguageDomain__Scripting + , LanguageDomain__SystemsProgramming + , LanguageDomain__WebDevelopment + ] + + {-| Fields: - model: The Free(mium) Pricing Model of this resource. 'Free' should be used for resources where 100% (or close) of the content is free. 'Freemium' describes a pricing model where the core content is available for free, but features paid extensions. If the resource has a freemium model but the free portion is very limited, consider using 'Paid' instead and providing an estimated price for the full version. @@ -208,87 +418,56 @@ entityTagVariants = {-| Fields: - metadata: List of all entities in the system - - A list of: - Fields: - - - category: The category of the resource - - description: A brief description of the language, tool, etc being described by this metadata. - - domains: The domain(s) that the entity is commonly used in, or best suited for. - - A list of: A domain that a programming language may be used in. - - emoji: A Unicode emoji glyph to represent the entity, if applicable. If there is no suitable (Unicode) emoji, omit this field. Consumers may choose to ignore this field, or replace it with a custom image. - - id: The unique identifier of the entity - - name: The name of the language, tool, etc being described by this metadata. - - resources: List of all learning resources - A list of: - Fields: - - - cons: Array of cons for using the resource, e.g. 'only teaches the basics rather than more advanced concepts' - - description: A brief description of the resource - - name: The official name of the resource - - pricing: Details about the cost of the resource. - - pros: Array of pros for using the resource, e.g. 'explains difficult concepts with good analogies' - - teaches: The topics that this resource teaches. - - type: The type(s) of the resource, e.g. 'Video', 'Book', 'Course', etc. - - A list of: The type of the resource - - url: URL to the resource - -} type alias Database = - { metadata : - List - { category : Json.Encode.Value - , description : String - , domains : List String - , emoji : Maybe String - , id : EntityTag - , name : String - } - , resources : - List - { cons : Maybe (List String) - , description : Maybe String - , name : String - , pricing : FreePricing_Or_PaidPricing - , pros : Maybe (List String) - , teaches : List EntityTag - , type_ : List String - , url : String - } - } + { metadata : List CompiledMeta, resources : List Resource } {-| Fields: - - category: The category of the resource - - description: A brief description of the language, tool, etc being described by this metadata. - - domains: The domain(s) that the entity is commonly used in, or best suited for. - - A list of: A domain that a programming language may be used in. - - emoji: A Unicode emoji glyph to represent the entity, if applicable. If there is no suitable (Unicode) emoji, omit this field. Consumers may choose to ignore this field, or replace it with a custom image. - - - id: The unique identifier of the entity - - name: The name of the language, tool, etc being described by this metadata. -} type alias CompiledMeta = - { category : Json.Encode.Value + { category : ResourceCategory , description : String - , domains : List String + , domains : List LanguageDomain , emoji : Maybe String , id : EntityTag , name : String } +type alias CategoryTool = + { type_ : String } + + +{-| A platform used to learn programming, which may teach a variety of languages and concepts. +-} +type alias CategoryPlatform = + { type_ : String } + + +{-| Fields: + + - paradigms: The programming paradigms that this language focuses on, e.g. 'Object-Oriented Programming', 'Functional Programming', 'Procedural Programming', etc. + +-} +type alias CategoryLanguage = + { paradigms : List ProgrammingParadigm, type_ : String } + + +type CategoryLanguage_Or_CategoryPlatform_Or_CategoryTool + = CategoryLanguage_Or_CategoryPlatform_Or_CategoryTool__CategoryLanguage CategoryLanguage + | CategoryLanguage_Or_CategoryPlatform_Or_CategoryTool__CategoryPlatform CategoryPlatform + | CategoryLanguage_Or_CategoryPlatform_Or_CategoryTool__CategoryTool CategoryTool + + type FreePricing_Or_PaidPricing = FreePricing_Or_PaidPricing__FreePricing FreePricing | FreePricing_Or_PaidPricing__PaidPricing PaidPricing diff --git a/src/Pages/Learning.elm b/src/Pages/Learning.elm index 0369603..6ae8706 100644 --- a/src/Pages/Learning.elm +++ b/src/Pages/Learning.elm @@ -2,10 +2,11 @@ module Pages.Learning exposing (Model, Msg, page) import Api import Effect exposing (Effect) -import Html.Styled as Html +import Html.Styled as Html exposing (Html) import Html.Styled.Attributes as Attr +import Json.Encode import Layouts -import LearningResources +import LearningResources.Types as LearningResources import Page exposing (Page) import Route exposing (Route) import Route.Path @@ -15,7 +16,8 @@ import Tailwind.Breakpoints as Breakpoints import Tailwind.Theme as Tw import Tailwind.Utilities as Tw import View exposing (View) - +import Dict +import Html.Styled.Events exposing (onInput) page : Shared.Model -> Route () -> Page Model Msg page shared _ = @@ -25,31 +27,31 @@ page shared _ = , subscriptions = subscriptions , view = view shared } - |> Page.withLayout Layouts.Global + |> Page.withLayout (\_ -> Layouts.Global {}) + + + +-- INIT & STATE type alias Model = - {} + { searchQuery : String } type Msg - = NoOp + = SearchQueryChanged String init : () -> ( Model, Effect Msg ) init _ = - ( {} - , Effect.none - ) + ( { searchQuery = "" }, Effect.none ) update : Msg -> Model -> ( Model, Effect Msg ) update msg model = case msg of - NoOp -> - ( model - , Effect.none - ) + SearchQueryChanged query -> + ( { model | searchQuery = query }, Effect.none ) subscriptions : Model -> Sub Msg @@ -57,86 +59,158 @@ subscriptions _ = Sub.none + +-- VIEW + + view : Shared.Model -> Model -> View Msg -view shared _ = - { title = "Learning" +view shared model = + { title = "Learning Directory" , body = - case shared.learningIndex of - SharedModel.Loading -> - [ Html.text "Loading learning resources..." ] + [ Html.div [ Attr.css [ Tw.pt_12, Tw.pb_24, Tw.max_w_7xl, Tw.mx_auto ] ] + [ viewHeader model.searchQuery + , case shared.learningDatabase of + SharedModel.Loading -> + Html.div [ Attr.css [ Tw.text_center, Tw.text_color Tw.gray_400 ] ] [ Html.text "Loading learning directory..." ] - SharedModel.Failure error -> - [ Html.text "Failed to load learning resources :(" - , Html.div [] [ Html.text (Api.toUserFriendlyMessage error) ] - ] + SharedModel.Failure _ -> + Html.div [ Attr.css [ Tw.text_center, Tw.text_color Tw.red_400 ] ] [ Html.text "Failed to load directory." ] - SharedModel.Success entries -> - [ Html.div [] - [ Html.h1 [] [ Html.text "Learning Resources" ] - , Html.div - [ Attr.class "learning-cards" ] - (List.map viewCard entries) - ] - ] + SharedModel.Success db -> + viewCategorizedGrid model.searchQuery db.metadata + ] + ] } - -viewCardGrid = - Html.div - [ Attr.css - [ Tw.grid - , Tw.grid_cols_1 - , Tw.md__grid_cols_3 -- 3 columns on desktop - , Tw.gap_8 - , Tw.mt_12 - ] +viewHeader : String -> Html Msg +viewHeader query = + Html.div [ Attr.css [ Tw.flex, Tw.flex_col, Tw.items_center, Tw.text_center, Tw.mb_16 ] ] + [ Html.h1 + [ Attr.css [ Tw.text_5xl, Tw.font_bold, Tw.tracking_widest, Tw.uppercase, Tw.mb_4 ] ] + [ Html.text "LEARNING RESOURCES" ] + , Html.p + [ Attr.css [ Tw.text_lg, Tw.text_color Tw.gray_400, Tw.max_w_2xl, Tw.mb_8 ] ] + [ Html.text "Explore our curated directory of programming languages, tools, and concepts." ] + , Html.input + [ Attr.value query + , onInput SearchQueryChanged + , Attr.placeholder "Search topics or domains (e.g., 'Rust', 'Web')..." + , Attr.css + [ Tw.w_full + , Tw.max_w_lg + , Tw.p_4 + , Tw.rounded_xl + , Tw.bg_color Tw.slate_800 + , Tw.border + , Tw.border_color Tw.slate_700 + , Tw.text_color Tw.white + -- , Tw.focus__border_fuchsia_500 + -- , Tw.focus__outline_none + ] + ] + [] ] - [ viewCard "Web Frontend" - , viewCard "Backend" - , viewCard "Systems" + + +viewCategorizedGrid : String -> List LearningResources.CompiledMeta -> Html Msg +viewCategorizedGrid query metadata = + let + q = + String.toLower query + + -- Filter by name or domains + filtered = + List.filter + (\meta -> + String.contains q (String.toLower meta.name) + || List.any (\domain -> String.contains q (String.toLower (LearningResources.languageDomainToString domain))) meta.domains + ) + metadata + + -- Group by category. (Decoding the Json.Encode.Value to a string) + grouped = + List.foldl + (\meta acc -> + let + catStr = + categoryToString meta.category + in + Dict.update catStr + (\maybeList -> Just (Maybe.withDefault [] maybeList ++ [ meta ])) + acc + ) + Dict.empty + filtered + in + Html.div [ Attr.css [ Tw.flex, Tw.flex_col, Tw.gap_16 ] ] + (Dict.toList grouped + |> List.map (\( category, items ) -> viewCategorySection category items) + ) + + +viewCategorySection : String -> List LearningResources.CompiledMeta -> Html msg +viewCategorySection category items = + Html.div [] + [ Html.h2 + [ Attr.css [ Tw.text_2xl, Tw.font_bold, Tw.mb_6, Tw.border_b, Tw.border_color Tw.slate_700, Tw.pb_2 ] ] + [ Html.text category ] + , Html.div + [ Attr.css [ Tw.grid, Tw.grid_cols_1, Tw.gap_6 ] ] + (List.map viewTopicCard items) ] -viewCard : String -> Html msg -viewCard title = - div - [ css +viewTopicCard : LearningResources.CompiledMeta -> Html msg +viewTopicCard meta = + Html.a + [ Route.Path.href (Route.Path.Learning_Resource_ { resource = LearningResources.entityTagToString meta.id }) + |> Attr.fromUnstyled + , Attr.css [ Tw.flex , Tw.flex_col + , Tw.bg_color Tw.slate_700 , Tw.rounded_xl - , Tw.overflow_hidden + , Tw.p_6 , Tw.border - , Tw.border_slate_700 - ] + , Tw.border_color Tw.slate_700 + , Tw.transition_colors + , Tw.cursor_pointer + ] ] - [ -- Top white half - div [ css [ Tw.bg_white, Tw.h_32, Tw.w_full ] ] [] - -- Bottom dark half - , div [ css [ Tw.bg_slate_800, Tw.p_4, Tw.flex_grow ] ] - [ Html.h3 [ css [ Tw.font_bold, Tw.text_lg, Tw.mb_2 ] ] [ text title ] - , Html.p [ css [ Tw.text_xs, Tw.text_gray_400 ] ] - [ text "This is the front-end website that you are viewing right now..." ] + [ Html.div [ Attr.css [ Tw.flex, Tw.items_center, Tw.mb_4, Tw.gap_3 ] ] + [ Html.div [ Attr.css [ Tw.text_3xl ] ] [ Html.text (Maybe.withDefault "📄" meta.emoji) ] + , Html.h3 [ Attr.css [ Tw.font_bold, Tw.text_xl, Tw.text_color Tw.white ] ] [ Html.text meta.name ] ] + , Html.p [ Attr.css [ Tw.text_sm, Tw.text_color Tw.gray_400, Tw.flex_grow, Tw.mb_6 ] ] + [ Html.text meta.description ] + , Html.div [ Attr.css [ Tw.flex, Tw.flex_wrap, Tw.gap_2 ] ] + (List.map (\domain -> viewBadge (LearningResources.languageDomainToString domain)) meta.domains) ] -viewCard : LearningResources.ResourceIndexEntry -> Html.Html msg -viewCard entry = - Html.div +viewBadge : String -> Html msg +viewBadge label = + Html.span [ Attr.css - [ Tw.bg_color Tw.dd_deepblue - , Tw.text_color Tw.white - , Tw.border - , Tw.rounded_xl - , Tw.p_6 - ] - ] - [ Html.article - [ Attr.class "learning-card" ] - [ Html.h3 [] [ Html.text entry.name ] - , Html.a - [ Route.Path.href (Route.Path.Learning_Resource_ { resource = entry.name }) - |> Attr.fromUnstyled - ] - [ Html.text "Click to browse resources" ] + [ Tw.text_xs + , Tw.font_medium + , Tw.bg_color Tw.slate_700 + , Tw.text_color Tw.slate_300 + , Tw.px_2 + , Tw.py_1 + , Tw.rounded_full ] ] + [ Html.text label ] + + +categoryToString : LearningResources.ResourceCategory -> String +categoryToString categoryUnion = + case categoryUnion of + LearningResources.CategoryLanguage_Or_CategoryPlatform_Or_CategoryTool__CategoryLanguage _ -> + "Language" + + LearningResources.CategoryLanguage_Or_CategoryPlatform_Or_CategoryTool__CategoryPlatform _ -> + "Platform" + + LearningResources.CategoryLanguage_Or_CategoryPlatform_Or_CategoryTool__CategoryTool _ -> + "Tool" \ No newline at end of file diff --git a/src/Pages/Learning/Resource_.elm b/src/Pages/Learning/Resource_.elm index b605825..1a1df1a 100644 --- a/src/Pages/Learning/Resource_.elm +++ b/src/Pages/Learning/Resource_.elm @@ -1,125 +1,184 @@ module Pages.Learning.Resource_ exposing (Model, Msg, page) -import Api -import Dict -import Effect exposing (Effect, sendSharedMsg) -import Html.Styled as Html -import Http +import Effect exposing (Effect) +import Html.Styled as Html exposing (Html, div, span, text) +import Html.Styled.Attributes as Attr exposing (css, href, target) import Layouts -import LearningResources +import LearningResources.Types as LearningResources import Page exposing (Page) import Route exposing (Route) +import Route.Path import Shared import Shared.Model as SharedModel -import Shared.Msg +import Tailwind.Theme as Tw +import Tailwind.Utilities as Tw import View exposing (View) page : Shared.Model -> Route { resource : String } -> Page Model Msg page shared route = Page.new - { init = \() -> init shared route.params - , update = update - , subscriptions = subscriptions + { init = \_ -> ( {}, Effect.none ) + , update = \_ model -> ( model, Effect.none ) + , subscriptions = \_ -> Sub.none , view = view shared route.params } - |> Page.withLayout (\_ -> Layouts.Global {}) - - - --- INIT + |> Page.withLayout (\_ -> Layouts.Global {}) type alias Model = - { resourceInfo : ResourceInfo, resourceId : String } - - -type ResourceInfo - = NotFound - | Loading - | Found LearningResources.LearningResourcesSet - - -init : Shared.Model -> { resource : String } -> ( Model, Effect Msg ) -init model route = - case Dict.get route.resource model.learningResources of - Nothing -> - ( { resourceInfo = Loading, resourceId = route.resource } - , Api.getLearningResource { name = route.resource, onResponse = LearningResourceResponded } - ) - - Just info -> - ( { resourceInfo = sharedResourceInfoToResourceInfo info, resourceId = route.resource } - , Effect.none - ) - - -sharedResourceInfoToResourceInfo : SharedModel.ResourceInfo -> ResourceInfo -sharedResourceInfoToResourceInfo model = - case model of - SharedModel.NotFound -> - NotFound - - SharedModel.Found resourcesSet -> - Found resourcesSet - - - --- UPDATE + {} type Msg - = LearningResourceResponded (Result Http.Error LearningResources.LearningResourcesSet) + = NoOp -update : Msg -> Model -> ( Model, Effect Msg ) -update msg model = - case msg of - LearningResourceResponded (Ok resourcesSet) -> - ( { model | resourceInfo = Found resourcesSet } - , Effect.sendSharedMsg (Shared.Msg.CacheLearningResource ( model.resourceId, resourcesSet )) - ) - LearningResourceResponded (Err _) -> - ( { model | resourceInfo = NotFound } - , Effect.none - ) - - - --- SUBSCRIPTIONS - - -subscriptions : Model -> Sub Msg -subscriptions model = - Sub.none +-- VIEW +view : Shared.Model -> { resource : String } -> Model -> View Msg +view shared route _ = + case shared.learningDatabase of + SharedModel.Loading -> + { title = "Loading...", body = [ text "Loading resources..." ] } + + SharedModel.Failure _ -> + { title = "Error", body = [ text "Failed to load database." ] } + + SharedModel.Success db -> + case LearningResources.entityTagFromString route.resource of + Nothing -> + { title = "Not Found", body = [ text "Topic not found." ] } + + Just tag -> + let + maybeMeta = + List.filter (\m -> m.id == tag) db.metadata |> List.head + + topicResources = + List.filter (\r -> List.member tag r.teaches) db.resources + in + { title = Maybe.map .name maybeMeta |> Maybe.withDefault "Topic" + , body = + [ div [ css [ Tw.max_w_5xl, Tw.mx_auto, Tw.py_12 ] ] + [ viewTopicHeader maybeMeta + , viewResourceGrid topicResources + ] + ] + } + + +viewTopicHeader : Maybe LearningResources.CompiledMeta -> Html Msg +viewTopicHeader maybeMeta = + case maybeMeta of + Nothing -> + text "" --- VIEW + Just meta -> + div [ css [ Tw.mb_12, Tw.border_b, Tw.border_color Tw.slate_700, Tw.pb_8 ] ] + [ div [ css [ Tw.flex, Tw.items_center, Tw.gap_4, Tw.mb_4 ] ] + [ div [ css [ Tw.text_5xl ] ] [ text (Maybe.withDefault "" meta.emoji) ] + , Html.h1 [ css [ Tw.text_4xl, Tw.font_bold ] ] [ text meta.name ] + ] + , Html.p [ css [ Tw.text_xl, Tw.text_color Tw.gray_300, Tw.mb_4 ] ] [ text meta.description ] + ] -view : Shared.Model -> { resource : String } -> Model -> View Msg -view shared route model = - case model.resourceInfo of - Loading -> - { title = "Loading resource..." - , body = - [ Html.text "Loading learning resource..." ] - } - - NotFound -> - { title = "Resource not found" - , body = - [ Html.text "The requested learning resource could not be found." ] - } - - Found resourcesSet -> - { title = "pee" - , body = - [ Html.div [] - [ Html.text resourcesSet.name - , Html.text resourcesSet.description +viewResourceGrid : List LearningResources.Resource -> Html Msg +viewResourceGrid resources = + if List.isEmpty resources then + div [ css [ Tw.text_color Tw.gray_400, Tw.italic ] ] [ text "No resources found for this topic yet." ] + + else + div [ css [ Tw.grid, Tw.grid_cols_1, Tw.gap_6 ] ] + (List.map viewResourceCard resources) + + +viewResourceCard : LearningResources.Resource -> Html Msg +viewResourceCard resource = + div + [ css + [ Tw.bg_color Tw.slate_800 + , Tw.rounded_xl + , Tw.p_6 + , Tw.border + , Tw.border_color Tw.slate_700 + , Tw.flex + , Tw.flex_col + ] + ] + [ div [ css [ Tw.flex, Tw.justify_between, Tw.items_start, Tw.mb_2 ] ] + [ Html.h3 [ css [ Tw.font_bold, Tw.text_lg, Tw.text_color Tw.white ] ] [ text resource.name ] + , viewPricingBadge resource.pricing + ] + , div [ css [ Tw.flex, Tw.gap_2, Tw.mb_4 ] ] + (List.map viewTypeBadge resource.type_) + , Html.p [ css [ Tw.text_sm, Tw.text_color Tw.gray_400, Tw.flex_grow, Tw.mb_6 ] ] + [ text (Maybe.withDefault "No description available." resource.description) ] + , Html.a + [ href resource.url + , target "_blank" + , css + [ Tw.inline_block + , Tw.text_center + , Tw.bg_color Tw.fuchsia_600 + , Tw.text_color Tw.white + , Tw.font_bold + , Tw.py_2 + , Tw.px_4 + , Tw.rounded_lg + , Tw.transition_colors + ] + ] + [ text "Go to Resource" ] + ] + + +viewTypeBadge : LearningResources.ResourceType -> Html Msg +viewTypeBadge resourceType = + span + [ css + [ Tw.text_xs + , Tw.font_medium + , Tw.bg_color Tw.indigo_900 + , Tw.text_color Tw.indigo_200 + , Tw.px_2 + , Tw.py_1 + , Tw.rounded_md + ] + ] + [ text (LearningResources.resourceTypeToString resourceType) ] + + +viewPricingBadge : LearningResources.Pricing -> Html Msg +viewPricingBadge pricing = + case pricing of + LearningResources.FreePricing_Or_PaidPricing__FreePricing free -> + span + [ css + [ Tw.text_xs + , Tw.font_bold + , Tw.bg_color Tw.emerald_900 + , Tw.text_color Tw.emerald_400 + , Tw.px_2 + , Tw.py_1 + , Tw.rounded_md + ] + ] + [ text free.model ] + + LearningResources.FreePricing_Or_PaidPricing__PaidPricing paid -> + span + [ css + [ Tw.text_xs + , Tw.font_bold + , Tw.bg_color Tw.slate_700 + , Tw.text_color Tw.slate_300 + , Tw.px_2 + , Tw.py_1 + , Tw.rounded_md ] ] - } + [ text (paid.model ++ ": $" ++ String.fromFloat paid.amount) ] \ No newline at end of file diff --git a/src/Shared.elm b/src/Shared.elm index 54796c1..60bc674 100644 --- a/src/Shared.elm +++ b/src/Shared.elm @@ -44,7 +44,7 @@ type alias Model = init : Result Json.Decode.Error Flags -> Route () -> ( Model, Effect Msg ) init _ _ = - ( { learningIndex = Shared.Model.Loading, learningResources = Dict.empty } + ( { learningDatabase = Shared.Model.Loading } , Api.getLearningResourcesIndex { onResponse = Shared.Msg.LearningIndexResponded } ) @@ -62,22 +62,17 @@ update : Route () -> Msg -> Model -> ( Model, Effect Msg ) update _ msg model = case msg of Shared.Msg.LearningIndexResponded (Ok entries) -> - ( { model | learningIndex = Shared.Model.Success entries } + ( { model | learningDatabase = Shared.Model.Success entries } , Effect.none ) Shared.Msg.LearningIndexResponded (Err error) -> - ( { model | learningIndex = Shared.Model.Failure error } + ( { model | learningDatabase = Shared.Model.Failure error } , Effect.none ) - Shared.Msg.CacheLearningResource (resource, resourcesSet) -> - ( { model | learningResources = (Dict.insert resource (Shared.Model.Found resourcesSet) model.learningResources) } - , Effect.none - ) - Shared.Msg.RetryLearningIndex -> - ( { model | learningIndex = Shared.Model.Loading } + ( { model | learningDatabase = Shared.Model.Loading } , Api.getLearningResourcesIndex { onResponse = Shared.Msg.LearningIndexResponded } ) diff --git a/src/Shared/Model.elm b/src/Shared/Model.elm index 8cd247a..f400e80 100644 --- a/src/Shared/Model.elm +++ b/src/Shared/Model.elm @@ -1,7 +1,5 @@ module Shared.Model exposing - ( LearningIndexStatus(..) - , LearningResourcesData - , ResourceInfo(..) + ( LearningDatabaseStatus(..) , Model ) @@ -9,7 +7,7 @@ module Shared.Model exposing import Dict exposing (Dict) import Http -import LearningResources +import LearningResources.Types as LearningResources {-| Normally, this value would live in "Shared.elm" @@ -19,22 +17,13 @@ For that reason, both `Shared.Model` and `Shared.Msg` are in their own file, so they can be imported by `Effect.elm` -} -type LearningIndexStatus +type LearningDatabaseStatus = Loading - | Success (List LearningResources.ResourceIndexEntry) + | Success LearningResources.Database | Failure Http.Error -type alias LearningResourcesData - = (Dict String ResourceInfo) - - -type ResourceInfo - = NotFound - | Found LearningResources.LearningResourcesSet - type alias Model = - { learningIndex : LearningIndexStatus - , learningResources : LearningResourcesData + { learningDatabase : LearningDatabaseStatus } diff --git a/src/Shared/Msg.elm b/src/Shared/Msg.elm index d9035da..011fefe 100644 --- a/src/Shared/Msg.elm +++ b/src/Shared/Msg.elm @@ -3,7 +3,7 @@ module Shared.Msg exposing (Msg(..)) {-| -} import Http -import LearningResources +import LearningResources.Types as LearningResources {-| Normally, this value would live in "Shared.elm" @@ -14,7 +14,6 @@ own file, so they can be imported by `Effect.elm` -} type Msg - = LearningIndexResponded (Result Http.Error (List LearningResources.ResourceIndexEntry)) - | CacheLearningResource (String, LearningResources.LearningResourcesSet) + = LearningIndexResponded (Result Http.Error LearningResources.Database) | RetryLearningIndex | NoOp From a929d091229199b470d124be7293ef1a8e0ff8c7 Mon Sep 17 00:00:00 2001 From: Alexander Wood Date: Thu, 14 May 2026 13:14:06 +0100 Subject: [PATCH 15/26] feat: complete mvp of learning resources --- src/LearningResources/Emojis.elm | 49 +++++++++++ src/Pages/Learning.elm | 138 +++++++++++++++++++----------- src/Pages/Learning/Resource_.elm | 142 +++++++++++++++++++++---------- src/Theming.elm | 51 +++++++++++ static/base.css | 1 + tailwind.config.ts | 5 ++ 6 files changed, 290 insertions(+), 96 deletions(-) create mode 100644 src/LearningResources/Emojis.elm create mode 100644 src/Theming.elm diff --git a/src/LearningResources/Emojis.elm b/src/LearningResources/Emojis.elm new file mode 100644 index 0000000..99ab516 --- /dev/null +++ b/src/LearningResources/Emojis.elm @@ -0,0 +1,49 @@ +-- Backup emoji mappings for learning resources + + +module LearningResources.Emojis exposing (..) + +import LearningResources.Types as LearningResources + + +emojiForTag : LearningResources.EntityTag -> String +emojiForTag tag = + case tag of + LearningResources.EntityTag__Clojure -> + "🍵" + + LearningResources.EntityTag__Python -> + "🐍" + + LearningResources.EntityTag__Rust -> + "🦀" + + LearningResources.EntityTag__Haskell -> + "📐" + + LearningResources.EntityTag__Java -> + "☕" + + LearningResources.EntityTag__Kotlin -> + "🤖" + + _ -> + "📚" + + +emojiOrBackup : LearningResources.CompiledMeta -> String +emojiOrBackup meta = + case meta.emoji of + Just e -> + case String.length e of + 1 -> + e + + 2 -> + e + + _ -> + emojiForTag meta.id + + Nothing -> + emojiForTag meta.id diff --git a/src/Pages/Learning.elm b/src/Pages/Learning.elm index 6ae8706..465da2b 100644 --- a/src/Pages/Learning.elm +++ b/src/Pages/Learning.elm @@ -1,11 +1,14 @@ module Pages.Learning exposing (Model, Msg, page) -import Api +import Css +import Dict import Effect exposing (Effect) -import Html.Styled as Html exposing (Html) -import Html.Styled.Attributes as Attr +import Html.Styled as Html exposing (Html, div, span, text) +import Html.Styled.Attributes as Attr exposing (css) +import Html.Styled.Events exposing (onInput) import Json.Encode import Layouts +import LearningResources.Emojis as Emojis import LearningResources.Types as LearningResources import Page exposing (Page) import Route exposing (Route) @@ -15,9 +18,9 @@ import Shared.Model as SharedModel import Tailwind.Breakpoints as Breakpoints import Tailwind.Theme as Tw import Tailwind.Utilities as Tw +import Theming import View exposing (View) -import Dict -import Html.Styled.Events exposing (onInput) + page : Shared.Model -> Route () -> Page Model Msg page shared _ = @@ -67,17 +70,19 @@ view : Shared.Model -> Model -> View Msg view shared model = { title = "Learning Directory" , body = - [ Html.div [ Attr.css [ Tw.pt_12, Tw.pb_24, Tw.max_w_7xl, Tw.mx_auto ] ] + [ div [ css [ Tw.pt_12, Tw.pb_24, Tw.max_w_7xl, Tw.mx_auto, Tw.px_6 ] ] [ viewHeader model.searchQuery , case shared.learningDatabase of SharedModel.Loading -> - Html.div [ Attr.css [ Tw.text_center, Tw.text_color Tw.gray_400 ] ] [ Html.text "Loading learning directory..." ] + div [ css [ Theming.bodyFont, Tw.text_center, Tw.text_color Tw.gray_400 ] ] + [ text "Loading learning directory..." ] SharedModel.Failure _ -> - Html.div [ Attr.css [ Tw.text_center, Tw.text_color Tw.red_400 ] ] [ Html.text "Failed to load directory." ] + div [ css [ Theming.bodyFont, Tw.text_center, Tw.text_color Tw.red_400 ] ] + [ text "Failed to load directory." ] SharedModel.Success db -> - viewCategorizedGrid model.searchQuery db.metadata + viewCategorisedGrid model.searchQuery db.metadata ] ] } @@ -85,19 +90,20 @@ view shared model = viewHeader : String -> Html Msg viewHeader query = - Html.div [ Attr.css [ Tw.flex, Tw.flex_col, Tw.items_center, Tw.text_center, Tw.mb_16 ] ] + div [ css [ Tw.flex, Tw.flex_col, Tw.items_center, Tw.text_center, Tw.mb_16 ] ] [ Html.h1 - [ Attr.css [ Tw.text_5xl, Tw.font_bold, Tw.tracking_widest, Tw.uppercase, Tw.mb_4 ] ] - [ Html.text "LEARNING RESOURCES" ] + [ css [ Theming.headingFont, Tw.text_5xl, Tw.font_bold, Tw.tracking_widest, Tw.uppercase, Tw.mb_4 ] ] + [ text "Learning Resources" ] , Html.p - [ Attr.css [ Tw.text_lg, Tw.text_color Tw.gray_400, Tw.max_w_2xl, Tw.mb_8 ] ] - [ Html.text "Explore our curated directory of programming languages, tools, and concepts." ] + [ css [ Theming.bodyFont, Tw.text_lg, Tw.text_color Tw.gray_400, Tw.max_w_2xl, Tw.mb_8 ] ] + [ text "Explore our curated directory of programming languages, tools, and concepts." ] , Html.input [ Attr.value query , onInput SearchQueryChanged , Attr.placeholder "Search topics or domains (e.g., 'Rust', 'Web')..." - , Attr.css - [ Tw.w_full + , css + [ Theming.bodyFont + , Tw.w_full , Tw.max_w_lg , Tw.p_4 , Tw.rounded_xl @@ -105,21 +111,18 @@ viewHeader query = , Tw.border , Tw.border_color Tw.slate_700 , Tw.text_color Tw.white - -- , Tw.focus__border_fuchsia_500 - -- , Tw.focus__outline_none ] ] [] ] -viewCategorizedGrid : String -> List LearningResources.CompiledMeta -> Html Msg -viewCategorizedGrid query metadata = +viewCategorisedGrid : String -> List LearningResources.CompiledMeta -> Html Msg +viewCategorisedGrid query metadata = let q = String.toLower query - -- Filter by name or domains filtered = List.filter (\meta -> @@ -128,7 +131,6 @@ viewCategorizedGrid query metadata = ) metadata - -- Group by category. (Decoding the Json.Encode.Value to a string) grouped = List.foldl (\meta acc -> @@ -143,7 +145,7 @@ viewCategorizedGrid query metadata = Dict.empty filtered in - Html.div [ Attr.css [ Tw.flex, Tw.flex_col, Tw.gap_16 ] ] + div [ css [ Tw.flex, Tw.flex_col, Tw.gap_10 ] ] (Dict.toList grouped |> List.map (\( category, items ) -> viewCategorySection category items) ) @@ -151,56 +153,90 @@ viewCategorizedGrid query metadata = viewCategorySection : String -> List LearningResources.CompiledMeta -> Html msg viewCategorySection category items = - Html.div [] + div [] [ Html.h2 - [ Attr.css [ Tw.text_2xl, Tw.font_bold, Tw.mb_6, Tw.border_b, Tw.border_color Tw.slate_700, Tw.pb_2 ] ] - [ Html.text category ] - , Html.div - [ Attr.css [ Tw.grid, Tw.grid_cols_1, Tw.gap_6 ] ] + [ css + [ Theming.headingFont + , Tw.text_3xl + , Tw.font_bold + , Tw.mb_8 + , Theming.textGradient + , Tw.inline_block + ] + ] + [ text category ] + , div + [ css + [ Tw.grid + , Tw.grid_cols_1 + , Breakpoints.md [ Tw.grid_cols_3 ] + , Breakpoints.lg [ Tw.grid_cols_4 ] + , Tw.gap_6 + ] + ] (List.map viewTopicCard items) ] + viewTopicCard : LearningResources.CompiledMeta -> Html msg viewTopicCard meta = Html.a [ Route.Path.href (Route.Path.Learning_Resource_ { resource = LearningResources.entityTagToString meta.id }) |> Attr.fromUnstyled - , Attr.css - [ Tw.flex - , Tw.flex_col - , Tw.bg_color Tw.slate_700 - , Tw.rounded_xl - , Tw.p_6 - , Tw.border - , Tw.border_color Tw.slate_700 - , Tw.transition_colors + , css + [ Tw.block + , Tw.no_underline + , Css.hover [ Tw.border_color Tw.dd_pink, Tw.translate_y_1 ] + , Tw.transition_all + , Tw.duration_300 , Tw.cursor_pointer ] ] - [ Html.div [ Attr.css [ Tw.flex, Tw.items_center, Tw.mb_4, Tw.gap_3 ] ] - [ Html.div [ Attr.css [ Tw.text_3xl ] ] [ Html.text (Maybe.withDefault "📄" meta.emoji) ] - , Html.h3 [ Attr.css [ Tw.font_bold, Tw.text_xl, Tw.text_color Tw.white ] ] [ Html.text meta.name ] + [ Theming.cardShell [ Tw.relative ] + [ div + [ css + [ Tw.absolute + , Tw.top_0 + , Tw.left_0 + , Tw.right_0 + , Tw.h_1 + , Theming.brandGradientBg + ] + ] + [] + , div [ css [ Tw.p_5, Tw.bg_color Tw.dd_deepblue ] ] + [ div [ css [ Tw.flex, Tw.items_center, Tw.gap_3, Tw.mb_2 ] ] + [ div [ css [ Tw.text_3xl, Tw.drop_shadow_md ] ] [ text (Emojis.emojiOrBackup meta) ] + , Html.h3 [ css [ Theming.headingFont, Tw.text_xl, Tw.font_bold ] ] [ text meta.name ] + ] + , Html.p + [ css [ Theming.bodyFont, Tw.text_sm, Tw.text_color Tw.gray_300, Tw.mb_4 ] ] + [ text meta.description ] + , div [ css [ Tw.flex, Tw.flex_wrap, Tw.gap_2 ] ] + (List.map (LearningResources.languageDomainToString >> viewBadge) meta.domains) + ] ] - , Html.p [ Attr.css [ Tw.text_sm, Tw.text_color Tw.gray_400, Tw.flex_grow, Tw.mb_6 ] ] - [ Html.text meta.description ] - , Html.div [ Attr.css [ Tw.flex, Tw.flex_wrap, Tw.gap_2 ] ] - (List.map (\domain -> viewBadge (LearningResources.languageDomainToString domain)) meta.domains) ] + viewBadge : String -> Html msg viewBadge label = - Html.span - [ Attr.css - [ Tw.text_xs + span + [ css + [ Theming.headingFont + , Tw.text_xs , Tw.font_medium - , Tw.bg_color Tw.slate_700 + , Tw.bg_color Tw.slate_800 + , Tw.text_color Tw.slate_300 + , Tw.border + , Tw.border_color Tw.slate_600 , Tw.text_color Tw.slate_300 - , Tw.px_2 + , Tw.px_3 , Tw.py_1 , Tw.rounded_full ] ] - [ Html.text label ] + [ text label ] categoryToString : LearningResources.ResourceCategory -> String @@ -213,4 +249,4 @@ categoryToString categoryUnion = "Platform" LearningResources.CategoryLanguage_Or_CategoryPlatform_Or_CategoryTool__CategoryTool _ -> - "Tool" \ No newline at end of file + "Tool" diff --git a/src/Pages/Learning/Resource_.elm b/src/Pages/Learning/Resource_.elm index 1a1df1a..6a8ce25 100644 --- a/src/Pages/Learning/Resource_.elm +++ b/src/Pages/Learning/Resource_.elm @@ -10,9 +10,13 @@ import Route exposing (Route) import Route.Path import Shared import Shared.Model as SharedModel +import Tailwind.Breakpoints as Breakpoints import Tailwind.Theme as Tw import Tailwind.Utilities as Tw +import Theming +import Css import View exposing (View) +import LearningResources.Emojis as Emojis page : Shared.Model -> Route { resource : String } -> Page Model Msg @@ -48,9 +52,35 @@ view shared route _ = { title = "Error", body = [ text "Failed to load database." ] } SharedModel.Success db -> - case LearningResources.entityTagFromString route.resource of + let + activeTag = + LearningResources.entityTagFromString route.resource + + activeMeta = + activeTag + |> Maybe.andThen (\tag -> List.filter (\m -> m.id == tag) db.metadata |> List.head) + in + { title = Maybe.map .name activeMeta |> Maybe.withDefault "Topic" + , body = + [ viewExplorerLayout db activeTag route.resource ] + } + + +viewExplorerLayout : LearningResources.Database -> Maybe LearningResources.EntityTag -> String -> Html Msg +viewExplorerLayout db activeTag activeSlug = + div [ css [ Tw.flex, Tw.max_w_7xl, Tw.mx_auto, Tw.pt_12, Tw.pb_24, Tw.gap_12 ] ] + [ + div [ css [ Tw.w_64, Tw.flex_shrink_0, Tw.hidden, Breakpoints.lg [ Tw.block ] ] ] + [ Html.h3 [ css [ Theming.headingFont, Tw.text_xl, Tw.mb_6, Tw.border_b, Tw.border_color Tw.slate_700, Tw.pb_2 ] ] + [ text "Topics" ] + , viewSidebarTopicList db.metadata activeSlug + ] + + + , div [ css [ Tw.flex_1 ] ] + [ case activeTag of Nothing -> - { title = "Not Found", body = [ text "Topic not found." ] } + div [ css [ Tw.text_color Tw.gray_400 ] ] [ text "Topic not found." ] Just tag -> let @@ -60,14 +90,44 @@ view shared route _ = topicResources = List.filter (\r -> List.member tag r.teaches) db.resources in - { title = Maybe.map .name maybeMeta |> Maybe.withDefault "Topic" - , body = - [ div [ css [ Tw.max_w_5xl, Tw.mx_auto, Tw.py_12 ] ] - [ viewTopicHeader maybeMeta - , viewResourceGrid topicResources - ] + div [] + [ viewTopicHeader maybeMeta + , viewResourceGrid topicResources ] - } + ] + ] + + +viewSidebarTopicList : List LearningResources.CompiledMeta -> String -> Html Msg +viewSidebarTopicList metadata activeSlug = + div [ css [ Tw.flex, Tw.flex_col, Tw.gap_2 ] ] + (List.map (viewSidebarLink activeSlug) metadata) + + +viewSidebarLink : String -> LearningResources.CompiledMeta -> Html Msg +viewSidebarLink activeSlug meta = + let + metaSlug = + LearningResources.entityTagToString meta.id + + isActive = + activeSlug == metaSlug + in + Html.a + [ Route.Path.href (Route.Path.Learning_Resource_ { resource = metaSlug }) |> Attr.fromUnstyled + , css + [ Theming.headingFont + , Tw.text_sm + , Tw.py_2 + , Tw.px_3 + , Tw.rounded_lg + , Tw.transition_colors + , if isActive then Tw.bg_color Tw.slate_800 else Tw.bg_color Tw.transparent + , if isActive then Tw.text_color Tw.white else Tw.text_color Tw.gray_400 + , Css.hover [ Tw.text_color Tw.white, Tw.bg_color Tw.slate_800 ] + ] + ] + [ text (Emojis.emojiOrBackup meta ++ " " ++ meta.name) ] viewTopicHeader : Maybe LearningResources.CompiledMeta -> Html Msg @@ -79,60 +139,52 @@ viewTopicHeader maybeMeta = Just meta -> div [ css [ Tw.mb_12, Tw.border_b, Tw.border_color Tw.slate_700, Tw.pb_8 ] ] [ div [ css [ Tw.flex, Tw.items_center, Tw.gap_4, Tw.mb_4 ] ] - [ div [ css [ Tw.text_5xl ] ] [ text (Maybe.withDefault "" meta.emoji) ] - , Html.h1 [ css [ Tw.text_4xl, Tw.font_bold ] ] [ text meta.name ] + [ div [ css [ Tw.text_5xl ] ] [ text (Emojis.emojiOrBackup meta) ] + , Html.h1 [ css [ Theming.headingFont, Tw.text_4xl, Tw.font_bold ] ] [ text meta.name ] ] - , Html.p [ css [ Tw.text_xl, Tw.text_color Tw.gray_300, Tw.mb_4 ] ] [ text meta.description ] + , Html.p [ css [ Theming.bodyFont, Tw.text_xl, Tw.text_color Tw.gray_300, Tw.mb_4 ] ] + [ text meta.description ] ] viewResourceGrid : List LearningResources.Resource -> Html Msg viewResourceGrid resources = if List.isEmpty resources then - div [ css [ Tw.text_color Tw.gray_400, Tw.italic ] ] [ text "No resources found for this topic yet." ] - + div [ css [ Theming.bodyFont, Tw.text_color Tw.gray_400, Tw.italic ] ] [ text "No resources found for this topic yet." ] else - div [ css [ Tw.grid, Tw.grid_cols_1, Tw.gap_6 ] ] + div [ css [ Tw.grid, Tw.grid_cols_1, Breakpoints.md [ Tw.grid_cols_2 ], Tw.gap_6 ] ] (List.map viewResourceCard resources) viewResourceCard : LearningResources.Resource -> Html Msg viewResourceCard resource = - div - [ css - [ Tw.bg_color Tw.slate_800 - , Tw.rounded_xl - , Tw.p_6 - , Tw.border - , Tw.border_color Tw.slate_700 - , Tw.flex - , Tw.flex_col - ] - ] - [ div [ css [ Tw.flex, Tw.justify_between, Tw.items_start, Tw.mb_2 ] ] - [ Html.h3 [ css [ Tw.font_bold, Tw.text_lg, Tw.text_color Tw.white ] ] [ text resource.name ] + Theming.cardShell [ Tw.p_6, Tw.flex, Tw.flex_col ] + [ + div [ css [ Tw.flex, Tw.justify_between, Tw.items_start, Tw.mb_4 ] ] + [ Html.h3 [ css [ Theming.headingFont, Tw.text_lg ] ] [ text resource.name ] , viewPricingBadge resource.pricing ] + + , div [ css [ Tw.flex, Tw.gap_2, Tw.mb_4 ] ] (List.map viewTypeBadge resource.type_) - , Html.p [ css [ Tw.text_sm, Tw.text_color Tw.gray_400, Tw.flex_grow, Tw.mb_6 ] ] - [ text (Maybe.withDefault "No description available." resource.description) ] - , Html.a - [ href resource.url - , target "_blank" - , css - [ Tw.inline_block - , Tw.text_center - , Tw.bg_color Tw.fuchsia_600 - , Tw.text_color Tw.white - , Tw.font_bold - , Tw.py_2 - , Tw.px_4 - , Tw.rounded_lg - , Tw.transition_colors - ] + + + , Html.p [ css [ Theming.bodyFont, Tw.text_sm, Tw.mb_6, Tw.flex_grow ] ] + [ text (Maybe.withDefault "No description provided." resource.description) ] + + + , Html.a + [ Attr.href resource.url + , Attr.target "_blank" + , css + [ Theming.headingFont + , Tw.text_color Tw.dd_pink + , Css.hover [ Tw.text_color Tw.white ] + , Tw.transition_colors + ] ] - [ text "Go to Resource" ] + [ text "Read more ->" ] ] diff --git a/src/Theming.elm b/src/Theming.elm new file mode 100644 index 0000000..ad3b276 --- /dev/null +++ b/src/Theming.elm @@ -0,0 +1,51 @@ +module Theming exposing (..) + +import Css +import Html.Styled as Html exposing (Html) +import Html.Styled.Attributes as Attr +import Tailwind.Theme as Tw +import Tailwind.Utilities as Tw + + +brandGradientBg : Css.Style +brandGradientBg = + -- elm tailwind doesnt seem to play well with this + Css.property "background-image" + "linear-gradient(to right, var(--color-den-teal), var(--color-den-indigo), var(--color-den-pink))" + + +textGradient : Css.Style +textGradient = + Css.batch + [ brandGradientBg + , Css.property "-webkit-background-clip" "text" + , Css.property "background-clip" "text" + , Css.property "-webkit-text-fill-color" "transparent" + , Css.color Css.transparent + ] + + +headingFont : Css.Style +headingFont = + Css.batch [ Tw.font_mono, Tw.text_white ] + + +bodyFont : Css.Style +bodyFont = + Css.batch [ Tw.font_sans, Tw.text_gray_300 ] + + +cardShell : List Css.Style -> List (Html msg) -> Html msg +cardShell extraStyles children = + Html.div + [ Attr.css + ([ Tw.bg_color Tw.dd_deepblueLighter + , Tw.rounded_xl + , Tw.overflow_hidden + , Tw.border + , Tw.border_color Tw.slate_700 + ] + ++ extraStyles + ) + ] + children diff --git a/static/base.css b/static/base.css index 0ca377e..3da837b 100644 --- a/static/base.css +++ b/static/base.css @@ -4,6 +4,7 @@ :root { --color-den-deepblue: #171834; + --color-den-deepblue-lighter: #1e1f3d; --color-den-teal: #00AFC3; --color-den-pink: #FF52F9; --color-den-indigo: #8099FF; diff --git a/tailwind.config.ts b/tailwind.config.ts index 89b8294..a982f94 100644 --- a/tailwind.config.ts +++ b/tailwind.config.ts @@ -6,10 +6,15 @@ module.exports = { colors: { dd: { deepblue: 'var(--color-den-deepblue)', + deepblueLighter: 'var(--color-den-deepblue-lighter)', teal: 'var(--color-den-teal)', pink: 'var(--color-den-pink)', indigo: 'var(--color-den-indigo)', } + }, + fontFamily: { + mono: ['Cascadia Code', 'monospace'], + sans: ['Montserrat Medium', 'sans-serif'], } }, }, From 2c3513616f55d525373c8be1fb68d16ff8e31781 Mon Sep 17 00:00:00 2001 From: Alexander Wood Date: Thu, 14 May 2026 17:13:04 +0100 Subject: [PATCH 16/26] fix: styling tweaks --- README.MD | 1 + src/Layouts/Global.elm | 90 ++++++++++-- src/Pages/Learning.elm | 3 +- src/Pages/Learning/Resource_.elm | 4 +- src/Pages/Rules.elm | 228 +++++++++++++++++++++++++++++++ static/base.css | 14 ++ tailwind.config.ts | 4 +- 7 files changed, 331 insertions(+), 13 deletions(-) create mode 100644 src/Pages/Rules.elm diff --git a/README.MD b/README.MD index 0b0cc5a..e677e67 100644 --- a/README.MD +++ b/README.MD @@ -23,6 +23,7 @@ treefmt  # formats everything ## TODO - [ ] Main page (index), shows information about the organisation with links to the discord server +- [x] `/learning` - shows the learning resources database in a nice format. - [ ] `/xp/leaderboard` - show the top N users in terms of XP and level (can query the API for this). See https://lb.helpch.at/ for inspiration. Maybe allow parameters like `?size=10` to show the top 10 users. - [ ] `/stats/` - Shows various graphs with stats about the servers. We can decide on exactly the data we show later, diff --git a/src/Layouts/Global.elm b/src/Layouts/Global.elm index 9630517..36abfe6 100644 --- a/src/Layouts/Global.elm +++ b/src/Layouts/Global.elm @@ -1,18 +1,21 @@ module Layouts.Global exposing (Model, Msg, Props, layout) +import Css import Effect exposing (Effect) -import Html.Styled as Html -import Html.Styled.Attributes as Attr +import Html.Styled as Html exposing (Html, a, div, nav, text) +import Html.Styled.Attributes as Attr exposing (css, href) import Layout exposing (Layout) import Route exposing (Route) +import Route.Path import Shared import Tailwind.Theme as Tw import Tailwind.Utilities as Tw +import Theming import View exposing (View) type alias Props = - {} + { activePage : Route.Path.Path } layout : Props -> Shared.Model -> Route () -> Layout () Model Msg contentMsg @@ -20,7 +23,7 @@ layout props shared route = Layout.new { init = init , update = update - , view = view + , view = view props , subscriptions = subscriptions } @@ -66,8 +69,8 @@ subscriptions model = -- VIEW -view : { toContentMsg : Msg -> contentMsg, content : View contentMsg, model : Model } -> View contentMsg -view { toContentMsg, model, content } = +view : Props -> { toContentMsg : Msg -> contentMsg, content : View contentMsg, model : Model } -> View contentMsg +view layoutProps {content} = { title = content.title ++ " | Developer Den" , body = [ Html.div @@ -81,9 +84,80 @@ view { toContentMsg, model, content } = , Tw.antialiased ] ] - [ Html.div - [ Attr.css [ Tw.max_w_7xl, Tw.mx_auto, Tw.px_8, Tw.py_12 ] ] + [ viewNavbar layoutProps.activePage + , Html.div [ css [ Tw.flex_grow ] ] content.body ] ] } + + +viewNavbar : Route.Path.Path -> Html msg +viewNavbar activePage = + nav + [ css + [ Tw.flex + , Tw.justify_between + , Tw.items_center + , Tw.max_w_7xl + , Tw.mx_auto + , Tw.w_full + , Tw.px_8 + , Tw.py_6 + ] + ] + [ -- Logo + a + [ Route.Path.href Route.Path.Home_ |> Attr.fromUnstyled + , css [ Theming.headingFont, Tw.text_xl, Tw.font_bold, Tw.no_underline, Theming.textGradient ] + ] + [ text "developer den" ] + , -- Links + div [ css [ Tw.flex, Tw.gap_8 ] ] + [ viewNavLink "home" Route.Path.Home_ (activePage == Route.Path.Home_) + , viewNavLink "rules" Route.Path.Rules (activePage == Route.Path.Rules) + , viewNavLink "learning" Route.Path.Learning (activePage == Route.Path.Learning) + , a + [ href "https://developerden.org/discord" + , Attr.target "_blank" + , css + [ Theming.headingFont + , Tw.text_sm + , Tw.text_color Tw.slate_400 + , Css.hover [ Tw.text_color Tw.white ] + , Tw.transition_colors + , Tw.no_underline + ] + ] + [ text "discord" ] + ] + ] + + +viewNavLink : String -> Route.Path.Path -> Bool -> Html msg +viewNavLink label path isActive = + a + [ Route.Path.href path |> Attr.fromUnstyled + , css + [ Theming.headingFont + , Tw.text_sm + , Tw.pb_1 + , Tw.no_underline + , if isActive then + Tw.text_color Tw.white + + else + Tw.text_color Tw.slate_400 + , Css.hover [ Tw.text_color Tw.white ] + , Tw.transition_colors + , Tw.relative + ] + ] + [ text label + , -- The active underline gradient + if isActive then + div [ css [ Tw.absolute, Tw.bottom_0, Tw.left_0, Tw.right_0, Tw.h_1_dot_5, Theming.brandGradientBg ] ] [] + + else + text "" + ] diff --git a/src/Pages/Learning.elm b/src/Pages/Learning.elm index 465da2b..e30cd22 100644 --- a/src/Pages/Learning.elm +++ b/src/Pages/Learning.elm @@ -6,7 +6,6 @@ import Effect exposing (Effect) import Html.Styled as Html exposing (Html, div, span, text) import Html.Styled.Attributes as Attr exposing (css) import Html.Styled.Events exposing (onInput) -import Json.Encode import Layouts import LearningResources.Emojis as Emojis import LearningResources.Types as LearningResources @@ -30,7 +29,7 @@ page shared _ = , subscriptions = subscriptions , view = view shared } - |> Page.withLayout (\_ -> Layouts.Global {}) + |> Page.withLayout (\_ -> Layouts.Global { activePage = Route.Path.Learning}) diff --git a/src/Pages/Learning/Resource_.elm b/src/Pages/Learning/Resource_.elm index 6a8ce25..8857133 100644 --- a/src/Pages/Learning/Resource_.elm +++ b/src/Pages/Learning/Resource_.elm @@ -27,7 +27,9 @@ page shared route = , subscriptions = \_ -> Sub.none , view = view shared route.params } - |> Page.withLayout (\_ -> Layouts.Global {}) + |> Page.withLayout (\_ -> Layouts.Global { + activePage = Route.Path.Learning + }) type alias Model = diff --git a/src/Pages/Rules.elm b/src/Pages/Rules.elm new file mode 100644 index 0000000..f1dd99f --- /dev/null +++ b/src/Pages/Rules.elm @@ -0,0 +1,228 @@ +module Pages.Rules exposing (Model, Msg, page) + +import Css +import Effect exposing (Effect) +import Html.Styled as Html exposing (Html, a, div, h1, h2, h3, p, span, text) +import Html.Styled.Attributes as Attr exposing (css) +import Layouts +import Page exposing (Page) +import Route exposing (Route) +import Route.Path +import Shared +import Tailwind.Theme as Tw +import Tailwind.Utilities as Tw +import Theming +import View exposing (View) + + +page : Shared.Model -> Route () -> Page Model Msg +page shared route = + Page.new + { init = init + , update = update + , subscriptions = subscriptions + , view = view + } + |> Page.withLayout + (\_ -> + Layouts.Global + { activePage = Route.Path.Rules + } + ) + + + +-- INIT + + +type alias Model = + {} + + +init : () -> ( Model, Effect Msg ) +init () = + ( {} + , Effect.none + ) + + + +-- UPDATE + + +type Msg + = NoOp + + +type alias RuleSection = + { id : Int + , title : String + , rules : List (List (Html Msg)) + } + + +rulesData : List RuleSection +rulesData = + [ { id = 1 + , title = "Conduct and Communication" + , rules = + [ [ Html.b [ css [ Tw.text_color Tw.white ] ] [ text "Respect the Community: " ] + , text "No rudeness, insults, harassment, or \"dogpiling\" (ganging up on someone)." + ] + , [ Html.b [ css [ Tw.text_color Tw.white ] ] [ text "Engage in good faith: " ] + , text "No intentional derailing, \"sealioning\" (disingenuous questions), extreme sarcasm, or ragebait. Keep debates respectful and fair." + ] + , [ Html.b [ css [ Tw.text_color Tw.white ] ] [ text "Keep Criticism Constructive: " ] + , text "Stay objective about code/tools. No flaming, elitism, or mocking others for their choices, especially beginners." + ] + ] + } + , { id = 2 + , title = "Moderation Protocols" + , rules = + [ [ Html.b [ css [ Tw.text_color Tw.white ] ] [ text "No public moderation disputes: " ] + , text "Do not argue about warnings, mutes, or deleted messages in public. Mocking or undermining staff instructions leads to immediate escalation." + ] + , [ Html.b [ css [ Tw.text_color Tw.white ] ] [ text "Official Channels: " ] + , text "DM @Modmail to open a ticket for moderation issues." + ] + , [ Html.b [ css [ Tw.text_color Tw.white ] ] [ text "Staff Discretion: " ] + , text "Staff may remove users who are a net negative to the community vibe, even without a specific rule break." + ] + ] + } + , { id = 3 + , title = "Sensitive Content & Personal Boundaries" + , rules = + [ [ Html.b [ css [ Tw.text_color Tw.white ] ] [ text "No trauma-dumping: " ] + , text "Keep sensitive personal topics (mental health, self-harm, politics) out of public channels." + ] + , [ Html.b [ css [ Tw.text_color Tw.white ] ] [ text "No Vigilante Justice / Minimodding: " ] + , text "Report rule-breakers. Do not act as a moderator or take it upon yourself to \"teach them a lesson.\"" + ] + ] + } + , { id = 4 + , title = "Help Us Help You" + , rules = + [ [ text "Just ask your question, ", inlineLink "don't ask to ask, just ask" "https://dontasktoask.com" ] + , [ text "Give as much information as possible when asking for help." ] + , [ text "Don't DM or ping random people / staff for help, just ask your question and be patient." ] + , [ text "Use a ", inlineLink "paste service" "https://paste.developerden.org", text " for large blocks of code." ] + ] + } + , { id = 5 + , title = "Don't Be Evil" + , rules = + [ [ text "No NSFW content. Keep language reasonable with no excessive swearing." ] + , [ text "Follow Discord's Terms of Service." ] + , [ text "No spam, self-promotion, or harmful links." ] + , [ text "No asking for help with illegal/malicious programs." ] + , [ text "Other ethical violations like asking people to do your schoolwork for you are not allowed." ] + ] + } + ] + + +update : Msg -> Model -> ( Model, Effect Msg ) +update msg model = + case msg of + NoOp -> + ( model + , Effect.none + ) + + + +-- SUBSCRIPTIONS + + +subscriptions : Model -> Sub Msg +subscriptions model = + Sub.none + + + +-- VIEW + + +view : Model -> View Msg +view model = + { title = "Rules" + , body = + [ div [ css [ Tw.max_w_4xl, Tw.mx_auto, Tw.pt_2, Tw.pb_24, Tw.px_6 ] ] + [ viewHeader + , div [] + (List.map viewRuleSection rulesData) + ] + ] + } + + +viewHeader : Html Msg +viewHeader = + div [ css [ Tw.mb_8, Tw.text_center ] ] + [ h1 + [ css + [ Theming.headingFont + , Tw.text_5xl + , Tw.font_bold + , Tw.mb_2 + , Theming.textGradient + , Tw.inline_block + ] + ] + [ text "Server Rules" ] + , h2 + [ css [ Theming.bodyFont, Tw.text_lg, Tw.text_color Tw.gray_300 ] ] + [ text "You are welcome in our community as long as you follow the rules." ] + ] + + +viewRuleSection : RuleSection -> Html Msg +viewRuleSection section = + div + [ css + [ Tw.mb_6 ] + ] + [ h3 + [ css [ Theming.headingFont, Tw.text_2xl, Tw.text_color Tw.dd_teal, Tw.mb_3 ] ] + [ text (String.fromInt section.id ++ ". " ++ section.title) ] + , div [ css [ Tw.flex, Tw.flex_col, Tw.gap_2] ] + (List.indexedMap viewRuleLine section.rules) + ] + + +viewRuleLine : Int -> List (Html Msg) -> Html Msg +viewRuleLine index content = + let + -- convert 0, 1, 2 into 'a', 'b', 'c' + letter = + String.fromChar (Char.fromCode (97 + index)) ++ ". " + in + p + [ css + [ Theming.bodyFont + , Tw.text_base + , Tw.text_color Tw.gray_300 + , Tw.leading_snug + , Tw.m_0 + ] + ] + (Html.text letter :: content) + + +inlineLink : String -> String -> Html Msg +inlineLink val url = + a + [ Attr.href url + , Attr.target "_blank" + , css + [ Tw.text_color Tw.dd_pink + , Tw.font_semibold + , Tw.no_underline + , Css.hover [ Tw.text_color Tw.white ] + , Tw.transition_colors + ] + ] + [ text val ] diff --git a/static/base.css b/static/base.css index 3da837b..8066075 100644 --- a/static/base.css +++ b/static/base.css @@ -2,6 +2,20 @@ @tailwind components; @tailwind utilities; + +@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap'); + + +@font-face { + font-family: 'Cascadia Code Variable'; + font-style: normal; + font-display: swap; + font-weight: 200 700; + src: url(https://cdn.jsdelivr.net/fontsource/fonts/cascadia-code:vf@latest/latin-wght-normal.woff2) format('woff2-variations'); + unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; +} + + :root { --color-den-deepblue: #171834; --color-den-deepblue-lighter: #1e1f3d; diff --git a/tailwind.config.ts b/tailwind.config.ts index a982f94..4caa1db 100644 --- a/tailwind.config.ts +++ b/tailwind.config.ts @@ -13,8 +13,8 @@ module.exports = { } }, fontFamily: { - mono: ['Cascadia Code', 'monospace'], - sans: ['Montserrat Medium', 'sans-serif'], + mono: ['Cascadia Code Variable', 'monospace'], + sans: ['Montserrat', 'sans-serif'], } }, }, From d241ba4efb4e5fe7355a7599119f80aa64b94d45 Mon Sep 17 00:00:00 2001 From: Alexander Wood Date: Thu, 14 May 2026 18:25:18 +0100 Subject: [PATCH 17/26] feat: home page --- elm-land.json | 39 ++++++--- src/Layouts/Global.elm | 21 +++-- src/Pages/Home_.elm | 169 ++++++++++++++++++++++++++++++++++----- src/Redirects.elm | 11 +++ static/devden-banner.svg | 61 ++++++++++++++ static/devden-logo.svg | 59 ++++++++++++++ 6 files changed, 323 insertions(+), 37 deletions(-) create mode 100644 src/Redirects.elm create mode 100644 static/devden-banner.svg create mode 100644 static/devden-logo.svg diff --git a/elm-land.json b/elm-land.json index 010a8f1..5daeeb8 100644 --- a/elm-land.json +++ b/elm-land.json @@ -1,25 +1,46 @@ { "app": { "elm": { - "development": { "debugger": true }, - "production": { "debugger": false } + "development": { + "debugger": true + }, + "production": { + "debugger": false + } }, "env": [], "html": { "attributes": { - "html": { "lang": "en" }, + "html": { + "lang": "en" + }, "head": {} }, "title": "Elm Land", "meta": [ - { "charset": "UTF-8" }, - { "http-equiv": "X-UA-Compatible", "content": "IE=edge" }, - { "name": "viewport", "content": "width=device-width, initial-scale=1.0" } + { + "charset": "UTF-8" + }, + { + "http-equiv": "X-UA-Compatible", + "content": "IE=edge" + }, + { + "name": "viewport", + "content": "width=device-width, initial-scale=1.0" + } ], - "link": [ - { "rel": "stylesheet", "href": "/base.css" } + "link": [ + { + "rel": "stylesheet", + "href": "/base.css" + } ], - "script": [] + "script": [ + { + "src": "https://kit.fontawesome.com/9bc6b8da88.js" + } + ] }, "router": { "useHashRouting": false diff --git a/src/Layouts/Global.elm b/src/Layouts/Global.elm index 36abfe6..550215a 100644 --- a/src/Layouts/Global.elm +++ b/src/Layouts/Global.elm @@ -2,7 +2,7 @@ module Layouts.Global exposing (Model, Msg, Props, layout) import Css import Effect exposing (Effect) -import Html.Styled as Html exposing (Html, a, div, nav, text) +import Html.Styled as Html exposing (Html, a, img, div, nav, text) import Html.Styled.Attributes as Attr exposing (css, href) import Layout exposing (Layout) import Route exposing (Route) @@ -12,6 +12,7 @@ import Tailwind.Theme as Tw import Tailwind.Utilities as Tw import Theming import View exposing (View) +import Redirects type alias Props = @@ -78,6 +79,8 @@ view layoutProps {content} = , Attr.css [ Tw.min_h_screen , Tw.w_full + , Tw.overflow_x_hidden + , Tw.overflow_y_hidden , Tw.bg_color Tw.dd_deepblue , Tw.text_color Tw.white , Tw.font_sans @@ -106,19 +109,25 @@ viewNavbar activePage = , Tw.py_6 ] ] - [ -- Logo + [ a [ Route.Path.href Route.Path.Home_ |> Attr.fromUnstyled , css [ Theming.headingFont, Tw.text_xl, Tw.font_bold, Tw.no_underline, Theming.textGradient ] ] - [ text "developer den" ] - , -- Links + [ img + [ Attr.src "/static/devden-logo.svg" + , Attr.alt "Developer Den Logo" + , css [ Tw.h_16, Tw.w_auto ] + ] + [] + ] + , div [ css [ Tw.flex, Tw.gap_8 ] ] [ viewNavLink "home" Route.Path.Home_ (activePage == Route.Path.Home_) , viewNavLink "rules" Route.Path.Rules (activePage == Route.Path.Rules) , viewNavLink "learning" Route.Path.Learning (activePage == Route.Path.Learning) , a - [ href "https://developerden.org/discord" + [ href Redirects.discordURL , Attr.target "_blank" , css [ Theming.headingFont @@ -154,7 +163,7 @@ viewNavLink label path isActive = ] ] [ text label - , -- The active underline gradient + , if isActive then div [ css [ Tw.absolute, Tw.bottom_0, Tw.left_0, Tw.right_0, Tw.h_1_dot_5, Theming.brandGradientBg ] ] [] diff --git a/src/Pages/Home_.elm b/src/Pages/Home_.elm index ed70814..5ba96c3 100644 --- a/src/Pages/Home_.elm +++ b/src/Pages/Home_.elm @@ -1,36 +1,161 @@ -module Pages.Home_ exposing (page) +module Pages.Home_ exposing (Model, Msg, page) import Css -import Css.Global -import Html.Styled as Html -import Html.Styled.Attributes as Attr +import Effect exposing (Effect) +import Html.Styled as Html exposing (Html, a, div, fieldset, h1, h2, i, img, legend, p, text) +import Html.Styled.Attributes as Attr exposing (css, href, target) +import Layouts +import Page exposing (Page) +import Redirects +import Route exposing (Route) +import Route.Path +import Shared import Tailwind.Breakpoints as Breakpoints import Tailwind.Theme as Tw import Tailwind.Utilities as Tw -import View exposing (View) +import Theming -page : View msg -page = - { title = "Homepage" +page : Shared.Model -> Route () -> Page Model Msg +page _ _ = + Page.new + { init = \_ -> ( {}, Effect.none ) + , update = \_ model -> ( model, Effect.none ) + , subscriptions = \_ -> Sub.none + , view = \_ -> view + } + |> Page.withLayout (\_ -> Layouts.Global { activePage = Route.Path.Home_ }) + + +type alias Model = + {} + + +type Msg + = NoOp + + +view : { title : String, body : List (Html Msg) } +view = + { title = "Home" , body = - [ Html.a - [ Attr.css - [ Tw.inline_flex + [ div + [ css + [ Tw.flex + , Tw.flex_col , Tw.items_center , Tw.justify_center - , Tw.px_5 - , Tw.py_3 - , Tw.border - , Tw.border_color Tw.transparent - , Tw.text_base - , Tw.font_medium - , Tw.rounded_md - , Tw.text_color Tw.white - , Tw.bg_color Tw.indigo_600 - , Css.hover [ Tw.bg_color Tw.indigo_700 ] + , Tw.w_full + , Tw.h_full + , Tw.flex_grow + , Tw.px_6 + , Tw.py_8 ] ] - [ Html.text "Hello, world!" ] + [ viewBanner + ] + , viewFloatingSocials ] } + + +viewBanner : Html Msg +viewBanner = + div [ css [ Tw.text_center, Tw.mb_24 ] ] + [ img + [ Attr.src "/static/devden-banner.svg" + , Attr.alt "Developer Den Banner" + , css + [ Theming.headingFont + , Tw.font_bold + , Tw.mb_2 + , Theming.textGradient + , Tw.inline_block + , Tw.tracking_widest + , Tw.pb_3 + ] + ] + [] + , h2 + [ css + [ Theming.bodyFont + , Tw.text_xl + , Breakpoints.md [ Tw.text_2xl ] + , Tw.text_color Tw.gray_300 + , Tw.max_w_3xl + , Tw.mx_auto + , Tw.mb_10 + , Tw.leading_relaxed + ] + ] + [ text "A closely-knit community anchored in a common passion for programming." ] + , a + [ href Redirects.discordURL + , target "_blank" + , css + [ Tw.font_sans + , Tw.tracking_wide + , Tw.text_lg + , Tw.font_bold + , Tw.text_color Tw.white + , Theming.brandGradientBg + , Tw.px_8 + , Tw.py_4 + , Tw.rounded_2xl + , Tw.no_underline + , Css.hover [ Tw.opacity_90, Tw.scale_105 ] + , Tw.transition_all + , Tw.inline_flex + , Tw.items_center + , Tw.justify_center + , Tw.gap_3 + , Tw.drop_shadow_lg + ] + ] + [ i [ Attr.class "fab fa-discord", css [ Tw.text_3xl ] ] [] + , text "Interested? Join our Discord!" + ] + ] + + +viewFloatingSocials : Html Msg +viewFloatingSocials = + div + [ css + [ Tw.fixed + , Tw.bottom_6 + , Tw.right_6 + , Tw.flex + , Tw.gap_2 + , Tw.bg_color Tw.slate_800 + , Tw.p_2 + , Tw.rounded_xl + , Tw.border + , Tw.border_color Tw.slate_700 + , Tw.drop_shadow_lg + , Tw.z_50 + ] + ] + [ viewSocialIcon Redirects.discordURL + (i [ Attr.class "fab fa-discord", css [ Tw.text_2xl ] ] []) + (Tw.text_color Tw.indigo_400) + , viewSocialIcon Redirects.githubURL + (i [ Attr.class "fab fa-github", css [ Tw.text_2xl ] ] []) + (Tw.text_color Tw.white) + ] + + +viewSocialIcon : String -> Html Msg -> Css.Style -> Html Msg +viewSocialIcon url icon hoverStyle = + a + [ href url + , target "_blank" + , css + [ Tw.text_color Tw.gray_400 + , Css.hover [ hoverStyle ] + , Tw.transition_colors + , Tw.p_2 + , Tw.block + ] + ] + [ icon ] diff --git a/src/Redirects.elm b/src/Redirects.elm new file mode 100644 index 0000000..1c1dc45 --- /dev/null +++ b/src/Redirects.elm @@ -0,0 +1,11 @@ +module Redirects exposing (..) + + +discordURL : String +discordURL = + "https://developerden.org/discord" + + +githubURL : String +githubURL = + "https://github.com/TheDeveloperDen" diff --git a/static/devden-banner.svg b/static/devden-banner.svg new file mode 100644 index 0000000..1f68873 --- /dev/null +++ b/static/devden-banner.svg @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/devden-logo.svg b/static/devden-logo.svg new file mode 100644 index 0000000..c3e22f2 --- /dev/null +++ b/static/devden-logo.svg @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 59c12dbb322f3ae7689cc172f9e9777e375da369 Mon Sep 17 00:00:00 2001 From: Alexander Wood Date: Thu, 14 May 2026 18:38:50 +0100 Subject: [PATCH 18/26] fix: more styling improvements --- src/Layouts/Global.elm | 30 ++++++++++++++++----------- src/LearningResources/Emojis.elm | 35 +++++++++++++++++++++++--------- src/Pages/Home_.elm | 1 - src/Pages/Learning.elm | 17 +++++++++++----- static/base.css | 6 +++--- 5 files changed, 58 insertions(+), 31 deletions(-) diff --git a/src/Layouts/Global.elm b/src/Layouts/Global.elm index 550215a..fb1654e 100644 --- a/src/Layouts/Global.elm +++ b/src/Layouts/Global.elm @@ -2,9 +2,10 @@ module Layouts.Global exposing (Model, Msg, Props, layout) import Css import Effect exposing (Effect) -import Html.Styled as Html exposing (Html, a, img, div, nav, text) +import Html.Styled as Html exposing (Html, a, div, img, nav, text) import Html.Styled.Attributes as Attr exposing (css, href) import Layout exposing (Layout) +import Redirects import Route exposing (Route) import Route.Path import Shared @@ -12,7 +13,6 @@ import Tailwind.Theme as Tw import Tailwind.Utilities as Tw import Theming import View exposing (View) -import Redirects type alias Props = @@ -71,7 +71,7 @@ subscriptions model = view : Props -> { toContentMsg : Msg -> contentMsg, content : View contentMsg, model : Model } -> View contentMsg -view layoutProps {content} = +view layoutProps { content } = { title = content.title ++ " | Developer Den" , body = [ Html.div @@ -109,20 +109,18 @@ viewNavbar activePage = , Tw.py_6 ] ] - [ - a + [ a [ Route.Path.href Route.Path.Home_ |> Attr.fromUnstyled , css [ Theming.headingFont, Tw.text_xl, Tw.font_bold, Tw.no_underline, Theming.textGradient ] ] - [ img + [ img [ Attr.src "/static/devden-logo.svg" , Attr.alt "Developer Den Logo" , css [ Tw.h_16, Tw.w_auto ] ] [] ] - , - div [ css [ Tw.flex, Tw.gap_8 ] ] + , div [ css [ Tw.flex, Tw.gap_8 ] ] [ viewNavLink "home" Route.Path.Home_ (activePage == Route.Path.Home_) , viewNavLink "rules" Route.Path.Rules (activePage == Route.Path.Rules) , viewNavLink "learning" Route.Path.Learning (activePage == Route.Path.Learning) @@ -149,7 +147,6 @@ viewNavLink label path isActive = [ Route.Path.href path |> Attr.fromUnstyled , css [ Theming.headingFont - , Tw.text_sm , Tw.pb_1 , Tw.no_underline , if isActive then @@ -163,9 +160,18 @@ viewNavLink label path isActive = ] ] [ text label - , - if isActive then - div [ css [ Tw.absolute, Tw.bottom_0, Tw.left_0, Tw.right_0, Tw.h_1_dot_5, Theming.brandGradientBg ] ] [] + , if isActive then + div + [ css + [ Tw.absolute + , Tw.bottom_0 + , Tw.left_0 + , Tw.right_0 + , Tw.h_1 + , Theming.brandGradientBg + ] + ] + [] else text "" diff --git a/src/LearningResources/Emojis.elm b/src/LearningResources/Emojis.elm index 99ab516..022b057 100644 --- a/src/LearningResources/Emojis.elm +++ b/src/LearningResources/Emojis.elm @@ -3,31 +3,46 @@ module LearningResources.Emojis exposing (..) -import LearningResources.Types as LearningResources +import LearningResources.Types as LearningResources exposing (EntityTag(..)) -emojiForTag : LearningResources.EntityTag -> String +emojiForTag : EntityTag -> String emojiForTag tag = case tag of - LearningResources.EntityTag__Clojure -> + EntityTag__Clojure -> "🍵" - LearningResources.EntityTag__Python -> + EntityTag__Python -> "🐍" - LearningResources.EntityTag__Rust -> + EntityTag__Rust -> "🦀" - LearningResources.EntityTag__Haskell -> + EntityTag__Haskell -> "📐" - LearningResources.EntityTag__Java -> + EntityTag__Java -> "☕" - - LearningResources.EntityTag__Kotlin -> + + EntityTag__Kotlin -> "🤖" - _ -> + EntityTag__Cpp -> + "💻" + + EntityTag__Sql -> + "🗄️" + + EntityTag__Php -> + "🐘" + + EntityTag__ProgrammingLanguageDesign -> + "🛠️" + + EntityTag__Git -> + "🔧" + + EntityTag__General -> "📚" diff --git a/src/Pages/Home_.elm b/src/Pages/Home_.elm index 5ba96c3..b66e25a 100644 --- a/src/Pages/Home_.elm +++ b/src/Pages/Home_.elm @@ -46,7 +46,6 @@ view = , Tw.items_center , Tw.justify_center , Tw.w_full - , Tw.h_full , Tw.flex_grow , Tw.px_6 , Tw.py_8 diff --git a/src/Pages/Learning.elm b/src/Pages/Learning.elm index e30cd22..0e589c1 100644 --- a/src/Pages/Learning.elm +++ b/src/Pages/Learning.elm @@ -29,7 +29,7 @@ page shared _ = , subscriptions = subscriptions , view = view shared } - |> Page.withLayout (\_ -> Layouts.Global { activePage = Route.Path.Learning}) + |> Page.withLayout (\_ -> Layouts.Global { activePage = Route.Path.Learning }) @@ -185,13 +185,20 @@ viewTopicCard meta = , css [ Tw.block , Tw.no_underline - , Css.hover [ Tw.border_color Tw.dd_pink, Tw.translate_y_1 ] - , Tw.transition_all - , Tw.duration_300 , Tw.cursor_pointer ] ] - [ Theming.cardShell [ Tw.relative ] + [ Theming.cardShell + [ Tw.relative + , Tw.transform + , Tw.transition_all + , Tw.duration_300 + , Css.hover + [ Tw.border + , Tw.border_color Tw.dd_pink + , Tw.neg_translate_y_1 + ] + ] [ div [ css [ Tw.absolute diff --git a/static/base.css b/static/base.css index 8066075..1833707 100644 --- a/static/base.css +++ b/static/base.css @@ -31,7 +31,7 @@ --color-den-indigo: #005FF1; } -body { - background-color: var(--color-den-bg); - color: var(--color-den-text); +html, body { + background-color: var(--color-den-deepblue); + color: #ffffff; } \ No newline at end of file From b44ca060eb003badf979cad437e079fdeb10cf89 Mon Sep 17 00:00:00 2001 From: Alexander Wood Date: Thu, 14 May 2026 18:44:35 +0100 Subject: [PATCH 19/26] build: add useful bun scripts --- flake.nix | 8 -------- package.json | 5 +++++ 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/flake.nix b/flake.nix index 04050d4..50c91f2 100644 --- a/flake.nix +++ b/flake.nix @@ -43,14 +43,6 @@ elmPackages.elm-language-server elmPackages.elm-test ]; - - shellHook = '' - alias tw="bunx elm-tailwind-modules --dir ./gen --tailwind-config tailwind.config.ts" - alias spa-server="bunx elm-land server" - - echo "Dev shell active." - echo "Commands: tw, spa-server" - ''; }; packages.default = pkgs.hello; diff --git a/package.json b/package.json index 3198338..a5615b5 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,11 @@ "quicktype": "^23.2.6", "quicktype-core": "^23.2.6" }, + "scripts": { + "tw": " elm-tailwind-modules --dir ./gen --tailwind-config tailwind.config.ts", + "server": "elm-land server", + "format": "elm-format src --yes" + }, "peerDependencies": { "typescript": "^5" }, From 83c04c410cee331153059d22071193feb9d12d0a Mon Sep 17 00:00:00 2001 From: Alexander Wood Date: Thu, 14 May 2026 18:46:10 +0100 Subject: [PATCH 20/26] fix: fix a tiny bit of y movement on home page --- src/Layouts/Global.elm | 7 ++++--- src/Pages/Home_.elm | 7 ++++--- static/base.css | 1 + 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/Layouts/Global.elm b/src/Layouts/Global.elm index fb1654e..a39106f 100644 --- a/src/Layouts/Global.elm +++ b/src/Layouts/Global.elm @@ -80,15 +80,16 @@ view layoutProps { content } = [ Tw.min_h_screen , Tw.w_full , Tw.overflow_x_hidden - , Tw.overflow_y_hidden , Tw.bg_color Tw.dd_deepblue , Tw.text_color Tw.white , Tw.font_sans , Tw.antialiased + , Tw.flex + , Tw.flex_col ] ] [ viewNavbar layoutProps.activePage - , Html.div [ css [ Tw.flex_grow ] ] + , Html.div [ css [ Tw.flex_grow, Tw.flex, Tw.flex_col ] ] content.body ] ] @@ -116,7 +117,7 @@ viewNavbar activePage = [ img [ Attr.src "/static/devden-logo.svg" , Attr.alt "Developer Den Logo" - , css [ Tw.h_16, Tw.w_auto ] + , css [ Tw.h_16, Tw.w_auto, Tw.block ] ] [] ] diff --git a/src/Pages/Home_.elm b/src/Pages/Home_.elm index b66e25a..c4c14cb 100644 --- a/src/Pages/Home_.elm +++ b/src/Pages/Home_.elm @@ -48,7 +48,6 @@ view = , Tw.w_full , Tw.flex_grow , Tw.px_6 - , Tw.py_8 ] ] [ viewBanner @@ -60,7 +59,7 @@ view = viewBanner : Html Msg viewBanner = - div [ css [ Tw.text_center, Tw.mb_24 ] ] + div [ css [ Tw.text_center ] ] [ img [ Attr.src "/static/devden-banner.svg" , Attr.alt "Developer Den Banner" @@ -71,7 +70,9 @@ viewBanner = , Theming.textGradient , Tw.inline_block , Tw.tracking_widest - , Tw.pb_3 + , Tw.pb_2 + , Tw.block + , Tw.mx_auto ] ] [] diff --git a/static/base.css b/static/base.css index 1833707..9f8cdbf 100644 --- a/static/base.css +++ b/static/base.css @@ -34,4 +34,5 @@ html, body { background-color: var(--color-den-deepblue); color: #ffffff; + margin: 0; } \ No newline at end of file From f986269ae5e46e1422c78c068e20f0e27fd0d447 Mon Sep 17 00:00:00 2001 From: Alexander Wood Date: Thu, 14 May 2026 18:46:20 +0100 Subject: [PATCH 21/26] style: run elm-format --- src/Api.elm | 2 +- src/Effect.elm | 3 +- src/LearningResources.elm | 4 ++- src/Pages/Learning/Resource_.elm | 56 +++++++++++++++++--------------- src/Pages/Rules.elm | 10 +++--- src/Shared.elm | 2 +- src/Shared/Model.elm | 1 - src/Theming.elm | 2 +- 8 files changed, 42 insertions(+), 38 deletions(-) diff --git a/src/Api.elm b/src/Api.elm index 4b9d4de..e3bd7ac 100644 --- a/src/Api.elm +++ b/src/Api.elm @@ -3,8 +3,8 @@ module Api exposing (..) import Effect exposing (Effect) import Http import Json.Decode as Json -import LearningResources.Types as LearningResources import LearningResources.Json as LearningResources +import LearningResources.Types as LearningResources import Yaml.Decode diff --git a/src/Effect.elm b/src/Effect.elm index 63f0cad..4a55865 100644 --- a/src/Effect.elm +++ b/src/Effect.elm @@ -213,6 +213,7 @@ toCmd options effect = Task.succeed sharedMsg |> Task.perform options.fromSharedMsg + sendSharedMsg : Shared.Msg.Msg -> Effect msg sendSharedMsg sharedMsg = - SendSharedMsg sharedMsg \ No newline at end of file + SendSharedMsg sharedMsg diff --git a/src/LearningResources.elm b/src/LearningResources.elm index 3dcfe45..0a771a5 100644 --- a/src/LearningResources.elm +++ b/src/LearningResources.elm @@ -2,10 +2,12 @@ module LearningResources exposing (..) import LearningResources.Types exposing (..) + getResourcesByTag : EntityTag -> Database -> List Resource getResourcesByTag tag database = List.filter (\resource -> List.member tag resource.teaches) database.resources + getMetadata : EntityTag -> Database -> Maybe CompiledMeta getMetadata tag database = - List.head <| List.filter (\meta -> meta.id == tag) database.metadata \ No newline at end of file + List.head <| List.filter (\meta -> meta.id == tag) database.metadata diff --git a/src/Pages/Learning/Resource_.elm b/src/Pages/Learning/Resource_.elm index 8857133..5281ae6 100644 --- a/src/Pages/Learning/Resource_.elm +++ b/src/Pages/Learning/Resource_.elm @@ -1,9 +1,11 @@ module Pages.Learning.Resource_ exposing (Model, Msg, page) +import Css import Effect exposing (Effect) import Html.Styled as Html exposing (Html, div, span, text) import Html.Styled.Attributes as Attr exposing (css, href, target) import Layouts +import LearningResources.Emojis as Emojis import LearningResources.Types as LearningResources import Page exposing (Page) import Route exposing (Route) @@ -14,9 +16,7 @@ import Tailwind.Breakpoints as Breakpoints import Tailwind.Theme as Tw import Tailwind.Utilities as Tw import Theming -import Css import View exposing (View) -import LearningResources.Emojis as Emojis page : Shared.Model -> Route { resource : String } -> Page Model Msg @@ -27,9 +27,12 @@ page shared route = , subscriptions = \_ -> Sub.none , view = view shared route.params } - |> Page.withLayout (\_ -> Layouts.Global { - activePage = Route.Path.Learning - }) + |> Page.withLayout + (\_ -> + Layouts.Global + { activePage = Route.Path.Learning + } + ) type alias Model = @@ -59,7 +62,7 @@ view shared route _ = LearningResources.entityTagFromString route.resource activeMeta = - activeTag + activeTag |> Maybe.andThen (\tag -> List.filter (\m -> m.id == tag) db.metadata |> List.head) in { title = Maybe.map .name activeMeta |> Maybe.withDefault "Topic" @@ -71,14 +74,11 @@ view shared route _ = viewExplorerLayout : LearningResources.Database -> Maybe LearningResources.EntityTag -> String -> Html Msg viewExplorerLayout db activeTag activeSlug = div [ css [ Tw.flex, Tw.max_w_7xl, Tw.mx_auto, Tw.pt_12, Tw.pb_24, Tw.gap_12 ] ] - [ - div [ css [ Tw.w_64, Tw.flex_shrink_0, Tw.hidden, Breakpoints.lg [ Tw.block ] ] ] - [ Html.h3 [ css [ Theming.headingFont, Tw.text_xl, Tw.mb_6, Tw.border_b, Tw.border_color Tw.slate_700, Tw.pb_2 ] ] + [ div [ css [ Tw.w_64, Tw.flex_shrink_0, Tw.hidden, Breakpoints.lg [ Tw.block ] ] ] + [ Html.h3 [ css [ Theming.headingFont, Tw.text_xl, Tw.mb_6, Tw.border_b, Tw.border_color Tw.slate_700, Tw.pb_2 ] ] [ text "Topics" ] , viewSidebarTopicList db.metadata activeSlug ] - - , div [ css [ Tw.flex_1 ] ] [ case activeTag of Nothing -> @@ -124,8 +124,16 @@ viewSidebarLink activeSlug meta = , Tw.px_3 , Tw.rounded_lg , Tw.transition_colors - , if isActive then Tw.bg_color Tw.slate_800 else Tw.bg_color Tw.transparent - , if isActive then Tw.text_color Tw.white else Tw.text_color Tw.gray_400 + , if isActive then + Tw.bg_color Tw.slate_800 + + else + Tw.bg_color Tw.transparent + , if isActive then + Tw.text_color Tw.white + + else + Tw.text_color Tw.gray_400 , Css.hover [ Tw.text_color Tw.white, Tw.bg_color Tw.slate_800 ] ] ] @@ -144,7 +152,7 @@ viewTopicHeader maybeMeta = [ div [ css [ Tw.text_5xl ] ] [ text (Emojis.emojiOrBackup meta) ] , Html.h1 [ css [ Theming.headingFont, Tw.text_4xl, Tw.font_bold ] ] [ text meta.name ] ] - , Html.p [ css [ Theming.bodyFont, Tw.text_xl, Tw.text_color Tw.gray_300, Tw.mb_4 ] ] + , Html.p [ css [ Theming.bodyFont, Tw.text_xl, Tw.text_color Tw.gray_300, Tw.mb_4 ] ] [ text meta.description ] ] @@ -153,6 +161,7 @@ viewResourceGrid : List LearningResources.Resource -> Html Msg viewResourceGrid resources = if List.isEmpty resources then div [ css [ Theming.bodyFont, Tw.text_color Tw.gray_400, Tw.italic ] ] [ text "No resources found for this topic yet." ] + else div [ css [ Tw.grid, Tw.grid_cols_1, Breakpoints.md [ Tw.grid_cols_2 ], Tw.gap_6 ] ] (List.map viewResourceCard resources) @@ -161,30 +170,23 @@ viewResourceGrid resources = viewResourceCard : LearningResources.Resource -> Html Msg viewResourceCard resource = Theming.cardShell [ Tw.p_6, Tw.flex, Tw.flex_col ] - [ - div [ css [ Tw.flex, Tw.justify_between, Tw.items_start, Tw.mb_4 ] ] + [ div [ css [ Tw.flex, Tw.justify_between, Tw.items_start, Tw.mb_4 ] ] [ Html.h3 [ css [ Theming.headingFont, Tw.text_lg ] ] [ text resource.name ] , viewPricingBadge resource.pricing ] - - , div [ css [ Tw.flex, Tw.gap_2, Tw.mb_4 ] ] (List.map viewTypeBadge resource.type_) - - , Html.p [ css [ Theming.bodyFont, Tw.text_sm, Tw.mb_6, Tw.flex_grow ] ] [ text (Maybe.withDefault "No description provided." resource.description) ] - - - , Html.a + , Html.a [ Attr.href resource.url , Attr.target "_blank" - , css + , css [ Theming.headingFont , Tw.text_color Tw.dd_pink , Css.hover [ Tw.text_color Tw.white ] - , Tw.transition_colors - ] + , Tw.transition_colors + ] ] [ text "Read more ->" ] ] @@ -235,4 +237,4 @@ viewPricingBadge pricing = , Tw.rounded_md ] ] - [ text (paid.model ++ ": $" ++ String.fromFloat paid.amount) ] \ No newline at end of file + [ text (paid.model ++ ": $" ++ String.fromFloat paid.amount) ] diff --git a/src/Pages/Rules.elm b/src/Pages/Rules.elm index f1dd99f..05709d1 100644 --- a/src/Pages/Rules.elm +++ b/src/Pages/Rules.elm @@ -188,7 +188,7 @@ viewRuleSection section = [ h3 [ css [ Theming.headingFont, Tw.text_2xl, Tw.text_color Tw.dd_teal, Tw.mb_3 ] ] [ text (String.fromInt section.id ++ ". " ++ section.title) ] - , div [ css [ Tw.flex, Tw.flex_col, Tw.gap_2] ] + , div [ css [ Tw.flex, Tw.flex_col, Tw.gap_2 ] ] (List.indexedMap viewRuleLine section.rules) ] @@ -200,14 +200,14 @@ viewRuleLine index content = letter = String.fromChar (Char.fromCode (97 + index)) ++ ". " in - p - [ css + p + [ css [ Theming.bodyFont , Tw.text_base , Tw.text_color Tw.gray_300 , Tw.leading_snug - , Tw.m_0 - ] + , Tw.m_0 + ] ] (Html.text letter :: content) diff --git a/src/Shared.elm b/src/Shared.elm index 60bc674..bbbc31a 100644 --- a/src/Shared.elm +++ b/src/Shared.elm @@ -13,12 +13,12 @@ module Shared exposing -} import Api +import Dict import Effect exposing (Effect) import Json.Decode import Route exposing (Route) import Shared.Model import Shared.Msg -import Dict diff --git a/src/Shared/Model.elm b/src/Shared/Model.elm index f400e80..1b5b4ed 100644 --- a/src/Shared/Model.elm +++ b/src/Shared/Model.elm @@ -23,7 +23,6 @@ type LearningDatabaseStatus | Failure Http.Error - type alias Model = { learningDatabase : LearningDatabaseStatus } diff --git a/src/Theming.elm b/src/Theming.elm index ad3b276..7084411 100644 --- a/src/Theming.elm +++ b/src/Theming.elm @@ -10,7 +10,7 @@ import Tailwind.Utilities as Tw brandGradientBg : Css.Style brandGradientBg = -- elm tailwind doesnt seem to play well with this - Css.property "background-image" + Css.property "background-image" "linear-gradient(to right, var(--color-den-teal), var(--color-den-indigo), var(--color-den-pink))" From d26e8cd012f51f9a01d2b1ac97c3f57c9b1a362c Mon Sep 17 00:00:00 2001 From: Alexander Wood Date: Thu, 14 May 2026 18:48:20 +0100 Subject: [PATCH 22/26] test: remove old test --- tests/LearningResourcesTest.elm | 122 -------------------------------- 1 file changed, 122 deletions(-) delete mode 100644 tests/LearningResourcesTest.elm diff --git a/tests/LearningResourcesTest.elm b/tests/LearningResourcesTest.elm deleted file mode 100644 index b89dc8e..0000000 --- a/tests/LearningResourcesTest.elm +++ /dev/null @@ -1,122 +0,0 @@ -module LearningResourcesTest exposing (all) - -import Expect -import LearningResources exposing (..) -import Test exposing (Test, describe, test) -import Yaml.Decode - - -yamlString : String -yamlString = - """name: Java -description: Java is an Object Oriented language designed by James Gosling in 1995 -emoji: '821822045187866625' -resources: -- name: Tutorial Spot - url: https://www.tutorialspoint.com/java/index.htm - pros: [ ] - cons: - - Slightly dated -- name: Alex Lee - url: https://www.youtube.com/channel/UC_fFL5jgoCOrwAVoM_fBYwA - pros: - - Video series - - Covers a wide range of concepts - cons: [ ] -- name: Bro Code - url: https://www.youtube.com/c/BroCodez - pros: - - Video series - - Has videos on many different languages and concepts - cons: [ ] -- name: Javatpoint - url: https://www.javatpoint.com/java-tutorial - pros: [ ] - cons: [ ] -- name: Mooc.fi - description: Comprehensive Java (and general programming) course provided by the University of Helsinki - url: https://java-programming.mooc.fi/ - pros: - - Very well respected - cons: [ ] -- name: TheNewBoston - url: https://www.youtube.com/@thenewboston - pros: - - Beginner and intermediate video series - - Short, but a lot of videos (146 videos combined in both playlists) - cons: - - Videos may be outdated (2009 - 2012)""" - - -all : Test -all = - describe "LearningResources" - [ test "decodes java.yaml successfully" <| - \_ -> - case Yaml.Decode.fromString coordinate yamlString of - Ok result -> - Expect.all - [ \r -> Expect.equal "Java" r.name - , \r -> Expect.equal (Just "821822045187866625") r.emoji - , \r -> Expect.equal 6 (List.length r.resources) - ] - result - - Err err -> - Expect.fail ("Decode failed: " ++ Yaml.Decode.errorToString err) - , test "decodes resource with optional description" <| - \_ -> - case Yaml.Decode.fromString coordinate yamlString of - Ok result -> - let - mooc = - List.filter (\r -> r.name == "Mooc.fi") result.resources - |> List.head - in - case mooc of - Just resource -> - Expect.equal - (Just "Comprehensive Java (and general programming) course provided by the University of Helsinki") - resource.description - - Nothing -> - Expect.fail "Could not find Mooc.fi resource" - - Err err -> - Expect.fail ("Decode failed: " ++ Yaml.Decode.errorToString err) - , test "decodes resource without description as Nothing" <| - \_ -> - case Yaml.Decode.fromString coordinate yamlString of - Ok result -> - let - tutorial = - List.filter (\r -> r.name == "Tutorial Spot") result.resources - |> List.head - in - case tutorial of - Just resource -> - Expect.equal Nothing resource.description - - Nothing -> - Expect.fail "Could not find Tutorial Spot resource" - - Err err -> - Expect.fail ("Decode failed: " ++ Yaml.Decode.errorToString err) - , test "round-trips through encode and decode" <| - \_ -> - case Yaml.Decode.fromString coordinate yamlString of - Ok original -> - let - encoded = - coordinateToString original - in - case Yaml.Decode.fromString coordinate encoded of - Ok roundTripped -> - Expect.equal original.name roundTripped.name - - Err err -> - Expect.fail ("Round-trip decode failed: " ++ Yaml.Decode.errorToString err) - - Err err -> - Expect.fail ("Initial decode failed: " ++ Yaml.Decode.errorToString err) - ] From e353a37cdf3d46003c0b428eadb8a0f755d476aa Mon Sep 17 00:00:00 2001 From: Alexander Wood Date: Thu, 14 May 2026 19:10:01 +0100 Subject: [PATCH 23/26] ci: make it build tw --- .github/workflows/ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1b06e32..40da4ce 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,6 +28,9 @@ jobs: - run: bun install --frozen-lockfile + - name: Build Tailwind modules + run: bun run tw + - name: Build run: bunx elm-land build From b1df9935340aee30b94e3053b54732506af38900 Mon Sep 17 00:00:00 2001 From: Alexander Wood Date: Thu, 14 May 2026 19:21:46 +0100 Subject: [PATCH 24/26] fix: fix some broken styles the lsp didnt catch for some reason --- src/Theming.elm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Theming.elm b/src/Theming.elm index 7084411..55d140a 100644 --- a/src/Theming.elm +++ b/src/Theming.elm @@ -27,7 +27,7 @@ textGradient = headingFont : Css.Style headingFont = - Css.batch [ Tw.font_mono, Tw.text_white ] + Css.batch [ Tw.font_mono, Tw.text.color Tw.white ] bodyFont : Css.Style From 25796d088fe9400e6e79fd4c7304bfb55e61bc86 Mon Sep 17 00:00:00 2001 From: Alexander Wood Date: Thu, 14 May 2026 19:26:56 +0100 Subject: [PATCH 25/26] fix: broken styling again --- src/Theming.elm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Theming.elm b/src/Theming.elm index 55d140a..c4c9a1e 100644 --- a/src/Theming.elm +++ b/src/Theming.elm @@ -27,12 +27,12 @@ textGradient = headingFont : Css.Style headingFont = - Css.batch [ Tw.font_mono, Tw.text.color Tw.white ] + Css.batch [ Tw.font_mono, Tw.text_color Tw.white ] bodyFont : Css.Style bodyFont = - Css.batch [ Tw.font_sans, Tw.text_gray_300 ] + Css.batch [ Tw.font_sans, Tw.text_color Tw.gray_300 ] cardShell : List Css.Style -> List (Html msg) -> Html msg From de46ce6613a61dadff14eee17ea7b4279d079fdd Mon Sep 17 00:00:00 2001 From: Alex Wood Date: Thu, 14 May 2026 19:27:13 +0100 Subject: [PATCH 26/26] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- README.MD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.MD b/README.MD index e677e67..91eeb1f 100644 --- a/README.MD +++ b/README.MD @@ -7,8 +7,8 @@ It's easiest to use Nix/Devenv to get everything you need. ## running locally ```bash -bunx elm-land server # starts this app at http:/localhost:1234 -tw # rebuild tailwind definitions +bunx elm-land server # starts this app at http://localhost:1234 +bun run tw # rebuild tailwind definitions ``` The site should then be running at http://localhost:1234

    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