From 9bea0a11debd34813226593c69e65167ccb097de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reinhard=20X=2E=20F=C3=BCrst?= Date: Mon, 11 May 2026 13:26:51 +0200 Subject: [PATCH] =?UTF-8?q?v1.6.1:=20Sicherheit=20=E2=80=93=20Rate=20Limit?= =?UTF-8?q?ing,=20Default-PW=20via=20Env,=20AUTH=5FSECRET=20Pflicht,=20Bcr?= =?UTF-8?q?ypt=2012?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/actions.ts | 8 +- app/admin/page.tsx | 6 +- app/api/logbuch/[id]/route.ts | 29 ++- app/api/logbuch/route.ts | 2 + app/api/statistik/route.ts | 4 + app/change-password/actions.ts | 2 +- app/login/actions.ts | 14 ++ backup.git/HEAD | 1 + backup.git/config | 10 + backup.git/description | 1 + backup.git/hooks/applypatch-msg.sample | 15 ++ backup.git/hooks/commit-msg.sample | 24 +++ backup.git/hooks/fsmonitor-watchman.sample | 174 ++++++++++++++++++ backup.git/hooks/post-update.sample | 8 + backup.git/hooks/pre-applypatch.sample | 14 ++ backup.git/hooks/pre-commit.sample | 49 +++++ backup.git/hooks/pre-merge-commit.sample | 13 ++ backup.git/hooks/pre-push.sample | 53 ++++++ backup.git/hooks/pre-rebase.sample | 169 +++++++++++++++++ backup.git/hooks/pre-receive.sample | 24 +++ backup.git/hooks/prepare-commit-msg.sample | 42 +++++ backup.git/hooks/push-to-checkout.sample | 78 ++++++++ backup.git/hooks/sendemail-validate.sample | 77 ++++++++ backup.git/hooks/update.sample | 128 +++++++++++++ backup.git/info/exclude | 6 + ...649466fb0f06e243f4fb7f1195bfa1df1dfe11.idx | Bin 0 -> 10060 bytes ...49466fb0f06e243f4fb7f1195bfa1df1dfe11.pack | Bin 0 -> 147708 bytes ...649466fb0f06e243f4fb7f1195bfa1df1dfe11.rev | Bin 0 -> 1336 bytes backup.git/packed-refs | 2 + lib/auth.ts | 6 +- lib/ratelimit.ts | 38 ++++ lib/session.ts | 5 +- package.json | 2 +- 33 files changed, 991 insertions(+), 13 deletions(-) create mode 100644 backup.git/HEAD create mode 100644 backup.git/config create mode 100644 backup.git/description create mode 100755 backup.git/hooks/applypatch-msg.sample create mode 100755 backup.git/hooks/commit-msg.sample create mode 100755 backup.git/hooks/fsmonitor-watchman.sample create mode 100755 backup.git/hooks/post-update.sample create mode 100755 backup.git/hooks/pre-applypatch.sample create mode 100755 backup.git/hooks/pre-commit.sample create mode 100755 backup.git/hooks/pre-merge-commit.sample create mode 100755 backup.git/hooks/pre-push.sample create mode 100755 backup.git/hooks/pre-rebase.sample create mode 100755 backup.git/hooks/pre-receive.sample create mode 100755 backup.git/hooks/prepare-commit-msg.sample create mode 100755 backup.git/hooks/push-to-checkout.sample create mode 100755 backup.git/hooks/sendemail-validate.sample create mode 100755 backup.git/hooks/update.sample create mode 100644 backup.git/info/exclude create mode 100644 backup.git/objects/pack/pack-e1649466fb0f06e243f4fb7f1195bfa1df1dfe11.idx create mode 100644 backup.git/objects/pack/pack-e1649466fb0f06e243f4fb7f1195bfa1df1dfe11.pack create mode 100644 backup.git/objects/pack/pack-e1649466fb0f06e243f4fb7f1195bfa1df1dfe11.rev create mode 100644 backup.git/packed-refs create mode 100644 lib/ratelimit.ts diff --git a/app/admin/actions.ts b/app/admin/actions.ts index c8d488d..66a7fec 100644 --- a/app/admin/actions.ts +++ b/app/admin/actions.ts @@ -9,8 +9,8 @@ export interface BeoUser { kürzel: string | null; name: string; vorname: string | null; - pw: string | null; role: string | null; + hasPw: boolean; } export async function listUsers(): Promise { @@ -18,10 +18,10 @@ export async function listUsers(): Promise { if (!session || !session.role?.includes('admin')) redirect('/'); const rows = await query( - 'SELECT id, `kürzel`, name, vorname, pw, role FROM beos ORDER BY name, vorname', + 'SELECT id, `kürzel`, name, vorname, role, (pw IS NOT NULL) AS hasPw FROM beos ORDER BY name, vorname', [] - ) as BeoUser[]; - return rows; + ) as (Omit & { hasPw: number })[]; + return rows.map(r => ({ ...r, hasPw: r.hasPw === 1 })); } export async function resetPassword( diff --git a/app/admin/page.tsx b/app/admin/page.tsx index 2d3a8aa..23dfaf9 100644 --- a/app/admin/page.tsx +++ b/app/admin/page.tsx @@ -41,10 +41,10 @@ export default async function AdminPage() { {user.vorname ?? '—'} {user.role ?? '—'} - {user.pw == null ? ( - Standard - ) : ( + {user.hasPw ? ( gesetzt + ) : ( + Standard )} diff --git a/app/api/logbuch/[id]/route.ts b/app/api/logbuch/[id]/route.ts index 4b20e9c..1f4fc18 100644 --- a/app/api/logbuch/[id]/route.ts +++ b/app/api/logbuch/[id]/route.ts @@ -11,6 +11,19 @@ export async function PUT(request: NextRequest, { params }: { params: Promise<{ const logbuchId = parseInt(id); try { + // Zugriffskontrolle: Nur Ersteller oder Admin dürfen ändern + const existingRows = await query('SELECT created_by FROM logbuch WHERE ID = ?', [logbuchId]) as { created_by: number }[]; + if (existingRows.length === 0) { + return NextResponse.json({ error: 'Eintrag nicht gefunden' }, { status: 404 }); + } + + const isAdmin = session.role?.includes('admin'); + const isCreator = existingRows[0].created_by === session.beoId; + + if (!isAdmin && !isCreator) { + return NextResponse.json({ error: 'Keine Berechtigung zum Ändern dieses Eintrags' }, { status: 403 }); + } + const body = await request.json(); const { Kuppel, ArtFuehrung, SonderName, Beginn, Ende, Besucher, beoIds, objekte, Bemerkungen, Wetter } = body; @@ -67,9 +80,23 @@ export async function DELETE(_request: NextRequest, { params }: { params: Promis if (!session) return NextResponse.json({ error: 'Nicht angemeldet' }, { status: 401 }); const { id } = await params; + const logbuchId = parseInt(id); try { - await query('DELETE FROM logbuch WHERE ID = ?', [parseInt(id)]); + // Zugriffskontrolle: Nur Ersteller oder Admin dürfen löschen + const existingRows = await query('SELECT created_by FROM logbuch WHERE ID = ?', [logbuchId]) as { created_by: number }[]; + if (existingRows.length === 0) { + return NextResponse.json({ error: 'Eintrag nicht gefunden' }, { status: 404 }); + } + + const isAdmin = session.role?.includes('admin'); + const isCreator = existingRows[0].created_by === session.beoId; + + if (!isAdmin && !isCreator) { + return NextResponse.json({ error: 'Keine Berechtigung zum Löschen dieses Eintrags' }, { status: 403 }); + } + + await query('DELETE FROM logbuch WHERE ID = ?', [logbuchId]); return NextResponse.json({ ok: true }); } catch (error) { console.error('DELETE /api/logbuch/[id]:', error); diff --git a/app/api/logbuch/route.ts b/app/api/logbuch/route.ts index 2ee8de8..4ff3e23 100644 --- a/app/api/logbuch/route.ts +++ b/app/api/logbuch/route.ts @@ -23,6 +23,8 @@ const LIST_SQL = ' ORDER BY l.Beginn DESC'; export async function GET(request: NextRequest) { + const session = await getSession(); + if (!session) return NextResponse.json({ error: 'Nicht angemeldet' }, { status: 401 }); const { searchParams } = new URL(request.url); const kuppel = searchParams.get('kuppel') || 'West'; const limit = Math.min(parseInt(searchParams.get('limit') || '10'), 100); diff --git a/app/api/statistik/route.ts b/app/api/statistik/route.ts index 3993cec..d41e79c 100644 --- a/app/api/statistik/route.ts +++ b/app/api/statistik/route.ts @@ -1,7 +1,11 @@ import { NextRequest, NextResponse } from 'next/server'; import { query } from '@/lib/db'; +import { getSession } from '@/lib/session'; export async function GET(request: NextRequest) { + const session = await getSession(); + if (!session) return NextResponse.json({ error: 'Nicht angemeldet' }, { status: 401 }); + const { searchParams } = new URL(request.url); const kuppel = searchParams.get('kuppel') || 'West'; const year = parseInt(searchParams.get('year') || String(new Date().getFullYear()), 10); diff --git a/app/change-password/actions.ts b/app/change-password/actions.ts index 84fda42..7723da0 100644 --- a/app/change-password/actions.ts +++ b/app/change-password/actions.ts @@ -19,7 +19,7 @@ export async function changePassword( return { error: 'Das Passwort muss mindestens 6 Zeichen lang sein.' }; } - if (newPassword === 'welzheim') { + if (newPassword === (process.env.DEFAULT_PASSWORD ?? 'welzheim')) { return { error: 'Das Standard-Passwort darf nicht als neues Passwort verwendet werden.' }; } diff --git a/app/login/actions.ts b/app/login/actions.ts index 8e4f10e..6ba3e5e 100644 --- a/app/login/actions.ts +++ b/app/login/actions.ts @@ -1,13 +1,27 @@ 'use server'; +import { headers } from 'next/headers'; import { redirect } from 'next/navigation'; import { verifyCredentials, getBeoDisplayName } from '@/lib/auth'; import { createSession } from '@/lib/session'; +import { checkRateLimit } from '@/lib/ratelimit'; export async function login( _prevState: { error: string } | undefined, formData: FormData ): Promise<{ error: string }> { + const headersList = await headers(); + const ip = + headersList.get('x-forwarded-for')?.split(',')[0].trim() ?? + headersList.get('x-real-ip') ?? + 'unknown'; + + const { allowed, remainingMs } = checkRateLimit(ip); + if (!allowed) { + const minutes = Math.ceil(remainingMs / 60000); + return { error: `Zu viele Anmeldeversuche. Bitte ${minutes} Minute${minutes !== 1 ? 'n' : ''} warten.` }; + } + const login = (formData.get('username') as string)?.trim(); const password = formData.get('password') as string; diff --git a/backup.git/HEAD b/backup.git/HEAD new file mode 100644 index 0000000..b870d82 --- /dev/null +++ b/backup.git/HEAD @@ -0,0 +1 @@ +ref: refs/heads/main diff --git a/backup.git/config b/backup.git/config new file mode 100644 index 0000000..d6c1a82 --- /dev/null +++ b/backup.git/config @@ -0,0 +1,10 @@ +[core] + repositoryformatversion = 0 + filemode = true + bare = true + ignorecase = true + precomposeunicode = true +[remote "origin"] + url = https://gitea.fuerst-stuttgart.de/admin/logbuch.git + fetch = +refs/*:refs/* + mirror = true diff --git a/backup.git/description b/backup.git/description new file mode 100644 index 0000000..498b267 --- /dev/null +++ b/backup.git/description @@ -0,0 +1 @@ +Unnamed repository; edit this file 'description' to name the repository. diff --git a/backup.git/hooks/applypatch-msg.sample b/backup.git/hooks/applypatch-msg.sample new file mode 100755 index 0000000..a5d7b84 --- /dev/null +++ b/backup.git/hooks/applypatch-msg.sample @@ -0,0 +1,15 @@ +#!/bin/sh +# +# An example hook script to check the commit log message taken by +# applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. The hook is +# allowed to edit the commit message file. +# +# To enable this hook, rename this file to "applypatch-msg". + +. git-sh-setup +commitmsg="$(git rev-parse --git-path hooks/commit-msg)" +test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"} +: diff --git a/backup.git/hooks/commit-msg.sample b/backup.git/hooks/commit-msg.sample new file mode 100755 index 0000000..b58d118 --- /dev/null +++ b/backup.git/hooks/commit-msg.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to check the commit log message. +# Called by "git commit" with one argument, the name of the file +# that has the commit message. The hook should exit with non-zero +# status after issuing an appropriate message if it wants to stop the +# commit. The hook is allowed to edit the commit message file. +# +# To enable this hook, rename this file to "commit-msg". + +# Uncomment the below to add a Signed-off-by line to the message. +# Doing this in a hook is a bad idea in general, but the prepare-commit-msg +# hook is more suited to it. +# +# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" + +# This example catches duplicate Signed-off-by lines. + +test "" = "$(grep '^Signed-off-by: ' "$1" | + sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || { + echo >&2 Duplicate Signed-off-by lines. + exit 1 +} diff --git a/backup.git/hooks/fsmonitor-watchman.sample b/backup.git/hooks/fsmonitor-watchman.sample new file mode 100755 index 0000000..23e856f --- /dev/null +++ b/backup.git/hooks/fsmonitor-watchman.sample @@ -0,0 +1,174 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use IPC::Open2; + +# An example hook script to integrate Watchman +# (https://facebook.github.io/watchman/) with git to speed up detecting +# new and modified files. +# +# The hook is passed a version (currently 2) and last update token +# formatted as a string and outputs to stdout a new update token and +# all files that have been modified since the update token. Paths must +# be relative to the root of the working tree and separated by a single NUL. +# +# To enable this hook, rename this file to "query-watchman" and set +# 'git config core.fsmonitor .git/hooks/query-watchman' +# +my ($version, $last_update_token) = @ARGV; + +# Uncomment for debugging +# print STDERR "$0 $version $last_update_token\n"; + +# Check the hook interface version +if ($version ne 2) { + die "Unsupported query-fsmonitor hook version '$version'.\n" . + "Falling back to scanning...\n"; +} + +my $git_work_tree = get_working_dir(); + +my $retry = 1; + +my $json_pkg; +eval { + require JSON::XS; + $json_pkg = "JSON::XS"; + 1; +} or do { + require JSON::PP; + $json_pkg = "JSON::PP"; +}; + +launch_watchman(); + +sub launch_watchman { + my $o = watchman_query(); + if (is_work_tree_watched($o)) { + output_result($o->{clock}, @{$o->{files}}); + } +} + +sub output_result { + my ($clockid, @files) = @_; + + # Uncomment for debugging watchman output + # open (my $fh, ">", ".git/watchman-output.out"); + # binmode $fh, ":utf8"; + # print $fh "$clockid\n@files\n"; + # close $fh; + + binmode STDOUT, ":utf8"; + print $clockid; + print "\0"; + local $, = "\0"; + print @files; +} + +sub watchman_clock { + my $response = qx/watchman clock "$git_work_tree"/; + die "Failed to get clock id on '$git_work_tree'.\n" . + "Falling back to scanning...\n" if $? != 0; + + return $json_pkg->new->utf8->decode($response); +} + +sub watchman_query { + my $pid = open2(\*CHLD_OUT, \*CHLD_IN, 'watchman -j --no-pretty') + or die "open2() failed: $!\n" . + "Falling back to scanning...\n"; + + # In the query expression below we're asking for names of files that + # changed since $last_update_token but not from the .git folder. + # + # To accomplish this, we're using the "since" generator to use the + # recency index to select candidate nodes and "fields" to limit the + # output to file names only. Then we're using the "expression" term to + # further constrain the results. + my $last_update_line = ""; + if (substr($last_update_token, 0, 1) eq "c") { + $last_update_token = "\"$last_update_token\""; + $last_update_line = qq[\n"since": $last_update_token,]; + } + my $query = <<" END"; + ["query", "$git_work_tree", {$last_update_line + "fields": ["name"], + "expression": ["not", ["dirname", ".git"]] + }] + END + + # Uncomment for debugging the watchman query + # open (my $fh, ">", ".git/watchman-query.json"); + # print $fh $query; + # close $fh; + + print CHLD_IN $query; + close CHLD_IN; + my $response = do {local $/; }; + + # Uncomment for debugging the watch response + # open ($fh, ">", ".git/watchman-response.json"); + # print $fh $response; + # close $fh; + + die "Watchman: command returned no output.\n" . + "Falling back to scanning...\n" if $response eq ""; + die "Watchman: command returned invalid output: $response\n" . + "Falling back to scanning...\n" unless $response =~ /^\{/; + + return $json_pkg->new->utf8->decode($response); +} + +sub is_work_tree_watched { + my ($output) = @_; + my $error = $output->{error}; + if ($retry > 0 and $error and $error =~ m/unable to resolve root .* directory (.*) is not watched/) { + $retry--; + my $response = qx/watchman watch "$git_work_tree"/; + die "Failed to make watchman watch '$git_work_tree'.\n" . + "Falling back to scanning...\n" if $? != 0; + $output = $json_pkg->new->utf8->decode($response); + $error = $output->{error}; + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + # Uncomment for debugging watchman output + # open (my $fh, ">", ".git/watchman-output.out"); + # close $fh; + + # Watchman will always return all files on the first query so + # return the fast "everything is dirty" flag to git and do the + # Watchman query just to get it over with now so we won't pay + # the cost in git to look up each individual file. + my $o = watchman_clock(); + $error = $output->{error}; + + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + output_result($o->{clock}, ("/")); + $last_update_token = $o->{clock}; + + eval { launch_watchman() }; + return 0; + } + + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + return 1; +} + +sub get_working_dir { + my $working_dir; + if ($^O =~ 'msys' || $^O =~ 'cygwin') { + $working_dir = Win32::GetCwd(); + $working_dir =~ tr/\\/\//; + } else { + require Cwd; + $working_dir = Cwd::cwd(); + } + + return $working_dir; +} diff --git a/backup.git/hooks/post-update.sample b/backup.git/hooks/post-update.sample new file mode 100755 index 0000000..ec17ec1 --- /dev/null +++ b/backup.git/hooks/post-update.sample @@ -0,0 +1,8 @@ +#!/bin/sh +# +# An example hook script to prepare a packed repository for use over +# dumb transports. +# +# To enable this hook, rename this file to "post-update". + +exec git update-server-info diff --git a/backup.git/hooks/pre-applypatch.sample b/backup.git/hooks/pre-applypatch.sample new file mode 100755 index 0000000..4142082 --- /dev/null +++ b/backup.git/hooks/pre-applypatch.sample @@ -0,0 +1,14 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed +# by applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-applypatch". + +. git-sh-setup +precommit="$(git rev-parse --git-path hooks/pre-commit)" +test -x "$precommit" && exec "$precommit" ${1+"$@"} +: diff --git a/backup.git/hooks/pre-commit.sample b/backup.git/hooks/pre-commit.sample new file mode 100755 index 0000000..29ed5ee --- /dev/null +++ b/backup.git/hooks/pre-commit.sample @@ -0,0 +1,49 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git commit" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message if +# it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-commit". + +if git rev-parse --verify HEAD >/dev/null 2>&1 +then + against=HEAD +else + # Initial commit: diff against an empty tree object + against=$(git hash-object -t tree /dev/null) +fi + +# If you want to allow non-ASCII filenames set this variable to true. +allownonascii=$(git config --type=bool hooks.allownonascii) + +# Redirect output to stderr. +exec 1>&2 + +# Cross platform projects tend to avoid non-ASCII filenames; prevent +# them from being added to the repository. We exploit the fact that the +# printable range starts at the space character and ends with tilde. +if [ "$allownonascii" != "true" ] && + # Note that the use of brackets around a tr range is ok here, (it's + # even required, for portability to Solaris 10's /usr/bin/tr), since + # the square bracket bytes happen to fall in the designated range. + test $(git diff-index --cached --name-only --diff-filter=A -z $against | + LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0 +then + cat <<\EOF +Error: Attempt to add a non-ASCII file name. + +This can cause problems if you want to work with people on other platforms. + +To be portable it is advisable to rename the file. + +If you know what you are doing you can disable this check using: + + git config hooks.allownonascii true +EOF + exit 1 +fi + +# If there are whitespace errors, print the offending file names and fail. +exec git diff-index --check --cached $against -- diff --git a/backup.git/hooks/pre-merge-commit.sample b/backup.git/hooks/pre-merge-commit.sample new file mode 100755 index 0000000..399eab1 --- /dev/null +++ b/backup.git/hooks/pre-merge-commit.sample @@ -0,0 +1,13 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git merge" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message to +# stderr if it wants to stop the merge commit. +# +# To enable this hook, rename this file to "pre-merge-commit". + +. git-sh-setup +test -x "$GIT_DIR/hooks/pre-commit" && + exec "$GIT_DIR/hooks/pre-commit" +: diff --git a/backup.git/hooks/pre-push.sample b/backup.git/hooks/pre-push.sample new file mode 100755 index 0000000..4ce688d --- /dev/null +++ b/backup.git/hooks/pre-push.sample @@ -0,0 +1,53 @@ +#!/bin/sh + +# An example hook script to verify what is about to be pushed. Called by "git +# push" after it has checked the remote status, but before anything has been +# pushed. If this script exits with a non-zero status nothing will be pushed. +# +# This hook is called with the following parameters: +# +# $1 -- Name of the remote to which the push is being done +# $2 -- URL to which the push is being done +# +# If pushing without using a named remote those arguments will be equal. +# +# Information about the commits which are being pushed is supplied as lines to +# the standard input in the form: +# +# +# +# This sample shows how to prevent push of commits where the log message starts +# with "WIP" (work in progress). + +remote="$1" +url="$2" + +zero=$(git hash-object --stdin &2 "Found WIP commit in $local_ref, not pushing" + exit 1 + fi + fi +done + +exit 0 diff --git a/backup.git/hooks/pre-rebase.sample b/backup.git/hooks/pre-rebase.sample new file mode 100755 index 0000000..6cbef5c --- /dev/null +++ b/backup.git/hooks/pre-rebase.sample @@ -0,0 +1,169 @@ +#!/bin/sh +# +# Copyright (c) 2006, 2008 Junio C Hamano +# +# The "pre-rebase" hook is run just before "git rebase" starts doing +# its job, and can prevent the command from running by exiting with +# non-zero status. +# +# The hook is called with the following parameters: +# +# $1 -- the upstream the series was forked from. +# $2 -- the branch being rebased (or empty when rebasing the current branch). +# +# This sample shows how to prevent topic branches that are already +# merged to 'next' branch from getting rebased, because allowing it +# would result in rebasing already published history. + +publish=next +basebranch="$1" +if test "$#" = 2 +then + topic="refs/heads/$2" +else + topic=`git symbolic-ref HEAD` || + exit 0 ;# we do not interrupt rebasing detached HEAD +fi + +case "$topic" in +refs/heads/??/*) + ;; +*) + exit 0 ;# we do not interrupt others. + ;; +esac + +# Now we are dealing with a topic branch being rebased +# on top of master. Is it OK to rebase it? + +# Does the topic really exist? +git show-ref -q "$topic" || { + echo >&2 "No such branch $topic" + exit 1 +} + +# Is topic fully merged to master? +not_in_master=`git rev-list --pretty=oneline ^master "$topic"` +if test -z "$not_in_master" +then + echo >&2 "$topic is fully merged to master; better remove it." + exit 1 ;# we could allow it, but there is no point. +fi + +# Is topic ever merged to next? If so you should not be rebasing it. +only_next_1=`git rev-list ^master "^$topic" ${publish} | sort` +only_next_2=`git rev-list ^master ${publish} | sort` +if test "$only_next_1" = "$only_next_2" +then + not_in_topic=`git rev-list "^$topic" master` + if test -z "$not_in_topic" + then + echo >&2 "$topic is already up to date with master" + exit 1 ;# we could allow it, but there is no point. + else + exit 0 + fi +else + not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"` + /usr/bin/perl -e ' + my $topic = $ARGV[0]; + my $msg = "* $topic has commits already merged to public branch:\n"; + my (%not_in_next) = map { + /^([0-9a-f]+) /; + ($1 => 1); + } split(/\n/, $ARGV[1]); + for my $elem (map { + /^([0-9a-f]+) (.*)$/; + [$1 => $2]; + } split(/\n/, $ARGV[2])) { + if (!exists $not_in_next{$elem->[0]}) { + if ($msg) { + print STDERR $msg; + undef $msg; + } + print STDERR " $elem->[1]\n"; + } + } + ' "$topic" "$not_in_next" "$not_in_master" + exit 1 +fi + +<<\DOC_END + +This sample hook safeguards topic branches that have been +published from being rewound. + +The workflow assumed here is: + + * Once a topic branch forks from "master", "master" is never + merged into it again (either directly or indirectly). + + * Once a topic branch is fully cooked and merged into "master", + it is deleted. If you need to build on top of it to correct + earlier mistakes, a new topic branch is created by forking at + the tip of the "master". This is not strictly necessary, but + it makes it easier to keep your history simple. + + * Whenever you need to test or publish your changes to topic + branches, merge them into "next" branch. + +The script, being an example, hardcodes the publish branch name +to be "next", but it is trivial to make it configurable via +$GIT_DIR/config mechanism. + +With this workflow, you would want to know: + +(1) ... if a topic branch has ever been merged to "next". Young + topic branches can have stupid mistakes you would rather + clean up before publishing, and things that have not been + merged into other branches can be easily rebased without + affecting other people. But once it is published, you would + not want to rewind it. + +(2) ... if a topic branch has been fully merged to "master". + Then you can delete it. More importantly, you should not + build on top of it -- other people may already want to + change things related to the topic as patches against your + "master", so if you need further changes, it is better to + fork the topic (perhaps with the same name) afresh from the + tip of "master". + +Let's look at this example: + + o---o---o---o---o---o---o---o---o---o "next" + / / / / + / a---a---b A / / + / / / / + / / c---c---c---c B / + / / / \ / + / / / b---b C \ / + / / / / \ / + ---o---o---o---o---o---o---o---o---o---o---o "master" + + +A, B and C are topic branches. + + * A has one fix since it was merged up to "next". + + * B has finished. It has been fully merged up to "master" and "next", + and is ready to be deleted. + + * C has not merged to "next" at all. + +We would want to allow C to be rebased, refuse A, and encourage +B to be deleted. + +To compute (1): + + git rev-list ^master ^topic next + git rev-list ^master next + + if these match, topic has not merged in next at all. + +To compute (2): + + git rev-list master..topic + + if this is empty, it is fully merged to "master". + +DOC_END diff --git a/backup.git/hooks/pre-receive.sample b/backup.git/hooks/pre-receive.sample new file mode 100755 index 0000000..a1fd29e --- /dev/null +++ b/backup.git/hooks/pre-receive.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to make use of push options. +# The example simply echoes all push options that start with 'echoback=' +# and rejects all pushes when the "reject" push option is used. +# +# To enable this hook, rename this file to "pre-receive". + +if test -n "$GIT_PUSH_OPTION_COUNT" +then + i=0 + while test "$i" -lt "$GIT_PUSH_OPTION_COUNT" + do + eval "value=\$GIT_PUSH_OPTION_$i" + case "$value" in + echoback=*) + echo "echo from the pre-receive-hook: ${value#*=}" >&2 + ;; + reject) + exit 1 + esac + i=$((i + 1)) + done +fi diff --git a/backup.git/hooks/prepare-commit-msg.sample b/backup.git/hooks/prepare-commit-msg.sample new file mode 100755 index 0000000..10fa14c --- /dev/null +++ b/backup.git/hooks/prepare-commit-msg.sample @@ -0,0 +1,42 @@ +#!/bin/sh +# +# An example hook script to prepare the commit log message. +# Called by "git commit" with the name of the file that has the +# commit message, followed by the description of the commit +# message's source. The hook's purpose is to edit the commit +# message file. If the hook fails with a non-zero status, +# the commit is aborted. +# +# To enable this hook, rename this file to "prepare-commit-msg". + +# This hook includes three examples. The first one removes the +# "# Please enter the commit message..." help message. +# +# The second includes the output of "git diff --name-status -r" +# into the message, just before the "git status" output. It is +# commented because it doesn't cope with --amend or with squashed +# commits. +# +# The third example adds a Signed-off-by line to the message, that can +# still be edited. This is rarely a good idea. + +COMMIT_MSG_FILE=$1 +COMMIT_SOURCE=$2 +SHA1=$3 + +/usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE" + +# case "$COMMIT_SOURCE,$SHA1" in +# ,|template,) +# /usr/bin/perl -i.bak -pe ' +# print "\n" . `git diff --cached --name-status -r` +# if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;; +# *) ;; +# esac + +# SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE" +# if test -z "$COMMIT_SOURCE" +# then +# /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE" +# fi diff --git a/backup.git/hooks/push-to-checkout.sample b/backup.git/hooks/push-to-checkout.sample new file mode 100755 index 0000000..af5a0c0 --- /dev/null +++ b/backup.git/hooks/push-to-checkout.sample @@ -0,0 +1,78 @@ +#!/bin/sh + +# An example hook script to update a checked-out tree on a git push. +# +# This hook is invoked by git-receive-pack(1) when it reacts to git +# push and updates reference(s) in its repository, and when the push +# tries to update the branch that is currently checked out and the +# receive.denyCurrentBranch configuration variable is set to +# updateInstead. +# +# By default, such a push is refused if the working tree and the index +# of the remote repository has any difference from the currently +# checked out commit; when both the working tree and the index match +# the current commit, they are updated to match the newly pushed tip +# of the branch. This hook is to be used to override the default +# behaviour; however the code below reimplements the default behaviour +# as a starting point for convenient modification. +# +# The hook receives the commit with which the tip of the current +# branch is going to be updated: +commit=$1 + +# It can exit with a non-zero status to refuse the push (when it does +# so, it must not modify the index or the working tree). +die () { + echo >&2 "$*" + exit 1 +} + +# Or it can make any necessary changes to the working tree and to the +# index to bring them to the desired state when the tip of the current +# branch is updated to the new commit, and exit with a zero status. +# +# For example, the hook can simply run git read-tree -u -m HEAD "$1" +# in order to emulate git fetch that is run in the reverse direction +# with git push, as the two-tree form of git read-tree -u -m is +# essentially the same as git switch or git checkout that switches +# branches while keeping the local changes in the working tree that do +# not interfere with the difference between the branches. + +# The below is a more-or-less exact translation to shell of the C code +# for the default behaviour for git's push-to-checkout hook defined in +# the push_to_deploy() function in builtin/receive-pack.c. +# +# Note that the hook will be executed from the repository directory, +# not from the working tree, so if you want to perform operations on +# the working tree, you will have to adapt your code accordingly, e.g. +# by adding "cd .." or using relative paths. + +if ! git update-index -q --ignore-submodules --refresh +then + die "Up-to-date check failed" +fi + +if ! git diff-files --quiet --ignore-submodules -- +then + die "Working directory has unstaged changes" +fi + +# This is a rough translation of: +# +# head_has_history() ? "HEAD" : EMPTY_TREE_SHA1_HEX +if git cat-file -e HEAD 2>/dev/null +then + head=HEAD +else + head=$(git hash-object -t tree --stdin &2 + exit 1 +} + +unset GIT_DIR GIT_WORK_TREE +cd "$worktree" && + +if grep -q "^diff --git " "$1" +then + validate_patch "$1" +else + validate_cover_letter "$1" +fi && + +if test "$GIT_SENDEMAIL_FILE_COUNTER" = "$GIT_SENDEMAIL_FILE_TOTAL" +then + git config --unset-all sendemail.validateWorktree && + trap 'git worktree remove -ff "$worktree"' EXIT && + validate_series +fi diff --git a/backup.git/hooks/update.sample b/backup.git/hooks/update.sample new file mode 100755 index 0000000..c4d426b --- /dev/null +++ b/backup.git/hooks/update.sample @@ -0,0 +1,128 @@ +#!/bin/sh +# +# An example hook script to block unannotated tags from entering. +# Called by "git receive-pack" with arguments: refname sha1-old sha1-new +# +# To enable this hook, rename this file to "update". +# +# Config +# ------ +# hooks.allowunannotated +# This boolean sets whether unannotated tags will be allowed into the +# repository. By default they won't be. +# hooks.allowdeletetag +# This boolean sets whether deleting tags will be allowed in the +# repository. By default they won't be. +# hooks.allowmodifytag +# This boolean sets whether a tag may be modified after creation. By default +# it won't be. +# hooks.allowdeletebranch +# This boolean sets whether deleting branches will be allowed in the +# repository. By default they won't be. +# hooks.denycreatebranch +# This boolean sets whether remotely creating branches will be denied +# in the repository. By default this is allowed. +# + +# --- Command line +refname="$1" +oldrev="$2" +newrev="$3" + +# --- Safety check +if [ -z "$GIT_DIR" ]; then + echo "Don't run this script from the command line." >&2 + echo " (if you want, you could supply GIT_DIR then run" >&2 + echo " $0 )" >&2 + exit 1 +fi + +if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then + echo "usage: $0 " >&2 + exit 1 +fi + +# --- Config +allowunannotated=$(git config --type=bool hooks.allowunannotated) +allowdeletebranch=$(git config --type=bool hooks.allowdeletebranch) +denycreatebranch=$(git config --type=bool hooks.denycreatebranch) +allowdeletetag=$(git config --type=bool hooks.allowdeletetag) +allowmodifytag=$(git config --type=bool hooks.allowmodifytag) + +# check for no description +projectdesc=$(sed -e '1q' "$GIT_DIR/description") +case "$projectdesc" in +"Unnamed repository"* | "") + echo "*** Project description file hasn't been set" >&2 + exit 1 + ;; +esac + +# --- Check types +# if $newrev is 0000...0000, it's a commit to delete a ref. +zero=$(git hash-object --stdin &2 + echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2 + exit 1 + fi + ;; + refs/tags/*,delete) + # delete tag + if [ "$allowdeletetag" != "true" ]; then + echo "*** Deleting a tag is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/tags/*,tag) + # annotated tag + if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1 + then + echo "*** Tag '$refname' already exists." >&2 + echo "*** Modifying a tag is not allowed in this repository." >&2 + exit 1 + fi + ;; + refs/heads/*,commit) + # branch + if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then + echo "*** Creating a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/heads/*,delete) + # delete branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/remotes/*,commit) + # tracking branch + ;; + refs/remotes/*,delete) + # delete tracking branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a tracking branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + *) + # Anything else (is there anything else?) + echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2 + exit 1 + ;; +esac + +# --- Finished +exit 0 diff --git a/backup.git/info/exclude b/backup.git/info/exclude new file mode 100644 index 0000000..a5196d1 --- /dev/null +++ b/backup.git/info/exclude @@ -0,0 +1,6 @@ +# git ls-files --others --exclude-from=.git/info/exclude +# Lines that start with '#' are comments. +# For a project mostly in C, the following would be a good set of +# exclude patterns (uncomment them if you want to use them): +# *.[oa] +# *~ diff --git a/backup.git/objects/pack/pack-e1649466fb0f06e243f4fb7f1195bfa1df1dfe11.idx b/backup.git/objects/pack/pack-e1649466fb0f06e243f4fb7f1195bfa1df1dfe11.idx new file mode 100644 index 0000000000000000000000000000000000000000..8cf750e62a00ab474cea7c8aa80f1e861c98fa1b GIT binary patch literal 10060 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 t5g z0`vf*Ap}k0f@c=NwNvnX38+mtsL2#CUnK;`26~nBG0+#AAU2>o(F6D5w}EjzP=6qf zzj_y@Sg?*|;DfoTvw;Pz%asp78z~?^3n1s9Z}|U!8hs5xL}oy8bq_&?ATN4%Kr(Xz zWMtsG=n&NQ8&I>bR4`8}1pWP|bAkTk5uI@muKL)i&IStmE3;Gts#&`zu zlnwHO3F2Z0@&Anz^aM4ic|njvVILq912qb?Zg6T2Fpnts3}PZG1=1tfvPH_v8!Y7C l(x*28IH?_ZixhuwXd4yKj5nV+N5?o)P7i1pIhpGl{2#8Nt7`xN literal 0 HcmV?d00001 diff --git a/backup.git/objects/pack/pack-e1649466fb0f06e243f4fb7f1195bfa1df1dfe11.pack b/backup.git/objects/pack/pack-e1649466fb0f06e243f4fb7f1195bfa1df1dfe11.pack new file mode 100644 index 0000000000000000000000000000000000000000..2710120276aa36ad2fad0c46819efc360e4ffad1 GIT binary patch literal 147708 zcmY&;Q+Q@w6KrhTwr$(CZBLSkZ5tEY#>B}R+qP{xXTJZOn{&UP{j6S9UAww^D+!Cr z0s#Sm0099DC!u&`=fp583^E}BdH0%lGbCQw;Xx9Ep%jXox}wcGTs{rWuW@rD+;Z^< zNNfx77G>&W018ueNM$&mE^935$J|507K<hA`)mAjf9q+jyG0Q(Ub$PUG6 zDwk|SI&V9mcNIDd)9ShUIFPxc&vIaKeX-Ks{5dP&iPj=SqI(^ zty%s1h;ckR`zc8O3Yu*AR}fsl9>3z=6-2SBolTMy3MX4>D%{@h2P<_e{Z~2WjD;UXBO^nLLo!(S#G;rt zFIw9+dLj4hlPzvrHcRjp;2N);bcXC-P}zQ2PqBRhPx319Xa9HZI9>%%W+Wl+JQJ_t zrB&YVNGN4zAR3(wY)aaFx5F6Z@S+2gOKhv12q~xkKW!qra1IjERVHX;{kjH96>~#k?)v|K{Gk#?GcLIV}L$qI5ngF)L z*L;~!E=f3^kB0xriwbn!|L&Y$222=9Xs=6AxxHTPM{$hg50r(8na-B}72M^dlq3Dc z-egzC1-cwzmtr{7supPn&FQaejv+g0_V83tZyRwj6-IKghcQu(P$W_6WZFYy>eN5D z>$!O1vOOm7T#2#n=V6RIH=x^QYZe6X+laTH5B$?GBgBSZB=Ll_jAf!*E0FcviU1T( z#NVe#Q#G~Gm7lmwnr|C71<}jcVYkpYw4#I`Fq+0Wj<4F<>At~bE0_>XPljbWAh*?tjNWK<9W18aV(^#$v<0&zD`g zta~UCdoYuL8T7DV0lg2F`Zl2JV| zJi$b}W)05(<3T?Q?#z~IYjp!}#4AsxApXa8UW9%oIG|bnvfDT{Zu=e-5jnho$fXv2 zoybCos3h)VG)MEB4{N5fiqYQd*@=tS<5x0Ebq6kdfN)J+ zI3OnL2QcP7U2|=gdO;T)AMkT^2o^eo^Z^__!Vln0)H3}UH2)5oBeute zDr$>lETf%9Mked2hcqpnhCFW7&#J&I&!s4>OexL|?PZ~)osraBd%>53k>NEJrt-%z zsnUeH=Du=NDu*oln9gXrb-j-rW{G8B&l~K9@F$}tR5iHQCj3NxBqWArt2>ly;+`!R zEg5S&Ata$M&%Iyg(^05CniMAyo36#gT^IJunDliLXV0`?397awrQF@hA+uS5oz#O9 z@x;nUWbTy!21^W$z|3$%Jwfo-O1o@EHK%(Bm+T2zs9B%Luo{qvTF z!ihSCJ-!zgFP)06=ehswh^NbGLw8w*i=sI{8@Px(H-}BZiSLf3A}h9PozUw6)e++U zy-MikQc ziR9-dQvfHs^0KbA6XW}KbS@N|Oh@83)WjxVX0ZMD%f%nS%d8Y`5ZlR*+fSrrWw?Ax zo)G@<1&5Ku9j9c2_*bZiI-ACSZQ_etwUxaCbIG_BU|4X!+mVd^pK1x)4E#S>Wn<{Z zTJc1raYupIRXXr>NjHq*V`zlCZyGu#hHOB(g)|Ab!+#8;#CCaXV@slV*h-2etnFjP zbPF6^OD@K($>DJtOvn_J)~Ejt|L(c*Qd`&bPT-VM(OGFNzKF}Vi|xxEM%oLdAYkTs zrP}rSh|GglNbK<`eW>4M!}Qf6D6qq+k}YwCMpTiecJGj*p6i7i^o}4MvLx-+PKaFeI{`W!JOVG0>uYY*hHcG5&?8%$c5M5j)7r<&_$VQIiHbeyaaqZbce zdY^KkxIm)&3gY)N{7iK!kyqPX>F*@$a_|D_U>As#TAd66&)y7U*zx2JYW*bw*Ef9L zXmGyCEbrx_pUUWUog!s-=wS0@7d!~H+q1ocFTFS0<3W@oY(`L7a`nX|;HxZpA~Zdl zlKMY*&%IXk)P9O&@8D%zcGh@(PfdJ35af_-GgK5;Xwv+A=fJ@Y=|hJ0#L@J8*kLWF z5iGF-+Je&vUs0k#ftrri}=Y{vN)=5w@x&)>CLg+J@%Wk_1 zM|(|m+buL&Z9oX$I5)Kp#6ojVepCe^LlNNV8W?sj0iiGz`d{=hwr$7?}Ol^CN(`h;dz z<{F2nO|TY#QqG5(jP8ME>A zDCabp65Z^vR+$q!E6ML-<`G~+6C*-&Qkn1V;wXJJl}|EFjG>!mmN1AJwsrsyBgU!0 ziI)Frb1R{5M#X)7`+`)z_?9{e4i0TSA*&MZE(jakf0F)70#RihAh^sDUP9n{UEPag zLL_N0Pg||Ls-c*l(hP;8#Ejxy_i>_fZA6wKY)BJ4o^YUxNB7}+z^L}Jk5$QSw_a+B zOH<0e)98Ca7bC|>XLA#dx;m>Dl~lhw{5;cq+Hj)(_j~_wr{T8l`Bz(QCauDcP(i5G zpFVJCK<&06i#hFn9+bAz=9wBl~ zwS0Zw1C962YH-d>77Fc6wpvaS%9U6qQiD)EDN3MhY%|YxfEwiY+0uS_6!H%fC4*k< zP9w;b-HN0EX90uc7;TvjkcolC>o354KJCS9&EDMOEyv`NV&w$lT5i8A3$62h0dOpc z$*4}@-g>#>BzU?gd0yiP%C9JCaoncZ+MkR3_`~2ke&3=M6X!d0wvMdSf2_UjfWzW{;_ey6?Jz`<#WhAzL9=LI00mtPgLHJhdN5dhP@U~Obls%3-*5Vu zhFQf)L|i**Z^4&$l9z`^!nDj$vu-jWQ#vk#=2A7@=#XHZ6zQXz?x{SkAqIIpi;`lU z%Fb=wuqL(a0+kx1e8>-c1VK{>`5HOjZqS|uNXj3!4i2iozw7Q@;-M0S z(S=y|{_DSG@ih#cxT-~u#TDDa5DgMt4K5jtNEE;j+G8Ybppxt4hKxLW$ZqZqa56uT#F%=!#7!j5311)DBTNDL>X1H z+EIlY%-i(G1u>3s=}xw7=}>u+wu$*ttxo2m4@Pk-n<_WM!5Go7bFeijBaDgk|C3VN z117Z4mv3}TivE_BUA}kum_Wh=(5RfnB_9Hm~Bjjv^H`9=9uCFAd1{JxsO?(Jnh@`LH3xmqJg8#!PC`ynD&JRAJlX|1RAHWkB{zFy% zzlk99-$X#P)m%<~%9vyh7J4u!0fGjdP;5Q7rGzIPLM=l?{dd~jEAiT;A?^x;YF7U@ z*xTKdcl=`-6wO+SGtS8!A9ACNST^+JJXbQvL}U3M3j-D6Mi#8Oq&uZUElw4aIWw(P z=~T)_43+|vnTrQc9ZTzVHh6Skg&tfwz62J09cV+6)voX6>4DIan<=r0R>_hguTw!G zmHT?OswA-OrYx@AEdx)*A9|$AB&x`LaJ`L+?XZ_3&2AFjOm~PphXKpRpln`;1n8jK zLF-M#WW&C+@F143O8~GtelbecqVYuDI;>K45UqYeICOjt<_z@q8LVg4+$KeY!xhPH!tv z4a}DG4C=lG*SxJFt!Wg38*>2Obv(KufCjT zf9wnZ{rhHPNT4_FgV3WX2hlZW8GJOFkeyl9(o z&cne@?deVttQY9<`NcHnKd4ps<2RV#w!Ub&4CYpqFIO9aZJiCLR`HT>YgG#nX_QU1 zgUC*jzFQr>OjGB9@S_-V$dcj@4@iSWLpm(Jzi$jL54nxzf!z zE?8vo5rC-@t0P}qZ853L$4acU^f}$ABkWGP64m*O@Fz~Oo`(StOZ8<6eYU_=d4k!9 zP8YXil3g3tmG42gU&t2GLxm2No*Vt%Dkw?fbsEIG{+Od0=U_J7p#fz;n~%ftyXCi2 zIG94F`ADY@Ag)NeiSY`dtW@?n+=X$$?{pJ;1`)l#h_LDr;-zC3cRQKA&bhCa>Oqgb zA_PiHpZ#@$u^CqBQx~b*0LfSAntLE)zvFTr;u1nkOrb1pQI&%6MSToYhAoE>PtSjA z$`EvGB2T=GA`0APs#KN2$qyR#g!vAL_EkNFNsnc8MOGh>$?#MnE3u-HH1v2*X^y4V z*++zaq2vnqezQcnvOB2vkv~4BbigJ@94fom@?j{`D`&g)f?<#NdcD4PZFl*U)656N zh?d=sst(cK`4=nZ_wBuI45BWz#!n8FU$HTeN#C@qa?~8o9loS@iX;kVr{AtFC==OD zF&PDT&h=d(1-AOXi$- zrG=+0MwPUyX!m5d^<;wIA&xjpAAZyANPvxp%qFgHlFFFnZb)Bc(Q1{x;Lcb-J=A4~ z$;vEgXMt{kfqw?nWTLF;shtW-bKZ*PIoE1pfZoJY7u{%AUmI1)aEv`Xiw&tr<`%Bd zcLB!H>&HX5J3Lnr>*{@~Tq$k(K9it{K9P1*7&LKa$20ZXoK8IJk88FwCymN~X(0T( zoca4aa|hH0_`@SWBX`tt4U6L*%=giFt3Y5DqgxOs?%}YT4M!)`CzCTWH#@ut4uAEa ztgdrJ5~D68pk||QXnE{6TnZ8|=94klsqg}_27?_*&I}P;n%1LTDjdvA9k36=>TMN%l{xP<;rQsC#Do)74f!j>nDG3 zEG6oX5gx69nG#qJtK>2p@lmh1t+a250*eq0e8^*(bW$@ZT1v=_C87k+2zjtSw8XFd z(BWK^m)&FqF4Iu%^EvJJ6LS^ME_^PO24l)=#_(yemlyrz_^Pe+4{63mJNx0P2Y)i= z9^6{v8YY&lrnx^LXvyH4Rs=fin}rDY;bX_24UIcAbx5uW82^Z&DErT>B5i%3HA%*P zO5>HOl`BQkqiogZteTogU5+}dd2zby#mth{`~GOMAVY0s7*L(jV^?|02EAy>&T(%z zudPI7yBl!Y4a+qEQQOGT!#lR6^}E*Y&AUms*^k%;A9jn=N-^tAB(QX;M1WdAI->La z_?(pV5ig`0p1lefW6@@nLL%93RBFId@5aeauZ1ZTpuPVF;zc|IVf=#h#Rx(&PM)%Y zjWMQvL1I2}UE8i%;PI72c=t5KU zlSv)H@1kgx-TAX-lVkg2D>_=S29=Zn>X9u-FjcMB<3V0F>cpPBZ0G~ranl2Tn(^mo zJtmFZULT43OUhP^ORKIBTE>buz5+#{lsP>0({E`{Jf~IM%1n!Y2>LkYJcDcrHCbc* zT6Oz?R$p>+*(I**fb5Oi0|+mcxb5b(H@6*=TsY3c%{!7Wl3ftXOdyub||Zz7#}vj!yZWkV>NSo5ixelhXf(cn`AfB0Vkw3}vDb5bod(2UCd5|Hv2 z#B0CW8cFTV*}m7JcJxOCXaM-grD2N8On(h-&o=OzUJmQ)<*`t@HLU)G;RajZB5$dL z(Ae(ImyV2G*3Awx+ZP^D^F70puvZsm{TD>V^E&+FnV5I3$%hck5ThAZpeZT0&}OlI zVih70J$M+%WoOC6P~j^S^$GkflPU``Rs5W;eJZgHdjTt8V%vSX;ErQB&ZJDw$z(`Q zPY72H;8qi}+8luvi~!Kuk+u$+?{L=8w)YCu#a0bN{Npi*x7QT*l6Ui|zMFBj?C6Sv zk$ucld<2ej)7@Irf{|OCq;lz+DO2DNJDBPm$_kJA@PI2BloW8Lk>9Yya;E{+(d<0v z6F!I}aTo~1{awOsjJBUtxiSJ9we;o}FcGuC&_Q8AV`Kv9xX-J~TxlLL5)}IdgSY-Qd<;F9)iq15%g=L$vC~b**>?By3$Qp+V zmC_v;^$C5=v&x$Zh4a#-?pcc_`op9Vq`S~+Li5Gf*5R@|L6h;e*hf2z4qOWBEuGLa zP!9bSb@_!QdIoW7F~HK;vD^=TejDNfo%%4|+1Nbtw2P%81D>%+HWD9Oi73JY{4<-@ zO&wuZ=>>m@cr09N?hld)7se0_;xb|*rP&&3>|Vw$8KPZZftc)B-kd|5mssi$B16UOm) zIB6l$S+UqN7LO=#bq6`7=;T3$mM^T}nYDhHYZuRG%BK*#NV$YtXVjL_$~>Wr!&A~giQI+azH`C{QB0#;Lj9HX2 z&c0>G!%$(C!?y0CJ<)oh!%`VS49b!A(4irML%g0wLjjLoEo_DxXHQORTzzd*c)U3R zCh1zBIo78O&1jfsJzg*C(ZG7G80^xs=gCLkKe^mGTeO|KzaeCQN}@FjBeO+jSVg#psDBWMJSX99G@-^MiU*%1!S ze{MKC#XZ7gZ;X>VystB={=gYYKjtwe>kOm9r|8slsC#R}4HYayiAhwG_a`YqlrDF9 zeHLwI1(M5y9XDhJ3&f&)9LL>QJMOzfllX-?PND8?4Dop@9X}E6zt-*kZv`3REjZ+^ znJ*Ui&;-p>5S(mv8V92DkH(28ye=Flo}4@eF{cE97E##NJ=oHdLLJWZIPUBku}8~q z2LL-J1z*ajV5GbTZL=Bh9B~6$bFxQQLkd^offSwPza^g*H^^0& z=gx-;83@@?v7MPHyvvepQQLuvizOJfJx^@;n9C4G3>pg79!+!qp~MyzwQcbJwp)&^ zjj6Pi+8^5snlN3QW2l?Mfq=PwOK8SkL1%fVn8zay9(~G3)3uoeP$<*;dIuZu-+C_7 z_ip$9f^y)?CEcL39Vy|gBOdlYwt~Nat;6k*Gl~CGsQ(M>2j9@MQ(`g} zuQ1ddsd5k){MGul9$X~;5bo}FY#ipm?|=jw{tP zvI!<}$v)&-DgnF{xo`j=$FtD#J27hCOCGPRj@NE39BfAHVM`A9n0&fy_x^0(Hej$# z7U>1`@})k+ovP>F2X4e@B!dbNE!kEO`h_t$jt6>ZH;lbMKE_M)BSJRrMtV~Aw>bzA zd*heFc;*g-_L?d%;^V|Z{2jX`N*K!xGG}_YAkp9U^_>2v2wR6;;xHk&Ml~mldnbb5 zm{=a81lt7TbOON4BQ1Pc|Mg6qyhHH+493u96%isAM@1nGwF+W_UB}Z57g1pBWIo65 zi&{+DeW)!z#T)Nl>|3y4mt=mTjO`CRYQl3k`sB8rq7@e3)wEDK?2ot!>@vdR3N?-FQZv_ za1=OEJ0hdT?zkahqK{Fj`Z)_ty+#7U6C}YF4$9b$*BSTXrmbm8uCC0Hlco=H*W-wG zLyk%-FVIJd!x@>sr-;zIy(2=#1>u9Q+2xxX+R%Rg0H0#Np&_p72Jb`bp_DJx*BlK-{ z8CDSJ-0%l;bMO5MNk*@d!0P%XrE~(1$7oCM-iaPpiZ)yR)qE+)bkpve`d{9rGVxzB z({(}noI#RS6MjqUTSKu{yVhXEYTBVmV$~lE|rG7?!7TZT>ozuT8okUAQ&g`j7|T>!f3NLET>;kqy0w5>T?#z zzx_THi-=?n$~UKQ>&y0J{omXnuC;}D7f8BdJ})#KYv8yavBbW%WDHs;tnMb|ACUyC zr!j`v)6xw1@;@296@^&l7r zu%mt`O%&>GWnGasIJsi;*1=cE^X?zs8snxcDK;B#mJC?S(z&1}CZ1aO+HxZ1lV3eP zn0#?7gSV#?%!f1y=F-fz7iD6ac~nuff+tTfD7mWB+JoY^rxJ=7MnV+UDi%j3p@ZCi zUdP8{0;#OX?I#4kg`|y8==++1=JqR zQ~syQ4gYmi*l&LD5r}TCp3&AzA}SZ@WP1Gd5?vwbN9}UD_N2{;r?rl!q47?L(`{)m z>8~HjMlzCm4Vk5KgZN;a;?mLuPF>`u)hX_t_V&IG1#O#Y}5bOcNSar6jqj zzR-8o)m`W~xx1Il`ol)#43!8)3e_=SVm{|nTTqqr2f`X9icW%M>h}Yy5)%^?8lC{L zGQj?{0b6n+Ih9rsGUsf=`Dju%dLBLW^8ucErF#M02^=W4RLYLqloo)=ThRTusgP1OoDIDJX~yLqiL4BS$dq;GY>R5F zxB(t2EB5ebxGfuaE09imL02V+Yr5q%n*N_5m)U?gm4=g+x_Ku9;2pj910tuDvNoBhdotYfezz7w2})V`3qjWFGL!P{2q%7 zqHT8tWaiwJEWq;+H|h|_AU+He-N1iyU@){7X>SZ@i;S<<$U7MPgo!nB>-E7H`2hWd>Um0n{|Ch+FHFA>640!lB6By=b8;I58C8&x zsj)fl*z})JJCtGQLnn6wIRNfz&ptFNpthyt7nVqI2V5))t`jag z!@MFKr;KSl-mXF4+t+?sU#@j5EItADf|9GML!ZY@PU|wxs#R6XyNv?LVd`YDVwY^aoI?MQ;TVlTCdyAs)5%MlXQU9_UaOki z%`x>7<}FwrkEY&7bcfQ6&d`s}$WGBxTOhR}2U_er_Ba#LxxufK^v= zsn@Y^hVS({pS9$Ze=GLq=AH97-oDBn)kcRgnTuCMl2_c3M@n;7cnyVe!)f$ zWw#^^ZR_$D+5N_y!Pm^!`K78Fnz9&_{VCJE4;P02ax>F4M#Cjv@&3iwsfU<&9L{vv?bi9wKEZS(M$jpmrK;B?l*KHx!ymq&T@ziLMH7^bzCQ=b6*RTQOTC zD^t%(GweBG#(WA{g64cp&-PPP!zRHUN3~n}aqQED_RLZ~HQiV|BfWIfs5}d>wNbir z&0%*!^-q>%oX1o=XZ$lgHw~WpNU~ z_aveI9FzWTgX}1!483h+?QK}xm#Bo69=UaI?1nu~6Z_T%xqx^=Zo{w&hVi;`Fz#O$ zhlOah8w>LCTT6}|$2nG+&o#dV$^2ksl3iGmu@xS5Cw-ZA8h$%#o5e3gM;ZLsV@Br- zgGr;@W%ezC!Mwsjobk*-ba``+bZM2J4Xx zd<=yB(+X7!l|U~hEGng@t{}-^Zw6#XB(MM%rw~i#4C2${$C~w>E$+_D#KghIMkFdH ztS%=0-$OLy$KK`EXgunzhQb0=(zfI9rRj;X>S!e^F12vTLG>rNGea{-Q)0?UnKg;c zENDFgZf{1V+)LA*u}LZwb{(|I1Rz*w9!zm_a5X(i2}eHis}S$#JDYbi$uc0f zXt)Mdc+^RXY`N>8K1^MYbm!sG?8yqCr>Ocyq4fkF+2%?U4ueE+T_3dN&+`&6o8H%i zmyl{;c>7W5ecEn6JrrlHm0rN{;Q-d2a@xZ63|oJ8ivcY+qU~q#&ZHQ7IR+C>G#BfX zfv))g8+!SYd8M_I%W8sV9xHe!Wdd4@_%&pArgje>#i1K#BK=>X&Zp3iTdj5!9z4-D zYxeiYzy}0WKYd}y_CF<#t32p?=0v8J4M4-_)*AsunRm%gBUs!tpc0#Zgcm6+@S?FM z8&w~RGRt{q9ammxWjQijhg>bRpMly--^yL-jDw7K35S$l({ z{Q3GlI3C$k%ANns?3WMdzhti15~);_^@IbFNYqxi$9Nj{!k#k-WHx5KIo`0Mf<(72 zKAKs;7Gp6AJ(gHa2lH5Q(@Fm>`rPjLp?EL*tmk4!Sx#t{@JpH?*ZaENM{MEk@afV= z4YPZ@aWPk;LuHYxb1C$`*};uizLrYsk47UsnmoPVyC+^uF~JEIqLn6%DDMTwdbM?# zs5GDAy3($Gj!pFnpyR82#rqK|Yq5nb^yVo9Df7{MhK;>_S*f5k<(ptm&R*R-OD9vv zpuNWB#aO$lst~r*z18X=|7y!MkMxj+N^%u&Ma@{EJtAvVuK5A@5=b51-V!*8=9Y;0 z_hNHus(4dfe6$MPt6)N4CDk>4`xY{09871nd-5-&!}q)(f$vXUk=+W1s{AaOuv9np zDZ3tEEPdJh(}@m`?-YV$*QbXvP!Pn$<{q#uAgU-V-f_28Z}Tp)m~RcS%YEYkW>9{fKh2{*m5rT6MXFx0ru>AJR!4U5 z{H{KYDhw~ty))8g<6gqT7PAIBt3oJ7fs#QV9JTQ~5Tt)L*y{(um~x}SO|g@2fT6ix zj|9nRa$?Da1~dKAI(<>MJ?RXoZn)VD9y&Q?cN=lx{X9l~FCVz*P!y5Nt#)^b50xp1Vaaq1n&$L#n#=}G zp3SdjB(^)1ZO5C1gdV+&x!CkX&zLVFMa$!$l$1lx4`3R-iKsFpL<*6I+8_y^qAlW3OIz_?TY^1okSYXzL}f=w1z zvQC}~fv2Q~+w5>(X=t3HR|lyII5qf8;PI6bf)5>>G5%D#)(j{LMop8~GLAM_dmfe( zPH1y@(Lt0Ao=wT7I!aZmpGLI`N{Jt$ea_4-P*N6aF5)n_LS@SV#e+1Bgs@#F3GV$TUcT+Gs|%h6%gw>;4lxb{!&R?X_`hTZw)pf;mv%=rg zd0~`-#OPL2%l?vQiR?t+C zvxQ1D629UZ z7$8_SnTz=nUC+nF&CDCAiy@d`iu=P$hT2TKTkJ8K8 zUIs;@z>3{s#;v*Z{g5?DeByzcc~ZF-(sXQOs{cFkDb)q>bm1}9#xH{SL3|PPrP6YM zO8>d3MuQg%q>IfjvJQQsj;R+~Ny#w9iqT_T{bHfIe?kl{X}3LjFo%|JkAk7gN)%$8+P|5|FvL^E2h;EuDYba6QolqF0QD9*d ztQg=+`}E7NSk58sq;A_lp;jEvMdY)s3G~{y=sH6TOCdigC(}5GI-bZ+#McCbw&pe) z*Dc?qNw($i%m{FG8&EekQ4@%+LpLERsq91Gasw`Y%MEpyf}qM;ZG;vcN$a2~WYcCl zu&C*U?@fO~!;hO>Qj!)F5I~6~H0&N5IyG>RZipwImRrzOlabTy>)E2^HLFBCXh4=lRSf*%qeOxo&Fqba+F>Y%GMho zmJ=plv{($(zZFdSG^{%FsTyntgca3w!At>g&epGYEVNM6SVc31qVZX1^Cv!ZG^eAE zVxz)-uwAM$hPuWRY6BBP3#uJ}{&-T*EVG~!dCCAss zd2Ta|jkW#(OZzCvN-&FQ_3LE1L&qaKR?Xh_U;g!-YgnL61QgqY%CRTR zuESJ!a|KHuwHrbAF+s8DPmFM=;dg>J8)>9{>z%$MS9{r4KcCn4}dA@vnbRB-$aOZ!hFG0&kY)&)| zkhbV&vFyvhgDquD5voEqfdI3z3rts~Xc0O6yF0dOob|hNQf=G7>2sTY*Cww7MKzg% zG$hiB`8R!uOb&o2MM6`1q1%XBX1{UbuoX1+6VdJ6EGH5A4;*FHUbTjuwVk!e#T8;? zDo?{S(F2#ket-BzKZAHF9z2%{L|VEP=}rq;DqBY=g<;eprAZeuX96Y@m1D`c5U{|E z=Ma=5v+YY92n-vDW|~1-zLyLf?@lgI74BN{uq&v|2o$$u)@1o8Q3RWWv-B?}UcCf` zH4*Rw!itK5wWqHVayXMsv_=$=*P#*4Xg#mo7skI8^d&Cx&cXQD!Si;GcS>oYOGc@k zmN?xKzM$->aJVf~4otsPsC)91=u&ntBco8GDJI%M zd|ac%ZGXyn2hnCwKO7Avb3WSv!ejI{SYKo#w_4Qt}r6F}7A_c?P1VbK}R6Ms+WcMs{XQQD%~QS(bsp;`ClcXRL>&cBXRURCh`_ z7BuG$+cAIK1%>uOme|i*qhxu8{pruy#!uBC2&iS3-)q(d#Go7Z+nG==zAlZ&Gx*IX zDJ&ML!{vs%zuRYj1htYX49bEkz(P-5_m^jpY+&}wIa_yyTat~YP0utWP}xL`cJnK! zNA{KWl*`5_a?b^I2U@zc1DHw@Id6fO=MlMnm6o$wVzzwhggIgWaUgksFfeE$OH5_< zJy3;OZTlrLVq(^gSsqb*LN4~FDb<`p+(ah_D&ytgje^$8xfp%zE&pGiHfi&3uXam(eo=n z$$4HoaQx{0-r3u0I^F$50meWNkXxK&%k^}&Ea&mdB=Xi0UW2}!Q+fxsxh1;**>V!y z>5U0S3hRCAUi>Q66t)x2RHXPGjfpYb8A2aR!JOoIEb(z7E}cUCSn*{)foQ@jMeKdp z%3#?OGxEdu@7EAh{u?vOjkN;Xidgv*vOA~0(nijh>hJu{!8gT*AJz@WxjNQ$3B8mh zA{-j$@Wp-@u(LLfa~s$6^w}7yeg?K4kjW^-WtC^uJ0F3C{E(FP*qnpa(0zZ0FA0X= zk&~aDRQVC@t8@3~cd6R2RMPS1JjF~;(7TiSf3$j*OI}_sRLigKu?rQZGSD62-E>aX z!UQg&d#Nf@++>Tiv^-V90ZfiHX>6z~O=To86sr(O5|f3_e8vAf#M9*r=S|&qS6kQX z^;a|}X8OX*!b29e&pVkUge$m-i9gffWs>$_(f*Upd+$zD1#`~RGgGyl3uoANfpI5n zx@q(b$TgeJHC1Fi@SHg5%DJ${PDH90vdN*mToGowq;3Yq^K@ES}AExNP3<(=dbeJLSpcNy-OP%br}BIqlZv z!%SQ+MrNG8YzH@S79A`cwD`tn96u~@r}KT_NuIc4aYVEZ79a}Q5SM!vSy8*2>hl$G zPX?3ENSU*KO^?DIX}Xs=R(k^xX1be81>dKKMLQyn74~}=IK=h<$;3Z~@%(3 zdZeJC*PG&~K#Y*Om^i6AHucW+DzKMBsvkRpuF*O~~FxV2Z?4M zxKjAv-ak_Y1l>Mw42JU1a0#XlVS1B(CGvBLjzFmsEud18JAE%HyI`*tDXCNTqLcg` zVT7oMNpCsEDm^F=!peSjL}Ns5g?{Htg+a9dPUSOjXlGp;=aCkBoD}!OXfDVnb}s#2 zpjSbKhX=$0Gt5Zv$(|e@-@IWA^$y=`n|jR$Mre%?n-aTF&afM<7!Vs57dc6@t^?51ZrifJob zZt07|#1;tOrD4*|wT1T{@d4JUR&_o0G`pME&Bu!HaytjBV)w;>8K^r|_QSf^2z4a3 zgz$s#0gZqwA#gJQ6Z%?892#%7x1IT6bu+Wg0-q)RI~iSE;WvhX&U~kIhh1mMqrM@G z%!V`ygHs{z7SYD#?qjfPk;@6QR2TyuJ@n8B8O5C}rOVlH1Xu%Y9L#_TL9|JNfVfRP zRpSK>2{E4xFIBB7s2l~VmU|cwUwAIr^$uRI2Z!&o0(Fs9kLdU4GX2UU8_I}EA)a%< zbd|`BHKhzc~4ouotI>$WU~ zjITn?CsumEc?b}#sGF^4$TTdS(Q?NAk7?mhcG2|9^O@7JWU)w^gh`C1iR^tbry8(W+CMWF}}Riy<_^8{j_e2wAG7^et!ZiYSD&QgS@D zIPRa;&=z=2Nl#tr5!ksx4G{*o^=Me%ajYQfkO*Q}lt<1fFG9C6^5&pnsky z61NE*&`rCu{$E*k@>p0jUR;P&S=OuZSe~09sjsT&hDl9cD={X49Kum$h_fAvxtCFb zqaA#X#F6hVUShZw?yXyvT-DQ9CesgsVP#ynb{VI`pAYhZF(b3aFFn8n{2d#QKl~$^ z-$4Z!I-LU$+@g1@!$&9oWG8IQtF%MSG1K0?17XMS!Zd7$E&VJ>o3E{bR0=Pji@k_1 z%X3QL(=LAAPWit<7b)sfo3!gMfzpw*>K}|rw=-Pb8%dofM7S< zH_8`cbf(!$zGukyde#g|0{{fuI~5YGM9O6)thiQq~wW)m=-mDC;_we zoO}29+eveKnvDZ`<)Jc^(<6wtbe8m~1-26Sm!(l5m#x&pOF_ zW*VQdeAA`hr1^F!iq`j&!;HA0yr{JQ7i`kKU4@IMJq?^NJUFIKD+oI zSg4U|_2FuTL!L$R@bsKg-y$t^BQMGRMYTiop zkVPfj?W&*(8gX83kmOR`k!q*frp)?s;aa-sSTLJC?h+9LkTs+6bgvIG!% zJ}67dpa?KGEtk{=M$`)RydtWeS1ObOaQ~?q2sTDtfe;=`I{j0ATwxzia?$jYDZraB zH8*$b&C3|3BNfVaLYdH$BjcfVQc?(%^N&QG9cD+R3c*5}V6KB4Y~$p}CQdGE$xj~5 zUURTvgP%6FWC#_K8o)4=_9V>D6abdjPlqp0Qq4BZRsFf~u+E>9{a|sC8urJpcM773+@*5i&L(wu+-gAlyvMk6$=yJO3VkmYD zMe74)Qtt$`)l4Djnh{1+ELRB4+$^2a?UM z2!PZ*y0fY!(4!SQ0|LVLc zHmVzYVQ%P(U-M@vGO9r3?=>_`6|Xr=D5%f_IGQ;c&Op=9U#k!OK_3@Jra{cRCX5A* zRx!^JQ;g!VAggo;4!+8o3=*l$RY+3LeTE62kG&dnS{vDS{2pkf}}`nhmGM zw=(twJVK?`^nWQcN;@zq{e1icZ`<4M9dna+4@A-J9WOidGghm_hUV>cfFGIEUuihP zN));H{_A_eU%ou(A2wF3_F2q4S)LDe@4BWt=VoM+9AcFF2L;}iCl-u$61!lH*AR*r zqZtdd69Y-^OQP1>K+hgeR(g*rc3+Xm5l-*+BPFKzTs?s!0-wPqtT%ort#9=|K&|w8 z2HlDt+0DtDb{oI8>0cA(`7+ix;8SXoY}Q_xs2%&5N4nPT{ZHC>fbgi!OMia+(WDc|^E+9Ar!yZ2+Z5 zfp()Hue=>Q_BgLVPx$C%CDXbBz1)x31JD)IA3o|QJ4 zBud9yfY?8$r40QGeQ$MnF#ETc&XiGuzHcLXKK~%PmY?T+jzoXP)H&Upfqebs8SO(TzsIN$U%pME@q8BvOQpGt-(E> z#}$x;4PXL`m9Q%yRP+H+s7g7|K4%)YQ8A#G`Gf$#Le!wx_$lNzZS1&jzeDb#H`vy- z{`SDC)qa(3Vkp~})OJft$pK2q_>S`$iCKRc6_y}^Ff0SnK$(tU#>>NmUGYjx#0AuK z-REb=>HHJv&vBKCD5YR8MyL}Coo9V() zDb#70>g)dO22pha>W&RNr8O^TfQ4Y+cGnuPi~-EYgjX2T~XG$tPVi0N?b+lJ52 zGRJH*6S!(h#Dbv;)9a-M0Pq3HlJ$j2!dK`eM@oE6o|W~*BN-tL56~&uVbG|5K+vRr ziukFk=je!a>@X9H^(F`iFj?8F;KGoqxXl~S^UzW zH}Z5(BrOV2_`dJhbqFJ9!Ut^pjSk36d9pyx_tA{Y?^WtOHsIg6kGO*G*-=v8N)H)} z-dL68bvvMX!B_HpKOg8{*DK&}3g1W^OsYeGr#x0Vz2)QFaF+V5QytR;j_DLlj{SqL z>wwnsPGz*52T?lc!Wq=a(nl1t+Lbp-##OT}>{6OWCA8ULx-XOGx*Q@pri=n-DNB>b zuLiJ@3KF&Hp!nSqcT_B)|Lsu{Hz6yYe<5`57Qa4uY}LE8RCuc(T_?-cttA7wDe>*l z8T&sE{&~3wi;y%}`19Af@6W+IqxwDIx!$P|55_t*2s#Jb53>H?Lf+Njp=N0cT9p@G!EYmR#NdxepN&^+jr}oYjO2# zT)~!3UVj64m*s_pqChv|?2C)@U=_N^b$FTy;S3{tc;)+HLlcKj4NO8Z1s7!Yvfr+- z&C6Fdshy!3GnJ!y6!wGU_fyaNR-@grjS7$CbZ@f5LeE>9lb^hHhdX@Azg@l^)R5M& zQQDYpT+HFdeh1k89gLTeo)1Oii<~XQ#jm2fG23`~n$h8v=|Ka*3ea-xj{`|_eVmX- z_pH4AZ{9jKWb^s0=7@1%#a!WamcJsxysH6g7U`{L3b_+Z8z)n3?`>dmSC-ZLC8+;Oc zjofmWU-ZNX02ErZ^l234U+}zLio;EF-QN4I>hLrQ#4e5qhFs?&=jWwl=>#U+1DxcY zu3ED`Yj5jFKkHyF%_h|wS~*5fYuHwQDj8|Mofai;o}3zv_tS7&p}CA39`spMwe&Ah z1#Eb<;#%iGI*GMORcVb_#^DpDFrnkh<}sS#63TC)wxlwQ+zD$CX2xkXmW znf{;TpE62$T1rV;BZKb}&Ks8>99;U%9@SZ>cC<*{-bqLR0WxLbBB1}ne-snHf}rJJ zMOGc>i*2l_?{t(lAv!sIcyH^Ly}Bp>z$Xg=QxAhjc4*>m?1BKw$nSwWTiF7s$uN(d z$x1}K5l(8!I1;{2dkk>6Ksh7x5?5q@l0$!zp((I3l>TVsHDf>XHsda)(y4{{FJYm3 zT;j&69FkV8qGnGL?wO@rTS;#XQT*9k_+lTV``UK6pj9Uu*_w&dlGf@Cy#&8-%I$2Y zKh!UtR4s-kW_WjmnZK_GIGJX6&jB!v;u^|uhU!CbELo%9-z@-$f+;3ZKCJz|Ej^r7HaVfQ13CX&@}~i*1{DhrR-fU&x8ZoCk?cVCwHh2 za|me=M{;TSX}UJ=0^GLNc8|Bw=h}!xR(vocFM2U9DZ*cyT2p0dcq_|W5Pkd=Lnx6r zXU2dr>*Pjc-N&G^1P#Z05ne-~`tDped)VA}R>~k<41?U#C8bE6^Mm_kB}OB$y5fR1 z%{!E@L=(l_<6+%(4~%$L7X3D8EtdpKfNeQQ#UtCiFPD;VH9yJeQ~2Z9`poXz8GS|K z)FG;Y;TWuEQ`X^xt+K;GaQ6^AP_G`Dm-{4ulz-so{LXw=(NKa8%CoUxI(7GM(Y5#A z3;d-Wx9utW{L*`1A;|yM?AcVZMi{&(nIpJ8?)wlyW*cL&ZRZ^OQ}|aH7?>Fu8I>h$nWp2xOc_9L?x0zeQKp2dHwpIbE#&kmdQeBVf=gq};{ zIC2lQ9&aFkQwF$)w!GhZ>sHrR{yjtePSvx`2okXfVUl{%IckDM4^}jmm`s^!pc}fu zh8vD*RzO$p_%DBBk!E*X00A@jT*CSnesv?KekgRQkfwEkc4lsq#R z8=evgg5`;r3{5U#dgD2%8SXwF38d^sD#vLXu4E9Xg6&4}b>4bi^6P;OUhP(SF)?n# zdIgSLHrT#@JezeA!}*&jxOEe>J0k6EB%h!*ssp`UFP>(#fSH~6;i!-FclfA|pN}ZtgXFb&rR2X0C^ZEtX!FoR9|A7<>E>A$okZZ2p1Ii!$%=-nnQ6)5C{pQso+cT9_hT7DE1`oeZsVgF0Zc7V*4n zxyucV>KxwWsQcmq!0(xp+tY!SL=tKNgNGNBQ^RxBluzii$CyWn3_4H_yZYe&ebS=q z{IwyMpDx`z=S7F+iy+tD#TZ6Yo>*Q_vH;?P?vQ97P^bwaejqV1lrS@fNyp#r%RXsd zWO;$T?{>Xj@Hw^3RhfVFPTu7*)=kk)pgW43UVQ+02>L#co38R4>{ZXHQ77oxu*DXi z7$9di3yejhL^BIEbOcBDt~-5EWnqGA4&xltJa%fJ%>e5e>iF}H8ZB+Y>eND^69Usd z1LSr|Gq9!u#zLBto)LEpp+$O9XQsi1vtk7bF>aHZsH5RvzhdJdmRqC_q^KvjL=>@Z zTg-SMcK5s0i-cq)G)Pyu1o4Q8zQ&?%lV}dZLsE~W3K`-~CC@YT1lA(dq8SSf3!`Wb zA|}EY>x*YoW(QI-_WHqs_x`YLcWqxE{uEwa2M*31->)PRuBgG)o6@vVIGz_xQiwpm zz(VJ=vUm#>J4BjEXbQ9k*SfP`UVUGWpx;h~9@7Mu&(cp5Yri^m>T`F|HQXaQkEjY3 z&Ib$f|M%!)S3@!4ng(m_-H%*w>n1MJXX1I!EE;@A2!|}qc#BBcrsz-GD+PjDiGPkvy5<~@ z6o?DbIcC6K8PqjS3L06DiDYSXWA3!sCpnZQ!B{Py6?I}aH0lFQfWSuwr9Sr zFcuPufvKbZLX&m4=RtAwKv`M?nMu z{k7HCp_jqyP5bTqlXIdq*w9@lkbF>YDqaTSBQ;luplUob(bim+C`Q2jjxn6}ra;VE zmIP>2TC>9{yE8@nxn${1@Vq^05jWvO^P|Lf)LI7)z=SIRra6{7+&0^qV#O#*f;YGO zB+Mi8U6FRF3OfZNv<{(dEdi9ysnkjL^~{d+w|Ox@B#m;-Z;?Dno%I>C`8+sny;{X% z#vX?0hAPbk-v6Ev1!xEX{oS;)00DbO~UR2sg$YYZQRkc{sR71-+ua-HV0uQZP!IzFh;zm}L zxs~bcpe=o8PNEZ0KN;4^v=g`L@IB1!BY*s9r}%`v6mhXQ28~Al6=me}Xqye{qR9~h zyUOB%3Ihj^!|E6UL$yFf97kl3LWLHWi>6@l<@OWa^#}4Lkvl;=keyM8n5Utk z6rBuNY00M|CmREvr{j>9HFE|!gMkA?!DC(Rvl;wS$3#K-0|AuLMl(`~N!j2(tUVt2 zCY3nPCYmJasbf@h{Yb_zgrPl4P*+RmELITvZR$y!cF#@f_Bt=X|IlxfUO{m-B8STE z>YOuP{FxuJ-g-TI`F>`0J`Z1_*1J>b6uThi%%N}&P_4y;!U#RUSaI;hCTP_D3Pu=z zyxKyvln2a~U1>3F1S0NAeCk{xu9`FG1|uf-wXxWs;nSA9PA@oVLEu}{CD|nXNN&Xz z(xNqh5du^8hN`bYV@Od#h}SGDPdcfqvt}FUoze0IBi?bkX8sCyVA9akQ1^YoFA}_4+*@+Wlyp>@1TVRu z9xxB^#?jcmwUBS%;YKKiE@#^~{bR=Evv1sj$C=9YQ@ua4Yr}D;BvxzqTC*_gcVExp zoRf);dYS?=rJbT~JQn4K4`7&#RPx_255t`GM0^%5zo-75+4c(9>6(+SC@R2Q9}Gy{ zFGo42Y(o0ey?eR;By=2kWg;rAQ+3eki>Dr}CVY^*0u{JB_`0j@0UDa<;T% z96B90!2j*5c?a+9nG@{f^Lz2E@5yhyC2t;xdX^k#7h3p905rHHh=zCGVf&X>S9Xg;tarSQlW8C~n}mRYfYZ#bn4zEhr}vnU4OqwwVEAwPqx|tj-%Ye?0rcA;(D{jPVb! zyF`fN5`}m3em>A%p|mNhp~~wbGL=R0-#gsBe{fO&x;H^!VvXWR5r_u zL`}5ycvR>CTCgoPXCv7Y47a5)ZkmY)y|1FBgol0Q{GlxZ%r;a?eDfs8S}4w(u%~)H zX$B#Wv0w|ynHC6r$9=qRFJbFY{@Z@`9ujWrBzs$7&jJ~L8#+LeaZ=pC3+cuO7n&Sf zC=8$93wPpu=4vU``%iD4yZz7yJeb6!dfdIvyy$#pNi79CR|A<_uTcB<&EWWM-wTn~ zc(q}B-wUW-FTHVBl@*dSFr6~Mz3q-_tSsptOJZ=taf>Bk_bge=3N*>s3FbH0qL$Ja zl5BgzhTlR{HKaf0M@R};VAA8IEeXT-uyZ04Q+tFIF}E6GoO+UlM-s!RUH!BJcNLIq zJI1aM@dq4OhvhMXY5@N6^Pd}$Cdy&NR}v%u=32O-EsW8TR_@r#ExM?jS}^cj>^Cgp zb$H&ASsx$!CW=j7K7DrS&7P8n78#B)-E<|>+TC zt4lLvK=nAubMhyqC;gdHV&lU;=DZMb5rbIqJ%vUQ7y}oU{~#EcxAx}zQX>m>Sdp7Q z-lLd0(k7LDW1wU(D-@vlci_m$1oe7>!da`|gtN$7jkW|`K&c@%K3f1t&8k*MJ*^$D z*Ys#z)4)fG{KwzD>}Wc#5m<{cqLSMakS}G8Bm@!>n!8h2Reprf`H`&t_5sk!1#PJ= zp%_bu9kvoGY<_DF8*BwYT6fP!=53mF&|5>JuB^fyt|^@icCBXhA)G2|!oK}$dhfq2 ze-ESrzSY}tA@SOwpQ_XJi;wGz8csNXqi?wQChFflO~SO?uMKYW#y9eAX~h6qj2;1* zek2KJY3QLLr-j<3H6sTVVt=~p%}9=#2*arBk>TyDx241qm(j)`lG;yXm+KO-MIq6e zpv7s5cL7_8Ct`|Sn~*>MWn`V#GmCyoX6~EHCZrNi&CixKx!>yg_M`KZBvcmUFKM_T zc>uP8wCQUfrzE*h22x@pZZZ%dc!RiVqdNURu=ufgjDzy|=AsQKY#o#_MjP;jwZ?ezoiuP>3(SE|C>iq}8cv{L}W+W2B6P1||Z}o?D!BYSC=e^vabZX%!vfW9Z>C z&g-D21y(8eOAz-ENBmZ7BEyWVAL~)+Je}}*&`tY9e+9oTb!O3CHeGo7IQ9ssD{4dXagH9K)fPfF}gLPa}rH=F(hRnjz9AZp*lVM4M@Q#{m2tsEF}zGd}9<8XK#>A zDMETkUXO8q&L&`bh{3r#?M~RdKYpM(tE_|z=*%I`&t#apMyx;vWk z*+OGy$m8MWGc+ULBXdX@m4u8uC{?+E$3XW_j!>`fDrq6p10|1l%gHbp6ac{XKkSP3 z-_D4yimd%_pltVtx{Um#1mXTt@FD^g5(v10NL0K4gzdlj?g70&>#kdINA^!c)&9}- ztBh_H&q${3J6)a+ZX*RO5MY*nNX&9e?`;Lqt^*mALh?g_hg6OTSa#ORQ@K+lDxs$L z;IjU93mLzJYZwJyromW*saD=S+rG_#aYQE&-PE|mD5$2O^Xxk$aH5@CN8>4{WEH`T{->DhdK(NK27Vb^cKj$DodxPw#gWd{ffG z?E84mV}~-B9!}|xB0sm^%S{>(!iKiZV*uBbH1+;|EyOHTf%(>i#&VVWFv>)YSO{Xo zO&O_ZG~cnzWGJNfVq`qH)~0Qw%kVcAeQN|Ezat!1G}rI<+eK#?S0HB#h33F#-3ER! zl3w_kMwK?RxkI~Oz!*dAw4t#AKE1_NO)m(G&Wp5F_9EI-V0YkH!N*|83oc{mlvX@G z7|#5h;7Ua4zKDFF1e-qgP+%JLO59-#?9c(cw8OHea zrThjEg6;N(+2gC}tNpzg6pF@<#Fy)P<(Ni3dB^xVO3#v4cdoncdDvsWY#XFGW7>os z-JAmvUZK0!JmCmmMyJck9vm0#3u)Zj%GyJ5PDaE07FONE3cCj%B7`nynAWQjvfk$|eE7 zNkrR*R7qMfL7BJ@&nRv#>ygYm5m(7iS~g15J&+G37)?BT-{;{V{f}usffOh5`|Vvn z;H*_ASBMlq?k;&3+M_Ec4X$}Cr9uuN7V`t!9Zi#rO)!zdk z_rsv!(YV$l(gv^o3S^4(o|?S00xLr0Of;LkeW6H7_4Q24UydarH|$alg0oNDr#WRm zKUKC2omuZlei%ej6pmsHM8>Q{iesC#n}B!Zyl|PVO?Na&fzBQ6B1g55R~kPJN!uI( zIbag`TKPv(s<8EM5#X=$2aNMPi&pRF^WVDZ&HcR@EzU6cPK(3zNhSz|H&rMZa>hu! ztVFM~AE|i~lhob~|4)$hbaGjlkgtCIqwau*+lp-0LvYLzZ{1?@^uDa71z$HYq8OGk zSjDNG<-$?LSd$E538;<Z&x2`q8-K9cnR7*t%dInVK@{`so*Cb}T`v%G_ACE5R z8rOt6Z6BwMp2>BOdK%+fXdEnToB>Ll6X~A84>hsjZ;Ey!$4ludDRr4C7bd;O&GoFe zcE|}GLn-!&gePfx_W0HEt}Jt9%#`8tj_4Ga2P4sxV!8TAWI|AFP{B@1rz(G%ej2lh zmG!kizRwwtWQO?}#D^d`CA2v7%iv;I-`3^bBqeJ~zUv~n?!Ug~lypjX-MI9(ZP)+zN@aC zZAPV7BqSkF)-W=jnMMN!8ZLXOjThzFaolumdoQ<}fkM=8XqW{`hOUd~Oexb&?Zr}Z zt_>y~0|8MMv6%Kkt&O6-#O-Uuy$AK<*gtp-(|O*3%s3%?usQkoe0Msd!x6ZOtg{dO z*rG+Jk6^+M<8yZ(!Ux=idIDl{;fDdS+4BJZ3^23n@Z&e+3eE%4XE-Cm(zrb!M{-KP#6L%W}lf!uZ9YpAZnN_5j5n_fG$F%zad4d2g z8!i4eY+AyrdNybVujGX(3%pnj|H5JldIBnxnSF?!qTU7Gy=)>+aSd_w{FpSZa^6*> z$jAL^uD#oG&(CecQ{b5yvsxXN7ODP~JsQdn&CN8wS$NrmfaChoyA6+9tt*{2K=<5S zE`E>n{O@V_Uz6<1y)^%5FX-WvrKmg}%SgdqxIuWHZZ&N6U8r~78CnQH)8~6NI=GPZE*GdfKyq-cY7<{;1T^$;E zjA_c{#TO~M${knL>oLD^T$NtiM;s#3U8IAhw_PFKUiB()_%r$fkCWKD+; z;+{}smF)#GYc5dL8K*Q7Hn|ataYyTAS32%Ax)EdCDtX~%J5J;rPU+lN-MJSVYuXoU z%rDVL0076IXJ^_nk%zfUsx7#k`Q2s@;nEFXS{3Z7LSnR*)?COiGPjw!Z3!D z>}xairYmM}r#*viv8QIXqzG`+y6mj1#bzcZ3bi`z_r2-4xpJ;fy!}2fsp9TQ)^ZD_O#KrFZxc?oN#1R5|rI5S-bg9P(i9*mKBq92jP3ri( zQLt|A$9jZ-C-e%l&++PnkCW$nGFLS{D+FT5Gtj?#_eKggvl03E_of*l%fIiY)Fzkq z(t9t^;U4`p_wdLjWB1}i{p~ARf6?GQYWKtW$>1GycK~AZJF4e&jqCDKIr|mZXZCK0 zyvK6i>J|P`{$qshbc!OFto%>8aGfmj6`{Lk(p0@EdS)a`IuE;1@= z@$=Ku*J#(Nwt=DHo%gr?)Vp4|!@bAM2eLRuM5VKWqLXU-r(P=G}#p4Sir+xyjktpX%?< zp3$FyQ0VgD;NafN-R0#c?-9dQ8(g18SX&xD$T&RS_c`^R!mhve=l=LfadB}Q8yoNV zJ(j+Mb91-eKC@4~wXwbOZ|!&K85wVct*^08CnLKzBYCrTi+8WMhgZfk!}wS|82-IO zaifRs(XDZu=>C>}eWAaJ)jzOmbvwnb&d=X+@7TmQTIIk#?R{Qe)KyiVtasDt?-p<9 zVTJZu+xz2^UwDhA9r@UQ{_f9a`%nMp;a9ako9REhKRd;La%+B~kAFBj!OuUOm*W2u z?0*aY4Ijh?sVH;?!KX!@{8QUulI?08J%_pv8)6J0ZvIoE%be*OcGp{RwAmjshxOSa zrwi@3_|bebyY{b<1-o*c>Dxkr5C**Wnp=)q`W=35n*H+fH>Bo^a(6m)`bB?1F6)xz z6WzsMDii)ezbuQ*9zvMo0o)?*aH?uHFQ>7NSmp=V)qmnq6PCY%_eFk*PdpQ>wI*kLe$Fa~5ItH}u(8GK;MKWW6UM+ZSk)UxaKUR&U5{Z@@?` z<0tfnr8)G@59p(B%uRpqte{VHcyB-pzAdoaZH%{1Vqzlxif60c_WPuznb~u-^{{PY z=BdF`^$i^nkV? z-`l-@`b9Zydv*qf*BwR$@b8?5ubqu`^YYSC@tn-echdJ>L-~7WoUCQLN8lFx^wiYn z#SMRlIMZ0?_GkF@$%zRia4;}GDSr`>p*XA38LQcE$Pak$dw!@5KYZKW8}iTDYR69p zOdcMdrIV8r{DofMUyd@*$Nu{ce+)m8yyZvqE+&0%(a*^2#m|n%d+^=8bJ5cmK3*^W zgZIHX{K({NLdo_kddidR-6Q$oacQ=8+~+x?z+vmqVqSC_zBA6JH|SLmHnEaD#j-Q>f|?>?kNPEPJ`+Eo-pe|po~1*@W>Quh7*-P>{9 z+vF!Sxa<2B3ATZ?t?&9Z_m6tx^wwRkw|M`i$4?H}c6P6}!T*lgo56qetB~_E=jDbE z%vSy(ZiD}8-q})raM$za-B==6-``K*0{*wiEX?UG9yE|%>mRUJ_GUSI?>MKbix-?0 z+8>yk8kwD~aen`|{`uz=|10><9{%V5EBO9hIPoc&N6n0o^mu+vSXh^7%hF;?lfR~X zEqG}y^M0P0m$d+xDMU>_%i+5nI}V$ftoYyP5WoVsJ8)-x_F_W#P$Efl&gu#QAYUK$ zST4hNxd7opVI5qld}VsvBQ!e~%69c`Fq5wwt6G;s?x}4OOls*OII3zX(A!C_tCXp}cjI)FKhOX1n8?Q;QK)n|mgTFNy%8m;r_ThKeX(D?&Hp^7Xe7 zPwC_W#-O3_bw+dVA5E{^@)9rA346nc;8XS(BZXt_JNHX6RqXwx zNLBZXM8ClUhUx?10w^HWfQsAJ2Dc|=R$SUwTd@G_r%*Yo57W*^rb#Y7`Xac7qrdKE z9!|PuQbRc$FpO&|GlV>lUezG;q;#jl)r)?ViC*tp#@rDiH`*KB8x&L`<7Gh~6|o80 zh2PA#vAgW5M0xCgTw)EghE~B24 zZ0ZVN6O}J80lpV)SgXp%D`4+FGQ+_yVWtgio{*w)m6UNfDh_eny9H>U3hlpiS&FY` zkVnSeT)RM26$iv2FRG~$X|=!dww0M!(~J8qoz7IIViqF>!MSS9u1yxHRfvakB#yR= zBiopS;TN>*?%jv6(H_4Hx>QWaX4npX!;qC)Boa5AFv>kAk9u1^Q;En7Iitl0Rjp0@ zoBVypwx*rcXobl|WhKZgPmBf^W{fL>6?^5nI>g&2{IIekDNxUd+0!dOW$5~%T8&e+ z5y(U#A3MkIj;4!|R)74pD70dl5T#l)m{DM*(xr~3d`{^KY=5wjrKLm@I;wJ+ZnxNL z8hVZdM|(wW5-#h^HCT;N2i+5+gb}5uFLi6XSsG8efs~lv?jY zr1CU=f|T|xWKsDqT+&#~8R zd)><0WuT|hoB{Yoq1}tzMN=tK5d1LN3yqx=e_OW!s$zh~YJi2|sTO^d$2rLTi9UE+ z4Fu+q0lBR$|KFD4qiii!tufy|XqB?`WlOi-cP>4dtc_kR;WrsqQ$SQJ#OyOpQm0Zo zpR5xo8GG!S@amkU^ldXUFulReRz78Ygxh!+xHU%O(AutNl{+e!4u|VmlErZoUq4u z;>Fgebr6(<9*u2zGrcX5RnUkVQEQb(k@v!MD&2~N67dgn#e*&*6?-D8fl`b<4?;UsDqq?6Kz+|{1(Xas5oG8Wu@#M6Qm*;B z0!i;II$dgz*J(_e*YcUt9ic}P(qTG2KvZR}*`Pq+7aWJnQ-T(bf>l+Drh8|7F{8+|49t91`c3 zNdiK#%z^CGpvBoC6J*uM`i;?Ij}Ak|5G<<=pA@=@=r~cgv7`cH#_knTmTU?~cmy&M z-iawt6zx7^*&iZn95hFtb_20-dq=n++|XI}Zxo&+Xnfpa>v@X_+Uhh8V3FUpSdq$`Ua zY~vbGC=EY1NmS79h)W1Z`&`=lqQF>=fE1;4t`m|(5^_&>VXeNcLGbk0u>N#n=SD}0 zW;33-czwHDnQ5fb(GJNCQbCh0=1oKuoq$F@<2mY+^2_ou_6xYC4p00cgF{h7BVvt3 z9;R6xx0{1$I`pI(sV2wt($kILw-V4_9sVp=H&=C3H}2A3x++ z4olnC37HOx9~MQvc@@RhYS68ut|51`K)cPuw$hL?vmj%KMVjHhH=Y~<`qDZ)whb{c zMoZU{@2!Aq|JOcIN=IB$%;!2a{o^>0D6_D%6ccbBvGD05E2ts}lHq$5F|fb2C)_o;Xwtnh;w$S$sjPgH z1s_F==ec^s(B+%+6Foe_WeYY!Bs#_jN!s9YGqb||og}W>*I-R2KMX1e2>oW1BB#G| zw*^Kd|MV_eU8MWeN`$VZpVH3LOk=;>xmui!R7tn~QnE}FAl)Q?XhKV6 z4E4rs=h z``RhT*;DFvUOGp-_-@t-PY@iSTG;*mklb(Vpqi6RL}vU)5g2oCkh<=S9V6!Oh>!j3 zaT0F@t~gq@>0Ui~CikH1r>(2`lQteE*O?g(JPpSr()tbpf&=!^eCbC+ETc@<0$X76 zP%M4B?OjW%Y(9%p8yR~%*59kzw%r+7^YhJ(hkbS})d1Yl57iQCm9tk6HLFt&jFLFA zkqs3~A=)9W(DvBEq!Rm)|Z+`cF7`z|Xz*E+mnR@z;eh8ahXzxqoF3kW9Lpjdyt zl2ZD(2Jar5>Q&zsQO}8kb8@ZWycz7PP6j)ps%LaJ3B(y-Sq7M0;$U_RglbBedM%=N zn;=+Zue~9xXggNcZ{%f-xP8P4{}kP;M{SH4Q!3NbzDTivLC`xIOO~F6pUT1V zROzMr`fX#lmwse+zMP{fTGENV&Y5@P&bZk6tXHC3!8aW1w8zB~)ZT4FdC|FMlE2E1 zU6)_!Eu5hePdtlhgY*Uv`6vURF=O4ZLXYKLPhN6lu^MvoT=na`xNw%!j9P)0ZCkNz z9Ie{k1k+s>l*68?H>r`xU*QVC=S<)bwKU?`7)zv9I+|Orb92&3Sg%seaHC4PRg&Ys zLyNiCRf=W0rp$g|ksLu;jFi<8ECM zFS_td;?{0jJ$hxhhq8KxE9fU9_o4g@B6J_QzM)qHB+ON$e3H)%pnBWjkw47}%6*Ef zQ{CLX=EdtwK%Hgb?~68Xb{j%_op90ja|h$>uU&#OxnS$kSB4>lMYpk$f?%0res$Hi0u{pmn1M3a!m?5=Ges>y8o zGyK|=S*0qMxaI?Y0(rdFx?_)y{-h$!XGTgdId(>J$oTfL^Tf+ltd)9M`W<52?v{5I zShF-*vdtMp6R{m9Y$fosR^aaSfOMTi45Er0f$;3IWt!5}_3V)~^!e$N;<}URmCh}= z4jCHw9M7#4I4s~fdEvuy#Agz?-Rvk*UR)zLh>CX1Tv4r7 znR24yh|l&PiE|W}M&n;bA0kUmr9WNi88Pg-hd?dusf8NWLYxt-r+Olw?Yd-0^g7zH zUBIrL9d?n^C$?=n7Xh;S&`vn3#w|yr%|LHL$NjkDkY$@H`$z?ZL?=&YEV5G@pC1{1 z!Q7cEJRuzlOjuOMAr|z3Rp8yYrZ_Qzm&e?1G1f+G{m5iiK@L;7VU5rvt(1sPLmH4P z;M*=pSaNn2J+@W(>j$M4H=1B%atwN2bd^W1zu`uc3vT*_FJhj7uZc5!^}nV>LL}mS z%F?=%P-|_kgxt}rvna~68yepwR&G6Q`^ z|DvGQNe>&_kMIU`)k~;bXba~~=Y@5;0;RysVoM6R&UGr(WpT5+0Gtv%YGpncTO9^7 zUSsZasHaQij&kZ(20x>nH~Jc9~H1HUND*8?3}KFPzE*C zQ(oB;8zqy@d1yk7*cbQmq^gefz=P|2`fHQndB9ja4?cX1A0Q@vq@4d;!Y3g0gfcw0 zD<*mR&N!aMs3q{devb-v@Q(R3N_52wSFrGwy1lHOzuShpBsrWLz2YHKCtg&KR5J%6 zFH6CG`@%3t7-A9N;^3L39mkdTDut-lllX79_>hP7x#zy=JvK7F^v?w72+|u&d z4h{`ik`$5FQm$wfK}vd=EhvL}x-m%TCu)Fy5c>Th9b1(Wl7OSi8%nYEnlRfBR#}KiE#XGWKKO zP;sJQ!@QBii0-nU>e7LQbEc!%bXI-YnRm@h7o2{EB=$)&xviKqK#jND(h^%^0*-6E zr<+OH2Kz4wVWi8Zs>@YhTxf2pDr$E4UfGsP)>^?+P(2LnAIX^&;@Ah^(}3xZ~woj@>Ov=5{%vMfFMm|8md)*zTAVOIvurbz&JNqs?bg6fWT2?$kazfiLxiW!`-G= z^;lZ4SK*G;>sMCcNcvQ(Fui3`3ke#*Y@I#JYyaaqliK!fLfw-`8%2?kTz(2eXI= zX(#A-rr#Hb5mcuC8QggM{?G`-?fA0;P%SiOIkEGNgKLzNLM_n{;gwD)it-mmF}NdZ zNs#0_(?*pmshBu>@3gQ3euilBDdYx;&_M9yulS%^dbe*+szlp(}6iL7) zU9@k8tIP!acHR=S%b4*g!vZ#1w;|@E5k*+W`>nY0+M+SNft*`FgU@VvMO`s&!aE1{ zaU?tF_u~=v(P=zfRoAmV41{L_+Ne-t=G_1NJrS zIs6=%?vHS<*)QvWMMt?o?=-pN@RyMp&{a zhb5l@U#xX}n2MO+4q=Zw=2pBWVX?-Jnt?S-2Jd!F=b*8x`!){3UU`y4&gZEA_O>~%c|scBhJBX;+IgAoymc$ND_gh zz)_k|&ov8Yf2ndDNth9f%1brV9z8e{j#73MffAz5XF_7w2OFwHL2JuV@$ewsG^Nc1 zmXuP^I6{m~(ztp7OYWaW-Ldg%WMx_9&361Bt11qCmo)yQ8{QY!MHMt}xOryvJ{9Y2!edtlz+O7-uR2;IVxvzLM^aOS{oRsxi_ z4a#KaP3Fw?kYioL0!OS8XXsrLPKfrB%UNtAyA{U|zP~N9jiX93I${uFXRwls(dVkO7UT6_J_{JIniIw}UhDIr0Wn`S%o}mFz35;a0E( z(A?cr?&of}m3_-*`dwHzFL_O#78~9$w2_~7uUeUKtnLtDrFRZJ`@9^Kqe<>=aw}NJ zwz>osU?>IaCZ4vJZ5_R4n3xINF65a|c2P3n+)|N->>&phCn6D&DN%FOYdBfae~E z=-Z-8nc);)oSP^j=41((zx2KGIk?X?k87k>&(n7!^o7K#e zoc%I+>cw4nvTcdU_yz$BRxo&rm&7^7N8S+3rR*pSiS)NFrLMM6b-RwjIol8y5RVhq z5yUY&H#w@RRJds`m^4_S;?C3;DCELZLZsgX@ABrr9f=~waMZXGRuM!_Hejqtk=N5V z&c9HE_AzXWeLzJUWbkq9KlSvQEXx!|aC|wLy?x{S#e#qucH?J9+Fg+y5|N+N}Aa)QdN9#;Tao<|Q4LMo&w0gb?Su z{cbG2oW!VFCDtX6edYpIs}>b%A6>iz*L+KKzsIdeRIE5W$vneGaW1dKs3`z0$!p5w z(P;-%AbX*hja*o+G$uFYq=n+J6CZX@Hmb6xwN3O$F$>Ge*P>913kXAsTOPLf{w=9% zF!5G-t1T>%ZN702#|74YX04q@e)nV7my*}Ft+NQ-3S8BJ;<@Rn=aSb>5;fbV_Y!WS z1cOK+Fn1-ss)jYn=^#;A=I{YX1s$-8BAd-UKBAgD^fpR$P}8J48RW|CBeCMRVkScQ(Z84}2dd!P*Y$)9B0iFINa zC`OGYCenKW$;~7(L3=7ShY*4*SVh_L;@uOXJ*>+T>jc|qObby+Q3vQ=QQ)vAn)8?p zX!|pFBFt3i_6h^p0MdmFLYx3)>Rl4*fO=M$fFC^ZjJwGE%FCN+f)s&bKSv4DI!INc zHYmS&8GE0&JSTKbiTsY+mVOzk2kXT0tR40y@76b_KLEItqZpt>eRsAj0m_NUtqjra zaHdl@P#AOlZ7*tQRfQ@XM}Tl!IM}hiY@W;JQO8$HGd>`MM~!xmY{ulydnHKTM+^sS zxa${jm(QTwif^(}_Vy=UpInAJ5{eRpLqivFu34HmDd)c2eZG=_3uG`QNb%K*J6q5{ zCF;XT;j)|EGIKfAS=X{`!MO;O3kSZ809oUTCEm53Tuo)j!cew}Oaj9Q&}XYjYn>;Y%1m4rbv=pto87j0A$$_)wvP-ZmJv}>fsdwP+OsIVE-DXNbX5e`V(ma zHZ2<(MU-u=tfVd|+ogC~EQm|#NSrt6blv#Op>Z>#Uo^xnu9q}zjs1ld)@ih?sbYj} zCsdQT(S=hXNDdXsIURz`z5HnA3Bwd4wCaYcFaf%UV@F%v291B~7;OB}z>uRx&Fw9R zgD|!`c%$}0o)zvORFF9mu9pEjVH5qA9X2#3as1JzJUm1A3xe!p3XRgR$zlKaqI7iM zd!Ed%?O#vqX-fD7B^tb~vmSVybx%u9!$1t(=M+{pX{FMNZTdMu>7tcj?anxjrO8Y+ zK4cHD%MkW32&BsP}){ND33S9|9LUH6y8;kSvpBJ zP58pk#*>|KTQp&;Lg?^>PH~}}4Fc8GC;xVYIW!4?uo%iATe{u0RwaDAyuwDv+ar1* zcp~#$5?9%%<7x`Z^Iq85ABy7r&4Xt8N7nw0a=1Q{-(I>zIkJ|rGuCuqMR#$GciFNq znvKFf>isWIO$F9Qps20tgTdN4S>oB%GH5`RY_ul}Z4S37hc%&+ajYw+3EE*y;7Mw4 zVbHYzvr;Mp2JLR1YDyOo?BK1_XHW)1SYbu;6m1`lF_2Cd&DV`~HtC5M)ojvx_5E;~ zw8XM^cJghv3j| z(Z;t?B%6(~1g~JRloktuBUIKj5NmvM&Yozku{k)hQrGNxfL51SNsZ-%#g(zmy&#dpx6@yg=CI_0rNd8G<)7h|iwdJ1 zg#%#*$=M_0ev_C-X*Ks6r%ZS%Oy?PYnrFb8N#961K%PoHW%$juLdpM={?hgPn<81Gg$3%CUcv~$lpHz3{)4e;9o?-3 z_rRQ|qgH6LpM8AUk9jtOk7FdS+w3~%(BZ}HO9JXsi++0f*!(F>6z21A1ty)6GvCV# zohWj@vd8|GrPb^8xiP5XzEl`Ojv( z?Phlaq}>Do(q0cJf`FDNiwPyV6t(uoU7!!qN9beRx4y|e$qgx4mL;y64+Z++j6hk9 z$l-5he#05EU*r^poY746pP!ttbS0!hTLj{(P%)9cQ$*2c`rZ769#Jesiu#h0P*166 zaIs`r{n;51GdI@oZ(-!= z8QPv86oO`je#%R5X6X{{GsN<@G>cfae2?ZWGfvGwFeZZqSVp6>=M7znSidECz7{fi zhH|RjH3XHeQcFyDPGM?2_nyjJqntNwbSmk7iABM9bfcX(2N^;uDMFg(4$bbJH@E-( z{=?fJUfjL9{_x_5S9dobZmzz+MZf%FMrL%4^u*IMM~OQT5>EB&J0-!+(|$zp&29e~ z1R)|1=cw=Fh%K1{Nh&gx97rB0ks!#5lu8!%(PL?dq^gh^IyK8(MC=|&0k*#(DV_IH zmf-~Fp`eXYC;E9P{AJ{GxR@dI8^wbt+eS(@Vz_)H~A z7kJ!I04fr%sX@_=!b5-;gP-t1@ThkQR9h5bg8uvKZ|EH;$<{=IwLen+IiW1Q7$jZ; z(f}}Bo_ra^3KaOwa}QCqX035taPXP&UY_n+sMkt z=DIl~3B?aMXu&J}(3XLelLh4{Q7L~ZTBIvZ6(|sKY@6Su9i;S7lhp4dtMTHfK{&|Qnwy8jiA7lC=XH`76bH3b z6pF*{i!+hYUC3el$!W<@L~3r?f?wyp$^oneCx^;(HsNxz7YtEx!+ zwS=rnPnT0qbFj6INXm&~_tdKXNy3(tt!=W7C`o&KjG^teSyj>3sIQIhBPc+-$^C9{ z^zR6*+r)t@##_^Se-T3cjdW-A3(A$T85y34K*T0KJp_Is;4p^@oU|(5e*PMl) z=3D5(=9ldr>Gbs8i2reaW{;^Ni&x;x&3ubJ`v@W#!G_&k=IorJyR8M4OPU!T)nbx; zrc6uisv8_2i(K#m0?9Hk0V)xMnJp6q{~KPIqJ7Xu>?5vYn+Sk#zL!m1*XA#q{}F22 zb!r_2k;?CvXp{0RpZ5}_R_BAkdcAhmLr2Kvz;|7D03!~zoCF7G4P_O@jC05fAYBjL zGrE2uHuIi~T;z}7Uk~L}m8e?+jOy!M99bP^zM>P-FM%5xnTUd$7qd7h8FS%^o@Xfj1Eo;v<`ihXA` z8seD~z;i-o&TN9r!%T33@emIk*Po?X#P#rO9BdH`HK8o~L!*`5yAUo;`C-Aauy>AI~5c{*R~xe)Q{DLyPL7^2PPw z@6ShE_?JQOol!6a6xTy%VhE#S4YcuxNP{~<1{jPz$DfQK@@_D}f#Z%xAlrS@^Cp%Q z@bToBWyi>2+Y&DZS4GB%#$*qof&6V3K9R~_aat~94 zmO;l!>V~jG-Hxu7TgVZgbW^NMA>Gon7W!9pQMIk^rXI~L$F{zhdOYU&($)1{&p==H zlyCLWv*#y|C;tO8<%)2<8F-vkkIhcQFc5_Ad5YnbV2ZPLv@p(`g&JYDr0+=GBF8q6rvMU=?mPhofZweM{+-84r89P%f^)R z6WOPBO&7VzUi3i!(%HD=&YDd)D;$rIX!3M*m!8yeDt-Z;zKDRJ1$dk@G%zqTF;Q^L zD@ZIZF3n4iH`L2bVVJf?Jk5VcRo%9)WgnWliY2_7HweLtp`_Uwp8W<0LNP)LAN7#oSjlJZo@DP-2DmyUfLr0K(`o4mJBJHen5`S zwi=l>L@5FCo<1X6K32+33v}%!@W{L4QDs@uibo@oxTWTP3uGM#j<4_xrtSUK1;xNc z1xHp(i6ep>I|u9CvHR0RGI&4DyB4%@9K-!fUl+8EQG{QM7pj%$FtE}$k3n*Mk6C&G z$atZB{fSeg^AK9p;02wO7PLxoF`d^slVOXXs&lJ8uF2~zYIatsHv8ql#cP&GY^T}> zjvYJouYzj_mN*gra4fg*Hj4`KYEO#T+*wiW;p#}%2u(d62+#izsvs#B8zm`!tT8xs-}w(r^XHQQ!dyrbFc-P$C2 zPanJWnw>wx$(SZ|Bmd^R=LL0sL7!ch+KGmh?UQ_%Y)rJ^Kr>#N&ZQ}RkmOIi;2|7U zwoJrP5wfk=g3~&5z5-ue+?d*t>Eb@Tr|aF1$^pwt;QF)T4eoyBs&l(- z;Qeh~p0~IWmM@nsE^kieHuW!#0NJY}xBOUp(L|@F|xh=tN+8;BO;%%2p$n5DB zUKm5h1nncf{TtZNCMq;^Wxan@Jsm-PNGEQ*t3!`sCzO{Yz_&Jlm5Kq}xkQbXm<^d# z>ZC(_KB~N4iYTu`Z{X{kGc)gdp;^vcaO|Y;B2yLVFN@U?GW@~~JMo7VWB=jrl&M-%n5JK}*nbWe^>-z2^ji z7cw27<$*o<6Bp!t6CP{(jnpPu$%Ix0E`w4W#6s54_069jF@&1V*+Xj|%lvuh;%=LI ztwXB697@y>0_O_FW?wl@y+AoM{?Tuzv<@xJ#R=~q!Fc>Ryv^>N7~8$)iAkzG_C2Dm;)^g5YlAm z|JW|&7~Y`WRu~elb8{jto=%TMY1m7Hf3cI7^PB-L?Gn64QUf~>j^5quwzY#6dnk%Q zb^H(VUJMKctaba{_OaH|@nYlB{?Ud1Y!dI}Un5`fn6H*!`nT*jef} zH5o#bI+qrg|ie{Us|2wMn5GKZc(HdR)+kz6m3 zEN>ENS|)W?8jv4kMwQx#?&v$0KtvndZg zE)Rk2&;-`kkxdhxO1NWjd`z3=k8yktqY|QX8-%<2u|t8JRaPl7F%7lht-iEvonFu0 z>(iNjvf?)j; z$Q?(R?GOdv90@OZ=z|PJvI5EzE`^}N^jgT$?g= zejd?QC$~KYUAFx(7xW>5_%YsOGL3w6h=uPGWwE5p`}tnbVOL0b(@Y4u4^N)J(eAQG z$VwLR)Im=&F+&L~h3mw}e&rFGbg(L;KHE<9Tb*uGsSkcK%~WkX=KDI-w^1sQBcV7~ z;j5j!<9cqn>l|ByMd?T2JXzxZa-|@)qsrknv?_W~@irx9sWRW9bc%Iv&K8c7=pYhL z?eb*uHd&!~#Zq+oeT$-O$)cD|VkAG*vtAIzq&9{1QSB%%WU2FC4vho!$)D+F4b1n| zL5(BY{CO#rR;Is2GIWfS=6TxbuyU%=DQQQAQ^Gf_Np3-pLbsed&+{rd+rZVu5Xj2A zx;O?Elli8uV0)hzxD=*BBMwn*+YE|C!zscrXmRCTSJ0p!qPdg%)!nS`fBXo$b>J;k z$oY3>9e|I-xQNfn@^b$W@-P~Wpv83+QsJ=bwu68c+bvYfr8=}*KmzX5yeiQw-0`}X zq9(bn*Xm>o_ue|0Zq@h>A*G5`xt1}Noz})>ILa~XSKbR@&~DECXi1|5OH;Ld)J+%k zaCg`4v+g)gzPTfa@e$N7S1BUQ*us5UZU)%2b-q*HCVzAUx4r{B;Ci$%@osB3tWzT% zM;u*!cqDP2x>HoMh&dl7Gj}EsxqEtY0umo({`K49>x8%ii%0hvEY|L+_X0$caUXp* zpz?LCQ^&OkTEjY@WKt&e96(Q2qprEtZQP?`#nJR(v@vR&m(}?0ZyTGNSl811kP%;l zb@6rOzJ!o|>}>4(zoGm?I!g=*AyPt(k6F;W)RNj0(38xaB(ZOdA7hA-`9wFDCmfsU zFcC4Av<~CZ=KWU%MnEA2C^+)>^_0d9^S}SB!#OaZ+1t(siY3)bzeMSLKztl`4v}+* zl9k@a$Y(NyF`TGpdX1LKlfYoKsUGxO+qJ-$$!Lj&`={M{R_Bpw3M4JdMS)Ac$ zV;(3?0u-%HbisU_snLF1l6NKOp9xmWishDn}~8LW8b5+W$>+fWj?v~UR^XxZ$5`a z&3qctrpKKf9+}TBL3D)`dWtH~4OQB!Uy4{>d7!siYQ}O!=~}^!8q(?pohu9GoV2B} z3$6yZP5g66TQtjj`a8+zidEaR?d-j8-PziudqT6~j zMS7y+1RJf~z>37{3x)ghq*}?GeneTTHTiDSvHb#7wuHfH?__CFe`ZZhI+uD{R>~H| zl>xDS{|tHarq=8&!_MdBsgywl~JbMLw5o~;j; zu5x{}FX^VmYzOvS?l7}T45B$ux0wlRXloqo_rAn?=s>JQGU7aZE3TtAXcD0AQq9pB z1zf91ZEUzC58SbJ+K{2+@cP%46=C}3fmlM;1CBeJ{`NcB2Mo)B_5 zSmuE%sg14Vt)g z#pCj3+O$&<35q|U#xZ_^ZcL0}D=U7%tsB3@N()Gs)!cK>IdkTWH@?CTw;yj4`*EWR z(TieRM-W93A_Vn_0DTUoM?-p6m%9b*=82-yC{=Y7_N=9fR9A^P4Mt5z%8=-Nr)^wL-9grMhuE|G)vaM0%anWMf}Zr0mdLQU zFKyR4tl~@GOv8yhZ@mg2lU%(>YAE)jD1azIu~La*f)>>p(!`W53@o-ZS7l{|He>=b zJ1GVyr6#s0)EneVuTDN|NV2;o>!0j!S!eXaOFzRWD4>qo%mN!mo)Qu;Hme@Y<_+!4 zr$v+&_QbxN$R7O(nC{M; z`<-)V=3D8<*1N}>hv>D(q2tN-{f53QI^CuQ;K_SKAqUt1W}z1}U?u*}HdH~`%+Xe= z$z+`_on=@ymecRd$7;(CzyOKI@C-v1po_f_Z9WoX#w;BS6D;1kPiGhIoX*SgLZdqQ zPy{SK*Y&2R^7JFwi;Y0oHgoI-1flQ9feur32;lUAl^t6LAH&F(&1AFZ$sh!kN5v4X z%lnSB)7D@Z28@LtJja#{6*cx+&{Uhgyam?boG;Sdjgj3%I$Mk8(m zD%&Z)vhs6mdYe1RSoAl?^6~CWqjKRoJh&{ z=7VWe&+pJ~F}MgY5sGP4DjK<3iM|#~G`Vzzeig5696o5%pW?04HFD}nSJ(vYCBFk+ z;7eng4112A7v`E+A^)3{KNTaKtuyx(^tPg=yLEjfI@q5NM4vC;{0CF?-^}G8f^2x4 zO_0A&+dve@l@KcuODc6>t`+ja4zZyT78N~?~5(Zf+dAx@dJqdx} zF>E-^vUqiPQ!$o7huW#W+AlIE)uX0Kw!pQZ*9YQ!&QP2nbtv};#Q~2KBG7c7b<29U ztS5tvc{1V*i0_*dLNn|_Dn-P`7R=OnwPO^bx~~4Ibkz5y%gVND*5HLpQiNn`cOW^o z+sWY9C;&W0LWzeVr#_0_+9vFN7^V?8~R z{T(A)E4A`u?mO+N)%wcm44%C272Y+bkMFH5pu|Pmh0*$K!7YdTv!5^*zK|I65#*MY zm)EjENZ1&AGflKyI7Cc_39^OM>_4SeuKw3wJ^-%?q(!}>0eGC1R&8(NHVporU%>{$ z#R1|p$$IFTCOKf;4g1huhuwgEI21S~rW0Ld%aG)}%GWKtO@fW#l;7*}RsAOFDE-9H;<5K4%ZOrWQbt(+C^ofS_Fs+g@1 zKBFMh$INhHO;H$uVD^td~rX>PCtPRol5t?=~!5Qv|_DBz>4KU@LiKm7Wo^#|+bU1OVJd)Oad= zt`Wv87Y5=yUAZjpa&2T%MHCcGjDvPW10To09|m)Xnb0KR5tP#^%f3rUR7aSZBw~szy0}e{|n!K6qrzL7eSf}LAs>uOB)0(e|r`j6QKYj zfseV-Ji>sWdXUy)OJ4f5E};@bK*tSNxl*(N@7}>hYdxfZ4CAQ|aA=rXqXDMjlZ>!` z^Z`v$twiiqc8=fn91B1nBDutp6r%r!e34&{s*6 zWmmr@jhub$^cg;Nt~uyxCe zZU5+?b@(ofsj(myxCd@9(cua$W#Jp~fyak%iDrk?=h;4-Kz0bnL@q^SpjG{_R_qX7 zjYgnko<MUsZ6oSZs9|p z>5Qd|qQ%N`cIjj-mF?Ou+Q}AQcj0^3(B~M9J=Z9fYHm9rbdRxA3H(slPJs_JCZ%O- zIR0tWgDLcS<=3+1KITHqyDnJRa@_qa_w()uMliXe|E}#O`Ak69%(|08s$El;zI znN6*KPYA47M$KU{?Y5-fBu~%8fAPp{=EbChXx@Do-@uIsui-kRzb;(1fVm`Oe3M;P z4YcUgf+}Ac1i{h3_H3(J*iuW8Q&s;a+(2M#LaI7nZ|prWwl|u(|Cc7w8%9*MPYK(H zoA7!9#Ap=@5*|X98`*8+Q`9qgn6NCMsbXAX2Q7`4)Typ#Jj|{2&=Ise+kKr*)z!S! zD)VM_?%@UX+&J+E_RsZS^3OG-1=RBF%JOVd$(Bsx8F@Aqq$wd?69?!mPUFK%#-!6w z>jZwgK_{Drcq5eEY1>g=(wK*r>P#B>?rG>z)|=Y=}G5(zn1@2 zt?!J$YF58pgx8>t=|vbO81cNGVfA=ykQuiN;v^G0Q9PX2t(IT9$yi};&ZzO@=naT} zMP>N1-FDkH628wn z*NN?Injh!HYWK&-r==uFVoZ@LNLp4@p0gMG2>S^80Q&%YwSAL)lAXa10Z^2zWYg}& z`XZ)53@{jc^UVyvIC)CRAPQ-mIs5nSh0|HWGO{Gld^#G@LDs;>*L1{xUt~c>NkK*| znG%Q5V1QCmC|k@ZNIuJFGa5C>G0VNjbKi(3@CZU zl37ZY_XxS>w(Uq8??cNVXAJi4yOc6ezoQL}FX=GMPQjduqfXVlKa)6*_y|dS5!}#W zhqxZ;9+I0R9PZyM?%f;Z@c;)RS@Jv?1knj>eFh4CA4EBI!!$W(s;NWLjD_*oQx9C( za75huRzHt0n&m7ej)ODHKddf(8ifPuwi{&kk!R}>Cv!^?*Pd>W#A$||NSDNPPOzKn z?U!$6!4TfKaR*jD?Ni2Ad%@-1*z@5vpqpjxUV}Jo$1@cC@#7^7>yIe_I*R^81Lk@~ z^W!Cmxbnq|B+e#az|YBU^_9@WD|%MzH%ZP?Z0^|OgmIox{^CczdZGKv^B>M1e|!3@ zclrZId&l&y%PUydrStgo{K5gay1SRB$(kVk+- zWo!wTvxH6ErNmvMg0_YRSVO^x6di$A&)Ag9z~q9IW`;7TykeFEqy5lzUY|L}{$2Lz zIE-U1|Cm3TqV6g>Oj#NaDVIEjhj)S43r4r}6itT!rHoEz9RmJ6qF~I7^5-GT2iNdK3QLXPCX|4=;E&eyqaaGD zwa1JlLV;6!+O)oWFrcZ}n+x$=J9H^g;v52@=m-yP+3Hzj3$J{+rO>x**7J|Rsmy^6 zzUjSqj-GZJ!S=-2p^Mxs<}V#`lnnCpCB4mDId+Gjm=qD-COKD*uar=%yU%+_6+#*f zQ_$d;v0&k20CM?jLMqb!PdQ}^73hwm=)jovPze#@gc!Iwagw>0!!Ql{5glH64cPBn zpj8^IzWE4Pp_z)HD2MU*Z_m^;9NvPOLSH`wAl{yjlnG=GGj9)FOgU01D?@|XnH8AVD95@gAZN=*~Di_9uM8QFI&Bm zBdoW)&6BJlehT@d^&SLh8fh%iwP+B|lWWb1tI_UVuD}jmx`%&U*;3hA#3{EngVMsH zmuCuMn7T_0`*`+j0)5ud5|BqnL~>x+xr_u>|FU&eM8^R`LN`_fEED=-(|fSf{s)A>t50~{!;ZJ3#lq!zicj~hZ))7sv_ID9{KcBWB(z= zO*Lvv%EMHvB)kgcDK1-i9Ym2)Fo7X#MpMLm4FT{i)Rf(dCVo1L!py~-+w-Tv%yqB% z2-iLo6;orA%q@XA{ZSYp(%ru3E{50Pq3=HvO`bVKVW?ljXbOWHtS5I|8&FnEu%)TB zIN5P^eKDUguCCAA2$`_H-(D=q(-T#m?GwaWS>Y9Hw}%1#BFKiSsW6s-xHPGHfaPap z0G*J5&tu@_n*;9eCcJOrb6&$3%;onjSs5yY(tL;`|LF;m1hQL0>W_k?FeQsBFqA8b zmAvboTb?F8tJRX{7PR?&!h$@V2a|}rp`guRf~6o7e2kp^@=s1p8(nd2GGax=l1%y89v9bY;t39xf<=8z+z%TgjCCS^q^?GSlFAX_nZ zcDOloKVjQWbvt12HqouBKSY(M!xY;SNh5-?`{3tg9v~U7W7Q8wsu@PTywdZR(G>^P zrMY}Bat%m{MJ+AtZ<#u0RvdzPe&n<(&o^5iFEx!nJt=;K=^e9!W0qD^noW{nWjyEA zcRdHiUY%d`9633@vZDs$F(a4RBIUQDhAid(u4-Ec`1^-^CXEgaIj`?F{2Jl z70e*g0KtKmwlF>bS!h8-SBHEHyyJ^l5RMiuHkLb3SUKl?P_4GQ5z69QtV!)8O8Kz_ zciE07vPrI3amC>qRBa zMkf*YRiB1aaxtSJsu}x4kQ+SGJR>&%1k_*iS^+hB4B>ZSjwlI7AM{AF*CjhYb9fRV z6rFi<1e8E#x6M5=TQqk8I6!j@{*n)47A%@ywA+NI_;lEe#-u-P&L_x;2#IDo6~`n_c3rr$oJi<4v?cb9H8-Qk&`e@z#>0CP@b zenwz%y>{;`z*A!Ap9O48GYF;DX%jS$k%#xK(YX+g{rJ0H@BF1he*T%1ZN1Y!_Kshl z9@k8{F5=>kKK5FtONmrvgh3RfDQefi+|H}`HMGQDjEd6wJ_59m8< zJ}4ow!-qe-Cudo$(-zhUI%5jmpdvzAi+ zU>M$*D;P!emf%0lISXcF9H2^|%`|O7WZO9`4OJ%yPB0B)Soh`bqxS6f%IFRP9JhwZ zQUSR*tS;=J#ot-t=B1XE7l*^{jy~GkvEI!h*pNvQ!QkDcx~;R4y~66B@X{>pE=79C zV{pKM?Jmg;9*97;&=4-zA$mYO6RHjsKLM8+!#dp?#pY&xeuKa|UZY9NFmwwnz25HW z1Y*>6v%R&gIb!Mz%*oAK0^VhIcZPuiqx#{7=q^S2W89#%*PEcO7*YXDI-1XiU3FLS zqa&K#pL`C!?!dpUrOxgyztKZVaN6xoyX|;h&5%6$ts4+ixvhsQ?4>jMQywxpw5vb8 zZU1H1(Cq$o87}S)B0Ikg!b&cxLs@y}d?%u$&DTOItA&)tNew*9z0KBxL2vpUGL;=S zEC$5?#cyP5$@TAS=~ZmsVdrh^^8pO9tQNAaxuk8Zwb@>3=o*97QlKJ1aY(dNc~`<# z3|drPukfFBXl}DkSr|H44b1|U!scael^lV9sw_(|=ysRwmDb?4yZjn{sxRz~Y5!I! ztZlrOg;g5_eGcgf@b9=!~%rʢ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 A!T { - return bcrypt.hash(password, 10); + return bcrypt.hash(password, 12); } export function getBeoDisplayName(beo: Beo): string { diff --git a/lib/ratelimit.ts b/lib/ratelimit.ts new file mode 100644 index 0000000..b1de643 --- /dev/null +++ b/lib/ratelimit.ts @@ -0,0 +1,38 @@ +// In-memory rate limiter – funktioniert pro Prozess (single Docker container). +// Erlaubt MAX_ATTEMPTS Versuche pro IP innerhalb WINDOW_MS Millisekunden. + +const MAX_ATTEMPTS = 10; +const WINDOW_MS = 15 * 60 * 1000; // 15 Minuten + +interface Entry { + count: number; + resetAt: number; +} + +const store = new Map(); + +// Aufräumen abgelaufener Einträge alle 5 Minuten +setInterval(() => { + const now = Date.now(); + for (const [key, entry] of store) { + if (entry.resetAt < now) store.delete(key); + } +}, 5 * 60 * 1000); + +export function checkRateLimit(ip: string): { allowed: boolean; remainingMs: number } { + const now = Date.now(); + const entry = store.get(ip); + + if (!entry || entry.resetAt < now) { + store.set(ip, { count: 1, resetAt: now + WINDOW_MS }); + return { allowed: true, remainingMs: 0 }; + } + + entry.count += 1; + + if (entry.count > MAX_ATTEMPTS) { + return { allowed: false, remainingMs: entry.resetAt - now }; + } + + return { allowed: true, remainingMs: 0 }; +} diff --git a/lib/session.ts b/lib/session.ts index 4e97e5a..bf8bcf3 100644 --- a/lib/session.ts +++ b/lib/session.ts @@ -4,7 +4,10 @@ import { SignJWT, jwtVerify } from 'jose'; const SESSION_COOKIE_NAME = 'logbuch_session'; const SESSION_DURATION = 60 * 60 * 1000; -const secretKey = process.env.AUTH_SECRET || 'logbuch-secret-change-in-production'; +const secretKey = process.env.AUTH_SECRET; +if (!secretKey) { + throw new Error('AUTH_SECRET Umgebungsvariable ist nicht gesetzt!'); +} const key = new TextEncoder().encode(secretKey); export interface SessionData { diff --git a/package.json b/package.json index 1b5eab1..5143c86 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "logbuch", - "version": "1.6.0", + "version": "1.6.1", "private": true, "scripts": { "dev": "next dev",