From affaa5441e4c3f7406bfd8a7a814540c99628f25 Mon Sep 17 00:00:00 2001 From: Grant Hamm Date: Tue, 5 Mar 2024 01:48:56 -0500 Subject: [PATCH 1/2] Messages + Claude 3 basically working --- .../Anthropic.SDK.Tests.csproj | 10 +- Anthropic.SDK.Tests/Completions.cs | 2 +- Anthropic.SDK.Tests/Messages.cs | 161 ++++++++++++++++++ Anthropic.SDK.Tests/Red_Apple.jpg | Bin 0 -> 204564 bytes Anthropic.SDK/AnthropicClient.cs | 7 + .../Completions/CompletionsEndpoint.cs | 4 +- Anthropic.SDK/Constants/AnthropicModels.cs | 10 ++ Anthropic.SDK/EndpointBase.cs | 53 +++++- Anthropic.SDK/Messaging/Content.cs | 92 ++++++++++ Anthropic.SDK/Messaging/Message.cs | 23 +++ Anthropic.SDK/Messaging/MessageParameters.cs | 31 ++++ Anthropic.SDK/Messaging/MessageResponse.cs | 98 +++++++++++ Anthropic.SDK/Messaging/MessagesEndpoint.cs | 43 +++++ Anthropic.SDK/Messaging/RoleType.cs | 12 ++ 14 files changed, 538 insertions(+), 8 deletions(-) create mode 100644 Anthropic.SDK.Tests/Messages.cs create mode 100644 Anthropic.SDK.Tests/Red_Apple.jpg create mode 100644 Anthropic.SDK/Messaging/Content.cs create mode 100644 Anthropic.SDK/Messaging/Message.cs create mode 100644 Anthropic.SDK/Messaging/MessageParameters.cs create mode 100644 Anthropic.SDK/Messaging/MessageResponse.cs create mode 100644 Anthropic.SDK/Messaging/MessagesEndpoint.cs create mode 100644 Anthropic.SDK/Messaging/RoleType.cs diff --git a/Anthropic.SDK.Tests/Anthropic.SDK.Tests.csproj b/Anthropic.SDK.Tests/Anthropic.SDK.Tests.csproj index e2d013a..fb4f350 100644 --- a/Anthropic.SDK.Tests/Anthropic.SDK.Tests.csproj +++ b/Anthropic.SDK.Tests/Anthropic.SDK.Tests.csproj @@ -1,4 +1,4 @@ - + net7.0 @@ -8,6 +8,14 @@ false + + + + + + + + diff --git a/Anthropic.SDK.Tests/Completions.cs b/Anthropic.SDK.Tests/Completions.cs index edaaf3d..8adf2f6 100644 --- a/Anthropic.SDK.Tests/Completions.cs +++ b/Anthropic.SDK.Tests/Completions.cs @@ -37,7 +37,7 @@ public async Task TestClaudeCompletion() public async Task TestClaudeStreamingCompletion() { var client = new AnthropicClient(); - var prompt = AnthropicSignals.HumanSignal + "Write me a sonnet about Joe Biden." + + var prompt = AnthropicSignals.HumanSignal + "Write me a sonnet about The Statue of Liberty." + AnthropicSignals.AssistantSignal; var parameters = new SamplingParameters() diff --git a/Anthropic.SDK.Tests/Messages.cs b/Anthropic.SDK.Tests/Messages.cs new file mode 100644 index 0000000..96b401d --- /dev/null +++ b/Anthropic.SDK.Tests/Messages.cs @@ -0,0 +1,161 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using Anthropic.SDK.Constants; +using Anthropic.SDK.Messaging; + +namespace Anthropic.SDK.Tests +{ + [TestClass] + public class Messages + { + [TestMethod] + public async Task TestBasicClaude3Message() + { + var client = new AnthropicClient(); + var messages = new List(); + messages.Add(new Message() + { + Role = RoleType.User, + Content = "Write me a sonnet about the Statue of Liberty" + }); + var parameters = new MessageParameters() + { + Messages = messages, + MaxTokens = 512, + Model = AnthropicModels.Claude3Sonnet, + Stream = false, + Temperature = 1.0m, + }; + var res = await client.Messages.GetClaudeMessageAsync(parameters); + } + + [TestMethod] + public async Task TestBasicClaude3ImageMessage() + { + string resourceName = "Anthropic.SDK.Tests.Red_Apple.jpg"; + + // Get the current assembly + Assembly assembly = Assembly.GetExecutingAssembly(); + + // Get a stream to the embedded resource + using (Stream stream = assembly.GetManifestResourceStream(resourceName)) + { + // Read the stream into a byte array + byte[] imageBytes; + using (var memoryStream = new MemoryStream()) + { + stream.CopyTo(memoryStream); + imageBytes = memoryStream.ToArray(); + } + + // Convert the byte array to a base64 string + string base64String = Convert.ToBase64String(imageBytes); + + var client = new AnthropicClient(); + var messages = new List(); + messages.Add(new Message() + { + Role = RoleType.User, + Content = new dynamic[] + { + new ImageContent() + { + Source = new ImageSource() + { + MediaType = "image/jpeg", + Data = base64String + } + }, + new TextContent() + { + Text = "What is this a picture of?" + } + } + }); + var parameters = new MessageParameters() + { + Messages = messages, + MaxTokens = 512, + Model = AnthropicModels.Claude3Sonnet, + Stream = false, + Temperature = 1.0m, + }; + var res = await client.Messages.GetClaudeMessageAsync(parameters); + + } + + } + + [TestMethod] + public async Task TestStreamingClaude3ImageMessage() + { + string resourceName = "Anthropic.SDK.Tests.Red_Apple.jpg"; + + // Get the current assembly + Assembly assembly = Assembly.GetExecutingAssembly(); + + // Get a stream to the embedded resource + using (Stream stream = assembly.GetManifestResourceStream(resourceName)) + { + // Read the stream into a byte array + byte[] imageBytes; + using (var memoryStream = new MemoryStream()) + { + stream.CopyTo(memoryStream); + imageBytes = memoryStream.ToArray(); + } + + // Convert the byte array to a base64 string + string base64String = Convert.ToBase64String(imageBytes); + + var client = new AnthropicClient(); + var messages = new List(); + messages.Add(new Message() + { + Role = RoleType.User, + Content = new dynamic[] + { + new ImageContent() + { + Source = new ImageSource() + { + MediaType = "image/jpeg", + Data = base64String + } + }, + new TextContent() + { + Text = "What is this a picture of?" + } + } + }); + var parameters = new MessageParameters() + { + Messages = messages, + MaxTokens = 512, + Model = AnthropicModels.Claude3Sonnet, + Stream = true, + Temperature = 1.0m, + }; + var outputs = new List(); + await foreach (var res in client.Messages.StreamClaudeMessageAsync(parameters)) + { + if (res.Delta != null) + { + Debug.Write(res.Delta.Text); + } + + outputs.Add(res); + } + + + } + + } + } +} diff --git a/Anthropic.SDK.Tests/Red_Apple.jpg b/Anthropic.SDK.Tests/Red_Apple.jpg new file mode 100644 index 0000000000000000000000000000000000000000..32f2922278a0142e80925ced382fe25699f0c6ea GIT binary patch literal 204564 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

w2cr5C}p08Fd<0MAn3*C12rdA9h#K_|I}vxJ!4 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ⅅ<3GfwMIe3 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

(SuYdoRc$9mufih z>_s9$e5p~P18hmhLM`_E^Y@JS32&Im%0)Enk@u|zhaC@Qy$M~iP(9zwPs|Wec7f!PQsvA`Mxz>Y?fpzY8zAthJi5=JB`K2 zOZzsB(PISg?^M65LE{fhGB->SPXJt^Tzq%s=E*_nM?vi>2<~>LYAa7U;p;^i3{-~X z#=8fdj3ECy?Wd6*5m?uCTdiQF(nJM#%4WR8mhMcd5FiKJR9DVQl?s=1HS<`huMLat zl{j!&BYb=v*k422aIr%fi-i9}Dhui}X|MdzP)kvp!*{$@5suig#s&)qf^fm8cV(sX zK>eFAADTrrCez9vx#cJYP8F5L?+jwMQ&d*WAwS=lnfA{rP$<%0`I48|q+Pg|;rtRA zAz}JG_?=sI+fz$_tTgry9E{E3kV$>JQ~t;#a&nNU>vJX-ql$-wD0nOpPKxVswu{DJKkJev(5Z(a&Z`Fh7_mweD;DRWEx)_H zcL9c(_qIzCO;5~4cQTgh_3ow&5BxEw)ude zU+u)_7(fJz+P;0kl%Y~!xSw3!0Jam1Q^ptvi+fVMH}<6L4gC%`^Z9CJ5z}81fOc4M z%nX}a^&Gk(APh}DLx;OkaCgvM(Q`Zj2hkV=0jyW!3P1i+M^Rl zZRSqWk$^pSQ~!LpU6Np2n}8o7(kE4@U}&uOnpUcZw+$c_C{mdj-HJj-q*){RTjLkG z;)p9NKIZh!J5@*Dgp74wnZEy!)P-9KKJ)NLX5s6FL%SP{kGTlR?s39S~B19Ax zMv2jNeXG2$do)?KUN|gegvBnDOvW;L4+Hj%!%Fr#aEe>P}g53=!EUG~F@t0BzNfgQ1dH2ywDXhMMWf4lHmgY)?XoI?{gfQSns3XhOvX zKvSIWY0&C@r7U0M=Q|_qOIzR+ZLbJ3Hp5|y+&rjnoA!>}OVLaKu@mdLB$%cq$c|FP zn4Qv|7>uC?{X5GO8f?Ed(~j&A*4KRr{?SU?t*ONX1yksMOCFx|Y{oA;U(HEK(>>Tr z?Gz)ti(Hkeui}~zftaf}Zl{}6#OwTtp33_zYTt^u&eak7ri{=4oI*TC$}e>}s|jmm zhvIf~c_g-FZiW5q zGEU=!K!fPN>o8USTXk`!^Tjc8-L+EBk#mh0`9t9sIb0jO?QNQF@U!=0ZJG6(#?`O} zB48Y_$M4fUf}iCud>(8wYOQrn!Hkl=$G^BHG0>3LG(5!IIKOlvxP&hl0=61B-FwzW z44G{#*71v|oz>KMVLJPln)6HicCs2T76md0wTC;Af|v=Ai7%M2ta-5QSKif7r_yS> zy7M{*3+E)E)o?O$qDdDx$;k+pd_z6CR8>}VWIk=X45I+;Qw{dqB0Yw z{nB)j_52@Ih&q1SPO_+1|Nqx{|8KR*{{V0Q=K(n1(E+KJDPHv*{jnl@2Mc~8^`AOb zZdHc85DoTeuAQ|`_miOjpAkXM4iRf|17XWEbGfQPi@XdB^mftez^2uI?2^Zz$*!>- zl}B$1dX$MY%ar!b(=d44%20B$x5;D>%5ZsaJ^p*XyB4 z#ia=~??%`l)E8@PS|f;E%xctCmUV!}U4q@X?3M=w%3~^_AKmos zn%rM1J)?v1vs1nBY(a6&lz(+>1ezu&REftz@swjLE7^-QF!ORkykpNX)DoU`7{3@*OIhgGNXS4_C4F(dzAJQ!y zvK~=DuBWGePKGh>H_pMOAB}4BaO+dsz`*cEKJqgCVHTo4X zfd7VYY5l$+Q=h*#NQbZ$M_FmxQt+OF?la*36h0ny#yQ7WH zjV6;#3S+?l%K3xznCHVO8z-DSbG+U%UM-yJ?W%kiHc&zAKoyK1B%Z;VfpvbvE zXOQHrM#4x8p-meHMtqJBZute4t;pDuGxIm6LaK7qY8sv-?I$E9x6S4c29ZHtwqLAV zKR9<{wd5$$=$me*TK_x(C2AX=ze+C#a0>k6+A zl{bC$KtEOK`g=SG>@XJW&s7D!{!Lg3+ix7(p~c&x(%2k)kobG9VQSpeTS8Hk<=*oS zmk@!pRPmU*IAq<48%d}oM@8O4{wiK%AD=w!s0zCqM+VZ&`$5P%dmz+RZlu!OT%g~?D2q6pJ{ zt$P-^sQn;N-drLIvXsR#t0sydI1N2D5)5P~EWrv6e(kGeF`$o*%FW=-qfoQUl%DbR zPo__*5wJ2+2w4#E_C77jC%TotNTD?^y;9#-Tt$@BzbWqpcwuanNPN3&1%H&1XqToC zURAPOfXp?3JAX4nd391u^Fw{>yqsDE)zBtc;o*{~Rl{<$ALX<@PkE?&$~fonJHW|( z(Biin8y}7u06HhP6Ru|OAFKIT98_qk#q584JkWOQq3vkQH9sy?iUkjd;7YG;(Rs%E zRE>44XB>Ly(bW=pA&~gJgRAym%Qhr-k{3r^V1U1w0e5|sR3_HM`KUF!Z#ug}swC`9 z@xw6RF`^%CuEhmAm0WVVZ7Vhreb```P&|TIZn@RpRo5uwnX)sjWxy1wXQ@IODv_wd zVeBr>RSFWhOWE-d;bd@3K`RaXu%HT@Hu*!I$-wT z&TJAzhM`x+P(%;)ui>TX$|(RPgcxYhtZJr@x}pG4r3rx}>ztvc_jugCjf z5#7zAz{y5o7`JjCl{yi0M4`wno5SV8Km>)0!V|``+WgjxaY7~jl|!RbF~ES?Q+)bo z)l>bDM&l;=pG~IzB3yjz0{=8V!6J1)>>5pXlvqH8I1o-2qWttlz+{)D9re|^KkNJW$?g2!$ulwM?Bls61Z{JImFp-;t{GxlY+U6+ zV>zk~#+H1?zfur%dC~eG?xM2tr_YZud+QE6HXN9cu_|;V%DJ#+D}rN0Ml>?ZYg{0X zkli)FV30}OZabW3#{K(BQj+u@!T@7)3&MGdryy&6a>|ud{0|AG*id3UK}0D84K<%C zd)FjduK<|%>9YW1aSIpn7j{5Al;^REDvy-UzS~y4XcBaXUPIpg*?2#KvJtkrUmZGW z*)+e}_9M^LR#9R3OSEoXaYs39N!O#2FLK*{?z<{#oQUzy;Xh*(--l{P6#6x0m!TBI zmw}-R;RumXQWx2=k^}s^z-}UQXo=k^q#%B~TGE!I!O~bYbO3@DUF(+_D%i8{@LJ*_ zA#2bIKkM7hwZ}Q(jslK+NLJdDYZ!gUHfZoQnJT9yt3A-~=z^5KKU6a55c=5U7USC3 zt@kM^`j(%2!-9PErZLLP3$LvcZOS+iAcK974_DQDtlX4!eY>c(UmVGwi~0ug2BflQ zoJcQ{vw-I>z#4~aT(yuJEdEUOp)0O;wef=|+)|2@P^{u6dB6S* z73=tYSL(JJ>ZwLm+9z*&5rH?Vn17hvAErLj=L?Kp8jL^QptB4uxMS@JERZ2L>|P*w zqnAnM5ylbm=mdE6elz+&qM#(n+%}r$ zj?oV!Fsr60b$R|~3el@oP&Hyn!ZU!)RtxNL4z2m)n8h(0O-$SGIH5rh9lBXgpm&zb z!n6$4=sqH@nq$J8_2Req(V}-_O>)sfKh;+-lGKhW!$+86f45%Z*Vqy7QEE^{YKEvo zd^%D&a2)yMY)U48#K9Z(Hht%*DgN_AjZHa4ATJ6H#@3~tXm_*Ud-gx2vILQB_)2Ag z2Ib7eVwzbKQ3g56cju7@dWOG?s5H&f@DEju_4RYHMBKkw$Z4At=`(fYnrI@T5d0j=aL7Ty75wT8M%YrEgdHUws01pXfS5I(L?lrV9HzCd{ zAekI0jrFmrP7UFWfa_P<305SmbuC?2iLsRr5D9PJkKFQ~v9x(9@2rCqC4|RLeP47o z);QP2^aUB-f!qB$RG#>KN^My7!Sg`;Z>KGWN^8f3qOU-b=rh?Bq+UVd097HC~1owpCA#k!RH zndMfb30%Ky7#~<}ttC!L7SQ()Exl09sK^fdvPS`%Du7@WkDXOC0Gce$xhDX8bq{WBd$~QU{ogFbBm!czZ^G}rMuZz0G=26^E&Mkm@N=!tX z7Sm8QFs9}vKMI)Utaq&Qj6Crm8hzU2ZLDu3AY58t3falEw2rjC!`kLS=h59wqXF9B zugrCamG3!McAx@%YP4nHiLFkZa~}^Fpc3JZJ4%ob#PW8p_&Cln;$l3m=qS`9zlbNn z?Te{InS1N=%4$vRF0Yii_FE**rGvPk*nc|-{8ylYki!Lru?O!z3F2+QA2ntswY=MJ zsZvHhB)B1q=PRi+M7XAtzx&hijD2Dq+B*ZAz)=9XS@s?~J6{dwnnggdE_|!cBY(uP zm49UN#pw1oNOrtgn#eCU)FpPf&92VJ+O|Lv{&p+#P?+zDidf%q5ZlH7bYP=)7WC*e8yWh9U?jD=?hS3o&y6;#Qb_mn@21H8uIvo%#kzg3q`{ zXZj3E5Ou4DK>UM)t32vYKD3nh;nAOm+93_$U$9`#1IZ7Y0ah&Q6U2z){kf75D|qC`O2MSX5Vw)rjjb zGA3!e-a;0sq%(<)gQTS8| z@_K*tXxOyw)WcaXMu=-K9!askRJW^c;4FBxM+Hs{{ta2!BO%*K01p1K)?Khc+xKPw zvCm>GC|$l({D-7E=hBt7rP$4BF>*RFLpwQU`aTBuKBw24%|p~ad+CIR!-ufHy!~ob z7O`J#!zqvnbAsxDao6`{rN^ix@B@}A#~A-Z;(>bW;rTd`p@ja-@7XpiTnnUv>pmE+ zq|xr`S*fD|jjf?>gfmf^ixGRYllnHVjQ{d;K-&%ZVs?!F)Prxn2)y5W_DbJ0SiTWx zF$uk^LQXs}{m>vP7|!v@NWq1o4?z9n_OGF;Ds@F&LmXKv?iZf_kfP(13a7X?o}!iJ zf7VNFRtgB`dEo_%q``bk--eh}7)5=_M>7vJpKTpjeZz!f3VtIj4Yo7p4t_0&J$jJ| z!!gs3&;YE9b(H~phhlABk)&P>R{nB^dGGePJ!xfAnLB>C6ZNEkbK;-Q3}iOjW)E;z z$FPUalH@p2yDOE6=4m)Dr=OBCd2^%XExhR~qO);%CBksio*{{gIz3bT+nLiDPSP)P zb4dw1R7#ll(Y&vAZ9msJ59SCP*d=aFN^#>{@h$cqO`xtH_z$UL05!aqj&L(Y5XRtJ zeALdqorAYHSyi^K2()&kx%epvPKBB?^_@cgIUC+Dvj4`g zGB-XzAD8s@?AF)Nbw&bS`|Q#-x#?C0`e%ee>$Y*2|G3i`HzBggDLbL9bs1r~BbM^D z4+Vq#1TmjGA;k*{z_pyiiNHnP2#@^TJ;bG6QKTqvB6BwvoiZ9{YcSPH*ZT|5?f}B!&WFE&00^yul@SW}nWd^P`r?Lhl^%LPQ8hK=?-t*%u zOE+#AJ;+MMwJF&7cgjy_ep10MJw(6B+%zqeX!yZSk!0h+3aZQ8PU1gN`=oY$dpWVtmQMA=7z`y3{ zy4TmPyPxF!;(eHM5!c{nK*8DlFIsf++Ufo7+88-6tJQaZS~qLG2iBX;5*XbHKHo^D z&C!2IBpodQ)L<@~7AT+lS4gZ>v5kl4VXnwl2@3GdRsrVT>#J1XGOS4$Gx%; zo1BRZePgtMhRrv8T9ex`*WR}n5n8u zJV!nxN}^t~o5|gej0T0v$ods1I9Jug-bt_9J3|5-w1^b4CAY}6%4{c1S|0;U1K0`M z4VkH-5^Q4zOa0TVFoDjoF~%{|0PAiGqg8JMW1_lt6G3|I?)5NqLHsNUr#;o4FmS9H zALgJR#(zj&+L;Hdb6vc?5FeL*=9crGGHxFfjQf+!^r!NxKBmz z)6)KYvTmyZ*P57SHSVPr!UCx{c#$&s76MWJ?*TXnI!Dl^jqCvhO?!XauX{;hkZx!^5~()^j91e zMa2)7IRu2PzwtjL1$NwzJi_=@;|R3Hz(+IVp__{ekb=7qZftkhpb0E{a4l-19Qo{T z<-gA>0(&e53CTPM+mJK4@OU3CJnpF;6@nE0$H|sD*IH`>t3gF~$%S>w)Vc8=+y(s6 z9>~JXx0?LgDoBa+G2(>THC7gOJSu^kIzKj(N?$dK^*&SzggJv%#C50)=-hM9pXZ+v zBBThFc9qKE9sMG11QY_%e`DxJ6B48L_x+!ia!(y0r7Za*GYXjQp0SI#$uP&vo1IiP zZCjq$AW84mE)Q$V0U8tnUFA)3Q`zS?i60XEcEJp-F}qJupY~RZG!Et|kUNp57}Bm> zv|X6`mBsDGVP@*0E~~8XJ|`UXZC^iYxyqwa3QvaA^5rAnS8#JD3yya^(pfW9u~jmt z&$>31JP*4rD3<40Q_Peq$mM7_>v9farwqHxxNa7a4Dx|^i4#HiZB@e7xRaIc-`st? z_U5~}IQ>NCOlYZzeFU$6gUa!@ZS-v#Cg@BYb`@^-m6ezg{aVgSqQw<#!fX6yBR8dt zR|)OcO7svIU*eZ;W4!pb(bh&y-az@)b6Sworp3h5{Fj z9la5<|BI=&4r(KA`+kE4EA9koaVXp0MJ;9T|sJmZmxap&Qi+;+gR;Ta`a&bLj|LxYg;toz21Ms*#KLj;@_p}K(v2%cN;A$J_yzjYiBu505?kfvyV+){ z{(+*7&(_b-6v3o0MGIkmI+VM^1d07wmNNrSke|l$=yGty*AzpH5N(QoGS!DzB@Fol z5?g(XT_*19QEkm(2GUeM5IWcF@w555V$)&m?cLvDCIsZ53_zy$UcHJo@8=W;l{d_q zi{UF0i;fgRD*pl0yWa}Em%{`=XZYm%9L3)3vSjQS4<}?2jV?BO{ReQ^DywlU`-`q! zwQ0=HZf4276Xb*TZN1jE6>f9AL1h-&xEOE!!qJn>922&Yh8_tKOEmkwC|Na$fs`kNw9@DaNvz(tyKT`$*`y!>K;|ajiEg5yA+!E z?mqm1yGS%p(4Q*t4?ZZw7$5%3h@8*5ov7pP_ihqHh_c+LBuerj5(SrP>Vn;+iP*Y( zsiR*&Fum9}?B74_%eC~Fr^G@Jv_-*q{&v7HV7c3{RQDn(Pyhb88yI*>d3mYnh1-!2 z#laKxdmj*h^A#l(Z-`hQH??5eWt2u}l=wV@Z)+R^8Bc`b0E2@aW8KWq)3XX7BSQNt zM7ar7YP;oq_OT4}1cVv7Cl9rAi6HVF3K5kQ7`D3c#wd*n{>#|z`C1P%t&)8Hb6ugBBd(wC z@`Kk~@4YvM6bdWu>M|f3V)tLY1_G|O@^&Y8A^o7`ML#(X{7if9^UTRGzslde96El8 z6vQu;-ITOvEuA=Nqz_gZZ$9Y60a{qmf{bW-E^Kw3EyuDUQJ}?P8c4wt8Qhfri_C0l z1)bQV@GGv=vX`Doqf#5O6(%7kY*a5&OA-@&5l}oBvlu zEqhE=|1-&A!8bmO)@rK7i@*|pg;Byv#gbScnDDmWeU0Jcw1$~s@>2w{=Rm!|Nmart|M%*;vwgi-d{(Bad|90x3whdatGNS)0$4%8F&6+ zmBwaFy@Z==VDg!o{e8l1T^=PuFC0zrMcJlmFc&H6JtO*F?$3zIj6~mTuDx%L0p6BRUWC z6J>$mK^k`z($pbAl_VQ=mg4!Zn(FGX^j^b!)oM6) zCoO687_A8Ha@gz6-H9xamP;eUMKBN?$81d@@#dT_Zs+(O$Xp`NPgkO#;D!OA*3Ca~$V7ifH-tLxGG$s~#xg z97;~LbY<0o|H7r68zx=#-cZU+RUuz0~_MB-Q_J$|zIt}ICgUp_Ee+6xV09_W1;TNQh9@Pk4He~Q?gjvf063pgeY zR~)SrWPHyr6Lm^kv-}I6KTN;qZq%$b`)Yxw@E?@L?57#)Sg9U)G)vA2OS%cx)nw9p zyWH#i9um#gaQqUg7CVPET^>EwOc<4RF5MJ=u5ESg-+<|Nek^WcD|q3#n6~>QvuJ4b zttLEicGX$GF0+h(%0I!T7vlFZ-@!J!!}ZMWb>$$H-==1^5QCl$#3W4Z@7eHy*(fLZ zFNLWaTQx1F9OwISgBEj{d|azDvu_!~$ALw(iAtZ$KW{g+BfS~MJa`+m7gnO zh1*DUlzFd%UYign-7`NA`gchd=~gtfHI3H+kIFsI^G}okyfXx6lL~fD6xEWB&>u~x zX#xytEEFxf{g$Q3+}(9QU&DSDtk>->D=g6Flcrlr;icqFMOReOL@C8(f?1jIx&G# zX_xQOA_*+n%9UCQI(`oStBY8HPvcBt$G8G+VubNKm`Hxmt2@TkIvlAd$>MT#ie`oh z<=%~-6&Ouzudpq_6_xW>bKu#YHn!ArQ|keK5m_S&FX{N4=jxiD|Msm6cW^{tHGEUo zj{p7AYE}MMS~5i7tcZrQ2)7ezJ4+>w3B;`ashTf3nQ1`9sJD6G>>?3<{_m8P=0T=- zb7Cx$mao@&vka$y(7o{L50DW=@88zeW%~R+6z6Cpye$Z(sackB_ZbSRQ}`dMF3N4~$TJql=p|v8l>$63L6PJSHq}nP1-Q^rjt1`U=FLr)RkzPxK%cBN^UB+T z1y&~>1+I3y#>;%mgy2sRAstdvW4=di0sgwq?F4x0B1t;Q`M#sIGF^TAif=A9u{kg? zvG=}hm5mAzShqE<_wcz+8ROiw#6I_jl z^Z;Rf=`{^~Z4D?|;6Ya{|9{o5s@6;$P@(7h)7|Yf>d;Y!h4oLR@T^Xru|eo8q^ft- zRC8v!{I84;>%hsq$Y$^QE`P)A`0u*iSm@?{Po$WXg7yG|e!eWoPfoGD+_dn|7cx($ zN)>}hE*$`1MzPW`cO3zzGcR{JBH;h!ZH%iWOsCxksnxBQ27bCqTdZw{e&PXT%kFLgR5?hLs-@mKY z#FUlu2{UoSVCvXejQJNnc(>EWsop~=MdOxGJIx(-b9Qs1FIHEG70sBWa}Vh!-)Edl zl@7x-(p#2a+jX!@Bkx7IJg431gy*Gq_{t=!!A2z+3)xkR)9@a;5Ut7K783;3I z65A^(GToz-TGZabGLhX8m*eCQfc=1r1f+ zl6kx%6SHb8`Md1tMPAn7fsRSKGJyF!ksT5eG0uIZl&>%na2<1kH|F>jds5N4WcH|=f%e(_%1Oma40guNAlYu)8`Cc@(--2&~oX` z3U$*Cm=Hp~SCy7cY z7O}dz$z&*Q3(@$W4ogdovwSM{zzOc^F6<1Y zrA&W7h)JpHQkkU^RB8}my@}2RN^PH2g`?-?4ms1E2^AP};jo{vA4Xfkr-xYZ8EP9E6{o)vYvsc%E~6fSAXTue1NUb9FHBT?-5~z? zuJ*33+{$m+v5_|zCP+rz%i?*DW{YDLFxtcTm%7To$~A84VWJo=12VZ0j{rP7_}%fa z!SZfzi=JZRLrkCmk++8E?-yN;`3n<{_jpLFjQ&Oeo)1R1Rjo{C+mywSoelz2&4!W% zR~HZBm{p|U9ThBn05mW~FI@@UQ(Xi(%%l|CDbX`cYPkgJ#tYoWe^m+{5Dz+?Ih0$d zrCs1y8+biqQ1EF9lhXKzwt!Em+zNbiPPt!iaulm-leIS1N2ddUh~>hzGAZOm9Ml|0 z!NvmZO~xq`D3i@}(u`1v;yi2+q{WV;`bG|hEFlShv1l`|n7NsL4K?_Q6Bq9y(c8B~ z&d%bOy<=Ka{ryG?_~KQooLaiQ{!Gng38&omEzzKAjC`S2I<*U%S@|@;hRk;2q2xQZ zQEdRe;h)0;f=-PMd}I4~7?r+dI_-kvpJ>fV;lgn=#BvZR)}+TU+!z_*a|zqF_Nct$$Jr+ACm{5p z?ba#P(cY)B;Po68*av5=j)g>VyeqgXFiN)ifQ)@og#bJkmydCB=V=>TxK1zoC3_eW;$UL%60T|UyhCAaw1r@2*G zQ;56_C?CV^t~PKo)W^MIHr|3bgz${IhdAR1Sj~op*-q5{U*SrAyP4B5|-sqFY4% zEAal0f%pIHk-vsM&5fjn%KNiD|M)ND1x1#{uk8MRv|gOVXf6rwfqNcn>GXQa?$Fxb z6l0vb9)qm`X8>tnuV2CNI{l<+45K>n;6X70&M5?f#q=w8%9*fF3aL18ps8t z=5G_Ft83wLwiTVcERd1j-N{P~n|Ww%M)&-}Ws2|8ygaP%XqEaF{rao1RDaA)4A~%^ z58Hb1i}{gp*&`{&>ksXCK#ns8``P~hQV%3rgRMU#?gsIZ zB8cs$y8-yZN!xp%@N}}H%m-pxo?k;VMp(19%eh@)iIVHxSV+aQJeRywilj?}wqzjSLYtl5{rm2$GE*#7{= zMQUIZ?R+%GS^KW^epAls8Uvw&{wtM#6@AElH;ubaXvrFq={8VxjUkP*71n!_j^7== z;m4^e`B`xK;3Yl6@v*ar$%-wIPzA^|`+zxS0@KP@L?+j)f!cEWD@+98+UqDvyeI$b zzh@c(4<8+B&e!b^qQ~Ch%dgTuI>s4d-tYb0w6gyj{AxnNmm%FoB5QQL^$EX{U=lIt zILUQYEyC{c)u4YIH_2l#1?WHgWqtb35!;^On{WJ_Xj29P&crOXI2{NP%g|Y~Z~iR_ z7m*D)U~0s>fvMQQjnD5$!|**-r{>Ka+Vr*76~8KrHn3TZ<59*Z0T|i{5Fd(%KYcv! zj-7O!PnnTOD*X3;5l4qQIO$P&IiYO)m{&=Vmd-`uP(bf0HfcI97taOY;b}l0Bk-r? zi}HsX-1Iy{+nDi*F(7OHHl66=iC5g1b;xHK386>ZIQz>V*JJm{!nx{YCgZ#XGg0M$ zB&JkKtnz(iSbw51OZ{(ez7dsdt*0q3 zQ1@I%Y<$){w1gM_uDMdrv~ws%#IMrC+&p=epYt#^1i_hO)N7>$~WCdkRVD!Ks=zjKvvn)jdb@+g>U5kTF_fI{QdLFN4 z(gng7!sJ7id=Cyt?)k&!a%76BxH6PEm;)8Yv_^=KAOdukG7`&Ay%R{2vo6kmVhrws zwNGABkNs-oO1y5t#-=?gFo8!rtLhAMXcL+@6vWH0 zbZ*WWo-9ViO2@4JH?y6dz?ZqWD_R+^_CR#N2CW?gZ_V#})yC*v2$3{WP?`*rk_^=8 zt~GKR`_RiDL!_y!RCuwjCX^zgWgKI}H*mYf-Hmh~?@6ffuhb)!jM^1knNx5MCnnqC z1>79S?{TygOnsrp(!U&rdXn4X!lr)(htoRVsw~L=so{6Tf9*xX072I6Xy&IcSJ(OK zqYmn}!u8^__Bv!~OyzCw-c+}xw@Y(G3N5 z45AV7flWKKYT*IY-{u4r4wH^RzJ&36%P5K#jtC(B4x6&))6zT>^RoCBW4`)Sx+Fo{dB+mbA z1^Wgz|!d{|SMteO^t7{Wjq4+b#2Yse|k(@HR zH}X#=ydS`4Ml}0y!ncJUSNvoayhW1txxxN+17Qa+07eLc0H&F2eAEQC)->S(3hbV{ zP}%?BZ%=L>qr2N*QMDew<(=a5*w7dA-}Y1;;E+Z!zLElQ(q&1`)bhvzfn54sCRzaIeg#eDtxlyYe(DzUzPODEr0z>h6LJlWk1Z z$n2$<0VgSm0)>-b7l{fRtz!9WVCXZ<+rAW2onVG z&u0m8AG9!FLnSeDPbw92+v;?9x0tvhzgSz!C^c&AR>!~tX? z28#{pDulKN6#~)FVYA8;OU3>0z3Yn9GY~K%$xEXcFx3t?=MnEow%YPiIy{8J*PnO1X z7JgM5H_pmT9E$1p{>DZMsqbmP7MPwRvMQ;%9c|9405wbkw_fFMON{WT*E-xI^8}3Z z%}uI%Q?|)l??l{KQETQgfCahHtvM%O^L(1cVB4wP;tpQSt(^;qjZ!Cf$>2F8CLao1${h3zff3xdupICGvOE0A49l^Bfv<8w#E-$*Z#AgBE-Yh@ zMcb*ea#;wNJ>jB>>jQyv=A0(jy2OH7WSO0_Kg&e@Nb5GN@ux@AKdZO5@>+@V zj!{~P!DSshwSw@6;}%Sm!}8{Gk&nS6#@I|7=RQVmL_SXX7~{A0tJvwtI(j6Kl^1#YaTvX^Qv#(m8C5hXf{BQRy-%LPOeuTp4Cp+pArd7T@P zmN&g!ds;o;NrEzkzqVHS`6Xm7ejwU7 zUZ*Ig0rUZMg)4+zOf~O$ovp^l@A}I#*oD+?T@4l}xjOb}dq3TUZb!h5YO>A{oROVvId&g6t7C zF;|BmnMIDLTEXOPFmLy*A&KuF`f$ml#^Q#g+b22%(Oghd3c}qFTq*EPk z=-_J|EjBpbKbgdT5}PVGu0g;+lu&3#U+`zX!lnaF$?fKGF2Zm7stR&Mc{VNA(AAOf zu<6@81vrw>=o|b=npJ5Sda_ujJYXl3hbF4dh?({+<}(!?0;jAalIQEzoZR>%$inr5 zycV=X;~V#r%{PtqFF+jp0B!Q{f$-t=&V&h9JPkIn6p{Vq=yls3jWpdhMFXX3(@9Xa z=6*ac5|eV7fTyp9GA)Sj8s#)D7ClA?6Cr^Ko9 zsPs$IsYXZA?sN{me#HZ3_-dCiu>CBEWO7v1S-;qC5c$gSIqj@%ymJ1_Fh@A|~c zl{g$Idx5+vmovCbHWa4F_>g^G+Q~UcKv|8cm4 zb#=B;H<56|=Kyq3*%sr~SF=o?)9%n()e_Z5e$;4zQ{FvDq!$Avm*J4}7*l6*pR3(= z8b9>=YV;^W1N3+FSu*0b6oP&~kY8DT$|$=T2vrl{Zr z0{2gwom|uICGQ_eL{*;WD>6aGw0QeEe%GpHI%Hk_%okaaCw0j+)iW|laXHViHN&6% z^tDB=p~fC?llqT?xkt(1&35SG(m_IFzK*O}dF#i)19e5|Ae(q3QFKc(dmG z2>9c?Eag89KeQ6V)FH3rQ#wUh?XaZFw-L z7T1}Bk1+n|RzDL4YLr5)tZ6F&{yWcNR`c7tud^C%Z9$4P>=G)|zZ?E^7VAMgd(|MI z8}{xG%PWm7c6L$Q7ibI1wHMnI^TT{8^^^ym@lU!R=UQ9mVM&{wt9sGT_U9uGwe^jc z(OiMz{z#e|VUBf2d_4d!Na~3?HAsLuUg4UNu>^z$=k-6D?|6)T+~T6qZAMoLNzD!M z9G0=U+Hdg<o1cu${jKE857(qeb!tw_Dp?iT>NC)ZB=O;qMdc51?%I(V!Ys!bnIh= zkrW3!yk){=CLZ@fNp+QvmI6gGR0qG|RKN0QD=Ts+E1mel@6=JBZ5D=cnMkCkhdPkZHmAAs25Sls!BxlRwcH;z7`wzkCS8Q{J~zSlkz`y3C={DC!t( z1v_K3$dwqCfb-HtmmTw*WF5r!EQEpvF54X-JhtXBRSNDvezLQP$ z(O#?DgcE>0^zEm4K3PRtF2lBQbG7)bZ`a&YbMKvQj+^BI_0t3U`0Xa+y+NKUOiO&5 z!MThw!UKGx5gG_<(Dg&zZ*q2QuA#9yKg$`>*or7`r|49!B80026pb-QmP6DR_Kxtr zN>B)YL3gtW*HQ&n55RFqzIo#D<?d@OpJ-T7;KWd?>Oo2MGi&28-&>(|+3cw4gR6yKf{0U+HsL#h+Mf|%w6jU9d+ zXuG)|)7rSBa%J_;1bE0FHm~?|JO@bWDz*&K={W1~fI`r1vxm}~Dtpw|CWBb) z7(?eb=}en0RjTokk?kDaly#XL0gHI06n)97*dKgxaRQ64`o>hgLPxJgFMqfICH3Dc zicR|yx!bUza=L=xztn?!t#UP+sJ>kP$*w$DV|246YJ80YSGEfM=jhe4@|~WVmxnQK zawiFmPz3J3H=p4mK68ht;WP9*5)XL^T>PS+!qy{+ojRQjy);C$<(Mp%3=9!AIxw}R z*Xrs}L}^COs)=J)dTS!&y_<|pq7(Y|2w}gAsMt1pVHy|0CX8Ymix7Z_M6krtqUVRj z><0=iKg&U#3y!7YnGK`n&bYy@to}ev@MbQaKi$$uV_E+Zx$s+08Uo6sfl%(5pr_^F z!H?Odz~j3c4-~-k%lItm@r{DTFS)L`Lf7 z1;)GHxDWq>U8>Zj@A6?W8E(rCIdnTbm9KH5{ z(&r>4l~fq&DF;NT_V4pG%(@L6ZFR+}zXE(_OL?o|iZ7e#aQJ;GsS&R z46mo_u$8R!7v`-paI(>(EEk`&@9(P`R}{p@mgdw0sF7&N&wMv7{b!T&Jz4}5+7KI0Rgxk558+vE=q>CyT!B_aWLbU(%S zf4ThWjS{gF>_`+MQ(e(mGau@#@|7c!#zE2LCwP9(i=Bb7uuu3I?;YnWP$mJ`W_z^+ zJ~)Fd;PCji;ooI-6NMf3of?c4KBT;7Q^O6=)E!r} z^w?o^EFc_;)+5>_JtV8*D0!`Jevt*(SiqC_-4$IH?XjuSLEAsPO%L*~ z^6suwDibt=uA8dtEu%Wu_d324?XT%rR5jZw*G_d{Wp z^ADcVG5jDUtnePR$6EQkC^S-8K1cT!U!L8q0iRb^s?(G71ytEd0kIrsoiCmCwe-5u z)RnqB*G<{v=jD^ZX`mSDFBkP|ADse7_)5d-gdR>OT%cI(Q>~3nhnXz~2A$l`0 z5sYjLpU=)2=GFoxmw}ruvD@j~T1_T7`o;X9HV~ZZ)cld$=tPx1e>2fR=1XD8{_XX3fQNRAJ zpe7f9w^-RypVRRtG#z`6YQ}GTwoRP9(iXdOFFL}E3XW{n?xHR&tt6>MzN9NCyY=4! zp)+dgKXYs^oC4~x&4;#1QM*G->=sr8jcJ=sDc)-CYbFEx~b;BwfE55pR@ zr2~?3UUDOTRAY?gy@qe&-0blp+*lLhTBV=;KUN}fYN?~Rt!vb$0bk-^v?-jFgKkWJ zdi#EFc0X!x5y>~{0&H?q9v?{U6UAFdCOzKw#Eb!%Zdc%Ww@UXunK&R9jc~STpt`eX z>ZM+j^?X1etupiY=fNo96pzx7DFE6E)zKdv%Vag2&R)}r9)lL$7=jF*H9*<#?*tm(G9^gp($qH;>ful zZPrkXOgQTOu>EN3y~{$62a>=ZCX5x%M~E+VlCMg~PX`K_T!9^til@bIq}_-nIhtl< zsJPDJG-skWqBm?`-`57xFtaf`Tbqs*F>y@|iqHHCx}7hlc^>}|OS|xT#>WmlOuSn= z$-!e{b?sYGAWS`hd51}v$@?0Pn_`?ORa{G3GoH%A*O}cwD2fV2x;w}ZFRZ!o5?JPr zMFVmYXuDIU-?U3Nenz8rY?)IIf5U4L+638yoXZ?gmhhOwa?EjTjI_3b5ej%^%^llb z$a*VF%imq&IK1e2+pyFbNx`*+rA;yCPv!HS;}#;fDhjCsB10*>Cd4{)TiQ&(wY^bPZ*wde%$3ExmLt)h> zCr047gzkBORq1N&6riwvZgjr-=Cz+Y|Gjyy;XvmezmgbagNc1R^w{Ye)-SCgJd2z! zv`t+EJf7=akYbD3jB#oiIXz72s1J}kvc{NqZ>sPByg{d#a;@vi<39_A9cl}YkmjgpxnMmd z1n>U{m3E}r5@{__A^$xS2?dqaX^61RKz7m|hD#wwM}Fk+XN$DMRbc=a%8;g8(K%V# zV?dp{;F5>`4^%kYG&3p65{rW@uofwi%KpzLEXFCOl7d$WTFF17_B2wu=KakETkoZ= z_DX=dox?Gi%yj0DXpfi5r>~j-9EA+AQ(dNBk`UiDa$Bc_P^H0MEy{e{FuMWEW!!=!# z^>m#7s8iN46?=ncowjGc9wQ%h#FIN$9W#fsW!i!7DJe9RDzqUGWL512+5pr>gNlHO zPJgSqmC$u}s>Cx2Q3DjzMJq~>)KsZX!l7S+h&c) z6PRzL;rnLgz0A5b$^T*#DopT;SAu@s3r zRb)*+StJ=f%$a{x^We#JEx+5^J#@~Ap@@lv2m*p0W?pfB9`xS52@*Q64pWpC2^tE= zgi=iJG|ns|Z&(LN>rcyE)u-Il_&%gIt0b;3kIZ=RZ>5vBs|_nnPhj)nOCvM% z>3s_evQDX@y{%IuzY-`hiRn-=EaDr%jNciDClVzdq-wM~f9Ot9EoQgxb3ALXp( zPg;WAGBb5tSurDzIME1E8~e~T-&hYC1}paq*t9hlGma622Y}b9rofb(8=x1bBE2_E z_6&|MNhFoz`1J2j&Be~ZT-uxbT~R|>-Y5bhI&f=J66q~mykBy;yW>9qj<9>#&e)eN z>=-*a4$z1o%Q4Qf^> z(K8EUbp1#1AFF82s6NrIP%r(!{i0`k{pQxUk@pN9V0WJAn8WH+oT@S}z*UZSmO@bU z8|ksH(}mTC!Uid)_rrG;Rva>tHyxS^aECh$lfxvFNM|SsKHbffS-xls%<So*%@CYCj~(SJ#CA3@;`cu!s)~hnjZU|{b93P4HIIq2IYA0 zfR0aC*tD&~?a?<`yZGB0fmaB-e|_z z_*#>w8D^pq?Vu&8LnVHmYg%6|Z`e$T`2cpIgMK&Wvo!v;m6|-xlxK_j*ueTDr%s zCU=;%myl&4<$T#G2A_KouRSvPkq>UUcg+(&ouE2Du;lWohP`34+)Yl09>5UvO5@xJ0v>C; z$S)9Js2&mJ>jLc0e&7&&cY#bE)9muH1byZ(6G(3Y(T8MK?krtJlz_d3^4m(jHa9Yt zu=N2_>rAW8GVv%;6rHB`o-RC(R!$yJj?Yw7GaNel{5;HB3tyGNpGy7dVTK-7eUajl z?8S4!a=eU)tRt8Aoqk&^LXG$|b!U&mU>RA_S?>y84T^i7pJ~ky+IBf}329B_o!LtUAbmpv%z>N6wv zh`j$HB^Ea0_gVoHplgJV@;(7x0-ken#;r?GuN*A4UL~@1A{o`mv#~UyJgWK|-llx3 zG^gMW7x!)2_sHYE!~8aEMqiHU)V!)eAekfAU&ui$IY5rT0}r(HEF|3AHxY;GazQ9^ zRWg&Xv0mpQMpH4M(Y@4QxBULDDz z*y}ZVTbfYps)#q4TRDIxxH!*TV=EtwBRrxwqrRRU^WtcmqU?#&hi}dFs;}f{?4iM{ z=^pz9PKE=qZyKzv9PzGVi_s1>kLuAovRVqxxgc*rLqGp^MTx*FzndFyPRD0O zdp+3CzG#s$x-yEpL%!Ck%uR?HsJI4)*cj0H$2JoxH62>pns)Bx7ASF3+n%g}j3!bT z;4F5Q9e~{A`-&)N1~TW#FtZFGO6;gj_!bAFN?ucr#~5G;U!f`&G=4K+o9;c{j;AKY zSn>SgXw(ec)yiMCrrWjF#^=NNJ!;No$Jm@;7G5kqF87aI~eM<(B}Y5`TAbO1HR zj)45fDi;AA+b$;V;eNag-EdIB+bqu+&dkLnYQY?qjyNs_JjPe&H>xI`FpXlUm%nM!=3+8VsX+CjqBXQNWx!u$>bFzP_tcBPl!&@xQMNp4@I*U2s7Z^4{D4 z-{*^;%Ek|^mTY!$ue+c}ZCgJD+?psn=u@z~t2%{Md!sKt810OMDVsS?Y zlk6s~qVN5Qjgm1|?qV4rg;jdS;3l`AEEWW>mqfD&J6if~Dxxv$A;sbuKqVbhm_cNx zTr|(2EtJ+>;W^mI*ns+FKY6!QQ$m_3_xfDP?K??VZPUp7+CCpUj_~z?nT}o2Z`xCp zj9;YL)>HO@<*o!rWOjBoEC8F;&dqQJ&|b%>Z=Fr-dtAZiEL^CLIj#>{3CRL*KDUH* zQl8pB>PTVsOXR|Zmcn;_j)L8OC@oAkQ`kx3EW*ofYzv<o+MDLpG~> z4z9svAL`uRD@P7FZ=}aQ%zh0P7;`;7cWA81-;;i`Gbo3O8V?fLkH15TXDj4C1iKy$ zQc>avS2aAqq5u4R{tde7Kt|mf)Ipw8?^^`3REz=Qv#vA48 zfx3IPUXz8L-`?^wX!XP3o7J-A0@~lNk(Q%o9uzf&*`k^j8W%P1$EJzL*?Y3Wtyz$R zvy#Q1H96p=Oi55`Do&bxyD)e?5tCQOX$Y3OA@*{V<6te!Tsrnn0k_3s53$Ikfb4y3 zyt$cD+m$a87)o$g`{1&+hwNu4C$7VhCr*?}rs_;jjxjd)V+MYh?frNfTXqFX$B`?RSZBfV6aIAk<*z0Ntg+y-FX*iWYNdBnZ)2Q26AZN$eg z9h0dJ^KIbMiZ-e9tw{VA-M-0xG-}2)Ht2q<)=TN^C$UP)F#667WCk+qU23?pf<4E7 zftf!wOYmq}F&`4!|MF60$JMFa<@_+M|DxUHJE&pSC%{uC( zEc>qr>EQ4RfSD4@h9b-D`B3*6^gp5^rrWM6n^Kf-lvG)oCTkBcb(V`)&!1ZcFF?$3dHf#8a5lu9f zR(X=|VP#3kM)N2u%4|l@R-mytuwfu$SL>9#Y4Xh^$Yy4O%nE!GvUR1_|1v^vT#Fyq)sZCSMfqt)P{u>P)D^`3EB78 zepjtEB+T zR-9y;2v4HX)cJw)za{xq4{&a-`l{gC(#GzGj)BlFHw3eqdjp(eKIHITkN*eY{RZl0 zLT}V;Y*fM}ysv)9B4UL{aWldy6)Y?iV=2O43i@FV)PpRn#WHCyZ~a@u_MLM zy&RV+ifw#FimJOC=|o%|7Oy;8JxK0}pKTu6)_I93F|7zv>r-Ttv#E?afdd_~7gT1_sMf`R zAIp!SZL6ED?B|ZJ-R?fWsY&?zzG0l|4k{>HyNcMLh}H3P`KwM0WqjIZ^YwaA>$uyk zecQ_Z_ApH${CoPl&; zGEpzjg--F8k!n?Hu1FpKYzK7gzFIx{(e1HjhT z^A?@mt;(DSQ1wD0+wk7Wl5>q2{z6l5&iT?0ak94M>0X$=hVRwv>F z;-?u~bKEx4yEc5vMU-Q}qPtp^E>43}y{mMK5k6r&!c!C|t9TF)S+RFEnEwt918chp zGGH@8kaZ`vi~|ddA5HfSz!;9w=UDp(o$}`y1~#<6P_{d*p6kti9%%&-~0@xs=LwX)a5T1LiNF zw{tCROFj=;W6gDq&Xxpp{Txb&E_L|K+gz*9J~@Q$Ls?Yh4+ZQ_cOChNX{TsQ`fZod zC4){N&9I?krjCOK%9;{$OScCD4goEGfXC&DieQg0CkJV`^=oBNmt|V#yRY)9QS9aO zlp1Xba>}QB-;(@nQS-ilMR(I5UHGV#9U2bq*MtDeS0|s6uWG}P?!0Ln+p^SCWq0E70c?o0UCN(jpEazXYs&Wndd1`^RKI?o`^;x` zY#d=e;PoT85PU}g9Tq%5zdFMaWVK90bA4RQ)q+JzE>C`E%klJWtZo z>;{#8-6SoeE?6#*X_#JowmoKyYdaOF)Ul_SKV-ca>t-kDhC--;Fp?Ki_o@C6@5OO z(yVx7;`{M)$7@y+xn_9;cY(!j@G9jeRU#Yr_7r%sNiBE4+qPukRj%+&`48Tx|5k4r z-TClYv+|F09o(I|_+B$0M7uDX|Aq1O*r-$X5^w8bnCLsWUUKOaYvT0Imzd67PhFlF z>9fR^cT8k^na|6*y8i%~d<=nnHlk~ai?NoKQB0NsWn#~aUpIqKw~n+P14$qjDf{T+ zyCVlQy|U@$SK&OL$27yRkHGxLj%I#hSLua($JL1rTtX$XEdXCWyJv0BTf!79< z=?F0y8qlO7%1Mu%Z9s^>ayIkA#<$u+nAM(4hgyJ+K2O3P@n_yfzP2f0oa08Ox-7M{ zXoP=CB)7kvfHhg57s+NPcv!WsiBBvim6`MVM}~gH@I-`VJIc$*kpy6{LOfEpUZF0{ zv^1`}%}7}41%MTSG=g#Q`m*5V4(i~|e{prm09nCK(g=F4>BeD0k00mDM3>axbGWT6 zYio)V+<;Jten zkl+R|Dofl74iBo7)IK6d7ujEc6?lG1X`Aaa*CF3)@6})1pGvuSZ+>DRlrre?W&G8E zT8S*Ra=TU0T}6X8>OTNC>C(=HZM$jDGU)r`Ir`sWtr)xa7EJ=SJmu|Sd>T51a81`% z#Ve=|>-+U&L?O*xO>Gq30PJ9Ml^geX*U6n^;gOz<9K`U#`XLre#YUL0`h)a8fIFc| zz`oCYnQdTd9OKXzXYE}<5H7g)A0Xh+@Hh8ShyE#pM_3@VRW_xSZ6_Y$4((tP2^&>d zUnq1_{@UnohCW4*=~j$jwQL8UcB?c)2=-!-J1s!TZ4l^+*RbIX@P6uZ5q|yLA#Vp_ zc5q6zeJpQI`@ZDZVfl^oj*GRQF8a@ur1q_9YNu>hGhT{9JTk15-(WAD(IL-aw{~l1 z_n>q4@nO4z1?14xtZ9g(W#V&!iQ`UbVHCM(Ztk{GsRNS&Kp;KGoSycxHe2-usCO?WlnNyhpK8S|*nd(!(k#Jh8<-gjbg3!Yh@-?CPo~t` za=G6O5n6uP;EPXNE0*~nVe*dI;0=H890pLaHHHH^79x)H+U5fYVRq zj^0o%TcBqJcOUBJ?I$<)8&Q*;y{L@35OODgLeprl4HE&(KkjShaAGw>p-QqVU85XW zjyvrw){iluf$C`f98f>eKT{7#<3c;dmJNL#HoSBn$06w~#X^6qyA|S;=`I{~8cJ!-LN4>Q*9#N_&GI$kbAs2FK75~ae zn4NGykroPrY4NvQevs;DjYTE_D%HHC#N$ELq&@Y5L`G>s^5!7)n|$4kQ5=M&4g1e0 zGg;|;qZC!zA@v2%tmz2Mp$nf$zbihv_khU2T@Yc5Px*NFH&0YyEUO4`a%*la!ANfNoOBAEE@)4F6!jn4^%_Tt)!f}3Rv9mq{{OKpH^zbw=aH6WS1{KX*v^&UF$FJ9vdu) zJ>Q9ZpTu81k>--C@j-xTp^{LkuPFL^uv$Q^M=cAC>|1!amO!r927tTse&~ zs9DjFUi2mwb{fVDq7`9V8DF)Om9u}H>h%Ls&dxM1;Fdx#@iA&CrJwPn)KRrt3m~54 z{YB1=#@bY4Q5MGS0NW0}1fKwGH?RAQwU1F}?4SI8RXi)LH+`vgA{%OhlZ$ve^F7GE zEIN5fv?YM!kJuN07K?!KULw$MPi}0yEABdiRB^IWW_0IebcjpFHYH<1&;(wl^pEER zTi4N;_pzrWW#l;j03AMcI2pSLj8IdQMbTJk@?NjbPkK@;(gU|YDXy1^^5&uRJj~=R zipZ3kVu68CtKP1{(y6@kcHeWrBYw5d87UFZP(nU7R=)!>O2hZlfz(kgSxb!@!+TPX zge=bZe6?ap0c9~p2d_IezuQfAPi#=LWjUp}G7mN|=G_xG8p{>2@X3uRef#AeQZD*J zwU`cdqmB%A7AiZVE#NH0uEoU-){RecUh3MKIap9}<423qz|{QtoOXNkbqP4XHe8!n z@4{hpInS?1eHFtKGy(Sdk>u{!_}db@8n=G2z{Abwyc=C~22}NTF)P9qE_a>qZA}Ab zCCQYa@NubJ{r!}-Zy;0ZYFUEq2dZ*I3tPU>1w8T#)>cT%h`nui59M!?`wkJy0`lNd zW!++pg2d{Aiwr&r2cfQvvM(lIgvVJ!@obkev8l$>2BG57vI8VKPOurMCD&)q8?x-* z$|j7(=G8uF5k0ry1QW9n7u!T#S6^FUt@il)2Xxv+!Mo}jv=#hk5uJp+yt`Ytl9z|T zH#W2DPi@OP96wdQhBZrjHyIYwj?yRA=Nzw&qyJd=n7Sv^jo8Lr)p9X@7e|?~F^_K(hQ)K+}C<;k`(rBwag)jmON06N7l8lUk7Zl27GUlwM z(E!f8aUz)ECr9)lN8854J?i4RuaGf=@pj8jeIbGqW-HDGwx$im*xyUXA59p(k; z+F4%|nMC-p;(Z+-5f678Q-u9Q+lw;KzQx^9Io-MslcwLny-h}3MfHc%s@d^W?EXFf z85umw(LW3BX-4KfuI40by47EvrMAjEMXEH-RJxsATG8|}<)6agGvK#~zRTTqrJOr) z0&nDgN%M1|*XX}BZjY|CzJKrJCi?UCm3Lw!XGODHr~_^0ngNs}8E1=tP2GC@Bo7zt zq*4>tA5MXujGaQyospjC@h~Ghr7L(?SUIyj$j06=89lvZUg{%86VR^l$-00WOE-a3 z0UZkR^rPwu*;>d^W))n__UxI@vom=2eN3>mZezYS({30*M>HIzDZX#9@NqWtU_P)V zb$y}%ftw&3WjKQUv2FONXi^jBG>j!seBWjmrCJYmSKR7KlkQaU@^);RWRSnY%VMyT zG`&Y@wbsnauXX~O_s9RG}aD@cE?MJiFL>)l=6w@;J(oZq`;D zzw@xBuHq`V@7bm?p9Z!fPWUNX8 z=G-=TfIyyZfG-N2^M}8h@>unhig{5DTVLm4)J}>T|qM1>=SJeR+B zVA^XzzfkuF!#o+OUPt&Zt9(2{WIlCqf)m|kQkUz!L57j&=^o@&5rLJN@x{Sha>Dd? zuc-bYn#b&yW}6}mXUHfE!_Y26AF78|=_vUqflsl^YQ&uOJ|S`JBwLjdKyMN=$@m(K z+-bQE0MSQ@d9aG$AiZ)Io$=2ZJG7P6p%|vSw}TgC)LV;oc2~fUOO&_Ll-!GCPZ}`l z3|-=J?o-zdk+-1%`&^@b3xw|O8f2he*$T7058VoftR<<;{PceQls3|7h4+G@#v~fA z76w61R7=8;j<6f2QZcLZt=ndxVu;J=CzYZ|keNQMsnr*xLX(_|y(2Qk8EEJY9_Z_6>W}wQ4UTPzY-W ze}BF*fSiMCTALo(ErA|62EGgG=elJM7FUezYgcT-vE|q5 zc$A7z&942HYqpN`<#95LCb?NuS4x;=ZcU2$#dckbO+U78o7A6x2zL1tF~3wffZ_mB zdxV1cUaW-xzPXqT@WK>2ATl-};-(&;XPSI$z1Fo~A2Fw7R+OFA>?)K0GxVpx+$4D6 zdI-7H`m%q7w|}Nj(8EhC;+s|D1Uj7oGyFtr-DNBP>*1=^ApBb&b4ubX`Jy|C7W$9f zmW~=xzTOG4BtW}{yBgwon=YGJ5aZpCY31-klzK(il4|(*O3$!GE`Um=SqP0U0QdH9 z5}We1NmfESG{~O=FGTSMZlLDRzpwTWfW>G!Aeq24S%$~1KsHj#p9I&VsQYHluIAQ0 z0Km6SLM@1vEOg9ZxY^8M=uVJmtS-h?Y45gc<#V5i&@=gz7hzCIr6EXonHUK)J~T`B zbR0_o`3Fgp$x{Y+&2=X}S4NNU_*qyZlT|(RS8!jrlwrGolHC3Qth<%NPd%2e^t>Pf zmP%M;<8-nXxjj~Hh6`Epdya5BHU*_mv}C*m`P1N++vl?D2}m-j!T3g9YUr2Rb9E}8 z4W3N?sLSO`?b41oY9j7WO;B+YSKI)^!9?4FzG23DqqxJ6cTrZ-{In`6z>a#cEH3UX9SalzT&?UW)Veq^&9&K&@*NmLOhwW*ro3G zioZ5Vy#_|J!yn+<5-323`|L#3wng?YtiXWS!zJ;!96~498%wjITBr}w2-~!aHVfRU z(J-&YXs8qVxp(uuPu2mfTDeVRxw5k5V!RC zB%B~25`wwE4~Hfz(H`A{*;!u=_71Q?pnpNdHGf>xb;on85?sZm#NfF1+IHopepD5*bsRJ)HoG5di z7vcdN`EJa?b2fBEuO&0pFCLJ0T;O{;5nt_mZW-wX{msp;nkq|?wcY{?$sA^b90Fgi z2g4qe7MWnPR&DQiUVURoj^B@RpL(bg7Hj>Q`&rM%8R$GNDmtxZw6$5+gM#i=g++#r zXC-=j>FfzlO1@C%^mq7Fs>)pVyNZqg4;s;7)wlQumI=K(c ze$f2h=1a(~_>QPm089N&+;AutStwfyRU>LTxu+laXaF0V9^gO%(XV+=d?JW5o&kN6MAnX`NA=Qn- zYG}`)AF!Z9_a5L|X^|jXbwsn&235}n(nG$>Lk$8ex%9#by2_q1L zqGXXKnMiT{;fz9I%_hp>8t4>KDB zKFbs9sk~weK{VuWA|N@rETaMdZOs3wQPOS{0}#nWgm1`F#uP@HJg1cl&~)%Joka*n zZ6YZwNbZru9O;=9714v>xZ7HXZM}*nx=k-S$#{TspW}8fK+L?8TaDj(`BfEDbllBc zRqGUwnSxEce=pm-uK?+oppm?q4mn1Lil@Z4vmiovw!1o8q`{Y~UFOn6y_z{eIA~Zu zl@S$TKnlAH1V*~EPo4f!p$tW@n?>+;>%V_oNL9g%Ys`UC>c7)Ec1-Cu$B8qG^4J%}DvG(Kf;k zIj}7P^wbhYA9b5|vZj4;#b|ofOjelICJ*8t%&S5c%ON6J>Fl6X8On!7?DZfeuOkf& zj}z@4GH7?}qBAJdMWT(_)S?nLQw7&D=FHN-KF1u(!4{+Nl1)2sEuZJ66uOBY!dSzQ zpgGVzNgpR^op}4qjd%i?6wyC&jhyg2jC|R*5&NFGGQg_l+bY`BgK1 zeWklDDgzkTlN|&-xOtI(=JB(QmtL2$hdOwMQENT}{0FWK{b( zdCHjkv@JLx^iAk`ws4nv`4!<$0*g49{hJZ_uEJ^2rWR!fX4C< zW{hCElZBgex$j3HGMVKb^c)W)VIAT`t^eL*iqXC<%$Px2I=~p?ugoN^#-9+?2*oR8 zKk(~mN01+{7QJsNgQd3P)ZreQ)2YdA<5+iqfJUpz9rG0D(SP3L~ z!}DHl&xNnmnh){^FpemjmzVN#SwZ3Xb_S&IyizFp%JWHg;Fq?4avG?-~U~ zfr+EBoO~x21}lF~0SEQiDah_YynQskYl6{DYzWsFE|Mq7lL&#^fp+nG3wi$5BQ`pg-w|EBDT$p*H&mYSyIpz8u8^ zRKfudqa^Qa1n$?1(gq&&L{U;AM)PP8mWa!pZNzuQfW|GU6~A3ykR>hJS|GO19V}9t zn=De@umTz#W11?INXO;zBj;T--tm}|n%Q`v*S1E|I7B z8RMbyeTS<{eX4j%XvRk)b)Qt;vGH?vb?_-yeY-o6WFbMI;zmdO5ln;wPj*Ht+{kmd z;Y5FG$#qQGR^0^D9|*2zAb%Ylkz+-NtdM;TBnR=TC-^PK_%MZB+MRH>84V z0f)Yr4$4G;s@I4#Idg1PPp%0hT?2RFjnPozBQlc#k;SB$1Ot(6L~WrTQq%I!0JhU>bIL-;?3t~M2SKZ?H7#M6FVg}(E9Vh2f*>{|yz+Rx>!oDR66 z7R>|6ns=U96YZ}p44F(TTr|(%=Rk^!2Nk75rCpcGOdQ%9eBRk;bhtkLuy@IN)8Ci^ zqAZ7W?1FrcWnjoF<>o$<#Wl${JoB=x+0nQ;=R!i6Zz{)U)bG5>a)cG+2#I3vLxFQU*LCFowM{<-!@7UNyKGZ z1@s0xns8Ee1`oL?Dmy?j7wXl8Ux|oHjut;xckTYvZ1yJlc1HBd!WgIj_SEs4w74le zb@zSyo_{|b1V|`$KjOGHv;_kVU(rdrX7lbnT2&m+_wJd_vzPQ0JRM6!9OP>fTdP&O zdvsIhf8keO@BNKNLK_|o0)(FZ)pO{H`kRL?OgGNkGLrYz@SerWK+{9r&uT-caI#F3;aaZ-{GeJvu z*6?Px$k^Cv@TpNxiy>;0^3rkXv>j!~Nq(6o%;fv}ov_`I;BD59KK4;-4 z8Uwz-_I~-p%D<_fy9IlnyqK-Kuj zOS0K=k2p~p&N&dB$bop8NOG-$rG`iJ-RQesGfIPBI_H8l*)4ZlTDB1NMLl=q zWbr?Gn43y2e6t@DrIZFhG@;VQNY}!#Q5UcFkP`XZ!O`u#9GUvXDF9>vT2ia;fRlMx zjbci2o+X7-8YKdCNH1uI@mE<<^eB8OvLafxGXl^Z?&_rDUH;i(|N9I<_Ul#J^W}oN{i36ibOZQHP^!Q-g7m@=-0OdK=dbnMmnhKu?FCTDVc1Qr#%C19$_0cdBtnA)78uqc|G|^WG6pS+RJ@k)nXm}!e@{o7U%6|-s;NI4JAog z$o>UM&_KD6SB>!Q(xDh+_k((HWSa(0nfODLA;ezgi{}%^xcg){?I`4XB;GctZTFwJ zpdYd<%z&<=VD#Si&OIt+mb`NIgZ2F)njS4_BMyBznNveLhi5}+ugBwy?wD`Zio4|* zg$0#d%%>`J9Jt77uqzprE?(2Lir&28mt~*ALe!kvN!0T{`~5Z0R8Q_nk)|iy?&w)pyzZ$;$U5KGrlV9a%AV3f63D5JM32il#YaS)e0BKoUB=S`qC(b6} zqa^cake~c4SLjGo`TT*>17O++HvAK)D;^gEq>U1MEm_;{){Cy0`O5u3F6SS>Kw5j= z)}^UiZd3Ui#*WPO+XcLnWHF@pw9DMMsuUo>=J&CS<3R=0=yrs3~SQFf;=zFD;`&=if@8GLAQ~ylL42lLZxHL z^MMfXNr87^F|EDsk7UIv2LA>Lm>kDBi=K`L-vC zmr4_|n#RKDuhhW`-X`xiHbsv60`B{wUMSjUEzl{C++Ydb#r8sLoLyx~!VlmnQ-r4* z(TfY@9r}6{vv|f>mEp&LJ{oWgR@i(f-!#T`U;)2pxD~{I+xwoOD8dl&hujr=(Jc~> z;CsrY67)(^~-fp``v#c-?9u`<9p1 z5d)$UJyev`0BZk@Z~iCSkpFj~N-p%w$^)p5OVV-yIE?=zzCdzi959MrO?l;F)FZw* zP1BT&KQo1iaZU-DGzi2G_6iwC*dMo-3%w(m6bf9X>=PjLF=;I0jNNW!QX(NmH#&^J z>#yg3D4PzX;J}^9#t(J;ewHh=J=fofUNvn0=SkCD8rAzuc|1`R)F$h(pULVPv)kU~ zJUe{|%ATRq&~y@ptpij)`;3(`;NG2gy+lx{-Va{zn)_E9eZe04>K+hakiK}lMS51c z_WahoN$=kBurc*weH0OJJJj^ABGuNY+{$*{k$g3NJ^m7PGSgTm#})&Gv88nX*h8zn z<7XaMN>gYWl5Cu9drArz#&A)rNOYMRite(cjg^s(=_v(+5p9bktNxDb1Bre~sPFIT zYj*7I5TVNv836E(KL5>IX8Q36O&Z~#5Z1b75JR0o>e|}g-)T}VLiRJSXsSGDRT*Mp zVm7Tn7Po`GxO;5AJA)IBlkCpxj-$^o-vpfakm$vOIOrmtl`D=um!9e+A66=Wh6(ulm{tc;&QaFfi zW&8fX&3ZwKJF14YY+QMMm-UtnZs&YIbj`TPIa|AZV$$tf6XNtJH82 zFrZubtsTa*$F>T;AJ#h+M&5$U&tx3jjIwOgXa*w~EY16sO2T5|P_Hk$^TJdYY zx^&`fq(V9}%OtJkUu?T(y!D{e3C(sPPg))k{fRcdT0B*1#Hv`yQ$E$yGQ>Xi_QO6Q z9#G54*TaQet~*m?Zz825e8zYfT*Nh0ds85Y;*kmWk?Mlptwv?JqIV89+e zR!@zF*))!tgIY=p_#$DW;W752+ddx$>v77`@&Fx-o3aC;4URF@hJs%nO{(rS$Of$m z$HYkh+ewWzDxAcQZPIYttCdD1As5uWME}zOkEAJF&*Ll(cV(B1cnX4!rVi6b$k959 zW#wz;_nAVruSHDpH4ArPl{@AC08B}`&AE8kO8SQTL2W;LQo#e$1~;TO=RwMGwz`Qa6z)VS_)qBD=X)*EEe^H zZRA?8SjZjbymrE23>AgT5#X!IAUW`8y8J}k>m6r6Kg)L;_iRdqy>-dXOXC&li@Q?$I#q+$!`4<_0-E&;h@5ucYrWj)ZKm~1bWm_y z@fjTX=I^kb5S!&r4;|M5ibV1Tb( zzG@G5cPg5~M!dxzi=(BIiRLYNnlnFYtm{h<`Z$=R>*;-MX1nmKRr~F6mU5wv-`oXj zvqvfM8brb%s6~ThWP7W-RjM#A9I}&C(&Pb;T=}!eSyAMyw=l(#GlGqn=J!Op1>PMt z)ZHoBvBiHjO=yf*k+=y9NEubG3G}CAnRx?FV3YSFWshUsOCLGi^RVc+@R*MrAg@~U zZkerHaIM2C-o)^k;5kVYouO$pg9Pt2=I8;<(J}AL)eemv7-a-VG=1g@{wP_N|#4Q{un~e7DQNkMg z=H<@Di@f{ei>>I7CO8++X1VcfZ~Dq$+U<|^Qk>tFNK$iprW zImyi@ZO57TXi3=|rb|2Xci8ykUM{_KZo4MN>Z^aLz7`)$QePBwbE*5rL&J58YGN$D zZF^oN#tq@ch=XCQT!g z#66KQp6hOeY_E^Fv*n5Fdap26+`6;J`X2z6K#z5}@|t@sFZJSOeLxoz3aGLu-`Fb} z78pBibiPty+t2?j9N_MyQTIKCBot@yhYchs4-p*^NLVH zVgPg@2AyAOz-}~6LVJgkM9!U18&Gg3Z4=1QocTQ!5Y~m)AekdU^H&FswV_6qs$Ke4 zMR75FS_5tjVwAB>&%ZSrFCDGq_{#C4GozCrvYTq6Q29`_q&1;TY8scg(WU<;j4$|= zfr{(J9$&2m+RZ4_lGV>YQvE2@B{_woso-CJ*B|}?&W8e<%I=O57iQc(%0S<6?`CA` zY^|F$%M&q_C)Y2CqNBe(cYM{5Ew`=4eO>H7;Xer`2nya7$gdQlVEr`&!1FXQEM@P$MQbKyVeiBx6aV)?IfRBD?RmC zANO$WN^2uVRPZg2K|nB+#@mvuCkIYratnK1{80pvBDm}5`Q)r3Je7_oKjw)DjHkX4 za_4=I<&oOhbjEKrM@z2&I7bBqrk$ypjh%6=?0Hh+EK4k`&{$X*e3RPt3Qr0RNO_fR z{k!8=NvP1^9nr%v-lg^?u|J4<7K57$OTdF8+0RsDeSSkvzZA;B)~v`&7$YK;y95F<8>8#A{E{C}98LQ$e(nd`ib<5G)+%W47Fy<5 z7TO=#F19<>5Z(K6TM6Io_GDQ3CS)=3!FsRYXM4GQEnL#v_R&W{k0E-T^CU?%a1n2a zv2H<(A;QRzXuFZMe?Kxwop;pOrZ|pmoGliqT1EWRSA9_+uMe(A3ogAUm_Rgqnu?_WKIk^kMS8AYvA`o%#v6m^L+N-kFatv8iIJ!Zuq`n zdj2-O8Kr_r2qx;Mx>NCY<~3^a|4a;4GjL?Ij=m)xr@W@Z^+n{sL~DL=VYH=LdiY$? zJ8R6_Vp8!pDy}b;PP(_NQ#0gKP}fdnSRpnPt+Ejy4?e%2m4sejBmw^b8xC$3?aBRZ z$HQnrGM;bJ2L3FN*v(6Ni5f!KaClk;gK!lWUQU=7sqQA0+-sf5gOPbUD+K#D zq~-i4i>{h4ufO#;I3lV2zT!ZrQNe5+_r;POyAK?3|3^Q-OhE{5+_EQ345*)7Hl?Mm zv@j~z;$A(X!Cdj;b*bmIxt;^e^2PR)W=36db6S6!C} z5~~#E5TTLI)-OKgC5qlbO@;axWJ#T8Ltir&S0Qm3znzU~qni#^11XAjV2Rn<_M;>s zg47=tzd~mJN{d+b@uiIz7O;1=c0Ran)hYp4%p)%mrg54&^t%*4(T`lWzagQ_rX!oZ+{Vs9GA{B`D#_9VRucg}Ex#D(h*GhyUD92-efbkgBb_o4=RMbyi z$}a0r@IQ*6TQi1;YL~`e4|x~}ErnpYXc``6!oGZq5R4T(`d#>3{h;(aG(La>ta=U9=IU-cNX6~H zZTk>E*R|-UaJU!gY4sD|J9Q@kJ-G1b3biC=3KE+Yf@=z#($x6!k6vuEe8hG95vjEc z2j9SXld36HJoNgEllZ+>u5(RkTCh)pmTZ85_#|6_!S`~xT|41v2>M5mG(At>oeytIRZ*Gg_?M@GF#ZoU-+2IFNK?jFHMeK zXLAQfRjw24AiwCSqqd)ctNc%EO&cC`F~^Ns4T<;~&urekR6XtrO&3^lc zA2@K1tSY)0-%QD>*=LUmm>7CDa8}Pw61jq@yA|(VA3!8$_!b4mTXIMb7sxpWUH4ig zxk#TD%#7`ZfhyFVIQEzHLXUc8v!P{6TnA;d4cJQ-E!aWFPRSM9Cj||pZbn|K-q7ma zyp*<3NC!F)Q~g_Qq5-rxjKfrN&T@J=8YQTz zr@f)8#{FszGgU*RXwukECj#U3)7gpw3hXFtwC9S*m>M49PE5@;S@LFHBsNNrJI$E~KQEt9`}2yt!%#sKT? z&yNSyzk$MJHxmRoCQ!!hc3cMx5?wW6+mWZQ8FYx}fN9EIe-d!mzH?7VyKm7~{sY(t z4MbbHBOUuwFCrZnZaW|b`2Cj=A*1;1U-BkKM&s7klVuGjJrAF< z_gI^$0hsAt?9wPsKZJIEx5g)?o9)fI)9U1dwPTIlw9}3t7)-SneM*Jq1^P3~J zEi$-7hJRnO<2ywE<>8|BUw%~0t>Pv3KklcNpF07+)N%BB7b~Z} z*klc}f4GtuC4YOeO%ob`SWJ2vXj6P@GI2hV;rs-(iauGCp!wZf6Kjjy(=3(fxMhS|e+qys=|w_HT;|aU>ukc*Ejqe45|P z)SMibE?%CUbQ1XZnfzovcf$CT(75LBWG&&V>qgW!V2=*FJPNqr4AG?c7=DCTy9WdG zF>oGed_4E7yTyLXlAZmxQflUaX6bze!+b?YzWIPYt-|)))R!41Gfpbb~CAlg2P9K z;2Y&c@}>rs>j9>w;zXJ^m#u+2*L7YseIy|aF8{6?uhs|A!h$W@Rv0X=oh!HE9 z=k<{YIeacVVnr!>xZME@h6SpzdD$xTQme;l8U}V$+uxE&(r2J1zk>iD%Hjp|x3K8b zj`2SCxlMt+s!YE7V#ulO5;Cs0Tkci8b++x9C4umosnGABQOI^=$rK*}oT%0a4l+0&;`z@Cr33FoXd@NF7x( z(3w7CGaa=BIQhZXFD49h9&8^y(&j<1x6{>M9SwDa4nXprsxD;czA!5PGV2f;B=@m; z#^<3l36<^Y9L!{;WMn+A$Y;e?#Y6|)Plu)%?Lhjw!`-CBj!;A5r#v&>oe@0us zE#%sJ?x#{3hT8Qst$*cyl^u^ZX-#8}cUMK^6vG{j7suh~kwPbqf!+sK*GlgpFE39o z@8W3h>UiXSZQ49?>iNB)5B2``_OL5%7lo}&&QU=LwLo5T((`)(e%H7a3fBx59&Ac3 z$|nN+6|?I?91^@Ae>E(|Tjrt(@eIJJZy>&yn18(vcpXk=dG4`(rSAZfMm=%ij@z}i z#>PJE**9GuAt(U3u?fk#&_#&@{{cL-w(c(W*O>LvffYOR1wDGZbt%8S-;UkkKw8dV zR!)>&uCkB$`_qRaC*fgYi_UAYqqI)JS52P%gv#5uJwCV*7x&ZRP z5GkLul;uwPn%+B^#@*DQtUb*%j=voCy|32`g1z+k&-iMqT$APeS<2issKo4AHRU-{ zYU(x)4s^F!`q2?R>}hWP0Vz~4WUeio0fzm84w4F?ZZRyNmY3HRs%t!heI&{cNMssZ z6ND9nTJ(moEuMylIWJ9*Qng7y_~gD8ntlv}{SOveAlw#66XK!g8l+9aq4pI= zRbiGSUK>3<-ZeQQ(47aJ1Z@%S!VpSO8dwuWmVBsy@`Gg?#b~8WKRM1mQl78lk6}1bw-)E*mqXY*}sT=#E{@B|9A3(SM6)uhDrCvS=W-_ERaj z>312gKi__QKq!Y*l~s4zfOqVgV!k3-GBDsq8}7OrOB(AW>LT=o<5-%h7>3{ItSCG` zNcD^>st`^Vw+DaWsU*aW47 zfnMo^q4)AJnN^ninbPdshLCQ3f`&X$m`9SkLVo1VweHbb0)hU z9cW+#`E0jk&81do8sOiN;{M^aJ!OhEu za9$%}@U3QPo?g=6&(~(BzQ`&ibE4a+BF1-9cst!@6g*nO$^ngM=5ZQj+gEEptJW`8 z3x6yAm5f$j^{z@HbS>7P4Pg%nqs1)6M3+`Ontz%_?8wg)*f3KLo2)a9T+^tg12EOL z?nZ(g`1MIe3zb!uDZk#j{`nzKb+i`$$AG+4P>9&K5V4iAjbBI>0mHo14zmORhruwf zST}*rqN-z8zxv2|qx*7n5x5i{`fdH-{(`$x(a%xi*#4-RIQ48i~oP#(YODXcl3WAQgYgvO0JBTG>0+*H-aiS zUM>(7CMq}pc4}VwEI{b4CNPrcXmiZq@_8xOwmxs3BjBz&3?Xl}TE`vt3vLPD8z;B# zc5n_{LJA$Rv}Ogz1;<_e%a{cWHOroEl#Dx>Iysk0#(|qkCTqEfj~ClG24CM+%3fIh z&t9f~fMF@km(!ZX_n*93rVo&w9qnTN0r;guA9HI<%3zss9zIE&OD(J%s~@VA1HujK zWHqGwSTo+{J|XXt)tB;qFAl$}#TyF65Kz8Z#hF~FU=Oc(@^tdy|8e|MwtGKSz!_8L zMzSqVOmm>GO;%rWwQbp{4*bt9hZ#1FO-we1A3G*$kZx%YMktU4EEmG0J6ZycZH=@Y zl4dwk@D^klg1t^IO}F03dI4FngGdHRTyIlOd56XlF?4>;6{wi7;;JuTs|#J_sy6;q zs5;bw6Q95+{jvGbUyoKkh1GEKYlWBLP@<(3$BgJppTITmWGPC5hUBU&NcB!}{g|oL z^i7AzWBwnOzA~zfu4_9ur8t4&?poZvxVuw|yK8W0p`^H5ahKo@1qvZZ@gN0?JEg@P z`sMzf_XlfbW@VU6Se$e1y)VIVVcV>R?Ki26V;{m8z2E)R5Hp)3DJ>n5j|p&{uuqwb$Kd!+=M$?`KZTp8N&Opq`NZ|Yj_}w*&`7harOvox@ zT;tRm33n>kO1V7+CTq{{zK+iO_oR72>YPPC2ojN#l^8l}#?)t0eCrvY6p^1?iBXC% z*6b^xTZ*(UWGZXQNZHXelo9`h*{M8{H{|Ky;b+h%E*gv2$Nw3V%n5z2o=Z*LwWa!& z@F}LD(wSsQD0Py(7-h)FEnd-Q@bF|Lyp8-*kJFG{LN&SH;6{c7XMWT&r9*|x$x^+| zX~x$4#7Fw|U8=;1UXJi;6$u)zBfa0(k8xIRQr9J^ueO(|p2{VM{G~y#0?T#vmif+U zf2rP*#bpK0mN#^^N!VkZyGhr0=K4R&=T;`aj~JeL+kXNVcwO@-(tu0Te>oX_{{HK< zEI!6CV2u(KbEy9icFiZAT_CLX>Fub>&`6Di^i$2j5SQm89dsgP^>6HU=p|!Q*`QR` z1ts40KY*H{CzNlkM^)BmWU~xk{QU2UDF+*QupTAaYr?_puganlR7L00RCplpO&wQ! z9O{S!4MB!lBLf_y!^UR7pvak;P%X~J@*4Xas|RH#YR#7NKfu9FMF+aoDk7v*5r{k< zDrN-A%y8y`i*w%-n8*$5G0?a=d}E7kzBjH6HjA56_+Dp6oDu8oGp(AzE)0d1%@U+8 zA`}4V@q~DUXe;J;+JOSg^8i}YHPp3bf*+NKFng-w(2P8W*5+Z)>P&GJ0~Q)BM0AqJ zCL6&dXQ${{9wqw82>Q>pPmAEagSZ;^|xfuQ!tcwy> zZ`zfNnfuf7ZG|wFtm{R9-w3av;bM~la<-``owa^6OFGf&MzqPqXVoquR>hIfxSO5w zw~ZY5XZ$0(yUCi;pcYlNs6SY0F|K-=gx{?*w~XTP@Tj%lhSOKCb13={4;s+Ak5|a0 z%#-a>O9sP@{ZvkGl)Bm4?_;jllq&G{>s;GN?U^7=sPRIn)@!7XXuH9>D~{!wBtNNN z_v9%g{-JPUXt5SnVk|Zig=IwUToPPv$AEhkcwWZTMfFg|<*b7oj%YBm0d`(w>6fao7!T0mq& zp*&`(bxo)#+{wKf80WJ`&}zi%Zqap+e-`|5jeP31E=?l-*(TNC$IQh9*=YwY&53^H zHiDk~*7iIpmklp#ExJImW(?;`pm$6%EsS%wL90^IMPhryo+WmEzsg-Gam_uhluv{q zY(^DNQ%U|*y+z5lE={iNF4%J%cjs7SbIGR(a}L93;Ap_`VE!9Mo1$6=(JLT~bsA{~ zA7iyrRaM`z(3XuBv;6lq5^tuWIra-%b-i^$dmVIkfX+hLotVj;A!7qAWm;Sxr}Czv z(hECCH&Dbn=(+k>x0`OPguzt3j6Kkv@NWErGWB*rFL-MUD~n7!f+eoC5hi8GK#Q`{ z8Kb@F&h>YMSJl7atFl+xAOPX+$1IP6a~p;M026ZX`C8;voa1_RlXWG=)n zmBJ#;N0zhM^b+}hg-iDZR4MsRX9n&nUVM7b5xIo%e6-3OlEY(?DOavA9JDUNPoYbAIgRJzOr2yH;-G>tFfddEhqv+i zl&Dz;)P1=)$Vi?0&@7wSIW`Crk>uA|*;TbM>2QZpETQ#bUe{;}-JxX&4%U#Lj1+Tm z4OLCah){;c5~ClO^yOfFqHl}vmT~)`B{{|WsQ->$WN8S=XKaABu+PU6B@=DIXC7yt z?7FUo{ejNyTb%WK5|JmFdLqhL|1n0I_o_Zt1d~H8Bf`iSfZ&3H1+&aVA&v23bo~}z zM2zLTMR&S(7n>038KE6uC~2Xk=&5egdxdIL1h9rR-%JdDnHoGIE37K(rm5jO{m*^M1gqNYH_ z!r{bm;d?FeAQK7}2Sy$i6o}+;_u{77_L|14kBKol@iZR_oKv+v=Pbwgo(+7jb4I#4 zW^Z>>REv%}ZE07jP}1UItZMsN9O^6rF;okz0CeR15I^%-> zZD^XZ>UG^bd&;nq<5P-0#a{B>7l0UeH)d+#vKk*tOB8U&~!y|9U^al8GlX_Usn&<0<3ZleoOLSRl=xaG6;AKch8T)Idj^S=-TQ}@!{ZBno!DBX znAn4NqcT(fC zSKMnFU+L(&o-P+VWoSvp%If6q?x5~Iz*>TK?4D8LLAY7I?9TU zw5HdcOyx7m6wpAplgj_u5mN1L~4F3+P8 zQwyTpK^!A|7X+rw1-=H;^vMcHStj=>@m-qVWuVS7gfid{Ve^TD6YZ`cA?8=~Ul=Qw zq=;G;w#ALUr~7`e)HuicF5GR#uR)edmoEmsrFoOB|z436p=S?;8?u@*!AmZuZ`3;uIsFUa=Uf z>>2YQ?do^C-GTuGuZCPSE=mhGVMPv3JU3Q_+!4P{{bvm)&RY z!_mxDHOZS6SxSBtC*UJIg#(%RF$~uQy}Q=byy8waKI3)omVQBhykUuk$%i)I=I*Yh zUgMi?45N>?QhFIyK120#y6pTw#Z(pU{m=M>d@4K?N~>^TP}2+(IJiQ^R%pqq ziinIQ*!f?`eDg0AJY^o)h{8<%#l~9CRlr zWaLOlkB*GHK6Y@c`&^oVuOu}begR+CYGNG!BD(Rj6+NSG$OJu0TelHDjd_($@%%XWtw z$G8*h^waJo1Y)>h6w7bM&+52~$vcmYj)K?usLxWkAJA*RF~}FB+O8hr$p^ZwyWTx- z8#Rnav){54o$lz9wsYX>9_6xB1Z!>bM1(DP=zU3P7ik)Fx5(sdztyWsDajyKZ8W?* zSUUY9zF<)Q^-4E|OgJUVM00bvno9PM$h2wp#TYq~_ZRjm_H2qAr3$eZCu2ne%N1>7 z$`0l6BpLp(nulf!a)uOGbf@~vNQ3x@dGTu)lgbp%#f7*iZR@7MyXP<(&uZX3gKd%u7smKlFYkvm{`69?RE; zDfnT}s&HyvU~^#Cc$xLFtV*jfI<(*Z*Yw~86#&(<*In^;(t^-fQp z*_z#ymwT(%tz!^U&ow&mofa6ROk$t#*y%S7Y{c zCFy_GJFEC)bcHFXS)=hI`WgKy?PlHi+m&SZxcPjhw=4SU@K>Sa)hWp~!9<T1SQWEBRq-L&}gq`&&S2zOJZoQM%zr@IgN{3O=>VOMIDx@GpG zB`G!%dq5H+Q8E$BHst;D6`7PqMOu7ZO!`*C2ODQD!jJ)i7B{+k#N^^0s&i~=?r$$) zPRhi2e5_Z53K%NzR-pkyxH{DLdYg2MnHI`&mJaCUyy7b#b<2NvLkNTbY*yiv4W>cRHDFJ1Mj=iVUc$6d`3O1QxVAY4$l147p6E;33p)%_-g zjZY#{(`yM~v+S(j)G>#8_?5B!R>AaWD>N1hX~bE42r0kGVr>@?xL=|YfQ4`Lf%I4g zlB@dxhk)AsZqh_ixlpG>@M7TO{V2;F|3KA*17lOBJ_AcUI81GH%nr5g>n}YrU~Ldv zQmp+!Eh14u4Bk;y!`(bakDa0lRyLGuW-EkS3}!4ztr^s>7jL`X2M3<&$Q-I=N?vGb zwHd7am}7odhV3;dvH00+E44*<8AjKV{8nr`&*=NLs3eAu93DZOB;cS!+Szri_1?(w zT2jMN=Zw0Vjhh;m)HcAdR@|(-Q-lBw)duy9y&Tv$(XK}Aqh}r8FyE1+7eD8%pq*pK z`I8D>O{ez{;9=@<^c_atbuD4tDbM^WMZeG<($dT8mG%c@Xh23*0HR7LHKfzwzZor0 zHQ!lY00!o7CmHM}C~pLd=C6wU`{qy8U#{E9L2q}b zvQoI}fBYz+wPPtFZkl}|?96kq=#Q!-Rd`4+dEz?zwODpSo!~ea_=_JK$#UP`;KZ_&ndjQtXtj`5Pr-0q?QPDf5QZ~}0&FX#P3VXUW$v|xuv)ZwJSSW9+Wc(I zyJ8)=$YrD8+FDY@*U{tqlbn#{KRYtcE`H3v=Q*dOXn;M(Qag&roYf4W6i3M$mjYeY zNT;x*+wu+d14&**N2JrCxhy~a9tk6v83jD_a`asEZiMX;zn(2_^wC_pFmN#pUR>2k zg@d5yFCO#XBCcMKN`ZDvdD=AO2Nidjmn0qwo9aiwsKcFM1c(EaUesbW4<4s3ph?YRmn#H z!>a!e4ATVc5i;srRXhQtMMsEZ5sJwFu%hM_A&=x?N!KLmSIPj0W7#As5=42@PuY>t zEw+tsyG%%GJ5Qu05?%ihu4GPqZNI6nqHi6gWBTM*VZ0;AtzVUj8(5PiuMV2Gt8!kp+0>J0ka>LW9}33NvDA=$$@Q71;Yt-;lxG;&j!7My_)DJ2b9KoNAQ3ZK- zrixeE^+mr&-Ji?aS|%sj=B}_|zg0-=w;7fSw%Z;%1xiHd3H?Q>x4zYbE@w*hxYW=~ zYG9qoTb6Mp4QCssvC^I_d&74|U`-UZ@y3^t)b$|3Ib}`<16;ljDf~%(k}U@9OHz8R z?kLB|WrgU0OTKQML@^ujcx@k?2H^?3Q`!544eLkE{PI2*w#iJOf#tAIu zDyY_n0@*ai53o)_|CPNpw1TlG$AM?bqm&zWjzSU5V|x#cos6L<_xfUUvl=B%`eUL| zpD~;xn7pP+9(p^=TQpT=Nih~ulHRl?l;P@WWJw~ z!`-hH;(mpYdrkT2IsRF6>73(bQ?X)fOpbqBoyL#4fsg$gA>Hi|R9*oONu)wQI*cKH ziS+Y2e5O}>+e}oh2WL(O#`YKNGO&9}e*2zjx!bW`DB&BmnQ#1K_YK2yjY8i9aYA{w zLkuSYwT!k>(aW_OZb=kF@T^_Qfy)&+i8k(TZbvUY9o<=2eq*+lkwQ7~h#OPhO%ouEF@*xaAPPsit{~&-< z%m$&&9|`F274_vvYr`WZIh=Iecx#s^LiL?_pA2LEuQr6~Yat(@tcXp1xT?Pd&q37k zeva*}dw)&p4k-r9QPpjl3VS}A18NhaRpbV-j>ILKc*f_Ex0;ILI@^=2LBE8NM*iS( z=zA_Pmot9RI2;jjEJc%H43!A)6LBX|CKoZG=ej0wFX&z1n3`!y>DTe!p}l%C2rK6Q zWv3lkP>C?CZ4(kPU*Rk(n@B+=8eiu;5^&Z+dy;!Ao}}u^{k2)9+?Yo_NdFOgK_Q`S z*gNQ}+3ScZMc&)$Em?cMn%^i?XE;*YI(~NLVtyYSwt8QH$_B=M(=up&!Q@-BS|mA@Z})4tHW<$I}KGpj<~#IlyNkVF0yw~3N(_& z+p!&Bl5@r}Mu#BE`B@;!)JZ=C%}a2Z>~*4KP2BjQ(l%F$>7Fet@D5x z7>w6v;xsH#O>%h*{>nQBGmYeWx@cO#YG{)Q>c$tNhHopI6~wg3qgr0frt+c| zu9qpegW6R}7znZR(@u4_thJUGS&YI6(2dqWQ6;Y!E&lyzBr`8tEl-|`(Q;pob5{`nnxOy! zZjKLy{{eub9^vchf&c^#nHTRnsfQEDw<6Sph4L22&aRO&K8ju%e{NoU(GLV^#mKuS z1#n%8ej?geYPl|m(QwzKMv8oKZ9RMxp;pvTLFwt*&Nn<@E=AFd&IN=Biq-36R6_-b znb?5GZ3=pG1@e=s$f|8371?^4Y}eIDXFe8Kj^tiJRY+6ct`KG{)M7^RaD7599?-#G zwWV^@FaJl1MLpJRZS}3m#J?_sv>dZZ0|D8kz^=zIwpahj5>NkU4N8V^`857-rd(p5 zT)3W|7%$lxF*&oQR9LfRC12{Ain$IIv;pK&z1ca_a+`v+oidvzWrYmJ zge}?m#|jqQAH1YmhmK+k+JGhk`uu*|+4k49F>{l=%;~>s5;>bw*?v`5I5($hB>R$8 zd9Nt<)zk}E&Jq{oI=}?iQkt)cN#vBA%}Be%op?0_Iwu8eD=Z!tT>A*g-9?^{N`ACM_R2rMtvdCKzkE7&%^+N8@KlD7-{H0?-xfXU;emLs@z%d^ zwSE)c45(Q72ly8L)xq}Lz$RR20Sje+QX{PqPI1ON`g|0}GkCl)Etr;O@Q30auHsi0 z{zkyqmB-IQSZ!gZ{1`{ox2dYdcyP5 zG5qb!?pdE}nj>God?|(E>f`5c@jfOjSL^PK4@U)&)$2-rcyGU7?7VD_cYITl*Pn+0 zB2-gVnNc`n=;EIr7bxH3BX504*a*>wEuf8ik89N%iUnb-D{SeF>%u>y$wXqXxz087`jf%fi^13s z$|o$z7<3mRk`7*4wt*X}8kznez;GQ##c%ucE8RFAwjkf*E-h9>AV_X~KHq)H7kts0 zn?eb;-CO27VH`xDsWylD+qM~KL9D`6ld3Qcwgc+*&Z#cqo}+eWX~R1Cd!y6aH38_m zJ1kugL;bkyU7}^&h2rh_9{Erg0pu+miK?FxjnfkF_xbDOyts3}Zpjf$g14a`MK*m0 z_p`|p*Hww7zO@m|OGhQ~33!d_@DkoCQF#o>RXj&L9{0aBzN_Ek8GFU zVHUC5n#O?iB<=-vSDE)$7}2VxV*k8GxtZ*BWG-?3aByi#l9$4xo#O6}o$x8mlX@Al zo9C{|@3lr=`sO?D9s>frv!p!_{M+j)EqC=z&}I$@>a=RT)W4q+59Xh?3aii@d7U*siyri(EExtR4IKxa}S zy6{xpc#eScG<8l+GpHKVIElwJ3EOV8UMljepc>L(R;rApJD7zVzSPdX=mE$h!>@0i@2nh&-y&dVt8EC3BQbEj?sorV;c zx0>D~y#s%QXcz>QMq4*#YEQl9LOU zVxPaJb2|Eo+$z%yU3|M*Cz_m_{{WZzB`51WZ!GU?nVCusMkaZ_7`*nCbQ<)Qx)w5W za%8?OKbJi2fl+rshJQjy)UhIb#Y53V`b{`E6?}5C+Ug){v%2 za`fZBAO=57?gy2Z<#_8Qv5*e?GB6XycDfKqU;BIa#+cNE60b-MI* z1v5*2`v^II^T|vf7_@oNTBZ4}qAG*=T>I_Kf1nK^vs*YG#cE&8;gcnywzy>pFq^^qlc-7q@(OwG45)|=9CcpvbL*Z3Ko8io*O<+LaI2Un&6SN|IzS@x1Ph4-} zRD($(x*SbOf4($DgSArMAi^s+c*(__%O95&rTdV4mt1GD2(27r1d1H+cCD}tneP-7=0;Gk;~~Pf z20v2|-Bf;t(vcNmP9x{<>N|0!#L^l>B6l$ekSI{Dn7-XKup9ZZ#!M?7Ui6}Kf5)hzn=_Gsles@!kA4= zP{AU&wl(67S@Uxt(Q_DkZmkNGkSICf{o1~G!h2Z+LiL%-8Q4te^=J?(3r6l+MfTAt z?`P(n&@OwHuWxLOpqGUeuPOaU>SMx0T1TtkI@H@8kEO= zJsp1wUc{i?)gw~g4P~V9GMM`jE_Lm8`1RwMpn8xB^j(%7?KQ@wHcM91?(;ErGs?A> zp&r8rDL3WJt^TiaSq2OVKWmOI;Y46arY`$xU9G}!Zt-sonXaBht9Rpdl2E-d?{QFW ztl%td{-vQlwBucEo|)2^dGRT@qO;j=`r{zXePRBWA8eyuA@#iJNc()`UEO@FJRWCq z$5&;BK9Sr^-p<@4rrGP~V~Xzlg9eCm5~{5j`53IijA9{quPOIEF;+bJbk9x(qmi`G zQADurde-IwUUl1(;^$G``1r>;u8Cqavy>x!j__kIE$$-8@ULt~KOxfEAA55}+Ts91 zlm~qX8k2w$wYA9KL>I2h4}Bb&g)^78WqpihhoGepe)Fu8X}UKZ4B?ne8Wz{k4P z4_zao#B_f4BUHkniR|&~4pqRILn|wqKDBx1&F3eZvq=flicPV|Lk*t$>?u;i_xt7u z-0tEnbMP=%kSdK@?;@a4^_(@AEj-*|TJgpPMPlB~Cv6GbJkPY*zazDGJJp53DRQLI zwuGAb;-_}`4)+z*+g(^*uNLiF(`3eCHpo+nQ*f#Qf(Y)K6XXkVg6> z(+zb5E%mKEZDi6U$66M(yK~;Y&=v7mr&RxX<%}hMN1a`D=c9Et&)5N370p}O>&GQ& z-u;7nJrZ`{wV{T?>Rk6ZCMBFCPZHx2q8mfayz239m3#x0 zjVFo&LGhGcSyuQYERDqVcj22BdS)5#NPaU&TEw7pEM7@R_;OJ)1af$>9#5|=uCD~v z@2q0GkS9jUAZDHPbS*pf@Y-=`A+p2)wGA|19@M+o$6IIrFzzu5D}rp*Cu zR>A@7$E|u^@X~5xMD&jPq{&C$Yt5nh#rISop^!p9{!(}wdN`))#bM#+F$GDj0jpHW@qVh`aA zQ0ttdn5DXk1F_Lu>e=e>4?{ZOvP`~+)NaJaat#@Rzg^Fm0U^f)pA-#0V8u6BpcmB> zq8NR+uUhT)QKeb01FGOeTDV_V4K`U|6h$fiaj9RfK=D1Y;Lt{S>?Z#$(VL>=5-=Ko>ZG9!k?)7}K?SV7pCzb!!%E%yk#e?hJvskB zHKeu-A|nuy{l_dyx*b81*s5!@He<}I99S+2OeaPp1R~N1so|X^QSY`>qom+?AWT`6 zl<2j&S@0{-la(%px$Y5GD8MsF;44S7Bu84}71AKYOOt#zX{98>b&2^ayVTVu=hxT- zry9-sWyBCwtXIt(tXIV3W`6G9>#+TXm{8Mwjz%}5N~%4iXcDzUioibw^oNrV=4!Tc z{Fsw?`tS6qph!1$lea_7u#~ob;?rhRbSgBXH7A0x{HiiFR9mMQ|D?h{b5zEs!tTf)k$e16{8r7MQSOlQVU07Ndsv` z%$&RA6P6*oK^|#aO`_XP6TqF#U)YUVX-q6sXmYs@WIOi;eUl#>ld1eOSpW|UcF>jv zRN-A+vs8qV--01?_qt}Hz&KU1X3mk+;Zgq;e*Ss9K|u2=CnUp$0YYB8_kPk;!lpq- zhwKma4ZUN(1Q6}XTb8(;nvxQjGtq=6|}bD@l`bz7yo z>N8f!8O8LuBo()FyY?Uwrs@1*W{s!%g{up3-tOacuPZx4l(@lD=1)ZObQ?=!CFkd9 zPR=rGucNyPnstcf49L2)?W>^1t4uaxb+%?@2|{*g-BD&6146)~tFHGk1rO>qv!v#` z({L$p-X<__)=~VV4>x%ua^=sXa{0E3h%4R@B+_peJtR#^p7GX)gebVFnvEDlu*mYI2B@7INwNd9tgE@P(WWicw zeF{c*FUv(*xsrV0_*&;$A-Z?#L$@{m0B=_B5pr&X@qLnd(lF7J`^I`SGmgx8U)6bE z(qFyCq~WyqkGH_UGTi>DqQJ`agx}8o1b0#431FN-O8cU{ZyUMVuOt!YPMS^f;B$ek zqwh^Yd^JAp2~|mkN{&=78PhA3t4_j3DD2sKYjd)`HV+0qH?^34q99~v@)G@@c9kK_ z^)Ws9+~J>G9LgOZBtPS9#!>omtv7i(dsFu=l((0hPI*dB>cs0x@=Y6bMEaYRC<0*V z)^$4zOG_+&Ek96QI>a0-)@{PIQ2Y!hsFO%qdipP`k7|&kF$(*F;BTI+a+?$H@&Oyu z;4fIhI>$kO!a=!Nt1$D>69U{KzyZdko)uiF;j+51)GEu;y??4=$iFNle^HK0#%KDn z`c;+NE@8N!km9^$hYU@vz+umHSX;W<`N`9Cp6wtpax;^ zlC?UVDNSHA9F+Ph63Xh~3~q@3Pi3z7aB5l_b6W{4Sg`MMVbx z_JtsoqwYr(53o6*u~uCumzHxOr4R~v)Th{jhqnu6^%ouToGK05LDp`~46K_y4Tj;!3azzYO_0^WjXEMKYM7kz6 zWB!CQb*2UoRsp-L5%~_Eomr@JF6~QSNGwJsH>n10Bx{+%&!{V1dS3E| zVI{W>5XPqXwDhXf!?TI&cX;b9YDx)Lt}#9Izwes=%6CPY!8!u7sXuuc5d9Pg4H9i= zbAJK0bdCn%{{!5$754uFVEfiKhN!(0@4s1ea+Kbl^m_OhzLu1D5RvMgyaWo4L@s4SQQmmbLbgt5oMGVeL*keS2@+MTDeC-XnNKQ;>+CXeH44}=D5 z7Qf(}2>k=dahCq^0Z(lF1H^Vu7W^got~bqOBv7cv8LXI*2JCjo8FM<82E{S8^GBMw z6vjd}MG97or$c88GR&BBN4*-8I&1!@7AN5H@HL=W89+)w7m_Uo~`<^1a#3gQzC;y!_&OqKy?j$Gu(;Rkn6%cey zxqxjXauTgoj@ZYIOc4qpw7Y@=lk<)H1#LB*yUfdzAB-#1q{MDgy z&Pu^V*(}aIi_+8UzFI|^O3Ad8Fhb-+t8TxX55lx!4iLBhs+J$VU2T)!rlO)@3hm51 z@k!I-f)Q({`oQ%+hTyijux^_&!60Z-S*ZEA?DeE+TD3cr`Xvb@F2bFaiy?@~rG9NA zl^DEgp>rC!PB-p^+vzGVUf;3U9+nQyp~@>zelf64Oia~M1xci7%3H%o(d+2vr$i~? z^Q zDG8ug6AjK~7ijvAmG7lj?oZP5S{H+zZGaWI8;H-n7JjLQz}BsOM`&CC9?SIB=yEOq z8Pv~w7Qy!bv(`i)NFa`6lg7B!K9fv9qz~Y?UW$(8nF!GRKZg=IFEyo=2*S+dOC?nR zMrXO;^h!FlXi**^m~}e}F?2x;UU-jGlAK?m+?7(Nhp`SKwgf1ZV^PEiYiU6`<)gN8 zOd9d*4Fp7;{-2A#2Fuft45pGz(s~-DA0$x{-H8Kb^H&*asOjZJydG zN$XLIdfy5X;v+(3i3#24F$NsxX`a_zWNcs}6)Q+j$E?jMsaq<>UJi_t&8 zL(u%w$og?$lKb_QNyniK;L*$csfr~(+*EIVClrd8*dP$T7E&4f4^SE0itWae5&Lqz z-?CJ=DLsrIKhmUjilE%xh_9ee?dgCWeQYyoN#)Z2zwQ2@J4!*<@-e; zVv`O;Y?0<4!$GyPyB54(jz!)(-sQA@NBk8ls813(e!KKPiyfvS_EL!~R?)+IhFfA4 zgtt`1s#Te6jbnNd^b zz{TqM7_#$3dshLFcf4p9uf_mZ{FoT@<3zCD&Tr<&C{fHQP}Ynpre7$Zw90k<=T8b^ z<`G}dyPs#k372;)v(bEti0FkfuTygh2RTckS0RP`U=`>;biR=2B}vKv|U`CQp|&EF)IdYU;|V-%DH zJ0N5*B-7Y~rc5C9+>oeoQjBhRGH(-DAKfq5bpQ98F zoveWl)&?dC@4pnuyF|Jv*;u__Hcy^T39ugmYFWcD`>e||BCnwqHdzB%sjtVf!HTZQ z?E3CXAL19=X(AwFhX6z!C_Qu(+%$F#go5QPjYG0C(hpGe%j{``g6h}aZ{2wHFyfgu zf7vu%P*e(6?S|6v2xv(rym}$hEs2rqSD6H9^bgJ|C9zgFg>WGjNWjUFx^Z@82DJlK zUMi;IbIo@uA%9r$Cw3Kup}Ky> zsit!?Y=Mq5Jsjt~HOc-DS23g=hH~Sf5~L(9r^Oj=5#aFvyMIYuUC9>}os|luO4bnt z)6Y#7pPy@>n6Ir%Ns-H#8i`q%@ydNkqR@5m#r2|SMWG_K7D!JuIvDJQ;NPskl5Xnl zGPKu+Y+iGbYLlo~Y>tyyNJY5SN-L@9+A^)$c&nGntSCi@VFa%XVtg^(#sma(mX|g- zi_IX7{Z*T9EbU_>0|KJIv4Li95dK@NKhZ4!MQ1M5sIqqwH_r;S_;f57rsJMM@eLPat!C8d&&4b+DZ&j0<}dkX9|$0gV3r}w@`e^u%Wwe) zi^=gzf!k?r08d#c^DE$%xvq6lo(R-?q7xt^BCvyt2U7QfYM|v4jBQ${xl@4uwu9!} zr2Bx%>pyJjy~l%nw5)C^bqQpQr`G(TbnkWX%B9=8I5q@ygp^hf`+}F4*flrSldG?R zI*dXCelnz~`~#bKK5AR}7rcLUu|Ir9wM~ra@@i9&#L#tS#at(tR^9y$6FC&uFUj{W z{cuxN;`(XJK@_6yP=s8OE_sqhcC`&=9#!N<|GQ@%7$kvrpyzLukG;gqyA}r55t4cP zaEs{BqZx^Vo}tFsVb^03x6lMuGo!1bg_E9oh0z4Htm6HDfCR-q1ZhD7%I_MqPTX2>0LbYQy8IGcBdW)y-d z8F;X!uOlRT_UiU=-VMoSe^BbgkQyC>GDZ1=yC@1!+npoKz+0I9>Il5~v*ci+&B^Qi4=&s z(lySW(@XyW2DUMNp(D8Yck*iK(M$=oyEf>&ruOltqg(y;4DXhiK-VL|ItuA47dE^9 z0C-oTxMpfic2{RgH0#BaFQiZ6ti!nq#nj*MG0qX5xl{h}Ho!c|?!^6)6sfu;^-Dx? zgBeB~hMwSvBw2#6JmhY}(mK=H62@@Pa(}h?wKwbMW_Wnw5hIZNyhh|DbE)VKfG;xoy|N8zY9|88 zF_2*(hEYjMG*2o|?&0?|!iCQQCXtBF|E0}5V82uP!KD=i0Xp6wA)trMh&1RyrxfEK zKm>xyv43%M1q6v8>^!t~5RhQ>9`VtBLY7hT?p2OONCj5IkG?NRRO;JGANiRhENj1| zu_Xo}R?buLba;8%r2*ZBV*=jdhQUi{y}fe( zUjU2-bNQb~AN)xCUT^sxAfMn)nwUN#o;!}!DlhOyN2GTqZg1rx5$3sC?9)_hxE5Ns!Z^?yU@b^ky1*&H~#%fA@3#K9e z0Pt9w*DIRYU}umGD33h=sialplk#Pk;QI*iw%q~yRF(K@(RxIK6{6dYxX7iz?kZ9# zzC{vzKW;vlm-eUAMuc>Yc=oG&4{GcRu~#NlE|&_nL`$DsQ>mxM1_CJ_;;cTA!2RgP zXd=jKWTUYCsn3;AdQ_Zx((U|EMcBZ%P&!va0sfIr`}4=ObU7qo)Y$`KG3Y5oW6*xo z?%!HawIngI7_PiA$NN*5uCdJo9BiY*%L9@xF z1RQ}~ZO2MdzkkJbiU2|Or5@srgOAu(OPu+JKQ$#p`wCDit)uNm-YP&rU1Qdi4rzAc zfDB`;7&N%`6urd&Ap2KbiUlnI6b#ayoN-DAdJ2Yd&{Ba%>?pyY139Ije$-<$08-+B zxT6#Rv{GQwiU8`0D4+s?o+zd2JtzPol9v=<=720{qwPg3uu(-608vF008vF008vF0 z08vF00Ai5R^GIj`D594X0F+YVl7I?2QAtvX3{i|y_O5YKKv6{%PzpKbiYh=uM{b!Z6am2$n9Vtk_@vuF92Me|9CYHlB7!Ibjk)XvARo1MMrZ?y0B;=jqZ#{CnDnIE z%>Xxyb`)(C;ZsS2K{hqFJf5@_8OAH6ToOR!(&D0t8`>*^gEam-(fFV&U??L5QQ?nH zl=ji-if?w-+QS|5ijr(>sQ&%ysP;M&?zd?*(b)@h}@BFIGpDP)w77t3WFlQqf_2!f1^1ZW0(A+>|{{Z7P$zD!Z9-V5$z&(v}U>N#+ zxT1q`3t&H2enHIwGsYY3$6A~6ud1xP#%~jFF$(lqozC4k~bm9eEz> zN^SGd{xL-nxP{@Iag68EgA;Wie)TuOKA`=n1P8BAVN*f4hvAXyM#l8x?NfXbI-LF} z@W0e3qAZE9_s%%&K~vMe+NJns@kfSv1Y~DDD4?j|*nI#7q%33jfHb}r9S`qQ zL|GqUphwS8J!(LVj^E0cXXc6`#sVK&U8Ga~AO7#<(v%@Qoc`4zV;fud>T97NYITvg z+Q4JfX1WM*j=1hk1X$08X?Bt6Pi*uR*56tPv5kcE9QLIPPxxbu(XeB-C?H`-V!&rA zaB`%7^Iar@a&dOCCGtJx_Y1Gok<5Edr^U1?KEROr~{BWu86^|g5#|P zIO7?h4tCPg?LL%X@x=fpE1{3{ie0%h74@KoCNn~ibL~rjeZLfAK9mqAUZ#Z&pD|y> zcZvY^pajJzqZFWbpaO~j`_VuPo^ydonp{!oKnq17QbF3=bKZf# /// Text generation is the core function of the API. You give the API a prompt, and it generates a completion. The way you “program” the API to do a task is by simply describing the task in plain english or providing a few written examples. This simple approach works for a wide range of use cases, including summarization, translation, grammar correction, question answering, chatbots, composing emails, and much more (see the prompt library for inspiration). /// public CompletionsEndpoint Completions { get; } + + /// + /// Text generation is the core function of the API. You give the API a prompt, and it generates a completion. The way you “program” the API to do a task is by simply describing the task in plain english or providing a few written examples. This simple approach works for a wide range of use cases, including summarization, translation, grammar correction, question answering, chatbots, composing emails, and much more (see the prompt library for inspiration). + /// + public MessagesEndpoint Messages { get; } } } diff --git a/Anthropic.SDK/Completions/CompletionsEndpoint.cs b/Anthropic.SDK/Completions/CompletionsEndpoint.cs index 0327b1e..43b0e8f 100644 --- a/Anthropic.SDK/Completions/CompletionsEndpoint.cs +++ b/Anthropic.SDK/Completions/CompletionsEndpoint.cs @@ -23,7 +23,7 @@ public async Task GetClaudeCompletionAsync(SamplingParameter { parameters.Stream = false; ValidateParameters(parameters); - var response = await HttpRequest(Url, HttpMethod.Post, parameters); + var response = await HttpRequest(Url, HttpMethod.Post, parameters); return response; } @@ -35,7 +35,7 @@ public async IAsyncEnumerable StreamClaudeCompletionAsync(Sa { parameters.Stream = true; ValidateParameters(parameters); - await foreach (var result in HttpStreamingRequest(Url, HttpMethod.Post, parameters)) + await foreach (var result in HttpStreamingRequest(Url, HttpMethod.Post, parameters)) { yield return result; } diff --git a/Anthropic.SDK/Constants/AnthropicModels.cs b/Anthropic.SDK/Constants/AnthropicModels.cs index 76c8448..5c53f92 100644 --- a/Anthropic.SDK/Constants/AnthropicModels.cs +++ b/Anthropic.SDK/Constants/AnthropicModels.cs @@ -53,5 +53,15 @@ public static class AnthropicModels /// Claude Instant V1.2 latest full version. /// public const string ClaudeInstant_v1_2 = "claude-instant-1.2"; + + /// + /// Claude 3 Opus + /// + public const string Claude3Opus = "claude-3-opus-20240229"; + + /// + /// Claude 3 Sonnet + /// + public const string Claude3Sonnet = "claude-3-sonnet-20240229"; } } diff --git a/Anthropic.SDK/EndpointBase.cs b/Anthropic.SDK/EndpointBase.cs index 146724f..f376d70 100644 --- a/Anthropic.SDK/EndpointBase.cs +++ b/Anthropic.SDK/EndpointBase.cs @@ -69,12 +69,12 @@ private string GetErrorMessage(string resultAsString, HttpResponseMessage respon return $"Error at {name} ({description}) with HTTP status code: {response.StatusCode}. Content: {resultAsString ?? ""}"; } - protected async Task HttpRequest(string url = null, HttpMethod verb = null, object postData = null) + protected async Task HttpRequest(string url = null, HttpMethod verb = null, object postData = null) { var response = await HttpRequestRaw(url, verb, postData); string resultAsString = await response.Content.ReadAsStringAsync(); - var res = await JsonSerializer.DeserializeAsync( + var res = await JsonSerializer.DeserializeAsync( new MemoryStream(Encoding.UTF8.GetBytes(resultAsString))); return res; @@ -148,7 +148,7 @@ private async Task HttpRequestRaw(string url = null, HttpMe } } - protected async IAsyncEnumerable HttpStreamingRequest(string url = null, HttpMethod verb = null, object postData = null) + protected async IAsyncEnumerable HttpStreamingRequest(string url = null, HttpMethod verb = null, object postData = null) { var response = await HttpRequestRaw(url, verb, postData, true); @@ -174,7 +174,7 @@ protected async IAsyncEnumerable HttpStreamingRequest(string { if (currentEvent.EventType == "completion") { - var res = await JsonSerializer.DeserializeAsync( + var res = await JsonSerializer.DeserializeAsync( new MemoryStream(Encoding.UTF8.GetBytes(currentEvent.Data))); yield return res; } @@ -190,5 +190,50 @@ protected async IAsyncEnumerable HttpStreamingRequest(string } } } + + protected async IAsyncEnumerable HttpStreamingRequestMessages(string url = null, HttpMethod verb = null, object postData = null) + { + var response = await HttpRequestRaw(url, verb, postData, true); + + + using var stream = await response.Content.ReadAsStreamAsync(); + using StreamReader reader = new StreamReader(stream); + string line; + SseEvent currentEvent = new SseEvent(); + while ((line = await reader.ReadLineAsync()) != null) + { + if (!string.IsNullOrEmpty(line)) + { + if (line.StartsWith("event:")) + { + currentEvent.EventType = line.Substring("event:".Length).Trim(); + } + else if (line.StartsWith("data:")) + { + currentEvent.Data = line.Substring("data:".Length).Trim(); + } + } + else // an empty line indicates the end of an event + { + if (currentEvent.EventType == "message_start" || + currentEvent.EventType == "content_block_delta" || + currentEvent.EventType == "message_delta") + { + var res = await JsonSerializer.DeserializeAsync( + new MemoryStream(Encoding.UTF8.GetBytes(currentEvent.Data))); + yield return res; + } + else if (currentEvent.EventType == "error") + { + var res = await JsonSerializer.DeserializeAsync( + new MemoryStream(Encoding.UTF8.GetBytes(currentEvent.Data))); + throw new Exception(res.Error.Message); + } + + // Reset the current event for the next one + currentEvent = new SseEvent(); + } + } + } } } diff --git a/Anthropic.SDK/Messaging/Content.cs b/Anthropic.SDK/Messaging/Content.cs new file mode 100644 index 0000000..1343f20 --- /dev/null +++ b/Anthropic.SDK/Messaging/Content.cs @@ -0,0 +1,92 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Text.Json.Serialization; + +namespace Anthropic.SDK.Messaging +{ + /// + /// Content Type Definitions + /// + public static class ContentType + { + /// + /// Text Content Type + /// + public static string Text => "text"; + /// + /// Image Content Type + /// + public static string Image => "image"; + } + /// + /// Helper Class for Text Content to Send to Claude + /// + public class TextContent + { + /// + /// Type of Content (Text, pre-set) + /// + [JsonPropertyName("type")] + public string Type => ContentType.Text; + + /// + /// Text to send to Claude in a Block + /// + [JsonPropertyName("text")] + public string Text { get; set; } + } + + /// + /// Helper Class for Image Content to Send to Claude + /// + public class ImageContent + { + /// + /// Type of Content (Image, pre-set) + /// + [JsonPropertyName("type")] + public string Type => ContentType.Image; + + /// + /// Source of Image + /// + [JsonPropertyName("source")] + public ImageSource Source { get; set; } + } + + /// + /// Image Format Types + /// + public static class ImageSourceType + { + /// + /// Base 64 Image Type + /// + public static string Base64 => "base64"; + } + + /// + /// Definition of image to be sent to Claude + /// + public class ImageSource + { + /// + /// Image data format (pre-set) + /// + [JsonPropertyName("type")] + public string Type => ImageSourceType.Base64; + + /// + /// Image format + /// + [JsonPropertyName("media_type")] + public string MediaType { get; set; } + + /// + /// Base 64 image data + /// + [JsonPropertyName("data")] + public string Data { get; set; } + } +} diff --git a/Anthropic.SDK/Messaging/Message.cs b/Anthropic.SDK/Messaging/Message.cs new file mode 100644 index 0000000..d15b2ce --- /dev/null +++ b/Anthropic.SDK/Messaging/Message.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Text.Json.Serialization; + +namespace Anthropic.SDK.Messaging +{ + public class Message + { + /// + /// Accepts or + /// + [JsonPropertyName("role")] + public string Role { get; set; } + + /// + /// Accepts text, or an array of and/or + /// + [JsonPropertyName("content")] + public dynamic Content { get; set; } + + } +} diff --git a/Anthropic.SDK/Messaging/MessageParameters.cs b/Anthropic.SDK/Messaging/MessageParameters.cs new file mode 100644 index 0000000..19c940c --- /dev/null +++ b/Anthropic.SDK/Messaging/MessageParameters.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Text.Json.Serialization; + +namespace Anthropic.SDK.Messaging +{ + public class MessageParameters + { + [JsonPropertyName("model")] + public string Model { get; set; } + [JsonPropertyName("messages")] + public List Messages { get; set; } + [JsonPropertyName("system")] + public string? SystemMessage { get; set; } + [JsonPropertyName("max_tokens")] + public int MaxTokens { get; set; } + [JsonPropertyName("metadata")] + public dynamic Metadata { get; set; } + [JsonPropertyName("stop_sequences")] + public string[] StopSequences { get; set; } + [JsonPropertyName("stream")] + public bool? Stream { get; set; } + [JsonPropertyName("temperature")] + public decimal? Temperature { get; set; } + [JsonPropertyName("top_k")] + public int? TopK { get; set; } + [JsonPropertyName("top_p")] + public decimal? TopP { get; set; } + } +} diff --git a/Anthropic.SDK/Messaging/MessageResponse.cs b/Anthropic.SDK/Messaging/MessageResponse.cs new file mode 100644 index 0000000..342dfae --- /dev/null +++ b/Anthropic.SDK/Messaging/MessageResponse.cs @@ -0,0 +1,98 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Text.Json.Serialization; + +namespace Anthropic.SDK.Messaging +{ + public class Content + { + [JsonPropertyName("text")] + public string Text { get; set; } + + [JsonPropertyName("type")] + public string Type { get; set; } + } + public class MessageResponse + { + [JsonPropertyName("content")] + public List Content { get; set; } + + [JsonPropertyName("id")] + public string Id { get; set; } + + [JsonPropertyName("model")] + public string Model { get; set; } + + [JsonPropertyName("role")] + public string Role { get; set; } + + [JsonPropertyName("stop_reason")] + public string StopReason { get; set; } + + [JsonPropertyName("stop_sequence")] + public object StopSequence { get; set; } + + [JsonPropertyName("type")] + public string Type { get; set; } + + [JsonPropertyName("usage")] + public Usage Usage { get; set; } + + [JsonPropertyName("delta")] + public Delta Delta { get; set; } + + [JsonPropertyName("message")] + public StreamMessage StreamStartMessage { get; set; } + } + + public class StreamMessage + { + [JsonPropertyName("id")] + public string Id { get; set; } + + [JsonPropertyName("type")] + public string Type { get; set; } + + [JsonPropertyName("role")] + public string Role { get; set; } + + [JsonPropertyName("content")] + public List Content { get; set; } + + [JsonPropertyName("model")] + public string Model { get; set; } + + [JsonPropertyName("stop_reason")] + public object StopReason { get; set; } + + [JsonPropertyName("stop_sequence")] + public object StopSequence { get; set; } + + [JsonPropertyName("usage")] + public Usage Usage { get; set; } + } + + public class Delta + { + [JsonPropertyName("stop_reason")] + public string StopReason { get; set; } + + [JsonPropertyName("type")] + public string Type { get; set; } + + [JsonPropertyName("text")] + public string Text { get; set; } + [JsonPropertyName("usage")] + public Usage Usage { get; set; } + } + + public class Usage + { + [JsonPropertyName("input_tokens")] + public int InputTokens { get; set; } + + [JsonPropertyName("output_tokens")] + public int OutputTokens { get; set; } + } +} diff --git a/Anthropic.SDK/Messaging/MessagesEndpoint.cs b/Anthropic.SDK/Messaging/MessagesEndpoint.cs new file mode 100644 index 0000000..e26881e --- /dev/null +++ b/Anthropic.SDK/Messaging/MessagesEndpoint.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.Generic; +using System.Net.Http; +using System.Text; +using System.Threading.Tasks; + +namespace Anthropic.SDK.Messaging +{ + public class MessagesEndpoint : EndpointBase + { + /// + /// Constructor of the api endpoint. Rather than instantiating this yourself, access it through an instance of as . + /// + /// + internal MessagesEndpoint(AnthropicClient client) : base(client) { } + + protected override string Endpoint => "messages"; + + /// + /// Makes a non-streaming call to the Claude messages API. Be sure to set stream to false in . + /// + /// + public async Task GetClaudeMessageAsync(MessageParameters parameters) + { + parameters.Stream = false; + var response = await HttpRequest(Url, HttpMethod.Post, parameters); + return response; + } + + /// + /// Makes a streaming call to the Claude completion API using an IAsyncEnumerable. Be sure to set stream to true in . + /// + /// + public async IAsyncEnumerable StreamClaudeMessageAsync(MessageParameters parameters) + { + parameters.Stream = true; + await foreach (var result in HttpStreamingRequestMessages(Url, HttpMethod.Post, parameters)) + { + yield return result; + } + } + } +} diff --git a/Anthropic.SDK/Messaging/RoleType.cs b/Anthropic.SDK/Messaging/RoleType.cs new file mode 100644 index 0000000..110f0d3 --- /dev/null +++ b/Anthropic.SDK/Messaging/RoleType.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Anthropic.SDK.Messaging +{ + public static class RoleType + { + public static string User => "user"; + public static string Assistant => "assistant"; + } +} From c39f451fe55286f8847b464c6c3cb31b05d3f64f Mon Sep 17 00:00:00 2001 From: Grant Hamm Date: Tue, 5 Mar 2024 06:11:41 -0500 Subject: [PATCH 2/2] Support for #13 and version bump, cleanup --- Anthropic.SDK.Tests/Messages.cs | 161 +++++++++--------- Anthropic.SDK/Anthropic.SDK.csproj | 8 +- .../Completions/CompletionsEndpoint.cs | 12 +- Anthropic.SDK/EndpointBase.cs | 56 ++++-- Anthropic.SDK/Messaging/MessagesEndpoint.cs | 12 +- README.md | 106 ++++++++---- 6 files changed, 207 insertions(+), 148 deletions(-) diff --git a/Anthropic.SDK.Tests/Messages.cs b/Anthropic.SDK.Tests/Messages.cs index 96b401d..224117f 100644 --- a/Anthropic.SDK.Tests/Messages.cs +++ b/Anthropic.SDK.Tests/Messages.cs @@ -39,56 +39,49 @@ public async Task TestBasicClaude3ImageMessage() { string resourceName = "Anthropic.SDK.Tests.Red_Apple.jpg"; - // Get the current assembly Assembly assembly = Assembly.GetExecutingAssembly(); - // Get a stream to the embedded resource - using (Stream stream = assembly.GetManifestResourceStream(resourceName)) + await using Stream stream = assembly.GetManifestResourceStream(resourceName); + byte[] imageBytes; + using (var memoryStream = new MemoryStream()) { - // Read the stream into a byte array - byte[] imageBytes; - using (var memoryStream = new MemoryStream()) - { - stream.CopyTo(memoryStream); - imageBytes = memoryStream.ToArray(); - } - - // Convert the byte array to a base64 string - string base64String = Convert.ToBase64String(imageBytes); + await stream.CopyToAsync(memoryStream); + imageBytes = memoryStream.ToArray(); + } + + string base64String = Convert.ToBase64String(imageBytes); - var client = new AnthropicClient(); - var messages = new List(); - messages.Add(new Message() + var client = new AnthropicClient(); + + var messages = new List(); + messages.Add(new Message() + { + Role = RoleType.User, + Content = new dynamic[] { - Role = RoleType.User, - Content = new dynamic[] + new ImageContent() { - new ImageContent() + Source = new ImageSource() { - Source = new ImageSource() - { - MediaType = "image/jpeg", - Data = base64String - } - }, - new TextContent() - { - Text = "What is this a picture of?" + MediaType = "image/jpeg", + Data = base64String } + }, + new TextContent() + { + Text = "What is this a picture of?" } - }); - var parameters = new MessageParameters() - { - Messages = messages, - MaxTokens = 512, - Model = AnthropicModels.Claude3Sonnet, - Stream = false, - Temperature = 1.0m, - }; - var res = await client.Messages.GetClaudeMessageAsync(parameters); - - } - + } + }); + var parameters = new MessageParameters() + { + Messages = messages, + MaxTokens = 512, + Model = AnthropicModels.Claude3Opus, + Stream = false, + Temperature = 1.0m, + }; + var res = await client.Messages.GetClaudeMessageAsync(parameters); } [TestMethod] @@ -100,62 +93,60 @@ public async Task TestStreamingClaude3ImageMessage() Assembly assembly = Assembly.GetExecutingAssembly(); // Get a stream to the embedded resource - using (Stream stream = assembly.GetManifestResourceStream(resourceName)) + await using Stream stream = assembly.GetManifestResourceStream(resourceName); + // Read the stream into a byte array + byte[] imageBytes; + using (var memoryStream = new MemoryStream()) { - // Read the stream into a byte array - byte[] imageBytes; - using (var memoryStream = new MemoryStream()) - { - stream.CopyTo(memoryStream); - imageBytes = memoryStream.ToArray(); - } + await stream.CopyToAsync(memoryStream); + imageBytes = memoryStream.ToArray(); + } - // Convert the byte array to a base64 string - string base64String = Convert.ToBase64String(imageBytes); + // Convert the byte array to a base64 string + string base64String = Convert.ToBase64String(imageBytes); - var client = new AnthropicClient(); - var messages = new List(); - messages.Add(new Message() + var client = new AnthropicClient(); + var messages = new List(); + messages.Add(new Message() + { + Role = RoleType.User, + Content = new dynamic[] { - Role = RoleType.User, - Content = new dynamic[] + new ImageContent() { - new ImageContent() + Source = new ImageSource() { - Source = new ImageSource() - { - MediaType = "image/jpeg", - Data = base64String - } - }, - new TextContent() - { - Text = "What is this a picture of?" + MediaType = "image/jpeg", + Data = base64String } - } - }); - var parameters = new MessageParameters() - { - Messages = messages, - MaxTokens = 512, - Model = AnthropicModels.Claude3Sonnet, - Stream = true, - Temperature = 1.0m, - }; - var outputs = new List(); - await foreach (var res in client.Messages.StreamClaudeMessageAsync(parameters)) - { - if (res.Delta != null) + }, + new TextContent() { - Debug.Write(res.Delta.Text); + Text = "What is this a picture of?" } - - outputs.Add(res); } - + }); + var parameters = new MessageParameters() + { + Messages = messages, + MaxTokens = 512, + Model = AnthropicModels.Claude3Opus, + Stream = true, + Temperature = 1.0m, + }; + var outputs = new List(); + await foreach (var res in client.Messages.StreamClaudeMessageAsync(parameters)) + { + if (res.Delta != null) + { + Debug.Write(res.Delta.Text); + } + outputs.Add(res); } - + Debug.WriteLine(string.Empty); + Debug.WriteLine($@"Used Tokens - Input:{outputs.First().StreamStartMessage.Usage.InputTokens}. + Output: {outputs.Last().Usage.OutputTokens}"); } } } diff --git a/Anthropic.SDK/Anthropic.SDK.csproj b/Anthropic.SDK/Anthropic.SDK.csproj index 485e3cd..85fc6fb 100644 --- a/Anthropic.SDK/Anthropic.SDK.csproj +++ b/Anthropic.SDK/Anthropic.SDK.csproj @@ -14,12 +14,12 @@ Claude, AI, ML, API, Anthropic Claude API - Adds token counter extension method helper. + Support for Messages Endpoint and Claude 3 Anthropic.SDK - 1.3.0 - 1.3.0.0 - 1.3.0.0 + 2.0.0 + 2.0.0.0 + 2.0.0.0 True README.md True diff --git a/Anthropic.SDK/Completions/CompletionsEndpoint.cs b/Anthropic.SDK/Completions/CompletionsEndpoint.cs index 43b0e8f..16372b0 100644 --- a/Anthropic.SDK/Completions/CompletionsEndpoint.cs +++ b/Anthropic.SDK/Completions/CompletionsEndpoint.cs @@ -1,6 +1,8 @@ using System; using System.Collections.Generic; using System.Net.Http; +using System.Runtime.CompilerServices; +using System.Threading; using System.Threading.Tasks; namespace Anthropic.SDK.Completions @@ -19,11 +21,12 @@ internal CompletionsEndpoint(AnthropicClient client) : base(client) { } /// Makes a non-streaming call to the Claude completion API. Be sure to set stream to false in . /// /// - public async Task GetClaudeCompletionAsync(SamplingParameters parameters) + /// + public async Task GetClaudeCompletionAsync(SamplingParameters parameters, CancellationToken ctx = default) { parameters.Stream = false; ValidateParameters(parameters); - var response = await HttpRequest(Url, HttpMethod.Post, parameters); + var response = await HttpRequest(Url, HttpMethod.Post, parameters, ctx); return response; } @@ -31,11 +34,12 @@ public async Task GetClaudeCompletionAsync(SamplingParameter /// Makes a streaming call to the Claude completion API using an IAsyncEnumerable. Be sure to set stream to true in . /// /// - public async IAsyncEnumerable StreamClaudeCompletionAsync(SamplingParameters parameters) + /// + public async IAsyncEnumerable StreamClaudeCompletionAsync(SamplingParameters parameters, [EnumeratorCancellation] CancellationToken ctx = default) { parameters.Stream = true; ValidateParameters(parameters); - await foreach (var result in HttpStreamingRequest(Url, HttpMethod.Post, parameters)) + await foreach (var result in HttpStreamingRequest(Url, HttpMethod.Post, parameters, ctx)) { yield return result; } diff --git a/Anthropic.SDK/EndpointBase.cs b/Anthropic.SDK/EndpointBase.cs index f376d70..81fde1b 100644 --- a/Anthropic.SDK/EndpointBase.cs +++ b/Anthropic.SDK/EndpointBase.cs @@ -4,10 +4,12 @@ using System.IO; using System.Net.Http; using System.Net.Http.Headers; +using System.Runtime.CompilerServices; using System.Security.Authentication; using System.Text; using System.Text.Json; using System.Text.Json.Serialization; +using System.Threading; using System.Threading.Tasks; namespace Anthropic.SDK @@ -69,18 +71,22 @@ private string GetErrorMessage(string resultAsString, HttpResponseMessage respon return $"Error at {name} ({description}) with HTTP status code: {response.StatusCode}. Content: {resultAsString ?? ""}"; } - protected async Task HttpRequest(string url = null, HttpMethod verb = null, object postData = null) + protected async Task HttpRequest(string url = null, HttpMethod verb = null, object postData = null, CancellationToken ctx = default) { - var response = await HttpRequestRaw(url, verb, postData); + var response = await HttpRequestRaw(url, verb, postData, ctx: ctx); +#if NET6_0_OR_GREATER + string resultAsString = await response.Content.ReadAsStringAsync(ctx); +#else string resultAsString = await response.Content.ReadAsStringAsync(); - +#endif var res = await JsonSerializer.DeserializeAsync( - new MemoryStream(Encoding.UTF8.GetBytes(resultAsString))); + new MemoryStream(Encoding.UTF8.GetBytes(resultAsString)), cancellationToken: ctx); return res; } - private async Task HttpRequestRaw(string url = null, HttpMethod verb = null, object postData = null, bool streaming = false) + private async Task HttpRequestRaw(string url = null, HttpMethod verb = null, + object postData = null, bool streaming = false, CancellationToken ctx = default) { if (string.IsNullOrEmpty(url)) url = this.Url; @@ -110,7 +116,7 @@ private async Task HttpRequestRaw(string url = null, HttpMe } response = await client.SendAsync(req, - streaming ? HttpCompletionOption.ResponseHeadersRead : HttpCompletionOption.ResponseContentRead); + streaming ? HttpCompletionOption.ResponseHeadersRead : HttpCompletionOption.ResponseContentRead, ctx); if (response.IsSuccessStatusCode) { @@ -120,7 +126,11 @@ private async Task HttpRequestRaw(string url = null, HttpMe { try { +#if NET6_0_OR_GREATER + resultAsString = await response.Content.ReadAsStringAsync(ctx); +#else resultAsString = await response.Content.ReadAsStringAsync(); +#endif } catch (Exception e) { @@ -148,12 +158,17 @@ private async Task HttpRequestRaw(string url = null, HttpMe } } - protected async IAsyncEnumerable HttpStreamingRequest(string url = null, HttpMethod verb = null, object postData = null) + protected async IAsyncEnumerable HttpStreamingRequest(string url = null, HttpMethod verb = null, + object postData = null, [EnumeratorCancellation] CancellationToken ctx = default) { - var response = await HttpRequestRaw(url, verb, postData, true); - + var response = await HttpRequestRaw(url, verb, postData, true, ctx); +#if NET6_0_OR_GREATER + await using var stream = await response.Content.ReadAsStreamAsync(ctx); +#else using var stream = await response.Content.ReadAsStreamAsync(); +#endif + using StreamReader reader = new StreamReader(stream); string line; SseEvent currentEvent = new SseEvent(); @@ -175,28 +190,33 @@ protected async IAsyncEnumerable HttpStreamingRequest(string url = null, H if (currentEvent.EventType == "completion") { var res = await JsonSerializer.DeserializeAsync( - new MemoryStream(Encoding.UTF8.GetBytes(currentEvent.Data))); + new MemoryStream(Encoding.UTF8.GetBytes(currentEvent.Data)), cancellationToken: ctx); yield return res; } else if (currentEvent.EventType == "error") { var res = await JsonSerializer.DeserializeAsync( - new MemoryStream(Encoding.UTF8.GetBytes(currentEvent.Data))); + new MemoryStream(Encoding.UTF8.GetBytes(currentEvent.Data)), cancellationToken: ctx); throw new Exception(res.Error.Message); } - + // Reset the current event for the next one currentEvent = new SseEvent(); } } } - protected async IAsyncEnumerable HttpStreamingRequestMessages(string url = null, HttpMethod verb = null, object postData = null) + protected async IAsyncEnumerable HttpStreamingRequestMessages(string url = null, HttpMethod verb = null, + object postData = null, [EnumeratorCancellation] CancellationToken ctx = default) { - var response = await HttpRequestRaw(url, verb, postData, true); + var response = await HttpRequestRaw(url, verb, postData, true, ctx); +#if NET6_0_OR_GREATER + await using var stream = await response.Content.ReadAsStreamAsync(ctx); +#else using var stream = await response.Content.ReadAsStreamAsync(); +#endif using StreamReader reader = new StreamReader(stream); string line; SseEvent currentEvent = new SseEvent(); @@ -215,18 +235,18 @@ protected async IAsyncEnumerable HttpStreamingRequestMessages(string url = } else // an empty line indicates the end of an event { - if (currentEvent.EventType == "message_start" || - currentEvent.EventType == "content_block_delta" || + if (currentEvent.EventType == "message_start" || + currentEvent.EventType == "content_block_delta" || currentEvent.EventType == "message_delta") { var res = await JsonSerializer.DeserializeAsync( - new MemoryStream(Encoding.UTF8.GetBytes(currentEvent.Data))); + new MemoryStream(Encoding.UTF8.GetBytes(currentEvent.Data)), cancellationToken: ctx); yield return res; } else if (currentEvent.EventType == "error") { var res = await JsonSerializer.DeserializeAsync( - new MemoryStream(Encoding.UTF8.GetBytes(currentEvent.Data))); + new MemoryStream(Encoding.UTF8.GetBytes(currentEvent.Data)), cancellationToken: ctx); throw new Exception(res.Error.Message); } diff --git a/Anthropic.SDK/Messaging/MessagesEndpoint.cs b/Anthropic.SDK/Messaging/MessagesEndpoint.cs index e26881e..3a7976b 100644 --- a/Anthropic.SDK/Messaging/MessagesEndpoint.cs +++ b/Anthropic.SDK/Messaging/MessagesEndpoint.cs @@ -1,7 +1,9 @@ using System; using System.Collections.Generic; using System.Net.Http; +using System.Runtime.CompilerServices; using System.Text; +using System.Threading; using System.Threading.Tasks; namespace Anthropic.SDK.Messaging @@ -20,10 +22,11 @@ internal MessagesEndpoint(AnthropicClient client) : base(client) { } /// Makes a non-streaming call to the Claude messages API. Be sure to set stream to false in . /// /// - public async Task GetClaudeMessageAsync(MessageParameters parameters) + /// + public async Task GetClaudeMessageAsync(MessageParameters parameters, CancellationToken ctx = default) { parameters.Stream = false; - var response = await HttpRequest(Url, HttpMethod.Post, parameters); + var response = await HttpRequest(Url, HttpMethod.Post, parameters, ctx); return response; } @@ -31,10 +34,11 @@ public async Task GetClaudeMessageAsync(MessageParameters param /// Makes a streaming call to the Claude completion API using an IAsyncEnumerable. Be sure to set stream to true in . /// /// - public async IAsyncEnumerable StreamClaudeMessageAsync(MessageParameters parameters) + /// + public async IAsyncEnumerable StreamClaudeMessageAsync(MessageParameters parameters, [EnumeratorCancellation] CancellationToken ctx = default) { parameters.Stream = true; - await foreach (var result in HttpStreamingRequestMessages(Url, HttpMethod.Post, parameters)) + await foreach (var result in HttpStreamingRequestMessages(Url, HttpMethod.Post, parameters, ctx)) { yield return result; } diff --git a/README.md b/README.md index bba20b6..be3553c 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Anthropic.SDK -[![.NET](https://github.com/tghamm/Anthropic.SDK/actions/workflows/dotnet.yml/badge.svg)](https://github.com/tghamm/Anthropic.SDK/actions/workflows/dotnet.yml) +[![.NET](https://github.com/tghamm/Anthropic.SDK/actions/workflows/dotnet.yml/badge.svg)](https://github.com/tghamm/Anthropic.SDK/actions/workflows/dotnet.yml) [![Nuget](https://img.shields.io/nuget/v/Anthropic.SDK)](https://www.nuget.org/packages/Anthropic.SDK/) Anthropic.SDK is an unofficial C# client designed for interacting with the Claude AI API. This powerful interface simplifies the integration of the Claude AI into your C# applications. It targets netstandard2.0, and .net6.0. @@ -13,7 +13,7 @@ Anthropic.SDK is an unofficial C# client designed for interacting with the Claud - [Examples](#examples) - [Non-Streaming Call](#non-streaming-call) - [Streaming Call](#streaming-call) - - [Token Counts](#token-counts) + - [Legacy Endpoints](#legacy-endpoints) - [Contributing](#contributing) - [License](#license) @@ -41,61 +41,101 @@ To start using the Claude AI API, simply create an instance of the `AnthropicCli ### Non-Streaming Call -Here's an example of a non-streaming call to the Claude AI API (with a System Prompt to the new Claude 2.1 model): +Here's an example of a non-streaming call to the Claude AI API to the new Claude 3 Sonnet model: ```csharp var client = new AnthropicClient(); -var prompt = - $@"You are an expert at date information. Please return your response in JSON only.Return a JSON object like {{ ""date"": ""08/01/2023"" }} - {AnthropicSignals.HumanSignal} What is the date the USA gained Independence? {AnthropicSignals.AssistantSignal}"; -var parameters = new SamplingParameters() +var messages = new List(); +messages.Add(new Message() { - MaxTokensToSample = 512, - Prompt = prompt, - Temperature = 0.0m, - StopSequences = new[] { AnthropicSignals.HumanSignal }, + Role = RoleType.User, + Content = "Write me a sonnet about the Statue of Liberty" +}); +var parameters = new MessageParameters() +{ + Messages = messages, + MaxTokens = 512, + Model = AnthropicModels.Claude3Sonnet, Stream = false, - Model = AnthropicModels.Claude_v2_1 + Temperature = 1.0m, }; - -var response = await client.Completions.GetClaudeCompletionAsync(parameters); -Console.WriteLine(response.Completion); -Console.WriteLine( - $@"Tokens Used: Input - {prompt.GetClaudeTokenCount()}. Output - {response.Completion.GetClaudeTokenCount()}."); +var res = await client.Messages.GetClaudeMessageAsync(parameters); ``` ### Streaming Call -The following is an example of a streaming call to the Claude AI API: +The following is an example of a streaming call to the Claude AI API Model 3 Opus that provides an image for analysis: ```csharp -var client = new AnthropicClient(); -var prompt = AnthropicSignals.HumanSignal + "Write me a sonnet about Joe Biden." + - AnthropicSignals.AssistantSignal; +string resourceName = "Anthropic.SDK.Tests.Red_Apple.jpg"; -var parameters = new SamplingParameters() +// Get the current assembly +Assembly assembly = Assembly.GetExecutingAssembly(); + +// Get a stream to the embedded resource +await using Stream stream = assembly.GetManifestResourceStream(resourceName); +// Read the stream into a byte array +byte[] imageBytes; +using (var memoryStream = new MemoryStream()) { - MaxTokensToSample = 512, - Prompt = prompt, - Temperature = 0.0m, - StopSequences = new[] { AnthropicSignals.HumanSignal }, + await stream.CopyToAsync(memoryStream); + imageBytes = memoryStream.ToArray(); +} + +// Convert the byte array to a base64 string +string base64String = Convert.ToBase64String(imageBytes); + +var client = new AnthropicClient(); +var messages = new List(); +messages.Add(new Message() +{ + Role = RoleType.User, + Content = new dynamic[] + { + new ImageContent() + { + Source = new ImageSource() + { + MediaType = "image/jpeg", + Data = base64String + } + }, + new TextContent() + { + Text = "What is this a picture of?" + } + } +}); +var parameters = new MessageParameters() +{ + Messages = messages, + MaxTokens = 512, + Model = AnthropicModels.Claude3Opus, Stream = true, - Model = AnthropicModels.Claude_v2 + Temperature = 1.0m, }; - -await foreach (var res in client.Completions.StreamClaudeCompletionAsync(parameters)) +var outputs = new List(); +await foreach (var res in client.Messages.StreamClaudeMessageAsync(parameters)) { - Console.Write(res.Completion); + if (res.Delta != null) + { + Console.Write(res.Delta.Text); + } + + outputs.Add(res); } +Console.WriteLine(string.Empty); +Console.WriteLine($@"Used Tokens - Input:{outputs.First().StreamStartMessage.Usage.InputTokens}. + Output: {outputs.Last().Usage.OutputTokens}"); ``` -### Token Counts +### Legacy Endpoints -Token calculation does not use the typical `cl100k_base` that most OpenAI models use, and instead uses it's own byte-pair encoding. A simple extension method has been added to accurately calculate the number of tokens used by both a prompt and a response. See an example below. +This SDK still supports the Completion endpoints for now, but has primarily moved to the Messages API endpoints. Token calculation does not use the typical `cl100k_base` that most OpenAI models use, and instead uses it's own byte-pair encoding. A simple extension method has been added to accurately calculate the number of tokens used by both a prompt and a response. See an example below. ```csharp var client = new AnthropicClient(); -var prompt = AnthropicSignals.HumanSignal + "Write me a sonnet about Joe Biden." + +var prompt = AnthropicSignals.HumanSignal + "Write me a sonnet about The Statue of Liberty." + AnthropicSignals.AssistantSignal; var parameters = new SamplingParameters()