From 3abaa8371089895099b0750ec1f713b8698b1cf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ilkka=20Sepp=C3=A4l=C3=A4?= Date: Wed, 9 Apr 2025 21:33:39 +0300 Subject: [PATCH] docs: producer-consumer and promise diagrams --- producer-consumer/README.md | 4 ++++ .../etc/producer-consumer-sequence-diagram.png | Bin 0 -> 41133 bytes promise/README.md | 4 ++++ promise/etc/promise-sequence-diagram.png | Bin 0 -> 62770 bytes 4 files changed, 8 insertions(+) create mode 100644 producer-consumer/etc/producer-consumer-sequence-diagram.png create mode 100644 promise/etc/promise-sequence-diagram.png diff --git a/producer-consumer/README.md b/producer-consumer/README.md index a40ef5a65..bb62c799a 100644 --- a/producer-consumer/README.md +++ b/producer-consumer/README.md @@ -36,6 +36,10 @@ Wikipedia says > Dijkstra wrote about the case: "We consider two processes, which are called the 'producer' and the 'consumer' respectively. The producer is a cyclic process that produces a certain portion of information, that has to be processed by the consumer. The consumer is also a cyclic process that needs to process the next portion of information, as has been produced by the producer. We assume the two processes to be connected for this purpose via a buffer with unbounded capacity." +Sequence diagram + +![Producer-Consumer sequence diagram](./etc/producer-consumer-sequence-diagram.png) + ## Programmatic Example of Producer-Consumer Pattern in Java Consider a manufacturing process of item, the producer will need to pause the production when manufacturing pipeline is full and the consumer will need to pause the consumption of item when the manufacturing pipeline is empty. We can separate the process of production and consumption which work together and pause at separate times. diff --git a/producer-consumer/etc/producer-consumer-sequence-diagram.png b/producer-consumer/etc/producer-consumer-sequence-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..7a97024daa6976651efa7fb25753d4df469eaefb GIT binary patch literal 41133 zcmeFZbySqy7e5LJQqrX&jRQ)G0@B@$(k-2Xz|b8kDqR9n5=ss=bQ?5C4GfJm0}RqV z_W|Gc`}+Ii{(aZF_rhB6#5p_8+2@?S_xYSBQd3=lh~O>(1_lO^lA^3O2F4A13=FJb zyqmz2@n=uifq&SxQfg8d7!@&u=N34?J)@OGriSqlxW>c4!X(GI0bF4MzZkFWF|e<%F)#p1z|W0r z%>UkIWBvQ~27dO9f3LBEuL^?L?(hRd4D6rld+4jF3R{Amxh<@~FRZz}on5aAV2FAP z1DDR$9u|z=&Q31w!ro%c*Cm93>#N5+%#7DXJRHTC_0=>PWx#IMi~`)e+`P=<1dNP~ zqHb0;!rHR(|5OL=#F*_oJY0o&c)Yy4xV;{8gWYU-9tjBv@$mBT@bPg0CAi#uTs$ni zxm?^?{t)?>j;yu2rJKF0hdtPZ@rtg+3oyh(jG6h0(f@w_$mwBk^B*S{_kYv^6y&*j z!}Exnm*;=9fvTccPlYwy?5zRLSMjeWh9riPtkiRF%*`2F57yPxwIke&Sohni1CKv`V-o69Vx_869(}0NXzGJH zojo`>sEGM0bU9CQX~ht<^PAo*tI7)^s83tXQK}olp+)}Stx});QyDibA)!G=+b6>9 zgL?u+Ls6K#7zH832RxOZ8;gsJXOHxBqK*m$pMP)bI?m%|3dX>~WBm8eGb~J2Qb`O< z?0^4+IAMl{I}w?({96Jj8%)aTO8UPlzyrx>3@K@1T=2h@uBrz!hFJbZ2NT;38;{)W zsdw1l?6C3g-T03=9%C$vWNhr$cG~~32PiQr&foq&B)SJkbdPxUZvil*usZ*yi?@VF z%DUvbbMrq%Fah>YZ~iSIqe3tv)9Wz7zXgztZF}^WrWja4SlIYN_nM^sRwWcW`fs|V zU1W@kT?_L>f3+jP-u2es68?Xyi9$3VkgBSy+r+0{2tQ7s!Ap#ll#`PK!4S~LkA31; zVgm+jTL%o@2;wEakvtU2x@eG%Z~fKXC%#%`2KAPnV8rqv?Yg>IwHWKIeEW%ryon(! zb+BN*--wz__iY;=!9+}`*SRmWnSlW1b4SpOulVr2jkwXxCZGEWcgWwiB?fy9Oc|kI zUbB9K=4x4sv-R6z>1v0LC8X^4F;O3DpZGzW_h$XLYtAW6V&^X~CiaY>kKfd&t`PB% zva4h2fq7N7LN3_*&U4D|Q6gi$E3XYe25bih^TPHdWZK{TqMAQ9J8tO~A6)g#FrZxx zdKF6ZokMeDHAo8w|1fu6%qc~qK%1OaLwPRZ<@%+a@hcuSR)J5wtZ$Ek8Ljd9*fhx~ zBS&=x0uAMD3jNXHLrNz_YdjkPb*Vy5`Am+??m9R%bBeV%+ z6-syB=_x*Rw{8pM=}`+gPfV9QJ(X;Tw2;hl=tvmWdd6gA__ea2Li^!Y%z>bp^{Nc? zkgPQKd*a^iIL!LH?|SSWK2SmpGp+{KXFOa^&)Q$-kt&RBkkk}r8LMn=(SpNARUnG* z7Ua&4TJ1u^HyQB!GTyK)PY!7bT@05Si|}zbfBwYh#`WO07T0ao-Xncx+hs1z92uN& zM>z+*h&*SKLDFZVQ@>|Q%Ec2fwEmlq#Gzykv^`6hR@G`OaF1qDNFo`WD z@MU%pllPqIGkGnunM+AS?6fC~IILvc6+Nppx@M5YR*pvb;h`VVvnWZ?)I>{}fL%kB zj*vJXyDh)w+FJ!{)v)mACv?f0C8O_rne<8(R$M?Y0uPh}6i3PY};4 z&M%<1Zx6LL;bb;3+(h}j;N)JNyPNz~Vl8P88q@vFygfnRoJqi}3@b^Es`7V;Ap%{h zi*VIzmMxMgtB<>o^p0`sZ%pAqH63MkTH*_NJb2hDDgb(2#%jg7&DH%FYx(|9QZk`z z*xRfr9hNg)Jtdv+y&z8dgj&DGrO$c;T_Q5gd>`}HC4J})mVQv!5xiQSE$}?)NmFw( za&LSd(UIDE_I>xLb~n0;P0;fGUhZVIi}pj< zo#Dx;yT&6odhIKWmGto;Jd)*mXe+PhnZm-%V6)+sSH=Ry_<=QAj3GH6x{x%#Cc|Bx zJA9>bQ?YGWkGtOqT}3N|1?(=Wd|rYOk-kVc$DmyMX;sC+$Q%2<_g#PS0)~fSNi&`fJ7UC;%DeOSS5c;ZHF;R5@o;@+GA?_PASwxNXg7* z)b6zvY`W)iJ{D(*Nk&yfhTm(smq1c&&x9#mzYW<<;v!Yk?aC=u@CU@0?;z!vvq$SfVk-kT8b7(LMlgVSKQE6Dpb0M?2~AR^EKEGt;E}+H zRhT2ZWgm4CR}4P_tswW%C5IB;L0`;X?GtcNU2nVyy(4GBaZxYp(z`yrk9(D z0d&>H%K+A=7b=j~@!R+DC$bu=Zs2>J+nO=%48+_ot;TLyS{@WZYeW-wuU9Y)pvfn^ zSRVypd0u8!TADG;;ygBL^a@-8tGqLNCItx4mf75?uc7^;;ZBR)@5Xp=VnbUU-Itvhm)IIicjS3)n?;iBh!TAuh{SCuPgP_Eh<^z2%B1Yc&6Wzqjg2B7ulPx^81c)z5sy-xF()GY_`S4r zP7q_V5zE(;26i0QCwhiR_mhHlZwwp|LSgSM1EUBp!rC}yepZu_ma&eBUwS)H=Z zSy6;=Vu}#O`|f-mM3<2CTr7{y1#;X&L=EGS^#r_5XhmRG(}ap#zS}zIv5PgAAP_(# zG%L4i47xMykYI^ZC}!b4Ta{foXCHKDcE3c5XNsc(YQA=JV?D;6o|Cy?a}QL#AnwyI zS(>xiU3KG2n%g}umy~ayf)Cz#WL2(1KBcGZ&uMWZAs`C`<4sO zyLFujqh%@ef>pAey^}$N#9&CfLJKK7VApn`*k+pne35OT*yo3zhruT%Kc(8F zTc~yrCz4#Bz%d?trsr64WUP7V_tr=(Ptm{hSR(K^Q-YI7n)pIBF1-slNQYAoD_e}4 zN@zk}P zOG!(KO+5X}&uO8-J23?!7*fe>SsaHB%)-d$iciEJvcNA{BUN?pz zFHT%!OlEG!Z^b-OI;(LwIsT4Wzq9SCE_~%ie!pLy+pN7k^_;~qy+gY+q(heZ{`f13 z-5-cYCp!*_<~enqG=)-(3XJ4f zanTZLZaYOLB^mWediL=*0sbuMW=XuRsPp8di}G#?3=`&U%y_0N;92&|6awH zsd}s$u}Pf^c-Ul{RHZK|{q!YW&k=$3-ge(`@VICnTCcLDTccB^@{mi%l{om+v2Rpl zB2*N}Vq>wfNk7Oj=Ft#uBlKCaMlmed)8ftO?!-S1cxhiu)WcRY)*WW#u%rrBRXXLOx=I15E#3p!9UQ{GcZ&oF>J(L#ib=t6mD5haeQ*AJe(C{dU13OQ1r*z6MCv9^? zsDh^C+we(QDThLM#baY*G8tlJB-T9(i@+o*l2FoFG+0jsS@5vX0Z-Y3JvHG4A-7W+ zg4(C-WIg}$WyYz?KvTNUVktP0Z;4(A^plPDAa~a_^A$! z65psbELT0QSQzj{T)HNF9KXb8GrjA|fY=oP^YIt%-L#$`4tJ!6xddf6jhw)^n2x@V z1O-Z~+ey6LE)1mHnku$VFDUd0D^Lof?;Y<>!Ce|Y%Pq6l**jG}x=6FRXfZu^($A-> ze_{b|>ZuX)=St3aV#+da6mrl{hWJStH#?MfubCQx8ETj1~1rG9tI-S+1{%T>bO`w7AuCSM79wD9X~d?D+BH1V5t!c{mUS`&vjbQis@F$kwj8ZwoSU15AqLSz2fZx?x;~mI?~q5O zix34JSfiqkv4n^iAM4Zxt@Ug1l9SPhAu=C>RxbxDUW!D0;ca`P{B^tJB6H1GzaIH~ zu2q?RMyOJ|jAkm;LX;sDH^v4*{a&&ujoJ48O5@g3=7vJR6q8hCx}VH^`Whijg+-lruV z?d_c#qtFR^a~fUl*y4d=@KSbmoS^ElG@LIF?npi;IPevO;ZwF<>9?ti+| zPfYYsd)QrgBQzXRJJ$Ub-EWA<>HpN>3mGY>xU3_TEMbsS9`XEKuo?~aurm$i&cNpi zE@_78nw|`%EKg5;<(8~pq}{6Y)hM;Qp{8f~B85cUyGSqHl*lo5KL4#P_Boe1|INcS zIyJ=@@ygE}GWZppvtv5i#Q{`K4bILm|1-&i_Zvb;9Q;O+;^`*aXrf*}!*UWN>Kn`C z^K~QKyZKe7jyzi(A*OhBelk&q;I)Jl^(Y7Tf>?j$^rxj`82OH@Os28rX5;9LMx*Ms zpR1wacW1Vv;QUqa$08(6^4ZfkMX+GgTpSCIY$K-0baLN_K7yWEE4`m6Fe(x4J4KI} znfOJ}1NU0^HSy+rYyHjneuuqYTZ;ywF`&B3sw@}`t)}QhyK)| zc$IInzils9nI`!Dp&~EiMa74k)KVu4^%UIR$6wV%jDy`&Z%`AGJ1yla=#@g+WuP}n zs987185ic95clCHzSY62%6L0S} z95MLlM(e0Y3EX;9uO~DKcT%_4OCykd(5(4OZ}^fH5qYM5t=zjC4~ST$$>ILZP^qyy zGdHC|y~0cS9!qufJmso-$XwZjJG!MRvd+w$OfIRDu0_hzE)n9~>%A_r&LzA@tI)_h(1)_l_e z`z%~KNhRin%%VHUN^$bB2JW+I5TUY5b=l)*Fw%AK4iDBPd3i^bNl0yUx8hS+^w$n)QMXDU>HSXQB67<(8|N4(t*XQ^=z+~e2j@KH%!R@q7r4A4~?rS9XtKv)*nTTE-^Aa zkD1!yVJxj#tL)ERSF2PrWIaP_^q#`uqoF0d~GUi7rvhr7@%23Pv@?;z{Or3x+lkF zY$lcrNj0mTaCZ=OM`3d)>TRrnbS9rX$Z<|6{bAwHJ44xiN_5LK(^c)=#w7Dye>+@- z=DT+7A!1G&BD6{LrS|$xv6|xr5?EVgW!(v5iTVt$CgJNcKZl*w3QBH<;$vc$(fn*p=O!)ZIJPLh`Lo;MW{FTN#Gz*V z9TD}Wh^|VxoQOz}%4=O%cN!7D4z5X6?rEV-_;wiWdBPxM#{8N8dr2jN2^?O(@ai^~ znEHYruKD_GE4BL$4JH<~>+#e-cL%J?OE~NTE29 zI42$T2Yp}X%1Hvp*=m_Hx$_DEp~~)1Y?aSAI7De?;JZVY_=f?sCy|A&SR?nVJMu%g zH1OX$z%GZ(j=Im#leu)hu+q$$ncB;nRcaJ0N)?^^d0$gDXgL^{R8MF7(^osYE{gij zXGfK*84~pqSdd2MgVg5UTsfuCa50xB2Benl(fmA>-I=8}?G7@h{Oop9i7k=Fs$rit z1IYvpd9qmM1u-49t>_|YVH(+IGlq*_vIQckkSYf_ZJA^iWwAQJNh14fqN6qEY-{6?_ zrP_{%2Lxx?)GN*1lSfmjju)6s-IsxW{K(m+eS}~D@zg3cySHtCF?wzCjnb?Y&bFE3 z<6Mh?*?c{upo7AaSX8N7>mg3Ljly_=u+-G9ZuSwu!TR|6+#RsVY!%gPvvb~FVq#sv z*P1OgZZ*?SO{u5T&;Y6?jITCE?s?)Fwi#K?-S2-r)yazw;ih7&ZA5&tWnI-U`lK4CPNmtpZ;0AA`0AKtV z#>5vHfxFs=R{Z2I1D=$Q40=3gL4GkFCwmza8RuakQIx^zobLJAj<#$JM9Avo)A-9i zm)yXejYG{?h;Jp0#bB?nN7xzsMKG2YekMJksAw9?YgQhgApkhhdYF!f?xttAM9b^p z{A86PoJI;O0h0zk8M6Th5bg3>kLGlS`r)eK8JmN`ibpH9WAt+<3>zNPmj2?@k90h{ zV|(Hpnfukvhj%-T)#+!jrEw5Xv{`y=^l9uZBuXmRrC2M-$f?q&c>hr|XvhXr&@`pi z1Xu@igCX0^d3v*8NBa?lM&x@(HQZ8?P=1!m;`P=#5BU;vFbVRwQHddCzo&J^vi+2b z6~;(ENPy+CWET;@(bVd(Re65cgEMYFaf<2hb3u(Lri-iHI92%7AQn(E1X3<8b~MJd zAq17MxV3;dj*ZM;`Z%d(HhE7%JZcE3jhxQX#w~^25^$7NzXQ88nxbdF3bbEfO3l^d zj~gI_ZyND}adx+2)?95T#}~SII;Ugv;6VB_odz+J!ElxZM|yoKd+@U;gI|cB0!~?o zYKm5M1&4{AN|cOuGzBWWegqpBZGOg&1;2BeCJ;7RfSf#%O-GJ8@e>sv!5gaeJMECJ zVxMF(4c&8pUlQLLZp(S8_U+(Zxq43xF$kMf|3fg*%hQ$mmx$a89Qvs;FJpLtsl!3 zlqp(Y`^K9(<1xk#d9~9~;!@a`Tgr{Z>AtnZ@6yD$tV|FvD#Y9}KUN^AH?-C0jKnwz zyrDL7X*Z&-CmDl`^m!-HUXdfEaf_${Bc_W zgc+MZoXy4u1_Tgza$gPohIDoE`zgZs1j^{XP$9_n4cU-VipMLi%nsn)hcpjeassqgf6Uf+B(aD2~-(T^oL^S(ayJ zPdkf@`)5XXA5T#uNI%1$uOC7oT{nUnCIRz}3sY}S&XgFY@XBQ}NGND*9eLmt*!Xo! zKtBu9QFm!lS$&Ms)Hmqc%*6@4$@U=>)_50>cDgN%&c_}W-3_-u2=jn_vWFniH3hhb zCn6GSZvFYjX@RqguOypMt-}>bur{*7v7B-4A4^@()9C>6lK4^QsowE>KDGi_fi!P6 zPL3*xl^iZeTIxPawN&eMl8h!RH!txVFL{NMxH<5Xg^$(;Tu`XQ}1o{kH1mzM}dX*LLUHiOyI z`wCAa%gF*V8$949-9fUinP8XLNiGw^_$Mdd9}62hG=xE!8ukW7@VA;Xrd?XjkQ<+mKyOtAw*9{KJvn&;m+weGgfLDKsJ;E_~-V87G z4P%@5yqz<3P_sqOn{*R(&^YRnKg)6vUvkTRSp9dHg-sLKmvHCiOt*t%diQYmxo^ zo3HF9cRR;O&u6AC%J8*|JzePGX%SLlDO?|p^&Lq|P@%B1i>*$U;e37^qbF_UlUT@S zu1e|Tfv(omV~qL^oQlVLdi%`bWply;M{5`4oZjVW?~iys4^By$przsbUfajmA-go? zaUqw|3e1%Y(jqYX7$PAD=UojVlJ12N`f;x|%95WhYQZJ*v!uf-?Y=21k8@>&u{2|9 zkQzru-dYMzE5~&)jzEo%rm}+0LvC#Zke1nLzCa#pG&H9`{2Z(6;~~`a%HO8T3&F^! zzDKk zq(h#yDriG@njk_^8Ksure`+4C$z% zv6b-|k++xaz(67u`NIQoTq<9j;Zth;y*vb{(M&q2Mx=)JOaHiDhdf8oaB(`d-GqRx zDMtAgVoe2pulw}Tgq!MP?9sLDpgGQ?ORq_f-XA$NuT3xT*OKn}B~B#*`FE<)y33pA zi#cD;N6tnv4tux;PX=P5KvtL`2RP+eL7y{=(_uf_(ry~4g$n8*zu53kl34T&Xb`cl zq;X1?9~hL%dakZ+E<0DVIF?y?S=Ve0@B)hKP^{OOT zLN6^j?Iy}EnYehSyan&QdE)ll%g>Iry{!hdYSO+kP1)P17sqEBYN1}=l837J@$YV> zqhEgue7C}}?{_aUQi_VPVlObkV!3 zQB!)uDBZadVoppuH~mZAK{&G{PfRk6#W~>b{{uP%^8ndN|BCc(*1uBngfxtb`gK$) z%>UsS<_R&cwi;~sBLAz~)&Wc*)GpuS|AIdpO9wNy(=?{4{#Cc!HRKloxf7|`OEjk_ zE@z}CMB@oJp`H;|dyU9rLmfj@yCD}>L-)5D#PxZ}2pejd`rAT%%_1||DI z{ehcRb&%soZ(Y=VCFLv-6huf?zL#A$5OKAMvHmbrIgbQ{eGbyhvCS2GyQT2r{!y5< z85nCIJQxLRLP1@RS`Vi1c{9w;Mh3Hj=IBnX^l`9!4{1z7rt^yxJ!39ZCs>|m1X3zh zD&EB60L@2VqD_%5pLwiJP$BL@=l8H{7{7VI}qvuIq_j*OlJutCQ z1{Czn$EA?mzKmIsePl+hW`(TWvh{m(07DkKH0RAk7(Qkzes#pb#JEC51{#Me$`1$I z?~uN9>S2C>ZNBu$7AaF}3-!;%W{98cq~~+>3wc#9FJ># zFPCeox(A!E4p#@FFQWQ$`sO+|_bg|5Qr2E0PE^o0-#8T)rf{9k4+ceUKaX!_#T1#{ znwT>-(eqdhk_roVQj@7UELTNEiel zm_c!>aoX8on(})o18o|}@l~qcQca(@1YXm8fq4hcQxE^437xY%8{Wg@0qFafj*u+euD z3)71qGN?y;Kj}lFJCFSRNe$X%>20=}W`8UlE@oN@t^0nha8@qb;&0JG(D_XO95C3M z^0uQy=ZGgCQ$6PUS&ljGcL0-&xCx2)vRv z!9*z9vaG~Yn3Vn0oj4u8Vyk|-vEhb#!;T~i{F`B^uP>fj1wPSbg>baS)eoTcMVV+$ zE!~z3rPcRAOCCYm4L>-nILTs1S*5=ApdQqGAPJHDo;UhRyRyheTfmVae5+InF+!FM z=_iW}mq~S>3&cGSxa?f+TZ_F%zmc%W66W^8NwJI-WaYtk|A}m0XIz&s0h76!*9MHV z9AsP=Kzi3o&m?yf3XUU!9FPwgR=+quGozFWrJ`)=2*n|IKuG<>RS`r1U}?I3j^W>_ zBTe|7naKJ>cHc`{Apt&7kiDSBL|kD#S&&@+%g~WRMLq0Q7!~;t?z2qnL~UA9gn1Wv z8JXZ)t&!6=qtK#6#e?SyjHHQe&tvCtaA&CwMe{$c=`LoRjc1|P32zSRYd0wTa9<$Vs}Tf7iXQ(;#9wXkbd{b za1)H~+skT2pNNBokEFf~P42=q^Gk}$k`9aR7P`^kR^Q6rd-wYqiZDfFirMa0lZL~i zshH1c_w$HaQFZL8H>ULVV0cS!MjT4axCJ@F0k@=3x|8~$3|=}WVGK)}hTC+D%p^ez z2n}Y9I5_JT*Id7e{Ggz(LlUNA6(F9B!fdfGrmiU9S_!0*?DCY;6 zXq>HtST%42b9zZ^VyZ_b2d9oI4!&VTc15Th)yQwjLu4O~PsMG_1QII~xoVW*0zaiq zc;xq|12s;kolF5ve$bIl58d)us(V)BjD0mNZW)~?W_4nYoz}dWei7fJWd_jcb8NFh zV8>n4LCED)(l-J>)r*a z^^){%yx*8@rDya^_f4g_`G!R=0=fR+>|o#6l|Nw-;xR_fnnPPg=?Sz%_dkT_;&Ir-;EIk+K7YwlR>~ zr3URCq17N$;wHJ0Jn7KKmzPHU0zqgRsi&)-MmlSbyaqB=*3Ws;w6k&T;6H@zBiI5a z+$E7j!ZuI76y(~tej@i6ylKs*4(fy7?nZoxU;nnlU8Q{1o7j((_2i0R5kjuC6X zGyw59QIdKIy)V*Q@a?3v@~oG@2B@-nK1f|(KmHNDclPpf5LGpu<#x#fb$yV9mZM;u z;O;rs{P0B{qpUoe%-NGDG*HsD{8s1Qfdn~~p(1CmszwUGl5PSL!F+uaS(^?)svIf|i3*DoH>$96i}R z`{3-zJvaGQK(TA!g@Dx|a?{#7!wmBxYF>f4HLt`u66>15{jz9iKePF&-?l6h z(|DLy1o<@zlIEe0VEumw$X5~%3rK|phIDs#FVDS+snOKZTF9M_ z*ZI@ex_=U@h)){Wc(;u_R?MjsF@8eyjq-3T9{N)7(|TG>p$3f=P)ZjLXaW()TYmp0z7Q z-UrGnKa|U!Kf3{(GyrhdAx(HcUkdTOFToD64~d1-lQOFMaUO9L!y@e@ZMIeaG1^!L z%*&#c&Nvt&qp64wNA+Zw{W5l6%Vb9QIUSCU*?7bz*DSpg9J*)xOMTZi(G zk&aGL-Ogr3vHc|cRx7`;FtK|y<}(Pjd{*?IpUM~P!3`ObI=ysyLLfRLk9{JpB%kNF zio~|I4fsSJxSi~LxrbhlWd&)c;*>rAo)=)rB_%B%4#1_ef-^7ON;p7+8E=(1g)&-u zG*tyQBCtZk?I}#J0Q-Ry+4XUAhsT^JYU-*h*myOH%tc-mW4OTBPpp;XEELQgQ8;`O z_kq&y55E6c59qAcv&@fw!T5QLG5VuytSvxT%MW5zLCXiVa|xFrQuXL6V9vWP7(2Fq|#ftp>`^&c%zc-=WNTlLZ&Q6WY zWZTRjgEG6ew(2J#-pmh%BI{V6J)tsAW1N$|!rkuxQLZR{CK)?R$XxSb@;M^tl-B2H z=XI(vqC6WF;3~^)T>mg#uq{q^b;5eBP#YFcmZwIb#GsH(y-P)zjR8E$?V$M#5 znMRw`lgXTc$0RTc6=omP(cxCqk1UXAH`lCjnq+LBN4jl(d*HLv(wJ9MAe`W7I<4Qo!RoAVJfrS9ja)`SC)`G?#vNK6BohKKotxxXc|DU79}ARCPL2yWfb^_39DxngyX4gvyY@oMK`ZyXmVz zZ17oh=8f9=fgauTa_3%<{g-0M+!m4{v6h(LQ!fqGV%fTXK+;8vYFZ^&uPJ3X-=}dy zg-lr^SBUr?ktM`y-Y}U>Gjt%3q*1$PU)poX?%bm{P0ZqQ(i>h_7>*R3e@6T$8#%2m=V@Lx3}238dTDQjO(M;`+F zNA>)~W8M;+fp2dib{SlB-^HO7F29}EOC=@pq(Z1l7<}eU>z(IZgaWpk&XLeeDr9&Q zcw8OP>XkxUVP{uVjuM*i;>s=`dS9YhrHp+-Sz3Rge&7s$D;9*{|1V3?vjF7~X63GbvlgQ_Mp5Syl!O za=Bd&Q~B(sw8q(*`ODRS5$x##C0;-p+&xD_)HUY3C2(9GQIWj>biqrhsQ#&f-j;x! z03Sm~q1ln_4hNwU#54BW@xoiGVr1#Am};OnLVt^`9bAPU)OFQC)b0UPPuOX1(?ehc zrD_M0Joiof78!8d-d?Q<<@x|J?EBjjZy(1wCm6nIx*NkYP9u2fNx!Yc0X~;2bcEx~ zsM>x&4gf4=6>RU;@(jI4GNOF zyPwOpO@+=E9yuFU&*0q7pmUy_E>w@sdb;(>1a^r_&8oj@SiJB-RjnZ{F=8pnnwmX3 zE)*wZanh}TEeGvMV~UE7u5ZB$I`NX|dZO3hee%}v(-XdU zdhsz`r*+g%#_#f+mDD@Vr!7ihB7kP2LmPpS3fgS(adoKyGmesXq;+Zw?kK(HeKr@f9NU3c?WVU{#)B3zQ zyjV}Wdo;i=)kD9`zAgL-)C{cyu|5W;C7(UhA8Jm0#usYQ zX?JOz;GaP5X0=6fjjVQ&-bEate$8KCiQ64;jjl8!L^F9MTW)z<+bPRv@sK~i5@K%g zdT0f=0yETkGnyvJ4>|3SL0=pZ9rJjhDYRKkPo8?*UdYb`{-ksJnR!3h$tqiXOV&wm zY|A3zRCudNG$%l&3<7DKZ(A`LjsBKmTdz_939NZ7$j>j}@OfEytCe@dfz4s1jwGaX zgdT3zF8?EPEwFZA;J}w^Qh5&d5S1_^QrkFY_>75G&Q@);sL+OU7EXt8G+t9nHU{x(p9=HF~p+)dP<@}$lAq72oZT2leWNq33m10K$w z6&T&8nkAVHF<-Uei&H37y=-==h~j?x5@?(a(RN8;_FO1vjvg0)xMGub0bZzdCZhon z)(L5O@q$3#x{+_z4W!7=*~y1lf%{D3aR_+pS+eu)u_a0GU{;`d3z|oxp+HENvHI{r z7jK^+RN&(}op8rc`&WjIoi9A~Z5;%2XP$GvK^&LLrd*QD z#Lq%$Q@`XFDs7LQF->UZ>o)$*ym=Gls9<#wTD)-lzF;spwIMJofmo%gOsLAm52aSq zlwwmHQZX>3yZ5p<`lA*916388FT;yp>T}dZ-Z(aA9m<*i88GG*Smy`&CAWK7%HLzb z6FUiJnlCQO3fc%ZjbNahhN2$lvCvm+;%5)MWU9HFH%y@s>o(5vlp_|JTN{mI^b^(g zi^3<1;2RHCmfQ$Qr!42#pM$Rm7DE!VcivBir5hhW z%y@nrUh3{G@E104xA*;XQa6O^Y8UFIo4}j411!gC=b(3MNI5EQQu-YU=*e6u@K&x1=&mK}P|gRT1$S){x}9{ljRR6<7_tr{;!Q>QNKWle?7OcJ8oIT+89d zyaAWBf;zpO)t*H1Tt*cYI39c4!Z_JGZ8t@OnzfKpkI|7S(E zv~T=le|j4yx}}8dN{+TxtXm-)a{(FyDN=2rI2?7L>Ujr#f)GhKl{40>^GMq<$~^6a z__WG?V)$D$La{?oV*1(|bukS8QA^DdeDI=LpZZUs z6QIz_(ZVzAWY$;{^8>6`_eugJeM2-vJ8|n+)Psc6uR0`rPK{(%qhQgqPyn$hxI24Mn(1p z6Y0>u4WI;A11v5O!hgKrYYK8~0C38qF&z7^L-zpV(D1PDzgqtN7C^^o735F8=9=1D z0Hd3;=82F0XEwe*hn`&y7)`{1E%I-|WO8-g^XnFuVHWd@$Zap?PK9&D0h%gl7Hk+o6I}_B=7+j*d>ak!b z&@cY5#%@mFj+cwKkVoU-+j11)OQpPm)z@c>m41+qj23C(*Ha)0+s1i7WKBpW9#Kqpbumk*Z2wivKJL6Mg0Pd(9=d|78s} zfYp3Rib(y-TK{hnQc@iyoPF16mp=vzOjX$UmorC8S6ON#+cUFzh&<+`Zfd{5we z!UxJ-)KXF#2qcMk`<4Lzb*T0oVii{M_>G=7ep$`*e?DK4_zD;z_M2?lS1<_5=jN(m zVJ+=sk@tV`DZHN_ronrz$V(aI1Zl`oFY&k5&@7+2Rv{{0&7#xGdYR;b~2dINl&Pf|?r$UZ8xrBIYS8C;9vD zSEEpZKz}4>vPij=p3o;?1=`mi+;k-QW74Vg&#@$o_`IoD(~% z>D*vlOh{hs{`h(&lzd63igu&%5>~pBI=C&d%{Z5ki@GaHYf1iLnsqgEMpn$0x1iqM zaPlZ|pORN=gh9WqSy@}P|QCGf=(Hefmxm8!f8$Yt(>4Z2T>R|gWo3>Y}tkD4-C z%5f$dFZF~3C~g$(?XkUZR;coLGHzRA(I3+^(3hHef0sGmD>K?Y>usL+JIzK-=Ef*1 z=HNDR?A<*Yb9~wrjz2v~{vpwompy4Awh`0dkm`gsz&$4m3XXmwmh4V|1G(^hT;uiu z#IH%X@pYS?ZoJ?bHovi(Il||f&^z+-6)t$m_iZ-P(N5rdEbo*_ z2}LlcNNOaUTJ2;WJ_m+aNafWOKV_ow18C<_oDw|cv!h?r?;f8SQrbRLx|&(aJphgK zr+%ybZ$tulZ*5?a;`HK3l?Diqc8!zDScgb~u1Bmc@XF#o3_*QW6%X@8xSV+fU?zZN zn*v?B+tb~1#q}J|DyBCpi@%ck4^?Vz$=GsNj_VYxu6}SsIMq#C_iG)V0j7D6;QA7e zQ!1Mhb+0+xX_pGf5*K1fg=%<-BIK_Yr#b^n2VWQ6SQJaJKs`9c$Up_IWpF8!4pN@g*7XMTxvF`64IVyaq@dGh${tZngA91ZJ_tGb;v7u zZ!e^sN$CG#?=9n^>cY2CK^h4Ok?u}O=~O_ZJBE-Fh5=~-Nl`>Zy1S*Dp+iKvyFuw1 zqj*fi&Qd80ovnYY<6nFITp!+ubZJ2)aK zBFF^Yt9v4G9gJ={8yiZ1fnsEA2Z|L^TD+A1Yy*EEuLtR9Kb_~)ZSY(X;%?@M<4+TX zIz%x0z%-qDPl^e!h-*x~+i~>)vj<9`0slq8y9QyyR`g9}u)npuz7Reij%snyT{lc5 zTkWZ)IuD{2XDxqiBypNAKksamM4|7$kV@E{o%=$g-s^IOc}90R-`XU+M?tRWrY(^n zrRB9^^I?B!7v$2dcYnW(LhLF7TZ*lE)LAaBQsw*hL{Y34?i|w~_|C5^W?#nTR|)`D zHY#)cF{Xb$0BxoVvz7L(NenL8qw-kocQ-P-0oeEwB@-t$Z_s>G33o>&ck_=6ZWIBQ zvsFIs+SWDE#jA>K!$(DJZ4E*E-VW4#Ecc7px|k+yu;(pk9{$a@^b{57(xI zj0~wUpDuVLHJ-NJ*R8D?4%} zn+e=C6asijvKK37spNX|JW)Llkvo9ru1%dhF#)T3jcpoL&p0P#%<^5lNnR zj2?^>I`jas27&mEKE=|eavDaml<@cmONE8(){2WraT4q+vlqou@M>;vodUWTE=cV6 zMTj1A(vcZuTGk`wG?g@8v6N=)#1iV89oFLIv(|C9H%g!)k5ScBPlHtW{I=6kR+Q6H zjW>awOeF`D_6DIsJ!*hP+;eBs2lNq+H8l>zKSm4ps42v`iu*$=bgMZ*kmh zQ7tAF_3pmah7^y?O?^QNj~df`BxY~x>lf(U6W3Q zZco%Ez7;1^dtH6kfl{oV%g)^i5;atY|$r-zo0P30n&sOAQp+Z)$#E?Cx zN`FkASq0pD^0NLEe3%(-G*m@3W)K7h&6nJTCj3Ux*?=j2On@-NyaX@D%;bu#mOeb# z@jc!NIoL{q)feth3w3Z@=q;_vH|}Mk!Jts5?w<BicfJ=(g_U@kN(ldqik^k%I* z$fCtfZy>eEEhDQ*nQMEfL=b3bVejDu@qhlV8JZXYWRsa6?lv8RfBSE>K$v~mlW+~O z&oHu^>V6B7fBLQD$YHv%4P>(j1T)^i(r%t`*+!);-1z8M){hcj6puQ+*}|%y_n0oJ zJv}-OKISZ2lh;|2EL{{XRrauBNcW^!mD5QLb|)}Xx#QqgN?0z1^XqXj2o|5eAJ zxY+-4wZtq56#c1BlDfw{7z=yj@)hTurzuD?Qx)QB!^_Ih)bZbFkuXPxW2r2r$yxjs9K3`T%i%gR^{^WKqbqu%b_#kJ{ z$3VgnE^e=)A)RlnOeyfW5MGm8II_1Ma3#gF2l%31TLa!DS8npcq z>Oc2pl0#uql+PQin>T8GDtGoBXng=Lq9+zVPFg=UBrbt{1G(=^iou*c#@R50Bu)GC zDhfo4vMP$*tr8)l6GW_qjN?T%7EFM@uq5RF(LdssVvA+sl`;3wxDd;vCpsUs%gfFV z?P6>&S@<~tH@*~&1F{>V#FuxIwh%O;)Zr7~=1{#fWU##jJ?1pfTY}F)*|pkbi$yAB zMzswbX?}`ZR(LgWzqYPUQE=nslL=N23m2^Fj=< zZmDYna&7V8Q;nWfqxBb%3YX0u0nlW8Lz;BZ=X8s(E#btw`o$gElxAHb4`xM*CEMO? zR+49ehWQz)_$rUp^>V!L7ZFyYBGq^s#-Uu+n8 z4|ONngo1gpPb-Z#boFrkGl|Mtu65A%nJ#A?EblM@xb-nwGSJcw9U0N%WsHVal*Em& zA{$$<>g^r{s_E=!BQ1XKycM5%rguOUu~7?*=?iqGAO1vqwho{?D@!>TL$BBi7FW9R$om z#h4NgOZceWx_8!xz&g=|zy)=C`UikEF>;zJ>uW@@Dl%#ED%w3K_25E^32QCU`_bI%n++!yU&zaPJuvTYOx46 zxX!Sf2)HIhicNr(@DXS9_b5&Mk#O3uej^`87rE4t&c4l%hV2#Xi`waKtl_)u<|Cze z4z>lQ5xMnbFvzfE-d+FAm#wx02esHACEyJBNGMl;Q?@jCtx|GdDjfx-s5^o^+%|)M z^$D5>N4kOZ>C7vm&qkrfd5)(S&lI<`50g@gUQ&j3SX$V5l8;A}F@WuT=7o}KI^IZ% zs=Znc7%+9o>cFS~*pcW&U@`J{AB}|EL2f2^JR2IhTqEbUf z`dyC<{oPB>E2SB#2pyi!ZUzM)1qV9Ai@qK6UCt%RWTXemX6QpVIW>0%D?Nz45*4X| z6)e;9pEEh^@JU*|m6KTIR`yRbL4%n>eb@5WhR75{`H*t{v%RV0S+ z!h`=oZyyFarve6-i4U)#!2(HdjbyCQbPdaWkiGKukkS}dvE%C%luYv5QhOQ&NzQXQ*^C<|}7v7|e!~)@VEH8-iGsajGX>?YLO)5CHET<4gfS|MH?qMTl%M zCE_wG+4*Z(15tb>A?gaYz~_WnM+U{D8Yc=*1t$}U_5Fq>w79FaV}w%@M;CvX+?s|L z0N=v$y-6k!p*M7d3Jg*9@uShMQbTvz-YcXCdw3T#ap4Mnj2NflAI}5hBQK!ywRCyi zUix4D*#8G%*$s-~uJce~f9OssMy0ZJlcGV+f^uCwFP-*`H1JPRf5_Lp8_Y`1L9yG* ze;_Q{g177~lFq!3v3ZS?Sgh(lfqS%3mX{?`wb_@i4!&2UA2F}RnNCldBd?HHM+CbS zt!L7Jhf8!qV1pptK1#K|=P4c~dl$a&s7}=(-HM)K`oq(Om3c?ubOEg2(WV?ue3spn zD9_sm#}JkIpiU%z$;wfmNg|({kJ5Fzv;#Uw0aS=3V10DHCln(rp(VZPbr}6}c$MIU zk~KIAn~cMGbM46(U3C9vCVF7!0|OaW=boog9*7G!k)?ONhSYTF&2S!O51AU?5AKnZPFr)`lVJiqdWQo7i{|W2q;4PzR zNtmwswPLv91!B~Q;Q=4dG=Z7(pOWX_(gnZ2Hk}4W9UB@;jNrjLI8DVd$k^^`l!oo( zm$T8F{C>)Q=^bx^s|HxNFfa(3v}t{ILo$MqdCBDAjh7`ckU}sY%)=jHhLv}FXHvLp)xkGyL~yAh)M+tS}bJ_G^}eR=KH z|9*pU24Io4Akh?#|8Vp?X@F9{5qa|;v+suoIL2@O&+Y!t+Wo&SC^8a#eEPq&Dg6s7 z6Eky&i1+z3BcSnbvrdO6;JXe2>g$1K>H1r$Ii9p~`%BmK_lXhmTWs%>`Tvg~)R|E$ zR!^JMJGrlBnD3A^GT`Ts#AwA}=E%K>=gL@Z0gIpS92kB=*n?VKgeC!`AK zXfaU*r1l|)Nm!VH#~E!SavZcMSj~^Gx-BBGhaBs=-0`~+91lK=0}?jw6(vpfX(_70 zvZ)$pz-m)_HzhJ79YFrjiGBo_ScIz-=Ql~Uh}C&hEZsGqH;tRBx<}9`d&fTp*t7Il zZEF6;vH_PX81T@dyFSzXiFBMj@iRba*|9m$??Vi<(OrQYq2p5eSg+qL9aT#11()qp z26uif)*}EMOW<}AhJUL&g=m*hHHFHtngI_`iO3XVjPdI)0l;#lQ=p_uNU%x1cF?-$ z%yk~s5M^6z7H0^96{Vzh16lrnU&zdz644^=Wpu%mnb276uG^aibfZdx&BZ5lV*4V( zGtMnhVBl6#4knCFmXB$zF9)Fs&XDOd|y~tFnb+-geL`m z`J5{>EY{?G_i!faOZ%#qyv?_(69%*|oJI;*<;Xw0jTEhNhD*SmRZp_f?oCU}dSHh) zoC7v>ZFHIMKeqP`iFo4p`O$Hnsjp%%LB2^TKmG{W-u#1vS-M%nThrg1dchgsv+#3x z*Kn8$mu=P~&Z*NAoDaqHskL>uTX}=Yad@A77z%ZZBa6w1?DSfmP85SU<@uGVQ^cCS zxRe92A)+{7QjWWL8VD(h4)jC43&e7q>KaVmKke+WCDh1|CV!OAz^nEnn135cHq#vn z>-ZVcqpTt{UZf6rP#u~7PEy46=>`AP)R#7C5F`}Pmg#z%x1Tgh>K~cU{+~4X{ByfNpVpNh&mT{BFBWp zmDXM_P7iYt6BFY)RX3Lum&AhS=ehJ)R6$Pfq|UK98tAi>5qq4UQk$nEr52V;DLy)a`hCG6#&2fpxglV08C{n|Hsnqe=M2eKP4 z)*5b!!Qjz#hLY-gK*m)BBCE&asO>Vl+5Uulh4N-U{%UKQB&WDqU*dFA-ePx4Wpi&g zO4r!e&?hS;a?qrn4r;f^W^!|7z0!KqqyYl0)`*LVu~k=(Yov{zw$`W@R%7XmJ`&?y zyI@^mhZUhCq5NrmHBEq6lM&?hnW8U-cToz(;~^Bs3vKsFhh*qSf1pgbR&~vMUPJZm zE}4>NqX&|p=h{WkXTQk!OG$B=G%*b}9VI3U`>F$E8>omiQsDA@LGngVG)8{q7m!b5 zFFN7AMD26LC+xmlan()jqpVX6?VWn9<#TYDw;Ckr^~}I9k^iM0W2b6zq~v8tON8&K z{9@$dI&0H!0_KK8UpcC1{7rdi zaOzbP$!)6@A3kY8%_t9lmHnqX|D2ksS}BJ6sf}NHiZQ73E?9>@3#~0N?R5;ckP$7m z1q!bKZ-Ve)3(zwS$ij-n3-jh6abd`iyqbwy*}HoQ!Y?zMCp)Kxx2J7BZc-L-+ds#WBC#`tR5C{@Ld#rHD_`mTGU~-(7%1s zQhA-tV|&RAAZo6@jhpVwlq+Wvsu!!1#XKd+evXc*Q>m6^Q{{>m`l&B1L0_W!4u7h` zzyW4uESqU+_t+O~e84L!*l2+bGq?F(CQ~3hppXY;GI_2lsfFJ4#X}dZK$(aKY7tY$ zGcZ9>)GM{1lxpNUoVT`z?IMF0=q^>zp017f6Vlp(UX-~Q??UY^T!o7Z^i_G)8;vB= zCK|j2ue>+QzdDUV19KLd-HRJKQOSZ|e{F*93J3~zjhEPO4(BQ?l$*|u!})-Eyp49O z%lw@iwgkpC--zmhbCQ+OCzyJR841!qGId(NHWQ{ZwYfJW-@6?r$;$#&6V^S_hmpZk zJMC6hBt#@FsLc_0{y?7X`M85gvs-Qc0qN-=4r0Nqd?WnyB=cGgZB1CM6j-z72grf;;7 zOUjw{0;7$qNqSLZI80BcvUUyRIyoO2IcJF!FXtCD))D`Lm;gTJnXP-2KA^#-HpmkT zO*RGMmB&gCNkfdGnLq^saN0%JCnx852MN|Hk-JWV}M<$LvN;e z5q$9u_3l7L`ldEY(fc4YhRS^&FfQQl3!BCxf;2SY?54^Jw$)1yaRrnB=(nAnJfF<) z#a~V#sRgBq=PQ4UpL_LO>RYA#0yVI6jlmtSDGP6zqTq1i5^C=aV-F)y62n*S2S@sp zmM`n^VL3agq9?u3YU%*ui`~6`L4%RzdC}GKpuH%dq(X>57jwOb0k1`@w$1 zb8Pfx`r|VzBGMQ->m9@{P+rAfUebP0dLp3 z4suOWY{DI25?McMOHjg0(#eJIqB!GbDnt+vD?DM>6SnSthI{Z?mnuGFMCTBO*yNH-d7WLpB|47D&7X;48AMUvboh(eUq?2=m-885TCCR{uYoP=xr*yw-57bSU*lOG&m145M8(yoTlCk5isaWB zu5D4qLz+B zvwoG-T7N1dc*6cwZ>hoH*GW&3wfrdNp2!aDbMe<3V)Xb@{sFlYxDFN;cPdq5of*r# z-7D>8$LG@K&MwHBH1tN{sU#RQ_!3B$lJEu{!QT0chmG^~MNfAe)BE2iPvK06GiANSYtewom#)lv^U=%-IV?QbhAoIxLs%TcK--Lync z8UA9j6caT~(5gg8=jh}^$cItF!RD1%rKY0*=Q+7GbgJ`8iahcALPp;CN?zHkTSLYl zR8lBlsL2b53Zu(s*Vt2waBdx6Hg}&&+qAoIx4jp2kQ4RG9c%e2lnuoXI^LQx48$77q#@;%%>99IE*%n9rP3E2l5SPBo`l+pT0 zy#ml~fT8a1B#acvOY~fJFWq-3%ov)Ab&h*)6yQNBS)k3 zavI;X_I?Y3exUh^Ou}6hoz=-`dAaBBdek|o+jI1bz6Db!kd##f*`KJ^YRgVv$AEd( zmDJoJNzH_F^w@{o4nPY)HqLy{xxOA2R;ss(NjVxAr}z=1vJF;Wk1f04-^u8_+Rq41Q1 zCTnFa{CUpB>Djz;JzUlp$j31wHg(Nv?@{{k`~ExZrlBU=(nHMUG#OcihKnSM>SDQ< znb3-8eHUhek@1uv8rt28QZnG#ru@KLeyW+|{5x$joY53Xx)l5n>gsar8%gCz_|8!X zHIkU%7+pc%>k{-DU|+I;L`xpeiR3@I+}QU_PlkU zj$02y5eYBzVQRPZo0w7n4B`TFbNZmD@q1M$K1o@%zos#L93LHUp3--KUWu|o=D!bY z)q$ldtoIQwPs$JVB@cS-L6-wfNVNtD3JZW;q4m_1jtQV zxfn(Df8REK*E;}ua1kl~H#~ulc+MAIRzy-}u(Ezu5~GSjz7FDSLG{eh z^(0W-+*4HG9cM?uJ_nhsa3ONv4+`k#eVOH>csfOk#%fY zK4ty^OEv~kfV%4nFCI#KZSr4@KQN(rz#jej(;Zqk*mjY^psAz!W(v^QGvup|dy60G zZ?%bzWhvAFn!(l=gtLZ6Q@PN1anDMzOW=Re(%YBsF9p1Jl+47ge>z%G6x?aT2x99x z%|ZxM&P;C6?Te--*e8qGwB8Hmp=)dujlbw^V561w04!MeVnhIrWT&u0GuO0U6;wbCWaFE`U|N3LVO>y3}(N|xeJc<91Nsn)fbaNvM zY6{YN91tk`<7e-`!i*7!s7rt2`YiZAn(&wbX^nw`fZF6Y+qSfi<>Kn9r0Wiij*V7u zbR1q5pXSkk+x8pO9qyrLvrxtP!rRF$PWm=SMx(+%52&!ReN@u7+2qk!4mZMfaXVI^ zONb`84khX^uTx1qqGOR#l|f-op}XDjP~?|xB*mGab2rp0({U!fAaJHO7bB@}j$o?`=+rS#u!D1~V4(Ym^7OHK37+VdAX=joRV+>C9#> z$-)Ts9#}ebMqq=Oi@AuFSZ^2f-QzfKfgelS=wLBCP%;5mH6EkmK41XEUsfk83Y`%; z)VBv8npt2CmeU~HF38C(Fe(hF|1f|@3uRKlU4tJ16e^_y4kNmi1@!M9&~XX48Jdp+y@9iZ+&ZrdTlAjBu zjc0GB(>=V7x~&Dgy?uV@Pgi*)8F^2mI$b>q$u4e^T^Qn>T~8~y(8ztBN;7HXnepcI zNYlbdHbrUi;4G4COh>nOt$23jZJ4g2xp~vol9z7pQGV2FK8bO}szW1vhe1i<(VIAs z%jf4WDb|yq8+%nHDA@RDo;Z=+(K}O>y7dBT4^4nR-)wS|L6Ov-fT%^=mtT|!Pv`|Q z$kWnES2Khk>h`i-Q1X4#CpY5fX?onFO#GiVs&*+UE3D?xJRHx-?PXx!Fhfgdo6RTf zH+Qxo<*U@MTie5W$GW3draG`!$#IZx)(3r8$$rI|y#72krlkm!E+U7((u%4~4UtA`e;w*;DY^2frB;Rt?QwyttLY0Dg zXFdC8leiovUUCol?s@Frw}F5s#pYND1%@6rdMvWDvBlzY%079Lprx(ztcZunwYr+u zwMQ<0=uT%q#<~ktN9mr2R1jl_MfWf^Na~lWWQ%4EY=#lK;F1y@7gI0Re6seeTx{l? zjlCDtdK3n~B;k^r0GoM$N5!tMCQrNUacVgn9-Q5CuUrVG^fIvcSu@{${jBWs=t0gU zK3W9?Ry-%D+lEb4P*pO8|F8sD)>k=?5d}vd%KSo|?QJ0>4I-rD{h%-6AHEtM_LH4T zp5L6V@IuZ=9uPf~HuEofy$#a;b<*HeW31f*D&0{Xd3x1zDiLY2aECS%+Wz5Z0W410w+8RsxK6|3^hM=NOkNL=I$ahEb@Ssq-Ju6p zmFhzmny411XrR~oOm#ngI9vA596NP_THHgALKp3S;SlUZZ?1rTRJ^(o6JGzM*`XsY z@^g$3B+PkTI#Cp*Ta9j75!>5iEsj00{i+k@1M?(_VR4<5qVB=sJ0E@X1T`eb z4+I2YuIr06-g$PDgN^;M$|;f#HGRnvPo6#dxT@eS4*t$BeDFcIqKwBf# z;iy6MeVh=tw-?pJ4^eeOBBh*VKVgqWj#EM+N231md1ScM^o`j-^|)S@$4qiAwZj=& zj-j8S(C@x$6UC-!qpTE=3wq(o^X>MTxr!A5LoS6o-U}LBKODnvFO@lQn-J#tp zS;(bNP1@U_XWy(_jt!>z$GJpKInGm60tfCzethAWKgf~>BgKn$OmoJq?)4NVyCmy2 zR{eA;Hs&5swTN5_X#kpE&~h)P+Jp}L0xVosOUPUJwWrMi1t;K_z8n|IK_ph=8ngi-dkv|yYjy(ZV7W_OAa zb6&_W2y42==O>eR$t)$GE$J9xj``=KG8R#X_yCm4%I9(NS<}q}figH0+hDew@|vDv zIf2B9WOfR`9bWz-|LoQ?$LH}UjOB2P@}Ty;K%K5|ZQvLl4;6$=Gr@fJ%Q-}E9;Uo} zQ~9|qZHtL~Haw}*g;lFT#P_0GY5oe?km@LbB(C>CilnJhfX~q;iG9LoIR*if@T?HNB*)TNzOV%_nc1-@uGUI_k(PO!h7sZ-SKy@<+P*x zDYN9`utY}p)y38Rh1&jHhg0QGdr1vLX;Nb*M;@ea`>89IpAcJ4w-02h$eqh`sSS-`hma|8;sRGjnxxikfp1M&5MJlFh09hZ zqFEjW@X@ThsEDhL0eJ~PutA($F1%)1YqZ0UdKXYE!27e-2}$nuv+I-&rN!zFY3JUZ z64YB>HH$bx&$eFC3sKWTEInR=!BI_|#r6ah$_6JoQcmlmgOEsUwvIz7gY4{C5$P~uw%cpus;Ejzh5c7 zi8@a>ohkXI!~v9^0>`TEHl3!9ieua?mYcu7NZo}}eIOu>S2F7~q}s6ppX|?G9XuWr z=Dmy7QkB_QYNY!iawkn8TA0NP7o}EJ1{YrukzMi!Mgp(`0L=MPg@7{sogzAapIrgjYw1tXca@n1ySWnlAS{SyKfh!{u)}g0rc0^$8_*R)tA8;;yb; zD>A44#TDjB;1Cz%E$3&^82hm9wMtcgFpdZJUh>fCU|p$&XIY;)(|GVMHWr{@8pqC z0%`oI0SfKkiCO^5Vd40{p1OR7^ZOS(_xz((j8#<4slK;SMCu|7!W$iM>wDwohZAs+ zP)@i3s>zpH0%0%#|3%6Q2u&&|(nWkKd-^IQRe^~y;yEhx&I*P9BVc_W-gQyA?PZM5 zfrR~lAV0dw-3`D$VTJ?(dW;{e>>-;5g{3D0TtH)aOEm9cqKq+&dnSI2YC#Si5x3*L zPf|uJ4DM0Ff+9NTdeQcrwo+JxJ)W)S&9$u5TKy3z%xU9=ePcEO!t?`@&FhTh$yciJX9=!fo1>HWxvtN>iEI=q*O?*SZhzO7H)f zE`|l>5Pts;#1Yj17j*f5NS^=0ko|wckbRTYdhj2zlIOXIK zSE`~`8YV%e!C^G{A6rAmxj*!M{GeB$&_Y#Jw?(!+R^vRWE@Y)X-}&aRDHNTUC+%YrQG}>Z{^^JCFYAe;yH! zV1+~ewm5H{*BmH2=2MoIaW|22)KWl{yYu%dLlhL(Uuoh7%emQi?AK)?|dtwrV6 zJ9nr|6y>C~TFj?O?g4v;=@?<%-?HfMa_N~z!&wn#1=@@U(hB&6p^x!M{yXB?I)(wv|tbVE@?gAu3P z0M*+3v5V%PRmB(cr%TDE7>xg7*MtE)Dqmhl2ulSNq4{TE82*0HtwFs9j7=K(Hw_M` znSG6VH%<|qGAXrocn(UNSPHC7=FVIrCnJ69>*k&OU(gD$m)^>z41=liA#&3r zeV;ksTBCKGG2*zrpN6@Y&JptLImMntlMUQnNvJq=3bRVw4+l3r@tzu^JLv2NshRyE4_lY;RtyK20_D`u7>T@j2xtBl!P%|O7(mP(Cjp;phw#|y1 zOph0%oGL)WhW3ShKOQK2}@js(FQp zG!Xh@5uu@dRR6s<|MsFt%4lex`h`1B(lEX}hRqvsv79q0U_4WfQ2l3lzW5EuV!Rya zcC$wb(1QcfhkP%MzY&QFl*V%meNm6MQc{4PBWtKz{M)5~W(rvvivp7%;M$P>^pE=z z-if^VlonfY&5=0t#YDidD6n03q@m^gr|Sj{&|DQ$`U~U1?Y0Y88sO4a766KTq7(do z@VluNDR=jhsx_bLv((TUZoEfMTz(^afky)4XYC zYhckH&Q^**PTDsBMi&%?ZxuXa{n!a=i)*RVu!lFmIq)Pd0<(`qv&v&)V|&!)2M~ba zU~}DKXdI%yOc)2fYONEE%8V10##eTH@UmH)uB~_%wQ9k zl@qUPXt@~~J3QZsuVFz5Z6KMY-c~mQj5jfp_)6uQu#}7L3k}>Z^38)9M8&z)@rJ<1)gQchC{0Q{Wvr|uE$4GFwwyaF; zFn_(LtI!*2IB4Ffm*}`lT6Q&czH^r1b<(vb-p|`yE=|@s-ry3|9WA<`V%}*$I)8e3 z0M7i;CAZ{vFrYdX`*feoVK7!<7PCWDuMjrUo|+1y^gP)+ce zJaE{YngD9Ne{OACTz&>s0EB4(O5WF&f48is%1h>yZil7tlPYj4Qg2v4J|w%1U^?|%lGJDLJ$R`{|0YHS-{;^wZvOS98%TR2{t5QnBj(gsMQA9F z)BC$tLJ4Obs}5aI!vt8u(GtbyT^ulp_wTX&&ar_n|+tGtr+u!{sv!k%~u zg^b1)ALMnWI$5@yd&CGuqV5fiRPKFr?ym5d$wfEIbEjh= z-VDcNBc}!T)hn2fJiv!08G8Ufy&4=JD>qy0bPmmz{v64Yx}`mF9|g+b z`};pN)YZA1tyJ92;b~)Nbpj`YBFA#)h#=9=lEnsR;|!#bV_dPLF2aMZsKK7dC)le_ zIQIl!%6guY!)gm*l~&JV`VFDI-gx44?2B-{&n6XmD#o5gdPDn1*u9{ibEueJhWu(T zBc}QCY~D7`jq6)m=PC7iN)|!0YI1vydG#E=f5ZG~*&LfuU*B__E_OKLB;J{&p$X!& zw)H~Rq7EsY9?v`oX<=R${&nY=6quGGZImThv+ky*Rzl<{2%m9`D z;~DEMpyF*;pTJ{|sVx1wC|-fy^a>bWIGPgw><~q*ksb2gs_=Qvik;dl(9f$hU#}LG zlC^>2ctH z`TA^duq%mO@|8GpY146uu`pb%WPH%~;4OKTe5R3v{xOM=Q71C4p-opnc%`ajhqt}% z`r`FIArOI+tmTj8Fy45Nq`y=S@ZIOjp}M`8WGGXwD8Z(k#~&MUM4e<^jtb!U%v9XI z$JelKEyxFE0!1PIZsa?&b{b{J47J~1FE-yGpEQ-VuDR^Cojv!Gt?>s@pHnXn`Ch2jq00qpuMwM|RFCIF`^#ZvUdK0CXpenk zP3BM2(U7YTMyVI+){{L7uuX5C6m$BO(ewtOY%B9n_d-|scF3h=roizBze8(&Ql_Y% zlZ6b)5BWehy9H2AY}@v?C;T`ZaGTIcAR(&TqN&2Zbk~d!ylcjOpvNs|6!buQi%mM@ z_!#U^91UtXt$pedm1|yz!8!KR4wZJcXc-0(Wau1G%#A##KA{2LVQC);3CZ@AKhxl9t0pZEzEw?9q)>>< zGBc`c#O%sE0i-YP$b0dm;k1MC!b8JBZGtOBM17Kp zHg0p=r=@>nb7LcN-Plt(2(P$L#3BOiLFOTaUGT`^z{Tei1G|`0$qOxsGm9AV8*~4! zVGhm41HwPGNam*I{B}j%yV=Y17*xtj|mJvPo-Gh4*?pXQ3)l>Kj6VraRvxD$!hl_*l|6uM`yuw?Z}>kq2M&=x01> zi*TA=w%tEibjcr~Bty|t{YuWh7#C+e8r=lB!*HLdB@)$^!4vS^qy3+~E3rAVb7H5GcW_c+A$n=`#R(q2S%l@)s2 z&p^tdUcM~wiu9fUk|d}plJXSv8vgaGv1bpW(Zww>wNl=?<+{Df?FsYC3QL5ME!I?g z7U;tp+o*nDBoM8;k&K)~V+X!6^!pV&U_DhJ`@vQK$8bDPnp#kCa=>u}Q^}|uPM)$4 z4&4X5k*#O4Kj-Rdw(zM8&%3@~&3@Y~ZPACtl2GcJz{mz_G9!*%rts+vQ@Rdn6}=wV z?f8HVleVR&irDG(n{!nXSw>x6M}y`T_jj2{@T;m_YY(SR?H)$;=a+T&`6Nwdjbv`l zI0}e7FOWVolMUUWXmAtS4BRH=+R)EBuUOiUGWJ;~Z7kJKIoUe5+Y5-H|KC-30lvXU zx#t{K@`KM%$G1|2nY%QKol9h}X^<_tp-Q5x^F6hG7CcJZq^qg^#~?a&X{6h(wq6cl zs_H0aOI}*z*fCae{!RcjztBfrrzD0ENQ{nG*RV6jdn;;+}BuLZyjCMid3|u?72y69yK0s%eHnc(1^?V zN9gea+Pf{slD=^d)ZVJNAA6Eliax)#z2e?D$9GGxWokF7C+gzaj|=GTn23h z62&L%UCyfk7=o!5g$vAvywMmdY zY2p!VNZa*Z0OWrDq$F-h8#FQ&t5!|yW4AHns%x}EcJ|ZN$thzYc}E(=*rlUf!G0%ZD)_qROo5L$`!0WsaE`C#ra?-q!+^Wwt>vIGW9akdC9}P*RNe z67yHPWm}sER{0TuUn9@D3-#83`mfOu&>j;fNW!O7QW{A4lUe}aVj5Ii_B%3{X{e=F zbj$|jr|LG5$bP2NnS+!(4p9}KgKP3^(czyZiMrZ4C#toS_MUFO{!N~Xs7X~j#ismc z4Q`qO%d@@rI>(U`F8=xR<34?_3=M^ z1%P;OfVT;H!vYPptp+1@vnHI&rmNd;J3ofl+-xbi=eLObz%K(9$dc zjQpuj66b&vt!NNK{PsqVwlIO(%ypSFgE!M64sOEGA@NyV8<| zJXPkZAv<=qo2psmCC|ug*)A7@j^B~c7@Q;G4C&DcG_))NPbB^sb~y5cRFxl1Wya&P z>v*ERW0xH-ZAsnGnZ5(uXzqBNHUBF-c#Q5%+hDt@nOzuz!b3yffq&NhK7QHz7se=P zq!T5->K#6r#x++WCw?kDYjzQ*J4umFn+e?2`fdjj8e`FUoLPm=Ncsh8{K_<8;0&t@-GhSJbQaedMTSLqeH)@NuP{#m-$NTp^QCADCi z##3|SvbMOJrh7P9%x#_+2BP&A>#0p6C5If}CnsNqtBp`Q>!Hg8?LjeT7anxbw6S|F zjMc?un28ZG+`Ahr`&Wu(iM#ArJdxTnay?iUsd=A1mdXTi|2PwJMR^Eo^Z)=|9v zn=eb>L}S;l5JA8&PZ}Wc|2I(t*g`$2p^4$mSUyPq%PTKVp9Xb3C9fdz7Z&0ez}f1C z8EBN%+Qb?l^)<>p?{CgjK&#*t$JKB|&F3xKY+8i6WA##*6T&66v87^hO!eBMa#{Z5 zVI%QY=x70ZZ_ZQdN1*8soR1MIlh6M9XaU5tKh;Y)gBu!H6N@b@+C#41V^6Em&o&M# zolt~y7`-wTQe|fy=>NYaJLhux!~2VYt7HwNPR)U@3FcVQaMpi=qVu;6mh9j5ADj)m zEUS?9R&~IlVu4qt78~MNe#=FJZf9ubyY{02NhzNLakoz@Tg`ldv(gK`u44((;Uy< z$y%*_XRpu;(-R?_-?GytuXh)P}c=TJQwlya?%~(#ROI%u! z(lc2`3^=@e_>k8kcnthtd9=$ZFgbRrPtJ;opC&zO{H=Lo3-dC$mQ{x&^F&s?T4DfG zdH}e5pYxQN|G~ToX@~o7S?yL?S1k5LET{eZktKGkfbL#=>g-8)8Z6+r;quh8x3K)N z3AaSV5e=EIuckIBfHn`nLc}4#g=yQWiMBTmsUMir^5LqcD$=mxg9*R@F$M=BbD zn?;&X)$wU0d^hRfo#m16p8dUbf|HDZ7jTrmWmA+U@RSwk{OXp5wazAc*91KazjEr` zy1swR$EQy_ZF2WK@Yqu(@V*0ZLQ-gAn(jMKQ+?W%lfW_Fzf0#Y_-+qex&qpza#1v4 zM_|e8d6STw@&LF6;KAubez0f)nz0BdBye}v@+YwH0;aMbz}n)+rVWTeR))qGpbBLB zJ5A6*36M+xJYNMEc>8paD;kAeK%t9ktG!?a8BlSNZ zv^45|aO)hnm;ozv62d|fnk=?P#r#Dzucl$XlHuixW^ zCQb_WVG-Ey|K9cMOMd+T7gFynZt@Zu-Zsq0T(H=2R=0gsyKiKF%P6c|K(4ZmRrsf RRWoA%0#8>zmvv4FO#pbWQDguB literal 0 HcmV?d00001 diff --git a/promise/README.md b/promise/README.md index 76b67e2fb..9c919862a 100644 --- a/promise/README.md +++ b/promise/README.md @@ -37,6 +37,10 @@ Wikipedia says > In computer science, future, promise, delay, and deferred refer to constructs used for synchronizing program execution in some concurrent programming languages. They describe an object that acts as a proxy for a result that is initially unknown, usually because the computation of its value is not yet complete. +Sequence diagram + +![Promise sequence diagram](./etc/promise-sequence-diagram.png) + ## Programmatic Example of Promise Pattern in Java The Promise design pattern is a software design pattern that's often used in concurrent programming to handle asynchronous operations. It represents a proxy for a value not necessarily known when the promise is created. It allows you to associate handlers with an asynchronous action's eventual success value or failure reason. diff --git a/promise/etc/promise-sequence-diagram.png b/promise/etc/promise-sequence-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..9209fea114415ce0842292e8ccbac18806a8b45e GIT binary patch literal 62770 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 Ix!@4