From 8b71608792f00084df1e71956e503f102cea290d Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 31 Mar 2021 14:51:41 +0200 Subject: [PATCH 01/25] Added front certificate design ref #36 --- src/templates/certficate_background.png | Bin 0 -> 48130 bytes src/templates/certificate_footer.png | Bin 0 -> 19018 bytes src/templates/runner_certificate.html | 103 ++++++++++++++++++++++++ 3 files changed, 103 insertions(+) create mode 100644 src/templates/certficate_background.png create mode 100644 src/templates/certificate_footer.png create mode 100644 src/templates/runner_certificate.html diff --git a/src/templates/certficate_background.png b/src/templates/certficate_background.png new file mode 100644 index 0000000000000000000000000000000000000000..78dbf31aeb591f2a0b5f9ebbba78eeaeb3b883ac GIT binary patch literal 48130 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 Z_Q|E;AGbK3pug=&QC3wZ|IYo#{} + + + + Sponsoring contract + + + + + +
+
+

Urkunde

+
+ +
+

Voasasdasdasdrname + mittelnamerqwerqwe + Nachnameasdasdasd +

+

Hat beim Testen für Kaya!

+

XX km

+

für den guten Zweck zurückgelegt

+
+
+ +
+
+
+
+

Sponsorings

+
+
+ asd + + + + + + + + + + + + + +
Sponsor:inBetrag/KMGesamtbetrag
Sponsor:in1123€312€
+
+
+

+ Bankinfo +

+
+
+ + + \ No newline at end of file -- 2.47.2 From 8d6ea4dbf9763994f0f44c4ad9b32a7b1d16f11a Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 31 Mar 2021 15:00:12 +0200 Subject: [PATCH 02/25] Fixed bg image opacity overlay ref #36 --- src/templates/runner_certificate.html | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/src/templates/runner_certificate.html b/src/templates/runner_certificate.html index 90f02de..429301e 100644 --- a/src/templates/runner_certificate.html +++ b/src/templates/runner_certificate.html @@ -5,23 +5,6 @@ Sponsoring contract -
+

Urkunde

@@ -67,22 +65,31 @@
- + + {{#each this.runner.distanceDonations}} + {{/each}} + + + + +
Sponsor:inSponsor:in Betrag/KM Gesamtbetrag
Sponsor:in1 123€ 312€
Gesamt0.5€1€

- Bankinfo + Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et + dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet + clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

-- 2.47.2 From 2b2195727b15b8666edf0d925f2e68a98030153d Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 31 Mar 2021 15:13:08 +0200 Subject: [PATCH 04/25] Added template strings ref #46 --- src/templates/runner_certificate.html | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/templates/runner_certificate.html b/src/templates/runner_certificate.html index d6beccf..eeb4b15 100644 --- a/src/templates/runner_certificate.html +++ b/src/templates/runner_certificate.html @@ -40,18 +40,18 @@ + {{#each runners}}

Urkunde

-

Voasasdasdasdrname - mittelnamerqwerqwe - Nachnameasdasdasd +

{{this.firstname}} + {{this.middlename}} {{this.lastname}}

-

Hat beim Testen für Kaya!

-

XX km

+

Hat beim {{../eventname}}

+

{{this.distance}}km

für den guten Zweck zurückgelegt

@@ -70,11 +70,11 @@ Gesamtbetrag - {{#each this.runner.distanceDonations}} + {{#each this.distanceDonations}} - Sponsor:in1 - 123€ - 312€ + {{this.dornor}} + {{this.amountPerDistance}} + {{this.amount}}] {{/each}} @@ -93,6 +93,7 @@

+ {{/each}} \ No newline at end of file -- 2.47.2 From 6767c3b2d1e991e2f4f74b8d423a72e240ffcb8c Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 31 Mar 2021 15:13:08 +0200 Subject: [PATCH 05/25] Added template strings ref #36 --- src/templates/runner_certificate.html | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/templates/runner_certificate.html b/src/templates/runner_certificate.html index d6beccf..eeb4b15 100644 --- a/src/templates/runner_certificate.html +++ b/src/templates/runner_certificate.html @@ -40,18 +40,18 @@ + {{#each runners}}

Urkunde

-

Voasasdasdasdrname - mittelnamerqwerqwe - Nachnameasdasdasd +

{{this.firstname}} + {{this.middlename}} {{this.lastname}}

-

Hat beim Testen für Kaya!

-

XX km

+

Hat beim {{../eventname}}

+

{{this.distance}}km

für den guten Zweck zurückgelegt

@@ -70,11 +70,11 @@ Gesamtbetrag - {{#each this.runner.distanceDonations}} + {{#each this.distanceDonations}} - Sponsor:in1 - 123€ - 312€ + {{this.dornor}} + {{this.amountPerDistance}} + {{this.amount}}] {{/each}} @@ -93,6 +93,7 @@

+ {{/each}} \ No newline at end of file -- 2.47.2 From 955e11846b5385c1a0b6f0b54b9951f0768ff414 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 31 Mar 2021 15:18:36 +0200 Subject: [PATCH 06/25] Added function for generateing runner certificates ref #36 --- src/PdfCreator.ts | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/src/PdfCreator.ts b/src/PdfCreator.ts index 549cf4f..8be61bb 100644 --- a/src/PdfCreator.ts +++ b/src/PdfCreator.ts @@ -10,6 +10,7 @@ import { PDFDocument } from 'pdf-lib'; import puppeteer from "puppeteer"; import { awaitAsyncHandlebarHelpers, helpers } from './asyncHelpers'; import { config } from './config'; +import { CertificateRunner } from './models/CertificateRunner'; import { Runner } from './models/Runner'; import { RunnerCard } from './models/RunnerCard'; import { RunnerGroup } from './models/RunnerGroup'; @@ -153,13 +154,38 @@ export class PdfCreator { await i18next.changeLanguage(locale); const template_source = fs.readFileSync(`${this.templateDir}/runner_card.html`, 'utf8'); const template = Handlebars.compile(template_source); - let result = template({ cards, cards_swapped, eventname: "LfK! 2069", codeformat: "qrcode" }) + let result = template({ cards, cards_swapped, eventname: config.eventname, codeformat: codeformat }) result = await awaitAsyncHandlebarHelpers(result); - fs.writeFileSync("lelelelele.tmp", result); const pdf = await this.renderPdf(result, { format: "A4", landscape: false }); return pdf } + /** + * Generate sponsoring contract pdfs. + * @param runner The runner you want to generate the contracts for. + * @param locale The locale used for the contracts (default:en) + */ + public async generateRunnerCertficates(runners: CertificateRunner[], locale: string = "en"): Promise { + if (runners.length > 50) { + let pdf_promises = new Array>(); + let i, j; + for (i = 0, j = runners.length; i < j; i += 50) { + let chunk = runners.slice(i, i + 50); + pdf_promises.push(this.generateRunnerCertficates(chunk, locale)); + } + const pdfs = await Promise.all(pdf_promises); + return await this.mergePdfs(pdfs); + } + await i18next.changeLanguage(locale); + const template_source = fs.readFileSync(`${this.templateDir}/runner_certificate.html`, 'utf8'); + const template = Handlebars.compile(template_source); + let result = template({ runners, eventname: config.eventname }); + result = await awaitAsyncHandlebarHelpers(result); + const pdf = await this.renderPdf(result, { format: "A5", landscape: true }); + fs.writeFileSync("lelelelele.tmp", pdf); + return pdf; + } + /** * Converts all images in html to base64. * Works with image files in the template directory or images from urls. -- 2.47.2 From 0af9b81b38e1c28261c012375af2c91808e65621 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 31 Mar 2021 15:22:16 +0200 Subject: [PATCH 07/25] Added new basic certificate endpoint ref #36 --- src/controllers/PdfController.ts | 34 ++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/controllers/PdfController.ts b/src/controllers/PdfController.ts index 619dc81..0b33f07 100644 --- a/src/controllers/PdfController.ts +++ b/src/controllers/PdfController.ts @@ -1,5 +1,6 @@ import { Authorized, Body, JsonController, Post, QueryParam, Res } from 'routing-controllers'; import { OpenAPI } from 'routing-controllers-openapi'; +import { CertificateRunner } from '../models/CertificateRunner'; import { Runner } from '../models/Runner'; import { RunnerCard } from '../models/RunnerCard'; import { PdfCreator } from '../PdfCreator'; @@ -54,6 +55,25 @@ export class PdfController { return contracts; } + @Post('/certificates') + @OpenAPI({ description: "Generate runner certificate pdfs from certificate runner objects.
You can choose your prefered locale by passing the 'locale' query-param.
If you provide more than 100 runenrs this could take a moment or two (we tested up to 1000 runners in about 70sec so far)." }) + async generateCertificates(@Body({ validate: true, options: { limit: "500mb" } }) runners: CertificateRunner[], @Res() res: any, @QueryParam("locale") locale: string, @QueryParam("download") download: boolean) { + if (!this.initialized) { + await this.pdf.init(); + this.initialized = true; + } + if (!Array.isArray(runners)) { + runners = [runners]; + } + runners = this.mapCertificatRunnersGroupNames(runners) + const certificates = await this.pdf.generateRunnerCertficates(runners, locale); + res.setHeader('content-type', 'application/pdf'); + if (download) { + res.setHeader('Content-Disposition', 'attachment; filename="certificates.pdf"') + } + return certificates; + } + private mapRunnerGroupNames(runners: Runner[]): Runner[] { let response = new Array(); for (let runner of runners) { @@ -68,6 +88,20 @@ export class PdfController { return response; } + private mapCertificatRunnersGroupNames(runners: CertificateRunner[]): CertificateRunner[] { + let response = new Array(); + for (let runner of runners) { + if (!runner.group.parentGroup) { + runner.group.fullName = runner.group.name; + } + else { + runner.group.fullName = `${runner.group.parentGroup.name}/${runner.group.name}`; + } + response.push(runner) + } + return response; + } + private mapCardGroupNames(cards: RunnerCard[]): RunnerCard[] { let response = new Array(); for (let card of cards) { -- 2.47.2 From b82a32ae3ee3256402be5dde0ada903f2c19a8cc Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 31 Mar 2021 15:42:52 +0200 Subject: [PATCH 08/25] Fixed page size+background image ref #36 --- src/PdfCreator.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/PdfCreator.ts b/src/PdfCreator.ts index 8be61bb..3df4f2b 100644 --- a/src/PdfCreator.ts +++ b/src/PdfCreator.ts @@ -181,8 +181,7 @@ export class PdfCreator { const template = Handlebars.compile(template_source); let result = template({ runners, eventname: config.eventname }); result = await awaitAsyncHandlebarHelpers(result); - const pdf = await this.renderPdf(result, { format: "A5", landscape: true }); - fs.writeFileSync("lelelelele.tmp", pdf); + const pdf = await this.renderPdf(result, { format: "A4", landscape: false, printBackground: true }); return pdf; } -- 2.47.2 From 5ba26c4cbfae7d3f31d3709aaeb372c14de78fa9 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 31 Mar 2021 16:05:13 +0200 Subject: [PATCH 09/25] Removed temporary background-image fix ref #36 --- src/PdfCreator.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/PdfCreator.ts b/src/PdfCreator.ts index 3df4f2b..fe09a91 100644 --- a/src/PdfCreator.ts +++ b/src/PdfCreator.ts @@ -192,6 +192,7 @@ export class PdfCreator { */ public async imgToBase64(html): Promise { const $ = cheerio.load(html) + $('img').each(async (index, element) => { let imgsrc = $(element).attr("src"); if (imgsrc.startsWith("data:image")) { @@ -217,7 +218,7 @@ export class PdfCreator { image = `data:${img_type};base64,${image}` $(element).attr("src", image) - }) + }); return $.html(); } -- 2.47.2 From 64fce5bd019a00bf34c1ebd133c1904bb577b67b Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 31 Mar 2021 16:09:15 +0200 Subject: [PATCH 10/25] Now with embedded background ref #36 --- src/templates/runner_certificate.html | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/templates/runner_certificate.html b/src/templates/runner_certificate.html index eeb4b15..bce97d0 100644 --- a/src/templates/runner_certificate.html +++ b/src/templates/runner_certificate.html @@ -12,7 +12,7 @@ box-sizing: border-box; page-break-after: always; padding: 1.2cm 2cm 1.2cm 2cm; - background-image: url("./certficate_background.png"); + background-image: url("data:image/png;base64,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"); background-repeat: no-repeat; background-size: 11cm; background-position: 5cm 5cm; @@ -41,11 +41,10 @@ {{#each runners}} -
+

Urkunde

-

{{this.firstname}} {{this.middlename}} {{this.lastname}} @@ -57,8 +56,8 @@

-
-
+ +

Sponsorings

@@ -72,7 +71,7 @@ {{#each this.distanceDonations}} - {{this.dornor}} + {{this.donor.firstname}} {{this.donor.middlename}} {{this.donor.lastname}} {{this.amountPerDistance}} {{this.amount}}] @@ -92,7 +91,7 @@ clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

-
+ {{/each}} -- 2.47.2 From 7fea1ca78ff6fdbb38dee0edd9918eaeb1264d18 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 31 Mar 2021 16:15:42 +0200 Subject: [PATCH 11/25] Added translations ref #46 --- src/locales/de.json | 46 ++++++++++++++++----------- src/locales/en.json | 45 +++++++++++++++----------- src/templates/runner_certificate.html | 16 +++++----- 3 files changed, 62 insertions(+), 45 deletions(-) diff --git a/src/locales/de.json b/src/locales/de.json index 7fd4d49..f547755 100644 --- a/src/locales/de.json +++ b/src/locales/de.json @@ -1,20 +1,28 @@ { - "address": "Adresse", - "city": "Stadt", - "date": "Datum", - "firstname": "Vorname", - "group": "Team/Klasse", - "house_number": "Hausnummer", - "id": "ID", - "lastname": "Nachname", - "location": "Ort", - "please_use_blockletters": "Bitte in DRUCKBUCHSTABEN schreiben", - "postalcode": "Postleitzahl", - "signature": "Unterschrift", - "sponsor": "Sponsor", - "sponsoring_address_condition": "Muss ausgefüllt werden, wenn Sie eine Spendenquittung benötigen - Spendenquittungen können erst ab einem Gesamtbetrag von {{sponsoring_receipt_minimum_amount}}{{currency_symbol}} ausgestellt werden", - "sponsoring_amount_per_distance": "mit einem Betrag von _____{{currency_symbol}} pro gelaufenem Kilometer zu unterstützen.", - "sponsoring_subtitle": "Ich/Wir sind bereit anlässlich des {{eventname}}", - "sponsoring_title": "Sponsoringerklärung", - "street": "Straße" -} \ No newline at end of file + "address": "Adresse", + "city": "Stadt", + "date": "Datum", + "firstname": "Vorname", + "group": "Team/Klasse", + "house_number": "Hausnummer", + "id": "ID", + "lastname": "Nachname", + "location": "Ort", + "please_use_blockletters": "Bitte in DRUCKBUCHSTABEN schreiben", + "postalcode": "Postleitzahl", + "signature": "Unterschrift", + "sponsor": "Sponsor", + "sponsoring_address_condition": "Muss ausgefüllt werden, wenn Sie eine Spendenquittung benötigen - Spendenquittungen können erst ab einem Gesamtbetrag von {{sponsoring_receipt_minimum_amount}}{{currency_symbol}} ausgestellt werden", + "sponsoring_amount_per_distance": "mit einem Betrag von _____{{currency_symbol}} pro gelaufenem Kilometer zu unterstützen.", + "sponsoring_subtitle": "Ich/Wir sind bereit anlässlich des {{eventname}}", + "sponsoring_title": "Sponsoringerklärung", + "street": "Straße", + "urkunde": "Urkunde", + "hat-beim-eventname": "Hat beim {{../eventname}}", + "fuer-den-guten-zweck-zurueckgelegt": "für den guten Zweck zurückgelegt", + "sponsorings": "Sponsorings", + "sponsor-in": "Sponsor:in", + "betrag-km": "Betrag/KM", + "gesamtbetrag": "Gesamtbetrag", + "gesamt": "Gesamt" +} diff --git a/src/locales/en.json b/src/locales/en.json index 317b9b6..13a6345 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -1,19 +1,28 @@ { - "address": "Address", - "city": "City", - "date": "date", - "firstname": "First name", - "group": "Team/class", - "house_number": "House number", - "lastname": "Last name", - "location": "Location", - "please_use_blockletters": "Please write in BLOCK LETTERS.", - "postalcode": "Postal code", - "signature": "Signature", - "sponsor": "sponsor", - "sponsoring_address_condition": "You have to provide an address if you want a donation receipt - Donation receipts can't be issued for total donation amounts under {{sponsoring_receipt_minimum_amount}}{{currency_symbol}}", - "sponsoring_amount_per_distance": "with the amount of _____{{currency_symbol}} per kilometer run.", - "sponsoring_subtitle": "On the ocation of the {{eventname}} I/We want to support", - "sponsoring_title": "Sponsoring contract", - "street": "Street" -} \ No newline at end of file + "address": "Address", + "city": "City", + "date": "date", + "firstname": "First name", + "group": "Team/class", + "house_number": "House number", + "lastname": "Last name", + "location": "Location", + "please_use_blockletters": "Please write in BLOCK LETTERS.", + "postalcode": "Postal code", + "signature": "Signature", + "sponsor": "sponsor", + "sponsoring_address_condition": "You have to provide an address if you want a donation receipt - Donation receipts can't be issued for total donation amounts under {{sponsoring_receipt_minimum_amount}}{{currency_symbol}}", + "sponsoring_amount_per_distance": "with the amount of _____{{currency_symbol}} per kilometer run.", + "sponsoring_subtitle": "On the ocation of the {{eventname}} I/We want to support", + "sponsoring_title": "Sponsoring contract", + "street": "Street", + "urkunde": "Certifcate", + "fuer-den-guten-zweck-zurueckgelegt": "for our good cuse at the {eventname}", + "hat-beim-eventname": "Ran", + "id": "ID", + "sponsorings": "Donations", + "sponsor-in": "Donor", + "betrag-km": "Amount/KM", + "gesamtbetrag": "Total", + "gesamt": "Combined" +} diff --git a/src/templates/runner_certificate.html b/src/templates/runner_certificate.html index bce97d0..1262403 100644 --- a/src/templates/runner_certificate.html +++ b/src/templates/runner_certificate.html @@ -43,15 +43,15 @@ {{#each runners}}
-

Urkunde

+

{{__ "urkunde"}}

{{this.firstname}} {{this.middlename}} {{this.lastname}}

-

Hat beim {{../eventname}}

+

{{__ "hat-beim-eventname"}}

{{this.distance}}km

-

für den guten Zweck zurückgelegt

+

{{__ "fuer-den-guten-zweck-zurueckgelegt"}}

@@ -59,14 +59,14 @@
-

Sponsorings

+

{{__ "sponsorings"}}

- - - + + + {{#each this.distanceDonations}} @@ -78,7 +78,7 @@ {{/each}} - + -- 2.47.2 From ac572f1ea31cb66985e04cb5d56cc67f521e990d Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 31 Mar 2021 16:15:42 +0200 Subject: [PATCH 12/25] Added translations ref #36 --- src/locales/de.json | 46 ++++++++++++++++----------- src/locales/en.json | 45 +++++++++++++++----------- src/templates/runner_certificate.html | 16 +++++----- 3 files changed, 62 insertions(+), 45 deletions(-) diff --git a/src/locales/de.json b/src/locales/de.json index 7fd4d49..f547755 100644 --- a/src/locales/de.json +++ b/src/locales/de.json @@ -1,20 +1,28 @@ { - "address": "Adresse", - "city": "Stadt", - "date": "Datum", - "firstname": "Vorname", - "group": "Team/Klasse", - "house_number": "Hausnummer", - "id": "ID", - "lastname": "Nachname", - "location": "Ort", - "please_use_blockletters": "Bitte in DRUCKBUCHSTABEN schreiben", - "postalcode": "Postleitzahl", - "signature": "Unterschrift", - "sponsor": "Sponsor", - "sponsoring_address_condition": "Muss ausgefüllt werden, wenn Sie eine Spendenquittung benötigen - Spendenquittungen können erst ab einem Gesamtbetrag von {{sponsoring_receipt_minimum_amount}}{{currency_symbol}} ausgestellt werden", - "sponsoring_amount_per_distance": "mit einem Betrag von _____{{currency_symbol}} pro gelaufenem Kilometer zu unterstützen.", - "sponsoring_subtitle": "Ich/Wir sind bereit anlässlich des {{eventname}}", - "sponsoring_title": "Sponsoringerklärung", - "street": "Straße" -} \ No newline at end of file + "address": "Adresse", + "city": "Stadt", + "date": "Datum", + "firstname": "Vorname", + "group": "Team/Klasse", + "house_number": "Hausnummer", + "id": "ID", + "lastname": "Nachname", + "location": "Ort", + "please_use_blockletters": "Bitte in DRUCKBUCHSTABEN schreiben", + "postalcode": "Postleitzahl", + "signature": "Unterschrift", + "sponsor": "Sponsor", + "sponsoring_address_condition": "Muss ausgefüllt werden, wenn Sie eine Spendenquittung benötigen - Spendenquittungen können erst ab einem Gesamtbetrag von {{sponsoring_receipt_minimum_amount}}{{currency_symbol}} ausgestellt werden", + "sponsoring_amount_per_distance": "mit einem Betrag von _____{{currency_symbol}} pro gelaufenem Kilometer zu unterstützen.", + "sponsoring_subtitle": "Ich/Wir sind bereit anlässlich des {{eventname}}", + "sponsoring_title": "Sponsoringerklärung", + "street": "Straße", + "urkunde": "Urkunde", + "hat-beim-eventname": "Hat beim {{../eventname}}", + "fuer-den-guten-zweck-zurueckgelegt": "für den guten Zweck zurückgelegt", + "sponsorings": "Sponsorings", + "sponsor-in": "Sponsor:in", + "betrag-km": "Betrag/KM", + "gesamtbetrag": "Gesamtbetrag", + "gesamt": "Gesamt" +} diff --git a/src/locales/en.json b/src/locales/en.json index 317b9b6..13a6345 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -1,19 +1,28 @@ { - "address": "Address", - "city": "City", - "date": "date", - "firstname": "First name", - "group": "Team/class", - "house_number": "House number", - "lastname": "Last name", - "location": "Location", - "please_use_blockletters": "Please write in BLOCK LETTERS.", - "postalcode": "Postal code", - "signature": "Signature", - "sponsor": "sponsor", - "sponsoring_address_condition": "You have to provide an address if you want a donation receipt - Donation receipts can't be issued for total donation amounts under {{sponsoring_receipt_minimum_amount}}{{currency_symbol}}", - "sponsoring_amount_per_distance": "with the amount of _____{{currency_symbol}} per kilometer run.", - "sponsoring_subtitle": "On the ocation of the {{eventname}} I/We want to support", - "sponsoring_title": "Sponsoring contract", - "street": "Street" -} \ No newline at end of file + "address": "Address", + "city": "City", + "date": "date", + "firstname": "First name", + "group": "Team/class", + "house_number": "House number", + "lastname": "Last name", + "location": "Location", + "please_use_blockletters": "Please write in BLOCK LETTERS.", + "postalcode": "Postal code", + "signature": "Signature", + "sponsor": "sponsor", + "sponsoring_address_condition": "You have to provide an address if you want a donation receipt - Donation receipts can't be issued for total donation amounts under {{sponsoring_receipt_minimum_amount}}{{currency_symbol}}", + "sponsoring_amount_per_distance": "with the amount of _____{{currency_symbol}} per kilometer run.", + "sponsoring_subtitle": "On the ocation of the {{eventname}} I/We want to support", + "sponsoring_title": "Sponsoring contract", + "street": "Street", + "urkunde": "Certifcate", + "fuer-den-guten-zweck-zurueckgelegt": "for our good cuse at the {eventname}", + "hat-beim-eventname": "Ran", + "id": "ID", + "sponsorings": "Donations", + "sponsor-in": "Donor", + "betrag-km": "Amount/KM", + "gesamtbetrag": "Total", + "gesamt": "Combined" +} diff --git a/src/templates/runner_certificate.html b/src/templates/runner_certificate.html index bce97d0..1262403 100644 --- a/src/templates/runner_certificate.html +++ b/src/templates/runner_certificate.html @@ -43,15 +43,15 @@ {{#each runners}}
-

Urkunde

+

{{__ "urkunde"}}

{{this.firstname}} {{this.middlename}} {{this.lastname}}

-

Hat beim {{../eventname}}

+

{{__ "hat-beim-eventname"}}

{{this.distance}}km

-

für den guten Zweck zurückgelegt

+

{{__ "fuer-den-guten-zweck-zurueckgelegt"}}

@@ -59,14 +59,14 @@
-

Sponsorings

+

{{__ "sponsorings"}}

Sponsor:inBetrag/KMGesamtbetrag{{__ "sponsor-in"}}{{__ "betrag-km"}}{{__ "gesamtbetrag"}}
Gesamt{{__ "gesamt"}} 0.5€ 1€
- - - + + + {{#each this.distanceDonations}} @@ -78,7 +78,7 @@ {{/each}} - + -- 2.47.2 From b43aeec0cf40a9c37a10072062ab5d93102f6c81 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 31 Mar 2021 16:16:37 +0200 Subject: [PATCH 13/25] Added missing interpolations ref #36 --- src/locales/de.json | 4 ++-- src/locales/en.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/locales/de.json b/src/locales/de.json index f547755..68a1967 100644 --- a/src/locales/de.json +++ b/src/locales/de.json @@ -18,11 +18,11 @@ "sponsoring_title": "Sponsoringerklärung", "street": "Straße", "urkunde": "Urkunde", - "hat-beim-eventname": "Hat beim {{../eventname}}", + "hat-beim-eventname": "Hat beim {{eventname}}", "fuer-den-guten-zweck-zurueckgelegt": "für den guten Zweck zurückgelegt", "sponsorings": "Sponsorings", "sponsor-in": "Sponsor:in", "betrag-km": "Betrag/KM", "gesamtbetrag": "Gesamtbetrag", "gesamt": "Gesamt" -} +} \ No newline at end of file diff --git a/src/locales/en.json b/src/locales/en.json index 13a6345..af741ea 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -17,7 +17,7 @@ "sponsoring_title": "Sponsoring contract", "street": "Street", "urkunde": "Certifcate", - "fuer-den-guten-zweck-zurueckgelegt": "for our good cuse at the {eventname}", + "fuer-den-guten-zweck-zurueckgelegt": "for our good cuse at the {{eventname}}", "hat-beim-eventname": "Ran", "id": "ID", "sponsorings": "Donations", @@ -25,4 +25,4 @@ "betrag-km": "Amount/KM", "gesamtbetrag": "Total", "gesamt": "Combined" -} +} \ No newline at end of file -- 2.47.2 From 1d12de7045b5e8324dc0ddc421944e70ffc2ec73 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 31 Mar 2021 16:17:48 +0200 Subject: [PATCH 14/25] Fixed typo ref #36 --- src/templates/runner_certificate.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/templates/runner_certificate.html b/src/templates/runner_certificate.html index 1262403..68c9a87 100644 --- a/src/templates/runner_certificate.html +++ b/src/templates/runner_certificate.html @@ -73,7 +73,7 @@ - + {{/each}} -- 2.47.2 From e0add846bb37b435da9807bdc76c70793002896e Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 31 Mar 2021 16:24:05 +0200 Subject: [PATCH 15/25] Now formatting currency ans distance ref #36 --- src/PdfCreator.ts | 14 +++++++++++++- src/templates/runner_certificate.html | 10 +++++----- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/PdfCreator.ts b/src/PdfCreator.ts index fe09a91..b37904d 100644 --- a/src/PdfCreator.ts +++ b/src/PdfCreator.ts @@ -98,6 +98,18 @@ export class PdfCreator { return config.sponor_logos[index]; } ); + await Handlebars.registerHelper('--format_kilometers', + function (str) { + let meters = parseInt(str); + return ((meters / 1000).toFixed(3).toString()) + } + ); + await Handlebars.registerHelper('--format_currency', + function (str) { + let meters = parseInt(str); + return ((meters / 100).toFixed(2).toString()) + } + ); this.browser = await puppeteer.launch({ headless: true, args: minimal_args }); } @@ -179,7 +191,7 @@ export class PdfCreator { await i18next.changeLanguage(locale); const template_source = fs.readFileSync(`${this.templateDir}/runner_certificate.html`, 'utf8'); const template = Handlebars.compile(template_source); - let result = template({ runners, eventname: config.eventname }); + let result = template({ runners, eventname: config.eventname, currency_symbol: config.currency_symbol }); result = await awaitAsyncHandlebarHelpers(result); const pdf = await this.renderPdf(result, { format: "A4", landscape: false, printBackground: true }); return pdf; diff --git a/src/templates/runner_certificate.html b/src/templates/runner_certificate.html index 68c9a87..9f40e8a 100644 --- a/src/templates/runner_certificate.html +++ b/src/templates/runner_certificate.html @@ -50,7 +50,7 @@ {{this.middlename}} {{this.lastname}}

{{__ "hat-beim-eventname"}}

-

{{this.distance}}km

+

{{--format_kilometers this.distance}}km

{{__ "fuer-den-guten-zweck-zurueckgelegt"}}

@@ -72,15 +72,15 @@ {{#each this.distanceDonations}}
- - + + {{/each}} - - + +
Sponsor:inBetrag/KMGesamtbetrag{{__ "sponsor-in"}}{{__ "betrag-km"}}{{__ "gesamtbetrag"}}
Gesamt{{__ "gesamt"}} 0.5€ 1€
{{this.donor.firstname}} {{this.donor.middlename}} {{this.donor.lastname}} {{this.amountPerDistance}}{{this.amount}}]{{this.amount}}
{{this.donor.firstname}} {{this.donor.middlename}} {{this.donor.lastname}}{{this.amountPerDistance}}{{this.amount}}{{--format_currency this.amountPerDistance}} {{../../currency_symbol}}{{--format_currency this.amount}} {{../../currency_symbol}}
{{__ "gesamt"}}0.5€1€0.5 {{../currency_symbol}}1 {{../currency_symbol}}
-- 2.47.2 From 6b23dea47745e98371a65a4f577f2e20cfdfe597 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 31 Mar 2021 16:31:44 +0200 Subject: [PATCH 16/25] Now calculateing total donations (perdistance) ref #36 --- src/controllers/PdfController.ts | 6 ++++++ src/models/CertificateRunner.ts | 11 ++++++++++- src/templates/runner_certificate.html | 4 ++-- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/controllers/PdfController.ts b/src/controllers/PdfController.ts index 0b33f07..665f36f 100644 --- a/src/controllers/PdfController.ts +++ b/src/controllers/PdfController.ts @@ -97,6 +97,12 @@ export class PdfController { else { runner.group.fullName = `${runner.group.parentGroup.name}/${runner.group.name}`; } + runner.donationPerDistanceTotal = runner.distanceDonations.reduce(function (sum, current) { + return sum + current.amountPerDistance; + }, 0); + runner.donationTotal = runner.distanceDonations.reduce(function (sum, current) { + return sum + current.amount; + }, 0); response.push(runner) } return response; diff --git a/src/models/CertificateRunner.ts b/src/models/CertificateRunner.ts index a30b356..ef6168a 100644 --- a/src/models/CertificateRunner.ts +++ b/src/models/CertificateRunner.ts @@ -1,5 +1,5 @@ import { - IsArray + IsArray, IsNumber, IsOptional } from "class-validator"; import { DistanceDonation } from './DistanceDonation'; import { Runner } from './Runner'; @@ -13,4 +13,13 @@ export class CertificateRunner extends Runner { */ @IsArray() distanceDonations: DistanceDonation[]; + + @IsNumber() + @IsOptional() + donationPerDistanceTotal?: number = 0; + + @IsNumber() + @IsOptional() + donationTotal?: number = 0; + } diff --git a/src/templates/runner_certificate.html b/src/templates/runner_certificate.html index 9f40e8a..f4c6871 100644 --- a/src/templates/runner_certificate.html +++ b/src/templates/runner_certificate.html @@ -79,8 +79,8 @@ {{__ "gesamt"}} - 0.5 {{../currency_symbol}} - 1 {{../currency_symbol}} + {{--format_currency this.donationPerDistanceTotal}} {{../currency_symbol}} + {{--format_currency this.donationTotal}} {{../currency_symbol}} -- 2.47.2 From a5808419738563fec3a7d8d35f4ce20d76c017fb Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 31 Mar 2021 16:43:59 +0200 Subject: [PATCH 17/25] Addest first coupple of test improvements ref #36 --- src/tests/speedtest.ts | 60 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 57 insertions(+), 3 deletions(-) diff --git a/src/tests/speedtest.ts b/src/tests/speedtest.ts index 0ed4372..2899da0 100644 --- a/src/tests/speedtest.ts +++ b/src/tests/speedtest.ts @@ -1,10 +1,15 @@ import axios from "axios" import faker from "faker" +import { config } from '../config' +import { CertificateRunner } from '../models/CertificateRunner' +import { DistanceDonation } from '../models/DistanceDonation' +import { Donor } from '../models/Donor' import { Runner } from '../models/Runner' import { RunnerCard } from '../models/RunnerCard' import { RunnerGroup } from '../models/RunnerGroup' const baseurl = "http://localhost:4010" +const key = config.api_key; axios.interceptors.request.use((config) => { config.headers['request-startTime'] = process.hrtime() @@ -46,6 +51,36 @@ function generateCards(amount: number): RunnerCard[] { return cards; } +function generateCertificateRunners(amount: number): CertificateRunner[] { + let runners: CertificateRunner[] = new Array(); + let group = new RunnerGroup(); + let runner = new CertificateRunner(); + let donor = new Donor(); + let donation = new DistanceDonation(); + for (var i = 0; i < amount; i++) { + group.name = faker.company.bsBuzz(); + group.id = Math.floor(Math.random() * (9999999 - 1) + 1); + + donor.firstname = faker.name.firstName(); + donor.lastname = faker.name.lastName(); + donor.id = Math.floor(Math.random() * (9999999 - 1) + 1); + + runner.firstname = faker.name.firstName(); + runner.lastname = faker.name.lastName(); + runner.id = Math.floor(Math.random() * (9999999 - 1) + 1); + runner.distance = Math.floor(Math.random() * (9999999 - 1) + 1); + + donation.id = Math.floor(Math.random() * (9999999 - 1) + 1); + donation.donor = donor; + donation.runner = runner; + donation.amountPerDistance = Math.floor(Math.random() * (10000 - 1) + 1); + + runner.distanceDonations = [donation, donation] + runners.push(runner); + } + return runners; +} + function idToEan13(id): string { const multiply = [1, 3]; id = id.toString(); @@ -64,15 +99,20 @@ function idToEan13(id): string { } async function postContracts(runners: Runner[]): Promise { - const res = await axios.post(`${baseurl}/contracts`, runners); + const res = await axios.post(`${baseurl}/contracts?key=${key}`, runners); return new Measurement("contract", runners.length, parseInt(res.headers['request-duration'])) } async function postCards(cards: RunnerCard[]): Promise { - const res = await axios.post(`${baseurl}/cards`, cards); + const res = await axios.post(`${baseurl}/cards?key=${key}`, cards); return new Measurement("card", cards.length, parseInt(res.headers['request-duration'])) } +async function postCertificates(runners: CertificateRunner[]): Promise { + const res = await axios.post(`${baseurl}/certificates?key=${key}`, runners); + return new Measurement("certificate", runners.length, parseInt(res.headers['request-duration'])) +} + async function testContracts(sizes): Promise { let measurements = new Array(); console.log("#### Testing contracts ####"); @@ -97,16 +137,30 @@ async function testCards(sizes): Promise { return measurements; } +async function testCertificates(sizes): Promise { + let measurements = new Array(); + console.log("#### Testing Certificates ####"); + + for (let size of sizes) { + const m = await postCertificates(generateCertificateRunners(size)); + console.log(m.toString()); + measurements.push(m); + } + return measurements; +} + async function main() { - const sizes = [0, 1, 10, 50, 100, 200, 500, 1000] + const sizes = [1, 10, 50, 100] console.log("########### Speedtest ###########"); console.log(`Document server version (according to the api): ${(await axios.get("http://localhost:4010/version")).data.version}`); console.log("####### Running tests #######"); const contractResults = await testContracts(sizes); const cardResults = await testCards(sizes); + const certificateResults = await testCertificates(sizes); console.log("####### Results #######"); console.table(contractResults); console.table(cardResults); + console.table(certificateResults); } main(); -- 2.47.2 From 2a4cfdb2f88ad3ac1ebc925199a440756e9e9d3a Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 31 Mar 2021 17:08:57 +0200 Subject: [PATCH 18/25] Fixed background opacity ref #36 --- src/templates/certficate_background.png | Bin 48130 -> 49717 bytes src/templates/runner_certificate.html | 16 +++++++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/templates/certficate_background.png b/src/templates/certficate_background.png index 78dbf31aeb591f2a0b5f9ebbba78eeaeb3b883ac..1190792c19901670328bb77bb91adc7c757c1c35 100644 GIT binary patch literal 49717 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 literal 48130 zcmZs@cRZEvA3uJMy~)hVitJ=3L`GRv(@Z-^cHdUwJpNaqY$pi$chAR)bw!Yel%VuaOp*0uHP3?Am{8;riAp~!g%c8m6ACUrJ-gKZiz#>MNMzK1 zs*Q2W)`_t0bH^F+p;~9iXfUlQbZ~Cd?zu@tgro6nI*~H8S&hj&^6AQ-Ybh(#DntAn zLS8jMCe98P^1T~(Pc;@U>-b3%TQK*rpl-;CxtFDstYJSs^5x<|tO!N_6CB+|%zuiD zeUbytSt~hIYv^FiR(vT?4RsbLmxtYM)k##*<~=AnhyGzj%+Tq6%R&DPK5jo znYHv}n?^mKeW>~#ve3|YKr`$l>x6KfyjaP2A@zbq=6vxWFPZ`!@Y%_1%RbTmxYGBA zOa8thed_b`C*XERlQOyUTj*e*ORpD48q3Hz#j6Q#pDV-rI7T7L?|lEg{Rx#7BG}HI zJnU9$TV zgyS+9IP1&wVl||OJftqeg7m8%G=OZrN7m-ao$Kd+Pg+)Ec~)&{-TTWJlFe?* zP$ELxe9cFKU-0~Jj3qN&gK8|0ktc>!y#CKzHt(-nQ$fbp6D;5yRD|~@^UBna0_n;l zaHsuBVX7Iwn8k*wug-kA;$rR=gRbWrjUiu~+mB3`^bEXq6i^W)Lat-*IV$JldZU5F zM*i{!qmF%zuBK*(gGFF;pyx}|HijH)b|IOpIR`zcNAi=7gq1(35>*3QgtcDRi4Wb9 zEmigO?+`ma!GYO99E1s9y5Cs`gBRv?im4JSP0IZ!~Lz^2v0}@%a7;PL0_u5pFjjXZLu3{K(Qq z@=S~%2O}PNZ;S0T3DRJqnyL0ojaWmfnqS?jm0yX@WpLXy3~D*+Kx9GXGs|w?rAuc^ zI8eTzj&ZNe_9ts+yU!RJ%QDCVBjzhXbCwkj%vUe zrI(-Rvh2^*-$s|O>!z0^+J|ZJ0xM@cD*L#ajbAj9I^L95Il3q2(qou z5{6DYoZcFI(h@LqWCtmO)FLsG;rA6J-}yhjBSv^6VBo+rV5YOEEEc(U0Vn~(ywomC zb?=K}*7~ESYi+u-=Q_}cm^<3`&-tNM5(BI7)Y=*(n~{(1*_niv#AJvGcs31#9P<7t zL3-S^ZR#TF4`1jtRhG$HXc^VVcA$_H(0x8`YCwPx%E z0@K^DhDs)sJgdMWU0-g=&)DX@W;#E?z2?=?mr<(ZmganJuc)fddnj zkW8Xy+UKIY0>V4>=1Z@ND>`3hCERBs${VM`foh-WL2u=FUC^{X_bKcCD4cv#m^D=; z!6&EY3O?Rd`uvv4Rs`bumXOU3t}`>_=MS`d`MVyrW;y0u38}>L-T+YnnCqN_LhXfy z^T#66R{s)pTSBs?yNa)*D`&W?XKYARwwDMys8TfV@!49sgh6HRp6`n-q@a3N`Tp0C zQ@ZXO5bAa(%QE?i%fO+qtZ-u_#)w&^X8{|SBiDMsXIpB}M8SU^YSvyWk7k7w-2Wms zH|r#jtoI1__o6P8%lm<#CI79<=hD!b8EpLEx0Q($4tarPHCoj&3TEtYnSGmp#JuDp zSm3AkJ*@EB6E)z8iVp@PDnSDKb{-48BuU|H7Mc0t_HiXHv|$^n7ES9u)WD4X?|Z`y z#t{4~t$a2uJ`=XhPft+EGIZp;xc}b0=YtXJHrIt(9W&JQY>JAU`)|E&+RM9X4ih@v zF_!q^kLpIuxSFO78=<1WYjsqRf-Taq=5u!yNV{xNjZd2a?MMG^F;XJ3ZRJUrjFvB4CglD z@QD|4kwD(}rmy(u22$WOrYVE+wcdQ<8cGiHl9?ch+3(O`x~QcY!?9NVw67|tL#Z&m zWAP#BnW7JH&)51QYLp7=sQCH^gkX34ScIJ2L73ipjJ2wnaM;>0WqN=m!e;bxfZW#MGtL?5c7&y*Z(XE9G|4~ch*>Z& zUjX`BvT@4z-=5qA9?ul*Ga8H`+**@1CJ4rpLKYcPfcL43VM%2?cM4015Gx9Qb$6^U zQ|7KjrPRkw(NyVkt9pV)uV>OzK9F?5y`kIyQEqz@2p#*Nn%OoEiP8Mxbd7IIJ|y^{!No^FOlxQ@%Fk*)V@2j zvc~7?1nP1f`(FgeFrM@RyHj{Z<>>Vq2N#J zp#Bv-$Q{n}3b;H%e^S9mqQp^Or;R!AC;2R)@hP z9&F1u>GFMaK(HAxcWB9cXqZIiODxA%=M5y`$*RF#C`W&fGUXKyAmxOgrm$Jgh3Wvb8QcL^uAEna4no~R5UuUz%z0;QSfxl%;zKUDst zdf*}eXV%Jck++v%E;s_+j0qGIPtV!9Vdwhx{4pbfaaI5A5aIhsg58IYg;LAycX#Fg zX$4Oeeo<6a@ZrwoB?#!Uy=b_s2JlwzA|V$QxzL8#Qv*Y1$R%?+HKlV`X1A9lohJAN zvV)~Qa0|B%dK6KN>zCCax}_YbSjB(GL!;5}Wi6RwfJ1xD+8`+rH-R214E$)!bZuyxglNt@nuZ!8)K!9l&cpgk7;K*;lZcBDTSKD@ zqo+*DAgy(nGKz%w^mE_xe8ap{&+t8JYRd-uExs3t$NDi{5;?pN5`(5@FC$40O?UJb zl186$sS%C-^jnFc|5v1JerW#cUrvM7a!PwbXE|%<)X>2YD~)9gIQhp~OJ45E;f5ei zW*}(atqhHpyI2#*@-|`&jbT=EvxnuD14T^8s=)5+{a1J+d#fNPk89ZKGnGbW?CfzY zC>aPnzmK5Od0s$*BE0*~V=1os?;)L!k67WJ^6+rRGu7T7KS?zSZvVOijdp|R&23yv zWpIj~GG1uP$(&QCscu`1fyRQzBrQzTyb3V~b^^D?h=gjLgcm zNR!MdI@H}OcC2bSF_Js(LK&RNeBf z*|ZJh!UbCV{nOuBk;OAoyOEyNj{M4yx~_lUt}dVdda`|X>OFt>`0U^6&9kn^)7`>v zH_!f#UOn5rdA3UrIV1PuEL>L}J-eUd-X3{&DueR>)#VP^Ufm6uckGZ=;c6nZO{D5e z#WTwOj|zjrp4$k@Ciy0>Ol$bhMa1^r9Gz1h^}d@gW?(|!o%mu_sjrj;UQ!g-c*?>Tf=+ajq9NxQ3JKsJc#$5ns9)iT#}U(9#32qazl z*`37(>Ab8{;y|1+@XwQo=M(1fY|%aqWZFHW^}qHJJV&=Q7vHNZn=@tHCpS}#d%b~1 z|MUd?-FYRu4|Y!-vG6zi4yZD$UpIR(kT|<&M@FQzt2P`0Kb{3$*X+6NU$w|oDWc?X z#6dbC=HQ!O8*5&>pTs%!GE}@_$eWL=JhyB@0}fq!)2o4ZiJA(FQFo6Ma>=hyTzq#8 zqkH#!OC63D2izy?x7iHm)VnoIE=dt@Aljadpjow+wTw*NZRiay9upK#t~=3q*fFi;+Bq8+&<;pj@!7Jn>G^PP$-jquB@T zn%XKDBCm2?#-^)K4z(eipeUd9UuoD8KL}ftd(j&EmW~Lrfe>uRpw}I|tx{p(3%g~Y zC`7;PlDt4rt}*{m?d>)9>HDSZ%N2eyndDOqKSeR<(5wDScj3swFi4XTvo8Z=|2%xA zkAZf6l%x9j8#k6K4qa1)?O8bpNaslBG|Hj;%>x`8rG7+bF2SgE=)T8N_*nUp3bsU z9tg@L=5VBs(ScJfrgF~6s;W$Ho?j8sQhE;?GfTf;I;tz8olFvy?o z0?bRIAqYS?6Sj}pAO+!zhj+OU>-Uq>Wn`Nw@7IclF<2}vpwWo9op_4(DlW*ElP{*WIZr@o)0CQwb>u;=pA-Arp5xUggXqnP>H#!6ILlLu%ox$T%_jIGXy7^m@6yUP;4%TA6;LI16T~*_Wq>QkKGzrNjtrIf zC?SZts*@%>e34w;Ck4+4W%2@IxQ=`_fNspuhTk^23`3|*k`Xq@w0e9>OXvMk$*Hmo z^5ik(5-gAbfsZvHZnoU(BybEq^0Yk08beIS*tkCCE2GuB(-`QY&!*e8N2OX3-FCht8f+?L#!cWXdgI`;mL zro)13SV&AExsCjYmMj%kQo<#@79)H{d*m>D^zejDHfPeXSMa?wuUZUyuKq?HnvMun z+d6eMtsgmvzVxr=)+8Hn#*$P^EL?7H1YPJS(#^-0>svLNpkR+H`5qwisUh>>S_vBc zygzUa)B3BL?kQi|TOi>Q%AN50huA-$GO})^P0~pg5;%J4C&LOMQRg*T_yw0X_msi9 zaVnUl%KwMHv&9cf7kpiASm)59jd-$PyDyNkNOhXvN{+ddTSXBB%#3>#0mCt&UI`$v zt#xSBLZGFrFA($iWe~Vigiwm)J7&KYo!58_CC1x*&-hL|NNP;;4cv!-u|pQ+Y`(0a zAiqvd%YPkd)M=YsDz=x&d?K{=@A3ER*c%us$abl)=nd7(HDTa{vLgI0#^bdWi3YrF zWIOcnD`!bU!8TWPeiv`|X|W?ww49;1PdeVas~Za~a9s&57e=IXn<9=%nmLqnor zpW@~raV}{9dbq6fo31;IrZlG|A=G4^)Ala*7v}p0y>(o9H0qOYRhn`yULfr~0g8u= zGwsUkEeLJfi$rbMJY2+gh!vJW)+b#;OC|LumD#i|l+2KPM+X0y1HEv@2Hz|pt<-Bx z)*s|EzZ{zD%=3M?*rnc7zFm7agJ`c~URldsRvlAIN7T=( ziFr$U&e4n|K8mQ@wE)&-$pxSynwepj_wq6)kIMz+%Ep zAX)B%t}Kni$K}y#6}$W;dfnV9krXXSB`(GO+_IiP=cyA>ycFYmtDl25W{GzgNP6@b zNMtTdie_Ba>Bw;1QhIL90-JG|HOrSlZ}LU0jJYSZ81#(BV?WyGyDPR_Lu*ZhM` z?93bB1gjQVqYg?NtI?to>W-O?dE(pU%dM_FX_tSnaQ*3wd{mCFl)Oz&;t|Ka z9b}sci{UVs!^DgvGHYGa*zFl-iVWb?8c!Z^XC$DPt0d|^(GfjMLM|B`GBYt0h^srh zoK2L}sXw;*4#Vf0zC6t&^6(%%Q&I>w=;Ig`QpV1ll?cn#R9ISDx>wM|_O!MZ)t3>P9B+fY zbab!JSZ;Wob1$N34MtUSFVj(>2ERHbw>@|FO~T4Fu}|jeb#j?8UeNKDlt%G36YVIp zla-n*|3f{xtP|Q5d)yfrBV<{Tm_|53SP*%~R+E(x(I1U}heFg;vJFFy#1#F^{%#5mLXvdape#%8PF1?ZM*4L=BMli=Lf#yJiDWjHrUwN6upCgpwnw%wi zvYa+4Mh&sX;~{k83#7L^)+5NL4mK;ID?f4}nG$%80Kh#$jF?-!R!%J^Li%}0cDP7-ns_Ok zlq7kjvD=XL{!<#4ZInJqDspl6#g5VL-^e>@FIl0BVX~ZQv0pJ;qzo;wIj|C_Xo8)| z+#k*eugH3c52uz9b{)Y_F)^bUq3^b~jpO*TN~?t~w@^{r9ytO=|4Ej1oF=6?e{@wh zs5x&(@KOeMBnJQ@j-V zlQJn86;NWs@r424#GW5mF}QWx!zfvUrn)vc)X?9DHfSr^-a+Pfzthuv`Ek!9u|6S7g)z1PKcKA>jn2d#Y4Xxoa6$ z|HlO=!e<*2jgesQBO5#1{>zy6E=}Ld119XghH*xQ1Ypt(0yH&%*ADQK%DqN^zHKxa zR>BYs7u0q6iJOhxK7KkjS6Htn(p|+7x^6KF&RhIpS9GU9gUICr*nn$eL*kjhUP`@3 zX;R5r#|NeaRx^9{AXg0#by{m$DEjrFff-{aqoI$4T=q>1no6a0(%@YfU#>zZ#jf)9 z!^6h|f?QN;FLjKV0mOX?+Flg0;xA}OD%(zJ25WeY)(zAbJ^>vj$OVa2P~tRQV*H=u z`061t3qDkqtikptSy<-Gy|k~C)uoo6`1n9}o-ooSFqh9#OmR-YYdCNLd#19e)bNx@ z;Kz2I@h>UK3#F%E#y#RJ*WAL8aofj>MTe{9CCp1%{S3e zdn)b}yQ3>py_W#Uc2L(w?vuCLvgL8jNDO4#_1D4)yWpf_4%aS8RjRQ_rT@jE(V%ly zp&M;{wIcsK%Lc?ArmfxpF z*9}#>)UTB2{w?hO7eDwS@iGKlnnl8^EW{EQ`+ z`=nqVC+ts1h#wzWHmP~T8pf7Q#RXX*ou;s|_7}aNT$ddU$q&dN+WcfO8cM#8?eqf4 z%k{WOG3EZ)&;1|Lqq|yj8w@$1!Wq8+#zkP+prmSv32%v~^iXAIiv#f^qXT0Y%o>Ih z%oWF#Z2uK%@H!rJB7;So51?<)t^7E5yxXy&EX~11D$V#L&1pSts@q^^@ z#(I{)%JnMpK3m`mfQmNc7?6PPV7>*z+DC<0uexGqp2a!+Erf zMEq?t9Y>#STx&tS)fekFs#0m+X#4B-4ipP+Yd=OsZ?rbtP5bIOx7+W_MHKASRomgU ztK4N2Aj$8TZBeEJ5>31JP+_Vg0$E?33;hGYndD}{S{;@p_@Pse|^7mlZsuTdfNSXQ}OOq!-0lRB7f%_x8>ynUK?wM34Z8u@F{51u-1 zm4^AT8@bcKUF$({1DvGyl+r{-R^5F&^CrJb$I}v*xSX!WEzImE_If|jDc4oIUIdR2 zk=8shQR^6NG&J5xO1ouWkgXQY$v0<_>TX`ATPhGWde0?@x}L-b0C^R5v|2_VrII-G zejLCoGKa?^Cq|xLKjcceE%VsP|~L+jrClga3jUfIUu^? z72E_HwOjnUyQ@tdM(5H|0pE-XJ`WaUvj#ZEb2M^u84S=RA2?-@8Q9+&;V>vi7JqR_ zaYig^8U;uXiD*}$N4`$FD3Obs7NnP2MH(k6Esi`~JRD1(So^AL24VkjT-SJ^{|))c z&8Ln9tDiJ9;sQY1AI(hCb3GS=EdOgPm;2`VA%MOk?EPe2JSRHW$81rZZfmrNt5W~u z?ZaQYJlLlVZN2T`-@A=4V87f@5_~UaS9?EO=Oy!D!88H2$2<5XRsns-$`;Z zJNwuzs1iqeOP%5K-h5>(?9vYOrw7e%kE@W9`0z}}s|iEI>u9v(wG^=WW2%vB4ONg= zFQCnO6MKRN6JwKFT5zP(nxB#$ZQM&x%&mGh6ojh#b4u0MB=NM(M)NkCj2*0tB=DOB z)`dx=VCAq6dNr8pBbXe?bvJVotOtN{kB7- z^4x~Y1G1&O5-72J)KpF18zIESEv8!w%L-WW)Qaz#76iL@qp0&1O@AL{VkpE(U9M`HaO^xQuc+messJ?+2&#<2b73`)R<4teEun z6JQ!W#;Bi8E>ZBZ6F03f^zOcTAG2)9h&h?sY#hzo&L752ApB^5=i+C&%)O-KMY}}J zOmk5<;cfIRr2#-D=U*t@nP3*nV0CFFpG4nNPOC7_gS4|P9wKRl1Q;L%9BLhs{#L%f8WIuxy(N^EG)VJ{;*?59 z(i#}Iy-at(*ScOue$3yzt|fDLjpfjr97`WgMk7pvxKZ6>WCl=U&SCWpl~@H^UQ-`B zuw0WAlJ7$Og4jAQgQx|w5xM@xb4GrXBUE5rZ?)s9+tW%e+d@)s@@Y}}X0^7tNC5RN z3~*&T=ET3>5j_#^x|60EVk;t@q3hk^7I+_qLl!cD?l<=PNW7Q57^(Tk)m^a}t8 zCBT5JSmx7212nlK-eX;%p4#+LIal}d>pl+OAjcnfa$RZL3LLIX%sN%Nl^}#EF>$`WG`2ll z{bF?W6Q^nv?;0aBy%C{9J-7}^K+oC;fY&I6s89=-!7NK>9t&pRwr>SQ{-Fty8S_4N z`W3#|bt}=YAZ3bBroX>wFhLD@nu{;e-AIOM8F@tDBR+FK`|;#+?8Rl#Hs2l3g4Ko( z8$%54G{26H>q!j1hx|Mu*DwYM+q$NMX5sivJ*IM3C3oM4)pJ?Ij6}h#CU2aq?=fnP zBQ}3$4IT|Tad{fNG5$u=Z4H7JNC*K|wh)syrhCJ(sW|1`@Utbv>h52r&!Z0B^|R(M z<~~xJo6KH6=^kE9_@bVEEDRb_iCLSDo*($QodJA$;)-I@${+S&)i`q5#pqEN)uQ%y zzLoYbB?ygggV4GO%t>+EfzvTjzqBzaJNlOJ8cvkG{w|+=$1w4Zt&|JW^||eKXATC3 zCewq?n%66z8cv0hEde^j?Q6?-DF^9@-XCG#`#yXm#K(9^@hjLhS3iCEl;(kyc^O=@ z=!m8vk3;?&Nv+qiQ={$`dP{Y8{DH=mD0syI?Be3#LUc~iKKJLGgfcgNqlz`nAkDV%>JCg?i2?t$cLQml|rwsFu+~6AOH3NwnJQbtOgzJ$M0^B9lF$?G z@I?h&*@|BSLV_;b7h(-v7+u{pK3FOdZVmYSdc0joTz0Y{HaNV~t=f`B#d=P;dJ3{I z^ZJ#b4B!-rkP*R9-yojC;A7I*LtsPF*hvyf02Hevc3ZXN8&y$rP%wdfp!$DT=J)u>d2lyR)E3S!cd#-esYU9?0Oaw ztrQ4%*s96qEeDh<;8LU|-OiqS=$}#U3TS!FC!P&GjrLB4QY?CDLpkEOTWjWW>QnsUsCWCj)5uhxdr_*$P7PI|<{MWA`NWA~c7)MW zj(fZhHBxaqJ;ZW@+AD}n(lWLBI5}&AJ&~Qz0(&_5qcjz10A`PJo>Kn-v&-!2D z9!qi11rir^XgckZ1_n)c=8diz_uOM3(a3eMA7UgxS*%J|`H7mTAw1WT7qHZ_OmEz* z*%&z2s>UAPQ^{DZLZc6lQ7)gozZ`nsv4(wqfH@{e5#N$?H#m@?L>%;fju5;pM>_T;5WutTK?RxiVNV zd+`d;?_=cII}&Aiq4EBiE_7BO)GY2TuGUR6Nh}D&6RJ%oX}gb=pRT^!iZnZNSr}Q} z<;)@0I{0y+x4_cdn07qt&An>4MajsnKyD@G)p01RMA7vLD##b&e&@Y2n*}o%E-dK{ z=%fwt50;j~T zqpB;qBX&c>FIH&!nvhPKW7=grfZ4Qm{agE+j;{kU;dRkHNSi}DKmw?~#8VvF7S+aLIT&vJ3~|AKM#V=oB^=%fL4 zOWwZNJWGL?`)r|@flYTrBcBZs6FJnO*?bf*p#wAq<@@8s!{(mywc~2n%*#5y@3y$B z$b^kXENs4h@4o$^^{n=N={M}s4aikruABY7%84uHAv;K3AMVzzB4qjQEs1UM#|e_| z>#XgVGDsfWP&!t5XyKi9BkA2PZG1>Uo8f_au5UC8cY1k+dz&eADSF_AaIw$r{fq5v zOg(o2ANyw5=^x5riRmlWZGKwXzljWL?Ce%syyS96pw#nhj6B+^rGGoOj(zw}c5i|K z5?l7)aKATVsLA)D*R(#obCR83SX+1qSV=Tb6c`r1heVX_9(^Tqg8$$(3i^gvZru}x zv)lQ9C=YV1SZ^oBl@n{Wtd2_Z$~yoqJwyMS-?o14Zc_)%cs^&iGKAhDGiRW_fa4n) z&D=dX+S_LgnX&w&@fwy<+~KZYu$rhms?ac|H{b zKr=bs&O2gSfcL!zgKC)Jd!g^pY?F-V}rJ%+4cAzt5sPwWdaShpX5cWBFyzKc} z?17Za*3e|8LnVcR&BM8Tx$W-_B)=FNYhu zT5l96bs1Hlb=T$iQtYk$m$F<`JzO?~AvB?%-QypTU^}<-KDb>HCw(SpGe?Krr|G}> z@{FZB%Oo12Ne(G}{zV_)CHl5CO1|n0%0!CKJ5Fw({7~TqW9>QVqW6?OHJTZ3C4N!t zd~~|{=m2isZA*-2>;?g%;Tw|c>v3lly=+@bCK1E<&NcIVDPQ+vt$*9#kj8CFP0 zqkvG*Y8YaCp+4fRRM(X@D=K)Cr@WJ^XJS1|^N3W^$G=1d{EPztT1lsA#Q{d$%)Zqtj4b3nX~aHHH*ok?Bd#KrDcdAL+eeMx|ev_&WRZcJpnfdgO5A~H<;9B(@ZsvPA;(=$mlc#i*Wb?f=%~qYT+;W-rpN41l8+v-}DPq=zvp*sL zvU$m7;|tPW1R|2*IKz@#1Uo>2i&(^UmFqxDyuNuye+T$JJx|gGD!ND8hs0{Qh6zq| zil(eE^cQMWWh0hm(KJQ9+uO&DK|Bu^6_DhyWssLI{>*#rwsw&1sDi{36kHzLvra;) z&MRZ>ga($Lj&DdP+9&$i*b(Y4TBllMi_EKlo97j7-_Bn2I0U)sN3yePu9tUhy6?@x zQOjg}Kn1hfzn}XdScDm@kN2G~fCT}0TXb|r+QqROeGy3H!qqA18v(CufE^Kan}Kc0 zG_%zgc-)s8vqjF8mv-M;)e=t%3tx1y1vDYgE2$EoBp;Mc^#m6GFkBHq#T#2hv)q7Y zJzG2I|Do|x+(BuuUeJc8Lmoe!%iKsp7)w<68AwFI$ttOUT(Ws7ym%w$o`QBK12keW zXeOnpgY{Z8y6+9KHn6vBkC<=jkxNJA!(>nCdPE`Zu9h4t$EVaEAM)O?psIOAO|>8N zTdp(_TS&k$EprG1*XY81fawDO~4}0Jj0+4R(ZaWZ0ZbmaErsBnvgAYcm>8R z&&q%3<(8Yd<{m_>V9;)L)MqNWOM^nAzxNH4G)x$GFZTaBR7~Lky(Hruq5oIRK)j(= z8omdWy?G`0Woc_SKLeFlXOh19fV9l?)m3Txd&9o*ciU9hN&Rj=pv;sA7bKQYz$C=~f3ediX{mX~L5RURYp*>$ zqujdlXWO#(h2W}7(hPRRbpwpugQVx7W9h^Xd+QahJ%+rMHMmLqhsbvP)qTvL&P6bG ze)^sEjA;)aKVCi3cQeSBD=V1RD#Mw!FYhyBcf;3ad?d!E_X6K+7WY3onV$6+FyFmG zMv`t@vo8K?`JcYLAxmp#|1jiZLW#NBgRu`uXoNU%Hsn|0&5aNa`rqFma^)6uHBZT7 zkXS$%CJ=>g*k3KK=tv%TH{r{dt3N`pIWXhx^Q{yd1EUrZoirfo1;`)NNg1DKbib;5 z#>~LpbDW!_-^x;jF=Ptc>KW@qT*7P=J$oqUe%_&yXMBUcB#Xwm8a8nL(ycdFa#bx{ zjBa=^7r2241H3Spgyz^0biE7zv8vJkk&sXL1#Z&T&Fm~cULVp~{NsZVx>#23nk15G{g+PI$e0i=f+GKqXpUt$P)mkO$!5P_}hJV7*tHlSU?`q)-a=#EOXuA6o}I59PpaR)NS2p zHkt1zVMqag+uU-Y#Uj%=68pTl zSjRag04hyA&7n$t@S;bb-XaTdcc5;rF%5u2%M$K)b?$)iAbgQ{r(|hXx(c91ofWqr zC|(K=(i`>;vgRx^!)(*x!{)@GB^poelhY@P#-%dO)NhkX?pJ|Ko6Jqj$yzfQoZ*>Q zXrcgk^4&fK0!k{yGf6Kcd|=F#fvv<#$DI}B|AugG$Q?RE1`;;NCE7}RD%JYU#92Kf zW`!}!>RIjN^4lA4e=BJxYCzu)nKmv#hvV+BSJ6{Xf1b6d?`Y6DiJx2AUQv{n`!V3i z_NDNNVhS51VszKaf_JP*GIWSEcX6XJ;z^F}{^!H+?K>iBuC}x$zI1iSZn@91-5Y?O zscmFBYcp{1TAh+{toxf-8@ip+)7PWvBF0xzR`?v34Jfh@WQ8D^Vt6-pASpH*ic_gow3FYo&oWBb_*ci8} zbB&QpTnSDtpXkMh=S|bJsSRDK23_Wl;|N-rY7-tP7Y%&eAw)wqrxkJLSC9U+tF7}~ zR}WuC2`aw3*3Op?f1%1nI%wEFK&M=yCS&^K#-QNZ*oxvQQIOjwtGXXMJ}mvd$=@~1 z^19_rn=`9CM+$7qt$w(OsKH=|ikChzraErcDM_m{1lK%opo!*nkr7`~IZ~+FcB5QU zA%?BaM>CB%1P5;|A4#OxPqfYTrVvZ$%YVbmpJvAG+1Dtk%7d9qp;pbqPY+e^Cs@Dp z9%mlRqtcasgx<1z6%aK|+Evq$^62^#D}z6UEcX>Wj!~e4Ao1@yREjNSNadq}-`1?h zbfU_qFgQM61zal z5RLO~L7mWwd;-PG_uan$>gv)m;V(Kes3arC^<0q4{+H8Wf@pTa&uw;zS@-#hlk#!^ zCfSNz9f@sT!1Zob@G$^o^6V(hb$Zv-lI=Wtv~HWx$R>3QErYS?U%-}qL2~sPLrNam zDWFm*qL#RRel%Z9CmskSpVsqu*Q!6U#{mT0LHDZFDS5rr6@`TLnj)yMS6{xRV7nte?Twzql$z?<9_)FVp=bdsrwY${VN!VTOe+} zHvyPh8jQNC?O&^+U+dfdj|*_tvqBww<95(Y(C3z`E8A<0d_RM-kEQ$`L7OVpFFcOn zzBJKF7t(-0-Zi|))w3ZwC;0F#P!18DN2StNkfmzTqK-|AT1zbqOu?#O_7>ZQgzxz2 zfnr9WRE(G6hU!mB2?eKvo$)x{6m0qv-5vl;~vUs1=uJ47x)r zq-{xaTj3DL-14Sii3`&w4xvMXroCCKf2C9G=Y}paS~kppGBNf`kV&pEsrg&|8b3Ou zy%V5HdDU=`XL<8jK?p>c;?Z)9hCH@<%;Wv6S9pU6H*apPNsh+7m4@Dwr}l}`{7N8n zQvgysag%q3*9T_8_?sq**EIYQ=m8g8!~5pXR^AqtDHXi;KkHao(ciZe48nn%96!Nk zFKJW^w?qCvycfj%45bl+DXVBstiue==4hM8661}%zq|R3vj;>2*1!Y-S(350bt^oj zykK9DB1-IyPLfNt@+ezKL6?Tf&z|mmifeb4v#Tb`9b&k7%tWn-bIb@=-Pi~w*tcUN zr7Trj?#m?uvI$7iGH@Z49n(8@#9tXqt?+;+|$SNPSiSJ3b<*l<{)lUu-(7?qSqG5uMMZG0VEL6XAV?~4@rXgnn!i- zw{E#n|0`2(zIj_;x;%TaD^YDP+8(bm+Hj* z?P_y|9&JF2mpArZo%difqIVQFT5-EufZcBgQ{J1GaC36aC60xf#eWUA3E3+2-W^mfFkdI@kOK7l?;`x1svPvXbpaihc`=wr^^Nl z*XYo@t_Z5h4c1}KGUpI(>2j&~#Jlc!BKgqlc#jP>2(=kFX=eBSWM0$Y$Murcm78eu z$BuHdktmn88K>lfZ-RPnRu)3QaO%?VHiZH3qIhuIikqZI5am4Qp4vTkMiQ{7_7&Pp z?6Ydu$RY(7wUsuR3Az&b+U~;bhiYxBOm!}rtS4Dpq|dCu@VsZs5A_O-R-LvXY2h2H zJrh=fj_HM#vZo6%MOitR1c&h0RW&7{Qt zq3OE=q5l8JUuPw<%HBdlW?9*pX`r|>4-v`CxNNSJJxXsQLPo|NXLZI|S5_GjuCpoG ziQ*99_q;ye-@kXS*Yo*!KAw-gUW+`y2BMhE{fWD(01~_NejrlS@2HPSlSyuQTpA@4 zU%;Jmpc#L9O+DDw)o%4v$t5_$pb8cf>dd8rXJI8T;BOW- zPd#UNn6^!k+6uqw^--8kMPcB}>;)(D=d+Y18=Gffmp%Zzr z5uj%>;0IO!_ z;DG?f>I26QSzSf59}GIj;%-_3R*MoH-3l0in|Dnd1>8=RSe5Q2Xp9(ExLXQm5h*&va6Iv2S-Q zU`s?9H57doE|vCbO(Ec&(=ierNe>5F@N?EA=WU8#OHx6pcX00QwVDX!yn+4J;MHj> zl1KPyx9s!QAF*v$4*X>-!djhkp>qOHg}Qwi>y095bw28lSQ)S*@ulZmSRXrHDyE#; z3%^|<1}f&=oZ}w)^x#OChxp@mZ3Qm(KZR+@ecd(*nli`k)s+);F8O8HpZA~zkqW-7 zWIo&rf}Y+=HONJmVcbEC2I%d;ps8mhdLvA#N%n1SKAa2u>^tHJ2DG?Hh34w*EL4g~ zapkUF>hq-e;S3b>{ZI~bP|^^B#b74KpP`ulln;P4Zj%XaZ^wVE9HvTq{K%$9`vH?| zUHa#5_;tu)tacQcG;bF<0ROW~pa^jX?1C8+qgtY@tWB_I921(hUX@Q7Oc#=z z|Fb4>47K7J0Eup0)a}4RZaHU;4kuSf*y!< zP0B!Fa82Emt5GLoYWk@lAgKuzGIJsagX^i7DenzGZ;4X(&o;Uoe@l{`WGtjpOlE-THF{9 zEFQU*y90XIihs9qH7*H;oOt{yAyV0e#^EyCOF?syUH>taVKG;@?Z+C=rk5=-!U@FHr4UAVe)L?u`tOCL}RuUwp*h z&rIS`Hac_cug5?h$v9QoMDu~JHOU_uh^{;@(Dy`*=h2}gwD_RysN_B>gM0{E`#WQ` zq4`M@*rmEZeng^MRbXt|8OOt58yy#6HFsw=z5DPO0okM0w2Osa^i%btk?VhU%{osT z7NaUKj23wcuVz$C5TFx_^yt);m3x_9xUl3i@)5CfL63@WyjBbfFPKvKRCX7BbSD&M z^!7MAYQ{+}RLef_h%Dw#nG|q*&GZ05*YcLL{^zDg;oD~Zau0GXxZzlP9$VKankBIf z$5;M$`NQA{hOioCK;y_*k#^&P3$T=46Zq`(sNRBnXviDFd%aT{k;!un`kTkovTLqp zto5z%pUe(1d|%e8cEx>2I1X z{bs&GordDAj(_eT;UW1FPAcg?Hf%;d{iIbSb*#p{?S+V8-NOU6wVm<>2&xCZIwS+O z{uXBqzo@_RWs0sAQ*2C8R02#gbR2zEM!U-$Ytzd=9bkjq{ z+##7(ymJV-y9n9+}7 z+}Sg&QL&>>)r!VGHeLI2@a#%`YN2L#D%`90Qh-ny^toe1YHL7)je;jX@%IdmoKtPR zVxFsf7o_miGm@TxfSHhEnI(p``M|Ubh>mN*At}Wg^QWTCcQhqF-KemsK;*2i#MWTX zN0dHCG4S%~IH&#)<)}$~hcU4ADvdr|=7hY*9MbGK4L-Y``VxMN^O9o43*BrF{^xJ> z%&|qv!9wp&qUSz!dL1b=JHWyQ_&FJ{+^Ulo@Yw$o5o(|gk{%6)bAZ0yBUc2^NUle{ zG&0ME6zI=&9ZD9s{tVC$arQw}+MNOxl1jtO1w0EdKCZ+SxPf_al4un-Z+ccI^Vc6v z_A;R=oD(e2ZjSEoDSvm;WvkN{CF>^{HKhB>`A@Ip3(L3ibeyd_c%6Up-3$v_;MVDl zSaBDwBq$m#JVyWxurg@2DwW@Fy#a0XXM54;PgO>GS{qz!XmcWh zEfng~&%LrRFgYo}2f8#sl9#u;dT6Ev47n>f7XnlU8d&mdiQwdF_YejG@2Xq0h9k=1 zLh=mQthn@Z&i8NO-`Sr3j#;yR2I6INsu3Jx2$!}PJ+JULX6J+LN_|;Y%4vF`59fi>uY zN*e6sGyL%0%E@h8hq5Z+&m&UlP@>38t>NQ21ciyJNv5xfosF~olgIf=ijKX@*RJrR zu&l+TF}paD2Le}X_uATHbf-BTNJTwl0z0rkoQ@M4WXABW8kyFlRUd$`5B!3V&QAh* zT%A`qYmdxREq1{I^{wKIC1^FJq~UCWEsGI%@HUkD)~MuPNo~b>)o@a*ycOxf+ZM<` z6++uB+}GGSL9BI)eB-H?evV_*I~M8^}%8%y>*8&5ABI8!h2VB%5S` zn>*rEg-O{Sn~bi~$+5dvQ@_k-KjEMWDk02KPP7%3dw%!b;bW9X1)J?w_Ib;e*WCL* z%A7z@jsrA3%A#MzM6&ezb>=E$Fu|3=>dN^`BzG(m z!PqbU*ojAaA`HZGDV8{oF-|t35PDro<*v1aZ6zj@y@xO`B2`7_*w;|z-T`jRdCBKS zA7*G!`m49-MOt|fXpI9NX3-`BG!$Z@IzeI7oA1@HYz&kq7lOT;1Y;GQT;VDC$FR3+ z+u};o{G03A2tKl#$= zhzW}~UG5221WCXT0blK6JDmg~J7#Xtu6l^1h5m-M^*23a(Xu@h5bJwy%hkG7yBvlu zOdsa4gIAcnZKq9c7+9h0==);~v87Vbeq;@AIYtS%dWG=&($R{%uVseo zHK|(Y&!Uvg@r$);KtXEX0o(C^I~()`bFy(DATG)xsWcy`<%`%87Tu5PkIp8)!`SHc zmCJ&B-qq(o;TsnHr(qHZMh0HSyT=}<+ZzLIFCM@u2I(KE)7~m9GFC24Qv5FzW=?x< z1~P}*d%Tn|mI*HZ=~%U%BjSpPSqE!;&;p1!Ap=YT8XfVA3-;LPBkvkX=*-HMUK|^! zA*E>-3cs1Os&Hig0!Yu5Cv`l7xBK};`STU-S>AkJ!NG!(rRg8RXgy-O4nxD5WevzoORd&1%7AluDg&{aTy#S3kOhB-8!$sL%13=P}8>> zTv5|mO^AA@C4>ExUpgag?fdb7^KH^Q41fL_{oA*WZEF058UyQ_8j(?FE|}ZeC$rcO zboYM2uH@Q0CAkAzY4|Ou{|k%KZwR;h+=mM^BhClES~bT; zZ)e>|l7#BY3LF45;$Wf^cSCjj8S#NlfWsYV`cA_exuc5#IiRxZ?s~)0C%bDdK|67C zqwO0#HKp&)!{35fYA%D7KxetsO_SWkUX1}cShK+;hp=*=*l_Ru>!jHDGPr%p>W6co z8tIZydxtVS0Av6TbtjnJ?gK+szwUdmJ+)^0jGNFkq{q~^Q7t|LAg#_6BS@OU1L^Sg zcJRgsNZmTp1(3bVEc{|5IYhmcWFcw&&0W(6J5l$%X8FB}5zDw^YvweLPG+z&Jj2F2 zfPB#0ye&^0KbH=%uYK73YdnH)?G9Mi`0wJexH5SDm$a=3yG|WckXDsRn#rB2@qs~m z-Z9oEOHehRhdDWfEf6#d(~_U{yRJm^+X5@6Xwtu3?xQ1k@YyvecXv5$N%0mr1dK0f ziJm8XNq?grx%wdPf0Bt1b;YD2EBVc?rnp+15>}|14%AY1#59FMJ7ARJV3;b47tUBW z!y5wDM20N_sk8Z-=5{m+Gs1KUI~867?%>NSM%|Gd-iwZfIK1)$mN6icwvI))q;%KN zIjX9fq}c#~r=EGMD40p!b}Yf6UycFp5`zkLW`kLP?LaMOFBKHj;;98e2!Tfjb1> zyZ5uY^Eg7r$6y@~U32KA+)p_1I2M))-RpkIpp}6nO98qg>C(_}Urr(82pih9IGQZRo6XAH0_Fo*#(M#TPW3 zi~kmwYC@7h*F|{dF5a*2v5|Aj`Zj{`BW{k>^f>gDy=Qvwt|EqlOBzD*4m&A7Ce1Zl zH$O*tucB^oI$(1>WRN3+qo7%QyS===1fdj}9Dq2W#9xMw>R5Swd{67$JjbGf0PWG^-P#*S5aae>uwC6NfCNOq9sv5VydKO`v26 zt2tR>*3#i+UD|l}4+Bz$(BA+gXQwUMKveh%i93r_oFD%99v$Si7*S8D`Lm-{*3^g~ z<$S^UR|FCQ;=(WESJKU~1^yS}=;2lIda&`}H3C}r8krtShOg9#`k4;BT*;xkW~>e3 zYF;fEnJhg9oFr1E&@Xd4(b{Y?R$?&3vT z01yky^*ssq9T2>zH@j0^O zkOq)aKPIkgH_Adf9y?7HGuWSX$y{_j%4}InK%JGxuJ6j1$qtEOGJ1q}~C2=uQ^ z4Qk^zqv&?+7?H2_DaYp9loqD~(-(tl=ESt$Hjj*I)2f7@yl2@n(&e(AlE zEqzCvNd^DKO8(y=kJ+cLgV>4 znCvyoNo<;9wk=5rK5aSs)H)E6J#l1-Tdk6KJCQ@=)D5k@Y1H64_S?5G&jxQ_xqld3 zRpqYsh7q&TH>r-zh+iC5)3!o0@;bAI_T`nB{tX!u3rL)@7V_iVimNzXMFJzYN^l8~ zaF*9Sy!AokHv(&dZqwB9MA^YpQ@0byzn4ca_6gYE8rq0aTc+r5uU<1b^w-q#kF7;Q zzSWH%FkU)>p*(2JdKuh_&e2oAxI{3YDX$-28}epXtIQHyvYo^M6*>Zm8Pn=)b+BiP(9dqIskG+vswP&SL2joCpSKicmlM6gR8>{Ij zvu$P|>Z-)xm}qRVUd9AXU+gLpTJ#cWGXLJ24$r29Ah*M0L$S$oU>H$7IL&yL?L8$B z(1z-my-w)xYcW-QtSR^WVY6K7!u#qVTxKJE$x3e=B0Mt z7u#Vg6#yv*gPXz9qT%5@)@d>#DxGEUoSlvDL2xWi{Ra~)=)!o__@r+3aLHz+9S^iy zIv4Rq>psa^GIZeS|E~q;-_&T?iNvyIH-`qhr&(FK3=05hsjM%6fCs`CC47+(gxyPo z?E;J}%23aNS!L~Bqp?r82yRVQv27!r3II}*+d8<`g%r~AbJ$w4bbPaAl?JjcV8-?r zV61TxLRBHWvB+ftI#&&4Su5=!z}}*PzjonQUh?#5vRTbY1x}J69Ex=yV zK(gNs`eZnCy%*JYQXLXizV#GdU9ys|;97Z(X?uiLYp3vi^XA~2VXL~ZNzM`k9GN%r zgWkrbl0j#qfREOVfH|AoyYVg#Kt4L`$9+)O-m_kb<&_vXN7utU`CRNV`RZXe ze$}ReGZ}J(SPAV*qz?)y$4Ekq6F37zQ{q8w&5FM}7xWhV`KFd2Fe5I?`VqZY+QuQP1V$*zB7D*NEYMZkwuq_8$rItGEzQy+oif=A9n39GY;>=#37)xNF}S;PQ-Z6p^3(b~H=XZ3QW4*n-xApI#O8Y;5 z<`9Q6h2Bd+yZ6M~0%3!I^=ur}423S~nRQCj^C1!n&LPPVB>p>`?zO2KzoyOr)C4)E zKR$tl*c-*fp*Ub-VNAmlp%d-DFqsw4+TG^~Xkq{o&rD3Zd5creduOk~g{uU?(#;6D zCRC}NqV+jXllf`T>>`jd@b1M2?xY96bgR>4#cC5|MMd8LzIm&Bm(CF!tVejjScWXG zLIO|*cFWs}#lR20)^!7v>v0hobxK%8N)XoXz`99QYHR`dkK|p?#6+i7t4z&2a8El0 zR{a8~0}MbsT~+tb7SUmxYRL!Z2LcH1&I|0)(09=!Lm*F}6H}EOL`4jUYQ~&2sfgzW zIB6Mdm#Q~>I45{t^hE1AjVQ{8y-0jSUZr{9&h}$g>`k5mKV(d|GKkML$6%g@qa476TjtqICNmc8c;bLhdHeV+I3TYG-++JsDH;#ULqIoL(V(+bMd$P45qpTXf`hAbwgn@w(y#_*bkpSf5z|r839<( z5s$AL51J!Drp@=?tD_zMG!s`sW;eU1Yusz?E3ez~c+jjell&<`g5nTS^Yarp0h_uq z5yu16=3rKmp89Qpr=GXQTOChz*vAw1{u@HU(53~)u}S`9deyhL4%$VC8LhrZ;wgqH z`@$08`R9nxAn}<;v4;_9Zq`^zevLTGLI1@^M}mZ>TSc%7kk7x1GYp z>gou3X7s|bvgOL!e;pce&Zp_%uZ2VcX?fLX{&9gNdy5}b&d%PULv#J&cS7xW)y?Zw{$m1-BFb+UGlGEoy zNS0Z10T;$evHo-^O$D#>ZL*TadqdHez*jpY6-%TaM&uAdPP-IA&hkTb%V>nf}I6 zKBkugE-e4&Ej8E+E=R*r{8?hSd)k*(3Qnz_enF4)hyto*r1rl&0Av>G@4u-#q<*vM zDlY6BStT_hpF^3V95q2vFgcw0vYHwOh$DN<;h%%iAQoF6e1IJ@J3U){#dzb#2xh87u@-bA@8y^UH@7`3GjHrEd^v--_XQ=i(=1j*Q%GIZ zR4L&3cYUC5WQ1RAH*Zh9$F>d}lh>;~flamG>}>oy8k9wEK@2)crk`{!#AewvbjjMT z0-Cw1==pgZJpBSjhUCR-S+KWTuA?V~1vheEGbOsm|M^sh1B&>EIaXQ5q@qSC`hm+_ z#|7wDHp(ik$kqR624?4C&TUC;wI-duu$L*#LIg)Ypprd3tx2690gRMSz;?)_xJQV82bkm&dCDXIVSqm}^8lDm~O;U*b zJe+Mh;rHpj1#u~C8FTFsa3ZE`5lLK`Y?9#s_Mk?aipP6n4bIi0`MD8tf36L=;%#zl z<(Ohm0OzjY+_Zr6HPRzgqDbF*LczxUvoxZJ)+eN)q1=yDIxxqPSCN6CT_^fNF|@0% zPgU04=SE4Uge_ywMjYU9)rYbi7LT|Yu_r;P2ELLD7LUqyYZ}})7&90XcQL)WL14R4XT5U=WJPLPIdGY`Me z=C#qxb%iT4OAZOX(eb68>NF}(&79{BG8WRE^lQAa*ZRR7A0oGGkU_5X+?Zi;lx4(f zf`|f$R4|jYmvEHblFe(BWeYh*4Dox|OG~^0&9i@$6J=h@w!$d_DGT`|wb{#Ntf%+7 zRLX{2;@-GTLDrU~vD%+vJjqfF5wF4(FKdaG}RfAWB7H~;bpQD3`g zE?@=0>w@|$#G#5sc((V-)XtgbTfU8UxpLeI_6a2jEIb(SB7TLKwcTiV45%ZJ4+Lg( z*(weHo2MSTe(rF!ha5>Y?am_1zcOgMX_QYT(U0=7!Ca%Nm_(J$QLqyE&UF_uh~5-8 zDovy8mBPP~QzXN!WHVaShd?EqE`?*#c@k3zHd1r-`MCU9`n2CB#za6$Tp;IMGspdpDd>jTRfA2c{2`C{uqry!DkG*W;Q_ z=dc{hHUFjdDJ!B&%Hp+}i`>L?xDFfGvO2SzS@rp%xIcvWeovitFxu&zrId7`bo7`-2`>m|$0;kFb+7k;TWpQxB;dBfUCmO1r|xj+oCp(uJ&X47S6mRr z&ezEa3knJ*|J~a`6ii_#5VERm9=JfOKuad@#58;vVo6qJ)~?#Z=hZm4RnHf zJ_+Z(+)T^0!j;XUg^^<9#3dB`VOTSkJ+hq8yV4)S=x74Wab46m0$S%_awl$QLB3LE z#J9<&!Y1Xq;+4-XftNlLt0Cxs9RYi?GJsD-t9mswV<%+sODI*f9A zt(!)zAFCYp!|A6n!ATn8b1F|=J@|G`DY2(i=x*S*OS-YVN2jidDIMcH)4|aIF6o$50 zNgJ*^()wSqqMvOk#`3>^FJ*ii^o}@=eAeh1aVx~bB zf^1aHC8i9!U!nH1Y>(tZHIzE4Y=Eg4dmO|{?U^gED~(_3XE!xW!5}o=>h!u+6jH~i z9!Of?1G1k2KG#gnxpJJl()W-1`}?hb?N1qlPb(c|E(U+AN*?*@u>)KiN4`5;=ylyy z3C}jP_33h&jcc`4Qr|hy?z5ZWFNbf0YAjk&zFok!#dJFPR_v7`9O|ErSGjP> z15$uyo(NjpT2I*beNv6K1!nE|0!rq%iv^4kP$$}F)E1>-{_sc^+=KjkD`HuZ`qHL$(HKiDelVNW-0lL02K~l zs|1KSnnBk=t@k5crEmJ;pKgvW8d(duR*a|p&hdG=N?4yT*jUbKsl4m-%Ow;mJca(% zXtP`G*;P&>ykCcuJPfR}n5YoL@7sIkYF6>^Xm@TAR%4*jPz^(|n@iI94^*)bH34~P zT}ARZejGHo;moj|XVhHBau!qHP!n#kYMbP5alxpZ<`iK1jVmWMF{xWSj|O&JTq%u( zWK9bpD?L?A+EX}DA5c!%Gr(SXzI<6b79ym*Pn(4{V>L{fi~vOQKCDTxAKqh$K_^z$O}+y!$NO`k3clTYXzS+OL6;9>9`dl2<$j++^PV~SYye7_5y3$CAiqb zGp!M-2~Xx7UeH2)yG)Rj4cVo48f8dwQw!F3VpXsKLIrLLzdGB^x3TbrG1 zMqEGn*oG>=Wd`sOMlCq$FJXs`0kW;u9>{__UQ2erDG?5y)HWf z8qAcBNVQN#+CoBr!&RLV{}cro!g>nM*>8vc27BigwON-hwt^5yJw|4>N{TeqKP=r_ zF8mZAW5*)U%2e9!CxY^cHV{@<^Wdhadm9j>XzS~CJhL1N!Z8ysw!mCV593Aabn7u~ zRJE0-L=MoXBJh|mV$4mfsP%!6Mmq$ieKiGRbSzqSh_;}e<^p7**j@f!yVcv4)ENh` z=_x`Akx@6oPiK_kcCJw#SG36hr3{qhlPLx?Kak3}4)%E6&u`j!dt+j$PA!P>d)V@L zc~7(f`!XZ7T$pxZ)I1z|U%h3pNC_XFr+0n&NeZ%bI&KgcA-MZjp?%*}+95OGKWmvAqDK<*JxKP-X=TC0xr>VsXRiqZsX?*XJZi~US=Q`q+h=co)Th(2L@;Z zYx~IEkl_<3gY2V{-5(I<%}morIpRZBBY!>IXlR{CK0BZQN{ zF%t`c4k3P^iYEkx+wzO|S0Dir=KZX%g`5oxWI0Jfl56Mv8gEVgI!MSw8O$z~)1Zas ziHq9xw>nPsa8wEvIFpR<#maKyo_k05hax1kr%g|7cJ3huRQb8ZfDn2h2`uS*j2y$j z>H)H&uzbeLO?eC7Z4f-Y4#>wY6ZZ2i@R%Z0TX1KJD0xj+{A zTdZCm)5PE_Rc>nPumg-jVL#1)t@EXuhC88?+1SU+zP@l3XoAm+ab203&V6wTuDGc{ zRS+jde+?tFOk}TlJIzM$F*EL#eu?qUe*UCYmgM==B{BG3;^hS2qGN|ZFcBX_d9P8W z>R8#zZQF|o4w$-mODBBE2#>&Yvxg{jy)ss7+_~QN>Xl34pHVtXH5@NJK+vRszr9jC zuF{$6i^TOOm;_m@8V+GwFB~N)1ctuVn*X^PC}e3!@5lunMo;}up(_0o4Y)-s5owcs z++QEv#U@tMMs=mt7YYkKyw0efJe&Gd*qxT`hgc@o^nt3IaE85EDYUtsO@<3u#0Vbk znH+TKZCgZEg48TX(8|8_F>n9~=lxmoPqL=1)s7om9Q$%9o5ySWZut37BfLG^SV0f3 zznFUW>9d%7k=o!r`7>x7l|Vs&WA>$j-nSW}=IzOUig>utrdN!5hO#0ut^LvYGA)r) zv$Q84QVA&E4+%MbtOkas`)0vTviq7pGoaNkRxOJ4t4)1n+rBDiHl9z>RWXATM<=+r zavexu0+}1Cfm&?nYYy)`sYZL?wJ{WznY5$SyNQkeO^nT-G8V})unw>l1Li%X<(NkbDoWK# zQUw0-M2h=bi$R)%(!>pGq@uFU>E++xlTO-4+ii#BqrI&kW3?~t4dimz-HQirqLHB> zE>h=JG-C~X>ycX(KF4r>wJlmUK3-@$So5J&9_>|rJUW~?+P^kb0$xLEhHfVsSYHD6 zKlB?rGH{HPKsXek{9;p*&sDv<~&TMS7rF zGTyTuv7>(QD0U<+0V~bqYKA`i1rF44-Fy8+jpUT}`# zKzeFs=19&KukqHt(v}QVzZ**Dwx-YCncj;&YQKOf84L>AGLH5mk17xM$ZcAG=RJ(I z|F#|N9QAx;eqRbC%Y!>^XHPPIez{_ekRxQaek!Z`Ma9V8PUKPG!JPKt+<}AE^R2IA zwf98$IAXzl6TgGTsN&kYS8lZNB(9r*5TLKM{-qMN?XIK3J&~ii$fc(B)?sj(rWgk` zPH~!BR3ykp5juc*Y~P0+x2Jnj@jn)E2{rw~isO7&-F>uWdQ^0@n{qTrc8EL}%>af0 zUub=Tj+%>CRSdX8@1)@C4J#X?cZ>Kp-ku^QRGtxHmhZAF)jFfh^zRaVj<$XFw2u~# zJVQt0Rybe}IT+c2J#m4Wh+vZdY%7udOC>?T!St7n`F=*^AD-}?slYv-qqR1#P%BJ` z{;c_>)3a+2k-JnDjxMv~L7%e&#;SK;HJW$9BJj`DdPE7h<)7Z6Sg(`eTBn~SA_ew9 zZipza4N?Y~IXSWkZA*Cdb`o)QiU_INk?APmySla5feq2MH_7e@(K@l1v;d5 z{~k+lhH2lAo+$Skn|9CE&+`fA3RfAYy8E~eKY5*b0;GQ-ZR`BNX28-@kU2=-(!FFi z+TaY}{#n<$C*WV<4b*H7) zUpx;0cvYI~5#DXLxC057v~3X6Vv(xJqr<_EKkUhdm&C>_pKlL1!Mj=0z*bTT_J}9vWBts}xM9QGY(}kV3qn5*s80~6P=Lsh_r1#b|5C&v<$QWXZyD z%o{{EANN%XVJn|Calwr84f`UW=YPRJ;4x&4y>E^@T#Wo#+d@)4o2upa0Zlc4Wmz;2 zj&BcsWf}gTh3xs`qYYypU( zXA*uz>`%;$kB+-%oH9P!l?kZG^&W!;kr#r7uG8iX^hp&{>5DD>A@gV-Mf6deL@F+8FvK%Av{ zR3@|i1O56Y%8;#<&0<}0|44qMtMjLj#Kv?NW#g%S|3?rKN@$Eh0M?=IuMg^T0=X~6 z4(6_`RmghUl`q${4xL~-nK_u7B?O|wmR*@0zM3ZB7F4-*rAD85bceNg1B>0$&J%a+ z_zh1}ic`6DG<7u*YPH6FHho`wL6A_ajXnY?LB-e#s2sbhIL1$7Gu1K@#b*^lQ-ReQdCylG9Yr^3%;omK z)!n}O3<|6r9%{ij@>LNnyFE6?a--;8UE{L)_kZUkLE3pbq|&fidExvmAuF$B`UlU@ zwq+4472w+IfW4s;hN)wFi?2W9ItPk++3LDzBv?;w=tvEic2NJ-u5PYAgJaftaN9WV zw}z<~@>vvJ^MljNg$fJrdFM!(!0Ctf{_GPMLn*FMz}pfKfMU+(nHPmEZcDTvgltR& z$-kMw#WlR^lXBYl=b8Uo;@MS#`+{|jj~B3W(Ypa-42i6A(bs?xtX7A*0st_?5PCzF z{S-l5208$jUeysyrn@!z&&Rp`Zv&rKW%f@{-@bK%Tc7O$IX6gL6?p1}^VJY|zdbiX zh~;W=*d4I9LtjO^%EEevNN9|~k(g~Gy{mFlS0K;~<42MdMN5O>op}DsKytXA zy#*YS;B=QSCS~sL#Y*fAVu4RY4JydLIXDQZ$3Z2N#w^I6fU+r2QIV=KVERxK z;KR`!#G+iX1|WTTSby!4*R2htdQfcrvdIszX-adz&%9*O`rJ z@nWt3*H(OTZyFOA*4qD*5=#Sl{`&ri5s1S=k8K2{tWdSX^k1A@lm(j52;NBoi!*^h z_C_pd(Fx8Cy>$#y+y*j0WFNS$M9xuLie+m+W_TGb^s^}C;57KH6vVOOJ;Y4s31}H0 z_8}sa@~Hw~E>WfqM=fiSi2&t2(20#DA!;h6y4r=bm z`l)ql{}xr~AT(frQN)d0fJ=f+bN~Zdxg^FZm0la7<{ush!=YP1N>r`clIepI0rQRi zOlZ;vYt_90NY4C+R^i1d!X_vl0~f(MnsgS^)N5E%dvX=SGQ zmmct3cBbXj&qe?T(ceM(F1Y)u^8nh#h6C_{JorBZ660O%m3-~GMxDllrBL8ijr@>Z zX6n{}MW{6lNR{cl+tk`vUa8)i-(M?%p*s4$dBxk4j~+4&-TDb^bF>V|K++KVq(BEj z*bnMmF*w^Rss4-O3;$Z;4x<7HmdivBY+`IG$u2Q5my#i((Y$jT5V4N5IRwxlzjHhm z+IYKTovt~~30S;J3`F#yOiOTC2lHie0Ar)_F{0eVeeNJm0R_z-m^*-{csqDs5O8-+ zM+Q={8x?TTkOLYVrkIOEK>H9MP{C4I=);f`+91c6vqqqlTg4m>6Sa}Xx!+?gJjpn0 zXd1Z4*7=iz*AfigeDQy;`5(V?tFL?^*kmKt61A?at9Nn7Iq#hBsWuA3h0 zsq9^Z&N^wh;37sT5V%ud>xE_w2qX^Fk2ldRH-NN4vauSwO*=pVnCyV#wI>nMF^ zhpb=TK81jtcup|4L}lacuBN;-wxho#59zcTf)CJz@dY1z{!6L zfV*kN-N|7ge#NX4&`i#_+x5;|5)yj z5xe%QWo03YkF=qrF2`=+>j0*e1Nk?o=ildkPDo7vC?;Ye2#kV~vvx(J(pG=uv1Y%C z608&;_$|GXK@nuV-?grD?+aEhdnJp2Myef&@WE!SL8tm@5nX`6J<;-qmlm=gk{dtW zO*}2VH;sZV0RYZ6i_~;004PO%&<(PDZOz%4Fe%n$$92pEhTR`@W264#A9_g&DBDv3 za9R*7cv|F4MiJG0q9Ygq!!C&f4IS}0q_wuuU=^EMXx0wQkm@2bZWSFUMKY3P1F^P2 zBVb(+HAH@mYomh72ZVmv+l~`kK$N=LfJ->g+xeXY*yU^&Zys$*W^l^S8OJ;nvT4sUElD2;vuo5d)x@cI@j{Euj~^tk9ir+uFkZ zSdOEcfN260x^XLmwl-Sf10edZxP)Pdoj3}5Zzw)>*akeC!A?PSDWplPt~$W|@Z@1z z0QG3#!~6#~cS^0fY>vs zDS=8P8MgkPb^6WU>n{PFCtQAraL%$uA$uvK^~?%Ph@-iDTjR>&5CtHZJ&hV_VysC- zMI%gcaxdD!(828g)%E4^P=3+>52i@MRJQE2+7&|9Y(-gT#@M$|vLsuH$exgjB5ShF z*msjHYuVB=D0?bfw(Nx8nLgj&>-*2|H-B-T=iYnnx%ZxX&pGdNo>j1osIY;^V$QEJ zd5$f7q~a(-Xi_W6u2-YjQ{AKGCONhHeFRB_x9^w#s?Td_jlD2pJ9r!>&{UFQ?Y-49 znMiJ^^0)T5&>z2$Q)^Fm6OReq?#aP#?ymn_{*2n#P1IyQpB z!UZy2v9egz%o)p4s0_z^&s`P_9E?bmLqI^lZ&wHDKdakYsWeE_XJ@yz@K1N|Etvi5 z>>I_Sp#o0S*Y!(9{j-GT=7wX$7}^1Xka+;uMw3bLKP>+D#YQ+=i%)}Vt>=_4H$HCi zuD~>m_0}Zrla3YB0-PR*^O-V{dkZAGmD_Nr$WD0ut81FDWI$AlmMb%jzB5-}TN@gI z!{ep(Mri-hozmh(6$8#wanE_Lf?C+DF@geFa6 zFUz2V6!8Wzmiv_gx?=Y}NA%AJX<#2XRT8ziUp$ybaZq>`=$-vde?%Bup1;{5M1OnT#mcszzBA4FEm2*CsG`5%jH9$=O2?vI)`EG38i{Y9Gsu{h7@ zl>Q^8%l!elAoOO`rhl1%mDNI-h%k4((tZHob5S!loc=eI;$X1#Tad>B8b|HUNx2u&Xrhkt)hfc>2bwK}nI`@kU zXE$?vZSIe2O9o*KJkt@cv3BQ@{*B7{e19vpWP1Bm@Zg@iHBMTrjQ$^;-X8P$jH^T7 zagR57Ugu+h3VTI7mhyGqKMLP`@uFhfR4Ch;i0FS_y~BHiL|96&|2I9U63eYvFd_6* zHOLuCQ{PQpxGe8&L7Si8^50`hP)D=08LOAU?Mx@Bo}>M&P9D;;|431wTq99pUt({~ zlMv8suyUr-eq~Jm$oULgS@zmQv`v>}WXVXitf4fIC$?EjpW@5)11pHrh?{5q2V#uD zD1>gY37WGVc}+aFFKC8hWqZ8&dY0Py>L8;yac@Eu4iOZY79;=<1i0{B139d;FI1-D z*0%CtPi(N3zCQ|P$q^tavJBQ!O4)V+d(QPwuut(jyi6p*xInHF+}_9d*X&n@eCsOZ z$~vA9o}?3xNd?WYLRU-_Fh%hUQPk>QlD&x>mY<#5f_$qEYJuu8#s=^$4_>O`w>gcm z3QM!`ndd*pKal*0J@oAi@3AV-tg0UuIu%fSiZlWC)AB>Rj}KaqB~lzryyr-Cqp$>r zd|_IwWV=Y7>A}LsI-Vbwo?|#6-RD7bQqF?a? zaLCA5nB=c3dc3U<>57*E%GrmPcvZ;)^2A044!grkVe4_K7VkjIckQ;7f_Z~Vplfy= zS$5UizCl5w7dvy+p>ZhYN6&)IWQplu_h|%(w>}*MDL3xL!OMzhjjA3iRU^8IOAYTwPF- z)qB`IL`Y{{32JD}n`6Gj9f}?BSh&wdX!;DWH3D-4qa3kM zIR(B=yWAz@kU34*{p!WNu}_tZZW3bV4{|Dp8z6FW)$}jt8Wi$FAxDr9bNw$o`CPx3 z%3)Qq927lqASi_YUo$o&_91YARrA?#p0+QA!c^FD;cDum!yK@+RBIglz6$2 z#!D)8&mtRuG8`0F+1A?P9Rv8QNSgsC{H+S6^xfBM#ubxzok|jG)wd z(#!0<^MA+L%(|c@CwyHLzfVE^l2(-q zqzUl68YeZ1NSSr)-0lw!&>M&Q8Kd-|ejRI$-ev|g^yT8Abr*GGX>E`a zfF+pni@mP&=zLM@W0>tzXITV6 zXAkCKt+Wh;37J*~JJnbg6^U9M;Taem)oUG&%R^&m0HSl!HcAe|ZD`bR=YuG$$d0yI-Yg@O7+H^4?jESXZF9pxju_#Dp;?#M+n z?g5&^P8Z{2l&G_61-Fg7&|}B*G7cWiaVShIobjY1JOPm)Xe~^*d&7a*Wqd85c4JJQ zJID!OG=Un<8q#KYS+li{Oz&h%a-9rO{lac z!|u5ND>!MmRi!TiQ)3j#uL{fWbPr~n94;MF4*S*K#>GJ15T2F~{Z}^c2=$(VVhlE+-TpTt!qNN-Caj*Sjx)H#llg| z7bqyeRVF=fV1)WdULBO+`X<_Ic9~5v^~IWB-BTm)jMfaHZScXY=FJL>u|mBvbFs(R zhP>l6;;V+k5O%ud%dRyVddz>__$LxbCw&T=71J4UNR{O&9Wmj_&)bQ)jCt)w4c;D) zlszdJ`2#b>bM2`gbO0K6h?wwtRm*F8F>>zy7$a()87FxVkS15w*pxgI)981PCS{zq zO<|km;z?o|z1*IIeLCXpFB)P~XZcx@R`ViW*}XA3SMULVVf zxdjiwhvY6q0U|OA1*>e4Tm+XPtqiK}z#Gz{+x^63f@nYaB zkFm3YEa+h8An<&+xqYwJVU``~kDkGadzW&Kdqzhq8<=c13U?z?C%YOZ8GQK|?HR0QT;q@{AJ&xo9?9dVNb`HtV z>yGnT!$b98o9H$8x_Y4d$;&sjV1&Z<-)wg44xeE9w!7|NJo)D%vyUF&ISGvRn_CaA z>sjr0w7RK*04Y7UYii>>e^p0;d8BUsZ{^Wp&Z{5H5~pK|(n`~u{9e{r8{cuCIz>7&wi_Q!Gvm-9*=0+ryQl`xpV%|q@K@6|RssLseV>4K(u~QT zxAa!z?>5fLG)7?=H1MJ83Jio9S!32MPCfD;cYbca-n*j%aLLZu-7Wc}Y}m~&_@Z!@ z?hB}Seu2R(T=YoMCOgJ4*J-ml*1^Mtd;cxr=@Y_x6CQ55(wPnY^>@_tL$7+`#zn*L z<<1*=`T5CTJfuYb>#AaBsgljAO?Yzpu_~R-^|Di_9N3y*GI8h6Z_??Wt77_d4gn`_ z0v@P%Ra^2xG3~|3_9%)RA?-m4-lgl-T=jDTY;g-5K?_pcSgT+sa7yY^56OTY*jQS> zOz;WdJwQO;R66};s98>(lPtWuEoP3Yv~^&yyz#5WPdT12vxrX%;O+Zym&fol@7W@4 z{pf+ZH0A3HxKI5kY!ux5-B9HT1f3j74r0WCin~YX&%~{#7@x>(TL}KUaei=Z)JV<& zEm|BdbW#-`%0^93us8vVVtO~H!C7zga}4O-ifKCf(Rh!s2yx{AzdSq6Afc1ZT|$2D z*%J3vbcW?UK4=k}#2?PWcUZiLfXQnpwV?a^Hi*zeM@TrDg5CHo412EkC#~mcD!-%z zhmZF`H~m`*Ql>SCAO`Pn*|5|D@<-xntb-gc*z1zcXX)!sg9!);DE`xME=VYuFTaV6 zKa?bv(#9@N{AkT|X{hG>Dc(;XcwW#EZiN-oTcM8300JxdKK_L$?~5pWu&8A8Icp@y z$q|K>g%e!UHtMoPzr-uhfB;E}UhWaJ&|SewtrzLXCqs`AEN4d0hFOu7rS`1B68Y%qsmy z|HV5ivW&M!s1FhfqS%k0f2s>l0h~p7+N=7)>^=V+_ja6&8;;)-rvrLu3VZNOgbd*V z!LK^_JRNaSH9tq;e|V3hlm5-?SLwaC0P76_(FQjd4b6%zb}VJ8-C(kGfp`L z1I$5TH{kl`Y2^KHUmMZ8Ggu2wn|=bzG1gV*fiQ~P13oi~RzD^gf{pqGKmAW5A3qw@ zOuU-jAYbWZKhjjNloFXim)H5n@)J|-cu@Mcui*Xahses*i}==rLW&Wv2|Y@Rw$tXW zo7eQp*%p5~Qg)l;DV#7Lj%w*EevvvzQv{t{csq;Kp>dLtNl8iP$jZ)D`|0##>Rnw* z@NtDV6ZF9xuQfzCklXd@`vHR?a<5dwW1uoccTv8PF9eJC@$e`+HC=I>o11%%6rCJp z8OsSmT_o3A5oYIFOaEvtV~#R`F}KQ7?}0dGX5C{2mz1xzA3->yFRQC!4y&@L^5xqy z6p`zNnRVE%6&}{?xnqXmdO&!*YzjRUY)}G_iTPx*96)5% zJ8+}2?Dyh;Tbq#WMeL*Ym7QXPJWJ+P!Gjrrm%;ifkSlN;NTis=Nb5TBuMPc})!H{E zAvR>gW@5f?#|~yOXW?rn`c_yS2F=wZ^mvQoMJJ{CCG!2Y>B_ubgYriqABL*$o4B#X2nSO`NK)U6lb?DZ|{=+&Pz} z-uqU1HVnvXCvT?BveaFUKT{swT;pBb53EZ5@ETYGB*5K zG~RM@X}WuOc-(=IP1R4dUUUQ(z|YtCzw@0Loz`5nBzSD!=Yu;P!;tmWl?N zF~78xE312V`K{eSu&ScZ>mG?L|yvd-2}DvlbLhXsfM86yWf~^sWm$8 z!=s?7ui-hBpHb$}XoVLQj>pL4n}g% z%wvILQukip@2%AgbDmn>k+&DewnP+17JhRzBL8~kf62`f;4dfFK&5A{cQBtSQA{W? z>lc$!W%&rAwqR}`oA9{hdqu5v)VRzkzG>J++N+wo?7TTf{7xa*@=wVE9$&}Lz{)vZ z7wP_*a*mK%2aA`fd^zQEPm1ywRrr}Rbcl3nLk0*tTL$EUSAtPpQMUn+|Hk(A)-~^^;#2a(EoJg}5Y}70zc^7&pq={p zWXSmgYJW)H*Hps72YO^6vPX!A+?98qed&a)NyLhNM1y#cknc^IzmE3^XgH@^ybc92 z(Gl--TsTB$DH>zCLs+Qb&NEdK%j}uagwwWn$bXu&ad-{{7vcvvn)+VnA1N_^&%S@x zUquN&06UyBD8mLvOS)O@1iFV`RECEjDsDhpBJ4lA%SE)7+1)%TAM4(7P$HJg)%8OU zE&NzWLG8NIp!xH^vvrFqa+W!|jGXrKe|GQ66*s?lIs*Ikj5p$Xo0YA0yGp(+$jN4Q z8(fuib1u3)pRb2}I-WT9N$s^JT*cg@&Yz#w_4{9ZP)$pZd<(np zFf8cCmZ|*j^Up2QqW98DXRjNksSVqG8#%k~6;7j@6(l<3PbDEIPdqm{_1yC8((EC! z_pT^MSwt!wp}1)&dBz+ZjfkHLK1K4;K?2V=^1~~dcdqgtFFbfBaKgw&W4SCy4vXkY z?3XYS6wm!8&9>aR*Qr@;KV4x*g2yuk;4nJ={Zs}#k&zZ+vi(0aed8~-B z!Fp^fmj{&n-Jum|VsB)i>=vgMlU!DZWgVoT6{uF&W(HG7W zA5YJgdA7zYy(ZE6Wq(G=yAdUI56U-pjtlnR($;TPzc@{3lh;L!p*?YepHXC{!r1|V z^7Dx@RYUDF>Ls!CMqpt_5T=hN(U;D-t*J7)O;pG_k+;pF6r<3MZYTV&>hE(91&`Di zjXd$mB7g2YTx*W>ORtRC=8uz3M;g%<9c-lBj1XR+pgrzh-dcRMSUR!Q_G5P04Udll zuv?KpD`-A2xDJyBLXOXx^Kub{6I-xRtJ?}bUXY@?{}9$y0AZekwbJv8H;RvY zL*8dO?`PvIqSh)U$o+X?UxKtek?KuNjodRURq09>V)mUfJ0%vShjXJ6fponlhcIQ+ zds(ycJR3LK`x_E7BM)%cg+*Bu}LdPwTz^9AOXaak7RjW4OtQA#z*koy>ikZINP|x4n=Tw-S_2pC0}5_GLDXGA&1G zzV2zvf_Z<5M#aSJdzADQ(dos3^N_kIztK1v_XTz`U%)L8Y|OKTrV79A zK58!(WkC={$^FcMfk88sW`q1A9RyPahyI0G+^Wmo?OW0a34jPlBcnVq_24)=`2yr& z@EBTi7)@E+}xo$mz@@kc&C@mBnAf06q<#B)BSf!B&b{m!vQxR6Zx`(TlwQyxS;xG4f5s!@Aa0$j;XDp+5R zZRhJw8qUcKgmK1a8o@D#1b+BvlF|sd0YF|W-4mbotT2tPDLKy^s_0Ow$x zrv-|#c?2)W%BH`bDT>ZqhREX*A?Q80_j|w&DV|T9rMC5kybBrCzc6;UK{r!n znL6278l7o;Y(2sN*#L2L{HlK4Z3|kSRd0x)w3cM))dPS+<_m#h>IB5b3x&eExqt=h z1MI61vCdL6G@j~8V6oFzAnz5B2eI+9WG6`7f{NJpfXoCaOZKu!5~H<92=>v-^sTor zmtDgG1mpZQ+TU;3@Ek;U0EsCIFrR25oaoNp<2}AK-N)=aLLD1q_ywHv8 zbVOEWOx+63OaEv0kp%bxW0FXx-gw*T^Z zmPIwVv=eBA_fF<${P$2rf3>3^lT9Rp`tN5HuCnqa&oEX!wD=oZl`NdBzVA*<9X=)f zO=K=J?!xsogPr3+gqu)|$~=&7^{AkL#J;7Z1`YA$S9${PMJjXtP@OWMqUtDh7F@HP zvz@xveIUn_pB2&^GBPrX9j`m0N^pC-KoaFpbJEza50=rI%0R_JBcp6V62&t0N*iyV!Wz##e4-o z@+xaNXdnjd#Ts}V@P7u1Ffcb2uu$r1Um{$5B_R6V%D$4 zJfiK}{2YU{eL?l94|VVeNw;yaX)KL+@i)rUH9L6>Dq*>=7zvYCjO6@WzQ_>XBb- zH_jct^}RYS_5{GG0qt$hMy+7)NTKH*p?UhIyBTlV8(dv%5ZHL)qENkO z)qCYZL#oC1H8Um0S3I1f#;v*U+-1Z;ItkTS?RSnr;!7^3?4#iAwa^R=k% zqni)l5;XJVbN^^Ud#Jv*hfBEG71Z$>oc$1XequQf@#{zR856Xg_YNmYLZS)Ot?&pL!r4Am-_wk)A}Hd4{7H(@t3>h_h^D|Fck%I_Q=~u+Qv6C#Cv}q(?5SMp1T^EJsY&UBg<~CiZVRrr z2W3A=AORfLc)1^ZJ;FYTdUBWgo*v)FLm4ij*Mtwc3a0T%HSU~dyOeMwK4^%+LRwEp0f8 z4Lp(=$J2a(YI4I{K4n)XMYl+s)(?SYcSJbNtYWuLTxIZU-s4c`gygwMBSXxct+K| z-@?RBnTxkdlaiNfJ?R2p>740)z0)M$^0<4HgLVv$!)@yr?7MF8s!3kT7;WPf|N1m> zXC*zCy1b}4lzdWR|4ll3FB5r{&R=qlRYc_Ir;kle3)I2VFg2HXJbEm)_Z_(9UKzUT zg8vxOc80h!zHu~=@oVbgF)rM7e19i_JD8I=keoHcCZH1T{K01DtRDkY^t7)D_csoY z9DKXOWJ3mhuWG=XX(vlrdWKK+rCT?J&)j)9n1{%VWtHom84htTQ1dg8M|M7~#*=k? zUguJ;w0lpGjcr86PAEzLJl)~sGkigZB|V_hBfm)S`zudY_8@=zipXxcY&|RNGn#BAxq zbgQm>??)N*68dMdu-emJ&bkb_(9?)M?oD$~K;Xex!oSb9$B^vYexjd=`J0nwZdxfzQPh=}=V85_{ z?XviERhAl}-{*a#PeI^U+1KA!)%}cQ4D5bEnt-RcCwUJ_P5TCuJ+Sg9WcZ1pZ>GhF+`Qb5d|hM!M9SZTDRY1P(8>M09M&sMms%T3x(Gb6oE2U~3oC=2IH zU8(Qz;%vC>beIq#_HNF$B;f_4s`6KBay=FjB&A!fqnDVI_S!w)%L}-I8UH z+w#^Ac0~Lh=@sE-!xe-*V%pP}B?(*_D8+#~@OUtpnJW`5x@y|*sYa5J~K#*khcp1f=a3`Ziv^(nQD&k*e~ zX!mCxmaIKgNbijfr#F4*C4R~pW<~;)^l^h_QQb~XSXo-Iz?>#_n`yPweZ?Sw6K9Cs zrmYUr!^HPLJtOkO5Y z%3tZ@W+gw!fsCR;B&7CEb6X?xELbGa0dJ!CAvzj^Al)UUzVaF@NV-kO%#EY)i1jqF z9V8}Vnvu`rSeOf$7$;*7;i}N?WY1WocXHx7j{i?3L}|%n8qvGIyE$o~9!1}d*E{(P zJI;V0&fK@psF>A9NBD%E8`2CZrAKk{%A{SoRg<>Am*Z z7Z>XHW@8qL1Z=s{vvHs5&yq%#m$QeD-d949y~!HMKx6UR-K}>E$}r5?9rwtZv@0jE z6psHb5{ssaGrW58**feaWHE2DW5$c-!x_cLTZeh~Xb?|~nJ_V+awXYL5qhTV3PfR{ zrgTeV_Dn~OD6F%<;Z$LwxJxm74vK&v@`XB_`2^OqiWoXa0yW}k?%3hfNlfNF`Rwwv zhXoZfFi}(LOZJWQmLt$3>8Hfp9aif-fi;Yu6D0$mW1hXgW(gCIgx8dpZow{x2R@hW z$p_#MMUVgc$7h^L0i&PAGyB^kWA|u~-oV0mGFI(F+M5DsGC<6pp|MQ}3FPrD%$KPk znP^KVUU^O#+O1j`TCWVhKV^3Wel`aiR4t_k-E%9YTT|6gWf!X8T*9yS>QQ#fEfT!X zTaa_T$Bwd2lM8R!Aq{;SmYVR7uj@N4V-6|=nX2LEwXg?@(;2!qmYQ0x-?!-dg{4BmCbDL6+xV@m z1P&ySI}C^GCPEsecRKbJk6Vi#?}NJBVU?w(@zAM?ztZSxaNH*+nWO^2?}SzbV#J-g z2}km^vw5an)QF1Bh0dA2vjQW@n^8Ysi6>tM}%|0Z3Urv6$rl-eiG8<*;^^2at z{7p*=^hrC)^%FnAl;-y5!64Dgq>Ep!VdP;RR^@Z@z2`8229(9|W%fs@Z;K|euWeu3 z#8Pg7BS@=S4;)UAaqxPD{4z&7d&Pzbf*kY4nGCy@6J{P7KKifTG6 zN?vi~yPgZ|!ocgX-$0zHmXB-s7KyS2h5 zQ4v1vyRVX$6=craQbDRyI|Pkp8mGr0NY9r`urS_!3-y5IFjbNbEXXgUMs8)dbr8s~ zg#P!JK6|X@?F>eiw{(#s2@smv9Z>%5$`XJ{|%QXyhG{T(yUu<9a$-}_r_m+-O&|CdArk

-

{{__ "urkunde"}}

+

{{__ "urkunde"}}

{{this.firstname}} @@ -59,7 +65,7 @@

-

{{__ "sponsorings"}}

+

{{__ "sponsorings"}}

-- 2.47.2 From 63c7beb8b9cdc564186c5b86a4f305c8575f5b9f Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 31 Mar 2021 17:12:41 +0200 Subject: [PATCH 19/25] Made footer text configureable ref #36 --- src/PdfCreator.ts | 2 +- src/config.ts | 1 + src/templates/runner_certificate.html | 4 +--- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/PdfCreator.ts b/src/PdfCreator.ts index b37904d..f929c83 100644 --- a/src/PdfCreator.ts +++ b/src/PdfCreator.ts @@ -191,7 +191,7 @@ export class PdfCreator { await i18next.changeLanguage(locale); const template_source = fs.readFileSync(`${this.templateDir}/runner_certificate.html`, 'utf8'); const template = Handlebars.compile(template_source); - let result = template({ runners, eventname: config.eventname, currency_symbol: config.currency_symbol }); + let result = template({ runners, eventname: config.eventname, currency_symbol: config.currency_symbol, donations_footer_text: config.donations_footer_text }); result = await awaitAsyncHandlebarHelpers(result); const pdf = await this.renderPdf(result, { format: "A4", landscape: false, printBackground: true }); return pdf; diff --git a/src/config.ts b/src/config.ts index ed07fd0..aea575a 100644 --- a/src/config.ts +++ b/src/config.ts @@ -13,6 +13,7 @@ export const config = { sponor_logos: getSponsorLogos(), api_key: getApiKey(), disclaimer_text: process.env.DISCLAIMER_TEXT || "", + donations_footer_text: process.env.DONATIONS_FOOTER_TEXT || "", contracts_per_runner: parseInt(process.env.CONTRACTS_PER_RUNNER) || 1, } let errors = 0 diff --git a/src/templates/runner_certificate.html b/src/templates/runner_certificate.html index e985237..16f3412 100644 --- a/src/templates/runner_certificate.html +++ b/src/templates/runner_certificate.html @@ -92,9 +92,7 @@

- Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et - dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet - clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. + {{../donations_footer_text}}

-- 2.47.2 From 5a98688d60eed34644391ecde638949fe5a46c65 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 31 Mar 2021 17:13:54 +0200 Subject: [PATCH 20/25] Documented new env var ref #36 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d3bd447..dfc827b 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,7 @@ The basic generation mechanism makes the templates and routes interchangeable (i | SPONOR_LOGOS | Array | Empty png | The sponsor images you want to loop through. You can provide them via http url, local file or base64-encoded image. | API_KEY | String(min length: 64) | Random generated string | The api key you want to use for auth (query-param `key`), has to be at least 64 chars long. | DISCLAIMER_TEXT | String | N/A | A disclaimer that will get displayed on the bottom of each sponsoring contract. R/N You can only provide the disclaimer for one language. +| DONATIONS_FOOTER_TEXT | String | N/A | A text that will get displayed on the bottom of each runner certificate's second page. R/N You can only provide the text for one language. | CONTRACTS_PER_RUNNER | Number | 1 | The amount of contracts that get created per runner (per request). ## Templates -- 2.47.2 From 2278e4ad06947b540323856ea1e71022562ea719 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 31 Mar 2021 17:14:20 +0200 Subject: [PATCH 21/25] =?UTF-8?q?Sorted=20translations=20=F0=9F=8C=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ref #36 --- src/locales/de.json | 52 ++++++++++++++++++++++----------------------- src/locales/en.json | 52 ++++++++++++++++++++++----------------------- 2 files changed, 52 insertions(+), 52 deletions(-) diff --git a/src/locales/de.json b/src/locales/de.json index 68a1967..abd0e37 100644 --- a/src/locales/de.json +++ b/src/locales/de.json @@ -1,28 +1,28 @@ { - "address": "Adresse", - "city": "Stadt", - "date": "Datum", - "firstname": "Vorname", - "group": "Team/Klasse", - "house_number": "Hausnummer", - "id": "ID", - "lastname": "Nachname", - "location": "Ort", - "please_use_blockletters": "Bitte in DRUCKBUCHSTABEN schreiben", - "postalcode": "Postleitzahl", - "signature": "Unterschrift", - "sponsor": "Sponsor", - "sponsoring_address_condition": "Muss ausgefüllt werden, wenn Sie eine Spendenquittung benötigen - Spendenquittungen können erst ab einem Gesamtbetrag von {{sponsoring_receipt_minimum_amount}}{{currency_symbol}} ausgestellt werden", - "sponsoring_amount_per_distance": "mit einem Betrag von _____{{currency_symbol}} pro gelaufenem Kilometer zu unterstützen.", - "sponsoring_subtitle": "Ich/Wir sind bereit anlässlich des {{eventname}}", - "sponsoring_title": "Sponsoringerklärung", - "street": "Straße", - "urkunde": "Urkunde", - "hat-beim-eventname": "Hat beim {{eventname}}", - "fuer-den-guten-zweck-zurueckgelegt": "für den guten Zweck zurückgelegt", - "sponsorings": "Sponsorings", - "sponsor-in": "Sponsor:in", - "betrag-km": "Betrag/KM", - "gesamtbetrag": "Gesamtbetrag", - "gesamt": "Gesamt" + "address": "Adresse", + "betrag-km": "Betrag/KM", + "city": "Stadt", + "date": "Datum", + "firstname": "Vorname", + "fuer-den-guten-zweck-zurueckgelegt": "für den guten Zweck zurückgelegt", + "gesamt": "Gesamt", + "gesamtbetrag": "Gesamtbetrag", + "group": "Team/Klasse", + "hat-beim-eventname": "Hat beim {{eventname}}", + "house_number": "Hausnummer", + "id": "ID", + "lastname": "Nachname", + "location": "Ort", + "please_use_blockletters": "Bitte in DRUCKBUCHSTABEN schreiben", + "postalcode": "Postleitzahl", + "signature": "Unterschrift", + "sponsor": "Sponsor", + "sponsor-in": "Sponsor:in", + "sponsoring_address_condition": "Muss ausgefüllt werden, wenn Sie eine Spendenquittung benötigen - Spendenquittungen können erst ab einem Gesamtbetrag von {{sponsoring_receipt_minimum_amount}}{{currency_symbol}} ausgestellt werden", + "sponsoring_amount_per_distance": "mit einem Betrag von _____{{currency_symbol}} pro gelaufenem Kilometer zu unterstützen.", + "sponsoring_subtitle": "Ich/Wir sind bereit anlässlich des {{eventname}}", + "sponsoring_title": "Sponsoringerklärung", + "sponsorings": "Sponsorings", + "street": "Straße", + "urkunde": "Urkunde" } \ No newline at end of file diff --git a/src/locales/en.json b/src/locales/en.json index af741ea..b1b0691 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -1,28 +1,28 @@ { - "address": "Address", - "city": "City", - "date": "date", - "firstname": "First name", - "group": "Team/class", - "house_number": "House number", - "lastname": "Last name", - "location": "Location", - "please_use_blockletters": "Please write in BLOCK LETTERS.", - "postalcode": "Postal code", - "signature": "Signature", - "sponsor": "sponsor", - "sponsoring_address_condition": "You have to provide an address if you want a donation receipt - Donation receipts can't be issued for total donation amounts under {{sponsoring_receipt_minimum_amount}}{{currency_symbol}}", - "sponsoring_amount_per_distance": "with the amount of _____{{currency_symbol}} per kilometer run.", - "sponsoring_subtitle": "On the ocation of the {{eventname}} I/We want to support", - "sponsoring_title": "Sponsoring contract", - "street": "Street", - "urkunde": "Certifcate", - "fuer-den-guten-zweck-zurueckgelegt": "for our good cuse at the {{eventname}}", - "hat-beim-eventname": "Ran", - "id": "ID", - "sponsorings": "Donations", - "sponsor-in": "Donor", - "betrag-km": "Amount/KM", - "gesamtbetrag": "Total", - "gesamt": "Combined" + "address": "Address", + "betrag-km": "Amount/KM", + "city": "City", + "date": "date", + "firstname": "First name", + "fuer-den-guten-zweck-zurueckgelegt": "for our good cuse at the {{eventname}}", + "gesamt": "Combined", + "gesamtbetrag": "Total", + "group": "Team/class", + "hat-beim-eventname": "Ran", + "house_number": "House number", + "id": "ID", + "lastname": "Last name", + "location": "Location", + "please_use_blockletters": "Please write in BLOCK LETTERS.", + "postalcode": "Postal code", + "signature": "Signature", + "sponsor": "sponsor", + "sponsor-in": "Donor", + "sponsoring_address_condition": "You have to provide an address if you want a donation receipt - Donation receipts can't be issued for total donation amounts under {{sponsoring_receipt_minimum_amount}}{{currency_symbol}}", + "sponsoring_amount_per_distance": "with the amount of _____{{currency_symbol}} per kilometer run.", + "sponsoring_subtitle": "On the ocation of the {{eventname}} I/We want to support", + "sponsoring_title": "Sponsoring contract", + "sponsorings": "Donations", + "street": "Street", + "urkunde": "Certifcate" } \ No newline at end of file -- 2.47.2 From cec893032dea9f312e37841232a9434e19b79003 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 31 Mar 2021 17:15:29 +0200 Subject: [PATCH 22/25] disabled testing for now ref #36 --- package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index c704978..d97e772 100644 --- a/package.json +++ b/package.json @@ -8,9 +8,9 @@ "build": "rimraf ./dist && tsc && cp-cli ./src/templates ./dist/templates && cp-cli ./src/locales ./dist/locales", "licenses:export": "license-exporter --markdown", "release": "release-it --only-version", - "translations:sort": "node sort_translations.js", - "test:speed": "start-server-and-test dev http://localhost:4010/docs/openapi.json test:speed:run", - "test:speed:run": "ts-node src/tests/speedtest.ts" + "translations:sort": "node sort_translations.js" //, + // "test:speed": "start-server-and-test dev http://localhost:4010/docs/openapi.json test:speed:run", + // "test:speed:run": "ts-node src/tests/speedtest.ts" }, "repository": { "type": "git", @@ -89,4 +89,4 @@ "publish": false } } -} +} \ No newline at end of file -- 2.47.2 From e75f15142e293349a071a7cdcc53cc10780304f6 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 31 Mar 2021 17:15:57 +0200 Subject: [PATCH 23/25] disabled testing for now ref #36 --- package.json | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/package.json b/package.json index d97e772..b760005 100644 --- a/package.json +++ b/package.json @@ -8,9 +8,7 @@ "build": "rimraf ./dist && tsc && cp-cli ./src/templates ./dist/templates && cp-cli ./src/locales ./dist/locales", "licenses:export": "license-exporter --markdown", "release": "release-it --only-version", - "translations:sort": "node sort_translations.js" //, - // "test:speed": "start-server-and-test dev http://localhost:4010/docs/openapi.json test:speed:run", - // "test:speed:run": "ts-node src/tests/speedtest.ts" + "translations:sort": "node sort_translations.js" }, "repository": { "type": "git", -- 2.47.2 From 479e28c46c6b3b8ba1622bcf5712695a94c2ae89 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 31 Mar 2021 17:18:43 +0200 Subject: [PATCH 24/25] Pinned depencencies (and bumped some) ref #36 --- package.json | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/package.json b/package.json index b760005..4d3bce1 100644 --- a/package.json +++ b/package.json @@ -39,24 +39,24 @@ ], "license": "CC-BY-NC-SA-4.0", "dependencies": { - "@odit/class-validator-jsonschema": "^2.1.1", - "async-helpers": "^0.3.17", - "axios": "^0.21.1", - "bwip-js": "^2.0.12", - "cheerio": "^1.0.0-rc.5", + "@odit/class-validator-jsonschema": "2.1.1", + "async-helpers": "0.3.17", + "axios": "0.21.1", + "bwip-js": "2.1.1", + "cheerio": "1.0.0-rc.5", "class-transformer": "0.3.1", - "class-validator": "^0.13.1", - "consola": "^2.15.0", - "cors": "^2.8.5", - "dotenv": "^8.2.0", - "express": "^4.17.1", - "handlebars": "^4.7.6", - "i18next": "^19.8.7", - "i18next-fs-backend": "^1.0.8", - "mime-types": "^2.1.28", - "pdf-lib": "^1.16.0", - "puppeteer": "^7.0.1", - "reflect-metadata": "^0.1.13", + "class-validator": "0.13.1", + "consola": "2.15.3", + "cors": "2.8.5", + "dotenv": "8.2.0", + "express": "4.17.1", + "handlebars": "4.7.7", + "i18next": "20.1.0", + "i18next-fs-backend": "1.1.1", + "mime-types": "2.1.29", + "pdf-lib": "1.16.0", + "puppeteer": "8.0.0", + "reflect-metadata": "0.1.13", "routing-controllers": "0.9.0-alpha.6", "routing-controllers-openapi": "2.2.0" }, -- 2.47.2 From 82159bed536bbafd20746927f5a7f61f76959637 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 31 Mar 2021 17:19:48 +0200 Subject: [PATCH 25/25] Pinned dev dependencies ref #36 --- package.json | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index 4d3bce1..4ea7299 100644 --- a/package.json +++ b/package.json @@ -61,18 +61,18 @@ "routing-controllers-openapi": "2.2.0" }, "devDependencies": { - "@odit/license-exporter": "^0.0.10", - "@types/express": "^4.17.11", - "@types/node": "^14.14.22", - "@types/puppeteer": "^5.4.3", - "cp-cli": "^2.0.0", - "faker": "^5.3.1", - "nodemon": "^2.0.7", + "@odit/license-exporter": "0.0.11", + "@types/express": "4.17.11", + "@types/node": "14.14.22", + "@types/puppeteer": "5.4.3", + "cp-cli": "2.0.0", + "faker": "5.3.1", + "nodemon": "2.0.7", "release-it": "^14.2.2", - "rimraf": "^3.0.2", - "start-server-and-test": "^1.12.0", - "ts-node": "^9.1.1", - "typescript": "^4.1.3" + "rimraf": "3.0.2", + "start-server-and-test": "1.12.0", + "ts-node": "9.1.1", + "typescript": "4.1.3" }, "release-it": { "git": { -- 2.47.2