├── .gitignore ├── README.md ├── ambed ├── WinTypes.h ├── cagc.cpp ├── cagc.h ├── cambepacket.cpp ├── cambepacket.h ├── cambeserver.cpp ├── cambeserver.h ├── cbuffer.cpp ├── cbuffer.h ├── ccallsign.cpp ├── ccallsign.h ├── ccontroller.cpp ├── ccontroller.h ├── cfirfilter.cpp ├── cfirfilter.h ├── cfixedgain.cpp ├── cfixedgain.h ├── cftdidevicedescr.cpp ├── cftdidevicedescr.h ├── cip.cpp ├── cip.h ├── cpacket.cpp ├── cpacket.h ├── cpacketqueue.cpp ├── cpacketqueue.h ├── csampleblockprocessor.h ├── csignalprocessor.cpp ├── csignalprocessor.h ├── cstream.cpp ├── cstream.h ├── ctimepoint.cpp ├── ctimepoint.h ├── cudpsocket.cpp ├── cudpsocket.h ├── cusb3000interface.cpp ├── cusb3000interface.h ├── cusb3003df2etinterface.cpp ├── cusb3003df2etinterface.h ├── cusb3003hrinterface.cpp ├── cusb3003hrinterface.h ├── cusb3003interface.cpp ├── cusb3003interface.h ├── cusb3xxxinterface.cpp ├── cusb3xxxinterface.h ├── cvocodecchannel.cpp ├── cvocodecchannel.h ├── cvocodecinterface.cpp ├── cvocodecinterface.h ├── cvocodecs.cpp ├── cvocodecs.h ├── cvoicepacket.cpp ├── cvoicepacket.h ├── ftd2xx.h ├── main.cpp ├── main.h ├── makefile ├── readme ├── run └── syslog.h ├── ambedtest ├── cambe.cpp ├── cambe.h ├── cbuffer.cpp ├── cbuffer.h ├── ccodecstream.cpp ├── ccodecstream.h ├── cip.cpp ├── cip.h ├── csemaphore.cpp ├── csemaphore.h ├── ctimepoint.cpp ├── ctimepoint.h ├── ctranscoder.cpp ├── ctranscoder.h ├── cudpsocket.cpp ├── cudpsocket.h ├── main.cpp ├── main.h ├── makefile └── samples.h ├── config ├── xlxd.blacklist ├── xlxd.interlink ├── xlxd.terminal └── xlxd.whitelist ├── dashboard ├── changes.txt ├── css │ └── layout.css ├── favicon.ico ├── img │ ├── down.png │ ├── dvc.jpg │ ├── ear.png │ ├── easterheader.jpg │ ├── flags │ │ ├── ad.png │ │ ├── ae.png │ │ ├── af.png │ │ ├── ag.png │ │ ├── al.png │ │ ├── am.png │ │ ├── ao.png │ │ ├── ar.png │ │ ├── at.png │ │ ├── au.png │ │ ├── ax.png │ │ ├── az.png │ │ ├── ba.png │ │ ├── bb.png │ │ ├── bd.png │ │ ├── be.png │ │ ├── bf.png │ │ ├── bg.png │ │ ├── bh.png │ │ ├── bi.png │ │ ├── bj.png │ │ ├── bn.png │ │ ├── bo.png │ │ ├── br.png │ │ ├── bs.png │ │ ├── bt.png │ │ ├── bw.png │ │ ├── by.png │ │ ├── bz.png │ │ ├── ca.png │ │ ├── cd.png │ │ ├── cf.png │ │ ├── cg.png │ │ ├── ch.png │ │ ├── ci.png │ │ ├── cl.png │ │ ├── cm.png │ │ ├── cn.png │ │ ├── co.png │ │ ├── cr.png │ │ ├── cs.png │ │ ├── cu.png │ │ ├── cv.png │ │ ├── cy.png │ │ ├── cz.png │ │ ├── de.png │ │ ├── dj.png │ │ ├── dk.png │ │ ├── dm.png │ │ ├── do.png │ │ ├── dz.png │ │ ├── ec.png │ │ ├── ee.png │ │ ├── eg.png │ │ ├── eh.png │ │ ├── en.png │ │ ├── er.png │ │ ├── es.png │ │ ├── et.png │ │ ├── fi.png │ │ ├── fj.png │ │ ├── fm.png │ │ ├── fr.png │ │ ├── ga.png │ │ ├── gate.png │ │ ├── gb.png │ │ ├── gd.png │ │ ├── ge.png │ │ ├── gh.png │ │ ├── gm.png │ │ ├── gn.png │ │ ├── gq.png │ │ ├── gr.png │ │ ├── gt.png │ │ ├── gu.png │ │ ├── gw.png │ │ ├── gy.png │ │ ├── hk.png │ │ ├── hn.png │ │ ├── hr.png │ │ ├── ht.png │ │ ├── hu.png │ │ ├── id.png │ │ ├── ie.png │ │ ├── il.png │ │ ├── im.png │ │ ├── in.png │ │ ├── iq.png │ │ ├── ir.png │ │ ├── is.png │ │ ├── it.png │ │ ├── jm.png │ │ ├── jo.png │ │ ├── jp.png │ │ ├── ke.png │ │ ├── kg.png │ │ ├── kh.png │ │ ├── ki.png │ │ ├── km.png │ │ ├── kn.png │ │ ├── kp.png │ │ ├── kr.png │ │ ├── ks.png │ │ ├── kw.png │ │ ├── kz.png │ │ ├── la.png │ │ ├── lb.png │ │ ├── lc.png │ │ ├── li.png │ │ ├── lk.png │ │ ├── lr.png │ │ ├── ls.png │ │ ├── lt.png │ │ ├── lu.png │ │ ├── lv.png │ │ ├── ly.png │ │ ├── ma.png │ │ ├── mc.png │ │ ├── md.png │ │ ├── me.png │ │ ├── mg.png │ │ ├── mh.png │ │ ├── mk.png │ │ ├── ml.png │ │ ├── mm.png │ │ ├── mn.png │ │ ├── mo.png │ │ ├── mr.png │ │ ├── mt.png │ │ ├── mu.png │ │ ├── mv.png │ │ ├── mw.png │ │ ├── mx.png │ │ ├── my.png │ │ ├── mz.png │ │ ├── na.png │ │ ├── ne.png │ │ ├── ng.png │ │ ├── ni.png │ │ ├── nie.png │ │ ├── nl.png │ │ ├── no.png │ │ ├── np.png │ │ ├── nr.png │ │ ├── nz.png │ │ ├── om.png │ │ ├── pa.png │ │ ├── pe.png │ │ ├── pg.png │ │ ├── ph.png │ │ ├── pk.png │ │ ├── pl.png │ │ ├── pr.png │ │ ├── pt.png │ │ ├── pw.png │ │ ├── py.png │ │ ├── qa.png │ │ ├── re.png │ │ ├── ro.png │ │ ├── rs.png │ │ ├── ru.png │ │ ├── rw.png │ │ ├── sa.png │ │ ├── sb.png │ │ ├── sc.png │ │ ├── sd.png │ │ ├── se.png │ │ ├── sg.png │ │ ├── sh.png │ │ ├── si.png │ │ ├── sk.png │ │ ├── sl.png │ │ ├── sm.png │ │ ├── sn.png │ │ ├── so.png │ │ ├── sr.png │ │ ├── st.png │ │ ├── sv.png │ │ ├── sy.png │ │ ├── sz.png │ │ ├── td.png │ │ ├── tg.png │ │ ├── th.png │ │ ├── tj.png │ │ ├── tl.png │ │ ├── tm.png │ │ ├── tn.png │ │ ├── to.png │ │ ├── tr.png │ │ ├── tt.png │ │ ├── tv.png │ │ ├── tw.png │ │ ├── tz.png │ │ ├── ua.png │ │ ├── ug.png │ │ ├── us.png │ │ ├── uy.png │ │ ├── uz.png │ │ ├── va.png │ │ ├── vc.png │ │ ├── ve.png │ │ ├── vn.png │ │ ├── vu.png │ │ ├── wl.png │ │ ├── ws.png │ │ ├── ye.png │ │ ├── za.png │ │ ├── zm.png │ │ └── zw.png │ ├── header.jpg │ ├── radio-waves-hi.png │ ├── sat.png │ ├── speaker.png │ ├── tx.gif │ └── up.png ├── index.php ├── js │ └── jquery-1.12.4.min.js ├── log │ ├── index.html │ └── xlxlog.php └── pgs │ ├── class.interlink.php │ ├── class.node.php │ ├── class.parsexml.php │ ├── class.peer.php │ ├── class.reflector.php │ ├── class.station.php │ ├── config.inc.php │ ├── country.csv │ ├── functions.php │ ├── liveccs.php │ ├── liveircddb.php │ ├── modules.php │ ├── peers.php │ ├── reflectors.php │ ├── repeaters.php │ ├── traffic.php │ └── users.php ├── dashboard2 ├── changes.txt ├── css │ ├── bootstrap.min.css │ ├── bootstrap.min.css.map │ ├── dashboard.css │ └── ie10-viewport-bug-workaround.css ├── favicon.ico ├── fonts │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.svg │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.woff │ └── glyphicons-halflings-regular.woff2 ├── img │ ├── down.png │ ├── dvc.jpg │ ├── ear.png │ ├── easterheader.jpg │ ├── flags │ │ ├── ad.png │ │ ├── ae.png │ │ ├── af.png │ │ ├── ag.png │ │ ├── ai.png │ │ ├── al.png │ │ ├── am.png │ │ ├── ao.png │ │ ├── aq.png │ │ ├── ar.png │ │ ├── as.png │ │ ├── at.png │ │ ├── au.png │ │ ├── aw.png │ │ ├── ax.png │ │ ├── az.png │ │ ├── ba.png │ │ ├── bb.png │ │ ├── bd.png │ │ ├── be.png │ │ ├── bf.png │ │ ├── bg.png │ │ ├── bh.png │ │ ├── bi.png │ │ ├── bj.png │ │ ├── bl.png │ │ ├── bm.png │ │ ├── bn.png │ │ ├── bo.png │ │ ├── br.png │ │ ├── bs.png │ │ ├── bt.png │ │ ├── bv.png │ │ ├── bw.png │ │ ├── by.png │ │ ├── bz.png │ │ ├── ca.png │ │ ├── cc.png │ │ ├── cd.png │ │ ├── cf.png │ │ ├── cg.png │ │ ├── ch.png │ │ ├── ci.png │ │ ├── ck.png │ │ ├── cl.png │ │ ├── cm.png │ │ ├── cn.png │ │ ├── co.png │ │ ├── cr.png │ │ ├── cs.png │ │ ├── cu.png │ │ ├── cv.png │ │ ├── cw.png │ │ ├── cx.png │ │ ├── cy.png │ │ ├── cz.png │ │ ├── de.png │ │ ├── dj.png │ │ ├── dk.png │ │ ├── dm.png │ │ ├── do.png │ │ ├── dz.png │ │ ├── ec.png │ │ ├── ee.png │ │ ├── eg.png │ │ ├── eh.png │ │ ├── en.png │ │ ├── er.png │ │ ├── es.png │ │ ├── et.png │ │ ├── fi.png │ │ ├── fj.png │ │ ├── fk.png │ │ ├── fm.png │ │ ├── fo.png │ │ ├── fr.png │ │ ├── ga.png │ │ ├── gate.png │ │ ├── gb.png │ │ ├── gd.png │ │ ├── ge.png │ │ ├── gf.png │ │ ├── gg.png │ │ ├── gh.png │ │ ├── gi.png │ │ ├── gl.png │ │ ├── gm.png │ │ ├── gn.png │ │ ├── gp.png │ │ ├── gq.png │ │ ├── gr.png │ │ ├── gs.png │ │ ├── gt.png │ │ ├── gu.png │ │ ├── gw.png │ │ ├── gy.png │ │ ├── hk.png │ │ ├── hm.png │ │ ├── hn.png │ │ ├── hr.png │ │ ├── ht.png │ │ ├── hu.png │ │ ├── id.png │ │ ├── ie.png │ │ ├── il.png │ │ ├── im.png │ │ ├── in.png │ │ ├── io.png │ │ ├── iq.png │ │ ├── ir.png │ │ ├── is.png │ │ ├── it.png │ │ ├── je.png │ │ ├── jm.png │ │ ├── jo.png │ │ ├── jp.png │ │ ├── ke.png │ │ ├── kg.png │ │ ├── kh.png │ │ ├── ki.png │ │ ├── km.png │ │ ├── kn.png │ │ ├── kp.png │ │ ├── kr.png │ │ ├── ks.png │ │ ├── kw.png │ │ ├── ky.png │ │ ├── kz.png │ │ ├── la.png │ │ ├── lb.png │ │ ├── lc.png │ │ ├── li.png │ │ ├── lk.png │ │ ├── lr.png │ │ ├── ls.png │ │ ├── lt.png │ │ ├── lu.png │ │ ├── lv.png │ │ ├── ly.png │ │ ├── ma.png │ │ ├── mc.png │ │ ├── md.png │ │ ├── me.png │ │ ├── mf.png │ │ ├── mg.png │ │ ├── mh.png │ │ ├── mk.png │ │ ├── ml.png │ │ ├── mm.png │ │ ├── mn.png │ │ ├── mo.png │ │ ├── mp.png │ │ ├── mq.png │ │ ├── mr.png │ │ ├── ms.png │ │ ├── mt.png │ │ ├── mu.png │ │ ├── mv.png │ │ ├── mw.png │ │ ├── mx.png │ │ ├── my.png │ │ ├── mz.png │ │ ├── na.png │ │ ├── nc.png │ │ ├── ne.png │ │ ├── nf.png │ │ ├── ng.png │ │ ├── ni.png │ │ ├── nie.png │ │ ├── nl.png │ │ ├── no.png │ │ ├── np.png │ │ ├── nr.png │ │ ├── nu.png │ │ ├── nz.png │ │ ├── om.png │ │ ├── pa.png │ │ ├── pe.png │ │ ├── pf.png │ │ ├── pg.png │ │ ├── ph.png │ │ ├── pk.png │ │ ├── pl.png │ │ ├── pm.png │ │ ├── pn.png │ │ ├── pr.png │ │ ├── ps.png │ │ ├── pt.png │ │ ├── pw.png │ │ ├── py.png │ │ ├── qa.png │ │ ├── re.png │ │ ├── ro.png │ │ ├── rs.png │ │ ├── ru.png │ │ ├── rw.png │ │ ├── sa.png │ │ ├── sb.png │ │ ├── sc.png │ │ ├── sd.png │ │ ├── se.png │ │ ├── sg.png │ │ ├── sh.png │ │ ├── si.png │ │ ├── sk.png │ │ ├── sl.png │ │ ├── sm.png │ │ ├── sn.png │ │ ├── so.png │ │ ├── sr.png │ │ ├── ss.png │ │ ├── st.png │ │ ├── sv.png │ │ ├── sx.png │ │ ├── sy.png │ │ ├── sz.png │ │ ├── tc.png │ │ ├── td.png │ │ ├── tg.png │ │ ├── th.png │ │ ├── tj.png │ │ ├── tk.png │ │ ├── tl.png │ │ ├── tm.png │ │ ├── tn.png │ │ ├── to.png │ │ ├── tr.png │ │ ├── tt.png │ │ ├── tv.png │ │ ├── tw.png │ │ ├── tz.png │ │ ├── ua.png │ │ ├── ug.png │ │ ├── um.png │ │ ├── us.png │ │ ├── uy.png │ │ ├── uz.png │ │ ├── va.png │ │ ├── vc.png │ │ ├── ve.png │ │ ├── vg.png │ │ ├── vi.png │ │ ├── vn.png │ │ ├── vu.png │ │ ├── wf.png │ │ ├── wl.png │ │ ├── ws.png │ │ ├── ye.png │ │ ├── yt.png │ │ ├── za.png │ │ ├── zm.png │ │ └── zw.png │ ├── header.jpg │ ├── radio-waves-hi.png │ ├── sat.png │ ├── speaker.png │ ├── tx.gif │ └── up.png ├── index.php ├── js │ ├── bootstrap.min.js │ └── ie10-viewport-bug-workaround.js ├── log │ ├── index.html │ ├── logout.php │ └── xlxlog.php └── pgs │ ├── class.interlink.php │ ├── class.node.php │ ├── class.parsexml.php │ ├── class.peer.php │ ├── class.reflector.php │ ├── class.station.php │ ├── config.inc.php │ ├── country.csv │ ├── functions.php │ ├── liveccs.php │ ├── liveircddb.php │ ├── peers.php │ ├── reflectors.php │ ├── repeaters.php │ └── users.php ├── license.txt ├── scripts ├── ambed.service ├── scripts.readme.txt ├── watchdog └── xlxd └── src ├── cbmclient.cpp ├── cbmclient.h ├── cbmpeer.cpp ├── cbmpeer.h ├── cbptc19696.cpp ├── cbptc19696.h ├── cbuffer.cpp ├── cbuffer.h ├── ccallsign.cpp ├── ccallsign.h ├── ccallsignlist.cpp ├── ccallsignlist.h ├── ccallsignlistitem.cpp ├── ccallsignlistitem.h ├── cclient.cpp ├── cclient.h ├── cclients.cpp ├── cclients.h ├── ccodecstream.cpp ├── ccodecstream.h ├── ccrc.cpp ├── ccrc.h ├── cdcsclient.cpp ├── cdcsclient.h ├── cdcsprotocol.cpp ├── cdcsprotocol.h ├── cdextraclient.cpp ├── cdextraclient.h ├── cdextraprotocol.cpp ├── cdextraprotocol.h ├── cdmriddir.cpp ├── cdmriddir.h ├── cdmriddirfile.cpp ├── cdmriddirfile.h ├── cdmriddirhttp.cpp ├── cdmriddirhttp.h ├── cdmrmmdvmclient.cpp ├── cdmrmmdvmclient.h ├── cdmrmmdvmprotocol.cpp ├── cdmrmmdvmprotocol.h ├── cdmrplusclient.cpp ├── cdmrplusclient.h ├── cdmrplusprotocol.cpp ├── cdmrplusprotocol.h ├── cdplusclient.cpp ├── cdplusclient.h ├── cdplusprotocol.cpp ├── cdplusprotocol.h ├── cdvframepacket.cpp ├── cdvframepacket.h ├── cdvheaderpacket.cpp ├── cdvheaderpacket.h ├── cdvlastframepacket.cpp ├── cdvlastframepacket.h ├── cg3client.cpp ├── cg3client.h ├── cg3protocol.cpp ├── cg3protocol.h ├── cgatekeeper.cpp ├── cgatekeeper.h ├── cgolay2087.cpp ├── cgolay2087.h ├── cgolay24128.cpp ├── cgolay24128.h ├── chamming.cpp ├── chamming.h ├── cimrsclient.cpp ├── cimrsclient.h ├── cimrsprotocol.cpp ├── cimrsprotocol.h ├── cip.cpp ├── cip.h ├── cnotification.cpp ├── cnotification.h ├── cnotificationqueue.h ├── cpacket.cpp ├── cpacket.h ├── cpacketqueue.h ├── cpacketstream.cpp ├── cpacketstream.h ├── cpeer.cpp ├── cpeer.h ├── cpeercallsignlist.cpp ├── cpeercallsignlist.h ├── cpeers.cpp ├── cpeers.h ├── cprotocol.cpp ├── cprotocol.h ├── cprotocols.cpp ├── cprotocols.h ├── cqr1676.cpp ├── cqr1676.h ├── crawsocket.cpp ├── crawsocket.h ├── creflector.cpp ├── creflector.h ├── crs129.cpp ├── crs129.h ├── csemaphore.cpp ├── csemaphore.h ├── ctimepoint.cpp ├── ctimepoint.h ├── ctranscoder.cpp ├── ctranscoder.h ├── cudpmsgsocket.cpp ├── cudpmsgsocket.h ├── cudpsocket.cpp ├── cudpsocket.h ├── cuser.cpp ├── cuser.h ├── cusers.cpp ├── cusers.h ├── cutils.cpp ├── cutils.h ├── cversion.cpp ├── cversion.h ├── cwiresxcmd.cpp ├── cwiresxcmd.h ├── cwiresxcmdhandler.cpp ├── cwiresxcmdhandler.h ├── cwiresxcmdqueue.h ├── cwiresxinfo.cpp ├── cwiresxinfo.h ├── cwiresxpacket.h ├── cwiresxpacketqueue.h ├── cxlxclient.cpp ├── cxlxclient.h ├── cxlxpeer.cpp ├── cxlxpeer.h ├── cxlxprotocol.cpp ├── cxlxprotocol.h ├── cysfclient.cpp ├── cysfclient.h ├── cysfconvolution.cpp ├── cysfconvolution.h ├── cysffich.cpp ├── cysffich.h ├── cysfnode.cpp ├── cysfnode.h ├── cysfnodedir.cpp ├── cysfnodedir.h ├── cysfnodedirfile.cpp ├── cysfnodedirfile.h ├── cysfnodedirhttp.cpp ├── cysfnodedirhttp.h ├── cysfpayload.cpp ├── cysfpayload.h ├── cysfprotocol.cpp ├── cysfprotocol.h ├── cysfutils.cpp ├── cysfutils.h ├── license.txt ├── main.cpp ├── main.h ├── makefile ├── syslog.h └── ysfdefines.h /.gitignore: -------------------------------------------------------------------------------- 1 | *.o 2 | src/xlxd 3 | ambed/ambed 4 | ambedtest/ambedtest 5 | -------------------------------------------------------------------------------- /ambed/cfirfilter.h: -------------------------------------------------------------------------------- 1 | // 2 | // cfirfilter.h 3 | // ambed 4 | // 5 | // Created by Jean-Luc Deltombe (LX3JL) on 26/04/2017. 6 | // Copyright © 2015 Jean-Luc Deltombe (LX3JL). All rights reserved. 7 | // 8 | // ---------------------------------------------------------------------------- 9 | // This file is part of ambed. 10 | // 11 | // xlxd is free software: you can redistribute it and/or modify 12 | // it under the terms of the GNU General Public License as published by 13 | // the Free Software Foundation, either version 3 of the License, or 14 | // (at your option) any later version. 15 | // 16 | // xlxd is distributed in the hope that it will be useful, 17 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | // GNU General Public License for more details. 20 | // 21 | // You should have received a copy of the GNU General Public License 22 | // along with Foobar. If not, see . 23 | // ---------------------------------------------------------------------------- 24 | // FIRFilter by Geoffrey Merck F4FXL / KC3FRA 25 | 26 | #ifndef cfirfilter_h 27 | #define cfirfilter_h 28 | 29 | #include "csampleblockprocessor.h" 30 | 31 | class CFIRFilter : CSampleBlockProcessor 32 | { 33 | public : 34 | //Constructor 35 | CFIRFilter(const float* taps, int tapsLength); 36 | 37 | // Destructor 38 | ~CFIRFilter(); 39 | 40 | // Processing 41 | void ProcessSampleBlock(uint8* voice, int length); 42 | 43 | private: 44 | float* m_taps; 45 | int m_tapsLength; 46 | float* m_buffer; 47 | int m_currentBufferPosition; 48 | }; 49 | 50 | #endif //cfirfilter_h 51 | 52 | -------------------------------------------------------------------------------- /ambed/cfixedgain.h: -------------------------------------------------------------------------------- 1 | // 2 | // cfixedgain.h 3 | // ambed 4 | // 5 | // Created by Jean-Luc Deltombe (LX3JL) on 26/04/2017. 6 | // Copyright © 2015 Jean-Luc Deltombe (LX3JL). All rights reserved. 7 | // 8 | // ---------------------------------------------------------------------------- 9 | // This file is part of ambed. 10 | // 11 | // xlxd is free software: you can redistribute it and/or modify 12 | // it under the terms of the GNU General Public License as published by 13 | // the Free Software Foundation, either version 3 of the License, or 14 | // (at your option) any later version. 15 | // 16 | // xlxd is distributed in the hope that it will be useful, 17 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | // GNU General Public License for more details. 20 | // 21 | // You should have received a copy of the GNU General Public License 22 | // along with Foobar. If not, see . 23 | // ---------------------------------------------------------------------------- 24 | // Geoffrey Merck F4FXL / KC3FRA 25 | 26 | #ifndef cfixedgain_h 27 | #define cfixedgain_h 28 | 29 | #include "csampleblockprocessor.h" 30 | 31 | class CFixedGain : CSampleBlockProcessor 32 | { 33 | public: 34 | //Constructor 35 | CFixedGain(float gaindB); 36 | 37 | //processing 38 | void ProcessSampleBlock(uint8* voice, int length); 39 | 40 | private: 41 | float m_gaindB; //gain in dB 42 | float m_gainLinear; //linearized gain 43 | }; 44 | 45 | #endif /* cfixedgain_h */ -------------------------------------------------------------------------------- /ambed/cpacket.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // cpacket.cpp 3 | // ambed 4 | // 5 | // Created by Jean-Luc Deltombe (LX3JL) on 28/04/2017. 6 | // Copyright © 2015 Jean-Luc Deltombe (LX3JL). All rights reserved. 7 | // 8 | // ---------------------------------------------------------------------------- 9 | // This file is part of ambed. 10 | // 11 | // xlxd is free software: you can redistribute it and/or modify 12 | // it under the terms of the GNU General Public License as published by 13 | // the Free Software Foundation, either version 3 of the License, or 14 | // (at your option) any later version. 15 | // 16 | // xlxd is distributed in the hope that it will be useful, 17 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | // GNU General Public License for more details. 20 | // 21 | // You should have received a copy of the GNU General Public License 22 | // along with Foobar. If not, see . 23 | // ---------------------------------------------------------------------------- 24 | 25 | #include "main.h" 26 | #include "cpacket.h" 27 | 28 | 29 | //////////////////////////////////////////////////////////////////////////////////////// 30 | // constructors 31 | 32 | CPacket::CPacket() 33 | { 34 | m_iCh = 0; 35 | m_uiPid = 0; 36 | }; 37 | 38 | CPacket::CPacket(uint8 uiPid) 39 | { 40 | m_iCh = 0; 41 | m_uiPid = uiPid; 42 | } 43 | 44 | CPacket::CPacket(const CPacket &packet) 45 | { 46 | m_iCh = packet.m_iCh; 47 | m_uiPid = packet.m_uiPid; 48 | }; 49 | 50 | -------------------------------------------------------------------------------- /ambed/cpacketqueue.h: -------------------------------------------------------------------------------- 1 | // 2 | // cpacketqueue.h 3 | // ambed 4 | // 5 | // Created by Jean-Luc Deltombe (LX3JL) on 24/04/2017. 6 | // Copyright © 2015 Jean-Luc Deltombe (LX3JL). All rights reserved. 7 | // 8 | // ---------------------------------------------------------------------------- 9 | // This file is part of ambed. 10 | // 11 | // xlxd is free software: you can redistribute it and/or modify 12 | // it under the terms of the GNU General Public License as published by 13 | // the Free Software Foundation, either version 3 of the License, or 14 | // (at your option) any later version. 15 | // 16 | // xlxd is distributed in the hope that it will be useful, 17 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | // GNU General Public License for more details. 20 | // 21 | // You should have received a copy of the GNU General Public License 22 | // along with Foobar. If not, see . 23 | // ---------------------------------------------------------------------------- 24 | 25 | #ifndef cpacketqueue_h 26 | #define cpacketqueue_h 27 | 28 | #include "cpacket.h" 29 | 30 | //////////////////////////////////////////////////////////////////////////////////////// 31 | // class 32 | 33 | class CPacketQueue : public std::queue 34 | { 35 | public: 36 | // constructor 37 | CPacketQueue(); 38 | 39 | // destructor 40 | ~CPacketQueue(); 41 | 42 | // lock 43 | void Lock() { m_Mutex.lock(); } 44 | void Unlock() { m_Mutex.unlock(); } 45 | 46 | // purge 47 | void Purge(void); 48 | 49 | protected: 50 | // status 51 | std::mutex m_Mutex; 52 | }; 53 | 54 | //////////////////////////////////////////////////////////////////////////////////////// 55 | #endif /* cpacketqueue_h */ 56 | -------------------------------------------------------------------------------- /ambed/csampleblockprocessor.h: -------------------------------------------------------------------------------- 1 | // 2 | // csampleprocessor.h 3 | // ambed 4 | // 5 | // Created by Jean-Luc Deltombe (LX3JL) on 26/04/2017. 6 | // Copyright © 2015 Jean-Luc Deltombe (LX3JL). All rights reserved. 7 | // 8 | // ---------------------------------------------------------------------------- 9 | // This file is part of ambed. 10 | // 11 | // xlxd is free software: you can redistribute it and/or modify 12 | // it under the terms of the GNU General Public License as published by 13 | // the Free Software Foundation, either version 3 of the License, or 14 | // (at your option) any later version. 15 | // 16 | // xlxd is distributed in the hope that it will be useful, 17 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | // GNU General Public License for more details. 20 | // 21 | // You should have received a copy of the GNU General Public License 22 | // along with Foobar. If not, see . 23 | // ---------------------------------------------------------------------------- 24 | // Geoffrey Merck F4FXL / KC3FRA 25 | 26 | #ifndef csamplebloclprocessor_h 27 | #define csamplebloclprocessor_h 28 | 29 | #include "main.h" 30 | 31 | class CSampleBlockProcessor 32 | { 33 | public: 34 | //processing 35 | virtual void ProcessSampleBlock(uint8* voice, int length) = 0; 36 | }; 37 | 38 | #endif /* csampleprocessor_h */ -------------------------------------------------------------------------------- /ambed/csignalprocessor.h: -------------------------------------------------------------------------------- 1 | // 2 | // csignalprocessor.h 3 | // ambed 4 | // 5 | // Created by Jean-Luc Deltombe (LX3JL) on 26/04/2017. 6 | // Copyright © 2015 Jean-Luc Deltombe (LX3JL). All rights reserved. 7 | // 8 | // ---------------------------------------------------------------------------- 9 | // This file is part of ambed. 10 | // 11 | // xlxd is free software: you can redistribute it and/or modify 12 | // it under the terms of the GNU General Public License as published by 13 | // the Free Software Foundation, either version 3 of the License, or 14 | // (at your option) any later version. 15 | // 16 | // xlxd is distributed in the hope that it will be useful, 17 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | // GNU General Public License for more details. 20 | // 21 | // You should have received a copy of the GNU General Public License 22 | // along with Foobar. If not, see . 23 | // ---------------------------------------------------------------------------- 24 | // Geoffrey Merck F4FXL / KC3FRA 25 | 26 | #ifndef csignalprocessor_h 27 | #define csignalprocessor_h 28 | 29 | #include 30 | #include "csampleblockprocessor.h" 31 | 32 | class CSignalProcessor 33 | { 34 | public: 35 | //Constructor 36 | CSignalProcessor(float gaindB); 37 | 38 | //Destructor 39 | ~CSignalProcessor(); 40 | 41 | //Processing 42 | void Process(uint8* voice, int length); 43 | 44 | private: 45 | std::vector m_sampleProcessors; 46 | }; 47 | 48 | #endif /* csignalprocessor_h */ -------------------------------------------------------------------------------- /ambed/ftd2xx.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/ambed/ftd2xx.h -------------------------------------------------------------------------------- /ambed/makefile: -------------------------------------------------------------------------------- 1 | CC=g++ 2 | CFLAGS=-c -std=c++11 -pthread 3 | LDFLAGS=-std=c++11 -pthread 4 | SOURCES=$(wildcard *.cpp) 5 | OBJECTS=$(SOURCES:.cpp=.o) 6 | EXECUTABLE=ambed 7 | 8 | all: $(SOURCES) $(EXECUTABLE) 9 | 10 | $(EXECUTABLE): $(OBJECTS) 11 | $(CC) $(LDFLAGS) $(OBJECTS) -lftd2xx -Wl,-rpath,/usr/local/lib -o $@ 12 | 13 | .cpp.o: 14 | $(CC) $(CFLAGS) $< -o $@ 15 | 16 | clean: 17 | $(RM) $(EXECUTABLE) *.o 18 | 19 | install: 20 | mkdir -p /ambed 21 | cp $(EXECUTABLE) /ambed/ 22 | cp ./run /ambed/ 23 | -------------------------------------------------------------------------------- /ambed/run: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # start ambed server 3 | 4 | sudo rmmod ftdi_sio 5 | sudo rmmod usbserial 6 | sudo /ambed/ambed 127.0.0.1 & -------------------------------------------------------------------------------- /ambedtest/cambe.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // cambe.cpp 3 | // ambedtest 4 | // 5 | // Created by Jean-Luc Deltombe (LX3JL) on 16/05/2017. 6 | // Copyright © 2015 Jean-Luc Deltombe (LX3JL). All rights reserved. 7 | // 8 | // ---------------------------------------------------------------------------- 9 | // This file is part of xlxd. 10 | // 11 | // xlxd is free software: you can redistribute it and/or modify 12 | // it under the terms of the GNU General Public License as published by 13 | // the Free Software Foundation, either version 3 of the License, or 14 | // (at your option) any later version. 15 | // 16 | // xlxd is distributed in the hope that it will be useful, 17 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | // GNU General Public License for more details. 20 | // 21 | // You should have received a copy of the GNU General Public License 22 | // along with Foobar. If not, see . 23 | // ---------------------------------------------------------------------------- 24 | 25 | #include "main.h" 26 | #include 27 | #include "cambe.h" 28 | 29 | //////////////////////////////////////////////////////////////////////////////////////// 30 | // define 31 | 32 | 33 | //////////////////////////////////////////////////////////////////////////////////////// 34 | // constructor 35 | 36 | CAmbe::CAmbe() 37 | { 38 | ::memset(m_uiAmbe, 0, sizeof(m_uiAmbe)); 39 | } 40 | 41 | CAmbe::CAmbe(uint8 *ambe) 42 | { 43 | ::memcpy(m_uiAmbe, ambe, sizeof(m_uiAmbe)); 44 | } 45 | 46 | -------------------------------------------------------------------------------- /ambedtest/cambe.h: -------------------------------------------------------------------------------- 1 | // 2 | // cambe.h 3 | // ambedtest 4 | // 5 | // Created by Jean-Luc Deltombe (LX3JL) on 16/05/2017. 6 | // Copyright © 2015 Jean-Luc Deltombe (LX3JL). All rights reserved. 7 | // 8 | // ---------------------------------------------------------------------------- 9 | // This file is part of xlxd. 10 | // 11 | // xlxd is free software: you can redistribute it and/or modify 12 | // it under the terms of the GNU General Public License as published by 13 | // the Free Software Foundation, either version 3 of the License, or 14 | // (at your option) any later version. 15 | // 16 | // xlxd is distributed in the hope that it will be useful, 17 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | // GNU General Public License for more details. 20 | // 21 | // You should have received a copy of the GNU General Public License 22 | // along with Foobar. If not, see . 23 | // ---------------------------------------------------------------------------- 24 | 25 | #ifndef cambe_h 26 | #define cambe_h 27 | 28 | 29 | //////////////////////////////////////////////////////////////////////////////////////// 30 | // define 31 | 32 | // frame sizes 33 | #define AMBE_SIZE 9 34 | 35 | 36 | //////////////////////////////////////////////////////////////////////////////////////// 37 | // class 38 | 39 | class CAmbe 40 | { 41 | public: 42 | // constructor 43 | CAmbe(); 44 | CAmbe(uint8 *); 45 | 46 | // destructor 47 | virtual ~CAmbe() {} 48 | 49 | // get 50 | const uint8 *GetData(void) const { return m_uiAmbe; } 51 | 52 | protected: 53 | // data 54 | uint8 m_uiAmbe[AMBE_SIZE]; 55 | }; 56 | 57 | 58 | //////////////////////////////////////////////////////////////////////////////////////// 59 | #endif /* cambe_h */ 60 | -------------------------------------------------------------------------------- /ambedtest/csemaphore.h: -------------------------------------------------------------------------------- 1 | // 2 | // csemaphore.h 3 | // xlxd 4 | // 5 | // Created by Jean-Luc Deltombe (LX3JL) on 16/04/2017. 6 | // Copyright © 2015 Jean-Luc Deltombe (LX3JL). All rights reserved. 7 | // 8 | // ---------------------------------------------------------------------------- 9 | // This file is part of xlxd. 10 | // 11 | // xlxd is free software: you can redistribute it and/or modify 12 | // it under the terms of the GNU General Public License as published by 13 | // the Free Software Foundation, either version 3 of the License, or 14 | // (at your option) any later version. 15 | // 16 | // xlxd is distributed in the hope that it will be useful, 17 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | // GNU General Public License for more details. 20 | // 21 | // You should have received a copy of the GNU General Public License 22 | // along with Foobar. If not, see . 23 | // ---------------------------------------------------------------------------- 24 | 25 | #ifndef csemaphore_h 26 | #define csemaphore_h 27 | 28 | 29 | //////////////////////////////////////////////////////////////////////////////////////// 30 | // class 31 | 32 | class CSemaphore 33 | { 34 | public: 35 | // constructor 36 | CSemaphore(); 37 | 38 | // destructor 39 | virtual ~CSemaphore() {}; 40 | 41 | // operation 42 | void Reset(void); 43 | void Notify(void); 44 | void Wait(void); 45 | bool WaitFor(uint); 46 | 47 | protected: 48 | // data 49 | std::mutex m_Mutex; 50 | std::condition_variable m_Condition; 51 | size_t m_Count; 52 | 53 | }; 54 | 55 | //////////////////////////////////////////////////////////////////////////////////////// 56 | #endif /* csemaphore_h */ 57 | -------------------------------------------------------------------------------- /ambedtest/makefile: -------------------------------------------------------------------------------- 1 | CC=g++ 2 | CFLAGS=-c -std=c++11 -pthread 3 | LDFLAGS=-std=c++11 -pthread 4 | SOURCES=$(wildcard *.cpp) 5 | OBJECTS=$(SOURCES:.cpp=.o) 6 | EXECUTABLE=ambedtest 7 | 8 | all: $(SOURCES) $(EXECUTABLE) 9 | 10 | $(EXECUTABLE): $(OBJECTS) 11 | $(CC) $(LDFLAGS) $(OBJECTS) -Wl,-rpath,/usr/local/lib -o $@ 12 | 13 | .cpp.o: 14 | $(CC) $(CFLAGS) $< -o $@ 15 | 16 | clean: 17 | $(RM) $(EXECUTABLE) *.o 18 | -------------------------------------------------------------------------------- /config/xlxd.blacklist: -------------------------------------------------------------------------------- 1 | ############################################################################## 2 | # XLXD blacklist file 3 | # 4 | # one line per entry 5 | # each entry is explicitely denied access (blacklisted) 6 | # you can use * as last wildcard character 7 | # example: 8 | # * -> deny access to eveybody !!! 9 | # LX* -> deny access to all callsign starting with LX 10 | # LX3JL -> deny access to LX3JL exactly 11 | # 12 | ############################################################################# 13 | -------------------------------------------------------------------------------- /config/xlxd.interlink: -------------------------------------------------------------------------------- 1 | ############################################################################## 2 | # XLXD interlink file 3 | # 4 | # one line per entry 5 | # each entry specify a remote XLX to peer with 6 | # format: 7 | # 8 | # example: 9 | # XLX270 158.64.26.132 ACD 10 | # 11 | # note: the remote XLX must list this XLX in it's interlink file 12 | # for the link to be established 13 | # 14 | ############################################################################# 15 | -------------------------------------------------------------------------------- /config/xlxd.terminal: -------------------------------------------------------------------------------- 1 | ######################################################################################### 2 | # XLXD terminal option file 3 | # 4 | # one line per entry 5 | # each entry specifies a terminal option 6 | # 7 | # Valid option: 8 | # address - Ip address to be used by the terminal route responder 9 | # By default, the request destination address is used. 10 | # If the system is behind a router, set it to the public IP 11 | # If the system runs on the public IP, leave unset. 12 | # modules - a string with all modules to accept a terminal connection 13 | # Default value is "*", meaning accept all 14 | # 15 | ######################################################################################### 16 | #address 193.1.2.3 17 | #modules BCD 18 | -------------------------------------------------------------------------------- /config/xlxd.whitelist: -------------------------------------------------------------------------------- 1 | ############################################################################## 2 | # XLXD whitelist file 3 | # 4 | # one line per entry 5 | # each entry is explicitely authorised (whitelisted) 6 | # you can use * as last wildcard character 7 | # example: 8 | # * -> authorize eveybody 9 | # LX* -> authorize all callsign starting with LX 10 | # LX3JL -> authorize LX3JL exactly 11 | # 12 | ############################################################################# 13 | * 14 | -------------------------------------------------------------------------------- /dashboard/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/favicon.ico -------------------------------------------------------------------------------- /dashboard/img/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/down.png -------------------------------------------------------------------------------- /dashboard/img/dvc.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/dvc.jpg -------------------------------------------------------------------------------- /dashboard/img/ear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/ear.png -------------------------------------------------------------------------------- /dashboard/img/easterheader.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/easterheader.jpg -------------------------------------------------------------------------------- /dashboard/img/flags/ad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/ad.png -------------------------------------------------------------------------------- /dashboard/img/flags/ae.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/ae.png -------------------------------------------------------------------------------- /dashboard/img/flags/af.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/af.png -------------------------------------------------------------------------------- /dashboard/img/flags/ag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/ag.png -------------------------------------------------------------------------------- /dashboard/img/flags/al.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/al.png -------------------------------------------------------------------------------- /dashboard/img/flags/am.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/am.png -------------------------------------------------------------------------------- /dashboard/img/flags/ao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/ao.png -------------------------------------------------------------------------------- /dashboard/img/flags/ar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/ar.png -------------------------------------------------------------------------------- /dashboard/img/flags/at.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/at.png -------------------------------------------------------------------------------- /dashboard/img/flags/au.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/au.png -------------------------------------------------------------------------------- /dashboard/img/flags/ax.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/ax.png -------------------------------------------------------------------------------- /dashboard/img/flags/az.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/az.png -------------------------------------------------------------------------------- /dashboard/img/flags/ba.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/ba.png -------------------------------------------------------------------------------- /dashboard/img/flags/bb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/bb.png -------------------------------------------------------------------------------- /dashboard/img/flags/bd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/bd.png -------------------------------------------------------------------------------- /dashboard/img/flags/be.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/be.png -------------------------------------------------------------------------------- /dashboard/img/flags/bf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/bf.png -------------------------------------------------------------------------------- /dashboard/img/flags/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/bg.png -------------------------------------------------------------------------------- /dashboard/img/flags/bh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/bh.png -------------------------------------------------------------------------------- /dashboard/img/flags/bi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/bi.png -------------------------------------------------------------------------------- /dashboard/img/flags/bj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/bj.png -------------------------------------------------------------------------------- /dashboard/img/flags/bn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/bn.png -------------------------------------------------------------------------------- /dashboard/img/flags/bo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/bo.png -------------------------------------------------------------------------------- /dashboard/img/flags/br.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/br.png -------------------------------------------------------------------------------- /dashboard/img/flags/bs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/bs.png -------------------------------------------------------------------------------- /dashboard/img/flags/bt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/bt.png -------------------------------------------------------------------------------- /dashboard/img/flags/bw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/bw.png -------------------------------------------------------------------------------- /dashboard/img/flags/by.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/by.png -------------------------------------------------------------------------------- /dashboard/img/flags/bz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/bz.png -------------------------------------------------------------------------------- /dashboard/img/flags/ca.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/ca.png -------------------------------------------------------------------------------- /dashboard/img/flags/cd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/cd.png -------------------------------------------------------------------------------- /dashboard/img/flags/cf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/cf.png -------------------------------------------------------------------------------- /dashboard/img/flags/cg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/cg.png -------------------------------------------------------------------------------- /dashboard/img/flags/ch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/ch.png -------------------------------------------------------------------------------- /dashboard/img/flags/ci.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/ci.png -------------------------------------------------------------------------------- /dashboard/img/flags/cl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/cl.png -------------------------------------------------------------------------------- /dashboard/img/flags/cm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/cm.png -------------------------------------------------------------------------------- /dashboard/img/flags/cn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/cn.png -------------------------------------------------------------------------------- /dashboard/img/flags/co.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/co.png -------------------------------------------------------------------------------- /dashboard/img/flags/cr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/cr.png -------------------------------------------------------------------------------- /dashboard/img/flags/cs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/cs.png -------------------------------------------------------------------------------- /dashboard/img/flags/cu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/cu.png -------------------------------------------------------------------------------- /dashboard/img/flags/cv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/cv.png -------------------------------------------------------------------------------- /dashboard/img/flags/cy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/cy.png -------------------------------------------------------------------------------- /dashboard/img/flags/cz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/cz.png -------------------------------------------------------------------------------- /dashboard/img/flags/de.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/de.png -------------------------------------------------------------------------------- /dashboard/img/flags/dj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/dj.png -------------------------------------------------------------------------------- /dashboard/img/flags/dk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/dk.png -------------------------------------------------------------------------------- /dashboard/img/flags/dm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/dm.png -------------------------------------------------------------------------------- /dashboard/img/flags/do.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/do.png -------------------------------------------------------------------------------- /dashboard/img/flags/dz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/dz.png -------------------------------------------------------------------------------- /dashboard/img/flags/ec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/ec.png -------------------------------------------------------------------------------- /dashboard/img/flags/ee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/ee.png -------------------------------------------------------------------------------- /dashboard/img/flags/eg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/eg.png -------------------------------------------------------------------------------- /dashboard/img/flags/eh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/eh.png -------------------------------------------------------------------------------- /dashboard/img/flags/en.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/en.png -------------------------------------------------------------------------------- /dashboard/img/flags/er.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/er.png -------------------------------------------------------------------------------- /dashboard/img/flags/es.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/es.png -------------------------------------------------------------------------------- /dashboard/img/flags/et.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/et.png -------------------------------------------------------------------------------- /dashboard/img/flags/fi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/fi.png -------------------------------------------------------------------------------- /dashboard/img/flags/fj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/fj.png -------------------------------------------------------------------------------- /dashboard/img/flags/fm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/fm.png -------------------------------------------------------------------------------- /dashboard/img/flags/fr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/fr.png -------------------------------------------------------------------------------- /dashboard/img/flags/ga.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/ga.png -------------------------------------------------------------------------------- /dashboard/img/flags/gate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/gate.png -------------------------------------------------------------------------------- /dashboard/img/flags/gb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/gb.png -------------------------------------------------------------------------------- /dashboard/img/flags/gd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/gd.png -------------------------------------------------------------------------------- /dashboard/img/flags/ge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/ge.png -------------------------------------------------------------------------------- /dashboard/img/flags/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/gh.png -------------------------------------------------------------------------------- /dashboard/img/flags/gm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/gm.png -------------------------------------------------------------------------------- /dashboard/img/flags/gn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/gn.png -------------------------------------------------------------------------------- /dashboard/img/flags/gq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/gq.png -------------------------------------------------------------------------------- /dashboard/img/flags/gr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/gr.png -------------------------------------------------------------------------------- /dashboard/img/flags/gt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/gt.png -------------------------------------------------------------------------------- /dashboard/img/flags/gu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/gu.png -------------------------------------------------------------------------------- /dashboard/img/flags/gw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/gw.png -------------------------------------------------------------------------------- /dashboard/img/flags/gy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/gy.png -------------------------------------------------------------------------------- /dashboard/img/flags/hk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/hk.png -------------------------------------------------------------------------------- /dashboard/img/flags/hn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/hn.png -------------------------------------------------------------------------------- /dashboard/img/flags/hr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/hr.png -------------------------------------------------------------------------------- /dashboard/img/flags/ht.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/ht.png -------------------------------------------------------------------------------- /dashboard/img/flags/hu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/hu.png -------------------------------------------------------------------------------- /dashboard/img/flags/id.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/id.png -------------------------------------------------------------------------------- /dashboard/img/flags/ie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/ie.png -------------------------------------------------------------------------------- /dashboard/img/flags/il.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/il.png -------------------------------------------------------------------------------- /dashboard/img/flags/im.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/im.png -------------------------------------------------------------------------------- /dashboard/img/flags/in.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/in.png -------------------------------------------------------------------------------- /dashboard/img/flags/iq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/iq.png -------------------------------------------------------------------------------- /dashboard/img/flags/ir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/ir.png -------------------------------------------------------------------------------- /dashboard/img/flags/is.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/is.png -------------------------------------------------------------------------------- /dashboard/img/flags/it.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/it.png -------------------------------------------------------------------------------- /dashboard/img/flags/jm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/jm.png -------------------------------------------------------------------------------- /dashboard/img/flags/jo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/jo.png -------------------------------------------------------------------------------- /dashboard/img/flags/jp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/jp.png -------------------------------------------------------------------------------- /dashboard/img/flags/ke.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/ke.png -------------------------------------------------------------------------------- /dashboard/img/flags/kg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/kg.png -------------------------------------------------------------------------------- /dashboard/img/flags/kh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/kh.png -------------------------------------------------------------------------------- /dashboard/img/flags/ki.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/ki.png -------------------------------------------------------------------------------- /dashboard/img/flags/km.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/km.png -------------------------------------------------------------------------------- /dashboard/img/flags/kn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/kn.png -------------------------------------------------------------------------------- /dashboard/img/flags/kp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/kp.png -------------------------------------------------------------------------------- /dashboard/img/flags/kr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/kr.png -------------------------------------------------------------------------------- /dashboard/img/flags/ks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/ks.png -------------------------------------------------------------------------------- /dashboard/img/flags/kw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/kw.png -------------------------------------------------------------------------------- /dashboard/img/flags/kz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/kz.png -------------------------------------------------------------------------------- /dashboard/img/flags/la.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/la.png -------------------------------------------------------------------------------- /dashboard/img/flags/lb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/lb.png -------------------------------------------------------------------------------- /dashboard/img/flags/lc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/lc.png -------------------------------------------------------------------------------- /dashboard/img/flags/li.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/li.png -------------------------------------------------------------------------------- /dashboard/img/flags/lk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/lk.png -------------------------------------------------------------------------------- /dashboard/img/flags/lr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/lr.png -------------------------------------------------------------------------------- /dashboard/img/flags/ls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/ls.png -------------------------------------------------------------------------------- /dashboard/img/flags/lt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/lt.png -------------------------------------------------------------------------------- /dashboard/img/flags/lu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/lu.png -------------------------------------------------------------------------------- /dashboard/img/flags/lv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/lv.png -------------------------------------------------------------------------------- /dashboard/img/flags/ly.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/ly.png -------------------------------------------------------------------------------- /dashboard/img/flags/ma.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/ma.png -------------------------------------------------------------------------------- /dashboard/img/flags/mc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/mc.png -------------------------------------------------------------------------------- /dashboard/img/flags/md.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/md.png -------------------------------------------------------------------------------- /dashboard/img/flags/me.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/me.png -------------------------------------------------------------------------------- /dashboard/img/flags/mg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/mg.png -------------------------------------------------------------------------------- /dashboard/img/flags/mh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/mh.png -------------------------------------------------------------------------------- /dashboard/img/flags/mk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/mk.png -------------------------------------------------------------------------------- /dashboard/img/flags/ml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/ml.png -------------------------------------------------------------------------------- /dashboard/img/flags/mm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/mm.png -------------------------------------------------------------------------------- /dashboard/img/flags/mn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/mn.png -------------------------------------------------------------------------------- /dashboard/img/flags/mo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/mo.png -------------------------------------------------------------------------------- /dashboard/img/flags/mr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/mr.png -------------------------------------------------------------------------------- /dashboard/img/flags/mt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/mt.png -------------------------------------------------------------------------------- /dashboard/img/flags/mu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/mu.png -------------------------------------------------------------------------------- /dashboard/img/flags/mv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/mv.png -------------------------------------------------------------------------------- /dashboard/img/flags/mw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/mw.png -------------------------------------------------------------------------------- /dashboard/img/flags/mx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/mx.png -------------------------------------------------------------------------------- /dashboard/img/flags/my.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/my.png -------------------------------------------------------------------------------- /dashboard/img/flags/mz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/mz.png -------------------------------------------------------------------------------- /dashboard/img/flags/na.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/na.png -------------------------------------------------------------------------------- /dashboard/img/flags/ne.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/ne.png -------------------------------------------------------------------------------- /dashboard/img/flags/ng.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/ng.png -------------------------------------------------------------------------------- /dashboard/img/flags/ni.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/ni.png -------------------------------------------------------------------------------- /dashboard/img/flags/nie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/nie.png -------------------------------------------------------------------------------- /dashboard/img/flags/nl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/nl.png -------------------------------------------------------------------------------- /dashboard/img/flags/no.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/no.png -------------------------------------------------------------------------------- /dashboard/img/flags/np.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/np.png -------------------------------------------------------------------------------- /dashboard/img/flags/nr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/nr.png -------------------------------------------------------------------------------- /dashboard/img/flags/nz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/nz.png -------------------------------------------------------------------------------- /dashboard/img/flags/om.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/om.png -------------------------------------------------------------------------------- /dashboard/img/flags/pa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/pa.png -------------------------------------------------------------------------------- /dashboard/img/flags/pe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/pe.png -------------------------------------------------------------------------------- /dashboard/img/flags/pg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/pg.png -------------------------------------------------------------------------------- /dashboard/img/flags/ph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/ph.png -------------------------------------------------------------------------------- /dashboard/img/flags/pk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/pk.png -------------------------------------------------------------------------------- /dashboard/img/flags/pl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/pl.png -------------------------------------------------------------------------------- /dashboard/img/flags/pr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/pr.png -------------------------------------------------------------------------------- /dashboard/img/flags/pt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/pt.png -------------------------------------------------------------------------------- /dashboard/img/flags/pw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/pw.png -------------------------------------------------------------------------------- /dashboard/img/flags/py.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/py.png -------------------------------------------------------------------------------- /dashboard/img/flags/qa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/qa.png -------------------------------------------------------------------------------- /dashboard/img/flags/re.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/re.png -------------------------------------------------------------------------------- /dashboard/img/flags/ro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/ro.png -------------------------------------------------------------------------------- /dashboard/img/flags/rs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/rs.png -------------------------------------------------------------------------------- /dashboard/img/flags/ru.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/ru.png -------------------------------------------------------------------------------- /dashboard/img/flags/rw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/rw.png -------------------------------------------------------------------------------- /dashboard/img/flags/sa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/sa.png -------------------------------------------------------------------------------- /dashboard/img/flags/sb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/sb.png -------------------------------------------------------------------------------- /dashboard/img/flags/sc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/sc.png -------------------------------------------------------------------------------- /dashboard/img/flags/sd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/sd.png -------------------------------------------------------------------------------- /dashboard/img/flags/se.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/se.png -------------------------------------------------------------------------------- /dashboard/img/flags/sg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/sg.png -------------------------------------------------------------------------------- /dashboard/img/flags/sh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/sh.png -------------------------------------------------------------------------------- /dashboard/img/flags/si.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/si.png -------------------------------------------------------------------------------- /dashboard/img/flags/sk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/sk.png -------------------------------------------------------------------------------- /dashboard/img/flags/sl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/sl.png -------------------------------------------------------------------------------- /dashboard/img/flags/sm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/sm.png -------------------------------------------------------------------------------- /dashboard/img/flags/sn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/sn.png -------------------------------------------------------------------------------- /dashboard/img/flags/so.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/so.png -------------------------------------------------------------------------------- /dashboard/img/flags/sr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/sr.png -------------------------------------------------------------------------------- /dashboard/img/flags/st.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/st.png -------------------------------------------------------------------------------- /dashboard/img/flags/sv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/sv.png -------------------------------------------------------------------------------- /dashboard/img/flags/sy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/sy.png -------------------------------------------------------------------------------- /dashboard/img/flags/sz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/sz.png -------------------------------------------------------------------------------- /dashboard/img/flags/td.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/td.png -------------------------------------------------------------------------------- /dashboard/img/flags/tg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/tg.png -------------------------------------------------------------------------------- /dashboard/img/flags/th.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/th.png -------------------------------------------------------------------------------- /dashboard/img/flags/tj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/tj.png -------------------------------------------------------------------------------- /dashboard/img/flags/tl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/tl.png -------------------------------------------------------------------------------- /dashboard/img/flags/tm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/tm.png -------------------------------------------------------------------------------- /dashboard/img/flags/tn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/tn.png -------------------------------------------------------------------------------- /dashboard/img/flags/to.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/to.png -------------------------------------------------------------------------------- /dashboard/img/flags/tr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/tr.png -------------------------------------------------------------------------------- /dashboard/img/flags/tt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/tt.png -------------------------------------------------------------------------------- /dashboard/img/flags/tv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/tv.png -------------------------------------------------------------------------------- /dashboard/img/flags/tw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/tw.png -------------------------------------------------------------------------------- /dashboard/img/flags/tz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/tz.png -------------------------------------------------------------------------------- /dashboard/img/flags/ua.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/ua.png -------------------------------------------------------------------------------- /dashboard/img/flags/ug.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/ug.png -------------------------------------------------------------------------------- /dashboard/img/flags/us.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/us.png -------------------------------------------------------------------------------- /dashboard/img/flags/uy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/uy.png -------------------------------------------------------------------------------- /dashboard/img/flags/uz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/uz.png -------------------------------------------------------------------------------- /dashboard/img/flags/va.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/va.png -------------------------------------------------------------------------------- /dashboard/img/flags/vc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/vc.png -------------------------------------------------------------------------------- /dashboard/img/flags/ve.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/ve.png -------------------------------------------------------------------------------- /dashboard/img/flags/vn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/vn.png -------------------------------------------------------------------------------- /dashboard/img/flags/vu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/vu.png -------------------------------------------------------------------------------- /dashboard/img/flags/wl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/wl.png -------------------------------------------------------------------------------- /dashboard/img/flags/ws.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/ws.png -------------------------------------------------------------------------------- /dashboard/img/flags/ye.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/ye.png -------------------------------------------------------------------------------- /dashboard/img/flags/za.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/za.png -------------------------------------------------------------------------------- /dashboard/img/flags/zm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/zm.png -------------------------------------------------------------------------------- /dashboard/img/flags/zw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/flags/zw.png -------------------------------------------------------------------------------- /dashboard/img/header.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/header.jpg -------------------------------------------------------------------------------- /dashboard/img/radio-waves-hi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/radio-waves-hi.png -------------------------------------------------------------------------------- /dashboard/img/sat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/sat.png -------------------------------------------------------------------------------- /dashboard/img/speaker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/speaker.png -------------------------------------------------------------------------------- /dashboard/img/tx.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/tx.gif -------------------------------------------------------------------------------- /dashboard/img/up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/img/up.png -------------------------------------------------------------------------------- /dashboard/log/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard/log/index.html -------------------------------------------------------------------------------- /dashboard/log/xlxlog.php: -------------------------------------------------------------------------------- 1 | 13 | 14 | 15 | 16 | 17 | '; 18 | 19 | die(); 20 | } 21 | } 22 | else { 23 | echo ' 24 |
25 | 26 | 27 | 28 | 29 |
'; 30 | 31 | die(); 32 | } 33 | 34 | 35 | ?> 36 | 38 | 39 | 40 | 41 | XLX Live Log 42 | 54 | 55 | 56 | 57 |
58 | 
59 | 
79 |    
80 | 81 | 82 | -------------------------------------------------------------------------------- /dashboard/pgs/class.interlink.php: -------------------------------------------------------------------------------- 1 | ReflectorName = null; 11 | $this->ReflectorAddress = null; 12 | $this->Modules = null; 13 | } 14 | 15 | public function SetName($RefName) { $this->ReflectorName = trim($RefName); } 16 | public function SetAddress($RefAdd) { $this->ReflectorAddress = trim($RefAdd); } 17 | public function GetName() { return $this->ReflectorName; } 18 | public function GetAddress() { return $this->ReflectorAddress; } 19 | public function GetModules() { return $this->Modules; } 20 | 21 | 22 | public function AddModule($Module) { 23 | $Module = trim($Module); 24 | if (strlen($Module) != 1) return false; 25 | if (strpos($this->Modules, $Module) === false) { 26 | $this->Modules .= $Module; 27 | } 28 | return true; 29 | } 30 | 31 | public function RemoveModule($Module) { 32 | $Module = trim($Module); 33 | if (strlen($Module) != 1) return false; 34 | if (strpos($this->Modules, $Module) !== false) { 35 | $this->Modules = substr($this->Modules, 0, strpos($this->Modules, $Module)-1).substr($this->Modules, strpos($this->Modules, $Module)+1, strlen($this->Modules)); 36 | } 37 | return true; 38 | } 39 | 40 | public function HasModuleEnabled($Module) { 41 | if (strlen($Module) != 1) return false; 42 | return (strpos($this->Modules, $Module) !== false); 43 | } 44 | 45 | } 46 | 47 | 48 | -------------------------------------------------------------------------------- /dashboard/pgs/class.parsexml.php: -------------------------------------------------------------------------------- 1 | ") === false) return false; 11 | if (strpos($InputString, "") === false) return false; 12 | 13 | $Element = substr($InputString, strpos($InputString, "<".$ElementName.">")+strlen($ElementName)+2, strpos($InputString, "")-strpos($InputString, "<".$ElementName.">")-strlen($ElementName)-2); 14 | return $Element; 15 | 16 | } 17 | 18 | public function GetAllElements($InputString, $ElementName) { 19 | $Elements = array(); 20 | while (strpos($InputString, $ElementName) !== false) { 21 | $Elements[] = $this->GetElement($InputString, $ElementName); 22 | $InputString = substr($InputString, strpos($InputString, "")+strlen($ElementName)+3, strlen($InputString)); 23 | } 24 | return $Elements; 25 | } 26 | 27 | } 28 | 29 | ?> 30 | -------------------------------------------------------------------------------- /dashboard/pgs/class.peer.php: -------------------------------------------------------------------------------- 1 | IP = $IP; 15 | $this->Protocol = $Protocol; 16 | $this->ConnectTime = ParseTime($ConnectTime); 17 | $this->LastHeardTime = ParseTime($LastHeardTime); 18 | $this->Callsign = trim($Callsign); 19 | $this->LinkedModule = trim($LinkedModule); 20 | } 21 | 22 | 23 | public function GetCallsign() { return $this->Callsign; } 24 | public function GetIP() { return $this->IP; } 25 | public function GetLinkedModule() { return $this->LinkedModule; } 26 | public function GetProtocol() { return $this->Protocol; } 27 | public function GetConnectTime() { return $this->ConnectTime; } 28 | public function GetLastHeardTime() { return $this->LastHeardTime; } 29 | 30 | } 31 | 32 | ?> -------------------------------------------------------------------------------- /dashboard/pgs/class.station.php: -------------------------------------------------------------------------------- 1 | Callsign = trim($Callsign); 15 | $this->Via = trim($Via); 16 | $this->Peer = trim($Peer); 17 | $this->LastHeardTime = ParseTime($LastHeardTime); 18 | if (strpos($Callsign, " / ") !== false) { 19 | $this->Suffix = trim(substr($Callsign, strpos($Callsign, " / ")+3, strlen($Callsign))); 20 | } 21 | else { 22 | $this->Suffix = ""; 23 | } 24 | 25 | $tmp = explode(" ", $Callsign); 26 | $this->CallsignOnly = $tmp[0]; 27 | $this->OnModule = $OnModule; 28 | } 29 | 30 | public function GetCallsign() { return $this->Callsign; } 31 | public function GetVIA() { return $this->Via; } 32 | public function GetPeer() { return $this->Peer; } 33 | public function GetLastHeardTime() { return $this->LastHeardTime; } 34 | public function GetSuffix() { return $this->Suffix; } 35 | public function GetCallsignOnly() { return $this->CallsignOnly; } 36 | public function GetModule() { return $this->OnModule; } 37 | 38 | } 39 | 40 | ?> -------------------------------------------------------------------------------- /dashboard/pgs/liveccs.php: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 | -------------------------------------------------------------------------------- /dashboard/pgs/liveircddb.php: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 | -------------------------------------------------------------------------------- /dashboard/pgs/reflectors.php: -------------------------------------------------------------------------------- 1 | GetElement($INPUT, "reflectorlist"); 15 | $Reflectors = $XML->GetAllElements($Reflectorlist, "reflector"); 16 | 17 | ?> 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | GetElement($Reflectors[$i], "name"); 34 | $COUNTRY = $XML->GetElement($Reflectors[$i], "country"); 35 | $LASTCONTACT = $XML->GetElement($Reflectors[$i], "lastcontact"); 36 | $COMMENT = $XML->GetElement($Reflectors[$i], "comment"); 37 | $DASHBOARDURL = $XML->GetElement($Reflectors[$i], "dashboardurl"); 38 | 39 | if ($odd == "#FFFFFF") { $odd = "#F1FAFA"; } else { $odd = "#FFFFFF"; } 40 | 41 | echo ' 42 | 43 | 44 | 45 | 46 | 47 | 48 | '; 49 | } 50 | 51 | ?> 52 |
#ReflectorCountryServiceComment
'.($i+1).''.$NAME.''.$COUNTRY.''.$COMMENT.'
53 | -------------------------------------------------------------------------------- /dashboard2/changes.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/changes.txt -------------------------------------------------------------------------------- /dashboard2/css/ie10-viewport-bug-workaround.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * IE10 viewport hack for Surface/desktop Windows 8 bug 3 | * Copyright 2014-2015 Twitter, Inc. 4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 5 | */ 6 | 7 | /* 8 | * See the Getting Started docs for more information: 9 | * http://getbootstrap.com/getting-started/#support-ie10-width 10 | */ 11 | @-webkit-viewport { width: device-width; } 12 | @-moz-viewport { width: device-width; } 13 | @-ms-viewport { width: device-width; } 14 | @-o-viewport { width: device-width; } 15 | @viewport { width: device-width; } 16 | -------------------------------------------------------------------------------- /dashboard2/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/favicon.ico -------------------------------------------------------------------------------- /dashboard2/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /dashboard2/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /dashboard2/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /dashboard2/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /dashboard2/img/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/down.png -------------------------------------------------------------------------------- /dashboard2/img/dvc.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/dvc.jpg -------------------------------------------------------------------------------- /dashboard2/img/ear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/ear.png -------------------------------------------------------------------------------- /dashboard2/img/easterheader.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/easterheader.jpg -------------------------------------------------------------------------------- /dashboard2/img/flags/ad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ad.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ae.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ae.png -------------------------------------------------------------------------------- /dashboard2/img/flags/af.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/af.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ag.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ai.png -------------------------------------------------------------------------------- /dashboard2/img/flags/al.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/al.png -------------------------------------------------------------------------------- /dashboard2/img/flags/am.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/am.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ao.png -------------------------------------------------------------------------------- /dashboard2/img/flags/aq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/aq.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ar.png -------------------------------------------------------------------------------- /dashboard2/img/flags/as.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/as.png -------------------------------------------------------------------------------- /dashboard2/img/flags/at.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/at.png -------------------------------------------------------------------------------- /dashboard2/img/flags/au.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/au.png -------------------------------------------------------------------------------- /dashboard2/img/flags/aw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/aw.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ax.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ax.png -------------------------------------------------------------------------------- /dashboard2/img/flags/az.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/az.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ba.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ba.png -------------------------------------------------------------------------------- /dashboard2/img/flags/bb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/bb.png -------------------------------------------------------------------------------- /dashboard2/img/flags/bd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/bd.png -------------------------------------------------------------------------------- /dashboard2/img/flags/be.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/be.png -------------------------------------------------------------------------------- /dashboard2/img/flags/bf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/bf.png -------------------------------------------------------------------------------- /dashboard2/img/flags/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/bg.png -------------------------------------------------------------------------------- /dashboard2/img/flags/bh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/bh.png -------------------------------------------------------------------------------- /dashboard2/img/flags/bi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/bi.png -------------------------------------------------------------------------------- /dashboard2/img/flags/bj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/bj.png -------------------------------------------------------------------------------- /dashboard2/img/flags/bl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/bl.png -------------------------------------------------------------------------------- /dashboard2/img/flags/bm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/bm.png -------------------------------------------------------------------------------- /dashboard2/img/flags/bn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/bn.png -------------------------------------------------------------------------------- /dashboard2/img/flags/bo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/bo.png -------------------------------------------------------------------------------- /dashboard2/img/flags/br.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/br.png -------------------------------------------------------------------------------- /dashboard2/img/flags/bs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/bs.png -------------------------------------------------------------------------------- /dashboard2/img/flags/bt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/bt.png -------------------------------------------------------------------------------- /dashboard2/img/flags/bv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/bv.png -------------------------------------------------------------------------------- /dashboard2/img/flags/bw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/bw.png -------------------------------------------------------------------------------- /dashboard2/img/flags/by.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/by.png -------------------------------------------------------------------------------- /dashboard2/img/flags/bz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/bz.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ca.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ca.png -------------------------------------------------------------------------------- /dashboard2/img/flags/cc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/cc.png -------------------------------------------------------------------------------- /dashboard2/img/flags/cd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/cd.png -------------------------------------------------------------------------------- /dashboard2/img/flags/cf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/cf.png -------------------------------------------------------------------------------- /dashboard2/img/flags/cg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/cg.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ch.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ci.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ci.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ck.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ck.png -------------------------------------------------------------------------------- /dashboard2/img/flags/cl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/cl.png -------------------------------------------------------------------------------- /dashboard2/img/flags/cm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/cm.png -------------------------------------------------------------------------------- /dashboard2/img/flags/cn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/cn.png -------------------------------------------------------------------------------- /dashboard2/img/flags/co.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/co.png -------------------------------------------------------------------------------- /dashboard2/img/flags/cr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/cr.png -------------------------------------------------------------------------------- /dashboard2/img/flags/cs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/cs.png -------------------------------------------------------------------------------- /dashboard2/img/flags/cu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/cu.png -------------------------------------------------------------------------------- /dashboard2/img/flags/cv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/cv.png -------------------------------------------------------------------------------- /dashboard2/img/flags/cw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/cw.png -------------------------------------------------------------------------------- /dashboard2/img/flags/cx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/cx.png -------------------------------------------------------------------------------- /dashboard2/img/flags/cy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/cy.png -------------------------------------------------------------------------------- /dashboard2/img/flags/cz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/cz.png -------------------------------------------------------------------------------- /dashboard2/img/flags/de.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/de.png -------------------------------------------------------------------------------- /dashboard2/img/flags/dj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/dj.png -------------------------------------------------------------------------------- /dashboard2/img/flags/dk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/dk.png -------------------------------------------------------------------------------- /dashboard2/img/flags/dm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/dm.png -------------------------------------------------------------------------------- /dashboard2/img/flags/do.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/do.png -------------------------------------------------------------------------------- /dashboard2/img/flags/dz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/dz.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ec.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ee.png -------------------------------------------------------------------------------- /dashboard2/img/flags/eg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/eg.png -------------------------------------------------------------------------------- /dashboard2/img/flags/eh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/eh.png -------------------------------------------------------------------------------- /dashboard2/img/flags/en.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/en.png -------------------------------------------------------------------------------- /dashboard2/img/flags/er.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/er.png -------------------------------------------------------------------------------- /dashboard2/img/flags/es.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/es.png -------------------------------------------------------------------------------- /dashboard2/img/flags/et.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/et.png -------------------------------------------------------------------------------- /dashboard2/img/flags/fi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/fi.png -------------------------------------------------------------------------------- /dashboard2/img/flags/fj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/fj.png -------------------------------------------------------------------------------- /dashboard2/img/flags/fk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/fk.png -------------------------------------------------------------------------------- /dashboard2/img/flags/fm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/fm.png -------------------------------------------------------------------------------- /dashboard2/img/flags/fo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/fo.png -------------------------------------------------------------------------------- /dashboard2/img/flags/fr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/fr.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ga.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ga.png -------------------------------------------------------------------------------- /dashboard2/img/flags/gate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/gate.png -------------------------------------------------------------------------------- /dashboard2/img/flags/gb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/gb.png -------------------------------------------------------------------------------- /dashboard2/img/flags/gd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/gd.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ge.png -------------------------------------------------------------------------------- /dashboard2/img/flags/gf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/gf.png -------------------------------------------------------------------------------- /dashboard2/img/flags/gg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/gg.png -------------------------------------------------------------------------------- /dashboard2/img/flags/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/gh.png -------------------------------------------------------------------------------- /dashboard2/img/flags/gi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/gi.png -------------------------------------------------------------------------------- /dashboard2/img/flags/gl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/gl.png -------------------------------------------------------------------------------- /dashboard2/img/flags/gm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/gm.png -------------------------------------------------------------------------------- /dashboard2/img/flags/gn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/gn.png -------------------------------------------------------------------------------- /dashboard2/img/flags/gp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/gp.png -------------------------------------------------------------------------------- /dashboard2/img/flags/gq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/gq.png -------------------------------------------------------------------------------- /dashboard2/img/flags/gr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/gr.png -------------------------------------------------------------------------------- /dashboard2/img/flags/gs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/gs.png -------------------------------------------------------------------------------- /dashboard2/img/flags/gt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/gt.png -------------------------------------------------------------------------------- /dashboard2/img/flags/gu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/gu.png -------------------------------------------------------------------------------- /dashboard2/img/flags/gw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/gw.png -------------------------------------------------------------------------------- /dashboard2/img/flags/gy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/gy.png -------------------------------------------------------------------------------- /dashboard2/img/flags/hk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/hk.png -------------------------------------------------------------------------------- /dashboard2/img/flags/hm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/hm.png -------------------------------------------------------------------------------- /dashboard2/img/flags/hn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/hn.png -------------------------------------------------------------------------------- /dashboard2/img/flags/hr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/hr.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ht.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ht.png -------------------------------------------------------------------------------- /dashboard2/img/flags/hu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/hu.png -------------------------------------------------------------------------------- /dashboard2/img/flags/id.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/id.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ie.png -------------------------------------------------------------------------------- /dashboard2/img/flags/il.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/il.png -------------------------------------------------------------------------------- /dashboard2/img/flags/im.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/im.png -------------------------------------------------------------------------------- /dashboard2/img/flags/in.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/in.png -------------------------------------------------------------------------------- /dashboard2/img/flags/io.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/io.png -------------------------------------------------------------------------------- /dashboard2/img/flags/iq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/iq.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ir.png -------------------------------------------------------------------------------- /dashboard2/img/flags/is.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/is.png -------------------------------------------------------------------------------- /dashboard2/img/flags/it.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/it.png -------------------------------------------------------------------------------- /dashboard2/img/flags/je.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/je.png -------------------------------------------------------------------------------- /dashboard2/img/flags/jm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/jm.png -------------------------------------------------------------------------------- /dashboard2/img/flags/jo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/jo.png -------------------------------------------------------------------------------- /dashboard2/img/flags/jp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/jp.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ke.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ke.png -------------------------------------------------------------------------------- /dashboard2/img/flags/kg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/kg.png -------------------------------------------------------------------------------- /dashboard2/img/flags/kh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/kh.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ki.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ki.png -------------------------------------------------------------------------------- /dashboard2/img/flags/km.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/km.png -------------------------------------------------------------------------------- /dashboard2/img/flags/kn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/kn.png -------------------------------------------------------------------------------- /dashboard2/img/flags/kp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/kp.png -------------------------------------------------------------------------------- /dashboard2/img/flags/kr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/kr.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ks.png -------------------------------------------------------------------------------- /dashboard2/img/flags/kw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/kw.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ky.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ky.png -------------------------------------------------------------------------------- /dashboard2/img/flags/kz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/kz.png -------------------------------------------------------------------------------- /dashboard2/img/flags/la.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/la.png -------------------------------------------------------------------------------- /dashboard2/img/flags/lb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/lb.png -------------------------------------------------------------------------------- /dashboard2/img/flags/lc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/lc.png -------------------------------------------------------------------------------- /dashboard2/img/flags/li.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/li.png -------------------------------------------------------------------------------- /dashboard2/img/flags/lk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/lk.png -------------------------------------------------------------------------------- /dashboard2/img/flags/lr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/lr.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ls.png -------------------------------------------------------------------------------- /dashboard2/img/flags/lt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/lt.png -------------------------------------------------------------------------------- /dashboard2/img/flags/lu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/lu.png -------------------------------------------------------------------------------- /dashboard2/img/flags/lv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/lv.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ly.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ly.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ma.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ma.png -------------------------------------------------------------------------------- /dashboard2/img/flags/mc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/mc.png -------------------------------------------------------------------------------- /dashboard2/img/flags/md.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/md.png -------------------------------------------------------------------------------- /dashboard2/img/flags/me.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/me.png -------------------------------------------------------------------------------- /dashboard2/img/flags/mf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/mf.png -------------------------------------------------------------------------------- /dashboard2/img/flags/mg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/mg.png -------------------------------------------------------------------------------- /dashboard2/img/flags/mh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/mh.png -------------------------------------------------------------------------------- /dashboard2/img/flags/mk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/mk.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ml.png -------------------------------------------------------------------------------- /dashboard2/img/flags/mm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/mm.png -------------------------------------------------------------------------------- /dashboard2/img/flags/mn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/mn.png -------------------------------------------------------------------------------- /dashboard2/img/flags/mo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/mo.png -------------------------------------------------------------------------------- /dashboard2/img/flags/mp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/mp.png -------------------------------------------------------------------------------- /dashboard2/img/flags/mq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/mq.png -------------------------------------------------------------------------------- /dashboard2/img/flags/mr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/mr.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ms.png -------------------------------------------------------------------------------- /dashboard2/img/flags/mt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/mt.png -------------------------------------------------------------------------------- /dashboard2/img/flags/mu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/mu.png -------------------------------------------------------------------------------- /dashboard2/img/flags/mv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/mv.png -------------------------------------------------------------------------------- /dashboard2/img/flags/mw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/mw.png -------------------------------------------------------------------------------- /dashboard2/img/flags/mx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/mx.png -------------------------------------------------------------------------------- /dashboard2/img/flags/my.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/my.png -------------------------------------------------------------------------------- /dashboard2/img/flags/mz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/mz.png -------------------------------------------------------------------------------- /dashboard2/img/flags/na.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/na.png -------------------------------------------------------------------------------- /dashboard2/img/flags/nc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/nc.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ne.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ne.png -------------------------------------------------------------------------------- /dashboard2/img/flags/nf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/nf.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ng.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ng.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ni.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ni.png -------------------------------------------------------------------------------- /dashboard2/img/flags/nie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/nie.png -------------------------------------------------------------------------------- /dashboard2/img/flags/nl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/nl.png -------------------------------------------------------------------------------- /dashboard2/img/flags/no.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/no.png -------------------------------------------------------------------------------- /dashboard2/img/flags/np.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/np.png -------------------------------------------------------------------------------- /dashboard2/img/flags/nr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/nr.png -------------------------------------------------------------------------------- /dashboard2/img/flags/nu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/nu.png -------------------------------------------------------------------------------- /dashboard2/img/flags/nz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/nz.png -------------------------------------------------------------------------------- /dashboard2/img/flags/om.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/om.png -------------------------------------------------------------------------------- /dashboard2/img/flags/pa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/pa.png -------------------------------------------------------------------------------- /dashboard2/img/flags/pe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/pe.png -------------------------------------------------------------------------------- /dashboard2/img/flags/pf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/pf.png -------------------------------------------------------------------------------- /dashboard2/img/flags/pg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/pg.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ph.png -------------------------------------------------------------------------------- /dashboard2/img/flags/pk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/pk.png -------------------------------------------------------------------------------- /dashboard2/img/flags/pl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/pl.png -------------------------------------------------------------------------------- /dashboard2/img/flags/pm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/pm.png -------------------------------------------------------------------------------- /dashboard2/img/flags/pn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/pn.png -------------------------------------------------------------------------------- /dashboard2/img/flags/pr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/pr.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ps.png -------------------------------------------------------------------------------- /dashboard2/img/flags/pt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/pt.png -------------------------------------------------------------------------------- /dashboard2/img/flags/pw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/pw.png -------------------------------------------------------------------------------- /dashboard2/img/flags/py.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/py.png -------------------------------------------------------------------------------- /dashboard2/img/flags/qa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/qa.png -------------------------------------------------------------------------------- /dashboard2/img/flags/re.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/re.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ro.png -------------------------------------------------------------------------------- /dashboard2/img/flags/rs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/rs.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ru.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ru.png -------------------------------------------------------------------------------- /dashboard2/img/flags/rw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/rw.png -------------------------------------------------------------------------------- /dashboard2/img/flags/sa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/sa.png -------------------------------------------------------------------------------- /dashboard2/img/flags/sb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/sb.png -------------------------------------------------------------------------------- /dashboard2/img/flags/sc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/sc.png -------------------------------------------------------------------------------- /dashboard2/img/flags/sd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/sd.png -------------------------------------------------------------------------------- /dashboard2/img/flags/se.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/se.png -------------------------------------------------------------------------------- /dashboard2/img/flags/sg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/sg.png -------------------------------------------------------------------------------- /dashboard2/img/flags/sh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/sh.png -------------------------------------------------------------------------------- /dashboard2/img/flags/si.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/si.png -------------------------------------------------------------------------------- /dashboard2/img/flags/sk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/sk.png -------------------------------------------------------------------------------- /dashboard2/img/flags/sl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/sl.png -------------------------------------------------------------------------------- /dashboard2/img/flags/sm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/sm.png -------------------------------------------------------------------------------- /dashboard2/img/flags/sn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/sn.png -------------------------------------------------------------------------------- /dashboard2/img/flags/so.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/so.png -------------------------------------------------------------------------------- /dashboard2/img/flags/sr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/sr.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ss.png -------------------------------------------------------------------------------- /dashboard2/img/flags/st.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/st.png -------------------------------------------------------------------------------- /dashboard2/img/flags/sv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/sv.png -------------------------------------------------------------------------------- /dashboard2/img/flags/sx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/sx.png -------------------------------------------------------------------------------- /dashboard2/img/flags/sy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/sy.png -------------------------------------------------------------------------------- /dashboard2/img/flags/sz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/sz.png -------------------------------------------------------------------------------- /dashboard2/img/flags/tc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/tc.png -------------------------------------------------------------------------------- /dashboard2/img/flags/td.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/td.png -------------------------------------------------------------------------------- /dashboard2/img/flags/tg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/tg.png -------------------------------------------------------------------------------- /dashboard2/img/flags/th.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/th.png -------------------------------------------------------------------------------- /dashboard2/img/flags/tj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/tj.png -------------------------------------------------------------------------------- /dashboard2/img/flags/tk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/tk.png -------------------------------------------------------------------------------- /dashboard2/img/flags/tl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/tl.png -------------------------------------------------------------------------------- /dashboard2/img/flags/tm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/tm.png -------------------------------------------------------------------------------- /dashboard2/img/flags/tn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/tn.png -------------------------------------------------------------------------------- /dashboard2/img/flags/to.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/to.png -------------------------------------------------------------------------------- /dashboard2/img/flags/tr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/tr.png -------------------------------------------------------------------------------- /dashboard2/img/flags/tt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/tt.png -------------------------------------------------------------------------------- /dashboard2/img/flags/tv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/tv.png -------------------------------------------------------------------------------- /dashboard2/img/flags/tw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/tw.png -------------------------------------------------------------------------------- /dashboard2/img/flags/tz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/tz.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ua.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ua.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ug.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ug.png -------------------------------------------------------------------------------- /dashboard2/img/flags/um.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/um.png -------------------------------------------------------------------------------- /dashboard2/img/flags/us.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/us.png -------------------------------------------------------------------------------- /dashboard2/img/flags/uy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/uy.png -------------------------------------------------------------------------------- /dashboard2/img/flags/uz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/uz.png -------------------------------------------------------------------------------- /dashboard2/img/flags/va.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/va.png -------------------------------------------------------------------------------- /dashboard2/img/flags/vc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/vc.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ve.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ve.png -------------------------------------------------------------------------------- /dashboard2/img/flags/vg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/vg.png -------------------------------------------------------------------------------- /dashboard2/img/flags/vi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/vi.png -------------------------------------------------------------------------------- /dashboard2/img/flags/vn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/vn.png -------------------------------------------------------------------------------- /dashboard2/img/flags/vu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/vu.png -------------------------------------------------------------------------------- /dashboard2/img/flags/wf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/wf.png -------------------------------------------------------------------------------- /dashboard2/img/flags/wl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/wl.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ws.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ws.png -------------------------------------------------------------------------------- /dashboard2/img/flags/ye.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/ye.png -------------------------------------------------------------------------------- /dashboard2/img/flags/yt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/yt.png -------------------------------------------------------------------------------- /dashboard2/img/flags/za.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/za.png -------------------------------------------------------------------------------- /dashboard2/img/flags/zm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/zm.png -------------------------------------------------------------------------------- /dashboard2/img/flags/zw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/flags/zw.png -------------------------------------------------------------------------------- /dashboard2/img/header.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/header.jpg -------------------------------------------------------------------------------- /dashboard2/img/radio-waves-hi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/radio-waves-hi.png -------------------------------------------------------------------------------- /dashboard2/img/sat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/sat.png -------------------------------------------------------------------------------- /dashboard2/img/speaker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/speaker.png -------------------------------------------------------------------------------- /dashboard2/img/tx.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/tx.gif -------------------------------------------------------------------------------- /dashboard2/img/up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/img/up.png -------------------------------------------------------------------------------- /dashboard2/js/ie10-viewport-bug-workaround.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * IE10 viewport hack for Surface/desktop Windows 8 bug 3 | * Copyright 2014-2015 Twitter, Inc. 4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 5 | */ 6 | 7 | // See the Getting Started docs for more information: 8 | // http://getbootstrap.com/getting-started/#support-ie10-width 9 | 10 | (function () { 11 | 'use strict'; 12 | 13 | if (navigator.userAgent.match(/IEMobile\/10\.0/)) { 14 | var msViewportStyle = document.createElement('style') 15 | msViewportStyle.appendChild( 16 | document.createTextNode( 17 | '@-ms-viewport{width:auto!important}' 18 | ) 19 | ) 20 | document.querySelector('head').appendChild(msViewportStyle) 21 | } 22 | 23 | })(); 24 | -------------------------------------------------------------------------------- /dashboard2/log/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LX3JL/xlxd/129f1257b4d66ae637b4b40b53b23be37c988c5e/dashboard2/log/index.html -------------------------------------------------------------------------------- /dashboard2/log/logout.php: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 20 | 21 | 22 | 23 |
24 | 26 |
27 | 28 | 29 | -------------------------------------------------------------------------------- /dashboard2/log/xlxlog.php: -------------------------------------------------------------------------------- 1 | 13 | 14 | 15 | 16 | 17 | '; 18 | 19 | die(); 20 | } 21 | } 22 | else { 23 | echo ' 24 |
25 | 26 | 27 | 28 | 29 |
'; 30 | 31 | die(); 32 | } 33 | 34 | 35 | ?> 36 | 38 | 39 | 40 | 41 | XLX Live Log 42 | 54 | 55 | 56 | 57 |
58 | 
59 | 
79 |    
80 | 81 | 82 | -------------------------------------------------------------------------------- /dashboard2/pgs/class.interlink.php: -------------------------------------------------------------------------------- 1 | ReflectorName = null; 11 | $this->ReflectorAddress = null; 12 | $this->Modules = null; 13 | } 14 | 15 | public function SetName($RefName) { $this->ReflectorName = trim($RefName); } 16 | public function SetAddress($RefAdd) { $this->ReflectorAddress = trim($RefAdd); } 17 | public function GetName() { return $this->ReflectorName; } 18 | public function GetAddress() { return $this->ReflectorAddress; } 19 | public function GetModules() { return $this->Modules; } 20 | 21 | 22 | public function AddModule($Module) { 23 | $Module = trim($Module); 24 | if (strlen($Module) != 1) return false; 25 | if (strpos($this->Modules, $Module) === false) { 26 | $this->Modules .= $Module; 27 | } 28 | return true; 29 | } 30 | 31 | public function RemoveModule($Module) { 32 | $Module = trim($Module); 33 | if (strlen($Module) != 1) return false; 34 | if (strpos($this->Modules, $Module) !== false) { 35 | $this->Modules = substr($this->Modules, 0, strpos($this->Modules, $Module)-1).substr($this->Modules, strpos($this->Modules, $Module)+1, strlen($this->Modules)); 36 | } 37 | return true; 38 | } 39 | 40 | public function HasModuleEnabled($Module) { 41 | if (strlen($Module) != 1) return false; 42 | return (strpos($this->Modules, $Module) !== false); 43 | } 44 | 45 | } 46 | 47 | 48 | -------------------------------------------------------------------------------- /dashboard2/pgs/class.parsexml.php: -------------------------------------------------------------------------------- 1 | ") === false) return false; 11 | if (strpos($InputString, "") === false) return false; 12 | 13 | $Element = substr($InputString, strpos($InputString, "<".$ElementName.">")+strlen($ElementName)+2, strpos($InputString, "")-strpos($InputString, "<".$ElementName.">")-strlen($ElementName)-2); 14 | return $Element; 15 | 16 | } 17 | 18 | public function GetAllElements($InputString, $ElementName) { 19 | $Elements = array(); 20 | while (strpos($InputString, $ElementName) !== false) { 21 | $Elements[] = $this->GetElement($InputString, $ElementName); 22 | $InputString = substr($InputString, strpos($InputString, "")+strlen($ElementName)+3, strlen($InputString)); 23 | } 24 | return $Elements; 25 | } 26 | 27 | } 28 | 29 | ?> 30 | -------------------------------------------------------------------------------- /dashboard2/pgs/class.peer.php: -------------------------------------------------------------------------------- 1 | IP = $IP; 15 | $this->Protocol = $Protocol; 16 | $this->ConnectTime = ParseTime($ConnectTime); 17 | $this->LastHeardTime = ParseTime($LastHeardTime); 18 | $this->Callsign = trim($Callsign); 19 | $this->LinkedModule = trim($LinkedModule); 20 | } 21 | 22 | 23 | public function GetCallsign() { return $this->Callsign; } 24 | public function GetIP() { return $this->IP; } 25 | public function GetLinkedModule() { return $this->LinkedModule; } 26 | public function GetProtocol() { return $this->Protocol; } 27 | public function GetConnectTime() { return $this->ConnectTime; } 28 | public function GetLastHeardTime() { return $this->LastHeardTime; } 29 | 30 | } 31 | 32 | ?> -------------------------------------------------------------------------------- /dashboard2/pgs/class.station.php: -------------------------------------------------------------------------------- 1 | Callsign = trim($Callsign); 15 | $this->Via = trim($Via); 16 | $this->Peer = trim($Peer); 17 | $this->LastHeardTime = ParseTime($LastHeardTime); 18 | if (strpos($Callsign, " / ") !== false) { 19 | $this->Suffix = trim(substr($Callsign, strpos($Callsign, " / ")+3, strlen($Callsign))); 20 | } 21 | else { 22 | $this->Suffix = ""; 23 | } 24 | 25 | $tmp = explode(" ", $Callsign); 26 | $this->CallsignOnly = $tmp[0]; 27 | $this->OnModule = $OnModule; 28 | } 29 | 30 | public function GetCallsign() { return $this->Callsign; } 31 | public function GetVIA() { return $this->Via; } 32 | public function GetPeer() { return $this->Peer; } 33 | public function GetLastHeardTime() { return $this->LastHeardTime; } 34 | public function GetSuffix() { return $this->Suffix; } 35 | public function GetCallsignOnly() { return $this->CallsignOnly; } 36 | public function GetModule() { return $this->OnModule; } 37 | 38 | } 39 | 40 | ?> -------------------------------------------------------------------------------- /dashboard2/pgs/functions.php: -------------------------------------------------------------------------------- 1 |
';
10 |    print_r($message);
11 |    echo '


'; 12 | } 13 | 14 | function ParseTime($Input) { 15 | 16 | if (strpos($Input, "<") !== false) { 17 | $Input = substr($Input, 0, strpos($Input, "<")); 18 | } 19 | 20 | // Tuesday Tue Nov 17 14:23:22 2015 21 | $tmp = explode(" ", $Input); 22 | if (strlen(trim($tmp[3])) == 0) { 23 | unset($tmp[3]); 24 | $tmp = array_values($tmp); 25 | } 26 | 27 | $tmp1 = explode(":", $tmp[4]); 28 | $month = ""; 29 | switch (strtolower($tmp[2])) { 30 | case 'jan' : $month = 1; break; 31 | case 'feb' : $month = 2; break; 32 | case 'mar' : $month = 3; break; 33 | case 'apr' : $month = 4; break; 34 | case 'may' : $month = 5; break; 35 | case 'jun' : $month = 6; break; 36 | case 'jul' : $month = 7; break; 37 | case 'aug' : $month = 8; break; 38 | case 'sep' : $month = 9; break; 39 | case 'oct' : $month = 10; break; 40 | case 'nov' : $month = 11; break; 41 | case 'dec' : $month = 12; break; 42 | default : $month = 1; 43 | } 44 | return @mktime($tmp1[0], $tmp1[1], $tmp1[2], $month, $tmp[3], $tmp[5]); 45 | 46 | } 47 | 48 | function FormatSeconds($seconds) { 49 | $seconds = abs($seconds); 50 | return sprintf("%d days %02d:%02d:%02d", $seconds/60/60/24,($seconds/60/60)%24,($seconds/60)%60,$seconds%60); 51 | } 52 | 53 | function CreateCode ($laenge) { 54 | $zeichen = "1234567890abcdefghijklmnopqrstuvwyxzABCDEFGHIJKLMNAOPQRSTUVWYXZ"; 55 | $out = ""; 56 | for ($i=1;$i<=$laenge;$i++){ 57 | $out .= $zeichen[mt_rand(0,(strlen($zeichen)-1))]; 58 | } 59 | return $out; 60 | } 61 | 62 | ?> 63 | -------------------------------------------------------------------------------- /dashboard2/pgs/liveccs.php: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 | -------------------------------------------------------------------------------- /dashboard2/pgs/liveircddb.php: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 | -------------------------------------------------------------------------------- /dashboard2/pgs/reflectors.php: -------------------------------------------------------------------------------- 1 | GetElement($INPUT, "reflectorlist"); 15 | $Reflectors = $XML->GetAllElements($Reflectorlist, "reflector"); 16 | 17 | ?> 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | GetElement($Reflectors[$i], "name"); 33 | $COUNTRY = $XML->GetElement($Reflectors[$i], "country"); 34 | $LASTCONTACT = $XML->GetElement($Reflectors[$i], "lastcontact"); 35 | $COMMENT = $XML->GetElement($Reflectors[$i], "comment"); 36 | $DASHBOARDURL = $XML->GetElement($Reflectors[$i], "dashboardurl"); 37 | 38 | echo ' 39 | 40 | 41 | 42 | 43 | 44 | 45 | '; 46 | } 47 | 48 | ?> 49 |
#ReflectorCountryServiceComment
'.($i+1).''.$NAME.''.$COUNTRY.''.$COMMENT.'
50 | 51 | 52 | -------------------------------------------------------------------------------- /scripts/ambed.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=AMBE Transcoder Daemon 3 | After=network.target 4 | 5 | [Service] 6 | Type=simple 7 | User=root 8 | Group=root 9 | ExecStartPre=-/sbin/rmmod ftdi_sio 10 | ExecStartPre=-/sbin/rmmod usb_serial 11 | ExecStart=/ambed/ambed 127.0.0.1 12 | Restart=on-abnormal 13 | 14 | [Install] 15 | WantedBy=multi-user.target 16 | -------------------------------------------------------------------------------- /scripts/scripts.readme.txt: -------------------------------------------------------------------------------- 1 | ************************************************* 2 | *copy xlxd to /etc.init.d/ 3 | *copy ambed.service to /etc/systemd/system/ 4 | *copy watchdog to /ambed/ 5 | ************************************************* 6 | * xlxd executable must be in /xlxd/ folder 7 | * ambed executable must be in /ambed/ folder 8 | ************************************************* 9 | * possible options: 10 | * 11 | * #systemctl start ambed /starts ambed 12 | * #systemctl status ambed /shows status of ambed 13 | * #systemctl stop ambed /stops ambed 14 | * # systemctl restart ambed /restarts ambed 15 | * 16 | * automatically get it to start on boot: 17 | * #systemctl enable ambed 18 | * 19 | ************************************************* 20 | * If your usb port gets unresponsive and you get some persistent timeouts, 21 | * the watchdog script restarts the ambed service. 22 | * You can run it every 5 minutes by a cronjob. 23 | * 24 | * */5 * * * * /ambed/./watchdog >> /ambed/watchdog.log 25 | * 26 | *************************************************** 27 | -------------------------------------------------------------------------------- /scripts/watchdog: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | sleep 5 3 | PATTERN=timed 4 | FILE=/var/log/syslog 5 | if grep -q $PATTERN $FILE; 6 | then 7 | echo "ambed timeout error" 8 | > /var/log/syslog 9 | service ambed restart 10 | else 11 | echo "all ok" 12 | echo "Exiting..." 13 | exit 0 14 | fi 15 | -------------------------------------------------------------------------------- /scripts/xlxd: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | ### BEGIN INIT INFO 3 | # Provides: xlxd service 4 | # Processname: xlxd 5 | # Required-Start: $remote_fs $syslog 6 | # Required-Stop: $remote_fs $syslog 7 | # Default-Start: 2 3 4 5 8 | # Default-Stop: 0 1 6 9 | # Short-Description: starts the dstar reflector as a linux service 10 | # Description: dstar reflector by LX3JL 11 | # start script by LX1IQ 12 | ### END INIT INFO 13 | 14 | 15 | PATH=/sbin:/bin:/usr/sbin:/usr/bin 16 | 17 | . /lib/lsb/init-functions 18 | 19 | # change below settings according to your system 20 | NAME="xlxd" 21 | DAEMON="/xlxd/xlxd" 22 | ARGUMENTS="XLX999 192.168.1.240 127.0.0.1" 23 | PIDFILE="/var/log/xlxd.pid" 24 | USER=root 25 | GROUP=root 26 | 27 | [ -f $DAEMON ] || exit 0 28 | 29 | start () { 30 | 31 | # start daemon 32 | 33 | echo -n "Starting $NAME: " 34 | start-stop-daemon --start --exec $DAEMON --chuid $USER:$GROUP --background -- $ARGUMENTS 35 | RETVAL=$? 36 | echo 37 | sleep 4 38 | echo `pidof xlxd` > $PIDFILE 39 | return $RETVAL 40 | } 41 | 42 | stop () { 43 | echo -n "Stopping $NAME: " 44 | start-stop-daemon --stop --pidfile $PIDFILE 45 | RETVAL=$? 46 | echo 47 | } 48 | 49 | case "$1" in 50 | start) 51 | start 52 | ;; 53 | stop) 54 | stop 55 | ;; 56 | restart) 57 | stop 58 | start 59 | ;; 60 | status) 61 | PIDID=`pidof xlxd` 62 | echo $DAEMON $NAME : 63 | if [ $PIDID -gt 0 ] 2>/dev/null; 64 | then 65 | echo running 66 | else 67 | echo not running 68 | fi 69 | 70 | ;; 71 | *) 72 | echo "Usage: $0 {start|stop|restart|status}" 73 | exit 1 74 | esac 75 | 76 | exit 0 77 | -------------------------------------------------------------------------------- /src/cbmclient.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // cbmclient.cpp 3 | // xlxd 4 | // 5 | // Created by Jean-Luc Deltombe (LX3JL) on 20/01/2017. 6 | // Copyright © 2015 Jean-Luc Deltombe (LX3JL). All rights reserved. 7 | // 8 | // ---------------------------------------------------------------------------- 9 | // This file is part of xlxd. 10 | // 11 | // xlxd is free software: you can redistribute it and/or modify 12 | // it under the terms of the GNU General Public License as published by 13 | // the Free Software Foundation, either version 3 of the License, or 14 | // (at your option) any later version. 15 | // 16 | // xlxd is distributed in the hope that it will be useful, 17 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | // GNU General Public License for more details. 20 | // 21 | // You should have received a copy of the GNU General Public License 22 | // along with Foobar. If not, see . 23 | // ---------------------------------------------------------------------------- 24 | 25 | #include 26 | #include "main.h" 27 | #include "cbmclient.h" 28 | 29 | 30 | //////////////////////////////////////////////////////////////////////////////////////// 31 | // constructors 32 | 33 | CBmClient::CBmClient() 34 | { 35 | } 36 | 37 | CBmClient::CBmClient(const CCallsign &callsign, const CIp &ip, char reflectorModule) 38 | : CClient(callsign, ip, reflectorModule) 39 | { 40 | } 41 | 42 | CBmClient::CBmClient(const CBmClient &client) 43 | : CClient(client) 44 | { 45 | } 46 | 47 | //////////////////////////////////////////////////////////////////////////////////////// 48 | // status 49 | 50 | bool CBmClient::IsAlive(void) const 51 | { 52 | return (m_LastKeepaliveTime.DurationSinceNow() < XLX_KEEPALIVE_TIMEOUT); 53 | } 54 | 55 | -------------------------------------------------------------------------------- /src/cbptc19696.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 by Jonathan Naylor G4KLX 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 17 | */ 18 | 19 | #if !defined(BPTC19696_H) 20 | #define BPTC19696_H 21 | 22 | class CBPTC19696 23 | { 24 | public: 25 | CBPTC19696(); 26 | ~CBPTC19696(); 27 | 28 | void decode(const unsigned char* in, unsigned char* out); 29 | 30 | void encode(const unsigned char* in, unsigned char* out); 31 | 32 | private: 33 | bool m_rawData[196]; 34 | bool m_deInterData[196]; 35 | 36 | void decodeExtractBinary(const unsigned char* in); 37 | void decodeErrorCheck(); 38 | void decodeDeInterleave(); 39 | void decodeExtractData(unsigned char* data) const; 40 | 41 | void encodeExtractData(const unsigned char* in); 42 | void encodeInterleave(); 43 | void encodeErrorCheck(); 44 | void encodeExtractBinary(unsigned char* data); 45 | }; 46 | 47 | #endif 48 | -------------------------------------------------------------------------------- /src/ccrc.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015,2016 by Jonathan Naylor G4KLX 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 17 | */ 18 | 19 | #if !defined(CRC_H) 20 | #define CRC_H 21 | 22 | class CCRC 23 | { 24 | public: 25 | static bool checkFiveBit(bool* in, unsigned int tcrc); 26 | static void encodeFiveBit(const bool* in, unsigned int& tcrc); 27 | 28 | static void addCCITT161(unsigned char* in, unsigned int length); 29 | static void addCCITT162(unsigned char* in, unsigned int length); 30 | 31 | static bool checkCCITT161(const unsigned char* in, unsigned int length); 32 | static bool checkCCITT162(const unsigned char* in, unsigned int length); 33 | 34 | static unsigned char crc8(const unsigned char* in, unsigned int length); 35 | 36 | static unsigned char addCRC(const unsigned char* in, unsigned int length); 37 | }; 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /src/cdcsclient.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // cdcsclient.cpp 3 | // xlxd 4 | // 5 | // Created by Jean-Luc Deltombe (LX3JL) on 07/11/2015. 6 | // Copyright © 2015 Jean-Luc Deltombe (LX3JL). All rights reserved. 7 | // 8 | // ---------------------------------------------------------------------------- 9 | // This file is part of xlxd. 10 | // 11 | // xlxd is free software: you can redistribute it and/or modify 12 | // it under the terms of the GNU General Public License as published by 13 | // the Free Software Foundation, either version 3 of the License, or 14 | // (at your option) any later version. 15 | // 16 | // xlxd is distributed in the hope that it will be useful, 17 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | // GNU General Public License for more details. 20 | // 21 | // You should have received a copy of the GNU General Public License 22 | // along with Foobar. If not, see . 23 | // ---------------------------------------------------------------------------- 24 | 25 | #include "main.h" 26 | #include "cdcsclient.h" 27 | 28 | 29 | //////////////////////////////////////////////////////////////////////////////////////// 30 | // constructors 31 | 32 | CDcsClient::CDcsClient() 33 | { 34 | } 35 | 36 | CDcsClient::CDcsClient(const CCallsign &callsign, const CIp &ip, char reflectorModule) 37 | : CClient(callsign, ip, reflectorModule) 38 | { 39 | } 40 | 41 | CDcsClient::CDcsClient(const CDcsClient &client) 42 | : CClient(client) 43 | { 44 | } 45 | 46 | //////////////////////////////////////////////////////////////////////////////////////// 47 | // status 48 | 49 | bool CDcsClient::IsAlive(void) const 50 | { 51 | return (m_LastKeepaliveTime.DurationSinceNow() < DCS_KEEPALIVE_TIMEOUT); 52 | } 53 | -------------------------------------------------------------------------------- /src/cdmriddirhttp.h: -------------------------------------------------------------------------------- 1 | // 2 | // cdmriddirhttp.h 3 | // xlxd 4 | // 5 | // Created by Jean-Luc Deltombe (LX3JL) on 29/12/2017. 6 | // Copyright © 2015 Jean-Luc Deltombe (LX3JL). All rights reserved. 7 | // 8 | // ---------------------------------------------------------------------------- 9 | // This file is part of xlxd. 10 | // 11 | // xlxd is free software: you can redistribute it and/or modify 12 | // it under the terms of the GNU General Public License as published by 13 | // the Free Software Foundation, either version 3 of the License, or 14 | // (at your option) any later version. 15 | // 16 | // xlxd is distributed in the hope that it will be useful, 17 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | // GNU General Public License for more details. 20 | // 21 | // You should have received a copy of the GNU General Public License 22 | // along with Foobar. If not, see . 23 | // ---------------------------------------------------------------------------- 24 | 25 | #ifndef cdmriddirhttp_h 26 | #define cdmriddirhttp_h 27 | 28 | #include "cdmriddir.h" 29 | 30 | //////////////////////////////////////////////////////////////////////////////////////// 31 | 32 | class CDmridDirHttp : public CDmridDir 33 | { 34 | public: 35 | // constructor 36 | CDmridDirHttp() {} 37 | 38 | // destructor 39 | ~CDmridDirHttp() {} 40 | 41 | // refresh 42 | bool LoadContent(CBuffer *); 43 | bool RefreshContent(const CBuffer &); 44 | 45 | protected: 46 | // reload helpers 47 | bool NeedReload(void) { return true; } 48 | bool HttpGet(const char *, const char *, int, CBuffer *); 49 | }; 50 | 51 | //////////////////////////////////////////////////////////////////////////////////////// 52 | #endif /* cdmriddirhttp_h */ 53 | -------------------------------------------------------------------------------- /src/cdmrmmdvmclient.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // cdmrmmdvmclient.cpp 3 | // xlxd 4 | // 5 | // Created by Jean-Luc Deltombe (LX3JL) on 04/03/2017. 6 | // Copyright © 2015 Jean-Luc Deltombe (LX3JL). All rights reserved. 7 | // 8 | // ---------------------------------------------------------------------------- 9 | // This file is part of xlxd. 10 | // 11 | // xlxd is free software: you can redistribute it and/or modify 12 | // it under the terms of the GNU General Public License as published by 13 | // the Free Software Foundation, either version 3 of the License, or 14 | // (at your option) any later version. 15 | // 16 | // xlxd is distributed in the hope that it will be useful, 17 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | // GNU General Public License for more details. 20 | // 21 | // You should have received a copy of the GNU General Public License 22 | // along with Foobar. If not, see . 23 | // ---------------------------------------------------------------------------- 24 | 25 | #include "main.h" 26 | #include "cdmrmmdvmclient.h" 27 | 28 | 29 | //////////////////////////////////////////////////////////////////////////////////////// 30 | // constructors 31 | 32 | CDmrmmdvmClient::CDmrmmdvmClient() 33 | { 34 | } 35 | 36 | CDmrmmdvmClient::CDmrmmdvmClient(const CCallsign &callsign, const CIp &ip, char reflectorModule) 37 | : CClient(callsign, ip, reflectorModule) 38 | { 39 | } 40 | 41 | CDmrmmdvmClient::CDmrmmdvmClient(const CDmrmmdvmClient &client) 42 | : CClient(client) 43 | { 44 | } 45 | 46 | //////////////////////////////////////////////////////////////////////////////////////// 47 | // status 48 | 49 | bool CDmrmmdvmClient::IsAlive(void) const 50 | { 51 | return (m_LastKeepaliveTime.DurationSinceNow() < DMRMMDVM_KEEPALIVE_TIMEOUT); 52 | } 53 | -------------------------------------------------------------------------------- /src/cdmrplusclient.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // cdmrplusclient.cpp 3 | // xlxd 4 | // 5 | // Created by Jean-Luc Deltombe (LX3JL on 10/01/2016. 6 | // Copyright © 2015 Jean-Luc Deltombe (LX3JL). All rights reserved. 7 | // 8 | // ---------------------------------------------------------------------------- 9 | // This file is part of xlxd. 10 | // 11 | // xlxd is free software: you can redistribute it and/or modify 12 | // it under the terms of the GNU General Public License as published by 13 | // the Free Software Foundation, either version 3 of the License, or 14 | // (at your option) any later version. 15 | // 16 | // xlxd is distributed in the hope that it will be useful, 17 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | // GNU General Public License for more details. 20 | // 21 | // You should have received a copy of the GNU General Public License 22 | // along with Foobar. If not, see . 23 | // ---------------------------------------------------------------------------- 24 | 25 | #include "main.h" 26 | #include "cdmrplusclient.h" 27 | 28 | 29 | //////////////////////////////////////////////////////////////////////////////////////// 30 | // constructors 31 | 32 | CDmrplusClient::CDmrplusClient() 33 | { 34 | } 35 | 36 | CDmrplusClient::CDmrplusClient(const CCallsign &callsign, const CIp &ip, char reflectorModule) 37 | : CClient(callsign, ip, reflectorModule) 38 | { 39 | } 40 | 41 | CDmrplusClient::CDmrplusClient(const CDmrplusClient &client) 42 | : CClient(client) 43 | { 44 | } 45 | 46 | //////////////////////////////////////////////////////////////////////////////////////// 47 | // status 48 | 49 | bool CDmrplusClient::IsAlive(void) const 50 | { 51 | return (m_LastKeepaliveTime.DurationSinceNow() < DMRPLUS_KEEPALIVE_TIMEOUT); 52 | } 53 | -------------------------------------------------------------------------------- /src/cg3client.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // cg3client.cpp 3 | // xlxd 4 | // 5 | // Created by Marius Petrescu (YO2LOJ) on 03/06/2019. 6 | // Copyright © 2019 Marius Petrescu (YO2LOJ). All rights reserved. 7 | // 8 | // ---------------------------------------------------------------------------- 9 | // This file is part of xlxd. 10 | // 11 | // xlxd is free software: you can redistribute it and/or modify 12 | // it under the terms of the GNU General Public License as published by 13 | // the Free Software Foundation, either version 3 of the License, or 14 | // (at your option) any later version. 15 | // 16 | // xlxd is distributed in the hope that it will be useful, 17 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | // GNU General Public License for more details. 20 | // 21 | // You should have received a copy of the GNU General Public License 22 | // along with Foobar. If not, see . 23 | // ---------------------------------------------------------------------------- 24 | 25 | #include "main.h" 26 | #include "cg3client.h" 27 | 28 | 29 | //////////////////////////////////////////////////////////////////////////////////////// 30 | // constructors 31 | 32 | CG3Client::CG3Client() 33 | { 34 | } 35 | 36 | CG3Client::CG3Client(const CCallsign &callsign, const CIp &ip, char reflectorModule) 37 | : CClient(callsign, ip, reflectorModule) 38 | { 39 | 40 | } 41 | 42 | CG3Client::CG3Client(const CG3Client &client) 43 | : CClient(client) 44 | { 45 | } 46 | 47 | //////////////////////////////////////////////////////////////////////////////////////// 48 | // status 49 | 50 | bool CG3Client::IsAlive(void) const 51 | { 52 | return (m_LastKeepaliveTime.DurationSinceNow() < G3_KEEPALIVE_TIMEOUT); 53 | } 54 | 55 | -------------------------------------------------------------------------------- /src/cgolay2087.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 by Jonathan Naylor G4KLX 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 17 | */ 18 | 19 | #ifndef Golay2087_H 20 | #define Golay2087_H 21 | 22 | class CGolay2087 { 23 | public: 24 | static void encode(unsigned char* data); 25 | 26 | static unsigned char decode(const unsigned char* data); 27 | 28 | private: 29 | static unsigned int getSyndrome1987(unsigned int pattern); 30 | }; 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /src/cgolay24128.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2010,2016 by Jonathan Naylor G4KLX 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 17 | */ 18 | 19 | #ifndef Golay24128_H 20 | #define Golay24128_H 21 | 22 | class CGolay24128 { 23 | public: 24 | static unsigned int encode23127(unsigned int data); 25 | static unsigned int encode24128(unsigned int data); 26 | 27 | static unsigned int decode23127(unsigned int code); 28 | static unsigned int decode24128(unsigned int code); 29 | static unsigned int decode24128(unsigned char* bytes); 30 | }; 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /src/chamming.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015,2016 by Jonathan Naylor G4KLX 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 17 | */ 18 | 19 | #ifndef Hamming_H 20 | #define Hamming_H 21 | 22 | class CHamming { 23 | public: 24 | static void encode15113_1(bool* d); 25 | static bool decode15113_1(bool* d); 26 | 27 | static void encode15113_2(bool* d); 28 | static bool decode15113_2(bool* d); 29 | 30 | static void encode1393(bool* d); 31 | static bool decode1393(bool* d); 32 | 33 | static void encode1063(bool* d); 34 | static bool decode1063(bool* d); 35 | 36 | static void encode16114(bool* d); 37 | static bool decode16114(bool* d); 38 | 39 | static void encode17123(bool* d); 40 | static bool decode17123(bool* d); 41 | }; 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /src/cimrsclient.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // cimrsclient.cpp 3 | // xlxd 4 | // 5 | // Created by Jean-Luc Deltombe (LX3JL) on 29/10/2019. 6 | // Copyright © 2015 Jean-Luc Deltombe (LX3JL). All rights reserved. 7 | // 8 | // ---------------------------------------------------------------------------- 9 | // This file is part of xlxd. 10 | // 11 | // xlxd is free software: you can redistribute it and/or modify 12 | // it under the terms of the GNU General Public License as published by 13 | // the Free Software Foundation, either version 3 of the License, or 14 | // (at your option) any later version. 15 | // 16 | // xlxd is distributed in the hope that it will be useful, 17 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | // GNU General Public License for more details. 20 | // 21 | // You should have received a copy of the GNU General Public License 22 | // along with Foobar. If not, see . 23 | // ---------------------------------------------------------------------------- 24 | 25 | #include "main.h" 26 | #include "cimrsclient.h" 27 | 28 | 29 | //////////////////////////////////////////////////////////////////////////////////////// 30 | // constructors 31 | 32 | CImrsClient::CImrsClient() 33 | { 34 | } 35 | 36 | CImrsClient::CImrsClient(const CCallsign &callsign, const CIp &ip, char reflectorModule) 37 | : CClient(callsign, ip, reflectorModule) 38 | { 39 | } 40 | 41 | CImrsClient::CImrsClient(const CImrsClient &client) 42 | : CClient(client) 43 | { 44 | } 45 | 46 | //////////////////////////////////////////////////////////////////////////////////////// 47 | // status 48 | 49 | bool CImrsClient::IsAlive(void) const 50 | { 51 | return (m_LastKeepaliveTime.DurationSinceNow() < IMRS_KEEPALIVE_TIMEOUT); 52 | } 53 | -------------------------------------------------------------------------------- /src/cnotification.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // cnotification.cpp 3 | // xlxd 4 | // 5 | // Created by Jean-Luc on 05/12/2015. 6 | // Copyright © 2015 Jean-Luc. All rights reserved. 7 | // 8 | // ---------------------------------------------------------------------------- 9 | // This file is part of xlxd. 10 | // 11 | // xlxd is free software: you can redistribute it and/or modify 12 | // it under the terms of the GNU General Public License as published by 13 | // the Free Software Foundation, either version 3 of the License, or 14 | // (at your option) any later version. 15 | // 16 | // xlxd is distributed in the hope that it will be useful, 17 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | // GNU General Public License for more details. 20 | // 21 | // You should have received a copy of the GNU General Public License 22 | // along with Foobar. If not, see . 23 | // ---------------------------------------------------------------------------- 24 | 25 | #include "main.h" 26 | #include "cnotification.h" 27 | 28 | //////////////////////////////////////////////////////////////////////////////////////// 29 | // constructor 30 | 31 | CNotification::CNotification() 32 | { 33 | // init variables 34 | m_iId = NOTIFICATION_NONE; 35 | } 36 | 37 | CNotification::CNotification(const CNotification &Notification) 38 | { 39 | m_iId = Notification.m_iId; 40 | m_Callsign = Notification.m_Callsign; 41 | } 42 | 43 | CNotification::CNotification(int iId) 44 | { 45 | m_iId = iId; 46 | } 47 | 48 | CNotification::CNotification(int iId, const CCallsign &Callsign) 49 | { 50 | m_iId = iId; 51 | m_Callsign = Callsign; 52 | } 53 | -------------------------------------------------------------------------------- /src/cpeercallsignlist.h: -------------------------------------------------------------------------------- 1 | // 2 | // cpeercallsignlist.h 3 | // xlxd 4 | // 5 | // Created by Jean-Luc Deltombe (LX3JL) on 31/01/2016. 6 | // Copyright © 2015 Jean-Luc Deltombe (LX3JL). All rights reserved. 7 | // 8 | // ---------------------------------------------------------------------------- 9 | // This file is part of xlxd. 10 | // 11 | // xlxd is free software: you can redistribute it and/or modify 12 | // it under the terms of the GNU General Public License as published by 13 | // the Free Software Foundation, either version 3 of the License, or 14 | // (at your option) any later version. 15 | // 16 | // xlxd is distributed in the hope that it will be useful, 17 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | // GNU General Public License for more details. 20 | // 21 | // You should have received a copy of the GNU General Public License 22 | // along with Foobar. If not, see . 23 | // ---------------------------------------------------------------------------- 24 | 25 | 26 | #ifndef cpeercallsignlist_h 27 | #define cpeercallsignlist_h 28 | 29 | 30 | #include "main.h" 31 | #include "ccallsignlist.h" 32 | 33 | //////////////////////////////////////////////////////////////////////////////////////// 34 | // class 35 | 36 | class CPeerCallsignList : public CCallsignList 37 | { 38 | public: 39 | // constructor 40 | CPeerCallsignList() {}; 41 | 42 | // destructor 43 | virtual ~CPeerCallsignList() {}; 44 | 45 | // file io 46 | bool LoadFromFile(const char *); 47 | }; 48 | 49 | 50 | //////////////////////////////////////////////////////////////////////////////////////// 51 | #endif /* cpeercallsignlist_h */ 52 | -------------------------------------------------------------------------------- /src/cqr1676.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 by Jonathan Naylor G4KLX 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 17 | */ 18 | 19 | #ifndef QR1676_H 20 | #define QR1676_H 21 | 22 | class CQR1676 { 23 | public: 24 | static void encode(unsigned char* data); 25 | 26 | static unsigned char decode(const unsigned char* data); 27 | 28 | private: 29 | static unsigned int getSyndrome1576(unsigned int pattern); 30 | }; 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /src/crs129.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 by Jonathan Naylor G4KLX 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 17 | */ 18 | 19 | #if !defined(RS129_H) 20 | #define RS129_H 21 | 22 | class CRS129 23 | { 24 | public: 25 | static bool check(const unsigned char* in); 26 | 27 | static void encode(const unsigned char* msg, unsigned int nbytes, unsigned char* parity); 28 | }; 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /src/cutils.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009,2014,2015 by Jonathan Naylor, G4KLX 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; version 2 of the License. 7 | * 8 | * This program is distributed in the hope that it will be useful, 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | * GNU General Public License for more details. 12 | */ 13 | 14 | #ifndef Utils_H 15 | #define Utils_H 16 | 17 | #include 18 | 19 | class CUtils { 20 | public: 21 | static void byteToBitsBE(unsigned char byte, bool* bits); 22 | static void byteToBitsLE(unsigned char byte, bool* bits); 23 | 24 | static void bitsToByteBE(const bool* bits, unsigned char& byte); 25 | static void bitsToByteLE(const bool* bits, unsigned char& byte); 26 | 27 | private: 28 | }; 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /src/cwiresxcmd.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // cwiresxcmd.cpp 3 | // xlxd 4 | // 5 | // Created by Jean-Luc Deltombe (LX3JL) on 09/10/2019. 6 | // Copyright © 2019 Jean-Luc Deltombe (LX3JL). All rights reserved. 7 | // 8 | // ---------------------------------------------------------------------------- 9 | // This file is part of xlxd. 10 | // 11 | // xlxd is free software: you can redistribute it and/or modify 12 | // it under the terms of the GNU General Public License as published by 13 | // the Free Software Foundation, either version 3 of the License, or 14 | // (at your option) any later version. 15 | // 16 | // xlxd is distributed in the hope that it will be useful, 17 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | // GNU General Public License for more details. 20 | // 21 | // You should have received a copy of the GNU General Public License 22 | // along with Foobar. If not, see . 23 | // ---------------------------------------------------------------------------- 24 | 25 | #include "main.h" 26 | #include "cwiresxcmd.h" 27 | 28 | 29 | //////////////////////////////////////////////////////////////////////////////////////// 30 | // constructor 31 | 32 | CWiresxCmd::CWiresxCmd() 33 | { 34 | m_iCmd = WIRESX_CMD_UNKNOWN; 35 | m_Time.Now(); 36 | } 37 | 38 | CWiresxCmd::CWiresxCmd(const CIp &Ip, const CCallsign &Callsign, int iCmd, int iArg) 39 | { 40 | m_Ip = Ip; 41 | m_Callsign = Callsign; 42 | m_iCmd = iCmd; 43 | m_iArg = iArg; 44 | m_Time.Now(); 45 | } 46 | 47 | CWiresxCmd::CWiresxCmd(const CWiresxCmd &Cmd) 48 | { 49 | m_Ip = Cmd.m_Ip; 50 | m_Callsign = Cmd.m_Callsign; 51 | m_iCmd = Cmd.m_iCmd; 52 | m_iArg = Cmd.m_iArg; 53 | m_Time = Cmd.m_Time; 54 | } 55 | -------------------------------------------------------------------------------- /src/cysfclient.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // cysfclient.cpp 3 | // xlxd 4 | //// Created by Jean-Luc on 20/05/2018. 5 | // Created by Jean-Luc Deltombe (LX3JL) on 20/05/2018. 6 | // Copyright © 2015 Jean-Luc Deltombe (LX3JL). All rights reserved. 7 | // 8 | // ---------------------------------------------------------------------------- 9 | // This file is part of xlxd. 10 | // 11 | // xlxd is free software: you can redistribute it and/or modify 12 | // it under the terms of the GNU General Public License as published by 13 | // the Free Software Foundation, either version 3 of the License, or 14 | // (at your option) any later version. 15 | // 16 | // xlxd is distributed in the hope that it will be useful, 17 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | // GNU General Public License for more details. 20 | // 21 | // You should have received a copy of the GNU General Public License 22 | // along with Foobar. If not, see . 23 | // ---------------------------------------------------------------------------- 24 | 25 | #include "main.h" 26 | #include "cysfclient.h" 27 | 28 | 29 | //////////////////////////////////////////////////////////////////////////////////////// 30 | // constructors 31 | 32 | CYsfClient::CYsfClient() 33 | { 34 | } 35 | 36 | CYsfClient::CYsfClient(const CCallsign &callsign, const CIp &ip, char reflectorModule) 37 | : CClient(callsign, ip, reflectorModule) 38 | { 39 | } 40 | 41 | CYsfClient::CYsfClient(const CYsfClient &client) 42 | : CClient(client) 43 | { 44 | } 45 | 46 | //////////////////////////////////////////////////////////////////////////////////////// 47 | // status 48 | 49 | bool CYsfClient::IsAlive(void) const 50 | { 51 | return (m_LastKeepaliveTime.DurationSinceNow() < YSF_KEEPALIVE_TIMEOUT); 52 | } 53 | -------------------------------------------------------------------------------- /src/cysfconvolution.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015,2016 by Jonathan Naylor G4KLX 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 17 | */ 18 | 19 | #if !defined(YSFConvolution_H) 20 | #define YSFConvolution_H 21 | 22 | #include "cysfconvolution.h" 23 | 24 | #include 25 | 26 | class CYSFConvolution { 27 | public: 28 | CYSFConvolution(); 29 | ~CYSFConvolution(); 30 | 31 | void start(); 32 | void decode(uint8_t s0, uint8_t s1); 33 | void chainback(unsigned char* out, unsigned int nBits); 34 | 35 | void encode(const unsigned char* in, unsigned char* out, unsigned int nBits) const; 36 | 37 | private: 38 | uint16_t* m_metrics1; 39 | uint16_t* m_metrics2; 40 | uint16_t* m_oldMetrics; 41 | uint16_t* m_newMetrics; 42 | uint64_t* m_decisions; 43 | uint64_t* m_dp; 44 | }; 45 | 46 | #endif 47 | 48 | -------------------------------------------------------------------------------- /src/cysfnodedirhttp.h: -------------------------------------------------------------------------------- 1 | // 2 | // cysfnodedirhttp.h 3 | // xlxd 4 | // 5 | // Created by Jean-Luc Deltombe (LX3JL) on 08/10/2019. 6 | // Copyright © 2019 Jean-Luc Deltombe (LX3JL). All rights reserved. 7 | // 8 | // ---------------------------------------------------------------------------- 9 | // This file is part of xlxd. 10 | // 11 | // xlxd is free software: you can redistribute it and/or modify 12 | // it under the terms of the GNU General Public License as published by 13 | // the Free Software Foundation, either version 3 of the License, or 14 | // (at your option) any later version. 15 | // 16 | // xlxd is distributed in the hope that it will be useful, 17 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | // GNU General Public License for more details. 20 | // 21 | // You should have received a copy of the GNU General Public License 22 | // along with Foobar. If not, see . 23 | // ---------------------------------------------------------------------------- 24 | 25 | #ifndef cysfnodedirhttp_h 26 | #define cysfnodedirhttp_h 27 | 28 | 29 | #include "cysfnodedir.h" 30 | 31 | //////////////////////////////////////////////////////////////////////////////////////// 32 | 33 | class CYsfNodeDirHttp : public CYsfNodeDir 34 | { 35 | public: 36 | // constructor 37 | CYsfNodeDirHttp() {} 38 | 39 | // destructor 40 | ~CYsfNodeDirHttp() {} 41 | 42 | // refresh 43 | bool LoadContent(CBuffer *); 44 | bool RefreshContent(const CBuffer &); 45 | 46 | protected: 47 | // reload helpers 48 | bool NeedReload(void) { return true; } 49 | bool HttpGet(const char *, const char *, int, CBuffer *); 50 | }; 51 | 52 | //////////////////////////////////////////////////////////////////////////////////////// 53 | #endif /* cysfnodedirhttp_h */ 54 | -------------------------------------------------------------------------------- /src/cysfutils.h: -------------------------------------------------------------------------------- 1 | // 2 | // cysfutils.h 3 | // xlxd 4 | // 5 | // Created by Jean-Luc Deltombe (LX3JL) on 14/04/2019. 6 | // Copyright © 2019 Jean-Luc Deltombe (LX3JL). All rights reserved. 7 | // Copyright (C) 2016,2017 by Jonathan Naylor G4KLX 8 | // Copyright (C) 2018 by Andy Uribe CA6JAU 9 | // Copyright (C) 2018 by Manuel Sanchez EA7EE 10 | // 11 | // ---------------------------------------------------------------------------- 12 | // This file is part of xlxd. 13 | // 14 | // xlxd is free software: you can redistribute it and/or modify 15 | // it under the terms of the GNU General Public License as published by 16 | // the Free Software Foundation, either version 3 of the License, or 17 | // (at your option) any later version. 18 | // 19 | // xlxd is distributed in the hope that it will be useful, 20 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 21 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 | // GNU General Public License for more details. 23 | // 24 | // You should have received a copy of the GNU General Public License 25 | // along with Foobar. If not, see . 26 | // ---------------------------------------------------------------------------- 27 | 28 | #ifndef cysfutils_h 29 | #define cysfutils_h 30 | 31 | //////////////////////////////////////////////////////////////////////////////////////// 32 | // class 33 | 34 | class CYsfUtils 35 | { 36 | public: 37 | // constructor 38 | CYsfUtils() {}; 39 | 40 | // destructor 41 | virtual ~CYsfUtils() {}; 42 | 43 | // code / decode 44 | static void DecodeVD2Vchs(uint8 *, uint8 **); 45 | static void DecodeVD2Vch(uint8 *, uint8 *); 46 | static void EncodeVD2Vch(uint8 *, uint8 *); 47 | 48 | protected: 49 | // data 50 | }; 51 | 52 | //////////////////////////////////////////////////////////////////////////////////////// 53 | #endif /* cysfutils_h */ 54 | -------------------------------------------------------------------------------- /src/makefile: -------------------------------------------------------------------------------- 1 | CC=g++ 2 | CFLAGS=-c -std=c++11 -pthread 3 | LDFLAGS=-std=c++11 -pthread 4 | SOURCES=$(wildcard *.cpp) 5 | OBJECTS=$(SOURCES:.cpp=.o) 6 | EXECUTABLE=xlxd 7 | 8 | all: $(SOURCES) $(EXECUTABLE) 9 | 10 | $(EXECUTABLE): $(OBJECTS) 11 | $(CC) $(LDFLAGS) $(OBJECTS) -o $@ 12 | 13 | .cpp.o: 14 | $(CC) $(CFLAGS) $< -o $@ 15 | 16 | clean: 17 | $(RM) $(EXECUTABLE) *.o 18 | 19 | install: 20 | mkdir -p /xlxd 21 | cp -f $(EXECUTABLE) /xlxd/ 22 | [ -f /xlxd/xlxd.blacklist ] && \ 23 | cp ../config/xlxd.blacklist /xlxd/xlxd.blacklist.sample || \ 24 | cp ../config/xlxd.blacklist /xlxd/xlxd.blacklist 25 | [ -f /xlxd/xlxd.whitelist ] && \ 26 | cp ../config/xlxd.whitelist /xlxd/xlxd.whitelist.sample || \ 27 | cp ../config/xlxd.whitelist /xlxd/xlxd.whitelist 28 | [ -f /xlxd/xlxd.interlink ] && \ 29 | cp ../config/xlxd.interlink /xlxd/xlxd.interlink.sample || \ 30 | cp ../config/xlxd.interlink /xlxd/xlxd.interlink 31 | [ -f /xlxd/xlxd.terminal ] && \ 32 | cp ../config/xlxd.terminal /xlxd/xlxd.terminal.sample || \ 33 | cp ../config/xlxd.terminal /xlxd/xlxd.terminal 34 | --------------------------------------------------------------------------------