From f189be1833079ec27ef8d4c77da260dd42bda4b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Musil?= Date: Mon, 4 Jan 2021 15:51:06 +0100 Subject: [PATCH] Changed ClassDiagram --- EAR diagrams/FoodChain.eap | Bin 1787904 -> 1820672 bytes .../cvut/fel/sit/omo/foodchain/FoodChain.java | 29 ++++++++++++++++++ .../sit/omo/foodchain/util/ReportLogger.java | 7 +++++ .../fel/sit/omo/foodchain/util/Singleton.java | 2 +- 4 files changed, 37 insertions(+), 1 deletion(-) diff --git a/EAR diagrams/FoodChain.eap b/EAR diagrams/FoodChain.eap index 961ec32ca4a9a79f366252f33c87623db7d09c66..c99f1eefc054343538e650c725ac543f1340786f 100644 GIT binary patch delta 64683 zcmd?S33yw@)iqHkcSlFn+ig<0}*)g4+9e^ z=n)_iAwLJAB;-*bDncFuq9$Yq5Dg)DAX-9p0?`rj3n080zXZaI@i-7(j3#bT2*Y=c7Rt)U!j1Tu~V zJH~r9Cq{ULk_!n_92JeJo^yCZk~OJVK>h{#IT!ZA7a?e zvkx)s=CuGZ?B=zALht4>N1=CfnLn-&Hcz75pkTXAJozVqap^yW3{InayAU#hkljG4 z2-yRqnvlIfMiR0Q$S6Xd1~QtE{XoVLasbF!LJk5k6Y^^y=MeH6AY2%~1u`zTDW_08 z18h9qdltw9LY@OsOUUnlOeEwG5T5JjflQ{57Zj4fTgr<-1PXZx2yZAa1K|zj6(GE! zyb6Rjl-Gc8NxuPv1UyAi#J&n)AW(+<^G*7U`&dGrLU*|N{X1~&6HDZrYB z>4&pjtHrVO^v=7{x>L>ij^ie-_CCD*Gf6niu4vMn$8J9%E)>pTcewNwH~&dgKBknu zJfQ!(_(>sA1uHERuVs&XAjNsrBNHDh1cji1Fs1WV01LGe!UO^$0VM$y0W|>)0ZyWm z6oRNA0AfJ|u^>tWz#)j>5YPnzfI|>DaS1RDacGDmry&+Sp?Z!Hv!0ms#H=S~Ju&N% zoKQ)8l|)=g#Fa!`NyL>zTuH>0oQ_heq?F7=Y$jqe5u1tFOvGj)HfwSOiDdyry@03} z5cLA0UO?0fh-F#ngbeX4$;h25D*9u^;}R(bBTB^(aj~gxkNXQ=;jgKJffRN zbn}RA9z{Bji02XUJWi|wc0LiGPsHcvi28h`3i;O%(5jI`1p%t0^ECvt1atuN6$I$U ze35`eKuJJFKuv%+<`c&PB3?km3y63D5icO(1w_1nh!t)Oyo88z zONhFisN0FKoe0~Bu$>6oiLit2c2Ha$MAAVd9YoSWBpsZD;_9HNI*Fu{NIHq6lSn#= zq?6wzF?LaWT@+uJm?KEkT}0hQ)Llf~MGwUE01*d>I6%Y!jTTbX0W4Bz73WEd1VTju5&; z7irm#pOyYW1?u2kG9kQ6CWLp%gzzqz5Z)yd!n0}j8*JFRJ)A#wOu14Rc9lZ7 zgukc>DQBM@SB7$2Yx*9pxz=|!c!%LrwZgMu80uA6%j&sKHgPG)m#|=2BLWQ zF1J#p6ox8Nj~!FBO3bHJl~0^N5=Lj-TU$i9!h(>^JY_-zcAZjn3-hW}Q>c@d)g1|n z1Fu6ucpVbL>yQxMItbxKBZL=?5MDGwxQGeiA|`}OmJqIE5yFK=2p5`^1IDFBL0tTV zaPbquH7Y{5MnwqMs0iU26(L-sB7|#Hgm8_D5Ux=XQX>mPB#ny1Q&6ZRMNX78Dhet{ zte{a*$fP3mWEm-FRCu|`8Wkb@*&u{J8-(y@gAo2~5K@qO}g=Ts>v6C@EUj#2(R{+fJ~%YF9YG#{t6IY?W7y?M~8G{-hsUigjYMM z#=P3!1i~xtEg-zw-v+`ZjYqwpNEb21S0F`2n)K7WvP`9&qqwy0NK4kRA7)ezIiQQ}nlDz67HlT9c`n=ail}Bk&Z=DOnpee% zJC>;o)vEgu)f;U1CY5>Q8--ZSh2LT-Z?L9iQe{56N%hPy_Ot6%Q@3u{lDgf@Zo6L9 z!WQ*vv^O4dS8v{;+Ob7#IIKDZ{&(5%UX5AzZXv37S<}&BRYY1nZXm39ukb4tuk+vT z)x0%KY}&f@4mZ0kr&+)zs>BgHHff$1r{0J^(@pt3cWB-fgm2{Uyi1c%{tFczaej

G>0Md8>epqvJvvH+;-0W{MAv{q=`3LAi62M`?qk`qALfV`Es5LHRejcZjS zfZ79~IS)WP1G+3`OEAco1t5M6K>9j>vI#)t1yDBwXj%ZYt)%n%Nat+>5N88G#fSDj z7eF-+Kz%-dWL`FF2B3{YNmnEQgd~8N0+4zDlxYCfQUG-ZK$8W~E(6dlS3rdqRsf0@ z07xqVl&b(#YXCI80NM+okSqECgtY+TIsj=sfN}$XY9oNUA3$>vfc6sT&%&hu;$;BR zpkSptmc&0U&%6w-<<;0ihO0NQJzZ7aSD zAY2C^UJoE`0Z?uQP~8Baz7at4Jpe6(+O4=1IoEw3nD_$#>4yNy+W=Iz1E}wS2CKLW zK)f3&{6gu+K$Z6ZsO|+&-v^+*A3*m2^ioVYLCO6ofcPMQ^fLhELjbDn0P2SUG>-si ze-70Xvq{ie9|I6~07!WN zToiho$^xAemG%lnqD zTDp4OKaFNu%|ftJge`qblk32h>|3`yv%F_{a%IiB<*VdEBzt>TF7HXMTfSy>AwO%+ zt698e&C1r~x?~E>L-LqwTeBvOj4of@vVQHlHLGemmaopPT)J+}>YC-NdROx742?-H z+0e+Q)wCsh)~)HgXhCvyGP|^|5YPNISzMf4?lVX?_ist>-xpr)-;&HvE>#jR&I3z7mNGWq}TVX8@TT1S-Lvew|vb& zKwGkJ)zZGfwmPlG%X2=hrocKRtp(F++6No{w3^m6GHu7YrM=T?W-nd6v=8mPz$XWG zEM1)*!XpQEF7LTuX&>8qsn(V^U#@+BNzE*wNuf{}6ameH>JzG%>OrMW8I*#19}^8? zT!`<^k3Xb6{FGt%z(nj#BJ=iYOlTGACl0usIY9rMf9B znTZULW1{Bx7TuHekyJPw>`t0f$yn4JPDK3XL_8cfr!$dkI-d1M1F_@)k6)SJu~j!( zhz7g6!>KgVNTdTuC=xKox)VurAel|1qA7no8O;nZ1=N9Hw7Wafoi_VZ!I(Lm$|TIO zKs;{ljwib_!C)$q^beAEXxX6~bk_Rr?o>1zPMWjX7?Q{)V&-HdnK6e_*;qQ0NXHT3 zKoWjU{=^NsSA_f>513S9{_jjTtj_RrfhM}I#;o=->16p%U}OHMwu`xXHf6W&I!hwZ zos7o1&A}w(8_t9>=43X7$(qw~w9arm9!2glakD=fO@@+*Kq?kV52O)LC4#AFDC|$0Lw;mD918`^ zNk27(cr=_$1+%#4A0(F&p-3j442R9B6o~KuB+SVu7(=O0G7b<(mHJZy^oum?wj{u0dpi4@uNLQ!imfvQcCv@Z7)DKSc>U) z&PH30#nbF z|C!{UEc2Vwua(ui`wI@b2}D$J6q;(S+Q3R>aNjw{oc9rz0LD| za@giy>*lcKV+>V-0b`wBpr5aZ$Si*{qH?3gD4^~fRKYCqPKczbsPKVGlb|(`da~RLFIgt$~(DQ`? zQGX(wj6~326;e{oo_SsO!c>1Eo=U}2aXiE52EuqW%?W=H-CQUW2>ZJO{y+*3kwWSh z^S8gDYZvPLk#IbdL9dtvc{<}qQ;ncI@%xdpa4_Rfp@&ysxX3@Q}Hk_hLY`iOZQS;EFOyBiHoPwC_ozBOEMD0 z^O}wZ6NyaB9|@sDQ%ET(f5Y3li-jBQneoGvLX$)Sd=H)NdmiQ}Du0nH&(Bi5)*|f6i zIl;44GDyDw?OACUG>T@&no6eeSL{~ZBsE6=O1y3tdP}BKSU-O25!+em9vJ8nFBA`o zXFlQ26yo``@LSU?$2+g^d&dpBNimvy$<+tWN>!nOGSQxmo`Buqw`CGee< zu0o@B@Ig_ba?DczufLIS%w++OavXCiz^|3VD+%vyk<0e|!tcoMasGwG|4AY2nOjX$ z*|D8fbxN8qVGABGjmhuymCO?jt-RKIF(vpSYQ52TgjAkMY~I|GP~BPSJ;*hwJpPWe zQgkq)KT914@pAR1i!_^w?ECXdrk|a9gQ_}9%?5+{vruYCr$M%%&eWZaK7)J<464i| z_Q|}GSI$92^W!U6Z%x@m zn3mZE+e$iwfuD*y_!WM>R!+_#iretL7~fYEiY6z!qSaWznp%y+G)|A#+1k>`{@P?T zO|v=ew(~3wmuH5}?P-v))WVUa(i$Gedhjp7cRu16$&yv33T=VCm7RBIiBm;4rt!!J zZsf1Kvt(U^VGVEn%aD`r4H;qy${W4OPIm0Ik}dV2XdscM_j4eE0aga;E|k5DIT1)k zyP?sdL&dw1=6@jY4uLI9>L=wNd>y5%kH+vxCCtGfMoSnq(D(#HuW&f!Pp2~3j6XT3 znfkT)6K|9>h-_6_Kas_LS*6SGdb^}~l%`prsidzl-LaB}*$?b1el{yp%G5sjQ=_ce zN1u13clH)PKa|2!c<%^l#NL<08^jy-6hDhG!aT^v-6yVP$Bvb3Vr6>cVz#|r_bayT zCe4BT^;2~oft9T_UQTy@Nq3gXw-2v3ZlW**O#kLjxQ4PBq^D}G*3{!IC^ zeP{lxRIc1t{7hB;N&3^?`=tB!W~9vC;-^-s-TS_Hx0n)Z#CIr$b^(N2lnz+3#-9pebdRHL?;M`6eLR*)79t~ zjXk{Y^v^KmZs~|PQfy=2Ii#7uZmH2vs_Y2PvN)YHIzqD=XZV7%95Z~t*mHlc@Ufbg z%Z;q}eB=ZGwf(%$};ND|$5C4jsUCDlQjn0~% zGEx8fctaC!>o>sybhU8uaCbQAVy*1h9DO1ehT;fCE^GEjNLzw_3uQ2cfj@@e*>E-( zfQCEJ;JdWl{%ChL91LJk+l^Kp$CHu_#S-T3bUYMHCIi5S%npd%{tVRQbhkMfh(MtU zCNVD%gdUv8_%UA)4`qh=qfo{Q&r_$41?TFoi-zKHj8fy~AaqPHh4Bogq0>Tb4MWet zWW>2{XpLX{cBjaVGtNjM*RaCoulZ#G>&bqf{~fUvu^IgnEA>k&UKk zD4c}W7Yqh5VFA4i{9Uw>UaWD@ivBauJ`gGtiLlThEFoh8yV zo+QP6pe$V)_W1ewC)sx&uc~Kvv>UF=U$#*H&EbX-5=}z9h+27)>&4fwpEXs@+q%7y z9ZTo~Q_iaUp`Is?o@a>wRsJkG9lWBn4E@cd{Jxa_MS(h$!&wnd+Zep2D z`bjys*3ncvy57%EoKV8DxCh@WkDoX(17T0$+uAj^b(YuWY-?!dw7){wnVF`3NrAcvWm$3ncJ<2w`FouZD0s5JE>84Vk;M znBT>8X9{y6q_B1gY|0YDB=)sy^=fwR5<@Li(D4F0)NYt`@6PY)#r%8M>ubui&x-UO z|E7YK9n{>D`$YB0)BoAe@A1?q#hi+I3d~<{Zxf}IQ}b&!{SN()^S{4K|5t(i=C>NC zo(_l2<7{^358tK#+Zn&1L3Z}YgUNsQM>l1Hme+1TucqEw( zrD#@*ycQS!xoYavK(ZTCOW7o*r!zD$6G@wscxTciSGF6o>Y;9WrGtJ1tNEq=K34N# z)wyi!`#9+fg9e2Yt!)s}HG#Ep(LXQ0@)JQnq4NF1-tt*tt!mJw(1S46R6oi{-G+392 z24G8q4F!f2G+WHCkzECuPUJ3Oj{2#tx?xX1Vt63^=}bBq zP6pC3`3WpziN92Jc4kt6WY7;m;aNo*L1?r|G6ls#k#sB=h3PHEo5Cd(cx1vb^~KH5 z7LofnW@D29Sb-9efIl9ADJ+_%X+pTS$|g zwlunZEwJyn(w64d7Kg>v>S}ASTdj@;cIbKSB=+2|bydP4#62NiC=OJtj*ZJ#txT?7 zx|VF&DAl^Y<*D^B)|2UD^n|vSwq{SG)#7zK?G~ro?zA*|+ZrwS+I+TFhtub5<|P@7 zdmPQ`Q?_f?#n<$bMI3$r^@~y~U>EOMx^}G`^Qc;Do72_U+}LRGwAgGGr!{4>cwEj_ zON-C$bF_GyU3R-ij+$FuDBI>JqNTsNtu=EO*3{XpjZ-BR)6Q)cRU%&2}q< zZ*8_A%XUu^)!=HeG&)?Zjdr)E&Dz+&<1M?XZ+`Lb{CTrH4))v8hS8%Vh#xAU;#ARi z=g*fDu(_Q+uhrRLv9~ldk~Pg^X>4$LELNAh!RK+I&ReW<0ynIgTl||d`#hIbHb0g5 zl*;i?T@@>q_N{Of>iYX(niT=<_921$8aI_EB0Sdf{s*@_7=uf=U` zKq?J($js+N)mU47t zt`~nV*addkAM_ofY&oPc1pHM`eN--*-9C5z{6R}-EglD_8)FQM!)=2l)Z@-rnr&@v zi`QkddR*RCkGs{!>#qFNeEo;gsXjHGp*=v2SE(F}k&;4Lv2H0nLUMzdwXS*5+@Ym% zd#w&zL!-~q+(1o!sUv0awmLl)m$%Jsx7l0U>^9qwM~Qlui7OB-24afVS&kasu~f(% zT1!`FymL`}@my43huk{c_C`FS%?^vT#n%9#HCQdpn2WVId~MAw%}$%$)#m2WSO4&$ zj^bbYlGdj4h7`uU9Enk@Ke;zct?ybGX!kCbQ);j_$E#sn~}29>p;q$w8dk0+AMB&gR8~sYi@3F7gGN5m676KcX+|vmLVxm$Rbe;4F*!? zkN2#ab@E$c(ZC}!!O_s>aapbOFgK#}voCG1VD#IJKBU!aZE-q$jm>0{pCOK>es6RS zqNK`_osS0JKHilpWx-i75z^pjuv;80c2rSgW7^W#YIj%~TUy&%Y>rm+r(U^=PVJKl z*{5X2q>uzvQL#fRbl$xS*Q{PDr{naxtyWiKgT?JZdq4%b(66E^bop!!Z;Qw2cG~35 zmHp@it^BSLk}UqFzOrQ2I@#F{j!)#2Q0wx#8*N@2D%Wjq#!IrtftO61$6`b2JxzKa=tbrS3&$s(WpC!)X6>2Vky7a9lW<5y@g*kVwpUd32#QS#E&p#KRe-$Z zMMW7tViUR^0T(qC(gZSi#N(gZAo`>-1ORPP;J*wAv{nRw9uN@_H75thjaQuLW5@rb zPmBoQ1q$a}0w^k+a|x(e@E6r9suLF{R;)@SS3xC#i*hcR*gzOeW4nJ*J=&OA-`khY z6au@{?9)H%zdi!@vFt6iJki^mSyi~#DKX23dTVK4azkeQ#Tl4PU~FVv2vP-r2iUk@ zR?lR={7}DSL|^ZQ{xzAk>-*CEsf`;pX4c|9oLV;hvie-+{7AoOX1Xtt+PDH_g?mCS z)4OrS#>-OcGl`9Th#DUE2)v+v#FGga#Zd4`qCPW<&p~ zjTE9fDI~Khvj(!D8%nydaYbgsX*m{gXTye~@TA<@zP?q&p=C2a(I-a&#WKV~c?Lv> zl?*$M>ctxE-3pp7Ml&rbGmOje28f2GrRLbAptgp_h5-3rNlj9u(83LB)@YUdKCl{U zvjAw6T7VjgqR?uIlNvQ{AzbAD;8XHeE^GoN_*{kPn?Ma>aPtW0@laAq#9W{SDnCSm zqUlC&wwfI)Gu+LV4L6jD0ZsmU!wp-6QOW)ltI}N3OVl}8ZYz41k!;xZC#&bMbcJD* zXI0;_Wpevf7HBqRE*;Wh;GHhBo)WBOH&hrVOkAH?*S}(Yv6`^*bA4tbp0JZ2B=++P z!zA>Lm{((mDhywPlKG&ccQu;0;D*SQf>i^d<3#63QtcEb|3@?4apwIg7)_3AnC(C*8&B^@*(FPPSxeTZ$1O9>w7M(xDU$7RV z0ju4Ow>$=rc!l;fKuh*H-57(kxms;)u(~)43Qf*p^X-k(#ddmO0*zf*;*) zMj5V^ys}r_Xtr*&;Tr8p17|jFjNw{ku|eG<6&)Day0M1X&97;-d2Nm1xUuU=ZjG9( z*rT~jbJ>ALP2+*%>c`ZN?eA6F)qht#q*|exs5-3tfzpo^6fa8GVd2!=y(fPvr8mSk z_WVe^Ky-^cg>MLpg-RB%8XU5XY8OOACXT;CSP!8-eg*S@2Vsxn%Pkc?dn07sY@acG zz!3ERhG+KBgt#G#;w59$@6-y#g%}IGhJ4LI*y(v0Y6D}NtcIh*F9P5H2(Ub%cPAs& zSayZYFk$##5XB4xk>U4#;ODT%5S%*-^f^%1A@~8{W~6clzP!Y(9u&FR?kHMh1}$xO zgT#l(H-POBz9+z1gRmbJSsgIxc8y7VS&>x>-ViRvu_boHIhEhTJwJ>)lhNtk zi|?DT8IEVu90up``AFdk3c^&T(_Beto5fK?a?d*29;S7e)O$FK((B6hG(K_;Pxeb%5 z3qCZ|KzW#eYNYxU7BgUa9!3Y6CGLjPCQKBtZomN2 zol1rL-6>4X7MSp+o6~9dh&_6}zW(9uUlV98?l%b}^6v!m}nf_D9Ls%q~zGM=+)|R;&mS(4B=YfCz z*`V2Q;M9*(^EdV1_7^|f)!X;eXSI5o`a{)+Pv4_Tt7=qlDQ{7BDm(Xe?kiK4?JFCz z4`AT)oOCS~jLzGumiCGJ_FRc2XJR)yrZv98nm;S4Wi|D>{cM-cc#!)9v4>8SEMeQP z)41|*|EU()mTNShvRzv>wWUhoH{2_F2C9B0D{U%ygmuP$g4|+338O$9J{wrC0B?*ypgRuJ zPBg|{+Ioci?d8TL0vl;Eo?8b8ix@mYG7*}yhvP4%u|o-SI)GX06lUjxDKhRzDSC<%8H_?%$b zM%GVG!LY#4f{p;SKZTTrKhnGK?VT~gcp1BHgmJ12uC6ln=XUZ+UvN^T|N9kQta$nN zGv=RFhO6DDP2bCMYK7CR!(!+hkI(3mM4)G{}Yr7HersqhPEs~Up8M< zv2TCfc=4jSSf&g|72c?Rs`=@GpeA@ActEL99=Jz+&;EP%x2xOtA5mSenxT4GxkkBW z-*DxVQe65>{Gs^6J@RLc_>u6@ZYHz{e^LB^Eom}-U5{;_Xdx~7c1^yg$p|~Vq1mWa z;my-jFFR#UYc@`q;AphN`O?uiBQWTE`6#%y;QIn-ZFm~iG#eMFZpMW}W_$^ZztG-=rd&xxXp<9*Czp8sMesY;2gp5lkfx&G1cNz))84 zBA6QF3?B#6aEA*Cz@RgOBQBSlIeo^J!WcQ;M|~($gB>Iu`2P(NJIbwCT8Pe>7H)1c zo;TIua3g(J;|z{8Hdu$IPZqBpd`Sj2IsJ`o#$l((;RaA7@TFW@3S!+>GK~G9%{aQu zX0thv5qnV>OgY;)aloUN*=8G^s#n2iml-dcZJf!k$Fd8(@aw&fB6@eWaf0@M?1;%7 zIO1>qgZ0RzQgpdqt_#PyX?hjW4m82cd$eMT~R&apJ#cuvET@5 zam#+5Y}Ka~YbhxgYkH}C7%Ov{jI91|6`C@KoI7NIJVEUa=Dl7wh8L>DVnY*z@2K59 zm}qIifz(QJvN7vq{R|TqjfE$K>1bZc205CV29pudH1fQ|VRazyBO&2Ic@hg`+B(|@ zSJ&I;;I)^SYuqvdT>}?i1FsX=SJmcW-bKcX+61AFcU>509Q>(U-`|;%u-S`^b+YR??fr5KzOSIk zjg+6+m5b5j=-R-9C1`THir3@iCTLn>Y{Gtra1l4L zccW#YOz(hD-a=u<%7xk5VH`8l?m^scNAXeSe)M-DHu7oWT~r!M9sU+zQ9rpfFM@-f z&29I!cpI$j&mG2b<896c^ad`geQ4Ks2Usr0mt$(u|CrWqX+#Spjt(J*-%m8IK2 zjj3V9R&bc*T6(+FIE=AQl!AKLa|QyZj~LS_D0o(X2oCDeUI#&qOhDbsNy`SxY`h(%x9>+x1U^7I3$Wo&wlzH;{a$~%<__~n{0XLo$>E7B`_ACVr} zd!2OM-r{G4v|?|Y)V6oLG=A@w;+K193gnGFw}`jwp^slQi7yCS$jyEhJJxHwCBJEu z{stj`^g?5ekl%Hq=3X&>j=@+Z?C3X&TEn;a>b<|9O_ak~t>4(m+BX>|v99Y?b7(8! zW1EcE3nCP=i>@>-&S7@DFSVjL!Jbr~e4SF9axI*4EuL~MopP-_`8uswmg&WO{;Cz1 z%Sq;gml^L7a;JonB6wO*&#Al^j|itziKhoirw1ud3d;3D_v|@6$^O%m>_0up{?n7} zKRwC*lar(r`&GSt8#Aj`^s1roV04nd{2RvOLjH?y8UIv1(gB03$IWRT(xZlr;+FCQRsyP0V(_ zI5mH4n=vky(uSLbK{!_Q{dTqS5W8oM(UqgEFbm#>> z#SWMSl=i_aqJxoj4Ms*AV-^W`ywrm?7F#vlu)WG3~Hf48`WAf#L=B3>|Wz9(r*SnRdt>>?AtK zgUv*7kuJoIT}6l78X6sT86CWX?L-GJu#f1Fi=lC2OVPnQm~*-4Ze#y!ZBE|N67pW8 z`bzX9>Y*3d&Q0AT>*rrdI1og>PjFy)m88!!)V0_#Hcq1kEYhvmzY97AEjIhO2Ninoh&1x;xk{7gCeI z@7D6gDtU*&ZRKB1)?CY{G!$4VCO%2q-8=H19W37|s;*E-K4tz7zb(i7i1XRHjhg24HB_=RElqqh|Qx?e1k-69@WFS zu$@;A=faj=J)8^Mdi8KFZ0*&@V)d z*w5Lp^;ep6Vf(K%=fdt^Y0h;R2JMo?C_@*4Q$)rE5?p+c;o>~VGzlOiKh`zoEKamBQrUhghYVuMJjQtz_1C#auQkUNQ4bAU`2i@vbm# znc^L&eWi+(n%C5A>PJ*&)zuiCWu%v|4s1I%XS{an9m^+`Uef4n@Oquitrl-Xixs{? zZulg%!KDgbK6WphQe8GUc$(7{lP!h|VEe(}CC;|CHaO3=!4Jv<_oCF&6bz3oZVL>O zzBVV^*cyFawkuOHs@Cgkfy)zodsK$IkEPk}@>%Tg;j>~Er_s@Bl_S>|BX=Pd zyVccZaoK$E+qBx3TAH1$t(eR4!dbT2<7sK}$dNaG%^pje(+Wd&V+xV`8e1(^ zo0|;TwidUi5P3;4avvPm>^5Y;1Ai;9WDt3a$BH2vT-F+zeQsZ~uMl~&tHIR_r#6g5 z;P;fuI4mBIt-;b}vpU@vf4F>hFVDGFSBRXw5FRy&?aow;tcCNE-Q$B_6S)vWrttLj zLJk%y%)y?PW{217Xywe)w8fmk=@=ftt#B~25sMvuwvBf9xOsin24{=M;j_Bgh3SgX zwZ2xLwFRDbmKM7cR$o^Ggb#;2_-DCWTj5fMNvA^Gnqu5-jV+$WHpmEq1TBkkFHyL9{B zi=~VA`X&Efe5MlEYnSYMhe^ZsekgvpXTP|A&z<6(d+ywm5EFakk6C<6_&#+h3)rz> z#hv*Yv+=ON7Q1wJ=3(e~PRL^^u|cHC@RA+<6=I{vM5df$>SxJ1(`07v6@&TDw^vLO zHH%=arClxJA63NIo{uW3p#viXYu^FT;NcNO0Jbx11xWzbX1G-mAd)U3>7pB5MArp- z99B>f&;t00#7{T;6oH@a`suEp?w;9w43=!{SwTR#=58x6`O#Fv*Ib3P^ z5B$aG3VWmTAC>$gQ^FgG0$qzB#({mih=!;?MA~qNM&ldx=Ma(~toL`+=lS!}Whm#K~ ztnkC}K~M-~ho7x@8Wz9H`9#2Bw8vL(Duu}_^EcgUcI;5aNH**FiicR6%2>rlzEJTE z_79b@GJo)e3NxP<7#=g2*g`eTqn$5RTtICY`x{Z9m{RaxA;pG2Ur~vl=OrWkTqyFN z-2(p^hd>c~77>fkBa`-UQV~1lTo^ZuV3(?m=V^lD5%ug63K`4ZP#Y(+X)jj{7kvr} z86`as zJ%5;YUYD@NWiTg=Usg4S4bQ8(^Pm5zBK80A9_+1;Dz3_*2lJy2(1YEyNOWDI z{G*hARPv8Zi5`qd(1XzrdNBSYGoS~fD~!Ou@=?$fo`pP~g&J||_H{Sc>9p9tnlCh( zTCb@;aOTf@>S5}ORd*>5NdF^_7v~FX{?Ur5q`}GxtfQd8;)l=NpKfgkvgltcv|4#S z9drAqQ*>zLy(b#jwMQ$S(LgDtx%$($o4{@oZm#i?^?THGSd@K8z&GcNQyxD{WiYT!&3qjN@`2nI!fsGVL5X90D919TrVnzD&>cP?{5fHKMEEFSd?ff7VSI47 zlQ2FOe2TCiDx`#hW7xMkA#m&tV5?Le3-XlFj zC?6+2OBf$0K1UcfgYH*6PZ%Hky+{}z{k=gLAO5{b*kKy~y+s%w0KQEaANajXSU;p9 zaO@&r;>lP&Cge{G{O4h8vC;I1)4@$bBNVr49GaKaA+<{Vuqvt&up?>+$9g<0MJ1i| zn3xnx#a{?Zh2g@JFudNlB#azo7;Tr_JYfG`KOwBilo( z7i&#gJZRgn__|=^z=?7)ukI^(8=75hPB+$cabB1u6hAHSYQK`#=5;l+d7W;V_j&M< z1)uV)`AS|77GU^XjcqdTA@Ds=;8lMmZ*!x|T7ek;C#tbYWB1=w0L|@SsuRy-;WEt!dLRPVtu3!s~ctB-+=G#06ROT->nI09m$!VNyrD_{tnyJac zWM}vQqYA%q9D87dY1G#nZEziMxf*8JWDHIOa6O=~K@4{{4Ei)s8~PT$WC0r`Tc=>I z8pdj?Ok>758enzAz;mc+jvCHpe97NpG+C}@PHkv}TZS9)as(?6hZ-lTv3wKXH$XpD zPJmnRU#T*UHn}`JZ;dl-R=10C**GJa|GdhiDTB3^wEA||TW6ZcHr1Ib2f#3PQ=Mr} z{_{H1Mj>~qYLBNE+vpQe6CjnogLM8*y3t8PpH5O6JLzsG-RPoAyt)DS=!oe26v2>z z5#2rW=!lrH?%;;0rWXYf`@ANmnQ(q3X#&vI`Hvv~$XWuHbMU}|S|RHU(9tOn3OfIh z8K9c;E13jJIlq$i5NPB4N>)d(X(3%f9p^vl+ywfSM=DgxGh+GS%S4S>BH%0sn&UBZ zABstpJ2btTTFn;q6L9@1Q@W*uc(t&7>m3)+Oqfl6;}_Hn`hjY2CMCk4!|Pa90QmdA z5?=jWkKnojpZ0>S{N%l_WN(NO_LJt(?A#fnp^+{8aU~og=NLz`vc0A)BM?3?$5qfD zEKp~r&oz$GG`J~c2iy8e`9gVuuIzxxTxlB`F_Z~eTRBMqT3IQ(GZYHw;u*z~>ywCh zK7*xpJ_*O8vAbw8&_|PN9?4?2@!hseHm*k%JR`WMEbc)Sr^IHLJtN$nK^+H53|F@b zJ9I%5q{l&t*<*6itQ-zud>)f{-8R$g9gQZaGsgzC@R2Mx$JCSme2!`N*(l)r`JiWk z&m)}iNg0Sc)ZXQq;&lIIBlnR?|dFv*dq4 zS=OWwlx$peQ+9tHTQR14MeoMUdMvlgK)im%KwC@ewk`{V-n|AQbAK}C}(6g7H z>7oJ+w+yL3Be9=;$26*BB5D5Ek5<4r(YQ|6(zOQHoDgr~BLzh00v7w8Pz# zi5N4TMyoTpWRTh+{ajj39~0d6b;1f}2xDec*XHqT(Y2qY+2p}9jwwWW-5yE`~ za1z;OE>kNIUR0b&wpq$ijMxc!GcN~@CX)}J#PMYExs*7fte3Ye98=cIrHYfvX)ae`SdZ&^6Ste4mJ*MU^={S6gUS>ln)zR1caA$F?tX#k4_+5j9-Bi4+6xoclT@9p@Ui_dytvV6>7*I z32MQ2Rpm-a*r{U5TTIw{S!pC(GZ?0=7F>(G(u(M1Y#S@2e(e-ZarVy8?BTWMyNpO_}+d%thGL8b5F2Z?ke z5(R7O)l?3g(=weIUKJ<7SIXoPV;OAK6{KB+X$=$n7igRPRNQY4M6vRrJDH(X3j<4< zy40CW5GPV30%mMP1)mG-#cz&bH4J=Qo4Tf-106Z`PSVmLe31D5+k4%$pez#<~C7!~Hm~QOeg(WyR zRRC-Otau4@hv8O%UD6VX=m48v%@SGtB=+5ROG@f#x2P<7Vq;eAb=-m?CbSyQA$D$#eY~rU4veLARmLEHH`J*^!A(9FC z6PdwNWja*(pWI^#2!=2CHj;KUfaS#{aNA6;vE%oduD4*_N-}}Xk-)Qk0R>MI$*t^#3&&09Cm_LM_ zX9w%QOJqClH$A~{yiLNA2zArmYcW5a0TY5dO{^Om=0$>7;(`?`u`Dg6Dz+P(i}Qf# zUV%;jMV0MFXXd>8ng>lcmOB|=x`bC%;RG}K-Kpu*Owzog{+@b|>WK0#Wf&vPr=?3I zhxBK0g!rt$T)Rv`_E#t7XyE`+DZts{ZxxNSLGnbcMV?r;@o}YKIgP4%erIt$oX;*d z@<9|PtNAFZoDa$@7*%54nGf%5%=>Ej8hM;(b(qW*d}JwmwAl@4Exon<47atlrm@v=iu0Y0U zj+@8DhnDc$pc(86c~mTCTb^i_lNeDLFv_D*8a~p9k&j0Qom0lMnm07Vze1F3)^~N9 z{EFSClz>xk$A~|;hB3IHMeg-Hm1g%ZM57ee^^fe`)%CZt%5H;cu1vsjEbOWC{6n3gn93y02oC1*KX zg#G?@ZQaA$pAvQ)GKtmFX#)L|X&HHe34apvH+*E$3GD78G;f5Ya4xSbTb#=)%NFPI z%Cg0|ys~U@F0U-x=YVk8;#^)?wm6qpmMxCum1T=#d1cw+SYBDSIF?tIEso`tWs75Z zAzMoRRbX7UuL0q*eH{pw?HfS2Y~KXJW&0KoF59<(aM`{CgbV6jAY8VGfpFRW9tfB1 zdq8*-ITaaCHiCb0uW;+(J3bJ095ualFT3YWRqf5Un3Q-;S5Boj^fT=EEtLtj?+?1E z7_RISoCB@G*X-#R~xUKR_HLJY0a%=n^!yT9Q?7Kdn=bp2xkZGt(>N9Y8q8liNE~k_f~4Er7xryQ_V50WsiIyU6ucQ zSLIegjYK7%n*C%?<+<$5J(XL@jeYsv${9H|Zlvhtnxe#0G{2al*_9M=q@V@BWsd;e z?V-Cpbhn4@_R!rl-KAv|@U0_2chht?O?PQc8hrK$(A|Ez+fR4<`CXNwY7jjMBd@x5 zr5y(=u@C^bM*>MoYn|>ub@`uWE z*x2_gN3)LiE4Nf#N9Cp%wvfTAfTWb{ukTmBn8N{}vhO1f0F`|oaR8|7^7t4K{_yVv z!ug(3NC_T72+s>4yjkuC4M%V|r|j~G!#QPdNLbTkZ%7!^WG6`2(qt#dXLG60rrSS!@^zpX&{6*H9~k(BZNO6gcPHap9X};4*?-XF8TSOkRq4-G*Ad{%|PU5 zfDrlBKv*#``5~Z?Vq)?`fDri^BBYp@+(S@EF)`VZm_mw){cEI5F8v^p>=K+41OwmH zrB3mT<`#77R?QdcFZLgVYMH<`27gsOsrrs;p{hdln)0=MukCxOb(?aja;oxEX%Dt{ z2}_f(DljizB`y+2i-(1u3Kt4498vz9;`<8B((ymOm&z+LM8FJefMLbFGwsd)KiB{x zhgmB!gvy(pc(I9Ri`U&UWP2AZlI2W~;vF!oz=WYAnKWgdmR9WFXLq*^;UQ!6wn9R* zv40piX0>oqaDk`63JbK`)jVT*ZeSl7vO*J6F(G2oBaG~?d?yw=d@ZrYu3<<*usSMU z#s(nA@!qJz%R-F}Ko%j4?5>>0Yxh|_PFKt6XB|+PHD8{{oiN~ab2Yv(@Ge9kSz$SE zV{@~swHfOIhwd-K1xaQ9E6B%!Z6m(RfMZ4uJ`Dxd<_3?)+uDlq4HS>cPNx)nAN1wO zDjgZHfEF44rpVOR;Dej3*LHe(Bmy^h@5M_|057GD`93IG#jN6dLu`dPv<^rF#A5@` zHTV+GFoYc}@-#Gf9nIEUTkDWaQrU^=XUL?sz+^<&fg+Q$!PW-f;GuOuh5jDu>QmIg zx4_efRy7}C`v-X3uv)h|n@=wnik?%{f|t^|0N;1OiwQ`@(?#B*qr#9pQlWQ)?mNii zAMm{d_;7^nEAkYb42JMfp@|2IlOkN;!6c?)FD>%qm0k2M7{Ww_CME+imcf@2!t^E% z*DmlBJt2nhP@%`7K*fY!1&@j1De@FO5sEytJc~+8QYe;)q)>^lUHJ0M4LENMHYdu& z8q`!0&EX&T(oqxh5cXt|r?^7(bg5Hbeg;-LSmej_{JX$A7lBU{d0Tx>>=jwuxM=9< zB2R&Y_9~i%BpJRHz%ew&$>qhY%7;}I8rA=4?@QpLs_y;g-aA_sl0de}4TO*c!ZvaC z1-HyyuO5@M-qsu3?k`Yfqjp@sKG?6Zu# zce0q}L-mXzNw`l-u2d4oYZx;s)T^q*CySYv$fetN$JnXjybIX6=5&LWwj<(ZcKgco zrr3Sc@@lkD(5>XIOsl9%*@R;$*N~fhgxS0&XC}MZpV~0Z2V0n^4epP0q>4b@F z&nqd@CJBGheuBP89G{7*9m9sr+jn2a_rRb_7GRYYPkk(^K31zf)~G(#sy^1KKGv%~ zP7&b5RTKnK6hw%!)Pe{qO)H2xNcG^Z6lR=)P7rjWppyihTF_|(omSB41f5<$oRlDw(7NlxXs+Oc`HOxdIKt*suSW8Hd0xS`vC8D%Ml9s5YB^qgoR$8Ki z&cC!2O8hTDn`(OfE(Lb?fH2-#Wc7V9j5U|wjLi}nD_g{$b;IDa(!8Xd|s9yx}lm7 zzm*`m;WjpYC9y$RmH-Qb4CU7H1iR8ykjSMd>%)fdAv`zRk!u< z*2D93^A68Dd`kO}wqM(SsQ=Jn?czhTwX+Xtwc10!)co?`KFz*^w`*=cxIwewV2!5c zV1=gQV5%nd;0Njt4m_!T^1x2@&I3CSG^v{oxYVu#IqIAPC#925J*ShNLnOh7L^eEE z#!eMy^@vJvK<>s2HasTsX>h&3hSz7`!FGL~dNp}4yJ>G#o~Zu^;s;?%wM`<8Fe~r& zeY$;z_Z?1jykckds`k}G4`?4a^eyeT4s~g}4h6NrLnYdhL!WCtKlp~`je~nNdk@~M zx%ps^rsv=S&4Pn7G&2s)IQX9Wy#xEz`w!fqzT?172?zmtlj zV+g?sGi-6cu>T4AQ^DEbtorO}Y{9P7soQs7rAR|4QX{+Rl}S@>ot`#pG;wqhjAkm{ z(wW$p)D*V(xb9-M{|($2)iFcyUyrpu<$7tN5fE77S3dA7N*|M+7G6b zM#&TpVTtMyg9tI3Rw5id;zGe&BZVibYpqAD&{d5TX`Z-nwGslgx3<;S!g*pd!n8NQ zbs{9O@aoyrv8uiU!HnQdkqrE?=7v_T4A<3nG!!8UC_-q$Eh7RQwT9uJ5v~HmjdhJ} zjTFNOE4P+yKZxkc-&&OV^_ejJhqxHBW7OWz0Y{UFXaoU!a|fI~h7g23!aW8q)5fwE zr`|2FZ&s(yUd{v5Btq37AWNjbcP%2a#N!I|_RmfJfml5BdnB~Y_}|4F*R=Py7xOsk zQ5YE{!J#ldf$sLT?L7miWo-0<-hR4^7&*XWVAF-=Bk)@~20O=xI#4ny!Iz@)z|Pd-mR(k|_H0?CAbIU8=Jr}~3TnWjPt<@-blOA<;b~e;ePSmBB{6O55mvuI|%_2}LYJ34ZG! z0CG47qe$^gxTNr=DZv3zg4aq3PE2BcRyfI+lod`gCHO5$aEK(j;Q%pLDm-c|7z&RX z>xIIj#&V(Xs9#sP;$j`lqKbUyToXhbzP5e$FeEfvMA~9+rmeMVM@FU>!ekY@?r3)5 zj*ARBlL{=aVcaRk2TA^+tnr1)k@aY zjGMK##m!pV6tmVg#R9fX$=ar5ZBw!i#j_46S%;LYLrT^mo>d%*o3V0x*t!xGiMRfW zJ?!5!gUxOrbJRM;zLnd*`a#~kl0EzXk!friOk@8J>sMO5S2d7rZ37yzwXA`g%NCKf zuP{&l-+z-GZ%LoFefRH2e7Fw(^Ad@qN^e4etwS^YE2$FRp~PH32|gG6%|zC)Qfwr* zB2@zQt(X1pDFT&NhiGT&J-W5yKC>GLyaR>)#Y?@Y~) zdVBlZ+WYG|+XmJoK%C`LMbfqE^G!2naxf%+pbzlimX5zfnmE;9A6KS+K(oe$iH}5bI=i>n1$TZ&3*#qh!ss` z^=BzNA_wDTeU6|Tf9%srSp1N8N5^rLC4MxO*PW&Oh)j%^_n6_n7tUA|E4z14j`-2w z(!(b&{CVc&+FSt#tOu1=CPZUO?zfSXIMFX5caCC{N9Jn!gg}eun)w!T5bK%nQJ)1L zS6rsVF1jmq?u0jyleo>0F;r%An0iHk6!fzXD8n1LNv!26WSGP=yH_M2Tm^)=ii<~qU8fWW7k5_1Xi|$ikeo25#P2g+}zMc{=h)Kuv_1Q!|>*nP4z1g7PpCF z!%~dp*7^o=G~V11prNO^^I8+o_+0f9| z)YRIHc(0Uy2s@o{sIHaNQJWB1xuF9d%|fd>;EKGl4*HpJ$hIm(;gunfXCJ(u^3p8$ zSgWTP%ppL5>+uluIh#9Zr_6WiMPUipa-kbve-$mvp6Zrp-n<8um{#R^@$}hp&e6~$d zReV!qc8zR`l)U3NMJko{v~ow;X-Qhun4fzM`CnN?;_dwci%8Hl$2dnFnhbGu>_>Iv zEqy>&q5Dw#eeG46BK7AGZ;hdA!esgjhh$te8TuU1W>&PE;rIMAM~?CT-|L)v&5$C(^&b@Qg)R!xJD;;We#?YZ^ft_5KIX{U@JIak zyEFdTm47WZqhBA1JNcP-OGf>sxaRi7u~V+RuS-xhfRrwF#RYlmg|FmJU=k+Fow6`9 zjgdR;eL7z>T)0m|0^(B&g-lssx~RIjZ2md@vlofULR=7l{_=#Q|2f%cbW}L{Uz3a` ziA5n5{UUkjStX%h^877PC>Xo&MhDwlXokXA7GCJ!KM9T&pmvD}rqD1&^ir67V^TZI z|5u{quSCgb7bQ>Q?_H88SrYEiR?@}z0k+p|x%n^}$o={D-C9euVr5JH%KDb3RYkCe z1ChQ8LW7o2D}wygcGR}EcEECt`!N>W*h>o=VZYbnY1PBzQk^~VT*f-~`ES$S_%Fq|eKZwL%;Ir?dAQp-DIVAyrOt1x)lmK=g#F-6#`@-@qn^*c=)P7PaCVe1X@Dz zL}}?LR-}SPAB@QaRv9j&U2NOV)clJA8z4Lic85CFCpbuFUa1(pw9tKCc{xYH2^da- zVTi6CfWT`E49}UDDw3{^a-pEYp`s6|`6l`dNmVh>T{f_(yFDXOoIMAoB zN%WOXUpe%ZOJ8~Pm5;BjRBS61+ls9ST;8j$q(Qd~jh)O6+@TLr9t| z2oCLT6}hi?PPbjxted6#ckL6}8?-kd#u}S^R4!zvz2Xz>)Tz{oQ4QuT{`~1p&Xknj zcvk$)&QvSEiJ8UkYn0!}s{Gc%P6SCBGyJ|7)sOkDi*jw6k^6%3?xFlJ6#?V(>Xf`= zqI&U)h2^aJ2fFRClj(WQf)d{LIPOyzQ4Q9tTk#B@kHb7l?1#A`po}5#MnKjt;0G&c!sKI5?CB z@j`6Z)@ZbK?OGH@WDO;O7#Xd-@U^rN7qj$HxH#@wt56q$I~}f$y4KF^jkMBT1i=Wm zuJ78|O66sJG~C(R*B4p4fqto@;h_y1`{AO8GETs+jdM5l&t2aY2}dXcB5AaBZP+;2 z6%7q-?59kK-_bUB`P`1dp)LZB=o$1gUKN6Bv<(f$gAQRriFULODzFg7=*%q0b zRGMOEBml|6Nb+l%=$gT(!()H|xo5u#mvb4TVEL?6M=r1Ra2;2mOO{(L3u~H-lG}% zrsHwwm3~i;Zs=Om*Sc|NkZR4+MmO~KcSlA#H8r|nV=H%l-oY>upnY>bZ(L{Zro>0M8bnUp$nRMCxH=#0KLLIATlexTBk$zAz5 z$OoGgWd}+P#q7_ehPkY-%rGTwsBg<)E3E@tC$a0x3`Nl>{hkZ|P5pD%baiZ;yS_Et z-MWT%>BQ00*z035jVp5|lrOw8DPGmqiHX07d+zFqdp)0NKxmda4PV%2lmF!+R#GM2 z%l?ncFzbKF%3S3(Ji`q040H0h%R<4;T^0&%?y^wWn#xYjGvu;&=NZZnQYSG5Ck`ap(&5Z9KPKN|m3kNx@AyC3MvB9jla&*n;^}KxHU6Kx zcyAJ-?AW%<8E1;d{&&Sao7W8zvyJ;@LliXrgZpMn{NVoC5)z9@-FzJ8JW4zRXJ_P)T)Rg2ay2rl{HeALNv=_ijv^%*}WzRj{+fFc}&( z;}OBZxc#xT=s0}M4Eus46#@c#{&xEzUsiSdKLo=d7LGH@+M*)3hOEbLtgqy>w>RKA>>q(@E zwY0f@RT!a}SHd$9A~rX)Ab@y?eA}#yAo_Bsp{~BE1MYJGGrPII20EtU5I}WM#Q0Wt zL0T1RgN|x#q_wHG0S=U!cni1WH^c8vUE?ZvEo!W*heUNHM73=VEkzK=!a-AgTSt8z z#r6jE!udsPzgoOoYENGjTQ^p( zA|=B@t&l>$MsyC9GQvn1^YcX7jVWW*a#}r62GTP=hrld}>n%!qcNvc7!!zdgDXGPi zCE@TG^C-^J;`u?zExl2*aQp6?*z3Pdn~o}k%cJWD``d=X8{zX1t2j|Ni_~br=P~yq zhQrz{LAY2~N!Y3`)e%F3WnG(^!^&Dyv#0goCmo`4Qq7B>u?yr!DXXm1mp!~y{JomN zozP0jg1}2q<@_N}Y`ib$aviRa_9lB_i@t#6+@IqV3y*KVD|==i0HotXuJJc^uI&!> zwDS#guqF^_2(qCYfHbS!?Ff_X3K;Ev1U95# zH6{d~{oUmBvcm6etxX&&mS5t#(3o}lFt~5R7sW|qr=B)k9c}37=xDBo_`SBN1@BoX zf+%8#s=s$M{1kl zrV4rW(TXMjfD5ONqNchCTy@pfb0=ERe1?~<@XAmNV%t-6bPbP_rf59h{fyz-ifF|- zx{(mOQ;Ff(kyc*8!>7UR(>eI+0&?Vs^?7(-7v^Yr5V>q-IBLjbrg|Zr9e6I|Ak-ZV z8zUg?B7>2B+BAb&7rQ}Jj=i8Ce*pyO*c?P$j)9Rj{z7`}#ZGCC7PvSy9GBc%Oim4( zddyHb34;}DBMutj*qo{=*%hb6>$dNn#!ekGoMwAoH9L7b z+HPvi38ghTtl&dK&W^^+EcQ{c7Oq%-%uao1xSPHEx*->+^OIgVr6{LV<&>tJc=w!$ z2d+D5_j3d%Z>f9Drcw2s%Phvo*75%rn83wQ8 z%XKphFQ_m({K7AE5Udy#Q6F>U7CiiwfOVXJl}xI~2w17Jc&A=%C@2sFtBMq<^{S_} zPanEQ19MeLcQng3v)?$sADtt_uH zBzfHC&eQOvgcToG=GQ|MtlzpFGVbstZen*|!$T zWxP&eH&NDISZ~X~`f_4=_$BImLGNTIX3Ay}-nm!3qsxbjy1j+6FZ03{WtF5#JgWuv z*m1dty&lsSPB2?{eEq2jpFMu!TAjI?E&WbbPAoiG-X&!(=dIVOom#|%T=x8%PZYeoz{^i~y+(K)2j?+%NS?s1nJ(w>nzqDiqJE~D$mo13YI^>&v(?0o zs|(WwGn+d@_GQ@P{YzC?o@I}|CQlu$A$DMfe31aoB0XuHDyHq$bRX`>xwlg0&&ou3Imdx90aMr3%l@LmVHN2)q^hjfbZT$c990YIa;f~Oh2l10CtFvXbw%t) z_408+JI&XAc+w8`;=THO{bGc2=MK}N9kR?mS*y!uFEz;1nQ5_{KWW2;zP{d$jtIh{ z*48ebKfU*OY+9rIuDakRUQvpwOjiR%qo1gMBTa$P_*UV^tguzy9^2h2|4^%)^3&a$ zQB6yST&(zHLlrgb#XsruCv4g@I5^PVec9^Ot&NSbfA5ed=qFF&{!&v_`MUhWl^9ez z)IXEn7vFzUE1HB@QJ*{s?EfFK?E~s;*7RMSp6$-nr^nj+gAPD~NaLIW#w=`R-D53r?SxqRM7w_Nnm#2xQf{z+Hx8#<%MMh?Hrr4 z!8LEd!GspQK_0|Gt-S2AHLF+Gp!?oFtqMa(;@-nCxp?;Z3*ROTdUi~De>^73ihaG@ z;_3`6LTzh1d(0IkE87#6r<7V90k_v?Gx~fUM6`5;Lq@ODZ8useoF%@@K9dh-1#}H>Cmdj(7&GJ!=d;#x$OpQ;M>lSL)q5F;5(x`)yt>7QI$} zUeMll@Xiwxcd*bm4E~CR@_PTtgpbJ4d**@@J;AFPB zzCO9ON0Mr5y75Un)pozR#fjQJJs-98v57y_=kwZXy-ql13Lt8#JK**p0BM`Uh@BR~ zoU5R7MmMw$*IJ%Vs^{;7d#a_6nt}YpYpYZ3CVb`5Em+JoGl z(fjo#(H&F3zG?qp4uL&*&%5Wv!A?p78#l;gpWLgTRu;sY6bt|`A}k>Qtv5o{O-iDZQHgXnpb+2 zqh~EmqG4XR{$S#`;f5Qo z`8tkaet@gLWpjW3x^?S%Iy;jmwg(k#7Mr^`Hpg!GwGLlCm~Tm{k#3cBa%R%ox(+^>E^dgG}SsY0PyDO7=g51VsBuG_xbAi587)Xmv% zTzU@;n;-3;dmo)K&5RtR4Zxq>T3!2I+xK{fDclcoKgF zsQZt{m$w7dmC710OE~`1+o>Oe6QbW8-=Fr&)4NCJaCU!QN_9YLur7A#tBuMvp& ztUjCD1KYL#bp4N0{pF^kol-MZ{fJ&#L+6o~2MN-K;_r`dO{k}*y*oku8q3Zhl(mJu z*eDy=$$!)9Cxt?*R<2AQar;IaKkNP(J6BN6>n=>KI~xXx5x1IMaerbNx7)#J={%-7oOovhMfxJxw_N`ovYQjK`HI9A&m?@9u8zPu?yVYtJQC``?;2`8ZDQ z#pgLv_Q<+&j?`bimVO3Ort`xaIZ`$41EJ3GXqBB)l=mmr$p(4r)}f(|y}dn=$m&(A zl970hBa!jS`+vkv>HW&+cf&7Z2-6ZW!8^EVTtAeZQ{?xff5Mhv%*H3V!e>XvPDW?J z)JLh--w*!NWAV3Fzdk@v)jbTl`#U;MK1jd5Ee4&G#^>DsI&0XD@5-X{%{pH`v+F-Bj@9h0|SL z3&y3zgn0rKASffV&FJ=7twu-CWeLL8)Zw&wM&6GC;Tc|qad+X{4^kC#)z|Q0+;*?uiuPe@uzFDur~<^cw;O{2PtfXgd97xPn@tVNX5ndGhik^; z^$$=TH>kJrx{~V{SuZbX@4-%EpdAi2+6Gq-B&wTH8g#oXKC1)MkCi&JtqnAY%V{(P z+~$DUWQARqBdJ-3m7d$T$-alGeD32+RL$OQ(&wl9dlikz1nB8y4zJnc0VN02U7(fQ z%vPh<=Cm5^LF@x8e!I`^^~6clLmaO2#$y|QOmJVC{L|fZPHxKR)YaRwesJxWmMm@5 z&nU&31Y1~-(c`cNLCaVzMt9I|1|{n-1wC*o3EGMY*T^PV58W1@DJ;6M_7=@S_|csq ztrWj5JTy|_$V_pa=zfhOXU)0ql4;pM>eT}eme6@5FB0n`o61M_&edVi>>EPi?sjF< z>~p&C=kpjX7MmM%p4DYU@Kg|$HlNAw3j_lu?1z?w@JjaJ7+K$vH_fkd6dY^jg{M;0 z8}7THcsvT^6J-R2`1Gz|!nV8h+01#bKC{$px5EI}<~0U`E;F_-AwmW8z10_V`2!w5 z;=!^by{QHAdK@DJeljMna7<>+YPwM*3|#lmC^{P^d|)r{Tzwf6Zjj5%f=;*3=JD9E zBea9mHQDiS%r?8xY=Q?(?bdc9ycnZ>9*fBoM5{ff0QIt2c!^h$vGv0rs;G)T zA61|`?COjdcOv=0# zlf~h81&wxV051(Jn~h!zmPNA%ycM6z9`L{#d`k{!p})3yesQ!uqy5t#e@OMcd@}aY z_!lZPFwmb^iQ9Vy*RGFGuO_EGXtS6>5MlRcbKAgFvEu!;``uQH*K0=F%Z|3_3ktBC z?PzIP#TjJD)9X>*zvnGuZyu*QF<4KGubbwj0P3VU3Ch^CvNF#f^krpk2j&U~8tsIo znbC$_kP)jtCPTXkewaNrL@TzOB$l_x-rjVC`H<^3wHRxzc4v1mY~NO#1u@=pz^Og13_5BSxS19MYme} zZ9c=4ORL0WlZufU<_K4q%^0iD%JMhK(-tOlq$}diipWq|v0T1n#eDzVk=vMa``dd5 zVA)JLMt^ZfP25$3`#66n#bD?>MT36AH=7QOe{Va77Iw0=f6`xE2I|Xe^#_B-fYXWB z)zTI*x}11%9YL?dj1baxzsJI`ri01wjso`=mWv)Dc!_gzM@NU#o7nD2`nhFhi`{PX z`9X1e{ODL0wwf-x2V}1oGqlrZ!gfD!Yc}@OZ*!>T6)RTkAgCK|d-RU+*isFPdk5MR z?6UyaX9aBgP4cudkHzIcEkUE-?ZuAP?FNs;7I1?{;`Ca*9y1sVej36+|1G7W&9hC{ zQ3cgm<+qHlh{j2BMN3eTL8&Nc^_#sG%;y1%8H_Hc4bz(4?ZWJ8vBIby^QjpONM6yK zyrPWqTb5r&6|COZGk{5_a`Pc-0>#HH^m;js)OxCZnpA@&>iei$k~ zi_rn^(H^JU?YDtht6+MJ04o#WoYrZsGJ+2F?{qpRj~7}@6EEiAK<6l9vCQeSS^PwG zSui`&8t=sNWdSoT=rh}WKC8*@GxHbI@>gHXRxYL@UN8MUr5(~-r2f6QSJ=u5_sb!% z`Vo?5+`M1jB90N(9n!#U2lT{ASa*O6P?E$|aNtl;G1~<5V#T=F!rr|!Gn?J>l<(owLN%RZJ zu!v>y3m{F}+3Rp_`~o?ajXn0P?3+-RBr03N9(heJP7-4+drrPTJ9mI1pi>>vUabkL zwbCKs&=c3Q{1ft^Sp5viUs{_HeD>z;ca>9gxttOCoR0OKFI&s}UN2@tV%gc97^L=a z8^$My36~vAN;7elTo$%;r*6uGrAfHVXWO5VtAr=0pWl2}E-%V0ilcGAcD1HhU3}o@ z;uV5pM}Fbd9esrbybDOqMcuFf;;U42!J9Z&j_-n!k*DC|(XnhiNOQ8>%*^tHLSN=3 zNsq(_ITz$+LE$doQ$$iZ>T;6IQGFC1;U{?NRNo!r>*GR75*=o;6=I<$Gd)Rg=p7NC zC1jJrE^6>;vG6;}!0HEhdaBeklFIEzHT|iq^=0{jQ4wgCg9qp`S`mI(5dqKAq5-wZ z-H9;;>1=@Q*B0jT2J`}ALbR9$$a?{K8qTT74X8LQr?P9Fm8a=xx;8^okJf=!q&i0zog z;S6{KSQ~sB_6xe3RgXD1Pr&>up0`4 zsIk}xxHA}_TTWKJQ#UnZep2Tz{1qZ{%a;f*P>=lt@M7^En&yOB!TW!I_=)?l(cY=u@0}fd5Gx ze3pO>$@%iKvVh0p#-@rE9tb&Xu67cxcrC^t2&90|<}yRZ!kRT)l&aXe@^84|A)V*=lA=ZHosrNH9rY%P6F;r1o!Y+;L^6!VgvCJghMF61sBC_@?rsZfv!_7{D zo0Wk3BEfz7Ot__HugL*cQUJtU5QI%zy9s0l*h~~B0(&q-l<~2Nn!XY?W|m(oEi5FO95$~96hYaZ5Ah}FLYz8W$^doA&< zs;jQ`pJp#EO38&n!$AAO&YsKIrw{AhrP!ue?4BTongbo)9>%+i7%Z5`9Ci$lK)?^; zlscx?mV~@Hu2OXR^zVPI9LHaK>Bx~IKit8OZzqm#&;fxQL~=tz5OH>Otypn7SvTli zLi8;liZ_DO4_OjIVz6nq>+(kNT(?Z`Dz$)f=QV*F;B-6D)8+_v?g2kuRi6{VYyvjB z&&}?-U8nSPttAQB^S&%(PY|+i0$IFj9NAgpaCCz+g5Wh4qt)R6t%FTJwuGQ{117%% zgTxK|M@K`gDG5j8mxUv#18c~}53lZc96w!@;w}xCf)-D}Wb|9HYqo{kAaw@`X0%~P z?Xd&wFLZQv)oI5LTs;WUKa>sdUGqE_dAdL^H6~)-9!o{c+seXE z$Wyd2dQMKFNvRM7+_`#+j%Pm?chM8bUvxab;xl@m@m$(4EWop51eVTR+UzYuBOs=Er^1)gu;l zY|Zs)Tf|vmg!?5o+4XR+jmW`>{~Kx|cXbFH-53t9tZfXFfdZVau&U+hGnoFyv^Vzb zJ|&JbBZ-x?W=>U~8$Nfb!6-h*^`AsaZn63;3^8`pA*+dC+ EF9{cWY5)KL delta 29483 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 diff --git a/src/main/java/cz/cvut/fel/sit/omo/foodchain/FoodChain.java b/src/main/java/cz/cvut/fel/sit/omo/foodchain/FoodChain.java index 843d32b..798b7ed 100644 --- a/src/main/java/cz/cvut/fel/sit/omo/foodchain/FoodChain.java +++ b/src/main/java/cz/cvut/fel/sit/omo/foodchain/FoodChain.java @@ -19,11 +19,18 @@ import java.util.logging.Level; import java.util.logging.LogManager; import java.util.logging.Logger; +/** + * Main application class + */ public class FoodChain { private static FactoryManager factoryManager = new FactoryManager(); + /** + * Main application method that parses configuration and starts Ticker. + * @param args args + */ public static void main(String[] args) { LogManager.getLogManager().reset(); @@ -67,6 +74,12 @@ public class FoodChain return factoryManager; } + /** + * Provides connection between FoodChain and ConfigurationParser. + * @param path file path + * @param rootElementTag tag to be parsed + * @return parser result + */ public static ParserResult parseDocument(String path, String rootElementTag) { try @@ -82,6 +95,10 @@ public class FoodChain return ConfigurationParser.getElements(rootElementTag); } + /** + * Parses channels. + * @param path file path + */ public static void parseChannels(String path) { ParserResult parserResult = parseDocument(path, "channel"); @@ -93,6 +110,10 @@ public class FoodChain } } + /** + * Parses nodes. + * @param path file path + */ public static void parseNodes(String path) { ParserResult parserResult = parseDocument(path, "node"); @@ -104,6 +125,10 @@ public class FoodChain } } + /** + * Parses products. + * @param path file path + */ public static void parseProducts(String path) { ParserResult parserResult = parseDocument(path, "product"); @@ -115,6 +140,10 @@ public class FoodChain } } + /** + * Parses scenarios. + * @param path file path + */ public static void parseScenarios(String path) { ParserResult parserResult = parseDocument(path, "scenario"); diff --git a/src/main/java/cz/cvut/fel/sit/omo/foodchain/util/ReportLogger.java b/src/main/java/cz/cvut/fel/sit/omo/foodchain/util/ReportLogger.java index f1b85b3..d5c31ff 100644 --- a/src/main/java/cz/cvut/fel/sit/omo/foodchain/util/ReportLogger.java +++ b/src/main/java/cz/cvut/fel/sit/omo/foodchain/util/ReportLogger.java @@ -4,8 +4,15 @@ import java.util.logging.Handler; import java.util.logging.Level; import java.util.logging.LogRecord; +/** + * Custom Logger used for TransactionReport + */ public class ReportLogger extends Handler { + /** + * Logs message and prints it out. + * @param record message to be printed + */ @Override public void publish(LogRecord record) { StringBuilder sb = new StringBuilder(); diff --git a/src/main/java/cz/cvut/fel/sit/omo/foodchain/util/Singleton.java b/src/main/java/cz/cvut/fel/sit/omo/foodchain/util/Singleton.java index ea49dbc..881809b 100644 --- a/src/main/java/cz/cvut/fel/sit/omo/foodchain/util/Singleton.java +++ b/src/main/java/cz/cvut/fel/sit/omo/foodchain/util/Singleton.java @@ -6,7 +6,7 @@ import java.util.HashMap; import java.util.Map; /** - * Singleton implementation 1 of 3 + * Singleton helper class */ public class Singleton {