diff --git a/_data/aws-images.csv b/_data/aws-images.csv
new file mode 100644
index 0000000..cadcdc0
--- /dev/null
+++ b/_data/aws-images.csv
@@ -0,0 +1,50 @@
+"Version","Region","Architecture","AMI ID","Deploy link"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
+"CentOS 8","us-east-1","x86_64","ami-01ca03df4a6012157","https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-01ca03df4a6012157"
diff --git a/_data/full-altarchlist.csv b/_data/full-altarchlist.csv
new file mode 100644
index 0000000..a07f5e4
--- /dev/null
+++ b/_data/full-altarchlist.csv
@@ -0,0 +1,74 @@
+"Location","Region","Sponsor","Sponsor URL","HTTP mirror","HTTPS mirror","Rsync link"
+"Africa","Kenya","Liquid Telecom","https://www.liquidtelecom.com/","http://centos-altarch.mirror.liquidtelecom.com/","https://centos-altarch.mirror.liquidtelecom.com/","rsync://centos-altarch.mirror.liquidtelecom.com/centos-altarch/"
+"Africa","South Africa ","University of the Free State","http://www.ufs.ac.za/","http://mirror.ufs.ac.za/centos-altarch/","","rsync://mirror.ufs.ac.za/centos-altarch/"
+"Asia","China","Beijing Foreign Studies University","http://global.bfsu.edu.cn/","http://mirrors.bfsu.edu.cn/centos-altarch/","https://mirrors.bfsu.edu.cn/centos-altarch/","rsync://mirrors.bfsu.edu.cn/centos-altarch/"
+"Asia","China","HUAWEI CLOUD","https://www.huaweicloud.com/","http://mirrors.huaweicloud.com/centos-altarch/","https://mirrors.huaweicloud.com/centos-altarch/",""
+"Asia","Hong Kong","KoDDoS Hong Kong","https://zh.koddos.net/","http://mirror-hk.koddos.net/centos-altarch/","https://mirror-hk.koddos.net/centos-altarch/","rsync://mirror-hk.koddos.net/centos-altarch/"
+"Asia","Hong Kong","Worria Hongkong Dedicated Server","https://www.worria.com/","http://mirror.worria.com/centos-altarch/","",""
+"Asia","Hong Kong","xTom","https://xtom.com/","http://mirror.xtom.com.hk/centos-altarch/","https://mirror.xtom.com.hk/centos-altarch/","rsync://mirror.xtom.com.hk/repo/centos-altarch/"
+"Asia","Indonesia","Laboratorium Komputer ID","https://labkom.id/","http://mirror.labkom.id/centos-altarch/","","rsync://mirror.labkom.id/centos-altarch/"
+"Asia","Japan","Yamagata University","http://www.yamagata-u.ac.jp/","http://ftp.yz.yamagata-u.ac.jp/pub/linux/centos-altarch/","","rsync://ftp.yz.yamagata-u.ac.jp/pub/linux/centos-altarch/"
+"Asia","Kazakhstan","LLP Kompaniya Hoster.KZ","https://hoster.kz/","http://mirror.hoster.kz/centos-altarch/","https://mirror.hoster.kz/centos-altarch/","rsync://mirror.hoster.kz/centos-altarch/"
+"Asia","Singapore","-","","http://mirror.aktkn.sg/centos-altarch/","https://mirror.aktkn.sg/centos-altarch/","rsync://mirror.aktkn.sg/centos-altarch/"
+"Asia","Thailand","Bangmod.Cloud","https://bangmod.cloud/","http://mirrors.bangmod.cloud/centos-altarch/","https://mirrors.bangmod.cloud/centos-altarch/",""
+"Canada","BC","eSecureData Inc.","http://www.esecuredata.com/","http://mirror.esecuredata.com/centos-altarch/","",""
+"Canada","QC","Calgah Computer Systems Ltd.","http://www.calgah.com/","http://mirror.calgah.com/centos-altarch/","","rsync://mirror.calgah.com/centos-altarch/"
+"EU","Azerbaijan","YER Hosting","https://yer.az/","http://mirror.yer.az/CentOS-AltArch/","https://mirror.yer.az/CentOS-AltArch/",""
+"EU","Bulgaria","Daticum","https://www.daticum.com/","http://mirrors.daticum.com/centos-altarch/","https://mirrors.daticum.com/centos-altarch/","rsync://mirrors.daticum.com/centos-altarch/"
+"EU","Croatia","University of Rijeka Department of Informatics","https://www.inf.uniri.hr/","http://mirrors.uniri.hr/centos-altarch/","https://mirrors.uniri.hr/centos-altarch/",""
+"EU","Denmark","dotsrc.org","http://dotsrc.org/","http://mirrors.dotsrc.org/centos-altarch/","https://mirrors.dotsrc.org/centos-altarch/","rsync://mirrors.dotsrc.org/centos-altarch"
+"EU","France","RelouFR and Hivane networks","http://www.reloumirrors.net/","http://centos-altarch.reloumirrors.net/","","rsync://centos-altarch.reloumirrors.net/centos-altarch/"
+"EU","France","Wandrebeck (Private Mirror)","","http://centosaltarch.quelquesmots.fr/","",""
+"EU","Germany","Arbeitsgemeinschaft Dresdner Studentennetz","https://agdsn.de/","http://ftp.agdsn.de/pub/mirrors/centos-altarch/","https://ftp.agdsn.de/pub/mirrors/centos-altarch/",""
+"EU","Germany","Dark Penguin Network","http://darkpenguin.net/","http://linux.darkpenguin.net/distros/CentOS-AltArch/","",""
+"EU","Germany","Goethe University Frankfurt, Computing Center","http://www.rz.uni-frankfurt.de/","http://ftp.rz.uni-frankfurt.de/pub/mirrors/centos-altarch/","","rsync://ftp.rz.uni-frankfurt.de/centos-altarch/"
+"EU","Germany","INFOnline GmbH","https://www.infonline.de/","http://mirror.infonline.de/centos-altarch/","https://mirror.infonline.de/centos-altarch/","rsync://mirror.infonline.de/centos-altarch/"
+"EU","Germany","University of Applied Sciences Esslingen 2","http://www.hs-esslingen.de/","http://mirror1.hs-esslingen.de/pub/Mirrors/centos-altarch/","https://mirror1.hs-esslingen.de/pub/Mirrors/centos-altarch/","rsync://mirror1.hs-esslingen.de/centos-altarch/"
+"EU","Hungary","BME","http://www.bme.hu/","http://ftp.bme.hu/centos-altarch/","",""
+"EU","Hungary","Quantum Mirror","https://quantum-mirror.hu/","http://quantum-mirror.hu/mirrors/pub/centos-altarch/","https://quantum-mirror.hu/mirrors/pub/centos-altarch/","rsync://quantum-mirror.hu/centos-altarch/"
+"EU","Iceland","Nýherji","http://www.nyherji.is/","http://mirror.nyherji.is/centos-altarch/","",""
+"EU","Italy"," GARR","http://www.garr.it/","http://centos.mirror.garr.it/centos-altarch/","https://centos.mirror.garr.it/centos-altarch/",""
+"EU","Lithuania","UAB Esnet","http://www.vpsnet.com/","http://mirror.vpsnet.com/centos-altarch/","https://mirror.vpsnet.com/centos-altarch/",""
+"EU","Moldova","MivoCloud","https://www.mivocloud.com/","http://mirrors.mivocloud.com/centos-altarch/","","rsync://mirrors.mivocloud.com/centos-altarch/"
+"EU","Netherlands"," xTom","https://xtom.com/","http://mirrors.xtom.nl/centos-altarch/","",""
+"EU","Netherlands"," WD6.net","https://www.wd6.net/","http://mirror.wd6.net/centos-altarch/","https://mirror.wd6.net/centos-altarch/","rsync://mirror.wd6.net/centos-altarch/"
+"EU","Netherlands","DataPacket","https://datapacket.com/","http://mirror.nl.datapacket.com/centos-altarch/","",""
+"EU","Netherlands","LiteServer","https://www.liteserver.nl/","http://centos-altarch.mirror.liteserver.nl/","https://centos-altarch.mirror.liteserver.nl/","rsync://centos-altarch.mirror.liteserver.nl/centos-altarch/"
+"EU","Netherlands","Serverion","https://www.serverion.com/","http://mirror.serverion.com/centos-altarch/","https://mirror.serverion.com/centos-altarch/","rsync://mirror.serverion.com/centos-altarch/"
+"EU","Netherlands","Usenet.Farm","https://usenet.farm/","http://mirror.usenet.farm/centos-altarch/","https://mirror.usenet.farm/centos-altarch/","rsync://mirror.usenet.farm/centos-altarch/"
+"EU","Netherlands","Weppel","http://www.weppel.nl","http://mirror.ehv.weppel.nl/centos-altarch/","https://mirror.ehv.weppel.nl/centos-altarch/","rsync://mirror.ehv.weppel.nl/centos-altarch/"
+"EU","Portugal","University of Porto","http://www.up.pt/","http://mirrors.up.pt/pub/centos-altarch/","https://mirrors.up.pt/pub/centos-altarch/","rsync://mirrors.up.pt/pub/centos-altarch/"
+"EU","Romania"," nxtHost","https://www.nxthost.com/","http://mirrors.nxthost.com/centos-altarch/","https://mirrors.nxthost.com/centos-altarch/","rsync://mirrors.nxthost.com/centos-altarch/"
+"EU","Romania","NAV Communications","https://www.nav.ro/","http://mirrors.nav.ro/centos-altarch/","https://mirrors.nav.ro/centos-altarch/","rsync://mirrors.nav.ro/centos-altarch/"
+"EU","Russia","POWERNET ISP","http://www.powernet.com.ru/","http://mirrors.powernet.com.ru/centos-altarch/","","rsync://mirrors.powernet.com.ru/pub/centos-altarch/"
+"EU","Spain","AireNetworks","http://www.airenetworks.es/","http://mirror.airenetworks.es/CentOS-AltArch/","","rsync://mirror.airenetworks.es/CentOS-AltArch/"
+"EU","Spain","Hospedados.com & GadIX.com","http://www.gadix.com/","http://mirror.gadix.com/centos-altarch/","",""
+"EU","Switzerland","Init7 (Schweiz) AG","https://www.init7.net/","http://mirror.init7.net/centos-altarch/","https://mirror.init7.net/centos-altarch/",""
+"EU","Turkey","PremierDC","http://www.sh.com.tr","http://mirror.sh.com.tr/centos-altarch/","https://mirror.sh.com.tr/centos-altarch/",""
+"EU","Turkey","Provider Data Center Services","https://provider.com.tr/","http://mirror.provider.com.tr/centos-altarch/","https://mirror.provider.com.tr/centos-altarch/",""
+"EU","United Kingdom","Coreix","http://www.coreix.net/","http://mirrors.coreix.net/centos-altarch/","","rsync://mirrors.coreix.net/centos-altarch/"
+"EU","United Kingdom","Freethought Internet","https://www.freethought-internet.co.uk/","http://mirror.freethought-internet.co.uk/centos-altarch/","https://mirror.freethought-internet.co.uk/centos-altarch/","rsync://mirror.freethought-internet.co.uk/centos-altarch/"
+"Oceania","Australia","Colocation Australia Pty Ltd","http://coloau.com.au/","http://mirror.nsw.coloau.com.au/centos-altarch/","",""
+"Oceania","New Zealand","Free Software Mirror Group","https://fsmg.org.nz/","http://mirror.fsmg.org.nz/centos-altarch/","https://mirror.fsmg.org.nz/centos-altarch/","rsync://mirror.fsmg.org.nz/centos-altarch/"
+"Oceania","New Zealand","Theo M.","https://theom.nz/","http://altarch.mirrors.theom.nz/centos/","https://altarch.mirrors.theom.nz/centos/","rsync://rsync.mirrors.theom.nz/centos-alt/"
+"South America","Argentina","Zero.com.ar","https://www.zero.com.ar/","http://centos.zero.com.ar/centos-altarch/","",""
+"South America","Brazil","ITS Telecomunicacoes","http://www.itsbrasil.net/","http://centos-altarch.itsbrasil.net/","https://centos-altarch.itsbrasil.net/","rsync://centos-altarch.itsbrasil.net/centos-altarch/"
+"South America","Chile","Universidad de La Frontera","https://www.ufro.cl/","http://mirror.ufro.cl/centos-altarch/","https://mirror.ufro.cl/centos-altarch/","rsync://mirror.ufro.cl/centos-altarch/"
+"South America","Ecuador","Consorcio Ecuatoriano para el Desarrollo de Internet Avanzado","http://www.cedia.org.ec/","http://mirror.cedia.org.ec/centos-altarch/","https://mirror.cedia.org.ec/centos-altarch/",""
+"US","","Facebook","https://www.facebook.com/","http://mirror.facebook.net/centos-altarch/","","rsync://mirror.facebook.net/centos-altarch/"
+"US","","Oregon State University","http://osuosl.org/","http://ftp.osuosl.org/pub/centos-altarch/","","rsync://rsync.osuosl.org/centos-altarch/"
+"US","CA"," xTom","https://xtom.com/","http://mirrors.xtom.com/centos-altarch/","https://mirrors.xtom.com/centos-altarch/",""
+"US","CA","keystealth.org","","http://mirror.keystealth.org/centos-altarch/","","rsync://mirror.keystealth.org/centos-altarch/"
+"US","CA","Open Computing Facility","https://www.ocf.berkeley.edu/","http://mirrors.ocf.berkeley.edu/centos-altarch/","https://mirrors.ocf.berkeley.edu/centos-altarch/","rsync://mirrors.ocf.berkeley.edu/centos-altarch/"
+"US","GA","Genesis Adaptive Hosting","https://www.genesisadaptive.com","http://mirror.atl.genesisadaptive.com/centos-altarch/","https://mirror.atl.genesisadaptive.com/centos-altarch/","rsync://mirror.atl.genesisadaptive.com/centos-altarch/"
+"US","GA","Virtual World Technologies","http://www.vwtonline.com","http://centos.vwtonline.net/centos-altarch/","https://centos.vwtonline.net/centos-altarch/",""
+"US","IL"," Genesis Adaptive Hosting","https://www.genesisadaptive.com/","http://mirror.lax.genesisadaptive.com/centos-altarch/","https://mirror.lax.genesisadaptive.com/centos-altarch/","rsync://mirror.lax.genesisadaptive.com/centos-altarch/"
+"US","IL","Genesis Adaptive","https://www.genesisadaptive.com/","http://mirror.genesisadaptive.com/centos-altarch/","",""
+"US","IL","Genesis Hosting","https://genesishosting.com/","http://mirror.genesishosting.com/centos-altarch/","",""
+"US","NJ","Princeton University Department of Mathematics","http://www.math.princeton.edu/","http://mirror.math.princeton.edu/pub/centos-altarch/","https://mirror.math.princeton.edu/pub/centos-altarch/","rsync://mirror.math.princeton.edu/pub/centos-altarch/"
+"US","NY","Siena College","https://www.siena.edu/","http://mirror.siena.edu/centos-altarch/","","rsync://mirror.siena.edu/centos-altarch/"
+"US","PA","TeraSwitch Networks Inc.","https://teraswitch.com/","http://mirror.pit.teraswitch.com/centos-altarch/","","rsync://mirror.pit.teraswitch.com/centos-altarch"
+"US","TX","Nexril","https://nexril.net/","http://mirror.dal.nexril.net/centos-altarch/","https://mirror.dal.nexril.net/centos-altarch/","rsync://mirror.dal.nexril.net/centos-altarch/"
+"US","TX","XygenHosting","http://www.xygenhosting.com/","http://dallas.tx.mirror.xygenhosting.com/centos-altarch/","","rsync://dallas.tx.mirror.xygenhosting.com/centos-altarch/"
+"US","UT","University of Utah","http://www.chpc.utah.edu/","http://mirror.chpc.utah.edu/pub/centos-altarch/","https://mirror.chpc.utah.edu/pub/centos-altarch/","rsync://mirror.chpc.utah.edu/pub/centos-altarch/"
+"US","VA","Virginia Commonwealth University","http://www.vcu.edu/","http://mirror.vcu.edu/pub/gnu_linux/centos-altarch/","https://mirror.vcu.edu/pub/gnu_linux/centos-altarch/","rsync://mirror.vcu.edu/centos-altarch/"
diff --git a/_data/full-mirrorlist.csv b/_data/full-mirrorlist.csv
new file mode 100644
index 0000000..ccf5825
--- /dev/null
+++ b/_data/full-mirrorlist.csv
@@ -0,0 +1,609 @@
+"Location","Region","Sponsor","Sponsor URL","HTTP mirror","HTTPS mirror","Rsync link"
+"Africa","Botswana","Retention Range (PTY) Ltd","http://www.retentionrange.co.bw/","http://mirror.retentionrange.co.bw/centOS/","",""
+"Africa","Kenya","Liquid Telecom","https://www.liquidtelecom.com/","http://centos.mirror.liquidtelecom.com/","https://centos.mirror.liquidtelecom.com/","rsync://centos.mirror.liquidtelecom.com/centos/"
+"Africa","Morocco","MARWAN","http://www.marwan.ma/","http://mirror.marwan.ma/centos/","https://mirror.marwan.ma/centos/","rsync://mirror.marwan.ma/centos/"
+"Africa","South Africa"," psychz.net","http://www.psychz.net/","http://repos-jnb.psychz.net/centos/","","rsync://repos-jnb.psychz.net/Centos/"
+"Africa","South Africa","Internet Solutions","http://www.is.co.za/","http://ftp.is.co.za/mirror/centos/","","rsync://ftp.is.co.za/mirror/centos/"
+"Africa","South Africa","KVM.NET","http://www.kvm.net/","http://jnb.mirror.kvm.net/centos/","",""
+"Africa","South Africa","Openserve","http://www.openserve.co.za/","http://www.ftp.saix.net/linux/distributions/centos/","https://www.ftp.saix.net/linux/distributions/centos/",""
+"Africa","South Africa ","University of the Free State","http://www.ufs.ac.za/","http://mirror.ufs.ac.za/centos/","","rsync://mirror.ufs.ac.za/centos/"
+"Africa","South Africa","WIRUlink","http://www.wiru.co.za/","http://mirror.wiru.co.za/centos/","","rsync://mirror.wiru.co.za/centos/"
+"Africa","Tanzania","Aptus Solutions","http://www.aptus.co.tz/","http://mirror.aptus.co.tz/pub/centos/","https://mirror.aptus.co.tz/pub/centos/",""
+"Africa","Tunisia","ATI and Dot TN","http://www.ati.tn/","http://fedora.mirror.tn/pub/centos/","",""
+"Asia","Bangladesh"," CoLoCity","http://www.colocity.com.bd","http://mirror.myfahim.com/centos/","",""
+"Asia","Bangladesh","dhakaCom Limited","http://www.dhakacom.com/","http://mirror.dhakacom.com/centos/","",""
+"Asia","Bangladesh","XeonBD","https://www.xeonbd.com/","http://mirror.xeonbd.com/centos/","",""
+"Asia","Cambodia","Cambo.Host Ltd","https://cambo.host","http://mirror.cambo.host/centos/","","rsync://mirror.cambo.host/centos/"
+"Asia","China","Alibaba Cloud Computing","http://www.aliyun.com/","http://mirrors.aliyun.com/centos/","",""
+"Asia","China","Beijing Foreign Studies University","http://global.bfsu.edu.cn/","http://mirrors.bfsu.edu.cn/centos/","https://mirrors.bfsu.edu.cn/centos/","rsync://mirrors.bfsu.edu.cn/centos/"
+"Asia","China","Beijing Institute of Technology","http://www.bit.edu.cn/","http://mirror.bit.edu.cn/centos/","",""
+"Asia","China","ChongQing University","http://lanunion.cqu.edu.cn/","http://mirrors.cqu.edu.cn/CentOS/","https://mirrors.cqu.edu.cn/CentOS/",""
+"Asia","China","CN99 Corp.","http://www.cn99.com/","http://mirrors.cn99.com/centos/","",""
+"Asia","China","Dalian Neusoft University of Information","http://www.neusoft.edu.cn/","http://mirrors.neusoft.edu.cn/centos/","",""
+"Asia","China","HUAWEI CLOUD","https://www.huaweicloud.com/","http://mirrors.huaweicloud.com/centos/","https://mirrors.huaweicloud.com/centos/",""
+"Asia","China","Nanjing University","https://www.nju.edu.cn/","http://mirrors.nju.edu.cn/centos/","",""
+"Asia","China","Nanjing University of Posts and Telecommunications","http://www.njupt.edu.cn/","http://mirrors.njupt.edu.cn/centos/","https://mirrors.njupt.edu.cn/centos/",""
+"Asia","China","NetEase","http://www.163.com/","http://mirrors.163.com/centos/","",""
+"Asia","China","Shanghai Jiao Tong University","https://www.sjtu.edu.cn/","http://ftp.sjtu.edu.cn/centos/","https://ftp.sjtu.edu.cn/centos/",""
+"Asia","China","Tsinghua University","http://www.tsinghua.edu.cn/","http://mirrors.tuna.tsinghua.edu.cn/centos/","https://mirrors.tuna.tsinghua.edu.cn/centos/","rsync://mirrors.tuna.tsinghua.edu.cn/centos/"
+"Asia","China","University of Science and Tech of China","http://www.ustc.edu.cn/","http://mirrors.ustc.edu.cn/centos/","https://mirrors.ustc.edu.cn/centos/","rsync://rsync.mirrors.ustc.edu.cn/repo/centos/"
+"Asia","Hong Kong","01LINK NETWORK SERVICES LIMITED","http://www.01link.net/","http://centos.01link.hk/","",""
+"Asia","Hong Kong","CommuniLink Internet Limited","http://www.communilink.net/","http://centos.communilink.net/","",""
+"Asia","Hong Kong","Forewin Telecom Group LTD","http://www.hkt.cc/","http://mirror.hkt.cc/centos/","https://mirror.hkt.cc/centos/",""
+"Asia","Hong Kong","Gigabit Hosting","http://www.thegigabit.com/","http://hk.mirrors.thegigabit.com/centos/","",""
+"Asia","Hong Kong","Hostlink(HK) Limited","https://www.hostlink.com.hk/","http://mirror.hostlink.com.hk/centos/","https://mirror.hostlink.com.hk/centos/","rsync://mirror.hostlink.com.hk/centos/"
+"Asia","Hong Kong","i-System Technology Limited","http://www.uhost.hk/","http://centos.uhost.hk/","",""
+"Asia","Hong Kong","ICIDC NETWORK","http://www.icidc.com/","http://mirrors.icidc.com/centos/","http://mirrors.icidc.com/centos/",""
+"Asia","Hong Kong","KoDDoS Hong Kong","https://zh.koddos.net/","http://mirror-hk.koddos.net/centos/","https://mirror-hk.koddos.net/centos/","rsync://mirror-hk.koddos.net/centos/"
+"Asia","Hong Kong","Nethub Online Limited","https://www.nethub.com.hk/","http://centos.nethub.com.hk/","",""
+"Asia","Hong Kong","The Chinese University of Hong Kong","http://www.cuhk.edu.hk/","http://ftp.cuhk.edu.hk/pub/Linux/centos/","",""
+"Asia","Hong Kong","UDomain Web Hosting Company Ltd.","http://www.udomain.com.hk/","http://repo.virtualhosting.hk/centos/","",""
+"Asia","Hong Kong","Worria Hongkong Dedicated Server","https://www.worria.com/","http://mirror.worria.com/centos/","",""
+"Asia","Hong Kong","xTom","https://xtom.com/","http://mirror.xtom.com.hk/centos/","https://mirror.xtom.com.hk/centos/","rsync://mirror.xtom.com.hk/repo/centos/"
+"Asia","India","Esto Internet","https://estointernet.in/","http://centos.mirrors.estointernet.in/","https://centos.mirrors.estointernet.in/","rsync://centos.mirrors.estointernet.in/centos/"
+"Asia","India","Excell Media Pvt. Ltd.","http://www.excellmedia.net/","http://centos.excellmedia.net/","",""
+"Asia","India","Homi Bhabha Center For Science Education, TIFR","http://www.hbcse.tifr.res.in/","http://centos.hbcse.tifr.res.in/centos/","https://centos.hbcse.tifr.res.in/centos/","rsync://centos.hbcse.tifr.res.in/centos/"
+"Asia","India","PicoNets WebWerks","http://piconets.com/","http://mirrors.piconets.webwerks.in/centos-mirror/","https://mirrors.piconets.webwerks.in/centos-mirror/",""
+"Asia","India","Shiv Nadar University","http://snu.edu.in/","http://centos.mirror.snu.edu.in/centos/","",""
+"Asia","Indonesia","BUANA dotnet by SUITEN.ID","https://buana.net/","http://mirror.buana.web.id/centos/","","rsync://mirror.buana.web.id/centos/"
+"Asia","Indonesia","Computer Center, Jember University","http://www.unej.ac.id/","http://mirror.unej.ac.id/centos/","",""
+"Asia","Indonesia","DATAUTAMA-NET-ID","http://datautama.net.id/","http://kartolo.sby.datautama.net.id/Centos/","",""
+"Asia","Indonesia","IDroot Cloud ","https://idroot.cloud/","http://mirror.idroot.cloud/centos/","","rsync://mirror.idroot.cloud/centos/ "
+"Asia","Indonesia","Laboratorium Komputer ID","https://labkom.id/","http://mirror.labkom.id/centos/","","rsync://mirror.labkom.id/centos/"
+"Asia","Indonesia","PT. Angkasa Komunikasi Global Utama","http://www.angkasa.net.id/","http://centos.mirror.angkasa.id/centos/","","rsync://centos.mirror.angkasa.id/centos/"
+"Asia","Indonesia","PT. Biznet Gio Nusantara","https://www.biznetgio.com/","http://mirror.biznetgio.com/centos/","",""
+"Asia","Indonesia","PT. Orion Cyber Internet","http://orion.net.id/","http://mirror.dionipe.net/Centos/","",""
+"Asia","Indonesia","State Polytechnic of Banyuwangi","http://www.poliwangi.ac.id/","http://mirror.poliwangi.ac.id/centos/","",""
+"Asia","Indonesia","Telkom University","https://telkomuniversity.ac.id/","http://mirror.telkomuniversity.ac.id/centos/","https://mirror.telkomuniversity.ac.id/centos/",""
+"Asia","Japan"," NewMedia Express Pte Ltd","https://www.newmediaexpress.com/","http://ty1.mirror.newmediaexpress.com/centos/","https://ty1.mirror.newmediaexpress.com/centos/",""
+"Asia","Japan","Cat Networks K.K.","https://cat.net/","http://mirrors.cat.net/centos/","https://mirrors.cat.net/centos/",""
+"Asia","Japan","Internet Initiative Japan Inc.","http://www.iij.ad.jp/","http://ftp.iij.ad.jp/pub/linux/centos/","","rsync://ftp.iij.ad.jp/centos/"
+"Asia","Japan","JAIST","http://www.jaist.ac.jp/","http://ftp.jaist.ac.jp/pub/Linux/CentOS/","","rsync://ftp.jaist.ac.jp/pub/Linux/CentOS/"
+"Asia","Japan","KDDI R&D Laboratories Inc.","http://www.kddilabs.jp/english/index.html","http://ftp-srv2.kddilabs.jp/Linux/packages/CentOS/","","rsync://rsync.kddilabs.jp/centos/"
+"Asia","Japan","NARA Inst of Science and Technology","http://www.naist.jp/","http://ftp.nara.wide.ad.jp/pub/Linux/centos/","","rsync://ftp.nara.wide.ad.jp/centos/"
+"Asia","Japan","RIKEN Research Institute","http://www.riken.jp/","http://ftp.riken.jp/Linux/centos/","","rsync://ftp.riken.jp/centos/"
+"Asia","Japan","WIDEProject Tsukuba NOC","","http://ftp.tsukuba.wide.ad.jp/Linux/centos/","",""
+"Asia","Japan","Yamagata University","http://www.yamagata-u.ac.jp/","http://ftp.yz.yamagata-u.ac.jp/pub/linux/centos/","https://ftp.yz.yamagata-u.ac.jp/pub/linux/centos/","rsync://ftp.yz.yamagata-u.ac.jp/pub/linux/centos/"
+"Asia","Kazakhstan"," LLP Kompaniya Hoster.KZ","https://hoster.kz/","http://capital.hoster.kz/centos/","https://capital.hoster.kz/centos/","rsync://capital.hoster.kz/centos/"
+"Asia","Kazakhstan","LLP Kompaniya Hoster.KZ","https://hoster.kz/","http://mirror.hoster.kz/centos/","https://mirror.hoster.kz/centos/","rsync://mirror.hoster.kz/centos/"
+"Asia","Kazakhstan","Megahost Kazakhstan LLP","https://megahost.kz/","http://mirror.megahost.kz/centos/","",""
+"Asia","Kazakhstan","Neolabs LLP","http://neolabs.kz","http://mirror.neolabs.kz/centos/","","rsync://mirror.neolabs.kz/centos/"
+"Asia","Kazakhstan","PS Internet Company LLC","https://www.ps.kz/","http://mirror.ps.kz/centos/","https://mirror.ps.kz/centos/","rsync://mirror.ps.kz/centos/"
+"Asia","Malaysia"," Gigabit Hosting","http://www.thegigabit.com/","http://my.mirrors.thegigabit.com/centos/","",""
+"Asia","Malaysia","Exabytes Network Sdn. Bhd","http://www.exabytes.com.my/","http://centos.exabytes.com.my/main/","",""
+"Asia","Malaysia","GB Network Solutions Sdn. Bhd.","https://www.gbnetwork.my/","http://centos.gbnetwork.my/centos/","","rsync://centos.gbnetwork.my/centos/"
+"Asia","Malaysia","IP ServerOne Solutions Sdn Bhd","http://www.ipserverone.com/","http://centos.ipserverone.com/centos/","",""
+"Asia","Malaysia","myduniahosting.com","https://www.myduniahosting.com/","http://centos.mirror.myduniahost.com/centos/","",""
+"Asia","Malaysia","Net Onboard Sdn Bhd","http://www.netonboard.com/","http://centos.netonboard.com/centos/","",""
+"Asia","Malaysia","Shinjiru Technology Sdn. Bhd.","https://www.shinjiru.com/","http://centos.shinjiru.com/centos/","","rsync://centos.shinjiru.com/centos/"
+"Asia","Malaysia","TITAN System Integration Sdn. Bhd.","https://www.titansi.com.my/","http://mirror.titansi.com.my/centos/","https://mirror.titansi.com.my/centos/",""
+"Asia","Malaysia","Universiti Teknologi Malaysia","http://www.utm.my/","http://ossm.utm.my/centos/","",""
+"Asia","Mongolia","Mongolian National Data Center","https://datacenter.gov.mn/","http://mirror.datacenter.mn/centos/","",""
+"Asia","Pakistan","Gemnet Enterprise Solutions (Pvt) Ltd.","http://www.ges.net.pk/","http://mirrors.ges.net.pk/centos/","",""
+"Asia","Pakistan","Inara Technologies (Pvt) Ltd.","https://inara.pk/","http://repo.inara.pk/centos/","https://repo.inara.pk/centos/",""
+"Asia","Pakistan","Isra University Hyderabad","https://www.isra.edu.pk/","http://repo.isra.edu.pk/centos/","https://repo.isra.edu.pk/centos/",""
+"Asia","Philippines","RISE","https://rise.ph/","http://mirror.rise.ph/centos/","",""
+"Asia","Singapore"," National University of Singapore","http://download.nus.edu.sg/","http://download.nus.edu.sg/mirror/centos/","",""
+"Asia","Singapore","-","","http://mirror.aktkn.sg/centos/","https://mirror.aktkn.sg/centos/","rsync://mirror.aktkn.sg/centos/"
+"Asia","Singapore","National University of Singapore","http://www.comp.nus.edu.sg/","http://mirror.nus.edu.sg/centos/","",""
+"Asia","Singapore","NewMedia Express Pte Ltd","https://www.newmediaexpress.com/","http://mirror.newmediaexpress.com/centos/","https://mirror.newmediaexpress.com/centos/",""
+"Asia","Singapore","USONYX PTE. LTD.","http://www.usonyx.net/","http://centos.usonyx.net/main/","",""
+"Asia","Singapore","Vastspace","https://www.vastspace.net/","http://mirror.vastspace.net/centos/","",""
+"Asia","Singapore","Vodien Internet Solutions Pte Ltd.","http://www.vodien.com/","http://mirror.vodien.com/centos/","",""
+"Asia","South Korea","KAIST","http://www.kaist.ac.kr/","http://ftp.kaist.ac.kr/CentOS/","","rsync://ftp.kaist.ac.kr/CentOS/"
+"Asia","South Korea","Kakao Corp.","http://kakaocorp.com/","http://mirror.kakao.com/centos/","",""
+"Asia","South Korea","NAVER Business Platform","http://www.nbp-corp.com/","http://mirror.navercorp.com/centos/","",""
+"Asia","South Korea","Open Source Consulting ","https://osci.kr/","http://mirror.opensourcelab.co.kr/centos/","https://mirror.opensourcelab.co.kr/centos/","rsync://mirror.opensourcelab.co.kr/CentOS/"
+"Asia","Taiwan","Chunghwa Telecom – Data Communications Business Group","http://www.idc.hinet.net/chtidc_eng/index.html","http://mirror01.idc.hinet.net/centos/","",""
+"Asia","Taiwan","Computer Center, Shu-Te University","http://en.main.stu.edu.tw/","http://ftp.stu.edu.tw/Linux/CentOS/","",""
+"Asia","Taiwan","HostingInside LTD ","https://www.hostinginside.com/","http://centos.mirror.hostinginside.com/","https://centos.mirror.hostinginside.com/","rsync://centos.mirror.hostinginside.com/CentOS/"
+"Asia","Taiwan","Kun Shan University","http://www.ksu.edu.tw/","http://ftp.ksu.edu.tw/pub/CentOS/","",""
+"Asia","Taiwan","National Center for High-Perf Computing","http://www.nchc.org.tw/en/","http://ftp.twaren.net/Linux/CentOS/","",""
+"Asia","Taiwan","NCHC","https://www.nchc.org.tw/","http://free.nchc.org.tw/centos/","https://free.nchc.org.tw/centos/","rsync://free.nchc.org.tw/centos/"
+"Asia","Taiwan","NCTU CSCC","https://www.cs.nctu.edu.tw/","http://centos.cs.nctu.edu.tw/","","rsync://centos.cs.nctu.edu.tw/CentOS/"
+"Asia","Taiwan","TaiChung City Education Network Center","http://www.tc.edu.tw/","http://ftp.tc.edu.tw/Linux/CentOS/","",""
+"Asia","Thailand","Bangmod.Cloud","https://bangmod.cloud/","http://mirrors.bangmod.cloud/centos/","https://mirrors.bangmod.cloud/centos/",""
+"Asia","Thailand","Hosting.in.th","http://www.hosting.in.th/","http://mirrors.hosting.in.th/centos/","",""
+"Asia","Thailand","Khon Kaen University","https://www.kku.ac.th/","http://mirror.kku.ac.th/centos/","https://mirror.kku.ac.th/centos/","rsync://mirror.kku.ac.th/centos/"
+"Asia","Thailand","NIPA.CLOUD","https://www.nipa.cloud/","http://mirrors.nipa.cloud/centos/","https://mirrors.nipa.cloud/centos/","rsync://mirrors.nipa.cloud/centos/"
+"Asia","Thailand","Prince of Songkla University, Hatyai cam","http://www.psu.ac.th/en/","http://mirrors.psu.ac.th/pub/centos/","","rsync://mirrors.psu.ac.th/centos/"
+"Asia","Thailand","THZ Hosting","http://www.thzhost.com/","http://mirrors.thzhost.com/centos/","https://mirrors.thzhost.com/centos/","rsync://mirrors.thzhost.com/centos/"
+"Asia","Thailand","TOT Public Company Limited","http://www.tot.co.th/","http://mirror2.totbb.net/centos/","","rsync://mirror2.totbb.net/centos/"
+"Asia","Uzbekistan","Comnet ISP","http://comnet.uz/","http://mirror.comnet.uz/centos/","","rsync://mirror.comnet.uz/centos/"
+"Asia","Uzbekistan","Datacenter Uzinfocom","http://dc.uz/","http://mirror.dc.uz/centos/","","rsync://mirror.dc.uz/centos/"
+"Asia","Vietnam"," Viettel IDC","http://viettelidc.com.vn/","http://centos-hcm.viettelidc.com.vn/","",""
+"Asia","Vietnam","BKNS.VN","https://www.bkns.vn/","http://mirrors.bkns.vn/centos/","https://mirrors.bkns.vn/centos/","rsync://mirrors.bkns.vn/centos/"
+"Asia","Vietnam","HORIZON","https://horizon.vn/","http://mirror.horizon.vn/centos/","",""
+"Asia","Vietnam","Nhan Hoa","https://nhanhoa.com/","http://mirrors.nhanhoa.com/centos/","",""
+"Asia","Vietnam","TinoHost","http://tinohost.com/","http://mirror.tino.org/centos/","",""
+"Asia","Vietnam","VHost","http://vhost.vn/","http://mirrors.vhost.vn/centos/","",""
+"Asia","Vietnam","VietHosting.vn","http://www.viethosting.com","http://mirrors.viethosting.com/centos/","","rsync://mirrors.viethosting.com/centos/"
+"Canada","BC","eSecureData Inc.","http://www.esecuredata.com/","http://mirror.esecuredata.com/centos/","",""
+"Canada","BC","FullHost","https://www.fullhost.com/","http://centos.ca-west.mirror.fullhost.io/centos/","",""
+"Canada","BC","Simon Fraser University","http://www.fas.sfu.ca/","http://mirror.its.sfu.ca/mirror/CentOS/","https://mirror.its.sfu.ca/mirror/CentOS/",""
+"Canada","BC","The University of British Columbia","http://ubc.ca/","http://mirror.it.ubc.ca/centos/","",""
+"Canada","MB","LES.NET","http://les.net/","http://centos.les.net/","",""
+"Canada","MB","Manitoba Unix User Group","http://www.muug.mb.ca/","http://muug.ca/mirror/centos/","https://muug.ca/mirror/centos/","rsync://muug.ca/centos/"
+"Canada","MB","Westman Communications Grp","http://www.westmancom.com/","http://centos.westmancom.com/","",""
+"Canada","NS","Dalhousie University","http://www.dal.ca/","http://mirror.its.dal.ca/centos/","","rsync://mirror.its.dal.ca/centos/"
+"Canada","ON","Clearcable Networks","http://www.clearcable.ca/","http://centos.mirror.rafal.ca/","","rsync://centos.mirror.rafal.ca/CentOS/"
+"Canada","ON","Cogeco Connexion","https://cogeco.com/","http://less.cogeco.net/CentOS/","",""
+"Canada","ON","Netflash Internet Solutions","https://netflash.net/","http://mirror.netflash.net/centos/","https://mirror.netflash.net/centos/","rsync://mirror.netflash.net/centos/"
+"Canada","ON","U. of Waterloo Computer Science Club","http://csclub.uwaterloo.ca/","http://mirror.csclub.uwaterloo.ca/centos/","https://mirror.csclub.uwaterloo.ca/centos/","rsync://mirror.csclub.uwaterloo.ca/centos/"
+"Canada","ON","Wightman Telecom","http://wightman.ca/","http://mirror.netaddicted.ca/CentOS/","",""
+"Canada","QC"," GloboTech Communications","http://www.globo.tech/","http://centos.mirror.globo.tech/","","rsync://centos.mirror.globo.tech/centos/"
+"Canada","QC","Calgah Computer Systems Ltd.","http://www.calgah.com/","http://mirror.calgah.com/centos/","","rsync://mirror.calgah.com/centos/"
+"Canada","QC","Colo-Serv Communications","https://colo-serv.net/","http://centos.mirror.colo-serv.net/","",""
+"Canada","QC","Digital Shape Technologies Inc.","https://www.dst.ca/","http://mirror.dst.ca/centos/","https://mirror.dst.ca/centos/","rsync://mirror.dst.ca/centos/"
+"Canada","QC","iWeb Technologies Inc.","http://iweb.com/","http://centos.mirror.iweb.ca/","","rsync://centos.mirror.iweb.ca/centos/"
+"Canada","QC","Netelligent","http://www.netelligent.ca/centos/","http://centos.mirror.netelligent.ca/centos/","",""
+"Canada","QC","PlanetHoster Canada","http://www.planethoster.net/","http://centos.mirror.ca.planethoster.net/","",""
+"Canada","QC","VEXXHOST","http://www.vexxhost.com/","http://centos.mirror.vexxhost.com/","",""
+"EU","Armenia","ARMINCO Global Telecommunications","http://www.arminco.com/","http://centos.mirrors.arminco.com/","",""
+"EU","Austria","ANEXIA Internetdienstleistungs GmbH ","https://anexia.com/","http://centos.anexia.at/centos/","https://centos.anexia.at/centos/","rsync://centos.anexia.at/centos/"
+"EU","Austria","digitalnova it&web solutions e.U.","http://digitalnova.at/","http://mirror.digitalnova.at/CentOS/","",""
+"EU","Austria","Easyname","http://www.easyname.at/de","http://mirror.easyname.at/centos/","","rsync://mirror.easyname.at/centos/"
+"EU","Austria","next layer GmbH","http://www.nextlayer.at/","http://mirror.nextlayer.at/centos/","",""
+"EU","Austria","Technische Universität Graz","http://portal.tugraz.at/portal/page/portal/TU_Graz","http://ftp.tugraz.at/mirror/centos/","https://ftp.tugraz.at/mirror/centos/",""
+"EU","Austria","UPC Austria","http://www.upc.at/","http://mirror.inode.at/data/centos/","","rsync://mirror.inode.at/mirror/centos/"
+"EU","Azerbaijan","YER Hosting","https://yer.az/","http://mirror.yer.az/CentOS/","https://mirror.yer.az/CentOS/",""
+"EU","Belarus","RUE Beltelecom","https://beltelecom.by/","http://mirror.datacenter.by/pub/CentOS/","https://mirror.datacenter.by/pub/CentOS/","rsync://mirror.datacenter.by/CentOS/"
+"EU","Belarus","RUE Beltelecom, ByFly ISP.","http://byfly.by/","http://ftp.byfly.by/pub/CentOS/","","rsync://ftp.byfly.by/CentOS/"
+"EU","Belgium","Belnet","http://www.belnet.be/en/","http://ftp.belnet.be/mirror/ftp.centos.org/","","rsync://rsync.belnet.be/centos/"
+"EU","Belgium","Cu.be Solutions","http://cu.be/","http://centos.cu.be/","",""
+"EU","Belgium","Kinamo NV/SA","http://www.kinamo.be/","http://mirror.kinamo.be/centos/","",""
+"EU","Belgium","Nucleus","http://www.nucleus.be/","http://centos.mirror.nucleus.be/","",""
+"EU","Bosnia & Herzegovina","Mirror.ba","http://mirror.ba/","http://centos.mirror.ba/","","rsync://mirror.ba/centos/"
+"EU","Bulgaria","Daticum","https://www.daticum.com/","http://mirrors.daticum.com/centos/","https://mirrors.daticum.com/centos/","rsync://mirrors.daticum.com/CentOS/"
+"EU","Bulgaria","Host.AG","https://www.host.ag/","http://mirror.host.ag/centos/","","rsync://mirror.host.ag/centos/"
+"EU","Bulgaria","Neterra LTD","http://www.neterra.net/","http://mirrors.neterra.net/centos/","https://mirrors.neterra.net/centos/","rsync://mirrors.neterra.net/centos/"
+"EU","Bulgaria","Netix","http://netix.net/","http://mirrors.netix.net/centos/","","rsync://mirrors.netix.net/centos/"
+"EU","Bulgaria","Sofia University St. Kliment Ohridski","http://uni-sofia.bg/","http://centos.uni-sofia.bg/centos/","","rsync://centos.uni-sofia.bg/centos/"
+"EU","Bulgaria","Telecoms Ltd.","http://www.telecoms.bg/","http://centos.telecoms.bg/","",""
+"EU","Bulgaria","University of Ruse","http://www.uni-ruse.bg/","http://mirrors.uni-ruse.bg/centos/","https://mirrors.uni-ruse.bg/centos/",""
+"EU","Bulgaria","Worldwide Fx / Nu Boyana Film Studios","http://wwfx.net/","http://mirror.wwfx.net/","",""
+"EU","Croatia","Plus Hosting","http://www.plus.hr/","http://mirror.centos.plus.hr/centos/","","rsync://mirror.centos.plus.hr/centos/"
+"EU","Croatia","University of Rijeka Department of Informatics","https://www.inf.uniri.hr/","http://mirrors.uniri.hr/centos/","https://mirrors.uniri.hr/centos/",""
+"EU","Cyprus","Dept. of Computer Science, University of Cyprus","http://www.cs.ucy.ac.cy/","http://mirror.cs.ucy.ac.cy/centos/","",""
+"EU","Czech Republic","Brno University of Technology","http://www.fit.vutbr.cz/","http://merlin.fit.vutbr.cz/mirrors/centos/","","rsync://merlin.fit.vutbr.cz/CentOS-incdvd/"
+"EU","Czech Republic","Czech Technical University","http://www.cvut.cz","http://ftp.cvut.cz/centos/","",""
+"EU","Czech Republic","Faculty of Informatics, Masaryk Univ.","http://www.fi.muni.cz/","http://ftp.fi.muni.cz/pub/linux/centos/","","rsync://ftp.fi.muni.cz/pub/linux/centos/"
+"EU","Czech Republic","Hosting90 systems s.r.o.","http://www.hosting90.cz/","http://mirror.hosting90.cz/centos/","",""
+"EU","Czech Republic","IT4Innovations National Supercomputing Center","http://www.it4i.cz/","http://mirror.it4i.cz/centos/","","rsync://mirror.it4i.cz/centos/"
+"EU","Czech Republic","Silesian university in Opava","http://www.slu.cz/","http://mirror.slu.cz/centos/","https://mirror.slu.cz/centos/","rsync://mirror.slu.cz/centos/"
+"EU","Czech Republic","UPC Czech Republic","https://www.upc.cz/","http://mirror.karneval.cz/pub/centos/","https://mirror.karneval.cz/pub/centos/",""
+"EU","Denmark","dotsrc.org","http://dotsrc.org/","http://mirrors.dotsrc.org/centos/","https://mirrors.dotsrc.org/centos/","rsync://mirrors.dotsrc.org/centos/"
+"EU","Denmark","KLID","http://klid.dk/","http://ftp.klid.dk/ftp/centos/","",""
+"EU","Denmark","Netsite A/S","https://www.netsite.dk/","http://mirror.netsite.dk/centos/","https://mirror.netsite.dk/centos/",""
+"EU","Denmark","One.com","http://www.one.com/","http://mirror.one.com/centos/","https://mirror.one.com/centos/","rsync://mirror.one.com/centos/"
+"EU","Denmark","Physics Dept, Technical Univ of Denmark","http://www.fys.dtu.dk/","http://mirror.fysik.dtu.dk/linux/centos/","",""
+"EU","Finland","CSC / Funet","http://www.nic.funet.fi/","http://ftp.funet.fi/pub/mirrors/centos.org/","","rsync://rsync.nic.funet.fi/ftp/pub/mirrors/centos.org/"
+"EU","Finland","Finnish Administrators Reunited","http://far.fi/","http://centos.mirror.far.fi/","",""
+"EU","Finland","Hosthink","https://www.hosthink.net","http://mirror.hosthink.net/centos/","",""
+"EU","Finland","Koli-Loks","https://www.koliloks.eu/","http://mirror.gnu.fi/centos/","",""
+"EU","France"," Institut Pasteur","http://www.pasteur.fr/","http://ftp.pasteur.fr/mirrors/CentOS/","","rsync://ftp.pasteur.fr/mirrors/CentOS/"
+"EU","France","Atos Worldline","http://www.atos.net/","http://mirrors.atosworldline.com/public/centos/","",""
+"EU","France","Avenir Telematique SAS","http://www.ate.info","http://centos.mirror.ate.info/","https://centos.mirror.ate.info/","rsync://centos.mirror.ate.info/centos/"
+"EU","France","Centre de Calcul de l'IN2P3","http://cc.in2p3.fr/","http://mirror.in2p3.fr/linux/CentOS/","","rsync://mirror.in2p3.fr/ftp/linux/CentOS/"
+"EU","France","Distrib Coffee","http://distrib-coffee.ipsl.jussieu.fr/","http://distrib-coffee.ipsl.jussieu.fr/pub/linux/centos/","","rsync://distrib-coffee.ipsl.jussieu.fr/pub/linux/centos/"
+"EU","France","ftp.free.fr","","http://centos.mirrors.proxad.net/","",""
+"EU","France","ircam","http://mirrors.ircam.fr/pub/CentOS/","http://mirrors.ircam.fr/pub/CentOS/","https://mirrors.ircam.fr/pub/CentOS/","rsync://mirrors.ircam.fr/CentOS/"
+"EU","France","Lorraine University","http://www.univ-lorraine.fr/","http://miroir.univ-lorraine.fr/centos/","https://miroir.univ-lorraine.fr/centos/","rsync://miroir.univ-lorraine.fr/centos/"
+"EU","France","PlanetHoster France","http://www.planethoster.net/","http://centos.mirror.fr.planethoster.net/","",""
+"EU","France","PlusServer GmbH","https://www.plusserver.com/","http://mirror.plusserver.com/centos/","https://mirror.plusserver.com/centos/",""
+"EU","France","RelouFR and Hivane networks","http://www.reloumirrors.net/","http://centos.crazyfrogs.org/","","rsync://centos.crazyfrogs.org/centos/"
+"EU","France","Rezopole","http://www.rezopole.net/","http://ftp.rezopole.net/centos/","","rsync://ftp.rezopole.net/centos/"
+"EU","France","Rpmfind","http://rpmfind.net/","http://fr2.rpmfind.net/linux/centos/","https://fr2.rpmfind.net/linux/centos/","rsync://fr2.rpmfind.net/linux/centos/"
+"EU","France","Standalone Installer Software","http://standaloneinstaller.com/","http://mirrors.standaloneinstaller.com/centos/","","rsync://mirrors.standaloneinstaller.com/centos/"
+"EU","France","Syntis","http://www.syntis.net/","http://mir01.syntis.net/CentOS/","https://mir01.syntis.net/CentOS/","rsync://mir01.syntis.net/CentOS/"
+"EU","France","Université Paris 13","http://www.univ-paris13.fr/","http://miroir.univ-paris13.fr/centos/","",""
+"EU","France","Wandrebeck (Private Mirror)","","http://centos.quelquesmots.fr/","",""
+"EU","France","WPTheme","http://wptheme.fr/","http://mirroir.wptheme.fr/centos/","https://mirroir.wptheme.fr/centos/",""
+"EU","Georgia","Caucasus Online LLC","http://co.ge/","http://centos.mirror.co.ge/","https://centos.mirror.co.ge/",""
+"EU","Georgia","Cloud9","https://cloud9.ge/","http://ge.mirror.cloud9.ge/centos/","https://ge.mirror.cloud9.ge/centos/","rsync://ge.mirror.cloud9.ge/centos/"
+"EU","Georgia","GRENA","https://www.grena.ge/","http://centos.grena.ge/","https://centos.grena.ge/",""
+"EU","Georgia","Magticom ltd","https://www.magticom.ge/","http://centos.srv.magticom.ge/","https://centos.srv.magticom.ge/",""
+"EU","Georgia","Worldbus","http://ge.mirror.worldbus.ge/centos/","http://ge.mirror.worldbus.ge/centos/","",""
+"EU","Germany"," Leaseweb","https://www.leaseweb.com/","http://mirror.fra10.de.leaseweb.net/centos/","https://mirror.fra10.de.leaseweb.net/centos/","rsync://mirror.fra10.de.leaseweb.net/centos/"
+"EU","Germany","1&1 Internet AG","http://www.1and1.com/","http://mirror.eu.oneandone.net/linux/distributions/centos/","","rsync://mirror.eu.oneandone.net/centos/"
+"EU","Germany","23media","http://www.23media.com/","http://mirror.23media.com/centos/","https://mirror.23media.com/centos/","rsync://mirror.23media.com/centos/"
+"EU","Germany","alpha-labs.net","https://alpha-labs.net/","http://mirror.alpha-labs.net/centos/","https://mirror.alpha-labs.net/centos/","rsync://mirror.alpha-labs.net/centos/"
+"EU","Germany","Alpix","https://alpix.eu/","http://mirror.alpix.eu/centos/","https://mirror.alpix.eu/centos/","rsync://mirror.alpix.eu/centos/"
+"EU","Germany","Arbeitsgemeinschaft Dresdner Studentennetz","https://agdsn.de/","http://ftp.agdsn.de/pub/mirrors/centos/","https://ftp.agdsn.de/pub/mirrors/centos/",""
+"EU","Germany","Artfiles New Media GmbH","http://www.artfiles.de/","http://artfiles.org/centos.org/","",""
+"EU","Germany","Checkdomain GmbH","http://www.checkdomain.de/","http://mirror.checkdomain.de/centos/","https://mirror.checkdomain.de/centos/",""
+"EU","Germany","cuegee it gmbh","https://cuegee.com/","http://mirror.cuegee.com/centos/","https://mirror.cuegee.com/centos/","rsync://mirror.cuegee.com/centos/"
+"EU","Germany","Dark Penguin Network","http://darkpenguin.net/","http://linux.darkpenguin.net/distros/CentOS/","",""
+"EU","Germany","Friedrich-Alexander-Universität Erlangen-Nürnberg","http://www.fau.de/","http://ftp.fau.de/centos/","https://ftp.fau.de/centos/","rsync://ftp.fau.de/centos/"
+"EU","Germany","Goethe University Frankfurt, Computing Center","http://www.rz.uni-frankfurt.de/","http://ftp.rz.uni-frankfurt.de/pub/mirrors/centos/","","rsync://ftp.rz.uni-frankfurt.de/centos/"
+"EU","Germany","Host Europe","http://www.hosteurope.de/","http://ftp.hosteurope.de/mirror/centos.org/","","rsync://ftp.hosteurope.de/centos/"
+"EU","Germany","IMT-Systems GmbH","http://www.imt-systems.com/","http://mirror.imt-systems.com/centos/","https://mirror.imt-systems.com/centos/","rsync://mirror.imt-systems.com/centos/"
+"EU","Germany","INFOnline GmbH","https://www.infonline.de/","http://mirror.infonline.de/centos/","https://mirror.infonline.de/centos/","rsync://mirror.infonline.de/centos/"
+"EU","Germany","Intergenia","http://www.server4you.de/","http://centos.intergenia.de/","","rsync://centos.intergenia.de/centos-linux/"
+"EU","Germany","IPHH Internet Port Hamburg GmbH","https://www.iphh.net/","http://centos.mirror.iphh.net/CentOS/","",""
+"EU","Germany","Leibniz Universität IT Services","http://www.rrzn.uni-hannover.de/","http://ftp.rrzn.uni-hannover.de/centos/","",""
+"EU","Germany","LMU Muenchen, Dpt. Biologie 2, IT-Gruppe","http://zi.bio.lmu.de/","http://centos.bio.lmu.de/","","rsync://centos.bio.lmu.de/CentOS/"
+"EU","Germany","net-and-phone GmbH","https://i-pbx.de/","http://ftp.antilo.de/pub/linux/centos/","",""
+"EU","Germany","Net-D-Sign GmbH","http://www.net-d-sign.de/","http://centos.mirror.net-d-sign.de/","",""
+"EU","Germany","NetCologne","http://netcologne.de","http://mirror.netcologne.de/centos/","","rsync://mirror.netcologne.de/centos/"
+"EU","Germany","netcup GmbH","http://www.netcup.de/","http://centosmirror.netcup.net/centos/","",""
+"EU","Germany","Netzwerge GmbH","http://www.netzwerge.de/","http://mirror.netzwerge.de/centos/","https://mirror.netzwerge.de/centos/",""
+"EU","Germany","Plus.line AG","https://www.plusline.net/","http://ftp.plusline.net/centos/","https://ftp.plusline.net/centos/","rsync://ftp.plusline.net/CentOS/"
+"EU","Germany","PLUSTECH GmbH ","https://plustech.de/","http://mirror.plustech.de/centos/","https://mirror.plustech.de/centos/",""
+"EU","Germany","PSW Group","http://www.psw.net/","http://centos.mirrors.psw.services/centos/","",""
+"EU","Germany","ratiokontakt GmbH","http://www.ratiokontakt.de/","http://mirror.ratiokontakt.de/mirror/centos/","",""
+"EU","Germany","RWTH Aachen University","http://www.rwth-aachen.de","http://ftp.halifax.rwth-aachen.de/centos/","https://ftp.halifax.rwth-aachen.de/centos/","rsync://ftp.halifax.rwth-aachen.de/centos/"
+"EU","Germany","ScaleUp Technologies GmbH & Co. KG","https://www.scaleuptech.com/","http://mirror.scaleuptech.com/centos/","https://mirror.scaleuptech.com/centos/","rsync://mirror.scaleuptech.com/centos/"
+"EU","Germany","Schlund Technologies GmbH","http://www.schlundtech.de/","http://centos.schlundtech.de/","","rsync://centos.schlundtech.de/centos/"
+"EU","Germany","Softaculous ltd.","http://www.softaculous.com/","http://mirror.softaculous.com/centos/","",""
+"EU","Germany","TU Chemnitz","http://www.tu-chemnitz.de/","http://ftp.tu-chemnitz.de/pub/linux/centos/","","rsync://rsync.hrz.tu-chemnitz.de/ftp/pub/linux/centos/"
+"EU","Germany","University of Applied Sciences Esslingen 2","http://www.hs-esslingen.de/","http://mirror1.hs-esslingen.de/pub/Mirrors/centos/","https://mirror1.hs-esslingen.de/pub/Mirrors/centos/","rsync://mirror1.hs-esslingen.de/centos/"
+"EU","Germany","University of Bayreuth","http://www.uni-bayreuth.de/","http://ftp.uni-bayreuth.de/linux/CentOS/","","rsync://rsync.uni-bayreuth.de/CentOS/"
+"EU","Germany","WRZ - Weseler Rechenzentrum","http://www.wrz.de/","http://ftp.wrz.de/pub/CentOS/","https://ftp.wrz.de/pub/CentOS/","rsync://ftp.wrz.de/pub/CentOS/"
+"EU","Greece","Computer Center, University of Crete","http://www.cc.uoc.gr/","http://ftp.cc.uoc.gr/mirrors/linux/centos/","https://ftp.cc.uoc.gr/mirrors/linux/centos/","rsync://ftp.cc.uoc.gr/centos/"
+"EU","Greece","NTUA","http://www.ntua.gr/","http://ftp.ntua.gr/pub/linux/centos/","","rsync://ftp.ntua.gr/centos/"
+"EU","Hungary","BME","http://www.bme.hu/","http://ftp.bme.hu/centos/","",""
+"EU","Hungary","Governmental Information-Technology Development Agency","https://kifu.gov.hu/","http://mirror.niif.hu/centos/","https://mirror.niif.hu/centos/",""
+"EU","Hungary","Hungarian Meteorological Service","http://www.met.hu/","http://mirror.met.hu/centos/","",""
+"EU","Hungary","Lonyai (private mirror)","","http://centos.lonyai.com/centos/","",""
+"EU","Hungary","Quantum Mirror","https://quantum-mirror.hu/","http://quantum-mirror.hu/mirrors/pub/centos/","https://quantum-mirror.hu/mirrors/pub/centos/","rsync://quantum-mirror.hu/centos/"
+"EU","Iceland","Advania","http://www.advania.com/","http://centos.hysing.is/","https://centos.hysing.is/",""
+"EU","Iceland","Nýherji","http://www.nyherji.is/","http://centos.nyherji.is/","",""
+"EU","Iceland","Siminn","http://www.simnet.is/","http://www.fedora.is/CentOS/","https://www.fedora.is/CentOS/",""
+"EU","Ireland","HEAnet","http://www.heanet.ie/about/index.html","http://ftp.heanet.ie/pub/centos/","","rsync://ftp.heanet.ie/pub/centos/"
+"EU","Italy"," GARR","http://www.garr.it/","http://centos.mirror.garr.it/centos/","",""
+"EU","Italy","Prometeus","http://www.prometeus.net/","http://mirrors.prometeus.net/centos/","https://mirrors.prometeus.net/centos/",""
+"EU","Latvia","koyanet.lv","","http://centos.koyanet.lv/centos/","https://centos.koyanet.lv/centos/",""
+"EU","Latvia","Linux Center, University of Latvia","http://linux.edu.lv/index.php","http://centos.linux.edu.lv/","",""
+"EU","Lithuania","Cherry Servers","https://www.cherryservers.com/","http://mirror.cherryservers.com/centos/","",""
+"EU","Lithuania","Interneto vizija","http://www.serveriai.lt/","http://centos.mirror.serveriai.lt/","",""
+"EU","Lithuania","UAB Esnet","http://www.vpsnet.com/","http://mirror.vpsnet.com/centos/","https://mirror.vpsnet.com/centos/",""
+"EU","Luxembourg","Datacenter Luxembourg","https://www.datacenter.eu/","http://mirror.dclux.com/centos/","",""
+"EU","Luxembourg","root S.A","http://www.root.lu/","http://centos.mirror.root.lu/","",""
+"EU","Moldova","FedoraMD.org","http://www.fedora.md/","http://repo.fedora.md/centos/","https://repo.fedora.md/centos/",""
+"EU","Moldova","MivoCloud","https://www.mivocloud.com/","http://mirrors.mivocloud.com/centos/","","rsync://mirrors.mivocloud.com/centos/"
+"EU","Moldova","Trabia-Network","http://www.trabia.net/","http://mirror.as43289.net/centos/","","rsync://mirror.as43289.net/centos/"
+"EU","Netherlands"," packet.net","https://packet.net/","http://ams.edge.kernel.org/centos/","https://ams.edge.kernel.org/centos/",""
+"EU","Netherlands"," xTom","https://xtom.com/","http://mirrors.xtom.nl/centos/","",""
+"EU","Netherlands"," Leaseweb","https://www.leaseweb.com/","http://mirror.ams1.nl.leaseweb.net/centos/","https://mirror.ams1.nl.leaseweb.net/centos/","rsync://mirror.ams1.nl.leaseweb.net/centos/"
+"EU","Netherlands"," WD6.net","https://www.wd6.net/","http://mirror.wd6.net/centos/","https://mirror.wd6.net/centos/","rsync://mirror.wd6.net/centos/"
+"EU","Netherlands","1000mbps.com","http://www.1000mbps.com/","http://mirror.1000mbps.com/centos/","",""
+"EU","Netherlands","Amsio","http://www.amsio.com/","http://mirror.amsiohosting.net/centos.org/","","rsync://mirror.amsiohosting.net/CentOS/"
+"EU","Netherlands","CJ2 Hosting & Development","http://www.cj2.nl/","http://mirror.cj2.nl/centos/","",""
+"EU","Netherlands","Dataone Datacenters","http://www.dataone.nl/","http://mirror.dataone.nl/centos/","","rsync://mirror.dataone.nl/centos/"
+"EU","Netherlands","DataPacket","https://datapacket.com/","http://mirror.nl.datapacket.com/centos/","",""
+"EU","Netherlands","Delft University of Technology","http://www.tudelft.nl/","http://ftp.tudelft.nl/centos.org/","",""
+"EU","Netherlands","Hostnet bv","https://www.hostnet.nl/","http://mirror.hostnet.nl/centos/","https://mirror.hostnet.nl/centos/",""
+"EU","Netherlands","IPserv.nl","http://www.ipserv.nl/","http://mirror.ipserv.nl/centos/","",""
+"EU","Netherlands","LiteServer","https://www.liteserver.nl/","http://centos.mirror.liteserver.nl/","https://centos.mirror.liteserver.nl/","rsync://centos.mirror.liteserver.nl/centos/"
+"EU","Netherlands","mijn.host","https://mijn.host/","http://mirror.mijn.host/centos/","https://mirror.mijn.host/centos/",""
+"EU","Netherlands","Netrouting","http://www.netrouting.com/","http://mirror.netrouting.net/centos/","",""
+"EU","Netherlands","NFOrce Entertainment B.V.","http://www.nforce.com/","http://mirror.nforce.com/pub/linux/CentOS/","https://mirror.nforce.com/pub/linux/CentOS/",""
+"EU","Netherlands","NLUUG","http://www.nluug.nl/","http://ftp.nluug.nl/ftp/pub/os/Linux/distr/CentOS/","","rsync://ftp.nluug.nl/centoslinux/"
+"EU","Netherlands","Oxilion","http://www.oxilion.nl","http://mirror.oxilion.nl/centos/","https://mirror.oxilion.nl/centos/","rsync://mirror.oxilion.nl/centos/"
+"EU","Netherlands","Previder BV","http://www.previder.nl/","http://mirror.previder.nl/centos/","",""
+"EU","Netherlands","Prolocation B.V.","http://www.prolocation.net/","http://mirror.prolocation.net/centos/","",""
+"EU","Netherlands","Proserve","http://www.proserve.nl/","http://mirror.proserve.nl/centos/","",""
+"EU","Netherlands","Quentin Schoemaker","http://www.schoemaker.systems/","http://mirror.schoemaker.systems/centos/","","rsync://mirror.schoemaker.systems/centos/"
+"EU","Netherlands","Serverion","https://www.serverion.com/","http://mirror.serverion.com/centos/","https://mirror.serverion.com/centos/","rsync://mirror.serverion.com/centos/"
+"EU","Netherlands","Serverius","https://serverius.net/","http://mirror.serverius.net/centos/","","rsync://mirror.serverius.net/centos/"
+"EU","Netherlands","SIT Internetdiensten","http://www.sitbv.nl/","http://mirror.sitbv.nl/centos/","","rsync://mirror.sitbv.nl/centos/"
+"EU","Netherlands","Supportex","http://supportex.net/","http://mirrors.supportex.net/centos/","",""
+"EU","Netherlands","TransIP BV","http://www.transip.nl/","http://centos.mirror.transip.nl/","","rsync://centos.mirror.transip.nl/centos/"
+"EU","Netherlands","Triple IT","http://www.triple-it.nl/","http://centos.mirror.triple-it.nl/","",""
+"EU","Netherlands","University of Utrecht","http://www.cs.uu.nl/","http://linux.cs.uu.nl/centos/","","rsync://rsync.cs.uu.nl/CentOS/"
+"EU","Netherlands","Usenet.Farm","https://usenet.farm/","http://mirror.usenet.farm/centos/","https://mirror.usenet.farm/centos/","rsync://mirror.usenet.farm/centos/"
+"EU","Netherlands","Vimexx","https://www.vimexx.nl/","http://mirror.vimexx.nl/centos/","",""
+"EU","Netherlands","Weppel","http://www.weppel.nl","http://mirror.ehv.weppel.nl/centos/","https://mirror.ehv.weppel.nl/centos/","rsync://mirror.ehv.weppel.nl/centos/"
+"EU","Netherlands","WideXS","http://www.widexs.nl","http://mirror.widexs.nl/ftp/pub/os/Linux/distr/centos/","",""
+"EU","North Macedonia","Macedonian Telecom","http://www.t-home.mk/","http://mirror.t-home.mk/centos/","","rsync://mirror.t-home.mk/centos/"
+"EU","North Macedonia","one.Vip","https://www.vip.mk/","http://mirror.onevip.mk/centos/","","rsync://mirror.onevip.mk/centos/"
+"EU","Poland"," Horyzont Technologie Internetowe Sp. z o.o.","http://www.horyzont.net/","http://centos2.hti.pl/","",""
+"EU","Poland","Academic Center of Computer Science","http://aci.com.pl/","http://ftp.man.szczecin.pl/pub/Linux/centos/","",""
+"EU","Poland","AGH University of Science and Technology","http://www.agh.edu.pl/","http://ftp.agh.edu.pl/centos/","",""
+"EU","Poland","Horyzont Technologie Internetowe Sp. z o.o.","http://www.horyzont.net/","http://centos1.hti.pl/","",""
+"EU","Poland","ICM Warsaw","http://www.icm.edu.pl/","http://ftp.icm.edu.pl/pub/Linux/distributions/centos/","https://ftp.icm.edu.pl/pub/Linux/distributions/centos/","rsync://ftp.icm.edu.pl/pub/Linux/distributions/centos/"
+"EU","Poland","Kielce Technology Park","http://www.technopark.kielce.pl/","http://mirror-pl.kielcetechnologypark.net/centos/","",""
+"EU","Poland","LiveNet Sp. z o.o.","http://www.slaskdatacenter.pl/","http://centos.slaskdatacenter.com/","",""
+"EU","Poland","Opole University of Technology","http://www.po.opole.pl/","http://centos.po.opole.pl/","",""
+"EU","Poland","pbone.net","http://www.pbone.net/","http://ftp.pbone.net/pub/centos/","","rsync://ftp.pbone.net/centos/"
+"EU","Poland","Poznan Supercomputing and Networking Center","http://www.psnc.pl/","http://ftp.man.poznan.pl/pub/centos/","",""
+"EU","Poland","Szczecin University of Technology","http://www.ps.pl/","http://ftp.ps.pl/pub/Linux/CentOS/","https://ftp.ps.pl/pub/Linux/CentOS/",""
+"EU","Poland","Vectra","http://www.vectra.pl/","http://ftp.vectranet.pl/centos/","","rsync://ftp.vectranet.pl/centos/"
+"EU","Poland","Wroclaw Centre for Networking and Supercomputing","http://www.wcss.pl/en/","http://ftp.wcss.pl/pub/linux/centos/","","rsync://ftp.wcss.pl/ftp/linux/centos/"
+"EU","Portugal","hashpower","https://hashpower.pt/","http://mirrors.pt/centos/","https://mirrors.pt/centos/","rsync://mirrors.pt/centos/"
+"EU","Portugal","Instituto Superior de Engenharia de Coimbra","http://www.isec.pt/","http://mirror.isec.pt/CentOS/","",""
+"EU","Portugal","ptisp","http://www.ptisp.pt/","http://centos.mirror.ptisp.pt/centos/","",""
+"EU","Portugal","Univ. of Coimbra, Informatics Eng. Dept.","http://www.dei.uc.pt/","http://ftp.dei.uc.pt/pub/linux/CentOS/","",""
+"EU","Portugal","University of Porto","http://www.up.pt/","http://mirrors.up.pt/pub/centos/","https://mirrors.up.pt/pub/centos/","rsync://mirrors.up.pt/pub/centos/"
+"EU","Romania"," nxtHost","https://www.nxthost.com/","http://mirrors.nxthost.com/centos/","https://mirrors.nxthost.com/centos/","rsync://mirrors.nxthost.com/centos/"
+"EU","Romania","CH-Center Hosting","http://www.ch-center.com/","http://mirrors.ch-center.com/centos/","",""
+"EU","Romania","Chroot","https://www.chroot.ro/","http://mirrors.chroot.ro/centos/","https://mirrors.chroot.ro/centos/",""
+"EU","Romania","efectRO","https://www.efect.ro/","http://mirror.efect.ro/centos/","https://mirror.efect.ro/centos/","rsync://mirror.efect.ro/centos/"
+"EU","Romania","Hostico","https://hostico.ro/","http://mirrors.hostico.ro/centos/","https://mirrors.hostico.ro/centos/",""
+"EU","Romania","Hosting Solutions","http://www.hostingsolutions.ro/","http://mirrors.hostingromania.ro/CentOS/","",""
+"EU","Romania","LayerBridge SRL","https://www.layerbridge.com/","http://mirrors.layerbridge.com/centos/","https://mirrors.layerbridge.com/centos/","rsync://mirrors.layerbridge.com/CentOS/"
+"EU","Romania","M247 Europe","http://www.m247.ro/","http://mirrors.m247.ro/centos/","","rsync://mirrors.m247.ro/centos/"
+"EU","Romania","NAV Communications","https://www.nav.ro/","http://mirrors.nav.ro/centos/","https://mirrors.nav.ro/centos/","rsync://mirrors.nav.ro/centos/"
+"EU","Romania","Pidgin Host","http://www.pidginhost.com/","http://mirrors.pidginhost.com/centos/","https://mirrors.pidginhost.com/centos/","rsync://mirrors.pidginhost.com/CentOS/"
+"EU","Romania","Prime Telecom","https://www.primetelecom.ro/","http://mirrors.primetelecom.ro/centos/","","rsync://mirrors.primetelecom.ro/centos/"
+"EU","Romania","Universitatea Aurel Vlaicu","http://www.uav.ro/","http://mirrors.uav.ro/centos/","",""
+"EU","Romania","UPC Romania","http://www.upc.ro/","http://ftp.upcnet.ro/distros/centos/","",""
+"EU","Romania","Xservers.ro","http://www.xservers.ro/","http://mirrors.xservers.ro/centos/","",""
+"EU","Russia","Awanti ISP","http://www.awanti.com/","http://mirror.awanti.com/centos/","",""
+"EU","Russia","Corbina Telecom","http://www.corbina.net/","http://mirror.corbina.net/pub/Linux/centos/","",""
+"EU","Russia","docker.ru","https://docker.ru/","http://mirror.docker.ru/centos/","https://mirror.docker.ru/centos/",""
+"EU","Russia","filanco.ru","https://filanco.ru/","http://mirrors.datahouse.ru/centos/","https://mirrors.datahouse.ru/centos/",""
+"EU","Russia","ia64-linux.org","http://ia64-linux.org/","http://mirror.linux-ia64.org/centos/","https://mirror.linux-ia64.org/centos/",""
+"EU","Russia","ICT of SB RAS","http://www.ict.nsc.ru/","http://ftp.nsc.ru/pub/centos/","https://ftp.nsc.ru/pub/centos/","rsync://ftp.nsc.ru/centos/"
+"EU","Russia","Logol Hosting Company","http://logol.ru/","http://mirror.logol.ru/centos/","","rsync://mirror.logol.ru/centos/"
+"EU","Russia","POWERNET ISP","http://www.powernet.com.ru/","http://mirrors.powernet.com.ru/centos/","","rsync://mirrors.powernet.com.ru/pub/centos/"
+"EU","Russia","RECONN LLC","https://reconn.ru/","http://mirror.reconn.ru/centos/","","rsync://mirror.reconn.ru/centos/"
+"EU","Russia","RosBusinessConsulting","http://www.rbc.ru/","http://centos-mirror.rbc.ru/pub/centos/","",""
+"EU","Russia","Truenetwork","https://truenetwork.ru/","http://mirror.truenetwork.ru/centos/","","rsync://mirror.truenetwork.ru/centos/"
+"EU","Russia","Tver State University","","http://mirror.tversu.ru/centos/","",""
+"EU","Russia","Yandex","http://www.yandex.ru/","http://mirror.yandex.ru/centos/","","rsync://mirror.yandex.ru/centos/"
+"EU","Serbia","Petar Marić, Faculty of Technical Sciences, University of Novi Sad","http://www.ftn.uns.ac.rs/","http://centos.petarmaric.com/","",""
+"EU","Serbia","School of Electrical Engineering's Computing Centre","http://www.etf.bg.ac.rs/en","http://mirror.etf.bg.ac.rs/centos/","","rsync://mirror.etf.bg.ac.rs/centos/"
+"EU","Slovakia","Energotel a.s","http://www.energotel.sk/","http://ftp.energotel.sk/pub/linux/centos/","",""
+"EU","Slovakia","Rainside","http://www.rainside.sk/","http://tux.rainside.sk/centos/","",""
+"EU","Slovakia","University of P.J.Safarik","http://www.upjs.sk/","http://ftp.upjs.sk/pub/centos/","https://ftp.upjs.sk/pub/centos/",""
+"EU","Slovenia","ARNES","http://www.arnes.si/","http://ftp.arnes.si/pub/mirrors/centos.org/","https://ftp.arnes.si/pub/mirrors/centos.org/",""
+"EU","Slovenia","T-2 d.o.o.","http://www.t-2.net/","http://centos.t-2.net/","",""
+"EU","Slovenia","xGroup","http://xgroup.si","http://mirrors.xgroup.si/CentOS/","",""
+"EU","Spain","AireNetworks","http://www.airenetworks.es/","http://mirror.airenetworks.es/CentOS/","","rsync://mirror.airenetworks.es/CentOS/"
+"EU","Spain","Centro Inform. Cientifico de Andalucia","http://www.cica.es/","http://ftp.cica.es/CentOS/","https://ftp.cica.es/CentOS/","rsync://rsync.cica.es/CentOS/"
+"EU","Spain","CSUC","http://www.csuc.cat/","http://ftp.csuc.cat/centos/","",""
+"EU","Spain","GRUPO TEDRA","https://www.tedra.es","http://mirror.tedra.es/CentOS/","",""
+"EU","Spain","Hospedados.com & GadIX.com","http://www.gadix.com/","http://mirror.gadix.com/centos/","",""
+"EU","Spain","IRTIC/Universidad de Valencia","http://irtic.uv.es/","http://mirror.uv.es/mirror/CentOS/","","rsync://mirror.uv.es/CentOS/"
+"EU","Spain","LibreLabUCM","https://librelabucm.org/","http://mirror.librelabucm.org/CentOS/","https://mirror.librelabucm.org/CentOS/",""
+"EU","Spain","Nixval Datacenter","http://www.nixval.com/","http://repo.nixval.com/CentOS/","","rsync://repo.nixval.com/CentOS/"
+"EU","Spain","Oficina de Software Libre do CIXUG","http://www.cixug.es/osl/oficina/","http://ftp.cixug.es/CentOS/","",""
+"EU","Spain","RedIRIS, Spanish Research and Education Network","https://www.rediris.es/","http://ftp.rediris.es/mirror/CentOS/","https://ftp.rediris.es/mirror/CentOS/","rsync://ftp.rediris.es/centos/"
+"EU","Spain","Universidad de Malaga","http://www.uma.es/","http://ftp.uma.es/mirror/CentOS/","",""
+"EU","Spain","Universidade de Vigo","http://www.uvigo.gal","http://centos.uvigo.es/","",""
+"EU","Sweden","Ember AB","http://www.ember.se/","http://ftp.ember.se/centos/","",""
+"EU","Sweden","GleSYS AB","https://glesys.se/","http://mirrors.glesys.net/CentOS/","","rsync://mirrors.glesys.net/CentOS/"
+"EU","Sweden","Halmstad University","http://www.hh.se/","http://mirror.hh.se/centos/","",""
+"EU","Sweden","HostUp","https://hostup.org/","http://mirror.hostup.org/centos/","https://mirror.hostup.org/centos/","rsync://mirror.hostup.org/centos/"
+"EU","Sweden","Lysator","http://www.lysator.liu.se/english.html","http://ftp.lysator.liu.se/pub/CentOS/","https://ftp.lysator.liu.se/pub/CentOS/","rsync://ftp.lysator.liu.se/pub/CentOS/"
+"EU","Sweden","National Supercomputer Centre, Linkoping University","https://www.nsc.liu.se/","http://mirror.nsc.liu.se/CentOS/","https://mirror.nsc.liu.se/CentOS/","rsync://mirror.nsc.liu.se/CentOS/"
+"EU","Sweden","Zetup AB","http://www.zetup.se/","http://mirror.zetup.net/CentOS/","https://mirror.zetup.net/CentOS/",""
+"EU","Switzerland","Adfinis SyGroup AG","https://adfinis-sygroup.ch/","http://pkg.adfinis-sygroup.ch/centos/","https://pkg.adfinis-sygroup.ch/centos/",""
+"EU","Switzerland","CERN","http://cern.ch/","http://linuxsoft.cern.ch/centos/","https://linuxsoft.cern.ch/centos/","rsync://linuxsoft.cern.ch/centos/"
+"EU","Switzerland","Init7 (Schweiz) AG","https://www.init7.net/","http://mirror.init7.net/centos/","https://mirror.init7.net/centos/",""
+"EU","Turkey"," Guzel Hosting","https://www.guzel.net.tr/","http://kozyatagi.mirror.guzel.net.tr/centos/","https://kozyatagi.mirror.guzel.net.tr/centos/","rsync://kozyatagi.mirror.guzel.net.tr/centos/"
+"EU","Turkey"," Guzel Hosting","https://www.guzel.net.tr/","http://denizli.centos-mirror.guzel.net.tr/","https://denizli.centos-mirror.guzel.net.tr/","rsync://denizli.centos-mirror.guzel.net.tr/centos/"
+"EU","Turkey","Bogazici University","http://www.boun.edu.tr/","http://repo.boun.edu.tr/centos/","",""
+"EU","Turkey","Bursabil Teknoloji A.S.","https://bursabil.com.tr/","http://mirror.bursabil.com.tr/centos/","https://mirror.bursabil.com.tr/centos/",""
+"EU","Turkey","DH Bilisim Teknolojileri Ltd.","https://www.domainhizmetleri.com/","http://mirror.domainhizmetleri.com/centos/","https://mirror.domainhizmetleri.com/centos/",""
+"EU","Turkey","Fibersunucu Internet Hizmetleri","http://www.fibersunucu.com.tr/","http://mirror.fibersunucu.com.tr/centos/","",""
+"EU","Turkey","Guzel Hosting","https://www.guzel.net.tr/","http://istanbul.centos-mirror.guzel.net.tr/","https://istanbul.centos-mirror.guzel.net.tr/","rsync://istanbul.centos-mirror.guzel.net.tr/centos/"
+"EU","Turkey","Hosting","https://www.hosting.com.tr/","http://mirror.hosting.com.tr/centos/","",""
+"EU","Turkey","iDeal Hosting ","https://www.idealhosting.net.tr/","http://mirror.idealhosting.net.tr/centos/","https://mirror.idealhosting.net.tr/centos/","rsync://mirror.idealhosting.net.tr/centos/"
+"EU","Turkey","Istanbul Technical University","http://www.itu.edu.tr/","http://ftp.itu.edu.tr/Mirror/CentOS/","https://ftp.itu.edu.tr/Mirror/CentOS/",""
+"EU","Turkey","MUVHost - MUV Bilisim ve Telekomunikasyon Hiz. Ltd.","https://www.muvhost.com/","http://mirror.muvhost.com/centos/","",""
+"EU","Turkey","Natro Hosting","https://www.natro.com/","http://mirror.natro.com/centos/","https://mirror.natro.com/centos/","rsync://mirror.natro.com/centos/"
+"EU","Turkey","Netdirekt A.S.","https://netdirekt.com.tr/","http://mirror.netdirekt.com.tr/centos/","https://mirror.netdirekt.com.tr/centos/",""
+"EU","Turkey","Netinternet","https://netinternet.com.tr/","http://mirror.ni.net.tr/centos/","",""
+"EU","Turkey","NiobeWeb Hosting","https://www.niobeweb.net/","http://mirror.niobeweb.net/centos/","",""
+"EU","Turkey","PlusWeb","http://www.plusweb.com.tr/","http://mirror.plusweb.com.tr/centos/","",""
+"EU","Turkey","PremierDC","http://www.sh.com.tr","http://mirror.sh.com.tr/centos/","https://mirror.sh.com.tr/centos/",""
+"EU","Turkey","Provider Data Center Services","https://provider.com.tr/","http://mirror.provider.com.tr/centos/","https://mirror.provider.com.tr/centos/",""
+"EU","Turkey","Radore","http://radore.com/","http://mirror.radoreservers.com/centos/","",""
+"EU","Turkey","Saglayici","http://www.saglayici.com/","http://mirror.saglayici.com/centos/","",""
+"EU","Turkey","Turhost","https://www.turhost.com/","http://centos.turhost.com/","",""
+"EU","Turkey","Turkish Linux User's Association","http://www.linux.org.tr/ ","http://ftp.linux.org.tr/centos/","","rsync://ftp.linux.org.tr/centos/"
+"EU","Turkey","Vargonen","https://vargonen.com/","http://centos.vargonen.com/centos/","",""
+"EU","Turkey","VeriTeknik I.T.","http://www.veriteknik.com/","http://mirror.rackdc.com/CentOS/","",""
+"EU","Ukraine","BestHosting","http://besthosting.ua/","http://mirror.besthosting.ua/","","rsync://mirror.besthosting.ua/CentOS/"
+"EU","Ukraine","BYTES.ua","https://bytes.ua/","http://mirrors.bytes.ua/centos/","",""
+"EU","Ukraine","Mirohost","http://mirohost.net/","http://mirror.mirohost.net/centos/","",""
+"EU","Ukraine","Omnilance Ltd","http://omnilance.com/","http://centos.mirror.omnilance.com/","",""
+"EU","Ukraine","Vinnytsia IP-Connect","http://ip-connect.vn.ua/","http://centos.ip-connect.vn.ua/","https://centos.ip-connect.vn.ua/","rsync://centos.ip-connect.vn.ua/centos/"
+"EU","United Kingdom"," NSEC","http://www.nsec.pt/","http://uk.mirror.nsec.pt/centos/","",""
+"EU","United Kingdom","AS29550.net","http://mirror.as29550.net/","http://mirror.as29550.net/mirror.centos.org/","",""
+"EU","United Kingdom","Bytemark","http://www.bytemark.co.uk/","http://mirror.bytemark.co.uk/centos/","https://mirror.bytemark.co.uk/centos/","rsync://mirror.bytemark.co.uk/centos/"
+"EU","United Kingdom","Clouvider Limited","https://www.clouvider.co.uk/","http://mirrors.clouvider.net/CentOS/","",""
+"EU","United Kingdom","Coreix","http://www.coreix.net/","http://mirrors.coreix.net/centos/","",""
+"EU","United Kingdom","CWCS Managed Hosting","https://www.cwcs.co.uk/","http://mirror.cwcs.co.uk/centos/","",""
+"EU","United Kingdom","Freethought Internet","https://www.freethought-internet.co.uk/","http://mirror.freethought-internet.co.uk/centos/","https://mirror.freethought-internet.co.uk/centos/","rsync://mirror.freethought-internet.co.uk/centos/"
+"EU","United Kingdom","Goscomb Technologies Limited","http://www.goscomb.net/","http://mirror.sov.uk.goscomb.net/centos/","",""
+"EU","United Kingdom","Imperial College London","http://www.imperial.ac.uk/","http://mozart.ee.ic.ac.uk/CentOS/","",""
+"EU","United Kingdom","Melbourne Server Hosting","https://melbourne.co.uk/","http://mirrors.melbourne.co.uk/centos/","https://mirrors.melbourne.co.uk/centos/","rsync://mirrors.melbourne.co.uk/CentOS/"
+"EU","United Kingdom","NetWeaver","https://www.netweaver.uk/","http://mirror.netweaver.uk/centos/","https://mirror.netweaver.uk/centos/",""
+"EU","United Kingdom","Nublue Ltd","http://www.nublue.co.uk","http://centos.mirrors.nublue.co.uk/","",""
+"EU","United Kingdom","Oxford University Computing Services","http://www.oucs.ox.ac.uk/","http://mirror.ox.ac.uk/sites/mirror.centos.org/","",""
+"EU","United Kingdom","Pulsant Ltd.","http://www.pulsant.co.uk/","http://centos.mirroring.pulsant.co.uk/","",""
+"EU","United Kingdom","UK Mirror Service - Univ. Kent","http://www.mirrorservice.org/","http://www.mirrorservice.org/sites/mirror.centos.org/","https://www.mirrorservice.org/sites/mirror.centos.org/","rsync://rsync.mirrorservice.org/mirror.centos.org/"
+"EU","United Kingdom","UKFast","http://www.ukfast.co.uk/","http://mirrors.ukfast.co.uk/sites/ftp.centos.org/","https://mirrors.ukfast.co.uk/sites/ftp.centos.org/","rsync://mirrors.ukfast.co.uk/ftp.centos.org/"
+"EU","United Kingdom","Vorboss Ltd","http://www.vorboss.com/","http://mirror.vorboss.net/centos/","",""
+"EU","United Kingdom","XILO Communications Ltd.","http://www.xilo.net/","http://mirror.mhd.uk.as44574.net/mirror.centos.org/","",""
+"Greenland","","Tele Greenland","http://www.tele.gl","http://mirror.greennet.gl/centos/","",""
+"Middle East","Iraq","Al-Jazeera Al-Arabiya","http://jt.iq/","http://mirror.centos.jt.iq/","",""
+"Middle East","Iraq","Earthlink Telecommunications","http://earthlink.iq/","http://mirror.earthlink.iq/centos/","",""
+"Middle East","Israel"," uPress Inc","https://www.upress.io/","http://rep-centos-il.upress.io/","",""
+"Middle East","Israel","Active.Cloud","https://activecloud.co.il/","http://centos.activecloud.co.il/","",""
+"Middle East","Israel","Interhost Networks Ltd","http://www.interhost.co.il/","http://centos.interhost.net.il/","",""
+"Middle East","Israel","Israel Internet Association (ISOC-IL)","http://www.isoc.org.il/","http://mirror.isoc.org.il/pub/centos/","https://mirror.isoc.org.il/pub/centos/",""
+"Middle East","Israel","SPD Hosting LTD","http://www.spd.co.il/","http://centos.spd.co.il/","",""
+"Middle East","Oman","Sultan Qaboos University","http://www.squ.edu.om/","http://mirror.squ.edu.om/centos/","",""
+"Middle East","Saudi Arabia","KACST-ISU","https://www.isu.net.sa/","http://mirrors.isu.net.sa/pub/centos/","",""
+"Middle-East","Afghanistan","Afghan Wireless Communications Company","https://www.afghan-wireless.com/","http://mirrors.afghan-wireless.com/centos/","https://mirrors.afghan-wireless.com/centos/",""
+"Middle-East","Israel","HQserv Communication Solutions","https://www.hqserv.co.il/","http://centos.hqserv.co.il/","",""
+"North America","Puerto Rico","University of Puerto Rico","https://www.upr.edu/","http://mirrors.upr.edu/centos/","https://mirrors.upr.edu/centos/","rsync://mirrors.upr.edu/centos/"
+"Oceania","Australia","AARNet","http://mirror.aarnet.edu.au/","http://mirror.aarnet.edu.au/pub/centos/","https://mirror.aarnet.edu.au/pub/centos/","rsync://mirror.aarnet.edu.au/centos/"
+"Oceania","Australia","Aus Net Servers Australia Pty Ltd","https://www.ausnetservers.com.au/","http://centos.mirror.ausnetservers.net.au/","",""
+"Oceania","Australia","Colocation Australia Pty Ltd","http://coloau.com.au/","http://mirror.nsw.coloau.com.au/centos/","",""
+"Oceania","Australia","Colocity","http://www.colocity.com/","http://mirror.colocity.com/centos/","",""
+"Oceania","Australia","Digital Pacific","http://www.digitalpacific.com.au/","http://centos.mirror.digitalpacific.com.au/","","rsync://mirror.digitalpacific.com.au/centos/"
+"Oceania","Australia","Hostcentral","http://www.hostcentral.net.au/","http://mirror.as24220.net/pub/centos/","","rsync://mirror.as24220.net/centos/"
+"Oceania","Australia","Intergrid","https://intergrid.com.au/","http://mirror.intergrid.com.au/centos/","",""
+"Oceania","Australia","Internode","http://www.internode.on.net/","http://mirror.internode.on.net/pub/centos/","",""
+"Oceania","Australia","Over The Wire","http://www.overthewire.com.au/","http://mirror.overthewire.com.au/pub/centos/","","rsync://mirror.overthewire.com.au/centos/"
+"Oceania","Australia","Servers Australia Pty Ltd.","http://www.serversaustralia.com.au/","http://centos.mirror.serversaustralia.com.au/","",""
+"Oceania","Australia","Swinburne University of Technology","http://www.swin.edu.au/","http://ftp.swin.edu.au/centos/","","rsync://ftp.swin.edu.au/centos/"
+"Oceania","Australia","VentraIP Australia","https://ventraip.com.au/","http://mirror.ventraip.net.au/centos/","https://mirror.ventraip.net.au/centos/",""
+"Oceania","New Zealand","Free Software Mirror Group","https://fsmg.org.nz/","http://mirror.fsmg.org.nz/centos/","https://mirror.fsmg.org.nz/centos/","rsync://mirror.fsmg.org.nz/centos/"
+"Oceania","New Zealand","Theo M.","https://theom.nz/","http://centos.mirrors.theom.nz/","https://centos.mirrors.theom.nz/","rsync://rsync.mirrors.theom.nz/centos/"
+"Oceania","New Zealand","University of Canterbury","http://canterbury.ac.nz/","http://ucmirror.canterbury.ac.nz/linux/CentOS/","",""
+"Oceania","New Zealand","wicks.co.nz","http://wicks.co.nz/","http://ftp.wicks.co.nz/pub/linux/dist/centos/","","rsync://ftp.wicks.co.nz/pub/linux/dist/centos/"
+"Oceania","New Zealand","WorldxChange Communications Ltd","http://wxc.co.nz/","http://mirror.xnet.co.nz/pub/centos/","",""
+"South America","Argentina","Sysarmy","https://sysarmy.com/","http://mirrors.eze.sysarmy.com/centos/","https://mirrors.eze.sysarmy.com/centos/",""
+"South America","Argentina","Zero.com.ar","https://www.zero.com.ar/","http://centos.zero.com.ar/centos/","",""
+"South America","Bolivia","MegaLink","http://www.megalink.com/","http://mirror.megalink.com/centos/","https://mirror.megalink.com/centos/",""
+"South America","Brazil","Brisanet Internet","http://www.brisanet.com.br/","http://centos.brisanet.com.br/","",""
+"South America","Brazil","College of Computing (FACOM/UFMS)","http://www.facom.ufms.br/","http://mirror.facom.ufms.br/centos/","",""
+"South America","Brazil","Globo.com","http://www.globo.com/","http://mirror.globo.com/centos/","https://mirror.globo.com/centos/",""
+"South America","Brazil","Hostdime Brazil","http://www.hostdime.com.br/","http://mirror-centos-jpa.hostdime.com.br/centos/","",""
+"South America","Brazil","Instituto Federal do Espirito Santo","http://www.ci.ifes.edu.br/","http://mirror.ci.ifes.edu.br/centos/","https://mirror.ci.ifes.edu.br/centos/",""
+"South America","Brazil","ITS Telecomunicacoes","http://www.itsbrasil.net/","http://centos.itsbrasil.net/","https://centos.itsbrasil.net/","rsync://centos.itsbrasil.net/centos/"
+"South America","Brazil","State University of Campinas - UNICAMP","http://www.ccuec.unicamp.br/","http://ftp.unicamp.br/pub/centos/","","rsync://ftp.unicamp.br/centos/"
+"South America","Brazil","Turbozone Internet"," https://www.turbozoneinternet.com.br","http://mirror.turbozoneinternet.net.br/centos/","https://mirror.turbozoneinternet.net.br/centos/","rsync://mirror.turbozoneinternet.net.br/centos/"
+"South America","Brazil","UFSCar - Federal University of Sao Carlos","http://www.sin.ufscar.br/","http://mirror.ufscar.br/centos/","",""
+"South America","Brazil","Universidade Federal do Amazonas","http://ufam.edu.br/","http://mirror.ufam.edu.br/centos/","",""
+"South America","Brazil","Universidade Federal do Espírito Santo","http://www.ufes.br/","http://centos.ufes.br/","","rsync://centos.ufes.br/centos/"
+"South America","Chile","Netglobalis S.A.","http://www.netglobalis.net/","http://mirror.netglobalis.net/centos/","",""
+"South America","Chile","Orbyta S.A.","http://www.orbyta.com/","http://mirror.orbyta.com/","",""
+"South America","Chile","Universidad de La Frontera","https://www.ufro.cl/","http://mirror.ufro.cl/centos/","https://mirror.ufro.cl/centos/","rsync://mirror.ufro.cl/centos/"
+"South America","Chile","Universidad Tecnica Federico Santa Maria","http://portal.inf.utfsm.cl/","http://ftp.inf.utfsm.cl/pub/Linux/CentOS/","",""
+"South America","Colombia","EdgeUNO","https://www.edgeuno.com/","https://mirror.edgeuno.net/centos/","https://mirror.edgeuno.net/centos/",""
+"South America","Colombia","Universidad del Magdalena","http://www.unimagdalena.edu.co","http://mirror.unimagdalena.edu.co/centos/","","rsync://mirror.unimagdalena.edu.co/centos/"
+"South America","Costa Rica","University of Costa Rica","http://www.ucr.ac.cr/","http://mirrors.ucr.ac.cr/centos/","https://mirrors.ucr.ac.cr/centos/","rsync://mirrors.ucr.ac.cr/centos/"
+"South America","Ecuador","Consorcio Ecuatoriano para el Desarrollo de Internet Avanzado","http://www.cedia.org.ec/","http://mirror.cedia.org.ec/centos/","https://mirror.cedia.org.ec/centos/","rsync://mirror.cedia.org.ec/centos/"
+"South America","Ecuador","Escuela Politécnica Nacional","http://www.epn.edu.ec/","http://mirror.epn.edu.ec/centos/","https://mirror.epn.edu.ec/centos/",""
+"South America","Ecuador","ESPOCH (Escuela Superior Politécnica de Chimborazo)","http://www.espoch.edu.ec/","http://mirror.espoch.edu.ec/centos/","https://mirror.espoch.edu.ec/centos/","rsync://mirror.espoch.edu.ec/centos/"
+"South America","Ecuador","Universidad Estatal de Bolivar","http://www.ueb.edu.ec/","http://mirror.ueb.edu.ec/centos/","",""
+"South America","Ecuador","Universidad Técnica de Ambato, Tungurahua","http://www.uta.edu.ec/","http://mirror.uta.edu.ec/centos/","https://mirror.uta.edu.ec/centos/","rsync://mirror.uta.edu.ec/centos/"
+"South America","Paraguay","Centro Nacional de Computación","https://www.cnc.una.py/","http://centos.mirror.py/centos/","",""
+"South America","Uruguay","Facultad de Derecho, UdelaR","https://www.fder.edu.uy/","http://espejito.fder.edu.uy/centos/","https://espejito.fder.edu.uy/centos/","rsync://espejito.fder.edu.uy/centos/"
+"US","","Facebook","https://www.facebook.com/","http://mirror.facebook.net/centos/","","rsync://mirror.facebook.net/centos/"
+"US","","Oregon State University","http://osuosl.org/","http://ftp.osuosl.org/pub/centos/","","rsync://ftp.osuosl.org/centos/"
+"US","","Rackspace","http://www.rackspace.com/","http://mirror.rackspace.com/CentOS/","",""
+"US","AK","Research Computing Systems","https://www.gi.alaska.edu/research-computing-systems","http://mirrors.rcs.alaska.edu/centos/","",""
+"US","AL","Teklinks","http://teklinks.com/","http://mirror.teklinks.com/centos/","",""
+"US","AZ","1GServers","http://www.1gservers.com/","http://centos-distro.1gservers.com/","https://centos-distro.1gservers.com/","rsync://centos-distro.1gservers.com/files/"
+"US","AZ","Rad Web Hosting","https://radwebhosting.com/","http://mirrors.radwebhosting.com/centos/","https://mirrors.radwebhosting.com/centos/","rsync://mirrors.radwebhosting.com/centos/"
+"US","AZ","Spry Servers","https://www.spryservers.net","http://mirror.phx1.us.spryservers.net/centos/","https://mirror.phx1.us.spryservers.net/centos/","rsync://mirror.phx1.us.spryservers.net/centos/"
+"US","AZ","University of Arizona","https://www.arizona.edu/","http://mirror.arizona.edu/centos/","https://mirror.arizona.edu/centos/","rsync://mirror.arizona.edu/centos/"
+"US","CA"," Leaseweb","https://www.leaseweb.com/","http://mirror.sfo12.us.leaseweb.net/centos/","https://mirror.sfo12.us.leaseweb.net/centos/","rsync://mirror.sfo12.us.leaseweb.net/centos/"
+"US","CA"," ServerForge","https://serverforge.org","http://mirror.centos.lax1.serverforge.org/","https://mirror.centos.lax1.serverforge.org/",""
+"US","CA"," LayerHost","https://www.layerhost.com/","http://repos.lax.layerhost.com/centos/","","rsync://repos.lax.layerhost.com/centos/"
+"US","CA"," xTom","https://xtom.com/","http://mirrors.xtom.com/centos/","https://mirrors.xtom.com/centos/",""
+"US","CA","CodecCloud","https://www.hkserversolution.com/","http://mirrors.codec-cluster.org/centos/","https://mirrors.codec-cluster.org/centos/",""
+"US","CA","Energy Sciences Network","http://www.es.net/","http://linux.mirrors.es.net/centos/","","rsync://linux.mirrors.es.net/centos/"
+"US","CA","Fast Serv Networks, LLC","http://www.fastserv.com/web/","http://mirror.san.fastserv.com/pub/linux/centos/","",""
+"US","CA","FilePlanet.com","http://www.fileplanet.com/","http://mirror.fileplanet.com/centos/","",""
+"US","CA","Host Duplex, LLC","http://www.hostduplex.com/","http://mirror.hostduplex.com/centos/","","rsync://mirror.hostduplex.com/centos/"
+"US","CA","keystealth.org","","http://mirror.keystealth.org/centos/","","rsync://mirror.keystealth.org/centos/"
+"US","CA","Linux Kernel Archives","http://www.kernel.org/","http://mirrors.edge.kernel.org/centos/","","rsync://mirrors.kernel.org/centos/"
+"US","CA","NDCHost","http://ndchost.com/","http://centos.mirror.ndchost.com/","",""
+"US","CA","Open Computing Facility","https://www.ocf.berkeley.edu/","http://mirrors.ocf.berkeley.edu/centos/","https://mirrors.ocf.berkeley.edu/centos/","rsync://mirrors.ocf.berkeley.edu/centos/"
+"US","CA","packet.net","https://packet.net/","http://sjc.edge.kernel.org/centos/","https://sjc.edge.kernel.org/centos/",""
+"US","CA","psychz.net","http://www.psychz.net/","http://repos-lax.psychz.net/centos/","","rsync://repos-lax.psychz.net/Centos/"
+"US","CA","QuadraNet","http://www.quadranet.com/","http://repos.lax.quadranet.com/centos/","","rsync://repos.lax.quadranet.com/centos/"
+"US","CA","Shasta County Office of Education","http://www.shastacoe.org/","http://mirror.shastacoe.net/centos/","https://mirror.shastacoe.net/centos/","rsync://mirror.shastacoe.net/centos/"
+"US","CA","Silicon Valley Web Hosting LLC","http://svwh.net/","http://mirror.sjc02.svwh.net/centos/","https://mirror.sjc02.svwh.net/centos/","rsync://mirror.sjc02.svwh.net/centos/"
+"US","CA","Sonic","https://www.sonic.com/","http://mirrors.sonic.net/centos/","https://mirrors.sonic.net/centos/",""
+"US","CA","University of California, Irvine","http://www.uci.edu/","http://mirrors.oit.uci.edu/centos/","https://mirrors.oit.uci.edu/centos/",""
+"US","CO","FORETHOUGHT.net","http://forethought.net/","http://repos.forethought.net/centos/","",""
+"US","CO","Mean Servers","https://www.meanservers.com/","http://mirror.den01.meanservers.net/centos/","",""
+"US","CO","tummy.com","http://www.tummy.com","http://mirrors.tummy.com/mirrors/CentOS/","",""
+"US","DC"," Leaseweb","https://www.leaseweb.com/","http://mirror.wdc1.us.leaseweb.net/centos/","https://mirror.wdc1.us.leaseweb.net/centos/","rsync://mirror.wdc1.us.leaseweb.net/centos/"
+"US","DE","University of Delaware","http://ftp.lug.udel.edu/","http://mirror.lug.udel.edu/pub/centos/","",""
+"US","FL"," Leaseweb","https://www.leaseweb.com/","http://mirror.mia11.us.leaseweb.net/centos/","https://mirror.mia11.us.leaseweb.net/centos/","rsync://mirror.mia11.us.leaseweb.net/centos/"
+"US","FL"," QuadraNet","http://www.quadranet.com/","http://repos.mia.quadranet.com/centos/","","rsync://repos.mia.quadranet.com/centos/"
+"US","FL"," Atlantic.Net","http://www.atlantic.net/","http://mirror.atlantic.net/centos/","","rsync://mirror.atlantic.net/centos/"
+"US","FL","Ilumno Technologies","https://www.ilumno.com/","http://mirror.ilumno.com/centos/","https://mirror.ilumno.com/centos/","rsync://mirror.ilumno.com/centos/"
+"US","FL","Mojohost","http://www.mojohost.com/","http://mirror.mojohost.com/centos/","",""
+"US","FL","Nodes Direct","http://nodesdirect.com/","http://mirror.nodesdirect.com/centos/","https://mirror.nodesdirect.com/centos/","rsync://mirror.nodesdirect.com/centos/"
+"US","FL","University of South Florida","http://www.usf.edu/","http://ftp.usf.edu/pub/centos/","",""
+"US","GA","Genesis Adaptive Hosting","https://www.genesisadaptive.com","http://mirror.atl.genesisadaptive.com/centos/","https://mirror.atl.genesisadaptive.com/centos/","rsync://mirror.atl.genesisadaptive.com/centos/"
+"US","GA","Georgia Tech","http://www.gtlib.gatech.edu/","http://www.gtlib.gatech.edu/pub/centos/","","rsync://rsync.gtlib.gatech.edu/centos/"
+"US","GA","University of West Georgia","http://www.westga.edu/","http://reflector.westga.edu/repos/CentOS/","https://reflector.westga.edu/repos/CentOS/","rsync://reflector.westga.edu/CentOS/"
+"US","GA","Virtual World Technologies","http://www.vwtonline.com","http://centos.vwtonline.net/centos/","https://centos.vwtonline.net/centos/",""
+"US","HI","Advanced Network Computing Lab Hawaii","http://www.ancl.hawaii.edu/","http://mirror.ancl.hawaii.edu/linux/centos/","",""
+"US","IL"," Genesis Adaptive Hosting","https://www.genesisadaptive.com/","http://mirror.lax.genesisadaptive.com/centos/","https://mirror.lax.genesisadaptive.com/centos/","rsync://mirror.lax.genesisadaptive.com/centos/"
+"US","IL","Fermi National Accelerator Laboratory","https://www.fnal.gov/","http://linux-mirrors.fnal.gov/linux/centos/","https://linux-mirrors.fnal.gov/linux/centos/",""
+"US","IL","Genesis Adaptive","https://www.genesisadaptive.com/","http://mirror.genesisadaptive.com/centos/","",""
+"US","IL","Genesis Hosting","https://genesishosting.com/","http://mirror.genesishosting.com/centos/","",""
+"US","IL","GIGENET","http://www.gigenet.com/","http://mirrors.gigenet.com/centos/","https://mirrors.gigenet.com/centos/",""
+"US","IL","Northwestern University School of Education and Social Policy","http://www.sesp.northwestern.edu/","http://mirror.sesp.northwestern.edu/centos/","",""
+"US","IL","Steadfast Networks","http://steadfast.net","http://mirror.steadfastnet.com/centos/","https://mirror.steadfastnet.com/centos/","rsync://mirror.steadfastnet.com/centos/"
+"US","IL","Team Cymru","https://www.team-cymru.com/","http://mirror.team-cymru.com/CentOS/","","rsync://mirror.team-cymru.com/CentOS/"
+"US","IL","University of Chicago","http://www.uchicago.edu/","http://mirror.grid.uchicago.edu/pub/linux/centos/","",""
+"US","IL","University of Chicago, Astronomy","http://astro.uchicago.edu/","http://bay.uchicago.edu/centos/","","rsync://bay.uchicago.edu/CentOS/"
+"US","IL","Your.Org","http://www.your.org/","http://ftpmirror.your.org/pub/centos/","https://ftpmirror.your.org/pub/centos/","rsync://ftpmirror.your.org/centos/"
+"US","IN","Indiana University","http://pti.iu.edu/cs/software-applications/","http://ftp.ussg.iu.edu/linux/centos/","",""
+"US","MA","Harvard SEAS ARC","http://www.seas.harvard.edu/","http://mirrors.seas.harvard.edu/centos/","",""
+"US","MA","Massachusetts Institute of Technology","http://mit.edu/","http://mirrors.mit.edu/centos/","",""
+"US","MA","TripAdvisor","http://www.tripadvisor.com/","http://mirrors.tripadvisor.com/centos/","https://mirrors.tripadvisor.com/centos/","rsync://mirrors.tripadvisor.com/centos/"
+"US","MD","University of Maryland, College Park","http://www.umd.edu/","http://mirror.umd.edu/centos/","https://mirror.umd.edu/centos/","rsync://mirror.umd.edu/centos/"
+"US","ME","University of Maine System, Information Technology Services","http://www.maine.edu/","http://mirrors.maine.edu/CentOS/","","rsync://mirrors.maine.edu/CentOS/"
+"US","MI","Central Michigan University","http://www.cmich.edu/","http://mirrors.cmich.edu/centos/","",""
+"US","MI","Linux/Unix Users Group at Michigan Tech","https://lug.mtu.edu/","http://mirrors.lug.mtu.edu/centos/","https://mirrors.lug.mtu.edu/centos/","rsync://mirrors.lug.mtu.edu/centos/"
+"US","MI","Liquid Web, Inc.","http://www.liquidweb.com/","http://mirrors.liquidweb.com/CentOS/","","rsync://mirrors.liquidweb.com/CentOS/"
+"US","MI","MBNI, U of Michigan, USA","http://www.mbni.med.umich.edu/","http://repo.miserver.it.umich.edu/centos/","https://repo.miserver.it.umich.edu/centos/",""
+"US","MI","Nexcess.net","https://www.nexcess.net/","http://mirror.us-midwest-1.nexcess.net/CentOS/","https://mirror.us-midwest-1.nexcess.net/CentOS/",""
+"US","MI","University of Michigan-Flint","http://www.umflint.edu/","http://mirrors.umflint.edu/CentOS/","",""
+"US","MN","US Internet","http://www.usinternet.com/","http://mirrors.usinternet.com/centos/","","rsync://mirrors.usinternet.com/centos/"
+"US","MO","Compevo Communications","http://www.compevo.com/","http://mirror.compevo.com/centos/","",""
+"US","MO","Missouri Baptist University","https://www.mobap.edu/","http://mirror.mobap.edu/centos/","",""
+"US","MO","xrepo.net","http://www.xrepo.net","http://mirror.xrepo.net/centos/","",""
+"US","NC"," North Carolina State University","http://www.ncsu.edu/","http://packages.oit.ncsu.edu/centos/","https://packages.oit.ncsu.edu/centos/","rsync://packages.oit.ncsu.edu/centos/"
+"US","NC","Duke University","http://www.linux.duke.edu/","http://mirror.linux.duke.edu/pub/centos/","","rsync://mirror.linux.duke.edu/centos/"
+"US","NC","ibiblio.org","http://www.ibiblio.org/","http://distro.ibiblio.org/centos/","","rsync://distro.ibiblio.org/centos/"
+"US","NH","MetroCast Cablevision","http://www.metrocast.com/","http://mirror.metrocast.net/centos/","",""
+"US","NJ"," packet.net","https://packet.net/","http://ewr.edge.kernel.org/centos/","https://ewr.edge.kernel.org/centos/",""
+"US","NJ","Constant Hosting","http://constant.com/","http://centos.mirror.constant.com/","https://centos.mirror.constant.com/",""
+"US","NJ","interserver.net","http://interserver.net/","http://mirror.trouble-free.net/centos/","","rsync://mirror.trouble-free.net/centos/"
+"US","NJ","Princeton University Department of Mathematics","http://www.math.princeton.edu/","http://mirror.math.princeton.edu/pub/centos/","https://mirror.math.princeton.edu/pub/centos/","rsync://mirror.math.princeton.edu/pub/centos/"
+"US","NY","Atlantic Metro Communications","http://www.atlanticmetro.net/","http://mirror.atlanticmetro.net/centos/","https://mirror.atlanticmetro.net/centos/",""
+"US","NY","Clarkson Open Source Institute","http://cosi.clarkson.edu/","http://mirror.clarkson.edu/centos/","",""
+"US","NY","Columbia University","http://www.columbia.edu/","http://mirror.cc.columbia.edu/pub/linux/centos/","","rsync://mirror.cc.columbia.edu/centos/"
+"US","NY","NYU","http://www.nyu.edu/","http://mirror.es.its.nyu.edu/centos/","","rsync://mirror.es.its.nyu.edu/centos/"
+"US","NY","Rochester Institute of Technology","http://www.rit.edu/","http://mirrors.rit.edu/centos/","","rsync://mirrors.rit.edu/centos/"
+"US","NY","Siena College","https://www.siena.edu/","http://mirror.siena.edu/centos/","","rsync://mirror.siena.edu/centos/"
+"US","OK","University of Oklahoma","http://www.ou.edu/web.html","http://mirror.oss.ou.edu/centos/","","rsync://mirror.oss.ou.edu/centos/"
+"US","OR","DirectLink","https://www.directlink.coop/","http://mirror.web-ster.com/centos/","https://mirror.web-ster.com/centos/","rsync://mirror.web-ster.com/centos/"
+"US","OR","Portland State Univ.","http://www.cat.pdx.edu/","http://mirrors.cat.pdx.edu/centos/","https://mirrors.cat.pdx.edu/centos/","rsync://mirrors.cat.pdx.edu/centos/"
+"US","OR","TOCICI LLC","http://www.tocici.com/","http://mirror.tocici.com/centos/","",""
+"US","PA","1&1 Internet Inc.","http://www.1and1.com/","http://mirror.us.oneandone.net/linux/distributions/centos/","","rsync://mirror.us.oneandone.net/centos/"
+"US","PA","Datto Inc.","http://datto.com","http://mirror.datto.com/CentOS/","",""
+"US","PA","Department of Computer Science, University of Pittsburgh","http://cs.pitt.edu/","http://mirror.cs.pitt.edu/centos/","","rsync://mirror.cs.pitt.edu/centos/"
+"US","PA","Hobby Classifieds","http://www.hoobly.com/","http://centos.mirrors.hoobly.com/","",""
+"US","PA","Lehigh University","http://www.lehigh.edu/","http://linux.cc.lehigh.edu/centos/","",""
+"US","PA","TeraSwitch Networks Inc.","https://teraswitch.com/","http://mirror.pit.teraswitch.com/centos/","","rsync://mirror.pit.teraswitch.com/centos/"
+"US","SD","Dakota State University","https://dsu.edu/","http://repo.ialab.dsu.edu/centos/","https://repo.ialab.dsu.edu/centos/",""
+"US","TN","Twin Lakes","http://twinlakes.net/","http://mirror.twinlakes.net/centos/","","rsync://mirror.twinlakes.net/centos/"
+"US","TX"," InnoScale","https://innoscale.net/","http://repo1.dal.innoscale.net/centos/","","rsync://repo1.dal.innoscale.net/centos/"
+"US","TX"," Leaseweb","https://www.leaseweb.com/","http://mirror.dal10.us.leaseweb.net/centos/","https://mirror.dal10.us.leaseweb.net/centos/","rsync://mirror.dal10.us.leaseweb.net/centos/"
+"US","TX"," psychz.net","http://www.psychz.net/","http://repos-tx.psychz.net/centos/","","rsync://repos-tx.psychz.net/Centos/"
+"US","TX"," QuadraNet","http://www.quadranet.com/","http://repos.dfw.quadranet.com/centos/","","rsync://repos.dfw.quadranet.com/centos/"
+"US","TX","Academy for Advanced Telecommunications and Learning Technology at Texas A&M University","http://academy.tamu.edu/","http://yum.tamu.edu/centos/","",""
+"US","TX","LayerHost","https://www.layerhost.com/","http://repos.hou.layerhost.com/centos/","","rsync://repos.hou.layerhost.com/centos/"
+"US","TX","Limestone Networks","http://www.limestonenetworks.com/","http://centos.mirror.lstn.net/","","rsync://centos.mirror.lstn.net/centos/"
+"US","TX","Netdepot LLC","http://www.netdepot.com/","http://mirror.netdepot.com/centos/","","rsync://mirror.netdepot.com/centos/"
+"US","TX","Nexril","https://nexril.net/","http://mirror.dal.nexril.net/centos/","https://mirror.dal.nexril.net/centos/","rsync://mirror.dal.nexril.net/centos/"
+"US","TX","Ray Stedman Ministries","https://raystedman.org/","http://mirrors.raystedman.org/centos/","https://mirrors.raystedman.org/centos/","rsync://mirrors.raystedman.org/centos/"
+"US","UT","University of Utah","http://www.chpc.utah.edu/","http://mirror.chpc.utah.edu/pub/centos/","https://mirror.chpc.utah.edu/pub/centos/","rsync://mirror.chpc.utah.edu/pub/centos/"
+"US","UT","XMission","http://www.xmission.com/","http://mirrors.xmission.com/centos/","","rsync://mirrors.xmission.com/centos/"
+"US","VA"," psychz.net","http://www.psychz.net/","http://repos-va.psychz.net/centos/","","rsync://repos-va.psychz.net/Centos/"
+"US","VA"," Fast Serv Networks, LLC","https://www.fastserv.com/","http://mirror.ash.fastserv.com/centos/","",""
+"US","VA"," ServerForge","https://serverforge.org","http://mirror.centos.iad1.serverforge.org/","https://mirror.centos.iad1.serverforge.org/",""
+"US","VA"," zswap.net","http://zswap.net/","http://centos4.zswap.net/","https://centos4.zswap.net/","rsync://centos4.zswap.net/centos/"
+"US","VA","AdvancedHosters","http://advancedhosters.com/","http://mirrors.advancedhosters.com/centos/","","rsync://mirrors.advancedhosters.com/centos/"
+"US","VA","Cogent Communications","http://www.cogentco.com/","http://mirror.cogentco.com/pub/linux/centos/","","rsync://mirror.cogentco.com/CentOS/"
+"US","VA","InnoScale","https://innoscale.net/","http://repo1.ash.innoscale.net/centos/","","rsync://repo1.ash.innoscale.net/centos/"
+"US","VA","NSEC","http://www.nsec.pt/","http://us.mirror.nsec.pt/centos/","",""
+"US","VA","Virginia Commonwealth University","http://www.vcu.edu/","http://mirror.vcu.edu/pub/gnu_linux/centos/","https://mirror.vcu.edu/pub/gnu_linux/centos/","rsync://mirror.vcu.edu/centos/"
+"US","VA","Virginia Tech","http://mirror.cs.vt.edu/","http://mirror.cs.vt.edu/pub/CentOS/","",""
+"US","VA","Virginia Tech Transportation Institute","http://www.vtti.vt.edu/","http://mirror.vtti.vt.edu/centos/","",""
+"US","VT","Green Mountain Access","http://www.greenmountainaccess.net/","http://mirrors.greenmountainaccess.net/centos/","","rsync://mirrors.greenmountainaccess.net/centos/"
+"US","WA"," InnoScale","https://innoscale.net/","http://repo1.sea.innoscale.net/centos/","","rsync://repo1.sea.innoscale.net/centos/"
+"US","WA","Jaleco.com","https://www.jaleco.com/","http://mirror.jaleco.com/centos/","https://mirror.jaleco.com/centos/",""
+"US","WA","University of Washington","http://www.uw.edu/","http://centos.s.uw.edu/centos/","",""
+"US","WA","Voiland College of Engineering and Architecture, Washington State University","https://vcea.wsu.edu/","http://mirrors.vcea.wsu.edu/centos/","","rsync://mirrors.vcea.wsu.edu/centos/"
+"US","WI","TDS Internet Services","http://mirrors.tds.net/","http://centos.mirrors.tds.net/pub/linux/centos/","","rsync://centos.mirrors.tds.net/centos/"
+"US","WI","University of Wisconsin-Parkside Computer Science Department","http://www.cs.uwp.edu/","http://mirror.cs.uwp.edu/pub/centos/","https://mirror.cs.uwp.edu/pub/centos/",""
diff --git a/_layouts/page-download-cloud.html b/_layouts/page-download-cloud.html
deleted file mode 100644
index 54605c8..0000000
--- a/_layouts/page-download-cloud.html
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
-
-{% include head.html %}
-
-
-
- {% include header.html -%}
-
-
-
- {% include footer.html -%}
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/_layouts/page-download-mirror-altarch.html b/_layouts/page-download-mirror-altarch.html
deleted file mode 100644
index 2fdb057..0000000
--- a/_layouts/page-download-mirror-altarch.html
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
-
-{% include head.html %}
-
-
-
- {% include header.html -%}
-
-
-
- {% include footer.html -%}
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/_layouts/page-download-mirror.html b/_layouts/page-download-mirror.html
index eaa612f..2b6421c 100644
--- a/_layouts/page-download-mirror.html
+++ b/_layouts/page-download-mirror.html
@@ -1,43 +1,21 @@
-{% include head.html %}
+{% include head.html -%}
-
{% include header.html -%}
-
-
{% include footer.html -%}
-
-
-
-
-
-
-
-
-
+
+
+
diff --git a/assets/css/styles.min.css b/assets/css/styles.min.css
index 128ab7c..b77d6af 100644
--- a/assets/css/styles.min.css
+++ b/assets/css/styles.min.css
@@ -1 +1 @@
-.brands{color:#313437;background-color:#fff}.brands a{display:block;text-align:center;padding:40px 0}.brands a img{display:inline-block;margin:10px 20px;vertical-align:middle}.breadcrumb-item a,.breadcrumb-item span a,.centos-banner p,.navigation-clean.navbar-dark .navbar-nav .nav-link:focus,.navigation-clean.navbar-dark .navbar-nav .nav-link:hover{color:#fff}.footer-basic{padding:40px 0;background-color:#fff;color:#4b4c4d}.footer-basic ul{padding:0;list-style:none;text-align:center;font-size:18px;line-height:1.6;margin-bottom:0}.footer-basic li{padding:0 10px}.footer-basic ul a,.footer-clean ul a{color:inherit;text-decoration:none;opacity:.8}.footer-basic ul a:hover,.footer-clean ul a:hover,.highlight-clean .buttons .btn:hover{opacity:1}.footer-basic .social{text-align:center;padding-bottom:25px}.footer-basic .social>a{font-size:24px;width:40px;height:40px;line-height:40px;display:inline-block;text-align:center;border-radius:50%;border:1px solid #ccc;margin:0 8px;color:inherit;opacity:.75}.footer-basic .social>a:hover,.footer-clean .item.social>a:hover,.footer-dark .item.social>a:hover{opacity:.9}.footer-basic .copyright{margin-top:15px;text-align:center;font-size:13px;color:#aaa;margin-bottom:0}.jumbotron.text-white{margin-top:1.5em;margin-bottom:1.3em}#carousel-1{margin-bottom:1.5em}.breadcrumb,.footer-dark{margin-top:1.5em}.footer-clean{padding:50px 0;color:#4b4c4d}.footer-clean h3,.footer-dark h3{margin-top:0;margin-bottom:12px;font-weight:700;font-size:16px}.footer-clean ul,.footer-dark ul{padding:0;list-style:none;line-height:1.6;font-size:14px;margin-bottom:0}.footer-clean .item.social{text-align:right}@media (max-width:768px){.footer-clean .item.social{text-align:center}}.footer-clean .item.social>a{font-size:24px;width:40px;height:40px;line-height:40px;display:inline-block;text-align:center;border-radius:50%;border:1px solid #ccc;margin-left:10px;margin-top:22px;color:inherit;opacity:.75}.footer-clean .copyright{margin-top:14px;margin-bottom:0;font-size:13px;opacity:.6}.footer-dark{padding:50px 0;color:#f0f9ff;background-color:#282d32}.footer-dark ul a{color:inherit;text-decoration:none;opacity:.6}.footer-dark ul a:hover{opacity:.8}.footer-dark .item.text{margin-bottom:36px}.footer-dark .item.text p{opacity:.6;margin-bottom:0}.footer-dark .item.social,.highlight-clean .buttons{text-align:center}@media (max-width:991px){.footer-clean .item.social>a{margin-top:40px}.footer-dark .item.social{text-align:center;margin-top:20px}}.footer-dark .item.social>a{font-size:20px;width:36px;height:36px;line-height:36px;display:inline-block;text-align:center;border-radius:50%;box-shadow:0 0 0 1px rgba(255,255,255,.4);margin:0 8px;color:#fff;opacity:.75}.footer-dark .copyright{text-align:center;padding-top:24px;opacity:.3;font-size:13px;margin-bottom:0}.highlight-clean{color:#313437;background-color:#fff;padding:50px 0}.highlight-clean p{color:#7d8285}.highlight-clean h2{font-weight:700;margin-bottom:25px;line-height:1.5;padding-top:0;margin-top:0;color:inherit}.highlight-clean .intro{font-size:16px;max-width:500px;margin:0 auto 25px}.highlight-clean .buttons .btn{padding:16px 32px;margin:6px;border:none;background:#ddd;box-shadow:none;text-shadow:none;opacity:.9;text-transform:uppercase;font-weight:700;font-size:13px;letter-spacing:.4px;line-height:1;outline:0}.highlight-clean .buttons .btn:active{transform:translateY(1px)}.highlight-clean .buttons .btn-primary{background-color:#055ada;color:#fff}.navigation-clean{background:#fff;padding-top:.75rem;padding-bottom:.75rem;color:#333;border-radius:0;box-shadow:none;border:none;margin-bottom:0}.navigation-clean .navbar-brand{font-weight:700;color:inherit}.navigation-clean .navbar-brand:hover{color:#222}.navigation-clean.navbar-dark .navbar-brand:hover{color:#f0f0f0}.navigation-clean .navbar-brand img{height:100%;display:inline-block;margin-right:10px;width:auto}.navigation-clean .navbar-toggler{border-color:#ddd;color:#888}.navigation-clean .navbar-toggler:focus,.navigation-clean .navbar-toggler:hover{background:0 0}.navigation-clean.navbar-dark .navbar-toggler{border-color:#555;color:#eee}.navigation-clean .form-inline,.navigation-clean .navbar-collapse{border-top-color:#ddd}.navigation-clean.navbar-dark .form-inline,.navigation-clean.navbar-dark .navbar-collapse{border-top-color:#333}.navigation-clean .navbar-nav>.active>a,.navigation-clean .navbar-nav>.show>a{background:0 0;box-shadow:none}.navigation-clean.navbar-dark .navbar-nav a.active,.navigation-clean.navbar-dark .navbar-nav a.active:focus,.navigation-clean.navbar-dark .navbar-nav a.active:hover,.navigation-clean.navbar-light .navbar-nav .nav-link.active,.navigation-clean.navbar-light .navbar-nav .nav-link.active:focus,.navigation-clean.navbar-light .navbar-nav .nav-link.active:hover{color:#8f8f8f;box-shadow:none;background:0 0;pointer-events:none}.navigation-clean.navbar .navbar-nav .nav-link{padding-left:18px;padding-right:18px}.navigation-clean.navbar-light .navbar-nav .nav-link{color:#465765}.navigation-clean.navbar-light .navbar-nav .nav-link:focus,.navigation-clean.navbar-light .navbar-nav .nav-link:hover{color:#37434d!important;background-color:transparent}.navigation-clean .navbar-nav>li>.dropdown-menu{margin-top:-5px;box-shadow:none;background-color:#fff;border-radius:2px}@media (min-width:768px){.navigation-clean{padding-top:1rem;padding-bottom:1rem}.navigation-clean .navbar-nav .show .dropdown-menu{box-shadow:0 4px 8px rgba(0,0,0,.1)}}.navigation-clean .dropdown-menu .dropdown-item,.navigation-clean .dropdown-menu .dropdown-item:focus{line-height:2;color:#37434d}.navigation-clean .dropdown-menu .dropdown-item:focus,.navigation-clean .dropdown-menu .dropdown-item:hover{background:#eee;color:inherit}.navigation-clean.navbar-dark{color:#fff;background-color:#37434d}.navigation-clean.navbar-dark .navbar-nav .nav-link{color:#dfe8ee}.navigation-clean.navbar-dark .dropdown-menu .dropdown-item,.navigation-clean.navbar-dark .dropdown-menu .dropdown-item:focus{color:#f2f5f8}.navigation-clean.navbar-dark .dropdown-menu .dropdown-item:focus,.navigation-clean.navbar-dark .dropdown-menu .dropdown-item:hover{background:rgba(255,255,255,.15)}@media (max-width:767px){.brands a{padding:30px 0}.footer-clean .item,.footer-dark .item:not(.social){text-align:center;padding-bottom:20px}.footer-clean .item.social>a{margin-top:10px}.footer-dark .item.text{margin-bottom:0}.navigation-clean .navbar-nav .show .dropdown-menu .dropdown-item{color:#37434d;padding-top:.8rem;padding-bottom:.8rem;line-height:1}.navigation-clean.navbar-dark .navbar-nav .show .dropdown-menu .dropdown-item{color:#fff}}.scrolled{background-color:rgba(0,0,0,.9)!important;-webkit-transition:background-color .5s linear;-moz-transition:background-color .5s linear;-ms-transition:background-color .5s linear;transition:background-color .5s linear}body,html{scroll-padding-top:90px}#table-container-table th{cursor:pointer}#table-container-table th.sorting_asc{background:url(/assets/img/arrow_asc.gif ) right center no-repeat rgba(0,0,0,0);padding-right:30px}#table-container-table th.sorting_desc{background:url(/assets/img/arrow_desc.gif ) right center no-repeat rgba(0,0,0,0);padding-right:30px}.dataTables_info{white-space:nowrap}.breadcrumb{background-color:transparent;padding-left:0;padding-top:0;border-radius:0;font-size:small;margin-top:0}.breadcrumb a,.section-nav a{color:gray}.centos-banner{background-image:url(/assets/img/centos-motif.png);background-color:transparent;background-size:cover}.btn .btn-light .btn-lg{color:#000;font-weight:600}.btn-group-lg>.btn,.btn-lg{margin-right:15px;margin-bottom:15px}.centos-banner-home{padding-top:222px;padding-bottom:150px;margin-bottom:50px}.centos-banner-page{padding-top:168px;padding-bottom:96px}.centos-banner h1{font-weight:600;color:#fff}.centos-content{background-color:#fff;margin-top:50px}.centos-content h2{font-weight:700;border-bottom:1px solid #000}.section-nav{position:sticky;top:72px;align-self:start;padding-top:25px;font-size:small;margin-top:-25px}.section-nav ul{padding-left:1.5em}.footer-clean{margin-top:50px;background-color:#f1f1f1}div#table-container-table_filter.dataTables_filter{margin-top:1em;margin-bottom:1em;font-size:1.25em}nav.navbar.navbar-dark{background-color:#000}.card{margin:10px;border:none}div.card img{height:50px;object-fit:contain}
\ No newline at end of file
+.brands{color:#313437;background-color:#fff}.brands a{display:block;text-align:center;padding:40px 0}.brands a img{display:inline-block;margin:10px 20px;vertical-align:middle}.breadcrumb-item a,.breadcrumb-item span a,.centos-banner p,.navigation-clean.navbar-dark .navbar-nav .nav-link:focus,.navigation-clean.navbar-dark .navbar-nav .nav-link:hover{color:#fff}.footer-basic{padding:40px 0;background-color:#fff;color:#4b4c4d}.footer-basic ul{padding:0;list-style:none;text-align:center;font-size:18px;line-height:1.6;margin-bottom:0}.footer-basic li{padding:0 10px}.footer-basic ul a,.footer-clean ul a{color:inherit;text-decoration:none;opacity:.8}.footer-basic ul a:hover,.footer-clean ul a:hover,.highlight-clean .buttons .btn:hover{opacity:1}.footer-basic .social{text-align:center;padding-bottom:25px}.footer-basic .social>a{font-size:24px;width:40px;height:40px;line-height:40px;display:inline-block;text-align:center;border-radius:50%;border:1px solid #ccc;margin:0 8px;color:inherit;opacity:.75}.footer-basic .social>a:hover,.footer-clean .item.social>a:hover,.footer-dark .item.social>a:hover{opacity:.9}.footer-basic .copyright{margin-top:15px;text-align:center;font-size:13px;color:#aaa;margin-bottom:0}.jumbotron.text-white{margin-top:1.5em;margin-bottom:1.3em}#carousel-1{margin-bottom:1.5em}.breadcrumb,.footer-dark{margin-top:1.5em}.footer-clean{padding:50px 0;color:#4b4c4d}.footer-clean h3,.footer-dark h3{margin-top:0;margin-bottom:12px;font-weight:700;font-size:16px}.footer-clean ul,.footer-dark ul{padding:0;list-style:none;line-height:1.6;font-size:14px;margin-bottom:0}.footer-clean .item.social{text-align:right}@media (max-width:768px){.footer-clean .item.social{text-align:center}}.footer-clean .item.social>a{font-size:24px;width:40px;height:40px;line-height:40px;display:inline-block;text-align:center;border-radius:50%;border:1px solid #ccc;margin-left:10px;margin-top:22px;color:inherit;opacity:.75}.footer-clean .copyright{margin-top:14px;margin-bottom:0;font-size:13px;opacity:.6}.footer-dark{padding:50px 0;color:#f0f9ff;background-color:#282d32}.footer-dark ul a{color:inherit;text-decoration:none;opacity:.6}.footer-dark ul a:hover{opacity:.8}.footer-dark .item.text{margin-bottom:36px}.footer-dark .item.text p{opacity:.6;margin-bottom:0}.footer-dark .item.social,.highlight-clean .buttons{text-align:center}@media (max-width:991px){.footer-clean .item.social>a{margin-top:40px}.footer-dark .item.social{text-align:center;margin-top:20px}}.footer-dark .item.social>a{font-size:20px;width:36px;height:36px;line-height:36px;display:inline-block;text-align:center;border-radius:50%;box-shadow:0 0 0 1px rgba(255,255,255,.4);margin:0 8px;color:#fff;opacity:.75}.footer-dark .copyright{text-align:center;padding-top:24px;opacity:.3;font-size:13px;margin-bottom:0}.highlight-clean{color:#313437;background-color:#fff;padding:50px 0}.highlight-clean p{color:#7d8285}.highlight-clean h2{font-weight:700;margin-bottom:25px;line-height:1.5;padding-top:0;margin-top:0;color:inherit}.highlight-clean .intro{font-size:16px;max-width:500px;margin:0 auto 25px}.highlight-clean .buttons .btn{padding:16px 32px;margin:6px;border:none;background:#ddd;box-shadow:none;text-shadow:none;opacity:.9;text-transform:uppercase;font-weight:700;font-size:13px;letter-spacing:.4px;line-height:1;outline:0}.highlight-clean .buttons .btn:active{transform:translateY(1px)}.highlight-clean .buttons .btn-primary{background-color:#055ada;color:#fff}.navigation-clean{background:#fff;padding-top:.75rem;padding-bottom:.75rem;color:#333;border-radius:0;box-shadow:none;border:none;margin-bottom:0}.navigation-clean .navbar-brand{font-weight:700;color:inherit}.navigation-clean .navbar-brand:hover{color:#222}.navigation-clean.navbar-dark .navbar-brand:hover{color:#f0f0f0}.navigation-clean .navbar-brand img{height:100%;display:inline-block;margin-right:10px;width:auto}.navigation-clean .navbar-toggler{border-color:#ddd;color:#888}.navigation-clean .navbar-toggler:focus,.navigation-clean .navbar-toggler:hover{background:0 0}.navigation-clean.navbar-dark .navbar-toggler{border-color:#555;color:#eee}.navigation-clean .form-inline,.navigation-clean .navbar-collapse{border-top-color:#ddd}.navigation-clean.navbar-dark .form-inline,.navigation-clean.navbar-dark .navbar-collapse{border-top-color:#333}.navigation-clean .navbar-nav>.active>a,.navigation-clean .navbar-nav>.show>a{background:0 0;box-shadow:none}.navigation-clean.navbar-dark .navbar-nav a.active,.navigation-clean.navbar-dark .navbar-nav a.active:focus,.navigation-clean.navbar-dark .navbar-nav a.active:hover,.navigation-clean.navbar-light .navbar-nav .nav-link.active,.navigation-clean.navbar-light .navbar-nav .nav-link.active:focus,.navigation-clean.navbar-light .navbar-nav .nav-link.active:hover{color:#8f8f8f;box-shadow:none;background:0 0;pointer-events:none}.navigation-clean.navbar .navbar-nav .nav-link{padding-left:18px;padding-right:18px}.navigation-clean.navbar-light .navbar-nav .nav-link{color:#465765}.navigation-clean.navbar-light .navbar-nav .nav-link:focus,.navigation-clean.navbar-light .navbar-nav .nav-link:hover{color:#37434d!important;background-color:transparent}.navigation-clean .navbar-nav>li>.dropdown-menu{margin-top:-5px;box-shadow:none;background-color:#fff;border-radius:2px}@media (min-width:768px){.navigation-clean{padding-top:1rem;padding-bottom:1rem}.navigation-clean .navbar-nav .show .dropdown-menu{box-shadow:0 4px 8px rgba(0,0,0,.1)}}.navigation-clean .dropdown-menu .dropdown-item,.navigation-clean .dropdown-menu .dropdown-item:focus{line-height:2;color:#37434d}.navigation-clean .dropdown-menu .dropdown-item:focus,.navigation-clean .dropdown-menu .dropdown-item:hover{background:#eee;color:inherit}.navigation-clean.navbar-dark{color:#fff;background-color:#37434d}.navigation-clean.navbar-dark .navbar-nav .nav-link{color:#dfe8ee}.navigation-clean.navbar-dark .dropdown-menu .dropdown-item,.navigation-clean.navbar-dark .dropdown-menu .dropdown-item:focus{color:#f2f5f8}.navigation-clean.navbar-dark .dropdown-menu .dropdown-item:focus,.navigation-clean.navbar-dark .dropdown-menu .dropdown-item:hover{background:rgba(255,255,255,.15)}@media (max-width:767px){.brands a{padding:30px 0}.footer-clean .item,.footer-dark .item:not(.social){text-align:center;padding-bottom:20px}.footer-clean .item.social>a{margin-top:10px}.footer-dark .item.text{margin-bottom:0}.navigation-clean .navbar-nav .show .dropdown-menu .dropdown-item{color:#37434d;padding-top:.8rem;padding-bottom:.8rem;line-height:1}.navigation-clean.navbar-dark .navbar-nav .show .dropdown-menu .dropdown-item{color:#fff}}#myInput{background-image:url(/assets/img/search-solid.png);background-position:10px;background-repeat:no-repeat;width:100%;padding:12px 20px 12px 50px;border:1px solid #ddd;margin-top:12px;border-top:0;border-left:0;border-right:0}#myTable{border-collapse:collapse;width:100%;border:1px solid #ddd;font-size:small}#myTable td,#myTable th{text-align:left;padding:12px}#myTable tr{border-bottom:1px solid #ddd}#myTable tr.header,#myTable tr:hover{background-color:#f1f1f1}.scrolled{background-color:rgba(0,0,0,.9)!important;-webkit-transition:background-color .5s linear;-moz-transition:background-color .5s linear;-ms-transition:background-color .5s linear;transition:background-color .5s linear}body,html{scroll-padding-top:90px}#table-container-table th{cursor:pointer}#table-container-table th.sorting_asc{background:url(/assets/img/arrow_asc.gif ) right center no-repeat rgba(0,0,0,0);padding-right:30px}#table-container-table th.sorting_desc{background:url(/assets/img/arrow_desc.gif ) right center no-repeat rgba(0,0,0,0);padding-right:30px}.dataTables_info{white-space:nowrap}.breadcrumb{background-color:transparent;padding-left:0;padding-top:0;border-radius:0;font-size:small;margin-top:0}.breadcrumb a,.section-nav a{color:gray}.centos-banner{background-image:url(/assets/img/centos-motif.png);background-color:transparent;background-size:cover}.btn .btn-light .btn-lg{color:#000;font-weight:600}.btn-group-lg>.btn,.btn-lg{margin-right:15px;margin-bottom:15px}.centos-banner-home{padding-top:222px;padding-bottom:150px;margin-bottom:50px}.centos-banner-page{padding-top:168px;padding-bottom:96px}.centos-banner h1{font-weight:600;color:#fff}.centos-content{background-color:#fff;margin-top:50px}.centos-content h2{font-weight:700;border-bottom:1px solid #000}.section-nav{position:sticky;top:72px;align-self:start;padding-top:25px;font-size:small;margin-top:-25px}.section-nav ul{padding-left:1.5em}.footer-clean{margin-top:50px;background-color:#f1f1f1}div#table-container-table_filter.dataTables_filter{margin-top:1em;margin-bottom:1em;font-size:1.25em}nav.navbar.navbar-dark{background-color:#000}.card{margin:10px;border:none}div.card img{height:50px;object-fit:contain}
\ No newline at end of file
diff --git a/assets/img/search-solid.png b/assets/img/search-solid.png
new file mode 100644
index 0000000..8938ed1
Binary files /dev/null and b/assets/img/search-solid.png differ
diff --git a/assets/js/csv_to_html_table.js b/assets/js/csv_to_html_table.js
deleted file mode 100644
index 185134c..0000000
--- a/assets/js/csv_to_html_table.js
+++ /dev/null
@@ -1,64 +0,0 @@
-var CsvToHtmlTable = CsvToHtmlTable || {};
-
-CsvToHtmlTable = {
- init: function (options) {
- options = options || {};
- var csv_path = options.csv_path || "";
- var el = options.element || "table-container";
- var allow_download = options.allow_download || false;
- var csv_options = options.csv_options || {};
- var datatables_options = options.datatables_options || {};
- var custom_formatting = options.custom_formatting || [];
- var customTemplates = {};
- $.each(custom_formatting, function (i, v) {
- var colIdx = v[0];
- var func = v[1];
- customTemplates[colIdx] = func;
- });
-
- var $table = $("");
- var $containerElement = $("#" + el);
- $containerElement.empty().append($table);
-
- $.when($.get(csv_path)).then(
- function (data) {
- var csvData = $.csv.toArrays(data, csv_options);
- var $tableHead = $("");
- var csvHeaderRow = csvData[0];
- var $tableHeadRow = $("
");
- for (var headerIdx = 0; headerIdx < csvHeaderRow.length; headerIdx++) {
- if ( headerIdx != 5 ) {
- $tableHeadRow.append($(" | ").text(csvHeaderRow[headerIdx]));
- }
- }
- $tableHead.append($tableHeadRow);
-
- $table.append($tableHead);
- var $tableBody = $("");
-
- for (var rowIdx = 1; rowIdx < csvData.length; rowIdx++) {
- var $tableBodyRow = $("
");
- for (var colIdx = 0; colIdx < csvData[rowIdx].length; colIdx++) {
- if ( colIdx != 5 ) {
- var $tableBodyRowTd = $(" | ");
- var cellTemplateFunc = customTemplates[colIdx];
- if (cellTemplateFunc) {
- $tableBodyRowTd.html(cellTemplateFunc(csvData[rowIdx][colIdx]));
- } else {
- $tableBodyRowTd.text(csvData[rowIdx][colIdx]);
- }
- $tableBodyRow.append($tableBodyRowTd);
- $tableBody.append($tableBodyRow);
- }
- }
- }
- $table.append($tableBody);
-
- $table.DataTable(datatables_options);
-
- if (allow_download) {
- $containerElement.append(" Download as CSV
");
- }
- });
- }
-};
diff --git a/assets/js/dataTables.bootstrap.js b/assets/js/dataTables.bootstrap.js
deleted file mode 100644
index be7c1e3..0000000
--- a/assets/js/dataTables.bootstrap.js
+++ /dev/null
@@ -1,186 +0,0 @@
-/*! DataTables Bootstrap 3 integration
- * ©2011-2014 SpryMedia Ltd - datatables.net/license
- */
-
-/**
- * DataTables integration for Bootstrap 3. This requires Bootstrap 3 and
- * DataTables 1.10 or newer.
- *
- * This file sets the defaults and adds options to DataTables to style its
- * controls using Bootstrap. See http://datatables.net/manual/styling/bootstrap
- * for further information.
- */
-(function(window, document, undefined){
-
-var factory = function( $, DataTable ) {
-"use strict";
-
-
-/* Set the defaults for DataTables initialisation */
-$.extend( true, DataTable.defaults, {
- dom:
- "<'row'<'col-sm-0'l><'col-sm-12'f>>" +
- "<'row'<'col-sm-12'tr>>" +
- "<'row'<'col-sm-5'i><'col-sm-7'p>>",
- renderer: 'bootstrap'
-} );
-
-
-/* Default class modification */
-$.extend( DataTable.ext.classes, {
- sWrapper: "dataTables_wrapper form-inline dt-bootstrap",
- sFilterInput: "form-control input-sm",
- sLengthSelect: "form-control input-sm"
-} );
-
-
-/* Bootstrap paging button renderer */
-DataTable.ext.renderer.pageButton.bootstrap = function ( settings, host, idx, buttons, page, pages ) {
- var api = new DataTable.Api( settings );
- var classes = settings.oClasses;
- var lang = settings.oLanguage.oPaginate;
- var btnDisplay, btnClass;
-
- var attach = function( container, buttons ) {
- var i, ien, node, button;
- var clickHandler = function ( e ) {
- e.preventDefault();
- if ( !$(e.currentTarget).hasClass('disabled') ) {
- api.page( e.data.action ).draw( false );
- }
- };
-
- for ( i=0, ien=buttons.length ; i 0 ?
- '' : ' disabled');
- break;
-
- case 'previous':
- btnDisplay = lang.sPrevious;
- btnClass = button + (page > 0 ?
- '' : ' disabled');
- break;
-
- case 'next':
- btnDisplay = lang.sNext;
- btnClass = button + (page < pages-1 ?
- '' : ' disabled');
- break;
-
- case 'last':
- btnDisplay = lang.sLast;
- btnClass = button + (page < pages-1 ?
- '' : ' disabled');
- break;
-
- default:
- btnDisplay = button + 1;
- btnClass = page === button ?
- 'active' : '';
- break;
- }
-
- if ( btnDisplay ) {
- node = $('', {
- 'class': classes.sPageButton+' '+btnClass,
- 'aria-controls': settings.sTableId,
- 'tabindex': settings.iTabIndex,
- 'id': idx === 0 && typeof button === 'string' ?
- settings.sTableId +'_'+ button :
- null
- } )
- .append( $('', {
- 'href': '#'
- } )
- .html( btnDisplay )
- )
- .appendTo( container );
-
- settings.oApi._fnBindAction(
- node, {action: button}, clickHandler
- );
- }
- }
- }
- };
-
- attach(
- $(host).empty().html('').children('ul'),
- buttons
- );
-};
-
-
-/*
- * TableTools Bootstrap compatibility
- * Required TableTools 2.1+
- */
-if ( DataTable.TableTools ) {
- // Set the classes that TableTools uses to something suitable for Bootstrap
- $.extend( true, DataTable.TableTools.classes, {
- "container": "DTTT btn-group",
- "buttons": {
- "normal": "btn btn-default",
- "disabled": "disabled"
- },
- "collection": {
- "container": "DTTT_dropdown dropdown-menu",
- "buttons": {
- "normal": "",
- "disabled": "disabled"
- }
- },
- "print": {
- "info": "DTTT_print_info"
- },
- "select": {
- "row": "active"
- }
- } );
-
- // Have the collection use a bootstrap compatible drop down
- $.extend( true, DataTable.TableTools.DEFAULTS.oTags, {
- "collection": {
- "container": "ul",
- "button": "li",
- "liner": "a"
- }
- } );
-}
-
-}; // /factory
-
-
-// Define as an AMD module if possible
-if ( typeof define === 'function' && define.amd ) {
- define( ['jquery', 'datatables'], factory );
-}
-else if ( typeof exports === 'object' ) {
- // Node/CommonJS
- factory( require('jquery'), require('datatables') );
-}
-else if ( jQuery ) {
- // Otherwise simply initialise as normal, stopping multiple evaluation
- factory( jQuery, jQuery.fn.dataTable );
-}
-
-
-})(window, document);
-
diff --git a/assets/js/jquery.csv.min.js b/assets/js/jquery.csv.min.js
deleted file mode 100644
index 23e6193..0000000
--- a/assets/js/jquery.csv.min.js
+++ /dev/null
@@ -1,73 +0,0 @@
-
-RegExp.escape=function(s){return s.replace(/[-\/\\^$*+?.()|[\]{}]/g,'\\$&');};(function($){'use strict'
-$.csv={defaults:{separator:',',delimiter:'"',headers:true},hooks:{castToScalar:function(value,state){var hasDot=/\./;if(isNaN(value)){return value;}else{if(hasDot.test(value)){return parseFloat(value);}else{var integer=parseInt(value);if(isNaN(integer)){return null;}else{return integer;}}}}},parsers:{parse:function(csv,options){var separator=options.separator;var delimiter=options.delimiter;if(!options.state.rowNum){options.state.rowNum=1;}
-if(!options.state.colNum){options.state.colNum=1;}
-var data=[];var entry=[];var state=0;var value=''
-var exit=false;function endOfEntry(){state=0;value='';if(options.start&&options.state.rowNum=options.end){exit=true;}
-options.state.rowNum++;options.state.colNum=1;}
-function endOfValue(){if(options.onParseValue===undefined){entry.push(value);}else{var hook=options.onParseValue(value,options.state);if(hook!==false){entry.push(hook);}}
-value='';state=0;options.state.colNum++;}
-var escSeparator=RegExp.escape(separator);var escDelimiter=RegExp.escape(delimiter);var match=/(D|S|\n|\r|[^DS\r\n]+)/;var matchSrc=match.source;matchSrc=matchSrc.replace(/S/g,escSeparator);matchSrc=matchSrc.replace(/D/g,escDelimiter);match=RegExp(matchSrc,'gm');csv.replace(match,function(m0){if(exit){return;}
-switch(state){case 0:if(m0===separator){value+='';endOfValue();break;}
-if(m0===delimiter){state=1;break;}
-if(m0==='\n'){endOfValue();endOfEntry();break;}
-if(/^\r$/.test(m0)){break;}
-value+=m0;state=3;break;case 1:if(m0===delimiter){state=2;break;}
-value+=m0;state=1;break;case 2:if(m0===delimiter){value+=m0;state=1;break;}
-if(m0===separator){endOfValue();break;}
-if(m0==='\n'){endOfValue();endOfEntry();break;}
-if(/^\r$/.test(m0)){break;}
-throw new Error('CSVDataError: Illegal State [Row:'+options.state.rowNum+'][Col:'+options.state.colNum+']');case 3:if(m0===separator){endOfValue();break;}
-if(m0==='\n'){endOfValue();endOfEntry();break;}
-if(/^\r$/.test(m0)){break;}
-if(m0===delimiter){throw new Error('CSVDataError: Illegal Quote [Row:'+options.state.rowNum+'][Col:'+options.state.colNum+']');}
-throw new Error('CSVDataError: Illegal Data [Row:'+options.state.rowNum+'][Col:'+options.state.colNum+']');default:throw new Error('CSVDataError: Unknown State [Row:'+options.state.rowNum+'][Col:'+options.state.colNum+']');}});if(entry.length!==0){endOfValue();endOfEntry();}
-return data;},splitLines:function(csv,options){var separator=options.separator;var delimiter=options.delimiter;if(!options.state.rowNum){options.state.rowNum=1;}
-var entries=[];var state=0;var entry='';var exit=false;function endOfLine(){state=0;if(options.start&&options.state.rowNum=options.end){exit=true;}
-options.state.rowNum++;}
-var escSeparator=RegExp.escape(separator);var escDelimiter=RegExp.escape(delimiter);var match=/(D|S|\n|\r|[^DS\r\n]+)/;var matchSrc=match.source;matchSrc=matchSrc.replace(/S/g,escSeparator);matchSrc=matchSrc.replace(/D/g,escDelimiter);match=RegExp(matchSrc,'gm');csv.replace(match,function(m0){if(exit){return;}
-switch(state){case 0:if(m0===separator){entry+=m0;state=0;break;}
-if(m0===delimiter){entry+=m0;state=1;break;}
-if(m0==='\n'){endOfLine();break;}
-if(/^\r$/.test(m0)){break;}
-entry+=m0;state=3;break;case 1:if(m0===delimiter){entry+=m0;state=2;break;}
-entry+=m0;state=1;break;case 2:var prevChar=entry.substr(entry.length-1);if(m0===delimiter&&prevChar===delimiter){entry+=m0;state=1;break;}
-if(m0===separator){entry+=m0;state=0;break;}
-if(m0==='\n'){endOfLine();break;}
-if(m0==='\r'){break;}
-throw new Error('CSVDataError: Illegal state [Row:'+options.state.rowNum+']');case 3:if(m0===separator){entry+=m0;state=0;break;}
-if(m0==='\n'){endOfLine();break;}
-if(m0==='\r'){break;}
-if(m0===delimiter){throw new Error('CSVDataError: Illegal quote [Row:'+options.state.rowNum+']');}
-throw new Error('CSVDataError: Illegal state [Row:'+options.state.rowNum+']');default:throw new Error('CSVDataError: Unknown state [Row:'+options.state.rowNum+']');}});if(entry!==''){endOfLine();}
-return entries;},parseEntry:function(csv,options){var separator=options.separator;var delimiter=options.delimiter;if(!options.state.rowNum){options.state.rowNum=1;}
-if(!options.state.colNum){options.state.colNum=1;}
-var entry=[];var state=0;var value='';function endOfValue(){if(options.onParseValue===undefined){entry.push(value);}else{var hook=options.onParseValue(value,options.state);if(hook!==false){entry.push(hook);}}
-value='';state=0;options.state.colNum++;}
-if(!options.match){var escSeparator=RegExp.escape(separator);var escDelimiter=RegExp.escape(delimiter);var match=/(D|S|\n|\r|[^DS\r\n]+)/;var matchSrc=match.source;matchSrc=matchSrc.replace(/S/g,escSeparator);matchSrc=matchSrc.replace(/D/g,escDelimiter);options.match=RegExp(matchSrc,'gm');}
-csv.replace(options.match,function(m0){switch(state){case 0:if(m0===separator){value+='';endOfValue();break;}
-if(m0===delimiter){state=1;break;}
-if(m0==='\n'||m0==='\r'){break;}
-value+=m0;state=3;break;case 1:if(m0===delimiter){state=2;break;}
-value+=m0;state=1;break;case 2:if(m0===delimiter){value+=m0;state=1;break;}
-if(m0===separator){endOfValue();break;}
-if(m0==='\n'||m0==='\r'){break;}
-throw new Error('CSVDataError: Illegal State [Row:'+options.state.rowNum+'][Col:'+options.state.colNum+']');case 3:if(m0===separator){endOfValue();break;}
-if(m0==='\n'||m0==='\r'){break;}
-if(m0===delimiter){throw new Error('CSVDataError: Illegal Quote [Row:'+options.state.rowNum+'][Col:'+options.state.colNum+']');}
-throw new Error('CSVDataError: Illegal Data [Row:'+options.state.rowNum+'][Col:'+options.state.colNum+']');default:throw new Error('CSVDataError: Unknown State [Row:'+options.state.rowNum+'][Col:'+options.state.colNum+']');}});endOfValue();return entry;}},toArray:function(csv,options,callback){var options=(options!==undefined?options:{});var config={};config.callback=((callback!==undefined&&typeof(callback)==='function')?callback:false);config.separator='separator'in options?options.separator:$.csv.defaults.separator;config.delimiter='delimiter'in options?options.delimiter:$.csv.defaults.delimiter;var state=(options.state!==undefined?options.state:{});var options={delimiter:config.delimiter,separator:config.separator,onParseEntry:options.onParseEntry,onParseValue:options.onParseValue,state:state}
-var entry=$.csv.parsers.parseEntry(csv,options);if(!config.callback){return entry;}else{config.callback('',entry);}},toArrays:function(csv,options,callback){var options=(options!==undefined?options:{});var config={};config.callback=((callback!==undefined&&typeof(callback)==='function')?callback:false);config.separator='separator'in options?options.separator:$.csv.defaults.separator;config.delimiter='delimiter'in options?options.delimiter:$.csv.defaults.delimiter;var data=[];var options={delimiter:config.delimiter,separator:config.separator,onParseEntry:options.onParseEntry,onParseValue:options.onParseValue,start:options.start,end:options.end,state:{rowNum:1,colNum:1}};data=$.csv.parsers.parse(csv,options);if(!config.callback){return data;}else{config.callback('',data);}},toObjects:function(csv,options,callback){var options=(options!==undefined?options:{});var config={};config.callback=((callback!==undefined&&typeof(callback)==='function')?callback:false);config.separator='separator'in options?options.separator:$.csv.defaults.separator;config.delimiter='delimiter'in options?options.delimiter:$.csv.defaults.delimiter;config.headers='headers'in options?options.headers:$.csv.defaults.headers;options.start='start'in options?options.start:1;if(config.headers){options.start++;}
-if(options.end&&config.headers){options.end++;}
-var lines=[];var data=[];var options={delimiter:config.delimiter,separator:config.separator,onParseEntry:options.onParseEntry,onParseValue:options.onParseValue,start:options.start,end:options.end,state:{rowNum:1,colNum:1},match:false};var headerOptions={delimiter:config.delimiter,separator:config.separator,start:1,end:1,state:{rowNum:1,colNum:1}}
-var headerLine=$.csv.parsers.splitLines(csv,headerOptions);var headers=$.csv.toArray(headerLine[0],options);var lines=$.csv.parsers.splitLines(csv,options);options.state.colNum=1;if(headers){options.state.rowNum=2;}else{options.state.rowNum=1;}
-for(var i=0,len=lines.length;i").css({position:"absolute",top:0,left:0,height:1,width:1,overflow:"hidden"}).append(h("").css({position:"absolute",
-top:1,left:1,width:100,overflow:"scroll"}).append(h('').css({width:"100%",height:10}))).appendTo("body"),c=b.find(".test");a.bScrollOversize=100===c[0].offsetWidth;a.bScrollbarLeft=1!==Math.round(c.offset().left);b.remove()}function hb(a,b,c,e,d,f){var g,i=!1;c!==k&&(g=c,i=!0);for(;e!==d;)a.hasOwnProperty(e)&&(g=i?b(g,a[e],e,a):a[e],i=!0,e+=f);return g}function Fa(a,b){var c=m.defaults.column,e=a.aoColumns.length,c=h.extend({},m.models.oColumn,c,{nTh:b?b:P.createElement("th"),sTitle:c.sTitle?
-c.sTitle:b?b.innerHTML:"",aDataSort:c.aDataSort?c.aDataSort:[e],mData:c.mData?c.mData:e,idx:e});a.aoColumns.push(c);c=a.aoPreSearchCols;c[e]=h.extend({},m.models.oSearch,c[e]);ka(a,e,h(b).data())}function ka(a,b,c){var b=a.aoColumns[b],e=a.oClasses,d=h(b.nTh);if(!b.sWidthOrig){b.sWidthOrig=d.attr("width")||null;var f=(d.attr("style")||"").match(/width:\s*(\d+[pxem%]+)/);f&&(b.sWidthOrig=f[1])}c!==k&&null!==c&&(fb(c),H(m.defaults.column,c),c.mDataProp!==k&&!c.mData&&(c.mData=c.mDataProp),c.sType&&
-(b._sManualType=c.sType),c.className&&!c.sClass&&(c.sClass=c.className),h.extend(b,c),E(b,c,"sWidth","sWidthOrig"),c.iDataSort!==k&&(b.aDataSort=[c.iDataSort]),E(b,c,"aDataSort"));var g=b.mData,i=W(g),j=b.mRender?W(b.mRender):null,c=function(a){return"string"===typeof a&&-1!==a.indexOf("@")};b._bAttrSrc=h.isPlainObject(g)&&(c(g.sort)||c(g.type)||c(g.filter));b.fnGetData=function(a,b,c){var e=i(a,b,k,c);return j&&b?j(e,b,a,c):e};b.fnSetData=function(a,b,c){return Q(g)(a,b,c)};"number"!==typeof g&&
-(a._rowReadObject=!0);a.oFeatures.bSort||(b.bSortable=!1,d.addClass(e.sSortableNone));a=-1!==h.inArray("asc",b.asSorting);c=-1!==h.inArray("desc",b.asSorting);!b.bSortable||!a&&!c?(b.sSortingClass=e.sSortableNone,b.sSortingClassJUI=""):a&&!c?(b.sSortingClass=e.sSortableAsc,b.sSortingClassJUI=e.sSortJUIAscAllowed):!a&&c?(b.sSortingClass=e.sSortableDesc,b.sSortingClassJUI=e.sSortJUIDescAllowed):(b.sSortingClass=e.sSortable,b.sSortingClassJUI=e.sSortJUI)}function X(a){if(!1!==a.oFeatures.bAutoWidth){var b=
-a.aoColumns;Ga(a);for(var c=0,e=b.length;cq[f])e(l.length+q[f],n);else if("string"===typeof q[f]){i=0;for(j=l.length;ib&&a[d]--; -1!=e&&c===k&&a.splice(e,1)}function ca(a,b,c,e){var d=a.aoData[b],f,g=function(c,f){for(;c.childNodes.length;)c.removeChild(c.firstChild);c.innerHTML=y(a,b,f,"display")};if("dom"===c||(!c||"auto"===c)&&"dom"===d.src)d._aData=na(a,d,e,e===k?k:d._aData).data;else{var i=d.anCells;if(i)if(e!==k)g(i[e],e);else{c=0;for(f=i.length;c").appendTo(g));b=0;for(c=l.length;btr").attr("role","row");h(g).find(">tr>th, >tr>td").addClass(n.sHeaderTH);
-h(i).find(">tr>th, >tr>td").addClass(n.sFooterTH);if(null!==i){a=a.aoFooter[0];b=0;for(c=a.length;b=a.fnRecordsDisplay()?0:g,a.iInitDisplayStart=-1);var g=a._iDisplayStart,n=a.fnDisplayEnd();if(a.bDeferLoading)a.bDeferLoading=!1,a.iDraw++,C(a,!1);else if(i){if(!a.bDestroying&&!kb(a))return}else a.iDraw++;if(0!==j.length){f=i?a.aoData.length:n;for(i=i?0:g;i",{"class":d?e[0]:""}).append(h(" | ",{valign:"top",colSpan:aa(a),"class":a.oClasses.sRowEmpty}).html(c))[0];w(a,"aoHeaderCallback","header",[h(a.nTHead).children("tr")[0],La(a),g,n,j]);w(a,"aoFooterCallback","footer",[h(a.nTFoot).children("tr")[0],La(a),g,n,j]);e=h(a.nTBody);e.children().detach();e.append(h(b));w(a,"aoDrawCallback","draw",[a]);a.bSorted=!1;a.bFiltered=!1;a.bDrawing=
-!1}}function N(a,b){var c=a.oFeatures,e=c.bFilter;c.bSort&&lb(a);e?fa(a,a.oPreviousSearch):a.aiDisplay=a.aiDisplayMaster.slice();!0!==b&&(a._iDisplayStart=0);a._drawHold=b;M(a);a._drawHold=!1}function mb(a){var b=a.oClasses,c=h(a.nTable),c=h("").insertBefore(c),e=a.oFeatures,d=h("",{id:a.sTableId+"_wrapper","class":b.sWrapper+(a.nTFoot?"":" "+b.sNoFooter)});a.nHolding=c[0];a.nTableWrapper=d[0];a.nTableReinsertBefore=a.nTable.nextSibling;for(var f=a.sDom.split(""),g,i,j,n,l,q,o=0;o")[0];n=f[o+1];if("'"==n||'"'==n){l="";for(q=2;f[o+q]!=n;)l+=f[o+q],q++;"H"==l?l=b.sJUIHeader:"F"==l&&(l=b.sJUIFooter);-1!=l.indexOf(".")?(n=l.split("."),j.id=n[0].substr(1,n[0].length-1),j.className=n[1]):"#"==l.charAt(0)?j.id=l.substr(1,l.length-1):j.className=l;o+=q}d.append(j);d=h(j)}else if(">"==i)d=d.parent();else if("l"==i&&e.bPaginate&&e.bLengthChange)g=nb(a);else if("f"==i&&e.bFilter)g=ob(a);else if("r"==i&&e.bProcessing)g=pb(a);else if("t"==i)g=qb(a);else if("i"==
-i&&e.bInfo)g=rb(a);else if("p"==i&&e.bPaginate)g=sb(a);else if(0!==m.ext.feature.length){j=m.ext.feature;q=0;for(n=j.length;q',i=e.sSearch,i=i.match(/_INPUT_/)?i.replace("_INPUT_",g):i+g,b=h("",{id:!f.f?c+"_filter":null,"class":b.sFilter}).append(h("").append(i)),f=function(){var b=!this.value?"":this.value;b!=d.sSearch&&
-(fa(a,{sSearch:b,bRegex:d.bRegex,bSmart:d.bSmart,bCaseInsensitive:d.bCaseInsensitive}),a._iDisplayStart=0,M(a))},g=null!==a.searchDelay?a.searchDelay:"ssp"===B(a)?400:0,j=h("input",b).val(d.sSearch).attr("placeholder",e.sSearchPlaceholder).bind("keyup.DT search.DT input.DT paste.DT cut.DT",g?ua(f,g):f).bind("keypress.DT",function(a){if(13==a.keyCode)return!1}).attr("aria-controls",c);h(a.nTable).on("search.dt.DT",function(b,c){if(a===c)try{j[0]!==P.activeElement&&j.val(d.sSearch)}catch(f){}});return b[0]}
-function fa(a,b,c){var e=a.oPreviousSearch,d=a.aoPreSearchCols,f=function(a){e.sSearch=a.sSearch;e.bRegex=a.bRegex;e.bSmart=a.bSmart;e.bCaseInsensitive=a.bCaseInsensitive};Ha(a);if("ssp"!=B(a)){vb(a,b.sSearch,c,b.bEscapeRegex!==k?!b.bEscapeRegex:b.bRegex,b.bSmart,b.bCaseInsensitive);f(b);for(b=0;b=b.length)a.aiDisplay=f.slice();else{if(g||
-c||d.length>b.length||0!==b.indexOf(d)||a.bSorted)a.aiDisplay=f.slice();b=a.aiDisplay;for(c=b.length-1;0<=c;c--)e.test(a.aoData[b[c]]._sFilterRow)||b.splice(c,1)}}function Qa(a,b,c,e){a=b?a:va(a);c&&(a="^(?=.*?"+h.map(a.match(/"[^"]+"|[^ ]+/g)||"",function(a){if('"'===a.charAt(0))var b=a.match(/^"(.*)"$/),a=b?b[1]:a;return a.replace('"',"")}).join(")(?=.*?")+").*$");return RegExp(a,e?"i":"")}function va(a){return a.replace(Yb,"\\$1")}function yb(a){var b=a.aoColumns,c,e,d,f,g,i,j,h,l=m.ext.type.search;
-c=!1;e=0;for(f=a.aoData.length;e",{"class":a.oClasses.sInfo,id:!c?b+"_info":null});c||(a.aoDrawCallback.push({fn:Bb,sName:"information"}),e.attr("role","status").attr("aria-live","polite"),h(a.nTable).attr("aria-describedby",b+"_info"));return e[0]}function Bb(a){var b=a.aanFeatures.i;if(0!==b.length){var c=a.oLanguage,e=a._iDisplayStart+
-1,d=a.fnDisplayEnd(),f=a.fnRecordsTotal(),g=a.fnRecordsDisplay(),i=g?c.sInfo:c.sInfoEmpty;g!==f&&(i+=" "+c.sInfoFiltered);i+=c.sInfoPostFix;i=Cb(a,i);c=c.fnInfoCallback;null!==c&&(i=c.call(a.oInstance,a,e,d,f,g,i));h(b).html(i)}}function Cb(a,b){var c=a.fnFormatNumber,e=a._iDisplayStart+1,d=a._iDisplayLength,f=a.fnRecordsDisplay(),g=-1===d;return b.replace(/_START_/g,c.call(a,e)).replace(/_END_/g,c.call(a,a.fnDisplayEnd())).replace(/_MAX_/g,c.call(a,a.fnRecordsTotal())).replace(/_TOTAL_/g,c.call(a,
-f)).replace(/_PAGE_/g,c.call(a,g?1:Math.ceil(e/d))).replace(/_PAGES_/g,c.call(a,g?1:Math.ceil(f/d)))}function ga(a){var b,c,e=a.iInitDisplayStart,d=a.aoColumns,f;c=a.oFeatures;if(a.bInitialised){mb(a);jb(a);ea(a,a.aoHeader);ea(a,a.aoFooter);C(a,!0);c.bAutoWidth&&Ga(a);b=0;for(c=d.length;b",{name:c+"_length","aria-controls":c,"class":b.sLengthSelect}),g=0,i=f.length;g").addClass(b.sLength);
-a.aanFeatures.l||(j[0].id=c+"_length");j.children().append(a.oLanguage.sLengthMenu.replace("_MENU_",d[0].outerHTML));h("select",j).val(a._iDisplayLength).bind("change.DT",function(){Ra(a,h(this).val());M(a)});h(a.nTable).bind("length.dt.DT",function(b,c,f){a===c&&h("select",j).val(f)});return j[0]}function sb(a){var b=a.sPaginationType,c=m.ext.pager[b],e="function"===typeof c,d=function(a){M(a)},b=h("").addClass(a.oClasses.sPaging+b)[0],f=a.aanFeatures;e||c.fnInit(a,b,d);f.p||(b.id=a.sTableId+
-"_paginate",a.aoDrawCallback.push({fn:function(a){if(e){var b=a._iDisplayStart,h=a._iDisplayLength,n=a.fnRecordsDisplay(),l=-1===h,b=l?0:Math.ceil(b/h),h=l?1:Math.ceil(n/h),n=c(b,h),q,l=0;for(q=f.p.length;lf&&(e=0)):"first"==b?e=0:"previous"==b?(e=0<=d?e-d:0,0>e&&(e=0)):"next"==
-b?e+d",{id:!a.aanFeatures.r?a.sTableId+"_processing":null,"class":a.oClasses.sProcessing}).html(a.oLanguage.sProcessing).insertBefore(a.nTable)[0]}function C(a,b){a.oFeatures.bProcessing&&h(a.aanFeatures.r).css("display",b?"block":"none");w(a,null,"processing",[a,b])}function qb(a){var b=h(a.nTable);b.attr("role",
-"grid");var c=a.oScroll;if(""===c.sX&&""===c.sY)return a.nTable;var e=c.sX,d=c.sY,f=a.oClasses,g=b.children("caption"),i=g.length?g[0]._captionSide:null,j=h(b[0].cloneNode(!1)),n=h(b[0].cloneNode(!1)),l=b.children("tfoot");c.sX&&"100%"===b.attr("width")&&b.removeAttr("width");l.length||(l=null);c=h("",{"class":f.sScrollWrapper}).append(h("",{"class":f.sScrollHead}).css({overflow:"hidden",position:"relative",border:0,width:e?!e?null:s(e):"100%"}).append(h("",{"class":f.sScrollHeadInner}).css({"box-sizing":"content-box",
-width:c.sXInner||"100%"}).append(j.removeAttr("id").css("margin-left",0).append("top"===i?g:null).append(b.children("thead"))))).append(h("",{"class":f.sScrollBody}).css({overflow:"auto",height:!d?null:s(d),width:!e?null:s(e)}).append(b));l&&c.append(h("",{"class":f.sScrollFoot}).css({overflow:"hidden",border:0,width:e?!e?null:s(e):"100%"}).append(h("",{"class":f.sScrollFootInner}).append(n.removeAttr("id").css("margin-left",0).append("bottom"===i?g:null).append(b.children("tfoot")))));
-var b=c.children(),q=b[0],f=b[1],o=l?b[2]:null;if(e)h(f).on("scroll.DT",function(){var a=this.scrollLeft;q.scrollLeft=a;l&&(o.scrollLeft=a)});a.nScrollHead=q;a.nScrollBody=f;a.nScrollFoot=o;a.aoDrawCallback.push({fn:Y,sName:"scrolling"});return c[0]}function Y(a){var b=a.oScroll,c=b.sX,e=b.sXInner,d=b.sY,f=b.iBarWidth,g=h(a.nScrollHead),i=g[0].style,j=g.children("div"),n=j[0].style,l=j.children("table"),j=a.nScrollBody,q=h(j),o=j.style,k=h(a.nScrollFoot).children("div"),p=k.children("table"),m=h(a.nTHead),
-r=h(a.nTable),t=r[0],u=t.style,K=a.nTFoot?h(a.nTFoot):null,ha=a.oBrowser,w=ha.bScrollOversize,x,v,y,L,z,A=[],B=[],C=[],D,E=function(a){a=a.style;a.paddingTop="0";a.paddingBottom="0";a.borderTopWidth="0";a.borderBottomWidth="0";a.height=0};r.children("thead, tfoot").remove();z=m.clone().prependTo(r);x=m.find("tr");y=z.find("tr");z.find("th, td").removeAttr("tabindex");K&&(L=K.clone().prependTo(r),v=K.find("tr"),L=L.find("tr"));c||(o.width="100%",g[0].style.width="100%");h.each(qa(a,z),function(b,c){D=
-la(a,b);c.style.width=a.aoColumns[D].sWidth});K&&G(function(a){a.style.width=""},L);b.bCollapse&&""!==d&&(o.height=q[0].offsetHeight+m[0].offsetHeight+"px");g=r.outerWidth();if(""===c){if(u.width="100%",w&&(r.find("tbody").height()>j.offsetHeight||"scroll"==q.css("overflow-y")))u.width=s(r.outerWidth()-f)}else""!==e?u.width=s(e):g==q.width()&&q.height()g-f&&(u.width=s(g))):u.width=s(g);g=r.outerWidth();G(E,y);G(function(a){C.push(a.innerHTML);A.push(s(h(a).css("width")))},
-y);G(function(a,b){a.style.width=A[b]},x);h(y).height(0);K&&(G(E,L),G(function(a){B.push(s(h(a).css("width")))},L),G(function(a,b){a.style.width=B[b]},v),h(L).height(0));G(function(a,b){a.innerHTML=''+C[b]+"
";a.style.width=A[b]},y);K&&G(function(a,b){a.innerHTML="";a.style.width=B[b]},L);if(r.outerWidth()j.offsetHeight||"scroll"==q.css("overflow-y")?g+f:g;if(w&&(j.scrollHeight>j.offsetHeight||"scroll"==q.css("overflow-y")))u.width=
-s(v-f);(""===c||""!==e)&&R(a,1,"Possible column misalignment",6)}else v="100%";o.width=s(v);i.width=s(v);K&&(a.nScrollFoot.style.width=s(v));!d&&w&&(o.height=s(t.offsetHeight+f));d&&b.bCollapse&&(o.height=s(d),b=c&&t.offsetWidth>j.offsetWidth?f:0,t.offsetHeightj.clientHeight||"scroll"==q.css("overflow-y");ha="padding"+(ha.bScrollbarLeft?"Left":"Right");n[ha]=l?f+"px":"0px";K&&(p[0].style.width=
-s(b),k[0].style.width=s(b),k[0].style[ha]=l?f+"px":"0px");q.scroll();if((a.bSorted||a.bFiltered)&&!a._drawHold)j.scrollTop=0}function G(a,b,c){for(var e=0,d=0,f=b.length,g,i;d
"));i.find("tfoot th, tfoot td").css("width","");var p=i.find("tbody tr"),j=qa(a,i.find("thead")[0]);for(o=0;o").css("width",s(a)).appendTo(b||P.body),e=c[0].offsetWidth;c.remove();
-return e}function Fb(a,b){var c=a.oScroll;if(c.sX||c.sY)c=!c.sX?c.iBarWidth:0,b.style.width=s(h(b).outerWidth()-c)}function Eb(a,b){var c=Gb(a,b);if(0>c)return null;var e=a.aoData[c];return!e.nTr?h(" | ").html(y(a,c,b,"display"))[0]:e.anCells[b]}function Gb(a,b){for(var c,e=-1,d=-1,f=0,g=a.aoData.length;fe&&(e=c.length,d=f);return d}function s(a){return null===a?"0px":"number"==typeof a?0>a?"0px":a+"px":a.match(/\d$/)?a+"px":a}function Hb(){var a=
-m.__scrollbarWidth;if(a===k){var b=h("").css({position:"absolute",top:0,left:0,width:"100%",height:150,padding:0,overflow:"scroll",visibility:"hidden"}).appendTo("body"),a=b[0].offsetWidth-b[0].clientWidth;m.__scrollbarWidth=a;b.remove()}return a}function T(a){var b,c,e=[],d=a.aoColumns,f,g,i,j;b=a.aaSortingFixed;c=h.isPlainObject(b);var n=[];f=function(a){a.length&&!h.isArray(a[0])?n.push(a):n.push.apply(n,a)};h.isArray(b)&&f(b);c&&b.pre&&f(b.pre);f(a.aaSorting);c&&b.post&&f(b.post);for(a=0;a<
-n.length;a++){j=n[a][0];f=d[j].aDataSort;b=0;for(c=f.length;bd?1:0,0!==c)return"asc"===h.dir?c:-c;c=e[a];d=e[b];return cd?1:0}):h.sort(function(a,b){var c,g,h,i,j=n.length,k=f[a]._aSortData,m=f[b]._aSortData;for(h=0;hg?1:0})}a.bSorted=!0}function Jb(a){for(var b,c,e=a.aoColumns,d=
-T(a),a=a.oLanguage.oAria,f=0,g=e.length;f/g,"");var h=c.nTh;h.removeAttribute("aria-sort");c.bSortable&&(0d?d+1:3));d=0;for(f=e.length;dd?d+1:3))}a.aLastSort=e}function Ib(a,b){var c=a.aoColumns[b],e=m.ext.order[c.sSortDataType],d;e&&(d=e.call(a.oInstance,
-a,b,$(a,b)));for(var f,g=m.ext.type.order[c.sType+"-pre"],h=0,j=a.aoData.length;h=e.length?[0,c[1]]:c)}));d.search!==k&&h.extend(a.oPreviousSearch,Ab(d.search));b=0;for(c=d.columns.length;b=c&&(b=c-e);b-=b%e;if(-1===e||0>b)b=0;a._iDisplayStart=b}function Pa(a,b){var c=a.renderer,e=m.ext.renderer[b];return h.isPlainObject(c)&&c[b]?e[c[b]]||e._:"string"===typeof c?e[c]||e._:e._}function B(a){return a.oFeatures.bServerSide?"ssp":a.ajax||a.sAjaxSource?"ajax":"dom"}function Wa(a,b){var c=[],c=Mb.numbers_length,e=Math.floor(c/2);b<=c?c=U(0,b):a<=e?(c=U(0,c-2),c.push("ellipsis"),
-c.push(b-1)):(a>=b-1-e?c=U(b-(c-2),b):(c=U(a-e+2,a+e-1),c.push("ellipsis"),c.push(b-1)),c.splice(0,0,"ellipsis"),c.splice(0,0,0));c.DT_el="span";return c}function db(a){h.each({num:function(b){return Aa(b,a)},"num-fmt":function(b){return Aa(b,a,Xa)},"html-num":function(b){return Aa(b,a,Ba)},"html-num-fmt":function(b){return Aa(b,a,Ba,Xa)}},function(b,c){x.type.order[b+a+"-pre"]=c;b.match(/^html\-/)&&(x.type.search[b+a]=x.type.search.html)})}function Nb(a){return function(){var b=[za(this[m.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));
-return m.ext.internal[a].apply(this,b)}}var m,x,t,r,u,Ya={},Ob=/[\r\n]/g,Ba=/<.*?>/g,ac=/^[\w\+\-]/,bc=/[\w\+\-]$/,Yb=RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^|\\-)","g"),Xa=/[',$\u00a3\u20ac\u00a5%\u2009\u202F\u20BD\u20a9\u20BArfk]/gi,I=function(a){return!a||!0===a||"-"===a?!0:!1},Pb=function(a){var b=parseInt(a,10);return!isNaN(b)&&isFinite(a)?b:null},Qb=function(a,b){Ya[b]||(Ya[b]=RegExp(va(b),"g"));return"string"===typeof a&&"."!==b?a.replace(/\./g,"").replace(Ya[b],
-"."):a},Za=function(a,b,c){var e="string"===typeof a;if(I(a))return!0;b&&e&&(a=Qb(a,b));c&&e&&(a=a.replace(Xa,""));return!isNaN(parseFloat(a))&&isFinite(a)},Rb=function(a,b,c){return I(a)?!0:!(I(a)||"string"===typeof a)?null:Za(a.replace(Ba,""),b,c)?!0:null},D=function(a,b,c){var e=[],d=0,f=a.length;if(c!==k)for(;d")[0],Zb=wa.textContent!==k,$b=/<.*?>/g;m=function(a){this.$=function(a,
-b){return this.api(!0).$(a,b)};this._=function(a,b){return this.api(!0).rows(a,b).data()};this.api=function(a){return a?new t(za(this[x.iApiIndex])):new t(this)};this.fnAddData=function(a,b){var c=this.api(!0),e=h.isArray(a)&&(h.isArray(a[0])||h.isPlainObject(a[0]))?c.rows.add(a):c.row.add(a);(b===k||b)&&c.draw();return e.flatten().toArray()};this.fnAdjustColumnSizing=function(a){var b=this.api(!0).columns.adjust(),c=b.settings()[0],e=c.oScroll;a===k||a?b.draw(!1):(""!==e.sX||""!==e.sY)&&Y(c)};this.fnClearTable=
-function(a){var b=this.api(!0).clear();(a===k||a)&&b.draw()};this.fnClose=function(a){this.api(!0).row(a).child.hide()};this.fnDeleteRow=function(a,b,c){var e=this.api(!0),a=e.rows(a),d=a.settings()[0],h=d.aoData[a[0][0]];a.remove();b&&b.call(this,d,h);(c===k||c)&&e.draw();return h};this.fnDestroy=function(a){this.api(!0).destroy(a)};this.fnDraw=function(a){this.api(!0).draw(a)};this.fnFilter=function(a,b,c,e,d,h){d=this.api(!0);null===b||b===k?d.search(a,c,e,h):d.column(b).search(a,c,e,h);d.draw()};
-this.fnGetData=function(a,b){var c=this.api(!0);if(a!==k){var e=a.nodeName?a.nodeName.toLowerCase():"";return b!==k||"td"==e||"th"==e?c.cell(a,b).data():c.row(a).data()||null}return c.data().toArray()};this.fnGetNodes=function(a){var b=this.api(!0);return a!==k?b.row(a).node():b.rows().nodes().flatten().toArray()};this.fnGetPosition=function(a){var b=this.api(!0),c=a.nodeName.toUpperCase();return"TR"==c?b.row(a).index():"TD"==c||"TH"==c?(a=b.cell(a).index(),[a.row,a.columnVisible,a.column]):null};
-this.fnIsOpen=function(a){return this.api(!0).row(a).child.isShown()};this.fnOpen=function(a,b,c){return this.api(!0).row(a).child(b,c).show().child()[0]};this.fnPageChange=function(a,b){var c=this.api(!0).page(a);(b===k||b)&&c.draw(!1)};this.fnSetColumnVis=function(a,b,c){a=this.api(!0).column(a).visible(b);(c===k||c)&&a.columns.adjust().draw()};this.fnSettings=function(){return za(this[x.iApiIndex])};this.fnSort=function(a){this.api(!0).order(a).draw()};this.fnSortListener=function(a,b,c){this.api(!0).order.listener(a,
-b,c)};this.fnUpdate=function(a,b,c,e,d){var h=this.api(!0);c===k||null===c?h.row(b).data(a):h.cell(b,c).data(a);(d===k||d)&&h.columns.adjust();(e===k||e)&&h.draw();return 0};this.fnVersionCheck=x.fnVersionCheck;var b=this,c=a===k,e=this.length;c&&(a={});this.oApi=this.internal=x.internal;for(var d in m.ext.internal)d&&(this[d]=Nb(d));this.each(function(){var d={},d=1t<"F"ip>'),p.renderer)?h.isPlainObject(p.renderer)&&!p.renderer.header&&(p.renderer.header="jqueryui"):p.renderer="jqueryui":h.extend(j,m.ext.classes,d.oClasses);q.addClass(j.sTable);if(""!==p.oScroll.sX||""!==p.oScroll.sY)p.oScroll.iBarWidth=Hb();!0===p.oScroll.sX&&
-(p.oScroll.sX="100%");p.iInitDisplayStart===k&&(p.iInitDisplayStart=d.iDisplayStart,p._iDisplayStart=d.iDisplayStart);null!==d.iDeferLoading&&(p.bDeferLoading=!0,g=h.isArray(d.iDeferLoading),p._iRecordsDisplay=g?d.iDeferLoading[0]:d.iDeferLoading,p._iRecordsTotal=g?d.iDeferLoading[1]:d.iDeferLoading);var t=p.oLanguage;h.extend(!0,t,d.oLanguage);""!==t.sUrl&&(h.ajax({dataType:"json",url:t.sUrl,success:function(a){O(a);H(l.oLanguage,a);h.extend(true,t,a);ga(p)},error:function(){ga(p)}}),n=!0);null===
-d.asStripeClasses&&(p.asStripeClasses=[j.sStripeOdd,j.sStripeEven]);var g=p.asStripeClasses,s=q.children("tbody").find("tr").eq(0);-1!==h.inArray(!0,h.map(g,function(a){return s.hasClass(a)}))&&(h("tbody tr",this).removeClass(g.join(" ")),p.asDestroyStripes=g.slice());o=[];g=this.getElementsByTagName("thead");0!==g.length&&(da(p.aoHeader,g[0]),o=qa(p));if(null===d.aoColumns){r=[];g=0;for(i=o.length;g").appendTo(this));p.nTHead=i[0];i=q.children("tbody");
-0===i.length&&(i=h("").appendTo(this));p.nTBody=i[0];i=q.children("tfoot");if(0===i.length&&0").appendTo(this);0===i.length||0===i.children().length?q.addClass(j.sNoFooter):0a?new t(b[a],this[a]):null},filter:function(a){var b=[];
-if(v.filter)b=v.filter.call(this,a,this);else for(var c=0,e=this.length;c | ").addClass(b),h("td",c).addClass(b).html(a)[0].colSpan=aa(e),d.push(c[0]))};f(a,b);c._details&&c._details.remove();c._details=h(d);c._detailsShow&&c._details.insertAfter(c.nTr)}return this});r(["row().child.show()","row().child().show()"],function(){Vb(this,!0);return this});r(["row().child.hide()","row().child().hide()"],function(){Vb(this,!1);return this});r(["row().child.remove()",
-"row().child().remove()"],function(){cb(this);return this});r("row().child.isShown()",function(){var a=this.context;return a.length&&this.length?a[0].aoData[this[0]]._detailsShow||!1:!1});var dc=/^(.+):(name|visIdx|visible)$/,Wb=function(a,b,c,e,d){for(var c=[],e=0,f=d.length;e=0?b:g.length+b];if(typeof a==="function"){var d=Ca(c,f);return h.map(g,function(b,f){return a(f,Wb(c,f,0,0,d),j[f])?f:null})}var k=typeof a==="string"?a.match(dc):"";if(k)switch(k[2]){case "visIdx":case "visible":b=parseInt(k[1],10);if(b<0){var m=h.map(g,function(a,b){return a.bVisible?b:null});return[m[m.length+b]]}return[la(c,b)];case "name":return h.map(i,function(a,b){return a===k[1]?b:null})}else return h(j).filter(a).map(function(){return h.inArray(this,
-j)}).toArray()})},1);c.selector.cols=a;c.selector.opts=b;return c});u("columns().header()","column().header()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].nTh},1)});u("columns().footer()","column().footer()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].nTf},1)});u("columns().data()","column().data()",function(){return this.iterator("column-rows",Wb,1)});u("columns().dataSrc()","column().dataSrc()",function(){return this.iterator("column",
-function(a,b){return a.aoColumns[b].mData},1)});u("columns().cache()","column().cache()",function(a){return this.iterator("column-rows",function(b,c,e,d,f){return ia(b.aoData,f,"search"===a?"_aFilterData":"_aSortData",c)},1)});u("columns().nodes()","column().nodes()",function(){return this.iterator("column-rows",function(a,b,c,e,d){return ia(a.aoData,d,"anCells",b)},1)});u("columns().visible()","column().visible()",function(a,b){return this.iterator("column",function(c,e){if(a===k)return c.aoColumns[e].bVisible;
-var d=c.aoColumns,f=d[e],g=c.aoData,i,j,n;if(a!==k&&f.bVisible!==a){if(a){var l=h.inArray(!0,D(d,"bVisible"),e+1);i=0;for(j=g.length;ie;return!0};m.isDataTable=m.fnIsDataTable=function(a){var b=h(a).get(0),c=!1;h.each(m.settings,
-function(a,d){var f=d.nScrollHead?h("table",d.nScrollHead)[0]:null,g=d.nScrollFoot?h("table",d.nScrollFoot)[0]:null;if(d.nTable===b||f===b||g===b)c=!0});return c};m.tables=m.fnTables=function(a){return h.map(m.settings,function(b){if(!a||a&&h(b.nTable).is(":visible"))return b.nTable})};m.util={throttle:ua,escapeRegex:va};m.camelToHungarian=H;r("$()",function(a,b){var c=this.rows(b).nodes(),c=h(c);return h([].concat(c.filter(a).toArray(),c.find(a).toArray()))});h.each(["on","one","off"],function(a,
-b){r(b+"()",function(){var a=Array.prototype.slice.call(arguments);a[0].match(/\.dt\b/)||(a[0]+=".dt");var e=h(this.tables().nodes());e[b].apply(e,a);return this})});r("clear()",function(){return this.iterator("table",function(a){oa(a)})});r("settings()",function(){return new t(this.context,this.context)});r("init()",function(){var a=this.context;return a.length?a[0].oInit:null});r("data()",function(){return this.iterator("table",function(a){return D(a.aoData,"_aData")}).flatten()});r("destroy()",
-function(a){a=a||!1;return this.iterator("table",function(b){var c=b.nTableWrapper.parentNode,e=b.oClasses,d=b.nTable,f=b.nTBody,g=b.nTHead,i=b.nTFoot,j=h(d),f=h(f),k=h(b.nTableWrapper),l=h.map(b.aoData,function(a){return a.nTr}),q;b.bDestroying=!0;w(b,"aoDestroyCallback","destroy",[b]);a||(new t(b)).columns().visible(!0);k.unbind(".DT").find(":not(tbody *)").unbind(".DT");h(Ea).unbind(".DT-"+b.sInstance);d!=g.parentNode&&(j.children("thead").detach(),j.append(g));i&&d!=i.parentNode&&(j.children("tfoot").detach(),
-j.append(i));j.detach();k.detach();b.aaSorting=[];b.aaSortingFixed=[];xa(b);h(l).removeClass(b.asStripeClasses.join(" "));h("th, td",g).removeClass(e.sSortable+" "+e.sSortableAsc+" "+e.sSortableDesc+" "+e.sSortableNone);b.bJUI&&(h("th span."+e.sSortIcon+", td span."+e.sSortIcon,g).detach(),h("th, td",g).each(function(){var a=h("div."+e.sSortJUIWrapper,this);h(this).append(a.contents());a.detach()}));!a&&c&&c.insertBefore(d,b.nTableReinsertBefore);f.children().detach();f.append(l);j.css("width",b.sDestroyWidth).removeClass(e.sTable);
-(q=b.asDestroyStripes.length)&&f.children().each(function(a){h(this).addClass(b.asDestroyStripes[a%q])});c=h.inArray(b,m.settings);-1!==c&&m.settings.splice(c,1)})});h.each(["column","row","cell"],function(a,b){r(b+"s().every()",function(a){return this.iterator(b,function(e,d,f){a.call((new t(e))[b](d,f))})})});m.version="1.10.6";m.settings=[];m.models={};m.models.oSearch={bCaseInsensitive:!0,sSearch:"",bRegex:!1,bSmart:!0};m.models.oRow={nTr:null,anCells:null,_aData:[],_aSortData:null,_aFilterData:null,
-_sFilterRow:null,_sRowStripe:"",src:null};m.models.oColumn={idx:null,aDataSort:null,asSorting:null,bSearchable:null,bSortable:null,bVisible:null,_sManualType:null,_bAttrSrc:!1,fnCreatedCell:null,fnGetData:null,fnSetData:null,mData:null,mRender:null,nTh:null,nTf:null,sClass:null,sContentPadding:null,sDefaultContent:null,sName:null,sSortDataType:"std",sSortingClass:null,sSortingClassJUI:null,sTitle:null,sType:null,sWidth:null,sWidthOrig:null};m.defaults={aaData:null,aaSorting:[[0,"asc"]],aaSortingFixed:[],
-ajax:null,aLengthMenu:[10,25,50,100],aoColumns:null,aoColumnDefs:null,aoSearchCols:[],asStripeClasses:null,bAutoWidth:!0,bDeferRender:!1,bDestroy:!1,bFilter:!0,bInfo:!0,bJQueryUI:!1,bLengthChange:!0,bPaginate:!0,bProcessing:!1,bRetrieve:!1,bScrollCollapse:!1,bServerSide:!1,bSort:!0,bSortMulti:!0,bSortCellsTop:!1,bSortClasses:!0,bStateSave:!1,fnCreatedRow:null,fnDrawCallback:null,fnFooterCallback:null,fnFormatNumber:function(a){return a.toString().replace(/\B(?=(\d{3})+(?!\d))/g,this.oLanguage.sThousands)},
-fnHeaderCallback:null,fnInfoCallback:null,fnInitComplete:null,fnPreDrawCallback:null,fnRowCallback:null,fnServerData:null,fnServerParams:null,fnStateLoadCallback:function(a){try{return JSON.parse((-1===a.iStateDuration?sessionStorage:localStorage).getItem("DataTables_"+a.sInstance+"_"+location.pathname))}catch(b){}},fnStateLoadParams:null,fnStateLoaded:null,fnStateSaveCallback:function(a,b){try{(-1===a.iStateDuration?sessionStorage:localStorage).setItem("DataTables_"+a.sInstance+"_"+location.pathname,
-JSON.stringify(b))}catch(c){}},fnStateSaveParams:null,iStateDuration:7200,iDeferLoading:null,iDisplayLength:10,iDisplayStart:0,iTabIndex:0,oClasses:{},oLanguage:{oAria:{sSortAscending:": activate to sort column ascending",sSortDescending:": activate to sort column descending"},oPaginate:{sFirst:"First",sLast:"Last",sNext:"Next",sPrevious:"Previous"},sEmptyTable:"No data available in table",sInfo:"Showing _START_ to _END_ of _TOTAL_ entries",sInfoEmpty:"Showing 0 to 0 of 0 entries",sInfoFiltered:"(filtered from _MAX_ total entries)",
-sInfoPostFix:"",sDecimal:"",sThousands:",",sLengthMenu:"Show _MENU_ entries",sLoadingRecords:"Loading...",sProcessing:"Processing...",sSearch:"Search:",sSearchPlaceholder:"",sUrl:"",sZeroRecords:"No matching records found"},oSearch:h.extend({},m.models.oSearch),sAjaxDataProp:"data",sAjaxSource:null,sDom:"lfrtip",searchDelay:null,sPaginationType:"simple_numbers",sScrollX:"",sScrollXInner:"",sScrollY:"",sServerMethod:"GET",renderer:null};V(m.defaults);m.defaults.column={aDataSort:null,iDataSort:-1,
-asSorting:["asc","desc"],bSearchable:!0,bSortable:!0,bVisible:!0,fnCreatedCell:null,mData:null,mRender:null,sCellType:"td",sClass:"",sContentPadding:"",sDefaultContent:null,sName:"",sSortDataType:"std",sTitle:null,sType:null,sWidth:null};V(m.defaults.column);m.models.oSettings={oFeatures:{bAutoWidth:null,bDeferRender:null,bFilter:null,bInfo:null,bLengthChange:null,bPaginate:null,bProcessing:null,bServerSide:null,bSort:null,bSortMulti:null,bSortClasses:null,bStateSave:null},oScroll:{bCollapse:null,
-iBarWidth:0,sX:null,sXInner:null,sY:null},oLanguage:{fnInfoCallback:null},oBrowser:{bScrollOversize:!1,bScrollbarLeft:!1},ajax:null,aanFeatures:[],aoData:[],aiDisplay:[],aiDisplayMaster:[],aoColumns:[],aoHeader:[],aoFooter:[],oPreviousSearch:{},aoPreSearchCols:[],aaSorting:null,aaSortingFixed:[],asStripeClasses:null,asDestroyStripes:[],sDestroyWidth:0,aoRowCallback:[],aoHeaderCallback:[],aoFooterCallback:[],aoDrawCallback:[],aoRowCreatedCallback:[],aoPreDrawCallback:[],aoInitComplete:[],aoStateSaveParams:[],
-aoStateLoadParams:[],aoStateLoaded:[],sTableId:"",nTable:null,nTHead:null,nTFoot:null,nTBody:null,nTableWrapper:null,bDeferLoading:!1,bInitialised:!1,aoOpenRows:[],sDom:null,searchDelay:null,sPaginationType:"two_button",iStateDuration:0,aoStateSave:[],aoStateLoad:[],oSavedState:null,oLoadedState:null,sAjaxSource:null,sAjaxDataProp:null,bAjaxDataGet:!0,jqXHR:null,json:k,oAjaxData:k,fnServerData:null,aoServerParams:[],sServerMethod:null,fnFormatNumber:null,aLengthMenu:null,iDraw:0,bDrawing:!1,iDrawError:-1,
-_iDisplayLength:10,_iDisplayStart:0,_iRecordsTotal:0,_iRecordsDisplay:0,bJUI:null,oClasses:{},bFiltered:!1,bSorted:!1,bSortCellsTop:null,oInit:null,aoDestroyCallback:[],fnRecordsTotal:function(){return"ssp"==B(this)?1*this._iRecordsTotal:this.aiDisplayMaster.length},fnRecordsDisplay:function(){return"ssp"==B(this)?1*this._iRecordsDisplay:this.aiDisplay.length},fnDisplayEnd:function(){var a=this._iDisplayLength,b=this._iDisplayStart,c=b+a,e=this.aiDisplay.length,d=this.oFeatures,f=d.bPaginate;return d.bServerSide?
-!1===f||-1===a?b+e:Math.min(b+a,this._iRecordsDisplay):!f||c>e||-1===a?e:c},oInstance:null,sInstance:null,iTabIndex:0,nScrollHead:null,nScrollFoot:null,aLastSort:[],oPlugins:{}};m.ext=x={buttons:{},classes:{},errMode:"alert",feature:[],search:[],internal:{},legacy:{ajax:null},pager:{},renderer:{pageButton:{},header:{}},order:{},type:{detect:[],search:{},order:{}},_unique:0,fnVersionCheck:m.fnVersionCheck,iApiIndex:0,oJUIClasses:{},sVersion:m.version};h.extend(x,{afnFiltering:x.search,aTypes:x.type.detect,
-ofnSearch:x.type.search,oSort:x.type.order,afnSortData:x.order,aoFeatures:x.feature,oApi:x.internal,oStdClasses:x.classes,oPagination:x.pager});h.extend(m.ext.classes,{sTable:"dataTable",sNoFooter:"no-footer",sPageButton:"paginate_button",sPageButtonActive:"current",sPageButtonDisabled:"disabled",sStripeOdd:"odd",sStripeEven:"even",sRowEmpty:"dataTables_empty",sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",sInfo:"dataTables_info",sPaging:"dataTables_paginate paging_",sLength:"dataTables_length",
-sProcessing:"dataTables_processing",sSortAsc:"sorting_asc",sSortDesc:"sorting_desc",sSortable:"sorting",sSortableAsc:"sorting_asc_disabled",sSortableDesc:"sorting_desc_disabled",sSortableNone:"sorting_disabled",sSortColumn:"sorting_",sFilterInput:"",sLengthSelect:"",sScrollWrapper:"dataTables_scroll",sScrollHead:"dataTables_scrollHead",sScrollHeadInner:"dataTables_scrollHeadInner",sScrollBody:"dataTables_scrollBody",sScrollFoot:"dataTables_scrollFoot",sScrollFootInner:"dataTables_scrollFootInner",
-sHeaderTH:"",sFooterTH:"",sSortJUIAsc:"",sSortJUIDesc:"",sSortJUI:"",sSortJUIAscAllowed:"",sSortJUIDescAllowed:"",sSortJUIWrapper:"",sSortIcon:"",sJUIHeader:"",sJUIFooter:""});var Da="",Da="",F=Da+"ui-state-default",ja=Da+"css_right ui-icon ui-icon-",Xb=Da+"fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix";h.extend(m.ext.oJUIClasses,m.ext.classes,{sPageButton:"fg-button ui-button "+F,sPageButtonActive:"ui-state-disabled",sPageButtonDisabled:"ui-state-disabled",sPaging:"dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi ui-buttonset-multi paging_",
-sSortAsc:F+" sorting_asc",sSortDesc:F+" sorting_desc",sSortable:F+" sorting",sSortableAsc:F+" sorting_asc_disabled",sSortableDesc:F+" sorting_desc_disabled",sSortableNone:F+" sorting_disabled",sSortJUIAsc:ja+"triangle-1-n",sSortJUIDesc:ja+"triangle-1-s",sSortJUI:ja+"carat-2-n-s",sSortJUIAscAllowed:ja+"carat-1-n",sSortJUIDescAllowed:ja+"carat-1-s",sSortJUIWrapper:"DataTables_sort_wrapper",sSortIcon:"DataTables_sort_icon",sScrollHead:"dataTables_scrollHead "+F,sScrollFoot:"dataTables_scrollFoot "+F,
-sHeaderTH:F,sFooterTH:F,sJUIHeader:Xb+" ui-corner-tl ui-corner-tr",sJUIFooter:Xb+" ui-corner-bl ui-corner-br"});var Mb=m.ext.pager;h.extend(Mb,{simple:function(){return["previous","next"]},full:function(){return["first","previous","next","last"]},simple_numbers:function(a,b){return["previous",Wa(a,b),"next"]},full_numbers:function(a,b){return["first","previous",Wa(a,b),"next","last"]},_numbers:Wa,numbers_length:7});h.extend(!0,m.ext.renderer,{pageButton:{_:function(a,b,c,e,d,f){var g=a.oClasses,i=
-a.oLanguage.oPaginate,j,k,l=0,m=function(b,e){var o,r,t,s,u=function(b){Ta(a,b.data.action,true)};o=0;for(r=e.length;o").appendTo(b);m(t,s)}else{k=j="";switch(s){case "ellipsis":b.append('…');break;case "first":j=i.sFirst;k=s+(d>0?"":" "+g.sPageButtonDisabled);break;case "previous":j=i.sPrevious;k=s+(d>0?"":" "+g.sPageButtonDisabled);break;case "next":j=i.sNext;k=s+(d",{"class":g.sPageButton+" "+k,"aria-controls":a.sTableId,"data-dt-idx":l,tabindex:a.iTabIndex,id:c===0&&typeof s==="string"?a.sTableId+"_"+s:null}).html(j).appendTo(b);Va(t,{action:s},u);l++}}}},o;try{o=h(P.activeElement).data("dt-idx")}catch(r){}m(h(b).empty(),e);o&&h(b).find("[data-dt-idx="+o+"]").focus()}}});h.extend(m.ext.type.detect,[function(a,b){var c=b.oLanguage.sDecimal;
-return Za(a,c)?"num"+c:null},function(a){if(a&&!(a instanceof Date)&&(!ac.test(a)||!bc.test(a)))return null;var b=Date.parse(a);return null!==b&&!isNaN(b)||I(a)?"date":null},function(a,b){var c=b.oLanguage.sDecimal;return Za(a,c,!0)?"num-fmt"+c:null},function(a,b){var c=b.oLanguage.sDecimal;return Rb(a,c)?"html-num"+c:null},function(a,b){var c=b.oLanguage.sDecimal;return Rb(a,c,!0)?"html-num-fmt"+c:null},function(a){return I(a)||"string"===typeof a&&-1!==a.indexOf("<")?"html":null}]);h.extend(m.ext.type.search,
-{html:function(a){return I(a)?a:"string"===typeof a?a.replace(Ob," ").replace(Ba,""):""},string:function(a){return I(a)?a:"string"===typeof a?a.replace(Ob," "):a}});var Aa=function(a,b,c,e){if(0!==a&&(!a||"-"===a))return-Infinity;b&&(a=Qb(a,b));a.replace&&(c&&(a=a.replace(c,"")),e&&(a=a.replace(e,"")));return 1*a};h.extend(x.type.order,{"date-pre":function(a){return Date.parse(a)||0},"html-pre":function(a){return I(a)?"":a.replace?a.replace(/<.*?>/g,"").toLowerCase():a+""},"string-pre":function(a){return I(a)?
-"":"string"===typeof a?a.toLowerCase():!a.toString?"":a.toString()},"string-asc":function(a,b){return ab?1:0},"string-desc":function(a,b){return ab?-1:0}});db("");h.extend(!0,m.ext.renderer,{header:{_:function(a,b,c,e){h(a.nTable).on("order.dt.DT",function(d,f,g,h){if(a===f){d=c.idx;b.removeClass(c.sSortingClass+" "+e.sSortAsc+" "+e.sSortDesc).addClass(h[d]=="asc"?e.sSortAsc:h[d]=="desc"?e.sSortDesc:c.sSortingClass)}})},jqueryui:function(a,b,c,e){h("").addClass(e.sSortJUIWrapper).append(b.contents()).append(h("").addClass(e.sSortIcon+
-" "+c.sSortingClassJUI)).appendTo(b);h(a.nTable).on("order.dt.DT",function(d,f,g,h){if(a===f){d=c.idx;b.removeClass(e.sSortAsc+" "+e.sSortDesc).addClass(h[d]=="asc"?e.sSortAsc:h[d]=="desc"?e.sSortDesc:c.sSortingClass);b.find("span."+e.sSortIcon).removeClass(e.sSortJUIAsc+" "+e.sSortJUIDesc+" "+e.sSortJUI+" "+e.sSortJUIAscAllowed+" "+e.sSortJUIDescAllowed).addClass(h[d]=="asc"?e.sSortJUIAsc:h[d]=="desc"?e.sSortJUIDesc:c.sSortingClassJUI)}})}}});m.render={number:function(a,b,c,e){return{display:function(d){if("number"!==
-typeof d&&"string"!==typeof d)return d;var f=0>d?"-":"",d=Math.abs(parseFloat(d)),g=parseInt(d,10),d=c?b+(d-g).toFixed(c).substring(2):"";return f+(e||"")+g.toString().replace(/\B(?=(\d{3})+(?!\d))/g,a)+d}}}};h.extend(m.ext.internal,{_fnExternApiFunc:Nb,_fnBuildAjax:ra,_fnAjaxUpdate:kb,_fnAjaxParameters:tb,_fnAjaxUpdateDraw:ub,_fnAjaxDataSrc:sa,_fnAddColumn:Fa,_fnColumnOptions:ka,_fnAdjustColumnSizing:X,_fnVisibleToColumnIndex:la,_fnColumnIndexToVisible:$,_fnVisbleColumns:aa,_fnGetColumns:Z,_fnColumnTypes:Ha,
-_fnApplyColumnDefs:ib,_fnHungarianMap:V,_fnCamelToHungarian:H,_fnLanguageCompat:O,_fnBrowserDetect:gb,_fnAddData:J,_fnAddTr:ma,_fnNodeToDataIndex:function(a,b){return b._DT_RowIndex!==k?b._DT_RowIndex:null},_fnNodeToColumnIndex:function(a,b,c){return h.inArray(c,a.aoData[b].anCells)},_fnGetCellData:y,_fnSetCellData:Ia,_fnSplitObjNotation:Ka,_fnGetObjectDataFn:W,_fnSetObjectDataFn:Q,_fnGetDataMaster:La,_fnClearTable:oa,_fnDeleteIndex:pa,_fnInvalidate:ca,_fnGetRowElements:na,_fnCreateTr:Ja,_fnBuildHead:jb,
-_fnDrawHead:ea,_fnDraw:M,_fnReDraw:N,_fnAddOptionsHtml:mb,_fnDetectHeader:da,_fnGetUniqueThs:qa,_fnFeatureHtmlFilter:ob,_fnFilterComplete:fa,_fnFilterCustom:xb,_fnFilterColumn:wb,_fnFilter:vb,_fnFilterCreateSearch:Qa,_fnEscapeRegex:va,_fnFilterData:yb,_fnFeatureHtmlInfo:rb,_fnUpdateInfo:Bb,_fnInfoMacros:Cb,_fnInitialise:ga,_fnInitComplete:ta,_fnLengthChange:Ra,_fnFeatureHtmlLength:nb,_fnFeatureHtmlPaginate:sb,_fnPageChange:Ta,_fnFeatureHtmlProcessing:pb,_fnProcessingDisplay:C,_fnFeatureHtmlTable:qb,
-_fnScrollDraw:Y,_fnApplyToChildren:G,_fnCalculateColumnWidths:Ga,_fnThrottle:ua,_fnConvertToWidth:Db,_fnScrollingWidthAdjust:Fb,_fnGetWidestNode:Eb,_fnGetMaxLenString:Gb,_fnStringToCss:s,_fnScrollBarWidth:Hb,_fnSortFlatten:T,_fnSort:lb,_fnSortAria:Jb,_fnSortListener:Ua,_fnSortAttachListener:Oa,_fnSortingClasses:xa,_fnSortData:Ib,_fnSaveState:ya,_fnLoadState:Kb,_fnSettingsFromNode:za,_fnLog:R,_fnMap:E,_fnBindAction:Va,_fnCallbackReg:z,_fnCallbackFire:w,_fnLengthOverflow:Sa,_fnRenderer:Pa,_fnDataSource:B,
-_fnRowAttributes:Ma,_fnCalculateEnd:function(){}});h.fn.dataTable=m;h.fn.dataTableSettings=m.settings;h.fn.dataTableExt=m.ext;h.fn.DataTable=function(a){return h(this).dataTable(a).api()};h.each(m,function(a,b){h.fn.DataTable[a]=b});return h.fn.dataTable};"function"===typeof define&&define.amd?define("datatables",["jquery"],O):"object"===typeof exports?module.exports=O(require("jquery")):jQuery&&!jQuery.fn.dataTable&&O(jQuery)})(window,document);
diff --git a/assets/js/jquery.min.js b/assets/js/jquery.min.js
deleted file mode 100644
index a1c07fd..0000000
--- a/assets/js/jquery.min.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */
-!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,""],col:[2,""],tr:[2,""],td:[3,""],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/