From 23b2bf9732f9b7decc43c0938b944e8b2d1e3a95 Mon Sep 17 00:00:00 2001
From: Linus Rath <139418639+rathlinus@users.noreply.github.com>
Date: Sat, 31 Oct 2026 14:33:43 +0100
Subject: [PATCH 1/4] feat: recolour HTML mail for dark mode instead of
inverting it
---
src/components/EmailBodyView.tsx | 121 +----
src/lib/__tests__/email-dark-mode.test.ts | 332 +++++++++++++
src/lib/__tests__/email-html.test.ts | 42 +-
src/lib/email-body-document.ts | 6 +-
src/lib/email-dark-mode.ts | 544 ++++++++++++++++++++++
src/lib/email-html.ts | 81 +---
src/lib/quote-collapse.ts | 4 +-
7 files changed, 946 insertions(+), 184 deletions(-)
create mode 100644 src/lib/__tests__/email-dark-mode.test.ts
create mode 100644 src/lib/email-dark-mode.ts
diff --git a/src/components/EmailBodyView.tsx b/src/components/EmailBodyView.tsx
index bf6161b4..da8ebdc2 100644
--- a/src/components/EmailBodyView.tsx
+++ b/src/components/EmailBodyView.tsx
@@ -6,6 +6,7 @@ import type { NativeStackNavigationProp } from '@react-navigation/native-stack';
import { Image as ImageIcon, ShieldCheck } from './icons';
import type { Email } from '../api/types';
import { extractCidRefs, isUserLinkNavigation } from '../lib/email-html';
+import { buildEmailDarkModeScript } from '../lib/email-dark-mode';
import { hasTruncatedDisplayedBody, pickEmailBody, selectRenderableHtml } from '../lib/email-body';
import { buildQuoteCollapseScript } from '../lib/quote-collapse';
import { bodyDocument } from '../lib/email-body-document';
@@ -67,109 +68,6 @@ interface EmailBodyViewProps {
onShowFormatted?: () => void;
}
-// Dark-mode re-inversion, mirroring the webmail's handleIframeLoad pass. The
-// body's `filter: invert(1)` flips colored emoji (yellow smiley -> blue, red
-// heart -> cyan) and stylesheet-defined background images, which the static CSS
-// attribute selectors can't reach. This walks the DOM once and wraps/re-inverts
-// those so they keep their original colors. Only injected when inversion is on.
-const DARK_REINVERT_SCRIPT = `
-(function () {
- if (document.__rnDarkInvertDone) return;
- var doc = document;
- var win = window;
- if (!doc.body) return;
- document.__rnDarkInvertDone = true;
-
- // Re-invert elements with stylesheet-defined background images (CSS attribute
- // selectors only catch inline styles, not rules that survive in
(prefers-color-scheme: dark)
';
+
+ it('turns the dark query on and the light one off in dark mode', () => {
+ const out = resolveColorSchemeMedia(html, true);
+ expect(out).toContain('@media (min-width: 0px) { .a');
+ expect(out).toContain('@media (max-width: 0.001px) { .b');
+ });
+
+ it('turns the dark query off in light mode', () => {
+ const out = resolveColorSchemeMedia(html, false);
+ expect(out).toContain('@media (max-width: 0.001px) { .a');
+ expect(out).toContain('@media (min-width: 0px) { .b');
+ });
+
+ it('leaves text outside x
', { isDark: true });
- expect(native.hasNativeDark).toBe(true);
- expect(native.applyInversion).toBe(false);
- expect(native.html).toContain('color-scheme: light dark');
- expect(native.html).not.toContain('invert(1)');
-
+ // Dark mode rewrites the mail's colours after layout (lib/email-dark-mode)
+ // instead of inverting the body with a filter, as the webmail does since
+ // 7401ea665: the head only sets fallback colours and hides the body until
+ // the pass ran.
+ it('recolours a mail shown dark instead of inverting it', () => {
const plain = prepareEmailHtml('x
', { isDark: true });
- expect(plain.applyInversion).toBe(true);
- expect(plain.html).toContain('body { filter: invert(1) hue-rotate(180deg)');
- // Current webmail revision: background-image containers re-invert without the :has guard.
- expect(plain.html).toMatch(/\[style\*="background-image"\],\s*\[background\]\s*\{\s*filter: invert\(1\)/);
+ expect(plain.recolorDark).toBe(true);
+ expect(plain.html).not.toContain('invert(1)');
+ expect(plain.html).toContain('x', { isDark: false });
- expect(light.applyInversion).toBe(false);
+ expect(light.recolorDark).toBe(false);
+ expect(light.html).not.toContain('bulwark-dark-pending');
+ expect(light.html).not.toContain('#141414');
+ });
+
+ it('recolours a mail with its own dark styles too and pins them to the app theme', () => {
+ const mail = 'x
';
+ const dark = prepareEmailHtml(mail, { isDark: true });
+ expect(dark.hasNativeDark).toBe(true);
+ expect(dark.recolorDark).toBe(true);
+ expect(dark.html).toContain('color-scheme: dark');
+ expect(dark.html).toContain('@media (min-width: 0px){body{color:#fff}}');
+ expect(dark.html).toContain('@media (max-width: 0.001px){p{color:#000}}');
+
+ // A light app (or "Always view emails in light mode") on a dark phone
+ // must not get the mail's dark variant.
+ const light = prepareEmailHtml(mail, { isDark: false });
+ expect(light.html).toContain('color-scheme: light');
+ expect(light.html).not.toContain('light dark');
+ expect(light.html).toContain('@media (max-width: 0.001px){body{color:#fff}}');
});
it('reports blocked external content', () => {
diff --git a/src/lib/email-body-document.ts b/src/lib/email-body-document.ts
index 68b8d5fa..c01cd088 100644
--- a/src/lib/email-body-document.ts
+++ b/src/lib/email-body-document.ts
@@ -37,8 +37,8 @@ export interface BodyDocumentInput {
export interface BodyDocument {
html: string;
- /** Inversion CSS is in effect; the DOM re-invert pass should run. */
- applyInversion: boolean;
+ /** Shown dark: the recolour pass (lib/email-dark-mode) has to run. */
+ recolorDark: boolean;
hasNativeDark: boolean;
/** At least one external resource was neutralised. */
blockedExternal: boolean;
@@ -69,7 +69,7 @@ export function buildBodyDocument(input: BodyDocumentInput): BodyDocument {
fontPx: mailBaseFontPx(input.textFactor ?? 1),
darkColors: input.plainDarkColors,
}),
- applyInversion: false,
+ recolorDark: false,
hasNativeDark: false,
blockedExternal: false,
isHtml: false,
diff --git a/src/lib/email-dark-mode.ts b/src/lib/email-dark-mode.ts
new file mode 100644
index 00000000..37a48f31
--- /dev/null
+++ b/src/lib/email-dark-mode.ts
@@ -0,0 +1,544 @@
+/**
+ * Dark mode for HTML mail bodies (webmail lib/email-dark-mode.ts, 7401ea665,
+ * 6e5e07107). Instead of inverting the whole body with a CSS filter (which
+ * turns brand red into pink, flips photos that then need re-inverting and
+ * emoji that need wrapping), the rendered document is read back through
+ * getComputedStyle and its colours are rewritten in place:
+ *
+ * - Light backgrounds are darkened with their hue kept. Vivid colours (brand
+ * buttons, banners) and backgrounds that are already dark stay as sent.
+ * - Text and borders only change when they lack contrast against the new
+ * background; they are then lightened (or darkened) in their own hue.
+ * - Images are never touched. An element painted with a background image
+ * keeps its colours, and so does the text drawn straight on it.
+ *
+ * Computed styles only exist inside the WebView, so the pass runs there as an
+ * injected script. Hermes keeps no function source, so the pass can't be
+ * stringified from TypeScript: it lives below as JavaScript source
+ * (EMAIL_DARK_MODE_LIB), and the tests evaluate that same source, so what is
+ * tested is what the WebView runs.
+ */
+
+/** Canvas the converted mail sits on (white maps to this). */
+export const EMAIL_DARK_BACKGROUND = '#141414';
+const DARK_TEXT = '#e6e6e6';
+const DARK_LINK = '#8ab4f8';
+
+/** Class on that keeps the body hidden until the pass has run. */
+export const DARK_PENDING_CLASS = 'bulwark-dark-pending';
+
+/**
+ * `color-scheme` for the document root. A mail with its own dark styles gets
+ * `dark`, so its `prefers-color-scheme: dark` rules apply whenever the app
+ * shows it dark - not only when the phone is dark too.
+ */
+export function emailColorScheme(isDark: boolean, nativeDarkMode: boolean): 'light' | 'dark' {
+ return isDark && nativeDarkMode ? 'dark' : 'light';
+}
+
+const ALWAYS = '(min-width: 0px)';
+const NEVER = '(max-width: 0.001px)';
+
+/**
+ * Pins the mail's `prefers-color-scheme` media queries to the theme the app
+ * shows it in. Inside the WebView they would follow the phone, not the app
+ * (or the per-message light/dark switch). Only
-${processed}
+${resolveColorSchemeMedia(processed, isDark)}
`;
- return { html, applyInversion, hasNativeDark, blockedExternal };
+ return { html, recolorDark, hasNativeDark, blockedExternal };
}
export function wrapEmailHtml(innerHtml: string, options: WrapOptions = {}): string {
diff --git a/src/lib/quote-collapse.ts b/src/lib/quote-collapse.ts
index 7343b6dc..b75ed648 100644
--- a/src/lib/quote-collapse.ts
+++ b/src/lib/quote-collapse.ts
@@ -57,8 +57,8 @@ export const QUOTE_COLLAPSED_ATTR = 'data-quote-collapsed';
/**
* The in-page implementation of `setupQuoteCollapse`, as a self-contained
* script for `injectedJavaScript`. Idempotent per document. Uses inline
- * styles only (style-src allows inline; neutral greys read fine after the
- * dark-mode invert filter too).
+ * styles only (style-src allows inline; the dark-mode recolour pass runs
+ * after it and converts the toggle like the rest of the mail).
*/
export function buildQuoteCollapseScript(labels: QuoteCollapseLabels): string {
const cfg = JSON.stringify({
From 4724c28f53ad77f6e77a535d8d394225a1a2d121 Mon Sep 17 00:00:00 2001
From: Linus Rath <139418639+rathlinus@users.noreply.github.com>
Date: Sat, 31 Oct 2026 14:49:21 +0100
Subject: [PATCH 2/4] feat: offer the reading fonts, including OpenDyslexic,
for the app and plain-text mail
---
.../assets/fonts/AtkinsonHyperlegibleNext.ttf | Bin 0 -> 48976 bytes
.../fonts/AtkinsonHyperlegibleNext_bold.ttf | Bin 0 -> 48960 bytes
android/app/src/main/assets/fonts/Lexend.ttf | Bin 0 -> 64668 bytes
.../app/src/main/assets/fonts/Lexend_bold.ttf | Bin 0 -> 64860 bytes
android/app/src/main/assets/fonts/OFL.txt | 107 ++++++++++++
.../src/main/assets/fonts/OpenDyslexic.ttf | Bin 0 -> 216136 bytes
.../main/assets/fonts/OpenDyslexic_bold.ttf | Bin 0 -> 230924 bytes
index.ts | 3 +
locales/rn/de.json | 10 ++
locales/rn/en.json | 8 +-
scripts/build-reading-fonts.py | 158 ++++++++++++++++++
scripts/generate-licences.mjs | 4 +
src/components/EmailBodyView.tsx | 6 +-
.../settings/AccessibilitySettings.tsx | 36 +++-
src/lib/__tests__/email-body-document.test.ts | 9 +
src/lib/__tests__/email-html.test.ts | 16 ++
src/lib/accessibility-presets.ts | 15 +-
src/lib/email-body-document.ts | 6 +-
src/lib/email-html.ts | 21 ++-
src/lib/licences.json | 18 ++
src/lib/settings-search.ts | 4 +-
src/stores/settings-store.ts | 12 ++
src/theme/__tests__/reading-fonts.test.ts | 141 ++++++++++++++++
src/theme/reading-font-install.ts | 22 +++
src/theme/reading-font-text.ts | 88 ++++++++++
src/theme/reading-fonts-data.ts | 55 ++++++
src/theme/reading-fonts.ts | 97 +++++++++++
27 files changed, 821 insertions(+), 15 deletions(-)
create mode 100644 android/app/src/main/assets/fonts/AtkinsonHyperlegibleNext.ttf
create mode 100644 android/app/src/main/assets/fonts/AtkinsonHyperlegibleNext_bold.ttf
create mode 100644 android/app/src/main/assets/fonts/Lexend.ttf
create mode 100644 android/app/src/main/assets/fonts/Lexend_bold.ttf
create mode 100644 android/app/src/main/assets/fonts/OFL.txt
create mode 100644 android/app/src/main/assets/fonts/OpenDyslexic.ttf
create mode 100644 android/app/src/main/assets/fonts/OpenDyslexic_bold.ttf
create mode 100644 scripts/build-reading-fonts.py
create mode 100644 src/theme/__tests__/reading-fonts.test.ts
create mode 100644 src/theme/reading-font-install.ts
create mode 100644 src/theme/reading-font-text.ts
create mode 100644 src/theme/reading-fonts-data.ts
create mode 100644 src/theme/reading-fonts.ts
diff --git a/android/app/src/main/assets/fonts/AtkinsonHyperlegibleNext.ttf b/android/app/src/main/assets/fonts/AtkinsonHyperlegibleNext.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..8c79ccd18ee0c013594ee161acd8339bcc68d1e3
GIT binary patch
literal 48976
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
literal 0
HcmV?d00001
diff --git a/android/app/src/main/assets/fonts/AtkinsonHyperlegibleNext_bold.ttf b/android/app/src/main/assets/fonts/AtkinsonHyperlegibleNext_bold.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..da32902a42ce84ae1e8d2d7bf03bd4ed109ba941
GIT binary patch
literal 48960
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
+G%d*3Q+F
zrY$NsJFVJU(rA@htD9GL
z*M)kz>gzC&6;c%c0(qttI9W{-J42zM`EK}g$-QOE@t0Ar%YkE$s52huCPwSEJY*p5
zOSM}m_t+x_IHsb1`)TXY@AJY4yIDb#*g+dTm`(@9C3@>#f%MV)<@x7^43S|NPFT
zAq#ZVgTsNqaM0F}XBlehobTV9?=7-;OsE1y-h3X!0N&`(>m5c|h^D2uWk@$;)QFPY
z6jE107>@H7jVeLaNg(yT^-vC8B75y)+)&ZnSKhh0
zqkU~hK~1we9Of<7TAR7nWe-{%K?`vL2PlN~VsL`reLz%Q1`PC|Dr(;*F*7T-$ADqk
z!Gkpue7Van*u-avM)^ORC_L?y35oE(7xA^owF2?|!A$PRhcql5#QUph^xg*d4)Ok)
zp57b8JEeaN-;;@8M=_(lK6w9Qh~6vV-Y4RJUARLglHAhGaDM}gK$fLv1K*e|4Oz!4
zWN8&ficDn{ZW%N}6|xj0L+atQJV;Xpf{n{8gc!IcU|7drfUq=ghC7tj&$Am&!Gx00
zl01~%A8MLX+ULh+4@gDD{}{}+gf9;NcA%`Yp}=U&H(1KN!C-M~lVcj@D=6K3C0$u}
zous&E%E^JC7WR<56h11w&KVCpFu$=eF^vnChyO9q_u9+T252UPVqSug5@zMFtGq$U
zQ)0iQLH0)FE1`<>c(U$5@F5`~lWN_qB^G_5)ziaY
z`rZTcnwsvLA&_!-0XF983JiRb(V)X+ahICB4vQx(t=i@an8Ux9kv+5=WkcU(c}tZ}
zy4cf^w2|n3@r){8N*~|%`4ny_2wx=o;&W8F*nbXR;}=RWbV_Z3-dL10GkYM^Fo<%v
ziSHY5cQ+U6^q_sYx2CqZjc8A4?&gaS8(I=cG_n5r%joiphDm}3`9-BQL<7AQG#Ch$
zwh0=PcJbX_w?$_v$Tj9mll4Y@ZZz9Po^)i}S%WP||2?}>KShtO!J5`zMNbdzh+U&Y
zSVxxOSC872+82W#VEZ8NU^i@Jn%E6nn6T?8L_1=g7`2F59Fh<*SIq+|X~@@D;IeAV
zu}St2cFP(n3X8N^1)2V)m#L9@lhxSrj+se$m)w7F
zZzgyL?LOKeH2jatG{KrG@e~=p5_y;5`|*v38)EQ9G58)qGkHhN|I%(rq(U6?aurhN
zG@GE|``H3^11OKxmH(<;l!RfDf??urNzg}u?_rM%dQy%8keZ|L1NhDZ$<9rvOW@@s
zJ16ejOsqv14T@E>*j`RUMUh3+p~~Fq#sVkU_YT@SoKSzLT6sXM|Koj@O8q!QZHYrx
zMaf-_?}g9~Z+j$J!hX*f{1E$DtezcG5xr#pd#FvKq%jhe?gd?R@(wKsnwS){!$8o(
zG_hT)#biX2&qw<=aS#82+hIPL(}!zLIF0sk@@vH02t>xOyO$Gl3)iDxE#V*?aM$5m
zN1}hF7zB<4SMxm!<4`J5+4liRBvhi6k!d158%k722lC$0@k&(LPpU_G=46@G>6N*@
z2D8f&-CufQf&QC&LaDxiuK(2DPil=QJA^?_A%KA{hwx1ms#_G-N%n*)ZP-AZg<~EN
zq4wg79z-`e)NL{NmF%6!ZC@-sN&u4F4(Z(ksS(7|J<%p!VqE-VMuLO!SD*fePsB4c9!6MLRogTBnoDaGcZDwE5Y
zW=yNO#?ewx-|yU8clzQ<=XakS81OXC%W&3O%8mKn3X5Bplr-z7YPG%7AD+h_9at9B
zYBzi<$u}j?Ji8j0fS-QZUQgsf_z*P_dkRsy`>}3IrI>|Mq+OzrY@@qGotpUI5It!;
zThWpg+ep1dQ9|2I6^5KqpO`3?_n1~ii8%UW5{*RDEYK9`f~GP)hwx>rC`~s3A1ru+
zrvJ*GRBG`k5z*qWVRs-cd5O6UKY;9eBi6UCuWv-5U=l8FQI#CZ+fi8MIH)!=Z})8|+4jTM>z)fE-x#`fw;`{YlvzzvqcBAx8x
zxOVIwUgV#a^8e}mv!JI4CpZPxN{Lg@w_;=P^`Ns1zY6n$H^kuB`>Vh&f#xdh{T&<6
z<@l-?)d5`p)NWf!u})xe6~1;xDT)~As}TzP5`1HfQk3D;f02JRzx-@U&w=#5*4|vi
zApDBFqaP7m@_CVW8BSbMhVRFBxd;;(PSTnT-@_gwB#7Jo7wqx92Y9s!N?bjiN>E@W
zTBQs<0On4(P7}EL6Et-~3F=3q_vDhgpAoBB@m3=%APES+7Y(S&l2b4g8gH|*zXEM3
zKP98`8F|O@U4^B3XJuBo$JzV!GEWc3LG-z)Lm+b9Mbpfy>P
zxZ9i-s4%&rY_0f;U9uNnyldvnlkAk;-akCtAO7YEn`Pyk|6lJ)rBdlfu2CwZcb^KV
zhVNE(x}&tPhn0FK+4q4JGNq0l5!+gOq3AsNHnfhjzc#zX
zWQ=wsA4YfDiXO$0scPRedGv-`lPfE`+^qB{{H54#ElcFTW{<0=all3*9y2Itezo}i
zkH8V@J~C9pugB_{+-}G>wGi@6W$}GHdE}2EJ?)gmN{zhhSDxY&s{*6*9+?
zZI6^3RQzB@CakPe`40)q54=w0Z-`7|pGvgm3rRR})mK?d57DM%
zZ6fEpiI#(%KA*$aP*83j{GG2tp316>uMZ#30*|wKv-nPI&yDjlqKF|fPfC*BLyILW
zO8BKt?7`rt@Cv+X_@zRc`KR~NBImR_^lR>#1s3&?)ZiPmm@Q}_k1~Ux(AV5ci#UXD
z)zye&j)-Hgu~dPsmYzla2&&;%vPV(gw2qieamRcgf-9#rEZ%~8fD!d3n%@bEv8|TI
zwqobk8`#B*-L?xC8cRLc$-BK^rJ0`+{-}0U?e%WsCW?Xbos9O2(Y3t$POQ~nZbaTW
zByZsT+PiCs^Dh*5UxBZuQhAB^CE_sz2al-{P|y#l#(W=Q=fPFxfB)yZarubAY~KQf
z9{v4wJo65*GNe9O@NZ&U351v?jko4`U~yb>5wFMYEpD;Z8@
zMR1f=o{V#k*lmerk#X1MWwkpD24X{6F;pVGL=28l52G6}69=@B6Bh7`eAAnAzI=CP
z-MmKQNf!C5lB~7GU$Jk~-|J2qHHOupO<^BtEWd}4?SEr8B`BML2(A!(e4U`|mFx|C
zkr;8}D>vT902c16`14_HrkgwOu-z;3?rOsFWk>7}yMA-*+mt3VGir
z^&v9!z^QVYBul?fV@^;<8Q{|Jl17_}T}N~d8*+BSw$xY$f_cw^kX1X*Ce?T!f{vxQ
zI;-AQ8O4UayrW=q&04}H8;t0m-b;$uL^zS-?V{|j;0DpEWH@%fav6RVz70*Zkm1y~
z%kWF^#p*bmIH?T33}2omyu|)cP$?Hw`uFyp5-yk)MX6jx-;s##NL8Shby9jZ+`h)n
zQ-l{jMb391R^lh$6giRM#7_tgev(V6$xzBSK}n{$1W(8wk?GhS@@r<7+elDoNCn6H
zrU}-M=jRsdQnJ*RyoAr2xI6DmPCA`SPJDTKdu4cesEd-M+9lD~1u++#
zATw!Sd+@>Y9(<60W6d3RtO=imKFEU>@DrhJfe`XeG4!g+WQ16|Rz`6cpk3b8q!
z=bP+pZ}(2C>l^aVX|`MPO0_}b^f~2TlRi(MVee~9tz1_1*yIHjle=qYPxDTxbm=mu
z>&y9>mZ{#t!eaV{>J(sD4-7E|S;(n~L*NPEqC$@y<3}u7(6$d~F}}0c6H58wiU<#Q7Qjihke=>><@6DuF~v
zF{VrSLU|FX6+#t}G{^pb(Iuo3YUbY)x{%P|oSvY47)Y=S%|%mTj;U_e{7mRDl1rr7sNk&1N=sOhq#i-3
z|4EP%Koz1%HMB-aXI|*Dlh$Z;RBKe!Jou#520G(oKYZ~dTJ`+`Mz(WSgE!fZ)qY;B
z*i~#MZ&BU^C!0f@eE?tb*UQIKN>X?lzq4a2jG5
zK@6*LUk0~D!e+w>79%*_fnpql>pGlWF@kdr=)E0hS8PU%>j2+`_fnDaX2i1z+DldV
zQ9R^h3u3Djrz5Np&~*s2OvJxbq`w&|e^uG?B+Gz+fS8
z_XD?T{CvW5l}T+9;=b&VgcENd!;DjWjNtt1aP^AbpW;+r-4jFJPTnX|I+|lgSWMi
z0mK!#7h{oeE`Ae$F7_mspiQv|bFhoSnJ$MOUkPG#vp=COjfgWievUo=<4)R
zp#S_V^KupNkxyS)3W_|3)s1D)biM-Tr`(O5Des~s1~KZPb6H-%SuD%(mGFAh$40C;
z{~0sqUBHx1Us(w(*RUH<);++wm%W2FuwGDm1M(!Fd-6ZX8%}4z>iQNo2`84QMg5@j
zT(%>xr{SCaXX50R8?nlM4^BvVPn?l56X&uFvspODWd}5m&S9sp+2ZV%zu>%;x#Hvy
z70y9P!OB`T=6WsI&z{7-h4qQU>@l9o)7XX37*IpvZUwizm)(ccSkl3B=-ikV)&>po
zpF$hqd(dO}K2CtS9cR}32-<0B*e{m~8UF%&$@vnt8)wc&pm{}ptVzF>5w{bgn;2ahg&S5FRSvnulNj2P!vsKD)
zu8#*NvUqVWQ5AUOahwX{!>KF*UW4;kYOzbE4rj77uupNuN)ygyY2mHxAH0pX^A6t0
zyKs_B5AWp@*fE?V)5rU9a?B*0Br}B%;{2Ftd^&p_C(q2lc}g?!z1UfpnVXGsW9H!8
zn0eSczJM>pzW&9SVHsgR@vtm}_teDj}D`qWDs$qN`PKw#UIp4@P;VTPU
za8ArN_8H%flV489$uDQ}vv6X}IeZ7c(Qz(Lj5&{=&;H0S;1}|X_{I1N%`WIA?!ipp
zW&CoCzQ5pCU@dMRzmi|Y_w%dyHT+tB9Y4Si^6U8_{!M-Zl;jTcZ=nsm#c$@f@NeTh
zqI3DJ{5F0&{|>){-^uUd-{p7nd-%QlK7K#{9)Ey;pZ|bA$RFZAh@}S`m3w!
zjq67?u2{EZ@yOcEBO6DSh@hSAGtA?ID;F=^G?LW4W#c*#-tP;F_yW~+8I%^D!iNG3
zWy-)%4kSmyM(@+qiJ+$l`Tt7G=e3!h7n%#alMZ4l!F|JbopzyAKC*FL<>sa8b!$iHv3VQ4rEFflafIGAOV@4LD4r{}3inMbwv+oN
z(046aMpi6azL`9%T_GY6*i?7aD^D5A>W)Ba<=S$-2!87gI5)x+;C@uEh)C1CNdC7H(E`1JW%ZY27h@
znrgr|7A@SUnpo+RCiZD2DnTYHLHdAWe>7O2RyBZx1_Zw9
z0g;{@VW2}b87`A$m&pk(H9^&sN?+!bp
zL`3NK)zQ<}UEi&m0jC)WG1kg-^!wUXLx_1OF=ow>g8z_=fAY}A6>FENh7rZEh&_FH
z@rsR$x2##ZdSrX*@RAj%(wkOnQV)yzraGn4mwrmzgZdO1JR8Ahi{NRqV`Nh;1azS&
zG0j3H)rAVx7Nfit$9*n=&n0p`M_?Th*0hnB2hE5QenbhsEJ|^IAZ=O9ThekAR2p7a
zk8Iks0$x@q!B)t@q!lYusd&+#QEIEAaRfrD)kt-6n}{`iTf8t*x5Y|pn_MiXp|nnmdr+SygHK2B(?#&K(_^&LY+Ao?F^De+1nwpi
z$M5qA^!#X~!iD&gFH2@hGN)341gb$(g=vHY)5w;6DXa^qh}4OBRr+$`cH)O{6!<8P
zal7m&2o$L95L`G=-C4PC^=1Vdzfy>RDv;V3LSP-~apvaBiQDC9l>jxd49Uzc8lz8P
zntp|8`V|iCPvFr0POOz+^h2vX*?0;)WfIr8A9m7c%7npLtGHJ}X5x^UPRE_35EbOJ
zpX2^4&OKE@()umnpJEKesXt{LXTC|eCqvTVIOi<`_iUbvy8&~Q91=!8?uFcfyN%m$
zhva~JF)zj4!@amy0SgWZA%uH9Z^XSBash`_(209D@5Oy0pNRVapMv{TNCF&Ez$v(&
z%1_08E}xJ4B96V+==qo8zMQYXeHD6rjvjv_?wirmbM*6P;*LHZ_nrJ3xT9BRD)i`k
zale*h4+{0%xZj99#T>o&w~$kubqr!*-39U+6Ot}{Q#cv)QO=J86;*;-Oi)V_)KZfl
z#D5v&gljP>haZs|6RAleHE8z37oCmV$ACds&%g|(U$${%6?3g#xOpwghEk@HEJm#G
zN$38_?{pSr)K0c!NRygXBOBMUiZu&2u41)oR;^jZ+GNOya73aKDN`IO#7p66os9N+
zr?6b-{hl1}N0qiZf4$W7JHS(5()jBLQzOzfK%UWb-me?Os3%=Og8u=}J{Sm&j@MRWw
z=D}uz|14n8iW!rR$gkKy*)V3YVfD-fsnLZoKn_MvHjJJMfpZsDX9r7iW++AOEy%qEIhcj`PJx*XBUvt@lC`{Q>%)kF^rvt|
zURR#)!hTG)3t_W#p{RO{IBF}@S;)=XJhzJB$2{Tp}Ne
z`zNryM>bGZT#@_f5&4|b!806rM}%XMyCW}0ULg$REAp^-BEI+~LI9u0r!a3*ILc$>
zeVD(&mKXJj+@?i7j{Jt+DfI|p@krEFKp&4h6nO~HcO#EPo`X-FfD+^`Vf&j1BV#V-
z7ke$ll^c0gvEdQQxkudJ!#0fWVuRqb{-f{1>@C!j)>-TXOj((uHc_
zzj{U9l0%NB(uuL51)>f|;d1GYF5}Vpjrs(}_o6;0gpIqL%=T5doGjdEc)aDx@UO0G
ziQz>nMSI0Fi{O!`aLX4qg@Z(XM{fxi_35}GuTwck-jv^96Qv{9NtQFFj!=mnqq*@D
zFDh;MIhb)$>;28Ir$TvzO{}XcSm#KOp0-`_qcUs*0W79n`jd39vfTjV*SSuXY*GYhp
z`y($>j}ti}d%*ikk>3%Ip>jnDUP#}0fbBPt+ar%gd1GWbWECUk9P_9Z5EQ+zDA8zZ
zk3Qk@9?TOka({}}5wB?{L8|&B@c%Tp=U-1C-YUnBgZh4Pk(8TwjnfXu8U0O)T%wW3
z61~IaZQ(A*N74Xd5b{R6?j^)2`hzd687C_Zls)9D(P@AEx0AN}SQL>*W7biY$j?sT
zprhQs`~_!8e#I5JeS8m*TO&^(&(EK%eUBe13Z+ogV~^$)QCGk(h}#ows5cgrU_yx{
zy25SLrSyQJMam9B3L$AQUi!4I7`r03#;ggJ$X>jhEKTw^Hr-bVm4l2M_v$bXfd(&1Fe8BzeZ7Flvk3pWY+{gCyg(`kBBAm
zh2V2ai-9}X<=+$;(kHdmlEHi
zcC>@1m9YkmT;73sJt}#^PAMpqgA^yy12ii6NT>&6WS6Ma73Vf_TQp62V!U-s=8$5v
zq{KYRhf<>zS@VI&rIG6p?i2J+4@GG~HB-J4m*5O&Cv=Uj*BI0N
zMPTzwxkjK}(X7R*@JBtyUyuTnT7>Nh$X!t>>R!|exmUorkJ?qVCyu;KzVWW4ro534
z^gg&NdBhCGCxl6K91MC!%i}npe?jjn)9)j~0~e?U`2FxtHquB@>Ll43K
z`QRkMzZ5Ko8XY#FW+sG1c|09?COUVO;P5rAqBVlc#i%+a+(}a13vZ&N$9RvvinbSh
z`PZH&%Tu%!e*IXZbyp4%4KKzMqRz!iawhqRk2prB5CI>E`5f)^@4h9-VgGJaW5dVf
zov%4wh=(6LUWmKEri>Rx!M?OcoY>ySg#EvGt)@hxef!u1(UN|1vQ{wG?}_iRd9L@B
z(H8M}^yeq7GZxHZJ5Gql7R5k`FEe3ohB)BIB0jPyvymsnkO*)kzKpex<%pyEo3XyX
z&U<42{B``xe*U?dK|LN_;M1RoC(%LfWzb8-ugKq{l#IgS^Z(=$ZOPI2qP`NJA_dXA
zQF@9?nj+6o8PJS`z#=i!SJ`E}qVYw>nXO6enIP53>jqJ2F){isr2l>*;OpD}rEt*^
z*L6xdHfVs!myI6E7(wZeWd}figS8;}QfP^n9s%gUJ&zIBT`%61TjGp$BK$vTr*SB7
zJr?;r)eMqxX!a^zHzAKib3FzPj251vd8zR(#4$>~I?<23c7)VEj;+X~VSO%5;UZ&8
zJq?a#tpCWF~c}+e~I?T@zI;?EAj{Nl;cZSy^8j;
ziZ4*~E3bI{_)4$;tOuMc`x32m#ks#|Suvi0(oK+OV%*_-uzeX;(r9YLYi>06(RL1e
zV-$}-at0>ja}Me=GRS@O6>YBx@hKioj3;q6esnC#+thKP|0}?+s_)2mR8Ehjr|^vz
zqhpSk11w5>szja$DEdL=QtEWH9Yw+7DOy0(%u9LTh&r8mhCPmofl7+_Rv|y92BF>!AyK5wv#q;I|zs`&VI|`)d4luxr_^
zSns|aKhhY!2ig_Xj_$<>M;h}}VFf)~nG;cAORk&AWyT<9fG
zDAEHaLt4SIX0QpIllW$1Gzw@&XrbLfl>R<)9i?UTSqQoi_34Vzh@Pa?5~no95x>Tk
z7P(LiR2GDl{F60Ha)Ga76rG9Yq}w$1R{<LUH91W1b3qn7AJr~+u0
zkRk1BGWqxwiyB5{B41Q{sKn%}0W^UI7L1g<8`NaUzgO=UaYTJEtPnjCxnnesjPm4|
zr;}Uc+LM-0U&i`P;PqpjqVpRu`1tKeaXxWgFc$7hEMsNUFY%h-^mS&-61*!`A=j)FgAUCod0COg
z|GD&y3Ap+b?22`~vc+fxX~-*Xa;^TVu>+MgbcIG?hB3`M2@urb$g3x$p9Vjl3h1ah
z{^fONyjf;37da~ZXjL^+1&d2)=S^YC%WQi%$6WBk>tF-e{9dh)c$E6IDKXSAXb
zB$VQ)vX8pU&y$o5ojyamgU*H4-Fc8x_CP|p9P-Fs?8~_dQp&Z^#5*YV3VjpWem7!o
z(6_K(=Voa9-35u|2kdv)hw}&aDtis5X#NqqU)}(hw}{wOi0vZu03`RMBG${$Ph5^)
z8e-pve&8znv_cY+kjk|PcRhX@=oKD9AMs86G)VCV*l)xy2`L{&Px&qUl7PWYuoD()
z;BgmvynFCV2R=VQ|N1-p@`2ay(Hs5&KNIkK6@BMx_+gfLf1
z9XU7PK0%r+%|M9R(gJCzwpQDuoh)saR^#le?b6xOdH8bR<=TzXe(7LtU2a$IpmbQe
zHFr+#a_CM^SFIQKMdD7{+S66j7?&gorN~!_d!M+|mkFTzE&SK3Ho#sWAoJ*lnS4v68y053y6j8>?VS<
z?@$b|%Xjkg4e32`r#K%H@mO$*4(B!zk4->q0`h{emy5fX?(BJCHw&L;ft#7q#V$j_
zXQQ}hiF>kq7wH}+J9|gqb0=_9vmCsq!H|rLTArPjy%M#2JiT_3HK7fTTFx=zOSA*FT
z@Vz;q9zq*hq0;5Bm_r@H9y}@B13ohwf1CZSOpcRk&+_lB_#7wI2Y4%>kHjKlOQ*pV
zr;z>jy6C;Xx2&OMN4=J&b&i-48=P0CgVBO3%xU6dao5sUv&78PS1k3GTF4da+;Ck(
zTl$i3^
zkixNV(h1=7ywN}ZwbK2m7ZxejimJvHW9oD(vMr$V#qB-cmaKCd>G{<0KFbl9$NpnK
z`Vu>y=Hof5@rycNGvxCD7a7CWM!VPHiO}fI@DA)FbRzC-N()$(^BKnTIv=kXP9|!t
z;LIUq`gD46?sw_z;os`9|KazGtGiIoRh;H(;}72cJ+PxOmI!jGax;bs1;K>x^W}yk0>3{yK`e6R^X{|Thp-a0q@d;KmSj)IvX$=arOPa1(PoU!>6HAAufe@-QmR$j#;M&+$a
z52^@O$#*m-m?f|3T7Q)BoJv=m+hQK51^z>-d|z~#HtYSWCtFiuYQ5T4rO5A9Bx)0)
z?z-wR=gB~3y$eR~y>K=B8>HSfQ24N2Ss}{?vPl3hdPCOTvIc;GDO&+3h0Oz*x7k?!
z_%;T`Zv=n)TiM9{gxZgo{ZF;9`bO%5(icAesf5grxco_>@+vfbdZ#B0ehYsu^nJqK
z!(nWq9q%Gx)Of=#wIkeMykTLyq1v&Aw|r058&(;0cr)!8z&1;nmE@#NVT198%ZxW%
zW4vK*ykUp&hCRj`t~K7U*LcGljW@i>c*9QP4cF14QLHS`s_+q`4olj$KYUb{2e9!X
z?BQ}_4+o7s+-U6K3S$q~8+*9Yc*8zy3Vf3m<>)EZwm!FQnX#0)Th-}SasqbhYCp%1i
zx2a!e>Q@;#Sr|E4xFze|l0K{>e2W!*86!{HNAZqA>5YI(1FdK*rEH0&(U?YHv_nzK
zMg-O&Wc?vpdXQy@G3d~!_!4~-XS#S&*#a6sXBvMy&{OZgVupSXf*{mylHaI*OWQlC)
zAChJMO8#p8`~0{0ar{5#XY-l-_55P~W{xa_bSVk(vEp(2!}2Y)9di7k;#p!26_OB#
z9lkI5in*^)er!~YLc^3~EI
z$M^DGSV^p+v)9sJY1y#E#+sx{NwT*kiB&OM9J9sw^#yBEUBghpP7`5Etd<;KQXXVj
z-fTXiWqkNzj4m5C}+0O
z^lWs@MpHXwX?M!hPPuG{V>(>t2g#>J;REL>eaAPczmju>ezu&;O8kw0oVy4%TRg>W
zxVvyexE;9NxCe3jaHF_!+|Q|N##GO^S57#5%HjPEA8`1B!xtPrPPmKpUniEfAb;MA
zB)yZJ&Joq+exA`23@6-{Q+l#tzrzO{z94NtxFG#TI38>C$kdwoul#VxjU``g6nW|O
zO#EeB*Cf?{BCOmszNZYs7=bCn`2COKKf8C=cp0W2dU&J^-`zLzKpB4Y=)(_{;iXaK
zc?C-|CGvYjJSN1sBnay5Kntmzux@F@e7zc(peL-=4x+DXdqVNLWmU-OdE8rd&I%>Y
zjw;vU0&Y!pY(}5DgNjx^&rvsSo&$`%GbzhEFcI%k^?Dtg~59TPmZp6Q`ZlH9QsZ
zpqXSgd~w*){KyVKm6nsX-Z8O^a!Ah2Tuan@>N`07%#8_l-Y;R3>k^#hO}rx}cz?f~
zon*D&zzYAFe7bm~=*2x>eA}}xrzZ9cxSQ&e4(S+9;TUrZpqUhi00}Wl*VmMV@Hb|M@N>y_%UbioWFU49&Rm%h#T9U6c5z`l>Uv
z;yaCccM_+z$UcSiX)(9ZA2H^!wwOqbN@%u?la^CgPAGKc+iXZSVB`vTz<8DgrFEz(HPqkul#=NA6U{1TkQp5`L+ggEQiv0jPVn4xd*b9!0t&L->v$h{Xo149=v9SzE?RIRN>D{0j
drIj6^zs+sSdRbkX)GnNQ{j1olt1Xv={{ZM+FH-;j
literal 0
HcmV?d00001
diff --git a/android/app/src/main/assets/fonts/Lexend.ttf b/android/app/src/main/assets/fonts/Lexend.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..243832874b196ef3c098d8ff3db2372728f3f934
GIT binary patch
literal 64668
zcmd?S2Vh*q(Ez-=?{p`fq?1n9RIYcGE4r#v?~*O6*m9MtMyy)qRHXPe_a-4M*fTUZykgr$RziMVOi1|2p5a;TM?8PS=Y;(86+-fU
zJ2)H&joF(|CWLN*R+cP1Vs!n?P1Q#eQt&Pz@);{fH?0RaJi8C-liZbSwyx-|eRmTf
zrB4!a`p#9$N0%iYKdAxkeFr7B3IMq$GYPq78sJaXuiJFwZAp8{|qQzd;Cllq`j(=0m}rCjOJbcNv>O&n7ug>okVg
z_lZ}!h=eFoB=g^ugd7K7rltV{g9BYK=0dwp#6fl&J;_Swd3c`{vVCx|5`py+FMKZh
zp&~p*a@Y-IjO`&oUj7cB|4wSz3b;-#BLGW6y|2j_eVz1Xl@9#Oc9IZ#73$0(W5NXQnnY$`9#Ufd8ARc
z1p41f+=nW{32^UcP{#l?!LkiXGnA>{FZ5L6W2XXq7{;h4-DE#6#bkf#&rqI)?_s!p
zNApr|Q$^}6R!4ftw`8htG3mxspmjBFvm
zCzmFo7pz3jLZpaw!JJ8jz6-qa4Jj5%h)?E)QV6(T0p&z!>j+Xr$B33KCVu)EnZukU
z%+&CG4KV}G9_E8S&7_fakSOyIGX*#;BLO->s_1NzpeI2aE1>;3#6i1Bl#Y@b+7F+9
zYQ3zs*dn48)FcKx5fcnVOLeg9O2tBc5B!S%y$k*2lMuhkVGIk2kNjOMG)44S_`MP0
zq9?!@t|Jy0LkW~1S(EydkW_%426#eYj6{WHaJ>V*uLT;fg+4C@{4XV?K<^J)S>+`74Dy|fK*4sgFOa3AFRRRg&-lztsbF6hBF&JdKSd6q
zj6zw&I`%9$Y+E~C=2O1zHAo+Z3|Pj0OsQx5_Y