From d743e5e393e13691893fbd0e9b14f9caf2e74324 Mon Sep 17 00:00:00 2001 From: Tsanie Lily Date: Mon, 18 May 2020 13:29:51 +0800 Subject: [PATCH] feature: login support for Android feature: display profile information --- Pixiview.Android/Pixiview.Android.csproj | 9 +- .../Renderers/HybridWebViewRenderer.cs | 117 ++++++++++++++++++ .../Resources/Resource.designer.cs | 44 +++---- .../Resources/drawable/no_profile.png | Bin 0 -> 1700 bytes .../Resources/drawable/userprofile.jpg | Bin 20952 -> 0 bytes Pixiview.iOS/Pixiview.iOS.csproj | 2 +- .../Renderers/HybridWebViewRenderer.cs | 2 +- Pixiview.iOS/Resources/no_profile.png | Bin 0 -> 1700 bytes Pixiview.iOS/Resources/userprofile.jpg | Bin 20952 -> 0 bytes Pixiview/App.cs | 4 + Pixiview/AppShell.xaml | 8 +- Pixiview/AppShell.xaml.cs | 68 +++++++++- Pixiview/Illust/IllustCollectionPage.cs | 24 +++- Pixiview/Illust/RankingPage.xaml.cs | 2 +- Pixiview/Illust/ViewIllustPage.xaml.cs | 27 +++- Pixiview/Login/HybridWebView.cs | 6 +- Pixiview/OptionPage.xaml | 9 ++ Pixiview/OptionPage.xaml.cs | 106 ++++++++++++---- Pixiview/Resources/Languages/zh-CN.xml | 4 + Pixiview/Resources/ResourceHelper.cs | 2 + Pixiview/UI/StyleDefinition.cs | 1 + Pixiview/Utils/Extensions.cs | 4 + Pixiview/Utils/HttpUtility.cs | 15 ++- Pixiview/Utils/IllustLegacy.cs | 20 +++ Pixiview/Utils/Stores.cs | 84 +++++++++++-- 25 files changed, 473 insertions(+), 85 deletions(-) create mode 100644 Pixiview.Android/Renderers/HybridWebViewRenderer.cs create mode 100644 Pixiview.Android/Resources/drawable/no_profile.png delete mode 100644 Pixiview.Android/Resources/drawable/userprofile.jpg create mode 100644 Pixiview.iOS/Resources/no_profile.png delete mode 100644 Pixiview.iOS/Resources/userprofile.jpg diff --git a/Pixiview.Android/Pixiview.Android.csproj b/Pixiview.Android/Pixiview.Android.csproj index fff1223..47aaf0d 100644 --- a/Pixiview.Android/Pixiview.Android.csproj +++ b/Pixiview.Android/Pixiview.Android.csproj @@ -80,6 +80,7 @@ + @@ -95,10 +96,6 @@ - - - - @@ -207,6 +204,10 @@ + + + + diff --git a/Pixiview.Android/Renderers/HybridWebViewRenderer.cs b/Pixiview.Android/Renderers/HybridWebViewRenderer.cs new file mode 100644 index 0000000..5f41826 --- /dev/null +++ b/Pixiview.Android/Renderers/HybridWebViewRenderer.cs @@ -0,0 +1,117 @@ +using Android.Content; +using Android.Webkit; +using Pixiview.Droid.Renderers; +using Pixiview.Login; +using Pixiview.Utils; +using Xamarin.Forms; +using Xamarin.Forms.Platform.Android; + +[assembly: ExportRenderer(typeof(HybridWebView), typeof(HybridWebViewRenderer))] +namespace Pixiview.Droid.Renderers +{ + public class HybridWebViewRenderer : WebViewRenderer + { + public HybridWebViewRenderer(Context context) : base(context) + { + } + + protected override void OnElementChanged(ElementChangedEventArgs e) + { + base.OnElementChanged(e); + + if (e.NewElement is HybridWebView webView) + { + Control.SetWebViewClient(new PixivWebViewClient(this)); + Control.LoadUrl(webView.Uri); + } + } + + private class PixivWebViewClient : FormsWebViewClient + { + private readonly HybridWebView webView; + + public PixivWebViewClient(HybridWebViewRenderer renderer) : base(renderer) + { + if (renderer.Element is HybridWebView view) + { + webView = view; + } + } + + //public override bool ShouldOverrideUrlLoading(Android.Webkit.WebView view, IWebResourceRequest request) + //{ + // var uri = request.Url; + // if (uri.Host == "www.pixiv.net" && uri.Path == "/") + // { + // var client = new HttpClient(new HttpClientHandler { UseCookies = false }) + // { + // BaseAddress = new Uri($"{uri.Scheme}://{uri.Host}"), + // Timeout = TimeSpan.FromSeconds(30) + // }; + // var pathAndQuery = uri.Path; + // if (!string.IsNullOrEmpty(uri.Query)) + // { + // pathAndQuery += "?" + uri.EncodedQuery; + // } + // using (var req = new HttpRequestMessage( + // request.Method == "POST" ? HttpMethod.Post : HttpMethod.Get, + // pathAndQuery)) + // { + // var headers = req.Headers; + // if (request.RequestHeaders != null) + // { + // foreach (var h in request.RequestHeaders) + // { + // headers.Add(h.Key, h.Value); + // } + // } + + // using (var response = client.SendAsync(req, HttpCompletionOption.ResponseHeadersRead).Result) + // { + // if (response.Headers.TryGetValues("x-userid", out var vals)) + // { + // Configs.SetUserId(string.Join(';', vals), true); + // } + // } + // } + // return true; + // } + // return base.ShouldOverrideUrlLoading(view, request); + //} + + public override void OnPageFinished(Android.Webkit.WebView view, string url) + { + base.OnPageFinished(view, url); + + if (url == "https://www.pixiv.net/" || + url == "https://www.pixiv.net/en/") + { + var cookieManager = CookieManager.Instance; + var cookie = cookieManager.GetCookie(url); + Configs.SetCookie(cookie, true); + + // user-id + if (cookie != null) + { + var index = cookie.IndexOf("PHPSESSID="); + if (index >= 0) + { + var session = cookie.Substring(index + 10); + index = session.IndexOf('_'); + if (index > 0) + { + session = session.Substring(0, index); + Configs.SetUserId(session, true); + } + } + } + + if (webView != null) + { + webView.OnLoginHandle(); + } + } + } + } + } +} diff --git a/Pixiview.Android/Resources/Resource.designer.cs b/Pixiview.Android/Resources/Resource.designer.cs index e9756e4..f0122b8 100644 --- a/Pixiview.Android/Resources/Resource.designer.cs +++ b/Pixiview.Android/Resources/Resource.designer.cs @@ -8337,65 +8337,65 @@ namespace Pixiview.Droid // aapt resource value: 0x7F070069 public const int navigation_empty_icon = 2131165289; - // aapt resource value: 0x7F07006A - public const int notification_action_background = 2131165290; - // aapt resource value: 0x7F07006B - public const int notification_bg = 2131165291; + public const int notification_action_background = 2131165291; // aapt resource value: 0x7F07006C - public const int notification_bg_low = 2131165292; + public const int notification_bg = 2131165292; // aapt resource value: 0x7F07006D - public const int notification_bg_low_normal = 2131165293; + public const int notification_bg_low = 2131165293; // aapt resource value: 0x7F07006E - public const int notification_bg_low_pressed = 2131165294; + public const int notification_bg_low_normal = 2131165294; // aapt resource value: 0x7F07006F - public const int notification_bg_normal = 2131165295; + public const int notification_bg_low_pressed = 2131165295; // aapt resource value: 0x7F070070 - public const int notification_bg_normal_pressed = 2131165296; + public const int notification_bg_normal = 2131165296; // aapt resource value: 0x7F070071 - public const int notification_icon_background = 2131165297; + public const int notification_bg_normal_pressed = 2131165297; // aapt resource value: 0x7F070072 - public const int notification_template_icon_bg = 2131165298; + public const int notification_icon_background = 2131165298; // aapt resource value: 0x7F070073 - public const int notification_template_icon_low_bg = 2131165299; + public const int notification_template_icon_bg = 2131165299; // aapt resource value: 0x7F070074 - public const int notification_tile_bg = 2131165300; + public const int notification_template_icon_low_bg = 2131165300; // aapt resource value: 0x7F070075 - public const int notify_panel_notification_icon_bg = 2131165301; + public const int notification_tile_bg = 2131165301; // aapt resource value: 0x7F070076 - public const int segmented_control_background = 2131165302; + public const int notify_panel_notification_icon_bg = 2131165302; + + // aapt resource value: 0x7F07006A + public const int no_profile = 2131165290; // aapt resource value: 0x7F070077 - public const int segmented_control_first_background = 2131165303; + public const int segmented_control_background = 2131165303; // aapt resource value: 0x7F070078 - public const int segmented_control_last_background = 2131165304; + public const int segmented_control_first_background = 2131165304; // aapt resource value: 0x7F070079 - public const int splash_logo = 2131165305; + public const int segmented_control_last_background = 2131165305; // aapt resource value: 0x7F07007A - public const int splash_screen = 2131165306; + public const int splash_logo = 2131165306; // aapt resource value: 0x7F07007B - public const int tooltip_frame_dark = 2131165307; + public const int splash_screen = 2131165307; // aapt resource value: 0x7F07007C - public const int tooltip_frame_light = 2131165308; + public const int tooltip_frame_dark = 2131165308; // aapt resource value: 0x7F07007D - public const int userprofile = 2131165309; + public const int tooltip_frame_light = 2131165309; static Drawable() { diff --git a/Pixiview.Android/Resources/drawable/no_profile.png b/Pixiview.Android/Resources/drawable/no_profile.png new file mode 100644 index 0000000000000000000000000000000000000000..9c4e4fb9977b850f447ee6f0a57ca152378cb7f6 GIT binary patch literal 1700 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 sP`p~!D!HnT=Y->w - + \ No newline at end of file diff --git a/Pixiview.iOS/Renderers/HybridWebViewRenderer.cs b/Pixiview.iOS/Renderers/HybridWebViewRenderer.cs index a3cdf90..933bde7 100644 --- a/Pixiview.iOS/Renderers/HybridWebViewRenderer.cs +++ b/Pixiview.iOS/Renderers/HybridWebViewRenderer.cs @@ -64,7 +64,7 @@ namespace Pixiview.iOS.Renderers public override async void DidFinishNavigation(WKWebView webView, WKNavigation navigation) { var url = webView.Url; - if (url.Host == "www.pixiv.net" && url.Path == "/") + if (url.Host == "www.pixiv.net" && (url.Path == "/" || url.Path == "/en/")) { var store = webView.Configuration.WebsiteDataStore.HttpCookieStore; var result = await Configs.RequestCookieContainer(store); diff --git a/Pixiview.iOS/Resources/no_profile.png b/Pixiview.iOS/Resources/no_profile.png new file mode 100644 index 0000000000000000000000000000000000000000..9c4e4fb9977b850f447ee6f0a57ca152378cb7f6 GIT binary patch literal 1700 zcmV;V23z@wP)$JMI4 z&7iZ#z023S$knL2%&@@FvBA*0$=1Kj*rd0~$<*GSvc{&k%bT#o$kW}x&Dp8D%(KJN zr@G6dw#m=f;j+Tf&e-9`(cG-P&c@Q*!Ohvs*5J0q)U?CW(Awg-#?;W+;-Iw0zs%Xg z&)c)Y(w(u!ufWjD)!)t6;KI(@qP57azRtSH*3;bMqPEGr%GbBX)XLS~%hunjyv?=5 z)3L$P!_V5c#ni68&ZfA^!Oq#Nz0ISw$ja2-$I{%YyUfbf-?qfl&)MO#!qL>-y!ooKHh;bsG7-EYPNvzg*n={;bzzj?kd3F0|gO7ImdwTqg zl}Z^5`+}K$GL2Um9&mpIBCCO)`utIr*!YV{9ilU828Ou1tYuJ4E z)UOmrCSV>={E4al5U*08IF9t3!=2Tn-YYeRedH!e@SRYkp_M645vV9N0IEuzV0`4( zN`QUlCLBz7*>l%Tgw{fO(jts&m*8=0=r*KX+}E!Km!S)}$C0z2fs zUeEg*`kKEp^jS85W^itL5>ca8ynxoBr~nvWa$>8uNUA}tZBA0O@3S4RHNvTt=`|L$ z%ONlz_X;tRSF`6|hPa-kZd#M`ih7D-V!ghTNIfu9s+D78bforyF^8ftJ! zG7t36dw`iEFM(0<$vo|8>L;>1Lbpgh;Eie|BeF=7uqg%zG%0RFsRMa~rAXE!Jd252 zrE(-qI8WEO^_c1elkJjci=>tSkK{KDC~O2G6!~zfRNRwn0T;p6R>u?$ZYjERsU1$0 z7fE#hQ&Q)4{Qurn8?fd6JCd59FTSHws}%QhsVPqVS}HY9(Lo?X(R(rVf@Ha;Qyh2{ z&AGLDNHXne*`-oFiX;MQY8GBh&5|5Xr?aS~Axw&jUK$EwsZ?xJ%R!iJYUP(xnvUqgb?WR&orq(D1;pd-yIn`_P(I&7#5eDnK_zalBOO?DG__ z!uJqN+qix?6_rUtJR|$wv?y*isux))l~i=MskKLVqr6h;8W{P54Zx*n|L&Y74T>hh z{{W6s$^$%qaDZ!nr~;@fSM`SeK^?$3=SeCsR&G)~jIgBM4d;}Hc(c*g^Qo(JVeyG* z9}93UITO8kk5rVl7?QrmLcCwI(q4{Q2dmZ3#5q-HVPUOLMf!3-hS;Naf>rBB+(L|O zd_A|Z6tjEM-2~7#s8zA{2GooZ*4;2lZ6E9Du8Y9vfZ_^k$s==T>fZ6jSH~1a9c!t= zId@o3E}zQvv7UD3O6yopW}6|!pCha*^J=%qM~(9m)>}8PQfEq?cv!6uA3oR{iGTWd zFQvrqeGC)SCPdUPfEfXGQ(s|*P}FP)Q%2P5#)m2XEp<{6 z%vn&UI!v;uPj3a2VvD-S2F&XGrXKDDrioMPpc0rjnNfoZiqKNb?GnZK?lK?u4n@=#iX(2Aoh48tf6A;*VifGtj9JJ8#cKpi@A?d-Sl==oD?(XTVVd{y)+p0`#p3In zFHyR=EqTo6K?iTc*#1ul>f4};x1@7tH}_lc+I1)X+g=>g006=O0Gk?ujh#!TV*W*d u3_{wc@uWT7omG|hS@9PD000000DuGY#6=NDjDNlW0000o*cMTHUmT%>^^3UGx zuI@hd&a0|E?{xLMb^C4cZ4-bgFD)kxfPsMl$i8oYw-tcIfA0RjfQ5yDdEa4R{}=xE z73_bU{2vbfFSGw;{{KC{{RUtm10aB6I2dXGEEWtL7R*~efC2!3fro{A@9uvA5eXRu z4ju*p6%F>?;0xw|3}E135n$or5RedH0B|s{@Cb-VSO8>f94ZuCY7Q|xHGED}7vT3q z0xt2NwWx$NwCX_@bUbD~QPU1=$G$s ztw@-6qs%xVdqDU}lUrC06<5ndV<|1&i}@mj+nR@!-T~7ZH%GX8ySo|iD-S@L{Ec7W zHe&koED`;)C;cCc-JB1fNLBDOH9^XF?+t-(pQ|YXL>Ka#nHS{k^GV{VsE0a>;nS%v z37b-T1@51Oag|fzZjHN}QJ`wnR!&bV;3RNo-)fVt5{6*~3Gp+U*bZM4N|d_x06)3C z2b5;4toq#Trz|!?Qjx5`f^5{mKro6I32{Yyop7`YX;P!|NqMg6H5|jHlc8FyWsR1g zMMOy$Nu}SjnUo6!9$svMb(-z8vy6;e_Rfrw-@;I)RNKM_aSTr-jjdWze#25HmqUCw<`NOV$j?$5gqkO(;Rdh~5qDp*$GSF- zzoZg`KD*b&9o)SEL{H`zPnGVv1r4}m?g)2I(0!J-<8gnixX&kEI}n*B8Oz3^7BmG& zk3>v2+SgAq6b?9Q8^YF!84X=l?8*WGNq1_Vp4#R~TgxRjOA>{P{JW!3Yi_oSR-puqNt5vQhOvszj|kW^<=qb3K(4`&3IG&%Op47hQ4%hr z)B6TcwGZr`pYL81(hjF*91Wy6_&dosuUr&jvUx`wcKD8ytp5tG{~lt!V%!~#XLgH~ zTKrX8<8B5y{MF`JrMD2Km-le<8K3&|;=LdSY-%(cz!gIWV48meT89vxngrqVhFAyT z*Ai1v)7SBayylWQ1YZB0TBtl2{a%HWryTc=jzjDB_Cl2d7xModTH6$?li(XwFYtPU zq)6&=^5-GYiyXBiL$v#R{*lw|9i31tD|ShLfA8uulZvBQEc_2%MU!fsi3Yhgwn~~p z*gUysd(oVRKeL9SUFx~CBMgs2DEu4{rm z@+*U47CD6V+4?q!$FOq5ID4$jXeYn(De`wyfUaBZ8w1+;fdS3S5p=F^fHrUbky)uN zZ*2%QwQqrIN1&w2q%d62(D-n?po|F`I{rcIZ)fC(Z}dpXMX(MHuc$Eu_N~_@9F6`d zm^#6Iq*i>yliPW#1#Syyy@8UFPX%uPBfc$>7h2cVgO9&!%PXM#!==t+G9=ZkO;V|Q zpKlrn*FG3{G#=Epv^S&?&i%=Nau|rG#@b?aKwNV{M*f#NWu0{vpKOR#n9gx!V31j> zlk}_drdEFn1Jbf7hmMNCM6>jXczu~lacNaLq%*(kv#2?a)0(hynTAR!4?Zw6 zfiH7g_u}hz!RK$amhdiQhi1gsPp7A$3*i(^izUl{c0QZO-fdS=Ltg z?yljEN*gNGs8|{XzQ<3!&iGkd$s(PZ1n}sfLnH6?Dw$h|k158$`yqHb`%+~7(!b+V z-IPPpdaS&6Np{(Id*;l+s#|jNV8?|bTxqI%{uOh6eLv}T{9G+;XV%8f+#D3tU!Tn} zVf}MZH@H)7z1myTo%pHcCA-Xdob+_Co@wIW8^Gz_(f7+sZtN@#G#+H{keTF=$#vz2 zc}=0`%coX)BxZm7Z7`e66mu$dcG#BZb+EL1t~C!BZ>dvOh`?5pGfG&|-hXB)e@R#* zNYN6egCiMi##3xfXv(lK?Hmv)UtbnL`)>(SSHw!xJ@ZGo5&ghVkPHKe#YJf*_OO^( z+ohHqHn%oSf$`~fnfXLZ8_fYUl3UinH=HK@ z3kJr2w-7Ws0G}@Lb$Xa1>3ICDay#GRA|kw5fwv{9)6kmIng0{jOBLpYW@m-8zw-vz zhB=1OlQJ(85z1{^dz7NEGsY&wjNUI3nW@WpCAH*s*_C}%OB>9XKQ@NGbD2+lC464347TRFwe zWN{jOj{=JwR@#jQsKZsAZ>Q&6Y^?(pFbPatQBOy?pLiC&8bzD|>n9z^tQEv2F+Ziw zuDCU~)DAhx0p><-<8X|{sQ!9q&2#f2xUDYmXY3nGa7^0U zjVWK%(-bEjC2skO*{L!7U}`92HmLNuFEv`A=I>&boKMAFNEkJAQ&O`7999Z36SpL7 z<5fx7KGsIf*}SHAFRhPGc5jsajq>OVw~2Wjb@HgUvRPr9u8$+UP4}5Hhr=5FhSTyl zG|RS~JAgO2hXYS@BH8FDqFNl9PS|VS=GydZ+B_z1c=kb7AI@Je6W2GzUF#*YWha+s z^%b>h(3fX3T~&D`1whWp!J-Sjjwi3IRvYTLe4jRsUI?muO4p<=(OdiGtMUILkrxci z86;=~+O^Eb&CWz|P}g}lM2}~FhN@9%4E*9cFwl^pCvVJQPmEyJgkH(B6c;qT0f?Kb zh8WmPVMnrVv-|}0?4piAsSB11J|-x#o_VqS-@8K-%Gj}9#{OE;+u$1$wkCJn%^7u{CnFP^zBM%BrMglEK=-n+1 zM;vu+Olzz4%_C0~Es9AWSz(Iu*-#{^*bC7amWUAgk2CO>ivG-@xmXYV$CJRiHi-t6ee{87E-Gmp5PjkwO)x{Ubp@ZYM`1z-tCjDIZ3HfwT_iogEa{MB{o zABX(hSGhk^pwhe@XO#19uv_-+o`6mn`QJ&V?mT|bOL~Zk`+FcHrZa3WZS`L{WjoLp zR7WGn%k(m<<+OIo-(NpHm5_c7c63!C)>o?c{l@pz*=0587sUeq^wOCPqI6=OqOU=` zdDfl^EYG-`m!xr--i?aW$iLWu-8A57ZR4=PmsVF%r_zQ^E)L=DjXjpTqPkGppR{xRH$rM}p8P)23A%X9eZKEmI6DO>oi5^wlGc)pD*cv6Ps<}@}AkrVMRCR8Qam$tSJPs zxUnVOCjH3!kdH9OTN_73w5yJig7v|N^Z4NFN1V^}0ya871 ziLaXbM<8=P9AQ_)<>U_*ty;^>rjVbNw!ASxI^gn;JgJC6QjV*;F}Ynn4(PhxC5`icRJ*g^wu`ILcUwt(JA8U?}<;C>OPpD~9z6`c~SN7!WwEbfcYrG}Jm}VJMEnA(oPsiPh=i1nYb@*V;#->aFu~QM~Qx_|7;k zbFqi}gA`}Gqh=4v@pV$kUAVi9F)~a_?-0={0+ZeChJkOjYo}J|guy*rYSl;2l)3k> zU8xyW`tb`eAr4>BV}jS)=IWrZ3QNsfQ|0>Q@t}<2W)>*(4hf0>SsDnQy`<;0o=E#O z^~F*vwD^93&Fs5X`J`0k8K2)B1u5VW?mCw`DeNxh`GbZD7#67NI%yK}T_N&Hv8ml# zF!5jq5;F|%N-a$vo3Fqp;fWMCMPs#8X2fbGR^?{&Ce3PyTPL9cpY@+hBccxOOOQ9( z`1$R;B{ikF@(ALKM8QW>iv;&O)n|4+aZo1MYs&hTrdT&qq6H!&89TZI=2mO+1r%kw z!W8*)oWpM%jl?i0G4`m36V%W3;KuUp(!SOZt;WLzAh~6sYTkrOAnudPol*TqBg25l zuGz8rNXDZ;6aW&RMnj%7hOBVpS!M7ae3h0*pDd&z4$V1+Eb&EtOE~MTND4+$3Pbm3 zRz5A`#0bBydrveQxuSCY?v*jFg}?Fq1E|K};EipW+}_Wgdmrpg$8ilkW-y zU;Dxv@Th}Au|Ml1R8WGPa}|9jB`Njv8aR4)#I(;d<4kn{rO8agCa%&11;(HtU7NiD zKu)3yDMtawlj0p?TYj+H{zhZF=Gu)D#(jLY%$+aE8+ih9L55yjITTo`axY@{9&$be z5$LitX20DLH1O3(Z*;Cu6)f42Bg*!9S{I$TzJmHy2;owL!t+tW1$b{hlNkE$dl|Yu6 zL@FNKw$~fr^GqrUZ#r|<9k-GsDt#1F3A32^wWf6aF-X#^JFWS0q`D45P2YC0z>h^R zQ04i-Q&+2ENFf=-j>=t`qsREcREo;rO1q)|CO~u7+#)8#DkJeZ{y{e4=0a);Laor2 zYq9?Mc_oaK6S)ta7l~--<=<>7C(6-oT-i2v9Zd+Mkw@K@EK`3O4H%sie4y6cR35ZT zh#plIZ@XkVZ&kv+Ty|W6z%?zHHD|m>S~}A)v!;LCsD>5MDT1F$pNXjG^-Ffzh?WLL zQp#D1+w8`4$W8x_M6vLO@9x621mkjx>aX3^e*dbVHl`_=G0Q|I3!StuVVVgTWjsq% zKP`D+FRw~+PqfFA@w`*n0Q-buu_3gsy1s&J+;IGyDust!vN}9xJFTQ>)W&{Y23U3) zY)&*(!9*EDw8hB~q$Mn=xi7W+1JS@r`_41M2=^~N1&G8GPhVWt8z%u@I;-iXu5h>!IQO&JlfdJL5hjVA>XuW z9{L@8iXvpL_Bq-t8;v{1ij`}bI5HV1-ApBa1)|}tML%dYs7eQj-kS;M?S8@L$lCL% zRu7gr^D=BZGrq0Xhh=uZ{o}zC>y#4A7evaZM$C|*yp3!Q3>TU$$Vy}}K9%#Di&8XS zKQ@)&mfM)M!{H}{pCzh`qF>Wu=Ce(w9>nZPMGklaOn#0`hMN@GMJ9zr4MOS!d|P}_ zW6M7_#T>~7PdZmbGtAB>OXE*l@XXeUk(k*!=N>P}j+EK$#Z!gB3P;n$&Fl2jK8Q8M zeZ=q9IDbdPt#D_(+S;(Qq^8FKFBKZ&V3HT*>oCI;rfGHZ`cQ zY!GkS`O5^1Gtz#~tvo@a-h5$4`T(CN`NWnehLon~o`33l2i;FZ)#&SEt~|_3jvynfEuoC-5f#w!#i~l(8!8l z&&x!tAIkrX+A_DWND5oBrt;w&qbp#|p?;YSls1wWc?h;%*>Exw&M*zHB|a!DEG*J< z`VWKn=g*&V=u6;CF|Y4_UtcXsHH+y8>GG&}X0=;ZEIfA<9Y?-+;~vWip_p{5UQ~$d z^=YSY5y;Md8P%T87F5XU!rJ*@?ZnZC*B4tQs+doS_8}1pT!?x6$;Zy%Wnd6j zEzT;QvK^$p^bP^@O)^b)c*3f8Lg9TQ-+5CjtD*~3{$adG_?+$-Z5mt%1Rw~Diq0J|e*tE$Bl%ElsEHYRaPqw9zB|O^lsGO1WCQ&ipIw)xV!l$BoUMa4SXd!1Dd2`g8c+8 zI{g!WIq1mW7SJ<5O7q8ZWmv_8mK;}`$1Gb<)9vl(28ob=$)-|OCLt&ELCIO|38%*P zUCxg_f$m(tCM*#>*Uhzsl3h)6GNJ^g4uk%!-~%P0nmeqnSZYP2Ut*GS)-h!_2m-kh z>k6AIxg3b=QAVr#GhSIuRz~eQqI$a7G`gk*ftu6i3F$##U6}GOabI8{L+7q(a>U$P z?X%q1AjJZ1Hl6E51i10YElmtLK4R}GJ>{IE;}OVFs8H(grg%xZJ?wa`49mIp9tb|C zbP#1`(gyxdEo0LMw4A1y@{7lzvukjs77^Cwlu80pgWb_!IAZ?p+yK+k7cqA z6U=Oh7Zs>C+r@IT$RF&DuMtsx^v#6|WqKFV>SaAMg~e|q-1W>vT`=%ElIucGxCF|i zq(h>Q@4S6!jHdmuZq>{%L}fXpQxS33SP5`LlqLpd|As6^%^C^ikN4=NfH^M4-NR)| zf?7Qs6o8`Hmczw5K2bq#mGuk_HCsbCZ-9u3d|hG)ilSx=osL|Bhnxv1Ecd+@(A}-A zJ#kjIRN!}bxQpZf%&&Co;klGKnq>Ec8SWF? z26qnW}MJzMH{#W6q&%?|QZs-0+y-TXwB1u?z>v zW~^%`?X(Q`f5o4h|FhHD1d=1~(?9iyo_PqCY0IP=#i+|r$CixrdVx(1CKjeZh*rX; z2zZ*VCc!DJCk;ScY^)9WEFI2NZEWeSvxF|Oh55^F=dt6WY(M58jHxI?lzgD+c6zc= z*#`YCL;BxYi9z0A(Vmd1EF>|_^1f(mdjgZMqFHQrb`mAS$pAiLze6>6r|lZ0KpS~c#={*JY-Y^P{hE1C0&Rr+RmOR8nyQ{8*o$$G?gTlMR^qAtN_ zID5HvK|OtJkOxY055@Qxvpt2jK+~Si9gRU!R6pXsX-OKkVk*t$7SEOu;lmNq;mnW++!a=;xzg4{`y1*Rk$;A51pv7)alaih$Jh0YC!~ExL z=c`5wayw&OhARdJH~SL!Y?Hy#C8l!nbZmuJJ%g||*E?kz#O_e#1uDaM$LPg~ylAyA zuvvKjz=3RAYKaGtdV9uTGho1~JI0+RRMVzn{fbIc<03}+iK_fl_R8}+OQLWW^^-=L_Nt;xaOd{xnA+_y#A74G8E%=GF zObI`o@{XGIJ^X6h|$iO zkhH^&y4v%y4ipSC`Gm*Au|n(Q@9SjeS)%63ll!u1NR8Mxj_H%A3%xxVx&yq8Cn;85 ze2QefLUOe?0+d=g^!DrZJe!w8rEj{>KR4Ip>$tG-z;V1SRrL za4RNicSbGO10Uz%PZW|im=2xt2*QQ^g~aVWY|NzONPY2#$VZT>>M$d?rHn@|A6~ob zKAm=w*(uq!I7mtwSLfkD-T?I={+-MBWw7VxT#-_B{=biJfCDvL5HN9~*+)P?WR0Mp zF`|5X*0_6q(uu~YuCui3i>kB@*Z3|$|Mh;%m5D&LY5DQ=4=b!*SS zTe`a@sx;R29)m;i4S0kS&Ii(a4)uLT| z&AS>}nVcydv9Bear8v}bZu(U42eorD0|NU`JZ+e zp*tYM>ZI6cOg*oRa!j-UnladNid0DnN)tr>9X=0Nv~*Ri<%uwW&WfBiY7=^9?{~~M zKnaxa16!|O>c1aq{jS7{OH7s0P;H>vpd0ZmBFyf7>b5;IHm}ysJpItM{p~#3cChJg zzv#q@&Wwa0;zMdVM-W(y84&^3D?qj){xH$Qj~N}$f_B2&KXFfu1Osau1a4BG%cxFA zm!|o$-EdJDcbL~IsY#lc>u*(Cwi)AO=)U>)GmG4AJyA`kQ>0Kgk1io>a-wcs2TT$! z8R6<~IIDTahiJ0XOPpekR}AVmK&Y$(P3SZ9_2bb*qXnS2M1mfLxXI|}?3p6=56P1K zG}8xU7_5xi;lcGn9SiRdP5la_PGo}?sEp)`YG<`MKDU~v5%JdB1O9m`#x(A=%ckCA z89`KfMNHpI_&f9-&!U;HH_Sit4?LglA1mr3Us88kXsW7zPlDt4@g2Kk!rh&HmFFhM zGNahePnt$Bkz~$R$R^`gMFG*KWMzG0b$=aW;x_+uS_}4$VgyrsX2M;Yx)hBHTqo%) z%WNX^Kq=VVkfj3IpieJ-#xC#S)&$3J@@X!N5l-`Vi*z34c%%86eq|#RVNcc%AtmDZ zH$BnN71>sgf>=&M|O@k}pRey_? zu@%`@wYGKPeS)zFFT`}Y5E;|mjKrD;S@>$exx>4a`+PWg$Z0_NPF$iP~IuDOpto>sPJpdyyUT=BBL>F7n}N?;FiH*e9!Hk?AAl zE}C#p_f?LDBw<7x7m@yBpt~`4UQ*W)WpPk<->*=&_&c)Tmg{A_Uc~dUU02`94)OI) zCyw&+9!bRo>#3D7`vknpO_{2}1UGZ@#T(6FzHi?alcGSjJn|}u8aeU4&uuEUPXZ^x z8(lydyCo*_o>(QCpah%N4i_I-MPtrf)AoSl*IK5#Wy^YJ z%ubR$R)|P%XAfOuwMqZh?sC@&F&4Pto14)wS^EwO}1z0h)?l9}vNT@~rR8_*lnsC9> zGPF_p8L^$)zvb;QH0eU-UwPAPapS^;UM@Ip!+vTOwXWhqaAB+EpC`eN^_?c=v7Ay1 zH%VIhHEWAqTAhEVN_qA=Rw?9mJl-?$8`#;7N2G9=qr;9Mmr_m(?&MM5TVTdqyVQPg zCrVPVL{mwNpf6#DSPe8a)Qe4F9*8FVaH+P~Zr)nC(`;#zAHI)7&(J=wJBD(8g`{n# z4%X6jFiPs(|8ZRWnI+u6?317UYL}zV7LYm-E~@fGv27x+8`=VU4G#W3sY6CE)#8canpURq=1FhhBwy0x z$Mska<6cY(0ZOLo>4a?tD+k!;f6{d!YodPfP@)~lbL7I|O{Ad8R|!wk4Bwjb0Me+* z(2n`p?TXm_!S(9qVu>QW{2gQN6upJD=CL(3|ELviZ9)XUhSJm&<{5DklmG92<`P|l z*{q#x3Acq#!l1XCyu+qjqN%3ON`T)UIF8qW9BUeOtrLhXfL|xi;S)k+%UA;*b!7cW zlk|nOgw*6YlU!#`^bfBdo(;>?T<$eZ9%h0)NpGYO&pF0{x+XSz|Kst#;O3C1bX|7| zrr9v(X$6}(b(c^&Q$0g<|Ivsx9}wg_wb~hH>xH(m;0jFCCA-C7e-Cr*gGJxXws~^X z@I9}TwgVm63fdUKN1_^iT%2uOiwGO?A3!SUU4|~_Fq}^54^=LL=R+Z#{o3Z#X%Zrn zls&St4q)d9tlF`6R)V!5ZKg%`LAKyW%)(U%kEYTV-rtMZOpMi0c1FU`MlE_?&V?I` zMFNr|2J@w*y|(uyA9K0zY29-sJ;)^Is_Kp|o1qdtHDG6mz0CfDB|fuVRGHYHKXbG5 zY6DIo3VLH#(lCR6KXNhT>lW^UeK4L1V#Gc1f@5vZ~6@bbf8-? z?MhgYS0W{AT$?<@`4j5@T)tx>v!RRd(mr1fJ@Z6 z`G-+grLvXORQDI57Vo&qC9Wb1?d_i3zNA|Voij&&QF<<8+-VAwOcImCf_MxpTEo(f z{qldET}+klY`R@XBFSXktME(u^__}^)QP%2#HNb-4dC*J?-@tk`ynu~>_u~zqQCO0ZNQ8TtD;3>BgGd?pQ1MPOxJ$kP zL~1%JBwsz8yIzlHB@f=$#f;wo^wfc#)c$h<^XXKzgXTnfJ;;t!$XyDX^VAQ{^VH?J z&?PK_eCQ6uZjB7;DY05?>i_G>cA(C|rCOh|!5d?#IF{OIxGSv4-~C5zdE|v|yiL}$ z@ZtQ*Sgw`t)wuVT=3wd(6Q}lSS>;rrB2AXAD=><1Sq==0p=RJeXypS~OpLQ4gRqDD!f0jN&|~!3mO&#(iD7OI&5exLi-V6kyhooDu%HY@}?C((-_;4Hgq_s!pFPY~`KChmDY$j{ z8HUm%RgQELM9gc>D-tr=d$|n`NV%n8#j6y*B}i!G&)K^^>-RhJdV!yztOEnD z?G0buA;HByMiSb@<2WjMu3@V5aq{7j-VSkPo98r$5}~V6azA`*ew0kqJln^W!%oaK zm1)H%NHyo$MC^X$NrMStbht{y<>8dROYEX?nul!2k)Nl|p%Ys^fNWr)u)QMuiD==% zF)#A1TTvSP6|Owh(w{qrPowtYAf=E6H-cz(PePCKb0B?m($3OEXdma;40U;7gkKoJ zVN<4bYft<4LDrMflte2`tm=;fLP4155gGQ8)<7U4ZZge{*_lhM!Gh2IvIJMB6Daf_ zhBkU^U~OwFrx(@ua4|J9u=a@5|)4XE!7kFfQ<*Hv~g8_6O$miJSl@8AUUw33U}x{S$ujAl&e zKM3NezHS@p7feJVwe%h-?cw)vbv?<7Xd?Exowg?gVY%Ardd%#OAX7<)Qef5#j>sWU z$8o9t85t~Jt#r%oG zSc$aXI5{|WJj;6z^Mwzu(bXJkHth3BzVu9eUP6Y(H(FEi@^*+tNc4jS;c9<9tZ;)o zQ^zQGGK-qJM*GO#w~Os1^=e?!7f>uvBX4!{;R8?Sz}?ESqswZla`uw%Ydu=8T{eE8 zOXfG~-6(+$rXYEp!Rh{duFdLF&vAy(e; zBLCoqm%~j`YKX|3 z>(B;~$R&1#Jl+=UP;dy0H)C`+-zbgHw|6vr9@VH`{1E{bD1;%1@Th~7k#omR?DMI8 z1Kc@edq6vUfAqGeE`Qck9Aq)Et8fgo%s6`-@PF>iulx)$x-T0$Xh;YZL@8_Rn16(l zp)2coO66M7RHzXulIl-zirqC=)yHk#T(D4WY718!WNT<)76^W{5>bZXXsU)pGWSfo zYOOZ4<*7qzO#;Fa*DIYtK5cOWoN?O@?WXe_zO{3WkH#%R;vM&&2YNYL#WJIU7BB=f zdWYGMF3(S4{me$HSiwWl_=6g7C)k1?`#rf?EM=BPG`nOTr9-8KEJ zt8D18Ttgk)XlzRYKm4?y{8Wd0^Ps1OH(uc=fiYZzPjIr2t=&A4D|?2ks`1mOoF$(R zCJ@h)OHpofmmS_&j)H-3Ft<&+@|fW<>WG_j9olu1EvB+ zckQjZOOrKtWU-#DVYHt8)!9C;{6levJG~O#YA?eRPv_CJM1sGeyM1qnuSk@zgF*Ej6#kk=X=|ruOp~rM>V-UO}Ae51?oV)^(hd#gHlx|MsYgn!)!x4OXgo z*WnhY(^U?-S*g3Kj5(L$8lfFlh9H)G~RJPuHZVP3K6#x z`*;y{e*HO>Owy7bYQFArap)~2nK4GIv};Qf#jmO-E*Z;+eh-=n$l#cIJ-OqO1|QPC{Dvf|_U{?6M`FzNu&7KT~>=OU-P+@bIAE9;cDmR9ZveLaKBTzAIS}I ztmsefs+8ZS+2!mg1eT}@)sc_FU}rI+7X>tZw5QA+V)4jpDeDgRkE&YLs#DtYlDFRG z2^tl?nQLpBlG!6as6{_?Gu5tpQN{=_o@qg(YC+J3wLPzx$<8k!%oWLFhlD9o;=eh1 z(^Ly{K1n;+(y8 z78W$N^=?b2v!(`VvWYnKph=8sjU?R?7Ri&R-MU&6aVPe`S{8b%16R8OrY5$D^Fc?^ zRO4Oo4>4UR&N^P8{vHhT99gl>xEoh*FPgjGzSHM3I-B=lO}%vr_JU|VWzg8Eg{{TB z{J?SmmU)eaCA2w``=H_L_l$nv?$3DY2{HL;zCN`t0s(CcGoC)SC*cuwGa9Ly5lDhd znG#n+0EU&?c7Fcf6AgiCs_wk~Dq-Dj|3-R9dFJ#zXJs`U@Ho`45n^ds#x5E7e?REJ zx|RP-ys*0WL~~d;SG1F!T;Q##ECMq|+6osn@o4=LQDPD-WK+#bHnw!1#na_oIQF{% z6T;Jk*hgY;BpNlDhi^CNC<}t3cGz=`WfUm(?0%;84*vOxnh@q$F0yP8$%R_PNV-kB z2TXk~UpSjXISP#EdK`91pp8=t+x4c=Ur`e!?daLwd8iVLo97Q=8KJ6MW)ZZLyb@)> zR7Krrf>Xt1x+KkqIk;mnO@;^O1Pj%c4G?3oh*l zF^*2*X8(&{qy*6iT+0}Z75uKM+6~LhG6f0MZ%&+pwYBgsl3}je^t6%7{48IH<`s@N z!aHqdZ)yQRizUi)wmaq)1N>VW`LO(uoJN9I{7;PM(YKOYLtU?{ zG4E|j)!evNxZ4W*F<}k!((}<_X92R5YLABdJ8hpG6yM(CIrw{uD1%mftlhu<6=1dmGE9k$&6X(y~$cRU{?!Q3_UhV80X6Suwg_vIV@DSMf3# zQH*b@l~hM(JQ@E~aHh92@qpKO@Sbx|7n4=TZ-6;`TRC&v&~^>h zrXT1@dYIc;C4|qV+x%P)plso|GNiY5)6V~G<~pPhnkI0FkQ5|t?hHcd@|gyiLQLj z&)SOLP4>BgnPh2kjM!@3!JNp~eXrCpK`OdYmmm6NQ7%b`Vq0$wehO*So^eU9ux+@X zKadXh7DIVosnS9F+U*qRnE-IK06Ak@x%(iGKLf4Hj$#;Pqyc>@g~Q9Y(>CSJcI`=a zr)}bA0=BMks-1_y>Y*eSpQ`z%B~to!`l9k&<>bwBYOFQmfaz!Kf8H;iXd+Yv<^R}_F zPlhTrwagIh$?mS@uWF}5tZSe|ssODJtn$u}a)(@42R7!6y0E&$lZIZEv!@&S$#RZ< z#&l&P6^&6dmdTLt1cd?CZCy}6xJk?YOcY&cD~=Q`-kIRG4(AtR8mu82`_xK*C9urxS#1c${en^?NPj!5HW-E?@KX-g3V-G7w zxwY77XzbgMxq^Q*I6fn+c&y6rtCH8d2q3mqJdica{G)H=aT3KdA*k8X-=MxsW{QCnf_ zFI4q1D1ruQodbKD{c1T!1BV(P5JIA_u0ryR)x@2U3O+G(?@d+Pr8Obp>~gmZpXz=` z620@jJy2x*8kJYl|NXN#>6S7EX5!TwU>SpJ11P6xnWp5YfhzCSGH~^!z_`uWn z=rRggXUHRMB-??$Qz(!;p+J?d&+gd1W23dKWXnh%f+Ab`@#@>la4vhT2)U$s_f3|G z6fkXQwBMmPNS}`m{5S?5!bOKFko{62F<(c0J2X;u@>d?|H$vXm!ZsjuZ-55oE-IVq zFpvEbKlPQ>bKe)YV#dRtO3{eDhq}@(8VP$Y%pdv32qt+A%`#o!cbJ2qh2$=Tip)L& zKGu6!16zM>kiXyp<#+pJ6H9s(d6$yh zO?hGz&p+p*3Ynh5Mb@rx)1{`Bg93p5_|JSrS=Qul09RowDDk+@JplqKA<$$nk#R#Nc}7qVp^@6=KK^oaIl-f2DJ0gGOzOu8l*C?&|2Qksm~L= zb;{mbUMH!j^(}QZ``${|k*#k69OyLt+4^`5UOsZD#D~)5GHF3pQ|H?bgbm{0AKmn} zrA#4pwubSsgE70`n`()``ILU47^*#Wak2K9*e#XW-BE){Ym1H&VLd&!j@ipzIRa;u z#n%Q=2mzoH#-`W&#>kq+AOZ(dOKwG*!6A<0A*Ez1d^}SaYwM(_KbfzUYo2OhW-IxC zc{1oWZbG@U$T^P|e{=bdfjE2|g7uz$vFs=l+{D4Z8D0GrvfqWG1_dN@zU=X`)pPjx zJ%t^K*(h{0s5o_e{TD$yL}JSbrj-nd865DAQ*=K1=1nxG*lB3renWcOTAp+=lk1oi zLZSAn(m()mzRwk#EU^?a5WCD(6GkwX=5>xxuJ;lGLf6z!S)>ImRuS~>ky+; zjA=`(j9_@;@ZP@ys=38P*~>3ej2x$mrX5XXa0#woHuE{TDgrf8=QJxa*l3*PV3a+t zJYJ37b%hvwGu8jmsZ9(2k6%#ihCtFx1#WjLp3M5^QPI1*PrPy7#!yZ3^?U~kERi$M zb(9zxrPk+Kf8`Wf+pT%y+lw3Jqs~uX?!zv$CykhcyxaGthZ zHa2|@t@>3QeeDKDY$_ny)0O)-6+tPD5@*IAgt;yy{ZI2>Lt|nD(s35gw|Mhs`-V9uGg-jkI2oIWl0%`Z-tC{Zl4Q68@C&tY&qV-9$dNRf0IoKTmMwTyIJbo-0TjAjv4~z)2)4n z@l|{)Fv*Qvo_5Zxc+SlF)I5!gs~Mh@&$(>3-T-|o$&Cg%Q@5Ynf}^$cmypbUk2@Z* zeFW7CTC<6BDD>})@;GWpt}JSB*vTdV=qvB+(-)sru5s)c zfLX)#vBuM7e!8!<%6|0_%5*j$ys>C!uT$K#Z#k{ z!QM5uh?uDH^%H8?hwmqoG1jNHEG#Nyp;%gr-ybsOr`2Y_*pkDX=;12vX_;(TvX_HF z#m>0x&=!Pi1kRsfe5lGZgQuYe0!u!l=MK?E*K4fSy31+!8ry;nKrUHgz8>c)LtZ5! z_#axHwE7qE_f=b+ujZK^*%PL!oBqo-$bD>X!5aHiV;l~t-<~gRAiUBAqeFuv{C)G1 zCcjR;kCuqtv6nhZ4Z{xWaY>cwl_H}Yu}lx!S>l>OfT50l2U?XTyzL7t82cLPP& z{9bIs6|0{;mzh~gtE*#3HFUPVD0x@2%jt~K)gctOr&k~2(~eU&)>N9W%G%@rGnFZR zH1{6tNUbynX0Xvm?Gw>a6+hLJeSyn5Ji0@QhJC$2$Rt)8Ol$5kSb-Y3(1;ef~Aj4-?m)Z9@URzU4zsXZ*e#DI~gj!&W% zx5fdjz6iTOyV9Df>n4SC@LccjZlo8P(+&DB;57NlAFUman`s`fLqd30+}(z9ae4 zb1N7rvigC6werV|_E>VifRa zTfK;IUz_YI6o zK|3aGhswxN-e_|-Holc}Mi%`m+F+Pbo}j2l`gVW+{dp$JV*5sVw2<#MsTI$9~e_4JjJeJa32 z4;U<`E=QYrDDniJz&o>$H)lltR`4Yrrf77ak$M5p3r8`-6^{z`~ z2v+$uCM{PQy{Bb{O_Jo+jE?&$5yDnEA_TI1K|^n(F-C#wkypj;AJAvv;qYth`?kz_ zr#6wMF|4aUMm|Wh{h3z-H_fKW9D+S<2P*z4L5@Z9=jEcnj~#+zMvi$@ZC(THJahBh^=V;D9oTGpd}$cU}>`zPD+)5T=sdWj&2Vx9tbW4pN=g@jRr5hIWLzI0=hUaZn|x$PtBTihzAkb( z9KPSp`zrhU^xACv3lG`&K2@(X{9hl;@Qluqb~lvbnN2(^+;;ko)KVhY)>>59G2xdG zv5rG6XPj9JH_G*+U+fEy6aBxSSKV5Rse5|otsjjrYi8UOl zDyt33T@T7ia0wr;BOsg;r#D&QkhQh}glp=_2bWudVi@KZ0!)T6vZTbtso_xqOs`44 zDJYGvSCt#|`9Ikcj#TQIwC{D4-wdnyJ*@Yqw5L?|$rhT*BZy;wT^m-}@YdzGS0 zf~!-(D5ID`?iWv6JtTp$THnzxPii6sj(dF*wp2hXNSle6vb@2=Mdu>grrz2est2om;csT7wPZRV^zZcHvalE3IRy&f`f>9kq zl-1@Hg@rf`JJF6Gs3Q;(W0lrD8boQxUzIpd^0G@1{+qo;6tFJ@6WodZ9Ht|K36y&VK9anb9X_bYz%z=v8DhX}PB?z!+bR0`p^EgBLQ%cIF;IR)g6 zT&zAw);vh*17z(0aOWSV0~jCMNyfktd#>f<$gVjU$32Gw_SefoJ}^ld_Lks?23)oRSWnss`E@@7x5$KLW1i2 zi0pG|Oyb9L1i&rVLHLGux2x7Ye&pu_EFCS}bw)E} zTc1cydRIfqZOTTw!a0gW@mlrxMr^!aXZ8c3u+|qbwOr&Y=Voq?%#H%w=O?s0x(XGb&yuk+S65VLxB|~ z*#S`+s`MH>YPIj*uf<0-?-~^S5%BlSGK^EU%e%72wS=Cd4R@n^MA<*1FRkvSp1l@J1{P7;+)KUOMNa?zdiQUAv(%?d6#2U0axG z8eQGnM{u|_I%*0iIL5)3h+^AoTJ6niMMqB3DRHTD-3#?c#h4YAGMXHD0%|g}d${fMxX2x*W>}WStkNm(8|c=zsSm4}5CEApJS_T1-;VMcj6U1RBs=%%?{?(`20U315P!A97N z31*ds?2nWxD)-Jt00UmB{t{iD*Y=6oR)y9Ltw?zkoK~+m*hTr!S`uD!nSwq|m7JDw znv9&s+nA${@%eJ46aHOTkzfP-Oma`D zKEC>ASvNb9+oWbzJkp?PJ8Yw~iwG(=$!HSMCj;chi4#Z5n6;hRI-8Sc=Gqt z=h4y8)PGOfIyyQ!8XDn#%l((A*W3)hm$1;GX&jE7+&&8pqhOG#Mg12mkme(lPH0gY z4^hr@o9qt;y{hjdlD$Q~z%2yCTvaHGg0=A|(cA={`Oy zaWB>@m^!-v3ALwt1jH24K#+BFBp=7S$|%`io?+SaH4tAAHh8uB$kw!yXf0fmVvPyH zD;*y81QQLe@@lc?cfW70+_3m3dWis;|2BAta$y z2hp?VkVhY({q)@oRN+WP zSG`>CewjymxTwDA=Jez7$EsxG`*H2le1K(2jC{?HZbAO%Rt+qswoP|qTY>KSKjN$#$~^lhHM=`qSKZl6r)&z;l4f0AVZ@ytBVofU>}6wc zz)?O&qt(%5xlY^2Y%QxX8cJPdL?mkyf3gFXu!!QG%>&yxeVttLKxA`bBL~2BO08lswY3c9cJ%}-xIonr+R{W z1(R(aVu|FaKZz?B0Q`Z5*zh>c7@qkZw0#Fi*sirpU2&onQX=rAkcS72%DZ=9U}1?K z-St_U7eH$4<0g%l?k#Vzdx*_(&zXgcW|_UDx6j6+NRT-Ofv>7C$(2y>dY76wo}#V* zN>2u?xw0Op^otp8EsIUqTZb9XFnJj5zJ03j3)=Gx0%} zC|%O_7C}jnC&1r0;h?-`BOeITb~cx(kXVjukzjuN|14>$flv8NF;)S6#F4nj4WuI z1Gq*CRY6cg9D$7a>g9Ci0|Q>+HOz~e-)xiGz^$ESon1?USos-az)%WCIYmS<)?)Q2 zjXMPjtSB+73F|zvREmvML z8DyuFlbw%iV#h0*ivIvj?W^yHK3kP9#4qA=uU96>7XhT)S&f}85Bk-Y@P$Q@GCH;r z!mk?npOUYf<`jsf5Ew;5IThS0^=aMV#EUOOXxNgYN0Sz3#2>RE%Z(r-GDo{X6zY9ck>p;0*De4K7qhP60HHF`oT&#rz(3Pjwp_x_x~2 zzYwN#-siia2Lk2lvuK sP`p~!D!HnT=Y->w AppShell.Current.DoLoginInformation()); + Configs.IsOnR18 = Preferences.Get(Configs.IsOnR18Key, false); var isProxied = Preferences.Get(Configs.IsProxiedKey, false); if (isProxied) diff --git a/Pixiview/AppShell.xaml b/Pixiview/AppShell.xaml index 16eb2b4..5d7d4df 100644 --- a/Pixiview/AppShell.xaml +++ b/Pixiview/AppShell.xaml @@ -20,16 +20,16 @@ - + -