From ad57420d3ee707dc350dac7056717682929048a1 Mon Sep 17 00:00:00 2001 From: brentstewart Date: Tue, 14 Nov 2017 14:56:37 -0500 Subject: [PATCH 001/169] Appliance Files for Security Onion --- SecOnion | 1 + 1 file changed, 1 insertion(+) create mode 100644 SecOnion diff --git a/SecOnion b/SecOnion new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/SecOnion @@ -0,0 +1 @@ + From 130d7bca0761362a783ef5cebca3110621d1a824 Mon Sep 17 00:00:00 2001 From: brentstewart Date: Tue, 14 Nov 2017 15:24:41 -0500 Subject: [PATCH 002/169] Add files via upload --- appliances/Security Onion.gns3a | 68 ++++++++++++++++++++++++++++++ appliances/securityonion-logo.png | Bin 0 -> 88534 bytes 2 files changed, 68 insertions(+) create mode 100644 appliances/Security Onion.gns3a create mode 100644 appliances/securityonion-logo.png diff --git a/appliances/Security Onion.gns3a b/appliances/Security Onion.gns3a new file mode 100644 index 0000000..2173430 --- /dev/null +++ b/appliances/Security Onion.gns3a @@ -0,0 +1,68 @@ +{ + "name": "Security Onion", + "category": "guest", + "description": "Security Onion is a Linux distro for intrusion detection, network security monitoring, and log management. It’s based on Ubuntu and contains Snort, Suricata, Bro, OSSEC, Sguil, Squert, ELSA, Xplico, NetworkMiner, and many other security tools. The easy-to-use Setup wizard allows you to build an army of distributed sensors for your enterprise in minutes!", + "vendor_name": "Security Onion Solutions, LLC", + "vendor_url": "https://securityonion.net/", + "documentation_url": "https://github.com/Security-Onion-Solutions/security-onion/wiki", + "product_name": "Security Onion", + "product_url": "https://securityonion.net/", + "registry_version": 3, + "status": "stable", + "maintainer": "Brent Stewart", + "maintainer_email": "brent@stewart.tc", + "usage": "Your default account will have sudo priviledges. Squil and Squert username and password are configured in the Setup wizard. MySQL root is set to null. For more info see https://github.com/Security-Onion-Solutions/security-onion/wiki/Passwords.", + "symbol": "securityonion-logo.png", + "qemu": { + "adapter_type": "e1000", + "adapters": 2, + "ram": 3072, + "arch": "i386", + "console_type": "telnet", + "kvm": "allow" + }, + "images": [ + { + "filename": "securityonion-14.04.5.4.iso", + "version": "14.04.5.4", + "md5sum": "9c7cab756b675beb10de4274a3ad3bc6", + "filesize": 1874853888, + "download_url": "https://github.com/Security-Onion-Solutions/security-onion/releases/download/v14.04.5.4_20171031/securityonion-14.04.5.4.iso", + "direct_download_url": "https://github.com/Security-Onion-Solutions/security-onion/releases/download/v14.04.5.4_20171031/securityonion-14.04.5.4.iso" + }, + { + "filename": "securityonion-14.04.5.3.iso", + "version": "14.04.5.3", + "md5sum": "fb80ccb2d3c0f3f511823fa5858f87d1", + "filesize": 1889533952, + "download_url": "https://github.com/Security-Onion-Solutions/security-onion/releases/download/v14.04.5.4_20171031/securityonion-14.04.5.3.iso", + "direct_download_url": "https://github.com/Security-Onion-Solutions/security-onion/releases/download/v14.04.5.4_20171031/securityonion-14.04.5.3.iso" + }, + { + "filename": "empty30G.qcow2", + "version": "1.0", + "md5sum": "3411a599e822f2ac6be560a26405821a", + "filesize": 197120, + "download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%30disk/", + "direct_download_url": "http://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty30G.qcow2/download" + } + + ], + "versions": [ + { + "name": "14.04.5.4", + "images": { + "hda_disk_image": "empty30G.qcow2", + "cdrom_image": "securityonion-14.04.5.4.iso" + } + }, + { + "name": "14.04.5.3", + "images": { + "hda_disk_image": "empty30G.qcow2", + "cdrom_image": "securityonion-14.04.5.3.iso" + } + } + +] +} \ No newline at end of file diff --git a/appliances/securityonion-logo.png b/appliances/securityonion-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d5ecfc92fc23e309d46ad6062d745ea0a821d8bb GIT binary patch literal 88534 zcmV*@KrFwBP)Su{-{}thenCM&(Q}Z`>(3RQ_7BDDDbIN+eLe;9|3CilW5B6X zr<`k5a!!T%vw!>YM8Ho!{iDSDQ&{MK{q)ll0c+N*4463Sses#u-4f8ZUyp#g^>PAI z(_>|1rB)8ec1C7OR6s^@WI%dSgga6b!UEC~!{z;KU!{Q5)an5lSqTAIIY|L++BOa7 z-KSf?JtKz)yfpQNfR!s(27L9^-`(#nC^-8w{Q9fE1$=P$K)}yGeDB<6bG;`%{xD#} zn$-cPxV8d)U-YvnICV0hQ2$(T>a>3K-$(AZyjQ3^!`@4tM`4j?$|&&6iGO97d0|F@ zK9_>ig{AfJWA#Y+>Bk>(zxwi%cKdg4>AGs!J6#qpe51?CrSEiEv;4g-+uvW?<By*78AIrHB?-<|jLz2Y9K z!e8`zC*8GT#yQ|P2OQ^s|4OZN=E>FTFCcWAn!P0P$r znly+$QLk2&6Afy|oM>1#;Y7OdX&{eAGh$lbHH&9IL-mb{}ON%%CoDekC}h+=WkoQ`trn^I$zpkNm^3G?!=gi zN8+lLJ(V0=UZo}ks`SKQJwo))!73%LqDrVr$zi+d*NEM6#pR9Pym!R) z_bq#GUe}YqeA`|hH&4%p3(Z_s=YZoJaGV2<{{i4QPd~3feZ1VyKl$L=>jqr$M0|9` zC5h4HzD-T6pt93KRZe=C%1w_{xv3F)M5-Kl)gvuj<)nqF?9>qb8mcmr12v$ORmriX zR8n-Q;|bL&zELYD{?!LZ4}W<3rj?hSKKVnA{+5eBSL^9FEvW#r|I`n z!c-0YnS87gUx>=nE>CJgkV>dt?qo`Q$oih$+DxDM>f{%`{rjgqoGeateH|6g0mnJu z_}#$q%P&j-}fIj8wHOMdLOOKP0 zm0G1-wlg$vl+yrFP6LKJdrqJn1eYW=rlLxyQbxs9zDOlj zE3H!F%Ii^9WhMn`%LFSVL}euh>0^Ye8tIjd>yj2FR!MfU1{VEZW^(wC$uSlGo}L)` zY2O~rUt79x+E9J&H|bHQps?^_eO(voYdZfNaGV2k8(rGyt5naN?}vKabjK9imtJ}$!-IW9ZB(zrS`62>*E z>(j^0mE&L0wf(pO{rij?KKS}^Pd{`1_g<3|F1`SC}0g7f;xiI4tIf#ahOj|IH;%JTtpUY{B;clNY^xxAiby!XzW zpq|}YK9>|-Rxj!h4Gv+(%Fr$f7DRrkUif;!V?|`8XsaQulInj&8#Qk15cR^-_o_$7 z+@@~0y0hxgI#1Qhk5L&KbkY(6RYqcv$_9Y6<&mErB`yu%f#s5|M~=s8Nvu}t!^G-k z-oLtU_qDsWuO6-MTQhwfq;xBpIdTp-&H;x59KZbhbAS^ZtE@*={r^dS`{Lu;Teq&Q zyJE%LJ*Q57>d9Mf>_53>lbY|=%Bu2hc5+Z*N_6SMn8@=AtB0Ro7+dKA{d<|h)Yx)` z>G2f`vyy`gb5cSJb9{Q&Obsv8{R_mKN0#n;=btIy79bWHxHORb<+4p*Digp)0XwC z>V9x|U(KI?_%6X*lZwJ3IezSLz{a&}{?CAev3c|QfIEj>7jVyrn*;70IryyO!LfG* zwP=z)5sRTFZig&p4IXI~^lOM4yTB#!C6re~ZtSV{ZC|EN9Nnxw`(T^;;NV8JciRfJ zedBxTz4^>sASBUFRL1?Pa{|4-mJUlBP!Rd}IwKaL$aTI%bs{+_vO z`<4MSrcb{4;jwp)AK3r0O%3WK?un^-;lYIJ7k!$NaPb$ugi_z8#aAq30_sKX?oxSa z5$^Ba_wC;p#osI0M=v^xe@A|LgvlKE%pk~@l@z2GM1_LnxUyd-#g_g;pX(?3ocGtO zReg7l%NwsAdTXBto_%WUO^X)3(Ra_zjR~`6yj<$w-uPdgWe*!pc znseofB?0|MH`S8`!(Vantoz2Q{kao0ydptX&cl(~#>YgF-OW20itAu~kc} zC2zm1jvrVj;BjE*3VGeXW2HK@dzCt}ca1u{XSI5N&711g7avtOT-8a{&52e?)yj%H z19;@8N2;2cmE@KCiA$507G{F4+B!*14E{$fQP;}=bZzN z|DS-vnCn;-_1QrV?%mOA@xs}o9)D!ym|op3d7)|jtQ8r_QERJ5UVP9OTd^>kfLbP# zOPjcG2necq7QOx1`&xXMi636_`)2`*Ge=PnVxrrh*)5syl5t2krgwf;C6%S$Pl*dW z8B?{??)cd9Yw~ldFKN><``LcI+Kql>%suzN^XAMkTQ{w_@w=}+Z>8@=V?9y@R6Y0o zj{*)09&1)F*TB&;;MxJb&KTDXyfR?uZPx}hs+&47Gf`g)K~P*3;b)L?4H3}5RpFjQ zS1P5JEu1bOv46*MwP))R4IV2sc&tzdcdZl<*}Y}4{&|HutUt47^CGq2^+{^jO})fo zNvK-tjC-G*LgpsK0q98ma~PbEU*f7=e4t_7q*+rYK04%=AHT!$h&%@z|J%TEf$R{* zOs{(C)Grwy96i|g#TO<%dEJ2ilUg*)Tal9*{9{^Tg;Oc9Wl#HJ%NA%iqo785L}9+3 zG&S|E!^lh4yHK(=ag)!q1d3Z26500vgk9wJvtlLSzn}4c;lFB?SP&^X(L*IYnTHjU z5-dA3!M{v>zS%y$U+>VF;RRV~!3C*FWebvGFF2hTd(o-XxR6sBNl~X7)=EEcMdwSV zj=Xc|g!yyl4FBqjFY6Z+oQ`$wR|M``0fFN`05~joeDvY*fDb=7cE;GdYe&GurymXM z*tXt;lxXdmq;TINjfIsK>;Q+ppZfh8=}{UK%d6*}8mW%%TdM(LNfF@KyKSiehp|BP z>$WB8=fG*O)X*gVk_v^@-nGYV#>*@ zc8|nAC&-tn&3J&vf>MoCMwF^W#=sX*1f&G0QVr9R>_LwHoPdgeS18B*B{d=N^W@m_ zpT<@xbv!X9czv(#Z62F3ebTjicWv%}^5^d|PyhUn3!Kc-`GqnH91HGW1CC!C#}4le zY1^X4B%i(yhL2$eOi;ts(AJbMQi7bmgbHfdExpu-hc*gO033U_0TinQFwE~u^;jZS z2UZC`AK1BEgUuRksjO6UXFRQXb!jSAO{zW~RvIHa)xIpFv!0|!6Ceux68HHT=`19nyD+J z!Y+J2H6i4Oyi8-p=W1V8tO8m1deJB8iJ3y4pPawmaS}r$6-baSUoW&;yb^(DBI^a3 zr9mPsK1d~1FQ*c<-<%d7EK&ZNnN?JS8u6-0?Id+c(`?ngWuEHLDqnSKQ%iMiUr+VC ztdZ(&(+ocm#f+~%Tlcyr>jP_;#K|p7*#8)ikQ#TXe39M zQwi0|Xh15jvXV>&A}1L?J=lqZgo^3SqF{*Go$7#1dWdi%uu`&9&1Z-kx zTp?gZURL$R*Yv-9;*=N0U3ci(pdH6Bg550_uZ^U-7!Gjc6|@kuV+iuu}!{e zQYS&cB00L02D4JyQYojwtUQ5JZKYI{IEVxUAycK5RW;KC^&pcFD4YiYL_jkmvLG)r z;#8(D@Klvb0Vfj^N*$@4pEPwqzb;SCo%PaP2X=35aPp@gsyp{Q%;Avy+ZIRRsgtn} z-haoC^bG6IoTCl2cIE#W$B+A)lO7z&3;Y-p$06Li>qQm!;GcQSXSaV zyl0iRS~keDy7$h3s(y_)l^j!Eq`1JNzJ%b9QsaX^ z&(ExMk_fpm;X`F)r)c2NJ61lwr!%O3Fa=V+_;MT{{;d`T^B{X}bP zL%TUiWweD7pyDc@r_$nr#lp&$7y>CtZI%P58c1>h6JiP(dXZ$v0zKu6E%#YUY`Kq8 zVk#bK+dOam*ipBQU$St{HDCYzv%aRk=O>ONbZA@qPG4-$Hi%j#Fd8AC zVTL|GeV#RleE=N3P2F0bAx)Msnycx#>~+Q{sbWW~77^T zydJ@NRQcqi<5!LzdHbUcYo|ROSEbzM`08a&X8A%+*2suB&4goDAa!aBq1-Hn-Zg9h zGhOexS$bEin_peEZ=I{|9MW4&dtt0v{@%-K-;TxV#IcQH!eT`*nHX3ROhk66-CGv9 zpuqq%7{-rYBJX*9>f%7*ecwAQAHf2H3F<9%(~j0Zx5Iw!fL;LZckf!F4((kgAjcv( zx_6WM=-^KE>5+YE|F$)1)#4dy*2_<*$Hop;gZgz)9a`2@b+cnsR${pFX+R-f!#&F< zyQ6_N51^%HL;xg|)bD8xxF=H+f_{prQf_U{yrd`ZA2sZeVur0)`c@MYFg<1 zqdq*aQ7^EK&hEan$im&Vd665XXYARwxQL~}C=N3G{m5Qz1?*k#yqaVhpS3dA*}nSG_tnQRBu8QSZ&0qISQ(NI>H7uGQ+`j#b*+*E_miVEgrg zJIEwtk?PljcA*lL-)bWCxG69ekMCcrJ~*&meRO!E#52Tg(4etXFGPZ%1VcBknXfjj zCO|r0y}z2D^;q?$e*Z1=vop4=Ti^yx_ptLh*2jn1fB)p@X7$mbjV9JXj09kDcS?Ou z0GL=k8Zfpj6QE#G9N3|)kgdza_us4kX2)*)dVQXI_5U0YkTY?YV|&-?`>;}CCUd4e zsYVaKR`u-INHwStqkM7YrHBkmgv=2E%q-!HX!AXjplY~EPpWVWSUr% z1g>#aQX>p-q#A37f;TE)GxhgoB!#Mb?;PY>V+J6Wp9MIUmpHtZo;?P@ad;hzzWC}DXWn{4uOUBv|5-y-a7w!^ zg%_ybkcK`79REIWoTq`Kv^p(rN!71DJJj#hDUUqZu4(p@Nma{kON$NsIX^Y(=e)GY z)7A$!u1JtmDs6(F#53SK#6(@78rP0fBZpn3EsF_i*QWObAdc=?qxR_qwU33wBGrJv zB;oado@m4j0FMKD5`D0Lo%&D@UO(20m-p5zdQB~y`+}PJ(m3_fvt!hhXGW`Mw68s4 za6cK>_HC~QT-jD#)w8wg)}fZ_&?;MXxwMwLylow4)K;A@sja%StE+#mt2(vGS66mv zqz3e9ssHa1b<;JS)m^vsRrlX@t$N|9d(}%5#;8{(KceQn`m|d1_RDI!2ASg;L{8}Q z`9NDJ{Crd|9?osQT!S{Z_3jG@?%T3NuJgcl?aOaprGLhUUoO;a8QWJn+=mrfJYA)NajC)u($)*=ggdlorW8G8>lrz{pGqK9!#t{!@mp z;!iPE&;KDiE&Q8HTh;#h_M5K$deV~*fBojHSH6Dx%~@Z+`TEqa$BiBSb%!>!zw^Zh z{v$If^yj?Ps8hMVs6vQehFTuwuT61>`8`{ICL<}Fs#f*<)AwoM-c-bO`y~Tt!D+B-uC5xoP(*^i)<#;KAhBi>A+b`SBr2ovy3bN9iK#;v8`N z!N75{P{2bUkNSzMUw;0f&HVWAy0}uP6D;~>A3jZNrn~5&HTlbBLY!(|KUqEf=@WhpH?<(7wKE*DOahu9c|j<;F=l@ z?-IaVvX}my3Su>-Gd|%53X{uwZ8mf1fX6ohvT{O51QZG#$ ztyV31RqfvVo`3}GNUjB-vsT1GeN6{&Rd8J#YsD_KU7Hs>Cc8JTV%(xbyG{1zmViM z-@QxAM=Mu4|DDvhz|V4pDH!F5vxK{>Nzs|~nR*5YP#Fn9s#a!YbOo$8HOpHl0VzAm7FRbm0; zkdu0}F%!$OEWYsU?__~&1_F1S=N$@EIz9uaQ~V5YK$!zZ*CRj9%625=oMCN~Japx#_x5PC0&sbHMS(1II;9wxq&mAAM5)iAV1pm6B5K`RM5LSLJ0z ze61(R>3m1(&DImx`V2|2YNSuDR$kT4s-~{F;u1A$>f-_sxD^0`#432$?3jA&+qOt; zSvyayUHY1u@#4ek-aD?=?m-*XzGaT8on1x5V5)@&h}B~1MV!jlR1-&mKxG#&3zuLk z3mM?BU}7gyUaBRNg*n+Bgk&lSU|>DKRp5UGKvHeWINSk9&;L8aW`r!L7{;q9F&Cw* zv^LXE)*8&B~7x#Z5n&`^=kIZwsse>g!XJ*az^_4-x)SA?FEf}u9db-VoU%smLD4l&m&*-Lc*wRDU7dH z_UAfzSsOn8?6V<`Ao4lj_``t1d_LjS$)7qbeEZeQyLE2-V6{r;ZBI)IJf52w{*|eS z40SXTLX9ct6pm#khl-ic17lIV_To5kKaP`;&^zj3G6(u+%yi826$_`US<@aoFnQ{!A@1IafJYk`gyUcdxr*UVDEOS zPuJ$+K5#w&fn*yz^(=X*{t|eAgU|Hu(MnBx{BHH+L&MZ{{W?f7m#NGQ79h}WnF|hH zKr$Md5r&TKGk>$YwYLb4QgQARwJlgAN$@rFYYn}Ko772^1r7rhveVY}3nU9fz?ZC$ z*}0dxRBaXtu@7P(d$t;`1VLDn!C2<{|J00Z-?&iC(%>{=@KvgD?PRIZ0aUS~05_|5 zVRSZ?QtX4){clBigTv$O27Wp4#by(M=XtCUK4{#Xw_ThVPmgmkj z)BwO`eufEcJtaP3&%D_)M>>t6&H=~22ONC1pn@X^n|$cN-u}af-tcNhYWUp5*iu_F zQ!Adrq;;d}vMYu96|D6HBUTVw>0;HsMVrUcUQOisgteFzV*TsGgl0s}V!` z2_qJYJ89&P4sDRv13Rp{V$!&P2LV+JASPYxkBe9a=0W|LC2zf~?jCZLSXT*EOY7%W z*3{0(vkf!gk!CC=N%1i8pF6+`-4;ev(< znrgR*%$mN=7qyjDE3>LRYpHKaGV_M`PF%H$A3reqo|p6*sC5oF{ypG0udv`3f<-w6 zrwe<(G3VuB&6;GqnGj#|RjCQ2`c35=(Ow9biR=Xt`?F|P z>ffRCp5xL7S|@qwyU!*l@(GC82bpSd;(M(h72^?mz|Jq2`8 z;lgUOfSi{GnXIB{U=-IY@mf&!+_5w|w$4*)mdw;v&e{@*b^r0PW2pcKbB}Bn&)5Qo zPym=i+L}s?4J^2-Z})@WfA?LdbHMSh0LQ6c0tySD;GV|PX!O~ML)Q%(deu{LF=baJ zM3?IQ*IQM4t64fh{A5>e`yeW&({y(25jZ29;-(x_mWFOyJ4qnk9-pfh~ zl{iUjtK3dRM)^!f9;BQAMM(y>02??E?S?K zQt_LdbbmLl9LHppvgs6~k3p8e7gJu!%cnehpZf6NS{WNw%u+8-xKH8(H8LuTpNS+K zH3ddKKf=wivm<0BhKUuxP29<9jo4(p@v-FLv?ChQ$0BHMgal>vFx(&J8)T8%(xYp)}7kqsUv$U-t*t>7g7T7y_fts{4-*spg1#t7!;}6`X z>gPwh0bd&fDXunVwK!R@8Twq3W6DX86GraUS6-rCoH#~pT=j;VQGq07DE6i{$I#oC zsh#he*a*ZavJa%a4{l$hKG?Te9pAf2ZD04Ew#>$rv~;W5YYDU-y;*9BdFZY5tVr2rOyv zNQx<|x?kS%)35&aobb$p<8so2_9av+{e8Bt@{c*G zl}}5`F14a@86=RXeR%B?Q&OF!K>)EEsywLxWk*N3>ApL!QI}m(LlzA?kza7upZV~L z*$|v#0dt&JUU)>}6D)k#k*`mCLSi5`A1@}ShuCA&pSKR`CV*khZ>$O|8~#R0ZpM^H z1rTi7m-q{R!@sA*{qlA-)w*Rf)dtG!SIrZkv91ah2MflyQK4teFcjA`HH$4+;u9ty zyix+e#CkYS>n;FJ)1QA()yb_Y_pBsfviHvWH-eca^%mnob36j(&~_(WMKo z=+^q!w_kmA**W0&t-w)0QCeXY{d4ONKR9s5?Slus9vdCB&lgwWXJd++JioXGZda~w zQ@xrJrc$a`P)%wkt4U9clAUzMl*eS@vy(%RO3_w`_4f@&!XK}|*SCLTq14ZdRxjz@ zk{~L6>2b@n)Vnjh26m47?ieUQV8Me|G8>lIb?2>p1r%7Eyi(^vY=8*^a6k?t-3w2I z*DEh?Dxf1W{>eewvZ<^(w8~Yj8m7tr5>VxHxGEBvkFDUGcgQ~#FLtjjF;H7gS!($^ zuV{eK3v}ypeav-g#llx5)&pzwu%~i%^qm9U3HBeTk6w5?7pc8F-j%Uu`@2%-vsVJH>(sFW zo25<&%f!(AR|xnru%LKOyvN@G4I%EGC42Hmb2*BG2Eka$3*LHtl4Q~{6GHt>pOPb` za<_)i<3m++mGeHkYxtno3QnJ{dk#2$8*p5xf2KmR<;D%m@9A`DlR0rQ!AE_`5rt9| z7+?Sx@fj8?Rt#|#ahaU#0KPil)V681SRH)+lOyk|QNym0^E8Vz^sF%s z8!$9HmI#SQ+;(jjZMv`53yX}>CN=k!r=@@ot8K8}wRde==mH)=N|>ie9D2XQ@FR@e z0HAH;2}6p+Q;;5@HYh(cN~qTg|EV#ng99()wp(|Y+yo6bb_POGzwk~ zTpM4IimQInp4VnP3kl434mkb^a1<7ZHl?^HuT6dG&h+Ha*~zhGKg{-poHQAWk{5*y zj1dgGv_-ZWc5_d4Nz-(R57@3;cG1|(h$Uzd(=hsfSR9!D)Pn#LX7^pCwys^E z#y@zwc0IbQ`LmwUJKb_8NV!p)o?|p{R4_b>WSfc&5m%#cx8{1MTP8a@6Z^h92Po4b zfeOuvBKZd>+3&e$=+!E|aw)fehmA?#4^ykMdG&lZ8#MCvs|7gxZh}+)P~;x@0Yxl< zq)-X|J~w`p2Eq+;URYF@w#ZSjmChH{FET+dO&BdHYVN_Zx2LOSbyFk`B$fuc5-~3xT?}~foJjA_oAIokH(fuDuv1v|#~=RQ zYQj?w-WgxL!aQGG#iQCKIcY>te%%DOq$MQqEZ?A3R+LNGwu{g^X|X`CMvP)qgaD6O zWDzQ^^2O?*Q8&3HFm|pxZt0_9A}>}|Le5vM8l|cg?@pJ=!D3&xbhfqza>Z>hnH6IJ zz(446X91Buq%eRcPc{vy@y#u?5697WnCXt0DWODzqY3C?TLn=i>dG$5;8iXE9~^m;q&+Qb_iWG2_9Vet;u=Vmj~LQN#E+!H zbkFJ{OjDbQvE}bn@fra656377UT-(xVSxkCAkIa+iXeBL?CQcECKyW$jY7qnuIZ$% zzp8`&y{23zj9e*s;2EVwI6RsN>A{j`vvTQ`eyJ3G(f09Aj(J$Gr3QMf1f2tpvjYdZ z3z1)c^+~HchhKM3Otp%0(h@_C>fO6gcHA_FHvJpg0RS4-kGH%A+c3xa-ed@f##3+x z0mmPku;ii$6&-bj)BqzzZG6|_`BQ~s z!vD%**XMs(n|z_7-!ibPj5*Vva(3BOLdz#EgEjG6VlI-6Neq%}X;L>yJ$Ua;YQxGo z;=UMJzM@tI#d8cpD*Mk`9Af=ITEp@|*hrrbf!EfJGF&BksR0r-G;irW%?eRjHy)mSl?b9C;#xn-`Xj4x?JJ8BDa!(LlqXH z&K3FTiGyu#7})iWl=zBsv>*HtmWB|Uun0(1CI9mZNNbX@Zmj1{ks`Hup} zwxzC2!qkal`D>?%Jzkyj*cpG zv~%00vyL9xdk0Ow^oClh@SGk;iNHZjqsq~P+go;OSO3nW*z)tTQ$vns`+`q0*%5kS zk>*P9=Kt)ZwWq|NC0P0Xsy9{32I53lbd6fGc$V-hY@wGO1X8cQ!dM&t2MZMUi5*TBURsz-S}V!o zAb82Wh_6ykTR1PenW2^Mz9uPPu8DJE01Ad%VgkchI;5|yRtd5L%if;qutQhLU`GZx zj_g{YM&C8yjAlh8#iqR668jAEQB&6dPo*q7GCUB(oyopHB69_ZJpE7pqcM){Mx2Rj zB}i;*izEQ<6d1Z2l%?+{g-g#GX^DXrs}q3FaX_3n81al6wA)At{Ux??`JGpGZTISt z1G@l?7J5Uif+cWKWceIJjqLtA@4G?vAN^@#{J1A;)skf(k+C9F4*(DAb{8 z7L=PDcGgMA1G9n8l6EmWA=Bdn#p0Oz%98>bEC|x6SRFoXNtojVy96%uGl^Ybp0dC; zET1dDAZbbccNXmZBL+JBj8(E|ZojdYV{wGL6m)v0Jo(TaCL5!HWBu~irT2*i4uEF- zgTvfFBr%M3&9V)F$`f29#?iN1OGz>FeV-oPB9=mQ0f2{`f{(PfTF?ad}_ zZ2^c_9n+tGSk*|YEWiTL;j1s4`@H;(?*Yi5yF+HP#c#Y`-mbQY5McqCH0V+Rnzc)3 zNvgMqwNXNh3IOub!d)_%KG(bq)7F5Rm_&X5(CVa{{Qez&7OKB#($fEYjDx_ewyY?M zl#G`X8}kC5%pac6~q+@Yi0FGQ+r|~OU75ltL}r7j-k|Eg z?W$;iVsn@?{YjVL2MyqC8yVTA8cx?Z>Ue}jjGK}{P&uR^J*8q{d~}(=W&0}68`!t& zq$Tey7^~MsJ?S%3SP-m#zR2lQd=5Cw5ZQP7WmZ|YW=V?{^|S9vt{yZm#}{=ZKP~d4 z2$?wT`tl?_6>eUc_zu6qYgKqjM%HC1T8L(?kub@dU)H9Eq|FT3YMH~-T&j1>h3d-7 zn>((7voL&SLigy{NIruZ&LVpL$$KRrX6iFcGopoWJSUa{3vrb;`-!qcMK|XVCORFY z;yBKsovZchVs-b>K6QTal2QzBeRbq{CzJT4RVFLspuv!?I zNrwEzV#aJIRSS@D58#;4WsVvfZ)^rv=;|xlNQXKyI(+BcSDsRj+;@v)B=`(FxCw%X zc}CF%i5OCg2C3?~@%OmE520(nM^MNv_&=)RRjOw(jHt+&5-U@B7W)K5L}c3>C0J=;g|=B30*r!?idr z&^IJv)B0ttS~jgUBBgry*R{!aOz)Bf78Ja~Ev|o_<^-5Lz~S|ii_@NM7R5&FF)JZ2 zO@HnoiAC5PJi9IK1tvMWYNk-PjjKZ1kroK`a%0syb6$`|!RMfylU=ZB*VszuNl}S@Zx07Dx4n3!E56s7pLMGaYM4WQ}Xbt0ix}xD|Yw0JmKc!98` z4K3juaCm{Eun=oQMQvKQq)q)g>BEzvgXh#pjrcG(IqVnW7kRcqFujroy}k7pVMVef zUUCr&!WU~ghua{P5qSxdYzey<6mC+7EJ}cb-3~P?OG$>$(Dl-~DxvDd&i6!0^qVv- z@drx;BLxa2oU|)~$C=6HRm+Axp=*=cJi2F{UL=po?wRG;nc-?+{v&pLeE%9XY5ZMc ztw0hZgVL^9u3EilrjspMubzHnxLek4uNSKcjS34;pC8|eVB9;y05;#qX4iXkCZ3nOjZP2-1Zgr{u;amHLQaXq&8 zY^nxW7PzIz^S!oa2hiYoP^)8Wd;Av1nPNOvLQyJTH6RgVLVfM6*^{KHlI;QeM@s=7 z)#twQz3FnjB`K4Yc)rB9GD1~Ke1)&$s+L~WyiwMy8Pg|^`RV&_ur4YaqNBPmCL`O7uMmLY2hbxrD0FFNw=ohej8yP`gf=kxsE6j zgtEak9wfvevLy^ER_$(Q>j12-Cv;bgUl7m6tb@ zbR&zJ&prFtT@qwO2Lj+gO!(coQ-nyx*t+&@p@zeYummS|$Tf=%FdW^xTD|=ISbeTl z3{5^RP&KRT6Oz^Oee1=InEt|pCZL-T=r6bv;OOrz(oc>USEX9`c@D|VN)JYy0URu1 zjzzZQ&`u+Z2yonZb!U}WwTuhED4bCpdtf{FWP^Hq>@XEyxvZ4WXQfn>UDULb2v)ZY zx?Exm*4mi;@{R6VJbPU?B8nV#;zUz$jI^Ee)H+o zv>Qe0vXHfL+O5kv2OK2>hx9iIKX`CY>*kGXjHq6z+^m|JRgcv~57ZZ0m@h%l$^snO ziDAxeiHR2?JxFP!WBOu5xu8K1l--kZ?;$sIlawgD0mj@{$BUK(pP_!jTeWI979lFB zT6w)#LnK4OVzt4~gFBb1L4Df@5U}`6b!&)fUN2Pwa)1WrHbrKQYbTgsVOo#`Iqw}d zKwBf5#p+!*bFgf=-Z|&n+9K5o_!$@=$ug>DCP}GK{@aD{?)vSM9h=^jx{*Ir1`r<0 z!$V!r@MiGN0vrYL(WSm^(>!O*hL!J()APTN9_i||Dn+(LfaBCT;5aLAD1)j|pMP|q zb>ALMhsRb9n3JCx_(5Ju_%D{wmFI}iTGjDiBY0V)XM#7c?-Oxhc3xYtYWkn95mMH; zv9~(rZGQvX{L;hC*S+{*dgMMm;mQW zHT1^rQfHAX0mVSc*6exE1J z9204o=)_0n&3MM;caVN=Qaf3L8*U%f!{+{{$A_t2+FjebWsz7e6ag-pKSctDR`kc1 z^Of9SEyTGe9=Kh;8><7C<&9UL7V;Ya>}SdP)9bmZHf|N}kKvS%!7u^aAdzS6-?N3< zv~rHj2N6voE21r&gF8)67=Zo2@1Ut0E5-l^uA)n@b9&^mxn)U;HB{BiFqxr*s)66s zt5;{$u3bBx)bqbLGM5Df1!eq_5$Ay8*MI{{qtcJx{H@uL8+zaAiz_=f#}{;{W=6;< zX|L#u`dyOt-n1OVD|~Afp-qG0@5^M_w#X5pS*GqEah+HUqIr;REtW91js$Rk-T2;{ zFUW$$Jm0lxvAVwhWl|u=LZL|$76`j3#4D*M(E#$wDj4~D^`m&L~V@q{n?qx&hQ8@G>-{p<7rk!LqQ&F&{O?s*s4@x*3(L4fu5-X~_MvYU zNVjQd0lDDQxeUs4clY@n%mJ59#BV4Qvtd1;S*s0{`ikruc9XbBgsZ;&5 zm64{$#ZJ@n{|(?MICc6zHwp?WA;R-tB8l)yabDuhKWW6+0;xm+>f@G^hqhnx2_GfD+E?KCKI25Mkf{lK#1jlZt0daZ@D!m^dTW-X;P^bRp(3cC9_~< z0ukZCO@UCxBBHX?pDJD)-~^5NUnXUDb_De9B7vd`}>V4*zmz%WS#o3!w1QB|`nQIpCJEz*+V z=|}Exz|goTENF@g0VTtU@K^5QKGMb#l{K1QeRgcK2D1&qeW9?7J}+=S^3v>FigI{2 zAw|^9lB$)vj5VqhA{;ji3m4!*I>=8LJ~D zw&E|H+csSG*$0PimY9Z8WlOTg|Kb)$!5=m>Q0SXc=ocB*KHa--&%HT0F68yJguuf& zY1-0|#z2*Yp_!E&`m5#EXB(KIeY!Pu^bS_ZxbKcZ66_@H%HnNMBUUsKa97y1*+KE8 zjXr2a2e3k2)7T#OhHE-V18AyOIW9rg1~sZXDO0lx_UPEq6&uDqnlj;ju}m=Ku^8&- z#i^MuJ?_Zwtrpj&X`N)JwLqZWu_}wXZo!8jE83Yf<{?P9Y2_ON9Q+-g17s;I0+#@$ z7w4q$BP6~d7S*P=UEnB*#pwONj;-?L+-*>j#Vo32KI8t?$*wB>W2~!1nLVzSHO+Zu ze6Cr&WPNV)9QyofY3@&*WVd9Jt!91 z5_S7cJw>EivOZ)00aUD{H2U5Ks^pl8zf5}affv>3pBt128s~uHEWlw*vNC)3Y;Dl6 zPWlrG)yo{nN(s^KNqC{jZbV3+QYg6p0&uWE`gU*TRHPb7J41&Kb^DMofxEV^BO0B@ zX%gg6lj&O`?GYVmK(E9dJ8~^;8oxJhvT!J*Hbqaan+9}p;~0E~psC%p83Y>JG)Z>~ zo+4FhY>?2mSx{7+QriGU+#DlR1ah8xVx({vtgnwd1xVmJ7`CQSFQ?xu)`%AnSReog zYUx-U+y`PD5~TI8WlI8%4jMR6RVT&)a7=#sKG7AyZzn6$SG#m}akEgLcwlIeR+CZ< zs_*|jxA)iAzSd!iu9oxRK3W2qvE(Yrxnot(8q?~jl4b_5Z0gmO%}Xwydxu84_WMY)A$*5&b6sz%8(;rO&7u=Pm?es{)2yN~-fs%g(XAaNdH zI7_dZNaM0-ch;9suApJVXGD&UFDESOEjBY$t9~^Li=bK3I^2=W)xR&XP_hz-e8M z2KlifUSmX!SBbPB(gHTCV}qPLUnuHS?i$SxLk)-E)}&UFaZx<2E^&vj=GHHp?LJp5 z8sZ|HBQ6uVu}7Tx8eYeYxL)EXSR8pC;3z7q5H29*)Azq|tpp8X69kkGl)&@&wL&>M z&+&O0a}!g-owBZy%+U<`pp^Uan*Nu~J@w1?t$uaUp97Afz@aa?Y{BW1=?{+`aZ^%U zg(W%Zp}*uf^(94l1z`p>(xT3&E%EpE3@xHX;oV8GC>|Vjy;u`Q4|A1FNX&h+^P7c& zh4A308$A`dp5tPKg&X1px)C! zb^l%0$^s9tp)9b zHYdf-uGLy*s zl~>pI?`S&HZ!_|6q-rt0jW{wrLjv`reN0;h?~4h0eE%vbL5JtT4r!UFypj^Em086@ zkq>jtdKMSf0u*pSfS@nCH3f10dl2fjYp~Z3cwk|0o!H)O0bao zVS}Vt55^5xCawqRY+N*~2y5-ZQ>mXDD?7FUMQ!SDS)why&f+E&sX|URx}&g2vAo2+ z*l%1KJ|{GK{TbA+Y*j4uf7`x*^MYa9x>2Tzt5nKyL9ym8maG<^V{jeR*Z@L#X_3Dw z?8Loclfd$8+blyZeP^0F=v30$QM@5`N!G}*eMXO?0ad+#rJfU%6{KkkDlIYU@Zp0y zN9%Qv4JiDU;qskM{{IOa5L+_!O}nyrgN!GVqARY~5Aw^L)Zo)KnaG%<#epL&%XbDgQJcu<*_9QjDNL&HSWW?b9au0CV za5-?Ph{bTd0)YA&(zF{!421q7#tK?007e$<>Rzo4>o(O?Hj~M@>WY?X*ZT`4ZT{hb zwQ9zTj~E(!a_B!5c=8emaY?&%sH@hkm@CTaUNNAvyDQov(SVA+>7ku#)U~}ks8qz5 zg@PX}YGrk6rf)!GTdG|D72Z?fUj;Y{|GiOIcv^-&R^True`-HyV6VrbD_yWMH!bp; z{ESK_@2?+vO;JJeD! zC%sps$ZMH-7l#e-o-M{<7`l;805?z;ck_BaskEj2B}IJ14BBc_p8M^UD&V*^Gb>9W znjx>5tk2B@FLR%b1uHDJOPlAYHA`kW%3-U77X#bX79fgim26xUtTanO=kq+v+i&Pq zgnep+hjOII4APq=zd?j6u8?*%S0&HsjcY8nK$W7;b70^0ZpP%Fm*8vnZ0BONZwJqM zi<&;+5tWmqt-a*(szzogX;?LE@C}RgT1fc!*5&^iU0<+DEXcm3RInP(zQF09#o_(9@8DOefQ>tLT(~!uyx&=!bmi|I)aPrz$W4! zt{xh7i%XHlgx^ql=$)mEFa%Aep^C6cpMUBeF<%$Xc|nx4hTYU#wQ88@ROMFkRQrY& z5yA1+J6K{{aTPOfMX#pWRVpp1?DV)00TZEAr-r+( z8(_!c?9s8l+P3a(xyOJbK~}(o`)b`I3pVIv9CJi{;Ka@?jn0s2Jk zs@`|kwQf9|sO)f;%z$c5LZgr$*cxsfmG~=*d%iGpA>`7;ruc?onP_?uO=J5SAKnBQ`ESMriX++cs ziUBYtNERX-k=ogm(VNcpMmjLUF{2~gdW-CokRsscy>{t8n-nU+LnHrZ6Bj(pY)1+OhF%>9Ly{SKcYbH)OZ#`gat{xm7#Ef_d_x z+YNZ?Q8S~mX@QwpMJyd$K{8}i6>nNOS6HN$H&POZL#|s=$i~$%)|Q!nww@$|#@>2^ zn}Vyff1Sy^d0ZCL&!uQ@m;E~sfLbkcZ2UvFY0LH^(>$q4X?1wd4g(y&XaM*(hC1c7 zI{x>7Ln>Z>`R>QIw+`q#F}eEr9~+^ah_gzmx#oB3nVAwEKCumytWbo)-?kmuZC9@0 zH}{sbCyR>-O_suPBPgeTciszbu#{r7*QY%#QFqH3AO%Q0i4DY=VBi`FXtt=I>NNk2 zaMZ_xg|J1{t=;KJe~!Luprf}L?slbTC&PuILY8JbrYoF(*YpBJNuA?4o|y4TChdtO zz@mY|4sRq^0;EoS2OUdo#X!tr*vv$(FU;*`ceW>0x{5+mm5oA<@pS`T{L68Nho{V7CC z!jeg-cLw+bmQHR`hRa+l0d}Q`@;G9_)&*cf_UYD4ZP(_sosa+yBq{*IP8`hfcFl5x z&J4)d#yXIam{gVq&p9zUah<3OVc=U+BV%_pThdKssbQCfI%cpx8{}_b9p=$8jVKa7 z;67Y)Woxm9kljcBbntcEB{N|NU?H;5SrB9yU`=w5P|YIHDXxdlDx-xI=~!R15G=w0 z#30ui`L*<|*M;I)^1oZk#GX zS^JELHR0wFBsD-}Ds{0giMd#d#9Afv*iEQXx=7s;=Rm`0?i;;gEU65>3|SXb2NdCU zoXZi-7n5RUuwg*$m&W9zjpVYaCp_iTArz}42!APB_uas5~lWVeV-m;m(> z0gcs*W{DOlKw*w&Hi6r&>*gw^TW}{61mVlLZ=tTT+UOAjr29J?0hPUzp14O%76^yal~xnqgECw*X-EWjmB zRMjKTSHo`Yw~Z3|g2I9-rwUI8{E_2-0XU%1R?s8=$#M6Oj;mH~OJ;KLDN5w?(xQG- zb*q;J>4Jz;FL8bU4iZ_1nMsDN7c!HMotw{76vbo$ z6wskSV8${asnIa)9ZeM~t_#hVC@9PJg%)w4nDFRyT4_S>E^ZgAU$M$q5iBNvFfAU= zMX>B@(BgAFQUV+gx;nJ+j}NVviOxB}D&@TCpc!ygR%z2~N zfw@i0#RxrHmnFPN`kLz)d(XAPNm(?1vM8NFWU@p#?{g`s8rd5Fnv#Q$yHaha+_WA%z2g* zAHQ2bUqCXwlAFrs^JLLXGw-!76W2CQ;(a>ZnZUDcgl%N~jN2UP%1Qz-ufP0+G=8$u zgErGbHSONbOC75EQn5-%%^q-cSz;?|cPusH=qDc^p>1P6?#drI{s&x@0we(Q4(#4G zDnF~*_VlE{AIV0L-8fUO?#x}w1~l=J`*m+FCaMsz9LYd@`&$Nf5tAKLotOsZI23F% z5mvg*k!&r8(Ypw9^(ydnXHS1zViTlb`9I8hl(j{0SNpi)+v?q#A~Q^2XvnjsJ|Qgv zXl-bBYU@VXJ|f=Og*PMQCrX*_YyEmOSF>JzOjw~vh5Gp0J%YZ+e+ME z_xlUQ3W|-oSc<}|H3WBp7*5sj3)RSB*QjN0Pjfrfvuj(6g90(*DuxzuBP^Jbx`d|A zcYSqYoBYfICnIE^NlCzAtr0K7*BdhdASto~kT^EL05Ab2+%qdy%=O#aA_kyGM$3Sn zdG5T* zC(gm5!<=UUZ(BcK6vQ|;t_NZpyCoEHfP)6m6jyO?o_}(bSY*U$plTaUi*UEmb#bc> z@nMb+kg~uB_3f;tPP$)yCj)|ffaPO&XvJ}N+rrrEFp04?7<*|#zJ)lN$;R9~sFRAR zbpChkTGm+k>4{^P{h76L{u{u7I8W57W$$(O#RbhuPb&8%>R5Tj0OHsBx{5oZCn_c_ zyVHq7n*^~%cS6#wevMG+lI1k%v6jN5Cq}x!VZ~+u1gO-+Cv5jLBHaUew^G~Jza|qqU@E&vx$K1!Q?8-kq8E@b!0ZS*U?xoit!3$Z3nm_zvPI z*3^fp-MMWo2_zC5z|z8n;#vU(77&&fz+raC5c%74<41}X238coKO^q!4~}|4jRj1x z8X$o_2|yKCDnQ~TTh`7K(IblVY}0C+;o%(Vx{ixx1GvOC7{#p;n^nPWfHrSr214D2 zP50d1Pv4JC4!d`)R4L;&O3O{h{jk|Co`-Gfgk^<`X*U(Cf^IWOc0(Zx2dR&KHAe4a zjka3mNTn_8Q$Lx_-w3>TzZQS6T3c@VoMuiNCj!L;NdXRVO|~ud0|#B}w!sBjDdfLb zr#zrClLJ+1Lg4qWPJ8ZdX{=5SaoeBVkjr+y@r(wCBbMIFUw$ZvyuK$~6H@fP-`9bKGAF+bE#p8NK$>BjR=t z6t;CM#T!L?1I5-=vX97Nkj~ua(S9-)_wu2CyUc zlj3iv&2#2?F&7MZY_&^HgSE@XUF+O}8<_4Xk_xLtz^+>Y%=e-_uWXQzfLuG+=FT+yx7?7x5UX?v*W6o38^<1Zc@ zEsR>XYVq~8vSU|kv$+rkrN3cL=-D4evGQ(SN$b&+$aYA>ALZslLAJ3DDd%=4rDL(g z2TE^?N#pN!ilUaeMOx@%Hms2#!sw9htd&e%#V!`47IA}8E2Mz<^mbT8K<@n3qnJTUm%3+)%yoyo7uM*H8 zFbf@@bK>}X2G2@Y4)2a;f^uOZ!N;-i|EY?#91nJzc{84spsL8-r5OMslfmRP^$@Gv@4@uM z>?clO&EA}pv!^6EcdP~U7>Et9i!;I5txak$Nc-vek{uzfO3Vb7B*#Xj?1TLqWP(%d zW&LhU|5?)>Q=c7wU&`#6=zs@IS>hN}*Fw2AiziIZ5hZklndi@(AQqU7ahOblfAIna zSPquBMeKp|=Uj<#01C89FvO|y@;~%ku_;v))M#zV-@UvOn_02NgvF~+y>SCbbX5K# z08Q3|XN90M9npAB0Hozbc;=WgO(01Z4G+)ShMVKxq)>C4YO=qi@k zED0`+ZE?X|zydK`jVFS7P8I&vfv=XkXu<3e*{M;R^U^APrzdz} zjxh1U+!}yivp6gOFxlER%M>9V3C`_WEftrRbHPMlH^s;A*{Ok84JIbwOwP1m?SqC0 zF984b-r)m4fsus{-A~E6EiAc>++(siNO6#pIhh=1*tvuUXNXBk$ zNMS35DT!ZCKvoL3k|U%-7oG)zH|TRz3%fvdX;)8eU-yn)teey$qi>X5pBf7Ok8<-* zj&4#jUwTYj4}AK*-I@zH;8t~OUrXfbOaL!Rz4+`HaaD=~hdEEDjeyhck=B%07TY(x zC2kSDXfJ7+q1~go`a3rWp^f+aLPe$3u$z0zwE-M3KdnrGwIpoCamUtqMLOzv>uqw~ z7KtX6JL!r0q|ua>MPvsj&LyJKJC->FuhrT*9HH-HlvLy9xdb{Bd!QXBS}G9840&(4 zQ*gIhQq|tLlWFx}0;yz5c<$(;(DWKtkZT}zRNPVqI5Key^>-#{D{JUYS4fOQN+76? z1vs{8YXdUaPJInK-ZPfc*0t(`eOuI+kpl~(E1myMVocDQ`STYHadbz|Gg+2@ef&i& z4t4&I-+$HQrfYjVmmE{(%Y3J`K@Aa53HSJnVP}=*x0VJEj4thvg)q+%vcaUsOy9qK ziA*9ZZMS*#JkfY$F}t-NDHWv+A;c?Do7UzoL@6uiW7MJ6s5f7mD7!yuU#7S&Lb{;Q z6e+%PDS5?0u=OBrZH?43L>duV+v_DY!fAF~K@IBLP9{CU&m((QN{aEpQ8x&{u}G5i zaf#J%4Ol|}Kz!wk1 z$l{|K_}YG#YJf)fbcMR+$~ICdiaV4VUr~r;^Im&afNbTv(HjecRr1D_tRQz4p?h z`kZ6MIxxh#P`9>+z&9P|kUq2oGG4J*N8dR}EEF4WGT;>^mIlFSHWD@?>XJ~3LvpZF zn;IJMGsTkgwq+pWC0Va@=31!K1idly8OZ=LH$~)l+e)9bm6}>{(`_E)<)RMjBKo!q8B}J#!lvT@1183Vad%72Njh?K z=^@I-R+w0r!W?(Zh-*a{*rfa@g%nsQf0=byQ#2>J5)-0YSRBGx~s8xYmLBCaiWAZa2g_4|5?LxilUE|8= z5xnEre8=GHdPqFOvRA8xov*Jq-V}9d6P&CB_sEu-&v@}6_4x;zH4r`EvN*l&0d#6# zOrYx2x|Rfiu})ZAw7kSR!9C+1vj}sgH?ENtNT^auU3qy6NipK~Jvj0P;j}p%V6K&Onrnd?fV$-^b65Har!}nZyz9PYDb-_Th0O1GCIShL9R;-E@s_E%KasFh1F);T_QNVY2};x zUcaptzcoeG&8_aHnB5J|NzF1xaN*$O9NeYdsa+bVwis7s{|?jG8b+zfyeyN?9NxP^ z-7uh|imQ6@r>P0$rY>9f+NA_ZPZy{Q{%3%rpy2dB9Tc(^oc>4W8?Wo}a!i%;Kh_WP zBqj2Ih5?R9S7QV7I6p1&46DNi>TEjGGDe9Nke#q;Kt6+j3vPVi%}|$5c9B z;vB}x@z-BqdB6>@Jz!11b&Xn~cg@S&)hv=iv_E^rZ!8H23k3oeSsG$31ADh~SfBp( zgdzo~cQdH$fB@$T5L&@tsPM2}Sy&ra&Jmh7;MJ;OniOfV=e<>2*7ohz zLM#q41}hf6DvSQn`)_fHWt=BHXNifRTjC{Tx$&fQqpWq~)t9*)(`b@Ssux#?-ZQvT zRGr3GD(wJHuvk>jjUT1H_+W>&Cf*PbOO7e)mZV?WJX_@YSbzkk3C?n!HkM#nxo)R3 z?@0A`cq3~=pA_O;W9}X#zuO+b{&*NXm(nKgGWIqB3)}J%v7}Y+y(X+v6GRU!lJT+` zAI^*Wdu?AdTi$i+myAHu3bA-`6S0De3nzI~@VJw+w55euu~iGRMR2A^tx4CCriC~L z@h>MW?B^=s0mlaQz3lnZCx2?E*HQ5QkgM_=L`9UUvSHn_n=(?P*84R2(>FAaLMnD) z7dRpuah^~y^}U**#nr03q$)4v+*$*e*qH044PjAfJ9hdmm)23q)yqivx>@YuZizdQ z^c$|a%vGo&==zcN?@1}bE%2sJy}S&&+c0q-zV{||L{Ba(0Nd3b-a*kcu~E4qzJM7_ z9)IJC*MZ15TY z4&o4YQE<(#Ony)-4&E=G4wcU(nd(xSF9B+p=(GsnxPTst>Kqr~Gd)wnWpT7_oaqLc zA=Zfik7pA`EElL409@!LyBbWaOpTN;zbk%0@$_&>cBP=v-t4f8ez^B zm#OsLPZJ2PsCsp2B2}?yc36E(|g<%_rEXGIl?i$K5&>%vL`ia3wq|L1yk zc3X)_xwMzk?DZ#2z|&9r6;~l9P$nH&2}|6vg--lFVsJm1kdi*-`%|1!Y5hMaYeUnf zEx}&&pB{Z*|KCax&c*V<;$e3sgTq9%i-et(fa@&-FV_=h zvBWOM+;yD>f-(}=YfvLvTN|_W!d-7l#^XbT&VF70b^;t!VnR^D3V=C_*$vpyiJs%K z@F2DkASDA*E4#8w9J3aO)$sJjkW2tKRID>NAOHlxTF#e6H1hVV<@;?HH)BbKiDmKp zlOtte;_|^kNsSA1G&DjaK1ACG?gbs{M&5pva8A4_QW&0CXi(T&?|5(l7d?oyP(1Eq;SVSe7nj_4nGxFy~4V| zH(ztR-h`91p;Ya95d0D$;wT3= zB3wGK#0E47@bKC+&X9?0Cm7a&nNSffJJbm6IQe#m70516vmzE5<~@_$%Hxw+V4}J) zh*WDThso{^J9XW%S?ZC|HL0G$3YK;IJUb*&;o`qO10$yRekY-sj6jz^umUC1R>J`6f1&vA%dZ3 zcM`CTi3*VSjbPAnZ3T4^#wNkjX?oXW@e)J9-C^gpG;%B@$YQuaw)l>CfMsD)){pD; z?dQAI3r~-97oS(;7(m1S2cYtSG1Pr0#NfDc?P&c9G69E<2YDQx8Hb$TQcw6*^9@)giaq|0LL-`4IA&E$#x2<-}u1Ko}cjOv#Q`!Lk%1k6lx3N z_l`dma1^SOXB`?iN*&q1qkW^==`+)lL;s$OrI8us7E)#V3=LYW4PqUZI}jTrt^zv_ z6NkYhvQ?2xJa!ISn_>uBk!~%5RcNx&c`L5lx>1HKGy-Gz;lwZCZ_rO=pq>oWT4bfz z0Bo29P+6qb_w`n>7H_*?i`HoQ_`&|Q+QpbFEebh576!2Z78H{YW+DMbvx7%DYGxrK z)lY_npkn(LS<;!lVa;fXCveV~*qGpSUZ;~AE(k??4f5h-p~ES`x?%A_9{cjc?K0u9 zN??E5MF((DAh>+tGnMDV=GDwfPN{QGv{{mfbIfLmiPvk@V$UM_m&-= zb6PNaqH%W;ja5hthF&VRrsvsl!)5aT)OjvgWdvJ!&Ma13A&LjF+H4=2T3J;kJ5$_U z@#?N}eeg%%o4_A2L0yw>#Wm$zaQCchYlEOHeC{h&4H*{t;o44gUhp7J)v7_d%iAG< zY-?$}K;eyfd94qwIYG~byN2|0-4Rn>?^i{)mI%R9z=i%gc^Q>dQcT&;dv?%JN=f)zacO zvskS3p9KzYcQkfE9wrl+iDyJ|{l#rI0BJQEjE`+-$N1TPMX)7uYK4D@7z{hFPAXPRM%L=vv$oveb!KE=pcoiIiUxdp|LE#PXu`F0GU=*#6 z)^kgrL&I7LYT3f+Vp&+%q==}o10Kip{lL0w-6%~ZMVI;|CoO9KqPJ#VXXp*5es$9> zc}@N$fJ2r3-&CI2M?Irk~0>H)YF2BM1ps04jXZ-6En$nK`u= z)MQZ5$T)9k(O4b$^c#AK(ffEx!OxT+T!%ul+iZ(2D=14$jp zqO@zCBQ6gAbK>v@p?*_0LVXH4766vr?X2b|QGCN}3@lRCZnZ!x?b`;N?PuJ$jowYO z5{=csE=)Xwb6_{d+QVhB>16<9$y?JjAa2p;^rF7bs&Wp(_)LouU?A{|m4}sLsPZOW zf=kD}V(_zdeJr5Z`XkdgyMkW~+NrQDF1Nt-K6LL5!to&8+OAoyb{S1WCR0d>YZ2uD zJz1@2u}0v(0EmVJ=#OOpoID@VSSi-@Yha&CguTpnVZqsr#NKl+c(~`Ot%rnaWz_?t zZgeYW$*7#6h>q2v&*Njg0TFQb#g$SZmociVa6r~DE6&C8v`S*-JSB&Fq zW>G=aH{Y6lZDwlawIUwtP_fM<4RUvK{7VKjXZ&RROUz^2q7N!9 z+g=*%W*e5jA?74Iw@vHic{DLyT~f(rRFv3**F=`4Kg(Ws7o)fLh>c?~Dd1GlNQmGf ziq8AH`%eq&H1+j~AK3pGuGCLV2IGhU;tBI1`tbflIA_0iY^7O-Z$h8xA zM5~huRhX8UZC^FEsDox>~81{k_52Heh~b&g=KJ5xJQ5`fFe8? zN7ToHpEnKf6$+wym&JywC37G($`#zf1+|s~T$|UYJ?Zv&vGj9dB6DAPTCzes8xuE+ zC~}XO2Us^SRvA#=2{;eFzN-KiwM5LJBCc(QK5y;|^IUHR+c&-=;8AifmgOQbD4W>} z4=CE8`eMtSuAiTgm8046R;@o_rf4{-e znbxnz?6x`?khR$1SQG?)$(G=<(4>iA-D@vBByIscNG@w#TQV%Z*s?-sA`3+IE*6Ca z4gc=zuvk;WiWGPGP5F=_AYpYyy~59K)9w_1B`FpYgOnSzrP1 zH>?e#P!{a&=spcfSXW*GpS=#QoqHp(uhdAl4JHGb1lXmIjK0~)0Ihc`YKeEPTRL0Z zF0@$yOo^4HM7sTV?e}qfEEjsUU~%9cSpcD~2NzOmkK~?4xHT-XJ$Wr%zH!hzml;=jZ;w8OmmAUer9w{sg3YM50(9Ivx=A)>FC56gj zu?0@nrLy{$yh8dR0Qb?M^)hi5&7Yz=w$7J24s=tQ=xAtIq7;*q*bSK$77vY`I7b!- zLOV4ws>)6cHT$}&+KTF!ac6qVLWFgRrUutQfX|eO8}pkUA6E9z_DwPT1ZSs9i!7o7 zUsGBh8tz4rwhKNlpqP3Q?h`>n+X&0_mx&P9)ApL_(XoMm$Jl$WcQrjY=kX5>79fYS zG4#eOg`Ywu;_53}s4Z*XkY~0|TXR)Z7qI#(Lqt@LapKZy^7}Ibhk1z2`cS zA)wbP@tHIcO)}SOuFr}JM>xT969{Dy!y@f@S$*~HyyqlkPT<&*)oA)e@R^L4se}!d z>-VPp1(?zzrQ(_miF0`2=}}Ul4YeQeIJk3}R16>6w_2ZjU9oQbYW$HBW69H&M?&?| z`Z;%$0I7*}c>BvPcYtHL2q)p5-g?bt`aYB{(ATl2{U!Cs|NPTWjSH0uIW21Fv{Lxz zg&?G}c7%2)$Y4MQb{;q{m03+rq*2RS{PwF4)w2ILh7zeBroQwq&T&)y`NNkfE#) zk(Y+;?GER)z)YOP??P}L6!KAg#_o%DtKFp$|5?5GRsH@twPXE4)#Ebl4(LUM58u9J zrT{E%8bM9c!RFk9rFAB;E&|KMTINoFN-Rz?YqsgM4TxL)QLBr>`Qg5d8#`FyVbWj4 z5pcp4Al8MuMNJE}LbeC6)g`g>K`b2&V#Hr=9n?kQI-**>b-Cz-;No!ZXlszkg1}}o zOD=67#i-rccnSKiB8t6zsoS*L21^k#Mz7l>;7xr^Z)I|qYE_nw* z%J6c`?+-ro`uq@ zOC!ldz>Y*);)w@_NI(|L;<5V&3wW@z^4&H~%p}IbKx7x-VD}~VL68(P7S${U7Fv1d-LTCGlQ2$16Z=tugxwa6n~e=Y4qL;qTBG**U0qR0(FO}x ztywZdfA0o2l?-qY{DiN;bD&VrHV$W#5ShgklP!b921ppW!BsL( z0VOOiI4QWLHV$Mv@p+{o03@taxFtu4vF-8`!i?py+yIC0I##JIs~4zC8l|f2MAYxg zeR=IQS3IxRTGK*Rpn;5ghdgFSG($_KxgtPnGvH@#p*djUm{D?oHjfzWQHx%Rt$nY2< zmm?3DY8Bp1yG-Vy=!VozR3irWcUi4go{*mjtTHbt-0Rb|h45dJsvBJuV{Jq^J$pjV zxQ769w+{7(bEOlyDRtR{AI=U#Dtx|X0(o4I07Xjp7=Vrw&`0|TSyBK!%>44uh z{;a@ZP%Uiyqobcls22F0wl)fK|B3kUncdJMB*Oq}6p&z{8F{~@&Vw>(G8!{u%1ZgS z1PP~ZS#Qg8O%}QE9gdG;%`_sSG8=IX4Jx_j+2G=_Uq5<1zttWb1C#n0W`uzq(`a`eCPt0)D%y2us%F3Zq?>X>!+{zQTb}RDOcbv}!AvJ*x^?XW zSICxn5-L#PU0}xA8W3VMx8KxVs#!T-+z{LZCO79og(azEf~A5UCo ze#Mgy4;A28`QCH^v1EP!COt9231+Vsy;t;I0c$cA1T@*f9~yPDSc`xxt_t_mg0@NT z2D<%St)jhc#cA&$mLimRz}%K0__aj+-Pm}h9GeR1H(#4z=F8qS^6arPY-^2IUU)>T zN~&++co>lKxBs*RL2sK3Z+ytaUV_u|3rhXwZUcX=;ONi(p;Y{qjVp%brd8kSqg#4fnEE|2 z4u4+{znXc9ltxz--xBwQ2?pZZd^?r|76et9EF7CIv@~?g+~n#NRpVMo61xV#`PucB`?$E{TcF4#s4K77iB$ zVi?rw7WLBvB)z+1kv<*HYx8=^(vE=dz>K$5rf^Z<8vsVcQi%1i<3bT9c$iqVycDQ$ zulo0BDFn3!`G&BC76ywHUJWJWnCtXZ9ejOfA))o}(MqhpwTov-c|Hq^Ocp6?$XSrt zAb*)^-$=K_y`(Bp&Krg$&+5}-SXr;BrEgD@()5oGY>>^NQO!h?&2ZG)c|N4d4VmtJ z?WW9@nj;%OA~1|4XJcQ0rqv3Sz_Et{Zrs2yM>90c1q~Y`vL*Z+3&6FS8$55LN4iGl zz{0tc#U+7Wz;iR|UtTaUUFWRagO{9U=adB$z>)JMJ&zhX!BIqgOx=nG4GmO#x4)<7 z>q>QG=X$m0{bj0Oj}|H^_9B%WU$&q_oB9(z`S^nvz3wjj>j8&raR@Ulal%s%+#L}d zu){Vs%KM$JiVaZNRta{emBpzaHf&4$Qv_+ryVKwGz>dX|USly6EMp<@SBMG^w|}D}+pC%e}qsiMKPm-8l?VX`P4#U)#5XWO{`Csa=wnCXSW`ZQDB1^oSS; zyAcF0+c^&KuyGO23m~z)h#aS+-|L^-osjb!$jhatP3e+KoC%3Ve-A~ z`dCY34velypxfcyrXRgZY2LoRR2JQts12{Dr<%>LPi1-mc7p? zZ3!>O>7~MgBSQrlj?5HvabhF57Ph#txZ1p=tUV$@E=f?|XBIC)PXs&}R=>pxI=wyn zd9gwu4w`n8<{1DFLGZqrA~}ENiTj8JOw0<>9@p$og@+c2SqWiKTO18)#H;t_zo|U$xy=#EVNG`9^63P|iXH{FWa_PIhA%hj3E(j<*_3PtL z1{}Ybp{V))xz6pkUNtwm(nVk9b2C$lYHR#H@Cb9oYW;O1VJar_LQ$cHq{FU>`*L{C za_RAEi^y0o00=P-Q+-)MU3qykaW_Pre9sDPw%&Y3%R+Biv^BRgXpf+Ga8kn5(;x?k z$xoon?1UTDk_A&_H^nbEx}m0Wl9VJSKSghQw=5D1g|-Y*M7bxF1fAVEAClb?WVXxRXX%izyL7=xQY#Q**g*GgOmiv!}>{F#$v z$IO;W+b#!i9Lp?U;R^d&I8h*7t$0Xseuvy?LbZg&Gl*>?bKd$c`3hu2M`6Q5P?-9Vj zy}@eZzTn1CV8?s_v~4wQ(GlUgu>b}jjD>-OqiC<}S|ytg!vY3Y*^ujd>N!wVGGYDz ztfd9`NppY%D)2}vP!{mUjHd*+MVmH0NI=o+!iekXGtYhE_`ruNYk zY9}z?{$=1OxxqB$?Un$>P7MWp^j(7-Uch>{@XZz{k)KC}>gh-B6jmeVCc8i8G7H@X zN4+fzO$@=fNYb*vXMA`=LNW`Q2@G|7$}{)Nu1|WA03r)Vcnk?auGv1IcWcqZ{Nlqc zQtC}@ixiy6P8IGp%eITb8?fUV`7Y`uu(F7mFp=$UhwcXD`nYKDUkG>t81x&#GGM_I zSHZ%dD;cTa)c6X*iX=Aj-nWrMlymD}_UW%Y!8YTNmJ<9*Ecq zJG?y)EQSL+3<2uKYdX4xe>N~!oZ`-XrB(&?c0LO=9q@{;a-jepY4eW{ZPq}zR!w<& zw4{s^s$L{|Db_M$5p!KwJ%E@g8CWA02-hr?$0Yy<)*a^!5ONJx{K$04TOn>Ja|8rCO3#VjPA~;njdJW%?`{(+Ju0b+r-u>=e@s z+U`OqvQxr-+jU)B-#6b=Lu0R*W3u4M$iNj~H)PVXGqTu8v0~*A7$ug$#0DU7gIGue zNwFk|3E^V!x1l#&A!%xafUp##)+R4T;zcYDEF{ve1UFM-gQc!!-?oJ!uSooW%nWrT zEE+5wu8(_q!&RN!`Ww>A(wbrFqeAEAJE9{mP}L*Om;2z&SowJ$VUigF1gKhu1O}-J z5}(!N;9R7?jlPF)XaEhqk3sweIy?8?a6jG?my&FWUF0RrEl6(k{2UTq`~$>{OGkHJ~5rW|+7h?g!Q%nHCesH**j&8&V0-2yB|!?>?E$g4&gh z+6BhyFnXl)nx)suYKd{65O!$qYPEjlT-B*1@@j74Nkv zGyQP;ce1c&y!eP}QYT&} zi3KR4`d;pX{eGijWz^4!MX=bJ)La8D7i1z9EC9l8&%&YxhKf(D3_fSowg54{AJ>N6 zm}9Z1i3_|nYm!>=?kn=0ZJTDvaYPeT0|yodB&C`eCYG}Jt>;zEbQ2rl9#T63P;pGI zlLgCy=K5L8i{E@nTRv}zPj5TS(K6w->$(Z3TYijd)ulNmzGNZ7Y z%6u}4a*+}^wl1`3YGv5A*`nSaCe zXj5+gYrfvxwkHfcC^TFx4L)J5&O^tx|QxWvtzG1!^ z|Ilr+2y8=Tqfcp+%LtayRg9PczVT|cv{Ybni)*=Cmy)n z={W+4OuK&d(!?#9J^e9ZHA1kmx}xY~5PW2JCm;(@aXtXkXGgb)ekklvtb@lNxJ_KM zPmgU9e;>Ed+r-)cr-`lLDz$8oF0CMFn?T@sV4pVn`!5y|C1Pc`OvIN6d}1jP%dk{& ztOFK0;0OSbWdcM*v?rmcMQP_2pT~j&a5x6QNC2AqX@r*}-KJXJwg=2NVlhZMGT4A< zQNd<~3yBNIv$1>+Q{V_VZP2f4wT1VBNH!ELx->D4xGJU9*pWAg28XdYXh^MHm#wSC zRoT7uUA0Hg$qx^2P!HXAv+~7Vtk07c9A&@g9kjC5*GU=4QfP)|f_a64?e z(BG-cAU?syRqwqjflL|(-F{;)3Er{5h_d72Fv-S0G*ot03eu9JOBu;Iy%>`n{sc5` z0<~X!v_+a?_vlpL_4$ihO_6?*l>UEqY8b6>Oh(@|P|~Ki-`GQd?A0j`i7UZ%k-^!$ z`CZ8}@V~e}$M&ugONsui5VoFqbhs;_2WMja^4FzJBmOtXu)RrW6m8uX_tN?^%1v9MVAr=j8Cl=wIxAql_SYk9q;(n&8nQO*M6`t{#FZ3S@XwHR>L@uvcglN7e8zz>e>8`7nH z{q5-q<$gkPPkccl;Aa62uRxAh=p^S445r$`B&*EiWn$V%OICvk!4A#@Ak}zz+uEvX z==n0y`*v%kUVL`6ELJQDtPu!NC~+}yX+V^fY$_k|)!FH33dI73A!&CQFZW4oh1K@P!Phz&pb9KE2RzUk0US{C;=6F)IA10?jL$i*JR!hAmIP2naSXlH z`LiZS?4nVv1Z}M?Pzz>H66;JFfTtSkkP2Ob-B$0^6347NNL&fpI>mmXAG&|FzW1xu zvV~LCU4#2L9Gh}--)-ue1x`E$pr_u2?|$mh+vPrZGiP>4FC9-?1>#uQPF;yPUa-V0 zxR%bB)DbK8ojEUP7xG;ZK|a3MUr=eK26@G5f;@-Y0?XJ`VV85QnUd%STsL!tni^BJ zyTlJ1{7wsnZA;Wqy|KNbfv9$NWtEi@s8Zw0{8%$LdehNEy9cVmf-)z6{wd&WobaUPW>@Tf6i%)x3U^eD_=0 z^`fsYUFMRs>w{G#6~InVw75c+Jx>-o_klDlsdGSsj1BjRp24<3x5U6wOi-EUMbMa_ zvTcKbyM#g)=WN|m+q<@SXF#Jt65;j;1~4d^WG;}JW<#;0Lx^DZXDf|BJPJY_t`lyi zRej@F#Tl)|fy45ZILC!=Jny#hu)rZq(w)ntQud&>VixObY*;hKlnSHek^zD)XxE@PoFGt{K=T3@*4j3{MTRhQ8$q0G~i{DrW-AUvr@}{$NT>Zc$}>W z%WLJB-9K3TY~l$-+Ch8x5hzHp>m*dWNPKQS-@9uw?aGXoiGx%ggfh(Ip*M7QbyRbl zX3f?`@ivjN#dPe@gZj1=SA+#PV+&r8@bV|Tx|hWXNJV)vp>AQAb@!xVS?~O~QM8e)7Jk0C4!9u8-kB=@i~EFf z8ogAoZm^V4Pya;UpK>oDz)q@h?Rb$lz_<4j#4I(P@20K<>xp~AAl;4? z1-;$q%7zP3ji4k8o#!qH#3-IM@qVv&F^N{Ee&A#y2)-HdnfJxlB>31zTMuM$ z5O7JXR#s{(*kNCp{IKNfr3tdc8Tz{JfH!O61v6X*Oi~s*&3rKTDgGi5i)Fzgweb#I z11fR>69SA_9at5B4xc02QnrmBm_ioAcf*Y1@L@LFcx;H}-ESy-k&Z@Bbm0oZ7} z$makM>T?G6X{RcO1ZZpII`!G{%~FNS!Xa=u`1)=_mizSRCZVg>$*ESvrL^Y>SfNcq z**yX3XUE+kpW%L4Car0!P)YUf(p{>yjBBLoLF_XZKzGRd#}&x zhhW)_8s1-uD&d5%8JONX%iTsy1}s*Hb_&F<5rg}xmi1F57;ohTEyu)L;%_UKEwx?R zfE1ahp^hF(q$rvZ@ooh0ghez)zR(1J*37cFD*n>uXK^>)3g0+N}aB$ z*JRnh1aKVLzbD|64~~V8xp(li)Oe#*Wpdp{ChcssDzaD+M$r>8MVb#)DALaHk8)YO zfmd&g!P~J*eohUO0xyV8WF^RMSj|ha8wC4=SmYG5VSx}Jy=g!PwRYKSQch1Au5ryI zDO@Vv@y(i|5Tr1laXYL~s0|H_+`sN(54gfgFZvY&-H4BfxAtn0|&T!pGbrO5P zI>VwW4rE@MI8->AtGBa z*z58}LTe|$d4Oinj*CD^1E7I~BN;Db0&oRQF!Lfw#R?F3K*C!x;1w4#8N#R%ERIme zwU3aLKO2i}{zNL52Gx6@p=(!dzqY9MY+E92698>8Qe=8!^trTcRcHO*KL3ccZ1ukc zaI9aoJYdKB8^f>ad)YK!e0jMLk+p+Ho$e@0+ZK-w8e?KoT}hhnrfV+KK5#c7^farR zY?zs`6-3ZARX>=->Sg6s79;fRbp1e($|H@HUdg0Hi&-+od!GCrpn)}t&rF())(h|* z5a_`zA*=G#Bg0hJ_O(SVD!vLNrvO>lMj&RHy0lrooU2`EUaNyi3UCnDV8_O);5|zU z!nDTJ#zn#WC${kJyysUNQ|alh1kYk zdapR{3cQXR`*&372x_NKf8aF41$*Zm8r&y&16Upz%U~Cg21I0rL>*G^s0ktxlivh#EQk8Z|(hzL&PlQ}t`a z2~fmplecR41u9LCJl}$0*+qm#tVYB9G~nH$AKpS zFv0iOzWyB%YohGmxSD|;APpB_CvHS%J?=SiAuJ-Vm16_4+;^TQ7ACQc`|r9=xFGOn zutEVX8#^-O!*HiyE$m<8D3$1{_{F4%uK`{{Ak!9*A2^mez_CIN9@JH(Yv8RZ&7~q$ zrI3q`zd3vQb9zl?{w088`OU0dTAyY4OEXJY(b42DKWgnD3-@ z+4-@AFwJp!$TrxjUUpOhua>Y@+(Pj-+%8(zQ$hG46CNL-CO$q=UEZ#yTnEhAnJ+yq zZVPT6yE?!WU-e>bb#<1_f&eR-6EE-;*D@V?V|M{2EH2xi>!oMM2-(dlpbi zLd6P0PLLRz1V=r}UVwx1il`7!F#gd|JCPIoO8`efL1DmK z^Ii+9S37QMhESJ-9KlgBMg<{?ekzHgqvqCpH>PASFaxZX!7R;U?1JK~u^o}J+%dt5>*q#IyaXnaE9E$*~ z)j;(w7`t0rcML#4EuI(z3l^|j{MKY~Cmy?hh%7+B1fQG*iq0p``Tf;zs3A9WD*{s9 z@8W;>JDe4)G>C9r+t(HT24pj{DOGYP;vwP!lcH_YBvTFQd#S{Tj_fgR;rCze73%|6 z&)Y!D-`6$JXq@`2dmZl9C;6{C!kH5u1@%A3;;?NkI0xwP00-std$+DKbt~E(w7_vh z-@A$9?p7&P%BuVnex_0X)wS{@95!~zO`qaf($zBQ8TXHZ*0 z6dse_HpBTnz)_qB;?GcoxVu71Oa-Z9AOk}sD&_lk59y~}ifGBY*a9f8bR6ynt_kr9 z(x`w4070fe)V!{2Eu0J}+LZfSvK9@OiZ@pB#vJ@9S2Gy_8Ga`fN}zDXyDtkL0(R+R zV{VZEEIT-hhed@e6kF*cVbu~>0bt;&aGY^tZxzc2Ah1@6mnc>QXyr9h*qfc&)KHsN z%@wzWlKdKa2Zs}ZONYy~dCfd|{$#5-4}go~d)*{!(OB>T0I||6Fy=YW1)u=1h@IgE zAw-Q>FzzlEEwLfy1)#iY(JSh?C-0VfYU3S6&)@ID=B4|qU5m1rBiuF-#fvciUEr|K zlsN<$5i9)gF03U4iYezs~I&9{T?KZ(ICTfFt3B z=bjquOR2auBc;6bOo4GJsk78z(@8DWG*hBv8$Z?dJ-O}Lu2KU5d55$XWS&N~l2nJ* zHPtn}+o{`czEZmP|wQ>m`D`eSIM-ybg1u`$M6f5zWt(1UM4aw z2$lx%3me=z!*>k=m9hM9VK;`^9MGVcG7T1wLHpPqtssUr#bYhJXBrTqrFV6L`#cMF1O>2Z=7KiPx z;$}$x7~mjgV%;EOHMn8K`;P5he+F>u)0W3aRPoN6s^Y>gP_^lq!(2c>DWl4v&p-R* zuL2x}DG!bwd{1Jvvb%C@w<@0@faQ^v#q3Klngi%P;@eu$;re+gDzR!gw?Bx##JZG} zS!X5(%R;V|U0KZPE|=EQi{KJ9_MSo7XT4LsF=M>ix^AA^dcgFWT`GY}nk$KTic{g} zS^yblVT(qkFTyoD^Y!=VJLh22X*tExYv#QO6Z{kbo^U6+9^ncto9_xSRj1m;p(zo& zZ$@I2wj^TIJwyBJ1wKcl`4-QAQQdfTXUXD3N1i8f1~?rIK*gHv#o4e-K!B=E;|#IX zuDGm;YS%1Vv>zruK0?yQ?C1#E%zNz_HS~ra+B&*j-8+1M8vo!>X`uAdg!}dR#LABS z(A*?t`+zwOo{{q79zCZmD#%?;>m-TgfCi|I-*`DAHtWKX=#-=}Lc4HkFl|CuaxL8MVlGwe-L zzD`4LG+_Zin+*YMyji0X)BQfH66Tk&w9To-5^**bEIeCQQBs*i@!m83E^|?Cy9c4) zJAqvLJywQ+B25(9hz}v)e|i%+^x+4G9pL!0ixn$X z-kxUgVF%v2h z8AQsdN~9ek>9$%~Q9|^&w0XV=+Op#avv2omNol#A*iws{*Kh%>BDhs6x8k?9p^ts_ zDrnoC##Mnj%Z_8Z)CJ4A;+kMZ5CgfSX{Os76}|&p5hgnshbuZaa9si`oLrnbZzrf_ zIRXwWaD;SVPolKVvAEAOWKjT3StkGhVx1#Z0)RQ zkrzbogVZ_4Km$bBo4&9!NOm?Liv@;D02q)tf`*PoL<$!7jKxPBhL{WP1n~<3#a_9C zB2B(E2)AjHA=S-PJQFnJz7YptagoVEaER-oN|<{i-ToX7$8TmNJH2{xof<2DDm~OG zDhqYnC*-CDJMWzd7~V8@(IB&l$+*p#e4$0GI0-^0nchN(EJ@xuX!5AQu={HcKB^vRz)-Z-H1{%YYDoGuAC@_c3y;)=lG zhZkXi17a0&_&jj_MyYe1oa%1R30uu-QenYG8zl*?JzOjrG9NLKMm`VggJYBCC8k2q zEYC9$OaLxWTQQNURik9px`|Iua-Vh$s_O+CDOLhiue1wWhvjC6kC|PTSVMC0qzHE4I~w*KGIt*;q2faQJ@8<lT%0;*cvV*mjeK?H~S-OBILQ4YF2CO=}p$RZ*U_{e>?Y0KmR z0S#hP#B>k~LV1net;M+_-o*}ZKxV^T;@okGxEBzY2;5?2K-%KoU`_IOZ!wyeuti*h z7zb7*&lgu0x;NKJNjz1_SVN@xML4-cqSbFF40?x6k($4S`GF%f#I0=g()+#jQAOF% z22_n3UrDSQZ#vyyH)Gn5l93{NcQ)W4W+pnZV$B%KC85fNhi1Goxy6d*ivkuedi#v= zrvi?jzWcUozn-l=jg7q6EUsd}VWjgT8o4&da8*wlQ|CkMHy*uI1++AVk>5cxn*Eim##}J1qE@LNNJJIFcSgI%?ab~)F${W zwN8&Ui)ZNFZ=yEy?^5^Oag8=}FH=1_H4s;Tv@F(;)x#)aiKIuJRjHi_JQKpEiFtj;eUCSGYvq5S>S4$mp(?6Apz{faiCv#Xc9}Pb@$xK#?j0Y+y?g1cq0Dn}Zd?^FcPTS-qqp zRjpp~osE4E*t7&LEDi*siA6ytCxA<=g}N3dKeZ@;4c3&mAkVsMuxY1G8l&dVdR7g; zrI)^UIg;Ust9-GL_IMV?%_!QY;P(MXsQcW!7M0(E2zB&JLS%s>GL$LxGa)h;ag7Ps zGDlI1M?V!ZAak@{ZnRiKh$W@Q1j_$-tsy^?*~ke#_3#~14`W&-6a@|v0}$4TgPA@q zCP1DNQ~J=O507r~!t)aXCQW?mjPa)ej__vKo1RFhT*ip*dVm83u-p{?4sE-v zVP0DWCrhuj0aM-sRA9~VH-u%7=Ep35@}c2kQlsGrAH;M^Hw}+i%w#y&l{gmvXIzY; zlY<*gMXP9qYIB#ADrrN+VF;|*z8SDY(fLG|lAVo3!*0w@Y|P-0vzotNE5WiBrJ^(0 zbZs?_ef_J7$`>;l5lAc%}`^JnXrGW0tn2x!xSSGe*MM`Wru|iF}A<|vcH8P{z4A{RS zl5Kkg+yA%eaZ^AT;wZVBUc3!!B#6caZsL`fHx)r^q#8#I?kCn8_mEyOJZ}mkX^ch3 zH$WaMj$?ZRv<93^p&SjU5CbxzK4$_4!E0hT9K!$|0@-B_4Zii-W^c`(7x3M8-v)g5 z?bk)dp9(lWIDDu}+vYhZ=wekIIE<^}Z_USKW%p)sqGUxJ0zStVA8ZqUl?BX#wuCT% z!w!IkL2wnl1ES8z+`%5?L9z4lHwI58dNn$gJF1)mi-yx-|fGfJA+ha7(!aU(eH zu1yOi<>+N=7H_r4#HAi&)2cbrjGACFL^@clRA=H|046A45l68d&TM~KZ)vxE7WTQ= znhF~e!u3M{87&FwZwNNxssKh<8x#WKwxCIhd%z-sC2Cda?G6fO1(0Bp10Dz<+4rl3 z2MBO5`N=TBS^4gZJt7wX55$tR{5x{EqZn2}7B_B#VQ_}HnF;$lpUeHHtw+O3v=j}U z+%y@-T_rnr^T5m1_y=y+Zrd0so#$RNPZ%`RLhBasAZl9B0U-uM28m%eB8uj4J&4IL z#|b!7^J6y(^Q=uW0pQ@79uTGTGl2t&!q#>3wbhmF3T|`m+Tu8T$FN)4=yiGipFXSd z;gQ2#+BD5NVJa3QOK?>jcf}HFQjOpZgC;}WJJwgXUfV_cn|D*W<`{wCeIPThnhI{95W=kLC7rvf!fToeEr z>OI*Sz@AABz#uKiu9}$;T12qPs{l@1!&2qRq;QP@14VKWx^P{HcaTb^Q8gMRxFz1; zqQAx@q{y)Hkrps)Fdg6!@Nj~i@+>3{V6tNTjtiP=vubI!*><>lY`Vye9M(@raa2El zpaJ0Mo>c+@whQnXFX7g@061S(+>Qh~|Dh7Z95;5_0gUnqrZ)HSdp!XID(A=bmgB#1~Hh3o~SFI#8fbxlaM z*^G@eU5X2K(|vYVHav_#r!u&FiIRyHG$?q(+8|C~If&%>z11MuT>kSSWla?jRW(Kn643xC!A!uzJx;|Ge~qGDB8l8wh?P4GU7Fm)S@FU z6v13vA=)c8sh!{`aR(QvNulR0nG<$sG7t#intm+hq#WB-u=*!yLR;-godu~&*q#uY zNM#c1AlQfnVky*rq?U;naJeRe#x%8}LKT+?lO0!u?r>yfxM!qIi~qm9hWWFeaZ|Hg z1BGWWXaQ^Phs`FPO-`X`m9C#(VOgh^%5O!Dq@p$Ebd`#cbVXGJvFg0c_?Ot}%0P!eb-U6Jv);u$rJUF}ML&wi8#B;5Qj8zSoNR zaQ}!EVZk2Sy;P|Geob0q{Uz!-kA-(O;D9+zOzg@ojb(mX>VJAd`M+O&S=$-ke*1NM z4IZTn3r`1l$Dax~Hm_gTB_}oVL{74!M^KW*;TdOR2l{ycp>ER~DO^f5bt6=)LRN~e zQc7Hly1CVb7tyUlJ$3aJtyPas4b4J!^gV5~-$ui&SqszihO0YjQ*WLS#i)3NJcLLK z0JL%CT zCgLx|Cjcih4orG!GUW?B>tbP1035Jk*|E`tpu8Tl9#fSVfeps~QR-=4YsWq#v{h+h zg!MPh+ZA{3L?!JCaA4lzD^qlZnTfzKH7W%AiUWr?J;!meE--1SC&9Fb#=h{4 z=Y$H*E?bgd&%Zm0%MD5esop`!Xkld#*qt%uG1b3EYf%>`PUCgkEP!wvYrVPIB~OX| z*%a?fw1QGhLnRhG)*P7%g10oq-nz!9(c>-e)u}`4!tcKQW|Forf(uTc4DgOW8E|au zlI;sWVFF|&0Y{jlj}YkUSmHxkb5aVI5(6ccz|RDw&{AZ9^Gal!8)Eudl=ZMk%ez0L zGKDIav>K2GL&2VkS3hY-dZecLvlId}K2wN>sZDt}CNw4JZ_a#1yCc)3rwY3RnH91> zOvc%I!eV{EAMk=6W->b~fiGn3$ZjwRFpWv$vNQ7caSz7XtE(tj7 zqB1GKKq*y+!VPE;D}eWqCaPH~5I6Z1eNzz6FE3I3H zIz=onuZ!xHH?-Oown=rG^Zd-*sNkx86{myS)G@n0)|>%`O-?HPeMjJTsie{Y`c?1F zkXY1PGbgG!)1THr^R!U80dfAHYe10NwuL0lfspd3Vb{oK5Fc9b`b4o#a5L?*u;*#! zor#Z8mtzEnf?V#7Wdi#P9xH3WYbqPip`FWR@e_Q7o-h0j=bo8s%uoyGPX1NkfcwIn zGfZOx9GA9jp+5cO#Piz12reu*72q9zD&Tm3{n{>>$zd8eLX0_CEXI+OY-&QT>)$~= za^KC`-0q`pzv&8hV7?Ezp}R)UmSPSf2Hd+_Q`J}B6mAU4Qt$=ZHp`M-tz(;f8SPqR ztL6<-RI_@?;%l>zA=osl>k|{wGzE@uO+cIHH)%XSlhkV_^Wd=>VxrEM0BN0^Dyn1a z9BrC+(hK$)_3(W+Nt;5B?-PAh!?UoAK_-eR5Su3|RV*;_`LG+=smXdkXO66Rf!?*d zNSp;RAbNTfx4v8*h_onU3OnX6)vUB|B$&we*`52329A;hp5=Nos))QIRtF|L=KrK8 zMrxnFl}H78Ee9_j!rmk6o^bxO*lbceQ8G&q*Ql)R-KDAOdTCv$5H3zX$3?*}ijxjx;RNk)vh(zI@ps*_z!TwIzyM^+3_;T6u4rr~QAzb0<#J-7Ea zJ%Jtf*!J$l1v3-?lc@tNYou4v=Ui2uePidGTQyA6b2Cq$cTJhMeY>}iY~1ZP_LPj= z#3$}nlb^X)$_-w7@lmyC{)^JB&Zw9#Ri7N&s2&`3oz!KS3hZ#F?@O2f2f@^XyH-nC z{h7eAR4fi+J7njqcv0hqd1}{=tqA%A|EXgf@2_9eB`3Ag2{`tGm?iKyG84nq#K-SZ zUw*K|Nk=W0ws`0b5QV0akw`Q?-Oi2gsjd2T+lF`4j!o~X&2(W~F;~XMRd1>dE9a^8 zdPiBmLhmZe=cu*X$6mK|u3Eilw%WMjO|@d-Om$7Kc4Bg7CxtsHQOg=NqCAE@8RYJA z*7`7FIi{B?)N^WL;wn>p8la*zm`KJY@;rAZDPAmPGev+Pq&0Rul(K2sW8xj}NV8`O z%*ar%Gm=uxN<33om<5Jp9odVqBd(VeDC|zUyh#Hhk6Tu}diFmz!lY&6JwvaOm;vA+ z^mBbaaT?IP@_fZh)~)M91_g_b=1XtQdQP|yh6nMsfbCwrun0t=szw~h+djc)*@jA> z__O1i)I;~(AZ7oNK>;c%$YjF!oyBAo&x}N2d9iZYodK|Q%V$cUmP%m*WR8X8^l=5m z2!xtc|0;QIvtNEvJ@$Gg{A44fy~Ls2Yo#4zap2%MeY-U;(ua4(#BlQrW0vum`ysJp=8$Z&U2bWwpj8g5N(zP3PXY$yGMcikNyk~#Lggc~v=Dp)W zw!x>}BoT1flhSxNDcq&wGC`P#Ox$aFwGlJ5zuqMYtU_yV+blx@cbB%vlAqf(&s43O zq)8AK3xypL>w;tO^VwoH##F5+DOsZF1i7$M9=Y!p^}oxfqiP#&i-$K!^E-35|O4w5+N!uKvfUFNGeyc)~sN%7gW90 z7;0w(_K-%Txe)*aD;SD3nF-tkxG7uKzUdbJd8zDx0B#zo%$FvPcAtd_$X1qk5GC{k zpy7ldDS!?LL1mhalf}TyCml={4RCS0w@E`NqbNpfinz$Z?T#`XS&*Fu5GI+C9s-==qxt?Kg+wy7^Z+^$Xe_tmHR_s{h2 z{QRNzX+P3P{gHm4{QQCQJF@#cBw`Eu^^GNKfF54)V$~Vvwoem1jlet!TCEG+HhE zA8PUhnK@UEX=(j_jn)uxfoYEP`SC5{77>%cnlSv0)h-}>a%7V}-c}7{oAt)HLtb%1 zDEBAsv;3Wx)xx>YYwK!)4C;w^j#T^ltsRdFn9l@(iK`G`KO1lWP;7bthd(nFteQ9Z z9|4XUX;F@{d5~0ZLX)a42;pCH(u!!=iQ<2%P6S{;&>>);o7ZRI@48j_g)vr!^)t&Cgdz! z4q`>T^1D@o<5}?v7lQ$C04Suju|Sv$Y$nA8uC2DHRUd;6|K_Zx1*BN4(Cw)WVjiP? zLiI1w30ybUP5&!eh_%z9b*?aGTQo=(Z57VBmbQqnzHP%MV^pPI|+YJ zK}s&VoJ!WFudjMpJ<5qFYlb%eGa*}PQ<9NIb*z3bBi`to61y<*i6HS8VHbLXhBh$A zgdvTHrGu$_!&RMyp8&st2TzKWof9=IdbB<^<|YYXA*;uLEQSa!j8ktnFq;J8}$28!>*R*(=c4U@gKL*vjg0S6z$u-NC-@j_Nde0-VigueOtNk zRRIjos3H}$oGYR>(0LQhgHfEgL8sUOn!(Zpx`z+tsLm=na2rs-#25^zwfLeQP;ktN+(;Aq(_Ume)D^Un_)#}4i9 za!J#i6REKkjId4#z)`$Lg)}Pyy6g(1-Q3Rc01Uf|0}gi7Ai(JWiv2y8J}Q8c&lWg2 zjjkQgFig>~A`j30PSEm3ZE3)@Kn={OdTA5Y`8hYmH=G9he zUt2w`8>g$5_0yzsl!5Oa6M2yY6N!6N2?hYFFhE6A43Jl{Ab>H8 z9=R-#rJd=jWV6VeG?Q%yY1OJhNN@SLdDupOlr(O>)r?3nbYot#9Em@E=jRNv zCn+IrD@nuZ3v!jei+5)?yAJ8PQZgW%L7Yj7)+T0*{ymQDz{M&xzKr~ykyOqh^I(<+ zOVpmpXT@HME005iX4h@iC{6FI4W*u7_{~>HKo9XCVldQgpx}giWHS-=ST;}xxr?47 zl(Q31gXxG`8t#EuDxS86|EJ*LGh7Z_CSpujR+O9LF1){bj#wSGD!F(^cCmd?i6kCG z2^L3wYNT6oEn=-cqtb+HLtMmCajnmoqAeF+ELEcw<<$-}B3QWTa4;mWWF*+Mo21S9 zIN61{kxah2($F~EEg^@h?&TFUsue3NOp}7mP~AJ!Q9V1?Q-k`pRzq*gC2t z{RTumVn4-Q6}xzNHh?CQ27t_-E$^tEo93$z53W`x^nE(EZ>1Z6rp%rmDm-`7Y}y=; z1&@p%qCgA;g=pMO;T*c9#5hn=gP}{D1StZ(7to@g3;|Qrvuv!SIK7_xN+yo13iUTw z#6}t+($%IVxJe;qT5O;b!w3|RV^E)B#eNL2&*+Ha{=!Xxzd;6&ni}JdMVLz7lwg+x zMgSEz7cNjqz=3oimB}dCWqKqvt;O-p-#>fdPj7L2|MlOx^zGj21dK*Oz7l}LNYt4w z<5p>kn{Rg$NKg=)V1Bl441Xd^b-JXs>Y>eG+9X_m^<{cN_fq$u(ye#g$$AH#KKT(f z>*ew4jhPeFlKInw*H4oqZfO7Rt)w{+?njPO%FcwK8WR>DWzI_%Oc&A-#52TIzWNy9 zo*h!a28Efy&z~ILtUfuqNqun86eSV4CwOON@w|(k9faT@TAEOaDVBmU+oxL-(E(us zV^gph=Rp30*F&sjZBbl6oaGL2Cyr0#ebJx2r8X zJT)cK^<5ta%Yo03DFFoFbI=VBkmhGVhgVXrfBSfw+sw(PXpt=hoB$h&1TEmpb8zaP zC=VbNij)KCZ?2In3gj=cV-JqJN!>eqpt@yXH#JbtPvSkek^noP4nvqCKmgW?Br*4~ z97*9q0DEBM4NgI3i0c-apN*eP;|FNSOzPC6Q1@(Js;=wTN$M&|axthzefjw@vYRpb^=MWkIO_GoiK>&H zqkTiwaO20*M-{~@`j^_EA0R?{(#A%Lw-#hKL=}vCf?9c-##yRu(;U$dg}&}15bLBo z|8Fb}KX9-}DDp#}lvoFH2lo!YMtZl9#qhFPZM=hPgGYld2ksbdV%3NMq4slshlj><&MRIg@?6A29K02J$V5ez~5@T zTKPVSmpFZc+3lGJSO-S6Yn>3kjI#P>VSqyRf{R4yI~fkxrKo^0NZB%B^@VQkS5Y^;iwW3c$w4_ko5ivEy%|DygS%l<$a*vSpwfk?IEs;R&f<_s||rWM${aWml}+l z2XgH4zR;6LI-XuFSoDNuwHv3@jx3@10aR%Z%xNKbi{8>+{ryjXYTV!p;^038z z20oQ-LD*{WESh#Uc4WNrZFTLyI&D-b>g1%l|8(9v%4GovI( z&xRtwRJ2PSU0fs-2tHzQ0v4v?)_@1>QGPaM6A-bC%9mH^t0=Q{wNo&+RtRL$`$xYX z+OG?ev>=t|3sN=cIl)7A^eq7nOl~R|A+DGkxZL6O`)@cm*EDoC z4R-jvDTm%HZUo3r9RrkYimT{70kSigzy#@_Ez=vs?oh>RCP=fg5UCyESfn;#Ez;A) zx=?_H6+*TuQs|BFGoP_hajTr}%@{%Yp?C@%2z*q&2hN7+1-evrBS=nw00cMj-BZHP zXmBJ8Py-VLH_T-C5>V+O!fjkRNA>7jTY|Wjb6}D0uM{|X9;@a-J zW02GZ-F9sc{ri*RZWNDi*c2w$L*NsdIF$uV&Yk~ zj2AR)T^8CbcFr>&kZIU20I*tv=rpPDwn}DP2Xl;4 z1;Fb7jMW_mF!pR+BH;0%wuIi9H(3}y>*$|vSxvvd{1k)V7&OZ zkB+`soBUUa9w|Y>o}C(~u9wyk!dT0Osj5+}c*$^}wq=BaL&e1N#!rg3`Ez?@=)Ym| z(_9E&RQzX0o59NE!R+(C@^?r%usz{{uqz2!$4&Q!2=Aj$_m=AWFZT;jKmdbP$zsQx z$C@D(%rVh+V36)5;OLcBw6z^vBa(AiMYsmIP4wHiW#Hv{Vb#*tA0yF!lRgY}gKI@v z4!Yy_m(_b&m9~b0_zKsKi$X@_jaQ%5ulET(n+DM=Xqy?baUZK9W~{Yf`3%Pfnz}rH=o)fMLt{y2{>ke6jo61XzVbF18MRmA|!+0!3$ zfy1_4V57wy<^QEFWrwjg_Ud(m<&Cxdyq;G8hh+EU`3I@wmV9hSXA3sMGtmEfGHdk=-lRlMmgYs)YsW zMIY+Yag7vxkfg)VIbheo{Kp?8eQHy=rp;n-kq&IO4S-lX#dbYAIruvOgB+mfWhVM* z!2BO>3es&bN?G(Mdb4PGkXE#K%!up7W$}{0Oz?t3;S(BTQT4u&iCk;+f-upvd%rGL0O1Oi7j>Lxk=A9|LLcn{t`{66PLWVa9Dm; z)$IuH$JSQw@tZ>3lc4BRE#pB7Lcu**XREW80q zw%E0McfeO) zeRan8vjIniZCf@su9Fw{4ys(a++Y?rDCkb2P-jwy32GCx!b~HD_T)oD#htO@I+mrG zo9gd1Va)h&=Rt+KQi6O2^)PRKotw@>$xJ*`ijIlhq)wt(0u;&-Yk){YyGRx?ic+@6 zi;1YO7TpXZllQ1(fN*cv4FDbCilj%J!B8ZVL`y;}8{!hShYXeqW-Gvi1%V5~cTkVQ z&U+^7(U5^KThaEQQq~4i|Hoj=aJ3{aA9{b&`W9b&@kPM#UIS)w*;;!`p;)x2pQ19LiB@q1Js2htgNb{VQ5>k|)iP-TnqyHpB~A0+`jfU2mK5po7_6rJGVMPneI-%VHbaIu)k>;PJ}w+hmC zxJv*U?h}7Epzkjo@IF(lDclOU6vRQiJQnyZ5VNRkW+Q zv^b9JU8Q<=Ypzn`gB*2sGpa|Nf9TM`eJu(K3Il%r`R6mnpQ|C0MzW1-H-z=*)^b{M zTv;~)E=Zd0Z*pU+Rx$Cc?`iZhy-j_M#Q|ANn0ax*POF3gZ%Y#WfZPHlbi(mnuY(Dt9?h^2W_``$X!Qvt?K!2NE!DYa$ zGR(oE+M4$KakZc$ljXtGe020}dU0jDL0ihD@pB29n*JKgB$bI$RS}&|8!Yu1#v-qz zJ+Y8FwyLRJvg&I3^AD>Rp1MzTH3>d*ewJiqCaVE!F@wdO^S6Dp@gQ$INE;hs@H4?+ z>SG87Q)mZZb!*>12z$?Iu);b+tQZSV8Xpyr81R$g00~?S(vK`)+=Z!=?iZRl&%>s$ z0To;hh+wFBd9yp>G9`w}c>?5+(5$8ji;-t#@3DPexFi4*n-rC^XmG&u0K}-E^@{jp zrG!YFg6Bi#3$Q1E$vnZb!#yM>1z1wB$h~2an|NHX+auT8G~Dtl*c7;?iBF6Wsy^1L zoTD$y!{G>Z*8tj%{k{?+P`g8EHoKy>52(LtlLUX^a1K zeB%!Rj_sSb1ROnZIDF{ftEQzUSnY&R6X^v-eW4C`ggQ5~sN9}uUKD7W^+uaU$hEVg z^~CULv%H30R4w(Q=&PQ6>~1yt<)<9R=Q|o4HtLDHQ}`QJ-@^`E4a(51$?Huk@*tV$ zxEp{5V8f1%YvFB|XfrMRYHx4m49@T{?3sI;}`1E}HJaGa)fQX~~kd|~i)J%l6%1sve0on1|s znP%s+y*k33Yl(DwiP(O=wl#nq_SykP;yx@QtR=Ds#DZ)KOjw=N;23rD5TR)o?PFsW zJBt@^AOK1V6e|;##in9Oy%O^xunEV4*aw*wTY+r5xwAk43*0_>+7KsV!ywqsVkTR~ zIdc!}J+mF~h>gHA;+1ot*)`S2#S0+$f7I_u_e)1W4g9t-Ix#MYgUqkBOI{ZtVOnTB zbngv9Z-+NxnZdT_EEX~64f${8)JN6dKiMhABIqtHI@2PG6x6XcEO0j=z2OdB6|fd>{VQ_|Y#XJK6v)jW#_@ z>Q{1oHWe1?7NS|5PaZO47xXj{?_r02;i)ltF-+EIzd-HUv{*l^l>!tW9VGU!SwB?B zG<0xVBaBgi!`o|?-=Xw+1D8cAWgTvY)y~A)5HsJ|eQjD7laU<=_kalsA%}^>q+;hs zyx8tA{$OH=fFZmUz=1v_fCcA7dX`uTaS|pv85hc@pM2boWPL* zGyo4klS)|PHLz(dvCH&=2ii6&j3o8n>3ong(1#Cu#+IFSG>pV zjic`c?h&BN#=ru^;^B9!P3{RyRwN4ukjpcSGb~i*K&`AwuC$}+&==$~Z|#PbsqX{L zl+X`_i@|_fL>krG&QV%j>|d{4o{bXVM`4Uu4K*+`UVKC}RdIzNpP@g4>xDwuv3;v0 zmIiY=C8mOt?zRD01N1cbVotE>c!9%M9;U!;?u@5Zz5H0I*|MGJVj?dl19!Nf;8e@M z1aO@G`BZ=^RN=3`HuhTf^NN5YK*9OoLK$+}15&s~mJ8J~Dsyp#aESoYcFnTYO#?c)DrnZ? zDqgq4-=7_KhgcDZb}f@mbXRn4=n}Im_kx-cvL6gv1LSSI&F`pc0leIQGCFKBSa3WW z-Xm_sLc_HnwuDXy|05P=)lvc$-dIHOreL;pCvF6RNftM;lKC?y3d5MbEo>S>J=f13 z;9|2fgvKRq^CsL+&cpUH24sl|5rAhS;qN@7db!c!!T?w{bC@GFRUxve5QOF!`?jwT z<|wg_z508OA6TnidhUL`uCzOuYxm8#2sdk%>2)h_$XzF(etGobOsLuc$fG$EzvNj@CQ+AniA|md4Sz5Sa4Tt>C+){hufB<&SiSxhA5KyT@4}772Vg&7T1fb_4(kV8SKBtsvM4 z7-5ajb*z4Vb+@~jw}YCuvplaXbi|fX(t_(?m8Ga5VIcuVfF}i6SW>Vadv-EJC1L}B z3X6`QCL}Jvg+<0Su~?|Bc;$tMgoYniskFF7EJT8i`1$Pm^cX2FBvf49&$&w)jVYstL?#CT@J4Y1^xSJ1>+)I2-n z{;+815e%c(f`>Qjai+Tx`2X5F@A#^!Y>&r6hd_F$DWudh8;xg*iaN3y^Hjs2v$_=b?hYf?zg{dpLKF>fSGZ|HxK9KkMl_g$t~yZ{o8B( z)^Gima3AW}jzt1OHO6jY89)Ob{0v>bIJ$9w5CJ(8;)R|XdagtkPUu)O9G#zwYSjLm zHRe9QSij^;bk1kV=f+_O0KK((t^kLNJZ6~>HZ3x@-*kZ~%1Mw>8}NQarLE%j`0SZS z?|sbf#j?K=a5UNU*0RI1&lftwiN&wKKKxO zzYnmv@;D1L2T9HhH$%#SpiI460U4qR0D<>J2Pcd^IXr|k#57S0;IZJ<$K?0LWI1TQ z6fmpNlN{ScLU#BTULUU)Jq7v-svJZhlttOpR8lnB(kfNZ0EqWF`rN?+3UDlN8mez$ zUGbIsLPSR-%X=h!(PlOXS<)e*B%MZ9^ zze#j!f#c0pvps%ej!jkOo2$kSmx_vXf9G*Xp>|GMv2^~73+-Oa_-g=1!~w@IKmT;d zDJNDwmYY@Y`-%<;(&XkAdrh||xgICLhi@;CXyR>qL%4~QL9zXZb6}{>eqA%A%D_!U z8Oby^{qPi_snV$0PV@C3si{P#n?sxG|6EcOX}(L4Je!k41w@qUsQIIAq#>*KK6%ne zl-;JjY2SKJUozcy|3W!Iw@7F_T~1{xK#)}B1v>9GF=~V(0Jv)L^Wx`$K@U^iIB^jH z@jRTulnG({If=9)qzk;p!7R~V{OX3zeMP5$Q4BL(Fihs2Pn>YM4gZf8n?9;f%vXhw zC6y!nVC;f8ZucmW(3lXJsOrp9jUaGDLxYgC)Z+C#$yFl7K%s+`uSKN;pt zKL-GG+!6cvo}B1-05rf2jRl*UNCZMOXs#2CV0eB^kw{HRQ&%r}NyaIhc0zvvW1gS; zC4Qgj4P}ELdO)!dm#P)vc>sB;EVZ4}ed&2_qNtZ8g`+Gg(*>IaJW3P1%UM+xW;ZpV ztj6+utXI})sa=l;_9ze%7_xWjgEvXK!#D&ECXoPGKzsMixdLRUq17K(%y`n9iljgr z={ByJZ{DJ+vKCFpBD2CqIj0WpYl_nCL6vKP+JXi>OTBu8mVNl%#&hgmO#ABqN5s^( z-{+3Gc;uMetoomqhU}&;Nc3{^8Y?_b6GBvO>WpXZ^=D7OVpHPcB!?+3$!p;Ym{d4c z`*LZ4rxnO^se$J0PG=G4rwa-yJ|XBWdcsaNG7LW_J)$J$t`OC*2;FR2C+j_=SBa33 z6DM3@7R`FX0^d9l8ByAW=+en?W%)^dC4i^_(BPE)X6qW+D2xW+J!x9Py6CIE*0#mq_6r|lYx zAWa7{Qwrrdxc_X{py#MYiINi8$dGbBelF*a9B4+3IM$}aeZ?S(h=ddkk`{YQ`J9FP zkB`~3|!TT4P(yT-Qj!yY4O?s={&5?)qnD+Z`KkaY#VeDTCIB25T?ScDm z=^x5#`eBE>SZ5a~Cw+1h8O05SS*KBmu#*Kq)Ip8BNXAH}M2W%lYp`=v`X>C^ew=U= zfC2&~l$zx3@E&L`01vH7Xf=fmtGx@91c?ABC#o5-+Rjl*q~6bn!+9@1ZcmKa(gEqn z*@ZSwy+fqZA_mG+?LwSCBSWh?L@)S8z`9emYm*owub)trkew)pUJHIk$&e;4yf|=O zSE5nLs)pjR;E9JE9Msj}vx+&54H|cZeBWd9VN-Q3hNNWGaTu+!u&kRG<*o z{0=SuXdiTw?P!ERP!7&L;JN4^MVbyj!e@Qbz+Pt7jLAZ3KmNdYyMZdaevifij#OTF zpX%cg6i#VrTB{)(7OtForI3#B3aav@+Cf?R_UkT`_eBcG=g8)Tr&u`iF{yy?dFo*h z1Yu1_ycZ#_aY4n@RXG+?Ej|PCt+JaBWYSl2BW}XEO8+ojoYd(H=g_-@*!=^{4OdD~uaKK?B-1OFa zn2~23dxzbR&Hodi@uvVsq`EpL60VN<;kz$m7R`V8;F6-04~ujYIJMjj|bDvV{)oGqBLGACHgqh zdtnzWB-gi}t}%Cwzr@5fit(GFVB;wxve>8yxWUG2r1bmx+-cGc3fV}d?8QRV^MMKI-3k0U7`v z@9Q-i0RXIb-gJq)Zc;H)DcuaDc2uIU`GeC@{$oee>b2CZ6&N-touq6~fCdmi6GC4R zoYdDJuaoEAU^o2ySEkBy;G#wo9H2pD$@^00HGMAry??hXGiS!5Qu3$V&&8}Ace!dG z`~^;P6K))B2K4J{DhgT($HIX_!)0)WPwn!w)6#fEx7SSP4#7B&9Mwk5L@BXTK@<*f z^<0@~xMB57nPT|hJ>y&|oNW&bxIDW@LRl@$z4wf}_4nVuZ&FqDTTD1ywZm)ID#vd7 zNiGwqirMvYjucGiXVXoEioh6<)Bdy|%Iuw{bWGEhz#P zgmdUBAe%V-HSJL|AeEDo+iS|AItHGf&4pnMyu!LSUX*;4R0We678wK{oX5xSEH+E$ zK4nklE5rtn&Q_70d;XGq&~(E-`OqygK~AF#?Ww8F+Oyb+Fv#n#96el4JQg0C2O$y9 zIqSvAHZs{y?D*h300U+DgZ6^Kh%D&iq5T&;CQ%ciI;kKP9(7xziHcL1$bD)hzg*^%;=cI_O|yq-FfDwH&@)cS~@pge-7)-<0v3GEBWTa zCtx!NcyRjTQOU-ozX3%fgyrxd2bmsSGli%nv}R*MnDHJ49MnZNA`9)?tsBgXPu*v_ zm1fAoQNl|jEuN3)fz${;Od^`})IH^-W+6f3LEsUIptLNoKuP`&>B;6-eTQzc+LnV# zpa!SQDPWQ7t6zx&W7mPnz1E79RBJpzk#-gbBb(a3CQ4c|=7N-H&5{}76~YE08od9G zvGN%)^y;uaokbN4cLT^gG5Ho5^LgjZ7y5HgqPtX`lNx}h{-N+dxOnlI>5wD(GkER1 zZbnB^qV3r&-+tali?<7v6z(5D4fjJtq~bEY_&4dMl#16ckO%`+?ue6*u;AKP($poh zpO%zGEdyOib(TaSnE9~QUY+)U98$DG5V5(LE)D$|Ez)jLkmQX;NDhFcn{BMq;~>qY z3~Sf5nE$L>;B*{o=SX|~X%-;iVu&={T;}+%JC&wAvgO0K``P_iKVr7U?Cjb_fkVtt zi^tz^#e}$~G4EGcWG|u}xgasR2gBD?r1%krim??qz#CaMxT4UEG9lkXRq%(FBCMW zFp&Q*oA->6Smf_ZW34kcp5$v zNKNhq8|t;`Q|y{J-9{r>lClDZZv8l*rs)xo;&Bj`(TRCCk2Wtd z@7U;d<)RnN;3IpQj8xC7#r`gl52Wh-cU&gi4;mvXgKnm*bFXv0q)TN;^-Is(C+h<~ zi$lOw1D(wymABHUNq0IA$lX({65N64WC{qtHcFT5JhODcQ|5?%HmyywsW0z2PizLi z8a(ij2fq9Ei{AF|u5S!`ac9>q1sqW>%2_j>d*b4p^cJg&S#;8~lDHG2m?U2=%gLv0 z=m>fM3naIwDs>t-m+zeP?i=zw|Bqyx>HuA=0Fl=9;Wsq;pfw&4(w>uG6r@w+=$d7r zX&R%}`8xiO$e>eED;cgl$1Wb^!-V5&UY}t>V2nf`E|rSz*QibO5}LD^Sd45g78q#} zpg|dvO$5P7D#RjVFkB?mRLEBi|Fs&V-K#-IFg|BINoCgT zhWYk!A2NM=6iLf^M^R@wpry^8$3CoT zFvN5zarz^-{*wKuQD?^TJ!_0cJl499vnytr4J)-HcAlJkapmiWKF-Gl!U2FFYb7D^VVs3yC~qD0n=gLr(WYdKa0#`xQh*OSKiQ z`us$55Yq4<;@$Dai)O^oL-Droji+i1isB`5D9CIq-}l-p*PJ@|5Yfg!%o7b06}c|$ zx&H9$P4;p5T;crS>!QbFCU}(<_cO$Bu4&VG^1i*+b;xenyu{pd`)C14nLZeD2Xk(E zvyIcAeH5Ab9@UZXZuW}V*|qB_NA-%B1|||IIeGAaC)25+cSsV)^PNou}be@OPm)}Q|K*Yh{QJJ7}qEdDJ8{PEEdjvOT&`VS~r(jeP1XM24 zIbIW>r307vIj;#RHb6&{9w$EC!1Nta+34S=T*f$X9|3uYOL~(aOtthHjAVEnT5+O0 zt-ztAFC|d=Zm4J>$^OWK$7k=alr@7|^u%L&TQF-YQ{pzPd|4_eJh$G1;5`X?yCS$_ zgKu8z8W`6udr8t=qF#bj};y2%1vwWW)zWX*NY{8)_ zT)oq4*98tIKX3ZT6eUq9H&T{W(0F71G^x=`D|10=l;@;wBDM8bIXgTC zge7xW&Do1}A55sF8;8{2m>o3?!n=i4>m&4=*D#aXV#*s7Qg2#|aL73O1kxyM@)@ zH+bUfY!e#KuP$I|cuQ=0pRwD}Jv!3_LBj(MOuiE?iij=uk zmS4L!C0Nepx#4C$m6T(F?^MoLv>~L<$iVrGdH$SsjoqLq(mKy3kRF%ZG$(nP=>)kUsRh%@F1zpqdy;jP5Duv~^?U6f&>jLp((JbQE3^_xGYwjhpy(2` zy29fUA<(A*O1qh}$=eZq`aKJjvL7W=N}`0XAHTEIoJad=H&8TlWopN+T}Q?V1R(_dlTATz=tD z&m8APNhSDTRO3&mN2P*v0F|on0G{wBn34opd{}T4o(QnCEX#zj;e-1L5rr1PwK2C6 za*tD#PE(iPx~PQKbNVXW@awoJV5+T$5OW%vexRIW;RZWnqnxko&ne#`2*cw6@FIO! zz4S%t7RJJW*M`9jX1)7%PPdCIK^E*?<3~%M58Tg~Q74LwoY9SEoP3x>YXH*B7bcsb zgZh~^iMv~Xyu!S-;x*Zj+!G><)k~*aU`dl%s+28}&?^w|I$87#+2(PGfC&8wsUbp{ zrQ4@_!FKneyuceIE~Y^(^eXqsVil6+OFcV~JSGJ#r8d zlfIGzdlXvWJj*Pd^Q2927unBaiIjpNPXQ?;@Z}+Qcm$(BDjn!3IEc^`-G2Q=V$?$v z!{^CY=kqdOq6RD;)-8M0yzu0GBBDF?@Vz|pw5cB%>6*%F-N36nO&0>3sO%h@!cvy@ z53T$pdH+4SW}BC$-7kI{OfGyIj)RKIYQ%tx&6x9t$b02IFgLj{w?(9LdHRx7Z_Gc_ z?!&g#RVJpoD)M))T`S_K+U}}nBBtb#Nq1e-F16m59R)bzqJX2cz=p&=VATU`doc4Ok1S=hG>Uy)NmhvDcLgawr6yArFg#U*mz4o%x?dDi&^Zg_2 z3BQMITuv$4?Wt%S)xV=%^h<3NbE=G2Y)KM@aZg1Oi|omIDkRZMiS-Dr&u_Ajm{EA|P}fq*a&$Pk-u8iDsPcBH4>_ zoG~@`lJpUe7EFRDGeUH8(X~u}3uSnbl-ti5MJ1_dR_n&{I|>TLc{SA&BCK1kJx89K z4q!TbOJtZ^_Wl!14F5T?;s>x4U+;Kd-lL z#o~jym1Vryp?&jkN8h&JGtmvj2|$b_ z{t_FOzv2-_jyS5B1UFAk1`LNGryxdg0*5RWXKCNYKHA?jsD#v?oj>wun`WG9BahqV z1AFo5yM;SZmn;@6j$oYbu;1`A*z55#*JRg1MqlzgL`1Ctjv!FqfD4%{y! z{U}>DEwL%t0Mo6kjWq1teDx?vcaUDg4^6)NDtRu_EgAsfIY{Gp4J>9rxwb(sAV-Oo z!AkHH=sVD^1l_iL0@gEPR!1>DLpCd)y=ra%6IW5V%vzwH)P-Q3x=ivx#!k&&2R{`O7bsV5zIU;9?|KP)eZ z_Xtf-Vq0i8Se9L6a2%^G0Iab$e$z5@|Afm;Ukem?99($jVDs3dn+5URT$7ao7;dcI zJhKHkutk4{{l5C#L=ny$)U#MljdYtss!|mHPjN=KVcvoJ7TTP1l$@g4!mWJ;nif$1 zXX6o?(`ZJwteO`SWndx5BBuhxiGy+!l9wpNO@VW*??fu77MY~}!xtN5vvF#(fplb{ zc76uSs6k*OvLH_*`M@v2L z9f21qoQ^zDzC>sIB7TEdm7&s7xycj0=C}bp>?^y0jPzlCyB=Dx9X-f@&+|0&Se^?>8|?JuV!O~3EX z>(93z-UV)m+NW5eOyq}PPkLrIdfh0~mVlsD!-E1QON>A}0N6;7n*UfI&nhNIe< z!w(m~ky$T1D1*335794R^!&*?ONDf0<0DpM`a6*a_k<=jPC|gNw(3&}P#!l3D#0|( zo%Hd(&ne|qKuuM_bn23ZsK=_h%0n#DpG5S52oN_gECK*BUJtKVJyu=XmmDo>v;PKE z=~mwQ-ZDvpkd!mZqC-}KjNGX0itkqe^PNuz2M}&+efR5NQ>jxd$c~rw3UIJyKiafR zzSl-MfQ6sWoc^$waBH+tQzVF&#===M9y0H5TqN^h-ADu*Nw3GI@)hx@;km`Fz9`XT zwQKa%0sD8l-$cSa?H=6oF9{rx@UPolCd>?naJzM@7L7chd*M=@jaga{C!oPqf*FcE zoktEk%B-=-{EkKIjWUs*64XLJ4I#{P<}EXX+u*}G?(ls@PvFX8Exa)RfdN1TPGi7n zgpn^jBs?ChznIOwIZrw!HFXI3Tm|53@!i!Q(Qhwb>>prLh^F-0Ccx5 zn)SFu3~YEBtVn$T00_}wSups$e&u!Hm_>C517D=){2kE}& zEosUn=MFLL+w3O4hZ{T_UCeFl=6`hJjW&gNS}Y0&SN0O%IQNW7Z_3)GqPy6;yshvY zSPi11;Z!E#;66~A=JhL>@Yqy502Kv@+B0T?YStiU!+XOS3^0)SC>Cr<_0VR(XApUi zT1n4`XTq#vK~h($WJG&9gd9MI$j0j>no9~!Wpidyl-W6)bdE8H5&9BH(SG|C`KsYy zG*~0;Pw`#)-Dt_i0tQDO)J^8x(5tg_&a;xba6o;s`3+fjwCWG&+trO2EsO>xq8&6w z@EbZqg|8f>AJ~Hvn}WT|Gu?1<_D+X{>XwPSZ+YO}J8!r9ue%9b;0W(P77^Z|RAN^e z$h2)ImudXdk6(8>?WCioQU#F{sgP1qyfFT5P;QDCu3lhsLYV3;C^9!LkqxeOd6@Yt zEIjc%l7B~)OVvT4wHlTqtoJa_3e)=xZX%Kx-z0s&6 zcv=Ttx7CA#$cV4}K46JB>a!1)OAGixJwqn5b&NQ}vx&&*(^6xks)2XNZP$;IXoJUl z=8-!j;^H}Q@@C^vR^?uCf4ScW?O!NPR*2;0zw(IW*4!U{hxCKCbgE9y;pj{Ghh4X;fI z#DGbUoB8UZU0$CPtaX#f3j&>cKs2id)Eo1k5r76<)W|6)5)ATELarC4N*YXW43!X3tF`WyfuyiTpoX21m9(U#3i{TZ>FWf0Q>8-Xt|cU*UYCsVi2 z*C9C^%8h-uQ(4vn-+%qpp*D(WX#rvPzb0@*w(aDSrkci&O}S@mVOGMY#d(QU#rZgc zHTO1qqL{6gQaHaya_!6{t2AlRUq=K>sP5y&xloDaksB~QyGT_0y z4^A-nn1wSRm*-HKHo`3I@d>Aq6l0tl^w+5ErWI6fDw)b-QC(Ry>oE%+ciC`$w2dq> z#kvlo8NzOOg^X6ai|zq{Bsw8t;BgQm&9>n%ixyuFUMtZ9rb;7+9ws67QHOT6?}q`| zyP11$8!Ktn6&DW`0Oa{0dEso}Ybd*NpMwL4c60@WSL%zg_5IiFeSJeJ6?kcoI%(uV zb0ZuAX$$v~CYoOTT@g6K)xYih3Wpnf^zK`S z_vl>sOmSY)chdBR)movO*cNPZ)D8+p2^E-B&IERjJi-WUPx6U7RtG0 z_IoS}`5r>EYgrrdZ6JJR+yEPc5~$J$8o;J!vXh;5W*#02a-B!dx@b1^wQ9GsFiDr0eJwoJ#Rk z8);l38xAc`sy-~iZ3b+FN+g2Dy`kl{3lHq>7O zK)@n_$`IheCdOf%=#F7j%+iJQMmWav;4~kU)vH+)7i6Y19p=|Wn4}qePNW)#^{J4~ zUQC8uoBTZKOy$t|XwwoI%W=(^(`+hN?EOviK=WLU0+#3k?U4>h*C~3@ez`TDXP!-Q zaG#Ue#VcPE5hSS!;6YVo+@)ukPx@o1Gr=20p*JkqMH-&=BfrKs zf)5X3lzftt3rjZ^pAuet&w^tyXvt9BmBb4*R5Kos6P#wKU>9WVnXthz2il3tqQ!?& zeHaLt38{11HWe4B%0s&dN5BR~H3*ZhVXA^fu!Wt_mi(XBtEFNEi=figExJTc(Bw|^ zeLH7J?*!AlIv1y!M{dxy;aU2^3B2%6|1L_=&y z%RFBZp-sHwD)Aguy@qyI!-t^V0YD&xrEkhhBT>}iD34TMd}aa_rX5vilw5_gS~Sb` z+Bkk=w$E`aTkyO&yk9p{Xo0c9M(G`Ln^qO(B!2YL^G}|OPD-jIeFIh9ketx;iSS19YU4-nwI&X zD^{6I_-e5Ov6ypFE6#21?q{AOR}b7T&-C2ef=O1g*HG5nrYu?FP&NOxM`ZrT$;Tb& ziJ)4z3GJs;3UMeMpgBqMcq)(zF8E;6VlbtuJ-I!|15ml4|3^}lwKFC4Ap$@tdf>ht zq>M~eh)9v4T{W7R1mQ9m76l&xCj!8HX74#dtBll!ZiFTGswgE2I9%^h3!C<|lMxMY zB{Zt>*d_TvCo`R+f_TrSK}G5I_j=m{=^BYT&}2BF3RRR@GE{o=hWX~bjf>6Xd#^Vg@>-g5v5Fu~ z+4HO8kLvmOH=lpf*Y2s^O|^|6{^<1=0uJx@BCVgEI_a#8b`6)7AV0V1Mn`+oJK7ss z&Rkg{2^OUo6MH5&gqa~XuY*P8a@)2tOXIcYAM`6F+CapIJL`pq%o!&gE*~75SQmXw z2-bPD}eSoj+?ExqdjgZp7_n^NaQlVVVYv&%g zsMm{ZL!>e_Wm}#feu{AzaAh)%5sihX6#d|>B?3rioHRfj&N#e?K8c#t8%7=<0a`(_ zXYk~t?dY12$v=4S)lyAicFN{;3#9~$m~5j3tfBVcD@beNaU(5Eepc+~QzqSdw~17D z4~N5hgsZD#{^+%9k)x4+eA(Yi`TCoW2KMjY>FKPrJ-#e0h^wlA7`2G1S4F;OChV2n z%DkDW`Sw%-*)i9B{DGV0L*sPf1JsT~RD47r%sYiNbn4Bds72(uLmQa`d*qwRcU>!@ zocGo*_SApQg7C`G!{o#*_e#7%a!L7E`IRJ-V;=*#HIc-+WiQEVW)>@pg_DtCL2Lk` z7}TTcQ0_KhlAJz4L*|?|P2?n8wdh5uG~guxx5LCRLiO`bA85n%lkLe|;yQeDoh!C0 zPbLYtxf3(V_Y(y?9C6n|fLM%Q0%H||+=-TeOY#$Za4QdVG)L)UJU|ySq+F+4A=0|& ztU>15u_Nv4Ji+wsQS6yGCwLRsNeNsk#$9m zT@FzT5hC(?Qa?Iqk;ezqsM=Z_xEs`_Y-q7;cx$ngol(a2KcJ(S>J$s#e($r!tr zN~j$+@YxHa=EB4!t$ie+9S(@P7X_q7emN>x) zE9sP^YC*YCJRQB!k)$PX8 zj2C*Q_$om*quZ1T0vNF6(p;3@L==;V$j}iWLk9#1SBYS@%BFZl(hW8FaqZLY^wCN2 z>aohd$@5u&kdXtA*jtQ|sU`u0i)KD$!{8P69$Y5(rPMnivn}A{2^W&!5yvS48i0#* zo_fIN1_)sk)M}>#m!qSy#33ql?FF; z&-s>6&gOHY0)^obVl^H5gpDHQT1ujb-fDzgZPc`fjBL~@QMLy7a+ zC298>TKA42>h^(j- z&;X_W8m&e7gvl*c2>C3H|e(pQ8(-oi_p@J}N~7Icr~^A>u4PWY;FWP|B1j z|D4;mldC)T?0DC&kniSUXfFvT9R8$B<~$)lHt*%f%oCGumXnPN0eL!MxVm=-7mrT} zd(j5ZNtqD<+WPJa>A%3^0TLGuX3Tjf$m;|wFFI?mgx5R{vhfQ>4l)P#F7|BqYQ{N4hx^L0r~ph$k)@so3G-X2bUnsuMuM$se0KIamu~d$mc_pLZrmNYk-J$a)fE5KgBr-KB>v$(gPDLr3ZPR zpxZkj%ja-#uTpz&ua*r?#Gq@4)CC_A$YCmO+;<{1ea#9S%Inbbk5%Q_r&gM&Q^w2R z6V0f~nXgFaQ7cQc-VQh)9&_)G>E`9>6U{pt=9>*R{dr3ai5arKP=L5wacfgz-)Cp6 zDASvT_uIR}+%G?UpAu}+KXUo{>i|b&+dp|#?NMF*Tc`2YUwUEPl38Mnu}} z^OO8s9UTG#rkUogDTGe==KI&@J}cdaT}#p=_s5FOos7wTe}eihpxL0(!DM;bvc<-2 z%^ca_Jf_n*v=?yEP3MGNExkD}cGG1iZs&)|X-XIE#?`ZAqo`Pkh=ZmrRDwZQ@|rOT zN&Xm0Rh^=aWb>`GsS1&k*dOM&;YzPPKS{s|t3o0v0ULSlW6hUaR+~95J!lT;-NDli zq{zL%^x1{@iLQ*7?`FEH-6FuZBhr%%$^R*dtFIjuB~5jh0`YS=3{F%^rI3Ma9{PpQ zUI2V>3AFD6uIfHkLry38vvK%cC%&5JS5pY_Axn9`L?oo3a7NnG67(pkt@PD@t9PvX z%o2S+SUgmy&=9%uye`#s8Xt5dM;)@aq)i&d)E*0=|5m#|s&S{CaEKgW+IXkB69`gB zT_v`IqCSA^?9+}Ck(ZN}&lPTi&R9SQMQmQ1h5{Ppc?s2Rk{f<;?}QtkuzRgC60S}N zhquL4S6BT@*Df}YsrsM2sIbJo{pQ*(y?c~jXFuGvJ3>)=&EjB zfCub4(Fkb_8^R5dc4HxHgf-3zk5HNt9_fgtIGi;2CmehDJ`(!6g_7(8hxSCc8MNL+ z@PZ`IsVUJPw8Y|pJY(n(KAIEnxYB7j(qsKm1i@3#k%X>{%5$->XwcF{ck@-}dL>Aw z5Z5`?Ofc_8_XOp0xcFgpNBfjV`Z>%(R1>- z;ZCN0pVD|(=txy*Nc4nrRCnmnoA{GV%QP)nBiY4PIM7sk{6961R}LqnNQ2-dHj(* zWoS1bv}(}{Vlovp^wFz>eT`kq(#)d|++^N`D_OtL8-FlQ8r)v72gSZ!+xv}h_MU#x zd*3cke)YvC$Jo8o(u5=R{%{F)mlc3*3;)xXCwoo3{_4?Zw! zn-V<(ouP0Nug`r-8pi+*K5&|x)Ktf@*YW?Vj*H^OLd{t z(}u|D>J3C@V_*x%1bR$)SQu0dDncnwvs;wU+kzlMbc2q9=f*W2K^R203b8bLpl^z_mJVDj8Mu$ZeifdV@s4gbteg46 zXIdJVGUpDccz*^B=_QBHCFcz>XAK|VwelxzSLrFVsoUVAdz!UxylT^wg(4}ZCj}3V zckKZ=demSsAhypHwrl0f{LJ{dk3KZfp&;W2+(;|oCkXWc7s}9V;Je3<@eQJbX_4DZ$r52Ob&ZIFN*R$G zULm-JW8ViUOxru8cbVtx9VBdn?Ewr-qR~x9KH}xd`q7aNK>(*T&Fg}Tm^polZwkdl z^r7i6>q}q1&V1#waM479&xep!>IjLN)Fvsa2T8?+_uM|#M$t>Xu?O=-E&8Ed)33fT z$@J=;V+w5~QyNOC%4*wW`QW4bjsN=V&j;B(lWih4Vn<^B?_9f7IkqbDhb{{q^^J+N z8-3A;6WgTJf37T)`b{YxsDMYjh`)lvfVo(Zd^qDSJzYdhgv824pjF6j+dx!+bT+PA z&crt-*dcU;Sf#-WRiHYH)gF=rF?Z6yK2j>wzagceR?kTUD-Ri{jaFK*(Z%u4T+(cn z>jq{I=-0*XFTppXYiT=iuXY-U6p0Q1l~s$U3s>Mq1h~It;4$S))SvzK>)=g6uP3Eo zT(QvsoN|0W(Sf*)-^U|^=gBF{eZZ!l$b$$3H!z|FYyv2e!ugI zSYkng_fHfu@bG;lg_DNJy!fbQz~H=Gl({-97U1G5(Ha~H{ZBOp(+Pe$3rBX){-six zBihiiD&M0I;^*24&1XmThsHs`)PY1opcNuzhjVsWBk(IkYKPefZ_TooB-&W_#;aoR z!)Hbse$lxDO+F>~d>b|AB>mnYzs;PNrcWJd_gKEj%l|`D=yzG*5b!XO-QL-}exI_U zw7c^%ntx6YL5WJsy^>hak}hbY$L4ZU;v`vk?d=JO-{zAKjkl-mLi?f2HSesS=M$h; zjUH}u_O?#&lb7UOi9SP*HX* zBGppTchG?S#f6KA1#ubWXI={t0^%bbBS1-T@A7o<79kx$iy#hH7Le$0z4ZK(e#<)u9yBS6-hZ&6jC>QHsNhV8*}k+Up`)%pBzx1I#Cpy4v%@~O&8mfc%k|3v-L8R z8bKZah?L&_U5zH9cDufU2`=%BaUj~EneGGo`~d8*;}4S5i2LP~r3u~`MrS|BS|S?d zy%4b}AI5znszPVOee1nXz6Jaj&FZBu*!z8=99G&-<@!@nqS6yr#%?K~nc1>|jhaWB zkKS2oQgKIp1nfBL4Y1C2<`e;sf{ z!qtEHGU2M-?ca8qF#eixnQfZBRa%(*8xe;v{h=gJxfwmiz+WI<*rMs4noHVDX6_=uU;`u$$ zh-Tmp(3sHOdrbemCGvqd1aSCWh+3=!2OiPQ_1V}>&InJq3!=3H_9=8BzZY@1HunUh zDXM-xGzFe|!eRC^=_4s>?Lpf?&ywJp2u|I@LJ&Iuz=O@N-k^xnh#Itd=O)OfO1nCs z#(@CmGVQUud|z8<$KZTe06<7p^*)_CdAyAj+XlL~6TAk@XpIcbbdG#35V!V?Yi9~@ zpcZ|5^?ZqJjyqys8`U(DXgfEv@kgD?+D~|W(X4$KB3&J++AZ=Yi??vRDr=3ILkbINKdjjxNkw|s96dxj0G5@8&5&jo0o3ezZuAKDpi%$&e zke4#AC@((j!aDc^q6zB#iGdj-DRN?m?1CYLMJOX(g{xlwiC6>SFAd!W4x_+33qHqtB8COY1rT@wjk(L`V}!^UvD$3k;HJr>gEP`g_+F#sAh zp=(elfuZud>*o8u4-AmPrjPV1r)>js-DRhXp$^f;$e{yd!BvPpqq#gLV=&=2aL&%7 z>}%gAB}V5>`jkW>w_H0)2vg;VZolC|F*YXOKm5RsQqG0fP~jHbhASKAZ1pZyPUM$U8I1MCR{0U`K5EGnj;SCUlFmt*kTjH;V6MDqgn4uMTsK~C%^Yb~L)(Fvit2`dO>UA@8!*y+ zd+jXq{>J%YY;)n+1N|8&J8LI*q?wbd^F1ddn|r~lkC`t%SS7DnM^vJIr5uVP5fv&M znvj@kho(e)C6z!JMW~G1Sf)MgsAK>xln)`p#$!xWUYzo3(tPa2WXq`kl2iQeQ zbb(%j)0ET%;NUU1H=1_vyKF8}1szv;`wi!d%zowK=cE}>&4}2{Lyzxc-n8$DO?v(1 zXG!IX2xHvXGlb^=aN!96$Q`xk*KRovx})jEJ;bq$Nq=jW%#g!^jSP1~$ri)m!uC!m zCPZ?YOTPeTcfic?n<1$(q33`cmGyzuLqT(KmQ#xdhKC>6qrgm@FjlN1c^?WOfXBG8 zBkg;P_m#j-wH%$QqCMgNP_5#2zR9k)4Xfsvw{6Pz;pT;A^r++Py=_Po94-x|eBUm$ z-i(JIxD|zHYZLwh?&W_)v*N#NdTGg- zAuK?}X$xo^+|!*}Skuvf1#3?jtj$+Duc9RS+7f@G*sqsfaFTiE;oGG%7q%ajDd`AN zz&WQL<;_4{D#EpPNqfj^=7LwDbVynSFM&*5bSR$un~q_~T!7%X0o~>Q2%ib1$6qtb zeDleAQK;gE4nIMv0zh#J5`C!P4PzZ1pUMVApl)D50$~*#2lHKU{{l>Olp?+o&rQA4 zg3c;&KqGol)h;dQJSNpJDl+^H_jhOauXdxF%HHuRS-tdmy8#z@ywg0t|AhCB$`mfe z4Hi%J0I#X|k&q^6I_t>p#Zq#Ih^7)GJcVbLQy!`j`8nWBHW!{XNbZ$umUFxZS{O!; z)|Ba^fkU{bwv7ca>CK@jj`ZYh{9-mQHP1YDyS;BMZEDvXLiF3V$uSE~9C*Y{+kW}! zU>lV;btTmQV&JH%s`|GsFWsrQ^~OuD%1&$gy4_^o+h`$D;_)0h(VJ5QS7|nw5}};h z(j2zlmGYjqiGF$Xr6K)qZxaWLE zL>quRhC)=?REQW298P>kwaB$jERyxMapfH8Pg!N}`@kdiwGmHaA;ojj8+@{Fm#j(a zRxUfy?uTMywl&(h3HZNr?NZ9oZU5F4sjA-1gv0sYe6@Ax5eN0SD<{3#DvQ8XHAJI! zDz@+=2i(Mm9oNqsU)j^#anr?~lzfqS@}XO7I|)0{3ZOy5RB(|X zBSw3Gw+D++ycjkv5T+ipU{0u@&EU=!e^79wz87U^Px4d!QnFTuh(Of23EYu}`&w7^aC!~Kh172Y3F z3j7x72jB@{@|mF8RXzomFYV`XLz`O2X90jyn#UL#%ZH%2EtqZ*^#P!cA6w{0JN%pG zO@O*Qzh$I2Klb;Wj6K&qaQBUun@FU>?x_Y5vu!tf#r)aVE;f)U{BK}FM@3>`bz1ymSat$^Unwx>{*4TUpNG1}9G4}!&{ynq_X03fuJGt(8I za86-!B=vZ7;&tLf%4x&z5cV^z>*Rrb#F)hy1j>IS%eBX6D z8~=)nhDjuWV2X%}k(Vea+0cLl+OVAdkzilRKLTEDC}aEr6%x9dw`^Q&9-VZ9+&kU}=@16gRE&5YqEL7U z#u5OkZsWVu17e-e_tYVW%DsjR=e24IbJfMCiDaJgGZD^nPuyWn8GNAYdC5=mdwz6) z5(AvHW4HE&2Ic^p76LGi8=2>~^FL!F71t+(p;hW{d6|t@4;gsC_1}E)*@4gzZ#jbb1_Q->Stgnc+hY z76DeUB&-#O+5n;(L(OPec)<=%bpdk`M~ZLiGq`ep=^Y^*<8;)HUEUL%2LqI}S7+to z>9V-Vp;11uJh{pl^nVf+q)&6A=iHLx(Nkq7|-S#8EqS34RZ7 zF=m2k@8Z*8H#-M}@(QZIpwC7dA=#)zQo{xvB;>G5cU5wpB9#z6XVOspoJn;VCyGby zp$C+RSr8Q@o)@sx;o8ne#Z{8{9*u_b89`o#)Q0Y1t@^ojw^-KJA^VkhejSMnUjMbc zL#r1S&3o}!8bIAhk!^Lr@dv>JQCQQjzWSio5r=lYyM4PRAC!ht!o~Rs5r`{FvlW5) zvtoG6#w$=^SF%4Y5vzD!Xg zRme?un*cX+-XE1En$r6BDV2`dkPVk125A;!WF`?AAu^{lsR~?*@FiZ`I;1ATEqIF8 zravHRP=JASPFv*Rc}N=o51hIHFd?Kvsa_Xrf;0yLXx%$z_&SSdaE+cJTN{8ClmT{) zIC$@XKT#PZuTFS#s?;P&;doC}tN;NWe%1z#5)j@)dZGrg%*%CVIkdS08icVd zB*rGtP3rs?Wm>p>8p_oz`==2YJiS`s)Uku?zD9zAnAXHcGy2 z6L*(fAHIam#RgK~U=t!FlM~pca|pgDQ)8qoZRr-McnzAa9MP|%pT3pI$OdO~Af#_# zh*6CmB+2VHNf5bqjYcQg2h-ZJZA^r41H+EdIkqj8LEqw?;(2>IaPUCRK~ zvM$AKBrVYNQqm;;#(wUI1RuKhI={({P3{gE$2TE_bCsafogNxmf#G!{kEcpT)W+Yt z&TKDzx_G$BYiB_tKTUo&qs<;)9@&52=YRa+yOXIbTHvVnuZb!D$hAuu`BeXjSJ)zB zRa;|zJM@m*#$BD?K4np9e#>p;V!4;P1K_Y9USUl~YN^)<25CmbpffVaWpB9hOkYF< z$mog2>8o>Pbwnf_2d7$gn?^!t?hG_)x6Sj|J-TF?rE{M0o8?Fem~gHw``T_@lgmd7 zp=vKoU6e!^s^ruZ3thw{3y@!YxLTy>cilWjCd%^~Fhqj2hvOjPfCRkc+!Lf(j}(G* zgp`7Q6V;1wich&`oEtS^f$HJ=#|b$2ZQ%?MI(mOmkv?$O6~bF6U!i8nrJfmc^f-qE zztK!rJkJtc0EL`D^% zv`BvYrayEnX}M_C@`ab!JyZ~pR6YD3xOSx`H;ZI{?p3v?jXK(X{nh6u3_J0d=~=B? z{H-`AB~s@3k^&y(q$c=6(hL_MA0fc-xnN_c3p$H{1)%AG+i-~{WETx=IudnVkbH$` zB-G3kId^cj%g#=m8uuv{Ib#l;J)z?xbkGo@DD`Pjjer~7fSGT~4vE&<&Q`%qP;xy>vv>(Ciw~)*>_i)koas%4`-j zNe&ZXI(CEeOKO+DYgd+BLz%s2f**ao>RGS-JlD+^kk8Fb=qWe+z~yT8LuxuONg2!va^VQNPuC|lx=ki z`tk+O$&@*13(t3b3jhFl^W_(vB+5j3D@yYd{^8u!+Bvptu7VVKZ*U4~E$B}8cySl! zbpw*{G$<%}JuGZ^0-c1WB&?Q*sjQIx(BbOZ`4hGqETqG$g1`~9BCKt_SLh82Ke~Sx zbIxf;m;phW|bXNCu7cInlDWj`$k-}-0w36xcE#*irNphgIAkptj(K$W6_RjNNz+5ZC zLh%$)I|nx&A^w}}^gWiIH}ZtLe);J;r`ZUHVtKZVTx$Wqzx&>28qI>*nQW zCyU>ucw**zZsIzx_V1`1wbPabiH#s69t(~WOTuK&xl0D~gi_`7M3?aXTl37~*^im= zawuIIsf;$C}Vtw^j!hk>Ea(~sO@RxOz(vi&WaoF)STcHj}+ zrD8*RLj+ZO5Vxi>L_U}Y(f^{P;|CiT%7{vMA9xHmniJtwx;S~g|K<{DawCG8HGPWo zA?2YC_96yXsY~$8sT1XIi5e)^ez9eh_?B$n1)Ug>2Dns(NcNsv#|UV+S;dRxP(m-m zWIx>LNwu@u)_?DyzPa~r{czJMj5&x@M;h*G&1?U`xhmm5^%8>AlgLIQCfh#8DYx8s z-90%O@hb}R<9;a(#hFePFgn9|#8*<+U^&GMWCJYmxsU3kJ)~dv7f@vt~SO z`q)r0+lI+Sc`eN4V@?+JBW>cy$oZa{z0UF2VJ_?UBcuds_X)loAbNtchE>W5hm;*+ zaqcS*N=1P5N&l9Rn1}|xVe`5>$UUdEnv(+g=fyQ+y7hOsHzJ8$yc?1g{#9Y zxXHi%{I_8jjXG^&PI~Oh!t7>$E6^sgCJuT9FRbclBZvB(W!QkE;4VgbM|bn z+SBIdYtJ_iPrAXpyK%m3T673%F^5c>Q*WoDq@4f4@&O)1WU! z(DW$CjnoE)+8_`lFl%!ZLCd}9NT=p8_1`t&yK_c!)_nb?Pa~+DL}P&!;buBTSI_sN zy-6b9t|@zO4;(V?!bS+R-ZMIpa;K7z@EQ1R(6px0>;M3~L(r3`ITK(5-=%W@n%5p3 z;Q_EJesjaAQY30{{-dqD(Hkwrfa$OUE6l3JGwf$+qt~^#mA`7v8*!A$VVF{GoJ3Kj zxyiq0rq)}3-yPT85)Mc9w`)4?uL>A{8gOjew(WoIs;+|X5M=KB`6ut4I&|=1_hhFv zT5Eygr;Y`Q5t+xrT-i_y*NIvXCmW5h{D}u|H6LtRCWf#?9`A4DT4F!kxw2s?Theo( zhB1G)X>A9bs=ky;#Pu=*9vVk!EX0u=83L<&J^dyucu`{B=_%}es5 z4Hp%*6u(q}9rt%WbKb{h`##2u8X}(yQ5XKX;~{nbHZ zmj{ljZNFRa_+>YnzHqZk-`=qL^xoY|@5@VTx}q#U@s|?G(HRkFH&v*Gy9%7sdCzY7 z=BY<+Hy^$8hS{=tnRAl1*T?THlk@~}6Z!=0bln-p5Vd$~Ra1xndhL^Emd<%vHV7vx zIWB!3gw>@5H51kd#c}N-+F)1DqDzl*j&BMWuVs=aBV`fCbYsn^YzjSckMxTu5scE-tvng{Q> zO2lY=x);ePMY>B->(b1JN|kDlcCgaQ&PmUe*~-~90wyZ9qZy2J5u$PX`|mca+7w8I z$^IM7iL;1wV=u5R5Cf;SO?)9B_w>%2M*H{OH4#1{nwFaRE6Ljlx`H!Y9QfA&higpC zFpo{X(Y*KeeDl72?)U9`yy=RwY$R--SE88|+VmsY>Gii9c1YJ}w|=yR(rb5mQR;x> zKLZ@DpCy8h-&DN5@U`KE*~t_0GhMT?`*z7P*Iqu-%$zaB ztg+$o8;hn%`}YNB9_u$}1#|hG14pvo{TSS6=_z}dJ8rnp4Ix@RTQ6L0ct_gv{$ z=aAsArNkbai7}CohIFuMi575y0Hj&XIZiD!FFt)|&9pWTI64-#mCDGp$0wLuuN!5C z59#Nhl+h_klAF_FPuDhyF{X7wjC`dZL&2tY*;KqQvSI~n5U%yzugG^`)6(b_7Y`Ml z0xk!=1Jww|LzH?$n*k2w>ugXFliBN$`)@Q!O=E$kK^0@6{QC5 zqnqxhV>{LF7G*Fa9N+Qynla}MwxD6bI6Fx=Hw(PmveFuU(4}+63(H=gHP)`(zLAJ& zXTR=Q2OR$~;J~Xi;-@VyPJiswqTJ+raxy;jlb9@ zKx_0BZhi~g0nKL*-hGuQP#NZQ+x4TwsT&1qQFeH%i}(o3|S;Tm^a>jFq*CZ25xe7L3v);@~w>;zW|K204HSsZC9L z`i|~>Kra$X67Zp1N)<$VRk+7g(%9TY8*F&eM5hj(?)Qx#bPLMS)gz>~j9fJ$TCV0o zd?qsT4K9j3<7CX3>X{Pz*>uWpMbxpaFe~=sisClYroZqogQ5?$pwX&29NF!^0W|)K zz`>1gM%prE@||ad3KH+nNpHNOI4|j!l6<;pTbr`NIkDT7 z6aQJj&6tO6fT6*)p=SZ_}-Vu(s>Nbie2mX zYc}oaDd~(>Ecl&MhaBvDLd1-Bff+U8Xm1nL5Tx#LX($#E1V0o7ByLSt9d$ zv14>;o_)@OmVOlGtoi1cBl>m{a0x0-T_n|V2cL&)_eTV$&Rl#B5TeX$frrpWID}j% zWdV7jxkv85PDX8N%BkxiC`PN9ozv2vheN}mb^xzhGQ*rVVvsukB&Bf{gdK9@w-jW@ zO`CM@_{)un^kWFw?~$rKw?(RA>VV__1~}BosCl^h*G>;VbnCE=rEMo#;8;^ykn%$r zJp~pxiv2;siGeHW-?(Z#L|Gi@Ma~{p>FGdR6BB(O2lp%$W*@^|G$1TIq|lTbwQqs1 zcxy17P3N1c`j7?AMiP_X4Gd3u+VtKh$Fno^bP;Jyr0)Tp3VaGY0q$Igpj;zeqVNPb znvwFTi44!nV#ke3dotK$G>5^Ls9_M_6V|igc@8>gd)Sn(z$0hjO}LPpld8D6AoI;B z$M==~7@gFHeudG9j3?keQE|d~o=5~xlc>!;AC?FJ2dN5xhIlKpWkUg6><%0ut6j;- zJK&jG$dtR=ufITm(KVDUkfBN#7D1NsJg9^zgKJcB*Uh7)4+c&qcrXMl6KV)%H%Eqf zGenrYPAmyV+9)zVqlHvmaH$h+$ljZ@*7et4HhScZ;cY)3V%KWhaK!9xfg`34IR3AJ zLn4nzYenEW7HG5ofebt~aSLJ84B(DD{_8 z>6)!wB|#{L<|FwJ1BaXQ;(&t_jPh%6h&37xTGj!HV48$Bgqay=4wTUcZ~zGHe~`+D z-Hens0Th{xwqmAy9XskoX^+>GOSy}MuRZB|rb_hEDMKDd8^{2gryssmUK=)vOJ+YS zQ4hI3;D)3;=$}c>jxmn*tI)RrAOIXIEpQxr*gjr3?<^7FTn_5#=CB~?=J#eibD!y4 zoFV|@oXJuo`Wim?5Wl~K*F!6N=i=6$OPk{jFgVr@U(zEc#L;&{MM&?Zd&h;DDbkG*x6D{z5@vz-de^8L;;63xX3_faq;d|hfundH3WgV14RO6g) z-)o6|O&RSP{kVUx;#WW1^5*H%@ftDpJt1QqaO^_Bq4Or1SO5Nf=c_L{dw6bI+{92; z;+nEh%fEHVi;qfGkfqb(QjwqVFGUFCZ_uL&QtEW^^CGmyL$>U6V}+!@fW+OB9v;;cT^O_`qv-lI1>D- z#yz);@np>NWRXw4Yn)xMv2G}GeyTsIEY!YEXM>I4y>QSMeJHq@?8gk^zl zwd+K_?83p03n8k@OYvsRHW8w-ChAxuJv{)Ao4yt=()7E>kM$y?d2%uMi7Jyud^?Lc zR1_w|o;(5F;RklHDcSX6%(UF5a#UR?(=s1d$ZIbp+fgU3BY+)fkdD2xezuH#1WcXc zG|`uzm)ZMSVILVP8} zIATn-l(}M!sV;kH^6jU02&GQS%V@T;tT5>p8TDruL}xl{Ihk-8FKq5E3o6b<%w6Q> za;g@_%T=1+!gMZjl@U&2N`Gn$#7VYc#jCR6)eu=D6I7R^1h-y$ftTCQkyiU#uRYHn zAT6ciyd)tKnSaap1FbBek+}c%OFf-Qjc$ZZ&1O|+cd7@JS~XW!liWiOD6_!vginm# zJ^oU+@e7Vg|IGUTqDtt%-i)|S5O)26t6a#NVmXe-{q1=dG>G1m(HGI*WfT?A|*D$h_%;l5ii=< zRjxYV*bX@SYKsMrpF7W({?Ksyp-#+6Z??{U$bYM_A95F1dQ_%3Sr^#LMj>?AvIz9j z#xRLeyg3^kLrI<{AW=?c9nHYWiJvAWzACv^V;90;tn={pU=wh%Gg}o)KQtt+)ab%^ z9-C8=nXyiNI^V2c{*uf<1rU_5)BX>t4*VXfQrhIj2Eg+faWhC_h0Ju5?%WA}+jSTE znh^l)@B_QrRONZu#B`WmJ$AT#AG^!x9kQF53H6I-J?+mdp*c(pmh)<6@2WveP2_%TB0x`?ZVeE;aAYdzE9xx!JLJ^W~K z5-;HNx!C(kG= zYIkq@HuYC`3MKwho);gnm+4gCwV&sE^?H@6hrH9>Yi5#An+bAu0W#^F(jGZ7mzH4f zy=|;K2Kx=a_!SjT-jX8Jk=^#wVkSE&F8&kt|_Hm)Cr8MFxk9E9XK7@ z;9wq0x01GI=JY87P=F7575qqpy)0P&p%%UO)=LFUiC#qgIq1MBnYwn{^4c-$20F{Dl|kLe8n-{r8M*9cb=Ght5jx+bK-ne>K_4*o&8^MaJ7DJ0Q%l#Y3At% zZ!vGoo@Pdzbhz9rq9P%kiMH}v+jY{)Mx(7vPI^6)Yk~Zksgr*-rfQ@y+saI&y0Kk* zyUC=&I^g(A0f%!;ck=Y|70VW!-mh23NxA7wSK1Bn3nTtI+N&b3mAxq+aC( zUhXTiPxNb&^d(S&V{=f)SMy`ikA*WI6W&3k(h!H;>;io4xd(mV;O{Wb)s#jSaGoRk zh)yaG-b?fj(lu*O?kws(V|cwm0TaN{{{Tnevgsiu@3`S& z5y7zm;1mw&)zK`PX(I~A)3+CzYiz`U21853XhkqUqO{3-z{To-eF}Wv5#4Z&Dk5SfP^Xw0X|faZ zq)m~_Eoj8b^fhlbavgB|<$%MxByBOBKmOpY;pdJ#-li>0)^*5_`;qjdA}`fl0vw6{ zB}1+Q-V5jqNKtMXcfLO;ny;b&B|6x&*ld08b?Jyy`7)&8h@pr3)^(iPluXs>szxi| z+UyB|X$dEUcjBZ)X6*SV2v7vaF=V%CC>)C$B;@=|Iqlszh?-ND&3APFy*wARg;Fk6 z;Ba<=EzIG4x|$UWoijSA%9W#sdK=i0jS!{u+~5Gt-vdGe`gM+)hoW7hds|SYRbKB6 z;xRN8D!NnP;PgJCUl&QQ0J9J5`&>HrDI0CI_JINLJ$YbX@lqk`pyeK?`m+2)zgOqq zy);!(e-eQCyfcmxIsT~Ak1?V2=Fa>WJ4LTYrkq|OyKc&gY-Ezz#B{01Ft1F1#4fMj z-?1Rk-$;5wKUE!Y{I!9@{od~Odz-eHPTzd}*@zpj9er;oKXFw~R@0v=3KGHs7NjK# zBK9gT2u@RX&01ZG+j(ZTb47WHeLf65smJUY56Xf=N5E<9h|hTQ^dq+kH{dD+bH%I} z&&isr!LboLejnT$f*xWHUJX1I8Os$PQTy<4xnP@ae9BLyKrljQ#GU7l&9sz;q6(t0=Q5u+pR z4*oNML!|p&U(S`IPZ6KkLwc74Ce1lMLo5|-)LD$dko}A^)9ahPx@4GFXG|s1_}Z?o z6C+{MP}Z6lP}Kp)e*4Spy?UL0y^Iu*7y6$Py@ zTk%9*grqHmAa(Oxu-!`+_i!eXjTm~ER6?+VgRO_P7vWbZRVpt>_ut#!w49inz$`#l zGIgh&C>8UZRUOL7xi3BJNxT=Cm!G{~tnifI2u3Mr5OnG~>5odPgTMhDYcYnpp0+a4(QlB{!{suhYn}8wk^19hFEVarW>d-QXp4HRsf} z?;FAvZ3>D?_nw!SGfwU=gQ23$ic_R14G-2;i>J%)^0=7zaPQzo7j3C(Zcs?nCB z?1V4MLoK(lNSy5+r#HF}S9vKfblM0AQo>p`G)%pk^>)aP^DO_IOE~=ulO|m0o7cca zFf572HBPr+OFrWS&=j~S^sjiEZmD_TuB&9z1wAulz;tecG^M%pV}Ynqk!HjA2lIJ= z>&aib|1bo~ z`Qe+d&c5`5k@pnkwtOKcqvtq+1#!CW4?+Dy7trj*${lqdP`-PfAikx;DB)7*dk~8!%w+p6C5t*YA42f876^ z>-*Pz&bd!~&gX<#RuoUF?=V_5Ohgc|WMAE>%pSMuTnj46fz5A=eqT(nT3O=)tE^Uc zu&D{~QXO#r(fFIpLsg)fLMGi!`aY!2C=Cq{VR;gasoo!&Cvw7UdeACJlZ!r{pCO9S z6*iR{xyK4O3Htg#Z_EpKXtKG4t{?iNPLav}S(@ftG%JkXwOvxk`poFVI%SBwW~3CB ztWND~L2s>vH`+O2gPW1tKg(t7A@HL0CA^nD?$D-TX$GGLPs|%(u0D|-MIl62$nREP zo@Y`kI{3Y>V~ldm$`tfl(^uTkI$4z?kQ<`rCEQ!hP05!eW**#lKo0`!LFP7gcc9V!Bq&|#nB%)hv-jT?#~SR5(0`!!xf-M5}f4rdc7lT@8abQXFs z*~Z;375#yP&Z#Wyk$GVeW$2OMO@^@iBa#^VSMfZ5K=~^c!CzNtdOR3iT|`e5+)O$7 ziK))%tvB~*=-fGxzsbP!$+CaX+YxaLIiajn282@2H>+Hk!@jRY_#)lq%@w{E**!Bm z(EZLOp|c2W8TL^6I+?9C<7cAdRE@6Bhtf%k?AHsUEMqn_O`r5Q!8GV%g*(SXQI|6*eH zKHwZv2|diraGsl{^JKR*?f%3hns7-+A9;bl!-7Wz7231b&fN)`$B)#RK=oMDXxi7W zl8(lQ9h+pHbZpr5lTrj40%^?OSKOg`H=N?b@X$$fU?7AqXqDzXiU1)=s32d-Fd`e5 zseU$0n;{+{2~JKMHYHH{cGTQUKNQ4?n{TXr%>63&gY?#wM0{o;&-OG;Zl>Ck?=2t; zu{jQLkDr6e2Hm3IzaJX-H>5?J6|alFl1gWPmz#RR(40K$et6TrNRz8V+|3aj^n0;H z2brVzl4Xz0tA3I|!OZX46DPkdLIw%4xW>>c81x zS<3YThcNry&@%g#@p3Kq*f8b(rlN4|&HV(Na9nu4(^z2_meoGnmn{JfG68t7k!p0m zdmTK=CUeTi?<3%Hj{|NpXu!Mgnef^GcU$c2r>TOzP3LKoJ1W~?q(xd=<92)ryZc zBR!P)#ZL!D>Ltu{W4{=NX~Yl*v(V2ToEW7%5U(9}q=&Vx1u$TRy`6T(Je^|dOiIi_ zV}~sEjG{}PG@4C>hZFC%{;j;CBJr&d2Ag=$I5A+lD&v2kZnvC~L?aBQ=Z9Lw;H^O>Zm=ql|dV zsEGu|A)x#q5^h=p$PZV?DjDRoRcQ2j5%~jsnNH}vy4hFapIIi#W9{Urr^atqT-DU0 z7est%JzgRotd$mY_*`xf=mlR|0*iLrONE=N2>L1eq18k-on-(611iAfkJt5VkE_aU zj}OW>5A@G=U*c{aGI6e(?eeT{S2UK}O!l#Du$$ZD_CI?5G)?UVV*c)Zt1~(B%~Qwpe*J&F|{T{k{&1Lv=(92jiZOdCDwcxZ@q14Xp?COBDzc* z8RxK9M)G|Y<`93cM9c|i3JO2YdP7=)$jBr;e)l=C7iUx;1&qDBOWW8QkS)z0DQo!K zn=}5an1jw;v#q=syr9;ddu5ln?w?yss^@Swqh)yV(g5oHnpNa!_Bvx43;%E|PEras z)zBeZysF@X?m*&C5ulFx(ipNZ+4V9KNDi@P-vJ}FiGhbQHsS0f4hp@P{JjKHI#>tL z{I(HaPDVJ#?dhv)&v+JUQL4V3Ql~FpqOy-_5;)xn)rxEm13Rtx(unO2`j7FV2peKZ zTd$W*0ME7ta=1TM)feh}_CgfUZe2nPAKNrjLiv=lt7az>x=Q^4Prsd`(YA~Ij3yPZWSjyeFxysIidPUv^``)kmx45x@jq^B8cBh2$jAw4ZFU&_=yY<+tXYTDivzd%AYx)C^Qyo<`kJ%;`$EcrCP_rk9Q+ zpMKPjV$m05Z*lF97Am?e9PLRp8cE`pK`O=}=8!ffB4(NG2$69Vo+4~;X>@+HDIl4# zZ+pnMtusd?sR?I!hw8feRGfi1cd|uAxdQ=*WJ+`lyI1e@ZwMVKft7k$e?XS%D+W6u zaZQ0ovLOazVcu+y>xmtM7~+s6t-|;Fk*^CQaA5TelMlg975F`|bv3#`Wajb$ONg888pJ?$-6#G?3{ zRhZpEbexhWzFY~6ea+iutm48<`Ou@=fSfJxp>+Dz{hFGBktw&=YqQ8C>>M>z4n`nBw*3KW4&vVm^49> zk57!|(`$9Jc0bGSyf6xi*X3fg#KrUJeg2ny2x2aa4IL=pW&+akEXsaVk@O!-D2mf> zR~FFW)7GvPhfjV|<)*%1amk{&rRMT55rpIg8$2n;oac;Lh?{VZJ4fE4t-%i#hvyui zQjt87#kYDo6GL{o8bPM0ucu8^&<@9gj4jCy*p77pVbcD?*FX*H=Kl;UkV#tpqV5h@ z%ktGh*HR#QYRS&b|H23BE~uB4J=L^o>XV_@)9*9ZTTDuka9?7D4unWP9QE)3XptAq z#C&lC8Qv=C^|L4zcv_qAS?-BakAKlz(VZfG!m!hzFo;Yi`r}8d;PB}%gCv$OMA8Uo zyJ6-+dOPOElrhwJA|{HmVBq-=#RmYp@tBA(8cuYc>UlRH?6FkG7o#U#l7|dMQcROQ zgk`Pdbj%6&*mPa)XW|t3?d=yKvhNDHAXhvn3ukDe(Qn@AANTuB8THGpl#{q2yGlY;t0P{0RV49#I=`V;T2&rya^S% zrLpEYNu0yPfGq9I&7#Ap)5(UZ)c%fWW8yXM#O-}kHZk})6BQNWKFHYe(o!lfmG;c9 zg{)l@)oN4q@LEN;$8UFeevuX8PV)DCXo#=V{nwA427-F!vo=Rlf|rcs(k-Lqb3XBY za_qID<&XExGba7sA|hnZzyVv)Wl3vjq0}nt$bzRrr*s8L*wXTQle0%yrnEmRyBhV? z7e=}&Xfh4)KYefBh$na4^ui`#RXm}Wdaz$7v?Z;#F~Vn0g5=nb46nmV8Kv=9pLB`Lq}>JaY!8WaYOk~llF$j8eb=( z+_D1Srm|wq2SSSM&Fc93H;Lipd5!!d+8C8HYvjh;-z{-D{2VqtnWQx0oY~7}&qmx! zAqPYH{`RWwuP9sS3P{=cwZH#t1aH80Hr>dEUKSkg>@3b{7Cq-tvHP320L+Lu>X>C) z>8e~C`cXK?d<`p7D$bIyZ_@ivMf&y4oS{laiji7{_VS1^nqjp_)fr~#iol-B3d>^9NE+GF(h{)^>10xSDN}GX703@VND48zV;%0`v!2Rak+U#J67sW z(4$}N1~x;7QY^em?W9+C+|;!=);Z2!oP}5DyIffvE{M6%GI)w@E~{HV7>-%lu&ps? zxnBEm<>|%h^r){;B8W0_pZ`Tna@Z^G{DVF%+x^EIJqLY_Byk64lZHSA>0{VL^SvYk z(qG>zYHFhH*5v z&PVJ?^>HnOI)8~(y`f#|PJd)smC-M<$Lhqytf5b|s42bQbnm{IhmTBUk*eEe^89Z>2l?lOJVc|UefsyZd81&-f;zM z*pS@sSDu(Fyj()~mi7zRcYY};(|a$Cm$5z>W1V_>%TB5hJ=3hh?1Wpg(Xq=V=m1Yz7_Na89#XJO@EM6s@6}f-Fq8^ z;8kEng7KUOG&CarW#oV261^mKlbKwkd4)CQvR;9A( z^Is@*yE#SZ%kOL;OB8(%kt?fMj-9H!CW{qYp1>ikx@BmZU zw35L0%GNp>m6w);)uGp&(o#p{ZOY94GO#qJZmN7%uRa8DrO7QK8duj7_izrwxNmTMdYgOWQ2 z$NzMZPA*CKW7?fJ+}Aado{_cG=YFsMEv+(`k)u8c10!um!4}1DYCOu^^Bl3deCXyOIJEyY~z zDV0&ZpHbCxrc3-8GKZ;U&zH!_=fA}jBUq$O6SR@IP|7FmmQ=LgY&aMj!xs@cTKRO_ z(?nDF2Qh8v{8{&N+mrB5#yY3()=jk*zTc|jpQP}TsIezyjwN(K{F8E4C#_2tP>9T% z+=Zq;a5ObDFxz7>(hv}^zAA>C@I73gP`oSy71^7HmHr)#C;Q&LgXyaM?>h0f*$kL! ze|FBfoHeCGJMluc`>9x~fXicYaqi--oAc{@r9k{l0*B+OcYjqH6#8rz`dk;PP54GBXIYeqt5v(YUL@6r>qZy)1t3ofTT z;*VJ*brF?xvoqn1fqe6IG}`I}(pnn*Q7dNY3vz6K3$xNwHm-7?dNnj;zcg4>e8fCt zzw%y(z~y}jSfMn={8_ke71LM111>g7 z5041rQ~%lHZQ&aT_6Aogy5@i8Gnxi<@+jBiS?&&SI*1(Kl*iN7sQEDjo^0E3&(*#a z#iXP`Gem6Ahx?D0Wig0)t8iz9>uJ?yfK1-WtVKsdGiEon-UFrY)Z|(Dsj;z2H=r*age%*x;3rQsbHBK5zvTv&%i~531t!=;zq<~8i7){K z>f(og4geTEj$!${Y_ENe2J=&pxia6;RR~~JyZh-v3c)W_p-UWUYryBhH~}d5Ab+^E zw!^5^dAng4sCb!&9sxER-<+>VrASiA4R Date: Wed, 15 Nov 2017 10:33:42 -0500 Subject: [PATCH 003/169] Delete SecOnion --- SecOnion | 1 - 1 file changed, 1 deletion(-) delete mode 100644 SecOnion diff --git a/SecOnion b/SecOnion deleted file mode 100644 index 8b13789..0000000 --- a/SecOnion +++ /dev/null @@ -1 +0,0 @@ - From 9d1a1e623f6eca8ccfb1b6188d388bb0ef7c1b49 Mon Sep 17 00:00:00 2001 From: brentstewart Date: Wed, 15 Nov 2017 11:47:58 -0500 Subject: [PATCH 004/169] Delete securityonion-logo.png --- appliances/securityonion-logo.png | Bin 88534 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 appliances/securityonion-logo.png diff --git a/appliances/securityonion-logo.png b/appliances/securityonion-logo.png deleted file mode 100644 index d5ecfc92fc23e309d46ad6062d745ea0a821d8bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 88534 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 Date: Wed, 15 Nov 2017 11:50:40 -0500 Subject: [PATCH 005/169] Add files via upload --- symbols/securityonion-logo.png | Bin 0 -> 88534 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 symbols/securityonion-logo.png diff --git a/symbols/securityonion-logo.png b/symbols/securityonion-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d5ecfc92fc23e309d46ad6062d745ea0a821d8bb GIT binary patch literal 88534 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 Date: Thu, 16 Nov 2017 10:24:53 +0700 Subject: [PATCH 006/169] Rename Security Onion.gns3a to security-onion.gns3a --- appliances/{Security Onion.gns3a => security-onion.gns3a} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename appliances/{Security Onion.gns3a => security-onion.gns3a} (99%) diff --git a/appliances/Security Onion.gns3a b/appliances/security-onion.gns3a similarity index 99% rename from appliances/Security Onion.gns3a rename to appliances/security-onion.gns3a index 2173430..c2011f4 100644 --- a/appliances/Security Onion.gns3a +++ b/appliances/security-onion.gns3a @@ -65,4 +65,4 @@ } ] -} \ No newline at end of file +} From 91ec8c745425d765cf7c7f7b1345d4db4d75fab5 Mon Sep 17 00:00:00 2001 From: adosztal Date: Sun, 19 Nov 2017 19:00:30 +0100 Subject: [PATCH 007/169] New Kerio releases --- appliances/kerio-connect.gns3a | 14 ++++++++++++++ appliances/kerio-control.gns3a | 14 ++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/appliances/kerio-connect.gns3a b/appliances/kerio-connect.gns3a index 68670bc..741477d 100644 --- a/appliances/kerio-connect.gns3a +++ b/appliances/kerio-connect.gns3a @@ -24,6 +24,14 @@ "kvm": "require" }, "images": [ + { + "filename": "kerio-connect-appliance-9.2.5-3336-p3-vmware-amd64-disk1.vmdk", + "version": "9.2.5p3", + "md5sum": "f2a202f29e71dc6e8bebce4c05a9e44d", + "filesize": 824496128, + "download_url": "http://www.kerio.com/support/kerio-connect", + "direct_download_url": "http://cdn.kerio.com/dwn/connect/connect-9.2.5-3336/kerio-connect-appliance-9.2.5-3336-p3-vmware-amd64-disk1.vmdk" + }, { "filename": "kerio-connect-appliance-9.2.4-3252-vmware-amd64-disk1.vmdk", "version": "9.2.4", @@ -59,6 +67,12 @@ } ], "versions": [ + { + "name": "9.2.5", + "images": { + "hda_disk_image": "kerio-connect-appliance-9.2.5-3336-p3-vmware-amd64-disk1.vmdk" + } + }, { "name": "9.2.4", "images": { diff --git a/appliances/kerio-control.gns3a b/appliances/kerio-control.gns3a index 15cc258..2b3f48d 100644 --- a/appliances/kerio-control.gns3a +++ b/appliances/kerio-control.gns3a @@ -23,6 +23,14 @@ "kvm": "require" }, "images": [ + { + "filename": "kerio-control-appliance-9.2.4-2223-vmware-disk1.vmdk", + "version": "9.2.4", + "md5sum": "20970f3638c7ca5603c2afbe56e89421", + "filesize": 191687168, + "download_url": "http://www.kerio.com/support/kerio-control", + "direct_download_url": "http://cdn.kerio.com/dwn/control/control-9.2.4-2223/kerio-control-appliance-9.2.4-2223-vmware-disk1.vmdk" + }, { "filename": "kerio-control-appliance-9.2.3-2219-vmware-disk1.vmdk", "version": "9.2.3", @@ -55,6 +63,12 @@ "direct_download_url": "http://cdn.kerio.com/dwn/control/control-9.1.4-1535/kerio-control-appliance-9.1.4-1535-vmware.vmdk" } ], "versions": [ + { + "name": "9.2.4", + "images": { + "hda_disk_image": "kerio-control-appliance-9.2.4-2223-vmware-disk1.vmdk" + } + }, { "name": "9.2.3", "images": { From a51f5d1c433e4091a52ca794a955287ac687c4ed Mon Sep 17 00:00:00 2001 From: adosztal Date: Sun, 19 Nov 2017 19:56:31 +0100 Subject: [PATCH 008/169] New LB releases --- appliances/kemp-vlm.gns3a | 13 +++++++++++++ appliances/loadbalancer_org-va.gns3a | 13 +++++++++++++ 2 files changed, 26 insertions(+) diff --git a/appliances/kemp-vlm.gns3a b/appliances/kemp-vlm.gns3a index c9431bd..b873db5 100644 --- a/appliances/kemp-vlm.gns3a +++ b/appliances/kemp-vlm.gns3a @@ -26,6 +26,13 @@ "options": "-smp 2" }, "images": [ + { + "filename": "LoadMaster-VLM-7.2.40.0.15707.RELEASE-Linux-KVM-XEN-FREE.disk", + "version": "7.2.40.0", + "md5sum": "4284a80141f7974d082a2eed91ec6216", + "filesize": 17179869185, + "download_url": "http://freeloadbalancer.com/download/" + }, { "filename": "LoadMaster-VLM-7.2.38.0.14750.RELEASE-Linux-KVM-XEN.disk", "version": "7.2.38.0", @@ -56,6 +63,12 @@ } ], "versions": [ + { + "name": "7.2.40.0", + "images": { + "hda_disk_image": "LoadMaster-VLM-7.2.40.0.15707.RELEASE-Linux-KVM-XEN-FREE.disk" + } + }, { "name": "7.2.38.0", "images": { diff --git a/appliances/loadbalancer_org-va.gns3a b/appliances/loadbalancer_org-va.gns3a index b6428ee..868aa4d 100644 --- a/appliances/loadbalancer_org-va.gns3a +++ b/appliances/loadbalancer_org-va.gns3a @@ -23,6 +23,13 @@ "kvm": "require" }, "images": [ + { + "filename": "Loadbalancer.org_Enterprise_VA-8.3-disk1.qcow2", + "version": "8.3", + "md5sum": "f0e41f39a5cab47990edc0509c579bac", + "filesize": 368332288, + "download_url": "https://loadbalancer.org/resources/free-trial" + }, { "filename": "Loadbalancer.org_Enterprise_VA-8.2-disk1.qcow2", "version": "8.2", @@ -32,6 +39,12 @@ } ], "versions": [ + { + "name": "8.3", + "images": { + "hda_disk_image": "Loadbalancer.org_Enterprise_VA-8.3-disk1.qcow2" + } + }, { "name": "8.2", "images": { From 343bf583a1e420bcea2567622f3feda780475a60 Mon Sep 17 00:00:00 2001 From: adosztal Date: Sat, 25 Nov 2017 09:10:46 +0100 Subject: [PATCH 009/169] New releases --- appliances/arista-veos.gns3a | 28 ++++++++++++++++++++++++++++ appliances/cisco-csr1000v.gns3a | 13 +++++++++++++ appliances/cisco-iosxrv9k.gns3a | 19 +++++++++++++++++++ appliances/fortiauthenticator.gns3a | 14 ++++++++++++++ 4 files changed, 74 insertions(+) diff --git a/appliances/arista-veos.gns3a b/appliances/arista-veos.gns3a index 52868c3..58376af 100644 --- a/appliances/arista-veos.gns3a +++ b/appliances/arista-veos.gns3a @@ -24,6 +24,20 @@ "kvm": "require" }, "images": [ + { + "filename": "vEOS-lab-4.20.1F.vmdk", + "version": "4.20.1F", + "md5sum": "aadb6f3dbff28317f68cb4c4502d0db8", + "filesize": 662044672, + "download_url": "https://www.arista.com/en/support/software-download" + }, + { + "filename": "vEOS-lab-4.18.5M.vmdk", + "version": "4.18.5M", + "md5sum": "b1ee6268dbaf2b2276fd7a5286c7ce2b", + "filesize": 623116288, + "download_url": "https://www.arista.com/en/support/software-download" + }, { "filename": "vEOS-lab-4.18.1F.vmdk", "version": "4.18.1F", @@ -82,6 +96,20 @@ } ], "versions": [ + { + "name": "4.20.1F", + "images": { + "hda_disk_image": "Aboot-veos-serial-8.0.0.iso", + "hdb_disk_image": "vEOS-lab-4.20.1F.vmdk" + } + }, + { + "name": "4.18.5M", + "images": { + "hda_disk_image": "Aboot-veos-serial-8.0.0.iso", + "hdb_disk_image": "vEOS-lab-4.18.5M.vmdk" + } + }, { "name": "4.18.1F", "images": { diff --git a/appliances/cisco-csr1000v.gns3a b/appliances/cisco-csr1000v.gns3a index 6050b47..bf98fc0 100644 --- a/appliances/cisco-csr1000v.gns3a +++ b/appliances/cisco-csr1000v.gns3a @@ -22,6 +22,13 @@ "kvm": "require" }, "images": [ + { + "filename": "csr1000v-universalk9.16.07.01-serial.qcow2", + "version": "16.7.1", + "md5sum": "13adbfc2586d06c9802b9805168c0c44", + "filesize": 882769920, + "download_url": "https://software.cisco.com/download/release.html?mdfid=284364978&flowid=39582&softwareid=282046477&release=Fuji-16.7.1&relind=AVAILABLE&rellifecycle=ED&reltype=latest" + }, { "filename": "csr1000v-universalk9.16.06.01-serial.qcow2", "version": "16.6.1", @@ -80,6 +87,12 @@ } ], "versions": [ + { + "name": "16.7.1", + "images": { + "hda_disk_image": "csr1000v-universalk9.16.07.01-serial.qcow2" + } + }, { "name": "16.6.1", "images": { diff --git a/appliances/cisco-iosxrv9k.gns3a b/appliances/cisco-iosxrv9k.gns3a index 67a6330..a140b6d 100644 --- a/appliances/cisco-iosxrv9k.gns3a +++ b/appliances/cisco-iosxrv9k.gns3a @@ -24,6 +24,13 @@ "options": "-smp 4" }, "images": [ + { + "filename": "xrv9k-fullk9-x-6.2.25.qcow2", + "version": "6.2.25", + "md5sum": "3f54e62b6f7cedfb2607233e5e465766", + "filesize": 1190723584, + "download_url": "https://virl.mediuscorp.com/my-account/" + }, { "filename": "xrv9k-fullk9-x.qcow2-6.0.1", "version": "6.0.1", @@ -40,6 +47,18 @@ } ], "versions": [ + { + "name": "6.2.25", + "images": { + "hda_disk_image": "xrv9k-fullk9-x-6.2.25.qcow2" + } + }, + { + "name": "6.0.1", + "images": { + "hda_disk_image": "xrv9k-fullk9-x.qcow2-6.0.1" + } + }, { "name": "6.0.0", "images": { diff --git a/appliances/fortiauthenticator.gns3a b/appliances/fortiauthenticator.gns3a index 58b0878..204d6df 100644 --- a/appliances/fortiauthenticator.gns3a +++ b/appliances/fortiauthenticator.gns3a @@ -26,6 +26,13 @@ "kvm": "allow" }, "images": [ + { + "filename": "FAC_VM_KVM-v500-build0091-FORTINET.out.kvm.qcow2", + "version": "5.1.2", + "md5sum": "7bdafd32db552954c4c7fe60296fc600", + "filesize": 71135232, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FAC_VM_KVM-v500-build0086-FORTINET.out.kvm.qcow2", "version": "5.1.1", @@ -56,6 +63,13 @@ } ], "versions": [ + { + "name": "5.1.2", + "images": { + "hda_disk_image": "FAC_VM_KVM-v500-build0091-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "FAC_VM_KVM-v500-DATADRIVE.qcow2" + } + }, { "name": "5.1.1", "images": { From 8596080a8eaae1414ffab52b121623c350761755 Mon Sep 17 00:00:00 2001 From: adosztal Date: Sun, 3 Dec 2017 12:27:45 +0100 Subject: [PATCH 010/169] New NX-OSv9k release --- appliances/cisco-nxosv9k.gns3a | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/appliances/cisco-nxosv9k.gns3a b/appliances/cisco-nxosv9k.gns3a index ddda402..122f653 100644 --- a/appliances/cisco-nxosv9k.gns3a +++ b/appliances/cisco-nxosv9k.gns3a @@ -25,6 +25,13 @@ "kvm": "require" }, "images": [ + { + "filename": "nxosv-final.7.0.3.I7.2.qcow2", + "version": "7.0.3.I7.2", + "md5sum": "17295efb13e83b24a439148449bfd5ab", + "filesize": 906231808, + "download_url": "https://software.cisco.com/download/" + }, { "filename": "nxosv-final.7.0.3.I7.1.qcow2", "version": "7.0.3.I7.1", @@ -64,6 +71,13 @@ } ], "versions": [ + { + "name": "7.0.3.I7.2", + "images": { + "bios_image": "OVMF-20160813.fd", + "hda_disk_image": "nxosv-final.7.0.3.I7.2.qcow2" + } + }, { "name": "7.0.3.I7.1", "images": { From e6de6492af6d5eca5aaab289f2b4b291ead5619e Mon Sep 17 00:00:00 2001 From: adosztal Date: Sat, 9 Dec 2017 19:11:39 +0100 Subject: [PATCH 011/169] New Fortinet releases --- appliances/forticache.gns3a | 14 ++++++++++++++ appliances/fortigate.gns3a | 28 ++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/appliances/forticache.gns3a b/appliances/forticache.gns3a index 4052c0f..501ec3b 100644 --- a/appliances/forticache.gns3a +++ b/appliances/forticache.gns3a @@ -26,6 +26,13 @@ "kvm": "require" }, "images": [ + { + "filename": "FCHKVM-v400-build0216-FORTINET.out.kvm.qcow2", + "version": "4.2.6", + "md5sum": "867e0569b8466db744547422a1d6f17a", + "filesize": 27553792, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FCHKVM-v400-build0213-FORTINET.out.kvm.qcow2", "version": "4.2.5", @@ -92,6 +99,13 @@ } ], "versions": [ + { + "name": "4.2.6", + "images": { + "hda_disk_image": "FCHKVM-v400-build0216-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty100G.qcow2" + } + }, { "name": "4.2.5", "images": { diff --git a/appliances/fortigate.gns3a b/appliances/fortigate.gns3a index 739132a..9378123 100644 --- a/appliances/fortigate.gns3a +++ b/appliances/fortigate.gns3a @@ -26,6 +26,13 @@ "kvm": "allow" }, "images": [ + { + "filename": "FGT_VM64_KVM-v5-build1547-FORTINET.out.kvm.qcow2", + "version": "5.6.3", + "md5sum": "a908f8620e8bbccce8794733f3637e13", + "filesize": 40939520, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FGT_VM64_KVM-v5-build1486-FORTINET.out.kvm.qcow2", "version": "5.6.2", @@ -47,6 +54,13 @@ "filesize": 38760448, "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" }, + { + "filename": "FGT_VM64_KVM-v5-build6446-FORTINET.out.kvm.qcow2", + "version": "5.4.7", + "md5sum": "17d3dfebd4b222569cf10cfab83e0e56", + "filesize": 38715392, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FGT_VM64_KVM-v5-build1165-FORTINET.out.kvm.qcow2", "version": "5.4.6", @@ -148,6 +162,13 @@ } ], "versions": [ + { + "name": "5.6.3", + "images": { + "hda_disk_image": "FGT_VM64_KVM-v5-build1547-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty30G.qcow2" + } + }, { "name": "5.6.2", "images": { @@ -169,6 +190,13 @@ "hdb_disk_image": "empty30G.qcow2" } }, + { + "name": "5.4.7", + "images": { + "hda_disk_image": "FGT_VM64_KVM-v5-build6446-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty30G.qcow2" + } + }, { "name": "5.4.6", "images": { From 5c97b549f92ba8fcc4cc47dde897c0aa01dc72e1 Mon Sep 17 00:00:00 2001 From: Andre Sencioles Date: Sun, 10 Dec 2017 21:35:23 +1300 Subject: [PATCH 012/169] Add Ubuntu Cloud Guest appliance Uses the official Ubuntu cloud images from https://cloud-images.ubuntu.com --- appliances/ubuntu-cloud.gns3a | 94 +++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 appliances/ubuntu-cloud.gns3a diff --git a/appliances/ubuntu-cloud.gns3a b/appliances/ubuntu-cloud.gns3a new file mode 100644 index 0000000..e8bb804 --- /dev/null +++ b/appliances/ubuntu-cloud.gns3a @@ -0,0 +1,94 @@ +{ + "name": "Ubuntu Cloud Guest", + "category": "guest", + "description": "The term 'Ubuntu Cloud Guest' refers to the Official Ubuntu images that are available at http://cloud-images.ubuntu.com . These images are built by Canonical. They are then registered on EC2, and compressed tarfiles are made also available for download. For using those images on a public cloud such as Amazon EC2, you simply choose an image and launch it. To use those images on a private cloud, or to run the image on a local hypervisor (such as KVM) you would need to download those images and either publish them to your private cloud, or launch them directly on a hypervisor. The following sections explain in more details how to perform each of those actions", + "vendor_name": "Canonical Inc.", + "vendor_url": "https://www.ubuntu.com", + "documentation_url": "https://help.ubuntu.com/community/UEC/Images", + "product_name": "Ubuntu Cloud Guest", + "product_url": "https://www.ubuntu.com/cloud", + "registry_version": 3, + "status": "stable", + "maintainer": "GNS3 Team", + "maintainer_email": "developers@gns3.net", + "usage": "Username: ubuntu\nPassword: ubuntu", + "port_name_format": "Ethernet{0}", + "qemu": { + "adapter_type": "virtio-net-pci", + "adapters": 1, + "ram": 1024, + "hda_disk_interface": "virtio", + "arch": "x86_64", + "console_type": "telnet", + "boot_priority": "c", + "kvm": "require", + "options": "-nographic" + }, + "images": [ + { + "filename": "ubuntu-17.10-server-cloudimg-amd64.img", + "version": "17.10", + "md5sum": "5d221878d8b2e49c5de7ebb58a2b35e3", + "filesize": 318373888, + "download_url": "https://cloud-images.ubuntu.com/releases/17.10/release/" + }, + { + "filename": "ubuntu-17.04-server-cloudimg-amd64.img", + "version": "17.04", + "md5sum": "d4da8157dbf2e64f2fa1fb5d121398e5", + "filesize": 351993856, + "download_url": "https://cloud-images.ubuntu.com/releases/17.04/release/" + }, + { + "filename": "ubuntu-16.04-server-cloudimg-amd64-disk1.img", + "version": "16.04.3", + "md5sum": "bd0c168a83b1f483bd240b3d874edd6c", + "filesize": 288686080, + "download_url": "https://cloud-images.ubuntu.com/releases/16.04/release/" + }, + { + "filename": "ubuntu-14.04-server-cloudimg-amd64-disk1.img", + "version": "14.04.5", + "md5sum": "d7b4112c7d797e5e77ef9995d06a76f1", + "filesize": 262406656, + "download_url": "https://cloud-images.ubuntu.com/releases/14.04/release/" + }, + { + "filename": "ubuntu-cloud-init-data.iso", + "version": "1.0", + "md5sum": "328469100156ae8dbf262daa319c27ff", + "filesize": 131072, + "download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/ubuntu-cloud-init-data.iso/download" + } + ], + "versions": [ + { + "name": "17.10", + "images": { + "hda_disk_image": "ubuntu-17.10-server-cloudimg-amd64.img", + "cdrom_image": "ubuntu-cloud-init-data.iso" + } + }, + { + "name": "17.04", + "images": { + "hda_disk_image": "ubuntu-17.04-server-cloudimg-amd64.img", + "cdrom_image": "ubuntu-cloud-init-data.iso" + } + }, + { + "name": "16.04 (LTS)", + "images": { + "hda_disk_image": "ubuntu-16.04-server-cloudimg-amd64-disk1.img", + "cdrom_image": "ubuntu-cloud-init-data.iso" + } + }, + { + "name": "14.04 (LTS)", + "images": { + "hda_disk_image": "ubuntu-14.04-server-cloudimg-amd64-disk1.img", + "cdrom_image": "ubuntu-cloud-init-data.iso" + } + } + ] +} From 479a57bd3b65a3f260332a22252f601c4de2fe7f Mon Sep 17 00:00:00 2001 From: adosztal Date: Sun, 10 Dec 2017 18:40:57 +0100 Subject: [PATCH 013/169] PR template --- PULL_REQUEST_TEMPLATE.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 PULL_REQUEST_TEMPLATE.md diff --git a/PULL_REQUEST_TEMPLATE.md b/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..f85f86a --- /dev/null +++ b/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,17 @@ +Before submitting a pull request, please check the following. + +--- +When updating an **existing** appliance: +- [ ] The new version is on top. +- [ ] The filesnames in the "images" section are unique, to avoid appliances / version overwrinting each other. +- [ ] If you forked the repo, running check.py doesn't drop any errors for the updated file. +--- +When creating a **new** appliance: +- It's tested locally, i.e. + - [ ] You dragged an instance into a project on your box, got it installed (if necessary), and did some basic network checks (ping, UI reachable, etc.). + - [ ] GNS3 VM can run it without any tweaks. + - [ ] You filled in as much info as possible (checks the schemas and other appliance files for some guidance). +- [ ] When adding a container: it builds on Docker Hub and can be pulled. +- [ ] The filesnames in the "images" section are unique (to avoid appliances and/or versions overwriting each other). +- [ ] If you forked the repo, running check.py doesn't drop any errors for the new file. +- [ ] *Optional: a symbol has been created for the new appliance.* From edac2609f8bcda71fdd49a6f6129fcc869d367a5 Mon Sep 17 00:00:00 2001 From: Bernhard Ehlers Date: Thu, 14 Dec 2017 11:27:06 +0100 Subject: [PATCH 014/169] Support Tinycore Linux v8.2 --- packer/tinycore-linux/ostinato.json | 4 ++-- packer/tinycore-linux/scripts/gui.sh | 22 ++++++++++++++------- packer/tinycore-linux/scripts/post_setup.sh | 2 +- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/packer/tinycore-linux/ostinato.json b/packer/tinycore-linux/ostinato.json index 5699660..89032ad 100644 --- a/packer/tinycore-linux/ostinato.json +++ b/packer/tinycore-linux/ostinato.json @@ -1,6 +1,6 @@ { - "tc_iso_url": "http://distro.ibiblio.org/tinycorelinux/7.x/x86/archive/7.2/Core-7.2.iso", - "tc_iso_checksum": "77bf8cceacd2110120451f3f22f85156", + "tc_iso_url": "http://distro.ibiblio.org/tinycorelinux/8.x/x86/archive/8.2/Core-8.2.iso", + "tc_iso_checksum": "560b6d9da10140f13f22eeea35bf6087", "vm_name": "ostinato.qcow2", "setup_script": "ostinato.sh", "disk_size": "200" diff --git a/packer/tinycore-linux/scripts/gui.sh b/packer/tinycore-linux/scripts/gui.sh index 1ab60a1..aa39127 100644 --- a/packer/tinycore-linux/scripts/gui.sh +++ b/packer/tinycore-linux/scripts/gui.sh @@ -1,6 +1,8 @@ set -e set -x +. /etc/init.d/tc-functions + # Install the GUI tce-load -wi fltk-1.3 tce-load -wi flwm @@ -12,10 +14,15 @@ tce-load -wi Xorg-7.7 # Create xorg-setup-tools tce-load -wi Xdialog -. /etc/init.d/tc-functions -getMirror -wget -P /tmp $MIRROR/squashfs-tools.tcz -tce-load -i /tmp/squashfs-tools.tcz +# install squashfs-tools only in RAM +mv /etc/sysconfig/tcedir /etc/sysconfig/tcedir.hd +ln -s /tmp/tce /etc/sysconfig/tcedir +sudo cp -a /usr/local/tce.installed /usr/local/tce.installed.hd +tce-load -wi squashfs-tools.tcz +rm -f /etc/sysconfig/tcedir +mv /etc/sysconfig/tcedir.hd /etc/sysconfig/tcedir +sudo rm -rf /usr/local/tce.installed +sudo mv /usr/local/tce.installed.hd /usr/local/tce.installed sudo mkdir /tmp/xorg-setup-tools sudo mkdir -p /tmp/xorg-setup-tools/usr/local/bin @@ -170,9 +177,10 @@ cat > setup_resolution <<'EOF' # available resolutions resolutions=' -1024x768 "" -800x600 "" 640x480 "" +800x600 "" +1024x768 "" +1280x720 "" ' # get resolution @@ -229,7 +237,7 @@ cat > /usr/local/share/X11/xorg.conf.d/99-resolution.conf <<'EOF' Section "Screen" Identifier "Screen0" SubSection "Display" - Modes "800x600" + Modes "1024x768" EndSubSection EndSection EOF diff --git a/packer/tinycore-linux/scripts/post_setup.sh b/packer/tinycore-linux/scripts/post_setup.sh index 4088f63..a9f78f1 100644 --- a/packer/tinycore-linux/scripts/post_setup.sh +++ b/packer/tinycore-linux/scripts/post_setup.sh @@ -3,7 +3,7 @@ set -x # base system modifications sudo sed -i -e '/^\/opt\/bootlocal/ i' /opt/bootsync.sh -echo -e "\nusername 'gns3', password 'gns3'\nRun filetool.sh -b if you want to save your changes" >> /etc/issue +sudo sh -c 'echo -e "\nusername '"'"'gns3'"'"', password '"'"'gns3'"'"'\nRun filetool.sh -b if you want to save your changes" >> /etc/issue' echo 'etc/issue' >> /opt/.filetool.lst echo 'etc/shadow' >> /opt/.filetool.lst From 59e54be5f7c4e5b0945eacb3ced3a665e8e62753 Mon Sep 17 00:00:00 2001 From: Bernhard Ehlers Date: Thu, 14 Dec 2017 11:46:23 +0100 Subject: [PATCH 015/169] Update Ostinato to v0.9 --- appliances/ostinato.gns3a | 14 ++++++------- .../tinycore-linux/scripts/ostinato-drone.sh | 10 ++++++++-- packer/tinycore-linux/scripts/ostinato.sh | 20 +++++++++++++++---- 3 files changed, 31 insertions(+), 13 deletions(-) diff --git a/appliances/ostinato.gns3a b/appliances/ostinato.gns3a index 8f1ca32..f65e24f 100644 --- a/appliances/ostinato.gns3a +++ b/appliances/ostinato.gns3a @@ -25,12 +25,12 @@ }, "images": [ { - "filename": "ostinato-0.8-97c7d79.qcow2", - "version": "0.8-97c7d79", - "md5sum": "5aad15c1eb7baac588a4c8c3faafa380", - "filesize": 98631680, + "filename": "ostinato-0.9-1.qcow2", + "version": "0.9", + "md5sum": "00b4856ec9fffbcbcab7a8f757355d69", + "filesize": 101646336, "download_url": "http://www.bernhard-ehlers.de/projects/ostinato4gns3/index.html", - "direct_download_url": "http://www.bernhard-ehlers.de/projects/ostinato4gns3/ostinato-0.8-97c7d79.qcow2" + "direct_download_url": "http://www.bernhard-ehlers.de/projects/ostinato4gns3/ostinato-0.9-1.qcow2" }, { "filename": "ostinato-0.8-1.qcow2", @@ -43,9 +43,9 @@ ], "versions": [ { - "name": "0.8-97c7d79", + "name": "0.9", "images": { - "hda_disk_image": "ostinato-0.8-97c7d79.qcow2" + "hda_disk_image": "ostinato-0.9-1.qcow2" } }, { diff --git a/packer/tinycore-linux/scripts/ostinato-drone.sh b/packer/tinycore-linux/scripts/ostinato-drone.sh index be29c00..63c4724 100644 --- a/packer/tinycore-linux/scripts/ostinato-drone.sh +++ b/packer/tinycore-linux/scripts/ostinato-drone.sh @@ -2,7 +2,7 @@ set -e set -x # git branch, commit or tag -git_commit=97c7d79 +git_commit=v0.9 # setup environment . /etc/profile @@ -28,6 +28,7 @@ tce-load -wi iperf3 # change tcedir to ram disk mv /etc/sysconfig/tcedir /etc/sysconfig/tcedir.hd ln -s /tmp/tce /etc/sysconfig/tcedir +sudo cp -a /usr/local/tce.installed /usr/local/tce.installed.hd # setup compile environment tce-load -wi compiletc @@ -82,6 +83,8 @@ EOF # change tcedir back to hard disk rm -f /etc/sysconfig/tcedir mv /etc/sysconfig/tcedir.hd /etc/sysconfig/tcedir +sudo rm -rf /usr/local/tce.installed +sudo mv /usr/local/tce.installed.hd /usr/local/tce.installed # disable automatic interface configuration with dhcp sudo sed -i -e '/label .*core/,/append / s/\(append .*\)/\1 nodhcp/' /mnt/sda1/boot/extlinux/extlinux.conf @@ -110,9 +113,12 @@ if grep -q -w nodhcp /proc/cmdline; then done fi +# disable ostinato update, makes no sense in this environment +echo -e '# disable ostinato update\n127.0.0.127 update.ostinato.org' >> /etc/hosts + # start ostinato drone sleep 2 -HOME=/home/gns3 drone < /dev/null > /var/log/ostinato-drone.log 2>&1 & +su -c 'drone < /dev/null > /var/log/ostinato-drone.log 2>&1 &' gns3 EOF exit 0 diff --git a/packer/tinycore-linux/scripts/ostinato.sh b/packer/tinycore-linux/scripts/ostinato.sh index 91f0cfe..e951155 100644 --- a/packer/tinycore-linux/scripts/ostinato.sh +++ b/packer/tinycore-linux/scripts/ostinato.sh @@ -2,7 +2,7 @@ set -e set -x # git branch, commit or tag -git_commit=97c7d79 +git_commit=v0.9 # setup environment . /etc/profile @@ -18,6 +18,7 @@ tce-load -wi iperf3 # change tcedir to ram disk mv /etc/sysconfig/tcedir /etc/sysconfig/tcedir.hd ln -s /tmp/tce /etc/sysconfig/tcedir +sudo cp -a /usr/local/tce.installed /usr/local/tce.installed.hd # setup compile environment tce-load -wi compiletc @@ -52,7 +53,7 @@ sudo mkdir -p /tmp/ostinato/usr/local/share/applications cat > ostinato.desktop <<'EOF' [Desktop Entry] Name=Ostinato -Exec=ostinato +Exec=ostinato > /var/log/ostinato.log 2>&1 Type=Application X-FullPathIcon=/usr/local/share/pixmaps/ostinato_logo.png Icon=ostinato_logo.png @@ -94,10 +95,18 @@ EOF # change tcedir back to hard disk rm -f /etc/sysconfig/tcedir mv /etc/sysconfig/tcedir.hd /etc/sysconfig/tcedir +sudo rm -rf /usr/local/tce.installed +sudo mv /usr/local/tce.installed.hd /usr/local/tce.installed # install wireshark tce-load -wi wireshark adwaita-icon-theme +# install dillo (tiny web browser) for reading documentation +tce-load -wi dillo ca-certificates +echo -e '\nexport BROWSER=dillo' >> .ashrc +sudo ln -s /usr/local/etc/ssl /etc/ssl +echo 'etc/ssl' >> /opt/.filetool.lst + # disable automatic interface configuration with dhcp sudo sed -i -e '/label .*core/,/append / s/\(append .*\)/\1 nodhcp/' /mnt/sda1/boot/extlinux/extlinux.conf @@ -125,9 +134,12 @@ if grep -q -w nodhcp /proc/cmdline; then done fi +# disable ostinato update, makes no sense in this environment +echo -e '# disable ostinato update\n127.0.0.127 update.ostinato.org' >> /etc/hosts + # start ostinato drone -sleep 2 -HOME=/home/gns3 drone < /dev/null > /var/log/ostinato-drone.log 2>&1 & +#sleep 2 +#su -c 'drone < /dev/null > /var/log/ostinato-drone.log 2>&1 &' gns3 EOF exit 0 From d9815ebc12c5034a96ccb656915e01d5dd4d55cd Mon Sep 17 00:00:00 2001 From: adosztal Date: Tue, 19 Dec 2017 19:32:26 +0100 Subject: [PATCH 016/169] New Sophos releases --- appliances/sophos-utm.gns3a | 28 ++++++++++++++++++++++++++++ appliances/sophos-xg.gns3a | 21 +++++++++++++++++++++ 2 files changed, 49 insertions(+) diff --git a/appliances/sophos-utm.gns3a b/appliances/sophos-utm.gns3a index 8d9af0a..30584d4 100644 --- a/appliances/sophos-utm.gns3a +++ b/appliances/sophos-utm.gns3a @@ -24,6 +24,13 @@ "kvm": "allow" }, "images": [ + { + "filename": "asg-9.506-2.1.iso", + "version": "9.506-2.1", + "md5sum": "6b4374f8c5ee66ccdf9683f7349f59cb", + "filesize": 1006057472, + "download_url": "https://www.sophos.com/en-us/support/utm-downloads.aspx" + }, { "filename": "asg-9.500-9.1.iso", "version": "9.500-9.1", @@ -31,6 +38,13 @@ "filesize": 981612544, "download_url": "https://www.sophos.com/en-us/support/utm-downloads.aspx" }, + { + "filename": "asg-9.415-1.1.iso", + "version": "9.415-1.1", + "md5sum": "505004bf5a5d5f2234b2056ec7b553d8", + "filesize": 961087488, + "download_url": "https://www.sophos.com/en-us/support/utm-downloads.aspx" + }, { "filename": "asg-9.413-4.1.iso", "version": "9.413-4.1", @@ -125,6 +139,13 @@ } ], "versions": [ + { + "name": "9.506-2.1", + "images": { + "hda_disk_image": "empty30G.qcow2", + "cdrom_image": "asg-9.506-2.1.iso" + } + }, { "name": "9.500-9.1", "images": { @@ -132,6 +153,13 @@ "cdrom_image": "asg-9.500-9.1.iso" } }, + { + "name": "9.415-1.1", + "images": { + "hda_disk_image": "empty30G.qcow2", + "cdrom_image": "asg-9.415-1.1.iso" + } + }, { "name": "9.413-4.1", "images": { diff --git a/appliances/sophos-xg.gns3a b/appliances/sophos-xg.gns3a index 3067490..d190ee4 100644 --- a/appliances/sophos-xg.gns3a +++ b/appliances/sophos-xg.gns3a @@ -23,6 +23,20 @@ "kvm": "require" }, "images": [ + { + "filename": "VI-SFOS_17.0.2_MR-2.KVM-116-PRIMARY.qcow2", + "version": "17.0.2 MR2", + "md5sum": "2555fa6dcdcecad02c9f02dcb1c0c5e5", + "filesize": 324599808, + "download_url": "https://secure2.sophos.com/en-us/products/next-gen-firewall/free-trial.aspx" + }, + { + "filename": "VI-SFOS_17.0.2_MR-2.KVM-116-AUXILARY.qcow2", + "version": "16.05.1 MR1", + "md5sum": "c3ef795423dbfc01771348b0daa75125", + "filesize": 59441152, + "download_url": "https://secure2.sophos.com/en-us/products/next-gen-firewall/free-trial.aspx" + }, { "filename": "VI-SFOS_16.05.4_MR-4.KVM-215-PRIMARY.qcow2", "version": "16.05.4 MR4", @@ -95,6 +109,13 @@ } ], "versions": [ + { + "name": "17.0.2 MR2", + "images": { + "hda_disk_image": "VI-SFOS_17.0.2_MR-2.KVM-116-PRIMARY.qcow2", + "hdb_disk_image": "VI-SFOS_17.0.2_MR-2.KVM-116-AUXILARY.qcow2" + } + }, { "name": "16.05.4 MR4", "images": { From 3b4fed86080704c1e264c0f87cccd27c58b7e927 Mon Sep 17 00:00:00 2001 From: adosztal Date: Tue, 19 Dec 2017 19:44:33 +0100 Subject: [PATCH 017/169] Fixed typos in PR template --- PULL_REQUEST_TEMPLATE.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PULL_REQUEST_TEMPLATE.md b/PULL_REQUEST_TEMPLATE.md index f85f86a..eec299e 100644 --- a/PULL_REQUEST_TEMPLATE.md +++ b/PULL_REQUEST_TEMPLATE.md @@ -3,7 +3,7 @@ Before submitting a pull request, please check the following. --- When updating an **existing** appliance: - [ ] The new version is on top. -- [ ] The filesnames in the "images" section are unique, to avoid appliances / version overwrinting each other. +- [ ] The filenames in the "images" section are unique, to avoid appliances / version overwriting each other. - [ ] If you forked the repo, running check.py doesn't drop any errors for the updated file. --- When creating a **new** appliance: @@ -12,6 +12,6 @@ When creating a **new** appliance: - [ ] GNS3 VM can run it without any tweaks. - [ ] You filled in as much info as possible (checks the schemas and other appliance files for some guidance). - [ ] When adding a container: it builds on Docker Hub and can be pulled. -- [ ] The filesnames in the "images" section are unique (to avoid appliances and/or versions overwriting each other). +- [ ] The filenames in the "images" section are unique (to avoid appliances and/or versions overwriting each other). - [ ] If you forked the repo, running check.py doesn't drop any errors for the new file. - [ ] *Optional: a symbol has been created for the new appliance.* From 753ec843acab3050734017d66e6819b83c34addc Mon Sep 17 00:00:00 2001 From: adosztal Date: Wed, 20 Dec 2017 18:20:44 +0100 Subject: [PATCH 018/169] New VyOS release --- appliances/vyos.gns3a | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/appliances/vyos.gns3a b/appliances/vyos.gns3a index 6a7994a..fc68ded 100644 --- a/appliances/vyos.gns3a +++ b/appliances/vyos.gns3a @@ -31,29 +31,37 @@ "download_url": "http://dev.packages.vyos.net/iso/preview/1.2.0-beta1/", "direct_download_url": "http://dev.packages.vyos.net/iso/preview/1.2.0-beta1/vyos-1.2.0-beta1-amd64.iso" }, + { + "filename": "vyos-1.1.8-amd64.iso", + "version": "1.1.8", + "md5sum": "95a141d4b592b81c803cdf7e9b11d8ea", + "filesize": 241172480, + "download_url": "https://downloads.vyos.io/?dir=release/1.1.8", + "direct_download_url": "https://downloads.vyos.io/release/1.1.8/vyos-1.1.8-amd64.iso" + }, { "filename": "vyos-1.1.7-amd64.iso", "version": "1.1.7", "md5sum": "9a7f745a0b0db0d4f1d9eee2a437fb54", "filesize": 245366784, - "download_url": "http://mirror.vyos.net/iso/release/1.1.7/", - "direct_download_url": "http://mirror.vyos.net/iso/release/1.1.7/vyos-1.1.7-amd64.iso" + "download_url": "https://downloads.vyos.io/?dir=release/1.1.7/", + "direct_download_url": "https://downloads.vyos.io/release/1.1.7/vyos-1.1.7-amd64.iso" }, { "filename": "vyos-1.1.6-amd64.iso", "version": "1.1.6", "md5sum": "3128954d026e567402a924c2424ce2bf", "filesize": 245366784, - "download_url": "http://mirror.vyos.net/iso/release/1.1.6/", - "direct_download_url": "http://mirror.vyos.net/iso/release/1.1.6/vyos-1.1.6-amd64.iso" + "download_url": "hhttps://downloads.vyos.io/?dir=release/1.1.6/", + "direct_download_url": "https://downloads.vyos.io/release/1.1.6/vyos-1.1.6-amd64.iso" }, { "filename": "vyos-1.1.5-amd64.iso", "version": "1.1.5", "md5sum": "193179532011ceaa87ee725bd8f22022", "filesize": 247463936, - "download_url": "http://mirror.vyos.net/iso/release/1.1.5/", - "direct_download_url": "http://mirror.vyos.net/iso/release/1.1.5/vyos-1.1.5-amd64.iso" + "download_url": "https://downloads.vyos.io/?dir=release/1.1.5/", + "direct_download_url": "https://downloads.vyos.io/release/1.1.5/vyos-1.1.5-amd64.iso" }, { "filename": "empty8G.qcow2", From 9da0b9fd983550b16c094097097775c69a8c1330 Mon Sep 17 00:00:00 2001 From: adosztal Date: Sat, 30 Dec 2017 14:42:08 +0100 Subject: [PATCH 019/169] New Fortinet releases --- appliances/fortiadc.gns3a | 14 ++++++++++++++ appliances/fortianalyzer.gns3a | 14 ++++++++++++++ appliances/fortigate.gns3a | 28 ++++++++++++++++++++++++++++ appliances/fortimail.gns3a | 14 ++++++++++++++ appliances/fortimanager.gns3a | 14 ++++++++++++++ 5 files changed, 84 insertions(+) diff --git a/appliances/fortiadc.gns3a b/appliances/fortiadc.gns3a index b2b5004..d8500aa 100644 --- a/appliances/fortiadc.gns3a +++ b/appliances/fortiadc.gns3a @@ -34,6 +34,13 @@ "filesize": 30998528, "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" }, + { + "filename": "FAD_KVM-V400-build0983-FORTINET.out.kvm-boot.qcow2", + "version": "4.8.3", + "md5sum": "d4cfc3b215780b2fb4c9d8f55208e8be", + "filesize": 72876032, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FAD_KVM-V400-build0977-FORTINET.out.kvm-boot.qcow2", "version": "4.8.2", @@ -141,6 +148,13 @@ } ], "versions": [ + { + "name": "4.8.3", + "images": { + "hda_disk_image": "FAD_KVM-V400-build0983-FORTINET.out.kvm-boot.qcow2", + "hdb_disk_image": "FAD_KVM-v400-FORTINET.out.kvm-data.qcow2" + } + }, { "name": "4.8.2", "images": { diff --git a/appliances/fortianalyzer.gns3a b/appliances/fortianalyzer.gns3a index cd44d55..611dc6c 100644 --- a/appliances/fortianalyzer.gns3a +++ b/appliances/fortianalyzer.gns3a @@ -26,6 +26,13 @@ "kvm": "allow" }, "images": [ + { + "filename": "FAZ_VM64_KVM-v5-build1619-FORTINET.out.kvm.qcow2", + "version": "5.6.1", + "md5sum": "1bd94c920f8747de671832ef92e8dfbc", + "filesize": 105705472, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FAZ_VM64_KVM-v5-build1557-FORTINET.out.kvm.qcow2", "version": "5.6.0", @@ -106,6 +113,13 @@ } ], "versions": [ + { + "name": "5.6.1", + "images": { + "hda_disk_image": "FAZ_VM64_KVM-v5-build1619-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty30G.qcow2" + } + }, { "name": "5.6.0", "images": { diff --git a/appliances/fortigate.gns3a b/appliances/fortigate.gns3a index 9378123..9fe4022 100644 --- a/appliances/fortigate.gns3a +++ b/appliances/fortigate.gns3a @@ -110,6 +110,20 @@ "filesize": 35373056, "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" }, + { + "filename": "FGT_VM64_KVM-v5-build0762-FORTINET.out.kvm.qcow2", + "version": "5.2.13", + "md5sum": "78df232e516a863f233de88ffba5bc4b", + "filesize": 38776832, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, + { + "filename": "FGT_VM64_KVM-v5-build0760-FORTINET.out.kvm.qcow2", + "version": "5.2.12", + "md5sum": "2efa0c110abed83b71927145d1e87805", + "filesize": 38363136, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FGT_VM64_KVM-v5-build0754-FORTINET.out.kvm.qcow2", "version": "5.2.11", @@ -246,6 +260,20 @@ "hdb_disk_image": "empty30G.qcow2" } }, + { + "name": "5.2.13", + "images": { + "hda_disk_image": "FGT_VM64_KVM-v5-build0762-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty30G.qcow2" + } + }, + { + "name": "5.2.12", + "images": { + "hda_disk_image": "FGT_VM64_KVM-v5-build0760-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty30G.qcow2" + } + }, { "name": "5.2.11", "images": { diff --git a/appliances/fortimail.gns3a b/appliances/fortimail.gns3a index a8c755d..d52bb26 100644 --- a/appliances/fortimail.gns3a +++ b/appliances/fortimail.gns3a @@ -26,6 +26,13 @@ "kvm": "allow" }, "images": [ + { + "filename": "FML_VMKV-64-v54-build0712-FORTINET.out.kvm.qcow2", + "version": "5.4.3", + "md5sum": "977effe7b885ca5cedec7740a2a637aa", + "filesize": 93454336, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FML_VMKV-64-v54-build0707-FORTINET.out.kvm.qcow2", "version": "5.4.2", @@ -127,6 +134,13 @@ } ], "versions": [ + { + "name": "5.4.3", + "images": { + "hda_disk_image": "FML_VMKV-64-v54-build0712-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty30G.qcow2" + } + }, { "name": "5.4.2", "images": { diff --git a/appliances/fortimanager.gns3a b/appliances/fortimanager.gns3a index f464220..6b80998 100644 --- a/appliances/fortimanager.gns3a +++ b/appliances/fortimanager.gns3a @@ -26,6 +26,13 @@ "kvm": "allow" }, "images": [ + { + "filename": "FMG_VM64_KVM-v5-build1619-FORTINET.out.kvm.qcow2", + "version": "5.6.1", + "md5sum": "8cc553842564d232af295d6a0c784c1f", + "filesize": 106831872, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FMG_VM64_KVM-v5-build1557-FORTINET.out.kvm.qcow2", "version": "5.6.0", @@ -106,6 +113,13 @@ } ], "versions": [ + { + "name": "5.6.1", + "images": { + "hda_disk_image": "FMG_VM64_KVM-v5-build1619-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty30G.qcow2" + } + }, { "name": "5.6.0", "images": { From 8efbc836f5137d1e6410057db61a443c20d95381 Mon Sep 17 00:00:00 2001 From: adosztal Date: Sat, 30 Dec 2017 14:51:03 +0100 Subject: [PATCH 020/169] New releases --- appliances/freenas.gns3a | 18 +++++++++++++++++- appliances/zeroshell.gns3a | 30 ++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/appliances/freenas.gns3a b/appliances/freenas.gns3a index e71c00f..ad1af95 100644 --- a/appliances/freenas.gns3a +++ b/appliances/freenas.gns3a @@ -15,7 +15,7 @@ "qemu": { "adapter_type": "e1000", "adapters": 1, - "ram": 8096, + "ram": 8192, "hda_disk_interface": "ide", "hdb_disk_interface": "ide", "arch": "x86_64", @@ -24,6 +24,14 @@ "kvm": "require" }, "images": [ + { + "filename": "FreeNAS-11.1-RELEASE.iso", + "version": "11.1", + "md5sum": "67bea5816bc889169e5e3054362b2053", + "filesize": 626761728, + "download_url": "http://www.freenas.org/download/", + "direct_download_url": "http://download.freenas.org/11/11.1-RELEASE/x64/FreeNAS-11.1-RELEASE.iso" + }, { "filename": "FreeNAS-11.0-U4.iso", "version": "11.0-U4", @@ -50,6 +58,14 @@ } ], "versions": [ + { + "name": "11.1", + "images": { + "hda_disk_image": "empty30G.qcow2", + "hdb_disk_image": "empty30G.qcow2", + "cdrom_image": "FreeNAS-11.1-RELEASE.iso" + } + }, { "name": "11.0", "images": { diff --git a/appliances/zeroshell.gns3a b/appliances/zeroshell.gns3a index f689636..fd82ef5 100644 --- a/appliances/zeroshell.gns3a +++ b/appliances/zeroshell.gns3a @@ -20,6 +20,24 @@ "kvm": "allow" }, "images": [ + { + "filename": "ZeroShell-3.8.2-X86-USB.img", + "version": "3.8.2", + "md5sum": "bb8c7f24c86eb59e26ce36ff1979ecd4", + "filesize": 1992294400, + "download_url": "http://www.zeroshell.org/download/", + "direct_download_url": "http://www.zeroshell.net/listing/ZeroShell-3.8.2-X86-USB.img.gz", + "compression": "gzip" + }, + { + "filename": "ZeroShell-3.8.1-X86-USB.img", + "version": "3.8.1", + "md5sum": "49256e396d160e88fbc3a3889e172482", + "filesize": 1992294400, + "download_url": "http://www.zeroshell.org/download/", + "direct_download_url": "http://www.zeroshell.net/listing/ZeroShell-3.8.1-X86-USB.img.gz", + "compression": "gzip" + }, { "filename": "ZeroShell-3.8.0-X86-USB.img", "version": "3.8.0", @@ -40,6 +58,18 @@ } ], "versions": [ + { + "name": "3.8.2", + "images": { + "hda_disk_image": "ZeroShell-3.8.2-X86-USB.img" + } + }, + { + "name": "3.8.1", + "images": { + "hda_disk_image": "ZeroShell-3.8.1-X86-USB.img" + } + }, { "name": "3.8.0", "images": { From c0a7004912f6bde74978e0dfe133a37b4b76bff4 Mon Sep 17 00:00:00 2001 From: adosztal Date: Sat, 30 Dec 2017 17:55:53 +0100 Subject: [PATCH 021/169] New releases --- appliances/coreos.gns3a | 15 +++++++++++++++ appliances/cumulus-vx.gns3a | 14 ++++++++++++++ appliances/exos.gns3a | 15 +++++++++++++++ appliances/f5-bigip.gns3a | 14 ++++++++++++++ appliances/f5-bigiq.gns3a | 14 ++++++++++++++ appliances/kali-linux.gns3a | 14 ++++++++++++++ appliances/lede.gns3a | 28 ++++++++++++++++++++++++++++ 7 files changed, 114 insertions(+) diff --git a/appliances/coreos.gns3a b/appliances/coreos.gns3a index d7ca045..0b4467e 100644 --- a/appliances/coreos.gns3a +++ b/appliances/coreos.gns3a @@ -21,6 +21,15 @@ "kvm": "allow" }, "images": [ + { + "filename": "coreos_production_qemu_image.1576.4.0.img", + "version": "1576.4.0", + "md5sum": "7d3c647807afe1f18fd0c76730e612b4", + "filesize": 849739776, + "download_url": "http://stable.release.core-os.net/amd64-usr/1576.4.0/", + "direct_download_url": "http://stable.release.core-os.net/amd64-usr/1576.4.0/coreos_production_qemu_image.img.bz2", + "compression": "bzip2" + }, { "filename": "coreos_production_qemu_image.1520.8.0.img", "version": "1520.8.0", @@ -140,6 +149,12 @@ } ], "versions": [ + { + "name": "1576.4.0", + "images": { + "hda_disk_image": "coreos_production_qemu_image.1576.4.0.img" + } + }, { "name": "1520.8.0", "images": { diff --git a/appliances/cumulus-vx.gns3a b/appliances/cumulus-vx.gns3a index 5f9f9b4..7b8be8b 100644 --- a/appliances/cumulus-vx.gns3a +++ b/appliances/cumulus-vx.gns3a @@ -23,6 +23,14 @@ "kvm": "require" }, "images": [ + { + "filename": "cumulus-linux-3.5.0-vx-amd64.qcow2", + "version": "3.5.0", + "md5sum": "9ad1f352d0603becf4bcc749b77c99dd", + "filesize": 1044250624, + "download_url": "https://cumulusnetworks.com/cumulus-vx/download/", + "direct_download_url": "http://cumulusfiles.s3.amazonaws.com/cumulus-linux-3.5.0-vx-amd64.qcow2" + }, { "filename": "cumulus-linux-3.4.3-vx-amd64.qcow2", "version": "3.4.3", @@ -125,6 +133,12 @@ } ], "versions": [ + { + "name": "3.5.0", + "images": { + "hda_disk_image": "cumulus-linux-3.5.0-vx-amd64.qcow2" + } + }, { "name": "3.4.3", "images": { diff --git a/appliances/exos.gns3a b/appliances/exos.gns3a index 427732e..3f09c66 100644 --- a/appliances/exos.gns3a +++ b/appliances/exos.gns3a @@ -26,6 +26,14 @@ "options": "-smp 2 -cpu core2duo" }, "images": [ + { + "filename": "exosvm-22.4.1.4.iso", + "version": "22.4.1.4", + "md5sum": "2134a511084519a5f8ad00a6f7cd71a9", + "filesize": 49993728, + "download_url": "https://github.com/extremenetworks/Virtual_EXOS", + "direct_download_url": "https://github.com/extremenetworks/Virtual_EXOS/raw/master/vm-22.4.1.4.iso" + }, { "filename": "exosvm-22.2.1.5.iso", "version": "22.2.1.5", @@ -92,6 +100,13 @@ } ], "versions": [ + { + "name": "22.4.1.4", + "images": { + "hda_disk_image": "empty8G.qcow2", + "cdrom_image": "exosvm-22.4.1.4.iso" + } + }, { "name": "22.2.1.5", "images": { diff --git a/appliances/f5-bigip.gns3a b/appliances/f5-bigip.gns3a index a6db2c5..32db9a4 100644 --- a/appliances/f5-bigip.gns3a +++ b/appliances/f5-bigip.gns3a @@ -27,6 +27,13 @@ "options": "-smp 2 -cpu host" }, "images": [ + { + "filename": "BIGIP-13.1.0.1.0.0.8.qcow2", + "version": "13.1.0 HF1", + "md5sum": "70f92192e66a82cb8f47bdae0cb267d8", + "filesize": 4352966656, + "download_url": "https://downloads.f5.com/esd/serveDownload.jsp?path=/big-ip/big-ip_v13.x/13.1.0/english/13.1.0.1_virtual-edition/&sw=BIG-IP&pro=big-ip_v13.x&ver=13.1.0&container=13.1.0.1_Virtual-Edition&file=BIGIP-13.1.0.1.0.0.8.ALL.qcow2.zip" + }, { "filename": "BIGIP-13.0.0.2.0.1671.qcow2", "version": "13.0.0 HF2", @@ -107,6 +114,13 @@ } ], "versions": [ + { + "name": "13.1.0 HF1", + "images": { + "hda_disk_image": "BIGIP-13.1.0.1.0.0.8.qcow2", + "hdb_disk_image": "empty100G.qcow2" + } + }, { "name": "13.0.0 HF2", "images": { diff --git a/appliances/f5-bigiq.gns3a b/appliances/f5-bigiq.gns3a index 1543ca4..97050cf 100644 --- a/appliances/f5-bigiq.gns3a +++ b/appliances/f5-bigiq.gns3a @@ -29,6 +29,13 @@ "options": "-smp 2 -cpu host" }, "images": [ + { + "filename": "BIG-IQ-5.4.0.0.0.7437.qcow2", + "version": "5.4.0", + "md5sum": "068b1f4d21048b9b2a082c0c27ef4d53", + "filesize": 3300917248, + "download_url": "https://downloads.f5.com/esd/serveDownload.jsp?path=/big-iq/big-iq_cm/5.4.0/english/v5.4.0/&sw=BIG-IQ&pro=big-iq_CM&ver=5.4.0&container=v5.4.0&file=BIG-IQ-5.4.0.0.0.7437.qcow2.zip" + }, { "filename": "BIG-IQ-5.3.0.0.0.1119.qcow2", "version": "5.3.0", @@ -74,6 +81,13 @@ } ], "versions": [ + { + "name": "5.4.0", + "images": { + "hda_disk_image": "BIG-IQ-5.4.0.0.0.7437.qcow2", + "hdb_disk_image": "empty100G.qcow2" + } + }, { "name": "5.3.0", "images": { diff --git a/appliances/kali-linux.gns3a b/appliances/kali-linux.gns3a index 4294010..78732d0 100644 --- a/appliances/kali-linux.gns3a +++ b/appliances/kali-linux.gns3a @@ -20,6 +20,14 @@ "kvm": "require" }, "images": [ + { + "filename": "kali-linux-2017.3-amd64.iso", + "version": "2017.3", + "md5sum": "b465580c897e94675ac1daf031fa66b9", + "filesize": 2886402048, + "download_url": "http://cdimage.kali.org/kali-2017.3/", + "direct_download_url": "http://cdimage.kali.org/kali-2017.3/kali-linux-2017.3-amd64.iso" + }, { "filename": "kali-linux-2017.2-amd64.iso", "version": "2017.2", @@ -62,6 +70,12 @@ } ], "versions": [ + { + "name": "2017.3", + "images": { + "cdrom_image": "kali-linux-2017.3-amd64.iso" + } + }, { "name": "2017.2", "images": { diff --git a/appliances/lede.gns3a b/appliances/lede.gns3a index 63c024e..74c388a 100644 --- a/appliances/lede.gns3a +++ b/appliances/lede.gns3a @@ -21,6 +21,22 @@ "kvm": "allow" }, "images": [ + { + "filename": "lede-17.01.4-x86-generic-combined-squashfs.img", + "version": "17.01.4", + "md5sum": "ae5d8d3fcab109565fe337d28e51c4b4", + "filesize": 19779546, + "download_url": "https://downloads.lede-project.org/releases/17.01.4/targets/x86/generic/", + "direct_download_url": "https://downloads.lede-project.org/releases/17.01.4/targets/x86/generic/lede-17.01.4-x86-generic-combined-squashfs.img" + }, + { + "filename": "lede-17.01.3-x86-generic-combined-squashfs.img", + "version": "17.01.3", + "md5sum": "d315fc638160a9aec0966d58828bfccf", + "filesize": 19775618, + "download_url": "https://downloads.lede-project.org/releases/17.01.3/targets/x86/generic/", + "direct_download_url": "https://downloads.lede-project.org/releases/17.01.3/targets/x86/generic/lede-17.01.3-x86-generic-combined-squashfs.img" + }, { "filename": "lede-17.01.2-x86-generic-combined-squashfs.img", "version": "17.01.2", @@ -47,6 +63,18 @@ } ], "versions": [ + { + "name": "lede 17.01.4", + "images": { + "hda_disk_image": "lede-17.01.4-x86-generic-combined-squashfs.img" + } + }, + { + "name": "lede 17.01.3", + "images": { + "hda_disk_image": "lede-17.01.3-x86-generic-combined-squashfs.img" + } + }, { "name": "lede 17.01.2", "images": { From babed6657795baacb8bfb78a767fc2a515987d49 Mon Sep 17 00:00:00 2001 From: adosztal Date: Sun, 31 Dec 2017 16:00:44 +0100 Subject: [PATCH 022/169] New vSRX releases --- PULL_REQUEST_TEMPLATE.md | 1 + appliances/juniper-vsrx.gns3a | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/PULL_REQUEST_TEMPLATE.md b/PULL_REQUEST_TEMPLATE.md index eec299e..ab534c0 100644 --- a/PULL_REQUEST_TEMPLATE.md +++ b/PULL_REQUEST_TEMPLATE.md @@ -10,6 +10,7 @@ When creating a **new** appliance: - It's tested locally, i.e. - [ ] You dragged an instance into a project on your box, got it installed (if necessary), and did some basic network checks (ping, UI reachable, etc.). - [ ] GNS3 VM can run it without any tweaks. + - [ ] The device is in the right category: router, switch, guest (hosts), firewall - [ ] You filled in as much info as possible (checks the schemas and other appliance files for some guidance). - [ ] When adding a container: it builds on Docker Hub and can be pulled. - [ ] The filenames in the "images" section are unique (to avoid appliances and/or versions overwriting each other). diff --git a/appliances/juniper-vsrx.gns3a b/appliances/juniper-vsrx.gns3a index 7f2ad9d..002b9bd 100644 --- a/appliances/juniper-vsrx.gns3a +++ b/appliances/juniper-vsrx.gns3a @@ -23,6 +23,13 @@ "options": "-smp 2" }, "images": [ + { + "filename": "media-vsrx-vmdisk-17.4R1.16.qcow2", + "version": "17.4R1", + "md5sum": "616c4742b09652318c73a7cc598468e7", + "filesize": 3965386752, + "download_url": "https://www.juniper.net/us/en/dm/free-vsrx-trial/" + }, { "filename": "media-vsrx-vmdisk-17.3R1.10.qcow2", "version": "17.3R1", @@ -30,6 +37,13 @@ "filesize": 3782541312, "download_url": "https://www.juniper.net/us/en/dm/free-vsrx-trial/" }, + { + "filename": "media-vsrx-vmdisk-15.1X49-D120.3.qcow2", + "version": "15.1X49-D120", + "md5sum": "02cf4df3dc988a407ccd5ddc30ee5385", + "filesize": 3280273408, + "download_url": "https://www.juniper.net/us/en/dm/free-vsrx-trial/" + }, { "filename": "media-vsrx-vmdisk-15.1X49-D110.4.qcow2", "version": "15.1X49-D110", @@ -109,12 +123,24 @@ } ], "versions": [ + { + "name": "17.4R1", + "images": { + "hda_disk_image": "media-vsrx-vmdisk-17.4R1.16.qcow2" + } + }, { "name": "17.3R1", "images": { "hda_disk_image": "media-vsrx-vmdisk-17.3R1.10.qcow2" } }, + { + "name": "15.1X49-D120", + "images": { + "hda_disk_image": "media-vsrx-vmdisk-15.1X49-D120.3.qcow2" + } + }, { "name": "15.1X49-D110", "images": { From 0e9f991bb98cdf1f7d765494146e3a1f01d2ca61 Mon Sep 17 00:00:00 2001 From: adosztal Date: Thu, 4 Jan 2018 18:51:12 +0100 Subject: [PATCH 023/169] New Brocade VTM release --- appliances/brocade-vtm.gns3a | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/appliances/brocade-vtm.gns3a b/appliances/brocade-vtm.gns3a index 2bb2b14..71b849a 100644 --- a/appliances/brocade-vtm.gns3a +++ b/appliances/brocade-vtm.gns3a @@ -25,6 +25,13 @@ "kvm": "require" }, "images": [ + { + "filename": "VirtualTrafficManager-174.qcow2", + "version": "17.4", + "md5sum": "3c44f385e5faf310ca8e3d46bf4e0564", + "filesize": 2036465664, + "download_url": "http://www1.brocade.com/forms/jsp/steelapp-traffic-manager-developer/index.jsp?src=WS&lsd=BRCD&lst=English&cn=PA-GDG-16Q1-EVAL-TrafficManagerDeveloper&intcmp=lp_en_vTMdeveloper_eval_bn_00001" + }, { "filename": "VirtualTrafficManager-173.qcow2", "version": "17.3", @@ -76,6 +83,12 @@ } ], "versions": [ + { + "name": "17.4", + "images": { + "hda_disk_image": "VirtualTrafficManager-174.qcow2" + } + }, { "name": "17.3", "images": { From 913f3abbf6ba90b29a7ea9edad7c1e4ac7f95bd1 Mon Sep 17 00:00:00 2001 From: adosztal Date: Fri, 5 Jan 2018 18:34:49 +0100 Subject: [PATCH 024/169] New FortiAuth release --- appliances/fortiauthenticator.gns3a | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/appliances/fortiauthenticator.gns3a b/appliances/fortiauthenticator.gns3a index 204d6df..e9771cb 100644 --- a/appliances/fortiauthenticator.gns3a +++ b/appliances/fortiauthenticator.gns3a @@ -26,6 +26,13 @@ "kvm": "allow" }, "images": [ + { + "filename": "FAC_VM_KVM-v5-build0155-FORTINET.out.kvm.qcow2", + "version": "5.2.0", + "md5sum": "69b55ce7c8094ccd736bbfe8a3262b31", + "filesize": 71782400, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FAC_VM_KVM-v500-build0091-FORTINET.out.kvm.qcow2", "version": "5.1.2", @@ -63,6 +70,13 @@ } ], "versions": [ + { + "name": "5.2.0", + "images": { + "hda_disk_image": "FAC_VM_KVM-v5-build0155-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "FAC_VM_KVM-v500-DATADRIVE.qcow2" + } + }, { "name": "5.1.2", "images": { From 9fdd249e64c2a400caf17710dd071d6bc9c9f8ba Mon Sep 17 00:00:00 2001 From: adosztal Date: Thu, 18 Jan 2018 19:02:34 +0100 Subject: [PATCH 025/169] New FortiSandbox release --- appliances/fortisandbox.gns3a | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/appliances/fortisandbox.gns3a b/appliances/fortisandbox.gns3a index 5382e40..d7d702f 100644 --- a/appliances/fortisandbox.gns3a +++ b/appliances/fortisandbox.gns3a @@ -27,6 +27,13 @@ "options": "-smp 2" }, "images": [ + { + "filename": "FSA_KVM-v200-build0329-FORTINET.out.kvm.qcow2", + "version": "2.5.1", + "md5sum": "782ba56a644d78da59b89f4ac91bd319", + "filesize": 114491904, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FSA_KVM-v200-build0261-FORTINET.out.kvm.qcow2", "version": "2.4.1", @@ -71,6 +78,13 @@ } ], "versions": [ + { + "name": "2.5.1", + "images": { + "hda_disk_image": "FSA_KVM-v200-build0329-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "FSA_v200-datadrive.qcow2" + } + }, { "name": "2.4.1", "images": { From 1dfef033d809149e3b5e4f2df5ebf4038968fe75 Mon Sep 17 00:00:00 2001 From: Dmitry Figol Date: Mon, 1 Jan 2018 03:31:01 +0100 Subject: [PATCH 026/169] Add Cisco CSR 16.6.2, 16.7.1, vIOSL2 15.2 VIRL VMDK, Ubuntu 16.04.03 --- appliances/cisco-csr1000v.gns3a | 23 ++++++++++++++++++----- appliances/cisco-iosvl2.gns3a | 13 +++++++++++++ appliances/ubuntu-gui.gns3a | 13 +++++++++++++ 3 files changed, 44 insertions(+), 5 deletions(-) diff --git a/appliances/cisco-csr1000v.gns3a b/appliances/cisco-csr1000v.gns3a index bf98fc0..9f857bd 100644 --- a/appliances/cisco-csr1000v.gns3a +++ b/appliances/cisco-csr1000v.gns3a @@ -25,23 +25,30 @@ { "filename": "csr1000v-universalk9.16.07.01-serial.qcow2", "version": "16.7.1", - "md5sum": "13adbfc2586d06c9802b9805168c0c44", - "filesize": 882769920, - "download_url": "https://software.cisco.com/download/release.html?mdfid=284364978&flowid=39582&softwareid=282046477&release=Fuji-16.7.1&relind=AVAILABLE&rellifecycle=ED&reltype=latest" + "md5sum": "bad9000d4ae8317bbc99a34a8cdd2eb4", + "filesize": 884539392, + "download_url": "https://software.cisco.com/portal/pub/download/portal/select.html?&mdfid=284364978&flowid=39582&softwareid=282046477" + }, + { + "filename": "csr1000v-universalk9.16.06.02-serial.qcow2", + "version": "16.6.2", + "md5sum": "11e393b31ab9d1ace8e5f7551c491ba2", + "filesize": 1570242560, + "download_url": "https://software.cisco.com/portal/pub/download/portal/select.html?&mdfid=284364978&flowid=39582&softwareid=282046477" }, { "filename": "csr1000v-universalk9.16.06.01-serial.qcow2", "version": "16.6.1", "md5sum": "909e74446d3ff0b82c14327c0058fdc2", "filesize": 1566179328, - "download_url": "https://software.cisco.com/download/release.html?mdfid=284364978&flowid=39582&softwareid=282046477&release=Denali-16.3.5&relind=AVAILABLE&rellifecycle=ED&reltype=latest" + "download_url": "https://software.cisco.com/portal/pub/download/portal/select.html?&mdfid=284364978&flowid=39582&softwareid=282046477" }, { "filename": "csr1000v-universalk9.16.05.02-serial.qcow2", "version": "16.5.2", "md5sum": "59a84da28d59ee75176aa05ecde7f72a", "filesize": 1322385408, - "download_url": "https://software.cisco.com/download/release.html?mdfid=284364978&flowid=39582&softwareid=282046477&release=Denali-16.3.5&relind=AVAILABLE&rellifecycle=ED&reltype=latest" + "download_url": "https://software.cisco.com/portal/pub/download/portal/select.html?&mdfid=284364978&flowid=39582&softwareid=282046477" }, { "filename": "csr1000v-universalk9.16.5.1b-serial.qcow2", @@ -93,6 +100,12 @@ "hda_disk_image": "csr1000v-universalk9.16.07.01-serial.qcow2" } }, + { + "name": "16.6.2", + "images": { + "hda_disk_image": "csr1000v-universalk9.16.06.02-serial.qcow2" + } + }, { "name": "16.6.1", "images": { diff --git a/appliances/cisco-iosvl2.gns3a b/appliances/cisco-iosvl2.gns3a index b7d0dce..a5ef495 100644 --- a/appliances/cisco-iosvl2.gns3a +++ b/appliances/cisco-iosvl2.gns3a @@ -23,6 +23,13 @@ "kvm": "require" }, "images": [ + { + "filename": "vios_l2-adventerprisek9-m.03.2017.vmdk", + "version": "15.2(20170321:233949)", + "md5sum": "3610c56ee8012d148c4b99225dc2d004", + "filesize": 97124352, + "download_url": "https://virl.mediuscorp.com/my-account/" + }, { "filename": "vios_l2-adventerprisek9-m.03.2017.qcow2", "version": "15.2(20170321:233949)", @@ -39,6 +46,12 @@ } ], "versions": [ + { + "name": "15.2(20170321:233949)", + "images": { + "hda_disk_image": "vios_l2-adventerprisek9-m.03.2017.vmdk" + } + }, { "name": "15.2(20170321:233949)", "images": { diff --git a/appliances/ubuntu-gui.gns3a b/appliances/ubuntu-gui.gns3a index 259dbad..0a6c892 100644 --- a/appliances/ubuntu-gui.gns3a +++ b/appliances/ubuntu-gui.gns3a @@ -45,6 +45,13 @@ "md5sum": "45bccf63f2777e492f022dbf025f67d0", "filesize": 4302110720, "download_url": "http://www.osboxes.org/ubuntu/" + }, + { + "filename": "ubuntu-16.04-server-cloudimg-amd64-disk1.img", + "version": "16.04.03", + "md5sum": "7e24f437418013d6600ac9f998a0e617", + "filesize": 290717696, + "download_url": "https://cloud-images.ubuntu.com/" } ], "versions": [ @@ -65,6 +72,12 @@ "images": { "hda_disk_image": "Ubuntu_16.04.3-VM-64bit.vmdk" } + }, + { + "name": "16.04.03", + "images": { + "hda_disk_image": "ubuntu-16.04-server-cloudimg-amd64-disk1.img" + } } ] } From b0ec8b8da8a9af3355ef8a67f24370f8e554ec3a Mon Sep 17 00:00:00 2001 From: Dmitry Figol Date: Fri, 19 Jan 2018 13:19:54 +0100 Subject: [PATCH 027/169] Remove vIOS L2 VMDK --- appliances/cisco-iosvl2.gns3a | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/appliances/cisco-iosvl2.gns3a b/appliances/cisco-iosvl2.gns3a index a5ef495..b7d0dce 100644 --- a/appliances/cisco-iosvl2.gns3a +++ b/appliances/cisco-iosvl2.gns3a @@ -23,13 +23,6 @@ "kvm": "require" }, "images": [ - { - "filename": "vios_l2-adventerprisek9-m.03.2017.vmdk", - "version": "15.2(20170321:233949)", - "md5sum": "3610c56ee8012d148c4b99225dc2d004", - "filesize": 97124352, - "download_url": "https://virl.mediuscorp.com/my-account/" - }, { "filename": "vios_l2-adventerprisek9-m.03.2017.qcow2", "version": "15.2(20170321:233949)", @@ -46,12 +39,6 @@ } ], "versions": [ - { - "name": "15.2(20170321:233949)", - "images": { - "hda_disk_image": "vios_l2-adventerprisek9-m.03.2017.vmdk" - } - }, { "name": "15.2(20170321:233949)", "images": { From 6befe84a0f204027df26c099f6f561e3798374f5 Mon Sep 17 00:00:00 2001 From: Dmitry Figol Date: Mon, 1 Jan 2018 03:31:01 +0100 Subject: [PATCH 028/169] Add Cisco CSR 16.6.2, 16.7.1, vIOSL2 15.2 VIRL VMDK, Ubuntu 16.04.03 --- appliances/cisco-csr1000v.gns3a | 23 ++++++++++++++++++----- appliances/cisco-iosvl2.gns3a | 13 +++++++++++++ appliances/ubuntu-gui.gns3a | 13 +++++++++++++ 3 files changed, 44 insertions(+), 5 deletions(-) diff --git a/appliances/cisco-csr1000v.gns3a b/appliances/cisco-csr1000v.gns3a index bf98fc0..9f857bd 100644 --- a/appliances/cisco-csr1000v.gns3a +++ b/appliances/cisco-csr1000v.gns3a @@ -25,23 +25,30 @@ { "filename": "csr1000v-universalk9.16.07.01-serial.qcow2", "version": "16.7.1", - "md5sum": "13adbfc2586d06c9802b9805168c0c44", - "filesize": 882769920, - "download_url": "https://software.cisco.com/download/release.html?mdfid=284364978&flowid=39582&softwareid=282046477&release=Fuji-16.7.1&relind=AVAILABLE&rellifecycle=ED&reltype=latest" + "md5sum": "bad9000d4ae8317bbc99a34a8cdd2eb4", + "filesize": 884539392, + "download_url": "https://software.cisco.com/portal/pub/download/portal/select.html?&mdfid=284364978&flowid=39582&softwareid=282046477" + }, + { + "filename": "csr1000v-universalk9.16.06.02-serial.qcow2", + "version": "16.6.2", + "md5sum": "11e393b31ab9d1ace8e5f7551c491ba2", + "filesize": 1570242560, + "download_url": "https://software.cisco.com/portal/pub/download/portal/select.html?&mdfid=284364978&flowid=39582&softwareid=282046477" }, { "filename": "csr1000v-universalk9.16.06.01-serial.qcow2", "version": "16.6.1", "md5sum": "909e74446d3ff0b82c14327c0058fdc2", "filesize": 1566179328, - "download_url": "https://software.cisco.com/download/release.html?mdfid=284364978&flowid=39582&softwareid=282046477&release=Denali-16.3.5&relind=AVAILABLE&rellifecycle=ED&reltype=latest" + "download_url": "https://software.cisco.com/portal/pub/download/portal/select.html?&mdfid=284364978&flowid=39582&softwareid=282046477" }, { "filename": "csr1000v-universalk9.16.05.02-serial.qcow2", "version": "16.5.2", "md5sum": "59a84da28d59ee75176aa05ecde7f72a", "filesize": 1322385408, - "download_url": "https://software.cisco.com/download/release.html?mdfid=284364978&flowid=39582&softwareid=282046477&release=Denali-16.3.5&relind=AVAILABLE&rellifecycle=ED&reltype=latest" + "download_url": "https://software.cisco.com/portal/pub/download/portal/select.html?&mdfid=284364978&flowid=39582&softwareid=282046477" }, { "filename": "csr1000v-universalk9.16.5.1b-serial.qcow2", @@ -93,6 +100,12 @@ "hda_disk_image": "csr1000v-universalk9.16.07.01-serial.qcow2" } }, + { + "name": "16.6.2", + "images": { + "hda_disk_image": "csr1000v-universalk9.16.06.02-serial.qcow2" + } + }, { "name": "16.6.1", "images": { diff --git a/appliances/cisco-iosvl2.gns3a b/appliances/cisco-iosvl2.gns3a index b7d0dce..a5ef495 100644 --- a/appliances/cisco-iosvl2.gns3a +++ b/appliances/cisco-iosvl2.gns3a @@ -23,6 +23,13 @@ "kvm": "require" }, "images": [ + { + "filename": "vios_l2-adventerprisek9-m.03.2017.vmdk", + "version": "15.2(20170321:233949)", + "md5sum": "3610c56ee8012d148c4b99225dc2d004", + "filesize": 97124352, + "download_url": "https://virl.mediuscorp.com/my-account/" + }, { "filename": "vios_l2-adventerprisek9-m.03.2017.qcow2", "version": "15.2(20170321:233949)", @@ -39,6 +46,12 @@ } ], "versions": [ + { + "name": "15.2(20170321:233949)", + "images": { + "hda_disk_image": "vios_l2-adventerprisek9-m.03.2017.vmdk" + } + }, { "name": "15.2(20170321:233949)", "images": { diff --git a/appliances/ubuntu-gui.gns3a b/appliances/ubuntu-gui.gns3a index 259dbad..0a6c892 100644 --- a/appliances/ubuntu-gui.gns3a +++ b/appliances/ubuntu-gui.gns3a @@ -45,6 +45,13 @@ "md5sum": "45bccf63f2777e492f022dbf025f67d0", "filesize": 4302110720, "download_url": "http://www.osboxes.org/ubuntu/" + }, + { + "filename": "ubuntu-16.04-server-cloudimg-amd64-disk1.img", + "version": "16.04.03", + "md5sum": "7e24f437418013d6600ac9f998a0e617", + "filesize": 290717696, + "download_url": "https://cloud-images.ubuntu.com/" } ], "versions": [ @@ -65,6 +72,12 @@ "images": { "hda_disk_image": "Ubuntu_16.04.3-VM-64bit.vmdk" } + }, + { + "name": "16.04.03", + "images": { + "hda_disk_image": "ubuntu-16.04-server-cloudimg-amd64-disk1.img" + } } ] } From 7610126ce8f575e1efaa297be195028bb622f6d4 Mon Sep 17 00:00:00 2001 From: adosztal Date: Fri, 19 Jan 2018 19:37:26 +0100 Subject: [PATCH 029/169] New Fortinet releases --- appliances/fortiadc.gns3a | 14 ++++++++++++++ appliances/fortigate.gns3a | 14 ++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/appliances/fortiadc.gns3a b/appliances/fortiadc.gns3a index d8500aa..10f4781 100644 --- a/appliances/fortiadc.gns3a +++ b/appliances/fortiadc.gns3a @@ -34,6 +34,13 @@ "filesize": 30998528, "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" }, + { + "filename": "FAD_KVM-V400-build0989-FORTINET.out.kvm-boot.qcow2", + "version": "4.8.4", + "md5sum": "c1926d5979ef24d9d14d3394c0bb832b", + "filesize": 72810496, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FAD_KVM-V400-build0983-FORTINET.out.kvm-boot.qcow2", "version": "4.8.3", @@ -148,6 +155,13 @@ } ], "versions": [ + { + "name": "4.8.4", + "images": { + "hda_disk_image": "FAD_KVM-V400-build0989-FORTINET.out.kvm-boot.qcow2", + "hdb_disk_image": "FAD_KVM-v400-FORTINET.out.kvm-data.qcow2" + } + }, { "name": "4.8.3", "images": { diff --git a/appliances/fortigate.gns3a b/appliances/fortigate.gns3a index 9fe4022..caca6d1 100644 --- a/appliances/fortigate.gns3a +++ b/appliances/fortigate.gns3a @@ -54,6 +54,13 @@ "filesize": 38760448, "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" }, + { + "filename": "FGT_VM64_KVM-v5-build1183-FORTINET.out.kvm.qcow2", + "version": "5.4.8", + "md5sum": "c1eb02996a0919c934785d5f48df9507", + "filesize": 38608896, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FGT_VM64_KVM-v5-build6446-FORTINET.out.kvm.qcow2", "version": "5.4.7", @@ -204,6 +211,13 @@ "hdb_disk_image": "empty30G.qcow2" } }, + { + "name": "5.4.8", + "images": { + "hda_disk_image": "FGT_VM64_KVM-v5-build1183-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty30G.qcow2" + } + }, { "name": "5.4.7", "images": { From f721da86fbf1bb4f31c397cd581b09bbacf7f86d Mon Sep 17 00:00:00 2001 From: adosztal Date: Sat, 20 Jan 2018 04:58:01 +0100 Subject: [PATCH 030/169] Upgraded to Ansible 2.4 --- docker/network_automation/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/network_automation/Dockerfile b/docker/network_automation/Dockerfile index 7764958..42cf8a9 100644 --- a/docker/network_automation/Dockerfile +++ b/docker/network_automation/Dockerfile @@ -4,9 +4,9 @@ FROM ubuntu:xenial RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get -y --no-install-recommends \ install telnet curl openssh-client nano vim-tiny iputils-ping python build-essential \ - libssl-dev libffi-dev python-pip python-setuptools \ + libssl-dev libffi-dev python-pip python3-pip python-setuptools \ python-dev net-tools python3 software-properties-common \ - && apt-add-repository -y ppa:ansible/ansible \ + && apt-add-repository -y ppa:ansible/ansible-2.4 \ && apt-get update && apt-get -y --no-install-recommends install ansible \ && rm -rf /var/lib/apt/lists/* \ && pip install --upgrade pip \ From 76748120c4a50756f36376d94b62467c8ee9e4c1 Mon Sep 17 00:00:00 2001 From: ajnouri Date: Wed, 31 Jan 2018 03:27:37 +0100 Subject: [PATCH 031/169] Add mapping of /usr to package persistence & /scripts for user stuff --- docker/network_automation/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/network_automation/Dockerfile b/docker/network_automation/Dockerfile index 42cf8a9..503194c 100644 --- a/docker/network_automation/Dockerfile +++ b/docker/network_automation/Dockerfile @@ -11,8 +11,8 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get -y --no-install-rec && rm -rf /var/lib/apt/lists/* \ && pip install --upgrade pip \ && pip install cryptography netmiko napalm pyntc \ - && pip install --upgrade paramiko + && pip install --upgrade paramiko && mkdir /scripts -VOLUME [ "/root" ] +VOLUME [ "/root","/usr", "/scripts" ] CMD [ "sh", "-c", "cd; exec bash -i" ] From b3a69266aad38d9996e9e14c796a04cc03e7ead2 Mon Sep 17 00:00:00 2001 From: ajnouri Date: Wed, 31 Jan 2018 03:33:05 +0100 Subject: [PATCH 032/169] Add mapping of /usr for package persistence & /scripts for user stuff --- docker/network_automation_pycharm/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/network_automation_pycharm/Dockerfile b/docker/network_automation_pycharm/Dockerfile index 40b14f8..ebf25b3 100644 --- a/docker/network_automation_pycharm/Dockerfile +++ b/docker/network_automation_pycharm/Dockerfile @@ -53,4 +53,4 @@ ADD pycharm-run /etc/sv/pycharm/run RUN chmod a+x /etc/sv/pycharm/run RUN ln -s /etc/sv/pycharm /etc/service -VOLUME /root /scripts +VOLUME ["/root", "/usr/", "/scripts"] From 4c7f4a147cf4350d57899448a7faf9e2473c47b7 Mon Sep 17 00:00:00 2001 From: grossmj Date: Wed, 31 Jan 2018 18:28:21 +0700 Subject: [PATCH 033/169] Rename Ubuntu (docker) to "Ubuntu Docker Guest" and Ubuntu (Qemu) to "Ubuntu Desktop Guest". --- appliances/{ubuntu.gns3a => ubuntu-docker.gns3a} | 2 +- appliances/ubuntu-gui.gns3a | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename appliances/{ubuntu.gns3a => ubuntu-docker.gns3a} (95%) diff --git a/appliances/ubuntu.gns3a b/appliances/ubuntu-docker.gns3a similarity index 95% rename from appliances/ubuntu.gns3a rename to appliances/ubuntu-docker.gns3a index b64737f..9a9bbc2 100644 --- a/appliances/ubuntu.gns3a +++ b/appliances/ubuntu-docker.gns3a @@ -1,5 +1,5 @@ { - "name": "Ubuntu", + "name": "Ubuntu Docker Guest", "category": "guest", "description": "Ubuntu is a Debian-based Linux operating system, with Unity as its default desktop environment. It is based on free software and named after the Southern African philosophy of ubuntu (literally, \"human-ness\"), which often is translated as \"humanity towards others\" or \"the belief in a universal bond of sharing that connects all humanity\".", "vendor_name": "Canonical", diff --git a/appliances/ubuntu-gui.gns3a b/appliances/ubuntu-gui.gns3a index 259dbad..410abe1 100644 --- a/appliances/ubuntu-gui.gns3a +++ b/appliances/ubuntu-gui.gns3a @@ -1,5 +1,5 @@ { - "name": "Ubuntu", + "name": "Ubuntu Desktop Guest", "category": "guest", "description": "Ubuntu is a full-featured Linux operating system which is based on Debian distribution and freely available with both community and professional support, it comes with Unity as its default desktop environment. There are other flavors of Ubuntu available with other desktops as default like Ubuntu Gnome, Lubuntu, Xubuntu, and so on. A tightly-integrated selection of excellent applications is included, and an incredible variety of add-on software is just a few clicks away. A default installation of Ubuntu contains a wide range of software that includes LibreOffice, Firefox, Empathy, Transmission, etc.", "vendor_name": "Canonical Inc.", From b639630974f03764bbcc720f32f66c61cbfa400f Mon Sep 17 00:00:00 2001 From: grossmj Date: Wed, 31 Jan 2018 18:58:49 +0700 Subject: [PATCH 034/169] Merge changes. --- appliances/cisco-csr1000v.gns3a | 8 ++++---- appliances/cisco-iosvl2.gns3a | 13 ------------- appliances/ubuntu-gui.gns3a | 13 ------------- 3 files changed, 4 insertions(+), 30 deletions(-) diff --git a/appliances/cisco-csr1000v.gns3a b/appliances/cisco-csr1000v.gns3a index 9f857bd..505cbcb 100644 --- a/appliances/cisco-csr1000v.gns3a +++ b/appliances/cisco-csr1000v.gns3a @@ -27,28 +27,28 @@ "version": "16.7.1", "md5sum": "bad9000d4ae8317bbc99a34a8cdd2eb4", "filesize": 884539392, - "download_url": "https://software.cisco.com/portal/pub/download/portal/select.html?&mdfid=284364978&flowid=39582&softwareid=282046477" + "download_url": "https://software.cisco.com/download/release.html?mdfid=284364978&flowid=39582&softwareid=282046477&release=Fuji-16.7.1" }, { "filename": "csr1000v-universalk9.16.06.02-serial.qcow2", "version": "16.6.2", "md5sum": "11e393b31ab9d1ace8e5f7551c491ba2", "filesize": 1570242560, - "download_url": "https://software.cisco.com/portal/pub/download/portal/select.html?&mdfid=284364978&flowid=39582&softwareid=282046477" + "download_url": "https://software.cisco.com/download/release.html?mdfid=284364978&flowid=39582&softwareid=282046477&release=Everest-16.6.2" }, { "filename": "csr1000v-universalk9.16.06.01-serial.qcow2", "version": "16.6.1", "md5sum": "909e74446d3ff0b82c14327c0058fdc2", "filesize": 1566179328, - "download_url": "https://software.cisco.com/portal/pub/download/portal/select.html?&mdfid=284364978&flowid=39582&softwareid=282046477" + "download_url": "https://software.cisco.com/download/release.html?mdfid=284364978&flowid=39582&softwareid=282046477&release=Everest-16.6.1" }, { "filename": "csr1000v-universalk9.16.05.02-serial.qcow2", "version": "16.5.2", "md5sum": "59a84da28d59ee75176aa05ecde7f72a", "filesize": 1322385408, - "download_url": "https://software.cisco.com/portal/pub/download/portal/select.html?&mdfid=284364978&flowid=39582&softwareid=282046477" + "download_url": "https://software.cisco.com/download/release.html?mdfid=284364978&flowid=39582&softwareid=282046477&release=Everest-16.5.2" }, { "filename": "csr1000v-universalk9.16.5.1b-serial.qcow2", diff --git a/appliances/cisco-iosvl2.gns3a b/appliances/cisco-iosvl2.gns3a index a5ef495..b7d0dce 100644 --- a/appliances/cisco-iosvl2.gns3a +++ b/appliances/cisco-iosvl2.gns3a @@ -23,13 +23,6 @@ "kvm": "require" }, "images": [ - { - "filename": "vios_l2-adventerprisek9-m.03.2017.vmdk", - "version": "15.2(20170321:233949)", - "md5sum": "3610c56ee8012d148c4b99225dc2d004", - "filesize": 97124352, - "download_url": "https://virl.mediuscorp.com/my-account/" - }, { "filename": "vios_l2-adventerprisek9-m.03.2017.qcow2", "version": "15.2(20170321:233949)", @@ -46,12 +39,6 @@ } ], "versions": [ - { - "name": "15.2(20170321:233949)", - "images": { - "hda_disk_image": "vios_l2-adventerprisek9-m.03.2017.vmdk" - } - }, { "name": "15.2(20170321:233949)", "images": { diff --git a/appliances/ubuntu-gui.gns3a b/appliances/ubuntu-gui.gns3a index 0c48fde..410abe1 100644 --- a/appliances/ubuntu-gui.gns3a +++ b/appliances/ubuntu-gui.gns3a @@ -45,13 +45,6 @@ "md5sum": "45bccf63f2777e492f022dbf025f67d0", "filesize": 4302110720, "download_url": "http://www.osboxes.org/ubuntu/" - }, - { - "filename": "ubuntu-16.04-server-cloudimg-amd64-disk1.img", - "version": "16.04.03", - "md5sum": "7e24f437418013d6600ac9f998a0e617", - "filesize": 290717696, - "download_url": "https://cloud-images.ubuntu.com/" } ], "versions": [ @@ -72,12 +65,6 @@ "images": { "hda_disk_image": "Ubuntu_16.04.3-VM-64bit.vmdk" } - }, - { - "name": "16.04.03", - "images": { - "hda_disk_image": "ubuntu-16.04-server-cloudimg-amd64-disk1.img" - } } ] } From 220b8e8eb17e2aea6a5633f1bdb1db0d9736daf7 Mon Sep 17 00:00:00 2001 From: grossmj Date: Wed, 31 Jan 2018 19:47:00 +0700 Subject: [PATCH 035/169] Add "availability" field for files with registry versions 4 and 5. --- appliances/centos7.gns3a | 1 + appliances/cisco-fmcv.gns3a | 1 + appliances/cisco-ftdv.gns3a | 1 + appliances/cisco-ngipsv.gns3a | 1 + appliances/opensuse.gns3a | 1 + appliances/windows.gns3a | 1 + appliances/windows_server.gns3a | 1 + 7 files changed, 7 insertions(+) diff --git a/appliances/centos7.gns3a b/appliances/centos7.gns3a index 6761fe7..8c80ac8 100644 --- a/appliances/centos7.gns3a +++ b/appliances/centos7.gns3a @@ -9,6 +9,7 @@ "product_url": "https://www.centos.org/download/", "registry_version": 5, "status": "stable", + "availability": "free", "maintainer": "GNS3 Team", "maintainer_email": "developers@gns3.net", "usage": "Username: osboxes.org\nPassword: osboxes.org", diff --git a/appliances/cisco-fmcv.gns3a b/appliances/cisco-fmcv.gns3a index 9510d6e..4aa9bef 100644 --- a/appliances/cisco-fmcv.gns3a +++ b/appliances/cisco-fmcv.gns3a @@ -9,6 +9,7 @@ "product_url": "http://www.cisco.com/c/en/us/td/docs/security/firepower/quick_start/kvm/fmcv-kvm-qsg.html", "registry_version": 4, "status": "experimental", + "availability": "service-contract", "maintainer": "Community", "maintainer_email":"", "usage": "BE PATIENT\nOn first boot FMCv generates about 6GB of data. This can take 30 minutes or more. Plan on a long wait after the following line in the boot up:\n\n usbcore: registered new interface driver usb-storage\n\nInitial IP address: 192.168.45.45.\n\nDefault username/password: admin/Admin123.", diff --git a/appliances/cisco-ftdv.gns3a b/appliances/cisco-ftdv.gns3a index 617607b..21b806e 100644 --- a/appliances/cisco-ftdv.gns3a +++ b/appliances/cisco-ftdv.gns3a @@ -9,6 +9,7 @@ "product_url": "http://www.cisco.com/c/en/us/td/docs/security/firepower/quick_start/kvm/ftdv-kvm-qsg.html", "registry_version": 4, "status": "experimental", + "availability": "service-contract", "maintainer": "Community", "maintainer_email": "", "usage": "Default username/password: admin/Admin123.", diff --git a/appliances/cisco-ngipsv.gns3a b/appliances/cisco-ngipsv.gns3a index 32679f5..cefe1a8 100644 --- a/appliances/cisco-ngipsv.gns3a +++ b/appliances/cisco-ngipsv.gns3a @@ -9,6 +9,7 @@ "product_url": "http://www.cisco.com/c/en/us/support/security/ngips-virtual-appliance/tsd-products-support-series-home.html", "registry_version": 4, "status": "experimental", + "availability": "service-contract", "maintainer": "Community", "maintainer_email": "", "usage": "Default username/password: admin/Admin123.", diff --git a/appliances/opensuse.gns3a b/appliances/opensuse.gns3a index 508dfbc..6abdd91 100644 --- a/appliances/opensuse.gns3a +++ b/appliances/opensuse.gns3a @@ -9,6 +9,7 @@ "product_url": "https://www.opensuse.org/#Leap", "registry_version": 4, "status": "stable", + "availability": "free", "maintainer": "GNS3 Team", "maintainer_email": "developers@gns3.net", "usage": "Username: osboxes\nPassword: osboxes.org\n\nroot password: osboxes.org", diff --git a/appliances/windows.gns3a b/appliances/windows.gns3a index 289e6c2..fbe4ff2 100644 --- a/appliances/windows.gns3a +++ b/appliances/windows.gns3a @@ -9,6 +9,7 @@ "product_url": "https://www.microsoft.com/en-us/windows", "registry_version": 4, "status": "stable", + "availability": "free-to-try", "maintainer": "GNS3 Team", "maintainer_email": "developers@gns3.net", "usage": "These virtual machines expire after 90 days; i.e. you have to re-create them in your project after this time but you don't have to re-import the appliance.\n\nDefault credentials: IEUser / Passw0rd!", diff --git a/appliances/windows_server.gns3a b/appliances/windows_server.gns3a index e7bfb37..a9c5074 100644 --- a/appliances/windows_server.gns3a +++ b/appliances/windows_server.gns3a @@ -9,6 +9,7 @@ "product_url": "https://www.microsoft.com/en-us/windows", "registry_version": 4, "status": "stable", + "availability": "free-to-try", "maintainer": "GNS3 Team", "maintainer_email": "developers@gns3.net", "symbol": "microsoft.svg", From c1f345a20186bfc9cd2af5b3bb531347e907ad2b Mon Sep 17 00:00:00 2001 From: adosztal Date: Sun, 4 Feb 2018 10:43:45 +0100 Subject: [PATCH 036/169] New releases --- appliances/clearos.gns3a | 14 ++++++++++++++ appliances/coreos.gns3a | 15 +++++++++++++++ appliances/cumulus-vx.gns3a | 14 ++++++++++++++ appliances/f5-bigip.gns3a | 14 ++++++++++++++ appliances/freenas.gns3a | 24 ++++++++++++++++++++---- appliances/ipfire.gns3a | 15 +++++++++++++++ appliances/packetfence-zen.gns3a | 15 +++++++++++++++ appliances/untangle.gns3a | 14 ++++++++++++++ 8 files changed, 121 insertions(+), 4 deletions(-) diff --git a/appliances/clearos.gns3a b/appliances/clearos.gns3a index b0be631..25cd187 100644 --- a/appliances/clearos.gns3a +++ b/appliances/clearos.gns3a @@ -22,6 +22,13 @@ "kvm": "require" }, "images": [ + { + "filename": "ClearOS-7.4-DVD-x86_64.iso", + "version": "7.4", + "md5sum": "826da592f9cd4b59f5fc996ff2d569f1", + "filesize": 1029701632, + "download_url": "https://www.clearos.com/clearfoundation/software/clearos-downloads" + }, { "filename": "ClearOS-7.3-DVD-x86_64.iso", "version": "7.3", @@ -46,6 +53,13 @@ } ], "versions": [ + { + "name": "7.4", + "images": { + "hda_disk_image": "empty30G.qcow2", + "cdrom_image": "ClearOS-7.4-DVD-x86_64.iso" + } + }, { "name": "7.3", "images": { diff --git a/appliances/coreos.gns3a b/appliances/coreos.gns3a index 0b4467e..396ca39 100644 --- a/appliances/coreos.gns3a +++ b/appliances/coreos.gns3a @@ -21,6 +21,15 @@ "kvm": "allow" }, "images": [ + { + "filename": "coreos_production_qemu_image.1632.2.1.img", + "version": "1632.2.1", + "md5sum": "facd05ca85eb87e2dc6aefd6779f6806", + "filesize": 885719040, + "download_url": "http://stable.release.core-os.net/amd64-usr/1632.2.1/", + "direct_download_url": "http://stable.release.core-os.net/amd64-usr/1632.2.1/coreos_production_qemu_image.img.bz2", + "compression": "bzip2" + }, { "filename": "coreos_production_qemu_image.1576.4.0.img", "version": "1576.4.0", @@ -149,6 +158,12 @@ } ], "versions": [ + { + "name": "1632.2.1", + "images": { + "hda_disk_image": "coreos_production_qemu_image.1576.4.0.img" + } + }, { "name": "1576.4.0", "images": { diff --git a/appliances/cumulus-vx.gns3a b/appliances/cumulus-vx.gns3a index 7b8be8b..42a3f9f 100644 --- a/appliances/cumulus-vx.gns3a +++ b/appliances/cumulus-vx.gns3a @@ -23,6 +23,14 @@ "kvm": "require" }, "images": [ + { + "filename": "cumulus-linux-3.5.2-vx-amd64.qcow2", + "version": "3.5.2", + "md5sum": "87d1d8b297e5ebd77924669dfb7e4c9f", + "filesize": 996605952, + "download_url": "https://cumulusnetworks.com/cumulus-vx/download/", + "direct_download_url": "http://cumulusfiles.s3.amazonaws.com/cumulus-linux-3.5.0-vx-amd64.qcow2" + }, { "filename": "cumulus-linux-3.5.0-vx-amd64.qcow2", "version": "3.5.0", @@ -133,6 +141,12 @@ } ], "versions": [ + { + "name": "3.5.2", + "images": { + "hda_disk_image": "cumulus-linux-3.5.2-vx-amd64.qcow2" + } + }, { "name": "3.5.0", "images": { diff --git a/appliances/f5-bigip.gns3a b/appliances/f5-bigip.gns3a index 32db9a4..863e194 100644 --- a/appliances/f5-bigip.gns3a +++ b/appliances/f5-bigip.gns3a @@ -27,6 +27,13 @@ "options": "-smp 2 -cpu host" }, "images": [ + { + "filename": "BIGIP-13.1.0.2.0.0.6.qcow2", + "version": "13.1.0 HF2", + "md5sum": "d29eb861d8906fc36f88d9861a0055f4", + "filesize": 4363649024, + "download_url": "https://downloads.f5.com/esd/serveDownload.jsp?path=/big-ip/big-ip_v13.x/13.1.0/english/13.1.0.2_virtual-edition/&sw=BIG-IP&pro=big-ip_v13.x&ver=13.1.0&container=13.1.0.2_Virtual-Edition&file=BIGIP-13.1.0.2.0.0.6.ALL.qcow2.zip" + }, { "filename": "BIGIP-13.1.0.1.0.0.8.qcow2", "version": "13.1.0 HF1", @@ -114,6 +121,13 @@ } ], "versions": [ + { + "name": "13.1.0 HF2", + "images": { + "hda_disk_image": "BIGIP-13.1.0.2.0.0.6.qcow2", + "hdb_disk_image": "empty100G.qcow2" + } + }, { "name": "13.1.0 HF1", "images": { diff --git a/appliances/freenas.gns3a b/appliances/freenas.gns3a index ad1af95..e92a05e 100644 --- a/appliances/freenas.gns3a +++ b/appliances/freenas.gns3a @@ -24,6 +24,14 @@ "kvm": "require" }, "images": [ + { + "filename": "FreeNAS-11.1-U1.iso", + "version": "11.1 U1", + "md5sum": "ccbd9990a5878d35c6bc0cc6eea34b16", + "filesize": 626601984, + "download_url": "http://www.freenas.org/download/", + "direct_download_url": "http://download.freenas.org/11/11.1-RELEASE/x64/FreeNAS-11.1-RELEASE.iso" + }, { "filename": "FreeNAS-11.1-RELEASE.iso", "version": "11.1", @@ -34,7 +42,7 @@ }, { "filename": "FreeNAS-11.0-U4.iso", - "version": "11.0-U4", + "version": "11.0 U4", "md5sum": "4c210f1a6510d1fa95257d81ef569ff8", "filesize": 567312384, "download_url": "http://www.freenas.org/download/", @@ -42,7 +50,7 @@ }, { "filename": "FreeNAS-9.10.1-U4.iso", - "version": "9.10", + "version": "9.10 U4", "md5sum": "b4fb14513dcbb4eb4c5596c5911ca9cc", "filesize": 533098496, "download_url": "http://www.freenas.org/download/", @@ -58,6 +66,14 @@ } ], "versions": [ + { + "name": "11.1 U1", + "images": { + "hda_disk_image": "empty30G.qcow2", + "hdb_disk_image": "empty30G.qcow2", + "cdrom_image": "FreeNAS-11.1-U1.iso" + } + }, { "name": "11.1", "images": { @@ -67,7 +83,7 @@ } }, { - "name": "11.0", + "name": "11.0 U4", "images": { "hda_disk_image": "empty30G.qcow2", "hdb_disk_image": "empty30G.qcow2", @@ -75,7 +91,7 @@ } }, { - "name": "9.10", + "name": "9.10 U4", "images": { "hda_disk_image": "empty30G.qcow2", "hdb_disk_image": "empty30G.qcow2", diff --git a/appliances/ipfire.gns3a b/appliances/ipfire.gns3a index 656333e..3f671dc 100644 --- a/appliances/ipfire.gns3a +++ b/appliances/ipfire.gns3a @@ -24,6 +24,15 @@ "kvm": "allow" }, "images": [ + { + "filename": "ipfire-2.19.1gb-ext4-scon.x86_64-full-core117.img", + "version": "2.19.117", + "md5sum": "657673d88b94ed7d22332aebe817bc86", + "filesize": 1063256064, + "download_url": "http://www.ipfire.org/download", + "direct_download_url": "https://downloads.ipfire.org/releases/ipfire-2.x/2.19-core117/ipfire-2.19.1gb-ext4-scon.x86_64-full-core117.img.gz", + "compression": "gzip" + }, { "filename": "ipfire-2.19.1gb-ext4-scon.x86_64-full-core116.img", "version": "2.19.116", @@ -53,6 +62,12 @@ } ], "versions": [ + { + "name": "2.19.117", + "images": { + "hda_disk_image": "ipfire-2.19.1gb-ext4-scon.x86_64-full-core117.img" + } + }, { "name": "2.19.116", "images": { diff --git a/appliances/packetfence-zen.gns3a b/appliances/packetfence-zen.gns3a index 7b41fcb..efc6882 100644 --- a/appliances/packetfence-zen.gns3a +++ b/appliances/packetfence-zen.gns3a @@ -22,6 +22,15 @@ "kvm": "require" }, "images": [ + { + "filename": "PacketFenceZEN_USB-7.4.0.img", + "version": "7.4.0", + "md5sum": "83951211540f16dd5813c26955c52429", + "filesize": 3221225472, + "download_url": "https://packetfence.org/download.html#/zen", + "direct_download_url": "https://sourceforge.net/projects/packetfence/files/PacketFence%20ZEN/7.4.0/PacketFenceZEN_USB-7.4.0.tar.bz2/download", + "compression": "bzip2" + }, { "filename": "PacketFenceZEN_USB-7.3.0.img", "version": "7.3.0", @@ -96,6 +105,12 @@ } ], "versions": [ + { + "name": "7.4.0", + "images": { + "hda_disk_image": "PacketFenceZEN_USB-7.4.0.img" + } + }, { "name": "7.3.0", "images": { diff --git a/appliances/untangle.gns3a b/appliances/untangle.gns3a index 3bc88d7..6c26cac 100644 --- a/appliances/untangle.gns3a +++ b/appliances/untangle.gns3a @@ -24,6 +24,13 @@ "kvm": "allow" }, "images": [ + { + "filename": "untangle_1320_x64.iso", + "version": "13.2.0", + "md5sum": "0ce2293acec0f37f1339e703653727f8", + "filesize": 768000000, + "download_url": "https://www.untangle.com/get-untangle/" + }, { "filename": "untangle_1310_x64.iso", "version": "13.1.0", @@ -90,6 +97,13 @@ } ], "versions": [ + { + "name": "13.2.0", + "images": { + "hda_disk_image": "empty30G.qcow2", + "cdrom_image": "untangle_1320_x64.iso" + } + }, { "name": "13.1.0", "images": { From 668779fc53c2a948ea9014fc0ba3f548b569e90f Mon Sep 17 00:00:00 2001 From: adosztal Date: Sun, 4 Feb 2018 15:11:53 +0100 Subject: [PATCH 037/169] New appliance: Juniper Junos Space --- appliances/juniper-junos-space.gns3a | 43 ++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 appliances/juniper-junos-space.gns3a diff --git a/appliances/juniper-junos-space.gns3a b/appliances/juniper-junos-space.gns3a new file mode 100644 index 0000000..6df4722 --- /dev/null +++ b/appliances/juniper-junos-space.gns3a @@ -0,0 +1,43 @@ +{ + "name": "Junos Space", + "category": "guest", + "description": "Junos Space Network Management Platform works with Juniper's management applications to simplify and automate management of Juniper's switching, routing, and security devices. As part of a complete solution, the platform provides broad fault, configuration, accounting, performance, and security management (FCAPS) capability, same day support for new devices and Junos OS releases, a task-specific user interface, and northbound APIs for integration with existing network management systems (NMS) or operations/business support systems (OSS/BSS).\n\nThe platform helps network operators at enterprises and service providers scale operations, reduce complexity, and enable new applications and services to be brought to market quickly, through multilayered network abstractions, operator-centric automation schemes, and a simple point-and-click UI.", + "vendor_name": "Juniper", + "vendor_url": "https://www.juniper.net/us/en/", + "documentation_url": "http://www.juniper.net/techpubs/", + "product_name": "Junos Space", + "product_url": "https://www.juniper.net/us/en/dm/free-vqfx-trial/", + "registry_version": 3, + "status": "stable", + "maintainer": "GNS3 Team", + "maintainer_email": "developers@gns3.net", + "symbol": "juniper-vqfx.svg", + "usage": "16 GB RAM is the bare minimum; you should use 32/64 GB in production deplyments.\nDefault credentials:\n- CLI: admin / abc123\n- WebUI: super / juniper123", + "port_name_format": "em{0}", + "qemu": { + "adapter_type": "e1000", + "adapters": 4, + "ram": 16384, + "arch": "x86_64", + "console_type": "telnet", + "kvm": "require", + "options": "-smp 4 -nographic" + }, + "images": [ + { + "filename": "space-17.2R1.4.qcow2", + "version": "17.2R1.4", + "md5sum": "4124fa756c3a78be0619e876b8ee687e", + "filesize": 5150474240, + "download_url": "https://www.juniper.net/support/downloads/?p=space#sw" + } + ], + "versions": [ + { + "name": "17.2R1.4", + "images": { + "hda_disk_image": "space-17.2R1.4.qcow2" + } + } + ] +} From c669bbd17284dddf45039b85905bbd87aa2c3873 Mon Sep 17 00:00:00 2001 From: cyberpunk2350 Date: Fri, 16 Feb 2018 17:21:38 -0500 Subject: [PATCH 038/169] added full version of windows 10 --- appliances/windows.gns3a | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/appliances/windows.gns3a b/appliances/windows.gns3a index fbe4ff2..320504a 100644 --- a/appliances/windows.gns3a +++ b/appliances/windows.gns3a @@ -9,7 +9,6 @@ "product_url": "https://www.microsoft.com/en-us/windows", "registry_version": 4, "status": "stable", - "availability": "free-to-try", "maintainer": "GNS3 Team", "maintainer_email": "developers@gns3.net", "usage": "These virtual machines expire after 90 days; i.e. you have to re-create them in your project after this time but you don't have to re-import the appliance.\n\nDefault credentials: IEUser / Passw0rd!", @@ -26,6 +25,13 @@ "kvm": "require" }, "images": [ + { + "filename": "MSEdge-Win10-VMWare-disk1.vmdk", + "version": "10 w/ Edge", + "md5sum": "fef74c69e1949480d4e2095324a169af", + "filesize": 5636608512, + "download_url": "https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/" + }, { "filename": "MSEdge_-_Win10_preview.vmdk", "version": "10 w/ Edge", @@ -72,6 +78,12 @@ "versions": [ { "name": "10 w/ Edge", + "images": { + "hda_disk_image": "MSEdge-Win10-VMWare-disk1.vmdk" + } + }, + { + "name": "10 w/ Edge (Preview)", "images": { "hda_disk_image": "MSEdge_-_Win10_preview.vmdk" } @@ -107,4 +119,4 @@ } } ] -} +}  From 2d25b13f3681295428f2b342ba00cd99da60331b Mon Sep 17 00:00:00 2001 From: cyberpunk2350 Date: Fri, 16 Feb 2018 17:24:31 -0500 Subject: [PATCH 039/169] corrected typo in update --- appliances/windows.gns3a | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/appliances/windows.gns3a b/appliances/windows.gns3a index 320504a..1ff88cb 100644 --- a/appliances/windows.gns3a +++ b/appliances/windows.gns3a @@ -8,6 +8,7 @@ "product_name": "Windows", "product_url": "https://www.microsoft.com/en-us/windows", "registry_version": 4, + "availability": "free-to-try", "status": "stable", "maintainer": "GNS3 Team", "maintainer_email": "developers@gns3.net", @@ -119,4 +120,4 @@ } } ] -}  +} From 5535548a45870df9e754853e6fef14de76f1f4cb Mon Sep 17 00:00:00 2001 From: cyberpunk2350 Date: Fri, 16 Feb 2018 17:26:41 -0500 Subject: [PATCH 040/169] clean up --- appliances/windows.gns3a | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appliances/windows.gns3a b/appliances/windows.gns3a index 1ff88cb..ac84dee 100644 --- a/appliances/windows.gns3a +++ b/appliances/windows.gns3a @@ -8,8 +8,8 @@ "product_name": "Windows", "product_url": "https://www.microsoft.com/en-us/windows", "registry_version": 4, - "availability": "free-to-try", "status": "stable", + "availability": "free-to-try", "maintainer": "GNS3 Team", "maintainer_email": "developers@gns3.net", "usage": "These virtual machines expire after 90 days; i.e. you have to re-create them in your project after this time but you don't have to re-import the appliance.\n\nDefault credentials: IEUser / Passw0rd!", From f6eecfee329c0e4f3a0ade08f8d665d33b87294f Mon Sep 17 00:00:00 2001 From: cyberpunk2350 Date: Sat, 17 Feb 2018 21:44:14 -0500 Subject: [PATCH 041/169] add "-usbdevice tablet" to qemu options --- appliances/windows_server.gns3a | 1 + 1 file changed, 1 insertion(+) diff --git a/appliances/windows_server.gns3a b/appliances/windows_server.gns3a index a9c5074..e768524 100644 --- a/appliances/windows_server.gns3a +++ b/appliances/windows_server.gns3a @@ -23,6 +23,7 @@ "console_type": "vnc", "boot_priority": "c", "kvm": "require" + "options": "-usbdevice tablet" }, "images": [ { From 2f6d1898e943dc12e75269478d7a7c1a95576f00 Mon Sep 17 00:00:00 2001 From: cyberpunk2350 Date: Sat, 17 Feb 2018 21:47:44 -0500 Subject: [PATCH 042/169] forgot a comma --- appliances/windows_server.gns3a | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appliances/windows_server.gns3a b/appliances/windows_server.gns3a index e768524..a84c06d 100644 --- a/appliances/windows_server.gns3a +++ b/appliances/windows_server.gns3a @@ -22,7 +22,7 @@ "arch": "x86_64", "console_type": "vnc", "boot_priority": "c", - "kvm": "require" + "kvm": "require", "options": "-usbdevice tablet" }, "images": [ From 9d4f5ec56192b09c6a4c7d5a4105907d94e46d92 Mon Sep 17 00:00:00 2001 From: Nabil BENDAFI Date: Tue, 27 Feb 2018 14:11:43 +0100 Subject: [PATCH 043/169] Remove .gns3a file from root directory --- windows_server.gns3a | 66 -------------------------------------------- 1 file changed, 66 deletions(-) delete mode 100644 windows_server.gns3a diff --git a/windows_server.gns3a b/windows_server.gns3a deleted file mode 100644 index e7bfb37..0000000 --- a/windows_server.gns3a +++ /dev/null @@ -1,66 +0,0 @@ -{ - "name": "Windows Server", - "category": "guest", - "description": "Microsoft Windows, or simply Windows, is a metafamily of graphical operating systems developed, marketed, and sold by Microsoft. It consists of several families of operating systems, each of which cater to a certain sector of the computing industry with the OS typically associated with IBM PC compatible architecture.", - "vendor_name": "Microsoft", - "vendor_url": "http://www.microsoft.com/", - "documentation_url": "https://technet.microsoft.com/en-us/library/cc498727.aspx", - "product_name": "Windows Server", - "product_url": "https://www.microsoft.com/en-us/windows", - "registry_version": 4, - "status": "stable", - "maintainer": "GNS3 Team", - "maintainer_email": "developers@gns3.net", - "symbol": "microsoft.svg", - "port_name_format": "NIC{port1}", - "qemu": { - "adapter_type": "e1000", - "adapters": 1, - "ram": 2048, - "hda_disk_interface": "sata", - "arch": "x86_64", - "console_type": "vnc", - "boot_priority": "c", - "kvm": "require" - }, - "images": [ - { - "filename": "Win2k16_14393.0.161119-1705.RS1_REFRESH_SERVER_EVAL_X64FRE_EN-US.ISO", - "version": "2016", - "md5sum": "70721288bbcdfe3239d8f8c0fae55f1f", - "filesize": 6972221440, - "download_url": "https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-2016" - }, - { - "filename": "Win2k12_9600.16415.amd64fre.winblue_refresh.130928-2229_server_serverdatacentereval_en-us.vhd", - "version": "2012 R2", - "md5sum": "b0a988a2e1f401c99c7c18a00391c4cc", - "filesize": 8024756224, - "download_url": "https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-2012-r2" - }, - { - "filename": "empty100G.qcow2", - "version": "1.0", - "md5sum": "1e6409a4523ada212dea2ebc50e50a65", - "filesize": 198656, - "download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/", - "direct_download_url": "http://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty100G.qcow2/download" - } - - ], - "versions": [ - { - "name": "2016", - "images": { - "hda_disk_image": "empty100G.qcow2", - "cdrom_image": "Win2k16_14393.0.161119-1705.RS1_REFRESH_SERVER_EVAL_X64FRE_EN-US.ISO" - } - }, - { - "name": "2012 R2", - "images": { - "hda_disk_image": "Win2k12_9600.16415.amd64fre.winblue_refresh.130928-2229_server_serverdatacentereval_en-us.vhd" - } - } - ] -} From 92e6bebf9ecf479151444fc9306945eb5b605ec1 Mon Sep 17 00:00:00 2001 From: adosztal Date: Sat, 3 Mar 2018 14:55:31 +0100 Subject: [PATCH 044/169] Minor fixes --- README.rst | 2 +- new_appliance.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.rst b/README.rst index 4aaf522..bd8b274 100644 --- a/README.rst +++ b/README.rst @@ -46,7 +46,7 @@ Check appliance files .. code:: bash - python3 check.py + python check.py python3 check_urls.py You need to install `imagemagick` before running check.py. diff --git a/new_appliance.py b/new_appliance.py index 1dd2df9..c93ac29 100644 --- a/new_appliance.py +++ b/new_appliance.py @@ -85,7 +85,7 @@ def ask_from_schema(schema): return data -with open(os.path.join('schemas', 'appliance.json')) as f: +with open(os.path.join('schemas', 'appliance_v5.json')) as f: schema = json.load(f) From 7bc23db6c0bfb75707f527b316b072b3853c1a70 Mon Sep 17 00:00:00 2001 From: grossmj Date: Fri, 9 Mar 2018 15:10:42 +0700 Subject: [PATCH 045/169] Update Checkpoint Gaia appliance to use 4G of RAM, 2 CPUs and 100GB disk. --- appliances/checkpoint-gaia.gns3a | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/appliances/checkpoint-gaia.gns3a b/appliances/checkpoint-gaia.gns3a index ddf8e58..ad219fe 100644 --- a/appliances/checkpoint-gaia.gns3a +++ b/appliances/checkpoint-gaia.gns3a @@ -14,7 +14,8 @@ "qemu": { "adapter_type": "e1000", "adapters": 8, - "ram": 2048, + "cpus": 2, + "ram": 4096, "arch": "x86_64", "console_type": "telnet", "boot_priority": "dc", @@ -56,21 +57,21 @@ { "name": "80.10", "images": { - "hda_disk_image": "empty8G.qcow2", + "hda_disk_image": "empty100G.qcow2", "cdrom_image": "Check_Point_R80.10_T421_Gaia.iso" } }, { "name": "77.30", "images": { - "hda_disk_image": "empty8G.qcow2", + "hda_disk_image": "empty100G.qcow2", "cdrom_image": "Check_Point_R77.30_T204_Install_and_Upgrade.Gaia.iso" } }, { "name": "77.20", "images": { - "hda_disk_image": "empty8G.qcow2", + "hda_disk_image": "empty100G.qcow2", "cdrom_image": "Check_Point_R77.20_T124_Install.Gaia.iso" } } From 9aea86a1e6a7e3432f276195bea2d92c87cadd07 Mon Sep 17 00:00:00 2001 From: grossmj Date: Fri, 9 Mar 2018 15:38:35 +0700 Subject: [PATCH 046/169] Fix mistakes in Checkpoint Gaia appliance template. --- appliances/checkpoint-gaia.gns3a | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/appliances/checkpoint-gaia.gns3a b/appliances/checkpoint-gaia.gns3a index ad219fe..122e6fc 100644 --- a/appliances/checkpoint-gaia.gns3a +++ b/appliances/checkpoint-gaia.gns3a @@ -6,15 +6,15 @@ "vendor_url": "https://www.checkpoint.com", "documentation_url": "http://downloads.checkpoint.com/dc/download.htm?ID=26770", "product_name": "Gaia", - "registry_version": 3, + "registry_version": 4, "status": "experimental", "maintainer": "GNS3 Team", "maintainer_email": "developers@gns3.net", "usage": "At boot choose the install on disk options. You need to open quickly the terminal after launching the appliance if you want to see the menu. You need a web browser in order to finalize the installation. You can use the firefox appliance for this.", "qemu": { + "cpus": 2, "adapter_type": "e1000", "adapters": 8, - "cpus": 2, "ram": 4096, "arch": "x86_64", "console_type": "telnet", @@ -45,12 +45,12 @@ "download_url": "https://supportcenter.checkpoint.com/supportcenter/portal?eventSubmit_doGoviewsolutiondetails=&solutionid=sk104859" }, { - "filename": "empty8G.qcow2", + "filename": "empty100G.qcow2", "version": "1.0", - "md5sum": "f1d2c25b6990f99bd05b433ab603bdb4", + "md5sum": "1e6409a4523ada212dea2ebc50e50a65", "filesize": 197120, "download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/", - "direct_download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty8G.qcow2/download" + "direct_download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty100G.qcow2/download" } ], "versions": [ From e19ee08c7f70b6721172f7e78b982e07dfdc3ed9 Mon Sep 17 00:00:00 2001 From: adosztal Date: Sat, 10 Mar 2018 14:06:29 +0100 Subject: [PATCH 047/169] Fixed missing VyOS 1.1.8 entry --- appliances/vyos.gns3a | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/appliances/vyos.gns3a b/appliances/vyos.gns3a index fc68ded..7e3cd60 100644 --- a/appliances/vyos.gns3a +++ b/appliances/vyos.gns3a @@ -80,6 +80,13 @@ "cdrom_image": "vyos-1.2.0-beta1-amd64.iso" } }, + { + "name": "1.1.8", + "images": { + "hda_disk_image": "empty8G.qcow2", + "cdrom_image": "vyos-1.1.8-amd64.iso" + } + }, { "name": "1.1.7", "images": { From 39feb43394ce925b520128aa090c93e58c130b97 Mon Sep 17 00:00:00 2001 From: adosztal Date: Sat, 10 Mar 2018 17:37:51 +0100 Subject: [PATCH 048/169] New NX-OSv9k release --- appliances/cisco-nxosv9k.gns3a | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/appliances/cisco-nxosv9k.gns3a b/appliances/cisco-nxosv9k.gns3a index 122f653..653f492 100644 --- a/appliances/cisco-nxosv9k.gns3a +++ b/appliances/cisco-nxosv9k.gns3a @@ -25,6 +25,13 @@ "kvm": "require" }, "images": [ + { + "filename": "nxosv-final.7.0.3.I7.3.qcow2", + "version": "7.0.3.I7.3", + "md5sum": "9d7a20367bf681a239f14097bbce470a", + "filesize": 983629824, + "download_url": "https://software.cisco.com/download/" + }, { "filename": "nxosv-final.7.0.3.I7.2.qcow2", "version": "7.0.3.I7.2", @@ -71,6 +78,13 @@ } ], "versions": [ + { + "name": "7.0.3.I7.3", + "images": { + "bios_image": "OVMF-20160813.fd", + "hda_disk_image": "nxosv-final.7.0.3.I7.3.qcow2" + } + }, { "name": "7.0.3.I7.2", "images": { From 525b493dc7b67bf1183b7a32cd928981dc43cf97 Mon Sep 17 00:00:00 2001 From: adosztal Date: Thu, 15 Mar 2018 19:17:45 +0100 Subject: [PATCH 049/169] SSH support for old IOS versions --- docker/network_automation/Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docker/network_automation/Dockerfile b/docker/network_automation/Dockerfile index 503194c..5d613dd 100644 --- a/docker/network_automation/Dockerfile +++ b/docker/network_automation/Dockerfile @@ -11,7 +11,9 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get -y --no-install-rec && rm -rf /var/lib/apt/lists/* \ && pip install --upgrade pip \ && pip install cryptography netmiko napalm pyntc \ - && pip install --upgrade paramiko && mkdir /scripts + && pip install --upgrade paramiko && mkdir /scripts \ + && echo "KexAlgorithms diffie-hellman-group1-sha1,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1" > /root/.ssh/config \ + && echo "Ciphers 3des-cbc,blowfish-cbc,aes128-cbc,aes128-ctr,aes256-ctr" >> /root/.ssh/config VOLUME [ "/root","/usr", "/scripts" ] CMD [ "sh", "-c", "cd; exec bash -i" ] From 5e470c8b92cb73e77b79ca9a9e9918d13095bd62 Mon Sep 17 00:00:00 2001 From: adosztal Date: Thu, 15 Mar 2018 20:49:52 +0100 Subject: [PATCH 050/169] Fixed missing directory --- docker/network_automation/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/docker/network_automation/Dockerfile b/docker/network_automation/Dockerfile index 5d613dd..ee6eba2 100644 --- a/docker/network_automation/Dockerfile +++ b/docker/network_automation/Dockerfile @@ -12,6 +12,7 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get -y --no-install-rec && pip install --upgrade pip \ && pip install cryptography netmiko napalm pyntc \ && pip install --upgrade paramiko && mkdir /scripts \ + && mkdir /root/.ssh/ && echo "KexAlgorithms diffie-hellman-group1-sha1,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1" > /root/.ssh/config \ && echo "Ciphers 3des-cbc,blowfish-cbc,aes128-cbc,aes128-ctr,aes256-ctr" >> /root/.ssh/config From 0ba20c81b31c79e2a1ec57da976ea0716443ede6 Mon Sep 17 00:00:00 2001 From: adosztal Date: Thu, 15 Mar 2018 20:55:41 +0100 Subject: [PATCH 051/169] Fixed typo --- docker/network_automation/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/network_automation/Dockerfile b/docker/network_automation/Dockerfile index ee6eba2..68c6890 100644 --- a/docker/network_automation/Dockerfile +++ b/docker/network_automation/Dockerfile @@ -12,7 +12,7 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get -y --no-install-rec && pip install --upgrade pip \ && pip install cryptography netmiko napalm pyntc \ && pip install --upgrade paramiko && mkdir /scripts \ - && mkdir /root/.ssh/ + && mkdir /root/.ssh/ \ && echo "KexAlgorithms diffie-hellman-group1-sha1,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1" > /root/.ssh/config \ && echo "Ciphers 3des-cbc,blowfish-cbc,aes128-cbc,aes128-ctr,aes256-ctr" >> /root/.ssh/config From f8b22411d100db296d468208d7cc5fe04ad561d5 Mon Sep 17 00:00:00 2001 From: Andrea Barontini Date: Wed, 21 Mar 2018 21:44:23 +0100 Subject: [PATCH 052/169] Add files via upload --- symbols/arista_bybaro.svg | 24 ++++++++++++ symbols/arista_bybaro.txt | 3 ++ symbols/csr1000v_bybaro.svg | 38 +++++++++++++++++++ symbols/csr1000v_bybaro.txt | 3 ++ symbols/cumulus_bybaro.svg | 27 +++++++++++++ symbols/cumulus_bybaro.txt | 3 ++ symbols/fortigate_bybaro.svg | 42 ++++++++++++++++++++ symbols/fortigate_bybaro.txt | 3 ++ symbols/junos_olive_bybaro.svg | 18 +++++++++ symbols/junos_olive_bybaro.txt | 2 + symbols/openvswitch_bybaro.svg | 26 +++++++++++++ symbols/openvswitch_bybaro.txt | 3 ++ symbols/qemu_guest_win10_bybaro.svg | 56 +++++++++++++++++++++++++++ symbols/qemu_guest_win10_bybaro.txt | 3 ++ symbols/qemu_guest_win7_bybaro.svg | 59 +++++++++++++++++++++++++++++ symbols/qemu_guest_win7_bybaro.txt | 3 ++ symbols/qemu_guest_win8_bybaro.svg | 56 +++++++++++++++++++++++++++ symbols/qemu_guest_win8_bybaro.txt | 3 ++ symbols/vsrx_bybaro.svg | 44 +++++++++++++++++++++ symbols/vsrx_bybaro.txt | 3 ++ 20 files changed, 419 insertions(+) create mode 100644 symbols/arista_bybaro.svg create mode 100644 symbols/arista_bybaro.txt create mode 100644 symbols/csr1000v_bybaro.svg create mode 100644 symbols/csr1000v_bybaro.txt create mode 100644 symbols/cumulus_bybaro.svg create mode 100644 symbols/cumulus_bybaro.txt create mode 100644 symbols/fortigate_bybaro.svg create mode 100644 symbols/fortigate_bybaro.txt create mode 100644 symbols/junos_olive_bybaro.svg create mode 100644 symbols/junos_olive_bybaro.txt create mode 100644 symbols/openvswitch_bybaro.svg create mode 100644 symbols/openvswitch_bybaro.txt create mode 100644 symbols/qemu_guest_win10_bybaro.svg create mode 100644 symbols/qemu_guest_win10_bybaro.txt create mode 100644 symbols/qemu_guest_win7_bybaro.svg create mode 100644 symbols/qemu_guest_win7_bybaro.txt create mode 100644 symbols/qemu_guest_win8_bybaro.svg create mode 100644 symbols/qemu_guest_win8_bybaro.txt create mode 100644 symbols/vsrx_bybaro.svg create mode 100644 symbols/vsrx_bybaro.txt diff --git a/symbols/arista_bybaro.svg b/symbols/arista_bybaro.svg new file mode 100644 index 0000000..681ef61 --- /dev/null +++ b/symbols/arista_bybaro.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/symbols/arista_bybaro.txt b/symbols/arista_bybaro.txt new file mode 100644 index 0000000..bd56d71 --- /dev/null +++ b/symbols/arista_bybaro.txt @@ -0,0 +1,3 @@ +Based on multilayer_switch GNS3 embedded symbol +and Arista's "A". +Editing by Andrea Barontini (baro77@gmail.com) \ No newline at end of file diff --git a/symbols/csr1000v_bybaro.svg b/symbols/csr1000v_bybaro.svg new file mode 100644 index 0000000..2b8359e --- /dev/null +++ b/symbols/csr1000v_bybaro.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/symbols/csr1000v_bybaro.txt b/symbols/csr1000v_bybaro.txt new file mode 100644 index 0000000..b6ed213 --- /dev/null +++ b/symbols/csr1000v_bybaro.txt @@ -0,0 +1,3 @@ +Based on router GNS3 embedded symbol +and Openclipart.org's cloud. +Editing by Andrea Barontini (baro77@gmail.com) \ No newline at end of file diff --git a/symbols/cumulus_bybaro.svg b/symbols/cumulus_bybaro.svg new file mode 100644 index 0000000..0647b39 --- /dev/null +++ b/symbols/cumulus_bybaro.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/symbols/cumulus_bybaro.txt b/symbols/cumulus_bybaro.txt new file mode 100644 index 0000000..908c59b --- /dev/null +++ b/symbols/cumulus_bybaro.txt @@ -0,0 +1,3 @@ +Based on multilayer_switch GNS3 embedded symbol +and Cumulus Linux logo. +Editing by Andrea Barontini (baro77@gmail.com) \ No newline at end of file diff --git a/symbols/fortigate_bybaro.svg b/symbols/fortigate_bybaro.svg new file mode 100644 index 0000000..f6c884e --- /dev/null +++ b/symbols/fortigate_bybaro.svg @@ -0,0 +1,42 @@ + + + ASA + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/symbols/fortigate_bybaro.txt b/symbols/fortigate_bybaro.txt new file mode 100644 index 0000000..150b0fd --- /dev/null +++ b/symbols/fortigate_bybaro.txt @@ -0,0 +1,3 @@ +Based on pan-vm-fw.svg (from gns3-registry) +and fortinet.svg (from gns3-registry). +Editing by Andrea Barontini (baro77@gmail.com) \ No newline at end of file diff --git a/symbols/junos_olive_bybaro.svg b/symbols/junos_olive_bybaro.svg new file mode 100644 index 0000000..ae288e7 --- /dev/null +++ b/symbols/junos_olive_bybaro.svg @@ -0,0 +1,18 @@ + + + + Produced by OmniGraffle 7.4 + 2017-07-08 22:25:20 +0000 + + + + Canvas 1 + + + Layer 1 + + + + + + diff --git a/symbols/junos_olive_bybaro.txt b/symbols/junos_olive_bybaro.txt new file mode 100644 index 0000000..0e26bba --- /dev/null +++ b/symbols/junos_olive_bybaro.txt @@ -0,0 +1,2 @@ +Based on Juniper's Junos Router Icon. +Editing by Andrea Barontini (baro77@gmail.com) \ No newline at end of file diff --git a/symbols/openvswitch_bybaro.svg b/symbols/openvswitch_bybaro.svg new file mode 100644 index 0000000..e75e27a --- /dev/null +++ b/symbols/openvswitch_bybaro.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/symbols/openvswitch_bybaro.txt b/symbols/openvswitch_bybaro.txt new file mode 100644 index 0000000..66a0222 --- /dev/null +++ b/symbols/openvswitch_bybaro.txt @@ -0,0 +1,3 @@ +Based on multilayer_switch GNS3 embedded symbol +and OvS logo's "O". +Editing by Andrea Barontini (baro77@gmail.com) \ No newline at end of file diff --git a/symbols/qemu_guest_win10_bybaro.svg b/symbols/qemu_guest_win10_bybaro.svg new file mode 100644 index 0000000..4bf151c --- /dev/null +++ b/symbols/qemu_guest_win10_bybaro.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/symbols/qemu_guest_win10_bybaro.txt b/symbols/qemu_guest_win10_bybaro.txt new file mode 100644 index 0000000..5941d62 --- /dev/null +++ b/symbols/qemu_guest_win10_bybaro.txt @@ -0,0 +1,3 @@ +Based on qemu_guest GNS3 embedded symbol +and Microsoft Windows 10 logo as shown on Wikipedia. +Editing by Andrea Barontini (baro77@gmail.com) \ No newline at end of file diff --git a/symbols/qemu_guest_win7_bybaro.svg b/symbols/qemu_guest_win7_bybaro.svg new file mode 100644 index 0000000..e365abb --- /dev/null +++ b/symbols/qemu_guest_win7_bybaro.svg @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/symbols/qemu_guest_win7_bybaro.txt b/symbols/qemu_guest_win7_bybaro.txt new file mode 100644 index 0000000..97b1cfb --- /dev/null +++ b/symbols/qemu_guest_win7_bybaro.txt @@ -0,0 +1,3 @@ +Based on qemu_guest GNS3 embedded symbol +and Microsoft Windows 7 logo as shown on Wikipedia. +Editing by Andrea Barontini (baro77@gmail.com) \ No newline at end of file diff --git a/symbols/qemu_guest_win8_bybaro.svg b/symbols/qemu_guest_win8_bybaro.svg new file mode 100644 index 0000000..df2aac0 --- /dev/null +++ b/symbols/qemu_guest_win8_bybaro.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/symbols/qemu_guest_win8_bybaro.txt b/symbols/qemu_guest_win8_bybaro.txt new file mode 100644 index 0000000..2104ac1 --- /dev/null +++ b/symbols/qemu_guest_win8_bybaro.txt @@ -0,0 +1,3 @@ +Based on qemu_guest GNS3 embedded symbol +and Microsoft Windows 8 logo as shown on Wikipedia. +Editing by Andrea Barontini (baro77@gmail.com) \ No newline at end of file diff --git a/symbols/vsrx_bybaro.svg b/symbols/vsrx_bybaro.svg new file mode 100644 index 0000000..f81392f --- /dev/null +++ b/symbols/vsrx_bybaro.svg @@ -0,0 +1,44 @@ + + + ASA + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/symbols/vsrx_bybaro.txt b/symbols/vsrx_bybaro.txt new file mode 100644 index 0000000..f432472 --- /dev/null +++ b/symbols/vsrx_bybaro.txt @@ -0,0 +1,3 @@ +Based on pan-vm-fw.svg (from gns3-registry) +and Juniper's Junos Router Icon. +Editing by Andrea Barontini (baro77@gmail.com) \ No newline at end of file From 960f221f2126134195c70f75ff6858b9304dddde Mon Sep 17 00:00:00 2001 From: Nasir Bilal Date: Sat, 24 Mar 2018 12:26:14 -0400 Subject: [PATCH 053/169] Updated to include 8.0.0 (ESX), 8.1.0 (KVM), and 8.1.0 (ESX). --- appliances/pan-vm-fw.gns3a | 39 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/appliances/pan-vm-fw.gns3a b/appliances/pan-vm-fw.gns3a index 5230cfc..a327800 100644 --- a/appliances/pan-vm-fw.gns3a +++ b/appliances/pan-vm-fw.gns3a @@ -53,6 +53,27 @@ "md5sum": "b6a1ddc8552aff87f05f9c0d4cb54dc3", "filesize": 1987444736, "download_url": "https://support.paloaltonetworks.com/Updates/SoftwareUpdates/" + }, + { + "filename": "PA-VM-ESX-8.0.0-disk1.vmdk", + "version": "8.0.0", + "md5sum": "a505fb1dbcc855ecf98630fd5d329f9a", + "filesize": 2002713088, + "download_url": "https://support.paloaltonetworks.com/Updates/SoftwareUpdates/" + }, + { + "filename": "PA-VM-KVM-8.1.0.qcow2", + "version": "8.1.0", + "md5sum": "459558515b965b2e43fde2842abbae66", + "filesize": 2260467712, + "download_url": "https://support.paloaltonetworks.com/Updates/SoftwareUpdates/" + }, + { + "filename": "PA-VM-ESX-8.1.0-disk1.vmdk", + "version": "8.1.0", + "md5sum": "49af8e8225c2e90414bde0be15eaf421", + "filesize": 2281454080, + "download_url": "https://support.paloaltonetworks.com/Updates/SoftwareUpdates/" } ], @@ -80,6 +101,24 @@ "images": { "hda_disk_image": "PA-VM-KVM-8.0.0.qcow2" } + }, + { + "name": "8.0.0 (ESX)", + "images": { + "hda_disk_image": "PA-VM-ESX-8.0.0-disk1.vmdk2" + } + }, + { + "name": "8.1.0", + "images": { + "hda_disk_image": "PA-VM-KVM-8.1.0.qcow2" + } + }, + { + "name": "8.1.0 (ESX)", + "images": { + "hda_disk_image": "PA-VM-ESX-8.1.0-disk1.vmdk" + } } ] } From 183647febf88a7f62e1277596d2ebc7a06c7088a Mon Sep 17 00:00:00 2001 From: Nasir Bilal Date: Sat, 24 Mar 2018 12:32:16 -0400 Subject: [PATCH 054/169] Reordered so that newest images are on top. --- appliances/pan-vm-fw.gns3a | 121 ++++++++++++++++++------------------- 1 file changed, 60 insertions(+), 61 deletions(-) diff --git a/appliances/pan-vm-fw.gns3a b/appliances/pan-vm-fw.gns3a index a327800..22c6ae6 100644 --- a/appliances/pan-vm-fw.gns3a +++ b/appliances/pan-vm-fw.gns3a @@ -27,31 +27,17 @@ }, "images": [ { - "filename": "PA-VM-ESX-6.1.0-disk1.vmdk", - "version": "6.1.0 (ESX)", - "md5sum": "64b1e81cd54008318235832ea6d71424", - "filesize": 2959736832, + "filename": "PA-VM-ESX-8.1.0-disk1.vmdk", + "version": "8.1.0", + "md5sum": "49af8e8225c2e90414bde0be15eaf421", + "filesize": 2281454080, "download_url": "https://support.paloaltonetworks.com/Updates/SoftwareUpdates/" }, { - "filename": "PA-VM-KVM-7.1.0.qcow2", - "version": "7.1.0", - "md5sum": "da300253709740068927408239c2e321", - "filesize": 1858797568, - "download_url": "https://support.paloaltonetworks.com/Updates/SoftwareUpdates/" - }, - { - "filename": "PA-VM-ESX-7.1.0-disk1.vmdk", - "version": "7.1.0 (ESX)", - "md5sum": "e044dc649b7146ee4f619edb0e5f6675", - "filesize": 1871149056, - "download_url": "https://support.paloaltonetworks.com/Updates/SoftwareUpdates/" - }, - { - "filename": "PA-VM-KVM-8.0.0.qcow2", - "version": "8.0.0", - "md5sum": "b6a1ddc8552aff87f05f9c0d4cb54dc3", - "filesize": 1987444736, + "filename": "PA-VM-KVM-8.1.0.qcow2", + "version": "8.1.0", + "md5sum": "459558515b965b2e43fde2842abbae66", + "filesize": 2260467712, "download_url": "https://support.paloaltonetworks.com/Updates/SoftwareUpdates/" }, { @@ -62,50 +48,39 @@ "download_url": "https://support.paloaltonetworks.com/Updates/SoftwareUpdates/" }, { - "filename": "PA-VM-KVM-8.1.0.qcow2", - "version": "8.1.0", - "md5sum": "459558515b965b2e43fde2842abbae66", - "filesize": 2260467712, + "filename": "PA-VM-KVM-8.0.0.qcow2", + "version": "8.0.0", + "md5sum": "b6a1ddc8552aff87f05f9c0d4cb54dc3", + "filesize": 1987444736, "download_url": "https://support.paloaltonetworks.com/Updates/SoftwareUpdates/" }, { - "filename": "PA-VM-ESX-8.1.0-disk1.vmdk", - "version": "8.1.0", - "md5sum": "49af8e8225c2e90414bde0be15eaf421", - "filesize": 2281454080, + "filename": "PA-VM-ESX-7.1.0-disk1.vmdk", + "version": "7.1.0 (ESX)", + "md5sum": "e044dc649b7146ee4f619edb0e5f6675", + "filesize": 1871149056, "download_url": "https://support.paloaltonetworks.com/Updates/SoftwareUpdates/" - } - + }, + { + "filename": "PA-VM-KVM-7.1.0.qcow2", + "version": "7.1.0", + "md5sum": "da300253709740068927408239c2e321", + "filesize": 1858797568, + "download_url": "https://support.paloaltonetworks.com/Updates/SoftwareUpdates/" + }, + { + "filename": "PA-VM-ESX-6.1.0-disk1.vmdk", + "version": "6.1.0 (ESX)", + "md5sum": "64b1e81cd54008318235832ea6d71424", + "filesize": 2959736832, + "download_url": "https://support.paloaltonetworks.com/Updates/SoftwareUpdates/" + } ], "versions": [ { - "name": "6.1.0 (ESX)", + "name": "8.1.0 (ESX)", "images": { - "hda_disk_image": "PA-VM-ESX-6.1.0-disk1.vmdk" - } - }, - { - "name": "7.1.0", - "images": { - "hda_disk_image": "PA-VM-KVM-7.1.0.qcow2" - } - }, - { - "name": "7.1.0 (ESX)", - "images": { - "hda_disk_image": "PA-VM-ESX-7.1.0-disk1.vmdk" - } - }, - { - "name": "8.0.0", - "images": { - "hda_disk_image": "PA-VM-KVM-8.0.0.qcow2" - } - }, - { - "name": "8.0.0 (ESX)", - "images": { - "hda_disk_image": "PA-VM-ESX-8.0.0-disk1.vmdk2" + "hda_disk_image": "PA-VM-ESX-8.1.0-disk1.vmdk" } }, { @@ -115,10 +90,34 @@ } }, { - "name": "8.1.0 (ESX)", + "name": "8.0.0 (ESX)", "images": { - "hda_disk_image": "PA-VM-ESX-8.1.0-disk1.vmdk" + "hda_disk_image": "PA-VM-ESX-8.0.0-disk1.vmdk2" } - } + }, + { + "name": "8.0.0", + "images": { + "hda_disk_image": "PA-VM-KVM-8.0.0.qcow2" + } + }, + { + "name": "7.1.0 (ESX)", + "images": { + "hda_disk_image": "PA-VM-ESX-7.1.0-disk1.vmdk" + } + }, + { + "name": "7.1.0", + "images": { + "hda_disk_image": "PA-VM-KVM-7.1.0.qcow2" + } + }, + { + "name": "6.1.0 (ESX)", + "images": { + "hda_disk_image": "PA-VM-ESX-6.1.0-disk1.vmdk" + } + } ] } From 912d994d17f8b5cf65c429f193ba88820ba5b5b8 Mon Sep 17 00:00:00 2001 From: adosztal Date: Sun, 25 Mar 2018 08:16:46 +0200 Subject: [PATCH 055/169] Netscaler VPX 12.0 --- appliances/citrix-netscaler-vpx.gns3a | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/appliances/citrix-netscaler-vpx.gns3a b/appliances/citrix-netscaler-vpx.gns3a index 8c62df0..0fcd184 100644 --- a/appliances/citrix-netscaler-vpx.gns3a +++ b/appliances/citrix-netscaler-vpx.gns3a @@ -26,6 +26,13 @@ "options": "-smp 2 -cpu host" }, "images": [ + { + "filename": "NSVPX-KVM-12.0-56.20_nc_32.qcow2", + "version": "12.0-56.20", + "md5sum": "0ea1c23e3b8eb8451037d46ee472cfa6", + "filesize": 739704832, + "download_url": "https://www.citrix.com/lp/try/netscaler-vpx-express.html" + }, { "filename": "NSVPX-KVM-11.1-47.14_nc.raw", "version": "11.1-47.14 F", @@ -42,6 +49,12 @@ } ], "versions": [ + { + "name": "12.0-56.20", + "images": { + "hda_disk_image": "NSVPX-KVM-12.0-56.20_nc_32.qcow2" + } + }, { "name": "11.1-47.14 F", "images": { From e0641da9d5142dc5161a74f14ca6a684aad9e0be Mon Sep 17 00:00:00 2001 From: Jeremy Grossmann Date: Wed, 4 Apr 2018 10:52:45 +0700 Subject: [PATCH 056/169] Fix typo in c7200 appliance --- appliances/cisco-7200.gns3a | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/appliances/cisco-7200.gns3a b/appliances/cisco-7200.gns3a index 538656b..d3db50e 100644 --- a/appliances/cisco-7200.gns3a +++ b/appliances/cisco-7200.gns3a @@ -22,14 +22,14 @@ "images": [ { "filename": "c7200-adventerprisek9-mz.124-24.T5.image", - "version": "124-25.T5", + "version": "124-24.T5", "md5sum": "6b89d0d804e1f2bb5b8bda66b5692047", "filesize": 102345240 } ], "versions": [ { - "name": "124-25.T5", + "name": "124-24.T5", "idlepc": "0x606df838", "images": { "image": "c7200-adventerprisek9-mz.124-24.T5.image" From b3c280e1fd67640a6232a3f8a72e6014f44e7313 Mon Sep 17 00:00:00 2001 From: adosztal Date: Wed, 4 Apr 2018 08:02:50 +0200 Subject: [PATCH 057/169] Fix for #314 --- appliances/juniper-vsrx.gns3a | 1 + 1 file changed, 1 insertion(+) diff --git a/appliances/juniper-vsrx.gns3a b/appliances/juniper-vsrx.gns3a index 002b9bd..dfe2cd0 100644 --- a/appliances/juniper-vsrx.gns3a +++ b/appliances/juniper-vsrx.gns3a @@ -12,6 +12,7 @@ "maintainer": "GNS3 Team", "maintainer_email": "developers@gns3.net", "usage": "Initial username is root, no password.", + "first_port_name": "fxp0", "port_name_format": "ge-0/0/{0}", "qemu": { "adapter_type": "e1000", From 035b8ade3bb86c283493ae82b61f8fec7e3bf890 Mon Sep 17 00:00:00 2001 From: adosztal Date: Thu, 5 Apr 2018 07:21:03 +0200 Subject: [PATCH 058/169] New appliance: Networkers' Toolkit --- appliances/net_toolbox.gns3a | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 appliances/net_toolbox.gns3a diff --git a/appliances/net_toolbox.gns3a b/appliances/net_toolbox.gns3a new file mode 100644 index 0000000..8181fa8 --- /dev/null +++ b/appliances/net_toolbox.gns3a @@ -0,0 +1,19 @@ +{ + "name": "Toolbox", + "category": "guest", + "description": "This appliance contains server side software for secondary management of network devices:\n- www (nginx) \n- ftp (vsftpd)\n- tftp (tftpd)\n- syslog (rsyslog)\n- dhcp (isc-dhcpd)\n- snmp server (snmpd + snmptrapd)", + "vendor_name": "Ubuntu", + "vendor_url": "https://www.ubuntu.com/", + "product_name": "Networkers' toolbox", + "registry_version": 3, + "status": "stable", + "maintainer": "Andras Dosztal", + "maintainer_email": "developers@gns3.net", + "symbol": "linux_guest.svg", + "usage": "Root password: gns3", + "docker": { + "adapters": 1, + "image": "adosztal/net_toolbox:latest", + "console_type": "telnet" + } +} From d24102dfc3048845439a33b0823157de2f46820a Mon Sep 17 00:00:00 2001 From: Christoffer Date: Sun, 15 Apr 2018 01:34:21 +0200 Subject: [PATCH 059/169] chr 6.40.7 and 6.41.4 --- appliances/mikrotik-chr.gns3a | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/appliances/mikrotik-chr.gns3a b/appliances/mikrotik-chr.gns3a index 559b6bd..c57d80e 100644 --- a/appliances/mikrotik-chr.gns3a +++ b/appliances/mikrotik-chr.gns3a @@ -26,6 +26,24 @@ "options": "-nographic" }, "images": [ + { + "filename": "chr-6.41.4.img", + "version": "6.41.4", + "md5sum": "63b555b2b7f0d78b79edb92f7e7d2ed7", + "filesize": 134217728, + "download_url": "http://www.mikrotik.com/download", + "direct_download_url": "https://download2.mikrotik.com/routeros/6.41.4/chr-6.41.4.img.zip", + "compression": "zip" + }, + { + "filename": "chr-6.40.7.img", + "version": "6.40.7", + "md5sum": "424b897d631c4cac4324ca310e81b494", + "filesize": 134217728, + "download_url": "http://www.mikrotik.com/download", + "direct_download_url": "https://download2.mikrotik.com/routeros/6.40.7/chr-6.40.7.img.zip", + "compression": "zip" + }, { "filename": "chr-6.40.5.img", "version": "6.40.5", @@ -235,6 +253,18 @@ } ], "versions": [ + { + "name": "6.41.4", + "images": { + "hda_disk_image": "chr-6.41.4.img" + } + }, + { + "name": "6.40.7", + "images": { + "hda_disk_image": "chr-6.40.7.img" + } + }, { "name": "6.40.5", "images": { From 0632cfe7e95eb2342994814325b1298b3ec3c2f1 Mon Sep 17 00:00:00 2001 From: Andre Sencioles Date: Wed, 18 Apr 2018 15:38:05 +1200 Subject: [PATCH 060/169] Update ubuntu-cloud appliance Update image links to point to a specific relase to avoid md5sum errors. Fix broken link to ubuntu-cloud-init-data.iso. Remove 17.04, no longer supported. --- appliances/ubuntu-cloud.gns3a | 38 +++++++++++------------------------ 1 file changed, 12 insertions(+), 26 deletions(-) diff --git a/appliances/ubuntu-cloud.gns3a b/appliances/ubuntu-cloud.gns3a index e8bb804..d2766b0 100644 --- a/appliances/ubuntu-cloud.gns3a +++ b/appliances/ubuntu-cloud.gns3a @@ -28,37 +28,30 @@ { "filename": "ubuntu-17.10-server-cloudimg-amd64.img", "version": "17.10", - "md5sum": "5d221878d8b2e49c5de7ebb58a2b35e3", - "filesize": 318373888, - "download_url": "https://cloud-images.ubuntu.com/releases/17.10/release/" - }, - { - "filename": "ubuntu-17.04-server-cloudimg-amd64.img", - "version": "17.04", - "md5sum": "d4da8157dbf2e64f2fa1fb5d121398e5", - "filesize": 351993856, - "download_url": "https://cloud-images.ubuntu.com/releases/17.04/release/" + "md5sum": "331b44f2b05858c251b3ea92c8b65152", + "filesize": 320405504, + "download_url": "https://cloud-images.ubuntu.com/releases/17.10/release-20180404/ubuntu-17.10-server-cloudimg-amd64.img" }, { "filename": "ubuntu-16.04-server-cloudimg-amd64-disk1.img", - "version": "16.04.3", - "md5sum": "bd0c168a83b1f483bd240b3d874edd6c", - "filesize": 288686080, - "download_url": "https://cloud-images.ubuntu.com/releases/16.04/release/" + "version": "16.04", + "md5sum": "22c124ba65ea096cdef8b0a197dd613a", + "filesize": 290193408, + "download_url": "https://cloud-images.ubuntu.com/releases/16.04/release-20180405/ubuntu-16.04-server-cloudimg-amd64-disk1.img" }, { "filename": "ubuntu-14.04-server-cloudimg-amd64-disk1.img", - "version": "14.04.5", - "md5sum": "d7b4112c7d797e5e77ef9995d06a76f1", - "filesize": 262406656, - "download_url": "https://cloud-images.ubuntu.com/releases/14.04/release/" + "version": "14.04", + "md5sum": "d11b89321d41d0eeddcacf73bf0d2262", + "filesize": 262668800, + "download_url": "https://cloud-images.ubuntu.com/releases/14.04/release-20180404/ubuntu-14.04-server-cloudimg-amd64-disk1.img" }, { "filename": "ubuntu-cloud-init-data.iso", "version": "1.0", "md5sum": "328469100156ae8dbf262daa319c27ff", "filesize": 131072, - "download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/ubuntu-cloud-init-data.iso/download" + "download_url": "https://github.com/asenci/gns3-ubuntu-cloud-init-data/raw/master/ubuntu-cloud-init-data.iso" } ], "versions": [ @@ -69,13 +62,6 @@ "cdrom_image": "ubuntu-cloud-init-data.iso" } }, - { - "name": "17.04", - "images": { - "hda_disk_image": "ubuntu-17.04-server-cloudimg-amd64.img", - "cdrom_image": "ubuntu-cloud-init-data.iso" - } - }, { "name": "16.04 (LTS)", "images": { From 20c54f7fbbfecc67dfc818cccd90139b105e964c Mon Sep 17 00:00:00 2001 From: Christoffer Date: Wed, 18 Apr 2018 08:59:42 +0200 Subject: [PATCH 061/169] New chr-6.42 version --- appliances/mikrotik-chr.gns3a | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/appliances/mikrotik-chr.gns3a b/appliances/mikrotik-chr.gns3a index c57d80e..f3e3e32 100644 --- a/appliances/mikrotik-chr.gns3a +++ b/appliances/mikrotik-chr.gns3a @@ -26,6 +26,15 @@ "options": "-nographic" }, "images": [ + { + "filename": "chr-6.42.img", + "version": "6.42", + "md5sum": "279bb518497b40f41c8585128916a2fb", + "filesize": 134217728, + "download_url": "http://www.mikrotik.com/download", + "direct_download_url": "https://download2.mikrotik.com/routeros/6.41.4/chr-6.42.img.zip", + "compression": "zip" + }, { "filename": "chr-6.41.4.img", "version": "6.41.4", From 82f53235d8cfa550bceeeb083f6f3e6d84fe163a Mon Sep 17 00:00:00 2001 From: Christoffer Date: Wed, 18 Apr 2018 08:59:42 +0200 Subject: [PATCH 062/169] New chr-6.42 version --- appliances/mikrotik-chr.gns3a | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/appliances/mikrotik-chr.gns3a b/appliances/mikrotik-chr.gns3a index c57d80e..fefae16 100644 --- a/appliances/mikrotik-chr.gns3a +++ b/appliances/mikrotik-chr.gns3a @@ -26,6 +26,15 @@ "options": "-nographic" }, "images": [ + { + "filename": "chr-6.42.img", + "version": "6.42", + "md5sum": "279bb518497b40f41c8585128916a2fb", + "filesize": 134217728, + "download_url": "http://www.mikrotik.com/download", + "direct_download_url": "https://download2.mikrotik.com/routeros/6.42/chr-6.42.img.zip", + "compression": "zip" + }, { "filename": "chr-6.41.4.img", "version": "6.41.4", From 8ff3004e76c1036f013c3840762cf80ed243855b Mon Sep 17 00:00:00 2001 From: Christoffer Date: Fri, 20 Apr 2018 20:21:25 +0200 Subject: [PATCH 063/169] Update opnsense description Added: 18.1.6 Updated: 17.7 to 17.7.5 --- appliances/opnsense.gns3a | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/appliances/opnsense.gns3a b/appliances/opnsense.gns3a index 261cff7..dfb1b9d 100644 --- a/appliances/opnsense.gns3a +++ b/appliances/opnsense.gns3a @@ -25,18 +25,31 @@ }, "images": [ { - "filename": "OPNsense-17.7-OpenSSL-nano-amd64.img", - "version": "17.7", - "md5sum": "14cde5c7a15b2298a242238ad3c3b65a", - "filesize": 3221233664, - "download_url": "https://opnsense.org/download/" + "filename": "OPNsense-18.1.6-OpenSSL-nano-amd64.img", + "version": "18.1.6", + "md5sum": "042f328380ad0c8008759c43435e8843", + "filesize": 272003136, + "download_url": "https://opnsense.c0urier.net/releases/18.1/" + }, + { + "filename": "OPNsense-17.7.5-OpenSSL-nano-amd64.img", + "version": "17.7.5", + "md5sum": "6ec5b7f99cc727f904bbf2aaadcab0b8", + ."filesize": 237038601, + "download_url": "https://opnsense.c0urier.net/releases/17.7/" } ], "versions": [ { - "name": "17.7", + "name": "18.1.6", "images": { - "hda_disk_image": "OPNsense-17.7-OpenSSL-nano-amd64.img" + "hda_disk_image": "OPNsense-18.1.6-OpenSSL-nano-amd64.img" + } + }, + { + "name": "17.7.5", + "images": { + "hda_disk_image": "OPNsense-17.7.5-OpenSSL-nano-amd64.img" } } ] From 38a58cb820186e69eeaed7df84e792cee7b2447b Mon Sep 17 00:00:00 2001 From: adosztal Date: Sun, 22 Apr 2018 08:10:07 +0200 Subject: [PATCH 064/169] Switched Docker Hub repo --- appliances/network_automation.gns3a | 2 +- appliances/python-go-perl-php.gns3a | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/appliances/network_automation.gns3a b/appliances/network_automation.gns3a index 5481604..b0607cf 100644 --- a/appliances/network_automation.gns3a +++ b/appliances/network_automation.gns3a @@ -12,7 +12,7 @@ "symbol": "linux_guest.svg", "docker": { "adapters": 1, - "image": "gns3/network_automation:latest", + "image": "adosztal/network_automation:latest", "console_type": "telnet" } } diff --git a/appliances/python-go-perl-php.gns3a b/appliances/python-go-perl-php.gns3a index 0a31376..0e22988 100644 --- a/appliances/python-go-perl-php.gns3a +++ b/appliances/python-go-perl-php.gns3a @@ -11,6 +11,6 @@ "maintainer_email": "developers@gns3.net", "docker": { "adapters": 1, - "image": "gns3/python-go-perl-php:latest" + "image": "adosztal/python-go-perl-php:latest" } } From 89c91a678cfc33ad73df2a4da0ca93968a71e69d Mon Sep 17 00:00:00 2001 From: Christoffer Date: Sun, 22 Apr 2018 17:45:08 +0200 Subject: [PATCH 065/169] Fix '.' typo in #328 --- appliances/opnsense.gns3a | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appliances/opnsense.gns3a b/appliances/opnsense.gns3a index dfb1b9d..5633d38 100644 --- a/appliances/opnsense.gns3a +++ b/appliances/opnsense.gns3a @@ -35,7 +35,7 @@ "filename": "OPNsense-17.7.5-OpenSSL-nano-amd64.img", "version": "17.7.5", "md5sum": "6ec5b7f99cc727f904bbf2aaadcab0b8", - ."filesize": 237038601, + "filesize": 237038601, "download_url": "https://opnsense.c0urier.net/releases/17.7/" } ], From 0ba473386239bd7ac653d065aac993f984920667 Mon Sep 17 00:00:00 2001 From: Christoffer Date: Mon, 23 Apr 2018 10:19:15 +0200 Subject: [PATCH 066/169] pfsense cleanup Remove pfSense v2.3 - v2.3.4 from list --- appliances/pfsense.gns3a | 65 ---------------------------------------- 1 file changed, 65 deletions(-) diff --git a/appliances/pfsense.gns3a b/appliances/pfsense.gns3a index 38ac6b6..0690d26 100644 --- a/appliances/pfsense.gns3a +++ b/appliances/pfsense.gns3a @@ -29,41 +29,6 @@ "filesize": 1989969408, "download_url": "https://www.pfsense.org/download/mirror.php?section=downloads" }, - { - "filename": "pfSense-CE-2.3.4-RELEASE-2g-amd64-nanobsd.img", - "version": "2.3.4", - "md5sum": "0c9871b54f932be2d550908f7c23b302", - "filesize": 1989969408, - "download_url": "https://www.pfsense.org/download/mirror.php?section=downloads" - }, - { - "filename": "pfSense-CE-2.3.3-RELEASE-2g-amd64-nanobsd.img", - "version": "2.3.3", - "md5sum": "200f073c4f0a4ba6690920079f23d5dd", - "filesize": 1989969408, - "download_url": "https://www.pfsense.org/download/mirror.php?section=downloads" - }, - { - "filename": "pfSense-CE-2.3.2-RELEASE-2g-amd64-nanobsd.img", - "version": "2.3.2", - "md5sum": "c91f2c8e287f4930695e65a6793cb8fe", - "filesize": 1989969408, - "download_url": "https://www.pfsense.org/download/mirror.php?section=downloads" - }, - { - "filename": "pfSense-CE-2.3.1-RELEASE-2g-amd64-nanobsd.img", - "version": "2.3.1", - "md5sum": "719149eed51e03872a8cfd235d958d2e", - "filesize": 1989969408, - "download_url": "https://www.pfsense.org/download/mirror.php?section=downloads" - }, - { - "filename": "pfSense-CE-2.3-RELEASE-2g-amd64-nanobsd.img", - "version": "2.3", - "md5sum": "8ab5047bd4c5bbabf71055fb75177d85", - "filesize": 1989969408, - "download_url": "https://www.pfsense.org/download/mirror.php?section=downloads" - }, { "filename": "pfSense-2.2.6-RELEASE-1g-amd64-nanobsd.img", "version": "2.2.6", @@ -79,36 +44,6 @@ "hda_disk_image": "pfSense-CE-2.3.5-RELEASE-2g-amd64-nanobsd.img" } }, - { - "name": "2.3.4", - "images": { - "hda_disk_image": "pfSense-CE-2.3.4-RELEASE-2g-amd64-nanobsd.img" - } - }, - { - "name": "2.3.3", - "images": { - "hda_disk_image": "pfSense-CE-2.3.3-RELEASE-2g-amd64-nanobsd.img" - } - }, - { - "name": "2.3.2", - "images": { - "hda_disk_image": "pfSense-CE-2.3.2-RELEASE-2g-amd64-nanobsd.img" - } - }, - { - "name": "2.3.1", - "images": { - "hda_disk_image": "pfSense-CE-2.3.1-RELEASE-2g-amd64-nanobsd.img" - } - }, - { - "name": "2.3", - "images": { - "hda_disk_image": "pfSense-CE-2.3-RELEASE-2g-amd64-nanobsd.img" - } - }, { "name": "2.2.6", "images": { From 1a866becda4b8fc0c616893444583ab275425e0f Mon Sep 17 00:00:00 2001 From: Christoffer Date: Mon, 23 Apr 2018 10:28:13 +0200 Subject: [PATCH 067/169] pfSense: Remove v2.2.6 and Add v2.4.3 Removed version 2.2.6 as it is not available for download anymore under the downloads section at https://www.pfsense.org/download/?section=downloads Added new release 2.4.3 meant for installation on standard storage media. As there is (not yet) an available NanoBSD image available for 2.4.3 --- appliances/pfsense.gns3a | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/appliances/pfsense.gns3a b/appliances/pfsense.gns3a index 0690d26..2c52194 100644 --- a/appliances/pfsense.gns3a +++ b/appliances/pfsense.gns3a @@ -22,33 +22,33 @@ "process_priority": "normal" }, "images": [ + { + "filename": "pfSense-CE-memstick-2.4.3-RELEASE-amd64.img", + "version": "2.4.3", + "md5sum": "b754d7e75dece5e756b6539c95714a74", + "filesize": 650392576, + "download_url": "https://www.pfsense.org/download/mirror.php?section=downloads" + }, { "filename": "pfSense-CE-2.3.5-RELEASE-2g-amd64-nanobsd.img", "version": "2.3.5", "md5sum": "b6cb76adba3e1113892f84ea01894228", "filesize": 1989969408, "download_url": "https://www.pfsense.org/download/mirror.php?section=downloads" - }, - { - "filename": "pfSense-2.2.6-RELEASE-1g-amd64-nanobsd.img", - "version": "2.2.6", - "md5sum": "7bbe39c4ec698685c9f9b615926820a9", - "filesize": 997097472, - "download_url": "https://www.pfsense.org/download/mirror.php?section=downloads" } ], "versions": [ + { + "name": "2.4.3", + "images": { + "hda_disk_image": "pfSense-CE-memstick-2.4.3-RELEASE-amd64.img" + } + }, { "name": "2.3.5", "images": { "hda_disk_image": "pfSense-CE-2.3.5-RELEASE-2g-amd64-nanobsd.img" } - }, - { - "name": "2.2.6", - "images": { - "hda_disk_image": "pfSense-2.2.6-RELEASE-1g-amd64-nanobsd.img" - } } ] } From 24c1152471398aea6b85c5be904ca75c884676ae Mon Sep 17 00:00:00 2001 From: adosztal Date: Sun, 29 Apr 2018 20:26:07 +0200 Subject: [PATCH 068/169] New releases --- appliances/cumulus-vx.gns3a | 16 ++++- appliances/f5-bigip.gns3a | 28 +++++++++ appliances/fortiadc.gns3a | 80 +++++++++++++++++++------ appliances/fortianalyzer.gns3a | 28 +++++++++ appliances/fortiauthenticator.gns3a | 28 +++++++++ appliances/forticache.gns3a | 14 +++++ appliances/fortigate.gns3a | 28 +++++++++ appliances/fortimail.gns3a | 42 +++++++++++++ appliances/fortimanager.gns3a | 28 +++++++++ appliances/fortisandbox.gns3a | 14 +++++ appliances/fortisiem-super_worker.gns3a | 29 +++++++++ appliances/fortiweb.gns3a | 51 ++++++++++++++++ appliances/freenas.gns3a | 16 +++++ appliances/ipfire.gns3a | 30 ++++++++++ 14 files changed, 412 insertions(+), 20 deletions(-) diff --git a/appliances/cumulus-vx.gns3a b/appliances/cumulus-vx.gns3a index 42a3f9f..95c5b75 100644 --- a/appliances/cumulus-vx.gns3a +++ b/appliances/cumulus-vx.gns3a @@ -23,13 +23,21 @@ "kvm": "require" }, "images": [ + { + "filename": "cumulus-linux-3.5.3-vx-amd64.qcow2", + "version": "3.5.3", + "md5sum": "4ecbd7341b214fa3c3b27ab11d1df2fb", + "filesize": 1084358656, + "download_url": "https://cumulusnetworks.com/cumulus-vx/download/", + "direct_download_url": "http://cumulusfiles.s3.amazonaws.com/cumulus-linux-3.5.3-vx-amd64.qcow2" + }, { "filename": "cumulus-linux-3.5.2-vx-amd64.qcow2", "version": "3.5.2", "md5sum": "87d1d8b297e5ebd77924669dfb7e4c9f", "filesize": 996605952, "download_url": "https://cumulusnetworks.com/cumulus-vx/download/", - "direct_download_url": "http://cumulusfiles.s3.amazonaws.com/cumulus-linux-3.5.0-vx-amd64.qcow2" + "direct_download_url": "http://cumulusfiles.s3.amazonaws.com/cumulus-linux-3.5.3-vx-amd64.qcow2" }, { "filename": "cumulus-linux-3.5.0-vx-amd64.qcow2", @@ -141,6 +149,12 @@ } ], "versions": [ + { + "name": "3.5.3", + "images": { + "hda_disk_image": "cumulus-linux-3.5.3-vx-amd64.qcow2" + } + }, { "name": "3.5.2", "images": { diff --git a/appliances/f5-bigip.gns3a b/appliances/f5-bigip.gns3a index 863e194..78e3987 100644 --- a/appliances/f5-bigip.gns3a +++ b/appliances/f5-bigip.gns3a @@ -27,6 +27,13 @@ "options": "-smp 2 -cpu host" }, "images": [ + { + "filename": "BIGIP-13.1.0.5-0.0.5.qcow2", + "version": "13.1.0 HF5", + "md5sum": "567b70fe36af0f5364883e97e2c08807", + "filesize": 4402446336, + "download_url": "https://downloads.f5.com/esd/serveDownload.jsp?path=/big-ip/big-ip_v13.x/13.1.0/english/13.1.0.5_virtual-edition/&sw=BIG-IP&pro=big-ip_v13.x&ver=13.1.0&container=13.1.0.5_Virtual-Edition&file=BIGIP-13.1.0.5-0.0.5.ALL.qcow2.zip" + }, { "filename": "BIGIP-13.1.0.2.0.0.6.qcow2", "version": "13.1.0 HF2", @@ -55,6 +62,13 @@ "filesize": 3833135104, "download_url": "https://downloads.f5.com/esd/serveDownload.jsp?path=/big-ip/big-ip_v13.x/13.0.0/english/virtual-edition/&sw=BIG-IP&pro=big-ip_v13.x&ver=13.0.0&container=Virtual-Edition&file=BIGIP-13.0.0.0.0.1645.ALL.qcow2.zip" }, + { + "filename": "BIGIP-12.1.3.4-0.0.2.qcow2", + "version": "12.1.3 HF4", + "md5sum": "b2ec82816480c18af1d45ee833744ee8", + "filesize": 3383164928, + "download_url": "https://downloads.f5.com/esd/serveDownload.jsp?path=/big-ip/big-ip_v12.x/12.1.3/english/12.1.3.4_virtual-edition/&sw=BIG-IP&pro=big-ip_v12.x&ver=12.1.3&container=12.1.3.4_Virtual-Edition&file=BIGIP-12.1.3.4-0.0.2.ALL.qcow2.zip" + }, { "filename": "BIGIP-12.1.2.1.0.271.LTM.qcow2", "version": "12.1.2 HF1", @@ -121,6 +135,13 @@ } ], "versions": [ + { + "name": "13.1.0 HF5", + "images": { + "hda_disk_image": "BIGIP-13.1.0.5-0.0.5.qcow2", + "hdb_disk_image": "empty100G.qcow2" + } + }, { "name": "13.1.0 HF2", "images": { @@ -149,6 +170,13 @@ "hdb_disk_image": "empty100G.qcow2" } }, + { + "name": "12.1.3 HF4", + "images": { + "hda_disk_image": "BIGIP-12.1.3.4-0.0.2.qcow2", + "hdb_disk_image": "empty100G.qcow2" + } + }, { "name": "12.1.2 HF1", "images": { diff --git a/appliances/fortiadc.gns3a b/appliances/fortiadc.gns3a index 10f4781..5a6e7c8 100644 --- a/appliances/fortiadc.gns3a +++ b/appliances/fortiadc.gns3a @@ -28,12 +28,33 @@ }, "images": [ { - "filename": "FAD_KVM-v400-FORTINET.out.kvm-data.qcow2", - "version": "4.x.x", + "filename": "FAD_KVM-FORTINET.out.kvm-data.qcow2", + "version": "ALL", "md5sum": "b7500835594e62d8acb1c6ec43d597c1", "filesize": 30998528, "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" }, + { + "filename": "FAD_KVM-V500-build0056-FORTINET.out.kvm-boot.qcow2", + "version": "5.0.1", + "md5sum": "8b3b789fb540b2c30066f66bcbe7f307", + "filesize": 75038720, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, + { + "filename": "FAD_KVM-V500-build0045-FORTINET.out.kvm-boot.qcow2", + "version": "5.0.0", + "md5sum": "d7381b3fb7a4534370ce8983e441d888", + "filesize": 74383360, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, + { + "filename": "FAD_KVM-V400-build0999-FORTINET.out.kvm-boot.qcow2", + "version": "4.8.5", + "md5sum": "d7825b8d0962800c37ffa814a6b2ad45", + "filesize": 73334784, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FAD_KVM-V400-build0989-FORTINET.out.kvm-boot.qcow2", "version": "4.8.4", @@ -155,123 +176,144 @@ } ], "versions": [ + { + "name": "5.0.1", + "images": { + "hda_disk_image": "FAD_KVM-V400-build0989-FORTINET.out.kvm-boot.qcow2", + "hdb_disk_image": "FAD_KVM-FORTINET.out.kvm-data.qcow2" + } + }, + { + "name": "5.0.0", + "images": { + "hda_disk_image": "FAD_KVM-V400-build0989-FORTINET.out.kvm-boot.qcow2", + "hdb_disk_image": "FAD_KVM-FORTINET.out.kvm-data.qcow2" + } + }, + { + "name": "4.8.5", + "images": { + "hda_disk_image": "FAD_KVM-V400-build0999-FORTINET.out.kvm-boot.qcow2", + "hdb_disk_image": "FAD_KVM-FORTINET.out.kvm-data.qcow2" + } + }, { "name": "4.8.4", "images": { "hda_disk_image": "FAD_KVM-V400-build0989-FORTINET.out.kvm-boot.qcow2", - "hdb_disk_image": "FAD_KVM-v400-FORTINET.out.kvm-data.qcow2" + "hdb_disk_image": "FAD_KVM-FORTINET.out.kvm-data.qcow2" } }, { "name": "4.8.3", "images": { "hda_disk_image": "FAD_KVM-V400-build0983-FORTINET.out.kvm-boot.qcow2", - "hdb_disk_image": "FAD_KVM-v400-FORTINET.out.kvm-data.qcow2" + "hdb_disk_image": "FAD_KVM-FORTINET.out.kvm-data.qcow2" } }, { "name": "4.8.2", "images": { "hda_disk_image": "FAD_KVM-V400-build0977-FORTINET.out.kvm-boot.qcow2", - "hdb_disk_image": "FAD_KVM-v400-FORTINET.out.kvm-data.qcow2" + "hdb_disk_image": "FAD_KVM-FORTINET.out.kvm-data.qcow2" } }, { "name": "4.8.1", "images": { "hda_disk_image": "FAD_KVM-V400-build0970-FORTINET.out.kvm-boot.qcow2", - "hdb_disk_image": "FAD_KVM-v400-FORTINET.out.kvm-data.qcow2" + "hdb_disk_image": "FAD_KVM-FORTINET.out.kvm-data.qcow2" } }, { "name": "4.8.0", "images": { "hda_disk_image": "FAD_KVM-V400-build0937-FORTINET.out.kvm-boot.qcow2", - "hdb_disk_image": "FAD_KVM-v400-FORTINET.out.kvm-data.qcow2" + "hdb_disk_image": "FAD_KVM-FORTINET.out.kvm-data.qcow2" } }, { "name": "4.7.4", "images": { "hda_disk_image": "FAD_KVM-V400-build0858-FORTINET.out.kvm-boot.qcow2", - "hdb_disk_image": "FAD_KVM-v400-FORTINET.out.kvm-data.qcow2" + "hdb_disk_image": "FAD_KVM-FORTINET.out.kvm-data.qcow2" } }, { "name": "4.7.3", "images": { "hda_disk_image": "FAD_KVM-V400-build0849-FORTINET.out.kvm-boot.qcow2", - "hdb_disk_image": "FAD_KVM-v400-FORTINET.out.kvm-data.qcow2" + "hdb_disk_image": "FAD_KVM-FORTINET.out.kvm-data.qcow2" } }, { "name": "4.7.2", "images": { "hda_disk_image": "FAD_KVM-V400-build0844-FORTINET.out.kvm-boot.qcow2", - "hdb_disk_image": "FAD_KVM-v400-FORTINET.out.kvm-data.qcow2" + "hdb_disk_image": "FAD_KVM-FORTINET.out.kvm-data.qcow2" } }, { "name": "4.7.1", "images": { "hda_disk_image": "FAD_KVM-V400-build0832-FORTINET.out.kvm-boot.qcow2", - "hdb_disk_image": "FAD_KVM-v400-FORTINET.out.kvm-data.qcow2" + "hdb_disk_image": "FAD_KVM-FORTINET.out.kvm-data.qcow2" } }, { "name": "4.7.0", "images": { "hda_disk_image": "FAD_KVM-V400-build0828-FORTINET.out.kvm-boot.qcow2", - "hdb_disk_image": "FAD_KVM-v400-FORTINET.out.kvm-data.qcow2" + "hdb_disk_image": "FAD_KVM-FORTINET.out.kvm-data.qcow2" } }, { "name": "4.6.2", "images": { "hda_disk_image": "FAD_KVM-V400-build0679-FORTINET.out.kvm-boot.qcow2", - "hdb_disk_image": "FAD_KVM-v400-FORTINET.out.kvm-data.qcow2" + "hdb_disk_image": "FAD_KVM-FORTINET.out.kvm-data.qcow2" } }, { "name": "4.6.1", "images": { "hda_disk_image": "FAD_KVM-V400-build0677-FORTINET.out.kvm-boot.qcow2", - "hdb_disk_image": "FAD_KVM-v400-FORTINET.out.kvm-data.qcow2" + "hdb_disk_image": "FAD_KVM-FORTINET.out.kvm-data.qcow2" } }, { "name": "4.6.0", "images": { "hda_disk_image": "FAD_KVM-V400-build0660-FORTINET.out.kvm-boot.qcow2", - "hdb_disk_image": "FAD_KVM-v400-FORTINET.out.kvm-data.qcow2" + "hdb_disk_image": "FAD_KVM-FORTINET.out.kvm-data.qcow2" } }, { "name": "4.5.3", "images": { "hda_disk_image": "FAD_KVM-V400-build0605-FORTINET.out.kvm-boot.qcow2", - "hdb_disk_image": "FAD_KVM-v400-FORTINET.out.kvm-data.qcow2" + "hdb_disk_image": "FAD_KVM-FORTINET.out.kvm-data.qcow2" } }, { "name": "4.5.2", "images": { "hda_disk_image": "FAD_KVM-v400-build0597-FORTINET.out.kvm-boot.qcow2", - "hdb_disk_image": "FAD_KVM-v400-FORTINET.out.kvm-data.qcow2" + "hdb_disk_image": "FAD_KVM-FORTINET.out.kvm-data.qcow2" } }, { "name": "4.5.1", "images": { "hda_disk_image": "FAD_KVM-v400-build0581-FORTINET.out.kvm-boot.qcow2", - "hdb_disk_image": "FAD_KVM-v400-FORTINET.out.kvm-data.qcow2" + "hdb_disk_image": "FAD_KVM-FORTINET.out.kvm-data.qcow2" } }, { "name": "4.5.0", "images": { "hda_disk_image": "FAD_KVM-v400-build0560-FORTINET.out.kvm-boot.qcow2", - "hdb_disk_image": "FAD_KVM-v400-FORTINET.out.kvm-data.qcow2" + "hdb_disk_image": "FAD_KVM-FORTINET.out.kvm-data.qcow2" } } ] diff --git a/appliances/fortianalyzer.gns3a b/appliances/fortianalyzer.gns3a index 611dc6c..31475fa 100644 --- a/appliances/fortianalyzer.gns3a +++ b/appliances/fortianalyzer.gns3a @@ -26,6 +26,20 @@ "kvm": "allow" }, "images": [ + { + "filename": "FAZ_VM64_KVM-v6-build0092-FORTINET.out.kvm.qcow2", + "version": "6.0.0", + "md5sum": "e870087db55a095c75ddcafe73e1ea27", + "filesize": 117940224, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, + { + "filename": "FAZ_VM64_KVM-v5-build1631-FORTINET.out.kvm.qcow2", + "version": "5.6.2", + "md5sum": "c7f1cf26051b50b86e7e59b99e36756f", + "filesize": 105816064, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FAZ_VM64_KVM-v5-build1619-FORTINET.out.kvm.qcow2", "version": "5.6.1", @@ -113,6 +127,20 @@ } ], "versions": [ + { + "name": "6.0.0", + "images": { + "hda_disk_image": "FAZ_VM64_KVM-v6-build0092-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty30G.qcow2" + } + }, + { + "name": "5.6.2", + "images": { + "hda_disk_image": "FAZ_VM64_KVM-v5-build1631-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty30G.qcow2" + } + }, { "name": "5.6.1", "images": { diff --git a/appliances/fortiauthenticator.gns3a b/appliances/fortiauthenticator.gns3a index e9771cb..4be5bd2 100644 --- a/appliances/fortiauthenticator.gns3a +++ b/appliances/fortiauthenticator.gns3a @@ -26,6 +26,20 @@ "kvm": "allow" }, "images": [ + { + "filename": "FAC_VM_KVM-v5-build0163-FORTINET.out.kvm.qcow2", + "version": "5.2.2", + "md5sum": "e746b3c6c29b0356ec6b90ed14d4b098", + "filesize": 71565312, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, + { + "filename": "FAC_VM_KVM-v500-build0161-FORTINET.out.kvm.qcow2", + "version": "5.2.1", + "md5sum": "c46ad2de4a20296ebd35b3fcc2d81a1d", + "filesize": 72536064, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FAC_VM_KVM-v5-build0155-FORTINET.out.kvm.qcow2", "version": "5.2.0", @@ -70,6 +84,20 @@ } ], "versions": [ + { + "name": "5.2.2", + "images": { + "hda_disk_image": "FAC_VM_KVM-v5-build0163-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "FAC_VM_KVM-v500-DATADRIVE.qcow2" + } + }, + { + "name": "5.2.1", + "images": { + "hda_disk_image": "FAC_VM_KVM-v500-build0161-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "FAC_VM_KVM-v500-DATADRIVE.qcow2" + } + }, { "name": "5.2.0", "images": { diff --git a/appliances/forticache.gns3a b/appliances/forticache.gns3a index 501ec3b..dddf597 100644 --- a/appliances/forticache.gns3a +++ b/appliances/forticache.gns3a @@ -26,6 +26,13 @@ "kvm": "require" }, "images": [ + { + "filename": "FCHKVM-v400-build0222-FORTINET.out.kvm.qcow2", + "version": "4.2.7", + "md5sum": "d77790e414f4e2b31c756906a720e681", + "filesize": 27631616, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FCHKVM-v400-build0216-FORTINET.out.kvm.qcow2", "version": "4.2.6", @@ -99,6 +106,13 @@ } ], "versions": [ + { + "name": "4.2.7", + "images": { + "hda_disk_image": "FCHKVM-v400-build0222-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty100G.qcow2" + } + }, { "name": "4.2.6", "images": { diff --git a/appliances/fortigate.gns3a b/appliances/fortigate.gns3a index caca6d1..f3c1afc 100644 --- a/appliances/fortigate.gns3a +++ b/appliances/fortigate.gns3a @@ -26,6 +26,20 @@ "kvm": "allow" }, "images": [ + { + "filename": "FGT_VM64_KVM-v6-build0076-FORTINET.out.kvm.qcow2", + "version": "6.0.0", + "md5sum": "161728b413e097954bd640ade89dfeb1", + "filesize": 46104576, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, + { + "filename": "FGT_VM64_KVM-v5-build1575-FORTINET.out.kvm.qcow2", + "version": "5.6.4", + "md5sum": "c312ea8ec1afffb73858fb1b15c095ef", + "filesize": 41594880, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FGT_VM64_KVM-v5-build1547-FORTINET.out.kvm.qcow2", "version": "5.6.3", @@ -183,6 +197,20 @@ } ], "versions": [ + { + "name": "6.0.0", + "images": { + "hda_disk_image": "FGT_VM64_KVM-v6-build0076-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty30G.qcow2" + } + }, + { + "name": "5.6.4", + "images": { + "hda_disk_image": "FGT_VM64_KVM-v5-build1575-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty30G.qcow2" + } + }, { "name": "5.6.3", "images": { diff --git a/appliances/fortimail.gns3a b/appliances/fortimail.gns3a index d52bb26..a970d91 100644 --- a/appliances/fortimail.gns3a +++ b/appliances/fortimail.gns3a @@ -26,6 +26,20 @@ "kvm": "allow" }, "images": [ + { + "filename": "FML_VMKV-64-v54-build0719-FORTINET.out.kvm.qcow2", + "version": "5.4.5", + "md5sum": "e2f202efd28039a6f1f4ebb7ee69e214", + "filesize": 97255424, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, + { + "filename": "FML_VMKV-64-v54-build0714-FORTINET.out.kvm.qcow2", + "version": "5.4.4", + "md5sum": "6a3155d9cee6af3ecb016e59c0a0765f", + "filesize": 93519872, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FML_VMKV-64-v54-build0712-FORTINET.out.kvm.qcow2", "version": "5.4.3", @@ -54,6 +68,13 @@ "filesize": 101253120, "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" }, + { + "filename": "FML_VMKV-64-v53-build0653-FORTINET.out.kvm.qcow2", + "version": "5.3.12", + "md5sum": "aed4dcb17de047860736d8742362a754", + "filesize": 89980928, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FML_VMKV-64-v53-build0648-FORTINET.out.kvm.qcow2", "version": "5.3.11", @@ -134,6 +155,20 @@ } ], "versions": [ + { + "name": "5.4.5", + "images": { + "hda_disk_image": "FML_VMKV-64-v54-build0719-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty30G.qcow2" + } + }, + { + "name": "5.4.4", + "images": { + "hda_disk_image": "FML_VMKV-64-v54-build0714-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty30G.qcow2" + } + }, { "name": "5.4.3", "images": { @@ -162,6 +197,13 @@ "hdb_disk_image": "empty30G.qcow2" } }, + { + "name": "5.3.12", + "images": { + "hda_disk_image": "FML_VMKV-64-v53-build0653-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty30G.qcow2" + } + }, { "name": "5.3.11", "images": { diff --git a/appliances/fortimanager.gns3a b/appliances/fortimanager.gns3a index 6b80998..7827c2e 100644 --- a/appliances/fortimanager.gns3a +++ b/appliances/fortimanager.gns3a @@ -26,6 +26,20 @@ "kvm": "allow" }, "images": [ + { + "filename": "FMG_VM64_KVM-v6-build0092-FORTINET.out.kvm.qcow2", + "version": "6.0.0", + "md5sum": "73bfe1bc70124521a524d857646b9c2e", + "filesize": 119066624, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, + { + "filename": "FMG_VM64_KVM-v5-build1631-FORTINET.out.kvm.qcow2", + "version": "5.6.2", + "md5sum": "c81cc247e8eb03249b475fe0e847653e", + "filesize": 106946560, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FMG_VM64_KVM-v5-build1619-FORTINET.out.kvm.qcow2", "version": "5.6.1", @@ -113,6 +127,20 @@ } ], "versions": [ + { + "name": "6.0.0", + "images": { + "hda_disk_image": "FMG_VM64_KVM-v6-build0092-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty30G.qcow2" + } + }, + { + "name": "5.6.2", + "images": { + "hda_disk_image": "FMG_VM64_KVM-v5-build1631-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty30G.qcow2" + } + }, { "name": "5.6.1", "images": { diff --git a/appliances/fortisandbox.gns3a b/appliances/fortisandbox.gns3a index d7d702f..9abf522 100644 --- a/appliances/fortisandbox.gns3a +++ b/appliances/fortisandbox.gns3a @@ -27,6 +27,13 @@ "options": "-smp 2" }, "images": [ + { + "filename": "FSA_KVM-v200-build0340-FORTINET.out.kvm.qcow2", + "version": "2.5.2", + "md5sum": "527f3225bd3fbd4ba23779cc1987d2ed", + "filesize": 117834240, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FSA_KVM-v200-build0329-FORTINET.out.kvm.qcow2", "version": "2.5.1", @@ -78,6 +85,13 @@ } ], "versions": [ + { + "name": "2.5.2", + "images": { + "hda_disk_image": "FSA_KVM-v200-build0340-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "FSA_v200-datadrive.qcow2" + } + }, { "name": "2.5.1", "images": { diff --git a/appliances/fortisiem-super_worker.gns3a b/appliances/fortisiem-super_worker.gns3a index a280d74..739d1cf 100644 --- a/appliances/fortisiem-super_worker.gns3a +++ b/appliances/fortisiem-super_worker.gns3a @@ -28,6 +28,27 @@ "options": "-smp 4" }, "images": [ + { + "filename": "FortiSIEM-VA-5.0.0.1201.qcow2", + "version": "5.0.0", + "md5sum": "1f2f0b1d84e89495fc5b5ca722cb5710", + "filesize": 10029432832, + "download_url": "https://images-cdn.fortisiem.fortinet.com/VirtualAppliances/latestrelease.html" + }, + { + "filename": "FortiSIEM-VA-5.0.0.1201-1.qcow2", + "version": "5.0.0", + "md5sum": "88e96259f44a82b7c545b82925880513", + "filesize": 46858240, + "download_url": "https://images-cdn.fortisiem.fortinet.com/VirtualAppliances/latestrelease.html" + }, + { + "filename": "FortiSIEM-VA-5.0.0.1201-2.qcow2", + "version": "5.0.0", + "md5sum": "58d61498e1adc1df062fc12113d42d86", + "filesize": 46858240, + "download_url": "https://images-cdn.fortisiem.fortinet.com/VirtualAppliances/latestrelease.html" + }, { "filename": "FortiSIEM-VA-KVM-4.10.0.1102.qcow2", "version": "4.10.0", @@ -72,6 +93,14 @@ } ], "versions": [ + { + "name": "5.0.0", + "images": { + "hda_disk_image": "FortiSIEM-VA-5.0.0.1201.qcow2", + "hdb_disk_image": "FortiSIEM-VA-5.0.0.1201-1.qcow2", + "hdc_disk_image": "FortiSIEM-VA-5.0.0.1201-2.qcow2" + } + }, { "name": "4.10.0", "images": { diff --git a/appliances/fortiweb.gns3a b/appliances/fortiweb.gns3a index 3872777..64368fc 100644 --- a/appliances/fortiweb.gns3a +++ b/appliances/fortiweb.gns3a @@ -26,6 +26,27 @@ "kvm": "allow" }, "images": [ + { + "filename": "FWB_KVM-v500-build1618-FORTINET.out.kvm.qcow2", + "version": "5.9.1", + "md5sum": "12bafff7bbfbf9a49554c6378f0e1a46", + "filesize": 132579840, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, + { + "filename": "FWB_KVM-v500-build1609-FORTINET.out.kvm.qcow2", + "version": "5.9.0", + "md5sum": "a957ae3d60eabc685fcda015c31a5d01", + "filesize": 140837376, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, + { + "filename": "FWB_KVM-v500-build1413-FORTINET.out.kvm.qcow2", + "version": "5.8.6", + "md5sum": "910fefe796daa5c963b0bde121996306", + "filesize": 105775616, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FWB_KVM-v500-build0739-FORTINET.out.kvm-log.qcow2", "version": "5.5.4", @@ -60,9 +81,39 @@ "md5sum": "0a613191948d3618ae16cd9f11988448", "filesize": 87162880, "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, + { + "filename": "empty30G.qcow2", + "version": "1.0", + "md5sum": "3411a599e822f2ac6be560a26405821a", + "filesize": 197120, + "download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/", + "direct_download_url": "http://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty30G.qcow2/download" } + ], "versions": [ + { + "name": "5.9.1", + "images": { + "hda_disk_image": "FWB_KVM-v500-build1618-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty30G.qcow2" + } + }, + { + "name": "5.9.0", + "images": { + "hda_disk_image": "FWB_KVM-v500-build1609-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty30G.qcow2" + } + }, + { + "name": "5.8.6", + "images": { + "hda_disk_image": "FWB_KVM-v500-build1413-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty30G.qcow2" + } + }, { "name": "5.5.4", "images": { diff --git a/appliances/freenas.gns3a b/appliances/freenas.gns3a index e92a05e..866e702 100644 --- a/appliances/freenas.gns3a +++ b/appliances/freenas.gns3a @@ -24,6 +24,14 @@ "kvm": "require" }, "images": [ + { + "filename": "FreeNAS-11.1-U4.iso", + "version": "11.1 U1", + "md5sum": "d75623e5671dbc82f32f4b4f8d46092f", + "filesize": 633833472, + "download_url": "http://www.freenas.org/download/", + "direct_download_url": "https://download.freenas.org/11/11.1-U4/x64/FreeNAS-11.1-U4.iso" + }, { "filename": "FreeNAS-11.1-U1.iso", "version": "11.1 U1", @@ -66,6 +74,14 @@ } ], "versions": [ + { + "name": "11.1 U4", + "images": { + "hda_disk_image": "empty30G.qcow2", + "hdb_disk_image": "empty30G.qcow2", + "cdrom_image": "FreeNAS-11.1-U4.iso" + } + }, { "name": "11.1 U1", "images": { diff --git a/appliances/ipfire.gns3a b/appliances/ipfire.gns3a index 3f671dc..616c7e4 100644 --- a/appliances/ipfire.gns3a +++ b/appliances/ipfire.gns3a @@ -24,6 +24,24 @@ "kvm": "allow" }, "images": [ + { + "filename": "ipfire-2.19.1gb-ext4-scon.x86_64-full-core119.img", + "version": "2.19.119", + "md5sum": "b57be976ff54569b71eae4ee66634b0d", + "filesize": 1063256064, + "download_url": "http://www.ipfire.org/download", + "direct_download_url": "https://downloads.ipfire.org/releases/ipfire-2.x/2.19-core119/ipfire-2.19.1gb-ext4-scon.x86_64-full-core119.img.gz", + "compression": "gzip" + }, + { + "filename": "ipfire-2.19.1gb-ext4-scon.x86_64-full-core118.img", + "version": "2.19.118", + "md5sum": "4dbeb474848d87c16c20ff4e31feb204", + "filesize": 1063256064, + "download_url": "http://www.ipfire.org/download", + "direct_download_url": "https://downloads.ipfire.org/releases/ipfire-2.x/2.19-core118/ipfire-2.19.1gb-ext4-scon.x86_64-full-core118.img.gz", + "compression": "gzip" + }, { "filename": "ipfire-2.19.1gb-ext4-scon.x86_64-full-core117.img", "version": "2.19.117", @@ -62,6 +80,18 @@ } ], "versions": [ + { + "name": "2.19.119", + "images": { + "hda_disk_image": "ipfire-2.19.1gb-ext4-scon.x86_64-full-core119.img" + } + }, + { + "name": "2.19.118", + "images": { + "hda_disk_image": "ipfire-2.19.1gb-ext4-scon.x86_64-full-core118.img" + } + }, { "name": "2.19.117", "images": { From f8669a2e03d35fd971188be0042205e04ef2543a Mon Sep 17 00:00:00 2001 From: Andre Sencioles Date: Mon, 30 Apr 2018 14:55:10 +1200 Subject: [PATCH 069/169] Add Ubuntu Cloud 18.04 (LTS) --- appliances/ubuntu-cloud.gns3a | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/appliances/ubuntu-cloud.gns3a b/appliances/ubuntu-cloud.gns3a index d2766b0..67fe81f 100644 --- a/appliances/ubuntu-cloud.gns3a +++ b/appliances/ubuntu-cloud.gns3a @@ -25,6 +25,13 @@ "options": "-nographic" }, "images": [ + { + "filename": "ubuntu-18.04-server-cloudimg-amd64.img", + "version": "18.04", + "md5sum": "f4134e7fa16d7fa766c7467cbe25c949", + "filesize": 336134144, + "download_url": "https://cloud-images.ubuntu.com/releases/18.04/release-20180426.2/ubuntu-18.04-server-cloudimg-amd64.img" + }, { "filename": "ubuntu-17.10-server-cloudimg-amd64.img", "version": "17.10", @@ -55,6 +62,13 @@ } ], "versions": [ + { + "name": "18.04 (LTS)", + "images": { + "hda_disk_image": "ubuntu-18.04-server-cloudimg-amd64.img", + "cdrom_image": "ubuntu-cloud-init-data.iso" + } + }, { "name": "17.10", "images": { From c6f5cfd0366ff4d30bce574eaf4371cc70a04d5c Mon Sep 17 00:00:00 2001 From: adosztal Date: Mon, 30 Apr 2018 07:53:52 +0200 Subject: [PATCH 070/169] New releases --- appliances/coreos.gns3a | 17 +++++++++++++- appliances/juniper-vqfx-pfe.gns3a | 13 +++++++++++ appliances/juniper-vqfx-re.gns3a | 13 +++++++++++ appliances/juniper-vsrx.gns3a | 39 +++++++++++++++++++++++++++++++ appliances/kali-linux.gns3a | 14 +++++++++++ appliances/kerio-connect.gns3a | 16 ++++++++++++- appliances/kerio-control.gns3a | 14 +++++++++++ appliances/kerio-operator.gns3a | 14 +++++++++++ appliances/untangle.gns3a | 14 +++++++++++ appliances/zentyal-server.gns3a | 15 ++++++++++++ 10 files changed, 167 insertions(+), 2 deletions(-) diff --git a/appliances/coreos.gns3a b/appliances/coreos.gns3a index 396ca39..c5aa480 100644 --- a/appliances/coreos.gns3a +++ b/appliances/coreos.gns3a @@ -21,6 +21,15 @@ "kvm": "allow" }, "images": [ + { + "filename": "coreos_production_qemu_image.1688.5.3.img", + "version": "1688.5.3", + "md5sum": "f1015a9573fb6e378d2a5e86b4243acd", + "filesize": 867368960, + "download_url": "http://stable.release.core-os.net/amd64-usr/1688.5.3/", + "direct_download_url": "http://stable.release.core-os.net/amd64-usr/1688.5.3/coreos_production_qemu_image.img.bz2", + "compression": "bzip2" + }, { "filename": "coreos_production_qemu_image.1632.2.1.img", "version": "1632.2.1", @@ -158,10 +167,16 @@ } ], "versions": [ + { + "name": "1688.5.3", + "images": { + "hda_disk_image": "coreos_production_qemu_image.1688.5.3.img" + } + }, { "name": "1632.2.1", "images": { - "hda_disk_image": "coreos_production_qemu_image.1576.4.0.img" + "hda_disk_image": "coreos_production_qemu_image.1632.2.1.img" } }, { diff --git a/appliances/juniper-vqfx-pfe.gns3a b/appliances/juniper-vqfx-pfe.gns3a index 7e15ad7..c84e8fa 100644 --- a/appliances/juniper-vqfx-pfe.gns3a +++ b/appliances/juniper-vqfx-pfe.gns3a @@ -24,6 +24,13 @@ "options": "-nographic" }, "images": [ + { + "filename": "cosim_20180212.qcow2", + "version": "17.4R1", + "md5sum": "0372e9c1b7df3608099186ab8cbbf2ad", + "filesize": 1911291904, + "download_url": "https://www.juniper.net/us/en/dm/free-vqfx-trial/" + }, { "filename": "vqfx10k-pfe-20160609-2.vmdk", "version": "15.1X53-D60", @@ -33,6 +40,12 @@ } ], "versions": [ + { + "name": "17.4R1", + "images": { + "hda_disk_image": "cosim_20180212.qcow2" + } + }, { "name": "15.1X53-D60", "images": { diff --git a/appliances/juniper-vqfx-re.gns3a b/appliances/juniper-vqfx-re.gns3a index 1506f40..2f08021 100644 --- a/appliances/juniper-vqfx-re.gns3a +++ b/appliances/juniper-vqfx-re.gns3a @@ -24,6 +24,13 @@ "options": "-nographic -smp 2" }, "images": [ + { + "filename": "jinstall-vqfx-10-f-17.4R1.16.img", + "version": "17.4R1", + "md5sum": "dd83313b0f5beaf68488ed3d5e1e5240", + "filesize": 553910272, + "download_url": "https://www.juniper.net/us/en/dm/free-vqfx-trial/" + }, { "filename": "vqfx10k-re-15.1X53-D60.vmdk", "version": "15.1X53-D60", @@ -33,6 +40,12 @@ } ], "versions": [ + { + "name": "17.4R1", + "images": { + "hda_disk_image": "jinstall-vqfx-10-f-17.4R1.16.img" + } + }, { "name": "15.1X53-D60", "images": { diff --git a/appliances/juniper-vsrx.gns3a b/appliances/juniper-vsrx.gns3a index dfe2cd0..ec24f68 100644 --- a/appliances/juniper-vsrx.gns3a +++ b/appliances/juniper-vsrx.gns3a @@ -24,6 +24,13 @@ "options": "-smp 2" }, "images": [ + { + "filename": "junos-media-vsrx-vmdisk-18.1R1.9.qcow2", + "version": "18.1R1", + "md5sum": "4e9393142afc675d5d3d03c5071e70ce", + "filesize": 4418961408, + "download_url": "https://www.juniper.net/us/en/dm/free-vsrx-trial/" + }, { "filename": "media-vsrx-vmdisk-17.4R1.16.qcow2", "version": "17.4R1", @@ -31,6 +38,13 @@ "filesize": 3965386752, "download_url": "https://www.juniper.net/us/en/dm/free-vsrx-trial/" }, + { + "filename": "media-vsrx-vmdisk-17.3R2.10.qcow2", + "version": "17.3R2", + "md5sum": "8f2adfb0515913e0c7db32628a5deb3e", + "filesize": 3784572928, + "download_url": "https://www.juniper.net/us/en/dm/free-vsrx-trial/" + }, { "filename": "media-vsrx-vmdisk-17.3R1.10.qcow2", "version": "17.3R1", @@ -38,6 +52,13 @@ "filesize": 3782541312, "download_url": "https://www.juniper.net/us/en/dm/free-vsrx-trial/" }, + { + "filename": "media-vsrx-vmdisk-15.1X49-D130.6.qcow2", + "version": "15.1X49-D130", + "md5sum": "8ad03f4067b3fe5d2ed378733a5e8541", + "filesize": 3300917248, + "download_url": "https://www.juniper.net/us/en/dm/free-vsrx-trial/" + }, { "filename": "media-vsrx-vmdisk-15.1X49-D120.3.qcow2", "version": "15.1X49-D120", @@ -124,18 +145,36 @@ } ], "versions": [ + { + "name": "18.1R1", + "images": { + "hda_disk_image": "junos-media-vsrx-vmdisk-18.1R1.9.qcow2" + } + }, { "name": "17.4R1", "images": { "hda_disk_image": "media-vsrx-vmdisk-17.4R1.16.qcow2" } }, + { + "name": "17.3R2", + "images": { + "hda_disk_image": "media-vsrx-vmdisk-17.3R2.10.qcow2" + } + }, { "name": "17.3R1", "images": { "hda_disk_image": "media-vsrx-vmdisk-17.3R1.10.qcow2" } }, + { + "name": "15.1X49-D130", + "images": { + "hda_disk_image": "media-vsrx-vmdisk-15.1X49-D130.6.qcow2" + } + }, { "name": "15.1X49-D120", "images": { diff --git a/appliances/kali-linux.gns3a b/appliances/kali-linux.gns3a index 78732d0..60baf04 100644 --- a/appliances/kali-linux.gns3a +++ b/appliances/kali-linux.gns3a @@ -20,6 +20,14 @@ "kvm": "require" }, "images": [ + { + "filename": "kali-linux-2018.1-amd64.iso", + "version": "2018.1", + "md5sum": "a3feb90df5b71b3c7f4a02bdddf221d7", + "filesize": 3028500480, + "download_url": "https://www.kali.org/downloads/", + "direct_download_url": "http://cdimage.kali.org/kali-2018.1/kali-linux-2018.1-amd64.iso" + }, { "filename": "kali-linux-2017.3-amd64.iso", "version": "2017.3", @@ -70,6 +78,12 @@ } ], "versions": [ + { + "name": "2018.8", + "images": { + "cdrom_image": "kali-linux-2018.1-amd64.iso" + } + }, { "name": "2017.3", "images": { diff --git a/appliances/kerio-connect.gns3a b/appliances/kerio-connect.gns3a index 741477d..206e91b 100644 --- a/appliances/kerio-connect.gns3a +++ b/appliances/kerio-connect.gns3a @@ -24,6 +24,14 @@ "kvm": "require" }, "images": [ + { + "filename": "kerio-connect-appliance-9.2.6-3851-p1-vmware-amd64-disk1.vmdk", + "version": "9.2.6p1", + "md5sum": "c6ed064114c6fd70608b7951b707528c", + "filesize": 625852004, + "download_url": "http://www.kerio.com/support/kerio-connect", + "direct_download_url": "http://cdn.kerio.com/dwn/connect/connect-9.2.6-3851/kerio-connect-appliance-9.2.6-3851-p1-vmware-amd64-disk1.vmdk" + }, { "filename": "kerio-connect-appliance-9.2.5-3336-p3-vmware-amd64-disk1.vmdk", "version": "9.2.5p3", @@ -68,7 +76,13 @@ ], "versions": [ { - "name": "9.2.5", + "name": "9.2.6p1", + "images": { + "hda_disk_image": "kerio-connect-appliance-9.2.6-3851-p1-vmware-amd64-disk1.vmdk" + } + }, + { + "name": "9.2.5p3", "images": { "hda_disk_image": "kerio-connect-appliance-9.2.5-3336-p3-vmware-amd64-disk1.vmdk" } diff --git a/appliances/kerio-control.gns3a b/appliances/kerio-control.gns3a index 2b3f48d..02a868b 100644 --- a/appliances/kerio-control.gns3a +++ b/appliances/kerio-control.gns3a @@ -23,6 +23,14 @@ "kvm": "require" }, "images": [ + { + "filename": "kerio-control-appliance-9.2.5-2641-p5-vmware-disk1.vmdk", + "version": "9.2.5p5", + "md5sum": "fbb2824eb91ca2502c952c2e9c4e635d", + "filesize": 190706688, + "download_url": "http://www.kerio.com/support/kerio-control", + "direct_download_url": "http://cdn.kerio.com/dwn/control/control-9.2.5-2641/kerio-control-appliance-9.2.5-2641-p5-vmware-disk1.vmdk" + }, { "filename": "kerio-control-appliance-9.2.4-2223-vmware-disk1.vmdk", "version": "9.2.4", @@ -63,6 +71,12 @@ "direct_download_url": "http://cdn.kerio.com/dwn/control/control-9.1.4-1535/kerio-control-appliance-9.1.4-1535-vmware.vmdk" } ], "versions": [ + { + "name": "9.2.5p5", + "images": { + "hda_disk_image": "kerio-control-appliance-9.2.5-2641-p5-vmware-disk1.vmdk" + } + }, { "name": "9.2.4", "images": { diff --git a/appliances/kerio-operator.gns3a b/appliances/kerio-operator.gns3a index a193eb9..7d1d178 100644 --- a/appliances/kerio-operator.gns3a +++ b/appliances/kerio-operator.gns3a @@ -24,6 +24,14 @@ "kvm": "require" }, "images": [ + { + "filename": "kerio-operator-appliance-2.6.2-9085-vmware-disk1.vmdk", + "version": "2.6.2", + "md5sum": "abdfa7697e568b5d9a6396e11292e52a", + "filesize": 306665472, + "download_url": "http://www.kerio.com/support/kerio-operator", + "direct_download_url": "http://cdn.kerio.com/dwn/operator/operator-2.6.2-9085/kerio-operator-appliance-2.6.2-9085-vmware-disk1.vmdk" + }, { "filename": "kerio-operator-appliance-2.6.0-8413-vmware-disk1.vmdk", "version": "2.6.0", @@ -66,6 +74,12 @@ } ], "versions": [ + { + "name": "2.6.2", + "images": { + "hda_disk_image": "kerio-operator-appliance-2.6.2-9085-vmware-disk1.vmdk" + } + }, { "name": "2.6.0", "images": { diff --git a/appliances/untangle.gns3a b/appliances/untangle.gns3a index 6c26cac..236400e 100644 --- a/appliances/untangle.gns3a +++ b/appliances/untangle.gns3a @@ -24,6 +24,13 @@ "kvm": "allow" }, "images": [ + { + "filename": "untangle_1321_x64.iso", + "version": "13.2.1", + "md5sum": "4ce49535372f85565922c7e90bc11ba3", + "filesize": 627048448, + "download_url": "https://www.untangle.com/get-untangle/" + }, { "filename": "untangle_1320_x64.iso", "version": "13.2.0", @@ -97,6 +104,13 @@ } ], "versions": [ + { + "name": "13.2.1", + "images": { + "hda_disk_image": "empty30G.qcow2", + "cdrom_image": "untangle_1321_x64.iso" + } + }, { "name": "13.2.0", "images": { diff --git a/appliances/zentyal-server.gns3a b/appliances/zentyal-server.gns3a index 49cb6ca..d38e922 100644 --- a/appliances/zentyal-server.gns3a +++ b/appliances/zentyal-server.gns3a @@ -24,6 +24,14 @@ "kvm": "require" }, "images": [ + { + "filename": "zentyal-5.1-development-amd64.iso", + "version": "5.1", + "md5sum": "dac5623b92c1b361d7805ab8c95c0d99", + "filesize": 947912704, + "download_url": "http://download.zentyal.com/", + "direct_download_url": "http://download.zentyal.com/zentyal-5.1-development-amd64.iso" + }, { "filename": "zentyal-5.0.1-development-amd64.iso", "version": "5.0.1", @@ -74,6 +82,13 @@ } ], "versions": [ + { + "name": "5.1", + "images": { + "hda_disk_image": "empty100G.qcow2", + "cdrom_image": "zentyal-5.1-development-amd64.iso" + } + }, { "name": "5.0.1", "images": { From 588cdf40486feac7860761e7e5e4ef8ef87feec9 Mon Sep 17 00:00:00 2001 From: Dmitry Figol Date: Tue, 1 May 2018 17:20:53 +0200 Subject: [PATCH 071/169] Add CSR 16.8.1a --- appliances/cisco-csr1000v.gns3a | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/appliances/cisco-csr1000v.gns3a b/appliances/cisco-csr1000v.gns3a index 505cbcb..4b8d2bf 100644 --- a/appliances/cisco-csr1000v.gns3a +++ b/appliances/cisco-csr1000v.gns3a @@ -22,6 +22,13 @@ "kvm": "require" }, "images": [ + { + "filename": "csr1000v-universalk9.16.08.01a-serial.qcow2", + "version": "16.8.1a", + "md5sum": "91e2572f20c77606d710223511cd279a", + "filesize": 890044416, + "download_url": "https://software.cisco.com/download/home/284364978/type/282046477" + }, { "filename": "csr1000v-universalk9.16.07.01-serial.qcow2", "version": "16.7.1", @@ -94,6 +101,12 @@ } ], "versions": [ + { + "name": "16.8.1a", + "images": { + "hda_disk_image": "csr1000v-universalk9.16.08.01a-serial.qcow2" + } + }, { "name": "16.7.1", "images": { From 1d96e7eac696343e0483bc33480d1f357a53bb9a Mon Sep 17 00:00:00 2001 From: adosztal Date: Sat, 5 May 2018 14:51:11 +0200 Subject: [PATCH 072/169] New appliance: AAA --- appliances/aaa.gns3a | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 appliances/aaa.gns3a diff --git a/appliances/aaa.gns3a b/appliances/aaa.gns3a new file mode 100644 index 0000000..b54b24a --- /dev/null +++ b/appliances/aaa.gns3a @@ -0,0 +1,19 @@ +{ + "name": "AAA", + "category": "guest", + "description": "This appliance provides RADIUS and TACACS+ services with preconfigured users and groups.", + "vendor_name": "Ubuntu", + "vendor_url": "https://www.ubuntu.com/", + "product_name": "AAA", + "registry_version": 3, + "status": "stable", + "maintainer": "Andras Dosztal", + "maintainer_email": "developers@gns3.net", + "symbol": "linux_guest.svg", + "usage": "RADIUS users:\n- alice\n- bob\n\nTACACS+ users:\n- gns3 (role: admin)\n- readonly\n\nAll users, as well as the RADIUS/TACACS+ clients have the password 'gns3' set.", + "docker": { + "adapters": 1, + "image": "adosztal/aaa:latest", + "console_type": "telnet" + } +} From 3656ed83cb9954640c38e1c3784718d340d4bece Mon Sep 17 00:00:00 2001 From: adosztal Date: Sun, 6 May 2018 18:59:14 +0200 Subject: [PATCH 073/169] New appliance: DNS --- appliances/dns.gns3a | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 appliances/dns.gns3a diff --git a/appliances/dns.gns3a b/appliances/dns.gns3a new file mode 100644 index 0000000..0902b0d --- /dev/null +++ b/appliances/dns.gns3a @@ -0,0 +1,19 @@ +{ + "name": "DNS", + "category": "guest", + "description": "This appliance provides DNS using dnsmasq with the local domain set to \"lab\".", + "vendor_name": "Ubuntu", + "vendor_url": "https://www.ubuntu.com/", + "product_name": "DNS", + "registry_version": 3, + "status": "stable", + "maintainer": "Andras Dosztal", + "maintainer_email": "developers@gns3.net", + "symbol": "linux_guest.svg", + "usage": "You can add records by adding entries to the /etc/hosts file in the following format:\n%IP_ADDRESS% %HOSTNAME%.lab %HOSTNAME%\n\nExample:\n192.168.123.10 router1.lab router1", + "docker": { + "adapters": 1, + "image": "adosztal/dns:latest", + "console_type": "telnet" + } +} From 8bb06e4b47049ca1e0b810552b46668185b88fc0 Mon Sep 17 00:00:00 2001 From: "Stephen C. Moore" Date: Tue, 8 May 2018 10:44:52 -0500 Subject: [PATCH 074/169] Update cisco-iosxrv9k.gns3a XRV 9000 series image requires the x86_64 qemu binary to address memory over 4gb, and also the appliance won't even boot using the i386 binary. --- appliances/cisco-iosxrv9k.gns3a | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appliances/cisco-iosxrv9k.gns3a b/appliances/cisco-iosxrv9k.gns3a index a140b6d..8025c73 100644 --- a/appliances/cisco-iosxrv9k.gns3a +++ b/appliances/cisco-iosxrv9k.gns3a @@ -18,7 +18,7 @@ "adapter_type": "e1000", "adapters": 4, "ram": 16384, - "arch": "i386", + "arch": "x86_64", "console_type": "telnet", "kvm": "require", "options": "-smp 4" From 9c6cc312566f993fb37da16cd3e9f59e5d9dec89 Mon Sep 17 00:00:00 2001 From: adosztal Date: Thu, 10 May 2018 18:46:53 +0200 Subject: [PATCH 075/169] New appliance: FRRouting --- appliances/frr.gns3a | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 appliances/frr.gns3a diff --git a/appliances/frr.gns3a b/appliances/frr.gns3a new file mode 100644 index 0000000..ed3ad7a --- /dev/null +++ b/appliances/frr.gns3a @@ -0,0 +1,41 @@ +{ + "name": "FRR", + "category": "router", + "description": "FRRouting (FRR) is an IP routing protocol suite for Linux and Unix platforms which includes protocol daemons for BGP, IS-IS, LDP, OSPF, PIM, and RIP.\n\nFRR’s seamless integration with the native Linux/Unix IP networking stacks makes it applicable to a wide variety of use cases including connecting hosts/VMs/containers to the network, advertising network services, LAN switching and routing, Internet access routers, and Internet peering.\n\nThis is an unofficial VM or FRR.", + "vendor_name": "FRRouting Project", + "vendor_url": "https://frrouting.org", + "product_name": "FRR", + "registry_version": 3, + "status": "stable", + "maintainer": "Andras Dosztal", + "maintainer_email": "developers@gns3.net", + "usage": "Credentials: frr / frr\nIf you exit from the router CLI, you can get back by typing 'vtysh' to the console.", + "port_name_format": "ens{port3}", + "qemu": { + "adapter_type": "virtio-net-pci", + "adapters": 8, + "ram": 256, + "arch": "x86_64", + "console_type": "telnet", + "kvm": "require" + }, + "images": [ + { + "filename": "frr4.0-vm0.1.qcow2", + "version": "FRR4.0 - VM0.1", + "md5sum": "e1dc58cbb2b71c58051538c07d412493", + "filesize": 1670643712, + "download_url": "https://sourceforge.net/projects/frr/files/", + "direct_download_url": "https://sourceforge.net/projects/frr/files/frr4.0-vm0.1.qcow2.bz2/download", + "compression": "bzip2" + } + ], + "versions": [ + { + "name": "FRR4.0 - VM0.1", + "images": { + "hda_disk_image": "frr4.0-vm0.1.qcow2" + } + } + ] +} From a214c51b77ce677e6a15921274b332a1607d60e7 Mon Sep 17 00:00:00 2001 From: adosztal Date: Sat, 12 May 2018 07:50:49 +0200 Subject: [PATCH 076/169] Fix for #337 --- appliances/cisco-csr1000v.gns3a | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appliances/cisco-csr1000v.gns3a b/appliances/cisco-csr1000v.gns3a index 4b8d2bf..5078d9f 100644 --- a/appliances/cisco-csr1000v.gns3a +++ b/appliances/cisco-csr1000v.gns3a @@ -14,7 +14,7 @@ "usage": "There is no default password and enable password. A default configuration is present.", "port_name_format": "Gi{port1}", "qemu": { - "adapter_type": "virtio-net-pci", + "adapter_type": "vmxnet3", "adapters": 4, "ram": 3072, "arch": "x86_64", From f0e9cdf6222dca817c0dc243d2e8b5eaae936ba0 Mon Sep 17 00:00:00 2001 From: adosztal Date: Tue, 15 May 2018 19:06:01 +0200 Subject: [PATCH 077/169] New release --- appliances/cumulus-vx.gns3a | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/appliances/cumulus-vx.gns3a b/appliances/cumulus-vx.gns3a index 95c5b75..085fc27 100644 --- a/appliances/cumulus-vx.gns3a +++ b/appliances/cumulus-vx.gns3a @@ -23,6 +23,14 @@ "kvm": "require" }, "images": [ + { + "filename": "cumulus-linux-3.6.0-vx-amd64.qcow2", + "version": "3.6.0", + "md5sum": "b5356b6c922f5620d7e6971d44e9be4d", + "filesize": 1105199104, + "download_url": "https://cumulusnetworks.com/cumulus-vx/download/", + "direct_download_url": "http://cumulusfiles.s3.amazonaws.com/cumulus-linux-3.6.0-vx-amd64.qcow2" + }, { "filename": "cumulus-linux-3.5.3-vx-amd64.qcow2", "version": "3.5.3", @@ -149,6 +157,12 @@ } ], "versions": [ + { + "name": "3.6.0", + "images": { + "hda_disk_image": "cumulus-linux-3.6.0-vx-amd64.qcow2" + } + }, { "name": "3.5.3", "images": { From 5ea798b4ef33cc251357bc79bb1ac7bcca0a842a Mon Sep 17 00:00:00 2001 From: Mike Lazar Date: Tue, 15 May 2018 18:27:30 -0400 Subject: [PATCH 078/169] Provide correct appliance description - OS9 --- appliances/dell-ftos.gns3a | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/appliances/dell-ftos.gns3a b/appliances/dell-ftos.gns3a index 136fb48..af13461 100644 --- a/appliances/dell-ftos.gns3a +++ b/appliances/dell-ftos.gns3a @@ -1,16 +1,16 @@ { - "name": "Dell FTOS", + "name": "Dell OS9", "category": "router", - "description": "Dell Networking OS10 combines the best of Linux, open computing and networking to advance open networking disaggregation. Dell Networking OS10 is a transformational software platform that provides networking hardware abstraction through a common set of APIs. Enable consistency across compute and network resources for your system operators (SysOps) groups that require server-like manageability. Easily leverage your existing network configuration. Dell Networking OS10 incorporates traditional networking integration. Enhance the integration and control you allow your development and operations (DevOps) teams, down to identifying an object as an individual, manageable entity within the platform.", + "description": "Dell Networking OS9 (formerly FTOS).\nOS9 powers the Dell Networking product portfolio and has been hardened in some of the largest and most demanding environments in the world to meet stringent reliability, scalability and serviceability requirements. \n\nDownload and uncompress zip files from the Dell support site - corresponding to the FTOS/OS9 image name. Please 'Select FTOS for S-Series OS-EMULATOR'. Import the resulting ISO image.", "vendor_name": "Dell Inc.", "vendor_url": "http://www.dell.com/", - "product_name": "Dell FTOS", + "product_name": "Dell OS9", "product_url": "http://www.dell.com/us/business/p/open-platform-software/pd", "registry_version": 3, "status": "experimental", "maintainer": "GNS3 Team", "maintainer_email": "developers@gns3.net", - "usage": "Abort the BCM process and format the flash after first boot by entering these commands:\nen\nformat flash:\n\nSometimes the flash device is not available after boot.", + "usage": "Make sure the Boot priority of the configuration template is HDD or CD.\n\nAbort the BCM process and format the flash after first boot by entering these commands:\nen\nformat flash:\n\nSometimes the flash device is not available after boot.", "first_port_name": "Management0/0", "port_name_format": "fortyGigE0/{0}", "qemu": { @@ -29,7 +29,7 @@ "version": "9.8.0", "md5sum": "b9b50eda0a73407dc381792ff7975e24", "filesize": 108115968, - "download_url": "https://www.force10networks.com/csportal20/Software/Downloads.aspx", + "download_url": "https://www.force10networks.com/CSPortal20/Software/SSeriesDownloads.aspx", "compression": "zip" }, { From d892d8a458f8a5e8a7bd0b267b349d0df59fa112 Mon Sep 17 00:00:00 2001 From: bestjejust Date: Wed, 16 May 2018 23:20:14 +0200 Subject: [PATCH 079/169] Update cisco-ise.gns3a * add "-smbios type=1,product=KVM" to startup arguments to pass dmidecode check in initial Cisco ISE 2.2 setup. When not given the setup process will HALT. Might work for >2.2 but not tested yet. This global switch should not affect older images. * fix all download links (old -> new Cisco download portal) See https://communities.cisco.com/message/263876 --- appliances/cisco-ise.gns3a | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/appliances/cisco-ise.gns3a b/appliances/cisco-ise.gns3a index 950e532..8f74a9e 100644 --- a/appliances/cisco-ise.gns3a +++ b/appliances/cisco-ise.gns3a @@ -23,29 +23,36 @@ "console_type": "vnc", "boot_priority": "cd", "kvm": "require", - "options": "-smp 2" + "options": "-smp 2 -smbios type=1,product=KVM" }, "images": [ + { + "filename": "ise-2.2.0.470.SPA.x86_64.iso", + "version": "2.2.0.470", + "md5sum": "7fe5e730d0a51ef66e69d1463717ff3f", + "filesize": 8044992512, + "download_url": "https://software.cisco.com/download/home/283801620/type/283802505/release/2.2.0" + }, { "filename": "ise-2.1.0.474.SPA.x86_64.iso", "version": "2.1.0.474", "md5sum": "8dc844696790f2f5f37054899fab3e2a", "filesize": 6161475584, - "download_url": "https://software.cisco.com/download/release.html?mdfid=283801620&flowid=&softwareid=283802505&release=2.1.0&relind=AVAILABLE&rellifecycle=&reltype=latest" + "download_url": "https://software.cisco.com/download/home/283801620/type/283802505/release/2.1.0" }, { "filename": "ise-2.0.1.130.SPA.x86_64.iso", "version": "2.0.1.130", "md5sum": "25ac842fdbb61f6e75f2f8b26beea28e", "filesize": 5129990144, - "download_url": "https://software.cisco.com/download/release.html?mdfid=283801620&flowid=&softwareid=283802505&release=2.1.0&relind=AVAILABLE&rellifecycle=&reltype=latest" + "download_url": "https://software.cisco.com/download/home/283801620/type/283802505/release/2.0.1" }, { "filename": "ise-2.0.0.306.SPA.x86_64.iso", "version": "2.0.0.306", "md5sum": "b7a454ee235db29b5c208b19bfd1fbd1", "filesize": 5088827392, - "download_url": "https://software.cisco.com/download/release.html?mdfid=283801620&flowid=&softwareid=283802505&release=2.0.0&relind=AVAILABLE&rellifecycle=&reltype=latest" + "download_url": "https://software.cisco.com/download/home/283801620/type/283802505/release/2.0" }, { "filename": "empty200G.qcow2", @@ -57,6 +64,13 @@ } ], "versions": [ + { + "name": "2.2.0.470", + "images": { + "hda_disk_image": "empty200G.qcow2", + "cdrom_image": "ise-2.2.0.470.SPA.x86_64.iso" + } + }, { "name": "2.1.0.474", "images": { @@ -78,6 +92,6 @@ "cdrom_image": "ise-2.0.0.306.SPA.x86_64.iso" } } - + ] } From 6241f4701aacb81909c2ee2b7ffafae055940a0d Mon Sep 17 00:00:00 2001 From: Bernhard Ehlers Date: Wed, 30 May 2018 13:26:55 +0200 Subject: [PATCH 080/169] Update appliance hp-vsr1001 --- appliances/hp-vsr1001.gns3a | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/appliances/hp-vsr1001.gns3a b/appliances/hp-vsr1001.gns3a index d061b86..c0b7f9c 100644 --- a/appliances/hp-vsr1001.gns3a +++ b/appliances/hp-vsr1001.gns3a @@ -4,7 +4,7 @@ "description": "The HP VSR1000 Virtual Services Router Series is a software application, running on a server, which provides functionality similar to that of a physical router: robust routing between networked devices using a number of popular routing protocols. It also delivers the critical network services associated with today's enterprise routers such as VPN gateway, firewall and other security and traffic management functions.\n\nThe virtual services router (VSR) application runs on a hypervqcor on the server, and supports VMware vSphere and Linux KVM hypervqcors. From one to eight virtual CPUs are supported, depending on license.\n\nBecause the VSR1000 Series application runs the same HP Comware version 7 operating system as HP switches and routers, it enables significant operational savings. And being virtual, additional agility and ease of deployment is realized, as resources on the VSR can be dynamically allocated and upgraded upon demand as performance requirements grow.\n\nA variety of deployment models are supported including enterprise branch CPE routing, and cloud offload for small to medium workloads.", "vendor_name": "HPE", "vendor_url": "http://www.hpe.com", - "documentation_url": "http://h20195.www2.hpe.com/v2/default.aspx?cc=us&lc=en&oid=5443878", + "documentation_url": "https://support.hpe.com/hpesc/public/home/documentHome?document_type=135&sp4ts.oid=5195141", "product_name": "VSR1001", "product_url": "https://www.hpe.com/us/en/product-catalog/networking/networking-routers/pip.hpe-flexnetwork-vsr1000-virtual-services-router-series.5443163.html", "registry_version": 3, @@ -20,7 +20,8 @@ "arch": "x86_64", "console_type": "vnc", "boot_priority": "c", - "kvm": "require" + "kvm": "require", + "options": "-machine type=pc-1.0" }, "images": [ { @@ -28,56 +29,56 @@ "version": "7.10.R0327L01", "md5sum": "907de5140a4a029afe1c517cfc27ecde", "filesize": 138739712, - "download_url": "https://h10145.www1.hp.com/Downloads/DownloadSoftware.aspx?SoftwareReleaseUId=22702&ProductNumber=JG811AAE&lang=en&cc=us&prodSeriesId=5443163&SaidNumber=" + "download_url": "https://h10145.www1.hpe.com/Downloads/DownloadSoftware.aspx?SoftwareReleaseUId=22702&ProductNumber=JG811AAE&lang=en&cc=us&prodSeriesId=5443163&SaidNumber=" }, { "filename": "VSR1000_HPE-CMW710-R0326-X64.qco", "version": "7.10.R0326", "md5sum": "4153d638bfa72ca72a957ea8682ad0e2", "filesize": 138412032, - "download_url": "https://h10145.www1.hp.com/Downloads/SoftwareReleases.aspx?ProductNumber=JG811AAE&lang=en&cc=us&prodSeriesId=5443163&SoftwareReleaseUId=11832&SerialNumber=&PurchaseDate=" + "download_url": "https://h10145.www1.hpe.com/Downloads/DownloadSoftware.aspx?SoftwareReleaseUId=21985&ProductNumber=JG811AAE&lang=en&cc=us&prodSeriesId=5443163&SaidNumber=" }, { "filename": "VSR1000_HPE-CMW710-E0325-X64.qco", "version": "7.10.E0325", "md5sum": "a6731f3af86bee9b209a8b342be6bf75", "filesize": 111738880, - "download_url": "https://h10145.www1.hp.com/Downloads/SoftwareReleases.aspx?ProductNumber=JG811AAE&lang=en&cc=us&prodSeriesId=5443163&SoftwareReleaseUId=11832&SerialNumber=&PurchaseDate=" + "download_url": "https://h10145.www1.hpe.com/Downloads/DownloadSoftware.aspx?SoftwareReleaseUId=20278&ProductNumber=JG811AAE&lang=en&cc=us&prodSeriesId=5443163&SaidNumber=" }, { "filename": "VSR1000_HPE-CMW710-E0518-X64.qco", "version": "7.10.E0518", "md5sum": "4991436442ae706df8041c69778a48df", "filesize": 201588736, - "download_url": "https://h10145.www1.hp.com/Downloads/SoftwareReleases.aspx?ProductNumber=JG811AAE&lang=en&cc=us&prodSeriesId=5443163&SoftwareReleaseUId=11832&SerialNumber=&PurchaseDate=" + "download_url": "https://h10145.www1.hpe.com/Downloads/DownloadSoftware.aspx?SoftwareReleaseUId=21929&ProductNumber=JG811AAE&lang=en&cc=us&prodSeriesId=5443163&SaidNumber=" }, { "filename": "VSR1000_HPE-CMW710-E0324-X64.qco", "version": "7.10.E0324", "md5sum": "7a0ff32281284c042591c6181426effd", "filesize": 111411200, - "download_url": "https://h10145.www1.hp.com/Downloads/SoftwareReleases.aspx?ProductNumber=JG811AAE&lang=en&cc=us&prodSeriesId=5443163&SoftwareReleaseUId=11832&SerialNumber=&PurchaseDate=" + "download_url": "https://h10145.www1.hpe.com/Downloads/DownloadSoftware.aspx?SoftwareReleaseUId=18977&ProductNumber=JG811AAE&lang=en&cc=us&prodSeriesId=5443163&SaidNumber=" }, { "filename": "VSR1000_HPE-CMW710-E0322P01-X64.qco", "version": "7.10.E0322P01", "md5sum": "0aa2dbe5910fa64eb8c623e083b21a5e", "filesize": 110428160, - "download_url": "https://h10145.www1.hp.com/Downloads/SoftwareReleases.aspx?ProductNumber=JG811AAE&lang=en&cc=us&prodSeriesId=5443163&SoftwareReleaseUId=11832&SerialNumber=&PurchaseDate=" + "download_url": "https://h10145.www1.hpe.com/Downloads/DownloadSoftware.aspx?SoftwareReleaseUId=18976&ProductNumber=JG811AAE&lang=en&cc=us&prodSeriesId=5443163&SaidNumber=" }, { "filename": "VSR1000_HPE-CMW710-E0322-X64.qco", "version": "7.10.E0322", "md5sum": "05e0dab6b7aa489f627448b4d79b1f50", "filesize": 113770496, - "download_url": "https://h10145.www1.hp.com/Downloads/SoftwareReleases.aspx?ProductNumber=JG811AAE&lang=en&cc=us&prodSeriesId=5443163&SoftwareReleaseUId=11832&SerialNumber=&PurchaseDate=" + "download_url": "https://h10145.www1.hpe.com/Downloads/DownloadSoftware.aspx?SoftwareReleaseUId=18975&ProductNumber=JG811AAE&lang=en&cc=us&prodSeriesId=5443163&SaidNumber=" }, { "filename": "VSR1000_HPE-CMW710-E0321P01-X64.qco", "version": "7.10.E0321P01", "md5sum": "26d4375fafeedc81f298f29f593de252", "filesize": 113639424, - "download_url": "https://h10145.www1.hp.com/Downloads/SoftwareReleases.aspx?ProductNumber=JG811AAE&lang=en&cc=us&prodSeriesId=5443163&SoftwareReleaseUId=11832&SerialNumber=&PurchaseDate=" + "download_url": "https://h10145.www1.hpe.com/Downloads/DownloadSoftware.aspx?SoftwareReleaseUId=16838&ProductNumber=JG811AAE&lang=en&cc=us&prodSeriesId=5443163&SaidNumber=" } ], "versions": [ From 5defd5c9f53f48fe9d9de276c51964505d1c9a3d Mon Sep 17 00:00:00 2001 From: Andre Sencioles Date: Sat, 2 Jun 2018 16:06:03 +1200 Subject: [PATCH 081/169] Reduce vMX vCP ram size to 1024MB 1024MB is enought for lite mode as per Juniper vMX release notes --- appliances/juniper-vmx-vcp.gns3a | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appliances/juniper-vmx-vcp.gns3a b/appliances/juniper-vmx-vcp.gns3a index b84742a..25852e0 100644 --- a/appliances/juniper-vmx-vcp.gns3a +++ b/appliances/juniper-vmx-vcp.gns3a @@ -18,7 +18,7 @@ "qemu": { "adapter_type": "e1000", "adapters": 2, - "ram": 2048, + "ram": 1024, "arch": "x86_64", "console_type": "telnet", "kvm": "require", From 4ae58de64beccf7e60a416a9d2360b4fa6cb58f4 Mon Sep 17 00:00:00 2001 From: Andre Sencioles Date: Sat, 2 Jun 2018 16:07:07 +1200 Subject: [PATCH 082/169] Add 17.4R1.16-KVM and 15.1F6.9-KVM --- appliances/juniper-vmx-vcp.gns3a | 54 +++++++++++++++++++++++++++++++- appliances/juniper-vmx-vfp.gns3a | 34 +++++++++++++++++--- 2 files changed, 83 insertions(+), 5 deletions(-) diff --git a/appliances/juniper-vmx-vcp.gns3a b/appliances/juniper-vmx-vcp.gns3a index 25852e0..a07e00f 100644 --- a/appliances/juniper-vmx-vcp.gns3a +++ b/appliances/juniper-vmx-vcp.gns3a @@ -25,6 +25,24 @@ "options": "-nographic -enable-kvm" }, "images": [ + { + "filename": "junos-vmx-x86-64-17.4R1.16.qcow2", + "version": "17.4R1.16-KVM", + "md5sum": "85239193e852d643dfd9d5c257240bdf", + "filesize": 1325400064 + }, + { + "filename": "vmxhdd-17.4R1.16.img", + "version": "17.4R1.16-KVM", + "md5sum": "69e9821ebc59367527336d8bcecd171c", + "filesize": 108986368 + }, + { + "filename": "metadata-usb-re-17.4R1.16.img", + "version": "17.4R1.16-KVM", + "md5sum": "a5b125822b798c7167c35966ea00229a", + "filesize": 16777216 + }, { "filename": "vcp_17.1R1.8-disk1.vmdk", "version": "17.1R1.8-ESXi", @@ -261,9 +279,35 @@ "md5sum": "af48f7e03f94ffcfeecd15a59a4f1567", "filesize": 16777216, "download_url": "http://www.juniper.net/us/en/products-services/routing/mx-series/vmx/" + }, + { + "filename": "junos-vmx-x86-64-15.1F6.9.qcow2", + "version": "15.1F6.9-KVM", + "md5sum": "595f532b95d6d98590d0375a3d6d14b6", + "filesize": 994181120 + }, + { + "filename": "vmxhdd-15.1F6.9.img", + "version": "15.1F6.9-KVM", + "md5sum": "bae35d0bb72946d1e91ff9c5e7ddbf86", + "filesize": 108986368 + }, + { + "filename": "metadata-usb-re-15.1F6.9.img", + "version": "15.1F6.9-KVM", + "md5sum": "15238c3dbc987d1a641c919efe2731c5", + "filesize": 16777216 } ], "versions": [ + { + "name": "17.4R1.16-KVM", + "images": { + "hda_disk_image": "junos-vmx-x86-64-17.4R1.16.qcow2", + "hdb_disk_image": "vmxhdd-17.4R1.16.img", + "hdc_disk_image": "metadata-usb-re-17.4R1.16.img" + } + }, { "name": "17.1R1.8-ESXi", "images": { @@ -367,6 +411,14 @@ "hdb_disk_image": "vmxhdd-15.1.img", "hdc_disk_image": "metadata-usb-15.1.img" } - } + }, + { + "name": "15.1F6.9", + "images": { + "hda_disk_image": "junos-vmx-x86-64-15.1F6.9.qcow2", + "hdb_disk_image": "vmxhdd-15.1F6.9.img", + "hdc_disk_image": "metadata-usb-re-15.1F6.9.img" + } + } ] } diff --git a/appliances/juniper-vmx-vfp.gns3a b/appliances/juniper-vmx-vfp.gns3a index cb0a077..b7c0c51 100644 --- a/appliances/juniper-vmx-vfp.gns3a +++ b/appliances/juniper-vmx-vfp.gns3a @@ -25,13 +25,20 @@ "options": "-nographic -enable-kvm -smp cpus=3" }, "images": [ + { + "filename": "vFPC-20171213.img", + "version": "17.4R1.16-KVM", + "md5sum": "848a6256da7296e8fede368a258c68e4", + "filesize": 2313158656, + "download_url": "http://www.juniper.net/us/en/products-services/routing/mx-series/vmx/" + }, { "filename": "vfpc_17.1R1.8-disk1.vmdk", "version": "17.1R1.8-ESXi", "md5sum": "169dd487b8547d58b12b2918a5667360", "filesize": 102820352, "download_url": "http://www.juniper.net/us/en/products-services/routing/mx-series/vmx/" - }, + }, { "filename": "vFPC-20170216.img", "version": "17.1R1.8-KVM", @@ -108,17 +115,30 @@ "md5sum": "5ccf252002184a21413cad23fd239c3f", "filesize": 2313158656, "download_url": "http://www.juniper.net/us/en/products-services/routing/mx-series/vmx/" - }, + }, + { + "filename": "vFPC-15.1F6.9.img", + "version": "15.1F6.9-KVM", + "md5sum": "7328501fdfa9b160955bc136664f1e86", + "filesize": 2313158656, + "download_url": "http://www.juniper.net/us/en/products-services/routing/mx-series/vmx/" + }, { "filename": "vFPC-20151203.img", "version": "15.1F4.15", "md5sum": "b3faa91b4d20836a9a6dd6bad2629dd1", "filesize": 2313158656, "download_url": "http://www.juniper.net/us/en/products-services/routing/mx-series/vmx/" - } + } ], "versions": [ + { + "name": "17.4R1.16-KVM", + "images": { + "hda_disk_image": "vFPC-20171213.img" + } + }, { "name": "17.1R1.8-ESXi", "images": { @@ -191,12 +211,18 @@ "hda_disk_image": "vFPC-20160617.img" } }, + { + "name": "15.1F6.9-KVM", + "images": { + "hda_disk_image": "vFPC-15.1F6.9.img" + } + }, { "name": "15.1F4.15", "images": { "hda_disk_image": "vFPC-20151203.img" } } - + ] } From 982c35928b0c6b5664cdb5ea54b00eae8a5448b2 Mon Sep 17 00:00:00 2001 From: Jeremy Grossmann Date: Wed, 6 Jun 2018 16:43:40 +0700 Subject: [PATCH 083/169] Update README.rst --- symbols/README.rst | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/symbols/README.rst b/symbols/README.rst index 758a089..ae1b614 100644 --- a/symbols/README.rst +++ b/symbols/README.rst @@ -1,31 +1,38 @@ Symbols ******* -This directory contain symbols that you can import in GNS3. +This directory contains symbols that you can use in GNS3. Rules ===== -* All symbols must be provided as a SVG file -* A file named symbol.txt should exist and contain symbol licence -* Try to keep a small file size -* Max height 70px unless you have a specific reason +* All symbols must be a SVG file +* A file named symbol.txt should exist and contains the symbol licence +* Try to keep the file size small +* The recommended maximum width and height is 70px, please see how to resize a SVG below -Resize a svg +Resize a SVG ============ -If the height of your SVG is too big. You can resize it with -a tools understanding SVG. +It is possible to resize a SVG file using a software like Inkscape or any +other editor that works for SVG images. -For imagemagick you need a version with rsvg (often it's OK on Linux). -For installating it on mac with Homebrew: +Alternatively, you could use ImageMagick (with rsvg support) on Mac OS and Linux + +Example to install ImageMagick on Mac using Homebrew: ``` brew install imagemagick --with-librsvg ``` -For resizing with a height of 70: +Example to install ImageMagick on Debian or Ubuntu: + +``` +sudo apt-get install imagemagick +``` + +Example to resize to a width and height of 70px: ``` convert -background none symbols/firefox.svg -resize x70 firefox.svg From 721796ed1db85e2a6a06b1ef5c90908939e55a80 Mon Sep 17 00:00:00 2001 From: Paul Basov Date: Wed, 4 Jul 2018 15:23:15 +0000 Subject: [PATCH 084/169] Update cumulus-vx.gns3a cumulus-vx-3.6.1 added with a correct `direct_download_url` --- appliances/cumulus-vx.gns3a | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/appliances/cumulus-vx.gns3a b/appliances/cumulus-vx.gns3a index 085fc27..ffed05f 100644 --- a/appliances/cumulus-vx.gns3a +++ b/appliances/cumulus-vx.gns3a @@ -23,6 +23,14 @@ "kvm": "require" }, "images": [ + { + "filename": "cumulus-linux-3.6.1-vx-amd64.qcow2", + "version": "3.6.1", + "md5sum": "b2145a689ceea668d003a0d2f2faa045", + "filesize": 1068761088, + "download_url": "https://cumulusnetworks.com/cumulus-vx/download/", + "direct_download_url": "https://s3.amazonaws.com/cumulusfiles/CumulusLinux-3.6.1/cumulus-linux-3.6.1-vx-amd64.qcow2" + }, { "filename": "cumulus-linux-3.6.0-vx-amd64.qcow2", "version": "3.6.0", @@ -157,6 +165,12 @@ } ], "versions": [ + { + "name": "3.6.1", + "images": { + "hda_disk_image": "cumulus-linux-3.6.1-vx-amd64.qcow2" + } + }, { "name": "3.6.0", "images": { From 0c3e7935e3d9e7a46922be99a10fe6494589b10c Mon Sep 17 00:00:00 2001 From: "Stephen C. Moore" Date: Mon, 9 Jul 2018 09:05:16 -0500 Subject: [PATCH 085/169] New nxosv9k version nxosv-final.7.0.3.I7.4.qcow2" --- appliances/cisco-nxosv9k.gns3a | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/appliances/cisco-nxosv9k.gns3a b/appliances/cisco-nxosv9k.gns3a index 653f492..b8616e3 100644 --- a/appliances/cisco-nxosv9k.gns3a +++ b/appliances/cisco-nxosv9k.gns3a @@ -25,6 +25,13 @@ "kvm": "require" }, "images": [ + { + "filename": "nxosv-final.7.0.3.I7.4.qcow2", + "version": "7.0.3.I7.4", + "md5sum": "1e980c95ca47045ae45ded6e07fabfb8", + "filesize": 985792512, + "download_url": "https://software.cisco.com/download/" + }, { "filename": "nxosv-final.7.0.3.I7.3.qcow2", "version": "7.0.3.I7.3", @@ -78,6 +85,13 @@ } ], "versions": [ + { + "name": "7.0.3.I7.4", + "images": { + "bios_image": "OVMF-20160813.fd", + "hda_disk_image": "nxosv-final.7.0.3.I7.4.qcow2" + } + }, { "name": "7.0.3.I7.3", "images": { From f40ce4c96434dc7c8e4130064e1b49094d9ce1b4 Mon Sep 17 00:00:00 2001 From: "Stephen C. Moore" Date: Mon, 9 Jul 2018 09:25:03 -0500 Subject: [PATCH 086/169] New ASAv version asav983.qcow2 --- appliances/cisco-asav.gns3a | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/appliances/cisco-asav.gns3a b/appliances/cisco-asav.gns3a index 50d8b7b..b61e640 100644 --- a/appliances/cisco-asav.gns3a +++ b/appliances/cisco-asav.gns3a @@ -25,6 +25,13 @@ "kvm": "require" }, "images": [ + { + "filename": "asav983.qcow2", + "version": "9.8.3", + "md5sum": "f9cf40b2d555a1bea6d36bc83f06ea33", + "filesize": 199491584, + "download_url": "https://software.cisco.com/download/home/286119613/type/280775065/release/9.8.3" + }, { "filename": "asav981-5.qcow2", "version": "9.8.1-5", @@ -97,6 +104,12 @@ } ], "versions": [ + { + "name": "9.8.3", + "images": { + "hda_disk_image": "asav983.qcow2" + } + }, { "name": "9.8.1-5", "images": { From 2e7ea2f89d9eadecf3c6e73e614b14eec7ccc1b6 Mon Sep 17 00:00:00 2001 From: Gary Ossewaarde Date: Tue, 10 Jul 2018 15:51:31 -0400 Subject: [PATCH 087/169] Added new definition for Aruba Virtual Mobility Controller --- appliances/aruba-vmc.gns3a | 56 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 appliances/aruba-vmc.gns3a diff --git a/appliances/aruba-vmc.gns3a b/appliances/aruba-vmc.gns3a new file mode 100644 index 0000000..450a2c6 --- /dev/null +++ b/appliances/aruba-vmc.gns3a @@ -0,0 +1,56 @@ +{ + "versions": [ + { + "name": "8.2.1.1", + "images": { + "hda_disk_image": "ArubaOS_VMC_8.2.1.1_65265-disk1.qcow2", + "hdb_disk_image": "ArubaOS_VMC_8.2.1.1_65265-disk2.qcow2" + } + } + ], + "status": "stable", + "name": "Aruba VMC", + "product_name": "Aruba VMC", + "maintainer_email": "gary.ossewaarde@gmail.com", + "vendor_url": "arubanetworks.com", + "vendor_name": "HPE Aruba", + "images": [ + { + "filename": "ArubaOS_VMC_8.2.1.1_65265-disk1.qcow2", + "version": "8.2.1.1", + "md5sum": "f3bc233f0714e4b1cc127e337d077574", + "filesize": 197066752, + "download_url": "http://support.arubanetworks.com/" + }, + { + "filename": "ArubaOS_VMC_8.2.1.1_65265-disk2.qcow2", + "version": "8.2.1.1", + "md5sum": "18ede2afc7595fdac4508a8a3972e302", + "filesize": 19202048, + "download_url": "http://support.arubanetworks.com/" + } + + ], + "port_name_format": "GE0/0/{0}", + "qemu": { + "arch": "x86_64", + "ram": 6144, + "adapters": 4, + "hdb_disk_interface": "ide", + "hdc_disk_interface": "ide", + "hda_disk_interface": "ide", + "cpus": 3, + "kvm": "require", + "kernel_command_line": "-smp cores=3,threads=1,sockets=1 -cpu host -nographic", + "adapter_type": "e1000", + "console_type": "vnc", + "options": "-smp cores=3,threads=1,sockets=1 -cpu host -nographic", + "process_priority": "normal" + }, + "availability": "service-contract", + "category": "guest", + "maintainer": "Gary Ossewaarde", + "description": "Aruba Virtual Mobility Controller", + "first_port_name": "mgmt", + "registry_version": 1 +} From a362078d55f46b613193fe9510cd5ac7e514025a Mon Sep 17 00:00:00 2001 From: ziajka Date: Fri, 13 Jul 2018 12:41:47 +0200 Subject: [PATCH 088/169] Fix PA-VM appliance - wrong file --- appliances/pan-vm-fw.gns3a | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appliances/pan-vm-fw.gns3a b/appliances/pan-vm-fw.gns3a index 22c6ae6..dc56071 100644 --- a/appliances/pan-vm-fw.gns3a +++ b/appliances/pan-vm-fw.gns3a @@ -92,7 +92,7 @@ { "name": "8.0.0 (ESX)", "images": { - "hda_disk_image": "PA-VM-ESX-8.0.0-disk1.vmdk2" + "hda_disk_image": "PA-VM-ESX-8.0.0-disk1.vmdk" } }, { From a6bfc85d867a13ee39239729073c8eb5884c1714 Mon Sep 17 00:00:00 2001 From: Bernhard Ehlers Date: Mon, 23 Jul 2018 01:20:50 +0200 Subject: [PATCH 089/169] Add Arista cEOS --- appliances/arista-ceos.gns3a | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 appliances/arista-ceos.gns3a diff --git a/appliances/arista-ceos.gns3a b/appliances/arista-ceos.gns3a new file mode 100644 index 0000000..3c7851e --- /dev/null +++ b/appliances/arista-ceos.gns3a @@ -0,0 +1,19 @@ +{ + "name": "cEOS", + "category": "multilayer_switch", + "description": "Arista cEOS\u2122 introduces the containerized packaging of EOS software and its agents for deployment in cloud infrastructure with the same proven EOS software image that runs on all Arista products. These flexible deployment options empower cloud network operators that are customizing their operating environments to provide a uniform workflow for development, testing and deployment of differentiated services.", + "vendor_name": "Arista", + "vendor_url": "http://www.arista.com/", + "product_name": "cEOS", + "registry_version": 3, + "status": "experimental", + "maintainer": "GNS3 Team", + "maintainer_email": "developers@gns3.net", + "usage": "Download:\nCreate a (free) Arista account and login.\nThen navigate to Support / Software Download and download the cEOS-lab image.\n\nInstallation:\nCopy the image to your GNS3VM (or other Linux) server, then run the following commands:\n\ndocker import cEOS-lab.tar.xz ceosimage:4.20.5F\necho \"rm /etc/systemd/system/getty.target.wants/getty@tty1.service\" | \\\ndocker run --name=ceos-container -e CEOS=1 -e container=docker -e EOS_PLATFORM=ceossim -e SKIP_ZEROTOUCH_BARRIER_IN_SYSDBINIT=1 -e ETBA=1 -e INTFTYPE=eth -i ceosimage:4.20.5F sh\ndocker commit --change='CMD [\"/sbin/init\"]' --change='VOLUME /mnt/flash' ceos-container ceosimage:GNS3\ndocker rm ceos-container\n\nUsage:\nThe login is admin, with no password by default", + "symbol": ":/symbols/multilayer_switch.svg", + "docker": { + "adapters": 8, + "image": "ceosimage:GNS3", + "console_type": "telnet" + } +} From 2a91794756600c2cde2b40842a48577e5aaec484 Mon Sep 17 00:00:00 2001 From: "Stephen C. Moore" Date: Wed, 25 Jul 2018 08:58:38 -0500 Subject: [PATCH 090/169] Update cisco-iosxrv9k.gns3a Added fixes from https://github.com/GNS3/gns3-gui/issues/2544 (interfaces not showing up.) Increased interface count to 7, which allows for 1 management, 2 internal unused, and 4 usable. Added version 6.4.1. --- appliances/cisco-iosxrv9k.gns3a | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/appliances/cisco-iosxrv9k.gns3a b/appliances/cisco-iosxrv9k.gns3a index 8025c73..8fc42d0 100644 --- a/appliances/cisco-iosxrv9k.gns3a +++ b/appliances/cisco-iosxrv9k.gns3a @@ -15,15 +15,21 @@ "first_port_name": "MgmtEth0/0/CPU0/0", "port_name_format": "GigabitEthernet0/0/0/{0}", "qemu": { - "adapter_type": "e1000", - "adapters": 4, + "adapter_type": "virtio-net-pci", + "adapters": 7, "ram": 16384, "arch": "x86_64", "console_type": "telnet", "kvm": "require", - "options": "-smp 4" + "options": "-smp 4 -cpu host" }, "images": [ + { "filename": "xrv9k-fullk9-x-6.4.1.qcow2", + "version": "6.4.1", + "md5sum": "9c56b684e307706005a503e289cb9317", + "filesize": 1304887296, + "download_url": "https://software.cisco.com/download/home/286288939/type/280805694/release/6.4.1" + }, { "filename": "xrv9k-fullk9-x-6.2.25.qcow2", "version": "6.2.25", @@ -47,6 +53,12 @@ } ], "versions": [ + { + "name": "6.4.1", + "images": { + "hda_disk_image": "xrv9k-fullk9-x-6.4.1.qcow2" + } + }, { "name": "6.2.25", "images": { From 150fa9388fd498e634a9b281e4f36f852469922d Mon Sep 17 00:00:00 2001 From: "Stephen C. Moore" Date: Thu, 26 Jul 2018 12:44:42 -0500 Subject: [PATCH 091/169] Update cisco-nxosv9k.gns3a Added version 9.2(1) (new Cisco unified version numbers) --- appliances/cisco-nxosv9k.gns3a | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/appliances/cisco-nxosv9k.gns3a b/appliances/cisco-nxosv9k.gns3a index b8616e3..0078a90 100644 --- a/appliances/cisco-nxosv9k.gns3a +++ b/appliances/cisco-nxosv9k.gns3a @@ -25,6 +25,13 @@ "kvm": "require" }, "images": [ + { + "filename": "nxosv-final.9.2.1.qcow2", + "version": "9.2.1", + "md5sum": "1d7fa4654602d7ffbf62544edfe71986", + "filesize": 1330315264, + "download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.2%25281%2529" + }, { "filename": "nxosv-final.7.0.3.I7.4.qcow2", "version": "7.0.3.I7.4", @@ -85,6 +92,13 @@ } ], "versions": [ + { + "name": "9.2.1", + "images": { + "bios_image": "OVMF-20160813.fd", + "hda_disk_image": "nxosv-final.9.2.1.qcow2" + } + }, { "name": "7.0.3.I7.4", "images": { From f757dcf69a47fa0ca5ff12ac24cb79b03f40da7c Mon Sep 17 00:00:00 2001 From: "Stephen C. Moore" Date: Thu, 26 Jul 2018 13:26:09 -0500 Subject: [PATCH 092/169] Update cisco-asav.gns3a ASAv 9.9.2 --- appliances/cisco-asav.gns3a | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/appliances/cisco-asav.gns3a b/appliances/cisco-asav.gns3a index b61e640..9d45fb4 100644 --- a/appliances/cisco-asav.gns3a +++ b/appliances/cisco-asav.gns3a @@ -25,6 +25,13 @@ "kvm": "require" }, "images": [ + { + "filename": "asav992.qcow2", + "version": "9.9.2", + "md5sum": "0cba453dbf70313d8d63a00700618f52", + "filesize": 204865536, + "download_url": "https://software.cisco.com/download/home/286119613/type/280775065/release/9.9.2" + }, { "filename": "asav983.qcow2", "version": "9.8.3", @@ -104,6 +111,12 @@ } ], "versions": [ + { + "name": "9.9.2", + "images": { + "hda_disk_image": "asav992.qcow2" + } + }, { "name": "9.8.3", "images": { From 346838bfb04af7c151c8fa7c85d41d8d35541704 Mon Sep 17 00:00:00 2001 From: "Stephen C. Moore" Date: Thu, 26 Jul 2018 13:59:33 -0500 Subject: [PATCH 093/169] Update cisco-csr1000v.gns3a 16.9.1 --- appliances/cisco-csr1000v.gns3a | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/appliances/cisco-csr1000v.gns3a b/appliances/cisco-csr1000v.gns3a index 5078d9f..8ef6dac 100644 --- a/appliances/cisco-csr1000v.gns3a +++ b/appliances/cisco-csr1000v.gns3a @@ -22,6 +22,13 @@ "kvm": "require" }, "images": [ + { + "filename": "csr1000v-universalk9.16.09.01-serial.qcow2", + "version": "16.9.1", + "md5sum": "d7e1c83b6f513beb4200c7691d119086", + "filesize": 917897216, + "download_url": "https://software.cisco.com/download/home/284364978/type/282046477/release/Fuji-16.9.1" + }, { "filename": "csr1000v-universalk9.16.08.01a-serial.qcow2", "version": "16.8.1a", @@ -101,6 +108,12 @@ } ], "versions": [ + { + "name": "16.9.1", + "images": { + "hda_disk_image": "csr1000v-universalk9.16.09.01-serial.qcow2" + } + }, { "name": "16.8.1a", "images": { From cfe68c0c10cf0929336ffc7140f404cf8aa2db17 Mon Sep 17 00:00:00 2001 From: "Stephen C. Moore" Date: Fri, 27 Jul 2018 09:47:01 -0500 Subject: [PATCH 094/169] Update arista-veos.gns3a Update all active code trains to mainline release. --- appliances/arista-veos.gns3a | 42 ++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/appliances/arista-veos.gns3a b/appliances/arista-veos.gns3a index 58376af..5076911 100644 --- a/appliances/arista-veos.gns3a +++ b/appliances/arista-veos.gns3a @@ -45,6 +45,13 @@ "filesize": 620625920, "download_url": "https://www.arista.com/en/support/software-download" }, + { + "filename": "vEOS-lab-4.17.8M.vmdk", + "version": "4.17.8M", + "md5sum": "afc79a06f930ea2cc0ae3e03cbfd3f23", + "filesize": 608829440, + "download_url": "https://www.arista.com/en/support/software-download" + }, { "filename": "vEOS-lab-4.17.2F.vmdk", "version": "4.17.2F", @@ -52,6 +59,13 @@ "filesize": 609615872, "download_url": "https://www.arista.com/en/support/software-download" }, + { + "filename": "vEOS-lab-4.16.13M.vmdk", + "version": "4.16.13M", + "md5sum": "4d0facf90140fc3aab031f0f8f88a32f", + "filesize": 521404416, + "download_url": "https://www.arista.com/en/support/software-download" + }, { "filename": "vEOS-lab-4.16.6M.vmdk", "version": "4.16.6M", @@ -59,6 +73,13 @@ "filesize": 519962624, "download_url": "https://www.arista.com/en/support/software-download" }, + { + "filename": "vEOS-lab-4.15.10M.vmdk", + "version": "4.15.10M", + "md5sum": "98e08281a9c48ddf6f3c5d62a124a20f", + "filesize": 517079040, + "download_url": "https://www.arista.com/en/support/software-download" + }, { "filename": "vEOS-lab-4.15.5M.vmdk", "version": "4.15.5M", @@ -117,6 +138,13 @@ "hdb_disk_image": "vEOS-lab-4.18.1F.vmdk" } }, + { + "name": "4.17.8M", + "images": { + "hda_disk_image": "Aboot-veos-serial-8.0.0.iso", + "hdb_disk_image": "vEOS-lab-4.17.8M.vmdk" + } + }, { "name": "4.17.2F", "images": { @@ -124,6 +152,13 @@ "hdb_disk_image": "vEOS-lab-4.17.2F.vmdk" } }, + { + "name": "4.16.13M", + "images": { + "hda_disk_image": "Aboot-veos-serial-8.0.0.iso", + "hdb_disk_image": "vEOS-lab-4.16.13M.vmdk" + } + }, { "name": "4.16.6M", "images": { @@ -131,6 +166,13 @@ "hdb_disk_image": "vEOS-lab-4.16.6M.vmdk" } }, + { + "name": "4.15.10M", + "images": { + "hda_disk_image": "Aboot-veos-serial-8.0.0.iso", + "hdb_disk_image": "vEOS-lab-4.15.10M.vmdk" + } + }, { "name": "4.15.5M", "images": { From 8d8fb59f6b6d52aeb59e881643b0e0a17a1631e8 Mon Sep 17 00:00:00 2001 From: "Stephen C. Moore" Date: Mon, 30 Jul 2018 09:45:52 -0500 Subject: [PATCH 095/169] Update cisco-iosxrv9k.gns3a Add note about delay for network interfaces. --- appliances/cisco-iosxrv9k.gns3a | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appliances/cisco-iosxrv9k.gns3a b/appliances/cisco-iosxrv9k.gns3a index 8fc42d0..0c80583 100644 --- a/appliances/cisco-iosxrv9k.gns3a +++ b/appliances/cisco-iosxrv9k.gns3a @@ -11,7 +11,7 @@ "status": "experimental", "maintainer": "GNS3 Team", "maintainer_email": "developers@gns3.net", - "usage": "Default username/password: admin/admin, cisco/cisco and lab/lab. There is no default configuration present.", + "usage": "Default username/password: admin/admin, cisco/cisco and lab/lab. There is no default configuration present. Interfaces may take several minutes to be usable after appliance boot.", "first_port_name": "MgmtEth0/0/CPU0/0", "port_name_format": "GigabitEthernet0/0/0/{0}", "qemu": { From 678f20b6e74c7844a043d6a8eb5c34f14e9f16b5 Mon Sep 17 00:00:00 2001 From: adosztal Date: Thu, 2 Aug 2018 10:14:07 +0200 Subject: [PATCH 096/169] New release --- appliances/bsdrp.gns3a | 15 +++++++++++++++ appliances/cumulus-vx.gns3a | 14 ++++++++++++++ appliances/exos.gns3a | 15 +++++++++++++++ docker/network_automation/Dockerfile | 2 +- 4 files changed, 45 insertions(+), 1 deletion(-) diff --git a/appliances/bsdrp.gns3a b/appliances/bsdrp.gns3a index d7319ea..838441c 100644 --- a/appliances/bsdrp.gns3a +++ b/appliances/bsdrp.gns3a @@ -19,6 +19,15 @@ "kvm": "allow" }, "images": [ + { + "filename": "BSDRP-1.90-full-amd64-serial.img", + "version": "1.90", + "md5sum": "78b7182bed93888d17d18a67d5fec3a7", + "filesize": 1000000000, + "download_url": "https://bsdrp.net/downloads", + "direct_download_url": "https://sourceforge.net/projects/bsdrp/files/BSD_Router_Project/1.90/amd64/BSDRP-1.90-full-amd64-serial.img.xz/download", + "compression": "xz" + }, { "filename": "BSDRP-1.80-full-amd64-serial.img", "version": "1.80", @@ -39,6 +48,12 @@ } ], "versions": [ + { + "name": "1.90", + "images": { + "hda_disk_image": "BSDRP-1.90-full-amd64-serial.img" + } + }, { "name": "1.80", "images": { diff --git a/appliances/cumulus-vx.gns3a b/appliances/cumulus-vx.gns3a index ffed05f..e5baedf 100644 --- a/appliances/cumulus-vx.gns3a +++ b/appliances/cumulus-vx.gns3a @@ -23,6 +23,14 @@ "kvm": "require" }, "images": [ + { + "filename": "cumulus-linux-3.6.2-vx-amd64.qcow2", + "version": "3.6.2", + "md5sum": "02b0621d68fb2e709b4bcc48748c7b6f", + "filesize": 1150746624, + "download_url": "https://cumulusnetworks.com/cumulus-vx/download/", + "direct_download_url": "https://s3.amazonaws.com/cumulusfiles/CumulusLinux-3.6.2/cumulus-linux-3.6.2-vx-amd64.qcow2" + }, { "filename": "cumulus-linux-3.6.1-vx-amd64.qcow2", "version": "3.6.1", @@ -165,6 +173,12 @@ } ], "versions": [ + { + "name": "3.6.2", + "images": { + "hda_disk_image": "cumulus-linux-3.6.2-vx-amd64.qcow2" + } + }, { "name": "3.6.1", "images": { diff --git a/appliances/exos.gns3a b/appliances/exos.gns3a index 3f09c66..2aa8522 100644 --- a/appliances/exos.gns3a +++ b/appliances/exos.gns3a @@ -26,6 +26,14 @@ "options": "-smp 2 -cpu core2duo" }, "images": [ + { + "filename": "exosvm-22.5.1.7.iso", + "version": "22.5.1.7", + "md5sum": "132ac87de368ab55d1f496f292338cd4", + "filesize": 51779584, + "download_url": "https://github.com/extremenetworks/Virtual_EXOS", + "direct_download_url": "https://github.com/extremenetworks/Virtual_EXOS/raw/master/vm-22.5.1.7.iso" + }, { "filename": "exosvm-22.4.1.4.iso", "version": "22.4.1.4", @@ -100,6 +108,13 @@ } ], "versions": [ + { + "name": "22.5.1.7", + "images": { + "hda_disk_image": "empty8G.qcow2", + "cdrom_image": "exosvm-22.5.1.7.iso" + } + }, { "name": "22.4.1.4", "images": { diff --git a/docker/network_automation/Dockerfile b/docker/network_automation/Dockerfile index 68c6890..be722c8 100644 --- a/docker/network_automation/Dockerfile +++ b/docker/network_automation/Dockerfile @@ -6,7 +6,7 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get -y --no-install-rec install telnet curl openssh-client nano vim-tiny iputils-ping python build-essential \ libssl-dev libffi-dev python-pip python3-pip python-setuptools \ python-dev net-tools python3 software-properties-common \ - && apt-add-repository -y ppa:ansible/ansible-2.4 \ + && apt-add-repository -y ppa:ansible/ansible-2.6 \ && apt-get update && apt-get -y --no-install-recommends install ansible \ && rm -rf /var/lib/apt/lists/* \ && pip install --upgrade pip \ From f11fd73ae4be82738348afef0b9868e082067081 Mon Sep 17 00:00:00 2001 From: "Stephen C. Moore" Date: Tue, 7 Aug 2018 08:44:02 -0500 Subject: [PATCH 097/169] Latest image 6.4.2 --- appliances/cisco-iosxrv9k.gns3a | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/appliances/cisco-iosxrv9k.gns3a b/appliances/cisco-iosxrv9k.gns3a index 0c80583..8618d0e 100644 --- a/appliances/cisco-iosxrv9k.gns3a +++ b/appliances/cisco-iosxrv9k.gns3a @@ -24,6 +24,13 @@ "options": "-smp 4 -cpu host" }, "images": [ + { + "filename": "xrv9k-fullk9-x-6.4.2.qcow2", + "version": "6.4.2", + "md5sum": "6958763192c7bb59a1b8049d377de1b4", + "filesize": 1311703040, + "download_url": "https://software.cisco.com/download/home/286288939/type/280805694/release/6.4.2" + }, { "filename": "xrv9k-fullk9-x-6.4.1.qcow2", "version": "6.4.1", "md5sum": "9c56b684e307706005a503e289cb9317", @@ -53,6 +60,12 @@ } ], "versions": [ + { + "name": "6.4.2", + "images": { + "hda_disk_image": "xrv9k-fullk9-x-6.4.2.qcow2" + } + }, { "name": "6.4.1", "images": { From 557b1a1fe63051376fbb83400fab359324efacd6 Mon Sep 17 00:00:00 2001 From: stewilliams-extr Date: Mon, 13 Aug 2018 09:38:56 -0400 Subject: [PATCH 098/169] Add VOSS Added Extreme Networks Virtual Services Platform VOSS --- appliances/extreme-networks-voss.gns3a | 65 ++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 appliances/extreme-networks-voss.gns3a diff --git a/appliances/extreme-networks-voss.gns3a b/appliances/extreme-networks-voss.gns3a new file mode 100644 index 0000000..8f05b45 --- /dev/null +++ b/appliances/extreme-networks-voss.gns3a @@ -0,0 +1,65 @@ +{ + "name": "VOSS VM", + "category": "multilayer_switch", + "description": "The VOSS VM is a software emulation of a VSP8K switch.", + "vendor_name": "Extreme Networks", + "vendor_url": "http://www.extremenetworks.com", + "documentation_url": "http://www.extremenetworks.com/support/documentation", + "product_name": "VOSS_VM", + "registry_version": 1, + "status": "experimental", + "maintainer": "Extreme Networks", + "maintainer_email": "voss@extremenetworks.com", + "usage": "Boot up and login is rwa/rwa", + "symbol": "ethernet_switch.svg", + "first_port_name": "Mgmt", + "port_name_format": "1/{port1}", + "qemu": + { + "adapter_type": "e1000", + "adapters": 9, + "ram": 1024, + "hda_disk_interface": "ide", + "arch": "i386", + "console_type": "telnet", + "boot_priority": "dc", + "kvm": "allow", + "options": "-nographic" + }, + + "images": + [ + { + "filename": "VOSSGNS3.7.1.0.0.qcow2", + "version": "voss_7.1.0.0", + "md5sum": "7bb2974efe1a1ab857debd9fa894dbe7", + "filesize": 193724416, + "direct_download_url": "https://stackingtool.extremenetworks.com/github/VOSSGNS3.7.1.0.0.qcow2" + }, + { + "filename": "VOSSGNS3.7.0.0.0.img", + "version": "voss_7.0.0.0", + "md5sum": "65fe97461156aa88c836a90be1287649", + "filesize": 419430400, + "direct_download_url": "https://stackingtool.extremenetworks.com/github/VOSSGNS3.7.0.0.0.img" + } + ], + + "versions": + [ + { + "name": "7.1.0.0", + "images": + { + "hda_disk_image": "VOSSGNS3.7.1.0.0.qcow2" + } + }, + { + "name": "7.0.0.0", + "images": { + "hda_disk_image": "VOSSGNS3.7.0.0.0.img" + } + } + ] + +} From bcf0370544f31fe52f9a1ffa65bd9e69ea496b9f Mon Sep 17 00:00:00 2001 From: stewilliams-extr Date: Mon, 13 Aug 2018 11:02:13 -0400 Subject: [PATCH 099/169] Changed to version 3 and tested. --- appliances/extreme-networks-voss.gns3a | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appliances/extreme-networks-voss.gns3a b/appliances/extreme-networks-voss.gns3a index 8f05b45..f7b8fff 100644 --- a/appliances/extreme-networks-voss.gns3a +++ b/appliances/extreme-networks-voss.gns3a @@ -6,7 +6,7 @@ "vendor_url": "http://www.extremenetworks.com", "documentation_url": "http://www.extremenetworks.com/support/documentation", "product_name": "VOSS_VM", - "registry_version": 1, + "registry_version": 3, "status": "experimental", "maintainer": "Extreme Networks", "maintainer_email": "voss@extremenetworks.com", From 054b71d188ea1c559b860bd9ce23af4d04c702f4 Mon Sep 17 00:00:00 2001 From: Jeremy Grossmann Date: Tue, 14 Aug 2018 10:27:38 +0700 Subject: [PATCH 100/169] Update extreme-networks-voss.gns3a --- appliances/extreme-networks-voss.gns3a | 1 - 1 file changed, 1 deletion(-) diff --git a/appliances/extreme-networks-voss.gns3a b/appliances/extreme-networks-voss.gns3a index f7b8fff..ff15d60 100644 --- a/appliances/extreme-networks-voss.gns3a +++ b/appliances/extreme-networks-voss.gns3a @@ -22,7 +22,6 @@ "hda_disk_interface": "ide", "arch": "i386", "console_type": "telnet", - "boot_priority": "dc", "kvm": "allow", "options": "-nographic" }, From be82cdd127337b8df292d4a56e990f44b19b0082 Mon Sep 17 00:00:00 2001 From: Vladontheroad Date: Sun, 26 Aug 2018 21:42:00 +0200 Subject: [PATCH 101/169] Update f5-bigiq.gns3a Somehow, F5 replaced the iso for v5.4.0 with a new one and kept the same name. --- appliances/f5-bigiq.gns3a | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/appliances/f5-bigiq.gns3a b/appliances/f5-bigiq.gns3a index 97050cf..c0b9582 100644 --- a/appliances/f5-bigiq.gns3a +++ b/appliances/f5-bigiq.gns3a @@ -32,8 +32,8 @@ { "filename": "BIG-IQ-5.4.0.0.0.7437.qcow2", "version": "5.4.0", - "md5sum": "068b1f4d21048b9b2a082c0c27ef4d53", - "filesize": 3300917248, + "md5sum": "763b1ec32a1eb6cf1d03e6826b606443", + "filesize": 2181345280, "download_url": "https://downloads.f5.com/esd/serveDownload.jsp?path=/big-iq/big-iq_cm/5.4.0/english/v5.4.0/&sw=BIG-IQ&pro=big-iq_CM&ver=5.4.0&container=v5.4.0&file=BIG-IQ-5.4.0.0.0.7437.qcow2.zip" }, { From f8c91392465d15aec81e4a9651f16c66e6e2a93f Mon Sep 17 00:00:00 2001 From: AJ NOURI Date: Tue, 28 Aug 2018 18:50:15 +0200 Subject: [PATCH 102/169] tacacs-gui tacacs web gui appliance Here is some tests performed in gns3: https://gns3.slack.com/files/U0MLLUT19/FCGM6LAPL/tacacsgui.pdf --- appliances/tacacs-gui.gns3a | 43 +++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 appliances/tacacs-gui.gns3a diff --git a/appliances/tacacs-gui.gns3a b/appliances/tacacs-gui.gns3a new file mode 100644 index 0000000..78eff2e --- /dev/null +++ b/appliances/tacacs-gui.gns3a @@ -0,0 +1,43 @@ +{ + "name": "Tacacsgui", + "category": "guest", + "description": "TacacsGUI Free Access Control Server for Your Network Devices. GUI for powerful daemon. The project of Alexey Mochalin, based on tacacs daemon by Marc Huber", + "vendor_name": "tacacsgui", + "vendor_url": "https://tacacsgui.com/", + "documentation_url": "https://tacacsgui.com/documentation/", + "product_name": "tacacsgui", + "product_url": "https://drive.google.com/open?id=1U8tbj14NqEyCmarayhZm54qTyjgsJm4B", + "registry_version": 3, + "status": "stable", + "maintainer": "GNS3 Team", + "maintainer_email": "developers@gns3.net", + "usage": "Credentials: SSH ---> username: root ---> password: 1234 MySQL DB: ---> username: root --> password: tacacs Web interface: ---> username: tacgui ---> password: abc123", + "port_name_format": "Port{port1}", + "qemu": { + "adapter_type": "e1000", + "adapters": 1, + "ram": 1024, + "hda_disk_interface": "ide", + "arch": "x86_64", + "console_type": "telnet", + "boot_priority": "c", + "kvm": "allow" + }, + "images": [ + { + "filename": "tac_plus.qcow2", + "version": "201710201114", + "md5sum": "6b5e66590051124dae586b8640b2eb11", + "filesize": 160301056, + "download_url": "https://drive.google.com/open?id=1U8tbj14NqEyCmarayhZm54qTyjgsJm4B" + } + ], + "versions": [ + { + "name": "201710201114", + "images": { + "hda_disk_image": "tac_plus.qcow2" + } + } + ] +} From 5aa9f53b208d0dad7c91f0d5751366e8bac08e5a Mon Sep 17 00:00:00 2001 From: Jeremy Grossmann Date: Wed, 29 Aug 2018 16:26:16 +0700 Subject: [PATCH 103/169] Update tacacs-gui.gns3a --- appliances/tacacs-gui.gns3a | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/appliances/tacacs-gui.gns3a b/appliances/tacacs-gui.gns3a index 78eff2e..c135df7 100644 --- a/appliances/tacacs-gui.gns3a +++ b/appliances/tacacs-gui.gns3a @@ -1,11 +1,11 @@ { - "name": "Tacacsgui", + "name": "TacacsGUI", "category": "guest", "description": "TacacsGUI Free Access Control Server for Your Network Devices. GUI for powerful daemon. The project of Alexey Mochalin, based on tacacs daemon by Marc Huber", - "vendor_name": "tacacsgui", + "vendor_name": "TacacsGUI", "vendor_url": "https://tacacsgui.com/", "documentation_url": "https://tacacsgui.com/documentation/", - "product_name": "tacacsgui", + "product_name": "TacacsGUI", "product_url": "https://drive.google.com/open?id=1U8tbj14NqEyCmarayhZm54qTyjgsJm4B", "registry_version": 3, "status": "stable", From 5e2f24052dab33b1ae5f2c308e4e5a57750b2025 Mon Sep 17 00:00:00 2001 From: Jeremy Grossmann Date: Fri, 31 Aug 2018 12:31:48 +0700 Subject: [PATCH 104/169] Remove boot priority in pfSense appliance --- appliances/pfsense.gns3a | 1 - 1 file changed, 1 deletion(-) diff --git a/appliances/pfsense.gns3a b/appliances/pfsense.gns3a index 2c52194..8b14db0 100644 --- a/appliances/pfsense.gns3a +++ b/appliances/pfsense.gns3a @@ -17,7 +17,6 @@ "ram": 2048, "arch": "x86_64", "console_type": "telnet", - "boot_priority": "dc", "kvm": "allow", "process_priority": "normal" }, From 9b61b56f34d4ab513c89ad65cbcc09360ba5ebd6 Mon Sep 17 00:00:00 2001 From: Vladontheroad Date: Fri, 31 Aug 2018 19:19:37 +0200 Subject: [PATCH 105/169] Update f5-bigiq.gns3a --- appliances/f5-bigiq.gns3a | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/appliances/f5-bigiq.gns3a b/appliances/f5-bigiq.gns3a index c0b9582..e927201 100644 --- a/appliances/f5-bigiq.gns3a +++ b/appliances/f5-bigiq.gns3a @@ -29,11 +29,18 @@ "options": "-smp 2 -cpu host" }, "images": [ + { + "filename": "BIG-IQ-5.4.0.2.24.7467.qcow2", + "version": "5.4.0.2", + "md5sum": "e3e6389438ba1e1676f507658f767e95", + "filesize": 3480748032, + "download_url": "https://downloads.f5.com/esd/serveDownload.jsp?path=/big-iq/big-iq_cm/5.4.0/english/virtual-edition_base-plus-hf2/&sw=BIG-IQ&pro=big-iq_CM&ver=5.4.0&container=Virtual-Edition_Base-Plus-HF2&file=BIG-IQ-5.4.0.2.24.7467.qcow2.zip" + }, { "filename": "BIG-IQ-5.4.0.0.0.7437.qcow2", "version": "5.4.0", - "md5sum": "763b1ec32a1eb6cf1d03e6826b606443", - "filesize": 2181345280, + "md5sum": "068b1f4d21048b9b2a082c0c27ef4d53", + "filesize": 3300917248, "download_url": "https://downloads.f5.com/esd/serveDownload.jsp?path=/big-iq/big-iq_cm/5.4.0/english/v5.4.0/&sw=BIG-IQ&pro=big-iq_CM&ver=5.4.0&container=v5.4.0&file=BIG-IQ-5.4.0.0.0.7437.qcow2.zip" }, { From c843b9366f9d58ad94ade091b8e9b6ede413eead Mon Sep 17 00:00:00 2001 From: Vladontheroad Date: Fri, 31 Aug 2018 19:22:37 +0200 Subject: [PATCH 106/169] Update f5-bigiq.gns3a --- appliances/f5-bigiq.gns3a | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/appliances/f5-bigiq.gns3a b/appliances/f5-bigiq.gns3a index e927201..d187865 100644 --- a/appliances/f5-bigiq.gns3a +++ b/appliances/f5-bigiq.gns3a @@ -88,6 +88,13 @@ } ], "versions": [ + { + "name": "5.4.0.2", + "images": { + "hda_disk_image": "BIG-IQ-5.4.0.2.24.7467.qcow2", + "hdb_disk_image": "empty100G.qcow2" + } + }, { "name": "5.4.0", "images": { From 807a78287a079d71fa9eb13928e117b26a25fa52 Mon Sep 17 00:00:00 2001 From: AJ NOURI Date: Thu, 6 Sep 2018 14:43:01 +0200 Subject: [PATCH 107/169] Update Kali appliance. Add the latest version 2018.3 --- appliances/kali-linux.gns3a | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/appliances/kali-linux.gns3a b/appliances/kali-linux.gns3a index 60baf04..742f695 100644 --- a/appliances/kali-linux.gns3a +++ b/appliances/kali-linux.gns3a @@ -20,6 +20,14 @@ "kvm": "require" }, "images": [ + { + "filename": "kali-linux-2018.3-amd64.iso", + "version": "2018.3", + "md5sum": "6dc3e57177249f73492b9edb95d082d1", + "filesize": 3188391936, + "download_url": "https://www.kali.org/downloads/", + "direct_download_url": "http://cdimage.kali.org/kali-2018.3/kali-linux-2018.3-amd64.iso" + }, { "filename": "kali-linux-2018.1-amd64.iso", "version": "2018.1", @@ -79,7 +87,12 @@ ], "versions": [ { - "name": "2018.8", + "name": "2018.3", + "images": { + "cdrom_image": "kali-linux-2018.3-amd64.iso" + } + }, { + "name": "2018.1", "images": { "cdrom_image": "kali-linux-2018.1-amd64.iso" } From a6b4b5d4e936a3de1927db25bf9f7e4b85ad502c Mon Sep 17 00:00:00 2001 From: Andre Sencioles Date: Wed, 19 Sep 2018 09:27:12 +1200 Subject: [PATCH 108/169] Add JunOS 17.3R1.10 to vMX vCP and vMX vFP --- appliances/juniper-vmx-vcp.gns3a | 26 ++++++++++++++++++++++++++ appliances/juniper-vmx-vfp.gns3a | 13 +++++++++++++ 2 files changed, 39 insertions(+) diff --git a/appliances/juniper-vmx-vcp.gns3a b/appliances/juniper-vmx-vcp.gns3a index a07e00f..4d3ffc5 100644 --- a/appliances/juniper-vmx-vcp.gns3a +++ b/appliances/juniper-vmx-vcp.gns3a @@ -43,6 +43,24 @@ "md5sum": "a5b125822b798c7167c35966ea00229a", "filesize": 16777216 }, + { + "filename": "junos-vmx-x86-64-17.3R2.10.qcow2", + "version": "17.3R2.10-KVM", + "md5sum": "11984eb87b471e8cc2677212c4277959", + "filesize": 1298137088 + }, + { + "filename": "vmxhdd-17.3R2.10.img", + "version": "17.3R2.10-KVM", + "md5sum": "9d843e5493d5e86d37853a72885d84c8", + "filesize": 108986368 + }, + { + "filename": "metadata-usb-re-17.3R2.10.img", + "version": "17.3R2.10-KVM", + "md5sum": "564ca5b7c03ed39680d2d42464d9489b", + "filesize": 16777216 + }, { "filename": "vcp_17.1R1.8-disk1.vmdk", "version": "17.1R1.8-ESXi", @@ -308,6 +326,14 @@ "hdc_disk_image": "metadata-usb-re-17.4R1.16.img" } }, + { + "name": "17.3R2.10-KVM", + "images": { + "hda_disk_image": "junos-vmx-x86-64-17.3R2.10.qcow2", + "hdb_disk_image": "vmxhdd-17.3R2.10.img", + "hdc_disk_image": "metadata-usb-re-17.3R2.10.img" + } + }, { "name": "17.1R1.8-ESXi", "images": { diff --git a/appliances/juniper-vmx-vfp.gns3a b/appliances/juniper-vmx-vfp.gns3a index b7c0c51..697bfb0 100644 --- a/appliances/juniper-vmx-vfp.gns3a +++ b/appliances/juniper-vmx-vfp.gns3a @@ -32,6 +32,13 @@ "filesize": 2313158656, "download_url": "http://www.juniper.net/us/en/products-services/routing/mx-series/vmx/" }, + { + "filename": "vFPC-20180126.img", + "version": "17.3R2.10-KVM", + "md5sum": "02d6b719053485c52a511fe6f5a598e3", + "filesize": 2313158656, + "download_url": "http://www.juniper.net/us/en/products-services/routing/mx-series/vmx/" + }, { "filename": "vfpc_17.1R1.8-disk1.vmdk", "version": "17.1R1.8-ESXi", @@ -139,6 +146,12 @@ "hda_disk_image": "vFPC-20171213.img" } }, + { + "name": "17.3R2.10-KVM", + "images": { + "hda_disk_image": "vFPC-20180126.img" + } + }, { "name": "17.1R1.8-ESXi", "images": { From b259560eef273d507c9aef38309441378cdac29f Mon Sep 17 00:00:00 2001 From: "Stephen C. Moore" Date: Fri, 21 Sep 2018 08:27:17 -0500 Subject: [PATCH 109/169] New version. --- appliances/cisco-iosxrv9k.gns3a | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/appliances/cisco-iosxrv9k.gns3a b/appliances/cisco-iosxrv9k.gns3a index 8618d0e..2ba4e55 100644 --- a/appliances/cisco-iosxrv9k.gns3a +++ b/appliances/cisco-iosxrv9k.gns3a @@ -24,6 +24,13 @@ "options": "-smp 4 -cpu host" }, "images": [ + { + "filename": "xrv9k-fullk9-x-6.5.1.qcow2", + "version": "6.5.1", + "md5sum": "730868e7cd46de9aa2e950899c7f9498", + "filesize": 1208811520, + "download_url": "https://software.cisco.com/download/home/286288939/type/280805694/release/6.5.1" + }, { "filename": "xrv9k-fullk9-x-6.4.2.qcow2", "version": "6.4.2", @@ -60,6 +67,12 @@ } ], "versions": [ + { + "name": "6.5.1", + "images": { + "hda_disk_image": "xrv9k-fullk9-x-6.5.1.qcow2" + } + }, { "name": "6.4.2", "images": { From be0b1a6aa68a0317939a4a904ca4472cc07db150 Mon Sep 17 00:00:00 2001 From: "Stephen C. Moore" Date: Fri, 21 Sep 2018 09:10:44 -0500 Subject: [PATCH 110/169] New version --- appliances/cisco-nxosv9k.gns3a | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/appliances/cisco-nxosv9k.gns3a b/appliances/cisco-nxosv9k.gns3a index 0078a90..e372db3 100644 --- a/appliances/cisco-nxosv9k.gns3a +++ b/appliances/cisco-nxosv9k.gns3a @@ -32,6 +32,13 @@ "filesize": 1330315264, "download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.2%25281%2529" }, + { + "filename": "nxosv-final.7.0.3.I7.5.qcow2", + "version": "7.0.3.I7.5", + "md5sum": "68a4008e189c8a35ccb8ee58db9608bb", + "filesize": 1027670016, + "download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/7.0%25283%2529I7%25285%2529" + }, { "filename": "nxosv-final.7.0.3.I7.4.qcow2", "version": "7.0.3.I7.4", @@ -99,6 +106,13 @@ "hda_disk_image": "nxosv-final.9.2.1.qcow2" } }, + { + "name": "7.0.3.I7.5", + "images": { + "bios_image": "OVMF-20160813.fd", + "hda_disk_image": "nxosv-final.7.0.3.I7.5.qcow2" + } + }, { "name": "7.0.3.I7.4", "images": { From 50f5d515a04759b362cd627102b68a878da8a05f Mon Sep 17 00:00:00 2001 From: Andre Sencioles Date: Fri, 12 Oct 2018 06:29:24 +1300 Subject: [PATCH 111/169] Add CentOS cloud guest appliance --- appliances/centos-cloud.gns3a | 52 +++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 appliances/centos-cloud.gns3a diff --git a/appliances/centos-cloud.gns3a b/appliances/centos-cloud.gns3a new file mode 100644 index 0000000..c2c60b9 --- /dev/null +++ b/appliances/centos-cloud.gns3a @@ -0,0 +1,52 @@ +{ + "name": "CentOS Cloud Guest", + "category": "guest", + "description": "CentOS official image for self-hosted cloud", + "vendor_name": "The CentOS Project", + "vendor_url": "https://www.centos.org/", + "documentation_url": "https://wiki.centos.org/Documentation", + "product_name": "Centos Cloud", + "product_url": "https://wiki.centos.org/Cloud", + "registry_version": 3, + "status": "stable", + "maintainer": "GNS3 Team", + "maintainer_email": "developers@gns3.net", + "usage": "Username: centos\nPassword: centos", + "port_name_format": "Ethernet{0}", + "qemu": { + "adapter_type": "virtio-net-pci", + "adapters": 1, + "ram": 1024, + "hda_disk_interface": "virtio", + "arch": "x86_64", + "console_type": "telnet", + "boot_priority": "c", + "kvm": "require", + "options": "-nographic" + }, + "images": [ + { + "filename": "CentOS-7-x86_64-GenericCloud-1809.qcow2", + "version": "7-1809", + "md5sum": "da79108d1324b27bd1759362b82fbe40", + "filesize": 914948096, + "download_url": "https://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud-1809.qcow2" + }, + { + "filename": "centos-cloud-init-data.iso", + "version": "1.0", + "md5sum": "15ca60c12db6d13b8eeae1a19613fd6e", + "filesize": 378880, + "download_url": "https://github.com/asenci/gns3-centos-cloud-init-data/raw/master/centos-cloud-init-data.iso" + } + ], + "versions": [ + { + "name": "7 (1809)", + "images": { + "hda_disk_image": "CentOS-7-x86_64-GenericCloud-1809.qcow2", + "cdrom_image": "centos-cloud-init-data.iso" + } + } + ] +} From a75fce17b634099d8a42d80b78ea350d3b8dd5af Mon Sep 17 00:00:00 2001 From: Xanio Date: Fri, 12 Oct 2018 23:34:49 +0200 Subject: [PATCH 112/169] Update mikrotik-chr.gns3a --- appliances/mikrotik-chr.gns3a | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/appliances/mikrotik-chr.gns3a b/appliances/mikrotik-chr.gns3a index fefae16..ea9d77f 100644 --- a/appliances/mikrotik-chr.gns3a +++ b/appliances/mikrotik-chr.gns3a @@ -26,6 +26,15 @@ "options": "-nographic" }, "images": [ + { + "filename": "chr-6.42.9.img", + "version": "6.42", + "md5sum": "1f856978cfc3ceb4b5e18e4e079f2e32", + "filesize": 134217728, + "download_url": "http://www.mikrotik.com/download", + "direct_download_url": "https://download2.mikrotik.com/routeros/6.42.9/chr-6.42.9.img.zip", + "compression": "zip" + }, { "filename": "chr-6.42.img", "version": "6.42", @@ -262,6 +271,12 @@ } ], "versions": [ + { + "name": "6.42.9", + "images": { + "hda_disk_image": "chr-6.42.9.img" + } + }, { "name": "6.41.4", "images": { From aa32f5336459789476f4b34b10cce5557b8d20ec Mon Sep 17 00:00:00 2001 From: adosztal Date: Wed, 31 Oct 2018 10:44:35 +0100 Subject: [PATCH 113/169] New release --- appliances/arista-veos.gns3a | 14 ++++++++++++++ appliances/bsdrp.gns3a | 15 +++++++++++++++ appliances/clearos.gns3a | 14 ++++++++++++++ appliances/cumulus-vx.gns3a | 14 ++++++++++++++ appliances/exos.gns3a | 15 +++++++++++++++ appliances/f5-bigip.gns3a | 14 ++++++++++++++ appliances/f5-bigiq.gns3a | 14 ++++++++++++++ appliances/freenas.gns3a | 18 +++++++++++++++++- appliances/ipfire.gns3a | 15 +++++++++++++++ appliances/packetfence-zen.gns3a | 15 +++++++++++++++ appliances/proxmox-mg.gns3a | 15 +++++++++++++++ appliances/untangle.gns3a | 14 ++++++++++++++ 12 files changed, 176 insertions(+), 1 deletion(-) diff --git a/appliances/arista-veos.gns3a b/appliances/arista-veos.gns3a index 58376af..122fffc 100644 --- a/appliances/arista-veos.gns3a +++ b/appliances/arista-veos.gns3a @@ -24,6 +24,13 @@ "kvm": "require" }, "images": [ + { + "filename": "vEOS-lab-4.21.1.1F.vmdk", + "version": "4.21.1.1F", + "md5sum": "02bfb7e53781fd44ff02357f201586d9", + "filesize": 358809600, + "download_url": "https://www.arista.com/en/support/software-download" + }, { "filename": "vEOS-lab-4.20.1F.vmdk", "version": "4.20.1F", @@ -96,6 +103,13 @@ } ], "versions": [ + { + "name": "4.21.1F", + "images": { + "hda_disk_image": "Aboot-veos-serial-8.0.0.iso", + "hdb_disk_image": "vEOS-lab-4.21.1.1F.vmdk" + } + }, { "name": "4.20.1F", "images": { diff --git a/appliances/bsdrp.gns3a b/appliances/bsdrp.gns3a index 838441c..e0d0808 100644 --- a/appliances/bsdrp.gns3a +++ b/appliances/bsdrp.gns3a @@ -19,6 +19,15 @@ "kvm": "allow" }, "images": [ + { + "filename": "BSDRP-1.91-full-amd64-serial.img", + "version": "1.91", + "md5sum": "cea67b29ce94e66b617e7dc90956af45", + "filesize": 1000000000, + "download_url": "https://bsdrp.net/downloads", + "direct_download_url": "https://sourceforge.net/projects/bsdrp/files/BSD_Router_Project/1.91/amd64/BSDRP-1.91-full-amd64-serial.img.xz/download", + "compression": "xz" + }, { "filename": "BSDRP-1.90-full-amd64-serial.img", "version": "1.90", @@ -48,6 +57,12 @@ } ], "versions": [ + { + "name": "1.91", + "images": { + "hda_disk_image": "BSDRP-1.91-full-amd64-serial.img" + } + }, { "name": "1.90", "images": { diff --git a/appliances/clearos.gns3a b/appliances/clearos.gns3a index 25cd187..37c2cc1 100644 --- a/appliances/clearos.gns3a +++ b/appliances/clearos.gns3a @@ -22,6 +22,13 @@ "kvm": "require" }, "images": [ + { + "filename": "ClearOS-7.5-DVD-x86_64.iso", + "version": "7.5", + "md5sum": "1e23c5f73a6c996420d8e0e70b000bf9", + "filesize": 1146093568, + "download_url": "https://www.clearos.com/clearfoundation/software/clearos-downloads" + }, { "filename": "ClearOS-7.4-DVD-x86_64.iso", "version": "7.4", @@ -53,6 +60,13 @@ } ], "versions": [ + { + "name": "7.5", + "images": { + "hda_disk_image": "empty30G.qcow2", + "cdrom_image": "ClearOS-7.5-DVD-x86_64.iso" + } + }, { "name": "7.4", "images": { diff --git a/appliances/cumulus-vx.gns3a b/appliances/cumulus-vx.gns3a index e5baedf..2e5641c 100644 --- a/appliances/cumulus-vx.gns3a +++ b/appliances/cumulus-vx.gns3a @@ -23,6 +23,14 @@ "kvm": "require" }, "images": [ + { + "filename": "cumulus-linux-3.7.1-vx-amd64-qemu.qcow2", + "version": "3.7.1", + "md5sum": "201055c57e4a20bb5772289ea6216631", + "filesize": 1640300544, + "download_url": "https://cumulusnetworks.com/cumulus-vx/download/", + "direct_download_url": "http://cumulusfiles.s3.amazonaws.com/CumulusLinux-3.7.1/cumulus-linux-3.7.1-vx-amd64-qemu.qcow2" + }, { "filename": "cumulus-linux-3.6.2-vx-amd64.qcow2", "version": "3.6.2", @@ -173,6 +181,12 @@ } ], "versions": [ + { + "name": "3.7.1", + "images": { + "hda_disk_image": "cumulus-linux-3.7.1-vx-amd64-qemu.qcow2" + } + }, { "name": "3.6.2", "images": { diff --git a/appliances/exos.gns3a b/appliances/exos.gns3a index 2aa8522..d4f7087 100644 --- a/appliances/exos.gns3a +++ b/appliances/exos.gns3a @@ -26,6 +26,14 @@ "options": "-smp 2 -cpu core2duo" }, "images": [ + { + "filename": "exosvm-22.6.1.4.iso", + "version": "22.6.1.4", + "md5sum": "66146aba82575b3879431143b6dc8a35", + "filesize": 53706752, + "download_url": "https://github.com/extremenetworks/Virtual_EXOS", + "direct_download_url": "https://github.com/extremenetworks/Virtual_EXOS/raw/master/vm-22.6.1.4.iso" + }, { "filename": "exosvm-22.5.1.7.iso", "version": "22.5.1.7", @@ -108,6 +116,13 @@ } ], "versions": [ + { + "name": "22.6.1.4", + "images": { + "hda_disk_image": "empty8G.qcow2", + "cdrom_image": "exosvm-22.6.1.4.iso" + } + }, { "name": "22.5.1.7", "images": { diff --git a/appliances/f5-bigip.gns3a b/appliances/f5-bigip.gns3a index 78e3987..efaf846 100644 --- a/appliances/f5-bigip.gns3a +++ b/appliances/f5-bigip.gns3a @@ -27,6 +27,13 @@ "options": "-smp 2 -cpu host" }, "images": [ + { + "filename": "BIGIP-14.0.0.3-0.0.4.qcow2", + "version": "14.0.0 HF3", + "md5sum": "dc80a7e436ff93e2f4092eece18d369b", + "filesize": 4550164480, + "download_url": "https://downloads.f5.com/esd/serveDownload.jsp?path=/big-ip/big-ip_v14.x/14.0.0/english/14.0.0.3_virtual-edition/&sw=BIG-IP&pro=big-ip_v14.x&ver=14.0.0&container=14.0.0.3_Virtual-Edition&file=BIGIP-14.0.0.3-0.0.4.ALL.qcow2.zip" + }, { "filename": "BIGIP-13.1.0.5-0.0.5.qcow2", "version": "13.1.0 HF5", @@ -135,6 +142,13 @@ } ], "versions": [ + { + "name": "14.0.0 HF3", + "images": { + "hda_disk_image": "BIGIP-14.0.0.3-0.0.4.qcow2", + "hdb_disk_image": "empty100G.qcow2" + } + }, { "name": "13.1.0 HF5", "images": { diff --git a/appliances/f5-bigiq.gns3a b/appliances/f5-bigiq.gns3a index d187865..45c7151 100644 --- a/appliances/f5-bigiq.gns3a +++ b/appliances/f5-bigiq.gns3a @@ -29,6 +29,13 @@ "options": "-smp 2 -cpu host" }, "images": [ + { + "filename": "BIG-IQ-6.0.1.1.0.0.9.qcow2", + "version": "6.0.1.1", + "md5sum": "3ae32308fe39d5db555f7f1cdcc734dd", + "filesize": 3895787520, + "download_url": "https://downloads.f5.com/esd/serveDownload.jsp?path=/big-iq/big-iq_cm/6.0.1/english/v6.0.1.1/&sw=BIG-IQ&pro=big-iq_CM&ver=6.0.1&container=v6.0.1.1&file=BIG-IQ-6.0.1.1.0.0.9.qcow2.zip" + }, { "filename": "BIG-IQ-5.4.0.2.24.7467.qcow2", "version": "5.4.0.2", @@ -88,6 +95,13 @@ } ], "versions": [ + { + "name": "6.0.1.1", + "images": { + "hda_disk_image": "BIG-IQ-6.0.1.1.0.0.9.qcow2", + "hdb_disk_image": "empty100G.qcow2" + } + }, { "name": "5.4.0.2", "images": { diff --git a/appliances/freenas.gns3a b/appliances/freenas.gns3a index 866e702..75dc402 100644 --- a/appliances/freenas.gns3a +++ b/appliances/freenas.gns3a @@ -24,9 +24,17 @@ "kvm": "require" }, "images": [ + { + "filename": "FreeNAS-11.1-U6.iso", + "version": "11.1 U6", + "md5sum": "633d6444cad903c707983b54e04fc053", + "filesize": 636065792, + "download_url": "http://www.freenas.org/download/", + "direct_download_url": "https://download.freenas.org/11/11.1-U4/x64/FreeNAS-11.1-U4.iso" + }, { "filename": "FreeNAS-11.1-U4.iso", - "version": "11.1 U1", + "version": "11.1 U4", "md5sum": "d75623e5671dbc82f32f4b4f8d46092f", "filesize": 633833472, "download_url": "http://www.freenas.org/download/", @@ -74,6 +82,14 @@ } ], "versions": [ + { + "name": "11.1 U6", + "images": { + "hda_disk_image": "empty30G.qcow2", + "hdb_disk_image": "empty30G.qcow2", + "cdrom_image": "FreeNAS-11.1-U6.iso" + } + }, { "name": "11.1 U4", "images": { diff --git a/appliances/ipfire.gns3a b/appliances/ipfire.gns3a index 616c7e4..cac7f9c 100644 --- a/appliances/ipfire.gns3a +++ b/appliances/ipfire.gns3a @@ -24,6 +24,15 @@ "kvm": "allow" }, "images": [ + { + "filename": "ipfire-2.21.2gb-ext4.x86_64-full-core124.img", + "version": "2.21.124", + "md5sum": "970a5cafaa0cb4cfbf42772f41d24932", + "filesize": 1541160960, + "download_url": "http://www.ipfire.org/download", + "direct_download_url": "https://downloads.ipfire.org/releases/ipfire-2.x/2.21-core124/ipfire-2.21.2gb-ext4.x86_64-full-core124.img.xz", + "compression": "xz" + }, { "filename": "ipfire-2.19.1gb-ext4-scon.x86_64-full-core119.img", "version": "2.19.119", @@ -80,6 +89,12 @@ } ], "versions": [ + { + "name": "2.21.124", + "images": { + "hda_disk_image": "ipfire-2.21.2gb-ext4.x86_64-full-core124.img" + } + }, { "name": "2.19.119", "images": { diff --git a/appliances/packetfence-zen.gns3a b/appliances/packetfence-zen.gns3a index efc6882..1b432f5 100644 --- a/appliances/packetfence-zen.gns3a +++ b/appliances/packetfence-zen.gns3a @@ -22,6 +22,15 @@ "kvm": "require" }, "images": [ + { + "filename": "PacketFenceZEN_USB-8.1.0.img", + "version": "8.1.0", + "md5sum": "f326f0e70b35d598c8b84ee3fc9c611f", + "filesize": 3221225472, + "download_url": "https://packetfence.org/download.html#/zen", + "direct_download_url": "https://sourceforge.net/projects/packetfence/files/PacketFence%20ZEN/8.1.0/PacketFenceZEN_USB-8.1.0.tar.bz2/download", + "compression": "bzip2" + }, { "filename": "PacketFenceZEN_USB-7.4.0.img", "version": "7.4.0", @@ -105,6 +114,12 @@ } ], "versions": [ + { + "name": "8.1.0", + "images": { + "hda_disk_image": "PacketFenceZEN_USB-8.1.0.img" + } + }, { "name": "7.4.0", "images": { diff --git a/appliances/proxmox-mg.gns3a b/appliances/proxmox-mg.gns3a index 56d2a77..2f00d6e 100644 --- a/appliances/proxmox-mg.gns3a +++ b/appliances/proxmox-mg.gns3a @@ -24,6 +24,14 @@ "kvm": "require" }, "images": [ + { + "filename": "proxmox-mailgateway_5.1-1.iso", + "version": "5.1-1", + "md5sum": "e629d5ff3213ff3ffbe5a8ab8ef87489", + "filesize": 724660224, + "download_url": "http://www.proxmox.com/en/downloads", + "direct_download_url": "https://www.proxmox.com/en/downloads?task=callelement&format=raw&item_id=415&element=f85c494b-2b32-4109-b8c1-083cca2b7db6&method=download&args[0]=7348486df9daacc8bd891a1d7ef1e5cb" + }, { "filename": "proxmox-mailgateway_4.1-5.iso", "version": "4.1-5", @@ -42,6 +50,13 @@ } ], "versions": [ + { + "name": "5.1-1", + "images": { + "hda_disk_image": "empty30G.qcow2", + "cdrom_image": "proxmox-mailgateway_5.1-1.iso" + } + }, { "name": "4.1-5", "images": { diff --git a/appliances/untangle.gns3a b/appliances/untangle.gns3a index 236400e..a2d0963 100644 --- a/appliances/untangle.gns3a +++ b/appliances/untangle.gns3a @@ -24,6 +24,13 @@ "kvm": "allow" }, "images": [ + { + "filename": "untangle_1401_x64.iso", + "version": "14.0.1", + "md5sum": "d9c01afd8bf4b5dfdc40c22aa3b2fd98", + "filesize": 680525824, + "download_url": "https://www.untangle.com/get-untangle/" + }, { "filename": "untangle_1321_x64.iso", "version": "13.2.1", @@ -104,6 +111,13 @@ } ], "versions": [ + { + "name": "14.0.1", + "images": { + "hda_disk_image": "empty30G.qcow2", + "cdrom_image": "untangle_1401_x64.iso" + } + }, { "name": "13.2.1", "images": { From a44679f461529c6e283693dd06e5b0883a08669f Mon Sep 17 00:00:00 2001 From: adosztal Date: Wed, 31 Oct 2018 12:45:32 +0100 Subject: [PATCH 114/169] New Fortinet releases --- appliances/fortiadc.gns3a | 14 ++++++++++ appliances/fortianalyzer.gns3a | 14 ++++++++++ appliances/fortiauthenticator.gns3a | 14 ++++++++++ appliances/forticache.gns3a | 14 ++++++++++ appliances/fortigate.gns3a | 14 ++++++++++ appliances/fortimail.gns3a | 14 ++++++++++ appliances/fortimanager.gns3a | 14 ++++++++++ appliances/fortisandbox.gns3a | 30 +++++++++++++++------ appliances/fortisiem-super_worker.gns3a | 35 ++++++++++++++++++++++--- appliances/fortiweb.gns3a | 14 ++++++++++ 10 files changed, 166 insertions(+), 11 deletions(-) diff --git a/appliances/fortiadc.gns3a b/appliances/fortiadc.gns3a index 5a6e7c8..3a32a0f 100644 --- a/appliances/fortiadc.gns3a +++ b/appliances/fortiadc.gns3a @@ -34,6 +34,13 @@ "filesize": 30998528, "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" }, + { + "filename": "FAD_KVM-V500-build0239-FORTINET.out.kvm-boot.qcow2", + "version": "5.1.1", + "md5sum": "f94323bc6415dd1477f2352bd3323d14", + "filesize": 75235328, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FAD_KVM-V500-build0056-FORTINET.out.kvm-boot.qcow2", "version": "5.0.1", @@ -176,6 +183,13 @@ } ], "versions": [ + { + "name": "5.1.1", + "images": { + "hda_disk_image": "FAD_KVM-V500-build0239-FORTINET.out.kvm-boot.qcow2", + "hdb_disk_image": "FAD_KVM-FORTINET.out.kvm-data.qcow2" + } + }, { "name": "5.0.1", "images": { diff --git a/appliances/fortianalyzer.gns3a b/appliances/fortianalyzer.gns3a index 31475fa..43d6763 100644 --- a/appliances/fortianalyzer.gns3a +++ b/appliances/fortianalyzer.gns3a @@ -26,6 +26,13 @@ "kvm": "allow" }, "images": [ + { + "filename": "FAZ_VM64_KVM-v6-build0205-FORTINET.out.kvm.qcow2", + "version": "6.0.2", + "md5sum": "1c9c6a99244aaf8b215c52194e1f82ed", + "filesize": 115777536, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FAZ_VM64_KVM-v6-build0092-FORTINET.out.kvm.qcow2", "version": "6.0.0", @@ -127,6 +134,13 @@ } ], "versions": [ + { + "name": "6.0.2", + "images": { + "hda_disk_image": "FAZ_VM64_KVM-v6-build0205-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty30G.qcow2" + } + }, { "name": "6.0.0", "images": { diff --git a/appliances/fortiauthenticator.gns3a b/appliances/fortiauthenticator.gns3a index 4be5bd2..29f58ab 100644 --- a/appliances/fortiauthenticator.gns3a +++ b/appliances/fortiauthenticator.gns3a @@ -26,6 +26,13 @@ "kvm": "allow" }, "images": [ + { + "filename": "FAC_VM_KVM-v5-build0297-FORTINET.out.kvm.qcow2", + "version": "5.4.1", + "md5sum": "e63bcaae040f903f9de315f582702619", + "filesize": 72617984, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FAC_VM_KVM-v5-build0163-FORTINET.out.kvm.qcow2", "version": "5.2.2", @@ -84,6 +91,13 @@ } ], "versions": [ + { + "name": "5.4.1", + "images": { + "hda_disk_image": "FAC_VM_KVM-v5-build0297-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "FAC_VM_KVM-v500-DATADRIVE.qcow2" + } + }, { "name": "5.2.2", "images": { diff --git a/appliances/forticache.gns3a b/appliances/forticache.gns3a index dddf597..faeeb95 100644 --- a/appliances/forticache.gns3a +++ b/appliances/forticache.gns3a @@ -26,6 +26,13 @@ "kvm": "require" }, "images": [ + { + "filename": "FCHKVM-v400-build0226-FORTINET.out.kvm.qcow2", + "version": "4.2.8", + "md5sum": "17efdc8f037c8ec1d1fc67ae262f619e", + "filesize": 27676672, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FCHKVM-v400-build0222-FORTINET.out.kvm.qcow2", "version": "4.2.7", @@ -106,6 +113,13 @@ } ], "versions": [ + { + "name": "4.2.8", + "images": { + "hda_disk_image": "FCHKVM-v400-build0226-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty100G.qcow2" + } + }, { "name": "4.2.7", "images": { diff --git a/appliances/fortigate.gns3a b/appliances/fortigate.gns3a index f3c1afc..cd75b5d 100644 --- a/appliances/fortigate.gns3a +++ b/appliances/fortigate.gns3a @@ -26,6 +26,13 @@ "kvm": "allow" }, "images": [ + { + "filename": "FGT_VM64_KVM-v6-build0200-FORTINET.out.kvm.qcow2", + "version": "6.0.3", + "md5sum": "be6f74ea13da09cf0b68e87234e2d8d5", + "filesize": 51552256, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FGT_VM64_KVM-v6-build0076-FORTINET.out.kvm.qcow2", "version": "6.0.0", @@ -197,6 +204,13 @@ } ], "versions": [ + { + "name": "6.0.3", + "images": { + "hda_disk_image": "FGT_VM64_KVM-v6-build0200-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty30G.qcow2" + } + }, { "name": "6.0.0", "images": { diff --git a/appliances/fortimail.gns3a b/appliances/fortimail.gns3a index a970d91..a61711e 100644 --- a/appliances/fortimail.gns3a +++ b/appliances/fortimail.gns3a @@ -26,6 +26,13 @@ "kvm": "allow" }, "images": [ + { + "filename": "FML_VMKV-64-v60-build0126-FORTINET.out.kvm.qcow2", + "version": "6.0.3", + "md5sum": "b062636f029ff0f3d4b74451cc70b755", + "filesize": 96731136, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FML_VMKV-64-v54-build0719-FORTINET.out.kvm.qcow2", "version": "5.4.5", @@ -155,6 +162,13 @@ } ], "versions": [ + { + "name": "6.0.3", + "images": { + "hda_disk_image": "FML_VMKV-64-v60-build0126-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty30G.qcow2" + } + }, { "name": "5.4.5", "images": { diff --git a/appliances/fortimanager.gns3a b/appliances/fortimanager.gns3a index 7827c2e..091a025 100644 --- a/appliances/fortimanager.gns3a +++ b/appliances/fortimanager.gns3a @@ -26,6 +26,13 @@ "kvm": "allow" }, "images": [ + { + "filename": "FMG_VM64_KVM-v6-build0205-FORTINET.out.kvm.qcow2", + "version": "6.0.2", + "md5sum": "8f748649c537d9b5466b24c5b4e62017", + "filesize": 116981760, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FMG_VM64_KVM-v6-build0092-FORTINET.out.kvm.qcow2", "version": "6.0.0", @@ -127,6 +134,13 @@ } ], "versions": [ + { + "name": "6.0.2", + "images": { + "hda_disk_image": "FMG_VM64_KVM-v6-build0205-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty30G.qcow2" + } + }, { "name": "6.0.0", "images": { diff --git a/appliances/fortisandbox.gns3a b/appliances/fortisandbox.gns3a index 9abf522..848fff5 100644 --- a/appliances/fortisandbox.gns3a +++ b/appliances/fortisandbox.gns3a @@ -27,6 +27,13 @@ "options": "-smp 2" }, "images": [ + { + "filename": "FSA_KVM-v300-build0029-FORTINET.out.kvm.qcow2", + "version": "3.0.1", + "md5sum": "a2f6c5297a722c5dba40327734a6e0ac", + "filesize": 153158144, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FSA_KVM-v200-build0340-FORTINET.out.kvm.qcow2", "version": "2.5.2", @@ -77,7 +84,7 @@ "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" }, { - "filename": "FSA_v200-datadrive.qcow2", + "filename": "FSA-datadrive.qcow2", "version": "2.x", "md5sum": "f2dc0a8fc7591699c364aff400369157", "filesize": 200192, @@ -85,53 +92,60 @@ } ], "versions": [ + { + "name": "3.0.1", + "images": { + "hda_disk_image": "FSA_KVM-v300-build0029-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "FSA-datadrive.qcow2" + } + }, { "name": "2.5.2", "images": { "hda_disk_image": "FSA_KVM-v200-build0340-FORTINET.out.kvm.qcow2", - "hdb_disk_image": "FSA_v200-datadrive.qcow2" + "hdb_disk_image": "FSA-datadrive.qcow2" } }, { "name": "2.5.1", "images": { "hda_disk_image": "FSA_KVM-v200-build0329-FORTINET.out.kvm.qcow2", - "hdb_disk_image": "FSA_v200-datadrive.qcow2" + "hdb_disk_image": "FSA-datadrive.qcow2" } }, { "name": "2.4.1", "images": { "hda_disk_image": "FSA_KVM-v200-build0261-FORTINET.out.kvm.qcow2", - "hdb_disk_image": "FSA_v200-datadrive.qcow2" + "hdb_disk_image": "FSA-datadrive.qcow2" } }, { "name": "2.4.0", "images": { "hda_disk_image": "FSA_KVM-v200-build0252-FORTINET.out.kvm.qcow2", - "hdb_disk_image": "FSA_v200-datadrive.qcow2" + "hdb_disk_image": "FSA-datadrive.qcow2" } }, { "name": "2.3.3", "images": { "hda_disk_image": "FSA_KVM-v200-build0205-FORTINET.out.kvm.qcow2", - "hdb_disk_image": "FSA_v200-datadrive.qcow2" + "hdb_disk_image": "FSA-datadrive.qcow2" } }, { "name": "2.3.2", "images": { "hda_disk_image": "FSA_KVM-v200-build0195-FORTINET.out.kvm.qcow2", - "hdb_disk_image": "FSA_v200-datadrive.qcow2" + "hdb_disk_image": "FSA-datadrive.qcow2" } }, { "name": "2.3.0", "images": { "hda_disk_image": "FSA_VM-v200-build0183-FORTINET.out.kvm.qcow2", - "hdb_disk_image": "FSA_v200-datadrive.qcow2" + "hdb_disk_image": "FSA-datadrive.qcow2" } } ] diff --git a/appliances/fortisiem-super_worker.gns3a b/appliances/fortisiem-super_worker.gns3a index 739d1cf..bde23fd 100644 --- a/appliances/fortisiem-super_worker.gns3a +++ b/appliances/fortisiem-super_worker.gns3a @@ -28,26 +28,47 @@ "options": "-smp 4" }, "images": [ + { + "filename": "FortiSIEM-VA-5.1.0.1336.qcow2", + "version": "5.1.0", + "md5sum": "753685ee68287c7a56f9da53566ac522", + "filesize": 10376904704, + "download_url": "https://images-cdn.fortisiem.fortinet.com/VirtualAppliances/release510.html" + }, + { + "filename": "FortiSIEM-VA-5.1.0.1336-1.qcow2", + "version": "5.1.0", + "md5sum": "6ffb7e16d89a6731fc077982cb012ee2", + "filesize": 46858240, + "download_url": "https://images-cdn.fortisiem.fortinet.com/VirtualAppliances/release510.html" + }, + { + "filename": "FortiSIEM-VA-5.1.0.1336-2.qcow2", + "version": "5.1.0", + "md5sum": "8185e537ce222c2e8407e9bf08e604bb", + "filesize": 46858240, + "download_url": "https://images-cdn.fortisiem.fortinet.com/VirtualAppliances/release510.html" + }, { "filename": "FortiSIEM-VA-5.0.0.1201.qcow2", "version": "5.0.0", "md5sum": "1f2f0b1d84e89495fc5b5ca722cb5710", "filesize": 10029432832, - "download_url": "https://images-cdn.fortisiem.fortinet.com/VirtualAppliances/latestrelease.html" + "download_url": "https://images-cdn.fortisiem.fortinet.com/VirtualAppliances/release500.html" }, { "filename": "FortiSIEM-VA-5.0.0.1201-1.qcow2", "version": "5.0.0", "md5sum": "88e96259f44a82b7c545b82925880513", "filesize": 46858240, - "download_url": "https://images-cdn.fortisiem.fortinet.com/VirtualAppliances/latestrelease.html" + "download_url": "https://images-cdn.fortisiem.fortinet.com/VirtualAppliances/release500.html" }, { "filename": "FortiSIEM-VA-5.0.0.1201-2.qcow2", "version": "5.0.0", "md5sum": "58d61498e1adc1df062fc12113d42d86", "filesize": 46858240, - "download_url": "https://images-cdn.fortisiem.fortinet.com/VirtualAppliances/latestrelease.html" + "download_url": "https://images-cdn.fortisiem.fortinet.com/VirtualAppliances/release500.html" }, { "filename": "FortiSIEM-VA-KVM-4.10.0.1102.qcow2", @@ -93,6 +114,14 @@ } ], "versions": [ + { + "name": "5.1.0", + "images": { + "hda_disk_image": "FortiSIEM-VA-5.1.0.1336.qcow2", + "hdb_disk_image": "FortiSIEM-VA-5.1.0.1336-1.qcow2", + "hdc_disk_image": "FortiSIEM-VA-5.1.0.1336-2.qcow2" + } + }, { "name": "5.0.0", "images": { diff --git a/appliances/fortiweb.gns3a b/appliances/fortiweb.gns3a index 64368fc..d2216e7 100644 --- a/appliances/fortiweb.gns3a +++ b/appliances/fortiweb.gns3a @@ -26,6 +26,13 @@ "kvm": "allow" }, "images": [ + { + "filename": "FWB_KVM-v600-build0036-FORTINET.out.kvm.qcow2", + "version": "6.0.1", + "md5sum": "220170383b66a6f8091729d67a8fef3e", + "filesize": 138412544, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FWB_KVM-v500-build1618-FORTINET.out.kvm.qcow2", "version": "5.9.1", @@ -93,6 +100,13 @@ ], "versions": [ + { + "name": "6.0.1", + "images": { + "hda_disk_image": "FWB_KVM-v600-build0036-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty30G.qcow2" + } + }, { "name": "5.9.1", "images": { From 27279babbb200468f03a961f7cb60a8fdfa759d9 Mon Sep 17 00:00:00 2001 From: adosztal Date: Wed, 31 Oct 2018 12:47:19 +0100 Subject: [PATCH 115/169] Update on FortiSIEM usage --- appliances/fortisiem-super_worker.gns3a | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appliances/fortisiem-super_worker.gns3a b/appliances/fortisiem-super_worker.gns3a index bde23fd..52156bc 100644 --- a/appliances/fortisiem-super_worker.gns3a +++ b/appliances/fortisiem-super_worker.gns3a @@ -11,7 +11,7 @@ "status": "stable", "maintainer": "GNS3 Team", "maintainer_email": "developers@gns3.net", - "usage": "This is the Super/Worker component. Default credentials:\n- admin / admin*1\n - root / ProspectHills\n\nIf you get a 503 error on the WebUI, run /opt/phoenix/deployment/jumpbox/phinitsuper as root.", + "usage": "This is the Super/Worker component. Default credentials:\n- admin / admin*1\n - root / ProspectHills\n\nIf you get a 503 error on the WebUI, run /opt/phoenix/deployment/jumpbox/phinitsuper as root.\n\nMake sure that Super, Worker(s), Collector(s) and Report Server can connect to FortiSIEM hosted CentOS repo on https port 443 under the URLs below. Otherwise, some packages may not install and 5.0.0 binaries will not run.\n- https://os-pkgs-cdn.fortisiem.fortinet.com/centos6/\n- https://os-pkgs.fortisiem.fortinet.com/centos6/", "port_name_format": "Port{port1}", "symbol": "fortinet.svg", "qemu": { From 9b103c6c5018ddec4a86e47f4b9f86bd370eae4b Mon Sep 17 00:00:00 2001 From: Jeremy Grossmann Date: Thu, 1 Nov 2018 00:36:27 +0700 Subject: [PATCH 116/169] Change registry version to 3 --- appliances/aruba-vmc.gns3a | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appliances/aruba-vmc.gns3a b/appliances/aruba-vmc.gns3a index 450a2c6..86276bf 100644 --- a/appliances/aruba-vmc.gns3a +++ b/appliances/aruba-vmc.gns3a @@ -52,5 +52,5 @@ "maintainer": "Gary Ossewaarde", "description": "Aruba Virtual Mobility Controller", "first_port_name": "mgmt", - "registry_version": 1 + "registry_version": 3 } From 850f0bcab1bfd56ad545e1da701e050cb4c01008 Mon Sep 17 00:00:00 2001 From: Jeremy Grossmann Date: Thu, 1 Nov 2018 00:39:35 +0700 Subject: [PATCH 117/169] Change registry version to 4 to support availability --- appliances/aruba-vmc.gns3a | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appliances/aruba-vmc.gns3a b/appliances/aruba-vmc.gns3a index 86276bf..9a81cac 100644 --- a/appliances/aruba-vmc.gns3a +++ b/appliances/aruba-vmc.gns3a @@ -52,5 +52,5 @@ "maintainer": "Gary Ossewaarde", "description": "Aruba Virtual Mobility Controller", "first_port_name": "mgmt", - "registry_version": 3 + "registry_version": 4 } From c8e3b36a59fad44a196d381bec5c9942f51e40d8 Mon Sep 17 00:00:00 2001 From: adosztal Date: Fri, 2 Nov 2018 08:59:28 +0100 Subject: [PATCH 118/169] New releases --- appliances/coreos.gns3a | 15 +++++++++++++++ appliances/freebsd.gns3a | 15 +++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/appliances/coreos.gns3a b/appliances/coreos.gns3a index c5aa480..5cd3152 100644 --- a/appliances/coreos.gns3a +++ b/appliances/coreos.gns3a @@ -21,6 +21,15 @@ "kvm": "allow" }, "images": [ + { + "filename": "coreos_production_qemu_image.1855.5.0.img", + "version": "1855.5.0", + "md5sum": "6b5b06bc47446277c5c536c09b5a7988", + "filesize": 924319744, + "download_url": "http://stable.release.core-os.net/amd64-usr/1855.5.0/", + "direct_download_url": "http://stable.release.core-os.net/amd64-usr/1855.5.0/coreos_production_qemu_image.img.bz2", + "compression": "bzip2" + }, { "filename": "coreos_production_qemu_image.1688.5.3.img", "version": "1688.5.3", @@ -167,6 +176,12 @@ } ], "versions": [ + { + "name": "1855.5.0", + "images": { + "hda_disk_image": "coreos_production_qemu_image.1855.5.0.img" + } + }, { "name": "1688.5.3", "images": { diff --git a/appliances/freebsd.gns3a b/appliances/freebsd.gns3a index 90d9721..37bf800 100644 --- a/appliances/freebsd.gns3a +++ b/appliances/freebsd.gns3a @@ -22,6 +22,15 @@ "kvm": "require" }, "images": [ + { + "filename": "FreeBSD-11.2-RELEASE-amd64.qcow2", + "version": "11.2", + "md5sum": "44d37e65be4bb4054f067911c84d074a", + "filesize": 1630076928, + "download_url": "https://www.freebsd.org/where.html", + "direct_download_url": "https://download.freebsd.org/ftp/releases/VM-IMAGES/11.2-RELEASE/amd64/Latest/FreeBSD-11.2-RELEASE-amd64.qcow2.xz", + "compression": "xz" + }, { "filename": "FreeBSD-11.1-RELEASE-amd64.qcow2", "version": "11.1", @@ -60,6 +69,12 @@ } ], "versions": [ + { + "name": "11.2", + "images": { + "hda_disk_image": "FreeBSD-11.2-RELEASE-amd64.qcow2" + } + }, { "name": "11.1", "images": { From 40565d875d8ea4aead9d80eea1847f4824dae0c8 Mon Sep 17 00:00:00 2001 From: adosztal Date: Fri, 2 Nov 2018 12:59:19 +0100 Subject: [PATCH 119/169] New releases --- appliances/hp-vsr1001.gns3a | 15 ++++++++++++++- appliances/kemp-vlm.gns3a | 13 +++++++++++++ appliances/kerio-connect.gns3a | 14 ++++++++++++++ appliances/kerio-control.gns3a | 14 ++++++++++++++ appliances/kerio-operator.gns3a | 14 ++++++++++++++ appliances/security-onion.gns3a | 19 +++++++++++++++++-- appliances/sophos-iview.gns3a | 18 ++++++++++++++++-- appliances/sophos-utm.gns3a | 14 ++++++++++++++ appliances/sophos-xg.gns3a | 25 +++++++++++++++++++++++-- 9 files changed, 139 insertions(+), 7 deletions(-) diff --git a/appliances/hp-vsr1001.gns3a b/appliances/hp-vsr1001.gns3a index c0b7f9c..6d0fb3f 100644 --- a/appliances/hp-vsr1001.gns3a +++ b/appliances/hp-vsr1001.gns3a @@ -1,7 +1,7 @@ { "name": "HPE VSR1001", "category": "router", - "description": "The HP VSR1000 Virtual Services Router Series is a software application, running on a server, which provides functionality similar to that of a physical router: robust routing between networked devices using a number of popular routing protocols. It also delivers the critical network services associated with today's enterprise routers such as VPN gateway, firewall and other security and traffic management functions.\n\nThe virtual services router (VSR) application runs on a hypervqcor on the server, and supports VMware vSphere and Linux KVM hypervqcors. From one to eight virtual CPUs are supported, depending on license.\n\nBecause the VSR1000 Series application runs the same HP Comware version 7 operating system as HP switches and routers, it enables significant operational savings. And being virtual, additional agility and ease of deployment is realized, as resources on the VSR can be dynamically allocated and upgraded upon demand as performance requirements grow.\n\nA variety of deployment models are supported including enterprise branch CPE routing, and cloud offload for small to medium workloads.", + "description": "The HPE VSR1000 Virtual Services Router Series is a software application, running on a server, which provides functionality similar to that of a physical router: robust routing between networked devices using a number of popular routing protocols. It also delivers the critical network services associated with today's enterprise routers such as VPN gateway, firewall and other security and traffic management functions.\n\nThe virtual services router (VSR) application runs on a hypervqcor on the server, and supports VMware vSphere and Linux KVM hypervqcors. From one to eight virtual CPUs are supported, depending on license.\n\nBecause the VSR1000 Series application runs the same HPE Comware version 7 operating system as HPE switches and routers, it enables significant operational savings. And being virtual, additional agility and ease of deployment is realized, as resources on the VSR can be dynamically allocated and upgraded upon demand as performance requirements grow.\n\nA variety of deployment models are supported including enterprise branch CPE routing, and cloud offload for small to medium workloads.", "vendor_name": "HPE", "vendor_url": "http://www.hpe.com", "documentation_url": "https://support.hpe.com/hpesc/public/home/documentHome?document_type=135&sp4ts.oid=5195141", @@ -24,6 +24,13 @@ "options": "-machine type=pc-1.0" }, "images": [ + { + "filename": "VSR1000_HPE-CMW710-E0519L03-X64.qco", + "version": "7.10.E0519L03", + "md5sum": "83e23d27e7c3ef7ce813e6aad31d74f7", + "filesize": 202047488, + "download_url": "https://h10145.www1.hpe.com/Downloads/DownloadSoftware.aspx?SoftwareReleaseUId=23726&ProductNumber=JG811AAE&lang=en&cc=us&prodSeriesId=5443163&SaidNumber=" + }, { "filename": "VSR1000_HPE-CMW710-R0327L01-X64.qco", "version": "7.10.R0327L01", @@ -82,6 +89,12 @@ } ], "versions": [ + { + "name": "7.10.E0519L03", + "images": { + "hda_disk_image": "VSR1000_HPE-CMW710-E0519L03-X64.qco" + } + }, { "name": "7.10.R0327L01", "images": { diff --git a/appliances/kemp-vlm.gns3a b/appliances/kemp-vlm.gns3a index b873db5..16f1beb 100644 --- a/appliances/kemp-vlm.gns3a +++ b/appliances/kemp-vlm.gns3a @@ -26,6 +26,13 @@ "options": "-smp 2" }, "images": [ + { + "filename": "LoadMaster-VLM-7.2.44.0.16685.RELEASE-Linux-KVM-XEN-FREE.disk", + "version": "7.2.44.0", + "md5sum": "90d2f84fcabe0ba530c84cf12fab87f1", + "filesize": 17179869185, + "download_url": "http://freeloadbalancer.com/download/" + }, { "filename": "LoadMaster-VLM-7.2.40.0.15707.RELEASE-Linux-KVM-XEN-FREE.disk", "version": "7.2.40.0", @@ -63,6 +70,12 @@ } ], "versions": [ + { + "name": "7.2.44.0", + "images": { + "hda_disk_image": "LoadMaster-VLM-7.2.44.0.16685.RELEASE-Linux-KVM-XEN-FREE.disk" + } + }, { "name": "7.2.40.0", "images": { diff --git a/appliances/kerio-connect.gns3a b/appliances/kerio-connect.gns3a index 206e91b..c5117fc 100644 --- a/appliances/kerio-connect.gns3a +++ b/appliances/kerio-connect.gns3a @@ -24,6 +24,14 @@ "kvm": "require" }, "images": [ + { + "filename": "kerio-connect-appliance-9.2.7-4225-p3-vmware-amd64-disk1.vmdk", + "version": "9.2.7p3", + "md5sum": "12950c8244300f1d86c85c109f0b3413", + "filesize": 914165248, + "download_url": "http://www.kerio.com/support/kerio-connect", + "direct_download_url": "http://cdn.kerio.com/dwn/connect/connect-9.2.7-4225/kerio-connect-appliance-9.2.7-4225-p3-vmware-amd64-disk1.vmdk" + }, { "filename": "kerio-connect-appliance-9.2.6-3851-p1-vmware-amd64-disk1.vmdk", "version": "9.2.6p1", @@ -75,6 +83,12 @@ } ], "versions": [ + { + "name": "9.2.7p3", + "images": { + "hda_disk_image": "kerio-connect-appliance-9.2.7-4225-p3-vmware-amd64-disk1.vmdk" + } + }, { "name": "9.2.6p1", "images": { diff --git a/appliances/kerio-control.gns3a b/appliances/kerio-control.gns3a index 02a868b..bafcf68 100644 --- a/appliances/kerio-control.gns3a +++ b/appliances/kerio-control.gns3a @@ -23,6 +23,14 @@ "kvm": "require" }, "images": [ + { + "filename": "kerio-control-appliance-9.2.7-2921-vmware-disk1.vmdk", + "version": "9.2.7", + "md5sum": "d286a240be53f8dd9da5f80deb9086b0", + "filesize": 191135232, + "download_url": "http://www.kerio.com/support/kerio-control", + "direct_download_url": "http://cdn.kerio.com/dwn/control/control-9.2.7-2921/kerio-control-appliance-9.2.7-2921-vmware-disk1.vmdk" + }, { "filename": "kerio-control-appliance-9.2.5-2641-p5-vmware-disk1.vmdk", "version": "9.2.5p5", @@ -71,6 +79,12 @@ "direct_download_url": "http://cdn.kerio.com/dwn/control/control-9.1.4-1535/kerio-control-appliance-9.1.4-1535-vmware.vmdk" } ], "versions": [ + { + "name": "9.2.7", + "images": { + "hda_disk_image": "kerio-control-appliance-9.2.7-2921-vmware-disk1.vmdk" + } + }, { "name": "9.2.5p5", "images": { diff --git a/appliances/kerio-operator.gns3a b/appliances/kerio-operator.gns3a index 7d1d178..7d4bf30 100644 --- a/appliances/kerio-operator.gns3a +++ b/appliances/kerio-operator.gns3a @@ -24,6 +24,14 @@ "kvm": "require" }, "images": [ + { + "filename": "kerio-operator-appliance-2.6.4-9320-vmware-disk1.vmdk", + "version": "2.6.4", + "md5sum": "3823565dbc96069dc556158ebbbfb977", + "filesize": 307840512, + "download_url": "http://www.kerio.com/support/kerio-operator", + "direct_download_url": "http://cdn.kerio.com/dwn/operator/operator-2.6.4-9320/kerio-operator-appliance-2.6.4-9320-vmware-disk1.vmdk" + }, { "filename": "kerio-operator-appliance-2.6.2-9085-vmware-disk1.vmdk", "version": "2.6.2", @@ -74,6 +82,12 @@ } ], "versions": [ + { + "name": "2.6.4", + "images": { + "hda_disk_image": "kerio-operator-appliance-2.6.4-9320-vmware-disk1.vmdk" + } + }, { "name": "2.6.2", "images": { diff --git a/appliances/security-onion.gns3a b/appliances/security-onion.gns3a index c2011f4..f894fbe 100644 --- a/appliances/security-onion.gns3a +++ b/appliances/security-onion.gns3a @@ -22,12 +22,20 @@ "kvm": "allow" }, "images": [ + { + "filename": "securityonion-16.04.5.3.iso", + "version": "16.04.5.3", + "md5sum": "886b369548c9c3841bc820cc3ab02bd9", + "filesize": 1895825408, + "download_url": "https://github.com/Security-Onion-Solutions/security-onion/releases/", + "direct_download_url": "https://github.com/Security-Onion-Solutions/security-onion/releases/download/v16.04.5.3_20181010/securityonion-16.04.5.3.iso" + }, { "filename": "securityonion-14.04.5.4.iso", "version": "14.04.5.4", "md5sum": "9c7cab756b675beb10de4274a3ad3bc6", "filesize": 1874853888, - "download_url": "https://github.com/Security-Onion-Solutions/security-onion/releases/download/v14.04.5.4_20171031/securityonion-14.04.5.4.iso", + "download_url": "https://github.com/Security-Onion-Solutions/security-onion/releases/", "direct_download_url": "https://github.com/Security-Onion-Solutions/security-onion/releases/download/v14.04.5.4_20171031/securityonion-14.04.5.4.iso" }, { @@ -35,7 +43,7 @@ "version": "14.04.5.3", "md5sum": "fb80ccb2d3c0f3f511823fa5858f87d1", "filesize": 1889533952, - "download_url": "https://github.com/Security-Onion-Solutions/security-onion/releases/download/v14.04.5.4_20171031/securityonion-14.04.5.3.iso", + "download_url": "https://github.com/Security-Onion-Solutions/security-onion/releases/", "direct_download_url": "https://github.com/Security-Onion-Solutions/security-onion/releases/download/v14.04.5.4_20171031/securityonion-14.04.5.3.iso" }, { @@ -49,6 +57,13 @@ ], "versions": [ + { + "name": "16.04.5.3", + "images": { + "hda_disk_image": "empty30G.qcow2", + "cdrom_image": "securityonion-16.04.5.3.iso" + } + }, { "name": "14.04.5.4", "images": { diff --git a/appliances/sophos-iview.gns3a b/appliances/sophos-iview.gns3a index 0ef5a69..59670f7 100644 --- a/appliances/sophos-iview.gns3a +++ b/appliances/sophos-iview.gns3a @@ -24,6 +24,13 @@ "kvm": "require" }, "images": [ + { + "filename": "VI-SIVOS_03.01.2.KVM-009-PRIMARY.qcow2", + "version": "3.1.2", + "md5sum": "62551f70f71e08283d3a23929321eba9", + "filesize": 644218880, + "download_url": "https://secure2.sophos.com/en-us/products/next-gen-firewall/free-trial.aspx" + }, { "filename": "VI-SIVOS_02.00.0_MR-2.KVM-776-PRIMARY.qcow2", "version": "2.0.0 MR2", @@ -32,7 +39,7 @@ "download_url": "https://secure2.sophos.com/en-us/products/next-gen-firewall/free-trial.aspx" }, { - "filename": "VI-SIVOS_02.00.0_MR-2.KVM-776-AUXILARY.qcow2", + "filename": "VI-SIVOS-AUXILARY.qcow2", "version": "2.0.0 MR2", "md5sum": "a52d8cedb1ccd4b5b9f2723dfb41588b", "filesize": 204800, @@ -40,11 +47,18 @@ } ], "versions": [ + { + "name": "3.1.2", + "images": { + "hda_disk_image": "VI-SIVOS_03.01.2.KVM-009-PRIMARY.qcow2", + "hdb_disk_image": "VI-SIVOS-AUXILARY.qcow2" + } + }, { "name": "2.0.0 MR2", "images": { "hda_disk_image": "VI-SIVOS_02.00.0_MR-2.KVM-776-PRIMARY.qcow2", - "hdb_disk_image": "VI-SIVOS_02.00.0_MR-2.KVM-776-AUXILARY.qcow2" + "hdb_disk_image": "VI-SIVOS-AUXILARY.qcow2" } } ] diff --git a/appliances/sophos-utm.gns3a b/appliances/sophos-utm.gns3a index 30584d4..431e991 100644 --- a/appliances/sophos-utm.gns3a +++ b/appliances/sophos-utm.gns3a @@ -24,6 +24,13 @@ "kvm": "allow" }, "images": [ + { + "filename": "asg-9.510-5.1.iso", + "version": "9.510-5.1", + "md5sum": "ae21f96686f238c25941fd3240c7da5b", + "filesize": 871266304, + "download_url": "https://www.sophos.com/en-us/support/utm-downloads.aspx" + }, { "filename": "asg-9.506-2.1.iso", "version": "9.506-2.1", @@ -139,6 +146,13 @@ } ], "versions": [ + { + "name": "9.510-5.1", + "images": { + "hda_disk_image": "empty30G.qcow2", + "cdrom_image": "asg-9.510-5.1.iso" + } + }, { "name": "9.506-2.1", "images": { diff --git a/appliances/sophos-xg.gns3a b/appliances/sophos-xg.gns3a index d190ee4..e17a9b6 100644 --- a/appliances/sophos-xg.gns3a +++ b/appliances/sophos-xg.gns3a @@ -23,6 +23,20 @@ "kvm": "require" }, "images": [ + { + "filename": "VI-17.1.3_MR-3.KVM-250-PRIMARY.qcow2", + "version": "17.1.3 MR3", + "md5sum": "f11c4f63656bcdacbd27c44c52416941", + "filesize": 298844160, + "download_url": "https://secure2.sophos.com/en-us/products/next-gen-firewall/free-trial.aspx" + }, + { + "filename": "VI-17.1.3_MR-3.KVM-250-AUXILARY.qcow2", + "version": "17.1.3 MR3", + "md5sum": "fbea59f7aa81f305bea78c86f82dc3a6", + "filesize": 59441152, + "download_url": "https://secure2.sophos.com/en-us/products/next-gen-firewall/free-trial.aspx" + }, { "filename": "VI-SFOS_17.0.2_MR-2.KVM-116-PRIMARY.qcow2", "version": "17.0.2 MR2", @@ -32,7 +46,7 @@ }, { "filename": "VI-SFOS_17.0.2_MR-2.KVM-116-AUXILARY.qcow2", - "version": "16.05.1 MR1", + "version": "17.0.2 MR2", "md5sum": "c3ef795423dbfc01771348b0daa75125", "filesize": 59441152, "download_url": "https://secure2.sophos.com/en-us/products/next-gen-firewall/free-trial.aspx" @@ -46,7 +60,7 @@ }, { "filename": "VI-SFOS_16.05.4_MR-4.KVM-215-AUXILARY.qcow2", - "version": "16.05.1 MR1", + "version": "16.05.4 MR4", "md5sum": "cafac2d997a3ead087d5823b86ce6cb4", "filesize": 59441152, "download_url": "https://secure2.sophos.com/en-us/products/next-gen-firewall/free-trial.aspx" @@ -109,6 +123,13 @@ } ], "versions": [ + { + "name": "17.1.3 MR3", + "images": { + "hda_disk_image": "VI-17.1.3_MR-3.KVM-250-PRIMARY.qcow2", + "hdb_disk_image": "VI-17.1.3_MR-3.KVM-250-AUXILARY.qcow2" + } + }, { "name": "17.0.2 MR2", "images": { From 7ec8f87f08fba4bb055dcd4d10d4ff326013d5d6 Mon Sep 17 00:00:00 2001 From: Jeremy Grossmann Date: Fri, 2 Nov 2018 19:32:13 +0700 Subject: [PATCH 120/169] Cosmetic change --- appliances/cisco-ise.gns3a | 1 - 1 file changed, 1 deletion(-) diff --git a/appliances/cisco-ise.gns3a b/appliances/cisco-ise.gns3a index 8f74a9e..b7056f5 100644 --- a/appliances/cisco-ise.gns3a +++ b/appliances/cisco-ise.gns3a @@ -92,6 +92,5 @@ "cdrom_image": "ise-2.0.0.306.SPA.x86_64.iso" } } - ] } From bb26720c70ae284576c58e1c8bd8c8ceb0c2e549 Mon Sep 17 00:00:00 2001 From: Jeremy Grossmann Date: Fri, 2 Nov 2018 19:50:40 +0700 Subject: [PATCH 121/169] Rename ParrotOS.gns3a to parrot-os.gns3a --- appliances/{ParrotOS.gns3a => parrot-os.gns3a} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename appliances/{ParrotOS.gns3a => parrot-os.gns3a} (99%) diff --git a/appliances/ParrotOS.gns3a b/appliances/parrot-os.gns3a similarity index 99% rename from appliances/ParrotOS.gns3a rename to appliances/parrot-os.gns3a index 78b0d64..1146ed3 100644 --- a/appliances/ParrotOS.gns3a +++ b/appliances/parrot-os.gns3a @@ -50,4 +50,4 @@ } ] -} \ No newline at end of file +} From 836b08b4d9d927f6189605d5dd26f14ea93feaa0 Mon Sep 17 00:00:00 2001 From: adosztal Date: Mon, 5 Nov 2018 21:37:00 +0100 Subject: [PATCH 122/169] New release --- appliances/zentyal-server.gns3a | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/appliances/zentyal-server.gns3a b/appliances/zentyal-server.gns3a index d38e922..1370eee 100644 --- a/appliances/zentyal-server.gns3a +++ b/appliances/zentyal-server.gns3a @@ -24,6 +24,14 @@ "kvm": "require" }, "images": [ + { + "filename": "zentyal-6.0-development-amd64.iso", + "version": "6.0", + "md5sum": "e1765d2c4d86debc9d9cbab2b7a8adbd", + "filesize": 895483904, + "download_url": "http://download.zentyal.com/", + "direct_download_url": "http://download.zentyal.com/zentyal-6.0-development-amd64.iso" + }, { "filename": "zentyal-5.1-development-amd64.iso", "version": "5.1", @@ -82,6 +90,13 @@ } ], "versions": [ + { + "name": "6.0", + "images": { + "hda_disk_image": "empty100G.qcow2", + "cdrom_image": "zentyal-6.0-development-amd64.iso" + } + }, { "name": "5.1", "images": { From 836d2032c1a840db3e323b639a4e93e969df058a Mon Sep 17 00:00:00 2001 From: Harold GALVANI Date: Thu, 22 Nov 2018 21:00:51 +0100 Subject: [PATCH 123/169] Update freenas.gns3a Correct download URL of iso image for 11.1-U6 version --- appliances/freenas.gns3a | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appliances/freenas.gns3a b/appliances/freenas.gns3a index 75dc402..be45752 100644 --- a/appliances/freenas.gns3a +++ b/appliances/freenas.gns3a @@ -30,7 +30,7 @@ "md5sum": "633d6444cad903c707983b54e04fc053", "filesize": 636065792, "download_url": "http://www.freenas.org/download/", - "direct_download_url": "https://download.freenas.org/11/11.1-U4/x64/FreeNAS-11.1-U4.iso" + "direct_download_url": "https://download.freenas.org/11/11.1-U6/x64/FreeNAS-11.1-U6.iso" }, { "filename": "FreeNAS-11.1-U4.iso", From 393f11fac9ed658c730f9a99e03aea6e86cb13f0 Mon Sep 17 00:00:00 2001 From: Jeremy Grossmann Date: Sat, 24 Nov 2018 15:20:44 +0700 Subject: [PATCH 124/169] Use rtl8139 network adapter by default for EXOS appliance. Fixes #379 --- appliances/exos.gns3a | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appliances/exos.gns3a b/appliances/exos.gns3a index d4f7087..5aff76b 100644 --- a/appliances/exos.gns3a +++ b/appliances/exos.gns3a @@ -15,7 +15,7 @@ "first_port_name": "Management", "port_name_format": "Port{port1}", "qemu": { - "adapter_type": "e1000", + "adapter_type": "rtl8139", "adapters": 13, "ram": 256, "hda_disk_interface": "ide", From df44e9d583cd6bfc803c059fff1dca8fb409b01c Mon Sep 17 00:00:00 2001 From: jkk88 Date: Thu, 6 Dec 2018 11:33:09 +0100 Subject: [PATCH 125/169] Add versions 18.06.1, 17.01.6 (prev. LEDE) and change 15.05.1 to x86_64 arch --- appliances/openwrt.gns3a | 48 ++++++++++++++++++++++++++++++++-------- 1 file changed, 39 insertions(+), 9 deletions(-) diff --git a/appliances/openwrt.gns3a b/appliances/openwrt.gns3a index 3e70caf..2ff06fb 100644 --- a/appliances/openwrt.gns3a +++ b/appliances/openwrt.gns3a @@ -11,31 +11,61 @@ "status": "stable", "maintainer": "GNS3 Team", "maintainer_email": "developers@gns3.net", - "usage": "Ethernet0 is the LAN link, Ethernet1 the WAN link.", + "usage": "Ethernet0 is the LAN link, Ethernet1 the WAN link, Ethernet2 and Ethernet3 are optional links.", "qemu": { "adapter_type": "virtio-net-pci", - "adapters": 2, + "adapters": 4, "ram": 64, - "arch": "i386", + "arch": "x86_64", "console_type": "telnet", "kvm": "allow" }, "images": [ { - "filename": "openwrt-15.05.1-x86-kvm_guest-combined-ext4.img", + "filename": "openwrt-18.06.1-x86-64-combined-ext4.img", + "version": "18.06.1", + "md5sum": "3e2da47c5c2496b6df364a60ded8f40a", + "filesize": 285736960, + "download_url": "https://downloads.openwrt.org/releases/18.06.1/targets/x86/64/", + "direct_download_url": "https://downloads.openwrt.org/releases/18.06.1/targets/x86/64/openwrt-18.06.1-x86-64-combined-ext4.img.gz", + "compression": "gzip" + }, + { + "filename": "lede-17.01.6-x86-64-combined-ext4.img", + "version": "17.01.6", + "md5sum": "015c0d5038ddd469fbdabce7eb5265dc", + "filesize": 285736960, + "download_url": "https://downloads.openwrt.org/releases/17.01.6/targets/x86/64/", + "direct_download_url": "https://downloads.openwrt.org/releases/17.01.6/targets/x86/64/lede-17.01.6-x86-64-combined-ext4.img.gz", + "compression": "gzip" + }, + { + "filename": "openwrt-15.05.1-x86-64-combined-ext4.img", "version": "15.05.1", - "md5sum": "d02f5224b7fbe929efa4d3f10f4dc996", + "md5sum": "307d8cdb11faeb1b5e27fe55078bd152", "filesize": 55050240, - "download_url": "http://downloads.openwrt.org/chaos_calmer/15.05.1/x86/kvm_guest/", - "direct_download_url": "https://downloads.openwrt.org/chaos_calmer/15.05.1/x86/kvm_guest/openwrt-15.05.1-x86-kvm_guest-combined-ext4.img.gz", + "download_url": "http://archive.openwrt.org/chaos_calmer/15.05.1/x86/64/", + "direct_download_url": "http://archive.openwrt.org/chaos_calmer/15.05.1/x86/64/openwrt-15.05.1-x86-64-combined-ext4.img.gz", "compression": "gzip" } ], "versions": [ { - "name": "Chaos Calmer 15.05.1", + "name": "openwrt 18.06.1", "images": { - "hda_disk_image": "openwrt-15.05.1-x86-kvm_guest-combined-ext4.img" + "hda_disk_image": "openwrt-18.06.1-x86-64-combined-ext4.img" + } + }, + { + "name": "openwrt/lede 17.01.6", + "images": { + "hda_disk_image": "lede-17.01.6-x86-64-combined-ext4.img" + } + }, + { + "name": "openwrt 15.05.1", + "images": { + "hda_disk_image": "openwrt-15.05.1-x86-64-combined-ext4.img" } } ] From d243bc505956ed252d6794627f5fa0f2c2dd096c Mon Sep 17 00:00:00 2001 From: Jeremy Davis Date: Fri, 7 Dec 2018 11:38:58 +1100 Subject: [PATCH 126/169] turnkey docker naming convention has changed, to get specific versions, use version as tag --- appliances/turnkey-wordpress.gns3a | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appliances/turnkey-wordpress.gns3a b/appliances/turnkey-wordpress.gns3a index bb8a13b..978f49f 100644 --- a/appliances/turnkey-wordpress.gns3a +++ b/appliances/turnkey-wordpress.gns3a @@ -13,7 +13,7 @@ "usage": "For security reasons there are no default passwords. All passwords are set at system initialization time.", "docker": { "adapters": 1, - "image": "turnkeylinux/wordpress-14.2:latest", + "image": "turnkeylinux/wordpress:latest", "console_type": "telnet" } } From bef77ae29641c26f6fe756e3d25f3820f88109f9 Mon Sep 17 00:00:00 2001 From: Jeremy Grossmann Date: Fri, 14 Dec 2018 14:39:24 -0600 Subject: [PATCH 127/169] Remove LEDE appliance. Fixes #383 --- appliances/lede.gns3a | 97 ------------------------------------------- 1 file changed, 97 deletions(-) delete mode 100644 appliances/lede.gns3a diff --git a/appliances/lede.gns3a b/appliances/lede.gns3a deleted file mode 100644 index 74c388a..0000000 --- a/appliances/lede.gns3a +++ /dev/null @@ -1,97 +0,0 @@ -{ - "name": "LEDE", - "category": "router", - "description": "LEDE is a highly extensible GNU/Linux distribution for embedded devices (typically wireless routers). Unlike many other distributions for these routers, OpenWrt is built from the ground up to be a full-featured, easily modifiable operating system for your router. In practice, this means that you can have all the features you need with none of the bloat, powered by a Linux kernel that's more recent than most other distributions.", - "vendor_name": "LEDE Project", - "vendor_url": "https://lede-project.org/", - "documentation_url": "http://wiki.openwrt.org/doc/", - "product_name": "LEDE", - "product_url": "https://lede-project.org/", - "registry_version": 3, - "status": "stable", - "maintainer": "GNS3 Team", - "maintainer_email": "developers@gns3.net", - "usage": "Ethernet0 is the LAN link, Ethernet1 the WAN link.", - "qemu": { - "adapter_type": "virtio-net-pci", - "adapters": 2, - "ram": 64, - "arch": "i386", - "console_type": "telnet", - "kvm": "allow" - }, - "images": [ - { - "filename": "lede-17.01.4-x86-generic-combined-squashfs.img", - "version": "17.01.4", - "md5sum": "ae5d8d3fcab109565fe337d28e51c4b4", - "filesize": 19779546, - "download_url": "https://downloads.lede-project.org/releases/17.01.4/targets/x86/generic/", - "direct_download_url": "https://downloads.lede-project.org/releases/17.01.4/targets/x86/generic/lede-17.01.4-x86-generic-combined-squashfs.img" - }, - { - "filename": "lede-17.01.3-x86-generic-combined-squashfs.img", - "version": "17.01.3", - "md5sum": "d315fc638160a9aec0966d58828bfccf", - "filesize": 19775618, - "download_url": "https://downloads.lede-project.org/releases/17.01.3/targets/x86/generic/", - "direct_download_url": "https://downloads.lede-project.org/releases/17.01.3/targets/x86/generic/lede-17.01.3-x86-generic-combined-squashfs.img" - }, - { - "filename": "lede-17.01.2-x86-generic-combined-squashfs.img", - "version": "17.01.2", - "md5sum": "a466e493ef12935dad5e0c622b1a7859", - "filesize": 19774794, - "download_url": "https://downloads.lede-project.org/releases/17.01.2/targets/x86/generic/", - "direct_download_url": "https://downloads.lede-project.org/releases/17.01.2/targets/x86/generic/lede-17.01.2-x86-generic-combined-squashfs.img" - }, - { - "filename": "lede-17.01.1-x86-generic-combined-squashfs.img", - "version": "17.01.1", - "md5sum": "b050e734c605a34a429389c752ae7c30", - "filesize": 19771166, - "download_url": "https://downloads.lede-project.org/releases/17.01.1/targets/x86/generic/", - "direct_download_url": "https://downloads.lede-project.org/releases/17.01.1/targets/x86/generic/lede-17.01.1-x86-generic-combined-squashfs.img" - }, - { - "filename": "lede-17.01.0-r3205-59508e3-x86-generic-combined-squashfs.img", - "version": "17.01.0", - "md5sum": "3c5e068d50a377d4e26b548ab1ca7b1e", - "filesize": 19755118, - "download_url": "https://downloads.lede-project.org/releases/17.01.0/targets/x86/generic/", - "direct_download_url": "https://downloads.lede-project.org/releases/17.01.0/targets/x86/generic/lede-17.01.0-r3205-59508e3-x86-generic-combined-squashfs.img" - } - ], - "versions": [ - { - "name": "lede 17.01.4", - "images": { - "hda_disk_image": "lede-17.01.4-x86-generic-combined-squashfs.img" - } - }, - { - "name": "lede 17.01.3", - "images": { - "hda_disk_image": "lede-17.01.3-x86-generic-combined-squashfs.img" - } - }, - { - "name": "lede 17.01.2", - "images": { - "hda_disk_image": "lede-17.01.2-x86-generic-combined-squashfs.img" - } - }, - { - "name": "lede 17.01.1", - "images": { - "hda_disk_image": "lede-17.01.1-x86-generic-combined-squashfs.img" - } - }, - { - "name": "lede 17.01.0", - "images": { - "hda_disk_image": "lede-17.01.0-r3205-59508e3-x86-generic-combined-squashfs.img" - } - } - ] -} From 576a73aefb1b5a7151db6f42db11cd6ca1083559 Mon Sep 17 00:00:00 2001 From: Bernhard Ehlers Date: Mon, 17 Dec 2018 09:46:24 +0100 Subject: [PATCH 128/169] Support cEOS-4.21.0F and newer --- appliances/arista-ceos.gns3a | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appliances/arista-ceos.gns3a b/appliances/arista-ceos.gns3a index 3c7851e..84790a4 100644 --- a/appliances/arista-ceos.gns3a +++ b/appliances/arista-ceos.gns3a @@ -9,7 +9,7 @@ "status": "experimental", "maintainer": "GNS3 Team", "maintainer_email": "developers@gns3.net", - "usage": "Download:\nCreate a (free) Arista account and login.\nThen navigate to Support / Software Download and download the cEOS-lab image.\n\nInstallation:\nCopy the image to your GNS3VM (or other Linux) server, then run the following commands:\n\ndocker import cEOS-lab.tar.xz ceosimage:4.20.5F\necho \"rm /etc/systemd/system/getty.target.wants/getty@tty1.service\" | \\\ndocker run --name=ceos-container -e CEOS=1 -e container=docker -e EOS_PLATFORM=ceossim -e SKIP_ZEROTOUCH_BARRIER_IN_SYSDBINIT=1 -e ETBA=1 -e INTFTYPE=eth -i ceosimage:4.20.5F sh\ndocker commit --change='CMD [\"/sbin/init\"]' --change='VOLUME /mnt/flash' ceos-container ceosimage:GNS3\ndocker rm ceos-container\n\nUsage:\nThe login is admin, with no password by default", + "usage": "Download:\nCreate a (free) Arista account and login.\nThen navigate to Support / Software Download and download the cEOS-lab image.\n\nInstallation:\nCopy the image to your GNS3VM (or other Linux) server, then run the following commands:\n\ncEOS-4.21.0F and newer, replace by the cEOS version:\ndocker import cEOS-lab.tar.xz ceosimage:\necho \"rm /etc/systemd/system/getty.target.wants/getty@tty1.service\" | \\\ndocker run --name=ceos-container -e CEOS=1 -e container=docker -e EOS_PLATFORM=ceoslab -e SKIP_ZEROTOUCH_BARRIER_IN_SYSDBINIT=1 -e ETBA=1 -e INTFTYPE=eth -i ceosimage: sh\ndocker commit --change='CMD [\"/sbin/init\"]' --change='VOLUME /mnt/flash' ceos-container ceosimage:GNS3\ndocker rm ceos-container\n\ncEOS-4.20.5F:\ndocker import cEOS-lab.tar.xz ceosimage:4.20.5F\necho \"rm /etc/systemd/system/getty.target.wants/getty@tty1.service\" | \\\ndocker run --name=ceos-container -e CEOS=1 -e container=docker -e EOS_PLATFORM=ceossim -e SKIP_ZEROTOUCH_BARRIER_IN_SYSDBINIT=1 -e ETBA=1 -e INTFTYPE=eth -i ceosimage:4.20.5F sh\ndocker commit --change='CMD [\"/sbin/init\"]' --change='VOLUME /mnt/flash' ceos-container ceosimage:GNS3\ndocker rm ceos-container\n\nUsage:\nStart an auxiliary console on the cEOS and issue the \"Cli\" command.\nOnly cEOS-4.20.5F: Login on the console with username \"admin\".", "symbol": ":/symbols/multilayer_switch.svg", "docker": { "adapters": 8, From e7f2fde6120adc8b871dc80544a046405c5f3421 Mon Sep 17 00:00:00 2001 From: adosztal Date: Mon, 17 Dec 2018 10:57:03 +0100 Subject: [PATCH 129/169] New release --- appliances/fortigate.gns3a | 28 ++++++++++++++++++++++++++++ appliances/freebsd.gns3a | 15 +++++++++++++++ appliances/freenas.gns3a | 16 ++++++++++++++++ 3 files changed, 59 insertions(+) diff --git a/appliances/fortigate.gns3a b/appliances/fortigate.gns3a index cd75b5d..8fdb612 100644 --- a/appliances/fortigate.gns3a +++ b/appliances/fortigate.gns3a @@ -40,6 +40,13 @@ "filesize": 46104576, "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" }, + { + "filename": "FGT_VM64_KVM-v5-build1653-FORTINET.out.kvm.qcow2", + "version": "5.6.7", + "md5sum": "202e1ed7582b02493be63f14cc48c2cb", + "filesize": 43180032, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FGT_VM64_KVM-v5-build1575-FORTINET.out.kvm.qcow2", "version": "5.6.4", @@ -75,6 +82,13 @@ "filesize": 38760448, "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" }, + { + "filename": "FGT_VM64_KVM-v5-build1220-FORTINET.out.kvm.qcow2", + "version": "5.4.10", + "md5sum": "7444d6c85ef6b937a98163482caa5a90", + "filesize": 39043072, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FGT_VM64_KVM-v5-build1183-FORTINET.out.kvm.qcow2", "version": "5.4.8", @@ -218,6 +232,13 @@ "hdb_disk_image": "empty30G.qcow2" } }, + { + "name": "5.6.7", + "images": { + "hda_disk_image": "FGT_VM64_KVM-v5-build1653-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty30G.qcow2" + } + }, { "name": "5.6.4", "images": { @@ -253,6 +274,13 @@ "hdb_disk_image": "empty30G.qcow2" } }, + { + "name": "5.4.10", + "images": { + "hda_disk_image": "FGT_VM64_KVM-v5-build1220-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty30G.qcow2" + } + }, { "name": "5.4.8", "images": { diff --git a/appliances/freebsd.gns3a b/appliances/freebsd.gns3a index 37bf800..3178906 100644 --- a/appliances/freebsd.gns3a +++ b/appliances/freebsd.gns3a @@ -22,6 +22,15 @@ "kvm": "require" }, "images": [ + { + "filename": "FreeBSD-12.0-RELEASE-amd64.qcow2", + "version": "12.0", + "md5sum": "4d2126ba79dad224628be6f25a908bd8", + "filesize": 2644836352, + "download_url": "https://www.freebsd.org/where.html", + "direct_download_url": "https://download.freebsd.org/ftp/releases/VM-IMAGES/12.0-RELEASE/amd64/Latest/FreeBSD-12.0-RELEASE-amd64.qcow2.xz", + "compression": "xz" + }, { "filename": "FreeBSD-11.2-RELEASE-amd64.qcow2", "version": "11.2", @@ -69,6 +78,12 @@ } ], "versions": [ + { + "name": "12.0", + "images": { + "hda_disk_image": "FreeBSD-12.0-RELEASE-amd64.qcow2" + } + }, { "name": "11.2", "images": { diff --git a/appliances/freenas.gns3a b/appliances/freenas.gns3a index be45752..227b133 100644 --- a/appliances/freenas.gns3a +++ b/appliances/freenas.gns3a @@ -24,6 +24,14 @@ "kvm": "require" }, "images": [ + { + "filename": "FreeNAS-11.2-RELEASE.iso", + "version": "11.2", + "md5sum": "bf4a9ebb19313c3d45f84c1550477727", + "filesize": 603410432, + "download_url": "http://www.freenas.org/download/", + "direct_download_url": "https://download.freenas.org/11.2/STABLE/RELEASE/x64/FreeNAS-11.2-RELEASE.iso" + }, { "filename": "FreeNAS-11.1-U6.iso", "version": "11.1 U6", @@ -82,6 +90,14 @@ } ], "versions": [ + { + "name": "11.2", + "images": { + "hda_disk_image": "empty30G.qcow2", + "hdb_disk_image": "empty30G.qcow2", + "cdrom_image": "FreeNAS-11.2-RELEASE.iso" + } + }, { "name": "11.1 U6", "images": { From 346cea644940f036952b6e449eacbe6ffe590ab4 Mon Sep 17 00:00:00 2001 From: adosztal Date: Mon, 17 Dec 2018 11:12:45 +0100 Subject: [PATCH 130/169] Workaround for #1479 --- appliances/cisco-iosxrv9k.gns3a | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/appliances/cisco-iosxrv9k.gns3a b/appliances/cisco-iosxrv9k.gns3a index 2ba4e55..8efb16f 100644 --- a/appliances/cisco-iosxrv9k.gns3a +++ b/appliances/cisco-iosxrv9k.gns3a @@ -11,9 +11,9 @@ "status": "experimental", "maintainer": "GNS3 Team", "maintainer_email": "developers@gns3.net", - "usage": "Default username/password: admin/admin, cisco/cisco and lab/lab. There is no default configuration present. Interfaces may take several minutes to be usable after appliance boot.", + "usage": "Default username/password: admin/admin, cisco/cisco and lab/lab. There is no default configuration present. Interfaces may take several minutes to be usable after appliance boot.\n\nThe interfaces are mapped the following way:\n- NIC0: unused\n- NIC1: unused\n- NIC2: Gi0/0/0/0\n- NIC3:Gi0/0/0/1\n-NICn: Gi0/0/0/(n-2)", "first_port_name": "MgmtEth0/0/CPU0/0", - "port_name_format": "GigabitEthernet0/0/0/{0}", + "port_name_format": "NIC{0}", "qemu": { "adapter_type": "virtio-net-pci", "adapters": 7, From 1a9d1378d440d20f21eb20e06341f968537bc0c6 Mon Sep 17 00:00:00 2001 From: adosztal Date: Mon, 17 Dec 2018 11:18:36 +0100 Subject: [PATCH 131/169] Typo fix --- appliances/cisco-iosxrv9k.gns3a | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appliances/cisco-iosxrv9k.gns3a b/appliances/cisco-iosxrv9k.gns3a index 8efb16f..a87ab03 100644 --- a/appliances/cisco-iosxrv9k.gns3a +++ b/appliances/cisco-iosxrv9k.gns3a @@ -11,7 +11,7 @@ "status": "experimental", "maintainer": "GNS3 Team", "maintainer_email": "developers@gns3.net", - "usage": "Default username/password: admin/admin, cisco/cisco and lab/lab. There is no default configuration present. Interfaces may take several minutes to be usable after appliance boot.\n\nThe interfaces are mapped the following way:\n- NIC0: unused\n- NIC1: unused\n- NIC2: Gi0/0/0/0\n- NIC3:Gi0/0/0/1\n-NICn: Gi0/0/0/(n-2)", + "usage": "Default username/password: admin/admin, cisco/cisco and lab/lab. There is no default configuration present. Interfaces may take several minutes to be usable after appliance boot.\n\nThe interfaces are mapped the following way:\n- NIC0: unused\n- NIC1: unused\n- NIC2: Gi0/0/0/0\n- NIC3: Gi0/0/0/1\n- NICn: Gi0/0/0/(n-2)", "first_port_name": "MgmtEth0/0/CPU0/0", "port_name_format": "NIC{0}", "qemu": { From 85abd19a70b9402d87286c1675ace6f5c4f889aa Mon Sep 17 00:00:00 2001 From: adosztal Date: Mon, 17 Dec 2018 19:22:08 +0100 Subject: [PATCH 132/169] New appliance: FortiProxy --- appliances/fortiproxy.gns3a | 54 +++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 appliances/fortiproxy.gns3a diff --git a/appliances/fortiproxy.gns3a b/appliances/fortiproxy.gns3a new file mode 100644 index 0000000..3c1332c --- /dev/null +++ b/appliances/fortiproxy.gns3a @@ -0,0 +1,54 @@ +{ + "name": "FortiProxy", + "category": "firewall", + "description": "FortiProxy is a secure web proxy that protects employees against internet-borne attacks by incorporating multiple detection techniques such as web filtering, DNS filtering, data loss prevention, antivirus, intrusion prevention and advanced threat protection. It helps enterprises enforce internet compliance using granular application control.", + "vendor_name": "Fortinet", + "vendor_url": "http://www.fortinet.com/", + "documentation_url": "https://docs.fortinet.com/fortiproxy/", + "product_name": "FortiProxy", + "product_url": "https://www.fortinet.com/content/dam/fortinet/assets/data-sheets/FortiProxy.pdf", + "registry_version": 3, + "status": "stable", + "maintainer": "GNS3 Team", + "maintainer_email": "developers@gns3.net", + "usage": "The system reboots twice during the initial setup; this is normal.\nDefault username is admin, no password is set.", + "port_name_format": "Port{port1}", + "symbol": "fortinet.svg", + "qemu": { + "adapter_type": "virtio-net-pci", + "adapters": 10, + "ram": 2048, + "hda_disk_interface": "virtio", + "hdb_disk_interface": "virtio", + "arch": "x86_64", + "console_type": "telnet", + "boot_priority": "c", + "kvm": "allow" + }, + "images": [ + { + "filename": "FPX_KVM-v100-build0147-FORTINET.out.kvm.qcow2", + "version": "1.1.0", + "md5sum": "d7c60693bfa58246e5063304cd450c89", + "filesize": 42668032, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, + { + "filename": "empty30G.qcow2", + "version": "1.0", + "md5sum": "3411a599e822f2ac6be560a26405821a", + "filesize": 197120, + "download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/", + "direct_download_url": "http://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty30G.qcow2/download" + } + ], + "versions": [ + { + "name": "1.1.0", + "images": { + "hda_disk_image": "FPX_KVM-v100-build0147-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty30G.qcow2" + } + } + ] +} From ae98761bc8076ad8f6f2ea8d09b0a8106ef13525 Mon Sep 17 00:00:00 2001 From: adosztal Date: Tue, 18 Dec 2018 14:48:48 +0100 Subject: [PATCH 133/169] New release: FRR 6.0 - solves #346 --- appliances/frr.gns3a | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/appliances/frr.gns3a b/appliances/frr.gns3a index ed3ad7a..4f6c92e 100644 --- a/appliances/frr.gns3a +++ b/appliances/frr.gns3a @@ -20,6 +20,15 @@ "kvm": "require" }, "images": [ + { + "filename": "frr6.0-vm0.2.qcow2", + "version": "FRR6.0 - VM0.2", + "md5sum": "bf5aebd98352716bfabb119abb2ba19a", + "filesize": 1762066432, + "download_url": "https://sourceforge.net/projects/frr/files/", + "direct_download_url": "https://sourceforge.net/projects/frr/files/frr6.0-vm0.2.qcow2.bz2/download", + "compression": "bzip2" + }, { "filename": "frr4.0-vm0.1.qcow2", "version": "FRR4.0 - VM0.1", @@ -31,6 +40,12 @@ } ], "versions": [ + { + "name": "FRR6.0 - VM0.2", + "images": { + "hda_disk_image": "frr6.0-vm0.2.qcow2" + } + }, { "name": "FRR4.0 - VM0.1", "images": { From e6707f147fdc726518f7132ad61937565cd7091a Mon Sep 17 00:00:00 2001 From: Chris Row Date: Fri, 21 Dec 2018 11:05:57 -0700 Subject: [PATCH 134/169] Adjust arista-veos image mounts to boot from CDROM Move Aboot ISO from hda_disk_image to cdrom_image Move VMDK from hdb_disk_image to hda_disk_image Set boot_priority to "d" to boot from CD/DVD Add Arista vEOS version 4.20.11M --- appliances/arista-veos.gns3a | 69 ++++++++++++++++++++++-------------- 1 file changed, 42 insertions(+), 27 deletions(-) diff --git a/appliances/arista-veos.gns3a b/appliances/arista-veos.gns3a index e701fb5..ad0a569 100644 --- a/appliances/arista-veos.gns3a +++ b/appliances/arista-veos.gns3a @@ -21,6 +21,7 @@ "ram": 2048, "arch": "x86_64", "console_type": "telnet", + "boot_priority": "d", "kvm": "require" }, "images": [ @@ -31,6 +32,13 @@ "filesize": 358809600, "download_url": "https://www.arista.com/en/support/software-download" }, + { + "filename": "vEOS-lab-4.20.11M.vmdk", + "version": "4.20.11M", + "md5sum": "19e482a193f237c157ce35c389ca9417", + "filesize": 658178048, + "download_url": "https://www.arista.com/en/support/software-download" + }, { "filename": "vEOS-lab-4.20.1F.vmdk", "version": "4.20.1F", @@ -125,94 +133,101 @@ ], "versions": [ { - "name": "4.21.1F", + "name": "4.21.1.1F", "images": { - "hda_disk_image": "Aboot-veos-serial-8.0.0.iso", - "hdb_disk_image": "vEOS-lab-4.21.1.1F.vmdk" + "cdrom_image": "Aboot-veos-serial-8.0.0.iso", + "hda_disk_image": "vEOS-lab-4.21.1.1F.vmdk" + } + }, + { + "name": "4.20.11M", + "images": { + "cdrom_image": "Aboot-veos-serial-8.0.0.iso", + "hda_disk_image": "vEOS-lab-4.20.11M.vmdk" } }, { "name": "4.20.1F", "images": { - "hda_disk_image": "Aboot-veos-serial-8.0.0.iso", - "hdb_disk_image": "vEOS-lab-4.20.1F.vmdk" + "cdrom_image": "Aboot-veos-serial-8.0.0.iso", + "hda_disk_image": "vEOS-lab-4.20.1F.vmdk" } }, { "name": "4.18.5M", "images": { - "hda_disk_image": "Aboot-veos-serial-8.0.0.iso", - "hdb_disk_image": "vEOS-lab-4.18.5M.vmdk" + "cdrom_image": "Aboot-veos-serial-8.0.0.iso", + "hda_disk_image": "vEOS-lab-4.18.5M.vmdk" } }, { "name": "4.18.1F", "images": { - "hda_disk_image": "Aboot-veos-serial-8.0.0.iso", - "hdb_disk_image": "vEOS-lab-4.18.1F.vmdk" + "cdrom_image": "Aboot-veos-serial-8.0.0.iso", + "hda_disk_image": "vEOS-lab-4.18.1F.vmdk" } }, { "name": "4.17.8M", "images": { - "hda_disk_image": "Aboot-veos-serial-8.0.0.iso", - "hdb_disk_image": "vEOS-lab-4.17.8M.vmdk" + "cdrom_image": "Aboot-veos-serial-8.0.0.iso", + "hda_disk_image": "vEOS-lab-4.17.8M.vmdk" } }, { "name": "4.17.2F", "images": { - "hda_disk_image": "Aboot-veos-serial-8.0.0.iso", - "hdb_disk_image": "vEOS-lab-4.17.2F.vmdk" + "cdrom_image": "Aboot-veos-serial-8.0.0.iso", + "hda_disk_image": "vEOS-lab-4.17.2F.vmdk" } }, { "name": "4.16.13M", "images": { - "hda_disk_image": "Aboot-veos-serial-8.0.0.iso", - "hdb_disk_image": "vEOS-lab-4.16.13M.vmdk" + "cdrom_image": "Aboot-veos-serial-8.0.0.iso", + "hda_disk_image": "vEOS-lab-4.16.13M.vmdk" } }, { "name": "4.16.6M", "images": { - "hda_disk_image": "Aboot-veos-serial-8.0.0.iso", - "hdb_disk_image": "vEOS-lab-4.16.6M.vmdk" + "cdrom_image": "Aboot-veos-serial-8.0.0.iso", + "hda_disk_image": "vEOS-lab-4.16.6M.vmdk" } }, { "name": "4.15.10M", "images": { - "hda_disk_image": "Aboot-veos-serial-8.0.0.iso", - "hdb_disk_image": "vEOS-lab-4.15.10M.vmdk" + "cdrom_image": "Aboot-veos-serial-8.0.0.iso", + "hda_disk_image": "vEOS-lab-4.15.10M.vmdk" } }, { "name": "4.15.5M", "images": { - "hda_disk_image": "Aboot-veos-serial-8.0.0.iso", - "hdb_disk_image": "vEOS-lab-4.15.5M.vmdk" + "cdrom_image": "Aboot-veos-serial-8.0.0.iso", + "hda_disk_image": "vEOS-lab-4.15.5M.vmdk" } }, { "name": "4.14.14M", "images": { - "hda_disk_image": "Aboot-veos-serial-8.0.0.iso", - "hdb_disk_image": "vEOS-lab-4.14.14M.vmdk" + "cdrom_image": "Aboot-veos-serial-8.0.0.iso", + "hda_disk_image": "vEOS-lab-4.14.14M.vmdk" } }, { "name": "4.13.16M", "images": { - "hda_disk_image": "Aboot-veos-serial-8.0.0.iso", - "hdb_disk_image": "vEOS-lab-4.13.16M.vmdk" + "cdrom_image": "Aboot-veos-serial-8.0.0.iso", + "hda_disk_image": "vEOS-lab-4.13.16M.vmdk" } }, { "name": "4.13.8M", "images": { - "hda_disk_image": "Aboot-veos-serial-8.0.0.iso", - "hdb_disk_image": "vEOS-lab-4.13.8M.vmdk" + "cdrom_image": "Aboot-veos-serial-8.0.0.iso", + "hda_disk_image": "vEOS-lab-4.13.8M.vmdk" } } ] From 508e9efd89c6050140789504df61ea0037a41308 Mon Sep 17 00:00:00 2001 From: adosztal Date: Sat, 22 Dec 2018 15:36:41 +0100 Subject: [PATCH 135/169] New release --- appliances/fortimanager.gns3a | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/appliances/fortimanager.gns3a b/appliances/fortimanager.gns3a index 091a025..7003ecb 100644 --- a/appliances/fortimanager.gns3a +++ b/appliances/fortimanager.gns3a @@ -26,6 +26,13 @@ "kvm": "allow" }, "images": [ + { + "filename": "FMG_VM64_KVM-v6-build0255-FORTINET.out.kvm.qcow2", + "version": "6.0.3", + "md5sum": "5f34d52d9289b0be2a4c04943446ea39", + "filesize": 115703808, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FMG_VM64_KVM-v6-build0205-FORTINET.out.kvm.qcow2", "version": "6.0.2", @@ -134,6 +141,13 @@ } ], "versions": [ + { + "name": "6.0.3", + "images": { + "hda_disk_image": "FMG_VM64_KVM-v6-build0255-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty30G.qcow2" + } + }, { "name": "6.0.2", "images": { From bd9d093e1e0d21ea77cb266efee92013ec3ded84 Mon Sep 17 00:00:00 2001 From: adosztal Date: Wed, 26 Dec 2018 17:21:54 +0100 Subject: [PATCH 136/169] New release --- appliances/fortianalyzer.gns3a | 28 ++++++++++++++++++++++++++++ appliances/fortiauthenticator.gns3a | 14 ++++++++++++++ appliances/fortisandbox.gns3a | 14 ++++++++++++++ appliances/fortiweb.gns3a | 14 ++++++++++++++ 4 files changed, 70 insertions(+) diff --git a/appliances/fortianalyzer.gns3a b/appliances/fortianalyzer.gns3a index 43d6763..6376256 100644 --- a/appliances/fortianalyzer.gns3a +++ b/appliances/fortianalyzer.gns3a @@ -26,6 +26,13 @@ "kvm": "allow" }, "images": [ + { + "filename": "FAZ_VM64_KVM-v6-build0255-FORTINET.out.kvm.qcow2", + "version": "6.0.4", + "md5sum": "14c98b20ed1d0729e2d04aad49ff1be5", + "filesize": 114589696, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FAZ_VM64_KVM-v6-build0205-FORTINET.out.kvm.qcow2", "version": "6.0.2", @@ -40,6 +47,13 @@ "filesize": 117940224, "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" }, + { + "filename": "FAZ_VM64_KVM-v5-build1782-FORTINET.out.kvm.qcow2", + "version": "5.6.7", + "md5sum": "f67c115cc51e911802e9cbcb5cb0c8c2", + "filesize": 110862336, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FAZ_VM64_KVM-v5-build1631-FORTINET.out.kvm.qcow2", "version": "5.6.2", @@ -134,6 +148,13 @@ } ], "versions": [ + { + "name": "6.0.3", + "images": { + "hda_disk_image": "FAZ_VM64_KVM-v6-build0255-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty30G.qcow2" + } + }, { "name": "6.0.2", "images": { @@ -148,6 +169,13 @@ "hdb_disk_image": "empty30G.qcow2" } }, + { + "name": "5.6.7", + "images": { + "hda_disk_image": "FAZ_VM64_KVM-v5-build1782-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty30G.qcow2" + } + }, { "name": "5.6.2", "images": { diff --git a/appliances/fortiauthenticator.gns3a b/appliances/fortiauthenticator.gns3a index 29f58ab..19c7c67 100644 --- a/appliances/fortiauthenticator.gns3a +++ b/appliances/fortiauthenticator.gns3a @@ -26,6 +26,13 @@ "kvm": "allow" }, "images": [ + { + "filename": "FAC_VM_KVM-v5-build0366-FORTINET.out.kvm.qcow2", + "version": "5.5.0", + "md5sum": "c6ae060f8840b467efac6701a7e8e6af", + "filesize": 72982528, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FAC_VM_KVM-v5-build0297-FORTINET.out.kvm.qcow2", "version": "5.4.1", @@ -91,6 +98,13 @@ } ], "versions": [ + { + "name": "5.5.0", + "images": { + "hda_disk_image": "FAC_VM_KVM-v5-build0366-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "FAC_VM_KVM-v500-DATADRIVE.qcow2" + } + }, { "name": "5.4.1", "images": { diff --git a/appliances/fortisandbox.gns3a b/appliances/fortisandbox.gns3a index 848fff5..64eba9f 100644 --- a/appliances/fortisandbox.gns3a +++ b/appliances/fortisandbox.gns3a @@ -27,6 +27,13 @@ "options": "-smp 2" }, "images": [ + { + "filename": "FSA_KVM-v300-build0049-FORTINET.out.kvm.qcow2", + "version": "3.0.3", + "md5sum": "3ef1f05124d13e23332b8b90f8f71c2c", + "filesize": 156828160, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FSA_KVM-v300-build0029-FORTINET.out.kvm.qcow2", "version": "3.0.1", @@ -92,6 +99,13 @@ } ], "versions": [ + { + "name": "3.0.3", + "images": { + "hda_disk_image": "FSA_KVM-v300-build0049-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "FSA-datadrive.qcow2" + } + }, { "name": "3.0.1", "images": { diff --git a/appliances/fortiweb.gns3a b/appliances/fortiweb.gns3a index d2216e7..ebfdeac 100644 --- a/appliances/fortiweb.gns3a +++ b/appliances/fortiweb.gns3a @@ -26,6 +26,13 @@ "kvm": "allow" }, "images": [ + { + "filename": "FWB_KVM-v600-build0056-FORTINET.out.kvm.qcow2", + "version": "6.0.2", + "md5sum": "cc7800bc6c2dd60c583d2d4ef1965e01", + "filesize": 156959232, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FWB_KVM-v600-build0036-FORTINET.out.kvm.qcow2", "version": "6.0.1", @@ -100,6 +107,13 @@ ], "versions": [ + { + "name": "6.0.2", + "images": { + "hda_disk_image": "FWB_KVM-v600-build0056-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty30G.qcow2" + } + }, { "name": "6.0.1", "images": { From 6029889ed3ae8162394db7d7fed8bc36f0cb51d3 Mon Sep 17 00:00:00 2001 From: adosztal Date: Thu, 27 Dec 2018 18:21:59 +0100 Subject: [PATCH 137/169] New release --- appliances/coreos.gns3a | 15 +++++++++++++++ appliances/cumulus-vx.gns3a | 14 ++++++++++++++ appliances/fortianalyzer.gns3a | 2 +- appliances/kali-linux.gns3a | 31 +++++++++++++++++++++++-------- appliances/untangle.gns3a | 14 ++++++++++++++ 5 files changed, 67 insertions(+), 9 deletions(-) diff --git a/appliances/coreos.gns3a b/appliances/coreos.gns3a index 5cd3152..d37471f 100644 --- a/appliances/coreos.gns3a +++ b/appliances/coreos.gns3a @@ -21,6 +21,15 @@ "kvm": "allow" }, "images": [ + { + "filename": "coreos_production_qemu_image.1911.5.0.img", + "version": "1911.5.0", + "md5sum": "3b5b33697cfc545d8eb9fb461c612e76", + "filesize": 940507136, + "download_url": "http://stable.release.core-os.net/amd64-usr/1911.5.0/", + "direct_download_url": "http://stable.release.core-os.net/amd64-usr/1911.5.0/coreos_production_qemu_image.img.bz2", + "compression": "bzip2" + }, { "filename": "coreos_production_qemu_image.1855.5.0.img", "version": "1855.5.0", @@ -176,6 +185,12 @@ } ], "versions": [ + { + "name": "1911.5.0", + "images": { + "hda_disk_image": "coreos_production_qemu_image.1911.5.0.img" + } + }, { "name": "1855.5.0", "images": { diff --git a/appliances/cumulus-vx.gns3a b/appliances/cumulus-vx.gns3a index 2e5641c..f8df14c 100644 --- a/appliances/cumulus-vx.gns3a +++ b/appliances/cumulus-vx.gns3a @@ -23,6 +23,14 @@ "kvm": "require" }, "images": [ + { + "filename": "cumulus-linux-3.7.2-vx-amd64-qemu.qcow2", + "version": "3.7.2", + "md5sum": "2fcd785da0452e403c44ba5f3ac4e870", + "filesize": 1574502400, + "download_url": "https://cumulusnetworks.com/cumulus-vx/download/", + "direct_download_url": "http://cumulusfiles.s3.amazonaws.com/CumulusLinux-3.7.2/cumulus-linux-3.7.2-vx-amd64-qemu.qcow2" + }, { "filename": "cumulus-linux-3.7.1-vx-amd64-qemu.qcow2", "version": "3.7.1", @@ -181,6 +189,12 @@ } ], "versions": [ + { + "name": "3.7.2", + "images": { + "hda_disk_image": "cumulus-linux-3.7.2-vx-amd64-qemu.qcow2" + } + }, { "name": "3.7.1", "images": { diff --git a/appliances/fortianalyzer.gns3a b/appliances/fortianalyzer.gns3a index 6376256..297f7c4 100644 --- a/appliances/fortianalyzer.gns3a +++ b/appliances/fortianalyzer.gns3a @@ -28,7 +28,7 @@ "images": [ { "filename": "FAZ_VM64_KVM-v6-build0255-FORTINET.out.kvm.qcow2", - "version": "6.0.4", + "version": "6.0.3", "md5sum": "14c98b20ed1d0729e2d04aad49ff1be5", "filesize": 114589696, "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" diff --git a/appliances/kali-linux.gns3a b/appliances/kali-linux.gns3a index 742f695..0261636 100644 --- a/appliances/kali-linux.gns3a +++ b/appliances/kali-linux.gns3a @@ -21,12 +21,20 @@ }, "images": [ { - "filename": "kali-linux-2018.3-amd64.iso", - "version": "2018.3", - "md5sum": "6dc3e57177249f73492b9edb95d082d1", - "filesize": 3188391936, + "filename": "kali-linux-2018.4-amd64.iso", + "version": "2018.4", + "md5sum": "1b2d598bb8d2003e6207c119c0ba42fe", + "filesize": 3139436544, "download_url": "https://www.kali.org/downloads/", - "direct_download_url": "http://cdimage.kali.org/kali-2018.3/kali-linux-2018.3-amd64.iso" + "direct_download_url": "http://cdimage.kali.org/kali-2018.4/kali-linux-2018.4-amd64.iso" + }, + { + "filename": "kali-linux-2018.3a-amd64.iso", + "version": "2018.3a", + "md5sum": "2da675d016bd690c05e180e33aa98b94", + "filesize": 3192651776, + "download_url": "https://www.kali.org/downloads/", + "direct_download_url": "http://cdimage.kali.org/kali-2018.3a/kali-linux-2018.3a-amd64.iso" }, { "filename": "kali-linux-2018.1-amd64.iso", @@ -87,11 +95,18 @@ ], "versions": [ { - "name": "2018.3", + "name": "2018.4", "images": { - "cdrom_image": "kali-linux-2018.3-amd64.iso" + "cdrom_image": "kali-linux-2018.4-amd64.iso" } - }, { + }, + { + "name": "2018.3a", + "images": { + "cdrom_image": "kali-linux-2018.3a-amd64.iso" + } + }, + { "name": "2018.1", "images": { "cdrom_image": "kali-linux-2018.1-amd64.iso" diff --git a/appliances/untangle.gns3a b/appliances/untangle.gns3a index a2d0963..2695802 100644 --- a/appliances/untangle.gns3a +++ b/appliances/untangle.gns3a @@ -24,6 +24,13 @@ "kvm": "allow" }, "images": [ + { + "filename": "untangle_1410_x64.iso", + "version": "14.1.0", + "md5sum": "49bb09e4796f225f482ca1d9c93de66b", + "filesize": 682622976, + "download_url": "https://www.untangle.com/get-untangle/" + }, { "filename": "untangle_1401_x64.iso", "version": "14.0.1", @@ -111,6 +118,13 @@ } ], "versions": [ + { + "name": "14.1.0", + "images": { + "hda_disk_image": "empty30G.qcow2", + "cdrom_image": "untangle_1410_x64.iso" + } + }, { "name": "14.0.1", "images": { From 81d39062bee96c5087e4354930b7bb290fe605dd Mon Sep 17 00:00:00 2001 From: adosztal Date: Fri, 4 Jan 2019 12:28:50 +0100 Subject: [PATCH 138/169] New appliance --- appliances/fortiadc-manager.gns3a | 53 ++++++++++++++++++++++++++++++ appliances/fortirecorder.gns3a | 54 +++++++++++++++++++++++++++++++ 2 files changed, 107 insertions(+) create mode 100644 appliances/fortiadc-manager.gns3a create mode 100644 appliances/fortirecorder.gns3a diff --git a/appliances/fortiadc-manager.gns3a b/appliances/fortiadc-manager.gns3a new file mode 100644 index 0000000..74090e7 --- /dev/null +++ b/appliances/fortiadc-manager.gns3a @@ -0,0 +1,53 @@ +{ + "name": "FortiADC Manager", + "category": "guest", + "description": "FortiADC Manager allows you to use a web- based user interface to configure remote FortiADC devices. It allows you to simplify and speed up the FortiADC deployment and update process by maintaining configuration templates and policy packages that you can modify and apply as needed.", + "vendor_name": "Fortinet", + "vendor_url": "http://www.fortinet.com/", + "documentation_url": "https://docs.fortinet.com/fortiadc-manager/", + "product_name": "FortiADC Manager", + "product_url": "https://www.fortinet.com/products/application-delivery-controller/fortiadc.html", + "registry_version": 3, + "status": "stable", + "maintainer": "GNS3 Team", + "maintainer_email": "developers@gns3.net", + "usage": "Default username is admin, no password is set.", + "port_name_format": "Port{port1}", + "symbol": "fortinet.svg", + "qemu": { + "adapter_type": "virtio-net-pci", + "adapters": 10, + "ram": 2048, + "hda_disk_interface": "virtio", + "hdb_disk_interface": "virtio", + "arch": "x86_64", + "console_type": "telnet", + "boot_priority": "c", + "kvm": "allow" + }, + "images": [ + { + "filename": "FADCManager-KVM-V500-build0020-FORTINET.out.kvm-boot.qcow2", + "version": "5.2.0", + "md5sum": "a79d04040848b704ce4efe925518fd3f", + "filesize": 70057984, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, + { + "filename": "FADCManager-KVM-v500-data.qcow2", + "version": "5.x", + "md5sum": "b7500835594e62d8acb1c6ec43d597c1", + "filesize": 30998528, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + } + ], + "versions": [ + { + "name": "5.2.0", + "images": { + "hda_disk_image": "FADCManager-KVM-V500-build0020-FORTINET.out.kvm-boot.qcow2", + "hdb_disk_image": "FADCManager-KVM-v500-data.qcow2" + } + } + ] +} diff --git a/appliances/fortirecorder.gns3a b/appliances/fortirecorder.gns3a new file mode 100644 index 0000000..0940c71 --- /dev/null +++ b/appliances/fortirecorder.gns3a @@ -0,0 +1,54 @@ +{ + "name": "FortiRecorder", + "category": "guest", + "description": "Surveillance systems can be complicated, expensive, and unreliable. But FortiCamera and FortiRecorder simplify IP video surveillance and there are no license fees. With FortiCams, you can see everything: doors, POS terminals, public areas--whatever you need to keep an eye on. FortiRecorder captures the images for easy monitoring, storage, and retrieval. Just plug in your cameras, connect the FortiRecorder, open a web browser or client application, and you're ready to go. It's easy to navigate and configure with event timelines and profile-driven configuration.", + "vendor_name": "Fortinet", + "vendor_url": "http://www.fortinet.com/", + "documentation_url": "https://docs.fortinet.com/fortirecorder/", + "product_name": "FortiRecorder", + "product_url": "https://www.fortinet.com/products/network-based-video-security/forticam-fortirecorder.html", + "registry_version": 3, + "status": "stable", + "maintainer": "GNS3 Team", + "maintainer_email": "developers@gns3.net", + "usage": "Use HTTPS when connecting to the WebUI.\nDefault username is admin, no password is set.", + "port_name_format": "Port{port1}", + "symbol": "fortinet.svg", + "qemu": { + "adapter_type": "virtio-net-pci", + "adapters": 10, + "ram": 2048, + "hda_disk_interface": "virtio", + "hdb_disk_interface": "virtio", + "arch": "x86_64", + "console_type": "telnet", + "boot_priority": "c", + "kvm": "allow" + }, + "images": [ + { + "filename": "fortirecorder-FRC_VMKV-64-v26-build0607-FORTINET.out.kvm.qcow2", + "version": "2.6.3", + "md5sum": "ffa5d42119de576631673516f60e028b", + "filesize": 63569920, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, + { + "filename": "empty30G.qcow2", + "version": "1.0", + "md5sum": "3411a599e822f2ac6be560a26405821a", + "filesize": 197120, + "download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/", + "direct_download_url": "http://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty30G.qcow2/download" + } + ], + "versions": [ + { + "name": "2.6.3", + "images": { + "hda_disk_image": "fortirecorder-FRC_VMKV-64-v26-build0607-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty30G.qcow2" + } + } + ] +} From 616ff04fd6fa6ffeff164a973914615decefc7aa Mon Sep 17 00:00:00 2001 From: adosztal Date: Fri, 4 Jan 2019 12:29:00 +0100 Subject: [PATCH 139/169] New release --- appliances/fortiadc.gns3a | 14 ++++++++++++++ appliances/mikrotik-chr.gns3a | 17 ++++++++++++++++- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/appliances/fortiadc.gns3a b/appliances/fortiadc.gns3a index 3a32a0f..f78da59 100644 --- a/appliances/fortiadc.gns3a +++ b/appliances/fortiadc.gns3a @@ -34,6 +34,13 @@ "filesize": 30998528, "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" }, + { + "filename": "FAD_KVM-V500-build0423-FORTINET.out.kvm-boot.qcow2", + "version": "5.2.0", + "md5sum": "993bcd0e8e5496fdacb78dffb3c9a9b3", + "filesize": 104333312, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FAD_KVM-V500-build0239-FORTINET.out.kvm-boot.qcow2", "version": "5.1.1", @@ -183,6 +190,13 @@ } ], "versions": [ + { + "name": "5.2.0", + "images": { + "hda_disk_image": "FAD_KVM-V500-build0423-FORTINET.out.kvm-boot.qcow2", + "hdb_disk_image": "FAD_KVM-FORTINET.out.kvm-data.qcow2" + } + }, { "name": "5.1.1", "images": { diff --git a/appliances/mikrotik-chr.gns3a b/appliances/mikrotik-chr.gns3a index ea9d77f..5ab6ded 100644 --- a/appliances/mikrotik-chr.gns3a +++ b/appliances/mikrotik-chr.gns3a @@ -26,9 +26,18 @@ "options": "-nographic" }, "images": [ + { + "filename": "chr-6.43.8.img", + "version": "6.43.8", + "md5sum": "9437133fc7e77779dc3ff62b98f30dc2", + "filesize": 134217728, + "download_url": "http://www.mikrotik.com/download", + "direct_download_url": "https://download2.mikrotik.com/routeros/6.43.8/chr-6.43.8.img.zip", + "compression": "zip" + }, { "filename": "chr-6.42.9.img", - "version": "6.42", + "version": "6.42.9", "md5sum": "1f856978cfc3ceb4b5e18e4e079f2e32", "filesize": 134217728, "download_url": "http://www.mikrotik.com/download", @@ -271,6 +280,12 @@ } ], "versions": [ + { + "name": "6.43.8", + "images": { + "hda_disk_image": "chr-6.43.8.img" + } + }, { "name": "6.42.9", "images": { From 8b6d393638fe7c4da1c75f4586de06db0337c791 Mon Sep 17 00:00:00 2001 From: adosztal Date: Fri, 4 Jan 2019 12:59:43 +0100 Subject: [PATCH 140/169] New release --- appliances/op5-monitor.gns3a | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/appliances/op5-monitor.gns3a b/appliances/op5-monitor.gns3a index 9a61229..ee73a78 100644 --- a/appliances/op5-monitor.gns3a +++ b/appliances/op5-monitor.gns3a @@ -25,6 +25,13 @@ "kvm": "require" }, "images": [ + { + "filename": "op5-Monitor-Virtual-Appliance-7.4.10.x86_64-disk1.vmdk", + "version": "7.4.10", + "md5sum": "48ec6d7ee3809d9ed705a089c679e076", + "filesize": 1111941120, + "download_url": "https://www.op5.com/download/" + }, { "filename": "op5-Monitor-Virtual-Appliance-7.3.15.x86_64.vmdk", "version": "7.3.15", @@ -34,6 +41,12 @@ } ], "versions": [ + { + "name": "7.4.10", + "images": { + "hda_disk_image": "op5-Monitor-Virtual-Appliance-7.4.10.x86_64-disk1.vmdk" + } + }, { "name": "7.3.15", "images": { From 125f2ad67d1e18cf1e28dde245824a991c32f6b7 Mon Sep 17 00:00:00 2001 From: parkerbrother1 <40617976+parkerbrother1@users.noreply.github.com> Date: Sun, 6 Jan 2019 19:26:38 -0500 Subject: [PATCH 141/169] New appliances for Cisco Stealthwatch. Flow Collector for NetFlow, Flow Sensor Virtual Edition, Stealthwatch Management Console. --- appliances/cisco-fcnf.gns3a | 70 +++++++++++++++++++++++++++++++++++++ appliances/cisco-fsve.gns3a | 56 +++++++++++++++++++++++++++++ appliances/cisco-smc.gns3a | 70 +++++++++++++++++++++++++++++++++++++ 3 files changed, 196 insertions(+) create mode 100644 appliances/cisco-fcnf.gns3a create mode 100644 appliances/cisco-fsve.gns3a create mode 100644 appliances/cisco-smc.gns3a diff --git a/appliances/cisco-fcnf.gns3a b/appliances/cisco-fcnf.gns3a new file mode 100644 index 0000000..e0aa559 --- /dev/null +++ b/appliances/cisco-fcnf.gns3a @@ -0,0 +1,70 @@ +{ + "name": "Cisco Flow Collector for NetFlow", + "category": "firewall", + "description": "Cisco Stealthwatch is the most comprehensive visibility and network traffic security analytics solution that uses enterprise telemetry from the existing network infrastructure. It provides advanced threat detection, accelerated threat response, and simplified network segmentation using multilayer machine learning and entity modeling. With advanced behavioral analytics, you’ll always know who is on your network and what they are doing.\n\nAt the heart of the Stealthwatch System is the highly scalable Stealthwatch Flow Collector. The Flow Collector is available as either a physical or a virtual appliance. The Flow Collector VE performs the same functions as its physical counterpart, but in a virtual environment. The Stealthwatch Flow Collector for NetFlow gathers NetFlow, cFlow, J-Flow, Packeteer 2, NetStream, and IPFIX data. To achieve full network visibility with a traditional probe-based approach, you would need to install a probe for each router or switch on your network. This results in many costly hardware installations. Conversely, Stealthwatch’s flow-based approach provides you with full network visibility at a fraction of the cost. Each Flow Collector can process data for as many as 1,000,000 hosts from up to 2,000 flow exporters, depending on the Flow Collector model and license restrictions. ", + "vendor_name": "Cisco", + "vendor_url": "http://www.cisco.com/", + "documentation_url": "https://www.cisco.com/c/en/us/support/security/stealthwatch/tsd-products-support-series-home.html", + "product_name": "Flow Collector for NetFlow", + "product_url": "https://www.cisco.com/c/en/us/products/security/stealthwatch/index.html", + "registry_version": 4, + "status": "experimental", + "maintainer": "GNS3 Team", + "maintainer_email": "developers@gns3.net", + "usage": "Starting Flow Collector for NetFlow will start an installation of FCNF onto a blank 200GB Drive.\nDefault console username/password: sysadmin/lan1cope.\nDefault web username/password: admin/lan411cope.", + "symbol": ":/symbols/asa.svg", + "first_port_name": "eth0", + "port_name_format": "eth{port1}", + "qemu": { + "cpus": 2, + "adapter_type": "e1000", + "adapters": 1, + "ram": 8192, + "hda_disk_interface": "scsi", + "arch": "x86_64", + "console_type": "vnc", + "boot_priority": "cd", + "kvm": "require", + "options": "" + }, + "images": [ + { + "filename": "FlowCollector-NetFlow-6.10.4-2018.11.14.1757-0.iso", + "version": "6.10.4-2018.11.14.1757-0", + "md5sum": "accd9fb9dd2d312805883749899a2fc0", + "filesize": 2479288320, + "download_url": "https://stealthwatch.flexnetoperations.com/control/lncp/product?child_plneID=786407" + }, + { + "filename": "FlowCollector-NetFlow-6.10.2-2018.03.19.2230-0.iso", + "version": "6.10.2-2018.03.19.2230-0", + "md5sum": "e2ac83fa617ed9e073e845cedae76873", + "filesize": 2430076928, + "download_url": "https://software.cisco.com/download/home/286307342/type/286307754/release/6.10.2" + }, + { + "filename": "empty200G.qcow2", + "version": "1.0", + "md5sum": "d1686d2f25695dee32eab9a6f4652c7c", + "filesize": 200192, + "download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/", + "direct_download_url": "http://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty200G.qcow2/download" + } + ], + "versions": [ + { + "name": "6.10.4-2018.11.14.1757-0", + "images": { + "hda_disk_image": "empty200G.qcow2", + "cdrom_image": "FlowCollector-NetFlow-6.10.4-2018.11.14.1757-0.iso" + } + }, + { + "name": "6.10.2-2018.03.19.2230-0", + "images": { + "hda_disk_image": "empty200G.qcow2", + "cdrom_image": "FlowCollector-NetFlow-6.10.2-2018.03.19.2230-0.iso" + } + } + ] +} diff --git a/appliances/cisco-fsve.gns3a b/appliances/cisco-fsve.gns3a new file mode 100644 index 0000000..d84f515 --- /dev/null +++ b/appliances/cisco-fsve.gns3a @@ -0,0 +1,56 @@ +{ + "name": "Cisco Flow Sensor", + "category": "firewall", + "description": "Cisco Stealthwatch is the most comprehensive visibility and network traffic security analytics solution that uses enterprise telemetry from the existing network infrastructure. It provides advanced threat detection, accelerated threat response, and simplified network segmentation using multilayer machine learning and entity modeling. With advanced behavioral analytics, you’ll always know who is on your network and what they are doing.\n\nUsing the same technology as the Stealthwatch Flow Sensor appliance, the Flow Sensor VE is a virtual appliance that provides visibility into virtual environments, generating flow data for areas that are not flow-enabled. ", + "vendor_name": "Cisco", + "vendor_url": "http://www.cisco.com/", + "documentation_url": "https://www.cisco.com/c/en/us/support/security/stealthwatch/tsd-products-support-series-home.html", + "product_name": "Flow Sensor VE", + "product_url": "https://www.cisco.com/c/en/us/products/security/stealthwatch/index.html", + "registry_version": 4, + "status": "experimental", + "maintainer": "GNS3 Team", + "maintainer_email": "developers@gns3.net", + "usage": "Starting Flow Sensor will start an installation of FSVE onto a blank 100GB Drive.\nDefault console username/password: sysadmin/lan1cope.\nDefault web username/password: admin/lan411cope.", + "symbol": ":/symbols/asa.svg", + "first_port_name": "eth0", + "port_name_format": "eth{port1}", + "qemu": { + "cpus": 1, + "adapter_type": "e1000", + "adapters": 2, + "ram": 8192, + "hda_disk_interface": "scsi", + "arch": "x86_64", + "console_type": "vnc", + "boot_priority": "cd", + "kvm": "require", + "options": "" + }, + "images": [ + { + "filename": "FlowSensor-AE-6.10.2-2018.03.19.2224-0.iso", + "version": "6.10.2-2018.03.19.2224-0", + "md5sum": "ef8712e655fcbc92dc1a1551ee2e4a80", + "filesize": 1287245824, + "download_url": "https://software.cisco.com/download/home/286307342/type/286307754/release/6.10.2" + }, + { + "filename": "empty100G.qcow2", + "version": "1.0", + "md5sum": "1e6409a4523ada212dea2ebc50e50a65", + "filesize": 198656, + "download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/", + "direct_download_url": "http://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty100G.qcow2/download" + } + ], + "versions": [ + { + "name": "6.10.2-2018.03.19.2224-0", + "images": { + "hda_disk_image": "empty100G.qcow2", + "cdrom_image": "FlowSensor-AE-6.10.2-2018.03.19.2224-0.iso" + } + } + ] +} diff --git a/appliances/cisco-smc.gns3a b/appliances/cisco-smc.gns3a new file mode 100644 index 0000000..e17155c --- /dev/null +++ b/appliances/cisco-smc.gns3a @@ -0,0 +1,70 @@ +{ + "name": "Cisco Stealthwatch Management Console", + "category": "firewall", + "description": "Cisco Stealthwatch is the most comprehensive visibility and network traffic security analytics solution that uses enterprise telemetry from the existing network infrastructure. It provides advanced threat detection, accelerated threat response, and simplified network segmentation using multilayer machine learning and entity modeling. With advanced behavioral analytics, you’ll always know who is on your network and what they are doing.\n\nAs the control center for the Stealthwatch System, the SMC manages, coordinates, configures, and organizes all of the different components of the system. The SMC client software allows you to access the SMC’s user-friendly graphical user interface from any local computer with access to a Web browser. Through the client interface, you can easily access real-time security and network information about critical segments throughout your enterprise. ", + "vendor_name": "Cisco", + "vendor_url": "http://www.cisco.com/", + "documentation_url": "https://www.cisco.com/c/en/us/support/security/stealthwatch/tsd-products-support-series-home.html", + "product_name": "Stealthwatch Management Console", + "product_url": "https://www.cisco.com/c/en/us/products/security/stealthwatch/index.html", + "registry_version": 4, + "status": "experimental", + "maintainer": "GNS3 Team", + "maintainer_email": "developers@gns3.net", + "usage": "Starting Stealthwatch Management Console will start an installation of SMC onto a blank 200GB Drive.\nDefault console username/password: sysadmin/lan1cope.\nDefault web username/password: admin/lan411cope.", + "symbol": "cisco-fmcv.svg", + "first_port_name": "eth0", + "port_name_format": "eth{port1}", + "qemu": { + "cpus": 3, + "adapter_type": "e1000", + "adapters": 1, + "ram": 8192, + "hda_disk_interface": "scsi", + "arch": "x86_64", + "console_type": "vnc", + "boot_priority": "cd", + "kvm": "require", + "options": "" + }, + "images": [ + { + "filename": "SMC-6.10.4-2018.11.14.1757-0.iso", + "version": "6.10.4-2018.11.14.1757-0", + "md5sum": "1de82eddf5303012aa8701144a7d4c7b", + "filesize": 2518747136, + "download_url": "https://stealthwatch.flexnetoperations.com/control/lncp/product?child_plneID=786407" + }, + { + "filename": "SMC-6.10.2-2018.03.19.2228-0.iso", + "version": "6.10.2-2018.03.19.2228-0", + "md5sum": "e4e31ea6eb5c17c12769724f0c70b452", + "filesize": 2311847936, + "download_url": "https://software.cisco.com/download/home/286307342/type/286307754/release/6.10.2" + }, + { + "filename": "empty200G.qcow2", + "version": "1.0", + "md5sum": "d1686d2f25695dee32eab9a6f4652c7c", + "filesize": 200192, + "download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/", + "direct_download_url": "http://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty200G.qcow2/download" + } + ], + "versions": [ + { + "name": "6.10.4-2018.11.14.1757-0", + "images": { + "hda_disk_image": "empty200G.qcow2", + "cdrom_image": "SMC-6.10.4-2018.11.14.1757-0.iso" + } + }, + { + "name": "6.10.2-2018.03.19.2228-0", + "images": { + "hda_disk_image": "empty200G.qcow2", + "cdrom_image": "SMC-6.10.2-2018.03.19.2228-0.iso" + } + } + ] +} From f9852e4b9156245411fc53c96d60e2880277dba6 Mon Sep 17 00:00:00 2001 From: Tak Mem Loy Date: Sun, 13 Jan 2019 07:00:58 +0000 Subject: [PATCH 142/169] New Release - ArubaOS-CX Simulation v10.01.0001 --- appliances/aruba-arubaoscx.gns3a | 53 ++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 appliances/aruba-arubaoscx.gns3a diff --git a/appliances/aruba-arubaoscx.gns3a b/appliances/aruba-arubaoscx.gns3a new file mode 100644 index 0000000..09b25ba --- /dev/null +++ b/appliances/aruba-arubaoscx.gns3a @@ -0,0 +1,53 @@ +{ + "name": "ArubaOS-CX Simulation Software", + "category": "multilayer_switch", + "status": "stable", + "product_name": "ArubaOS-CX Simulation Software", + "description": "The ArubaOS-CX Simulation Software OVA is a virtual platform to enable simulation of the ArubaOS-CX Network Operating System. Simulated networks can be created using many of the protocols in the ArubaOS-CX Operating system like OSPF and BGP. Key features like the Aruba Network Analytics Engine and the REST API can be simulated, providing a lightweight development platform to building the modern network. This software can be easily implemented in the GNS3 simulation software to enable drag and drop network design for building complex simulated topologies.", + "maintainer_email": "alloytm@gmail.com", + "vendor_url": "arubanetworks.com", + "vendor_name": "HPE Aruba", + "availability": "service-contract", + "maintainer": "Tak Mem Loy", + "registry_version": 4, + "usage": "Default username admin with blank password.", + "symbol": ":/symbols/route_switch_processor.svg", + "first_port_name": "mgmt", + "port_name_format": "1/1/{0}", + + "qemu": { + "arch": "x86_64", + "ram": 4096, + "adapters": 8, + "hdb_disk_interface": "ide", + "hdc_disk_interface": "ide", + "hda_disk_interface": "ide", + "cpus": 2, + "kvm": "require", + "adapter_type": "virtio-net-pci", + "console_type": "vnc", + "options": "-nographic", + "process_priority": "normal" + }, + + "images": [ + { + "filename": "arubaoscx-disk-image-genericx86-p4-20180712161119.vmdk", + "version": "10.01.0001", + "md5sum": "9146ae0ac650d8206c9600e03753f022", + "filesize": 287734784, + "download_url": "http://support.arubanetworks.com/" + } + + ], + + "versions": [ + { + "name": "10.01.0001", + "images": { + "hda_disk_image": "arubaoscx-disk-image-genericx86-p4-20180712161119.vmdk" + } + } + ] + +} From 044d81873d696f43d86ca6b474c53d53db77f4c6 Mon Sep 17 00:00:00 2001 From: Bernhard Ehlers Date: Sun, 13 Jan 2019 18:27:50 +0100 Subject: [PATCH 143/169] Make installation of imagemagick optional If imagemagick is not found, the SVG is parsed internally. --- README.rst | 3 ++- check.py | 37 ++++++++++++++++++++++++++++++++++++- 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/README.rst b/README.rst index bd8b274..a2945d5 100644 --- a/README.rst +++ b/README.rst @@ -49,7 +49,8 @@ Check appliance files python check.py python3 check_urls.py -You need to install `imagemagick` before running check.py. +if `imagemagick` is installed, it will be used to check the symbol properties. +Otherwise an (experimental) internal function will do that. Create a new appliance ----------------------- diff --git a/check.py b/check.py index 2d672f6..9f50887 100644 --- a/check.py +++ b/check.py @@ -19,6 +19,8 @@ import os import jsonschema import json import sys +import re +import shutil import subprocess @@ -97,12 +99,45 @@ def check_packer(packer): json.load(f) +unit2px = {'cm': 35.43307, 'mm': 3.543307, 'in': 90.0, + 'pc': 15.0, 'pt': 1.25, 'px': 1.0} + +def svg_get_height(filename): + with open(filename, 'r') as image_file: + image_data = image_file.read() + match = re.search(']* height="([^"]+)"', image_data) + if not match: + print("{}: can't determine the image height".format(filename)) + sys.exit(1) + height = match.group(1) + + unit = height[-2:] + if unit in unit2px: + factor = unit2px[unit] + height = height[:-2] + else: + factor = 1.0 + + try: + height = round(float(height) * factor) + except ValueError: + print("{}: can't determine the image height".format(filename)) + sys.exit(1) + + return height + + +use_imagemagick = shutil.which("identify") + def check_symbol(symbol): licence_file = os.path.join('symbols', symbol.replace('.svg', '.txt')) if not os.path.exists(licence_file): print("Missing licence {} for {}".format(licence_file, symbol)) sys.exit(1) - height = int(subprocess.check_output(['identify', '-format', '%h', os.path.join('symbols', symbol)], shell=False)) + if use_imagemagick: + height = int(subprocess.check_output(['identify', '-format', '%h', os.path.join('symbols', symbol)], shell=False)) + else: + height = svg_get_height(os.path.join('symbols', symbol)) if height > 70: print("Symbol height of {} is too big {} > 70".format(symbol, height)) sys.exit(1) From 7915540ac6049a539bb50a43c4f65df67c0773f8 Mon Sep 17 00:00:00 2001 From: Bernhard Ehlers Date: Mon, 14 Jan 2019 00:17:02 +0100 Subject: [PATCH 144/169] Fix check.py - regex uses whitespace as word delimiter --- README.rst | 2 +- check.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.rst b/README.rst index a2945d5..4749b5f 100644 --- a/README.rst +++ b/README.rst @@ -49,7 +49,7 @@ Check appliance files python check.py python3 check_urls.py -if `imagemagick` is installed, it will be used to check the symbol properties. +If `imagemagick` is installed, it will be used to check the symbol properties. Otherwise an (experimental) internal function will do that. Create a new appliance diff --git a/check.py b/check.py index 9f50887..b4485df 100644 --- a/check.py +++ b/check.py @@ -105,7 +105,7 @@ unit2px = {'cm': 35.43307, 'mm': 3.543307, 'in': 90.0, def svg_get_height(filename): with open(filename, 'r') as image_file: image_data = image_file.read() - match = re.search(']* height="([^"]+)"', image_data) + match = re.search(']*\sheight="([^"]+)"', image_data) if not match: print("{}: can't determine the image height".format(filename)) sys.exit(1) From a4eeac196bef9116402594e3171d4ccc64676e4f Mon Sep 17 00:00:00 2001 From: root Date: Fri, 18 Jan 2019 13:41:59 +0100 Subject: [PATCH 145/169] Added FD.IO VPP appliance --- appliances/vpp.gns3a | 48 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 appliances/vpp.gns3a diff --git a/appliances/vpp.gns3a b/appliances/vpp.gns3a new file mode 100644 index 0000000..d6d1c3a --- /dev/null +++ b/appliances/vpp.gns3a @@ -0,0 +1,48 @@ +{ + "name": "VPP", + "category": "router", + "description": "Vector Packet Processing (VPP) platform", + "vendor_name": "FD.IO VPP router", + "vendor_url": "https://fd.io/", + "documentation_url": "https://fd.io/resources/", + "product_name": "VPP", + "registry_version": 4, + "status": "experimental", + "availability": "free", + "maintainer": "Virginijus Magelinskas", + "maintainer_email": "virginijus.m@gmail.com", + "usage": "Login: root , pass: vpp. This appliance requires >2 vCPUs and 4GB of RAM to run", + "port_name_format": "eth{0}", + "qemu": { + "adapter_type": "virtio-net-pci", + "adapters": 5, + "ram": 4096, + "hda_disk_interface": "ide", + "arch": "x86_64", + "console_type": "telnet", + "boot_priority": "c", + "kvm": "require", + "options": "-nographic -cpu host -smp 2" + }, + "images": [ + + + { + "filename": "vpp_public-18.10-07.qcow2", + "version": "0.7", + "md5sum": "3e962985e5bbda0de4dc7893e60f6366", + "filesize": 2065825792, + "direct_download_url": "https://sigaba.net/vpp/vpp_public-18.10-07.qcow2" + } + ], + "versions": [ + + { + "name": "18.10-07", + "images": { + "hda_disk_image": "vpp_public-18.10-07.qcow2" + } + } + ] +} + From 3b606bcfc6249e27bd93fc06fd4e4a9a01251e8d Mon Sep 17 00:00:00 2001 From: Jeremy Grossmann Date: Fri, 18 Jan 2019 19:56:06 +0700 Subject: [PATCH 146/169] Update vpp.gns3a --- appliances/vpp.gns3a | 2 -- 1 file changed, 2 deletions(-) diff --git a/appliances/vpp.gns3a b/appliances/vpp.gns3a index d6d1c3a..cbd3999 100644 --- a/appliances/vpp.gns3a +++ b/appliances/vpp.gns3a @@ -25,8 +25,6 @@ "options": "-nographic -cpu host -smp 2" }, "images": [ - - { "filename": "vpp_public-18.10-07.qcow2", "version": "0.7", From 7cde41ba12ab584642ac0a8501e13d8285c0cb7d Mon Sep 17 00:00:00 2001 From: Bernhard Ehlers Date: Wed, 23 Jan 2019 13:56:30 +0100 Subject: [PATCH 147/169] Use picture.py from gns3-server to get image properties --- check.py | 33 +++--------- picture.py | 153 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 159 insertions(+), 27 deletions(-) create mode 100644 picture.py diff --git a/check.py b/check.py index b4485df..a68acba 100644 --- a/check.py +++ b/check.py @@ -16,12 +16,12 @@ # along with this program. If not, see . import os -import jsonschema import json import sys -import re import shutil import subprocess +import jsonschema +from picture import get_size SCHEMA_VERSIONS = [3, 4, 5] @@ -99,31 +99,10 @@ def check_packer(packer): json.load(f) -unit2px = {'cm': 35.43307, 'mm': 3.543307, 'in': 90.0, - 'pc': 15.0, 'pt': 1.25, 'px': 1.0} - -def svg_get_height(filename): - with open(filename, 'r') as image_file: +def image_get_height(filename): + with open(filename, 'rb') as image_file: image_data = image_file.read() - match = re.search(']*\sheight="([^"]+)"', image_data) - if not match: - print("{}: can't determine the image height".format(filename)) - sys.exit(1) - height = match.group(1) - - unit = height[-2:] - if unit in unit2px: - factor = unit2px[unit] - height = height[:-2] - else: - factor = 1.0 - - try: - height = round(float(height) * factor) - except ValueError: - print("{}: can't determine the image height".format(filename)) - sys.exit(1) - + width, height, filetype = get_size(image_data) return height @@ -137,7 +116,7 @@ def check_symbol(symbol): if use_imagemagick: height = int(subprocess.check_output(['identify', '-format', '%h', os.path.join('symbols', symbol)], shell=False)) else: - height = svg_get_height(os.path.join('symbols', symbol)) + height = image_get_height(os.path.join('symbols', symbol)) if height > 70: print("Symbol height of {} is too big {} > 70".format(symbol, height)) sys.exit(1) diff --git a/picture.py b/picture.py new file mode 100644 index 0000000..3e9fd41 --- /dev/null +++ b/picture.py @@ -0,0 +1,153 @@ +#!/usr/bin/env python +# +# Copyright (C) 2016 GNS3 Technologies Inc. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +import re +import io +import struct +from xml.etree.ElementTree import ElementTree, ParseError + + +def get_size(data, default_width=0, default_height=0): + """ + Get image size + :param data: A buffer with image content + :return: Tuple (width, height, filetype) + """ + + height = default_height + width = default_width + filetype = None + + # Original version: + # https://github.com/shibukawa/imagesize_py + # + # The MIT License (MIT) + # + # Copyright © 2016 Yoshiki Shibukawa + # + # Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + size = len(data) + # handle GIFs + if size >= 10 and data[:6] in (b'GIF87a', b'GIF89a'): + # Check to see if content_type is correct + try: + width, height = struct.unpack("= 24 and data.startswith(b'\211PNG\r\n\032\n') and data[12:16] == b'IHDR': + try: + width, height = struct.unpack(">LL", data[16:24]) + filetype = "png" + except struct.error: + raise ValueError("Invalid PNG file") + # Maybe this is for an older PNG version. + elif size >= 16 and data.startswith(b'\211PNG\r\n\032\n'): + # Check to see if we have the right content type + try: + width, height = struct.unpack(">LL", data[8:16]) + filetype = "png" + except struct.error: + raise ValueError("Invalid PNG file") + # handle JPEGs + elif size >= 2 and data.startswith(b'\377\330'): + try: + # Not very efficient to copy data to a buffer + fhandle = io.BytesIO(data) + size = 2 + ftype = 0 + while not 0xc0 <= ftype <= 0xcf: + fhandle.seek(size, 1) + byte = fhandle.read(1) + while ord(byte) == 0xff: + byte = fhandle.read(1) + ftype = ord(byte) + size = struct.unpack('>H', fhandle.read(2))[0] - 2 + # We are at a SOFn block + fhandle.seek(1, 1) # Skip `precision' byte. + height, width = struct.unpack('>HH', fhandle.read(4)) + filetype = "jpg" + except struct.error: + raise ValueError("Invalid JPEG file") + # End of https://github.com/shibukawa/imagesize_py + + # handle SVG + elif size >= 10 and data.startswith(b'= 3: + if size[-2:] in conversion_table: + factor = conversion_table[size[-2:]] + size = size[:-2] + if percent: + factor *= float(percent.rstrip("%")) / 100.0 + return round(float(size) * factor) From 60f3ce05955823449fbaac193f5646fd32549ca3 Mon Sep 17 00:00:00 2001 From: Andre Sencioles Date: Sun, 10 Feb 2019 11:21:57 +1300 Subject: [PATCH 148/169] Add mininet appliance --- appliances/mininet.gns3a | 46 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 appliances/mininet.gns3a diff --git a/appliances/mininet.gns3a b/appliances/mininet.gns3a new file mode 100644 index 0000000..e4f096f --- /dev/null +++ b/appliances/mininet.gns3a @@ -0,0 +1,46 @@ +{ + "category": "guest", + "status": "stable", + "maintainer": "GNS3 Team", + "maintainer_email": "developers@gns3.net", + "description": "Mininet creates a realistic virtual network, running real kernel, switch and application code, on a single machine (VM, cloud or native), in seconds, with a single command.", + "product_name": "Mininet", + "registry_version": 5, + "product_url": "http://mininet.org/", + "documentation_url": "http://mininet.org/walkthrough/", + "first_port_name": "eth0", + "usage": "Username: mininet\nPassword: mininet", + "port_name_format": "eth{0}", + "vendor_name": "Mininet Team", + "qemu": { + "adapters": 1, + "adapter_type": "virtio-net-pci", + "arch": "x86_64", + "ram": 2048, + "console_type": "vnc", + "hda_disk_interface": "virtio", + "kvm": "allow" + }, + "availability": "free", + "vendor_url": "http://mininet.org/", + "name": "Mininet", + "images": [ + { + "filename": "mininet-vm-x86_64.vmdk", + "version": "2.2.2", + "md5sum": "a683441642300bdaf37b8e614de85342", + "filesize": 2047868928, + "download_url": "https://github.com/mininet/mininet/releases/", + "direct_download_url": "https://github.com/mininet/mininet/releases/download/2.2.2/mininet-2.2.2-170321-ubuntu-14.04.4-server-amd64.zip", + "compression": "zip" + } + ], + "versions": [ + { + "images": { + "hda_disk_image": "mininet-vm-x86_64.vmdk" + }, + "name": "2.2.2" + } + ] +} From 67f0229f389866799b0623174b8bcd0f3737db86 Mon Sep 17 00:00:00 2001 From: Jeremy Grossmann Date: Sun, 10 Feb 2019 09:18:35 +0800 Subject: [PATCH 149/169] Change to registry version 4 --- appliances/mininet.gns3a | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appliances/mininet.gns3a b/appliances/mininet.gns3a index e4f096f..80900c2 100644 --- a/appliances/mininet.gns3a +++ b/appliances/mininet.gns3a @@ -5,7 +5,7 @@ "maintainer_email": "developers@gns3.net", "description": "Mininet creates a realistic virtual network, running real kernel, switch and application code, on a single machine (VM, cloud or native), in seconds, with a single command.", "product_name": "Mininet", - "registry_version": 5, + "registry_version": 4, "product_url": "http://mininet.org/", "documentation_url": "http://mininet.org/walkthrough/", "first_port_name": "eth0", From 7d3dd5a0abd31ba8d66e6bc508353cdea4aa73bf Mon Sep 17 00:00:00 2001 From: josephillips85 Date: Sat, 16 Feb 2019 17:46:57 -0500 Subject: [PATCH 150/169] Working pfSense Appliance this template will allow to install pfSense on GNS3 --- appliances/pfsense.gns3a | 39 ++++++++++++++++++--------------------- 1 file changed, 18 insertions(+), 21 deletions(-) diff --git a/appliances/pfsense.gns3a b/appliances/pfsense.gns3a index 8b14db0..35c1cd8 100644 --- a/appliances/pfsense.gns3a +++ b/appliances/pfsense.gns3a @@ -6,47 +6,44 @@ "vendor_url": "https://www.pfsense.org", "documentation_url": "https://doc.pfsense.org/index.php/Main_Page", "product_name": "pfSense", - "registry_version": 3, + "registry_version": 4, "status": "stable", - "maintainer": "GNS3 Team", - "maintainer_email": "developers@gns3.net", + "maintainer": "Jose Phillips", + "maintainer_email": "jose@latinol.com", "port_name_format": "em{0}", "qemu": { "adapter_type": "e1000", "adapters": 6, "ram": 2048, "arch": "x86_64", - "console_type": "telnet", + "console_type": "vnc", "kvm": "allow", "process_priority": "normal" }, "images": [ { - "filename": "pfSense-CE-memstick-2.4.3-RELEASE-amd64.img", - "version": "2.4.3", - "md5sum": "b754d7e75dece5e756b6539c95714a74", - "filesize": 650392576, + "filename": "pfSense-CE-2.4.4-RELEASE-amd64.iso", + "version": "2.4.4", + "md5sum": "71386433238f96fc167d14cec9c708c6", + "filesize": 685557760, "download_url": "https://www.pfsense.org/download/mirror.php?section=downloads" }, { - "filename": "pfSense-CE-2.3.5-RELEASE-2g-amd64-nanobsd.img", - "version": "2.3.5", - "md5sum": "b6cb76adba3e1113892f84ea01894228", - "filesize": 1989969408, - "download_url": "https://www.pfsense.org/download/mirror.php?section=downloads" + "filename": "empty100G.qcow2", + "version": "1.0", + "md5sum": "1e6409a4523ada212dea2ebc50e50a65", + "filesize": 197120, + "download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/", + "direct_download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty100G.qcow2/download" } + ], "versions": [ { - "name": "2.4.3", + "name": "2.4.4", "images": { - "hda_disk_image": "pfSense-CE-memstick-2.4.3-RELEASE-amd64.img" - } - }, - { - "name": "2.3.5", - "images": { - "hda_disk_image": "pfSense-CE-2.3.5-RELEASE-2g-amd64-nanobsd.img" + "hda_disk_image": "empty100G.qcow2", + "cdrom_image": "pfSense-CE-2.4.4-RELEASE-amd64.iso" } } ] From 9b4e3b3ea4b4e37806c39da158458466c5c63f58 Mon Sep 17 00:00:00 2001 From: josephillips85 Date: Sat, 16 Feb 2019 17:53:28 -0500 Subject: [PATCH 151/169] Allow Install pfSense on GNS3 --- appliances/pfsense.gns3a | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appliances/pfsense.gns3a b/appliances/pfsense.gns3a index 35c1cd8..9b34960 100644 --- a/appliances/pfsense.gns3a +++ b/appliances/pfsense.gns3a @@ -6,7 +6,7 @@ "vendor_url": "https://www.pfsense.org", "documentation_url": "https://doc.pfsense.org/index.php/Main_Page", "product_name": "pfSense", - "registry_version": 4, + "registry_version": 3, "status": "stable", "maintainer": "Jose Phillips", "maintainer_email": "jose@latinol.com", From 4943820ceba866fde37bf32949fc8ed7e68f0446 Mon Sep 17 00:00:00 2001 From: josephillips85 Date: Sun, 17 Feb 2019 12:44:03 -0500 Subject: [PATCH 152/169] Fix support for pfSense. Add functionality to install pfSense and speedup to the install and boot replacing the ide emulator to virtio. This resolve GNS3/gns3-registry#394 --- appliances/pfsense.gns3a | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/appliances/pfsense.gns3a b/appliances/pfsense.gns3a index 9b34960..ae66160 100644 --- a/appliances/pfsense.gns3a +++ b/appliances/pfsense.gns3a @@ -2,7 +2,7 @@ "name": "pfSense", "category": "firewall", "description": "The pfSense project is a free network firewall distribution, based on the FreeBSD operating system with a custom kernel and including third party free software packages for additional functionality. pfSense software, with the help of the package system, is able to provide the same functionality or more of common commercial firewalls, without any of the artificial limitations. It has successfully replaced every big name commercial firewall you can imagine in numerous installations around the world, including Check Point, Cisco PIX, Cisco ASA, Juniper, Sonicwall, Netgear, Watchguard, Astaro, and more.", - "vendor_name": "Electric Sheep Fencing LLC", + "vendor_name": "Rubicon Communications, LLC (Netgate)", "vendor_url": "https://www.pfsense.org", "documentation_url": "https://doc.pfsense.org/index.php/Main_Page", "product_name": "pfSense", @@ -10,6 +10,7 @@ "status": "stable", "maintainer": "Jose Phillips", "maintainer_email": "jose@latinol.com", + "usage": "Credentials: admin / pfsense\nTo install pfSense use all the defaults settings.\n\nNote:The default LAN port is em1.", "port_name_format": "em{0}", "qemu": { "adapter_type": "e1000", @@ -17,6 +18,7 @@ "ram": 2048, "arch": "x86_64", "console_type": "vnc", + "hda_disk_interface": "virtio", "kvm": "allow", "process_priority": "normal" }, From b8225dd2c4640c09e575892fa76b9f077fc92503 Mon Sep 17 00:00:00 2001 From: Dmitry Figol Date: Wed, 20 Feb 2019 16:38:07 +0100 Subject: [PATCH 153/169] Add CSR1000v 16.10.1b --- appliances/cisco-csr1000v.gns3a | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/appliances/cisco-csr1000v.gns3a b/appliances/cisco-csr1000v.gns3a index 8ef6dac..2884904 100644 --- a/appliances/cisco-csr1000v.gns3a +++ b/appliances/cisco-csr1000v.gns3a @@ -22,6 +22,13 @@ "kvm": "require" }, "images": [ + { + "filename": "csr1000v-universalk9.16.10.01b-serial.qcow2", + "version": "16.10.1b", + "md5sum": "0d3d647f83631c7955ad7899e6cce293", + "filesize": 950468608, + "download_url": "https://software.cisco.com/download/home/284364978/type/282046477/release/Gibraltar-16.10.1b" + }, { "filename": "csr1000v-universalk9.16.09.01-serial.qcow2", "version": "16.9.1", @@ -108,6 +115,12 @@ } ], "versions": [ + { + "name": "16.10.1b", + "images": { + "hda_disk_image": "csr1000v-universalk9.16.10.01b-serial.qcow2" + } + }, { "name": "16.9.1", "images": { From 6264d52fcdeef6f580c8736c7c5fbf10dda4321b Mon Sep 17 00:00:00 2001 From: jkk88 Date: Mon, 4 Mar 2019 09:03:04 +0100 Subject: [PATCH 154/169] add release 18.06.2 --- appliances/openwrt.gns3a | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/appliances/openwrt.gns3a b/appliances/openwrt.gns3a index 2ff06fb..7361a9f 100644 --- a/appliances/openwrt.gns3a +++ b/appliances/openwrt.gns3a @@ -21,6 +21,15 @@ "kvm": "allow" }, "images": [ + { + "filename": "openwrt-18.06.2-x86-64-combined-ext4.img", + "version": "18.06.2", + "md5sum": "d112cd432bf51e2ddadbf9513f272fd9", + "filesize": 285736960, + "download_url": "https://downloads.openwrt.org/releases/18.06.2/targets/x86/64/", + "direct_download_url": "https://downloads.openwrt.org/releases/18.06.2/targets/x86/64/openwrt-18.06.2-x86-64-combined-ext4.img.gz", + "compression": "gzip" + }, { "filename": "openwrt-18.06.1-x86-64-combined-ext4.img", "version": "18.06.1", @@ -51,6 +60,12 @@ ], "versions": [ { + "name": "openwrt 18.06.2", + "images": { + "hda_disk_image": "openwrt-18.06.2-x86-64-combined-ext4.img" + } + }, + { "name": "openwrt 18.06.1", "images": { "hda_disk_image": "openwrt-18.06.1-x86-64-combined-ext4.img" From f74bc3041593bd7abbe54e577a4aa15cea4c48db Mon Sep 17 00:00:00 2001 From: "Stephen C. Moore" Date: Wed, 6 Mar 2019 09:34:14 -0600 Subject: [PATCH 155/169] New nsoxv versions Added 9.2.3, 9.2.2, 7.0.3.I7.6 --- appliances/cisco-nxosv9k.gns3a | 42 ++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/appliances/cisco-nxosv9k.gns3a b/appliances/cisco-nxosv9k.gns3a index e372db3..6c3650e 100644 --- a/appliances/cisco-nxosv9k.gns3a +++ b/appliances/cisco-nxosv9k.gns3a @@ -25,6 +25,20 @@ "kvm": "require" }, "images": [ + { + "filename": "nxosv-final.9.2.3.qcow2", + "version": "9.2.3", + "md5sum": "74bd9a5b4970e868685f753e48979194", + "filesize": 1357643776, + "download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.2%25283%2529" + }, + { + "filename": "nxosv-final.9.2.2.qcow2", + "version": "9.2.2", + "md5sum": "2119702c488552fc4d1b4210a04d4f64", + "filesize": 1344077824, + "download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.2%25281%2529" + }, { "filename": "nxosv-final.9.2.1.qcow2", "version": "9.2.1", @@ -32,6 +46,13 @@ "filesize": 1330315264, "download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.2%25281%2529" }, + { + "filename": "nxosv-final.7.0.3.I7.6.qcow2", + "version": "7.0.3.I7.6", + "md5sum": "a122ee954b4c11761abd99291b70544e", + "filesize": 1031995392, + "download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/7.0%25283%2529I7%25286%2529" + }, { "filename": "nxosv-final.7.0.3.I7.5.qcow2", "version": "7.0.3.I7.5", @@ -99,6 +120,20 @@ } ], "versions": [ + { + "name": "9.2.3", + "images": { + "bios_image": "OVMF-20160813.fd", + "hda_disk_image": "nxosv-final.9.2.3.qcow2" + } + }, + { + "name": "9.2.2", + "images": { + "bios_image": "OVMF-20160813.fd", + "hda_disk_image": "nxosv-final.9.2.2.qcow2" + } + }, { "name": "9.2.1", "images": { @@ -106,6 +141,13 @@ "hda_disk_image": "nxosv-final.9.2.1.qcow2" } }, + { + "name": "7.0.3.I7.6", + "images": { + "bios_image": "OVMF-20160813.fd", + "hda_disk_image": "nxosv-final.7.0.3.I7.6.qcow2" + } + }, { "name": "7.0.3.I7.5", "images": { From dabaa292efd29795491abef6c87c0cb0c75d3776 Mon Sep 17 00:00:00 2001 From: Jeremy Grossmann Date: Sun, 10 Mar 2019 18:12:09 +0700 Subject: [PATCH 156/169] Update symbol --- appliances/extreme-networks-voss.gns3a | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appliances/extreme-networks-voss.gns3a b/appliances/extreme-networks-voss.gns3a index ff15d60..077883b 100644 --- a/appliances/extreme-networks-voss.gns3a +++ b/appliances/extreme-networks-voss.gns3a @@ -11,7 +11,7 @@ "maintainer": "Extreme Networks", "maintainer_email": "voss@extremenetworks.com", "usage": "Boot up and login is rwa/rwa", - "symbol": "ethernet_switch.svg", + "symbol": ":/symbols/multilayer_switch.svg", "first_port_name": "Mgmt", "port_name_format": "1/{port1}", "qemu": From 162a719c2ed880ae6e01a2777cb87a49f2593c19 Mon Sep 17 00:00:00 2001 From: Jeremy Grossmann Date: Tue, 12 Mar 2019 15:19:09 +0700 Subject: [PATCH 157/169] Update README.rst --- docker/README.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/README.rst b/docker/README.rst index 42e8e6e..1a21270 100644 --- a/docker/README.rst +++ b/docker/README.rst @@ -1,7 +1,7 @@ Docker for GNS3 =============== -Container maintain by the GNS3 team. +Container maintained by the GNS3 team. -You can found the images on: +You can find the images on: https://hub.docker.com/ From e2d8c4c10a1c1b0d62bc21e4e1961acde630df1b Mon Sep 17 00:00:00 2001 From: grossmj Date: Tue, 12 Mar 2019 18:57:03 +0700 Subject: [PATCH 158/169] Fix Cisco c3745 appliance. --- appliances/cisco-3745.gns3a | 1 - 1 file changed, 1 deletion(-) diff --git a/appliances/cisco-3745.gns3a b/appliances/cisco-3745.gns3a index 99956a6..9a68349 100644 --- a/appliances/cisco-3745.gns3a +++ b/appliances/cisco-3745.gns3a @@ -11,7 +11,6 @@ "maintainer": "GNS3 Team", "maintainer_email": "developers@gns3.net", "dynamips": { - "chassis": "", "platform": "c3745", "ram": 256, "nvram": 256, From c1efa223cbb881deab3f8fa9084a1ae8f723318b Mon Sep 17 00:00:00 2001 From: Sander Steffann Date: Sat, 23 Mar 2019 23:09:48 +0100 Subject: [PATCH 159/169] Fix 3.6.2 checksum and add 3.7.3 --- appliances/cumulus-vx.gns3a | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/appliances/cumulus-vx.gns3a b/appliances/cumulus-vx.gns3a index f8df14c..cc085d7 100644 --- a/appliances/cumulus-vx.gns3a +++ b/appliances/cumulus-vx.gns3a @@ -23,6 +23,14 @@ "kvm": "require" }, "images": [ + { + "filename": "cumulus-linux-3.7.3-vx-amd64-qemu.qcow2", + "version": "3.7.3", + "md5sum": "e6f438cd44ede841ff290c85dedd127e", + "filesize": 1514340352, + "download_url": "https://cumulusnetworks.com/cumulus-vx/download/", + "direct_download_url": "http://cumulusfiles.s3.amazonaws.com/CumulusLinux-3.7.3/cumulus-linux-3.7.3-vx-amd64-qemu.qcow2" + }, { "filename": "cumulus-linux-3.7.2-vx-amd64-qemu.qcow2", "version": "3.7.2", @@ -42,8 +50,8 @@ { "filename": "cumulus-linux-3.6.2-vx-amd64.qcow2", "version": "3.6.2", - "md5sum": "02b0621d68fb2e709b4bcc48748c7b6f", - "filesize": 1150746624, + "md5sum": "fda2cfc556de7b12daf45369bd60d33b", + "filesize": 1157169152, "download_url": "https://cumulusnetworks.com/cumulus-vx/download/", "direct_download_url": "https://s3.amazonaws.com/cumulusfiles/CumulusLinux-3.6.2/cumulus-linux-3.6.2-vx-amd64.qcow2" }, @@ -189,6 +197,12 @@ } ], "versions": [ + { + "name": "3.7.3", + "images": { + "hda_disk_image": "cumulus-linux-3.7.3-vx-amd64-qemu.qcow2" + } + }, { "name": "3.7.2", "images": { From f3294443911fa8a2fc398f4414903ef39565e6b6 Mon Sep 17 00:00:00 2001 From: jkk88 Date: Thu, 28 Mar 2019 07:52:31 +0100 Subject: [PATCH 160/169] increase RAM to 128 MB Sometimes 64 MB throws error about not sufficient memory --- appliances/openwrt.gns3a | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appliances/openwrt.gns3a b/appliances/openwrt.gns3a index 7361a9f..84a1bdb 100644 --- a/appliances/openwrt.gns3a +++ b/appliances/openwrt.gns3a @@ -15,7 +15,7 @@ "qemu": { "adapter_type": "virtio-net-pci", "adapters": 4, - "ram": 64, + "ram": 128, "arch": "x86_64", "console_type": "telnet", "kvm": "allow" From 9965130e96d9abdcfde5af2ff8e33879b6a70d87 Mon Sep 17 00:00:00 2001 From: Sander Steffann Date: Fri, 29 Mar 2019 00:12:50 +0100 Subject: [PATCH 161/169] Update windows.gns3a Sync size and md5 of MSEdge-Win10-VMware-disk1.vmdk with recent download --- appliances/windows.gns3a | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/appliances/windows.gns3a b/appliances/windows.gns3a index ac84dee..0517f9c 100644 --- a/appliances/windows.gns3a +++ b/appliances/windows.gns3a @@ -27,10 +27,10 @@ }, "images": [ { - "filename": "MSEdge-Win10-VMWare-disk1.vmdk", + "filename": "MSEdge-Win10-VMware-disk1.vmdk", "version": "10 w/ Edge", - "md5sum": "fef74c69e1949480d4e2095324a169af", - "filesize": 5636608512, + "md5sum": "670f3c2b03a5629dc85d0d1c261e5929", + "filesize": 7293386240, "download_url": "https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/" }, { From af6784a4ff4eed2a0f924147a15796ae6f066c68 Mon Sep 17 00:00:00 2001 From: Sander Steffann Date: Fri, 29 Mar 2019 00:34:36 +0100 Subject: [PATCH 162/169] Update windows.gns3a Fix filename --- appliances/windows.gns3a | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appliances/windows.gns3a b/appliances/windows.gns3a index 0517f9c..d8c0dc8 100644 --- a/appliances/windows.gns3a +++ b/appliances/windows.gns3a @@ -80,7 +80,7 @@ { "name": "10 w/ Edge", "images": { - "hda_disk_image": "MSEdge-Win10-VMWare-disk1.vmdk" + "hda_disk_image": "MSEdge-Win10-VMware-disk1.vmdk" } }, { From 49a01cf53263f0fdea29421b08cc48370fcb8287 Mon Sep 17 00:00:00 2001 From: stewilliams-extr Date: Thu, 11 Apr 2019 11:18:57 -0400 Subject: [PATCH 163/169] Update exos.gns3a Updating the file to match the one provided by Extreme Networks. --- appliances/exos.gns3a | 208 ++++++++++++++++-------------------------- 1 file changed, 79 insertions(+), 129 deletions(-) diff --git a/appliances/exos.gns3a b/appliances/exos.gns3a index 5aff76b..33b9594 100644 --- a/appliances/exos.gns3a +++ b/appliances/exos.gns3a @@ -1,189 +1,139 @@ { - "name": "EXOS", + "name": "EXOS VM", "category": "multilayer_switch", - "description": "ExtremeXOS was designed from the ground up to meet the needs of large cloud and private data centers, service providers, intelligent, converged enterprise edge networks, and everything in between. It provides the high performance and rich features required by these diverse environments.", + "description": "The ExtremeXOS VM is created and maintained by Extreme Networks for users to emulate a network using EXOS switches.", "vendor_name": "Extreme Networks", - "vendor_url": "http://www.extremenetworks.com/", - "documentation_url": "http://www.extremenetworks.com/support/documentation", - "product_name": "EXOS", - "product_url": "http://www.extremenetworks.com/product/extremexos-network-operating-system", + "vendor_url": "https://www.extremenetworks.com", + "documentation_url": "https://www.extremenetworks.com/support/documentation", + "product_name": "EXOS VM", "registry_version": 3, "status": "stable", - "maintainer": "GNS3 Team", - "maintainer_email": "developers@gns3.net", - "usage": "You can change the console to telnet after install. Default user: admin (no password set)", - "first_port_name": "Management", + "maintainer": "Extreme Networks", + "maintainer_email": "GitHubscripting@extremenetworks.com", + "usage": "Boot up and login is admin with no password.", + "symbol": "ethernet_switch.svg", + "first_port_name": "Mgmt", "port_name_format": "Port{port1}", "qemu": { "adapter_type": "rtl8139", "adapters": 13, - "ram": 256, + "ram": 512, "hda_disk_interface": "ide", "arch": "x86_64", "console_type": "telnet", - "boot_priority": "cd", - "kvm": "require", - "options": "-smp 2 -cpu core2duo" + "boot_priority": "dc", + "kvm": "allow", + "options": "-cpu core2duo" }, + "images": [ - { - "filename": "exosvm-22.6.1.4.iso", + + { + "filename": "EXOS-VM_v30.1.1.4.qcow2", + "version": "30.1.1.4", + "md5sum": "92d3f9b13d750f7bfa804823fa545772", + "filesize": 383385600, + "direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_EXOS/EXOS-VM_v30.1.1.4.qcow2" + }, + { + "filename": "EXOS-VM_v22.6.1.4.qcow2", "version": "22.6.1.4", - "md5sum": "66146aba82575b3879431143b6dc8a35", - "filesize": 53706752, - "download_url": "https://github.com/extremenetworks/Virtual_EXOS", - "direct_download_url": "https://github.com/extremenetworks/Virtual_EXOS/raw/master/vm-22.6.1.4.iso" + "md5sum": "82b31b11b26143a82c8259a4825696fc", + "filesize": 180355072, + "direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_EXOS/EXOS-VM_v22.6.1.4.qcow2" }, - { - "filename": "exosvm-22.5.1.7.iso", + { + "filename": "EXOS-VM_v22.5.1.7.qcow2", "version": "22.5.1.7", - "md5sum": "132ac87de368ab55d1f496f292338cd4", - "filesize": 51779584, - "download_url": "https://github.com/extremenetworks/Virtual_EXOS", - "direct_download_url": "https://github.com/extremenetworks/Virtual_EXOS/raw/master/vm-22.5.1.7.iso" + "md5sum": "d2e8ae6783b6ed777ad5cd8cafd83c86", + "filesize": 180289536, + "direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_EXOS/EXOS-VM_v22.5.1.7.qcow2" }, { - "filename": "exosvm-22.4.1.4.iso", + "filename": "EXOS-VM_v22.4.1.4-disk1.qcow2", "version": "22.4.1.4", - "md5sum": "2134a511084519a5f8ad00a6f7cd71a9", - "filesize": 49993728, - "download_url": "https://github.com/extremenetworks/Virtual_EXOS", - "direct_download_url": "https://github.com/extremenetworks/Virtual_EXOS/raw/master/vm-22.4.1.4.iso" + "md5sum": "5f1ee41912d74d423ce8ae57ea413602", + "filesize": 229638144, + "direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_EXOS/EXOS-VM_v22.4.1.4-disk1.qcow2" }, { - "filename": "exosvm-22.2.1.5.iso", + "filename": "EXOS-VM_v22.3.1.4patch1-4-disk1.qcow2", + "version": "22.3.1.4", + "md5sum": "a4585b6e987ff730f5c044af339fe090", + "filesize": 218431488, + "direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_EXOS/EXOS-VM_v22.3.1.4patch1-4-disk1.qcow2" + }, + { + "filename": "EXOS-VM_v22.2.1.5-disk1.qcow2", "version": "22.2.1.5", - "md5sum": "bf51fd5b3c5e9dab10a616055265bcf2", - "filesize": 44578816, - "download_url": "https://github.com/extremenetworks/Virtual_EXOS", - "direct_download_url": "https://github.com/extremenetworks/Virtual_EXOS/raw/master/vm-22.2.1.5.iso" + "md5sum": "e3cfe92077addda6ad34185288c90acf", + "filesize": 179568640, + "direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_EXOS/EXOS-VM_v22.2.1.5-disk1.qcow2" }, { - "filename": "exosvm-22.1.1.5.iso", + "filename": "EXOS-VM_v22.1.1.5-disk1.qcow2", "version": "22.1.1.5", - "md5sum": "df3897ca2d7c7053582587ed120114fa", - "filesize": 44220416, - "download_url": "https://github.com/extremenetworks/Virtual_EXOS", - "direct_download_url": "https://github.com/extremenetworks/Virtual_EXOS/raw/master/vm-22.1.1.5.iso" + "md5sum": "77683060e75d81b776761f6829b15e9b", + "filesize": 179437568, + "direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_EXOS/EXOS-VM_v22.1.1.5-disk1.qcow2" }, - { - "filename": "exosvm-21.1.2.14.iso", - "version": "21.1.2.14", - "md5sum": "de0752d56e41d92027ce1fccd604b14b", - "filesize": 41101312, - "download_url": "https://github.com/extremenetworks/Virtual_EXOS", - "direct_download_url": "https://github.com/extremenetworks/Virtual_EXOS/blob/master/vm-21.1.2.14.iso?raw=true" - }, - { - "filename": "exosvm-21.1.1.4.iso", + { + "filename": "EXOS-VM_v21.1.1.4-disk1.qcow2", "version": "21.1.1.4", - "md5sum": "4d5db0e01a39b08775ed6a3e2c8bf663", - "filesize": 41046016, - "download_url": "https://github.com/extremenetworks/Virtual_EXOS", - "direct_download_url": "https://github.com/extremenetworks/Virtual_EXOS/blob/master/vm-21.1.1.4.iso?raw=true" - }, - { - "filename": "exospc-16.2.1.6.iso", - "version": "16.2.1.6", - "md5sum": "b4be339afb02c03dcb4349630c1adb4f", - "filesize": 36306944, - "download_url": "https://github.com/extremenetworks/Virtual_EXOS", - "direct_download_url": "https://github.com/extremenetworks/Virtual_EXOS/blob/master/exospc-16.2.1.6.iso?raw=true" - }, - { - "filename": "exospc-16.1.3.6.iso", - "version": "16.1.3.6", - "md5sum": "4c17b2bf2a4909527f6c866a68ba406e", - "filesize": 35758080, - "download_url": "https://github.com/extremenetworks/Virtual_EXOS", - "direct_download_url": "https://github.com/extremenetworks/Virtual_EXOS/blob/master/exospc-16.1.3.6.iso?raw=true" - }, - { - "filename": "exospc-16.1.2.14.iso", - "version": "16.1.2.14", - "md5sum": "140cdc11f426156ffcbde150b2f46768", - "filesize": 35743744, - "download_url": "https://github.com/extremenetworks/Virtual_EXOS", - "direct_download_url": "https://github.com/extremenetworks/Virtual_EXOS/blob/master/exospc-16.1.2.14.iso?raw=true" - }, - { - "filename": "empty8G.qcow2", - "version": "1.0", - "md5sum": "f1d2c25b6990f99bd05b433ab603bdb4", - "filesize": 197120, - "download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/", - "direct_download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty8G.qcow2/download" + "md5sum": "654606809b6fd3bca400377483eb4a79", + "filesize": 117560832, + "direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_EXOS/EXOS-VM_v21.1.1.4-disk1.qcow2" } + ], + "versions": [ { - "name": "22.6.1.4", + "name": "30.1.1.4", "images": { - "hda_disk_image": "empty8G.qcow2", - "cdrom_image": "exosvm-22.6.1.4.iso" + "hda_disk_image": "EXOS-VM_v30.1.1.4.qcow2" } }, - { + { + "name": "22.6.1.4", + "images": { + "hda_disk_image": "EXOS-VM_v22.6.1.4.qcow2" + } + }, + { "name": "22.5.1.7", "images": { - "hda_disk_image": "empty8G.qcow2", - "cdrom_image": "exosvm-22.5.1.7.iso" + "hda_disk_image": "EXOS-VM_v22.5.1.7.qcow2" } }, { "name": "22.4.1.4", "images": { - "hda_disk_image": "empty8G.qcow2", - "cdrom_image": "exosvm-22.4.1.4.iso" + "hda_disk_image": "EXOS-VM_v22.4.1.4-disk1.qcow2" + } + }, + { + "name": "22.3.1.4", + "images": { + "hda_disk_image": "EXOS-VM_v22.3.1.4patch1-4-disk1.qcow2" } }, { "name": "22.2.1.5", "images": { - "hda_disk_image": "empty8G.qcow2", - "cdrom_image": "exosvm-22.2.1.5.iso" + "hda_disk_image": "EXOS-VM_v22.2.1.5-disk1.qcow2" } }, { "name": "22.1.1.5", "images": { - "hda_disk_image": "empty8G.qcow2", - "cdrom_image": "exosvm-22.1.1.5.iso" - } - }, - { - "name": "21.1.2.14", - "images": { - "hda_disk_image": "empty8G.qcow2", - "cdrom_image": "exosvm-21.1.2.14.iso" + "hda_disk_image": "EXOS-VM_v22.1.1.5-disk1.qcow2" } }, { "name": "21.1.1.4", "images": { - "hda_disk_image": "empty8G.qcow2", - "cdrom_image": "exosvm-21.1.1.4.iso" - } - }, - { - "name": "16.2.1.6", - "images": { - "hda_disk_image": "empty8G.qcow2", - "cdrom_image": "exospc-16.2.1.6.iso" - } - }, - { - "name": "16.1.3.6", - "images": { - "hda_disk_image": "empty8G.qcow2", - "cdrom_image": "exospc-16.1.3.6.iso" - } - }, - { - "name": "16.1.2.14", - "images": { - "hda_disk_image": "empty8G.qcow2", - "cdrom_image": "exospc-16.1.2.14.iso" + "hda_disk_image": "EXOS-VM_v21.1.1.4-disk1.qcow2" } } ] From 99f13f7151938ba06eb7c2dd85d9c1a19340147d Mon Sep 17 00:00:00 2001 From: adosztal Date: Sun, 14 Apr 2019 18:56:49 +0200 Subject: [PATCH 164/169] New release --- appliances/arista-veos.gns3a | 122 ++++++++++++++++++++++--------- appliances/asterisk.gns3a | 19 ++++- appliances/bsdrp.gns3a | 15 ++++ appliances/cisco-dcnm.gns3a | 16 +++- appliances/freenas.gns3a | 16 ++++ appliances/ipfire.gns3a | 15 ++++ appliances/kali-linux.gns3a | 14 ++++ appliances/kerio-control.gns3a | 14 ++++ appliances/mikrotik-chr.gns3a | 15 ++++ appliances/packetfence-zen.gns3a | 15 ++++ 10 files changed, 223 insertions(+), 38 deletions(-) diff --git a/appliances/arista-veos.gns3a b/appliances/arista-veos.gns3a index ad0a569..57685e1 100644 --- a/appliances/arista-veos.gns3a +++ b/appliances/arista-veos.gns3a @@ -21,7 +21,6 @@ "ram": 2048, "arch": "x86_64", "console_type": "telnet", - "boot_priority": "d", "kvm": "require" }, "images": [ @@ -33,10 +32,10 @@ "download_url": "https://www.arista.com/en/support/software-download" }, { - "filename": "vEOS-lab-4.20.11M.vmdk", - "version": "4.20.11M", - "md5sum": "19e482a193f237c157ce35c389ca9417", - "filesize": 658178048, + "filename": "vEOS-lab-4.20.10M-combined.vmdk", + "version": "4.20.10M-combined", + "md5sum": "d1f2d650f93dbf24e04fdd2c9d62bd62", + "filesize": 334626816, "download_url": "https://www.arista.com/en/support/software-download" }, { @@ -46,6 +45,34 @@ "filesize": 662044672, "download_url": "https://www.arista.com/en/support/software-download" }, + { + "filename": "vEOS-lab-4.19.10M-combined.vmdk", + "version": "4.19.10M-combined", + "md5sum": "103daa45c33be4584cbe6adc60de46a3", + "filesize": 324141056, + "download_url": "https://www.arista.com/en/support/software-download" + }, + { + "filename": "vEOS-lab-4.19.10M.vmdk", + "version": "4.19.10M", + "md5sum": "665ed14389411ae5f16ba0a2ff84240a", + "filesize": 637337600, + "download_url": "https://www.arista.com/en/support/software-download" + }, + { + "filename": "vEOS-lab-4.18.10M-combined.vmdk", + "version": "4.18.10M-combined", + "md5sum": "e33e0ef5b8cecc84c5bb57569b36b9c6", + "filesize": 317652992, + "download_url": "https://www.arista.com/en/support/software-download" + }, + { + "filename": "vEOS-lab-4.18.10M.vmdk", + "version": "4.18.10M", + "md5sum": "1d87e9ace37fe3706dbf3e49c8d4d231", + "filesize": 624427008, + "download_url": "https://www.arista.com/en/support/software-download" + }, { "filename": "vEOS-lab-4.18.5M.vmdk", "version": "4.18.5M", @@ -133,101 +160,126 @@ ], "versions": [ { - "name": "4.21.1.1F", + "name": "4.21.1F", "images": { - "cdrom_image": "Aboot-veos-serial-8.0.0.iso", - "hda_disk_image": "vEOS-lab-4.21.1.1F.vmdk" + "hda_disk_image": "Aboot-veos-serial-8.0.0.iso", + "hdb_disk_image": "vEOS-lab-4.21.1.1F.vmdk" } }, { - "name": "4.20.11M", + "name": "4.20.10M-combined", "images": { - "cdrom_image": "Aboot-veos-serial-8.0.0.iso", - "hda_disk_image": "vEOS-lab-4.20.11M.vmdk" + "hda_disk_image": "vEOS-lab-4.20.10M-combined.vmdk" } }, { "name": "4.20.1F", "images": { - "cdrom_image": "Aboot-veos-serial-8.0.0.iso", - "hda_disk_image": "vEOS-lab-4.20.1F.vmdk" + "hda_disk_image": "Aboot-veos-serial-8.0.0.iso", + "hdb_disk_image": "vEOS-lab-4.20.1F.vmdk" + } + }, + { + "name": "4.19.10M-combined", + "images": { + "hda_disk_image": "vEOS-lab-4.19.10M-combined.vmdk" + } + }, + { + "name": "4.19.10M", + "images": { + "hda_disk_image": "Aboot-veos-serial-8.0.0.iso", + "hdb_disk_image": "vEOS-lab-4.19.10M.vmdk" + } + }, + { + "name": "4.18.10M-combined", + "images": { + "hda_disk_image": "vEOS-lab-4.18.10M-combined.vmdk" + } + }, + { + "name": "4.18.10M", + "images": { + "hda_disk_image": "Aboot-veos-serial-8.0.0.iso", + "hdb_disk_image": "vEOS-lab-4.18.10M.vmdk" } }, { "name": "4.18.5M", "images": { - "cdrom_image": "Aboot-veos-serial-8.0.0.iso", - "hda_disk_image": "vEOS-lab-4.18.5M.vmdk" + "hda_disk_image": "Aboot-veos-serial-8.0.0.iso", + "hdb_disk_image": "vEOS-lab-4.18.5M.vmdk" } }, { "name": "4.18.1F", "images": { - "cdrom_image": "Aboot-veos-serial-8.0.0.iso", - "hda_disk_image": "vEOS-lab-4.18.1F.vmdk" + "hda_disk_image": "Aboot-veos-serial-8.0.0.iso", + "hdb_disk_image": "vEOS-lab-4.18.1F.vmdk" } }, { "name": "4.17.8M", "images": { - "cdrom_image": "Aboot-veos-serial-8.0.0.iso", - "hda_disk_image": "vEOS-lab-4.17.8M.vmdk" + "hda_disk_image": "Aboot-veos-serial-8.0.0.iso", + "hdb_disk_image": "vEOS-lab-4.17.8M.vmdk" } }, { "name": "4.17.2F", "images": { - "cdrom_image": "Aboot-veos-serial-8.0.0.iso", - "hda_disk_image": "vEOS-lab-4.17.2F.vmdk" + "hda_disk_image": "Aboot-veos-serial-8.0.0.iso", + "hdb_disk_image": "vEOS-lab-4.17.2F.vmdk" } }, { "name": "4.16.13M", "images": { - "cdrom_image": "Aboot-veos-serial-8.0.0.iso", - "hda_disk_image": "vEOS-lab-4.16.13M.vmdk" + "hda_disk_image": "Aboot-veos-serial-8.0.0.iso", + "hdb_disk_image": "vEOS-lab-4.16.13M.vmdk" } }, { "name": "4.16.6M", "images": { - "cdrom_image": "Aboot-veos-serial-8.0.0.iso", - "hda_disk_image": "vEOS-lab-4.16.6M.vmdk" + "hda_disk_image": "Aboot-veos-serial-8.0.0.iso", + "hdb_disk_image": "vEOS-lab-4.16.6M.vmdk" } }, { "name": "4.15.10M", "images": { - "cdrom_image": "Aboot-veos-serial-8.0.0.iso", - "hda_disk_image": "vEOS-lab-4.15.10M.vmdk" + "hda_disk_image": "Aboot-veos-serial-8.0.0.iso", + "hdb_disk_image": "vEOS-lab-4.15.10M.vmdk" } }, { "name": "4.15.5M", "images": { - "cdrom_image": "Aboot-veos-serial-8.0.0.iso", - "hda_disk_image": "vEOS-lab-4.15.5M.vmdk" + "hda_disk_image": "Aboot-veos-serial-8.0.0.iso", + "hdb_disk_image": "vEOS-lab-4.15.5M.vmdk" } }, { "name": "4.14.14M", "images": { - "cdrom_image": "Aboot-veos-serial-8.0.0.iso", - "hda_disk_image": "vEOS-lab-4.14.14M.vmdk" + "hda_disk_image": "Aboot-veos-serial-8.0.0.iso", + "hdb_disk_image": "vEOS-lab-4.14.14M.vmdk" } }, { "name": "4.13.16M", "images": { - "cdrom_image": "Aboot-veos-serial-8.0.0.iso", - "hda_disk_image": "vEOS-lab-4.13.16M.vmdk" + "hda_disk_image": "Aboot-veos-serial-8.0.0.iso", + "hdb_disk_image": "vEOS-lab-4.13.16M.vmdk" } }, { "name": "4.13.8M", "images": { - "cdrom_image": "Aboot-veos-serial-8.0.0.iso", - "hda_disk_image": "vEOS-lab-4.13.8M.vmdk" + "hda_disk_image": "Aboot-veos-serial-8.0.0.iso", + "hdb_disk_image": "vEOS-lab-4.13.8M.vmdk" } } ] diff --git a/appliances/asterisk.gns3a b/appliances/asterisk.gns3a index 4f6d0c9..272f302 100644 --- a/appliances/asterisk.gns3a +++ b/appliances/asterisk.gns3a @@ -1,11 +1,11 @@ { - "name": "AsteriskNOW", + "name": "AsteriskNOW / FreePBX", "category": "guest", "description": "AsteriskNOW makes it easy to create custom telephony solutions by automatically installing the 'plumbing'. It's a complete Linux distribution with Asterisk, the DAHDI driver framework, and, the FreePBX administrative GUI. Much of the complexity of Asterisk and Linux is handled by the installer, the yum package management utility and the administrative GUI. With AsteriskNOW, application developers and integrators can concentrate on building solutions, not maintaining the plumbing.", "vendor_name": "Digium", "vendor_url": "http://www.asterisk.org/", "documentation_url": "https://wiki.asterisk.org/wiki/display/AST/Installing+AsteriskNOW", - "product_name": "AsteriskNOW", + "product_name": "AsteriskNOW / FreePBX", "product_url": "http://www.asterisk.org/downloads/asterisknow", "registry_version": 3, "status": "stable", @@ -24,6 +24,14 @@ "kvm": "allow" }, "images": [ + { + "filename": "SNG7-FPBX-64bit-1805-2.iso", + "version": "14", + "md5sum": "64f0c38c17ce680f7106f94183bc5745", + "filesize": 1755316224, + "download_url": "https://www.freepbx.org/downloads/", + "direct_download_url": "https://downloads.freepbxdistro.org/ISO/SNG7-FPBX-64bit-1805-2.iso" + }, { "filename": "AsteriskNow-1013-current-64.iso", "version": "10.13", @@ -58,6 +66,13 @@ } ], "versions": [ + { + "name": "14", + "images": { + "hda_disk_image": "empty30G.qcow2", + "cdrom_image": "SNG7-FPBX-64bit-1805-2.iso" + } + }, { "name": "10.13", "images": { diff --git a/appliances/bsdrp.gns3a b/appliances/bsdrp.gns3a index e0d0808..ac10072 100644 --- a/appliances/bsdrp.gns3a +++ b/appliances/bsdrp.gns3a @@ -19,6 +19,15 @@ "kvm": "allow" }, "images": [ + { + "filename": "BSDRP-1.92-full-amd64-serial.img", + "version": "1.92", + "md5sum": "1a123f3ba7ce73aa5823a65a7c571be1", + "filesize": 1000000000, + "download_url": "https://bsdrp.net/downloads", + "direct_download_url": "https://sourceforge.net/projects/bsdrp/files/BSD_Router_Project/1.92/amd64/BSDRP-1.92-full-amd64-serial.img.xz/download", + "compression": "xz" + }, { "filename": "BSDRP-1.91-full-amd64-serial.img", "version": "1.91", @@ -57,6 +66,12 @@ } ], "versions": [ + { + "name": "1.92", + "images": { + "hda_disk_image": "BSDRP-1.92-full-amd64-serial.img" + } + }, { "name": "1.91", "images": { diff --git a/appliances/cisco-dcnm.gns3a b/appliances/cisco-dcnm.gns3a index ff82824..7d6484d 100644 --- a/appliances/cisco-dcnm.gns3a +++ b/appliances/cisco-dcnm.gns3a @@ -25,12 +25,19 @@ "options": "-smp 2" }, "images": [ + { + "filename": "dcnm-va.11.1.1.iso", + "version": "11.1.1", + "md5sum": "43af970d046d1430d3ec7950dbe4a20a", + "filesize": 4432132096, + "download_url": "https://software.cisco.com/download/home/281722751/type/282088134/release/11.1%25281%2529" + }, { "filename": "dcnm-va.10.1.1.iso", "version": "10.1.1", "md5sum": "4eca14506decaf166251c64e67adb110", "filesize": 2927532032, - "download_url": "https://software.cisco.com/download/release.html?mdfid=281722751&softwareid=282088134&release=10.1(1)&relind=AVAILABLE&rellifecycle=&reltype=latest" + "download_url": "https://software.cisco.com/download/home/281722751/type/282088134/release/10.1%25281%2529" }, { "filename": "empty100G.qcow2", @@ -42,6 +49,13 @@ } ], "versions": [ + { + "name": "11.1.1", + "images": { + "hda_disk_image": "empty100G.qcow2", + "cdrom_image": "dcnm-va.11.1.1.iso" + } + }, { "name": "10.1.1", "images": { diff --git a/appliances/freenas.gns3a b/appliances/freenas.gns3a index 227b133..114f331 100644 --- a/appliances/freenas.gns3a +++ b/appliances/freenas.gns3a @@ -24,6 +24,14 @@ "kvm": "require" }, "images": [ + { + "filename": "FreeNAS-11.2-U3.iso", + "version": "11.2 U3", + "md5sum": "59ee32e2598a792eec0355b40a511251", + "filesize": 600387584, + "download_url": "http://www.freenas.org/download/", + "direct_download_url": "https://download.freenas.org/11.2/STABLE/U3/x64/FreeNAS-11.2-U3.iso" + }, { "filename": "FreeNAS-11.2-RELEASE.iso", "version": "11.2", @@ -90,6 +98,14 @@ } ], "versions": [ + { + "name": "11.2 U3", + "images": { + "hda_disk_image": "empty30G.qcow2", + "hdb_disk_image": "empty30G.qcow2", + "cdrom_image": "FreeNAS-11.2-U3.iso" + } + }, { "name": "11.2", "images": { diff --git a/appliances/ipfire.gns3a b/appliances/ipfire.gns3a index cac7f9c..bfc0850 100644 --- a/appliances/ipfire.gns3a +++ b/appliances/ipfire.gns3a @@ -24,6 +24,15 @@ "kvm": "allow" }, "images": [ + { + "filename": "ipfire-2.21.2gb-ext4.x86_64-full-core129.img", + "version": "2.21.129", + "md5sum": "84801c588174763c585967a2851a7769", + "filesize": 1541160960, + "download_url": "http://www.ipfire.org/download", + "direct_download_url": "https://downloads.ipfire.org/releases/ipfire-2.x/2.21-core129/ipfire-2.21.2gb-ext4.x86_64-full-core129.img.xz", + "compression": "xz" + }, { "filename": "ipfire-2.21.2gb-ext4.x86_64-full-core124.img", "version": "2.21.124", @@ -89,6 +98,12 @@ } ], "versions": [ + { + "name": "2.21.129", + "images": { + "hda_disk_image": "ipfire-2.21.2gb-ext4.x86_64-full-core129.img" + } + }, { "name": "2.21.124", "images": { diff --git a/appliances/kali-linux.gns3a b/appliances/kali-linux.gns3a index 0261636..65e5e9e 100644 --- a/appliances/kali-linux.gns3a +++ b/appliances/kali-linux.gns3a @@ -20,6 +20,14 @@ "kvm": "require" }, "images": [ + { + "filename": "kali-linux-2019.1a-amd64.iso", + "version": "2019.1a", + "md5sum": "58c6111ed0be1919ea87267e7e65ab0f", + "filesize": 3483873280, + "download_url": "https://www.kali.org/downloads/", + "direct_download_url": "http://cdimage.kali.org/kali-2019.1a/kali-linux-2019.1a-amd64.iso" + }, { "filename": "kali-linux-2018.4-amd64.iso", "version": "2018.4", @@ -94,6 +102,12 @@ } ], "versions": [ + { + "name": "2019.1a", + "images": { + "cdrom_image": "kali-linux-2019.1a-amd64.iso" + } + }, { "name": "2018.4", "images": { diff --git a/appliances/kerio-control.gns3a b/appliances/kerio-control.gns3a index bafcf68..1b2904e 100644 --- a/appliances/kerio-control.gns3a +++ b/appliances/kerio-control.gns3a @@ -23,6 +23,14 @@ "kvm": "require" }, "images": [ + { + "filename": "kerio-control-appliance-9.3.0-3273-vmware-disk1.vmdk", + "version": "9.3.0", + "md5sum": "6e6faf64b4ffce8b5639cdfce11ba31e", + "filesize": 192825856, + "download_url": "http://www.kerio.com/support/kerio-control", + "direct_download_url": "http://cdn.kerio.com/dwn/control/control-9.3.0-3273/kerio-control-appliance-9.3.0-3273-vmware-disk1.vmdk" + }, { "filename": "kerio-control-appliance-9.2.7-2921-vmware-disk1.vmdk", "version": "9.2.7", @@ -79,6 +87,12 @@ "direct_download_url": "http://cdn.kerio.com/dwn/control/control-9.1.4-1535/kerio-control-appliance-9.1.4-1535-vmware.vmdk" } ], "versions": [ + { + "name": "9.3.0", + "images": { + "hda_disk_image": "kerio-control-appliance-9.3.0-3273-vmware-disk1.vmdk" + } + }, { "name": "9.2.7", "images": { diff --git a/appliances/mikrotik-chr.gns3a b/appliances/mikrotik-chr.gns3a index 5ab6ded..ac0a42b 100644 --- a/appliances/mikrotik-chr.gns3a +++ b/appliances/mikrotik-chr.gns3a @@ -26,6 +26,15 @@ "options": "-nographic" }, "images": [ + { + "filename": "chr-6.44.2.img", + "version": "6.44.2", + "md5sum": "f1ddaa47829e12c1f9f023d8c06b88cc", + "filesize": 67108864, + "download_url": "http://www.mikrotik.com/download", + "direct_download_url": "https://download.mikrotik.com/routeros/6.44.2/chr-6.44.2.img.zip", + "compression": "zip" + }, { "filename": "chr-6.43.8.img", "version": "6.43.8", @@ -280,6 +289,12 @@ } ], "versions": [ + { + "name": "6.44.2", + "images": { + "hda_disk_image": "chr-6.44.2.img" + } + }, { "name": "6.43.8", "images": { diff --git a/appliances/packetfence-zen.gns3a b/appliances/packetfence-zen.gns3a index 1b432f5..90e34d1 100644 --- a/appliances/packetfence-zen.gns3a +++ b/appliances/packetfence-zen.gns3a @@ -22,6 +22,15 @@ "kvm": "require" }, "images": [ + { + "filename": "PacketFenceZEN_USB-8.3.0.img", + "version": "8.3.0", + "md5sum": "b9de52dc2513220ad42d350486da4884", + "filesize": 3221225472, + "download_url": "https://packetfence.org/download.html#/zen", + "direct_download_url": "https://sourceforge.net/projects/packetfence/files/PacketFence%20ZEN/8.3.0/PacketFenceZEN_USB-8.3.0.tar.bz2/download", + "compression": "bzip2" + }, { "filename": "PacketFenceZEN_USB-8.1.0.img", "version": "8.1.0", @@ -114,6 +123,12 @@ } ], "versions": [ + { + "name": "8.3.0", + "images": { + "hda_disk_image": "PacketFenceZEN_USB-8.3.0.img" + } + }, { "name": "8.1.0", "images": { From 95cc2b69d235495f27746f94df721c8e7039f4f0 Mon Sep 17 00:00:00 2001 From: adosztal Date: Tue, 16 Apr 2019 18:25:00 +0200 Subject: [PATCH 165/169] New release --- appliances/fortiadc.gns3a | 14 ++++++++++ appliances/fortianalyzer.gns3a | 14 ++++++++++ appliances/fortiauthenticator.gns3a | 36 +++++++++++++++++-------- appliances/forticache.gns3a | 14 ++++++++++ appliances/fortigate.gns3a | 14 ++++++++++ appliances/fortimail.gns3a | 14 ++++++++++ appliances/fortimanager.gns3a | 11 ++++++-- appliances/fortiproxy.gns3a | 14 ++++++++++ appliances/fortirecorder.gns3a | 18 +++++++++++-- appliances/fortisandbox.gns3a | 16 ++++++++++- appliances/fortisiem-super_worker.gns3a | 29 ++++++++++++++++++++ appliances/fortiweb.gns3a | 14 ++++++++++ 12 files changed, 192 insertions(+), 16 deletions(-) diff --git a/appliances/fortiadc.gns3a b/appliances/fortiadc.gns3a index f78da59..03d8524 100644 --- a/appliances/fortiadc.gns3a +++ b/appliances/fortiadc.gns3a @@ -34,6 +34,13 @@ "filesize": 30998528, "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" }, + { + "filename": "FAD_KVM-V500-build0442-FORTINET.out.kvm-boot.qcow2", + "version": "5.2.2", + "md5sum": "7d959ed264b064716e8f1378fceed48f", + "filesize": 104857600, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FAD_KVM-V500-build0423-FORTINET.out.kvm-boot.qcow2", "version": "5.2.0", @@ -190,6 +197,13 @@ } ], "versions": [ + { + "name": "5.2.2", + "images": { + "hda_disk_image": "FAD_KVM-V500-build0442-FORTINET.out.kvm-boot.qcow2", + "hdb_disk_image": "FAD_KVM-FORTINET.out.kvm-data.qcow2" + } + }, { "name": "5.2.0", "images": { diff --git a/appliances/fortianalyzer.gns3a b/appliances/fortianalyzer.gns3a index 297f7c4..1055e46 100644 --- a/appliances/fortianalyzer.gns3a +++ b/appliances/fortianalyzer.gns3a @@ -26,6 +26,13 @@ "kvm": "allow" }, "images": [ + { + "filename": "FAZ_VM64_KVM-v6-build1050-FORTINET.out.kvm.qcow2", + "version": "6.2.0", + "md5sum": "dc123116e4c816d8b4dee244bd671844", + "filesize": 140177408, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FAZ_VM64_KVM-v6-build0255-FORTINET.out.kvm.qcow2", "version": "6.0.3", @@ -148,6 +155,13 @@ } ], "versions": [ + { + "name": "6.2.0", + "images": { + "hda_disk_image": "FAZ_VM64_KVM-v6-build1050-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty30G.qcow2" + } + }, { "name": "6.0.3", "images": { diff --git a/appliances/fortiauthenticator.gns3a b/appliances/fortiauthenticator.gns3a index 19c7c67..382eeba 100644 --- a/appliances/fortiauthenticator.gns3a +++ b/appliances/fortiauthenticator.gns3a @@ -26,6 +26,13 @@ "kvm": "allow" }, "images": [ + { + "filename": "FAC_VM_KVM-v6-build0010-FORTINET.out.kvm.qcow2", + "version": "6.0.0", + "md5sum": "6699c0b24e54dc6a5215ba3945abb364", + "filesize": 74317824, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FAC_VM_KVM-v5-build0366-FORTINET.out.kvm.qcow2", "version": "5.5.0", @@ -90,75 +97,82 @@ "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" }, { - "filename": "FAC_VM_KVM-v500-DATADRIVE.qcow2", - "version": "5.x.x", + "filename": "FAC_VM_KVM-ALL-DATADRIVE.qcow2", + "version": "All", "md5sum": "09bad6cfe6301930adbc829eb8a67149", "filesize": 258048, "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" } ], "versions": [ + { + "name": "6.0.0", + "images": { + "hda_disk_image": "FAC_VM_KVM-v6-build0010-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "FAC_VM_KVM-ALL-DATADRIVE.qcow2" + } + }, { "name": "5.5.0", "images": { "hda_disk_image": "FAC_VM_KVM-v5-build0366-FORTINET.out.kvm.qcow2", - "hdb_disk_image": "FAC_VM_KVM-v500-DATADRIVE.qcow2" + "hdb_disk_image": "FAC_VM_KVM-ALL-DATADRIVE.qcow2" } }, { "name": "5.4.1", "images": { "hda_disk_image": "FAC_VM_KVM-v5-build0297-FORTINET.out.kvm.qcow2", - "hdb_disk_image": "FAC_VM_KVM-v500-DATADRIVE.qcow2" + "hdb_disk_image": "FAC_VM_KVM-ALL-DATADRIVE.qcow2" } }, { "name": "5.2.2", "images": { "hda_disk_image": "FAC_VM_KVM-v5-build0163-FORTINET.out.kvm.qcow2", - "hdb_disk_image": "FAC_VM_KVM-v500-DATADRIVE.qcow2" + "hdb_disk_image": "FAC_VM_KVM-ALL-DATADRIVE.qcow2" } }, { "name": "5.2.1", "images": { "hda_disk_image": "FAC_VM_KVM-v500-build0161-FORTINET.out.kvm.qcow2", - "hdb_disk_image": "FAC_VM_KVM-v500-DATADRIVE.qcow2" + "hdb_disk_image": "FAC_VM_KVM-ALL-DATADRIVE.qcow2" } }, { "name": "5.2.0", "images": { "hda_disk_image": "FAC_VM_KVM-v5-build0155-FORTINET.out.kvm.qcow2", - "hdb_disk_image": "FAC_VM_KVM-v500-DATADRIVE.qcow2" + "hdb_disk_image": "FAC_VM_KVM-ALL-DATADRIVE.qcow2" } }, { "name": "5.1.2", "images": { "hda_disk_image": "FAC_VM_KVM-v500-build0091-FORTINET.out.kvm.qcow2", - "hdb_disk_image": "FAC_VM_KVM-v500-DATADRIVE.qcow2" + "hdb_disk_image": "FAC_VM_KVM-ALL-DATADRIVE.qcow2" } }, { "name": "5.1.1", "images": { "hda_disk_image": "FAC_VM_KVM-v500-build0086-FORTINET.out.kvm.qcow2", - "hdb_disk_image": "FAC_VM_KVM-v500-DATADRIVE.qcow2" + "hdb_disk_image": "FAC_VM_KVM-ALL-DATADRIVE.qcow2" } }, { "name": "5.1.0", "images": { "hda_disk_image": "FAC_VM_KVM-v500-build0083-FORTINET.out.kvm.qcow2", - "hdb_disk_image": "FAC_VM_KVM-v500-DATADRIVE.qcow2" + "hdb_disk_image": "FAC_VM_KVM-ALL-DATADRIVE.qcow2" } }, { "name": "5.0.0", "images": { "hda_disk_image": "FAC_VM_KVM-v500-build0012-FORTINET.out.kvm.qcow2", - "hdb_disk_image": "FAC_VM_KVM-v500-DATADRIVE.qcow2" + "hdb_disk_image": "FAC_VM_KVM-ALL-DATADRIVE.qcow2" } } ] diff --git a/appliances/forticache.gns3a b/appliances/forticache.gns3a index faeeb95..38ccaaa 100644 --- a/appliances/forticache.gns3a +++ b/appliances/forticache.gns3a @@ -26,6 +26,13 @@ "kvm": "require" }, "images": [ + { + "filename": "FCHKVM-v400-build0230-FORTINET.out.kvm.qcow2", + "version": "4.2.9", + "md5sum": "a3583f162004da2f1e0b751e7b23504a", + "filesize": 27672576, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FCHKVM-v400-build0226-FORTINET.out.kvm.qcow2", "version": "4.2.8", @@ -113,6 +120,13 @@ } ], "versions": [ + { + "name": "4.2.9", + "images": { + "hda_disk_image": "FCHKVM-v400-build0230-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty100G.qcow2" + } + }, { "name": "4.2.8", "images": { diff --git a/appliances/fortigate.gns3a b/appliances/fortigate.gns3a index 8fdb612..f9c5e65 100644 --- a/appliances/fortigate.gns3a +++ b/appliances/fortigate.gns3a @@ -26,6 +26,13 @@ "kvm": "allow" }, "images": [ + { + "filename": "FGT_VM64_KVM-v6-build0866-FORTINET.out.kvm.qcow2", + "version": "6.2.0", + "md5sum": "588df9ba0db485976f6681810001ae73", + "filesize": 57868288, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FGT_VM64_KVM-v6-build0200-FORTINET.out.kvm.qcow2", "version": "6.0.3", @@ -218,6 +225,13 @@ } ], "versions": [ + { + "name": "6.2.0", + "images": { + "hda_disk_image": "FGT_VM64_KVM-v6-build0866-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty30G.qcow2" + } + }, { "name": "6.0.3", "images": { diff --git a/appliances/fortimail.gns3a b/appliances/fortimail.gns3a index a61711e..511cf51 100644 --- a/appliances/fortimail.gns3a +++ b/appliances/fortimail.gns3a @@ -26,6 +26,13 @@ "kvm": "allow" }, "images": [ + { + "filename": "FML_VMKV-64-v60-build0143-FORTINET.out.kvm.qcow2", + "version": "6.0.4", + "md5sum": "e6401ecfe9b145256cccb29757bbddfe", + "filesize": 98959360, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FML_VMKV-64-v60-build0126-FORTINET.out.kvm.qcow2", "version": "6.0.3", @@ -162,6 +169,13 @@ } ], "versions": [ + { + "name": "6.0.4", + "images": { + "hda_disk_image": "FML_VMKV-64-v60-build0143-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty30G.qcow2" + } + }, { "name": "6.0.3", "images": { diff --git a/appliances/fortimanager.gns3a b/appliances/fortimanager.gns3a index 7003ecb..a0347aa 100644 --- a/appliances/fortimanager.gns3a +++ b/appliances/fortimanager.gns3a @@ -26,6 +26,13 @@ "kvm": "allow" }, "images": [ + { + "filename": "FMG_VM64_KVM-v6-build1050-FORTINET.out.kvm.qcow2", + "version": "6.2.0", + "md5sum": "c19d2527f91ad1bbafbde5bf08487867", + "filesize": 126894080, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FMG_VM64_KVM-v6-build0255-FORTINET.out.kvm.qcow2", "version": "6.0.3", @@ -142,9 +149,9 @@ ], "versions": [ { - "name": "6.0.3", + "name": "6.2.0", "images": { - "hda_disk_image": "FMG_VM64_KVM-v6-build0255-FORTINET.out.kvm.qcow2", + "hda_disk_image": "FMG_VM64_KVM-v6-build1050-FORTINET.out.kvm.qcow2", "hdb_disk_image": "empty30G.qcow2" } }, diff --git a/appliances/fortiproxy.gns3a b/appliances/fortiproxy.gns3a index 3c1332c..03e39fd 100644 --- a/appliances/fortiproxy.gns3a +++ b/appliances/fortiproxy.gns3a @@ -26,6 +26,13 @@ "kvm": "allow" }, "images": [ + { + "filename": "FPX_KVM-v100-build0162-FORTINET.out.kvm.qcow2", + "version": "1.1.2", + "md5sum": "00db4c04fcc4ac0d7c389a86c71d20a5", + "filesize": 44601344, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FPX_KVM-v100-build0147-FORTINET.out.kvm.qcow2", "version": "1.1.0", @@ -43,6 +50,13 @@ } ], "versions": [ + { + "name": "1.1.2", + "images": { + "hda_disk_image": "FPX_KVM-v100-build0162-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty30G.qcow2" + } + }, { "name": "1.1.0", "images": { diff --git a/appliances/fortirecorder.gns3a b/appliances/fortirecorder.gns3a index 0940c71..79bd884 100644 --- a/appliances/fortirecorder.gns3a +++ b/appliances/fortirecorder.gns3a @@ -27,7 +27,14 @@ }, "images": [ { - "filename": "fortirecorder-FRC_VMKV-64-v26-build0607-FORTINET.out.kvm.qcow2", + "filename": "FRC_VMKV-64-v27-build0700-FORTINET.out.kvm.qcow2", + "version": "2.7.1", + "md5sum": "3736c66af7d958fc672fe29439b405b8", + "filesize": 79429632, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, + { + "filename": "FRC_VMKV-64-v26-build0607-FORTINET.out.kvm.qcow2", "version": "2.6.3", "md5sum": "ffa5d42119de576631673516f60e028b", "filesize": 63569920, @@ -43,10 +50,17 @@ } ], "versions": [ + { + "name": "2.7.1", + "images": { + "hda_disk_image": "FRC_VMKV-64-v27-build0700-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty30G.qcow2" + } + } { "name": "2.6.3", "images": { - "hda_disk_image": "fortirecorder-FRC_VMKV-64-v26-build0607-FORTINET.out.kvm.qcow2", + "hda_disk_image": "FRC_VMKV-64-v26-build0607-FORTINET.out.kvm.qcow2", "hdb_disk_image": "empty30G.qcow2" } } diff --git a/appliances/fortisandbox.gns3a b/appliances/fortisandbox.gns3a index 64eba9f..e022265 100644 --- a/appliances/fortisandbox.gns3a +++ b/appliances/fortisandbox.gns3a @@ -27,6 +27,13 @@ "options": "-smp 2" }, "images": [ + { + "filename": "FSA_KVM-v300-build0060-FORTINET.out.kvm.qcow2", + "version": "3.0.4", + "md5sum": "7e744c4d62430917aea4533672710b5a", + "filesize": 157221376, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FSA_KVM-v300-build0049-FORTINET.out.kvm.qcow2", "version": "3.0.3", @@ -92,13 +99,20 @@ }, { "filename": "FSA-datadrive.qcow2", - "version": "2.x", + "version": "All", "md5sum": "f2dc0a8fc7591699c364aff400369157", "filesize": 200192, "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" } ], "versions": [ + { + "name": "3.0.4", + "images": { + "hda_disk_image": "FSA_KVM-v300-build0060-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "FSA-datadrive.qcow2" + } + }, { "name": "3.0.3", "images": { diff --git a/appliances/fortisiem-super_worker.gns3a b/appliances/fortisiem-super_worker.gns3a index 52156bc..d622309 100644 --- a/appliances/fortisiem-super_worker.gns3a +++ b/appliances/fortisiem-super_worker.gns3a @@ -28,6 +28,27 @@ "options": "-smp 4" }, "images": [ + { + "filename": "FortiSIEM-VA-5.2.1.1553-OS.qcow2", + "version": "5.2.1", + "md5sum": "9dc3f4a9614b65c83d3e9733248cbcea", + "filesize": 3902208000, + "download_url": "https://images-cdn.fortisiem.fortinet.com/VirtualAppliances/release510.html" + }, + { + "filename": "FortiSIEM-VA-5.2.1.1553-CMDB.qcow2", + "version": "5.2.1", + "md5sum": "ea3f69191eb803cdf021227ec666bf7b", + "filesize": 46858240, + "download_url": "https://images-cdn.fortisiem.fortinet.com/VirtualAppliances/release510.html" + }, + { + "filename": "FortiSIEM-VA-5.2.1.1553-SVN.qcow2", + "version": "5.2.1", + "md5sum": "eff32e40baf6ede7bc57ad8d241812ad", + "filesize": 46858240, + "download_url": "https://images-cdn.fortisiem.fortinet.com/VirtualAppliances/release510.html" + }, { "filename": "FortiSIEM-VA-5.1.0.1336.qcow2", "version": "5.1.0", @@ -114,6 +135,14 @@ } ], "versions": [ + { + "name": "5.2.1", + "images": { + "hda_disk_image": "FortiSIEM-VA-5.2.1.1553-OS.qcow2", + "hdb_disk_image": "FortiSIEM-VA-5.2.1.1553-CMDB.qcow2", + "hdc_disk_image": "FortiSIEM-VA-5.2.1.1553-SVN.qcow2" + } + }, { "name": "5.1.0", "images": { diff --git a/appliances/fortiweb.gns3a b/appliances/fortiweb.gns3a index ebfdeac..c365d84 100644 --- a/appliances/fortiweb.gns3a +++ b/appliances/fortiweb.gns3a @@ -26,6 +26,13 @@ "kvm": "allow" }, "images": [ + { + "filename": "FWB_KVM-v600-build0383-FORTINET.out.kvm.qcow2", + "version": "6.1.0", + "md5sum": "d2dbbde9f03eb716a54119cc3e6055c4", + "filesize": 190120448, + "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx" + }, { "filename": "FWB_KVM-v600-build0056-FORTINET.out.kvm.qcow2", "version": "6.0.2", @@ -107,6 +114,13 @@ ], "versions": [ + { + "name": "6.1.0", + "images": { + "hda_disk_image": "FWB_KVM-v600-build0383-FORTINET.out.kvm.qcow2", + "hdb_disk_image": "empty30G.qcow2" + } + }, { "name": "6.0.2", "images": { From c979b33040e2f2277a3457131b4618c82c56cdb0 Mon Sep 17 00:00:00 2001 From: adosztal Date: Tue, 16 Apr 2019 18:40:12 +0200 Subject: [PATCH 166/169] Fixed JSON schema --- appliances/fortirecorder.gns3a | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appliances/fortirecorder.gns3a b/appliances/fortirecorder.gns3a index 79bd884..fe2a115 100644 --- a/appliances/fortirecorder.gns3a +++ b/appliances/fortirecorder.gns3a @@ -56,7 +56,7 @@ "hda_disk_image": "FRC_VMKV-64-v27-build0700-FORTINET.out.kvm.qcow2", "hdb_disk_image": "empty30G.qcow2" } - } + }, { "name": "2.6.3", "images": { From e05573100331b8d377cdb8cc5a47d6902400d202 Mon Sep 17 00:00:00 2001 From: adosztal Date: Wed, 17 Apr 2019 07:46:58 +0200 Subject: [PATCH 167/169] Fix for #416 --- README.rst | 2 +- check.py | 2 +- picture.py | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/README.rst b/README.rst index 4749b5f..07f8a8e 100644 --- a/README.rst +++ b/README.rst @@ -46,7 +46,7 @@ Check appliance files .. code:: bash - python check.py + python3 check.py python3 check_urls.py If `imagemagick` is installed, it will be used to check the symbol properties. diff --git a/check.py b/check.py index a68acba..a754dc1 100644 --- a/check.py +++ b/check.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Copyright (C) 2015 GNS3 Technologies Inc. # diff --git a/picture.py b/picture.py index 3e9fd41..133f15e 100644 --- a/picture.py +++ b/picture.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# -*- coding: utf-8 -*- # # Copyright (C) 2016 GNS3 Technologies Inc. # From 2850f617a6844a5512fb1e7079bbebc4727e4a85 Mon Sep 17 00:00:00 2001 From: adosztal Date: Sun, 21 Apr 2019 19:57:59 +0200 Subject: [PATCH 168/169] New release --- appliances/cisco-iosxrv9k.gns3a | 13 +++++++++++++ appliances/coreos.gns3a | 15 +++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/appliances/cisco-iosxrv9k.gns3a b/appliances/cisco-iosxrv9k.gns3a index a87ab03..5516a2c 100644 --- a/appliances/cisco-iosxrv9k.gns3a +++ b/appliances/cisco-iosxrv9k.gns3a @@ -24,6 +24,13 @@ "options": "-smp 4 -cpu host" }, "images": [ + { + "filename": "xrv9k-fullk9-x-6.5.2.qcow2", + "version": "6.5.2", + "md5sum": "506d9e23dda7365c99dd82b613859697", + "filesize": 1205010432, + "download_url": "https://software.cisco.com/download/home/286288939/type/280805694/release/6.5.1" + }, { "filename": "xrv9k-fullk9-x-6.5.1.qcow2", "version": "6.5.1", @@ -67,6 +74,12 @@ } ], "versions": [ + { + "name": "6.5.2", + "images": { + "hda_disk_image": "xrv9k-fullk9-x-6.5.2.qcow2" + } + }, { "name": "6.5.1", "images": { diff --git a/appliances/coreos.gns3a b/appliances/coreos.gns3a index d37471f..07d27af 100644 --- a/appliances/coreos.gns3a +++ b/appliances/coreos.gns3a @@ -21,6 +21,15 @@ "kvm": "allow" }, "images": [ + { + "filename": "coreos_production_qemu_image.2023.5.0.img", + "version": "2023.5.0", + "md5sum": "f8b12e524aa81220222d06473b3f36dc", + "filesize": 587661312, + "download_url": "http://stable.release.core-os.net/amd64-usr/2023.5.0/", + "direct_download_url": "http://stable.release.core-os.net/amd64-usr/2023.5.0/coreos_production_qemu_image.img.bz2", + "compression": "bzip2" + }, { "filename": "coreos_production_qemu_image.1911.5.0.img", "version": "1911.5.0", @@ -185,6 +194,12 @@ } ], "versions": [ + { + "name": "2023.5.0", + "images": { + "hda_disk_image": "coreos_production_qemu_image.2023.5.0.img" + } + }, { "name": "1911.5.0", "images": { From 162b37488bd95175ecc3f038ccecda4ee49c3b41 Mon Sep 17 00:00:00 2001 From: adosztal Date: Thu, 25 Apr 2019 07:20:18 +0200 Subject: [PATCH 169/169] New FRR release The base image has been updated to Ubuntu Server 18.04, FRR to version 7.0. Memory size was adjusted as well because the base image does not boot with 256 MB RAM. --- appliances/frr.gns3a | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/appliances/frr.gns3a b/appliances/frr.gns3a index 4f6c92e..476556e 100644 --- a/appliances/frr.gns3a +++ b/appliances/frr.gns3a @@ -14,12 +14,22 @@ "qemu": { "adapter_type": "virtio-net-pci", "adapters": 8, - "ram": 256, + "ram": 512, + "hda_disk_interface": "virtio", "arch": "x86_64", "console_type": "telnet", "kvm": "require" }, "images": [ + { + "filename": "frr7.0-vm0.3.qcow2", + "version": "FRR7.0 - VM0.3", + "md5sum": "5fa8ce0ee74215f4c4a8c61778ee0b10", + "filesize": 2044657664, + "download_url": "https://sourceforge.net/projects/frr/files/", + "direct_download_url": "https://sourceforge.net/projects/frr/files/FRR7.0-VM0.3.qcow2.bz2/download", + "compression": "bzip2" + }, { "filename": "frr6.0-vm0.2.qcow2", "version": "FRR6.0 - VM0.2", @@ -40,6 +50,12 @@ } ], "versions": [ + { + "name": "FRR7.0 - VM0.3", + "images": { + "hda_disk_image": "frr7.0-vm0.3.qcow2" + } + }, { "name": "FRR6.0 - VM0.2", "images": {