From 8fcd52c31d519f32b264fbc1723f11476625264b Mon Sep 17 00:00:00 2001 From: nala Date: Sun, 25 Oct 2026 22:22:41 +0200 Subject: [PATCH] Preserva B1 aceite de confirmacao interna sem validade fiscal --- AGENTS.md | 2 + README.md | 2 + .../Services/Http/ServiceController.php | 13 +- app/Modules/Services/InternalConfirmation.php | 86 +++++++++ app/Modules/Services/ServiceWorkflow.php | 6 + ...5_040000_create_internal_confirmations.php | 61 +++++++ docs/SERVICES_B1_DELIVERY.md | 78 ++++++++ docs/SERVICES_B_SCOPE.md | 83 +++++++++ docs/SERVICES_WORKFLOW_SPEC.md | 8 +- docs/proofs/b1-01-internal-confirmation.png | Bin 0 -> 98827 bytes docs/proofs/b1-02-read-only-context.png | Bin 0 -> 102617 bytes docs/proofs/b1-capture.json | 14 ++ docs/proofs/b1-concurrency.json | 21 +++ docs/proofs/b1-http-results.json | 12 ++ resources/js/ServicesWorkspace.jsx | 20 ++- resources/js/app.jsx | 2 +- routes/web.php | 1 + scripts/a-concurrency-worker.php | 1 + scripts/b1-access.php | 25 +++ scripts/b1-concurrency-proof.php | 40 +++++ scripts/b1-http-proof.mjs | 47 +++++ scripts/b1-proof-metrics.php | 18 ++ scripts/b1-status.php | 10 ++ scripts/prepare-browser-fixture.php | 2 +- tests/Feature/InternalConfirmationTest.php | 169 ++++++++++++++++++ tests/Support/InternalConfirmationFixture.php | 13 ++ 26 files changed, 724 insertions(+), 10 deletions(-) create mode 100644 app/Modules/Services/InternalConfirmation.php create mode 100644 database/migrations/2026_10_25_040000_create_internal_confirmations.php create mode 100644 docs/SERVICES_B1_DELIVERY.md create mode 100644 docs/SERVICES_B_SCOPE.md create mode 100644 docs/proofs/b1-01-internal-confirmation.png create mode 100644 docs/proofs/b1-02-read-only-context.png create mode 100644 docs/proofs/b1-capture.json create mode 100644 docs/proofs/b1-concurrency.json create mode 100644 docs/proofs/b1-http-results.json create mode 100644 scripts/b1-access.php create mode 100644 scripts/b1-concurrency-proof.php create mode 100644 scripts/b1-http-proof.mjs create mode 100644 scripts/b1-proof-metrics.php create mode 100644 scripts/b1-status.php create mode 100644 tests/Feature/InternalConfirmationTest.php create mode 100644 tests/Support/InternalConfirmationFixture.php diff --git a/AGENTS.md b/AGENTS.md index 1ced4e1..8295bc8 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -20,3 +20,5 @@ - As novas concessões de A foram especificamente confirmadas para as contas existentes ID 1 e ID 2, na empresa ID 1 / unidade ID 1, após conferência. Não inferir direitos dos emails, nomes ou concessões de identidade; qualquer nova aplicação inicial exige confirmação específica. - Em A, quantidades/preços são cadeias decimais exactas com até 16 algarismos inteiros e 8 decimais. Não usar float, moeda por omissão, imposto desconhecido como zero ou arredondamentos silenciosos. Histórico/eventos/outbox/pendências são transaccionais; não processar contabilidade nesta entrega. - Em 25 de Outubro de 2026, o utilizador aceitou a entrega A no âmbito demonstrado e com os limites de docs/SERVICES_A_DELIVERY.md e autorizou um checkpoint Git exclusivamente local, sem credenciais ou dados locais. Preservar esta base aceite. Não avançar para B/C nem publicar. +- Autorização posterior delimitada: B1, apenas confirmação interna dos rascunhos de facturação, fotografia imutável e captura transaccional de eventos/pendências. Mostrar «Confirmado internamente — sem validade fiscal». Não emitir documentos comerciais/fiscais, reconhecer receita, produzir lançamentos, receber, reconciliar, fechar ou publicar. A nova concessão billing_drafts.confirm_internal foi especificamente confirmada para a conta existente ID 1, empresa 1/unidade 1; não implica gestão de novas concessões nem altera a consulta da conta ID 2. B1 não conclui B integralmente; ver docs/SERVICES_B1_DELIVERY.md. +- Em 25 de Outubro de 2026, o utilizador aceitou B1 no âmbito demonstrado de confirmação interna, sem validade fiscal nem lançamentos contabilísticos, e autorizou um checkpoint Git local sem credenciais ou dados locais. Preservar B1 e os checkpoints anteriores. Não avançar para os restantes incrementos nem publicar. diff --git a/README.md b/README.md index b5a6301..a846973 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,8 @@ Primeiro percurso funcional local, sobre a fundação existente e o roteiro v0.9 ## Usar a entrega A +**Incremento posterior B1:** disponível a confirmação interna do rascunho de facturação para quem possua `billing_drafts.confirm_internal`. Abrir o rascunho, escolher **Rever confirmação interna**, conferir versão/contexto e confirmar. Quantidades/preços e referências devem estar completos e actuais; moeda ou regras desconhecidas permanecem pendentes. A fotografia é imutável e o rascunho confirmado deixa de poder ser editado ou eliminado. A referência `INT-B1-…` não é numeração fiscal. Não há emissão, impressão de factura, reconhecimento ou lançamento contabilístico. [Relatório B1](docs/SERVICES_B1_DELIVERY.md). A mantém-se aceite no checkpoint `ca13acb`; B1 foi aceite em 25 de Outubro de 2026 no âmbito demonstrado, sem validade fiscal nem lançamentos contabilísticos. Não avançar para os restantes incrementos nem publicar. + Actualizar o navegador e entrar normalmente. Seleccionar a empresa e a unidade autorizadas. Os novos menus são **Clientes**, **Serviços**, **Prestações em rascunho** e **Rascunhos de facturação**. 1. Criar o cliente (apenas nome obrigatório) e o serviço. São cadastros da empresa, reutilizados entre unidades. diff --git a/app/Modules/Services/Http/ServiceController.php b/app/Modules/Services/Http/ServiceController.php index ca18f25..6174e6a 100644 --- a/app/Modules/Services/Http/ServiceController.php +++ b/app/Modules/Services/Http/ServiceController.php @@ -11,7 +11,18 @@ use Illuminate\Http\Request; final class ServiceController extends Controller { public function index(Request $request, string $area, ServiceWorkflow $workflow) { return response()->json(['records' => $workflow->list($area, $request->user()->id)]); } - public function show(Request $request, string $area, int $id, ServiceWorkflow $workflow) { return response()->json($workflow->show($area, $id, $request->user()->id)); } + public function show(Request $request, string $area, int $id, ServiceWorkflow $workflow) + { + $record = $workflow->show($area, $id, $request->user()->id); + if ($area === 'billing_drafts') { $record['confirmation'] = app(\App\Modules\Services\InternalConfirmation::class)->show($id, $request->user()->id); } + return response()->json($record); + } + public function confirmInternal(Request $request, int $id, \App\Modules\Services\InternalConfirmation $confirmation) + { + abort_if(array_diff(array_keys($request->all()), ['version']) !== [], 422, 'Campo não suportado ou identificador protegido.'); + $data = $request->validate(['version' => 'required|integer|min:1']); + return response()->json($confirmation->confirm($id, $request->user()->id, (int) $data['version'], (string) $request->header('Idempotency-Key', ''))); + } public function create(Request $request, string $area, ServiceWorkflow $workflow) { return $this->save($request, $area, null, $workflow); } public function update(Request $request, string $area, int $id, ServiceWorkflow $workflow) { return $this->save($request, $area, $id, $workflow); } diff --git a/app/Modules/Services/InternalConfirmation.php b/app/Modules/Services/InternalConfirmation.php new file mode 100644 index 0000000..8fee70d --- /dev/null +++ b/app/Modules/Services/InternalConfirmation.php @@ -0,0 +1,86 @@ +workflow->scope('billing_drafts', $actor, 'view'); + $row = DB::table('b_internal_confirmations')->where('tenant_id', $scope['tenant_id'])->where('company_id', $scope['company_id'])->where('unit_id', $scope['unit_id'])->where('billing_draft_id', $draft)->first(); + if (! $row) { return null; } + $history = DB::table('a_history')->where('area', 'internal_confirmations')->where('record_id', $row->id)->value('id'); + $event = DB::table('a_events as e')->join('a_outbox as o', 'e.id', '=', 'o.event_id')->where('history_id', $history)->first(['e.id','e.type','o.state']); + return ['id' => $row->id, 'internal_reference' => 'INT-B1-'.$row->id, 'label' => self::LABEL, 'snapshot' => json_decode($row->snapshot, true, 64, JSON_THROW_ON_ERROR), 'event' => $event]; + } + + public function confirm(int $draft, int $actor, int $version, string $key): array + { + $scope = $this->workflow->scope('billing_drafts', $actor, 'view'); + $this->permissions->require($actor, $scope['tenant_id'], $scope['company_id'], self::PERMISSION, $scope['unit_id']); + abort_unless((bool) preg_match('/^[a-zA-Z0-9-]{8,100}$/D', $key), 422, 'É necessária uma chave de repetição válida.'); + $hash = hash('sha256', json_encode(['b1.confirm_internal', $draft, $scope, $version], JSON_THROW_ON_ERROR)); + return DB::transaction(function () use ($scope, $draft, $actor, $version, $key, $hash): array { + DB::table('companies')->where('id', $scope['company_id'])->where('tenant_id', $scope['tenant_id'])->lockForUpdate()->firstOrFail(); + $this->context->selectFor($actor, $scope['tenant_id'], $scope['company_id'], $scope['unit_id']); + $this->workflow->scope('billing_drafts', $actor, 'view'); + $this->permissions->require($actor, $scope['tenant_id'], $scope['company_id'], self::PERMISSION, $scope['unit_id']); + $old = DB::table('a_commands')->where('tenant_id', $scope['tenant_id'])->where('company_id', $scope['company_id'])->where('command_key', $key)->first(); + if ($old) { + abort_unless((int) $old->actor_id === $actor && hash_equals($old->request_hash, $hash), 409, 'Chave repetida com conteúdo ou autor diferente.'); + return json_decode($old->result, true, 32, JSON_THROW_ON_ERROR) + ['replayed' => true]; + } + $billing = DB::table('a_billing_drafts')->where('id', $draft)->where('tenant_id', $scope['tenant_id'])->where('company_id', $scope['company_id'])->where('unit_id', $scope['unit_id'])->lockForUpdate()->first(); + abort_unless($billing, 403, 'Rascunho fora do âmbito autorizado.'); + abort_unless((int) $billing->version === $version, 409, 'A versão mudou; reabra o rascunho.'); + $existing = DB::table('b_internal_confirmations')->where('billing_draft_id', $draft)->first(); + if ($existing) { + $history = DB::table('a_history')->where('area', 'internal_confirmations')->where('record_id', $existing->id)->value('id'); + $event = DB::table('a_events')->where('history_id', $history)->value('id'); + $result = ['id' => $existing->id, 'billing_draft_id' => $draft, 'version' => $version, 'internal_reference' => 'INT-B1-'.$existing->id, 'event_id' => $event]; + } else { + $data = json_decode($billing->data, true, 32, JSON_THROW_ON_ERROR); + $source = DB::table('a_service_drafts')->where('id', $billing->source_id)->where('tenant_id', $scope['tenant_id'])->where('company_id', $scope['company_id'])->where('unit_id', $scope['unit_id'])->first(); + abort_unless($source && (int) $source->version === (int) $data['source_version'], 409, 'A prestação mudou; reveja e actualize explicitamente o rascunho antes de confirmar.'); + $client = DB::table('a_clients')->where('id', $billing->client_id)->where('tenant_id', $scope['tenant_id'])->where('company_id', $scope['company_id'])->first(); + abort_unless($client && trim($client->name) !== '' && trim($billing->name) !== '', 422, 'Complete o cliente e a designação do percurso.'); + abort_unless((int) $source->client_id === (int) $billing->client_id, 422, 'O cliente diverge da prestação de origem.'); + $data['lines'] = DraftValues::lines($data['lines'], $scope); + foreach ($data['lines'] as $line) { abort_if($line['quantity'] === null || $line['unit_price'] === null || trim($line['service_name']) === '', 422, 'Complete quantidade, preço e serviço de todas as linhas.'); } + $pending = DraftValues::pending($data) + ['accounts_pending' => 'Contas e classificação por validar; contabilização bloqueada.', 'recognition_pending' => 'Momento e regras de reconhecimento por validar; contabilização bloqueada.']; + $catalogue = []; + foreach (array_unique(array_column($data['lines'], 'service_id')) as $id) { $service = DB::table('a_services')->where('id', $id)->first(); $catalogue[] = $this->record($service); } + $data['client_name'] = $client->name; + $snapshot = ['label' => self::LABEL, 'scope' => $scope, 'billing_draft' => $this->record($billing), 'service_draft' => $this->record($source), + 'client' => $this->record($client), 'services' => $catalogue, 'data' => $data, 'base_amount' => DraftValues::base($data), + 'pending' => $pending, 'actor_id' => $actor, 'confirmed_at' => now()->toIso8601String(), 'accounting_status' => 'blocked_pending', 'fiscal_status' => 'not_issued']; + $id = DB::table('b_internal_confirmations')->insertGetId($scope + ['billing_draft_id' => $draft, 'billing_version' => $version, 'version' => 1, 'actor_id' => $actor, 'snapshot' => json_encode($snapshot, JSON_THROW_ON_ERROR), 'created_at' => now()]); + $history = DB::table('a_history')->insertGetId($scope + ['area' => 'internal_confirmations', 'record_id' => $id, 'version' => 1, 'actor_id' => $actor, 'snapshot' => json_encode($snapshot, JSON_THROW_ON_ERROR), 'created_at' => now()]); + foreach ($pending as $code => $message) { DB::table('a_pending')->insert(['history_id' => $history, 'code' => $code, 'message' => $message, 'created_at' => now()]); } + $event = DB::table('a_events')->insertGetId(['history_id' => $history, 'type' => 'b1.billing_draft.confirmed_internal', 'schema_version' => 1, 'payload' => json_encode(['confirmation_id' => $id, 'snapshot' => $snapshot], JSON_THROW_ON_ERROR), 'created_at' => now()]); + DB::table('a_outbox')->insert(['event_id' => $event, 'state' => 'captured', 'created_at' => now()]); + Audit::record('b1.billing_draft.confirmed_internal', $actor, $scope['tenant_id'], $scope['company_id'], $scope['unit_id'], details: ['area' => 'internal_confirmations', 'record_id' => $id, 'version' => 1, 'event_id' => $event]); + $result = ['id' => $id, 'billing_draft_id' => $draft, 'version' => $version, 'internal_reference' => 'INT-B1-'.$id, 'event_id' => $event]; + } + DB::table('a_commands')->insert(['tenant_id' => $scope['tenant_id'], 'company_id' => $scope['company_id'], 'actor_id' => $actor, 'command_key' => $key, 'request_hash' => $hash, 'result' => json_encode($result, JSON_THROW_ON_ERROR), 'created_at' => now()]); + return $result + ['replayed' => isset($existing) && $existing !== null]; + }); + } + + private function record(object $record): array + { + $data = (array) $record; + if (isset($data['data'])) { $data['data'] = json_decode($data['data'], true, 32, JSON_THROW_ON_ERROR); } + return $data; + } +} diff --git a/app/Modules/Services/ServiceWorkflow.php b/app/Modules/Services/ServiceWorkflow.php index d70ac81..8031acc 100644 --- a/app/Modules/Services/ServiceWorkflow.php +++ b/app/Modules/Services/ServiceWorkflow.php @@ -55,6 +55,10 @@ final class ServiceWorkflow $result = (array) $row; $result['data'] = json_decode($row->data, true, 32, JSON_THROW_ON_ERROR); $result['version'] = (int) $row->version; + if ($area === 'billing_drafts') { + $confirmationId = DB::table('b_internal_confirmations')->where('billing_draft_id', $row->id)->value('id'); + $result['internal_confirmation'] = $confirmationId ? ['reference' => 'INT-B1-'.$confirmationId, 'label' => InternalConfirmation::LABEL] : null; + } $result['base_amount'] = ServicePermissions::unitScoped($area) ? DraftValues::base($result['data']) : null; $history = DB::table('a_history')->where('area', $area)->where('record_id', $row->id)->where('version', $row->version)->value('id'); $result['pending'] = $history ? DB::table('a_pending')->where('history_id', $history)->pluck('message', 'code')->all() : []; @@ -80,6 +84,7 @@ final class ServiceWorkflow $old = $id ? $this->query($area, $scope)->where('id', $id)->first() : null; if ($id) { abort_unless($old, 403, 'Registo fora do âmbito autorizado.'); + abort_if($area === 'billing_drafts' && DB::table('b_internal_confirmations')->where('billing_draft_id', $id)->exists(), 409, 'Confirmado internamente — sem validade fiscal. O registo está bloqueado para edição.'); abort_unless((int) $old->version === (int) ($input['version'] ?? 0), 409, 'O registo mudou. Reabra-o antes de guardar.'); } $version = $old ? (int) $old->version + 1 : 1; @@ -102,6 +107,7 @@ final class ServiceWorkflow $affected = []; if ($area === 'service_drafts' && $old) { foreach (DB::table('a_billing_drafts')->where('source_id', $id)->where('tenant_id', $scope['tenant_id'])->where('company_id', $scope['company_id'])->where('unit_id', $scope['unit_id'])->get(['id','version']) as $billing) { + if (DB::table('b_internal_confirmations')->where('billing_draft_id', $billing->id)->exists()) { continue; } $billingHistory = DB::table('a_history')->where('area', 'billing_drafts')->where('record_id', $billing->id)->where('version', $billing->version)->value('id'); DB::table('a_pending')->insertOrIgnore(['history_id' => $billingHistory, 'code' => 'source_changed', 'message' => 'A prestação de origem foi alterada; os dados deste rascunho não foram reescritos.', 'created_at' => now()]); $affected[] = $billing->id; diff --git a/database/migrations/2026_10_25_040000_create_internal_confirmations.php b/database/migrations/2026_10_25_040000_create_internal_confirmations.php new file mode 100644 index 0000000..108fe40 --- /dev/null +++ b/database/migrations/2026_10_25_040000_create_internal_confirmations.php @@ -0,0 +1,61 @@ +id(); + $table->unsignedBigInteger('tenant_id'); $table->unsignedBigInteger('company_id'); $table->unsignedBigInteger('unit_id'); + $table->foreignId('billing_draft_id')->unique()->constrained('a_billing_drafts')->restrictOnDelete(); + $table->unsignedInteger('billing_version'); $table->unsignedInteger('version')->default(1); + $table->foreignId('actor_id')->constrained('users')->restrictOnDelete(); + $table->jsonb('snapshot'); $table->timestampTz('created_at'); + $table->foreign(['tenant_id','company_id','unit_id','billing_draft_id'])->references(['tenant_id','company_id','unit_id','id'])->on('a_billing_drafts')->restrictOnDelete(); + }); + DB::statement('ALTER TABLE b_internal_confirmations ADD CHECK (version = 1 AND billing_version > 0 AND jsonb_typeof(snapshot) = \'object\')'); + DB::unprepared(<<<'SQL' + CREATE OR REPLACE FUNCTION sgf_b_confirmation_guard() RETURNS trigger LANGUAGE plpgsql AS $$ + BEGIN + PERFORM 1 FROM a_billing_drafts WHERE id = NEW.billing_draft_id AND version = NEW.billing_version FOR UPDATE; + IF NOT FOUND THEN RAISE EXCEPTION 'SGF_B_STALE_DRAFT'; END IF; + RETURN NEW; + END; $$; + CREATE OR REPLACE FUNCTION sgf_b_draft_locked() RETURNS trigger LANGUAGE plpgsql AS $$ + BEGIN + IF EXISTS (SELECT 1 FROM b_internal_confirmations WHERE billing_draft_id = OLD.id) THEN RAISE EXCEPTION 'SGF_B_CONFIRMED_IMMUTABLE'; END IF; + IF TG_OP = 'DELETE' THEN RETURN OLD; END IF; + RETURN NEW; + END; $$; + CREATE OR REPLACE FUNCTION sgf_a_history_guard() RETURNS trigger LANGUAGE plpgsql AS $$ + DECLARE item record; target text; + BEGIN + target := CASE NEW.area WHEN 'clients' THEN 'a_clients' WHEN 'services' THEN 'a_services' WHEN 'service_drafts' THEN 'a_service_drafts' WHEN 'billing_drafts' THEN 'a_billing_drafts' WHEN 'internal_confirmations' THEN 'b_internal_confirmations' ELSE NULL END; + IF target IS NULL THEN RAISE EXCEPTION 'SGF_A_AREA'; END IF; + EXECUTE format('SELECT tenant_id,company_id,unit_id,version FROM %I WHERE id=$1', target) INTO item USING NEW.record_id; + IF item IS NULL OR item.tenant_id IS DISTINCT FROM NEW.tenant_id OR item.company_id IS DISTINCT FROM NEW.company_id OR item.unit_id IS DISTINCT FROM NEW.unit_id OR item.version IS DISTINCT FROM NEW.version THEN RAISE EXCEPTION 'SGF_A_HISTORY_SCOPE'; END IF; + RETURN NEW; + END; $$; + CREATE TRIGGER b_confirmation_valid BEFORE INSERT ON b_internal_confirmations FOR EACH ROW EXECUTE FUNCTION sgf_b_confirmation_guard(); + CREATE TRIGGER b_confirmation_immutable BEFORE UPDATE OR DELETE ON b_internal_confirmations FOR EACH ROW EXECUTE FUNCTION sgf_append_only_audit(); + CREATE TRIGGER b_billing_locked BEFORE UPDATE OR DELETE ON a_billing_drafts FOR EACH ROW EXECUTE FUNCTION sgf_b_draft_locked(); + SQL); + $company = ['company.view','company.edit','unit.create','access.manage']; $unit = ['unit.view','unit.edit','billing_drafts.confirm_internal']; + foreach (['clients','services','service_drafts','billing_drafts'] as $area) { + foreach (['view','create','edit','manage'] as $action) { if (in_array($area, ['clients','services'], true)) { $company[] = "$area.$action"; } else { $unit[] = "$area.$action"; } } + } + $companySql = "'".implode("','", $company)."'"; $unitSql = "'".implode("','", $unit)."'"; + DB::statement('ALTER TABLE permission_grants DROP CONSTRAINT permission_grants_scope_check'); + DB::statement("ALTER TABLE permission_grants ADD CONSTRAINT permission_grants_scope_check CHECK ((permission IN ($companySql) AND unit_id IS NULL) OR (permission IN ($unitSql) AND unit_id IS NOT NULL))"); + } + + public function down(): void + { + throw new RuntimeException('Internal confirmations are immutable; rollback requires a separately reviewed preservation procedure.'); + } +}; diff --git a/docs/SERVICES_B1_DELIVERY.md b/docs/SERVICES_B1_DELIVERY.md new file mode 100644 index 0000000..52ec73d --- /dev/null +++ b/docs/SERVICES_B1_DELIVERY.md @@ -0,0 +1,78 @@ +# B1 — confirmação interna e fotografia histórica + +Data: 25 de Outubro de 2026 (Africa/Johannesburg). Estado: B1 aceite pelo utilizador no âmbito demonstrado de confirmação interna, sem validade fiscal nem lançamentos contabilísticos. Não constitui conclusão integral de B. A permanece aceite no checkpoint `ca13acb`, com antecessor `26b80df`; nenhum foi substituído ou reaberto. + +## Aceitação + +Em 25 de Outubro de 2026, o utilizador declarou: «Aceito B1 no âmbito demonstrado de confirmação interna, sem validade fiscal nem lançamentos contabilísticos. Regista a aceitação e preserva um checkpoint Git local, sem credenciais ou dados locais. Não avances para os restantes incrementos nem publiques.» + +O checkpoint preserva código, migração, documentação e provas sintéticas. Exclui credenciais, configurações privadas, bases, sessões e logs. As contagens de desenvolvimento neste relatório são evidência histórica da entrega, não uma cópia dos dados locais. A aceitação encerra apenas B1 e mantém os limites abaixo. + +## O que ficou funcional + +Um utilizador com `billing_drafts.view` e a nova concessão explícita `billing_drafts.confirm_internal`, na empresa/unidade seleccionadas, pode abrir o rascunho, rever a operação e confirmar uma versão actual. A interface apresenta **«Confirmado internamente — sem validade fiscal»** e referência técnica `INT-B1-`, distinta de numeração fiscal. + +A confirmação exige cliente/serviços válidos na empresa, prestação na mesma unidade, versão da prestação correspondente à origem guardada, designação e linhas com quantidade positiva/preço não negativo completos. Reutiliza as validações decimais de A. Campos e identificadores protegidos enviados pelo navegador são recusados. Empresa/unidade, pertenças e permissão são revalidadas no servidor dentro da transacção, após bloquear a empresa e antes da operação. A sessão e o token de contexto existentes continuam em uso. + +Moeda desconhecida é conservada como `null`, com pendência explícita. Imposto permanece pendente e não é convertido em zero. Mesmo uma moeda preenchida continua sujeita a validação. A base aritmética usa decimais exactos e não se apresenta como total monetário definitivo ou fiscal; não há agregação de moedas distintas. + +A fotografia conserva o rascunho e a prestação com versões/dados originais, cliente e serviços com versões/dados observados, linhas e valores usados, moeda conhecida ou desconhecida, pendências, âmbito, autor e instante. Os nomes nas linhas e identificação do cliente usados na confirmação são conferidos no cadastro actual, que também fica fotografado; a versão original do rascunho continua preservada separadamente. Alterações posteriores dos cadastros ou da prestação não reescrevem a fotografia. + +A confirmação cria uma identidade própria, sem transformar a prestação em serviço confirmado. O rascunho de origem mantém a versão fixada e fica bloqueado para edição/eliminação. API e triggers SQL impedem actualizações em massa ou eliminação do rascunho confirmado; a fotografia tem protecção append-only. Não há reabertura, correcção ou anulação. A prestação e os cadastros continuam com o comportamento de A, preservando as suas versões. + +## Captura e repetição + +Confirmação, fotografia, histórico, evento `b1.billing_draft.confirmed_internal`, pendências, auditoria e resultado do comando são persistidos na mesma transacção. A captura reutiliza `a_history`, `a_events`, `a_outbox`, `a_pending` e `a_commands`; os eventos de A não são reconstruídos ou alterados. + +O outbox permanece `captured`, sem consumidor contabilístico. A fotografia mostra `not_issued` para fiscalidade e `blocked_pending` para contabilidade. Além das pendências de A, contas/classificação e reconhecimento ficam explicitamente pendentes. Não há lançamentos, receita reconhecida ou estado contabilizado. + +Repetição com mesma chave/autor/conteúdo recupera o resultado. Conteúdo diferente com a mesma chave produz 409. Outra chave para o mesmo rascunho/versão recupera a confirmação existente, sem novo evento. A unicidade por rascunho e bloqueios transaccionais impedem confirmações concorrentes duplicadas. Como não há reabertura, não se confirmam versões posteriores do rascunho já fixado. Resolução futura de pendências exigirá registos/versionamento próprios, sem editar a fotografia. + +## Migração e acesso aplicados + +O delta foi apresentado antes da aplicação. Migração aditiva `2026_10_25_040000_create_internal_confirmations`, aplicada em `sgf_tempo_test` pelas provas e depois em `sgf_tempo_dev` pelo wrapper, com proprietário separado: + +- Cria apenas `b_internal_confirmations`, com referência única ao rascunho, versão, âmbito composto, fotografia, autor e instante. +- Acrescenta triggers de validade/imutabilidade e bloqueio do rascunho confirmado; amplia a validação de `a_history` para a nova origem sem remover as origens de A. +- Acrescenta `billing_drafts.confirm_internal` ao catálogo SQL permitido, sempre com unidade explícita. Não concede esse direito pela migração, por nome/email ou por direitos de A. +- Não modifica dados históricos de A nem cria tabelas de lançamentos, numeração fiscal ou processamento contabilístico. O rollback automático desta migração é recusado para não eliminar confirmações históricas; qualquer reversão requer procedimento de preservação revisto. + +A conta existente foi conferida e apresentada: ID 1, Osmane Nala, na empresa Tempo Lda ID 1 / SEGI ID 1. O utilizador confirmou exactamente a nova concessão antes da aplicação. Foi aplicada **uma** concessão `billing_drafts.confirm_internal`, com auditoria `b1.access.initial_grant`. Samira mantém apenas consulta; os restantes direitos de A foram preservados. Total de concessões em desenvolvimento: 29. Não foram criadas contas, nem poderes de gestão da nova concessão, emissão, contabilização, recebimento ou fecho. + +O procedimento local `scripts/b1-access.php user_id company_id unit_id` permite pré-visualizar a conta/âmbito. `--apply` só deve ser usado depois de confirmação específica da operação apresentada. Não o executar como seed ou criação automática de direitos. A interface de gestão de A não permite delegar `confirm_internal`; alterações futuras desta concessão continuam a exigir procedimento local autorizado e auditado. `scripts/b1-status.php` verifica contagens e a concessão sem mostrar credenciais. + +Depois da aplicação: duas contas, um tenant, uma empresa e uma unidade preservados; clientes, serviços, prestações, rascunhos e confirmações em desenvolvimento continuavam vazios. Não foi criado qualquer documento interno real ou de demonstração na Tempo Lda/SEGI. A aplicação normal conserva `sgf_dev_app`, sem administração PostgreSQL, e a ligação à base de desenvolvimento. + +## Provas realizadas + +Suite completa: **58 testes / 442 asserções aprovados**, incluindo regressões de identidade e A, sem reabrir a sua aceitação. Compilação Vite aprovada, sem alteração de versões, manifests ou lockfiles. + +Os 14 testes de B1 cobrem confirmação autorizada; consulta e gestor de A sem nova permissão recusados; revogação efectiva no pedido seguinte da mesma sessão; impossibilidade de delegar o novo direito pela gestão de A; âmbito manipulado; acesso cruzado entre unidades e entre empresas do mesmo tenant; versão/contexto antigos; fotografia preservada após alterações de cliente, serviço e prestação; moeda/regra desconhecidas; linhas incompletas; origem desactualizada; repetição/conflito; bloqueio API e SQL de edição/eliminação; fotografia append-only; falha injectada no outbox com rollback integral, incluindo auditoria e comando. + +Prova de concorrência com **dois processos PHP reais**, sobre PostgreSQL e com sobreposição demonstrada de bloqueios: chaves iguais e chaves diferentes produziram apenas uma confirmação e um evento por rascunho. [Resultado](proofs/b1-concurrency.json). + +Prova HTTP com autenticação real de contas sintéticas, CSRF activo e sessões distintas: confirmação autorizada, leitor recusado 403, contexto/versão antigos 409, repetição recuperada, conteúdo diferente 409, alteração de rascunho confirmado 409 e fotografia inalterada após edição dos cadastros. [Resultado](proofs/b1-http-results.json). + +No navegador isolado em http://127.0.0.1:8001, ligado exclusivamente a `sgf_tempo_test`, o gestor entrou pelo formulário, preparou um rascunho e confirmou-o pela revisão explícita. A interface mostrou moeda desconhecida, referência interna, fotografia e pendências. Após saída, a conta de consulta entrou pelo formulário e consultou a fotografia sem botões de criação, edição, gestão ou confirmação. Não foi apenas uma prova com `actingAs`. + +Provas visuais: [confirmação interna e pendências](proofs/b1-01-internal-confirmation.png) e [consulta com contexto sintético](proofs/b1-02-read-only-context.png). [Métricas de captura](proofs/b1-capture.json) verificam correspondência entre confirmações, históricos, eventos e outbox. + +A instância de prova foi parada; a suite final limpa os dados sintéticos apenas na base de testes. Não se alterou a ligação da aplicação normal, não se terminaram processos de outros projectos e não se publicaram conteúdos. + +## Ficheiros e comandos + +Novo workflow `app/Modules/Services/InternalConfirmation.php`, integração em `ServiceController.php`, `ServiceWorkflow.php`, `routes/web.php`, `ServicesWorkspace.jsx` e rodapé de `app.jsx`; migração indicada acima. A integração acrescenta estado de confirmação à lista, protege o rascunho e evita pendências posteriores de origem reescreverem a captura já confirmada. + +Testes em `tests/Feature/InternalConfirmationTest.php`, fixture `tests/Support/InternalConfirmationFixture.php`; preparação de navegador adaptada e worker de concorrência existente reutilizado. Scripts próprios: `b1-access.php`, `b1-status.php`, `b1-concurrency-proof.php`, `b1-http-proof.mjs` e `b1-proof-metrics.php`. Documentação actualizada em AGENTS, README e especificações, respeitando as alterações posteriores a A. + +```powershell +powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\sgf.ps1 test +powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\sgf.ps1 npm run build +powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\sgf.ps1 php scripts/b1-status.php +``` + +Os scripts de concorrência/métricas verificam explicitamente o destino `sgf_tempo_test`. Parar a instância de navegador antes de executar testes que recriam essa base. Recuperação de acesso mantém o procedimento assistido de IDENTITY_WORKFLOW.md, sem fornecedor ou recuperação por email. + +## Limites remanescentes + +B1 fixa dados internos; não emite documento comercial/fiscal, não imprime/exporta uma factura, não confirma execução do serviço, não reconhece receita nem produz lançamentos. Não foi criado consumidor contabilístico. Contas, reconhecimento, moeda funcional, regras fiscais e arredondamento fiscal continuam por validar. Não foram implementados recebimentos, reconciliação, fecho, reabertura, correcção ou anulação. O restante B e C dependem de âmbito e autorização próprios. B1 foi aceite com estes limites; A permanece encerrada. Não avançar para os restantes incrementos nem publicar. diff --git a/docs/SERVICES_B_SCOPE.md b/docs/SERVICES_B_SCOPE.md new file mode 100644 index 0000000..16bdc36 --- /dev/null +++ b/docs/SERVICES_B_SCOPE.md @@ -0,0 +1,83 @@ +# Entrega B — delimitação para revisão + +Data: 25 de Outubro de 2026 (Africa/Johannesburg). + +Estado: proposta de âmbito; não autoriza implementação, migrações, novas concessões, emissão fiscal ou publicação. Base: SERVICES_WORKFLOW_SPEC.md e entrega A aceite em SERVICES_A_DELIVERY.md, checkpoint local `ca13acb`, antecedido por `26b80df`. A permanece encerrada e não é reaberta nesta revisão. Este documento não constitui validação jurídica, fiscal ou contabilística. + +Actualização posterior: o utilizador autorizou exclusivamente B1 — confirmação interna, fotografia imutável e captura das pendências — pelo prompt anexado em 25 de Outubro de 2026. A confirmação interna não é emissão comercial/fiscal, reconhecimento ou contabilização. Moeda/tratamento fiscal desconhecidos ficam preservados e não bloqueiam, por si só, esta confirmação interna. A permissão específica foi conferida e confirmada separadamente antes da concessão. Ver SERVICES_B1_DELIVERY.md. As restantes propostas e pendências de B abaixo continuam sem autorização de implementação. + +## Regras já validadas que B deve preservar + +| Regra | Consequência para B | +| --- | --- | +| Tenant, empresa e unidade distintos; contexto e permissões explícitos | Confirmar ou processar exige autorização própria; os direitos de A não bastam. A pertença ao tenant não concede acesso às empresas. | +| Clientes e serviços da empresa; rascunhos da unidade | Reutilizar as origens existentes, sem duplicar cadastros ou transferir registos entre âmbitos. | +| Prestação, documento e recebimento são acontecimentos distintos | Confirmar um documento não confirma automaticamente a execução do serviço, não recebe dinheiro nem liquida saldo. | +| Histórico e captura durável transaccionais desde A | Consumir acontecimentos preservados, sem reconstruir o passado a partir do último estado do cadastro ou rascunho. | +| Decimais exactos e ausência de pressupostos fiscais | Não presumir moeda, imposto, contas ou arredondamento. A precisão de entrada de A não aprova uma política monetária/fiscal para B. | +| Idempotência, contexto/versionamento, auditoria e protecção SQL | Repetições e concorrência não podem duplicar confirmações, eventos ou efeitos contabilísticos. | +| Provas sintéticas apenas em sgf_tempo_test | Nenhuma demonstração na Tempo Lda/SEGI; manter a aplicação normal e os seus dados. | + +A arquitectura de contabilidade permanente e o processamento independente da contratação da interface comercial constam da especificação geral. Os mecanismos concretos abaixo ainda são propostas; não estão aprovadas regras de lançamento ou conformidade fiscal. + +## Âmbito mínimo proposto + +1. Pré-validar uma versão exacta do rascunho: origens, dados, contexto, permissões, regras aplicáveis e pendências. Mostrar separadamente bloqueios documentais e bloqueios contabilísticos. +2. Confirmar documentalmente apenas quando os requisitos dessa operação estiverem aprovados e satisfeitos. Criar identidade própria e fotografia histórica imutável; não apresentar uma confirmação interna como factura fiscal sem validação específica. +3. Capturar confirmação, fotografia, auditoria, evento e trabalho durável atomicamente, reutilizando a base de A. Uma confirmação repetida da mesma origem deve recuperar o resultado; alteração de conteúdo/versão deve gerar conflito. +4. Processar eventos por consumidor repetível, com classificação explícita: sem efeito contabilístico justificado, pendente de regra/informação, falha técnica recuperável ou contabilizado segundo perfil aprovado. +5. Quando elegível, produzir lançamentos rastreáveis ao evento, documento e versão das regras, com débitos/créditos equilibrados segundo as regras aprovadas. Persistir o efeito e a marca de processamento na mesma transacção. +6. Permitir consulta do documento histórico, origens, pendências, tentativas e efeitos. Nenhum lançamento definitivo deve ser editável pelo formulário de rascunhos. + +Não incluir recebimentos, afectações, correcções financeiras, anulações, reconciliação, fecho ou reabertura de períodos. Estas operações permanecem em C ou exigem delimitação própria. B não deve usar uma rotina de reversão improvisada para compensar decisões ainda pendentes. + +## Preservação histórica proposta + +- A fotografia conserva os dados efectivamente utilizados: identificação das partes exigida pelo tipo documental aprovado, empresa/unidade, origem e versão, linhas, quantidades/preços, moeda, datas aplicáveis, cálculos e versões das regras. Só incorporar campos fiscais depois de definida a sua necessidade. +- Alterações posteriores do nome do cliente, serviço ou rascunho não alteram o documento confirmado. Ligações ao cadastro permitem navegação; não substituem a fotografia. +- Guardar separadamente datas de prestação, documento, registo e reconhecimento quando aprovadas; não inferir uma da outra. Guardar autor e instante de confirmação. +- Fotografias e eventos são imutáveis, com protecção também contra SQL em massa. O estado do consumidor fica em registos próprios, preservando os eventos/outbox append-only de A. +- Consumir eventos antigos de A com classificação explícita. Uma edição de rascunho não se torna receita por existir no outbox. Não alterar nem regenerar esses eventos para simular acontecimentos financeiros. + +## Pendências que impedem fechar o âmbito de implementação + +| Decisão necessária | Quem deve validar / efeito enquanto faltar | +| --- | --- | +| Significado de confirmação: interna, documento comercial ou emissão fiscal; tipos abrangidos | Utilizador, com validação fiscal competente quando aplicável. Sem definição, não implementar um botão ambíguo de confirmar/emitir. | +| Campos obrigatórios, identificação fiscal, datas, séries, numeração, unicidade, momento de atribuição e tratamento de falhas/lacunas | Validação fiscal/documental. Um identificador técnico não substitui numeração legal. | +| Regime, impostos, isenções, evidências e cálculo por linha/documento | Validação fiscal. Ausência permanece pendência, nunca taxa zero. | +| Moeda documental e funcional, eventual câmbio, escalas e política de arredondamento | Validação contabilística/fiscal. A aritmética exacta de A mantém-se; não converter automaticamente em totais fiscais. | +| Momento de reconhecimento e sua relação com prestação e documento; datas de competência | Validação contabilística. Confirmar documento não implica reconhecer receita automaticamente. | +| Plano de contas, classificações, dimensões, regras de débito/crédito e vigência das versões | Validação contabilística. Não inventar contas transitórias ou mapear nomes para contas. | +| Pode haver documento confirmado com contabilização pendente? Quais bloqueios impedem cada transição? | Utilizador e responsáveis contabilístico/fiscal. Proposta: separar estados e não chamar contabilizado ao que está apenas confirmado. | +| Período admissível e tratamento de eventos tardios ou datas não autorizadas | Validação contabilística. B deve respeitar restrições aplicáveis sem implementar o fecho de C. | +| Quem confirma prestação/documento, consulta contabilidade, processa/reprocessa ou gere estes poderes; eventual separação de funções | Utilizador. Novos acessos negados por omissão, sem herança dos direitos de A; aplicação efectiva exige confirmação específica. | +| Perfil sintético exclusivo de testes para demonstrar lançamentos e recuperação | Utilizador. Deve ser identificado como artificial, isolado de desenvolvimento e incapaz de activar regras reais. Não valida conformidade. | + +Não é necessário resolver agora as políticas de recebimento, reconciliação ou correcção de C. É necessário definir como impedir que uma confirmação de B seja posteriormente alterada por caminhos não autorizados. + +## Ecrãs mínimos propostos + +- Pré-validação/confirmacão: versão e contexto explícitos, dados históricos a fixar, bloqueios e efeito exacto da operação. +- Documento confirmado: fotografia preservada, origem, identidade, datas e estado documental, sem edição directa. +- Acompanhamento contabilístico: evento, estado, motivos, tentativas e ligação aos lançamentos; reprocessamento apenas autorizado. +- Detalhe de lançamento: regra/versão, origens, moeda, débitos/créditos e evidência de equilíbrio, quando essas regras estiverem aprovadas. + +Reutilizar navegação e contexto de A. Não disponibilizar botões financeiros simulados nem expandir o sistema de parâmetros para além dos dados necessários às regras aprovadas. + +## Provas de aceitação a exigir à implementação futura + +1. Documento confirmado conserva a fotografia após alterações de cadastros e rascunhos; SQL em massa não a transfere nem reescreve. +2. Falta de configuração gera recusa ou pendência conforme a matriz aprovada, sem moeda/imposto/conta inventados. +3. Dois comandos concorrentes não confirmam duas vezes a mesma operação. Definir antes a relação permitida entre prestação e documentos; não presumir facturação parcial ou múltipla. +4. Consumidor repetido, concorrente ou interrompido antes/depois do commit não duplica efeitos. Falha técnica distingue-se de pendência de negócio e deixa evidência recuperável. +5. Cada lançamento liga-se ao evento e perfil versionado, é equilibrado nas unidades monetárias aprovadas e não se apresenta como definitivo com configuração insuficiente. +6. Eventos históricos de rascunho conservam o conteúdo e recebem classificação rastreável, sem receita artificial. Activar posteriormente a interface comercial não repete o processamento. +7. Direitos de A não autorizam confirmação/processamento; revogação produz efeito no pedido seguinte. Testar acesso cruzado entre empresas do mesmo tenant, unidades, URLs e tarefas. +8. Prova no navegador com login real sintético em instância isolada; suite e operações destrutivas apenas em sgf_tempo_test. Dados reais e checkpoint A preservados. + +## Próximo passo + +Rever as decisões da tabela antes de redigir o prompt de execução de B. A primeira decisão é o significado da confirmação e se se pretende um ensaio exclusivamente sintético ou uma capacidade documental real com requisitos fiscais validados. A existência deste documento não concede autorização de implementação ou de novos acessos. + +Aceitação posterior: em 25 de Outubro de 2026, B1 foi aceite no âmbito demonstrado de confirmação interna, sem validade fiscal nem lançamentos contabilísticos, com checkpoint Git exclusivamente local. O restante B/C continua sem autorização; não avançar nem publicar. diff --git a/docs/SERVICES_WORKFLOW_SPEC.md b/docs/SERVICES_WORKFLOW_SPEC.md index 649644c..34021a6 100644 --- a/docs/SERVICES_WORKFLOW_SPEC.md +++ b/docs/SERVICES_WORKFLOW_SPEC.md @@ -190,6 +190,10 @@ A não emite facturas nem produz lançamentos contabilísticos. Documentos confi Após validar campos/regras aplicáveis: confirmação documental, fotografia histórica, eventos/outbox, consumidor repetível, regras de contabilização e pendências. Demonstrar contabilidade permanente mesmo sem interface comercial de Contabilidade contratada. +Delimitação para revisão em [SERVICES_B_SCOPE.md](SERVICES_B_SCOPE.md): separa a base aceite de A, propostas técnicas e decisões documentais/fiscais/contabilísticas pendentes. Apenas especificação, sem autorização de implementação. + +Autorização posterior exclusiva de B1: confirmação interna do rascunho, fotografia imutável e captura de pendências, sem emissão comercial/fiscal, reconhecimento ou lançamentos. Implementação delimitada em [SERVICES_B1_DELIVERY.md](SERVICES_B1_DELIVERY.md). Não conclui B integralmente, não reabre A e não autoriza C. + ### C Recebimentos correcção reconciliação e fecho Completar o cenário sintético, incluindo os dois recebimentos, correcção ligada ao original, reconciliação explicável e tentativas de fecho com e sem pendências. Demonstrar concorrência, interrupções e recuperação. Utilização real fica dependente de regras e responsáveis aprovados. @@ -224,4 +228,6 @@ Não seleccionar fornecedor, API bancária ou integração de pagamento. Não co ## Estado desta etapa -Entrega A implementada após autorização concreta e aceite pelo utilizador em 25 de Outubro de 2026, no âmbito demonstrado e com os limites do relatório SERVICES_A_DELIVERY.md. A base de identidade aceite foi preservada. B/C permanecem apenas em especificação: não foram implementados documentos confirmados, emissão fiscal, lançamentos, recebimentos, correcções, reconciliação ou fecho. Não há autorização para avançar para B/C ou publicar. +Entrega A implementada e aceite pelo utilizador em 25 de Outubro de 2026, com os limites do relatório SERVICES_A_DELIVERY.md. A e a base de identidade foram preservadas. Posteriormente foi autorizado apenas B1, de confirmação interna, fotografia histórica e captura de pendências. O restante B e C permanecem em especificação: sem emissão comercial/fiscal, lançamentos, recebimentos, correcções, reconciliação ou fecho. Não avançar além de B1 nem publicar. + +B1 foi aceite pelo utilizador em 25 de Outubro de 2026 no âmbito demonstrado de confirmação interna, sem validade fiscal nem lançamentos contabilísticos. Preservar o checkpoint local desta entrega e os antecessores; não avançar para os restantes incrementos nem publicar. diff --git a/docs/proofs/b1-01-internal-confirmation.png b/docs/proofs/b1-01-internal-confirmation.png new file mode 100644 index 0000000000000000000000000000000000000000..b9e125167f13209a31c6936cb66ee012e728d6e8 GIT binary patch literal 98827 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

fcs4Ih+EB@IArlkYmm)P=M}$Ns>Ru2o3oI9 z?x9cH&3%PNYp~9^f$?rcQ6@sJ!kzi4GEJ#BRH3%YSA!MP{$O&k*Mr0F$5xR#I#Yan zMwBQ$QYrq*1X^0O1X}3m_CkNmb zsU-?B`vT#!H|sGQRs>a>E0(X`*`otRPEMx3Pko6axfL;7h!DOn;z4ZRQsaAR5MD>j zriUhPgrPSb9x3f%qmz55N&jmj_GZ&NqF#F*ZhkMN&kF81HQ}@s^O41A-dFN0Z07E@ zc6+EdE3-9E)WJN+(l4XXKLYp{S7~|7%?zIJz#Ki~c(kG^u4Y5~dw~C~j8wVMnr<1- zc;#$z`-$g*OQ#w3O+uQ|isTn{x)V?tg!f&}F%P=0otZN)|r1_nw0%$OP-=Us`VQQE-jK*uUQlE)Heqz1M8gBbDYFCw(}K+{i=-e z(h!hn~#9-JML{+7qh1<}9Wk8?`uS2YN>~d$QeA_D( zRh)(QC2n#F?~#B9P9LqQ)<=avmh-y*96M3M+_^pe<6BpIUS*i@C{;B+esfVnQ0|P06{yR4HS+dxY z{Hoe5r;dfOB*bv5RrN0|OB-;L#V@=w5RUbM@E4bju|ZhQu@LlOnk2;1GSWFB%9J1e z$Eq9AF4FVU|GADW6yq${mQWuZ zXhm%)!}z14;k_X@K*>4e5IuWMS%3^#aw(L_S|H+Tr>hgFtvjZV4#$rh+IF=JH1ejB zT?zq(GL1|vk=0xkYfva*JZE}V*I#PaJ{$R212Gg9ePO~;6IS_3DrnS4?-d%tTb7X* z?o2E^J}p<2-TO1w8`_%YNrrWLNW3-{^0YQL|FgQv2bITzN$9ItVM0T^W;6R*;^cN* zmHpfTG>7WM##O595Z}=FHC&#R_R);p%9G%WnQtP24XeyW`-kNx%tr~+5k=9HPJsOf zi@5^H>7knr3C4Tjt;@xXmzrOeChA(FgQr^__I49n!$T$sE=#qH-Laqmxdd*+=ZHdo zti}ef+~|%aV)e9ECN`X}3$vU{T&dZdP@HlHc&X;SZ$-%f6Ugq)t=k=&{jCpkI-unv zP*i(;=G_qX?4RwbV@T=#nHNIXSab%FCK>f=6ldM|D5CVlndD0)a4;K#(d|zT?+RcU zZXg39B`wlf3%{Y|UkIe|L7~yBrF_V%MX+8AOy6P!H@zmPX>K}EjK1$5ce>U%<%dqy z?#vXPk~?YoBYTqAyuzQCy~Zr-8l^CjEs(*ZEd257CY7A3@d9yIML#eSwIV}ED;*mo zSsWQG6-wshMfgTMt{vs{a_es%lB3|NW-lwp#w9dBA!~ff8}%gk$71+I{s!B~38_j| zrb{Mwml%AtnVd1}pxE|`n;(C_+17JClk^~1%9Wk@9NbZ!1P8PaijnfC_ti~b^;N&% z#lUY7guDCezjx@60cw5C5OP{pu4hd0h`#$Zg7a^^ANMYFH+ET*Ulmd}D9&f&F-yKSUY{DkF{bk= z+?TsJ9a%)Nf0SBLtiQA=zjQ@Hz?m0mhYCa+gO~oTvznPsyM}}^`nh=C{4Zv&|91Lc zeuw{*U+{mc#r_|?>0c6&e@H|gLkRD*T}T)jTw4rrvTfU@nq{tj~>WjTrRQThpG#bp^{O&Gyc`h5?Q&cmJ+SR zGgs2_|Lw?FMFYW+wdz9BxCZ z8+Ok~Ii}yS3Xok=o{qWCfVl!}4JET0k$~;0Pr1kA*mBXid>gT|I*=>Qm()Z_;thyk zxCyJ6LaHI6gAU6^!$M!JxO`xC*}u1s9Tx&5id-r|X${dE;ZG+GV%cZ;^dHX?s`1 z@|fk_I@T7|05vD^eU4tA)ckvxokf&);Saw%Fd&hy!cd4HXZfUFg7Ce8k{1q3@F;Gd zvRAYndvy)T-zd(4UyPx(QrQUrJSlBD>#1UsSK#xSg`|dGGz+eU->do}bSkI=Ay~OS z3iO#t-tc!h@V9`G;oeh_R#E3HGRNHc!qY>&-{o69bl2>}fmej=J+m2KWSWHQog29a z`569-b^;M_d>I54mWjO8t8wNTB|YkD-c6XFdT3+z@=Srf zqKI}TI_m@VoJ+wqM?VYU@Fc{LgH^N1fKNBzE|v#MV&OMHigoi3hZh{KeY)9W*VZ5? ze`r=B;m3^Hy&EksHnKv;ANju-#X&~+emoxNd&?+AVm^4pLK-M6tcw*uNvwWr9BCN0YMT^9ZP1~bHxhe7X80p!zQVY%~UyeKFJCrtd9Q%Gm9xB0z0=0_nCj zT2s>GQ*YdFkA2TKraW#8o=v0z@7znz73-EVKU4{db)<8}HY2)y14V=US*b%g_I z<}8kHz5lXw6d?K__L&ZSavZD(cTCt?N~{{%=$eiYb^<(ZIGWSwWt?6V;Ab|bVxkiF zH0}!ZJQBKJqcGx4HCM7Ho0c9D4h71gYuw%-fH5PtD_?KOwGpfsBmMzT$?}Z>kP~yH zy?uUJDa1vK5^W7N7D^zh#vLRIBInOH>EjJ6PDo7|qltHvi48~gCS<}(i)wP0J=ht853mpLn%Q=!+*Ulb*8q@OpG8*Z?5MX>y79CUK% zPs+7(F6Zvg@=p{+NVOyy-RgM+t~Inn^-!H8GgS|xwU4f8V0`U*5d=fQ3>HD_o=Rg# zt@#(nQN;*g`+2H*q8*5JCv%VNlz8<;`q%4D-7flAL3T(j(G@;wdwLnmJ><}fc)PTf z{O3Kd^7)|_U{klzAb=ouIvG#1?QAs|Y@T}IM+vu-0 zA^mrG)ezP9!n0qMcoexome9)PbvPOVAK$pGK-EZjcJWozL+Yd6QuOnR@eV`LffU(m zw%96Pp)R@>A@%s-yweOwtuU8C>T8nl88QZ_CA z;(7&{ZM+}Q+a2yQ7k*AcgfGco@I%VmSB=pG`(31|bx3mZw5HhfGM@D9`U-J>+4y5m zI=LeoV=tFmM}-OP6AdUSf%%vuR47n?3u?WJQ}``zk^HQ9s9geesN|S5L&Ngc{|RY- zVt)Rb(IdFFbR9Un8A61>@n2QTJ-X6C@Ng+9#tVSs`aCXWjaU zgGXOM0|T>G!1dah6#?pcI)q)T+SRU??ea?|xu>(G9aKIopgzRb@`p8>@c9+4(x;;# z{4ERW^T_%uOv$}wrshFk&jk8uR?N3GQlbGQ)5mquL#q`$76Fv%_ta8S$2s|`H_Xr% zt2#=snHS44vVDy)U67C|mJ~Uy`iy(Fl_SvylRyUm(fkyTp8~o5_TRAu{$8g2Z{}UM zuipGSnu?PG#`krLOC;*yKQHvbp`_}+Vs0%Y%J)uVvc?C8 zc2Az_j=HuD)^ftM5^8nvEFea9UA&T}uk%y;SVZRblxA*c`|t0Lz)|x+xox%SWu`@e zJ;gI4w#f4jULhAL!XIgFIO?npzJh6EOk7`nKXZ`MugT(lVoKVPd8!oBY9kUTjD_9F z`E0`UcUs}C=v_4r1xG#)c;fz+QI%W+gPenR95489n29TPuyd?#krb@Wv8qCj3pDHUn*{UspwFI?h<^Wm}#W zeh<8P?<9#RRdnGYt5`{iPk=NW9scXs&fScaYEiLPTM;$O4m*R^u4>Lq4L>UB$O1kE zEib>pG1nJzAJt39!ufIxNf)t`l}2+ZC8~CIBU^@hGE<3%!c7;_Cw;oyJQ>}oWyom( zn`j>wT_FICk8jg3Xcig&!r@FrNFc5I7~WlL$`>g*X+HNCmulgr|D8DeN!!Fh2tEgL z^wxVf^yA?jPl;FLkjEYlp`|r5JrM@<2*3t!h3^l0b!~Z?ogaF`Y`QtwaY9br0}--H z8ylH_$jz!=0-c&Pnn#VD`iyOmYe zL5u$W!~De)pD*u(OnzRdHlJFjh~!E6vsp!?0()|326s)+F-nz^SpS;QbCyahnm&_D zXb#f1z~}F4b4h)E6cOc(+fF^dBXH@{*B*(N9kuq#;sKyTzePJ}1hs;M@&8(8DAmLh zou=s^nRijG3paGwyH+?96=>C61^|WKY9i8z7RqK2i&_b#mkeuKPP7cf09bn-7MNS5 zyBtpr8B`k{!)C4S_K=6*W4; zpCTzx#@zxj>ygnyWf$tzMO?98Cl5eTXjH-#Ijs9n$#OHEKp8^MZ{ zGFW)pCJJ46a1ePKhTAsB_bZ2jUW@-s{-cYnXq}=yR!|b-<%U)&p9W~7nr9Q9e>_G4 zJDk%y9_*+k_;mMqFiZhm#6z|6${|1`ulu3^%ImuQc9V6Jr7QR^u1~dAx)+o4?QPz9 z(s(erJsZ}Yuy5UAaS@iW2?*id$YS$@G)ANT5daYFF~uu`|1A1R?lUD#MZ_Je{4?F@ z`W9r^st-ojdOE>AwYnS=`P{W&M}Gw5TG=9Yanyu0-p9M(6dBY+g7`yNRMXeI*w_V7 z_Jxb%X3;;6%9(3E>aN=SP2mZ}((`iqh~LCt~cwqDg`5#AiJ2y z#FE%9P0=+KH8DDf5D^xN7t!IQCA#g>42>xBc6rrqsW;jJ<@MWak;sIVP;Ua2RZst6 z%YF!?(CQgbhrSzMT1X{#PlDG8Y1_IsL$>-5!>|?TRrqaMy~;qBOXW~#?x-8T4qFt% z^xHq&E!=9M1@FlJhEt%J&ylXzVQ_zwPW;*UxH*?uvN&7%nTEmSY18@i8e`?#sC`Q z(}%4FZS&l){DxG=enS8NO@69O3H=nOa4EKAZe87~{;7rsY$Ux|Q##$y0Ea$&+&HoC zukig`J@?eZQBP3lxw*Y#PbvHJ^TimrTxMmvTuP1?pRW5PkM_ZEG;e)Zw{3Mi!}Cs@ zUO%ikDWLPBf3{;g`rt@Wng6At!q<$Xj32$U>}7vhlQ-yJo~TmOPMcUQu!p_hPTV<} z$|LYrA<#wR*8GK={Pd80XUsQt6Zh+Z#QgbVKvWcSty-itmB`(+5_~|b)NGu=HZ^d- zQ;n~yTy7sywwJ7`A52VDOYLZzEP5&jEm`0+-XmcdNtkouSG!0C4$3kb{GVZ&7aE00 z7So&Nl2c55ea_}Cx#>CY2Z1+?M?R+TOZKl%L|5ENDM6zlOus2MO5t?Ngs`J^Tj4+z z1N^3#ZD#pRXM80_YJ>M{bYtCm+SGJ`0<}43<_kS`CD}lUXt7lK@|0uG3rH)O^U)s* zQ|8V$nyFQ^^lHK_kBgJ^oxVii-u&IZ_kZef{%H;MuO+d6xu*Ue-U$?YR) zX<9YhmH1pDF2ez(*tE>eAzyoiPx zScfSN&2H#;^3tw|1t|O|7fl@~ZtgxDBW(@TX^c>@4qAwwK3a!%zVa zZ8f(8Hym#3J-#;|D zMFIkkb)h{2t84RNxRfxo=*Ia%i3D*PcMuT*l_K#d#10tt|#43ioIKv~Nv$f{dc% zYKQnI*GK;J5@9d*>eq3UWPTrL7jOiw$@?iV%IW#XPWuzlKdeeJ_dX`nfhT8c^baHZ ztvc&*)H^t^C*K1V@%w#YW8(l=R4X&lW9WlBEiYW+QlAb+tJ3V zyjBMF2kq-SKgpE=hDYR9N9Mt1g`RvfQ6jQ3w0j>za97VMDTPLjD{ocnz-UMcWny(BNZ-jHQoz^*OIq|x-fdOQ z)17EKD7Y>^x)2#Wy=jfq@kIAWHNnQ~7hbq@HmvPFIjQzQeC@(C4FMyq)R@L^=f84~ zX``H$K%>@Zjad=~?0z%%USO zFDo_>GZjq}?QMb$H7&=VELadWp$fTAeGYS5oNuoR&fdbJoBSPklY+x{hHRr>*iRJY z5D!6$@1|YvEWAL6t9A}C9>|x0ibR+^t9f7X^y^FSI$w2#KM3&_Y0Vf++%cmVj4v1z zEwc1&A6UkBc#uBV>-AymRnw_u@}=EQlm|boL@4pnb=kwoodXjgxur2Nc?$xWZ?Su+ z?W0AMrCmAeU4;|zyyenojvXPhJnrQ#k2(%*wN4I{OH;dvi3?H{3?@`cTu zrL)w+2YKt9_ez`0FDd(d3?Tp9t*0%iEiVVYL}=|#8F`$@iUH>4{l(Qur1vd>6W00? z>byb8Z{=lSm(0)`g8SP$kO@$fS&pb_0^Nf7+LsEz=MEnx!{oe(8&)wbR%*eb-Y}~FNd_LGs(1qoi9$8N``^$8i(mp7I^{{;=qI*A@3Mpg9$x%6rBjuY}&9m z@EgVlA71~1@VeJEaBRY#rmGo1N|D{VpT@`lkqVc#VE9n{kq>3KTSNKu0Q`u^%*HOF z22>xnmE)(;b?xxRGK*(BFLQ}L_#Gtw3`F)`Fe!V$ZmbEP6q!LMhH$!eJA0g?=%K;u){|cq}fG%7n`AnQ*LKEF>QiM^lz|^|baUV^suj^1#ntJf^Z8{pl7xpM!Lx~ib zH!wgi1g!94wZ8O~Yy#Sc-Xa%A$EfQ7IZzwC5@&vTE6;Z5)3U{kRPTV!6@%_nf(UZ) z0DH~C?aQzD_Jl6$idMM0>GnN@&?hX2A|_?BqRwPHdt^B27*u~yZ&rxUgnb8ZijO7c_41t zUyAt%^pXq@4}$eehzfM~p!gG8R4o{gQ5yzBK|x63wp#ymnx) z2bEX^w~9_wQeRF}LM^>{SgJf+slub~qLxV7SRC9gJ6O?h#jyc;lueq0fw50TKl8@4 zHO$*fw^~msQv|~uOXSQw2GZVj-3%O34Q#~r(1By66}bu>x}>iGI46buI>+)BUMIG0 zkGSHM{oj3d-NB7j7Wi+0ik9J0*)MCmy(1ImMLnR^MD1II9|BESRJ%$`K11&^$SMRg zpJV`=#aY#+W+O;0V9}YuiWwr*(pc}@12v1!d{eyxi3FEozgAO7l|_G_2X?K-JamPJ zPvbAHC-0#Sv?dT^YO?t40HC(b*DaV;4MT5eAN5ugALop!P!Xt|l#9%I@P}w})aGJx zxD(^^Q>+-#e=4ef$4~M47rw^nIVHX@b zxO-~OtO?}w{yOh%-TvwY?*IdZC@2nw=Iv1ntdMLjfQ>Aatv6 z|5j?p%$x6GbnU9!zx3({BdLO^QPu!8D4&i1V&#*E%l3d@3gM1bLPH!8F~Y}^Y}jre(kZY za;5YB9_+}bXfYrB(hl77d5RE{FjZ?Ua6i7_RymWiup8cCk5ftNtKKQTUSR$Z`b^3m z5HlDpL#70;%K!%;O_e9#;a`1EX&@h}fk)q&FS)bz-QcJT#;*mjBU8=gBYL-T5wFChcfzdR^IMB^SeX zqD`-jOmMya=LoDbyppNpmnJJ-nEhuS0}@VN8=KBGJ%9V}gWLZ3P5JjT|I(!VS4|3l zsuPUra|uPa^YR;#p8_F(q}{HtcYme-$i8z$oAT{pmN{&v$Q+7 z7^)pi7G^9ViW$#ISZVT0I_St@;Nz1rLnsWwR1WlTCFbpO zxj$VTyZRfK##o9t5>cGy&bT_~lj5zwr14sS+m&xvq zEz8OA&Q^#n?P7@-B%jsP(JCS4`8_%ASUfn5TAGci*peC9>+SDT11Ra*(u&QpenOPrul{DQ{AX z?wW#jug*^;Q+512a`JF)Py<35l!vn(y*1j~sAGx{-P9JGI4pJ`!PGyhSgA#77$x-5 zSBWl1{+z7?1kPYv@Mz1n6Yd~%=~w9Q0;W>ClEMWh`$`3wq#i4(+w(prr_m_3r;C~} zCNG%2HZ-ddItuA=x$HRgARdG5d76aRyZD&iSd>j#XMG5w3rrRBALGQt|CWt7#G9V& zgTy+!r_~xNuJ3_XuGg2khFsR4GE5?8R3uZ-jfxYgH7N?r=B(Dvm;v6YaE4jugFs0a zBEJdSHPV}#&4D=%X-7a;)&)ylA9HJGn?=ifT&u&ge0s`9?Q_~9{^FXXuI&rObDV97 zHAwb-EUEW42IEhJ(WBmJDVdrROOjYC9zLsJI$nnUsppQc z_mov^*$dpQuUO+-ZJT{V?JCIJNtVK3a7%!$4?U8XBi#OBB<06->CFC4wZ2ddjwjY! zBNCaozG*$5o%~Ym`kfbIF&pt-<8fhcNj+C6qRBxfEX|FBwBX^i5cd(r!X`7lPy0X) zmKwFo`RtCh7F1%f40p#vwL9N$bS^5Ip9AyQrQET0&zBWGX7WMRdJ|`IRFqDH?FFZ0 z^w{13)NsdTX`lGSPx!={+os@K!uDZt=L4jpIB^R0GKQ#Nk3xudIJOaqZ`g)dhBpYR zyc7)Gef>4`^Cc!~fA)A!El-1Z;LPI*PQ{N+dwer;P{1Zi^`Y)YPfQ#LD)*k33fH=Z z48FC=jP8(`KI4w+N|-0kv~dnPNB{lcsLZre71a$DMhLADRPH%1?UQ#2#wH*(?1>L{ zUv`2W52FyAXNlPr$$7!s#?G}wRLrP>0f9pU85}T>%w-P&e7lERrfz%gPXEyIdfu(0 z&mAs?M!lLyrMl;qkEPi}av&5TX(0`pmVC=TD%nOmg4yJ55w=fMd6EY$pM+N9(U`}_ zwyTJ6J#v*FukGe%{^SLQ@?0~dOwE3QnhkONw;QPcK8pPN>%Z~?|4V-0=kf1UT4<}!8FZ~vyi-%HE7^2krwF-qN~ zrxta)ixt><<|YKTVkJIWl#iiDC{p;$EAKe)=@iVR6V*H{1-pFJ&jTcL56emi5_8D@ z?d_lVcd6MQAwS4nF~0d;J8f_#ZFJoMt97Vi&fCcPAiBueIr`ZZkM(0bpgVR_)p>2^4p&_TE?-QIi(w|aC=8aTX_z#1VQ{md`a3ec?a~&&{DWL*Ql9Dc zNu+9=dKZNz${BR|A|%rsSdD{g>+y`y$noW5+lvRDodcl7cbRBo zKWtcbS4RsLF|DQH8!b+tABm$?eeSO_?Qd64WZg(I8R{6NCF%R6k ze{xOaK(4-ca`m}veAI!QRufd(Z=+T%2=&h_}2U9*EkJ|x-Sb;w03yA zBQ@v>9CV7O_nXTMw^j^tjSXpT8cIZysp@xs>@Zk&3Uh!Ns2fz<=sM0ganQ-A4c>^E zq|FP2;OzB2f?3PbUgr;n()F&fjzmMiN~Qh~P=9Tt;cs;zmm_!Cv|jC{-T)hq4$rd8 z#lB!@g$fR7xh;tbq$1PE#Z1U&RA~nJJ}bQ>CUQzlZcvg-_ADv8kJKuz8i zPGI)*nCcEJY@(X&p%qrxTs4}9?5^nOhDpOT8-x62Rp6*RUN8Fo7KlaBjI2-4c65QL zY}a`o{@RfQiDbJ_G_9aK{ir~Yf8qMdCl2jzr;mY4|G-%PBf+A`o_Bi}Hi<|^wPfcK zor`eJ#${B)8(VEzQM0mVZ~uuPV=fLFOQ9ofHM$OVmkgCDM>B%nI5kHdaFTFXr&da@ z34)VRdi!M|MnY%b(cBC)cfixVxy#c4U~6Hh;OiXq9X(gioAK2l*NLiPudIrudGo+| zOio){dJXNQx=?)aU*%s|pO_0rF%8GD^c;d{MV|^{5v~R=^tHNP=Jqy2 z@pVrLx7mSvjDon)|H0mS$2FO?Yop9K>L@yj2q?uuRYH;8VN^mdQj*XTMye2sgc2Z> zR~-;SGhjdnWu%ipVt~*CqXMBTB?JNlg#glfFMgT#-Fu(Czwfud@0@+k`Dg#${F5hn zRzaYPM&L)C8io&$UVKs0C77@#-JlwjWY~wQs%4dV#A^6tEM0%* z_a?+2PDfr*EbwxK@G_iC|Kf&pfj0t;VWcgMY7QhzA7qZdO$@my5g7=OaQc1CK1wU2 z?@O{=klVLPuSAY8gUwFE;y2AwmHJ{^nD_?=+)1g4Ew;A`T-iFDFXg?X(Z#m(RK=8S zU-nq9tyHZ{|3d3q*m$3q*2@}lE%veL*moHq*4KkH<$+A8>TkEwurXf&IS$X43FC&* zH=kh=s~%LFC68bH&L!foufeDSEtE1OF~L-+DueSbh#GdEfp zP=!eq-lCFYg9D2U{Gy@FkBIl7?!Ac6?$OM>=RP5Fz5L9gt7i6gBNIwlbAU8#Nc>=l zbKUq_@Ld~u@1>-!+NY`_iM(R|Y9nf0am|SwBCMw> zr{Bw2^{E+8GN3?vaw@e@Q2efxvxvygG13sz1h3nk*@Q5DXt-0e(3+5En=PPis*)wI=H99I9(J!=yjGt5=809M*}__2QSEMlT63ZWZXL#%s>TAij}C>R z3g2j{y-gs8x6Y{~hEC{41=~czA z4(~e<8Gmj811pTTPYfez1Zm$W<%YUa#hrHxJ+`D7dwVUX*%CE5ddro5lv2`Lt=o;^ zO;=jzZYla8^FS3xQd>&f_b)+j0McWa0j&r*We9i-+g$`H@i(YxLx&d zSVcJZLSrP4K#6&7Mq=pt+|&863(b1Mn2N<$_nF~21^pV$XU9ezuHH(9XWWXtt7Az0 z7PtDWXSLxxB|vqyu8Z-Vi?33}ok@_fsfFR?$&;sM7^7y%H^p8#?1iV$3dD@(ch*}^ z+{c3O+4!=z`6~{OIrw$Hts;qqATL&+#G*7m zAZ7+C=rb$FElW~4=*juC)Sryu32O-2+kRkj-QoH<$>gLCsR%%skWfFUg*S6H!J-c24wD#{T_rqud-<=NVdTPYP_FvLXO}Sp+Y?uIiW$yE z!x39u%YmD_G3eM3t)_?Gh5TL()jU!JX-z|8%IvqCj=1>k!$iB#=HiC}uc}@K@pfB) z;_YQh+lg3S9Bw3G>28GlPyEES@e7^6Ipy(WhtIBBcSQ&Jghy}oGyoS8nzwbweXQ0p z1g587q;C2fi?(CtyM=P;-kht18)qv}+o5tht|BQ}>i$p?%w7jZt})e(D;q9SZu%} zwHvL^O;z~A+<_c9!*h)=be8${qz!KZO4A3SXg4PAXGrd>sTX)s`dCdVDR?`7j6OUS zv=laoTTqU&!0CPGB8P7xpneHvEi^%dF*OsLyxhr1sjF!EN*-s$yVL8>k6@l(HGV&juGTl zeb8jUr@#x4^@0taVeH7yG6vlh`cPxdAfN2!A%A@v?qt96l_?`9%H7_Mie&NP%1>TA zRN>@F{XPE&0rG0r9W&&;p(OwD=MBaSJ1P2;f4=VsFi?zzh&(`DSoRmo;l*@TNK#so z5BLO!?@R|q1-JI+zt`0~Go1Qlf2_Y5$6EpfEt0%s*|g!#r@q5h!A=PAeu{V!qzWPy z#)G6-%zPepV~sReX0<~an1L*kNQtzl{#?EWa^iE3&$=e^!|1h2GLKU$tTbU9|59)o zMI_tAO#ulOOpDSk%z(X&MG^wh`KcMF4`hmdTe#L4(AVpbd@T&&`<#y~7B?Ch0@)hmlTcK?`K9^hP2Mi}O{sG_9IilQ&LC7pl`7K?-`hpImV{im5Rzl! z$g`6!hmbDhL3&X&so{$sn~XF0#~rbRmm6e{H9F#+!jjwaq}U;|6pv0=v$a*O>l5o> zFZaDB2WS?83oDonU1AxSaUw!(3hn+_G1R;6NJYk>rPqhjZ#(0P6~G9foIMfSu^u!H@gRM;8j0sKlVONP` z7lFd&z`&{M(U8^WNGWQN6&%{7658yPt0Gx@74!vLsQ}gp?ycwHr8d|?d4^2|s&;Mo z5CFe49x)*albqip#yg8kK+LRc)Eibqj&`5wa>;O6c++6ja8e4;R+W;a%{p0-02P5Kbjj-==M;VO;a&}Ga0vr*!-`>g?wB{D1O z#i4jnJiMiG3bJ?Rnp@9|Jh-EBTHN*8%=0|l2co5SFqGJESJ$z3Vc)QQgd*h7S=MlE z2JFjk5t;8#1GbKxqc8wMRqDg+D+wfsDY{_^G~e6uECCX)FdT|z@oV7buvrWZ)!g*m zew}$@iDq<`+V3)7-AT>Tkud`yrpyNSG%sl_C~IQ1j?4&D7)Nnj;ev`$+J}YC&W%17 z*9$ymHN;m60CsQL4f88Ve2;aD`0ljgO z3q6(s(Ci&GEG|V{q5C8@CCF;NPS;Zb#_EHqhs?cT{n5|bISTz>WW<=Wq-mk7v+tYjwtB?gDp@;69L zGrQ|n#((aYG^9ZvAL;J~%Amqa@$?gzUp~Gj{}7*&)jHn7vHn%FXIji8&65g zhmR3o*r()`F1$6$SE&7UUW^2+1O^+fPkeTnRObsT*_intB(YPU6 zkblLrZ7IwZq#Xsn@oyN~$S~9Ahm*C)j*Fs)d zD9z=wAanRO)o`f*KA&JmWxDcAUY6|~a7RUGvPyE+@3pD+J!bh~Ih_8k!PXm3Q7vsg zd#5E}XUq~qhco@mlOxY>Wl$0ZZ6Uhmt9TT(h$Ld5Ttwro@Yw%2_bw^CYQT2szzaAX zpNgpY3U`_?savQ))OZgC^#TXF&=ZFlW9zDqx`o$O?O+@#KVPEvGT$$r=+s>K+YcB# z?eW%TPF8&k{f_8p!3P?)E;muUFh;IC@Tb7NU@%Y)hTxd?U+!T%MXrovYS=vPII_q^Ftmx>Pv6HJhd zTz$9g=|)TiL8K|m&|q`;H_p1MPkP?fitLz$A-w4Wen>i9Uft7tldM@Hy=)b{%nZHg z!QEHku1Dlh3E9);|L@}=WeJgDT;x`~wn}29xp(Y@#@KokW3We8q1flCakyRja6+bis-Jqz(<=ww@+161& zJ@)RcAdG3N9hKr(9jIb2vV~k~=$W2NjHj&ce}&WsQaoEHYvak*V+-wb0F)ctssr5+ z*y65w+>$;ltaBjUu=11J*{c}LZa=QMWsP!owq(hzgLWv z94>_npSSHRe`PaW?o*R*5Y~75U7ILv(Igo-d=zBd?y9E;2(#bp_x?C@h0P;TMB*zG zk&>}8Ng1=7@#~Ll?%k7r5LOxV8#+v~mRs!EcxC-3eFM4LqTOwc-q2avQ$Hn*tBRWK za>r#i+9{yEn86N4aWi+z+e`5KPh3NhVsB!c!KMgUhl*oQVnh-QhzM2lwG4@U$86By zrXwzk5BYGo?-p~_e1ERg@QG5f%UHP&bzUe;(I0jAG84<-^&m~TvRk`4-Y`^}%F}Hp zm9p|q>yO4qMT96NDh{rTo7DwuH|wOKLIvmWcCy4bA-G{e)Ry zkXP?welSOab4c}e=7#FsYr6(3kOD{q;Y*1;t-#Kj_K$qY9gjodsCcPwu?owQx^6s;nDmJQBp1FKbV%jcf!~~RU7qvGpwvE z+W{2Fc3cvX;}dLp-BHC`H$v4{Z-1*~ zGj6#<7Sll-I*%_UxhqR+yVV8ILDywFw_{vAg{&US?BOd5*eeEIJ;&`XUP z%*COmUH!E*ftB+om!SD7^j9ur9IN4PKUfJ+Rk?oP{Fu@DS6Mjm_z%w8&vEgE=C?RS zR=BwI_02`Sxc*U`OO!)w!}_aWT>SXoxCDXF#nQjm^oZ-UK5XkBwLaq1g8Qos=k;Td z#WPM7e;xAipay^Aw8En7?=58h_1*vR_0N@xe}OLO>U6XdvKzc5>6T#U`_5(U*Gy9@ zHERm7uoW-?ZrVklhL1NKnsQaPraNU# z7wW$66B0Xyx@_FbBbIW{1{tc+-rI~cPv5z5>!;wQhaS4&8;S9=@ zMLLBhgt9tCzA*4!QDn)8E2G+A4$g+>lZ)WDwp;^RAKNu7!x6D7it6M#C9+FUJPOL; z)Nrj*RnMEEHMAMErEJZYmv`iKMRJ1-rAGvh=dNYCpK|D#Id_xW1v^k))ldnzhL79X z%_lZI8Rgs=RH*bbCKOp$nU?pOlW((39eG!zXBH*uzoK`BVz$%P?Gqo;+YsX(j z9hZ<0Km6muIOl#|vWu;bEQ-G_q?$B~m{%nfT9*Igq_!pCR;;l*LRFnfgHmBC>RwaEG6{v-GBm$xRU5VjHF zPnt1@PrpK+Ng6U28WR)Tkz=x%^5`G7{(k@dX_Ee7lH!O_#(EnQyI1mV455S>lFYKA zhx82H4d3rvR?&ld)F{A_eeEv!m?W=7ZDLM-4()dL@2`FRXJro|WaiCq0-crS8eLJe z=9jUkwyl2il=VkRl6gNhdCspW1cPi|#wA?K0xM!Gl_0J}20ZgBKF1+}6}x&jyJ=1+ zQKNUha#Wb;t)3=1L(_Xl+>rNE9I1%ax!>77?Y| z;4+H}03Y@eizroyd|gjbl?4VMtY0UY5guW-7eKjHm!2O}o+)a?)49aiu|6|+CPU6u z#@a(cTY4#`+do~KKnO|7w3`#N)(1kP7#5q+vz4BKVZ#oc6U9An+{KXlnzW9bEUoGg zsxSU9f?Fh6xXrFT?03pFinYb45XAzr8qv|*won+R%iroY=fjW|V;hKjvk@g)HY3Z( zl2#wM)zf6__J=R-y2(*i-yIySE)5QFSUvJXNmWw_J5~mNLrBD<=IG2IG_}OAQUyVY z^dnmI=0s-gim-kzc+L;x7VH>_`#YVL<>Qymmke66LLR9!KOx#hFG0d5?XnANGGZ!$ zp7CW6LYweSaRn8L4AJdWpr!c&Rze>lUz>k>5iP`50{z+~658~g>kj&GQ!Hde41p+5 zSx4l1m90!7_z6J(N3u1FM{K4{w3|C)N4NrvKen(vFc;}N`{#IveWQ+wqpHX!z?fKC zW>k!L)kcl;#}&UeZEk=j#g_6WRlLMnc~Lwrx6RqrhHBgMRoir}PTkvF%q_=hzbMeg zd=5olnXz>7?Jl@^_x+wz;dXJOm0NoC-JdL$h0()ORrxqG3ss^d&b!~G@+!y{h-kzg z4mpk+BV0Y}^|JSu!3=h$J%3&=Q>i#-WfB$>7-Ow6wQ^@O*I9SDfIYk2_>2AwqcNhb zi8BZJ^JQjfkm&GP&W@!4p3;#kWYHi_aG_>X;z%ar>Y2-mC^g5c<+Lr-?0|3S%(omZ z`uXupGpsN~z}C28Xw&Fz`Y$Y+uef$MW8gd2w{NLW`)=>0yJ~l-4!UBNTsa>0QAZgg zY7>(FrOWhL=V0r7VO2SDIf^v{iQwX-eDgipRU(D;-IE#7IcU7Tp~iu$YOL_V2{hUR-cB?g38_gqgL2l-Otf8iNaDMyw`PL`lD zjDAPDm}Hw_=jqHY0^p@cHjlIvCrh8uQIYmb8c6&;-BcudT9^|?t z=j91+*g?m|p&NI$EK0^97pBM|slA$|V?Wajne|?oH+?nvmVqJo-Wnb&k_=zRZ zDQ;%6UbVP6@BHI3_H_hRQq@DlSc$Y+}(tEd>svseDU@rAxdM`i^HwPES7hVC1|oAuVq)XXf#@pG95eS zLmKO#@(dXxVrh(hCqOzksroY2>3 zp}w8&6R$|=bI~)xm$5j$ysvttXLr<*t$2^6q;6$kh^qCqw@7Kc287zxu#>?ptdl@a z&Pt@)Eev#3)wk^8S2G1h8WmQbrVDO$%4Wsw?s)NLWZLAEX6YmMn=#}H>&2byhq$kX z&_?A;q`lWo-LVu90jp*#9{Eb?& zIxY-uIQpOzpCA;$V^f#ga>-@Uh6EN&^toq}M%Ifzad-CKmK)U5^D5f^R`A%@@^oU* z)2>-XpY39!Ay~4daZqt&1Y&afsvkh?wTZ3UY^_)YwI|imjpMF*>9kn+rkqVqTGzm4 zC8Lq{E_+5RyOCNd!J$GwfSL9rb9-rH=CXK5eJyn{N<2HCrD8heRFtl`<0&BNVDLVG zT+^C)oTD%x=m{x1eS@oWaM%H?KcU)Tl4(h20s|a!;zFI+dpWnlP`xL0pLz z_wyFll4Vw6rcsMFxyWgmMCE*(L~0iG&ZK;1-^lH)-7>yT7NLu(ng8U&*YPBlB;i94 zLcr(##cZG9;)p8<-Bt`W(O^@mzH5dN{a`sdW?f(jsDk!g7E2Pf0D|+$T3Mwz^OOA% zmZ@tsH_V`B;e&9v?IKhV&j3z$mC?1@2XE?iR_q@=erg_nG_94C-owFY*GLr*a zt`n8GgFBWZ@@ou4wdM!p2RvKHuHmyaILwlWiR|A$SBB1H!a7sU0}-_xB*P$-DSx50 z-)(!w{R#76ts=BK%b>ks%t~A5>OrDR^!cykU7TN$s-lOl>jECL+Je7}P)|0nlF;ZWwL3K7Yf zPC}-|;_Cn+X@pmi-sH;Tbh&JNXkVDDfJA&^2NOSHYvM!hn+(Z%0^>K40ffE0Z%p( zwAb&yKvPHWN@QmTvs2X&cydpg?_`Vd*0nMwn z9-$ltuk~ftY85A0+k@II;ht@AZMQdM${$%Ss59Lnj>nW>ParrlYbP5m*4Sf{<#%cW?N+ z3MKWfC6;%N)yyveaz|(FuK<_mVYueiKU%sIOJqA`O;6oaezkK65XCDm`Xg_tex37G{)oUH>rI*!Na;x6=(@g`rha0h(1x{PXMgEAgcOG&$ z{)HO;{E7YO!vpw=Kn5~E-D$VXR;sFXRQf6jTIFzN+O@iZB;7inJ2QaC2M@sOx=gL7 zt3owbyLD$ghHK_MW(@W%J5A+{e3LSDQJ_W9@{Xq0+i%IlYLJcfwX zxw?Za6H~Xm(31)?@m)@}80Cd`aip~s)f%HVmU%7Ar(q0#Y)1oBE~DPU)m6y-D6mZ< z;vq7f)@|S8v6U`nC-mvcQE-1GIxfg8N|UHF47C;GV#3JZ*RT3|P;xZ7ge>0?5k>YP&kU>V{*$XUcm+!Tu zc7@DzvOKtCuhQPCX1Q=c(c^&VN#U`AMD^wiggjl5z_{i6UPH+wCdd{ewlH0BINSAa zK*N~ztN9dRzL0d+CHKH_VqoS8lmrc4Q3*4PI95=f%*9jGD_mBe7QOC-y;~{(Yx(4Y zP&Wvta?we!BwO&|MP1GEy_NGX)f{gJr@OR>sw!hqa==P9n4pyr8J?rF*WkZ-sTtKYfMz+Lrm!{2E%*y{_#AvEsLNa(~ccyXr;6Ox1?{5YC)b#;@x@Cs#CO=KC9a`0-4NlsA1_1wD^YgPgK!a3t$#n-jI420)Q{%(z* zmzKC2p@XzT(liKJQ&Dep~)b8ooh;@Mjlt=Y#i;SkpYd2Imx@|;sv}A z>{Y4y@UgGK&~YY+k8jc@V^LA!<0EXnYI7q<(R_w-q|Y|s=yDEZ30cxUozB*a*0z;N zT1tn<&6SO?Z=QAl&AQ%oSW?~R=^{CM?|SLP7l{*>YE1mD6uhRo2-w9k?HvZa+zq6~ z_?#yFstF`Mx$C;u+uVlFI#kqtyy-?GcQM5Dx~o?$1F&aq#31{F_%a0tTnmUv=Hk8x zQE926n5L4iQr!E2+UzTKUwx?D5I>Wi5btZZF&?lepdBZ?*;&j9Zuv>3Mp{p*4e_1^)N3x%J={9lPRc?+*&7MF`=PL7O~O!ue;zXh!G`ozT6mZpp{;9)pCpf!oC6Q+^<_<--VSd*Pu6 zPPi++`xmU0U9OO&XPxgoI06rDIZfoL50nbu9MF!5`?Bfyi|Y)m-=Tw9Hu<$+0o3{B zow{vp)KGebyNkWGG4?1Cp>?FpL0V@$pn1M{3VyQrGsomj|{D*AXW zD|qxLzKkljdH2#e0!3636Q1<8f*75Pc53-y9qc`8Jr1@@|7v9IZdBmP*JDJ_>B7e^ zFH%N-bF=mg#q4#f`O?cwZ^E8TRVcPr)-P;vNPa>3Y<&jReB$KN`^hR7l&#&a9nd(< zJ1HCw_s-!&ftlA~!fiABr|TX4W113C!W9U$BaWi)F30=n=Kk9T@A!M~oVM0H1ba}FG5Guv{XJ=%nCc8sv6IF1^JlLA zIzIT+P+A+9P)rtcjgPO@=q~(K>P({mj^^&PGrdex%3M@YMdv-hT_(+ia*a*@+w%DT za&Q)SbTisf-5;m71q&?5Ke^PxVFB#TJCNsV&YRS6e)qRCH*L9o*xbb&v6T{UvJ5w0 z_5Jjpr}_T%_dNf?Mj0qN$zItjVY&W(PWq@iPepfIOq{SW5HWN(bm0{jBvaRX^0ai6 zWwe6v(Qag~Y-$9q`Mm8>?ukp<{>ow2(__QD!L8=L<&(0t8qhh>xvwwq%u`KR(`T(`iNw#~nDCHz^quY$t0+wu@?4GZJg>lTLcthkWP zmtkth%CzYEV>OXhz&?vhb??vr^qPL?k3Ks&+$S{q=~y89+rMKIZSybL{RCOM^}|a# z7gxkFJ6hwy^x3~ZuV?@J^y;6$9Gxa)o9?D?NA12=^WEJyUw<@dk(KJTq#AYp%Og7_ z&c!$T9|=QE-SQ+?pJVl;THX|%pqgj1^{nQ$j^(TV73h80O(N*3O!tlY>G(dsBP%{j zu+57X*3-EvFJHg|e6y3K+az*CBc&j0R2mK{oWKgwE_t13p!oq39FbI($?aK*1!&rq zGbDFKO9C1{(6Sdy8h^yS-bi`=R_7YVcPx^*=+OX*akCft5|kGu?jF zK6U4pn0{$rB~C+gJgcV`f1Rt018>_xefuop5|(xjlkzU_|N8MO@xGN<9qWK#?YzrtL2sIRmP*o0&og_=lYNuH+lKX!00JbklOBGhg5V8jRreC`_N_Nsa$r zO5BsRlOLUW=X8b&;7$agFsxNq96Ek0O@NccQFr%E^qmp2VwiT|bq=IYzX}qZwUU%B z7*7F9@4j-4C|x_=EB_=2O|J0J*|bYNZ8TB=MQlcAM#jYqoFwg?F#fPv(|r_h9hCt3 zJo#4hLyeg4!b(C-60i4;KUMkR?;B~c-E07a9Dm+f~P4B@j z)GrYk$iR9{seW>WS{~&y--S=FWh51Sf@C%uH(BvAK)yTtkR9haTT4$Sq)xs|FZ=1R zt9&+Q@Zm4!bm^Mv^CXNi%b>u98eSGu)*|rev}(p{pR0T0)JEN~`y+*LPKNf6G?^!> zkp7+35x2D#q3ONY!!n?agbBkX{aQCAU2a$f8mNN8o~wY)EqndnmDu=C2mil2@n74d zvpFh{Lcc#LYgrF_diMmZ2mI|jm+ju8*hU z_HHUTCj=r(r{=nBy1aUg6q8FaS`M}-E1S#~`_cE!19S4apOWv*j96UgbPer}S*Dp> zBX21TKyX#KOft2*+B;BQ@yPtA6U)$;J+rj@iYu@b#Z1A^&ESomR@id>yucKaOUrb6 zlP2Y^8~&KaAye#THV%l%SCK&Hi=1fqtd|Syb+ep~z)y3I?A;_X+`Ji;+O)qwV^$5i)T0xq z^E#kaNzY3GdKcDZ?0ZzDh4G{9K#TB|%8{H4iQb}ejQrY?cZ*{!GFH|h50`c3$`xCn&o6mB@GfaHD2CDp}oJBil>Q${o zc&82JJAuvMEk?NL*8F7Q@sB?(*njDrH<=oD{UB_p$HQKJdLn9ql<8u8Oe;uRvSUwz zvLs*x5~rAUrJ**=h-Bz((CvkJFe>EG(-5 zy8Xa6Q_R6^>=1#zCMP+iy?SAy%N72JHYJUxDTfG&jt0Jo%d*%h(f?NXX61)&OE#J# zqvhx-&33EYpZ4xRC(MiCYE>YP{lhLv7=w;!Z+?CeCHI~N#cVB zs0U0*{ZkV^RK7RhmPD;KB2BkminN9p=pR5h8Y!>}8@E6I_G z@gNXi?;n^3REWa#fYiDfQZELt6wuT|I_s7!s^1-8m#=);c)Tb{mvK68p zg}xATX|#XPbGhxOcu{#pie_#_zWu-EGUvCS87TP~$&XIq?Y0Zv6SSUt`V{=|HXN&&yo?7Jcg5H~6QbgnNHe zvTJg>e$GDLLw5o)>IUacgQaSOpmTT|qXwNH{;ocD^8@l0iT4kRu9xpfY)(z;PkTmC#S-Bx1P7s`v+E=b^NhqoL;}O@MlgDtdHx|rC z^VfrxoG+*R6aVuLBqFdDdF=DGnWK%{AJ&(gu%~-c^K?=*`dbtDAUa|@>I2uc$VXgf zKm9$*xfdOFv+tq$WvQYLnWW*j27E-tgPIYqNpcM_bM{u6TXiz7cIXaH#n&BFS7j9C7MP(mMtH z_}PMtdNsNw@RZJdP?z%?@_hnC7eXV!+ zr5cMvoPI|H7e>re^XF|~I#&z2lPIIT$xcpv9WCPNj;{=)M3rg`Hv@O`H^Ma!&K3M= zG48gydFjY|E`2}`t8u8OIjMT2p|-^z5FZBHCfsaQ?_P|4SKVucamjINDy3VdRF$RO zut=<)^wWCUP^GD;amM!m|Zz+SKva>GoRXVh;eZ??`<|gr0?!jv-Q=zv>ak~mDGlTn(mVD_*$>L?9 z34*Na(?xC@0c{_WBvx?Oh;D!n#fx&Jl*AqVAkzDqsxGN^vhT$M4p!iU=6i7))#9ax zX0<;uT;>PF28~KI%i?Oa>pd+W-r^9h`Z$$w-wMo4wn*|0`j#tcb7#CNwyrz$&@U!k zH1#aao@};^tnc5|;9Zs@XZ8`(JP0b@4N``(VfAzmpZMYe8~D0PlU|!_Pn*LNIO4sF zAvt;3flz!1(mPNNZMY8LS5S2Lqa1y=d>M5$36$(2=CmWF53-rj=9_g<5BZs(c`o1m zcMjK%mYN1W33M%02*kR81@IbQQ2i1?-bOiWfu5A576n#sIzH+iJvd4M&g{Kj3bHm# zFrn-rj5bv8Mr~POF}u0NdXYn?_NB8AP22sN}ilxhz%G%=%n_4w7FJ^Fj z-Pe?_F{0Rbp+XFP8?sSS-)nvtydur`%@M3V`&vET*Qq|R^7+SW=wZFy$NCTs;tbz3 zCO$nG(?k}z(Pw~l`xXXZ&6_&nte+!eNBC9qeLt#csqzWrwCyxUtBsWumgSt4;{8V=&)wO~y& z$GkjkT`U%}&bMJJILgi}XD{_bnS|_8!f|Ig6i@f-;k#{LVbYOrv8xmGyQ2FYnt4s0 z-%sVMV2hxEql<Djv_;tjani9=H4JO>zxex+)tU`MxfS&YnLzi z#0*=}-Y$m4P(K-H@E%be*Hq&A=pklUiN@J@Z$8R*u9f;h+`>JwFfgT4nw+MnaTxZ8 z5sW6)tuXq&JbmLoRe4;`sISI)58$pa(uPLeP&o>F->%zWS>QMVmnFRN1@nRqWGE|N+ z%0V8vkuJNweSQ{7Ic+ZyU%BItQROU~?Hrl7-m4b}uVl9XGGME2m3U6{RIe5DO%ij@ zZYlQs(h$KWW=9-dX;f)6WNtucjzi;|OI>W>N}F5F-DyR9>5$ZM*_?wJ7b*`Vk~XTS zJYC1Ebcm^eP6$#pGQMdr1gyJQ^%ytx!=LAjc?snzxDqlCq1K2{Z3}Z_)N7k3`o+eE zwChR4rA~}7_`^3hqyTT?SR6oMWyQdjAP)56B;RF@lgnOHNvN+!S`F=#z=Nr zECSgML;-ifd8n@L?3mnryIA z?WO~*`1uJcJ!MPG?SAoe*;;kj9~}d^gNqNn1^PZYs8abJt@Tu#lc@-CdNvq{K#282 zqHemp4!_oIt#rxcg4+;r0F~o1{U(mVVO0uR+4Thpd{cmbpp>uW7{A*XrZ}vM*9f;7 zP*G~TT06BYs0%E3;Ce{a=&4L?KcB@?x&Q;}Uoun@hftoYKKRUx+2o{~l7O~%)bW|h zDY5GbNfd5!6;-lww!|ZTlv=@2V?^VBcao23gw0B8@vRi$wO1k%xUci(bd+u6tO7xk zO!LQ-An8$QaJlhm)T3@C9S@an_*l{P(`ViA)+8mV^wyM=BQ?9nsSpQNv&g4uU2H6Mi!yH)1;w$OSFYV))wx^Bl$rO;3p;3LF+1)WHpVl zZxpMLtyzohHQ-K;;O{FGlk4o~CaajZ8MOZ38^V%vn1-1OE#2mC7pnhv&gcJpuET=; zgVrk%g{f=9$Dz$>;_bDIZCk&W{`o(b`wySbM`Kg^?eyqsC-QQq^}1-^%5N^PU{L z*my2`^^w#WU6W6lt`!b5vrD2uP0iY+1k$_D)>8{R>JsA*zB#q}coT_)dGWXg_THw~ z8NIu?M>1bXgHz?GccDEo``UEIW1rpxlU-41QIbJEF)i}A-FN9kj)UZJ8RJQ-%~f#$ z?Bh;+RRl_4CsU)I2n*|;n%{<*BiSvp%o6b7;1jd!Np%1xwbtIQhklM;4o$%vwMA<~q}&cZ+1pDK zd1y`qC_Mx)CAiN?S2^{9>+x~a?jn6Cs@pwY!(`-?xoUWY7R2#Y?$3{(t&>G4pxLM` zbk;mINIW4fza;u0iLX_vO_~bjo-mQ4_{clakADnw*&(u3cfZ->vp}PpHUi8*Q%sqlPvDw4Ir; z1=_Cahg9QpXYLhG^&r?@HYETbQy1EA4M2TMU>}D|a*zrQTEAA^ROq*8`@E_+h({$k zb5R_fvw}pY2{vRNLA$#xC^fntd^N1_am&bg=D^~3v6H~UNMX&FoK&zrqC5#&jGNr{ zGB!^6D2_h=`Op2y3%;%;(O#nY;VT1b@GTYIZz_9zqHS(VA?S%S2k3~gPvkQcKTcTcY|V3=M}uY1PR6C*CT z&Q`aptX0I~SIfOB8o$zYtDL`c+5Hyg)RHJvycqqpB^)*fhml$uSqf(DM}ma$hv))v zv#NlkpbEoUb4WN~oO34!P(wY`sEYFzwSFN$`%-kJd`L#!8>Q<~@uJB2eBbM5>5%zJH^4eBmV36z!q< zw_(RmuF^1HQ~r_eUj`8KAl}F^TXV_dg~xMy1d+JpkIqVN6ke-|RMA5e23jGyy#l&c z-Q)khEH5qqTi)i-TTFZWZPE}65+tq|N=v4pcJP*N{QL+x(^Qde9FHRWO47(;KnkzFx|74W8%IgxtR*;6%<2}$oW6mvY11)&79 zi6CTQE3z=Rj}v^kWMZ=~YK7u{S!{liQLuandS-)V8uJ8q5r;9zCC~!OLbSDf=dCGu zlWr(;EMT?h2!z5TZQgQj>rkx8J5vw96@7*||9~0^g`6z-@t50emL{lxanHwR8i9dM zbiczIy7~4_&;qI~r+qA0;Jp_}R~d?__Kj3)7QavtyF6}wo$+D!4Zh%7`s59FgaN7fC==?Qgb&^N@3Zs-bWa9?h( zr1rW1dro|%OZ4?8t4I$to$Qk{`1lsB3l+M>M*jzU?;X}uy7&D$&gfWB2M~~Ep=v@I zNWe`NApUU}|E+0c%SZ*E6j;uPOL+Y%KbjfOg(>yH3R5#o*YBLDQ%q`A(hu~>0I-eW zcL{bYDVhPaab5dGBu^VADI*e^e(#}C>$LJ0ADi?-kYdwOp!N8fUh31XfbnH5Z7RkL z@aHjh79XI-VNO^7O!`Nu#uM^)6oTaMW{yCu>?0%P>huS4pHlLz7ax{2&whLpaw$9F z4YRbA!w%R)+VA7s-XG`>ou+udNN$c!Cqmi%CS@`3^!05Ahu<{TI+i8+>Od)UB}*f) zvrKlfln2jVAk>T8D_|K?!<#es;X7s0N1nde`w7}aJL!2Nt)(*Xq`5O{dq3qqBFX;~ z{`Ch$MOw9vGxA*$S1TDgG0Y69-@t#I48F}}e>MVW%nI9`p&J8KgoN}u2Wy{s*Y@Vz z>iGRg!)9l6clK>Zy}xfIDKSeZ#1@+XWmOJO5nL(#a$5Usg)bCpopb|Z%Aiohazn#yx7iw^*LjI9Qd-*r&`m~ zQUE=z%i~m?LqcKay11B;PV-cSU+=@xS?7%O{BrH4SnXibDlLAOcx@>ks|olLBrQQW zjEdYn?e+7nf7#!|e7E<$$<2cJi=zh(3|0+fX^v|4_#019W3PV&;lzI=&Ulol$2(GJ z8CelQp@`I&QqLik!LdW9VpmXks0Q-rj*&M^@oO4ujnsWZgHk!#7_)s79i1`nM@Oie;Tzpt^3q$Ntwx@y1>C&% zi~Rg0l?W|fmM8qq+aIWA(wQ3&5v^B2?3E}_Y1~8j^2J37A7lu+Cx+Qs$t$V+y{1dU zLeSG; z@?0dKnH5c4ojA%J#k3S(3S?hLp0I<`5LSUkytWEEoxLK~HP=-PZAfb6Q1Hb@BX(Vo zHQjlGyM1zOLQ$kDvgosq?_*}CgiZ#bB~QV&ja1V|p5uxoy5NM`$LpcDxf0&-LefY$ zmN3_k^kOW9DoyH#$~83PsJ=CNO3~BJ9GLN`x62UZPf-TuhpKeY!Qb%a4|jEaLx3=< z%=s*)pUnD4brKhGMH#TAC1}Ec*&p)GTC2OcF7MN{R4wdjHaDyB;ngZvx;vU<#Bv~? zv&)XpLXm0|XT3DHDlQ-_`)lW0aWU}ELN7ZW=D+i~UNxE~@wxsYj^D0ZiY9@rpX+}$ z)Z_t}QCUBz7!}ipnVmDnC3?|<$8RAfw6(8_ixG82VAoilaQb zfU%eI;IuD1S@Od%?EgL&{a3I2PtEjy6c7A=*G!(i{t$tbP(H=dIF&hhvsMI}y1q=3 z?=M^^ovpcYB5As|4(vsKh}U!T zpjN9u(#&1pV2qD7O}(qQGg#75-NvBR&lf?{mP^g`iI7bM+Obqp0hBhD`B~lyGYXhq z(ojj#e4!w#5O>*MnCm?H8?j(v)~HDJE908VftH6FUy(ol6fX*(8_67j3y=JHOh9G~ zrxlp!B}J|tu66QPmw+0F&G$a6zVrU6Pvmr-!F-I)!~_&^q^)et3lrPOKGQL^+WX_d z#2bz^(zZE(mSnaig~4>iN`PK<%k*}$N#b?w%&S{A%6VNRRNJcC+NkKl*HpsF(9Mc$ zvp5HsX+`BSbJgW&qM{4{kLPzf8}3n!htUiBc>edr!NxBCz}M@V%FR)2`R{|haQ9j? z)5r*ET-%&i5gh}`Fc{(1I8ZyytCK0eRY~z0G+ZA3Rj-W%(_5HZ%Kjt#%DJ5-}FWNBCK#Xx_CU$3mrqA?UmbH6Ku3Gi19x-?e40W-Q;h` zQgm0^>0LyIi{wE&KX|1b{@a#mzh`G4MreRLypb-FL zl}k`|oH;Xp&Q%TaeuYWsc2W-r$wCXZZ$`!c0rwDQ|HevM~r_J`UFg5ruoO7W7M&3cVI1t6v`wwtjZAm!b+J}Ed^ z4TCA(Q z{5-!DXXsDYWCI2I@`ruxt3koGVYp92lu{HSK*x8HsgoROJXHr$z2C^<&T#VhaJ0bs zBw8(7V14pJcT7!tL0XdZqh>2J@R~~|q2a>a$fiG!CErp`ixpS@RTinKcn{0@&5i`y zEUcR2SQ|h}CK`^LjCk$7?`gO3F8_q9g&6qeZ=h_97h-WTiL!=P^Yz_xq*g zrq@As&c^emLXsg_ab7zs8J#R+7P2edVB#>njx1dIB=hwvYl_u1%bNu&N-D*K)&{)f z0?o>_2os#X^jzqsb~jwK?OIzfitYE%#4xug<3mC~#ue}+W-J2?Nnigp?+X$zMyJLX zE;HXgl_s=$3TyFL?U@V*LhR(~p_y^3!f1OPL?)p!HBC9wAxoKb7x?jvG}BU!0nZ4= z^9#Y!pttItlwA)`A2FWI^M!ocO9wk%M=Q6t5E7R2`)T7)3%yy(_3j0fplh)$c|PV< zc+Ch9hU*Gbi0=xn%{|lsoBPKrpP6$j@~En|@tkivSb4R$5@oY%=Hbp&+U8-y(E04s zap3w%91j1m~PCAO40gVuM$Nam;=h2dq5B3gLW)w^$_ ztP?~40EL(iERn^~s9pS$UmhWBf8doGyC~a!4W62GY2~0a1*5ThFS!s0%LrY{ve4I7 zaqF2(jIsM^JpX2E4{yO?V8DSJ=%wdWU$2|Kmu%b^pd%VuZhi$6`#m_epkF?3U}hn` zcR^XAYyH$s2MvRiz`G? z77ulyyFvmZrGi+Y@=iYnJZqv~fgh>qm1}gD6m5rkl2K*#ef}@fI?m{tTh4YH+R!D9 z^0I{5r46DC{6cecxq=h3W?wI;KOtn%@|=h0Kgzk}lNI{%>>rZM$VzyqHZL>eVoS@H z&Ch+lQcOZZlhN5P99OU8yUk`i1=rob^N+qy1L|(Q#%)Wrvx}F8IeJ%ZZD+&EY=Hc| z>_v5^V+_~nan0H%(@t7y^z@S54M4699S(e~h~2V{7i)({W4WGC3kwl;OoMwDM%PZ_ zNbgmH5BS+<#~Ihxk@Mxbx+%uQ;SKI+a5 zvvSAXl>53chup2aQ9gbe5NtiX+bomF+Ani1OD`!{$l*8=KiAB>?p4spv})!y&upDF zA!P{Of7&U-jTgRDFv~$Am_isfF&`nd)0gvVI<(RwN#2I`@T!Yzg#v$G8bU||%OwD| zmkV>t;%x$=%7=g+#WOww2`LDPy;`2LU2t4Xr7ax+PzIp)d@yYlx|f!KX_^TF`w{2>_{3U|GrJ;633@zlYN%19J-fWcciacl4r1g1Rjm+vB>-C>t1# z&i{1-A!~XW<2ZK$d!mA9kq6z7$_gA_xpGMbUaW$Rs1J&gxJ`=T32}pl$~C2*&30Gq6?HhkP{I zky$EYTxlG?6&?yIaLnSg3N}GEHAWC#V?>!!?!&DVX-oIWv|8w4s_807_3( z4M7@Vyu(kmon4v(&$G$&ny%)lO=NNrQd!SP_EO4qOS(knQb|ET6+;^%xGe9VeJ??3 zTJB3mufFCr=bsG5sQn->Kp9R?K9_LxO9D&CnymJQ>RW%47B=l}i0xQfosC4Skr7hM zY?qDm%4%p$%Wloj;o9w8Z3+QLMF%XzA!Nor^4V<84fhV4#-5ak5!vu!p|$vNEn4Uf zc-IduVBRs>snEMuG6d z{mziz8lCrhiuguMZ^bD{L(7o-F1`bgu=L4cJH>TV*A4rRFS622_U}FaOtVu6n#D+D zH}eb>uj3*GXCoIx@;CGLpAzt5T=@bXbt&0NbKvl#nrh1QRNoIKAN|im!VIOT@Y1%q zE4OuQoYco-EhH-;#mrGWoGXXZ4zkv3Z?RF(05whbw=9t6^LKTW42%F;Sz>FZxnCIz z_AQ;yGw0GAo|?am8@it5apO+6=PgM&$Z1i{M|%c6j;@%%%(Cs#KB0D2U2|;WFuweJ zIzzM9@%hN9nUau-ybLk9;T^*wX@=Z>Q3O5^MAYhF9M3_=peQVc;KqBKn%7rC38d^` z8p#@Lba**7IgKHhCepNL9*rs=Y-S}&!du|Y22{1MIXgko0kWptF5OICIngmgY~WGV zAJD|^kABB!FzV-)mIkT|eV7BFwr>Ni`ybDXHK(=@5f+v-duHset|)1ET)@|Dd2!PY$P)coo`{g6@pb*4Ym~vdgg^m}UNv0tgzLN? zz!Rz~WDecWxTf?&n$Zm4H;EodyL^3|mnJ!X4;X%Vb(Uj6(ujR>8pHGQVR{G);!wz(nW=|1MF7EbUH7!`2`P>R0jj6zl!~ zFGH!&GbQzNXf%Qsch=k{rjX!1rfcLRXc8Ad{IZoMmlV-WpfU`9Ye zF*-}##xgK~haBM0R{BwSIBib{hE?b_QnLmXV!vNWf*<)NB`wTvp_^4KKxMkOHJXd?TSl9<>#|XH-feq&@TLITXh$^Dk&q5OJo{ugIg?m?<7U|{l9#KgLUG&d(;=xXj8E3WP~ncW zg&>~2N5FIuMe8!wt4hb3>kB+=?B1oEy*rK+R zFx#?;0uWZqEhyhuf^5*A7ZS*TYEtjW^8|fh_RLx9bsW{AuU_J3mjYX>OS!#q@WGh z(P|4bB;o7}kTeatkyMZYtKklBw7v*o#*9Km%gPItbQD_+S>q_XxjCqxc9r_vHdCya z5rXL&uPy z;1V6jRYR(fMJ-wbXJLh~BD|WtS3?+>(`nB_UQ(W-zNLv)wz8c8u8^~(JaXKi?^(nuytn}8%pDMN~*vI|3ZMiYW`;ihrkoyU7ebB!w($_$YX z^xZALv3nqVw22N~^w znI?u-zFup5MgFOj?2?v%JfybG`HnG{u<781LS;UV(rD^sR=vH5Y*DC9-khPqPC}#D zAW9mFUX%)uNAZH1kP(q=u6|_y_L)M>=*^T{5{hwVuD*J8#fN(#BQlJo9uG=%W(kRm z@(rrq`^@lPLa}dLucUNf;k>nF*lrca%um4$d0> zd2ED{yZ!g8=NFKzL}}VZ>N!F?FG^2GD;Ie%%GAKJJT+q1&7Z=XH#8u1A_^0Q$u1A; z_OH0P8{pzO24F+fB0OV_txPkR@$(NcR%IMdOPm&OtAJuJG9r*$%|FT{m%B(iOC3TC zpay39fHcKvqF}y|*G&2fos%TON{Xd`T7*Id0*BXJ*mICbXX0n>&@2*@T z#YrnepQWna+m{X8%aGtFVpx^^L|k~fACGY*@lXz4b!!83snou*T_(WECFMH16-5i_ zE1O`^jag&7-=XgbY4N7&nW?HV3g20^)sdLa-~nXoS$kj~FD;qp(U%GYuP)i{yQm3A zo_3P{(V{dpjSxK>>QiP@mYKC!iBP7Vn0csW!v4G0_CNpo?>TY*>ZPjr>k8(HEA0)7 zg*xAQ7i(7K&;LbA6Ajy{JLa?T`+xXte*B9GSF7(Yu21Zw`C2x4_-{X6ARIe(@U`tb zO0?y|n)E@N$MIvw-u{Q%<8dWP-yv(*aE=!4pKA3_Kj9r83?cZcrHh`ip#LnjZTe{x%YCSE=ELmB0d=8=xZWXkQzv{P0V!#p*p7v}Zw z@6pObJ{=lfjE2FUuP~rxcG77#!vdka zq97<33Pq8rP=|uwc}alsqPjwhH!U-nOR)EQ?LS>wR3S{PKA9ZhqF0>O2bQJKd}jK$ zu0g&#HoqZRhpY2qL*iz6__DeFP{`i4xxf35UJzA~#`faErN(ocD!3_VnUu z+(?MB-SqD-U`xpsf!oEQ>d{OO*b$6&_FT4b!aaA@O5vP~HG2VffO*Ki2t~&iF%HqS zP_qR0E!390Mm1>%6aw#>k)r;5w$uLd(oXr1fKji^=H2}_+c-zMbwE&o`T3b!qQ4W3 zUZ$QWED~xp4Zr)ytLk7DvIH5S*Q!qyGdi&M*h4Zlfc3l#R6eUbMX8mCuD@uhLV_6O zN^K!|xse=0k(UK6=I6@;x-IEKuRbgcr<;4I;WW7NXmr2d2X-Ol_Z3&)o@zNV`Vl^* zTCUa;(OqHpa;nHhjx1p(nw3zBeKoi;oLO9493McXA}vDYA+zkV*k446G0-s&zS?A$ zQW{Wo`khN&6fd3}3IF@&l8HF}z?gMjrhwJ+ud=0`c0gg`Kz!d|4A(38F3H9Rs!g*X z6vwV@D131*q`ZTOJq1jE;m$J85TUX8+c>*+>fXXvp54SID9lx$ZLis|cF4ebhg~|$ z{&sR3uv};FwJb$XoJ##o{4F&po2mZdfvZw{`~Vchw9uF{*xl9zH>!oa9^|@lZA;(p z@>6Vw^2DcWcTy1=b`}=s0`TWy-f=si&#;1k)VgViy?M+kLT(@#&KfjLnj-8KFn}C< zl3k!5GCigyvuOaTIk}zjMa|5)ZbBl-)^_yZMrqq9UzX$uH6Fq%LWyH+CD7$|Lljpk4*RCs_Rc04bUf$|)&$2-AEk^OO%ox~J|UZ?Ow@6*aa z7h5IsS(JI@?iIc&KhCwXbtt*$DGobjTWoIQ;gBBkfTD;GV8?VVigy&(?p|~K(F=L$ z($IwQn)X(5g74X>3%e4m`lWXitV7A34?uZY#%Gn%H1ERAS~YZJmzM^Jy2$T zvZW1(QuLsOD8Z7Zr8cBNt&sKK%D(m*e_Z(U*sYWa!w{04w?w(BM(c2`h*p=4RNz9{ zDk9~*Mj^$lsPRCeN=QU6*nQTr!%U2LiKB*tC4XM+FM@)XSq<-!ubh$=Rmh1eRosJ{ zdQ;m5ZEoR2^Zn3D$?$dFTDqs_B!c&4;@vL@ylJrwOp&2_b$&H243*+d83qQB=;-W5 z$i#(#f)^t?O0C@wy*r`sajgzIOEXln$REkOzaiwx*YSRz?)&Lo5A7q*P>AdSItUX_ zk&U_+Z-mU^mtca|ATM(c%_z-3;mZYEld!O^DkcfV=-sKB;3_2-y|4Ho9eFX+b!+ai{X+<~v;tu|}5>+7}@!~mMGR9kVV3?&ei=YYB_UCS|uihR! z$r}ren|52Wrz1r>s+Y9E-kY~urM8ySv_SbhZ@g2 zih7b;`1<3KscE1{xpmM*n@{wmcaq2>cE9r0kKv7*+yBo7t* z<(`jX&8Sdh-`62V7L;$vE^bu$LCQ*HKKZo~%}&BAA=ZL7J)#%G0;4#I=kDjZP|K15 zpfYcNeQ2P6?q06uhtE?_EW5*);%beKr#u6QmRdRTs@nC%Y&%;*5Q%oT0Btbh?~QT4*?7ea+*Hi*qr1J*4aUNX|nU z*B+xSnw~6lcWpwgwXRi$S#g@DQ&WN)U#l2l1(pScZ!+Mq3_k)Ijk(AygQ>)SGEZ%< z&%!R64Ow1?lL933t-X|3X?oxEPhb-?ND|2FuowX%oHPra*d_2%leti6gk1egJ{Qm3 z=oV82-HLSC~;v)GNmx8kPOSvM|=D5taOdJ*!!V)qFc6a zb4-GFN5TqgS17!s??U1fpJjQu;mB0bqm)xQ7YQs7mTo=SL^sF`c>+jtm>oHT1kSkH z=zj9`XqoqsU~Q6>9p}^p<%6%ZSoM{*vg3EY1a`;wGkC~n7;4S8|EnNkE^7=FYb*WY z>Y(?F2L?vU#YE~MnycU4_*y2xJo?H}tw1S%;)@mkDkz}al5&k?$ljz8z4_P}!{@$emudA}Z zVR9xYzuF>ok`4SSwwBdvScbC~LoTwn_tIG#?v^d$f}wKdnZiJY0m#y78Yxtnz>9!& z;SKH$m&h|S2ub(q9_heSoGQb6vlv`wwRGwzb?FKEG!KnUwXNe^dJzB63#^t=rHp|! zrA2A!Zzws3MV=h)=(m;4dR1kpv?q>->eWk{L3rKZH>VYwli;k&l{vn(P0jIQ97ddt z4qhxYrAAVmxn(2Nm>daU5Mwgy4anS zKaaI#tU~fsyh-N+^wK`S+M0b$Qb?NOic6cSvM%riW-%!sm~L*y11I#Sys^V23Mu>P z3QXA0x&x$bC?W_!`(^UwjJ-=L>xC**Qlqp-mLhog?m+>JUh(HK0ATN0y>J&=!mT$n z)jn3f`mCD^@oyd5l6tLX^|pnR08P)a%NehLWQyyAElIp`+C?ly$AF@?Vu-tY;0Duz$5!6% zY`yVhv*MhB9mX@M`i{i#)d~-JnbT_Qc@W9lER<#y4jakuJ8`ep7k#o4?C23p zS;xLBq<{dvPaCw=M>jU~9gi-)EqxF6GVLEsvU?j43gQo;2?fWpXx6osK0}?V4uKaE z`&Lrat)YvoG!Z)a=^uBZHU@2EpJ{G^)k;AQJE$$1I)PB=sGZ5=I;MvV8Dtv-h*Jl| zV)Ad>D?e-Zz!G@vV(o5bxVZ{B368wrUbp6P3!sw`E~Gg%_~K@TyoQMplPrUmrg0d5 z@T^_kMw`U1jR8qsShe113 znuqM}B5ertwtFZy{^oQm&9P^jTwIwdcL+RgSiIwPmm^K9p6t_p)cna6wN2FM@BOJ# zrppZanL#K=)uO2qiIZkZwMaVKe&941D05nD*VxS`*Kd!9Cj3s-uRaZ?irYy$wkwb- z&Ax9qk|)2~`{CNz|GdXmrv?n%-a2;Dlwszu&kap=6lj0%p??wP=oL+`mAi#EI zjyQ;wjL$~M{ztF(N2{+3g zw}6DFZ>piivw7#*ZQOweDF#qOdF%c_$Af$6~N&?!-aBP3merb3%K?_O> z)nu|Ufo|=;x3-_F$r9Lv+bEQDPj-%}HB}^0Urjp{UQ0W}(h=9lOSv?abjcxxm&=E- zfWqLrXdGF9lV)P0U}o3fb-&fwi~NF&{QB(#f~zlE#yS6@6&@6g?hwZpmlKePJ7JOg+u^|Iqmb}iERV+pN&vi9bH?|@2ri=!CuR$ z8AXwaRvwXxZ@8#V6R-HhUz+SJ@1_Pzwk0BhwgnM-g`2BqUbIXY&!7&bDQ?!NTyFZD z^}2QcCDs#rNfaa`DV!GXT31ex>4wZk#;6Hz&>n1%GKA}L#wtwwG?L&8--yA*%%K4W zXmY}NAQdQ>gKg?Iywc2cNixzuVc0P*MF0tA^g*(|I&QK;UtnquuJ?2gVM2sT28y2k z@p`I5^hT0h(xcgxevwjDppIcAp1lSk?!+|;5vC++-PMG>^UuY|wOYN;f@KVFMNC-; z&=+S{HCmNU40k9g$?B6y?TZy?;EFdNuB~h`w?1hxu%IkOsQ_qcOA;{LYnA}SjK#Sh zSO|`H6+Y8HPjZn@tH8nPb%ruDUE77kr3J3D<3ll_l*!wvYMS$lDxCr<-u`kXH=d-d zE|=*D<|kYRb7f($gullck86EDJMbmE-Tx%)B|Ug93%;BZS1o0GiLzM>@&bx@@h<;* zN?GI0X(|^Rj=+*<^k_c^*dlB5zMZU~bEv;G7ByaCw`*%94RdqhtM&p4>G7E1j8*fM z=Uom^-)~(*ntBqcD?{&homYCAVz4cFxV~*0E}HCogo*D|6OpIKlElBn`^@Bc_6BHn zY|r*DhfgGJt3Fz<(#T2}C#8F0L|~kBXhdFc)dcT447UG+0_tlQ_x5=ZcHKon zH)lK*u$$0d?K?jS`OXyvWXdLx3{8B3N&t-Lo*rX-+aQ>YY^?eEYDyRJRj^Y>&LFGp zz{Qm?q}M(+XMQ=_p({T#eUw&8D6{MqVY=OO!6jl10rhSMV01x)Q9}`U#G9yUOXTYY z8{ne1!Mi>hUgXETP}FMMw4~ey1W{CqnzT$$(<^KtT|(MsKcXEJvQ&Xgc)FQfGEM&v zjh1{$(lP13{U`0&f4%kJOMUwn8)fs$zc^n{E=J1zd93iw+TN|gnVL+Uf3>5pIrXgn zP~Gyc-TtqS&i{psGH>)3KqN5yR()v0!()8<#m9b}|3~Zj(yhA0`D>Y{jvfE~f8ESq zo=g1`FvtNnw2yC?*R`G!_-EtU&=@wCe^9blEPC}AS@qu;koGeFj!l_5OuSXJ7@j4m ztem3_D*zwG}1)k9T5+A+xN&-b20ff^i@^V?NOha2J70KfjH8$JFP_+#hO zzo2ZsSRDP!N&9&1FGKVqQs=|T$xHw7X0?^Sd_5d#4CCpUbGNeo3bT1a+Wvm9^zHev zUk~3NyO8sb5qa=^^HyfmF6Q*2#|B<5>3+{C*bU@4Wu1D1-W&&J0U#y+NSwbBoPGVg z#q2>%Oz}*P%MY)@C(uN)wq6S%5na&TJ-#j8JnhY%xsv00u|ZG+4Ebm=Ufz;02ix+q z-(5B&OE{=#aojK`gtN`%FI@5{s&E&XCPLkw$B3=+7S##Jvg&Ef%jkfhFRiYd_xq3R zLTwCj1_|7UMu)sC#)4hHqDtQ4=js{RRhgdl#4fju$9)b#C-5Y!HQH0tgF$~(3n>}T zQ{v;eNasYo5FWr@EIHAhkCT`iUDM|dQe_FU~|vycRVOX;f3R`i<)NMrN_z+9`yzvSed!-qdV6W z!X(oiuT5dKj0|!0jUs9B6MvV9FNX(JT0HqO)8ojQOF#~IqqKCYVk;JVHbgtS3tkqz zC^4b0jWWcxwt&(r`N{o5yM#JA3!5FeRDU&A1S73$yV@w?;{|uI7#r}k@^xP8TbNy- zFH;IMaeYtUk@mlKD)m^ zo>6X#94l`l@j&d1_7!%TZ6;xEzxu2{DeN94HZWFzuv zq6vfBwyhOe{RmtqQ?LjKr=xZb`6eW$VHGbu`ntE z-WyPwmpR1a!`=$8up;b#ja!}=8Xs{q|D{`EBmdRic4^0XmA2vrlZ$Cj(&r`w-UZ}H z-nKVSI(xo+XU>_@<3bb5av+cvzeJ&v!}3EU_}+sh_JZ(l1dc% zt0_6AvJ3vPS53m-ElnZgx_Kg20rOQB+vr$sivkH*2x)_~7xg$D`d2&L%UVw!*Zxe! zOI53ps2vT{QbgNmY`SACRc!Lo}6yHpE_Sun5Nh3PH&b!v3g_tvSeJ0miiZlxgT zDs%-eG-^Zs?6(mTajm^vA9)tA1YOqn(kKD<-46 zBi)*1{)k1F8{fBoS~`_Ua9_uh^TRU={PMfkc+h|A!)_0;4e|G$w@*p_6zto^Q8hh9 zXzMGXqH=>Aw-@d?OqF)Ix$|1*C<3UB!0cbdyynmF*W18dABrDfg7OJSDdj8%PlMW z8jre|62ggDY6a|pNMLpt)L_OlF7KfO6rh3pvtxiq#{^-=sn*+@a# zhGJLm1

    +h3_$_eeDdX%g5>c5o^|z8c(LF#qe))k4!I*1DC`AJJ)WXjDd7v#hmE z9-G-uv495BSxzA@|Cj*=a8#&ernj5WOn4ljHIGQgJ7jh+gw(Mai>y0vKdJ9$PI$Ne z;pE{ohm9&IDjYs0UZPt9DlT`kosn6Y?+)>cw$Km#?&q7pvP{z_078azZjT65}>ae6|*Bbk(J!>sETOT~%CNs5FcVenzhR)|AAfO@HPvhkxcBq+tx zf{jql9WsoiE-+vby&)iCrTxd;FQqdzFMp6+ywuXkHa>fx*+FO}24^f63?1%g?-wa* z0I~v$1ZC;I!LX<0N*P^qYiOEIi_&9=m8kDiOIlj@gN;=8E?CLK6~lrMAU7Vjijam1 z!4N@%n`1*BBCoK8{+0Rm_uFLzY>>RWfAOwT6rk)7V|XrQ{k~O9z{-@@L7Ma1GMbFV zM?~@LEQiNFp0t{9iP^k4%G^-1Z)uDyx8qP`{A~M#0^^Yu=!S?+lG*g`8AbhH8OeEx ze_S~cJf~=;V6vA-m&=c+=+g$|a@C`Jx`vRViLNlDbp!-sMzq@?qpRWh?qRy%U*9T9#Vfm9!AWFLq%M9R^ zy#3%g>q$r<3yT_3p;-KJhd%`Nv$@Vm z2q4+@`sb~EnHY)TId`UzkWerdo2}RJ0=o-`ADO;v1;yExwW>|bt$9(zO30;1vpm$f zpGDjhX0DMqRsK5|7!je^s%*eop=#4i<{Uu{0T&QEQYDJ5u74gArX2>jpbZ=Y!An^} z+NWD4k8dV7e|`$4Hj8>A!dA2{Eq0=>TnuR0x9E1|;p&6Hh}^>XdbF~-)=mFz7mSX2 z5x)0ZzD;!@Pjsm8U_LMa{pfMkiT8+B8)M*>zA1K|(UILk(Iz*ww{E;xY0(k9tR&Xm z?r6u~i<6)j4znP^bXG)@5?(WwO_1_|-3>DWK`n%YtQt(LD#~Xk8-?F>x5gzvMx^ar z@m()g);L3Z4PViNpC3>1H@<9je@7HTYCK4hYuVRgw`a-WitENL1S2g^x601Hv^e1y z1yeTXWfoqMCu4XWFS4%xV(-hxs(>+ajlVZbFYE{cpSRmjwQ9=Fa z!zO01-4DOz#QXF$_N3+&kL8D4X^!6J+=Y(S9WC*|PRnFL?s-)@XQXCaLR81vD`ZT$ zu$5X7+TK>ouxKk;Sp(l*whH-D|13VS$93~b9D&v5te}Ud-<^GWnPu>ujvOX3khIWC zpqqKuV!y14xOJ+Jvh3fes=~ zs+`nojvXIm1}6r2sRP{!HZ%=v^lC9fNa&oQy`G%ho?x#b9u0rGBic1*%?;VjPW^xk zc)@l7F5KvzmPnD8_bm&j${;=US5Q!7Mjs)%)Eeq^amm$L*AQVV(xfXqw_M3J z>{Lk=7aF)0>92C2ain;4zI2AKR6=uq_3QO=(b=ug&s532Z@eIxy(fXIcbNL>RV}l* z*(NZzXBi|g$X%}#3fa|?7}6WKq< z)JzOs3gy0MznYz+DS~igM4$#>^RwN2{xY;6Cc%&bFUGQ@$d21f&+EMHI-pGwYcJK(-rQ7v zDJs1@+A*i)@^sBe8a~nOFmKHADvo#L`aQCJFKWNq?a=6+f$;r}FW4o$7NBZ7QRast zELy-zc7!*|r{uNVZLa>1@_|?A{PzI)*EpH)=mf=@yY^3sVg2n}F5bOiy6!3Z_5z*1^B4T2YB(^LjjkjVN>9C{ie`lw+ zUY|}cZ|YiAmN*(zs3}JcBoMT<9JhBelz7dcGN#b|x-ajMCWlT*V6Ky)SXm-Myq!An z=dm5}F9`bk^u0L)#~*XLbMwc@O8Vm7l`S&o=Aquv-(j~HR_`9%J8L-<>^l;9WD)OG z$S^Z%|MM8f_oJHkryf;@lJ<{VOo~aEFZfytK;=Hp^=Wy4hTdZLB%wa(E4}U<>-3b> z%l(Kl#fsX%KXQ(Y67wltt`C3$W~vy&IIG^cpg$IO|OJcY5EBg5a}Q!-)G-od%vK4?t< zK#B@uA^>k+zHoxRIZ+hS*Nu&R&#{qCvH?f|02m#5=Utu{AQ$n)c%F=UZ3pRi5i|6O za@DK7tIP-h{L0jbno<1p-u1~#$=6}M&P+3X8FND)rO}3GDZlcB7_j!o-7n`95lyoK z8KhhpZlEGg$O6ULNSJgi9Xffd)%}R4@@aX;_xXO5xQ%cV z*BP`0v=CaJ$ya~;81MRJ`-3g6pOTiXTn5{$FSC?JfTVWv!<@ToCBzQU(DDq9UtnJa>0 z#s+=y@S#P1ZDgP3?><(x1cxc)jfj4m4%d00!549O3*vx@Qw{n~l`?=p><8qn*dnQQh*rkvo}%Cb7o(bnumHAGU@QWo`J1Tntx;Y9qrS zS0g|!Az*L$-Fr%-rW6enr(rRe(&e4dXd@G<1y4894DacC^b@;`;?Vk;8cmCCaS2Hl z`bkw`4JAb!A4nx9>=v2}@ZkR91;+2Pkci@)Fx5@zK80x$+n(SE6v%r!DCr>_WZcZ2w{8Wkz!)UzxO- z$4?{NhjMoKTf#uRpksqNBynM<3Wj_vv)-6cOf&o3%1-D~$vkZc<(`uhEWx5o8v+Dj$XT4a_1bZ-s$xx3?W;I6OR6?0k6x@&rj zwze>1p?Jax+{x4y`Nb^W9cnOTuRip8I4p@tJ!fcz?}@oQVmoL6wsxE||K1y1Wwpqbd1;ghENTEkH7DF6{M#R!&O1E2KX6fBg2~)9C6t*?a`kyy3ft}nj>WLRug{f~daCH&61psWboT%uV|o#% zb=Xh1h56d;vTr#({dhxDfitV38emiTs(NtN2Iw#`HwraZdk?@}G67g$uh`jVk$*<<1eXlW=z>tSrwL4a%@no(c zD6{?lYVW(ln%c6r@#@vFU!)2sO4WcMVCcn?Pz6MiPy<)05Q>B*O)OW0&$!Yq4;6166%m@rgyE_KNAeYpyqWL)xS!Mpo0^A7bq+ zUG(l5wyf6X32(~Uj8dYK@m2lB7!}<*(l*V35I_kU8M6&>8LU%^U+HQMk`&F!6E-@> zQ+y+|cN1X&Hgs!N!Kyb4C^QFPj^cuNL- zusDV=<%W*X6fyFisoA2KJW*Dkc${C_wP#OoB!Y-3?ZLhN10g zJ&hNC@^Z%~$!ZuBU@-uSkuhJ>XYveo+{miruS#{|KWDLo1vO^rw8Mm42b__!DzQI4 z`Ud%~+#a?vByq-|*UBtAz~VK&sVUMRj{$`sgB*YcTxAqq5<_;y5)0^rIs53_8jBOmguh%6YPhT2N8u?n~2ho~Ogo=>cphnwa$qrM~ zZOZlz!Lr*Rr(%5NBnyA2rh4>_LUobLWWGTQ{%$-+iH#DPs+*jgGE}zV8w;+IVAX$5 zBF|z2X3wqG^T`!>`7>a+$AHVo!-y^M^V=pK2`62ftI;iXu(kCGuX{q85eW8yDY$q* zJgcO@akwTkZ$m|-fB;KI)Vdg36R=HWr0<>HhLRG^UA{=TAT!sCSha|zR`?sLpM5U?>q9Lq)!Mrj0Mk!&Uy?P z-2`_{I@fLf@bw3@0@}nGA2!0od2f6Nu3D`RsfF&@5j;7|ix%>(!L=G28#XpoI+mnZ zuvlB@)4KlpTIJ!glIg^~rd&Rm2#~%IFn1`VRP=)jP2L<_FtxoqPcx41Uci_z`yCG} z)b!e(7BhS`*1*_XsqV2gM;d#XFKH1>0$2)EHa72rMUB>Rg-KX{plKe8o6JkncT(z6 zbG__vSmR|)8#Halfag)3qGR8aG5==HnXr<|6w7eZVv=fob-Y9N>u}Lnow$~hhwm#| z@biZ6nj5UMz`Mq#9ffSYlh=Ex-XrqIZbs7cOK|QBz|}{du!0Tw;R_}3m<2hcFdDT! z*8`r(v0xj()|wme7P_;$k?x2T>e-lPOxfw%@P6-)io!-;e~d2oIr(&)GtfK|>B}k&4quiy}&V#MoM_kMG=ueE-LNfA{k>H){OX>7Ad_xBsl-H8#SEV*e&iaN@xC>FJ7p zkSOx9uG(BL4B2L(Y{1jXU*~t0EoS#udv^c8_F(-co1n(eQUp~$YkPgV`41WS4srdO zVUxY~OVNko&0mEG?#uov?sc<~?OVUUOyG3(|7DSH_StT~eGR>ZnOVQU%GCMmZ0mMx zbq%B05%_r}{(CHvbC8)Mnzwt$8g|c#7yK zzfFw{oqj2hHy!Dd{Kts#Hw8C;dH6zcE$sTI?zi%bCPK-qK$8icMZPIsiUaJk=^k1Z zpaXD9T*fr^fTufucd-0xJAN-c`qxU2Q27`g!LzZcLNVf$82Mxr9q5%)wgkSWDQ0oO z;#y?k?Y$tP#VJ!(L{14yn=MkythH%rQPe;SUP-ooQ+iQ$N;$BHdzM7$$bY7>=)dM$ z<)5P0l%DB+`u5y%iCN6Ti8{5tP{!0Ev~zy$etSf{aqa!6EcqfRLKExa0ptsP+&m#+ zkB~hX%7~1ShcMv&`tTn~mYIx1-iZ%wilu-yTZOcA7QUg}UcfuPQQ&$bS8+jTz7GY% zE$J~!gZbF+aa z*3Q1t<-OyI&T+B>13In)g^m647M^+dx?l`-(Xd!2@nvmObhYeg{UiBrGF4N4ND{Zd zq{ktv;79dhSb;Qgu73WW?)W6hI9u@#D~#ESJqjr5xkdi9EV3X!rm0l}O$58G(FT_! z**}L!san2Y(~~e-+2|lU`h4;w+gfeR4+Xsl!FOb%7fg3Im^I{v-BpQR2neF7@-r>C^UArN2477ymtdFS*O4R+b% zCm)+hPoFE=qMO-mehN`a*r4&@Tjk6lNH0%+#E+35Vg_p;ojv4Zl7*2nghuOF@U3Xh zuoUyWx;wp=;M5UIa-f8k;2TSnp-=1d&EhzOTpo%{Kzn~mG45Yl7JKzdX4zJTlebZI zlyhd(jBDS>vUUt)fF0pTe;m8T|otlwK1Nn zOyc$++}C?1WLG9KKd!#fU|i|@Sj&c<&NcYv{*jhNORIIG6~^^)(15Z1!sMk=O}}*; z#SR;EGR>@^d(8yV;kyiUZ*&y<@adY4I!x88=$y`i&3wH`n0&16h6L0PSP9KsnGz#5 zFIy&(%*IjL<~dApiS^da%Y>vKWR{*MKQerhopcj}-RTvm^$KSAk^`u_HHFh_P+1&sKyjYIE)-E@UR9sLJ zv?+%PG-N?GD7hQ+78@)DSf^zZq}hRp^AlOJZur$IC&W*6u5CzHBg-lL%5JRQ(sgow zAjv49#m;xsXk)sdU;riWnJ#P<=`cV9!#D9){fH=nh48gLQzBM7=>$$17wL`^3OMaG zBpwm-0~8xu+t)HXj=c&k(A@MTSf;99U}2XZ^)g0Ze;B*)?Z~Bfv-a=MbTXHGvlG** zoVBO{RN{6l%Roza>JKs8&6*u#=ynZyTvn~0D=!PUq#3yN@Sxd&70j$w)Mp>*<=`Yw z3ub`3(kf|qxDrA1T-}<_q82a6z6(^*JMG+qZ!f%-q&+fV#xN5&fOJZAJJ=*pBK7O- z3ImPM^}WqzwY~NAeA!8|z`z1EB}#HWg2p+6)pyUoFLAbIr0xDs&GA7BVDL4wVqJOR zX(Y`&bi@k@RO5oqR^+&O3IGkoecQPam}`5? z`omkCNMWabiwI-`$ukpzlo(;mF|2&u?Fv5cpXUI!(7&*4QH@GyQfmvH>Zun|mwghp z4>b1m-2x6C6Lf4PQpU48qGiO%MMJeo1V39#mKPBx4)#-5Y_p{fac`aUC-=`M8jM6Xel)#oP z=_}D@H-0S3tu}3nsFN?3vh`>S7&GvOQ<$EXBq-}T9Rc`VNJ;w#1Jz0Zx41@)!l%r5 z;?|0ji!NOm+Z6^70Wc+u2BrrTHYn76?2PLpw8n*+KzpCS+Bh&r0)v^zpYGO&N9FY5 z@}Lb-uqXWo5 zW)-1`%OI;2E8`2zibI=t0X1wxea#lCotj8BzSO8R*#L<;3P|@ucL)ImSY?K5n<*kB z+xHrRdcyZN-JjI5%Kd(t=Y|Vu_UKC(@$~0skYh3NRgarhZ~hWm|JT+ue|z-rq4~d3 z0V@T#a`8~^N;*iD$d^??NiNO|AB-<+jCY)I%h!un&%fyT!SM^*qxG>ikFm$2ZRei5 zwWb$3RkUSw{6TDCKt(>PEeUifsqi6dTiNxypZ7jom@T?}oGKs1I`a3!SVs6?ZIFwx z6t-i9Ek7d;#dIRw>EW}-jh_DP)cWc#Uvm)r?`Bc|*Lml^GQ+>N`Twbbg_%j8mU3Pn z5_B0o7Ide?{Y3@t=8>SnzzgeV`YX=tgt4)2w0`#OR&m%;nG<2t8dRtnz4v>Q-!1n4 zZoqKhUD()umMuyY`x$L5s`-y+@}KeU|EjL_;1{+ozslN?;4S=8;(So4%_98qrf)#& z&FgFdD21j2?SyG+Rc`U&pVaXH04@u2_9>fe?!D3=dtGQ&ij7UfK`UwzmhDfXzCLyD zudeZbioxZ|*=VFp6mpZrJp3r1+eR@JuZJpPQPR1;92Rk`{l-BrWQ%VhPOqhaw`n*{ zAys!~yL4_A#oQ0!HdZZKvdoK!&#IXujwlzEH)zE!Iq zOT7kPfdT;BgKtSH4dlmk$LMnaZr5p~_@M`U!=cIn&x+g*~D#_*?* z5NH#M5>%nmCnDMBHc9te?3-L+R)sANR~*R2gAcmYVt?3tVG2k&D`TOrr#h5e2KNk( zPck2+2FM~6<|YUmbbIY|sAe`8irf+shgu^KOTKmG=XkLnzBu9m<=Fc8VpN-A9# zjwC1M?8j{lcAK}Tq8LlZYjMije&*AXk}Tj$dkQm@oiIr4DWc@Z0w z8adJAHiJ+CU1uD-d7j0g;pC&1pR7>G+#5{NTS*=&ue`8!)b<8nmIwD$X2H~ub4f|3 z36iQ0v4ZN)TZ|T#H`Ptz?QmXiGMRim45S1U-?NFs0S?Q=oj&7>%`ltcps4eoekBLyRI7enmqv9 z4K`6(G|W6@>ELFOxSKHR#DbN+jFnkJx@l6{+}0P?ZzT-B;MzWct{4f4&V7eD zscAlYc5y(A+9ME}Tj_X5O5i}&+|%4XYvVdzgvHs1AKvr_B+W0(c5}QTCfta7|NIES zYFI(unegD8YLwkhmB8@0+g2Ne;@RLLmt683 zOGKqH3{r-D5RU>6zk0zR+dTE4-m+jX0yEG^^vgR1vMQ(T`>)-`R+uR!IwJu_7Aa|t z(<5#vB^4U`Shw>lFXF2pWFs?^%LaY{zIS}oJ80S4u_F#z;5m;{+Q*sCjz{PdcZuGm z1}#_3VvV08u&+`A`er$*N8A;)jz#{o4b9|ubP_6c-*duRk%`k14@kFm20Ttq&3{uq zX_iDeo~YYoX`^+`>8*1O(O^<@_lBgO{`m37F;Nfl^EuxnkZ&FF5CYXn2l#0M+^d(l zXJjmIv}mwlQR^xuXR4|bhNk((KAVQ+ z_SH{_z1+9}pokej2k_EJrm|oX-U6H1N9^^lw-L{XVBr!Ps9RUdP*?ZEs! zNp2B)FD+dZb|63M)m3)^xvn{ncwj))w)z;#RPyXZ=)+bqgCnV}Nea8i>Z0_s9Y)2YO@S=lH`;Uy#dJu=CCi3Qcqhi z-p@D3uJl>(cIXi)=s>OqvR%s3{k%Ae?U2>?Uyb@hU$K-W&&*W5Sekb{z3O-n zUhAH{*>19M>CmelHnzZ@^H&qcHqm>Na?jZQ;jB6W`>h_S;n&i!v2T7&Uuic2_KMPg z>g$I^*tn)(1YCeI%{=GT)fJD)#038DCJVV!u5CEAqIe`sYd7wc6 z2jbOYHXHmU&tjp^eRbrlhe@psY0f`pHhoS?Cu8n{wQ(V}nws6t^X^*ACm+_1axY^H z()eSdL*er3)K7MC{2~QD4KsFbvCesrnWblATY=$11$8jnUV-Q|P1KrZ%SdW8MeprV zv~FQYgPn`Mk9i)cVBp#Qa~hXX-pEizYplbg_&mF%fqedpBacNRqkLivKyy8xuYKYJ z-`{tMyR9hoi)x=BD%}1@$4r{!^54a9tb{~n_muwKe*YcDwB5E?B zYJ~L1hw`65c;CBC`VJrYXqI}+%0dTV39BV_rEr-Y*nQrJQy0#4+VF_a{SXH?Fj4v_ zL4h_*5qwZI`LvPW9OZg_xH zRXFt~rZ$IQXEj5GQ}|{lAQ0pxi(u~n;FaD)4rh^_;AlBHQFI7+Y4^40Sn9emiT^Ux zLxG!mLBw~#ERHI;;)=-!fvnvqED3^B33*hLmh<{iq(ld+)hK#}de6n&X42aHI?wCV zV%KvOcwz}3HYB=jEnGK6Fh=+!FSkTX7F(GxhVU`zg-7XC%cgeZ)pYxK&6!T8U6VC1 zc!0%iYxWa7U*J8n% zKFdLbx$afRP82sa$Pc^C^`!ptdzN(%FbR^f`p|VQbDvatR$0SoyiBX~ z3!53f-4a8K!6oYp*W1X_j7;f2KE@$c?0qvS1) z$Fy$mXPc~w(_WV-s#xn9wC>H9iu>%o)_Rd@?swdw-Yl?S!&TGJo26(%pru#Z8~0h= ztjaLT%zYDks)$qq_D+h>HkykL5C(&xto%`v)y`|R__DO^eOk_BoB`BV!pNV5<}#T9*4LM( zN~K62dnDx;wqhxPdLxT zaex8D)+_MO2UWQrjqTod_mdnqr|j^?)xv5@6AJF!;P3UP`Vl9Qadgf1J_%o17 zWu7K_G?(qVAy&cv;zjb2Zucqtq-~+iqH;I^_yAGDB4;ye?wYe2Zyp_KE0;m&rL5cu zVhINDydriN^<7$x%P8R}(p<76b$LaN7G~@7l^y7=dYV)DNn<|}jTRy|Mc+q0>r~5` zw1tyMYq9+!*4DK{R}G^cXUiN7Dy&MVrJ-?93_+j?t4;6NbPwXlg|B!fjyVemDw~(y ze)V0+=)-v)nR(Z?SMUxo4Ew0y7q%P8u6xDJ(Wj}EO@$_n`R5F4d9F*CUm+UX=-HUr zX;uq3CutG(c;=Tr8$Zx%EP=h^eUM}4bSF038wOKPd9#omNrUIAg{JoGL_G_RerzpM zrwRr4i`Ry?PkbU=y!DQD?kXQ$EV%~+_YXdkdO;uJ{a*aVRz1(FHp|l2_PQ%RtCnGH z_ixH0%{T zBRqpe;~UU@>XExybxeDoa!OOL5T?ytMX7_oDG3UJ;pVL-M)zfGi{X7QFD>j^4PthB z*XLGNgPxjHl{>J<*rrJOj0dGD=`tg8m?};*-29T7+$)hd2U*%c0gh&iW=?@38mQ%j-Z^e&V>X>s8V2=)DQxJ&vcX77V~0Z5`%U+d@i=JHrTK`0ge1|w zt_I}4norfANnQWg81kCGPtjwAZWm3vFRsi*?x&_X@kwD!^y!7va+O!fHK{u8(5NE) zu>FEnyjp<}fhFc%>F5)piOURgHV>&equI*Qu>f^eVmIZMrLh796G_Ne36J;c>M(Q40dIW|DG3 zE84vjT5}H<>%Dj+wf&*h9`G&MbgamtJ%rehcFKDKs{@T*^TYP^qN#8~nUe~2O^bzS zGpILZE>v+oA{eI_%|%V=uYL@s%DilB)w3Xn)O7#%`%sfT$K`r&7Z4EKY}drbJ!Lnijpb$e>?clyH90dJ#= zV!YnVY<(af?k1 zZbZk{Tjmls6G{v6N+zfAsNT9M89})bBJ!ZOC!p)69yWyz56%cQyiY9c@FmQ7VQjvp z5UaRdCBEa9Nob1ILWzaN9;;doD&{ZYh3zEm;CAnQd@9d_)I%oUYd*=o%;KXM>`IS! z#%^Ih|LF;TO|j$G7WEY?5^N_paQ(>#Hr}BBP-ys1=lm~h{JVTnqWR}q0WvI!Pr|3C zpi`MxDvwcBOW3Y~FI3&H#(LW!$oc4X*}!q>y+ZZkiyk}&W@+ZnB2J|#hJRs`Y$s|Z zgTJuFIrhG_JuKcP^o6ZiZr*5`J(!WWp2Pc7<7#N-O3P07zt@lP(r;2vjTj z0}%vQLQy*+el_P;A;~tcuTl5orCqzzgpKdms^^~m7fk=3J;m34=3gsGu=}{J6a0pS zrpt}^(`F8Deb-por+Nv+w2Nz5rGBDX*L>#PK^xvzx>@-yL~-Q8sIMGUKJbspQBziO zv{GL`w|Ax6Wm)ub%BhtRTq!#G`Qvlv$DyM*x-T*oHWp|fpg8!R;q9wiayj7pM9b80 zo(+u3-dzSw!$2{})^gJ+(nR{XSabCGdo|-^#fG`=_;%(`{i7-w1LDvDp@3$SV`Jom z`S&8aa($(4u}o#Ud|wZY+CldT2`Gq-a)|<+$qxIp=URSeZ=Lyg%)m3* zm@!qcGbIK!3A<)zs>KG#XzLJVm2w^~0hN+lQC zI8R9HA^%{5E;VJAXesd#iWW83JM3FN@0kVKd5e=pB+S>iQrkw0=nCnxUZ8=15MvY0 zZ#ToffnM^XnEZq zei@;^d%mBATYhEAJB1azD!r1%!l}!I;TzC*QHyyH81)m4?T5Icm7bJXI=Z8!b_y|2 z2DuN-T8G!njI`UV;(}0tt5^3}+2MxK#iMO>uIXz!ho>9+Jb(06MYNJk9`6~(E?Xge z>tYH)u!O1!7B>8QH<6g7FX?JbK7*_aIA{rc6=c5^Bwhg zj;Wk3d-FsI_M5FMWYXfO|KdO!n@#LPj+RwTH_%91mDN$3jSQEUfmir0n2cv(pnd-!$^N)ho}i)Jf@u? z`>{YWvOiC=b^tiv^+baMX7@KY{ekNXn{e@G_YvFkNMsefLm1tuW}FmHVOI;e^vmS< z=inVtH68SqD=m{QuKM@{G6PU?-p+&)8BIVlAy%~E8;>$$eQ-;=s^e?MN-$DvngV0NRW@@lKMR0GEte9~q(EyFSs<6BtA0mzC7U z@7Lu-&Q?_3-19U7G~4gzJ<{ygn8yYHSz~_nRh;^Os2x|Ji{&ovw(kn7f)J41B zZ`-tAIctZ7q_D!v+CS1_@lFX0ih(J-o!dt!#+?BtV^MDHkc zjYJK*oXT4mo#yv-pgVD~7~#uKCAtu-h%Av?P9hA%u$tGO;wTT+jDI? zr-tgw150Y7unc$Q$9s1pc7zV3w0@ek81y%i3E1b_X;L_`kySD|KTI#*Z5gSE@miW6 zGI6qX@LE>ahN6o_z4ZN;3I}$sAmT6ySIoS~ZS^Ho?79^MF@#U;o~szCSg~uGjCL-D z3SbS^`=;H{eo2{&^CK`pn73UU0lZB22la#vKv}9xo@j;qm3^&pP32%ke92g_Jx88W z&c3+RNUb|)(C`)RX>l{M_L zVAY7=gq9FRQ*&8&&?R{M#PW(PX9~X%K#0PX!zvvdDU*7gC|htx75Smjyv%mr$}LIs zj}joWCsO?7ZHXt~*}#wtBsmYPPi_{%1J>!Vc`8-2UKlp`8Tw!_1FPO%qB#p?Df0zC zmK`DtgrZ1p@q>kPN?cHOBdE&yf&_FKsV1cJ0Btjc8H#aI@);HfZ6=y3pX*Mgrko>l zW_x;=K( z`6MF}I80mmF?5HX`JC?nAs4`#X`4#YS28iD-?O*Jw%jWw1#}r8Ww?~rMW)@Q6=acH zOFzPs&K>j!N0n_;cKJ1JF$69R$ikQ=&7|G-I-fw*e(;6u8z+j$)YQwN ze4AP0M3r*yHH;aQSZ#9ztKgKxu(IpKZ94hfB{@rB8p6j4h-#KUwB+rww~AadGmb^$ z56a8&lOv@W$RHt0&=L`#epLirj3`i0YHW$pQnO6s1m6~e#Zd&3oN?JGL8U=@r$Neo zK;#o;!n}r1om^q$$|@+emBnFbJPVfiJid7CYPy$k#(~SsXpyr>6x@42iatQSAO1?k z#2hKLTb62*7*j{b%?jW{qh@HFA63rHF!e>aw!Iz1HFIdK`koK#<07+4s4+zacSr14 zaQqZI=p1#xiw+S3XIgbn%_TXz8mTl~9SNDZI0GHZg99k|(ee&IV$KS;;AxY}l#BRT zZ>B*gD!kYbnb0$1so6v@cdLT)r<_Z-XbYPc5|SP{MZ|BUbInaof=2eSGP#qNOCn7v z+m@&tJQfTx=HNG*HJE^(#G$m5Y+nw~V6XG=%U!MIc!18+oui95hn5cwepBBzV&&$r z!g{ppmfa9A1Z=fPV_5N(u)ijvq+<#%?$>mKJWIl|C4BP*ohF10hVmmXXNv?9qYGiP zO<12Et|l6A@hS#)ykEtVOzOz@E?tBCkZKe)2rt%6|yu$OoE0dADKoyeh{Z1Q~*owuXF~u z(8rThVnszhHuAVC+;H{J+76HxFC0NVOuNm}O4AR6X*O~~vC%fbAh@RxK40IPbwRbP z7=$p|r22tC&q#7O>3~-2m(bYvu9?%h`J{7o>i$7B)d0R*_O9+(`I`81k~*l6<2>hH zQ)&!TA!9VN3sGQa?$_TGHRTT2lxokJ!vE}F))xWYU%XF*W5@?(^7!UETpy02J|eC5}RGQ%uf_ z#Avl2$^E7!$_puM9vT`>*Uo-V?y42FU-k7=D7F>ATD1o-tPVce+i3w=>R$93#R$Yx40L=$^vVfkuhHw8c7NU5*`6OT67Vw5P+u`N} zx&*WVMTBSVzk18IwNcE3(b&ytGuaTP+CWGhevEwR>NXN*pn&l5} zKTO_2H}VTXS!%!o_+5 z{@scABg<+BmkTvqb*~UWBLzT{-VJeUpJqQU=Z{dEf+Cp@wMdEuzflgJHvjRB#Fzg6 E0}AF3(*OVf literal 0 HcmV?d00001 diff --git a/docs/proofs/b1-02-read-only-context.png b/docs/proofs/b1-02-read-only-context.png new file mode 100644 index 0000000000000000000000000000000000000000..8660498cce43ef1cc00efe964ffd469a66434c5e GIT binary patch literal 102617 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� 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 GXZ{!6!kTOV literal 0 HcmV?d00001 diff --git a/docs/proofs/b1-capture.json b/docs/proofs/b1-capture.json new file mode 100644 index 0000000..1f1848d --- /dev/null +++ b/docs/proofs/b1-capture.json @@ -0,0 +1,14 @@ +{ + "database": "sgf_tempo_test", + "confirmations": 4, + "histories": 4, + "confirmation_events": 4, + "captured_outbox": 4, + "missing_history": 0, + "fiscal_states": [ + "not_issued" + ], + "accounting_states": [ + "blocked_pending" + ] +} \ No newline at end of file diff --git a/docs/proofs/b1-concurrency.json b/docs/proofs/b1-concurrency.json new file mode 100644 index 0000000..2e509fd --- /dev/null +++ b/docs/proofs/b1-concurrency.json @@ -0,0 +1,21 @@ +{ + "database": "sgf_tempo_test", + "results": { + "same_key": { + "parallel_processes": true, + "company_lock_overlap": true, + "same_confirmation": true, + "new_confirmations": 1, + "new_events": 1, + "second_replayed": true + }, + "different_keys": { + "parallel_processes": true, + "company_lock_overlap": true, + "same_confirmation": true, + "new_confirmations": 1, + "new_events": 1, + "second_replayed": true + } + } +} \ No newline at end of file diff --git a/docs/proofs/b1-http-results.json b/docs/proofs/b1-http-results.json new file mode 100644 index 0000000..110a359 --- /dev/null +++ b/docs/proofs/b1-http-results.json @@ -0,0 +1,12 @@ +{ + "database": "sgf_tempo_test", + "real_synthetic_login": true, + "results": [ + "Confirmation authorized; reader denied 403.", + "Old context and version denied 409.", + "Identical command recovers confirmation; different content conflicts 409.", + "Snapshot unchanged after client/service edits.", + "Confirmed draft edit denied 409; reader consultation 200.", + "Currency remains unknown, tax/accounts/recognition pending; captured, not issued or accounted." + ] +} \ No newline at end of file diff --git a/resources/js/ServicesWorkspace.jsx b/resources/js/ServicesWorkspace.jsx index dc20e9f..abecc0a 100644 --- a/resources/js/ServicesWorkspace.jsx +++ b/resources/js/ServicesWorkspace.jsx @@ -15,10 +15,11 @@ export default function ServicesWorkspace({ area, context, can, api, perform, bu const [error, setError] = useState(''); const [key, setKey] = useState(() => crypto.randomUUID()); const [access, setAccess] = useState(false); + const [reviewConfirmation, setReviewConfirmation] = useState(false); const path = `/api/a/${area}`; async function load() { const result = await api(path); setRecords(result.records); } - async function open(id) { setError(''); try { setSelected(await api(`${path}/${id}`)); setForm(null); } catch (e) { setError(e.message); } } + async function open(id) { setError(''); setReviewConfirmation(false); try { setSelected(await api(`${path}/${id}`)); setForm(null); } catch (e) { setError(e.message); } } useEffect(() => { load().catch(e => setError(e.message)); if (initialId) open(initialId); }, [area, context.token]); async function start(record = null) { @@ -67,11 +68,11 @@ export default function ServicesWorkspace({ area, context, can, api, perform, bu if (!allowed('view')) return

    {serviceAreas[area]}

    Sem consulta autorizada neste contexto.

    ; return <> -

    ENTREGA A · PREPARAÇÃO

    {serviceAreas[area]}

    {isDraft(area) ? `Unidade: ${context.unit?.name || 'não seleccionada'}` : 'Cadastro partilhado pelas unidades da empresa'}

    {allowed('create') && }{allowed('manage') && }
    +

    SERVIÇOS · PREPARAÇÃO E CONFIRMAÇÃO INTERNA

    {serviceAreas[area]}

    {isDraft(area) ? `Unidade: ${context.unit?.name || 'não seleccionada'}` : 'Cadastro partilhado pelas unidades da empresa'}

    {allowed('create') && }{allowed('manage') && }
    {error &&
    {error}
    } - {isDraft(area) &&
    Apenas rascunhos. Sem emissão fiscal, confirmação de serviço ou lançamentos contabilísticos.
    } + {isDraft(area) &&
    {area === 'billing_drafts' ? 'Rascunhos e confirmação interna — sem validade fiscal. ' : 'Apenas rascunhos. '}Sem emissão fiscal, confirmação de serviço ou lançamentos contabilísticos.
    } {access ? : <> -

    Registos

    {!records.length &&

    Ainda não há registos neste âmbito.

    }{records.map(record => )}
    +

    Registos

    {!records.length &&

    Ainda não há registos neste âmbito.

    }{records.map(record => )}
    {form ?

    {selected ? 'Editar' : 'Criar'} {isDraft(area) ? 'rascunho' : 'cadastro'}

    {area !== 'clients' &&