From a21ea5f5dea35acc01382acc546a2e8ea25c6263 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Pavli=C5=A1in?= Date: Thu, 21 Oct 2021 09:36:22 +0000 Subject: [PATCH 01/43] Upload files to 'pages/students/2016/patrik_pavlisin/dp22' --- .../dp22/Modelová architektúra Transformer.png | Bin 0 -> 100902 bytes .../dp22/Multi-Head Attention.png | Bin 0 -> 32856 bytes .../dp22/Scaled Dot-Production Attention.png | Bin 0 -> 18334 bytes .../Štruktúra modelu sequence to sequence.png | Bin 0 -> 16721 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 pages/students/2016/patrik_pavlisin/dp22/Modelová architektúra Transformer.png create mode 100644 pages/students/2016/patrik_pavlisin/dp22/Multi-Head Attention.png create mode 100644 pages/students/2016/patrik_pavlisin/dp22/Scaled Dot-Production Attention.png create mode 100644 pages/students/2016/patrik_pavlisin/dp22/Štruktúra modelu sequence to sequence.png diff --git a/pages/students/2016/patrik_pavlisin/dp22/Modelová architektúra Transformer.png b/pages/students/2016/patrik_pavlisin/dp22/Modelová architektúra Transformer.png new file mode 100644 index 0000000000000000000000000000000000000000..f3aca0a14b70b84a640160dee26d38b9d40027e4 GIT binary patch literal 100902 zcmce7cQjnz`z|R&3(>piT||u@BpBW3J;D$@dJ7_YXN=yB*vxDL*O&odl_v9BqUtN+rP*^O{rXw zkZ$0hSK?}}23x5vYWS05HO6hz^MgLpfbbtacq0B9jfUiv zvYLJWQ}L{zHySVT)$s8<$X8ENJ(Hx`$DT*c{?PH@)psh`aMYZ>`l591z1p98AN8L< z(z?MxL60t*dwOI!G23o`b<>jEI4s+#_=)L^7ZCTM*>-V}Owk)xVee29?2A zS6A9#l0R1x#scYM|J)Q{?!W^Z!6M@;&EdKmwg_8}<2vgt$)VjL;e5qrE2zzomgl0RWvjLhK9i8Le7}+&kT#FdpR+O z8}8;>v-d;n=GWR__QV%ET1-q#PWvSpOe#_G7)GUl+FF63p`rKNQ&n|C*eIzrIXO8y z+6OO>#2nXfBB;bTZcK@DJzM`g-H0Su)4<@dq@*M!F(*V+9aMd1}@KgO)h z-HY{VKTTGc^;(LA$#7#1^WAM3-H6}r?r!9q_YDOI1S(f5V6m{UFbSx#oog!BPW9rp zcW_YA)BDh6i+Ti^ZSt(Yj1CS9Ylktb{vJ2^5MgWU?!KH8Rj1qmg5|*Zf-48 zQ#z))#>U3WRck3dRE6Ka%d2T0gwBkc^7tkp~R9JQ(o0K zc@k@su;Tyc=tL{43WWcvDJv7Vwzi(t7**DAX!S$WDtqgHiJZu5NvNl%w-a@Hve(wu zzB%CWoQC+tCGDY+PP}?6Y}^?pgdz}~0M=(pmetnW;Cl&8N=VSslt9*ZSZEIhgAqU2 zMDorDs*);pS=%`KF#eo7+Duaq=u2AKZ1>;>vdPIw;ur5T@Q0;i)db^`j@6$K5ive= z?u}z-Vqt++U;qc@`y%q+`R%KPSue`a>}2{}1iWS*OjxejwrIn)o_DDyF%P5Yj{{_MH^ z2*t;Uo9l~Rh;uw$Y;I1L_Jfhp(dF+*BNRTsxx34_4ycE1rCwL=lRsk4qo7()axepI zY{yo(G^9s0AZA4n&ftZsvmqoqsX}_`2n5i%J(jH!?CZel>3q#D%y( zQjmnhj6TI#!8z{J74qb<#KO<5X1=I|usglZn0p3&E0|U+iGjo;jM~Pzeg982SV>bJ zuH#A~wb)@iqra^r=8yhF)v!fW4){jp_WzK!{Yj^lq$8M0eJ7h^MTOI?oS4}k|C|$Z z-nE*56|<`vh!#nJ+vWec80At(&W*Z+=H?=#PsP5StsOD-@`QWtgWrJ7ai&pkJ;x>`*CPQJ(#VYB`YhtQ7tUUaiOw#!v9R#zAqL@ywHwbnbta%-2uxldZH{kN7X)Y|WtHn>Wqwe?#S>iJ?V2Ac*pi|WtetyGl(n_GM6>gvY! zox{vAF)(5hN3*hMCTBbk*Hq4~6cv`cBB|mbuz{wiD4bdiZz-vOOLk=msO(#rLdodU z!MY0olRz!khNsR8G6YqQW4!dv0{%C*%uKozmMz{*cg)`V}&ej%CP$1m3U}6v$gxM8FLJNV8P2|}-dRkgq)+!_x!S@9O z1neoidlnRvc+iG(6=Hq>HG)JLSIX1VGmJ{iz#zF_L7!+Xg@J*A%RzQXJ}O~|^a{qS zF3U0+{vbJLq@_h%_ML?VOB{!ONJ-PVtTWnEpWKt6o`JL2)$Egy2u5)YP0g;u^|LKEUT@EYg}L}AtBLd<+b0<2*x+hAWDtwQE6QJ z(BI#`U*{;yo=S>?^FBFe$a#ZN$azaEkpMnk59uXz+#FK~c{Umzktfd`oXe$K_uv6KvC#Vi%YHr-dYalpeA?hF&h!&$_3KMol#T+af<3$v|K z5(Wh_uLU0?$cmWGfi9E|M)#g4s=(|=T8#qj>no7Q(S|<|jzZuv3 zoOT3m<(DrnCJ8>);SU_i2!e1xn9RnYD^ZYO^Tm!3bKIejq&_->QW~3o)$j$p!x`+j?}2{e56Dk&4k@oqKaT^WL^pj$)TVqw!5eg`wO-$s7k2$^ ztqNAD5a~mD*~K3ak-0?=Q39>y?=lAGvb@V6;H_8X7J}%n>(C{trJ2C$9u3f9S=c){ z#eM>LN|@`meg2FK?MK67_(qkR3svihg1+~<*sdwRVTD8@g#5VH8Y)v!>;^rE$jDeX zr6=byB?Eh;1=F|+Fxz;FKYUIjrrDHv59io*x9?{eb(LROa>2I1ZF=N*Y(*7rG`0Q&;a7FYx2aqzk7*@H`4ekx}7p z;tG`;I6?%cJ^)Y7C?$@RG+*oVzZ}4UO4bpkMw+6z;(*{`oKEH$lbAsPP+5I!CI@*> z4FCt*7E+0Ony$~#mGD5*>&TTGW25AUKeF^l4P!I@0|n)U{L4S^d|4HztFm(t!=lVW zR_93wY7cLZ%!xr!8)S0rF&%>D^q40z#mM-Eyc1*;j608ExriM4O6$I}y&Z1U7678A z1Lb5;k>EDlHl0bO#Y@eSk&w)fY8u8)gPyL}(R~`ZiAkCT!ck0FjWJ2JDl>Yvg$ulC)*+ zCrTj)2B}I89_3?ieT$}rUk-l0$Fm$09v%)8fErnF<+;f+TgsJ7L*BVF;>ya&$qBp< zMll(DK0*Xr;iE^ucaSUPS)86_c+w?0isBmftbqCNK@|m2gL$tMh7DB+6TI3Vxl^t2 z4zQs(Dw5(?IdAJQw;osotU1x+Uw!A_upkJYxoi17}&C62ecrChTh)Hg1}fkjvI8Igr3h5-Iso>^yyFgYiUCGD5APu0+b9^gS&NkIb)n#%Emj++%N?s= z{`{SCY;$w7-chjB{(+hzX4?$bpFwjwGU!#!5raequE;=F+o&g(ZbU3aaEH7@#Z|$c zC$lcD8;HE$hr>#}XKJy-de4Em_}u}?C-2h0I*)#JGp4uST+Q8d1O0!X-Z{+M0f0G} zcN5wgutir0Qz}$uei*xuXqFZ&m%_q0WkwvJa@XlpeKT6%OP_5Ab^5- zcsKD1$-cA7Cef>=goK1|gI8i#hj>7hU8)WxdNvko0*w9j4jvQJ6=D!^e2!O38u-u0 zzGYgzU){~GlKA#3XP*6Ck^j3(cFR4n({!;bw_si6&rZn;{Q>}5J^~>QR8{~YzyJM9 z9G{4&rhcN{<(cXC1fSJ(Z%RY&E8dip6lD#K+;S^j>^jujIu(q^_>Zou zn8WyY@osm#J&g+Bqz}iFX7)uFng(w0+0Nc)&0zoxAypFIdywY7!OUD(&{GxfdUZ6u zw^P6ScB0g1qQQ;3KV8hwWt=#`P3Wxh0dAz?vX*WeRz4!#x8xLTcQ=%^@_VK{i@h5?1GAvto?Zw-qJz( zc_%a#bg0~zJbN<-Kjwj=(sh2cdBzVjO8P_SCGeqReIo(d^sV}{DMh9a}hB@ z$@DS|7>fAR!mQ{R@yTzGKM9l`RZ4y^g3jb^B-B4d(;J%?_Jh2pF)}Ov%#TKaR$Z{a z%?m3rOT0jDI6t>Mox8b4B_ksf7zj5?kp6S#a>FH{g6{^NG9#LuuPIdA$|MMrrNJ15 zF4WmP7_5z3oO2e)l`DOnT1R`z>DkB>#`-U8w0v9f>UZS0Kr-1i9WCyCTw3)UlCNxd zXza6o5!EA;&}&Z&`n*y<^ZNW-D|q~;E7orFiRkB|B7lF)MZ4=`vS%0&sY#k(W?xbm z;iv8-i}%>aul9G;m|?;7;L-^rG?Z|1%=AZMD%JVd#II|7XUi3_mYseiUcKLU=}cf= z{6$uQJRL#s6%r%Fb7&f3={E*}*v7`MK3QeL&6;u5Z95o~CV+UJyjeBhGYD$lotXQS z`FYMBTh~9Q=|6%{8!Lzd8kB%f>T9kg)Rf)~2Z#l;EFBkp! zWb@arRVMDr+T}BQv7_-mj^3Ea{i@MXZcTC}+@HUB`PG3lB!BRSU>%k+X9mR%F}L@N ze8amhjU}$^PQ1^u59fr=L?3p4-ss2QbIF{jp^!_BH_Gay(-N5eIt5Am4%K zpm%R(&_l-X!}ZZ>0z{bXpeXG5`@^RnPKHm21t9nzjQO9^ag&E`$A2q+uu{nOX0r<2 zVoEjBng`=N6w_$gLoKNa&l!PN|e1FUQhRk`eA#k+?vr8vbyX6;yNpOj#a5mx&^QbMbgP z5K)oaGBQSP$yZCm#*I4}=&<}X?-QQTeBC64uM}42`9wJQF}Ez&Ji!jFUv$LtnCURT zgk$m%xe(*aeiJQ09iz1`^FW|PlW1BTQ@wbLliQ~vJ>^sMjjb=>s%~_Rw-lS_(5$D< zioI9rr7UOedVX7f*OOX;X-yESyCK;Xy#&U)$?rBcaS(%OcIAh^K5voVLd-_;UKcA5 zr*Xg?Y`2jgzysg5hJmy;OnmiuFO~$LE^rAmA4-j)DouHP`f8P7ubcV%Z%peS`7^pu zXEJG{fEY&^8J<0!b-#Job)>joH$q{wRk=r8B8oP9arn_CAG;deO`YeY0thCLPq!5^ zH+*R5ejXDZ2r4_Cv2xAsF@zIMfmQGHSmK=F&3Ot5mk@%_qb_P-8BAxcfh3srY8X;M zmiw;2$Yc5OB*jbF4Pngq-q${q z_uZ+BpNjXNO_6_+y^Z|7yQZED4yTLdiYgOYc-|$Cy}5X~9OMRl)?+dxy3uRC2?^v7 zx%N|nrCWI!zOmLx--fN?L_TgRd~VeF3O|Jn7iy8M1Fo5YswwztYgM$seR6VTK~5Nl zuyJ)63&L}(O;pwC*N?g%`KBR6}_j*3gI~`8dia2eG>AC zhya_$YpAN(D0YrT0FYA>R{rMIAt*GdQs^NbFN1`~wbdl7DNrN1V3L&zgC+FMawWd^ z(KZL;d3v)Wa)1&sb%n3MD-b>kpG2oIgWIX{f?NS z9wTDveI0vD68a(>W1jSvog6r{!h|7~kf_vAFXSN~L-`NZU=D}|KO^e=iI{i1rx}Qt zVoa#}x||G;uWfJ~tr6wO$HgxaW)4^8gZyvlgnn>};}y?SW|^Q36Jnk3zKbY~UjkiQ z=)Wq+uID7GE+OTlv`qt%;Xip`D*5A;;kQ-NFDPyy#$lWwhY(n&=W2-2Vzu6}06mC4 za|VY0s7hNk(LOhsf1)?Ay3x1)kOmt+xgJj;~gvdPR%E z4KK1$fP&0J^#}J@<3rV!%k!IEcIY(iz=xx1?DCPgBQ>zxxc$hvNB0kE?H!wHuimoh znTAXrIF-6zktV9Je+C~KV)aIRo#~KDFtcV$9ygCIPzXjY$LzcJQsLmSS0O|rj$t>i zOWkri1CoRFgY#LfT7gFtk;G6dzCKF3TZOE{Jke_8?-{1E6aYJ^>F?NtRz2A?sSv@6 z8sg=R>bsHBI9R?cINl_GQ$8dAcr5GneXhqtj;iQxIpZemegZGp@rB;~R>Lz>C4kmp zR2zg43r?*WMJB*ZT+kWXXF(n(^vFW@=3sCQdI7w-)N4<^8cM8x6m5 zq{QtC7}qS`E19Vd>{nRLx>~SH->+MU-gvzVUmYpRnCIOrk(*9l_ng*ll;$9QQ|T&d z;C@D5>)Z^eUAL=_e7EW_ZnOTEy1HbyQ1^T82HVJMW%ox5&UAK_K0(jqCDgn=Z<+p{ zRTBH=F;eSbwzRUcurXTbF!>)l?HG{;dS+$oZqwm;O}9@ zFJ4!IfZoT{oIP!sBIZrm(b1t*ZAHRoJw=yZ$TDv5X~TPci2l0IB*FAAz5QIKvaPLc zZ`!uG8<8aQ8&GW3{*?B%O5&=js`B2}TUZQWYXWL&Y9|livdx`pYyO;zn;SwHn`@bc zsLB^(R2pyR3}dP60Ll2DZtZ#g?m9q7ZqoDe@KoAh1JdF4pAF_@zdh=lCwH3G@Y~y8 zIyC>kT>`Nv{3?L~+E!_u2q19R{Lv$ZAHQ%vWC8@rUyFkx zeK?&DOb~EjXlQIykF&-WcRD#ak+!knDAupnaH#hVmBjm+GlKa$du&e+|3o$ZL5<=urpRf29SJ9Av(YkVEsK&Wc)T685u~P=ZDcW zhv_$$r~nHjD0=#f_QT;I<2JwO^`S=o)SS(NYQsUl$HLDBCdiR5w&+*jT-lxNFV_iu z0|N6;^EfP(d9(wV5JJt;+@ws&yA+juLoeK|9)~QyyZ;1-9AoY%v$V9lBQM>P`qh!x z+H}pc+Z}d61==P2zwHtrN)rn@=HriGi=7i^K4E4O`9LTgp^tBu`B2iXu^j!$^6F+f zKZmM@ok3^ng`mA&`!$q>jYpS-yCD6;e(+YFtTwakipFTDZ=pbeTNrX?xZBz_0h08{h&30+9IRGg>upy+u7hR?K9KWE{9RO{z0Q0 zo4?ODZGQn&USN1Q7XKNyJl@|Yr3O&|;xcSRF}3cgwWUg-%*K4k!9;D|y$HphoHbej zZPGt_m3J6H(}rLyqM9R4UPFd7*7oXoubxttbpFT7*PRO&wio6XMa}D%1(CM>%40@V zy*kv0n^>rYwRIl=J`|8{BT$}f`7x;Pod}41N;LvftvE2sUmP={d-T+eP2dBHw%Y|x zOcZo|CC|nHt?l_GHjJ zD5U#iau>>HXM@mirb z#>_7*V3?J8&jxUwQ7Vt$hpLrS`2>Y25Je+n?<$lF-Lr1icTDC7A|UtdpFW8Q1pmC= zw7@bkRV%66h2wFo+4{W|rTOw4l`w&=B|zahn2Av_jU!F>?QRPmjbiIm=M&XDOAKWF zNCls=1WS{U#H6|)g>TTrQF^)UjBK+or_Ht}#JJcL`n2B@1jv{XXD^iPNsYUdTKqu6 zoYJLqG9H>AdjP#?X{&=~43E?8BEJh9QpG$?2hi)}AmVY=alY4(O zfwZlS5)}O7m5DqGgMv!edH9nT22Ky9SxaPE^vZ@vEcM2y)f+T=;e{rA$F4`}%Z_Q&E9_LO5q*s-$@F)(Qlcxesv-uVauz}~LE#D%PG%*e6?c(q^G&scr@ z{nk>^3y!p5SuJ!>syZWrFCp7IFK1(|U-G>c%|eVlr&Aq6T#0?$MMUZs8dSAJw(@}3 zs#L4v^kPvmU5De0^7Fc=A@27FGau8vudz5N$(D|Q{eE^)TMl$DU4Qt!TLz;*&rVj> zf>m*)SvqKy1=R%*p74x26;#@_UWbv2Jn6(>FKZop7;x~tboDFRM6td9*~0RKp&t7W zac-msfs8GV(E#0`uIEh3u|vjbUS5X-rcFrDHlA{17x=}(Xe$O)J$P=M`tKV$x&*IM7N@q`P;v#6N~<6eD3;dT$qLqp?VN; zc*BoAv7m%6Y<{odK@(sq9-I)Vtzq(f5^W*>k7?0~<1^bG`?kvh&f7v9J@~!yte{N; z>WWIFmwIm>L;YZ#45qy*fRG5U)fnb->FGdzM}?I$Rh^CR_K<$TbHay02%DDH1KYlO z+tvvL&v1KV=y8SBaPrgR_6Yq2Nh$?}h0h(=l!echVq8~KPjEQ=N-tl8zt#M_GLl7| z1I>-jLS#jxWiV&jM533a9;@DfA=>B3<)u9i$`zv4F|>Of&h7?wm*v9MS^MR}{33at zBdb;OO}eW@-k~q-)$FWlUvya?SorRZCaNrn{*+iEpfYLw zU0!~hnXlJZ7lS2+VwbmUZ0NJ5ApW@zWV=llO+hzymCg+(VnBhccRgE%w|+%v-nK!=wEWb@_gV_cq> z79Al3?;RW@4Ghw@0(+WMF^3)h0vB0;SpEL}I}Q%cS8Zv4AV+4mSL!QS4!mB{de51@AG@*OpwZxp(27S(WiUAh7we&j!xYaSu# zNXpoQ25^31;bQG-8W0DUNFE*@U+U^;06S7K9We8Ice9(!tlBa+5d*mJq@*5z3%|MK zZf$K<*41UL0W6RIV#9a(9!XTObVmSP3{6xAsPtP-3_xz|D4>GiV6@xCyZLtsYwaI) zc6J^?Ny*9eY66XjSDfzxhZtahkLK8znZ->_bGK?ha>4F^!)+~ToTjSa=Ud-tMJQo;Z`#e91(p8eQ^^9D|N>AM_+B|g^-;BwB`ZE9LcY@doZ_>0aj~?kDS^Ws99gmwsr(Voj+5`4tvmSg=3?$9 zOLO;U!V5d_g_k}%zHcCAv|LZq>;=U7q(9Kdju z*H>V!{IlexaE7{@m1*0|%;$K8sVO*=ls;Qq&w%lOD*&5{qyFB&FP?z) zM}Kyw5_cq>laUd%(ftT|KbT4AxQ~CXwWEXJY`P}9pnw!GX+|#>8#D&6Y8F>-W{khz znQ{A`%x~EA^RD~JXEa0|xb{dU*Q@NE1mc8FI$!+iK za9r?k%X{1@udx~Gali)Ba_7OY$apRAf$mU6*F#Yj4Q&H17jL(>0Dt`CP^Uiy5qo6~ z0(+k=Yd(1R5VTk4TDI8GANT0oYQSs>@bFF4*ov{Sv+n^ddG`-ok@JfSxkO09@gLbp z9z!y_thcxKIpEGr6!F}y8t3#pcO)0qV#`^~f?=z_9s21@U$yT0Q?;j5LqnsruTQ^t z;Wdf+M!hUI@&L>bbJ)P>k1@)K=>lSE%77}Rg5uOqu8&VhIA*4#-W|jxBRgd|U@7Er zOuo{WtoaPVqr?INrXTXz&I3#RqyR4Ac2!|!3D5Tex?I4g#2fG5pHh;fa z=DXMFJnAIC(dzO8otNhEctiZwfL9M6*swi@u~1ptEo-&|z~pvIGPUF{UPI4;xHY~y zKYHP`0ZTbh9er*srnvAuvEs)4CP`>*>M)(WCm(QH;@CD{Mc}KGz5x=V`boEO!ttG6 zgkgWS4*~R|ZZ;MyXjb$T9mz>g2AFEJq2a^n=YtL?yW*0j|O!p+I$d(h-1heNUbQ6_{b zLIcYVTcTCt?WDcFotRjh_WZ5$wJV}kBSsA}u=~ZwC-ZcxfoWMlNT_~C^&96l>TTvt zAY7OzGq!JZf+jvU?p*j59pb@v6d$ko=GRvru(H_MlH`)LZe-#3!K)=w*;e`saifF-#0lE6TAvbt-oh?WPua+NiK}_vIstA9;mr!<_wT za+2oSbk)1RyJ|y8zPM^T)y{hG(em}9t#X*;&v@_IGeoGhKjoTwa!nRbV_e7|kuDQ8 zy{pmmSr~V)OmU)$5h=ddgs;w-!Fd<^??&9zKbFT&kV>EV6kdUpRQt zjk?4~oDWF$Pa`nUY`&y_dQef$g3PKx`clajx0QyxY`_G?DsD6Az_vD9xMR6+Qbyjs zt#rPT)421I$!c+1tmWj<1;WO_vTy#^7bJ*u*789>SB(Y}JelqYFmf=^$DYIa;?(NW zd5Em6x82mpMFP0&YzZ!s7^h{&Bg4X=F&8m8b+xs@)DpJ; zf(Sa2feIaIlYW~47a{D`SX;c7t(NxY{D2WPBI{>mq~DpE zLiuNJCk6C=Rqe9WPa7a{NP!aL;`d24>YpTB7p#$Z(~2SEj=9dE4WiaU+Nn(0D;!+2 zFJMQi^avgbg4soY-pu&CRZ7mp|KapeLPAo{nR;v}{|seK^`P0yQL{y_g(0|HP-tiu zkP{i`o%)h^?Vq3pm@D1YJ{)#-#Pt4ECZF{S`j^EJ=TM*Wxk~HENfe1Rv2`xdK!@5yH2>zS_Ldam&jwXpE!v zn?UW=B!0@^j8&}H=U-8Xz+btKDhbcw+mXtEsj+XPC1eYsRhTJ79Thye2Z9hl1(jq9 zn!e|-{0zi&qi|8;F8hIGIi3`H!i2zYGGU!)jLLVN^=7ta^$t2;)Ht0&g}D5Ac)Z(%x}55`YQ| zK8`t$OG>b4ZR@?Ko)@E1$@(aU0b9H~^HHLIj%Zq~n-{T|5t7CPDY_emgw_{Y(@pvI zR(~BWlj86LqH6T+sYj^-c%>%mV<7m=fLm2lheL(y;p5|{*-x= zf>!FV6EpmIg6-#s`yEE*(=C3%zNMWV@?%E^S?+l`UPu+MS0)++UUE$R?jSP!wOun8 z$ITPPHq`iGF`R#C>+y)8n)>DGV&uTkkd&+IgX3+nj|Bx5d)l?lEDwa z-1Z48va~yL=jb2HHLg3Cp%#rO*S=WWd+|ab`3>TT97Y)eThL+c85oiEyl@U2Y*>Hc zz^4#YDAE~D=4X9I)@~QFgIqh!_vSFcYi;m=-;Qz=s^h?*fWE(*>eZe<=;=RG7qU2P zH@~1UIpbxSo4Z1_SW@oCBCb_H?cxudvFQhd}8s}#H=J0gjh zs?8D^S-W_B%6v;n6iX&)s`wL_~>3)-ykj3;@*N_}~tI2gN~0NU62c z(pC}#tsn4NRZ7^0kS#2ZzX|AM3ZodOl4e;bb+LUU6|u#dS0(uDm4Ydz|3}KgFd_-# z5Pt@4755jo#}S=cyUp^ZFV|<(BFbSql%^7<^%+?z>1t2~TnVD_*8`*J_jap7Ap!Q+ z_ncsHue(>yDlsG7Yb{+7Y*rbmw&)1M!&B)== zLoWckN5Z5ro^Laop-qsN%92}#Nd{({ko0g|oaz`w?3ma^$Ov$Tw)67NqH7WSI0^TYFN=#3tf;f%4YO>w3PPx7Wj3^36lG z@MV!+ZGp-}_w{E$=~$a<7W?Ua0MC|-CrLu$o~Gx1BIH5OUotkU4U`64(0QSAxHAX$rgrRAD2iw zqw9#0Aw69F5%rNF1!w6d#r?cu^h}J$+RQnQDCjOI-@;fR4j?tniT)0~Z1eXz#%vv5 z=Iz4iV+{a}o1;bH+tIsI+sc*@g7Yj<6foGFGa-Acu+xU7xc%Y zP99N-BZ8nJ*GHhnX?!(0cx|nlJ+HqG26lg~+@5`+4$%;YRc@U4Uo0EHYqq>=r_6n#RItcJ zaf5p`+slZ!aY!0T@1q>Ie^?~3w_x1(Az(N3M&M(JU)Xu9&0HCpap$4r?$6ZSs1eq2 z`(G9PxZI{;5=Mgz)Si=I${Hf8_R=SwzYl)Q8L58d5>QubTa*DyN@yA#rv%r4SU|MA z>(BJ^sr@#EsGGU%zR*Zng|=6&)0$8X7pO9W>6AuuzB!;tSFIpJNa1)`XIN$raR_je*oqn1_@iHMcA@SxW#6()0I zXn3gK2#QDz78jP;maGqAdi^-c6X=tdtu;3!=iZ>R#eXMUO=W)#HAPcKr+nBagG0Ig zDBEpAf>fl#0fOh1>)JPI|7+~4xc+l#TdtnSPPBRXz`SvqwRI&zCoX)Wr+Ix`DTM)g zcAh<7Q35B>s13B6gIXpX5cclup&b<}KVO1}YtCCIw7#9s=evW#gZ0D3ee0Reb7aq& zk4VWnuVgl|A9y}yvP_DLi@3f*{q{q##Go-c0Y+DChzHp@J_GvJsXH$>d%LeJizgK; z{n4snljLCWM-Ozo@Tq44_#CT9^tBek=AsJlSCgY#dWOvTJcC#Bv?{+(Y66mz(LP+o zJ>?(A4(!b?%YGLlOa+mOq==L@$?;_}MxjdYSh)N-(a4Wux2FhXTgPeMB_}@|N+C){ z`oX?Fe4CxzpkQ5E#??GzE%SBCZ{Kx1l5?QM;CNs!#K;B7C*RadJoqu*7cA>gnN|!! z#Dj3bR8(?b>NsGLKz9z2HwS6flO8P#{?yS(Xyl#-s75)yAr# zd0unzdj$uvmIZUtkf`=_go1Caf1Fjs4IuRTbJhpX4IV6r@}=esJQ=jaAz`Hn$mXRL?0lHa zR}zKswBh7hh-*>AapHY#(uhAs!R~q+O7|Mj_dW++>}5^`y5Csef_G5w(c7gv{_|?H zJO;3IvRSHHT7EXO*U)=_yejM;Ddt55P>xt$XUn>mm%aStMZ}KSO;^Xw7DF+&0tBk#6mYGdeQ*9ZQheQXv4OeC9Yx_a68@-(=- znU=k5^5^1mykXqJtG6dpmL-d+EUV>MP-b5nZfAqKdj`p33YtH^)3c>~L}= zF`|-O?e~^E!iTyn_Yl-79X+=eA^k~P7vD#lkI#nqzW7IY2Ntdr2u%pLy$6#bh z;_B*(u5I5Ll_?2fI0C%4KDoJs!Xnd~miF-_-E(tP!0VZW&8a;61sfg{_yEikw)vlJ z>De;3v7wC9(w@(b6piZ|%0E3O=UHWCSAH2;a9mU4x*V&?`Qh~a=~>f0o`=zTbug}i z5Rbz1CQ+;ZToxdsVR0q#+lm^v?!8WQA{TWN{5)>sr>ll8O@`L>i}<^?l`sGG1q0v> z5F_S%gXFw370#-u*1MSfK#t|$%U`}rI4B29Se3PqAC=})Zhl$hGS^WD(_2by44&cU zpL(^FTI&|Ctlvc2S?$1&W2lFg+R?kW&|9(qoVb9{!ukg9li|5j@&8(DH83`n=%?F+ z>=h|?JxJo?Rv+zfj>1(~Ty2wruj2VoS80r9(Y4PynuF#@D|}-y>1laE3GKy*lSxWL z&>>#DTAX?Jw}Pesw!L@DWymE>djWa`-#bkcQzT;nkKteW|4#rWMFM>5`VfKm^l>E` z2rhVbmIi2Nie7LDj@6Vn|SN9}Y;n?IHQeO4WBO>9*1i}iF%4_y$6G_D1to>eLUoo-e$liq$c}QhC@WN@zLO;rPJg-Wy4j2MRPCZ z2ZsFNy@C&j$YH(_xR2G_s5#LWd7XZrd^JkQDZ<7uv-Km0?RJ1;_&9~iwxzt5d+s`8 z5|$*07ofrV+_)GmSA_u>@;~wz1qiH(+Vv}5?56dehvsRn4PG>(8P!Bo6UCqhYiZR! zmpr)$r<5_D9xe3M>`5EFFp26>*qe@pgU|isOv)#`kqqqCC0-J>_IS_^ zMWo@a_WCA84ZgN)C=+lgi5hC;Bv`%l`1K|%H8cF{j3*m{4Iz&j@W+$tzowk1MvXA^ zx}jzG&i8Q;o$)(dt4T*Dhmmi2NBo@;8qeypPr<&ZTuKJw?#r*K9X01kV$c@}3d@GX z@UwHxCFa~?Q`kS2=Q`TdCugLV5@(_^?m&GO#$Tz2+-yQ z1@Fk!SJF^5RAxk@8t^9Sb1UiRm0?6JogVkAQyV|cRE+yu8FZ}7%yM095GH+<@#!LNk>hA>V*ugC5}1JX2<_PRs9bl*9`gP6+=<4!raRjKuYK zq(JD%N2bf4MW`vXJ1{lU$#kzvnnQN$L60?=&(q}!vhTKh784+*5BnYxq6hPqy-GLA zo=;5(Z%EpdVJqq+4}~O{TloZ~LVytW7dK`EA?J7%X^(2Y*{&dIc3uyej~RKA&)OdL4K^|krPhD+Ihv)RSV?8Z-+Q_zis_Ovmj>gH~!*C z5a;?ia63S`eM^kN|Fn9u`u%M_IQW~B9q~c*&*g-ik)HrE{Mm03|9phjHEg49`5Os! z()#;HApz1>f}d)rUghGb2{PzzDT(Uc|M8{hJ!XWz*_OtGWvVC)B&L($eD9kuniqg2 zK|~M>S)e}Jbqya^ws1)lPFJnLRPy6C$NhydgDOBRSDbjZA)#3C zEi>bsA7{#Y_F2Eu^iosZ)&3MrT%Ed;odVdKe;oHX!1)%qt&sm1sxexiQ+v0l-FTzj=nM}bm7gk`Vzl_}y`VS%T@lm8sS zS{GbGUABck_KMDEx%2(!-`Mp8WD@hFjSss6m1yOb%dEMp(;7YvwBlOz&#H)XTWNSx$A;ffyHn*2}!M-l;ErHAE5Ld1W5omwkM{`2dah*5_#k23V| zw&3!h^D5E2R|Z~U(CF#@#H_b#zI#Nk+$bCDQgQ}G-O7E#87xLSZ$A}A#Pt--YWcAp zGem#+ju2Fxv6d13Yuv2k&Xu(U{~4sDI1jO4Z$x$@(>X~42%4Y&y&P)aLxz|-D;f7f z8CViW@{ySGl)I|~b?os@wy{13>sn4%y6Q()l7_@+y6GZYm@JF(KkK1%b|(}zo2Y7M zCuoy!v>NvVuoV(WNC~DfRMXEWe1p2q+1an(zkoy_VrorT@Wp`1;eNmEIS3jM2b9rPAI zPS8qFA_%_!0A$pIJ(On(EKeH-NIAUwQ57@nKJ2Jj!`bYl&xl>nS$~RNq zU=__C^QEg%gGz#Uw=Gkpw;4q}7G=*BIu)Jn8C@bdz#cmIS$Gp#VyV2GQt&3yY2I_x z;4R~xMKDCqQ+0wDkd46IkP@sh(C>d-j!Kh@Vx}xw_DCPKC6YpIJ-XhQ89I~YUXtQq zdlC-#z;T%S6D{VdV`?~JieKHlK3oe}jW6ur_ANEIuGK$kfs*-r+n}tiBoKTttvbOe zTO+-1^TM2|sRp&_;#IN>md!A686_Y(gpuan?|!>v>RY%tBqC0Md&Yq`{RC zT}v&FI(JD4r^JNG)@$^@uVJ*)1sfEe4gxR2eas4MOx@&!{oP4kWnu-j;vE9We-z1wG zItQ6_lL|jkN923U!V#h%g^dtNgtCCv)+=_2aWZTaBCANG2+jc^`%=s$g;Bk?VX@Xk zDFQ1br&|2s&X~@P&jlmOf)vSK%q)cuHGGfpT_fRARxLOuQPln}=~EFl+d|B?3L)V4 z6kaqNk2Su*;9_FWeJFZ9YFz!aPu5!Mvs80nOaW&}gt6k^><&a) zUodtpmK5V{o7B6~Mg|qhJl8eY_{nw?OQf?P-m{4CoR&VQo~`>UW?&yR zTq~ZvV_RGV`)95CzYmNHPDg9OcK3wIh)gcI-%at=qwbwL{2{bqX7&*4i{jGC1%hx; zj)4yb<%jm7)_ViXbGOtfgZ;Gt!c#>H?Wf#`e1W(mfj+Nr!5L<-Ngkz3rvUS|XB4Bp zDTVq$iC7X<^}=A1i5yk#@e8*#?)}bt5>P(aQA}K#GfYM~ReD0nA`|o6nxeQdBKdV( z5!lzky14)M?PtE{N3j(WGec59hW!FNjNRJd8ETo9d{`uVh14=(&8~(S9LZv!fMU%F`Mov zuA@j0J2uhJnGN%ioTgsZw0kHSQWk&XD*iQr(s_S!Gdxun~@R*RR?;i|0Xa{yK0Tb%)(BheQqb^j*P8ZCeAr(i zC>2EkPjf)`pXtCZ35PJ&ZmYp|b5hB_do$_3y!sO0Fc5Jgjr|^N(%^u(7NN38S&Zw9 zSJ->>oSH5Ho2g(0Y!7axCT$P@8-3t+6>%DM*s60D_?bb%9I37G-j4W ze|eidFM5j(k9=-#^;5hr2OFA<^$Fz%i=|?X7$nF(19&<(Bq6$6FDp-$Y2LtBuHb%5 z@sY)w$-WL-_l|SnfFN0IFW-%s^&-7ZXAP2_e8C^oNnP;=hUo-)^Z(O91P39gwX*lO zXcKR6b9%$=%Ntp?`93WgM$N+Y#2URBCu!{V;8#BBA6p5?53a`j5ld(YrnD6xK&-ouvGf z{h5g6b1FUKX6x5H(hPf`&f*yQYZ6mL8Jng(|L7lhf?F=-X45cEhvsx|>tr8}n5e*5 zHl+DQ=D#b7$4eMQ&f17LP6M6rJZ^879rT(XD}=y*Zy6YD#Ua0F&j*hDI=3=DvlQF0 zBrM^uEO{UA0h#2{&tARB3|`j%WJW2;G@#7PDkcD};jtD*|GQm*y<=Jox437RV%?ne zEiGNtbaeTeQ6L`aj~`X>zxQ26R?{6?q)kjPAIq43g;jv2D90oX?)S6v6`dfxO(}hT zvm$8r^A96I#Y>!yNgjSZp@Q&~+^E)Tv~FUDW@_$b;0=sj;u+3r%|6K#l?Q+N|7aZG zGXE^B1oQ>&Z&vt#PN%{o(TfT0@lIkpVwfNe!_w$_g;QK?b<)CkSia|VT?wAfe=8D` z8-74

`)OP>%1eShjLGbcIG-!~>J@@Fl?)X1K$6=i3=AP!C>+3$264L_z!t4rB zxSnY35|$AsuY`nzmobxS;K~^CFUwbuM+WGd0Uuomhf6_00-c5T@6`~U);8k{O-(nF z5UQfqUoCft<_L+)-#E>BOlK-Y+_EVDs;d7Z4SFc-;Q=4mI?zC3lzmKB6R>=|# z7#w72pu(|GHuhM3#;9sDb4@{Q#{BMJekgVFJA5pc|2q_p$V2J_QLCwQ>6c z_kVxV@X%dtlE}G`i2I>%WaJhEat9etuFiGP&8=uY3i@y(HlL$P#-Dp^%p0j0Qufq-00u_F*tCm!}xnk!llS z-S+T$XIT7fjXOIq$VGo!_SCmj1snzSG7!gMi!I%|vjboRMcKcRD~OxhBd34^*o%NG zSm-3=lfR6KScUkP2Vkk}O5rrCw4P#0NJ{G8Kj~+#N&PtaBSs5E zH2D;`$AgzW#grgsLk5P}m@e1ccF|va$qY%xE(J5JMgt8yg)Pi#@`y(Ae#{2QOgU z5(QboRTk~JG9*8CZ*nDWSsPv28=!Y~78_9Ll+pqLplfn6qnNnw%e9Xt;BNfuk&>A~ zp-|A@WuH5fCuB7=G=vovMv!+A2{?wfAOcHbRu3DJr$(e;YiMmP53qD%I5eLp;g*t# zcv5h1{QlTVuM2f>I4l%Rig=Mq&B9`ETgb3cg<*Yyfr27wZjSrafjvfS`0Pr(#r@OD zh}VDGXDL0ndjaz8Qeq~PwGOtnEZl{W);o9AAk&x1<~h>neiQ}xjWY@dcRwC~MBw^% za7Hdk=X;2KV9b5~O8{3qbpjD@A{cC)e_a4uoPk_{JpOl&4h-gpm~1T#4W5Bo1=8pJ z9KgRlV9V6(aMqy`pmUfk8>@kxBpaJFjnP#rj||ZqjF(?xUA zd8TpYe}4_AfdPx`as1n{e<;)J!yCkQ2C4zw$$9d8G)FSuW0@U;xtOLfLASJ|L;?aS zE|c_%3_y(7q!2+vLz|;N2keRu>FLDiq)a$B7|UucBJj<0dT8N?6L*n~4#ofbEfPK~ zV)uW{7{RfiocOSndK1t>Y()p(4?o^(vg;&L(buE^Y z*s&Y=ob#d*@elw5f&>D4=*@H^;s5wpqA7XGhZNYGX=;ku*x0gpr&4c1u207^s(CE% zhdz6@3Kzk~n^Ksy=lfbZXo!q`udwJ;2oacVBw6(BBP|BDTxw0rbgKS2jpQ9W_+s4U zcWsn3_d4xmN$%R)rDjbZV|}Xs^r3}=8EDUIMnvO%p6Wu$BLTEd;2S;U`4FSm-!BR~Ym)v1LiL%Ssj;YOd@oV3DnwW;Vx zk6fYYxVx0Aqs99Q`PdowOgQ@S#Yq{lY|OAToJ!JK*xl~;(Eb+z`%)PnqQJZCD$nT)cpvpGl>U-GMCUrX2Fy zJ6EDI3IDF+-{RwvVg{3uijQSkW-iAy~cY?Uk1~ z1g5^1K|_*y>q9Q4y)1AI{&VhF#3FC$@#~Ve*OuuUFZ%qj{F`!vuCk`v9XnuO{r4*}L6Y9>=D)x2Ge{xYvI7r#zr*XW@N1#77|N z4I4y=qi__Kd)qIY)*X7S9@jgT@QUZp_Hgw9H=T->Y`!K<-9Uf>Q{N&mT689VM-z0v$KrGvmN>LOpdZUCV+dPsTT@LSk7x@kk)kXf zcx_t1NSm0pQ+$<`wjZI;uKJD!yKuz5O)zfqqoLE;pU-ig2cGDrrZYcGk8S6SPp{9t zJv`GSeY%n6ELO*-ge>BWwBM$POcq2*C9}1@l0-VZU*lkmtj(gC8uleClY?TQ%vInh z?vXjx3nSlP1ZS_kWnl}Q$-`CL+j_Nx23Df9?t2<#E&9Ig1lEE>KsJ(>ik4ZPJI$3=Z>f@=0ug*^p}NnF^;x2Zj}PPYkP{lfcOKoR1IV zN^-8=*6Y)}%XXEU&5MlBh9*2Sa>^)DS(M0o?DcQQs1lNs#YUYAK3V;WW8(ful^evc zx2Kf!bnoX|RGj!!iI+Hg)j_)ajDfCq2+XrWgZLKO9exwe^(d(ZziMy`B5KXaN7W1C zu}HV!3wcp6@eTq%r6+d``Ctvc7{Wa|Fy_}|G_M#t|6(xEet$<8^h*r1cz7Z&Bo8a|Z$W4Yd6y$u@r zUri3dJ3Sxfve`d;P1hCQDd@i7X})>g)?tSA)L+Z=a@hoC;nBy2^zOo?%IXx^_V>4L zWPK4>fmd6HOYFWiCP|}w(>-A?j{g$JKnaruqy&)NnnGs2ti(j~_%WTUPfbo@Kj`jI zk@0S}qt+T@h5My{T316b28uB06R?9Ri5r)Zk&*oY^xRE+W((Cq<@Dem*(S#g!p7`W z38|{*U4u?Xs+M*y?H4uZi;aIwO)0e;eH!>W6VuM>ySOWx313;Z&jC`~ppY}n-&cF* zcKheJnz*lH{DPJjWvVcq!+!DAF?k$bkx16Z^~B?o_eS@gj9PWu<5+m>fsptR(|87# zY<|@D3wJ?hLtQ(Za8;vHINP00#a2cHFPr$9X4qt`bYYmy6vyQM;JEJH;#{8{_?t1& zXi~PNN_Y&7)@Z*O93^0dAI&u))8xBkrqO&eY(7Vx1RpOoB`L>!?q$bPoFL9?!~u7W z5O3kPK#j*48mWg?S4{nL%`&_{{<%bvw#i8XR*DS|n$@n2Mbhj-4>s_G2HaUw?+ao2 z=NhKxh}dL!`1!r4w*Jt36QHJ33z4rIYa(=ZoNZn{6{0D~z)8;oPGMUnb#I8+EIx0~LC$T?uim(Mj-B&yzqi0BK}~BBfmz*m zA}0E14>7R%1+rKeyeO~qlQpmlB`A&6Cxf4l9e2#lD`p5bKSMxJH?hkL*;ChtaqR6V ziL3sWPvvZO=GE`^rL?cHRKYdn!_%CC{ML71HFs>Zm8ZYTN44y#A{b2n5^U5gw7PRF z1g!Dpz-)%)c^%LB))6C;WQyF#hBff5Xb&VuCghG+PNBFMYVpj^0OTP3ZL0*7K`d=O0ppWve11T8qIx_W%v zt2?Ldq4bdX`T0hbpLY|}w2514yx&rS*bIGNn2M@~uIRkAiGH#DM=f-doPjN@bJ+07 z&cvn4+?xcc2!EP{&dE2Qa~rZ`78a0-(a_vGQ(cNr7OOLmvfN(mtURb_@a)CQOMG*2 z|0hXj7da;*ppyn;?(>gPIkfjz_p>CmPl@>!LaV>=5k?G1Cd&aNO~xc?~lkmz_?8RKLBCG>P`A3?N5 zi-RMBZaY2S9-d}rSAPZ=1D`X9NEu?`RukhLd^q%b@IT2L!=NdC3_E#zdDC}4^77@t z=)spm=SIH9Z64KFQFn0JX6JB6>8Tj5|G_8zapvE&B@m`gMH3?JG1Ys^SKB zST=?J>^`yrq!o@c)b5#(?m;XGmhV)YbEMKjd=ahRDYX;wx7_n#<3Fjg+_ZGe zb6C?`v}cK^n7VaePE0fulc0S)xzLicUjL}hL$#uUv>>65Mp6p9|Dx+m#FB2|3DQ_J z>GvYdFZx_~gq0IvAp0}krygu_g$&2?H6zGk0L{YXf$65f(M_MG0?YUzbM#mC6C=rx zd)8r#=np?Mfdx9Z1r@R<*qYB_#IN3K=h_S_u=s1RC1FyRV|va5*;^6u#q+;0iIWEi z_fuG=pqt*}sU3*qKHjO1fgZ66IiAMG40A97$I^5q=?XMHpwxe# z*zuJvsA>)=xtZoKBI(N-Yq~n=dBot#T3eUk2HfPA%QHQn2-~Ak{QMG?P=5ybiF(B% z45{CFJn)Z**Zs#I6#DS+^QMb|_j1W_(YfYXgS>17YhvLdoj2Tu%54cL`{5r08aw>* zJ|!6J4G`g0WBc7-abI8j^6c61EirZ-v{p)cZ10;T&f8g;>kmHSe z-#AG?B@Y7mRd8pTXp6%K?GU`DS=&JDBy>)~v^cEwS_8SZuBZ3#pCBQ={%idG*-%FH z;Qq1uNli+MS#)3Gr00-NrO6uo*du%`hEVm18F5*IZ#gg-WXN4a+6}ollz3Tx^Ahn+ zDd4JqfO+p5^8gRJ#Z_%BD&_KB*Y;1bYN3y<58Ym5vi~{GwB8&oH=pMjKV1J}2WT9H zROorvf~S+Ncbjo%EcGTBu^{1l|4ty<#w*er>)i$Vn%Fb;pFjZ&2GJBswgrtOyI9GMIQWN`trJpr4KlYxdQrg(~;p26|*KpYVRYc6B*B5^2QsK=FyANTz zsEi>Ax_0$hQDCM5%8QZ?uks*VA&?}<$q{&wq@~B94`WQ9f(y_x{Zzv^9C7-&0@CLB zkUu(37SWY7Us*Yc9qm#%>51-oPM3RPK5jQd(U)iQ$H9OuiZJ>a-5!TgHXEX;bQeFx z`v}CcGB+$Ddu?`)@J0(N$}ws5{oL3)w9BzqEOC0IOHS2aSly^8+F)&JE}sfQZ}_A` zbD~J{9lk@2EdwC7d1i(i*+n>-kZL1I0g`>lIOHoA?qlhW}h( zN=6M5)zs8H9_}uWyZs)ReGQa?STbzXkiAF>vVEEqVecVOw+`6m3m z%n|Cma<%N!LTj;Si8*)4Ul^ym3tM+H&WcduxIAG`py4i-OKQPe68Syf4FiV#yxw=c zPdv}N`xLEiluSl^q&}VKzc=Nmzuq|ZZl3*%?3Wtx_ZH0w7Py=GE`ztw%@w>Y&>GEXAQ6EWN!c%U%!NB z+oRApO}3taibCAOBk*=r3n?3n`^fqNhZr&T-F~y&sM&KBq(lgDqybHifR4X`Klm(P`X%%IK|~?ZkR`X^uXCyl{T{6afJt zf_*&V5;rmlwFD6|q9S%j)w%;{=`J9(^(@`u+R>mH6TKAQvDTTz_%%{pv1CwX3r$cB zP}HjRyIUc90Nfm8V%@)W4~9Hsmz9+rs$U(|2Ew2jLhj-Q%uhjFzxejn=X&me!&Qf! zfJiCi_$eBYLG#Z2ufHm1amt7O{I*t8n6mA9xY$ti;$(Jm59 z=$mbQ_)s6U_b>{;jDK$_nmKJu3dwAVao0d^4kzFE4baqYh9{@d_B@}Ah+LLs0I~}U zzLn2!h15&ZZFX~}X}`Z&V6SMtk^$&aGTU2Gc$USr_U8$Wu4Py6WdG z)1Ttvkah+Mqk(-`?;UZDr5_P#`CcY821X`k^jt*5C-q}KWCDX!P~)=r)?H5?3Q=T8 zVyjCsG=0lN6%MrPuSQ*DS>Nr9y^!~26dwd~>3~(2o=QkacKQ3(AN0KQd&U~& z@khyVf4=UqjqqrYE=Pti4c!&SOsZ@|`{~DO#KEPNCL&CYMvu~G`BKcBwfIu2gsE|5lA(~S!XHQYQ&F1b)w&1&e!36qn5 zC%rm6RPTLfl$X#YphEjvc1&h}j#y_#>}cB8Q#n8>{GC1aW}Ji2SKa`l^`HnsVC)Y8 z^kK-$hxBy)-X|U$8W6c);tST^y;hUk%O3T?S;v-vQ z|D`0i=V*2xFv~8gef5zdze)>6C1u){$XB~LyPHZFx<$)_!EpaN#39Uj2mfmjFPFDb zC~KZ8I0vN5|Qgy&D56Cw6ott&<((GqdUfEjM?bT;a<@)>1kL3J0Jf+Dn!jn|F> zx#`0z^(;XdnG7o!6VeUuyVXG%14ZXjJ1o3nw<1%}UwF^2ip}=refp~v>4J2jBJ^!` z3kv!-q()u`cyr#ZCT$V|m?f)swgd+dC}YtgXy#d5xF0S1fR3Vd@}tEZc-#kQt*ri` zDzDgBTMGsySoodL5yJ|ZzY&fFf1=HPX``PKURM__u#lTQiuWb81+eiS!T$cF&d;a- z3@Yuzu3AH@5!CG$&3XC=7MasSTnT26Vtr%!E3avfNP;;;r(>JI`enAyxIEV>N$+43 zVT*BF&q zWRDb;^sOwYkN%MJJUD9s6@bIz%&8jhBBli+iQ}cQ+ZEk^o9QP?c=BOP+_{&R9bXvI zlalBVDZoGw)6ZYB2BBl#sr@doJHlnKxNI^JG7Pv5MrTcOy(ghshdBk#{gqI{xGL_t zV(2vxH)Rydxckv%DM5(c^?VYSc~f=kd`)X#4AUP?0z1Ip&S^&u*K~clw{BKJLyjqI zzhdc$gz6hA&OS8lip_x&IK+Ee3*`$|JJn2o8eY~81vW!Se1(b{anx@)+1{2C3HW@N zeeDZ>KpEW?OgKN5!%e?hMzvm-m+z4QlX&~9n%~h(5*C!pZ&UNEPd`2tHGp@H2}Egy$>dJBlV$x z6}It{s!^r&_M~)QOz}&^MX_jsPv9Dv6CE%m0)|b2rj+~Lsg9|*0u5PfG{TF-e9YzyD^m3eKv z!Ab0Onh}<>?1`ou(=(&xBxk#mk8s~j|Ab~bkGra{qckM(_mQG$gnx4Bu0Ouxw6rBx zD?p@ECW2RBCUxCC39wB90aVvR9L+GD@6%AZZS#E`f14u?;|v$Tk{$}Gw}C_&;)wcO*};nL=+b< zf=OVG0bYI%OGUAIFFgt>YhIF!NKRSz+?drT1YEV>4SdIY-h{IqM}D_Y(k%u!3=Nx=p<-SXko-24`I_$b83)D^mBQXD zTr|`vOcHDMXGzzI!C|LL>7vM-$I1-s(Xlph^t26m#;p|+QXz7Xp{1=5QJ?P=EQ{hz z!we*h(Mb#4kq7L)8)9)ocb{&`p)oXDb_*XEtvi0-9IdpCLuD=B72B6wcQFBm*&&TB zvJTxZ6=u|3V#V&&aGm4EZ&M0;6(ZvN?xJv~_=-J>iT}fD>zKRc^oY z0pqgwsnS(*ULLosFFtQ_5x|%|+DQ~kPZ&UT3ZJlxiW2=JFf4u}Z93sI<&(!y%JHGs z(W)Q0x8um4SG_FdTCfBSWWmhp5}vi$!9^14uIMM94*g;jnUo@==A=3rtmRhrfu}L+c z6Mlw-X>|PyZ#Y}7uW=}gvE1dDhLB^DTc6NbrU8W@w0I(TV7F!`t#H`3?PCCC?%;u& zJwq`u-(2rZYUVC$a+-k!pSCx#((U-@`CT9{GSyhAixaQS{SyN+oX^l}xlbOvu$6;-2%_lF;d*f3r_2!*_$B^|7 zA7gEj8AFy@AF}x^Q!>_e#8gDWMntaw4)lsDhlt?GhCy z;cD!dM2cna{w}ZxeLP%x=uTj?205gJJU1(za}vWP#C}*@=;v~!kdLe8pxBePZQ_Q0 zt*54(!!ufr82zq74<9m%va9GnKlwVBjIBr{nJqfL2XINC)ggn8aYbW->y$ZB)gyEk z;>D;IudOh(wui+QIUU2RVIlog9O|KKMEGX!MfXtT;fhE|wmaTU87QU+%T00~d|f9} zVEVk>gsIz#rof@_hQ(h(%T)cxi68_`#&Ji!VfpIgn&X^<=GA<$y^AaTk9H{WYpl}M z)dqM(g$|3C35|qOQUa!J?Wus{z_6JXHP=G@s%g2ncVUbEi^4Y3iyl;hQ8fJ^hSL69 zraWo|CRQw4Yiqh+a#_bYJ`YmL2`IyfT@j%j4U#0~L?P>HM!3j+Z(MG#Zrq(E{PYN@ z*eF*kPW~`}+wfnXQ+a=f921&yQH3aLVZ{~bC0QUm?jZiaG6m+A<$J3JCteqhhl`X* z2#it!u}3*-2>^U`G4w|6cE-%OaGcNgG&RCxn-O>7OK^wUKR=O>@%%B=fs3dhQT1RF z6Vrf+djLSu&3%=+_7q=(#6d`Jjz*dKdY8XnE)FbbQ840Su)fi>L-2@5A5#$5RwbSpTFqaYug#S38l1!3<%_80c3^=5Tsm57-Rf9>miK^ldry>1So3XeX z#nM!EwP1l}Du#wPi?;6d=(bJ+%UvbBXofP9-&;qwuxD|DG-JnYtK^r z>=TWqB~%ysD?ro_4^P(Oiazs?Skuik@oeVC6Afem!L*Z~PKr{R-ObTrU!U=(vTZ29 z-<6jrc4TwW*tptj-bBxQR+$pD7(I4pmIN0~*{S;iFki{Pt>Mb<>Uxkz`EjVVxfJh5voStlxK7+-PD_ z(7+)={8Vt*NkMh`#{+pu#*o@!5w!l?`z)Hueh_L`pAhD>xd;TaTe$LSqY)(B_HIQ$ z$A}40e#}O9`#bzZAS%0YPDmY~|I~YuS?)&SJXq;abqO)e6IL81IiL9D!-A#f%`%Ts zDGR=(-JGJljJPzB57@d_r2M+NGf~LR^%c6JnKbFX;tTf-l8IcbPOI>M{pLc3vi%Js zx@ASrQ22(>08)-{9sN_amX{2QC+$OiI4_x6xpAc-%k>&0g|jkG4d~k*NL1RESw(xJ zU3$Rw++2$_Qh|dEl=DKQ z7C2BhKeMJRK0e_mI(M*si33 zS14MrbaHU@V{L*~+b6fARD+U;6MpP&zsJ*X?$#(c{96m1j`b4kalLy^%1me4U&O|#kn?h6P^M!v37RN+W!Y}lXvG?_p zvq{;!3zOQI!AXQ0b;oj+ClK*>e+~*AOn7Xtt>tEkGV`25*WI6s8(Iny%YJ>fTEgE# zF$|abx-|cX5&n#;0T-etclS@IRr}|j30@4^AM&@`HggiJ25br%NXAR|>1!liyS^zR zZtzc+ST{}=q8v&vw^>)nBKz`g^7tJl4vq%yfUC2E=U!T-VAN$n@DEt7yCs^kmH2*@a3ze2i#sRt3ahw zA^oP~JMXS<7K2;`l6O~67z`2@oHyMP+GX;VAi`kW)nFI%oZEJ9{E4jLa}C3Qs6xxr zHSFUSqe0w-x0=jpry5Rnf`ump*dp^XGn$DF8X4Rw`-L`4d-)#a0uoy|V9U$KRVWeb zyLw**5}{=wYb2>|3(gKWDxN+X^nzI@B6%~kzvfKROH{*MO{>!}hw(T55wx)(et)E~ zq#fR)1Z7mv&1fbx_POV5ygeZeuX(w+yw85mw(^w_N9Lk~y!8&A^t_7SkVK!}P;_tw&rd0k6{J;oWCr6#!khuw&aI2RI{)%dSU2*>MO6+BJMU!wJv&XYv}fxi%)aERew>?;hyv+jmdthbay5BCah!A zDTT-C!yf}-+HI^)(JC=GrKOEuaH9cDfdfi+epJyascuKp-c;^%^RbRJGkr&)@;aW4;+uv{i5K6NNZ!iv=M z>BI}Lt%#Ba({rHE%XpYFX51c>zL?5hBcEDq7=_M-?sY&-elGLJYL(JiKh4lLs6@B;JeE-(FZRO#^RLF0PC}tq4it53LHL=DNgHlc_`xX;P()Jn#RV% z*)=ymFVxR#5yLQgQdFC;4vYd!_$Xjz+e5F1*6rPX&4Ea!c2zlPP(5O;=h(w@fqXB? zf%)-44A&J6pWuY!dilNC*FG^=YoTG(H&o+2L^IJe@{9}dEo6cd-4xW5&zT1;J6?G` zRo)MOm0e0(5V;=`5fW$)z5EA@HuYDP>Km@x&#ZwNo*m9Dbm-=`ovVvOI@ZE)+;pff zsE7mS;l^|tm98J)!+iQ z8RF#+OMDjt?6}>gLCn(fGqsqVAhT!U{8X@UmqbpME$g4N7q7}(3_{OKhpL1uSfh@R zy4%Xo)~@qb>!plComtRrm;M=Iq~5S$pWCC4nv1k^I#kW#z`YAHNZxuJ&7%)G^x(=O z16={bKp2bZ3M`$gPrEnMxa4pdsAcbnU0hC0>|ZmsocSfYP=4L^xUuUxGsFd+2qsbB z1x?(XS5Pfj=o(V0$nsrnmj*b4*TTbbjm#FLFB^2*oih=J6Fd7@iZ4s9QaF7%q8u>% z^AbPCOdj)B2|aBiQ{Zs3eOREW(~v7kUB z(}HP#ur5bLNzU5pDH}QDN0rDbe0FziPrj~FWXs9};wO2ZR839XT&?sePL&;U-3 zG3}7lL);7|WGsIhhR*lsB^aH(f=~nOT(UL0fP0bqjgRW66WzcMtC#qdtr#r;_OWGS zV1OAmT06oZX|+qq&(Gfrnu31!&$P;`<9~fBWm~xjFd6|>-G(2{j!WKN%>+N0HiVQL z#@GK2-pmiwHNkmmN#r!?cUC-p^4W08N67KIJzfy&FidgHIL|5?GPaj89AG9Vlho1m zF)I}MCLWeVOVvL^)N$k9^&|81=;asVpJuJE&LM$U{`5h z-l$V0=Tnv6`^aN_c6fo(^5>5a>cPab08jV!Y@^Q{uQD8vlr&$gG3;Sc?3o~K=X*Np zijp5PE14%Hq}@f^q5L2@ANyUc|DlGaIAJXRQdT%=!?wFuT*Q$BUad?k5)GMcq zf`I-)`gQTKVi^`R^~E0iL2;g=2GX8Y)skhu??r5{GR1wR!Z`*y&&%ut5Fio718Lh;w$i>R3s!IAa4-n z3uX;gR_m2iD|#VcKh4wZklSa_Sn3Eq=9k|Sr!3Cf1MM(ldGyMTBQc){r;h7(w+1Zh zaI+woO#8BgTuIC*&e~D0+so>PyRsOOjCnox3^*CI!=O)WTTm$e3}la%vUqqpc=WSq zqcT*zszltSHK8H+9D4);9Xgvbd7sQ!^w#y^>=>@AZqV^i^=a)?aEFFF7aK`rv3?kn z((q6TuLS`%pU^9Z?zbB~4NnTWH}~`szqebEPrk3|UN?WuLFH}RDIjAqljIh@F0HCH zwdja&eYxikCFAenumenRpp0VpKpB-Yg~I^v_ISPKpN?P**;e1X1-ILan`pl~~9IuzK^Xa(b#3jezvqAt)$jj^YC;($4Swwc>6X@MN2Sdt}E|sU=$Pt19<(_(N@&0Wfa%{;WA(eFG zb--4aC&j!wVZ}JZLqCs!FmA|!)1lm=ZHP-3r}LSgaso5>Oh{0-+ z2|oyHH!+uO$kxiZDd69ZZBlZq;{4F#47ZQ%HiT;U$>Raf{qx{McP#vd4FBu&7`-kY z?Qa(o!li}b60x;T`6OZN$yRu=IJ+#{rlh=;#B|Yzh#30Rll#$eODHF1i>o?9nSaT2@ahrFaIsd(TTO96E#31QbFYZ?0 zBcWFu#mB7fRK@aSTgpccR{Z6cnA=kYW>rI0l{hyMcMc+LD~hC0o3(ly)9+=4MJsq} zm#3y;i4Cs&YQue=lEBMudF;OKxyW54{CM#|`MV*4?Bf2M9vHUz;RS}r;T3*%oe3vM z|C{O`DA@}2jLpaT83~7bVWoV>m_WmSoC5oIzN_EECqNv}JIRC!N5x&siBr*S9DaOO z(U99B%CtA>Xxwq|DWJbt@LoLcQ1~(3c=q@C>L+Q$1p>e}z+JO%Zs)0pg_Qe+#^e$A zmbJ|9#cI0Y>8luZPvhV_M4*PtA7Az{Gez5^)zgivG|kkv_F}u`T$d^Jb}O*AvLFVs z>X}FF?O7*YKBn&S`oKT0(*V#3y!OB1Ji!iCQ9+jZBJTPM49((XAX=~vf+36B9?UwQ zk!ab4e@MKv)Ol}L5>1;)T;=V<;O~xGDtxF$U3x8;dr2PPU@dBTL8>X28}7{d!u2j* zd-b~ovC;c;UdCdcALS+C;0vGq*B7e9UC+%(K;iP{17Vg~jZq&Km;U7IW85CQlb?}@ zB8!B4N;tmEUM1jELRk*e{YFl`QN4QFEq=lnq|zmd95=?|v;+_pj>t-Z(-J6u@@*xD zchkem3c}6wXr!9I#=#0Us$nlRg{^V^tON2C>ck^FsT^5huLF=4{I<|<7th%rL&a#j z3xM8$>5FUiY?gv7K6;X3y>s(gvCuZHa9tA#*jZ(AlZ$Oz9BRdCN-EyB?jbu{S9FL{ zAmh}X|HO)?%Z!J8HGP>#TL%e1!0&q^V+Ya5M|wFwt@XeE)7KE6dJ4!A1j4 zy8n5DYcepV*N_Fzmv%DeqnhMlr?o8)q}yc?-3!FQ^%ar8Q@LVgT}gdw z$l}yQp`$FInM91VGG#fN+<2(vV=vUwcG|5*AIo&fD?Rx+>+v-pdwdNZe=F6Omk+>P zSDgj;P}B^qI-TOFjGshQ!~U$rb5t7zH4N;>IPdUtsZ0X;5B8RF<|Bsz%4BU)yC@#I zi`%&`6d2iG)64&kNSRWN!@!hzxB-I=tB)Y30KF%h07fPhk&wq5y5x?#&a?eYuxl2BwO5vcaqdVZtUcT_ z$qA=A;kc_#X~)+euhz_tJ>^BUVUT~mox_#jhPVBlE=o*`Ad>s$EvpY@mg$WfWj-YR z;AdSwe9zaA(DkoB^>l@YNA(`^kI$iUrIw$Wqwsn{ewtRzDsO9By6mcDAksrO&!dk} z6VI)xZU2S>|7#h@LHR5Xz)(Fm|9KK>og4Tco`#r7*YN$ZcfYuif5vA-WCnzEjQfaW zP-Cx>#lw%(vyK{8lSp-*)j2s>>aJw>o+HQDZ46dzn?6{5Fdo^8RqfKddq;g+GJ~+;I6?v1b4UK1lLA`OK^9$KyVB05*lfoV8J!G26qVV!5zNMJTqs` zdB6Wa(|g}iwW{h`3}cPd^H?)2Jt6Ol){ma)NEi|Oo)rRa`7^pckA42h#Mv7Q>(FG` zS@T7dPiG(LQ%)$IA@MZgWE;h2SD)6#dFkO4WPahdapf}j+N=|u(Ah}yM?VM(7l@r8 zTuMqKhB@TnKbA)aVw{3UzofIxWJXgcGm;ci8_O~fcRasVl0vO`UbEY;)K?qd+nYLU zJmxDguoB#5ZCi>6f><{NvU;%p4gu5ayCN+GE~n2|XFhSlY1Th6PbTS|X#&UF@8R|D zQOnm}q^sHistt*zeQaQQfnc2?^EbcyAAc7AEH_!$ciXFh-|C$tE{eUc=THn^F}GAA z3{|Nr{K@p5%{VdJQY5XOFEZ4JIgNhcV6=f$N$xaoscRZir`sgaRkn6XIyMMBv+`A0~h<3h-D{{J3N zMAx$QE12)3x2Htu3&9C|%^w}Q4E+$gL~1bs#96qYCpHrG3?d6%sFn#HkL^m(K73!A zja?l0hnjPM-kB^waDpbM^xgOvRy{C?qSLoCP|{2Rl(NQvmB=HU$!1*&|KU#quo9tU z3wJz+++)dC5yG5#H**vB=TkSrWDD-8x-AHwDX|2TgO(-FywU`)_bHY5SYw+!>E2Wh zqvf-}R+qjfn;S~pXk2_NRZFujBgV#}VYdDwyv@pA+nfVMw`bPK;XD-HX(m*x%9A2numOOP(#Xdma%}O`+JGcH%~PDIGWAK_<`U*r>iRg{bEGEGfAhE z|0Ae&C)_(us(`cx6b_Enq$i&PTZPiV{0KWXt?>aT0>~^Yk_~jV0(5v8C?kc@V;s6) zj1#B7f&Ag&@a>24Hg{M(dUuYptM$pF2W!#RQ=2RN12nI26>@E&MVfEEX!+8}Tl=J{ zQ+m(%P;JyrWA?ce8CeYJkYIh+!90EQL|DLXaZjhmpGENyh)3fk;d4L-MiAV{0Fb=m zpcSo=#Psou1U@~MnBWx?(#yLCUZyNgtR3$}<4O@i8UY-(Y6}Z(Vw*gQF`R}S?*ZH& z^bav0k;z2DYMs2G!oGu_DtK|dG477|2|6tAli`&}mz%MM@%P^;lhm3+$acnaq9c#r zL~ibLtAoSmFyHu9oYBbvD(dpSwpo7g!OF(@)i)VUJlO9qYaLN@)TO^9V}k22w zT_Aj4H-bcowY~HrC#Gw+JHl&*=k+HSWzfBamUTX8HhJT2ccz9|`ct@+quO=jNv4z$ zZ#+BnW2l;{gr8nAa3!C0PktsC%Xm*cZ*qcKUXv3wCEk8W?IukDfB6{*6s`efeyX$@ zEc_XfJ!;Vfmgn#b){g?%{p3bq#(y+9!~KZFb{5{KHHFL@gFGst7S*VOon$b~2E6y% zX*FUYt*H|_IK=b!TQ&1oGDLbh)scFJF+z|dW|XFnaos%=KU#9oj2vat*@djG@U z$@y2~Xv%aLMuN-%d1<`tOu9lwc`nV}8b~$jufB9hR!+)zp?2gGS0}?R>fn)=-4-kIX}Uur>tzeK7e80jWS@S)ED&BfcLpi1KlaAioy7+9T1@mtbUjS%u$ z71D33E4{PV1XBRQ5sbHol+&2`0A9pf9>_%vbw9}3hzaxX-Z@BHR`Ds+2x#n#mFgHE3Se5(sVJ0W$2+%ecaJHe?)Sj#u zsOv@KtygHj87~5+unJ|}35$gNEHu%E)O!ZpS}S9|j2w_xh4{7rK&Y^Bqv zB>8Lukp$1;pGaK=)GEUb2*caT5Z^+&%-lcB(x+-W_2!0eBY!_uiwu+RqW7-voH09- zO;>E#tbZ;^{yYHLDSJ~;!cp_6<S(BNBst6hh)u0G*GoVTnD%V5Pa z?RfEr_Q|WHT~*}wLdcK`5hY=*=L%2%+7F+GXe;!nZy4hWU3fpFa%{OBj!mkoYT>^| zK;Hk3fW}mK#>A9UXxyyu>t zLUwqSwG#mbQyl{n#6!yZBQrKewz&BI{?a>0IlQj&bj9Oz?7OFVIB-O~OH=9m%fMt1 z^%c+v@@hYuG~M|8Ky;3?_zf(~LTToU0=miE0SlR5dWjKlc~5uB!usLb-&6$#VU!2?6Smi=?!4nQQQm9~`fiBLm~(RZHFf z@}GUZ8CH=KUWe_1`;@-8$UJ6?(@I8XjMSFlPRabj%@wsYrtkJ3lky#u{j8z|MQ@v0 zxc+;&IHGU{5$C}agDlmID2Ma-_D(l_p*c^1C0pwgi&VJTKrF~9Tf$lY1=YzOdlr>) zxQ+sfdwYui-Hqme0==7bxR56_rFzwhbiD5tmz2UxNOL~D2?mLUte>cC;W$OaK?1er z?RqfAs}1JodqdjA{!M*O#Nz>q+BD{sfswIB%85bjfaFLwy|3l@%U$Yt?|iGjGk)aZE!N1&JIPc@^AK# zry@kYaPLDV1DdKtw}WQPp<3+*7R<${ly^_JaP)C?&C?7oj+U99sMH3E0HELW<*uos z47BZ2PhNc|^mWkWKv`SF`tdLA8Wu!>9UcIq+et-(W+gq|^LrEnVDN2V=fDElsU@>s z^ef;vqYsY>@+Ayttd;On3l5erGByr66UT!`B?x(b!B#JF=y>zzG|1z~28G>d-3XP0 zi{J^NbagF*U37Nef3-1)fXfrHNFhB^qwFaDTMe$oSXT0l;>?rpv?ZEsq4{&i%QLZ+ zl@$TINysg40c{J^t0|)u%YPn|jI59=kzZ(B*V`4ZYF9%H`6{&P%lW`U8{TeSZbO+> zH(Qyt*e;yn?&(R=H%&fR?PaKaWm#tMvs65!_$uJZHi zveM|=9!}lf&27(=m&eG@%lo@pQ-G-302W*8#7zIhKd-6{Zq~C2DOsvq@!8m}$2;_$ zD=4u{J#enT`fd-j!uL!K6Kl%<3Yh)zLnGA&^XvC#GqW(K>mzH9LG3nrJ-yAW4=?U#OH%2R5codr)Pyj%!KKfA9{Fv=05v!wiOS;htcI41 z{n$REvz3Mbi?sv4H##8_cbnJiN=#NaQ@I079ftx?Zjc%9ad5(b9s??V{*S;ESml~# zQT=Q2>Cb8wcGVhzdodsdq+zvO(qRAEdXZVn3|P(UYT1Q zBP&3-uY(JamGYCOgG^~nYN9Y^Y0SC=Rk46L9<#kx9r^QVenGXhDKKIv%VNq9OHF?% zKiKs*LaoMNU`N}Hx%?a>(N7Yha4_itNFKkq+V0Nzd?@o?!HpXXTG1IrUx9?Q8gova zm!l`;yw*8TbMG1^tz-EORgtC9-ecIa&x#tWt-uR^%Td}i0WCjw zFK?wWCLGW5-UE=;6aW*n%m=tQ2FMLD0tQ|Izzcfyug$LzlJ^~)s|%N0QI4OO+`9ql z=R`oSd=yEVgmX!$tvo`TG#s4Z-=`aqb$}Zr>Z%aEJgYZ)gF#fm4Cw`o1&xi20>4p7 zo2<3_IcJvc_zxw)!@(K<2Fsqa1D>%&L`1K{3ctJ9Zeae&2Ud~kAwQH4-v0bbOWC-S zF(Ne^7T+Ob{VH_Dh?Hiq$|8<6veE|ER1obPx#Pr4> zrvBsXA+!8kV$;XulBa@^3+9^I8~7ou@CkD1^WVflGrJizVB`#45U#k}$7{pFAWg2t zEGaX5{8Tx9bvFfhcsJd=2M(WxSQ5)izy!5xdAYSRqSftV{Avp@%+)hsDg5d`K!0m( zZO!L$T|Pf|e@gmMH(ou173f!30m%W=?X)kJn6h*~~y0&U{_LF57tDo2ea^kbpk) zXxs$3(F-mrC?wNs2r|rKNGi z0F(-=(O;)N(FQmz^S0x;`2d8)&nvI31ik&VL#OEt@rrgR33Bn|;G&|TV_{)oI%Z}K zdPtIDeQm8ou~If0Fei2AVP|KzVi0=g@t>zeNA1>`76C9YJ;K1h*A|NDO*5i|srowk z-)o|4BjXs?x>Mc95g{~|ytN%#jbNYR-oW$(hE3+9hvZ-3_6`B}aHjRHU+49)od|h^ z-`w6msWwRWeWH%G_WRxXSM*|GR=lIz z;Vjz2^)dc~u5uk+kFJ^v{LW5PAs^$%_|F*`FZ7v)f5iHWTk3>-SFwi0gk$4P5yrhFI& z2Fo_~_alaehMGaBE)M^BYVqK{RCQw@^ z&HX^C)O9w%=Y#~Hjq@8l`CD;*fI}EESLvymDGQ)Xxy`%W{Rn<2=}U}3h@J20tow>- zo+~s`f$b*5gA3F_*bQ_sICphLZSvu4Tc5T&>GjK!|177o8SIC+4K_JvFkyep7y=p| zX4r`q)7ZxqV)uCK8iM>A1YqWNk;+fmy(M-L&Ytp%`8*v z^`Z?(K?c?eeH?In#yp(8i#)x)sG#|Bd74^eNyKI(+Li~*<+}|f(To3dALJ;FwL8f} z*mmLX3J5m+@imQxod0XmdF`Jj6Jj&%so3nhm!oVCZH@lx=a+|-giPnD z_I=*%ouZpwbyF@PpVKz{Be;*MHO5_)^F9uFC5YjO?@H!<@OxK%90nhBPX%m0ki{V) zlAw<~d^qHHyw1|M821JIlnEutJKl9PeS6fO&UXptb0r$a$evuojMXA(qIk)bxU4BN zagGN6)Lv>oJz&2h&cR_mm;mB`Z!E@i&1({k5PCVOAZ|xaTEx_V9j(i zNHnhPZ!mqS`UZCPxNN&0vRC_ySXWWK-XY-ci#w3@#8Z2GFk?f&Yu}oKf}nr}dq?I1 z{kRAXFtSc+KR8}5jc~Q^hTKd{uq83;Dg{NeLoUCczrdpr0oYOgg?IL|xbZ_lc6aC7 zJ-{`a(B8)C4BeHqgapxTu$??5EI8QQETDQgo_nhmt+M&*@bR@HfBCYn0WPF$OUnwk4wm{q#J0 z*I>UCdm9p5qFW^lIGBI(eOU3hZ@oTQ3B!CdKUF+_AmrWz(aud#$J<%^)HA+-e*EV$OtxczjMxmK+ z-hR=83z}_mg2L}gH&}Jv9%6jE+UzDhJ`8`;gaV@f0Yz*~&;F+I%oAQXhC>JVa6JZ( zFVk@%FUZdq5@=v^UK|;Hzk57$Ne8*m=~z-Eh((sL)?%VK!*KuI#jcI;=MmZqM{6l& z3wIBZpzWik3m}>6CW`#~E7j0=rTHo&RUa6R&AV?+rvssxs;IB{H-~FzhN`o*$IpKEJeG3wXz7 zGsJu2J3&inG8M7oFEzD5LwMH(?K9k`enc&;1%$-D_qf)xQbvZnMNwqIm#tdTGW7fU zsn%R*HZvnVzBHy(t$3m=wQ4yy^)IWH_SNxj@!w=p(Zhz;!*8mp0^4u%Bg%{`q9eY! zxR3(y-LqAIod?*fqjmzs%2G-az{a}|m^prHko`2KVNNka*ElFz`b|DLn{vi{uJD|w zgv$Sgh3#Cv>m7lx2x^o&$!|z{bkibsjgdU`y+T^dssCVcAb{3%kl$|W8LVw}AbbNk zg5IVx+mRNho#R@oHtvCe`ACxdDPAtk#N)CvD3}W`dHoS^hBqCat@v4FrHAsx*JG~t z*ZzQiyF4(F?O^v4*TnzXL}aPdhZl;Iw- zAn0To*h4gZv za0_l2QKpapB#J>Ify!5bEf&_<$I4i|zA+>iqAs3+#zqE9DNem9rN*%{ z48-4qEzXK-L1@Ih`R>O8i!oylo%BI`FkQGo*jiqyUiKm10iP_>-tcd?8~x4g&kNG<^i9#fKwlL36w zBCuh$d4TWc4EZ4l)-j+UOT{Ikm9=OkDlQpBk}`6 zNx)|+phy<*ILY$<*z`z88NJ&xe-GElM>7_7Aay%8VA_RZT@To>5EC=o-~P1| zn&(8~-CK+O`|BK)XU~1a4N|b1Lb`RfUxj>bsJpI%$G@(wm*6t8Sxy-F@e~dxP15K4 zKQN1&?~ZG4W|jC}f2hJY@KmME-lg*wca!q^$@#y(ZwKuReCZ{!Q}Wwb1%scKNPV%H zfs-JlI48BuJB%Ch2&GkhcByAFPWML%tK}}KIKnU|U{+qCGnVQoog9QCo%StWt_Bkg z6;&N-yTtnoMq61`+cnXu*DmStmtrU4HuuYB?0Mnab&1!erG#TYcBR%Az@EIw5&#pS zzfKg|u{i~VU=mT@?HA{E`Mf-_3dh4IKegA63BOKj(#}15bHM(<>S|I&s`QN`2(#vX zcWYpnB4DvSM3BvTBj_cGE2lS?EXGfnauQ}$A#7pW!)Dh7=9ru4Gxvi2=#N_Dj*V9X6a5?0MR>kviFxU2$18w;6>Y9>X>k0`NP5}I zgPuXs>3Gb0R_fdtAY+-VF{Qnd#5vlJcosFf0l>B?58Bu)}`i^-Yw@rR{>V3! z0R_aw)?Vly*+p*n@-}m}=3)#V`S_f-!YkW*xJUb=3470hn;xLhSUMluz^rg^jYg^VVw};^Y{Y5t~s_KPNQ3YCC}#BuXrOOA^nOa z6~v|BAIe#si>{r5E=;Y<+TiEQ(Q@a3fk-te{&UiYsC)2wSM7|UO;lR0da$VOq2szr z>6nX`w((g;)(XUsvq%OyY9Gy2j5t&z&2&m|c+WyY@L3iSFm zGvEbSc=2#f+1{-RoeQ6mYjwQK!WJmgtO(U_ai`V~tGxt1aM|!*p9%x{WYb!u*U=W7 zn(AG-H_52_<2^cwOuXHRnz0DP3>PdAsiwZ5EN13)=3L4@tQ^8z$%c!K{k>qHAAx<& z4+9Z#+OA=3C#N+{r=Z_;G^3sl1TGP`0Dxrg$7zJ2UanscX4-+*gV~IN`;eKAPR11e zlhY&t-RYFFh=kEPv|g(x|J+u`CBf;^ zPp3_{36fJ?fUh%ya>~R!Dq5q1*VT09NYZa=+N+qwvMZ6rEOOYizH%f|1-x82=zDxVaDUJBiBn@ye%D z!D7gtWe6UasKsG~_%e@7#9t2|vd+@76#-KWVn(5{upw>H)qa5RoL!rk2cTR5O5AuUq0Fcrp-jCPLuzHA z*58)Xa|$-c_HKgHuQd;SpD0sU<0Kb;Z2$c|%xY8B542Xt!l8TtN4M@=J}+hlsTX8X z0PC7XLx+-^l2QysA8#Je*6^zZZh(&*8$F-+D-4goDjTZaSMnNsHS#~`D{;Xmo--|;Brom>n)7Z#lhK-Byj){lfoB~jxoT=D^IEhFXZi~Ih zwIBC?A1osn80jTRE>oW@#BLh-6N*NhhpBq`vKVd$m`Vx`>!M9H#Fq&XJ05*B<`zJHyS}>zeg_%g<$pVk zq2;ds_g^OiEyO(STjUx~LZAX?KaObmNSkvuJ zV~?G0^ir@>$#`xx{@=@}&}o`6_4@L!WvL4@hwv3}9QS2;y$O$to15&(`W=c(-UAga zWZ6JXe;Rkf8*fd)U3O$F^JE}>vs9G#!wV%wh%ig%zehqcnM|RRplLk-?GBnV4A4i} zm^1J}!)4Iy&g%+hcUyG5nvnch!M0;`1iHMqP~!t06$LkA4AeCn7@h&VQ}hsz`@jB} zflT2f<3N*0Q;u7c^R_FPt>vXD5{R! zNQ5>|J|C^DBf7D&E*;1M)2qRuClf8FOl^YN?sk?0K(vPRuV_sO3H*C6eZ#2q_7>Ll zbXC8&cqo;X{Ivk}W;Vcb!}e$r_+Nx5l6QS>PV`Ac{IQ3r3aUMws+T@Fve_Yh`GRL% zkPtJdEPMwG@EB)*QD;5%kuq^{p#l}F-@A#~CVyUUs(+SQ&RY<(X%++Hd5?6g(NvM5 z4xv&S8`kslb03LqZ#b6aOlk7|i3g61nFK&t#<^c+&?qerjuF1!qiU=NGH#VM5ASnA zBvHMO0T8ny)7ji!wB>wRm8(`P}q9ocquFbj6sl`kej3SFJIjF4w6S*!Od0E+P7# z$7J>%OeCM34j^L?KzDjlhwMY6TJoR7VE1b8jh_ATx#lZY*vZ{hP3EH z0AQQc<{z86$`~LLZD~dQ?~VXY;Va;&`cYg>L#9e}>NC(0eK)=am@c{+l7t(E_ee`P z?#UcPTVar+Dc-y0^sSb=#>qP@ksY{ZnrUWCldZ{Jl(@z%ogi;Em9MeEpb=~Ia*ofZ z*z6dwrPz(-SZSvJ&uNt$G+oXM137sEK{ezD@L+ODbopnQYyLNI4R#ov$AUIao7WlY zOIMj?PCK^mEA^s&Dbg;H|IjUSy7FdX(Th&GEXyv&YVr2N9m_GS+|Rb#t+8L#p|X1C zbfnEUHn=;wWaBhUneFGDbJ%pj=y>*9Zn>TKrt@0YV=K)WEtRFJx1P9+Y<@?s#f?_! zbZ(1YXgk{*>9qZUy&FQ`3u9cO7GM|2nKf@P1biCV0EJVLs&yXJ_do_Q_7qC(*=kv}sxXLhF zypiwk>ZNwa(Aex-F|JQAy3zPUYcF9JV=^uB4PR!%wS{%!MlWg_E=~(KsIX|<4-|S~ zmh`Mu5?VubFGtx(l=l@B}t`z>o;msCS-pT{f(hcO}GQ-4-|+yk)*- z#A6|gUhK^~cs4wSIv=?fy}R zPnHlAr0QQ^Lgs&e2{oC~Om~?WWkjjt=0bLhRne{CRD^uv0CwsTbYnfDw_+vH5WE{8bZ1h6R(u51}Ib>eej0aZFR_&16O%iNd+#Evlu#d}{A+0kHIEO89|_s;w0 zMULLZmy$^YHLu5ivs@`czdkVx%`W`QTIfdhfCe53PNVXi1*Qx5;K@%+^IXD^5?JJ44}85m6;QW82(qV znHe;_38!2Dm6Acr#1a0^=y;2^axUxj=Dk0lQGZO^NR}o&Wa$=iZe#aH~<&H802!T}`RD_#8ky z&A2$&@~!ie?o})ei5~3uH5wdh7*g*dyv#~-8=lWKT)x4R+>eU(*pXcJGV<0IE~QwZ z?X$RS#IVMrvI%mL!8HttgP2SkSQ3jo<+WMM`Rar~Q)(uikHMpl8m_!2zJ>dk;@5eAm->L8kxj8NcHzBjjh#-+b?x=lIQV^7}^(*E1``)3GZ! zh5*Tp?hecHgILlxbefO6SK5p4*cF;8W{*2b5Wl*X+=8j_U?vV#-etGIY%H}<-w!*OYAN>RbsbNZYAE(rWXA^H1+)8{K*>JjdHlu# zd1Xt-hJN>nD{^Kbn4kzL2eAzUgui^tUD)N_ip`iwZRz zTkawd>C!S)Z4w!i6jd%Qwt#t0X7GJi&ND6|8;})j5P!1H`gFRWpc94y5to5KaRQBu zpDx8ri;D%5cC|`n6Po|yK5gsYKT)?!YtKd1x36|yPd97*K$sZp(C#(Set%#CoWdA0 zr5e%*tgItBLb^f8r?i{e+1rWI|G!(EA0LF2`53J$2nY9ai&U{RD_XUxI5|8gF}l=} zgYF&~P7r3dw2S=tIkx_=nD%KF9+IWzHdH6PH(QYIO}y|#-r$N_sn_T>#Ry&v{{2-&1nALO zN@g>)S}vD|rxB7t(?P+D#v}75d`_U)Z?4LoPmdi6>Cn)S9yX6vBmUGNK7VIO5hYkD zdleyDfOk^%mRUxhK7L4B8$Is_g&PuO{rU}H)o2%gKO68Ij857*(c(c4*mY!j-dion zsl$F8zJ1K~+952yzMN9t1aP#eM8*wzP0m2~1}q@80}fR6>OPwP4md{(fxefHglFf< ze!FoxAoKI)jL&ePOb+}tujtLPFzSDK3wl#ie^0FRJ>XjJz4_R+M6J1oTb_#G`28YU zz?~e(qoY&%OJIg{Ez#aQ5Q(GPb2oC(8XleY-~O=X2Y$Qh zG$-MEAEniCdm#Fm-A_`F$yCR(yoYD}PW!%V{b`LqSlxg8jS456cc!Ph)VFsXvR=kf zvigLASlKOHeSM0YZU;==?^^bGZ8Ks(g(xP!hMcr9xllRH(LD)3ZNwt5kP00X@PRF~ zGCZUqZMuEF!H#%mBnO6^oZN~a2@u(ajP*7Ohx0)!D8s= z$l(voXv&R(_lV@Od)4212cufAgT$mO3?GIOX8dsNMZo@>czX!{V;DNx^b%pcNqH70 zg3?`SvD0|_SE6E_br1Bcp$AOxkHc)7lQ|oeH?=#L{m)NPH4ZQ03Tg8a9S{1kLY|gB zKm@S!w`B%8Ie4<%3r$iI8B8jEI%Dm$~-Z@cVYe95y;~kijG2+btIJ$&HKUtIyT|U{6Ph)>8d&}b#j>hq$N8XK$e8gZ9P3P`$$I*_34w~0nnyZV%Qn~07pD{ zFd_t>Roe9ViERak7&bPsqE<$-aoo=RG=gDV1%MfOG z;m4SFl^t6hr^}05Q${A<_9U#FV-V|oHMGC? z(j(o&Rc>^%3gzimT2)hX>5WJCH(1otL2>v39g!qDy%u2}US#l@RX?IHdckjFsx7^* zUMHTY#hPf*qa?0ZLOy|#n`?ypW7KZ4DYMs}@ZwSd#SGEPxP|Y-wH;iqq*qQRkAs-! zEeC)GJamuUu^<}06^ZF+dVlBBKbBpxmKU@Y6kv@g`YSTI+G`lk&Q@TUHw6fTU-RFL zVb|-UPjD*m`&wn1XohF8BnMe;T~W%5ez%fnjB ze6>?bH(^i|=C0*YWQQ}gRLds6Y)36uNGVF{_r$rK4u(KCkmyBtAo(Ug>kyB74JYjS zvjZQye^Sv#q$)m(7N0klo`2(8i*e@E)9qFVC%{JKpN<>CQAk{UOjx0uDb>C{USoAU2nJezbT)hTBHRsqWEllwd5YLIV_yW7GoOwN zQw{ob9oh<$&$j5*9FOMNi^qSjF2jM4XpTS+#jSqvj^ z3$!$z@&Eoaj7B-T7*=rR5&h!p*l{zp zc#Zoo;b8kv=U3J5Z~5@F_G#B#5P#uCrm?WTurapF$9SpHt?hc>cJ0&6 zWXjm2Cn}3ji_N(2bfvx&k-zfBFl&e8`Xd}DP8bn#J)S%+RBuKy#c68<)FrmYa}C=L zsO6Kp7wZo%AEbB50ZH+M6$a9z5TXvhjY0N-z~}l%48S{27RuwJ!BlS{LYR&a! z5)7vuoAq-B!NnFnXfQ^pkXj2l7X(02BIb24fD*p_D*+diYTzv-sEThNb=q9fOny)uH{aXa~+)&2Eht z*iKEa+euQ!ZX)l^{mp4rAOSY^m*0i*rni4Lbez;;fke3*?)Kq9e)}|HU_j=H^y9#` zhrho+pZ8^nf2yXLhs<_UG$AJ*U<8;Wda$--fZI8LCX9%9+0zPTy3n;VcF~j9m2-R2 zG7g9R90cf1ZvnwqrPJkF!RiDW!u91NVEhKxyEeOaMg;gtu9=JzyEL^?pv_s#wA=x$ z#05!7g-$ke`!2(K9MKObh7G7*0i(qe3$0!#`o9iT`~R(CbEgiHf#}^gaa4f90t4J4 z=xd*}+f8l!CPgM7CHMaNmG89KC!inMhR;(mG!`$10VloVj3g0T?sqkl%5G+@yxi7k zuz645l1gOiyL2pg==#~sI-t0tiFg;#Zb;U<_WcR)cWqlnZ6AyUGLCQKlpILsQm!|S zqv<~@yr1GCw!`jKyKWhj}k zK>TZ@32uV$%J96;1<)c#H-EPJ0z^hYSROf5cVd!7HUyNb)xi&mIl4pRTta=m)u#PQ zLS*^1I`u^JZ9Z{Zl)GfQzyjnKg9o{!lTao%yY44+(=bMkX7b9v+4Wt2+j0*B4Xsk5 zLg{<6;vpai)$)-0S!w179a5~6D|X0Z=c;}TG^m4dLe|2jrx%(~Q~^x|+vl2j;tl24 z?|EWcIT0sk`UczV3W@_Jw3xCzAPmr%WAkXpE+`z&jq4stivR=?mEGjeS=qI9T+n-i zQybd#<{a)v8O0aY0`|M$qa}~AsjHFWMl%H67W-27Fc-&&Mh}b8!?7I3(QJz3K388Y zL_&NPJ#{D#<(9zBe&xO8)=SZy!9)a?-LWZ-0k8Wbhuv|*i3RrZAQh6C)7wXmA-;SO zgjQ?;!m?Js2lUtP4|FBCq-TjS}Pt~7Hi93>LDlWj|<-I(bfrf!^=(|Jt zHuzA@tJGiXbfMtMRq+KrW@ukdvY~#o;@GCfbC3;{U_GMk0iVW8jeJ#Elei5+64YjX ztlkQAPRhm~RIEx{j3@8d$6FI#fCY&WD1VInJwN}wn?yT)gNT~Ny4|T?yub2`qsQf7 z1f3+@BXIioH9f0C1@CYGL8|-+RLAo@YV{V^c`~ z6NOEEZaUn+j}gQgBT7Unh{bJ_(j`s)g1?$g{6!7-6W||uozD62U7|l!0MZJ`z0Y=q zwPP30Yc=OhQd5pP@0V_PYF|i4&qK&KMl&_tJK_T09926@$Zs-LJfs1Yw}O%Q*N`}gBAL**Gw@Bb<|P8TFNF%{N6KVe0R)Aa@=rJtp{TMf zd-GR@Wtz;uBasNmBm=5_703a1=Q5WEGsHMF3Z0euKGOxJWo&j!xo<(rS&^c{n%q|& z%(}DjruCgQIL64P3I!@OYeb=(9&EqFj(@y3*OQlN`*gpfl4LE$>N4HclHBP#XcG6Skqg=j0iHp4U zfAVuaYr+GiWX%a#4DbPXW6p$ad5u`Vh5J{EU2To~6Y6xCA=x31LVv|lgP8hdQiHvk zT6xMBoeA-!NJ0H(9_d;=GpP;H^#^|t<#Sm$U-;j-BVeu=i|3EpIW-h+)`c2jP&ih?o^kGCwg-w30p>7k# z#g>5dUdEZ;JD1;E28bz#_VXp*D`mF!KOtN|KTz>`rg25enRIquH;)w8Ueq(uN-zY4 zsabuj2-l?Bu$J=GIvK}#NYEujsBZ%#8|0F#-!Z|(IeyptPphB2J=kIocCmX5{jTa; z1uMSAJF2{yT)6NBy~GI=nTR3Ze zSmemY0Y#oq5uD5jiCKJJavWz&L4iN$w5utATr$j%+!W9QGnH6>4JE+wGro3Fsz{S~ z9IldPZW%a9!4QM})2wBv)k%f$kmHJy*;tJz#thdFxEWz{h!8{2K!ID{TO{GXSiHRX zs}QHLY_%lgq_>BtRXY5sNkp(>fBv)rZa&x)>6l-Wo5lh)_t&Hs6RlooKosM{qgI<1(}ctU4QgtruX1qM8qLJ0>NpG4 z#0!C9dAQ?ynCq~7`HkzR9Y1x;D^13^m2Xz2`C4pO5=*90J~#&Q*cz@~+dp0&E6P z8MFxh$)9zsz2yZMV%|}Z15;eB=b$5(gDTD;@7RRtc{8Ap1WUy*Fj_hX;#FPbLAgOd zcQw{mpV7RkMYMc|2jhp*tSVil95&ae4ZWvX!sfqHRSVkVxmU68ST9kH8|#j!!^R#) zJcyU{hVta}Y*N=v zJoT4vn2YA>Fw6vm!G6^Xv8K{+J-o&T+AnB4RR3W<@E=JkPK0UsP=V zCJsj{J9r!h%^RD9_tj>tNk^02ChA-BFgBm@{s8zVmB9)igdWjSk8g z)PoCZP@Au_N*n`qz9B)yScgJ?em+`o@s8#^x5}jDc8ix=|Ng5oC;ZQ^fS%sLm1->t z`I}+PZT5jCBneK=Ky<+LH=Ue+h;Yu>ZsgCR-+2R#J z?4S#0W?l>ymu4Y}qg&*!GjKS*XMHxTuZdymirup?cLUQqXcz=^allVJ77-KEc3!dH?or`z&tIHWto$Xg z0s6}^S589UM*_7y9E#1o`vhtfx-1UiWSFwOm^wF?ek7wYsam}Hi4rGVK*0;${oB>W4ZIiz|UsG25Wx-;V1fQt|s(bTYxWIKDJbTV$^=65Jj~vtkm5 zOASRRjp&PRnQUO~txQG3qug4%y;rNOAZbIZu~k?=&ZF<{{&eV(v={$rozLHxj*z45 zM|Ey`;|L~gSs<6)k>TR?Y6|ZNp5RJaj@i*-P0S&0jR30?BL5N)`*s$F&o?R|u^L0N zMp7{Jrk5uBmB=tgnh>MMPh(X)d9i3XpS`Q`FS7ou2Q9;rbRnTkhOZ0-H zKg6b~#nQ(%dECgpc@ZGH=ivPoPnC_(!F|Bs z8efvar=hT!DoXPfyYwvwwr*f!B``|^em1KD<3#Fq~XW>`&50bOP(Vcr1 z!749Nx!ncargF9f1gmJ~>NU4uv6jAj>)2&TEI|5u{HKrT2DMZzuRYT4@KMY<X_s zbI(2E3M?8!uH90aW}9gUT8(y{C%$~9R^eyxgQ!IG;ahSIwI9ud?-UL~?f7;LC$~wt z{i2N^(E8)HNQDRj51`UV($prk;GQI0WwY|!yteT(x3eGB5OB7fnurgVy`XJnYTiLo z-Sv+Fodyaj*ANH?GGamcxxyTHn=1Dcj(b;!kawgw8w)vTN#c=e%#4t(OVM7=LWTRP z+Oh#!6`6CmSiH*ZUHo{bKA_P&-jB(8J7=E5@kPmqO?SPk&&Z@LF}H=W-od4=ay>)L zOG)A8gvn(S#skwB4!zDc@{>%wzJMB9qI|dUJ5X`ub;gfkzR9)hse|n89%}cFK$o}RZ1Xd}quwZMVB~JKI8oC%b$1W=YKXgm#gy}^R#(!1#xnHqIyB&NvyY~aF)mkPj4l5g-x#3YOCy~hQE+0k@+!ys$I`nT%(lK5~GjE(x zos1jS4m~ahl&)mQULBCBR$JG4|^n1v%Vl8RkyQWuXr zzY3CALDD4Snr)C1NM-$kOcGvrL*G+rgPcHj$$(ao8F~cY!y2IMQ0Jgdf(_^P*I)y$B9fe;FP zEQTFo`|*TNHf0*yW_A=DCKsp)q9Yfx4bJ3QlCM>WSLT(dEkKu@a+tKf-AhdEcdCm@ zhsJEQNBezi69pui;Q~YXYjqbjc1!N4JC1-%`0wSa`s6iCv;_aszLYCAW!*pkD__xD z4{d}m^fO-ATrAVQxK8xYwoIQJ>ZUXiyh-=$WafY%Z<`hKA_&yCass-GM3HI{pXgIQ z4HJYQwl`1tZ4luh!zj&klcz=fz2KCGBD+{7EpmY#@MpArujsZ;*BG zh?V(NKXMk8!K7Q!VL8?YM4{-pwT(oq{Q*zzD5-z8V2h;?gtr@g(+3M_`imatrWeNv3e4{)VHVR<6;YzS%lHmz`>VA=;i zDz10#a zyL!5qyO4aJwTM^GkSr`aPJ8eERu^s7HDcQboPVmvBL`V+)7mm$?+n)KY*_jF`5o&{{cU+!vjvEkE)hjiLPts>pJ^5>lvV1{U5rx+x z&AAU%thQ}v)|W?3Z7Y7vhm)boS}B++VBb(f&{zCQz;7WM=T?)FL69=9Cm~eEY2Lwr`~C zhdrZ{=ZY=ly!>K)fbM6_q7E#}wxp^zeyto5C-enXOTEBQGpDo6->MR@e%J|Lp9evl znl(BBJq9eRVA@4ZRy%UotkgWhf|90GF-lKSxtVV2SLkEw!~0V zQLX=qqts5}@o|s-bN9ZB9c1!?S|5bXJJ*=>AnNYVlRBxHZ#E`8CDp4~m5!dS)N7{2 zni~^&N?TYge^JRAJ3ops$Q5r#`l8Q*<;TkvW)V-%{oV@yono;o#nbN|ynE`gJxk4Y zj@i)2uA3fA{0~jog)xUlz~K||_bqt%V>oU-CjSWf9&Ca|%uy&3b$~<%Sx2|RnqTz9 zGw=HGsNs_r6_!UIzVUdCk(q%1OE&0J_NZL7?%^b#~TSCpZTns zHPqn;zkYNS@n^<*jQ=WfDvH$JG`Icg zp507&PD!GA4MHaJ&+v~PXkHt1hO%FmCNKDiXji$LRN*yO;{BeeUtRd3KwE4D8H3-J z9H^N3GAX4Pv=FxsUfhHl{7R{xXTP!UT-cLnhaK^M+GOJa2OoHmdh9fLqt#>vT(!MW zeOxRUas(7Y(*&!(Q3}FJhWl3sBCxAhmv+M@}au$9x*|Tft zDL0uJ4p_eqUXR_2E*$(N5bFJVFrNn=@nl}IeptWyEC3%;h)ny^o%Pvn(&1j`(UrhT zY7WpBe$j6Ib-xUr#tvQqVkAPg?`84l?zQt93$o6&#&RZDFEbAorZa8Z;ZX2=-;~a- zNu+_q8^-gz&NU&|w5rgEAg7B>>Y}j(;KekIcsl0RkCt?jjr>j* zidah&h?e;YLw%Agex)3pm~z;Y=|%ta61x~28r#ZN5D0B?JKESDP?66DHk^`b6n3Bz z`jiR?;6Od(9zH#E$#i`T^db}uJYUvQc!!C&TNk~|5()VjKRdZ6mh(+6xD!%rN9F^G zxN-wc%%^iN0gorMhHoCvj-&cF>I7qWv+7qC8X`ILJ*4+izYp-7Mr206wq2BXw?(|6 zgGw^{yV3oh|FeaHsM<|w2WtD z*Gl@(vpQOcyYs*(qAoMJ){fue`O)doQ&dJ! zo;PyO{?B)<@>j(e6o@5^D*d`)shNke`Y@KR$x$3*S6An^^WG}jE-NM*^oo@2drj)z zFE2wdPxYMmOo6}J%Ggq8^MxTic}sZty(d@sR~NpfS?{`v;?)u(@j&B;Y>-n3b#t(5Dx^ct<_dTQ-!OkU>-Y`RsxGgF9$ztO zviF?ZzjqslupB3y5qr4SkG-3Yg`sxZ*OzGViRwRK#lt1{e9Di0xtQ%H)`I_2J(exd|pUm5ouiat}jk$+s z!Qb29i~P%|+jRULgOxq8c66=tX~W3|H)E_eNSm%q-1bEwJ` zcGViZleKUnak`c%HdN)AM&>{E$ms1Q<^SE{Xeq?#0Cibrur?Hi?qIcLS9Y~apD9&EdN4r`-&O@gh#G-@jKQ}Z7dWGp@2pK7%x@?k z8^S%7!sZEC5%siZdgly$VY0dEF|fJc_`oiIy0M8#kAXttsWc3n*2amjOzF&qAy=Q2 za@PI`bgO6^?h}6Vd*RiJ*^eJFqmjI zlk0_znY?;A+D6J)=}_!!L@i06`%JiloLA{#(#wQT_s9@5^Lf!aFoRZ>c`hwMMis8U6BLeG3(n7SQ$Hlw)lL4Uu4)K+&T{?k;s7-qxCvU#JyOC_qn0+?f2 zWAitJ>U%YW$JvpF9X|#;>-Ps4e`TDuzo(;SRAn8mpOHLU-aU;bCXqKspQj?_aD?ww z=$m5?pvMd3{6aN!-!#LkvMH&WG=&jwO(DyefKzH4tnGtW4TN`Xb z*e^YXpEhXK>L6y3j`da=VM>Fal%(j_uywZY%4D@BgbbmIRUUJt4@99#{i!o= z^^8fc-Zw)cX7 z_|~*p1Q>!ikbsjeff?C9&l*|2`p5I@!1*dyti=zNfh!C}bP1U&*pXaN9yv9P^1@L= zLRiXka4{my#-NRDTr^r^SkkB|KD=Cm{!jP|MFOJ^2DGu(N2eff4y;EQdK-26uUp3r z{5ZjC$Pzz2WGU1}w=P!=>t&>}VYaJMq0bK_&NliTge0oh0zM9i3Q_BP4HDXDtrQeZ zp5=5BpdfB<7Z@*-=OJEXflr3zWI z-Bx4;&qkFPmv@TZA9uC*nlFE!Xd2=c=XuGb9AfqV(FifEpxJ5~88}Tfgd$n4SVL|e zb17m5SrZHui)*MSSoKCF+(T@QX=M9>Q(aP^-lcjs>Q=6Fk^f>i;Ia)X|AMv3M#WAQ z6XDU-KFsXu(+}}y>HGEe*Y%lKAH*ow_Y1;lR9?BQ9Mbj|cl=4uUIVWo)2CTC<6@Il z6z*COlY@D9JDKz35Bd6uSWv|)=S9SiK^fS0bF+Dbo48Tku~~MC^}0%Bajq!LUkn70 z>ltwR$shceF26!;=_#_T-F-pBf7idg-iLs4FriEos07)AiNlS8YMs!>JrIz%-3mRq z57dOF34Z@<$WgI`Ts8=!XQ+W1wP~6h)n#{2c)W%r!3A8_ATcTsN z`Gw?pL`ytOB2SMXiu;er-BdnzqX11UALk=cD)2~{!jZP+QWci=9CNr*yUs?#=gsd{ z&)f44JGDYsAK=NAAm(a<)Avk1E3kWdtM+}B3p@veZqV)nu^o}x$JS4Yz4W>yV^BN==WpY$3!;R9qms@$Y|zT3iOj&dNkcgEKH_tAyW?I}XC8le)CRU%YM(By^8DiDEl&|&1 zaim;zC(ekjm$Uf9*RD)auMrMM8+)fyS7IP?_2vq9q}GWVa`Y_#N>^YF@Ksp;?%Ulq zT~rG{dW;6PTUZP2HPhq;PHev(PLuA;4y%|_cxuAE)z1d~cxfKuvYrE1(zZ%Ce!72@ z$N9`e6IC47;(J)$i!g9?wJ}q}gtYUDiAeN!U8VWwQ6$Q5kPMnWQuZ1pUO+`HNd^b1 zv5!}}sL0|UNA(=-8V=PULKQ#20ugmI^=+ahGb?0KDtx%z8p3B2vD$A3;;n9=~%6I9%Rh7KCx$NAy353esz+YNJ&XOw`eqoOy?;w%=j9(A^wuzV)wmbT`H)tM2l zNf7b^J1ELFs_(zX>%c;d^}h2_Ml22>{n~5ClbkL=Ide){i)z2oS)7KG8F`uvpq^LO zI;?OqmZ}jlb>>9E%{iUq=x=qtC%Fp%jI*#P@iyUp$Fow>fi`q~{q@S?EV4+hs=@`U#p3Ox`g`HSz_$?K(4yCoCgM4t+U zQCqp2{7JE3Nf*?}cpPX)&$J^q+DXHvi56EJf~TQNEpkh-CEJPyQNN zfVITy8L24_KX4wlM=9@#?5FObM*{OL1NiRjhl;-2U0Fod3DMvqCes5uRwI?eq`l0` z0=57SYH4Ec^2CZ8#w^*x<@(;4pm@D=sG|6-N`We*Dz;;}Ml-(p2w51kjX4FEXWjNx zi{)EXdhb9P9A@$}2|eO97WAmnQ8M7zSG%ka_W^_V{olsY$E#dA zQeDQOLhjGx2zFbbb&?d@9xU*`CI3(XDsunoqBwCpAuzF+#|0Eo^p11Hc~88ChGPu~ z8RO_0x6E-!i)0b+?s^y>o@YW>hGV6@Pg71Mb=g%~HT$m}!l#z-s5AR}_Uajp-xi{t zmF2+QMGJDTVC;R|`KAK=-7Mx}@?99YrLu#owHo}$p}KJTC#VcT#wvPC7<;mBouq+C zqVgl(`e2y`4I{Jh)L~Hi-!wa1&+9MOE5a+HVt4L#!vT_d&o+e~2K_mozaq_XOnRcb zR}P&^#3SjjIIm1rzR0V@?$im5Gq@f!MSgu{g`6 zrf(eIOV*E971xb3vZiVlf|W{*5#ML?sqQVV;IN}MH7GS^F4e-!4B?6Oo6k6!jTu`> zMtw@neW<214?}fjE=%&DeUmj}{X=v>RC0T{?~giG6ZKEA52rly7FM3}d=FE;-y~Q> zJ}BVsobBQC<>T&C`azR1I)f}!ANX8Kd84uOyOnw_SyphRRLF7Iby0nF)Eqrtl2vMnm7Q3v629)X$8*{6vPAhRm`=hfy7Xv#>x8I#89U^Y3X`@UPsr z!zAekWzr|bT@6Q60Kd&PS$37f6Ns)eXCK+U1-*1UMfLiEX*FpKr>w#uuRq3PoeYnX z2p)NBCtI~q?X~dn=Hu#)>Ek5C#+N%k)~RX=*Y_3DCSPQVFJI|;S|xk(TD{fh5NPdD z$YR=AryQ-1e4ig%AQ(mNhZ|tOq_881VEa`YG&n@0e8z$7sf)WD_mUztq_ozUHnok& z_`=5z|JX+Lu-RQ94wTsmqq1E#>u;gH+UyyQ&g&CGvFO+y3uS(IPjx32Kco;hkOmQZd%3OuOA%jmzHlb89xdl$R2#wjKV3L zI=KYNGgCjBiiKv+zLZ~8eeicU8PhTeeXJeTGEy8C6c9Qg5?cnp-e`N;Uw)W6&uEgX zloD)KsJJ!H1mQ3bojjFqdF7jW>;Kh@#s0Ly=%I_jY`rkbfVsT}6P)39CharLL&weQ zyEn|XnRc!DfBz-$6uBe<^&Q(F$KNUsC7+ko-Nbq>FaA_PgK(_>P<_N6C?--$0jqeN zQsG|`of-L!(H4Sd#TS>%U~XdJ#Jp=BI?%HRug&M$Ksp7(47bnb&tt{K74JfhwvTQP zYN7z^rKe0#B&@sGR>UF`lYkwk)}5^=7xRf+fH!orw(7IC~S2g+T zv+c;G-J$WIiwSHleRb_B*lHPQ3Bm!=UqpM0pb z24_P0L>$^JYaVrN^^CIla;2eL7NgWcsYQQj!Ez4gjFAm&mXZL88IGGe^w`V0nQ%hO09FtE(o+u;38cTD4>0${YZe;d%&p=`m0jM z{b>vWoXSi@7~-`W2u32co=Y#W@hWoyS)x_gxlLG%e5~#Kdq4^Kq1~K|f3o*Aq-mjv zuByuRmOO#>iAWv(;fOymL+1MdPxwyvfS()U6iHmX(-uSzeEy{nRx$R`8ZP-N&1WK( z26$ji47;C!%7>!y*trwAY$er~!w|G#k+;KCOftz{B8a@=!&@3vyA7aWC9b{-A9&$2 zUMPd)ZivIqSrSfo1hse|GM%7(nqC%3;ctRA-g)BAHZSZf37kf$_xX;e0TcBxZY@A$ zrKF&W!MbEuXoYDB%`PRJb@GcAHb1Th0q$GW^b~Q*@n$yx;-xy_D=lZ>$tv2(;6Z&u z#5L=G9JQAHRVs~eFljf-w*rCq8`BA)vEM#-;Iw7t7KdreHm6k^z{z-eJf;_j**+tV zdN{4ifEMT+Z77=idl33(P6#js%F>S?L1j!y+;`5EvZD2leq7HN{HfARC0|2iK;KpR zD2BmXP9}{v5Dt`-hCSaWxak!6ra%mr&(|cok+)reDaD67+FTYaz~bBe%RlS#8;L8SxoN6$)YLlv)gbXh>Y+0n9VU`0$EvDpXk25Ouf||8TwlS&MT*a(9Dul>Ht-xNnZd-N> zHB7dK475QP`KvGa&!k##0(;h{ItB{w`JE@2nH+T`rn0 z3Zni&0HT1H8N}&osd8$09?KiT!A}h%ods??y4VUN(x}aV?f%*Gi$lg0=Fd6}^Jgji zs`P`wLyj`^rs}u4-fYIB7*rLRsFk=kih0Ub#JYSEIWBjD1i%2GSQ))NRS1Q5m*X`y zi&nekn^T}el1H>>qIq_!$x)vzEJEe&W*tO`^KHpLfEV}c5j3FXFM3 z_ZfJP>Lb&3$G_2&eAj2%(7@=&UowYiHU>K|A_2d>x0=kL%V~H!L(!(f08MLN(T^Ap zY>r|*wAJ!MEmUc}%E7gB$ zl-F&0I6y9FHPutvzpZKgNJ_UG4SiPe0+>sH0Om6~8Uq^{c@XHK4&YOPp>&eIA zri1f^;Bl!RE|*mmP?b||18PC0J%nZ$OsF~7z)(`FVaV>@LY{Ax10WG6?y-AGS^(NC zG+$n!q0hGIKx61SotL@YFZ|vie`CCuk9mYkuOfIIrb4*^0|=HOIkCJC-l97jC} zvav8trnA9WVTEbITzTOTs?r+Q>=p@St z2XR~`!J>!|SoN0cv3=^%e8Wa^CZ_%WZRu*Vyl&8r)$T|TK3wE!V*Jdbw|;ffs4ua428vw^ z2sF5wKL(w(eKiKXhO96YnuI`DEPr=uvdIiSPCxq5_>(5q+mQ~C1vF?^nvEBsV+r|Z z(Al40Inq@7x@Kx&xZ?d4ViJz?KnlpHTKJT)hcmeiU?%!}X1a zSG@^2t4&_Eu*SG3VvP+Ar!Syw{5_BN)0zj8fzxgjTN52xcBq)+nyO45^m~nNsmG1h zbXF;H6Ja_JSg_T`9YUv0g(y-UC%>FstyJ)23ejWv3G9bjM^DAAb>7T#K|p*%lKLp3 z3bcg(Q)VR|QK->#M;n_rddEEp8DEk!e;g(%3(lG61eu0qtM=Bv`91FzV88d415*+; zmu3c2d2Xaj@4>z+WEIc|Fy8K=i_4x%eq<&MOuQs$9Vc6Yb-u04D(_5X%a2xxUBMC9 z63oBFk<6S$ccIpMES#Akx-Ej0RhC-A`L#bYAVywan&luNAsK~UAFR6Mfxa9;!wOxj zU{90lC}2bv2J9`Bf)8Z80LWr38g*lD1*nRWBsQRgq&kR$e4Ksd<$!5fi86g)U*LkwuDG*sBU3U3S^Q-JygQ}|Zmo8> z0TsNv&>uk@=RlJ}iO^o|NWE*;QpY6X;X192GT4_NMj8I_1{j}V8|?V!^x`dv^SSjc z&Q7QO$i~r0pxAXviH0P-UU9-Je}kwAl+05c`XlW9=!q^$3^1K%VH*QaUT-@PB>BTa z1%U3^KuF`pU0(`~4mD@#6!fPE6w(0mYT}z|3qUJbU>2w>b_Zg4MMMB_v{cK<7vV$4 zhk%Rij`elg$|N@!_0}z1NO6b_1<1&z^$DoLdf+@C0`Za0le5w+Se4|LaqzTvV#Hg+ z3}I`mCP7!BNgFuj?B(rLDtiRs{-kdlGM`9r*BuNw`NdVk6H>@No zamDKFMQ|G@KgB~9hVstqw*vqEORt{k_{BPZwZQ3OE`@SYYi_uAVkLiN5{rLN44<~9 zE5t3=%HSG4%7e2reyjz3@R#mux0rEFpi5I|FTGau;wlaG&lGUT#xN2bJLZ07v zj+WYzU~W;4Mv-}nU`cDIC``1S)@LPuk^liZ0?`fgfnHI3!tFBLZPL|%Jgt9-$%qEMo+1jk)-(Lr-lc-&}p!lubx-FR?1W*GktZ2~qgVr0M}u3~dhVSj+uxPJJ^4>H zPv0m;pL5;2`=CsK-qrU^(eQ0rFiO=Q5Sm1KGrA5#H!b}uU^tzGeLljYfLFvensCX& zQpf``k6hzbpFWsn183W=Dt$Y}R%xl}pNjavKq63T8v#>cssai+-82W+YPzSYF_ejq zx4)#m#Bl)U-}RP!6NK)%oYi?8PN`(el_pnyw6fF!Vdqbs9H!aD^dr#1zPpZKM}PE5(+!wMtDAROkFO8Q*sk6N^hRl@x0Wk#a8&f63# z_t+Mc;MNb~^JOBu2(p!93j$K*|LeRw+(}o_N>(hBA?Tc64MCC|Or?0Z_$-mUwVPws z$T%vP4sm`%0rG!?O4?pb6N6g9G0igoHRXaH2-p9rOph57WQGBmO(Oj)< z4W~5C9&&XKAl+M?K*&`8B^@9!X@K!ru$@m+LVJqAMi2UK%FDn6@VO_{ z_iB+IS9in?Y+Zii5@Dy-PdJ$T1uMlanI>(B23q8KPNA!fgPJUjKDm|1(PkoKiKFsgsS(tg^ws z)3a!fK0HOg9(i1Tpiq2G{>HQLy+NP~l>f@;B5MLtIQpQzxP9W@U$s^Ns(oC0@##Oy znl{Y_mdNq#2fe+vmdW{vCzBoMq3rC}p!xAFC@^1;A@V z9e>-}|I8==yoxdNclm@q&e-Sk4)Dd|-`;fPi1A=3Q?g?!TfsCZ{9r`0Ok~@6b4*FAS+-6 zu&PJxNcnB7jTv3CI4luvjM6ihRMcWm%;WLNk#D@7#{@h2hV_Gtgs_V4i}| zGYX&kac{lNT&AEx8lNyd01C6Ylz$Hfoc%xNZg+~va+RXk_74uW1@T?Jy4mRwsSUpA zer^G07_<*bNXNPd4WXvU<4p$umRyG0KDx1?)CQ^XnMZj zX3turZ~4UOjm12i0)(T)5})B3a)S=v z{pn)tx0HDtuV$_vKxY5F5~t%U3bi6*sKDGOBmgMy1e^#}z*h^9685GyH)pLw)oRTd zWmDO302r=Y+NfFskk}xb!j0L{(Ox^#+}F1tXfcu&b;xP`mfLf{WGrUM<8(2qCp^Y_ zwK_{p8pyR*O}h~UhS*U6K-SD&vhz!XSPH~9iK)WFg(3R~hlLu1x~t>Q8!wbKS}!^g z0IdUs>=bZMdJncoIH!%Sa@o#*UTMACmqpR2tcehEfk*^2&3`?oJ4~_CTRan`eOI1s zE4ceoA9n`TSWJImkU+THoeIz#)U0}r9T1!X-3fq+(jSV9x6|4xKh-h_;JRqmQ}C1+ z)b}3%H-V)uS23h&TC2#RTXRL-woqZzSG|Hc9D-)iSC6Do9Pl0iX$J}rZPNq9Z|p1s z?W#S1-TMaxrms(;RH|-AMMcFew>Lcb{q;|o_n$lL6sEYCvox2G%@n`mep4p1)&*eR zc$Y_8=^4RH;xOc1%xD-`Wt=Q~UA_5{SukR4A|7zDDX#ic6O*~^9P0NS8Tq)QeuJ6q z&Y62`+9wm9Q7uS)-wSaL`^k^UUKVGn>O^Z%0QwEUomP0>%*-h^Ib!yLE0Xr&1XfYA z)>_<%wpZ>6y)L)o?t0>Yq*ERtE&JWECEW()I0LEwNagF)lq2+dE{h7z- z_C3GAl1;`HLuFeD>C8}ar63ke?f*)!aHh`(c=hmSpw|v{G#D&*J%^PRxr(m(L=q#z zp(Hz6)t^;RC}U?9kR0CXUSoQw6a6t{5(kq7IEJ3~y6qOrO&7|NdX8x{lQuj!$`8KH zW49+uM|^!gzrw!9#Kf$MX$TsSrt3Wdp$Rj4L(K+W{y6liogL4Q@xn6?4z=B$_CSVE zUq285u_sQsUa8kANEc86C0UQ#Fz&)K-cM^fu z$dK|n{FouUc3=raf(x;fhwh#4%oUF?1}G@WnM9Dgxx&s-gq-p1KRLX8)_^>ZkkC*I z+TLwd$(@W6;G)fig}b3!wT1gV-b{%&S6phcIaGhA)2#Y&`~IAi<;?GPVb5}Dmc6*B zi}N97ERfyZ7cegk2%vCukO4bpVq4sPo$R3XzjO*9+hEWtc2I;OvieUX1X{{wCyqK8 zNZ!H*KuMKXo{NRWPA`wc9IGH8E#jyJI8uH94^_4W0Tw`+AH`+S*A}6>B}{Vab%0~! z6A)bkfTs9)6{uT_WdLBd;@;L2YJYU*FBS)N`OxWJvGDOKCCY^NT1bG;tX>qi-1F=A zpIWtrqS2*>5e%P4GWis?a+VtGitgG0EBpT5UeW5a+hmgqtnih;CbB#5hstxS7OOr0 zwqCK#(`h>P5q!|53p@TdR^neTd@cD*!z}OK?Q)w{#Ax%qPgf9Ge~4alq3>IM|_5A3OXf z&cs6Q&>Fy(wEt&Jeh)RH#!atwliOwYJpiOE6Yh@d23DRpj#<;IisEDZB>E_Q{A`V_8{8xvdrC^+1>{{Z^eA!e#*)LQ;`T92_E5 z&MX*`rlfLY(t;uu81n^BSqu*=o)x$6r~=_JkJPGeHwT5JGV;Z$06a+#XCU#1b+BqW z%}mhrxT&O@T2Iv77B3L|7NsEg4D&~@ZJp#a$^HGPS~XMaI||4>Ps zdGl+O3-7)`i|>yZn_aB>yov*vDLdM?mW1AFwUeG?3w_>e@w}29dk?${*MF7CZ4PjrX3bVIACY_N1xOE*W5tp^tSLkBT zN(0{m>YKx4S}iP~7Mt#Os?v_c z++H*s{3qHDJ{?mL(LXiy|0@J|NR+M0j`x+!e5obaG%EG=;NhKe9igBZB=r^47hJ{` z1PN${wp{d;`#DnW+RVElTYa0^G!|;i>W8w22CRoG;`g%Sl5_xE+LJ^jc@O=3`N;e} zy5PMq5uNYt7`K;Ts@?22m0@TFfg9!`E4C@m6Mn8_v*+D(hlx5Zmon{kI6Nl($x9kO zD0)DM_|HTAL6|-&kyK)~HX@E$S5!1e9=Z47{nhR>4(KJV9^9pSZCZV4EG`#QQR|v& z=kE_)Wih7TPIGsru?sC~AEcVb_`0wQZDwKxM3Gv~jjCk%_!o^)*Pism2r5fby>||+ z1|VWQa>=P+4~N|{Ekd%)d1)> zBOs(0sR*V{y;B>)ADXZhzQ zsAc5yk<0u;cK$=b0%`(n3b(n_70<^^501i#rPf+?&*+250^7EjQSuqB#SH6a5@kIz zn4Snc5(-X53eFEJ;n&)LEe?1A-9N3Dzb^oA%kL$(7GA!B<@jBB#QI&q%0MI&9Poz# z@xr0a1Bd~Y0MMClcpsYo3&8v1nHRM-HhznQOP?Ri#2u<+ytxrRNg%TTRDD2>3NS4M zVy!GQ06_v3pT_>Ss(y&N&U|;z!N0s^AR-N*ToA8MmADZ_N$uosU+uzLYs-(Gq^zd6 z01F%WjG8$)=QH>&iNUCPnbOtU<1%URaY8`qPrds;kuLuIR>s_f_alv~lhPH=JM_HT zcS@@;Cg?!^4v?k823>qmn?8wP!84aDj@<4*%+D(^DAF+$^Vc-@-&Y|73AsOo$P1at zg{)Pp&;USIX$E2F(ik8Kqat`3NJ0g^#@MuXTdr=pZ<`ddJ6e2MeB#>Lcn_T$mv4Wv z#l!;1!SC+4V?+=4C-Ms70vPFN2nm|Q{~r6SLRE2pT^Cm9x5H)oy)=Uho%`Nq+pjns z&pSz(=rDpi5A&jgF|e?#$!~h4l0B7&5*dnO7juH~Dr^LSX%X_7X04r-&Au+6!Z>qH zthg)4$l!C(S58YfBLDz3K$#ypJrGZ0)A51L`JYKNfS~mIMn%%^_4(DPD=2{?(HwIB z=|SZFce+D8M4?2zbYcloGjP7`o&d6{YEG~An7`?8N@vj=il+)i5}Yh32tHB zUPP4fy4sx)@k(W^-~dB1+v@&5vi>qE%J+NYhDqseX^|efV@L@}0V(Nj=^DC`MqmJG z=@JHz5QgqSQVD60?hxclJs1A&^{oHBZeAdZCBtxDXYBLXdmkSm=XvD|`}dA-#N_s` zS06(Q3!_>CuJb!CjLo}+D?4FE@9>XT;1s|)!cll`V$?1A#ELLa+AOGXkn;t>Pie%PjZ7L+8U*Ec?}-XIO1i+J>{bby_;@ znmD9v40t)kuiN-9`g@y!K<;_fN9o6td3HPwBjciri!q07%u3)D@dgvAlOv{O=0nzy zu1-V-NB!o$m}rxa%K>V^8en=er-+A8J{iyRrkYFtcEeSS(H!!K>~~Q6xO>9H#FXYy zl$v_`@9!806b^X^j6#U4_@TlfH~Spg&7z>4s5+Zwx&K)3`&lsq69*=wA8XLX;8mA2 zlmQ(?$DW)e$MZ0GYQdUrAao1^9MV{}M#o6{v;u>IzAj!p8F~V}tlAlKo^cEE9Ml+1 zKm>|IA9BYh#a}i!pz_z0->iYJk1qLzLY(8t&_H}pvYMcg~8H)*=%tnsolaR_R|5$Y-BCaq;sm050{7 zKb{X!wHtKvXU>dl+f$%qu)lw8^)c8~wh%bXKArFz9lp<#3KBOBx%UPi0~b{?7P>jl z6deHkgmnao2bC|k9C0)#y0#?w ztsr#tO)8^&G&|dLe3y9-%8iuMvyA!#F5Rkhly@-8fqMI?4da=u6U<7U&c81JmdyvB zBgrYCrPA27_T5)G;C9UG_`}{rJ?{FjxudRGQElHc6RT4Hi?ITLZfin*(pwyBI#W|6 zo^&$A0QY2lJ#SQ5c|q{IclUYjXDIDowe{JIY%lml=_Ab#JGZXbD=;gK+jcTLx*Ui5 zfQ#f8(;qb)7XSl~=jeRLI1_mG;k_dOuJdw1RAM#P`YPoKWQXY`_Y**aB{DDkbZWky z;+Ub^0e=-K!^6TG0N|1pH|=s!*k#qL!!E%1uo=a2zIK1k(0nHi*!QA68=pfF5g9nJ z$=I@0X2xs?fCH$#5x&&>+iT6yC_~o4zS$~WRd8FvNUoR@l(e7X_nn7Nu6ZO>whp+2G_V^ejLr-Q2ws5c1`FO|y&JhwG~ zecTg>AL-^QD(v%Ot^w(2GRz+!Db1b|GcoxBY5!tpCfiq#uk%|IaqWI*9}QqH-eH^N zV2l~AJA;m()QmsR3$N&TWhg?-MRqC70>gmY*f-~6Wjf#8$s+OAC_3Hzxq0_Z_w7T& zAjR=7eaqj0@(Ah^cB`69z#MFE+J^K^c2|ywYZ72qpY?5Nxc1*beu#1@kP7m;6i{mO zpz2-;`fnrUx9XrHj9-8eNz*p6I3?vaWwhtH7@oGFyFkHGXOI!=*lLpl35R}V6`3ft z3_xsv3x?{w+!CMrV8eysLX?%gdZQMMC@>4P%9azd62hwKAkS$TgUco*MyY0ER??<1 zX6SJ8X+BpD>NvYud=~rb998}m;Hatu+!dQr`&N+0=chV@Zb8}CbHi+nPj7PZ1LvdH z-ZZm+=gjp=kmly~_II4_fq05EPA9890X?_Nl6RaMUmbtGD=&A4&gLa%{Fe{DUEA4- zxx2w(BXtP=7)_ugF(Y3<+dnu5&_vTPz7c+=Dp)R4rv`{(-GDrmCXeJdp0u{1G05#e zT>^1fv9hvwxI_Q-*X!B|f!%nHWcPU<5O$(*sp0@q?~?g#xPUbq^~+n+_t^q!w)kDLc_)w0FO0GkpyV9}ld2OUe_9sqSt1e8(-iVz>p)p<8_#-%0) zoxs2AG1%0XH6Ck-CsyVKhA%Xlx}0UBA?w(=BO2H!?U~Y58AUSe_#LKSmOCUaw*daj zfGw-6_Jh#0O<;CQZ9^(f(J8o0Uy5`47D()JJOyaYmUGf`;^j(v#mQ3B*f|*@U|ux6 zq&Q(9++s;9C)(Kk;0_%(NxX1!pQssL9rLIFWcP=x&fcKR(pmGCxd%AE3ZtnA~SHQq{P{SCu z9XV>c#n{XNc>pb5|*2l`Zom+QD16M08(`vbf0x>MM;33T+S zx2&IjtI?FFIp|2y{jycaEsiOy_I+=zx#EIR&!>MrM%ibT@m;gf0FjuC>#L^ z4!iQQ3<7~v#rzs(;{-g=jfqBvfsbrpC!^YudwS7~r!T2W^?>Lx!K3KuEL3^=GC`a3 zsQ{_%pEJzAS|r8FCv%iyV>aOXUp@j~G8O-L+Wxh;pUfrnpK4lDwH%+0DmIFz?^i#) zi($5}{3-j}8+XuLn#FAQ4+`%m?A^IXjauHXZw$o$cf)4V8ED9w?_*=S;ixM~P>k{P z^SVG@#M(Oj9l!^(a?c(D<`9rNh^x@8CU>0sav$pcJwPKpZz^R_#TLN3JTXh~X+#TG z-E|89ATUM}fbtB)r4@f`F-vAihmVETlf`FsnJb_pNq&M%jXqarrYYQO<`bCt|Nc|o zgSbD4c>GrGczn3s{aKyK?fsgKM%XzkxY=cq9MDlw0|NuSu;2;A@N$5e++QdgA-G8h zy*^whcG_Rm7X_ZMVps6}kDPt%vyRqI@6EwPGD-pYO9PU5K$4FFHm}csW)JB8It@Tf zXEMPkDr%5=G4}nX{lEL*k(%S{bM}=0j9LIz-H@8Ml z6Tm|CyFF?-TaTf4j9>_PxcdtrcC_lvW$(uT-5Ch6aXPMkISm7t!~ZV#B7hJ8h>nd5 z3jRHKU4Q{>LnUYBZW?|IOR!&z1Wk zu&TW!6k4rh2TlSmcZ)1gFJpg-7&>ea8u$iXg&GY;ijAVrvB)FL|PpE4ws4_4F-cjc>KVEdi)&} zz%rKwY?ie?zry+h2{|8OtMwXR#tW|UOO%*>37mGej|8S0pNHr0TVMk9~{6D z2xvPpoV2!8fXlmM(I~PpX|j@Nv2W(>%TVHQtgNZ2Daaup9XKSo0FuO1yRU1M#>4y5 zwI1wXG__4M9JAk8?<8;RJUF|y|^q_F| zRSNQL$&evCna!XbpH8EAa<1vYp2vr4>Dog70uo|kK@+`ydrdlEVQ+(VA%)?);R&8j%thNLLz#8sTx(A#~hvIoUV*yN$Ap!(_jrIy^f%**hjTKe*$=#8WAu{ z0?jv<4GE|M8vWFuQ=ED=!}Z@j-CEorctO>Y=F8myy~wSk6Nx5AN&!I zet^@z4zgsn3l17XHZr%s*P5-mNg~?Li z47fE&dM|Oy|JP7mLydJZi9B?kb3i-{?f_D1GlNbnjXxT$G#EYBwybEgqR8g0dKP#I zPa0aVOG%kdWTX1|2VQkdIavA|@tAxofxF>a6{1E(yl<19)jUMEx^ejsGK1CYBB_MJ zen89#O4xB=5W0??Sd^*CiHl;xdEuiz6){Yy6<}pyNk$BMW3Wr4Ofw*t!dD1#TlhM@ zTHpNuL`qG>MRpB9@cD~*5M_d@gm{|{z48*mKmH*q$y@5ma*i0@bBXOHft+(Xc>gPY zSq%vK(#X>#?a0?8pMkMyniNi+f%DKhfpOjr(bHR5S;6)M5ej@p@gTh(I@nm_5XPnK zJ1}6kiT-yu16%|sd!!gdWn&LQS3P@kldO^!Xs5m}jatcp*I^F}C_k zzRD`Q&&hm(3IUFOcP44DayEZxXeIy2LK#gLx;I;BIE&nIBG~zuAhZQH_lqF28f^j% z8RAblbURs5QUokyyVP@J~aYLv>Y-S6= z7sVWfA#FWIs^I{WkXZ4C76&WI(hm6*p>-~Y(dO0ieR9NG@?U!EyN8ks-mfNYE&7i@ z&W3&fM*{MCVR~CxpWF{rkp->wkrRZY;8Lvlc6_;%<5)!=thm4Kdi*&WoL+hiD{SB`Ds{$%vx>rCHzj>usRis3RS zrI?8`VlEMbnpKh^xF9xEW)tTbE9!%_GxKY9AW&b??!8T4whe~WZ?UZ52e2(u4zE&Z z3B|`PUg};n&08lHuW6mpAWt(d4MJ`9;|Lo8c%dYZDai?S9(Ls0t9n>W!Y0yTz;0{E zab^-KBxo;admif{DZyfy`Z#T_uVLwvQ0Q&3$gHVk2=JfPwt*s_ZMrjmYGrR7B5it+ zZ>z)wtjKAo9}Vi~;}#>Q$sf>Cfjmb$thX$|`a&5yD;^2jkWfVWO zXap5bSaCl8km0ysGdcuG0%Cvdj@_2N4>OD*SX+7PVec!KUQO1xa5u6^haQB%;BUjE z?IBNH&g7^S_=6wb;frG57!zA(OzSegpeMEF;r=9qTC++EI!cx@+7L;n1EoK7vCzar z1~Core_Yq6F>sJIgY0WTnU@IqLJbCq4(&m6m_c{e$`lCoS!6VE=rX9_aKPm-55O^} zLyQgaJ&lpzIiS^AUL`q`Rif40WGagNaKi<` z#cD$yc{Z?O19CpE}+3=P&{&#g1RM?cyQVe!`n!sikI075Ac@MB(n3uVnf-`Hfx z_+0*x>6U7zFGj1xoaB=9PO{Bp(FM-=z5V)BJb_b+P_JzEUmlWh*`4JS5wk9TM6EkMmsOiaa zTnH%DHX5(VD1>KOEqv6n%$9fMLZC;J@?HtmZrn`YbT7Q6^mX;u;$j+u5doEc)Y*c! ztr~H+>$hWc{7^*438-#w>Nngx6Kv;g!9#jI63x*g!Ug!SOEPAd@3D!??}8XA8ggwH z22*&H_{a-vq-3Fg@D3RANeJfP zzvWF2A&DHvj-KtrE8AHS=a-G{>XStn8K&Y;&6>-igznZ1qNjtk4Xwz z!rqFI;ovq~W4TryePNCyio}dN^k7P_XRzpT`QSi_0fZEUBVNwPjWU*Dh@(qF!udmZ zOafP_QfjSFb;kGiEY%Da$Rk>XGz%j^9;=cBw>`)m_~gnpk_K$Q;xn+WUAWj}>X6#M zwet8_Otq^T*oD1*V@p9^mvNR^iLUgJ&-FJ1a3TK-Aj~T{6{o0WPI&4T#WkzDw{OnB z8U7{arlKEvoZ*xc$MM83*=Uol^ji*uiG{bRWjA2Y26p)qU@f}4J9+o>b5@LKr;_oQ z%C)2Q^<}ag^$fFFy%J@i{Zkb8lhGb)j*K4f+S|E%X{>rj1&O zJF+HY0u2iEkyN6~^pDWM0yZ1Xf18a#U>FvagTLt=URY|O9Fx5m=d0}KsL+gYDZFb7 zvKP?5dAg_W)Hs5{;`!9cc1LNqzDs~%kZ)4M_@Wei)7xP2FFZq->pCVMZE%)Yd+$$a zi-=Iyj<-PuBe*JQCa_db(ylW$L8*97;_J?lS|E8%`kw6PmaXB`Vn{(nWMl*ozlH(q zBX}KYf&SaKO_1v9x3yKK9!$loWUKVTvAu?UCUA^>X@rVMcYiP!_d(`QDlI^lpUi@|3vhsPCm8jX0}8 z(iCHlCqv1nkvq?rtjDLiSLP3Ns1V&&a_M%)yq*SuvmgtF?n!i%vPQS4AF*8)yC~p- zgqemyez4`ha9o(lT~fZoVw*5w{qcSGb&YXv$ut`%1BX)-B|23LGH|D+nMbBSUsq6Y zH4I$bQ39@xb&@w9P%%iuDI;FXyco8ARe@s>eZpup^7yAN1VC|`PMV^G^9F!w2E`IX zNTMm}Roz&O`PE|cdoSZc$11PqspSb(UHrSRQ`Zfg4c?hfq`!K@)KBzlx3p|7Jy9q6 zxtk2Jo&CC$zb2Jj_w^^ZyxPzTZ?KX*tM$2|yEvCqG?8#KR-y4$9MTB?z$d)!b729m z_!Q0h@^a{q?Fmi$;ey-FeW?;OoNwXkTd%Ro9UY5;$Qpj%c+PSqLWK0H>50Zcd23xA!h4goXQDi5Jb~}K_HL;Zpxf5 z!np*X>a{uQ9sbi;JkUx}f%V!l_q>Sr$3X)|7@cP7Op)&bllDH%84@ z3JZE_FNO(?11=9g0Hv#X@bJB$5D?6=*!Ob5u0U6_N@z6K{G#Ie(@yVoa_Fdn_B?0r zg?cjPNTe{tcHt-wdOz7dVoI}8_aj|at?w4``ai5_!K;2Z>8lf|6ZTD=y${yU<(TA) zF*nK88kW{r2X18vK^k1(Q-GIfnnuqEX(GA_k?0~UOmXim{lXny?F8}>JazD>5aSqdCl7zAx{S?0Y6sX7 z<`(&MXHmapF!7f*4$(kMRMi>ptRREz07q)l8hyiHDo@m%IFUNQzI3~W_;;06f{+!u z?b85pTeu>%U;Cb{6eGzkbhAFwt=60IPsCD!VshZh!Yq4cIJX@je?# zF*0?$-5Y{5hz7KJ9fYDm^#N&2H+$gc5gcow6F|n}-P(K_7HtwLKzk zqc1e#0RgOe8L3+P3d%1-gU<#svxHqB(=EcV_v>%%0U1%hE+1T?ovZRehX8h4u)MrS z6qW@`3(OQ-i!MgYyvUcfQV~1-0IS|Rnlks7sbiL>_4_{lJQ7e_lc7(t=u22mPT^qc zpG)O3C7PbGR(5=}*C)GykTl9wg=B7d0?Zr-p)W57-fKX-_sA@-Y4rQogZIE&-ocN3 z1kX9`gEXzKpO>#$IzMk$5qklMwY8R|y(v_K6b+o&u;s%~rDtF!Bw}r<_Tk4`078my zzk$Ts852l9?dZJAXV#cgaQ11*?wvyY)@>g;5~bNEIvAZzAUlGzGos8Cc*ww*ZX=x; zmRc_uUge`d964&DDpft4ggmOYux9XC=R%?pObv@*@aMVc2(s1}q&qz}TZ4OFwVfn= zeKMwv008vO4}pQvf*r+n|BL93(*Uh@4HI;%K`5W?*e?y9x61Zx0FNgCPlT6WrMkwS zk80+%<^#$|-{tlUCFcSFI=(yYOBSEE>y5-3S){b>b4Uv(=YCZr{V@4HWW1qAYok)A zYzK+m=cmAzbiRx|qCV8W!ESWc_*W`*qHGC`*!AJxkGEi{T0SJJRH&8jL4z_4Z!|}C zUpH>_G^BYU4b0Z=-}4%S@a z=-c{df+YigYxcw}Tke5mNf{~!je=W+SzQ=JBd-!DtpQ+!2eZR$T$XgUAeNou-)otz zU!A6aLPb)>SJ*P-oO(3UkLU6DY#UWB*hOfn3*&pMEXtjU?_ek)q}&OQ*N+bcNn@JH z_rQf=&Nmy5vPY!Ud_iklhpE(4-lFj`k|c}j!F*qrskrH11j*aWu7@drhV7%eK)w0G z;Zmc-hoiKH6oVY5nq4fEjkO>&EXuEsBGgXrFWpw+1nIwy_C%Q`8O1_~p$Kt(R!Z|k z_W0Bn{tovrmfZM1Dd#G-hvk$^#!S2kbtMEcWmA{JxY2wHqY4LtbbcLG_r7`K5Bs ze(n(kkQsC~ROg$nT&5RwP#oe}ID_=t`TqcUfM0+xlBiHeW%OSzZVnxf213@gq!>0i zku;Hp8ZS!E28Y)WQgXgdj^bp@m?@ZyANgrIErCH_fK#5ozQ&AV>A3Umcf7s7#lla` zI&S#b9$A5y(oM+2&Ccom{8^Z;7cmI|VD4Jk{WsKFc`Im@BW1G2-!qT%;{{t8D|BKw z)*BOEkz1a&^%0)MbCdtGLQ97_Dnz{FWXva#*KF7G4G*Z&U0RHjp z318Myo9IC?c1#`w5Dl6r>(Tkb#}O-UAgXj68zQ zDdk5lY^1F7o5mw{erJhb>F0JOPa*^lN4HP1lV`r2lazm0?`A#dpn)e;lAXj0&Ar$> zrkuH|P)VBW^W4^sr9mHiuadNH*B5cU^}2uOyBG$LlwfLdS=2bb*SJqg3}5ivW+5Ql z42nxMDP23gp)lM1{48)~4<5|KB>ZC+&&CQNMK93hiCv|Xcx*@aJ@Z5)?+y&dQ-ESg zN>SU>h-R$Z*Q;%mTpm_h-ef?p!{!F|szv?cPlOPQKOXY8nEHa}sW--IbaRat3PaNU z>I`ig6V}0NFYgoLMfg>c4NNJ4+d2%1p`?MZbccZ%rZ6FkL{t0ym{mh~qD_(tb?`&u zky0H$L48iVPPdy4(Q&~H2aIziScOuKrd;3RxyD7WpfOkU3WnTgW)wbo{9WDk&Q_Wi z6H$Eca^urTBn3!33ehtUtyY-2Jq%?adO)F0g(vwt)E9?JBMmYo<&mb;$2rT3k@B{- z8h2x_OJ`p63c@8KUqN)Ry!Obz;xr4YJlJzsI~?o@1U5DU8M+2oQ^oz8XTLd9TnQUyCj@m{^kMNl7WMyJLTQYpln-6tE1oTWY25g!G8JO-t8y_d-2IJzL zY}DEL_#sFn9zIj?B~VdAjR=2>^1|o_gtn*EB+|<{Lo4p3j2xMdF2`X-oSjc66;7-4 z)o3C&q_I6SRJqlLGpjnr?b{2;?XHDYw8e7(O^ZYqldp!t433%og#i6-JEX(mYJM=p znsOSJ1%tY&ss}vR+K4|>-VR*YU?M5?^M6U?RTH(1&y66&^t#N_zT?_Kv6-X0;I8|C z%4{$NB=&;K6hNo`b*(D+R=+S)_sFglTv5Pcl1iqWVHsqs<#X$-bJ#m2_jd(k-!hVl z_h%07-C6WL1+vhvDNOD>->=!Vmn8U-qmfKemlyhJnM3L+b|YL>5Vp*&qu{}xHKlQ! z$cKNVxK&2=Y};1vyvRN6vO(y5qz{=rUw^$>WSD#gwha{Ndp6Apbk_03O%9(Y+E}V= ze6433JqX?gcql5OPx zRZE(Umk(?8-z}Qb)W15xfEPKCabiI}QcVn65mgnujr2QC%Qu0LJr}euB%?n;W`s_} zu4q7B`++qZZ2xY)BA_S`xWF%9>JwButkkmoa1)Pb&F%YCCC8$fA8z2^MOFRHbBEgn z*R$}2EHse?%ICZUuAI;5^W6u8|CxO9ArBrd%bSrXUP`<1XCmKj1R zPsZHgv_(zF^McM*5+UftQ2`kCSw8d`6YVpQlVQH(eqQsa%~h5tH0SCCY5h*job{@} zHXC#~_ZkW}lVoAch~U04n#BMe|6y>#+eG@L>YN!O8_ zY^6$|js>pq_aTt@ndgi9Y8~7wJmkNju+yFE4hpolC}5nUgv-z3aT#=0Aq%36yp2e_ z{G%YgE~2*!!!~tzn{XflRfc!4F`(*5fQ=Et-w|^n>j+M&B!cHJNeAHg;qU#CJb#W^ z3X*Q)f#NuK6MykH0oi$nC7g8Wv)Qtdfhz$#`!}epGi4dMaCTD4=y^O?`EE5^tAh?d z$=V*x%FUm9_S@a1Ik8@CQ=|^}j~+p<7pL$1XrkR00%8_IZN$_tknElp>1TosK;=h$ z1%B#xTqno~<*P|PV<#XD`-_dy;M{Q9!u&hcck$?%TRzgzTk8rc>V0G7$Q|3qL#+Cm zdFkx?eFH6q9iQ31SOeP(;kZ4nBboZu3v2Pmfak*bU zcMAbU&H#3jAEKnK9QIPn%0FFmG1v8_#iDb|3(wCN#zfB*ENtAD>c^UosW8DaT7U|I zfxz!yJn?6(vWSb)am)zo=RHqf=8r3loR@jvgI-B0L)uLk=4hn$dpo8A4Xobc zt+1EQ#JT>`eqB_Jh=2(XC=STYY>6iiHIVx<;k@M%g~VV%ez1#Oiu0;>(omL%V#2I04C8sfXOEd7gcVFt?3Ga?`qY zG&U-!7}Ji1GKEgL6p(Vcz?II45)eAWQ&>v5{@>TH7|MrsfRd4)$cB=(ipaDl%wVF+ z{Dy{24z1*PUj!y>V>@WOp%N$;OkXKa*nPSLBw|_|8d|s#z(WEH4&f10T%C4kRRFa9 z_4+idMmgC)y205}UlhUjNvItQfeV$$HOqLDF+2Zm1>*|eeMeI;K5FheSkiFnPTKxKR4$Lpjocd0OfkjcqF9VJ&{UEb zc4SzGbj`B5cHOra7|A7pN@GZ%;orvU4|{*%%n$jeL&&eu5UgZ%nb%1sz8!NQ`@ATz z5{1L7&%RJ5U&CxZ(8lZQ?02x9ZoBiAu6y-FQ%YgdgoFmUgk|gC9X0Ym>BbkcDRAyf zFXDVk)O>BtskGQzn}z;{a2t*~uG++Ry_D_ahO>lvdwID6b{Y*tf`(EvoZsnQLSqhB zT2A81v!Gk#2z}_+L+_0sH`1O@e^3!`G?w8LwnY;q+wpd z3azdpe2&#l+GS^fkc(S1WFS_iYMoGtpi@Dlsnj83T%3Nx{OWuoA;)2~6lq>Px#>MM zGx9|QzkBUZL&o^gC3lGkVD%CY0ks9UZxc2dc1jn+|zC&?EHHqA| z;u+4LvE6+y78I2BE76JwRgHHDjp^zP-4y5a_5uDVa|KN)Ss}P8VYx!!9)o{^oGpR=!{@lkP0HCQL_9ZNIp`AqyY*ibbrmE7AzUWH{TfSb(%E zI{DKSw27H{*zC&!NnEHXqsVnH2btxWFr5grUl=}~-W@S!z$$TB&D&gfP=xy${gOaT z+4+fBcBsvi1&%;A?cklN6N2PuLcY9y&wsa^VGVZBDp((2P6Y}rg3I)s}YUuP~|{MKgy zO^ySUs|`^(4ump}_5z~6D=*5{t($d*Qu#ahX?j|&57;Rn1*P-(#1dp>AmK1R9I^FM z;EOpup=NauFG>;=f1i*;;pd3(pQ{$D2>x91z7wbv2NfzQAF}*aH4wGFg8Om@kPdXjv&)A|3nD;A~-`)0P ziv1PuhFB34S87dMakR^StJM0HA!DxhU=2xIj`x6;(`>R@1!H)KJ|y?Bgm?7D@)oI_^_39qfxemfuviUrc1MMIwk ziT-m2ok~FTup)3N%;6K8d}=OV|!O5LJ( z_{n#LO<>?UG{OSY=g`DlUm7{XR9W~prj8+dXWAv@blRvJ#bAzrX$F|i+1kTPGShr} zO>_Kl#4i{{*lMILjtm}!%h%AG!@qyOe*2oiDxs6?+knBF0ILe3@+ixo?-v^~T1v{y zZ>Beg71@Epy$VurQ>2C|wd{QGCyo`8<9IMvLf%dxr!WKN`rXR&+yT#*H6$-%@CP=dcp3~_#m+&U^xYyI1&{N}GS+QU;UlKOz$1$SZ(ZU-q^>U6MmY9Gl z&i6dqh7i2@Z?@lEv=7_iqfM@AkYIsD7!W|-+@pC^9C0ekA zg@rwr+r%bn#nb@_h@z8Ntz#)(((n)FTS(&KFt8ELVya5o_0orAQqh^u_FQ_LQzr9A ztDV8O#3m2+c6)3nz>G`5jKmPd1*_hSyZJ&prq%PRcN@W&skuYxysErSw#06~QLb#K ztW@6Yup%s12p;lf5a*d8MsG%gCNK64R!*r1U-@;;UaYM;&!67yegArlMJ<>B6M8!T z9MhTl??zFk_{qKg$+E>YBnvT`j@K!h#$OIg z87E;mi{V1PTvmQ7l8-|s@{ZGQD%CUJxtpPxZW9fKnMOKA+w=C1viZi|^!zJ$ed@*4 z|FArrl=6voKs;sAvFEG9oo(JOdzn&Bkuq*jVR_y4OdblD&>|jP-n|O8ujG% z!O?~TR9I>JCJ5)y&)=vB8LZ-O&ZxF>=Y_7P{d*>gdxT()W9O?Bl@m0^pN8VT4NEWW z=1#Z=I|jp&fC{H5Cf_cW;xQ6=S;}x(&1S9Rr}t9)Htqxs1DjVkQRgSG#`oof2tB`J z8iw8vLt-k~p6nh?U5%H=<{f1~xz(OI4rI^6abdtf1Nxmt_h|ek8LtFr?LO#cALkoO zUCXtNUCg~_X{W{@cMlK1C-tDQaJ9C+w0>l1v*EX-1~uc zkSd@M?aPeUv1KlCoM#BXb9DD7+Gn9uR9jDYAbv=~eBO{4l33R!4o^p6#=*toLkrB= zdIH;7`p*xYUw%M^%>~my zxij1Szc(NLm(Hz}O;5_0cIVObL0Yg%i=_DWsxMMDf-ksR20(jap<-AXKOzH8+gK|h z*CuxW|MABb`@($ziA-4i_pI+g*MFyMXJS&@WOI zhLyyoeh>b42WF4cLU#-IPXqV+f4`d&WB8}`Jox5PN3+OmXI%7aki?fE)-}CeS*wNa z_wjklZ8&MsxL^Hs3xf18BHU5jd@0&*+Bi~bo$jc{s07GaTb%pU+qQFZ$Ck4YiTE0?x7WC1gi#NeZk=b|UkPS62ueBX0j5DHhB zOA#i3;|1XKvI*$_?O!PS$()u<021!cQjtA{p!=_L^-_UU6#2dof`)#LVVDD}=AxAP ziq7rDuohYpZOmK=AHqW6Ns?oKuN1Ib1hoa*rD-niFN>)z&9)Es|s%Q3Gl_L$d z<+azl{&X~6Y1ibmv)gL`>@IBc&wv(?W|E5`&F=1F@FdJ%waMiNrIZVp&!=1FFwrpM zhdt3>uk%|BwQ1w|uNW~R&i%S!rsWRP4lM-qJr7@<+y%~3I_bx!t)u^~c*&>FDzXby z+Sh}%3V-4fFyErj z6^-&PvY?!8;b~T^t&hST_Egary35M-rC*8>P+h4jfpZjaQ4949p1Q4FQkCxs^j(?| z|AP*m{coB!2$UR?DA$^_VWY69^&j=i11L7S%VfKIGTIDyUoivo5Dc^F)bGbA$dP zM!p2J(~|BNYqIV4G<{$1G2ATX-n(_recTh6tk$su<$*CMd`|{VDm}j(ON8cp4AFF5 zOrk|F!E}-aIv_Fr`s15PxkIHU0WXv3l~;HI2)K_|A~?1E-5E9+!}k6Ya%Aw^7tBqQ zyx&=8`fu^~#qi62W8(k6FfQ} ztER?ot(5lFNL_3QS$KkFO@PPOe7xX1_3n&x*I+NJQ;| zK8y#zP?`na@u@tVVQeSUmcw8g6MQ)TI<(-~SWa_A3VnkH{4USli~EmXMt*tML|IEM zB71pv^D6}_wF%?p<5Jq~gkVU%DFF zS5^g~y_2SJfb&U3ld2-+^`BSZ{Xph({Z^IGtJD7yV@;YcU8qGATYU0c>mQNAS=48b zjqu|baVM=5m5-*Ygg(tx#vE~4O;uSirE{6mFhQ;dg?(;jthW4u4V|B93#?#P!cYn` zM$>!Ny${?cMm%kwLv-%H{b&AawKLWX{+y{atjWgzxr-JXN8f4|2jmV2`7UtRoX0Z~^vzAVT zMsm<}y0}e*6vaK(UyyRW#k9JAX8z|RvuKNzoyV`S{}BRNpBiP@hfNs%#L4XU_sFkl zwQzIeI6Ky??lsQ8tT)_9?loYlhgtvfA{{Y9I)FxQe7Vb?!MJBe0(hm8N1bL&-J@T$ zQ6ia2d|Vgtxd0z2Jmi<*&Y8k4_4?-FEBfU-nFGLTu}YjAcpn5&QYB*#Pcv$^H}zx7 z`^|)3Ld`6*(Ber!V@wjGHErM#`QxFX)*_%Bu_|d^`Kbrbbo#408__X~ z92-NCo(v08wYLAav3js7+Z>wL;nTVwnSa)sl$_u~L9>Y?msgvVL!PW;<2>~Vydb~x zpKqowTkLWa`qu1NoZ-x0!X5wSw2|Sf5^>3N02yyEig>eg6s;ELsU3M(_vVvzGqr`g zi#=PFZcQxHfrx07RGHW}cY$bZbC0dM$RXLP-|cu7s(f;VK29awC85l$y(i0U)!Wi} zAwmwTE!L}Wc*l>;Z-(bgjDNLKAn)hi8>gN8f(ZVMHq;Z&f2u05`S-b$!8iQJLh(?c zFRQC@ytF+=C6P~xIG#;B8Q^JaM7G~bUnaqjGJ5>bc7CgnRxbJbHJo)X@K=*;Jme2v zi7m`{dAZB1u(4K2fcEgRBJ0PzLXW*^7o#OP8e{OE=Ls)Ef5~##MecImG#Fy1{3=(a z_&#*y=C7J`ve=_q*wPhV4nRO80$*JNFo|KdoqsJ<*dClf65^{>xssgY@a5j$qf9e2 zQQIotcu%8gPcl9cq(9ZVbFw?6nqd)L@~c_l@(#Uuuk`mk+Dw%V;xhrpYa;DZ9)qo?N1vvo^I_F9CTMEt|RJwe{%G5VTI{mY@c2n zCvak6cv~RRhb4tAw_E9Z;a>IE^d_V-rC!I-Pra21PkGKC^h`2GSZCtsEHUSMccof7 zkX}|~Q#Wp*qy5w}89k!tFudE%!ne)!*m>`@I2)_HB<=-x4j=cwS(VylPGs)gpc}DL zEwN-bt0EN_bSl$PIWnb+XM{tn?z(%F(qRP z^8YyQB!tnZD<%;q1zJ&Ux9sL~p~;T-U^PlnOrTYb*Ja*qNi?gXxJ)ek z+xrX-%sjq68Aq1UtrU*yl!@ya8HNkJ#&6#1TGi0+FCTG97{IMQ@Gq|hCkdZlSRE)P zY5|M(N1YyCM8IW#Z16p==Wn(pb;-!;TLSZsq1MYBxj$*_U;0k>uNc5IE!Y_&!AiPgJB}jCw|?DDYNs- zz1qc(@~HeX|7UR)I^$GYUV6BHQP!B%teXN?rnn-mBe9*jN!qRJ5UiPT0Nf0&Yj=Iz z_cbyi){Hi02Bln|nAoeqtGZ#!RrChZTcs-sv*G+Qz`FaeaHKgr8H510atyV-SbPfc zjPWX=L{|@z?%0`V&-U(rvjzV#r4uhnJ6l8&Vz2#Op!zXH)a7R-*P>T5RyfQ0+l#mo zo7NHUkuI9wzJB-5{(2uInLE5%mhw>Bc?E8EC*gh_JTr3Frg?036<`x0iT}kYCha3n z-SESEWhq-zc#i$Wrw4Y2_k52kQgG(QzY@0x!?=wr)K5nS70 z9Y?_tDInqFu%#aB4b2~P388Zb2bRqOZ#-||Jo>`r3i?Sf(u{U_wUm=wEvsVXap*`| z==QtH|D9AGXeH-5h3OZc#wq!<+ZD0Ag-_;+!RpPU*AG5XChbQHBTp}9c(dVt)5Di1 z^z}!CL(;*=cCD}r@3nmVG0511PUC8g;NlJC)2$Wve=)2WvNqR@=+Bp!Zq3Viz)5iX zNsjKKEUWQoVfp_)yIizNu_v38{|AQh{{+B5IeOp!=bKc>l{BGVKDU5RY_mzZt49+~ zyHB|jFJ_46!J4e`qOT0+YdeSh{^OS{8yn*$t)9CnGe?5s*xi)+8vg}LFcRrs9S+cn zvD!HZ0JBHx*DN}Zm;D1`CJ*UnwbXKb zYpdlvKA_}R)-nt%K&N=$fylnMMA?LzK+66S<&MABTCL-P2j!2S7-`Q0PL?M^NVXnh z7d+i^bmB|bv)AYOmRBtmSAG0%H?p`chOFpoG%Sl3x>#V z7bQ!ZRaS&O3?F7SjclBP>;xA6f5n|;Sd?Ac?^RGhQ3jAkU}!<$rje9pKtP6&mhSFG z$)Q`Mm6Yx-rI8Y(YlNXggrRdU?&p2q{blcCf7~1ge3%*LnmN~6XI*Rk{`Edi*JBLa zW?N0`Z}AwnDs9^Fo$paTB&Zsa?;Me}y+N;74ubnWOvcE@Rs|J2@gb50Qq zyYMle@$}U9r&<%KSq;U?>c86C$%1CFGM#2Ei`_H6!29{~H4$zpl71Cr=W^GJv!S-_ z{XKh_P6@x{7PrNzwQb;y*?sB5YwbFNU zV&iE>iPq?~R|}P^ecBbc&1AW5^?oAZZ$e&emFazj*HIEHW(Ig)M$_$Rh0T(&!rXet zglhTSh>lBi3kT%KBt1=$emjV84bAyBpOlg!c4xvm!4R%K-A=E;ATi1v3Ci@^^r9iXkC<9c}UwzT7u-xcP)t!Wx{ znw2KC>t;-;`XG)@yR&)L-gF^1NFu*DosUDRORZWHm1o9FeQg6=U7r(LPi$C33;^Y)jPT59ZnzWqbQ-Yqm= zUmrk^evBqUvyp^Vd_HnBqFtUU8GWAbCQt6?)N#GC&bsa*Z;*2K@hqcv9bO_LJhvU+ zinVGl@sEFJONa9u)YB8W#rySLEz9}E=|;08o+!zK-(Av1FlLE~?FY{OaA_Fe&3ng?yva#zG~blHE** zj+1>u!z=Xp(P)k@7Lea2$y7|++!v~|iNd(|P}sfq;*9y$f4q>pItr!UznK%-V=gQz zvA^NBHXCXwAC5E(Fr18R`k0fI<0tbJp9q5`Kt4KN+^HgtJ^&j#;61(VtAG_dCt}iU zYyxS{_cSzeZ#ci)YeJ%T%I1h|UFQt=^%QS1YyVh%Z7M8soACW3dXbJsKDYEU?o`Cw zKT$`t+t=BmDGHR4i&m(RCumD0p&A=gNiPv|+cciqR3et?jSm>5z6cJ{95=-@Es!i+ z$=qL};B|O|h}&v=teSX?=crTf^?3W)^^lFJPslb2drc3NN{83NLelH_;JLd{y&VcZ zuwKW3;QaN4ujov3x~*Acs<7JCVsz|JD_SX8Ey(poM@N{CJm?hFJSx)VRU8skGX0qU zv@%vLlX^O*z}zDX&vBZiOEpKkb~m`7c^0iK_H6k~lmqA0tM)U8f;>^=h?RQD(>m`T z(#@8w=X}g9c5T+)&pEM?3nhEz+0yYWQrA!z5iQn%JUk`3My5MlUvi3H_qA5$-u%qD z>*jI_Q07Zop|KUv?E{RuuUOJag&;mGV zHiX@Aa`i`~ZMe=ui% ziqWVbQZ1ON^vyaI<>SyMz|6}YIBFh9o;$GQ_PNqB)SIhECXX!6Y-MXVsXf=>v`tln zJ+srxl*3tX8hh{{t^rj?khyuqiFlZzNmYJq;h83MtUgy~RjbbWZgD+OjF|neSP06m z$}vHNDtiA7#JNi|KJ{&U)5Nv&YSJPPRX3GF7L9vnKw{iWDU-(UU&-wB>&o?wiI+{L z&L8_>99npA;BhHvAtEGo7Avop%);_d1I5|jVLP3CTR54nDpci0?Oi1mOZf0T2#m$!fd~ zMdkI6rMqD?CDf%ld%dTId-^&8j`0gFyEpEJ3>dS#^LIo@+LW;*D4`Rkd;Z@R)5XNN zuO|mH%<)2;k9M}=^Qh(&0vf!xWjwC0AX%%_UVZI>)S*+1Frw_=ak&rUFg&4!Sb@18 zo6Bn!Tozn4@^oJoYyVlAh7VgkQ1P}sczW>yfyw(>_Ym*FS+xWHH4FA;A5ED$wdeSg zmfCKP+}=QJnn>4TjiVV2$+m0T(gPeNg zFZ-C3)TBB<;bHu_3w`0pafM9G#BsjiJ23RRfg5_lcQVsV>z)Yp7f)MefIYmsn zLnmjE{|)4k^7OnTs#O1o{8)Z^FPx0q)>B|Ie8%}|t=Mo#n`&U>LF3Me%i9aLby+e; zBBKuRLX~$W_t965-Zg4 zYEUPda<0O|vP_{h^*so|VCT*&8)!8d`?YM{Ud6s-=*-Fz-Oi(Yw#Otx<)YJO#t+&o zfCsDOsC(e}m}Jga$bI&}p|V`3FrGhc#M8Cq$Obvu_JrhUFq(Rabli)tShZIup~mj# zPx+*V1?}--^HOr23XP-fi;f$nCuGa2d9+C?t+W?3XdZUmzU}*l^u;qGedfPtT4n3( zM_QPj7auXcu9y_p)Oeld7my22{VVm$Oh0*x05VySUu&25gOArW=<&v4rwr!zBbCRO zo`U5&b&t^`+UWDgHiU}bm#otbGl%$JOGl9ANHT}?H%+on|Y^A3R`#LKm= zFaBtf2U8T=iK|ULu=M?+!=EOwV>C1szMf2c!ya_&co*sZb-Y!m@frumbqU0KGhNc0Rby%;79p4| z+JjK&wHvQ)7m6V%ax{|Dm@Usz^}?!GSrQvc<$`VbG}mcvyV%wM(i6Qz+s=wjHgIS8ZUj~>6M40mEa0b zo4fV#9221LRpz@t{%xZx%&Ce~3;JWh7cal_MpC{-s#22C^>xGD&DmodikbHIDKQRG zvF~o>bjOpknMV{Y3FFxgFGRVmK9Uh{3uL(qP|G~{tvQmL>ydGAe)dS0QWgt3eEBDM zUJ#dgIRAI!RwblA4!s!F@yKXY4J)GPX=pEFxq zFec3nsa>jy)Eld8jhVAFk0YrL5!(Tdgg!R?jKD+a@Kh#fJzAH2ephQMm5BA+0zUfVzO#$FWs>)>-EB@*9WVoN z4rpORov*E8)wtrRym6NIeiI9dXQb!)5g6tAH;jG-=SQgMOpr4t9~AAiK)5gUkNu_? zK|I3^mC@f?m}{FOl;RV9n&$2YOdSv}VgGS9Ttt(g{rdq%lVPvI>IDdwjP z`_9uBGO8n1UI8;cSy5En(kRxgOHXRP@v}yjq_|p*jtTOPXbSS!+qKTtpFo}STZHG+ zc(|?Z1?E2R^ybwaoa40yYrG6sLY@suf_jN!(oB-2K2lOFKisqbB^zC1F681OE=}1! z)7E($a@3Tc>#=7V5=qW)QBi9@G24_UY)M^?{0$dhC#+H@e1L~m!S-_fW5dg$<|1z9 zQOqHBO0(nteySZ_-+RCD-IU#=2xYN!r_AE!L(ipYTz;tnvaNe$1kCzy3boQT*8<=Y zIjs_7o_uR`vs;+W#EIvudgouPS6gHSH(m+L4Vi8{|8ZlU^y6b~G;}e0+Ss$oQk8;S zly%u){^yrEaQA6s3!MTjO#E=TH9ZsEa~zz@#Ud%6BO}`Nt5`BbdqQ@=+xc?(1BN7S zyG_QN=+b_dgPBi=!mqJXud|1lQS00V*NH0k#zOE;xbE4RXiwVzM(yT@_V%=$W*=?* z{9Y7d+puX!`XVHgwiDKqwX2VV>@=UPt>!vOI?gypp~oy5lF?4)9xaytW}U257}4s$EUZ`j>N zP1Ap!d}KS>R6&}~tJX2FzCIRcA?fY#{6~YuDJtEk&9%6d)4DF}WQWt()-!hNOuR`o zps&3(aqU_&%7~p9X0^;f7wr}_O@VJmD|7kcnpxb_w+Hv)VBy4OJ(ZU%>#-wY9jcm+ z9e@ry#Qdppbb~*coHA$1(uB1$h}*^Wj<@;Rjwx_7dU)B~ue>_kt+!n)MztupnzWM$ zyG;)1{7w+9P@dFzX4jG*LvD+DfcIqkab2G3m@rjcsqX52ub>rmQ|!oqH`P$L_CB_4Ns(KS)tM>G<)&ip==v&+*={^-?px^J_%=Utfc? zsg9GxXajGubzYm~4UwTHIe2iN*ll3{R-U9r+>RKPO8M0hJkF6Xrbp^4M1?w|!4VTt zdi*SAe=l;qaPyL{4?Bgf=etWG_Q*|5R;#|%w>#H^GtmtulpK>YEH*ci(jj#^zpnS4^;5vQ% zi)MLzip%KRBF(OTF?qeMQUpEkMYmWC&1FiKd3LaC_6X-J-ydgTL;n(zcEwYE$5%5w zABNI=chp6jH>zWd0zIHY15fky-N~t9#D@1BP!hV8mldqUsGY2J<84TCmaXqd8!kx+ zYE+Oi3)NLl?JbP1J$39j=h+QiufIR4WH~m@hxPqxt25)+)x&RYmcLXH)x%!&E@TgK z@nfDZltEAoRs`{kp;t#x_C11$=qZH!6U5;5<$4CqsfGARnH7V%{B*M4GK_sAG!PeW z<2Z7nNOSattK$xDs3J(aUC|^ahm2xjR|@b)Zu=uipAg+h4iWzV;hypY$;)#=VG_2P z612jjXT7nj!=>8ZIN$%aUD?<)aAxlW^|OfT)(T2mIFtGNEgIgY*eADRcbC2vK;OvX z&)3Dg_ukF9(=2t%EBr~O4hZtQSW+ra)_Z9jGW1wXl!wj#_>cFZRGLLvI&t#&>cB27 zJumjN_@+?(o#6D6_$E8U*zts~6BF?sUmCNP3N~If(6bGpV&Hep9CLElOfUr`;U}l3 z?fy3d?{-?y!_|P_CJ(NUaXWYJ#Log4mC(gb_3lpf@Ii`O+qr?aOe_6Rq_&c!cuh-z z`{}@IX=F&m6=#*PH@8FxM%8$Nm!Y0@|W{J$qvDa-v(|?s2fdqk+-CepER7&bUh^D;QMD6^d?;F0!k& zz^${E+SQIn95nzL3;XZS_w5AfZx2X9Re)=_Sglnb)E=0%Yxrx!gX>tGx1D4!`~~(!IiWZXR=c+~n|lkw?fPQTs<`ZOp0Oxgt%FVe-b`T-KC z#q;vDjTr;$WjD#Y=@w7)B`+SOK*bx5KrFmEVm56}dHL|iTyeY7*9N}}#K`$ZLhXt}VkFkB2ORrl|+Hq#Z~%UX}MSyi%w z09jTC>Fzj7GdcF_*DlyARX3KWFc(h5YBYik?F#$%^)xu+7@5w)FDC&5Z_k3hYxBM4 z_E=s-FS2nx(;Cq6B1GtdAWXENz(t7L?*l7&+dGB~HUiAo71k@nue+`b3<@6)<48$0 zinVL4>gERl{XHk2zi_o0f^D}u=qEmVg3HP~l0O?~|r%l^PTaulErrvVWAu$AQOK_#!< zyg)MmGVX#MUB_@jqrdSA?E9x_V*Y+MiqN3G+jI>7gQY}D89o_M&@oy2{CB)yIEA~H z#Pu`5S+_e9^s>!|5A&~-G6c_For26^wzgO?LvVtaL!a`0J_x4an^QSBz^9#@i|fUn-vE;X~l1Y3u(T zRXMn{IOsS@tPq38q#>{(W@c~!#Qg0zVuL^Tga1EYG*%6B2~d3MfDQl*-ff8i+g)sJ zR@nM?(p{Xy{LiGru5wtCxR`3cHYL&b_#y&!>&2@%&LX%90iU??3XF9PP|4~3-$tEj zb}!G%%bNj&J=^WcQb4J!oaUBT;kccN0Gg-i<<$hXEe-)UPV6m%4OIemlfu8x8Aa@i z?A}}f`=N!Q*Fg|kd|=`rhy-?=%dLqeu%S|8x8}qK55hu$>29B-fA)WT5pCERpbgmo z88;aB^fkab9L+g|8~~ik9Dqjpq~1S8>X7EiOGL##`XbT`Z>t&+IwSfMR&7b+kI>5l3 ztF=z%n5TS9De%*-d6&-{s30k^h9sMDzzV(O$h+h7wjEGEN9em1?hIvO-$xp!I#%n%_*U7`e)vtANcK0` zcOPRk7e=U4Z5CBN(l(RnUww0Gym6A_;Bfla(0;KU7|(Wpxf`cCqw5<2pKhnD`OiTK zv*L-04?}>*@0ZsEtZX`UHQ-QEKZ=%xWXb;NfXe*eq3DHyP9}-snV8Bp}?Wf0u3x9pcl1&Bm4JCR$I{hj}18S zSC#zEZ{|`*| zsQ!A)R~m;RyP~MY7Tf8-aybg#!&$%Ow)Pw|2FaQIJ3X}+lA_t(>N*Akt%9F7t@cRK zclpX$e`fySf|-P01A&2A*D1aAfba^L?N$J0*8r4M1sKdREVr!&pljK&_WxdG{bLxQ zUI_25Uy==Il8RRFh1Q0cv_g`BksF`xAls1~*9%RqXyb|uIsMbfWHuc$Ag5H|ukq59 z6kjy;N+F5GRF^LQb;|NlQJ1(d;!pL6=r+HciDekkibG#4l*+#gm;awGqWG{rnMzp7 zUB}MzE(W7;Y%%m8x8EgpRSqDmXxv2 zEkcWuH{(|c(ZG(=12N z+s1Do5-tc0{)`Zc%Z(3~VALqr-<``VDDc*J2>tEZ^mM$QZLYjCrMvuSWdiHAJ~858%}YBj3^|MG9Av zQ&V?Mr@wT*kI>EmlJGI;JOI6ntJ*l*sOZipvKYcW zlb~Qo|6`;c2o5lLS{NJ16>O&~pw(`8U+>$p;h@bI~=bGL3 zo-44#fXw4pnr0jvGcaF!_h(#bi6!q!kT8PZneZDuH(jBefbnQZK3b^VVFqTU8H|5JrgV##OA4! zz(aVsoFdDGBozTpl^oS6ZZgNaKTfh4%vp|Z5Y=&ERk*|?0Zf`lSsHGc&2-UbHNkS@ zuaW6@ZrN_RESQ*)Tc+2{Ckwl87Y{L#hqGvuSODfsEl9~uneUSq$s;=MBJKY*m|MJj zg0(PM0Be4!ht=|!HnTPTLT^T)!Fxh*7$Xmr)O#}(_CGT)tHiivj&?ExcVN3JmclM= zie}vW-_Cb+Hd@<269k9$6Org`Oz@g_K!0D4%rz^8<@v0HF=hU38c*jc>>^S;*ZRU< zXWSbty8Md1P>%H?oQAKEo1tg=EiH@zO<{W2|H)}sj`Jcf_`|SonBDInNIwYc2>LZO zh9t9j>$1k4-qy$)cIW-IN}#CuGi`0tL}D^xcX_E}_O6C-vC7l=uiPuUzzgH>tZQyytW9P_q9BYoI(6`Ll5y^v@J6v#S_x#KPUSw z!z#!w^w#v^Le8Ky4>MqKM9bTl z`w*|zZTur`iX2M{Lsx*!Q&h%SiL%BcsJJlxleYEo6UWhlm&u&;{UvRGJ07)B8Eews zH&KeytkRZyKEoVx2z8z)(c(^C+z>#p9&~7yoIiU`Nn_*V=Mq3C`9tk%7g?ojFWoW% z+CvLb>Jc>cm4AgG!%Ql9kw+Jq5Kc;4G|opz-NopnkRVJeU;3O&Ven_J@>+(mN;P@+ zW5?kr5`GPn3$3iHYMTDYDS1l58=IInCwoX_eNNJQU)7J_M6-=693oXy*3_{by>4ru zE}C>*hsJ3P|9-B04`CC&euSgpT6R?K*k;&G!ixnQ_40j`wpwv{NuE7UM*o1=F(9br^UmVLQaJn866VhiKLRwO_sxP z#ZOiFI-uI1-(SEDzdcrB+f^WWGQGR;5O4*Mf$QeBe@L<$` z`Cxw-HQF83n?1dD1S!{wfdAAfrgZ)pvV~^#|OH_nQ{dXiIpI*int+y4L@^> zBJ<_=EdCU1X5tq8&l6sH+{bxdQxPVCvl^I5sb-*dzyX76PUGWW*c{66ElZ;HQE;(w!exG27QK%X*bLQn7zXlD0j!4i!pW zCtH5L&GXe0Cvev}nn_6bX?X@(BqfZ_Bcp|6+$PHghP#J{`caf9gSeFa_pKm)IVpr$ zU()?xKOt3NgiPl#K0I|6v=C`V3j+Ri+9Qf-Ya(e;B`j_plBrkUmP< zR82A6H8JqfV5|~IA_ z6s2><4bP&`%9Zs6Sou;AEnXfM$(rFyn^7AZ_|gM!Xz4bg{`O4w6gNKxmn(sAIW_s8 z?&sWDoDt*w@8?0rKOxOk?+~>;UYHEc?PPzt!isd);SK-{9s7? z6JS+|r(72KX5^~*SkjDi7A)&8iMig7mMEKuX=PbD;%ltc#Y{$w&{v6&Nth&V-{B6A zvwfjcS2DsU!-xOUELAn1Wc5bNJZG76B`Vli4)Z`kCK-iJb~dZmHWS6A$P%wyc;~`MglfGttjxcp9fXT!klFjLu^e~$ku8=2 zoc(nsHuM1RKOgcmgI%jCmw!lhxm)eaZOXS}08}=C=mMxZ8v3N;e;D&j;86)r1N!>< z0LWD@X}^ia^5(N-i21h-aEyRZGi2AYFGC^V@Hv?zR{S<3kIadA9a_wRf!iq=Jl>f> zIiDwlmA-3l%gfJi>g#@|9Q!R#Az2&L%syp)!(s8khlhuh3`8kDyR}nX1=1P3)*lCG zFPJXmhiouuMS*&*zc2O?$j>j&Zr$WdnRs~|j0==6%I9U4VQ0t;K-OOgf=mFM$zUZgpI)G2Eb41D9h_%llpo#~Be088mBl!xHOK$5f zJrG_wRP!Sv$Oz=o0%GUtMQZ!&eO~d3Qe1#|x5?Gp7F#3qr=jyC>?y4ep2%VB04qW0 zPv{Q>Q?{(CzqxF@`%Lf-yeE7 z&f<9URLQe_SCihJUu%@o=+N%!24crLMtkEeV9ggMgqrw6}Xxfyy;|>8L&b z7%YJ&{tR@YbU^L4lb>ei^gJ?ksh^nE%fz(*Gp(+P768JFBSUWJN`X#pg}Fw~Yil5G z^n!t*`(|XH8Qz4Qweho*(~=1!mpQ71}7s)B(xA#h@pE4 zJ=Zfb#iKBZPWj6dUbDpi*j~{sdRy)%k#gr}ToK5=+c0!<=0}#-&Cc^S&cV~QTbiQ^}VAj#8vICY;xcGlXJI1@si8; z+$9-CpX5sL-Ba~#T0$;dQvOU_I4-y9***C>UX}hk&r15LdK6e%FRGQ^KwvBveK7d* z1Yn7{_S)HYA=pez482yzzqpZMdFn7x@g2#sAe z)?_q^trRA6cKP{Pd{HHQ@f@3J=z2VoFm%u}q;uRq5L}4_%fTkyfx_^DetWSCLkI5_ z&ZZ~-bUsyF8Fdp5X@FK!243BpJJ_@M>Hh=MqQe|fa9Z*l-sibbd2di4*F{320bfam zQ4SN8aNw2lnT9Gi(MyBf2%j?MTsQTUNhy7!JgN#qP(4n4)$_RX;`?@F=z3q>n03~a zyyd+awH0!4vj#SW{{kvf Bz2N`= literal 0 HcmV?d00001 diff --git a/pages/students/2016/patrik_pavlisin/dp22/Multi-Head Attention.png b/pages/students/2016/patrik_pavlisin/dp22/Multi-Head Attention.png new file mode 100644 index 0000000000000000000000000000000000000000..23918fbfcf238951debeec818c97e3e163cc89f4 GIT binary patch literal 32856 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 AK>z>% literal 0 HcmV?d00001 diff --git a/pages/students/2016/patrik_pavlisin/dp22/Scaled Dot-Production Attention.png b/pages/students/2016/patrik_pavlisin/dp22/Scaled Dot-Production Attention.png new file mode 100644 index 0000000000000000000000000000000000000000..048921b10300f981bde3f6ac5747cc3f7a0cf450 GIT binary patch literal 18334 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 P00000NkvXXu0mjfmp;tB literal 0 HcmV?d00001 diff --git a/pages/students/2016/patrik_pavlisin/dp22/Štruktúra modelu sequence to sequence.png b/pages/students/2016/patrik_pavlisin/dp22/Štruktúra modelu sequence to sequence.png new file mode 100644 index 0000000000000000000000000000000000000000..e42384a36bb3baa028bd255dd494006a3b8ef682 GIT binary patch literal 16721 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 A4*&oF literal 0 HcmV?d00001 From db4ec908e8340af164e80015df160f3b1227d10c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Pavli=C5=A1in?= Date: Thu, 21 Oct 2021 09:44:09 +0000 Subject: [PATCH 02/43] Upload files to 'pages/students/2016/patrik_pavlisin/dp22' --- .../2016/patrik_pavlisin/dp22/rovnica 1.png | Bin 0 -> 12177 bytes .../2016/patrik_pavlisin/dp22/rovnica 2.png | Bin 0 -> 6002 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 pages/students/2016/patrik_pavlisin/dp22/rovnica 1.png create mode 100644 pages/students/2016/patrik_pavlisin/dp22/rovnica 2.png diff --git a/pages/students/2016/patrik_pavlisin/dp22/rovnica 1.png b/pages/students/2016/patrik_pavlisin/dp22/rovnica 1.png new file mode 100644 index 0000000000000000000000000000000000000000..2678b2ab2cdbb65e207e99073800aae15696dfdf GIT binary patch literal 12177 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 literal 0 HcmV?d00001 From d71c92f784e3e2eeee29de3e15067bc3509c4b4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Pavli=C5=A1in?= Date: Thu, 21 Oct 2021 09:58:49 +0000 Subject: [PATCH 03/43] Upload files to 'pages/students/2016/patrik_pavlisin/dp22' --- .../2016/patrik_pavlisin/dp22/Screenshot_1.png | Bin 0 -> 5698 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 pages/students/2016/patrik_pavlisin/dp22/Screenshot_1.png diff --git a/pages/students/2016/patrik_pavlisin/dp22/Screenshot_1.png b/pages/students/2016/patrik_pavlisin/dp22/Screenshot_1.png new file mode 100644 index 0000000000000000000000000000000000000000..e7d9fc874c89060a8808a435cf4269ea285e3738 GIT binary patch literal 5698 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 a3&J?M)82Sdu>6?!<+yjp^fulA8u>p&IhbMq literal 0 HcmV?d00001 From 218e472e170fe6a72ef86256d8054ff436a3060b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Pavli=C5=A1in?= Date: Thu, 21 Oct 2021 10:02:36 +0000 Subject: [PATCH 04/43] Update 'pages/students/2016/patrik_pavlisin/dp22/README.md' --- .../2016/patrik_pavlisin/dp22/README.md | 95 ++++++++++++++++++- 1 file changed, 94 insertions(+), 1 deletion(-) diff --git a/pages/students/2016/patrik_pavlisin/dp22/README.md b/pages/students/2016/patrik_pavlisin/dp22/README.md index b0929dd5..5b99a63b 100644 --- a/pages/students/2016/patrik_pavlisin/dp22/README.md +++ b/pages/students/2016/patrik_pavlisin/dp22/README.md @@ -1 +1,94 @@ -THE TRANSFORMER +**Attention, The Transformer** + +**Úvod** + +Rekurentné neurónové siete, najmä long short-term pamäť (LSMT, špeciálny druh RNN, vytvorený na riešenie problémov s miznúcim gradientom) a uzavreté rekurentné neurónové siete, boli pevne zavedené ako najmodernejšie prístupy k problémom sekvenčného modelovania a prenosov, ako je jazykové modelovanie a strojový preklad. Početné snahy odvtedy pokračujú v posúvaní hraníc rekurentných jazykových modelov a architektúr encoder-decoder. Sieťové pamäte typu end-to-end sú založené na RNN (Recurrent Neural Network) mechanizme namiesto opakovania zarovnaného podľa sekvencie a ukázalo sa, že fungujú dobre pri úlohách zodpovedajúcich otázky v jednoduchom jazyku a pri modelovaní jazykov. End-to-end učenie je typ Deep Learningu, v ktorom sú všetky parametre trénované spoločne, a nie krok za krokom. + +Transformer je modelovú architektúru, ktorá sa vyhýba opakovaniu a namiesto toho sa úplne spolieha na mechanizmus pozornosti na kreslenie globálnych závislostí medzi vstupom a výstupom. Je to prvý transdukčný model, ktorý sa spolieha úplne na vlastnú pozornosť pri výpočte reprezentácii vstupu a výstupu bez použitia RNN (Recurrent Neural Network) alebo CNN (Convolution Neural Network). Používa sa predovšetkým v oblasti NLP (Natural Language Processing) a CV (Computer Vision). Mechanizmy pozornosti sa stali súčasťou presvedčivého modelovania sekvencií a prenosových modelov v rôznych úlohách, ktoré umožňujú modelovanie závislostí bez ohľadu na ich vzdialenosť vo vstupných alebo výstupných sekvenciách. Takmer vo všetkých prípadoch sa však takéto mechanizmy pozornosti používajú v spojení s rekurentnou sieťou. + +**Modelová architektúra** + +Väčšina konkurenčných prenosových modelov neurónovej sekvencie má štruktúru encoder-decoder. V tomto prípade encoder mapuje vstupnú sekvenciu symbolových reprezentácií (x1, ..., xn) na sekvenciu spojitých reprezentácií z = (z1, ..., zn). Vzhľadom na z, decoder potom generuje výstupnú sekvenciu (y1, ..., ym) symbolov jeden po druhom. V každom kroku je model automaticky regresívny a pri generovaní ďalšieho spotrebuje predtým vygenerované symboly ako ďalší vstup. + +**Pozornosť** + +Funkciu pozornosti je možné opísať ako mapovanie dotazu a sady párov kľúčov a hodnôt na výstup, kde dotaz, kľúče, hodnoty a výstup sú všetko vektory Výstup sa vypočíta ako vážený súčet hodnôt, pričom hmotnosť priradená každej hodnote sa vypočíta pomocou funkcie kompatibility dotazu so zodpovedajúcim kľúčom. + + + +|![](https://git.kemt.fei.tuke.sk/KEMT/zpwiki/raw/branch/master/pages/students/2016/patrik_pavlisin/dp22/Modelov%c3%a1%20architekt%c3%bara%20Transformer.png)| +|:--:| +|Obr 1. Modelová architektúra Transformer| + +**Encoder-Decoder architektúra** + +Rovnako ako predchádzajúce modely, Transformer používa architektúru encoder-decoder. Encoder-Decoder architektúra je spôsob použitia rekurentných neurónových sietí na problémy s predikciou sekvencie k sekvencii. Pôvodne bol vyvinutý pre problémy so strojovým prekladom, aj keď sa osvedčil pri súvisiacich problémoch s predikciou sekvencie k sekvencii, ako je zhrnutie textu a zodpovedanie otázok. Skladá sa z 3 častí (encoder, intermediate vector a decoder). + +Encoder – prijme jeden prvok vstupnej sekvencie v každom časovom kroku, spracuje ho, zhromaždí informácie o danom prvku a šíri ho ďalej. + +Intermediate vector – konečný vnútorný stav vytvorený z časti encoder modelu. Obsahuje informácie o celej vstupnej sekvencii, ktoré pomôžu decoderu robiť presné predpovede. + +Decoder – predpovedá výstup v každom časovom kroku. + +Encoder pozostáva z kódovacích vrstiev, ktoré spracovávajú vstup iteračne jednu vrstvu za druhou, zatiaľ čo decoder pozostáva z dekódovacích vrstiev, ktoré robia to isté s výstupom encodera. Funkciou každej vrstvy encodera je generovať kódovanie, ktoré obsahuje informácie o tom, ktoré časti vstupov sú navzájom relevantné. Odošle svoje kódovanie do ďalšej vrstvy encodera ako vstupy. Každá decoderová vrstva robí opak, pričom použije všetky kódovania a na začlenenie výstupnej sekvencie použije svoje začlenené kontextové informácie. Aby sa to dosiahlo, každá vrstva encodera a decodera využíva mechanizmus pozornosti. + +Pri každom vstupe pozornosť zvažuje relevanciu každého ďalšieho vstupu a čerpá z neho pri vytváraní výstupu. Každá decoderová vrstva má mechanizmus dodatočnej pozornosti, ktorý čerpá informácie z výstupov predchádzajúcich decoderov, než vrstva decodera čerpá informácie z kódovaní. + +Obe vrstvy encodera a decodera majú feed-forward neurónovú sieť (umelá neurónová sieť, v ktorej spojenia medzi uzlami netvoria cyklus) na dodatočné spracovanie výstupov a obsahujú zvyškové spojenia a kroky na normalizácie vrstiev. + +|![](https://git.kemt.fei.tuke.sk/KEMT/zpwiki/raw/branch/master/pages/students/2016/patrik_pavlisin/dp22/%c5%a0trukt%c3%bara%20modelu%20sequence%20to%20sequence.png)| +|:--:| +|Obr 2. Štruktúra modelu sequence to sequence (encoder-decoder)| + +**Transformer Encoder** + +Encoder sa skladá zo zásobníka _N = 6_ rovnakých vrstiev. Každá vrstva má dve podvrstvy. Prvým je multi-head self-attention mechanizmus a druhým je jednoduchá polohovo plne prepojená sieť spätnej väzby. Multi-head Attention je modul pre mechanizmy pozornosti, ktorý prechádza mechanizmom pozornosti niekoľkokrát paralelne. Self-attention, tiež známy ako Intra-attention, je mechanizmus pozornosti, ktorý spája rôzne polohy jednej sekvencie s cieľom vypočítať reprezentáciu tej istej sekvencie. Okolo každej z dvoch čiastkových vrstiev sa používa zvyškové spojenie, po ktorom nasleduje normalizácia vrstvy. To znamená, že výstupom každej podvrstvy je _LayerNorm (x + Sublayer (x))_, kde _Sublayer (x)_ je funkcia implementovaná samotnou podvrstvou. Aby sa uľahčili tieto zvyškové spojenia, všetky podvrstvy v modeli, ako aj vkladacie vrstvy, produkujú výstupy dimenzie _dmodel_ = 512. + +**Transformer Decoder** + +Decoder je tiež zložený zo zásobníka _N = 6_ rovnakých vrstiev. Okrem dvoch podvrstiev v každej vrstve encodera, decoder vkladá tretiu podvrstvu, ktorá vykonáva multi-head attention nad výstupom encoder zásobníka. Podobne ako encoder, používa zvyškové spojenia okolo každej z podvrstiev, po ktorých nasleduje normalizácia vrstvy. Toto maskovanie v kombinácii so skutočnosťou, že vloženia výstupov sú posunuté o jednu pozíciu, zaisťuje, že predpovede pre polohu _i_ môžu závisieť iba od známych výstupov v polohách menších ako _i_. + +**Scaled Dot-Product Attention** + +Našu osobitnú pozornosť nazývame „Pozornosť zameraná na produkt“ (obrázok 2). Vstup pozostáva z dotazov a kľúčov dimenzie _dk_ a hodnôt dimenzie _dv_. Bodové produkty dotazu vypočítame všetkými klávesmi, každý vydelíme √_dk_ a použijeme funkciu _softmax_, aby sme získali váhy hodnôt. + +|![](https://git.kemt.fei.tuke.sk/KEMT/zpwiki/raw/branch/master/pages/students/2016/patrik_pavlisin/dp22/Scaled%20Dot-Production%20Attention.png)| +|:--:| +|Obr 3. Scaled Dot-Production Attention| + +V praxi počítame funkciu pozornosti pre množinu dotazov súčasne zabalených do matice _Q_. Kľúče a hodnoty sú tiež zabalené spolu do matíc _K_ a _V_. Maticu výstupov vypočítame ako: + +|![](https://git.kemt.fei.tuke.sk/KEMT/zpwiki/raw/branch/master/pages/students/2016/patrik_pavlisin/dp22/rovnica%201.png)| +|:--:| + +Dve najčastejšie používané funkcie pozornosti sú additive attention a dot-product attention. Dot-product attention je identická s naším algoritmom, s výnimkou faktora mierky 1/$\sqrt{dk}$. Additive attention počíta funkciu kompatibility pomocou siete spätnej väzby s jednou skrytou vrstvou. Aj keď sú tieto dva teoreticky náročné, dot-product attention je v praxi oveľa rýchlejšia a priestorovo efektívnejšia, pretože je možné ich implementovať pomocou vysoko optimalizovaného maticového multiplikačného kódu. + +Zatiaľ čo pri malých hodnotách dk tieto dva mechanizmy fungujú podobne, additive attention prevyšuje pozornosť produktu bez toho, aby sa škálovala pri väčších hodnotách _dk_. Je pravdepodobné, že pri veľkých hodnotách _dk_ sa bodové produkty zväčšujú a tlačia funkciu _softmax_ do oblastí, kde má extrémne malé gradienty (v strojovom učení je gradient derivátom funkcie, ktorá má viac ako jednu vstupnú premennú). Aby sa tomuto efektu zabránilo, škálujeme bodové produkty o 1/$\sqrt{dk}$ + +Multi-Head Attention + +Namiesto toho, aby sme vykonávali funkciu jedinej pozornosti s _dmodel_-dimenzionálnymi kľúčmi, hodnotami a dotazmi, považuje sa za výhodné lineárne premietať dotazy, kľúče a hodnoty _h_-krát s rôznymi, naučenými lineárnymi projekciami do dimenzií _dk_, _dk_ a _dv_. Na každej z týchto predpokladaných verzií dotazov, kľúčov a hodnôt potom paralelne vykonávame funkciu pozornosti, čím sme získali _dv_-dimenzionálne výstupné hodnoty. Tieto sú zreťazené a znova premietnuté, výsledkom sú konečné hodnoty (obrázok 4). + +|![](https://git.kemt.fei.tuke.sk/KEMT/zpwiki/raw/branch/master/pages/students/2016/patrik_pavlisin/dp22/Multi-Head%20Attention.png)| +|:--:| +|Obr 4. Multi-Head Attention| + +Multi-head attention umožňuje modelu spoločne sa zaoberať informáciami z rôznych reprezentačných podpriestorov na rôznych pozíciách. Pri použití single-head attention to priemerovanie bráni. + +|![](https://git.kemt.fei.tuke.sk/KEMT/zpwiki/raw/branch/master/pages/students/2016/patrik_pavlisin/dp22/rovnica%202.png)| +|:--:| + +|![](https://git.kemt.fei.tuke.sk/KEMT/zpwiki/raw/branch/master/pages/students/2016/patrik_pavlisin/dp22/Screenshot_1.png)| +|:--:| +|Obr 5. matice parametrov| + +V tomto prípade si za _h_ dosadíme 8 paralelných vrstiev pozornosti, alebo „heads“. Pre každý z nich používame _dk_ = _dv_ = _dmodel/h_ = _64_. Vzhľadom na zmenšený rozmer každej hlavy sú celkové výpočtové náklady podobné nákladom na pozornosť single-head s plnou dimenzionalitou (koľko atribútov má množina údajov). + + +The Transformer využíva Multi-head attention tromi rôznymi spôsobmi: + +Vo vrstvách „encoder-decoder attention“ pochádzajú dotazy z predchádzajúcej vrstvy decodera a pamäťové kľúče a hodnoty sú z výstupu encodera. To umožňuje každej pozícii v decoderi zúčastniť sa na všetkých pozíciách vo vstupnej sekvencii. + +Encoder obsahuje vrstvy self-attention. Vo vrstve self-attention pochádzajú všetky kľúče, hodnoty a dotazy z rovnakého miesta, teda predchádzajúcej vrstvy v encoderu. Každá pozícia v encoderi sa môže venovať všetkým polohám v predchádzajúcej vrstve encodera. + +Vrstvy self-attention v decoderi umožňujú každej pozícii v decoderi zúčastniť sa na všetkých polohách v decoderi až do danej polohy. Musí sa zabrániť toku informácii v decoderi, aby sa zachovala autoregresívna vlastnosť (model časových radov, ktorý používa pozorovania z predchádzajúcich časových krokov ako vstup do regresnej rovnice na predpovedanie hodnoty v nasledujúcom časovom kroku). To implementujeme do scaled dot-product attention pomocou maskovania (nastavením na -∞) všetkých hodnôt na vstupe softmax, ktoré zodpovedajú nezákonným spojeniam. \ No newline at end of file From 13faa91944906dc84bf3401bf2d7aaf54f9c4da9 Mon Sep 17 00:00:00 2001 From: dano Date: Thu, 21 Oct 2021 11:10:46 +0000 Subject: [PATCH 05/43] Update 'pages/topics/bert/README.md' --- pages/topics/bert/README.md | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/pages/topics/bert/README.md b/pages/topics/bert/README.md index d12a2472..ec62a362 100644 --- a/pages/topics/bert/README.md +++ b/pages/topics/bert/README.md @@ -17,17 +17,9 @@ author: Daniel Hládek - [SlovakBERT](https://github.com/gerulata/slovakbert) od Kinit, a [článok](https://arxiv.org/abs/2109.15254) - [SK Quad](/topics/question) - Slovak Question Answering Dataset - bakalárska práca [Ondrej Megela](/students/2018/ondrej_megela) +- https://git.kemt.fei.tuke.sk/dano/bert-train -## Hardvérové požiadavky -[https://medium.com/nvidia-ai/how-to-scale-the-bert-training-with-nvidia-gpus-c1575e8eaf71](zz): - - When the mini-batch size n is multiplied by k, we should multiply the starting learning rate η by the square root of k as some theories may suggest. However, with experiments from multiple researchers, linear scaling shows better results, i.e. multiply the starting learning rate by k instead. - -| BERT Large | 330M | -| BERT Base | 110M | - -Väčšia veľkosť vstupného vektora => menšia veľkosť dávky => menší parameter učenia => pomalšie učenie ## Hotové úlohy @@ -76,3 +68,14 @@ Väčšia veľkosť vstupného vektora => menšia veľkosť dávky => menší pa - Natrénovať BART model. - Natrénovať model založený na znakoch. - Adaptovať SlovakBERT na SQUAD. To znamená dorobiť úlohu SQUAD do fairseq. + +## Hardvérové požiadavky + +[https://medium.com/nvidia-ai/how-to-scale-the-bert-training-with-nvidia-gpus-c1575e8eaf71](zz): + + When the mini-batch size n is multiplied by k, we should multiply the starting learning rate η by the square root of k as some theories may suggest. However, with experiments from multiple researchers, linear scaling shows better results, i.e. multiply the starting learning rate by k instead. + +| BERT Large | 330M | +| BERT Base | 110M | + +Väčšia veľkosť vstupného vektora => menšia veľkosť dávky => menší parameter učenia => pomalšie učenie From 98b34a632cd42a85ff1eecb7f5a4c0b31ae328cc Mon Sep 17 00:00:00 2001 From: dano Date: Thu, 21 Oct 2021 11:14:54 +0000 Subject: [PATCH 06/43] Update 'pages/topics/bert/README.md' --- pages/topics/bert/README.md | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/pages/topics/bert/README.md b/pages/topics/bert/README.md index ec62a362..6cd33df5 100644 --- a/pages/topics/bert/README.md +++ b/pages/topics/bert/README.md @@ -6,11 +6,7 @@ author: Daniel Hládek ! Cieľ: ! -! - Natrénovať a slovenský jazykový model typu BERT z korpusu webových textov -! - Vyhodnotiť jazykový model dotrénovaním na úlohách: -! - SK-QUAD 2.0 -! - POS z Slovak Treebank -! - kategórie zo Slovak Categorized news Corpus +! - Natrénovať a vyhodnotiť slovenský jazykový model typu BERT z korpusu webových textov ## Súvisiace projekty @@ -20,12 +16,10 @@ author: Daniel Hládek - https://git.kemt.fei.tuke.sk/dano/bert-train - - ## Hotové úlohy - Dotrénovaný model multilingual BERT base na SK QUAD, funguje demo skript. Nefunguje exaktné vyhodnotenie. -- Natrénovaný model Electra-small 128, slovník SNK Morpho 1M slov., 30 tisíc BPE tokenov. Squad Vyhodnotenie 0.17 +- Natrénovaný model Electra-small 128, 256 batch size, learning 2e-4, skweb2017dedup, Slovník 32K wordpiece, ## Rozpracované úlohy From c37e1187b7ef15b153da7c676e7fc092d2ed4e89 Mon Sep 17 00:00:00 2001 From: dano Date: Thu, 21 Oct 2021 11:16:18 +0000 Subject: [PATCH 07/43] Update 'pages/topics/bert/README.md' --- pages/topics/bert/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/topics/bert/README.md b/pages/topics/bert/README.md index 6cd33df5..4456180c 100644 --- a/pages/topics/bert/README.md +++ b/pages/topics/bert/README.md @@ -19,7 +19,7 @@ author: Daniel Hládek ## Hotové úlohy - Dotrénovaný model multilingual BERT base na SK QUAD, funguje demo skript. Nefunguje exaktné vyhodnotenie. -- Natrénovaný model Electra-small 128, 256 batch size, learning 2e-4, skweb2017dedup, Slovník 32K wordpiece, +- Natrénovaný model Electra-small 128, 256 batch size, learning 2e-4, skweb2017dedup, Slovník 32K wordpiece, 0.83 POS, 0.51 Squad ## Rozpracované úlohy From a34220248b2b772d4eb7d2ad90ec6f27fbaeb13d Mon Sep 17 00:00:00 2001 From: dano Date: Thu, 21 Oct 2021 11:20:15 +0000 Subject: [PATCH 08/43] Update 'pages/topics/bert/README.md' --- pages/topics/bert/README.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pages/topics/bert/README.md b/pages/topics/bert/README.md index 4456180c..29e73c9e 100644 --- a/pages/topics/bert/README.md +++ b/pages/topics/bert/README.md @@ -18,19 +18,20 @@ author: Daniel Hládek ## Hotové úlohy +- Vyhodnotenie na SK SQUAD, UDP POS tagging +- Trénovacie skripty - Dotrénovaný model multilingual BERT base na SK QUAD, funguje demo skript. Nefunguje exaktné vyhodnotenie. - Natrénovaný model Electra-small 128, 256 batch size, learning 2e-4, skweb2017dedup, Slovník 32K wordpiece, 0.83 POS, 0.51 Squad -## Rozpracované úlohy +## Budúce úlohy +- Konvertovať do Transformers pomocou ransformers/src/transformers/models/electra/convert_electra_original_tf_checkpoint_to_pytorch.py +- Pridať OSCAR a Wikipedia do trénovania. +- Trénovanie na TPU Google Colab - Natrénovať Electra Base. -- Vylepšiť parametre trénovania. - Dokončiť SK SQUAD databázu pre exaktné vyhodnotenie. -- Dotrénovať model na SK QUAD a exaktne vyhodnotiť pomocou oficiálneho squad skriptu. -- Pripraviť aj iné množiny na vyhodnotnie: - - kategorizácia textu na SCNC1. - - POS na Slovak Treebank. - - pripraviť iné množiny. +- Pripraviť aj iné množiny na vyhodnotnie: kategorizácia textu na SCNC1. + ## Poznámky @@ -54,7 +55,6 @@ author: Daniel Hládek ## Budúci výskum - Zistiť aký je optimálny počet tokenov? V Slovak BERT použili 50k. -- Zistiť aký je optimálný slovník? - Pripraviť webové demo na slovenské QA. - Integrovať QA s dialógovým systémom. - Integrovať QA s vyhľadávačom. From 7b3cea4c1ba21f3171668982d9d4ed96f905cc56 Mon Sep 17 00:00:00 2001 From: dano Date: Fri, 22 Oct 2021 07:11:49 +0000 Subject: [PATCH 09/43] Update 'pages/students/2019/michal_stromko/README.md' --- pages/students/2019/michal_stromko/README.md | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/pages/students/2019/michal_stromko/README.md b/pages/students/2019/michal_stromko/README.md index efb1a0b2..e0aa3a2b 100644 --- a/pages/students/2019/michal_stromko/README.md +++ b/pages/students/2019/michal_stromko/README.md @@ -12,9 +12,9 @@ rok začiatku štúdia: 2019 # Bakalárska práca 2022 -- [Repozitár](https://git.kemt.fei.tuke.sk/ms111of/bp2022) ja +- [Repozitár](https://git.kemt.fei.tuke.sk/ms111of/bp2022) -Názov: Indexovanie slovenského textu +Názov: Indexovanie slovenského textu pomocou Elasticsearch 1. Vypracujte prehľad metód pre získavanie informácií. 2. Vytvorte vyhľadávací index dokumentov zo slovenského internetu. @@ -29,6 +29,20 @@ Ciele na semester: - vedieť zaindexovať väčšie množstvo slovenských textov. - vytvoriť funkčné webové demo na vyhľadávanie v týchto textoch. + +Stretnutie 22.10.2021: + +- Pokračovanie na otvrených úlohách - problémy s Essential Data Docker setup + +Úlohy: + +- Nainštalovať ES a Kibana, upravte compose na https://alysivji.github.io/elasticsearch-kibana-with-docker-compose.html +- Pozrieť si knihu https://nlp.stanford.edu/IR-book/ a urobiť z nej poznámky do teoretickej časti BP. Odvolávajte sa na túto knihu v texte. +- Skúste cez Kibanu zaindexovať jeden text a vyhľadať niečo. +- Preštudujte si ES Analyzer. + + + Stretnutie 15.10.2021 Stav: From 6cd8597aea7d9fc52b79c7f863b2b7c5819d0c86 Mon Sep 17 00:00:00 2001 From: dano Date: Fri, 22 Oct 2021 07:21:07 +0000 Subject: [PATCH 10/43] Update 'pages/students/2019/samuel_horani/README.md' --- pages/students/2019/samuel_horani/README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pages/students/2019/samuel_horani/README.md b/pages/students/2019/samuel_horani/README.md index ed8d333f..a003ec12 100644 --- a/pages/students/2019/samuel_horani/README.md +++ b/pages/students/2019/samuel_horani/README.md @@ -38,6 +38,12 @@ Ciele: - - - +Stretnutie 22.10.2021 + +- Urobené webové rozhranie pre analýzu konverzácií. + +Pokračovať v otvorených úlohách. + Stretnutie 12.10. Stav: @@ -57,7 +63,7 @@ Stav: Zásobník úloh: - [ ] Vytvorte dockerfile. -- [ ] Analyzovať logy z konverzácií. Pripraviť export konverzácií v JSON pre spracovanie a HTML formáte pre zobrazenie. +- [x] Analyzovať logy z konverzácií. Pripraviť export konverzácií v JSON pre spracovanie a HTML formáte pre zobrazenie. - - - From 2d5889197823831d8aea126dff5c30707f3ec618 Mon Sep 17 00:00:00 2001 From: dano Date: Fri, 22 Oct 2021 08:24:49 +0000 Subject: [PATCH 11/43] Update 'pages/students/2019/filip_tomas/README.md' --- pages/students/2019/filip_tomas/README.md | 26 +++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/pages/students/2019/filip_tomas/README.md b/pages/students/2019/filip_tomas/README.md index a58078e7..57ff6f2a 100644 --- a/pages/students/2019/filip_tomas/README.md +++ b/pages/students/2019/filip_tomas/README.md @@ -34,17 +34,31 @@ Ciele: 3. Vytvoriť kompletný reťazec CI-CD ku aplikácii Traktor. Automatický build a test, zobrazenie reportu. 4. Vypracovanie písomného prehľadu. +Stretnutie 22.10. + +- Napísaný prvý draf s poznámkami o CI CD +- pripravené prvé test-case + +Úlohy: + +- Pokračujte v otvorených úlohách +- Vytvorte GIT repozitár s názvom bp2022 a nahrajte do neho testovacie scenáre. + + +Zásobník úloh: + +- [ ] Skúste vytvoriť nasadenie vhodného CI CD na tuke cloude. +- [ ] Upravte scenáre tak, aby boli ľahko automaticky spustiteľné. vytvorte skript pre inštaláciu potrebných komponentov a pre spustenie testov. + + Stretnutie 23.9. - Dohodli sme sa na zadaní, cieľoch a názve. Úlohy: -- Urobte písomný prehľad systémov CI-CD. Uveďte zdroje z ktorých ste čerpali. -- Nájdite vhodnú odbornú literatúru, uveďte ju do prehľadu. V školskej knižnici môže byť dobrá kniha. -- Navrhnite základné testovacie scenáre pre aplikáciu https://traktor.kemt.fei.tuke.sk. +- [ ] Urobte písomný prehľad systémov CI-CD. Uveďte zdroje z ktorých ste čerpali. +- [ ] Nájdite vhodnú odbornú literatúru, uveďte ju do prehľadu. V školskej knižnici môže byť dobrá kniha. +- [x] Navrhnite základné testovacie scenáre pre aplikáciu https://traktor.kemt.fei.tuke.sk. -Zásobník úloh: - -- Skúste vytvoriť nasadenie vhodného CI CD na tuke cloude. From c6a8d257a74254c85ed51ac5c36e191002dcde35 Mon Sep 17 00:00:00 2001 From: dano Date: Fri, 22 Oct 2021 11:41:09 +0000 Subject: [PATCH 12/43] Update 'pages/students/2016/tomas_kucharik/README.md' --- pages/students/2016/tomas_kucharik/README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pages/students/2016/tomas_kucharik/README.md b/pages/students/2016/tomas_kucharik/README.md index 1a203617..d90cc06d 100644 --- a/pages/students/2016/tomas_kucharik/README.md +++ b/pages/students/2016/tomas_kucharik/README.md @@ -32,6 +32,13 @@ Zadanie: Cieľom je vytvoriť strojovo preloženú verziu SQUAD a overiť ju na QA systém. +Sttetnutie 22.10.2021 + +Stav: + +- Začatý prieskum jazykových mutácií strojovo preloženého SQUAD - španielsky, taliansky, francúzsky a švédsky. +- Začatý priestup prekladových API - napr. na google sa platí 20 $ za milion znakov. + Stretnutie 15.10. Stav: From 6fe40f1fd5a88bcaf814572f3e9ee9e9b2b6b1dc Mon Sep 17 00:00:00 2001 From: dano Date: Fri, 22 Oct 2021 11:45:15 +0000 Subject: [PATCH 13/43] Update 'pages/students/2016/tomas_kucharik/README.md' --- pages/students/2016/tomas_kucharik/README.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/pages/students/2016/tomas_kucharik/README.md b/pages/students/2016/tomas_kucharik/README.md index d90cc06d..123a1160 100644 --- a/pages/students/2016/tomas_kucharik/README.md +++ b/pages/students/2016/tomas_kucharik/README.md @@ -38,6 +38,15 @@ Stav: - Začatý prieskum jazykových mutácií strojovo preloženého SQUAD - španielsky, taliansky, francúzsky a švédsky. - Začatý priestup prekladových API - napr. na google sa platí 20 $ za milion znakov. +- Zaujala ma metód prekladu pomocou špeciálnych znakov. +- Španielsky SQUAD má svoju štatistickú metódu zarovnania. + +Úlohy: + +- Pokračujte v písomnom prieskume jazykových mutácií SQUAD. +- Začnite pracovať na skripte na strojový preklad SQUAD. Jedna z možností je prepísať SQUAD do čisto textového formátu obohateného o špeciálne značky. + + Stretnutie 15.10. @@ -53,7 +62,7 @@ Stav: Zásobník úloh: -- Urobiť vyhodnotenie SQUAD na knižnici Hugging Face Transformers. +- [ ] Urobiť vyhodnotenie SQUAD na knižnici Hugging Face Transformers. ## Diplomová práca 2021 From a94fdcd91c17d6016776c4de5e2150b348ae423a Mon Sep 17 00:00:00 2001 From: dano Date: Fri, 22 Oct 2021 11:53:29 +0000 Subject: [PATCH 14/43] Update 'pages/students/2016/tomas_kucharik/README.md' --- pages/students/2016/tomas_kucharik/README.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/pages/students/2016/tomas_kucharik/README.md b/pages/students/2016/tomas_kucharik/README.md index 123a1160..3c7835a6 100644 --- a/pages/students/2016/tomas_kucharik/README.md +++ b/pages/students/2016/tomas_kucharik/README.md @@ -22,7 +22,7 @@ Názov: Tvorba korpusu otázok a odpovedí v slovenskom jazyku pomocou strojové Zadanie: -1. Vypracujte prehľad jazykových mutácii overovacej množiny SQUAD a opíšte spôsob ich tvorby. +1. Vypracujte prehľad jazykových mutácii overovacej množiny SQUAD a opíšte spôsob ich tvorby. 2. Vypracujte prehľad aktuálnych systémov pre generovanie odpovede na otázku v prirodzenom jazyku. 3. Navrhnite postup pre vytvorenie korpusu otázok a odpovedí v slovenskom jazyku pomocou strojového prekladu z anglického jazyka, 4. Porovnajte strojovo preloženú verziu SQUAD s manuálne vytvorenou verziou. @@ -40,11 +40,19 @@ Stav: - Začatý priestup prekladových API - napr. na google sa platí 20 $ za milion znakov. - Zaujala ma metód prekladu pomocou špeciálnych znakov. - Španielsky SQUAD má svoju štatistickú metódu zarovnania. +- Možnosti pre preklad: + - Google, Microsoft v rámci Free kreditu (asi ho je málo). + - Zakúpiť kredit cez projekt. + - Využiť "nekomerčný" projekt pre preklad, napr. [etranslation](https://ec.europa.eu/cefdigital/wiki/display/CEFDIGITAL/eTranslation). + + + Úlohy: - Pokračujte v písomnom prieskume jazykových mutácií SQUAD. -- Začnite pracovať na skripte na strojový preklad SQUAD. Jedna z možností je prepísať SQUAD do čisto textového formátu obohateného o špeciálne značky. +- Začnite pracovať na skripte na strojový preklad SQUAD. Jedna z možností je prepísať SQUAD do čisto textového formátu obohateného o špeciálne značky. Pripravte skript, ktorý prevedie SQUAD do čisto textového formátu obohateného o špeciálne značky. Vyskúšajte formát v dostupných prekladačoch. V prípade, že značky sú zachované, pripravte aj skript na spätnú konverziu preloženého výsledku do formátu SQUAD. + From d689a11f073b7475f385d263fe59fbb4570cfc7e Mon Sep 17 00:00:00 2001 From: dano Date: Fri, 22 Oct 2021 11:56:48 +0000 Subject: [PATCH 15/43] Update 'pages/students/2016/tomas_kucharik/README.md' --- pages/students/2016/tomas_kucharik/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pages/students/2016/tomas_kucharik/README.md b/pages/students/2016/tomas_kucharik/README.md index 3c7835a6..101c5145 100644 --- a/pages/students/2016/tomas_kucharik/README.md +++ b/pages/students/2016/tomas_kucharik/README.md @@ -18,6 +18,8 @@ Súvisiace práce: ## Diplomová práca 2022 +[Repozitár s výsledkami](https://git.kemt.fei.tuke.sk/tk634rv/dp2022) + Názov: Tvorba korpusu otázok a odpovedí v slovenskom jazyku pomocou strojového prekladu Zadanie: From cc8ff64199e0e44bffe8f0ea590fce35e05b7a34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Pavli=C5=A1in?= Date: Sat, 23 Oct 2021 13:10:39 +0000 Subject: [PATCH 16/43] Update 'pages/students/2016/patrik_pavlisin/dp22/README.md' --- pages/students/2016/patrik_pavlisin/dp22/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/students/2016/patrik_pavlisin/dp22/README.md b/pages/students/2016/patrik_pavlisin/dp22/README.md index 5b99a63b..36401188 100644 --- a/pages/students/2016/patrik_pavlisin/dp22/README.md +++ b/pages/students/2016/patrik_pavlisin/dp22/README.md @@ -4,7 +4,7 @@ Rekurentné neurónové siete, najmä long short-term pamäť (LSMT, špeciálny druh RNN, vytvorený na riešenie problémov s miznúcim gradientom) a uzavreté rekurentné neurónové siete, boli pevne zavedené ako najmodernejšie prístupy k problémom sekvenčného modelovania a prenosov, ako je jazykové modelovanie a strojový preklad. Početné snahy odvtedy pokračujú v posúvaní hraníc rekurentných jazykových modelov a architektúr encoder-decoder. Sieťové pamäte typu end-to-end sú založené na RNN (Recurrent Neural Network) mechanizme namiesto opakovania zarovnaného podľa sekvencie a ukázalo sa, že fungujú dobre pri úlohách zodpovedajúcich otázky v jednoduchom jazyku a pri modelovaní jazykov. End-to-end učenie je typ Deep Learningu, v ktorom sú všetky parametre trénované spoločne, a nie krok za krokom. -Transformer je modelovú architektúru, ktorá sa vyhýba opakovaniu a namiesto toho sa úplne spolieha na mechanizmus pozornosti na kreslenie globálnych závislostí medzi vstupom a výstupom. Je to prvý transdukčný model, ktorý sa spolieha úplne na vlastnú pozornosť pri výpočte reprezentácii vstupu a výstupu bez použitia RNN (Recurrent Neural Network) alebo CNN (Convolution Neural Network). Používa sa predovšetkým v oblasti NLP (Natural Language Processing) a CV (Computer Vision). Mechanizmy pozornosti sa stali súčasťou presvedčivého modelovania sekvencií a prenosových modelov v rôznych úlohách, ktoré umožňujú modelovanie závislostí bez ohľadu na ich vzdialenosť vo vstupných alebo výstupných sekvenciách. Takmer vo všetkých prípadoch sa však takéto mechanizmy pozornosti používajú v spojení s rekurentnou sieťou. +Transformer je modelová architektúra, ktorá sa vyhýba opakovaniu a namiesto toho sa úplne spolieha na mechanizmus pozornosti na kreslenie globálnych závislostí medzi vstupom a výstupom. Je to prvý transdukčný model, ktorý sa spolieha úplne na vlastnú pozornosť pri výpočte reprezentácii vstupu a výstupu bez použitia RNN (Recurrent Neural Network) alebo CNN (Convolution Neural Network). Používa sa predovšetkým v oblasti NLP (Natural Language Processing) a CV (Computer Vision). Mechanizmy pozornosti sa stali súčasťou presvedčivého modelovania sekvencií a prenosových modelov v rôznych úlohách, ktoré umožňujú modelovanie závislostí bez ohľadu na ich vzdialenosť vo vstupných alebo výstupných sekvenciách. Takmer vo všetkých prípadoch sa však takéto mechanizmy pozornosti používajú v spojení s rekurentnou sieťou. **Modelová architektúra** @@ -12,7 +12,7 @@ Väčšina konkurenčných prenosových modelov neurónovej sekvencie má štruk **Pozornosť** -Funkciu pozornosti je možné opísať ako mapovanie dotazu a sady párov kľúčov a hodnôt na výstup, kde dotaz, kľúče, hodnoty a výstup sú všetko vektory Výstup sa vypočíta ako vážený súčet hodnôt, pričom hmotnosť priradená každej hodnote sa vypočíta pomocou funkcie kompatibility dotazu so zodpovedajúcim kľúčom. +Funkciu pozornosti je možné opísať ako mapovanie dotazu a sady párov kľúčov a hodnôt na výstup, kde dotaz, kľúče, hodnoty a výstup sú všetko vektory. Výstup sa vypočíta ako vážený súčet hodnôt, pričom hmotnosť priradená každej hodnote sa vypočíta pomocou funkcie kompatibility dotazu so zodpovedajúcim kľúčom. From 9527967eb78eb82ade161f794a3d234e9df6ca94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Pavli=C5=A1in?= Date: Sat, 23 Oct 2021 17:21:43 +0000 Subject: [PATCH 17/43] Update 'pages/students/2016/patrik_pavlisin/dp22/README.md' --- pages/students/2016/patrik_pavlisin/dp22/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pages/students/2016/patrik_pavlisin/dp22/README.md b/pages/students/2016/patrik_pavlisin/dp22/README.md index 36401188..07d72504 100644 --- a/pages/students/2016/patrik_pavlisin/dp22/README.md +++ b/pages/students/2016/patrik_pavlisin/dp22/README.md @@ -42,11 +42,11 @@ Obe vrstvy encodera a decodera majú feed-forward neurónovú sieť (umelá neur **Transformer Encoder** -Encoder sa skladá zo zásobníka _N = 6_ rovnakých vrstiev. Každá vrstva má dve podvrstvy. Prvým je multi-head self-attention mechanizmus a druhým je jednoduchá polohovo plne prepojená sieť spätnej väzby. Multi-head Attention je modul pre mechanizmy pozornosti, ktorý prechádza mechanizmom pozornosti niekoľkokrát paralelne. Self-attention, tiež známy ako Intra-attention, je mechanizmus pozornosti, ktorý spája rôzne polohy jednej sekvencie s cieľom vypočítať reprezentáciu tej istej sekvencie. Okolo každej z dvoch čiastkových vrstiev sa používa zvyškové spojenie, po ktorom nasleduje normalizácia vrstvy. To znamená, že výstupom každej podvrstvy je _LayerNorm (x + Sublayer (x))_, kde _Sublayer (x)_ je funkcia implementovaná samotnou podvrstvou. Aby sa uľahčili tieto zvyškové spojenia, všetky podvrstvy v modeli, ako aj vkladacie vrstvy, produkujú výstupy dimenzie _dmodel_ = 512. +Encoder sa skladá zo zásobníka _N = 6_ rovnakých vrstiev. Každá vrstva má dve podvrstvy. Prvým je Multi-head Self-attention mechanizmus a druhým je jednoduchá polohovo plne prepojená sieť spätnej väzby. Multi-head attention je modul pre mechanizmy pozornosti, ktorý prechádza mechanizmom pozornosti niekoľkokrát paralelne. Self-attention, tiež známy ako Intra-attention, je mechanizmus pozornosti, ktorý spája rôzne polohy jednej sekvencie s cieľom vypočítať reprezentáciu tej istej sekvencie. Okolo každej z dvoch čiastkových vrstiev sa používa zvyškové spojenie, po ktorom nasleduje normalizácia vrstvy. To znamená, že výstupom každej podvrstvy je _LayerNorm (x + Sublayer (x))_, kde _Sublayer (x)_ je funkcia implementovaná samotnou podvrstvou. Aby sa uľahčili tieto zvyškové spojenia, všetky podvrstvy v modeli, ako aj vkladacie vrstvy, produkujú výstupy dimenzie _dmodel_ = 512. **Transformer Decoder** -Decoder je tiež zložený zo zásobníka _N = 6_ rovnakých vrstiev. Okrem dvoch podvrstiev v každej vrstve encodera, decoder vkladá tretiu podvrstvu, ktorá vykonáva multi-head attention nad výstupom encoder zásobníka. Podobne ako encoder, používa zvyškové spojenia okolo každej z podvrstiev, po ktorých nasleduje normalizácia vrstvy. Toto maskovanie v kombinácii so skutočnosťou, že vloženia výstupov sú posunuté o jednu pozíciu, zaisťuje, že predpovede pre polohu _i_ môžu závisieť iba od známych výstupov v polohách menších ako _i_. +Decoder je tiež zložený zo zásobníka _N = 6_ rovnakých vrstiev. Okrem dvoch podvrstiev v každej vrstve encodera, decoder vkladá tretiu podvrstvu, ktorá vykonáva Multi-head attention nad výstupom encoder zásobníka. Podobne ako encoder, používa zvyškové spojenia okolo každej z podvrstiev, po ktorých nasleduje normalizácia vrstvy. Toto maskovanie v kombinácii so skutočnosťou, že vloženia výstupov sú posunuté o jednu pozíciu, zaisťuje, že predpovede pre polohu _i_ môžu závisieť iba od známych výstupov v polohách menších ako _i_. **Scaled Dot-Product Attention** @@ -89,6 +89,6 @@ The Transformer využíva Multi-head attention tromi rôznymi spôsobmi: Vo vrstvách „encoder-decoder attention“ pochádzajú dotazy z predchádzajúcej vrstvy decodera a pamäťové kľúče a hodnoty sú z výstupu encodera. To umožňuje každej pozícii v decoderi zúčastniť sa na všetkých pozíciách vo vstupnej sekvencii. -Encoder obsahuje vrstvy self-attention. Vo vrstve self-attention pochádzajú všetky kľúče, hodnoty a dotazy z rovnakého miesta, teda predchádzajúcej vrstvy v encoderu. Každá pozícia v encoderi sa môže venovať všetkým polohám v predchádzajúcej vrstve encodera. +Encoder obsahuje vrstvy Self-attention. Vo vrstve self-attention pochádzajú všetky kľúče, hodnoty a dotazy z rovnakého miesta, teda predchádzajúcej vrstvy v encoderu. Každá pozícia v encoderi sa môže venovať všetkým polohám v predchádzajúcej vrstve encodera. Vrstvy self-attention v decoderi umožňujú každej pozícii v decoderi zúčastniť sa na všetkých polohách v decoderi až do danej polohy. Musí sa zabrániť toku informácii v decoderi, aby sa zachovala autoregresívna vlastnosť (model časových radov, ktorý používa pozorovania z predchádzajúcich časových krokov ako vstup do regresnej rovnice na predpovedanie hodnoty v nasledujúcom časovom kroku). To implementujeme do scaled dot-product attention pomocou maskovania (nastavením na -∞) všetkých hodnôt na vstupe softmax, ktoré zodpovedajú nezákonným spojeniam. \ No newline at end of file From dd8fee15443edf803a481cb0781145857b9cd615 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Pavli=C5=A1in?= Date: Sat, 23 Oct 2021 17:31:00 +0000 Subject: [PATCH 18/43] Update 'pages/students/2016/patrik_pavlisin/dp22/README.md' --- pages/students/2016/patrik_pavlisin/dp22/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pages/students/2016/patrik_pavlisin/dp22/README.md b/pages/students/2016/patrik_pavlisin/dp22/README.md index 07d72504..87b49570 100644 --- a/pages/students/2016/patrik_pavlisin/dp22/README.md +++ b/pages/students/2016/patrik_pavlisin/dp22/README.md @@ -4,8 +4,12 @@ Rekurentné neurónové siete, najmä long short-term pamäť (LSMT, špeciálny druh RNN, vytvorený na riešenie problémov s miznúcim gradientom) a uzavreté rekurentné neurónové siete, boli pevne zavedené ako najmodernejšie prístupy k problémom sekvenčného modelovania a prenosov, ako je jazykové modelovanie a strojový preklad. Početné snahy odvtedy pokračujú v posúvaní hraníc rekurentných jazykových modelov a architektúr encoder-decoder. Sieťové pamäte typu end-to-end sú založené na RNN (Recurrent Neural Network) mechanizme namiesto opakovania zarovnaného podľa sekvencie a ukázalo sa, že fungujú dobre pri úlohách zodpovedajúcich otázky v jednoduchom jazyku a pri modelovaní jazykov. End-to-end učenie je typ Deep Learningu, v ktorom sú všetky parametre trénované spoločne, a nie krok za krokom. +RNN boli dlhodobo dominantnou voľbou pre sekvenčné modelovanie, závažne však trpia najme dvoma problémami. Po prvé, ľahko trpí problémami s miznutím a explodovaním gradientu, čo do značnej miery obmedzuje schopnosť naučiť sa veľmi dlhodobé závislosti. Po druhé, sekvenčná povaha prechodov dopredu aj dozadu veľmi sťažuje, ak nie priam znemožňuje, paralelizáciu výpočtu, čo dramaticky zvyšuje časovú zložitosť v tréningovom aj testovacom postupe. Preto mnohé nedávno vyvinuté modely sekvenčného učenia úplne vypustili rekurentnú štruktúru a spoliehajú sa iba na konvolučnú (Convolution Neural Network) alebo mechanizmus pozornosti, ktoré sa dajú ľahko paralelizovať a umožňujú tok informácií v ľubovoľnej dĺžke. Dva reprezentatívne modely, ktoré pritiahli veľkú pozornosť, sú Temporal Convolution Networks (TCN) a Transformer. V rôznych úlohách sekvenčného učenia preukázali porovnateľný alebo dokonca lepší výkon ako výkonnosť RNN. + Transformer je modelová architektúra, ktorá sa vyhýba opakovaniu a namiesto toho sa úplne spolieha na mechanizmus pozornosti na kreslenie globálnych závislostí medzi vstupom a výstupom. Je to prvý transdukčný model, ktorý sa spolieha úplne na vlastnú pozornosť pri výpočte reprezentácii vstupu a výstupu bez použitia RNN (Recurrent Neural Network) alebo CNN (Convolution Neural Network). Používa sa predovšetkým v oblasti NLP (Natural Language Processing) a CV (Computer Vision). Mechanizmy pozornosti sa stali súčasťou presvedčivého modelovania sekvencií a prenosových modelov v rôznych úlohách, ktoré umožňujú modelovanie závislostí bez ohľadu na ich vzdialenosť vo vstupných alebo výstupných sekvenciách. Takmer vo všetkých prípadoch sa však takéto mechanizmy pozornosti používajú v spojení s rekurentnou sieťou. +Najmä Multi-head attention mechanizmus v Transformeri umožňuje, aby bola každá pozícia priamo spojená s akýmikoľvek inými pozíciami v sekvencii. Informácie tak môžu prúdiť cez pozície bez akejkoľvek medzistraty. Napriek tomu existujú dva problémy, ktoré môžu poškodiť účinnosť Multi-head attention pri sekvenčnom učení. Prvý pochádza zo straty sekvenčných informácií o pozíciách, pretože s každou pozíciou zaobchádza rovnako. Na zmiernenie tohto problému Transformer zavádza vkladanie pozícií, ktorých účinky sa však ukázali ako obmedzené. + **Modelová architektúra** Väčšina konkurenčných prenosových modelov neurónovej sekvencie má štruktúru encoder-decoder. V tomto prípade encoder mapuje vstupnú sekvenciu symbolových reprezentácií (x1, ..., xn) na sekvenciu spojitých reprezentácií z = (z1, ..., zn). Vzhľadom na z, decoder potom generuje výstupnú sekvenciu (y1, ..., ym) symbolov jeden po druhom. V každom kroku je model automaticky regresívny a pri generovaní ďalšieho spotrebuje predtým vygenerované symboly ako ďalší vstup. From 8512254b6c976c91db19c8ceeef7cccf357c6d9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Pavli=C5=A1in?= Date: Sat, 23 Oct 2021 18:27:52 +0000 Subject: [PATCH 19/43] Upload files to 'pages/students/2016/patrik_pavlisin' --- .../2016/patrik_pavlisin/R-Transformer.png | Bin 0 -> 42785 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 pages/students/2016/patrik_pavlisin/R-Transformer.png diff --git a/pages/students/2016/patrik_pavlisin/R-Transformer.png b/pages/students/2016/patrik_pavlisin/R-Transformer.png new file mode 100644 index 0000000000000000000000000000000000000000..3272a04a6c97f2d2abf63aa68dd2b77cc40890fb GIT binary patch literal 42785 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

Zt0ZU(b2p`^$ab(tsjJ9eb64De58=rvs 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 G+5Z4c_SC%q literal 0 HcmV?d00001 From 419e2efd39d06d727d314571a16a0658634c0cff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Pavli=C5=A1in?= Date: Sat, 23 Oct 2021 18:28:01 +0000 Subject: [PATCH 20/43] Delete 'pages/students/2016/patrik_pavlisin/R-Transformer.png' --- .../2016/patrik_pavlisin/R-Transformer.png | Bin 42785 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 pages/students/2016/patrik_pavlisin/R-Transformer.png diff --git a/pages/students/2016/patrik_pavlisin/R-Transformer.png b/pages/students/2016/patrik_pavlisin/R-Transformer.png deleted file mode 100644 index 3272a04a6c97f2d2abf63aa68dd2b77cc40890fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42785 zcmdSBbwE^IyElxYpaKF0LnA67-5nyKk|K(9cMRPrs3-^sBi$e%(%s$N-QCU5Fz?!U zpXWKxd(Qj)|NU{_!|a*ad+oihbzRplmfzmUzQnmhdB4}v2fmr9-H^KYcmamj;(9rJLLjPTxGN5oo zLrW=oEhh5LQDZX(vt*)Sw8)sNazyJ-E)IsSZp}OIG>m@ilp`JI?aHGb?1Uo|KEhk! zQ>xb!?mPcZ81AXZq@3+OUye;Wisp4GC?8YbG-Q!>@CVq zcrR{IikY9W^K zlawr0=y<-{JelA_zQ#3f#$J4WhrUccNuo5fXsj*9w(s>;BTVyq=)J+Ys<`YDQ(X&(FsL?Zd9QO<42ZyuG;_^v{=}GgPS`2u@SA6)v zN-rE7bbzT@emrXyzQkvI_NVq}+G87DGK*2Xo>g9EH>^I4Lm@QbPsHA|S{jbwr_rd{{_`HyG3C-o3AOPsOpMOE;j&tW!h zAI4fbiyCN$U8WMqPVXO}7MVT14LvaSbfWsf?N1Yx=o4i=atFQ@!flt&#MOsfn|4=! z)O&mgo`jgGFNfpFV%Q{ss#$M>)%G>-$qm22gVQ5ry_?*+(s zZbvXs68{JkI&I0!>3gO5vAghq7+!kc!huBaAbtGc_Ar(C-ipWMUh2f^lA1kP^#)rz z!~B%fattj@o{72gAef}=jSHTzR*1}mZ|d~0j7#5_ql*OzQtn!$vMp6L17pmz+mZTD zKiV)Ka_5##{D^Up^^Fxpq2*nri{bKlQ||Mx>60Da1pDoM5NNV_+<-H(|o7vXOPh;M;Y*uSVPB{`2)=h->^xqaq@ZUZQf+f%Q`IP z@78#kUecj>I8C~Nf=f%`HcZ@|()q_&W@?M%VTuA5?$cuv=|>$~muK67*7uXywCiqg zFTPVKjW}ig!Cew4<;^7+&qy0N)+ucC!)5j}EOA0C4evKzPDj~J9=xz!(|3@MiP37N z(OnR3cy>G=m~{1d()>hw=KN6EY^74>d|w@Z+`_P`VT|2`MfC;2BDLhrB;SDj%)%H8 zv9JAn+`VYUH3pc+$f9w0IW3L+U5JlFC`+P1h&HGJEA|+U$v<_Ob(K3WtGZgR5kXs*pS;OboPvA zR_wLO2P8gVsy?^QM#ak<1`ZZ0sT_V%y*L$MrjztB6zH``h>`scj^=&Ah}C?MoZl^U z=6DgxGn1&~=0{~}#IyKQA(2!({|SOh481m;5~bMI?pl_M=p7%1>uU4dakyo#kswxnJWrUq#%@%o&M>)g5AnO+jMt8_XZzSgT8Qb5D)2S1GtD|J7=~ z$*EGY@^}>bzWq3ZXocUB1e9+*9T?@G1@c@jjYyV97u1!wxW>u}^m0+&smmlY;#{k% zZZc7pRoRP|a*cHkd}Gzczb%kG$XD!sFI}J4xYj(tTG096K(yAcZs%@EY`-)tUAOex zM>LEMewHyW+8d%dN5m{Vip|#jq*4La^cf{@p}{OFD)n}j4w&Tfg+>`{aJQI)Snnke z%YO`onAQ_#b4OIQ4*f=6-#ltRX_CzSc(zwjOvtgj^&r2CC|ftexPx&s^JHS3`A&V$ zQ9h13A9Mjan7|^kdcTW5Df6o zM%v1P8w4*&EGn!D9tH)zS5$87%2(I42ZYjiVIjOG8$-r%X z-s0i9V>_g5D6WcsvNCETi6T{v4p>Yngqv00JdpD^Re&xJ({!D+Q#oxhy&AE=nS31c zlN8_c5l?3NxTteGve);z4}+PhWjUCk#DQj-Rci33TUUAR+6sOq#a3(KHpg}5h4>V8Tq1gi+!}PJ1WtwRA*TI~Lf?0Ib z^8R}{xVGaiFJGqZk|;DWLluYHLYf+WkM`^@oy(+ntj8i@~8 zB{Yk?&0ThEhq{F{ zBQokN`KiElB-*Igi6b(ez8lx8+-sxn4HaX*ih!C;ugX7`Fv%jo(DDSXP~++n3LPWI+aQyMCIfM4_!1YbqXm*5gz@!wHSuwp@#i4-ONcSscHK zTiv#tK7KQbsBGqi;R?BeQRP4Gh$JS}4lcnx|Hf!!@wR)k&A71I((gQz5V9l3TimH9a=%h>Myj zp!wT*l8$?eaP&?*Ljfz(A{EW zlxBXhlxtB`HD7c_$~oLRQif?ZG8WIZK#8I~J0~%Uad8}J7+!uTTGAhH1=^aX6wo_0 zpqLOLOi(=C5{0RZbQXy@KXj{J9JaH;4X0^Sf8Z5{f3!9^j-#X-rNr3&Iv-o(t#`oF zPXvn6Lq9U_`VHm{6tpIx>_FuEj9VgPk{G|f*kKYp&@`Lg*FiFH`j?)F#!Z8QOaW!H z)Aj5lXT~!h;YN@h6LY_w%L-o{TqUvsqROi#A~rciU#_Ha`KnP<{Y^FzOJbPwTUY$_ zZ&G*JEUeOzozF!1Z46yvocS?V@qjVbPn`;%=j`T2h6ab4w0l<^^f*}`PC96Eul_=m zzGrskQtW>V3U^_(Ljbu>5O(ZjG<>KEKJSAfOE-RIT!lQ^VfI>bdJ^q_pMEp^n6k+pMpD)BmG(o>PfD!2c9j^|R_oIj>KR3^`~JX$ z*Quji?{FJTB9qj_?+Kl4un)T|MNDS+1$+l(P37_@e`W2M_Og0XwD>*3N7p8oH1zY8 z)DbCExK$m?HsHzG0Afx|-T* zeTKbT;C?552$VFucfm-?dCv~*6uL*o8B03lb3>feRAviYE`H2b8m!K5m2X$ka?8^d zPgwg!nXDO4VB2(W`-lYe^D*I=U`f+}Ml;IeV{MsC=5?cwG;boDR@kNrnvBW9Zhcn@ z9Je*fz+2RQ64S-1V-8w12c5zIDXdLLFHMU~)^(GdpgTM}HRzQA0u*Iio0?4~F;QI3 zGpMn(xQlaVRf}@!B_oBaEm01kJ~=WhZCqc;%7e-Rb_uWpAv}5j=Ch7IP)g4+K_=4Y11F;zsweF zasv-io+(j{-2GUa`z+eVNoHBu)P;L5<7Jt#+~Zq|L}gR^xclw!!p0-6K6# zx!QGqh%ZJv>YOo#t+c&4PTHTS>b6RtwA~{Yyx2q9`=vzuQM)|p_OLJQe^HDV8VFU~ zj=>L_n_n18;mHmAQ6}{ZX$xpZMCl-nkpM#7fWEAcGg{ZPgAbrH8 z#gcp3di_+M$EB0MKos@x1995a_|JsgnI2JGJB5RlS71PgA^`Z8!gVM5<%G!?ss7v)Roj2N%vdy1=TFMpmzlR_ z0^baS_4qWOdR{DZNJPU1Z)*mb!9wMyOj-N7N?xoGa;PsSb5ExZ3A2f zp5)K9SFD?rJ2VDwCUZDoJPN-iFL=w#qHLAgqGU+Z!>xFrul-n+&0$m@ChR)_8mEU4 z`VZ4|Uu_Dc*hXqV2x*7wVp!S2%|pOQ$@IX`!VXJYA4-yXZ=U^e5$6BpR>a}_rhjGS zyqh2fHQJZ4EG(#eY7rIyW?lwEkcOCymcK`%SWyo%Gs`*Gzb!?Ef}r}r}uRU*LX)k?C{IO zzNhBPW#?3j0m^1g1v{(-3No1+l}hj2pCSzg$;(@c>OL2d=Ne+ZTI>8Hc#s%=X|j;U z$g$H?;(2JImo7L|V{ppNA5K4&n>>|K2i?n4CFanZyk$K@p*xSq>0o2db~!bEh$Pye;QS>co7kDUh=R6MBP=wcuA@;(_|w|2>`^VNWjt=)GB;=B+?wr>7C z(T{QPi^^w(l*KTq)8Wt(a5;L;Jh#);RQEXjf-)#M-q)&Bx)B1QgYv^MQ-0|%=lnl` z>UyO$@%-DFtQUh(@7*$BSQpG?E00lA)cu;3%7e|$x$sJ)BC6Fd?&N7&P->YHGl4&L zMcD05fPL*zX%a_qrH)0p4~T< zz@W8H#~W`}Qn>Djpkj0rr+%*0mHJ;6{JQ?pztWTB;zZ^hZkNj%$#n(|X=%$7&?}rx z_h?o=8>AXQjayVBPxr4Itx*+(T@HS>i4Hq>i<`iIYD3CHZZ!SJ-z?hWm*UlWJr3ST}ddN^*Pgh69IB;>sNN= zMEiya26=wHygX5AdR6d3)umTRcd(Ekp5FWz3Nj)#<$99kNZNowV?qVZEgQI?_}}aP zb9wMiSPhmIrE2~N`~P*4HrynJL>$qn;(PzE0lp7cB<)g%63D+#3*94hE#g5v!PAwb zEiWvl9V^lNawxxO@d4s)qLn6&^h_1*yb$yUv=HZx&B8v4{QueBh`@(`tBBk8msMQ&Wi|>DPEt=~N!F`cGRc6i2G? zGC)-F2bhMEx*hbw`(D%7v3Ia|ld$Q%lIe>V@t&Be_15)};_u`fR)d#s7Wo|(9YQM< zt%nbS%caJtF+(_Hd>n;hv8mD4k`OAYzsuiY%Goc?-nga&kJJl(?fRVVPX2rVf7!E? z@H*sbKMm;i@4>VVy33OD@s*&I26E}@QnXDM)C=EG5p+4UwW!#YfKH|#s@&vHE;xqV zo)%VYx9)S@?_731+S;r_U7mqvJz%@)tP6*frw8IfO$kx~a0cWY@{ zm#e2%Hc(0u~iFZ|`zOkLTnpEZ+ zkB0Lq75Csf1#yMdUGU4ZdEamC!6xeCYd4)|FtG{oWCqEvkP4WeDKhI8%HDU*mS?ln zQD*nRHNF#bwt>~{1P*RM%r2-d-&4edjJ{QX=a-mvpyY-eoP_WhG#xxc@3=q+i*Oq}K5r-wV145GgHsoWyL(jDH6Q4b}edh;;$^Bgw9u9cWXZh*tfiQHcLx zcyhplFq9ZKmtlnV!>Ej><6W#aWM_j_YN^z^;BezelbiXh&9JbZ+BAN`a%J=*lSTO@1i$!(>RzZ$JEHT?-^Jd=!KEKk}dCO3SdfwpP&JEtZE zcbClfp;p0*3ThE_=ZV$PG*y>acRsZo#wB_}3*u}!Gy0bYZgV9}&CjW&ZqTSmv$5kx zpR3Cb!400qt={TT;1I6Txi!?Sn^%_Fg|tC&NF1Fw74?f8X{2ZIiH~=rN^#E>f9N5+ z>9l;gJ3hQxCKHjd^iKqV7btZmhe(G`2NoS0sU563B&%+`#13=8d?$S#GBaT|J*C7Q zI+9^dB)l2szgO%Oloi8wA11r;eN`ve{4F#h*^k0TB8dLjF}XimG#8gp zMywNm1qbxE9eOv*j;E6@OwNQ@+uFmDlGG*(*Cz~Q?-YSiEwU;&Eq}oOSM)(u1&T#u zGQ=Rcu3gjn&9k{9M&F3B`D8A{!*lqu)^Ii_~&GE!Rfg^#=z&^0VliTh}Pg%Nw0scPblc6+QTy*W#tZNn0D}BcbA(oia8f^C$QG^7j(qOkK?M$p?Kf; z$b82Lmrc3#x9yCd>-!WCXmmu!i9L&w)ag7S*sk)guHvf^U2~xnV<4(^?+ou}psbQh7ePl)73c$3A=Bgd|~+ z=RQ4}E_@oqi82V)+5RkZ({Pip;q4Prji9 zY~X91yfzW)bS_YgDSiKGpZ;4H)d|nz8Z&yr?Rso^)F;KvsXqo_@Z<|D#s{0`n?Vr# z9dX&NbbDTRleLpWr{R{xjF|S2s)bkKmT%;3f!Y^X^mvaIXs6{sBjJQ-yeEMIbEk)!>*TIGwNQnI8W7BRnmAW$ z=%=^uQy;rdL%>MtaRB$UYyY|}U`(4qr@#kjCD*Fz^F678WHZO(S)WN#n~vF(NRvN* zXoyYcmOij|@~vmUfri;THT1WH0$el-8iVO#fs}})SQq%wLBHHfKm|X-d-~{mf6fF4 zazLT{BRXaoXpfl3d|R54!1r?4-F4W+Y@QI+R8f*KN|fZtRAblrX%AAy6N@;vZbH~zOVQFIc} zs*Aa}O{_sJnOKjXIF;O63&qV`KL!Z4_$a!r#*w86OGpin6T^Bm{mn+7gP)`aWlm}( zV5WsYVel>9y7-X-Y-~&yrmSvc8i>@1xCAJTamY{qG@U!W2mmoEfV)C-KKc)=RVu5Y ze&ecC=6--0-~WVL$q?M?t3F&<%LWh(;Iq&Hz?xnmH10h7z?PMEFhmXrlG!F?l9j@g zgPrqDMB#r=|78L|G;mp*Qt6$*^= zHJLOaZD!wtY{A)lr2)Z|YH&Jlq)x&S=yR3>Y{1PH))J3cBQ268xUdP%(!VrjU7hJo zu6(a5Oi)C4nsEky@aE?00=3A?rv<~}5Dp7nmD~PChPedpyi7}HQvesaj5q<~VltAk z4D98cJdxXZ9S`nr?S)|A<*XCMT6cw_CrX%a#dZBk%eecH?@Jp?z5Y&=%6>ZL*cVtI z3A`l1FL&;72kX7TkNf-s(<%rYrqjM^=Xkf@!XK%wr6k0sm&I2OZo4K5+Xdje!&bd7 z6|3LC7Kzh$T-Zfp(rq&NuYv<0t$|QA1eJ+YR_nb&s$qb*@D20CHUYxw{7!7)2Pt6) z5%KJy`Hkl;H+e@zJeeUxuS(UD!M(x7xf+L);z559ogc?xl$OQ#9W;Me5t~R$NbkH+ zqAO9X0|UL*UuQ?qtw~12UvN~m`}#2n;iA;3p$~aY7lDM$&&$#0+1F3k?Q6}RI~-Uv z8HOCot$V2RT@4bH3ssIC@gk!cKeOH%*l5B>=DcJg%&M9ag}6M;vaFD+CGq8dButL= z6)&}JaH5m+J}4?%XI@C@Gv|H8%772I-tBS&VZ4%^5R)%@YKV2pT}G5}?n~Jx0tMk5 zAm;XQe^u=^k!%4t>%ZiyB4UXG&3|d}lymz9;E#IMJh{(d~A5vJBZa4g{Y;spr7&_f6Erw#OvMS97r*mrh5sJ`{h36Pn_=%aR~FMekRw ztP+x$Kj~S0yg#p$W}XRRU>o5tD_x3gmtkvts@@0E$x_jzy(+hM-6tdCATHp=$Q-wB zXH?&wsw`ifuJ-V_vT?Xf7AQ@T=BH~ ze(_5P|Hy#!IC-E6q}E9=qAmaIS8*0qCr$n&++C0kJy}5GPsmzF=5fBeMS(hgS@7l6 zeOqx&+kpPKdFwIb)RXxE+L3vTH5?gC2z>m+BzLUI%xj~oVxwTu^1L!c0J3jst8AT# zVnEaVWD(vicw~!?dH0~50X&yW?x4F6yQ^y5N>y1z(4pzH7_v3xvTX;RXQ~BG!+96* ziMU4;4yj1hy8EhGH9my*#EWQ*Hxj6JVD1ANs}Q9*;eNKc1t{+g9e0rTZI0H`vn5RZ zBzXbMo!H3l-YP8Ax-47IvcUzSLpc!WA=tIuxeb`W&9G50xCu~o2r?PzZdPV$e_Tha z73lVkwdvxmk~ase+M13#F5k){r1Y;Fl?CAD;)m_>TB-N#_??p=I^)HDyA|K;CqPoJ zV@(n(sYA@b^IMj`D`3ic_zoAy;g>f1Hjvkc&y8 z0&!M896YnM+e{I-w6xs8-hJ>z3qUKIVldMjAAX{Xi~{q<8nU^h3Y5@Z=G}8ZwUB-B zj8*64c!wcjH}G3t!{hrpD7vtVd$`3tk(5dRTV7-?B)S^?PLRhGWWB;>2T}q6(q@eV zhsniWdS+3iFgf!2(jC!P76r~(f4m{g)`b6(be7(XZtHDA@n<{W3_=+N&^~ld?b*qx zzw5X3bRHaXP_?Km)chb(?Ar95Xr5C5s1!-Ot&a#3_2cZC11TsvA12q>P)jiu{v7_H zG5+=#l(DTZxD;E%mEh`$rHK!2`Lg~2ND@&F;m*=lN8o>&tk~~bPl9zX*atIt z{DpYyu1NRWnXNCt*3{bxGy}W-B-3IHllb^GN|2AxMJ!+a@am-t6F#5C6~cw5-b?<- z`+^^S`&n4!;aK}}g7%@5Pt&!6^3{~6MBe25R_dr@0ZE+TPc}ed{X85Hx^1ltVo5zt z$jue2nij`7#~Hcy{?L3{fTW=2I#$VNn8paWGr3;1pc~H4U+$8vS>T``JYJeC!u(jm zbnyKL|D^!}=LF6Q4|6E5h{Wq`kLIUVzfXNji0!SFHj+u5cwa(BG#?lO_#+jBfcBdb zWjCaJk@@a1(T&g*kGXF&5;kq#%g;(CeME@FteL8gb+SE@i_6`2YB4W)#o@>Yt-OFM zuDCq-`mPQV>J4{&hlFDPpdd!#BacEfv zb6|_o*P6=$9~hkDJ&{1t*GpnMb|QghcHkvBHN@}tG+gM>OcJ8@9;fg1D}UbSiEo$+ zdZ@&1o8(qeT)|)R= z*$q0C-k-D$Nr6IZNJF%+0wut;4@QOHNtlbFQe&OzA{BTKsI&6B_@HmSriocVrovco zR$Aj}+yVs;zb<`!!D7vfzI?tcjQY0p4x@O(N&skM3q}D(iqHx~BMgp|j9@|)%p{jC zw7SHKX**)v%BQT!!OHnt;iiUf^Hh$zg7&bIJZM9x3fe4ls<2t zc!v>fA0x>HU9j+vwy#S@0TN5G7@Jz_8&&8Iy5cWD%el_UD5fPX6h6j&XH|0zQ%qrX zXSn)uaJ}1H`mr$T$OE-(H^+IyxQ;)j

Zt0ZU(b2p`^$ab(tsjJ9eb64De58=rvs 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 G+5Z4c_SC%q From 562bca06cb368ccfa5b395f2f5a9c9fc2ee87bf8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Pavli=C5=A1in?= Date: Sat, 23 Oct 2021 18:28:10 +0000 Subject: [PATCH 21/43] Upload files to 'pages/students/2016/patrik_pavlisin/dp22' --- .../2016/patrik_pavlisin/dp22/R-Transformer.png | Bin 0 -> 42785 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 pages/students/2016/patrik_pavlisin/dp22/R-Transformer.png diff --git a/pages/students/2016/patrik_pavlisin/dp22/R-Transformer.png b/pages/students/2016/patrik_pavlisin/dp22/R-Transformer.png new file mode 100644 index 0000000000000000000000000000000000000000..3272a04a6c97f2d2abf63aa68dd2b77cc40890fb GIT binary patch literal 42785 zcmdSBbwE^IyElxYpaKF0LnA67-5nyKk|K(9cMRPrs3-^sBi$e%(%s$N-QCU5Fz?!U zpXWKxd(Qj)|NU{_!|a*ad+oihbzRplmfzmUzQnmhdB4}v2fmr9-H^KYcmamj;(9rJLLjPTxGN5oo zLrW=oEhh5LQDZX(vt*)Sw8)sNazyJ-E)IsSZp}OIG>m@ilp`JI?aHGb?1Uo|KEhk! zQ>xb!?mPcZ81AXZq@3+OUye;Wisp4GC?8YbG-Q!>@CVq zcrR{IikY9W^K zlawr0=y<-{JelA_zQ#3f#$J4WhrUccNuo5fXsj*9w(s>;BTVyq=)J+Ys<`YDQ(X&(FsL?Zd9QO<42ZyuG;_^v{=}GgPS`2u@SA6)v zN-rE7bbzT@emrXyzQkvI_NVq}+G87DGK*2Xo>g9EH>^I4Lm@QbPsHA|S{jbwr_rd{{_`HyG3C-o3AOPsOpMOE;j&tW!h zAI4fbiyCN$U8WMqPVXO}7MVT14LvaSbfWsf?N1Yx=o4i=atFQ@!flt&#MOsfn|4=! z)O&mgo`jgGFNfpFV%Q{ss#$M>)%G>-$qm22gVQ5ry_?*+(s zZbvXs68{JkI&I0!>3gO5vAghq7+!kc!huBaAbtGc_Ar(C-ipWMUh2f^lA1kP^#)rz z!~B%fattj@o{72gAef}=jSHTzR*1}mZ|d~0j7#5_ql*OzQtn!$vMp6L17pmz+mZTD zKiV)Ka_5##{D^Up^^Fxpq2*nri{bKlQ||Mx>60Da1pDoM5NNV_+<-H(|o7vXOPh;M;Y*uSVPB{`2)=h->^xqaq@ZUZQf+f%Q`IP z@78#kUecj>I8C~Nf=f%`HcZ@|()q_&W@?M%VTuA5?$cuv=|>$~muK67*7uXywCiqg zFTPVKjW}ig!Cew4<;^7+&qy0N)+ucC!)5j}EOA0C4evKzPDj~J9=xz!(|3@MiP37N z(OnR3cy>G=m~{1d()>hw=KN6EY^74>d|w@Z+`_P`VT|2`MfC;2BDLhrB;SDj%)%H8 zv9JAn+`VYUH3pc+$f9w0IW3L+U5JlFC`+P1h&HGJEA|+U$v<_Ob(K3WtGZgR5kXs*pS;OboPvA zR_wLO2P8gVsy?^QM#ak<1`ZZ0sT_V%y*L$MrjztB6zH``h>`scj^=&Ah}C?MoZl^U z=6DgxGn1&~=0{~}#IyKQA(2!({|SOh481m;5~bMI?pl_M=p7%1>uU4dakyo#kswxnJWrUq#%@%o&M>)g5AnO+jMt8_XZzSgT8Qb5D)2S1GtD|J7=~ z$*EGY@^}>bzWq3ZXocUB1e9+*9T?@G1@c@jjYyV97u1!wxW>u}^m0+&smmlY;#{k% zZZc7pRoRP|a*cHkd}Gzczb%kG$XD!sFI}J4xYj(tTG096K(yAcZs%@EY`-)tUAOex zM>LEMewHyW+8d%dN5m{Vip|#jq*4La^cf{@p}{OFD)n}j4w&Tfg+>`{aJQI)Snnke z%YO`onAQ_#b4OIQ4*f=6-#ltRX_CzSc(zwjOvtgj^&r2CC|ftexPx&s^JHS3`A&V$ zQ9h13A9Mjan7|^kdcTW5Df6o zM%v1P8w4*&EGn!D9tH)zS5$87%2(I42ZYjiVIjOG8$-r%X z-s0i9V>_g5D6WcsvNCETi6T{v4p>Yngqv00JdpD^Re&xJ({!D+Q#oxhy&AE=nS31c zlN8_c5l?3NxTteGve);z4}+PhWjUCk#DQj-Rci33TUUAR+6sOq#a3(KHpg}5h4>V8Tq1gi+!}PJ1WtwRA*TI~Lf?0Ib z^8R}{xVGaiFJGqZk|;DWLluYHLYf+WkM`^@oy(+ntj8i@~8 zB{Yk?&0ThEhq{F{ zBQokN`KiElB-*Igi6b(ez8lx8+-sxn4HaX*ih!C;ugX7`Fv%jo(DDSXP~++n3LPWI+aQyMCIfM4_!1YbqXm*5gz@!wHSuwp@#i4-ONcSscHK zTiv#tK7KQbsBGqi;R?BeQRP4Gh$JS}4lcnx|Hf!!@wR)k&A71I((gQz5V9l3TimH9a=%h>Myj zp!wT*l8$?eaP&?*Ljfz(A{EW zlxBXhlxtB`HD7c_$~oLRQif?ZG8WIZK#8I~J0~%Uad8}J7+!uTTGAhH1=^aX6wo_0 zpqLOLOi(=C5{0RZbQXy@KXj{J9JaH;4X0^Sf8Z5{f3!9^j-#X-rNr3&Iv-o(t#`oF zPXvn6Lq9U_`VHm{6tpIx>_FuEj9VgPk{G|f*kKYp&@`Lg*FiFH`j?)F#!Z8QOaW!H z)Aj5lXT~!h;YN@h6LY_w%L-o{TqUvsqROi#A~rciU#_Ha`KnP<{Y^FzOJbPwTUY$_ zZ&G*JEUeOzozF!1Z46yvocS?V@qjVbPn`;%=j`T2h6ab4w0l<^^f*}`PC96Eul_=m zzGrskQtW>V3U^_(Ljbu>5O(ZjG<>KEKJSAfOE-RIT!lQ^VfI>bdJ^q_pMEp^n6k+pMpD)BmG(o>PfD!2c9j^|R_oIj>KR3^`~JX$ z*Quji?{FJTB9qj_?+Kl4un)T|MNDS+1$+l(P37_@e`W2M_Og0XwD>*3N7p8oH1zY8 z)DbCExK$m?HsHzG0Afx|-T* zeTKbT;C?552$VFucfm-?dCv~*6uL*o8B03lb3>feRAviYE`H2b8m!K5m2X$ka?8^d zPgwg!nXDO4VB2(W`-lYe^D*I=U`f+}Ml;IeV{MsC=5?cwG;boDR@kNrnvBW9Zhcn@ z9Je*fz+2RQ64S-1V-8w12c5zIDXdLLFHMU~)^(GdpgTM}HRzQA0u*Iio0?4~F;QI3 zGpMn(xQlaVRf}@!B_oBaEm01kJ~=WhZCqc;%7e-Rb_uWpAv}5j=Ch7IP)g4+K_=4Y11F;zsweF zasv-io+(j{-2GUa`z+eVNoHBu)P;L5<7Jt#+~Zq|L}gR^xclw!!p0-6K6# zx!QGqh%ZJv>YOo#t+c&4PTHTS>b6RtwA~{Yyx2q9`=vzuQM)|p_OLJQe^HDV8VFU~ zj=>L_n_n18;mHmAQ6}{ZX$xpZMCl-nkpM#7fWEAcGg{ZPgAbrH8 z#gcp3di_+M$EB0MKos@x1995a_|JsgnI2JGJB5RlS71PgA^`Z8!gVM5<%G!?ss7v)Roj2N%vdy1=TFMpmzlR_ z0^baS_4qWOdR{DZNJPU1Z)*mb!9wMyOj-N7N?xoGa;PsSb5ExZ3A2f zp5)K9SFD?rJ2VDwCUZDoJPN-iFL=w#qHLAgqGU+Z!>xFrul-n+&0$m@ChR)_8mEU4 z`VZ4|Uu_Dc*hXqV2x*7wVp!S2%|pOQ$@IX`!VXJYA4-yXZ=U^e5$6BpR>a}_rhjGS zyqh2fHQJZ4EG(#eY7rIyW?lwEkcOCymcK`%SWyo%Gs`*Gzb!?Ef}r}r}uRU*LX)k?C{IO zzNhBPW#?3j0m^1g1v{(-3No1+l}hj2pCSzg$;(@c>OL2d=Ne+ZTI>8Hc#s%=X|j;U z$g$H?;(2JImo7L|V{ppNA5K4&n>>|K2i?n4CFanZyk$K@p*xSq>0o2db~!bEh$Pye;QS>co7kDUh=R6MBP=wcuA@;(_|w|2>`^VNWjt=)GB;=B+?wr>7C z(T{QPi^^w(l*KTq)8Wt(a5;L;Jh#);RQEXjf-)#M-q)&Bx)B1QgYv^MQ-0|%=lnl` z>UyO$@%-DFtQUh(@7*$BSQpG?E00lA)cu;3%7e|$x$sJ)BC6Fd?&N7&P->YHGl4&L zMcD05fPL*zX%a_qrH)0p4~T< zz@W8H#~W`}Qn>Djpkj0rr+%*0mHJ;6{JQ?pztWTB;zZ^hZkNj%$#n(|X=%$7&?}rx z_h?o=8>AXQjayVBPxr4Itx*+(T@HS>i4Hq>i<`iIYD3CHZZ!SJ-z?hWm*UlWJr3ST}ddN^*Pgh69IB;>sNN= zMEiya26=wHygX5AdR6d3)umTRcd(Ekp5FWz3Nj)#<$99kNZNowV?qVZEgQI?_}}aP zb9wMiSPhmIrE2~N`~P*4HrynJL>$qn;(PzE0lp7cB<)g%63D+#3*94hE#g5v!PAwb zEiWvl9V^lNawxxO@d4s)qLn6&^h_1*yb$yUv=HZx&B8v4{QueBh`@(`tBBk8msMQ&Wi|>DPEt=~N!F`cGRc6i2G? zGC)-F2bhMEx*hbw`(D%7v3Ia|ld$Q%lIe>V@t&Be_15)};_u`fR)d#s7Wo|(9YQM< zt%nbS%caJtF+(_Hd>n;hv8mD4k`OAYzsuiY%Goc?-nga&kJJl(?fRVVPX2rVf7!E? z@H*sbKMm;i@4>VVy33OD@s*&I26E}@QnXDM)C=EG5p+4UwW!#YfKH|#s@&vHE;xqV zo)%VYx9)S@?_731+S;r_U7mqvJz%@)tP6*frw8IfO$kx~a0cWY@{ zm#e2%Hc(0u~iFZ|`zOkLTnpEZ+ zkB0Lq75Csf1#yMdUGU4ZdEamC!6xeCYd4)|FtG{oWCqEvkP4WeDKhI8%HDU*mS?ln zQD*nRHNF#bwt>~{1P*RM%r2-d-&4edjJ{QX=a-mvpyY-eoP_WhG#xxc@3=q+i*Oq}K5r-wV145GgHsoWyL(jDH6Q4b}edh;;$^Bgw9u9cWXZh*tfiQHcLx zcyhplFq9ZKmtlnV!>Ej><6W#aWM_j_YN^z^;BezelbiXh&9JbZ+BAN`a%J=*lSTO@1i$!(>RzZ$JEHT?-^Jd=!KEKk}dCO3SdfwpP&JEtZE zcbClfp;p0*3ThE_=ZV$PG*y>acRsZo#wB_}3*u}!Gy0bYZgV9}&CjW&ZqTSmv$5kx zpR3Cb!400qt={TT;1I6Txi!?Sn^%_Fg|tC&NF1Fw74?f8X{2ZIiH~=rN^#E>f9N5+ z>9l;gJ3hQxCKHjd^iKqV7btZmhe(G`2NoS0sU563B&%+`#13=8d?$S#GBaT|J*C7Q zI+9^dB)l2szgO%Oloi8wA11r;eN`ve{4F#h*^k0TB8dLjF}XimG#8gp zMywNm1qbxE9eOv*j;E6@OwNQ@+uFmDlGG*(*Cz~Q?-YSiEwU;&Eq}oOSM)(u1&T#u zGQ=Rcu3gjn&9k{9M&F3B`D8A{!*lqu)^Ii_~&GE!Rfg^#=z&^0VliTh}Pg%Nw0scPblc6+QTy*W#tZNn0D}BcbA(oia8f^C$QG^7j(qOkK?M$p?Kf; z$b82Lmrc3#x9yCd>-!WCXmmu!i9L&w)ag7S*sk)guHvf^U2~xnV<4(^?+ou}psbQh7ePl)73c$3A=Bgd|~+ z=RQ4}E_@oqi82V)+5RkZ({Pip;q4Prji9 zY~X91yfzW)bS_YgDSiKGpZ;4H)d|nz8Z&yr?Rso^)F;KvsXqo_@Z<|D#s{0`n?Vr# z9dX&NbbDTRleLpWr{R{xjF|S2s)bkKmT%;3f!Y^X^mvaIXs6{sBjJQ-yeEMIbEk)!>*TIGwNQnI8W7BRnmAW$ z=%=^uQy;rdL%>MtaRB$UYyY|}U`(4qr@#kjCD*Fz^F678WHZO(S)WN#n~vF(NRvN* zXoyYcmOij|@~vmUfri;THT1WH0$el-8iVO#fs}})SQq%wLBHHfKm|X-d-~{mf6fF4 zazLT{BRXaoXpfl3d|R54!1r?4-F4W+Y@QI+R8f*KN|fZtRAblrX%AAy6N@;vZbH~zOVQFIc} zs*Aa}O{_sJnOKjXIF;O63&qV`KL!Z4_$a!r#*w86OGpin6T^Bm{mn+7gP)`aWlm}( zV5WsYVel>9y7-X-Y-~&yrmSvc8i>@1xCAJTamY{qG@U!W2mmoEfV)C-KKc)=RVu5Y ze&ecC=6--0-~WVL$q?M?t3F&<%LWh(;Iq&Hz?xnmH10h7z?PMEFhmXrlG!F?l9j@g zgPrqDMB#r=|78L|G;mp*Qt6$*^= zHJLOaZD!wtY{A)lr2)Z|YH&Jlq)x&S=yR3>Y{1PH))J3cBQ268xUdP%(!VrjU7hJo zu6(a5Oi)C4nsEky@aE?00=3A?rv<~}5Dp7nmD~PChPedpyi7}HQvesaj5q<~VltAk z4D98cJdxXZ9S`nr?S)|A<*XCMT6cw_CrX%a#dZBk%eecH?@Jp?z5Y&=%6>ZL*cVtI z3A`l1FL&;72kX7TkNf-s(<%rYrqjM^=Xkf@!XK%wr6k0sm&I2OZo4K5+Xdje!&bd7 z6|3LC7Kzh$T-Zfp(rq&NuYv<0t$|QA1eJ+YR_nb&s$qb*@D20CHUYxw{7!7)2Pt6) z5%KJy`Hkl;H+e@zJeeUxuS(UD!M(x7xf+L);z559ogc?xl$OQ#9W;Me5t~R$NbkH+ zqAO9X0|UL*UuQ?qtw~12UvN~m`}#2n;iA;3p$~aY7lDM$&&$#0+1F3k?Q6}RI~-Uv z8HOCot$V2RT@4bH3ssIC@gk!cKeOH%*l5B>=DcJg%&M9ag}6M;vaFD+CGq8dButL= z6)&}JaH5m+J}4?%XI@C@Gv|H8%772I-tBS&VZ4%^5R)%@YKV2pT}G5}?n~Jx0tMk5 zAm;XQe^u=^k!%4t>%ZiyB4UXG&3|d}lymz9;E#IMJh{(d~A5vJBZa4g{Y;spr7&_f6Erw#OvMS97r*mrh5sJ`{h36Pn_=%aR~FMekRw ztP+x$Kj~S0yg#p$W}XRRU>o5tD_x3gmtkvts@@0E$x_jzy(+hM-6tdCATHp=$Q-wB zXH?&wsw`ifuJ-V_vT?Xf7AQ@T=BH~ ze(_5P|Hy#!IC-E6q}E9=qAmaIS8*0qCr$n&++C0kJy}5GPsmzF=5fBeMS(hgS@7l6 zeOqx&+kpPKdFwIb)RXxE+L3vTH5?gC2z>m+BzLUI%xj~oVxwTu^1L!c0J3jst8AT# zVnEaVWD(vicw~!?dH0~50X&yW?x4F6yQ^y5N>y1z(4pzH7_v3xvTX;RXQ~BG!+96* ziMU4;4yj1hy8EhGH9my*#EWQ*Hxj6JVD1ANs}Q9*;eNKc1t{+g9e0rTZI0H`vn5RZ zBzXbMo!H3l-YP8Ax-47IvcUzSLpc!WA=tIuxeb`W&9G50xCu~o2r?PzZdPV$e_Tha z73lVkwdvxmk~ase+M13#F5k){r1Y;Fl?CAD;)m_>TB-N#_??p=I^)HDyA|K;CqPoJ zV@(n(sYA@b^IMj`D`3ic_zoAy;g>f1Hjvkc&y8 z0&!M896YnM+e{I-w6xs8-hJ>z3qUKIVldMjAAX{Xi~{q<8nU^h3Y5@Z=G}8ZwUB-B zj8*64c!wcjH}G3t!{hrpD7vtVd$`3tk(5dRTV7-?B)S^?PLRhGWWB;>2T}q6(q@eV zhsniWdS+3iFgf!2(jC!P76r~(f4m{g)`b6(be7(XZtHDA@n<{W3_=+N&^~ld?b*qx zzw5X3bRHaXP_?Km)chb(?Ar95Xr5C5s1!-Ot&a#3_2cZC11TsvA12q>P)jiu{v7_H zG5+=#l(DTZxD;E%mEh`$rHK!2`Lg~2ND@&F;m*=lN8o>&tk~~bPl9zX*atIt z{DpYyu1NRWnXNCt*3{bxGy}W-B-3IHllb^GN|2AxMJ!+a@am-t6F#5C6~cw5-b?<- z`+^^S`&n4!;aK}}g7%@5Pt&!6^3{~6MBe25R_dr@0ZE+TPc}ed{X85Hx^1ltVo5zt z$jue2nij`7#~Hcy{?L3{fTW=2I#$VNn8paWGr3;1pc~H4U+$8vS>T``JYJeC!u(jm zbnyKL|D^!}=LF6Q4|6E5h{Wq`kLIUVzfXNji0!SFHj+u5cwa(BG#?lO_#+jBfcBdb zWjCaJk@@a1(T&g*kGXF&5;kq#%g;(CeME@FteL8gb+SE@i_6`2YB4W)#o@>Yt-OFM zuDCq-`mPQV>J4{&hlFDPpdd!#BacEfv zb6|_o*P6=$9~hkDJ&{1t*GpnMb|QghcHkvBHN@}tG+gM>OcJ8@9;fg1D}UbSiEo$+ zdZ@&1o8(qeT)|)R= z*$q0C-k-D$Nr6IZNJF%+0wut;4@QOHNtlbFQe&OzA{BTKsI&6B_@HmSriocVrovco zR$Aj}+yVs;zb<`!!D7vfzI?tcjQY0p4x@O(N&skM3q}D(iqHx~BMgp|j9@|)%p{jC zw7SHKX**)v%BQT!!OHnt;iiUf^Hh$zg7&bIJZM9x3fe4ls<2t zc!v>fA0x>HU9j+vwy#S@0TN5G7@Jz_8&&8Iy5cWD%el_UD5fPX6h6j&XH|0zQ%qrX zXSn)uaJ}1H`mr$T$OE-(H^+IyxQ;)j

Zt0ZU(b2p`^$ab(tsjJ9eb64De58=rvs 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 G+5Z4c_SC%q literal 0 HcmV?d00001 From 81d53ed746575ca1660ced7ae2cbb27cd7e67c08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Pavli=C5=A1in?= Date: Sat, 23 Oct 2021 18:43:33 +0000 Subject: [PATCH 22/43] Update 'pages/students/2016/patrik_pavlisin/dp22/README.md' --- .../2016/patrik_pavlisin/dp22/README.md | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/pages/students/2016/patrik_pavlisin/dp22/README.md b/pages/students/2016/patrik_pavlisin/dp22/README.md index 87b49570..b0f3df30 100644 --- a/pages/students/2016/patrik_pavlisin/dp22/README.md +++ b/pages/students/2016/patrik_pavlisin/dp22/README.md @@ -95,4 +95,23 @@ Vo vrstvách „encoder-decoder attention“ pochádzajú dotazy z predchádzaj Encoder obsahuje vrstvy Self-attention. Vo vrstve self-attention pochádzajú všetky kľúče, hodnoty a dotazy z rovnakého miesta, teda predchádzajúcej vrstvy v encoderu. Každá pozícia v encoderi sa môže venovať všetkým polohám v predchádzajúcej vrstve encodera. -Vrstvy self-attention v decoderi umožňujú každej pozícii v decoderi zúčastniť sa na všetkých polohách v decoderi až do danej polohy. Musí sa zabrániť toku informácii v decoderi, aby sa zachovala autoregresívna vlastnosť (model časových radov, ktorý používa pozorovania z predchádzajúcich časových krokov ako vstup do regresnej rovnice na predpovedanie hodnoty v nasledujúcom časovom kroku). To implementujeme do scaled dot-product attention pomocou maskovania (nastavením na -∞) všetkých hodnôt na vstupe softmax, ktoré zodpovedajú nezákonným spojeniam. \ No newline at end of file +Vrstvy self-attention v decoderi umožňujú každej pozícii v decoderi zúčastniť sa na všetkých polohách v decoderi až do danej polohy. Musí sa zabrániť toku informácii v decoderi, aby sa zachovala autoregresívna vlastnosť (model časových radov, ktorý používa pozorovania z predchádzajúcich časových krokov ako vstup do regresnej rovnice na predpovedanie hodnoty v nasledujúcom časovom kroku). To implementujeme do scaled dot-product attention pomocou maskovania (nastavením na -∞) všetkých hodnôt na vstupe softmax, ktoré zodpovedajú nezákonným spojeniam. + +**R-Transformer** + +|![](https://git.kemt.fei.tuke.sk/KEMT/zpwiki/raw/branch/master/pages/students/2016/patrik_pavlisin/dp22/R-Transformer.png)| +|:--:| +|Obr 5. R-Transformer| + +Navrhovaný transformátor R sa skladá zo stohu rovnakých vrstiev. Každá vrstva má 3 komponenty, ktoré sú usporiadané hierarchicky. Ako je znázornené na obrázku, nižšou úrovňou sú lokálne rekurentné neurónové siete, ktoré sú určené na modelovanie lokálnych štruktúr v sekvencii, stredná úroveň je Multi-head attention, ktorá je schopná zachytiť globálne dlhodobé závislosti a horná úroveň je position-wise feedforward sieť, ktorá vykonáva nelineárnu transformáciu prvkov. + +## Zoznam použitej literatúry + +[1]. VASWANI A., SHAZEER N., PARMAR N., USZKOREIT J., JONES L., GOMEZ N.A., KASIER L., POLUSUKHIN.I.: _Attention Is All You Need._ [online]. [citované 2017]. +[2]. WANG Z., MA Y., LIU Z., TANG J.: _R-Transformer: Recurrent Neural Network Enhanced Transformer._ [online]. [citované 12-07-2019]. +[3]. SRIVASTAVA S.: _Machine Translation (Encoder-Decoder Model)!._ [online]. [citované 31-10-2019]. +[4]. ALAMMAR J.: _The Illustrated Transformer._ [online]. [citované 27-06-2018]. +[5]. _Sequence Modeling with Neural Networks (Part 2): Attention Models_ [online]. [citované 18-04-2016]. +[6]. GIACAGLIA G.: _How Transformers Work._ [online]. [citované 11-03-2019]. +[7]. _Understanding LSMT Networks_ [online]. [citované 27-08-2015]. +[8]. _6 Types of Artifical Neural Networks Currently Being Used in Machine Translation_ [online]. [citované 15-01-201]. \ No newline at end of file From 8c85bda12acba80b74dce3ab4aa813777eb4edf4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Pavli=C5=A1in?= Date: Sat, 23 Oct 2021 18:44:18 +0000 Subject: [PATCH 23/43] Update 'pages/students/2016/patrik_pavlisin/dp22/README.md' --- pages/students/2016/patrik_pavlisin/dp22/README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pages/students/2016/patrik_pavlisin/dp22/README.md b/pages/students/2016/patrik_pavlisin/dp22/README.md index b0f3df30..b0902e1b 100644 --- a/pages/students/2016/patrik_pavlisin/dp22/README.md +++ b/pages/students/2016/patrik_pavlisin/dp22/README.md @@ -108,10 +108,17 @@ Navrhovaný transformátor R sa skladá zo stohu rovnakých vrstiev. Každá vrs ## Zoznam použitej literatúry [1]. VASWANI A., SHAZEER N., PARMAR N., USZKOREIT J., JONES L., GOMEZ N.A., KASIER L., POLUSUKHIN.I.: _Attention Is All You Need._ [online]. [citované 2017]. + [2]. WANG Z., MA Y., LIU Z., TANG J.: _R-Transformer: Recurrent Neural Network Enhanced Transformer._ [online]. [citované 12-07-2019]. + [3]. SRIVASTAVA S.: _Machine Translation (Encoder-Decoder Model)!._ [online]. [citované 31-10-2019]. + [4]. ALAMMAR J.: _The Illustrated Transformer._ [online]. [citované 27-06-2018]. + [5]. _Sequence Modeling with Neural Networks (Part 2): Attention Models_ [online]. [citované 18-04-2016]. + [6]. GIACAGLIA G.: _How Transformers Work._ [online]. [citované 11-03-2019]. + [7]. _Understanding LSMT Networks_ [online]. [citované 27-08-2015]. + [8]. _6 Types of Artifical Neural Networks Currently Being Used in Machine Translation_ [online]. [citované 15-01-201]. \ No newline at end of file From 0d4bb047c6913dc30d92fdb23d5abefd2d341981 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Pavli=C5=A1in?= Date: Sat, 23 Oct 2021 18:44:48 +0000 Subject: [PATCH 24/43] Update 'pages/students/2016/patrik_pavlisin/dp22/README.md' --- pages/students/2016/patrik_pavlisin/dp22/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/students/2016/patrik_pavlisin/dp22/README.md b/pages/students/2016/patrik_pavlisin/dp22/README.md index b0902e1b..f06503cb 100644 --- a/pages/students/2016/patrik_pavlisin/dp22/README.md +++ b/pages/students/2016/patrik_pavlisin/dp22/README.md @@ -121,4 +121,4 @@ Navrhovaný transformátor R sa skladá zo stohu rovnakých vrstiev. Každá vrs [7]. _Understanding LSMT Networks_ [online]. [citované 27-08-2015]. -[8]. _6 Types of Artifical Neural Networks Currently Being Used in Machine Translation_ [online]. [citované 15-01-201]. \ No newline at end of file +[8]. _6 Types of Artifical Neural Networks Currently Being Used in Machine Translation_ [online]. [citované 15-01-2018]. \ No newline at end of file From 19b3be94d4f7379c9c11da75ab887199651ada8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Pavli=C5=A1in?= Date: Sat, 23 Oct 2021 19:02:41 +0000 Subject: [PATCH 25/43] Update 'pages/students/2016/patrik_pavlisin/dp22/README.md' --- .../2016/patrik_pavlisin/dp22/README.md | 27 ++++++++++++------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/pages/students/2016/patrik_pavlisin/dp22/README.md b/pages/students/2016/patrik_pavlisin/dp22/README.md index f06503cb..6b64bb41 100644 --- a/pages/students/2016/patrik_pavlisin/dp22/README.md +++ b/pages/students/2016/patrik_pavlisin/dp22/README.md @@ -1,4 +1,4 @@ -**Attention, The Transformer** +## Attention, The Transformer **Úvod** @@ -10,6 +10,8 @@ Transformer je modelová architektúra, ktorá sa vyhýba opakovaniu a namiesto Najmä Multi-head attention mechanizmus v Transformeri umožňuje, aby bola každá pozícia priamo spojená s akýmikoľvek inými pozíciami v sekvencii. Informácie tak môžu prúdiť cez pozície bez akejkoľvek medzistraty. Napriek tomu existujú dva problémy, ktoré môžu poškodiť účinnosť Multi-head attention pri sekvenčnom učení. Prvý pochádza zo straty sekvenčných informácií o pozíciách, pretože s každou pozíciou zaobchádza rovnako. Na zmiernenie tohto problému Transformer zavádza vkladanie pozícií, ktorých účinky sa však ukázali ako obmedzené. +Na vyriešenie vyššie uvedených obmedzení štandardného Transformera bol navrhnutý nový model sekvenčného učenia R-Transformer. Ide o viacvrstvovú architektúru postavenú na RNN a štandardnom Transformeri, pričom využíva výhody oboch svetov, ale zároveň sa vyhýba ich príslušným nevýhodám. Konkrétnejšie, pred výpočtom globálnych závislostí pozícii pomocou Multi-head attention najskôr spresníme znázornenie každej polohy tak, aby sa sekvenčné a lokálne informácie v jej susedstve mohli v reprezentácii skomprimovať. Aby sa to dosiahlo bola zavedená lokálna rekurentná neurónová sieť, označená ako LocalRNN, na spracovanie signálov v rámci lokálneho okna končiaceho na danej pozícii. LocalRNN navyše pracuje na miestnych oknách všetkých pozícií identicky a nezávisle a pre každú z nich vytvára skrytú reprezentáciu. Okrem toho, keďže sa lokálne okno posúva pozdĺž sekvencie jednu pozíciu za druhou, sú zahrnuté aj globálne sekvenčné informácie. Dôležité najme je, že nakoľko LocalRNN sa používa iba na lokálne okná, vyššie uvedené nevýhody RNN je možné zmierniť. + **Modelová architektúra** Väčšina konkurenčných prenosových modelov neurónovej sekvencie má štruktúru encoder-decoder. V tomto prípade encoder mapuje vstupnú sekvenciu symbolových reprezentácií (x1, ..., xn) na sekvenciu spojitých reprezentácií z = (z1, ..., zn). Vzhľadom na z, decoder potom generuje výstupnú sekvenciu (y1, ..., ym) symbolov jeden po druhom. V každom kroku je model automaticky regresívny a pri generovaní ďalšieho spotrebuje predtým vygenerované symboly ako ďalší vstup. @@ -24,7 +26,7 @@ Funkciu pozornosti je možné opísať ako mapovanie dotazu a sady párov kľú |:--:| |Obr 1. Modelová architektúra Transformer| -**Encoder-Decoder architektúra** +## Encoder-Decoder architektúra Rovnako ako predchádzajúce modely, Transformer používa architektúru encoder-decoder. Encoder-Decoder architektúra je spôsob použitia rekurentných neurónových sietí na problémy s predikciou sekvencie k sekvencii. Pôvodne bol vyvinutý pre problémy so strojovým prekladom, aj keď sa osvedčil pri súvisiacich problémoch s predikciou sekvencie k sekvencii, ako je zhrnutie textu a zodpovedanie otázok. Skladá sa z 3 častí (encoder, intermediate vector a decoder). @@ -46,11 +48,11 @@ Obe vrstvy encodera a decodera majú feed-forward neurónovú sieť (umelá neur **Transformer Encoder** -Encoder sa skladá zo zásobníka _N = 6_ rovnakých vrstiev. Každá vrstva má dve podvrstvy. Prvým je Multi-head Self-attention mechanizmus a druhým je jednoduchá polohovo plne prepojená sieť spätnej väzby. Multi-head attention je modul pre mechanizmy pozornosti, ktorý prechádza mechanizmom pozornosti niekoľkokrát paralelne. Self-attention, tiež známy ako Intra-attention, je mechanizmus pozornosti, ktorý spája rôzne polohy jednej sekvencie s cieľom vypočítať reprezentáciu tej istej sekvencie. Okolo každej z dvoch čiastkových vrstiev sa používa zvyškové spojenie, po ktorom nasleduje normalizácia vrstvy. To znamená, že výstupom každej podvrstvy je _LayerNorm (x + Sublayer (x))_, kde _Sublayer (x)_ je funkcia implementovaná samotnou podvrstvou. Aby sa uľahčili tieto zvyškové spojenia, všetky podvrstvy v modeli, ako aj vkladacie vrstvy, produkujú výstupy dimenzie _dmodel_ = 512. +Encoder sa skladá zo zásobníka _N = 6_ rovnakých vrstiev. Každá vrstva má dve podvrstvy. Prvým je multi-head self-attention mechanizmus a druhým je jednoduchá polohovo plne prepojená sieť spätnej väzby. Multi-head Attention je modul pre mechanizmy pozornosti, ktorý prechádza mechanizmom pozornosti niekoľkokrát paralelne. Self-attention, tiež známy ako Intra-attention, je mechanizmus pozornosti, ktorý spája rôzne polohy jednej sekvencie s cieľom vypočítať reprezentáciu tej istej sekvencie. Okolo každej z dvoch čiastkových vrstiev sa používa zvyškové spojenie, po ktorom nasleduje normalizácia vrstvy. To znamená, že výstupom každej podvrstvy je _LayerNorm (x + Sublayer (x))_, kde _Sublayer (x)_ je funkcia implementovaná samotnou podvrstvou. Aby sa uľahčili tieto zvyškové spojenia, všetky podvrstvy v modeli, ako aj vkladacie vrstvy, produkujú výstupy dimenzie _dmodel_ = 512. **Transformer Decoder** -Decoder je tiež zložený zo zásobníka _N = 6_ rovnakých vrstiev. Okrem dvoch podvrstiev v každej vrstve encodera, decoder vkladá tretiu podvrstvu, ktorá vykonáva Multi-head attention nad výstupom encoder zásobníka. Podobne ako encoder, používa zvyškové spojenia okolo každej z podvrstiev, po ktorých nasleduje normalizácia vrstvy. Toto maskovanie v kombinácii so skutočnosťou, že vloženia výstupov sú posunuté o jednu pozíciu, zaisťuje, že predpovede pre polohu _i_ môžu závisieť iba od známych výstupov v polohách menších ako _i_. +Decoder je tiež zložený zo zásobníka _N = 6_ rovnakých vrstiev. Okrem dvoch podvrstiev v každej vrstve encodera, decoder vkladá tretiu podvrstvu, ktorá vykonáva multi-head attention nad výstupom encoder zásobníka. Podobne ako encoder, používa zvyškové spojenia okolo každej z podvrstiev, po ktorých nasleduje normalizácia vrstvy. Toto maskovanie v kombinácii so skutočnosťou, že vloženia výstupov sú posunuté o jednu pozíciu, zaisťuje, že predpovede pre polohu _i_ môžu závisieť iba od známych výstupov v polohách menších ako _i_. **Scaled Dot-Product Attention** @@ -69,7 +71,7 @@ Dve najčastejšie používané funkcie pozornosti sú additive attention a dot- Zatiaľ čo pri malých hodnotách dk tieto dva mechanizmy fungujú podobne, additive attention prevyšuje pozornosť produktu bez toho, aby sa škálovala pri väčších hodnotách _dk_. Je pravdepodobné, že pri veľkých hodnotách _dk_ sa bodové produkty zväčšujú a tlačia funkciu _softmax_ do oblastí, kde má extrémne malé gradienty (v strojovom učení je gradient derivátom funkcie, ktorá má viac ako jednu vstupnú premennú). Aby sa tomuto efektu zabránilo, škálujeme bodové produkty o 1/$\sqrt{dk}$ -Multi-Head Attention +**Multi-Head Attention** Namiesto toho, aby sme vykonávali funkciu jedinej pozornosti s _dmodel_-dimenzionálnymi kľúčmi, hodnotami a dotazmi, považuje sa za výhodné lineárne premietať dotazy, kľúče a hodnoty _h_-krát s rôznymi, naučenými lineárnymi projekciami do dimenzií _dk_, _dk_ a _dv_. Na každej z týchto predpokladaných verzií dotazov, kľúčov a hodnôt potom paralelne vykonávame funkciu pozornosti, čím sme získali _dv_-dimenzionálne výstupné hodnoty. Tieto sú zreťazené a znova premietnuté, výsledkom sú konečné hodnoty (obrázok 4). @@ -88,16 +90,15 @@ Multi-head attention umožňuje modelu spoločne sa zaoberať informáciami z r V tomto prípade si za _h_ dosadíme 8 paralelných vrstiev pozornosti, alebo „heads“. Pre každý z nich používame _dk_ = _dv_ = _dmodel/h_ = _64_. Vzhľadom na zmenšený rozmer každej hlavy sú celkové výpočtové náklady podobné nákladom na pozornosť single-head s plnou dimenzionalitou (koľko atribútov má množina údajov). - The Transformer využíva Multi-head attention tromi rôznymi spôsobmi: Vo vrstvách „encoder-decoder attention“ pochádzajú dotazy z predchádzajúcej vrstvy decodera a pamäťové kľúče a hodnoty sú z výstupu encodera. To umožňuje každej pozícii v decoderi zúčastniť sa na všetkých pozíciách vo vstupnej sekvencii. -Encoder obsahuje vrstvy Self-attention. Vo vrstve self-attention pochádzajú všetky kľúče, hodnoty a dotazy z rovnakého miesta, teda predchádzajúcej vrstvy v encoderu. Každá pozícia v encoderi sa môže venovať všetkým polohám v predchádzajúcej vrstve encodera. +Encoder obsahuje vrstvy self-attention. Vo vrstve self-attention pochádzajú všetky kľúče, hodnoty a dotazy z rovnakého miesta, teda predchádzajúcej vrstvy v encoderu. Každá pozícia v encoderi sa môže venovať všetkým polohám v predchádzajúcej vrstve encodera. Vrstvy self-attention v decoderi umožňujú každej pozícii v decoderi zúčastniť sa na všetkých polohách v decoderi až do danej polohy. Musí sa zabrániť toku informácii v decoderi, aby sa zachovala autoregresívna vlastnosť (model časových radov, ktorý používa pozorovania z predchádzajúcich časových krokov ako vstup do regresnej rovnice na predpovedanie hodnoty v nasledujúcom časovom kroku). To implementujeme do scaled dot-product attention pomocou maskovania (nastavením na -∞) všetkých hodnôt na vstupe softmax, ktoré zodpovedajú nezákonným spojeniam. -**R-Transformer** +## R-Transformer |![](https://git.kemt.fei.tuke.sk/KEMT/zpwiki/raw/branch/master/pages/students/2016/patrik_pavlisin/dp22/R-Transformer.png)| |:--:| @@ -105,6 +106,14 @@ Vrstvy self-attention v decoderi umožňujú každej pozícii v decoderi zúčas Navrhovaný transformátor R sa skladá zo stohu rovnakých vrstiev. Každá vrstva má 3 komponenty, ktoré sú usporiadané hierarchicky. Ako je znázornené na obrázku, nižšou úrovňou sú lokálne rekurentné neurónové siete, ktoré sú určené na modelovanie lokálnych štruktúr v sekvencii, stredná úroveň je Multi-head attention, ktorá je schopná zachytiť globálne dlhodobé závislosti a horná úroveň je position-wise feedforward sieť, ktorá vykonáva nelineárnu transformáciu prvkov. +**Porovnanie s TCN** + +R-Transformer je čiastočne motivovaný hierarchickou štruktúrou v TCN, v TCN je lokalita v sekvenciách zachytená konvolučnými filtrami. Sekvenčné informácie v rámci každého receptívneho poľa sú však pri konvolučných operáciách ignorované. Na rozdiel od toho, štruktúra LocalRNN v R-Transformer ju môže plne začleniť vďaka sekvenčnej povahe RNN. Pre modelovanie globálnych dlhodobých závislostí to TCN dosahuje pomocou rozšírených konvolúcií, ktoré fungujú na nenásledných pozíciách. Aj keď táto operácia vedie k väčším receptívnym poliam v nižších vrstvách, chýba značné množstvo informácií z veľkej časti pozícií v každej vrstve. + +**Porovnanie s Transformerom** + +R-Transformer a štandardný Transformer majú podobnú kapacitu dlhodobého zapamätania vďaka Multi-head attention mechanizmu. Dve dôležité vlastnosti však odlišujú R-Transformer od štandardného Transformera. Po prvé, R-Transformer explicitne a efektívne zachytáva lokalitu v sekvenciách s novou štruktúrou LocalRNN, zatiaľ čo štandardný Transformer ju modeluje veľmi nepresne pomocou Multi-head attention, ktorá pôsobí na všetkých pozíciách. Po druhé, R-Transformer sa nespolieha na žiadne vloženie polohy ako Transformer. V skutočnosti sú výhody jednoduchého polohového zabudovania veľmi obmedzené a vyžaduje značné úsilie na navrhnutie efektívnych polohových zabudovaní, ako aj správnych spôsobov ich začlenenia. + ## Zoznam použitej literatúry [1]. VASWANI A., SHAZEER N., PARMAR N., USZKOREIT J., JONES L., GOMEZ N.A., KASIER L., POLUSUKHIN.I.: _Attention Is All You Need._ [online]. [citované 2017]. @@ -121,4 +130,4 @@ Navrhovaný transformátor R sa skladá zo stohu rovnakých vrstiev. Každá vrs [7]. _Understanding LSMT Networks_ [online]. [citované 27-08-2015]. -[8]. _6 Types of Artifical Neural Networks Currently Being Used in Machine Translation_ [online]. [citované 15-01-2018]. \ No newline at end of file +[8]. _6 Types of Artifical Neural Networks Currently Being Used in Machine Translation_ [online]. [citované 15-01-201]. From 074d1b438b072063916cff1c809d95e1fcae11de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Pavli=C5=A1in?= Date: Sat, 23 Oct 2021 21:10:00 +0000 Subject: [PATCH 26/43] Update 'pages/students/2016/patrik_pavlisin/dp22/README.md' --- pages/students/2016/patrik_pavlisin/dp22/README.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/pages/students/2016/patrik_pavlisin/dp22/README.md b/pages/students/2016/patrik_pavlisin/dp22/README.md index 6b64bb41..56ba701d 100644 --- a/pages/students/2016/patrik_pavlisin/dp22/README.md +++ b/pages/students/2016/patrik_pavlisin/dp22/README.md @@ -15,11 +15,6 @@ Na vyriešenie vyššie uvedených obmedzení štandardného Transformera bol na **Modelová architektúra** Väčšina konkurenčných prenosových modelov neurónovej sekvencie má štruktúru encoder-decoder. V tomto prípade encoder mapuje vstupnú sekvenciu symbolových reprezentácií (x1, ..., xn) na sekvenciu spojitých reprezentácií z = (z1, ..., zn). Vzhľadom na z, decoder potom generuje výstupnú sekvenciu (y1, ..., ym) symbolov jeden po druhom. V každom kroku je model automaticky regresívny a pri generovaní ďalšieho spotrebuje predtým vygenerované symboly ako ďalší vstup. - -**Pozornosť** - -Funkciu pozornosti je možné opísať ako mapovanie dotazu a sady párov kľúčov a hodnôt na výstup, kde dotaz, kľúče, hodnoty a výstup sú všetko vektory. Výstup sa vypočíta ako vážený súčet hodnôt, pričom hmotnosť priradená každej hodnote sa vypočíta pomocou funkcie kompatibility dotazu so zodpovedajúcim kľúčom. - |![](https://git.kemt.fei.tuke.sk/KEMT/zpwiki/raw/branch/master/pages/students/2016/patrik_pavlisin/dp22/Modelov%c3%a1%20architekt%c3%bara%20Transformer.png)| From 5cca0928421279a8f0f39ced54b03161cd329222 Mon Sep 17 00:00:00 2001 From: dano Date: Mon, 25 Oct 2021 12:47:30 +0000 Subject: [PATCH 27/43] Update 'pages/students/2019/samuel_horani/README.md' --- pages/students/2019/samuel_horani/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/students/2019/samuel_horani/README.md b/pages/students/2019/samuel_horani/README.md index a003ec12..8939977a 100644 --- a/pages/students/2019/samuel_horani/README.md +++ b/pages/students/2019/samuel_horani/README.md @@ -26,8 +26,8 @@ Nápady na balakársku prácu: Výsledky: -- https://git.kemt.fei.tuke.sk/sh662er/rasa-flask-website -- https://git.kemt.fei.tuke.sk/sh662er/Rasa +- [Repozitár s webovou aplikáciou](https://git.kemt.fei.tuke.sk/sh662er/rasa-flask-website) +- [Repozitár s chatbotom](https://git.kemt.fei.tuke.sk/sh662er/Rasa) ## Bakalársky projekt 2021 From 37ddc70929cbfe5ee106d2142b55b03cab646cec Mon Sep 17 00:00:00 2001 From: dano Date: Tue, 26 Oct 2021 07:23:57 +0000 Subject: [PATCH 28/43] Update 'pages/students/2016/maros_harahus/README.md' --- pages/students/2016/maros_harahus/README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pages/students/2016/maros_harahus/README.md b/pages/students/2016/maros_harahus/README.md index e7e8e339..b822590f 100644 --- a/pages/students/2016/maros_harahus/README.md +++ b/pages/students/2016/maros_harahus/README.md @@ -17,6 +17,16 @@ Generovanie vektorových reprezentácií štruktúrovaných dát. - Grafové neurónové siete +Stretnutie 26.11.2021 + +Dáta z US Steel: + +- Najprv sa do vysokej pece nasypú suroviny. +- Z tavby sa postupne odoberajú vzorky a meria sa množstvo jednotlivých vzoriek. +- Na konci tavby sa robí finálna analýza taveniny. +- Cieľom je predpovedať výsledky anaýzy finálnej tavby na základe predošlých vzoriek. +- Cieľom je predpovedať výsledky nasledujúceho odberu na základe predchádzajúcich? + Stretnutie 1.10. Stav: From ecad4bf4625718b445073062d18dbfcd0292e21a Mon Sep 17 00:00:00 2001 From: dano Date: Tue, 26 Oct 2021 07:26:08 +0000 Subject: [PATCH 29/43] Update 'pages/students/2016/maros_harahus/README.md' --- pages/students/2016/maros_harahus/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/pages/students/2016/maros_harahus/README.md b/pages/students/2016/maros_harahus/README.md index b822590f..f2713f9d 100644 --- a/pages/students/2016/maros_harahus/README.md +++ b/pages/students/2016/maros_harahus/README.md @@ -24,6 +24,7 @@ Dáta z US Steel: - Najprv sa do vysokej pece nasypú suroviny. - Z tavby sa postupne odoberajú vzorky a meria sa množstvo jednotlivých vzoriek. - Na konci tavby sa robí finálna analýza taveniny. +- Priebeh procesu závisí od vlastností konkrétnej pece. Sú vlastnosti pece stacionárne? Je možné , že vlastnosti pece sa v čase menia. - Cieľom je predpovedať výsledky anaýzy finálnej tavby na základe predošlých vzoriek. - Cieľom je predpovedať výsledky nasledujúceho odberu na základe predchádzajúcich? From c71112f500fbc13e926511db46a6b1ab3e7decf5 Mon Sep 17 00:00:00 2001 From: dano Date: Tue, 26 Oct 2021 07:32:53 +0000 Subject: [PATCH 30/43] Update 'pages/students/2016/maros_harahus/README.md' --- pages/students/2016/maros_harahus/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pages/students/2016/maros_harahus/README.md b/pages/students/2016/maros_harahus/README.md index f2713f9d..0bfce8d4 100644 --- a/pages/students/2016/maros_harahus/README.md +++ b/pages/students/2016/maros_harahus/README.md @@ -27,6 +27,8 @@ Dáta z US Steel: - Priebeh procesu závisí od vlastností konkrétnej pece. Sú vlastnosti pece stacionárne? Je možné , že vlastnosti pece sa v čase menia. - Cieľom je predpovedať výsledky anaýzy finálnej tavby na základe predošlých vzoriek. - Cieľom je predpovedať výsledky nasledujúceho odberu na základe predchádzajúcich? +- Čo znamená "dobrá tavba"? +- Čo znamená "dobrá predpoveď výsledkov"? Stretnutie 1.10. From 89bdfcbea79a42550a9f48f5334923b232499114 Mon Sep 17 00:00:00 2001 From: dano Date: Tue, 26 Oct 2021 07:48:27 +0000 Subject: [PATCH 31/43] Update 'pages/students/2016/maros_harahus/README.md' --- pages/students/2016/maros_harahus/README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pages/students/2016/maros_harahus/README.md b/pages/students/2016/maros_harahus/README.md index 0bfce8d4..475e18f4 100644 --- a/pages/students/2016/maros_harahus/README.md +++ b/pages/students/2016/maros_harahus/README.md @@ -30,6 +30,16 @@ Dáta z US Steel: - Čo znamená "dobrá tavba"? - Čo znamená "dobrá predpoveď výsledkov"? +Zásobník úloh: + +- Formulovať problém ako "predikcia časových radov" - sequence prediction. +- Prezrieť literatúru a zistiť najnovšie metódy na predikciu. +- Navrhnúť metódu konverzie dát na vektor príznakov. Sú potrebné binárne vektory? +- Navrhnúť metódu výpočtu chybovej funkcie - asi euklidovská vzdialenosť medzi výsledkov a očakávaním. +- Vyskúšať navrhnúť rekurentnú neurónovú sieť - RNN, GRU, LSTM. +- Nápad: Transformer network, Generative Adversarial Network. +- Nápad: Vyskúšať klasické štatistické modely + Stretnutie 1.10. Stav: From d023d4d16afd217e1130d66d828c810f9ca183d6 Mon Sep 17 00:00:00 2001 From: dano Date: Tue, 26 Oct 2021 07:49:57 +0000 Subject: [PATCH 32/43] Update 'pages/students/2016/maros_harahus/README.md' --- pages/students/2016/maros_harahus/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/students/2016/maros_harahus/README.md b/pages/students/2016/maros_harahus/README.md index 475e18f4..74986737 100644 --- a/pages/students/2016/maros_harahus/README.md +++ b/pages/students/2016/maros_harahus/README.md @@ -38,7 +38,7 @@ Zásobník úloh: - Navrhnúť metódu výpočtu chybovej funkcie - asi euklidovská vzdialenosť medzi výsledkov a očakávaním. - Vyskúšať navrhnúť rekurentnú neurónovú sieť - RNN, GRU, LSTM. - Nápad: Transformer network, Generative Adversarial Network. -- Nápad: Vyskúšať klasické štatistické modely +- Nápad: Vyskúšať klasické štatistické modely (scikit-learn) - napr. aproximácia polynómom, alebo SVM. Stretnutie 1.10. From 1d6350abadacb4e5ac2c92baa58e95c833a97642 Mon Sep 17 00:00:00 2001 From: dano Date: Tue, 26 Oct 2021 08:15:05 +0000 Subject: [PATCH 33/43] Update 'pages/students/2016/maros_harahus/README.md' --- pages/students/2016/maros_harahus/README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pages/students/2016/maros_harahus/README.md b/pages/students/2016/maros_harahus/README.md index 74986737..7c8ab036 100644 --- a/pages/students/2016/maros_harahus/README.md +++ b/pages/students/2016/maros_harahus/README.md @@ -29,10 +29,12 @@ Dáta z US Steel: - Cieľom je predpovedať výsledky nasledujúceho odberu na základe predchádzajúcich? - Čo znamená "dobrá tavba"? - Čo znamená "dobrá predpoveď výsledkov"? +- Je dôležitý čas odbery vzorky? Zásobník úloh: - Formulovať problém ako "predikcia časových radov" - sequence prediction. +- Nápad: The analysis of time series : an introduction / Chris Chatfield. 5th ed. Boca Raton : Chapman and Hall, 1996. xii, 283 s. (Chapman & Hall texts in statistical science series). - ISBN 0-412-71640-2 (brož.). - Prezrieť literatúru a zistiť najnovšie metódy na predikciu. - Navrhnúť metódu konverzie dát na vektor príznakov. Sú potrebné binárne vektory? - Navrhnúť metódu výpočtu chybovej funkcie - asi euklidovská vzdialenosť medzi výsledkov a očakávaním. @@ -40,6 +42,7 @@ Zásobník úloh: - Nápad: Transformer network, Generative Adversarial Network. - Nápad: Vyskúšať klasické štatistické modely (scikit-learn) - napr. aproximácia polynómom, alebo SVM. + Stretnutie 1.10. Stav: From 569efca5f191e405019634ca772f6b015c8d99a5 Mon Sep 17 00:00:00 2001 From: dano Date: Wed, 27 Oct 2021 11:52:53 +0000 Subject: [PATCH 34/43] Update 'pages/students/2019/dmytro_mural/README.md' --- pages/students/2019/dmytro_mural/README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/pages/students/2019/dmytro_mural/README.md b/pages/students/2019/dmytro_mural/README.md index 39252341..c673b8bd 100644 --- a/pages/students/2019/dmytro_mural/README.md +++ b/pages/students/2019/dmytro_mural/README.md @@ -10,11 +10,25 @@ Rok začiatku štúdia: 2019 # Bakalárska práca 2022 +Grafové neurónové siete pre vyhľadávanie na internete. + +https://arxiv.org/abs/1810.05997 + + Návrh na zadanie: +1. Vysvetlite čo je to grafová neurónová sieť +2. Vypracujte prehľad najnovších druhov grafových neurónovýsh sietí. +3. Vyberte jednu metódu grafových neurónových sietí a navrhnite spôsob experimentálneho ohodnotenia sady prepojených článkov pomocou grafovej neurónovej siete. +4. Vyhodnnoťte experimenty a navrhnite zlepšenia Vášho prístupu. + Cieľ práce: +Zlpešite metódy ohodnotenia prepojených ddkumentov na internete . + + + ## Bakalársky projekt 2021 From 7745acb46e72ba5d95fdac18fbd85a4a21de317a Mon Sep 17 00:00:00 2001 From: dano Date: Thu, 28 Oct 2021 08:10:03 +0000 Subject: [PATCH 35/43] Update 'pages/students/2016/patrik_pavlisin/README.md' --- pages/students/2016/patrik_pavlisin/README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/pages/students/2016/patrik_pavlisin/README.md b/pages/students/2016/patrik_pavlisin/README.md index 8aea577f..5a3f63d6 100644 --- a/pages/students/2016/patrik_pavlisin/README.md +++ b/pages/students/2016/patrik_pavlisin/README.md @@ -38,6 +38,21 @@ Zásobník úloh: - natrénovať aj iné preklady (z a do češtiny). +28.10. + +Stav: + +- Vypracovaný draft článoku o transformeroch, treba vylepšiť. Článok je na ZP Wiki +- Problém pri príprave trénovacích dát. + +Úlohy: + +- Naučte sa pripravovať textové dáta. Prejdite si knihu https://diveintopython3.net aspoň do 4 kapitoly. Vypracujte všetky príklady z nej. +- Pokračujte v práci na článku. Treba doplniť odkazy do textu. Treba zlepšiť štruktúru a logickú náväznosť viet. Vyslvetlite neznáme pojmy. +- Zmente článok na draft diplomovej práce. Vypracujte osnovu diplomovej práce - napíšte názvy kapitol a ich obsah. Zaraďte tam text o transformeroch ktorý ste vypracovali. +- Pripravte textové dáta do vhodnej podoby a spustite trénovanie. + + Stretnutie 30.9. Stav: From dc394917dd63b029e6b0d3932a31ab12100983ef Mon Sep 17 00:00:00 2001 From: dano Date: Thu, 28 Oct 2021 09:14:29 +0000 Subject: [PATCH 36/43] Update 'pages/students/2019/alina_vitko/README.md' --- pages/students/2019/alina_vitko/README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/pages/students/2019/alina_vitko/README.md b/pages/students/2019/alina_vitko/README.md index a9e2ac09..2a45b0f2 100644 --- a/pages/students/2019/alina_vitko/README.md +++ b/pages/students/2019/alina_vitko/README.md @@ -22,6 +22,19 @@ Automatické odpovede z Wikipédie Vytovrenie prehľadu existujúcich systémov QA. +Stretnutie 28.10.2021 + +Stav: + +Vypracovaný prehľad viacerých systémov QA a viacerých datasetov na QA. + +Úlohy: + +- Doplňte odkazy na zdroje, aj do textu. +- Doplňte teoretický úvod do QA. +- Doplnte metodiku vyhodnotenia QA, napr. F1-precision-recall. +- Vyberte jeden systém QA, skúste ho nainštalovať a vyskúšať tak ako je. + Stretnutie 15.10.2021 Stav: From ace77db192b0b5ee1f6a6967c2bde0d30dc142b7 Mon Sep 17 00:00:00 2001 From: dano Date: Thu, 28 Oct 2021 09:16:09 +0000 Subject: [PATCH 37/43] Update 'pages/students/2019/alina_vitko/README.md' --- pages/students/2019/alina_vitko/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/pages/students/2019/alina_vitko/README.md b/pages/students/2019/alina_vitko/README.md index 2a45b0f2..dec09931 100644 --- a/pages/students/2019/alina_vitko/README.md +++ b/pages/students/2019/alina_vitko/README.md @@ -18,6 +18,7 @@ Automatické odpovede z Wikipédie 3. Nainštalujte a vyskúšajte jeden alebo viac existujúcich systémom pre generovanie odpovede na otázku v prirodzenom jazyku. 4. Na základe vykonaného prieskumu navrhnite systém pre generovanie odpovede na otázku v slovenskom jazyku. + ## Bakalársky projekt 2021 Vytovrenie prehľadu existujúcich systémov QA. From c6a5a520034ff4041312f6a7302f48ae89aa26f3 Mon Sep 17 00:00:00 2001 From: dano Date: Thu, 28 Oct 2021 09:17:07 +0000 Subject: [PATCH 38/43] Update 'pages/students/2019/alina_vitko/README.md' --- pages/students/2019/alina_vitko/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/pages/students/2019/alina_vitko/README.md b/pages/students/2019/alina_vitko/README.md index dec09931..bb71b8ea 100644 --- a/pages/students/2019/alina_vitko/README.md +++ b/pages/students/2019/alina_vitko/README.md @@ -33,6 +33,7 @@ Vypracovaný prehľad viacerých systémov QA a viacerých datasetov na QA. - Doplňte odkazy na zdroje, aj do textu. - Doplňte teoretický úvod do QA. +- Dopíšte informácie o datasetoch SQUAD -1.0 a 2.0. a MRQA. - Doplnte metodiku vyhodnotenia QA, napr. F1-precision-recall. - Vyberte jeden systém QA, skúste ho nainštalovať a vyskúšať tak ako je. From fc54dc1595ce36385b3b6b5da096dd2c5799664f Mon Sep 17 00:00:00 2001 From: dano Date: Thu, 28 Oct 2021 09:19:55 +0000 Subject: [PATCH 39/43] Update 'pages/students/2019/alina_vitko/README.md' --- pages/students/2019/alina_vitko/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/students/2019/alina_vitko/README.md b/pages/students/2019/alina_vitko/README.md index bb71b8ea..a4521a8b 100644 --- a/pages/students/2019/alina_vitko/README.md +++ b/pages/students/2019/alina_vitko/README.md @@ -33,7 +33,7 @@ Vypracovaný prehľad viacerých systémov QA a viacerých datasetov na QA. - Doplňte odkazy na zdroje, aj do textu. - Doplňte teoretický úvod do QA. -- Dopíšte informácie o datasetoch SQUAD -1.0 a 2.0. a MRQA. +- Dopíšte informácie o datasetoch SQUAD -1.0 a 2.0. a [MRQA](https://mrqa.github.io/2019/shared). - Doplnte metodiku vyhodnotenia QA, napr. F1-precision-recall. - Vyberte jeden systém QA, skúste ho nainštalovať a vyskúšať tak ako je. From acdefd6a860f54e83892866406a177b0d95405c8 Mon Sep 17 00:00:00 2001 From: dano Date: Thu, 28 Oct 2021 09:22:55 +0000 Subject: [PATCH 40/43] Update 'pages/students/2019/alina_vitko/README.md' --- pages/students/2019/alina_vitko/README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pages/students/2019/alina_vitko/README.md b/pages/students/2019/alina_vitko/README.md index a4521a8b..d5ba609c 100644 --- a/pages/students/2019/alina_vitko/README.md +++ b/pages/students/2019/alina_vitko/README.md @@ -37,6 +37,11 @@ Vypracovaný prehľad viacerých systémov QA a viacerých datasetov na QA. - Doplnte metodiku vyhodnotenia QA, napr. F1-precision-recall. - Vyberte jeden systém QA, skúste ho nainštalovať a vyskúšať tak ako je. +Zásobník úloh: + +- Nainštalujte si najprv balíček Anaconda. +- Prejdite si knihu https://diveintopython3.net/ + Stretnutie 15.10.2021 Stav: From d4bc0e46bc567d0f308b36ef9ede51f18d118954 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Pavli=C5=A1in?= Date: Tue, 2 Nov 2021 15:41:35 +0000 Subject: [PATCH 41/43] Update 'pages/students/2016/patrik_pavlisin/dp21/README.md' --- .../2016/patrik_pavlisin/dp21/README.md | 69 ------------------- 1 file changed, 69 deletions(-) diff --git a/pages/students/2016/patrik_pavlisin/dp21/README.md b/pages/students/2016/patrik_pavlisin/dp21/README.md index 167731c1..0f9e1869 100644 --- a/pages/students/2016/patrik_pavlisin/dp21/README.md +++ b/pages/students/2016/patrik_pavlisin/dp21/README.md @@ -66,7 +66,6 @@ Neurónový strojový preklad (angl. NMT - neural machine translation) používa Spoločnosť Google preto predstavila GNMT (google´s neural machine translation) systém , ktorý sa pokúša vyriešiť mnohé z týchto problémov. Tento model sa skladá z hlbokej siete Long Short-Term Memory (LSTM) s 8 kódovacími a 8 dekódovacími vrstvami, ktoré využívajú zvyškové spojenia, ako aj pozorovacie spojenia zo siete dekodéra ku kódovaciemu zariadeniu. Aby sa zlepšila paralelnosť a tým pádom skrátil čas potrebný na trénovanie, tento mechanizmus pozornosti spája spodnú vrstvu dekodéra s hornou vrstvou kódovacieho zariadenia. Na urýchlenie konečnej rýchlosti prekladu používame pri odvodzovacích výpočtoch aritmetiku s nízkou presnosťou. Aby sa vylepšila práca so zriedkavými slovami, slová sa delia na vstup aj výstup na obmedzenú množinu bežných podslovných jednotiek („wordpieces“). Táto metóda poskytuje dobrú rovnováhu medzi flexibilitou modelov oddelených znakom a účinnosťou modelov oddelených slovom, prirodzene zvláda preklady zriedkavých slov a v konečnom dôsledku zvyšuje celkovú presnosť systému. -<<<<<<< HEAD Tento prístup je založený výlučne na dátach a je zaručené, že pre každú možnú postupnosť znakov vygeneruje deterministickú segmentáciu. Je to podobné ako metóda použitá pri riešení zriedkavých slov v strojovom preklade neurónov. Na spracovanie ľubovoľných slov najskôr rozdelíme slová na slovné druhy, ktoré sú dané trénovaným modelom slovných spojení. Pred cvičením modelu sú pridané špeciálne symboly hraníc slov, aby bolo možné pôvodnú sekvenciu slov získať zo sekvencie slovného slova bez nejasností. V čase dekódovania model najskôr vytvorí sekvenciu slovných spojení, ktorá sa potom prevedie na zodpovedajúcu sekvenc ![](https://git.kemt.fei.tuke.sk/KEMT/zpwiki/raw/branch/master/pages/students/2016/patrik_pavlisin/tp20/Bez%20n%c3%a1zvu.png)| @@ -88,7 +87,6 @@ Tento prístup je založený výlučne na dátach a je zaručené, že pre každ |![one](https://git.kemt.fei.tuke.sk/KEMT/zpwiki/raw/branch/master/pages/students/2016/patrik_pavlisin/tp20/Bez%20n%c3%a1zvu.png)| ->>>>>>> origin |:--:| |Obr 4. Príklad postupnosti slov a príslušná postupnosť slovných spojení| @@ -177,70 +175,3 @@ Výsledkom je model, ktorý môžeme použiť na predpovedanie nových údajov. [3]. ŠÍMA J., NERUDA R.: Teoretické otázky neurónových sítí [online]. [1996]. -<<<<<<< HEAD -V preklade má často zmysel kopírovať zriedkavé názvy entít alebo čísla priamo zo zdroja do cieľa. Na uľahčenie tohto typu priameho kopírovania vždy používame wordpiece model pre zdrojový aj cieľový jazyk. Použitím tohto prístupu je zaručené, že rovnaký reťazec vo zdrojovej a cieľovej vete bude segmentovaný presne rovnakým spôsobom, čo uľahčí systému naučiť sa kopírovať tieto tokeny. Wordpieces dosahujú rovnováhu medzi flexibilitou znakov a efektívnosťou slov. Zistili sme tiež, že naše modely dosahujú lepšie celkové skóre BLEU pri používaní wordpieces - pravdepodobne kvôli tomu, že naše modely teraz efektívne pracujú v podstate s nekonečnou slovnou zásobou bez toho, aby sa uchýlili iba k znakom. -**Neurónová sieť** - -Neurónovú sieť tvoria neuróny, ktoré sú medzi sebou poprepájané. Obecne môžeme neuróny poprepájať medzi ľubovoľným počtom neurónov, pričom okrem pôvodných vstupov môžu byť za vstupy brané aj výstupy iných neurónov. Počet neurónov a ich vzájomné poprepájanie v sieti určuje tzv. architektúru (topológiu) neurónovej siete. Neurónová sieť sa v čase vyvíja, preto je potrebné celkovú dynamiku neurónovej siete rozdeliť do troch dynamík a potom uvažovať tri režimy práce siete: organizačná (zmena topológie), aktívna (zmena stavu) a adaptívna (zmena konfigurácie). Jednotlivé dynamiky neurónovej siete sú obvykle zadané počiatočným stavom a matematickou rovnicou, resp. pravidlom, ktoré určuje vývoj príslušnej charakteristiky sieti v čase. - -Synaptické váhy patria medzi dôležité časti Neurónovej siete. Tieto váhy ovplyvňujú celú sieť tým, že ovplyvňujú vstupy do neurónov a tým aj ich stavy. Synaptické váhy medzi neurónmi _i, j_ označujeme _w__i,j_. Najdôležitejším momentom pri činnosti Neurónovej siete je práve zmena váh delta _w__i,j_. Vo všeobecnosti ich rozdeľujeme na kladné (excitačné) a záporné (inhibičné). - -Neurón je základným prvkom Neurónovej siete. Rozdiel medzi umelým a ľudským je v tom, že v súčasnosti je možné vytvoriť oveľa rýchlejší neurón, ako ľudský. Avšak čo sa týka počtu neurónov, ľudský mozog sa skladá z 10 na 11 až 10 na 14 neurónov a každý neurón má 10 na 3 až 10 na 4 neurónových spojení. V súčasnej dobe nie je možné nasimulovať v rámci jednej Neurónovej siete také množstvo neurónov. V tomto ohľade je ľudský mozog podstatne silnejší oproti nasimulovanej Neurónovej siete. [3] - -|![](https://git.kemt.fei.tuke.sk/KEMT/zpwiki/raw/branch/master/pages/students/2016/patrik_pavlisin/tp20/neuronova%20siet.png)| -|:--:| -|Obr 2. základné zobrazenie Neurónovej siete| - - -Činnosť Neurónových sieti rozdeľujeme na : - -- Fáza učenia – v tejto fáze sa znalosti ukladajú do synaptických váh neurónovej siete, ktoré sa menia podľa stanovených pravidiel počas procesu učenia. V prípade neurónových sieti môžeme pojem učenie chápať ako adaptáciu neurónových sieti, teda zbieranie a uchovávanie poznatkov. - -- Fáza života – dochádza ku kontrole a využitiu nadobudnutých poznatkov na riešenie určitého problému (napr. transformáciu signálov, problémy riadenia procesov, aproximáciu funkcií, klasifikácia do tried a podobne). V tejto fáze sa už nemenia synaptické váhy. - -Neurónová sieť by vo všeobecnosti mala mať pravidelnú štruktúru pre ľahší popis a analýzu. Viacvrstvová štruktúra patrí k pomerne dobre preskúmaným štruktúram Neurónovej siete a skladá sa z : - -- Vstupná vrstva (Input layer) – na vstup prichádzajú len vzorky z vonkajšieho sveta a výstupy posiela k ďalším neurónom - -- Skrytá vrstva (Hidden layer) – vstupom sú neuróny z ostatných neurónov z vonkajšieho sveta (pomocou prahového prepojenia) a výstupy posiela opäť ďalším neurónom - -- Výstupná vrstva (Output layer) – prijíma vstupy z iných neurónov a výstupy posiela do vonkajšieho prostredia - -Reprezentatívna vzorka je jedným zo základných pojmov Neurónových sieti. Jedná sa o usporiadanú množinu usporiadaných dvojíc, pričom ku každému vstupu je priradený vyhovujúci výstup. Poznáme dva typy reprezentatívnych vzoriek : - -- Trénovaciu vzorku – využíva sa pri fáze učenia (pri tejto vzorke je dôležité vybrať tú najvhodnejšiu a najkvalitnejšiu, pretože získané poznatky sa ukladajú učením do synaptických váh neurónovej siete) - -- Testovacia vzorka – používa sa vo fáze života - - - -Topológiu Neurónových sieti rozdeľujeme na : - -- Dopredné Neurónové siete (feed-forward neural network), ktoré sa ďalej delia na kontrolované a nekontrolované učenie, v tejto topológií je signál šírený iba jedným smerom. - - -|![](https://git.kemt.fei.tuke.sk/KEMT/zpwiki/raw/branch/master/pages/students/2016/patrik_pavlisin/tp20/dopredn%c3%bd%20nn.png)| -|:--:| -|Obr 3. Dopredná Neurónová sieť| - - -- Rekurentné Neurónové siete (recurrent neural network), ktoré sa ďalej delia na kontrolované a nekontrolované učenie, signál sa šíry obojsmerne (neuróny sa môžu správať ako vstupné aj výstupné). [3] - - - -|![](https://git.kemt.fei.tuke.sk/KEMT/zpwiki/raw/branch/master/pages/students/2016/patrik_pavlisin/tp20/recurrent%20neural%20network.png)| -|:--:| -|Obr 3. Rekurentná Neurónová sieť| - -**Neurónový preklad** - -Neurónový strojový preklad vo všeobecnosti zahŕňa všetky typy strojového prekladu, kde sa na predpovedanie sekvencie čísel používa umelá neurónová sieť. V prípade prekladu je každé slovo vo vstupnej vete zakódované na číslo, ktoré neurónová sieť prepošle do výslednej postupnosti čísel predstavujúcich preloženú cieľovú vetu. Prekladový model následne funguje prostredníctvom zložitého matematického vzorca(reprezentovaného ako neurónová sieť). Tento vzorec prijíma reťazec čísel ako vstupy a výstupy výsledného reťazca čísel. Parametre tejto neurónovej siete sú vytvárané a vylepšované trénovaním siete s miliónmi vetných párov. Každý takýto pár viet tak mierne upravuje a vylepšuje neurónovú sieť, keď prechádza každým vetným párom pomocou algoritmu nazývaným spätné šírenie. [3] - -[1]. WU Y., SCHUSTER M., CHEN Z., LE V. Q., NOROUZI M.: _Google’s Neural Machine Translation System: Bridging the Gapbetween Human and Machine Translation._ [online]. [citované 08-09-2016]. - -[2]. PYKES K.: _The Vanishing/Exploding Gradient Problem in Deep Neural Networks._ [online]. [citované 17-05-2020]. - -[3]. ŠÍMA J., NERUDA R.: Teoretické otázky neurónových sítí [online]. [1996]. -======= -[4]. ZHANG A., LIPTON C. Z., LI M., SMOLA J. A.: Dive into Deep Learning. [online]. [citované 06-11-2020]. ->>>>>>> origin From 4e11da80ac692570194ff23d9d18e79c8ada3e51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Pavli=C5=A1in?= Date: Thu, 4 Nov 2021 10:43:04 +0000 Subject: [PATCH 42/43] Update 'pages/students/2016/patrik_pavlisin/dp22/README.md' --- pages/students/2016/patrik_pavlisin/dp22/README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pages/students/2016/patrik_pavlisin/dp22/README.md b/pages/students/2016/patrik_pavlisin/dp22/README.md index 56ba701d..3907fe0d 100644 --- a/pages/students/2016/patrik_pavlisin/dp22/README.md +++ b/pages/students/2016/patrik_pavlisin/dp22/README.md @@ -2,16 +2,16 @@ **Úvod** -Rekurentné neurónové siete, najmä long short-term pamäť (LSMT, špeciálny druh RNN, vytvorený na riešenie problémov s miznúcim gradientom) a uzavreté rekurentné neurónové siete, boli pevne zavedené ako najmodernejšie prístupy k problémom sekvenčného modelovania a prenosov, ako je jazykové modelovanie a strojový preklad. Početné snahy odvtedy pokračujú v posúvaní hraníc rekurentných jazykových modelov a architektúr encoder-decoder. Sieťové pamäte typu end-to-end sú založené na RNN (Recurrent Neural Network) mechanizme namiesto opakovania zarovnaného podľa sekvencie a ukázalo sa, že fungujú dobre pri úlohách zodpovedajúcich otázky v jednoduchom jazyku a pri modelovaní jazykov. End-to-end učenie je typ Deep Learningu, v ktorom sú všetky parametre trénované spoločne, a nie krok za krokom. - -RNN boli dlhodobo dominantnou voľbou pre sekvenčné modelovanie, závažne však trpia najme dvoma problémami. Po prvé, ľahko trpí problémami s miznutím a explodovaním gradientu, čo do značnej miery obmedzuje schopnosť naučiť sa veľmi dlhodobé závislosti. Po druhé, sekvenčná povaha prechodov dopredu aj dozadu veľmi sťažuje, ak nie priam znemožňuje, paralelizáciu výpočtu, čo dramaticky zvyšuje časovú zložitosť v tréningovom aj testovacom postupe. Preto mnohé nedávno vyvinuté modely sekvenčného učenia úplne vypustili rekurentnú štruktúru a spoliehajú sa iba na konvolučnú (Convolution Neural Network) alebo mechanizmus pozornosti, ktoré sa dajú ľahko paralelizovať a umožňujú tok informácií v ľubovoľnej dĺžke. Dva reprezentatívne modely, ktoré pritiahli veľkú pozornosť, sú Temporal Convolution Networks (TCN) a Transformer. V rôznych úlohách sekvenčného učenia preukázali porovnateľný alebo dokonca lepší výkon ako výkonnosť RNN. - -Transformer je modelová architektúra, ktorá sa vyhýba opakovaniu a namiesto toho sa úplne spolieha na mechanizmus pozornosti na kreslenie globálnych závislostí medzi vstupom a výstupom. Je to prvý transdukčný model, ktorý sa spolieha úplne na vlastnú pozornosť pri výpočte reprezentácii vstupu a výstupu bez použitia RNN (Recurrent Neural Network) alebo CNN (Convolution Neural Network). Používa sa predovšetkým v oblasti NLP (Natural Language Processing) a CV (Computer Vision). Mechanizmy pozornosti sa stali súčasťou presvedčivého modelovania sekvencií a prenosových modelov v rôznych úlohách, ktoré umožňujú modelovanie závislostí bez ohľadu na ich vzdialenosť vo vstupných alebo výstupných sekvenciách. Takmer vo všetkých prípadoch sa však takéto mechanizmy pozornosti používajú v spojení s rekurentnou sieťou. +Transformer je modelová architektúra, ktorá sa vyhýba opakovaniu a namiesto toho sa úplne spolieha na mechanizmus pozornosti na kreslenie globálnych závislostí medzi vstupom a výstupom. Je to prvý transdukčný model, ktorý sa spolieha úplne na vlastnú pozornosť pri výpočte reprezentácii vstupu a výstupu bez použitia RNN (Recurrent Neural Network) alebo CNN (Convolution Neural Network). Používa sa predovšetkým v oblasti NLP (Natural Language Processing) a CV (Computer Vision). Mechanizmy pozornosti sa stali súčasťou presvedčivého modelovania sekvencií a prenosových modelov v rôznych úlohách, ktoré umožňujú modelovanie závislostí bez ohľadu na ich vzdialenosť vo vstupných alebo výstupných sekvenciách. Takmer vo všetkých prípadoch sa však takéto mechanizmy pozornosti používajú v spojení s rekurentnou sieťou. Systémy počítačového videnia (CV) založené na CNN môžu tiež ťažiť z mechanizmov pozornosti. Hlavnou vlastnosťou tzv. “mechanizmus pozornosti” je že vie na základe vstupnej postupnosti v každom kroku rozhodnúť, ktoré časti postupnosti sú dôležité. Je to technika, ktorá napodobňuje kognitívnu pozornosť. Najmä Multi-head attention mechanizmus v Transformeri umožňuje, aby bola každá pozícia priamo spojená s akýmikoľvek inými pozíciami v sekvencii. Informácie tak môžu prúdiť cez pozície bez akejkoľvek medzistraty. Napriek tomu existujú dva problémy, ktoré môžu poškodiť účinnosť Multi-head attention pri sekvenčnom učení. Prvý pochádza zo straty sekvenčných informácií o pozíciách, pretože s každou pozíciou zaobchádza rovnako. Na zmiernenie tohto problému Transformer zavádza vkladanie pozícií, ktorých účinky sa však ukázali ako obmedzené. Na vyriešenie vyššie uvedených obmedzení štandardného Transformera bol navrhnutý nový model sekvenčného učenia R-Transformer. Ide o viacvrstvovú architektúru postavenú na RNN a štandardnom Transformeri, pričom využíva výhody oboch svetov, ale zároveň sa vyhýba ich príslušným nevýhodám. Konkrétnejšie, pred výpočtom globálnych závislostí pozícii pomocou Multi-head attention najskôr spresníme znázornenie každej polohy tak, aby sa sekvenčné a lokálne informácie v jej susedstve mohli v reprezentácii skomprimovať. Aby sa to dosiahlo bola zavedená lokálna rekurentná neurónová sieť, označená ako LocalRNN, na spracovanie signálov v rámci lokálneho okna končiaceho na danej pozícii. LocalRNN navyše pracuje na miestnych oknách všetkých pozícií identicky a nezávisle a pre každú z nich vytvára skrytú reprezentáciu. Okrem toho, keďže sa lokálne okno posúva pozdĺž sekvencie jednu pozíciu za druhou, sú zahrnuté aj globálne sekvenčné informácie. Dôležité najme je, že nakoľko LocalRNN sa používa iba na lokálne okná, vyššie uvedené nevýhody RNN je možné zmierniť. +Rekurentné neurónové siete, najmä long short-term pamäť (LSMT, špeciálny druh RNN, vytvorený na riešenie problémov s miznúcim gradientom) a uzavreté rekurentné neurónové siete, boli pevne zavedené ako najmodernejšie prístupy k problémom sekvenčného modelovania a prenosov, ako je jazykové modelovanie a strojový preklad. Početné snahy odvtedy pokračujú v posúvaní hraníc rekurentných jazykových modelov a architektúr encoder-decoder. Sieťové pamäte typu end-to-end sú založené na RNN (Recurrent Neural Network) mechanizme namiesto opakovania zarovnaného podľa sekvencie a ukázalo sa, že fungujú dobre pri úlohách zodpovedajúcich otázky v jednoduchom jazyku a pri modelovaní jazykov. End-to-end učenie je typ Deep Learningu, v ktorom sú všetky parametre trénované spoločne, a nie krok za krokom. + +RNN boli dlhodobo dominantnou voľbou pre sekvenčné modelovanie, závažne však trpia najme dvoma problémami. Po prvé, ľahko trpí problémami s miznutím a explodovaním gradientu, čo do značnej miery obmedzuje schopnosť naučiť sa veľmi dlhodobé závislosti. Po druhé, sekvenčná povaha prechodov dopredu aj dozadu veľmi sťažuje, ak nie priam znemožňuje, paralelizáciu výpočtu, čo dramaticky zvyšuje časovú zložitosť v tréningovom aj testovacom postupe. Preto mnohé nedávno vyvinuté modely sekvenčného učenia úplne vypustili rekurentnú štruktúru a spoliehajú sa iba na konvolučnú (Convolution Neural Network) alebo mechanizmus pozornosti, ktoré sa dajú ľahko paralelizovať a umožňujú tok informácií v ľubovoľnej dĺžke. Dva reprezentatívne modely, ktoré pritiahli veľkú pozornosť, sú Temporal Convolution Networks (TCN) a Transformer. V rôznych úlohách sekvenčného učenia preukázali porovnateľný alebo dokonca lepší výkon ako výkonnosť RNN. + **Modelová architektúra** Väčšina konkurenčných prenosových modelov neurónovej sekvencie má štruktúru encoder-decoder. V tomto prípade encoder mapuje vstupnú sekvenciu symbolových reprezentácií (x1, ..., xn) na sekvenciu spojitých reprezentácií z = (z1, ..., zn). Vzhľadom na z, decoder potom generuje výstupnú sekvenciu (y1, ..., ym) symbolov jeden po druhom. V každom kroku je model automaticky regresívny a pri generovaní ďalšieho spotrebuje predtým vygenerované symboly ako ďalší vstup. From efc3b5477429a6317a70a6050fd55bb5de604fb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Pavli=C5=A1in?= Date: Thu, 4 Nov 2021 11:22:49 +0000 Subject: [PATCH 43/43] Update 'pages/students/2016/patrik_pavlisin/dp22/README.md' --- .../2016/patrik_pavlisin/dp22/README.md | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/pages/students/2016/patrik_pavlisin/dp22/README.md b/pages/students/2016/patrik_pavlisin/dp22/README.md index 3907fe0d..705f23bc 100644 --- a/pages/students/2016/patrik_pavlisin/dp22/README.md +++ b/pages/students/2016/patrik_pavlisin/dp22/README.md @@ -4,19 +4,18 @@ Transformer je modelová architektúra, ktorá sa vyhýba opakovaniu a namiesto toho sa úplne spolieha na mechanizmus pozornosti na kreslenie globálnych závislostí medzi vstupom a výstupom. Je to prvý transdukčný model, ktorý sa spolieha úplne na vlastnú pozornosť pri výpočte reprezentácii vstupu a výstupu bez použitia RNN (Recurrent Neural Network) alebo CNN (Convolution Neural Network). Používa sa predovšetkým v oblasti NLP (Natural Language Processing) a CV (Computer Vision). Mechanizmy pozornosti sa stali súčasťou presvedčivého modelovania sekvencií a prenosových modelov v rôznych úlohách, ktoré umožňujú modelovanie závislostí bez ohľadu na ich vzdialenosť vo vstupných alebo výstupných sekvenciách. Takmer vo všetkých prípadoch sa však takéto mechanizmy pozornosti používajú v spojení s rekurentnou sieťou. Systémy počítačového videnia (CV) založené na CNN môžu tiež ťažiť z mechanizmov pozornosti. Hlavnou vlastnosťou tzv. “mechanizmus pozornosti” je že vie na základe vstupnej postupnosti v každom kroku rozhodnúť, ktoré časti postupnosti sú dôležité. Je to technika, ktorá napodobňuje kognitívnu pozornosť. -Najmä Multi-head attention mechanizmus v Transformeri umožňuje, aby bola každá pozícia priamo spojená s akýmikoľvek inými pozíciami v sekvencii. Informácie tak môžu prúdiť cez pozície bez akejkoľvek medzistraty. Napriek tomu existujú dva problémy, ktoré môžu poškodiť účinnosť Multi-head attention pri sekvenčnom učení. Prvý pochádza zo straty sekvenčných informácií o pozíciách, pretože s každou pozíciou zaobchádza rovnako. Na zmiernenie tohto problému Transformer zavádza vkladanie pozícií, ktorých účinky sa však ukázali ako obmedzené. +Najmä Multi-head attention mechanizmus v Transformeri umožňuje, aby bola každá pozícia priamo spojená s akýmikoľvek inými pozíciami v sekvencii. Informácie tak môžu prúdiť cez pozície bez akejkoľvek medzistraty. Napriek tomu existujú dva problémy, ktoré môžu poškodiť účinnosť Multi-head attention pri sekvenčnom učení. Prvý pochádza zo straty sekvenčných informácií o pozíciách, pretože s každou pozíciou zaobchádza rovnako. Na zmiernenie tohto problému Transformer zavádza vkladanie pozícií, ktorých účinky sa však ukázali ako obmedzené. [4] -Na vyriešenie vyššie uvedených obmedzení štandardného Transformera bol navrhnutý nový model sekvenčného učenia R-Transformer. Ide o viacvrstvovú architektúru postavenú na RNN a štandardnom Transformeri, pričom využíva výhody oboch svetov, ale zároveň sa vyhýba ich príslušným nevýhodám. Konkrétnejšie, pred výpočtom globálnych závislostí pozícii pomocou Multi-head attention najskôr spresníme znázornenie každej polohy tak, aby sa sekvenčné a lokálne informácie v jej susedstve mohli v reprezentácii skomprimovať. Aby sa to dosiahlo bola zavedená lokálna rekurentná neurónová sieť, označená ako LocalRNN, na spracovanie signálov v rámci lokálneho okna končiaceho na danej pozícii. LocalRNN navyše pracuje na miestnych oknách všetkých pozícií identicky a nezávisle a pre každú z nich vytvára skrytú reprezentáciu. Okrem toho, keďže sa lokálne okno posúva pozdĺž sekvencie jednu pozíciu za druhou, sú zahrnuté aj globálne sekvenčné informácie. Dôležité najme je, že nakoľko LocalRNN sa používa iba na lokálne okná, vyššie uvedené nevýhody RNN je možné zmierniť. +Na vyriešenie vyššie uvedených obmedzení štandardného Transformera bol navrhnutý nový model sekvenčného učenia R-Transformer. Ide o viacvrstvovú architektúru postavenú na RNN a štandardnom Transformeri, pričom využíva výhody oboch svetov, ale zároveň sa vyhýba ich príslušným nevýhodám. Konkrétnejšie, pred výpočtom globálnych závislostí pozícii pomocou Multi-head attention najskôr spresníme znázornenie každej polohy tak, aby sa sekvenčné a lokálne informácie v jej susedstve mohli v reprezentácii skomprimovať. Aby sa to dosiahlo bola zavedená lokálna rekurentná neurónová sieť, označená ako LocalRNN, na spracovanie signálov v rámci lokálneho okna končiaceho na danej pozícii. LocalRNN navyše pracuje na miestnych oknách všetkých pozícií identicky a nezávisle a pre každú z nich vytvára skrytú reprezentáciu. Okrem toho, keďže sa lokálne okno posúva pozdĺž sekvencie jednu pozíciu za druhou, sú zahrnuté aj globálne sekvenčné informácie. Dôležité najme je, že nakoľko LocalRNN sa používa iba na lokálne okná, vyššie uvedené nevýhody RNN je možné zmierniť. [1][6] -Rekurentné neurónové siete, najmä long short-term pamäť (LSMT, špeciálny druh RNN, vytvorený na riešenie problémov s miznúcim gradientom) a uzavreté rekurentné neurónové siete, boli pevne zavedené ako najmodernejšie prístupy k problémom sekvenčného modelovania a prenosov, ako je jazykové modelovanie a strojový preklad. Početné snahy odvtedy pokračujú v posúvaní hraníc rekurentných jazykových modelov a architektúr encoder-decoder. Sieťové pamäte typu end-to-end sú založené na RNN (Recurrent Neural Network) mechanizme namiesto opakovania zarovnaného podľa sekvencie a ukázalo sa, že fungujú dobre pri úlohách zodpovedajúcich otázky v jednoduchom jazyku a pri modelovaní jazykov. End-to-end učenie je typ Deep Learningu, v ktorom sú všetky parametre trénované spoločne, a nie krok za krokom. +Rekurentné neurónové siete, najmä long short-term pamäť (LSMT, špeciálny druh RNN, vytvorený na riešenie problémov s miznúcim gradientom) a uzavreté rekurentné neurónové siete, boli pevne zavedené ako najmodernejšie prístupy k problémom sekvenčného modelovania a prenosov, ako je jazykové modelovanie a strojový preklad. LSTM je architektúra umelej rekurentnej neurónovej siete (RNN), ktorá sa používa v oblasti deep-learning učenia. Na rozdiel od štandardných dopredných neurónových sietí (ang. Feedforward neural network) má LSTM spätnú väzbu. Dokáže spracovať nielen jednotlivé dátové body (napríklad obrázky), ale aj celé sekvencie dát (napríklad reč alebo video). Početné snahy odvtedy pokračujú v posúvaní hraníc rekurentných jazykových modelov a architektúr encoder-decoder. Sieťové pamäte typu end-to-end sú založené na RNN (Recurrent Neural Network) mechanizme namiesto opakovania zarovnaného podľa sekvencie a ukázalo sa, že fungujú dobre pri úlohách zodpovedajúcich otázky v jednoduchom jazyku a pri modelovaní jazykov. End-to-end učenie je typ Deep Learningu, v ktorom sú všetky parametre trénované spoločne, a nie krok za krokom. [7] [8] -RNN boli dlhodobo dominantnou voľbou pre sekvenčné modelovanie, závažne však trpia najme dvoma problémami. Po prvé, ľahko trpí problémami s miznutím a explodovaním gradientu, čo do značnej miery obmedzuje schopnosť naučiť sa veľmi dlhodobé závislosti. Po druhé, sekvenčná povaha prechodov dopredu aj dozadu veľmi sťažuje, ak nie priam znemožňuje, paralelizáciu výpočtu, čo dramaticky zvyšuje časovú zložitosť v tréningovom aj testovacom postupe. Preto mnohé nedávno vyvinuté modely sekvenčného učenia úplne vypustili rekurentnú štruktúru a spoliehajú sa iba na konvolučnú (Convolution Neural Network) alebo mechanizmus pozornosti, ktoré sa dajú ľahko paralelizovať a umožňujú tok informácií v ľubovoľnej dĺžke. Dva reprezentatívne modely, ktoré pritiahli veľkú pozornosť, sú Temporal Convolution Networks (TCN) a Transformer. V rôznych úlohách sekvenčného učenia preukázali porovnateľný alebo dokonca lepší výkon ako výkonnosť RNN. +RNN boli dlhodobo dominantnou voľbou pre sekvenčné modelovanie, závažne však trpia najme dvoma problémami. Po prvé, ľahko trpí problémami s miznutím a explodovaním gradientu, čo do značnej miery obmedzuje schopnosť naučiť sa veľmi dlhodobé závislosti. Po druhé, sekvenčná povaha prechodov dopredu aj dozadu veľmi sťažuje, ak nie priam znemožňuje, paralelizáciu výpočtu, čo dramaticky zvyšuje časovú zložitosť v tréningovom aj testovacom postupe. Preto mnohé nedávno vyvinuté modely sekvenčného učenia úplne vypustili rekurentnú štruktúru a spoliehajú sa iba na konvolučnú (Convolution Neural Network) alebo mechanizmus pozornosti, ktoré sa dajú ľahko paralelizovať a umožňujú tok informácií v ľubovoľnej dĺžke. Dva reprezentatívne modely, ktoré pritiahli veľkú pozornosť, sú Temporal Convolution Networks (TCN) a Transformer. V rôznych úlohách sekvenčného učenia preukázali porovnateľný alebo dokonca lepší výkon ako výkonnosť RNN. [8] **Modelová architektúra** -Väčšina konkurenčných prenosových modelov neurónovej sekvencie má štruktúru encoder-decoder. V tomto prípade encoder mapuje vstupnú sekvenciu symbolových reprezentácií (x1, ..., xn) na sekvenciu spojitých reprezentácií z = (z1, ..., zn). Vzhľadom na z, decoder potom generuje výstupnú sekvenciu (y1, ..., ym) symbolov jeden po druhom. V každom kroku je model automaticky regresívny a pri generovaní ďalšieho spotrebuje predtým vygenerované symboly ako ďalší vstup. +Väčšina konkurenčných prenosových modelov neurónovej sekvencie má štruktúru encoder-decoder. V tomto prípade encoder mapuje vstupnú sekvenciu symbolových reprezentácií (x1, ..., xn) na sekvenciu spojitých reprezentácií z = (z1, ..., zn). Vzhľadom na z, decoder potom generuje výstupnú sekvenciu (y1, ..., ym) symbolov jeden po druhom. V každom kroku je model automaticky regresívny a pri generovaní ďalšieho spotrebuje predtým vygenerované symboly ako ďalší vstup. [1] - |![](https://git.kemt.fei.tuke.sk/KEMT/zpwiki/raw/branch/master/pages/students/2016/patrik_pavlisin/dp22/Modelov%c3%a1%20architekt%c3%bara%20Transformer.png)| |:--:| |Obr 1. Modelová architektúra Transformer| @@ -35,7 +34,7 @@ Encoder pozostáva z kódovacích vrstiev, ktoré spracovávajú vstup iteračne Pri každom vstupe pozornosť zvažuje relevanciu každého ďalšieho vstupu a čerpá z neho pri vytváraní výstupu. Každá decoderová vrstva má mechanizmus dodatočnej pozornosti, ktorý čerpá informácie z výstupov predchádzajúcich decoderov, než vrstva decodera čerpá informácie z kódovaní. -Obe vrstvy encodera a decodera majú feed-forward neurónovú sieť (umelá neurónová sieť, v ktorej spojenia medzi uzlami netvoria cyklus) na dodatočné spracovanie výstupov a obsahujú zvyškové spojenia a kroky na normalizácie vrstiev. +Obe vrstvy encodera a decodera majú feed-forward neurónovú sieť (umelá neurónová sieť, v ktorej spojenia medzi uzlami netvoria cyklus) na dodatočné spracovanie výstupov a obsahujú zvyškové spojenia a kroky na normalizácie vrstiev. [3] |![](https://git.kemt.fei.tuke.sk/KEMT/zpwiki/raw/branch/master/pages/students/2016/patrik_pavlisin/dp22/%c5%a0trukt%c3%bara%20modelu%20sequence%20to%20sequence.png)| |:--:| @@ -43,11 +42,11 @@ Obe vrstvy encodera a decodera majú feed-forward neurónovú sieť (umelá neur **Transformer Encoder** -Encoder sa skladá zo zásobníka _N = 6_ rovnakých vrstiev. Každá vrstva má dve podvrstvy. Prvým je multi-head self-attention mechanizmus a druhým je jednoduchá polohovo plne prepojená sieť spätnej väzby. Multi-head Attention je modul pre mechanizmy pozornosti, ktorý prechádza mechanizmom pozornosti niekoľkokrát paralelne. Self-attention, tiež známy ako Intra-attention, je mechanizmus pozornosti, ktorý spája rôzne polohy jednej sekvencie s cieľom vypočítať reprezentáciu tej istej sekvencie. Okolo každej z dvoch čiastkových vrstiev sa používa zvyškové spojenie, po ktorom nasleduje normalizácia vrstvy. To znamená, že výstupom každej podvrstvy je _LayerNorm (x + Sublayer (x))_, kde _Sublayer (x)_ je funkcia implementovaná samotnou podvrstvou. Aby sa uľahčili tieto zvyškové spojenia, všetky podvrstvy v modeli, ako aj vkladacie vrstvy, produkujú výstupy dimenzie _dmodel_ = 512. +Encoder sa skladá zo zásobníka _N = 6_ rovnakých vrstiev. Každá vrstva má dve podvrstvy. Prvým je multi-head self-attention mechanizmus a druhým je jednoduchá polohovo plne prepojená sieť spätnej väzby. Multi-head Attention je modul pre mechanizmy pozornosti, ktorý prechádza mechanizmom pozornosti niekoľkokrát paralelne. Self-attention, tiež známy ako Intra-attention, je mechanizmus pozornosti, ktorý spája rôzne polohy jednej sekvencie s cieľom vypočítať reprezentáciu tej istej sekvencie. Okolo každej z dvoch čiastkových vrstiev sa používa zvyškové spojenie, po ktorom nasleduje normalizácia vrstvy. To znamená, že výstupom každej podvrstvy je _LayerNorm (x + Sublayer (x))_, kde _Sublayer (x)_ je funkcia implementovaná samotnou podvrstvou. Aby sa uľahčili tieto zvyškové spojenia, všetky podvrstvy v modeli, ako aj vkladacie vrstvy, produkujú výstupy dimenzie _dmodel_ = 512. [1] **Transformer Decoder** -Decoder je tiež zložený zo zásobníka _N = 6_ rovnakých vrstiev. Okrem dvoch podvrstiev v každej vrstve encodera, decoder vkladá tretiu podvrstvu, ktorá vykonáva multi-head attention nad výstupom encoder zásobníka. Podobne ako encoder, používa zvyškové spojenia okolo každej z podvrstiev, po ktorých nasleduje normalizácia vrstvy. Toto maskovanie v kombinácii so skutočnosťou, že vloženia výstupov sú posunuté o jednu pozíciu, zaisťuje, že predpovede pre polohu _i_ môžu závisieť iba od známych výstupov v polohách menších ako _i_. +Decoder je tiež zložený zo zásobníka _N = 6_ rovnakých vrstiev. Okrem dvoch podvrstiev v každej vrstve encodera, decoder vkladá tretiu podvrstvu, ktorá vykonáva multi-head attention nad výstupom encoder zásobníka. Podobne ako encoder, používa zvyškové spojenia okolo každej z podvrstiev, po ktorých nasleduje normalizácia vrstvy. Toto maskovanie v kombinácii so skutočnosťou, že vloženia výstupov sú posunuté o jednu pozíciu, zaisťuje, že predpovede pre polohu _i_ môžu závisieť iba od známych výstupov v polohách menších ako _i_. [1] **Scaled Dot-Product Attention** @@ -64,7 +63,7 @@ V praxi počítame funkciu pozornosti pre množinu dotazov súčasne zabalených Dve najčastejšie používané funkcie pozornosti sú additive attention a dot-product attention. Dot-product attention je identická s naším algoritmom, s výnimkou faktora mierky 1/$\sqrt{dk}$. Additive attention počíta funkciu kompatibility pomocou siete spätnej väzby s jednou skrytou vrstvou. Aj keď sú tieto dva teoreticky náročné, dot-product attention je v praxi oveľa rýchlejšia a priestorovo efektívnejšia, pretože je možné ich implementovať pomocou vysoko optimalizovaného maticového multiplikačného kódu. -Zatiaľ čo pri malých hodnotách dk tieto dva mechanizmy fungujú podobne, additive attention prevyšuje pozornosť produktu bez toho, aby sa škálovala pri väčších hodnotách _dk_. Je pravdepodobné, že pri veľkých hodnotách _dk_ sa bodové produkty zväčšujú a tlačia funkciu _softmax_ do oblastí, kde má extrémne malé gradienty (v strojovom učení je gradient derivátom funkcie, ktorá má viac ako jednu vstupnú premennú). Aby sa tomuto efektu zabránilo, škálujeme bodové produkty o 1/$\sqrt{dk}$ +Zatiaľ čo pri malých hodnotách dk tieto dva mechanizmy fungujú podobne, additive attention prevyšuje pozornosť produktu bez toho, aby sa škálovala pri väčších hodnotách _dk_. Je pravdepodobné, že pri veľkých hodnotách _dk_ sa bodové produkty zväčšujú a tlačia funkciu _softmax_ do oblastí, kde má extrémne malé gradienty (v strojovom učení je gradient derivátom funkcie, ktorá má viac ako jednu vstupnú premennú). Aby sa tomuto efektu zabránilo, škálujeme bodové produkty o 1/$\sqrt{dk}$ [1] [4] **Multi-Head Attention** @@ -91,7 +90,7 @@ Vo vrstvách „encoder-decoder attention“ pochádzajú dotazy z predchádzaj Encoder obsahuje vrstvy self-attention. Vo vrstve self-attention pochádzajú všetky kľúče, hodnoty a dotazy z rovnakého miesta, teda predchádzajúcej vrstvy v encoderu. Každá pozícia v encoderi sa môže venovať všetkým polohám v predchádzajúcej vrstve encodera. -Vrstvy self-attention v decoderi umožňujú každej pozícii v decoderi zúčastniť sa na všetkých polohách v decoderi až do danej polohy. Musí sa zabrániť toku informácii v decoderi, aby sa zachovala autoregresívna vlastnosť (model časových radov, ktorý používa pozorovania z predchádzajúcich časových krokov ako vstup do regresnej rovnice na predpovedanie hodnoty v nasledujúcom časovom kroku). To implementujeme do scaled dot-product attention pomocou maskovania (nastavením na -∞) všetkých hodnôt na vstupe softmax, ktoré zodpovedajú nezákonným spojeniam. +Vrstvy self-attention v decoderi umožňujú každej pozícii v decoderi zúčastniť sa na všetkých polohách v decoderi až do danej polohy. Musí sa zabrániť toku informácii v decoderi, aby sa zachovala autoregresívna vlastnosť (model časových radov, ktorý používa pozorovania z predchádzajúcich časových krokov ako vstup do regresnej rovnice na predpovedanie hodnoty v nasledujúcom časovom kroku). To implementujeme do scaled dot-product attention pomocou maskovania (nastavením na -∞) všetkých hodnôt na vstupe softmax, ktoré zodpovedajú nezákonným spojeniam. [1] [4] ## R-Transformer @@ -99,15 +98,15 @@ Vrstvy self-attention v decoderi umožňujú každej pozícii v decoderi zúčas |:--:| |Obr 5. R-Transformer| -Navrhovaný transformátor R sa skladá zo stohu rovnakých vrstiev. Každá vrstva má 3 komponenty, ktoré sú usporiadané hierarchicky. Ako je znázornené na obrázku, nižšou úrovňou sú lokálne rekurentné neurónové siete, ktoré sú určené na modelovanie lokálnych štruktúr v sekvencii, stredná úroveň je Multi-head attention, ktorá je schopná zachytiť globálne dlhodobé závislosti a horná úroveň je position-wise feedforward sieť, ktorá vykonáva nelineárnu transformáciu prvkov. +Navrhovaný transformátor R sa skladá zo stohu rovnakých vrstiev. Každá vrstva má 3 komponenty, ktoré sú usporiadané hierarchicky. Ako je znázornené na obrázku, nižšou úrovňou sú lokálne rekurentné neurónové siete, ktoré sú určené na modelovanie lokálnych štruktúr v sekvencii, stredná úroveň je Multi-head attention, ktorá je schopná zachytiť globálne dlhodobé závislosti a horná úroveň je position-wise feedforward sieť, ktorá vykonáva nelineárnu transformáciu prvkov. [2] **Porovnanie s TCN** -R-Transformer je čiastočne motivovaný hierarchickou štruktúrou v TCN, v TCN je lokalita v sekvenciách zachytená konvolučnými filtrami. Sekvenčné informácie v rámci každého receptívneho poľa sú však pri konvolučných operáciách ignorované. Na rozdiel od toho, štruktúra LocalRNN v R-Transformer ju môže plne začleniť vďaka sekvenčnej povahe RNN. Pre modelovanie globálnych dlhodobých závislostí to TCN dosahuje pomocou rozšírených konvolúcií, ktoré fungujú na nenásledných pozíciách. Aj keď táto operácia vedie k väčším receptívnym poliam v nižších vrstvách, chýba značné množstvo informácií z veľkej časti pozícií v každej vrstve. +R-Transformer je čiastočne motivovaný hierarchickou štruktúrou v TCN, v TCN je lokalita v sekvenciách zachytená konvolučnými filtrami. Sekvenčné informácie v rámci každého receptívneho poľa sú však pri konvolučných operáciách ignorované. Na rozdiel od toho, štruktúra LocalRNN v R-Transformer ju môže plne začleniť vďaka sekvenčnej povahe RNN. Pre modelovanie globálnych dlhodobých závislostí to TCN dosahuje pomocou rozšírených konvolúcií, ktoré fungujú na nenásledných pozíciách. Aj keď táto operácia vedie k väčším receptívnym poliam v nižších vrstvách, chýba značné množstvo informácií z veľkej časti pozícií v každej vrstve. [2] **Porovnanie s Transformerom** -R-Transformer a štandardný Transformer majú podobnú kapacitu dlhodobého zapamätania vďaka Multi-head attention mechanizmu. Dve dôležité vlastnosti však odlišujú R-Transformer od štandardného Transformera. Po prvé, R-Transformer explicitne a efektívne zachytáva lokalitu v sekvenciách s novou štruktúrou LocalRNN, zatiaľ čo štandardný Transformer ju modeluje veľmi nepresne pomocou Multi-head attention, ktorá pôsobí na všetkých pozíciách. Po druhé, R-Transformer sa nespolieha na žiadne vloženie polohy ako Transformer. V skutočnosti sú výhody jednoduchého polohového zabudovania veľmi obmedzené a vyžaduje značné úsilie na navrhnutie efektívnych polohových zabudovaní, ako aj správnych spôsobov ich začlenenia. +R-Transformer a štandardný Transformer majú podobnú kapacitu dlhodobého zapamätania vďaka Multi-head attention mechanizmu. Dve dôležité vlastnosti však odlišujú R-Transformer od štandardného Transformera. Po prvé, R-Transformer explicitne a efektívne zachytáva lokalitu v sekvenciách s novou štruktúrou LocalRNN, zatiaľ čo štandardný Transformer ju modeluje veľmi nepresne pomocou Multi-head attention, ktorá pôsobí na všetkých pozíciách. Po druhé, R-Transformer sa nespolieha na žiadne vloženie polohy ako Transformer. V skutočnosti sú výhody jednoduchého polohového zabudovania veľmi obmedzené a vyžaduje značné úsilie na navrhnutie efektívnych polohových zabudovaní, ako aj správnych spôsobov ich začlenenia. [2] [4] ## Zoznam použitej literatúry