From 85ac47d6b63c1c715c67cc9efea1d3843ea898f0 Mon Sep 17 00:00:00 2001 From: LmeSzinc <37934724+LmeSzinc@users.noreply.github.com> Date: Mon, 1 Jul 2024 02:17:43 +0800 Subject: [PATCH] Add: Combat preparation in ornament --- .../share/combat/support/FIRST_CHARACTER.png | Bin 0 -> 5587 bytes .../combat/CHARACTER_EMPTY_OE.SEARCH.png | Bin 0 -> 30016 bytes .../ornament/combat/CHARACTER_EMPTY_OE.png | Bin 0 -> 6256 bytes .../combat/OCR_DOUBLE_EVENT_REMAIN_AT_OE.png | Bin 0 -> 37710 bytes assets/share/ornament/combat/SUPPORT_ADD.png | Bin 0 -> 6892 bytes .../share/ornament/combat/SUPPORT_DISMISS.png | Bin 0 -> 6623 bytes tasks/combat/assets/assets_combat_support.py | 10 ++ tasks/combat/support.py | 24 ++- tasks/dungeon/dungeon.py | 8 + tasks/dungeon/event.py | 12 +- .../ornament/assets/assets_ornament_combat.py | 45 ++++++ tasks/ornament/combat.py | 142 ++++++++++++++++++ 12 files changed, 233 insertions(+), 8 deletions(-) create mode 100644 assets/share/combat/support/FIRST_CHARACTER.png create mode 100644 assets/share/ornament/combat/CHARACTER_EMPTY_OE.SEARCH.png create mode 100644 assets/share/ornament/combat/CHARACTER_EMPTY_OE.png create mode 100644 assets/share/ornament/combat/OCR_DOUBLE_EVENT_REMAIN_AT_OE.png create mode 100644 assets/share/ornament/combat/SUPPORT_ADD.png create mode 100644 assets/share/ornament/combat/SUPPORT_DISMISS.png create mode 100644 tasks/ornament/assets/assets_ornament_combat.py create mode 100644 tasks/ornament/combat.py diff --git a/assets/share/combat/support/FIRST_CHARACTER.png b/assets/share/combat/support/FIRST_CHARACTER.png new file mode 100644 index 0000000000000000000000000000000000000000..5fdf9e2cac1d22b9b062b2ea52d96b9a02f70bda GIT binary patch literal 5587 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 V6i;C(8vY{zeO=@8725U@{{e^GbIt$& literal 0 HcmV?d00001 diff --git a/assets/share/ornament/combat/CHARACTER_EMPTY_OE.SEARCH.png b/assets/share/ornament/combat/CHARACTER_EMPTY_OE.SEARCH.png new file mode 100644 index 0000000000000000000000000000000000000000..d629ad01991765b864558f712acc7accc7764b55 GIT binary patch literal 30016 zcmeFY^VsaB3(1-kQf~X-O?jA6_tZX$AmFZDalDWMomN{224O= zbdAw9YOuI3&gZ`Wfcy9F^c;LByyJRbuh;8Y?}*2G>L-tJAA>+3Cp9%58bTn4z#sSj zIl3Qwxyz@u4}9V9(lGadK#p_n{kIR2nsyNaIi~CU;KAd^PM*G=K2DxqS2Z6zxa#HY z>EP^U4}k;@V2lFH61Fa=j&9kXHo4!wQi5`O1-X8s@M!Zt=3oAahdh1r&)K_;Z~r}J za_;<@G!59V*FDEHF#k?`x>@OX@BP0PkuWRyCBC8DiqN3t#l_ve-5P2dmC*qwoql=d ztYF;q7Z-?v;ag?Je!duejbAObFZZ9<7(00NpK0Px$3u+}$jSkDAj0<>l(7%%3E2XG0-+ceG&t9mSG3b`5w8M}U#dVF83A*5NtxcMBU`6A?-QJLK_NFoH{1`oM^9g=?% zvaqhHdI-{=moUTy>Hl&$?K!DW*GCuQxE@Q!)Pk;;QiYkThtq@rng9Dv~cHybcvPN`S+`45tWax>o&phhH($C zwIofPokdEm@+C7l5&}*_3g7Af(EEO*g6Q@Gv9xc0u<}Sq>i1ndNuFGb@<7} z^q&`N-f&A`z~?T z8aLL&z0WB`S>4@<9c;cT^`7y*M*Vi;t5SmlfA{;{#ee1Fe*gQEPp7Z+Y3rBCUtBx6 z%Xw8^e*co&sXgQ83kiK6{rqL;?NbgP$WN_4gg<%`Va6@kbm2M0OvWTe=J^#fIsfxK zKhmErALZX4`I2+tsLh*ye!9Jmja4_(F?;Y;VBtpj*{Y+a9AR&6{}j5O@KwKDAm}Xp zSKu?nl2|jfLcyhLyw}nNY=lm6+9qi5pK6Jp(mQrdAXZBAxTdSdpoVysQI=}gKh9}7 zg7dNNEhAG$OJ5dVMaAJ_Psi%V@3u5d;m#>G{yU+=@rBmXqYHZxzRI81Ez0 zA5@p?%#m5@Y}k6hiIeY6hBawCyLrj=Qt+kRi?~aYDLOfax=|_3#<%*Ucv2icp8n_w zGZWbq2{|9vdNxTh$s`GpM9nvb`M{t(@ciS(1+dcvHYTAtYOu1$lX)C}FBJ6TU4d2S z$rg7Q1{lUXCK=df*4Z*&?>s+Q`tGgTr*|5e#?NuTFGXFu@LS4$)$D$+x5b3(reC!0JN3I{Y(;^brqyw+<77v$_yKXKcuB8I zkwX!pNNyl#pl;yVqW9v3#rc6{KQGK(j2LD^(Oq%NkE2Sq%Ao3P)u10~PPO~_Jbad8 zqjlrd>~N?0hWmQv2G`tj?{X)f+%4&&vay%kZp%MkX^VY6eML zPMMvWnL?FbzT6IBzq$%aW^ zp=Phuyx6>Zuc_N(9#ixQv?7}L{c91r=$Aj*ee~SKxftOt;SD2?f!hm=g<}h;3x^jK zHlJ<^Y`SlfuC!e~d!<*&S1H8X*RRdr&8ucUYh1b^?^j;Ktf?c9<7XcXO@=E+JC=AB z<&WYra?gFA>yZ&eOrmfvRdrQ#Z)BpY(L+UK_rJq!DvhB9ySfr+o)+r{mF0WuD_dq0 zFWM$Cx#--Vv{-6fa?LigDD5I zkH{Q~I#hjF@`UR7`zJU~n)7)lc>ds8Y#Ci*-%y%7YqgP|{ zKH!xGUA}w!I~KaQ8M-}RKv%x3%&&YE7{2{z6?N8^lb>TTV(M4_FO`T%pZ!#~)H`WY zsm95^&xHJxaaMXiiA*hfu>u_wu^6kmzeoZnlrsXhyI+V+INe5@U)j}Jg##pb^c&%UGdNwG4 z(=JjeR#8WIF~>EqmY(zWTf{|EkN49^6v#6oQL4> zJvY>DM8#nE_;^lo*RI)hB#h^l=5mr+5hiT-yiWmjlsU1hO)_KjuN+Qc-uNnQU!RwzNLM7MCTc`Rp6Em+yFPcT%IIs_M_4P~n3pcgDI2rN_7+n`P6vLyJy#T zc7o(D>*aQ5W@ZwJM6z422hO!(pr@zj$*q}W|+cc zGDx)63JZ5|CL5b+jbbb|xOT)#zRgmOJ8Cu13fo5$-w3Mhp4Aad06&wTKerK7MlQ_H zH!0A~?at4?5c#OcWZqX1=P}G3rADPvVK7P&xIWg`(dDgOW>QiTf-ve*p@`{llXb1I zh*HZmDS*NJ;BWzBqW5_N@&UIbXpIp?Q|-ys~ef$SW^eb13%H@ zVr^q%V{1$8!enH~q1(xBCIvk%6&B#frNK!j8H}19m%WSZ?grv5Cy z`3&x7eq(22!>^zxzsH6C2nNFs6q&fXy3W&S)X2u`%cZ5I-l3tPets1tC7p}@;N}Mg zENX2$afA38g?h%s+?C01o0~27~2x=k>S*2M0$sPEd#_Q&UrXyuycyiVAR_ z;JNx&*M9#F)*`5O#7&k6Ydt<4(loj1t9T`*30#x9x_bAluT;vEulEyCQPHsav4w?& znVFkgH!iKIJ1pN>`!b{`s-|B}W_bWBDqF5Wb+(i9ekGWral%27|FE@(&3~ z3$&7gVf(5>cm1(_me$s_b#OURaHUDBeh(THeh3A^{xh{{bMGzNTJvx z46eV}56kS-Xf`)DZ>dL>X>5An2Fu7|@ItVNYMC}z6m)=0Hn+7U?aHFte@%Pfs=*_q zc3{AQ{Mv1?lL8MbT7SBaHtr>lZXYPxJYtINag*lZ35xhyESvo$ATY_wMsX5#fEiTpuu3i^b z^hD7tEG?Cklw5IxtYiECdAVKI)Z3c97kU#;Ik!w#T zjQsD{$OxH?_n~%7HpP%gB(UiNm6!ahGdrCWF(csbx3{;~*QM2^FnUG_I@7aTyC@V2 z6#HiZ+t`_O{)AL7KcjM;N5y}G3((xpi%hhS)%wkwl#xSr)}4Q9w))~cM@Rbm`^jX` zhcj1aW)pHHZR;*azr#Q5CeFI45;gwtkUKP-r^1?yC`rEZUgr~7~mvI(Fk&%&x2H3uN;cUTU$u3?J&grWBS^|1~E)`S1 zgKAY%bi7{+cO^4M-DC$B{XHn4Clr~0lDl#$9Q2aG!9lP`^DyjQxH!G4j_oVRcTwi0j%2^fxQsTkIrU@FUy0=89hpGmifr^% z)RnteMsD+KUhIgRO7Mci@zvFXZnAvJfw5ho&*0d;U`mpy;f4x99=SZc1vYn%X}8q~ zvBe&?yQnT+|vf-glDj8u&1Y|j}L8qeSK`~Q;!R%QLx?f^E*hS z!NpBiZ0+V!_42fY5YOIdw6gM5#H?lTKnRxH68j*8Fb|w1wvSU;YiR&HuYrLe`WnSe zRuq~^*qJNvtfNm)Pdnsx!~Itl=GiOrF?>)}1qID38#_BY-a#oxQI+V#crAyCQ97Mo zUtdpiBw-8Y>wiB94p#CbK8#CTJ9YXr4u>=1(uHWd&G;(j73LJmWsr=D7JU_abnWHu z$yLlVTtTY}BKP-eEZ)w$;r=zxGnYq!*#LS>#`Z5Eo8ZL?51bOZeFRR$;0Vl3u+!gV zJ{|DTzT3|E3OrF`CorOli@`#HbAeU7m7-&!C<+>WSp8KlJ5b?g8YmP>i0WS1MyY|O zPPuCI&>hUCX=l0~^Scc;_ln|j&-{i~7twioe{o@9mJ!Yd>*?mEliOYY9DW0zgwdm}t$9nO04TtF z<%$Y?ZHmDNL8y$5jEoEp65nD-)PxrP#vZVTq+2r5(!gYS4d=g&Zr2*U=i#LK#`#*u z)2YutpiF(lm;8Lm(8XbTNP3J@aY&uKbt^GxygX6T_J;>97&PmUquoKnPSUCE)9R{g zarz+>oJ<5VNG6o3w9M$0L(GE;eijIh+|`v9(1JFB!Fuvr?7BQEjF_rQ(BRdH#)k0I zO_MJ?D{%M{d`U?hJJqneV=KC8auDZ9twVV%g4Rtvm)Y4odLOd?7KAUp{z>fjwyd`f zWhuX>QIfWT^m2h%fNT@s~)BvArTnal7y|L;Jkm6KgI=F|FmrNjkv@iYi?qJ zSc1wc2W|}q@D!j(c{)+y+*P-V{g1_cIgFX9NpZgRV|EU<~5+-eSc>1$6l z0l*4C8ZaV$4X-H(4=-qb#McOH$#O>xRqHcf#hAi2$dbq#IC+xrngm=r_Cc%AHA!@2 z!YDwlpr!{}S~M>N0*DD9Ohv^;ucc?v>0Zeu)F^oP?0PISEM&|_le5z&RpBQXxQwzw z7YROAe!d<_9~6m~ukYXaEm=9a;98qx7tjFp1QQBR5Q4WnRGsZ*?iGK7oVW@(urh9L zX{lYP)i&7QZwBU*vU1z$Edc#)U917;0}B#yw# zjA_w~pv}W!Fz`L++2&9c2xni3S^7QFbk`fYgQ9HkXs}V*??ya+S%uVo#;42M~PKK8;mLo<6*r3MGSAPvZ9jG zJa%)-f2%ZEW?!H*w|%Iy$(!jOEw&4{y>_TnOOdY>YP#p_RF_{`)exX;pi#eTc-mnf z8p;QVRpiUorhTvoC!rh#2eQ!@2zF z_TzwD7;>Gm+Oxg20$P&xpd+U^eYrK<#+nA8e#BxNSkcWoayvc3Fpn zFq8eOhvzrIyp^ikURV$lbx^`|2tnyBdbzai)k)9Lc}u|7vfrS^1{VFbIf4}2lZQTX zY8r|#Nji<0e26N0uCFdg0k5OvnpZDj zdW9z55@r9g*0x)EH+!Fi{+aa!6=pLB@Zd;o zu=!1Nm8&K`!auX~ruJ)2;qFAVoVe2AY(p?QJcg?PE7jN6H_FkwJ}@$(8uDU$1B+ya z&8@flX1h4^4BBm%&U!eH>K@fm?ttW<-5?$=+hbt`dli|lr>6&~$7b&)z=(o+l=u!R zt-ZZ{)>rZJDdJtMF`kp<;~(*qBaP#?{X-MPofk`+i-VVLV;D6A0=u;U+eW3?vZHLF zDk|bsnBG%`!zk~7;s??EDADjZlrB@YemgA9s(?G{x0`Bps*MVAGbF$>z}2;2bQyWe zB&bAQNlCkd^nU5XUlH;4h&UqJ0F|J1eBF`7@=QEDYna%<`KoKiruRIUZUEK!Ru8ug zb!4XW*#x_LdMN;4nS0PX*;{<8Y!{S?8b!T|Y%KQ=!f%vAz)a`X;9 zEo9Nvmgl58ohcP7tQ9un?RN9US6`|iK4~UCB>tEWAZqEhBuBpWYOr)+)Fb3*nNEqf z6)kq&yPJz`Fd)#F)6It$HY{@VDUYO(@~#mHB<)LOolb>CMJix2-md7I2bf}BX;5hy z8p7^FZ1k-i6R1TgdXb&KpJQreOA{lsNj~0gEhPJ8G62gi2C&F{n*yL-f%fB&iB~lv z_|5kM`9bhNMn*>NU5wt?n>Lezq*O0%blGPEldm~l>2SSldpQ(Xc+pNpgCel_q$Yx+ zR7%K(tL>GT-?IluEt|VcsklJ=5~kHrVIH73<1At+Re9rPZ9V=<M&-K3nAK1Q3&$2q^Y(YZ0HDjBocghG>TEW9Kci)AREY8*-!i0?^zP zB}?vot==;>*Z?>@#gGjKlXEkY)-DJ5byExD%I189;Q3+F(;XW9qI0`vr=-hHU-}Q=z5_Z4z`-Ya zXMMZmcUtrjYZDU_gQN7#PGV-cui!C<8@-gOa-3$>ku%U-u$&g{Bl zrR4?0BJ#D_wKb`eEiFQzQ<^KAfB(_Wm&Bju;^UkwaUfaiB_7E}sJRH(4_EoQ2D|Q( z>&y0lt45`+s&KgR^m=ljiJDhZ_Gjl7J+!azDrFu#>kp@jJ+ww8V{D3jO@f#<*ghpF zRMJv(ae3KM!_d4V^-(7rTPiQBQX9cks3=VA2q-El0z;B2apG{;9w(UW+(wTwraLrJ`Qc674j=)XAG6)*>O;vL>-e{H);Cq?4E`@1Gc=!&kN|EPP!k{pg53)y zoFgfn*?`L=T5y4reJ)j6^Oh!_c2`Zt$HNy4Jzn5_%g8`gE9_eaV;hLH zfEle{NyA{k8UYF;-|&MeesB+qUNZ->88|YKiq;yKKs8W@?sOsuY|L^9bv!Jba%6|{ z)hPbK&j&DAieAm-Gl2Y)1#yXLsK~FHx!GrMC!SVSRi%Cq+Qn^xy?CekW>0hdlg9v~ zn9g~(NSrC?n-|B%x4+5H`csJ0(ewhqtH;z2_BC>NKo! z!ws6>MXOC*rUC_eb9dIi8vl@wIip@ZycAGJ!!+shIzsx_v=%5zmJ_}miW@zKRCe(v z^j}lK`>3bQ#9bkQIzau0YlqvT+Ci&P{@xrkU3ga_Bf}f71yd-i@a8ny$J%9&S>jpv zbiBIoOO)!IVKR_P@M16+=z0Wz+VOn?i;{h5KILSVh&GuP(cai{2Q~Ei@?C{77w3bf zmkyz1`t7vv5;f=QpXIKC2~9e&*%GEXUIHaGK##~1vbDB8 zc{pru^n*fs^z+~}DQRmo zn7y*%6&zeWxG4BxuRyL4k0;mq6lANs^0|PY23~=?yZANG-k_m7zVep=AE1Y@e)D)1 z78k3AuB`*9TX;%vAn9Ir-1)y@^`FwTCw%e4_-6Q*I3G=kcFiQ~)Y4CKG9z98AiP7? zX2yX=zX9+HD*Jm=QxlL;94^JdOyqOFRs*0@6yNH$SYygj71{Xg*2P5i!zq_+h8MU1 zaQ6eW9xOnILm7eqzypwO{Qdlr#z*kS@w$L_fh#0=mu*voux_`!;+%%h&Miy-8O+%LR*;K(~b-86DlijJ}+UMKe$q@edyxL(U!$Q-09P& z6XXD#u|+aBX5Dt?39R|NJ^>pOxw2@jWv5hY?fV*0(miE!e8UNXnPshpr1E#kt?v16 zDNoKWI+T%Dp7q<#1ChiInl)7bC~T+GUk@D65$_b`XLU=VafOH4Z}UI!SHu9(tkWq` zXJfz>3+g)ns5qUI>h_tLzwkhVFTG0VqZ6Dn<5FD)!V;nlv)e?)By+4sVx8$bSw@Pw z-!(rcwAlH$-f=`dl*8x&wHy7Y%$^@M*KdE=?9z6k%x`B#M|3+_Vz6`YMFC4gK#XB; z*s?cP?a~J0!p~*DP~;GowB%I-=$JC+ly08*`LRM4LvPkka{prJDEq3whCqUnN z&bQnDjj$eLXMWZ%~keLfeU*MjMR)Tj4~L!1%C9&=qi?Jt-3 zsh7v?q{!sq*^QtSVv@}&Ae~^2?OGlk3y3>*3qnW$YbIs}6f)olx!?w4_>}eFA}3q& zk_4OtN^@3V$yVU16kYa{0F?rqZEI@_;J?1!-d6chDIWYe2igw3JL}h|M=6HH3k?YY z{TM8qv{2vt#*x#!K+OhwdmUmbN0cgSG|)=SgXQ#pyiWlbfG`RLQp~w!|7xI~nRXXU zW=>B1mcoeIcL77_LSjyn{A}%1d6${e#S?(s8s2M{F;6e9vHGWD)ltT?JY+!M-Oo-GaWR-54<$}>R_%4<2 zQB{#Jqb0Sl5d`Qec#J>|yjfreXn)EJ>$#~G1|4&*oK_0FCFM&{_`02eIA{P#ItUA~ z3&8fWw}8>qe)_bGz%5EHn;5+!SxZ#xgcO^Yn)=)VP@0R23;zOK5I8c>uq98~PQ65- z(~L4ZTB&Cnfxc5!NZX|^KlAbN0k{w#REiO5AUN+n)hO|oJ`yEaN9zdC+SFi(D%=VFB6uV@Pdob_ zZrB6K-a@iTj5bopYNRb=h^o33N!X5L4-hu70!Nb|X+!7|eTA3CXNa3+EvJDWN2WPS z+SCDHy1Tne^!a}FzLet4GXbg@juOTNJtDKBa7kOA7cUHY?dn#4^8nwnGeO;v>L@%f zKuz>tni{XsHgwhd20GmoXkV;8_6CxfEg3p{+;;mXI5j?lNzND^7!WDTD?qz@=c6l1 zv!7Nb9@E|h##iY2b|;xk2Hrv{F&GY~1CoihMyc4-h6>xdMZ}r(*KPiKyv2R< z$Z<)=TS+9ij_sdZ2s#Q$cSKA(`UeCMuTe_0)tV?A8Y2R1x|se$(s{)8%u}^gY+)h) z6KL>eo9(^-uwl9#5dd4z=qzeC7d??m=f7n|o(bP_gvjw3-W{=uGBP1rGI z&y9@On4ALLkwJ#;IGH`D2ePt7yP{{QP8WeS(6j za5&T6reyyKV+N=X;6r&oIrah2LZJS%Nsmca0ulo>Iv{}iM~e)0*;x*}DUoiK(0{IH zrDM4UE{(9e%&JDtoMwJbd{9Q{V6Q+Kr-dDo3sT2WLdR3SSZ(%M+elQKiFJ@VVr+P` z+deK^jNpW^v4^UJuTt|K+6YCIklk{Ad>oDebtAVY42~o;>6cFG`IV)(xBTeQH3}Fh zv7)8@d{$D4WV39U1;{;}X;l8=3D!aevy9DvvPme9O}mb{oE~Ml;*c+j7`>lQc`pI` zWKXsSzHi45;TKQ@Bk=k28{)l-{?&!p4jhVm**jo8L>0_+aaRw}$A~|Q9Ln$jssXjb zZx}e-&!0aB#jAXYu-j2>k1kf0|LT!nNqGU(dCdyhY~WgX`zVi+14dfAQ@U1=p`j|k8EOI!G(hvfPzT;PU0BBMKLUP2^AM2TdW$U8 zC1cbYIs+DkjQ!Wev&Xu~mM&;=#->rm&R@{+?4&eRWV46)c0TioBz%qUZ7sgT5hyU2 z6|Rt{q`AA&I1W5ofSAE|g8qO1Nzlvrji4L>A%-0(3;0IU)N&%|+p!^l#25q52RsX2 z<-o_&5b8D!%i*0@nR6Fqq*30{18kUWPUM8X-BpvH?8e5%EyVH`@L|xD_~iCjLzejB zL>yFCzA)bfX#G12v%uT{5Uk4=gIrozNIZ`4_cw_LB04azvz;=qd?yZ5{IgDOHv%ov zwyw})`fRRh%7VqTA58nfhlD5E`!^|XM=TGf9 zTG_LT$HU5ezvt%zNlB(En<67#(NaZkFEzs@zU3TjEuTw!^krkUbG3f_9$|D8Xlt2o zfCQz}mhWLgoqlA4T^*;(gfe?j36F7AjPy$d-!){qc! z57+>i<1;H`-`*6jkqk4niLQR#`e>`Tm9#%=n}eR%q9Tgx*;lf%vU`13Vc(|@SG4HG zRVjiXu+wGwK8pT(Dz@?23twN~pdjE+gO(3Cd59{2tQtJ-=5yvIZ<77VI*YB*h2)WG z5YGt+z?t;$ss#EXUZfwbQXZpNP{bQy@ds?{LQ+hqT}Lc) z?uzr7@rv5rTnF0!KeNPH%4B#9Cr;{(aG%gC5!V>bK||g4dAn04y{pqpS?-l(UCy$p zqzou&Jo}omqs6;e@gszg=YHMaFjJdFo}r?*EBc3q7}>Tv*@gmonsE48m`9LD)7sDB z_*i{CeH(Dv`!Dpoq*Ai{LqR|SJe13)w4D{Xp5phX$!>$R4$#KJec&eofl=@f2axpg zhAV8bB~xftts~D~a^_*L)Z?lX;-aUyrNWgL*9iM1t5DY`Dyda@F30uBt<3@Ca2y@amhjdP`Lniu(!|dn@>th z;5Rb-vxfn&Arw(_sVV@%@p$@3@G`TJu+61i?K~^mf#p17)FU=~oqRR(U3b3XCH>NY zJ4a+OdRv>Dt^9Kz#I*Q{Gm}yp3bq+ym_t992zE=iP=uX86-p(F__{|Lo8y4Kn2_1d zJ;q*u?vj8=2%<~C{(M%_KQh9aM>4Sl5PGl$ISJ5AyieZp>ok<^`10pOsun`~7FtIT zu*z(HdEOZ9QSS-!3xzqJvM~^E4bY%L4-?=S1+oD6!=+v0WAXTA;qsgd7Rf%jSyso2 z@JT?IK-H}!VeN8<05lkC&Df5}Xf~dr#50=S2@MNXxm@_cju1Gib;V? ziq7WN7K-|w%C!etOQ%aTBBFcRy;nn?wEoDic@EgKe>Hp+2)H)bttoPX)O3}F#ZgQy zB)e~{npLsD1Rxc;u8v&aiv?BX=K~dxK$l}rgIEP^w$*S%Dq579UJ5Vv=k>`Fx*nby zDa#uZ;O`G^Js{ilKLoj&s+T)xIS2w|^4vLJDjDiMy5?B16B1FGdA-RmOj=GLr(zg! zeDpXz;D86HWp>)`Xd`E1Se?*Rx8z$1jRg^Ad8Hy6a6EO2k#n=(1j7`?O-phmCsGs>LLeGFU-RF;^eEFY<9m@xjlfHFxTBetiR^ zSCp_Oik#DD=IJAMx`952Ak}G*On&5(VJ4{dMDrc_26ECRctm7y&HTF*p~5Wh8_Y{#uc`8Zq^q!lBeEn4D-b zEt;J3H9sF@)+CwQ?5>PmALP<-z-W6B<1-kuAlj7JUZ7Pg9q?2^Gg$?J+;xl#s?E;_ znWzS?aB@jrNOD)6O_wu>vdN+Wcf+&nfy9BBYc%qo*i%s>DRe`wL9+IXV? z{bGo?LAQ5KmrNR*%eeubmS@N$4|{~Lwai@CXZylngq7ojl_vH!A3KIU$*!ytUUs|^ z=;4I7r@VS3VIbwDcV}yUYTZsXV=JguFW0C_O%fy}UXy& zhRziRL;2CzUx)6{)aS%wZHd>lJv6c2*goyp;{5!PueiZQA^nW0Z=9yBIa>C~et8FS zqft7QL$j$2Hl7r^#Dy5=%FhqlUKz(STCrldeL~lBe)9;Np*+@JRpuf{dlQs{%(dbG zo03WaLNZ0h=R#hOV~3C0F)GI+|2u$l0VP5alfwYP5U{)B?aZBOl}+((yT)hTQZ6Jv zZAQ*}GK)YU2FMHqrYCz4nCoSCtCYVrzsPCC87KKHx8A2nStxLMf${bzAg>@-NWn7* zz#dpVT|P;mz7t?Cd%RZmh6=OozwDv%s!R$S@<OhiV&Pu?4(O5q%9QSxy_C5ygg!M6#NxWTbP*44i-KWARmF~I z83pVYe%f44rKw2+c$mujHTXNK_Z&}f9_StJC{`wW2D-z=dW-y=pD#6Bb{%!?baX2egio-HBtj{WZ&4yRkoH3z`fdIcZ7Mo`>-<31R{G|~ ziMZCAg&f9|f^AjNYB?d>sd^)uLYuiTi+;Fu5v^9!*vWFEesI_PK=wSiOChr^9hj z7eEz#Sby*{#auUALDnGaO?jF_%hw*=z84l=zy?|Z88RQ}mXBx6>TiID0sLM`fYKA7 z+hNd;XKnq;<|^If6RYfntEQt274*lesxBc_YA$XD)glPc6rEB@55PIL+;Y2HswR}R znwPW$T=$&j)2QIYf<%k?wQJeSRbWi*GRslaL?SWyp((ZxxgGw$-^3yY5lNTKrGZ!i zB`25b(@?c{U!CYbIVH+mP?A)s&er<6uPhn^B0+~}*MxDxj>gHm$>B2gLQ^3Ssb8X| zf}G8$JG6zGeqh)H$}|ZP{lT4=6i}I0R%wqKxudQ*xOCEHGz9U1@;t_uKyn? zYAMf~k&x3$?0whu__2RazQ<;2D~FyW^rDEz(F_0iS0X&)ZCI*#>c@;RqeRic;%QrL zZAai6TG$Gsn9VVa=8PR9q)22i7@V`Sv!_{Or&)XL@;4VsL6b;V;1G{fS}k;2tgaC- ztb!Myh0PVdWqo?n1)fCAI#gdU0YuDp3}}ieYe^rs?z#Hb+6+stPrpu_eT?TO8ifFC z&9{93Ip&DmbS#T9%8>xMU?z^eh}E>D>Gp?3ozW zOu%p}ayoz^qtA-i}DMuTjsCHsT)SSbS$@LaTqk^IKhrMZm4|ySvMtbd#k5^f6cf*zf>B@2wN*(@fTMPM(pqmYxMH{(8S|IJn1*i%#hInC9= zI-4t{4y<{v6nOkLPpUWQX+Qj}MO?Vj-gQ*0tnD{m;RAokx~XHRXMS~dj`e=nrgX7~ z2|M}4AF|BVR>k1{nzfgXD&CLL8oP~W-~g9#Hb$|tM(+)B!zm4&8V_O%YnFsA67YUQBC_O zFMyc_aNH|}+!Xm#VOxc)u4`7u^0UP=CMP6-Y=QXKu6nlmEp z1)3%;ce1r*BbGoG;D431Kw`NG3sSA>n2VllB72R%sKACU&Z&_d1L@~mgC?y=A@;(q zLTBt9F{P1)U%aJ4Y;HZREG%kI%YE2hdbXmKMT zyNSIj#QK$S6Ic5158zqs39t?<)Z}WVPOU^3R*TnW2`5DHdBSr9~t_l7|Ed9lMm2APB%q1su%w*Th{XR7Eqs%Q|gGR z?hKZ%ur2i*FNhYAm_Fj6w61N&$NSg&z}Q9ol$lnYis z*7~J;=~id94%DW@A%$ifl;qP7_8@fgIn+NWC^aN~l(EXkUd`3d5X=`xJ=I>32+J$A z!&R9(Tg{O`zN@NsYK3y-pr!}7V4$ByYH0feDyI41z2Bm!$`o$F5!7pUVQy+_t^~%E znE9r(x`zsC=s!)Acq0bvqdoN&&z*Wo0 zctCzdZ$dJfGL+$^HJ>|U*xNCDmoHDnJ17+oMH=pt$mpNTslC3O6hIm)wp&oHU)?(W z-w@trM+B*y{{~`0WHc_3uOMFpeVF3Nq-Bxfjb zvsq!=&DFTn1O7Tz)LeE_xOzI#zAHs5>6oLrsHNc!FttEVG~L1Kodb~13yX>cf|9Pp zc;~j#-Wq-v*FR!t*AbWXjSgi2ZUrK_K+K7zO0p>gtNVV@3O>zJeAOUQl$&7T+VMrK zP4C3gMi6-RN?`R)O;Xys@F~_%A-IKn~NcMjZYK`~wg=0K3LAnRFKh zE2!-$n1v~1o)&y>Yb#VvwVCQpdW46Y7*-YfXf%wkfMhkh8@QrFpV&+!dlb1uMHE-f z(j<+VXtN@N=TMP1Zl$0z z|CyxZ&MXu^HU5eAwJqRlu+UkrGj{PAyS=!&B!t1D9pk~Yc1QX=?5nod*@AY)jpX~n1>i^I4_H^5^f=F~ok!KrDv?y=P8 zEO1afXhyD={xWdv%~1*4grk^x(-v<4NrZQjZa=rj<$5pio$#`;Y(IbT#NkU5N&BC} zMdI#SI`{%ff)c2ey9!(a;Oy8*Im=jLlJxwHva$It;H?%vLquC2RR(p(OzP>h9~e;V zC156aU-{3vp`l0H;E*uO3n;8i0x>FQyR z3LqS`9{U~tHvUh%XIUi4`{cKS_=6EZX>OE6tWHhYJ%2vA#~QsgSYJOVMN1u(%PaJ) zau_q24b{aIk=+1CJC}mRV#^MeSEbxZL?)9B=&AYn;FUsvYhLTZVD?5|z|yP~m0rf# z;hSeAxALa-!3%dz(mM<)lt3V`0n7%*tx$T>l@DG2TJF>mW5)|WimRJlFc$h&v}sya zun6M$dbt2g+2^?n(~^ncbu`(1t!j_W+iJ|jz?3(%PP5YUjs{$~qEhUxxFq@^>YM4X zPIgBpqSFB@` zU**ihdn%k_0~FV6F{|m6q}`+=mlQBM{UWs|6i`EzQf)OKB06C0=xI?Onbuga0-L}T zbVefCAl$HAx9brxO4LWL-4pkl?eegeMZS020UB-Ya0+<$ib^G-mG|up=NORKCws}e zRao$#c|hp0Uh-Z+TV!j@wzGt_4IF*VOjAE3i-fKiA^|%t0{2zE7RKsI3olQdg?M`FFi4RK7L;7E>rzN zoe8W$dP-RTA1%f9jiKralnK>}nr86K=XH>u5w1=2gIZ>nahk;zFiTE_gV*~kl`Mt( zP>aa3!bE%0i|NNi3rdJR?@haijX_TW#*z-URY}z)jI|(?s>WY8eNT;Sxn2D|RPQ&4 zVJ;?Z0@E*rrktXqrPl$cywdi&^Dzj1{L9}JM>(yNvV6@zFG;i58RzPYTpV6>C`hr6 z<9t~52dDE4y!t5+XexK0VGXYLMxvobb(c&sfo%ZabQ%bq@TO9vAKiFrC-JkZeY=-; zV4Zx@9FQ&hxxveUvZeB7U2wSotd_aAKfV$ z4Pr6q;I%*JiT0JOuJbj@HFD!+CI$9NDWzWPVdmyA5Pk_TQMAYA{AI>RS`?W?^lF+5 zuZw%iCcFXfk@@)}dgnLeQ~sa!&ix(gJbwSR+g3X6R$D2hEhTbjQ4Tq@ouk+s!x){0 zoMz;daqPIIk_|(QLmQG2Y7m2Abx>v;3PXb-GUPBuBjo(Kr~Q8Zh3`+F*=w(>>snni z-t#&G;+@)-cyITNx!n%Nw8A33y5jXt)WZ<_<>lo=M{|=^9sjCknd;Gg04BQew-P8X|65=v<2 z$$cq5n_@l53(VP86>(@w=udMO{yQhgA6qfq1`0$yltI7GN}ujA=u3S$lBTJ5@>}h< z8Pa55J5Kl6gpSyR?rKrmx-#a2^`hXTtfPi$x9kN~ddl9ZHhMc?Q^yDd`;F8%h+Z39 zGi1Mi)eiQ)lE}fybllw7bmoCU;ro;J4wKn}i{4jc*t*RF^Xvtd8-{75C9$<`P6KU~wb^eu6N^8_--6ZxJ&ZdgK66r0(qEW{Pb?EE;P8eS@ zD^ZcZB#EacF5i5f-6--|bNis-S{TmAWFqQ~h47LI9T*I|wxv4i_ixg>z&>CV!qRqk zOmY?URs^1j0a?Gz2+fuc~#EDISy2`%doPuwH&{n!*$7Kt9wU>2X z+V%0oeZDL*YcVvhGyeCkc*Y6mf3Kr{GrA`)xA94K7W$BFgtU-Cx%sdVpW3b;e= z^~d8=EmfDw1&j{xJ33CseTmXIE4wH99c@kJt@b{7kND%HoFb*7=gsm8ZE}Z-1%~?i zPk63yc9K#ADnC~rNL%p>Xz_Z}gofzy7da&p#y=2?1*SZ`g993QN|#y3zBrI;)nvec zZrHf-k(S-+H!+En+d(EdO*=&S8NWMSO%^IS7Ecy~KEjzxQh(f)Srw$5GwTqj)H4sx za1wz90?-H^SVkuXcFPa17^vsW zI4GJQ%Ag4@apGI7GxJNI%}9h?<|+T(bc4XrCqBQ#mY*PvS{3n4zNxR@)Dw(1;`FAj z*_4BC;+%$T_~DC#ZMG__Z4VOG(YQoM-7k6f&@3=_P!5&S9tQ7|;LSEZh)xpCo6%6p zB0SUo>22EE3*CM;+M1Q~*Iz9^HH3Q*ezl}E|0%CW$Qa^^{3b`i)>!X(c^Q2Bc)5YG zYTmgpjqCop^KGnr0|F*sqA1q-E%wXn3}wYr3R`FgU-0jJF7~?%GP+H`7YO*rgLl0r zd3a<+AHo>j?zHz2Gzc=P()nO|dWO)c>|xdIjp2vK#O>`Z{2hz$#7?@K{HEoYe3K|R zc2=1-6j>BHtR0%WglT7L&00oU-v+NrgMPiRrPqhK)?Y8tX~hQ^*Qblez_!Etl+A;q z6wA_%YH`M)lvFv+`b*egewJWstE+3^qP4DoA|SfV`h{tf@3GBmy%O0o{50jsF|~`i z#2g%Y@Heznrjf!ZYDY{NKHS)MCk1&k+vaY2r?&dGjU#mg=u?9USWHyNt*t5}E#O7h zF5w*Bo^Cy(#kp%ObjoiLtl&u`W`IeYPCsV++u z@1K~b&FrY&?v+PSUBG@iJ=U&nuO}K9ki#VYZfE2(6Bz@udB$EaLD#;#j%}h}^LZpN zk*sL-83cd-NX!jO=U?3xyrCO&)(ib@@~46x-nkoSW`>l2W@PZj?zVTS&cAK zzj^fJT5`2hA~~H;HVm248Qbj8I!AhS99f}U@#za1c)0kU7Zh+ujY!?zA+2V-->pL10LDB_5Sh|ILju8dCIM0DZq zK7=1UpZ~@A@k*c5jCHTF**SJe38Fr-n)-24ESEO~WrV6Jek?{N!zM`Bo0 zt2LHBezMurC3~PeYK<)}?ayzFppB#)j?fq^k1kDN*fsy65lmr ziL<^r@i+S!YwbO2(G$Z2AQp?IllIu)-E_>hG;CDV>0*wsdIPw?%3EmN;H=V-!~4K9 z(_o{yW&#E%z?!l3TscoZzi?nQdjIh^{nDSa84 znwkRa)T>%M9F0YUUQt@KA28l()NWs4LAySe2UFlnn}8mYWV1m6TMGkCCpX zofE9e%cK{<;x4V@cBJ$D2h9t=-19X z>!IP=_YfsYnh&At99Quii&9b)XBAU02m>*t9l)}YfdT%0nq&{Oexvh z^YP;;>TY|bq@Gg}mg?4a;p|Dyic1V@L6NtcUZNqeq~jlP!#F#?`CsqkiVBRQhd!3W zgC(-ZBYVz$u6C3}ibzhq+pr`mk#p?9*OYC#jzr?N`Oybogn4H$(moP8t(6Les0o`< z4YUY~5q2^=Jr)%X&0!IXbi|8Ea5ARh`nc({`zU7&?;3>6f%0xJZ|mE?fx-*TrW@MB>2}kobhB4s-3*yQUFecs1N;( z&T)ek6&1zeQo7RsbEQ?qsvbWD`))6x%s#b)N1K&C;Pi&q`P&S8GO##MC^uZo^v^$# ze=X0lH`eT*S7j@jqf9K=RTg2wD;}_T|0 z;6HpC=CASlw8QIJKaj$F)tcZ_DnIAca^{&o8a9yb%&lT<5}UFK9@0+=iksZEGU?Vs zgq8$LQ*Y}2Pp%m<2=AeZGECeq@=Y=nI+*`l81yf_z@h~|J2~Jkh7gAs0tNXdfO%_| zBfm|Crt@ujcy|cs#QW&BUBmmLzku=5?*4d@2VuN zwsZN-lzYK&j*zKtmWkH1vMRl)-9LEe+Mu32?MG?fVCIA|9EVLX*NvK;WUcWnPt*@qy8V}k~&quyIlDThR zV4L=cNFr0)YZ*O4UL2L5Dub@SMu#(cOIaAqB z=Y!ffDx>dm`?yITbW=*ccF9`Uf%!q!jl!6?y}as;SzEuxY(5>fAS_>Y(TGF!OBsDx zZl2sIitkK8k#z7DIF@V}Jn{K`O5}Dpe3L;1Z}xfNJ$fEEo4q#eU{?ZhI?f6D=rtI2h;(}R;_+D<#kUV{~^{b-yOebglBn8FUhr!+T%pFY%WN(^S8!_o7yc!^@w!QQdBun=G9 z$RT#sUbTbVAWA2>G_CcWQ?4%RT-lZMSTkL--#J?%%=?aQt6kg{DxAS)z@?mI6iT!X zz?>cTMvRJs;XW2Q&7Jty3FoCl>a%?mTILA>RL5Fx{+1&5<9TIep|GBGoEtylPWEtG zG$z?RYT0cuUVATkFTLi<9j=u%!Jopl&Goo-t#vu{uT1@une!qd zO)MT)Ri$H%=I3LvYps(~t0FO}@q+A0D<_ihVr0R}w3y7GG=(JVmJjyYO z;ukbzW>ZO_XPz4R0(GM~Ck|RBRk1iBExuSNq(zuyW>Ij8Q_JLJn_45`Hvz?;bjKP8uL29Ld z19?(hmTV)vaL58Z9i8oT7vV!%qW|#%m{7FWT&+zM`&skZ$57dgCga?T}U&~{H-Rep4m6gId=o?lHpihOV^F8nyj9%Q+qpwBfmI7EjuVb8{ zNv~I-EF<_utCp)QzHee%IIxy*#;WcFe;#met9*u?DCn1)IS#FJIr00eqWzo z^T=kLQx~5!l>F=K@vq(HJy)Pt&izQL4504)lhG*LwMT$6!DDwk60ssezNXOE(^0vh zWK>&Piw-_?bilT8;kh!k|J?X+lwS3)3t+#ZPu)z;B8l6ITZk_5`bI}Ilt|C6T}w^r zd-PA)-PkcQ_aHpYdQRq9zJ?3C+t8+Tz zoH(^yV>ZK1ImSuHPxt=#NOe;K14AS!OpZhH^XJdF)wk{^Qz$@2-1Rrc?s}HthaO2I zS?P8h*Q+(bZc(}}qal3w(u0AP=+tI%ffU-(+p(Z_xv{7q+AJziQ<$mH_T+W7#T`Q5 zyyqHTy6i^Yarzi(-~~7#Wq}B0ya%+i3upu9c;^b_t@vKD{rD zp5UGuUXeA-;hEd`4f@v@ym8#!&WMSf-@tInw9Rbl9;TKx&3+q`!erA3TacwDzC^qi z5_eQ?w;WEn_y2+nO6DZY^M$ZbTx@T}^Vc_h_%^-*=Lp7ACTn28V?|DIGDqyDTiRzvAwb%$4g^Q+-f7p_if6F8c-!UJ zqYYsEEFg>wkXz$*=Vmz`X*Q0JnPDvfnMZNoW$NBr`=qrNxmMovAu|K#|z3wee zdTXP1d8MO?M+xd)_Dpks4tu0mWZDvn?6o3*t+T zGrXp)F3pu@P*@@@Ykx4bFo@2eLs1BH`=U86xGUJb^3vWg5sW#e4CCVqP&5 zRsbO<)xCNxS-8nX*>SXGvc3@ulPa!ZiziFPZUxP@i{UTj_xj)*Msb5ANL+hNqSo>a zk^Ux*dI~-a^&e>eBl3|2Pyz~!D_Y1|(!4ZIkeNfHP5R~JATC>yV)pcG?{58L<9IUIX)zA`KE`;2ulO@lluGuz_UJSUfhE zJ!;dFJC2F)SJ!x@a+l?5FQYQ)Tg%gS6=^++dHjy(qDain$`P=G$3Dr=f>kiuvu6_H zyts#?L)!)LwBo#z$>yg$s!A~yP;^Zd8y|V(PlfQC6~7oReGGqQr7I|}-W_kCGh#=L zQACKSE3g+q_*{3___Su_PE~%|+LHqJ4Fu!z@y@A$6ZQ>#`53Q55NMxdmyIDFLVno| zGjuDs)H&~!>=5ArzB~x~7T`CjZ60eN#PWF;Kr!X3`8Yj5t^7dDu)2etIoL1bL2V*GM`?;&`s5!c*mlvjd>J;cdUMBD{q)W8J~qpgl%8Sf_T~4#9yxW^ zb9Qh#B6#2|rV8*uAUVOQcOyk>9n53u#FDpp=}W4W4QfdXx`nbeaE5@Ws3gk#>p0O| zOrm<)Rwn$_<5!$$c2KGE(d2_A^>8r6-JzLiqdTxf?_Sny&rTrJWIJ)q<}&D~&kC7c z1kP?7>Z{?FPp{&`8P@sMcF>ta`nOP|p&pPZPz6ZuM#C83=@d#%ySOLJ92OvVx69wv z+##F|Lbfwz*obfeoq;eGly2sKUa`osE(VqlDbv_FjbSyyNV3Wx?V`l}V)eo^u8QDF zvQgW8_H_HG$}Z`#{!8?PGn?4n-VU7Mgp7g|?Roz=&ph^4t7QFFOSs%M zZt7e(PYv;MDX!lB1npjQY?L4N0FDcM2ckU%fhc08%az|n=MN9MFsrX+t@tTwXyxCW zOb>VW)}rA4HbG!nPx3bd#Q&fdMAaDT>G`Mebr8RmS9;7Z=kQ$FMD=MN*WxZW@*{*6 zyal8_LQKNPAVY-VR$gW;O#6mNq*69J@$ek#b(L&nw}J6Rr~|6H6yA|Q}qqwc{Osn7qG&6q^l}A z2Yr2hK4OG(vuu)NY0DW(@BV{MeICZhScQ3GT!{!G+(?oJPaS=z){DPFw!^F9)LFyi z+H9xFousIiYjqeM=vx#W$_*N;fgDW61fW_Qg$B~Gq*iAXu-FcgMkpQlB%iTK*3o*c zNo9@97EjqT2?;TS{Yd;v;?>0@RG;EH<;pndX59Iq4d`0;zpyaGUG;_cd*ru)RrDk(+HcHH+*&%^O{bucLQIblx+j?H{_EIftq}O|9Jxs+ zRaPAKUQ}5d7o6yp6ji!b=IJ0+{Oq+3{b#2mlmy)>6!hvm-35!uT2M&0n`ywpsNTL-^$ zzak`78RLS_#Y`15(%d2cs4guI);LDlJ3;1*Oa+M zdX_b{xA6xrPGWANl(Y24OT+~yCnlzK=!!Bx7CAek0|oux#fJT#$?KDJ&>R)V6&zH= znh7@93}v@H!;NXFe374p;JbqvF4L~IR}65n=e3Y#gz(y?#-@swU#0?*EP*mSs_*T% z{gT0m+}9r-kkWR(pc&8>ve8^AzP=v2UWUUGE4^5yDH^BE$v<>q$s?~%oT^N39Go|T zl7z5aWu!_!?DN><%Z{C2GORNZSo*4=?%xCjT;k@#Rksy#P)ws88fy$1-$IWcvI`mc@3uNx%n)fqiC#nx;m@6WCm7TypUJ8)Y!1L z!V;%BE-Y^5?J~DdkM;MUf5(V`pZ{2DYOLJlcCe^8H|}1W-~cl`Ae2>>kE?G zkG-fZ=vrxhi$^^NiA>6*V#0!#u$Y;|5|FWWfSKWB!;Avj8Y_X2;D{f9w2_#YEIjc7 z$+K3O6YLPSb$fFw{vp^qASti@Pfsr|3C1u%`Wlt)-$kr~wt(+JqUeW91~pt%E+cY4 zdHBPB=){0XL~2Q@Ym4)FPcG1Oalt{do9;j)J_aGgy^DD+&7h?jPxVFj(@646MN&7#gzS6oT zzftcHM2$GWkXEt#b+GyzoZwabu4JfgHb;(g}{Sy`}z>~x|hbM_YAW2H1^-pWGTpL7dR9c`a?kxwx z_;#kEcPs>Q4LD3{3Uj1EqV}hi74l>d-y!t~?q?$4<*Suo$%`y96jTTE`^Pt7EvlV; z9C><$3+6=_Ct(-}hgn=y!WpM^38X`cw+iEg=;W_owrt^}&|`^Jp| zoJYnAV;+nwJNz`_U^pMxuxnlTiX`+Hh=Zzg;$-1u#)x98#nwirXKovRj=mQ6guVmy zF!~YZXUMdhE%=YN$3ASR5-M(V}i zj$c56Z^ClVN?QwxS-sa_4N66{5r83AHh9O&gbS7ShTW6t=ruxd$7&XKMyn%p@BM6T zJ27PQ-w}@E2Xpy^kf{^fOnTBJ98zE(9QywWR0v#2-wl#%gIi~=5-xoVc{yeqk_&x!l_&P;%$D-7-F|Gob23H*O~0+(iuhGsX+ Z@pv!Zt{i^vlJq@~9yC3Wz3J6hS0-=}MK36d@EPlu$wwL69O#C;MV>Cu=4yj=s<41001n8_jPnkOgwy%zWyG*exmw1I--6L zeckROTmc9kE4UqGmA-RIV`|5h(?WY>tu`AG1;iz=&<-x^60S7h^oWaFt1UL3#e$db zWIo*dOY{&6ydZwINCxMAJt5vE(cD&b6*gY}Av}b-vauymVUNS z;t8&p#a>ezfu$J3zjWdw>G|N(45C~M#82*wZ2+u6P{C;A8_ff{8ec#U{Dv+{a<|VM z$26KqTLRH%U|O7;%u1JP20AX@>EHz&0^rTcou7H9hI*=oyCrPi>1RTwy%;e|^pFj~-OZ*}Op_(qzx=vA#J`&Fe0+X#$Ikg-? zWRA967Z6pY2RdhXx*?(lkRpZt*69idzgQfc4iJc$-P!;4EAiqozY7KZUYnj3oBf2S z)pp`P$K}R6C!U|3C&2?JLkxP@01(>k`*@_PnMz)mn^|xpBdD8gB}ZOszTz5U>r+R~ zPw5!|mr*Zu%wc|h7~m#tKu#gvj84byLL(><{}%G?;*R1DAfb4GnitNj%y;P zSy)+Dq@0WK3O^Gyj+JJ7rxVfJwACY0$QpQ%tCdqlD2+LM;N%lnZI(&8;DTR z$=n&P_a85*vXiH|ZKEiD{3jd*FrNgPA2Tyt?|||+iK)e(bWR=-?}75?Br}LR!Ije@ z%S0FBc}>OJIv$qMS7>`avx7_gzVMLuN|LSCUMi_WR59Top;_-zM$}tV$RK@yR>Lcp zP{P+D|30KLr(I-LiC3S{`!nj1btUC}|NaU5#z8CdDOl3JE{&)o>MWR7`s z>C;*9^jF63r9!xOzXUt0)uvkA#7eJU+US z@C#+P%QX7A?&ljwQ&PPdR>rFp+UR>11)9j;j;r8N4#<`2&O4<;EW1!T^gZ{!`~4jc z`9)+S^F+)U-R$q#{a(MA7Rie-n?Y>skJ)3|;m$IGUV@>5b*WBv-_W3ZrXWzIp)iNzI(V67RJLdl8nnS2c);q7wIbYjbgulFL{?6oQ z1@qvk*FzN|=1most9#6X%u-BxO&v;G91f%RT-e_}j=fp*7+!kErT(j6lGv%QimvNc z+QSbmAQU;T=Z4OA-|j9O1TyXm2g-*U+}820bi=wmb1PVQ&`rnjwRU>#%4q(r9dhdry@s?b&cjD?J~j5)77TsgHu8KVaH6=)U66>O<_tL+3ZH(qWuZH#Rs z1@tay47gBGi_BZ!wm23i`t-KEH%qtpm#D+kKG;7B%FxTHf{071E^A$>F2B5<-^cZ> zJ(_uSlIYR+?2AWfpML3Cob+m(`%jf%ehoLQ?`dbO@}%py*EJ{S`--HpFJ*0WE$6y3 zymH+d``!;AySh5$#<3&V&gJAQL-}49rSDr>t{iEUiqhuRIC4?|JTcT!O+(#v zuV)dW@l}JqFr+Z9`fru=E0LH$0pZp7$F_mOU%4j&~H z^$y|%fidJTykJscOk!+0AHFKr2gn_{VeFjs zzB@j7J*DDl!&Q=J-NQh4tS7<@;j)~Ei^NspqJrc8=&omTBY7m5SDws$8Tq3AEz;CX0F|nARY%VQ6t+nJNt_1_@zAz}^sO5dAR zn{b>mkbfl`d{^LZFbfVJK`1j z>UDj~sPx!y>qJoK21kqt-_=QK#&Yuq*~}cp`lf<29|VZ<)Q#E+?IVtNG36Mf#5At>gxM@UuD3@#*^f$Fox}!$N$`K&=|9Wwm17EwG}Q-l#!)*42RUALrgnIDonDM4KXTQe-eIS6W0IU=x7O^p zDZb-OlB)l=O1)ZL5AAn21FyO3OL5&Hu2^2HMs6BXuJ%y}BKAB9L;gSh{J3aWh{999 zE(_QDNKc%`Ni}Z$3EW=c4`Nw07`F>a39dP489Q8J+T&b`cz;yuO7Nck<4ADq{cO!i z}U4DS*L**@f`G@Aah5l)o+K>HUVbI7U(YUz4W}XZQc@ zwK^DCW8F>cZLLOCY&@jCuBcIKmuQDI_n_3*UmjHTkiw}rYU5Np9+o3>pmk)j(YNQ) zUjE&9M}r)8bRfU;Xk%Zhzfg%*ZHl_U%?tqukpdtx27ujTnqLGUKmmXyM*!5G1HkW_ z=FoPNRGjY&HfH0G;@5bgVt+c9UbACJ8`7CSTY|xslmE6ea$S6yl zMKoUgvh%z6SdR}fxW@SC*{<`7J=GhUofooXcUT2*pEr>DyA=D${B$mwjKB7mz+VD? z3H&ASm%v{F|0e_@kE;Tk@O5>8^WQT6@ttIg`;2aFZE9+2XvlH3t|tvKfmhe%=zxmH z2OIZZO!(ULbqrbTk!tdQ^2Er;Mp!er<&Wt&Z;=!9qhrOZ$Fxrk_1)l>eOu zGD_1Jn8d|#!t7hZP_Eg&N^%L96*U0AXr@O#uYpB94zdlv%_w zT&=TQO?h3djil2L4-eZ@U=#@Lkc5tngQcO@tr5qQB$6=OiNgqQAD=UtXj>R4I#J62 z28)I~xAqTb{DRkK+uq6vC*6cPd3jNWtL~ce8kXOFLZe~Dh_|ny@v5ou_4TDvsS*3z zE0iBK*%$4WkZP9+KubOUzkDRNmGpVgGS(DCeatnhir(8?+~1)lmZ&!KumS>LBb>Lo zm~C#ZB9xRZ@4ylF*{FPDdGy_G7)G-5VZ$I3PymoO;%SoS5@`1z1*W;Wy!^ENr)7%Q{f%B%T&aX`hEiA2!T)u}lKjr|s>) zdXh*=yD6_qUU!>wF()vA2s;8#GjsDaNwG)h*5kwdoytlM%_yURJEv(RXkiQ%k0Op5 zmY06iIKVW*RIl-!)|Mff{fEg1Mpwk4pGHeUmMgEWei}{JM@JK0UF$4!^KP>Le~kXx nUjqLR2t@L2aMENRA45QffMfO*LnT^I0RVknqZ`%Qj?w=EA2{~y literal 0 HcmV?d00001 diff --git a/assets/share/ornament/combat/OCR_DOUBLE_EVENT_REMAIN_AT_OE.png b/assets/share/ornament/combat/OCR_DOUBLE_EVENT_REMAIN_AT_OE.png new file mode 100644 index 0000000000000000000000000000000000000000..67c2919154730eeb652cda63406d539ac88a4a9c GIT binary patch literal 37710 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

LCcZ}|`)5mPoZUBxXERd0wL1H*zEto~sK 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�ttqc(!qI z=7sU^G?t<}Wt>x!1@uH3Sa3SA=JaW4X})knEzq3-KmNqBGEz!Xw6@k$AnV(QTaAGlBBkJY9&`K8dvEIUt5Qx5o~c}inkL~OS-g&vWc zF9>HNROlBL=a+#o8VX>RbWM&02VDqZH5!-;tj%lgF!LnUCx7pQ!=AfhnQN_jA9$fU zVtqE4Hc?>(z4Y2dZzd>ddDUXcZuP(`k}IcgXVSGc!^<|UNo+_bmO}TXt(0Mil6_Mi zWg6wNos*8eit7avdL03%oO(Hk_(XPlMBDV1jqP*fLmwJZZfNU24j~`8u4?LZ{_tPF z2}D_W$*t%q50_ZCr79U8P&D-!gTry6UcZX^BXG73!v1MW1`KkZ4mFcYbR&#>gu3>x z6uak@jd^@+aIokOszB*3G#z12B z++rsP-s1UBAG0}OFc>r%q9S=X`YDrY__Mk6R&}VadwEt6isQh(IMndWW$%yPeJlm` zL?}mLef}NU@bY~q2OXol#bh#{Al^v`7RL<-<`%m@ac!>K^mczbccu}Nl-jzd#s}*_ zqR@<`n8xK}Y7F1q>ALKc-!F`F@+qISS)#07h4k_Y$NRe?+C5u#Ok}khU1gxxII+E6 zE?mxF<2wghnE&;|7wcAeJRmfq*7LrVYtF-_?_96@YHB3UK%2pLmEWcdF0fohAhTj? zMxuMw#PxDLMWzyYtTsdV*=kVj_`)y!O5;4EIAY#QS&;jhFBJQH?yI3;3^q#eiybv6 zZ>g!)65c~ZZp*NkT(aOCb9|g{qgA-*NC8}s6TORD6G(RNUid;LGuhAfj>$Xy_o#dcJ-R}c_63eMV_xLf`cx8R$fqT~vHV1R*I zfo-5cB7~8Bz71n}adpPdlP)12B^)>CK<)6#l=!0@QSz$^lfmh5D?hO$=H|m#9{6V4 zxMN-QmuQYjhwB(*gmXztU6L<@5) z?w-|zT!su(7ghRsuGpOTpgyF66Z)@jY$ka3#)XyVWV|E z93I!e;;eD9*T`?aI?9JdFQ+YyGm5UCKz7s$Tm4~+@)JZzD$BPeR8Wpa3d)ds z8q@&Ff0xeu#~r&tjc+l}kKz`0L5|YD*V^pSWdA`GS11486X>$O2)7Gu27z?xmZ$kZ z+ZiMfc^*en0fSuH-mI?~a=tUX%OwzsD$IL`!gj9z+wnon+BE%3KH}^+yu5yo**Nd% z6=F=B?$~#dJG{BR_hB-s^Iz5(hUB)6!r{a7F=^v6Ywshx4^iJgD+H-Tnlr^`>L@ec ztARG?dK3B*?q7C#sGDzQMbBTGLdT-!>bb7af8U??(QlA@w0XQX0}qAJj`h+!Sc$U- zwY<&oYmr*{QHj2Y<~$jZ)Ira2+Zl2j7xPucpygcUCq&XuA$Y*i=^LR(2aS4m2omQz z$?A6c6ULDJwCY3YW8DNl)V{mi>~dej%D40K>J65t_KR1F%&b zd52(jkn}FYTeri!9LqHIZy9Snd@*_WL+dd0Xa==E#K}Ug{t?_*wk6KA>KAxyO#G+n z;LY52ut-;AqODz29_i10$2qV2@Y9D{59dvj1$_tj2F#Gkl?U&gJf=<+&A^YS!Ht5X zhc@LBIQzVA$kX}Th@+<+oCXJ==ZL-K%ip~psN^}+BJ5DgdaEvN9WKZdefN9SD-3Pr zx5L(c6KEQVl03|A<~&m2Fy8#KQp+OUu{i-+c>Y%XW}S$_@N$RyK~W>`oh;s4UHkj% z+8OIsA+`B(G9#Z4j!v2J>um0P>CpEOR1l(|zxK~vy59AQ^mbpCr&*+P{nXQWW$JG9 z;xBJz*XH8GTeB~A?rLpIJx+bIt@!u5VC@~5cSrT@;|Dn)v&Dr6nO~KWjW=?JJ|WWx zS^;fdL2CT)>BfLs%v}DCtwQ^lpEqD;Xve_cH9#{zF|z@c?Ww(Nqn6c{x4)^p-eINC z{*ZsDc+n&6_#(tLbp9R3!t9;)>+OVxu>V51jqv-83NO4B`#8Ty@n%1W@30>6h~Dep zyzj>)UHrpH1eB?H@8Pj+^#I#g<$_mpc-I3KkG1Z$*iFsLzth8sdI@a4I?b;AWuGI#LE+#2*3`Q$@ppF` zy$#Q_d&_?RtZyJP!|;O(oZf3D6oW2oj^ZPc(ZASug}^G;u5)VuIfy4GWl5Qx#EWB+5)wz2JhyRLeA0pam9bz zBE~x*)t}7!xhP+NW5BGV2I33I3U|uj!M9%jZd?`{sFPRe_tdo0`x1-5q9J?F=tu$a zjQQcWmrlxUSF=HWMb0a&ZG3;!f{x&x|EnuYz0&z9<*i}ha?xgRbwa3hiB`*@bCip9 zyvCo3E+^T2bA#X`IdQ{J&jjYc3L+xF3%5Sg~7WuS% zS}NNhtKqV_wc#Co z%ly@{^L@ABuU4xCjKJO1XPIi9gl$8Y1mf4fukS>;HKa>;@DoQLyvx!~>e{YS)CsWu zAQOWimu{)9J-0hIcHs6T6hJl*@%H;g^Y+{vl^OVS88VZ%zH9hl@iFhcGj~ZeVxA=_ z{pFPiFsQ30D|)OT(JArpxy$d(g#qoZoyAufUGG&qL2b9S>TC8RLkg!I8+~sS^Lnx$ zy2W&M>F_FWJ~>kWaCvdUzN2o%`I}nfWe{1mpuJ0M#i@GdeQ0BOr?9c=dc|v4l;Xgs z;^T~os-dKwj>e$SQ2x`Vq$?Y?RDac_`%b^NvgZlLeWP<{vs^{F04D$d_4LlJ$IwL+ zij;XhxozV+ijx&Y>4m@Xp}(?i|Lvxz*l(WWZu(6=;8z|!Q)H{I4QC0U4K~tZoBdEHXR`l_f!~9mW?iNh&{V_%q01Yq#bo{dPl~ScxTxu zW%1v3fiKcp%Wf{?mxzAXnEnH=DT#4p|C+zcXH0HTs0z2=G#!ekkff9$2`}?vLF;hDn zHU^8g+N?Gjey;7P4tcgOe3xN%aTGJ@f&#{bhjUSf5uQ&ed+MHTX``Fr>0Q-=wRX2! z|H`HdxGfj4g}JF-SV@5JUUX&?l@qurbWu;6T{E03KPvEJV3S06`m|E938yHN>-$l` z9+z`ezC~Qx@ztLwCL!%to-oUW=+$1~U!AdMyB_46;h8(XRN1)prhVtt!GwFr;r*qy zpZEvDTXhQYlWjI0-0YpQTdmt-V>{e2qGQ@tOOJ*;4iX-7VGAS1ZFLJ>${V@~1$h

-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 Ag8%>k literal 0 HcmV?d00001 diff --git a/assets/share/ornament/combat/SUPPORT_ADD.png b/assets/share/ornament/combat/SUPPORT_ADD.png new file mode 100644 index 0000000000000000000000000000000000000000..fd190786afe74243ce2a9c217c00ebe1b756371d GIT binary patch literal 6892 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 literal 0 HcmV?d00001 diff --git a/assets/share/ornament/combat/SUPPORT_DISMISS.png b/assets/share/ornament/combat/SUPPORT_DISMISS.png new file mode 100644 index 0000000000000000000000000000000000000000..587a43ef0cea7c796a24da06c4f6f527d71175f3 GIT binary patch literal 6623 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 0: + rogue = self.get_double_event_remain_at_combat() + if rogue is not None and rogue < self.config.stored.DungeonDouble.rogue: + self.config.stored.DungeonDouble.rogue = rogue + wave_limit = rogue + if rogue == 0: + return 0 # Combat self.dungeon = dungeon count = self.combat(team=team, wave_limit=wave_limit, support_character=support_character) diff --git a/tasks/dungeon/event.py b/tasks/dungeon/event.py index aad0108ae..300a2aae3 100644 --- a/tasks/dungeon/event.py +++ b/tasks/dungeon/event.py @@ -61,19 +61,19 @@ class DungeonEvent(UI): logger.attr('Double rogue', has) return has - def has_double_event_at_combat(self) -> bool: + def has_double_event_at_combat(self, button=OCR_DOUBLE_EVENT_REMAIN_AT_COMBAT) -> bool: """ Pages: in: COMBAT_PREPARE """ has = self.image_color_count( - OCR_DOUBLE_EVENT_REMAIN_AT_COMBAT, + button, color=(231, 188, 103), threshold=240, count=1000 ) # Anniversary 3x event has |= self.image_color_count( - OCR_DOUBLE_EVENT_REMAIN_AT_COMBAT, + button, color=(229, 62, 44), threshold=221, count=50 ) @@ -109,16 +109,16 @@ class DungeonEvent(UI): logger.attr('Double event remain', remain) return remain - def get_double_event_remain_at_combat(self) -> int | None: + def get_double_event_remain_at_combat(self, button=OCR_DOUBLE_EVENT_REMAIN_AT_COMBAT) -> int | None: """ Pages: in: COMBAT_PREPARE """ - if not self.has_double_event_at_combat(): + if not self.has_double_event_at_combat(button=button): logger.attr('Double event remain at combat', 0) return 0 - ocr = DoubleEventOcr(OCR_DOUBLE_EVENT_REMAIN_AT_COMBAT) + ocr = DoubleEventOcr(button) for row in ocr.detect_and_ocr(self.device.image): if not ocr.is_format_matched(row.ocr_text): continue diff --git a/tasks/ornament/assets/assets_ornament_combat.py b/tasks/ornament/assets/assets_ornament_combat.py new file mode 100644 index 000000000..4779e6b17 --- /dev/null +++ b/tasks/ornament/assets/assets_ornament_combat.py @@ -0,0 +1,45 @@ +from module.base.button import Button, ButtonWrapper + +# This file was auto-generated, do not modify it manually. To generate: +# ``` python -m dev_tools.button_extract ``` + +CHARACTER_EMPTY_OE = ButtonWrapper( + name='CHARACTER_EMPTY_OE', + share=Button( + file='./assets/share/ornament/combat/CHARACTER_EMPTY_OE.png', + area=(549, 513, 559, 537), + search=(525, 498, 824, 554), + color=(112, 112, 112), + button=(549, 513, 559, 537), + ), +) +OCR_DOUBLE_EVENT_REMAIN_AT_OE = ButtonWrapper( + name='OCR_DOUBLE_EVENT_REMAIN_AT_OE', + share=Button( + file='./assets/share/ornament/combat/OCR_DOUBLE_EVENT_REMAIN_AT_OE.png', + area=(812, 577, 1248, 631), + search=(792, 557, 1268, 651), + color=(124, 103, 61), + button=(812, 577, 1248, 631), + ), +) +SUPPORT_ADD = ButtonWrapper( + name='SUPPORT_ADD', + share=Button( + file='./assets/share/ornament/combat/SUPPORT_ADD.png', + area=(848, 518, 876, 537), + search=(828, 498, 896, 557), + color=(167, 200, 176), + button=(848, 518, 876, 537), + ), +) +SUPPORT_DISMISS = ButtonWrapper( + name='SUPPORT_DISMISS', + share=Button( + file='./assets/share/ornament/combat/SUPPORT_DISMISS.png', + area=(853, 513, 872, 538), + search=(833, 493, 892, 558), + color=(135, 135, 135), + button=(853, 513, 872, 538), + ), +) diff --git a/tasks/ornament/combat.py b/tasks/ornament/combat.py new file mode 100644 index 000000000..13a05c65d --- /dev/null +++ b/tasks/ornament/combat.py @@ -0,0 +1,142 @@ +from module.base.decorator import run_once +from module.exception import RequestHumanTakeover +from module.logger import logger +from tasks.base.assets.assets_base_popup import POPUP_CANCEL +from tasks.combat.assets.assets_combat_prepare import COMBAT_PREPARE +from tasks.combat.assets.assets_combat_support import COMBAT_SUPPORT_LIST +from tasks.combat.combat import Combat +from tasks.dungeon.event import DungeonEvent +from tasks.ornament.assets.assets_ornament_combat import * + + +class OrnamentCombat(DungeonEvent, Combat): + def combat_enter_from_map(self, skip_first_screenshot=True): + # Don't enter from map, UI too deep inside + # Enter from survival index instead + pass + + def get_double_event_remain_at_combat(self, button=OCR_DOUBLE_EVENT_REMAIN_AT_OE): + # Different position to OCR + return super().get_double_event_remain_at_combat(button) + + def support_set(self, support_character_name: str = "FirstCharacter"): + """ + Args: + support_character_name: Support character name + + Returns: + bool: If clicked + + Pages: + in: COMBAT_PREPARE + mid: COMBAT_SUPPORT_LIST + out: COMBAT_PREPARE + """ + logger.hr("Combat support") + self.interval_clear(SUPPORT_ADD) + skip_first_screenshot = True + selected_support = False + while 1: + if skip_first_screenshot: + skip_first_screenshot = False + else: + self.device.screenshot() + + # End + if self.appear(SUPPORT_DISMISS): + return True + + # Click + if self.appear(SUPPORT_ADD, interval=2): + self.device.click(SUPPORT_ADD) + self.interval_reset(SUPPORT_ADD) + continue + if self.appear(POPUP_CANCEL, interval=1): + logger.warning( + "selected identical character, trying select another") + self._cancel_popup() + self._select_next_support() + self.interval_reset(POPUP_CANCEL) + continue + if self.appear(COMBAT_SUPPORT_LIST, interval=2): + if not selected_support: + # In Ornament Extraction, first character isn't selected by default + if support_character_name == "FirstCharacter": + self._select_first() + else: + self._search_support(support_character_name) # Search support + selected_support = True + self.device.click(OCR_DOUBLE_EVENT_REMAIN_AT_OE) + self.interval_reset(COMBAT_SUPPORT_LIST) + continue + + def is_team_prepared(self) -> bool: + """ + Pages: + in: COMBAT_PREPARE + """ + slots = CHARACTER_EMPTY_OE.match_multi_template(self.device.image) + slots = 4 - len(slots) + logger.attr('TeamSlotsPrepared', slots) + return slots > 0 + + def combat_prepare(self, team=1, support_character: str = None): + """ + Args: + team: 1 to 6. + support_character: Support character name + + Returns: + bool: True + + Pages: + in: COMBAT_PREPARE + out: is_in_main + """ + + @run_once + def check_team_prepare(): + if not self.is_team_prepared(): + logger.error(f'Please prepare your team in Ornament Extraction') + raise RequestHumanTakeover + + logger.hr('Combat prepare') + skip_first_screenshot = True + if support_character: + # Block COMBAT_TEAM_PREPARE before support set + support_set = False + else: + support_set = True + logger.info([support_character, support_set]) + trial = 0 + while 1: + if skip_first_screenshot: + skip_first_screenshot = False + else: + self.device.screenshot() + + # End + if self.is_in_main(): + logger.info('Combat entered') + return True + # Relics full + # Clicking between COMBAT_PREPARE and COMBAT_TEAM_PREPARE + if trial > 5: + logger.critical('Failed to enter dungeon after 5 trial, probably because relics are full') + raise RequestHumanTakeover + if self.appear(SUPPORT_ADD): + check_team_prepare() + + # Click + if support_character and self.appear(SUPPORT_ADD, interval=2): + self.support_set(support_character) + self.interval_reset(SUPPORT_ADD) + support_set = True + continue + if support_set and self.appear(COMBAT_PREPARE, interval=5): + # Long loading after COMBAT_PREPARE + self.device.click(COMBAT_PREPARE) + trial += 1 + continue + if self.handle_popup_confirm(): + continue