From 6e63602c6564d39d4be598088a0ab7d3a3e0cae4 Mon Sep 17 00:00:00 2001 From: Diogo Martins Date: Thu, 5 Nov 2026 22:34:45 +0000 Subject: [PATCH] nghttp2: a response's fields are no longer capped at 64, so one with more no longer ends its connection, and one nghttp2 will not send resets its stream The shim packed fields into a fixed array and returned INVALID_ARGUMENT past it, which the managed side reads as a fault in the session: every other stream on the connection ended, and the response's own got nothing. The array is the connection's now and grows as needed. Without the cap, a header block past nghttp2's own 64 KiB limit reaches on_frame_not_send instead, which on main left its stream open for good, so that one is reset with INTERNAL_ERROR. Fixes #505. --- .../native/ioxide_nghttp2_shim.c | 57 +++++++---- .../linux-arm64/native/libioxide_nghttp2.so | Bin 301672 -> 301720 bytes .../linux-x64/native/libioxide_nghttp2.so | Bin 261792 -> 261864 bytes tests/Ioxide.Tests.E2E/Program.cs | 1 + .../Protocols/Nghttp2ManyHeadersTests.cs | 65 +++++++++++++ .../Nghttp2OversizedResponseTests.cs | 90 ++++++++++++++++++ tests/Ioxide.Tests.Unit/Program.cs | 1 + 7 files changed, 193 insertions(+), 21 deletions(-) create mode 100644 tests/Ioxide.Tests.E2E/Protocols/Nghttp2ManyHeadersTests.cs create mode 100644 tests/Ioxide.Tests.Unit/Nghttp2OversizedResponseTests.cs diff --git a/src/protocols/ioxide.nghttp2/native/ioxide_nghttp2_shim.c b/src/protocols/ioxide.nghttp2/native/ioxide_nghttp2_shim.c index 3c7ba4f0..a82656b6 100644 --- a/src/protocols/ioxide.nghttp2/native/ioxide_nghttp2_shim.c +++ b/src/protocols/ioxide.nghttp2/native/ioxide_nghttp2_shim.c @@ -66,6 +66,8 @@ typedef struct ih2_conn { void *user; ih2_stream *streams; int manual_flow; /* DATA is credited through ih2_consume, not by nghttp2 */ + nghttp2_nv *nv; /* the fields of the response being submitted; keeps its size */ + size_t nv_cap; } ih2_conn; static ih2_stream *ih2_stream_find(ih2_conn *c, int32_t stream_id) @@ -177,6 +179,17 @@ static int on_stream_close(nghttp2_session *session, int32_t stream_id, uint32_t return 0; } +/* nghttp2 drops a response whose header block is past its limit (64 KiB) with no frame on the wire, which would leave + * the stream open for good. Only that error: a stream already gone is not to be reset again (RFC 9113 5.4.2). */ +static int on_frame_not_send(nghttp2_session *session, const nghttp2_frame *frame, int lib_error_code, void *user_data) +{ + (void)user_data; + if (frame->hd.type == NGHTTP2_HEADERS && lib_error_code == NGHTTP2_ERR_FRAME_SIZE_ERROR) { + return nghttp2_submit_rst_stream(session, NGHTTP2_FLAG_NONE, frame->hd.stream_id, NGHTTP2_INTERNAL_ERROR); + } + return 0; +} + /* Copy the next slice of the request body into nghttp2's buffer. * * Deliberately NOT NGHTTP2_DATA_FLAG_NO_COPY. With NO_COPY nghttp2 hands the frame to @@ -258,6 +271,7 @@ static ih2_conn *ih2_new(ih2_callbacks cbs, void *user, int server, int manual_f nghttp2_session_callbacks_set_on_frame_recv_callback(callbacks, on_frame_recv); nghttp2_session_callbacks_set_on_data_chunk_recv_callback(callbacks, on_data_chunk_recv); nghttp2_session_callbacks_set_on_stream_close_callback(callbacks, on_stream_close); + nghttp2_session_callbacks_set_on_frame_not_send_callback(callbacks, on_frame_not_send); int rv; if (manual_flow) { @@ -313,18 +327,21 @@ ih2_conn *ih2_client_new(ih2_callbacks cbs, void *user) /* Headers arrive packed as [u16 namelen][name][u16 valuelen][value]... - the same format the * nghttp3 shim takes, so the managed packing code is shared in shape. * - * Returns the count, or a negative nghttp2 error. Truncating on overflow would silently DROP - * headers, and an omitted authorization is worse than a failed request, so it refuses instead. */ -#define IH2_MAX_HEADERS 64 - -static int ih2_unpack_headers(const uint8_t *headers, size_t headers_len, nghttp2_nv *nv) + * Unpacks into c->nv, which nghttp2 copies out of during submit. Returns the count, or a negative nghttp2 error. */ +static int ih2_unpack_headers(ih2_conn *c, const uint8_t *headers, size_t headers_len) { size_t count = 0; size_t off = 0; while (off + 2 <= headers_len) { - if (count == IH2_MAX_HEADERS) { - return NGHTTP2_ERR_INVALID_ARGUMENT; + if (count == c->nv_cap) { + size_t cap = c->nv_cap == 0 ? 64 : c->nv_cap * 2; + nghttp2_nv *grown = realloc(c->nv, cap * sizeof(*grown)); + if (grown == NULL) { + return NGHTTP2_ERR_NOMEM; + } + c->nv = grown; + c->nv_cap = cap; } uint16_t namelen; @@ -345,11 +362,11 @@ static int ih2_unpack_headers(const uint8_t *headers, size_t headers_len, nghttp const uint8_t *value = headers + off; off += valuelen; - nv[count].name = (uint8_t *)name; - nv[count].namelen = namelen; - nv[count].value = (uint8_t *)value; - nv[count].valuelen = valuelen; - nv[count].flags = NGHTTP2_NV_FLAG_NONE; /* nghttp2 copies during submit */ + c->nv[count].name = (uint8_t *)name; + c->nv[count].namelen = namelen; + c->nv[count].value = (uint8_t *)value; + c->nv[count].valuelen = valuelen; + c->nv[count].flags = NGHTTP2_NV_FLAG_NONE; /* nghttp2 copies during submit */ count++; } @@ -396,8 +413,7 @@ int ih2_submit_response_stream(ih2_conn *c, int32_t stream_id, return NGHTTP2_ERR_INVALID_STATE; } - nghttp2_nv nv[IH2_MAX_HEADERS]; - int count = ih2_unpack_headers(headers, headers_len, nv); + int count = ih2_unpack_headers(c, headers, headers_len); if (count < 0) { return count; } @@ -418,7 +434,7 @@ int ih2_submit_response_stream(ih2_conn *c, int32_t stream_id, provider.source.ptr = s; provider.read_callback = read_body; - int rv = nghttp2_submit_response(c->session, stream_id, nv, (size_t)count, &provider); + int rv = nghttp2_submit_response(c->session, stream_id, c->nv, (size_t)count, &provider); if (rv != 0) { ih2_stream_drop(c, stream_id); } @@ -517,8 +533,7 @@ int ih2_submit_response(ih2_conn *c, int32_t stream_id, return NGHTTP2_ERR_INVALID_STATE; } - nghttp2_nv nv[IH2_MAX_HEADERS]; - int count = ih2_unpack_headers(headers, headers_len, nv); + int count = ih2_unpack_headers(c, headers, headers_len); if (count < 0) { return count; } @@ -543,7 +558,7 @@ int ih2_submit_response(ih2_conn *c, int32_t stream_id, provider_ptr = &provider; } - int rv = nghttp2_submit_response(c->session, stream_id, nv, (size_t)count, provider_ptr); + int rv = nghttp2_submit_response(c->session, stream_id, c->nv, (size_t)count, provider_ptr); if (rv != 0 && s != NULL) { ih2_stream_drop(c, stream_id); } @@ -558,8 +573,7 @@ int32_t ih2_submit_request(ih2_conn *c, const uint8_t *headers, size_t headers_l return NGHTTP2_ERR_INVALID_STATE; } - nghttp2_nv nv[IH2_MAX_HEADERS]; - int count = ih2_unpack_headers(headers, headers_len, nv); + int count = ih2_unpack_headers(c, headers, headers_len); if (count < 0) { return count; } @@ -580,7 +594,7 @@ int32_t ih2_submit_request(ih2_conn *c, const uint8_t *headers, size_t headers_l /* Unlike a response, the stream id is not known until submit returns - so the body is * registered after, and read_body cannot run before then (nghttp2 has no stream to read for). */ - int32_t stream_id = nghttp2_submit_request(c->session, NULL, nv, (size_t)count, provider_ptr, NULL); + int32_t stream_id = nghttp2_submit_request(c->session, NULL, c->nv, (size_t)count, provider_ptr, NULL); if (stream_id < 0) { if (s != NULL) { free(s->body); @@ -673,6 +687,7 @@ void ih2_free(ih2_conn *c) ih2_stream_drop(c, c->streams->stream_id); } nghttp2_session_del(c->session); + free(c->nv); free(c); } diff --git a/src/protocols/ioxide.nghttp2/runtimes/linux-arm64/native/libioxide_nghttp2.so b/src/protocols/ioxide.nghttp2/runtimes/linux-arm64/native/libioxide_nghttp2.so index c89102ff143b4407660d15f5e369b3d0cd7911e2..2045de0ea30b94f95dba2f1c106859ab39dda9f6 100755 GIT binary patch delta 70695 zcmafc30zcF`~N)`P*Blf9Z-;AaRDVUK_xK<)Z7zCE6c1w>{Uw((@L|Ni%YpxGhOXy zi;inDX<=eYX$_`jZ`q5crMV5bXBzIJ>HNRvo^xRw-uM5T&j-()=XuVvpXV(1-tlZ% z_>#@x_V#3nBeh$|+2{a?ea<>2bP92&YS&VK$BMTSJ>|0Y&A-iQ!HIIz0p#7tf$o>f zO-F0a3_jbJ#{aW#!v5p-=uLl-%+OS6EvNJSH$aM(mIMd+f}~UGMuRcvK7%BMs|6&2 z44|De1C6S^MgO3%Mv@e!0sl}7S{TV+jFfCt6AhinpXxAldjS-@+cvcrxOUpV`$5+) zD73M_1;yx8L0bX^Of`pPkf#~7tu^cnmzqjaB+(RWCe-^NnZqO3aJW^#zk#FW1DO6fs)}2hjbK(LGUnRWWB%v!MvX|lqnCm z@;!&A2zcXYxCx$hs>8yKw#pzbUKe9%$9t9S;^bhWeR@Q4xH;fnwYp| zPsLba{A)za@l}&A?P$pno)FGRPvKK04&UFH!)FVH?u+1XN#-u-F5tgKakz4v!<_=Y zEs(>f?&bh|)jpS#AfIVuU&T8hX|>M;j1dOUFmO0D)jlEjaro5$t`I!WKd~I{Y{%(y zcq0u9=kP@m2k4$2EQ*3;`;sFTi4M<(@eZb1&Q~7=pNk}&eTu_J2)WKKoZjjengJa- zyj13j776-)i>hNi$N{!K0&ysTcgUa0HHqZ?q*CE(r*QQ|LH{;_s(GlK(;pFVqe#XK zzdGR&RVwgrPFTdd*`&lw&PYn;5`Pw+n4iMofuC}~O(CEngu_Q1<^ZdJKZw{dg{}(A z`V069jC)N{;R)!cee8%uxMXW8nXhnwo~8G<;vGtbOY=pCQ@j96%6Sg>S->9=xl$xX zfu1W5Q{zu>NE?lr#B$3|X0e1C0^U=sLNY|vLGjQ&uL{dN!ZJNqHj1HO;4zl^2zr*FjK8PeLwvMd z)00l5{8`Zo`8zm3&y^NpDA*IY#YY7FE)y4Q5UUnF1lcJG!eWsW z@R;^_OXNhQdMVy$EA<=dXN4V#utRrjuozkSe{n8L1h)WDt4izb)-d~ol>PfTVUD1m zA~LKGpOVw+#>g*XEpqh^r(7*MToDd0RX4VVy24w!S}%ynAzw@m`iNMKA;ZF95bJw= z1ic`l5h$Xe^Vun+jPMI zfWb#h;$hVl$`byr5&j-82rU@JCq7P^%R+JN9MDS&gfke7f{oL=UE^;z&438h#3H}dXrJc1gZT{a5X|{WEktPCB2(jpfWBfD z%m1ANMhdtjW-E^l>p3l<@gB1D#&d6w2CX*-dmBSdl26aJcR7Jr^QoN%gO)J6z)3d{7QdqcQd zVPzDbk%E4L@X%_J)FFHrNK&%eImKw3AZC-IR=k@Y(VikR%o{n}%o`~LImOgnl*a*1 zA!fLk-cm#nixlwDAkzZpH)vD&TG%Fy71NJdbZCY$!nXbSPxHYh)RuaSEvG4y3+|7A zvClD)dR7rhs|J;%*6d!j z(T~B+ewN)QJYn$jgj1yCRNs_@d}%8LF-C?+E?5u2S9&UmaxM&%jwf?^MI2mp=iQ_l zQ8$$c4p4+)?ezsi42Lff^t+Q_KNCE{XMe%^OpW9MtO1--SI8wSv-?d{e~XDe!^7#< z3&HC}0d`*G0NvA1i$Px6i!l4^L-3ZES`1=p$>IGZ6Et9o)`&5JRM$R1!b8e6{(Y{1 z9}^+-_=T*M7=#`%_&yTVNcts}3rM-eEf6^)Z516VJ92n`-bfw9;57RU&KQx5hD%%% zgP?ym0#<<&Z_z?kD zg@C}@9Pp2T9}wm4q?icx40}0~^Raf|)u6v93JNorP34Aa&OuMrCFscndqf#tF9bX+ zGR7@3Mi1yjkug^<-^=Hs2!Yjaar8W9ZjC?oHQM0OQ|WDCfx&N4(?)p6TE#uFL@4y6 z7@S37aOyE`jHAyo2PIjH|_9&KHAOcj-d0c&QYN zm$^c~by46A4|2i!hIFt{$SM@lJy+Nm@|mWl?e}V$DPnBpSt{usIwuCX;Wnp_5wUzK zk@In{;BZlfr4&(T%ltxiQG~#4y}&#CEG)Pv3hh;~C0r!ne~6q&`H=(k(eY{m7wi!; zLaCq+5gx5ki_?rYtKa1yDL znotyAfBk{~Q^ErC4sJmo(IHz*7t%fsSSaA3DV&iaT&){$3m422MdBDouU-`*WX}52 zX-&SgQ&fwqe%0cZKGwWkqFV_56E0x_%p&F63;3^{Io#uy)UPLU`2LmLFteb4Ee!G* zqsUtvQX>#^#aL6sx>Zlcisqa?<4;bg&mi67gy3(u0F&UeS(HalIEU+@d_vG?+In+@ zUN>_^wwH-Tlbxfb2a#n=QEL_F>=Xi8ikxsC;{ZKmU%@4eUJ|2bqM&aqa>bd*bHz4N z2>4Enf};O$N+_s(@&%*SVj-~xv6fV`rw~a6PC9Bw{|0DSPDELU zbd|AOQ+(y1(Us!6L+$L=H(OINXDV$(JG< zb4_awuy0b`k=gk~4$ly=)Mu9O1l;5o;~cREF^L%`g|m}ph?=j6BVvrd3$_);H$F$El{LARgVvC^1zEm&aB3Ja}eL}amn)la3(^eQzw%o=AixsD3mW0TBrFRsK!VFX4%vl zPN)yF>!LDdh*gNL(0*aDT?|(}G}m##__zbOVY;iIY$H5Z#^G+>NVf6dsJXO;Lv$A{ z6Bc+x2)c_7v%@*PK^%$bf^Q0X>uGL4DQ~2sg5E9YO#(ie&nY%(w%CK11>!Zal&uu& zBHeYhViL+1NeYK)pCDm?{UX;;AC@c?m|+*Ie!VV*4tv+jx4Mat(N=bZIHJ3y=)C2^SF zUI_kGFAAqPKoRhKvC~&l#R>2cfoLYCG-ni7Xrb;2Q58%QhwH9hCo;)1fWwa@?v<)7sU-GWxQV6I*ys>RQO(QuL4m3|%?ET%4x zI2u?e=%0tijE`AVmz`W+>7%xYzcv=c8X6jDpIIW7HDXNZ3e6OXDrY&JKKNIQ5Lm_H zeVP#PtFYKDEEW!wE(*9)E$D8v+5OfW#+Fa5`LYS%;BY?WQ-M3=8Fs-A!=T* zu)^4Z(;LKI2I0~^4+}m{&L^$zA%-83l3|ijsu9oaDWb#s;Ky$tmj zR{4VK;}&YYFU-hzfCCN+GZI9U>>^5HTuG_IDISrJ`9gZIpuc)U<71O_uYV$<5qXYN z>YMda(VlF?^$Q#L-$mt_RK=r^)Z_DAcMOx+v`XdY;2mzIw${#2rYUKn2 zZ9Y1%5$!ZTFp1_*2yC+H<(zP$c6u;DeY@w%O#>dx>!_~n(Sq711%|8nlfqQbgy2ng zpPe5(Ab%_8nQ@%EKR}OyfcN)(0hUZP#(G5G8b9n=wX+Y_ z;JH_mvuc44w#W}#qdI)B_6FFBsYcsPU9KNi8p3S}uDVyEPH*so>-7Eo;5vPgA3T`z zw@GvT5PAo@A6#^hcKg9&grYTmaFcF8^}Pn@^ac%%MAf6Jcj*5=Iu!ZA+Y146{ouL) zyB}Pq-|Y*Bd?`b>z!w2{cin;$_gbLS8~orpeSbf=PG95)H-kTuFU|Es=pF2SaMpo+ zcKg9~`WioYf8BtS|HFWjftvif5a=EH|Bntue(-!DV6GorSIF)M*XeiH!MXhU5Y!-05#@bS6`BweQW%%c6G83)^O%t747N@V4b>LKP+mh57yoQ zOI|g`mg;gFU_1L@4QKC_>sAYZb?b5)U>!bKdjo6*u)B4+4X~Gdu!eK~aua75W6$bx z8(@d|VC@aC#lY6+avNYb`d|(0tP!68-e8YY1?){-ZUb!CYxP)r18gp^!4LDgP}2ZA z*#~Pl?=N=+urZ=^MFz2t*6T=18h_y$IbF1G=8m=D(809y>~TwQJh>_#7~;iA9XDqxrBavNa7Z1q@s z18gp^>vXvdu#J z;e)j|z*YdeTbJ7ad&viDxa2Q4u^6j7U2X&HFdwYF0k#;}gSy-X*o{6|!)1TDRls_5 zxec&kGwZST2H0F+Yjn8{u#Myqd*!H^I23Us=*4_YH0jyb<+W>pX2Wzd`AHo%6>smIzIU~_>TuiM)IJJ|h?CkUh=^jYW?LVzJ*$+%WZ%i=7Y62 zz!n3$RhQcUyU_=0VE2LUoqvIK>v9`l!{*jw?G3QGz*g#V8(=5MwiK|0(lq-^zr_ZRTpe(4&h2 zqvwNu@DT#;@q_0#+LX57ann}wYapKH105!*pMiKiz;k`Tvn2Hxz(>Gii4Qnk4P9kao2_aVy3Pk$uJ!~p2hgoP z(8ttCfKCK-w-5A5^Nl&S)olQG_W>^<>P3M6 z0=T~qIG(7j*TCItnuU(^0ryvjtTC#C*EDNB-UqsesBeJyHGrr2fCs_d0Iy%uEOxFB zSR9jSA+)P|*Ca^J)zMlY=ZC zWj_V>jH=4(HF}aIM>G>BNtvwI*P5sZS2*L^*Qz9uNM%Pn!0Ve?dy^|0g~g&a8hz@lw5M7 zFref{fb4oYP`Wg)u{7dlfaJO!Kr~KK;5Gt(waHQ~ZbwAApPe%8dpUB!iY8GDHaC(S zky7LWwTa}|B}Xi<$;R_@1EdiPD{M`j7^bB z#x#>^(Pl3P!EO*poy@ffQq*~J$2-Ca=EPjQFE&`&_Y#tT{Po(e<+p6VN?=j|liadY zCXEX!ISR9Clg+itgG%_7;khs-561K^xie#zmaz=yl_Sm*uXhB)djg`;7)^>V5%U+b z^19BfND04yYt^}}V^}bEpvyy~GUnWA>d|dR@_>46TNnA-KWf_cF{*vLxnoL(IXgL5 z311#4O*TutU$tt_%_=x!1w3vPlmX_m+@PtcK&7*c}acyn_jkO z5WqV#c50d@m;w&4KW}fc7x%&Jv(NUcy)#2Dxid?0TpJZwGDkAko@yc020?LauvCU{ zrBxw>)d2ynE5idyt{{W~ph<2ll{Lk%xyF)GzS)g5R`y{C?Hhw6It3aDc$Pe;z23ex z_-KPXrIG8J@LckQ6ILahxa}8X4B_PtZ2-3^$c*~R~ z=JMmR^jraARSX!u*A~c9ZFkL6k*=<2nUE8#AKC+ECESB+)*jPf0VOZNDu!#b7%@Bq zAakJ*>H`b4sjSOildrMdgq_j!o=BBUw1-VGjAFzrL1eC`jp(jh}6RF zjwg|}#727DBhy$MV44Tg@837_Ei8(}+M#`p6F* zWGO(M`9oUHXib3#*C@0q+|tGC-OOA%3rVBErH^R%NR-H2OcFcR4TIvWFg=G>J^RBE zVpMnS9!2suCI0vWA^X&G|4xZ?Hg+UBa~zVjr=z-sV!0L})s}8b{As96wyBf%;NE($ zBhk~-Avqs(>}aJ}j;ND=X-8J7OMjU{=BT0n`6H#&C`*+${^(cxTT(9vn{5uhd*$-x zB=-kwPA!+D((Drts!c0XNn&U&g+abT5>$Bp8M@x@`XD6_d%pk-SvAXqN>+^A4+U$--AQRbL!%Q z?MSS;{a_a|LcMgbAIVd*550hrTXLui*{dEs)Q+@JgZ>yL-@L4j`Qst^^kvoc$D^cD zC5O9_SJmvpeaJ`Z8;4&d@2Rzi2a#@S-y=Opky?DD3u&cpK9WF&s|SuGlSkFsBjccd z!BH07c}F`yi_J&7kT=wGNAELMYOZxRbtGDe15c1RIpypSv3ijdV@)cLr)~6H9yf4o( ziPZDYRxB^0?<%Za1^;_#lmJK41Bzvmn(i^mH?F7;c`RY~UG~y~9ZzpnuL)aKF!VHzh7-i;2;mg#Ls^`ck zHLAKD>O;@!SIA@P=IZ3oV^_TN+a^-22lH${^;GrXcwg3%TxZVAhZM`2tLlB8Xwpf2 z=ESJ5tLUjaS|-ZA9Ch!Bn0uU|)b}1UNU^*ED;hXMr;!33)u4G^O+7g%^asW|95IBG zr>ey#BVu0wqYKQKPaKwL_ z6kZT6m2X$mPYsPK28OL>Ojr)HZAfvF0ciBOS_(GTVqBCJO5~?L z5?P>Dp2-h$*LbNh$NXLu+{9GduXa8g5tV>$9?Zrk0IdeJ3QMJB>f>jp;D@gEob5!S z)H`R5^7+eZ^tq=^zGgsu%?wYFLmr2MjAdnny7=61f?9R1kPK0W{Fy+~)k%MLAoJCw ze=ctmjZm?KTOpgvzk{1r%s0bDk*-3(w0vkT)gDzxpO3pI38f$*rjcXii;6`BlLjHu zY2dA-sfuO3T7JG0X|A3-pMOtkIdxWz9Z4@KmO}NBzq&+y1Fx`^iV3?Lwp3(EG(`RQ zujR16=Y>|-EIxiAIWT=E*FNOSEVv^rjDX0Gk023_ou{UY>Akfg~{BA%)W?24&4jW(NHDW(d zBL^w_3Y93wY<2R*=SZr0^x~HIuR+iD5K^Gz*epv6*uJ5-kr~Az$~9Nr_;&=EwQ1Mi zO$q6v?yX6{n&MJTD>6(Cz0@yz(?uRENs3-zMPU9ySGG!k?<++$w4>gm@(ORb;f*DV zB}#q!QYUgq-F|5}iB!Wbzd)v`#g|)=AJva9&mu8u;uRw%nd~c%k+G`dN{7%57rn-l zSS$u$P4Joecb>VJ$khlS*pfgGskF7Wml`N|BcGB_eL*rL=C%X#FUtN zb2!}n`b`y6XjrY0M60Q_gUETc;5JUVYA2F0>V?}zMty52DOC$@eMk~Dx)0T;+k-I4 z7TjJSpZZI^csm+vf}nqfk}e>MP{;o>vE`?K@#5xz;g}4x+{Cq`7Uci5lrLUTo7{Pn zbXN=RbV>j4PcLQJ#T>=mCprF&{%m81=ZnicEno&Ja2`s6Tdla$o2>}$_JCr!cYBAv z1xmgqk8t7L&ASV*nuy0@SXHyUgUEQb*tUdLAhm1wl6N{%4vk5@9sH!8h;(c~q|L&dD59nN{A+zMi zU;WE#v;|9(6|9DB&7{e0>@`o|%;>MPfSaVriGXLF^BN7HW4YS;Pp`2v{;cP{#uos) z4!R&EH+v5H*fONai0X*GfbXXykVK>(2HB(dV=G48Fs8d^oD%6s#2A+plOrz-E5aU&Y$@ZTc7i7O_y+7kud_No4(XOw6TYkS( zYt3uwNO(;uaSI+rfN#e&iR(>AH6lIRECb+E0IXjQEH_=qFyg_)DvIHq6|$4Cy+#9-2cIOynL z(v2k3#lhqi5=28oNI%kpJ`zHPhD||N<{>9)v;r4pF0e;LTc|= znUUsjuXguj-xFRVB>|IX?(^VeBGKLWpIB+;J{%)!xTk^pZau#?DRXmH4i37rqjbw> zO-T~UG2PpYL3&l!S_mVSY9pFDoKqUS@c3ESrnfa#okPc9D^Qa9A)xZ zFvhiLCC=GS(`C)c17s#W)SR?RodHH~T5uW!($g2->N=6-53ZRCkr1j~Tbnt8XnYIO ziM&pSv>^AltW0z^cl>(BOPPeP(Pb&h?;~hkbZHCn7Kx*Y29g}S9LzUiDNB`15=pHF zVkVh%g#morbguzF&G`yF1v*kqL&C^71ZQ#>QQ9M}C@z(XHZO^onp!x<+*fS528JyD zEbeV-Y&eoHh7JoSwx}b}m7RsKS?AOluaRA!pr^vgTd|vcP|Hv-SRyg>hjdN^>7Dv0 zc=GZZ;Tn$XNbIin%d+Elxv_(hvgBosn?^51kjRet@eVd9L&21_?a*U?Yjf=g?I<ioQZFW^F#NTW{$;R@7@vbSPmScIZ7`?l2)V<4T*xc-=Nu11oJa> zM3LTM!@<{y!%fCF7YCvV^c0AKBOrnuBU5uUf|U_XGD$!BOf>00B6BhVVqG(UXE=5?umO0CZ#x^ab+I*Lm&C@a+2E*N zs#w^$!7}vupLEU^jvaz-5$IGSNtJ6)&~I>ZE#EptZy8BTa-2rRkZxhIEIL6_nKO?# zSR{7Q(EyVzba4y}`J8T!A)R7ZL0Rp_%NRMEow+%yC5`xFdM5_i_%3}W7R2M|oLDl5 zjG%jC$(Zp_~kPO$men1&dpF`xIPLs}9e0{%=((k`?>i!Q6MF|L(#X-krF zZ(1m zZ^3hE<#aZi{jiuV_E#%bWTXvZcM-oeqCX#o_5IQM|tRfy7mP|g8FILg7 zlF55vD_~9{g5|mE)do^A9i2jklZA9+3h800s>Y##Hguz0O_G zQyUT-y9^MPP#&yDt(Tu=cM7{|6^G`wA<40$AVvw4GL_$Qv#obqbSp-wW=S!DzTO52 z{R-WTCNB&kmLmt)ii2Te(aTfo&15T*<~ZA)#TIisXr(BtrG{kSdZ7Wz5Fa8R_%POI9ILit7&eW)F2o!%In*bO)Q z_6^p#k=j1={o^d5V_hT?=c|YrlZ2ZPWs%g;jwFP+(dC1gBwH7D%p5WxspG;+?P*0Sv5`eIHw|-8C;Chp86529v`^9UG}1rV%D)YyAst9J`KE{Fbs+B= z%n=SFY+)zWkd)SuR&^leKx?ccfVSy~70?DcsUulvutqud9IGe8B$rNd0@3*^Iv|~x z;(P))gFD(W5lq=gLYkx%)3@(Kt{$dq z?jsYMS&fc<0(qED&L>8i*@=V&T4Nj!&;gz95s6ZalM*IUigx7H6k8~r(+L@Mh;Hvh z9%yN24$E`LI+_W7BQWOJu-QrRGuPutb2>eP3<{%A(2W6Af!iC*>69MG;5Pn1qdJrB z2BoEA>(P33_t4Ru;VN^iV>MmT84G|>baQ9Yg*2h(I+KZkrdE!Z>Erj4?txOAV;o(4 zKay++6et$#@27|EC%v239>b!PMGu=}5h5jp+1DVs7t@a~$=7UWRmxq^$kTl<+;s8(ujgSh{CI z+*>p#3-)+gvzTU)?s3j|$ETwEhaj&=<9@+uoF$%qoCQ-ckz|o}7=5{5o z1zHmvPtuC61eew^*6qoTS%F@y-n#$-N?ESr%6lcfFrbZCltAy?j$zE zlc2$_9i~rpC-=vmJb_u->l#fa*gw4^&}7gxgs-SB2Eg_ItsvH4gENq42pUf)J~{cjME>cD%)lcp?9)j z-Mh5S1IUs#^z8@8*k-0=2fLrbQVRG7$lzwqq&i49`bZCq=>>ESnyABYo)tXl6>lca ztuz<>Mt|%P!; zq4?qUfVS?iqxjhi*)bPOd~1>;uVAKy(X~OCb8u|dfYz^2wgMfSrrF<}8Qb~YSKKp30cUiS%es%#iaDC^oL0 zH0(iQjBkmrQ{}c;lCT4&NY`b!o3-e%?`zukK{7Vj+D3D#m2P~HWCVLsv~L!A?m>hg zgNF6O{vnYL=>>N+VNE+)*^9)<7Y@;jy~seM4Q888*>8X^(i$=%T>m-5&tHOA7%;O% zLpyeBvlzPIS(QvZQIY_ElCCh5ZapsorQF8e1(O%HHr<|uVN++;tDWbgc2iutwMRlC zTm={sMjDliQ8bWd=aPQu3OKQK73!*MF%&t0Tb!7Iu)d1X@<0NfIe;yOa_NR#EV4F% zjIWK1u1Z>!i`D*R=2)*cbBvbLIE#G3Tuz{F87HOp#GW@(zvd4d6R8 zyEk0sp#`jQ(RsarT}t=#Mq)lfaj=q12GhhoaA#jSx(}wgtAEfPeaQVyn7>%aPW?ge z_CXaYqKSRM_5+&T7f%0{E@q8^Uh0c^YA+3a2(lih=?{@^=?kEygrVl_YR-0EZHzfT zT3d|Q!brYvk8lk<$hj-j@epKBrh6U&^G@{CL!?V~TY-EMj7)!fv&v=?%zKfp8hlqS zdNWs|K%U^~Vqu|u6pWdw`E(fe=!v+CNsnX6P=e?(G+eYVN3aB&v~0SeAL$kSG01S! z-&lruv$G&Q`#Y8UBY&pTA^qW*?sRg0lED^qIDM(HvZaPOh>tKFt;mClEo@ELpH}oI z5m^yJ#3sS30Fg-&u+IR?#rG#5bB+(bB@G!sa5K+GfZwoW0@~5O1F%9Zp&t)GmHmkB z9YDsVTM!>?u3er8b}xagaQQ*`+26hNHsFeZJpf~LkpN{MHai1JLgHgU@ssmbAZM8u z>uL=R*^OEjqyV~RAi14>6ClP}!2%}~UD&>poeAk(_5-GODW`h|k>vRHP(}%sSX~3B zSXa$&I*Ac`htR>KL-zCNWyUhpeaXAIDxf9EjIJyeP`JMZx|^{StO{tQ!8-xYB^X^D z>EywrRXhO+Mo?xh9-?Ah6EzafrZp`YjA(73dj^x3KEBSxvRkW%o;Hq^AI-9KN2l93 zK}9VrWp%SIsy=ixm(8-=M^lH8=Mo=-6>w#mwUN0*`6du@qg=bWc8MCI9(5{WG6D7VK{8sDOZld_iO# zM$%<-JNoW0@|*1JK*w3g^Rl}g{oO(ymE9d_r{Uz$X6`htlHR`SHJYhoI9Vr4X|%@( z@@TLrRht2^D;hx(=++TrL$EVlBc8=T#`i~%V7l-T(%E2buYo6l2eY*e-SY?;9uf?1 z-6#wyX|yHvQS8J>7#%W_7^8jycqWeZ*=F&(XU*Cg_&qv(B$+`1=(Uj~g)J5lh)N8v z%0e>^=-C8j>f~6tewL*J&3YW$*#-MCH{n?~Q>}Nz^(3|kZixhrcBRwTA1B7taX`B< z-y^J8`}uHV$Nh|(yOX2(HN_G_w?9rYY`zq_JPhX@pUtvdhq9ZHkY5)m@4bz2+T?&X zao)>S?_`*4l3k-~xI^5i>gYZmD$r#(kuyD*T>8%28b?0}wpx{G#=Ku;^U zFgLaF;rOr*$4!ExCm=2@g_0++XicC|Pol>BMh84eM#;DL)3r~MuW%4mFq-tj3UtM2 zG6gHcsHZU8-ly45kyhF7!ugoT)0{XzC0D&!4O}7N@dXwHjKLiDx~c zElmhbKIEDLDSsxtC#+RiiUZi7*#qf+rUncVjNy zNJFi}*z-8#NCTxZUm4ZVb&yW}7bjlsa|=j^s7cTcRXpnfJZm#qn;artBWN-E|9xiB#Ra5Yn=r8WQ;fDeTr1Hi zgumxz7xWD7mOGp+Q6pXXw5k9z@^;#D45s3EI(iHw80lj6?LTz$7}6_t90ZyE=CJn#Y&5+v7Qy+A#y*2arG1~l5&#xI z1B<_=i=V+_xi`95!=%hO!e)iIG^Xl{^w2XTA!-LuhoQX|v~PG6I@8d9VZV!<`WI;x z)&vwvM198xX!*b3brY@n7ctttM-+3QxD(^N5ZCTWaXL#`D$!aVn@h|CAHb{sMp2b|;K`CsVc;}OvD)G?k!#E+`<(pwlcwa8NU zCT~_tJj%L4^czp{ykf)~BC^J(G)(kf~IP-Ztry$%%fU?m+k0r}B|E}npF`I44TAVXt60AGFZeuqxH zgvGhq)5K@%3O;wJSvUy=cuZ`u1?$vjNrcS?2CV+E(Y=ltg7~}-1snL-r@L$_w(J2d z^Gg!6tHwd<|D-o(II3?cmI~1S7aAK6oU^l|I;z;R^}iEw8q@ub>d0ct=l?$%PbWvx zO+5ee-)Q`ndmn?wo!3QqZ`6OYR?jF;rX%Sp&OAZPrb2@KMj>7E9P(o^J^CDp>(8gS zdp!(mRyHrTOhKm)5I8(({=ePn&Tx!rQfwJdb0?C=((fW&%-;Vp8l3f|J#T)or9W8z zzGc@$+-nSLjXnw5R+8V+z~G&PiRBp@`aD)Q*|g{LWUQF^xtgXB?ocVrk+f}=4X;` zN~TL+U@R|ag7H9gmkv7|7DgXo8BoR_6AheCR|5Q zCGDMM38fn*6N-C;eP1LA(X0N$cOg|`h59Kxa8;)7OeHO2cgo8@coTR9Pj44od^WoR z4=S^z;RRYT6-BQ*t$2|Xk{@W#m#_XIbXc@+o9FSw=g2=gnZNrCVvw>FcoJSxm>)htQDPgTwLOwpr5(st8AF;570X{GE!E0(8m<= z5aW=`H@tRV)vKq>vJBKY$hAMyV+v^-a^gpBb`=dRCJAji|HQxkj@JB#H%mETE>Fmj zCVRHyHG!slt+I#?E5@nNInnbwI;R->+j4poQ1TfKnMvA(ECG_;JjOC}CbDJ`ojj8a z#a)w%nItDt>8b5N*s5TlU}B|Vv#{tILPyU6lRP?a7UJ2LZl6V7iP{7jtRk?tjC75K zLs^u<>44d={8#$SY|=}<{cpNYa%FHGXwoOFh z?^_5`UCA}VDBJ{jlXMDwYqyuiK<6bUDRVr%^d_6$LG8Tb&AdHjXvs*Fa;2BKRz@#^ zXXa+M7>H-p;#`H2{L{G~?v?V4kCgAhmbn7wCU3$2Gik|Nn95V>g|~>U=@^tn5AK%b znFxJlE@>m*fotZHmh$x<=~r{fqahw}X1$Nm*m**c){%rP`Yib=C@44h?tMz;(34` zo=;N4S_sx`C!kb^I6k3x2dPU`a~P$&FxptOV$Zid5wW}_Q)M&V{x)fs-T~CUgEIim z)d%O#Omm;Xd60&^1F6Sp);px5?9QQu?~vT|+uz^I;aBw1Ieg^DVIAH34n~5DhP;dV z5K1S#ON{B?`7!v=hrw7s21Rt^yBHKx=&5(1$@etGPWt5*fk^k)1YvzsnCtw4CzpgL z?Te9IETJy=`1TvWd5({Px~So|Aoo!z}zb(WeQ zaNvzCW_gWfxigS1SWJ=($^(u^0QcZVHWo4|4*(v<{qGR$25 zC@o)tvxhT4dtOJm7qzkw+?UqX%2-zqP2X6pRtEa%YoMK%VwXFgNqAaen8r_YRZ(tL4&kEH{0}2 zx`)L(x z2e<5~{=L}pHl!AJFqcn5Mzfa1;^q#7aI?3JW%k>+c3$vit$`IM0{Y_-N~to>*^8d| zkl@ZN4f}`~gI7TdmKyRk}G|Mb@&p z23v>sjCfOpu`R$NJkONlaDWy|RPB@u>jtKFW&OILyJN??nU>pAT9iBp)mb}&Uiyec z#12BV+&OFo7@^Gq`U)_V#(#`+lcrG8(@H8o0PfgjeoRa@Q!mF@eB%Q+#>G;yE6i*l zTXz{d)jL>hX%4x}rU=Xw|C1K`j+ws|TLM7qM^jUXNA=ip+lb#8##<;Ie-uC z2WjJFBul=ti$1uFwC?;i%rdRic1wO9;au23*qFUI2m=#V2YS-Cm*H4q0qZ6!mTpk8 zj<@unBOC^MaBl6VRAr&x&hcBYV*$F=N-4KqZ(wLmT|i6$j+L3SESo^jHfZc`JaQ&^ zIT=QV)0dW$m+?#qo+$6hwm%4GsTNLCbFqSLPmR@jTv5)&-D=@oaFR=n^if`!B6=YCs1VU=YqJ=$L#LfWOZ7_lnfaT{3^!b&x zSxFWkNjI*1lWwW6!h-2IXYVZz zY=qvW{$3hMi&v9QVK^9}5}vCep4@D6i!j z4OAs|3vU^nu!bau&Z%G%3A@`7#h$fULx#3_7}jx6jO!;{UmMjM&u8~3VJ}RwV$W_{ zJWfN`qP91tZPwx>bs$~3mb41(BG|JhMsPD}E$P*~y$}0y-_quvkbi}q2N~xd>l#ms zKY+z=`T1;&Yd0k>@`8NTO7U{mrF^>gQ)Jgjdg)UVA)on%Hd;@{kTg1BJ@y>;L+dNU z^YBD`?-IO#X+%!#yYo#wtO_vPR$UJtgwsRlK`gX(Jx)s(&__0))D%Nm?OqzT$M4g5 z8%T%HAJARD$(2JZHeh902r4WFT?!r{Vz+>*QF*ah`3!fbK7j)J>a34-4aaxhJBB@G z_8GQyYw5htu;&Y=1)oC=Y`;E-;482n38y_P6ih2VM+Ew4g899?jr79jq)TXy#*Kku zTs>)eDY$i@FO?FL!Hv7*)18+|CqY zkL=;zJ?*=Zbjq3qD)usx8A+`_$Mg$K#Of`ZEth!8;;~QA@vbqhW3*%=QU~{=HLa=z0>wY>az?Zg$fj*iS>RY<@ z3(~cD1ytAdoGJ8t(?`z$P0!f3{)e7fbkb(hPY&2l2X4Vh#6wJ>*v6-&qqDoT6)Hp*VqBdxVJPp@w_>gQ99_JX^a}kHY*|vXapI;`Tao8~eyuw$!ZnUYm6LYOcWIni zQX5^@zo7%mG4DvUqMSqoZGwaqH1QTmpf}4&R5G&so_fwQ9!HNm#^By6NP{4cD&=?r zyBVGQ75cw*Z-0|-f49U(4EiUH#lxu}Jw%Uwg(3Mc4fz^PGR^uLE_#JN@--RW`8u>@ zLy5(sDU3KNX07UgSd=z4i$%IdLq4yJk*+W4p|9~|-yV?aW9GpvsoRJ_HYm7j>Iufp z$Ph2q!Mxt4sc@rYl2-x&ScZj;RQUnH}!4k6)bJ<-7~ znSHLYXsCmGBI~d5PD(vIqW&5W4c5WU;q}*evJr3_v)C@-A>TS8lh3u&P!IRCsJ~Wx zu1!AI*5>szxa(TS(;8ZT?P*qjt=N3NU=32&LGroAn>KZDoQc+5dw6Iy1Kg&1xWeIV zmyEF689q@$i0=)vUBV-NZhFa$$C{M(v_%E^7i(XsAOjmAl?vT~^zaUnPOnyw_Uta* z4$_|C`|Z&2%{YGN4id%?zwf~M&P7wdBPlj(8%-NFs1h@fmi?{Wt@w{w$lSyQCMkit z+?rUgF&>qxx60?*oKz3Tb8q!DKG#kkdWp;Jt+~XUQs2Spb8SwphbunU_#L7;0aD7A z7CXuKfWS&TEWKsM59E}A*lEE*yr1zZJ$De}_eC0V2rH~Z^z}nzs4af8wlpkF#PZO@ zmWT>_akn#kj@viIisjCi{OlUb$5Mu4_Xg@{&8%dA)(YC8isdqB*}{sQb^jOo%0flZ zWA{-#3j-bWgZ>~N$cjwQ{6PlDXUpjQhsgr={oBJNku0HAhsn6GYUpUi`;Pog^PTIC z(Z`SAX6A=q0E`>?`U~iInDq#GF0^KoUSW)`5PIhb`6>MQGQK`B<0mXw&Azya{&5tq z!;GR)$FLONL?1bZ2X9~1I`Ri+RC?eTCWlxWf1JccmbrV{9+2?541OIz!LQWJRC2QD zkmESE!^8E*NvB~K(bbCk@J_54m=|q$)lv$ShT5W~+5q&{VBjEc<=2JaKo<77V@)Cs z>&*E%V`eVQDR@!36Uq4OAdYYv>%kdmV|>+b_L=Ak59TQ&-GwIQjg26D)Li=-THDzWH%@N#}91jIQ*MB>C?$`mZW-F_Z$wi*b~z6wj`c z??MZGK(EoxC&;!qmJukzu%WWhBO>U&-!Wz_UaY4fC*h_i>9CX7rQl@qBzY@zS}9H| za3Ad)79vAv=qWOh1$4$K@-YsQVoxIlT{QbN=@il$gr0Wh+BiCyLDy|@oW>%Yw4l4r zz|ybixidI_zP^#Boh5IQxmz}#MG|LK!#YnF>_FN{wO5jfV+<57W;d4b1n3F;6v0fq zAh`lCtX9&b<9GrV0^;eUKQRkGMd$qqHAm2mf0A#>K|1+7?h0((a_Kyi+K;xmfCIFf z8|gzA$-tJ2KNE`~Ol$ApnoV_VUDoOg>bgjhLc*at%k>eIT*Nl+KeX>fY~!pxy&m`J zb()r3B*{TXKljoiy7wY^E-DQDHJ*6ko$UnJ`^u~7u)j%%zzMLB;=fCeWXp!X;g}Y5 zGn%O1(S<)?RsX9W57TphlW|e2H}G`mhTOY~yTdoaWyf;*Obz*v1X6Mdr#aJT=S$eK zRMP>Ma722DZeYM6^e6*vq1W&&>^zvTXF>4eN?VwzKhdnqWG5bQxOJK2$=BA?2d|K% zq`%gCX&esCrXsqEY|fT~TZJbmc;T_7G=imwWT!K)kgmATP=19x9re6mYQEy#a*Bls zFVPLzl71C;EJF7H#~*l$bDgI1t|61Q(Y@D5DF*(`>+tF#`u%k*epb+)H;@opX~7Ld z3Qum_AWw&>=*$AZ{zk6%8sDWsH%UUs=bv&Pg$Yb)A^;=%PMIH_$AJScSacEjh)4jOEhsSiiq*LHH_Ws{VFWEqxi{F#KlrOvJ zKq9x5|N3;xi$s1@mMt7W25-3(ApeK73wGfrW=iV!`TOx5zd~fxO;!jde<^v(nIL&X zK=|@?`g#a6hRyC8C61)P`v$@=g-~s*Sa=WmtpWx*`?ZtCE9utgTkfM&} z@(Uz~k`{6b94pCW$qxKVh?5pX$X(>yYw7zD^7Ggz2Sv&W zq#bP&DJSC=&45UGXzJZh_=~@6`a#jMv*}9Xmd&!cBYiAd{*ASrjPfzowus^F-!XC;ZcDa| zmHRPpVJ!4oP4~shhfU^=`drD4VLt`o34j8Dj+OY~n_YBIOXjnVTduT}UzN#v`h2`> z!}-$1czFin^;~QD!Dg%jCQBK=9q|+0+*)W|XOQN{8s@O3x^XQ-^N6~9o?9uG_S;@kpj z?I6!*?VyhGqj9-){;DbT2!5VMj=V1v%K*B)qa2r0Pf=P&!Sb?9vGiDpQCp9%=U~Fm zb8J>DU1(Ig+)?h`k@il9=a$jw>CmVJU7Ri#%GW=px6(RQ=y3w9QyB}?S$X)MMv{F+riok#V)eLa73fi-1ooN3-yE7CDMS@@RyIv>SMQC@T zb)r3pwoi+@-ry)3G{Hq&6p9#HGg_+wjL|A+XQM4ey9Dk2u)E&CXefd<25k-6j%bze zyIw0=38(u`hDTe5)*f}&Yrqd+mZD8TyAy49wASdm-nnSaMkr*%g((IM@gEJ9qV0%w zbu1J?dlKzfv^8j_p_N+R^)5tfMq7&3iS{7ct7vP`X0(Du_@BXw(3;RHXuG2|#K9o6 zBhW5l_;`2}Z6#XUSzOfM0(s_M@BH+SxY1OiSV zK*G-f0)*eAMvOM<1cC+)I%ujVqbs^-#~!Q|TSh2(%OGEkoo` zA9M&Bg683Uw09XQf*Q*)R8SwZ1Db^PLQ~K|=Kqnwa^GO1T8ubLm)Xc0S!V2WIl9Q zzCIu8eK7)q2A~mW12hSZLSvsn*F$}km~)G<{v#J4k|oH1wnF=%9Z=&!v;^wE2wk=m zJ>Z99XlWIO1nOOfWhQk!h7ej*jh2?7g;4n;x{(d=2lZc!K%pV%AT$m=0_}zx%fgtw zNEG4s#(bBYN|!^cp*7GbGzd*Xo1sPxmLJp$jX{IZZfFeJ2Tec^L46ys9HD-wwH!SK zErtf6E1@B%9~yzyg^`FNu?-r7MxY638#D>+gnBN;vVr=b{m>EUFx0pVT?j3QdhkPW zA!r#i4y}YXZ90{1gr=ZvP)`7p9KRu%g4RI2o3Z|bNCd7%i=aVhH`I3x<^VJaowLd? zta{8=XaZUfHLgXVl0(~|EzmvCD6}6MgAPHx*I|;bhCiqm>W7v?6W3!-Km(u0`X5Fj zbpwWA4IFI6WP`?_L1^GcbU8Hn1#~eq)o?033N88~9Q)8xs2>{r66TE5ZCH+Hq9I>K zMbH?u9%_6Aa|RlR_Cme?fFXh=8?pXj?6+(?DW_JZ5zXM}_9<&3?@_bZ$AN)W^evOJg zgR%b&#uyrbZjsuJK%g;bCp7e1EL&)J1PP-OljA`Q0n`u0H|QA+&^l-vv?@9GZgmLyd>f0GSURg9dxx?*dfx2!<5evIh-;#-Ux%By`^eSpU)AV_95?u6Z4X z7h$i52BF3qm|V~#bRTqN80*`Q+5RRrCa51;3k^Vn&<1D|Gz4vhMxY(gC^Qa@L3^Qb z=pZx!J>n0eVkC?zIDQ*l28}^O(Bu)cOul{xUAhhhq2Owx$3q1n$L5+>*F=!Dq04;+?py5g+ znyhp>05#m{^fss$x&yjh1aJo$z%uA;`p)qedeMr8BjzEnC>2$$m;0x2~3aDpM zI=uzzhejk{oKEkNua~6LL(l+p6lyF*0JUf#vw|ebAx{)9GGl z9C`%W4K)I&2U-L*E<%H#(J&HCNW`G6(0*tabO4%wR{PNtP+wI#UA!4BT%S&_ga)C0 z=m4}HnuIn&Q_u+1s7AohCTJHl0!=`p&_U<`^awQEa4{TQ2}5Wj)O!gWKz-15XaE|A zHb8r!P0>9C`$rgc?_&TunM%3N3|JK>g5KXaE|7Hb9%85ojy44cc)P)_*?|aRC2D zQ~<4m4njlFBhVJ8QHLIa7D2nAWzc?TC3FZHfExH)pay6Wv>EDy?u1rDW6&V92O5JO zg6@W<>ahOfNLZi6*g%V+{m_-rB-9U0LF=H#Wmp|h4|E6A3yng3(A`i!vw_IZGL==fuXbjo`?S{so{m@=$3OWe&Y{HO0 zeNdwwTQal=8o3-p0*yi|p}o+6%!f8Wv4f?Xp`Oj~3-w-yz^;Y;by)wkNTdLop~m$X zGpH9DgEm2Xpb_XkXcU@+#-Jn6I5h7%^c>U+?T3~_y<4#Ep#f-6a%d|w35`LcTd^9T z!JDpvBMELomt7A>&{C-P%jha->MIyyXv59ua;WcCbTKp@!q{zrLufTLvK4w-WzCU^qA02d!QOfjk^ zl}n=>!zef=ehfcnB0{4AuLq8uOqW89swshcCf=K0eMer~ggbNZato{7wefEAO9xTI z^MePT6ED7C&YE}dl8Nf2^1A+Rv+AIMGnmm1AMN7cUUU88B$BE3PNuP|Vxp=rFJ_o? zBr^?Tj;MOdoH_Pwu_$4R@M%_=s?dsEUM{tnSE7W~Pag`2RIe=@g(LoU>fPYvVDX&*A&7O+t;IcV~bEoukL zJAN|VD8Ut~#h0+f%|JcKuS0&PiZ;0Zp1gY}Y`7!0&Asj}*PT|4Ft^~Ql2=O zZpi8?*(vMp%DL0r`rLuj^=5Td)x>L1%_O_-NwqQpRyb*c3}aH2tO*Y6DcvqB89kXU zMuqZ_J=Fyk&0tMn39t^~{t5HoJIuD6 zt6qLd_K5V>3Y$LIz=3_p>Cyp~_)xt1XLEVUKBUV(I+-qFz89JVs}zf$Hs`yoTv^-3 zr_B|s%8?v~r9Bs6CB4^xjez-(md7^y+XChh_dRXiw7L(;zK>6)rKvom9s=tH(<@aL zO@ZzCSgievx!PSi!7z%&m;YjZrlbMM`mvMgAz2m&Ha?>ntV}%m7xS7`14uUGrdnn| z!(c67x;b(&jY%e|`pwI7Yf)?eDRFzhxz^o^bd&gVzj?)~Lv}EDrzC5^A>&Me?J)43 z!6sO5P%9tJ6C0l~=dUV5vN;EDmY6MzRDy*vm@ETM%1!0A zXU+M!^+@)Z;@)S?CHXB#ce?PdNEGI{ritXUX2Gm3uq2qCfEDnR06XFmx%<&cV@Sj6 zesg|_cM=wcg?Hqv)e9{Ls~5M)?0O`dGO|mN-3Znoezo6RRMLiIE3$RiWytOXYY|8H zW4jtavP+Z!Fnz6`2lnJtQw?8GCX;azXdF1i6sZjd8;Bw7r4jc zlr^@2jiHR5DzZ!`m?e%5AohJo7G)HX*-7a}+$XcG$(VB)*(;G<3|1^YcfedxQiEg- zvbA&Bv@Ku(ao+)RX-O-RMY-A89bjH@7}-^QNLFWL%Wx0L(qOu?q^7`X!Ssalf>}6+ zVRb%-$yJ7Aleqag^E2*kNS2ESB;AQ5zS8MA^l*=DaPm2fMH0!e3FEHhP>q0%3S`gE zm!9XGfm5>B`aFE#`<;xP;ycfqOLH5M?9UUwe%@SI(uQQCre{c|;mO|1H=e%HEm0L3vlWmIl;S1)s-Tg@K6w_Zs?PEy#MAeIEQTa3k z;=w&9acsXiO+;TbOLLpR`aI&17tQOco9_V92}dp$sMm!h`kR zC_Z}#-BE#Ldxo28WY>bViCu@x^(Adc?wN}B`1BZnc7kC94w+Xh97ED58V|yYm!9de zQoM^s+NcuuK4Z>smxJYr+g>skxwjzMB<@3UmAr4?no(MYEAQdAfa!@YE9?S`ieoQf z7d2*J-b^2_P!=fyD+bFP(K4_iar4XO()>CkYmmK1Y#lJCi(kKN&dT2j)(_Sy3X@=O zy^I(WU@L|D74vIV@&SM~b9~2=wbX)n!1UNk76eE^k(M}eyKAw%l`kAnLNC5waY0kbk#FIX3t%$JAk z_d&2uG51w-c6b!Y5oF78mWR}WS&G$2P&0l4DFrXX!-z~S-ByAJ!M)NRhhzb;Mle0h zk~M%egH=c)9AIIi8E|(tG$Fxf*Z!MtMoYv#0YHIl{1_GZLY&mx(u5lqG)_kDTDHbuZ{ z!E`&N>o%}@uwH4jO?AGs?E<&(#6~Xy$r7`Ti;XcDmrG+D(!l@>=fKcs6ZM}oJ_7Cs z_mkU!V0aqAdPUAr>_J;pR8Yu)7P%pg8shP9lRy z4*0~pVe_oH9xoQdS>q1M;Gh(&0xYghT#;eZlOF)v1J)`Q3}bit#jrWgy%WqMo*Blq zz#b%1<>MVAN3tKx5Yyi@*SM_(vf&%wG_T1GB6;K-asQj8N?7yBX;g@#sAcHv z2U%=Bg8Aux*Yvr4OXc>{xxO(gS!Vw?8Yhc8n=A>)G4k#X8taB0Li}V9-8%@d0mdX ze1#0|w)f$$8A*ivzIjvb5R&`8E|!nrI;H?qrL=i`e#(LOg3S?M95I(Jt3@(}Y`L=V zt~l%Ffi!Joe!rR{eIusF-450!UPAF%y+|IxqYb@HNH>FEBe#ipAK=_FiZtfv2j=Yj z;#KG{JpJ&A1+SVjt19ra7%%1emxt6^up+QLn=X>F8` zn4~XVPVP0G^c9!BZX7>TB*431o5|%KH3(iU<{ro8k7qTy=NmZjhy};ZS>kKQ&FQ%{ zV58p@KRj+OTpU7r?3+9tv(GNZ4G?)lWeZ$IkzXJV95=6br;yz8&^agYNsAJX50m`< z@sYqwqZI!&iZ731?bIXLAnqB(RE;7D2czay;bA2EI>)z04+@QejezOqO6EBe1L0t$ zV8dXtJLDnlD#!|K!fppkI?4vY4t1XTLRKYBfP)UhRj3L_usGPh3|5T*Jq8zLpEaRMS)PVJ7_=~}A3s|D-l=#WV<~{fp5A@Xo;^Hy$7IzcU z+r-0T=Kpn%AlWR=J8Ay2d&fEQit+K2*gA%hEElUzp&d1A<--5hQ|8xl6G(397C$^? z-jW}L|B7?vDd-z%^M>3GBnKW8-%Oj=h6&7-gy|Q zKBQX2~e_7`o@K6E+k)tvs^MM5)A0Hgas=?~PN;BG854P<|JU^BO zIDGim2!_8lb-C88jUl<`058+H?Z`gv0UvO1IWGO+M-GS?mTQT74C$b#vRw1s-b!qM z;)_V;RwLQ-y!gK5TALd|`p`k~N6WRaq!a177sh9c7vA=O1w@Y9H9tQoO_AL!&k57T zg>KgrcfkdSS8R4;T2>&5`RsOGZfKJCWf)1|Xkq_hc{`hpemvJPxi`=Qgl7Sn@q_ ze4^`18|JJ>@FUq513oYVtP3I!>AxDRJ;P4(E#Ogc-z3+xtD9&d&E+AhZ*>&2Ljr4q zt8&{)*~y3Sd%)y$lZO}odcg)q#KZ#Eyzns6BgoeyCjE?o4S{9W=RrGf}IqZUpg-<^kk`9{yi$B083uFyABx?n00?Q1h;}cjMY=^_H_Y>G4Sj%a< zu&U%p7F5jGfXm&}hKdz^0xJV+bJ$gW0tiTtP3o2_VlOw6@I6}Jtn@>a43q4?RYGgXx2NrU$Bv_+^jeu=)u)Iq! zA`Uhu3>b7kAJ`TLs|KrguzIjM2WteApN7c{Is#VfU~OPEVBt)|PQYr1;T|x*gY|<| zW-vL|hQKN^n4U{x;6Cuo`Q@p>G*k@zk3&wnQov$|VFg&8gVll=U6&nhH?U%zAn*#Vz378HTc=eK3sS?`B-nE*?U%JtJHC83k(t3m`2I zSwwzdsUNJ&ChEUZNGbSmj`+$n*FtwK()jjkxOF!mSs{Kl%{4o>1T`OK zZYaPfQKW;6%fWu|9S$zN4}-UfRYk5vxt?0YJy~2`c4@ItX z-FuMq;cs$WXP1m1*<3Uptq;EPHc4NbrsFb2ekjTi--4yP3CZGz9-i*{x4wyi9$pm4}}}*gWL&iepDy#d)=+otqH5UU8k9pXAF4V)HAm`8mVl*ekA?r|B?m zR{yOLKF)wY%s*|E61!lOGb*;@t6N0!udZVJe4#qhIAm&+wHTXJ zF8GSeb7mg%C;boQb-tVVlf(kN9m_9fG1Z7=UcR&(UbLCcpCF#OLq_qctJvXURhbU- ze{iAmC&>I=RnwFcUsfCoEBMmoaH7pBHi@aPxz^_E*DCyl{=ZYq|H;K_{!X!)Pc9bt zJH-O3nCaUjo_fW#6t@^%GbieZ>&G)MO}dsY_&dIWpB%!rzf)`*i-l-6Ma|~za;9pA z>HJsB)Cf(^5YHTz6aKF-(JU$o-+)Q%w24|1Z)4h{G_vrgXR?3@4!H`&u@S5lnkGcy zFiIx)GMDv#kZG|?TJ+IkHZ6{4S`@wsi(y*0xFSDLwacs&v)n9vBCGIQu5(4-QCAsa zJ$6(T0?N<3T&<|dEcA|@RroftikUTyRjI69GRwy-4@;#~sUyg$$<8`K9^&z8HVLun8ayf zv7Ia}vwE_#w#)sG2!&IyNI3j+JdkDfT`n#i!i?X3Tt#{e=Ka|Y?G5#`!(Gy1&|$&C z?;$J6tUNXoJLPyZyQD>m7KOApp=y2~S$S7v5A>+&BbimqEbaG0RcZuTWz5oZKxOTc zS^jK?$39Y}K0sE0S?tm6?;%hk45qYbb~J^9c^p~wwA6$7W>#Tov5gi}*~+&vEecP- zB0>v>ZBHl75P>v_G6JraV`G_}SvZREYrlfycT#ngWHGX1Z)er{AslwH&Pj~Qo@r#L zQ=0VfrJjs(I-RyC{0J5azT^payWAp9TkMh+{d`%Xs8C_e@YrQKBbCTFWwS-ssYHiM4x5=vi?sq0K5KAF#uKn zrx!r@(_MbX|E~W}Z|vpJ|L^+$bT^>?UH_l%2DJSDd-=7CU3u2bv;4f^siDg0Baen$ zb-5L!)=>kw5516Q&B!^^U_+I;`rl7U6=d5@ zF_I5|5P}n% zzLw{iN!FSYkE0bjdrXuRSZfNS4(H3o_5$2J2^Cm*uEaxz`1cvsViCiu5<}mCVl?&8 z979I=c!6~ZzO6NXvUQ28e6J~fBg-^Tw!9@lN11&L9bXljds_7~auw?nV^8Akiw%%R5}q|b_9O|j;0jr7q0lKe9`-Y^S|UQRGxkwqkJESZ@Kww zqmStd8c`122xt>*@A@3pAo7I)%gNldkzvhv?zRV2cYBlcjSwV!{ORo0- zK^`E-M;h&;2*qWft>k(-{DSs9oeaW9Vof(x%VXx%dTd|LOPn5t6C5x*Smt=KI7zzX+Oe%2FXjw^{!*ot3Vf#>s_Y| z++JOJpVvEtp9M--U;zUPl5^gkJ|S%**W0i@Aw|e_K>CE#InFP)tI%hperD*g*C(VD zxt@$_LZ4yey{=luIE@uzSBW)09Qmn^P-Q6d$wqrswz=jZ8Cb@lJ5F5R{17xuc5PD2(oEb-4Hg2Zy&$IIDH?jz`)w>d0vFnoq z`D3WUzLF=m7?Q4{!pg4V4K>b*KhTbDM(9R!{V7r1rOnQ8@C4Z2*#BGk(VrmI_JLq_ z_|s`0AGGc99UH8F0W%^mD4_S8b9Dg+U$aJ4oFwm{pUY|QeMtc|M22w_c#bjEsCWgt zGYngjQ;&JiB<)RQJRr^SmUTAX zvZjKjcyXS!DhH1@=3CRxo^0s1|8!y~FEflz$LVc4P9Hh=JW8i{d>-B^H5X)8a!{N( z-#WK2>cGeBQ1SE@waqL{I&w|%_%jY&BFoSh|m$2VsY5lRpe@< z@d;~ked9v&_2l}-hUNised9xO-6ILrBl}a(4HitPr4zSRgk5ADQF2X8JI7&Umk<>iSp&TR+%~rL@FKdv;o8Ynx>}D*0BYA0cnse|@zcKAn_EYF-CGEZBC~P1463zQS zrakJvkp+Cr&;|4bh3^-tfZnfU;4&aTx!$kNr=I}1_M@*e0>4y#wEe}>US5g?nV}2l z3y@%370|0jet&~~HB7GU^|fT=SIS=BQmChWl)RBW@p*FNH@pK zuZD}s^}5m*r9N_f@u_$88ghLtc{3~CMvnEN#=k|kj2Sv0y`@Kfs{+#3J|lQ3d!pUJ z^(iLq;Cf;9k?V!IGk<|{lw^j%*{&wz8AhbYC1w}kmLtvpxwFqOhGt|h&vrX-aPhq* z*3vWY$4k?|{n6DbUQS7)%Ql-~v^!1=4~xS~um+z%wqgA3-P;2!HtZ;N*yhL5t*1ZR zsw#R017I4+ykA$W6iXDx-`-t50n@3*q;*DUx{6m%@iQ=mkb&=zQ(QT~M|8Nx%G49Xq5I}Cy(k+M`R;?tFhKh~+W$|aAFN>=sr(WX z+2Mf^WvTf)D3Gco9;vWbBkGnNVV^B@YZMP)2?od5|kgU$lOe z+#uIe{k!BLFRNBVVmzRD*hq3R={ELjM@7oAkrls69{&&JNY9;*$?@A5wx#CNaT<~h z^FO5==vyVFXBoFGr;C_lQZ7vuaY{inFi71Q2N?tcQ82lA+9 z#`VmIauVr)ZX=JMP=k{A#S(lPKZpq0Fzo6Z7075j$ z$AyWEKf(P)S393P$$O9;wBJPTk*8@Kx>-T;&|j3H?w{?7<59tY%Ft7#g$1JAz*eek zYtJ3y_MVam7@fVZ>JxaHeS2GG9{Xa(DPy2H6=gC9O%74XDm2pgQ{Fd5d3g`(d z|6oCmN8O8x2bCDJ$h-NbH>&&@XOj2Rewg-`k&m2IU^jUKx$i9rFf{{o)XI!%Tz$v` z^W8qW$h+CUdg44q?&rkU{r)C-%YIefuf+IRbDn4#B$rELIxgg7i`&+zNMbSrM>VA0lulUsgezlDBoBo9qfT=&p7$%}ri@^1bM_UhjMXk zF9Y=)P>w6xUNc^&6U7kQMt^dseGi2Uc| zL%&m8ucp27OO<4#{VP>QjS}NHxtGhVl#W(mdzJPhjv=^`Jat4FZlnD+ari8(@(8m- zvz32668}LS;I*Kh^N)}Rd0y44d@uR#|IV)F0C~hz{_)a2jw_DaeI+VG->#ciqS_H! zsCYjMRFRkNRRC+oJ~op_*&jO4uanntSI`Z+kKAY97`O<3P(()$G9$+GZ5{d3M5X~2g&`sY0k*(A<12 z^ULR}mRYYTM>R@}YVzoEwF=6}>m|3}R(*vQzBwx7Rwc%F$zu#nZ{GKi2f5y=>G5Im z-MndgUf}EhXRH?{C-=E zdav@6xL^6_1%+`dx%WM37aqSxiZH{+PA`)AI6Ay^bhUC+&-wizdC{BF3V)=kvh8p7 zlC!LhZ&vieecP-21aDS`W3mwH$Jg127x_-{) zc46`H`PSs{tuzcd40n=8c$KJkmj5Cz<@-22-FwM{%T({5PL<#e4u&dh zRI@AX%@l!EsthCIxOs3jdAXyd|3Yr?+M$9y^ANe`xB>wN^cU^l9$HKSz4BjYMmL{r z>K1=U9(qAJs$>PTN>vwoIQw+V){>_tnzp6oCu7sGoyN`D$vJB ze<1Fw#KqUW%uet;-o@+($%Brm@-Df@F{1hS)Ph_bo(q+O4*Kzt8{ASY87z+VieGH> z^CWV5QnNsWSA+Uw@dNVY@0Dk-?Zz-3klfz!_R_-hs>;$`d6eA85cIN|zC?wb;)W!9 zOCHO}gYT=?+z^dQ&C`k}lo*>8$4yH|1rZi#al9AmA`kE_ObZ?Lk^57siF(XmArIxL zAuOkT4&JWHKJT~Bw-=4yNGfB7eg<330vpJENmW4?`RBmxn{hdf;_!u-72l&_-IK~t zJGhTLc|w(}P}#<>$^DLH@+vvLP{1y*llFOKD)JaNC_Pk5701crXUejd1=i~VD-HASVW#Us`x(IpHCi? z56^JaC^4=euXfClCh|CEne89-8@DqfX{ieIp#MU1$HE*Uk8n2Y7M~#Za7)#E>T=bv zBDeCd_xx4h_Q@l7*lvIkQ(|mnfu!Stxslv@R~g!q5y@|p8(fZg^doh~id2G6}-^nTad-B8*#ShW` zdGa>Lx$*?L-`+PdhxLX!d6jChhbLpr=aR=9C*!lo1CAcQhTO-^K~Iod$^BntgJlEc zLi#Q<5+f?~J#0Y-c^%Ist>lkMZl6p3LW>YDt(s`@j`nz;s!CrQPF~F>@*=j9_RGnW zRm#4byq0`7m%ZL@wkeJqvX0K($pXHYln331za)=7t2kR~JV9&R2DsS4ucUnciBmP4oZ&#m5`{c;2R z12dxAvmFhS`}Zo(WvoE{(4E{@BCja>7x;cd z$%puyCqny!Fc#l-KY&y9&sVde(vr60ZoZ_dWD)N|1 z*?Y-vAUAl`y@mWX^04P|Mf|Fq@qK1^jw#Nq)rgTt*hBSn^oXt?sem5JB)OM?meT$s z^7v2e3d2SND=s^mW6wAG9V~DjxO{gUxPc3s_LtM%_oOoHB)?JnVNd9;ZX>s{u1hff zk21qpq$=1)N6(Un-cc3kp?QNmkWz-af>Y#44p}oBFr!>GEXD}+hUSwzj9HrC1&fyj zu3`c2GYTZhzeFD7y&3K32f6~)rKc|^enuWRs2tSM&tCHQDt=~1kNu0x=;q$8EBJuC z-*F|jz>g4f}YE zJe5?h8J=qg!pfD2deBwq4(QlmH$K1kKE5UF(djH<+(_S@pA8e_fEYWy2yi$ryVbV+vn2|BMq|Rqbv}3MFCww{&}j!!F`H1)4qh<|Aqqk z!uf3S7~g#AXD$KO!=6EhNa-;7_UwvpHIdQ^Aye~}wpAfu{&BSGHAIZ;gh zjJD?oKg+nDjW?JPVgWs7ACr4NRzpzCJzaiZv_1AuD9?IbEhYCmuBEObk9?r)TN%(- zigkwLs`7^-=L)=q>ST7pu^3(^Hyn4-T%X|xaRc(Oo<-y%?U{zNR{`pB4X!JVpO{L@h)nJ2q$s3Zpg_C}xJ27xoe5 z&sa$wIiU>8Xn&d596$#)=xpAhjWAn&jkK&M&KVUT7vzbg0@~eU; zeJR8GP;uOPVqCg_=K@u6l(+SC1@had?SLFp_EPdTLwVL6ej~Z@s^VT&{9VmY%7C!E zMpR(Nzca&6pdI~!Joratr~`e3ym!CidW8N&9(PR1Nf)XHw7jnD>!ir#y@naavnpe! z62nj4>zMlAA}?~BNp_R>|4BJ$rJo1Mqr6_xfj$kcwl`j{)Ud#NEZ|wDR`U*aUG7Dy z1t~hJp#5U<At~;zlIXQjedv{uE#OR%t zNA%rk`3jxiPlWFVxC`GkpufmKYeZ}W&etErO^I*aWt}@we{F(ijdh{1#+-alYC| uMmMS+nFZM(4%}_6nCQ7mWqto5@w@BHdBQjBvc$?CSw%TN5>-F4mi|8^)vyi# delta 70526 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 bDXX@)KJ7A7DP&t!M z*9V_U4gdSHm+fjsYCKrv$Lr6Wx~q*pYogQ-XWkvEZRZvJGfylXu3tU%P=pCe8OBzq zdT6v>aJseCzqi`Zd)#o<_8K}gGKN9prdlOvP;;Ih9)1c+*(2dc7}}{voQaBC3`o(U z+!8+Zj|XNvb{XR%NzHn_|Cx@rSi{pGH1BTJHd-$_(;?;;!y1u@fmtN7Ad+l9rtds6 zGG-+(e_@TWC}b%*fHHnVabAKJ%axPbehZIyvzpOvvNy_yfqCKeIKzaA8 zHg3&ELo{gM?>(TYzU(uiLvQ!nP``MfHmA{!In?fOb5XmlTCPo`{NxyhL!Qn5I z1Ph^7Maz2#LHbWZ4H`8_%NwKGHvS(pdmdJ8YeB;&a{fm`tu+Ylt>X#(dJv(Db^F;- z5htp=%-qlVdIjvn9Z{w4J{uL&3*9_el}`a$31|f>vK{)lv(r)dk2%*3Q_Cyo%u3K@ z{hf1TE&jt$Fs{MhhoC|eLS6{|NMIr9j4d*-U*wb^z*CQ-NsD= zU#wP8C|7&g>P1!r1mYGjUqGM~tPrM}x3Dy^$_Qk>4nx|FUdtlPYMFtJ5l`=!M zt>BPt`2rFz8W1X`hYxjdg{>6JMJ&8$R$)KJ~@GOwq1~_0?DI$v6dFxQmK|$kwC<d>;L(mUbBk5)>(|`@;ypPO(#-Q zcL60QuCG26RB~;6un$%P7)H32Zw?E1p@y8=pijH@C#IHy>jUU@ef4!SeNx|k{T`aD zhu7%zV|{gvnReB;*9_-^oBTabdH#a_{LNT;MPL2*NV-q2{`)Q3-$%7YUw>mbDwpaT zixnz}X6nmsj>PO-{dbgp{pOVTul^8on+LrlT+~<8-Unr>YkPDl z``ycUY;iLQ;}Pvw^yiyLJfOMN(+Y#Y1dLto*GKjIx`DhXsOyVC9IP7{z7~|&C&T1X zu21!3?_!#*Z}OVyd-@mN;Z$7~LHA`An-KL)vABn7l}%OKv#<_gp_Ipg%9lt3?+Miu z)KyQjFiNc!KzU(RPvu+0!NnS;Rid!^7n?+B=SEb7FNuOGrMYSwQnroK`O1T@|KT+| zLdi50C9$IgndZiB_Y_W3LeBwiA=8op&&PFV(D7L9^SjqP0)KPQd(AHa771L4nw#?i z`ZzMlGM1boMqjc(7ukMvtD)_;U~zWUHi{@8Q&iy zVGtDO4?Ohug61G#{JI)!_%_d=uQ~5!|MmOM`4!#9^E%db2)I?Zks5nmb1i8uDRE04 zO90=AYnnKaoo_<>xBCcy_W-bebmw-<)uufS=A!^#FFWP35l!j9L)5$9|oYTw$9-X3R}edx>Qn@^b`f_QZ5q1}4inp0dP~|Veb=uzk(5}q z5~To-540Xop9P0im83>ZX{zP3=UURGZImbt_dKGM2q;1b!|oa z(EqSWt!P3z1EUvh*6m#MuNPkGIfcg$uDJ@C5bC?Ox6qQ=rdG5YUB-THMQ@9*N(Si9 z-*ET@(ofK3Ii}xx(SFI&P4p$&n{77H)X-1Bd<$w>X3D0~tja{KbQJ3z0X`>KK?Hsr z^ELKN1cIWDEsvlR;T#%C)sFBhW|wl6uS;&}Q%?(RT-PF7IEKpo&;5QoD~Uw#WwMG$ z>WH}xUHLAbuR8Rs*UYcI?3pO~Qrtm5)JH(^K;q~vEGC)`On(weiU~H#H5u2@*ka>N zb?rx`sm4ip@N&Z~Wku06y0<9-2Z^z+bTH-Z0Q5NA)><>#cM==zy2`2VG))b+_<;tqT7Y1f-O)5^n7dMRIt(wi0M%}M=ULeu0#3raT#Xf{z07+jKMjp_ zHOJwjdt3``Gicp=+Gw8u$7yQVb1^i5wq?s>VCNNVe+<2!sw_E{4vcsTN*Cj_l=IES zNoz0mOf2md+6f}~p(rblg*NV3nnlO6tFg2bO=QVtnnZ`PTr(X=gM8l{-5}A9tgcD5 z*6`_ubG!YFF?Yndbl^FTpA2jQ9*OPb$y)DJ)ZM;BB`vke<*JRJ8hnI4|C7!huI-U@ z8$p-anx-o;r`g@DX&)u_SGK4%ji)!*`qs2pL^gLz2-#YkM{!OZ<*Hy80H)uwc5xWT z*KBYc?H0ES%KGk>j8k%cfr7=A{7^Z{wVk~ZhcJAPUFF2{Sxh_~P77H1}3u{X|h3$g1V7ZJVtbbej z_^m9kHRP)Rs{DD~i)_K%7VHajqE1%bmOeyt*oY+Rh{%Q|9B>wH2SyV_Pj`k>j2k*coOcPBc9I0$} zU295e{%WP9-zd8`8E&N6Y-$R9jZR{(9?9Md$dc;nQCK;ttDE*mv(k1nG;RkVJf1wLL+zKI z;CJ_W@>nWm2iwuqxS0^629qrHhuj={U8`P2n4)=1yuiZSBc63O7)@R}M65yx@JfSY zv(d{_F@L4IQ)6($)J_|X`K5I|!NFNKexiSQ2xHF)b+%@`w+k)>R zoTFUHtV;*lEBq^n5ujMt1~#n&9j`=HvL8Cowp~)e={ipn9O`ot&gsLGJf7oRG+I5B zASKz6qnRwZBTb4p0nmzhG{+Efl;wA%1H&ElLgHKxv(+6jnT=uxJ0c^Ou{PGXq`XVIMmk*s-n{MHk6gmbD{Z947O+TBXy-#$I*HE+ZEbW&Pr5X;Y?4hlqLi!TEw@<*z!)aml9pU4t1ihnMj1z17qQ5$B>jUluheQt-%(v zmc+JoM&+}g)pn*!OqM9^+%FAeSlqhMekh={AK0-j)RO4$5PmqqGr%69&HJOs){Vt< zrPIT^LW<$>@oZUFI?JR+YYV}YClbOWVhevFIf^H<#Zrl>#M&H67?JmZ6immTXdz-ASwZlI*sC$lG=nhj6v*u>qZ^Obr zlMTL&_Mq+A?Az#+U{7o9b$0GH+B?`Cr_E>WdLYOqL4hL4{%$s@2OZcl297j9@h91i z9;mE#GaPHC(xVKEmYJ?$aanYN$rG=2_LH8=Udh6Q{xjQ@Mej0s60~qXWC{z*rq+)3 zc&+9{gTgI&%+`3b54TVw4}`EvnskD_-;KtyZ+g?Xu;Mm8Si}i-u{XUfF8BnW3}Rfr|AZl2 z_u|fUjH?J<{SV8@p&b%ia6#9+S<9j3YB{UC2YXnqdb3$o4hjHg4owdA2tmKF?KyNx zsG6h|fW>asr4Jn*^90C?p=%M2eYmcCe?5u4(g(wPk8SINFv(?Y`qBw4JQmG65bGVf z0^gV3)xzEYxrd$Ui==*+#q^`yVy?k@cJO4Ey;(T0^4Z`Ld$1qMj=^kYKe+E0+u09G z!aNq&pC&1>KeIml>3D}bS-UoVPze{oMO7TfEm){C9_%ptmCM=BiP;b5$~fQR$!4)= zc?I)qoUT8t(GTZkjc5aA${wKO%QXM1owL(dfbttBEb(^QI%f`~ktW9ag1a^N4vE?J zygRq=!VTmlxCLoA(s|rhJ#FP0=dh`_V}*PNp5lr9DO-IzHMi-BuQQbPC`tIqQnafX zWb+n14t>v#+)gKiTJWd{`p;##188PwafA>t( zny7>wXU|*do%A-g-%7jXya6{Nt|24Jb^e$*cuD4Nz|s~A?$wBpmC(g<)0<^PN($h! zSod7otA8^-$Q#(SVD<9g*_0PCuo?3j)czOP8)~QG+U2aLjKFTokHDm7BLXvQ_i{%#CGs3(*|OqaIq2&bg}&dVX~X7nm1pvxIu`w zZEVaS1m-mM${^_YINLl3<}6?r24S5u{lsj8>21xpy|~NhPwdsfn1+_H&4a=ABes7q zjQ$gAcL$oztmqCbR2SIFJ0R;Bw(}0!tINAE6G5&O_q65|UulX(Kh{@^N5Gt7!ye^& z?5N=WHcK7?*{`rML%@7Edu9mjk&`Epv%tvmr#E}+Jc@-c+SLN%S1)?A)?m^+CBntV zUHc^9T-7P80?d+kZ38UY9MW6e(JjlUwO3}}&esuHxGv9Ux z+dhI$PM-dQ&y*SVCe{-5vtY=Las3573{zibgYTvb6-8m+-A#9QHUVYn$sd%8_8kp# zn$fCcRPTH9yRfN7D_8y94`rG`%m>)84lNV%;81li1LE>84P7 zCm->A4l*<6Xd22A@1xyKmi9jQR50O#&1GZmqxXcR!CcqIhm@q0ZNCp&G1`Uw`~Wq_ z{08tm9O(0doX?-I`l{gfS=fVg4#d3hAWh@tBJ!&o`BgsNilcd+U!Km|nvL^q1KAf3 zVn6%tVJuE~;?Gj!9sO4dFN5O|!LhEvEc{>8oIW3DH&%T3)hYcdxbcI2&Q0y2RnApy z$!x^GXr|+zYxY~Pu0qv+E}vO#0- ztj&9GzU?}UV9>GCIwd5A9VG6OOTaO%WUayk0p#}9oWuY8YdoQ;gX z)4DyimT%6YT}Rk~hp=IIjKw`n`}QA#o?^X=bxlD}JGgK&<@#}a%#Y)DI6&eYJwb^X zR;E3Svb8T;|1c(*OYGRg^dZH3g!LRlchD?WJ%$cI4ch$?Ivus)`bUs&AF}^<`voggfcvn#;`VHsrk-p(1AbWwhU}k8!8H^ z^UL^dSmAwi;a1@1e`cw3ErRcDd>7+QbVYp6o*zpyXdWvW3st+ab7QeRPGvE6+NtGD znC>PfMJ)7NBM!5>?X+jyyI{KNCz?|ZHy2@rrx%;{;wC-7R@$k#|BZuK#qK0q{bkfa z_Hcvz4?(^YdRo#*mOouTR&9q@X0!eUSjpc4MRB$8*IYIYAi9SwFTj>WWd{prrxdk%blrB)^{CXj7x<#@V< zZe{rsu$muZQ+acoy*vS4*4U;AC>cIx)f2#IFN=5-JK7~+M2>p1?v&atWVw&hsC3Ss z{OZl_lcz?$CDnZ%F!xUa_J)MbX3sqe=UieXy!n6~c@#AOM*J8?{3C1k7^>y5=w^=~ zS&5V{3yB$ggs-wmkI|%<<3Rlc?R`%BOn6}gTlpAvyojlZG$EorDAcHij`y))6Jhm! zY}!O>c2vTP{h)X;^4x)I_jYd?%ul7`{erpj*&^F6 zNP1z>pqdx{@@{KHTijFxzNNdSRI9eFprxa%O?}=9ImB8%PGjMjc8}AMF`q!L9WlZ! z_r3JYN9^Ut5y@|`{g1=)zq50X`$8sp5{+szv)s%6M%Kh|{kM3t<8#%>)w16LmJgB< zd}zgcyjiDU^c@4#$VBewo5JaTpgT`G1vD0{+dOx#N!&Ef@{~{o4>$W}_$h4jB$^QO zC{R|nKs^T(x8NVFViMwGBy0BsqU8`9_5>Xn_YsoENZy~&NlamhSj;y+Q9t1egIcAL zFaeK?E3#c@)lbkU$6H{)=Rcm^ZZP2fc>@YIvaw%x#ZqKD16ppE6lhn8lhpr7Pr7QA zf2+1*p#KLNhj5&|n^qZ9WGnw?B0=K;O>~j%tN$NOaThJ+Iv)S|Cz^nIZyRXbc|FwE z@f3LD(Hap|e4CbX1&5v>=1U>PhQq3mxS8}Sr1XOH|A5h{01y`cuq zWKdwCsK=07KwLDU+I}cECn>n?(>P%qjd>#DdA9s1Y=kmc%~KH7mZcZ+li_dK-G%gD zxD!)SNcZxRo8MwVUOSQ3cqBkd=XL$J^KJR;m1)%3h|1nf=m@HmgY#|eSpTOfqo~iH zrb)58z7yM!3R$9l4hvjSSlef4e3!k-sugR1SDTWp1s9*l*^S4dd2JYiAz6Y+D|<>v zEgu$#jb{1N>3DjI9e4(NqHK0xIuh$BtDa7KwEGI?K)jaADo5x}nhUK+4{h8}^KEO` zuo-j}-NDYyz*ODm7Oh&lZf9}N(A1bV02fPTDx@+h%YOzl@OSLdXK=zXM#%qwodG@W z(m}qNS^iBEyXXFs61b1)b03sYPR_R_V(`X&tXJ67e`B7X$Cm$_&Zjuon~BNzel~a} z;`Igg9GbY32N21BW3rMPV${wyioezDz)bk?0IQt|TfD|%W&#F#l)b#Pce z2M&9f<<5oOZ?cNHG$HI9dT~jqEaW+Am66W8-0;ZwQ+st+a6{G&(R<04=m?- znx)uVu&17Y8W{_<6h$gig0fo60E~B*`_hzf7tlN|Nk!hZt z-qA(PMd4D)DvEGM6!Kp|dXmM=!*2H=n>r6c^Ceq8k9G*#3byGv5gwD`=d#uFQGrcj7v_V>BP?zK{5gh=SU_jSdMy0pPf8_l+*LS5c?tH%Vd_HP(d2UrsiS!w0>FcNXL+96S<{zk zJ0@$;-4?m`O52)$%eDCRRSk6W)LCj;ny#({yTK2^f6kC&7$Saup z^4Zi^=-M!=l=};ddzB`{eGVDCxHtkv{4uwGMXieGsvKk^UZown3<0%&awfpIeACO5 z^EB7oFFCKU)vrS84fe&Ww6mi2VV7T}xn0Zw9L}Sc!GULhKZm`n;5B3d^5Zqk59zG- zHEQm1^2=LQ*y6`vZUBQNEZ2#ozyk_SXi~|RJL!?H zxOhN?`O%JpU>-cUovzVd9qzza9^@^grSedo&WV~Ae-&jJLa7`kvE^BMFo#A9u(_K;O=6_i}7`-@y>ou>^*}wmqI~orl*C`P6j< z@QqNO54V7YufXhr`%f!yT>mvN_AeWR4hayN;3xDn6!bR|@^J->WMKza(0+f*Dv#D><4hbE&QaE)WhjVi*H=Fk4F|nFQ zzo!TL;4K={<`WPcg`rO>QRnSI;8!}gUpKFc=abl0R`C|K+Qb4}ZuRX&W$mC6t@6hr z+j>YX>SWzM3lYs*?u+Qp;lgd+tvs?z_8=55c(d1I6sLlQ;#o>ko(CsRf1Bc#EnEFI zHHW+b`WvkK3OrYE^ljRjc4XCW(+-o`Lb2jr-mD$idVN~sm$%kz?O8-EUu&?Bc-@S* zRybQ;bL4q)G!3*UQJuU*Mcu&FE^nwCvb8-M=GkscZ&h+1ROf9WD_TjT;wHkj?tZ)i zjPk7lMg^G8Hm$@VN(U(ENg&&gfIGIFE2+id>8DM=H<7@tUD4pz6T@sIn?Kvd%PoGy zceKdX9&~(6QCKPdCoMK1^L{9@C4e@722YKK`}moO%HO7#XNv?;eX860G4>ytt;BrE zzWonv+r0$CvaIoKodPT(xDcF*jXQ`_F<6_=0}rw`t8hl~F7Kw``6Vb>&)eNsi^PCE zI8P2xs(gIFHu6WX;|}^eLEUcutIK)=C+M2BSHl90tx5ob#AZE6#!cF$4SV%Gb zH|{IVEvEhXUI^|i^|{m1Qkc{oq>Y<1-{wH?73^3s9jV0cWf`k689&3utVU{Pv*%W$ z*vH+l)mUAzmspLO;y6oRLx;z8gG;R_TKI!T{6LW36r;!hl%H$R=TEk64PA^N&0UKk z!MoeRlRWB^)`e zr`;kx1v$Y}Hq?`w!z;K!EPp+n-|iEDFJlpNE7yBn#_Yp0oj>8R9&rASAitrvgVn6Z zLvO2h^M!=p`-pLkW9jeEk?o$q=me;>>lCi9J~R-IX%8wnk4zQolG*hPTlo&=_Efg* z9UQAZ#?s%V3E?9pd;S2)1eX6U9nf-+ANvqD`_H@dvGAt#{Nr3Ii`W1y68y+cu-px} zQvm8mHqiL+4}s#oO~$WKj$|)vz{0YDZQg+O{{}m=0d>R$)}{oitYz6HsEu&p(wOEvy=Aut2rrk_=58gY;vfrcK+Kk*K#9<%5RY7u5JJn8ICK_>4?Hg9~9yVU< z+0OUy$kG&6uo2NUgB5M0QA*G*_Qpm!j^4p)0Bv_Sw7z^#9v+MzSc3O8&4{T(abRu0 z_>1kh$+`(P=*lK-0-q<@%bRd?`Yt=O2~*8VDC@hkhVAi(Ebe{UDg4xD+?nDo*#j*9 zeN>hXP@x!fsd%D@-w>+A%!^{|ecY?s1qJvUufol7uBY%_^lt4cX9wTMw(c_)_W|~N zX{`DKsDbTQDFn9yO9Y&Ydp?cjm%;;fpI~uk?*MzQl=cW8?c>HltzGxBou%M5kcDif z7L$s5=9XZM5WM6uP_<2D*_-M3@EsWX6>zoUcHVbv{bmHpt2?lPoucC==o0? z<+Ivtbcm9)lN~R^nZr0PI<6^Zi&Ub$%G!L4Cn9D+0e;3nV3L0YwY_Z#SjG4rxQ%g* zU^_p;<3f|6gW-kFjF!=R!h6)~&>GL}6qF$s27JnzZO7B1e=w~Kk%9X-WhfhKS#23c zn=XV!1qkclC+sZC{}{rW_zC-pE&CY4zC|xF;MT4oK4F;1!?vR;eu=f)P6vd4g+4rd zc}ARI)3zg`n}D;hTa;@)TMtmn3V@8~8d~mR$G2mJNo4suXjI78kg%F<{+lMTg*#|W zD&qN;nVZM9y@|GG9PX)NOk#Y!igwKgjhF+YU5D7D zPw`0KIglFJabMZ?PpL^US#h(pxC!n-Hq}xRRa+f9_8A@8($iGquX|v8<;m_e)@>K< z*+fmieb1(B@-7aTHlU4M;3@%n4EZNs%y!1>7m-0p-+op{3{(9IYqT+51f<8dZyd$wvfeT=tF_s~0= zAe6?tgW2TIac_OW9@>%LoI}I$Ki1=02>j^JX#_`1{2Z0smu&mzG|gd2^=ZSCD!Hni zmORwn+m8Phg)U59Y#~Y9oLCxY@Vs07Xp8->?SAy`6d%n%p8z7h z_^$1K*Ce@tk=5_o?sx4@E?c#iJ{}ZYO2~k+=KJUw6V3vwkK%=lH&F2*e_v(GkD->j z%EFJ+k&c{gz9JCMe3B{)F9xlA8t4X_DPl;CY_&rftQ|32~rO~&okX(#B! zh&t$K#|w_){qnsV{$}S+;2vh#hXCVVxbfOK-sSk2P7ZIe)tF(-cv$(BpXt|;ivZ%4 zh!sCk!xxBVTiFx8;Qg1GZ2d1Ny1!;;e!&yBZ*1Wm#RD_%u}4p0amZ$yPSV6^r@OzS z55fB}R8v&-kbR!oFQ5H<5(jkevvd#bmfs8l?7012jM~787;)g;N)k*)I$}vp5PJJy z;GirO*W4-Jlx?2TFQ2xqMs)6fWRDV;hR*CbfB84je7@g(zE5KVWnBD;xx7+ zmsr>t`cnAPQXEU*?iv5-lu2ym89GIQKb!wbSJMBol3x*ld)WS8X}7RGAoO&w*7Rod zH$eB6CI5zM8!zA8dlm!zfz3XPgXYK&*^aaHMY^sm_Z(t4yAFf%^uSi51Aa9G_uij} z!bSXc5+3|Kh2I~ThgTxE1BO~9gPg>ZuMm*KYJbNf{49$*4>b!}?s>Y4USaeP+?hCB zR`ds#I-YI2fRi%QhwO)o^v?Lr@B3D2tYR@P7q0nA$FF;Q$ol+AQ^LAJcOL46OuLBv z+Ie>5BKB)@{dzs)*Q<`@{7La6E+2T=5?1ghogC8z{e3*~hC46$`TNOkR`Dn86kLQ6 zGW-W0(Rll$T@?(|i48^*a~WMkS|C_PVYkrR{yH1nBzJ5|QTUM_1ytOx%H)yDV4f7W@(=&Sf){ zO?aFog(@E@E#G6usnT8v-B^Za8er=|_O6gbZnHI`JO6wAK zsD*MzLX#34px}XJz6m7ZYUEycG#4IBcBho}2v?RMt7%Kf;Lv@=2}<`3JAjZ_AQ>+8KN z0s<_-yyNCbWff+P{3vB4&W%?`DczD!yd%~jD%K(Ac!JfJzmHFdwg*29f~RYulpc!t zUDiHYd6J%F%c7Mel%(6Dl~lapb}U*MnI5}AyynZ-9!yzIzE&Y7@z8fV4r8!O#%?(e zZyw`u)EH#|W&kZl`3fulgRx5Ah#}Ar572EUrd2EW&j@v3>thwGLNeHIvC0p;-DOtr z|Cwd5Rjozqh*L5!d{>+@go7`~L9d6|xOn9!3&}7RN~cc&f~U@lDHKq&HTbQYpV^oM zZnKQC`3cIi3Z1~}+9(b@X8e3xWe(?cqpfm#3*G@MrGj6IIK>7hDZ3(5F&K)U@LK>K zC%i~X>~hzv@2KHV^oEoQiWl-q(WP zqv(jAPVmRMB~HZw)(F)$!yjjj5&f*e+Pq14uwv>hNIdbtnYtCNGE=oZ2Ap3}0LKd3 zNF_?gThb&m96m0@%j5qSJs#=w@rP+ro>y&mgZ`~#r3A014Ng&(CW3uEYfl4d-U9w^ z-PIIjIJL6eRAnwV^R86o_ggyH5p>d+<7TS1`Rt1{gy=37)6UnSOmC-TQ`{`w-(KmA zBbL9~E1hoX??#{*&Uiz$onieuC& zNILp`$cCjOK$ozH3?&QQ?#NJ5+xU-9ZRoaUt!j%}%U;Y-o~C%~IRnY@Zx+`H>H8bY z?xajm@UX{QosH~h_^p=R_;rr_4cY7?~(k9gSEU5Ra*fY(M3t@*FaHPPr>7I zt7^Mv4YIZY-@w5Wtfg#IZNu66E=p%5D1&|91(w^v!n#7EPOM#5WxNvkAGWBga=(9^ z*OXo8s$5&-$in|McLr`W)zy0M!nGBx9j%IX2HJA8Z=>~~E#+`;t=EIrjh2`QDI|5? zXtbl0I`2^4;#bS?xHqXnyAQ23xXybPt%^1@0&+s?yjf^Rp&cE8|5U??ix~i%Zc^vn zi#9W~&O0a)9ne02b{*O&XiZ^t-X&7TQv@L(v|NsPk?` zdm8ONv{h(Npj9L5yrx)WJ`V3kp*@Xu0$OKGo!5=F6zyTOd(oanYmcq-_BO*JW+;T# z(i;36xG2TN3AF3tpa|O2Xru9e{#2puh?d0HdHbQYqP3$fM$7+uw<~Ci(Pk!KL}&}q zmZMeCo<(a)#DMUBK#fK_2yJ1TI&UG`aa@jrIYwcC;$mLbUjGCbAc;o8v7|9IXXya02+D%|h!$I}~j>+9_xcqgByXpClo?SOD!Pv|G^@qTPp9MSB9R z6Kxe*587z_4|1L~1RL74c6HuaXbaJIS6m22ek2yRYg3yu-xC)!;Otg2Q^`M=BwhHY+wCg%SQM9Bp0me|Jb*rqkQSVs*KG{|6sMg^JJ zAW;MJ{hWI~Cz-jcfBVng*GoTV-p_NM^ZVR8_g*H@D6|b)z7j2h`n~9h`QWS0rn{iQ z)fh6Udkuza0Rln;&`3Fk1R90*LSxWDXdF5UExG`!11GmqXazLXav@rVgcnbDTA;oP zWPtjiqtGzaQ;LiiV+f#rXb>8JHbKMCR{8mov+3i|Ak;Vy99jfTLVeKarRaL7cP*Bw zv|ombEW-MaB2lpjlLT4=H7-X>puTnJGHAIEfuW_97?Q>4^7U9|Qa4}>p+!|_DKri> z$`JSp#Dn@aqN30sv>6(Mwn00fF=#imyDWqnU3oS=08j-TfkvQi{OPYGvc0m2m9%umC4-G<7&@j}AKdBah7Kf0CBH@L`p;gc% zbPLpd6_yRu3k^eup{-EkYIGsA92$oPp?%O8^fusDyZ9!NiIJ_N1&eT z(7yCu z)_>`0IDQ$E1sa8RLBqkb>0xMm2WIaYQ~aL3H1Qn_$%UB2-$guV7+ME4Le1zhBs!pd(Aw{z<`Z)o{j*qER`=qS_= zb^B0ZXel%Zt$>E1HP8q&0F6Q$pfPAOG!AWpCZI822!Y>0mq|ycrxFDpN6VnmchRNL z7<2#{hmJ@)v|v4!)k*k6{m^n~09p+#9l|n%dfr0?HX#2$FxjB~Q)kolRq#8F20^1E z$QQZ-;6rpB)H8~fY{XnRgPKD9X#|3LjdXhJl_(h642|TZ(;ZN!iJvWlx}nZ$r~`JW z2igYpLSs-Lv>WP&_CdqYGL))RoVpISchK@iz zW$AQj4g8j%0Z{k(@Q22sT~e2Z&=p7|*QC>l%^0ilblSKELjWy;hA%)(p-s>&&~E59 zXy8H=2n|BJpiyWNT6B3j-Eb}9K--`l&=@oh?S>lb&>(08TIxr>5E2zgB%oWNz0e@E z%7>nSdMnfE9;kmqI^7QqKvU3OXx??GICKs)1@%IWDpVNS0Nn}=Lxa!=v>Dn9ZG+Zr zME>is{u_{(gM{Zw1b}*>)lfe)0Ih>IKpUXV&=|B0nuNxnp6YbE7g`D(g!-VPP(Rdt z1M)*lp!DHTF6bU;6dHqe)MEX|k>~+PK>MLdXbPHwI&VY)_*YiN zP&afL)C2WFz0g{y4_XiPLw7<0&IKePc_4-G?iLL<-!Gz#4VjX^u1acBaXfDS-C zTe0q;eyIBvaA*ZI3H3uGcVIO@19u^g{CpR>xC@CmKrhtu&!`zR^#zRat(d)ELYG6m zUq%;0V?m4^GzlGshVf72%C@4Qub_pZ`Af1mSy#|B}VS4}+p+Q9=aztlU$sGL*|w<78Lo>=s(xgsCu z9is-Hd&HB^nj5ZYLDKUNeDeo3YNog!GJle@@wLNK^PC*Iyl>22Gk3C zP~7}K=HifH;v-xur0e=AK3TD=GeUV_AN~ZpEZzru5&j`yEkdGYR{p9f$s*Y{*|e*L zdHccYDZZ-L4zqC?Mqyqc%e(Gil`z*IR6QC&z+$}QTO|XsLRKeLwYcuh-O!pN%{t}9o+P>1zW|+LSzxb9IL?9_?=5J zr$^4Di}67o64p5}J2RNOd;@ETMS6nG1Tg7dEGZ$Yz$A#PAMG)8EYVOPY{wg1v}#5406*mvB9A&U1Ak z*(#PiZ!TSa9Lb80&ZOl4%0ossa&dkD^U5@idi+-e77*Wh-n?r?7|G(%Gil2eCaEo8 zMPPc}%B<~R1*2kS!d&6%N4j2YN|=|H%$WcaTnFGH5A1Y?7pze{lrV2vz6;47+)c}@ zP!y~eOgBd^hz`lb{1?otbDb#FlNNWsU|#6LlU1WzJo&SCPfF49Pz6z>ByeT8pF` zH~MO2Zf+N{%G978h;P1RF3Mkv^oRrBSj13{W4egHWERY>1M@oZm6@UBKGO)c)+ye23H{Q6G@|yJ z^Gf=VjKNh;9uHiPgSCsBrP)0RJ(yuGg}D^0L+tJ~7nal@*$1<(b{Wh8uwL<8uesQ@ z3&~OOL9e-Vb{CR!T;t`)NtysFa*4|iV3HaIm}ao+NFLaWzGRC3;$*mdLrCSYH z4Va!BGD`rgRy=nARc}JFE+dOHx5_Y9#F8!~8#BzyU`~M5i_2a%mzEflli8Ah@t!z`=YB6EZ37D{agYXj3$%mda1hV^(5(=uU)nhR&QB3Y9+9!ieXUa;ys@!COiZoUkS z)0~kIm3;^@f@HtAv(H?dTRIg}KVST)&s;ak4KTYa#Y;+3dRAq#f{`-+|SI%-rX9_%-7soaHhPhs`|M!~wl^Z=sL^6w5A@eC$Mq6e%?TyPlOkwS7X zBTN;{PV5W=V#i@~LrD#i1=De(09YP={1*Vj2pl%AUC@D~zi7M?9+-Q;YQVfm8#Ueyzm+}&Q2t^%@{9G zX4wx`50*KiNw7Mx`G~nVzhEXN5zJkp@_;!*{OE`|JHHCdGZSCd#ZVIL*(0c9BiK%H z?1=f5$`q2dv&MHUS&DNOS`MbiRk1>;Bu*sFHMyNg`bxy2 zqvj>~BS_091o$;2S@<`PnzLPAY>pk`p`(~3K_nZ*;iKl#T=|TkVvd;dy1B@;AL&l9 z<8`x0YUx1vShMSFjyV*qz}msOC8<{z_pE-NA*^K^lAi=!v75v@ID7Ud3t`4@Wyz|6WZq%sCfxYsq*$Wiei`Ve!x#=2BMxNo+80m}_RY zB3ZC>d}hlTz87rHQZf5YbAhWD>6oZ|6Fb=`l09(M6I;5v=gLL%4VYI{AnC@#n*v~Y z$mZ67<$>wpm01E{&Sm18h`ziT>8-XrZD3n6^2oZ!z-q<0gQ$BF$vtB8pc!)2&69O| zVGyU12$H3%#Mwb}^|?Jr?^-=xXc+?ZgEfQUY$h+80&kh_{5%huzDDj*Id5T``1iNW zxvna(fOz~ZToN=O>APUOXXH>egZag&x6GBUE+jj}lDEy9a*O9q;AfLp8=i^tx)`_o<| zM?}eSbDb-NWQ(}%xOt^(?LrhUekGI5NaB2U99M~PB%8$Y6QBj?+(vQF3D7DegW~ZM z@{$3`7I9c6+mNgm`R|$+<@O<2bA{OWu6e!7d!D?2d+1&BE>|0pog)9F`A@mdMHs=W z#oZ^(ALX|pz2zF*8y2hN1ofm$uWJx&uedRV78NX()wu`BTrZMEe({r(dA=)vbe(uE zg=WZyQN5yY2s^HP9#wU{SU-d|%S(d}@uea2i!S*%3VZU9d6R2Dk|W~c_sl=!%4bK# zx94wJf2`UG^4{V#b;*_~~ zi4!x)ho=%)C-S?Y^^N`tehrtdrL<%CYHY0T00&2#b-NN$0vSLFQNoV7lMkM;N{SA;yII+vq&!164jSTWev3_n@I zGO#UH2{T3Pebc$A20#YW8Rc#hV6d1B_Bquu$s55(;hV|jE)@Z95og}VRZtI-+rEKQ zkH|S~&K5VEHfQ7-D{#gMiS4J&1?QC^T@&J2nVq(AqU^QGNm~)B8uqQ?x2MfpUF}Hj z-8W+dFISZGti&w;#rRNo;o1+@B{qG4#pA~34)Ki-FjuRQM1T*>8$wYei+?q~Il7Ul z1FQ;6H&?PAu(dYU4^{ytn=KFNmm({$2>X2%c0ya;Vz6buI{Qyqg~*3vWj042SgDQG zf_ZGL9&Anqt3m~Kg5j;Vw?8!3=XN7q{%f)NBW$q8k!}<>e}oRKS&gw4Pkdxv9cn|e zXK!}1V_@Aj)(sX1v*t9L-3PWGOwMU}$gVgJHVBq+);EkbSgenZml1_u5t#eYv*KSz z&4+S3@xl9;SainR?plU<(Q0CLh{mc4#NqF0f&gEe|>G_JeKv10LKqOLFu0Wy1gr$vOV9~_#A8c^tdWzCGCRPkGgvuT3QW!`dB_p22J`$k9u6BNWbR8b=zqq00P+J4Fa9e9!^_N0$I1)k6WM~7d8NjENA__Lywt|! zxHN;WeObKkbS!dpARQC)U5{A|KiA zd1ZXIco3}tEGmv7TYjr_eHG8RsadQL~_44Z-V29tL<`BMr_V=EG^lOWcwTA9fp&IkpyeC z%**A2-*Palz!f7^RuC&YC z?~MHZ}^@X^ZJzZ`^8hd`!@?^=K&`R_ma$ z0&BtYGMKD~EUXsX0N3lQ9v|z$y#Ej{PjYSLG_J>;|b6_bUqtgJ%@UIthX$6yBYfpyz5 z*M1C>uNCaK`R)7|76I!W_X}Blv?m){tP`w%+|gqDKZYg225f%AAH(vlz&4xVCwq6! z73X9_*>Dg3D~EGR4$!>N79X3`Fxaq-wa73w)($4?k(sv(Y|zFM zU}#q;%W(iOX>%L_lO2^AuwWyu$ZZTi)@1d3re8T&!sb^ECPz~Fh1AU63fMCS6$^sN zsgW752`p}7tzca?wim3^#^PWdHr5*gjM?BI*j^hO1#7o4_mw!~*jOo8)W#~n+H9-_ ztQ9Pj*}4E=i_NhCEMjBw6`5TbOwP47u;vT~WX);$8ci77DFF^SmwLd0ilP4r`vL21 zj`H1`EjA|K!|{VMt)qrJgDa*);trAqhKCoK&jWd*A3m5>Lli^qow#~+Nf;ED5 zXZS_H%CLHxGT0ulD41-iJfwDlwSkpeM6vx~T{5#b1116c!1Se%%rFdw`{UCbYh3c( zp?2}WG{+b7+mNirdrI5H&>{J4db-1%-vhP_ETAqju9@zb5*h}JgJt%Yd}XK$O!tHA zH~IQd4_K|N4WB&8s+WVy_n`75$01oY*eHBuS{_ojf{ob930`H)G=?)AWkF4FOyOU^ zIHqrGLvk>~EaSw$2EhDC%R^@A2J@f}WfoEYD~0rfSD50eBF6%k6W6N|v7^W_-8Bcv zX7Rlu$2qxcku07deqH2PaX}F2jsm=5A_HVx3pRuAw{aOg3O*nv&u}cv?Ll(R6mj7U z$K|eq8aW2{%)s?o1(GT8^BIndTn$Ku#nBm#H6?qI>?suh@OW zagph-5zh`d7K@=Hj#>GB+O~+oq_SOg47MHk>GUyMKfJAnBdTE+U^ohwK!)9FaE`;EySuuhM4pTA++5^`y?^{sAF+{GqX()FTCOKsJdzv zk#(IXysx7)%_dkCUf!zfZ!1l^Y5N3e-(5Lf1&NLoCR>dkL$SI|({|ZyC=NeInXj2D zE+>}l8T({U{G%>86gq$BCwY3Z{oD;*&l5vOW7UJd^CB zDON{g*6nyNYu3HtxJU$(j=Y?y;)Nt;*T@^#aZ=1=h{889yWE@AB%L}IL)J@EOkFsM z)KN#Cm0JXkINWl2kD?&v^oqhk1oHA@t`0QxPNvUp_=wc&sLVOqVTUZKVm!)Q(qq6; ztP9!kepUc!4jw~A8eey~wa?J;OrOHHWeDjbn>yx`9S1)6*MCEAIA)DGoXQIF4qDU9 zYE9Rb9XgTevs?N^>EqTuJKn@hMRy#BvD0oGI++zf`XuNxK7L0seF{&&CuxskjWHpH z2R@?uZAY0L{kK)|?;=~?HELK3blrxOakn%U(>OL%JKj+_Pr~S-(K(h=jx`|)ls;v4 zpB-|$8}lhl!N<#wV})Qo$llp4jTJO<&7$tsTo{iq1ScOqj@Klsl-<&&+U~RCxN6FK zF#2iC(@ohS2YRfK-O?w(kA>O?Gs+sof56yC2y-%!jVU>OI<)FsNK}KYv1d6&Y3wS`YK4dtN%NUi3YyMPIS&H@$Jhr zXmbG`Lsi0zpT2?2a7@8{oE`XVHus3{PjvnwCn8o&f;lN=hWP9x=W5);*$uQx2b6cS z+G|9QLWP}%MDwEDufLBrG7dThu;KyGIoU;l8w%RTecL0k>firKF z?l~P{Jrbrd3AdOuQMv_^W6Z)Mp=S!5SK_CZ3MV_SENSae{iuD{SqbU2V=~J3iiamV zXNA1HZPiA%SD;oI4=KcP&`_3gbMur6Wx!Wk&c4@9hShuU1{<@=eyXqAe6N;RL zg?&e}3!7!ttt4e~_OUQshX8(g%sHzvVylV{t+}p>?t$>%vrAdY9?*}USV|?fIJx1* z$$jLT$qkpPRW~d5&*a^?3N+CFYvjHOitCp%bSt8(t?Gp6ZWupehCsf`&_~NJb)bog zFC+g8c~Emcba;V0HdXoe(Ely+uv>9;Mnd^+r)qI+p)&9UVJs#0o~yV#MaknTa^D68 z%E*J{!BPd{C6+s$+#UffU@P5)yFbss45vBk*COKkxxUfOaHtZRT+BL zEg>%>*IS&Ayqa7;=DSJpkP)O|9t+sc3=wj@b9{$9PL8(~twZm*BjkFzw9&upGpeF` zMd~fF+TtO@IG2I+o>*_op!dXPau5A~!vfmL^~v&CT~Tt~b4SVh$QQ^sDBl>N!MG{A zrh3oyke|nb^`2WzUP`X_rXcx3a=kaTlIxR$+(1HdEMqj3FvHYbHO2{YH7jumhWc4^ zg#Iv0~0g&GlK#x5dOuY&i7TH?V*JGw8{<&hnaSlntmJvOeN}C1S^H zrzf;WS5R@~jVW50?X7vzwmfvdX|B&by5C0VZ@)ls->l-#w^uXxVRpgii^ofx^KeDK zdp53*+CQOMUWU_+8{6N>^>ALw(TQt+w*FepZ(-@=b(-I5@$2OnTF1X=!`AE!&6?kq z&GjhsO0RQ!=q0hQ z$om)iG0f`>qq%;2R1fu_tvc`1zgAu};?QrFYXA7{+0}R8QL|OeKFc4!x5M(M(vUi& zfZlb^(-~gL=I7$Yb{WV|-o`j<=^yD=Ko7-@;5qmQiWNt&595$OpN1c9!>jwu;2vNE zif#eElNMrM`$|sG}*vkEOdcukv-ZnZx+46=` zrqQWxvgq$#hH)70mdmce-xuYdDvtIqr+x{&IstkHrT+R$Ba$SJFW=zGD zKkg-3$42@ak1M{74XYs!{+Hr9j=YAouDF7~Q3iblr7wD$$@Rkd9o*y)M9K9vW|X{> zTwmPY%7XjI^$NIKH|#g~0%9Gksou9!9jZe58b|N{dB4r(`dZ0j<9g{;kn4iK&Vv2q zhLdL!H5+kDX}b8_BIk+{=gjP7^<69DRKqELwaB@6RSQ0v_(h0-?MBywmfK9jek=5s zB4;s9gE5#51NU;DP|Z+nH;g|sTax#lHGkgXL+R$RcUqO@ztQog@kzIIF&%!PBPczF zIMa+t>y2cQDp*hLGs<8Dor+@(TgPg|Kn4SUGtfHrDlx7S*OfVE-LaMCy18oHT4??T zd5V|76&%(U&0kWEweoYvGY71q^# zg4~;<+Nb+(Ke>k;Vg2+Fs&RxoI;!H}qjls>W`94Wcs2P_@Iqr&$QWch!ZfU7hK|1| zpxa$d-tcP`XoUWEl6!2^@JHlDhm@nA{=e4oe<>T z7^lEJcmZ~Ls1T?r50ks+EB`I*+dq)UUsjG==zoYjkyMVYlFQS;5DgJdSKXx^ zBxDOxCsYJop-ahwzg2Oe>5A(~u$|mJP4Nm9&iEd9NETq&y6&gU;Nvz|$_&qt z$NCh&N9#C7?$1#L=&qiQ^Qw#=a423({}tr1r*dTb@$Z*t*hGUdLv^Vh0Wa8F;%dKUH2IH0+yxZ-t9TLp&lKc`(cnSr^&tTDvU06GA>kPyZpQb z*+&0M$-{qA{<>M$kSG799CiQPt~h=^o*VrZ2D+OW49R=VF#?s-K4Jw{>j zjxQ^JFZ~}S_tC$c{4eCme^LGwim=fkp4;T zNP1pwBX8QnjUm7cf(Boy+87#?7?0>cwiX{FkJ{$YFnPFF1zyYe6L6(3E0p4j?zj3M z#xfcb>^j}mn{)<_v4?@~BJbv0*-QRS@)pjO0rCgPYyY5nNUx@S0UCVEl%ZOQF+d*S z5R@{|ImN04b+#e!kq3?|$9npIM&zu)D&J0Xa<+=EN8;be){z_B`gBF_ zB=6>3F5R#nl1Hsm%sTvgGZwIi2KT!P)RK3Rr??h$pm!yg8>Z_6xtq$=rhI$>l$G~! zcsm$lA$k0$0`25ikyrI9pr_+!#dYNvoS@ETo83Pn@BOOkBfSit(VXXVAB%aNJp6_N z+J7>h8d{)+O~%jz=n)Z2>hXTbsT z(*IGwnniL8-a&(5`^wd>3wTFmXl0-SaHy(IS?Q~{b9 z=Nvo^Q`cs=@gNV~f|W4H3|`y3zKwjC`+_du-^jy9ROFZv;}LTAVikWad-|{BzCUvd z=F~I}Yr{(_f-WFM9=%va=;IB9IdfG-jZ($8vEcROMJE++A-{!ufY&^0^%neH8d6_U z8T8mcqB*~8u^i*KsA@3mRTifvQ>4)#S$cY88}` zZ^CYfFC2`7;vpjz zQwARkKFJIb+ccizVH0iZq#Rr>^guv0(dSb&+DL!zFH~TzYvVR@^%_V>{c}~BWjhT~ zc6yP7IKJ;u1$#fE0&U^^-b3CrD7|oNf(`hiNBKLswdsX>h&;i2exouI$~WGn!QghT zM|H}46)4cJBJ05`CD+d+bVb*Z_wrJuKo)@G79EEtZZ1>fE8y0`_4As0m-07$zzh-F zR`n-xKW{mC>3^KuV>_WQSfCn^uua#iEpBBN=UnQX9J-B;Nt@%>$x{rhca~Q27B;1t z75OjngnY#hhu$d;kQ@J@xbEQzxPOBkDr9uBL<`d0a}KyioN-T$-`r8+X#su}Ed;QFh}V@zh$J-*?gM{hH!?Y2HJguuYZ2 zx8yO4Jn^3T%nK0Xe9g})9#>+lQ(Qg~ zR$Z(M*v<^YoaK59A0&@&S50YRpx=?lcv{l_&ygo5sQBgdKS}Pht~=L_-$t5=@3Ha( ztsk#eF~b`2=n+-$Uh=EKty^*U8>l(!Ff0Crj@^G!jyk{($^EBQ&I)BVqU15#GD(mJ zA5o6G=>I;sn;VoKsu^Wg#c}dzSDxL>uu2&W_fiGQ$ZsU~+NSCE$-}mt>p!(WU-&9z z4?Iuqx3*ZUTPF?g(hysqO4J)b;S$xw-V=)Nr@#C|SF-C9JTdFH4lX0_u+5Rrk$X7H ztoZWe5vIZKR0ZfkZ`0g%8hw#GMXo2|G4e3CRL$|XhOLS=F}~jO&jGhi9*LxCQdEg? z5i|I?U>nG9A#dPWj$eX|AbIepa?GRu{p3ZgP(AtMl6b_x?Fb((v!xnFtV2Sa* z%LEBj6EMtB1)q>7rz0M^M^JZl?!&Q)%{!}^Y*}s{*iW@@{ z{kJQQzX>;0WhkH_#0=3P1@xfHU#66^);&Y{?^5+L_L6%SDc;XGe<63;me(=zn6-6c z8tXmvBO1ayA8S5oxh`0hsL#_L^0=+XuON?df6yaw8+mL88!W@gwe(dQyu+&MU2MVk z$-AFa8Jfu-mE4+CPtqg#d*z|$d%uqOu;Tji@FVgtuVdFTV(|(NcBS&~AispXh$~<3 zIG<4*cVunXB41~QXupb}`|u%hgZK2~H#^dDC$5cgWHl8LgJ;QIldVUYl;N=Oqng!&pQWYBbvI^uT zzkuAiPjUTx<{EPRhL7c`TYM*ZaBN4E{g318H24>)40{ze?$d!DRa{^1Jwjf~?He)5Zn|rENKdivG z^Th&Yu2C)a@{*#B85V=fFUWEE(u+Lkzn1=iKPlWv?$>eH6S}LvP2P}oX@c>8gofY( zRlt4*ijyZ#r~>rR93YSLM6C-rPVP^t0F5e};Vf4Tb8|D-8`@mS<=gRIUQT+Lp^_OQ z2?dhmwd4ujp3#Bs(FLe39lN3sg=*><#| z3slPj2b6ym3-FT1zoG*3Td1*#+`C!v(LCOH+D=0^&zmUEI(|f6#GS)S{wR4MslYb! z7s#Eqb^j)L!-vXol>Q?ZT+K5cTzuSr%g z=U2!B91OiB?I!o|w(kztktcX3 zxsj9LZgQXP`{H-V>)uuI^>X+zdAC&|tf#RS&=6UpB3JVSe3-oH0~IL677UZeP35n5 zk}2pyc{cKKEOf&>l0Ky(SF?Z_@u$FwG=7$u}YvEGGLq?13tHkG-A;Ao~ zfG~OZ3Dr@0%CwM2URON9f}bD{*jD*_I{uJ!#D^AU$VHXq)QIrTTUf<2W|ODhSB_=$ zzgX<>qXVzkX4{3&c5)AAf}h#GL+(vxhkKN~idS@cMjaqGo>l&(tk#=~ z8F*(;*LTrns(l{Yl&v6l@;X9yxSu?DRF&vq!C%#UR8|Pv3um11JsM*FP&L(o+Q<`s zQCwHFoxJ=d#q*RHPmp_TQ}P4yVeaR((qC?G=U%Q_7JNZP*rmi+L0)c~VqYe2vYknO zMDFA6qu0MrJvkP2pZ|u5i7A$|5TTZ2LnOe;|*>%I@0S2m||MYdr-@i#Y_VdKx zB@gp^%2xVcOzw7>!f}K1tk_uVoGx-|o#*A>edir@w}0--b@%M6t#vl76Dv+Qa`*M$ z>+H|Lj~za7pL69z{hI`XKNs)a=e*GRNhtjL?Thbst}N8QW1!U|?g7r%uiWBqp4{)e zXrlgi^WhcZz5AUP7V1}PwU&#E1%fsAsMc!@@4H7hLpk_)#t&K%RKKr_UsZU(iQlf{ z`;7SQfd`!H@J9aQkQwfLwP7STsix0{R0-FE&ZQGm*DF)wI&t-_=3L<&bU4M<2c1QD L)qcl=&c**9)XE?n diff --git a/src/protocols/ioxide.nghttp2/runtimes/linux-x64/native/libioxide_nghttp2.so b/src/protocols/ioxide.nghttp2/runtimes/linux-x64/native/libioxide_nghttp2.so index bb65d6b6e5b85f0281cc5f6f2b2299d50807d11b..6c4e59f02b1455c9716668fd640afa7284254844 100755 GIT binary patch delta 62572 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 delta 62353 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 )&3#qOQHPGK$Lwb%6&Va`G%r=TV?WtUFx)G( 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 +/// A response's fields are not capped by the shim: each reaches the peer, however many a handler sets. +/// +internal static class Nghttp2ManyHeadersTests +{ + public static void Register(Runner runner) + { + // 64 and 65 fields with :status are either side of the first growth, and 201 past the second. + foreach (int fields in new[] { 63, 64, 200 }) + { + foreach (bool asStream in new[] { false, true }) + { + int count = fields; + bool streamed = asStream; + runner.Test($"nghttp2: a {(streamed ? "streamed" : "buffered")} response with {count} headers of its own reaches the peer whole", () => + { + var response = new Nghttp2Response { Status = 200 }; + for (int i = 0; i < count; i++) + { + response.Headers.Add(Encoding.ASCII.GetBytes($"x-{i}"), "v"u8.ToArray()); + } + + int port = TestServer.Start(async (_, conn) => + { + try + { + var connection = new Nghttp2Connection(conn); + await (streamed + ? connection.RunAsync(async (_, writer) => + { + writer.WriteHeaders(response); + await writer.FlushAsync(); + }) + : connection.RunAsync(_ => response)); + } + finally + { + conn.DecRef(); + } + }); + + using var client = new HttpClient(new SocketsHttpHandler()) + { + DefaultRequestVersion = HttpVersion.Version20, + DefaultVersionPolicy = HttpVersionPolicy.RequestVersionExact, + Timeout = TimeSpan.FromSeconds(10), + }; + + for (int request = 0; request < 2; request++) // the same connection's fields again, on what the first grew + { + using HttpResponseMessage answer = client.GetAsync($"http://127.0.0.1:{port}/").GetAwaiter().GetResult(); + Assert.Equal(HttpStatusCode.OK, answer.StatusCode); + Assert.Equal(count, answer.Headers.Count(h => h.Key.StartsWith("x-", StringComparison.Ordinal))); + } + }); + } + } + } +} diff --git a/tests/Ioxide.Tests.Unit/Nghttp2OversizedResponseTests.cs b/tests/Ioxide.Tests.Unit/Nghttp2OversizedResponseTests.cs new file mode 100644 index 00000000..2e822003 --- /dev/null +++ b/tests/Ioxide.Tests.Unit/Nghttp2OversizedResponseTests.cs @@ -0,0 +1,90 @@ +using System.Buffers.Binary; +using System.IO.Pipelines; +using System.Text; +using ioxide.nghttp2; + +namespace Ioxide.Tests; + +/// +/// nghttp2 will not send a header block past 64 KiB, and drops it with nothing on the wire: only a reset tells the peer. +/// +internal static class Nghttp2OversizedResponseTests +{ + private const byte Headers = 0x1, RstStream = 0x3; + + public static void Register(Runner runner) + { + runner.Test("nghttp2: a buffered response with a header block past nghttp2's limit resets its own stream, and the connection serves on", () => + { + using var client = new StrictClient(); + var connection = new Nghttp2Connection(client); + Nghttp2Response oversized = Oversized(); + Task run = connection.RunAsync(request => request.StreamId == 1 ? oversized : Nghttp2Response.Text("ok")); + + client.SendRequests(); // preface and SETTINGS + client.Drain(); + client.Feed([.. Get(1), .. Get(3)]); + List frames = client.Drain(); + + Assert.Equal("1 0x2", Resets(frames)); + Assert.True(!frames.Any(f => f.Type == Headers && f.StreamId == 1), "the oversized response's HEADERS went out"); + Assert.True(frames.Any(f => f.Type == Headers && f.StreamId == 3), "stream 3 was not answered"); + Assert.True(!connection.IsBroken, "one response failed the connection"); + client.Close(run); + connection.Dispose(); + }); + + runner.Test("nghttp2: a streamed response with a header block past nghttp2's limit hears the peer gone at its flush", () => + { + using var client = new StrictClient(); + var connection = new Nghttp2Connection(client); + Nghttp2Response oversized = Oversized(); + var outcome = new TaskCompletionSource(); + Task run = connection.RunAsync(async (request, writer) => + { + if (request.StreamId == 1) + { + writer.WriteHeaders(oversized); + FlushResult flushed = await writer.FlushAsync(); + outcome.SetResult(flushed.IsCompleted ? "peer gone" : "flushed"); + } + }); + + client.SendRequests(); + client.Drain(); + client.Feed(Get(1)); + List frames = client.Drain(); + + Assert.Equal("1 0x2", Resets(frames)); + Assert.True(outcome.Task.IsCompleted, "the flush never returned"); + Assert.Equal("peer gone", outcome.Task.Result); + + client.Feed(Get(3)); + frames = client.Drain(); + Assert.True(frames.Any(f => f.Type == Headers && f.StreamId == 3), "stream 3 was not answered"); + Assert.True(!connection.IsBroken, "one response failed the connection"); + client.Close(run); + connection.Dispose(); + }); + } + + private static Nghttp2Response Oversized() + { + var response = new Nghttp2Response { Status = 200, Body = new byte[1024] }; + byte[] value = Encoding.ASCII.GetBytes(new string('v', 40 * 1024)); + response.Headers.Add("x-a"u8.ToArray(), value); + response.Headers.Add("x-b"u8.ToArray(), value); + return response; + } + + // A GET with END_STREAM: :scheme http, :path /, and an :authority, which nghttp2 requires. + private static byte[] Get(int streamId) + { + byte[] block = [0x82, 0x86, 0x84, 0x01, 9, .. "a.example"u8.ToArray()]; + return Http2FlowControlTests.FrameBytes(Headers, 0x5, streamId, block); + } + + private static string Resets(List frames) => string.Join(", ", frames + .Where(f => f.Type == RstStream) + .Select(f => $"{f.StreamId} 0x{BinaryPrimitives.ReadUInt32BigEndian(f.Payload):x}")); +} diff --git a/tests/Ioxide.Tests.Unit/Program.cs b/tests/Ioxide.Tests.Unit/Program.cs index fe2963c8..3b4a5752 100644 --- a/tests/Ioxide.Tests.Unit/Program.cs +++ b/tests/Ioxide.Tests.Unit/Program.cs @@ -28,6 +28,7 @@ private static int Main() Http2OutputQueueTests.Register(runner); Http2StreamedRequestTests.Register(runner); Http2TrailerTests.Register(runner); + Nghttp2OversizedResponseTests.Register(runner); Http2RequestHeaderTests.Register(runner); Http2StreamedBodyTests.Register(runner); Http2FlowControlTests.Register(runner);