From b4f7128477a7e8c900a810bce3299f1fbfc8a28e Mon Sep 17 00:00:00 2001 From: Edgard Lorraine Messias Date: Sun, 2 Jun 2024 02:02:22 -0300 Subject: [PATCH] feat(src/pt): New source: Doramogo (#3282) Co-authored-by: Secozzi <49240133+Secozzi@users.noreply.github.com> --- src/pt/doramogo/AndroidManifest.xml | 22 ++ src/pt/doramogo/build.gradle | 15 ++ .../doramogo/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3965 bytes .../doramogo/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2121 bytes .../doramogo/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 5938 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 11434 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 17735 bytes .../animeextension/pt/doramogo/Doramogo.kt | 206 ++++++++++++++++++ .../pt/doramogo/DoramogoFilters.kt | 94 ++++++++ .../pt/doramogo/DoramogoUrlActivity.kt | 41 ++++ .../doramogo/extractors/DoramogoExtractor.kt | 31 +++ 11 files changed, 409 insertions(+) create mode 100644 src/pt/doramogo/AndroidManifest.xml create mode 100644 src/pt/doramogo/build.gradle create mode 100644 src/pt/doramogo/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/pt/doramogo/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/pt/doramogo/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/pt/doramogo/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/pt/doramogo/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/pt/doramogo/src/eu/kanade/tachiyomi/animeextension/pt/doramogo/Doramogo.kt create mode 100644 src/pt/doramogo/src/eu/kanade/tachiyomi/animeextension/pt/doramogo/DoramogoFilters.kt create mode 100644 src/pt/doramogo/src/eu/kanade/tachiyomi/animeextension/pt/doramogo/DoramogoUrlActivity.kt create mode 100644 src/pt/doramogo/src/eu/kanade/tachiyomi/animeextension/pt/doramogo/extractors/DoramogoExtractor.kt diff --git a/src/pt/doramogo/AndroidManifest.xml b/src/pt/doramogo/AndroidManifest.xml new file mode 100644 index 000000000..46ad028b5 --- /dev/null +++ b/src/pt/doramogo/AndroidManifest.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + diff --git a/src/pt/doramogo/build.gradle b/src/pt/doramogo/build.gradle new file mode 100644 index 000000000..c38a2e34b --- /dev/null +++ b/src/pt/doramogo/build.gradle @@ -0,0 +1,15 @@ +ext { + extName = 'Doramogo' + extClass = '.Doramogo' + extVersionCode = 1 +} + +apply from: "$rootDir/common.gradle" + +dependencies { + implementation(project(':lib:dailymotion-extractor')) + implementation(project(":lib:googledrive-extractor")) + implementation(project(":lib:okru-extractor")) + implementation(project(":lib:playlist-utils")) + implementation("dev.datlag.jsunpacker:jsunpacker:1.0.1") +} diff --git a/src/pt/doramogo/res/mipmap-hdpi/ic_launcher.png b/src/pt/doramogo/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..b94475662e9d142f55d49ec5bd72357e2adb0476 GIT binary patch literal 3965 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 X#kJAyu2hso00000NkvXXu0mjf#YuBb literal 0 HcmV?d00001 diff --git a/src/pt/doramogo/res/mipmap-mdpi/ic_launcher.png b/src/pt/doramogo/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..a6970e66f85b4a45450fb1a30e7e86c2264fa0e0 GIT binary patch literal 2121 zcmV-P2)6f$P)Px-14%?dRA@u(nr(<&R~g5D_hsJa&hE}kCc8M@rxj>iY-(kf-Oo-+mxicdEaa|yV;kS*?GS&=gPUe zlg!TEnYoh}LZBChojWu4InV$3|DWeP=bTlz!!P9y_n!{{+-?TDF(AKF;kL8n0s@eK zH(kB}CMPG8LWrN4run!K!jMn7uIs&;@0*s|Kf4+Ctu_=zDTTw~KMEnfy|}noZb#q; zKpz_$d$wFIKY6npz7bH(XAQ%6u23j^1F%~`v;&a$iQ(bl%eHMNgGRX%LpQ_mrVUNg z%BE?K0F_ob`2iTpX0ywkoNtxTjX2nDCx|T}L-X8s1!A8@j5F!h# z^aPN}WIO=9K-?-eI@#?TK$F&9K>U6eL=yeVC@_F@I(?OaPR@6Vl2-*3jf@s%ix$FA zHFQ)Ou0zdnCorW<80TMa70!9jS_dIZ&DMc|URE#9~4%v*IT!tTk2>$<^`xCx*a1Je1N7Uqk| z91kV3G=#%jwIZ+A@=P}>RE3S>&E77;UGGU;*JH&{bx&%NoszIwwJjPFR@-dfdLJ0T z;Nai}20F=SM2~PNwT=C;G-u2*FRd={X1(Y|Gf0J!0gy72%t(ouLU_z{0TGOWRsfw? z7*a!gZEyz%VrkxOlz6c)%UQF6<;uQmb7FP_q_{2$GFK#ku1OsnKsWh>QF+A3@px(* zXUq!EX~a{8tJP+P5_g><4rNvg}MIA+)U z=?_4=jAYV{>M;&)+3m^YCrf8N3Hiw;5eoCv1E1w!BF%O^M9s2!WqFQYjarzG>}GWI zE((7=#q{6bB=^uB>O)~>e)lh`7Z-75$@0&mU;qrm@MS;!j(V*F_7 z3@00rYu7h1FcOLK%)~zK+cm-9-Fwgq1*&H* zV3?+tH#3&SQM*jlc6fD{hW+pawW(zm|MYKaXXiT3A$8Be($~H;s&8)0?HL!%kpMenM0=QdcBgIG7i_S@W#Fz>d9HAPfb%_S@qpG zxH<>~laK_^9(`#ftf+h^Gmf0dWDd;RjSURQ967XglxHUHL6>NRi=rrAi%@k1NmavI zcRr@TC0p=9F^}7T-_N|oY_+&ak}b~5x4{6!<8faGq=QckY-d=DawZzR!0*(dZ@#HLb`* z-W^VOiFn?uY?#P2MPYw>ly8oIiiiS+>JpJVQ9^hU5@=XxG=yNGQQ}l-k$+q{$J@pE zUXgDOe|-R2sD+3r8hP8K>aMM8o7zq35x%l*lFwvD8PKCdR2@q=n8NlXa;aA2 zL~)+?N{h@^S1DTcAd&A6KqM0B$bbYRb3rm8U2n)9e!Y!ujuKOKa*+fBp(utHK{8Wz zOqLrJidKWN-Js!I6JM94ZC6t;2HFAm4IuMDw$^LQm$j|qO}}d{Bfam}R$6|$5M4BX zeE`DYa90MJR-5~hO~+bGs^9z864^)8`%mIl0Nn=awrXpy=YE@CeMG*$90-L%ff(o& zPy0>`6pHRCr$PU0IM@S6cq=uB%;Y^}fVg636i*A%v`xOj2YB1G5yNmU)AmD(2eMVrPZ-1Zx z2L$Xh0{eXX0}Z%^2{<6{dh)zMxQq%SwQs-0j=v9b@Bb^;5b*S7t^c?G9cq422%xso z-FM%e&gF7{(r7fkY1{U3&+`<|yOI2zpLJ_PBMfR6^nFktLD%;h*Uo->^&<#^Ez9!R zL?ZDo<#PESmX?+(Ei#CZz*krTNZO?b9(dr0X`26DEEbPBj>9_-nqb(8bdI#M&!GOJ zd_StTGFK{*T3Y%m0A`RD1Q9^r%K+jF3k#>3&E|YiE=E8Zhin{3WdVeZr&tJ1QZ6WVM>3{{dPli*lQVM(*P(UGImQq3_!L}C@c+1 zKp2w3PHZobR~QW-0&;~yVX;@J*zfZ&;0H;6(DzXQ8>M!1 z_RScZ2T&df0lgM4VZa`w%`gEDB4Ai#kA#5T06%E-w4dPbhOD6zFg7-Joe2suM`0vA z>I844_IpA=Sda&m{{04gH`+IH0`|ik?KL4c9Ra;S?r7Jdmgp$bH_WfxWiny4P68B`FtcFup97qUaJTq zbU{E$l#!Jb6eJZn`nw<_F3QkEk&{7y+h8ymgXu9eTnAO=Vw2e@yEZmm8#U&j$y``1 zLc)g7QMF;u2#8{e!kCbD8&wby7bOmOUX)P~RpccFSxH4ol8_W6Bm@bXAVL;IzDq=M z?RXw1z+f&K%tMvg*kS~}g)L5kgEDhaacwkOM6|UdEE!?uF>(TiWsY|CBSC-y0Xa#= zlpMn$C5{C-hFLj=ysRQ7irkF&pwXMm4gI@iT3RN@Vhk4ZxTMqDU=9qAaV=P97K*lo z4I+ivX!5p<_cN@O_DBfm2YNq~6GmdF4JDp3qKuDZ{SYyFVFh-z-Swf8)4 zxGUjYF4xlsL|3tQwYW0}aoG!5D0hamVX}6Q7thEZGLuU6X%C5=+ucriQ@Z`RXODL^KgW8lb}0 z1ckH&0yjBCw#D4-2#WU~V$ZwR{YFAS5a>}tPqODJQNo>S0uSg}JQU0FFq5Qu-7)cr zS;vQF6(5^b4m^Pq#ViE*9e=A&Xhl(6SGZ%h8Ij>fQ`fZ1r#Xr#8ae^lY__ithyp&f zrC6RM|LH^lC)5jFw6bYK5ZcLIX$J2DN33VNs6AnBiyRXmdz$1mzx9G2rSJr`%K z8eXrL@bgxbLs3W=2O9)JFS8g(Y6s~zjRs^gnSp%(4+%YBTvlO(wJ^S7DQT??}uxGdJzytBS^I=>Y*6_v3MSj#dC;5!kTO1 zrP?|-J7j`rK{bfvbJM{WUVd!fT5E9|PTC|$0z^TCYuRA#^(C88fsLSbqbDE?_%vWz z^iWdm>G&9)N)|9L>nJ%U4>Mn`t>c_kN1eH?RB~`^zY_#aR*=**OefRG$93qE%tOkO zW#Ft`L2M?AR5pdRpItz+SiR1#+%g2D)9FAH)XQ{GhU zemuqS!QCm`_N6Z%-W1V%dlBbedJijSE`c%6-_(&MC@~dUE&(MGLuIK1W2<&UQDFp) z*&71-nIXQ~6a?IFb1L}HX#v%vNhFTtF@0nf=|TpYtU|kDVB_73IP>DWNY0HRckevdd=iG_ zp|(;%@%ukR_4Fc~S`!|-2?$7~QlWf6Cs-u?w5dYo=bPynzT&;&82HEXB46!N*x4_? zv(pSol8Cuv8jsG*;n{_wc(O1J(Xt_G8iZ5=P*pgRgr;p{`SNAFapeO3)>uaUp*iHA zxE=ar9FzGR=8|KGxe}VC8dfh}Mb$R2Rjr};(Ph*>TZ6e&hIMrdPPGZoWrIjR4Sl#8 z5Qc!AT0zmzaV?3*^*p|kn&8Q=b7mDUlrQu2a?`tJeEOLkzK#$C=!%N_$0zXovAgha zZX9!Z5*1N|nn@#(&q7dDzDwpb8mM1d#HWjw@%_zJd@`TF`t5mC$7Q4sjbrA>EVQHs zN;+37H5AXSp!m~ED82P5niq?3OLY!B&u@2GTZ9Qk_l$skrbrhgJgn#NL_Cj&^en2( z!B34Xe0S>#7Hy+v*x7A@vM6FQp2V-rF5o*S?!#0p0aFsO5{n^~%VJ_I3qh3NHJk8C zWw^^LFp6cY8zx??ZQ?(iDn6f<;r_xjG7leuHl_la2a9q}rxvmK%6Zh@y$E}wM&%US z7BR@__9AHH1cdPclyv)YynrVYV>qs*aM5buRI`j9)>g6VSY1`S*Mt(Xf~O~E@wNFw z_{#iIB=cEVi3Dnj3^f)*Qjc-qyp0X8OG~iJTd*4jUk|+6tl823ydeR2wt zE<#Wlpt*2L4Kz+)#nl&1!MM0_a}tnDCL{X*%J2V1Y6?#!3Yb%3Jk$AVy@<)B5a3&*$x!bfK)8OTf73JX~E_j?Z6Ms zD!#88ID79TnsX_{G76-a3^^l1osuC4BATC-vHbV1qw(=FoQlyk@(B|Ob)L=ex2OJ4-RyQE0b!f-3NZgZ! zXUb?^sG{=UAEWmE1vJmEc6GjC%+a0`(9aYR0ncYBJoQlHsfYF}$N}FT zPvWWkB)&a!2*<~#u$D?9Ge3h|ArI8+sH_%ISy@BcG@+Xo1l#5Zvm9CxdmdhCRPnM? z$L355%yxmz20j~?P&qM%)Fbn-H!PS-Rj{go>Q6pF<+W*%MjBpS%;!as}368OS71 zeg8bR{_8Znn~i`(A`#gK5COlJox_*n1<0bnrT@j+8WvkyjX^$uz>kR%zEYUP@6Q~< ziFgW0HHMljLr*86Q`lLlfHe%jar{hZt0uJlTVRx3HF<%SUnnGc0yZ2Mf48xOmuEHL znJ+-TT!MFY8D-Hy?a~U&^UHwahsY7_e&>{is{vsMxX}m5cs?_SFDCN5Mu%3wFW1+x zXf^qYILHUkLM|(-cy@dSe>`^tGpY_%lHgG4S&<=%0zAV4Twj}PUMa!%v-th!53hFc zONEdS{W_t#$M8~R3oofQ-d~6#y=f!6*1%P_jw|bHSY2E9*8#Tz0sYJoRkVF8J%dN$ zlmQiZ`r)-k374$K4Fq)ShZb@Ru{gdtF^4~#JHj{a{Tfgba~~jDptXUjGX{q-t_f7a zNLoi5{Y_7R?Ex98kP~R*T|kA2c-yGqpDN2JK*zKf!{z1{KGUr$cpK|RY0qTXq4;?3p;E?AB2RdB!lQj&~^(|J5QIg4i}=6DGSqYaj8 z`-H>*Cx9g1q{?VY$iYKW5D^oo)P%HxbizOI%$xHSu7FF9gEyLVm|X*NfU~tC-r88i z`{gTq{SYzg*{RUOB_JM;hw=fPgQkTTm7Uxl%OWeu_|T~09ixo%W`maj_IkDZ$SW$o zIyQx`P0Zqn+ypF_cFY)3qR34Q*>{q9UTh@@a0PHlCjvAM>y3v%+kKP%lw1+#YzY=* zR2>`dm6!2m=@Q=Cyuvl9^A$z#TG#D80XqjtsfdT-S=^(gF)3^K+-mS79M$|#fozZy zE+`tFo0`L~7N&4tat!O14bNkk*HmZ%nH3LLEgLaWKwhQ=mER**5GqOZgmyU8`ogbv zb3CBo2`IWU79AN7B~%;}udZLfPfCmUsItmU&@DkgKgl4IakrM@3AuSW#y4N6zLPY8 z*Zg$MuvX;tImBqu4jP1SLyn&jC}(t;1o8p@7eeAUknLA2Xir%YBz|h(^ww3JDlOvO@)AmB zeS2KH0Dt&VP!Iv#21{yBm2hPLkE(HAno@Ngd}cK`0kj(K_B$@^zEZM=NAnAKBtMJ$ zvy(`Q9^#&Zgy8XTQso-KcwHxvK*={+5s;1;6z?;j?0S$P@ncLiPe7AVio&mBH|e~A z)x@ddWxTy{nVTMiZ;^K20qZF(-M<*E285LkirlFrg|eYK&&_~q0cAsJf1qFKpDro5 zGdYIG#%{x7V+)W-Vm*eqz>pAuc*`WoEnnMosC1q7LaEAHfDPKB^zTV;|CFT5E3L`Q ztkIc+S_$uLEaK;t_3fIZuyYF_WVi&xVzE#r=!QXg9zSeXkTjlhe)}Z8b6oi@>=|UW{6g`CsGr5yl@D2 zqzWjgR8vQeRfZ}`d?ifxBn9@?9wLx4_p^FN1Iz1`MoCMMY>Wj=w({)gD zO*CwqgI#k>)LaV<$Aam)H!QOJbz9#bHynhE;rakg(+2VZof9L|Ku(ze^?xp)^-}`d z2kpAg^ZGtSUi(R)EBxf6|8q&+$6B+bPc<9%%T^_BLIK+VQ5$af+oXb_E!0F zd*O8LoZ~eD`t{?xRX?HTyWw`u=h|;Y(DhLdSPUZOeXiL%4G02#=OC$y?YcZmXG$W3 zIfyFBQQHrRh|v%b73}t8IvnE`hY#o%6?Frr-eKI%QNZA_#!UBGs%?}as4FZ0@ zaB`4wh86W5?S@N$q9~C~P*l)^;_*R9*$3d;)82mq!cIO+yITzW;jaUNG$0I!Q8i)^ z(1WySmu4l(<)hbtsGvuQM1uOhiJWaOQie-_EXxD?fFLlVXvQr7{AheYR04(xdXQO( za<3>hWS4D+ssUM9mM^qwo4SrGDhOfQ59$YY3Eplmr(ONS05*s9>**O)RbOF@9S@Sm zppg#)_}z{nXpFo4UKGW%jIm#C5kRGP13y22l8sbkmX>AtPd(53PSnAL1w5>Sj@n<; z@eZTCD2ji>82jti6Eylh$S3Fl4((^iBo#%Ob6xje1wpti%pjux6{c;NHetrK2W>6^ z_yz!a;s`xMhRjjV`kNpE{GV0>_+v}}+$DMjG;F)jHy&L>0{9|;7Xkb; zfYp}isRunliG~!U0qr*Jrzyo-L=YL|8>r&DU3NLTDc-z2w+r#e%#f`o(CJM-!$Nf~ zew|pKR~Q01Ng%-e%5PsQ$UL>5s(SOnG`f-TUDejZ+6ZtWf!;(&AoyW5pgnvdi$Bz} z_3i{eERmywVt;yWYe1U>0=@kZ&roF+g8fon8(-L9_eh;~AOA5{ao z4gdc;_}jtYpxhn+I4E*My6%90AptpPHwOd^irkQ{J0M_4Kn~i?0Re*|H>B(S7vegH UVCN{Bi~s-t07*qoM6N<$f?=}oW&i*H literal 0 HcmV?d00001 diff --git a/src/pt/doramogo/res/mipmap-xxhdpi/ic_launcher.png b/src/pt/doramogo/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..33eae73c873ea118895048f9065173edc42ace0e GIT binary patch literal 11434 zcmV;bELGEqP)PyA07*naRCr$PeaVj`*O}ih_9eHftgNc8-WM+2B!}WAN)#!{8dJ6*4-5k{n45jE z0bgt%=3w|wFnq9qfiDK^lYKJgU>ma-mL-oh+9-(=;R{+9bsUi5jXw906#e;X69{pa67G*FBoC$wnZa?DQ|5J7?m_i&kL!j2K9eNrXHgXWSr7zo zUAc0l2_P5(Q(+KI0-#|@qrUdqYj66#|1WyI-nR#Xf#JF?f*|<9K&KNjZV)G#py5fM z^g4NfLHEtmK5N^o?e-d5RaIda25j5*%H{H38;0?x@4ffl4*(FjNGhe0DYx`13ZN7` zL{;h=Z@lqG?RNX$ZES2beBb}VLrgjV<3P6`7X`273*=)WUMRb4h z$xBcBQO>w)=6SmhYLbdP<3UNrz4|zMKUtR1Xf*y0fPZ@T?%mZ9Nt6jZ)F`h6N|k06 zfd0%g&wQ`j?f#d+V4&}&Z01#br!~O`eVu85b{f~n3YNXvS(fF^&(Htkn>TO%1pseE zvCagdA^;+*iU4F@x^(G3ZftD)ar%J!(N@t(%|jV`NrL?>r##o6h6Pr19LBw%MfynB zTv=K9Z?|vX{$~K3B2p+XfQY^bKqPUjbLYEAP9E+JhPztOlyMjPQ*dB&vWg( zZB{8jZ${ap>L)U`0Ax#5tK4z(t;GxQ|7s=dhiSQ52m`07QDwLjjPTP*@=V z<(tQ?p_R@{=ytG+fh?xRVQJrTJddf>Jk4pP2lRql`ih%3T0JN~Ma3hN) zm8H#I9iQafB7<4PikZeFKFs@$0`pJ-G){@0RI-etuZQ)PKFkSz*b;K)0W^-*iVWB! z!2B|TZjwID9Dw$+M6!tbEN${yI$5td>y(!jBzebYCIK{#+9r`oh=0qD=Z6rWN9-AE$#_MN|5K9OZ+WKB0-As z{nNxJ@vHby&ZqcYPkMej?vDh3#!=EZiYcNS>;+89NzoZ75-drE zEi0(VDyp)Inxdj2si?>bY)OG3$uMMvfkr?|!4rZ25+R6VxXHf1 z3d%AaDoXS%iSLr4z=Zgnz(dlB&L!~335OAg2sl0gC;<;i8Un~54$zB20irNKFAmX5 zffa@5$03|B6hLB$6tNT|IHi;~D%Ga}lKsYTCIOU{+OkNdA^;kGqb*5+CCjKO8tSr! zx}sx&zco}y;>ap2Sz(%Dx{4FZBGByUKtlSEf+UuB#ygZmK=PTYNW#Q$h`JEL2@}Z^ zN9aZ&+KE)^5U|2fNTry-lw2#mzc3*StxpSBk1T*D1(sj zPE552XeTkWcGf*H{R#>ug?fMp1HMOqejEv^3x(d~5Vb|2(2o-EPAlPm+;!qOKAdz8 z0#H_}%Bl|)72P}QjY#R0B&MY^s)f_Kg%hfY71hL?q6yIOO(X^ZO9~L}MA(jev_l_T zVSrZX?EuP6EGs{iLObRK;!6b_;&&io8pp;Iay`Nv#c06snKC!Uez!!YdoREKQxgf z1;|2TN=Xi)l}_Xfx*-XaOg2+mLQScEXU7v13*azqCi;^q(enuUWB^IRZIDVw0bDRu z5?BblWWlAD8c8Dpb?PD*_Bl<{THEnw&6)%%Vucl@tu)i$CTfxuoK#Ibsh4q1v(Qit zG*k^*EUYk^6gP^QqSiwftGw$;0(8XHdVm0uv z9R{p>kaVI++W}2MXJ4wwr_@FOG6+CSX#!aE{B(JON2<6pcoP77BZ_+wYcvbsW)eVo zz>}rzZfy)%X6GM)=e%a)N!`W?)nYTf#%8&omW{~6n(yIG;NX_;u*4zSO06K$Kj@85 zeKBd7iv6A|%fzHoNzfaFdmsT0FK_bV7A_eTJZqF0Od1nNoLD>|gXS}TfE#@DaMyR?fM_brY%-5~ z`^Q;24@lcMhQi9ckf8K$0vG{}C@l?nup1!(&_OyH4;4UptgtK=R+cv87$kZ+rWtrr zE3x!BshK#Yn(SpJ1+^arxE(mS<2$$=3~)PenYNmt#|pCW-ApH(P(-oaiN_@`Lkb{4 zX(GNRDnAKjI(^cE@K!%^04hpZ=|qtOa7op1L9_9qS;Hm0%w{_UL<2I7;}9Exhs#bI z?|U5v5$QW*UD0GP9SoV`lj>sQq|=@+S)yMtm=a4aRm262ra@N$s%T1p-z6w}IDR0a zuyGP7D_F+Gyl9X~0VQ+&bfPFfq1&u5lb?sEfRx}COP&Ef_Z(dFdid1uqZJDO4k@Mk z=`OiwXsF{^^r3N*b+k(9j_FR)CjtAg9#jOh`#k6D0w}A#Gp-#CFa4~+hOTL{vNWl zhBci@EvsqJ-8j&t32a{k(QsOtc#>&IzeCf3YPA|$VdJF7ZZww#Txo2Jq)$m!@r+(( zOY4GO##xd+vdX4zHx6*!>*Hg$i|a&R{(u!`ia$~KVL!#Qr~|Xe#O0w#&U_RD`=9|g zW$H}k?(iur3n0en0bc-GER;(Mj8ZiHYt|ee6xX8A1bK7YAvpv+yytZAj64yEiCv4T#ty=l%^F^^ zYN*K?hXg2D>vO-)(&r)geXsD`pkXnH8K?O`Oqe&YNjPK1-f= z2Ex}vIuC^>D3+8(C(9#w=w%>pu}X>estS_=w2A^%PJ^N`LiRsVWZ#Fc0%qBQZWwU4 zdvLdU2>sow_UDyWDw~uCmN_O z)X@6$9=1NZ3%A|h)ndv6+Ca1{vRXJNV_Gg%7;p$|pu6$P>) zL$P#dmccKD+a18~IbQ%=7OOTRr9D~z8b@!GIe1RDaY-xTqEW_0qk_|#nJkwH89YDg zZQ>KJ&*nO(fEM)1j?w~c0YDO`Y??SztKs5&1JBeOcz$jH7i)7U#WI6N@&ib&2LvAL zH@+X>rqjcR{SGdx4&Gjt@cwZXOD~3(T@>*yoJttcX9LWk8u0)H8}0Q00l+j zWtoAa8X6Q`fmX3#)Jlkg2)(s!3^qFm1OLG->gcq$E zF6t$Yv@fW}PV(2U2Q9ocXt4=T;Gr%ZEqb+F|D&Q5Q*`^9v0;*;vAbauw%v z3+GH5r%W3sOp8-6q$oz@5d{S-dA3{!8x(tkiz||gPs%ZFG=N*jbSyu61}o2jWRwjPub;bszjfhBT(nA9aRMy(0W4bfJcLuSx+v|n6ZrVF z-^Ep;FDu3e^D=JL6}Ss3yoQ0rQ_E9+8W>fsla2)7z4)RPq$r>dwe z&hcSaY?!(MJ(i(v`7DjrKe&lIm#@QhJycFNV4avpSW*y_6_#wC<704h3%z%4qIcyk z{Ovv~;VFQ|Num8L-I3o82SAldWg;tVRLt_K3Pt1G=C7JHyl&Uo_oGTOFMIi${w5!k zVYnW8{I}8Qbl%t&TU@flR@T{S4NuK2;2X=w@%r)!tY`*Q&u7Oa3>`2uNScONQ4q;8 z{1_OxF4i{Jac6A}KXtb7zrt-?TToDX?l?-%uE4C@Fl#2Nr4kx;1r_QKsWSZloz)ha zx7X3{_YoK}d?`YAy^Y>l3*Kf2ero`4y#sHxgJ83Zh?RgwmOit@0$Km(8>wK&Q9y{&Gbk9qdql2r+GE_yzF}sYHmyY4( z#bvxutK<3dJSwWj`c>R@}lh1QkZ*uHWH-klbL zjUJ+oBY;D+HPqk78bEt>p7MImXco?ECA?sYlnwF)QFwxu;ry_>jvw?ld1ZwciG1PR zl;?d|?SVI!lhjldx~kzqwT8cQ;xxXwe1a9`W4g&e>B$O0T|=o_fmJO-R#mdKK^yFm zA|3Yo@YXiaUth7lxABP*;%>vlYQsdYrl40K~9o?(<(7n2fV5^U)>mqV}p*!VxSsr-_RMZM1<@qVSgiCq_my9wl870_~ zie}{Dw(sCa{U%e`b`-Gkyq^w`MKTfH*{X($Vc@yB1^nTe3;25{PJ`B%Q6-MPs$h$x zkY%AhS79lls0u~80J6gReZ<`!qRl44W(&Rk08Q7&r=EjfdOiHo?_qsT!A4DibYTId zOUGcHo`+gipjZ+@DMUc4QSWS{`}SRQ-@OOt`Z~PNHV_UxVQnQA*QmQ8>x(lI^V;j( znoSDJt4LFr;yI&&=Zy-UqQ!x_&B>vFZMcL5mZ`9;gnspUBzA+$H^I#VX-k zxr!GT7V+JcQ+RFpI5b^HsH$*O6>Xv`!$7rUp<1#zg@o_jA0TSAfL0q(yMwUPgHK-O zFvLyQ#ZL!a{M_x~^M;CB4Gra-EB zt|QuLBIMA7#~x_{*J>ExEq{PthAuu?HgIjlKzO=_(%Cx9#S$d0BNIW=>7eDQ0m6O& zf3=IPzq*3vUtK}a8t{EaS$fL4&*3W3<#KtdR@jna;Oo{LUbW_MMz?w81qDedbn(8^ z;n2m0PM24j?q#BmOCw1|Iwh)6<*~2T7xBGgr|{Lr5>8a-uvDu-s#OuyDu{Fqkt8Fc ztjj27N|A#AN*F-eCIGD=YPQ%5?NhueS(0-v4)7DNkDtTAXQwLo{7eNw!-g?$Krd^M zR2h;gK`F~nt0awN#E}HQ<)HcJ@AKiWcMuJH;W$jvV@AP~g`P6L%!ea^CI!$a2*`YY z!>TigPU|*D-lr3D6VL3w&z0a_8_&k5q0~#s+BxNR7)s`fg7QV|Ltz$ z|HfTxonJ)vsU?KE40tZ&ID}&AP%Aq0B@_CJ0oha$4J7zY58bz}qW!b0aBpuhh{B$` zBZUem$76TUK2!=T3ZT6Pf&!@DwiocaJTw1{&pE!@NG?o$B7NU{`Wv&Kkt_E4xIBem09=2L-Y;Sj9_xq?i0~q}Q zq=AFjr{zKte2M%*w6qAg<~#VG&L+Mewc$T;40!4|E6d@%Eku0>QpJQ)x1pac!#rPw zV(SRDWB3~$oU3;*xOxZ9wKX_5*5NmM`zEAKq8AMf%4|uXqE;B?I)BHmAR#XeN zBx5yj@m9ZuUvs|m0CxiS3+bv^oQK10C=KI`S;A9x8Luxa;myVh&erD9F)j3M6QxES z!*B_wW+(xI_g6X-a_&#*s=YVR=MHwW7GFAVO5k)a>g&ux1=-{oOhkm0B zXQ_hN3m|Xx;Ril8t14QH29zi2u%4_#wlsLF4uTCALA!^r-N)dg+vr{X4Bow#(1mvS z6p=`K*c-D4pfQHgu0J1FP5foW8>@zimThBUsez^C2ABGc$xFQ5!Jyf~pt%J-2w@?HN|TyQ ztSI%8tR4lh8H9M>adE|U&{AWxwHT5g!*W9O5#fVcjBAT3@bn_gXOFR@b8c?KU+)U3 zr|IawcLSYYd<6IA`r`$lj7r@SMh{ZLPY(bl(QGr>G_jn+tZWzktmrr2xEkjSl>?OzZ{cK%f+AfoA{wLK=bJ(NH3m& zqN|Xut^qeU(U&6(6u`N?0q^=f1kH}{LMOM`kG959`95RzXaZ=oLquT&pf~I~7ssR^ zDgo%H{Vlxhw0Ox5Mc{YK|JjSKhW}3Bp?KR#!^Gch9K-kO%Q$P5IDku5nNRU8ijC$u9QSauXdfF)CDJ3)DL!gd(piZj4v&&9iTg!gMQ z28gk;9bvv3q8U2a3SDe$x3IR=L~k(of+;>lO)uc80B1g!J0WX&L+m?Zn1gMN3GV>*LBVa9z@MC8i-|ugt z6@_?0Dq{r(HoO5g$z9Ri!l&IPnqHsNb;r?DPMv3T_zxdIStP(Xy=6%?@C|DYU$y4Z zAX<@RPGkLz)5c}D%|4;s05tBp>F;x@j#Gw(OLiG=E-d5C`ZDU8p418wN;ZFn@@-OZ zrb;Vi2@;6Xy)Ni?Q>OZdg4#IoKTh_}jsb(5mXw2*NFY*Y2t=JY#=A}*Zw)$Vg)x>C z8`W6DJ-3H@ZWq_OoA{`^fpxdPQ)0777$f7@%m#oad<(Fs7N> z+QtWNoAZF^7?wcetdZdXT-FU-Dpl}8c@D47E#kG>0;&`&C8|n`J?)d?NI!{M&nZB} zdQ@7WVI?3DC1mdFNNLgWbVaME;wsMnEC}(5NA;z3$<7B}7azMFuBJ-MmxtHA z?>DHUV*iwB;id8%UarpLmD&RPg2>lID_tqS$B>1UmKJ*=X+qM5KtdG6yY)x}A}Oin zDwZ)DBxz)-kUu2F(!Ir!?{w8jT6Ke@)LJCtRv@7hadefhdA+xV>%A5}Xs_Xe&KgUj z1JHS9gTnFxXdKN^?CV*h!t38DkV@MUP%!lqugCR%?glRI`p&+gjQy;UvzCq57(8`+ zr819;c8#s7EkEFu5%a2oDrFxg7oi<^Izh-*pG^x4NwH2GhN9%0kTjGb#D&C1rsV-) zmPk0ECjo9OVIxv-FHq2rX_+*ILLz+J*}%u$CO+(}zookareMr{|Y65g0=;MH0k&y;I;!m99O zZg@W8I6^~HQCC&5xtt{NjyhWbl>m-WRb*6E1J+5i9ySV=@dR86B} zWM)%Do*as_B7zd^$%9KC==IRSXP&6_Oj2o7*UfVO^L7od&9C6q+9IB{Ej(?S?59af zvj|P({-&w@7}(~5-(c|65m@=>EEP*ICMy9;j=fcP5 zOk)EK!gM#Ay>0H@EWT4#4KLPK@O+J8U=^IRY}8c=6)A)nhrFwfI<$cbE6Q9NnEp;% z6^Kv=qs|6C>a3$jA)93Tg|sizdQo?InGZ*a&I_P%qL^2vaus?N$5b81HIp|>p}c6y zgQnzqTAe|gwvir`uFTj^x(yHdidn&P)nz4d?6%>WYlA6v9Rb9WhIzv}(NY z;iOVYc&k(TO63C46MLQkbix>|FhUSXC@W%{&2B6UT_*yZq;NPdZcTT9j$+)UjLY^a zo9=f99sYlpSDpx}K0x3+S`ug+-H<{{!AIJ^l(wZ@R&@pt(@7k$6Op{pRFQ*xH&lT& zD|o2gqEW(Aj|u)p^=ylq{#w z)Yfrt>b!2@lv&03QXS7$mvFJN2usmeZ;|2%mK4K81XHF8X+k$59}hVZ=@|$}0d1&D zG(~hKDTrl-m2ApJBnP9&jZX5TDG{H8tYp;*rxEX|nrx-H;q`H6(8i~|Cf?s(#nm2F z>bMWGaq+JVz{uLEAuDt%G_~OG+H`M^BW~#AsQ3gDv-}d1X{(mmIMHwHiHYrE0fx#A2QHd^A5Cw- zl4r{!ptyYW1D}EA@gZJ<(S6Gv5^W7n#iJvEvH*zM5RH)z!dqxFg^40llwm9!ceI#K zOy*u0ihE52fr7w73iO3?9luvy#tE~^z%gVMrb1GWO85#t4Oxf6>Js&!g(6JShytx* zyG#NEZE{B-+4e}kA!*YSAo3mb1CON=?;6B$523vk@u+7V!yN4n2SA2l6y9uQug;~^ z!}U^dEwFC-*Z0gvCMJ3FDHOf6_%}{)VfI^G#qAN2VGh( zD8s1jHj!N5lgjL}%Rnf{^lwt78N3OA1Q>)LNbIg0!6)#uB_BWA;#c2(hiafSO$Z4fkZyH!ZCronG_7sQ81h$>U(m`;1xoF|9Uvkx;Px>;ovv zfR5|@@SdU%O!^)t=GBX`K4X@4bb0C`$% z4hRr=FFV@+%G;a$+Gm-#NoZ)A)K=tKr#V(Rt~I*=$~qxgI$Lx?@|>5oZI*Uf+GOeX zLuhk20Maz=K=Of#W;SNAhK48Ou&C`J03z=#zFYvx+xt9<>?nY;-Ycs#$=WXKeIHW0 zM;}0w4t$aGvz{~Ub`J>@d2TaX0GgKNwHw_O(WwrKsvcs}dmb`E(jwnT&(!pN;E;_(@>1h%RF0a*Av`;f~9<7$TK(!&LnoUywlm3<^p&J;y6A%dh$WMt&?0c@40!~XBoU%Z6it2=W!f=lj>VNOaPe#AltV8 z)bqT5IEfyTXJCs?Y?1SdoRg<7v(nZujQ{Ss?!O!Y5Ea=!FbPDfeMtflfJ(M)f6sN@ z|3JHEPck5r(9<-iDytPXNgrqQT+cMkf9^QWUjm@Y4o*U0qUb<|&t7RYd!3q=5hMUn z#kZ5Hs{Z>pj^D^|udz)ged~*!U-Z1O9h&_HKL+q80B+Jg)Cqt{`s}}_=up4%0!UO} z5mJZ%R8bV=_kZ{Ae+yu~=y*+I0*hXw=y^r^Iz#7e{SGw$3cwGC6lf~6Mie%FKdq!A zMF5o27;OVlrbCwHfABl>{%c8+7(~;eq)F&$TIbHtgirHP2t5A=!2d|7ixg;gh`tUC zKq2zMvivPclKv5ZSK>G(2{qNvB$8s1bEn#g!@n3++WQrN{|ey$CE!VQ z9|90jS7!Z(x|3G|rRSvPJSop)(i5H0vG_YwzbHx4cO^-B9>6hP-aduTq#&5|{3&$d zur5J>xCh|30KO04HvrZX@Q~k!4gyau>nrU{Q2?brA<~CZNkr0!4*GwRKm@XMvzo&i zyvO~%X&o6ZDw0qXfrYHC^cV$CChKbw0HsnW1qXqJ4w6O$9{MI=@dh_TQmzPCA9nyu z(*G0)qKI3viDFVeoj^khGf^5HX`5W&DN13(;7dW2Qd$a}6g)=&ngjxqojVF3QQ+B=^B#pe`WT=1K&6{x943-F!((|6 zlY0=?e2nLR>Rm5HReL?f(PU43ejcw29s%g_n(wLi_6R^zAJWI`f=2*)yykoAy*&cZ z)Q9x(y5JFj9PyA07*naRCr$Py-AEES-K|l*?8^F*M|s?AtNIqr^?8x%*q;@dR4EgU$aDjV1Zg{ zwzSl{ZZ=N>!2$$QZ-8A(%@QFYB!mF5qY;g$_Zk&dIaF3gW>yXn8FPe>ceWXQ|1op7 zxOv^p?&NVj{Cdb_9&X2u9Xs}a|9t+VVfC|`fpa_q+Btsr)vK>&04o5jh~Qk$zzP88 z`tz?|eg%LP4V>#4SOMT%fBx0WuK=*3fpa|rD*&A9&%b*46#!N=aIR-y1%Pw?`ByK$ z0>Fv}&h-qe0C289|LWye09et$xt@U)0M7O2U%mVa04o|e*E6sJz`6eXtCxQf0C*A4 zTz%=YGXwEy4)wH%ar8N-_1x2(%hj`HpMg>0UpN>RO^9j#$DPwDTl6?)|1_%}7BK_k z2tNC_^!J4UVUdK#zO#g%{y%%>q%Lv{i}+}(KIc0FSt94}qX(b1Fd!^~_(q9dPl#Oq z3@sm8NOm18^aZPX_m_*Ym#Bto_e=|8e7EznZ4uxc;YoZeG8Ony;Ma zK8vF0b4}C!AJ=vNmybXG_(K3uLip)TtYG^i_a2)4<^?m=p_~@gL zK2Cs;1wkqy@~~Ry`aA(Js^S;`j9>ry*Z)BjMgPs?$B#kcAN`r-1Ez$v2u_)fGmm4= zWBez5sgoo?-h1a=ANSlB^}gBXwpuM*xpD=DVf^C{Km72&1rQzsghE7qQlohRAWQt@ z`a=A_`ORXz9ebLuvdB5{~@2juAidL)jpMUVd2mdqyK^6#E z+hA%S%o_kH@tc47mw)*W4-O9gt4EI>JvX>K4wL1)d7Lqi!!7&uX*qD-d*#jBG}rUK zTaoM2ye}oe`uh5R_|Zon{c`}+nNtwV#U_{s08;LMNc``=|Naj(P5bSvoWBU?F4ATe zF1qOcXBpdhxtEflR4V=Qv(G;JXbcEua*@sofUN36wZ{Zt{o)tD`0u~`^2>kYIK=01 zpp!VsCqL=yIHv4qPhF5{V(#}X6buT_ny=*4db=7wZHoE%P)VQ z0l}z?bYfdz9soF0eE`@${_&6h(|h;s{ga}cdYX2594e2qE<5MX8-L#WPjh`y5^J9Q zzVXHz|MeGNeDR+F@a822W&uD}_ZQU%K@RBEvp$y*W6$%h0vIF!pg}z97M;irm<0f7jt?aOxxWBlb93|FBqJy? zDMfYmJkD6OpJ{aHStUc>{qxkNCs9vd)N_xUk0^?+B>)(w22DbG(sot=q!J(nK;^=P z3wQH4&?FyV5fUN~bVbIW*T*8SFKgekjH~FqQ50PV&`<0D8pBx$FmX&^S^$h1z@q;r z65vh|80K-7)3y!rIPkJx&zsMATtAL+%_4b=5`OyZD2i^30D#fqsokOT20&$VbMu=b z04PdOleEj5%p#nTI_eN3lT1EoU5MBxZ&;vvp;5z`wBDp9hF48WKgG_S0$n%PPq&!YK z>-A|QMBY5iLxL<~Tqk&e&K3Zs;pRp3@VpN@&2x(o`DuRaNj+eT9RDnR&vNf5EiAnR z*x1$m0x?8h+F0^s{(liasyzJzs|F)7UPvzW132z@(gf zn)Z3zauTVN*H_;47tQ@=eSY5i&2oL3d(RvIvWTC=J2VNArXRUT|3xOfXg{+^l36+7 zS-5`@65`AOU|N-CQUDa;bd&U%2b7}E%j@SXUw;u}UwQznudh!O2PmpjPwPF(`OvP+g}ID1j%lQ+Lh4}eiOXx%H}AGZ`WtP-v|1e+bS*h2|2H)aCN#)d z)1X6#sj+^H1`Tm?5C5(fXYj8gU8ELjBxgx=jN`-K)&GGoju6H%Ld0?olJnvJ;|Nh4 z%l+($_pq14^2-aXwVEd(^XB-t>q`#+N`R9%#7UfdQr&yf_IaFZ7S3xxgCPXY>Hr#S zO^2oFuyq}droqt+IJyoy)=<)PIZPhVq+JReEe13#OYkIc5_>Gf9FVBFB0P@ZBZ42t z^1CZX3^xqnA%+`;@T5%w4uU25T|jjV@#jg*BG>cgd6w%h9RQ~B@)Q-PllGm*l}>st zxjPA25x<7AW}u|&sA>kPx`CQ*%DJMMsOdV&P$1wvCEXAp7#ajb{2_tzpK$if!9}n_ z{85Nu6k!8^ELuAT=ZjB&tlBl++{0_@iiFaet-%698QJnvn(s0m~u?XIC6vsX!!na{VLD zKcF-aV5sYq76YnDu>ulRBuW?s1Z6Me&Bcqner5rX#{o_+q`+7_4?8SU~O$}syM(b z9DGsR830x^PL4OVO%CUhY7!-a77N#>+QVlL=`D&Q zB?%Hk*^Q3WsY63KQHy5rjuqwX#{pyX{y2`8dqvo&8#E8`dBivg*H@ZGvC=RnwafbS zX|!H6ZCo@;xM-HJY1ndHFiOhE)pe8-KR*GJ`twumhN^|AAE8n~I#Gab7@(UFWU9Lh z7*YSrcz1_^<*sM;-V@+ad?7IY=$VpfItvH97%#< z7(VA-Jp^0|z6E-Z^1dCfFFgP#0VXBdlyE2EQNktD z!IouX!?3Z=LpNdT28n|+;@^tb%P~~xt?ET}~9&*uy=v%spb=?wT-!v?2nl?7g zk^mz0?UN8wE-l^_8kr<^A^HG4F+fRN!E=UZ>asla?~88F0GCpQQesOzK}zpQjb}{) zWvR4DIlWXU7Ac@7#Gh=`mUx;{wJsfR8cgFDNbpK3C{QW`T1kr3O)Al3f+4eM?>I2b zBGHT37H1v+S&pzsjz1}&s6IHlDgJsIwyzitu3BYWHcRq<9!ysw{m0F2`h zd6RS;SDEy_(e_zgpYBZ>yLH{brf%c9Rl#+ujH{-Ds(5}3@%JmAxgri4vf@>VLhOgW z5d2Q)V>|G$9eH>bcxZ=#v`uq$Qjg6c!56Su^4?RJN|HyU-U%wkpefH)NmBthWhbO5 z8`+#A1!D0Yft+7~G&^nv;L^CnajMXwxPR8RJF@^dZO&gr0;H)6^w&3Z16zrayJadP z_oC@w!!Q*QNfMieUZUF2g-DLSA9~mi1CanE_IBi<8;3YZ{>FC7-KkuYDHrA6X7R3! zzF$@<2nZ52N%pN0qF3Wr)r`|1oYH65K24ZAN~%+U2qfsHf^n%UHmjNy0p~n{ab^LK zr-SF|_(ceMQt3j%uO$b)JlD)JuG5(3KV(0Rm@<$Oh@;3yDiFEGs_ReiFygEEvgxvs{QM4vN&C2)gC z0XTKfrViPnQY`O1C%L}#0BE&ZbBhB^Vk6{v8&U#F%UYB3HB1XF-4H|f6|;=j?F!x~ zRdG?bRr*5WaUlm}gq4K-B=GP!aPc_s@F*DKQ82*6z!f*A%GIF~as1CDANx2!&m=h{ zUZ8T1L?udck(6gCkp>b-QxRt+xfJ)$<_%@-mPr}UG{DX%lN5-yt#F45@KX%Z`5N|j(g@^KIaI0%$p|19)`^Y2BJ1T=m< z@tCA)PF_M;5dtXErpUaEvwPUL#1AL|C>_$6LIQvzPf?sip0iQsBT2!2^4>LXjFVnJ z6B3{ZQJ*Bzr{(-b?qjwl(-tb4E?%A+qV|*}&{a1KNpB!P(lli1{N(uL_K$rRJ2Z47 zW$a3#Ss1{j*F@Zy&lAU}+E-+JMF?UR3Bdldk?z!1P{Fm#f*i8{G}R(|PJ(mFhFR>o zf^qNp(gR>xUB3v&WE&={F?WY*&rP$8w@OvKZP&1_+lTr1{PvP65JzIze(84cwb#Sf zK|e8keL0VML-L5X=oshG&!l~%o}*MnOkJ#5*Qd%&N}|(AT;Qa*d)^qPx&G1sps3D1 zDk-M%CQ;9oh^?+;i|UT);EL(s6-)X0uhG@1(_f-E8r2zcc)B&I@;vZ|xE~DgAQ&b= zE=F|y!wBg~5-;yP^R8zZ!n`ENxbYs^Mu$r?l@d6be>57in3M@jL-Zq(bh&K+8o|@3 zKzS3BM`Xuc=SO5pgPkl%q;LPGS;1>|MRI#64c2r^jNa4_&OjE4{+`#z1K-7Vf zphzR71W8dZ$Rtv&$UNk=$-6#I5*>MulF=qFmyN+?!N6xc7pWfe0rJK%&Gj=c0jA;L z)9BKN_rx)3iO$c=&A073zVFm=t5g?bH#La)G1HY*+mVmYhaG(G_HZZYOa4xq{{M*n zAf@N$`SFVq{k$Z=B>m(ulPuAv%XHGeWsTl(04PG#GukjOhXlx*s5~i>cYo@;r;*2? z76V$0@Y2=!x?RH?c10GoNOGA5$<^75d^sL_Lww^8aL1k+OyZ|%^Qz_GReF1@ zGOqAQYyd_`WrdXn?1rwWI}d#2*MA(kcoMkS3H)RYZYawTi+s2u?>$eBoy*aaY|e4* z^2U*p{c-P|RRd?_>_sEvXHNp;5ltQkEyA_3eW+A`Bu^e1Zk1}{>3OGA6Yr0#;?gZq zXH@!cgomMvFNPg_;r4JZ7@!lWbOxp|XBUkZRc$6|S7d%pt4;26GPz5~d4TfznC1GJ zkN`ypx(Mel!b!(@NvPJaLIc<3(!2AHO`V?rs7vYtRUcMu;Ck7E(32n+Rh=)rKECw2 zcoevYl@)08rT{E5o;;2^ZoGLMeAer;aOQD9K9mZXf#tpT9Ir381fU8u3jjt9-f8+` z9CyvI#ly3q+v4kg!>-{iyCRv9s-%gA-H7Q7E*^Pwak{wY4{$FSO0G}3f{LD@X~vYt z)pj?;B)P}2uBRc$o;cOpfU6D z@=Acb$;|l@YL%1*QE_gP=&h=pnbUuTK`+yh!ctN=Dh_eS>x<6+xu`uuw7F)NDGrI+ zvnb9#j{6_3@ulseb5$2BN~pBu^jca~MMY$}>@uzT7QwI#7^VTkFcJ9yLXU@!m=zx8 zwB{gB8s|M{PS?*i0A`f{$K6l8Uu8F{(j-)O-m22vvQ*hr(Qw1Ucqp`hv9Yy!`&`IKR6Kpb0W%Pv5_~AQ(QmW04S;o!eWx=ZNCjl?&|E$WYsLouZ-Ejneq|T(38#I`P zfii0hnHDN`NeF+vQpIMuA^;$;S!kD1zz+gZ<9eZwJAMy${0{C%eN?Y(qIP8s)vFum zJ={h6&Ne#VK10y+5Qh=sAVL&`2&fi?5yF5gfxr7B^G-c7O@)wjQKg3QnjBQCqNu3f z{`lui7oS*e0E~Kp@{nDG)8}zdUMJ^g<%V@b<@kTERK@p7HN0+B4;PNJ-8X(8UwA!y z>Gs43X0qFM=t+`Wk>`w#x9Ix`VKF{I{XS85>g4pcje5z!hEv7`r;PPd8BM!{hGnB> z*>DUUwk&G|vly0{~8i$2_~8r(}&47X~C!U&NcD#Gvhh&vvlwhM2+ zhu&@*y}b^+-f+BX#1&+kE+CMDc7AoqaP}f?^5$^l`f>wcRtYez zjX)LWs#%g6KCf66+@$xXRFQoDv`!C=#?Ray{xt01Q?Db$PtM;;JFSJm**o4*%5kKi6e%wR%{w|)~d4#=tPte^yIQDgE zOl!0`OdV#~hFLDba%_^-^ z^(`G{#erQb!K#(vb%z-2b}`uLAQ*a5u5oO&tjtHu`-W3oKidG9mcx(ZHj?m`)Ya!o zt~ad;-n6Td>dXocENQr5l+=>OFp$zEw})-q_Id&Y7O_gpft(c9pH$}`ZBO?sU6|zh zR~k)RZnki#R>vz&Ma3&hWn6L`Y}q`QrPQKEqGTalKR^^xoeAIvA-cXN$9~}BuIA%z z?Bbpg;(iNw*aYsibhKXE!sct2vGLkvm>v-C4iW7RFnoA`gD)TB;G3uDJlw%xuZ#X( z7ye*~QoRDZR)$?IL95v?YBuz$4b8Ejmn>){3*L4Iy}R4!-`j=X9*7+vYF4s(tO#S6 zf%B&%aJB)ECpL?yA!!@B1!b{|rb)@dcdRPjE-}-ydRVoYo}Z_(hS$Xt-xas#7k(Fi zc6*Wv!D`ESdF|6kr7SU|zWl0P!mX{#xV3c&Z(rELg&4RHX}B0sg0b?n+Fw8|%~3xj zGJ1W&FhW1@@x&eCnLEJa$ip2c#+@>7uMBjX20Be02MrC)%bQrgx{21+3otbUa6>u5 zy*|8$9e5A+(YwEg-8+x5fA=YRdu`M%uAzE~YEui^S_#^E8Tz_|*fbCsx*UUVchUd+ z5qh_uz};?3tbqVc?SV<{qbayQA91z-FplG=9C8xQnpG*%`_vv=D&v#f{)eR|-gD}B z)2>O;T6%;S75+9Dsx$|>J-t4@4F~wf?MeQB-cKIK%KPXlF;4}xn&k?9as4L#;^yo4 z>D6mkA9`r@U9<)+^dO*x3ys`9tq4uGXGGVms?MG^r=vz&=5 zS)fIK^0?Kglpsj?!$21G{W>d5S8Mp`l~?f7%dg=5t;?voKB}&V^3azEcIs~Ae_|H4 z)paRb$m-4nLC5p(sN2S)P8;{U9zHEa_>&Xj&y^VFRt4r(71pIHD$N?IttzU`8cO97 zN|ue1ZNm&=7@ZJCH-P)Bi=D3?V*BgIXm9VMyjh2{S%*+A@h`8uy{3xAXq3vRI~9~-1BMqv_hR^+A=*#( zaqxH-y@L+ol7ZMU5Lr5godJfOz8pb&fUxgLdw;hFf4hfZyNj^zK4$|IA?R6hf->KJ zxdD*6LGvc0DCa#%#USTz>8fZg3tLhBp#*r%swn-L+%t~xyWu{5KiJ3b`ukGCFx?&H zXjSj{(M<9V*|z-9lE@P>P_6LHt|-iDL#EMB%=s$O3=y<;5dL~ z0j3GfFc9eq091jz;Sjy;9rSi~@ML!v|Mzeg|FXA>zx6w)y>kWCTbEIL=PHc438P{_ zcMP=36>K1JlhrZJJ8DkK`H&Y@awOJOQceLC9m{kHy;w9oHbyBw6uw=y-^Zl9k&%(B>(8d*9 zgE+wdH`vD?1_$`v@IV4y>At#I&rbo}^Es59)Skr8=q@9-8;*l_H!k9x)&|~QTf=py zifc|)JU<@wYf*6kqvF6USH$h8S(Xq#C4kiIO#J`BaDd_VF1)=x?CkF0gZ=?N9JcYX z*F|`39l@(DgxA&()=UJBhNxzsTCZTe*+Q$?K-npYZ(lQXabdcy57%|!_J`>0F-X=y zZ?B8qoo)2KB?xv9?DY`$JOl>=fP^n~QI6c7MdvNAUEcLGBLQXwz^E>LlBD3aMN-kt zaB$74;CrQt$ib%}7HhI^V-U!YEz$6?#Pfc1g zEUD?kfY+<0qjLW3GA`&PsnFbxl)nGbPzAm|762qQFXNMQS;nbeMQsB{dL6@*fYe63VytPLG1^eRAla&CfbI9o@Jq0DWh4hqFJj-TF_&^O8@{M07*naRI}{L zB2*e8c3nj75aqX}^`6e%?3Y0fd`MKczT2jxSz+iSK3tKVIhp7*rcpW)&r5B$yX+ftv zcW3r`)v_d~XRYMmjYbQ9vAKo6*t(4Gw>E^RBQD6%fSzf}K_FDiWi%=d>eVugq)3;H z(en`Z`#`UcxHmxD?a2}K2XKQ3ei))3MEK*Nhfjumd_3&oSxv`I)4+D!fPS?B`}!Ij z0-)u8qCzdm=nl1WL9 zQ?#y65pUF}O2ovr>y;XA)*5)D(ZqXe7x3=d23~8fA+pTmu;A*3s6a#0K)Iw+Br4R? zla()`X$%I4I~_#(ZJ^&rL@6*BivOKKJhjtggg?0heCoOQ#O>o@)4Hr1Qe{~{I*@iExWE%AEP9x&s^)f|AK%`SQ;K7q>$fw*w#dS|%QB*m$sM0~f1sF4a-qs>7^U zDtAQkM`CDJ1kGk1P>k3M5&03KzK_n|+(G+q)e*VLf|^XaL!J#ZiL}fzn1bJaxdBkC z)#efhC}JzHzRwRzb^M@I!%e%Yc5pORnM3CMv#`}SjQld^pJ#6%?!=RRiad9e0Meir zQ!@B-qgun?S-XgzuV28e=9&b+E>>!y-$&I7VxB9Gs6q^Q(bdTf!{lz#r$mHR_9wbs z#00?J9^!5vK^V!wHO;(3s?=#3{^Sqwr_hz-(S@=ck1v%GHyzlm66}Tz(=k=SPr7I= zK(A;p%7E^u=ko}?5bfW7gZAHiBWD`HVh1qVo2&!k;3XpTuu5&tKE!RX&Fb4x@gCVs30Fm#* z2MJz7AiL0Wmq!-&it#sI8~@7hNKkBWbq&761vVvy5Ycw%^wm!C4)gnMn5`15izV1w zC74Yc(U8Os1lDLa-=i^sN8%78v^(hA=kZRXg}=IR8Gm>4 zGTv;iBP`hn9b5E%qgI1ft3t0=4^y6*`rPUE(B{$U!x|1z^ITLs7q;s`b3IuT5HpC! zD%MPo05|bqgcxum;J5Ap{>D4NZ@o7BD{IiMZ33@sh|Lh~v=Qud4Ai~6L?f)=VkAG&>f;PvpK*Mr-tz+bPz->4#XeQ50= zw9Wvo9-~t;(XE;AH_IqpZ^C}14*Nm{{+@?m-$!^5Anf!JcB%Rd;NE?P;hm=#eEk@4 zY7me4Fh%EaN}|s`@oWR2h;E-p_~~_~Jp9yY;^*b2*Z|B8;@V)Q5OcxHr*0RYxg8;X z#sqlGvVq;Wait&hN~w(3%T>HlspEUqI&M`P_PIVwvBzu#?UFDwce6+B-XD;0=;AsD{!TzuiW__H@e z*VZv88|XU*bU%VM3}E(sbj=tK>KY!@b@VnJI5#&?y152xvj%^=509?Uy@B#V$tK*u z@XLo7eEtCaFYY5^0^A&OeTqnj6KLRU0brgSKRYSxmqh>5L;_F+BJo?AA-O)x{``be zz-wbqHnQWkM&5IqT1=yZj^lK+IbN&O@Pld-@79`lt5U@cu19t%a4ZWumMzDi>|kSk z4V#-StT&s8>Eq|oAHqH8!0&e8?ss5@p)7)D#safipYy>dI=K8z95<{L6yt#x;Jz2) zKBL1?fKKeAhY)%Y!wG?{Np-lMejtF7%26 zoi>Z(p#S+j3_kr9-9LSUs5d;8E>{u&Z~#MV2c+< zPXN%7H0ax0`^!RDNgDL55#TKM%I>}UR<({F)mr#bqlq`18m^QaT(KRLEei*Rg|=y8 zXj^DD>S#3UXw)l+2QK1)3Ty?;^Wo7Oi2IWZeRv1}GFug8s`MYl0RZdJf%tKSDSd&b$VAM()qsms z;fFh7PdtalIqsJ*0pmL#04QQBi~@kfNDy$T;~zx@Qsqy$(<6z$o$Ty5jU*a(51%E6 zuHoHk1HWi(;+M^J+$dMk&<)v$+tv;E^x9BW(REn1C5OqB2+{vNIddtb(!3REEBC14 z_etjcA<1WnpX1{H(@pNOdn2U#|BBrJ4WAGD_&*MI@Gm;MxLwu|-MWhC)@5L;3G?2r z9L9q^^kN@<1n4nycE5{or-N{}qk>^$)&Lac>eI~o7&>^l0WgWpzy!FTIW7D|jNppe z-Cffp}Z+p;7%J^RlTM( zP{8DhxFouqZ2JAc_wa{a2Okdl_`(RWbES@Fmuu)XN~rA&G8I0n`Cjf4X{@<0# z&-(!Z;1>cw794pTi(aR)VFL2ohU|ve^hFS1h{6FRVo5Ah+|a&j>P|GuO~Hu2!MlQHn*N;JbbSj>v`%1 z>IMPO!mrmZ;Mc89Ty@H7^Sy*q91=jP%O{*(X*fq_Eq`ObD!9dkJ8IwJl7BFTr2UIg@F4fg{Ne>*(D|LgAKt6+euS{c{0GPb}9 z+HP`qcrxhVksNJ!QGO(N5*um)qR%#c`Bb1H9Aw;Ny<(N|!%`hTbeggrAe8`q97+X< z&shUB0e~uw_1)dwNBf;*EG-t^vTUrG7JgJ~iVg6K<_0d6oMY36(}c40xe5c%gMgf$ z4qL`E=;BQ60LeEJ&dyp$isSP-C4elgOn@K~fMPjyqb90Q$TW(GZFM{eeEeb9!3V<* z?)WY)>JBdGWvpu@><2^ac|+`R!@xls_mjhojv~QXLeC@QN#-=Kuch|_RVtP5>=HQ* zhs~P^PAYeKXC^4ip9CS=6i2cMJ-zQcOA0f@pGpemc~Xj{1fJRiY)aLJ2PK{40FIX1ED_p##*vE%pgZT|q@_V?u&a-Za!T%eT% z7~=+=GY2@t1{c7*oOo#S+QUg>4!p2L0X~%c1RK|^R z1vi~4-l?e|*t@kB)-5X`OtsO5QgrB-ES85Pgr7usQ{A3~PC4Ol0}a{!H7Qq~iIb(h zXFWn$Mv@xY1X3@G@gR)xAc(OY5;P_Z$)nZq)a~J!+rv|?IqvV{o8B(I>F;4k8zA{9 zGG|5F|ng0PI*9xhVkDnt&rqBJDrr)amQkJW5^%tway=hft zDI^V2*48A4yXUKNi1)ecW9SP2(p;cfI8*js68=a|e1aiUlM#k0d=>xj_?msHiyV$4t~4sUKQQpd3meHWzm+i)_Uj zb|M4Yp^kRU?UxeI6o3bV4jxeNA9fDapR5X$_l;6ju1LEn+Pqu~lUp>A(<&Dxf4X6a9xFbFq3mm1HFN=stO?H0w_5n3ba^RdE-4bv zOOv$y=zOMXS4#YWET94UkuIEnH`LLM7_U&9^YQ0U?;o@U05pVo9%lp>k(9+|yl|_R z3joKxb`dTuWl@r95L-q`D#SH(OS~l915A$4#WSDVpSrRkM$z>E*>N2=mUpTRyhpvi z-o(vv6|Xu~DSX8p9!dNMT)TS$06HOerHs%HLQ&sphK8EKjq;8s1~DUq^DD(?#D;$U zM%nj3_R~-?f*A0`z}7H`b#x*F?T8zOEA@;Z;LlgRU3}f!$5-85r3$%JhdOXGHoz?3 ztuU#NZ+NxweW7WB@5thvJ!+C#q>rQYR5?~YL8qq!DUKw1PtRCZmftu)C>$G4gFZh5IVe=+p;PU zu=m@YXSm&dhR?d&*mir^^ZMBJ1`=}^{VBqz^1kDQ*UuIJ@?LJ138cz%G1&-1_6O6s zCfEYQQ1tn$EKm=RlU*Sx5zuQ?T5w=LW#l~9!hD-38U zVilKU62VPqR{q|JBlKAHIf_x$G$H=F)D=}KPc{dLMzW|e;`UUoPo++&v(zG$b0%F! z)6kD%w8I$PQ0e_X3|URaSOAw*`UFH`ptBF!EFT>_#zzNF@bST8w1c5+$kF3kiUM1~ z=6&xuTwiVgl*{Gs!~y2;(qlOfHGbp3JT=Y6;88+fO-i61mJ@tQ~g0>GBdE_Cs~XX3o0yDHKZ83TQ&b5&CZ0YDm- z!nsLqkFp#Tb5{%ElK@%5@TC|pXh`dz4@@nVQAan5u^+@Z;I>LJQ^i?@!W5!csdvhY zM9C=o4@Ut$Ja~)`_8#G*_9NMpgArhf0*|q}i!zHj(!g>9AnOKQ^yF|y_=aJkshd&_ z;sOC+kN{07f-A{fQHaNxy@44dg8xkFN@MY=(jZ!Xvp?{wVRS6S6RCNvw&7|73N`Z*gy-6gPUL@9jrY9-o z?9}&}`p~5W;3gL_^O6V=B2$^sT2ey3lcYZ!_(Ocw*~aIcZQO1@6~kAyks=_EaXU>j zcQXKDxdA{4FvH6|7irA%D|3GUaeWE^ENq&V6vtv^2seskK}bIg@GSE1*mq^CBvyt? zxm^)2;z>5b>(zCB;v~iI7WjB2+kA#r8!C2@xLGtyj%d7#Y;qv zNskW?mP6SzN+Ja)0aU;z7J}!lFbsszGsOQ>ZQ!{G08X+IUMV+mqte3l${JoN*Kw6~ z|DBqYK(`RW(PG$fD5{Vp99|K;N^4GtKaPYLQ}2+<2tCrtsmH4yrPFgu*H9zT#$w>| z7(|er^$$nw7u0WMTk*v<79uOq~56*@11aXnPN{v=+6_`fds@y=N8+zykKK58e zueXn{34-3P>_X4PH|G8*Z`AD7w2OStf^C)?0FL9FN;atCiCpgriC{X=Wa9~Pe^!SU z6EAU;(-7{2fozt+<&wiVloW)l44B3nbfHwmR;h|hr8-`vG^nlNdbx#~X{$URS>zI- zlmI}^I=Qu$kqEJPZd9I-a)HtVL|cW2s2-Bwr#8%>3Pedj5YX7=!QW+Z3=i>-9>oh% zPn0sOmG?+eAtE0;ULQN6>JR`s0stnzrMmu-==`I&SZ)9mHG=0MN)J;4Bu!Y^0rU!0 z#K2P=k^dN!60cAcD&kK7a8jY%BI9dW4tT8D4sKS~@m6gUZ`C%?w4B3KWoq)G|I;fZ zo*~u{Rmp6;CMuBx$Bxn)WYdZS0AdWw3Nn?bCMAN>vWSQ7&Lqt_$r+M3fvA97ETdeQ z_5iuO|XPv3ouYu_M{QrTk2!G!jq7!(BuFi4Zo+UAU)9?Or1K=dT`$@o}%0o{GtHaqD z05A=Kh9FgnK!X@|bd6FPqt`KTlgmjAp7kk!-3>HHStl&m?X| z=mWF^4;`NbuZW)BpI+#LQbO>VM1%9`iRuUjH11IU9B(ro)Fx8>7W)FW)7nI0$ zLLv!o+FtV!Y z*eq4?T6GPK6ko8@l8q#K62AfgK|!59z3<5IjHSp`O7JT2O{q8B)>KqEkz%0`H9^3H zH4^(lKx3A~?}52JRC6dD(tAYZD;UTs+Ag0|=H6ntZGcj#bSl}P>9l4!wAx)!MOiH< zy_rY$Csl`1!q1+Iu0_uFmp)%fAeFaSH%sCPVw`~MgB8bD#7{{eDv;>)hLTw6N-+Xh z&s2O%Bvsa^^+G165eUo&qMol@oRk7oZ+Pb42LaFOn!IBY&>F{Zrg`tVlXdY9mm2_i z5@6AsMaW%BgQSIP6#!C^rTpUwht2$+&ArcptLS%0pF+GTgWQy|i7D}0hFYjY;+Gtp z!@8oXq`Rs#tqxV@MCtir*piUR^_i9|#2{slWGPdr>TvQ?jJnK`0{K7spcjs4-H>#Sf}h1 z59y)=}|yUi9Pigso0uo zS9E+u+r3~SKk4x=7XXS*^eh}I^|hzFt)$PCHLl58TV*;tPxg6|VA?TFdfy`3Puh3U z@3p{oXBz;E;`ql+IG?AyLrGnoY{L_XKMRssB+{fDciGx6kdUYC`fLN>q_ltl=C*6~b3z(qL!v})8MzulbrKHmU%&W4>* zCm#jDIASS6{NJ%9rX0_tAP}iE!Luf5J0~JtWH&Dt02b{PI*vmh2ZBQ|9P zZxU*H$%uX2tG`?TDDrU^^-*W-cb5C7xp&fgCT(BjTP#7Fvju=fbNIXuGA-xLszvjP z15B#BFS32!ye;wdvju=66L}h(YF^KnrJrf;o%Ehb+ZXvhOV(z&0bp6yLcKua49{6O z^t}6+^~{W69f`Zvc$*+0W~P&4Y_h+s8EbO>@t@=IRCZbG89++Fqe~ zbIe(F?@5Vv*5|!ILS59O&o%%inUzV2WsW2iYybcR=}AOERFb~gb{_rD(#JISPIJ$s z^Rndamm2`4X-YQeNq+QsdToyTSo7liv-UHO`7>Kh(N)tA*HgcMsOmkM=YKo{YXmzr@wON)I zsHvcNo8nTJ6;5ZC7sN}PW1iuqL^AQPR|FM!$7k3Vc)q~%JU^(6MJ;!ysh9(n#!Dla z+IR9uFOf^IF7&&5BVsE{`8`nv`pdaY+mQx+C<|%Rd>j&oB!PSChOYr15ofcf zTnf7|=j{?%FM+4>!ofR);d)v8#-r7jUeu9at&A0Dw27-pZT=)6cqL6HhF_)f6hw*^4ri2^AyL-uM|J z4;OMyI7JxP&6BXwP&(6Z97IXR{P(K}mMjtPSZZXnAxJg8&%0MRs~a1fgf$QOYtJ3c z4KFU5vhN48gQ`?geKz7y$yaiH{(wKU!V3xZSsz}&1L-fq>U6^FR|t&)9zQ!qy14x| zT&`Rkv^*RJN+KHH(T-LQBVD!Dp7mB-pC-lzPi^Q@RmvCD8G4!G+R^ZqI)sjy&7L{* zB~V!5T49$oi(t$1J)Qn`WQYj5iQtRh=Y52tXqL zS`&V;iqthH-i#TxAU4Srq)XFC-t7XC`hlnyRuP4)$j4uIiKD&PqmQ?jz1kE zp3o}pr67-15QfnpFq2^SgRls8GAd_!IiYM-N`5JgPZ?&C61Z909|=;&Z`t#Z^EY6+ zMrB|n`xubr$!e1OQAfS8hLDM2+E!qH0CYKJbryfKn-CanPz`uXcFPn61o<0r` z7xsILQWpWu0@|$-_v+BjQlcD0it)r|`-LA%4K5{$!WLc

zt{?4q{URTn2q?Dk>lVGL$xEbDvMI8-D1hCBPGQ=xGGaO*cT_9*ffLOce-;xN*ZFhs zV4Z1yFsEdJo+hsqL;IDl%yR}}^Z28V1-AKI`kXIjhS=Q^BV&DCf%EcoM`QUA}3kC&BI7+oXf06HLO(ZTan0w-A$cakl#Qt1_gbexAgvw~FI(mOqD;E0VWiz5Fl#xJhs_U9i@0^VGYiWAsW+r((^eV4ZB-O=lbG zvLzEe)CvyWNh{gfV4g(2FV8SL1MpHFr2f}vhFtppW(b0q44(Q4d!;d_z$l}DlVoaO J)3NBB{{V!VE;#@I literal 0 HcmV?d00001 diff --git a/src/pt/doramogo/src/eu/kanade/tachiyomi/animeextension/pt/doramogo/Doramogo.kt b/src/pt/doramogo/src/eu/kanade/tachiyomi/animeextension/pt/doramogo/Doramogo.kt new file mode 100644 index 000000000..dcaa1b0c9 --- /dev/null +++ b/src/pt/doramogo/src/eu/kanade/tachiyomi/animeextension/pt/doramogo/Doramogo.kt @@ -0,0 +1,206 @@ +package eu.kanade.tachiyomi.animeextension.pt.doramogo + +import eu.kanade.tachiyomi.animeextension.pt.doramogo.extractors.DoramogoExtractor +import eu.kanade.tachiyomi.animesource.model.AnimeFilterList +import eu.kanade.tachiyomi.animesource.model.AnimesPage +import eu.kanade.tachiyomi.animesource.model.SAnime +import eu.kanade.tachiyomi.animesource.model.SEpisode +import eu.kanade.tachiyomi.animesource.model.Video +import eu.kanade.tachiyomi.animesource.online.ParsedAnimeHttpSource +import eu.kanade.tachiyomi.lib.dailymotionextractor.DailymotionExtractor +import eu.kanade.tachiyomi.lib.googledriveextractor.GoogleDriveExtractor +import eu.kanade.tachiyomi.lib.okruextractor.OkruExtractor +import eu.kanade.tachiyomi.lib.playlistutils.PlaylistUtils +import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.network.awaitSuccess +import eu.kanade.tachiyomi.util.asJsoup +import eu.kanade.tachiyomi.util.parallelCatchingFlatMapBlocking +import okhttp3.HttpUrl +import okhttp3.HttpUrl.Companion.toHttpUrl +import okhttp3.Request +import okhttp3.Response +import org.jsoup.nodes.Document +import org.jsoup.nodes.Element + +class Doramogo : ParsedAnimeHttpSource() { + + override val name = "Doramogo" + + override val baseUrl = "https://doramogo.com" + + override val lang = "pt-BR" + + override val supportsLatest = true + + override fun headersBuilder() = super.headersBuilder() + .add("Referer", baseUrl) + .add("Origin", baseUrl) + + // ============================== Popular =============================== + override fun popularAnimeRequest(page: Int) = GET("$baseUrl/doramas/?filter_order=popular", headers) + + override fun popularAnimeSelector() = "div.item-drm" + + override fun popularAnimeFromElement(element: Element) = SAnime.create().apply { + setUrlWithoutDomain(element.selectFirst("a")!!.attr("href")) + title = element.selectFirst("div.title h3")!!.text() + thumbnail_url = element.selectFirst("div.cover > img")!!.attr("src") + } + + override fun popularAnimeNextPageSelector() = null + + // =============================== Latest =============================== + override fun latestUpdatesRequest(page: Int) = GET("$baseUrl/doramas/?filter_orderby=date", headers) + + override fun latestUpdatesSelector() = popularAnimeSelector() + + override fun latestUpdatesFromElement(element: Element) = popularAnimeFromElement(element) + + override fun latestUpdatesNextPageSelector() = null + + // =============================== Search =============================== + override suspend fun getSearchAnime(page: Int, query: String, filters: AnimeFilterList): AnimesPage { + return if (query.startsWith(PREFIX_SEARCH)) { // URL intent handler + val id = query.removePrefix(PREFIX_SEARCH) + client.newCall(GET("$baseUrl/dorama/$id")) + .awaitSuccess() + .use(::searchAnimeByIdParse) + } else { + super.getSearchAnime(page, query, filters) + } + } + + private fun searchAnimeByIdParse(response: Response): AnimesPage { + val details = animeDetailsParse(response.asJsoup()) + return AnimesPage(listOf(details), false) + } + + override fun getFilterList() = DoramogoFilters.FILTER_LIST + + override fun searchAnimeRequest(page: Int, query: String, filters: AnimeFilterList): Request { + val params = DoramogoFilters.getSearchParameters(filters) + + val url = "$baseUrl/search".toHttpUrl().newBuilder() + .addPathSegment(query) + .addIfNotBlank("filter_audio", params.audio) + .addIfNotBlank("filter_genre", params.genre) + .build() + + return GET(url, headers = headers) + } + + override fun searchAnimeSelector() = popularAnimeSelector() + + override fun searchAnimeFromElement(element: Element) = popularAnimeFromElement(element) + + override fun searchAnimeNextPageSelector() = null + + // =========================== Anime Details ============================ + override fun animeDetailsParse(document: Document) = SAnime.create().apply { + setUrlWithoutDomain(document.location()) + title = document.selectFirst("div.dados h1")!!.text() + thumbnail_url = document.select("div.image--cover").attr("style") + .substringAfter("background-image: url('").substringBefore("')") + description = document.selectFirst("p.readMor")!!.textNodes().joinToString("") + } + + // ============================== Episodes ============================== + override fun episodeListParse(response: Response): List { + return super.episodeListParse(response).reversed() + } + + override fun episodeListSelector() = "li.episode--content" + + override fun episodeFromElement(element: Element) = SEpisode.create().apply { + setUrlWithoutDomain(element.selectFirst("a")!!.attr("href")) + element.selectFirst("div.title-episode a")!!.textNodes().joinToString("").let { + name = it.substringAfter(". ") + episode_number = it.substringBefore(". ").toFloatOrNull() ?: 1F + } + } + + // ============================ Video Links ============================= + override fun videoListParse(response: Response): List