From 1e10ef8412c41e500d502bf36cac635073b324c0 Mon Sep 17 00:00:00 2001 From: octo-patch <266937838+octo-patch@users.noreply.github.com> Date: Sun, 12 Jul 2026 15:21:26 +0800 Subject: [PATCH 1/2] Add MiniMax LLM adapter --- .../public/icons/adapter-icons/MiniMax.png | Bin 0 -> 71437 bytes .../sdk1/src/unstract/sdk1/adapters/base1.py | 54 +++++++++++++ .../unstract/sdk1/adapters/llm1/__init__.py | 2 + .../unstract/sdk1/adapters/llm1/minimax.py | 45 +++++++++++ .../sdk1/adapters/llm1/static/minimax.json | 70 +++++++++++++++++ .../tests/test_branded_openai_adapters.py | 73 +++++++++++++++++- 6 files changed, 242 insertions(+), 2 deletions(-) create mode 100644 frontend/public/icons/adapter-icons/MiniMax.png create mode 100644 unstract/sdk1/src/unstract/sdk1/adapters/llm1/minimax.py create mode 100644 unstract/sdk1/src/unstract/sdk1/adapters/llm1/static/minimax.json diff --git a/frontend/public/icons/adapter-icons/MiniMax.png b/frontend/public/icons/adapter-icons/MiniMax.png new file mode 100644 index 0000000000000000000000000000000000000000..0039c488ea0f9e153ca24106e2efc636420ce664 GIT binary patch literal 71437 zcmV(+K;6HIP)`_|s)cg}_0_x^w9 zoW0koRaL9%ty;DA*~k9z`+c^XIWC9c;myg--7g>F9O#YL`%9D4>GJBZYNT!QvpqC$ zi?&DKrJrbA z@}1X^+o|9`b#`ffY7UBb)@jL_tovw3d`G)Q`!W`3)LLgtj>Y+yBVW?F=;ZS0WY+Sf zK1vNi$HD-N=Oh|D5D=Rfb64}3v{N6pPx}bhLy_VYjiXN9bE=@Lj26uDh z{H~KcS5O2pmIww4?op80n^-ozKI%N4ituG{yMR@48eU*FQH$o;iACa0jA?+& zu7eZhvZyglZ2jR-WLW~R7i2gY^JDCFwgbOKge(KgnZqfAc0o-VoG%R<#O)U?JBh}O zoT5P}_;J#P!0KgkPCKjdu*b{m;>FBeWkOi02jm)T`owS(FB#5W!K)q4NtHr@##-7a zV{g)qokKdCiQ2}Po+4rwPXgH`_b{vY;5kPuR!l-+ZCv6gbb6RFKlk|UY&0i(Tp>1c z?vo2h>?&PU9BW74Nn{Jr7RGExHe4@@`IwiI8f93~zvs{4$}Dz(9_)unk=ZG4DF)c? z6#&FvvVjHkv}S~2*&8XKxvY75@QLMrrpjWGauh#^F3pdy*KbUi%}?Tl!wD8@=M=aY zusBSr#1+!~Vs+tlHh`wGBa)MCdx~{=t7D>_IF%OBX>(g6T3eD9m`D9O$hiz)k+rnj zL5a9`Yt5uNrL5?dXL_>qoFy(1r5(}=sX}can+6ZSSGgiEfVbX{s z{ScW!Xq=e@)Fve(vev9PS{l;K#@6}s%8@Br6R;|%G&mP43Qndxh3uS#6l82s&dH`M z3?@J2M2E)0t1g}F)F~ZL3fR3wRcB8yY5|~%@E+~JQ`f)q@;)2mh(ihBLi-1Eo>D_6tDuvFJ7|Ej^34@alfXC}Ly)5eY~-Sld~0h-9&!e7c4ED_ z!HKXoEZvkh0qR`Ktq=qa8$SHkbnFBx2>P?sJ?m!T=jpKJ&dq8rS@nF3oxr$HVY7F? z%j|W6NLArF%XYR~W@=ZLDMm*7up*N&hDIXkS$gYem{2c)L7MbDh=J0Es)f7 zxuf?|Ez;>QdY|?!AOKor#J}l-nSnWhu~U#wyG(bX3`T8@Mc}$NwvtQ%7%|rVzaqh@ z2$3TK({CJ-Gg}K(sU};L%)!*~H2~A5T{Taobd{n>SQ#@YDKTEx4jed{EE#HiUOjZ( z!iE8W2q zJ7%Vpn-dmzod7Pi8`C}zN6(QNQFoV>%_KuMxs6>Ju~P>#S-w_==N)i{{Fxn#87T+i z?n}JIMW&~C<@Z@nik+DIU+i_(BiBUdn(z$`7f)BONpaq96 zB?-JJqn4pWRhQ&7~g4X9nUwh`nSO)+e2<2HNhz(&z zWIzK|b%J46drKDG1&r9hc>Gw3dPdHwyRml194mXQaEcJo$9V!L3I^j|*U|dm=uCm3 zFwYf`QVX3mSw~1~liZfA=`^wo0BLb$P`R2i)@}(E{3Reqq_@M!XKeUh4(2|9)xpuX z09t2v9Bmu>bxZP#O4bWBI68#Wq^fy|>3PA3X6nontXHQ3nTa56EABdPL0)ApX7Vh} zAE**fTzd9BN?Z?y+$pKyMf)dcw#~%I6Udkxf?qefIsfbjGA*pM5@jGGTuiD9(3|Jp#k>(*uBXz^Z0ooHsc+hWF;e;bAmp^yeZm zkETpkwx6d!<1>)>P7_OJcD|#{7%7eipQSgWrDOv3i9ucM#{07$#wAGhTy~y%pIIqV zN6rjp6DQc12?8--Ye)97$<+1NRz!~t^wJbp4p;w&`ag&U?M{~+`y=#=>skRs-?0j7 zUngFS1LU&R-I8!O97W15GNX)|Q@#aeh8@ZnzqN7_iB{!Q!x-gF6Cwky`^K^?0+E0w z9~~)jeZ67CR)Ez^XpCOe*6Gu7@tVXOXXwk+C({M3bk$y)X-R%Qh1ruOH;@h^K0-$; zgW~rD&yC8pv|lw>Y&T$VMh#}|HHB+<8NP-pkfeh>l9W*5}bE3dnY zBEk+Mg7f(?SvF4@;Z#o?**Hw1B84tP8NW`1btJQ{eQ@0*d9?%2=p_n|PlgK-Tc$$- zq3xHL+|DIYp!;sv4xD7QrtQ0>VrQoA4TQX;O$jI)^;CUl#pFCo)e7-uIzQszA;q{SX*->^4ZptI1*>Xg>xf9}xQ2*z2l~+E-LX%Bj zj#Je-qLD_;Fr#-y)O2idvXL70-!vv}XxcP(#>Sj!o55Bs zCygCHy<^=zQNG`**d3`Y0W`^|C@c~%858vBs%R*5+R)gE)j%q>BBu%8<|b24NA6O_ z4BJ@p?%%CgFv90M&_1GgbVz5OZmmD~|yc)(T~S<8(0FU+#`4Rmnjs zY8w3b2F~p~TIf`)gogb9G(rMpQvlJ~Y>J}uAha&pNnEFD9rU?s4;+D@;A*QxW63(4 z3O15LTFHG)iB`m+V$o#oGJEgsV6J)W2nVQnPio78MdR%3nbK$^lLX3EzTZRB_-(*0 zE4KpL1)n_p$=&9Amk} zmJPIQB!#u&S}qJgZNn8C&zrSZzH!!mnGvUNM$eu9C)f=T#-TfPP+MdAZq8f+hIT8m z5=d67+9j;}X=omcTjxIB4Jhgs;K_V7B9mDbqZi$=+Igxj-yQRVc%#vXj0>T;(M5f^ z90ld3$>V8-l^yuIv1P(l7<3l0m~etkV!Fp-544okOGmTVjD_&+ZFSNGpz3_&>@0^t z?j>3dOu9QIQv{32Gt8134D1Ex6I2& zaX+G>Gbep5C2L=%5qC$f!eH11nr7R;)3xKscDG&DYt^tk!h9NXPf~+|Fj>%>@&t84 z=IesdB)SLcvuP&Mml?Pn(%N|wxF%7cW<92`A0w1#g!b)1E)$jpT+{1CyYnjRdFIp~ z80oN2-uso7N$d+lf`j*_5i%(niL*pXpgy)>#z+z$4Q2YiYa{3mWR1O0wB5ALjHtoC zbz!V@Ief;@V#ai7KzxLZzyzt{%@tx=AM{sWdiRVjv6M8-(#?_PYZpB@-8u9Ctp;ow z*EFPXP^iyBWeI5Izj0m+-NxXmTh5pia8swH*fN9SCIODAXB#IXez~o|l!cu`8C%yx z2X91$g3T_TImCe!`-~YFlfA;)#tP}ZDAoF!GKHX(8Tl&T_|V2>xpT%^HlZ?r)KfyL znR?fe5qY834n0+$7=~{xKf6ao@j3YvG{lys#$sN2>18^&knI~d%`}n?bWS6=yqt3fC=EW1 zV)|H&b9ovfXmFrRpO=Jry+6$*L7N}9-5=hPVW1Q- z*GS3Je6q2nZp|wV;4F|ha?WoH6kIouUgJC4GpKF!D0(ntWRP6beLyp8splaKBtN^( zHLnnQrM$E$^hvf=oX!uVG&2cscrj^4EZ^=1e=VZla4J8@rc^LffKBF?Y zbi;k9@V;{B#7A11z^D8(D?U#YP2b^IX6;RAzXTI#@PpfD43#U$HICXw?4+)p7ro%! zp4Ht(dz6bn>cei>rNc~VfV>&=Ny$dax6lj9&#B*&jk)NA?}J+p8EU5|t#ov5DvA|> znwPiEo4wx9PMf`+sF6*w;vVf4wu}J7hCd%i=8`w&QUz*IOA6RFc3NRtqeu~R7FtQJ z6rqO)2!o7gT0Bs|f!1^wfzz&@G-S{y-khYTcU?zd&T{^1jnW2NNO)GL@E*s!d2L|c z%in)71ZL+#XB`JJ)Y$IM;8zRw>D>naj=c;O42_5MvePAxt27QA zW>L`knKAHC=0$i19N4_91`?<#@zDLEQ8S~d+WCJts~_@?U6u;9ZY0Q6xLR{(400Sj zQ;&I6MlEa7b(~rmE>bjB*5gPaOMItZM(%DP18|AW$!rPH2!hf9S#cTzD`WXj)3A;< zI-^ef79e?{H)_k@g)bqX#4KsmF%v$aLo$?iuH#goMi-3r$n^Bp){MB;ipp|Z+n&?C z1~T>hdYepJr#~cL8dt?H(nmA^@fBlX9<y*4huH_G4|Zm8paR2v(8{kaINCXxr@Z zNV8sbB%!~WHhM@+l<8SJZ7&~v*N)gZzUJJhuk4oAhY(8o8onjGkllb1flyj6J=l({ z2F7r}8dK35Q92BZD>PUS1l`refdNQ>%lxt)h$rx!?qkYHcw(@F0kJ~rWT9=&Q8WlLgt2Av!UtycIuSY-rzdtnU>~V*JfoVKi>61W0_J! zGJG|;q5INW%_U)vmr6s}ds&Ox3^-RrWxbs;zJ)F++7>WCwqyMU$&Hfop5%#KQ-Fy+wmQ1I)`A5cVNmkA%G(W7I4MDjmuT8izE0FvE( zDiwg#u*^i%M4ocLj&=D4RFIK?X6R`!A$XuopZ-5)&IG-XNa!j`zw)w=@wpDInLGMd z5|++}ZAa%*E4Ga6_`si%9TyYKuVq`bAHAQFAXqXf)Z^@5I>$ z17U*Lmwb5VhUwDRQsTV$rIkw3UgLDR2FjypmNZ7Nqw#qKC~_Qv(%BBJt*AX+sM}0S z5028YH&YoboODFKf?bv|$UC1rSHz|zQo1P_J2FGXFuagIbVUScT!)~=LcQ>h}YLi!)vV)JxK2`IxVrUdb!e z7L%v8FB`)WA$ci06Il%kL~XxiR%s7TC>(7vV=wz6+GY(bL8isa@vPI5kPGr%6fUpDaQm?0jhES03_0|^2SmPRpYMrgAiKaMl}0K1)rU>Ye{*mh8m{k z8dMVGn4zNA!;0Bb&|iL@^Xy_=oH-Q@GDxmN?PMp`a$plBcF%emXZ{pcjM1wEqD}MV zLq1>U`b6lFaXG;{Wp5@@Ed-Eo0iq-e3>K<)wC&_$8iI-kfNsCoK; zb=!hrCw+EID*+Bnuu?{v*+%vC_jEepczUCY83mlad)Qbv*3RA?+xgA*%OgH)Kl=)H zF-C*K`oNJ0py3%%L*^5i1U*xjXk<(|A-&RCyrgRZ<0eITLp-v$ou#8Iz1y7Hd{9Z(a2|WIaRtT{j$;6UM2loj#l)X z8XKpEpqn(=?MYvxiIO2Wkpjo2%F8m#X`Nx{YO>ed7|QngYiyhmdUtP4htG+Jc+1XN zQEq$`zvZf~vUaoh%xNl8Uu~dhJkiYiR9O{{v=-US$)rs$Hz1t@1)C{CRG&OsDrSG! zft@-ic$IEAQfWl$$+6Ie6_!{V8BoiQislg}_Ix>bNE5!gc|PYyWz#4Ln?FefGWe1~ z(R|0tWt@CYg4OR!B(h1}jk|>wd?F|%DJ54=;L?+??|-i=nz2s#9Rs<@j=pE6FW zc*n(`91yB4fR zO)GV}eB>f)nKhV+r=dC^I*}}6E zg5+TC#6PLU%zS6vg#X6vbvhC-yP0FZ)U`IAWZ=yAL4`clQ$Cj#Ni8{%`7tOs*f0of z+98MKG6o$>K(lj4vud1UrBmb`{7beDBvs#%)rzT74-R&&y&&F>>E!rAvNJ%qMn4(f zD|YOLspU#96}oNiBBh~~=_}-Ly|D-DCY7b~&@*_ZUiYAh0vscmqf>!?i0(u$MJfo8 zC2OdPY_YnIm4yxS%pfrj55ipcE&m^~H6@cz37e&2BGy0ig=G5bv3K#F)jn^g>9s3J zRc*4$e|^;}qOm?H& z8hWS8UD&G0>cI&?#p_I^OyU*vS|KNX#OslkcI$-vkjw>FxlFO{zrbe)aFyEkPDIM! zzALDs`SSC*H9`IXC>ThH3-8Dp!*<$s0_~nmu#$6PlWY8f)p@ZtejS&8Rj zWlS72>IzO;iQV)Py~U2atEILo`exW?he6X4)F&PvIC0IRSBNQD|qc z>v-=q(;OU*s5C%JF4gmDG~c-fbzaW4e3|XW2@)@&mN#FCSlct*y%+mEpdZD8t+8&+ z3D-#9V==9TrOAo06d`phKYyfCjg=IO04}HKHJFa6I-Kelv%wndXz90PkkZ9VN44y2 z3xt^#+F68iEsGr-`0NUYAUdIuQHyEE$uD0^MziVlRC;Bltbx6+tqzCdPa|cghVx8A zBdD&=G<%?NYX>aBulEY*=Y!4%ybU}GozN8%eNcT=ye(hOqjt&fu8b>SUpQ!xfXo1; z6WA2JeZ-r4`4A zYC*{w#t;~UcA+q~X}Xn$rPBpSFd`Y&gAcs#!&=!X@^>zx@1j+iYgTe)iPwyqshACV zZQ#73CYOY~b#cM^QB{Y_T!PejE$P`!xm?9C>Ts_e(0gScIS<>L6D+5t9P2f~)nr=LZ4d)?1`Ha@WU1j= zw%lKfM{of3vxj72$_AQ=8E~e?+wokTtAbL8#0nB&-A4w^W204~U`jK_jz5+(TLpvcxtEo@!_1CUS3q&0da_ZXVDR%RdZ)ZK z6N?Cnhe?3DtnVuR2JdP+emG=YI`~|H8IIdWTSWUhlS|&X+F46UI!>UV+J2rYq?Im# zP_E?401JJ+kzR~wIP?)-#RoOgl7jf#tH-ryHbAkSX>hLF zljLqX8|iV4!E=W~V+Bbf;3>C>2s&3l1ZG|85)X10nG@i|JQ}f$+?qJ37i9KWa~(#V zj?e8R8z?qeI081qSYDp%?HnIuiy&Dud+WA!w-00|&e)->maNVLvJ$;{-`VT|*l|s) zFH$;PAZ|Qj!Y6q)owvSwiA~DA8?&9~YP$yT4vIcR)5JphS3KPc>n3Az^BA@@Xos#D z`LF07*e#oV?Glo%I}$R`m~!AU(1mHw2P}5jRmGxEIR)Ki3kOGrZYgYngFAt$4;vQG zr6(ZJ~YnT5hM#y%GR0 zHE(?DN$0OKHN6@)yG`)Q&Q52oEqO7S+D5(ZYFY=5MUts3Gcp$6?HC!U$(_M9 zu2kG|5R*(Om+pvLRcgLZr=D-p4LfPOXCE1yd4p$e`AbU4dk+DI608sAkLxjIcciZ4 zpTSOFA^8bj5~R6#(koil0a)tNdEFK4nO_{Tl!j|O{WcdW=}uCB2X@d=-D2Zs0ZG=B zqh?o5v=!ZrB3Mrg34T!U1 zb-Q6RZ6akhovy|xvOj8b_zPGP9ZWLObux_jBym#R+`0%%RyG$ihtbs0GvS0VUjMK& z29S$^c_Az60yte7VsY>g3q;Mo?+i4Q@6PT@ww3rfg)PIj-v5a6l`TcBNQ5plBtFY7 z!v{u6Y6Eatw<|--Z)~VORv_#kRMP?W-mufKo2ucq;1WouW0!AXr=HGS;z4=t2aOIc zH1=Eg$wDoTe^tLTE>c?eHv(zLE`x77Y5&j5#E2h(Yw=*=|J3QUHY;*>t|zP+4Z(1r ziHHnrOw;W$ZQuf0HF0Ck&_RE{P zAI_!rCWCne8PZ8Dsj`0RlaEl^3QXtxZa8vVnKw5IBFb23t^%MoTIYUZ0*{yeKdPK@ zt*EPcVekJS|Htl1`hU}^M8uhFd)cY&$%q-6J9lulwT`F@@b8$HA}3>EFa@yQ&Iy!K zs%=tpT78uf8tcs?I8 zN0%y2Skr;+qF&9%^gl=c{+pw+q6|gOMvI&miy&z`%i^pd95K#^(W|wPPNG_KV5s`o zlcrZ(`dFR;`z0ZbYAr6{2lr{YcRJ1SW#^>y9>>#);xXEtI@sr&r2hHuWNJjY0;z&; zvg@)zp6^&fY`xFzKRSZd9I^kBZZ)k!4b{QKahM!9SbyRF>1#yG*>{FY+l$Di;$4D1 zSaX)Ugv%nLX*5{guX;sy*VMr)a`^#ESMsxV#)Ofmv{pE}#Z!X`AEyjD*>rL3+&F31 z^fTCaI2JIHjx4M}GKVt#w8JhkAa(|FW2;N4(*QY?X%KHoRuD&M<$G@rmCkk|COHF& zdAa<)dk1U=^dzuf7W&aR8T81$*E_E@d&{oAQR1CP=5F*=vhp;}s<8tXrxQ{KOQ$i= zJ%7&n%U~naBnuYS)Bm&V)3gBAdFs_L=Z6+nVGU^k4z}?Vu7wg#MTqI7!sxUui~{*I z;9Kb@bEQ&s!EYN!)+A=u*J)qPcbRr6iNcab8Hzdtb~0}A2$?ja4n=QQ=$5z6lDjI= z3Otu_@o0km-Z8w~NsgP}wg4SsAQzR{m$| zS>V(UB_lvtN__d*(ccy|zISFQso$3mBEp%GVg?&Y79AIw`^)>2#K-if9-;^`Sg)U% z-&(7bJwPtudKpBQofYPlX*C1TG3%1cD`z0p*zzXO00!VFF^~vr#D_rVFo6D?EegTW zR@r(q)gTSL-Hy_Uq&GEbR&XHf-3_BR8^xTcW{WnAg(Ix_z+kOv;bODc?=}nMLc8K7#}oE=^fX8F?N>PsD=} z4}%myz^mucnKF@7(bEo{y*=E9btN1&pJ79%JS)Z_^@${Sa9@tw_@S`Kd)UDT=uO2h zh0~2{X`3^*&26msTSk`E=HZw*L8|du)TMlto~>FI>#B_yM6*f=SsbVSap98Amt$qL z?jYf`3BV#kqEIc}W@Jrzprt_ZIjj=&-p63*xnb)ww7L(c05R{ASiTE=h)D-xFVk|3 zKLKtE1y&+i(ItaHhJmCqj$MlGYKOe+avIZmNwZ?+P#&*~O`U$tMR9u|6Y17w7&5R@ zB#XC02_;~bR~j@!2Mz;JgFam_Q&1@%P<8S+hRK`lkgmYDLhFD)UoKPb?LIv@S=vtY zbBV(kGxFq(l*<{q0)G+4kNtIBdB*h6gqn=oSPQB}M})byelc zkV%#3TgK;=R&bgJGj{=ew6)v_AL8;yWn!wN%BgySe+gR}`$2g{}p-y`j& zpY0;Y&4Y)fAlC|u*HnhLd4T~U`sIH$-Gq0L%{`LLMG!T?v~+m3!a}a)?T)|2qsgN${_<>HskKobHJg9K%JKW zo>wV@qjA@8)3`bih?Y1bqV^0@ROJmuhXa>kOchzo#3Gu924^BNUW zF+K!NcnXa>8x%(*pu&KpMl}+@`HM1pBolGw^Fr3rKv?LbhX&n@=2^QOhbF9TH*w=Vy zw^yARvDx}^0mIHdu+wMB?`gU|^g^H-w%KOFXsF-AZLknx<)vaO37zTjWOges1AwHd`kSr!AifTlh&~p9wBpZC1 zOb$Z#?94^1vuU?6&*%H~6PUewatq4R1*ExMW}X5TMxz_;ZgsE`15Iv+-I59VTn!9f zwALpZ9F~pOD2Ew@Y*Dd?c6F&r9vDZAky$vU5lwD*S!O>@Iz$Z$aFFl9e%~Fxrx>CSrv73k!?Y!c&#H&smRJTSplAP7M^}gNz4`EkQs3c8bO(#dIWn!gwh)$hO z=;LL45VSV(-7ZK-mbqS-QO;2jba$m4?aKGv`@88L5JA{u`bX#=;ZoP86d0!#+x;CX2%oc6i}_5ePz)!ONwoKofOOc3H4K7-p1@P1a+0fEEUk;(?)HgxTT-k zVoeZYkU;r6)29<;3{E;ArF&(IG&H@>CF?Rw??gDjzyd^EqOytV634u#+D^v_R_?U> zI1g_d?hS^#;A4V#AGp{88D~X<%l9FZ|JKd9YZrWMtoK|oNXa}0G_?OP&Z+!1GSUf_ z6(*hLJFr9iUm(EA|Iz*do!|yInh4Qld_5=nP8Y?<+D|)WrMM$$YP%yq$S9nGD(9F+ z(elz{nnfWzA4aC;)Y&RKC3dM}R?{0RT~-mq1! zDMNP*bGj=ZaL0_oRcEvYVX|qC6#~W~`k_H@hQ)D++_3PY#8hKvCzd%YVnY`Ov9qob zYP&pFe&P5wPrRDyM7KB+=v~HXa#&(t?^0cI>GuKIwX8yz?81*=C>{;xo}pioOC z7pXg9$kOHnspyz$!~oy>e@izrnap-bv~}+6WWdgZVmjG6yp7DMbv$mybsKVVV!is~ zO{RKtf~B143O0;w?rt){tdB6T2}sdPSr37yV<0wrM2x-JL2SPd5ec+=p%$)~n8|Tc#I(M(Ra`$TL$JPQdqlfir-d{%EUoTz}Q1~fm z#*CI`rUu_FEfoWdESQ5#WJBS_>k-Li92BVO#^a=OCIv|fXRYuYP(=w9w>sONrWUQ? zl9Prj%{k-gzUrjus3ssuLBYM}!U2p(Bw*>xQtdpB*khQ1+kL8xctF@%_1}5Vyiln@{WOUhvAC)jP@pf$3oCQ@|V!ZX%%1{zs z=Vt0F3z!Si(o$;{p{w{#+|ZPuPR9TV=>a>yY+GDAXMml7S)+p$2!`vK?PRz9Kr&hB zfUtFEbaQE34v#rb^e10UN0Rmh-X|+tv%$BwlY*3&2E2G-Vi2pYIjwQS=)%}~UF^kD z1fKbn;TmjB-Mo)&3?E%N2JF2!$QxTqI)$|yNA%C`E)L}7dtnx+`kk{wC-2@tx;e=V z&WU7?n;9AHh*ZYsMIF2HMG_}qb&{RsB5i?d;92IWdBZr4(n{f>S>`8y*%Z*Qzq=JI zJh`?ky_#=`F%1UNco=m#BWl~NuwlL90f|CV!m^~b2-(aQ5=6jJsv|Y&9_dk98_*pJf_frAIeNUt43GkEl? zyVLA*8@d%{Qr%$}ffJfr%%xn;i^)8g)p*c8r%?%Kv@eBe?A zZY*<+l7XV_zsF5AK!XZEsx{`sdy*k$4~hzOEDIg$h+@~E`s)o6ufWAVzrD||tnH4V zHvNKpJq16dA_{=H0l2-FWqU%uL?Nr?mLFN)_Ho=}B?2RfcN^>2g%I9pqVn9rmUDcA z!8;ENp|d$>jpeD9vUJ*NQ}{4wP81vol2z+-Lf$f{`Wlhha5|KnHWYp?2Lmu8owc!4 zt-o%e>Ln+w#w?!&!d|TaJ+&a?*rd^i5~w zWB61>bRg%4MQ`W1LcqG+dg}v5DT}cYv^6N3iEHzV8SPHDfCaAG2a{oeEJ%-ngmcg` zumCJm`2h%@$l;~#DG&-m+o)eQN(m`B@l^F#tbe4_f88lT5A-QgJvY*lA{ z3!Js8+B^DXY0)xqOS_TU~kZsSsq)o7DoN%&>KF0y4 zxiFHIB8s&u94M@Sk`He@=;?RNgdNEo%LEiash&CwMg}!ADjg6));Z@YqM10G4a3F& zfzVZA+d(;Soi`YjKKEWeKq=*$nMVaGS9#`=G0E8AhpZwP5qu|_%SbK#$xLj))X|Fq z$+*Utk{a(TJ2HXlwv8(%!L_trj8xuuaFiwa`9R0{4R}U;VIKorc~WxXyie?ui{Ab) zw1a~cz0(LeL05{HN4_Dm?9v9Qb1lY+^l-acyYuKxhkwnux^$~t&gvEqH}q0cXJX1x zW_7jf;F?he73%;bOM?@j+Oee3pl>#~9|*Cr=3ZD`g541e4V%YK=f!xRs-V>A z6>9FOPEaMg6iV&;=*KG;Be{}CFLJazBQ_*! zN`!Fbni8oaZmUhkMD?TS7>Z+0apGL()5XQj4+bSZPifT|c~%1rC=eltNE$w9_D&4< z>s579>lY!Ej#Q5;=0UKxhEBG7w}k>}9hqXMJXJqB@Rd1|7NI~M?2v$GHvS*nUvWBveLB+K=N3JtuA(>4rI(QUG z%s~85e+w<}jHy3y#wH9D9CVafPTC?6Ro3v62ur~aEv~~uhkdJxmV6*(+ z*$~HZV&36ZRw$;LS1)kt2y0;^)FBy|GA8(iH`Am?I~>V#^C8kvnK;JCYnEZCxD? zl(7^i18^m71VXS4RQ4uLh02CZI(Hv-{=oVUzAV2pH=rP6Jlyu??0%4uB{xAhSxq_e zkJFf7W$>Itqce3djtU6>?~mDS&R^BUyy>!4bAUSa)yv7w;&bh7m;-o6pUt8>l6Jem zOKWFmr{3P5T_vcDDd$P=_U$(fG`zj*id$t7ZH{n?q6gUn#3phc{Rm(!7jAveNZ$3m`x_-z~?xc6lz2*=LBOXg4!yl8uDxZ;r5};myXuJ~x3f zml?K(NSUf+TD~;WkZuf9qy)G$I0DDQQ;u4l!h1QI zNjM7?CU{=HNAKv{yrm?hv>3S4g`fVpABIk(M3 zdCCx(UpQ7K0y*58A49r+?>>6_N;aS4qXB*wg$H0Rb`1wAilI7Gh)gg6;~Z@ag9-*< zA7Mpwf|V3D1=Fu}r(X-_FpcL)(^NE>2s9}R|a z8A!ObBu=%}Ofoo?C!C#t*Q#=4yiQ#jHA+QtoMwR8$|A z6&v%rvk6CmGT3gM++bZhec=1yRiFMzc=})cXxwx7_kBNJ_#eI$Fa7zyH0+$`8f9C> z+OWk8comG4me5W|rkDn{ksQ8%uykG5v5)LeeJV2(c=O*ufC28n4&7-9OZ3@};SL)p zWU0Eny);-ubzQ8J4j8?`_rwhwWqEQAPIUc(?Fm?=TnmTszB{$n-#g_xBoMG79O5)H znwFp(fwO40{XTh>GxvaoJ^1YmraDkNOaMM;&-4xf#+7vPSH|44W;E$)K->2Omu7Q$ zNg$Pz+7YR1KW4|k2>DEWmAquo#LwmY=>y*fulbLE1D^cc55+4z&foI`c-J5P6L|5j zeuK!H^J(#8xkq!u#^}R_UiGVg=>u5(>Mgr^rN_(P^!M??=Y9ds-}kl{Naub#75k_& zJAW*AGRRoTncF_?fL%&C4h+DwLk;R}LDXhvM*|dxO&HI^;AQ6n+XoGVy_4(WquoB_ zk;!h2C9V)u%YW^lhclDAMB1Cwi{p{IDOg-@^P;_I}$*Z@pTLh zdOI6XenjqWv(J)KMlavq2hZ$lpkKBUS{fvppW|Sx_CZB=G?HRDPZrMR!C)obVkUaG ziI^Yk&0>6BFl+aBWCVj^#^{4eaS%Ud5OYQYkZADf;MBmq4ax%u$6y-SoX$5h4Vr|k zq8D#@g}(dvskqodiF6=VDJ7t*V5n%4^g%b65hIs#Pd(J9-V-6Xl|ig&5ovKdRSdl$-Le1g9^lum7pm|pND-DNKX=6tLC)Gc0vye(x$qp(MUdPM z9x2=oeOoE3e{70v9$p4XbWf9BlBM~XU~NW?kRh7)HItSl?v!iPZb>p1=h~o14P0bT zPHGMtY?22FC`QbZEToM%vF7!?{^;*`kAPJk&;Hg=!;=sBN!tkRjH1L)PP5sEn<8Z7MC> z=W!B$1J`V=Wl)Za*f!{LAm>zA2kE)3p(rIwC2x-ov3*8Y?T_Z7I5v9ksq^A935{fm z2PlV5DV@6a7H=9_Yz=$Tzep`51?@fDPQ86H`c`^fmH9>H9lB6YuHcsSp3@c>0(8VyuiHgA(5|GmI*j z%h?RZ>3VOoq-XB3WD3;b&EDB$0L%(}rV84FXccp)sbT-kjivDX>IpgHkgxb@amKJq za$})QdQ(5k9cX8;<|Q;I0QH)-U;b_|I|#r~|Gykh#JNMj{+3ltTSk&>yuCf6(|f0o zLy%oyP>Mp|I+0)i@Xzfy4Uw`LO&+rW0Y(l#h+7yU$ui+=`R*xM%lzM4K_HS=$#TQG zweg3_9#%eQbY_3-3|Ygf?Qu^Q5YNph$Q6A=9rDU-7E@KuFxzFOky6Aa>%%VKtNyiL zh+D@?-|!Z^^iWKH`Ju3Wq4e}G`UpJz%RlPTK2LqbhvCUb{4~7$cm6>+R@W3O-N@v3 z`QgLcC%^O;nSH?fJxcp>8^cR~?l0r~9sd~T?|mCiKjkOk$^Yjg@zl@$>5uk%`rrIy zy!hw8I?a$5U>%63t%2W{PY9T$j@h1IZE41o(gwZfe#FwAO$s!5rymFe95lyC!Dz@h zx$}(dpSMxK;S-m(`LIHmTFjXeUTQ1f-scjV|3Tcc13Oq$lwO@7F$b-zV0(Fz#M#k$ z;(P!^ds#|vbaTATvB1tl{zif{XaRgnQ+w!8yMrR6f%E&ANGrZg1vgT7ASmcLhZ`NA z+V^3)IkrdHQGC%=5#*G~M-@O>r@?*kN8Uq^tfP1#me70#oqTv}E!Rg3dH`WSp1;)t z@I01X`P-kzJN~23$IIXFt)4h|k>Rovc>3di2Cx16-}z|&OFiqk-}?7En-DhH0Wv_D zU3LW@JI>$nkMPdV`aSS>JXiX?>;}I0zyF_j`d9rjJoE2<`qjRdrQuUQ`)A<%cfZ9- zRmPx{w%iwOPX##vSp-h#8jA@`N6T9pqlG7ZL~ln#>QXMn%9?G;^ArklG1QofT*u6-l5*{7jp8Tqy8mf{;s_ z1e)s8ZC1bi5_hO5nch2gORHfMgPg13@$=lbJL3cMi{FQTPk;2!!DGjB|Ir`8`5WJ| zL`BR|40E~X>K&i)pKiA^Tsxln;Gcxk>t364*OuLpD^4x_oZkO^ar&u0=_%V*et9Js%#o;CNi~rkK;@yAX3-H+S)Gz$Vu%y*zIcItQT1`n7)5g%2y80Hbg$%8u zH9{=~x6b=-d&sgVXx2;EZ>D5?XFA}+9=t)11~6qfBr)-0r(wZ7i2o19;YaqoFLPHS z4b1|%$DM-L}agfXFWA|IV@Rfi4VJY|zTvu@1;$ggZJdbz&-Y>pN<8trR z=>fFJY@6BO0VL34V0Ag(`8i*>GAlUAWkk~O(x3m!TgG+mc=8K>LGzcH-zl;ev)%eh zvJlHyKus*Cx`SsH584)$hgw3i!-=0{=fcqdL@%Crb+J9pt_&RmfWoa#c_RP=-C&G_ zs_d*3Wzu7l;hdaVBM(7^Ieq7q1|Zx4!AOs#ZwbpQ3yCj3lVcZCK0MaBupB;+UKP=^ z3V}8d2_+KhR)JE?z*EnE*$1SQA_Oix3XMS2?G!zK#fY7*qd6l(@NRXlcIBszk@mCS zS-ln^>-PD~qXd$w=QNqHQEzrg&a&D(<@^Lwi@=n@*^747*+Nex;RBdFb|?FbfB74b zAS3mS5uIQDw(s76>)LVoN>4$s8m@rvWuUY!0Jxgv^nEuOsV--cIf)zfW83I zZQYL`3+c<^R~7IXn|O_xmVa*lAF-N!CJc3ZWBS{2$ZV1AwZJP*)FYCKay3kKRROm$ z6C@y@kkkSOD5GIb*N&C(GKqwsBa)(?C5b?iAVUEz^dX5QI~ zrDig7YZ6}a64>WC87%4N(!F3}wD*KXkLPyvcM(&@OJV+Gjg(|OIhWg+%Tn#JCKeSJfXQg~a0R?JG50J}tp0FO8+cEm{oR zMIRQnQIQh&9GNv+U_XOO50P_b(r@vCj@{9;0^B3>>*wX}esGO?82eSubFXY%<{VL; z08A0IIHGJe?1Lax{B4<*p{qb-PjS7b&->gy7+dqlfreO0T*-?q!U^>?rvy?{Tce_T z8=^w!T2LU%nr~K9L+weCI<2q1)bo-NKnW`**n$zZv&q9Y+?+$pX|* z2N?&YMHy{+kiy}D^PpKv&}yNZPSG+ltn4EZ+sOEdMJswmj;^+?Zf8z0M*4qDU#~RE7G*UN4EN7LOr>37)3w#g1*; zi%D_aWy+ebj4nBLD$P|pP#el+x1f9aQ@)RSP}dG7niwrr)rhKHCSWH}g#u$KTxbH0 zLORVXQ*h&C@Y1-Wf6~o3TiBIR?8vj2(zf>XHq4x&s!+_kG={Ha*JW`dHI%^Gr{E7~U?+EQ9P0bHgfDn9G-J zT0q;$ZnhlGL7Z&1hY!20?4@*KLq-SJ!(v`6!7Od4iCfCLojKL>L(AVtxm`a_9#@|r z(;0}kK8PM#EnW^`GlMa@3pc&xSYNw?*9ShiSa$F2fI4;^)*#o|WFx(1MC0Wr)OexH zF1;DCh@5x*o`()2HF3ikNWPDl~q-?RjI$W^aDycobmW~KuzvMscC9zXLcJX zjF8^yg_j+G-^q_PW9Zt=qQG1}dNAHw>ZXW8N3kzK4d`W;m%;N+PWwM$LjWQU{GaF&KRNu_sd%1XPW=m>*m4cM z;T1{2y6VEv$;|wWLW-vfM;lQDlR>p#o3u0mzYOKEz_++veM3VKH2%N_+4H?=m+5q%b8W-(abMCGs zhiWi()Npr{dBzfUuMZSR-+?qP*Gb}XymQ`fuo}s4Fd95CU8*iVg<&dUi zI@|8zW^HuvVJ*9(JfG$+!FkDH&G*e?ST*(3`ky^cB?4#t4#3C~yo}K9;bw5sqd+*a zLaqMCix{u@tw2|X=aQTOx#Viy8(lf(B6(K+LFP18fJMnT^>)>F^61du5n;SeN!CC7 zvxhW{+HA?X_-So*CBr3AFyRhJ9|M0TG#-zaadBT`Ce4oQuAITsC3kkCO3kH84dlHu z$ipdw&_DLOTvAXLQ`@PGd68FYZEeqEFGo?)Wr7e#)j3gX)~&|hj0!!b&4}wRQNA1{ zck1&D)mNMt-J5?7e|0JhH;PY2^Swi*h_psH``F=Xl_=Juw}C+UQ95Wk2_i;>N8q?h zC$j`UxF2e)ts3zCDl=VM!wzUve*~<93>OqOi=Y*R42Plg%_z>@nAtZY?X-qj)6=e3 zzh)#wI9mRjHFUTCAKR6U0B0kc^*O{&a3y=fje{plmuvLiP)NI5(j5&e+R98W6(4>@ z98lcX(!hzIz)7IvjOw*B(TdqyYqZ&~D;&yep;hR^64?sDfmky6Dk3uM^F(=p6h}fH zpKBBhrhQ$gg~fN6Jj$hRBv{-~ux&{gQiwxbKR83o_6)Ljax%to22SG7Z}T(KL~$M4 zCd+f)i9s8Ezv*8TJf8}_Y6LJZ`t*%7c= z@Sn0C@}3#<2*-@GX-*G*+o$*Hbx zyqa3U$k{f<$XkwNp=(nSjKt^(Kvp*SFxZVZD=&Y+9hlR^RpAi_g}Gmqyr_Zof?;en_6iW z=n0E@dR%EUc%9e10R#qSF5`#uSc>2hA#Fs;)YVah^NOIxg}l12&_^wx3-~02aYR|* z+G$vigoCkDo-|))MWunn1KN1lnm>m|Q=`+R(<6%>ywH4jcpxVxcL7Y%;#*15p{aox zja%)3H=tmBc!!qy~la`T|GHaL2Oagik5+|2>j?Ybx?%|9M83r<9kr6d* zr=?ZjK%BI5nYD{WWDipRvf^RRH`HTDH!T)WVA^0^+93ZgAY(lnfbvBhevCrWm=qWy`|&DKrea1|AJ{4Qc= zpGJVm6etT@XwaEUolR{)YJ7l9xM$j9Gx8aYJzZ=uP_%onT#^~64g(`YcPhLX>%D`@ zy+Bjh-qy|fPQMHYIo3@&)^(#4B+hRa@~7qRA%?h(#F~;*fyDhbAaf=lXPkLP&C60> zrs)pPDtjn{>DoR5=LO6i!I|aOrh+fnu#*BQ*L}K%TB6g+2G;~eFRf5Pr!u85`d%np z*JEW?PHq8ICR(P!KI(9>zC$xKP|kp0s6|Qt-x7sz;!H7NR#Dz_REI{Gc9a^VfYeoM zt_#*u)V|(Dioh^J<8$c@c{xg#&iPFZU;fq{L07HlaX4BmLW4zez?roe5wMs!uMt}) zr#galPc#GM!cKe{3dW>>8{xe-Q=--BWJXTjjjtb<{%7~fhMcrR+fw(XMRrWzB^`0# zULY<0@2`JdrR4fiW{Lm;x)n!q8~L9lpq0*qbOAL8T#t{f?s=|~HWP^kJs-WY2>~Qf zQNIpA&99L@jrh;`aN;0snxaK#%?NCu>+S={#su%=H)K@zLY)KO0&o&8BKlj^aCgB( z6u>_z>?u4`ul7p;tP~TXnZFBLf=~ zr%M>ve4Qr_T-IpAJeX+h>apbDWtHzxfk9?2VT<|5zMUL9F}Q++H4NrRhR4#E9FVNQ z1`}kDoz27oPi>?+^?iuwL?n$(0Xg_DXC?oid2)$}a#;5rHmzhL?DrAV^Inj^U(th&uZkG= z*rXAK(ql;`0IcBW%q;eoOym(If(1$AZ6e8X)k2iI9uYMYfbM`8#UbKd`jXyn6NF4o zX9ndbH|dB0b4^gd>n`jok8S@ln*s_B+UT59ax$A!3Ez#gzZB!;kOIcJ^cdi)c*Ss$ z<{Jfs0=Gnm4l$r!6_9p{Syy>Q#1WzJn(acm(tI%Gyq>#Y2c}cNSaE4^5QCnW;hMza z!D>FkN1Iu8ME9P%Bc7}3UhAdFY5;)MICa%bUz0CbJ#nSS&b|~0ryQ3yXTJh4Lmoq+ zeqD7fB-fG+EK>67F8tNC=#vr2OoM&Wr8RsH*UJvtrpG)47>bA6kadbDRGv$&QK@sW z;YW|m(nPzSGI;s_&BLI{ad?2NEDd)Z9UjA(D`2L-`K(}2&*Mm#x)wQYM?mD+Udpy; z9vQ&$Eb~(^p|%nd0J~%Wkjzl7kzMC&`hPe}%hf1bndNXB;nf>bYq@APmkupefVC`3 znRm&sMkMbs+d(07xfIq>@>D6xJ}We=oV3=Na&(sBJN+)jEeJWE&-uBmy&_Zwl+wFe zlk>TdLF#egmZb$N(;c>BgSnc+3=xZ`tkcH5Jv)=_6y2C#HjXlqjxf%4-3+eQ4CrAV z5`fCPZyd2RTcF%^Oyu15KsV5)3(0+?f7a_ggmOUXyuPNvHgM09a8T@B<)jlk1>z?R zKH_KO0~kyHvaC5fi4>-=tF2BI}87>?~N zwyIj&w%spNte60jSNycHZJy_RZqh8edqw}ocJ;QFwP=C9!$lEEFsX(1-gF%OTOyJP(c50;=S|Pe!rTmU;*KDy z{3GWjvuTNKMq-VKc~r)^QTUycaMPu;mGvTvvGv%6qc! zplK{%9WCYh{;cx8>_|Ve$~tmhKh6%x8WzDOD6Tw0L%Ac)i*fr(wcs$GA_v+kG2h9Len+@Pw;6P)liIfv+#d>5^C@(&pRXr$CCJ4((h_l8l#efF1n>1)nM;ad$72H$Ds_f1n!J_F| z>lG|_ywSzMcKY=GuZO+<{a_ETc*i^7&p!wMuJ3|B_gptZDFST-YruxS3d&@o*)##k z8I(w;n$cW>x3!Z}Aih(SPUvsZ;U)=&La?LIyhuWB7$aeVd<`(4<7OVGE5H zHLoGxlTAHbdQZVGzc)y~Kp$q&wG-zkaB=!@+8s+dVZ-4v2#jyFBoLIDhju!{7FOWy=i`2>kUqN&MR#DLe?!7ATP)W&0mF= z{?wn^Xm9g!YMap|V!rBp8UeuiDKMulVS5Q+T-53y5ow!MyIqi5s9eAD4f3pYoK-#u z3k+7x&Zz^P6VE({6>Fv~^WYRX>u0_|KN6PC=m}JGq{TbE&#Wzd7G4JC?c?M;l)q=K ztF-2d%$uQvR8BmwkWy#M$vs1SIF%SR1EisIR4N&RYNlVSbi;VBGWF1Ad~aGty42C- zc=AC%7VrHfzYVYXcYgUzu$srK9zg58zv#2@^oRb0Vzf6c0L6fbpdp0a^lLfl$qZ>& zX>Rx9P1XDQt3qrmxBDv~n-)$?ee+I+av|-@t~la*-)-(~*QcNPGw{sk|G~S!N_c+& zxhKEoQ}N6n`a^5!c;T0SD{xo2RhrIwEcW`M7@vT-FIh*OJF)(8s(wDgols4cX z&>Kf@lE6EYrsejL|C0%q@8?NM?N5DzAjfqG$ZNlVJ+Z_NXAUoSLUc@JD2vUuH)vM- zS{Dzmvi^^h(7m@oPN zG9@OUCuOKlWL8@*zJSWuGihzO6tt=4|I6dZY|p6Ioj6Dew_qZyc0*)=!b| zg2dy595Wx2dAWlEv9oxpm=i_5wAaya(S7o;^n2!We$UnA-(BOr;V0wi|MK^409Ke^ zN^Pz0;>ig3%wzIg3q9KfP!Xm*nF4lPVHvSzJ$=aX9o`34tGON==hV`R8E}7YTf6;G$$kyH$ zgIkKC28jS-NsrK`sFucUyG@i=aD)Qptrco_j~|b*Yy7-7*%TJdMeO@=o zl&d-eWf~#du+xyVv`<;LE4+t~C%@toVDI;SiZtPbS@6uFgL%%Y ztY#AFF*BdC@0dJZ7Fa=FP_Lpc#HU=yb^@}iX%~XUCnnK(PVrs!EP0dU15eV%Y%;Ty z^CXeUa|R82^a7x(iZnVq2;P?y=W5(Fi-?LD7UoVybls(mHcYFGy^vkoXMD^Ir@Ht1 zCF|Zv<`P!M4#io7!0ir+qRYyoNU_HEXMf$t+;pdR{fRf@-CzAp+bs;2#+O>vt3U0H zc=p%6@zH+Ie(J~JU4QDUf?uG%r;&D=con+1u_6qkq@|I!Dx5?8y#Ns%Jq!S4GeP*Y zFA^MamAl7HH??iJn-^j!$i@^qr!UpusgL``kJ7o^YxVM*z8o+A#joCOUAR!V6z8A% z*f&1>``AbOK7f|J@Fo8ZIi#0u+RChCffMYmkChuZxz(a`*)8Z_)JA^IEHj*NeX{G? zOlnZk@qCP)uV?fPhB$}-NnYcnf&9N)L2g^YLAn=XoOXyg*wbq+{nvZq1{D`N5p=pg z<5X7?lVLajiUR&7&g*?KaW?+dQ1~jIsJ;0Z>`2p0gwW9`GBf}<31Jc`AArZ6dE?K< zW5+xG)Bh3g_}u^X0j$2gaQt%r)pMWwrTFLn`hN_6`}0@(UV!cCpZB3H%HkW8Y%P4b zGX<%g(e(jN`mqXurW1d7I5|PCk=F^zsbY`L@8qrjt`X4S++5#0a)n7MX|M_^PaeSP zvFz${yTZGF%V*)mKl!J(_bI{oo4*Awe%|Nfr7!+sJa(Mk_;C-ltoPbWPWI(;vJ;K2 z4@sXD%#ECnGAeHCBLP54ZKP9lPJw7q_1u}U`xF3H70~ei@CSlnD^qF$#du_8-uGUF zP$xnb88h#oYXS0&?F493ns=30Wmw|Z$#)r!vE306SlnpKI}3EX#YD@N7W0tig8D6! zv3Q||BVU@Q62x{}%nyH_eAth}W5@Gf_-FC1H+`+R8e{3@X3@8Q))ziX<5eH?bC#;+ z(kOAZlzXQ`k8q{6P%D8SC&wGv63E!3%rKOGg;Hk(W$MXnWncFKAIiR@b&p(crE}7Sx-gKS7rSSf+b7))Ek=kuQh%)pJhGWX<`0fdfV1y$ncjPyb4B@VaCv(=wf2VlXhE0$dJDI*Eh-GSGGdcE>xpMv z+~w}*4D0Ei{~@?`oZtFGc;_GcN*Q8~d>Q1jOnm9q9fX)>{-!zypaJLC*RNu^dnyCqTs&2_dQDb_@# z1p=5>4Z1dx9pk_BZU6KtohKjq6LYy%{W7-+ZaZq-I@ZP%&VB^}tO_AJqdaJIyDl3}feE-M_aE?oY) z?{CobfwxBIkYH5dTvsqer3OqEIwWHtA&*A>kE{?-n;{El=#(2@rCnm!{(5IvY61F| zg%_vh8w`uPy&+dxH}a)%3k?B&eaCPgxhS)v_c9hDyGnW5rg8eI?z ze!Pd`zd<)|lH7QG-K%l!IB&Hnlcj1?1b8X*^0)nyt8{P>jppS}C?0q23xHoXj!)Kl zNn@wYlcR|_%+8@1RYpBRh_tD7mLau64#l5_Vm)BnZ7D8oB%jl8m z2JO<pmChUL3j;Lx)Ql=9X#RlO3Quo$o|Z~X5IVD z;*g9DfI>MYhpKznVh~slHEaew#z@e5luj-0gPg2a(aWPdn5vON$jI{DWU$AN^vP+< zRa>I)a2GGTkj&prbv#CEY1FPYX{U(>^^Q~4;r~OuV>I8}DS<*P_lj&4^Bq^LIayR- z>pFzm@u}z&1m>evWPr*+y@(geC%OiM9TgTqW^U2++95w;9t3PY^O+nMIkDEVMKf8S zqaBCS(iUq85EEz_k}M}iSoCtTG*HDQ%H4&j>ql1C+IiR6jEJe@8$?D#tI1dH{n%ur z4f>15iQ)@LRgP)Y!7ooPj^q$;bF(uw%+UZ62f_=&*%?H1Ua&9Sx};~!yBAN zdRhZ_USfP3(he6drdGv5*PlOWPh7N1#FxsRWw zQ<*|%Wj33<5@$>U&riMk?0C$WgqmP-{_Q&59WoMvcg?21i?>MH{mNRl)3-2E*IpUi zWC^5*I{K-)UE`!oX1$QPbNxz|?!=T&1qwYM9O+IhJEE4{d^deQU%m8E-=*KF#s_%$ zp5BGE{THzW%zY1q@!pIl#Rzs?va13UPayCH(?WZQoS4RM@&H&XB3l zi5|T%cQc%#Qi)?wq0qou^)Z_{ly~5gh|`XDYl%~|NJazCQ4+>|M#8H|I^p{E27g(Ln1egGjDzc{n02&JQD-D;&%b+d-%yu*G9byhSNK< z24=IaXX4D0xp*iJO3h~S<1EdIo;z{QVBPE}knb8A`@d0yjmwmI^rl=ElG*>6KjJjf zG7Uw`C;Df;(zqae?J^SYR9uAf~y_?ye z;gj8Eu;ueh8^h7^3Pp^b7wF6<$y+ANk^NeeJIp@E3SCvm=O&iKZa6jNK^(lcYb^A^ z7<*bBi|U;7u8~#N{U{x0J?Wrj1}D1@A-I!_LGN+nNN_y6&w83H@ovb~{-rb+kK4TW z)Y7#i2p4}4l-p=|U-tun^B1QzjvEuMm-7FhzXPAZ6mKTW|DAX$3LGqqp7K!szy6)r zbGJqjju%5FQK|GWmMfWc2vnOccPu+jC-=DJk6uOes#%fn)WS*m)6gt;M=s->>w$*r z#L)`F+lcmAQf3P#OII9@j60pj4xSO!j_xvRj~rs3UV=yv@OWdloT!$<6)#lnE-#PM zLWX@g%SH4KPB$slxT8MlMl^39X)`R66R$DIO@8d^cVX{6hNVYFA3P>1tYGAPjuv@^ zCma}Z`88aHne4_+iANN##1B(Z48)eeX63V**Nhr+@*Ev|MZ#Sg1Gr!CR6?A34IP-d z`DMZn-JWl)&}kgkCTYe52A2l^OREzTtLrINPM6K=7AtK!R}&4?!{;^{xg<|{Et4do zVH}*SnFhb*s>|NcME*OB*AJGQDNE70L1PyLk`*#G<8zPk1KOPhNn|>oy+Lq`Hyg&z zW9{D^k^sQ4tL=dP{FpchvW^NA>BOKz9?f6p^P3oBkDA2 z-^W=DAt^ia?KPV9PW9xLT>m z$%VMeG!C+nYNV3&ODcke5999MePdctqikx2$kD#nf0%Ap?NGye(IOVnn>0LnBSV^f zF3Z;sS@fi;VO=|XL?carbTi=|>+gP?Zs+X#ZH5S_jty>I!(FtZlUSZiH`KxJJ8XRN zY5$L~lF^87bVj&x+M?aeLTRbdevqNx_RStWIGwM6LaUA$Krw@wi9ILDntrFRxHf!ZCo*#Y5`N-*SMR(O%{2;IlK=cGyn(*p2gndUgjtoi&qnRv1~RaZr6Z z9-sadHI7n4@7JlI=1Ep90t&eA(9{*Z7)U1$#}|I{>rKbJE|Uy9&!i>;4m)KqkWMT? zE;=`;>3ABzdgMwZ(qDb}UO8T{VI92a5ydQ-Cjg!DSBf_heMbWt=O>gYjR|nZ*OQ6z z%U;%1b;-E(*3i0wR>~vIGb`?yi6i99b~*NBTk#|`Nw!|tMP9iuE51rZnOMopPH1IG z03J8|&f-x2OnO<5_ZXqvIrb!dxzMe*u1l;(Cp}fVY-fbl89Yz4x zvq#Xy>NYk#?7sx_Ig8HB2q*gkvT z;Tb@?R?_J~Sl7<@uCQY?Zfx#k9)KUwVdaWk)ZS>)CXrVGIhUXU<Q=K4PUC>CO{Kz~{>Yz#r+(az zg}?osc=uQRz2dWqgP;i`dd1J9M}vQ7!roU%W%nLyd*8J*612^MTmE#B>r81ZmsiR) z?3HrG0|b9X^S-a<^dz2l>`+VG9J+eDPCaKucLa$El4SC3Rd~Gz_{dh1xmrqPfV5S- zq1wZ~c6(`lMsJ3Q!LLs&Gacvc$BdCbn6mtUfXQm5;zKvRg0A`LwO@^$0j5MX!iYmB zp}PW1urYp@FdiH|3kn5L1XgAI$(yOotoCO|>^3Y6>igcdGdovh3!6AFtmN9ibY4+=qzx5%#Q+8&3T=1o}&AY@WzW-IN6TO(QP8w znOr%@9W<=rQ7w(-yzk(Io_`9hu4EnOK5A&2HL>}^h*8R@&7L&r3P|0C1>AhiqqRD0 z1V{FNYa0B1BqSOCOq!;h)iN%(ok0~^^_!hKGzmfirdd33G%v6nB=MsfO4zTt)zgMc zSMEt{2OC^M>_DBwfF6jVhfDMdy$Pk#O95dITs|C%kO@fuB;%;2ulrq}C}4FtE}7Q< z>%aRg$Os^7bMgQI)<=)NZax2ShK+ljsCXEF5=P{yxEtWm)uLEs>w1@#L3m|Htj8&N zBX(~S>p3-O+S#S)+ccaELiOP5aX{V8K z;WqbKG@WiBqlF8KLW_u}SESLU4jZ?;qeM3krSZTG`;sZe$uYgx-qtVQzG{F~9v9Gh z`tlS}LOJ7bdzqBJ5$1;Blh$%C+HcmgZhWZ>vqHPB`@S-v%_!DSv!llAXJBa>%C8-=_PBBZ zrfbLcjH^quqMS%YEoZ%9vVD(?^Ng12?QVb}?&Q5sl=0gXoE#y$MA!+kcQTdH$7v@E zkR|5*%ch7#Fz1vE1R-%;TYRT5^MF~5R1}9_dG># zkA$j`pmeqEZUb>c_#;~K;oH($WFnooC2qPEJFN&)dWp1s>xGeT+WNM87&6zkcExaO zY+tSK^6AhCI&&;1^gDoR(2~d({CdiI4}ohu2Pj0r;2v7LQUF<7iS;mdX1DZY5^*KJ zwyYnw;orenMPS&$E)sAT9i468nQZy$Jx2iYz{_BB81}*82k&e++Ojj6lZA?9Cq@SA zBbsm77|E3*mE&bV3IDG)u72PCuN?F4dvUKUR5!DE?_&5r+2?kiceBVZa_kcXb)AOo zb6vQW)8SZ-T?#Dg-VpvwS`Dc(l7j^%;GCIxUYY>8kvJ`SVj(u)CVkR~x1r0*?#2

RzkWw(<`_ZcZmJ#2hr;fOq5w(KuE_90l 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 TW>U dict[str, "Any"]: ) +class MiniMaxLLMParameters(BaseChatCompletionParameters): + """Adapter for MiniMax's OpenAI-compatible API.""" + + api_key: str + api_base: str = _MINIMAX_API_BASE + temperature: float | None = 1 + thinking: dict[str, str] | None = None + + @staticmethod + def validate(adapter_metadata: dict[str, "Any"]) -> dict[str, "Any"]: + adapter_metadata = dict(adapter_metadata) + api_base = adapter_metadata.get("api_base") + if not (isinstance(api_base, str) and api_base.strip()): + adapter_metadata["api_base"] = _MINIMAX_API_BASE + + adapter_metadata["model"] = MiniMaxLLMParameters.validate_model(adapter_metadata) + model_id = adapter_metadata["model"][len(_MINIMAX_PROVIDER_PREFIX) :] + + if "enable_thinking" in adapter_metadata: + enable_thinking = adapter_metadata.pop("enable_thinking") + if not isinstance(enable_thinking, bool): + raise ValueError("enable_thinking must be a boolean.") + adapter_metadata["thinking"] = { + "type": "adaptive" if enable_thinking else "disabled" + } + + thinking = adapter_metadata.get("thinking") + if thinking is not None: + if not isinstance(thinking, dict) or thinking.get("type") not in { + "adaptive", + "disabled", + }: + raise ValueError("thinking.type must be adaptive or disabled.") + if ( + model_id.lower().startswith("minimax-m2") + and thinking["type"] == "disabled" + ): + raise ValueError(f"{model_id} does not support disabling thinking.") + + return MiniMaxLLMParameters(**adapter_metadata).model_dump() + + @staticmethod + def validate_model(adapter_metadata: dict[str, "Any"]) -> str: + model = str(adapter_metadata.get("model", "")).strip() + if not model: + raise ValueError("model is required for the MiniMax adapter.") + if model.startswith(_MINIMAX_PROVIDER_PREFIX): + return model + return f"{_MINIMAX_PROVIDER_PREFIX}{model}" + + class OpenRouterLLMParameters(BaseChatCompletionParameters): """Adapter for OpenRouter (openrouter.ai). diff --git a/unstract/sdk1/src/unstract/sdk1/adapters/llm1/__init__.py b/unstract/sdk1/src/unstract/sdk1/adapters/llm1/__init__.py index 2d935e218f..a3a03c7da3 100644 --- a/unstract/sdk1/src/unstract/sdk1/adapters/llm1/__init__.py +++ b/unstract/sdk1/src/unstract/sdk1/adapters/llm1/__init__.py @@ -6,6 +6,7 @@ from unstract.sdk1.adapters.llm1.anyscale import AnyscaleLLMAdapter from unstract.sdk1.adapters.llm1.azure_openai import AzureOpenAILLMAdapter from unstract.sdk1.adapters.llm1.bedrock import AWSBedrockLLMAdapter +from unstract.sdk1.adapters.llm1.minimax import MiniMaxLLMAdapter from unstract.sdk1.adapters.llm1.nvidia_build import NvidiaBuildLLMAdapter from unstract.sdk1.adapters.llm1.ollama import OllamaLLMAdapter from unstract.sdk1.adapters.llm1.openai import OpenAILLMAdapter @@ -23,6 +24,7 @@ "AnyscaleLLMAdapter", "AWSBedrockLLMAdapter", "AzureOpenAILLMAdapter", + "MiniMaxLLMAdapter", "NvidiaBuildLLMAdapter", "OllamaLLMAdapter", "OpenAILLMAdapter", diff --git a/unstract/sdk1/src/unstract/sdk1/adapters/llm1/minimax.py b/unstract/sdk1/src/unstract/sdk1/adapters/llm1/minimax.py new file mode 100644 index 0000000000..18f6ee3702 --- /dev/null +++ b/unstract/sdk1/src/unstract/sdk1/adapters/llm1/minimax.py @@ -0,0 +1,45 @@ +from typing import Any + +from unstract.sdk1.adapters.base1 import BaseAdapter, MiniMaxLLMParameters +from unstract.sdk1.adapters.enums import AdapterTypes + +DESCRIPTION = ( + "Adapter for MiniMax's OpenAI-compatible API. " + "Supply a model name and your MiniMax API key; the endpoint is preconfigured." +) + + +class MiniMaxLLMAdapter(MiniMaxLLMParameters, BaseAdapter): + @staticmethod + def get_id() -> str: + return "minimax|4f0e4241-2430-4921-81bf-8b2c6040d8d2" + + @staticmethod + def get_metadata() -> dict[str, Any]: + return { + "name": "MiniMax", + "version": "1.0.0", + "adapter": MiniMaxLLMAdapter, + "description": DESCRIPTION, + "is_active": True, + } + + @staticmethod + def get_name() -> str: + return "MiniMax" + + @staticmethod + def get_description() -> str: + return DESCRIPTION + + @staticmethod + def get_provider() -> str: + return "minimax" + + @staticmethod + def get_icon() -> str: + return "/icons/adapter-icons/MiniMax.png" + + @staticmethod + def get_adapter_type() -> AdapterTypes: + return AdapterTypes.LLM diff --git a/unstract/sdk1/src/unstract/sdk1/adapters/llm1/static/minimax.json b/unstract/sdk1/src/unstract/sdk1/adapters/llm1/static/minimax.json new file mode 100644 index 0000000000..2979df8f9b --- /dev/null +++ b/unstract/sdk1/src/unstract/sdk1/adapters/llm1/static/minimax.json @@ -0,0 +1,70 @@ +{ + "title": "MiniMax", + "type": "object", + "required": [ + "adapter_name", + "api_key", + "model" + ], + "properties": { + "adapter_name": { + "type": "string", + "title": "Name", + "default": "", + "description": "Provide a unique name for this adapter instance. Example: minimax-1" + }, + "api_key": { + "type": "string", + "title": "API Key", + "format": "password", + "description": "Your MiniMax API key from [platform.minimax.io](https://platform.minimax.io)." + }, + "model": { + "type": "string", + "title": "Model", + "default": "MiniMax-M3", + "examples": [ + "MiniMax-M3", + "MiniMax-M2.7" + ], + "description": "MiniMax-M3 supports a 1,000,000-token context window and multimodal input. MiniMax-M2.7 supports a 204,800-token context window and text input." + }, + "api_base": { + "type": "string", + "format": "url", + "title": "API Base", + "default": "https://api.minimax.io/v1", + "description": "MiniMax OpenAI-compatible endpoint. The default is for global accounts; use https://api.minimaxi.com/v1 for China accounts." + }, + "max_tokens": { + "type": "number", + "minimum": 0, + "multipleOf": 1, + "title": "Maximum Output Tokens", + "default": 4096, + "description": "Maximum number of output tokens to limit LLM replies. Leave it empty to use the provider default." + }, + "max_retries": { + "type": "number", + "minimum": 0, + "multipleOf": 1, + "title": "Max Retries", + "default": 5, + "description": "The maximum number of times to retry a request if it fails." + }, + "timeout": { + "type": "number", + "minimum": 0, + "multipleOf": 1, + "title": "Timeout", + "default": 900, + "description": "Timeout in seconds." + }, + "enable_thinking": { + "type": "boolean", + "title": "Enable Thinking", + "default": true, + "description": "Enable adaptive thinking for MiniMax-M3. MiniMax-M2.7 always keeps thinking enabled." + } + } +} diff --git a/unstract/sdk1/tests/test_branded_openai_adapters.py b/unstract/sdk1/tests/test_branded_openai_adapters.py index c876698847..1426e78501 100644 --- a/unstract/sdk1/tests/test_branded_openai_adapters.py +++ b/unstract/sdk1/tests/test_branded_openai_adapters.py @@ -1,7 +1,9 @@ import json import pytest + from unstract.sdk1.adapters.base1 import ( + MiniMaxLLMParameters, NvidiaBuildEmbeddingParameters, NvidiaBuildLLMParameters, OpenAICompatibleEmbeddingParameters, @@ -14,11 +16,13 @@ OpenAICompatibleEmbeddingAdapter, ) from unstract.sdk1.adapters.llm1 import adapters as llm_adapters +from unstract.sdk1.adapters.llm1.minimax import MiniMaxLLMAdapter from unstract.sdk1.adapters.llm1.nvidia_build import NvidiaBuildLLMAdapter from unstract.sdk1.adapters.llm1.openrouter import OpenRouterLLMAdapter _NVIDIA_BUILD_API_BASE = "https://integrate.api.nvidia.com/v1" _OPENROUTER_API_BASE = "https://openrouter.ai/api/v1" +_MINIMAX_API_BASE = "https://api.minimax.io/v1" # --- Branded LLM adapters ------------------------------------------------- @@ -26,7 +30,7 @@ @pytest.mark.parametrize( "adapter", - [NvidiaBuildLLMAdapter, OpenRouterLLMAdapter], + [MiniMaxLLMAdapter, NvidiaBuildLLMAdapter, OpenRouterLLMAdapter], ) def test_branded_llm_adapter_is_registered(adapter: type) -> None: adapter_id = adapter.get_id() @@ -41,6 +45,55 @@ def test_nvidia_llm_prefixes_model_via_custom_openai() -> None: assert validated["api_base"] == _NVIDIA_BUILD_API_BASE +@pytest.mark.parametrize("model", ["MiniMax-M3", "MiniMax-M2.7"]) +def test_minimax_llm_routes_via_native_provider(model: str) -> None: + from litellm import get_llm_provider + + validated = MiniMaxLLMParameters.validate({"model": model, "api_key": "k"}) + + assert validated["model"] == f"minimax/{model}" + assert validated["api_base"] == _MINIMAX_API_BASE + assert get_llm_provider(validated["model"])[1] == "minimax" + + +def test_minimax_model_prefix_is_idempotent() -> None: + once = MiniMaxLLMParameters.validate({"model": "MiniMax-M3", "api_key": "k"}) + twice = MiniMaxLLMParameters.validate(dict(once)) + + assert twice["model"] == once["model"] == "minimax/MiniMax-M3" + + +def test_minimax_native_routing_resolves_usage_cost() -> None: + from litellm import cost_per_token + + prompt_cost, completion_cost = cost_per_token( + "minimax/MiniMax-M3", prompt_tokens=1, completion_tokens=1 + ) + + assert prompt_cost > 0 + assert completion_cost > 0 + + +def test_minimax_maps_thinking_toggle_to_native_parameter() -> None: + enabled = MiniMaxLLMParameters.validate( + {"model": "MiniMax-M3", "api_key": "k", "enable_thinking": True} + ) + disabled = MiniMaxLLMParameters.validate( + {"model": "MiniMax-M3", "api_key": "k", "enable_thinking": False} + ) + + assert enabled["thinking"] == {"type": "adaptive"} + assert disabled["thinking"] == {"type": "disabled"} + assert "enable_thinking" not in enabled + + +def test_minimax_m2_rejects_disabling_thinking() -> None: + with pytest.raises(ValueError, match="does not support disabling thinking"): + MiniMaxLLMParameters.validate( + {"model": "MiniMax-M2.7", "api_key": "k", "enable_thinking": False} + ) + + def test_openrouter_llm_routes_via_native_openrouter_provider() -> None: from litellm import get_llm_provider @@ -106,6 +159,7 @@ def test_openrouter_reasoning_survives_revalidation() -> None: @pytest.mark.parametrize( ("params", "default_base"), [ + (MiniMaxLLMParameters, _MINIMAX_API_BASE), (NvidiaBuildLLMParameters, _NVIDIA_BUILD_API_BASE), (OpenRouterLLMParameters, _OPENROUTER_API_BASE), ], @@ -120,7 +174,7 @@ def test_branded_llm_blank_api_base_falls_back_to_default( @pytest.mark.parametrize( "params", - [NvidiaBuildLLMParameters, OpenRouterLLMParameters], + [MiniMaxLLMParameters, NvidiaBuildLLMParameters, OpenRouterLLMParameters], ) def test_branded_llm_honours_api_base_override(params: type) -> None: validated = params.validate( @@ -133,6 +187,7 @@ def test_branded_llm_honours_api_base_override(params: type) -> None: @pytest.mark.parametrize( ("adapter", "default_base"), [ + (MiniMaxLLMAdapter, _MINIMAX_API_BASE), (NvidiaBuildLLMAdapter, _NVIDIA_BUILD_API_BASE), (OpenRouterLLMAdapter, _OPENROUTER_API_BASE), ], @@ -147,6 +202,20 @@ def test_branded_llm_schema_exposes_api_base_with_default( assert "model" in schema["required"] +def test_minimax_schema_covers_models_thinking_and_regions() -> None: + schema = json.loads(MiniMaxLLMAdapter.get_json_schema()) + + assert schema["properties"]["model"]["examples"] == [ + "MiniMax-M3", + "MiniMax-M2.7", + ] + assert schema["properties"]["enable_thinking"]["default"] is True + assert ( + "https://api.minimaxi.com/v1" in schema["properties"]["api_base"]["description"] + ) + assert "reasoning_effort" not in json.dumps(schema) + + # --- Branded / generic embedding adapters --------------------------------- From 7c04f32b8bc3241ea26b8e2e4a57524383a76a1f Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sun, 12 Jul 2026 07:24:51 +0000 Subject: [PATCH 2/2] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- unstract/sdk1/src/unstract/sdk1/adapters/base1.py | 1 - unstract/sdk1/tests/test_branded_openai_adapters.py | 1 - 2 files changed, 2 deletions(-) diff --git a/unstract/sdk1/src/unstract/sdk1/adapters/base1.py b/unstract/sdk1/src/unstract/sdk1/adapters/base1.py index 30724343f6..6cb4d25a10 100644 --- a/unstract/sdk1/src/unstract/sdk1/adapters/base1.py +++ b/unstract/sdk1/src/unstract/sdk1/adapters/base1.py @@ -12,7 +12,6 @@ from typing import Any from pydantic import BaseModel, Field, model_validator - from unstract.sdk1.adapters.constants import Common from unstract.sdk1.adapters.enums import AdapterTypes diff --git a/unstract/sdk1/tests/test_branded_openai_adapters.py b/unstract/sdk1/tests/test_branded_openai_adapters.py index 1426e78501..328ecdf1c6 100644 --- a/unstract/sdk1/tests/test_branded_openai_adapters.py +++ b/unstract/sdk1/tests/test_branded_openai_adapters.py @@ -1,7 +1,6 @@ import json import pytest - from unstract.sdk1.adapters.base1 import ( MiniMaxLLMParameters, NvidiaBuildEmbeddingParameters,