From b5b349b09d5a06a74441fc9bb62fa821530b5b2c Mon Sep 17 00:00:00 2001 From: Joe Porpeglia Date: Mon, 18 Apr 2022 12:45:00 -0400 Subject: [PATCH] Copy updates Signed-off-by: Joe Porpeglia --- ...-backstage-application-initial-structure.png | Bin 48537 -> 0 bytes docs/permission/plugin-authors/01-setup.md | 8 ++------ .../02-adding-a-basic-permission-check.md | 2 +- .../03-adding-a-resource-permission-check.md | 2 +- 4 files changed, 4 insertions(+), 8 deletions(-) delete mode 100644 docs/assets/permission/permission-tutorial-backstage-application-initial-structure.png diff --git a/docs/assets/permission/permission-tutorial-backstage-application-initial-structure.png b/docs/assets/permission/permission-tutorial-backstage-application-initial-structure.png deleted file mode 100644 index f7e18960ecb04ff095e420d4eb8dc08350e9db76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48537 zcmce-WmFwO(=Cj1a0n2BI|O%khXnTocXxM!ySqzpclQK$cXxM}dmzs%>-&D+d)AtD zrl+fQx~q2W>Is&W7DIr=f&~EqL68s^mIna=bp~Ef04U&--X_0s5D?f66Coj42_Yc@ zSz9YZ6LSL)5b@ynL}*2YA6VXJZU=2>TYyzC1zy0t+t|=)AVMyYTQGG%X&}|_4 ze1e!oI#G}z#l-k~eN-z6LJ;6M34DF35kH$39)l;)Gr2k59lwo^yo|oRJ|()Hjy&Ll zZ1X3`CP58>N7449`9HXh>*{V9H|~Le32)1Rx>DDx_5)yGAcBTRz2cGXP|So+lVlzq z@9y4|&^Xi?utC1!Z3sssrAJtEG4{?2%8`K->IG?9iR4>{oDoT)6T%R2bN?M+dUgmw zEx@GVvp_}J4X)$`asCua`VGokKX~8d$Fcq&Bnk+f@1TKn{Or&=Dy)%z1-=Bs?G_Xm zNnU*I?hR@~24O_kaox;xCwu$rl{3v38c)5G+?)@2_7?+gO10#5tn6VeCW9R+Qv@$hO zF%^Vd3?r9+x`=g2W`?reYGls$wqVFKv@o$i=$w8@=lFCcSa3%AdzqzRh}|1!$7Xx< zIBkmb6f(;I?$hH&nsmn}kS2AI6uL^%oKj3&*F$LEXR3ZsN?Guq{77HG?MT?%*5Q|< z!(IgFgFvdZDYU`y#G#2Q!Ae1~`SHGjaCPCyLQx7J6oQL&*^Glp`(CXxHX>U7a$9HE zhZb5#{{oKR2>~I%9t1B(z#@*#=siqe7KGR&xGGD42K84EMwXGpn`9iz7*!DjUC=-l zT@mR8KHXS8L8d|uIj32V za=C?L#?&c3`Pm~AqsDypBq`yV5t@Ok0klGM*{Ks46Hepc`wZ7k@R+&37<$-sl9Iki zG8#gXAt{7$_;Ca``85S%cDr}#Rt>5Wmx9kCVTVd}mG@fqoc6HlELHK$3mmf}1}gL< zZ>U>$v45sTO$?;^i`$jnv(k&O!MkB_zUXY$io}aZ*JYn>c$2?6ed zN|@A1SW0wEfJ0J?V)-cmfGP}`gEHa&ML?3!k{|&YJ2)}O0;8lSiG3k=mCA9YA%k5G>KK|a&j#KK2ooky#Am4 zj0POlM+QR%sRmX=auf1$LA>hc2G7GPR%(f9+{(^w%@V}} zys>Kel||_kW3|iI`IzR0R=sRXMzc)#Olvmn+MYMhnszZ9J={aBUGANN3q<3(xgw!| zk02l6Ha{Q#9B*20$xAm#*%27(Qw~vnRmLt`EM5JX`m?5NsO)Sp%EH}zcByu;wTh)? zXYsVbLtCs0u6jv#PUmi9wM$cf&6sa9>nv(rc4Pc|!KBds(!L4~Lj+#L5v~lEr(?C# zpgrg5bzn`CUGbI9-iE&@ToW7;Esp(!gHDrT({; zQ-^jEz5ExkFBLr0Ji>V7JiM-)F6B4ocY-btt~+iHZd9&fu8A&uHxoA!wRie5^ zaXYicL9&7Ekm`^$iT0-)R77%j1IU`J)!rdEBwLSXtsuHqKi?F zfsGA_)rfH-k33&?{@W_oPTmprM)sF3k8wxO)Y{bIQ2(d>PX$h19>SM6ez_>h#-!}{ zD#lzfW3pk?TRNwo?M4qtU-|9D;enf3jj2dHcbb$T!8`$8zsWG($m1tU-R7Tf{_#HX z8YPk{78*B1OXN=lGy5~gGq`5&^InzNlVqZQuSrS>ZZ%I$jH2p_q5^N?a;$7WD5v?(SLJXCUcZV%a?0!*!N>|VYw!DuX-%J0d7fbj64(nSatT| zUU1mI1w)9=Q46-wey4hD2QEEq)J{dcJgxoE{$`rxu`c20b}qH$xLJC&vc;x)slDYP zzh`7tEuvx3_4937+lk}TGj0V};u+(aW=F%m=GaUB6O!we+Y`Pu9z36<+x@QGY;JHL zheuNTGx?=VNTw-w+3U!5L%!$JD-*aTxW-s_CJ&xIQv0LE^V3}R^4|8|U%FbYX(TnI zOuP%srW@Ofp=_0I71UgpH`#l!zh+x=9nTxDVsom)^W)ePsRIp5t3_=k9#&87dffWY z2Z7f}sQ6cWMIOaZl5fioq>n?P!RT5xTHo7~-OZlx&fBaQJ#6LsKUL+cfub?4|0V%h zoh5p)p$3Ul13|_ZyPlf@8*xXKM7@{cp7NCmMA(MEd$7ID^&6@81ZsV0bYLL(aA3fSMZDSrq!!Nb@sT2$ z4~&1t@VixDC$Cr(_$wI`&s(PH^AmhNVZ;hb-CJ2?^l8f}X8` zfu)_XmHmE^vfA=v;)Z1OQ2%numC{2MmK73MErS{+7 zML`LjAF$v51=g8G_yMoXZB>&rAGP?c?^yk(HZ)Me`>E^RZw((cAp0bCyw`*bA*}!* z4d^ms#tOq`E7#(8oZB(lJn5@A#;}MNg#|WCFpm8$5EvM^6~SfMx7=jsHkF`|!{um9 z9iuBGEwLhB^wB}`PoN#Ba?S<@q#2%%nB3RnVD|Q^m9{&@sB+*r3jg$To@<4nw?&uKkc#cYEZH zjBnA6fDzH{fDs|;9tY#{mxaEemLk0=Hh_qBGDwAQ!E($FcZOweIh#F7CAfE2IsPr; z`&brh*q@-duW?FjImM&qb90j#skVlUr_H+Dqu8-oi|pZ}Ruqb*!8X- znhKw2?Qf49R5oq9trW!>;RZtHWWrQq}xp{KDzt7iDkks;6T_FY?XB02swqMUAyEvQ2EOkX_*pb81#rD7eqmogwH{m995fkxQ?SXS6+0_twnG zYC3?+0s*k~iHfQs^h7$q_?{XTUJQJUH3Xw>~E)Y@uNKr8Ihsnc{&Qp44$vgl#+Ofe&k-<2{|5$^GObz-z4uDX70h`h$XL4_-(bQWda@+Mt6A4e?qmK++33|PV&AF~ZA zRXL{#E_=^t19|xacM}|MhE6;VZ>-K29?j!r+JQ?h>y48?hsmpJM*vL)6wW!Pd> zO+VAUdFsGo5vHn(i#6x>Z^dM@c|1P7UiiN6Ja|kntPKrYA<&7shcd7JGVMHt{jUp| z8d;Z`ZlEK6FeUy&YbeSj79B zbYA)4GRift7<}_S>Wn9q?)Nvm(^Hh4;w4~W4>MAzHU|$vRjvw%cpf`uPkEWo7feqK z_~y$Bg;4OUN0pLTOsX%h_Y3IESM@0#c=-!2i(bn)P+;xsJHsRn&yjbmIfXfz2Yhd* zZ}fq~LR*u1GfkPJ&5ucv7OVUYaf+wbznrSQyeb zCdUrO+8WR2Hwnt2>B|<$E=}k{O!f&E=_k(T3Bl`;x$}mPbRLzMr~{sS=}_RW)2wyc zE3?G4o2nI1Xnowa)IhED0tdRwXjkF@Hm@{9vmG@l7%OZQ%{6D&4U;k8@%sFrT5F6_ zZ^6|Zy`V&nJC$5{1L`TgZ8H8urN+M0^X9rHnZ{v`Y#VBNPLnJWV&dq2^jEKo3?(51 z>j=ugzEQx!m^0zTwKetlBG(xF1|Mlui7Z=`NHu{}AA?O6yB?SNFImbDm2p$uE}Gc! zY10*WiaaGDQQa)Yr%IQ8vS`HbWmt>cIuCa$PbR)|%`xkCLfRnCGhN--4HzqL5kwCh z`W1Xm_CAal2r?0!WszQ`_S^3!;gK9nauIz-$~d@&pmVLwpf$S)VdiG_=C_SjY$APa z^wZ|w3f-ZE-2AvzG_Mm#;*&!ZLV?;P9P>ME%mf_&`g+9W=lwwEXv5C8S5y3C!w5%{ zmvZ;`yTb$GV}tWyFT&{iE51wvnJwRz%vUt4vc}%1>=Lowp$q!C7zQUwM5*# zFg*BGWX%pH{0^@Ns^N^c&xgiQ62WjvJ41;;J9BLXQGA#ZrJ)Gv)SJk93C|s+b>Kjk zg39V^WZQAp{?xhM?sB!e)y~A1LoSuPJ@4qTGYxM`H?4b+(pKEcSgmkXNAAgtz*X~o zCP3e>XZYbs15#UIVB046{^}X7Do~x)NS~~PyX4iWG&uk|m_bO7o|Q&4`Wm&O92}g_ z&t2Jz^^AI&rGCBn2l0s^mgS%CZ}|wCj74G6;bbjOBlcIE{iFGE*u|hfk1QYVxZq@0 z#>0ll3w)Ov;?>E=_=qK3&dx9T){a#yGm`ZOlO0ZxOCMhe0!T%=#hIRcE}OS{r5WF? z?ioSnsx5S6)Dg=GC}P2YiFH=ICza`N{~#6dk@rH$F6QY2j7==bn(OlhlFWMDT!MB_ z079QXeTzhXZy?ITPL#|evPiLHeWn$=UqOO<$)IHR5jQpx46N*)c>^tVNsl#AAH{Z2 zxA!IWGigdR64{#*>%;l5n}RY5-u)8B;iHxp1GZ!-E1Sga_m^{-IUlFmxAT;`j6hF% zxrY*4(qkH?uSBXVL7`q3<;96@wuYHZ5KN=r{F9$m6Qg8awwz>ovaEAgq+&)y>3Eq{ z@@%+N9dRjp+Q!P{S#Pb0JS~Ti4`Zc5D330fZ1=ViRQ`b;*U(NFLT5{1!EWvCJvAxR zHVd?)B|ydselkDmfdg1zzv8BJ5)Sx)wB?noO+n8eo+Lcx&A`wIv3o+&+xDU|zDIA= zM5cH=<7U@h0AtH>w$uc-5_9ZBM`l~V@ex8}h&mgt|57x+#{gZCQVDpUnfvfuER_Ey zK*Oo_pyhC&=>y5|5L$OjGJ6m@&51HiIEb8<9^ESznQ1O@jJ-xCE;qqzVm8LUxS+Gg zs^gA{N6MwPwVH~DBPo^mBN@wdDmCJ=CQ8kjxsT4Z9F??i$B=!1H!g^XQ}N~&SJ)}r zey04!$wM7m*whKVnO4)rRQGk4UR-<=L0w5e$RKvV(HmE5ldVzYgNVQf4n+0ugkhRU zD}?&q1k|_hSTKWdy@ttoEQRjpe;#NM5Gse(VhqMM^R+k?1 zGLPy^eEV;>cSHx=MyL?am9IOVlZqz!A3{F-R>;VxQdZ-iG(J$_BMO+{`OChcgaYI{ zOx#BRCffwQ+y6_60RUZhxv8X5=!w;@avaZl|v@wK|*Xu#SC7y_Dg)K#U zpE+{$U#Pdu>#>V)bSj_UdiV%aR^fj*{^3|}NGyro1U9anMVOVn_f1HOosI>uXhO$0 zZ_f9O_G?dht9;f3$E+V)*2OA3FQs3OlCyFe*{$((PC2Jdk3Z`96aKKWVT_TNGYqfC zCgQTkg3C&Zl&AfH%l(c6Q(A~5CRU`^^D*WA7I8$r!b{{Tr&#>M6xA3sQP?*lRZ*YG zWT#QUa3)7ru@$`hTyHeyen`<)<#9v9<_5MQ-cm%A_VX!pP30z%)26>$1=t)F(Z@Q# z1%=)DETtT%Hi{X1-6(!9N03X<#zzJp3~h&a71bc(%h7Q;SOUB1d2a|I>$}JE0wq#b zX}>Va_p&c9iJ9(WxBJ%i9k;#ma3X?4#LMy-5)Pl=K!fzywu(CXf zI5Hx`?=~Rh{BRW>a;(DVnkx3NLQ&>&>=@4-xR}*q3>tmChHL_BTW}cnS(NGFqC*{U z@)yqfZ4>puU0$8xEilhLAT4 z60kCVL4$8D8S0BaW%1d=yxA7}?7J1+O#HyNEKp5J%IhJ#(8sfKq4{Pm6_JzI z4udxlIDeEhi4xGy5tu`^CoXy*j5Arkv9eX(5T`sPJkU|z_m($+ms(t=X0|+g+@vlD zE^C2j%)E_cmDt%5Ir_O)>@y(|Nq_J*ev1WSIgu@X*Y>FXNp@wjo{VxvtfQj@sU&RS zs;~9Q7b-%l!BHnlyOB|x0y`)2r^})A7^kc^1w0O54}O7$fJFb$`+k>?!HSvKP+uhRyFvDnw#%-h-;;SOS_Q=rUXf%hHCZK- z3zit)6Q;2AOsQpte|Iy~5`NnEmu#;!Ti(OO*Zr@*5J{c}EUBV1qYqm_ISrhv^%7R` zr$R_B7sVL1oGLaos;{07Y8yjYgBxB>R#y{AIe?>IzZUXlKjIfbNKR`ZdoW$pGB3NZ z#4$Buz5ZNUJHdW+7plVuu^wV4rhV8rA$A|P!;dfIlc&cfw+nrpS3@HBGT^Cj_9;B&`vD2B3oWL1$b{n4;J`O5boZ@#w` zi+kXLpZJzl{nDCK-(_iOBY%6o&32U^!{hnYvQ3*?Q>_LPb#fC03&+n_1RXDdz!a## ztrv;;pMs#PLuHq>dxv#`0iw1Mz5ye2A-o^WO!apBc0GVQa9wT@T`|kN$=FC-(RcEOMv(K3tv9#3{VtxS8BZ} z;C=u#02nMNkxML$_@XY%3(mutl)Rep?oTZU!hdlfZhaW4IZi%%MQn+P(^b@k&*`s=#?Sis($QvVdrcIK zcYdhEbFAgODC3GqY0L5cQJL#IzmATwY=fy@k}&tot?0hMSZW{X4{nNqV0~ zX2IxswOnBk^@C+mBv`K@OHlv~nEoI(IuHE3$41v>$fNS;KFn(xEQH^>4CJAF!9P<6 z3glj5L8=uA-)%r=5q~EVs+T?GVLa!DIR$bs^k6C1*E*+}+Xq5_lasfqT&@y$;|PBI zC;KtPJIVMlBx@Vvz4cBpAo+7QflWLD^e=(dx8mLUq6-YreHfTXA_9oBTsF}Z()T34 z7Etz#$|pwa9ZG=W1KFWfF{?1<58CKg`@5{SHh&VRiHv4&<*^cG)OG82|iMq{@o z|KS;($mW>g{MgPv3JEos|IJy$8W=^E#*fIl{<7Wi?7;RjL*o(-!Ov5i`PxP&ZllsD zxp@M1@QYt(Hp4fetqLK6bSK&0R5GNmyLJ=G3qh0UT-+l>uE1GZ-vaFWfTP4ALwT43 zIKKu(H)Ub%ZeppX@a#d!v^Y<~@G>%fLPzHjV}gN)_meIV67qezFR4ciki_xHVu10+ z0IVwS2H&3;Tl96|clbw)ewEFbMq$*0phoMH1FWLf3X371+dwd5?dM9;hlhcGWk-gS zd4^|(*_JR^DF>^aNo`w%!9_XE)uf4r4ULQxl9QWY`1|z8#=>2N*{2}$t0tSB6f=)0)A z;O$srCv5i?MIbDN|0@Viteb8e$)ZjQkjn8%iVJSMat({;n~((pCes%=jBo+#pVXXR zlf=y&rWh=25|JHGks(O@a?KwM9XNEqaXt%z%><3WEcX_|i4xe}e*F@YGyZcX$g#Q0 z6N*QdmJ2*!;$q!c*%OUTxnw4%sdQ9>_9wI7 z|4TAnhckDjXJ$KdzUiW-hMnPdN~c=6E}(R1lv&1|f9>rJvh4NtQdm;bQ*AI5*>swO zZ1Wd$Jf-xPSmZn@(i(y95>wfgLoO*`KJVQ5wDGw~A}e&JSJAFaZ6#@jXQagz&5^77gHuh`f^}`00w&LVD{v6xel`04tjvYXYGrZtf zt*CGH!R;+u46AnXvdj2Dvl$HH@)a4igQ1`F0KbAw-C<;25xRv4%VFdB$eEj(|Nc8b zk0j{45|<)~=EAopWzL=&r^Z_;w2!YVxsH`SUq)tKYmDKJeH!!f#7|n*a=-YCH_%ps zcmNRA5T-wzGs<-oYnL~pEfG10IYY}%7440M@ss4#&oH@vMK-O+m*Wf%q>^hIet)udYWI^lYXpw8D$KhzzUGO0krWXxY=^JX>+|gG~U0PkdgB zCXrdUslH!byojki_B({oZNCC_Ag>QdsN?MRqcG?6dEDhZmowivbEXbI6UzVzRfybC~i{YZ*1oLWk<2iEnKk9Ii$Ij~2yc z(0A}(3F;~8dA^RFGzhcUHrsS15k)2O>ez0d@V?%@T+@6Ra9|AM{uLHGiR`(+Zd(#2 zI*OWk9jEazZ+t>o>HSM-YQgL9DSpjKrp~*oNot^>7$;}&V-%#$mi#6r6fVQhF-T7& zt>7c;%uyH!kqP;B@^ZEIxoyLh13l9=FByW&4z7##d3rk5f)lQBl`^dI&VBDyGPL2xbaApGIQX#1CW`0!g3^kXE)_V8tz`@LS zSum8Staycf!aqy8D*c3W>0{YdRMjA9GtSuPe&TUsKBblSJf}b!7Tno$EA?wS1(DoF zXWDj3%(-3irT^X6%^u&XZ`@N&SRlF3h}9oUnsmI+n!Y~atCJLUZ2v^bHy`w)e-NXvvw~J_+l?}964Sk6NNjWA zxjVw@ivB6W^k9nCJH_X%v(nyvu|SajJS;$f!gWM%qC&G0c5cRa(x_6-2jC-G335pe zYBtFEW<^&a_Ijl?j&Qg@p04sqLt-PxDoWf^&OBuU={uFh_3q0>;gRt}^+-^Q5v9vX zn9_-{^TtqlNUZ&b-y9*ZUJJ9(x60JYQRJA7+l+~9k^>!d7>^MqRQ(c#uMZnUpOqZc z(z0Ua`85PT?y^2S>}U_V>gV85^Rl|Z73vxE`99r0SFr$a{e;!aQ9SN<#iu^d6j1R9o_h$$Tz=r9^&TLocsd`6&WCv? z48}2lvQIu4+aDf&XW%;k*+?ap`anZjK;Y4J2gx%)^#MSTh=HJ@hfOTygZSVF0uP@v zIM*1Je*i=j2tWd@BABHie63wbqyUS@p0K1d}%wH zu>?MLcGVpOI5?$wbTl+}NI4`J7&!yKfPlh!1A`Nx@83gdTAttEcp}O^2E>>LP#1PF zjdA-z!j+PAyhoq1#U&*PuwBRkkjA_xj1@^Z-0!VLHY++_>68#-pIGLGg;Z6Onn&y3 zhKD7O=c`bU<|;Y@dKf(h4m=P=Ei`?W)u{D9&hD^AtljV#KsrahNL-2&yov!(6W~ zRlUHBz~RWTZN5-OGiNP8IKdpkl~rHpl~Cl)uVq-9J*0d zQQ3OAOQhtEjfpv)TUuN!Jn5Nk|J!ob9@yI}TJX5@&H%Lf@^=tApIS;t6!l29gPYBj zpP<7^_E)sk3rBBF7b%#qCW|_5JENhY`HUqmH(0KOgk!T6VIJotY6>zPFxa>8kK7hW zrRMj0EY(}gSLzUtc;7T$4pJe1`C@DZJ@%Ts+%!DK`y`nMG}t0>tgwMd_@bVk?HUaQ zzMcF$t1f#QBAqpcBl1+xnm?@Zop*;$w$Py)QU|Uthv-zcUk?hX6nVIxI&K%ujNfz- z6R2Hqx%s6s+}l$w=ro$+lp$|S$CFqsOl71FZaMF~W=r8_yqoL~7)9o{`Xc*&7)f>h zmOwSpenK?L^hh9jWLtBGlai7$g|y%BXJXLrN5*-#TBVLJk!Xg1wwUyEi%g9gmtcP>LDrhyc8@2; zpTfe8SW)xB-7e<7;u;$1L@Idm&ZtRG{e4HXWePy&4oJG<-iQEQc9kz$UTvei*lX1W zp+xSi236K=&l}0yN0%X+Gb&oBwr6nXKvlC3`pc8WcdxxNc_%;B@=v!voZJ3lRU#Et z$#F0X%Pf20>#H&V9ts>q@7D__KK(ByiM~I=CH5Ib&4-FgN>tSi2Ktd$2`#71QwjQS z1}!dDen#`G8;+IMspgZDw$rzG*w`g8F7aDmNlE`6GSkvV7@jNBVY1e+!|qk>I7!}J zv(s8e$?yDVEtywlJDT;#RmN%knZ)T3^3&!#!^a}Zc7%NIU9CDnJfe3oHH~HR;fH>v z>8`g}dRlc0{4{SkLWZHTv0!LtSM$xWpl8m-&@?t6K-8f6M@{d7`ybk%ot;ta`g-ow z`<-~mP&0gI;`qF(s$jzhi^HTT9B3p~$fgjz%=;ASxf|Uv^ZLyilPSY_DCyB2kNSl< z7ug@J_e#Hi|1LzIh$1Y~uHI`--WPdyES~`OFCDW_4mU-@*iB3l<_pzzG6qdU!+-u{ z&_zHD>_U(==MWu*B}(CybGH82|LX7We;8-635|rOm?;#97`?LAOmS3rG@^H#q%$S| za}l{f*WzT$al!Bu6H{zy7#!_xO3pdHQm4-xvKgm*~_JJ%DB`^SMnIB z^R%gFOMieb?XoVdzxQeV55YK{;ko4L-HKCY3aI63>w_Nw&^`V!cswtFN82U6%2-C%)t+N5C@(UH_n&h$)MC4D-q zRLsB1jygKgi>*7hU*IgcTHGB;xvkGb2$<}+;R6U*2&z>OkXR-6kBbLVTg;)h5X>z@ z%UX%WE?X#-CxJ#c3%IkmyTn9ADQ%6$P?ma)t)3)NmuUTs+NfJO2DblH;3TozDY6SHir6`MW0EjOtngoC*1wB z%WS2!CvEJ}r+0D?)z>?qRlGU7W2+?2$d;SUn5wFlzw>#KSNF$&l0(8*?Cy?MPGa145mCHmC! z%sWNrl)qG1)f>3XBMKyCjz04MA(pjh=bq8|@^Y-isk)Za@4mSoIBXPU6n&mdKd$=7 zfR=e9jA^toz4^sJ@D{3TNg3CYDqA?U#6V?^BOSVNHHvFbNB)d<>>_SpC*++VIeRyJ zYfqLBhKRQY4G%R>hH!aGz`beBNjPrRYAj7Y{$HF9{5z)uH7FnW!RZu$0Kt?3NVDQU z255jEc--Q%!9FI6+&)l&0zwREiz8+G#%G-Me=h2$fNgU1p0Vy(yGUN*;(iWk zx8HYuqI&q~0XqvIs_6$luFtp)%sCtrztFE^mRHVuF$iLUNx%9-GS#2Wh>Z5!;io{j zfx86|0GdnEm=3AG5`aa&Ysz_Vs?8e}c2tC;d z;{w?0feDAAouNz*o?{VgF-PDgUdbBlO{LG`WE$BW+&&txTL1?)lBmpl0D zk4F`DZPPn0+i4TyP|yT#3-SH`MH2{*XDcusyUeQh$8sIV@*gc zRo0*JMti$@4;%8@47Et$_2<>PnkN(IV+D?*f(;*}@W0UxXzUopB1Cg9UwO$WHMV&k z|LiJDIU_;D&-j&U*^B~*L3`aOhn0?A1@!Tam$kxXQ$&wjp2GDm_fURa8A5;GPwHYG zHS=I^E&qVD$l3N`9N9n0$g9p*SOULJCZe^n_>YJC6jQ5Sy4ZTfeTt^iPr>XK?l zWfI_djFxV68eU7jZ$X#hDe%wE;A?u^u$Zs5E+}xHxaR9rnfBCrYB5|Ux(Alxw}HZ) zC_~G;s>nAK@M~;_tF%Prk?;Ik5Px2PcZ>Nq_v7|JH{9#*g@T^5BJm70k& z6^rlwor9-Te@Xo&3vaZq{dy!$<{eN2&%60}kBzOj!H{$ub*alw9T9P4M!8k!#KONT z$Pl2~O)V|>LR_TzA?z9KjqKjhYB6d2Pm2Nl#CD@FVWI!0nVsZXO6wJH{I-84tX)r= znlZT+lI?DGp>i1o8cz2A9P=%{oZyu*{eS1r?YCPwOO$*(XY!6 zK{-+0?F7%g!(neNpmG>t=l;9m*uV{zg$kP9f!IvoWn4QtT{2->dhoiMZpSsZ3ErSH z8)UXoa3z+Shh9>Xu;E|fzSk7rc!y5M8TgTp~ zSc{Jx9!SH|8%A9{mQ$+#d63(xd(faVpD(D1}JJ5{?~OlJmJdE@;#Xv#y|AN9G+ zCsNU?ZtSRnsC*@1?&#Ke*;)<_xRgA7y=73I)1ujggx*;3G(!V+v6eXw*u*1hE$eOf zkB-JtB40?CE_MUUq#J`jBYSFMnKs~v>Pd6_^^y|huZ2-UBck^q5_srKl5KKD z!n*ppPAf6*r}%|j)o4zKNwkx{=3x_wwI}M!uc#V%xh6w8!7)r9f)Gr#`$wnstPLD% zlCViI1)>S(EQp!u)pDZBmioXW_%H;KFCsOUk#Hh*mK>Dr%YnD~pW8{^NuL4=FkYc^ zz0ENZ`9HE;!ve3OTun=;2imH~?8eM!FU<;~e+-BS%>kDsNDDFCk5Y{mp9Bpf>yHAo z7!m7A92I0wt(1N)BkU18SKI6xn?VO&Z_SsY{I;|1Vsyh>`jtrtf^x-}4R@^qf$ur- z1tKCyXnQ7^-`d;M3b3$;&4w#_YFC2H$piiveL>km^mrlh_2KR_M5L7Bj^79#Oc{l^ zKLB2}9n*X?_-%(eZ%hX~Tp^I~FyAg(j1UqVuEb)b^6e4wNQvWTn{*xd^)ShwH`98S zjwS>$Sb;ALR$z!Pn>@9$=Qi*AiJb@K9Mi{WlUEb-6H7C&LkY<_{VT04ARJ>qx2p4b z-BI$w1py=7M~>(O&zlUC`?tTeXduPxu_XOWbEJm&s~b|`B1o0y>aPfEmBF*OK2f|$)_wb`RyU;a zSpvv>{h9&+&0Nrbv3(0PZm7M%n#`YtVmv54RcenK?Oc*P#VtEIjJ?|%Q^F);tT?A` z@^!4M6E5#MP?kyeX=oRl#jS7=KCSQF?zoPJT^*^}Hf3y~KL|{VHf~wou{ywBqarf$ zA7}7YYM)f;s4GzN$PD)};uX3n=Fv#laQ@}A-^9lqyLVsBvJ_d^4rt=aA?X7~se$Nk zc%2IS+j&PC9X*9bxnR?%dS0t>K71P*sHbcE?6iDj-BUs=M)+S(@^+3!FsZUOCZ;dF zsw2e2uMP!mI7`2Pkvx8~xR??rq7=A%Ux&Smqd0i%t9T`!)1-0-R|4U$2~?ZYk#1ZH03m;g0X%z5nBnm7tVki{4Hl2@TguO{xV_mA? zWjBL)ssNCI-TF(NWK6mVc_QEWcU0&$j{;s_J@FCpx>aYP0P3+vv1KX23d`-)DdM~c z{mp~fM1od0I1;VM-$5QgGRG&1NR5cW$okx})(BRmzHUASoWF1#!U{Gtx?Zf{6SY-8 zUUyw>6_|-HLoSL#Qpy5bN(Q&gZfdKrL>A@dG7&TYBfnebkIf0DWYy%tFE=Hwr@GTL zpjL&(r+iU>phx!R0=0zUTG8UBfJ;vN#35e5DFfOf2{c|`SKcx$-3?ia3szleM;(YA zqzS-im?tQIv?4MzNapag^M4WjAyvu!K<#Ga>ybI4CUwr?WAyYmxMH<6S=F%gl!V3c z4VS5CNq?l>plvm7XGGyM(?Vk;_X7pgR2a8zMtoxty@)rf*4-w?Y)s-H+Mn@2{}s|9 z&8JyjH=_zPGm~4Tgvl*B#}a#VwUx9;{}t@ieb6FcxH^a|apaQDkxC{}?=t$8&^A!= z9dX6D*hL6c;6hu({ zyRBt~%DQzQ2sKIF<)LNadil=q7eIsYvib7KRW=hlm4^n`aoO$^h|B!0Of}^4;6}Oa za}qmE144Qf=Ap=!E)pg6ow-q&)k{X%{uR{UB4R+jkNkxm!pn8JJi`qI89x9R@}Djp z5&ZtQis>ceJ2Jw%Y0!B0o;6POjrc;=mH_8sA4jyf!FaDoj=Vci!QNeJ0GQ@`C}GI^ zo6U!deGdx^U$onj|Hl1DI%5LAiJ=3h{QD2T0{h+dG?*Uc_~9F^8vs4|Huyp`a$q$+ z-ar5iaYp4NxcG581IUB}gBy%l@@XHfwEK9=pt=h~bU^n0SkB`x>rei8>;po)9xGEl znsYyysG$tY*MYcfCsR6={`j*lEKHG{dJ`QwBc5DtfVkBzLqys#v( zRq#hY@x7UNs8kbo(zV6?IzRt5S!6GH8>|O}W0M)Juw4|q9(GTLm<)*f|Z2GH{c*scfFfoQYT=R{t$I`8JYa zNx(1kb=`g;BpraA3DGkT!MvxKb=czD2XVQ6pVvEa0TNyq?iNZxe=6X{;ob=<*v%M= zA{m`Dj22&X>%~DS7#ADU6Ko=k<3pkCgu5~vAY`!KiGwo5q%9sQU?zonSdSwLG+2Q+ z{K)=@@LY81x;=+-b*J7Tq(fEO-@o$L)09&;5XUWINfLHoRfovd5MrE2(Ma#GXZWSX z`_vbcDOwH64K!zgp!>4Y(_odM$>oO-3A13Ra2ft0WcfCe4Ry#3A@m`xP3(XqOO9Oq5Wm!kV0WSFdlsEqFb~vQ@)HEfcZfqF6QMLaB@x z=9BEkv6RKv5ng=LFtQ3X`3VKJvJi2c*)eCJUtEYiD!?^@n6%D8IUU8P0S^4=ks5*K zknQ=9N$z@iuW;2}b%rNNw>3b1g*r^E|9HZf@N(4CnS=9dnD)Jh9K zx)FkgKNTF3sm2#!obWcsyjyLBew3?_&r7%&B$bRe8+)2HpPhIG$HC;8iby z&J0TjaDS;U#prMDiB#K@bQ^{0KBqq(r_f+~OO#La2x}$v9qj1-DEPN?SSt4>e0D-A zPHMkN9QNJJU^B?>Tt`+*E516+6+&xjSV;bUFLHPCXlbcn(N$r6@{hH7zO9|qCnV*r_%XB&(q6Z5OUYl6QjV;q|hlmO-TW71|x>AtagTU?6-c4qi_*--41}}#0 zBcY@U>o4YVy!?Kqv;=S5uOI*8+whN&bHpXHro8}5oVT@53Y{z5T7*>M0)@-3FO%A} zyDD3oLL;Z9iPMQ(D!99P8Y4DkHbL&b47HXsB49I^FeUAAzCKYvY|VL;8jPuKj;z(- z2*XJDl?_Uvqfngm+HSkQ=OP9%e+)Y*w*S}EmRfGjQP9t(@aJ{SnIGP+9sWHNzU8&j z#^VM<*#bYI$XG|vTC4DIZ^!7TEe92@EGqwE@-#GfjOiXrzkN2t74zl*!kPZ@p?-47 z=7T7Hv|5~#%O%8d`|3sW$u-nC5)#gN+c5#46GQ1E=1x`4sfY=k?3C~!27&S|w1^7E zabc}DpAU#W4|^GwCP~Dz2`FPSmpY^2(OUB0H>y>|TowDeXNZ13VF`w9YaLFXoBYcd^W?0} zpa?ax)hr9@>}cvWYkX8{Xf452uHE6En3>x!Yu*x#CMn$Oq!87wxXdfI zMDg-+-TuAzKyeF;d9Vyl4kX7q95fDA*&X)s(HJy|mn@{h^TvDRKyN+%&ZP-4S%uSER+D|*%6u73+IUUg#I&C)7;LGj3$s8JTcg6Mu#IJwsJ~y#m%NOg znRgSwjN7;TgM(!_biypuY23T=D9+Qp80k!258%}Ydr`y>X~tS5v*$#iZP-_OGo>}G zK`n<|?`o@blK$1rVEPxx(lMDFIjMJH4-p3Tt-81E$8pabq(E?woI98G_ak@=QsNPd z?ZqaIBGG8>toA;iSqTUVQnK2~`j6#L&xnG@k8wPVk)b_>0h5G-L+S619m^_1nrHZl4g^_Ajj{lRvdc zE2tLVDuPA|x(3Aek_lt9BbS|_km=dcvXdf-v70cz=$R7Iv!WI6oX&_Edu?{*N9)KB zY}F1~8l%FW3e3ip7V#2-VreGV{ye6T>f853VzeSbF~`q7;^UeWJxhwkh*8MXyF90r z6#IvO-b2rx(+CeH7)(yVa=5=i(4)G7PxcPct$u=k-6&u4$h!}AiSJ3~X;I)#PC}=J z?V2ryBywOCV`r<%7YXc(V5+o0Z5ZU#x~;Wo9l{bQ__662TBK3w?n-#|)~so=kLi5T z2)_G-F>>cZbb__aY^>IW5aGP!6a>u`X4)@0jL$x68DUF`?KQ5HS;F`L$sx%B4-Lt9 zO^=C4ra0kiK&yz?mZps$HWkWEIwahKUBvp#xlgOxt^v=VUCWjQKcAb@>fu&d<-S}g zi)RB)J`>(WPl(Bo3+afm?ACL?^yO&ru8+yvRk85^n`9av?VRr-H2698ejxGaw+_Sg z5DRk#WY0zEA3WaHF3qPSwjI;tQYY=_;jsEA=JZnNe2NdCQeP}9zZrxy!s4&%2#L86 zs6p1gy82>qZscly>WJlO^E&(Fhuoh4^`_tf#Qs>Nw^;#(OwGzc>bSsJ1)n?_g10jC zQpfRJNRAcTQtcK#)(_JZ7FRYOpbl2QrFECx+SJ--3i9A2gR!3VAr{m4;*_~%Lo29y z!gVDs_Oe@M5{0mai^%g2dw7N^Xc>!XOJVdWmfgYfil}E3@kS#Y?UD)m!*h%^)#Oiv z``rB2v!e3Xl3TyFP`58#F76+(oeMnB7hfrSjBry2I$JyIJKZh>QVzKo+;3_1p}jF{ zQE}XHtVzgC_XK0Y;RDn*UQA`W05fs1N50bK9*iuBNOwv0$6pooMIWujtT~R$?5w1W z)d3L)CnOKbyoujfSBTY9%-~)uqs*0DRW7AmN3~^ydf`K8S%E*is}i55r}KYb7321w zOIyxaF=t(u&9kw%@y;23n^P3ovyNwq#Ef+DNC#QjMRZMx^N2A1#B)20U7><+BgC<^ z|B*=3-z1_sM`G4c5izU}7^S~Y?dLPDGiJq*mJhpO;1Bi>c-O7_SVLSboU%C@k z@Z&u8wuv{&|AOc1gq!i;_)cfm=H$9T(XDOf8;vRJp|T(pFE3k}qFp&+#zf}RBIfT` zV9e*58!hYM_5VB^FldlW;)hO0(_EwBUGsM*n9&xtBCYH>sIF;iQ7y{0&%Uo_Xc$g7 zFW*`sbboHxE*zd^TvGeN55>w-mEGu?F0e5`24Ny0jR{;wC(f6MdIVQqW0O4Ab&!Q8 zYKomZsoDK-8g!9Pzp-_RhV8Q}bt3OVgG$^eTwhz+{d{R~gnNl29kcFMDDYSGKkd1Ie2>IQJT*_qkuk zagEdMCy>{YPTor7ki9y8Doi3Zxq4k;je4?{pg;GK2>Ol$9#HT`_BXu!nNC5phT_!) zr;Tm(HKEjua8U73)9bRB5`S6CAJE?WA@Rk|hW~Il{YVq7jg2>w7^5lnzq+-M`m#YT z;PS=kHwB~O`o;pg&T)w>!j(b?ArwS~?|xpUw86VN!t0ecJx2>{2N&n##6l7O8q}G4 z{5r_Sk1j;*q8!Dhqbv8J5xvp_*|TzY>L_B(!%$)WmHFjYtdf#G0-b6l4BqcFuuyGl)>`#o%yI zz#dz~&0o50JDf$^<`7DN4SjMnPcdShbyVjrQ4-6oF#uA-l(0$^!J{(@_J|7t{!IPa ziHEE_9%o-g&SZmUU=S5We4X*M)eE=yi%Uz=J{;IjLY-#N>vYVp;&{=&zSyy^1^jA# zt!%x6Qa>u8SmQ`hxUP4G<~~O;2faZXZQlPuF=k9u6_xUWUCo0J1Gh(zAb7-q;`JIG zfCpv}WKy6QWRHu*iZ5z!%Gf<2p(Ie7jwMGvb|dJkwS+^U^<07=^zIY|n}|_Yh_s7_ z{!;{Ex`3b+M^NthudhY1XzDNmicjowB1FgWnreHXM^dQ4tSYOJiqfapK}=$bc`N#o zj^zqad+a!3B!=|uNyTKRHr~?3VjNcFV4y`BEd)XFt4GHS%LgU}vhi_cy4a|QGN=%H zMP;?Qd817G+R$Gq%!51dWZr!+e}&}Me}X%-IxgMBPyO+Wczi1SB-qJuQoP<8JvwSp zE3DC+8A7FQb8ur`|Dm*j(Cf^+0sLI^8|r=bhR+X!ikDBK)dm0yd%H~Ol=N*rs3;lW zkBMawvl~ls=7wC-XQI{IvY>aqR$P-!9{sT86Y+q}?%b+F`yAxkBu8a)XO70(fi;JX zP+XEj!D=(A6FuemkxHSsO6u2Jl3ZOi7J(AghP&VL)#@xU zKAVx1B)bmz*5k%6=mZ3_YP~`R<2V){&FK7SeWR&VgZCVug!;VcHn2YYpzf!`^;YPLe%)h4c zAE9`*CMPOS^)qM8W(N90^lF=yl{zh<3;*<9SK%BybvQ4pXeM*@l{Nh;<~kP53dcEU zGomod(PUc%K83&sba>#2*(5Ms9^56^`mn;AgrMo3RzRMz@U!L$N2+)m1@CPMDBNQk z)TEF!)~SM$bSQSs=X<@}YoX2^DFZ^+;WN{cXmyo$GpK6cYdf4579JAkqBPad0?@KC z-<1z9)$wt2uBvikp?TeMZhQ8ZH$Q>*hg=ynbiW;AU5&BDOZ2P!c3UEyF};Gxo)bKd zrDDcVYbnX7b(D(InA<&atl)}ni-?~$FBV6-5CBgZoC@q?XN|SVzeC3wm;#zGUN^rA z;v;&6Z)&+r1Wwe5MDDasTMUzO9iS=UM7L8Djj)_xJU@hO<3mb)Bcp#pGy6Ud zeHV}iqJC6*FEM5}RK8AynO^I;_@&8A6B&>3V%UW=u}RSY1;g4z^1cO|uXH^I($H)& z!d9#zI!ufaD0UZ)*w8q4%^Zv0d=$ZaLan&eGZffQrn#I3U*HY(Pd(xIKcxp-+C{2e z3|-Ul(=>^YzgdTPWQYjK2GnWAxat0eO7VWqJQsjyQ>bEA&NX?2yXZLcA$n}l*S%%M z((zh#?zaa=Z3^TzTmD6x7u6B6u57SilcVvS*ng=0TAZjH7K+Pjc6WO)b%4{V&cu9G z?T$kU9vdQ<|GX%Bz&}c{F0aen3i?q+1~P$co=turgd{NFH3_6;+F2D|}aNzhgC-n*WNcU#<&{IReG z{AW}O9}PD>bL_b%JdeGK1ispLYco=t`TiGsSj!>LfxS07>Y0K8VqQe_Gggh%h>|Z| zD_4t0itg6r=^gb~+Ht3aC(Fs#D=|N>21zZA66xr-7N!Uc9e&TPFb(GTT8 zcKlFhnUL6)LGA9Dh}CyIom-C@&m+~2w()P-<%qJlc4muT5@dL<&XTu9$0lrP!CMWg(=Rcj>k8m_PEyt@7(ZsLo9zuj=-xngfcVn#v zMo7KB<{$08=~6uXCW;g?Dmqp32Q$qSXDArRNbp#_C8S{znLEX|w0G5*2Go5ggujp6 zMeIx{@s^m9cC)irp-;9y)nEwkx0450`=P!nX|OOi4dyqri@@=~0Z(4H-VLvBhTo2O z1ry4KKf!L6;iEw4s8`Y+2E9P`rpQY2oMGXM2PPdEWjS(7xi<#gn%NVApHEah~y+skLxJF zGTO&d$=u-HhC!abNlZ)(RK`vjiGhNFW#{^>z{Bf=?nGp8L4u^$oC>I!<&?GJeIR)z zj{4z~qa@%lSf3qjAuL&Uvhs(UXnezCuw)7EZi-_+;tbcZ!$!+}gqPB}e+`IgWISz{ zj#&4z{D-;lV0gG7Y*=K93hFEEv56^&6!kTkH7QG^<{F?>>}~i0@e~}zl=R_Yd1XzB z&$NtG87y5f+>~t=gV5&Ie|2LiE3B$5_=L)c2Y+|shESNw`fkS%49|f z!xQOI(m~A-^+V`l&~17|s3)5--!yA7C_8?-7$Kag>Fp;^I$iZ4&}|iOET09M%lE5D zM|IZU8Xfa88;6o^AXg;cEoL>FJ5QLG6CalbwC;fb370I4VeAq{-qA1x?39lwo<-ud>Ntl0=l#Wb-C_&?ploT zk8T8=yS3-E9V%4>pCBlB-PMGJ5dmMa^#{VSP(e^egPG<2tnB=K4!au{ zr4zzaj+wblS&*yv2m^)iIX}HtCsbN^h#uHs`HF~{VDH1O#n#<`%^PV$tp5}GuPWms z#E2F?7~L8K27YVW5Kp@OB{q)f0t`^?b~Jy|ha9S2Q;!g;$o%l%nEz7Ye4;3*0WPCw ztqjCgQlt=V9iQ(|0~PI6NX^ugrGLLZOC5!F1v_efg-_rW-5o{x2W7ffK6LbZ1xs@O zlo=YRl70OGl1}&uGG%mWaIFfT^Xc7AJW3F^&ts2$bRFfG{%_f|2Ss678TtX^;3q=l>Xx4mV7YVt9UVLCP{vuZ89msu~LEhe_|}96`gU<)kww+lV|@o!ZM}G zG^@B#^ET9|vHr_k(RMdm$9)l%O(e2=jQ5|Xg!>i5FB0T$PeefXa~5w)<|7Kcll4?x zf%&qEZt1S>Dkq|(BbX&VZH{bUplc7=)E{!mFd zYpasjvy|bhW3|hR&w+hMM(bL_7P*~ItXu6#v~Q4}c3u!o9R<&#V2TfE3`dN1E@B(* z?coNg-sfDBg*W*Xf54K;J^>|UPpF{1EFgr&i3e%3jaJRRjUaE#&~8eyR9%ieaBy&! zqf8TqcPC2&KU#?^W<^C}0M7~E#N%NT8++bCR z^lsDAF2per?6MRD-db&u;C(5=_~`^u1bFS%^UlmxKCS0o({HKjM=A2MrJ%n=v6#o6 zrDpYqOUa10#slpROOGeDZPV*&4x^lfflTXwu=lZlfXyzhD!kCQE$^ybjVHkq^MfFaz25feN=S?VEM8~GPO4b z43S^+SXmz$r-JFR?lF4KjKvA8EXbCG>)pjHjJOzLfB8Vu)`_F+O$6b)SF%eI!(-L^ zcQUM9HvXsN6)aW!VMce!Z`lqZXXiDl(rN0Rf^n|0xLd*P*F>HT>RDheGYUd>Lg(vV zq5#_57xzOw;qQDv-&6ibIezUKb-do)n!yoS1VuMMVnlq53znG z`6%0Ya(<~c=(i{{4s=b}>$U`sqs_F5JMr$F{<$lCV0t8_zyAtkX9j?JOyWra$C6)X zLk8z;%kwQ zjh?0^URA9c+Y;NgwzE_Eomc)KTaZg*UG4TM6>hD7p@q5Xkl0)G(eGwWYHXbv9LI66 zzV^&^2;x|cukN6j7JDQ0XPwzoE}o561=YJ+@>1AU(SMt-%b6fJbVJ7T)b=B#z-`R? zSHJTvTQD{MPhz7nH!!4Z;+qNkmqqvP#m;H}-}tg29EGFpm#ex&Wr|M8?&ep(>aj^c`sMtqTC zbuK1XiQO)7F~UJoQqr94{d2(w!}Xf^&h6u{a5Wv0=Pw@A#hf00G#mH9-MatdZc${^ zIO`+JY7en~qMZqET6>yZ3mEN(`;Fl_8ymU2{Fbt`7IAvC%1NeJDRsYQ${ZEb;PVhl z4%9X)!g`%z_}ylJbG&7gx)5HLGbxK2cDg$2t}D0BSWu&=?C?JsknpZs#H_L+bdTyf zE?((gZ@i~j6-)Z+M6HJ;y21H(eCL#h7N9gMOb+W_^IkZ`TvS&e5ZRY%2yI><&|i~u z5%yrO!9Xvz8A}#>gVkV0<^og9=Aqu{!^*&co(iw;txBeF;BkrUCwmgR?^i9&rsfbg z^og};5F~xU$A@C=aU(i`e0PCne6!Q38Z9w8fb^o|ArTK~@y$ipO^^~UpI?I)kXU6Un{%o9Uo89JDQsfh_xKw4(v|CJrLsUBNN^MryIc{$+$~=Ei4W^* z&c2MFe+II7fk0kBs}ktY`L8P20;rtY8>lZL*qN>F!;0@6IKQt;^@}Y74qLOK`FtsE zHNa3~Jx9ypH^uf!auzy-2y8kXc&ueh3PB)e$vz@sy1OYn=Cmb3i=)WUnXG9v{5SS$ zkuZV2+_-?-o*Q8G|Xg?Z&Ki+ImWBachB;3RQF45_L|^2BXS*8W+yaf z5q@$-ilRKT%}8@_esyk-Dm8O)Z_F1bBmBtKW}Cqc;GiZlbw@TOGHIEiZ)z0}OJuy{ z9Wo=As+N_yeIg|5@)h>OhTxaU>AmMUJ?DLiMvbQ(?do?~i!g->E~^HveZMHX;3L@qI57N3U+sa4 zCd5XqZ@3@XaQ^^5q!<3CnQ6KI*FSxrM+;xsY*+c4@c*3+K-Pu;K$4f68~a(~whQbe z&w^F@or?e<5xat5P+N6QB&g{~Nio%QoWBGFr1iWyFZdnK6dDXC46PLpvH;h^-uD5` zsi~@#ESA-nO?0Pm)W|VtpOwmqi_0tgS=GCJogEyc5Ec_t*mMkkI?E;@BQw0%?838* zNCA9qpc9W*#wI43mfzV@jhPVu#>zp+{O~KFmSa7;W?SV!DaZl?aWm;a>V+|DFe%X7G>G|P6 zgJ2_@tAb7#?Im9T9dy2Lc;9Q%USLt9?@aLNW%b(i{y=6Lp3K`ix@8~S$Z3cB~EO_XSe^<;&NJmSxHSM*N$mxYr9N3dy?6gzVZUB z&MI$FY|-R|Xa2pt!T{3yb$GsEdv7niFQP*Ml-uP*{dT8Q4xJk^WDnrvgTAJgDDX^&0LER-q`^VLqisK}o3~$G@QCO3UeVz|Y2aEhpft zt1Jr(LMTt?Z)y<8h6gdx4G{9-kJtOyW?FR}Rtw)qBe?@tYs_LwgaiiW0Qi|z^0#`U zJLE9vu;5VG7+2bZY3JXY=kpe2O!Qh7tN9|wWqeizd&BP)B{_a`HySmjWy3}@aza42 znKT2Ju{}~*Yn16xECvP!DmsEry|oXZ+_^SYTtL7dMXkLGpp^p#2A=`oQ0eb@ViP>8 zFAM3VAvK?Y^;+{7J@!U}T_y@Zlz;zwd=+YTrTr_Dg7^8v5&6ErFR58D3lDV65^~}% zuj8Jy*VPa?yZxp)+$k5=F|wPR+fVuetnq6EICeNEaq-IG{bb8i zMh=c9$&$d+-w6J@Y8{fvEQqQoFkt*5_rKb&5;Y{fx4hn1@I7 z%*+X<7aku>`B(Dt+&Q-K1{Xf&+BzyrTM%u}=B0X@7LUK1g~7TxF*K=O zs_b&|_R~R{$Y9Z_oI6@H9Fap$vyAb_P~`Z6ku*uup?K<;aXA(!BTyHA`THSF*6h)s zqE>mrY$Bs=(l$*ybl}g@!ec@AhK{juo(IvTE3O=^^(4 ztxTw8V4}7eZQV^x4-9@wz+5 zl&u4e;_hrM)T#nEaK*MI@nkjhzf8Hq%fol)q1R``A`NoS6&y~dAKcp9GOZ?!lT*23 zleuDOw(XB(jKsL|OuM|^9)Z5GEfzBcWGgMlSf19_f39ScnJscqmVf?Kt^KhqGFIaL zJ*6+rY_=8p&kP5pn#f(w)F_4KiiL&Q>|ff39-7AUlPe3#%c#Ii=$zc=o}M0^HKe7| z5Ia_y52QTe11X2FK8u*wb#MsJHzn1BhV~~zsr2;UPd=osXmyA^Z6Vw)2rKLBt0nI=>cT$jqvpqWX=Db+8H~t7c(hs-aVHyK`n#91$lS$;XK05lHMFuK zl}w<%N<+%(c!3zh-0}T%K(+!kHKo8#kOaIn_;f6reb#9VG@^M5YPGHPi{T9a%?$jx zyIYX5WCAmld8FcOHwz2s(okV}K3mM5T1y=T+ynyfH+fLwD0}!jf4j_j`>Sg|us#kK z`}r=8PSkJy>qVoq0?tjlU(uotOV{AI5yLlZ#<#B2cdRT+D4!I)0tZSQT?Hn8pF!g+ zfZ?46$j2&0mUJu5MFW7f*HaL6XVPXhl>&O$FC56Rf*`Uk2{@FVDc0(GKhoR9yvOfz{A{7bR<{MJtP3 zyT?l)_F&9G-@jt?o1n^JFoA$694o=hnaxGN(a_*vFA$k3sUC>I<5_-CPJi}axDU!L zgj3Yj3Pfc>C%B6hDI)W~!(E?~kHK&pF&y9A0fVzQeA>6a`Yv{0w2I-}Amj)|YX$cdVy4E8$JG7T+<@eLrpqTDr#Iqy9~6%9o5I z?6Fk6JFH#veOt7Yb1!QK_4;rFp^tn+-FK3QU6QMB7;}lA|BY-BP_)P9f>zrZTlnCXKL*zo@VUlpT>j_tWz;~d4WbIA7{EZ)I_bV11jy1AK?DJVcwmt*wHGfjJHTp*Xe71jgL-%==j?!1g9WVI%k_; zNBIRuN~O?kYwqXZH0t9bd(iuw$8$$^`3W#7>_t$EipvQLqqTSNr3Fm7f|EVmRY9)q z$aB+Z;Odzt=ub=yatyv_vRI*yt@8D(w|Qc}#PnvOYqTv2Ut8f^`SL(4)PvaTCk@Q( z)6}atF@h!T7;G~&V|SM0zJ4@sKBE z{T3?6FADV1t8mNo2Po4XpIlYs-u_MTlVm@k{c)YqL9Ll)9Ne``)8*%s`5y|WfTANH z6|rMv7`DCm_U)Q15d&n8O)u%&jYdPz>I|4c0pU_OsEBqTmA zmA{6F0CeL|`?teC{~n_UDAC1yOm|YETooS7KcjXqav}I{3>vOQs1M$=Z_ zZeMO=nr;Q9#K-v%fRCb7O8MijyQ7G@v=3Q_){U-(VOL&Ff}YCP|JymCe1zXxvbon9 z7(;DOu(*^4gvEo?e#hl)x$93ghppGssV(BIb4*1mcHdQlhumBwULkz16_!r8^o^7N z0$3Px#ITLuOSfx$gyzz&o(Iu40>GLwBHVcf?qhw=wVCHAYT^trpQ#@1u9Ycb>I3_C z9JkLiHKRMaajvMmI3PC{!KiuNA-NI+&wIH$*G$XVdx6!*9^pDz%_(T^_3~&H_VkTa z6rjS7BvsL!Y>p9isO{YD8`}9)S!w$|)+kUQ^@zafYR1l%>Z13go`!k)y_1-q%S>X=&F5~z8++4bB)#`~06x=ifZ^Zfzg=#y(W zX6jvE#Xo4gH|A=U2uuMd)nEIlA|Lvs?zv~d$!ZslFWht&=P05&sD{0P5>kb9*Guw4 z%+eOnnEmHHh<8xWGaZPzCY;NALE60YUP5+Va(~_S5IJ^O9*#sS#5EZP;2LQD?5|kysi*#KYL%C;Fd36 zVq-vv*|~lpnlxF`t>hp-xvVPT4u!wLnt~9RDHlZvMx&7(nQJy!-$&;P>LA;JNH{~=ZQM@aP9KqtD_7H0{I%mTsJ={Oa`JP)Uo z(|ly`lj>e)wka#1yv)&c?Mc48vE3;OG#F*7=MV|h5enQEh)A(jHzXD4(v;LakF#ax z7+HvW*zu%!uTJ@#$=Ju(LWz;%qHL%KBEf>=Ih`Zr$!jmZ2vL&FSy7cBvt45+#10LF z9f@+g;Fd^H**_JVP))oaMMI~vK$hX*gv`*DGZtH&5gbI9Zt^pj8sWdfez{@ZTp>?8 z(ksnCsh-DUP!qZOm^mQe(zLHh-}zHz-~39Bh9U2>@^XGia~@+WPwabb+MwU3gj3y0 zcsQn8_N0zdb4!(Hiy(@js7;J}$feI#`1FJwW@?e1X__hWF6RWeUej{JIZ zBuVJ*?YdEaR+q+gCBA{s1m0`*w9Yu&4qgf%3p>{0^gedqz7&e^IYK63M0`7xTD_){o}4PoOE~O1?ts$ z5?jr6B9#swuR~B}R-3XsWUL2O=UihWb~*=-kxpA5PHjRf+1+p;Zg#%!9dF!{*410N?s#!YRFsQ8 z#Iq4>MuR|SahLHvuS)^G=VlBs;Kc+*$~6$~oDuHyZb8Q2J+aguT}c|#uAA8BRjS0` zaJrruibki*dpSAzo~*T0SVS#0))TwOD5qB0Rh>7-hf)t$!;R_2uAw~&gs;KTi8y3s zeskO?k)%Gd$>7m{fRZ!0=~dvWdN#Rrf6h=VM5^@!8k6@(lD~VSbso=>cKbpO;GHVUvCLTL-he_~V)*z)vnpVWabJm-!nNhMA@cqZP*tUGe`Wo| z<+}VL@|$cS4(#J>`5nphU76g>%%E0Xv`SF!WBBGfsF%K8h~Ya2clfd<4zZ5cM|f9^ zmrY(KYHea-nq#~&oC!n0+M>K2P;ApIVF2R=kt{2BA<(gr7fMX&@PqvZWSgVyOzBHk zAd4#pYnPk*7edx~#OHfGoJ{+bdMpxhC?J0TXX`B1!nE*0I_7Ax3%`IMF!|`NJAKSt z``rhz)oLHf?bd2xvP4lAxO{As4_&s*!;8S{y_`~eB!axm-f?sqU0%b zDA2m1Ys`N`C0ZwB&<-^8wpyU znLjZdMC1`{Of+H9AhkeOyD(aR9`@X)RZ7-B8!YLR4-M1~^?h;lY5{@XW-o5?r;Y|^ zp>$9)1wZvf$j1rn)Idulhh>%-crTi$P!c&v2iF`mO^#P}kodRWS2-bb1Bixq&@K*0;SUU&lD-Ry1AIE^qm#GuQSy}7eIbSj2 zxFSveXd;yI?IyMd;X_8(Q$b@UntV$*xVqRLKDt3P`7zdJaP+w>!%dH;v0AN97VLN5 z_j$vEt}H%yK^0Sf6gPzDg{`QSt%JjWqa262+m1T?@zy$oCQsD4x)pgOJH2LB^1Usl za`It`*6j>k$Y|7KzIKe&gS{_qR?HwS3>Q@E@jrqZ=1V-TfVWfmk4SZvTVK#z1VUws z8X8)?T)~AE1=kt|Gchs+GFU2edwJ8MF~*+?$Bv?!()Crf@Cpq3s!{`Qnl}re8mci} zxa*?G!o0q;cn?Lr_X(L+N|wCPSmdb7~7324^6c??@w*&FtQ7WquFco+Mo zy;PhP^|rkjLmHmF8q9=ZE$^o4GmIU{A<3Q5ZTwixT`4X^6Czv! z=Fw&~awWBYOhjpas-267urTLYV~+#U(eoL#fW19>hF3N9^z>0i8+QDdZardOn8$f4 zpnfSxt^=Y2EU!mX%r40be4}?BQ_Y7Z8DxiO;yO4)RqhFxAX9~%1c1U@+I9L7TA4AC zzt?;Oj$IY@%$l!vXUHL}HFo?aiU_h}x~BA{#^oG;%D=lrw6BG~7$#&$hvsUkxca&3 zy>?6W4`?Z5X#FW4lY`8kRinKOC|3G`0o#x%xK+hOmDx4duAdUomPr z>f7N6H>0c}n#%Hf8i*-BF_&b*OZs)e`@_-6&#t!S|S!N$~K@pc>cyYtSUi z!HD@|_Qd5yiLP>KW^R77k>>G26$huhWa7if@#}NZ;PGOrYdV|Ctpe< zHr0v9>7l%6FNhD&tmP5_p(CyNvEM0P`#K`N^XBjwZ-=lOkEXxaej6rnVJkm%&hQWR zSZ$k_vk=76xmBcTy_b?{(%>Jt`Y9S8b|MRf8#LN8)yb3PL}?zI^A^ay!s<=7=F%Zh zOPD4~Q@XWMZl7i^54s15PXAS^$Krs~cdG9zPS=-2*V3UJY(%~*l#R8Q!RJA|#>8}e zO)})0^TQaYLo0=Gy}vQstjK*ejc*N6;mZVe;!BIHRz9&$#!GNCMLTddoPG7`7tN+E zBi{ML86@e@@wv4s3FXys`#qdfvag8mnnMa?lXxd zyIM|RY0qO7=L`kU>57rX+lntMD-xC0=2Jg)AgoGmU8;;xPF$Fo?sA@N({Jhz zV5_?_-|po~;M>8l3u~N&E(n+qBfev!+$OkVBXiu7IdGf^;9n(>{IA}=GOVgLic*l0 zmTpA4rCUlskPhkYknRoz>F(}skhr9PNP|dshjcgd!Z-is&&)jYjQ{YSd+y11uf6tK zdt;(7XIWf0Riw6ARW?Ii|C#m8Eu^>aD-E*YOesW3l+5|IjNoo?goo}IMe>CkDZXX- zcGjZ4@_r?`ttsxJ&-v@E2hBKgrLgU)9Yt%K_ z22ADTS;GzKeRtHY%(u$I*W>^Jzw(PY^Q3627U!{U47|w+YZ)mC8IbOu-tEW+V+=M` zvR*fgRuDbe(-e!C$MD%&isR`TIe;2nWj&EmnqbxXqd-SKUGT5^d^@ zO_g>AE+t{g^xf)q4x4Mg*?IbJcQkMw0)A?URaD%{+by=YGcaki_L1{#3ABWqVB;AnT(7hCGWtgwtoM}u3mhfbk>Z$u#oN?GB`-YtZs5orE&{(EeKc)~cpXfQ8v(3;vwzh!F=293jKlR_ux5cjsEXqMdH0w8>$UdjUCz79N$*j& ze=h_6R{T6Ru)HjGPA(vE7>(-CyeXYRcFV=Rv zrH|ZNhu#<*JHa#$yE5^rVy3}0FJ8REmHZ&AjN^f>cKwP-ay`A4O~H;zcti7MO;WhF zD>Kt|%pA4I?x0kAS#LVcf4lytH_`M@>Hi5*Q_@~Rd=Od!oddaGhdpA_&}_dW=ZY+#il#8p_ID<;7CQknmK;wbVLnB2m`6G<)NY-N+CAPyJ)UeB2JQRWd%k8~1>`LP zR>9Ov7*3OA01aecR*DT(IKkO%LGd&<FTKpR^kcZ9fd5gHhYzu%E4|my-VK?`LM=g%@Mqmk zvE#t9|4Y$a5YfgTNurNs%LmZZ)^>aYW`v|3#3GvU+#x<4GroebA z(iU!y$%*(Av+evL>-?{P!+AL+!Z z^V)U4QtYNQ^ke3a(>V0_bDuM(^g^9D}-4#aXQH@=?@j3|3Q!Bi@B!(9faNHjX+K zuJ#?fVy`UAObw5nRd-;4@38>wrVdBU(vq)r<^ud9p?eDU)$D$aZLi?v%jUZ!fupyC zKd6qhDndkDb~N0`w`XYrX16BU&m+P7!Je&XfZF5~TUUpS$$GM%!hzd>UhVAYH}bQfNnedt{E zz6edA?Ht>4`5o9lPb1;|40lI25m9`VUy&!+mdn$duA#Qt@xvZ!@p z@8SI*Mdjj4)-F7V<)rfG+`!N0;jz30@m{hAbuYS$w_)x{I%(qnh%og=#XpHtyfCT= z{Y?2M)-Ml41Pw|kJeoOg%UBE(R%%drsT+|~zgyTB{_VH-)~0otATt7#4ED}dKVyH- zNUg(fvCv?r`W1pbQ8|KxlJB^$TI}r49Q`!umw0VZwKDFfh<|gn$4Rr+VR`U#4h8l*o*Gy5B@1CHy_D?qOpBRiR$G1)T3cazN5Wj^WHu!CWh$0s z+*I04YVHc^I&T>B4A+!h>0G3L^#iV_G~!7zwug`Gj{UuEi^@}oG%-;{&6vJWI@ z1Dju0_1g>y!N&dqxqYMg5i5-{6gOM$lRgg#2cU-h+kY&G(59ZGX~f7E zTMDC7nydY3VhnZIrvAdhm=JZQ{`Aa&9-YV3UqfvJli>>15%ZWcWrC3IcLcblCa>bg z=@nVuF9b$Gf@m(SB1z8Pib+|e3~984>SV^){LnFEBYtB1b?yn~-cE!@97MKyq?&wQ z9^eZS@1RXvq{7D$wr1x2n@5?$y24HO=Nea!^N>@wMvTh&Rr!5a@h{Z4DcI?C^1}>s z2H|3Am@}9-h*J@B|Mn$?O3(SDd@aj7AoOkczlX2|pJm{mnjo*)*XVLVX$JG@e!IUb zKR&O7NZ134+ppwL2(K=a8Ip)|{cnp zy>`9k0z5YW^Vxtx*WAXX?|Nq2zjq9@LxG_9RS1dFR`PCHlZGBY0bGnH8AufV|F&cU zaP%4Raahpcx7g_cs2Mu zF1qEoqx<<9OyklA5?(7rlZ(B=qiMs(I`h=|>3@~&fuL!F^+cS|#TV6+JF^l&c z+u6xU42YD+n(N>DI(cnuv^<|`F^m<}5mfdU@RlK>3Hrq0;B*WPX!c-p9O%iu!Sx*1+R#(S28BY5KED9d`IcJ~1-M|sg>VqC(b3r53#ll_BPU#Lc-P*{{ zFUs-CjQTvflV;1QPFg3rwTJ9tLs}QU8@!rkwQiJGs@`5N?S{h-rmUUq&*2sq7pv76 z70;A_Ie5JsQ(7T1WaX0HaY1e_b!4&9 z<5wv}?FQFlg9+)69}#|q;RjSz$=_Yf9iCke*@h3N^BIDnX=?Qr*yk=3S68`_?{ofz z3(3l&a$3(9&Dv(Y`>LwVA#@&Z^8yG-C6txXu5NGjfkLgsMyWu$GlF>TH9GqD&Vb5a zJL9j^THQGsTkH@~P*kSEzJKq?7KN|&x<$pp-dUT_*p+j3=H%ZF9Jt?|silq}6^s~4 z<;tz98f`RxDv)F)W0=)+)Xww-e@%o<$HIu9SZ(f?x=(nblC=UGW`CBZ7UB}~(fc(d zq^714ZjNNaySTVeb~BtXRJCMTrafGb_(YlM><3?{mw!=~ zZG2LTD>|pz51K7mzzo6N%GBLT;Ay9lP4o5lhYsj?yj`k%!^-++6g82VkujjQHWuRw zOz@pRMS>(ICRzl|wcTIL9qrXReB6^OZO#=B?-oT9FfuFjdGv1lR{=32Ua>PWF`*;b zyjfdaE&KJ$(CD+);V@qzdQfk4hOC_}C6H*1mc2?UF?<=giis6A{1Tp=q9z~(G(TTt z&f`#P@q!Lmk);?e~3ePB-}rUEdEcDo(gy2~>8oi{YHE)iyA;3!@Su zsYj|(tCj(4xif27sbY|jkPrw@lH~U^kI$r?4;>5ZYx|>D0v#uq7)W`*pojMU3jLtn zhu3+3_FG4X5M`Q%CeU{G656y>bbA5g4m*i(S<>IX}k!Bm&U)j4jFh(+TS3}q9 zyq?udCWT!Ad+p!*tL1?Hv(piu_ki3qKdU=pN!#AMSq*iNNhw*##MSjw2tO`wSX4ZB z9WeBMxZaZ4?ehaK>rkvvF6`o-NO5k!;(@H@Ct3j}oNq=MD?O8ed8ov^S$TOdq&|1m zDU@5An=z{Wgj6!f1nly}f{%AdG)zpNsbbLt(+aI&7Mh)uwgQpyJ=+FP`>{F;B3zcd z&_Z#%#0pY!123+Ab*>HMt!WudG@XhdHZ*6&-l~`gP&GSQ>}}PC?*o#h!rLVhIGkE+4Plomku36RLZ_O z{UB9JRni!-l|UIvja5$Xn;q(X`7i2sS6#uG&~;eY6WaUWP9Uf7jEvSy{J7ZT z15@|bTaH25qH0&-ize^fw%cdxH1?IrlWFmT-IB~52{Ex^D;$fpZmVg+kC4|#JZleC z!J$f-@4d{lg>Bpw@wXnU7BYICtpG!b;AUmuD%OrGt`N>6s<7vlm6Z5~Lg264AW8Yr z606>vw4HlRH>~Qu*T7k0tr%xo$nc=Cir-dQ2}I)4HFy@GWj#Hc19*sp`&HLpaT#@8 zSKJ1ZPt$mF8HFBB2HdM?KYrpT-xT{~Io{;3)xng(54WZcX?mENF!64C2<$r#yY1ri zkWIMh=E9KmJXLErzy;*EE72eeEp1;EHQ!Ubl7kNC96PeDRf<(e%M54ZBFy=Qi}2sZ8V^Mk4z zbwBV-=2i*BWv|D=zz73VHa{`Gvv6Zbt2Grw!MO%zs@1mJ1C>HlBJQFeR;4<%CgCex z{zIYhlLcVLUuh0#@{oq%c5tcta6&UQD04kAwb&VO^Kf(%kkDAJ)9OyUnDAAD?V6iA zDI!3IucCsfA33j{S`)5k!80={!-aUK3LV1rrQQol^@4@aYo$Hy`LzDjzUjP zI|_)HrbgM_PK@U5diOzJ{zc%@<*?oTTfBaL4996T{m}&3XCvQW{vZUKK7I&2d9f?dj~O_3etzBwMzOvoCYC9PqL~#mIf`OoH`3oqwP{m8`kBt>@)K8=;a!{o zGl|Zddd~eNpBJ8NtM#xrn~jaG_7I{R>#r@YRkR+#sx;$ z+smI|O^lWnv@RKZnyHDu_P#d!u4yYnb!{1+GgSmkgQBhP=>O?GBH%)A7a1N-neDls zb3@nlGZQ!?*L)stNnh>1c3N`<#-XUxR8yMrCMN>cFlTlqD|h$RVCr~2BjEj-kcswT z^jPkIYB?Q-lms5ThNW}>p*mdzi9mt3{s5QUkX&Xa-IJwY2G4#hFXO$r|r@B%7+Og!+GbU7J0778;i_%0tkVTLF0UF_kGaI#E zz*EwJ{YePsA>@A7cp2=b&JiF?#(TnqV{j>Kdw@Ws-JsnazY&B7#&m#sKRpH-dxGt> zssYrkoUYV?V**R)Cu+TWOQe5fEB{D*^(r}WJ{==bu8ojDwazRU;Pa6E2TOmD>#_N@ zw=U_Tzn;z?&hTn*Awey?|7?oS^FMLx4>CPWOqr2UKdM!4*0nc_3s*3cB)2%&DjR_r z5j*Zkt*HxCiR^Xe`>5^7F#+!Lo~JS;i0uT4OQ*w!b`3$@ogIP?SGl39&9kCQd1(JF zKQf;+({nL@i7yn3XX>T|*j%(keuFH2Fm|GJ?!Nze$tCzL>Fj>jGfS1`CI}6}kaxux zP9&77d(;zb7<2N^4dOD@t5#p2bVqUn+(UyYIVeoymAbmvFMoKrc-bDoalOHQzP$Aa z>@y$O^19BCE)jkmzWP^vaMiF|->}xa6ih~3DPeJ7UdDfhkF)Phs89~CrmK!bI)4lqb zB?*1Fvm3CIPEBi-D)->~0^`P9RRB&fQYaqxVCj_)$pb5Anp#A8;pZIEp+!jjL8RYn z!>ZG>S-7=LUmS)SqKt?Dt0PON@Ru?U0rxlON?SZam&a?pDn)`0xU0TXL?w}i#rD7X zP|=d2ql5qcRYpAJ5??4vVA3{0(D2$ySK6*`>nte-UT39_XldIxT2#BKW+!@V4cogb zLYlKo+}5po0Tm_+iVxc4tgO)0)rB;Fm*Jck9qxBVvjakk^3H<>)c9~5_9dT-2H=oBx>E@|49b1>YcWSKhxm6SA@^Z;1650&DCJPH-FTyXCp_#Nd!V*9?CGT2yKWWkB)37aMuu&t=4?jql20n zcbRoh+Jpt-dNAV-4-!(%N*)hrq)d!JrDD5_C2!j_jrqdbi^xis!$ zgYES;t^vDX>gl8WYMaRrfpn@fE=X-)BNF@H_Um6>!M!u+w#Cjl1bv*kv|Sd$zs&t8 z#w+31Y@ljtZZ_zPp?pGqI-bXrl!HWb@#AMZXm7~Kg!dih9ak1GC_ z<>{??d00z6j{zkftKF{=-7+D2L}`XufI#X(&KV`1V$lWP6_$ORVwTg8hdPX}5iCeFVb54OCnM_FW%F5dU&sRefT)CBvN~*|YURp43k~)vPWMb0obxnho+A z|1U};vIl9IIh?oLo!HRklo!0t(u$-X0&{Kn#oMA z!twh@cQdUX4Xod6@pW}|!36B{{=_sHE`X3^Hq)4uoi3WIjad&8o18BXrvzETi1~(X zQ!+(1htor!Xn-iw;&efKhQQ%x%7!sQDAweNAl#`JC)cCYTdLzWC=$$EDm~Wx$-Ip* zABv+yUT459Qc24ln`p#cVQG4@-q-JBcY8sc#ATClqSkb|=y7xaIi&I6Wd2Z-RXa6s z*#0QX=0<$QpQ@O^tScK@?zTR|s-SJKB|FzbLPkX;e%&c}IZsrk4MElXVa37+!#Q-s zkkRUT_3AAX6RN7N7sqU!x#&UMoC-0{ZG|=@%5)UIzr|>Nl#~T$?H|yCgBTU-D+BYs zkUMn#jcT^;+zOmjYu8!r=KQL|)~T67!re-_3pnV249MC+9@W$i2VD(sAFRJlh%XtwQj;I?~^m>@%*n!=D}uumu9_%@g$B7|9j_B zA|88+437i1G+w99u5HE0{I-VywJ9 zv)I>D-y;%n~Pz?~$PT)Vk14LPDg7t84GAlre2^riqb?MD30;x7&M+sL&lR60{bo>n{{H?nElV&r^F;>DCdS74;H~)$ax1_}1)`Bg2nWEe4kkO! z+YcCNdF$}B=#=;n*@bkSrVDuBh>3{>W}l!?)6l4$Uk>vfegM3lavd#G z$I7iWWSe+^ChUiDdT+<8>M`&`OAwfi=Q$ilxqH3m@(wFJ)P=OmC z{33A!-37Mzm4-rTLqEIXyVUdZrqpaUitGxL_0+Z^e<8#k}O_(sZv(%p1jPH51!au>q#Adhpfx|muy_=S$ zn&TUmRs`U|2|5dG}Xm|qUz+0F-bwu1) zKbvlAlQgUQuK^_zwaJLLR4`w!Njm2~6aU>2IiN#orYBEF+I>mAuY~I_I^juI!I^!2 z9c#h$*o`SyRMxQQ9=h5jOJ1G%GUIqkmSGpP3@AxYW-~3G@k(S$&kjBhWgb>p9o~Fn zy>;B1DP(L+$*qAovRB`|p<1bf5;4#2aWTFuri=PJJt^t??EysBD<&p})+Q?CByS@2 zNqQxcl?{`^aCF^QsGzN4e%zc<{u6za2eHEYp(tDLuiLA_zYLQGut?OdaN6?nzRYb` ziW4IvBZXO$%$hV`w4H5j-)U)USNl9d0WMHg#o)DW^-oWud~k6j7AU4YYrJlqogA7r zQ!G1JG}OC++cyLxoF&dr9cUbP6ji8rd1ptnMViMLwHgtyv9akQ|2ep?d~2fn&Yc>r zJ|W(*v-mv_8Hb9h1MpluAL(_ zF&uc^oGHxw>a5{eJ6a)sqr~TavFFFA`J;&S*B4v3N)%g-s%3|Ij)&ajq_9&X(3${> zOpnoz3W;C0C+{e`}uBW|vXT1+k zrT#~h^X}g!VHp!s)6x?ioq_^l5P{<}Q!U-}o2sf_92{8h_H|$7v}6(C;+g_Q&GV_l zy#}W)4oRUpVK|UIAVJu{M;VEll)-Sp;bA=9ONWhZHQ{cGHXU{t85)zFYT__e+Ctpf z!QcJ$ns{O9XpKgPA)WtvlXtGv3k2WTUCA8X_BN_Q@ko;L2sf4~#gK4;eA#N0j49l! zQ_vSLD}dNrh5a1 zJe*I(zz-|Kz`^P5&pP$b{mLV^2cZw3*%wf$_c8TQQ+3TW5G;#DDyx(g(w9S-kGfrG zVQT24u6oV-2{y(0I$0Atj_aS*Jr$yT?$!?LbmT?l;13DEUhNcSii6%FN52SdN(ei| z;&=NHP*B9g#RJtF2AfN2D%%?x5?P5SRAh&r19};mo)Ts_2d>ped|-D%g?zl&9(#G% zc8faHkJ-1r`qJ59J^5@z@KMXOc9!|`5Viqx5@cHkH}If{cJ?;qF^0s zMKHD~FrIWVlbPP?pwVDm{{C)_LWkY!plJ(54lUeVb@v${FmXXaILEZCx$V8411a!; zoQh3uB8%Ptz5rad{|~(){_i?d_=&eNCFN!X@^F@vjOF`zD(5bHb|A-M{&&04p=GE> zY2q&met*p5h9^sf(fBlM>&xZUAO4ogZY}5Zk=?tBv)Xap0uF_1X!Ow$Y!wsbz9Tr=4@lyEa+z%V*akSIbhJ3A$0$4BMQ9peCOohYz0C&ga8nHB6Z788)Gf|=v_=1Rtl#`qs zlZS@~kHZ2>Q8A|4YQ`R$He?R)5N}{#(e?nOO+ZZ3{SN&}jSo)6S15N8{!rBaeWnSh zF0JrV^RKOkKB{07z<4*-^1faKnS&9lwdtcO7fq-`y$KQ8RTJ^Y}_=X%YSG>N>vp zS4q2KQav@>H!z@d`|JGV^z`_sE3)VZF4LW2`qn%DG*A*a29+Y^H@2vFIrUvzpxbQj zYS~HKlWg&8$HrS*NgVZ1Gv`dP)h`5#vz($7t-nAqDQst)R9?7ZVSfHE!+fI?Sg;4v z`4XYk#>!?B_ldbqQBuEEBpsCTsu^n;mq z7->xsxHad0xH6<8z!DUj_qr6gI?W{Q0R$zBUdM}bEWIL{Cq5kbJA^<2*K~@dR!a}XG2v*gJ@Q#Irbd!h0K>HvxQgM6x8r~=Nd)9iP8Jpj7tIp{k zXZ`-@ihl<#4vxXfPq9FGZ|!DBg=)>Mq14Ed5;{cMq)=R)q)(d}J%Owxub(Bg=#9uQ z1jYfCImOqKK~nPv>&4A!QlE+gmO~JO2tMp+z5B2g_zLylqx`3`j{9b$pCxo@nX`v) z9b`n6JUv^o5l3ox0Fgm(;<^QzaZ&YFS69d_h^6);=!Qc27DQ zz>+9i^~5-?jMY0qFP*8MgL!ItdU!m&YV!JXZAxU>9^EXi12_8J2<;Hd4ztH3|JG{I zZCb1HLvsqoAT#7m64f{6W53GE9q0;9hpnuIA5vBhTk3qF&(c+3nZqzkOYa{1IGuUl z_s6QM7iV?YB>q?4YjSBB&Lohh<2;EH*Yaba`111{M~-zv^-rAi+>TOB0+J z0ecRhM0pU{E#Mv{934T#)tlRW?oi8Z)Ob+p%fg6;^ zTfJJb&mMSK?e^DCdq7$+a<`))@A0fNECSmehXwrY|ujkU*?4OEgnGhYm!* zWEYIaHb1>jP<&Kxply0}BOGO(6Fw}ErOISeJ3Sx2vovr*Mzj;{q&&l6TEJMRipcFg zODFb{e1~*7FXrdB#;TPHd4tm8qy4B!JaUFv?G>N)1QKiUj!o#t@e_{$pFt+hc)>iOO#2KWxadQS>IL^wykc8b{0npD5L z)vf%i{_BqlAWF1_H;G*JP0C#8Dc4zsZL?zL8QY< zL4|Ue;yOAc06cB zT1_E)XWG#j8GiHgTB5|9xp4^z1QGP~rSj_P=G>da@88?BvaA<^K8qK(XFItUa_J!) z>&LRvgOcYgeR0n&-45fodJcX|Qb^&6^!qcl63N!$VR*u!>3#kDwbl!~sV>y?^q=b0 zJrZnAktCnhLVi@}RZSg&Cy5ec721t6OpKZ}SRR*q93I131rUfwfDAEszPqx7U$WS( z!WhH1V?mP=5|+-I5DLznT^IX~zeJN(wS)%TWOz*ttAl6^|I^FfLHhLC`K0VE!x~L- zCfeIGB}omYa}B5RyRkB+EXrC(@x8OjSTwQrT>SI!C;yY(`9uIZHug76YT2xkl77W8 zs*T#MAs|38tG zwPNy5PDn5r(Ep_Qyo#lw+tx|a|9R%m0Ky^$E^WxIRG#SbhjXB=*MK5nF7~u8>A5_) zv=8W`QUBxjM8OirNtBQMbO^o+PquJK}Jk3?(=gt5Hj!fsxGf0AOdA1Xxj{Qn2E?b)pW diff --git a/docs/permission/plugin-authors/01-setup.md b/docs/permission/plugin-authors/01-setup.md index 981a6ee6ab..ee90875fd0 100644 --- a/docs/permission/plugin-authors/01-setup.md +++ b/docs/permission/plugin-authors/01-setup.md @@ -28,13 +28,9 @@ The source code is available here: backstage-master/contrib/plugins/todo-list-common ``` - Your application structure should look something like this: + The `plugins` directory of your project should now include `todo-list`, `todo-list-backend`, and `todo-list-common`. - // TODO: UPDATE THIS IMAGE - - ![backstage application files structure](../../assets/permission/permission-tutorial-backstage-application-initial-structure.png) - -2. Add the frontend and backend plugins as dependencies of your Backstage app and backend respectively: +2. Add these packages as dependencies for your Backstage app: ``` $ yarn workspace backend add @internal/plugin-todo-list-backend@^1.0.0 @internal/plugin-todo-list-common@^1.0.0 diff --git a/docs/permission/plugin-authors/02-adding-a-basic-permission-check.md b/docs/permission/plugin-authors/02-adding-a-basic-permission-check.md index 55dd3e85ab..f944b9ecc5 100644 --- a/docs/permission/plugin-authors/02-adding-a-basic-permission-check.md +++ b/docs/permission/plugin-authors/02-adding-a-basic-permission-check.md @@ -26,7 +26,7 @@ Let's navigate to the file `plugins/todo-list-common/src/permissions.ts` and add }); ``` -For this tutorial, we've automatically exported all permissions from this file (see `plugins/todo-list-common/src/index.ts`). For the actual plugins that you author, we recommend exporting all permissions from your plugin, so that Backstage integrators can import them when writing policies. +For this tutorial, we've automatically exported all permissions from this file (see `plugins/todo-list-common/src/index.ts`). For the actual plugins that you author, you must export any permission authorized by the plugin so Backstage integrators can import them when writing policies. ## Authorizing using the new permission diff --git a/docs/permission/plugin-authors/03-adding-a-resource-permission-check.md b/docs/permission/plugin-authors/03-adding-a-resource-permission-check.md index 583d7e7707..a61c74219b 100644 --- a/docs/permission/plugin-authors/03-adding-a-resource-permission-check.md +++ b/docs/permission/plugin-authors/03-adding-a-resource-permission-check.md @@ -154,7 +154,7 @@ Now, let's create the new endpoint by editing `plugins/todo-list-backend/src/ser ## Test the authorized update endpoint -Now let's go back to the permission policy's handle function (which would normally be written by your integrators) and try to authorize our new permission. +Now let's go back to the permission policy's handle function and try to authorize our new permission. Let's edit `packages/backend/src/plugins/permission.ts`: