From cba065567f85584d1f5b2d9291f7377dfdc65158 Mon Sep 17 00:00:00 2001 From: Manjunath A Kumatagi Date: Wed, 19 Jul 2017 15:47:06 +0530 Subject: [PATCH] Move e2e dependent images from kubernetes/kubernetes.github.io repo --- test/images/BUILD | 1 + test/images/kitten/BASEIMAGE | 5 +++ test/images/kitten/Dockerfile | 17 +++++++++ test/images/kitten/VERSION | 1 + test/images/kitten/html/data.json | 3 ++ test/images/kitten/html/kitten.jpg | Bin 0 -> 14769 bytes test/images/liveness/BUILD | 34 ++++++++++++++++++ test/images/liveness/Dockerfile | 17 +++++++++ test/images/liveness/Makefile | 25 ++++++++++++++ test/images/liveness/VERSION | 1 + test/images/liveness/server.go | 46 +++++++++++++++++++++++++ test/images/nautilus/BASEIMAGE | 5 +++ test/images/nautilus/Dockerfile | 17 +++++++++ test/images/nautilus/VERSION | 1 + test/images/nautilus/html/data.json | 3 ++ test/images/nautilus/html/nautilus.jpg | Bin 0 -> 21231 bytes 16 files changed, 176 insertions(+) create mode 100644 test/images/kitten/BASEIMAGE create mode 100644 test/images/kitten/Dockerfile create mode 100644 test/images/kitten/VERSION create mode 100644 test/images/kitten/html/data.json create mode 100644 test/images/kitten/html/kitten.jpg create mode 100644 test/images/liveness/BUILD create mode 100644 test/images/liveness/Dockerfile create mode 100644 test/images/liveness/Makefile create mode 100644 test/images/liveness/VERSION create mode 100644 test/images/liveness/server.go create mode 100644 test/images/nautilus/BASEIMAGE create mode 100644 test/images/nautilus/Dockerfile create mode 100644 test/images/nautilus/VERSION create mode 100644 test/images/nautilus/html/data.json create mode 100644 test/images/nautilus/html/nautilus.jpg diff --git a/test/images/BUILD b/test/images/BUILD index 6083d383bee..4cb04ad2302 100644 --- a/test/images/BUILD +++ b/test/images/BUILD @@ -22,6 +22,7 @@ filegroup( "//test/images/entrypoint-tester:all-srcs", "//test/images/fakegitserver:all-srcs", "//test/images/goproxy:all-srcs", + "//test/images/liveness:all-srcs", "//test/images/logs-generator:all-srcs", "//test/images/mounttest:all-srcs", "//test/images/n-way-http:all-srcs", diff --git a/test/images/kitten/BASEIMAGE b/test/images/kitten/BASEIMAGE new file mode 100644 index 00000000000..1d2837d2ff4 --- /dev/null +++ b/test/images/kitten/BASEIMAGE @@ -0,0 +1,5 @@ +amd64=gcr.io/kubernetes-e2e-test-images/test-webserver-amd64:1.0 +arm=gcr.io/kubernetes-e2e-test-images/test-webserver-arm:1.0 +arm64=gcr.io/kubernetes-e2e-test-images/test-webserver-arm64:1.0 +ppc64le=gcr.io/kubernetes-e2e-test-images/test-webserver-ppc64le:1.0 +s390x=gcr.io/kubernetes-e2e-test-images/test-webserver-s390x:1.0 diff --git a/test/images/kitten/Dockerfile b/test/images/kitten/Dockerfile new file mode 100644 index 00000000000..29834a005df --- /dev/null +++ b/test/images/kitten/Dockerfile @@ -0,0 +1,17 @@ +# Copyright 2016 The Kubernetes Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +FROM BASEIMAGE +COPY html/kitten.jpg kitten.jpg +COPY html/data.json data.json diff --git a/test/images/kitten/VERSION b/test/images/kitten/VERSION new file mode 100644 index 00000000000..d3827e75a5c --- /dev/null +++ b/test/images/kitten/VERSION @@ -0,0 +1 @@ +1.0 diff --git a/test/images/kitten/html/data.json b/test/images/kitten/html/data.json new file mode 100644 index 00000000000..0be61a42b30 --- /dev/null +++ b/test/images/kitten/html/data.json @@ -0,0 +1,3 @@ +{ + "image": "kitten.jpg" +} diff --git a/test/images/kitten/html/kitten.jpg b/test/images/kitten/html/kitten.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a382bf16aceb05d0c084a32815dcea80aaf02d4b GIT binary patch literal 14769 zcmeHucU)6Tx9AQ5LJ3_g6paB?loon#p^6C7L{u<@0FjV{G(bfV1yn=?Y!pEOD^03m z0YL$kBPvabh+;vifCx&<-8&TZeCK}mz3=_rU)KqH_N+2%)>?aJvS($%Zezbgp0W%f z`T~HxJ+Kh~06qW-0{}SKf`NCa;2$=;GbX zhvH2@Ir>u=6uLi!io#-1>S`EG)CPMTo=Ap}iU5SrSJTy3S3{}k>1*ofYv}+0_bC8C zfU>#O)YUN;7i?s+0pKFn(zres;Xm6TFI0G8@CDs@f3*)r`)MC+->>#@!4_q}BDt1i z3xd5l#RjY)8##A&8+!;qa%}R#+5=qdVL+Gz0X`8BAG;Gc0wDSL`1tvd{QO8UK><54t zAK(M{z+q^BOAH1VgR#3nBN6OJFcVNq9vG*93PS}B&KhnWUIZV%fFSJeL>RyYUnGhG zFm4!}i<^rF!OO=3M{0mXF*x^HaSV^yHk<@H=#V<^vV=>8=5q3qPF3C-nzYE5ScF2N z^T@kVJY8#fX3^nw7D+BXmepAd?G=r#J%q91BM+OH@4s5DKb;*_a^_LK%;j!p<(9xaXvYcb;7pawx`2_E%B z3Ckc2s+?YqXvllNqeUiSoh9*f%~1tjNCCt;t?EWliL4bqmaf_iLeG*4|Gft5f2zRl z0FZFbm|}nlFhmi`xkhl?#rwYBY|in_W%}e>t%s+iwq_M6d=Dve58Q8hGtM(KB4=kp zQ$@qXd!wQ!5zoxe+t|fmFK-w$&W}Zwh`r{DNs!nz$q+eD;}v%HI$pOWI+Fi=l+1}i zYZKYL(#s9E0oWMLk6%2$HMYNg<0Kw;=TnJ^pYnQgMr({xN=3G9VF z#<4M zS{tSzb|3#Y8{3$ykis-qmo)RcXBN;~D&Sd}mI%>7w@Zh=1eQ}aQtzWL_3?S@FFCzBG1K%6I^yD=K25Sc}j&_=~POyPy z)pdT`Zo<~BkIHMjGv~JHa6o9smQ&2hHC;~DdeTu>WHX%V;_}14+&PHtXmOsh^10xF zoJqOPm@D;kTNx0Zw))|yhwhe+>aX>;zbj^%@nUa0%px;SpAME!>|NTK#3pf2Zj2|1t=VG5tz`TR%C4&Mo(25IYLr$Za!`nYvNWmRu@ zm(HE*Q#|SZ*`y;k-})NUZ`%PUt51D*AN){$p4YuA|54a^-L3xQwxYL$jyRU8ex>oj zLuw%-+X&C)F6Q)`f5u)9R@-->{lbnD_fOt#vy1g$CC7C>F-e|&9Jcj+Li!K+R{o~4 zjMQ@cTPE^&K*j7!qK?gJ=*NZt%>huX*RW%BERatwRGIj28#}J={ayeF;1BBzGiy zOz~Ag;tSdMoFC}e$qxn{2hW|JqkT~;4x$C{#>4=+>BgH5SJmKUTH9B@$9z|oXtGmp z8w~b}#kHJs#CFc!NWWZ{dRaM5c}QNq(D?bcn8Ctn%hwHTpy*c1(H@TQ#ix`d$G9b)(;ipRCq;B z3I1zoXUuTY)d?F9w1$3IRQ!qKY4G5q$+I8YQ?lBw=zo6k`S#>Hrpyg>52;bBi=t-D z%k}apjUHb38`IK`BureQHGR6W!+k`tf%k>S*z^59LWi&$c9A?5&EsBxJ~JtLR88Dd1pqOXGXIfk@W&sQA>oDn--k z7q;KIqB$!ijg!7mJlXUeZF=3~4VwRE_q1H@h=Z?z zY&W~{>+qRo<*L7O&_!nWLkXGRL~@g@b7psa>v-GK8XI#Y{>r^m9rAsM=dPc_B=TYy zDX;+hRJdnvz)VKgxCEgr=kVjUPj|LPhKxFa4H_N)#|4K)>d{FA_?GhIEnv}D~fu;4iJeNB3GEsAbbN!c`^Y%Bi(`{753Z(AN zwCpX~Exoh+9)D9h(=O(Y@@}V`?o+R$ElY0$_2*HhQ__{J+PvX}rh)pp0Hc6aNj_T7 z15l-TubO;E*?|4FK1Na9s`By2XN@Y_scY`e#ZNt*Qy8vk*k3%RT>9?N_*BwJ$KzS) z%A&Nj-uaQYr<#g`?fTl{@LtKjR#@xuJlOD>3#A|9+6u<+`9^=aKH=)s$duQlq))6M z7w+k9zVY<E#;`r)I>l+_4(&6{yYy@noF&%j_7GH|529QO* z$tScwyeWHn;A!XeFBj!T-Bjv|&L4~}eprX-$!W)u#KYo^Dvxb1{0b)u?0FLLMS^(n z<(1ioJ&8GeI}Nmtp7a~-NX+P}o34uK$QVAyZW^12oHX6N#x5vFM&qVvQQ>H*px^RS zwGoVMTel>{?e!>+SH1cC@eQid*$aHF2Ul;x>X(rx(ho>l@kR#AB6@@Qc$S@yW3nVX z<6jOL9|&*s2$?nNsrOj5CQ~&aBu3;}lxKR@u{hh+X9xHu60iF(|ElvEK%6q;ww4OY zL?yCbatja7&Z^HyZ=_3?=i&+~r63dt@`%&F^c>qsa$jo|*a> zoMPxJ^?FVkdj^YMw*PQ`I8)R|o!mdUS8rQkUPSGP@b#20{z3Xlh!2^)!~(uX(GJt} zuTOJFvrq4rHRRdxAyd@-FG-Va56$W#SB)wjYS9xa^XM{$yJGgp5hJ-Wy*_1k3bXPKt zw`O~%iIwy8bnc@>yUaPQA1IS2uC}PmGhw)Wi6X#fC3WMCcuTw1|e20S%zg|p{r3LKiKc7({+cp1bC z-&ZwV_)c6lr=LED_7SW_!3%oV1^_`S4LltCGgP7(_BhBuMAy zaAWOv*v)&x020Ba3|2oa7XQU!2P%U|A=5$n3WyU+Wsnz*0FCsfEdfq`bo(U$OCw`{ z0%XQdV2d}2zC_vT$6zf1mVqRTB>?o}PtoT10KWxC%zFuNvNp$p+Q1=|oP1Cy9}3gk zl=2n=ImMbr{ui7%>0kNGX+AElWQLWT6A5~@OU0bzgZd}D6P?81;2lFqrcO)j0xSZa zL7`dT7&yoRj*^akj`YP@0kt7!@D8aBY$5p0i}~BIF5s#3pN4hDljiY`G`#5!NCKyb z;%OA>c7Fo+aKRZ$B>OG8PZ%ONfjXH}7z|1vi9+^U=z?6NKq~x#7h1$S5&issB?vAO zK;4%3p|t`Zn%80eGz!kU`O_(kvyRqrXu=DFf;W>0V1B*{ad6Q3T+QKJ^*apz%7OVg zHCVwoy}&a(R0I|l35e!s@Qs7D0aSf`K?(`1=TFM81?nc@IEhE@( zSSmv%@?XGppO2M5X!!Z8^XYXX@-!!ZaP zZCpaBiyOSaJTrs=SpnNXKNNWT|7|~tM_UjSau2W?`EG7QlV38V%R z7&uf&Ac;)Z4>3Y>gzJNC2(5}naab4uMrh72^C)+FM--MqBcQZYw3P8`>KK%co(e`w zOGigtiIa<vMwI4p{#+|!f0vZbab?Q2#fva;|(~{|J~R=czs_AEf5E~ofwGoBdG4B z68zApCHwU`M`wGA55Wkn!5K;)OCx}R3@|ncqM-B^Wi?%8bu||-y#=G8uco1_rUTBj zc~-C=(Kqy;SUH(6zp;W7+y{(z{!h%%I^p=(hDZlPq@fEl*_jZu&>|60oOz^=!$Xl~ zBQzbyBKV*eki`Gk%kx5m!RYAU&Hl}nc{V!5ml2Gk5zPF+S+KZTfBvrU51B%X3gZ27 zWIqD9Rj8s>L5ozOMKy1n>fi0=(0*Bfi|pX4hMG&;iSgpH|8xK2fj=JjMu$bX;lD~Lo&N=Twtu0;Qb8Nby_8NXnP?0m-WBcK%gWrYhm zk1Z8$9uVe50DNFRHJAgugoliS5`Cc*UoK7ovs|G9M$zHiVmzYaYk4J>sbNrPGfl*D za0oC77tX`O!^_Lb27qyi0dP(huDZlF9NOF|$eSj|BYLPR63PcIs@52J`7W`M?kq1U z4myzwJS1|2L)BV9O-vMqGIhjpp}jHcwD}BMP#_%o8K`?I^}yS~y*Citr{hZ!cPY!} z7M{{4d2fE`IG*~kX2Ubuo7GX;Nw2+=Qg*M&(cWja*PTvQNsK4H{Gkb#-T1LB?L$d3ya^3Jt|M>LfNdC^}w^E9YVAq$weXv)jsN+j&SJCS;JnMNrwaBqhpKqvm ze7xN8@K|7eaQfWNlIQN9KCfFN-rE{ofZf8h&mMF+H;~>@d*6LX_TE)|xF(f3!I!@y z^=as`I(xS#a?@vbi*CPKV^nm%Aj5Et-L;y&MipO~^QoJ+Fp?CtnZ*VYSps*cZ_^z- zTcS$TM>0gtR|;AITUWqEl`!#{1+k;m#|0uas7F5z4gn4ob4P%G^+M0`5gv5$p`*F z0E`DfDEmKrx;Lm=nD5LOaO4t#E3MKDAtT(LP}!chAzq=)K6H~ILiGILRcg)HsR}DS zV?sMY^U}2GN6Z7!w;{-CUB%%#ZlC3$v&#=2t5#syD-b^CX1a;l2Rm;%oWgG^dE`YF znXAFM(*5HbzOmLqZMWP=+~GpTrt43Gd4O26Ef0jBC?8V;+($x2ZXSE96m&$bDCRW( z-jm)HthbpVf*VBLL=Cx8XtC70r+bwyRS^~Q>P80-zrv*vnC@>6B6F1v(!W=7%mH)N zc>v;$(FgAD`AV`H97k@7@`y*mHIL8$cIPH>=E)&%7TE=copy&I31F zYl<$sn`#yPw4;{n&h${5K6vpqNwM^<2({H}=ir_4RPMrtj<&wJXM;Zqtciv6j90Q4rAW`YD8GC`}D>%U8_0sAgkYCXT`~`jmZ9nr}btcEw2(c>Brr- z8ocEYSz8%k)YaO7_ahLyU*CTgY24}~bP_(mO7*Of9v`wim3lLgx#r2rNw3iK)IpM& z$IzMc=)9XEhYk;#6@Hmup80g=TC2#xifmF)%h}yiZ=QWa=f5zDp7H3~T0QXTK(U@P zm6)7=cRSXjMkwRu@keC?0%uAkdoOg`H}1%TqoTqaW`~tq!l&G7`DR%Gsw(~R%95vQ zx+vRtYwlVNv{PCp_wUr&SaCM~)k-#S-OKk)rJ>jA41#vWWJ#w%!S;l|f^v6^J~KQK z81U7iY@{vh!nz`Z(yPsT`)+M>y;Q8ts@N2^y;X>|S#z+=1tbXwOo$ zI=Q~KFr%orTI9Q!iD{JJE>@LXb`mtM3Y|cd?I@LvEmJa^kgD3+ zY$n2D&{`&^9q+P%P_LU&rEN;(p$Uzpw@*i;8~PzWQn#GBEgmVWf@EFj9!xWS*e$=D zUpaW3KBmBOe!b1~hiWw`>Od6h$O5@ z&@(7!H@DO1T(+7W*QFH-9uwK6MUvm0!*3wXznV{;HV9&o?i=V^&o2R}!`-SEWshZ! z_y|fwdK!gppypkOlbfG~Fp&DjLy0%5`EZO{a*CDA14Z2ve3#|WupH;)kTv^CwZ55A zJD>44#ncE%zI;>OHvIK7nfC(raN9lOt?x|w_w`F37puMb_UJ}Mw@yS|t(Bv&3)el& zBla&;c>|&>e_d;jc#T(;8*iM34)8bzJ*jLc*l{;h?5NL%M{tY-o*r`W=q}3a{)@Y?h-AsCJ`E8| zMp;MVlFi!98de)_TBxW;=O65qY$ ztW9UJxO)e{WplzUpHV@6qfz!ET&sB7o;bVc{A%^%WvQ{0uzc~FZ6(QZmQRe$KIJ4n z>fnC&P(?$=bofis58z!Kae%F5%y#^-3OqXwF)29MQalSI7_`|hY^gXY5BFVAStlPp7 zZ@-_7#_nR6GGKAL7El(xI)=p?i16^$stg+W3^L z_}SPk$KNFnZ+tNP&O+35ys_N*`+m&z7gM$SY#)v#Y~O51&b`UsET+*PudH}a;I-mc z@dIX^YiC{ebT~8*uiV^G9^w8~qaew3&2^!MZe}oT*6wVAX+7W;nB!fx{GC*)b-`cFcXOiBZmHZ84k>i*`5s_*6fT4v&D&R--aVdU z5bG0p5_wE=Dr!&7GB4T0dp)r>5(%rCHID5#`MjcVV~sUnHk_i&kQ5T=M~hqu(@Z@b z+v>i-?z84mnUt8bJ!3_U>pgqO!{)`AX0E&T5p(hJ>3LaS^2x!Q4L3&^h-jbNaCy`9 zy&pT>%2TQY?)1i0cjRw(vfZ^dS`ERqajSiV++^#0Y^UzFk*Y7XWltaH1z(Zus?C=Q z4ONWF8r#)x)|KqhLeZLAon&pQbYwXn>Fin{Ml~t7oD9(MuqSzIT0#)-}aT5OblEuC+hJIo}y+w-4&UcE@5mt}4Zu@bsC3N}g z14%(EHUy>Ab=A8iuW-tg&eglpDZ6F!bo$=c2lLy?$3JilcfHK++@H?9(!SoRxFsuo22Bu=9aS&!o*jOIare@Z^~8}lh@ULW&Q$= z)B^qn-wpk`B06Fgg8KPqMv`U%@?|3Va0u8coJX)wqV!(;N=+r{4Ed=32pgp1(?So& zdk-v?>z^%e?y;6K!|_JJk#{eJb!lGd2`IaIsBTRllMPrf`&*=r957C4{;m_YIZas1 z{qRW_F&d)A`b4kO!N;pujuXfL+ejWlOrZAxlQ^raOy6}^-tUzwD;a%fcI?r4xpu3q zk`eh+NnW+ZPw$^es}ndsd*)o&%AwkOhTU;0`8!O??(J|hVdAhuU#8WLvjGV$cKd$; D(=o1& literal 0 HcmV?d00001 diff --git a/test/images/liveness/BUILD b/test/images/liveness/BUILD new file mode 100644 index 00000000000..d15af903256 --- /dev/null +++ b/test/images/liveness/BUILD @@ -0,0 +1,34 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_binary", + "go_library", +) + +go_binary( + name = "liveness", + library = ":go_default_library", + tags = ["automanaged"], +) + +go_library( + name = "go_default_library", + srcs = ["server.go"], + tags = ["automanaged"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/test/images/liveness/Dockerfile b/test/images/liveness/Dockerfile new file mode 100644 index 00000000000..fe022752c82 --- /dev/null +++ b/test/images/liveness/Dockerfile @@ -0,0 +1,17 @@ +# Copyright 2016 The Kubernetes Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +FROM scratch + +COPY liveness /server diff --git a/test/images/liveness/Makefile b/test/images/liveness/Makefile new file mode 100644 index 00000000000..e23182351bd --- /dev/null +++ b/test/images/liveness/Makefile @@ -0,0 +1,25 @@ +# Copyright 2016 The Kubernetes Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +SRCS = liveness +ARCH ?= amd64 +TARGET ?= $(CURDIR) +GOLANG_VERSION ?= latest +SRC_DIR = $(notdir $(shell pwd)) +export + +bin: + ../image-util.sh bin $(SRCS) + +.PHONY: bin diff --git a/test/images/liveness/VERSION b/test/images/liveness/VERSION new file mode 100644 index 00000000000..d3827e75a5c --- /dev/null +++ b/test/images/liveness/VERSION @@ -0,0 +1 @@ +1.0 diff --git a/test/images/liveness/server.go b/test/images/liveness/server.go new file mode 100644 index 00000000000..889d2776568 --- /dev/null +++ b/test/images/liveness/server.go @@ -0,0 +1,46 @@ +/* +Copyright 2014 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// A simple server that is alive for 10 seconds, then reports unhealthy for +// the rest of its (hopefully) short existence. +package main + +import ( + "fmt" + "log" + "net/http" + "time" +) + +func main() { + started := time.Now() + http.HandleFunc("/started", func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(200) + data := (time.Now().Sub(started)).String() + w.Write([]byte(data)) + }) + http.HandleFunc("/healthz", func(w http.ResponseWriter, r *http.Request) { + duration := time.Now().Sub(started) + if duration.Seconds() > 10 { + w.WriteHeader(500) + w.Write([]byte(fmt.Sprintf("error: %v", duration.Seconds()))) + } else { + w.WriteHeader(200) + w.Write([]byte("ok")) + } + }) + log.Fatal(http.ListenAndServe(":8080", nil)) +} diff --git a/test/images/nautilus/BASEIMAGE b/test/images/nautilus/BASEIMAGE new file mode 100644 index 00000000000..1d2837d2ff4 --- /dev/null +++ b/test/images/nautilus/BASEIMAGE @@ -0,0 +1,5 @@ +amd64=gcr.io/kubernetes-e2e-test-images/test-webserver-amd64:1.0 +arm=gcr.io/kubernetes-e2e-test-images/test-webserver-arm:1.0 +arm64=gcr.io/kubernetes-e2e-test-images/test-webserver-arm64:1.0 +ppc64le=gcr.io/kubernetes-e2e-test-images/test-webserver-ppc64le:1.0 +s390x=gcr.io/kubernetes-e2e-test-images/test-webserver-s390x:1.0 diff --git a/test/images/nautilus/Dockerfile b/test/images/nautilus/Dockerfile new file mode 100644 index 00000000000..92ba02a4ddb --- /dev/null +++ b/test/images/nautilus/Dockerfile @@ -0,0 +1,17 @@ +# Copyright 2016 The Kubernetes Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +FROM BASEIMAGE +COPY html/nautilus.jpg nautilus.jpg +COPY html/data.json data.json diff --git a/test/images/nautilus/VERSION b/test/images/nautilus/VERSION new file mode 100644 index 00000000000..d3827e75a5c --- /dev/null +++ b/test/images/nautilus/VERSION @@ -0,0 +1 @@ +1.0 diff --git a/test/images/nautilus/html/data.json b/test/images/nautilus/html/data.json new file mode 100644 index 00000000000..2debee09a91 --- /dev/null +++ b/test/images/nautilus/html/data.json @@ -0,0 +1,3 @@ +{ + "image": "nautilus.jpg" +} diff --git a/test/images/nautilus/html/nautilus.jpg b/test/images/nautilus/html/nautilus.jpg new file mode 100644 index 0000000000000000000000000000000000000000..544d2bd471abf859e029d412f24ac64c2c7aecb6 GIT binary patch literal 21231 zcmeHvcU)6Vv+zlw_bLcTKoAru2_5Mj>Aj1P1c*R_Nhped1rZx4Dxx4LVxb5MQba|? z0*H+wRf-}gAP7iD;M;_v&+|U_z4v>6zx&Vkxp2;zot>SXot@pBo!vc4txF$y3QQsi z{t#qs4Q+uSh#BI7K@b8!Fc=5zwhTir0Su?Zw6rQ1;|d-Q@LUkMLoDE`fpODeZUEQA zcvoluLzut{406NPLku7tV4;sNku`V#Ci@#tG@XwWpc#W<=rBKx%fVDS4D!P^A0a@< zWj-(^AhI2h9sHR(Z?`bDu(F0s2}HadArj@Ns;Z=fLO~Gg&;1Z2!@c@6z>)m$D7!!s zl|%_7g`$j%P#7h&3QE@67fT@0keeYILQ6?Q3!{Wm($rE>*FvKq6bPVLNb=ytRoUTh z4qjS=n-e5|)ipt88HSyLAn?xw@*$Nl7^PE))jGkuP9fLe@zbzn8WdyX?a(l614nFOG~-nDGV-JprzBqr#)T31vJZ@xg1}8LX4n- z%QTFDaLwis8NX~Eas79jhr?ENiYS1u>6&8(@TCQFaM8-6KbKmUh9P#k3HumXL$IY0 zh?5?JaQkU=OC3-g#Lmpj%)-ph!otqO#>&Pcz{SqaB_PDdC&0%i#KTSxE05*K-|sLE zHZ~4U4sK3PZhlTqPJY^rlYco2&;NwM(qo8+8Nxw01WXcw^S}^1u%%8=Nv5S|Fg+k8 z1B@Pkz_fq>BMg#(k%^gwl@0dyL>L4|tR`|pFeD5CN5UDH7?~Lm?8+dK2Z5B}MKc)K z`|?TdK7e85KYitn;YKL|hbMl@D&&LpMoiMlj-wyPuoP9ntfE7kjL$gXOscL@)z&pQ zf5ML!$31Nf>-}LWb2j_%-E+^HK2KaLdH%j{(#1bKKIMApi{}0*bu-t1h$H83lvTHU zndX7ua3C#`E)x?YgDPDF2{bPfNU&Ryj{$SwG(Sy(Cl2+a%2IwG$p@2-90jlxl`&~X zngC3jRI3_*5LegXOq|uI_)lvh{MQo5{1RcQ9b!k&%jALdpd{xQHQ6xLcV9*zk_;iE zzU)VkI}tv7?deWLqSX@AzkQM9@FGS&q_lZjqqEsChs<-*;3x-c{CE^VUrvA%qO?92?lj+Y*O%zt7FNFh>-(O;-cBKBYTH zZ_dl*-kv7BNr=iO6;3JSwv;W@L~N!G=Q$D^hPDj{jyqFyws*@ziBd`8;+=*A953J2 z6den0{npF1d)P>p406%*=PLVqTvlcY%@-J}HhHKR^Pp z{8|3?mixB3tDzp2FGSStS4T}2FLn@LD4frqENt`EY<7Xl4{i?pQQx8w(?>36oi?D< zMjch?R90xDlts(GU4ob=rR{$Ba1T(wJu;pPhx)YzQ!W{Ac;iF~oR@#{=CpO(+`7BA z3;y5x)E6(Nu^}uJ6E0<;Dzu%`=PS>=t(OW>Au~D0F>Dt+Gubzcm79sDdtF6; zEjQ+7Zfg{>33Cg3U}RkRSUaxNIbW-&m`t44`0xehOwv}pI^eMceUACGsSZ6BZ!{eC zYM-T>8zOsO{T+oEmoL;)b0iM-n$q63uFjLm0e8JK*2L`i+WoFQy{393JJuTw}b@Fh0?G<&|*Q@#5S z7@N9(G~e$$?jqjyjk_O=b+roP@{8M_hY6|psdU=jNFBa*uB4qX5|Oh6F&5zZdexcR zlG%uN=RKe3)pjg$UhJ4XI#Y9CQ^_sC&*$$|sphrV++@p*F)R3Z?`+AN+#-J#kqFJ| z0Zo7OWJS0A)v(|>>)ENFpPRqv%=D!pf?~2X-&O77$ZFBxc%6UH?6^hiXDO0HIV=B$ zq#N!o;sahfUXsk%i|U$1v1cZhAj-l9z!Qxu(6xAPn%B#jfw9H+*9m7n4SkTxVYKHjUYxCvF^Af>=57iRT(B zTxX4B)6?%1<}O&~>wV2znBMj^FIpR?-F6{);hr#~SL0JR-NW*36X|I`ghReh7O76e z8Oe#KPbn|{ENvBiQF3xx^&o1fI(A5IU!}rkF%4giBa@Hv?W-knv>o)WeVo6&m>b=F zK_=LE;Qr5vbFn35)M1`y`e)BQ+ND>)Gh%r!cB!!`!0Ac(>2sFC*Q?7e*)Cd8gcp=q z)6-&J`nYWClrPDcd$kyndC4(tKCiH*3SW4$wcW>!$M?3_vzUMz8@g{So|dscI)WX- z7f>&ioXpZo?*6feX-$y-OgtoB#8}o47;EA^GQnS|IonM$%QSr?>$>%4<8yV(w_{q zPV)CD4D1X*Mb=IYFSeB4)&7u&k>B>JJo&|ekFV2W^OqpMmNLfRN#PpgUB0?EX^)EX zTpNyii5e%!yfrF0x!AzMD^hZ2luW{hJz&IyWjv`iTDVr$aC>ZQtZP&+g9|E;`V?It zKPy}L@C4RVo_+oF{7Y$94b3+Z_cGHyN%KgASxQS9M&-A@V0;3FMq+X?)hegnuw+WJ zAAgJ-h39{`)L>aU+!Why@zcpfQc3#j9QMwgA<8gkSaXCDlIwNw64c;AcpYP7;LqXW zv0m+dyPCz9iR}5gNI@ zy=+rN{6>mG&eYslao<75`_Z0{$WdnX-FKw1@5ODRh`sZhWuk6OKVr^{3y)oD8gQG- z_@Z*>O+FX4TO{B|DyzXON}1BJ_G-cVp_j1n_YB^ba|iDZZD}9g_#_`2b4)!4Yd+B` z43&M5G8ex;pZiXiJ&!L*cRc#gz_ZNHBYKmvE+?Y$xGKeV-1mqsiaj@5yUuOwZtIZh zJNSBbFy@BmL|?phtD^tNX-V&bt3S*y4NOLzd_PIX>@^bKIj@R88IjSSG#oRSM>2ec zEV=I`xhLsm#ikFhPxW)_pAQe7iN)u*89hOA8i<&qlDZ_6+YYpz6*^Sk_ttz6dJ>R{ z`g*x5)v|6YWdb_m8J)Fn#}YI@6uvJ zYdFuI#A}Ue&BAV+9XWhCdM};OTBfG{LFk9?iwC@B=C+DkbhrF$R>++*66LVv`~Z`< zdc=&glQptLE#-Tenf6hc2hrS)whAn_&0Fx*rj2q}*QYoe83pZ(Z`MG}n*B)c;|a=; zd4vqlL_RB-yY~+2eOj|QCh@Uaf&zD^uO&)SrK6~7pZnf+yjJ-a1y>3x@OW%KaKE+4a5pLW|FU&A{;L|xZSnz63T8ohh2xXkDJt3xqK_lv?8 zk7sm0ESuN6cxBFqI^4OTZ3*(ut7@=0U-y1vL}yy@&hFyVgFoIbn$0B;I}|6bQq{jM zC`8|1f_hrwvoDKG&M7FCaJgdDo-L9RzYlNHBed(-UM-AM6tu7wd*|b)o1M9#OHW$n z`_#zEBHhf73)gxHGM1#=T59x7)3nMXu?!>;oO*Cbdw9s`rSK(4KGMO$(qFf*V)51> z7!B^%WiD(<9?d>0{)u>hICiORX?UISFPDX~f)b=*Xkm?{&2u4WyC}>9LWoG4tv$gU z77oEh;pz}GZMLg~L2HP@wIMdNs*19Tnw$~{qHx{c6R8lA=HQ@nm8Ns$)``@(Eb$}E z)UWqgOiQUAiJqoKPwNAB;60$vOCg9YlnfjvwqexJFe*TTNihW3QK*i7BvLSK<_cL5 zsdzjwEMyg?J&l6Nv^W<%uOlInMqx;x((=%fmwDpJHohTvClfa(fTFWn$zVq&k^CL; z)UZ%nzg<|6$PU>-WQYX*{2>(N2;m_r6b6OTSV63zYt$e{XJZ&lC9X)s?iWS~rV@yB zmLQ#lPHklEZn>=EZ8R2ed2stxW8U9tY#T}?kcbqJzK%v|6iOwoRsvMgkGvLf2%uQ6 zMU2QqqhAps^;g8oFPO5HViQ0OUyGQ81RJkKfKGq0HpB)6tSDkxOOS(^p%IVHTOEJ&kjvQ1H;(4=vjp2OUT2*&FDT%f6?z zIN}FAo#u6=2N*pUaBtEA>q;j9R!)~-l8!Zp6#e}{N-($spA-nN70i_j7uPTtI^F}^ zS7}t~7@Fm;VCX!T{ZgQ30pHj^1jJWB|G$t%*99|;_i8_c>w|s?t`)s)ph0v`+Oi(k z)1n9ya9ft17KMOQYWZS@h>$NBA*c`m3IK(Tsb|f%lKqiHS{sqNIA`=3DFMWC3W;b!9akr)801pn| zFe=FmPsEdbsd&0HPJ2RE2YJ?IVj2dJLKYzbDDe2-u0JA-9Q>D`3cB+Dim|2y{PpLA z(Kndt)tD53kuDtmw8q}N# zhxhjlqYt1g;dnCjAIM!+(SIdp^9wK{1(V3XDVJxNzoFS$0>}c{kcc#0vrtK);D?xk z|9ymF4F*HmzhK$@=tJMX;MqVE2mYO$-uq-}1%Y2$V9t7@ba=U^ffX7MXeLY_b&xa) zh?9n;bq<=ZJ-|s(?L=kX0lCG-OO4gx9_&|dBUNYWsuZrlz72MiGON2Nd#@Jw&Q+q&$(bag~EHo`NM4=)P+d zjU({OhEa7Sfuze-2nk(d`;WR>B@A8NNcqp?Ysqv4uV%tw*Qi5**M=@J4y%X{#)sgE zR0^O)({#2fiM90_`9I1M60$~3p_+t)YW%xarqG-ziVk=RDU6K8n}mZBH_{3V)iNUE zfj0{{sqs3Jv~?4CC5${;!)bNr;4+al2}khXvr2?kkyp}?$0#|i?h}<)QU~qz8$aN@ z0UqzwhX1vQW3p0N6h>i%+!~k)4tU7_Ti$C*)uNFuOAT!FA4UE}YlRQ+#qP1Nb22g} z1mGz^OX{X3sw#$HyC=p3tzx2%!Ki6q)D6`PO^gkVG0GaMlBi#~>E0$#cc2>O-|-ek zMquT{pAZZZC}7nAWnp5ZhSpS5lgB8aB~du6mOqIc;tNV6g!l&F6?cW=1L)eZw$?Hx zVZ&$*Zea|VYM@Op7-d6KbtPjXBeaUDiLr^Au_oHcRKr-qKn<`0Ed=sd5Ghn&A{I}} z1275%0!~ZKS5-|Fr=ltEr-Jd9S3#>{<$bYAO7eINPFdX-t*)W0>ARYL*@NjD{C`z8 z=yjkXbjKKFr3V@WQ&*s10?ksjf_;erKqUDUUmxgaAZRPn`c^OjkkX;$T#COlTdtNl zfdbY?_N=gU#P9yaoNm%uzF68a6VS15I36d7T1FE7V`VJoj{r*}G`smPt$3M?Lh`3Z z_>%Dk0idz|)sp{V2lc9e*g&8aJg`kgNySwiELTqP@AanZ=eJR5l^hIpG;nQ&mylYxK$ z7NWrc%P?3q1vJaBJ`Ki&5W#9HoF;Q9E(Aw|p8+@_JdCyskFWx8d^iCg0pKP8O9h98 z5CBZuwZR{P_XS%6=wKhHrIp-dz}eyaa54BMxFTEwZUDE0JHfr-0r1`Mz3@1A zB0LqI1-?1$lb^o;XOki!xSSUqadRUqdKEGqdVg+#wf-UjF%V-86Pv& zGxjo0GBGg;Gs!XOFxfKsGEtf0nJzHpGd*HzVCrL6 zKiJsVB-u3C?AZux``J?2ZnM>}ePo+u=Vjl*Zp7}z9>$)?euMondmH-?4i1h@9Qqs{ z98``(jvS7s99&JivaE@>_Ut{q%^xl*`_x!!Vp<7VOB z#BIdw%N@g=#(j^wg?o~Rj|a_T%M-$Lf+v@!mgg%k6YnNo6J8u|9Pd@$r@Xy<2)>Pc zMtoSlLwwnM&-wcJ8Tn=SE%yEA~Sl6&_T1Z4lUkERBOsG)kz0jO6O4vj=NcgmHnQ-TNPakz*o7BJHAZ(Ji75qEVt(MPG?difs@x6AKl)Aof)3+Xlf6 z`Wtp_IJ=>8!+`Hu>M3RVgS70MJw6r~hB6i+KwD=sRjDg`TLD|MiG(c94n z(G}=%%oYq5lZI(h=1?|Oj#VyK9#fH1!K-Abw5sx{TB{yWtx{c3Q&%Ia6{roUOR4Wv zPgifz;McIzIH6Ia$)IVd8LRm~b5=`Di>g(m^?jTCwxDgf+rDbcXydiBwR?3Wb$oTM z==A8Kba(1r*6q=g(DT*H()*;pQ6Hy&UH^;0W`kV@`356~N`_>^62oaDEu(0o$HoX_ zGvi~%Z%lYioJ}s8beT$;2AJlVj+&{OMVUP|XE3)kKW*M(A!dQK$gvpRuD(5b`!h>+ zOGnF#mY=M)SdpzNtl`$%t~`DTw`a7svrn_{cR)Mr zbEtOYbM$e{b)0fCbV_pSaF%rrbFOmXa`AG>ahY~Cc1?EeaZ_}QcB^w=?@n+p_h9mH z@wo0W>1pD5&a=-;)hphs*;~dt(z|xY`W?YL9{O)?~|U;K6all{L2=meYz7zor0ObPr(Fd|$ejO{YtmAPv= z$TsLk&{D8#aA62@$j*>^L|$SL@fm3YDUwtlDi<0b+Ou10_qpApWJ~gO3XI}SDW~#- zm#J4_vSEkAK8EXtr-jc%xI`33@^rdUW3)l^ zl^9rzUrbf(#@M*nzWrwVZysPh5Om=6L8XJq2PY1>9;%2Fi`yU9d)Vx7UOZtxEX z{rL5T8^jwuHyv(1%TdqC$ra5_%7f>HgLih` zX)dxXsw&nfF1RawH@$?fZK?M>-h^|$5kG~ZR!Yu8sc=rufPG;Vy+WYJXj-sXLM zvvYH6i&sleE3WlxTX5T0dwBbN$NmotAC7f$ccyfSc4c*M?k?<6>v{Om_~WZjj-NVu zvAsi|DW8A##r1Rar+g9rlJgbw^}&GYz`H@u!M>r;q4{s|!#u<3BeElRzw3X0HR?9n zH%1;?8b9$v_{WV2m5HiJyUDJpkg56UV>7}tH)l0wtLI$jzRXAbWcr!9uz8_k(Q@&_ zQV7`KJOW9qoUo_83xLD@+z2@0_btT`{m?xt_}OA+Vr6D#Up{pI47_nbaIpII+iMR3oS$a|pI-o9 zU7(%9r&Ve>(7rtZj@pASd8`C*(3}=%-~Zr2@-j&9aijSe4Fph?<<_|ezf*|c zzZKzbaV)r|;i|iliT?cOhpC*y0a7XN}>a_`ye5~@`wch%GLQw4PH zf6Z_k)480hm^{dD{y@KK|Dd;|UXTyWYu@`QT6dC@rPIUk-tA8wb~{JT6_*f&$Zttc zc4prM$<{YXitNo&8^#Z z-D^HG77~w$mten~H<1xd>RYeOw&B8wOH2hBs93#@Q~KJc@iznnH_2Vuqt<9#^5wD! zdG5lVXkA~^<90Vsz3jztmn#}(HIMgV-)Xhm#cF1t+A}0nO{%I+Jjn6Znb^>m=%9dk zH@v^!m^zYPo(3XkB5>Cc+)h} z9QpW^Qg2#Op1Ek8czl&L!`YvL-Xd%|4;Rh%nc8};MK1r1xTw{x+7odZj4}c)no7Rr zWLso`qo?qIkTV>K#RTwZF#G7C&K-LdkYBuIzsBSJFT8k;PAWtDt=M6R)3SvLA%~ed zG(PWrd@QbtbGP=3O`A1k9xH8A@q)dP<%T4L(={2hj}8%r(19tNcW_wV%}WM01tS$H!ierE3a&kb(h1U8utLCZxvg^J8Am zn0}p8$sai?v-u0hPHydfe}mKuGoJ%K*dI;J_0X(^!ww`coeQqgd+g73dq&Ukt9r}$ zKH1PSud1t?xTD?fCA6gnwDrSw@;jurqA5v-pg2S6jP<28C=uil)?YOq~Wd6&Z3l|bB;x0_> z{%9((b0hlgxG7dYE|EJ@`bq&$kMJ9~1dpq7BFdiA_C-MIrT}i=0@fbe^q&WHm6g%V znLbjlUcFU%lCX0LLX5}UxInKm?YkS$h`6g2=GK_jmt8aRA+AGnY41B4R3nxk_dDCi zodtHZ-XNqF^yapZ8K(zByNAQJHVx%H3UqHEjqk__3PBgTmE0;-+h5{YI6xo`?L8mR zP@L5B!LunrnN;kN8)9126MlT8jd)0)ySs5v20t%;D}3JbQv5=xw+}WzC#JdHn&ZNQ zt+{Vs-S6~|ycUz{cBni2^?QO3p>0Us|KVZ3y2&8M_qMZln;u~su7AN6`s9mIx13Hg?xGSpx;u)oo;i&n)**x$jsq1R$Hne< z&Cewk6zsFhx^>Ro{|NS)|Ft3iT9Wt0_KJwMGWp`k@68=o2D=Mdrs@YoY>(x%r!7JG z;q&vZyMpRH)s0Kt+RqNGyEb)tD5|1vR|8i&>04=`ZR5m`d=Z5`!foHeng&J)^$+nZ zt=VOTLo=n1d`wfC`?J1!x3>A0c|Q*cXdV1CH7^kuk~e({qu4JaH9R-}7TfgIv1CW( zL-Ub9BmB9M@53F%;blH0w=e0Yl$MrEjc)&j*Rk9+*V2)TGR?op_d(L#v8YIy?^fD*kHOLkk8h>l zTgna)&lfT5O%5L3o1sderfusO@LqqG&As~mQ)*Sk#g4FLO+snhVXOnMTGI;#wam)##16W!E`g)*(G zZfU1*>WbR&pReAzBE?=>WS@R)Z^Cf?dIzV(jXW+Yha7BETCzDTidY^kcW#i+}Jse*}M$B4gfVBX&s9 z>_l*^YhuO4i>EH&blkP}9hzPD^;t(!?_*rAyHx_O={I4GW()f}*5$F+&NP|SeYX#q zKReI0+`(X=*kGZlk!eUPu05bg{!{sYB^x~7j8AXgIahv%g#WHL43Rm_XXJ<%yplO( z*V|Q}6dN8tr5AseqKwp6MIMY1Y>JmQ6WjKcmwA-5oPqbNUbR2dJ*dstJ9*dBm&CMm=yDzNR<{SpApKN=5-p>?}^!T zMd{k1qe;ED)U2SmWa{aOMzOAsyFcRw8IGcVUan7XQ${!a*fJO;d-(NfW?s@kg{ek% z)>{dCE>Za$s+y8yhgEg2X(8;jVtYT@AL7M6z9?kJ`uO{#eROFE0?}A%b<*!if93g2 z&d-zNZ|}}NDO(xp%FMTu7u$F2#qBn6sr1PGhi=Hfjy>Pu!XAxjeOy!Nmv5$)b$$M_ z;qBp3-FAZymrwV)7b#m9T+WZIzZ-4-U8kwML~~g2Oli{wfi0I44x0DsEVdUljy1J0(5@w0V{Q0q5v6Ix8{KB8_wW5$k1BV#lX1=X)NrpThF~;~`=Ad>6lO1{TE3ukFP&W@eb(75 zP3~vLOP}^7DCDKO$g8T?U7w8)kDsvI;5-|&?prG+OuZvaGvdNJdoG@YXpd6bhcRYz zlAC4qHxDsLBXwC*rMxG_chC6#jMc+~9IkgBj z0=+0AM!b#~NvnNbE^4EV>wH>LSa9h`-okvf!@ic#sX6%qe`IZP#Rl~2h?GQ|6q#35 zjN13?h35AN&x*9!R=mmGot12Qcc__ud3O! zJUmr;UUODAHM=fT#wV=M*ckgv$L8o_uJI1M0e9H?@P%C!^`ergimLSs8GnmUI_snc;#Rt#4toxQXmrCqy z%%~af#`|izB6{JNQfGC64F)F?9k~`>QfrT5iY>~7?i%lP?VD~k?Z7#mG!-pw+E_Vx z*K_!~)mMYEvtvx&AtYzf91Ls=%cn1vl{J^2;|xf`j7|2FIRetA=$u~g(GsigZxc1Q zJ*(G-vMk%zIg35ol{z98UoHOW^RU18xugYZ`RIWpVx|6NHrKBO*;C$6zcp?)4b~^) zB1@yqIlSWhocwNqPemLoo89G=VK8%Arf+L(%Apa7+e3aCb~crP{nr*0Fvq&oWrx!q z-gOSy&G$n0X4yw8uZ*42PZ1T2G;8ya*#Ak$!vGnM z=I4`u5V;pnDN`9Q8ER!MSOt-0FoQc9L67~oLj!wSj9VNP57GDzu`zc;I>(G0}Yq$_w-f zNDV6=0}b7je@V9D{rGHo8fghiywkC6Z`8=V_g$?@@2IN-SG(J~CmcEjYkvGxnRin7 dsoOPZ8B*GauWW1X&Uh#$@&K61WZ_cV{{f0CZ2tfN literal 0 HcmV?d00001