From c3ea20835639a980f7e464883bd997a2498a83ba Mon Sep 17 00:00:00 2001 From: Alessandro Jean Date: Tue, 3 Mar 2020 22:19:00 -0300 Subject: [PATCH] Add MyAnimeList Free Manga (#2339) * Add MyAnimeList Free Manga. * Remove unused imports. * Use native method to decrypt the images. * Fix login warning not hiding when login is done. --- src/en/myanimelist/build.gradle | 17 ++ .../res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3315 bytes .../res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1879 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4223 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 8136 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 10898 bytes src/en/myanimelist/res/web_hi_res_512.png | Bin 0 -> 49241 bytes .../extension/en/myanimelist/MyAnimeList.kt | 170 ++++++++++++++++++ 8 files changed, 187 insertions(+) create mode 100644 src/en/myanimelist/build.gradle create mode 100644 src/en/myanimelist/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/en/myanimelist/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/en/myanimelist/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/en/myanimelist/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/en/myanimelist/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/en/myanimelist/res/web_hi_res_512.png create mode 100644 src/en/myanimelist/src/eu/kanade/tachiyomi/extension/en/myanimelist/MyAnimeList.kt diff --git a/src/en/myanimelist/build.gradle b/src/en/myanimelist/build.gradle new file mode 100644 index 000000000..b9cc7fcdf --- /dev/null +++ b/src/en/myanimelist/build.gradle @@ -0,0 +1,17 @@ +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' + +ext { + appName = 'Tachiyomi: MyAnimeList Free Manga' + pkgNameSuffix = 'en.myanimelist' + extClass = '.MyAnimeList' + extVersionCode = 1 + libVersion = '1.2' +} + +dependencies { + compileOnly 'com.google.code.gson:gson:2.8.2' + compileOnly 'com.github.salomonbrys.kotson:kotson:2.5.0' +} + +apply from: "$rootDir/common.gradle" diff --git a/src/en/myanimelist/res/mipmap-hdpi/ic_launcher.png b/src/en/myanimelist/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..02e71abfa62fea8936b1a9bcdd793479b06c3637 GIT binary patch literal 3315 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 literal 0 HcmV?d00001 diff --git a/src/en/myanimelist/res/mipmap-mdpi/ic_launcher.png b/src/en/myanimelist/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..0ea86b6db7e60045eba0f1b207e03f91ce096f34 GIT binary patch literal 1879 zcmV-d2dMaoP)G zU1FzlgT#JIl6D5AzeGAHxAWuB-lT!`W2a;swM_zSwubgLsYJT4f3C|_*eEj4BM_82 zy`-r5j(wU2k_t#3f?ZQ5!1}W5dQE+{n324iGs)f~B<;C6i|YXyHkS z1jz5O;Zwf4YzHm?BLZD>5YEi(?lEk2#}2t*CZ+WNN< zc(c(rOF)jaO;tscK1zx*MXO3PI|2B|AA#s0SzE8GiK{R%8dyvdHL5~NiK(U+eNCDv z9oT*3XH{ut41jw71STs4_z39ay3jrmqEE7=KbKv!gQS~>@=&Tg5+Lw19A$`ca zrU?wr^eDjRysne*dg@rGRrk@WF{Y|z0)n%9{F#$RjJ|4-8hcc%*Mxl<5|AWRZJ%te z242i8k&9R;V2y|CMBc3P$RM?(e7TR(6IG=a3Gg*w2%baZ! zS_Q0t*GBgqq>kd}M6qhK3h)F-*Rn zd4zBU9UNpwkH;br6WIYl?d)i3Zb9Yo%W$-Bhk?E0Xgb|!XvUFWugGw@br+k+5`jT) zZqd}h+^j^r{!%YG){#?Jke$B|5?LPt$ju&v5d#wFc}4Xl%=yHn0*LD9z}xB1Vf5f9 z(7_R;)|A^VVbt_(2nz|q&cd;@y{h&qrY_#COMsb)X$5!!g!w#<0GXj^Yc)20Q-g7% zdSd>Rekw3RASd5Nf5*p$VfB)c=o%BIUguBduP8_D*?N`0vD&Mcws^N;^oc6R&AQM) z9R-|<0tAHH-HMePj$-ztJ~R#3!3eao+pvCF8lHYUie5TbcN4`sYmwYLjx2lVk^jXZ zkkn!d7!lxCy@3&sfVo+H;Y@u>HA$potEFgxFcpVm4N5!T+PVoBqR5gYA` zfHwMMFw+E*ClqU3NF+c~C3jW|J}Rt0x6a|%nD??uV9uxII9NQvZ@LizG0`C?V<|)w zU@4?-XE;j@gaA`>zM#O~%8M#MQm8xu;zE@r6Y2FkEv=Zb^hXuNss+Ok*-=iR{^K_z zHab+7fVf>{lbKdvfQ|y`N)azAIDmbJE~+~yLSR$=E1nd}bK&cPG3XxOk+zMVxgA&Q zo9OwjHRIGG76~*q-A3&hvR9F7xOC5Hl>80fC=#Hdd(=D&9QdAiQTs@HFK>tGY6i`ZJxjzIs_E-Is$lJ zR0%HuNz)3vFmC;Mn>{GZ@5EjOeSd&c2X1Y-bz;X<^7_N?_koCK(mpG4 zgm>}Yl^8wIG|yW(ZhpyI%%R(jm$%gJSwKE9HTe2IK!$ZVBD!@?NSd*%LulvGu-QX> z%_SI((Xz=RT&}z1Zo1uct?a@tYd&ah`0G4?W_~cek9?$!fF|!mA^-#jKKotYN#a93 z>XE3E)FC?~P0WnG6O(rG!iRt---_GvAe#b0g8cJJ;)nm$pe>~#b3gD3{0|9>zHOLO RPCNhr002ovPDHLkV1j?`gQNfe literal 0 HcmV?d00001 diff --git a/src/en/myanimelist/res/mipmap-xhdpi/ic_launcher.png b/src/en/myanimelist/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..ff7e6889952288b6f8ec532f01a173f28ebc3a30 GIT binary patch literal 4223 zcmV-_5Pv3ARa+LkX1x9E&>{m$RZ`HZk4WAu_|gQwYrNUELf~n ziU%Z+phegfkz?5^72@J5M7#ophC@yd2!TK{nVGHsz3G{LeZ1~B^JWIN=2cBWX1e=z zf8YOq|KI<6GtUF*Bc%vAcAf{5+O%S-(~mUI8V^g-b96%7AN{?=Nb69TYpM#;p7eSHf@JkZkWy`wD{ zEC%ponbcDTz}iB{@@aTtp=b}m=OH_LvYg7=neJwsArxIAbw+azf^%5<(~}5cZyGK# zTF9U2_0+e^_N+L#bJLiajqqrBDbmGQ7~mcg`;F>HW8?t@z^) z01yZhVM~Gz0fyyYHe_6W!Jw&|k2SUSB_nbcC9o>ilG#4o=Pan~^c@kvh%`SLOM`d_ zAV${Nm%VH6j;d?FudVqtOoDA}&>`h_Os}eKZS!7a8o7j2PJY-l z!P-Ctke&P(^H6w;YJA(U6$b(5WQM-oQhoOj0B8n)HgU8uu~89#+Mfjg9Y;=EaUd9k zED`vuWt!md(&wi9s0eVP|KivYoj*4gV}R^hGrS)E7w=B#2>>Smpw-R`R0J6E0|1?_ zo4VqlzU5n`N8~j^f*k0-ngD(MR}UFNi%%X2r!4D%0Ymjg?l)16c1MAJwfa?*#yjVFEBC5*|7pfCO|NKDBxu zH-boJ+>jnYK(r0M!T?I;{|>Srp=a3=z(#)a@4A)cy#e58VhE7MV9_3cp*YdfBZ@z) zMcd{7ECG)6pURdJLx2=`UQ)!mFKOqZ{J2kmN=_}>7RhVeC*W>@1clEnO!oxhrc4V( z`I>NN&15K?e!C+-PIvKU>SvxiDFle*L}d9Qs}yUkwd^2HZ<)OWE5QoFoRuF`8%eSL zC!7E-@<%*DP#co%2?XqM3g@!*3wP2nWmGIE`{D zJ!0#%_ZH(*&Z6agoK|ryV~0XeS97e~;BYKGZtr|m!Iw#=nQAF! zLkS~5S`U&0TakQ3V+L=5^p00wvJ}=Y+#t$RRp;p^lMO)#>Q=h!0Yl5H_)-L&{n!*% z`PvF|l}o}1w}Tbz6GVwYJUd@uEKyWHd1(v5m&ql7wE**P5r8877U{Dv@Cr_&lVLg0 z{Y>j99VuVfmfCHi?b_6&Kz1lxm=YH4^ROw(`=dM>jqt!*C?$&;o8p! zV{#LQ>jYdoMIHm(0$wItY?`X2`wr7iH>8KYSesM=WLj@)`NC@ndiw;W!KQfsC9ZDFo2Kcg<@D_m>Ue!sKUP9fGx+ceBE3`TNp-U18j)zTAF#-KGZk&-O!> zwzBI9UXKUz^K#(gqApO_yA$O5a-dyKCS+#dWo@%axufAIEc>87k{n#n(+AUUzl2l5 zPrld>>uarZ=C6Fo1E_v;^ zzVnuBh3d6Cq5!cQ9=u&6ClhWSUI3HE6hp5b?ZHFe#KnwwqS+6lroRV)fO*r}<;C6L zjpuJP=SB5Hcr0BhSpWOi4zB^(efMx!zRo}ouiU6n9 zkL|bDOm(*uVMhQm-$&vBWO1uD?t(dQer{Q7*_aFA!6^ed%O`IT0$2cW5Bosb04Oi* zZ)@=)Lgp{s3Kj2v=a2wqiVEvTN8RprEl5NFJrDGNKl$i`JX=2CP28Q(I`_VgaGMADl9>E1mKEK zG`GT(nQP(XX+OO4=h4u!dk0(W&;zPIjK%9e63{U>3s(NE6nq`Nfkt!~n_zWTl9zm#sk< z+im!CFFf;VEo5h9z+1C#grf8F3}Ajfb_&WK`v96w`k{1W5j>?J;Ipd9af6Qo*bzXa zGeUrd^cX>3AkD6Oz%`SWDN7NA06GR>&W!}%QP9f=i)W99oa_vEVD?7XR{xXnzKVd% z3=h;+PI8q1wBmuq-NDua6w)IDKOr9Aga8^TngArGbVLz!_T|7k|NJ)6OhrIerWZC> zlqm_&$-2-3TKr~BiV(nMK}3QyH(jEMCDj8+Er^vMoS2mWF@|yiK8LC`J0UaE3$>Lz z0jFC7@LKhk(LpJ|CXFqI?)mMwT9JqVc2&le zfM3$q_?`p3KG!|qYK<5`2w-DCyaeFFs^*S`!t*+DB#yf0J!m|E-v+fFA_B0*HItWF zN)d0)9?kW|ay4dX^g&aM*9%SyO6z9~0c;E)1c}1?!qLrJrPSNg+TMRHfEoQ%yC3 zrKBS{4;J%quR*dQOh4aUw-e?s-4;nL&2c367jZjV@dMh^3O01u7MbzQR;Po0jnCnW}4d1s|6EckR1V$pqpUeW!9(-yiDf=J6)rx=6X`+0S+gqYHlZSc3_Bq zLPr3LWCFbAGZ)`gf-m^o^&ouZ9S$TYJRwt)Rlf%!|00LV3eQB#Pn-lfAV6j5mY`{4 zUCt#(V!27Q{FD%&Yw2+VFUfMGo+7-WWr{mn-Bfv-Qx!_61UUsfUf`oylV*OeNVBwK zhEvq3_O25!*ntG;0v>H=zf!r@%Opn@M8zY;lkLc6o>BsIH*Bhf+kGe5Rx(nc`79Ah zB|sPOcr9MpUmE?BXZZ;W!n6cA1zZUnNn54WAhUtgV;l$D`15>KcyQeVu9#S%Uy6wA z160!t1M4>MHiW8VPjANRRw*Swcabq`yduky)kAgXrG{7CA}IveT_LlZq8fOGM9Ayb zlKejLl9TWtj1m-&1*t$cH9kh*6)_~9d8=(*+`@Ga7&IY<7@*L0-QZ0B8lh;pj%q@& zBI>YTN(j)ga(W$FmT6m9lAlp)Y=@vaX`WC5BHFKM;q1hf;3%a?T+7k+C?`n9*w%Fd z22NP&I1P;gq8S8Lz}r2$AkGUYG2$%kmQn&7XGf~~b+`&@ll-`iU)v;Gn;${_E9$7!@V}?;MVq0Q{{N{CcCW--ua{=XSa9 z(U{hx0^CB77C$jfBUzoAf2p6l>*E(*3O_-^_CY?X3%2ALG9B9I6`XfL$%FsM&h2`E zav>VQ)H;TJ0_!-YC?}Y>2L9%s_w3!W@V1l38t{oD_zW3;JdZFTPf;=+W74Vjkp4X{ z8uxm3ZnyJ2UVOYv_|Ua*X5G5`hL|NUaX51$he84HpZt06!TOqe8~4@X&#@5wkLxK) zcp~%y{Bef%C`DPm9zA;YpD?AJ@4V3&nYn$yXI4nIURZmdD)2k$iv>{JZ!f!q!5%|K`fLT%aH^JOk%~>}F z+6TT+W>D)9bbR6S!|?G{(VuFOEKP?1ngj$KfyWnm1zJCOs_I#Xo(mI3@bQNyP-YNt zBmrMYh!T8V4)JxRfHVOqMj*wf{~xu# V&<4l(Kj{Df002ovPDHLkV1lAC%kcmJ literal 0 HcmV?d00001 diff --git a/src/en/myanimelist/res/mipmap-xxhdpi/ic_launcher.png b/src/en/myanimelist/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..634d6152055c185ad36bc02a3f18c0679f8425fc GIT binary patch literal 8136 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 Ky6A<;r~d;%>!ud~ literal 0 HcmV?d00001 diff --git a/src/en/myanimelist/res/web_hi_res_512.png b/src/en/myanimelist/res/web_hi_res_512.png new file mode 100644 index 0000000000000000000000000000000000000000..7e007dfbc77e1363f06bc275b777c7f95ba9d00d GIT binary patch literal 49241 zcmXt8byQSuw7o-j58a*8T|;+wNS7id;Sj>mAux2OfPm5>p>#_dG}0Zy&>->V_ttxV z%)0Z}x9+#@IcM*)_m0=sRl~=j#sL5TUqfBl5CBk+e^CG|4CLbi`uh$57y%7s1!Jhq z(c8e~=O%%FN3)3)QLu@yn6!H#Bq*FC<%}=E#JOa>*l2u_0S$|bE5)@dpN=2CEFMn3 ztUWg;R-h_a{5T_3VwxKjW#MGVh?fdr=bm^SpBMUGHOvMTzcK$Oy_$XgP_|z4Q1iy} zBxvPLedl#KMHix}_Ssph|Dmb)i=V8mqEgHO&Ntm}5CwuOrYsQtV&8PACYx&hCe{7| z>B0!%a~Y3gy+ACT}n8&1T=EDbSi7yK)xOe}s&r7AGnnj=8SI zYIf)}P3i?uTh%@Fb&rOaS=fH9uzc5AJL&h9>ymdE^G$b=F*}fnX87t}3WcaY{eUJ@ z4~w$z7ZJc`BWd>u+w(V}wk($nyEPa6S095XTN|PH;U&{lnlxyHazWoAuZWGQ#^IRW zk;ZM}<#u3;uvC`~n;W)F5zXCwYxe4$4{theX?+jjM3hY$Tmh)M^rGrsPU4_qc-}2Q zYW(TYc5P1ViocG58?A)?-V*r&j(4J8*@MrhKreZ&rXxs?oyw@iPcwpMQT4GY)KBv+ zEObsIE@yIO;v%I5iv67fiH$oshT0>s!KsA51} z9cCv-Q(aiJEe)Dpew_P1^vY*kSitjryGaOTB_WxyEgF0i(^AjoQ=7lcZ|@`+mf4YZ z8}dX8K>}&uk1lzZ-UfPn%{kgOX^h**-7XP;HYJD!M7e(CN9CPiI+LdCX384ZBk7ry zdbO;qz4K<7&`D9x*n2hN5pVSQg*4C$btD3mN6vuRwUc(@%!wr$b@I_F=*GQE+9 zEGK54Vpe|9@+YgAwfGW=!e6%66H0s7nD8w1ETzd`jU#Hf9i6D7%NRj%tMLPbMXrxy zW`06p^1h6yCJX*0P}W?4`zjuzNQ_wgV$g%)7*H2`mdA8PFvtj{m4`s_Ak>6!ltoKb zbQgqCqtoEna|g0wF*HG{o?lQX<{+sni@^#tfBfaw>q>vad6>6w z`04X=f7!ja2FG^$$EHjW3>v*|mJf3#U+LL9*YFV(AfG=Pg38Z+gi}iQ*AvnAH;T|t zMPxj*p~3pn?^vREm~_7<6t2&$VVDQPqmO0@oaH@HbPmVN=0Bbd91XwQeyRA;zxhUA zd5{kkZ@3YU=OaH$ag^BJOXuNl=#X8Gl_8~i%%bC=%R7o2(U1J%#PB>xPx)oS4`?tP zyV4@rc~uAxC?6M1+}h3Q7t;___3r9or}imENRq0>?(G+z;>j;b_&UB`;%(tHlnn>A zoqZ1pYH+q%sG+bgHeE$@3o6lKkEl;t@u@z!#*8C+`!{co4k(Y2np#@111CBAY@x$6s5qiBIWLsUum`N3{g$l3%-w9v}DnEO6|Jp@8&p8ZlZjvlA zT-8)`PD?i)E;C9>-C@Ms`UH$rmx7%C`G~*Ec);NWfkrx4V(0))-uIEsbTF5$U*Aa+ zD72J42&!uMo$C&_%FlR;F8QKy>;>ni?&t&~x41&MhcbX>i&V1lVk%Y-A#+`4MPVr_ zqgTHeBHv;_vUbwI34qXZ#3`xqx5sTB+Dtg1i8b+@83tuvI+K4L&gk$w=SVW9k%ZJL zLX4go&au{j$~bm-5gPulHv<^pCfSiIbou>fxc=t0DSQbJvg~cF!odVoCnTq;G5+(h zOc(4az*{o4Ewoj_okVF|L`-A)wcw~&EhbTavPGDi*MDBujC18K5=}!F_f}yPKNaay z!Aigoa(y(;sjW1eym!izPZAsH>S{AHL4&zOb?iPG(b%1f@Ybf6~9l_5=;wGfi;R`pZDxq<{s}0mfS#vRcZRHJ@3k_+es#3^=OB z=&(Cy;*vNhub!WX$bxXW&qxKRTH``%DS3T~qj=L8N7=i_>!L|>cij{@j_6_3(8z67 z+#)UFTo<1Hl2`I#m5Jpe82ztuC4} zfv*v1`W8WYedX!4V@(H~Upk{nc+&y3HU>jnXr5mpz`Xa!!F6;JpGm6W4sJXpT2np& zl(FCcSg%WY5V10!W=NEQm_oJJ_Yw-tE~lX~pr!FQB=6@J?}S#TyybHOfEu3hD{kcl zKA3St8k#kUo~@mkm1p7r87>F*W|S0JA3AX>Ll-0CE$^cArO{}F6(IOFX&gCn1^U_B z!g*#b98n!cBZ)aB-Rf|bHo3=VjX1MIb`Hm|^wZ!xXpBRUF}||9&YS7(io0n%Um26Q zd%ABrs=V!@q}h5|%8Q4mlw%yMz>BBFL9OJ=So4$`yKkA&C>X2#L&q^&6#C5$l+nYN zsL{ip=3d+;BxNDyUSfjZxO?||6;P21Bq$sLJ%{hsP5%+VdZyj*ECu`7OBLAE;pqYb zRU2C_X;^OjFiH^0ch@A>8h+s^6_Ywsvb&u9_5D(AnzYp0CO?38<&C~gH+#hfC*vC> z);})I&w}pKNY60bF8RFF$=z$3y3o)VXAli>>91~ox%FyZF;t;Kgnk*g)X$*is`c|* zezJ?k?XFEQKd78N;vj1fy^UIU_Se>Cpsg{=pJqxx1T-OvXsG|PoLi`l zVdOsc9fm(=8yXUF_WVlPLn~%KUG$WxbUFG1X`p)ZxW+b5PR=hO@0nZdViu%vRD)a{ z8x;FUosWj@aIOzkf8$95<8)PG9lv^oIgh!)-)Q+WrbMV`&ojjm^KbQ7p5J7_FdDzo zZ-rucq>wLZJiBcU_1JSqn`iQqktaigITckHwPs!48}a3@S)hI>CF+#GD5I2bMMvEX z4=RH)F6V^63(sTJlx>s4BoUk%1(CBL$kE*M*to9gASAwG!BbBKWR!nRQsNLkcXf&$ zk&y;%3g#kij)65fK6v8(*d@SdT^h-D|(68<1Z%3X7o}OKPM_cyVW*62@$mu^?$k;G_kI0;T_d4+Inn-RAM7H@m zXJOH6)4|8A-%hiUJKm zNg16Y4@A~MNhe+*Xd2_SHeMQn+ZHR;rRN@2v0Z_$YjU6GML&IpzyczMHF}UR$wySg zobJZM`BCv`J<=X^UGQS?2onc$nRJ%~(3X?26OfU9+a8#nK}g{-52AcZ#o(7K=yT5RX6jo>g05?p% zpx(gjeU|Vd4v7dSkI*&Li_f`(^*s*0*ae6iaEZm6+#C`@`kNVi#lPcBv(#`Iqy!CR~I^s zNuSY4JT~ue25}el8m;@G+C747fPbsGaF0Y6FJs!75I#d%Nn=lWD!B!bW?PSAxRkWz zn~*$g8xGr%)vUNe0z!G8A*bm8WJ#2(t}+%WuI^xzr#?IJMdVQo`F;7gqx81Gm?xm{ z_#g^mge7t@!~RkA@z zbDKB;lPN=cgG9eLi2;J%&7(QhQpd#|I_=m6S8I5deKKZfzZ^9TBDX+BuK1$^88~0c2<)5kHIFZE)cEFb$axFxH~i zr7@?@MSrcq1HvBhV?}4`Ci=8*zh6#*B8#}!KtB)_0Gh)Eqk)nWjN5GiK|t({~LLJZbf) zCFe>?w$Ai!i&Oe?sNGrHzj~t2Nxe3aWXTDgDEK^mdcEM5_4=_fA>8%!HK!^f^9pMN zhnerW!s(^w=griqRj5$-MyvwBDdRb>4@DPry-$VW@ycfmY{t(Whr6CvfdV#?UMRke?8SlB>WQF^#eL_AazAOeUEdUFmm=eO z@|MvxC8HH6VcxmRP4-&(puRzMz{6B>Y%#2YQJp6 z&ROg*Ot8+ihVdi|RHIcH6gaePqdn6gBMV(kZR*imw_2=l4O>U48hi1_pn45)Zq@w$ z^T9Y8MNQu}z6`o)D~kd9@4k*)Z74Od?}2+`-MPtt5K4-*7xD(uWVL6I3Pyd_z3I>@ zm~bG!Rs|~2Qo|vb*rJy@Y#VzuCEqLJCu@Q=*d=d&(?{1drz|wZ6VFG|hiZ(a_Cj?- zZ{tlR59PnBwAj^1zzbmPTv;l`Ue{|X=3JyljW1K*I(7!t)VaM+4 z)5MKF%dV0zfteD6j^i)b7VtN7F(5-(myT#+*EKyYXFrmPrJBWL~?4rUOn8?S+Am7+pT^|Ki+un@U@bU}38%4w0 z@#wNjzk7KVE_TM{x*&$T95kGNf@y*YBagezLAAX<0DBn2$fvrmrI;_R*!q$hlFe?# zIr?A(aV`of*ae0sA7sCz{%)7E9UKTo_ikd|554-`GqtH<`%YrKqTWE_dUJ}sKzQhL z5=>>Vju9xme-Fa@>xBcNfsR66kdSpT;GjTEx#NTHE>GsJyRuyNM)qQ;GT(W{1@*xX zoQVL_@$54i@h)WRXyNxc4qz)vh@#bYCTOSvX;)+e+t69FwE3l<+28(-+_P)B9$eF# z*SA{V_Ixyo8X4X{N`a0;m=I{!WEONVb4UiNc}i^5`k#)(ZwfvfEkpIjjEPA^Syn_u zTt~EbRzq3@w<5()NdYoZ`~e#4J|v_+4PcJEf(_KGcR;=A(JVA5Dfsq>+n>venRi*W zWo%3i)i*RZA$FXMLG#4^^5^58AopJ&J0U9T(n(o@G^T4Q5a(;CH9?F?5my3#GXonx zMV8C`)zwT*r5%R~Xx=p1oCw_O_`IJ0a$Qu(OR#jt|K?BXt`eUvH4#G8P?S{_9m z_fC4-?J%pM9}TD_R+cl+Is4mB=Ozt73*2WKLavY~#5Aa((HfI&IOx|_Ghr?%v@^MGYK& zw+EpE2`qS{j{&sGHuXXIY(_~_4jW!e0@TGc`Ez!S=B*n2omj!T)x1+>W!_>I(`T%`6}p>Z#)#0IUF=UzIr^nv*LH0 zk`Jmv>HW%*J=k49m)M|HspQt6uX(GpnJ|q}{T+@kvpw1{iRmv>0i96F)$DnRsYTA= zs0p~KlG@D=?i*Q98sYK30bYnhMr;z%qL!3gPrRM`hs!T_?SDc$Ad#n(*mReKd20GH zevVNHNGp;T;A5U)a$04=2F^%MW|mSyBA^=ULcew7R8qF_0P2zWWaZ0o6g8_mJai+O z#Zc{@X4_#VBs*}NkdQpr&`^Czzz2eDxgr_5on77AXs^opg1m!Au`135J#K;LR8A$HifAs9!!FbRn^6mD_X-uncwyQ`s zk1cp_^C_7|oDO&w4L7DFaiI}@o6(3}sAqzwIA3(*6Jp{0rMjC{E(MzMVx^sX`8Gwk zxI`9AqpL3$-RH5#gYXUO$9c1g5%5sx;_t{^N z3!K~<4XTA$$=3PQ>nVM_rgWn1ckJ=}K+Kl&THhmiU3puFP`<<6<~%Ds0r;3vq-c!% zhU2-$nqu0W5MiSN6t#{&7D&0n8Sn%YV20G*R&F9i$-p4DgS+HslYxxzwr*ikTJ%+mHvwVDJqv3P zUfA+j1n0^VUEa(8cjP2OKv6jX-wyF)vT_a+IQ6J-Fe8g7z2~px)sY6g(bY{K#S}(U z)n4{Am9w&#Jlm)2BFoCirn-ph6qRwF2UV@~@7&Ry5jyVwAE6l|hT~Cj-IhPb4T&nX zG(8}9@KZF_bNpYhS+I|xoWh3YCYZE>71O=R{%2noux4JM3=vtr$G8I*$itX)XiTU+aAo_;5==7OOw z$>T!3*zM}8@IPZ{3$ zVVo*Fn-+VPgGM-JVab0O)hvw%oNKvh+M-Gau29Q#-E8IB`IYH_D2rAD1P7_pnY+W+ zlLQuU@lG>GLj7}LANf%fZi>yMB_(za2V3mdmSK;b@GU7))^fxOV(ssodeO#BZr^6z zu-ImF8AprUt4#}{$^G3UbXaYzxMxYC)PR(2u(=5)qp`wG62DpB4u+3*7Xi%AOIihQ)7L%R4!>Xm=e#6wg zThqYz)92Z3&DkqGITpxg0$}jfWjD+EAVd1%ny(+@{J9|AL?1;BiSM?O<G!U`XXqdB4x< zA{k-!W1j`DNRLvGvx|scg01FUS0p(K#mbDaI%??&BWfAL=fOEgP^MHeJ|Ujp@f(;o z>;dUpRN!Zwtju!1+F!RjOlbRZ$!^^B zH6EC5`)E?aQwnH{PhoB)7G7I;Wz2AA`l5 zQlbI9JOm37Z@9gKBVeLS%`=FU7Kx<;pyUxErH{_!I$#&*W`!(%rK-jjX4N@NZu*4S z02v~giAPgEAX)y}@I?o9zsRbyPULp}7>oFh5(_%nr(`cY+XpGIYo*JG7qUd90elj6i z%j)CS;KrFVh5*2?cRt?r+r8~gKjjpW=S4MJVHc_jFp|K1ZidEo?oOLvTyDXgm_{dx z%g)w4@GMTY={wJeYIyK%pp`NvIy6| zghP+$gA6PPq(y@QTN4~WEn56ZS`^L<6b$YUn^MWLq_vR_T6Qfbju*`3g^O9;XovR@ zXjGCk5B|MbA{Vw&aeI1kle|H7(c0{mOaOCc^uZ={ra8RK9S+SPzd4cQel;eOsw9V8 z+j(CUQt(~S8KJ-gbPpa-XR(#9O`JNsC{JW(#?#v>oX;2XGaJ_@Frjqv`Y zBa%aXf3cgF*|+H#Hxe`>b48hE_PMJcdX_`D_zU`WacRob);H`lTSKo@Y(oV}tIh;3 zqG$7&A3K0+UHTYZwOTLjWRinjjcnVa zkZ_F-s=85HU-{7Wdda_jToYMMN+vh!tCtBBbTdDK*Q?PiifuoySe#?CZ>(vN@E99V zqqTuQ$8MQK8Isw?6LMK6SCz|3+Wl@NK#P4+zs*r5?A?4tghd|1o)8w#;_M*|K#0L%hUwtNYy8S9s~z3ahz1UZWaw z#dHl-9g!;eK>?H+c%^n}V?%0CwvFc{c^<#oTYx_+l)OLJKqVZ^#vu5vUJ(J8Vo!!Y zi$9PUpcmSjH1Y5U%3Z#EyidL4S!f%9I(RmS&=aO4Fx1&{$`tvTW2Td?mWOB~x$Ot! z&+#^A;|CoMJ0sl`?McjV9+IL<%o1!*5|W~P*wmMdxT6t1x+_(6$FOC3H5AbF7l74l|WmZfJ4UU&fNH+cdEP&d%NSBNJ&SYgGVO}`3 z@YVrF&o$MAw?Cg69z!-wpW~}2w-EJB2bnhjt1|eE@UQ1RGJzhHSc}4FdLfZoM-}B#~l3b0A_Nxs)uZK6<=Et1L%NVzq zp`$%7pR~9PZj}#0U$u$wCn;nV7pyVO3Cb7QGEv0X{4w2g1zzX0H#qpi3K4@@Jb0{S zCxoD&=(if`zU31u_}CT1V0J0`%zOMn8hRHLkKE#gc|27ZXzImLFcscs51kk&rryPb zJ1APqC(qnD5{E?JXka|kkf8mi#rrb=eV8|8FF0j? z_loU-eT2HPNtQ|uX>j75FoD`rBXAvSDz1Z>U%V(wMO4*Ndj1;My}nAyugBR!5_i?r zm(fo8y`uN-%T%L3KmzjTj8KsNtLIxaaeR|5NJC>e(Ui`skRM5*U;yiRQkO#N_LBGx z9jt(c0Q}5*(6D|aDZpX&eh8Gc`GAcK3cP5QklWrrJ&Aj89x42UBse9yBei0EDUZ}B zDPvCxlIY3s?;QC5s=81XMxbPN|3UlY7e;yb5&@9ASH|~BAtPy>Z5=I3ufz>=u&oJ~ z?VeVd_swuQ+-oyE<-sGxJ*o#w#1;J~TO74PD4E1%MDA|w>HoU8PTxz=C`Cy%?tFzY)*L{yA?0Ygqe`PLy3*Q2dF z9o27`D0neVkJDyjq9k%1uCJ^ev~tLwsWA+%pRJF32C0tCrT)D;C0px{PFHV!7L_RA zl?qmqv=@4wLu7S&893w|`2lLUY8~u+8p7~o-D=whDA^PbL*~Zj zRKx$IdqFNQ?ZxY`fblBFR^CKf1KS=fmR5CI^FbD`Qsyf#*@w;x)v@}qD6SA}As52V z&coMQ{UX_q2G$=8UIYt)!f^~DDSulv0*X*-l!c;hXVb*tq*t+Y0l?8}hBWeAa7;B? znR)B)<|O<&1tKSe?&Oj+(H2_`2tQ6I6pf=%M}WC7|3FHp_MdP!#?l*~m`Q1w z=t;9`MuZHkFPmVZC%XY-=OZi_%&SEme$o2Tdh8HgXQLVXj|E4P@2O^8 zsDMe(M7-aKDrQ|asBZ9?;I?^KWKBIh6Ui7PP?@=(w59pA0t9Qg${m=yI1K?f24eqanw!F+9_E*875xqbuZLi zZ&0cLzpmUBLWjs$dyh;-@W#*dN9mUZKAa-$(W8rOs^1^a)aLTr!*X8kp1q;X=3r!H zU@3+`6Y0o%H<6JdI1~ND3jU^*(8{;XZ>T-bQ#+vSYICG6o<5`JT;JZ7dxio*P;?aB zg4BlD(k}$SM}f)+;jV7$o2mJp!i1RAUWJF+ftmoa3*CEU72h-!+)2)h$6E70+I zd}9bw_rr+HBEhh>FYhYa)qA_M@*>E_14lhlqogQD;#za zv@VE40>{Kuq56bMWHo(>kGC+*OD`NLVvP4unpIpro27hxE2IZ`u_b|cjugUF;43=B6VZm%xz?L zi*)56SAY(1vKJ*(`Ht$PUzf-R*mpF|Bycc_k@+b|Fezj!Mk?N!H$N`b!A5CnVt@f2 z-u&RPSsF!Sn~{GPjE4#Aw&=@TWX*w$ZS-Vlj9Uzg2RCtDvIuuWmVb1tE45TXolB#Y zm%foHG$70R?35XHy6e08dFb#E2RB*54<+T{lCwHY<&O^TU2Q5W(hi69c*X-o)W}tk zu=wBgsuF+km!51Q2U`MA-zH&pql}OlCTGmpbNX`G+?PoG@E<27eNmWQSY%8TB1$?d zv-o=m!9hMRQHX0xYh7-5Kc!qL7NB(E;Ks&?Cmw2??9x+aHacV?h7(fQpPm#g*WlgL z6La4qTEHY5Vvq8UEzy(L*GXY0C{Pj^sB6}BGu%)z$tm1|yy$=WL)~-=U$@1adM4<% zF|6BTjd0vPR5*b~$q3eA1Cx}b*N=QG%`Wy)KG!_v51Qe}_GF0tgmGPl!%?`?X(r#ius8)|t3Wsl@2Lz}Ui z&MWgiIsm6hHH_jeK2Pi}Se;%6VibY4Ys9PWC%4&GF75$UDlP8|s}E4Wh`|{uwsZX7 zzG<+xUH0ouZQqnN!z}3$JvFL>HvRmz&rsO!yPL0Da5(2&0SF8UN71aHl!$q!`KWaX zrnqnJjyZO(rFmH!b0;5i{Cck26! zV_iVT@E(;ecB8nHh7~^jQN$kzZnPJ^a<`PD2SH9Hkjo^E*4x09!^D*jQozq>KEYRe zdECCPHF%}KHvYhY#c~GcEMBKvw#jz-$0{}&29wfjD@sK*)n}huV*LjfFN!-Kv*J20 z9sJz?EEZ*67L-o7;J+yJtvP>ZQdzlduto%M2h?8TPl!*W!Hhr^+^a2Op;1f$Tjkd9 zhsj2`irvpU``2YOE=})Av{lCHr7yAuC?o(xeGlGSxwIRc$|$TKSKAuWrgvKBD#l?& zi#cIvIqmnPbNShOZeiyc9}s@6L5e}RS%E)SYshh?WH!4|A(G}_Q_utOY)J5kbfSnN zRE|@>6SYfIGrg?|+4P})Y($$n&Cqba5@?F_4{3hiy?%GJUp!b8G;RI3e>lMcOe7mT zoVMuh-UZEl7_^h&rvA2mV+x?`j3S}TLw!37`_4sX&po0HoHW}=4*s}({y-i4;*9FK zAl}ut$NeZnErFg0E<%N4mLxT_ViutYvjINLW)ZPJjq4mjNcpP@t7xmp`|Vpx;<08~ z$-Fm1E&B`_E2R(pzmU=>hE()$=eELz1_g7!wgonzMBuhpVs?+f$28QFt+HqEj1p$s z!xT7I^oH_)SNGQ0G{*7`%Q(7!D0=qOX9bLy*k_4bk75?A;s&xwn>mrdv!{w^C;A+H zZ!61M3q$D6-VeJoQaZlI1}Y553*FQ6NMM51H+;-VX9IgDWFTxosq{?7oYg*F5vA?I z(Ted`&k+OIxpim!UJxftt#vH-U`E8Jg@%nY!=g&@Di^gRxW?e;EPl+n?zM|B*{;68 zLBlXPQ&*$pZd(6;?#{xFT!b_Xn= zNsHj15HUAoJsUk>K++l4heHq#!ZWGzrpmJ5)FMba(S!+bH0)I?V!;1%KKD$&PVz+z zxns|A?oTk0A@M~~tZ5Bta@P)SS{!P;3h~=B3kqFvZYY*BSPZ}lK(sW-pk3hL}`sPNLW;qL~@1_(S%qw}Vm=3p6Qq z#o?9s`}vW3TbfY8f8b2`dgsE|`@Z|RQ?0gsv~O@)^IE$L>`E&Ba;zGVB)8pn`-Yt9 z+vDm(uBc6olk3;_Ry$?Lr03z~!gr1ueRf=CQV66x0!Ya;+-RCAe5Ik!LdLr;iQjR6}3+0Ooo-n%=G-hzqjrL3%MOzlmC7{vIA_Hh(! zOZ)EU)mBN;#J4BO>%QUf)joi_jR0m6UHpl8Bl^?B9!@_4DvD99z|p0a={Vn>)tCCt zP}z{+J(R{C@n$1;I)EiOV|&7f(AVl1@N*m+(UGNeXRt8o%S={Gz8u(0HTZme9*h84)CBZaNY_hzK)1W*WORztwbA zBtsM@OLsXB{iIJLcd3vRL`+teK2Z;r8Y6}S{@{0l-`;M<2ujbEQ)6`gfxbtPVo^Mu=HJ;vi83^X z3(vt+ZxyDk=t-A)EWp-D;k(N>FJf%M91AB+SR=g(E~h0^n>6yh@*!Ii>tU0lI~NM zvarD@W`J7h#yy|lC-XsFy)h6F?QUH4axgVa@err7&O8v+b%$icClk8vgo4#c3eO6| zS9HW)dCNUGP0+p>*>0OU%YC0&QRYC3IeYl+Yu76$UYZ4o`w82C9|&AGkkT@Ee zOOZYr%%qWRRR+^sS3sG$*jZ-n95(~kI%3K-UB(b^iCJ*?w1NiPfgy>b<~aO2kDi@I zAbLy*_p`cH#s@H3iOvHXjgC~&4Z-{Sel~#2hCb~4@~;hXn%M?LJKCfUCklir!ls8z zab=YT)SG1f0m>A-h1YW$qFqYWAAIFxolZ@i$es)F?A}^Kg=vM9@1&%dL1Sd8KfQ%zya~67ur5lF@=C;`z<( z%8|%#;FWe1`XMhozFr=~?S)%D9iYLac#9mvoE?ap%kHnc!(h-_3|}W>TU^U#B%Z!r zh&|KTIj%3Sj9L489xqN_V8@OR#8~;c-Iur;HnOmQdiF+no|%oG^WOC)8_Dh8xhh$F zI~*iwa@6~V_6yEIBfotBkcl-DH*OFh^LimKX#f898$3Z8C=N8xK-AREc%r7HAR-;e zE4|w}batv&C%?NbXC|p>29@p|1zD<#Uz6b2<{PJhGa&&3kL^;-X-Vj5W_Fm|kL96S zWwnF;)SAe?ord*ubAuf#)_*^-?T$?zz(ACFo4we2rUkbp)R%jkwuoQC=!n|aC# zik`Hx?b#07ZPqfhtvl_x(L^tmNCfAPevQy37K1#0tO}Vn@p}@Sun!Q z7~gW(3fiA_$Y2?kbtr3#390kF)jYhkylk}@`p|uuV;xn42K*_}h^f9I4|nbvCTUR( z9ZM>9$+;9JS@za|tL@B<$F1#l4*zMiO~z@uHc^WXSN|u_s3GHwiQT&!m$>FE`MH<4 zNrXH#8&zl1XZo!3U-4wNj3ieF?V(9ptI^~4cD;(4+)Q9(InFk-PT-bLGQ?$JB&Or% zNQREBv`OKr+&Ydjr;InUw?P=VG3I6|Op07YJV6=@kE$wO&UK-RpHsgwd&SVaNAF_w zRr~!pxz)N5{)q8nv+^v)-A(sgeBGjcu7D1PtpE&lZM5QhFLyaI{~;Z_Lu$eu9Zfh-Uly$cp)2`lu}3`AUMf!c^#p zf6A-LXgttgw_)|nUS^z{b0^=2nHyivr?zHnx@t(!^(1=iqr^>G z@DpuFysO=lR!`~f@4%jhj%7oC<3!djI~K^+HW92b5%c?y=E0QH04x2upb8q?cMS82 z(C9>8!Rhu9yuw|RO#e$5pzUMAwo9^Sol`|srxYNe8l5vY12SanRrUVMMox`vQ&#iv zV5>HS>l?nnCW)9@C?V>Iz`7K(KEPQyS)tDgTX=BgdbK0YV7WDQc9$i0mu=(Kg2A^X zYTc?5LQVeq;ih>eKhl&4h|^$OE#!ZT%HU6@2L9J5z>+9ikrKE${NUn61CJZ8&!uYV z_9h{-Jy0dH{fbbyqVQ9_qX`Llt0~0fKv>H2Zp`uoaEnSB`4pab$giZcVAMqX6ET`j z8qa|b!urnhBi}|(rjt+YohRrwc;j(NN}mtEuU8Yjgk4`kC}UXcm|G?7`JAeXRd+>3 zYu}f8#*bjXp#(F8#bVBNEl-wRL}s+j>Bp5j5g}hCn~Iv!`_iZy>!M$_J8OkI z<6ANUl~YmfavqV;dXm&u(lDWF;t&F%2oA|_3TCgGDs_kgYcJ=v!mB#^3Pq{vBm7kt z(s|gCH2GLzLvTvQ+X0m>zXH{6;z-|lk>0EtdV4!-ZS6iZ1)iQNKCgf26&yK-jU^tg z|FzW&@m-8lIdme%aF~CIMeT^}CL$^NFKnxse;fV&I$7sSLoiZ5|ANGwJ8-<{~s zV8sA{7Zsn-=Z|{8AXVF(7g4JL8|#_Hoq|~RGRJAi85g%1JJr{4$6sK$O*}N3yc`@qWEIVtigG0xz zjM1lB@cXD`@(20{E`|jWmr0IUYV6x!flRU@fB>qg`Jr{&gftIu!*`wlYPYyZqr`Zg zrXyw#GQM^R+D?A|3XXEBhD=v4;>}c_&5uBlwXJXaw}_a5bk!{}9>@d@ zN9heYC9_2%j+m)XXeKUeR6P?Q7+B%ZvH+UiKZcn!LnN&#zIS!=EF2iM z=laK48kw!OJ0@sh*Z(=-jl}u_mri~+`l?XR}}NnpXnt76t*TVm&1tpY3-}UNt0JT??N^Z zJqpKgkIyJs9eOBd@+>y?!A-KOjn)3Ksyj0mCYuS!50g^kc8tqe+m;D5IgM7?*$*Y# zOfbylzzKW5_I-7TBbGbVtZ(dXY97LTv(;in>HM_Qpb=iIu%c)R>V41a;SpItN2B!l zYTV&1gG~NYG#X?9=1`N9rb_C=VOGqv%shV$(zlgI4~`9D3*jlDR2I=%Y|Cb^(}R@g~zNC8q=FP%?(@<9uj_P6gxVG=C^^fgBQE@4hWw9@$DzhXTk;$Wc0au z+;ZOJ0~(MoB!|OB#1xC4^E^^>2vyl#a^bQXmdSKh$NkSB-OUJ@b(Rpu&{Sb4;wt$e z8{#G+%lQVAyG{2+;~KH-?U!*MzoD3p2G)7V;Z4=XKF^q)%$|Ml(DxY-r#Jqr|F5U7 zJuipk$vHfdKN10X_9R~8>0MT~L3HV*7BuAcNKY;Li?WGKyu2t${4rBOhIFx*HBm5* z3D>j8Q*i7fV~7g#;HeKT6Lj;qJxnK-&zVreJ-3-l~P$ZYz_}%Mha!!7hm{aG}4~wd)^Hl~&8lJkD%j zeQQ_JxMgFdg5}E{Y3WrfrvK#dXO3pKS~)qHKGeAH|9xru!N3~e?z_1=;%YCP(RjUO zs5_cB#h5}A{L+{iA-bj?t01oMRdL%f{Yt+jH2n-Gj+~i)73YCx<3{Lr^J9p%lkCeg zTWuRIz4!xuH0|MTP}$nIs19Z*F5^HPt|{#TP>mSr+v|AwKQx_pJeB|Z$M0i=WJIWp zL(3{EpRyfMQ3^%Ko*~)e*yog0WRz9ON=7!(ajYYI?+C{p$2`YAhqHcn-^b(kzX!K_ zyx-UB^?F{{d*p5RhnKi>38ui8Ce+8yY@=-6h(|7MI`DJMjNcwAY& z^2rxCMSWot#lUD&UYvjWChGXw(x0<>Dj1KaL&4GNVeg8{t9zOSxUUFVt#C70MPkv> z&A1iklV!v@eJ7?&#@P9;cQ&P*>O!eGs#|nhk@n-rJr?=$b*2j*d41tec6wQ2`-dR~ zMluOPytevs+blXISU#6x+l?ECy(9`j0(xxKD>TakAqZ7uFZQuMl-jv6W(&%T4E z=NKGy%a58+1ZvLFlxof`-7-~JKKRte)c&G+J$QfDBA(UWqw)0jT1M-$i2G7qHrA2a zYSp5tuf22cT5_u0N|D3dvt91(_;JcM(3bD4LoSKH-Ds=%W}A=wY|DT>^fgwS;QlymY3-$GS+F0JdUQ8pI8*w{3IhGOL<#D}Ml#k7#80H2-2-91#pRPq$aW)M z)5iMJxchm&*_R?_m-KYH@&kZTSM=; z^3+?mgZauI=YK23+~(9c(rl8>F{;K7{tc`P`}O!VU>~+LvpDcU`xc+`qtKYS4}S-~ zeOvF=ea6&Ah~_&r&)&FbnF<}#TKmrwIs;1ly#(bP=Ky8Biw}5V?*`6%X*Cde^Q!LK z3J;(n@+neSIHRh}Iz5qQdxHO+V{pv<7j65`rp`d-&L?ns$k@*8+_|3y?>-r5N9*+- z$Jv!y{qh;(v#>y(Y_wU1UJyzl#VLlRd#Br?}BK;75NQx{1;mo3CHwW1qa%5-I=^xNwH5cEyqq*BrOEv1tyrvDb2C*(e7I^>BR-iJJEkNU##^%LsJCWo}E_+ zFX~FYp_ps?bf@hyP({Br%$GD*kub!C!4t^c(4t!EW*QC7&=&2AZ zYvRn2^NIpy7U^)_rV1zN~MV zqBC1?S%q3=wOp`}70N4_Ji086b;ShqE~zr5-2C`nalc+V=i?VOhf4C|xX8M$S}5jW z+sGeCx>cd~)eNJu=LB8)NLd;$a2FaQ$J_PLct|N?DOD-Qa7S0<^U_Lh#{9~rLQCJY zXJndOP;Hu=OJtg=OJQ0y)kofC#SqnUID+jxXE6Q#oB`HvL|i~{Y2VoZJ1Tk6ZF01$ zt#RZM_q_ain{Z!yy;zhzJKI+6<($s@Sx@O z0f&|x7jZH+?N^O7Z9|thA#GG6o-x^3TiI ztbFP!%6jIJJYrlJi?4fS_3C&e@3G7#?56YgJMZhfB@UZK=kMAR;*O3Hv&(94k1xA?{hJ z&ed+7p5XTGXSH-V<=yd}bOus2)}U;KX0%q-I#)LQdnn~6 z)9aoO3EjKogJpTL8=1Bp=I0%CEghF4JJWUz8*=;16*SfL$xcci7sa+Gu)z-#=hGRyL-$hu{m%unkk_BDGN_6jit2~Q z5D$rkYl@P=TPN<#kMJ02jqWs(4$`Lc%S`4of?wL%HF#AR>|D4EB+>W}V|{^3;fWtp z>+}r#X>eUlNFQ`DmrAgck%lB(W$3#l$rAhiea)U#1vWk8A^jBcMXAtusTHOxWG4+( zt3%)OL-|d&cm9|ZlC%3X8U1IL2wQm`R6}goGI7#yee>puB!?6n(5>G-iC^B_NoQi( zOnS8>HDB>ayDbmqTbZWj+j`BkCQ%tb5mdX#HT$y$k@LI1%? z;LkW5popn&LC?*0vuOt}r*(FdLPs)hxVCO7!SjOfHbFH4(1!Ra`0rQpxjvC$MVyym z0%dAyk+N+ii>iktCE}2dn~!k_y?-G`r7iLsDW(gIh_bk=QK2ouz&Wp*A_}?3tNVt* zo|$B=g_u826FztCOYuRjCtn)+c2E9oKf@_w!!UKg7GgL~_>#T~xhse*{JaFELF0Nj-$?IPUX2Cr6#=}lBKV|50d&L4fLEe8 zy!NG{R3|s&bfKPQN)BWBLVpKVOQuncB%~tAeIsk+$)}~meFEffq%!c7L0{f|f{yKj z?&NwhvVMN5`eIHQ5W4@l^1dJw;81nr%JWn@ezw#TTDN~6T-~VsM*=6D>3?@6#rLP$ zX+Z;?gpiF2H&i-GRt^2MbW`Gf$yX7z11nSvcpHw-uvvIMe)tMv8F38q@c5Q4wfH^__2`z?sGf z+8<6pph8J)U4A}2If=#-`e-6?Ei}F2eQBu=aEUKKA{*|I!(rsUBk0VBbPfabhjn-o zVa}VgJfsb>h@<#f!;A#Xe}c~h+*1{&(3r+KR`}oHX>3v#Re&~%i=n1{%p@!G&045P zLJE3Dw&jhjZR_tv^j$6!t=nZhp5HngZ7`_rp)I;#tW6mJ)9<>`4kW(H>|?}amB{c@t(^#i!4 zHSE6Ae%NI*0e`g2j-psiNv}8typ*@Dmnb9!EL4zda=4~jjt*g7FQVji5dS&I%E*k* zJ`H||cc*R35Z8K)Yse!0Z*DP1OqEDHVNhS}nhjp%W1ok!HC0O+SNO!w-&z3M5a;~4 zd64#6uf@ct^v}s&Ujte>5}$ZosbYp$>z;EB@bWY&3z(#CTuvX4D>X1Ww~Q8KkCZmC zuSZM_>R|A zKfY0OyBSOSEJ4Cp9DFCw36y%nD7lDh*H^;MyuQY2=d5{$4Y>8Qx}irHV1r~W@!?07 zj#0IAs~O^?jMIau*NlIKkvoM2;XvzIhw)z$i@!|#Q8Ndh$eowvYtr0;T3siF)VKgS z>t$og(~4z+pzQN1@1bK^&V<-~*owvk`}^l!uXAYcAlXdF;f^nWiJ@rYI$~uw0KbHj z_0kfm3feY1RS{53v5SaruQPP(#yDWPg7K3J%$60^4_ryHL|0Z;;Bwh*t~MorW~V-0 z>=b(HZKd*MS#W~XPL||ohi10UL_LlC9aoR%VRl^BmG@f&k=Kv>YzkeAkLK;?qs1B2 z5P$mcsG{DAcxiDYR%3lyU$ILGQBXX1y}Yt0>NV2W3HMbN}WjT7xrY7?y5e6`n)$)d)}E%oyV%&AaVDm*~v?mWr^L@n{)4H^VpDM9A{n+ zE<}|Qqugjmv!${k9Of7sIhSZl^`E89C&*-)tb%QJ-DSs^(>42#7&iT@5T`I=fANHpcz8-g>>@^sb`U%dq@SUm-iL(MDssgl7Z=Xv>HFH(sJ{CW5hoZzz|ANfwvf$JJ1 zYa30wyIotx@JofU>FQ|E%iN{pZ8m#^x{`-^9ZE4Y?Fx{T{Q)RdYP5-$gxne)Z4Ue)4l)`PT5t13m(cUT9_fwrY$PO=Bz>Y2_4zu_BZmb(NLS~i&a0<}I={T9v0q!|49 z7bC#NcOnPC>F{VR&*RydP{}cOMT*gmU)z3=aPU&%HvC=K`AkV&t$*35e(??9sCBNjlpO$1%#2^uUeJQZO*H*>3YME>r$p4F9ZeU zNg?PbFjRj0swJ_KaT+RA4JQcG3WUALF7=BBe)}%l?yy5|A_3MYcpNQ0IWz$hZXh%y zZBmS<$`e_nE}WnfL3XczqprT`ik`@6IMCi5t9|d_r=W-jfljH$XKQ6jebgOd>%8Rg zJflB^o<4ogQDgxW5V<6o`e&CV*WQ|B+)4n)ZJE-wBhFj|Liemdg#^d{(3#%LXmA`1 zXKh?b;pZviCnbptZ=;&1`LdQc8Tw56Z!Z4_(p|2(j9HJ(pO8|tR-zXrL_w@KJP((0bj-cg)uM3Gi1ByOeCSNKpyedaNBAd*&?=rrjXTs1O zA(TqNX;7z#MG?0$MWX!xuQH52OO!XesA)DF>Ug`R<0FoZO#0RdVngQi#%?8Z^Itc(h`*?cHSQjb(Ne-i%YT554DGO8xHV z5~FW$xX_*1q849liK89b(HBDlTinUQ=++U<&ifa@$&p*XE99bpOPEA;9n44E`AEexm6xSsx1&#g!eq2pjd*~*0Fo@i88 zZsUn}bI$GIQal`%MAI5Z>l@D*!V0;m&U7k&zaL_E(y=y&v(%0D*2(V4jSF7cb|;?E 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 j0Q { + return super.fetchSearchManga(page, query, filters) + .map { MangasPage(it.mangas.filter { m -> m.title.contains(query, true) }, it.hasNextPage) } + } + + override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request = popularMangaRequest(page) + + override fun searchMangaParse(response: Response): MangasPage = popularMangaParse(response) + + override fun mangaDetailsRequest(manga: SManga): Request + = GET(baseUrl + manga.url, headers, CacheControl.FORCE_NETWORK) + + override fun mangaDetailsParse(document: Document): SManga = SManga.create().apply { + val infoElement = document.select("div#content div.membership-manager table[width='100%'] tr").first() + val people = infoElement.select("td:nth-child(2) table span.information.studio.author").first().text().split("), ") + + val requireLogin = document.select("div.search_all div.content-left table tr:contains(Sign-in)").first() != null + + title = infoElement.select("td:nth-child(2) h1.comic-detail-title").first().text() + author = people + .filter { it.contains("Story") } + .joinToString("; ") { it.substringBefore(" (") } + artist = people + .filter { it.contains("Art") } + .joinToString("; ") { it.substringBefore(" (") } + genre = infoElement.select("td:nth-child(2) table + div section a").joinToString { it.text() } + description = (if (requireLogin) LOGIN_WARNING else "") + + document.select("div.search_all div.content-right span[itemprop=description]").first().text() + thumbnail_url = infoElement.select("td:nth-child(1) a img.lazyload").first().attr("data-src") + } + + override fun fetchChapterList(manga: SManga): Observable> { + return super.fetchChapterList(manga) + .map { it.reversed() } + } + + override fun chapterListSelector() = "div.search_all div.content-left table.free-manga-detail-table " + + "tr:not(:contains(Sign-in)):not(:contains(Buy)):not(:contains(Coming))" + + override fun chapterFromElement(element: Element): SChapter = SChapter.create().apply { + val info = element.select("td:nth-child(2) div.clearfix a.fs15").first() + + name = info.text() + setUrlWithoutDomain(info.attr("href")) + } + + override fun pageListParse(document: Document): List { + val chapterData = document.select("div.v-manga-store-viewer").first() + ?: throw Exception("You must login to read this chapter.") + val chapterJson = chapterData.attr("data-state") + val chapterInfo = JSON_PARSER.parse(chapterJson).obj + val imageBaseUrl = chapterInfo["manuscript"]["image_base_url"].string + val queryParamsPart = chapterInfo["manuscript"]["query_params_part"].string + + return chapterInfo["manuscript"]["filenames"].array + .mapIndexed { i, fileName -> Page(i, "", "$imageBaseUrl/${fileName.string}?$queryParamsPart") } + } + + private fun imageIntercept(chain: Interceptor.Chain) : Response { + val request = chain.request() + val response = chain.proceed(request) + + if (!request.url().queryParameterNames().contains("Key-Pair-Id")) { + return response + } + + val contentType = response.header("Content-Type", "image/jpeg")!! + val image = decodeImage(response.body()!!.bytes()) + val body = ResponseBody.create(MediaType.parse(contentType), image) + return response.newBuilder().body(body).build() + } + + /** + * Decodes the image of chapter page using the XOR Cipher. + * + * The [image] comes in a [ByteArray], with the following properties: + * + * image[0] = 1 + * image[1] = n (key size) + * image[2 ~ 2 + n - 1] = i (key) + * image[2 + n ~ image.length - 1] = r (image contents) + * + * To decrypt, for each byte b in the index o in r, + * b needs to be replaced with b xor i[o % n]. + */ + private fun decodeImage(image: ByteArray): ByteArray { + val n = image[1].toPositiveInt() + val i = image.slice(2 until 2 + n).map{ it.toPositiveInt() } + val r = image.drop(2 + n).map { it.toPositiveInt() }.toMutableList() + + for ((o, b) in r.iterator().withIndex()) { + r[o] = b xor i[o % n] + } + + return ByteArray(r.size) { pos -> r[pos].toByte() } + } + + private fun Byte.toPositiveInt() = toInt() and 0xFF + + override fun imageUrlParse(document: Document) = "" + + override fun latestUpdatesRequest(page: Int): Request = throw Exception("This method should not be called!") + + override fun latestUpdatesSelector() = throw Exception("This method should not be called!") + + override fun latestUpdatesFromElement(element: Element): SManga = throw Exception("This method should not be called!") + + override fun latestUpdatesNextPageSelector() = throw Exception("This method should not be called!") + + override fun searchMangaSelector() = throw Exception("This method should not be called!") + + override fun searchMangaFromElement(element: Element): SManga = throw Exception("This method should not be called!") + + override fun searchMangaNextPageSelector() = throw Exception("This method should not be called!") + + companion object { + private const val USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36" + private val JSON_PARSER by lazy { JsonParser() } + + private const val LOGIN_WARNING = "This manga has chapters that require login. Use the WebView to login into your MyAnimeList account.\n\n" + } +}