From 48cf895cdc9ee5eabaf08cd959e60b5118d679db Mon Sep 17 00:00:00 2001 From: Peter Parente Date: Thu, 26 May 2016 21:19:33 -0400 Subject: [PATCH] Remove minimal-kernel stack (c) Copyright IBM Corp. 2016 --- Makefile | 3 +- README.md | 4 +-- internal/inherit-diagram.png | Bin 22055 -> 20913 bytes minimal-kernel/.dockerignore | 2 -- minimal-kernel/Dockerfile | 54 ----------------------------------- minimal-kernel/README.md | 22 -------------- 6 files changed, 3 insertions(+), 82 deletions(-) delete mode 100644 minimal-kernel/.dockerignore delete mode 100644 minimal-kernel/Dockerfile delete mode 100644 minimal-kernel/README.md diff --git a/Makefile b/Makefile index 680eac74fe..8356f21af6 100644 --- a/Makefile +++ b/Makefile @@ -5,8 +5,7 @@ OWNER:=jupyter # need to list these manually because there's a dependency tree -ALL_STACKS:=minimal-kernel \ - base-notebook \ +ALL_STACKS:=base-notebook \ minimal-notebook \ r-notebook \ scipy-notebook \ diff --git a/README.md b/README.md index 31423055bb..a35246f867 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ If this is your first time using Docker or any of the Jupyter projects, do the f Here's a diagram of the `FROM` relationships between all of the images defined in this project: -[![Image inheritance diagram](internal/inherit-diagram.png)](http://interactive.blockdiag.com/?compression=deflate&src=eJyFzDEPwiAQhuG9v4J0lt3Y1NjN3dEYc5SrOaEcARyq8b9bTDrQpev7PXfKcm80wUN8KiE4ELoEidiJVngOKQClZl40DvCy6T6wS5HeOM_73DtxtaDQtrVGReAOT4yR8HQ5d_Wtqf5CHoWCiNJxQsVsdmIkRyNYaTA4tPlPAfLFQpaW0bplF3vyU6HKko2GBHNF1-Pmv7Ap_BQ9BFO4dcsOrJVr-f0B5CZ-hg) +[![Image inheritance diagram](internal/inherit-diagram.png)](http://interactive.blockdiag.com/?compression=deflate&src=eJyFzLEOwjAMRdGdr7C6d0dURXRjZ0QIOY2LTNM4SsxQEP9Ow5YuXe87tnHSj5bxAZ8dgEQmr6gsHloIEjUia7MslgZ8Ob0P4jXxm5Z5n3sHV4eGXFtZMoz-8KSUmE6Xc1fdmt1f1EcwmKj2omRExnxXhCwm9jyhK9C6ZZd6DnOhypKNRcWlku9p81_cFGFOAeNYuHXLDp2r1_L7A-hzeKU) ## Stacks, Tags, Versioning, and Progress @@ -67,7 +67,7 @@ When `make release-all` successfully pushes the last of its images to Docker Hub **When there's a security fix in the Debian base image, do the following in place of the last command:** -Update the `debian:jessie` SHA in the most-base images (e.g., minimal-notebook, minimal-kernel). Submit it as a regular PR and go through the build process. +Update the `debian:jessie` SHA in the most-base images (e.g., base-notebook). Submit it as a regular PR and go through the build process. This will take time as the entire set of stacks will rebuild. diff --git a/internal/inherit-diagram.png b/internal/inherit-diagram.png index cb41999101e9e5ec32c4f29f1d43dd125f062628..6ca9b60102cb9f342a70ed6119d8bb64b5a0fe47 100644 GIT binary patch literal 20913 zcmdVC2{@H++c$bIma#I65TZyjWX!xm=Al6u%8&*m^O%`ZqzILH${aF8hKx~2LI@#4 z=2>Qzwf1@UJm34h$KKC7eBa*3-p6+Q>o04q`@Zh;IU4^o61qc*abmon$SO(mx46x@WUgn z=Z#!1JKS;gxZ!*o@$m2vwz0Q$xp~9!wy=Y@h1D*@j{`#f z|Mbt`)bD0ueQWq5%Z93pj z8gTlxih1?U7^il)z2vjq0*rGgjW3~dgK&213cN3pTtuepkOrM}16|C^moMG?iG+Q| zAr8%liHRJ}E-qFiwxL)hu7;m0jQNb-+;Ckd>}8Tv!Ksq43zQ2ZbxH#R15`FIj$d_m zm#VC+)Woqhj85|!vD9|z=C4fii2bpuJI%xMojZ;J5gHq{`f&P=HiixJ@_no2GxDm? zIvFE)>T_ae5RQ&oyAY~VX3d3`_qjroA*$KO0sBs)h>Z_}wm z8E|+{hL}%}TO>XCgEIBXfvYQd2iprGm25AqFhT@6nh@&|Y(8=_7stqx?N>~LU1gvO z{Be$(?abl7fkaI5xpR<{bO!^Tg+ATAPx(m6mh0j^&r`U2xB%wl=JfE;jD#q|3!N1S zQ5$RorQR`Cd{nO2Pwoq>5HSi-A!IfmCpwc!&q1X_wV$MO%MjCf5*`0j8%(Dq z(UIld3Hqb>1@(|TJyq4FNS$5BFzKN5i$|R<`)-G2deQ%5AfLZKuEectq-<_6($n+C zvLYK85%*0}1#Uk|gCt1)boi0b?gf?)o@x4$JUl$%x115Cz?q`#dVU@rwF`*O^YQU< zE;m!%@5N>HsP+%chXKh3twxo;@RebtyL8S-o>adHhNv zhpcPP)vX#LVQ+QEr`OEf$f$);U%tVveE72ptwPhU8t=wF-2|y;^t@`0y;lrZW9sl^ z0k(xTQa<}~%hioxBDJi9z1{i3>C70jH&^7&tEx^kpIOZwWymTmeNji;UrzM-(>ivW zGvaZdnfJ5r-!G{}aOy_$=^{q8J~AIXmhXIxJ(H1@<=l0i1+%jBVfoL_bV_%oHVZi| zr_Q-^m;`BuJM%vZj`Q=oz}+!Lwtd1s-`lkXU`REzwR!0%SEdpi{w$V{IDcX`?99?- z|50e(G1r@C)AgF{W^?%M-=Cl1=go=Z6~Du8F7y{4JR*jTX$u}%wrY(!0S`}m{r=?3 z(t86@)z$LJp5s*Zb^GqJZgZ+;W}Mwwy1(CkSo*l={?4YG@6~Bz2ET9wMnj{t927*d zxiCOl|K4u!q=?9LFpHVR`b?J_Q4QvaRgX7d!y3Q6T58)D{_*2SN7i`J8zk)s($hVc z^(P;(+ases4X$dMyDabm$Z?)qqbMJn9w+b2{W)7<{_gt>Zub8um(GMe3?Iuc%r zi%=rOW@^WbZ+OMY-xotV6t*}{oH&6WA?|a@c`Ri(jMU<%r0dck*m6r14;mg&biXx~ z!}}?f4>=!rKz`^oL}7d1Z|Yl8*vRs9viDM2M#e*zZ!(Xaet)K?#Ky{b2uCPvvK}~m zdi4FE{qF_}u3Mj<9{HLe9dWh5r1*B*;iWpF-;aD_6)i1l1f8y_uW?@!WupD@zq!Wx zCLR3u*rkUYNsr38--1|gZ2CbAVzn?uoQnhR9^YtubjD}fQBQtV)kl#l?`pw#yY$G! zWQ_S#dW0emOkS8dJ}6D)vGe3h!;;%=uX39EOKlh<e3PQUq|9<@s4^ovJNm^7)yFhP zW5um#CMPGyI>{TlT4O+ut)ZaiX0x9A}>gl2Uw!oaC;!@4fS9veaQDd96b!Wje*bR(OO2 zR`9umfcYyhhk-bxZbbjajbpF|T^ITzvs3)oVg#L$yO7CA z?RJdmXIP_OjIEN$a9&=radB~D(NyE&AFp zkI&d7pIl5=a~g7Lj!fk6ndR4st$%4~rr8{R6tmr(LSXvE@c|YkpH3`Ytv{^Poj+|N zak6fwAUP*WyY<5M{7;=aHPctfmE!Y9({o_iZ%a-soTD|)D!FxQ#J?lo_+7=uk83uA z?}Z>{5)Qu-;bvX6zTT$<1#L!ZeYa~phTT{U&F-JbPI701w2e8Xm{5wMF+YzfoO#Ra%;%M24 zF?BZnOM2KX?VMVQP5c z0v$S%(L(=yTZ`c;w?M1p`+P-?V;@%*_x=1WmVea*K6&zl_pU9EPKu%e;)4uP=#Z;n zSTMc;;>wcW#SFxsDNEiW_R_&%$u*(4e66MW5fv4s9Cldf^{W&7{EyYCZpK*My2a5& zG^ubr#;f);6+(z}WGwdWw!eG#ZqJB-fWSrnL8uz%O+6NhoBwrHNXQK)1U3QHgXzdgc+rxT3(gcJgG9PATbov&wdg<_=Rg@S> z=)Bsaus4$|xr2zTNETtvvc^*fs-)#Iog_V_TwaiIR|6iy#!=@erc}9Jy`C>sp!2lE zZA3S~HR#xxmowbfWLo?)obiSF)`D}%%>4@u9V((jFX^Z}UZ&0Ot491C?i1Ma6`gPT zR$Sx4Up<+_&9GfG{FxI;`p6z1!&l0@(a4DiQq^`$rrjrN*!snZT^!Tr_2c0gKbeKC z??1X*K+kF0)XW|~9;_tN(AOG@>12#&;fK%hN+DiU}a=Q`hz&P#2Ybom9s$5^wl zIJx=8A@%jCdS{+gsL_!N#c#&qf)=Pi_<_{$MSuVHkGvpRCecw-=*|*)DDdNoG@2Aj{PZ3 zc5RPzuAUY`&IA)xtsD4b$}|LvwRI_yJT>#N60?F+zIJiT(tnXx3V)3^u$K&%#A*Vw z{OKXW$}L-DjHy2w?>&Bf`j{+U#%WCit6qapGyHtAdwH1B@gChe9hLu&JEQ&0kSaDs ze;d0QF04}jP2&W=g7#WXgQNST)7W#-QkZLN{l2(G^}uWAI{idLq|k)?4XxxcF*a*5 zWY2l80Rv6o61G#1DjG4sV_j-#Jj=IjtRqV= zq5Al2ot-^#l9sD0O~k#sFbEcageOd;(besDG}vM_>|!1J!CtP_`4`;Q&jPOYc;-D4 zF|!WazY^P@-n7^T>xAP|2Ew{*Z6Qc$!nJ*MbZsoZyT+iIIv|U&hveH6^;8t2_I8nr9861(D86h6rU@qnos=dRm(?K z?|GNngBne*v+&4a`wtYPR^tAo6<$tk%I;Hvd$&&@)>gX|wX+@Ou$)gWHIBejtEwid z{@+^PaE1Sr+x0{ED^0j{ zmkyyQZ?;ly-%aLlKe@!AeN&y4(dYPwWhaYC%BrCU&p4;0=Ss@JZC2qjFx4BZ#2@@o zrT(CWY{Rr9=}Bx9!$6MLCDYUc{cqomd}g+agF8Q%%DCWi+%m;s;ZEJ0u-rxJA_3PO z*ZPF|_s6yF&4kr(uu-{2D0s5J z%0x9YK&Ff83}Fv8nB$x<#_+YZwLGHK&>pGU(%O1VTH1rJp?k!rp+mh$3Xh#{;-o~= z1yXY6N#z0$6UpAzvc9{!yE5B}(3eR`y7u<=4A0d>w|6Li1dF&b3gRn6p5g~Y(9F?* zDxrOLdq6mB;8K7ZRzKWM_pq%*r!Ky|0Rn$03d&48|5&2$PR8b?fSZ(@*xzLGs(ry_ z=Ba7~2VVCQO41F8^+y~1j61nF*@jU=`f0B{%rR=T3Q_W5>pj(peDniM00Vhh zk(=rd3rLlta@cm6u;(G(;>Qq^g=zddHKdF-)rdFXs*q7bp_oLu8X;e^L0?ssO`ef7 z)t9k|BsGIXHzaZQlPq16_HnEUMWA&P07;I948*!PD3v4?CyGe%iOo$PVFzD#mqq2ohkmyN~olX0Uq7T+m3=@XSjw@+N&C_R@d3fmBkg$YvP|9qaCF3_S= zoA)e3EW@r`T+3UM)Qhk?Ik9$=q<$id3E$D?k=-7Mpff}f7jNA9*kK2(db;d**6s?6 z_6Ec%+~N}QG?UgPa3)f5aT!HkqGymfQnQ5x3NIXKsUoxDZpCa1JeoK^D_*r%!0D7(z{$$S}KqQ9uzcLG6T^W1K^=Bel z-+8nigKRDhw+&Ug7?<1v1R3Bl;v2KGHZAT?@PVGF|GgdiJFAW<09!OldKWL!>nrU` z$jHcy-G;{A657yv!&S^kN=I{>NF8(-@{Q2gzy2ASlG5>KvdzDWMH^yq_dI6h+9*!Ks#l*I{qoqXDY$C+VhO}=E9gq-QLk8SvSl6q8s_w%ELPp_ntO$ z`EvveytBG&WTXL?xcT|%4FEOJddo+O6hh)diuSa2bkKGrNZNje=yafQFZA0G1Yr1} zZ+!QK+E^w&7?$B?ESXwQDlzA{+++gV=xSpwMKv2MZI*DgdTrE>=++XDjASQ30tKeGs6l9Sl%q=|E1MlUU z7%97-MF5TLE5^`^eFB_TIr-`u!U{QxaQST?LqW-WUm>kSaxDZ~W~1lw4y+?|p38^b z*-^Lx3(RU|v;oCt4eg!i!r7`LDv00tn)BQ6A}j?RtNrgP)SZ+qhzZHjfXeP{eOeAX zNH2!6Z=6ou5+uX*OAP(bkl8g-$;atHICeVXacG!;x?-?haJfFTE80MZo#+(8YP zV`W4!MZ|HmJ}_s{z`y_tpd!5DXs8%K8e|3I$R&D&mFzlp9rKN{SEKDhy99Ob^L;~T z0#wzycGV88!_5GAA-Gm>WzG`Y}FK-vyIei$uvN^A< zt9wFHaznigZS&_M!byNj`|o%E@R|RpJ77XSxdz6fd-$pjO~7sui<~!NfKrp{;%AW0 zew|?hBmpTJLPjw+8&RZj^EiJMhKdP6cS|`rxdz?88)u*fQp)Fh4&YL=%ZVz?Mm=-< z5SG+|`Z>7-`7Y^nFu|TF{=4#JEo&|6;lB9%X4jzKDr+@=8{UW|<7nCy5_3}afCp*0 zbZ433wF1Rbd0Ypz-aJx8;a77HJx&nogS|%*PtvY@nYoYN~6{QrgZg zblgkEf$f}ld2FL8RivZgk*Z(%>n-ST(_;@Ki@ef59)H+qa0m{f<_V-7v|GS*3RI`v zw}IYSX#rCdHM)15Gv1KSXBj$HPJ+ZZ+NxV>Ay0?XM%c!R)qJYc1kASA7<`fvSrLV_ z`%dWREJ;&iERfT@4A=tMBKw<#%!@3r<%QqSLQ3B$e)Uy#pgGOYuwG;u!(d{+NIH{& z7}3XbX+cZ!*f;tuGg5F7p6M0i5vtNTm305V%_13YZ^nE<<2f@jtokvHnJy|6i(~or zlcGpoLMiqyin_nQkg#8%OSrA7oa%eIs7xu91`i=e_rA}AOxAY4f;DhOQWV$HgM<^= z5!&OW%x)r^eTtTib&?E5rbtg{8njCnq0h&>CQV>QhSDnezqxU~ZcJg6CMrAj97yF( zE67pmeTFoXpQDXjv9co%_vJvRpzR^F0uh9BD-RT2mCg43Tu4yu?NV~oqm!^}3)Cw}}HUgiW6@5~n4Psieod#*tFQ=~arN&_;KUWY1R zb01mcn)@N9)IhIf%hahjHytkj^kz`Xrwqn(Dy|`GgHxO4gcbUuyOz@XrzoGGmxrmm z9jr8uqq9}*Bz$PNuuos7M-}vg()#?f^1IvP!SDOcgF_XxhH9_FJuX7ywHi+TJ}7k~ z(1A>m>znMbwp%_jle>EL8}r@)u2q`Dp*1yshkXfoxP7d%Hb1L#x=GZio4!l$ifM@4 zP)CixKe+b8$gw}?IN7mzAHKEbPuoHllbz+5J^B|3S|X+WfV49XUH{b*f6do`wF5G{(bN7 z2^JOoGC2-S4v*WMWj!tSO&mUL5EfEM$b)KHgG-Y5oq#f`dokz_dLp|6F1;bIXBhp8 zeUCO88D^CS6OzfkggmVK(^;ZgK5zY(a%i8R{Scr0q1!y>W}qFeyL03dmX@Yf-zbbh z@Iu=>e2y(+LRFd@Gaf7l!i?#*%cYa@*sn+yqmP+*fHJp0HmhE@#!)#?>#q=iRz z{Zj(hQZd_`Z)rQP(2CJ3F;`CBk~uf)$nE?kk@x;-G}9ZKbnEHxWK1m2|CM~hAiw{N z8SjI&ZPYK)TL^?Z{7uQXv2DW2$BIDgxn*U=pK&qD=pUOPAI1jzASJ@WbX!@v_+v^~ zOH0ar37R>#ph`S^kg`}3D@10kx-!xK<5sa6>2T8s$3Ns9R;1uQ!?%GL{ktM$XCIB8 z6E&+>aWysCBfC2R?JP$lbmm+eE{q2Q_!2i&@4lkWU_9u@?DV#ri|#cYT7@i>k*6N( z4h)gH4VLdEK?U&^~9{MIt{~QdOO@a|xZ@+I!w%7}M$P-Bt>)s${{3#U|+lh{N zCOk}J1JwSX(ilNR>s05%mR$3E(sR{NbU<`bdx}CXSR;o8DNiBPSW=6dJn4R%L1P_1 z)q7^^D0z8!$i+?|p9s|n>`CNmK~Yr6SjT zyAH(!vl=fT*^S=cJ2K)=RA_um+q}Gm!V2K?X9wQ#11)-U>|-z!6O-uOo|DiU($u5Z zpK4DyB7Wx}P}nzsCOv(<;yJWsjvxh$Iai`W!E*H)je_^)#E?tJv%76|gbk4@w|O-{ zBXcV+S)eEBq_j}}nydhA?2pde%lzo*HWvpe>Kkd5bhzm(01_c6C?KVv>3n@YY$a!O zVc;DmR?3bICC;HyJ;*5^3xSCS%>df%fac%FpqC93t_qp$&VC1tS;eB~d_g&M{rqU- zhvE_F$tJqgxh4UDaf^#b10H$)>J>CkPZq*iXkQ&c5@raZQ+ToOsK=1gQx2J^KYyIf zd^fHLSFb3eoj5$bpVld>n!b3)(VU*U9f+fVz|=`ql0#)A$BBNjb57Zcrn7$<^s zbZ?|K2_Mcn@jtu(F9i)toF}!SqN8QjzKRc&*|I?u zPe8;cNAjwZtN`W#`nlOAJ4r1?(f90hq6@2pH64GVBMHEfG~2$n=)_3>@_Ya|@lUf7 zArcTq<`);3)yS%J`g$zP4ki^OEChtX-&=dXe|?^ONJrEO?U|uU zaTKFM>?tXv0@l9CMNl#Fp{;mMv!<5T$K@?l?*Rmc^aJz&K@Jp{m76Gv`$BaYdLVur1~DnO*SE&ZVRW?NfuvcT$MUa$k!4zuHPAg?zkZ!F2)T7~bi*tC z6*Ci4&l_F08@ubXm{HPEMGG-e>I%vk(nR_fcnKSZvV3@;D@)#>QT(Vfg$VxX?o|BWk{JGV6A~*-CyrL{ z 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 literal 22055 zcmdSBby$^Mw=aCtAt|DO2nYxwN{C8_fC7Rbq0%5oC`xxOFaS}I5)qIPDM{&&1xlz$ zNOvmTU5oXN+vk1v-p~Htea=4n{B^i4FJY}aXN)<1F=p@$btP&_7D@y`s8y5|wGf05 zgCGQDb60UPXr-e!R)=2EpGH_R4xr2treb{v(Lyr#TKEGCN<MZyUh1J1@oOF1H&Ql?9j7AW#@e}x1EkOo^ZIVl)&uv(&Fl?So((!m+!JV z%iYb!5C)t*M^eFaeRYqk{M+?6N3%K2Azh*-6(?oU;0r#=Xk1u zK#BYlt=TbUXCg&K#rqN8YSXiNY*+WpQnCmWKPLqRiG>DV<{h?i?Gxbl(oplxi_iEd zcPxMC*pe`104L`-Q`(a^y*+cB66-fzjpF$(t=AieQTtH(!&l@yB=PQJc1T;|blb6| z)f=s+luEKJaWaICK{P%GZMXw5><7BjoSZJkjw#1qa@Yo(%=N<`;Fg+x{7|!Z;->#t zSorPRw^$PIYuwvA(Nk1hWLcOX|&7~TPZ+?Bf)f; zKg0=(!_YmEqo;QuW*{`Jdgm7z^nmhc;d^>2Oo7PfZi164I#fPr8)>D-(jn(IoeuOw zF#TjVvYF*R9L*lR%~nxld60djRzp#7R*Hcr$%i4IFe#OgIw*d(UV^Spm77?f%-^~J zo{zOQ6|pV|NFq#<6GFOq&(BSrWID+9QQUYT1kEg#Mx4}}=jQaTqel70`Pz<}RC*~+ zu_va>s%hi*9?9Lg0T-w#LhiDEb)gHA6PkWcA5Wo1fs0qWdz+x`EZW1*?-8__u@BZi zP*Eh4-J>7Rg12_yjwCI07ZH2YMK2m1h}F$HhQ4Sdq3K!bNy48ZKK&!`+|NzTkWNI< zb(2V%!KHJ{a*OmlNpB~Lje>+|>U^|f<$Y!>+I5f7Grjgh({qtS<{Kuy4j>H4vn&{ic z%++`k{O+;5Pn-JNQy=oG-}IRHebQe*Z$;@#BR-9stUI` zaOBuA5!*pAmJ8NMO~fhH-f}12iN-MAix;EUT4mWWTO)pndDXkm)Dt9x-Iq;Q*Vg*V z9Jt~{?Rdn+W19pjsW2xbUE3;LY)Gk?TP;$z@ZGyVGVWSODBzOU?|V*ik0z^a2xjEwJnXKK7J|Re(dwI4RLRogZZ}0)YMd=O^*Ol z@}N)t-aS4)+?)xssI6f$o(rZrRXTHxzVkwHkK>?2qvnkpbTkT)Jl9hkCK{Zl+x%^E z%Skcl10i?s-W9U=euU5;X_Z=|LVo}LO?CXz^Y^MTt6_foj}`_>oxV_uqHVXbGnH6q z{gboGSTK@TgLL$Fj7eHXMi71rf51LaYL{*|QoX>J+0&*KM5d7D?JB%yB-JK?Xj0N+)9ep2T{HN1v$=L70 zu~K{Ug+sF6J%q z;)Z^>4LPAU8dkBF{zPQ$ncBP@WgcGNB2E?E>v-zaA|80#*yBA9o`jQ=GvE?IPuA+H zBfOI@HZdT8Fd`ztx+nKUt1Mnh;Px-1bAR6(@s?rt#mai`!E9@MN`2gY=6%d-Q9HKd zmmVM-7cVj*r2|GYGG5JZE>09QvK_KBBXwVE7Tr16TPi=;o%5J4Xxv6yyX4`(YblTO z&2gf%vWvauVZUe66M4>^qsGW_$Z2ZQ&&4&z>tfWmrUQe?S8f*L;uWU-A5;NuUEA>1#xZDYl;P zEqH!H@>SaPxQKXG?>XM!Q9FA?+ zTo@4F=+vG#Nci~i{O-nFBh1RrrMQDFtksX#!tuVlGyB^UVNwU%6N8>}IYqWZZ&Fja z(Z}d5Fu&K4Mh%k!8k%Rn5}k-K#-4oXZ#~a=cz9I7$dD6qcb#c}0*5&adrYC@)1g&* zE8n8&sBOgzkGlBpBQS}}H~Ve)eKd@HcP!p|uc}D6&Xd>th!xTMc$b3f>hp}r%CpdO zhj-Efk0i0ZB)CA0ccS5ht`QVD?xeZdvLx=eHt9$0C z=SQ&k{DW7mQ-`Qn#e{BXX&pZBKqDpA1Xj!5PhM^{Q)^EK?%?}!tE!}CtM~W!Yl?e} zkGpSl-6r~QD~Gab`ST%v2s=;Mm$vqZD&3Z7qN1Zu+%jOe)9{>`VAOon*z~;6Q8D&u zB4?^D<+U5lork(!;tUj^LuR>~k?!+*Ji4mau2I5B38^>-%d?a!lb6@ks||N>IdEBF z&vonBt`B6yqVxlz3u$R-S8?$X5r;PljkL71I(@FcxiALPW;8^wnnP4H#`u$`Lj$wb z<0ZFp!)TcpSX{VY5hgv-OMjfnClC{|I8@mI6OaWb32n7H*RELu|8qXoL?G1D3qL1> zl`bgg&JpAa8vNcNka%#KF_FOfO;7*jH1Z6-WV%WKi=|?n5GCfHr*@E-9fboLMZ}T& z`Nt%^5FHM>1IB@v%KBwZ5!?4%~7EiJ+>q-~T0AN;B16p}QpzacEh z46%aQnV*;2D5KQd&N`R#B61lw}FD{lD z5Mdc9zXuV^JP0cwlS|M4eBA+VFF8+;A3usOzu>HQb=l93Heho(omm!=fFs(3rt>to zZmO`06BE?uRz4@jjPCuaL#7WI9px!vEatj|ctRR=nDcU57SWvWrv6V~G#g|}BbJl2 z5!#~vB%U9o-1f!QJyxdRYsi0vVD*oq)Zll!_BqbKG8jcxP8^2$8vjVrZ#?Z zC$>+*sb*%#^HRRH{;EUa7}JL|C6**cVxq{Rsx|+8l4TJc4Na)Cczug(I&M+irEf{ceddf0Pucyj^&Ss8J>?C`dWMLLMpV zwZd~aB99Y_XL|bQ;}q-rWbM`IF5F|tcVVui&A^?u=O^!{CH=``3T?+4NywpSNtA<_ zVuyU~F^v0XBngT-2$MQ!34^5rL^mI|ZE{%4vL^|)EWv>6^xz?tll@8Nr8^%-vQR5H z{3B7DFo`eSKbYE~fQ-2BQ4-E`{@x=PvaGdHi1i39|c#+AB+ekfFZ$M$p!>PB60GBM7th$W}5t zIzc(rQ<&w%3BF#lKdyNA6#q|ZI(n7Isfwa7bGYeC{fjKtc6%PC)2luM599njin}?(``_(C z!pucYvM-kuQP1xAJcuFl;EH0MF2BFy85&=i(GKDg)znKF=x565g!MYCNC>8bp;sWh zKMBqZ7mB&l6e33vUYmEp*&t=WCG~8Y%KBc;uI$I7^um~L{9ZTnhGv#j8B7ng39UPw ztWB6$JKUX8N2#+`U7@y-w_EyJ7th(Cs_sm5m}7W!@}tqMOWWf2Zb%_Nh%M>7jYRwj zIrzd~WSxqpwk8ZRj46s(1zPM%9A z7$z<`rD;a?sduj6k+Bgw@l8B^mfzZ}iQ@WqTAHSE`#)ReWg^VQ`b%2rvjp< ziWo2EW$A^5VOY<+r6J}_rxK5!l4#F7;Mc;%Y2!H$f2q4(L$^U>YusD^f z8KDb65YFKyxJOJT!(Lml{DjSn+E;*6gne_)<;kqc86jwGZW@?Dr=*tqazpyGFrLI3 zG!M=lwYgMxeZTpR%ZphPvsfKGr{g$hBN%-k4{81lxxpDa`V%u99qQ4|;Y1a4PIk!Ky8V$+7UF@vx&aRT>R z@vipk*XLf0B21E8mJ4)=iuITC1gIZp`DH%qfLA(m2aP4I9+u4*YxdIxmU7wp`J~mW zZSOCx-8tvtGOCSJl}hWx2Gt1(BmJWO_mC)^B!X~l6J5#AUcpoW-RjFO9t~<6f-A4J z&}KyuBdI(!hOm|(UnX3SmbSLGwO^^_-bfHMp=1XZ>fZ zT%6kEG~VBIq#jasHrL+R5R4X1M%%1|6!B6@OBf{yATna9jeQx_*7{BHQgncmvvHB~oy3g}Ct6qI;t0M&_+S9hvR=tfq~W z-57VZOh5YIJ6g!|_bqB1o@rlFaS8GJ{lAuD^hp3X+KkMNuw+ zuto(vy{e^WvPGXie>N$o?>NHitiXc}%!r;0z++5|cX5E#=2pQujZfnG9aj^Wz(W8!VuaD-9GzXB)I>FV2 z;35bOo77hTvKoOjC%*ppL2O$8jL{pn(L=>96A!uY#M+KK08DZBWe)R(=O?+ixCTQZ zKa|;<7XdJE%VsH^bqA7Gar;pOrYv@*znK4=LCG(`S;vV;sYU^x{uagVPz&6)pZnGR zUe%%8@WD_;G=E-Igy+VrFu=<%o^JtV92GEBc5rZT|0Es-dD}Yq{MNql zCfc`%Pqn>QJ?6SN_^ms~pfCRp5pH*b3-Z8sp%TyXum^7_7)M@8!!A8WC~#v?7xN#mt$YFS>1r6; z^%w!8?GgMz;}=?4HMr=#;VN+ykF~y)MlX7R+e6=Dd2_&y2w=Hw~edjdQQoQT?J=|_% zwhIE?&q6B=6tMu2aSiTMzB~JYU>h!@`^obna@)k`A|%29sIv765%=Ah^e_lR4B0l5R0Nl=f%O;_;^+ruuV1oL>>T=fIHwC@!dNIAb#>! zq(&MbmqEv-bHAphI$(e;XaDNV)LwCya$Xuv2xj0t=(kGJO1tbO<(tvA0$(RjUFdDYRjOv{`Cnen$@3tjfe$I078T7eR$92&H(^^6l-Y@y#z4}Y-S^?(k0c}L>P4~A~&gy-9-0h;rWiO z2imbk7Vk|-Nm(}b^!OQ{w`|g$LO^F!xGkvzg>qU@kQZ1WS=@|9YI^z_%tUQNL)L>& zFi1lI8wQ()ia#B&!zREC$gNtv_DaC$+SRM1VN$E)UR#TQAhMufSTz4_G!zIu=oQ-C zTsR~bcj+OMxFa``SG7usG`%{9vM6xOYP0A_J`gK!JP%z_^gT*a!=+|yY`pyuVnfyH zcm8<5qlVrq_0QR5+46dtUWg8V1+M9}wAUrS{R#GagJr@f_X1QEm8`~8O9BNkA+S9! z0fAKy{dNow53hx|M*ywEAuXMdnwq*Cx(Tt&a(j7f5GKUfh!@O~&kqMG-2`8-Tuez# zeGJpM9r}3rA&f#m(m-kSV*O+{=6cd0N>MQhVW!@CEgoCQJJk{$&pQ7MK;Gw#H}Ub$ zN0!1o<6RO57IN)JlHX2+E3u8eGO!(6@6eb+yBuQAzE_Sxsbzbr%Gd}>ky$1BToSBW zCUhHgAcK340|7HR=+sJ$S65f3xp(g#W4~n&;QO~8ld)x6!9m;+5YH!}(Jf{>GqVj! zLxJXrhpT@4`0?wvZ+BoSAcI~@pSHbaP%OS!F((G|@N?XgoW@d{p4@iqPq>!4*cfqc z<)Q?T8V%B0g9-qTd#imUdkmeZ!(Zbv#Gnxb_=_kQYa;H;qsxd#kCEF7e7WX_-}3trFJAa`Gc&zos`87CRiEZ+rlay!dFr&bqsK53`qvrU8LE+q$ZwO#F9AlLVbNbL0BWh!Om#y zBY$X*jK=xlPm(u)vve5%S|-JJ=?1V$bjzNfqKDB84Tu}f&W9-N05t4!t4yLGI{q>m zffpcwRmHt`K{*P&GA7L5%l})A?x=SXZJV$TSF^%JZ9yG{O}pzEhh`0NJ*n_$xAoQn zBVuB1-}xjN1vFX>Ab28QEVkdTl!pnD7%hrsgw21pCy#x@3FxjfQfWXLFxuL5XZN-4 zN&?xLz3RJ1Ulm^{d9S0exWd759UXJVtZCu{S3xHC?N{v z|EEmA-%qV~_J4h)jyubbUI7U1uD;*|ALPOvIpOV<;p+WW)9I za~o-%qPgo|iB|-}5Qdl%xoc$=866!xnx@PNzbf2CijHa%M$C@bKkdN={Wr;i(bsLi z7g4a*XC<0lPv-7#=kHQ;(58j3lAo)WqquR@^MN=c**C6)SrfHfKl;qanIf25yk#uC z$OU4SC$FfI2q0;Fsdmbfqli?8clvOJVH`kRDVv&)wBBq1j|}L;YjdQWv5C{M^y!+o zxGNiioQ$uJA`6LzIW5hz+u7;`&%a^<7lbzn+W4xHo5ugZc(NMD0Q^*Yn+0<%{*w- z_2a%|>(L);IgZj0f+!79Fycyg+&4S+<#$p!-gu_l8+HO+*dQHKd4!5i+EnjElBDxY zuv22-bZu*99QK-g%ntg(nGZJ&iIP>~FgZ=VKBMzWwfaQKK34AO4+ypYYG20JN05`}kDIw*HU}0Y zl?;eXEO={Nz9ZJ(FLM+q2{pW>>ye@BZw;IbS*vu3ogGnwA)HwQ>rL$CmS6BJK8-UeQzB#Ts(bQ%IM5AK|#zrZB zp~nYmhcI+AU(Luqe_wPuKezGb2oMnW?Vb8-(syHYd7#f8|Dhp5&$-r!yzl7XV;dJ4 z!`;BCTCC%b0s2O{2%6UQ9yfhcq-PZ{2!8we-A1D3tqAT2n*#L7V4r> zoRpCBPW3`bb4``LO*qPEc4j1F*vWN1ZYzYr_2}uz^eCdVh4*(b8o(x?A7q|H`2{M> zm6{of2PkW*oa4w`Qbis`N8$HAdEoF+E|&!y=5QgBtTM~EvSTEMr{-wVo#`q00J6Ye zr?RgEGiFTs0NdiCh3d4(%IAb8S3SLLC#}=}e>#Dr0<$2qXKv_V3mRf(NBoidG)nVx zFNWrC_qp(1Be?W9H<8qxq4$+yFttxXkGVpkJSsp2L=vfI|4k~sc{_orVlWC~QPp3P zafZ7DYf$|8Df_poDDx@gz#v47C8#G^UjmBT2Uq|K+fZ(KSJz8GG8dA+J!qixl?f;w z0~LAuhs&{Ky4SI>Dj*!ovz!WsNPGpdhr=(g3ZZKA6Tx*l z{{8ZxANzfIzzue)z&Wa7+yBNJgg!)hgErs|YSE^N2qtK&Q2Q*tx2m%79#Nu~B5ye4 z9+Z2?1}oRR54@H+Ov{BrU)unJw#OZBmAkb3odas~&bHt-iR6zE0trM9lYJ%h;5z3= zKHVR$t_mRyE#wAdkGVC4*ZIhw0jXyBhaT9mYDVs}%N1B6Ir{klCLYu6Z*~fgk^nE8 zxdy>$^Lh;>CW7(;hvV$AIXODPa60P~#3{_?e`&W#^^^gWzz86^iC?o515LLJH|bq= zML)xs@K>XdD==A_yqfMGo^&@L-Cu>vUD2Mhb~Hw7gPx6G{Ncl!X8RK;yf~Rd*Ap+i_(cYTFe{`wJhqY|qg873cta zhuQ*abXk6oq*(11VH1IMudPEe2#n|F$voxu=`ti>EGh|u9)BSt#Hgw*odx~-JPPlf zd$mVlRB@e#tN;{_4=yG*rPydKEG)VnYDN31#7VKW<_)5UiyuJ~VGg=cknnQW54;x3 z)Ad^`L7FrMz;hqB2w0nf_za$M5QXq_9wQ!8Cx(6Z7VhJ6p(S(@gH1?c?9m+CWv<&B zKoklmAlq2p=rIuiEfNxvR+3|eNDV++@!5=b+q-jlu|jtU;gGx2ZOLPMEEn(BL0NTjtUekX=IZvbNI54$_4ipyMkXbfzog z^{Ctgx2436v<{X#sa(JQUMY+%9@LK?aiU=W92!DTs7^GzAoz2Az-ypQr(b?V3aMKh z-Djovw;@+067tz~F0mcD z1_1668Eu*`ZWq<2d$0$Lz_tLOnM(AN5wZMX3b?{ypa9a-x1O_nfMuGD+=l7_8~;%W zq3LG2bB@1L3Ikp6#q;M>6|M`{py|thzcR3|9C8NX>_ct^B?jn)dtLy+*aBMN2Z&4TzT5tM+G#?jH3*2p3a+lMWhZE5wmCqtys?djqEl}O)Lz=; zeR>7L?3)YsKA(y)l=tdbQeZV228K zKS5ESY)uRsSg-`LgjLG@Wl9QXcb*CR!KWvOj(r4?xJ7!)5P^p6Tw(>deQ?X7tV`HA{Ywbya?rh zDj`r-S8rI_YV>*DbaQ1?XRaE^(Tq9JeBpT=$AfuS0T^@ut7LCVBnBdS?1g)Wr9Ib! zJl}%037iTl#>#@#0We)ec)0(-0*!1VjMLV5aVK|B<$9|;L_ol01tP^8+c=R7QwhY} zV;CSB!r#7Czk2nmdzurp!iD>tnuku0ap2fz(gRT}@leYOwxXji8kZeR% z=Kf-vZ$Exejr3&eiGccgYi0==JwYvAEd0{L{x-m0fNH)ZU4B$H{*3>%m;-0&uqQtZ zn?DQ%U}2bKk*{7gN!aZ z*)DQI;bOa#j>v}m#k=@!I`E=MsEA-_Zsr+(x{tSYbUe?@%zSfr1o)PWfk9hQ=!>9= zoI78hGWwRPMDldmqRaTcL=o-(NYjKV|1UsL+MzmBWDd1*L^@5u(t~86Yh|bmLx*Xrvy^o-07@M0LXd8o_WQ`XMqL@Msg|hleowqm<`t1N=ovl!<1EVr%-66X%}1 zDr$>3tREqdwK>=ABvH$k+=NFJf>xPIt8+3nhrADE6Kw{*A{>>o<|Dm^`PgROl*x1$ z5~EpGZ7U>)F8^=1MTk4?@Co7^xfx>K#{xavAL)y0C?9N&f;npOSl8PuWCs* z+27zGL^XoG)^CM3vkJ&Yrg;w2-7=V4$RMgfO6_^z=HqZV*AGr9$|w0~ z=NHQ+(d@(MLD$QMfg{!rho30RqBurmFj-Y2eosm=MV`T$ID(WcXJK$hoC2~5$uld!;%Yvp&7Ey;FBL%U#-{1wm;syFOD92 zL8#!Qz$S*ni>}BdO#0zV7+9$DZ()z1pUh?Ml58!rtj$qSV5UN)UYG|Y)~7ODR&Wmb z13mV~xFpu=ZFg_d9f7IU3fDTSg(fvFL=k+LgmCHBbFmaBM_A4~ObWc9FX>i9Z z>~QG_1krIoi8by@LHz(YOxhtlZr5D+#FL!?S8C{b)e4B z&KLN%7F`}G>hU`530|bSpK3H1*EHJgG^{U7(RXFEIOtl)tPVFL-wWhiQ;wgE;OGms z#V8Y6fNe8EOa*@D)-fODPU84UO|ODsAkQTl;Voh2qzG5BKk-%FnxFd)NS=8q8vbT! z*{@aUBk!W;>4FFGKe-(Kbwq$@@Lw4uazSLh-({WjX<^DgxoPWR=|j@VF8vV2`(eN{ zqyhcWd!vSy_>A6ua$}HK_&+`yyp|OIj2}z8eZha>a3*z@pK$D~Nu4Q*PUewk|E_*U z0>(5eqcSiiz7~|d|4)b_d_85vt_vSt{F>+IQt2%ItN!ylogptYyKLNc_u7ej2`^CL z43+JtMynndpDrNms>&14#(g+Amxcd=ZKcq`|5VHNL;l3Api;-m2Qkq(`|7htXb=&9 zW@3{bwIoFO+TC~eRV?_OYg`j?!ntClT^3n>U49m&A3zpWxAMd(IcRCJhxYayms~LT z&uGSI#yqbvcirU^!wsBL2Aq(E=jg&RZeW!4)Gc81A3A9rMdCh4gTVOk0A;|BT4-fA$|+nC9@b5Po2n%36uH|L4vVErbcQjK z1aL)A?IL5f@D5;=1+g?5#8M21rKV(bl3b<>bn%My(bWPj#Hd&bqiJ$|H!p$$Osld} zksA~@_Ao&k6m3}~HuZwEM*4~S+3$06w?U;0#nh)oN@5}JUYB7pd~wQA$zh~k_3l{ zZ?9hnNF>&lm*r*X(;;rzIg$Zv1A3SW43m5CHu$M$fS!z37L>^UDW7Vi4V{e_Qo@!o ztsJi6(*Cr6*7l6aj(OK_PfbvS(bM@h*ke=(gkDV?#A=<})bI=)9^rZ#X%fdO(}jKg zqjQ(+2NmWj?$Pg;^OC#r`|33+F2I9GqTdzmhJiz-NNh9lOxIz%_im0a#CD3mwWgze zaSM;>Be+4Fa@(~rZ<$jVefxKFCItDRr}_A5r`AptQG=;9B_-uP-uKR(vAkZEaFek6 z2Jsn}W%CvI)&3_pH*O@AEt6vlZ;(#M0$Aq=95rD%q_4U7lLl78fGsuLi)>-8<{j12*GUkYIK|*JM6_mmD>x zBB*o)@(O4UuWg4aepb5KA?Sm4XX~NqvDiXU2dZHjlsvct&-DDbXecDz1@0?mkYG3F z-}wSIC@lD!0eApZ2>}!W$twyf!ICU&R!43qfJ&YW055Xy8)R941cp8`NM(;v-!gRG z8VH^-;3y@-VDY#mR4}d&IkvV?I?@j93>qryD?yXc#)*@lVXaIwMn*(@M(xu8QHLts z(m_8!b#7D%8yqwQy^QT34xV%jUM$rF>pM0ev%jqHM%1n)klhy?&4CszcLXf z`w>t#NPq0cSdft$$=JQ+mWDsgfZEvU_0fCB5fJBh;YL>N4m)hGHK>@&ARrUkgOmv> zI4TSR40N9BegWoNdbmvh$sttrIWB7Z3%tRp;7dJgR1pP;Y8+I3P%07BI@t%E(z%8Q z+&vC<&-b8@34lfxkC`fQZx{6!t zZuzTWBZmOgI{*SR;4MV}X4{*;n_|}L7&O{S?MxP{_iRDQM2Q3s82rrOVn#JV+5Kgr ze;_F5+0J0l%5t#>o~Shzpi(_Z`Ghsll5_`j8#P3Ug7e`Se{K?R z3ZOa)J?t-9UITXJId=cIpf~i)K0K`2n+w4(g??6fI3Y6leJ8N~tEa0cr1Y=AWGMu> z9mo{M;g3$>OD1YdyM7$}s$ZZpuD`qbVj9{?iQVVIZ6g=PbNWR|0QgXpD3`z3)YNpZ zJ(U8K?=(;|p%vr7b6Nn_fww-JdZ;uA!Zhmh4wKnEjoM>NC;Z9Sz?yn{Oc2av?!?pJ zglLu7J4-@BV(8L!6D5zpET8>3ox2HqtjgdQC|f8QaNiyajFof~pp{xijPqhpU<~8X z*nNxyjQXDeDk7-xEk5yFWO|@f5R3qpJFCA3oja~Wf5w98A>XW?61C2wegQa0x5`}@ zV5Ss)e+@)9P0&9 zQrn@j(SSp*FFj;I0|yM9DkxWg0GfAc#LNK`&ZUITZXi~^K!8ILICz*`&sx3p-~o1E za&HN1g+8J8S~L2DDA-3k8)h3(Te*|fu+Nqe6i9e1mQS5NckcIG9u`%Q*B6K4P-8kM z_i?~n6~IhTm)_6;Wm5qjo%w<_9qP7!F4B_ZwlwU#&>s!v7<3GGmF%BI`v*EE-nm@` z9ST&;=O3ebHtL2!3p~KV0=+)64CIm%m|qCn;4Mi(uq2k9CL<*1&NXTpuMa`ZD<Ie4uL9VV{6^*iuD z*!=b#fDF_CvI`cBcSS`}pvbp_BL#tlg1W}ecP(!DXbMQ)p+F=)>50|Wkd78MZy0qf zM+ppIZ!A}TeLHJV@*HAII2oHe224K}S$W>O@*!*lV6 zMo^HJe6h3>Xe0zUzSYstR&iOR~#?w5uu-;KiHbU+F14ZvGw(@8 zPefv(1_xcu(pF#(7G*zcHw3x39zh|}m7K`#vWs^<6T`ZV753gp^q@ZNPBEt{DH?l>JrG3xF?rw6+BAdqmN!*%h~mN8f`#BIU3VzQTWgoyQi zQWhGEEJ?saD~iw@cojrifE!P9^z%P9H1Tn^9R@rxengBnk` z8M=2^-M@bZh_X5$z@e0gOUkAP%tIVZ`)O*ipJD37Lg~mtfAIvwtuY99=(7PcUHW;% zv2sWX3PaQqB%<5fwRqIybu9+aS_*;6`SYO?v!}0yvIY+Ib=@OcnXmWK6B;r!-=P$zi68DFl#a2W zhC4{4&#bNFFw{QT_}ntFLcBTO z$KYZB6)l4+AK>WO5`~<|;%_ejg;^qDbU?G_*vI);xv7Gv01}A8_B1~R{5q?RvIpU^ z`(w1SdrOyKVg0_BbKTIDkB@KcI@wKW0pq+8-OVm7^bCbAKckt*t;R0Au!<0fY=Uc9*IX^M~gtF8pDICx97%H`LM zxztVpk{XFg2ozKBFRUU5o()nB-pl6>(}#b#2=kP(w0?1tp=rSt2GdrjPGsE;3F_xS zE&U&thWwp0`8Pv|aO}?wJ4fWgV&b`*AKefhXYxNT)y#wXyJ=mrrk2QaoKi?1Atq7z zoNkY~BvJYeTnOsUu++yXsi1!C)5yz&gzKP62E=g&!>`ogG&TBa%p5xSrzoLu-O?RL zGl7e@XVTZ)RncaoAWOA@q?VUbneK8{9-r%4x2T zpUu6Vei~O`4?tP-3z~KF^QUmRZR}%@((DjaqoSTe#b%*O2E!$sO0W zZ;fv~edW%N{Znm1Q^QbkRt?xnr3YlAr+NvZ=w`^XCGy$K^P(%NOoC=jbbx`;oy9k2 z;IBdD??Sd;TG;f=s1_%`#6L_U7_m&E)Bk1~xi&J3WNY}};=OV0S0pg9>U-7$LM!-5Zs1$;@Mr$iAZz&1?Kd`jOgqTAhvz=yyGu0X zOw99;FkirYi{K+WiM0#yW`cjhM+&(=)|G#MW}rH~S&ArYd@FsXZrIf4%@Zf7&md}j z6k?m?xxEYl{gQ-xJ4xOSzNJ9A#i?wtr|yQO9gJk}=KaH3ViMw`-&;N2xc6%+il!#2 z1F6fcE0BCV0Oz^vO~khm{ITfJYT=Z$|JmzBOJrvFbbY92@f|OeAwl^gE{%!Tj3Z|4 z!Ez@(Pi=z7#L5@yiP{_0aXs~+avOq4yQR4w4jy&l<23Qn=T9LGA8+~ED4EVNB;&le zPVROj@>39UA_(JibYFl3Z3)6T27A5eu&llDoT5!eNmq-l#=*r4S$>5X2k$b`>yQBr zatCz{rOVA(ec;MJ80)57dbb)qqLNKhqy76`eA6&RT_s!PYR~T$xPO5T-m(Y#S9d|B zPu&vneCf^NcF6*fjM*Tu^sEP`LKhI4t*zO^U0Aq<-=*?{F1*snBG6e-p-mp{clUwP zjXocB%TLCU5*YU^{qls8@ec>5Ud>`x_u|!XelMYE>rwI;Z*G3uT?yauFl)EY{5-=j zZ5LLj;V~YVL!6(*a}QaRN^aQy!hdIXPBh^FWv=F+c*gGRzgN!uHw)nY9_2tx`QO#f z{a4hmB2>G8d*(k7!$CoX=qG=ph3UiJyg&F)q%f$rdb9X{K?&2-J8@TFHSvCT&ov0m z);DC#7E9uM?h!s9V0r2*z+L8KZ~R$5O4tAXFfXS|@v@cYbf^hOVdCt!k3cH)&X;GCst!Z1d=-|Wabujl(P zH;;^|tPko`Mz+@=Y8l^5+=YD*z|=wvrj{|()Dmhqi|2=s=Z?1<=P@PsC3<#fdITJo zd%)i^46>>`27K)3=x9kVh4U{S-}}dY2$IC~nR}i1kX^qY6qwxCa{}@Sa{qEq1jZ4i zd;#y|KwW-p$X8z3Jr{cM)l7U0CCn8D*cgFv#MS7>E5c4LcSjwY0^LN?p}G-P4o;WA zT_|>O#@hi)_@^L-^{;}M|3LI=ChjXzr5>1=F%RM6z~qv+J4h^vFwl6#WW6VxA-=u; zQEY3#jokGvFNYbjfj=Df6NjZB5E}kzqM~?-B&e^Q+!ZMhA?&89Rnak=InhHOBo?&` zH1D6o{!50po}Rxt=uRhIRqE;%9;)Q_cn}xlkMU(1Tg;Uoqs(i%K%C7?6kef%!`7L@ z8$kHhJ>f5b_?wd5Nc@^ELt7g?(y#P&W`vx>?C=K2Zg9+ZO1ixb8QX#Pug}Gf-b32S z+2~)%+t+KrMhaXtwF&+~3eaTVncziB2z&A2{S>+!Whv?O``mw7VbVD5x6|e56*BNK zy6{+OByu6RM1D(EPS5&M_LJajabU~oF%z!9yRCM1`nBRZgPEILoGqy?2J_G7@z-fEoOGW)O8P!Q3(DT@`H|GH{918ec9*)ix&P$J zlZ%^!*fel45c<#hJW@CEc)`gT_+@Gh7zD!okJT&oz!3s?vYFp8$3+}S(2)ahTIVmh zN^^xEpR_qqHW8KJ7kz;FvH1Nx8aus%*1wpn?_pno%RTcu;}*cgaY$(Yy;O!%DIVom z0TmM2qn>4;16lSApwtUZ=ds_N&KXy|1|vuE_s0E*1J8f*!v{V)J8Ju9%2>7l5f%92 zJi(;_f_PGP_H%%Fs4WEDf&ogVze+Aup#%j=&~Yh+-mMKFneQ(Sf&ACL|6aPLq2Z6? zc2%{2p_pa7#jrcgc7KXDR)05%Z}ys_dqyxxIG?85|5b$63;@q)5o2@}Y~6Yl&U}!} z^6>Hoq8un76JQ2kLj?!$%%fmDM-2nuu|MX$ztXrq*AoV;?3GWUC}j#5{v%+!-K`}J zpr*))3C|jqy#(BU9!v<3&Y~O;7^zb=5@k>}1m%H%1p)N(&7tuGSq+@6TWCpr%*dG@ zkVpO0+6q*XI4zG}1}X~-HdnVVrUPsNPE<=<`^&?=Vw+T8X|X$`+w))beO8>c;@q*y%F`uMptr3~Zt8kOa8lm4KW>bfM-Q z<-7o?K%qSg28i0VKC46rz|gR-L3&0H9w-R3j3TfC>|EOxo${7EqfawLSW%GtVRu#n;Bh zEu|yAO;LQ>OhTjhQm3T?O`Sumjo6`urheCCa;=poNyWzc83Z9xzYcS-1SbiX+@QQd zZ~fsik>Zb2q=Y8}2-6fV7cA2fD_^*lk|d=)&KMBfV8*C=bDaGG;gHsDzresyxnEIX z!jNr9&+`4LEft=jgoXK*miV;+5v!ITia>!8)qr;$LHAU+_uv7yq+}eh9A-?UU}hSv z3ub^apaLK`5%9o49S&M*G&yOBZe@Vdhrhl>qFa$*_g7WFx}nxH6y^fIoSvWm5_%d` zfXu8cPT;wY8N2(xe$50m7)-)u#J~}VqMo9gH*fx_EJ&1AHW0t!qoPsN=k+uGYd z18WBNqdFlG1qDM05H{dTJ0&9{Q`UlD4|e%Myg37$e2?2yaFC$_aGhpA^F3!3kB9-u z!tUG}(1e8^YnJe4M}O?1N)N;W5ujB-Fld1X6{dPLJ#GEgclRE+_N347^AqU8#Pi!< zAp;`tQ1uil35Yzrrr;4iTyQCxp13OeWjn`42m07~(q%e*d zc-28GAq8&XE4cii#VB(-e!f%EE44NHy4$po%vNJF51|dp>%bdT3vGl1g@#(fjDeWR za{PE^b~aiyRM*e|Utd;GAVQf&*jA*W;VNv_@ddaAU_##~C;Nky4?-;8nKPUsB8A!t z)^LT+t}ciDZ3plpinb)mhJ6_`g*Yb0N&^B9ksQ1%I}kJWpvlgIK@UNTxwyilJ`>SO$-%ork>5DfJ;62DJf}})efXfFqH+iN23U_}m|19@ z&rC;pW^OJJS0V@+qoCX*A|as}wggcF!2v215m4D~7#K8xa1bluat2}dUM6VkUMq!2 z2~{T=W@h6qgHD{BJ+C@u?t%=#ed?5^o?bAN^=$hog|dzTC4ibJp;o11a8M2EbClmX z0HuI#Bm-m1etlXKBnUB&Rc=(=YHn^u?T?_|2><2gBdUR}>MMD89IU;y9W7Akmj=%gp%Sd#<_x4|=K&H5 z=*jW5onDw)>gj8qi!7I^YitC>#hFV7sO7F-r$(y=VZRYGh+n8N5!P4OOhrANA+ePV z-INCPEuywa=v0sxQC$J`Mat~_Vt`m(2h~|(Fs|!bQLzy1U8s+&^?K7##Khw6U=}10(A*Q*aqM{5ZPP}OPosyRJ6ngCb{rkWP*J^jR zxxT3aB@uxb8UFGmydhbDLj12?O`>I%rq)(oP$hv|a+>YrgLb*rt^+Xx!8W>;b?0}k6GqhUs*DoQbNi~R2Fp%%SDpT8P z2%;klPAK=&*49>lkLz4O+3s-%t;z!kc4k>$DX6om0-X*uj_&Syf^-8(hdi5c<~co+$Ai9+w88^(-} zkAH1y;sR|TuSXRsw3bC~=jhi%!CN!P-5`nf$&QF~a*DQrxP-2+TZ2v-rMD+QD2V~W znb02Ev05X5#Pfsd-jYHRo5UAwZd*Y<<2vQ85tRC3ong9{IPiy>I*mvI@wB>r3lBds}y$c!!@S)Im z%^-|_Yi@@1<1HjUZEbBeBCS#iIyy&Sza(_yCm2u+3=F8k0PG&xLUvf(E3mPkS~s}9 z3knJzj8rFl{wxo4G7x!#vcsF4Z4T*6OdM>=q`O301nf|h{kg1r-xvF{t&Q${US{Su z$b5|iIyyV=78Mme{_!C*Q~1rBH}aER-Q6t4d8HkzIXO8EAmvhFM@AMZjLIGB!Ge5p zZP3;&y>&6PbxLG*Zm!Z>nvR_5n1G>>zJYwj3X5dbyFi!s%#JIkv-|3qRUNjbAiQ2t%x5@~(yn^)5R*Tl;BA zQ4!ON7cYA5N`JX1Dr#~uWNvOw(!!mCZhC#Mt-rtj-VpV>g{^r@&4UkQ%N6!wtO*St zPH}TPSE{A$jtYKzMv4;-|3!@c}j)VNJ>hza00s;ber(28fZc4fGwlB%SbWYzfHBnZP)FvCayIAVOu!J($7vG%@swG1BIuSH19lSn$!}V4#42srp_0FcpWKlAaKIV4#1{ zy7za#f{!i-N+a`(Wx-S!5Tb778hS+DzGC|nexD{soZ4w0D=($*mx}+ERUCq&2vYia z$sSSbR#v)>*32 zj3HYt!Q1gCD99_?8h!WEJaDVcmBv_}6rh)h3Wje-*0>)$o|>^6D@&1H1q##eU)|2nDYyjxmg+v4a^i8B(fdd&K#;>_ia zAkvY=sv}g$+UYhb|DzJ2#LcTeZNd%|A1LqGX`tu*f4jo4Mec8_Jm(C?2Md&C&M*o2 zx-+;eG*qyi_;sJ(waa$TH0Aka6%%Yl6Z+U+hBDW?f^-6%sdobyQ!BM^yt&uj$CNaW z&!C@caR9@YkcZ{f{QUKwJvOXn*l@Pj(X~qR>Hb>H|GN{~*%mlvw3>1^EdKj`D#!X* z#Vwy!|K4BzVimiB4ad3*fj`e)W_b8sS!ui7)BQ81{7-yyfx#rQ|KEb#<88*f|DDaN zSD)Me&%yD+74tUwEwg%xTdh-9{(x%#7M!HGpGFjw&c(ICRynQMkn^)v)0@_bgfJN z;=)g%`t0fTOL9||zr7~yvTDmU zL)nMnRjh}e#lPL_^5ojGKil=6){DOho1on4P$6EwAlH;Ai?j_EsOCCx@0zdJa6)mBG{1 K&t;ucLK6TEhX-%~ diff --git a/minimal-kernel/.dockerignore b/minimal-kernel/.dockerignore deleted file mode 100644 index 9dea340f35..0000000000 --- a/minimal-kernel/.dockerignore +++ /dev/null @@ -1,2 +0,0 @@ -# Documentation -README.md diff --git a/minimal-kernel/Dockerfile b/minimal-kernel/Dockerfile deleted file mode 100644 index 4d67cae69e..0000000000 --- a/minimal-kernel/Dockerfile +++ /dev/null @@ -1,54 +0,0 @@ -# Copyright (c) Jupyter Development Team. -# Distributed under the terms of the Modified BSD License. - -# Debian Jessie image released 2016 March 01. -FROM debian@sha256:a9c958be96d7d40df920e7041608f2f017af81800ca5ad23e327bc402626b58e - -MAINTAINER Jupyter Project - -USER root - -# Install all OS dependencies for fully functional notebook server -ENV DEBIAN_FRONTEND noninteractive -RUN apt-get update && apt-get install -yq --no-install-recommends \ - python3-setuptools \ - python3-zmq \ - && apt-get clean && \ - rm -rf /var/lib/apt/lists/* - -# Install Tini -RUN python3 -c 'from urllib.request import urlretrieve; \ -urlretrieve("https://github.com/krallin/tini/releases/download/v0.6.0/tini", "tini")' && \ - echo "d5ed732199c36a1189320e6c4859f0169e950692f451c03e7854243b95f4234b *tini" | sha256sum -c - && \ - mv tini /usr/local/bin/tini && \ - chmod +x /usr/local/bin/tini - -# Configure environment -ENV KG_USER jovyan -ENV KG_UID 1000 - -# Create jovyan user with UID=1000 -RUN useradd -m -s /bin/bash -N -u $KG_UID $KG_USER - -# Install modern pip then kernel gateway -RUN apt-get update && \ - apt-get install -yq --no-install-recommends \ - build-essential \ - python3-dev && \ - easy_install3 pip && \ - pip install jupyter_kernel_gateway==0.3.1 && \ - apt-get remove --purge -y \ - build-essential \ - python3-dev && \ - apt-get autoremove -y && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* - -# Configure container startup -EXPOSE 8888 -WORKDIR /tmp -ENTRYPOINT ["tini", "--"] -CMD ["jupyter", "kernelgateway", "--KernelGatewayApp.ip=0.0.0.0"] - -# Run container as jovyan -USER jovyan diff --git a/minimal-kernel/README.md b/minimal-kernel/README.md deleted file mode 100644 index 809b01711f..0000000000 --- a/minimal-kernel/README.md +++ /dev/null @@ -1,22 +0,0 @@ -![docker pulls](https://img.shields.io/docker/pulls/jupyter/minimal-kernel.svg) ![docker stars](https://img.shields.io/docker/stars/jupyter/minimal-kernel.svg) - -# Kernel Gateway Stack - -## What it Gives You - -* [Jupyter Kernel Gateway](https://github.com/jupyter-incubator/kernel_gateway) that enables programmatic access to kernels -* Python 3 kernel -* No preinstalled scientific computing packages -* [tini](https://github.com/krallin/tini) as the container entrypoint - -## Basic Use - -The following command starts a container with the Kernel Gateway server listening for HTTP connections on port 8888. - -``` -docker run -d -p 8888:8888 jupyter/minimal-kernel -``` - -## Docker Options and More Information -* For more information on the Kernel Gateway and its configuration options see the -[Kernel Gateway Repository](https://github.com/jupyter-incubator/kernel_gateway#what-it-gives-you).