From 8eda892b68c25192be364a63eaf5acbe78cbc99e Mon Sep 17 00:00:00 2001 From: edde746 <86283021+edde746@users.noreply.github.com> Date: Thu, 26 Feb 2026 11:47:55 +0100 Subject: [PATCH] feat: themed splash screen with status messages --- .../kotlin/com/edde746/plezy/MainActivity.kt | 59 ++++++++++++++++ .../drawable-hdpi/ic_launcher_foreground.png | Bin 5248 -> 0 bytes .../drawable-mdpi/ic_launcher_foreground.png | Bin 3220 -> 0 bytes .../drawable-xhdpi/ic_launcher_foreground.png | Bin 7314 -> 0 bytes .../ic_launcher_foreground.png | Bin 12176 -> 0 bytes .../ic_launcher_foreground.png | Bin 17602 -> 0 bytes .../res/drawable/ic_launcher_foreground.xml | 23 +++++++ .../res/drawable/ic_launcher_monochrome.xml | 12 ++++ .../app/src/main/res/drawable/splash_icon.xml | 3 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 12 +--- .../mipmap-hdpi/ic_launcher_monochrome.png | Bin 1811 -> 0 bytes .../mipmap-mdpi/ic_launcher_monochrome.png | Bin 1131 -> 0 bytes .../mipmap-xhdpi/ic_launcher_monochrome.png | Bin 2527 -> 0 bytes .../mipmap-xxhdpi/ic_launcher_monochrome.png | Bin 4290 -> 0 bytes .../mipmap-xxxhdpi/ic_launcher_monochrome.png | Bin 6227 -> 0 bytes .../src/main/res/values-night-v31/styles.xml | 39 +++++++++++ .../app/src/main/res/values-night/colors.xml | 4 ++ .../app/src/main/res/values-night/styles.xml | 25 ++++++- .../app/src/main/res/values-v31/styles.xml | 39 +++++++++++ android/app/src/main/res/values/colors.xml | 4 ++ android/app/src/main/res/values/styles.xml | 25 ++++++- assets/plezy_adaptive_foreground.svg | 1 + assets/plezy_android_foreground.png | Bin 60509 -> 0 bytes assets/plezy_monochrome.png | Bin 21736 -> 0 bytes lib/i18n/de.i18n.json | 7 +- lib/i18n/en.i18n.json | 7 +- lib/i18n/es.i18n.json | 7 +- lib/i18n/fr.i18n.json | 7 +- lib/i18n/it.i18n.json | 7 +- lib/i18n/ko.i18n.json | 7 +- lib/i18n/nl.i18n.json | 7 +- lib/i18n/strings_de.g.dart | 10 +++ lib/i18n/strings_en.g.dart | 20 ++++++ lib/i18n/strings_es.g.dart | 10 +++ lib/i18n/strings_fr.g.dart | 10 +++ lib/i18n/strings_it.g.dart | 10 +++ lib/i18n/strings_ko.g.dart | 10 +++ lib/i18n/strings_nl.g.dart | 10 +++ lib/i18n/strings_sv.g.dart | 10 +++ lib/i18n/strings_zh.g.dart | 10 +++ lib/i18n/sv.i18n.json | 7 +- lib/i18n/zh.i18n.json | 7 +- lib/main.dart | 64 ++++++++++++++---- lib/providers/theme_provider.dart | 17 +++++ lib/screens/auth_screen.dart | 3 +- lib/utils/navigation_transitions.dart | 12 ++++ pubspec.lock | 32 --------- pubspec.yaml | 16 +---- 48 files changed, 472 insertions(+), 81 deletions(-) delete mode 100644 android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png delete mode 100644 android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png delete mode 100644 android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png delete mode 100644 android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png delete mode 100644 android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/drawable/ic_launcher_foreground.xml create mode 100644 android/app/src/main/res/drawable/ic_launcher_monochrome.xml create mode 100644 android/app/src/main/res/drawable/splash_icon.xml delete mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.png delete mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.png delete mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.png delete mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.png delete mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.png create mode 100644 android/app/src/main/res/values-night-v31/styles.xml create mode 100644 android/app/src/main/res/values-v31/styles.xml create mode 100644 assets/plezy_adaptive_foreground.svg delete mode 100644 assets/plezy_android_foreground.png delete mode 100644 assets/plezy_monochrome.png create mode 100644 lib/utils/navigation_transitions.dart diff --git a/android/app/src/main/kotlin/com/edde746/plezy/MainActivity.kt b/android/app/src/main/kotlin/com/edde746/plezy/MainActivity.kt index c23b5ff7..4ef3e3b2 100644 --- a/android/app/src/main/kotlin/com/edde746/plezy/MainActivity.kt +++ b/android/app/src/main/kotlin/com/edde746/plezy/MainActivity.kt @@ -26,12 +26,36 @@ class MainActivity : FlutterActivity() { private val PIP_CHANNEL = "app.plezy/pip" private val EXTERNAL_PLAYER_CHANNEL = "app.plezy/external_player" + private val THEME_CHANNEL = "app.plezy/theme" private var watchNextPlugin: WatchNextPlugin? = null private var cachedFlutterView: android.view.View? = null override fun onCreate(savedInstanceState: Bundle?) { + // Apply persisted theme color to the window background before anything + // else renders. This prevents a white flash between the native splash + // screen and Flutter's first frame for non-default themes (e.g. OLED). + val prefs = getSharedPreferences("plezy_prefs", Context.MODE_PRIVATE) + val savedTheme = prefs.getString("splash_theme", null) + if (savedTheme != null) { + val color = when (savedTheme) { + "oled" -> android.graphics.Color.BLACK + "dark" -> android.graphics.Color.parseColor("#0E0F12") + "light" -> android.graphics.Color.parseColor("#F7F7F8") + else -> null + } + if (color != null) { + window.decorView.setBackgroundColor(color) + } + } + super.onCreate(savedInstanceState) + // Disable the Android splash screen fade-out animation to avoid + // a flicker before Flutter draws its first frame. + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { + splashScreen.setOnExitAnimationListener { splashScreenView -> splashScreenView.remove() } + } + // Disable Android's default focus highlight ring that appears when using // D-pad navigation so the Flutter UI can render its own focus state. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { @@ -153,6 +177,41 @@ class MainActivity : FlutterActivity() { } } + // Splash screen theme: persist user's chosen theme for next launch (API 31+) + MethodChannel(flutterEngine.dartExecutor.binaryMessenger, THEME_CHANNEL).setMethodCallHandler { call, result -> + when (call.method) { + "setSplashTheme" -> { + val mode = call.argument("mode") + + // Persist for next cold start & update window background now + getSharedPreferences("plezy_prefs", Context.MODE_PRIVATE) + .edit().putString("splash_theme", mode).apply() + val color = when (mode) { + "oled" -> android.graphics.Color.BLACK + "dark" -> android.graphics.Color.parseColor("#0E0F12") + "light" -> android.graphics.Color.parseColor("#F7F7F8") + else -> null + } + if (color != null) { + window.decorView.setBackgroundColor(color) + } + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { + val themeId = when (mode) { + "dark" -> R.style.SplashTheme_Dark + "oled" -> R.style.SplashTheme_Oled + "light" -> R.style.SplashTheme_Light + "system" -> android.content.res.Resources.ID_NULL + else -> android.content.res.Resources.ID_NULL + } + splashScreen.setSplashScreenTheme(themeId) + } + result.success(true) + } + else -> result.notImplemented() + } + } + // Register Watch Next plugin and keep reference for deep link handling watchNextPlugin = WatchNextPlugin() flutterEngine.plugins.add(watchNextPlugin!!) diff --git a/android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png b/android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png deleted file mode 100644 index 2727eef3758f5fea7e4f04ad7d2bf8dd9b7d84a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5248 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 I|Mt_r08rZchX4Qo diff --git a/android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png b/android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png deleted file mode 100644 index 313637563aba08a445af7e9b6ba1a3ecdf8e6fc3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3220 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 W(haYQuakZOl4+^yt5vJmefS@5v?}oc diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png b/android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png deleted file mode 100644 index 4ccdb0b78b603147a6593fb3f71f54699bc01453..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12176 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 diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png b/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png deleted file mode 100644 index cee25601dbfeebb6b493fa1307926234d4f20cc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17602 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 + + + + + + + + + + + + diff --git a/android/app/src/main/res/drawable/ic_launcher_monochrome.xml b/android/app/src/main/res/drawable/ic_launcher_monochrome.xml new file mode 100644 index 00000000..d456d3be --- /dev/null +++ b/android/app/src/main/res/drawable/ic_launcher_monochrome.xml @@ -0,0 +1,12 @@ + + + + + + diff --git a/android/app/src/main/res/drawable/splash_icon.xml b/android/app/src/main/res/drawable/splash_icon.xml new file mode 100644 index 00000000..35edc6c5 --- /dev/null +++ b/android/app/src/main/res/drawable/splash_icon.xml @@ -0,0 +1,3 @@ + + diff --git a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml index 6fee2a96..93f6386e 100644 --- a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +++ b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -1,14 +1,6 @@ - - - - - - + + diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.png deleted file mode 100644 index 823e1e798395385bd5c6f0677b3bbc61337e3b79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1811 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 diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.png deleted file mode 100644 index 6d4c10256292f2f9c3778c52e4f0acefb171a148..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2527 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 diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.png deleted file mode 100644 index 5e610a3cb5682f74d7a82de44f9f13c402e352cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4290 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 ZoAM=y3$U9KYTZ_B7tT4`RoS5b`d^@it + + + + + + + + + diff --git a/android/app/src/main/res/values-night/colors.xml b/android/app/src/main/res/values-night/colors.xml index 229435b0..c2158f1d 100644 --- a/android/app/src/main/res/values-night/colors.xml +++ b/android/app/src/main/res/values-night/colors.xml @@ -1,4 +1,8 @@ #1a1a1a + #0E0F12 + #0E0F12 + #000000 + #F7F7F8 diff --git a/android/app/src/main/res/values-night/styles.xml b/android/app/src/main/res/values-night/styles.xml index f86351da..01337e8d 100644 --- a/android/app/src/main/res/values-night/styles.xml +++ b/android/app/src/main/res/values-night/styles.xml @@ -2,6 +2,7 @@ + + + + + + diff --git a/android/app/src/main/res/values-v31/styles.xml b/android/app/src/main/res/values-v31/styles.xml new file mode 100644 index 00000000..1aa7df0a --- /dev/null +++ b/android/app/src/main/res/values-v31/styles.xml @@ -0,0 +1,39 @@ + + + + + + + + + + diff --git a/android/app/src/main/res/values/colors.xml b/android/app/src/main/res/values/colors.xml index ab983282..a4535a0b 100644 --- a/android/app/src/main/res/values/colors.xml +++ b/android/app/src/main/res/values/colors.xml @@ -1,4 +1,8 @@ #ffffff + #F7F7F8 + #0E0F12 + #000000 + #F7F7F8 \ No newline at end of file diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml index dfada3ae..c927cb19 100644 --- a/android/app/src/main/res/values/styles.xml +++ b/android/app/src/main/res/values/styles.xml @@ -2,6 +2,7 @@ + + + + + + diff --git a/assets/plezy_adaptive_foreground.svg b/assets/plezy_adaptive_foreground.svg new file mode 100644 index 00000000..257f1063 --- /dev/null +++ b/assets/plezy_adaptive_foreground.svg @@ -0,0 +1 @@ + diff --git a/assets/plezy_android_foreground.png b/assets/plezy_android_foreground.png deleted file mode 100644 index 68bda7f95cf8ac389af9dcf1fe711715cfecb5fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60509 zcmeFZcT|(v_CAio9hn(L%vexb#&AbOP(%qBkl;utihzI=sR}A32+|>h;y6ka2@^p; zAQb5>i1ZRrDM64XRjSewY6OBI)bDv;X6|Qh`FwtV|JJ&9t+_7moh0WyXYXe}``OQV zA6?PY68u5r2R=SN!He2BLq5K5lc0aT+sVhrmzgx)2>$rVPTNqIkB@Mak1zN)KE74( zKLxY+_`FW>@l9Xn<5P~|;}gCcUtw?#{2x1Qb+mBcPw*d}dSwv!L%{Q*u7<$W4+jn& z-Fxu(zMJ5~d>3)QT=ngr9rCM6H4c#4WM>Ts3Lg7a^pe8-Bc02qV>hB7ygz&N*iV^v zA})HyzuSG(K=IoC1G3*rmfict?Qq09hbs#eNl7ugMeI*Ms(d7K?6^zttcrr?h;oe@ ztHHn0^+a1%Ms@;Wer<#B+;haJZAq0mWnMO-yqxtNyt4oP*ME25zdP{X9r*7K{C5Zb zy958-f&ZWH!1e48xl(+5k?->RR!C`j%z`XoHBqXs183CUqe(3e#Xj6ou8*ts!Ocn_ z{0BFFO;psX6Cc=9gGO12Q}SD-XaQQ(D6L~d3EQ&`gEg4uJpb$6gUgG$H3;b~zsJ7bgBu$6a*jLV^p&FQq)KshBO0!s zIi5}aC-WAb?%?A)6{3)|E#v8PcQiJ&AHPV`;%yFMAlvL0XYl^s{gm|v4S zUhM$w0~+i@%*(+!?-JR74SiHbv}WBHDyoJreA94{V@BRopIYj8CzU>5zIEl)0q}vz zn4JoIm)oOE&oQMji!+j=(WauVc9Mki)F84RJ1whnW$TCZZ}|9Li+u>*8T@_OOr36x z2z^)-HR{9WeQtkvr#N~7^FD-3YD6p~vrfeSBq_qjm$U)aoTSP7S(IIP%PPaGCA@Br(&ptAU=kzsEUL1uD?>})0hXTmZZcYp`8smRM&oe^t_$(3 zBLQA?1&QcxIjACY;^fH#mjyt$?Cb=~k)PP7i2X#{&wjFBAWw0aqv`1^}8xY>>CR$T9n8!!9GolWv= z8ol+P6Ks0YFVF*=pLZF&)f~0HDmL{cbA_O6?csZ(&b>~YGP+E0Q9I$)RzrtZuJ9Z9 z`m3JJ--{w&R_|knlQvKdj(sLbOS>>uvm~Q=blhWvigJJB36>Hg4?X24TJ#-)VSeY@ z-SL%=;*9=2l8ZK$BaGsbFH6YM~3-{1tKOqT5fG-ubwBxnYwWnMq zPtebK2?rUT6$js%ei_7~=1bnKHtac6D@mK`A9$AX@Xqo+T7emP0QEuiMd9bJu8o0~ zZ=t8V{ul}=(typ^*=SFco)xdNXd3C$)nGke+|OiD0+Kk7oe3Lh_l(8 z?Q|!Pg$&VLB`bDRCY$almWr}_-7bijDq_h}6DmS|w!~XJ=AcHqo!4_pwz;?=dFuoVvQpi|uCB)X&igpw;+@D;{NjD=u z%FUT1vc$Afjaunt@b*8s2)4AOeC)TdnrNfV5K`aIFKClr#=X^r&go$}-WI5dQcd$9 z+vx-k5BOjY-3Q-~tD{Ptn<>zd-q69#(#Om?MLTRUnj#g7D7{Ca{`P70^=ZFOfyG=o z&o2^;mV>ZEWxi@j2eH6xV(aW4>{sD@RDx*NGRBQZ9N`(H!p?Zs5>Ch4G6#@V9 zwbJU@Yc(#&av^U)=~m~fETxCHhAatmXE}@N7PF9 zQ}c1Dg0(Ixd1hp4IKIb)^-LX)iW(~+aUPa^PVY@WBUe=jXXdqwP{eQ0K0>*mJ2=nvlW)Q2VoTDZVlvvj7Zhfn8@0~rtuDte#i zf0;hG`pSMYqj4&}+lEh|Mz$$ro;#L4soq;6s*D{qePR_qrIR+QI^vm;#ymr z0=XTG*7}JvP*-6Xrzpsr!iX*sL)iYjSst2Zm-VKx04(FK|kLBh#bw4#9n>&{8oxHPawVt(% zeGW(3W`@>52%q84CoR)vHWv~qhYNTD6x)32PMJ9ZHG;^B_4y--d^DO|LyI=+x>T8y zaDWy)1qW0#ysDzOrD2`N6Em1`VI`NwINV-(RoGRvq-;BAHH=3g37{I2Sa-_*p6JWE zQ9iIdVg_>RhJXU!iRj9!LYi8y!S8BJe$4m*_H;D8IAh%wB|p2?PplH5A$PVkE-&Q}_JJbDM5dAa1T{J}k! z=$u~<6|l`*Wf@-_$OI=ro6e%@%$J}dc4U)na;7V?tui-_w1pn+-;&W&<{&+M#^i*d z-M>EH2Yyp#Vm@%jHFbLCfO3cVWd&!`!(zOc$vXF0%be#0 zV#cB!Am%G*uQWNwzdmlvXc+bnJmI4xe#PxLIG`{oXb0XQrY57YGXm11$vI(dlR95D z6W?%ZZsxb?i+s^|u#Mi+6;7cOq((Ob921m${~7}bQi3%>)k^YmAxxbKLQkv^aZYCY zip{-v?Ky(zGe~7Ym>hYSHqs(>NBOktVA&Nnh+u>zgZ&oWm~X0a!Q=966?MCu z&ipO}n4{-na!xh|xmt~I(>zC8DkgsL*i3?<=nV9LChvwedWMLMfP8%fciumxYimLu z>se!Wdw;XMVczWq_rUPm*%(|&q!t5PgeQm@|AvC z8&fx(jIZ^M+hLl3;Ycz@N&*vfQT>C`efr$k@^dFAgyHdAs8cFCvx2R)1yR!@5g-C4t#-IMBU3;Ns@lhM^Cf03iA6z!C zhysGwFPV`T7K5`pqm=&WIFeB3C8(O7#cRI>n2h+PsS&N|bqfH`mG0bfA=wzvzr5}P zyvHFda_mj>mbI(h8KFD4UQ?Oliq3Ju%^g0Bh4=>dCpJ0#u};o7K+eiLDrYQssp>XQ zD@A>>;BYShZAH6Cc?5T8%3eNM(=*NP5?-VJww;G9#+%mt-i(Zn6r!8ruxJ7`ec&y0#Kg-gQFf`s?W5^mOb$AUviV(qkW&NTWo-Kq z9|5X!;_25%Bx&}`JAe&ks!=ZkB#U*H)#8yCrwhcEo(qZVKeA@pEXgD;tqyLCslp#T z^&_-5H^UDE#r5wQI6ST%PJACfuC9OXo0~;|suEdNs0_Q5QVyN?AzgB*A#B$Hh)bS| z1V5KYkyPY}vbbY@jUhC`1zx+PL}wC_l|9`O(#j1bof&nb%8k!^1eU_d6##`Q%CUAf zHnUk^8f<3V$3YH})!}5^oe4e!Q6vj2rzX^TRgG7t%Vf?c3(3Lfpa-ABe!o)EH6?>+ zAwXBFY2tcVCa>LCs^fPei~mJ*&2xQ1YZhf@+nQ%H^N%d6<>syCI;>+Zo78W9I6(^)cLq0-EvnGlf@80!qnjf z(A`D6h4?7`3ADup9{kEL9P-&+A{|*bAP9>YA}_w1dngfP6)^ktu1avVF;l+@cH8~iDMn{&2u<<9TXT5|*yM=cg;Yn^ML^s=Rz)q!r1&s;7ca&s zn#6)%bK$MmLG3woMCS zi$w_&?Xis^)kjd)2dFu%dPDlIC!jEBKYbdcWASI{hHpWjB{~-IK)wfA*^s`JZ|2@hsw&N&RApFUf;IHfE-91-DnhToRS7EZW z;Q|ptzp;h~Fd>Bd{yCFDF>8PDF#3HUJE-9lAuHn+UOP7&&Zjo!e8b2|Xg^Mc;O_FZ zi}cM1S31l!?x=sDos+Ql7w}u;fNuG>Ttlz{)+-#tCpUlnO&;fLO63oG@%nX)D=vQ zxoKAjKspPd+tnR13AS*wSX1S*NOQ=%MjfW0*u!$QnQLtf!EMqJ7$$CjYy%i(n&D|x z%v9GWYWWp$&vQGpw(y>Ntq8GHV|D(7GM(q(=4Igo+BlM6IuP<>RLFWJ3z7C zT@XmV4~8<>ZLVY|XErYLzE+$>vq4Z^W?x?A_(+%ZP<(mZg{XbRYo_hq*KboNMU# zjv&#E-C^%SXv#G&ymXHuE2h7nP!IRLeE%<`hx3(ZKEK(4gu8;6A61|-hYwfry_TP? za70N{g$CO0+jZ{05m_(1T8@FjV~(zOzkJgQJ*mzt`|038^5r2eF(2YRuYZGqwpXGu zZ%05|jzztuD-wc%AgjgX<{osp8TlULUC8h}O`CUz(vuid!5p-N0Q&kjQ1D{8#P}d) z+p@mOkIB>5GLVnj?f=e{?tc8J4%Ghso85(%;UW}Ow_Rv2*XG*u|5S+Xo|#QpO76TbIZ>*` ze%i*|m$V+~(&>wI`mWQ35FcSYCBqfW(#6<#1z8NBw+8lj#ZQnf0Ij#U=b(;ccA zf}c9+cj)Kri&%VscFe?H{x`BysRfapuR7al^cJL1)&g<_q|sN9M#n!QhJaf5t~=ZJ zvfaODl9j)#mO&mT2*s4_e8&t-gV#xd*BJ&D zp`(O`LP;Jk3Y!bE*5-5Iz}*c|XZ&vbd9B8fgxL!7SRvJg_mj8h9$I6HjxHv^OAZAYKCL^MMQ<)=HY&OSiV52JI} zo#tJXlOQe^d<1l~NodWFJLoBn_3lrs@#D$&Nfp?~b5m~Ee;xb}{td?9@1W?UQ{{a@gT6H;Nqr=x6-P~X)^yTC`u+(Qq zqoW7jfTOUZJiK@}ABmG3nOq_4L?of4Xco&0nzF6P%_M6EJ1*0|Kvb7p>OC_n-OtPZL3b5S1D;|r<0>hOe?Tt3z z>_j?DaeDcWA26!Vcvb$fLP+QFj@72kzI-DM_D=Qo>k|M#y&gEx&_vxuAoCd;dtf=$ z;P+B|7VJH^?IXvb`jh)T423e@=jD_NV}4y&N|q{Bxr+5%_Sz0DK#f2dZ$&KJV{yp3 zL-ojmkcMFn6g*Ijr(^DWc*JIIxOT^Da)^`aZRwB9@9gZn^WrNnj>!6<80c6d2PwmQ zse&2l^CK>B!7Cy|*>h{163JLXQ$y0XgT5D8QF_n@ZHg0#ws ztXE!Wyb`A=8BGxiP{%2sP}a%Fm>;!*&$#^WVEdv(v;B*=pf-FV!Wa-zwK}y*YUakyNf~4XMx_aawvDNX!dVmQ2QRd0)Y$x( zQ%gwoPX|AI&RVNx!@8h|Iux8M?}B%;(v@C-lILz^^km}Dsbip99IJD8_5sqPj_0Cu zR;4dobCVEI6_Y5|5EutCZwn@90Rpf4>5o5vo^P!l>{{m&#cRv5 z`@$h{u#-G-%-{K0y?gHIA`2YhB1buT95lFc182YCdmX=sd<8IH-@2-H56j$JiOkh_ z5HWN^#RlwrjRIFraDGh zLp%uV;I;|#Xd=cJkaLI*VSp^4Odm7yS&)KAS8x^(MFHjz7tSo+jJq^8_mF0Sud@SC zP)>`QRM%f`*$b)`K06N)09LH-sTdzy5mZ?YwRWe_5H)}H?lzqqb6y7I0KX`pMa$;< zyB|O1hIRm$)Vly+atRN>^7vO$WB!w2ahqnTJN;&mtaQp44ouVey>H}sG2g(Y@eYjV zyA$sbS%GRUPFT-7mC2Isn^$qzjp7%!(BGcz zQ&dG(Oq!AND5I{Uv|*VKc;S3$2)HgolcBth{2k)*VGZd}zIFGK{!{8z9alD`QY#XN zVc{(E*=`5Ep5NZt(_3w@p2lHdKOu?*nAR(raog#LwY8+=DInQEU^xtwC5U7JcE1Vd zt@%f|p!S10hmM92fx-GS{wGzC1Vxo5{Nst3#)@e$wcCYa7)(Wa)W9Jfr$R0OHh`YeGDFU`6i5I9(!pl;Np#9b4dwF2qw}Vq78Cd z&SN=F>OY6GJ^&oPY9YD$l|;P#m&CpP6GDuyNXvR7q%a(Jh}is2EBMJaMNTL_+;KGG z(ZugUR`z)vdS~a%$cLHgYzd0>k91ErtXt>OD?t#mUGIagf732vDn@q};AH3D<>w0S zQQ!@Qje$mBcFzD09HwR7V}^oal-&P1nE#uu+2WaHoM<*Z8!AG35fB+_%ob#k`XL#g2Bvd5 zp#Bh^&Nw+@Idvnu9siiWAXj@xoQ8jzzd+^xYi3l9@+pntNptm()nRvQkg-o8q2Muy z5`bN>&;pv#1*FAXbBJ|49Y_auY}J}5{r;i?h{yeeg377JNt+V>idAy$6lhpLt78Fx z2DDV3pfP<5YMK_ulBphTRim#d1?s0qjWu+bJwL%Jz#;_LA{{MGFKB^yUVBPUY?~Q* z6(A>+pvR@039y!6Az43yo31+NHR68<>UqrUApCXew)-I#G}W)(&Y}>j)Kgq!_LYoH zua;kA8CU;^axGPmZTOJF_v4$xu9+N!l_AjW;C8}X7_%qTnhlgYU9HJ5QQ_l&qy(d( z_7i=>9N=afXz*0K|33*|^N`wVEfnN0HA$cNlF%lhpUeQc`~XS%YmgXZ!7Y^6rqCjM-tf)64f+*$Vx`HnnQxBv1_U^09i zC=iUu6&XQR>>wsBd#S;f+?O3i1R7|hy!6^;MVQHM-Wl+T^;W-#2 z!5s*Ilj<3o3I?Xg*a$G;?gev3yezUp7{SEZN81^3hfEQAX-tDqQkblg8?J?KAYJqq#A(61q!tb9sq_xIH?ym?LVY2=^5 z3^O-C4V2CNp-|4I8eUE{@uH;#44%I(n8=#CRsi*&2=eCR2KJ_oY zl;Fb=p!haV+`**f>}dhaV!Y6LLR}vXqI>;u5BfPsZmCFscJhLtq-PHkS;QLBSxHd2 zZ0E5|A4nsA{RA%Gxz+rHv~(aU$$f*vdR_zQmR)86#Gb$8bnLcyWm4S+D8V@8TMMtC zz4$}YIR@Hr5ir-ko^%bUS*}C5MAm=m?8Fhg69s-t_zyE!f(~?=F(?QlQ!ashfSw&} znKS6iLZ~mNc)+aqJg*qChClZW6a|{gxrPv@%9a8>s^gUtpdG)QvXh&$5qXrhk? z+J^s3DZ4HMAj>nB5dS?xCvREt&+w(DmJZFMnuCg==^xsMfp)yJs^scD^n zzSE%7x&ld=b0+?qPRslBq-MOXKXw8>AR2xX)N&`#mUr_GXbq7D80y z2~o`N3zkZ(MZHCKXbas@hc zs%QVGF2t3ue+TcTK+etc`uSOr={>~5zLxyn>ZUnR;6wOFg*6w@;%;{SYvZ{3J4p2$ zT{$_W($h%7;<_FRZ7M+vDq<^2)( z;6UQ<-l+$kHIV2X?=n*7NAsWu{|VHtmpgTp(tpxN|CrqWeKUw)NHw>f(2vMQzm-?F z#iSp8bY(fWg{1fqWYP)gf>w|!5mqW%;R()K>W|*j zZSWt$H#9_ctJTfd{j=Eh?1o_OLsR^Rr(>(TO;m4R&%^TC&$JQ5V_ukhfE*H$zh?qa zT0jvZG{wiV4;)|%rvMBkcNR`y>4B81y7<7bak-RFHEjrmkBESxo$ppzJQ&ifnc zH&I}Rn?fXbG0@ljRql)sq7Omb;4cG&;B5nsWeHG77B%&kqZw1T=uJS%0_XAy^yCuW z(2hpWKBVP??Z^X9LcBGur*!h#>dYS+6R`6@NOipJWnRJ)WqPjZpEVL-vUO=x=?f5GGKtU z;kCDXG#Kvs&zZCLPg2`o2LObpDWP>)~A*+Um!3e#;_&n`$~v-qxww7Ba5ZO_#Mym@K%WeL z4%74MQuV(vIHGagGI~&f^O0oucsyo%q5`Cp>FoNRWz%#O6;rh@`P017 z{3^Gxw`ieo0Zz&Aa_|E$YKTT_cq=0O5(OzvkvM=53MVZu=i=W2m47GDR}bZw)Q>p< zr4~?ld06(_Hqk!T3v`>V-WvNB(3zO+Il6zq>7;shS+&~$YHbcvY9dpX(ju3l4dsFY z6P1FB5Xc*Cz}93H#GnUZxyt%vG5uDAK3RL~B+47fJ3XiH6KK;8@!B8EIGIQiS^|Ff znW0gzS1V(_+(r&e`d@c#Lz&8Y@ZfI`8}&o_yGbq%SWh`r^;37EGHTOp#)=x`*Z2`x zO}m?YhElnfSGn4wicGY<{DDA8KT^&k7jT zoN;~8TH9JRRqww09BtKw#hxUEd%3fXeCGStYJ^ml?UeTGWl`Kq2g)Z)g4XII?P^HA zPPoktQqeD1jxSz>IJh5-gFtC<1=YX_mO|zp0bSQq7Z-m>m^=LZpl~!KA8-4j8XoWT z#PI`@N=Phl-$)gRjXco~#nkiGsu!x{4n!tcn0g8g25jU}xAsbl??tp}W4=!Lk0}C) zblFWdD#h6fUkZ=4OF%~?x!5t)&E8srn89V(GP6LhO{~t_q1w-=4cYxnys!ZrD_#(J zSvue-fnGBp!jlA!pI@7IH5KX2&zH_u#Bo>YgBL}O#+kUfVU-~V@=|gfq8TC50ZUp#YCUzd^~iV)DMTRos;29q|p)jL`$O8Dfqm|R*ZV;E?W zx(qHWU|^$3k~f@zKJ1S>ROM8bVnIcmAhKF0ooj}zTT5?TH(6?FBunqu;+ZCJE#Ue_ zR9?`2ip^d`xQ%=tupa|4%&t3|0C?albl%Xm*IjaTk>q)yYBeB;i8;U*16`glxAWsC zR8|XyXwJR2h$|429&L&r6{nuCXbt@GT-e&^l&Xo_hJ47nx7>szYV>!KnNQp6B6!9D zWVq~^AECCRcwpPlFUbV{74{YrI+7>4Fz?RWA#PA2N@%?DQC_5DAV4~U6P5UJDV>`- zpHX`7atOlGWBr#k&3q3tT-7O!K{XV>smgTHPNf%2*pL9aUtpaCuFC-z*1u>PkKwf0 z0Lq>tF1$3oGF+w=axO6ZJ21TDj6^Q)?c)A2&X*0JA$+vemdB-q$0T0|oB}G!&KIVO zur))ZgXGecaRpd~#=yk^$qzFrf4Mkt4Dt*@qgq#`m!I2X(hc#8$^M9iHxKltu`6Ln z-faVn69rh(%I8Ze_k_h;OCZ#Q5n&FvHZLHlRVEAcW)pxu_sXj{1EHGK8jfPfe0ayK z&bbam&S&uAQ^05|LP&ME;^FMWY8m&<#F?IYMd{{onVR zK_K)$!!;=M&u@n$#4KDn3i${tfAyQGfRa2rIn7a)8{(c|24sEN{~o$YGO=n=vhJt1 z&_wF1{2mPa@aVHqDR}_?w{B{~@`{tbEF(BsRPsYs$2DbDFJU$``#f*6{R^P%NYorT zT?@OX!%gvJVha=TojS;`li{1}w>rP@4|;MM)?BRm2p7o1p{NfJvjBoYb=wKt2p~-y zvoQ4+>ENHX6r+Ue7LR3Xa-4^EJ909v98Y}7zC!*dQD$&^z|{%{ zT!2WddpZEOr!_9V(8X~^UI@GN7XL$3vsl^JKKpY&qgtP6hf{&6Wz}1~w}y6m9F}y; z|CksW-3eozpe$P0d0?ffCB8`tIe2z^;Q#5+hs?aN(2!!Y+zw<&9%s`_L<%%LC; z$lgC#K3}G;I2jM_cW~pF+oO9;&yI?o*BMuiF5cD#f$~=u@N1D2C>L}4K^wnAkU{`$ zLa&)1Mbtx2&ack`yGs7mvD45LS-S8GwQ6FPOaI2z}yOw%1daFvkz`} zqiN9P7Zuc^h3(R0Z)$GvRo$&9 z8Uz=A?6vCnQ7?c}3dGBXY~y8EWihV=X1u%{pqd__jQw_&H|P^;{|(OYjVa#;y_QFkJq!s90hGe1yCkD$)uW4J@yLFhA%>=b#VGU;TyhFj(+Xu zY3CGP>dpH+eAJU&LNj)GiAL#FekBWRktfd>r;*l!l@hq*$ff*rQa-M3k59ofp9aT~ z5rN*OZu0Z#v9m&cV!hX7j(3U7W$(#_-Sc^iRVoDl9gOp)i{|h9AbXjO)5V6kb4mm% zdpu&#+~oX{5@c9(I0E~mbOZvv|Ew5Bnuu}8dpvV#NIrS@1XUt211jrJ>OG*7@-Xu0|#W5U3u z|8~T3e~}rPlYD}nw>2RTnp}_1AFdnsO87UPK`oAG)>+H!1Wu5A=@)MxgF+Hwh|K`7 zNCPe<)IU+SQ%pz;Kb;cronHmgb>8FQM?eoJ_U9A&hV_RtdGG%|xFv|(Y`ieP?v5kg zsDJ&~j9eZ5gra*g%5M47qgA}|x!c;Z4CfTxh9}@z2OC*!m1Dgkfp4im2Fo_SWd+^P zOZC0P8I^%=0ZBO%&jS<)#=wS`g*jo>6Z$i|3N=-hUfSJ$CAk_KxfDd`dycHk{1kcR z-7VT~x^R~11;FfQ=T+sSapIq5~}zuA3zNjg$|vnLobyY=sDmcPz=Nb)rI zjM4+@K_$f0-XDSc;sH5=Ir*5YeI8KQw|b|%6gOtCA?Yu^T)i^hKbEji)i`wrQ81u) zzw^`;nd(Oi@SLQ?UBdXS7VuRd#SGaLfmm@_c&LV|TMsO)Ev%7#@F6)LoI zUrmP>(oQ@udQbrIfSRWSs*pyVx{t`^fUOU~N2kA7G=@khDvX4&K2{wz%$r^ZOf0INUasR;b+IHM0Z`P?XvWk zJ(DQW;jfRI#q`_Zs~7*lb+adojuq2#reL0BkM*?NyKCx8SHK7t(h~j{6c_=Hh~D2! zF(k~?=J(w#3zs`1N5jlN*MD5aDIjr@IwUOcl3?!Or7I7nQ=k5}lngF#wrP>&G^7HQ zxT7JvcF_k?qI;Mm0bE@hu1-#C958<&ak`1hVlq=HO422~F+bE|apuERs1J+?d~gt2 z$PvwH?C4ow?KY};BZkoXklwXM&^{0IJ8NnN%YL7J1TZJX6dgTISfUE3Ue&rPH z+>J5*o}uE2U$qzT13@MqNC^S^yjFm*Oh{Cuy6v3C>Wbks^=^L6`X|#}a=POHV+Z|u z@5nV$Y$SZxPbF>~ZE?ay53hkVTupqjPb&@dp(g>iJH@}fXowwUbab+atO1X4CbZ~) z+)r2WZztpe8`Pr-JT=Wac3OPU3Bz^baaMI$2eDilRlQdl8{xh=e&5CaOHHazm0fdg zzRtdl@xF}tg1wbgQA$GfIGVF%)3@*1*5p_rXu&Pa`sXk=G&2b@^Sei<>N?I4eTPw=Pa?v;5au3mG4- z1-Dl8>-vUXlYl09>yWg>0K23(@J7$xW^yH3i&zoSDOHl5wj@DV{WiL7H5PplZUQa7 z68!ZRY@)ZSKmyd_fxe}9_U(aH%i-8P)x9&&h2y+?(0$u23tapGa2ZDtT&e#&$ z^`OFT$~VQwB_foOgBxVu`P3Sc3%KXK966|id_)@3O0+4o#hC2bZaLBryco_jH_--M zeZT$#ygbOm4GqeM<(7Iq-I+c}w;o>f)tXCli(|rSbId3LRZW+&=^?vzy5QAA?T>1g z!gSNXF^ou$=I4)i^oE~%L#{6ST6TZy9P{iM)Io1CxPO_HjT)OB@(CD4bT%1|^!&Ez zi_6VdT)vHd!2~y@8uXLLS3(-yt}0IqhC-ln8D?7YP5@LKCx8Jv#~Ck|v9%IYcyh(F zL&NEwoP>AZYJhj8yIt#48){e@|IzW_wMCSX*3ik&V;${kqHjajCIQ?-S6z4hyOV z=4E>UGbDWFz=t-IZZzVd4wc#OVTV_?Vv;17>?&(v7dq?%*CR(m6&TfPPs6w$Z!L+3 zOn`2bf_&8}=yZnzZe`ega+8iieelDK>Z&cJhp+2=o?;GnGgQZX4E4aV(7`(ffZyhe zxgZ#bftz(r_f8-dM%c^!LYw(-PumTwzY0S(QWA|Jw>$6wcm3lX0JfHc{#sC50y?8B zk}xDby(7r_c#E#5j8qOx*;h%xY1iY(LW~SXE{HyBsprZ;nGPmBk#BmWY$BL_-tOg zk|sHftGs+)_&`F%!P5Ab3p-|vHoeJxIYeDpf!TNg6qtOC43DeR)m$TJD(|#?_2Cup z>^K)%OGOA#4GF6$!|rbwj0$a!@yB+1speV#s(=nMqaorpG!UrbU8 z;PB&t`K_}VwYbafS;G=pq+{=M?YtZJc}w(0IseAElPfoGJSvZbTl}aKu5Ho@ zYAkQSq|0d+L4nxn)Ztz8ul`!wdm!ExwOG(LWVdwE$5H~pmBs{`LuO(~U8f?ZbUUuC zHg{Q76$4fKd@_8uJt8t?^0SQE9s*dEM zoBV|(jO}lDv*nn3#f$s#f)=K$#d@A6D;8t;)d=Dr9h>^&Pk_AIDb zWy7u5t^sQMgOso4IjQDTQo7%5kaMl^y(HoV&WF;ai*3BNkGEy{VnpOBfPLZTpn^LB zp8W2LkQcn-rOO7tgj<835;=e(G999Y-AJ-d?bWDj%da{ZvE}Q#e0(6>QBPJ2=X??2 zYE$8ny!LxxT=(m^)ETnMN|p|0I07}VG+P3uQf0ISTg?0uQp$Y5w1DW^(SbR+ps%hP zGqx6pNC7I0;^5iK{+#~{e7=fix zp95;>^@>4)xZTz zt*X3$Ic{Uj`my~8vlzK<`Q~c+QJ+ex%KYkTcR`b=_?S&CY^75Vj{_4h-0HDtlM{vG6nYcCNRQJfxY>CVnC)6mNspf1r z?tQt+sLc>II`vbGofG9d?(ShZjrHYca#+@ur61>>{;^~7J`%)fzmbuuqRmo|x-F53 zuPH-v&`6!$)2JTMW^Uu$?tq`R$+;k_MGktBN0(Bf^8iKxze3Z(14<-1evO8 zTATR@w}F=fz=I7&)>9>_?5}FKr46fAtt+j#UH&znYfXhC6CQ~zbic!rp?5QED5(Qj zW+S9)u!J?DypPg`CNwluhq?ZJQIvezq|Vh`bQR(8@PTFPtdFqBN1r9}TZ>9>)o3sL zwm5lr*`%K1J^76NFyXwNM?mWOE7czMV!aGm`EIK3V?XX|CE|Ecdes*h#KJQJ7d1V} zitKlw!{{TO%r>6#92j07aO5oRpOWSV&I#B&his}>T)Yj}R}#L}=eV6K*W|3^TXZ_& zOqV-*ADBCB7;;7vmoCO_97{rEoM;;Cl&B@(QXgX7(4rN`P-i-n>I#P-srf{d#!6I zlC6&sa#IfBW5A&y8D}Z0^`Nx$_P%DfK#Em!0(8gH#3dm$A=btG-KR-ElG?!r4f- zPt6{3*f`0+WcJ*PbrBP~OXtvYQw#N*gI;<17^>$4J#ewSIs6=pxl2#YRH6gCXGMru z>lea|6e5u*YQLQ7->@wKWD3l!v(bz4rKycU-fSbal_#nrE5mr1gje!WhO*0699FMw z<~>&rg=w#x)g>1{peARZh#Essl(&=;i>4-^yL)_mu*~ap-wp#^YwcxSEcVeK8k z`E-K`+Q@Ec5R=!faPdEe&sj!RhRj>IiGbH*0M4BI{e966`K(Euv^Rl*A@Kwct`6Hr zC}_2_)SF=QjuI3Et*7*Odhb=I%UF&CCS%L5K2+!&vjXHw;o|AZ_tqJKvkwKTK36f* zv<0-r6Q2+Ui@@^+ok@L(u)2zuD%BVl9$G6BQoY4CYFi6@^Rr{ZejyRUiKClmU2aPf z7;3uJKs)UIA|1JZO+zl|NMhNP>8|u0eE0-#y!fWqQSUt^5t`?YYBeo*6qcF%yjcKV zlff2udo5~oiK$h$p;d8^|71szNJr+YuDJSbuHBvGYv8z4tEW@)S-c^&=Onk z@5Iy4>%Re)|K%m4V`%U`1X1Ztee6`b?zcujEQIC+Xh%>l5oiU1;WS1n)YuMj{byakIt~eH{`EM~+W7j?!aQH6za? z=@Yae<$S_*pM{>cw-o!u<$@+_33SfJ4bzhG5hs?LBr;+rNOvIbY33_G2WI)PY^p-u zdb5h8>ioA^1LC}W2l!r^Kt8*iu2L0GaA31)!^Dw*{EuJ!(KgxrMCO+adXg|zpGgYI zt&qu=2g4>Xo&)9DO2yfTEIc33N!{{oF=!*+tv6~->)PP-fM~6C?SC3A5#fPVL1_lw z&j6L+fd0z8!5P)S{7$T|rA1sD0#Pm;vb%Dxx>g3TJe%h=%^>ZpjC1sYw0K|~irKUn z4;`U`ai+{MAwK+L2#SncQ|#S&?a%c3ro>Fv9*7tXm$`lRmm{oN7^aqL)X`*m(H}KA zRlq*b9ZY16^gk^LbjcgPpoN=VYgoz;_#~>f_@e7#%^}RmO!wI$@G7Ew^x~C~Lb7kr z7Ex}IJ?qsUqBy_2x>RlPGQRw&hv{4*3&Ss>AuxpqXJX>23 zL1+7+3+x@VdhKXO&KqE5+P!-+hFJ7253`uK{(g!Xl={WfVMqmrg9DM)ANMxP7ekur#xIfX zK&mkne<~vO>|4IVo8WrRocuHKk~5@@X$lkOaLvD!JVBF(T$#1RXDHR94( z%(PpIDp_Es)Dvgm^2Lnilnb|2watLZ5g_Bq;k0Ly9`oKR6y=O3o)30X?b~11*6uDNzH2nHrcgR zd@&lc%y1*Jzwig1(5n6kC2^%Xy#u_5>hN)u^hvqn@$;=!hXV|5G_i?a5=z&3=0hKS z=H%PfyT#~ssQN;b?Rai)hc{hsCG-bIg-t4HzwiW$?#S+JU8^&9RF?B;)=BX5olY&~ zh{}Cz!*0KnsDb!H8n~bxcsjNJK@-B&(s#L>aWD!TI!r806p|#<5k_A+6ZNtl#YzUg z^omZCQvJ-Ssi|JMaA37H^y`RPTB|L&FD1bX{Xa7?%}?u>>t#T~HW_u8BzpxTn!lc@+P0`1Nzz%a(+Ggl%+u> zo-f{b`~Rpq@31DbE!^Wc>KPT8j3`Py6OJMvpaV!JGXsKxfPxfhQ5gh5g4EDs86|=w zgH)+fBPAdr1VV`g2)#p)7U`W30)+ItgXi4m-v52%%lGZQ*V=2n?{Ad~|Dm3o7BK$O zDMJ_sjJRJ!*miBX+PMQF_yS>fWOWcUbG+iZmNas0nsA6w{~;g%G zpeKF?W!%K}qkPz`0m*Bkoc&u(HV_eJV%s3uT}Tz_jeja(5iWg+PSd8QzT-ZG?qrVz zag-#4Bqi@W418Mz-mY@|037#BPk<=5fdv~)P<*oXI&rG2qnroE`uCcDpCj7^NCIQh ziX-KU+VuwUr8l4i5n1}?sK|#`!aYupgHd5tf|Nc(SZ2iWAo{$DJ&&%D)=Q0?8i2pD zsjq&wpfgQ8TPN&_-___sd;bi@Tzus4=c4v0W@wl%gA_~6UjC9$|-7nX7 zwE-FA&kb&y9UIx})v?pnwA5xJTAy}nqwc}cU;m;=qk0>4kXdQaEJ=vK(0{dZ#;5R9 zhhIPpklAy;{29ofGAtLok$GKGvm|`il|N^r(WYgWT&XiPI>Hr5+0zTot0&9jLa3ih zx_Nm|Z1(?N@?8|Mn6S@)tUaTdj-`VSzlS^!?x(C7KFD4^fpze_&n0#`-Owqn^>sz$i`8l|i4$pDC zp>Br`p+7={?i(WJO3Lgw$2zcoVZfSpgxSC()itRud_w3>-6Bo4fy|hrbvnP142Xd5 zgSz1Ix&^xlTgw4GirOk7AD;hrB?`Xi=O2)^Jp=?nsSofg@&%O=Cv|BNgXukjJ4pe~ z+|Neqgnz2J_hW=TW+P?S!k=iJ-jj&M>|<5R$$4+=)NtDCK6MHRb3v(C% z=&`PZQm<54wTEVB=y8nO!%d9M6nBUVkE98+mZNDJ|XqDpBv0P!(qJ`eox z5p-~YwQwB){D{5itWgQ7g}xjyMcy#opKlzq>s(IQh|8`+5VG?Diw}*Kj&Br5SdDpj z;}|0uVI;|T{=etAb&!fEYn_7crm#KzQJJH{T*$!Fp54U?MX0^L_`Ui0<5?_R{JIf9E-7q|FU@{->;&e&q!=t`ukLBjX@f)tnZ;?| z*7<=Wpw$s>`l$%8zV@UOB|zLNY|e){7r24u)}WL3#_c6arY3;Vc-2u%i>eA4IiR1! zdK0N^^6}#b?(E3IdIjh68ZAb=XBCdm}m1u*=t4q;|vxZWpl2ah8;9a{X(^&^BxT_{Z5AJclE{7B?WhU2S} zO#D0u=$haTWIIEW#kvNKmOG7QA!%by%MFF!#Q$rAPU?q`;RGF?+1ZzXqq~9qKoTl^ zZpvbjogdNnd7@UXsRQ|`ULOZ$U%&eXrkE;ut;qt=87TyW3;V7yw>{>uGmU|0z|MRc z@?aiZR_dv5EF8J z3H+#S1B`dbBtES3AIFlcf*aX?7TE>0mpf$^eAp^{(y>n@piAvXP*I|A?){!p@Vgf9 zSpx=}J)Rh`C=-2FaOPRTN*Ykv$Lx+IyQE}s-U;K*rw?x&gys9>F&fg$lC|qFS2ha# zy1T^d{z6L}c%4JQ0^-`uDTle!j~__+L1capwP)H_MgeNSvyDy&pvIh`B};+(B3qAf zR;mMXu^UkfbZ|GRueE^jL7Ki5gjD5@C7H_ZmYl%-*o@HQzlrp1?YGJPs;vAwF; zvVjjMWkgA6o>ndyl-$w^htRS>J*o@dH7I4um(F{HXKta&wU@Ts0UAmV9#U#YQdb8e{Ea?|FVVnM>;xaPH?B zPCDb+AA%FhONYh*_zS2}@)J||YcY9Zy6>lN-d50(6|4$+od|qt@B>5BYtw$?gH}1l zM@tOHDEPi?B=`c{zxTt=sP{SQy$pJ_@Vm(Hk9%^2^0jySiF}#r1A5fL>H%fVyY^p~ zjlPuhAUs?d!N#~gOj)g6m6;}$3d^85?$X3`IG_@25v{2#2f7zhOybU*;&hWkW5qqM z?4wt0O2IkfrcblnvN@;6#qaB>RgM+arG&zG$8Fj%pD@F% z4}gG3LEC%$AT*n_07DY?KCs>a39g}0biPY+F)lL+_c<+SjUKJP-qKLUbB+md zU)|N~8ZT42I(?$ zHXQMGtnLvkDr7l0{8`73k6J2)_xqe1;90Om^<|0+M)sqh06XV_%K%7oid!NUEiu|> zn=|18daM|m_oS%TUrQFbk%y?~DN9_AAvC=Q#p>gR&wc@}aM^8KLJ@e6p+hi?KFM!b zb0ak^8_AJl^g6IxXyWI^MCOHo-P?@UHT9M3zg3vOYsu!}LPyDw9Cl8O<4Zt768;HC)=>gk&}z;ts|iZ)#aT1Bs(ig z>ZE8vJbHA7WG$mPW7^()XRVuWbFRWiD=-rLaq8fMW!&}PRHr<{XV!SHXB2!x^`u7+ zRoUT~Naq1z3hnMldU=d0>N0{Z3%fQKq~dK%0lC6YWFXUodwwP@t~~av4Gz zS<$-w0d_|wTDp9ErBII)+#KJt`}E2E-iMU>-G8#{_#;nYkRnE3EB)Pj^6*E(WU=&b ze}YCz2~un8%1ZIV;UQ=54?^mlN#x-I$DtfbxrCK+s-Z~dGmVv>M1FT^WP6}$mTAFf z)Pjp1UKrA~21L4x_rLvQE^y2F%cW@amY2|}RYd*xqgPzi=bP94h|Ev#kFRSaGHNp& zLYAKPXwx_c2HyOE&<&f3B$SP@W5nsXXa~}OXbVxS(2H!b{XN=&7c83f=>eRu$IJs_ z=e+DYiz*UO1KmA0NZ~P&xN5}kagj%(v-N9Q#3a(N56#S;BZwZivNlI--p{DUf?3!iYUZnIb;ms~4m=R(QXc#Jeu@qS3EQmtYlTB4$jm}0%N=^`3nf% z#WcV1dO+CfsRIb-u+N}8BjXLk8hN*gBE2DdtcCK%Z(?@*mXu(&(Uzd?VFIhw?^AR( zZYO?5quJ4RSkn}!Xz`ltpUm&-w3OI3Sj$vdHznz8DiVAr*c7Y|0cyuy#!MDnQ*rY&a`pYxs_C9|_2wy~JtgqidYCI_ zs~^4fcFwKRH}{xqCNCW|W+J(faf7|Hw(3eS37^dDS{XiPJ0MpIn;S=+%a9e(_+BnZ z0?ego!4vIgCV^d|@oj@jsbF(M0c8s%A9l(2`L#xfK?k^SB3`!onm2^3H2N9}qAw5J z`Ae&DYbo6KmLn6Vhy%*?9B-9lMSQZK5R5zeKNVaJ1<%)N*O6)H@a{Iq+xSJ~cX@pJ z_KzaBe_=<7@eJU4BnGpmd?#)Th*&i=9)93E@+gDIgJaCsR`tUhK?T3UUJFI=qfT*6|HJoj#dc~b;WgFq4J(KA-g=5B8(ijhjFR#imS~{l=H8JzeTTA?t{ROqlu>T{x56 z299LsfR*H@Hcheq=Xu>9AEkt^Yv_>-2AHXTR2`DB=Z-83O109@E^j{e@hGi@xbzUs zsCFtvfN`aay;a=~_BICSNvRnx(HSP3Czc|q3g5TT7U!4GKF?8q1s@iga)2POPXM69 z?kkci$$44A9DWdN!B5f!RhMvRMnFE27M`81dQC{J%ot7c@49#hrc=PJmtN{chkWxQ zoL-BnxCFWqaC`ME%8UzWO3K5P(;Q=6{5sX;s#WJ;SL4C>3wiR78VwK^_UeVY zv&+ZiL2O}FXtprco8abW0r*!?^`B-`b2*dLSxEOysd-lHR;j2F0(w15E|Wx0D%8Sek>_{n5l zAf$T?St8sW5<&MR>eDVQ*qr0}UIf`#(??X&R}vyAsu7nDewAh=m^&~XUnk_B{c%gg z^FP864GiyLb$d1E6G9C8dtC&udk_UP)r$0fS45=%e99G5{E}HA~ zr$EEtn8e0<8eWVY7Dm>qzL~*qngfiKGVW_UjPUN=R{oVtg@TOi!0j%&cl_ph{J@(_ z{Fgvvun>y;4K#s$8@j&fxJAcHm#ja}x_7+l+yC+rTH04BwK0C`=Kknxh{$}ju+F7X z3;)@CC&)H~>JYd1WTN-7FdwBhNQM25|GM5O)hHEq8~m=*VmP_h4Gd(%Ig{ z)4k8LI(d;UF}vI1EDAxZtZaNn0qNqm^#{B|CsIXaOVy%b*K+-Q1o8`Un_5e|AFE~S zX!%%9rooS}?MKNQ_*0)K!Rk{a=h;|V)#y%an;(HNiQ!qSEavmz`X9PHb6bw})G7N8 zy|l{NA~o-!i>os$=1l?(urseB=L@Qym*1benBZ-U<&P|{x=wunp;!17M*oWXV^!`u z?sM@p2$6e8T<7!Tk3n5`&Xe066XNDh`MM0m&b=j;DK_~Z)tyj<&}S1j6Y>c7ob>RD z(2h($(19hMg+__%l*L@36egCv5VyaKDUlB&%w<%o8jt@1>08-Cv{&@Tq8DdJl;<-1 z+v^t4E_y|kK$X7_vh)~IVTFkhv@Y$7pZ+y|eN+o--3@a=Wk*kZ9O^V|_aHk0AE?q0 z;82pg38^lC=Jf3wfGG$uh;4?9KCd{GoO5upB8mRW+SjPr=7-<&glB`S4fQpJ1To-b zhPr9wE`ZMT$3dwR9XEnpi~`IQ>`F$7*3B`XNh=Db=Lov~0Y||8YOS00`bowyiO?{n z^g!*x===!(*C%zpUpw^H8Lm4a#qKW3)E{2^B=%qwR;4no7gS`fw*iH;jo;&T|S zd&lP7Q+wSyEhD?o$;{8Z28m1;<*dUZl6ZAt9=ql*kXtZQkesTiXREY;NdL=I?`=6e z2~-pOv#derlXMNuaJ0qiyU1!d1OTej?tojdt+db?JU4_bVet(&luE-sOOHwQb%k_0 z@RGL;s*7*RXgF-XRl)DMWV_de>o`MM*2Ym;X;MuXyU;~Ex-;l3S=B^xX7td054&P<;PMkE`HY z6FG0^Bfw0I%98%ia#N0j!z0eDljw-W8(yLjD?TmdP9SskU=lSQ!%2JLqn&|psq&w6 z_VW_y^%U;hZh-3TuyXK~50eyTa?7N`M)eW?PqTgAF6r`y3Dyy{108V3{*hO_M>p}R`vB2vCurr`G;1kD4;C*(-5~bV z3!|lqp1DPpKTfEo-)m?<^#o=krO&Sn!Exro%_|Utr3@E?n&Gx1WkFg%NSKyOvF6Tz z$K9o*@Yqz(z06*II(CdN0YTD|Cy7BFw0Uuo9E3!D5pwtDZX>2~?c-}9Yu(nj06eNQ zfO$0xKXNOS0agqbA(hpogMkj`A3 zaJ{4S-xKlLv*%w1)6GK1zM(~>H-My;G&=Za-6>dX62!k{~{bNb3(Aked*C`qf(YygTo&_OZT z0@N3FH-L74*)2#a@mBVqUs-mQ)Goc<(yq{n(MyDb`W`oTGrE5SLmBJ=9!dvSqHMVz zoFmIC$|4%WB-x!o+h9^5U?_(S^kIski0=Ep>m0x>n0>Li>Y!|;xQ?NeqDomTUM_44 z&ijHrtk&n;A*H1n;Y;lzoo<-i2cdVOLpslqMeCVXD}2KbcH1%AR4PYKvjJo)wqe_a zbZyH#8THo-FMoZy4Qg%kRr!qz6Kpy1{ez%bb1cdA>nlgwmHa=RMn+o)Mg^o$GB{tK zD1xN_e=P-qR0X7=MH2cn+RVhv8~=|ynPl8lcZo(^;Rq%s^q$_D@0XC>NYAv4LKr`Y zL357PMN)&mb%IqL4MIM`t#bA6flz4zFe!i4GE%D7xn=ELx?*3^r8`9Sn_Bs^?V_eu zt_SBHxM2sXHOnLQ0L17?zew*D;pS-h2E5TS--)FFOBQ=?wX=i($z)Txrt#AT4frD{ z-Yxm;LQ#@Jo}ezlUuBC$-*=MY2{G zf?zc{XP3V@X)FYl6vZuG1fBF#r3;4IY*59iH3+s6R`x*gO43w#vE1FfW7U<{@J{oB zP%_K{CtxL@Eo-a!XKarUTz63e84)jTACFu~-A^Mu^x&5(&XLgQ=a%z?( zyuz?EKWXgckdAl=_C6PPosGRTBWWo#hTLAOkWLcr#NLTsd!LZ5>8FRy_x<+dw!trLiaa7yG9)zr+?q}vMn_>*V_`=MK! z8GrMY2rxplHrNKRQ!i{8GGVKSb9kN1$KM1ED5*_p<(ehhd-jiQMdL35o8SE2z zJNC{ug@)`Hr={*wkZu_6CX1F;F;vXFMD+_pTuOSP5*-!$?V(|~a;KC@W~w?Y%A>iX zN-x~TEgwvu6>FLK+(d-KRVX>D+hr$QjfQ* zI&Qh(=Nz`(65f3Z-~BP%b&nym;AD|+*T=iN?R2fsPH?)^)q`_9qM7n6*O6!C@bEh* z7+j)u66T)jM3zj?{qWzrUa@BGz=m7lsOFHlC$(~6Cv;pHe-m7Gi(+gFOoRudH#C=%mnZn9 zg7k4g{skoAkZ@l)xe!`53o)5}tYBIgZoHmf%Jm@T=}Q3Drb9_Jr@5W*dm8YrWqx1I zCp2b62kU(UT_f-Uxw|hkbT}RXAKYQMhVqD)VRDh4pHyp2Ie zwccdwFRAq72xDvz>FqA@!Vu@Su<9a5j`K1`1$===ef#M^G{_l)gljl8RXTFu`JtoR z4MQKl>&B$V-d|!A8)>>00ujc%DP-vYmb5cT%4g}rfcb?A7ra%6?ey1wSO>-x(sr+TjOuEH=jX4%R$M?rvW z{QKuecCS|@{w2ySu1@og3naQLjI%luc>ZOriqo_(r)p_t6EbSEIOdG!Thm5X9y|_> z6RMAnb%IF^=x86gG1eqWze>Z4L}D5sJn>%efJ+TzzsX>tmqNzIOh~hsdE?uMoA3z2 zCOr7P@BrFgm=IoUH}-ol&xGr}oORFy%{?Y_T1d^eJ^xH?^}w4X;iXa%KKkqau=llb z-oO&MfQlUq?Nh5?`;1c6J`*q<^W_+D_=vK0TUiB=ij~cZ$4vff4=FXdJu~x7uKAzx zn>ikvbMN%1#Q-}7f-u1GcM*a)9b)>`x7+?(r^Ewt@FneJH=wH1GR8lnE}C+An-xH9Qz&KA3rdf|Q@lbtAOpCKA}`z>?fgA%222HzPNI)(UyB7IDpZX{M$K)PbJr-1~X1a&*;f z=arRq;qB?JJci|aI@SFj^Et`$^so#UyisHKx}8d z`*t|aY2~?#Z|%0=q_Fq&MA&=ko|S?ESakwuH^Ff>P1DKSOA_D-NGMeEQm-{Of?--7 zHuzd@EEOsvt`i()bXTZ+ozbr@1UE9C-}oEg!--pL6ISXDgLW`O%EP5(+-t{TaEjpB zBK39~EOG$KlLJo7h<^)bZJbCsAQB)%4`|+hZ&7eqG`dJD$%O5G_`WePv|qex{Kw58 zwt~*WQ`D4Cc1U*usNbZ4CWk*(pYeo2Yp>&4=Wk_!7ct54XiR6~jBJ%Hnc!_e3>swS zgwr}gh^HG*TXPi?`!J{LAO_&ZMM?7DwwU*wki-xBHw0RK@)x;{*pvQrjlH(7fB?o7 zXma(CzXV`V4vTXNyy-CkU;cpmEhAavPIP(rpp)wEOyZ0V#P17cMvuzj99!48ITV7$ zd!4{>w7YF0yWa+X7ABmIwy+|8bWm#W9kIFha5x&(#KuwFu2{0tm`#0j=gYrG> zk-HvumaanRJtc8s4-R#M!zS`=So4wrX3mJFeY5IMkTz9(VXULekIaDSZ=H{vu5m;M zhYp<`04=T0uS|g7HDiVbvVgsgkFe|KSUCG-TTgbv<8~?hy)vlDc-bhT(*KmdB>i00#pm5J`HKSFdvVEsHjs^|3(Vp+ z5u&C`4&eR{7wUdYGg%b_KrtK+@%swuq#-ol>+;0<=3BszK?IXMO1gbBg7CU^Y2HIX zHobSeK6ft6v`poQ*}kM0IhZZeDN^Nd!FlciN(p ze3+8(r2YGJzINX27?BIey)n%}tZ5Vn3*%Y%;_Pb%QJy~*J$(4VaqpgS0uoP34qwUQ zbqHo=sH!#M7hVA|RQT?IYZf#}{_dS#AC94}cP$AU(%I_>o`mmL&rN*~ayH3i=Z1dA zIf0q*9P%p?;Li$)8rD^Ag<*2n+{q_~igiB>SdnVT-ms050|P%is&x}8aWz0Dqz-g? zZ2VbA<>v6|on4DAkFzS5XHBzNbek|8gEP=F$-uEtKs&exWEq<|ruz3j;&Bb>$lagF zLR$|w>4u~_ZqR15wdQqZ1irNHnKLEr;eMnNORcBhN>jC)wBJC@UP6^pl`YTx%j=i1 z*)U%O_YCD%$^1_jEeUZ~n;_yp8~^9ve~yVtzRB4qbss|3R*re1oqO(wnAYA2+%OHh zUdRcgyknNR)CCWP%EJCAs-i?OM_p_cc*D9>Nw%kgAfT;d-=iWS`Cr}b)3HUL?XM6Q zPTBi?Pn*5t8s&-PFH+V`E6gw|%NJh*KuDWLV)abtK*MBtS*_KP$36VQ;M`+)+s5gT z;M|?8A!q#i6|Z2ez*@&Vkk!$MX6xFrMRs3WO-G0ZX_@(u(Z$piilnLP-OW2)e zlF0d!KoD_3y?yPbqya84225xBx-_rgX{fGPCs)b#(4uY!b4;7szF=g)9F;&zzahBO zobpcQjqrN`+Y`M$-O;jwV`E{!PYiaB-nt9T)M?m>WD&u|J!)nR8^=3yk%uEh(uT22^l&D*y%fmT?ly)Ux$+ znMj;QAD$DrT?{U&7Y2#}6Ip|u(noLd&*x^DazD)+i(0){;(Kb2|4Cba!(bsR#YW!{ z8s#v%3$SSkzDl-X3!aw>|E=Xvviig{)<`LwJ}1@ZBL4a&ab`l<5$w&m>D@UAYTTo!c4B3`T$f-P<=`wCVIHQ*f{jKqp}RBS$i z4DC2g6OLj^4Fl&}=gVBt#jepww5qGZWn*srn8hK(<$Oltt*OnE_*gs8N+7`3cFBt5 zrva8?twjM$ah9uMKLX;%MC(gH2t5#U=-q(q=@zsDs0CrAVOVj}H67k>NH9m9!JyXN z$7PZPI8y<|_iRJ;{a5y-i`;LcYH~?XQt9e=wN`FPW57#+`A&6~J^$~n2>QgklTmCh z<0z&Ia(9iqPPn_K;$Akhpaz@$H8VBbZ7!jvU=&cFS5o=lO}tWFj>OTq-CHr-_HgN-VN+9|Mc#7K zA>JRzs5T&dK}qa)s`;W;BV#ehFYz4c!Rt!(ZIduIES;w=FfB^x?ixR6&h~`biT^(R zjCs0b?;7Y{0A7hvHk=U1|A#D%oT@sZ=6)~o!Pob-21pKXGBk?+=*m(Ngq|v1VMNPQ zz9enN4J|-t&x?CQ7pzoYn|lYt?rm!(G@AMZvO12j(-Q{{SvU17F*w!x6()@*!aS>i zBAue7mkI@BoT_v_JxWuM{AtKkpVJn<84aBlE5_gdU=ldyrV~R^sw;aHw`h|6bXzFL zX9OE;z7(^s(HBWQy|caX}drTuRZEbrmykTIBRsE!%Ujgs5FE4@nGN$jqMX zsyJ_LcmcXzzjo0!${=E~e$%1=VH}|e&F+hfU}w<`1Tk$BRXgAd86CUQXCMy^mf=+u zKn&zry%UKuny8S$TfXHE_uj(gqBa`l^#VKqhdU%P7O?bg&fo>19j+bXpb?R9_vVnX7QzrWe?<=fT|5ZgW3# zvn5~tMy5xWD}C^p3v<~W=}fpY5elJ?0O)m=5L5?V-ATYQ?uh2^bm;}j62@Xw;OL)3 zVv~dmb;cYe7}Wn-Xl(?FjD}w=D28sdq$1-JV!n4Is0mewlnG3p0{n_&nIfDp!)$dl>j$xZZF z9W{20gxou)^Dgg|pax+KH^9hg_7^W53Xx}fWU^TM1>X!7BI-UXn)nah>514FcV?UA zkGOAX0(5G1*{iy$u>`S+wb{T8RbPY1pl9zzE+hcuM(SyT<{PbaPn-Ma;}*xSF178Q zn8nnBr9f8Bq4f~P^L2*xx{zXE_m?FvE~~{&=Te=Hb;jsbhN;2s$Pra#L!V%0_AB?g zb#3H8J353tj0MnTyxsOaH?X==Ow0~VuDE#cKTNx0RwYdJR|*uTN7z{sT?rq;GOX^dvcz#7l#!cXdV%>Upc1htEyHp)31g~JkU`k%VYzji}QXQ*z4Rreg z47Wn{d>jP!NP~OZqDiXwvpP`TGTH;BV;c3B#Y)Vd7K@`^Co;h4C&VJk4=L&S{vpp^ zLuzlnw6{IKPek2Z7-Q(oB$OAT8E#@DIAr>^DoU07R4|)=BuabQC+%>GT-Y~^RyhqA zk{ZrJ*Q>f3&f&rTb%rw36>rs}C}3ofGg0@SfkK)p>gykB7CJIA5cBG&dhl=dFH`}# zK1kyvIzMlZ!+7cwm14_xb$4p%D zI|d$W*936jRhi(p@N9FgM=;&&1f`$XQXNwSGwNB%))5-e^_sO*2Mp0G$%WDywP$8q)kt>(21lE`cFXM3q=%tCb zlgN_xla)CrSNDaZr|_iVU|k3ub*YogR1I%?EQnY#-=S80R(Wk!Cl}t$nqY-E8?z^? z-SS8ng3cFXs(Q7IlD%J|qx+nNpvYl`0$KWa=~A}V5|8iH!GJP%;muYKb2<+7cI&X4 z;UMX3pPPTl4C1~Rqv!htX))9< zPvk5uXBX@YXmvBJ3;BZR1ktFC&73h>#6-YAOwx+dwL_0CyWQX(IPj?Xj@yr>u%Z`N z{+?ne3Ax_`%qYQu4lkkw-mfo)moh#lp?4m8MHzZGWsP=4P6a)8N?)TdVi7Ivtrx%$ zYij(MQGd`hT#e=LfupOT{qGl~65xtbVhecnyIz;`(aedcg$CDGcBPAU^`av0JOQ!#BQ#!W@__d3e=`k%vY`A@ zP)gcnmxKY&56NO-;4iNDVtvwjjMkfb0qc&|DfMe|9wswXafdcv>l?8kcPxxyB?hk! zXdAm2WNkdjtFiTM>(e>s?>w-Q+6O1k#Lc1K^6Nc+OU~nZgTnkGFw!9EHw;ZPw^6tp zA?d(BqPDl;?Oc%aUDLo?^K%YC*YS@ZYZiDVHK6Z;eL9_1OlgmIYhI(W>8Rd_gOBcl zL(;*x`h)kuqbV|y*7(J5kDeRF&@30953P5Au2?WNguai~9k2F6JX};SD$ykH*0xrd ziKlT&S=GcRz5GNtY6hD=UtsJcumjkw6lQF~C+I$M zD4XKo@O`&$02Tjjh$I+J6Hx__l4x|TG%4*{S8*4`_2I`x^L}FaLWb+fGXm5H{HxB*c%zJ&_blye$QptEwRT!oR;%r^a`kSo9h1`MA65sfp8xj=tUKU$=pCNWiGMD<2jv zp^_PEN?mFdu+5$o?E9DtfNmeJ741k+K_&uizjVyM6UQpzh4Q*UQ|}+@`nwqkf6MZh zvhbg^vgRK?1>GbmgX3{?A)Z?O3jqCtBb_aGxLDOwlquoDizZhRDa;>Vgz8k&`$jj=%(9ls#;U5_FNWD_xQazV(au1vsgt4hUW0 z%SnT*3IA=tD<4}d>P43==+yiN+A#MX9(kwBU9dYCZdY@{X6{#Cy%nUG{(6Q4(m%@4 znEO|K`HX+u;(HU$g?xaputQu?Y*?J68FIeCbazU#?H&9}0-@`6^SgAx`8ESSrA8PR z7Qvy!QAxC}%R!AVwH&8yRbxrbDWX4o^c3b8_uXF1dDavq)-jl;89v2BDe&Dyy(r$Z zLlHIUGca%pWvwWMs~tQCsPkZ|%xbee_)S)Le1XFJ`m1u6omWq@T&FHw%jC!**A)hc zPRy7@%a~uKo|>X$u(0GjcJ!}vZaT$-%k$cVfhGObNz=@r>C%WBV-fk`Re3K)IjwYI zmOV+Ua~~2oo#QDWwmr2L0>`;sdbFTu0*YICLRCs+q~+CBI2bE-*3@{J_i#&AGUR>z zeY<4?XE*#OhV`<3#8IU8`9|*N{j$GFEY0ZL#dfVMhYQ%}YuXK@wHK;Ct(D)4sA@lI zd-}9%$;Y(dj`*I2)q+EfYoAD?+d=o|+F8F4?kwwnYtkgep(UK@*h5hlas&P})_)*f zJ~Oy-R1-#(7*>k<+=Xwy`Tp(;M^dW}X}*!>8f4Zs_rbM2v^>t-vZ|3p+0b=;_zL`< zin0&98#BA7Z}Ec08ED^b)B43SU)ao%Ginf#Qy+yT1@kqM|M-)LMMTtt2Ce)0jqE4; z`C+Ql9gtA$XPq~3w9XY!h%03y=WW69|M2q@rrMlzdE@Fj$th@w3R_b>f%q~Q`mLe_ z#z_ydhy6AeVqrW!2-r#YkR!vu8j^7TQc)2Bg4YnH0fUk#sUM{z-KVY)}cs+qsgqiOPGzoL6@nT35g}&qAxy%Bh zfF$IXF+Rsev5Ul=G|lF0$D~Yz*~`#NBW-47ZydFyO=`o*V{$q<*-rZpu7pzYOCDD- z(zq^Pht0G)nX1j=!zuej#BYO=S0#S9l=5QENNwr-n!ZOVvnW@sajOm4FkovAI~|$c zGe%7fUh7P61k>Br&h;=?0;emfk!=G4k7sjM1;RCr6`o-|EA!kM^vK9<=S1OL(Rnm& z&N6B~ax!u!!J`%guD&)FYNzosc&;rVH5w|8Sey!I9E|%w%cSyOkorKRqQBqEPFWUu zZ&s);Mo}i}RZ!~~-&G!LZ9Iw&gmz=lhfcyNi*-4%6s3y_+pxP&^caWZ zFn3HtG2*^at$ro;o$V5>C*tM%PejXdQxq3a7>m>MJ|Lg8!cRXvu(QR7;<)9c#-%KU z^~mWLE6UEJH*47^4z2cQQkQTLzl8()4Sa8~A{HOxq<(WKvwJMlrwKa*{un(Vr+wQ8 zwi_!>w?c-EDOldRM)MQ7a8+2m3rK5|ntadj;Z{NYF)$WQLVx>p6}2=5tXrHx!Erik zWH3Ut5!_>Pq$XZdZiB%%I$dCpS1Y}x!`1&A8SG3Wg#8_sjpF55P+ACL?_b|pjGjX; zm{?MsN?E;;!EarUL&}!|gTp?`$u%t3H1|ee(2K#yuv-ttA|@kZ!}Leig-`6g9xhs~ zH?>H5X1&2`R5h(vphk2Ut#hlbxY3{%s3Dv-aj#_|{IB1&2w$ol4Fg~6DmEj7`CXa( zz@8*!N}PYT$@Y+h{#rAj>Y*KeV-pXrN2IrQ*SF0j9xETZ2I_lD<`q%=uV8=}7k<-$ zeY2w@xr_Hr48e!TGfL#Ab08O6I_EV!-_1KVAJSTT-l$}%>lK~OpfmO9tLaL~*=8jD z)z{3C-WN2Jrpyj143H9sHM5u#()1U#wcW}f;-0p*16ZjG!l707Ov(>#-Rp{^Pk=l_ zXS$1%vDKz!*I=603R&_NFdv~}#mg1L=mXTBUxTq~-*Uph1m2^(b93CSXlc|WQ|Wy8 z@*H~WX^QmLhw-bX`Dh%5`Q;xv7=DpK;C-~WnawM!Wi4aDGO$0{j9Bn-3EEYMNkV!i z*cG4}B~(}ALE$z|wxiG*UfR#@GJQ`+`wnjuwN-QxW(a zqe$!nN;IkgD|x{;GG9BYtP;_jiP2wRA5QsEFyGV^|Ckmi#}`Q%Y29t5XkfrLG5R2k5Q%=s)eT~HQf^sgDa56 zV$qpeSPMWiy!@aQ0*}e)#@4bb*O6Pb@a!#~S9-PzYB&HoXCr?Xch8j!s^mRV(j9)G z?Gq`~IT;UCHnm&iQME8dz8A4h%gT^1R`9t5ChY`NR-{{pQHU-mW=kZN&FxA$*%()U z_ws_bePnPbW=pNYcE8VVyBE*|=7E|n!fJR$+fApRBkSL#s+LqfIwrh}FjS-vtjfgs zY-t_YJ(yx2rZ=4^(9Y;Go#Z?R5E3P=0OT!VehpdA6V&(IQ1)hR zxFyfIcg&a7lWB62eP8u(Bl1v~_GSJ5K-VQ8=CK)hJ(VP>c+@ZPjVU(H!!K&iFYGRN zAtzWX;a=^cN%H+Y$uLH1;-{VWb%xr_c7JBGUqlp;25#Sb zF!pG&6l@Go*BJ8RT__0Ld~V5KbfYrcI%1taN$_cpnOPkx*_paa&mi;-pOO!_7o&n! z5GTF84Ff@v?DTwd0g6Y>%aUC}e4e?hhJ}LatQ>Xa`2>++j$D~%g`40ios3sgp=**l zYH=CJm_$Tdd|iCMuZ8MeHIln&iSxalS%o@`nu4aRTSia)G^yK-}q+#m*sX}b+`9ul!XXG zPweq-&W&eh{+v;TZGF^R)hBFife|S^`yG41vP!fPxcNw$Qz*W<7CtG=_`=^l=oG>1&3msG^!Tt8<>mVi(YgICS*90 z$e2)#0Rw3HsF)z}Sxg7|aOQ>73(>{@FLT0@BOf?7- zKz4}J1|Zg;I7OifPgtKGa@1h;5(-<@CTAKJBHvAK-YzW*`&zlP7EA=ZkBO6*{FX^| zaC4DvukiZPue~LP<(A9YI_Qe@LjT`V-o&ejMX#0O+Fz|3!8v4Mi2ES;Hr*O+89&MR zXJSW3AMenIf2V&cHd{8Tm60nYhZfh{2G>x;;;%+S^XGxA^pY4#6IUNWAY`*%A2vTA z;`mm5>4?Z9;_M&$YpK^+=i2t+q^{%4JlzohVZ}+2Dg`&x+K~)LP|gb&yRE9_oA3B^ z{TltMt=C+u8fU${v1VD=g*0j__+!oAn7y>=QHGYriFz6O>R)0CYOgOJge>S=bY zB25hQC12t6)WUFi0A>!!q4!5>WbeCOEv#j9?ylPDy(w9H2jurYU|L!U-kW__M`@5f z|7x7YI3$DWPCAitP@Xll=|R1JwG(v?nsvh+WP(a7N)1x%;l!DV%pd}P#RYpS(x~~& zJ`t6|@Bir~i1d(DdL;#oI9qwkFt8{TkDXhDIldnjElS`cK%LVd@ALaN@3U24i;#&_ zJp-uhJ66T$%s=2u=w4k$HKl2!xCRplk<)c2lEK`YpY|4!2j{Qf?R_6uf`P=wX>Z41 zBaNA%d0<`{u?)0X$o3_x*MZGe=d$kn@&qD`b=5wu!+d*_o!_v*|wHXdzb{!JZ-@OL{Dzav0He5_hCd8RtA z+)9zOy($L+zwV#HvA&~JbQzGbCOaNj7?SR|Q7TL~lEpHi zQ708)NbF2EC!+bxA676!?rA11P!G3&hOLD@qW)Rr>ai8%gGMv)E9)CA9O?hl-giee znQ!gJaYklTWEgZ*T8=P?6ahtuwBQV26a)mM3#h0dU3v*+#!(O?4APV;N)J^Cz1Wf7 z2`wNcgkC}kq2=y3o-_CR)_3n(_wT#r{Bzbihu6ICuk8KoXFq#y61_6C3{-OZ>{BZQ zIlOZ(aoGlUEF8nBeY>AM@6@z9U{@dUPg|jVTcn(IB#c{)O@5MG8h@W$At_WREwsSj zF)?cb-Fs74voBHJFD?^`A?c@&3OWugZ{IYZf(aVX)-Q|Hc+M9HS99_enp)t^%M05D zUk^#_-uu9}58n)~5OI#+mmc!W?I#yqbdLxQ{L6JWlQQhl+qge{Ptfts=d0gA-LR%t z3Z|vu!M?3lF{?b^JbKK&-fWUlbQX#FyEy65a9w0CX(@}HAsNO!p)#>IEbfRN!Pi1d zjG2J>&N%*!I&sNhjfKo$bamUIBoV9W9z5Y#{Yp(;^|WeBH$=-hsw8pN(562o9Yb;7 z8o^#!IgSb`MCef01~~Bv6ahs)#I%!O{>~dj{0NCdA`HNCz8vmrG$om8%Op0!+*m^d- z^+c@o=!3N$O;%FnbfF*r&JR{n`%w;vWcm61%P9w^CLwl(dUGF)yBoYOB;rXP+Vbd1 zurop=eNBm~vgSJPHm<}#i-+kl59q*@Zcl7lSSAbChzWTP`CbwBjrK5PPPxCG&e!BF zpde>IK1U=Jg$fIT$@F*YkG&30XbzV0o68)xTTDhH*%%3vK z>#JIoHDCvhePBl)B5fmf9IGF^VjKmL%V;4BQy(J*sDP7`uqEzN=%TGN#DeVd!x`Od zuGDLH5;GBE{HfHm&46isiqD25(P*>95!|cEv{s0%o=INZ-iVN(e1p2t0kcSM+?BKi zP`+H(?hOCBiu>?knpzn#QnepuH>kx}D+KUF8qM8rk*a57X32+QZq!r`^i%z6C7}i5 z9Rw8&RBjH}6i}n%Mplw+EUu59MFnYGVedi1N=ixg9?E#Vxq)`~@1&g4;3g~eLBNS~ zkDM~#<~9U7LA&``1sI@I%c#~8mwX`R@^Q2c|78fzpm5)B?~RC9ABfMp=X%{c{Qsvbk}UN4k@=j0KYY!m`Wy()hia!&dZxK?!h z$jxA5>^8+_=k=Jr?emnnrN0I#l?DNZ>eY%uo-a`vimRaw5mw*k~E5m{(w2O=(8*15h;g%2~reh#wHcG5DSjwHHpQ{zw+Du{cpnbQQ z_To~H9j^yW{mwO|PWz5~`Hzrttw;q!-VTEu^HZe2EYpp$tFG#a!_$+-Ln{;;R+_#T zDu|mMsz`xKs^sFTEhz(nwY9)P6_94&U@qv{Yfui=#L}?}4Ph*n2T&S063Zvcj>M9( zEZ}#PE;b816=M0T^ZzBJXxQ3y4aziqkPIf&GJ+0)HMj6sF+>VWE$~T--qU*c( zlk<>mKY#|`w7P*k_`KGHu%8rgJaV_VtHDNj!zqGUJxRH!x>5f?P>?$?Qg~+(D$X7E zTKfw~FI;p_CmRvW^+Ua+OkHQqcfSZ6-L7qf3qHd>0q_$Tm}O=j1&z5$9{;`{Jdo$h zE8^e5N%U5hMy*tE-(Sa9-dRgtwD7ZjctT0D$U7S&VVnN~D%`Ld#ckV_V+n*zV@WR+o7wUL%eURD?{arvbP0q$DMs3rn;6z z!U_=*A}TPH#VOXN_Cx9()H!5s+4JRT2*^ace!OQRS^tS``lHqq1)y120T{F}=v?%< zQeOQ-gb@7*_jKst=}?{Ix|e*@nG`0zMS9U^R!;Xik{ll_zCgI73K>MNHn-^og~^5f z@a;E;r+*it?-lM`0O@;3U(rBi&RmDI{CUJ+EYuB3|AzN*d(hokEFIXHjR=f0!*wz$xaB5o*N|9aiMZ3edwW%7Zmj$6`U zufA1huaFP{H}?g>$i<(zy&^(dy~%Qr6$2`5@JASqTT6c4gd3t+5L@#KzeNQ-Ham;N zUHAKk!gWMA+@hWJ9TY4g`mKpQHZp4oQCbjASOQpcWfA#YS&d{~ml3~Ym+=m`oW=PM zap82lbXEQ+$+hj`s!8(V-rg9^1Wc1a>+Ze~_wdU2gBDyHg418&o%r)o!9SYI;v`-icWrlR~c}~U~Wb3}a zd63kIQKx65(!-~gF)@#>Q`8eQ52)Tc=A8FX?fq;wIV7L;{;wRzW^s~cYc}wLbMODc zgIburczo~>X92c?ORZ7vWx|e3+R%)vIz~THKBY@yF>uwiPSPhEh0240VQ*e`Y`0bm z7MmB#7T|>|D?Uxy!f(mP>|5|a*YsX$3qxdGdqLH3C=!*?`HdZjhe0IyiTP2UpmUm$B)@}e$CAR11!PlG>BD>>Wd!DmcDqx!A2 zrQb+)5RsfGj$Zon8`1!8Q_)U8bRZ3P7#rZAxAZpKR{jF~ieA-gGtdZ8U^^Kx?k14G4c%yr`Y zxMFK+^?G}}beMMj_M8=ghT?`h#W}uQVM#8dDGvQ+uar50$!6Z&x04rl_W7aDBtx2~ zCs2QlY-BMzusZc2dGW!cP*n+BfuV!8f69(^9^8vE0T+X`)eIe*dJYPMLezn@1?p}% zTU}eLH1eo<+Hb5r u3+<-Fx3!X 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 E0zoh0D*ylh diff --git a/assets/plezy_monochrome.png b/assets/plezy_monochrome.png deleted file mode 100644 index 5e50d5bf5b1106f59b61027bd48c4457906e2f1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21736 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 Cru&Hi diff --git a/lib/i18n/de.i18n.json b/lib/i18n/de.i18n.json index f4fb1154..fdfbba20 100644 --- a/lib/i18n/de.i18n.json +++ b/lib/i18n/de.i18n.json @@ -52,7 +52,12 @@ "exitConfirmMessage": "Möchtest du die App wirklich beenden?", "dontAskAgain": "Nicht erneut fragen", "exit": "Beenden", - "viewAll": "Alle anzeigen" + "viewAll": "Alle anzeigen", + "checkingNetwork": "Netzwerk wird geprüft...", + "refreshingServers": "Server werden aktualisiert...", + "loadingServers": "Server werden geladen...", + "connectingToServers": "Verbindung zu Servern...", + "startingOfflineMode": "Offlinemodus wird gestartet..." }, "screens": { "licenses": "Lizenzen", diff --git a/lib/i18n/en.i18n.json b/lib/i18n/en.i18n.json index dd069605..cbc18e9e 100644 --- a/lib/i18n/en.i18n.json +++ b/lib/i18n/en.i18n.json @@ -52,7 +52,12 @@ "exitConfirmMessage": "Are you sure you want to exit?", "dontAskAgain": "Don't ask again", "exit": "Exit", - "viewAll": "View All" + "viewAll": "View All", + "checkingNetwork": "Checking network...", + "refreshingServers": "Refreshing servers...", + "loadingServers": "Loading servers...", + "connectingToServers": "Connecting to servers...", + "startingOfflineMode": "Starting offline mode..." }, "screens": { "licenses": "Licenses", diff --git a/lib/i18n/es.i18n.json b/lib/i18n/es.i18n.json index 3440384f..7e80021f 100644 --- a/lib/i18n/es.i18n.json +++ b/lib/i18n/es.i18n.json @@ -52,7 +52,12 @@ "exitConfirmMessage": "¿Estás seguro de que quieres salir?", "dontAskAgain": "No volver a preguntar", "exit": "Salir", - "viewAll": "Ver todo" + "viewAll": "Ver todo", + "checkingNetwork": "Comprobando red...", + "refreshingServers": "Actualizando servidores...", + "loadingServers": "Cargando servidores...", + "connectingToServers": "Conectando a servidores...", + "startingOfflineMode": "Iniciando modo sin conexión..." }, "screens": { "licenses": "Licencias", diff --git a/lib/i18n/fr.i18n.json b/lib/i18n/fr.i18n.json index 585b23e0..9a0f1315 100644 --- a/lib/i18n/fr.i18n.json +++ b/lib/i18n/fr.i18n.json @@ -52,7 +52,12 @@ "exitConfirmMessage": "Êtes-vous sûr de vouloir quitter ?", "dontAskAgain": "Ne plus demander", "exit": "Quitter", - "viewAll": "Tout afficher" + "viewAll": "Tout afficher", + "checkingNetwork": "Vérification du réseau...", + "refreshingServers": "Actualisation des serveurs...", + "loadingServers": "Chargement des serveurs...", + "connectingToServers": "Connexion aux serveurs...", + "startingOfflineMode": "Démarrage en mode hors-ligne..." }, "screens": { "licenses": "Licenses", diff --git a/lib/i18n/it.i18n.json b/lib/i18n/it.i18n.json index 9c787968..b1da2926 100644 --- a/lib/i18n/it.i18n.json +++ b/lib/i18n/it.i18n.json @@ -52,7 +52,12 @@ "exitConfirmMessage": "Sei sicuro di voler uscire?", "dontAskAgain": "Non chiedere più", "exit": "Esci", - "viewAll": "Mostra tutto" + "viewAll": "Mostra tutto", + "checkingNetwork": "Verifica rete...", + "refreshingServers": "Aggiornamento server...", + "loadingServers": "Caricamento server...", + "connectingToServers": "Connessione ai server...", + "startingOfflineMode": "Avvio modalità offline..." }, "screens": { "licenses": "Licenze", diff --git a/lib/i18n/ko.i18n.json b/lib/i18n/ko.i18n.json index fa95896b..1fcca5ef 100644 --- a/lib/i18n/ko.i18n.json +++ b/lib/i18n/ko.i18n.json @@ -52,7 +52,12 @@ "exitConfirmMessage": "정말 종료하시겠습니까?", "dontAskAgain": "다시 묻지 않기", "exit": "종료", - "viewAll": "모두 보기" + "viewAll": "모두 보기", + "checkingNetwork": "네트워크 확인 중...", + "refreshingServers": "서버 새로고침 중...", + "loadingServers": "서버 로딩 중...", + "connectingToServers": "서버 연결 중...", + "startingOfflineMode": "오프라인 모드 시작 중..." }, "screens": { "licenses": "라이선스", diff --git a/lib/i18n/nl.i18n.json b/lib/i18n/nl.i18n.json index 6269ccd2..e08757ae 100644 --- a/lib/i18n/nl.i18n.json +++ b/lib/i18n/nl.i18n.json @@ -52,7 +52,12 @@ "exitConfirmMessage": "Weet je zeker dat je wilt afsluiten?", "dontAskAgain": "Niet meer vragen", "exit": "Afsluiten", - "viewAll": "Alles weergeven" + "viewAll": "Alles weergeven", + "checkingNetwork": "Netwerk controleren...", + "refreshingServers": "Servers vernieuwen...", + "loadingServers": "Servers laden...", + "connectingToServers": "Verbinden met servers...", + "startingOfflineMode": "Offlinemodus starten..." }, "screens": { "licenses": "Licenties", diff --git a/lib/i18n/strings_de.g.dart b/lib/i18n/strings_de.g.dart index 8a362f19..e89a84e9 100644 --- a/lib/i18n/strings_de.g.dart +++ b/lib/i18n/strings_de.g.dart @@ -151,6 +151,11 @@ class _TranslationsCommonDe implements TranslationsCommonEn { @override String get dontAskAgain => 'Nicht erneut fragen'; @override String get exit => 'Beenden'; @override String get viewAll => 'Alle anzeigen'; + @override String get checkingNetwork => 'Netzwerk wird geprüft...'; + @override String get refreshingServers => 'Server werden aktualisiert...'; + @override String get loadingServers => 'Server werden geladen...'; + @override String get connectingToServers => 'Verbindung zu Servern...'; + @override String get startingOfflineMode => 'Offlinemodus wird gestartet...'; } // Path: screens @@ -1338,6 +1343,11 @@ extension on TranslationsDe { 'common.dontAskAgain' => 'Nicht erneut fragen', 'common.exit' => 'Beenden', 'common.viewAll' => 'Alle anzeigen', + 'common.checkingNetwork' => 'Netzwerk wird geprüft...', + 'common.refreshingServers' => 'Server werden aktualisiert...', + 'common.loadingServers' => 'Server werden geladen...', + 'common.connectingToServers' => 'Verbindung zu Servern...', + 'common.startingOfflineMode' => 'Offlinemodus wird gestartet...', 'screens.licenses' => 'Lizenzen', 'screens.switchProfile' => 'Profil wechseln', 'screens.subtitleStyling' => 'Untertitel-Stil', diff --git a/lib/i18n/strings_en.g.dart b/lib/i18n/strings_en.g.dart index 2da53df6..285c991e 100644 --- a/lib/i18n/strings_en.g.dart +++ b/lib/i18n/strings_en.g.dart @@ -252,6 +252,21 @@ class TranslationsCommonEn { /// en: 'View All' String get viewAll => 'View All'; + + /// en: 'Checking network...' + String get checkingNetwork => 'Checking network...'; + + /// en: 'Refreshing servers...' + String get refreshingServers => 'Refreshing servers...'; + + /// en: 'Loading servers...' + String get loadingServers => 'Loading servers...'; + + /// en: 'Connecting to servers...' + String get connectingToServers => 'Connecting to servers...'; + + /// en: 'Starting offline mode...' + String get startingOfflineMode => 'Starting offline mode...'; } // Path: screens @@ -2930,6 +2945,11 @@ extension on Translations { 'common.dontAskAgain' => 'Don\'t ask again', 'common.exit' => 'Exit', 'common.viewAll' => 'View All', + 'common.checkingNetwork' => 'Checking network...', + 'common.refreshingServers' => 'Refreshing servers...', + 'common.loadingServers' => 'Loading servers...', + 'common.connectingToServers' => 'Connecting to servers...', + 'common.startingOfflineMode' => 'Starting offline mode...', 'screens.licenses' => 'Licenses', 'screens.switchProfile' => 'Switch Profile', 'screens.subtitleStyling' => 'Subtitle Styling', diff --git a/lib/i18n/strings_es.g.dart b/lib/i18n/strings_es.g.dart index 6d5f756c..2b36a0dd 100644 --- a/lib/i18n/strings_es.g.dart +++ b/lib/i18n/strings_es.g.dart @@ -151,6 +151,11 @@ class _TranslationsCommonEs implements TranslationsCommonEn { @override String get dontAskAgain => 'No volver a preguntar'; @override String get exit => 'Salir'; @override String get viewAll => 'Ver todo'; + @override String get checkingNetwork => 'Comprobando red...'; + @override String get refreshingServers => 'Actualizando servidores...'; + @override String get loadingServers => 'Cargando servidores...'; + @override String get connectingToServers => 'Conectando a servidores...'; + @override String get startingOfflineMode => 'Iniciando modo sin conexión...'; } // Path: screens @@ -1338,6 +1343,11 @@ extension on TranslationsEs { 'common.dontAskAgain' => 'No volver a preguntar', 'common.exit' => 'Salir', 'common.viewAll' => 'Ver todo', + 'common.checkingNetwork' => 'Comprobando red...', + 'common.refreshingServers' => 'Actualizando servidores...', + 'common.loadingServers' => 'Cargando servidores...', + 'common.connectingToServers' => 'Conectando a servidores...', + 'common.startingOfflineMode' => 'Iniciando modo sin conexión...', 'screens.licenses' => 'Licencias', 'screens.switchProfile' => 'Cambiar Perfil', 'screens.subtitleStyling' => 'Estilo de Subtítulos', diff --git a/lib/i18n/strings_fr.g.dart b/lib/i18n/strings_fr.g.dart index 53dab1ac..79dac6a8 100644 --- a/lib/i18n/strings_fr.g.dart +++ b/lib/i18n/strings_fr.g.dart @@ -151,6 +151,11 @@ class _TranslationsCommonFr implements TranslationsCommonEn { @override String get dontAskAgain => 'Ne plus demander'; @override String get exit => 'Quitter'; @override String get viewAll => 'Tout afficher'; + @override String get checkingNetwork => 'Vérification du réseau...'; + @override String get refreshingServers => 'Actualisation des serveurs...'; + @override String get loadingServers => 'Chargement des serveurs...'; + @override String get connectingToServers => 'Connexion aux serveurs...'; + @override String get startingOfflineMode => 'Démarrage en mode hors-ligne...'; } // Path: screens @@ -1338,6 +1343,11 @@ extension on TranslationsFr { 'common.dontAskAgain' => 'Ne plus demander', 'common.exit' => 'Quitter', 'common.viewAll' => 'Tout afficher', + 'common.checkingNetwork' => 'Vérification du réseau...', + 'common.refreshingServers' => 'Actualisation des serveurs...', + 'common.loadingServers' => 'Chargement des serveurs...', + 'common.connectingToServers' => 'Connexion aux serveurs...', + 'common.startingOfflineMode' => 'Démarrage en mode hors-ligne...', 'screens.licenses' => 'Licenses', 'screens.switchProfile' => 'Changer de profil', 'screens.subtitleStyling' => 'Configuration des sous-titres', diff --git a/lib/i18n/strings_it.g.dart b/lib/i18n/strings_it.g.dart index 20ea62c6..96039f0c 100644 --- a/lib/i18n/strings_it.g.dart +++ b/lib/i18n/strings_it.g.dart @@ -151,6 +151,11 @@ class _TranslationsCommonIt implements TranslationsCommonEn { @override String get dontAskAgain => 'Non chiedere più'; @override String get exit => 'Esci'; @override String get viewAll => 'Mostra tutto'; + @override String get checkingNetwork => 'Verifica rete...'; + @override String get refreshingServers => 'Aggiornamento server...'; + @override String get loadingServers => 'Caricamento server...'; + @override String get connectingToServers => 'Connessione ai server...'; + @override String get startingOfflineMode => 'Avvio modalità offline...'; } // Path: screens @@ -1338,6 +1343,11 @@ extension on TranslationsIt { 'common.dontAskAgain' => 'Non chiedere più', 'common.exit' => 'Esci', 'common.viewAll' => 'Mostra tutto', + 'common.checkingNetwork' => 'Verifica rete...', + 'common.refreshingServers' => 'Aggiornamento server...', + 'common.loadingServers' => 'Caricamento server...', + 'common.connectingToServers' => 'Connessione ai server...', + 'common.startingOfflineMode' => 'Avvio modalità offline...', 'screens.licenses' => 'Licenze', 'screens.switchProfile' => 'Cambia profilo', 'screens.subtitleStyling' => 'Stile sottotitoli', diff --git a/lib/i18n/strings_ko.g.dart b/lib/i18n/strings_ko.g.dart index c34fb3f1..891b5017 100644 --- a/lib/i18n/strings_ko.g.dart +++ b/lib/i18n/strings_ko.g.dart @@ -151,6 +151,11 @@ class _TranslationsCommonKo implements TranslationsCommonEn { @override String get dontAskAgain => '다시 묻지 않기'; @override String get exit => '종료'; @override String get viewAll => '모두 보기'; + @override String get checkingNetwork => '네트워크 확인 중...'; + @override String get refreshingServers => '서버 새로고침 중...'; + @override String get loadingServers => '서버 로딩 중...'; + @override String get connectingToServers => '서버 연결 중...'; + @override String get startingOfflineMode => '오프라인 모드 시작 중...'; } // Path: screens @@ -1338,6 +1343,11 @@ extension on TranslationsKo { 'common.dontAskAgain' => '다시 묻지 않기', 'common.exit' => '종료', 'common.viewAll' => '모두 보기', + 'common.checkingNetwork' => '네트워크 확인 중...', + 'common.refreshingServers' => '서버 새로고침 중...', + 'common.loadingServers' => '서버 로딩 중...', + 'common.connectingToServers' => '서버 연결 중...', + 'common.startingOfflineMode' => '오프라인 모드 시작 중...', 'screens.licenses' => '라이선스', 'screens.switchProfile' => '프로필 전환', 'screens.subtitleStyling' => '자막 스타일 설정', diff --git a/lib/i18n/strings_nl.g.dart b/lib/i18n/strings_nl.g.dart index da12c779..fc2ca405 100644 --- a/lib/i18n/strings_nl.g.dart +++ b/lib/i18n/strings_nl.g.dart @@ -151,6 +151,11 @@ class _TranslationsCommonNl implements TranslationsCommonEn { @override String get dontAskAgain => 'Niet meer vragen'; @override String get exit => 'Afsluiten'; @override String get viewAll => 'Alles weergeven'; + @override String get checkingNetwork => 'Netwerk controleren...'; + @override String get refreshingServers => 'Servers vernieuwen...'; + @override String get loadingServers => 'Servers laden...'; + @override String get connectingToServers => 'Verbinden met servers...'; + @override String get startingOfflineMode => 'Offlinemodus starten...'; } // Path: screens @@ -1338,6 +1343,11 @@ extension on TranslationsNl { 'common.dontAskAgain' => 'Niet meer vragen', 'common.exit' => 'Afsluiten', 'common.viewAll' => 'Alles weergeven', + 'common.checkingNetwork' => 'Netwerk controleren...', + 'common.refreshingServers' => 'Servers vernieuwen...', + 'common.loadingServers' => 'Servers laden...', + 'common.connectingToServers' => 'Verbinden met servers...', + 'common.startingOfflineMode' => 'Offlinemodus starten...', 'screens.licenses' => 'Licenties', 'screens.switchProfile' => 'Wissel van profiel', 'screens.subtitleStyling' => 'Ondertitel opmaak', diff --git a/lib/i18n/strings_sv.g.dart b/lib/i18n/strings_sv.g.dart index b7d2868b..735b8ab4 100644 --- a/lib/i18n/strings_sv.g.dart +++ b/lib/i18n/strings_sv.g.dart @@ -151,6 +151,11 @@ class _TranslationsCommonSv implements TranslationsCommonEn { @override String get dontAskAgain => 'Fråga inte igen'; @override String get exit => 'Avsluta'; @override String get viewAll => 'Visa alla'; + @override String get checkingNetwork => 'Kontrollerar nätverk...'; + @override String get refreshingServers => 'Uppdaterar servrar...'; + @override String get loadingServers => 'Laddar servrar...'; + @override String get connectingToServers => 'Ansluter till servrar...'; + @override String get startingOfflineMode => 'Startar offlineläge...'; } // Path: screens @@ -1338,6 +1343,11 @@ extension on TranslationsSv { 'common.dontAskAgain' => 'Fråga inte igen', 'common.exit' => 'Avsluta', 'common.viewAll' => 'Visa alla', + 'common.checkingNetwork' => 'Kontrollerar nätverk...', + 'common.refreshingServers' => 'Uppdaterar servrar...', + 'common.loadingServers' => 'Laddar servrar...', + 'common.connectingToServers' => 'Ansluter till servrar...', + 'common.startingOfflineMode' => 'Startar offlineläge...', 'screens.licenses' => 'Licenser', 'screens.switchProfile' => 'Byt profil', 'screens.subtitleStyling' => 'Undertext-styling', diff --git a/lib/i18n/strings_zh.g.dart b/lib/i18n/strings_zh.g.dart index 37a6fff0..013cfa06 100644 --- a/lib/i18n/strings_zh.g.dart +++ b/lib/i18n/strings_zh.g.dart @@ -151,6 +151,11 @@ class _TranslationsCommonZh implements TranslationsCommonEn { @override String get dontAskAgain => '不再询问'; @override String get exit => '退出'; @override String get viewAll => '查看全部'; + @override String get checkingNetwork => '正在检查网络...'; + @override String get refreshingServers => '正在刷新服务器...'; + @override String get loadingServers => '正在加载服务器...'; + @override String get connectingToServers => '正在连接服务器...'; + @override String get startingOfflineMode => '正在启动离线模式...'; } // Path: screens @@ -1338,6 +1343,11 @@ extension on TranslationsZh { 'common.dontAskAgain' => '不再询问', 'common.exit' => '退出', 'common.viewAll' => '查看全部', + 'common.checkingNetwork' => '正在检查网络...', + 'common.refreshingServers' => '正在刷新服务器...', + 'common.loadingServers' => '正在加载服务器...', + 'common.connectingToServers' => '正在连接服务器...', + 'common.startingOfflineMode' => '正在启动离线模式...', 'screens.licenses' => '许可证', 'screens.switchProfile' => '切换用户', 'screens.subtitleStyling' => '字幕样式', diff --git a/lib/i18n/sv.i18n.json b/lib/i18n/sv.i18n.json index 2f52a17e..9a0761e9 100644 --- a/lib/i18n/sv.i18n.json +++ b/lib/i18n/sv.i18n.json @@ -52,7 +52,12 @@ "exitConfirmMessage": "Är du säker på att du vill avsluta?", "dontAskAgain": "Fråga inte igen", "exit": "Avsluta", - "viewAll": "Visa alla" + "viewAll": "Visa alla", + "checkingNetwork": "Kontrollerar nätverk...", + "refreshingServers": "Uppdaterar servrar...", + "loadingServers": "Laddar servrar...", + "connectingToServers": "Ansluter till servrar...", + "startingOfflineMode": "Startar offlineläge..." }, "screens": { "licenses": "Licenser", diff --git a/lib/i18n/zh.i18n.json b/lib/i18n/zh.i18n.json index 3453e72a..5b08f62c 100644 --- a/lib/i18n/zh.i18n.json +++ b/lib/i18n/zh.i18n.json @@ -52,7 +52,12 @@ "exitConfirmMessage": "确定要退出吗?", "dontAskAgain": "不再询问", "exit": "退出", - "viewAll": "查看全部" + "viewAll": "查看全部", + "checkingNetwork": "正在检查网络...", + "refreshingServers": "正在刷新服务器...", + "loadingServers": "正在加载服务器...", + "connectingToServers": "正在连接服务器...", + "startingOfflineMode": "正在启动离线模式..." }, "screens": { "licenses": "许可证", diff --git a/lib/main.dart b/lib/main.dart index 84820f9a..7f1cebd4 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -4,6 +4,7 @@ import 'package:flutter/gestures.dart'; import 'dart:io' show Platform; import 'package:window_manager/window_manager.dart'; import 'package:provider/provider.dart'; +import 'package:flutter_svg/flutter_svg.dart'; import 'screens/main_screen.dart'; import 'screens/auth_screen.dart'; import 'services/storage_service.dart'; @@ -46,6 +47,7 @@ import 'i18n/strings.g.dart'; import 'focus/input_mode_tracker.dart'; import 'focus/key_event_utils.dart'; import 'package:intl/date_symbol_data_local.dart'; +import 'utils/navigation_transitions.dart'; // Workaround for Flutter bug #177992: iPadOS 26.1+ misinterprets fake touch events // at (0,0) as barrier taps, causing modals to dismiss immediately. @@ -368,13 +370,21 @@ class SetupScreen extends StatefulWidget { } class _SetupScreenState extends State { + String _statusMessage = ''; + @override void initState() { super.initState(); _loadSavedCredentials(); } + void _setStatus(String message) { + if (mounted) setState(() => _statusMessage = message); + } + Future _loadSavedCredentials() async { + _setStatus(t.common.checkingNetwork); + final storage = await StorageService.getInstance(); final registry = ServerRegistry(storage); @@ -386,6 +396,8 @@ class _SetupScreenState extends State { final hasNetwork = !connectivityResult.contains(ConnectivityResult.none); if (hasNetwork) { + _setStatus(t.common.refreshingServers); + // Refresh servers from API to get updated connection info (IPs may change). // If the stored token is invalid (e.g. after removing a Plex profile PIN), // redirect to AuthScreen so the user can re-authenticate. @@ -393,18 +405,20 @@ class _SetupScreenState extends State { if (refreshResult == ServerRefreshResult.authError) { await storage.clearCredentials(); if (mounted) { - Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) => const AuthScreen())); + Navigator.pushReplacement(context, fadeRoute(const AuthScreen())); } return; } } + _setStatus(t.common.loadingServers); + // Load all configured servers final servers = await registry.getServers(); if (servers.isEmpty) { if (mounted) { - Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) => const AuthScreen())); + Navigator.pushReplacement(context, fadeRoute(const AuthScreen())); } return; } @@ -413,15 +427,18 @@ class _SetupScreenState extends State { // No network — skip connection attempts and go straight to offline mode if (!hasNetwork) { + _setStatus(t.common.startingOfflineMode); await context.read().ensureInitialized(); if (!mounted) return; Navigator.pushReplacement( context, - MaterialPageRoute(builder: (context) => const MainScreen(isOfflineMode: true)), + fadeRoute(const MainScreen(isOfflineMode: true)), ); return; } + _setStatus(t.common.connectingToServers); + try { final result = await ServerConnectionOrchestrator.connectAndInitialize( servers: servers, @@ -442,25 +459,27 @@ class _SetupScreenState extends State { Navigator.pushReplacement( context, - MaterialPageRoute(builder: (context) => MainScreen(client: result.firstClient!)), + fadeRoute(MainScreen(client: result.firstClient!)), ); } else { + _setStatus(t.common.startingOfflineMode); await context.read().ensureInitialized(); if (!mounted) return; Navigator.pushReplacement( context, - MaterialPageRoute(builder: (context) => const MainScreen(isOfflineMode: true)), + fadeRoute(const MainScreen(isOfflineMode: true)), ); } } catch (e, stackTrace) { appLogger.e('Error during multi-server connection', error: e, stackTrace: stackTrace); if (mounted) { + _setStatus(t.common.startingOfflineMode); await context.read().ensureInitialized(); if (!mounted) return; Navigator.pushReplacement( context, - MaterialPageRoute(builder: (context) => const MainScreen(isOfflineMode: true)), + fadeRoute(const MainScreen(isOfflineMode: true)), ); } } @@ -468,12 +487,33 @@ class _SetupScreenState extends State { @override Widget build(BuildContext context) { - return Scaffold( - body: Center( - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [const CircularProgressIndicator(), const SizedBox(height: 16), Text(t.common.loading)], - ), + return ColoredBox( + color: Theme.of(context).scaffoldBackgroundColor, + child: Stack( + children: [ + // Icon dead-center, matching Android 12+ splash position. + // 192dp accounts for the 16% inset in ic_launcher.xml. + Center( + child: SvgPicture.asset('assets/plezy_adaptive_foreground.svg', width: 288, height: 288), + ), + // Status text below center, independent of icon position. + Positioned( + left: 0, + right: 0, + bottom: MediaQuery.of(context).size.height * 0.5 - 140, + child: AnimatedSwitcher( + duration: const Duration(milliseconds: 200), + child: Text( + _statusMessage, + key: ValueKey(_statusMessage), + textAlign: TextAlign.center, + style: Theme.of(context).textTheme.bodyMedium?.copyWith( + color: Theme.of(context).colorScheme.onSurface.withValues(alpha: 0.6), + ), + ), + ), + ), + ], ), ); } diff --git a/lib/providers/theme_provider.dart b/lib/providers/theme_provider.dart index 2962db09..98743ea8 100644 --- a/lib/providers/theme_provider.dart +++ b/lib/providers/theme_provider.dart @@ -1,4 +1,6 @@ +import 'dart:io' show Platform; import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; import 'package:material_symbols_icons/symbols.dart'; import '../services/settings_service.dart' as settings; import '../theme/mono_theme.dart'; @@ -24,6 +26,7 @@ class ThemeProvider extends ChangeNotifier { Future _initializeSettings() async { _settingsService = await settings.SettingsService.getInstance(); _themeMode = _settingsService.getThemeMode(); + _updateSplashTheme(_themeMode); notifyListeners(); } @@ -63,14 +66,28 @@ class ThemeProvider extends ChangeNotifier { } } + static const _themeChannel = MethodChannel('app.plezy/theme'); + Future setThemeMode(settings.ThemeMode mode) async { if (_themeMode != mode) { _themeMode = mode; await _settingsService.setThemeMode(mode); + _updateSplashTheme(mode); notifyListeners(); } } + void _updateSplashTheme(settings.ThemeMode mode) { + if (!Platform.isAndroid) return; + final name = switch (mode) { + settings.ThemeMode.dark => 'dark', + settings.ThemeMode.oled => 'oled', + settings.ThemeMode.light => 'light', + settings.ThemeMode.system => 'system', + }; + _themeChannel.invokeMethod('setSplashTheme', {'mode': name}); + } + String get themeModeDisplayName { switch (_themeMode) { case settings.ThemeMode.light: diff --git a/lib/screens/auth_screen.dart b/lib/screens/auth_screen.dart index 5dc25f79..508b0ad1 100644 --- a/lib/screens/auth_screen.dart +++ b/lib/screens/auth_screen.dart @@ -17,6 +17,7 @@ import '../theme/mono_tokens.dart'; import '../utils/app_logger.dart'; import '../utils/platform_detector.dart'; import '../focus/focusable_button.dart'; +import '../utils/navigation_transitions.dart'; import 'main_screen.dart'; class AuthScreen extends StatefulWidget { @@ -114,7 +115,7 @@ class _AuthScreenState extends State { if (!mounted) return; Navigator.pushReplacement( context, - MaterialPageRoute(builder: (context) => MainScreen(client: result.firstClient!)), + fadeRoute(MainScreen(client: result.firstClient!)), ); } catch (e) { appLogger.e('Failed to connect to servers', error: e); diff --git a/lib/utils/navigation_transitions.dart b/lib/utils/navigation_transitions.dart new file mode 100644 index 00000000..b729af77 --- /dev/null +++ b/lib/utils/navigation_transitions.dart @@ -0,0 +1,12 @@ +import 'package:flutter/material.dart'; + +Route fadeRoute(Widget page) { + return PageRouteBuilder( + opaque: false, + pageBuilder: (context, animation, secondaryAnimation) => page, + transitionsBuilder: (context, animation, secondaryAnimation, child) => + FadeTransition(opacity: animation, child: child), + transitionDuration: const Duration(milliseconds: 500), + reverseTransitionDuration: const Duration(milliseconds: 500), + ); +} diff --git a/pubspec.lock b/pubspec.lock index 99582c4e..d014e342 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -41,14 +41,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.3" - archive: - dependency: transitive - description: - name: archive - sha256: "2fde1607386ab523f7a36bb3e7edb43bd58e6edaf2ffb29d8a6d578b297fdbbd" - url: "https://pub.dev" - source: hosted - version: "4.0.7" args: dependency: transitive description: @@ -488,14 +480,6 @@ packages: url: "https://pub.dev" source: hosted version: "3.4.1" - flutter_launcher_icons: - dependency: "direct dev" - description: - name: flutter_launcher_icons - sha256: "10f13781741a2e3972126fae08393d3c4e01fa4cd7473326b94b72cf594195e7" - url: "https://pub.dev" - source: hosted - version: "0.14.4" flutter_lints: dependency: "direct dev" description: @@ -591,14 +575,6 @@ packages: url: "https://pub.dev" source: hosted version: "4.1.2" - image: - dependency: transitive - description: - name: image - sha256: "4e973fcf4caae1a4be2fa0a13157aa38a8f9cb049db6529aa00b4d71abc4d928" - url: "https://pub.dev" - source: hosted - version: "4.5.4" in_app_review: dependency: "direct main" description: @@ -896,14 +872,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.5.2" - posix: - dependency: transitive - description: - name: posix - sha256: "6323a5b0fa688b6a010df4905a56b00181479e6d10534cecfecede2aa55add61" - url: "https://pub.dev" - source: hosted - version: "6.0.3" process: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 0acf7863..8f6e0d13 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -65,7 +65,6 @@ dev_dependencies: flutter_lints: ^6.0.0 build_runner: ^2.4.7 json_serializable: ^6.7.1 - flutter_launcher_icons: ^0.14.4 slang_build_runner: ^4.12.0 dart_code_linter: ^3.2.1 drift_dev: ^2.14.0 @@ -81,22 +80,9 @@ flutter: assets: - lib/data/iso_639_codes.json - assets/plezy.png + - assets/plezy_adaptive_foreground.svg - assets/go-noto-current-regular.ttf - assets/shaders/nvscaler/ - assets/shaders/anime4k/ - assets/player_icons/ - assets/rating_icons/ - -flutter_launcher_icons: - android: true - ios: false - image_path: "assets/plezy.png" - adaptive_icon_background: "#ffffff" - adaptive_icon_foreground: "assets/plezy_android_foreground.png" - adaptive_icon_monochrome: "assets/plezy_monochrome.png" - macos: - generate: false - windows: - generate: true - linux: - generate: true