From 2802d0250d47355da49198299ed9bcbcddf9690b Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Sun, 28 Apr 2013 16:20:49 +0200 Subject: [PATCH] added IV --- .../CBC-Mode-Encryption.png | Bin 19289 -> 20095 bytes .../CBC-Mode-Encryption.tex | 11 +++++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/tikz/CBC-Mode-Encryption/CBC-Mode-Encryption.png b/tikz/CBC-Mode-Encryption/CBC-Mode-Encryption.png index 5f8a8271b465c4c812976149541480d90479808c..437f6b513616e913b43e49315a26f0aa3bdf80db 100644 GIT binary patch literal 20095 zcmbrm2UL^om+qYqs!~K$5CjxKq(}?Bs~{j%qzFidAiW6zDG7>#fFOckXhG?{geIXx z5Kst3s+3TrNC_w<)Z{$8|Cw*iS!d=uXV$n@mI~y_Q}(^@y?@uWd2M8%#dL=A3hoqh2d%H?xg}-wN~`R|t731(+)H|L-ik5hQS^f<_OH`ie4M%$s?LRJ ze#$OHau^92N9~fUNX}wIE?(&EBW0HU&&yL`eHKZNH!a}i{%{Qq4SoyD3yL6CR@U!o z0w6vOQJ$)M=yX#Th7fo~;J8&h57<9nxm9|XMNyfy; zC9`_2DlAZ{Qms;+Y(-l`JMndcfvDPn-=m2KU+R3=gEWimKbRq$ba0jvSQ}UhK`9{G z8k%xnQq|{UY;FT;+{g~zw(KcXnXzTzMuYb!wY$kL+hmJW-pm@}3BnOJ`^=~Kn4Htj zJc`LgU9O~+pl`U&)56@qyMJZBlc18aM#l(=k6G*kWznhnlbmZGBiQUNR7y(l*^q9* zZPQ{~weG(_)m{xH8i2&&qWY;isnFP?DbBueaF7CVno;@8aSwrgS=Ax2^8wXWfp+{J zEe~BdwV6NZWo_~#BuJJR_>^?O)UYRS_Z&-+)t$Q!wTHP-je(K~VeQYlZJ0e+GFFL{ z?^>aJ`gy7#^m=4M+EHIUiDys7Tl&rh^!L z{)em7HwC`n6(Q*z1mA%70VGYBEaXwu)OH*4YU+o(jgT%@Mat`8Sl%82s>JZ~ti0523u?pU?Kh2Tbp~YebCV+q)odnh zR?>aY1XXi!liZaC^(2h8O7}vbq7PVNh#>AqA{Ba^mv257@!ILdd5{pzqVMFu9-`1$ z3w00(+}z3{N1%NAU4jqqHKEqt=Ia=P#?-Qlhb4UB8TTb8mv*I;6T$(1z`kl!s<<)DoC*9E=!_ zkbRK^D^d1R^CMZ*CVzfexoRsnI}l1O@J=6ylb`RqHr8s(mdv9}s4B(mB~zi*7n7w! z7JaSO-VG4RYHi(#*?mak=co5Irk!Mr*%^^%2~ja-zy;!TiK?~bZG6DBFl#eyhLmN^ z%XMwQV0*DsngZ{_PFGeu%Jc5ZXSH)H>?|yCwv|a!CndBt!n-)Mb|Ls&(R-99%Z>nl zX6C}2Cw^UN))S7l$~$Jp{cw%)lEcIz3s#@Vo)hBCw-C+y@YVJNaeb%UhD!9tut_c0 zk}YMUxh7)lP-siBvILvZum5%M%2$KXRPeoh{4KC0cw;`W6swkD))Kd+Aah3znHSmb zqIAc9WTlA==F`unR!@_GuFVq9p5cy))~*7U=xHVb*1&&}kgopcSSacw*fCai_Hwkeu4mzKXn?5GRX&t4(|^cx|HXm- z|I_3D^i8>EphquJ){Zc&+jYBzl_$Ftr2|+>|#Kt(l%rd++>M?5vr%3i+d+nqL>?+#r86Z8KN%$;~#){SdL_2A;gEVu0p~hQq zI>8MiayZLKUPCmbAbtFIaDzCmVz^bkS_eo8{Lo3zqjjRK^n6BO_+$H9*nQwbK3y`|vmNK!&qFZ)QDEbn@+y#?|;zno5;Q z-b#j#?K7)?HWqQtu)s4COhMqFHbUzyjZ)xb?*S)!1!~16j~+Ov(7M%O33C66fJD4N zo`HsN@6&A|u^~Kd7g>ew1E=HkVcae9V^{&mb8yCeD4$8~;Je|YY9|I~XXoVi?|-y} zg|wXPSuNpFcSA>0!AhNoV#_zs@|%A8_G9 zVlI$9H2d*=pmM(B=LJ^vUKyc(zh8MeaJ$BBqz1>Y^X-&x*AsrdWVe~EY-e^KXm2fkBRdgo z<=y-~@w(Pva|mg8E&`_ntMjUxzr-pO2;7Y)K)Ex^NH5ZKvM7$2gSQ@WZ%o$r?@vs6 z)^q1*CFI+-h8Nv!ju7ni7*RA}WBq;^>TcZ?lCp8+JWOo|+lWYt*g-pNPn~q$vjMVX zS84JAE|aJ#p0uC)6g6IslK}y@HI75_Ihu03Y|*UMpQZA7v*l>N*E_sDl7S6$2+qN; zn-gsw^#A7LyDW(zv4^+w@dXHQzA(hnojQgzeQ3H36 zXrXJ?%NDNqbL z)aS)zMbf;|(C}-+H>QoZk;pMW6O4LDfFXUpfIb#Ab}#D^dZ+`pL^iqEE2*zyVcIp|GT#_aHBh# z^}778w|5`aJYmIc_O1uQDXIl>Detz{G5z_f>~E@9i%Y6|#IV1v@(DS^_Rh{4v~ByT zkGN!E#p!HhF@%UQ1{nxY64rQhy?g%v*dy6KFyxw9S*5-mA6~xF#^~7!$zPqDX+n(~ zsB6Iy#qm;M$RSYU)8B0e%V>1!PuVG-yYVV}kM6~BfUg}ifH+c8({-C2OkL3pj8CUU zZCf&4o@M_#Vs0z>Z08BAKTAJ~nOlB;_Qmh1&)fH%*+n1W*2giy8?|E}6#Q>+D+T`A zsGsR`X?RBi+Y_1Pg7+U%f?={(hv`pm*HcCQ#!R#Bk3RBH@$f*}WMA0;IY>3z-gDVA`7w z@$OS0OE+LA>jG0jLpWFD-p8QA3KYYl0`&&CCiUT_6X#70uj zzW3-z6tl_!bu+MR87_opG9Xd4G~tUxmQMfM4C?-=(?vuQ%*?D-eSPs6NS#C^C;(6N z??o;Ux8l>;hJ|?DjXIie)EFpNR+rvg36#O!s`l4yyxO^mG##SOaoaexx>_n;_3+8F zy>(Q=06*3kjWNT$9B(W{dD1h|U7`|{o*x$SwHju?(GtlFAMairwuSgy^6`9(7Z^E0 zJWg>)`nRi?+{M@@*qtXi2f1j3ton^ zgP~npb5Xq2K67{QapaSuF{>7>1fHGM5fPR|ofH+i&n_nMk%! zDaf^=*YhV8p*kNV#jzo4_7F&MpyCnVpXl~J6Uxp@pU#>en3)#K%xwHr>{_TQi0lN@ zG6_a>K;X-n@IEV}-)6R90kS{sUJMh7u+j3X5!$Bh5j1~x$Ey@&yp25%*2?N_YU>d6 zGSt7r_vh#YKms?#&g~U6xZ@zOx`0=yDhUJQVM1H|_p-1cdCB&pF<~wl(BjwC*Ybgf z{@FRGlU%ni`>_;xVa&mB{c(fn*K3+$fq#`{HwLt!O1C^IE}$~YT8DJcy6^5DzXxAk zsmqCXGW**_C}8WG@Gz1ZErtR_DT9Ff1(Vo?m>7_E`7(MQp(l(C*#MTzpmxxE|M|qSZHPE%Ju6 zUa#A)s57X~Hyo)%^6Z_P7%!K@boG{U*~_Xn!Z!`lWj)=n8hvF|ot(e1Oj$#B{CWsz zYJ(W;EqccSTPe(lyNb|RVPWAQ5&;f&D(Os+@QgNhoO?sXJdwBaMC$79!;(H` zW>}q?#2BGVS^y_MG<#iN!Q2lfHjrr4TPJ6)p&deR+i7_{v z<;32ysLuU9wlY!cen>3-gT7EPf(-Ku_+xT}=!)l7SWJG1+&V~;az3M*B5J=oV%~2a zf=CFR(pasLvCn!J%lSyPS<%<8ERXXWe(%Ok<|OUUSP6|v2?o&ncFLeB7lR!viYmdx z!oRs?l~RPWB9fb{r@ubBqdhuUu;iI+fq_+dj7wS8dFUkY=pVIsj2WDe?+@^2dy9!> zxKUMnNHpb}K-Z7jsfv?iw ziXuNotkrwZWEEt&S^AI9etCgX3=j@G+?hkUWVsH?@F0$TZJxPyAQlibWCHLU#h%iU z?>N7iKHnDi$yt3ggkWl7l6xt}^1%t(*v!n#U8xnD^rB;u`IFy;H@~JqZ7w1sM2djK zSAwngR~a%}z5W4f$PFKpLoggoEt3DE|4}{z?odX#u;6@kmWd$FpW*CDsU7TAkq3o0 z)t+%T1~umRxg}v(Jn&~@e0LNj1b2<7I*yO09YxEyn|*A9+_`lpO^cwi7VD$EfU;n3 zn_4M~q97t(5KdH}N>Fyv@k&m@{+}*hNerhJNYtvXbmHxZ(8K(#zdhmwhQjY}88(J2 zunWAs2L;;pyl)R#C|wbb=@QVDuMI%!*gO?>53*@%PzdhdHxIW?Q$CZOvWIYxp`@yt zLzSq5CJBf_V-Jx#bd{Wwl)T^=XoHHTbH&eshzM7mU+kdmrQQWhKPS}uUSJ+9G@i z(^*euJnkisJm+g>lL||3dkln9{ULXOQf21C-@N-Sfm?`xy9bN!ZZxN2$A*u>ji#2I zp4}C)6l7HlplUMQUu@;yIJvlB4McQ$e}ma+0pZ>9`IBKU9nt32_xI1`BfBlz4Us2= zFq?Akv{lff+QU{^+wcQ{vzJ7(;ofg}ZrP_AjnDlJZ_`lKKOfb^3lXJym2Qz4oBqK9 zK5IE!DlhcFKt>TPfdOKX!#?9z7Od_zQ-`VmfQ7C(m}f@o&bkXt-8xi*5>p?pLGRg;g&~McMIYI7#Uh zU^pPY*{wOc^(-*;|bncPSa)bl4JQKoC9Zl}cQ%IuBV`UA_z(gzIcSDtTO zwLhMtu%_sT{lxbb8}A6UQGAAm`c!Cw(%(MlrRrq6M-^%ZGnYLOe{1|Bwfkc@e0X?= zZ8;RdFndCpSq5JHjzM35G9{~}ggRUPDV6N&3SK`_!m4n_E#9ylR^av&)}E*l2J>`3 zuUGf%laDqp%lp`=wk1t*Xgkj|w3=Q1JnH02RfA?-V*B6(WBG~_6_>yq(Tki5Un9~r z93?A?r)a)erCuQ#o}((Om`akl!Uc|dfw_C*P;ABU20^>u{j;DW-4XF{X|8nboM|}f5aEqXoSRVBek~S1G%rf zYQd>*P$13Ki<5^5Uh1C<@awj?enGttxDS$!`yJxpiQD@rq84qY=GO1S3-@Sd1S%Yq z+-xpU4rX7lG|WCf`>09&cuTi-k%dP&D9=8O*!NCA*Gv&UkbQd{W7xNJ{he}j^N#<- ziy;F0xf`3Vf2mc+jdvK-GqgZ$q4;-<%WSVge814JSN18coxXnUykfV0%9`5n{4wd+gaKo87fZrki2)su&- zkdb>Cec?L1_4NSn4Uw2STJ?9mgj8_rjXohs-+2vY z3-VtG6qGBTk1y{I0O(}klr#y*)QfZBpJzfgo7d|my&fY@cA2uIf_{9`Y}%iXz4C13 zBO|wBa?!(r{OL3rMn963A8RWBoP;M-L3~0)at?}H?*rw8FT3kG%~=jf2kPth;|3|#*PVNu4FT3|j%yBd#NCL8nc;~RIKvnc$miO(Mbg!!65 zmqHt!$hR{{xm9@v2i&xV&6eU4{itHHWfK*nKdIiItt?vm&qFq3@&!10lgJKHiGV~L zA%UMUQ+gx8v`eF|1{WV|x7B!OAOkXfH}7G|0%k#3hzO5yt}yLTEkSI%5JP`!8(u|g z7a0Mc*iT43|LUx4saAG$bRokj-hcgH%sR?mxCV#jF`HP6q`m|?~Xs% zUd9CdnIHC2f>+39=4n54<;aef7V%&1yY-ZwPvABHaHQ#=$ojuNXf!Bne(gX#aJ0bd z!{RPGtE;>WI67L|=-ETaRtlCy)Jd5SWhAKn-(hFctZ$`7V0$+QN(OwjF(a4(aI{nG zd4Sy2fks82o&%tSf&Rbr3r>)0ACYQWACzr zNE`oCcK81-qWou{WYlwq?kb;g9KMu&faVdED6KGZRGrHXg+-XPE3AQ?aeQ_{13dd* z2(7)R@(6&1G;)FVkBn2ddlTewV@pzkK|b%5e>vS=bcG0#B|?qL@RyWPV!i}i{3#=! zg(D0NaqlDmB||ZCP8(_mqoc}UXk8uiBYCgh#7b^~x0EG@2?a}n_Y*rG0vJ@AQ1@oi zd^LEVL`!DA@{5?TBp{W@coWcoimZaCT8yp009lv6ByX~DVk~?bT*Gbuk|^AOPVcf0 z&qx1RR$_~C!rW^ojZ@OM5y;P&N@nFilV70%z~!_=IEnqtxpeJ&|Gc+c*=y!0DX-`S ztWH3JalZ_Uu#P^}FJ2=xG~CR2>P3nvz3XzgH5}>LzOE3ksQ8Ru6mL*qqkZ^t8d|Vt zM7!hV#CQKtO<2($MHA;Si^ehG7;ulXAs?4pwRKJfEo02z25b5Z`ix&hbmLLz?B4!# z5iEc6fsoGOY)tfUsj}DRQ_>LOq^pMH1-kNx?x)Dizw`vwMB(BZig~)h1VN1^>ovAu zSwt++HtUAhYTPIkn zfbu?j7vdIu$#E@&Y@QeT5|zo_BTki)|NcZQ;bZJS*p?MXC|Im+0zf<4e~W#m(E;%n zf%jmuJ8C$3gH^Nq7NjBd@iZvs0>S04D`uzwUE;g(fA66GiQf31EtUVPNckV$1ORn+ zdzfdM&$O_3cQ8_-RFRU$^VS#z~-{Oc&9ThAuQb2yCpUbD!V;-{89K`9m5L znQnsCk`hm%2ax{w20=u!yieG~$9^Q+*$eU7otBpX)i+TOHQtFsDo?rbZE;r8`p8wb zqDI2*?M-bEFCH|aq!Fh$`73I)oUi7K%_cF4)5pO5&PAg5f zXzPQ2=j$jTmkM`WVmP) zIQ_$Tmg(8f*OukE)m?j1>I*gLRYQhqnM|@jvj^;*Iy~zMb;kgsGPS++o#B+ppb%%8OFy%B6?ZKL9vwd-J{8JL!?iM>M0}!A({v?Y?8msBJsA937)mMJ@ z1LCvG#^~iMv%`qSNe?l{dcGUx;^k7BoI7dB2;~5i&XO$O_k7z zpajDE0hNVMQwP}AjqyCSCtCmR1t={+Su=&wOi?lBAGWvNSOYJge|5${0%PsRo_AU+ zFd>tvp(2nzDluxs0&bUuH*&BpZn)DMnbFz9wF(yiuLEQ%*1r9fr2DAoG=dUl6S5(* z)SI5F=y}#I4y8huK_pUok9hg{jO~C6SV36`&Vubo!&P2{M&IK$yUw(Py{H(fcGjh3zVZzh0SN|J zP(}-lTqi(1_;exlI4rW^xh?QR!CPPGFm>N_Ei5hrpTv{;*pK0sRe2#jb`Zb!?X<+? z#No|kFkfJS#i)}ncxFH-Gwm+*f~ocHHAC-%@TEzpW*BU!cl~JJyBJmL`BkP7HNN1w z+%Ji#?=96janXhDvDjH5f!IZ+d$*v(tQ(z9ZqQxv0U`F=d5y8RkPiSYVAPwR?_DQe zRuU71^hUZfoJ|YUDg4tkh8KIYs0a}UseKP*yet5$*B97L^+%D;fcEm}?4wrJ)XTIU zdQW1T8CN!lkohZ{@6=&+*L@h(3k)(FfQs97tlYYf2p_mjC+YOl-iw-5h({m{n2j+OyUi*RHredO5S%whT%N`Dqh>Nof}*N zAmKG*w69n}p`QN-xl2>dy!R#0zViuUI9flsFZfR}D0(c6;mNO@F&ZPWu7TN0nD??eC`miWP1F$BvUEw#dhh z*+7C)C3JsZg;UHS23Xn#_8IMF%~t>r~~cM zg)=|4)cVYJO>fJ;Pht7j_413SF}^qHjh-MVmWyAdxisb{|NJe7jde5!z}UI~2>{HY z9OP3QrKS$(11ppD;#yaHsoP&M<+$``9WXzXs%NR>mY|luX2mW8y?*?6llk#5E=mp8 z<*OuSRRx?5Ri(-n=a$7(1r!`@TZ)-F5xMghbRU$4eI2RF2htiI{vj3^IL=_V-79yR z9{PX|-ad*ur3LFf4SDM}6(+o8Gezjf%l5z-DMvGu4*=T(0ZLXt^J4u^hqKRiSKqHy z@*icuaUuA+u5T&-0`*mc9~0Ar=a@LZNYsrO)=(-#3eHm~zr!!jIHp>kftpf)c1(A&PK35<-Tdv<+#9JK zW#ELb9oc_j0QFSge?Rl~YmI4%SuyzL?LS(-t$piRd~7{hJfxtL)D6l+n-${4H}cJl z91BD>*!jDj)ej(*7q687g)yWBa`?ew&9WPPCN8?9YJc!SyXxv{ zx6RhQ33ri=eiSrnchp^5xA4M8HL9V7wXg^-s2-J=py;DL0egAd7ac9eAuc|fiq6-; zHwE#dDSus?ylQ2BI@Wq~!6~gZ{A)36PCSDd#Na(q!xTVL%wAuNq6yJr;KWIv+@``JczN|euZ120) zlXuQU)y#q0DkDWF{B860Z@h+H>$t5(^%DO0PyGx^k=e_5)!lg$xxtWBmm7M$X zt9P|Nj1L~h>ZD9jXVBJMS1wVNz~pd#_W4Qt3e#_Epp<^!`AmQL2B_+!)!Kt%SX6aA z8^ui%=SLFoZ56R!$`Kfr_!0qh3}QF*XeK55823fD%;A)l#E)LoQ`6u4`4N_Eur|vx z_S)0H!y3#z8wN;RB6a%Boz>1F0#gODzxm#YJLAyb?Qc00AM(!j%FQ?dK_+TZ9hsnd z7)_c%pikS}-}&iFt9!q_`nvRU%?J^I9>4L}(0 zKcNBSOEsU}5!9Q#Ln3xFE%ePs-K1Dfi0EX`tNv&9dyjUB2yJ7Y?;*;Uw<`vM{b4=Sx&o;F)~8^>}Is z-_13dDmFx&ow167>&t+a&sV2B4R}LQbTU~KdE*dC7gSK==*Up}p6PvBjoY*0JuGXV0Hf})ERpvt zKAHmZAsOP=dD>hk+ME`;$*w>allatK1st>y@TReExiPi=Tyvvr-dl;RQnA0apDakv zfLnUQFi4oWAtog9(gg+}BweMQt6N-mq<)q;_oT#e$`tF2sUEFkP^w{yB^52tlH5V3 z)y{MnT(e{J!J9&2(v?{MLffRk6@@nb+fmE&;lDR15Ly#7haYgecQ$7bd5(avpqC+E z<>oTz@l!7+@9%Y4Z?$_XIn;CP#~nE5H|yV0SGgyK@RoAY4AD6&b#&z9zy>a#t3E1k zRTBr;BB`?<^lN^*3f6X~*cK7K5M0v6sqD(+`$AmcY6ab&OTcQ^YbayVU%seC=-^^a z;|n+^q_sj`OJNp@LifdK`vOUIZUJ>$`ztQ552`$^UyMzwJSS@GF}-QBw)nH+ zr8`ZOMjiIV(%2!5f=h12ATsFj9FgaSWlxLA?x{%gd#u8?mQ+s&oOIJQQ3H5j&66K| z>LQ?4G*t9~QcmgIzbs$SjkbfejcJz|o~7@*FwS@6F&7i=LDKkWa zO96%zw+}&g1e@e$@P}>YOncoTBEor>2EGLp$8raS)e5~zUHgrHF2fZip>Nj&J1$sMrVTS`**5OAL-QOAdwxQKJ35z%|(Pp!|Znq(>^3k*ebnEgy8g=;Pr+Y8-x44l_xQ;oqRju!q$TOI+@9nstWrq5_F^u)stV z;r62^U^^D5lA74r$75mj{52trfh55-VUZ4@zK*T6h9iderk_O`j;Px_EaJG8>fBtK znt~307YxC9dqP0QZvb&UJ^^dXHsRp!)t8|VP)9M}{at|eTYPWs2Nc1}iqhXRZH>ll z*ID7b56$OZMazt1so;?QwDI@9lg^+lc%e$KB!(74h|}49r7+p(fzRQo_e8~N-gV{| zdD6E|*j_d1sK4Q~XsRT8%w1?%+ZwmENEUj}eKheEQC6rKx=&&IIYdw^FUz=~ay^vR z5|TRnBXQ~4Y^j3(lFyhm+_#Ov!s=~_4FC@p_a@Et*sIP3HO9}sQ*$=i3vd0z&|H-M zYcbWflK_|%Ox=Kuz!wg5azf>etHOa3u7YM(p0%Nof}ax)A3VP8JQCJ9FMXhuJ{}gy zdnciTR}&3>h^(jAXJX>);pHVGXaZwmon>@#&Le-`_+t<0HnmzK5W0rGq22-po`lFK z3T3`Z3@1Yjf9hB+@N$s|1uSBArtpfAaEf=NK*Zz>P%mBy-TLwra2mzWkNX1^6x4e< z=8LeooPC?ncQD-64mNonMk$$)lrPEGPw$KsZ}}E?8Oi~@al9`gBC-G^c$=cK8NvZj z|D7f!G+;Z5c~6xfKOg=0m7u~Bu^%-~#K{q-2be?Nd?ufj_ESL?1Lr2)CQkYM=ci>P z^GJc*lBMRP(M4Wz>NyvPG)4v)A6cAixF&BJlZd&g{nM!cjds8#}lijfjj0ajZ43MN*COt4r zATF;4`xY2=@)hAF`_?~m2-%M;(~4DUHd=Se+9)FdUivXofS`pwKXJDa6f$b`3wL~v zKR8gp-Uf+Q-o`^cn*MZNflv7=V8`oc!g~fj-nFQ9((L`KndT~mIyKFJ>8=>9NN5zl zuC+6y+K6a&yIK9vvBDym0W@%_Av>NV!=esdBKj|U*i1!^n%joSxR=$A-p5or_nd-v z#iuthu-^OJ&msqwH8gTRa0K)RT1-|RTV8agIv4W7@aEGi#_~k6hgtP&mUGLZ<*dng`tJFQ#$gP?>VRFloulO#7qSxjxm^v|=HKrdb zu?as|d>l0QQpD`I=j(RATK{c2?qu>7h4JSk!99KQjz+GD%B?RI5OC=720xE_{)jk1x)#3f(LIXG-Ef0LcHDD)8Syo&W7m8mDqa40=@FwS_+OI4M=aX7T|o}Sjnu>$XRB;AVbwlVG-z@Hrr2ohULxoQNDEZZ z;g||pK=!*SEC>ztQxIM>Y2d3=o-fy1DguljRAAN8 zE3*HYX3)sJ1gn!AxK3;_Za+GS*hczKoy3NA-gqbU4@4D7m;{tN(?c#;AYUb`&j+md zceov3>pq45SOEV2S)0L6K;*y}!b#~Jz-G^M8kuf@Gao?%?9g=gz*bb=7lm&odJO0x z`S@fCC&=EgBeo@oydckHC%#Th+lSBM6vqR?i?0&5JkJV|=+bc1gWKPq{{50(kDu$G zYX^h`5o8zP1ns(M&0bH38aMpQ`CdEaAMM1V_=Iu?j=*+@qH@Njc>FciGc>;pz|&9z0d%t=Vb<1q9%_u)gQ#zyE`pk*G3vfcKb#2@7+z z_;nYV+CN=75qsK7Pq8Q_SqyV9y*a<58EJ5oFRufyN;evZJ&kT~d*XS3qeo1FAeSJz z^twlNv6F&RCw(=4opG7!mn)+O*s}vfDbKM9_%+_EgVex`0iaqC*uhb$MET z?Eg2r^nV`rzeoW8{Wld$V92n*ER^STw7+8dxB@Kj6YBk;87V4N6}LS{Eg*2>HTB&o{8jU*oa7=iK{SIomN*h2dupq2QO?oy7cqB)?lzVJIw` z{xK&@o?Lo9519?=xx1BWoO2rS;RujT;oLq8?lzGembJk8{evPnM*BMyV+-zD+?VZ% z=ul6uaZHLR=@sp&r=3*?2C)*jbfkdrO{&VB%}iy9lXJq!?S zqO~Of-7xP7qmPutEn+<_Q3iu4NnSJfQ0QzoWlKACw~z@?;G|C#2jzy>5~geDd3#7X zm6?vnVTdqdm%>|Fh2@j5F4%iU`QEcJc#$WZs(n?HXy=N4!Q&eie4hlWLCj04l6FIoejM4U)KCJ zstlSdj2=e1Rm^}Nm=`C6OMvZBZNcHZscZ6@8ZjtfH+K49p#(sk(0h+EJ@cXv*uae^ zBgGd%r#)uvh*^$i?0ePujfk*_)ZTSh=p?^dVr=vUUZ4ih0b(21p4&S=_VF%VIC&cl zeKK%0@TWc9X?6E+HaVc}R_s^aW;|`9vy@SQ9bW?QXWTH%%1{iGsEk5cGdx})_H0wk zUq@ev2a1Jfus{iW;h8`X;D%oY?7j;h9OFM)V*>-Stjx^rwT7Rpj8*Ug1(9=GB*SCh zj*FrDb5ZBqaD8+DMZZf3^NOcj0G#~GDuS2P3l8@oJURa_0*A9E@x zt8>^{`Ek5k0krpB7h@TSG{=+pXCuDF(b||#)ao%QDDE?lnFj#JbD!#w$14_IgL*H5 zRI?aRhsfpJd*je6Gp5H)q*I2$JfV#Z(b})S6*A!PmJm9svO(s4e^L}zaOQ5r#t?Ha zU6vn76ZKUPFj3Hgt}nO)$Lh-pA)-b?N-=$k%7FL#6j_Jv{Llgwh47?|aJ`Nm1~weX zD^M%w5X2mMw&@Jea?W)434)=7lPZsCwINRAC3UX0PoiTG3W!GvgO=W*g4K!Gdy*z2 z>~S#MYH5av_VW+p!nhoDE9A$!QLvLa^dMlk^=g=VwPX46Ztr?S#+05$^ehi zvga9P(E1{A?fkn41Y`m4!3|XcHL&hWO!_*RK+YjP&d>rq4frfWbIBN8OVMU1)SYGh z-lP1Bvqo@)+Nlp;KK(6q^`sZpcTh)gaR;UnviGZTt$d*{C*A?DWrGlsm?JVfNMcx!E)3Vvu*Rc; z@pu6dV4S0rOM*-L7N(JB%MxOslDm3^XxZ_;k61cy6V?dy}={!+F{ryqK9Khg~Bm_FMzUKD&M9 zJBwOi`m!It?%I~?vQW)^*2$Y=)*w>$Y{C(sW8Aqib|UkBt@a;DAku;5h=fdm?YYAd zH7TE3X%wkWd!(no2L)`e`OUu;{0qPiD1sb{^zU7_yv1)41RK2^M7Qz;2F!nQA2h-N zA)|{YL=<#tKCEat6b{*_Wd~|w*RthPIyhvY^yV@Y_De+X`*|oAbrUsS4iiBnKe$v8 zM(x8O!Si#3Aj0WmDGdIXaxr=n>DQLFhVD2~WIM(5kJ?X|?UsXrPF?Wx!zlw5IW#`6 zN5~lRRb*eLl0Oip%R)8Tx~XDU0)`(H5#l44M1`89?$};Os-Y~VkLUoO>(+G0CKzx+ zDGgiH0n0YSuUlwmeH_aBQ714Ue$o^< z%)C1W%Ak#luIO2i6+~oTpo62&DD%MOXbs9N0iBF)l$JyKiBVGLfy-)Y>#_48F+7+> zz1WvD9?5(5+{9h+Z*a!bd7bGdqsukBqgH?s-@L+RXEo1N;QqjZiRx1pDNLqRGqBBq zh}4SUv4*3s_cBz`fGDAp?>l@dT8xl4iOit}k6xFJQeS00fWpywLFb;*wfK?x-ITP_ z-sm!*S&;6%9u>ly6+yGartQ89ZIa!!M1r@g&;C^e*JB5l3R~0 z@Pq&l+(>aVZwpzt7p-P116c9NQmvxIIuMTxCj7F^o^%@vVG-!2Iv;5~xzzjGV;Gb> zLGdN!;iR*ZP^L!}{ANd4v{UC;iVoFoPn~ej#x+>cDg#cP{EOpP?qJsdm|(lR(=_he z#r;rRiE8bF=sAlogaS}kmoQ=8hx0>EA`^Im4&BJ-;t7hvG_(EEVDy7iYfrN=WkBKVE$5P?p1p#&h?DbLlgJtc)CY=0hM#XZG%GWOBQ+AkZP}l!(ev&eVgl#A z3zH;rpikC2CL~`QaoG(QYqEOhPQQ9(^7-bOxHIR$2YU(23Rss^n!r@x_XqTChxbbK zSY-K!tGUE4A7sod9&xEO9?a2ot8uodQfC;C#LB&*XvJ~-FimzlIouVswTW9I0z9bf zuoGb6su_Un&W4sGPKQJzSb-N&`PXM`;)ssI`eIvt2=A@345B>=VB8PKhp zc2j7syTh*1tZ~jb+4SQx&AL1+d-$)@;a6iZ<=RqrF<8}?=n#!it zrqL9;7O9aa5L33_Dmy?6oNg#T6#aV_i+*TA?GXoh%otjK@Z8VV$&pNHnHEn&r6Xs4 z?`E*#Tp|P@Wqrvgk#X6=LMA>3=`9I@9K{*;3m?kQ7w^bHjRf#q?ZMnF{Tw5=oamqF zpJpE|EK$z*z+io`(c2|YFu@eWCJ1yoiRlOIBBXsn%tet8a^5!n4~jnig&1mkzKPyf ziOKoKB}a+6*;gFwixjWTJ^qZ)SZ~c4Y;B%E(>J|ES@YgotUqGeYxH95NW)S%SLh+@ zZL+xhLyC&i(!Cf>#iM&)|KPTJDXe)3#-gQ<#?jAu7C%Lm-0Y4p^B2t!HaGJ*VkIo1 zd8uwVEnQz+NCnv-P6BK~eX}WOrc43d6lt~4BI^^QdcPlAt;VACuN+L4a!?k(AL~1k z5r8;2IZUQI9qFw@QGm&cOIkb%zh1DqCH|G3{QT6Mrio_%*HtgFk?33RI4ZrVA1|9H zTF-r`OIn-O|Fd{#6Vp)%sS^nRku&CBO{I29;v@85Wab!6Qzk?DVb%_1O=UKC{0*S z$PbwzGP9Y&T9Q!a&P%)xOD})mX2o3pv@7FKtJ{4mGc}o|9)uRrZIV5bbk4)koV`?2 z2`BJ`?L3h6Sg|abc-L&bnpz=q5@rlD3m-JtK1LwADX<#=WL&5jGAL1=ybmoyKH2K0yaicgtYYPJ_@6FxmKD;X`m|s(ZtfLXydK}07 z7EFVTmPa`lEbteP79P%)CUtHtsVDyJ7OdWLF z1?PDoioUjnvGCQ`s1=*M6T`5PIx)x>h*4=%IQigyx9#QtV97}5(Znc0(`7i0E+_LI?pv67%e7cAaoqIG}R08!sF=~1Oo7R57Hd~L(WA*ja zICj?1dmZh5^PU>wg@aSc43<&KUs97PPW(Y>BG>7uL{^-$dN%Pw1tlg{6 zj#Mwqw7~E`UB#{#$Fhqrk&m#ldCIqcnAgtG#z^e(t7uUPV|*9xd9|Jdf&ijCxqM6k zt^k;DSJ+vD6sn^BO*b< zhVcr^6pixW&e81|_9%DI2QAc}Ez7PI2YRiG`HBzkFweNJ$YE+t*~DTKQ>8`6xfgtq&Y3PW8U zMj|&gzozodCr9tI&r-*9IIHr40gR~GQe!C!tvkK5l=)5Fb>@S6sBA( zavF9+ijVFB80e2?q0he`|<-c3C?pOKDm#6AI4@ae~(|O;m&-3jW|87TyfZD096?U$b zhn@iU^;mv9BD@p0hq64=>%mF&`A^OmpMP>pdbik5H3MDa-_?hvtGxZj!yt9d=(FVm zfi9^JYvT9M1NO+LCHGmjS-;!ST>ARg_7A4UmB7A_1#p+hOq)uhe*1f+`_5NAcyi{C zo9N%^OCDz3SjRX)%BVQkrKW9>*|*jMajV1EKRczp{>iG<>mC8O(>&`??n`)cV`I*p z9fA$O*2Qel+KsBOS-`%wr5JEuHPFIqzn99hojZ3%b?<-2Nmg?i9d@@C>HpZ$v7cjs&&>`(KBzi#d5^W$^azMdumnC(kSoznShSb#4yRg*;VbV7Yhm zKt9v+peb|T`LBI9z2SAEKQnvf=jkEkeGD1fL*{W+G8Z^k9=O8t;J~Nzj3U2(hEJ`Z zW_d>6(^isU%k9%=wu&e-PFhk|#N{w)iIfq8$D|NvHU`g0Stl42JcD>!-RF7Vy6bx6 z=al0M`y`Fq1eM*k>~wcdetT={+0^yl&zyPHcQoYf4sM4aci`qo-`%?v-iq-sOtLz- z8o1Emd^fPSasA%gcP9c)or&3+75bRtjN|-YYG03Pf^BeZn51%b0wY$7B^gvaS1B?# zsCb&DFicQc*#{$262yWlLTmO|!;12N!IYIgS^7<>4N{>nsd|l40*tK>VTSLbUVGCIa-Z>XeZ3~rF zXZ+2$eA;{SOpRVvJ7yUUncL6ytuUU;^@h1-->bH7D|R)e&D?3Iw2aA}`TEvPxmS;E z6=8hv@64SW@6N5*obv2b#}1w!wGXD1eRr3AIopBhe^{yW#F?Sn6+I`lNs4bmOAr|G zax0LtAjC!H)~m8mdBKk#J1YEl|6X`bL=f2eIr#QnyH#*x?k8cvjp0{wx9$>pu%5x6 ziCg*6pRjFft2#Q?Gjul`UweJs!mv6Gd;gFBtQOz>8|eN^?1RCE1+Uto{xbetEuzZD z_${~a_Nw;3r|16;*mHl$!Y%3>%72#I9}a1)t^T{l=d?DX+Yxz&cING=&)TM$t?LWF z_W!?eLSUNR)p!3^e0DjKc)-2kwsCRr?%#{g2?@SuJ;(4Y{TcVvZK;|Go|9f3w+w=( zb_~yf6J3C{7o)tWV0?dvAtZ+GNefPQKeGJxUGdUo9Y1nhYIK#{wt?bH(9lfjpPdrl z%3W)1SLH2;j9l{6{eVV-N8l7j3h&yJOqd(2f<;$!$HTOq!IbH}c| zwn6N_%nH;DSbsQ7<=tAsvfz(F9GA)mAMM*=xjG9g>i@1cuMbU--N01AUa{_MZD9JZ z$e*9z9GJ~Qd0ZGDu1PLM;B{PH( zOu&#NNf^LDkT4(_2AF;3eZPD6tJ?40-CJ9`TeVi9W4GPY{q%WGpY!|wA7c#lH5lp7 z(L*2*MlDTMV+aHWK0*&q(11URah%lP4=SHqTBaw!uaFZC(ctfN-kKIZ5Xeb3$`2Hh z`RWYVc-B|#uCIv~(idg-$Pt1Vt*Ec$531@tV1DT=p#FiC>%kf$3!|9| zbelcqaX##Eo>WQC(ed9`c2VQwa(=sqN@Jg-efks@UInK->2iM}O2QxJ7$` zkB@J^m`X)eRp41FgtGMoD};q5>5MT9>|(vG4N+B9eV|E)j*ix35P_azVTrjY2muFO z8*UtcMn|9KM{rTC(3Zo@U}bde7(KKaF-$kp{ya<$(vxp*2}^7y!S`eD6~56mfyPCf zIw0fG+Yv+Po&v%Gyda`#D%391-XA_4Ewcv8fgLXsdwh7`X|BGdQBf6OMA6f)V#ql;?jw28cL5@yHdgRCuytp zLSncMveHujK&Pk<2?XV@=I(qL%1s$JRYdFzlIZEsm{nSC+E+h_n;T~{G~ZC}-n3FG z=xB=IBV<>N&oCY*Lr!~CG9Pj*(kn2AoLLq3+pW!ptHox!fuR}Ol6*_OEl091&2jz*d3w|cczaE;goN8s*Gp`LS#Yp$tIP;Cari@hnx5aG} zRIZ5@21{3V>_?T*r(wu9{?8zSU4Fif)Kf>avq{b-+0deCBg$QU#9Kmw)wAr&M8eFs zn&UA?awwx1hg?c<;PC#^HPFcVBmY5SHhyIcS+AeDfrSo`-$a{u)R?YbB5JMTWerRY+7?V=yr{{bf{>=8>9UOLa2i^8ImMt_;0+q!v0f; zQLgX*YFw6FM92@}!(xwH%@zYxB?teB&SCyubp0Sn<|%`!fJy0pj^6*3Q~&pn|G#@s zp+t>M*0>n5-bO6pj~!Arb6gNPDwX~>#^Lra%2YItdmI$ZvoDLZL&ajusT22_#>mM4YrOk{``);@=Oi z_uKV4c`8{`oid4rRfZ?Y{CQ5bJrOgFq`0SX+J!{0U9;5**$(gf+F3LT_2=7yXE5pZ zc1p8_EfYmI0~B3mrI^vtQdC?p>6}_&9hunUIUTw@DwX%@AoWOHiszDjV^r|$T1VhW z>78=x*5&~_O?VLqk8`O%I-`b)4RUWqC9yB$h957b+k`dQIUtOEw?47{@7d~q@aPy5 zFm+Oh&;~Wt(mXq~v6q_czE#9+bOqXTu-y-R2Pwm~$B_YTp;uTY`kXvn8LepqCdYOH z#shMno}1pcvhc3G?a`u*&FqOhJbs$ym|9^ellGqK16?}wFc-4^s`puMj)5!tHOSt~ zzi~E)kJ&}d42_L%X=%}k-K%#XPBr0km2(%ZZD1=bN7%1;8Z2osgv`Uo_elku;3TqM zTmt5t`+clPhjVA#iT7Z8Sz~Rw)n%&j+7W5j>0s-Rd+ngQ!uGHU1dl;PjoE}}8x^Sk zC1Tfvk|TJ~W4$X%vkWMk9CEw1YN2;3L~{^P;}el}!eHHZ<$DsMUm=A*;re4Cy-d^K zkcGbNvl6xtI1Phscd7`(S;@$TnK1dke`9bQNdIVTf8Ss(2vFZ)6U*3441s=1+jmp> zc<)!>_K5k7`3!qk-%W$MPaO9o+`mgaW9HQ_*3V|el3>4j-G8}%65}&op?te!%}rd> zDYF35Vy8+tinw}wYUT^d4ci}l|8jAyzy)yNE!p>8W91|Zxt7UQ!uRTEIV&gz)Y^Pm8Pr{uHIN&cs<-IA!~N z4_<5aIh8c*gxqnP4eL01Z?L4;PcVmjWsHa6CL=Q`FJbk1`>yUw5X3SJPlHs)$_P2g zj5I|{+@9o(_|v>E>yE4!9{5bit;*L$&AOv^RwsSH7t9OR_sY(^ih$Efg3CD3^~Di4 z+j9SYDf^u?f7EXAMj&CN%)G|;k8#`4&OPvayIKM_okvR9HO>bLtWMP3D_cnx)X9+b zI&c3a!EtA0yw+vt8MD&fh1?(792w(Y5o-j+Wim*Hr)FWd?i_a!+Zx}$Cmy$A;svI7 zzc|Qqe4UoS8Q((32=D8a%H#0b5n8zV!OCkEv1+j|Fdipbm{K#wwTNLhf@6p*Mn?x40Pc8P`mdw{Z`fE&pljx z9R-tc`6e(OxWL0Cw|L=d+ul#@L=jQZU-@xYe}}rz@EuB@ov zijWc^v$+-AQlKC5Q5a~=EB zv^aY~ZNar;7d|VF^uOP|;O5yFyjo{I{aCwxI%xUbI5JC6W*1SzK~1M>%m{s{x+Wf7 zYO*Ob__DoAD9hBD6lHk(h5Luc)Y_1x*Uk~u?W$Qc3a&_bWWa>ZiEM&7j9fYQP6s`N zXbCHNZv;2gHdSPa&pxJi1`|?K?2O{yT-`vK+`Tm3l&9AVzp7;`&0Xo-T=*P+QtyL2@$O%12^8_Z zXRF_;C!NPctsO{8z2Nyc8Vzl|aIRrrPsZ>Ve!7?zn<>q9=eU2w|HdPf%}=8E*xZD4 zQU%p)eBr9S7aq2oDP{5p%^gG31Z+{^dx;RwK z3=uUepZ%4njGStG_?-JjGRQM#ezETRa+!kq8w*YyYsoA@>uYvM+R>j{VatWPxlW>Q z-_9>sQp8GGfMWMz;CLLupx`o!}6H z=7sFpyr<`f;#Zt!yHcgc%F2#&nOfF}$|B40@$8WfVu7yHmKcN+Q<+&s{=;9NeTnxQ zW_mcphS#djXTr9=eu`mRCDZbTNTl0XD+Lslmp|w7YDvls`xcpW%~(C7zwixfFJY5# z6g6@GEB*lLNX)r^TPbbew>9kWZq{Z|N<7u5}kNn-!gke5xDz z_?a(z%K6Bg`WWJ{4qExtGaAo{_l`O_;ccG1j{i|=_^wT7bJ~Qw(_aXf$2bKXZA+8m zXCN)+#cWzvePPGyf$`Jy9nbRxRYrpeX=!PK9I=)rN4cQdF?Nw}$EG~_G?|bWaytIE zHE#z>bdX49l)w>YDnH#&O0ZtuI2C-}`_={%Di`MVX0ZS68#>$@7ti4#Itzn*w%JdS zPs2tfYCfknkQ2Kkp1G=F#)g{O5=_OHs{Od;WXXx>f~n9_O!f(PIj6o?x1Q2QT1E;O zGzE`x{&+EgsM(2Z8f23tlc5^TBn_m$_0`J#KgGEloBhi6NEZ!Axn*5x$BPk{p*Md& zb9o6ETuu|~Zwg-J6ntTcs8Nb6`U;M9LPz*zob`RQH8F^9ZYGtVvu;l{gy;M<3A?kT zK%bYq6Q1vS?1g4R`k!8pz=~^%)WcuH?@sK5yJX~_oysY0F<&{UGE*q9;f7X=JE2IGxauxgFsB{R2U{bSv+QrYYI0`Oh1dFJ$I35_uiZ!#kfb z+LMoV`yKBl-!_WcUWk?xgomScXGR`cu8X9OT^My%idZ}lhK`N?2&zl&lE9fnFpKVA z`MVsNhb>+Xoe>Y}?b>=~T-$fScZn)PGho9eX=^|8Z)Jf-VxQA}w=4JRpQC21hKiBN zSaZ!sMHdqCTSnJ?W(`57upB2O2YF*gHlNS(YP0J~7W7?yGgz?weIymt7!oOwWRR_T zd)ff@5_%h7-u+1rU(V(&>K!H}Vx&JJ2bHK1!@En^z4{GB)>~vgusQWC&?@Aq!Txfz{`6xEMw9ebT*{wrArk(lgU`H*lP+n*m}bYES+miU8u7rY)f-ms#74sd+G97Jx!hFjkG z;l95$WMJ{$L91w$++|jIzpHM{y2n8INOh(ybdx3Lx4KO?=`-Pl zSd8MiUWY&oMp5@}gm)#Dcb+&@s$jt}Qp%QxRn|FC+x)1%Xk7O68Oy9?ttXQ3#@rWD z)_2sJUgMyU+s_z&e4ypUhdLyI6cqRO*B4=#FU_RirQJHyR|FK!dfeK-l6=F&%8xAH&RlO9Feu6i$we0(%^ZghcIe)rvj3VYJ_ z@|O>^3+_sMT~FSohv^4h#d3Nxi5$m=R&frngE7P*xaq=nC?Ls+=Ch>Vk!HQ;ynqT-8kz4)i zT{wND%mn`YwHm*Z+&RBNe+@r8+3^BL>4Kh~^fA9J6SC)>6Bg7f#j<&6t^5+7u@ruV z0TG;8Z8+%AkvvzWvHR)e2)Fgk!BI#f366t5O}I@z&ux3sw(2Yb>Ah4^{OAi0s+!n5 z-g|UDWc{XRTVSulOVNlKH&1#N5p`mi@M~pVv(p}o=#N?0Dp;6-RPo2(T`4y}hk~#c zxMT&H8niOLt8Zk6=G=uqkh0oaL67)s>JaL8vi4JDyNFm*3R{YpT zBKE8{%vk>td6F)6@3UJ~>*qlY-rl^MPcoE3gMJp=P*Fy;%X9vXi#}bJzY4#QJWEv0 z8c&McpQ)mf6SsID`TBMgrPdGHTKwRNT~%-JBrFaV&}Pe{-sok?C>$&nP})!tlQ)HZ z>*?!f>_#iRHV%bjqEEkKg_LmS|G6HOIUatZbxWMe5{}Qf_9Ti|-^xSIbld!=o^3TY z{6&_tnrdurCZy2%;qE7582bSAb?$&OnpPg~JM1D|-ipJ6nu1F_kNH?prO+2aBAI&2 z4`&}D+-~h#!U^a~+=E%{;>`09vC518-hL2hb6B6994*(#i;jLvM`1|`|6|7awd3$I zAK!L5CYyE&R^2DJJW!~W0@Fz4iQ^PU?r+S+^l}ib?c{Wln!ib?u(%jm*V(E&MgU0?Z zVAjGIbm7fwHO1&k5OC+puRdi`5x57M>Dx6t)i+;10rBDgAIxk7Y~10U1yJ`Q<7heH zNy&7AkZ&(qe-ruXc_O1VuNkxbA1UttfQ$Uk(eMAG2T5P`1#IaP;99WN2zK0~JO*ca zDY#h^DcvPuoaz$vB>;ynaWGVFR#l^#t2V$xnn6Xl*D5x)N6s_uvj|&yZ?jB$PuiWt z>2zo=#2nH;FKL+6EP)dDW#F^0N7_KSRI}hyp{mf%BpMu^iB_F8XGzv~cdhIaR#1X2 zfcngD;?O2rk>+X%pwNY`@)}iMW7o(9faI&9S6R%6j*6o2bgMaH+{zVG)`sK zxo%e{^dHp9iX3J7E;Ld80+NA&rk|3dJ-yBpdmKoy}D$02`yxmRJ3$6db($@J$;b$e7_hi=%W~FQ|4#W;@+Wfa&0A-)P z&U3w!(C)qa3D-L46fS`{O3-dC6bFba2vGGSVpsx}{Az1l8A=-jqn($RNOGs#bTVJj zQG18)H{vn%`h(g){kEU1T|)oT=Ls?=l;Cv8^;& zvWmrwn(9pIX0+;iz{mdG!U%B9E>^@O&3BoJSEhP@{|>r| z&X(T)B#?X(z(|1|e0dW_5s73&lVKd8Qd9UG*_uw{?(~fDU$`1AY(Ju=3+eBk)4|ad zJqkOO^xbFI5$S*N$LDs1gR$u9Zkv;{QK=hX(@oQ`v(=I%D~W*&R)u|(v;ZM0@u$zJ z#l~j>=J{W19{*L~e^a2KPzU5aC{{gd21_z|`dmYRjlxY`J-udME*_E4Ap128Q(gG~ za8msfDR#(se7OZrf}2(PFID=R|2zU_Xb*mc5iwcZ+<_b=;E$nrXq#lsw$J(3n$IYM zVp^-WWl7)Sie%2P81kj=UD?Gg;BKg#%sW|at@QYGS0n{C$I`&OggtmqwopkKTy;Ql zLiy=r!%j#;oSI0q`zMV59S!3~QZTWNt6F^hb}g3ITiy8GRoo0TuD%K`D-0oLS0^s~`E`D9S=%-bYco&O**u%8DfG`JeIT?$c3|_xA*lfy%0q;; zUN2KVj0t5*GNQ=O2E;FnoIvsBtOcmP|K}bV8%YS@!(Qy~Ejf zHnlwqQWYjS8wLBvS}ymGaY4bGww!{62iMTbs%!lcH5zE;M$%*7r@brQv&aq;u1GCQ zaN(NeBG4BHi(<1UZP{)qzqChJ;8)PYj|Wx7WR0iogW2;QPB4DIvGA%BndM=&DDnPh zPB78p=tmT9Y1PZ$V4O=(Q=u<0+pq+hWA!tMtXf8Ug{EQ2wBK1Ybpc@=5GlF)bG{vReVSk})@!3G z0H*eKCbs|LmG2v#wW59>UXI`{5|34sezAhr3n)LPSsgwB{gq2-`WBx@$E&Cq|B{G_ag(FI@-(yv*gh-h6y&+6Cav zE?J|G`+&QMn^vhw<*SGY7f2(+0xloy=3s+!Zn3k7Xj5M8pYU=SW$lVK7$Ul1p4gEgoi^Cl#c_ z-ApOEJhAl_jMWk`y#Lb-2;=9&v?{SLF@DhL3(fne<}+O)#f z!0lH7KVxF7;?Z2aD;*5CIao?$LBtxxzB~*~cBXEhZVlf2ZlCDrk(8dC%zCxyH*00v zf$KS0YZDg#0?cY|+DV|(pfMHp$fMpBX5@|&LcRmvT$F0jj}ODFx;dpnGA!;PxZIG4 z-j(9T8DE5(b)1i{RE<+|LarAQyt)>a5?|7+*x>pgSswLgQ3OBE)yanb12rc36^Y}+ z1!Z9wE+{|V{a3k-rm8>;#={Yr2%mvBuyRO|o*Dky2h^1<&5gE&{*Z6-nnNn6s9~s? z`05iqQnobJ7pq;w^bu#iCl7E0iw*P=NUA<9It-Zc^EfRC=wRj&C`-vuJRC zKttiISsoEtkNmH(#7Lj)gMVguDLnI$AREUaitQ(m>9^uyr>PWl8jIWR?OQAh-OGlU z!#C;dYZ_oOG)k4k3y4YD40?B}E3}^AU11TcwN%B$=2h8#97G{%uWZ)e_gu9H5flOx z7zl0F_<7>7nco+!PBYM3xfExAF1M(04Rw!V;t5#)KTya4=Dq5gt%VazL3)ti0tCYF|&>3blG@UtJD-1t+N!is$cVYD~e2c^t0+?|H| z57A~}xmi$9kbzg}Rgq5mqk})i2+yhOVf#Hcl0cl9sB>#D8yD1hDd9D(Fded~N0~1# zuUI5kNeJrT-K}QN&brMC0MY1^PZe{BW=2tME|%Ot6Geb2P_Q3XO4@N8vqI^)6VFtL zU!dlwnDgeoc&(-B)U{gY!N-A{^U#6za5BAYI2uf?!2%6t@O-b+FrU{=ziPF?^TvT_ zYs+a1@wTkjcSWiPY^+h;x9H4L#yJfxXSjb#zH*NaSBbkj+vAMwrn+!om;H-4!Bl_9qa zM!xSvKM1f{CBO5QUB9^%rZX#oa7)|TZ;O#VI@s<3{6`AJLetsVbY#8tO<0nt0qem@ z=oVEDq9$R#d5@MivTAi_(#t?gOY3R>mjoW{=+5E(=D0&jW^JT4OEWCvY%7_^TjQA) z&M%U>r|lxcLfN~wRl_&W-p6W>YeKZ?YU%_-Sh5>B&aD{Lc_C2b_CoucBjk6d{NC;} z&grQY;i8cBR<#7UZMNU2T|xZikkAbzcC}t-dd2AN^}_qZq6ZST4{F_nZH=WIq!w7E zA%9BAU!I@s{K8wMxad+=QU7!H33DF>t`n6~25u@2mK-s3{Isj{9EwRE{`jO9KDgUh z|F^t!^_p~Ayb%P;D&(QH2m78hz_1>uJ?<0nJI5-934LeBTME(RaJ1vBZPB}KraMsD zC4ZNf(4nzD00&3}tk2f%q^G79R)~BZc!;cjfAAn#5CwCBi=Egl)k6B;660i=OnhsR zB0*GklWY~g^^8ts_;`lTm299n$ufY~hp0D_Vx6&YyZHk4Ld+}-wtUB*l45M zlRGUxs%|Ueuxo8SAj$xRq0S9E5MdM6cli7BlY8s-Xj5~@d+f$TmJ(CpS!%@O48hGZ zE%*MDj02VXZiAugRk&sqlJobUDL6f%^|HYAp>t^IRkGG)U#jPir@s@{3@)cn9k-8C z(Q0kta@UA#1)+*3q^aAl)mRxPGr63}gj@jtD$A?Sy>={7`S|XF&kD$}XRYqh^Er8_ z$1ITnp$O}>Jl*qB%>K`}qQkXtvVA9`Y$1?2nwncqbMosNSr1WNxEAVlc8>XrG}dsD zcjOykL4C3!LKvMw2z9OX^63cu3qgohc-S=SvZ0MHBd7nkLaquqh;@~oBZmvDBj!3k zd+(k_%5d*-c?)UPd>X;^J6t3smoKS&eIPb*%<4?*d%sP=&BtrF>%F7fk*pNgUBf&> zfmVMNr|x$78E7KgJV#fvDkE+hh^wQEsc>e67oLRX5to-ZxlDQo(>c+)2a#L>lZBxL zbaiRcX&JSy$ow5F$5kN)omX5Q%v4AL_{r-BVH2Xc_;rwQUM^`d$AH6KJ5@!>llat{b z)A1y)4Hf_V_yUY}0jMn8Rz*cc?KggRm1Jwx*m1?b>`r_eNOHNwD+o*j<^V6h=eNm6 zIdg*CG9+-}oLYnEdU_#&C!#ZAGU9hkWR9Q!q^?=~77d+>F^O!s%0yI}#J_}assC!( zeY6{AoM6Sd$Nu_AnLtHLrg;OYDq1m+s&z@&3F^k{7ah*Gb2s7$QR=y&wC=Lu$00H^ zA)CMd?n%FV8|yJzes$5BMqavI5|wU$nG)r z@zgE0fJgEDdXXeYSMC_nPp)BOp-u?ub%=kZsSWG#?Bu1~L&5Q!$fY#qZ(`nni(yGR zF3*$?6JAI?FZUTXmO$1^&q=G7(QP&hk6qAvJV3WbK-ILZ--&PCpU>1T5gdL`(0|m4 zZ)Ov6);dIH&lATSCr&oYb*+;B1Z{i0`@|vTYI=-l4%&9j3HV93Gh_24VM!Fhr4qO> z^As26*RubMs0=aJ$kG^DKM02iHIjry7AzNuRfYR~ytgvK7se+(n-^1E$Q;|#?qGJ1 zi$S7gfrm#bSNP4{ia#M=fuK&;3u{O1?n^7`$9B)9j>&;~v%fIp*z{*FfOwl6rtbmA zEHBxhwl+?48*Gf0;66DkhiVt*<&Yy%JWr)->5)tK3#Zaw2V1C zswucmbkgjXWygcSC%x`f-SilXlL#zq5%bNitu(+upqwMX+lu3A=^dCYGAnajG14M= zho(=u20Ntt`5JpbCm~9h2U~-&azXC0a9BdV&)~1dzof2QYMx}9P&~kreD0*B{XE_K zX`SS}>C;{IXv}+;E^_?+8O0!9SErVifFDmelVx-Jf+5BcKw8(2mucs({WL!X-ce=l zWP|NboHpLS;$@^pj=k|>a-$%2yG_J+7=BHYP4r_&EbUbpO$w*40Mtc1N<{?ZWjfi^o-PZn;J?^h-($P#?nf{9JS%avG9 zrH+&-O@-6xM%I40@0>Fa*?L#(I-U#+4c;D1$4SkG-ZHrz|9L}0mdu4#Eco<(sSpSs z!@wiM*nQ{jGJ){Ls0Z^RKa0#BnMGzEY}>(!5yKvM^a(zlBi7*E&24#5Ri$C%wMfB; zdrVw1&-oJ-lIuMt&5RU+iOtJbIm9dxcjxBibgv8Em?eUG(Wzr4yoBdTjqB&+Gre+m~k=OTpWkk&#LevQCWiN>$(feLIyc_N=p9z>h{;lBF#n;0Qlc-jJ(m~ z0>zvL7};^(A-%FIldZw1X4G1rzWgc`4yao>RcE1sQL%yFy?i&@(F3$qPQ$!ajIYgp zkW1xcvh#Hz_?7g?ofkVes7ow&&P=pGzo!8H>HOq*g9kN@4*ou^7Jlu`#XIn!}xy!o0_r|4uP1X1yseScYLOaa1} zffaxLIi#IQ3Z#szaqmvXvCOAp_dsplK_T=AC;bOwDUnLT0FHiq8&u!Z{cO&>^b#BT zt?XXptuGg!{vz5J{H;a-7geTDzhe4_C$v6?f4?}bok@?^o)I2yf7shEO9rA*MLBvJ$J{&$mR z;0vL>@~0s^~_;Bmb z&{@SGDauS>6Dl8h{~Oni_8HQZ7vuYu2e?Df2f~b0jb6luNIQv&`QEHAz$VZKeiAT) zuW!?Gh%;?EQ{wPwXEJfEo!s_5^Kk<@E`MJHP(2Mjh_P2A=>e)8_C2*)VC8vXKd>N8 zXJ#F}ckIcyX0N`~8-BxX|NBf6DW`cqPV*Ijz)L)+T(!5?)mvrM_KB|{M(mK0GoC$8YP{qXK#-{v2o$d|{)PIs|O1Ml|#)a&hX z8ZC7RSe^H@CNc?V6k|!@8s3mll|U)}BWwRRBkTbo$NM;WP>sm6{3_ zS&zVMC;02ZucA;@KdXBq`Xdm8qxPl*qko}jsoA;Kgvyn9FC@)EqGj+;7K4*4vUEJ7ji zX~0-s+(c>s0>k(p90%?iv5jvgBF5n#rGz3dNE?umqpXc=84JV(PQFY3f_>vART4Q1 zf~*&jfPFt7&~A7$#^DJPcKSc`1tvi}t+!FFmoQ@T-GvV^4iS|5+X5%U;7U}4QOaY4 z8OUd~+-#F*+<#D4pdz@PU4M=x%m1mF%pc>&uW$y&YYXU52yS7zGr4_=pscy?F0ig> z=Yd9SoJ-Su`H%HI>D#fg-1esPcbk0mSq6k#a@BX$_aN!~D;Joe$d$>GC|0w>Wf*r- z;(wD1fX3kVw3tkV%B2=~xzCfjj8=WGM>!_>tz5g*M7gJ0yD9<*!1Zo@V1)pbGE8WU zhdVHh%0jdA30#@uRp09VYNWtcb8DBa5zAi4ij7m1nxD&;iYnBWI1wcJ?-wSxXMvD* zCSjNjIm+EgOEI-SuCDcpTimulwJVo|(0MBx!mjXdQ9GYY3m+jwEo?KNDuL@!U*UVV zKWru9-T>JuhL)iyjU}?%bRG&258}uI6@rS?hJ# zy9P72_YJ~L1n%~S7h`Ba$bCEI&cJ;iy-dvb;+6){h6uO;O=vqA<0nxgGm?IPIYa$U z`~n9{3>y$~TkVmP@HO?dHMr;7Qn=Z03hC~wv8@k+l!(oJk$6{-Ol&8I0sprNMJG7i z?6*1E=n-GOsrTrX&6ScwIo8j%vVsi#2Y5V9p{O&GCxQ&yg=J}AgMagDf?W58N@c0Q z2#3KvcgBjW0~Y(jxRT8-|7F|Y&gI#gw>-eap=cFBU!KU*nbaK%PI%z-RF(_#!}AYI z$Yit_;pjSweAVkiZ1ic6a*Vy2NZP3O*mc$1MIOS%63vChZAM#8)Y#z)A0G?Yzt%*$ zjT0P1E}>V%(N74WH^T~muHXrDg`3{H_s|O_{#8^7k9O6lPXJxvE%@SRzg1@^3s>U^ zp|>I)u&{`@X40xGNh2m<*H0`m`o{aGLwnF{z3$4ka_f>3-Gp=w0Z?G@f%P#&cc*eNdehe_9?}0T*OCW9;6>fgJ5(dhY2f)x+Y||dL zQa|Zg>ot>ed_+Qo9{7&l^HQ`9`KtyDml<+?mqF+G02pL+v*n~8287#&Bd{!uQv~w` zaupZ?ZZJ4o_!Z3#(>5^(@WOY24hyd(oUID#*;0l2!oo<<$qts8i_zLoGc~6lCChyqN^V&DTM^^@`SRjO2{ARVJdVlyaqRH%sGeZ7`Fee+!#Y3Rdcz5tQ-h(H?Xq!o& zBOPWHZJ%SdrD{6S@@Rwi|Jd*c*$x!JOYmfM>Hs##WR|o9((OxJTco2UG{Jv22J=yX zv4c8N;6>;zAsx|ooxhlK`CHM+27*7A@GEZ^FmA&3vM`E2iOLIG9me9%d6jdDbljA~ zO#xmRw~OL=^p6j}o^AcqYnvf!;<5k60s3{5_A3nL0GXLc{j_ zi@QiaHd}W_rdISitu<9hK~{Jt5~!9Hgrg^yyM6gWcqw*zb1Oe~WXUqgVFobT{%c>j zJCAl}nC;X*oQ!CnJM1v#N7kPm5ZV4BIYtRdg+NIFhkiFLy8^Wq0ky4KezdB;n%fIPT6g|&mKzRt9`onD!yHW$a!U&rpQ>=7L6?L9 zD+m@uRrQsRd?~PlL)@Cd`yGZ*`ZSWhA3p*86(NK4PsYxqSGfUnD&ak=0s(eqE@1x_ zV^UaGscZs3CDEeUSHvkdR0b@q={CN!qPS8Bf}nvMwqw;Y|>_Mv~u{t)^%o0IwqD4Lm6@7xPiq`m#xecWy9Df zSOeOe7?}pD;}@2nL9-zPTO6yh$^N|Wv?SZUueULOF_2m1viELaWEAy@)z|5B^3Qw&ZTh7&s;e zzIj-f@(}jInT$fww(*sJG;@KSV%$fdaVyW*nq>gS%jotR-p-|Jn$rS^|a zdGCTYjouEhSO@T<>%JpfgQTE~rik?|DsM+Ad539%i4EBaXZ}$u6oEcBD!2U+@J^XA zswkdT#Mp3o$iQ+WYpl=a?6`M4A-diYQ}MXMFBLbh3Scv6o2{9ob?VV zhw%_GQM5!p^Kkbsu4xcSxBeExlVj>|@5E{)me}mJ^dqnaq!WSZdT0>Gl~Wd-gkos1 zdKS%;7qWO^`5=bs0%3>@@bXvCn7U zc;0$2z<7(x)oPLqJjYG*+h6&YcV2u4sN{FAC(a3Y+a1!dGhWDLmYji1C@OP&I#rnF z#yf!bgmg0?g$58})53X~3Fm^koo#^MZrvy`*B5+FGm$QFv;Qsv%h1?mQWjili|dLx~Vz?xV!{$4+KtyotdbnYV&v)3P<^Wq4^Lk}`$T!N`Dk~dzMxhJFLCLUThGU=(TaORZ;c3+#X!su z2Knofh{$Uztp5n_3w5BlCd*w#!KJ-fh^#xL7MEBphvr+|hloiq7no zf?lE~>W(*<0i3!F!8Vcvfs?;Girjl~_>_Q-Z{FM0z3LJircOcqQ8B+alTn)TkI!V` zS*g5*S2xo16VfWfUK#;!t@CK5&`~1o zD4;3z1pj+x<#&@-d(7s!yESfU5Hl8_?eE-5ZPK+~|HzmjzWdn78`A8Qr z+kpF0mz~{3a5BDTlmto(CY*fg%waJcK6Mm|STGw7KZ}tfEeL9(p~;`?kLDAcOZSta8Tu<~c?(qJ|YgVq2H=X7!H2 zhMSLEGajZn4i841w>P)={P2);iAKbuoI{Pi`EkeM!D?hA~Fw!zlC~Y46JoM0UcEKk}8& z8a}i=*Wpoc@xt`((XaWOnU9^r$!jEzWH zVy(J;^t{=47E}oLzGGV{?g@V)_x-Yon19!C^?5uy1_>`{cn?a<49^3O=57 zdNt@fHvA$8dqBHX%nWxTuBj_nVww_4`?_@A(%(JmH#9b#){yS5Ys{&io*^mbVB#b< z{Y*dXEwDWFIO35PvZsfzJiI*e>T`NTHmH(`(T%p>i`*g-N495Ztx12Q_qawd&?u9l zy72i)0(-~<<`}Ki`-`M`xZjx_13iYImFC3HB79!d7oo}uUzmToooh|8+^!cLN z;)1l+yTdm76bHVHgM~LHx`zKJed%DolX1Lzd{FvL{xp_qN>0Qe0zLg*}Rq4kIgXrGSy;??Lq5!HI>G=cKmlENPIeb-L2Plo>;U6b%DD z_qj_|!9QPnv0=X{vy1x9+H88zf*xoRo`f6q zKyaA?IzoJIc|EA_Wq|!>eal?0>gw2UU;MQ%)j``!{;1pMy5da>>^h5a`tXB@o~ZU& zTcNqTcaW8N^w4yTk5PO-YoqrrdP|P{e0PuOkSViUa&yd-AG)=@{jl%G!uognUXO6= zI#+gJ@gd-bvT?=d+;o#aJBf^(YwqFu`GnyP{;=o#z4}kv**Cv7G!#-Vt=?n^br4?m4$HFegCB@8b zRED{+fmcRqac}TbK6zt6!{mmZxs2fL!`mR|6{in-k}%}_bAQKS-oTyrjX>yq!mO`* zHX8rCTeRwT%VwYbSmlSM(%gPs^JAUNVad(c2W6Z z?y0uKm&)uEN4VT;@N@(&jQc@Oj_(WJgZC}x4dBsdi0yD%M<^@amJ1<`1n*dH) zYVfp$zOhuvcIocy+k*wo(xb!H?fxUCO`UITU=TJWeYi$6(E={1uV60(N>pedTFLYd zkpKSi^!dQ6E~RnN2FAQma&Dtnm=w1LWOkh&xKGx5IFB!PO4c;lU%SJNf@&^Z3Jnci zB|erCJOdH%dmN5`bz^f4EVh(yA@E={F__lYR=9?30%=&*ML-{_nQVH26RHhm{(7Qj+O{`do8SOSW4O6)woQ_MvQz)<0JhnFU#LivxbU3P8Kh!dex8J z{<~_~!k61&G8!L6CkecMInmeI7UQCe^cqIKK~AwmL7iX*aD7k5$;+Ry=wf*BSgx!K zpC8lf#r}#T{G(}8+se(!Sc7utiD20 z_2U=7ZR9J)Dr3yTMP_ui_k&PaQbEGjommua;tiMUHs|k@x7yq=?!lk+cb+*7CnEm0 zt+dO(MI0(&5Kfzy80UeTTBKImkmc zf`u|4f)Y~G{_Vc|H!!`kV>#1%wreTRYJ0b(Y9@G2I`vp)CH{oBplk}0oubk{0m02t zceh!^yV#g2*#RRdt33Y7Or=M21q%yZeDZ;uN~J~GO8X=P*XQk8>pUwjVZ|74}qys!v;Gd+Rds!LXbJV1> zUUE46P2I!k@!%aWn3Dc9zWV$%J^x?UfwBjV59|*dGXo}!m;GNK&!3gILUw5bKjXZ) zGwX9R4{N!(*oeP4dnWenyKXCg7aK_nC1dmLyMZY|u+Zeg^)q)aXIM{Tnx?YS<{j2N gj+EUonEzRm(ib1rHu}j2JO+!w)78&qol`;+07xZHH2?qr diff --git a/tikz/CBC-Mode-Encryption/CBC-Mode-Encryption.tex b/tikz/CBC-Mode-Encryption/CBC-Mode-Encryption.tex index 1aed374..def9200 100644 --- a/tikz/CBC-Mode-Encryption/CBC-Mode-Encryption.tex +++ b/tikz/CBC-Mode-Encryption/CBC-Mode-Encryption.tex @@ -38,10 +38,13 @@ \draw[->,very thick] (E\tmp) -- (4, {(\n-\tmp)*2-0.5}) -- (2, {(\n-\nr)*2+1.5}) -- (x\nr); } - \node (Mx) at (0,-1) {$\vdots$}; - \node (xx) at (2,-1) {$\vdots$}; - \node (Ex) at (4,-1) {$\vdots$}; - \node (Cx) at (6,-1) {$\vdots$}; + \node (IV) at (2,{\n*2-1}) {$IV$}; + \draw[->, very thick] (IV) -- (x1); + + \node (Mx) at (0,-1) {$\vdots$}; + \node (xx) at (2,-1) {$\vdots$}; + \node (Ex) at (4,-1) {$\vdots$}; + \node (Cx) at (6,-1) {$\vdots$}; \end{tikzpicture} \end{preview} \end{document}