From 72e4e684e2aeff57b16cc1f7eed2796ec4afb940 Mon Sep 17 00:00:00 2001 From: Jon Beniston Date: Fri, 6 Nov 2020 12:18:55 +0000 Subject: [PATCH] ADS-B Demodulator updates. Add OpenSky Network aircraft database support, for information about aircraft model, owner, registration. Add airline logos and country & military flags for display in the table. Add OurAirports airport database support, to allow airports and ATC frequencies to be displayed on the map. Allow ATC frequency to be tuned by clicking on the map. Add support for displaying flight paths on the map. Allow columns in table to be rearranged and hidden. Allow rows in table to be sorted by clicking on header. Allow switching units from ft, kn, ft/min to m, kph, m/s Allow aircraft timeout to be set by the user. Allow font used for the table to be set by the user. Add optional display of demodulator statistics. Support multithreading in demodulator to reduce FIFO overflows. Add support for demodulating all Mode-S frames and feeding them. Add support for feeding in Beast hex format. Allow option of correlating against full preamble or partial preamble. Supporting highlighting of an aircraft in the table by selecting it on the map. Use difference of zeros and ones correlation, rather than absolute threshold, to better account for varying conditions and make the threshold easier to set. Enable anti-aliasing for text on the map. Improve CRC performance by 5x-10x. Add HttpDownloadManager class to support downloading of files from the web to disk. --- doc/img/ADSBDemod_plugin_table.png | Bin 23970 -> 60436 bytes plugins/channelrx/demodadsb/CMakeLists.txt | 24 +- plugins/channelrx/demodadsb/adsbdemod.cpp | 20 +- .../demodadsb/adsbdemoddisplaydialog.cpp | 66 + .../demodadsb/adsbdemoddisplaydialog.h | 50 + .../demodadsb/adsbdemoddisplaydialog.ui | 200 +++ .../demodadsb/adsbdemodfeeddialog.cpp | 60 + .../channelrx/demodadsb/adsbdemodfeeddialog.h | 43 + .../demodadsb/adsbdemodfeeddialog.ui | 150 ++ plugins/channelrx/demodadsb/adsbdemodgui.cpp | 1464 +++++++++++++---- plugins/channelrx/demodadsb/adsbdemodgui.h | 291 +++- plugins/channelrx/demodadsb/adsbdemodgui.ui | 343 ++-- .../channelrx/demodadsb/adsbdemodreport.cpp | 1 + plugins/channelrx/demodadsb/adsbdemodreport.h | 37 +- .../channelrx/demodadsb/adsbdemodsettings.cpp | 77 +- .../channelrx/demodadsb/adsbdemodsettings.h | 32 +- plugins/channelrx/demodadsb/adsbdemodsink.cpp | 297 ++-- plugins/channelrx/demodadsb/adsbdemodsink.h | 42 +- .../demodadsb/adsbdemodsinkworker.cpp | 348 ++++ .../channelrx/demodadsb/adsbdemodsinkworker.h | 82 + plugins/channelrx/demodadsb/adsbdemodstats.h | 46 + .../channelrx/demodadsb/adsbdemodworker.cpp | 106 +- plugins/channelrx/demodadsb/adsbdemodworker.h | 3 + plugins/channelrx/demodadsb/airlinelogos.qrc | 758 +++++++++ .../channelrx/demodadsb/airlinelogos/5AH.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AAF.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AAH.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/AAL.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AAR.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AAW.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AAY.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AAZ.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ABB.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ABD.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ABG.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ABL.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/ABN.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ABP.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ABQ.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ABR.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ABS.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/ABV.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ABW.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ABX.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ABY.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ACA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ACG.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ACI.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ACV.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ADN.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ADY.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AEA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AEE.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/AEG.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/AEH.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AEI.bmp | Bin 0 -> 5176 bytes .../demodadsb/airlinelogos/AERORESCUE.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AFE.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/AFG.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AFL.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AFR.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AFW.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AGF.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AGO.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AGU.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AHK.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AHO.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AHY.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AIB.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AIC.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AIE.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AIH.bmp | Bin 0 -> 5176 bytes .../demodadsb/airlinelogos/AIRCOSTA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AIZ.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AJA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AJB.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/AJD.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AJI.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/AJK.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AJT.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/AKC.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ALV.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/ALW.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/ALX.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ALY.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/AMC.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AMU.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/AMV.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AMX.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AMY.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/ANA.bmp | Bin 0 -> 4856 bytes .../channelrx/demodadsb/airlinelogos/AND.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ANE.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/ANG.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/ANK.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ANO.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ANQ.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ANR.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ANS.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ANT.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ANZ.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AOJ.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/APF.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/APG.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/APJ.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/APK.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/APZ.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/ARA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ARE.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/ARG.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ARK.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ARN.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/ARR.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/ARU.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ARZ.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ASA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ASB.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ASH.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ASL.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/ASQ.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ASV.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/ASY.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ATC.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/ATG.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/ATN.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ATR.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/ATV.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ATW.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/ATX.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/AUA.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/AUI.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AUL.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AUR.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/AUS5.bmp | Bin 0 -> 5175 bytes .../channelrx/demodadsb/airlinelogos/AUT.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AVA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AVJ.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/AVN.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AVV.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AVW.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/AWE.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AWG.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/AWI.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/AWK.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/AWM.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AWT.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AXB.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AXE.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/AXK.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/AXM.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AXU.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AYG.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/AYT.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/AZA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AZG.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AZI.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AZM.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/AZN.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AZO.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/AZQ.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AZU.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/AZV.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/AZW.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/BAW.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/BBC.bmp | Bin 0 -> 4856 bytes .../channelrx/demodadsb/airlinelogos/BBD.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/BBG.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/BCI.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/BCY.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/BDA.bmp | Bin 0 -> 2400 bytes .../channelrx/demodadsb/airlinelogos/BEE.bmp | Bin 0 -> 2840 bytes .../channelrx/demodadsb/airlinelogos/BEL.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/BER.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/BGA.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/BGH.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/BGL.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/BGY.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/BHA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/BHP.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/BIE.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/BLF.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/BLX.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/BMR.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/BOE.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/BON.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/BOS.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/BOT.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/BOV.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/BOX.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/BQB.bmp | Bin 0 -> 6856 bytes .../demodadsb/airlinelogos/BRINDABELLA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/BRJ.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/BRQ.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/BRU.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/BRXb.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/BSK.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/BTI.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/BTN.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/BTQ.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/BUC.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/BUR.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/BVR.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/BXA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/BYR.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/BZH.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CAD.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CAI.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CAO.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CAV.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CAY.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CBJ.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CCA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CCD.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/CCE.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CCM.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CDA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CDC.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CDG.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CEB.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CEL.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CES.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CEY.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/CFE.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CFG.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CGF.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CGH.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/CGN.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/CHB.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CHH.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CIM.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CJA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CJC.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CJT.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CKK.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CKS.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CLG.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CLX.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CMM.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/CND.bmp | Bin 0 -> 4920 bytes .../channelrx/demodadsb/airlinelogos/CNK.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CON1.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/COT.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/CPA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CPN.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CPZ.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/CQH.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CQN.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CRC.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CRL.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CRN.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CRO.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CRQ.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CRUZ.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CSA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CSC.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CSH.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CSN.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CSS.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/CSZ.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CTM.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CTN.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CUA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CUB.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CVA.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/CWC.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/CXA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CXB.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CXH.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CYL.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/CYP.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/CYZ.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/DAC.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/DAH.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/DAL.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/DAO.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/DAP.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/DCS.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/DER.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/DHL.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/DHX.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/DJT.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/DJU.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/DKH.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/DLA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/DLH.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/DNV.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/DOB.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/DQI.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/DRK.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/DRU.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/DSM.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/DTA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/DTH.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/DTR.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/DYA.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/EAA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/EAL.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/EAQ.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ECO.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/EGF.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/EKA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ELL.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/EMB.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ENJ.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ENT.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/EPA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ERT.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ESQ.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ETD.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/ETH.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ETS.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/EUG.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/EVA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/EWG.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/EXS.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/EYT.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/EZA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/EZD.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/EZE.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/EZY.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/FAB.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/FAG.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/FAH.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/FAT.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/FBD.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/FBR.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/FCM.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/FDB.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/FDX.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/FFT.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/FFV.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/FHY.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/FIN.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/FJA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/FJI.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/FLE.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/FLI.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/FNA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/FPK.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/FPO.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/FPY.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/FRF.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/FSK.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/FTZ.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/FWI.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/FZA.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/FZW.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/GAA.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/GAI.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/GBK.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/GBQ.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/GCR.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/GDC.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/GEA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/GEC.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/GEO.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/GFA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/GFG.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/GGN.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/GIA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/GLG.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/GLJ.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/GLO.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/GLR.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/GMI.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/GMQ.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/GOW.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/GRL.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/GTI.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/GTV.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/GUG.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/GUY.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/GWI.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/GXL.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/HAL.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/HAT.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/HBH.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/HCC.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/HCV.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/HLX.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/HOP.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/HRV.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/HUN.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/HVN.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/HVY.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/HXA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/IAD.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/IAW.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/IBB.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/IBE.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/IBS.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ICE.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/IFC.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/IGA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/IGO.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/IJM.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/IRA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/IRC.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/IRK.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/IRM.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ISK.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ISS.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/ISV.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/IYE.bmp | Bin 0 -> 6856 bytes .../airlinelogos/Inter Island Air.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/JAF.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/JAI.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/JAT.bmp | Bin 0 -> 5176 bytes .../demodadsb/airlinelogos/JATnew.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/JAV.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/JBU.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/JCC.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/JET.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/JG.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/JLL.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/JNA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/JOR.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/JOY.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/JSA.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/JST.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/JTF.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/JTG.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/JUS.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/JW.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/JYH.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/JZA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/JZR.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/KAB.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/KAC.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/KAL.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/KFA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/KGL.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/KGO.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/KHH.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/KHV.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/KIL.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/KKK.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/KLC.bmp | Bin 0 -> 2024 bytes .../channelrx/demodadsb/airlinelogos/KLM.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/KMF.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/KN.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/KNA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/KNE.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/KOR.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/KQA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/KRE.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/KRN.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/KRP.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/KZR.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/LAA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/LAL.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/LAN.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/LAV.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/LBN.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/LBR.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/LBY.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/LC.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/LCO.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/LER.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/LFO.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/LGL.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/LIA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/LKA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/LKE.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/LLP.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/LLR.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/LMU.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/LNI.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/LNK.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/LOG.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/LOT.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/LPA.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/LPV.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/LRC.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/LUR.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/LVR.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/LYM.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/LZB.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/MAC.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/MAL.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/MAR.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/MAS.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/MAU.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/MDG.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/MEA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/MGX.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/MHS.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/MJF.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/MKG.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/MLD.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/MLH.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/MLO.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/MLT.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/MMA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/MMD.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/MMZ.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/MNB.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/MNO.bmp | Bin 0 -> 2076 bytes .../channelrx/demodadsb/airlinelogos/MON.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/MPA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/MPE.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/MPH.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/MSC.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/MSE.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/MSF.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/MSR.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/MSX.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/MYP.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/MZN.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/NAC.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/NAX.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/NCB.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/NGB.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/NGT.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/NIA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/NKS.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/NLU.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/NLY.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/NMA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/NMB.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/NOK.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/NOS.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/NPT.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/NRL.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/NSE.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/NVC.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/NVD.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/NVR.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/NWS.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/OAE.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/OAL.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/OBS.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/OCA.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/OHY.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/OKA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/OKS.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/OLC.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/OMA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ONE.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ONX.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/OPJ.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ORB.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/OTC.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/OVA.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/OZW.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/PAG.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/PAL.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/PAM.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/PCP.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/PER.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/PEV.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/PEX.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/PFZ.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/PGA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/PGT.bmp | Bin 0 -> 2840 bytes .../channelrx/demodadsb/airlinelogos/PIA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/PIC.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/PKZ.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/PLM.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/PLV.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/PLY.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/PMT.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/POE.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/POT.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/PRF.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/PRI.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/PRW.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/PSC.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/PST.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/PTB.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/PTR.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/PVN.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/PWD.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/QAJ.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/QDA.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/QFA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/QLK.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/QTR.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/RAE.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/RAM.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/RAR.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/RBA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/RBG.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/REU.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/RGE.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/RJA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/RJD.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/RKM.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/RLA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/RLH.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/RLK.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/RLU.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/RLX.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/RNV.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ROI.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/ROT.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ROU.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/RPB.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/RSY.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/RUC.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/RWG.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/RWZ.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/RXA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/RYR.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/RYW.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/RZO.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/SAI.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/SAS.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SBM.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SCO.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SCX.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SDM.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SEJ.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SEY.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SFF.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SFW.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SGA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SGG.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SHU.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/SIA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SID.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SIF.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/SIN.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SJO.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SKK.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SKP.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SKU.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SKV.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SKZ.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SLI.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SLK.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SLM.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SLX.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SME.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SMJ.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/SMR.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SOR.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SOV.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SPR.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SQC.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/SQS.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SRR.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/SSQ.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SSV.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SUS.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SVA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SVR.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SWA.bmp | Bin 0 -> 5176 bytes .../demodadsb/airlinelogos/SWAnew.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SWG.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SWM.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SWR.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SWT.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SXS.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/SYL.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/TAI.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/TAK.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/TAM.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/TAO.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/TAP.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/TAR.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/TAY.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/TBA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/TBN.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/TBZ.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/TCV.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/TCW.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/TCX.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/TDR.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/TFL.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/TGW.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/TGZ.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/THA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/THE.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/THT.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/THY.bmp | Bin 0 -> 5176 bytes .../demodadsb/airlinelogos/THYANA.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/TIA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/TIW.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/TJK.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/TJS.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/TMA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/TMN.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/TMW.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/TNA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/TNO.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/TOM.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/TPA.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/TPC.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/TPU.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/TRA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/TSC.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/TSG.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/TSH.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/TSO.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/TSY.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/TTL.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/TUA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/TUI.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/TUS.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/TUY.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/TVF.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/TVP.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/TVQ.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/TVS.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/TWI.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/UAE.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/UAL.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/UBD.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/UCA.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/UEA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/UJX.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/ULG.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/UPS.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/URG.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/URS.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/UTA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/UTN.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/UTP.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/UTY.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/UZB.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/VAL.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/VAR.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/VAS.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/VAU.bmp | Bin 0 -> 1948 bytes .../channelrx/demodadsb/airlinelogos/VAV.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/VBB.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/VBW.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/VCV.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/VDA.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/VEL.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/VFC.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/VIL.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/VIM.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/VIR.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/VIT.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/VIV.bmp | Bin 0 -> 2836 bytes .../channelrx/demodadsb/airlinelogos/VJC.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/VJS.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/VKG.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/VLG.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/VLK.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/VLM.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/VMP.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/VNE.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/VNL.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/VOE.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/VOZ.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/VPA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/VRD.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/VRE.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/VRG.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/VSV.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/VTA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/VTI.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/VTM.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/VUN.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/VVC.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/WAJ.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/WDA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/WEN.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/WEW.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/WFR.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/WIF.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/WJA.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/WLC.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/WOW.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/WRC.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/WSG.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/WUK.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/WWW.bmp | Bin 0 -> 6856 bytes .../channelrx/demodadsb/airlinelogos/WZZ.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/XAH.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/XAX.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/XLF.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/XLR.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/XME.bmp | Bin 0 -> 5176 bytes .../channelrx/demodadsb/airlinelogos/YZR.bmp | Bin 0 -> 5176 bytes plugins/channelrx/demodadsb/csv.cpp | 69 + plugins/channelrx/demodadsb/csv.h | 40 + plugins/channelrx/demodadsb/flags.qrc | 436 +++++ .../channelrx/demodadsb/flags/afghanistan.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/afghanistan_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/alandisland.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/albania.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/albania_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/algeria.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/algeria_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/andorra.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/angola.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/angola_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/anguilla.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/antigua.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/antigua_and_barbuda.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/argentina.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/argentina_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/armenia.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/armenia_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/aruba.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/australia.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/australia_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/austria.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/austria_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/azerbaijan.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/azerbaijan_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/bahamas.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/bahamas_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/bahrain.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/bahrain_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/bangladesh.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/bangladesh_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/barbados.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/barbados_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/belarus.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/belarus_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/belgium.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/belgium_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/belize.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/belize_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/benin.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/benin_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/bermuda.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/bhutan.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/blank.bmp | Bin 0 -> 1014 bytes plugins/channelrx/demodadsb/flags/bolivia.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/bolivia_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/bosnia.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/bosnia_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/botswana.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/botswana_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/brazil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/brazil_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/brunei.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/brunei_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/bulgaria.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/bulgaria_mil.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/burkina_faso.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/burkina_faso_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/burundi.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/burundi_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/cambodia.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/cambodia_mil.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/cameroon_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/cameroun.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/canada.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/canada_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/cape_verde.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/cayman_isles.bmp | Bin 0 -> 2456 bytes .../flags/central_african_republic.bmp | Bin 0 -> 2456 bytes .../flags/central_african_republic_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/chad.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/chad_mil.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/chechnya_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/chile.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/chile_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/chili.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/china.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/china_hong_kong.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/china_macau.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/china_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/colombia.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/colombia_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/comoros.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/comoros_mil.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/congo-drc_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/congo-roc.bmp | Bin 0 -> 1014 bytes .../demodadsb/flags/congo-roc_mil.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/congo_brazzaville.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/congodrc.bmp | Bin 0 -> 1014 bytes .../demodadsb/flags/congodrc_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/congoroc.bmp | Bin 0 -> 1014 bytes .../demodadsb/flags/congoroc_mil.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/cook_islands.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/costa_rica.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/costa_rica_mil.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/cote_d'ivoire.bmp | Bin 0 -> 1014 bytes .../demodadsb/flags/cote_d'ivoire_mil.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/cote_d'ivorie.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/croatia.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/croatia_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/cuba.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/cuba_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/cyprus.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/cyprus_mil.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/czech_republic.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/czech_republic_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/denmark.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/denmark_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/djibouti.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/djibouti_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/dominca.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/dominica.bmp | Bin 0 -> 1014 bytes .../demodadsb/flags/dominican_republic.bmp | Bin 0 -> 2456 bytes .../flags/dominican_republic_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/ecuador.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/ecuador_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/egypt.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/egypt_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/el_salvador.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/el_salvador_mil.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/equatorial_guinea.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/equatorial_guinea_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/eritrea.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/eritrea_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/estonia.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/estonia_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/ethiopia.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/ethiopia_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/eu.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/falkland_isles.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/faroe_islands.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/fiji.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/finland.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/finland_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/france.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/france_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/francemil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/gabon.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/gabon_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/gambia.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/gambia_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/georgia.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/georgia_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/germany.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/germany_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/ghana.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/ghana_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/gibraltar.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/greece.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/greece_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/grenada.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/guam.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/guatemala.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/guatemala_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/guernsey.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/guinea bissau.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/guinea-bissau.bmp | Bin 0 -> 1014 bytes .../demodadsb/flags/guinea-bissau_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/guinea.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/guinea_bissau.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/guinea_mil.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/guineabissau.bmp | Bin 0 -> 1014 bytes .../demodadsb/flags/guineabissau_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/guyana.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/guyana_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/haiti.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/haiti_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/honduras.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/honduras_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/hong_kong.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/hungary.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/hungary_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/icao.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/iceland.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/iceland_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/india.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/india_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/indonesia.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/indonesia_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/iran.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/iran_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/iraq.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/iraq_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/ireland.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/ireland_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/isle_of_man.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/isle_of_man_5.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/isle_of_man_6.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/israel.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/israel_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/italy.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/italy_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/ivory_coast.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/ivory_coast_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/jamaica.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/jamaica_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/japan.bmp | Bin 0 -> 2454 bytes .../channelrx/demodadsb/flags/japan_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/jersey.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/jordan.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/jordan_mil.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/kazakhstan_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/kenya.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/kenya_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/khazakstan.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/kiribati.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/korea-north-mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/korea-north.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/korea-south-mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/korea-south.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/korea_north.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/korea_north_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/korea_south.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/koreasouthmil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/kuwait.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/kuwait_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/kyrgyzstan.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/kyrgyzstan_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/laos.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/laos_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/latvia.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/latvia_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/lebanon.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/lebanon_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/lesotho.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/lesotho_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/liberia.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/liberia_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/libya.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/libya_mil.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/liechtenstein.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/lithuania.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/lithuania_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/luxembourg.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/luxembourg_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/luxemburg.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/macedonia.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/macedonia_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/madagascar.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/madagascar_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/malawi.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/malawi_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/malaysia.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/malaysia_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/maldives.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/mali.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/mali_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/malta.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/malta_mil.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/marshall islands.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/marshall_islands.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/mauritania.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/mauritania_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/mauritius.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/mexico.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/mexico_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/micronesia.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/militarymap.csv | 48 + plugins/channelrx/demodadsb/flags/moldova.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/moldova_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/monaco.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/mongolia.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/mongolia_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/monserrat.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/montenegro.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/montenegro_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/morocco.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/morocco_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/mozambique.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/mozambique_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/myanmar.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/myanmar_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/namibia.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/namibia_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/nato.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/nauru.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/nepal.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/nepal_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/netherlands.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/netherlands_antilles.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/netherlands_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/new zealand.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/new_zealand.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/new_zealand_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/nicaragua.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/nicaragua_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/niger.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/niger_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/nigeria.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/nigeria_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/niue.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/noflag.bmp | Bin 0 -> 1254 bytes .../demodadsb/flags/north marianas.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/north_marianas.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/norway.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/norway_mil.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/not allocated.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/not_allocated.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/oman.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/oman_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/pakistan.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/pakistan_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/palau.bmp | Bin 0 -> 1014 bytes plugins/channelrx/demodadsb/flags/panama.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/panama_mil.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/papua_new_guinea.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/papua_new_guinea_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/paraguay.bmp | Bin 0 -> 1014 bytes .../demodadsb/flags/paraguay_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/peru.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/peru_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/philippines.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/philippines_mil.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/phillippines.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/poland.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/poland_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/portugal.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/portugal_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/qatar.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/qatar_mil.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/regprefixmap.csv | 224 +++ .../channelrx/demodadsb/flags/rep. congo.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/romania.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/romania_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/russia.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/russia_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/rwanda.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/rwanda_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/samoa.bmp | Bin 0 -> 1014 bytes .../channelrx/demodadsb/flags/san_marino.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/sao_tome.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/sao_tome_principe.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/sao_tome_principe_mil.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/saudi_arabia.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/saudi_arabia_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/senegal.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/senegal_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/serbia.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/serbia_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/seychelles.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/seychelles_mil.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/sierra_leone.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/sierra_leone_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/singapore.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/singapore_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/slovakia.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/slovakia_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/slovenia.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/slovenia_mil.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/solomon_islands.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/somalia.bmp | Bin 0 -> 1014 bytes .../channelrx/demodadsb/flags/somalia_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/south-korea.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/south_africa.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/south_africa_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/south_sudan.bmp | Bin 0 -> 1014 bytes .../demodadsb/flags/south_sudan_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/spain.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/spain_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/sri_lanka.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/sri_lanka_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/st_helena.bmp | Bin 0 -> 1014 bytes .../demodadsb/flags/st_kitts_and_nevis.bmp | Bin 0 -> 1014 bytes .../channelrx/demodadsb/flags/st_lucia.bmp | Bin 0 -> 2456 bytes .../flags/st_pierre_and_miquelon.bmp | Bin 0 -> 1014 bytes .../channelrx/demodadsb/flags/st_vincent.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/sudan.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/sudan_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/suriname.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/suriname_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/swaziland.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/swaziland_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/sweden.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/sweden_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/switzerland.bmp | Bin 0 -> 2454 bytes .../demodadsb/flags/switzerland_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/syria.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/syria_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/taiwan.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/taiwan_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/tajikistan.bmp | Bin 0 -> 1014 bytes .../demodadsb/flags/tajikistan_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/tajikstan.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/tanzania.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/tanzania_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/thailand.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/thailand_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/timor-leste.bmp | Bin 0 -> 1014 bytes .../channelrx/demodadsb/flags/timorleste.bmp | Bin 0 -> 1014 bytes plugins/channelrx/demodadsb/flags/togo.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/togo_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/tonga.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/trinidad_and_tobago.bmp | Bin 0 -> 2456 bytes .../flags/trinidad_and_tobago_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/tunisia.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/tunisia_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/turkey.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/turkey_mil.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/turkmenistan.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/turkmenistan_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/turkmmen.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/turks_and_caicos.bmp | Bin 0 -> 1014 bytes plugins/channelrx/demodadsb/flags/tuvalu.bmp | Bin 0 -> 1014 bytes plugins/channelrx/demodadsb/flags/uganda.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/uganda_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/ukraine.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/ukraine_mil.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/united_arab_emirates.bmp | Bin 0 -> 2456 bytes .../flags/united_arab_emirates_mil.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/united_kingdom.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/united_kingdom_mil.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/united_nations.bmp | Bin 0 -> 1014 bytes .../demodadsb/flags/united_states.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/united_states_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/uruguay.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/uruguay_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/uzbekistan.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/uzbekistan_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/vanuatu.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/vatican_city.bmp | Bin 0 -> 1014 bytes .../channelrx/demodadsb/flags/venezuela.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/venezuela_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/viet-nam.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/viet-nam_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/vietnam.bmp | Bin 0 -> 1014 bytes .../channelrx/demodadsb/flags/vietnam_mil.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/virgin_isles.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/yemen.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/yemen_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/flags/zambia.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/zambia_mil.bmp | Bin 0 -> 2456 bytes .../channelrx/demodadsb/flags/zimbabwe.bmp | Bin 0 -> 2456 bytes .../demodadsb/flags/zimbabwe_mil.bmp | Bin 0 -> 2456 bytes plugins/channelrx/demodadsb/icons.qrc | 6 + .../channelrx/demodadsb/icons/aircraft.png | Bin 0 -> 377 bytes .../demodadsb/icons/controltower.png | Bin 0 -> 308 bytes plugins/channelrx/demodadsb/map.qrc | 19 + .../channelrx/demodadsb/map}/MapStation.qml | 10 +- .../demodadsb/map}/aircraft_2engine.png | Bin .../demodadsb/map}/aircraft_2enginesmall.png | Bin .../demodadsb/map}/aircraft_4engine.png | Bin .../demodadsb/map}/aircraft_drone.png | Bin .../demodadsb/map}/aircraft_fighter.png | Bin .../demodadsb/map}/aircraft_helicopter.png | Bin .../demodadsb/map}/aircraft_light.png | Bin .../demodadsb/map}/aircraft_space.png | Bin .../channelrx/demodadsb/map/airport_large.png | Bin 0 -> 1261 bytes .../demodadsb/map/airport_medium.png | Bin 0 -> 1015 bytes .../channelrx/demodadsb/map/airport_small.png | Bin 0 -> 1084 bytes .../channelrx/demodadsb/map/antenna.png | Bin plugins/channelrx/demodadsb/map/heliport.png | Bin 0 -> 1131 bytes plugins/channelrx/demodadsb/map/map.qml | 178 ++ .../channelrx/demodadsb/map/truck.png | Bin plugins/channelrx/demodadsb/osndb.h | 319 ++++ plugins/channelrx/demodadsb/ourairportsdb.h | 234 +++ plugins/channelrx/demodadsb/readme.md | 102 +- sdrbase/CMakeLists.txt | 4 + sdrbase/channel/channelwebapiutils.cpp | 180 ++ sdrbase/channel/channelwebapiutils.h | 30 + sdrbase/util/crc.cpp | 56 +- sdrbase/util/crc.h | 25 +- sdrbase/util/httpdownloadmanager.cpp | 108 ++ sdrbase/util/httpdownloadmanager.h | 53 + sdrgui/resources/map.qml | 85 - sdrgui/resources/res.qrc | 11 - 1245 files changed, 5950 insertions(+), 827 deletions(-) create mode 100644 plugins/channelrx/demodadsb/adsbdemoddisplaydialog.cpp create mode 100644 plugins/channelrx/demodadsb/adsbdemoddisplaydialog.h create mode 100644 plugins/channelrx/demodadsb/adsbdemoddisplaydialog.ui create mode 100644 plugins/channelrx/demodadsb/adsbdemodfeeddialog.cpp create mode 100644 plugins/channelrx/demodadsb/adsbdemodfeeddialog.h create mode 100644 plugins/channelrx/demodadsb/adsbdemodfeeddialog.ui create mode 100644 plugins/channelrx/demodadsb/adsbdemodsinkworker.cpp create mode 100644 plugins/channelrx/demodadsb/adsbdemodsinkworker.h create mode 100644 plugins/channelrx/demodadsb/adsbdemodstats.h create mode 100644 plugins/channelrx/demodadsb/airlinelogos.qrc create mode 100644 plugins/channelrx/demodadsb/airlinelogos/5AH.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AAF.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AAH.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AAL.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AAR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AAW.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AAY.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AAZ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ABB.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ABD.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ABG.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ABL.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ABN.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ABP.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ABQ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ABR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ABS.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ABV.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ABW.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ABX.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ABY.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ACA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ACG.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ACI.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ACV.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ADN.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ADY.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AEA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AEE.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AEG.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AEH.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AEI.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AERORESCUE.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AFE.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AFG.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AFL.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AFR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AFW.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AGF.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AGO.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AGU.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AHK.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AHO.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AHY.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AIB.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AIC.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AIE.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AIH.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AIRCOSTA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AIZ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AJA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AJB.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AJD.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AJI.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AJK.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AJT.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AKC.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ALV.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ALW.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ALX.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ALY.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AMC.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AMU.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AMV.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AMX.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AMY.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ANA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AND.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ANE.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ANG.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ANK.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ANO.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ANQ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ANR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ANS.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ANT.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ANZ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AOJ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/APF.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/APG.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/APJ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/APK.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/APZ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ARA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ARE.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ARG.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ARK.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ARN.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ARR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ARU.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ARZ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ASA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ASB.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ASH.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ASL.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ASQ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ASV.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ASY.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ATC.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ATG.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ATN.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ATR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ATV.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ATW.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ATX.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AUA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AUI.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AUL.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AUR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AUS5.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AUT.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AVA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AVJ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AVN.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AVV.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AVW.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AWE.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AWG.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AWI.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AWK.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AWM.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AWT.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AXB.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AXE.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AXK.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AXM.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AXU.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AYG.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AYT.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AZA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AZG.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AZI.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AZM.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AZN.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AZO.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AZQ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AZU.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AZV.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/AZW.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BAW.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BBC.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BBD.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BBG.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BCI.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BCY.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BDA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BEE.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BEL.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BER.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BGA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BGH.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BGL.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BGY.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BHA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BHP.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BIE.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BLF.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BLX.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BMR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BOE.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BON.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BOS.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BOT.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BOV.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BOX.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BQB.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BRINDABELLA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BRJ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BRQ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BRU.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BRXb.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BSK.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BTI.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BTN.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BTQ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BUC.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BUR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BVR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BXA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BYR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/BZH.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CAD.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CAI.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CAO.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CAV.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CAY.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CBJ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CCA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CCD.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CCE.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CCM.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CDA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CDC.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CDG.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CEB.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CEL.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CES.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CEY.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CFE.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CFG.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CGF.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CGH.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CGN.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CHB.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CHH.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CIM.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CJA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CJC.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CJT.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CKK.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CKS.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CLG.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CLX.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CMM.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CND.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CNK.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CON1.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/COT.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CPA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CPN.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CPZ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CQH.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CQN.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CRC.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CRL.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CRN.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CRO.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CRQ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CRUZ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CSA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CSC.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CSH.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CSN.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CSS.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CSZ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CTM.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CTN.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CUA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CUB.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CVA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CWC.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CXA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CXB.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CXH.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CYL.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CYP.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/CYZ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/DAC.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/DAH.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/DAL.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/DAO.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/DAP.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/DCS.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/DER.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/DHL.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/DHX.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/DJT.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/DJU.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/DKH.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/DLA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/DLH.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/DNV.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/DOB.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/DQI.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/DRK.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/DRU.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/DSM.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/DTA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/DTH.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/DTR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/DYA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/EAA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/EAL.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/EAQ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ECO.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/EGF.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/EKA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ELL.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/EMB.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ENJ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ENT.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/EPA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ERT.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ESQ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ETD.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ETH.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ETS.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/EUG.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/EVA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/EWG.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/EXS.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/EYT.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/EZA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/EZD.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/EZE.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/EZY.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/FAB.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/FAG.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/FAH.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/FAT.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/FBD.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/FBR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/FCM.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/FDB.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/FDX.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/FFT.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/FFV.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/FHY.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/FIN.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/FJA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/FJI.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/FLE.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/FLI.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/FNA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/FPK.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/FPO.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/FPY.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/FRF.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/FSK.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/FTZ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/FWI.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/FZA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/FZW.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/GAA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/GAI.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/GBK.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/GBQ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/GCR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/GDC.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/GEA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/GEC.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/GEO.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/GFA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/GFG.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/GGN.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/GIA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/GLG.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/GLJ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/GLO.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/GLR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/GMI.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/GMQ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/GOW.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/GRL.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/GTI.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/GTV.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/GUG.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/GUY.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/GWI.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/GXL.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/HAL.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/HAT.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/HBH.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/HCC.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/HCV.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/HLX.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/HOP.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/HRV.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/HUN.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/HVN.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/HVY.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/HXA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/IAD.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/IAW.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/IBB.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/IBE.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/IBS.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ICE.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/IFC.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/IGA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/IGO.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/IJM.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/IRA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/IRC.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/IRK.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/IRM.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ISK.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ISS.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ISV.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/IYE.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/Inter Island Air.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/JAF.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/JAI.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/JAT.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/JATnew.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/JAV.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/JBU.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/JCC.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/JET.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/JG.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/JLL.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/JNA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/JOR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/JOY.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/JSA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/JST.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/JTF.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/JTG.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/JUS.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/JW.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/JYH.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/JZA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/JZR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/KAB.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/KAC.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/KAL.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/KFA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/KGL.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/KGO.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/KHH.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/KHV.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/KIL.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/KKK.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/KLC.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/KLM.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/KMF.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/KN.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/KNA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/KNE.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/KOR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/KQA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/KRE.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/KRN.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/KRP.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/KZR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/LAA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/LAL.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/LAN.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/LAV.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/LBN.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/LBR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/LBY.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/LC.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/LCO.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/LER.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/LFO.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/LGL.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/LIA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/LKA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/LKE.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/LLP.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/LLR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/LMU.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/LNI.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/LNK.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/LOG.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/LOT.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/LPA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/LPV.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/LRC.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/LUR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/LVR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/LYM.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/LZB.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/MAC.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/MAL.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/MAR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/MAS.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/MAU.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/MDG.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/MEA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/MGX.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/MHS.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/MJF.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/MKG.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/MLD.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/MLH.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/MLO.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/MLT.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/MMA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/MMD.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/MMZ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/MNB.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/MNO.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/MON.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/MPA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/MPE.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/MPH.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/MSC.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/MSE.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/MSF.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/MSR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/MSX.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/MYP.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/MZN.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/NAC.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/NAX.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/NCB.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/NGB.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/NGT.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/NIA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/NKS.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/NLU.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/NLY.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/NMA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/NMB.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/NOK.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/NOS.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/NPT.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/NRL.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/NSE.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/NVC.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/NVD.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/NVR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/NWS.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/OAE.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/OAL.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/OBS.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/OCA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/OHY.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/OKA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/OKS.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/OLC.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/OMA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ONE.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ONX.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/OPJ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ORB.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/OTC.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/OVA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/OZW.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/PAG.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/PAL.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/PAM.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/PCP.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/PER.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/PEV.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/PEX.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/PFZ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/PGA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/PGT.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/PIA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/PIC.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/PKZ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/PLM.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/PLV.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/PLY.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/PMT.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/POE.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/POT.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/PRF.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/PRI.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/PRW.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/PSC.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/PST.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/PTB.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/PTR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/PVN.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/PWD.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/QAJ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/QDA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/QFA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/QLK.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/QTR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/RAE.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/RAM.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/RAR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/RBA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/RBG.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/REU.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/RGE.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/RJA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/RJD.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/RKM.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/RLA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/RLH.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/RLK.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/RLU.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/RLX.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/RNV.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ROI.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ROT.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ROU.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/RPB.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/RSY.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/RUC.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/RWG.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/RWZ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/RXA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/RYR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/RYW.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/RZO.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SAI.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SAS.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SBM.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SCO.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SCX.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SDM.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SEJ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SEY.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SFF.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SFW.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SGA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SGG.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SHU.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SIA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SID.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SIF.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SIN.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SJO.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SKK.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SKP.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SKU.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SKV.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SKZ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SLI.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SLK.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SLM.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SLX.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SME.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SMJ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SMR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SOR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SOV.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SPR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SQC.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SQS.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SRR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SSQ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SSV.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SUS.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SVA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SVR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SWA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SWAnew.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SWG.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SWM.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SWR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SWT.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SXS.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/SYL.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TAI.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TAK.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TAM.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TAO.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TAP.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TAR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TAY.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TBA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TBN.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TBZ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TCV.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TCW.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TCX.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TDR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TFL.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TGW.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TGZ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/THA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/THE.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/THT.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/THY.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/THYANA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TIA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TIW.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TJK.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TJS.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TMA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TMN.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TMW.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TNA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TNO.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TOM.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TPA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TPC.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TPU.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TRA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TSC.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TSG.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TSH.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TSO.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TSY.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TTL.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TUA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TUI.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TUS.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TUY.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TVF.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TVP.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TVQ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TVS.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/TWI.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/UAE.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/UAL.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/UBD.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/UCA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/UEA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/UJX.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/ULG.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/UPS.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/URG.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/URS.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/UTA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/UTN.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/UTP.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/UTY.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/UZB.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/VAL.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/VAR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/VAS.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/VAU.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/VAV.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/VBB.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/VBW.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/VCV.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/VDA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/VEL.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/VFC.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/VIL.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/VIM.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/VIR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/VIT.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/VIV.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/VJC.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/VJS.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/VKG.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/VLG.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/VLK.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/VLM.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/VMP.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/VNE.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/VNL.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/VOE.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/VOZ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/VPA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/VRD.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/VRE.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/VRG.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/VSV.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/VTA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/VTI.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/VTM.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/VUN.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/VVC.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/WAJ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/WDA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/WEN.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/WEW.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/WFR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/WIF.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/WJA.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/WLC.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/WOW.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/WRC.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/WSG.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/WUK.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/WWW.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/WZZ.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/XAH.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/XAX.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/XLF.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/XLR.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/XME.bmp create mode 100644 plugins/channelrx/demodadsb/airlinelogos/YZR.bmp create mode 100644 plugins/channelrx/demodadsb/csv.cpp create mode 100644 plugins/channelrx/demodadsb/csv.h create mode 100644 plugins/channelrx/demodadsb/flags.qrc create mode 100644 plugins/channelrx/demodadsb/flags/afghanistan.bmp create mode 100644 plugins/channelrx/demodadsb/flags/afghanistan_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/alandisland.bmp create mode 100644 plugins/channelrx/demodadsb/flags/albania.bmp create mode 100644 plugins/channelrx/demodadsb/flags/albania_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/algeria.bmp create mode 100644 plugins/channelrx/demodadsb/flags/algeria_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/andorra.bmp create mode 100644 plugins/channelrx/demodadsb/flags/angola.bmp create mode 100644 plugins/channelrx/demodadsb/flags/angola_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/anguilla.bmp create mode 100644 plugins/channelrx/demodadsb/flags/antigua.bmp create mode 100644 plugins/channelrx/demodadsb/flags/antigua_and_barbuda.bmp create mode 100644 plugins/channelrx/demodadsb/flags/argentina.bmp create mode 100644 plugins/channelrx/demodadsb/flags/argentina_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/armenia.bmp create mode 100644 plugins/channelrx/demodadsb/flags/armenia_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/aruba.bmp create mode 100644 plugins/channelrx/demodadsb/flags/australia.bmp create mode 100644 plugins/channelrx/demodadsb/flags/australia_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/austria.bmp create mode 100644 plugins/channelrx/demodadsb/flags/austria_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/azerbaijan.bmp create mode 100644 plugins/channelrx/demodadsb/flags/azerbaijan_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/bahamas.bmp create mode 100644 plugins/channelrx/demodadsb/flags/bahamas_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/bahrain.bmp create mode 100644 plugins/channelrx/demodadsb/flags/bahrain_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/bangladesh.bmp create mode 100644 plugins/channelrx/demodadsb/flags/bangladesh_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/barbados.bmp create mode 100644 plugins/channelrx/demodadsb/flags/barbados_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/belarus.bmp create mode 100644 plugins/channelrx/demodadsb/flags/belarus_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/belgium.bmp create mode 100644 plugins/channelrx/demodadsb/flags/belgium_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/belize.bmp create mode 100644 plugins/channelrx/demodadsb/flags/belize_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/benin.bmp create mode 100644 plugins/channelrx/demodadsb/flags/benin_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/bermuda.bmp create mode 100644 plugins/channelrx/demodadsb/flags/bhutan.bmp create mode 100644 plugins/channelrx/demodadsb/flags/blank.bmp create mode 100644 plugins/channelrx/demodadsb/flags/bolivia.bmp create mode 100644 plugins/channelrx/demodadsb/flags/bolivia_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/bosnia.bmp create mode 100644 plugins/channelrx/demodadsb/flags/bosnia_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/botswana.bmp create mode 100644 plugins/channelrx/demodadsb/flags/botswana_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/brazil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/brazil_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/brunei.bmp create mode 100644 plugins/channelrx/demodadsb/flags/brunei_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/bulgaria.bmp create mode 100644 plugins/channelrx/demodadsb/flags/bulgaria_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/burkina_faso.bmp create mode 100644 plugins/channelrx/demodadsb/flags/burkina_faso_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/burundi.bmp create mode 100644 plugins/channelrx/demodadsb/flags/burundi_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/cambodia.bmp create mode 100644 plugins/channelrx/demodadsb/flags/cambodia_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/cameroon_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/cameroun.bmp create mode 100644 plugins/channelrx/demodadsb/flags/canada.bmp create mode 100644 plugins/channelrx/demodadsb/flags/canada_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/cape_verde.bmp create mode 100644 plugins/channelrx/demodadsb/flags/cayman_isles.bmp create mode 100644 plugins/channelrx/demodadsb/flags/central_african_republic.bmp create mode 100644 plugins/channelrx/demodadsb/flags/central_african_republic_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/chad.bmp create mode 100644 plugins/channelrx/demodadsb/flags/chad_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/chechnya_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/chile.bmp create mode 100644 plugins/channelrx/demodadsb/flags/chile_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/chili.bmp create mode 100644 plugins/channelrx/demodadsb/flags/china.bmp create mode 100644 plugins/channelrx/demodadsb/flags/china_hong_kong.bmp create mode 100644 plugins/channelrx/demodadsb/flags/china_macau.bmp create mode 100644 plugins/channelrx/demodadsb/flags/china_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/colombia.bmp create mode 100644 plugins/channelrx/demodadsb/flags/colombia_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/comoros.bmp create mode 100644 plugins/channelrx/demodadsb/flags/comoros_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/congo-drc_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/congo-roc.bmp create mode 100644 plugins/channelrx/demodadsb/flags/congo-roc_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/congo_brazzaville.bmp create mode 100644 plugins/channelrx/demodadsb/flags/congodrc.bmp create mode 100644 plugins/channelrx/demodadsb/flags/congodrc_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/congoroc.bmp create mode 100644 plugins/channelrx/demodadsb/flags/congoroc_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/cook_islands.bmp create mode 100644 plugins/channelrx/demodadsb/flags/costa_rica.bmp create mode 100644 plugins/channelrx/demodadsb/flags/costa_rica_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/cote_d'ivoire.bmp create mode 100644 plugins/channelrx/demodadsb/flags/cote_d'ivoire_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/cote_d'ivorie.bmp create mode 100644 plugins/channelrx/demodadsb/flags/croatia.bmp create mode 100644 plugins/channelrx/demodadsb/flags/croatia_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/cuba.bmp create mode 100644 plugins/channelrx/demodadsb/flags/cuba_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/cyprus.bmp create mode 100644 plugins/channelrx/demodadsb/flags/cyprus_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/czech_republic.bmp create mode 100644 plugins/channelrx/demodadsb/flags/czech_republic_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/denmark.bmp create mode 100644 plugins/channelrx/demodadsb/flags/denmark_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/djibouti.bmp create mode 100644 plugins/channelrx/demodadsb/flags/djibouti_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/dominca.bmp create mode 100644 plugins/channelrx/demodadsb/flags/dominica.bmp create mode 100644 plugins/channelrx/demodadsb/flags/dominican_republic.bmp create mode 100644 plugins/channelrx/demodadsb/flags/dominican_republic_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/ecuador.bmp create mode 100644 plugins/channelrx/demodadsb/flags/ecuador_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/egypt.bmp create mode 100644 plugins/channelrx/demodadsb/flags/egypt_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/el_salvador.bmp create mode 100644 plugins/channelrx/demodadsb/flags/el_salvador_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/equatorial_guinea.bmp create mode 100644 plugins/channelrx/demodadsb/flags/equatorial_guinea_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/eritrea.bmp create mode 100644 plugins/channelrx/demodadsb/flags/eritrea_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/estonia.bmp create mode 100644 plugins/channelrx/demodadsb/flags/estonia_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/ethiopia.bmp create mode 100644 plugins/channelrx/demodadsb/flags/ethiopia_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/eu.bmp create mode 100644 plugins/channelrx/demodadsb/flags/falkland_isles.bmp create mode 100644 plugins/channelrx/demodadsb/flags/faroe_islands.bmp create mode 100644 plugins/channelrx/demodadsb/flags/fiji.bmp create mode 100644 plugins/channelrx/demodadsb/flags/finland.bmp create mode 100644 plugins/channelrx/demodadsb/flags/finland_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/france.bmp create mode 100644 plugins/channelrx/demodadsb/flags/france_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/francemil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/gabon.bmp create mode 100644 plugins/channelrx/demodadsb/flags/gabon_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/gambia.bmp create mode 100644 plugins/channelrx/demodadsb/flags/gambia_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/georgia.bmp create mode 100644 plugins/channelrx/demodadsb/flags/georgia_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/germany.bmp create mode 100644 plugins/channelrx/demodadsb/flags/germany_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/ghana.bmp create mode 100644 plugins/channelrx/demodadsb/flags/ghana_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/gibraltar.bmp create mode 100644 plugins/channelrx/demodadsb/flags/greece.bmp create mode 100644 plugins/channelrx/demodadsb/flags/greece_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/grenada.bmp create mode 100644 plugins/channelrx/demodadsb/flags/guam.bmp create mode 100644 plugins/channelrx/demodadsb/flags/guatemala.bmp create mode 100644 plugins/channelrx/demodadsb/flags/guatemala_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/guernsey.bmp create mode 100644 plugins/channelrx/demodadsb/flags/guinea bissau.bmp create mode 100644 plugins/channelrx/demodadsb/flags/guinea-bissau.bmp create mode 100644 plugins/channelrx/demodadsb/flags/guinea-bissau_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/guinea.bmp create mode 100644 plugins/channelrx/demodadsb/flags/guinea_bissau.bmp create mode 100644 plugins/channelrx/demodadsb/flags/guinea_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/guineabissau.bmp create mode 100644 plugins/channelrx/demodadsb/flags/guineabissau_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/guyana.bmp create mode 100644 plugins/channelrx/demodadsb/flags/guyana_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/haiti.bmp create mode 100644 plugins/channelrx/demodadsb/flags/haiti_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/honduras.bmp create mode 100644 plugins/channelrx/demodadsb/flags/honduras_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/hong_kong.bmp create mode 100644 plugins/channelrx/demodadsb/flags/hungary.bmp create mode 100644 plugins/channelrx/demodadsb/flags/hungary_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/icao.bmp create mode 100644 plugins/channelrx/demodadsb/flags/iceland.bmp create mode 100644 plugins/channelrx/demodadsb/flags/iceland_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/india.bmp create mode 100644 plugins/channelrx/demodadsb/flags/india_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/indonesia.bmp create mode 100644 plugins/channelrx/demodadsb/flags/indonesia_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/iran.bmp create mode 100644 plugins/channelrx/demodadsb/flags/iran_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/iraq.bmp create mode 100644 plugins/channelrx/demodadsb/flags/iraq_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/ireland.bmp create mode 100644 plugins/channelrx/demodadsb/flags/ireland_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/isle_of_man.bmp create mode 100644 plugins/channelrx/demodadsb/flags/isle_of_man_5.bmp create mode 100644 plugins/channelrx/demodadsb/flags/isle_of_man_6.bmp create mode 100644 plugins/channelrx/demodadsb/flags/israel.bmp create mode 100644 plugins/channelrx/demodadsb/flags/israel_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/italy.bmp create mode 100644 plugins/channelrx/demodadsb/flags/italy_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/ivory_coast.bmp create mode 100644 plugins/channelrx/demodadsb/flags/ivory_coast_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/jamaica.bmp create mode 100644 plugins/channelrx/demodadsb/flags/jamaica_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/japan.bmp create mode 100644 plugins/channelrx/demodadsb/flags/japan_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/jersey.bmp create mode 100644 plugins/channelrx/demodadsb/flags/jordan.bmp create mode 100644 plugins/channelrx/demodadsb/flags/jordan_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/kazakhstan_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/kenya.bmp create mode 100644 plugins/channelrx/demodadsb/flags/kenya_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/khazakstan.bmp create mode 100644 plugins/channelrx/demodadsb/flags/kiribati.bmp create mode 100644 plugins/channelrx/demodadsb/flags/korea-north-mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/korea-north.bmp create mode 100644 plugins/channelrx/demodadsb/flags/korea-south-mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/korea-south.bmp create mode 100644 plugins/channelrx/demodadsb/flags/korea_north.bmp create mode 100644 plugins/channelrx/demodadsb/flags/korea_north_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/korea_south.bmp create mode 100644 plugins/channelrx/demodadsb/flags/koreasouthmil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/kuwait.bmp create mode 100644 plugins/channelrx/demodadsb/flags/kuwait_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/kyrgyzstan.bmp create mode 100644 plugins/channelrx/demodadsb/flags/kyrgyzstan_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/laos.bmp create mode 100644 plugins/channelrx/demodadsb/flags/laos_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/latvia.bmp create mode 100644 plugins/channelrx/demodadsb/flags/latvia_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/lebanon.bmp create mode 100644 plugins/channelrx/demodadsb/flags/lebanon_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/lesotho.bmp create mode 100644 plugins/channelrx/demodadsb/flags/lesotho_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/liberia.bmp create mode 100644 plugins/channelrx/demodadsb/flags/liberia_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/libya.bmp create mode 100644 plugins/channelrx/demodadsb/flags/libya_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/liechtenstein.bmp create mode 100644 plugins/channelrx/demodadsb/flags/lithuania.bmp create mode 100644 plugins/channelrx/demodadsb/flags/lithuania_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/luxembourg.bmp create mode 100644 plugins/channelrx/demodadsb/flags/luxembourg_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/luxemburg.bmp create mode 100644 plugins/channelrx/demodadsb/flags/macedonia.bmp create mode 100644 plugins/channelrx/demodadsb/flags/macedonia_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/madagascar.bmp create mode 100644 plugins/channelrx/demodadsb/flags/madagascar_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/malawi.bmp create mode 100644 plugins/channelrx/demodadsb/flags/malawi_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/malaysia.bmp create mode 100644 plugins/channelrx/demodadsb/flags/malaysia_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/maldives.bmp create mode 100644 plugins/channelrx/demodadsb/flags/mali.bmp create mode 100644 plugins/channelrx/demodadsb/flags/mali_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/malta.bmp create mode 100644 plugins/channelrx/demodadsb/flags/malta_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/marshall islands.bmp create mode 100644 plugins/channelrx/demodadsb/flags/marshall_islands.bmp create mode 100644 plugins/channelrx/demodadsb/flags/mauritania.bmp create mode 100644 plugins/channelrx/demodadsb/flags/mauritania_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/mauritius.bmp create mode 100644 plugins/channelrx/demodadsb/flags/mexico.bmp create mode 100644 plugins/channelrx/demodadsb/flags/mexico_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/micronesia.bmp create mode 100644 plugins/channelrx/demodadsb/flags/militarymap.csv create mode 100644 plugins/channelrx/demodadsb/flags/moldova.bmp create mode 100644 plugins/channelrx/demodadsb/flags/moldova_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/monaco.bmp create mode 100644 plugins/channelrx/demodadsb/flags/mongolia.bmp create mode 100644 plugins/channelrx/demodadsb/flags/mongolia_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/monserrat.bmp create mode 100644 plugins/channelrx/demodadsb/flags/montenegro.bmp create mode 100644 plugins/channelrx/demodadsb/flags/montenegro_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/morocco.bmp create mode 100644 plugins/channelrx/demodadsb/flags/morocco_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/mozambique.bmp create mode 100644 plugins/channelrx/demodadsb/flags/mozambique_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/myanmar.bmp create mode 100644 plugins/channelrx/demodadsb/flags/myanmar_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/namibia.bmp create mode 100644 plugins/channelrx/demodadsb/flags/namibia_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/nato.bmp create mode 100644 plugins/channelrx/demodadsb/flags/nauru.bmp create mode 100644 plugins/channelrx/demodadsb/flags/nepal.bmp create mode 100644 plugins/channelrx/demodadsb/flags/nepal_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/netherlands.bmp create mode 100644 plugins/channelrx/demodadsb/flags/netherlands_antilles.bmp create mode 100644 plugins/channelrx/demodadsb/flags/netherlands_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/new zealand.bmp create mode 100644 plugins/channelrx/demodadsb/flags/new_zealand.bmp create mode 100644 plugins/channelrx/demodadsb/flags/new_zealand_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/nicaragua.bmp create mode 100644 plugins/channelrx/demodadsb/flags/nicaragua_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/niger.bmp create mode 100644 plugins/channelrx/demodadsb/flags/niger_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/nigeria.bmp create mode 100644 plugins/channelrx/demodadsb/flags/nigeria_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/niue.bmp create mode 100644 plugins/channelrx/demodadsb/flags/noflag.bmp create mode 100644 plugins/channelrx/demodadsb/flags/north marianas.bmp create mode 100644 plugins/channelrx/demodadsb/flags/north_marianas.bmp create mode 100644 plugins/channelrx/demodadsb/flags/norway.bmp create mode 100644 plugins/channelrx/demodadsb/flags/norway_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/not allocated.bmp create mode 100644 plugins/channelrx/demodadsb/flags/not_allocated.bmp create mode 100644 plugins/channelrx/demodadsb/flags/oman.bmp create mode 100644 plugins/channelrx/demodadsb/flags/oman_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/pakistan.bmp create mode 100644 plugins/channelrx/demodadsb/flags/pakistan_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/palau.bmp create mode 100644 plugins/channelrx/demodadsb/flags/panama.bmp create mode 100644 plugins/channelrx/demodadsb/flags/panama_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/papua_new_guinea.bmp create mode 100644 plugins/channelrx/demodadsb/flags/papua_new_guinea_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/paraguay.bmp create mode 100644 plugins/channelrx/demodadsb/flags/paraguay_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/peru.bmp create mode 100644 plugins/channelrx/demodadsb/flags/peru_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/philippines.bmp create mode 100644 plugins/channelrx/demodadsb/flags/philippines_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/phillippines.bmp create mode 100644 plugins/channelrx/demodadsb/flags/poland.bmp create mode 100644 plugins/channelrx/demodadsb/flags/poland_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/portugal.bmp create mode 100644 plugins/channelrx/demodadsb/flags/portugal_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/qatar.bmp create mode 100644 plugins/channelrx/demodadsb/flags/qatar_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/regprefixmap.csv create mode 100644 plugins/channelrx/demodadsb/flags/rep. congo.bmp create mode 100644 plugins/channelrx/demodadsb/flags/romania.bmp create mode 100644 plugins/channelrx/demodadsb/flags/romania_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/russia.bmp create mode 100644 plugins/channelrx/demodadsb/flags/russia_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/rwanda.bmp create mode 100644 plugins/channelrx/demodadsb/flags/rwanda_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/samoa.bmp create mode 100644 plugins/channelrx/demodadsb/flags/san_marino.bmp create mode 100644 plugins/channelrx/demodadsb/flags/sao_tome.bmp create mode 100644 plugins/channelrx/demodadsb/flags/sao_tome_principe.bmp create mode 100644 plugins/channelrx/demodadsb/flags/sao_tome_principe_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/saudi_arabia.bmp create mode 100644 plugins/channelrx/demodadsb/flags/saudi_arabia_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/senegal.bmp create mode 100644 plugins/channelrx/demodadsb/flags/senegal_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/serbia.bmp create mode 100644 plugins/channelrx/demodadsb/flags/serbia_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/seychelles.bmp create mode 100644 plugins/channelrx/demodadsb/flags/seychelles_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/sierra_leone.bmp create mode 100644 plugins/channelrx/demodadsb/flags/sierra_leone_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/singapore.bmp create mode 100644 plugins/channelrx/demodadsb/flags/singapore_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/slovakia.bmp create mode 100644 plugins/channelrx/demodadsb/flags/slovakia_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/slovenia.bmp create mode 100644 plugins/channelrx/demodadsb/flags/slovenia_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/solomon_islands.bmp create mode 100644 plugins/channelrx/demodadsb/flags/somalia.bmp create mode 100644 plugins/channelrx/demodadsb/flags/somalia_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/south-korea.bmp create mode 100644 plugins/channelrx/demodadsb/flags/south_africa.bmp create mode 100644 plugins/channelrx/demodadsb/flags/south_africa_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/south_sudan.bmp create mode 100644 plugins/channelrx/demodadsb/flags/south_sudan_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/spain.bmp create mode 100644 plugins/channelrx/demodadsb/flags/spain_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/sri_lanka.bmp create mode 100644 plugins/channelrx/demodadsb/flags/sri_lanka_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/st_helena.bmp create mode 100644 plugins/channelrx/demodadsb/flags/st_kitts_and_nevis.bmp create mode 100644 plugins/channelrx/demodadsb/flags/st_lucia.bmp create mode 100644 plugins/channelrx/demodadsb/flags/st_pierre_and_miquelon.bmp create mode 100644 plugins/channelrx/demodadsb/flags/st_vincent.bmp create mode 100644 plugins/channelrx/demodadsb/flags/sudan.bmp create mode 100644 plugins/channelrx/demodadsb/flags/sudan_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/suriname.bmp create mode 100644 plugins/channelrx/demodadsb/flags/suriname_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/swaziland.bmp create mode 100644 plugins/channelrx/demodadsb/flags/swaziland_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/sweden.bmp create mode 100644 plugins/channelrx/demodadsb/flags/sweden_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/switzerland.bmp create mode 100644 plugins/channelrx/demodadsb/flags/switzerland_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/syria.bmp create mode 100644 plugins/channelrx/demodadsb/flags/syria_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/taiwan.bmp create mode 100644 plugins/channelrx/demodadsb/flags/taiwan_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/tajikistan.bmp create mode 100644 plugins/channelrx/demodadsb/flags/tajikistan_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/tajikstan.bmp create mode 100644 plugins/channelrx/demodadsb/flags/tanzania.bmp create mode 100644 plugins/channelrx/demodadsb/flags/tanzania_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/thailand.bmp create mode 100644 plugins/channelrx/demodadsb/flags/thailand_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/timor-leste.bmp create mode 100644 plugins/channelrx/demodadsb/flags/timorleste.bmp create mode 100644 plugins/channelrx/demodadsb/flags/togo.bmp create mode 100644 plugins/channelrx/demodadsb/flags/togo_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/tonga.bmp create mode 100644 plugins/channelrx/demodadsb/flags/trinidad_and_tobago.bmp create mode 100644 plugins/channelrx/demodadsb/flags/trinidad_and_tobago_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/tunisia.bmp create mode 100644 plugins/channelrx/demodadsb/flags/tunisia_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/turkey.bmp create mode 100644 plugins/channelrx/demodadsb/flags/turkey_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/turkmenistan.bmp create mode 100644 plugins/channelrx/demodadsb/flags/turkmenistan_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/turkmmen.bmp create mode 100644 plugins/channelrx/demodadsb/flags/turks_and_caicos.bmp create mode 100644 plugins/channelrx/demodadsb/flags/tuvalu.bmp create mode 100644 plugins/channelrx/demodadsb/flags/uganda.bmp create mode 100644 plugins/channelrx/demodadsb/flags/uganda_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/ukraine.bmp create mode 100644 plugins/channelrx/demodadsb/flags/ukraine_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/united_arab_emirates.bmp create mode 100644 plugins/channelrx/demodadsb/flags/united_arab_emirates_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/united_kingdom.bmp create mode 100644 plugins/channelrx/demodadsb/flags/united_kingdom_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/united_nations.bmp create mode 100644 plugins/channelrx/demodadsb/flags/united_states.bmp create mode 100644 plugins/channelrx/demodadsb/flags/united_states_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/uruguay.bmp create mode 100644 plugins/channelrx/demodadsb/flags/uruguay_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/uzbekistan.bmp create mode 100644 plugins/channelrx/demodadsb/flags/uzbekistan_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/vanuatu.bmp create mode 100644 plugins/channelrx/demodadsb/flags/vatican_city.bmp create mode 100644 plugins/channelrx/demodadsb/flags/venezuela.bmp create mode 100644 plugins/channelrx/demodadsb/flags/venezuela_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/viet-nam.bmp create mode 100644 plugins/channelrx/demodadsb/flags/viet-nam_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/vietnam.bmp create mode 100644 plugins/channelrx/demodadsb/flags/vietnam_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/virgin_isles.bmp create mode 100644 plugins/channelrx/demodadsb/flags/yemen.bmp create mode 100644 plugins/channelrx/demodadsb/flags/yemen_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/zambia.bmp create mode 100644 plugins/channelrx/demodadsb/flags/zambia_mil.bmp create mode 100644 plugins/channelrx/demodadsb/flags/zimbabwe.bmp create mode 100644 plugins/channelrx/demodadsb/flags/zimbabwe_mil.bmp create mode 100644 plugins/channelrx/demodadsb/icons.qrc create mode 100644 plugins/channelrx/demodadsb/icons/aircraft.png create mode 100644 plugins/channelrx/demodadsb/icons/controltower.png create mode 100644 plugins/channelrx/demodadsb/map.qrc rename {sdrgui/resources => plugins/channelrx/demodadsb/map}/MapStation.qml (83%) rename {sdrgui/resources => plugins/channelrx/demodadsb/map}/aircraft_2engine.png (100%) rename {sdrgui/resources => plugins/channelrx/demodadsb/map}/aircraft_2enginesmall.png (100%) rename {sdrgui/resources => plugins/channelrx/demodadsb/map}/aircraft_4engine.png (100%) rename {sdrgui/resources => plugins/channelrx/demodadsb/map}/aircraft_drone.png (100%) rename {sdrgui/resources => plugins/channelrx/demodadsb/map}/aircraft_fighter.png (100%) rename {sdrgui/resources => plugins/channelrx/demodadsb/map}/aircraft_helicopter.png (100%) rename {sdrgui/resources => plugins/channelrx/demodadsb/map}/aircraft_light.png (100%) rename {sdrgui/resources => plugins/channelrx/demodadsb/map}/aircraft_space.png (100%) create mode 100644 plugins/channelrx/demodadsb/map/airport_large.png create mode 100644 plugins/channelrx/demodadsb/map/airport_medium.png create mode 100644 plugins/channelrx/demodadsb/map/airport_small.png rename sdrgui/resources/map_antenna.png => plugins/channelrx/demodadsb/map/antenna.png (100%) create mode 100644 plugins/channelrx/demodadsb/map/heliport.png create mode 100644 plugins/channelrx/demodadsb/map/map.qml rename sdrgui/resources/map_truck.png => plugins/channelrx/demodadsb/map/truck.png (100%) create mode 100644 plugins/channelrx/demodadsb/osndb.h create mode 100644 plugins/channelrx/demodadsb/ourairportsdb.h create mode 100644 sdrbase/channel/channelwebapiutils.cpp create mode 100644 sdrbase/channel/channelwebapiutils.h create mode 100644 sdrbase/util/httpdownloadmanager.cpp create mode 100644 sdrbase/util/httpdownloadmanager.h delete mode 100644 sdrgui/resources/map.qml diff --git a/doc/img/ADSBDemod_plugin_table.png b/doc/img/ADSBDemod_plugin_table.png index 97d70921da8df1df38a3f879428f53332f1c87b1..70d566d47a1b99ef0aac56312fbc64289af0a994 100644 GIT binary patch literal 60436 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 Pmx!0Xwy{=?1~l?-3%>Iv literal 23970 zcmdSB1ymf{)-DP(E{!+VxDz}Chu{*NkOX%P?(Qy)2X_x41b2eFOVGw$f(1>G+u7&r zbI<+X{omPlj6L2RZ;Ya$sH)jr-&||e{N^`jN2)5zVxg0w!@U*9L{c-amaXB8U1}JG{R^?$>ie{B1bs2lFaq>q^YPb5s z6Wn2(R?X4(QCRVJ$oPjc_34A(g~g&0jm2uykStXdsPc(_w5De^Q@%9FIt?*6E>#Vs z{E_)EHmVY0A!Ysm<@`~7P4|7GxWW$;i82QRaK5gc$fgXbc&@h-^)my6AL==NfSOAn%zZevIMIf~ z^0*|AbqVdnKBmC?LOn@$gMVJil8&WxojlJdVnn|9#fIq5OU(;CCg2|ravz6Qobxu6 z0*}%0*a@~p#UDj@o>M>2WIVispB{v34{TyKRdn<{id!4H@1yXVNbn~7r-k(7C6T>} zr~8SgTqM%f?P?+vpLb_OIJY5rPyS>VpG*vXS)+t1^ZAD|l4)qI>3hZCzU4hxG*EVa z8YJ~#xc(Q4jP>5Yv$&_*xTiDhr*+DIj1$E~gBBJbEI__%-VukVY<{t5cxq<8F}2WsJl@nKK&Z zGjXT#=N^;f2FLT1O_9AH2e-8^f7Px%J*?ee_i%?t2|ly5F*@NdYY~{787ARj$Zl%a zkjA2RtB6rFczFcI@ux=f`H{JHj~_+0`*^-T!Rl{g)xLLs;v&ZX_3E?zUAR%Yq;xhR zPXnhrSYrjeZ?%I-nxqWXFE0qg5qc|A@+H?57|{`r2o>4$Ui-CriUh4X)&6R7cR8ct z4t0i(rUziG*+0zvbwigqwPWDEYKh1%&M`-$bddWs~O*Nbn0$!SpZrtILAoXNpM7I7hx;*tk+_ zgbfVbd@E)z$eS91f3XZ-W(DWm0s+70< zid#r7_=tu-T#?g?2fNUu`$BcKGF~ECrS6r{0vGVJ2`EB}a7V1r#nen%1tpK%=rex2 zK^b~^Qb%f--917nyq2z2`_>g*z3Y8q1IOOQ60h=5emsBw@>_H}BB04iqlL%Uz2gP@ zvrjt?#4>8Z4(TKM1m>TPe-(gF6%WAjZgfTGX{i{&>_Ciq2HFwYzUcSjzX7q~WTv2@ zpojpLTuLuiq?6mH`D$!c(OQ4L#gM0J-MhaXc=;IFr{@YyPHo>aB}~}>lA_bR!0ywOLB7tosuH1^~DV%WQA95uohzj*L{fIyo z&K-!VLUt>mi7*vcg#Us#~8wUi6>D&kr4W9ww zJPx4!m4eY*S@->YPp41U5X0DCoDJh9F}MiADrnNcNaa^DS|(I?)_fP)RlvHTIZJc# zEm7A+H#dw;H=dvu#|)N{>1-a+CGmU-0Qp6=GORblmkix4Q_dD>UPjupC#hAmYd!uI z5F#^8Tv4Ik44b7sp$5j&SSLk8ZEf1Z>y!qSuS7&)X_G$WU%F#_@6S3S08%ntwo?|H zIz975vf3;jz-@V`yIZ_CKSSuHZLbp3vs!HZnVTMhnTBj5LE;Oi8rs*yIB%+}@JFeI zmfwi<9|~c7QgAbUFS5JSomXg5DZlWVM{Qx|=*H8GqpjaPOVl_ZJ1c7;Le8<86hiBU zlz$DaFbr2Sev|x7?V0f!e3t`bHF~++1zTT!O1&oX9P0^Fn;QLnC|$s*fWy$;fr|g( zi2$4~%xk_kU}9gyMr;-A#*-ggt$gGCo(&2m!XT=NF4N|pIAee z3UX>J1|W8IoeM7=2zNiVTMPLXVbP%HsLox&Y+4NW0e?KB%sFIvqp=5O5#_jtgWqc@NRQvLq4Cr2nSz%ItkVyFTXIGL>oq%DMvt&*dm&Rin zJ0j2k8CMinpnQ5qSxh(o}s?6w0%NCOB+4sUce-9l;pC{PMji6iMQP z7(2G-jGl1y>G$RV8PY_SX6<^b-`!e1V*=e$k<7`GpDDke|NMIc*-SR&ts)o*h4 zpt;#;(t1gPurl!s64cHH(>Gc2aj`%@lV87q@6~%1vQrp79Kh^m zP@r~Mq$dX^$$p=!5VQDNy0~zzoe+gb;5(`IZy!n#!p`hoR%j(2lpbwcjL z0slq1k?UOemR7LYHU#BRhXG}2e}Zm*&ZDxzaeldfeU6I4TqV|!*7wYCPnJ>IzK2V#y~5Biy)a*QHHUlcqPv@yI|gV===~zN!)9w&w})RK5l> zV=`22a`|ESRY#ipm*e6-^u!v!lq9<;WxUlDCXHQ!&$q_w{a%F*1)+?5LNOWD)|J%_ z>BX{$0{O2^2LD0SSqYN~Rgjf>6Y1b+WM^x8ol7 zSV+d8M;36;4z&B8$Cs z4K+T)P-jd?kPwc;7$#`tn3P+=;G&z$h&P2OznFL-^NJLq7s>4XijL!;o7=M2ftAto zazidK9ozVT%+L7hVj%w8xK_<94U@vz7*pOWtd>YH29af_^LbtG+_KE7pdDGY4*Fhd z6FyPQ+v)G#JIuKICCIO;y@lfHKXgGxHwcX07mhb!+T|AJI*NePyG~%_imPZM`kqpcBs0mT^K0|=$IH1PKeh;!&lV-DaEInIH za#MUu8HES)(*9%4>nZ%gV9FX)_E{diGy75_g+!rdXQ7P>xz5dM}l8Tk1ybXzEh#%g)6e#X??x0^yJUcuwtsk2T3J zPP*17M!|h}s6V5%io5B_8KrDTwh{O9g3U;L%Mu;RN zGE)CGMO?Mv8{W~}CWHI+&23vz6J%tFt1=x;ISa;j^^ALPys#{}WCR#IkkAj%*!z@% z0>xsCM9B|wxh+0_z+h_D6ONf`tW#YOy_TRAkP7n}ZB(>Eob+=Wwx;E~jhM8;g~Tuo zG#Zs@2`-#%S16T)x)m^`V5(sIIb)EjU*s&BanLxqcga_b<6%`{F3k&x`=Chh9_AQnHhkVj0TOEQ1N&=h8pt8GG{=_wOW3G^c6+&1QHlxcI#r2E zL0rn=GT<=Kxk~l?GWx1E?4dRJBr;GAkhc$JxMg2U{$^c3+J|mlvcbE?O5x~;$13y| zb@i6G7GU__Z>X#mQQH0hCms8GIoRc$Spb>aCDu3$o-iN-Jc-+ZN zQ37s3YTPt%b@{&6L^Uz+j50k9P1h)-jd=SCEjhDraUFHhuoAdYHa1+Q^y^?;Wwj4a z%QeLIR3IDTQ?-5vVFHtSi1}=OKx15Nt)msb7Un~p-PWfj*jf_ifX>-dn0+YlpR@F7 zard!~P^VSxSAo`e-UW0i{1i7l-Q8Y;anqZL?L5=fYeQ)R8YGo~M%x)49}Sa^`a8#~ zO?Z=K>o)b5mM;LpGWAW_FBdI9DceOq2I~{hxu03LrdJ!KoE=t-h0ki<^IF$_H|T^ELxSBtvwtaW#>8b^ypwN=Ij(faiBgI7F|%pnF^zWwgq=P zobS0iI$BcQznjeZ+{k#|jTbX0J5%Q^+!l&n7dvbP_-IaiA?W5=F=JFfW@j#yU!Xun zfAUUxf&O>|%o#0&WC)~qoZt7q5E$~YNL<&&gA6(2j^s*y{aVGC zLmaN$k!lH3-$0iORe-T$D7y~h5VYW-MMebuI!D`ByV7^h25-#9&rD(lfu~_~Yw2VN zoFd3b?El<|wUS{s07ZV+4xeoxui#R%ZkvJkj8ZM$nEA#w`)%Ci1xk0zkWt&~IUwmq zH2;@Cv5eq(p2DZQ+$R%jp66t`+ql~H1g>qW~0xp4W9nvt=P^0!ApyWw@?l6@8 zP-T=R%5d3Nb|c|jcMTh!PI%-kMg1;_A}M+n1FRG&1W?Z0&`bK%-liQ267_B)Czmdc zbis46Hd-!PbmPc1l#XFSLD%*4KEp$6jeI$fWHBZnc9pdr~6f` zyI3My?bwESsRcn#uxZ`&b#PE!8l2c ztZ)GV<76tIzMo$k`fHOs)Nlgeo%E8Cb;Zd&rS$_dzzGHYqRx$KcX~Ne2fq}l0 zO44CE{CyjtcX{)mw~r?8OFi?P4IZO6zn0M4J@S6257BKx&v-dt7r(_0Ny0_duKDll*A z6^IK<26XoIKYPwJKPmhd1f)0=CXOMPWU2Zp_-f9_o2dB z3^w4`PXuHiAF`f=$^CD`{co*1uB{)9G~xA5B_^6P4pF$WU5zMWj?hB~UcI_H&scy6gE=;-}1id5oQlO+AC-&=kv-L3N* zFrPn>*Mva$3k4sg-PqvrOn}JeEOC?R$Yq5$vpB{B!-JPswcYR=q*pmJy|5I6dE}R& z|7gYR~Q$Unz={vurnSZ)WrtaCz!$TQk;yit>kAb&?<~{zYHBN={RKGbq^B1E64_udx2}74{#o>i3){O=yYERYPw3Hxz7RoJUI=LAqdX~T!SSD=K= z_*O*a(%0r2AO-bzW$CpWhjbH-SJ!B7Qza&rBrQL_=Krk8q{bp$n3O1tNs3>#!L^NM zx3YDj zT|u_$FTx`YPu+1}RurNqJG-upuo8{Gy4y6%fXT@m#ikNL3cOTl@;AsDNTURR#OwI= z_H^kCeS-^CmI2~$7VOM(&QE2+qV)&5M(5Fc@^X%O%0b8;!y0BFl`K?WItC8uO66-G z1^X|Ct_y3k6tW80-B!|(g|DiO*LY19=YtaRx!^sUSvWm?;z!eddH-On-X+;I7J9k5 zQrz4{ya$fm=e?kKk@S4PTM`-|QoFPc+EzN7*uoe!V$f%HO0D(v0dMXAA@Idyn>o~! zLPL^KY+tdip?Y=gKVB#+1b5NxI_4gE%GG|y`<3!NTw=_ytj-t_p{@mb#v<&(DL<&! z14G6n{3Z)$>b|xw6!nn|0YS;Lj%2FNUeTy6Y;{wv4!t&ij;4s4-uEw(Lf;_9YYI|nwyu|>LQ z%)oW?QK>Ud&tW!-5@5Uyqr|rl!e5TQ6BPiZw%_n2rU-6YN!Rx!Usw`HQ^qm?F(LBO zua70DtG*ND@lai*rg$?THTKEyr%;EZbdSdxtl3YnMM80+$KkTi^`^0O1_s1k`1jK? zcy*+?j8X%#2_(>;u0DmoH$;f1X2l^g4o*j-aQ9G=9B#lsT?PheJ|_TI!=TU_aI5>2 z-;=$p@L`=au4B(f!UN+btMRKI;+nJiLNBV&cYcJ1F^lFBfr9IamI^EsM@k+COY&Nj zwZ)9=@L3~128fjNJ&w6}7=HwD{`Z*7#kI!kYM1c zI%ieKLP)zgdgnT_!b~w$fD-0Lq+GLdcc=KNv!!D+62oH^#(I{HVW0P_i!NC~7S48jfM)P1_7* z&~UydG*w_xr-t0oieGMwm>CEzAgGo=#4#*=ZIxBi2l+_RlH6)>ABibMw6fwX#(-2; zAaOO-Uu?bPPd|FG62=J@H6Ruwcp`6#evt{t|S( z6jZtv=mxi+6n<;A0Sf1DH*80shmbVCyiLCw&c+4_pc;<#=f)9)mjOtV6>B_kxEJs zA6pF*GPizjNX>>ns?NdXJ3Fi#V~cIZcKaS z>EW}fIlF{`1=b!owqL$mn&O%fLqgaJSm(~z$%H1-g^BX?C(6twCpXPisxxVT zZ}d==y&ce=7Mw5LAU1I~e#WcG`Qvs{UINDuf&2+i&M_XkGcFTdG2U(B#NPLcLAn0m zJGPcyMav+n_90I3mDfmeiDhpJ^YAnRK)iOMMtQphL;XOK1nkgj3v{hq>N&VNr1>QV)f@ZKY#3aDN#@W&6yJn1~34N$urC_VfH+&4bv&b zna$SgSD}M)_^dk0vk!-C@vxX7;<-Ts6LvwoZ!kn$HPdelr9aOylqA$Yd|g}3*p4>! z{t-&T-EY`Z;omkT^JpI7-S@&tA&_Cnuy{a^g4nqDcW%XtaX%U^{Z;x-#d;f@h zD;dr@wY^T%b+_tI1(bfrfh8|{I?+jW(*BGtW1}MPo=+e76OkRzefZCD@Q=2%G|ElH z@n1&3NqLrk6Wl@p-7gMBN+SiLOvdmGlK%W?{|`#wAl4+)zQ@BQ>sX<+Y0drLiH3wg z)cLZTEQVdC*uN`W|EsaJ@MF%8?+B=8O2+!?0jdbe_ljpGcF;-pOb zS#lPZZ(@>>XNjnGL07zhDz$?Dl92Oj?Zi8(TV_pVMvn6+g*puB9;4vSlG?l-lH~d7 zw8~lu+P3kSlx;;-kjQW-oDF8`6F2IirAPA~GHIaQV#S7X&6y8(vBX@O8(^f6|Gny; zEJj$`0(G&RX@f15_;bt!5t1R@_Hcti44g}orz{G!d*T;^)#`1ww*<`XgneD~ypk+U z8rL0?h=C-TUVuLK{Xy$Vb)W{bdtY(61LR%X9@OtF_T^XqEhQva;Q>};oa`(*mW440 zztm?G60LIB0w!&0Lec?Kyj)%L$84Wc>NMweSqLl{%TmN(uyXf<(6I@?jhVY@{j7Ee z9c@0et7_F?H|MeCjhO)yrfeg=u0L8#}(IN~=fcj^5CfB;4+l2!Gi{jKeY130c9D_cgoe+(t37`W66mozEDdj~_PV_P2*+Hh3xYP8gL=3m4NVQcSA zrlsmTQk7m9yL9UQVrsX|L3@VT;%7Ec(0In=Ll04Sy$!o_36_pRVC=%1e1zxPm&m-< z%%z~R1zBdcdiZ}Z7BU!PaX-?A34?K`t4$4<9eV*^f3@b}_H`bagTUCJObN`J&hht9 z_{Q|-gM^l((yO?;CJuP+RpL{sE_uo+kD1<%1vf=vXYdfGlJdPhaUO0)y=B#dC|{VI z&4Gv|_RK2+38X;p>svHWa)YzpyxB9IR&)P);}CsgY&H^iA6Nmzi1_~7&qXXqL8^2) z=D?Rq_?XxbG$wM%ob_ugQ6EOM#j-L)HYPZd+kMf5-rW|lk?ZIwOzxzrt1>DWV~JmO zqZ2u!@}nm-KrHT}*OqvX#twPQ8wv>ecu1J1$FOO`tBRF;kH^9Go2S)#D{qdq4rJee z895Mx5&Muo*-^K{jgww>?W|UD`0+SY885(duzP@YDsg3#tilZCURx~(m4;KyLPN>} zc6?dUTO)4uH#6(sh`hwENDw+${>JWsspqHxh6iz3+TgZPHyo6aB6w2wDM!#zhY zB;C$csH`MjRg57HJYo9gV0n`mx<~tlIpAnao^@}E=X8v6Q5gq_0YMuac@sFaWn$P5 zU6WK=*i$8^JUy9)YH;(%$kMbx+GNMJN6%Mn-e?4n7=I+uw9l0@{&X{A@MyRtLWe&xCoE!S2w=$~SJ_QMBH$fI75A_+Z2P zY?z4PGb7yb5Mf#;vP%RVsFi{T*A^L!!;O^j)mPK5DoG;#E_PM`jwFqSmpFZ49l1f` z(8yaeByfeA0_T+yN4OiIHxxH8#?j2xF*Zh59EwOcLVn zL{j%RCaj#Dee5x3$C1=n;8$TIs6I5*mteNRxJ@{p57GC}OO5%Z0^Dwbj`Nwng0NtGs(m`gh`6B;vO8;beR{&-rP zgPj%HBT@ZAz>ioqd*)KHMF-EVd$zT!qNmj|DC~%E&p*ezneOy zldJ4M_)1`CeyyW}j7U*RkU}S_nIs}9Gw|45i6hi?L%SfF4|#ZJydFK%t|!UkoA>yU zd)#s=81A3ECGXbI5hG||Qb!SrF|`te44jMh?w9ULGa8%g$h=kJ5C-|_)$KR1PU(0U zARS|jIUHcc-1NrK?nqQINW zHkyyLrmoa%k*VX|Kd4`MI>nooQ(!|x7{CBicZ>|*axy9>J&d@(2JD~%6+q3K*wWnw zS0tgWncn9hwzjGMx6+YogbOlD5rS)6)6qfJ4bug475FW^`xHcgO;h^8sQ|J9d$_mB zcUBE~CHzf+ka(w5mZ%mfyfn3MWM)zMgDA8iVtq1HyX-nF<2x|2a{eAh>|u2!_P*ZH zkbm-)W_n@SV6+g%F^PVsWJJsLP5l7(1hW`(#H;inN9(R3T~s%cs%Hr+HCNA)H74Z( zL`d&t60xlU6ZbeI^f!Z&s5L!_;21W2@J`0mOgK?V5HDPXIh)vCPsn;@(|-vG;im2; zW`7EepDjLnl_P}ic@Wbr0Ll5itOkFG(o&G2`LN3cBozUtNL*tTwak3E>m=6Rsx)|X zN3A5J-{o~0I-SU-Ho+_z`8hylYokHH9V(shiP~j8a`JpKO-KyjOsSz0DNJRUUnq$h z8!difN@3bSON_qS;wPy}fKuq1cI4;)xQZWU56#BLSbULyXg+)OGvWt(m5me?cCrDB zYe=OJb8Y&IvoOSYkI&w*cOPCzJunJgh?FvtMw!6<*YtmQU(wIcof|HR!^JFzi^gBB zzo=97|4zs|zX(K`n|4m!B>e&#ZgqJ#Si*9{#s7<(|33B8UuHXi)D#T3 zi9btL)!2LV>}g;cgXkJI)H#c9r5nIU<6Kr&8`KZ_e-&7MNAq`oZ#4hgWcuH0@-NCj z{|CHsYxh{=L`YXOZKRs@SMWE1^S_Sa&HpI07TaW#j?8qp< zYkHmT+Qm-)SAJS&bIm<>wWb2etPjj$3rbr6>@)(!-Op|7%`pANE9CiiABX7eFfGP_ zt$-{S&37C#(DP?a)it7N287_>8sl|5ezKzc6Hxd8NUx1 zxC9EE**e%-o)nZ##yjybUCk_Aj8}JVAsJu^6~{lwmCEng`O`6er)#W@3ev+UUD0^6 z5xv5RQ+@wp5L@~D4VokdAm^dMC^Vr}L$~9gFDF6)Ws|kRDIF58?OuC|kNk5O!4xIL zDNry6gE&JrGyPU3md8PMocIqtli0Soy}dqn?YH9MFop-yTAWT#gG^Py1-RV~&K-u@nN?oHn!F{(Z3%cW|llL*~VREaotV4 zV`WxlRE+?*msdznFQXy3_9}VEoyPa3%QwZ}+v3yl&sPtwUeu&6St*4iSF7@)M^X@y z;^SnXZKbf|K)-g$3k-d)C}{Xfw;@Ox*L{AzSM;+W57{}ShO>@!8qpE2Z~60FgXlpZ z%6Xf;Kbu`1#dJW^DsjCAPQ+rq@?a>J89*Vy=$hw7YfZrkGT*uYTNts=ZO$ zC*6NfbP|*@ivq}wM8-zK&!FHoCL`sqO)#KhqtKZ|740iI7zM}HY)aV)5LX6yY=1n- z5tM%FLsBVriYXjG)}n9NMJPVdbrMym$qEFApIvuqO9;&e4P+ht;tge`<>>OZ#KTG% z4~eL9KIHM3uV$#UXJsjUk)WOu-o4x_g$*MpOk*L`7-iS8bFzS+!e7;m)1Yk~51CLW z%}J@oDPUPTRAwBEC?w=p7^Hf3=s+}H=-|`F0h)8bjRk6o7S+FBua?fla=f`wbhbj8KSbAQFb52uzwHZ+MDLxqL z#I*A~rVuw2C&UocJ_Zv0Fw7OJ^?Z=!;|KH#W!Xee&8WZ@8g+0y!WrMtaLrD=#?@C& z;}k2P4Zanppvrhx@%CZcQP++3338#6HaxYN7SpJ6&i+(B7uS$E|Hrb`AE$H@L_WZT z3ne=N)Lpk-I=c|xFRC4(QBkcH0S}$TSr8^(d8LGLfKm@NV!l~|OjXi$T8r)7Pb+(D z?hvF+2^$AdC`FpCK5XE7b;hS$X4aja7yRaEYUCrKfur^DcCUDeMI@ewfHR8k=$n3L zta1_cJ8J#K_clKJvj?9FFtdE%+`Mh##iXH@%!^-aFfrJ_==993vYukJ)TDJ|cI)TO zI23B$v3x~OA?&8X7d~EAdCaDFrV$~NgdhuAPkd!+hHx~~Zb|{N6F{P#Uq@S_$gwdM zU0tKq1CtKCnG)e$A;8bJ zu<3x2Lcks!ogVq2XUxg52CD1IatS9130E*{qPpG`b(usmi)|+gn;P0rJ{ERpXB?5IRF{u0;N zRVBFMdZBeCriV>|awY}M653%a3qJDIDr*@PI?I&Md&z}H6!h)eQK>(h>-$o|4bvLc z`!^y}!4f72g3sS{A#4mL=CU$tREA0pu!XC-ku@MRnl>ttVzaHQOB3=6!a&G3wr0i> zyh|IMt{D`KNU}uxim&sM4B;U;sML;}yLs`dA%1w|h5bchG7z;unp{{-F)PF&@FN(% zjV?Rd+tmHN1LPzp_zrpj7_k5~Z3}PZnAi(mQ68T8hj-$HO7>tN^^FsdRZsB9#q_)+ zNI*`KH$7$$b}+|snl$F!71-{y!)OlHc63mi057@-lORxYur*{MpRx2LUA=H}F-&WZfbGqH}__S$^O zDtR5ote!l92&TPh0q+$O&7{mrI0qLu19<4tt~+)@H#wst1)@o~i_}Ipwhb4ZST&Ha z-qD~t+8+5{uwHT5D`4ad_j3V7k+Fltu;o}62P4V`{@VOnCz=muP{^zAb+4FB@=<%G;$T^>Z9)7nRwgN4s*QA?z*-qn_Sa&v z^U5o>M~Lo1NxLl-7Hw0=&OP`kgW%wSLVzQUrVV;|UsTLRyNoC@tET@5jrY)mhbFdJ z2+47O;&b?Y=LsWDZAO8Nx0ctw&x(Kx&nhC2e~+B)1Dvu?3b;2Rx}6pv__}23%uKJ) zW=HFJBMRGSzTfy5{%&b%U)pr{+jDnYb-rI4=dyXkBEQR-!N=<3g8Q$bExvK0?~NmB zc9GM^D6fWv;HTJ>!9QgefqEAQawo{U*1cnKSjfluK!W`5B}&d$X>BdT6JG`8cmAzj z>c0_3be}VvxQka_Sls^cR{vhs^mj*!f01CQ!PKNtHSpglK&-9CtvZhz{U`D0_sZ|r zPw|)J4+{T@K!p*c0E>UM!KH3g@+JI!cATP|2#jaiZ3L1f2x!b|iJM^jr#dP>_rE6e z{6*IAJFj+nBKv=X4g5tP|7M2n*MEsb{@ugD?^NK+iKwV=oA(Zd-AOL%6x=rN&HedF zN2gTx1LUCRwYwyM$gQFCkoX_c%Ph*8g+|m7)t#Hrv{LGOhChUt=Qs3$Nr_6baX?N6 z9ml@HMgD%?lmM`3Wws`wfRRWY)rtiA2uXw^=QyG)pGYd3FICy|%7TU1!cfU?^5GHh zJwK9qi;|TRF1)hl+_vf~76tJzULY-B!s(Ezr31(|0>}))&naQ+D1|dD4ue*yFA)3TLkSP!LK_GP7|TpU93AO z@X2W@pBUT!n(t4Zu)fudDXd-5Uknx-ZI*k;xEbBA2gy9C5 zm(u6lC;9Nr(58(Eyvu2Nq5MWMOG>B}bJi)DN<=2!rKQ*&9pmUjg2ZsoH{*k3SVfc* zTX6tDB9&`#k#)Y3{NtEX#B08F(l6cfyU2TQOB0LUmFR+KjmpJPU%g8qj*v?;P zSwN{rLYhsn<~Jd}1h0g3umn=q^`A!5B@dKiPO;cCWKWPu7}fbj%x6H!(2pT&@J z5L1xitM)r~$M4?@%}<6FY{SSO&gl11c_`{HiP(aWU@E(!&qdiWV-AKm$|a8lRbr^z zz7~|2$8?L!&Hc`ZphK#EP@XDNJme3967K^Kv@ms8vuV&qJGC`C@r~bQ=x_@0?#gr~ z|IFO@qjYT3)Aoe#%gi47ZBA0iJBdKR<}xc4CmRyva&r+f*_r>%FmfLeCHZ(hFy$TI&vq%nfMNkn;dz&_IpG$_$yoiZdSFy5HvISmc0zI z=?$sucA7|4Llxtrw{~ciEJILWV+tLg%w-=q|wYUWXt)_YtD?91rfn%+4+NM&3PHg^u!y2b%%(AGn z*yS!$O)Y+q)LK6rOI(jHKjde0cYWl0xRBgWAfd>DoK5}Fgf15uliy`yXvHb(DR}B~ zo`H3mf}yCG`D=bVH31`fWvhdjq&Z{FpndBxZDf_r`V)Zzx7yPjzfC# zOofht6AuY=lW~?`$zZwO`>pf02D6p9ALFR-_(t|qFx%!g^JSwEV9|4%DxF_$kES^7 zuh!9ID6@~(qxB;bWdKgyC84sav+Vp76`^LV9_Gxf^MF2ha6WNr`re@4+5p=Ml^Mx^ z(8gzS>kXT%nIMoQ#?N0Rzn78ERKf}jF?lXIR%o!Hl5B+vil^w=kV_!|&37AZrbsfi zV(A3x)GQkolje-{FQVbxg$p@?bc{pkf)7kT_sSEzKLL+O@*@6ZZsy0HU~Ei|msqON z{{`ew{AiA&hQY(MJ*uimG)9Duc9eJ4Ea7?_VBIz?viJFJ4~6sFC*YGiDyAAUk2*A) znb+8$j=zR8eemaA-4f7peNx~2#q#*I%5oYq3(l5&i%7UXP3VLyx@D>k2N^U>cT+70 zr6KzKqX!|?jFr3e%C|CdldbY3(8Cb8XNi2Ud*^Hew}vxr=^OK|;NiINUKeinH;hC< zW|FD%*m{QuL4DVnl(eOUvh26mubvUb3Oa|yga`H`mM-A3P3HMl42R^q!sCfqXNlCza~ny6y*eLRPpIV^l)imH*vtkb0hZ&$5%gePb739uz-H+%Fmvy z>c`C-9v33qU;~|&3>~i-?&zke*Ty$x^W#8db`O)YO!H*`9eLS=Vl0IeA@md7OM_+Q zVK?i7q98l0YfHnLh<6k`_V_&vz)hY;1Dum-!gse-%M33#cF&dk2Vg2UrQ zhkk5(UwqK{DW)DC%xaeZjtyL(EG!iSV)ZBHRsIxsSkS%0?G~a=34~?KvWCP!6>Cy- z!b#RKFQ%tC)r4C#5AAdqo0ijg=FLR5AiQa0u}u88Zajz(Ss1IR9@X7{=ah(zRsQ-wI4Q%k_GPzbn@tjRegZoqMy(UG>8+^q+EO z0)7YSKc8d%FZE}KT%N8Ua$Wwo_J8R=_}_$@&E|^G(_r15i94ac!hQbhw@Li}K%{{Q zB467n+xN11{z`wweT>Lotu_1m)R+4czrVzw{$fSnZ&J3l@|XDA-(48?e?qs8|F6)k ze-mF`>J5)Q%*;GM{2k)L+A${7!0G7tMk*kh%ZNoxhFU}bHvgsY%T@%>lBT2t2_lv@ z0%|ugKu#6+7L`e`KVVq_WeVSvtp(jivksaW|wG%)tPiRhNa_ur< zZObIv>rgvIuH{E1)ggr)3S$K-q8?|C#FYeamf)8O=G&#GJn|${9~MdW&h}LXYLM3O z;e|%he9M&JN?b=S=Q>DLhOP<=fjqX?^iaPfjOTONdt#;V1g%h3U!)#mb^n~s zzdn9tupyETS)zMpqDdV+yRR`}g-IL-egbvlvV^MvS5AtryI;T(1a~|Rzs@clj+R|- zMNkOV*2oJ;rO84a?eE@3n-DLMfVOlZm0qMdl?K1#i~+g(vrC!u6-yA+6?aP(Vl5WZ zvIeL8*lMDO5A&&&WYVx%puEFvA2|{yok2?!#M6Ge9BO=;C~=~W=fqWyaFh|Gj)5N< z%~>b=%9^%5%|(&X&OV3yM)mQ;xClTO`MCp`T(K}xjv+(pSOAA{YTORcrsSzG4Z!|p z58PT;&-w{tzB*jcOjZN0G*ArEqm)~R!xZC@*D*H`123bvtFyl-r z*-R6|g>zTRZ7qv^=I;+ImxC|5(nM2cOJmaW!TQRex!-^i_~NZ@VrwTl*0jZ93Sj*W z^gfCnA;qTFB>oxiF~<-J*+&#BMGm>cs_16Wvghd<&b!E)1cFswHLBOCPT#b08km?| zw+kG^e_pFv*%px|`N3MyKG&Kkpky?qq0(kk$+KQlO10D`kjLs4Vxa9*@f$MA&wd9k zY%Uv4ybjKC{Mv8zp=zP{`IFF$seK${g8Qah>iF`$Z4!qCMZNDutv5_`nF?G)1`W9(YMS)X ze|)x}O372~ly9vSLGcm`YZEj<;t0o0El2ZiORqfE)2QebNDp%(bb@-kYnEeE-~&{q z!8p)WX#+wqD3wmvQgXmK91e3A8P~xF*vJ!v#d|WVcCgm1QIf>os7H%%S~6P2AqHWT zW4g$eWzgf1yKH#I2?UeX_d}QY&TLU(6v1$lZ{X@8e<=gn{)gx@ks?5MH;OrGeyhvJ zxBuY3+iku9nd8<^R6(Z#)d6ZF$XzB%49cubi^SOIl-dsVs(eupF3N^m|n1uzYU~g!MyYEw-@?-mls3dbCjW#x!D@8%UYOd zKO_)1FZx%}G`lE1V#v@LPoN0N7f`fu{@RdKq8cwcFwI9LQPdb#!)5xwg|*&^6G(me z;hi1OrB`l!cqm1JK(f*Qql^chO4FW=fy<=GfE?rh=;qv`pjfN&6jy41*R&mIkUXDe3Pz7P31252}w0$F3;@x zrK?q$q&=e=>51U`2&%4u1S^%>J2_ZZTNJ7GNY#eGr^S%!?{k5e3T5EJiQcssBor}Q z|7|ewR=v>B#E~2NKoP%OkTd`AHT6yB^SW|uW=|6_VuGA+Dbi6t)jwd5% z&ctIDEWAJt>~k!atv22#UG30Bg9_o4RkO<`s80PfO>cSs^*k3xNiwP9nX;%cmXv1Y z&)e&;E@b2nKQUfjo%jXgYh_r@7?za#Ic4y|YjuFnMf*6TI8*iFy#QjC^zHrOIX#ym zUct7=pm(m?6?Vhv>_<<%q^t~aQXej*@B_TK0T3aVC{+|J=o-!(6ZxXukj@|;wlns`E2bNsNtZCFsiwz7T+jvR|R z4}AoED!r-J3Rm{vi)Oz%q!55;&gdZ5UhxwFbbhnzb6m4n}xE>nqaIXi-aJXTI;p_jXo->~wimSQ~oXtxL^rrBFlXZyP_M-gbfCXSXcZE0E;~r|L7G_o7zvVE6XC>HS=M3C1!S5}~m9NZ3d-?(GnvlidHgWH7^SCuZ zjwa9U%3Gm9)4GgLQG~grEvYNQ0EzL;G)Hu7`ureObx>g#1g4KNCnj$USh(KPjFq!w z?1S`HxmO&`OhY zr?i5Cbs)cXHxc2UboWcNQw!*(FvK;Z1U)h;=t#U9G*`VZqx1KUv(b#w8cj+#q{_e`vC$)MQujUqZ`D%?)rU@_9WlvL zroO>xX5AJG^06mgzbh_NpCE*Oq3!!N$P%RphJEhDE^2L0Bnt|@EdH7I^w%{4TDsM% ze>Sh8vq}SUSLEgcG4vAy(YQdTB3Cb za#3a7Yjg*n_>NzP^kgk;-P+giF~4XXZf2^xn1IsdB8K@qL)a!bu7fSzBh1|dp+7;t z5>p?3_APp z-vh5LVf}ii!ri73RW}PV5_>`vrZ4XsZ~si2aZ!3ICsoP6a=V)PL-IbzR6SUxRlL8< zJwYFNA@8Rm{*d=s^P_ufsnOdBHOniSzh#TZoecITp|MGEud#BQj}A9|pkQCdv^CBy zs(LpQ0}nJPGIisOT~4*i+icn_p=l9{reotp%Jy_-=61WA#3PxW^4W_YmmP$>Yp7z` z%@rD{;B4gvGT%)zbi4c_iGy9vr+rgopKsg;`;CZ;T7BT8=9N(9xURwws!y-J)hb2z zR@Z>`1rfE1e;w!yaWQSgoO)RC3XfPGkv|CDkLVU}h~(y)&E0kubWPYvg3q>82WPcU zknCPG>yryC@6_Eny3)Ym55>Q>a4MZLV+PUhH)DWJwbfRURgNb$i%L zF1S#-g;7@e8P+vizVcr3n~&>j-=G2;cdYZ%3_Z~ERX$ca>}~F zW&hHJ-y{a@W35$@if2bqm*V4}A~jwUomta_;|EfXbNprz$V(hPNWNWfldDtaJdvun zQ4xeI?b-X#X?k+FJQM`HYlL(qYUCl-fxF$@?8&U`&I`MH?IYaE?~}Qi+IGCPvG^)+=bYZTEURBc>-#36|Z4FElDl z*Xf>?kh;@omiT0f1CqCR-)#0Dtm*Ew*8Nh9Lp+~?VqBYKQHP>ADyZh_XXOv%VfEuq zyX8OE{gHJ0h)ZL)vO5>FWa`bOqfmcA8V20TKHsYCbHDR~r1vx1d$b;dn!7v!4$gL7 zX&M$A@t@ej|BV_vuFJLDOy|n(Q}%u~;`2L_*+>EumRr~TZ;EoJ&#N8al`$=hxwz0j he5S0WPmHf8M0Eo$v|1hC1i0#KCPp~J8njd7KLHsSuR;I- diff --git a/plugins/channelrx/demodadsb/CMakeLists.txt b/plugins/channelrx/demodadsb/CMakeLists.txt index 4cff3eb67..a3e4e4f58 100644 --- a/plugins/channelrx/demodadsb/CMakeLists.txt +++ b/plugins/channelrx/demodadsb/CMakeLists.txt @@ -1,3 +1,7 @@ +if(WIN32) + link_directories(${BOOST_LIBRARYDIR}) +endif() + project(adsb) set(adsb_SOURCES @@ -6,6 +10,7 @@ set(adsb_SOURCES adsbdemodwebapiadapter.cpp adsbplugin.cpp adsbdemodsink.cpp + adsbdemodsinkworker.cpp adsbdemodbaseband.cpp adsbdemodreport.cpp adsbdemodworker.cpp @@ -17,14 +22,17 @@ set(adsb_HEADERS adsbdemodwebapiadapter.h adsbplugin.h adsbdemodsink.h + absddemodsinkworker.h adsbdemodbaseband.h adsbdemodreport.h adsbdemodworker.h + adsbdemodstats.h adsb.h ) include_directories( ${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client + ${Boost_INCLUDE_DIRS} ) if(NOT SERVER_MODE) @@ -32,10 +40,24 @@ if(NOT SERVER_MODE) ${adsb_SOURCES} adsbdemodgui.cpp adsbdemodgui.ui + adsbdemodfeeddialog.cpp + adsbdemodfeeddialog.ui + adsbdemoddisplaydialog.cpp + adsbdemoddisplaydialog.ui + csv.cpp + airlinelogos.qrc + flags.qrc + map.qrc + icons.qrc ) set(adsb_HEADERS ${adsb_HEADERS} adsbdemodgui.h + adsbdemodfeeddialog.h + adsbdemoddisplaydialog.h + ourairports.h + osndb.h + csv.h ) set(TARGET_NAME demodadsb) @@ -66,5 +88,5 @@ install(TARGETS ${TARGET_NAME} DESTINATION ${INSTALL_FOLDER}) if(WIN32) # Run deployqt for QtQuick etc include(DeployQt) - windeployqt(${TARGET_NAME} ${SDRANGEL_BINARY_BIN_DIR} ${PROJECT_SOURCE_DIR}/../../../sdrgui/resources) + windeployqt(${TARGET_NAME} ${SDRANGEL_BINARY_BIN_DIR} ${PROJECT_SOURCE_DIR}/map) endif() diff --git a/plugins/channelrx/demodadsb/adsbdemod.cpp b/plugins/channelrx/demodadsb/adsbdemod.cpp index 46e4e46b7..61518dfd9 100644 --- a/plugins/channelrx/demodadsb/adsbdemod.cpp +++ b/plugins/channelrx/demodadsb/adsbdemod.cpp @@ -17,6 +17,8 @@ // along with this program. If not, see . // /////////////////////////////////////////////////////////////////////////////////// +#include + #include #include @@ -288,13 +290,13 @@ void ADSBDemod::webapiUpdateChannelSettings( settings.m_removeTimeout = response.getAdsbDemodSettings()->getRemoveTimeout(); } if (channelSettingsKeys.contains("beastEnabled")) { - settings.m_beastEnabled = response.getAdsbDemodSettings()->getBeastEnabled() != 0; + settings.m_feedEnabled = response.getAdsbDemodSettings()->getBeastEnabled() != 0; } if (channelSettingsKeys.contains("beastHost")) { - settings.m_beastHost = *response.getAdsbDemodSettings()->getBeastHost(); + settings.m_feedHost = *response.getAdsbDemodSettings()->getBeastHost(); } if (channelSettingsKeys.contains("beastPort")) { - settings.m_beastPort = response.getAdsbDemodSettings()->getBeastPort(); + settings.m_feedPort = response.getAdsbDemodSettings()->getBeastPort(); } if (channelSettingsKeys.contains("rgbColor")) { settings.m_rgbColor = response.getAdsbDemodSettings()->getRgbColor(); @@ -340,9 +342,9 @@ void ADSBDemod::webapiFormatChannelSettings(SWGSDRangel::SWGChannelSettings& res response.getAdsbDemodSettings()->setCorrelationThreshold(settings.m_correlationThreshold); response.getAdsbDemodSettings()->setSamplesPerBit(settings.m_samplesPerBit); response.getAdsbDemodSettings()->setRemoveTimeout(settings.m_removeTimeout); - response.getAdsbDemodSettings()->setBeastEnabled(settings.m_beastEnabled ? 1 : 0); - response.getAdsbDemodSettings()->setBeastHost(new QString(settings.m_beastHost)); - response.getAdsbDemodSettings()->setBeastPort(settings.m_beastPort); + response.getAdsbDemodSettings()->setBeastEnabled(settings.m_feedEnabled ? 1 : 0); + response.getAdsbDemodSettings()->setBeastHost(new QString(settings.m_feedHost)); + response.getAdsbDemodSettings()->setBeastPort(settings.m_feedPort); response.getAdsbDemodSettings()->setRgbColor(settings.m_rgbColor); if (response.getAdsbDemodSettings()->getTitle()) { @@ -408,13 +410,13 @@ void ADSBDemod::webapiReverseSendSettings(QList& channelSettingsKeys, c swgADSBDemodSettings->setRemoveTimeout(settings.m_removeTimeout); } if (channelSettingsKeys.contains("beastEnabled") || force) { - swgADSBDemodSettings->setBeastEnabled(settings.m_beastEnabled ? 1 : 0); + swgADSBDemodSettings->setBeastEnabled(settings.m_feedEnabled ? 1 : 0); } if (channelSettingsKeys.contains("beastHost") || force) { - swgADSBDemodSettings->setBeastHost(new QString(settings.m_beastHost)); + swgADSBDemodSettings->setBeastHost(new QString(settings.m_feedHost)); } if (channelSettingsKeys.contains("beastPort") || force) { - swgADSBDemodSettings->setBeastPort(settings.m_beastPort); + swgADSBDemodSettings->setBeastPort(settings.m_feedPort); } if (channelSettingsKeys.contains("rgbColor") || force) { swgADSBDemodSettings->setRgbColor(settings.m_rgbColor); diff --git a/plugins/channelrx/demodadsb/adsbdemoddisplaydialog.cpp b/plugins/channelrx/demodadsb/adsbdemoddisplaydialog.cpp new file mode 100644 index 000000000..b43a13c53 --- /dev/null +++ b/plugins/channelrx/demodadsb/adsbdemoddisplaydialog.cpp @@ -0,0 +1,66 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2020 Jon Beniston, M7RCE // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#include +#include + +#include "adsbdemoddisplaydialog.h" + +ADSBDemodDisplayDialog::ADSBDemodDisplayDialog +(int removeTimeout, float airportRange, ADSBDemodSettings::AirportType airportMinimumSize, + bool displayHeliports, bool siUnits, QString fontName, int fontSize, bool displayDemodStats, QWidget* parent) : + QDialog(parent), + ui(new Ui::ADSBDemodDisplayDialog), + m_fontName(fontName), + m_fontSize(fontSize) +{ + ui->setupUi(this); + ui->timeout->setValue(removeTimeout); + ui->airportRange->setValue(airportRange); + ui->airportSize->setCurrentIndex((int)airportMinimumSize); + ui->heliports->setChecked(displayHeliports); + ui->units->setCurrentIndex((int)siUnits); + ui->displayStats->setChecked(displayDemodStats); +} + +ADSBDemodDisplayDialog::~ADSBDemodDisplayDialog() +{ + delete ui; +} + +void ADSBDemodDisplayDialog::accept() +{ + m_removeTimeout = ui->timeout->value(); + m_airportRange = ui->airportRange->value(); + m_airportMinimumSize = (ADSBDemodSettings::AirportType)ui->airportSize->currentIndex(); + m_displayHeliports = ui->heliports->isChecked(); + m_siUnits = ui->units->currentIndex() == 0 ? false : true; + m_displayDemodStats = ui->displayStats->isChecked(); + QDialog::accept(); +} + +void ADSBDemodDisplayDialog::on_font_clicked(bool checked) +{ + bool ok; + QFont font = QFontDialog::getFont(&ok, QFont(m_fontName, m_fontSize), this); + if (ok) + { + qDebug() << font; + m_fontName = font.family(); + m_fontSize = font.pointSize(); + } +} diff --git a/plugins/channelrx/demodadsb/adsbdemoddisplaydialog.h b/plugins/channelrx/demodadsb/adsbdemoddisplaydialog.h new file mode 100644 index 000000000..a8c3099c7 --- /dev/null +++ b/plugins/channelrx/demodadsb/adsbdemoddisplaydialog.h @@ -0,0 +1,50 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2020 Jon Beniston, M7RCE // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_ADSBDEMODDISPLAYDIALOG_H +#define INCLUDE_ADSBDEMODDISPLAYDIALOG_H + +#include "ui_adsbdemoddisplaydialog.h" +#include "adsbdemodsettings.h" + +class ADSBDemodDisplayDialog : public QDialog { + Q_OBJECT + +public: + explicit ADSBDemodDisplayDialog(int removeTimeout, float airportRange, ADSBDemodSettings::AirportType airportMinimumSize, + bool displayHeliports, bool siUnits, QString fontName, int fontSize, bool displayDemodStats +, QWidget* parent = 0); + ~ADSBDemodDisplayDialog(); + + int m_removeTimeout; + float m_airportRange; + ADSBDemodSettings::AirportType m_airportMinimumSize; + bool m_displayHeliports; + bool m_siUnits; + QString m_fontName; + int m_fontSize; + bool m_displayDemodStats; + +private slots: + void accept(); + void on_font_clicked(bool checked = false); + +private: + Ui::ADSBDemodDisplayDialog* ui; +}; + +#endif // INCLUDE_ADSBDEMODDISPLAYDIALOG_H diff --git a/plugins/channelrx/demodadsb/adsbdemoddisplaydialog.ui b/plugins/channelrx/demodadsb/adsbdemoddisplaydialog.ui new file mode 100644 index 000000000..128192f74 --- /dev/null +++ b/plugins/channelrx/demodadsb/adsbdemoddisplaydialog.ui @@ -0,0 +1,200 @@ + + + ADSBDemodDisplayDialog + + + + 0 + 0 + 351 + 275 + + + + + Liberation Sans + 9 + + + + Display Settings + + + + + + + + + Units + + + + + + + The units to use for altitude, speed and climb rate + + + + ft, kn, ft/min + + + + + m, kph, m/s + + + + + + + + Display airports with size + + + + + + + Sets the minimum airport size that will be displayed on the map + + + + Small + + + + + Medium + + + + + Large + + + + + + + + When checked, heliports are displayed on the map + + + Display heliports + + + + + + + Airport display range (nm) + + + + + + + Displays airports within the specified range in nautical miles from My Position + + + 20000 + + + + + + + Aircraft timeout (s) + + + + + + + How long in seconds after not receving any frames will an aircraft be removed from the table and map + + + 1000000 + + + + + + + Table font + + + + + + + Select a font for the table + + + Select... + + + + + + + Display demodulator statistics + + + Display demodulator statistics + + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + + buttonBox + accepted() + ADSBDemodDisplayDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + ADSBDemodDisplayDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/plugins/channelrx/demodadsb/adsbdemodfeeddialog.cpp b/plugins/channelrx/demodadsb/adsbdemodfeeddialog.cpp new file mode 100644 index 000000000..4eaaac506 --- /dev/null +++ b/plugins/channelrx/demodadsb/adsbdemodfeeddialog.cpp @@ -0,0 +1,60 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2020 Jon Beniston, M7RCE // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#include + +#include "adsbdemodfeeddialog.h" +#include "adsbdemodsettings.h" + +ADSBDemodFeedDialog::ADSBDemodFeedDialog(QString& feedHost, int feedPort, ADSBDemodSettings::FeedFormat feedFormat, QWidget* parent) : + QDialog(parent), + ui(new Ui::ADSBDemodFeedDialog) +{ + ui->setupUi(this); + ui->host->lineEdit()->setText(feedHost); + ui->port->setValue(feedPort); + ui->format->setCurrentIndex((int)feedFormat); +} + +ADSBDemodFeedDialog::~ADSBDemodFeedDialog() +{ + delete ui; +} + +void ADSBDemodFeedDialog::accept() +{ + m_feedHost = ui->host->currentText(); + m_feedPort = ui->port->value(); + m_feedFormat = (ADSBDemodSettings::FeedFormat )ui->format->currentIndex(); + QDialog::accept(); +} + +void ADSBDemodFeedDialog::on_host_currentIndexChanged(int value) +{ + if (value == 0) + { + ui->host->lineEdit()->setText("feed.adsbexchange.com"); + ui->port->setValue(30005); + ui->format->setCurrentIndex(0); + } + else if (value == 1) + { + ui->host->lineEdit()->setText("data.adsbhub.org"); + ui->port->setValue(5002); + ui->format->setCurrentIndex(1); + } +} diff --git a/plugins/channelrx/demodadsb/adsbdemodfeeddialog.h b/plugins/channelrx/demodadsb/adsbdemodfeeddialog.h new file mode 100644 index 000000000..64af99183 --- /dev/null +++ b/plugins/channelrx/demodadsb/adsbdemodfeeddialog.h @@ -0,0 +1,43 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2020 Jon Beniston, M7RCE // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_ADSBDEMODFEEDDIALOG_H +#define INCLUDE_ADSBDEMODFEEDDIALOG_H + +#include "ui_adsbdemodfeeddialog.h" +#include "adsbdemodsettings.h" + +class ADSBDemodFeedDialog : public QDialog { + Q_OBJECT + +public: + explicit ADSBDemodFeedDialog(QString& feedHost, int feedPort, ADSBDemodSettings::FeedFormat feedFormat, QWidget* parent = 0); + ~ADSBDemodFeedDialog(); + + QString m_feedHost; + int m_feedPort; + ADSBDemodSettings::FeedFormat m_feedFormat; + +private slots: + void accept(); + void on_host_currentIndexChanged(int value); + +private: + Ui::ADSBDemodFeedDialog* ui; +}; + +#endif // INCLUDE_ADSBDEMODFEEDDIALOG_H diff --git a/plugins/channelrx/demodadsb/adsbdemodfeeddialog.ui b/plugins/channelrx/demodadsb/adsbdemodfeeddialog.ui new file mode 100644 index 000000000..786c2c4ac --- /dev/null +++ b/plugins/channelrx/demodadsb/adsbdemodfeeddialog.ui @@ -0,0 +1,150 @@ + + + ADSBDemodFeedDialog + + + + 0 + 0 + 351 + 138 + + + + + Liberation Sans + 9 + + + + Feed Settings + + + + + + + + + Server hostname + + + + + + + Port number + + + + + + + The TCP port number the server is listening on + + + 1024 + + + 65535 + + + + + + + Format to feed the data to the server in + + + + Beast binary + + + + + Beast hex + + + + + + + + Format + + + + + + + Hostname of server to feed ADS-B data to + + + true + + + + feed.adsbexchange.com + + + + + data.adsbhub.org + + + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + port + + + + + buttonBox + accepted() + ADSBDemodFeedDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + ADSBDemodFeedDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/plugins/channelrx/demodadsb/adsbdemodgui.cpp b/plugins/channelrx/demodadsb/adsbdemodgui.cpp index f2d38561b..9d9fffd87 100644 --- a/plugins/channelrx/demodadsb/adsbdemodgui.cpp +++ b/plugins/channelrx/demodadsb/adsbdemodgui.cpp @@ -30,6 +30,7 @@ #include #include "ui_adsbdemodgui.h" +#include "channel/channelwebapiutils.h" #include "plugin/pluginapi.h" #include "util/simpleserializer.h" #include "util/db.h" @@ -42,24 +43,34 @@ #include "adsbdemodreport.h" #include "adsbdemod.h" #include "adsbdemodgui.h" +#include "adsbdemodfeeddialog.h" +#include "adsbdemoddisplaydialog.h" #include "adsb.h" // ADS-B table columns #define ADSB_COL_ICAO 0 #define ADSB_COL_FLIGHT 1 -#define ADSB_COL_LATITUDE 2 -#define ADSB_COL_LONGITUDE 3 +#define ADSB_COL_MODEL 2 +#define ADSB_COL_AIRLINE 3 #define ADSB_COL_ALTITUDE 4 #define ADSB_COL_SPEED 5 #define ADSB_COL_HEADING 6 #define ADSB_COL_VERTICALRATE 7 -#define ADSB_COL_CATEGORY 8 -#define ADSB_COL_STATUS 9 -#define ADSB_COL_RANGE 10 -#define ADSB_COL_AZEL 11 -#define ADSB_COL_TIME 12 -#define ADSB_COL_FRAMECOUNT 13 -#define ADSB_COL_CORRELATION 14 +#define ADSB_COL_RANGE 8 +#define ADSB_COL_AZEL 9 +#define ADSB_COL_LATITUDE 10 +#define ADSB_COL_LONGITUDE 11 +#define ADSB_COL_CATEGORY 12 +#define ADSB_COL_STATUS 13 +#define ADSB_COL_REGISTRATION 14 +#define ADSB_COL_COUNTRY 15 +#define ADSB_COL_REGISTERED 16 +#define ADSB_COL_MANUFACTURER 17 +#define ADSB_COL_OWNER 18 +#define ADSB_COL_OPERATOR_ICAO 19 +#define ADSB_COL_TIME 20 +#define ADSB_COL_FRAMECOUNT 21 +#define ADSB_COL_CORRELATION 22 const char *Aircraft::m_speedTypeNames[] = { "GS", "TAS", "IAS" @@ -91,6 +102,7 @@ QByteArray ADSBDemodGUI::serialize() const bool ADSBDemodGUI::deserialize(const QByteArray& data) { if(m_settings.deserialize(data)) { + updateDeviceSetList(); displaySettings(); applySettings(true); return true; @@ -101,13 +113,13 @@ bool ADSBDemodGUI::deserialize(const QByteArray& data) } // Longitude zone (returns value in range [1,59] -static int cprNL(Real lat) +static int cprNL(double lat) { - if (lat == 0.0f) + if (lat == 0.0) return 59; - else if ((lat == 87.0f) || (lat == -87.0f)) + else if ((lat == 87.0) || (lat == -87.0)) return 2; - else if ((lat > 87.0f) || (lat < -87.0f)) + else if ((lat > 87.0) || (lat < -87.0)) return 1; else { @@ -118,7 +130,7 @@ static int cprNL(Real lat) } } -static int cprN(Real lat, int odd) +static int cprN(double lat, int odd) { int nl = cprNL(lat) - odd; if (nl > 1) @@ -129,11 +141,36 @@ static int cprN(Real lat, int odd) static Real feetToMetres(Real feet) { - return feet * 0.3048; + return feet * 0.3048f; } -// Can't use std::fmod, as that works differently for negative numbers -static Real modulus(Real x, Real y) +static int feetToMetresInt(Real feet) +{ + return (int)std::round(feetToMetres(feet)); +} + +static Real knotsToKPH(Real knots) +{ + return knots * 1.852f; +} + +static int knotsToKPHInt(Real knots) +{ + return (int)std::round(knotsToKPH(knots)); +} + +static Real feetPerMinToMetresPerSecond(Real fpm) +{ + return fpm * 0.00508f; +} + +static int feetPerMinToMetresPerSecondInt(Real fpm) +{ + return (int)std::round(feetPerMinToMetresPerSecond(fpm)); +} + +// Can't use std::fmod, as that works differently for negative numbers (See C.2.6.2) +static Real modulus(double x, double y) { return x - y * std::floor(x/y); } @@ -149,7 +186,7 @@ QVariant AircraftModel::data(const QModelIndex &index, int role) const QGeoCoordinate coords; coords.setLatitude(m_aircrafts[row]->m_latitude); coords.setLongitude(m_aircrafts[row]->m_longitude); - coords.setAltitude(m_aircrafts[row]->m_altitude * 0.3048); // Convert feet to metres + coords.setAltitude(feetToMetres(m_aircrafts[row]->m_altitude)); return QVariant::fromValue(coords); } else if (role == AircraftModel::headingRole) @@ -169,28 +206,57 @@ QVariant AircraftModel::data(const QModelIndex &index, int role) const { list.append(QString("ICAO: %1").arg(m_aircrafts[row]->m_icao, 1, 16)); } - if (m_aircrafts[row]->m_altitudeValid) + if (m_aircrafts[row]->m_showAll || m_aircrafts[row]->m_isHighlighted) { - list.append(QString("Altitude: %1 (ft)").arg(m_aircrafts[row]->m_altitude)); - } - if (m_aircrafts[row]->m_speedValid) - { - list.append(QString("%1: %2 (kn)").arg(m_aircrafts[row]->m_speedTypeNames[m_aircrafts[row]->m_speedType]).arg(m_aircrafts[row]->m_speed)); - } - if (m_aircrafts[row]->m_verticalRateValid) - { - QString desc; - if (m_aircrafts[row]->m_verticalRate == 0) - desc = "Level flight"; - else if (m_aircrafts[row]->m_verticalRate > 0) - desc = QString("Climbing: %1 (ft/min)").arg(m_aircrafts[row]->m_verticalRate); - else - desc = QString("Descending: %1 (ft/min)").arg(m_aircrafts[row]->m_verticalRate); - list.append(QString(desc)); - } - if ((m_aircrafts[row]->m_status.length() > 0) && m_aircrafts[row]->m_status.compare("No emergency")) - { - list.append(m_aircrafts[row]->m_status); + if (m_aircrafts[row]->m_aircraftInfo != nullptr) + { + if (m_aircrafts[row]->m_aircraftInfo->m_model.size() > 0) + { + list.append(QString("Aircraft: %1").arg(m_aircrafts[row]->m_aircraftInfo->m_model)); + } + } + if (m_aircrafts[row]->m_altitudeValid) + { + if (m_aircrafts[row]->m_gui->useSIUints()) + list.append(QString("Altitude: %1 (m)").arg(feetToMetresInt(m_aircrafts[row]->m_altitude))); + else + list.append(QString("Altitude: %1 (ft)").arg(m_aircrafts[row]->m_altitude)); + } + if (m_aircrafts[row]->m_speedValid) + { + if (m_aircrafts[row]->m_gui->useSIUints()) + list.append(QString("%1: %2 (kph)").arg(m_aircrafts[row]->m_speedTypeNames[m_aircrafts[row]->m_speedType]).arg(knotsToKPHInt(m_aircrafts[row]->m_speed))); + else + list.append(QString("%1: %2 (kn)").arg(m_aircrafts[row]->m_speedTypeNames[m_aircrafts[row]->m_speedType]).arg(m_aircrafts[row]->m_speed)); + } + if (m_aircrafts[row]->m_verticalRateValid) + { + QString desc; + Real rate; + QString units; + + if (m_aircrafts[row]->m_gui->useSIUints()) + { + rate = feetPerMinToMetresPerSecondInt(m_aircrafts[row]->m_verticalRate); + units = QString("m/s"); + } + else + { + rate = m_aircrafts[row]->m_verticalRate; + units = QString("ft/min"); + } + if (m_aircrafts[row]->m_verticalRate == 0) + desc = "Level flight"; + else if (rate > 0) + desc = QString("Climbing: %1 (%2)").arg(rate).arg(units); + else + desc = QString("Descending: %1 (%2)").arg(rate).arg(units); + list.append(QString(desc)); + } + if ((m_aircrafts[row]->m_status.length() > 0) && m_aircrafts[row]->m_status.compare("No emergency")) + { + list.append(m_aircrafts[row]->m_status); + } } QString data = list.join("\n"); return QVariant::fromValue(data); @@ -220,7 +286,7 @@ QVariant AircraftModel::data(const QModelIndex &index, int role) const return QVariant::fromValue(QString("aircraft_drone.png")); else if (!m_aircrafts[row]->m_emitterCategory.compare("Emergency vehicle") || !m_aircrafts[row]->m_emitterCategory.compare("Service vehicle")) - return QVariant::fromValue(QString("map_truck.png")); + return QVariant::fromValue(QString("truck.png")); else return QVariant::fromValue(QString("aircraft_2engine.png")); } @@ -230,16 +296,154 @@ QVariant AircraftModel::data(const QModelIndex &index, int role) const else if (role == AircraftModel::bubbleColourRole) { // Select a background colour for the text bubble next to the aircraft - if (m_aircrafts[row]->m_isBeingTracked) + if (m_aircrafts[row]->m_isTarget) return QVariant::fromValue(QColor("lightgreen")); + else if (m_aircrafts[row]->m_isHighlighted) + return QVariant::fromValue(QColor("orange")); else if ((m_aircrafts[row]->m_status.length() > 0) && m_aircrafts[row]->m_status.compare("No emergency")) - return QVariant::fromValue(QColor("lightred")); + return QVariant::fromValue(QColor("lightred")); else - return QVariant::fromValue(QColor("lightblue")); + return QVariant::fromValue(QColor("lightblue")); + } + else if (role == AircraftModel::aircraftPathRole) + { + if (m_flightPaths) + return m_aircrafts[row]->m_coordinates; + else + return QVariantList(); + } + else if (role == AircraftModel::showAllRole) + return QVariant::fromValue(m_aircrafts[row]->m_showAll); + else if (role == AircraftModel::highlightedRole) + return QVariant::fromValue(m_aircrafts[row]->m_isHighlighted); + else if (role == AircraftModel::targetRole) + return QVariant::fromValue(m_aircrafts[row]->m_isTarget); + return QVariant(); +} + +bool AircraftModel::setData(const QModelIndex &index, const QVariant& value, int role) +{ + int row = index.row(); + if ((row < 0) || (row >= m_aircrafts.count())) + return false; + if (role == AircraftModel::showAllRole) + { + bool showAll = value.toBool(); + if (showAll != m_aircrafts[row]->m_showAll) + { + m_aircrafts[row]->m_showAll = showAll; + emit dataChanged(index, index); + } + return true; + } + else if (role == AircraftModel::highlightedRole) + { + bool highlight = value.toBool(); + if (highlight != m_aircrafts[row]->m_isHighlighted) + { + m_aircrafts[row]->m_gui->highlightAircraft(m_aircrafts[row]); + emit dataChanged(index, index); + } + return true; + } + else if (role == AircraftModel::targetRole) + { + bool target = value.toBool(); + if (target != m_aircrafts[row]->m_isTarget) + { + m_aircrafts[row]->m_gui->targetAircraft(m_aircrafts[row]); + emit dataChanged(index, index); + } + return true; + } + return true; +} + +QVariant AirportModel::data(const QModelIndex &index, int role) const +{ + int row = index.row(); + if ((row < 0) || (row >= m_airports.count())) + return QVariant(); + if (role == AirportModel::positionRole) + { + // Coordinates to display the airport icon at + QGeoCoordinate coords; + coords.setLatitude(m_airports[row]->m_latitude); + coords.setLongitude(m_airports[row]->m_longitude); + coords.setAltitude(feetToMetres(m_airports[row]->m_elevation)); + return QVariant::fromValue(coords); + } + else if (role == AirportModel::airportDataRole) + { + if (m_showFreq[row]) + return QVariant::fromValue(m_airportDataFreq[row]); + else + return QVariant::fromValue(m_airports[row]->m_ident); + } + else if (role == AirportModel::airportDataRowsRole) + { + if (m_showFreq[row]) + return QVariant::fromValue(m_airportDataFreqRows[row]); + else + return 1; + } + else if (role == AirportModel::airportImageRole) + { + // Select an image to use for the airport + if (m_airports[row]->m_type == ADSBDemodSettings::AirportType::Large) + return QVariant::fromValue(QString("airport_large.png")); + else if (m_airports[row]->m_type == ADSBDemodSettings::AirportType::Medium) + return QVariant::fromValue(QString("airport_medium.png")); + else if (m_airports[row]->m_type == ADSBDemodSettings::AirportType::Heliport) + return QVariant::fromValue(QString("heliport.png")); + else + return QVariant::fromValue(QString("airport_small.png")); + } + else if (role == AirportModel::bubbleColourRole) + { + // Select a background colour for the text bubble next to the airport + return QVariant::fromValue(QColor("lightyellow")); + } + else if (role == AirportModel::showFreqRole) + { + return QVariant::fromValue(m_showFreq[row]); } return QVariant(); } +bool AirportModel::setData(const QModelIndex &index, const QVariant& value, int role) +{ + int row = index.row(); + if ((row < 0) || (row >= m_airports.count())) + return false; + if (role == AirportModel::showFreqRole) + { + bool showFreq = value.toBool(); + if (showFreq != m_showFreq[row]) + { + m_showFreq[row] = showFreq; + emit dataChanged(index, index); + } + return true; + } + else if (role == AirportModel::selectedFreqRole) + { + int idx = value.toInt(); + if ((idx >= 0) && (idx < m_airports[row]->m_frequencies.size())) + m_gui->setFrequency(m_airports[row]->m_frequencies[idx]->m_frequency * 1000000); + else + qDebug() << "AirportModel::setData unexpected idx " << idx << " frequencies.size() " << m_airports[row]->m_frequencies.size(); + return true; + } + return true; +} + +// Set selected device to the given centre frequency (used to tune to ATC selected from airports on map) +bool ADSBDemodGUI::setFrequency(float targetFrequencyHz) +{ + return ChannelWebAPIUtils::setCenterFrequency(m_settings.m_deviceIndex, targetFrequencyHz); +} + // Called when we have both lat & long void ADSBDemodGUI::updatePosition(Aircraft *aircraft) { @@ -258,13 +462,75 @@ void ADSBDemodGUI::updatePosition(Aircraft *aircraft) aircraft->m_range = m_azEl.getDistance(); aircraft->m_azimuth = m_azEl.getAzimuth(); aircraft->m_elevation = m_azEl.getElevation(); - aircraft->m_rangeItem->setText(QString("%1").arg(aircraft->m_range/1000.0, 0, 'f', 1)); + aircraft->m_rangeItem->setText(QString::number(aircraft->m_range/1000.0, 'f', 1)); aircraft->m_azElItem->setText(QString("%1/%2").arg(std::round(aircraft->m_azimuth)).arg(std::round(aircraft->m_elevation))); if (aircraft == m_trackAircraft) m_adsbDemod->setTarget(aircraft->m_azimuth, aircraft->m_elevation); } -void ADSBDemodGUI::handleADSB(const QByteArray data, const QDateTime dateTime, float correlationOnes, float correlationZeros) +// Try to find an airline logo based on ICAO +QIcon *ADSBDemodGUI::getAirlineIcon(const QString &operatorICAO) +{ + if (m_airlineIcons.contains(operatorICAO)) + return m_airlineIcons.value(operatorICAO); + else + { + QIcon *icon = nullptr; + QString endPath = QString("/airlinelogos/%1.bmp").arg(operatorICAO); + // Try in user directory first, so they can customise + QString userIconPath = getDataDir() + endPath; + QFile file(userIconPath); + if (file.exists()) + { + icon = new QIcon(userIconPath); + m_airlineIcons.insert(operatorICAO, icon); + } + else + { + // Try in resources + QResource resourceIconPath(QString(":%1").arg(endPath)); + if (resourceIconPath.isValid()) + { + icon = new QIcon(":" + endPath); + m_airlineIcons.insert(operatorICAO, icon); + } + } + return icon; + } +} + +// Try to find an flag logo based on a country +QIcon *ADSBDemodGUI::getFlagIcon(const QString &country) +{ + if (m_flagIcons.contains(country)) + return m_flagIcons.value(country); + else + { + QIcon *icon = nullptr; + QString endPath = QString("/flags/%1.bmp").arg(country); + // Try in user directory first, so they can customise + QString userIconPath = getDataDir() + endPath; + QFile file(userIconPath); + if (file.exists()) + { + icon = new QIcon(userIconPath); + m_flagIcons.insert(country, icon); + } + else + { + // Try in resources + QResource resourceIconPath(QString(":%1").arg(endPath)); + if (resourceIconPath.isValid()) + { + icon = new QIcon(":" + endPath); + m_flagIcons.insert(country, icon); + } + } + return icon; + } +} + +void ADSBDemodGUI::handleADSB(const QByteArray data, const QDateTime dateTime, float correlation) { const char idMap[] = "?ABCDEFGHIJKLMNOPQRSTUVWXYZ????? ???????????????0123456789??????"; const QString categorySetA[] = { @@ -322,288 +588,391 @@ void ADSBDemodGUI::handleADSB(const QByteArray data, const QDateTime dateTime, f else { // Add new aircraft - aircraft = new Aircraft; + aircraft = new Aircraft(this); aircraft->m_icao = icao; m_aircraft.insert(icao, aircraft); - aircraft->m_icaoItem->setText(QString("%1").arg(aircraft->m_icao, 1, 16)); + // Check for TIS-B addresses + if ((df == 18) && !((df == 18) && ((ca == 0) || (ca == 1) || (ca == 6)))) + aircraft->m_icaoItem->setText(QString("TIS-B %1").arg(aircraft->m_icao, 1, 16)); + else + aircraft->m_icaoItem->setText(QString("%1").arg(aircraft->m_icao, 1, 16)); + ui->adsbData->setSortingEnabled(false); int row = ui->adsbData->rowCount(); ui->adsbData->setRowCount(row + 1); ui->adsbData->setItem(row, ADSB_COL_ICAO, aircraft->m_icaoItem); ui->adsbData->setItem(row, ADSB_COL_FLIGHT, aircraft->m_flightItem); - ui->adsbData->setItem(row, ADSB_COL_LATITUDE, aircraft->m_latitudeItem); - ui->adsbData->setItem(row, ADSB_COL_LONGITUDE, aircraft->m_longitudeItem); + ui->adsbData->setItem(row, ADSB_COL_MODEL, aircraft->m_modelItem); + ui->adsbData->setItem(row, ADSB_COL_AIRLINE, aircraft->m_airlineItem); ui->adsbData->setItem(row, ADSB_COL_ALTITUDE, aircraft->m_altitudeItem); ui->adsbData->setItem(row, ADSB_COL_SPEED, aircraft->m_speedItem); ui->adsbData->setItem(row, ADSB_COL_HEADING, aircraft->m_headingItem); ui->adsbData->setItem(row, ADSB_COL_VERTICALRATE, aircraft->m_verticalRateItem); - ui->adsbData->setItem(row, ADSB_COL_CATEGORY, aircraft->m_emitterCategoryItem); - ui->adsbData->setItem(row, ADSB_COL_STATUS, aircraft->m_statusItem); ui->adsbData->setItem(row, ADSB_COL_RANGE, aircraft->m_rangeItem); ui->adsbData->setItem(row, ADSB_COL_AZEL, aircraft->m_azElItem); + ui->adsbData->setItem(row, ADSB_COL_LATITUDE, aircraft->m_latitudeItem); + ui->adsbData->setItem(row, ADSB_COL_LONGITUDE, aircraft->m_longitudeItem); + ui->adsbData->setItem(row, ADSB_COL_CATEGORY, aircraft->m_emitterCategoryItem); + ui->adsbData->setItem(row, ADSB_COL_STATUS, aircraft->m_statusItem); + ui->adsbData->setItem(row, ADSB_COL_REGISTRATION, aircraft->m_registrationItem); + ui->adsbData->setItem(row, ADSB_COL_COUNTRY, aircraft->m_countryItem); + ui->adsbData->setItem(row, ADSB_COL_REGISTERED, aircraft->m_registeredItem); + ui->adsbData->setItem(row, ADSB_COL_MANUFACTURER, aircraft->m_manufacturerNameItem); + ui->adsbData->setItem(row, ADSB_COL_OWNER, aircraft->m_ownerItem); + ui->adsbData->setItem(row, ADSB_COL_OPERATOR_ICAO, aircraft->m_operatorICAOItem); ui->adsbData->setItem(row, ADSB_COL_TIME, aircraft->m_timeItem); ui->adsbData->setItem(row, ADSB_COL_FRAMECOUNT, aircraft->m_adsbFrameCountItem); ui->adsbData->setItem(row, ADSB_COL_CORRELATION, aircraft->m_correlationItem); + // Look aircraft up in database + if (m_aircraftInfo != nullptr) + { + if (m_aircraftInfo->contains(icao)) + { + aircraft->m_aircraftInfo = m_aircraftInfo->value(icao); + aircraft->m_modelItem->setText(aircraft->m_aircraftInfo->m_model); + aircraft->m_registrationItem->setText(aircraft->m_aircraftInfo->m_registration); + aircraft->m_manufacturerNameItem->setText(aircraft->m_aircraftInfo->m_manufacturerName); + aircraft->m_ownerItem->setText(aircraft->m_aircraftInfo->m_owner); + aircraft->m_operatorICAOItem->setText(aircraft->m_aircraftInfo->m_operatorICAO); + aircraft->m_registeredItem->setText(aircraft->m_aircraftInfo->m_registered); + // Try loading an airline logo based on operator ICAO + QIcon *icon = nullptr; + if (aircraft->m_aircraftInfo->m_operatorICAO.size() > 0) + { + icon = getAirlineIcon(aircraft->m_aircraftInfo->m_operatorICAO); + if (icon != nullptr) + { + aircraft->m_airlineItem->setSizeHint(QSize(85, 20)); + aircraft->m_airlineItem->setIcon(*icon); + } + } + if (icon == nullptr) + { + if (aircraft->m_aircraftInfo->m_operator.size() > 0) + aircraft->m_airlineItem->setText(aircraft->m_aircraftInfo->m_operator); + else + aircraft->m_airlineItem->setText(aircraft->m_aircraftInfo->m_owner); + } + // Try loading a flag based on registration + if ((aircraft->m_aircraftInfo->m_registration.size() > 0) && (m_prefixMap != nullptr)) + { + QString flag; + int idx = aircraft->m_aircraftInfo->m_registration.indexOf('-'); + if (idx >= 0) + { + QString prefix; + + // Some countries use AA-A - try these first as first letters are common + prefix = aircraft->m_aircraftInfo->m_registration.left(idx + 2); + if (m_prefixMap->contains(prefix)) + flag = m_prefixMap->value(prefix); + else + { + // Try letters before '-' + prefix = aircraft->m_aircraftInfo->m_registration.left(idx); + if (m_prefixMap->contains(prefix)) + flag = m_prefixMap->value(prefix); + } + } + else + { + // No '-' Could be military + if ((m_militaryMap != nullptr) && (m_militaryMap->contains(aircraft->m_aircraftInfo->m_operator))) + flag = m_militaryMap->value(aircraft->m_aircraftInfo->m_operator); + } + if (flag != "") + { + icon = getFlagIcon(flag); + if (icon != nullptr) + { + aircraft->m_countryItem->setSizeHint(QSize(40, 20)); + aircraft->m_countryItem->setIcon(*icon); + } + } + } + } + } + ui->adsbData->setSortingEnabled(true); } aircraft->m_time = dateTime; QTime time = dateTime.time(); aircraft->m_timeItem->setText(QString("%1:%2:%3").arg(time.hour(), 2, 10, QLatin1Char('0')).arg(time.minute(), 2, 10, QLatin1Char('0')).arg(time.second(), 2, 10, QLatin1Char('0'))); aircraft->m_adsbFrameCount++; - aircraft->m_adsbFrameCountItem->setText(QString("%1").arg(aircraft->m_adsbFrameCount)); + aircraft->m_adsbFrameCountItem->setData(Qt::DisplayRole, aircraft->m_adsbFrameCount); - m_correlationZerosAvg(correlationZeros); - aircraft->m_minCorrelation = m_correlationZerosAvg.instantAverage(); - if (correlationOnes > aircraft->m_maxCorrelation) - aircraft->m_maxCorrelation = correlationOnes; - m_correlationOnesAvg(correlationOnes); - aircraft->m_correlation = m_correlationOnesAvg.instantAverage(); + if (correlation < aircraft->m_minCorrelation) + aircraft->m_minCorrelation = correlation; + if (correlation > aircraft->m_maxCorrelation) + aircraft->m_maxCorrelation = correlation; + m_correlationAvg(correlation); + aircraft->m_correlationAvg(correlation); + aircraft->m_correlation = aircraft->m_correlationAvg.instantAverage(); aircraft->m_correlationItem->setText(QString("%1/%2/%3") .arg(CalcDb::dbPower(aircraft->m_minCorrelation), 3, 'f', 1) .arg(CalcDb::dbPower(aircraft->m_correlation), 3, 'f', 1) .arg(CalcDb::dbPower(aircraft->m_maxCorrelation), 3, 'f', 1)); - - if ((tc >= 1) && ((tc <= 4))) + // ADS-B, non-transponder ADS-B or TIS-B rebroadcast of ADS-B (ADS-R) + if ((df == 17) || ((df == 18) && ((ca == 0) || (ca == 1) || (ca == 6)))) { - // Aircraft identification - int ec = data[4] & 0x7; // Emitter category - if (tc == 4) - aircraft->m_emitterCategory = categorySetA[ec]; - else if (tc == 3) - aircraft->m_emitterCategory = categorySetB[ec]; - else if (tc == 2) - aircraft->m_emitterCategory = categorySetC[ec]; - else - aircraft->m_emitterCategory = QString("Reserved"); - aircraft->m_emitterCategoryItem->setText(aircraft->m_emitterCategory); - - // Flight/callsign - Extract 8 6-bit characters from 6 8-bit bytes, MSB first - unsigned char c[8]; - char callsign[9]; - c[0] = (data[5] >> 2) & 0x3f; // 6 - c[1] = ((data[5] & 0x3) << 4) | ((data[6] & 0xf0) >> 4); // 2+4 - c[2] = ((data[6] & 0xf) << 2) | ((data[7] & 0xc0) >> 6); // 4+2 - c[3] = (data[7] & 0x3f); // 6 - c[4] = (data[8] >> 2) & 0x3f; - c[5] = ((data[8] & 0x3) << 4) | ((data[9] & 0xf0) >> 4); - c[6] = ((data[9] & 0xf) << 2) | ((data[10] & 0xc0) >> 6); - c[7] = (data[10] & 0x3f); - // Map to ASCII - for (int i = 0; i < 8; i++) - callsign[i] = idMap[c[i]]; - callsign[8] = '\0'; - - aircraft->m_flight = QString(callsign); - aircraft->m_flightItem->setText(aircraft->m_flight); - } - else if ((tc >= 5) && (tc <= 8)) - { - // Surface position - } - else if (((tc >= 9) && (tc <= 18)) || ((tc >= 20) && (tc <= 22))) - { - // Airbourne position (9-18 baro, 20-22 GNSS) - int ss = (data[4] >> 1) & 0x3; // Surveillance status - int nicsb = data[4] & 1; // NIC supplement-B - int alt = ((data[5] & 0xff) << 4) | ((data[6] >> 4) & 0xf); // Altitude - int n = ((alt >> 1) & 0x7f0) | (alt & 0xf); - int alt_ft = n * ((alt & 0x10) ? 25 : 100) - 1000; - - aircraft->m_altitude = alt_ft; - aircraft->m_altitudeValid = true; - aircraft->m_altitudeItem->setText(QString("%1").arg(aircraft->m_altitude)); - - int t = (data[6] >> 3) & 1; // Time - int f = (data[6] >> 2) & 1; // CPR odd/even frame - int lat_cpr = ((data[6] & 3) << 15) | ((data[7] & 0xff) << 7) | ((data[8] >> 1) & 0x7f); - int lon_cpr = ((data[8] & 1) << 16) | ((data[9] & 0xff) << 8) | (data[10] & 0xff); - - aircraft->m_cprValid[f] = true; - aircraft->m_cprLat[f] = lat_cpr/131072.0f; - aircraft->m_cprLong[f] = lon_cpr/131072.0f; - - // Check if both odd and even frames are available - // See: https://mode-s.org/decode/adsb/airborne-position.html - // We could compare global + local methods to see if the positions are sensible - if (aircraft->m_cprValid[0] && aircraft->m_cprValid[1]) + if ((tc >= 1) && ((tc <= 4))) { - // Global decode using odd and even frames - - // Calculate latitude - const Real dLatEven = 360.0f/60.0f; - const Real dLatOdd = 360.0f/59.0f; - Real latEven, latOdd; - - int j = std::floor(59.0f*aircraft->m_cprLat[0] - 60.0f*aircraft->m_cprLat[1] + 0.5); - latEven = dLatEven * ((j % 60) + aircraft->m_cprLat[0]); - if (latEven >= 270.0f) - latEven -= 360.0f; - latOdd = dLatOdd * ((j % 59) + aircraft->m_cprLat[1]); - if (latOdd >= 270.0f) - latOdd -= 360.0f; - if (!f) - aircraft->m_latitude = latEven; + // Aircraft identification + int ec = data[4] & 0x7; // Emitter category + if (tc == 4) + aircraft->m_emitterCategory = categorySetA[ec]; + else if (tc == 3) + aircraft->m_emitterCategory = categorySetB[ec]; + else if (tc == 2) + aircraft->m_emitterCategory = categorySetC[ec]; else - aircraft->m_latitude = latOdd; - aircraft->m_latitudeItem->setText(QString("%1").arg(aircraft->m_latitude)); + aircraft->m_emitterCategory = QString("Reserved"); + aircraft->m_emitterCategoryItem->setText(aircraft->m_emitterCategory); - // Check if both frames in same latitude zone - int latEvenNL = cprNL(latEven); - int latOddNL = cprNL(latOdd); - if (latEvenNL == latOddNL) + // Flight/callsign - Extract 8 6-bit characters from 6 8-bit bytes, MSB first + unsigned char c[8]; + char callsign[9]; + c[0] = (data[5] >> 2) & 0x3f; // 6 + c[1] = ((data[5] & 0x3) << 4) | ((data[6] & 0xf0) >> 4); // 2+4 + c[2] = ((data[6] & 0xf) << 2) | ((data[7] & 0xc0) >> 6); // 4+2 + c[3] = (data[7] & 0x3f); // 6 + c[4] = (data[8] >> 2) & 0x3f; + c[5] = ((data[8] & 0x3) << 4) | ((data[9] & 0xf0) >> 4); + c[6] = ((data[9] & 0xf) << 2) | ((data[10] & 0xc0) >> 6); + c[7] = (data[10] & 0x3f); + // Map to ASCII + for (int i = 0; i < 8; i++) + callsign[i] = idMap[c[i]]; + callsign[8] = '\0'; + + aircraft->m_flight = QString(callsign); + aircraft->m_flightItem->setText(aircraft->m_flight); + } + else if ((tc >= 5) && (tc <= 8)) + { + // Surface position + } + else if (((tc >= 9) && (tc <= 18)) || ((tc >= 20) && (tc <= 22))) + { + // Airbourne position (9-18 baro, 20-22 GNSS) + int ss = (data[4] >> 1) & 0x3; // Surveillance status + int nicsb = data[4] & 1; // NIC supplement-B + int alt = ((data[5] & 0xff) << 4) | ((data[6] >> 4) & 0xf); // Altitude + int n = ((alt >> 1) & 0x7f0) | (alt & 0xf); + int alt_ft = n * ((alt & 0x10) ? 25 : 100) - 1000; + + aircraft->m_altitude = alt_ft; + aircraft->m_altitudeValid = true; + // setData rather than setText so it sorts numerically + aircraft->m_altitudeItem->setData(Qt::DisplayRole, m_settings.m_siUnits ? feetToMetresInt(aircraft->m_altitude) : aircraft->m_altitude); + + int t = (data[6] >> 3) & 1; // Time synchronisation to UTC + int f = (data[6] >> 2) & 1; // CPR odd/even frame - should alternate every 0.2s + int lat_cpr = ((data[6] & 3) << 15) | ((data[7] & 0xff) << 7) | ((data[8] >> 1) & 0x7f); + int lon_cpr = ((data[8] & 1) << 16) | ((data[9] & 0xff) << 8) | (data[10] & 0xff); + + aircraft->m_cprValid[f] = true; + aircraft->m_cprLat[f] = lat_cpr/131072.0f; + aircraft->m_cprLong[f] = lon_cpr/131072.0f; + aircraft->m_cprTime[f] = dateTime; + + // CPR decoding + // Refer to Technical Provisions for Mode S Services and Extended Squitter - Appendix C2.6 + // See also: https://mode-s.org/decode/adsb/airborne-position.html + // For global decoding, we need both odd and even frames + // We also need to check that both frames aren't greater than 10s apart in time (C.2.6.7), otherwise position may be out by ~10deg + // We could compare global + local methods to see if the positions are sensible + if (aircraft->m_cprValid[0] && aircraft->m_cprValid[1] + && (std::abs(aircraft->m_cprTime[0].toSecsSinceEpoch() - aircraft->m_cprTime[1].toSecsSinceEpoch()) < 10)) { - // Calculate longitude - if (!f) + // Global decode using odd and even frames (C.2.6) + + // Calculate latitude + const double dLatEven = 360.0/60.0; + const double dLatOdd = 360.0/59.0; + double latEven, latOdd; + double latitude, longitude; + int ni, m; + + int j = std::floor(59.0f*aircraft->m_cprLat[0] - 60.0f*aircraft->m_cprLat[1] + 0.5); + latEven = dLatEven * ((j % 60) + aircraft->m_cprLat[0]); + if (latEven >= 270.0f) + latEven -= 360.0f; + latOdd = dLatOdd * ((j % 59) + aircraft->m_cprLat[1]); + if (latOdd >= 270.0f) + latOdd -= 360.0f; + if (aircraft->m_cprTime[0] >= aircraft->m_cprTime[1]) + latitude = latEven; + else + latitude = latOdd; + + // Check if both frames in same latitude zone + int latEvenNL = cprNL(latEven); + int latOddNL = cprNL(latOdd); + if (latEvenNL == latOddNL) { - int ni = cprN(latEven, 0); - int m = std::floor(aircraft->m_cprLong[0] * (latEvenNL - 1) - aircraft->m_cprLong[1] * latEvenNL + 0.5f); - aircraft->m_longitude = (360.0f/ni) * ((m % ni) + aircraft->m_cprLong[0]); + // Calculate longitude + if (!f) + { + ni = cprN(latEven, 0); + m = std::floor(aircraft->m_cprLong[0] * (latEvenNL - 1) - aircraft->m_cprLong[1] * latEvenNL + 0.5f); + longitude = (360.0f/ni) * (modulus(m, ni) + aircraft->m_cprLong[0]); + } + else + { + ni = cprN(latOdd, 1); + m = std::floor(aircraft->m_cprLong[0] * (latOddNL - 1) - aircraft->m_cprLong[1] * latOddNL + 0.5f); + longitude = (360.0f/ni) * (modulus(m, ni) + aircraft->m_cprLong[1]); + } + if (longitude > 180.0f) + longitude -= 360.0f; + aircraft->m_latitude = latitude; + aircraft->m_latitudeItem->setData(Qt::DisplayRole, aircraft->m_latitude); + aircraft->m_longitude = longitude; + aircraft->m_longitudeItem->setData(Qt::DisplayRole, aircraft->m_longitude); + aircraft->m_coordinates.push_back(QVariant::fromValue(*new QGeoCoordinate(aircraft->m_latitude, aircraft->m_longitude, aircraft->m_altitude))); + updatePosition(aircraft); + } + } + else + { + // Local decode using a single aircraft position + location of receiver + // Only valid if within 180nm (C.2.6.4) + + // Caclulate latitude + const double dLatEven = 360.0/60.0; + const double dLatOdd = 360.0/59.0; + double dLat = f ? dLatOdd : dLatEven; + int j = std::floor(m_azEl.getLocationSpherical().m_latitude/dLat) + std::floor(modulus(m_azEl.getLocationSpherical().m_latitude, dLat)/dLat - aircraft->m_cprLat[f] + 0.5); + aircraft->m_latitude = dLat * (j + aircraft->m_cprLat[f]); + aircraft->m_latitudeItem->setData(Qt::DisplayRole, aircraft->m_latitude); + + // Caclulate longitude + double dLong; + int latNL = cprNL(aircraft->m_latitude); + if (f == 0) + { + if (latNL > 0) + dLong = 360.0 / latNL; + else + dLong = 360.0; } else { - int ni = cprN(latOdd, 1); - int m = std::floor(aircraft->m_cprLong[0] * (latOddNL - 1) - aircraft->m_cprLong[1] * latOddNL + 0.5f); - aircraft->m_longitude = (360.0f/ni) * ((m % ni) + aircraft->m_cprLong[1]); + if ((latNL - 1) > 0) + dLong = 360.0 / (latNL - 1); + else + dLong = 360.0; } - if (aircraft->m_longitude > 180.0f) - aircraft->m_longitude -= 360.0f; - aircraft->m_longitudeItem->setText(QString("%1").arg(aircraft->m_longitude)); + int m = std::floor(m_azEl.getLocationSpherical().m_longitude/dLong) + std::floor(modulus(m_azEl.getLocationSpherical().m_longitude, dLong)/dLong - aircraft->m_cprLong[f] + 0.5); + aircraft->m_longitude = dLong * (m + aircraft->m_cprLong[f]); + aircraft->m_longitudeItem->setData(Qt::DisplayRole, aircraft->m_longitude); + aircraft->m_coordinates.push_back(QVariant::fromValue(*new QGeoCoordinate(aircraft->m_latitude, aircraft->m_longitude, aircraft->m_altitude))); updatePosition(aircraft); } } - else + else if (tc == 19) { - // Local decode using a single aircraft position + location of receiver - // Only valid if within 180nm - - // Caclulate latitude - const Real dLatEven = 360.0f/60.0f; - const Real dLatOdd = 360.0f/59.0f; - Real dLat = f ? dLatOdd : dLatEven; - int j = std::floor(m_azEl.getLocationSpherical().m_latitude/dLat) + std::floor(modulus(m_azEl.getLocationSpherical().m_latitude, dLat)/dLat - aircraft->m_cprLat[f] + 0.5); - aircraft->m_latitude = dLat * (j + aircraft->m_cprLat[f]); - // Add suffix of L to indicate local decode - aircraft->m_latitudeItem->setText(QString("%1 L").arg(aircraft->m_latitude)); - - // Caclulate longitude - Real dLong; - int latNL = cprNL(aircraft->m_latitude); - if (f == 0) + // Airbourne velocity + int st = data[4] & 0x7; // Subtype + int ic = (data[5] >> 7) & 1; // Intent change flag + int nac = (data[5] >> 3) & 0x3; // Velocity uncertainty + if ((st == 1) || (st == 2)) { - if (latNL > 0) - dLong = 360.0 / latNL; + // Ground speed + int s_ew = (data[5] >> 2) & 1; // East-west velocity sign + int v_ew = ((data[5] & 0x3) << 8) | (data[6] & 0xff); // East-west velocity + int s_ns = (data[7] >> 7) & 1; // North-south velocity sign + int v_ns = ((data[7] & 0x7f) << 3) | ((data[8] >> 5) & 0x7); // North-south velocity + + int v_we; + int v_sn; + int v; + int h; + + if (s_ew) + v_we = -1 * (v_ew - 1); else - dLong = 360.0; - } - else - { - if ((latNL - 1) > 0) - dLong = 360.0 / (latNL - 1); + v_we = v_ew - 1; + if (s_ns) + v_sn = -1 * (v_ns - 1); else - dLong = 360.0; - } - int m = std::floor(m_azEl.getLocationSpherical().m_longitude/dLong) + std::floor(modulus(m_azEl.getLocationSpherical().m_longitude, dLong)/dLong - aircraft->m_cprLong[f] + 0.5); - aircraft->m_longitude = dLong * (m + aircraft->m_cprLong[f]); - // Add suffix of L to indicate local decode - aircraft->m_longitudeItem->setText(QString("%1 L").arg(aircraft->m_longitude)); - updatePosition(aircraft); - } - } - else if (tc == 19) - { - // Airbourne velocity - int st = data[4] & 0x7; // Subtype - int ic = (data[5] >> 7) & 1; // Intent change flag - int nac = (data[5] >> 3) & 0x3; // Velocity uncertainty - if ((st == 1) || (st == 2)) - { - // Ground speed - int s_ew = (data[5] >> 2) & 1; // East-west velocity sign - int v_ew = ((data[5] & 0x3) << 8) | (data[6] & 0xff); // East-west velocity - int s_ns = (data[7] >> 7) & 1; // North-south velocity sign - int v_ns = ((data[7] & 0x7f) << 3) | ((data[8] >> 5) & 0x7); // North-south velocity + v_sn = v_ns - 1; + v = (int)std::sqrt(v_we*v_we + v_sn*v_sn); + h = std::atan2(v_we, v_sn) * 360.0/(2.0*M_PI); + if (h < 0) + h += 360; - int v_we; - int v_sn; - int v; - int h; - - if (s_ew) - v_we = -1 * (v_ew - 1); - else - v_we = v_ew - 1; - if (s_ns) - v_sn = -1 * (v_ns - 1); - else - v_sn = v_ns - 1; - v = (int)std::sqrt(v_we*v_we + v_sn*v_sn); - h = std::atan2(v_we, v_sn) * 360.0/(2.0*M_PI); - if (h < 0) - h += 360; - - aircraft->m_heading = h; - aircraft->m_headingValid = true; - aircraft->m_speed = v; - aircraft->m_speedType = Aircraft::GS; - aircraft->m_speedValid = true; - aircraft->m_headingItem->setText(QString("%1").arg(aircraft->m_heading)); - aircraft->m_speedItem->setText(QString("%1").arg(aircraft->m_speed)); - } - else - { - // Airspeed - int s_hdg = (data[5] >> 2) & 1; // Heading status - int hdg = ((data[5] & 0x3) << 8) | (data[6] & 0xff); // Heading - if (s_hdg) - { - aircraft->m_heading = hdg/1024.0f*360.0f; + aircraft->m_heading = h; aircraft->m_headingValid = true; - aircraft->m_headingItem->setText(QString("%1").arg(aircraft->m_heading)); + aircraft->m_speed = v; + aircraft->m_speedType = Aircraft::GS; + aircraft->m_speedValid = true; + aircraft->m_headingItem->setData(Qt::DisplayRole, aircraft->m_heading); + aircraft->m_speedItem->setData(Qt::DisplayRole, m_settings.m_siUnits ? knotsToKPHInt(aircraft->m_speed) : aircraft->m_speed); } + else + { + // Airspeed + int s_hdg = (data[5] >> 2) & 1; // Heading status + int hdg = ((data[5] & 0x3) << 8) | (data[6] & 0xff); // Heading + if (s_hdg) + { + aircraft->m_heading = hdg/1024.0f*360.0f; + aircraft->m_headingValid = true; + aircraft->m_headingItem->setData(Qt::DisplayRole, aircraft->m_heading); + } - int as_t = (data[7] >> 7) & 1; // Airspeed type - int as = ((data[7] & 0x7f) << 3) | ((data[8] >> 5) & 0x7); // Airspeed + int as_t = (data[7] >> 7) & 1; // Airspeed type + int as = ((data[7] & 0x7f) << 3) | ((data[8] >> 5) & 0x7); // Airspeed - aircraft->m_speed = as; - aircraft->m_speedType = as_t ? Aircraft::IAS : Aircraft::TAS; - aircraft->m_speedValid = true; - aircraft->m_speedItem->setText(QString("%1").arg(aircraft->m_speed)); + aircraft->m_speed = as; + aircraft->m_speedType = as_t ? Aircraft::IAS : Aircraft::TAS; + aircraft->m_speedValid = true; + aircraft->m_speedItem->setData(Qt::DisplayRole, m_settings.m_siUnits ? knotsToKPHInt(aircraft->m_speed) : aircraft->m_speed); + } + int vrsrc = (data[8] >> 4) & 1; // Vertical rate source + int s_vr = (data[8] >> 3) & 1; // Vertical rate sign + int vr = ((data[8] & 0x7) << 6) | ((data[9] >> 2) & 0x3f); // Vertical rate + aircraft->m_verticalRate = (vr-1)*64*(s_vr?-1:1); + aircraft->m_verticalRateValid = true; + if (m_settings.m_siUnits) + aircraft->m_verticalRateItem->setData(Qt::DisplayRole, feetPerMinToMetresPerSecondInt(aircraft->m_verticalRate)); + else + aircraft->m_verticalRateItem->setData(Qt::DisplayRole, aircraft->m_verticalRate); + int s_dif = (data[10] >> 7) & 1; // Diff from baro alt, sign + int dif = data[10] & 0x7f; // Diff from baro alt + } + else if (tc == 28) + { + // Aircraft status + int st = data[4] & 0x7; // Subtype + int es = (data[5] >> 5) & 0x7; // Emergency state + if (st == 1) + aircraft->m_status = emergencyStatus[es]; + else + aircraft->m_status = QString(""); + aircraft->m_statusItem->setText(aircraft->m_status); + } + else if (tc == 29) + { + // Target state and status + } + else if (tc == 31) + { + // Aircraft operation status } - int vrsrc = (data[8] >> 4) & 1; // Vertical rate source - int s_vr = (data[8] >> 3) & 1; // Vertical rate sign - int vr = ((data[8] & 0x7) << 6) | ((data[9] >> 2) & 0x3f); // Vertical rate - aircraft->m_verticalRate = (vr-1)*64*(s_vr?-1:1); - aircraft->m_verticalRateValid = true; - aircraft->m_verticalRateItem->setText(QString("%1").arg(aircraft->m_verticalRate)); - int s_dif = (data[10] >> 7) & 1; // Diff from baro alt, sign - int dif = data[10] & 0x7f; // Diff from baro alt + // Update aircraft in map + if (aircraft->m_positionValid) + { + m_aircraftModel.aircraftUpdated(aircraft); + } } - else if (tc == 28) + else if (df == 18) { - // Aircraft status - int st = data[4] & 0x7; // Subtype - int es = (data[5] >> 5) & 0x7; // Emergeny state - if (st == 1) - aircraft->m_status = emergencyStatus[es]; - else - aircraft->m_status = QString(""); - aircraft->m_statusItem->setText(aircraft->m_status); + // TIS-B + qDebug() << "TIS B message cf=" << ca << " icao: " << icao; } - else if (tc == 29) - { - // Target state and status - } - else if (tc == 31) - { - // Aircraft operation status - } - - // Update aircraft in map - if (aircraft->m_positionValid) - { - m_aircraftModel.aircraftUpdated(aircraft); - } - } bool ADSBDemodGUI::handleMessage(const Message& message) @@ -613,8 +982,17 @@ bool ADSBDemodGUI::handleMessage(const Message& message) ADSBDemodReport::MsgReportADSB& report = (ADSBDemodReport::MsgReportADSB&) message; handleADSB( report.getData(), report.getDateTime(), - report.getPreambleCorrelationOnes(), - report.getPreambleCorrelationZeros()); + report.getPreambleCorrelation()); + return true; + } + else if (ADSBDemodReport::MsgReportDemodStats::match(message)) + { + ADSBDemodReport::MsgReportDemodStats& report = (ADSBDemodReport::MsgReportDemodStats&) message; + if (m_settings.m_displayDemodStats) + { + ADSBDemodStats stats = report.getDemodStats(); + ui->stats->setText(QString("ADS-B: %1 Mode-S: %2 Matches: %3 CRC: %4 Type: %5 Avg Corr: %6 Demod Time: %7 Feed Time: %8").arg(stats.m_adsbFrames).arg(stats.m_modesFrames).arg(stats.m_correlatorMatches).arg(stats.m_crcFails).arg(stats.m_typeFails).arg(CalcDb::dbPower(m_correlationAvg.instantAverage()), 1, 'f', 1).arg(stats.m_demodTime, 1, 'f', 3).arg(stats.m_feedTime, 1, 'f', 3)); + } return true; } else if (ADSBDemod::MsgConfigureADSBDemod::match(message)) @@ -680,23 +1058,19 @@ void ADSBDemodGUI::on_threshold_valueChanged(int value) applySettings(); } -void ADSBDemodGUI::on_beastEnabled_stateChanged(int state) +void ADSBDemodGUI::on_feed_clicked(bool checked) { - m_settings.m_beastEnabled = state == Qt::Checked; + m_settings.m_feedEnabled = checked; // Don't disable host/port - so they can be entered before connecting applySettings(); } -void ADSBDemodGUI::on_host_editingFinished(QString value) +void ADSBDemodGUI::on_adsbData_cellClicked(int row, int column) { - m_settings.m_beastHost = value; - applySettings(); -} - -void ADSBDemodGUI::on_port_valueChanged(int value) -{ - m_settings.m_beastPort = value; - applySettings(); + // Get ICAO of aircraft in row clicked + int icao = ui->adsbData->item(row, 0)->text().toInt(nullptr, 16); + if (m_aircraft.contains(icao)) + highlightAircraft(m_aircraft.value(icao)); } void ADSBDemodGUI::on_adsbData_cellDoubleClicked(int row, int column) @@ -725,19 +1099,7 @@ void ADSBDemodGUI::on_adsbData_cellDoubleClicked(int row, int column) { if (column == ADSB_COL_AZEL) { - if (m_trackAircraft) - { - // Restore colour of current target - m_trackAircraft->m_isBeingTracked = false; - m_aircraftModel.aircraftUpdated(m_trackAircraft); - } - // Track this aircraft - m_trackAircraft = aircraft; - if (aircraft->m_positionValid) - m_adsbDemod->setTarget(aircraft->m_azimuth, aircraft->m_elevation); - // Change colour of new target - aircraft->m_isBeingTracked = true; - m_aircraftModel.aircraftUpdated(aircraft); + targetAircraft(aircraft); } // Center map view on aircraft if it has a valid position if (aircraft->m_positionValid) @@ -756,12 +1118,197 @@ void ADSBDemodGUI::on_adsbData_cellDoubleClicked(int row, int column) } } +// Columns in table reordered +void ADSBDemodGUI::adsbData_sectionMoved(int logicalIndex, int oldVisualIndex, int newVisualIndex) +{ + m_settings.m_columnIndexes[logicalIndex] = newVisualIndex; +} + +// Column in table resized (when hidden size is 0) +void ADSBDemodGUI::adsbData_sectionResized(int logicalIndex, int oldSize, int newSize) +{ + m_settings.m_columnSizes[logicalIndex] = newSize; +} + +// Right click in ADSB table header - show column select menu +void ADSBDemodGUI::columnSelectMenu(QPoint pos) +{ + menu->popup(ui->adsbData->horizontalHeader()->viewport()->mapToGlobal(pos)); +} + +// Hide/show column when menu selected +void ADSBDemodGUI::columnSelectMenuChecked(bool checked) +{ + QAction* action = qobject_cast(sender()); + if (action != nullptr) + { + int idx = action->data().toInt(nullptr); + ui->adsbData->setColumnHidden(idx, !action->isChecked()); + } +} + +// Create column select menu item +QAction *ADSBDemodGUI::createCheckableItem(QString &text, int idx, bool checked) +{ + QAction *action = new QAction(text, this); + action->setCheckable(true); + action->setChecked(checked); + action->setData(QVariant(idx)); + connect(action, SIGNAL(triggered()), this, SLOT(columnSelectMenuChecked())); + return action; +} + void ADSBDemodGUI::on_spb_currentIndexChanged(int value) { m_settings.m_samplesPerBit = (value + 1) * 2; applySettings(); } +void ADSBDemodGUI::on_correlateFullPreamble_clicked(bool checked) +{ + m_settings.m_correlateFullPreamble = checked; + applySettings(); +} + +void ADSBDemodGUI::on_demodModeS_clicked(bool checked) +{ + m_settings.m_demodModeS = checked; + applySettings(); +} + +void ADSBDemodGUI::on_getOSNDB_clicked(bool checked) +{ + // Don't try to download while already in progress + if (m_progressDialog == nullptr) + { + // Download Opensky network database to a file + QUrl dbURL(QString(OSNDB_URL)); + connect(&m_dlm, &HttpDownloadManager::downloadComplete, this, &ADSBDemodGUI::downloadFinished); + m_progressDialog = new QProgressDialog(this); + m_progressDialog->setAttribute(Qt::WA_DeleteOnClose); + m_progressDialog->setCancelButton(nullptr); + m_progressDialog->setLabelText(QString("Downloading %1.").arg(OSNDB_URL)); + QNetworkReply *reply = m_dlm.download(dbURL, getOSNDBFilename()); + connect(reply, SIGNAL(downloadProgress(qint64,qint64)), this, SLOT(updateDownloadProgress(qint64,qint64))); + } +} + +void ADSBDemodGUI::on_getAirportDB_clicked(bool checked) +{ + // Don't try to download while already in progress + if (m_progressDialog == nullptr) + { + // Download Opensky network database to a file + QUrl dbURL(QString(AIRPORTS_URL)); + connect(&m_dlm, &HttpDownloadManager::downloadComplete, this, &ADSBDemodGUI::downloadFinished); + m_progressDialog = new QProgressDialog(this); + m_progressDialog->setAttribute(Qt::WA_DeleteOnClose); + m_progressDialog->setCancelButton(nullptr); + m_progressDialog->setLabelText(QString("Downloading %1.").arg(AIRPORTS_URL)); + QNetworkReply *reply = m_dlm.download(dbURL, getAirportDBFilename()); + connect(reply, SIGNAL(downloadProgress(qint64,qint64)), this, SLOT(updateDownloadProgress(qint64,qint64))); + } +} + +void ADSBDemodGUI::on_flightPaths_clicked(bool checked) +{ + m_settings.m_flightPaths = checked; + m_aircraftModel.setFlightPaths(checked); +} + +QString ADSBDemodGUI::getDataDir() +{ + // Get directory to store app data in (aircraft & airport databases and user-definable icons) + QStringList locations = QStandardPaths::standardLocations(QStandardPaths::AppDataLocation); + // First dir is writable + return locations[0]; +} + +QString ADSBDemodGUI::getAirportDBFilename() +{ + return getDataDir() + "/airportDatabase.csv"; +} + +QString ADSBDemodGUI::getAirportFrequenciesDBFilename() +{ + return getDataDir() + "/airportFrequenciesDatabase.csv"; +} + +QString ADSBDemodGUI::getOSNDBFilename() +{ + return getDataDir() + "/aircraftDatabase.csv"; +} + +QString ADSBDemodGUI::getFastDBFilename() +{ + return getDataDir() + "/aircraftDatabaseFast.csv"; +} + +bool ADSBDemodGUI::readOSNDB(const QString& filename) +{ + m_aircraftInfo = AircraftInformation::readOSNDB(filename); + return m_aircraftInfo != nullptr; +} + +bool ADSBDemodGUI::readFastDB(const QString& filename) +{ + m_aircraftInfo = AircraftInformation::readFastDB(filename); + return m_aircraftInfo != nullptr; +} + +void ADSBDemodGUI::updateDownloadProgress(qint64 bytesRead, qint64 totalBytes) +{ + m_progressDialog->setMaximum(totalBytes); + m_progressDialog->setValue(bytesRead); +} + +void ADSBDemodGUI::downloadFinished(const QString& filename, bool success) +{ + if (success) + { + if (filename == getOSNDBFilename()) + { + readOSNDB(filename); + // Convert to condensed format for faster loading later + m_progressDialog->setLabelText("Processing."); + AircraftInformation::writeFastDB(getFastDBFilename(), m_aircraftInfo); + m_progressDialog->close(); + m_progressDialog = nullptr; + } + else if (filename == getAirportDBFilename()) + { + m_airportInfo = AirportInformation::readAirportsDB(filename); + // Now download airport frequencies + QUrl dbURL(QString(AIRPORT_FREQUENCIES_URL)); + m_progressDialog->setLabelText(QString("Downloading %1.").arg(AIRPORT_FREQUENCIES_URL)); + QNetworkReply *reply = m_dlm.download(dbURL, getAirportFrequenciesDBFilename()); + connect(reply, SIGNAL(downloadProgress(qint64,qint64)), this, SLOT(updateDownloadProgress(qint64,qint64))); + } + else if (filename == getAirportFrequenciesDBFilename()) + { + if (m_airportInfo != nullptr) + { + AirportInformation::readFrequenciesDB(filename, m_airportInfo); + // Update airports on map + updateAirports(); + } + m_progressDialog->close(); + m_progressDialog = nullptr; + } + else + { + qDebug() << "ADSBDemodGUI::downloadFinished: Unexpected filename: " << filename; + m_progressDialog->close(); + m_progressDialog = nullptr; + } + } + else + { + m_progressDialog->close(); + m_progressDialog = nullptr; + } +} + void ADSBDemodGUI::onWidgetRolled(QWidget* widget, bool rollDown) { (void) widget; @@ -813,6 +1360,181 @@ void ADSBDemodGUI::onMenuDialogCalled(const QPoint &p) resetContextMenuType(); } +void ADSBDemodGUI::updateDeviceSetList() +{ + MainWindow *mainWindow = MainWindow::getInstance(); + std::vector& deviceUISets = mainWindow->getDeviceUISets(); + std::vector::const_iterator it = deviceUISets.begin(); + + ui->device->blockSignals(true); + + ui->device->clear(); + unsigned int deviceIndex = 0; + + for (; it != deviceUISets.end(); ++it, deviceIndex++) + { + DSPDeviceSourceEngine *deviceSourceEngine = (*it)->m_deviceSourceEngine; + DSPDeviceSinkEngine *deviceSinkEngine = (*it)->m_deviceSinkEngine; + DSPDeviceMIMOEngine *deviceMIMOEngine = (*it)->m_deviceMIMOEngine; + + if (deviceSourceEngine) { + ui->device->addItem(QString("R%1").arg(deviceIndex), deviceIndex); + } + } + + int newDeviceIndex; + + if (it != deviceUISets.begin()) + { + if (m_settings.m_deviceIndex < 0) { + ui->device->setCurrentIndex(0); + } else { + ui->device->setCurrentIndex(m_settings.m_deviceIndex); + } + + newDeviceIndex = ui->device->currentData().toInt(); + } + else + { + newDeviceIndex = -1; + } + + if (newDeviceIndex != m_settings.m_deviceIndex) + { + qDebug("ADSBDemodGUI::updateDeviceSetLists: device index changed: %d", newDeviceIndex); + m_settings.m_deviceIndex = newDeviceIndex; + } + + ui->device->blockSignals(false); +} + +void ADSBDemodGUI::on_devicesRefresh_clicked() +{ + updateDeviceSetList(); + displaySettings(); + applySettings(); +} + +void ADSBDemodGUI::on_device_currentIndexChanged(int index) +{ + if (index >= 0) + { + m_settings.m_deviceIndex = ui->device->currentData().toInt(); + applySettings(); + } +} + +void ADSBDemodGUI::updateAirports() +{ + m_airportModel.removeAllAirports(); + QHash::iterator i = m_airportInfo->begin(); + while (i != m_airportInfo->end()) + { + AirportInformation *airportInfo = i.value(); + // Calculate range to airport from My Position - One degree = 60 nautical miles + float latDiff = std::fabs(airportInfo->m_latitude - m_azEl.getLocationSpherical().m_latitude) * 60.0f; + float longDiff = std::fabs(airportInfo->m_longitude - m_azEl.getLocationSpherical().m_longitude) * 60.0f; + float range = sqrt(latDiff*latDiff+longDiff*longDiff); + // Only display airport if in range + if (range <= m_settings.m_airportRange) + { + // Only display the airport if it's large enough + if (airportInfo->m_type >= m_settings.m_airportMinimumSize) + { + // Only display heliports if enabled + if (m_settings.m_displayHeliports || (airportInfo->m_type != ADSBDemodSettings::AirportType::Heliport)) + { + m_airportModel.addAirport(airportInfo); + } + } + } + ++i; + } + // Save settings we've just used so we know if they've changed + m_currentAirportRange = m_currentAirportRange; + m_currentAirportMinimumSize = m_settings.m_airportMinimumSize; + m_currentDisplayHeliports = m_settings.m_displayHeliports; +} + +void ADSBDemodGUI::targetAircraft(Aircraft *aircraft) +{ + if (aircraft != m_trackAircraft) + { + if (m_trackAircraft) + { + // Restore colour of current target + m_trackAircraft->m_isTarget = false; + m_aircraftModel.aircraftUpdated(m_trackAircraft); + } + // Track this aircraft + m_trackAircraft = aircraft; + if (aircraft->m_positionValid) + m_adsbDemod->setTarget(aircraft->m_azimuth, aircraft->m_elevation); + // Change colour of new target + aircraft->m_isTarget = true; + m_aircraftModel.aircraftUpdated(aircraft); + } +} + +void ADSBDemodGUI::highlightAircraft(Aircraft *aircraft) +{ + if (aircraft != m_highlightAircraft) + { + if (m_highlightAircraft) + { + // Restore colour + m_highlightAircraft->m_isHighlighted = false; + m_aircraftModel.aircraftUpdated(m_highlightAircraft); + } + // Highlight this aircraft + m_highlightAircraft = aircraft; + aircraft->m_isHighlighted = true; + m_aircraftModel.aircraftUpdated(aircraft); + } + // Highlight the row in the table - always do this, as it can become + // unselected + ui->adsbData->selectRow(aircraft->m_icaoItem->row()); +} + +// Show feed dialog +void ADSBDemodGUI::feedSelect() +{ + ADSBDemodFeedDialog dialog(m_settings.m_feedHost, m_settings.m_feedPort, m_settings.m_feedFormat); + if (dialog.exec() == QDialog::Accepted) + { + m_settings.m_feedHost = dialog.m_feedHost; + m_settings.m_feedPort = dialog.m_feedPort; + m_settings.m_feedFormat = dialog.m_feedFormat; + applySettings(); + } +} + +// Show display settings dialog +void ADSBDemodGUI::on_displaySettings_clicked(bool checked) +{ + ADSBDemodDisplayDialog dialog(m_settings.m_removeTimeout, m_settings.m_airportRange, m_settings.m_airportMinimumSize, + m_settings.m_displayHeliports, m_settings.m_siUnits, + m_settings.m_tableFontName, m_settings.m_tableFontSize, + m_settings.m_displayDemodStats); + if (dialog.exec() == QDialog::Accepted) + { + bool unitsChanged = m_settings.m_siUnits != dialog.m_siUnits; + + m_settings.m_removeTimeout = dialog.m_removeTimeout; + m_settings.m_airportRange = dialog.m_airportRange; + m_settings.m_airportMinimumSize = dialog.m_airportMinimumSize; + m_settings.m_displayHeliports = dialog.m_displayHeliports; + m_settings.m_siUnits = dialog.m_siUnits; + m_settings.m_tableFontName = dialog.m_fontName; + m_settings.m_tableFontSize = dialog.m_fontSize; + m_settings.m_displayDemodStats = dialog.m_displayDemodStats; + + if (unitsChanged) + m_aircraftModel.allAircraftUpdated(); + displaySettings(); + applySettings(); + } +} ADSBDemodGUI::ADSBDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel, QWidget* parent) : ChannelGUI(parent), @@ -823,10 +1545,17 @@ ADSBDemodGUI::ADSBDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseb m_basicSettingsShown(false), m_doApplySettings(true), m_tickCount(0), - m_trackAircraft(nullptr) + m_trackAircraft(nullptr), + m_highlightAircraft(nullptr), + m_aircraftInfo(nullptr), + m_airportModel(this), + m_progressDialog(nullptr) { ui->setupUi(this); + ui->map->rootContext()->setContextProperty("aircraftModel", &m_aircraftModel); + ui->map->rootContext()->setContextProperty("airportModel", &m_airportModel); + ui->map->setSource(QUrl(QStringLiteral("qrc:/map/map.qml"))); setAttribute(Qt::WA_DeleteOnClose, true); @@ -838,6 +1567,9 @@ ADSBDemodGUI::ADSBDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseb connect(&MainCore::instance()->getMasterTimer(), SIGNAL(timeout()), this, SLOT(tick())); + CRightClickEnabler *feedRightClickEnabler = new CRightClickEnabler(ui->feed); + connect(feedRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(feedSelect())); + ui->channelPowerMeter->setColorTheme(LevelMeterSignalDB::ColorGreenAndBlue); ui->deltaFrequencyLabel->setText(QString("%1f").arg(QChar(0x94, 0x03))); @@ -862,7 +1594,40 @@ ADSBDemodGUI::ADSBDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseb connect(getInputMessageQueue(), SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages())); + // Set size of airline icons + ui->adsbData->setIconSize(QSize(85, 20)); + // Resize the table using dummy data resizeTable(); + // Allow user to reorder columns + ui->adsbData->horizontalHeader()->setSectionsMovable(true); + // Allow user to sort table by clicking on headers + ui->adsbData->setSortingEnabled(true); + // Add context menu to allow hiding/showing of columns + menu = new QMenu(ui->adsbData); + for (int i = 0; i < ui->adsbData->horizontalHeader()->count(); i++) + { + menu->addAction(createCheckableItem(ui->adsbData->horizontalHeaderItem(i)->text(), i, true)); + } + ui->adsbData->horizontalHeader()->setContextMenuPolicy(Qt::CustomContextMenu); + connect(ui->adsbData->horizontalHeader(), SIGNAL(customContextMenuRequested(QPoint)), SLOT(columnSelectMenu(QPoint))); + // Get signals when columns change + connect(ui->adsbData->horizontalHeader(), SIGNAL(sectionMoved(int, int, int)), SLOT(adsbData_sectionMoved(int, int, int))); + connect(ui->adsbData->horizontalHeader(), SIGNAL(sectionResized(int, int, int)), SLOT(adsbData_sectionResized(int, int, int))); + + // Read aircraft information database, if it has previously been downloaded + if (!readFastDB(getFastDBFilename())) + { + if (readOSNDB(getOSNDBFilename())) + AircraftInformation::writeFastDB(getFastDBFilename(), m_aircraftInfo); + } + // Read airport information database, if it has previously been downloaded + m_airportInfo = AirportInformation::readAirportsDB(getAirportDBFilename()); + if (m_airportInfo != nullptr) + AirportInformation::readFrequenciesDB(getAirportFrequenciesDBFilename(), m_airportInfo); + // Read registration prefix to country map + m_prefixMap = csvHash(":/flags/regprefixmap.csv"); + // Read operator air force to military map + m_militaryMap = csvHash(":/flags/militarymap.csv"); // Get station position Real stationLatitude = MainCore::instance()->getSettings().getLatitude(); @@ -891,7 +1656,11 @@ ADSBDemodGUI::ADSBDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseb stationObject->setProperty("coordinate", QVariant::fromValue(coords)); stationObject->setProperty("stationName", QVariant::fromValue(MainCore::instance()->getSettings().getStationName())); } + // Add airports within range of My Position + if (m_airportInfo != nullptr) + updateAirports(); + updateDeviceSetList(); displaySettings(); applySettings(true); } @@ -914,7 +1683,7 @@ void ADSBDemodGUI::applySettings(bool force) { qDebug() << "ADSBDemodGUI::applySettings"; - ADSBDemod::MsgConfigureADSBDemod* message = ADSBDemod::MsgConfigureADSBDemod::create( m_settings, force); + ADSBDemod::MsgConfigureADSBDemod* message = ADSBDemod::MsgConfigureADSBDemod::create(m_settings, force); m_adsbDemod->getInputMessageQueue()->push(message); } } @@ -939,16 +1708,58 @@ void ADSBDemodGUI::displaySettings() ui->rfBW->setValue((int)m_settings.m_rfBandwidth); ui->spb->setCurrentIndex(m_settings.m_samplesPerBit/2-1); + ui->correlateFullPreamble->setChecked(m_settings.m_correlateFullPreamble); + ui->demodModeS->setChecked(m_settings.m_demodModeS); ui->thresholdText->setText(QString("%1").arg(m_settings.m_correlationThreshold, 0, 'f', 1)); - ui->threshold->setValue((int)(m_settings.m_correlationThreshold*10)); + ui->threshold->setValue((int)(m_settings.m_correlationThreshold*10.0f)); - ui->beastEnabled->setChecked(m_settings.m_beastEnabled); - ui->host->setText(m_settings.m_beastHost); - ui->port->setValue(m_settings.m_beastPort); + ui->feed->setChecked(m_settings.m_feedEnabled); + + ui->flightPaths->setChecked(m_settings.m_flightPaths); + m_aircraftModel.setFlightPaths(m_settings.m_flightPaths); displayStreamIndex(); + QFont font(m_settings.m_tableFontName, m_settings.m_tableFontSize); + ui->adsbData->setFont(font); + + // Set units in column headers + if (m_settings.m_siUnits) + { + ui->adsbData->horizontalHeaderItem(ADSB_COL_ALTITUDE)->setText("Alt (m)"); + ui->adsbData->horizontalHeaderItem(ADSB_COL_SPEED)->setText("Spd (kph)"); + ui->adsbData->horizontalHeaderItem(ADSB_COL_VERTICALRATE)->setText("VR (m/s)"); + } + else + { + ui->adsbData->horizontalHeaderItem(ADSB_COL_ALTITUDE)->setText("Alt (ft)"); + ui->adsbData->horizontalHeaderItem(ADSB_COL_SPEED)->setText("Spd (kn)"); + ui->adsbData->horizontalHeaderItem(ADSB_COL_VERTICALRATE)->setText("VR (ft/m)"); + } + + // Order and size columns + QHeaderView *header = ui->adsbData->horizontalHeader(); + for (int i = 0; i < ADSBDEMOD_COLUMNS; i++) + { + bool hidden = m_settings.m_columnSizes[i] == 0; + header->setSectionHidden(i, hidden); + menu->actions().at(i)->setChecked(!hidden); + if (m_settings.m_columnSizes[i] > 0) + ui->adsbData->setColumnWidth(i, m_settings.m_columnSizes[i]); + header->moveSection(header->visualIndex(i), m_settings.m_columnIndexes[i]); + } + + // Only update airports on map if settings have changed + if ((m_airportInfo != nullptr) + && ((m_settings.m_airportRange != m_currentAirportRange) + || (m_settings.m_airportMinimumSize != m_currentAirportMinimumSize) + || (m_settings.m_displayHeliports != m_currentDisplayHeliports))) + updateAirports(); + + if (!m_settings.m_displayDemodStats) + ui->stats->setText(""); + blockApplySettings(false); } @@ -1031,36 +1842,53 @@ void ADSBDemodGUI::tick() void ADSBDemodGUI::resizeTable() { + // Fill table with a row of dummy data that will size the columns nicely int row = ui->adsbData->rowCount(); ui->adsbData->setRowCount(row + 1); ui->adsbData->setItem(row, ADSB_COL_ICAO, new QTableWidgetItem("ICAO ID")); - ui->adsbData->setItem(row, ADSB_COL_FLIGHT, new QTableWidgetItem("Flight No")); - ui->adsbData->setItem(row, ADSB_COL_LATITUDE, new QTableWidgetItem("-90.00000 L")); - ui->adsbData->setItem(row, ADSB_COL_LONGITUDE, new QTableWidgetItem("-180.00000 L")); + ui->adsbData->setItem(row, ADSB_COL_FLIGHT, new QTableWidgetItem("Flight No.")); + ui->adsbData->setItem(row, ADSB_COL_MODEL, new QTableWidgetItem("Aircraft12345")); + ui->adsbData->setItem(row, ADSB_COL_AIRLINE, new QTableWidgetItem("airbrigdecargo1")); ui->adsbData->setItem(row, ADSB_COL_ALTITUDE, new QTableWidgetItem("Alt (ft)")); - ui->adsbData->setItem(row, ADSB_COL_SPEED, new QTableWidgetItem("Sp (kn)")); + ui->adsbData->setItem(row, ADSB_COL_SPEED, new QTableWidgetItem("Spd (kn)")); ui->adsbData->setItem(row, ADSB_COL_HEADING, new QTableWidgetItem("Hd (o)")); - ui->adsbData->setItem(row, ADSB_COL_VERTICALRATE, new QTableWidgetItem("Climb")); - ui->adsbData->setItem(row, ADSB_COL_CATEGORY, new QTableWidgetItem("Category")); - ui->adsbData->setItem(row, ADSB_COL_STATUS, new QTableWidgetItem("No emergency")); + ui->adsbData->setItem(row, ADSB_COL_VERTICALRATE, new QTableWidgetItem("VR (ft/m)")); ui->adsbData->setItem(row, ADSB_COL_RANGE, new QTableWidgetItem("D (km)")); ui->adsbData->setItem(row, ADSB_COL_AZEL, new QTableWidgetItem("Az/El (o)")); + ui->adsbData->setItem(row, ADSB_COL_LATITUDE, new QTableWidgetItem("-90.00000")); + ui->adsbData->setItem(row, ADSB_COL_LONGITUDE, new QTableWidgetItem("-180.00000")); + ui->adsbData->setItem(row, ADSB_COL_CATEGORY, new QTableWidgetItem("Heavy")); + ui->adsbData->setItem(row, ADSB_COL_STATUS, new QTableWidgetItem("No emergency")); + ui->adsbData->setItem(row, ADSB_COL_REGISTRATION, new QTableWidgetItem("G-12345")); + ui->adsbData->setItem(row, ADSB_COL_COUNTRY, new QTableWidgetItem("Country")); + ui->adsbData->setItem(row, ADSB_COL_REGISTERED, new QTableWidgetItem("Registered")); + ui->adsbData->setItem(row, ADSB_COL_MANUFACTURER, new QTableWidgetItem("The Boeing Company")); + ui->adsbData->setItem(row, ADSB_COL_OWNER, new QTableWidgetItem("British Airways")); + ui->adsbData->setItem(row, ADSB_COL_OPERATOR_ICAO, new QTableWidgetItem("Operator")); ui->adsbData->setItem(row, ADSB_COL_TIME, new QTableWidgetItem("99:99:99")); ui->adsbData->setItem(row, ADSB_COL_FRAMECOUNT, new QTableWidgetItem("Frames")); - ui->adsbData->setItem(row, ADSB_COL_CORRELATION, new QTableWidgetItem("-99.9/-99.9/=99.9")); + ui->adsbData->setItem(row, ADSB_COL_CORRELATION, new QTableWidgetItem("0.001/0.001/0.001")); ui->adsbData->resizeColumnsToContents(); ui->adsbData->removeCellWidget(row, ADSB_COL_ICAO); ui->adsbData->removeCellWidget(row, ADSB_COL_FLIGHT); - ui->adsbData->removeCellWidget(row, ADSB_COL_LATITUDE); - ui->adsbData->removeCellWidget(row, ADSB_COL_LONGITUDE); + ui->adsbData->removeCellWidget(row, ADSB_COL_MODEL); + ui->adsbData->removeCellWidget(row, ADSB_COL_AIRLINE); ui->adsbData->removeCellWidget(row, ADSB_COL_ALTITUDE); ui->adsbData->removeCellWidget(row, ADSB_COL_SPEED); ui->adsbData->removeCellWidget(row, ADSB_COL_HEADING); ui->adsbData->removeCellWidget(row, ADSB_COL_VERTICALRATE); - ui->adsbData->removeCellWidget(row, ADSB_COL_CATEGORY); - ui->adsbData->removeCellWidget(row, ADSB_COL_STATUS); ui->adsbData->removeCellWidget(row, ADSB_COL_RANGE); ui->adsbData->removeCellWidget(row, ADSB_COL_AZEL); + ui->adsbData->removeCellWidget(row, ADSB_COL_LATITUDE); + ui->adsbData->removeCellWidget(row, ADSB_COL_LONGITUDE); + ui->adsbData->removeCellWidget(row, ADSB_COL_CATEGORY); + ui->adsbData->removeCellWidget(row, ADSB_COL_STATUS); + ui->adsbData->removeCellWidget(row, ADSB_COL_REGISTRATION); + ui->adsbData->removeCellWidget(row, ADSB_COL_COUNTRY); + ui->adsbData->removeCellWidget(row, ADSB_COL_REGISTERED); + ui->adsbData->removeCellWidget(row, ADSB_COL_MANUFACTURER); + ui->adsbData->removeCellWidget(row, ADSB_COL_OWNER); + ui->adsbData->removeCellWidget(row, ADSB_COL_OPERATOR_ICAO); ui->adsbData->removeCellWidget(row, ADSB_COL_TIME); ui->adsbData->removeCellWidget(row, ADSB_COL_FRAMECOUNT); ui->adsbData->removeCellWidget(row, ADSB_COL_CORRELATION); diff --git a/plugins/channelrx/demodadsb/adsbdemodgui.h b/plugins/channelrx/demodadsb/adsbdemodgui.h index c2719bc5d..0da28b19f 100644 --- a/plugins/channelrx/demodadsb/adsbdemodgui.h +++ b/plugins/channelrx/demodadsb/adsbdemodgui.h @@ -20,9 +20,11 @@ #define INCLUDE_ADSBDEMODGUI_H #include +#include #include #include #include +#include #include "channel/channelgui.h" #include "dsp/dsptypes.h" @@ -31,18 +33,46 @@ #include "util/messagequeue.h" #include "util/azel.h" #include "util/movingaverage.h" +#include "util/httpdownloadmanager.h" #include "adsbdemodsettings.h" +#include "ourairportsdb.h" +#include "osndb.h" class PluginAPI; class DeviceUISet; class BasebandSampleSink; class ADSBDemod; +class WebAPIAdapterInterface; +class HttpDownloadManager; +class ADSBDemodGUI; namespace Ui { class ADSBDemodGUI; } +// Custom widget to allow formatted decimal numbers to be sorted numerically +class CustomDoubleTableWidgetItem : public QTableWidgetItem +{ +public: + CustomDoubleTableWidgetItem(const QString text = QString("")) : + QTableWidgetItem(text) + { + } + + bool operator <(const QTableWidgetItem& other) const + { + // Treat "" as less than 0 + QString thisText = text(); + QString otherText = other.text(); + if (thisText == "") + return true; + if (otherText == "") + return false; + return thisText.toDouble() < otherText.toDouble(); + } +}; + // Data about an aircraft extracted from an ADS-B frames struct Aircraft { int m_icao; // 24-bit ICAO aircraft address @@ -76,31 +106,49 @@ struct Aircraft { bool m_cprValid[2]; Real m_cprLat[2]; Real m_cprLong[2]; + QDateTime m_cprTime[2]; int m_adsbFrameCount; // Number of ADS-B frames for this aircraft float m_minCorrelation; float m_maxCorrelation; float m_correlation; - bool m_isBeingTracked; // Are we tracking this aircraft + MovingAverageUtil m_correlationAvg; + + bool m_isTarget; // Are we targetting this aircraft (sending az/el to rotator) + bool m_isHighlighted; // Are we highlighting this aircraft in the table and map + bool m_showAll; + + QVariantList m_coordinates; // Coordinates we've recorded the aircraft at + + AircraftInformation *m_aircraftInfo; // Info about the aircraft from the database + ADSBDemodGUI *m_gui; // GUI table items for above data QTableWidgetItem *m_icaoItem; QTableWidgetItem *m_flightItem; + QTableWidgetItem *m_modelItem; + QTableWidgetItem *m_airlineItem; QTableWidgetItem *m_latitudeItem; QTableWidgetItem *m_longitudeItem; QTableWidgetItem *m_altitudeItem; QTableWidgetItem *m_speedItem; QTableWidgetItem *m_headingItem; QTableWidgetItem *m_verticalRateItem; + CustomDoubleTableWidgetItem *m_rangeItem; + QTableWidgetItem *m_azElItem; QTableWidgetItem *m_emitterCategoryItem; QTableWidgetItem *m_statusItem; - QTableWidgetItem *m_rangeItem; - QTableWidgetItem *m_azElItem; + QTableWidgetItem *m_registrationItem; + QTableWidgetItem *m_countryItem; + QTableWidgetItem *m_registeredItem; + QTableWidgetItem *m_manufacturerNameItem; + QTableWidgetItem *m_ownerItem; + QTableWidgetItem *m_operatorICAOItem; QTableWidgetItem *m_timeItem; QTableWidgetItem *m_adsbFrameCountItem; QTableWidgetItem *m_correlationItem; - Aircraft() : + Aircraft(ADSBDemodGUI *gui) : m_icao(0), m_latitude(0), m_longitude(0), @@ -119,7 +167,11 @@ struct Aircraft { m_minCorrelation(INFINITY), m_maxCorrelation(-INFINITY), m_correlation(0.0f), - m_isBeingTracked(false) + m_isTarget(false), + m_isHighlighted(false), + m_showAll(false), + m_aircraftInfo(nullptr), + m_gui(gui) { for (int i = 0; i < 2; i++) { @@ -128,16 +180,24 @@ struct Aircraft { // These are deleted by QTableWidget m_icaoItem = new QTableWidgetItem(); m_flightItem = new QTableWidgetItem(); - m_latitudeItem = new QTableWidgetItem(); - m_longitudeItem = new QTableWidgetItem(); + m_modelItem = new QTableWidgetItem(); + m_airlineItem = new QTableWidgetItem(); m_altitudeItem = new QTableWidgetItem(); m_speedItem = new QTableWidgetItem(); m_headingItem = new QTableWidgetItem(); m_verticalRateItem = new QTableWidgetItem(); + m_rangeItem = new CustomDoubleTableWidgetItem(); + m_azElItem = new QTableWidgetItem(); + m_latitudeItem = new QTableWidgetItem(); + m_longitudeItem = new QTableWidgetItem(); m_emitterCategoryItem = new QTableWidgetItem(); m_statusItem = new QTableWidgetItem(); - m_rangeItem = new QTableWidgetItem(); - m_azElItem = new QTableWidgetItem(); + m_registrationItem = new QTableWidgetItem(); + m_countryItem = new QTableWidgetItem(); + m_registeredItem = new QTableWidgetItem(); + m_manufacturerNameItem = new QTableWidgetItem(); + m_ownerItem = new QTableWidgetItem(); + m_operatorICAOItem = new QTableWidgetItem(); m_timeItem = new QTableWidgetItem(); m_adsbFrameCountItem = new QTableWidgetItem(); m_correlationItem = new QTableWidgetItem(); @@ -155,7 +215,11 @@ public: headingRole = Qt::UserRole + 2, adsbDataRole = Qt::UserRole + 3, aircraftImageRole = Qt::UserRole + 4, - bubbleColourRole = Qt::UserRole + 5 + bubbleColourRole = Qt::UserRole + 5, + aircraftPathRole = Qt::UserRole + 6, + showAllRole = Qt::UserRole + 7, + highlightedRole = Qt::UserRole + 8, + targetRole = Qt::UserRole + 9 }; Q_INVOKABLE void addAircraft(Aircraft *aircraft) { @@ -171,6 +235,12 @@ public: QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; + bool setData(const QModelIndex &index, const QVariant& value, int role = Qt::EditRole) override; + + Qt::ItemFlags flags(const QModelIndex &index) const override { + return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsEditable; + } + void aircraftUpdated(Aircraft *aircraft) { int row = m_aircrafts.indexOf(aircraft); if (row >= 0) @@ -180,6 +250,19 @@ public: } } + void allAircraftUpdated() { + /* + // Not sure why this doesn't work - it should be more efficient + // than the following code + emit dataChanged(index(0), index(rowCount())); + */ + for (int i = 0; i < m_aircrafts.count(); i++) + { + QModelIndex idx = index(i); + emit dataChanged(idx, idx); + } + } + void removeAircraft(Aircraft *aircraft) { int row = m_aircrafts.indexOf(aircraft); if (row >= 0) @@ -197,11 +280,136 @@ public: roles[adsbDataRole] = "adsbData"; roles[aircraftImageRole] = "aircraftImage"; roles[bubbleColourRole] = "bubbleColour"; + roles[aircraftPathRole] = "aircraftPath"; + roles[showAllRole] = "showAll"; + roles[highlightedRole] = "highlighted"; + roles[targetRole] = "target"; return roles; } + void setFlightPaths(bool flightPaths) + { + m_flightPaths = flightPaths; + allAircraftUpdated(); + } + private: QList m_aircrafts; + bool m_flightPaths; +}; + +// Airport data model used by QML map item +class AirportModel : public QAbstractListModel { + Q_OBJECT + +public: + using QAbstractListModel::QAbstractListModel; + enum MarkerRoles { + positionRole = Qt::UserRole + 1, + airportDataRole = Qt::UserRole + 2, + airportDataRowsRole = Qt::UserRole + 3, + airportImageRole = Qt::UserRole + 4, + bubbleColourRole = Qt::UserRole + 5, + showFreqRole = Qt::UserRole + 6, + selectedFreqRole = Qt::UserRole + 7 + }; + + AirportModel(ADSBDemodGUI *gui) : + m_gui(gui) + { + } + + Q_INVOKABLE void addAirport(AirportInformation *airport) { + QString text; + int rows; + + beginInsertRows(QModelIndex(), rowCount(), rowCount()); + m_airports.append(airport); + airportFreq(airport, text, rows); + m_airportDataFreq.append(text); + m_airportDataFreqRows.append(rows); + m_showFreq.append(false); + endInsertRows(); + } + + void removeAirport(AirportInformation *airport) { + int row = m_airports.indexOf(airport); + if (row >= 0) + { + beginRemoveRows(QModelIndex(), row, row); + m_airports.removeAt(row); + m_airportDataFreq.removeAt(row); + m_airportDataFreqRows.removeAt(row); + m_showFreq.removeAt(row); + endRemoveRows(); + } + } + + void removeAllAirports() { + beginRemoveRows(QModelIndex(), 0, m_airports.count()); + m_airports.clear(); + m_airportDataFreq.clear(); + m_airportDataFreqRows.clear(); + m_showFreq.clear(); + endRemoveRows(); + } + + int rowCount(const QModelIndex &parent = QModelIndex()) const override { + Q_UNUSED(parent) + return m_airports.count(); + } + + QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; + + bool setData(const QModelIndex &index, const QVariant& value, int role = Qt::EditRole) override; + + Qt::ItemFlags flags(const QModelIndex &index) const override { + return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsEditable; + } + + void airportFreq(AirportInformation *airport, QString& text, int& rows) { + // Create the text to go in the bubble next to the airport + // Display name and frequencies + QStringList list; + + list.append(QString("%1: %2").arg(airport->m_ident).arg(airport->m_name)); + rows = 1; + for (int i = 0; i < airport->m_frequencies.size(); i++) + { + AirportInformation::FrequencyInformation *frequencyInfo = airport->m_frequencies[i]; + list.append(QString("%1: %2 MHz").arg(frequencyInfo->m_type).arg(frequencyInfo->m_frequency)); + rows++; + } + text = list.join("\n"); + } + + void airportUpdated(AirportInformation *airport) { + int row = m_airports.indexOf(airport); + if (row >= 0) + { + QModelIndex idx = index(row); + emit dataChanged(idx, idx); + } + } + + QHash roleNames() const { + QHash roles; + roles[positionRole] = "position"; + roles[airportDataRole] = "airportData"; + roles[airportDataRowsRole] = "airportDataRows"; + roles[airportImageRole] = "airportImage"; + roles[bubbleColourRole] = "bubbleColour"; + roles[showFreqRole] = "showFreq"; + roles[selectedFreqRole] = "selectedFreq"; + return roles; + } + +private: + ADSBDemodGUI *m_gui; + QList m_airports; + QList m_airportDataFreq; + QList m_airportDataFreqRows; + QList m_showFreq; }; class ADSBDemodGUI : public ChannelGUI { @@ -215,6 +423,10 @@ public: QByteArray serialize() const; bool deserialize(const QByteArray& data); virtual MessageQueue *getInputMessageQueue() { return &m_inputMessageQueue; } + void highlightAircraft(Aircraft *aircraft); + void targetAircraft(Aircraft *aircraft); + bool setFrequency(float frequency); + bool useSIUints() { return m_settings.m_siUnits; } public slots: void channelMarkerChangedByCursor(); @@ -233,13 +445,30 @@ private: uint32_t m_tickCount; MessageQueue m_inputMessageQueue; - QHash m_aircraft; // Hashed on ICAO + QHash m_aircraft; // Hashed on ICAO + QHash *m_aircraftInfo; + QHash *m_airportInfo; // Hashed on id AircraftModel m_aircraftModel; + AirportModel m_airportModel; + QHash m_airlineIcons; // Hashed on airline ICAO + QHash m_flagIcons; // Hashed on country + QHash *m_prefixMap; // Registration to country (flag name) + QHash *m_militaryMap; // Operator airforce to military (flag name) AzEl m_azEl; // Position of station Aircraft *m_trackAircraft; // Aircraft we want to track in Channel Report - MovingAverageUtil m_correlationOnesAvg; - MovingAverageUtil m_correlationZerosAvg; + MovingAverageUtil m_correlationAvg; + Aircraft *m_highlightAircraft; // Aircraft we want to highlight, when selected in table + + float m_currentAirportRange; // Current settings, so we only update if changed + ADSBDemodSettings::AirportType m_currentAirportMinimumSize; + bool m_currentDisplayHeliports; + + QMenu *menu; // Column select context menu + + WebAPIAdapterInterface *m_webAPIAdapterInterface; + HttpDownloadManager m_dlm; + QProgressDialog *m_progressDialog; explicit ADSBDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel, QWidget* parent = 0); virtual ~ADSBDemodGUI(); @@ -250,8 +479,22 @@ private: void displayStreamIndex(); bool handleMessage(const Message& message); void updatePosition(Aircraft *aircraft); - void handleADSB(const QByteArray data, const QDateTime dateTime, float correlationOnes, float correlationZeros); + void handleADSB(const QByteArray data, const QDateTime dateTime, float correlation); void resizeTable(); + QString getDataDir(); + QString getAirportDBFilename(); + QString getAirportFrequenciesDBFilename(); + QString getOSNDBFilename(); + QString getFastDBFilename(); + void readAirportDB(const QString& filename); + void readAirportFrequenciesDB(const QString& filename); + bool readOSNDB(const QString& filename); + bool readFastDB(const QString& filename); + void updateAirports(); + QIcon *getAirlineIcon(const QString &operatorICAO); + QIcon *getFlagIcon(const QString &country); + void updateDeviceSetList(); + QAction *createCheckableItem(QString& text, int idx, bool checked); void leaveEvent(QEvent*); void enterEvent(QEvent*); @@ -260,15 +503,29 @@ private slots: void on_deltaFrequency_changed(qint64 value); void on_rfBW_valueChanged(int value); void on_threshold_valueChanged(int value); + void on_adsbData_cellClicked(int row, int column); void on_adsbData_cellDoubleClicked(int row, int column); + void adsbData_sectionMoved(int logicalIndex, int oldVisualIndex, int newVisualIndex); + void adsbData_sectionResized(int logicalIndex, int oldSize, int newSize); + void columnSelectMenu(QPoint pos); + void columnSelectMenuChecked(bool checked = false); void on_spb_currentIndexChanged(int value); - void on_beastEnabled_stateChanged(int state); - void on_host_editingFinished(QString value); - void on_port_valueChanged(int value); + void on_correlateFullPreamble_clicked(bool checked=false); + void on_demodModeS_clicked(bool checked=false); + void on_feed_clicked(bool checked=false); + void on_getOSNDB_clicked(bool checked = false); + void on_getAirportDB_clicked(bool checked = false); + void on_flightPaths_clicked(bool checked = false); void onWidgetRolled(QWidget* widget, bool rollDown); void onMenuDialogCalled(const QPoint& p); void handleInputMessages(); void tick(); + void updateDownloadProgress(qint64 bytesRead, qint64 totalBytes); + void downloadFinished(const QString& filename, bool success); + void on_devicesRefresh_clicked(); + void on_device_currentIndexChanged(int index); + void feedSelect(); + void on_displaySettings_clicked(bool checked=false); signals: void homePositionChanged(); }; diff --git a/plugins/channelrx/demodadsb/adsbdemodgui.ui b/plugins/channelrx/demodadsb/adsbdemodgui.ui index 1f4170f4d..1829da1d0 100644 --- a/plugins/channelrx/demodadsb/adsbdemodgui.ui +++ b/plugins/channelrx/demodadsb/adsbdemodgui.ui @@ -7,7 +7,7 @@ 0 0 350 - 1019 + 1046 @@ -37,7 +37,7 @@ 0 0 340 - 101 + 141 @@ -326,6 +326,39 @@ + + + + Demodulate all Mode-S frames, not just ADS-B + + + S + + + true + + + + + + + Qt::Vertical + + + + + + + Correlate against full preamble. + + + FP + + + true + + + @@ -342,10 +375,10 @@ - Correlation threshold in dB. Lower values will increase the number of frames that can be received, but require more processing. + Correlation threshold in dB. Lower values will increase the number of frames that can be received, but require more processing and possibly result in invalid frames. - -990 + -450 0 @@ -354,7 +387,7 @@ 1 - -500 + 0 @@ -376,58 +409,132 @@ - + - Enable feeding of received ADS-B messages in Beast binary format to the specifed server + Download the latest Opensky-Network aircraft database (80MB) - Feed + ... + + + + :/icons/aircraft.png:/icons/aircraft.png - - - Server - - - - - + - Hostname of the server to feed + Download the latest OurAirports airport databases (10MB) - feed.adsbexchange.com + ... + + + + :/icons/controltower.png:/icons/controltower.png - + + + Open display settings dialog + - Port + ... + + + + :/listing.png:/listing.png - - + + + Display flight paths + + + ^ + + + + :/logarithmic.png:/logarithmic.png + + + true + + + true + + + + + + + Enable feeding of received ADS-B messages to the specifed server. Right click for settings. + + + ... + + + + :/txon.png:/txon.png + + + true + + + + + + + Demodulator statistics + + + - + + + + + + + Qt::Horizontal + + - 60 - 0 + 40 + 20 + + + + - Port the server is listening on + Refresh device list - - 1024 + + ... - - 65535 + + + :/recycle.png:/recycle.png - - 30005 + + + + + + Device + + + + + + + Receive device set to set frequency on when selecting an ATC frequency on the map @@ -439,7 +546,7 @@ 0 - 114 + 140 341 291 @@ -450,11 +557,6 @@ 0 - - - Liberation Mono - - ADS-B Data @@ -476,11 +578,6 @@ - - - Liberation Mono - - QAbstractItemView::NoEditTriggers @@ -489,7 +586,7 @@ ICAO ID - International Civil Aviation Organization identifier. Links to www.planespotters.net + Aircraft International Civil Aviation Organization identifier. Links to www.planespotters.net @@ -500,6 +597,70 @@ Commercial flight number. Links to www.flightradar24.com + + + Aircraft + + + Aircraft model + + + + + Airline + + + Airline logo + + + + + Alt (ft) + + + Altitude in feet or metres + + + + + Spd (kn) + + + Speed in knots or kilometres per hour + + + + + Hd (°) + + + Aircraft heading in degrees + + + + + VR (ft/m) + + + Vertical climb rate in feet per minute or metres per second + + + + + D (km) + + + Range or distance of aircraft from home location + + + + + Az/El (°) + + + Azimuth and elevation to aircraft from My Position. Double click to set as target. + + Lat (°) @@ -518,39 +679,7 @@ - Alt (ft) - - - Altitude in feet - - - - - Sp (kn) - - - Speed in knots - - - - - Hd (°) - - - Aircraft heading in degrees - - - - - Climb - - - Climbing rate in feet per minute - - - - - Category + Cat Aircraft standard category @@ -561,23 +690,55 @@ Status - Aircraft standard status + Aircraft emergency status - D (km) + Reg - Range or distance of aircraft to home location + Aircraft registration - Az/El (°) + Country - Aircraft azimuth and elevation from home point in degrees + Country of registration + + + + + Registered + + + Date aircraft was registered + + + + + Manufacturer + + + Aircraft manufacturer + + + + + Owner + + + Owner of the aircraft + + + + + Operator + + + Aircraft operator ICAO code @@ -585,7 +746,7 @@ Updated - Last time updated + Time when the last ADS-B message from this aircraft was received. @@ -593,7 +754,7 @@ Frames - Number of frames received + Number of ADS-B frames received from this aircraft @@ -601,7 +762,7 @@ Correlation - Correlation power min/avg/max in dB + Correlation values for received frames. min/avg/max @@ -612,7 +773,7 @@ 10 - 420 + 450 331 581 @@ -653,18 +814,18 @@ 100 - 400 + 500 - Aircraft location map + Aircraft map QQuickWidget::SizeRootObjectToView - qrc:/map.qml + @@ -702,14 +863,10 @@ rfBW spb threshold - beastEnabled - host - port - adsbData - map + diff --git a/plugins/channelrx/demodadsb/adsbdemodreport.cpp b/plugins/channelrx/demodadsb/adsbdemodreport.cpp index 14c2a6d17..4fea5b7c3 100644 --- a/plugins/channelrx/demodadsb/adsbdemodreport.cpp +++ b/plugins/channelrx/demodadsb/adsbdemodreport.cpp @@ -19,3 +19,4 @@ #include "adsbdemodreport.h" MESSAGE_CLASS_DEFINITION(ADSBDemodReport::MsgReportADSB, Message) +MESSAGE_CLASS_DEFINITION(ADSBDemodReport::MsgReportDemodStats, Message) diff --git a/plugins/channelrx/demodadsb/adsbdemodreport.h b/plugins/channelrx/demodadsb/adsbdemodreport.h index 11ff4c690..cf8ccee72 100644 --- a/plugins/channelrx/demodadsb/adsbdemodreport.h +++ b/plugins/channelrx/demodadsb/adsbdemodreport.h @@ -25,6 +25,7 @@ #include "dsp/dsptypes.h" #include "util/message.h" +#include "adsbdemodstats.h" class ADSBDemodReport : public QObject { @@ -36,30 +37,48 @@ public: public: QByteArray getData() const { return m_data; } QDateTime getDateTime() const { return m_dateTime; } - float getPreambleCorrelationOnes() const { return m_premableCorrelationOnes; } - float getPreambleCorrelationZeros() const { return m_premableCorrelationZeros; } + float getPreambleCorrelation() const { return m_preambleCorrelation; } - static MsgReportADSB* create(QByteArray data, float premableCorrelationOnes, float premableCorrelationZeros) + static MsgReportADSB* create(QByteArray data, float preambleCorrelation) { - return new MsgReportADSB(data, premableCorrelationOnes, premableCorrelationZeros); + return new MsgReportADSB(data, preambleCorrelation); } private: QByteArray m_data; QDateTime m_dateTime; - float m_premableCorrelationOnes; - float m_premableCorrelationZeros; + float m_preambleCorrelation; - MsgReportADSB(QByteArray data, float premableCorrelationOnes, float premableCorrelationZeros) : + MsgReportADSB(QByteArray data, float preambleCorrelation) : Message(), m_data(data), - m_premableCorrelationOnes(premableCorrelationOnes), - m_premableCorrelationZeros(premableCorrelationZeros) + m_preambleCorrelation(preambleCorrelation) { m_dateTime = QDateTime::currentDateTime(); } }; + class MsgReportDemodStats : public Message { + MESSAGE_CLASS_DECLARATION + + public: + ADSBDemodStats getDemodStats() const { return m_demodStats; } + + static MsgReportDemodStats* create(ADSBDemodStats demodStats) + { + return new MsgReportDemodStats(demodStats); + } + + private: + ADSBDemodStats m_demodStats; + + MsgReportDemodStats(ADSBDemodStats demodStats) : + Message(), + m_demodStats(demodStats) + { + } + }; + public: ADSBDemodReport() {} ~ADSBDemodReport() {} diff --git a/plugins/channelrx/demodadsb/adsbdemodsettings.cpp b/plugins/channelrx/demodadsb/adsbdemodsettings.cpp index 1c3804bf4..b7a820ac8 100644 --- a/plugins/channelrx/demodadsb/adsbdemodsettings.cpp +++ b/plugins/channelrx/demodadsb/adsbdemodsettings.cpp @@ -34,12 +34,13 @@ void ADSBDemodSettings::resetToDefaults() { m_inputFrequencyOffset = 0; m_rfBandwidth = 2*1300000; - m_correlationThreshold = -50.0f; + m_correlationThreshold = -20.0f; m_samplesPerBit = 4; m_removeTimeout = 60; - m_beastEnabled = false; - m_beastHost = "feed.adsbexchange.com"; - m_beastPort = 30005; + m_feedEnabled = false; + m_feedHost = "feed.adsbexchange.com"; + m_feedPort = 30005; + m_feedFormat = BeastBinary; m_rgbColor = QColor(255, 0, 0).rgb(); m_title = "ADS-B Demodulator"; m_streamIndex = 0; @@ -48,6 +49,22 @@ void ADSBDemodSettings::resetToDefaults() m_reverseAPIPort = 8888; m_reverseAPIDeviceIndex = 0; m_reverseAPIChannelIndex = 0; + m_airportRange = 100; + m_airportMinimumSize = AirportType::Medium; + m_displayHeliports = false; + m_flightPaths = true; + m_siUnits = false; + m_tableFontName = "Liberation Sans"; + m_tableFontSize = 9; + m_displayDemodStats = true; + m_correlateFullPreamble = true; + m_demodModeS = false; + m_deviceIndex = -1; + for (int i = 0; i < ADSBDEMOD_COLUMNS; i++) + { + m_columnIndexes[i] = i; + m_columnSizes[i] = -1; // Autosize + } } QByteArray ADSBDemodSettings::serialize() const @@ -58,9 +75,9 @@ QByteArray ADSBDemodSettings::serialize() const s.writeReal(3, m_correlationThreshold); s.writeS32(4, m_samplesPerBit); s.writeS32(5, m_removeTimeout); - s.writeBool(6, m_beastEnabled); - s.writeString(7, m_beastHost); - s.writeU32(8, m_beastPort); + s.writeBool(6, m_feedEnabled); + s.writeString(7, m_feedHost); + s.writeU32(8, m_feedPort); s.writeU32(9, m_rgbColor); if (m_channelMarker) { @@ -74,6 +91,24 @@ QByteArray ADSBDemodSettings::serialize() const s.writeU32(16, m_reverseAPIChannelIndex); s.writeS32(17, m_streamIndex); + s.writeFloat(18, m_airportRange); + s.writeS32(19, (int)m_airportMinimumSize); + s.writeBool(20, m_displayHeliports); + s.writeBool(21, m_flightPaths); + s.writeS32(22, m_deviceIndex); + s.writeBool(23, m_siUnits); + s.writeS32(24, (int)m_feedFormat); + s.writeString(25, m_tableFontName); + s.writeS32(26, m_tableFontSize); + s.writeBool(27, m_displayDemodStats); + s.writeBool(28, m_correlateFullPreamble); + s.writeBool(29, m_demodModeS); + + for (int i = 0; i < ADSBDEMOD_COLUMNS; i++) + s.writeS32(100 + i, m_columnIndexes[i]); + for (int i = 0; i < ADSBDEMOD_COLUMNS; i++) + s.writeS32(200 + i, m_columnSizes[i]); + return s.final(); } @@ -102,16 +137,16 @@ bool ADSBDemodSettings::deserialize(const QByteArray& data) d.readS32(1, &tmp, 0); m_inputFrequencyOffset = tmp; d.readReal(2, &m_rfBandwidth, 2*1300000); - d.readReal(3, &m_correlationThreshold, -50.0f); + d.readReal(3, &m_correlationThreshold, 0.0f); d.readS32(4, &m_samplesPerBit, 4); d.readS32(5, &m_removeTimeout, 60); - d.readBool(6, &m_beastEnabled, false); - d.readString(7, &m_beastHost, "feed.adsbexchange.com"); + d.readBool(6, &m_feedEnabled, false); + d.readString(7, &m_feedHost, "feed.adsbexchange.com"); d.readU32(8, &utmp, 0); if ((utmp > 1023) && (utmp < 65535)) { - m_beastPort = utmp; + m_feedPort = utmp; } else { - m_beastPort = 30005; + m_feedPort = 30005; } d.readU32(9, &m_rgbColor, QColor(255, 0, 0).rgb()); @@ -132,6 +167,24 @@ bool ADSBDemodSettings::deserialize(const QByteArray& data) m_reverseAPIChannelIndex = utmp > 99 ? 99 : utmp; d.readS32(17, &m_streamIndex, 0); + d.readFloat(18, &m_airportRange, 100); + d.readS32(19, (int *)&m_airportMinimumSize, AirportType::Medium); + d.readBool(20, &m_displayHeliports, false); + d.readBool(21, &m_flightPaths, true); + d.readS32(22, &m_deviceIndex, -1); + d.readBool(23, &m_siUnits, false); + d.readS32(24, (int *) &m_feedFormat, BeastBinary); + d.readString(25, &m_tableFontName, "Liberation Sans"); + d.readS32(26, &m_tableFontSize, 9); + d.readBool(27, &m_displayDemodStats, false); + d.readBool(28, &m_correlateFullPreamble, true); + d.readBool(29, &m_demodModeS, false); + + for (int i = 0; i < ADSBDEMOD_COLUMNS; i++) + d.readS32(100 + i, &m_columnIndexes[i], i); + for (int i = 0; i < ADSBDEMOD_COLUMNS; i++) + d.readS32(200 + i, &m_columnSizes[i], -1); + return true; } else diff --git a/plugins/channelrx/demodadsb/adsbdemodsettings.h b/plugins/channelrx/demodadsb/adsbdemodsettings.h index a9674a592..064e46d21 100644 --- a/plugins/channelrx/demodadsb/adsbdemodsettings.h +++ b/plugins/channelrx/demodadsb/adsbdemodsettings.h @@ -26,6 +26,9 @@ class Serializable; +// Number of columns in the table +#define ADSBDEMOD_COLUMNS 23 + struct ADSBDemodSettings { int32_t m_inputFrequencyOffset; @@ -33,9 +36,13 @@ struct ADSBDemodSettings Real m_correlationThreshold; //!< Correlation power threshold in dB int m_samplesPerBit; int m_removeTimeout; //!< Time in seconds before removing an aircraft, unless a new frame is received - bool m_beastEnabled; - QString m_beastHost; - uint16_t m_beastPort; + bool m_feedEnabled; + QString m_feedHost; + uint16_t m_feedPort; + enum FeedFormat { + BeastBinary, + BeastHex + } m_feedFormat; quint32 m_rgbColor; QString m_title; @@ -45,9 +52,28 @@ struct ADSBDemodSettings uint16_t m_reverseAPIPort; uint16_t m_reverseAPIDeviceIndex; uint16_t m_reverseAPIChannelIndex; + int m_columnIndexes[ADSBDEMOD_COLUMNS];//!< How the columns are ordered in the table + int m_columnSizes[ADSBDEMOD_COLUMNS]; //!< Size of the coumns in the table Serializable *m_channelMarker; + float m_airportRange; //!< How far away should we display airports (nm) + enum AirportType { + Small, + Medium, + Large, + Heliport + } m_airportMinimumSize; //!< What's the minimum size airport that should be displayed + bool m_displayHeliports; //!< Whether to display heliports on the map + bool m_flightPaths; //!< Whether to display flight paths + bool m_siUnits; //!< Uses m,kph rather than ft/knts + QString m_tableFontName; //!< Font to use for table + int m_tableFontSize; + bool m_displayDemodStats; + bool m_correlateFullPreamble; + bool m_demodModeS; //!< Demodulate all Mode-S frames, not just ADS-B + int m_deviceIndex; //!< Device to set to ATC frequencies + ADSBDemodSettings(); void resetToDefaults(); void setChannelMarker(Serializable *channelMarker) { m_channelMarker = channelMarker; } diff --git a/plugins/channelrx/demodadsb/adsbdemodsink.cpp b/plugins/channelrx/demodadsb/adsbdemodsink.cpp index 6ca06755e..fc9a790ac 100644 --- a/plugins/channelrx/demodadsb/adsbdemodsink.cpp +++ b/plugins/channelrx/demodadsb/adsbdemodsink.cpp @@ -16,16 +16,11 @@ // along with this program. If not, see . // /////////////////////////////////////////////////////////////////////////////////// -#include -#include -#include - #include #include #include "util/stepfunctions.h" #include "util/db.h" -#include "util/crc.h" #include "audio/audiooutput.h" #include "dsp/dspengine.h" #include "dsp/dspcommands.h" @@ -34,219 +29,170 @@ #include "adsbdemodreport.h" #include "adsbdemodsink.h" +#include "adsbdemodsinkworker.h" #include "adsb.h" ADSBDemodSink::ADSBDemodSink() : - m_channelSampleRate(6000000), - m_channelFrequencyOffset(0), - m_sampleIdx(0), - m_sampleCount(0), - m_skipCount(0), - m_correlationThresholdLinear(0.0), - m_magsq(0.0f), - m_magsqSum(0.0f), - m_magsqPeak(0.0f), - m_magsqCount(0), - m_messageQueueToGUI(nullptr), - m_sampleBuffer(nullptr) + m_channelSampleRate(6000000), + m_channelFrequencyOffset(0), + m_feedTime(0.0), + m_sampleBuffer{nullptr, nullptr, nullptr}, + m_worker(this), + m_writeBuffer(0), + m_writeIdx(0), + m_magsq(0.0f), + m_magsqSum(0.0f), + m_magsqPeak(0.0f), + m_magsqCount(0), + m_messageQueueToGUI(nullptr) { applySettings(m_settings, true); applyChannelSettings(m_channelSampleRate, m_channelFrequencyOffset, true); + for (int i = 0; i < m_buffers; i++) + m_bufferWrite[i].release(1); + m_bufferWrite[m_writeBuffer].acquire(); } ADSBDemodSink::~ADSBDemodSink() { - delete m_sampleBuffer; + stopWorker(); + for (int i = 0; i < m_buffers; i++) + delete m_sampleBuffer[i]; } void ADSBDemodSink::feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end) { - Complex ci; + // Start timing how long we are in this function + m_startPoint = boost::chrono::steady_clock::now(); - for (SampleVector::const_iterator it = begin; it != end; ++it) + // Optimise for common case, where no resampling or frequency offset + if ((m_interpolatorDistance == 1.0f) && (m_channelFrequencyOffset == 0)) { - Complex c(it->real(), it->imag()); - c *= m_nco.nextIQ(); + for (SampleVector::const_iterator it = begin; it != end; ++it) + { + /* + // SampleVector is vector of qint32 or qint16 + // Use integer mul to save one FP conversion and it has lower latency + qint64 r = (qint64)it->real(); + qint64 i = (qint64)it->imag(); + qint64 magsqRaw = r*r + i*i; + Real magsq = (Real)((double)magsqRaw / (SDR_RX_SCALED*SDR_RX_SCALED)); + processOneSample(magsq); + */ + Complex c(it->real(), it->imag()); + Real magsq = complexMagSq(c); + processOneSample(magsq); + } + } + else + { + for (SampleVector::const_iterator it = begin; it != end; ++it) + { + Complex c(it->real(), it->imag()); + Complex ci; + c *= m_nco.nextIQ(); - if (m_interpolatorDistance == 1.0f) - { - processOneSample(c); - } - else if (m_interpolatorDistance < 1.0f) // interpolate - { - while (!m_interpolator.interpolate(&m_interpolatorDistanceRemain, c, &ci)) + if (m_interpolatorDistance == 1.0f) { - processOneSample(ci); - m_interpolatorDistanceRemain += m_interpolatorDistance; + processOneSample(complexMagSq(c)); } - } - else // decimate - { - if (m_interpolator.decimate(&m_interpolatorDistanceRemain, c, &ci)) + else if (m_interpolatorDistance < 1.0f) // interpolate { - processOneSample(ci); - m_interpolatorDistanceRemain += m_interpolatorDistance; + while (!m_interpolator.interpolate(&m_interpolatorDistanceRemain, c, &ci)) + { + processOneSample(complexMagSq(ci)); + m_interpolatorDistanceRemain += m_interpolatorDistance; + } + } + else // decimate + { + if (m_interpolator.decimate(&m_interpolatorDistanceRemain, c, &ci)) + { + processOneSample(complexMagSq(ci)); + m_interpolatorDistanceRemain += m_interpolatorDistance; + } } } } + // Calculate number of seconds in this function + boost::chrono::duration sec = boost::chrono::steady_clock::now() - m_startPoint; + m_feedTime += sec.count(); } -void ADSBDemodSink::processOneSample(Complex &ci) +void ADSBDemodSink::processOneSample(Real magsq) { - Real sample; - - double magsqRaw = ci.real()*ci.real() + ci.imag()*ci.imag(); - Real magsq = magsqRaw / (SDR_RX_SCALED*SDR_RX_SCALED); - m_movingAverage(magsq); m_magsqSum += magsq; - if (magsq > m_magsqPeak) - { m_magsqPeak = magsq; - } m_magsqCount++; - - sample = magsq; - m_sampleBuffer[m_sampleCount] = sample; - m_sampleCount++; - - // Do we have enough data for a frame - if ((m_sampleCount >= m_totalSamples) && (m_skipCount == 0)) + m_sampleBuffer[m_writeBuffer][m_writeIdx] = magsq; + m_writeIdx++; + if (m_writeIdx >= m_bufferSize) { - int startIdx = m_sampleCount - m_totalSamples; + m_bufferRead[m_writeBuffer].release(); - // Correlate received signal with expected preamble - // chip+ indexes are 0, 2, 7, 9 - // we correlate only over 6 symbols so that the number of zero chips is twice the - // number of one chips - empirically this is enough to get good correlation - Real premableCorrelationOnes = 0.0; - Real preambleCorrelationZeros = 0.0; + m_writeBuffer++; + if (m_writeBuffer >= m_buffers) + m_writeBuffer = 0; - for (int i = 0; i < m_samplesPerChip; i++) - { - premableCorrelationOnes += m_sampleBuffer[startIdx + 0*m_samplesPerChip + i]; - preambleCorrelationZeros += m_sampleBuffer[startIdx + 1*m_samplesPerChip + i]; + // Don't include time spent waiting for a buffer + boost::chrono::duration sec = boost::chrono::steady_clock::now() - m_startPoint; + m_feedTime += sec.count(); - premableCorrelationOnes += m_sampleBuffer[startIdx + 2*m_samplesPerChip + i]; - preambleCorrelationZeros += m_sampleBuffer[startIdx + 3*m_samplesPerChip + i]; + m_bufferWrite[m_writeBuffer].acquire(); - preambleCorrelationZeros += m_sampleBuffer[startIdx + 4*m_samplesPerChip + i]; - preambleCorrelationZeros += m_sampleBuffer[startIdx + 5*m_samplesPerChip + i]; + m_startPoint = boost::chrono::steady_clock::now(); - preambleCorrelationZeros += m_sampleBuffer[startIdx + 6*m_samplesPerChip + i]; - premableCorrelationOnes += m_sampleBuffer[startIdx + 7*m_samplesPerChip + i]; - - preambleCorrelationZeros += m_sampleBuffer[startIdx + 8*m_samplesPerChip + i]; - premableCorrelationOnes += m_sampleBuffer[startIdx + 9*m_samplesPerChip + i]; - - preambleCorrelationZeros += m_sampleBuffer[startIdx + 10*m_samplesPerChip + i]; - preambleCorrelationZeros += m_sampleBuffer[startIdx + 11*m_samplesPerChip + i]; - } - - // If the correlation is exactly 0, it's probably no signal - if ((premableCorrelationOnes > m_correlationThresholdLinear) && - (preambleCorrelationZeros < 2.0*m_correlationThresholdLinear) && - (premableCorrelationOnes != 0.0f)) - { - // Skip over preamble - startIdx += m_settings.m_samplesPerBit*ADS_B_PREAMBLE_BITS; - - // Demodulate waveform to bytes - unsigned char data[ADS_B_ES_BYTES]; - int byteIdx = 0; - int currentBit; - unsigned char currentByte = 0; - bool adsbOnly = true; - int df; - - for (int bit = 0; bit < ADS_B_ES_BITS; bit++) - { - // PPM (Pulse position modulation) - Each bit spreads to two chips, 1->10, 0->01 - // Determine if bit is 1 or 0, by seeing which chip has largest combined energy over the sampling period - Real oneSum = 0.0f; - Real zeroSum = 0.0f; - for (int i = 0; i < m_samplesPerChip; i++) - { - oneSum += m_sampleBuffer[startIdx+i]; - zeroSum += m_sampleBuffer[startIdx+m_samplesPerChip+i]; - } - currentBit = oneSum > zeroSum; - startIdx += m_settings.m_samplesPerBit; - // Convert bit to bytes - MSB first - currentByte |= currentBit << (7-(bit & 0x7)); - if ((bit & 0x7) == 0x7) - { - data[byteIdx++] = currentByte; - currentByte = 0; - // Don't try to demodulate any further, if this isn't an ADS-B frame - // to help reduce processing overhead - if (adsbOnly && (bit == 7)) - { - df = ((data[0] >> 3) & ADS_B_DF_MASK); - if ((df != 17) && (df != 18)) - break; - } - } - } - - // Is ADS-B? - df = ((data[0] >> 3) & ADS_B_DF_MASK); - if ((df == 17) || (df == 18)) - { - crcadsb crc; - //int icao = (data[1] << 16) | (data[2] << 8) | data[3]; // ICAO aircraft address - int parity = (data[11] << 16) | (data[12] << 8) | data[13]; // Parity / CRC - - crc.calculate(data, ADS_B_ES_BYTES-3); - if (parity == crc.get()) - { - // Got a valid frame - // Don't try to re-demodulate the same frame - m_skipCount = (ADS_B_ES_BITS+ADS_B_PREAMBLE_BITS)*ADS_B_CHIPS_PER_BIT*m_samplesPerChip; - // Pass to GUI - if (getMessageQueueToGUI()) - { - ADSBDemodReport::MsgReportADSB *msg = ADSBDemodReport::MsgReportADSB::create( - QByteArray((char*)data, sizeof(data)), - premableCorrelationOnes, - preambleCorrelationZeros/2.0); - getMessageQueueToGUI()->push(msg); - } - // Pass to worker - if (getMessageQueueToWorker()) - { - ADSBDemodReport::MsgReportADSB *msg = ADSBDemodReport::MsgReportADSB::create( - QByteArray((char*)data, sizeof(data)), - premableCorrelationOnes, - preambleCorrelationZeros/2.0); - getMessageQueueToWorker()->push(msg); - } - } - } - } + m_writeIdx = m_samplesPerFrame - 1; // Leave space for copying samples from previous buffer } - if (m_skipCount > 0) - m_skipCount--; - if (m_sampleCount >= 2*m_totalSamples) +} + +void ADSBDemodSink::stopWorker() +{ + if (m_worker.isRunning()) { - // Copy second half of buffer to first - memcpy(&m_sampleBuffer[0], &m_sampleBuffer[m_totalSamples], m_totalSamples*sizeof(Real)); - m_sampleCount = m_totalSamples; + qDebug() << "ADSBDemodSink::stopWorker: Stopping worker"; + m_worker.requestInterruption(); + // Worker may be blocked waiting for a buffer + for (int i = 0; i < m_buffers; i++) + { + if (m_bufferRead[i].available() == 0) + m_bufferRead[i].release(1); + } + m_worker.wait(); + qDebug() << "ADSBDemodSink::stopWorker: Worker stopped"; } - m_sampleIdx++; - } void ADSBDemodSink::init(int samplesPerBit) { - if (m_sampleBuffer) - delete m_sampleBuffer; + // Stop worker as we're going to delete the buffers + stopWorker(); + // Reset state of semaphores + for (int i = 0; i < m_buffers; i++) + { + m_bufferWrite[i].acquire(m_bufferWrite[i].available()); + m_bufferWrite[i].release(1); + m_bufferRead[i].acquire(m_bufferRead[i].available()); + } + m_writeBuffer = 0; + m_bufferWrite[m_writeBuffer].acquire(); - m_totalSamples = samplesPerBit*(ADS_B_PREAMBLE_BITS+ADS_B_ES_BITS); + for (int i = 0; i < m_buffers; i++) + { + if (m_sampleBuffer[i]) + delete m_sampleBuffer[i]; + } + + m_samplesPerFrame = samplesPerBit*(ADS_B_PREAMBLE_BITS+ADS_B_ES_BITS); m_samplesPerChip = samplesPerBit/ADS_B_CHIPS_PER_BIT; + m_writeIdx = m_samplesPerFrame - 1; // Leave space for copying samples from previous buffer - m_sampleBuffer = new Real[2*m_totalSamples]; + for (int i = 0; i < m_buffers; i++) + m_sampleBuffer[i] = new Real[m_bufferSize]; + + m_worker.start(); } void ADSBDemodSink::applyChannelSettings(int channelSampleRate, int channelFrequencyOffset, bool force) @@ -278,6 +224,8 @@ void ADSBDemodSink::applySettings(const ADSBDemodSettings& settings, bool force) << " m_inputFrequencyOffset: " << settings.m_inputFrequencyOffset << " m_rfBandwidth: " << settings.m_rfBandwidth << " m_correlationThreshold: " << settings.m_correlationThreshold + << " m_correlateFullPreamble: " << settings.m_correlateFullPreamble + << " m_demodModeS: " << settings.m_demodModeS << " m_samplesPerBit: " << settings.m_samplesPerBit << " force: " << force; @@ -294,9 +242,10 @@ void ADSBDemodSink::applySettings(const ADSBDemodSettings& settings, bool force) init(settings.m_samplesPerBit); } - if ((settings.m_correlationThreshold != m_settings.m_correlationThreshold) || force) { - m_correlationThresholdLinear = CalcDb::powerFromdB(m_settings.m_correlationThreshold); - } + // Forward to worker + ADSBDemodSinkWorker::MsgConfigureADSBDemodSinkWorker *msg = ADSBDemodSinkWorker::MsgConfigureADSBDemodSinkWorker::create( + settings, force); + m_worker.getInputMessageQueue()->push(msg); m_settings = settings; } diff --git a/plugins/channelrx/demodadsb/adsbdemodsink.h b/plugins/channelrx/demodadsb/adsbdemodsink.h index d68a1403e..d96391bfa 100644 --- a/plugins/channelrx/demodadsb/adsbdemodsink.h +++ b/plugins/channelrx/demodadsb/adsbdemodsink.h @@ -19,7 +19,7 @@ #ifndef INCLUDE_ADSBDEMODSINK_H #define INCLUDE_ADSBDEMODSINK_H -#include +#include #include "dsp/channelsamplesink.h" #include "dsp/nco.h" @@ -27,6 +27,8 @@ #include "util/movingaverage.h" #include "adsbdemodsettings.h" +#include "adsbdemodstats.h" +#include "adsbdemodsinkworker.h" class ADSBDemodSink : public ChannelSampleSink { public: @@ -53,13 +55,14 @@ public: m_magsqCount = 0; } - void init(int samplesPerBit); void applyChannelSettings(int channelSampleRate, int channelFrequencyOffset, bool force = false); void applySettings(const ADSBDemodSettings& settings, bool force = false); void setMessageQueueToGUI(MessageQueue *messageQueue) { m_messageQueueToGUI = messageQueue; } void setMessageQueueToWorker(MessageQueue *messageQueue) { m_messageQueueToWorker = messageQueue; } private: + friend ADSBDemodSinkWorker; + struct MagSqLevelsStore { MagSqLevelsStore() : @@ -78,14 +81,26 @@ private: Interpolator m_interpolator; Real m_interpolatorDistance; Real m_interpolatorDistanceRemain; - int m_sampleIdx; - int m_sampleCount; - int m_skipCount; // Samples to skip, because we've already received a frame - Real *m_sampleBuffer; - int m_totalSamples; // These two values are derived from samplesPerBit + boost::chrono::steady_clock::time_point m_startPoint; + double m_feedTime; //!< Time spent in feed() + + // Triple buffering for sharing sample data between two threads + // Top area of each buffer is not used by writer, as it's used by the reader + // for copying the last few samples of the previous buffer, so it can + // be processed contiguously + const int m_buffers = 3; + const int m_bufferSize = 200000; + Real *m_sampleBuffer[3]; //!< Each buffer is m_bufferSize samples + QSemaphore m_bufferWrite[3]; //!< Sempahore to control write access to the buffers + QSemaphore m_bufferRead[3]; //!< Sempahore to control read access from the buffers + ADSBDemodSinkWorker m_worker; //!< Worker thread that does the actual demodulation + int m_writeBuffer; //!< Which of the 3 buffers we're writing in to + int m_writeIdx; //!< Index to to current write buffer + + // These values are derived from samplesPerBit + int m_samplesPerFrame; //!< Including preamble int m_samplesPerChip; - double m_correlationThresholdLinear; //!< settings m_correlationThreshold is in dB. Linear value is calculated once. double m_magsq; //!< displayed averaged value double m_magsqSum; @@ -93,12 +108,17 @@ private: int m_magsqCount; MagSqLevelsStore m_magSqLevelStore; - MovingAverageUtil m_movingAverage; - MessageQueue *m_messageQueueToGUI; MessageQueue *m_messageQueueToWorker; - void processOneSample(Complex &ci); + void init(int samplesPerBit); + void stopWorker(); + Real inline complexMagSq(Complex& ci) + { + double magsqRaw = ci.real()*ci.real() + ci.imag()*ci.imag(); + return (Real)(magsqRaw / (SDR_RX_SCALED*SDR_RX_SCALED)); + } + void processOneSample(Real magsq); MessageQueue *getMessageQueueToGUI() { return m_messageQueueToGUI; } MessageQueue *getMessageQueueToWorker() { return m_messageQueueToWorker; } }; diff --git a/plugins/channelrx/demodadsb/adsbdemodsinkworker.cpp b/plugins/channelrx/demodadsb/adsbdemodsinkworker.cpp new file mode 100644 index 000000000..891b5e305 --- /dev/null +++ b/plugins/channelrx/demodadsb/adsbdemodsinkworker.cpp @@ -0,0 +1,348 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2020 Jon Beniston, M7RCE // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#include + +#include + +#include "util/stepfunctions.h" +#include "util/db.h" +#include "dsp/dspengine.h" +#include "dsp/dspcommands.h" +#include "device/deviceapi.h" + +#include "adsbdemodreport.h" +#include "adsbdemodsink.h" +#include "adsbdemodsinkworker.h" +#include "adsbdemodsettings.h" +#include "adsb.h" + +MESSAGE_CLASS_DEFINITION(ADSBDemodSinkWorker::MsgConfigureADSBDemodSinkWorker, Message) + +void ADSBDemodSinkWorker::run() +{ + int readBuffer = 0; + + // Acquire first buffer + m_sink->m_bufferRead[readBuffer].acquire(); + + // Start recording how much time is spent processing in this method + boost::chrono::steady_clock::time_point startPoint = boost::chrono::steady_clock::now(); + + // Check for updated settings + handleInputMessages(); + + // samplesPerBit is only changed when the thread is stopped + int samplesPerBit = m_settings.m_samplesPerBit; + int samplesPerFrame = samplesPerBit*(ADS_B_PREAMBLE_BITS+ADS_B_ES_BITS); + int samplesPerChip = samplesPerBit/ADS_B_CHIPS_PER_BIT; + + qDebug() << "ADSBDemodSinkWorker:: running with" + << " samplesPerFrame: " << samplesPerFrame + << " samplesPerChip: " << samplesPerChip + << " samplesPerBit: " << samplesPerBit + << " correlateFullPreamble: " << m_settings.m_correlateFullPreamble + << " correlationZerosScale: " << m_correlationZerosScale + << " correlationThreshold: " << m_settings.m_correlationThreshold; + + int readIdx = m_sink->m_samplesPerFrame - 1; + + int cnt = 0; + + while (true) + { + int startIdx = readIdx; + + // Correlate received signal with expected preamble + // chip+ indexes are 0, 2, 7, 9 + // correlating over first 6 bits gives a reduction in per-sample + // processing, but more than doubles the number of false matches + Real preambleCorrelationOnes = 0.0; + Real preambleCorrelationZeros = 0.0; + if (m_settings.m_correlateFullPreamble) + { + for (int i = 0; i < samplesPerChip; i++) + { + preambleCorrelationOnes += m_sink->m_sampleBuffer[readBuffer][startIdx + 0*samplesPerChip + i]; + preambleCorrelationZeros += m_sink->m_sampleBuffer[readBuffer][startIdx + 1*samplesPerChip + i]; + + preambleCorrelationOnes += m_sink->m_sampleBuffer[readBuffer][startIdx + 2*samplesPerChip + i]; + preambleCorrelationZeros += m_sink->m_sampleBuffer[readBuffer][startIdx + 3*samplesPerChip + i]; + + preambleCorrelationZeros += m_sink->m_sampleBuffer[readBuffer][startIdx + 4*samplesPerChip + i]; + preambleCorrelationZeros += m_sink->m_sampleBuffer[readBuffer][startIdx + 5*samplesPerChip + i]; + + preambleCorrelationZeros += m_sink->m_sampleBuffer[readBuffer][startIdx + 6*samplesPerChip + i]; + preambleCorrelationOnes += m_sink->m_sampleBuffer[readBuffer][startIdx + 7*samplesPerChip + i]; + + preambleCorrelationZeros += m_sink->m_sampleBuffer[readBuffer][startIdx + 8*samplesPerChip + i]; + preambleCorrelationOnes += m_sink->m_sampleBuffer[readBuffer][startIdx + 9*samplesPerChip + i]; + + preambleCorrelationZeros += m_sink->m_sampleBuffer[readBuffer][startIdx + 10*samplesPerChip + i]; + preambleCorrelationZeros += m_sink->m_sampleBuffer[readBuffer][startIdx + 11*samplesPerChip + i]; + + preambleCorrelationZeros += m_sink->m_sampleBuffer[readBuffer][startIdx + 12*samplesPerChip + i]; + preambleCorrelationZeros += m_sink->m_sampleBuffer[readBuffer][startIdx + 13*samplesPerChip + i]; + + preambleCorrelationZeros += m_sink->m_sampleBuffer[readBuffer][startIdx + 14*samplesPerChip + i]; + preambleCorrelationZeros += m_sink->m_sampleBuffer[readBuffer][startIdx + 15*samplesPerChip + i]; + } + } + else + { + for (int i = 0; i < samplesPerChip; i++) + { + preambleCorrelationOnes += m_sink->m_sampleBuffer[readBuffer][startIdx + 0*samplesPerChip + i]; + preambleCorrelationZeros += m_sink->m_sampleBuffer[readBuffer][startIdx + 1*samplesPerChip + i]; + + preambleCorrelationOnes += m_sink->m_sampleBuffer[readBuffer][startIdx + 2*samplesPerChip + i]; + preambleCorrelationZeros += m_sink->m_sampleBuffer[readBuffer][startIdx + 3*samplesPerChip + i]; + + preambleCorrelationZeros += m_sink->m_sampleBuffer[readBuffer][startIdx + 4*samplesPerChip + i]; + preambleCorrelationZeros += m_sink->m_sampleBuffer[readBuffer][startIdx + 5*samplesPerChip + i]; + + preambleCorrelationZeros += m_sink->m_sampleBuffer[readBuffer][startIdx + 6*samplesPerChip + i]; + preambleCorrelationOnes += m_sink->m_sampleBuffer[readBuffer][startIdx + 7*samplesPerChip + i]; + + preambleCorrelationZeros += m_sink->m_sampleBuffer[readBuffer][startIdx + 8*samplesPerChip + i]; + preambleCorrelationOnes += m_sink->m_sampleBuffer[readBuffer][startIdx + 9*samplesPerChip + i]; + + preambleCorrelationZeros += m_sink->m_sampleBuffer[readBuffer][startIdx + 10*samplesPerChip + i]; + preambleCorrelationZeros += m_sink->m_sampleBuffer[readBuffer][startIdx + 11*samplesPerChip + i]; + } + } + + // Use the difference rather than absolute value, as we don't care how powerful the signal + // is, just whether there is a good correlation with the preamble. The absolute value varies + // too much with different radios, AGC settings and and the noise floor is not constant + // (E.g: it's quite possible to receive multiple frames simultaneously, so we don't + // want a maximum threshold for the zeros, as a weaker signal may transmit 1s in + // a stronger signals 0 chip position. Similarly a strong signal in an adjacent + // channel may casue AGC to reduce gain, reducing the ampltiude of an otherwise + // strong signal, as well as the noise floor) + // The scale factors account for different values of samplesPerBit and the different + // number of zeros and ones in the preamble + // If the sum of ones is exactly 0, it's probably no signal + Real preambleCorrelation = (preambleCorrelationOnes * m_correlationZerosScale) + - (preambleCorrelationZeros * m_correlationOnesScale); + if ((preambleCorrelation > m_correlationThresholdLinear) && (preambleCorrelationOnes != 0.0f)) + { + m_demodStats.m_correlatorMatches++; + // Skip over preamble + startIdx += samplesPerBit*ADS_B_PREAMBLE_BITS; + + // Demodulate waveform to bytes + unsigned char data[ADS_B_ES_BYTES]; + int byteIdx = 0; + int currentBit; + unsigned char currentByte = 0; + int df; + + for (int bit = 0; bit < ADS_B_ES_BITS; bit++) + { + // PPM (Pulse position modulation) - Each bit spreads to two chips, 1->10, 0->01 + // Determine if bit is 1 or 0, by seeing which chip has largest combined energy over the sampling period + Real oneSum = 0.0f; + Real zeroSum = 0.0f; + for (int i = 0; i < samplesPerChip; i++) + { + oneSum += m_sink->m_sampleBuffer[readBuffer][startIdx+i]; + zeroSum += m_sink->m_sampleBuffer[readBuffer][startIdx+samplesPerChip+i]; + } + currentBit = oneSum > zeroSum; + startIdx += samplesPerBit; + // Convert bit to bytes - MSB first + currentByte |= currentBit << (7-(bit & 0x7)); + if ((bit & 0x7) == 0x7) + { + data[byteIdx++] = currentByte; + currentByte = 0; + // Don't try to demodulate any further, if this isn't an ADS-B frame + // to help reduce processing overhead + if (!m_settings.m_demodModeS && (bit == 7)) + { + df = ((data[0] >> 3) & ADS_B_DF_MASK); + if ((df != 17) && (df != 18)) + break; + } + } + } + + // Is ADS-B? + df = ((data[0] >> 3) & ADS_B_DF_MASK); + if ((df == 17) || (df == 18)) + { + m_crc.init(); + int parity = (data[11] << 16) | (data[12] << 8) | data[13]; // Parity / CRC + + m_crc.calculate(data, ADS_B_ES_BYTES-3); + if (parity == m_crc.get()) + { + // Got a valid frame + m_demodStats.m_adsbFrames++; + // Don't try to re-demodulate the same frame + // We could possibly allow a partial overlap here + readIdx += (ADS_B_ES_BITS+ADS_B_PREAMBLE_BITS)*ADS_B_CHIPS_PER_BIT*samplesPerChip - 1; + // Pass to GUI + if (m_sink->getMessageQueueToGUI()) + { + ADSBDemodReport::MsgReportADSB *msg = ADSBDemodReport::MsgReportADSB::create( + QByteArray((char*)data, sizeof(data)), + preambleCorrelation); + m_sink->getMessageQueueToGUI()->push(msg); + } + // Pass to worker to feed to other servers + if (m_sink->getMessageQueueToWorker()) + { + ADSBDemodReport::MsgReportADSB *msg = ADSBDemodReport::MsgReportADSB::create( + QByteArray((char*)data, sizeof(data)), + preambleCorrelation); + m_sink->getMessageQueueToWorker()->push(msg); + } + } + else + m_demodStats.m_crcFails++; + } + else if (m_settings.m_demodModeS) + { + int bytes; + + m_crc.init(); + if ((df == 0) || (df == 4) || (df == 5) || (df == 11)) + bytes = 56/8; + else if ((df == 16) || (df == 20) || (df == 21) || (df >= 24)) + bytes = 112/8; + else + bytes = 0; + if (bytes > 0) + { + int parity = (data[bytes-3] << 16) | (data[bytes-2] << 8) | data[bytes-1]; + m_crc.calculate(data, bytes-3); + int crc = m_crc.get(); + // For DF11, the last 7 bits may have an address/interogration indentifier (II) + // XORed in, so we ignore those bits + if ((parity == crc) || ((df == 11) && (parity & 0xffff80) == (crc & 0xffff80))) + { + m_demodStats.m_modesFrames++; + // Pass to worker to feed to other servers + if (m_sink->getMessageQueueToWorker()) + { + ADSBDemodReport::MsgReportADSB *msg = ADSBDemodReport::MsgReportADSB::create( + QByteArray((char*)data, sizeof(data)), + preambleCorrelation); + m_sink->getMessageQueueToWorker()->push(msg); + } + } + else + m_demodStats.m_crcFails++; + } + else + m_demodStats.m_typeFails++; + } + else + m_demodStats.m_typeFails++; + } + readIdx++; + if (readIdx > m_sink->m_bufferSize - samplesPerFrame) + { + int nextBuffer = readBuffer+1; + if (nextBuffer >= m_sink->m_buffers) + nextBuffer = 0; + + // Update amount of time spent processing (don't include time spend in acquire) + boost::chrono::duration sec = boost::chrono::steady_clock::now() - startPoint; + m_demodStats.m_demodTime += sec.count(); + m_demodStats.m_feedTime = m_sink->m_feedTime; + + // Send stats to GUI + if (m_sink->getMessageQueueToGUI()) + { + ADSBDemodReport::MsgReportDemodStats *msg = ADSBDemodReport::MsgReportDemodStats::create(m_demodStats); + m_sink->getMessageQueueToGUI()->push(msg); + } + + if (!isInterruptionRequested()) + { + // Get next buffer + m_sink->m_bufferRead[nextBuffer].acquire(); + + // Check for updated settings + handleInputMessages(); + + // Resume timing how long we are processing + startPoint = boost::chrono::steady_clock::now(); + + int samplesRemaining = m_sink->m_bufferSize - readIdx; + if (samplesRemaining > 0) + { + // Copy remaining samples, to start of next buffer + memcpy(&m_sink->m_sampleBuffer[nextBuffer][samplesPerFrame - 1 - samplesRemaining], &m_sink->m_sampleBuffer[readBuffer][readIdx], samplesRemaining*sizeof(Real)); + readIdx = samplesPerFrame - 1 - samplesRemaining; + } + else + { + readIdx = samplesPerFrame - 1; + } + + m_sink->m_bufferWrite[readBuffer].release(); + + readBuffer = nextBuffer; + } + else + { + // Use a break to avoid testing a condition in the main loop + break; + } + } + } +} + +void ADSBDemodSinkWorker::handleInputMessages() +{ + Message* message; + + while ((message = m_inputMessageQueue.pop()) != nullptr) + { + if (MsgConfigureADSBDemodSinkWorker::match(*message)) + { + MsgConfigureADSBDemodSinkWorker* cfg = (MsgConfigureADSBDemodSinkWorker*)message; + + ADSBDemodSettings settings = cfg->getSettings(); + bool force = cfg->getForce(); + + if ((m_settings.m_correlationThreshold != settings.m_correlationThreshold) || force) + { + m_correlationThresholdLinear = CalcDb::powerFromdB(settings.m_correlationThreshold); + qDebug() << "m_correlationThresholdLinear: " << m_correlationThresholdLinear; + } + + if (settings.m_correlateFullPreamble) + { + m_correlationOnesScale = 1.0f / settings.m_samplesPerBit; + m_correlationZerosScale = 2.0 * 1.0f / settings.m_samplesPerBit; // As 2x more 0s than 1s + } + else + { + m_correlationOnesScale = 1.0f / settings.m_samplesPerBit; + m_correlationZerosScale = 3.0 * 1.0f / settings.m_samplesPerBit; // As 3x more 0s than 1s + } + + m_settings = settings; + delete message; + } + } +} diff --git a/plugins/channelrx/demodadsb/adsbdemodsinkworker.h b/plugins/channelrx/demodadsb/adsbdemodsinkworker.h new file mode 100644 index 000000000..b0fa34f77 --- /dev/null +++ b/plugins/channelrx/demodadsb/adsbdemodsinkworker.h @@ -0,0 +1,82 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2020 Jon Beniston, M7RCE // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_ADSBDEMODSINKWORKER_H +#define INCLUDE_ADSBDEMODSINKWORKER_H + +#include +#include + +#include "dsp/dsptypes.h" +#include "util/crc.h" +#include "util/messagequeue.h" +#include "adsbdemodstats.h" + +class ADSBDemodSink; +class ADSBDemodSettings; +class ADSBDemodStats; + +class ADSBDemodSinkWorker : public QThread { + Q_OBJECT +public: + + class MsgConfigureADSBDemodSinkWorker : public Message { + MESSAGE_CLASS_DECLARATION + + public: + const ADSBDemodSettings& getSettings() const { return m_settings; } + bool getForce() const { return m_force; } + + static MsgConfigureADSBDemodSinkWorker* create(const ADSBDemodSettings& settings, bool force) + { + return new MsgConfigureADSBDemodSinkWorker(settings, force); + } + + private: + ADSBDemodSettings m_settings; + bool m_force; + + MsgConfigureADSBDemodSinkWorker(const ADSBDemodSettings& settings, bool force) : + Message(), + m_settings(settings), + m_force(force) + { } + }; + + ADSBDemodSinkWorker(ADSBDemodSink *sink) : + m_sink(sink), + m_demodStats(), + m_correlationThresholdLinear(0.02), + m_crc() + { + } + void run() override; + MessageQueue *getInputMessageQueue() { return &m_inputMessageQueue; } + +private: + void handleInputMessages(); + MessageQueue m_inputMessageQueue; + ADSBDemodSettings m_settings; + ADSBDemodSink *m_sink; + ADSBDemodStats m_demodStats; + Real m_correlationThresholdLinear; + Real m_correlationZerosScale; + Real m_correlationOnesScale; + crcadsb m_crc; //!< Have as member to avoid recomputing LUT +}; + +#endif // INCLUDE_ADSBDEMODSINKWORKER_H diff --git a/plugins/channelrx/demodadsb/adsbdemodstats.h b/plugins/channelrx/demodadsb/adsbdemodstats.h new file mode 100644 index 000000000..9b13d306a --- /dev/null +++ b/plugins/channelrx/demodadsb/adsbdemodstats.h @@ -0,0 +1,46 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2020 Jon Beniston, M7RCE // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_ADSBDEMODSTATS_H +#define INCLUDE_ADSBDEMODSTATS_H + +#include + +struct ADSBDemodStats { + + qint64 m_correlatorMatches; //!< Total number of correlator matches + qint64 m_adsbFrames; //!< How many ADS-B frames with correct CRCs + qint64 m_modesFrames; //!< How many non-ADS-B Mode-S frames with correct CRCs + qint64 m_crcFails; //!< How many frames we've demoded with incorrect CRCs + qint64 m_typeFails; //!< How many frames we've demoded with unknown type (DF) so we can't check CRC + double m_demodTime; //!< How long we've spent in run() + double m_feedTime; //!< How long we've spent in feed() + + ADSBDemodStats() : + m_correlatorMatches(0), + m_adsbFrames(0), + m_modesFrames(0), + m_crcFails(0), + m_typeFails(0), + m_demodTime(0.0), + m_feedTime(0.0) + { + } + +}; + +#endif // INCLUDE_ADSBDEMODSTATS_H diff --git a/plugins/channelrx/demodadsb/adsbdemodworker.cpp b/plugins/channelrx/demodadsb/adsbdemodworker.cpp index f2a1289a2..1f011fcdc 100644 --- a/plugins/channelrx/demodadsb/adsbdemodworker.cpp +++ b/plugins/channelrx/demodadsb/adsbdemodworker.cpp @@ -17,6 +17,7 @@ /////////////////////////////////////////////////////////////////////////////////// #include +#include #include #include #include @@ -33,6 +34,13 @@ ADSBDemodWorker::ADSBDemodWorker() : { connect(&m_heartbeatTimer, SIGNAL(timeout()), this, SLOT(heartbeat())); connect(&m_socket, SIGNAL(readyRead()),this, SLOT(recv())); + connect(&m_socket, SIGNAL(connected()), this, SLOT(connected())); + connect(&m_socket, SIGNAL(disconnected()), this, SLOT(disconnected())); +#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) + connect(&m_socket, QOverload::of(&QAbstractSocket::error), this, &ADSBDemodWorker::errorOccurred); +#else + connect(&m_socket, &QAbstractSocket::errorOccurred, this, &ADSBDemodWorker::errorOccurred); +#endif } ADSBDemodWorker::~ADSBDemodWorker() @@ -88,7 +96,7 @@ bool ADSBDemodWorker::handleMessage(const Message& message) else if (ADSBDemodReport::MsgReportADSB::match(message)) { ADSBDemodReport::MsgReportADSB& report = (ADSBDemodReport::MsgReportADSB&) message; - handleADSB(report.getData(), report.getDateTime(), report.getPreambleCorrelationOnes()); + handleADSB(report.getData(), report.getDateTime(), report.getPreambleCorrelation()); return true; } else @@ -100,26 +108,42 @@ bool ADSBDemodWorker::handleMessage(const Message& message) void ADSBDemodWorker::applySettings(const ADSBDemodSettings& settings, bool force) { qDebug() << "ADSBDemodWorker::applySettings:" - << " m_beastEnabled: " << settings.m_beastEnabled - << " m_beastHost: " << settings.m_beastHost - << " m_beastPort: " << settings.m_beastPort + << " m_feedEnabled: " << settings.m_feedEnabled + << " m_feedHost: " << settings.m_feedHost + << " m_feedPort: " << settings.m_feedPort + << " m_feedFormat: " << settings.m_feedFormat << " force: " << force; - if ((settings.m_beastEnabled != m_settings.m_beastEnabled) - || (settings.m_beastHost != m_settings.m_beastHost) - || (settings.m_beastPort != m_settings.m_beastPort) || force) + if ((settings.m_feedEnabled != m_settings.m_feedEnabled) + || (settings.m_feedHost != m_settings.m_feedHost) + || (settings.m_feedPort != m_settings.m_feedPort) || force) { // Close any existing connection if (m_socket.isOpen()) m_socket.close(); // Open connection - if (settings.m_beastEnabled) - m_socket.connectToHost(settings.m_beastHost, settings.m_beastPort); + if (settings.m_feedEnabled) + m_socket.connectToHost(settings.m_feedHost, settings.m_feedPort); } m_settings = settings; } +void ADSBDemodWorker::connected() +{ + qDebug() << "ADSBDemodWorker::connected " << m_settings.m_feedHost; +} + +void ADSBDemodWorker::disconnected() +{ + qDebug() << "ADSBDemodWorker::disconnected"; +} + +void ADSBDemodWorker::errorOccurred(QAbstractSocket::SocketError socketError) +{ + qDebug() << "ADSBDemodWorker::errorOccurred: " << socketError; +} + void ADSBDemodWorker::recv() { // Not expecting to receving anything from server @@ -129,11 +153,11 @@ void ADSBDemodWorker::recv() void ADSBDemodWorker::send(const char *data, int length) { - if (m_settings.m_beastEnabled) + if (m_settings.m_feedEnabled) { // Reopen connection if it was lost if (!m_socket.isOpen()) - m_socket.connectToHost(m_settings.m_beastHost, m_settings.m_beastPort); + m_socket.connectToHost(m_settings.m_feedHost, m_settings.m_feedPort); // Send data m_socket.write(data, length); } @@ -153,40 +177,48 @@ char *ADSBDemodWorker::escape(char *p, char c) // See: https://wiki.jetvision.de/wiki/Mode-S_Beast:Data_Output_Formats void ADSBDemodWorker::handleADSB(QByteArray data, const QDateTime dateTime, float correlation) { - char beastBinary[2+6*2+1*2+14*2]; - int length; - char *p = beastBinary; - qint64 timestamp; - unsigned char signalStrength; + if (m_settings.m_feedFormat == ADSBDemodSettings::BeastBinary) + { + char beastBinary[2+6*2+1*2+14*2]; + int length; + char *p = beastBinary; + qint64 timestamp; + unsigned char signalStrength; - timestamp = dateTime.toMSecsSinceEpoch(); + timestamp = dateTime.toMSecsSinceEpoch(); - if (correlation > 255) - signalStrength = 255; - if (correlation < 1) - signalStrength = 1; - else - signalStrength = (unsigned char)correlation; + if (correlation > 255) + signalStrength = 255; + if (correlation < 1) + signalStrength = 1; + else + signalStrength = (unsigned char)correlation; - *p++ = BEAST_ESC; - *p++ = '3'; // Mode-S long + *p++ = BEAST_ESC; + *p++ = '3'; // Mode-S long - p = escape(p, timestamp >> 56); // Big-endian timestamp - p = escape(p, timestamp >> 48); - p = escape(p, timestamp >> 32); - p = escape(p, timestamp >> 24); - p = escape(p, timestamp >> 16); - p = escape(p, timestamp >> 8); - p = escape(p, timestamp); + p = escape(p, timestamp >> 56); // Big-endian timestamp + p = escape(p, timestamp >> 48); + p = escape(p, timestamp >> 32); + p = escape(p, timestamp >> 24); + p = escape(p, timestamp >> 16); + p = escape(p, timestamp >> 8); + p = escape(p, timestamp); - p = escape(p, signalStrength); // Signal strength + p = escape(p, signalStrength); // Signal strength - for (int i = 0; i < data.length(); i++) // ADS-B data - p = escape(p, data[i]); + for (int i = 0; i < data.length(); i++) // ADS-B data + p = escape(p, data[i]); - length = p - beastBinary; + length = p - beastBinary; - send(beastBinary, length); + send(beastBinary, length); + } + else if (m_settings.m_feedFormat == ADSBDemodSettings::BeastHex) + { + QString beastHex = "*" + data.toHex() + ";\n"; + send(beastHex.toUtf8(), beastHex.size()); + } } // Periodically send heartbeat to keep connection alive diff --git a/plugins/channelrx/demodadsb/adsbdemodworker.h b/plugins/channelrx/demodadsb/adsbdemodworker.h index 8a592205b..4369ec981 100644 --- a/plugins/channelrx/demodadsb/adsbdemodworker.h +++ b/plugins/channelrx/demodadsb/adsbdemodworker.h @@ -80,6 +80,9 @@ private: private slots: void handleInputMessages(); + void connected(); + void disconnected(); + void errorOccurred(QAbstractSocket::SocketError socketError); void recv(); void heartbeat(); }; diff --git a/plugins/channelrx/demodadsb/airlinelogos.qrc b/plugins/channelrx/demodadsb/airlinelogos.qrc new file mode 100644 index 000000000..9d81292d3 --- /dev/null +++ b/plugins/channelrx/demodadsb/airlinelogos.qrc @@ -0,0 +1,758 @@ + + + airlinelogos/5AH.bmp + airlinelogos/AAF.bmp + airlinelogos/AAH.bmp + airlinelogos/AAL.bmp + airlinelogos/AAR.bmp + airlinelogos/AAW.bmp + airlinelogos/AAY.bmp + airlinelogos/AAZ.bmp + airlinelogos/ABB.bmp + airlinelogos/ABD.bmp + airlinelogos/ABG.bmp + airlinelogos/ABL.bmp + airlinelogos/ABN.bmp + airlinelogos/ABP.bmp + airlinelogos/ABQ.bmp + airlinelogos/ABR.bmp + airlinelogos/ABS.bmp + airlinelogos/ABV.bmp + airlinelogos/ABW.bmp + airlinelogos/ABX.bmp + airlinelogos/ABY.bmp + airlinelogos/ACA.bmp + airlinelogos/ACG.bmp + airlinelogos/ACI.bmp + airlinelogos/ACV.bmp + airlinelogos/ADN.bmp + airlinelogos/ADY.bmp + airlinelogos/AEA.bmp + airlinelogos/AEE.bmp + airlinelogos/AEG.bmp + airlinelogos/AEH.bmp + airlinelogos/AEI.bmp + airlinelogos/AERORESCUE.bmp + airlinelogos/AFE.bmp + airlinelogos/AFG.bmp + airlinelogos/AFL.bmp + airlinelogos/AFR.bmp + airlinelogos/AFW.bmp + airlinelogos/AGF.bmp + airlinelogos/AGO.bmp + airlinelogos/AGU.bmp + airlinelogos/AHK.bmp + airlinelogos/AHO.bmp + airlinelogos/AHY.bmp + airlinelogos/AIB.bmp + airlinelogos/AIC.bmp + airlinelogos/AIE.bmp + airlinelogos/AIH.bmp + airlinelogos/AIRCOSTA.bmp + airlinelogos/AIZ.bmp + airlinelogos/AJA.bmp + airlinelogos/AJB.bmp + airlinelogos/AJD.bmp + airlinelogos/AJI.bmp + airlinelogos/AJK.bmp + airlinelogos/AJT.bmp + airlinelogos/AKC.bmp + airlinelogos/ALV.bmp + airlinelogos/ALW.bmp + airlinelogos/ALX.bmp + airlinelogos/ALY.bmp + airlinelogos/AMC.bmp + airlinelogos/AMU.bmp + airlinelogos/AMV.bmp + airlinelogos/AMX.bmp + airlinelogos/AMY.bmp + airlinelogos/ANA.bmp + airlinelogos/AND.bmp + airlinelogos/ANE.bmp + airlinelogos/ANG.bmp + airlinelogos/ANK.bmp + airlinelogos/ANO.bmp + airlinelogos/ANQ.bmp + airlinelogos/ANR.bmp + airlinelogos/ANS.bmp + airlinelogos/ANT.bmp + airlinelogos/ANZ.bmp + airlinelogos/AOJ.bmp + airlinelogos/APF.bmp + airlinelogos/APG.bmp + airlinelogos/APJ.bmp + airlinelogos/APK.bmp + airlinelogos/APZ.bmp + airlinelogos/ARA.bmp + airlinelogos/ARE.bmp + airlinelogos/ARG.bmp + airlinelogos/ARK.bmp + airlinelogos/ARN.bmp + airlinelogos/ARR.bmp + airlinelogos/ARU.bmp + airlinelogos/ARZ.bmp + airlinelogos/ASA.bmp + airlinelogos/ASB.bmp + airlinelogos/ASH.bmp + airlinelogos/ASL.bmp + airlinelogos/ASQ.bmp + airlinelogos/ASV.bmp + airlinelogos/ASY.bmp + airlinelogos/ATC.bmp + airlinelogos/ATG.bmp + airlinelogos/ATN.bmp + airlinelogos/ATR.bmp + airlinelogos/ATV.bmp + airlinelogos/ATW.bmp + airlinelogos/ATX.bmp + airlinelogos/AUA.bmp + airlinelogos/AUI.bmp + airlinelogos/AUL.bmp + airlinelogos/AUR.bmp + airlinelogos/AUS5.bmp + airlinelogos/AUT.bmp + airlinelogos/AVA.bmp + airlinelogos/AVJ.bmp + airlinelogos/AVN.bmp + airlinelogos/AVV.bmp + airlinelogos/AVW.bmp + airlinelogos/AWE.bmp + airlinelogos/AWG.bmp + airlinelogos/AWI.bmp + airlinelogos/AWK.bmp + airlinelogos/AWM.bmp + airlinelogos/AWT.bmp + airlinelogos/AXB.bmp + airlinelogos/AXE.bmp + airlinelogos/AXK.bmp + airlinelogos/AXM.bmp + airlinelogos/AXU.bmp + airlinelogos/AYG.bmp + airlinelogos/AYT.bmp + airlinelogos/AZA.bmp + airlinelogos/AZG.bmp + airlinelogos/AZI.bmp + airlinelogos/AZM.bmp + airlinelogos/AZN.bmp + airlinelogos/AZO.bmp + airlinelogos/AZQ.bmp + airlinelogos/AZU.bmp + airlinelogos/AZV.bmp + airlinelogos/AZW.bmp + airlinelogos/BAW.bmp + airlinelogos/BBC.bmp + airlinelogos/BBD.bmp + airlinelogos/BBG.bmp + airlinelogos/BCI.bmp + airlinelogos/BCY.bmp + airlinelogos/BDA.bmp + airlinelogos/BEE.bmp + airlinelogos/BEL.bmp + airlinelogos/BER.bmp + airlinelogos/BGA.bmp + airlinelogos/BGH.bmp + airlinelogos/BGL.bmp + airlinelogos/BGY.bmp + airlinelogos/BHA.bmp + airlinelogos/BHP.bmp + airlinelogos/BIE.bmp + airlinelogos/BLF.bmp + airlinelogos/BLX.bmp + airlinelogos/BMR.bmp + airlinelogos/BOE.bmp + airlinelogos/BON.bmp + airlinelogos/BOS.bmp + airlinelogos/BOT.bmp + airlinelogos/BOV.bmp + airlinelogos/BOX.bmp + airlinelogos/BQB.bmp + airlinelogos/BRINDABELLA.bmp + airlinelogos/BRJ.bmp + airlinelogos/BRQ.bmp + airlinelogos/BRU.bmp + airlinelogos/BRXb.bmp + airlinelogos/BSK.bmp + airlinelogos/BTI.bmp + airlinelogos/BTN.bmp + airlinelogos/BTQ.bmp + airlinelogos/BUC.bmp + airlinelogos/BUR.bmp + airlinelogos/BVR.bmp + airlinelogos/BXA.bmp + airlinelogos/BYR.bmp + airlinelogos/BZH.bmp + airlinelogos/CAD.bmp + airlinelogos/CAI.bmp + airlinelogos/CAO.bmp + airlinelogos/CAV.bmp + airlinelogos/CAY.bmp + airlinelogos/CBJ.bmp + airlinelogos/CCA.bmp + airlinelogos/CCD.bmp + airlinelogos/CCE.bmp + airlinelogos/CCM.bmp + airlinelogos/CDA.bmp + airlinelogos/CDC.bmp + airlinelogos/CDG.bmp + airlinelogos/CEB.bmp + airlinelogos/CEL.bmp + airlinelogos/CES.bmp + airlinelogos/CEY.bmp + airlinelogos/CFE.bmp + airlinelogos/CFG.bmp + airlinelogos/CGF.bmp + airlinelogos/CGH.bmp + airlinelogos/CGN.bmp + airlinelogos/CHB.bmp + airlinelogos/CHH.bmp + airlinelogos/CIM.bmp + airlinelogos/CJA.bmp + airlinelogos/CJC.bmp + airlinelogos/CJT.bmp + airlinelogos/CKK.bmp + airlinelogos/CKS.bmp + airlinelogos/CLG.bmp + airlinelogos/CLX.bmp + airlinelogos/CMM.bmp + airlinelogos/CND.bmp + airlinelogos/CNK.bmp + airlinelogos/CON1.bmp + airlinelogos/COT.bmp + airlinelogos/CPA.bmp + airlinelogos/CPN.bmp + airlinelogos/CPZ.bmp + airlinelogos/CQH.bmp + airlinelogos/CQN.bmp + airlinelogos/CRC.bmp + airlinelogos/CRL.bmp + airlinelogos/CRN.bmp + airlinelogos/CRO.bmp + airlinelogos/CRQ.bmp + airlinelogos/CRUZ.bmp + airlinelogos/CSA.bmp + airlinelogos/CSC.bmp + airlinelogos/CSH.bmp + airlinelogos/CSN.bmp + airlinelogos/CSS.bmp + airlinelogos/CSZ.bmp + airlinelogos/CTM.bmp + airlinelogos/CTN.bmp + airlinelogos/CUA.bmp + airlinelogos/CUB.bmp + airlinelogos/CVA.bmp + airlinelogos/CWC.bmp + airlinelogos/CXA.bmp + airlinelogos/CXB.bmp + airlinelogos/CXH.bmp + airlinelogos/CYL.bmp + airlinelogos/CYP.bmp + airlinelogos/CYZ.bmp + airlinelogos/DAC.bmp + airlinelogos/DAH.bmp + airlinelogos/DAL.bmp + airlinelogos/DAO.bmp + airlinelogos/DAP.bmp + airlinelogos/DCS.bmp + airlinelogos/DER.bmp + airlinelogos/DHL.bmp + airlinelogos/DHX.bmp + airlinelogos/DJT.bmp + airlinelogos/DJU.bmp + airlinelogos/DKH.bmp + airlinelogos/DLA.bmp + airlinelogos/DLH.bmp + airlinelogos/DNV.bmp + airlinelogos/DOB.bmp + airlinelogos/DQI.bmp + airlinelogos/DRK.bmp + airlinelogos/DRU.bmp + airlinelogos/DSM.bmp + airlinelogos/DTA.bmp + airlinelogos/DTH.bmp + airlinelogos/DTR.bmp + airlinelogos/DYA.bmp + airlinelogos/EAA.bmp + airlinelogos/EAL.bmp + airlinelogos/EAQ.bmp + airlinelogos/ECO.bmp + airlinelogos/EGF.bmp + airlinelogos/EKA.bmp + airlinelogos/ELL.bmp + airlinelogos/EMB.bmp + airlinelogos/ENJ.bmp + airlinelogos/ENT.bmp + airlinelogos/EPA.bmp + airlinelogos/ERT.bmp + airlinelogos/ESQ.bmp + airlinelogos/ETD.bmp + airlinelogos/ETH.bmp + airlinelogos/ETS.bmp + airlinelogos/EUG.bmp + airlinelogos/EVA.bmp + airlinelogos/EWG.bmp + airlinelogos/EXS.bmp + airlinelogos/EYT.bmp + airlinelogos/EZA.bmp + airlinelogos/EZD.bmp + airlinelogos/EZE.bmp + airlinelogos/EZY.bmp + airlinelogos/FAB.bmp + airlinelogos/FAG.bmp + airlinelogos/FAH.bmp + airlinelogos/FAT.bmp + airlinelogos/FBD.bmp + airlinelogos/FBR.bmp + airlinelogos/FCM.bmp + airlinelogos/FDB.bmp + airlinelogos/FDX.bmp + airlinelogos/FFT.bmp + airlinelogos/FFV.bmp + airlinelogos/FHY.bmp + airlinelogos/FIN.bmp + airlinelogos/FJA.bmp + airlinelogos/FJI.bmp + airlinelogos/FLE.bmp + airlinelogos/FLI.bmp + airlinelogos/FNA.bmp + airlinelogos/FPK.bmp + airlinelogos/FPO.bmp + airlinelogos/FPY.bmp + airlinelogos/FRF.bmp + airlinelogos/FSK.bmp + airlinelogos/FTZ.bmp + airlinelogos/FWI.bmp + airlinelogos/FZA.bmp + airlinelogos/FZW.bmp + airlinelogos/GAA.bmp + airlinelogos/GAI.bmp + airlinelogos/GBK.bmp + airlinelogos/GBQ.bmp + airlinelogos/GCR.bmp + airlinelogos/GDC.bmp + airlinelogos/GEA.bmp + airlinelogos/GEC.bmp + airlinelogos/GEO.bmp + airlinelogos/GFA.bmp + airlinelogos/GFG.bmp + airlinelogos/GGN.bmp + airlinelogos/GIA.bmp + airlinelogos/GLG.bmp + airlinelogos/GLJ.bmp + airlinelogos/GLO.bmp + airlinelogos/GLR.bmp + airlinelogos/GMI.bmp + airlinelogos/GMQ.bmp + airlinelogos/GOW.bmp + airlinelogos/GRL.bmp + airlinelogos/GTI.bmp + airlinelogos/GTV.bmp + airlinelogos/GUG.bmp + airlinelogos/GUY.bmp + airlinelogos/GWI.bmp + airlinelogos/GXL.bmp + airlinelogos/HAL.bmp + airlinelogos/HAT.bmp + airlinelogos/HBH.bmp + airlinelogos/HCC.bmp + airlinelogos/HCV.bmp + airlinelogos/HLX.bmp + airlinelogos/HOP.bmp + airlinelogos/HRV.bmp + airlinelogos/HUN.bmp + airlinelogos/HVN.bmp + airlinelogos/HVY.bmp + airlinelogos/HXA.bmp + airlinelogos/IAD.bmp + airlinelogos/IAW.bmp + airlinelogos/IBB.bmp + airlinelogos/IBE.bmp + airlinelogos/IBS.bmp + airlinelogos/ICE.bmp + airlinelogos/IFC.bmp + airlinelogos/IGA.bmp + airlinelogos/IGO.bmp + airlinelogos/IJM.bmp + airlinelogos/Inter Island Air.bmp + airlinelogos/IRA.bmp + airlinelogos/IRC.bmp + airlinelogos/IRK.bmp + airlinelogos/IRM.bmp + airlinelogos/ISK.bmp + airlinelogos/ISS.bmp + airlinelogos/ISV.bmp + airlinelogos/IYE.bmp + airlinelogos/JAF.bmp + airlinelogos/JAI.bmp + airlinelogos/JAT.bmp + airlinelogos/JATnew.bmp + airlinelogos/JAV.bmp + airlinelogos/JBU.bmp + airlinelogos/JCC.bmp + airlinelogos/JET.bmp + airlinelogos/JG.bmp + airlinelogos/JLL.bmp + airlinelogos/JNA.bmp + airlinelogos/JOR.bmp + airlinelogos/JOY.bmp + airlinelogos/JSA.bmp + airlinelogos/JST.bmp + airlinelogos/JTF.bmp + airlinelogos/JTG.bmp + airlinelogos/JUS.bmp + airlinelogos/JW.bmp + airlinelogos/JYH.bmp + airlinelogos/JZA.bmp + airlinelogos/JZR.bmp + airlinelogos/KAB.bmp + airlinelogos/KAC.bmp + airlinelogos/KAL.bmp + airlinelogos/KFA.bmp + airlinelogos/KGL.bmp + airlinelogos/KGO.bmp + airlinelogos/KHH.bmp + airlinelogos/KHV.bmp + airlinelogos/KIL.bmp + airlinelogos/KKK.bmp + airlinelogos/KLC.bmp + airlinelogos/KLM.bmp + airlinelogos/KMF.bmp + airlinelogos/KN.bmp + airlinelogos/KNA.bmp + airlinelogos/KNE.bmp + airlinelogos/KOR.bmp + airlinelogos/KQA.bmp + airlinelogos/KRE.bmp + airlinelogos/KRN.bmp + airlinelogos/KRP.bmp + airlinelogos/KZR.bmp + airlinelogos/LAA.bmp + airlinelogos/LAL.bmp + airlinelogos/LAN.bmp + airlinelogos/LAV.bmp + airlinelogos/LBN.bmp + airlinelogos/LBR.bmp + airlinelogos/LBY.bmp + airlinelogos/LC.bmp + airlinelogos/LCO.bmp + airlinelogos/LER.bmp + airlinelogos/LFO.bmp + airlinelogos/LGL.bmp + airlinelogos/LIA.bmp + airlinelogos/LKA.bmp + airlinelogos/LKE.bmp + airlinelogos/LLP.bmp + airlinelogos/LLR.bmp + airlinelogos/LMU.bmp + airlinelogos/LNI.bmp + airlinelogos/LNK.bmp + airlinelogos/LOG.bmp + airlinelogos/LOT.bmp + airlinelogos/LPA.bmp + airlinelogos/LPV.bmp + airlinelogos/LRC.bmp + airlinelogos/LUR.bmp + airlinelogos/LVR.bmp + airlinelogos/LYM.bmp + airlinelogos/LZB.bmp + airlinelogos/MAC.bmp + airlinelogos/MAL.bmp + airlinelogos/MAR.bmp + airlinelogos/MAS.bmp + airlinelogos/MAU.bmp + airlinelogos/MDG.bmp + airlinelogos/MEA.bmp + airlinelogos/MGX.bmp + airlinelogos/MHS.bmp + airlinelogos/MJF.bmp + airlinelogos/MKG.bmp + airlinelogos/MLD.bmp + airlinelogos/MLH.bmp + airlinelogos/MLO.bmp + airlinelogos/MLT.bmp + airlinelogos/MMA.bmp + airlinelogos/MMD.bmp + airlinelogos/MMZ.bmp + airlinelogos/MNB.bmp + airlinelogos/MNO.bmp + airlinelogos/MON.bmp + airlinelogos/MPA.bmp + airlinelogos/MPE.bmp + airlinelogos/MPH.bmp + airlinelogos/MSC.bmp + airlinelogos/MSE.bmp + airlinelogos/MSF.bmp + airlinelogos/MSR.bmp + airlinelogos/MSX.bmp + airlinelogos/MYP.bmp + airlinelogos/MZN.bmp + airlinelogos/NAC.bmp + airlinelogos/NAX.bmp + airlinelogos/NCB.bmp + airlinelogos/NGB.bmp + airlinelogos/NGT.bmp + airlinelogos/NIA.bmp + airlinelogos/NKS.bmp + airlinelogos/NLU.bmp + airlinelogos/NLY.bmp + airlinelogos/NMA.bmp + airlinelogos/NMB.bmp + airlinelogos/NOK.bmp + airlinelogos/NOS.bmp + airlinelogos/NPT.bmp + airlinelogos/NRL.bmp + airlinelogos/NSE.bmp + airlinelogos/NVC.bmp + airlinelogos/NVD.bmp + airlinelogos/NVR.bmp + airlinelogos/NWS.bmp + airlinelogos/OAE.bmp + airlinelogos/OAL.bmp + airlinelogos/OBS.bmp + airlinelogos/OCA.bmp + airlinelogos/OHY.bmp + airlinelogos/OKA.bmp + airlinelogos/OKS.bmp + airlinelogos/OLC.bmp + airlinelogos/OMA.bmp + airlinelogos/ONE.bmp + airlinelogos/ONX.bmp + airlinelogos/OPJ.bmp + airlinelogos/ORB.bmp + airlinelogos/OTC.bmp + airlinelogos/OVA.bmp + airlinelogos/OZW.bmp + airlinelogos/PAG.bmp + airlinelogos/PAL.bmp + airlinelogos/PAM.bmp + airlinelogos/PCP.bmp + airlinelogos/PER.bmp + airlinelogos/PEV.bmp + airlinelogos/PEX.bmp + airlinelogos/PFZ.bmp + airlinelogos/PGA.bmp + airlinelogos/PGT.bmp + airlinelogos/PIA.bmp + airlinelogos/PIC.bmp + airlinelogos/PKZ.bmp + airlinelogos/PLM.bmp + airlinelogos/PLV.bmp + airlinelogos/PLY.bmp + airlinelogos/PMT.bmp + airlinelogos/POE.bmp + airlinelogos/POT.bmp + airlinelogos/PRF.bmp + airlinelogos/PRI.bmp + airlinelogos/PRW.bmp + airlinelogos/PSC.bmp + airlinelogos/PST.bmp + airlinelogos/PTB.bmp + airlinelogos/PTR.bmp + airlinelogos/PVN.bmp + airlinelogos/PWD.bmp + airlinelogos/QAJ.bmp + airlinelogos/QDA.bmp + airlinelogos/QFA.bmp + airlinelogos/QLK.bmp + airlinelogos/QTR.bmp + airlinelogos/RAE.bmp + airlinelogos/RAM.bmp + airlinelogos/RAR.bmp + airlinelogos/RBA.bmp + airlinelogos/RBG.bmp + airlinelogos/REU.bmp + airlinelogos/RGE.bmp + airlinelogos/RJA.bmp + airlinelogos/RJD.bmp + airlinelogos/RKM.bmp + airlinelogos/RLA.bmp + airlinelogos/RLH.bmp + airlinelogos/RLK.bmp + airlinelogos/RLU.bmp + airlinelogos/RLX.bmp + airlinelogos/RNV.bmp + airlinelogos/ROI.bmp + airlinelogos/ROT.bmp + airlinelogos/ROU.bmp + airlinelogos/RPB.bmp + airlinelogos/RSY.bmp + airlinelogos/RUC.bmp + airlinelogos/RWG.bmp + airlinelogos/RWZ.bmp + airlinelogos/RXA.bmp + airlinelogos/RYR.bmp + airlinelogos/RYW.bmp + airlinelogos/RZO.bmp + airlinelogos/SAI.bmp + airlinelogos/SAS.bmp + airlinelogos/SBM.bmp + airlinelogos/SCO.bmp + airlinelogos/SCX.bmp + airlinelogos/SDM.bmp + airlinelogos/SEJ.bmp + airlinelogos/SEY.bmp + airlinelogos/SFF.bmp + airlinelogos/SFW.bmp + airlinelogos/SGA.bmp + airlinelogos/SGG.bmp + airlinelogos/SHU.bmp + airlinelogos/SIA.bmp + airlinelogos/SID.bmp + airlinelogos/SIF.bmp + airlinelogos/SIN.bmp + airlinelogos/SJO.bmp + airlinelogos/SKK.bmp + airlinelogos/SKP.bmp + airlinelogos/SKU.bmp + airlinelogos/SKV.bmp + airlinelogos/SKZ.bmp + airlinelogos/SLI.bmp + airlinelogos/SLK.bmp + airlinelogos/SLM.bmp + airlinelogos/SLX.bmp + airlinelogos/SME.bmp + airlinelogos/SMJ.bmp + airlinelogos/SMR.bmp + airlinelogos/SOR.bmp + airlinelogos/SOV.bmp + airlinelogos/SPR.bmp + airlinelogos/SQC.bmp + airlinelogos/SQS.bmp + airlinelogos/SRR.bmp + airlinelogos/SSQ.bmp + airlinelogos/SSV.bmp + airlinelogos/SUS.bmp + airlinelogos/SVA.bmp + airlinelogos/SVR.bmp + airlinelogos/SWA.bmp + airlinelogos/SWAnew.bmp + airlinelogos/SWG.bmp + airlinelogos/SWM.bmp + airlinelogos/SWR.bmp + airlinelogos/SWT.bmp + airlinelogos/SXS.bmp + airlinelogos/SYL.bmp + airlinelogos/TAI.bmp + airlinelogos/TAK.bmp + airlinelogos/TAM.bmp + airlinelogos/TAO.bmp + airlinelogos/TAP.bmp + airlinelogos/TAR.bmp + airlinelogos/TAY.bmp + airlinelogos/TBA.bmp + airlinelogos/TBN.bmp + airlinelogos/TBZ.bmp + airlinelogos/TCV.bmp + airlinelogos/TCW.bmp + airlinelogos/TCX.bmp + airlinelogos/TDR.bmp + airlinelogos/TFL.bmp + airlinelogos/TGW.bmp + airlinelogos/TGZ.bmp + airlinelogos/THA.bmp + airlinelogos/THE.bmp + airlinelogos/THT.bmp + airlinelogos/THY.bmp + airlinelogos/THYANA.bmp + airlinelogos/TIA.bmp + airlinelogos/TIW.bmp + airlinelogos/TJK.bmp + airlinelogos/TJS.bmp + airlinelogos/TMA.bmp + airlinelogos/TMN.bmp + airlinelogos/TMW.bmp + airlinelogos/TNA.bmp + airlinelogos/TNO.bmp + airlinelogos/TOM.bmp + airlinelogos/TPA.bmp + airlinelogos/TPC.bmp + airlinelogos/TPU.bmp + airlinelogos/TRA.bmp + airlinelogos/TSC.bmp + airlinelogos/TSG.bmp + airlinelogos/TSH.bmp + airlinelogos/TSO.bmp + airlinelogos/TSY.bmp + airlinelogos/TTL.bmp + airlinelogos/TUA.bmp + airlinelogos/TUI.bmp + airlinelogos/TUS.bmp + airlinelogos/TUY.bmp + airlinelogos/TVF.bmp + airlinelogos/TVP.bmp + airlinelogos/TVQ.bmp + airlinelogos/TVS.bmp + airlinelogos/TWI.bmp + airlinelogos/UAE.bmp + airlinelogos/UAL.bmp + airlinelogos/UBD.bmp + airlinelogos/UCA.bmp + airlinelogos/UEA.bmp + airlinelogos/UJX.bmp + airlinelogos/ULG.bmp + airlinelogos/UPS.bmp + airlinelogos/URG.bmp + airlinelogos/URS.bmp + airlinelogos/UTA.bmp + airlinelogos/UTN.bmp + airlinelogos/UTP.bmp + airlinelogos/UTY.bmp + airlinelogos/UZB.bmp + airlinelogos/VAL.bmp + airlinelogos/VAR.bmp + airlinelogos/VAS.bmp + airlinelogos/VAU.bmp + airlinelogos/VAV.bmp + airlinelogos/VBB.bmp + airlinelogos/VBW.bmp + airlinelogos/VCV.bmp + airlinelogos/VDA.bmp + airlinelogos/VEL.bmp + airlinelogos/VFC.bmp + airlinelogos/VIL.bmp + airlinelogos/VIM.bmp + airlinelogos/VIR.bmp + airlinelogos/VIT.bmp + airlinelogos/VIV.bmp + airlinelogos/VJC.bmp + airlinelogos/VJS.bmp + airlinelogos/VKG.bmp + airlinelogos/VLG.bmp + airlinelogos/VLK.bmp + airlinelogos/VLM.bmp + airlinelogos/VMP.bmp + airlinelogos/VNE.bmp + airlinelogos/VNL.bmp + airlinelogos/VOE.bmp + airlinelogos/VOZ.bmp + airlinelogos/VPA.bmp + airlinelogos/VRD.bmp + airlinelogos/VRE.bmp + airlinelogos/VRG.bmp + airlinelogos/VSV.bmp + airlinelogos/VTA.bmp + airlinelogos/VTI.bmp + airlinelogos/VTM.bmp + airlinelogos/VUN.bmp + airlinelogos/VVC.bmp + airlinelogos/WAJ.bmp + airlinelogos/WDA.bmp + airlinelogos/WEN.bmp + airlinelogos/WEW.bmp + airlinelogos/WFR.bmp + airlinelogos/WIF.bmp + airlinelogos/WJA.bmp + airlinelogos/WLC.bmp + airlinelogos/WOW.bmp + airlinelogos/WRC.bmp + airlinelogos/WSG.bmp + airlinelogos/WUK.bmp + airlinelogos/WWW.bmp + airlinelogos/WZZ.bmp + airlinelogos/XAH.bmp + airlinelogos/XAX.bmp + airlinelogos/XLF.bmp + airlinelogos/XLR.bmp + airlinelogos/XME.bmp + airlinelogos/YZR.bmp + + diff --git a/plugins/channelrx/demodadsb/airlinelogos/5AH.bmp b/plugins/channelrx/demodadsb/airlinelogos/5AH.bmp new file mode 100644 index 0000000000000000000000000000000000000000..0a17eb5f6e52254708b99cedfd66865e9b76a6a1 GIT binary patch literal 5176 zcmds4X;2hL6mIauhzc4-fyJZ56%+!3iU=x#C{d%RD8UO&nZtN%suH}SNmUXOHJZ{& z(9$I3l|(IX%fut1h2nvl@{YK>GqW>0d$H_&=NlG5bXk%3N4sW+p4Z*4-}m18UN>oD z26iA-tv}vk{3hWii2O(h-h}w$qZj@PzsJq}nl_Wcb>w%`vN@WxzFf~>Ix}9erBMGY zR`RUqHIVGxZWt2Hwj;6@L=xVF`l_Hp#XG#>dfo6}FSX{4Qnn|u4n!7AWRuhRTi0z~ zk$Z$*@Y`)J9}ApLAA_|+CZo%s_ob(H>JvSO-EB6zTu-cX*xZ%6=WKcZmhHp=(~ckX zb0(-d5m`$jd6US(no?gZt8jXcdhM28@Si?rPK#%AhVmL!osBoH)g|>~SIpC5_4?Ji zL5b|TRk|8YOJ`|P6WB}VERcM+LKiQR_YPvFW-5Q(q95LmTRBgw*SRJSQ;tql&=SEY zI4FONDx*Jl#b_&(FlpA0b_hftThOhEw0m<}T5k8uc{@RY(c(WX$M%^6i8Pc@6H@rJ-W-zf z4I<4=6YTEMobE_u5AO;~kR7odm;fTZeBR2lj)YKo3nC3CR8j=nBap^IM&^iW!vqo8 z=mf?1WFCPwQi!J33>}JywMDl2P=ItGSX|c5vp+bl( zM0isOCi-yyin#)+jA*VSp$ZEsL`~_$E^?zm*amz7{tKrqhjtqg)#za6vk$c2uc@3h zRs~ni$Wnq$i04!ILDaHK*1QZJr2XUPI*H0sj$VN@_Wd|lUASDgG+%=hcox4(;aE6R z-93OtqBSFu=~+sP<@vB{{NNqG!{N>z%mc=v8EVNxd&yY~OhNqrxn@O%15aiQXVkkg zV-(2k{O|X&Kp{6E&gQR@HNaA*OEp%kSFuOHm8d%|e5xReSf z&aeZ!j1kRfaqC+CBk#rzP_(OJA_@oGeRz)$i5F`1;zvzFxDcO{2Tc=*EV@}4I3EjE9&YFef;x*dbH8`kJFYG=2m zG)NTTPYsFW;yN-di8L!-0bigZf-fimeS(;YsXT6M@gZ`%-32Peb!D=X`P|{kLETu) z&*;O|u=>YBJu(qx2oJzxuNOk@nOrY^0mf_%N>0BJdAL8-w>_iNI^lv?v3&Ic;c)V_ zRr9q2V%c3q#&4JFh9`5E{;oRzR_gk6VMP8^xE~c4%B)>nfm;LOKQ4(!nOwiRazq># z70l#};BQ_P4nMSOCD!~2%9sv}s3|25rsw6VAw)G9*o%eNME-PaC;8kw^@H2h#|?s? z+LJ}j1AG{v!kbZLrPZpc^fmP53;(r?*3N{&g9tC2CK!a`Z1;AXLabQYapQ8W1vn-+ zxr3n`2EBJedOemPRIm=*6l%{4S?E zJ6VCE+KNa|9~A;yU$a?V>3ulx{K#)F%)t6|`j($PVMg$QUkHA43Ze2nzrIml_^}3u z@TZHkg#|j_msy+Dotw^g4WiB*udaXf?f0_er;nO(vH(AB5L1RVhWQ>#o`b*P=7Jh( zMRoOV_^L+FEG@Qlslp#bq`QlrJ~$h$_NC!(_?9naCT>UK)(j}nt2IMCsxFF+(EO_6 v2h;^qHMo6zm?PXi8r@!D{5P-Ia4_Njf<}YK!dDnStlzuUi0kA3!cWM5-Hk-# literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AAF.bmp b/plugins/channelrx/demodadsb/airlinelogos/AAF.bmp new file mode 100644 index 0000000000000000000000000000000000000000..9c3aa35a2f5014ddeb8887608c97936adcdc9a1f GIT binary patch literal 5176 zcmeHLiCdFL8vhWjfFe*ijS7egXl*U-qphuOwa?S7b@4(F0#R-i1px)RDk~~-wjif~ zA~yuNPXUoL91;=;$Qc3=BtXKEa0I9U_Wk(qTUdAd2k6c--!SveJMYYI-fO~9-EZWP z#j+n-E%@}|LrG$YGPDS?3I>|+7yaIsg-^R6pEmr3|KtC(4PZ(CeI4}f=9=CPS|_ct zJTbN^oeZ^lv7-GnG9@)}lFx^`5>8B%ljGWItMGdhi9~fd>2-OTv$Hcb*{QUmy!nNB zn4O=WZ+lgh6Y_h~{hR3zy=rpOdHsDr9~!BKNU4M3?*zMzoCk0FRujp*MyjOj829*MZ!(!?yuJ$6Hn4X%l+O^5~ z2OYoz^vGZBV4ssi|b8t-@|?LPakuz`dN3M*OUdupzXCQDMhcAw|()1Li+-Ei~ggM+>7*=Zq*K_{t7M>t%BsX%LElB!H=ZPoY) zk3Yhjo14oE4>VL-Lwk`wJ~9mI6^!t}rm($);{v<=JM9l@(~I*NrA4rvx5+7zx@>Pp z>(s>fjlX_vw_odRSBGGj$L9@!N?}#p-CqH7-jm?zsmW39-~%IFL*=#Y^|dhNX?Wa1 zQ)zsZ2bKu8e^2jkDE?Gm&%jH+^t2>aW_ZNkx6TN1q-6P8?IxIMY=nC?Qjy3G^~X+w zwMB7H&dH0z1sf`T2BOca$pBkFi}}aw4B)@Lh@X;?tS5^UMu%fd#)bw+Y8xUPFTpVA z5($=YSe>}cWKUP)&Fi?mY@D*Z6MWUwKwb>pOX)M>CP~tk^=>DBgj)k1aJMrX5VE)1 za{d5oqJ^d+pU1_B&mRW?4<#)LhJYVn&rDCp{PTv9iewwL2F0KE*grGSu9SRlke!zk z=0x_i$q9F+WcgU`CKxJ7+}A%gGc8=c!GwU{QeD|m|Ei^`yuK(8jLqffU*<&bAT;3k zvqJqq3DsGtu#oyZ`>~S^ksuYmX#XgFRhhnyR$OMx9cOT~QgZBTN*SZP7z`NopZ8^W zpueT2vYlGfQdN-?_Rv6ab<7eLnt&(< zLocGPna1ay#FOSb6r7IefNi4qx&75yA@=#AU zG~lA~PWB`J5L8=ttKChKxU=lbEj7t~}N4}Xb((-ua1Q;Ym+a(%~m1=Qkz zF6#LnVBc)%ZR4`?|Z*@wlyhb#48 zuuT6R5dXB4CPqg1d^6zJ+M!FCU6{Q@$*D}>mNbrY>{KvPmT0ErV|)LvHak4voYES|x~;Voj0X;M`75=5{PZoBY+)PQecR6|t})&u z3F!?K*jQE!oNzu!!pn`E)kKGMW3)*ULW!ZuT4;NkR|K88`FRf`UHy&Xj)%US5G*~7 zAR>ZrNKZt9B&Y%8-#UH>wifL3i~(pKqv`o|^(D>Q&1T;9&k&UQA`vtBbqb4$4z9F^7Fz;18B*#x5_ z@PMHfU+~kuj_1}b~e;88|!C;Q@9YUGsfe#QENHu zZk!HL0ON0&bIBGEgHbCf&OO05-)p*G*&&1@(s1Y-mf>tfL0z({Fg z6a-%MsiUQYzIJvhSnneAv@AWp@XbEf4w4b*ZA@6V2woBJgE{3z1bwV%Kg5MVh$a#w zKef(ZT%_%Hu!GG+h( literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AAH.bmp b/plugins/channelrx/demodadsb/airlinelogos/AAH.bmp new file mode 100644 index 0000000000000000000000000000000000000000..bd1e395b85b1b85ab1eae0c60f8ab51fb3c22cb1 GIT binary patch literal 6856 zcmeHJ32c>B7XB0!XB;sRCmM(jC1-73zh;cOQoeiTiU**Z-0H;|K2-(=l{FdYB5n_Ch@)GzWd*E&b{~C z?|$c;d+Xi1dcgb*=6^r72iY!SI|IG=56q^%p^w!}0sllK)lwLwIFRB%iUZ9Ya3zA6 z8r*_=-JhB*C$J5^WF&>puZWT1?tB)W@mLfp!NR5zbg{jLCp^o4F{X6^L8VL36l-6< z5=p^PkJXNO1-1S*eW_irqekG5S~Be`-GY!|jjMfvlU!G8;@$@8xQ-{x?|Ol+dCrNr z8x@8VQHi(nJ(4s``EkRADmF(v2<1^_+=&=jDUQ{mD0TvMac`@g?xFHfB8olH zlc-I2O}*})Y`%wS!R_d2e-jh@g&61G2-J_q!=3_j4O=3BFQb(>VmQokQj(nSp)Uz* zY{ZaE#9H@L|326!I4fH)dTSeIDqnL{aLzQreX9fm^8~jqvoIXSanCt|L5l>v=L)vh z3RYJNy5oA3J*~K;yM~P2IOcm#hKq0!@vVqE1fQmGn*)S0gdGk>aDn(b@ zBn)!S#vQJY0j@E)@qG+%&cHQ|@4`r0_o+Bt$8k4X7KVHBp+0z%VayK|<3jrs45Y5R zBO5RI*W$R*h?)M)s5RWCFG*r*I4j!u)esbPdrxoy+jBhcQ~$I2e#8K8TG;kqD7bTl zAghS7$%3uK&LEHbFA!Y*ksxbU-0p6_KidjM-E;O zY{tB%Jy2O+=S+<8e_`rYgbyM&xXZ+RL-+{(<(kWVXSA-Rm=5zSHt*$G&q{3N-pX~< zW#9qN64P#u&foJg=8^*^;x0sgz|C0QUc?*Qv=dO#AXaZs1&JNRYNga2MzH;@Umt3nB^2 zM(5w`nonN6imMzm`TY@k+ouEHrQvbUGDMP5{K=MSa$_=is+`^s`K}cQoqs51XC9o0 zOBlBuIqW0Pw0%enZs9(I8$U2@i(_^8w`URW?F}@ z?_&H;-EGO&Rx$rFclKQ%=*RYPnKl2VuLS!Yg7aq!Zegz2d_quSm6uF6J|)b^hm}L%@O2 z<{jv`W78bCGJF6hng5>jE;ljR9j(DocOFnZ7I(WBVOnq-hP#&n$Ht<}Xux)IRCO7? z4LHx9i6OL6PAc9gei=){`+u~L?rYTVL(|S2>XN2D$vD2Ayy{90?qN;2gfZHKywbX* zI>l6DS;vpBqmI~Iy?}U9{%t+a#(WCq)0>H7cjl08T;~hozKZhRx#T(5I*)u#-`4)z z-b4r&lVevhPK%<|tPK-zBRQo$x~S89s=Uz}a*=Zi-Uw_mv2BURozdgw9sIK~_b1P( z+#TSYg-e+il=J^^RyN&`2C`9HBdH+_p}L*cnffuJ*U<79@i&W9NK5*l>YSZ z&&)%knA=-wQ^)($v46#*&A3|UoLfpYZm@6|dkQ~%lD+raDHk#wMN2<))?@xry zdaZNyJ)n5&cbN4_vBAO7%*mgj+_1qJ4`6S!7TM&sz6A{0lre6VgDo}55%X|@f2?zx&U`WR6fs4~2-cN%Oq|r#mhiLIzlO(t=AEc-r9sa3 zfYOmbZ3h0xc-1_ic|-B-Y~Rxbts}26_iv1})lPk^J?s%VvIgO@ mB~Tv!9?tt)oiPz`AYr7q`di_h+UJ+miWF`s-2NXp0DKQowKJ~( literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AAL.bmp b/plugins/channelrx/demodadsb/airlinelogos/AAL.bmp new file mode 100644 index 0000000000000000000000000000000000000000..54efae32ff960194ba56822f2702399dd0ba6bb0 GIT binary patch literal 5176 zcmeHLSx{4F6prnKAQC1-!vV<%kOB4hGNMuz+ zAV2^Ckww`A6cA){2q0V7LC}x}62f8vNeEj4{Vo^N3_6a_;F-Dip8uTl-~W7PyP24s z`Q;1B2K|it5nShS5u#m`gSb;DpJDL>p2YQ*)^|2hb~gO=PxyCI0W`HvSvxnLv90~v zuI|J?)#11Mc2NGs67APN)=>7B?mqaKvbW6S`>MXdd5TOX(=INOMXTo}QM= z<&Z3BwKCZx7`0k0mrsGw>2w4A145xtrBW>|ElqA{A(v0eVFN~?P;_;6O^i=~e+3$S zHMc>EHwvXv3E`Y_Zf15C%*6P(R=aub`r4XwVgh@orlxedRq(5;tFTcjlrRPlC*j+q zT&`JIfP8Xtl4NFPW^ml-=qPqU*xA`78XJSbd&$OGwEN38lkbH4z7_5>71lPYU`C0F ziB3sLCO3?XjM&>H?;+s>1K;6^%yY>*K>>G5!7h8XD?*x_fAD zuH;4*i&fuHH#{_CXKU;0>ywZWUs+XYZ*LbB9cg1@U0hO>kQkqu#)t9UjP&sEa4;L>g#Ko7l+S{qrDx?C`($ehWLYRRV3_@8@Ip@y z58$`5vP40_hL@BGe}Lc7kqZ1wCSwyn-Mz7)0YT5o%F^rg8}8^~KR>TR^jSfrNJ5GgK~D`;vWs{;m1CbPD#md*C9s;a~iBo>RgVPSXf#5qvyOCA-+C&cr3 z36N*q%Yqz?Mx(Z}w8RqcIeYeuNF;&-mpwgE(iRryWRpbSB_;E47VyJE;0Lg}IwJo- zUS0i^L8pg>T}R+>dUZ{8d3l+mg99WJ6GZnJlWujnw6gucPvsPoS5(@<+S>n0V*c^@ z{F^Z`V`4GVtJmoS0>QCkN4vYbv+rl0I`zlPmoF0&69NJPy1Inc)>dfF%&bfwZ*N4$ z?1Y&>(1Zqeb9Jq&uZ6qtNhXy6JO+eBBI)VrwYIjdsCa_9K$St_=XW(aCYn4S(Lt@E z03E1Qy_*hWHk&P#O3CAghlf$po*t~6``M5T^!KA2 z6mQ<(XaKt%8_P@Lp*t`aQJz|@79EtCnE|h0u(G^@N|bnuRJ#G4L2IICYFew)3QwkLl5ib_)P y*KqowvErjkip{~aqwvo!NS|rtjrv96XZr_ed*=TGfVZeV;olOF9k#^Zfd2tB+ym+W literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AAR.bmp b/plugins/channelrx/demodadsb/airlinelogos/AAR.bmp new file mode 100644 index 0000000000000000000000000000000000000000..0acbbce6b044e77a9c72a5acdd66131ab62f3855 GIT binary patch literal 5176 zcmeH}NlaB|6vwYki8k$uw6Vmd>#iDOW78&W7j2UgS{5!?;6@+{I3Q4vS)7?vB2ZH1 zp&&MZ6DkTa&%uI-%!7)8C?EoXH{5&Qqrb;#UrC$LJ$S?W@_px?@&7;PyL{{V#rw+2 z^EvA${M`82M4OZkSrz3i4vz22Z$-eeys@7*^}peNBO|ck`~T+6o4T$`3$X9&>swr0 zEG#UHjg7s1`?jWOPoF+5FE4-a;K8k1w?qy7t5>fM4Gp32?AbGfU0q%5A3uJ4{rYu_ z#e&3YwcfaKqqn!0{nFAB^6~L;F@N~*VMRp+Yi(`q{QNwwUcY|LE6j_Eie_eJaP|Aj zbLrA0tV&Bur>Cdy-MdE=)Sf?o&PxnAUc7j*xVSh!KOZNOYFb*_*|TRG8yiVL!mYh3 z-rn9%o;(r1hYuen-L&QdNbaeE!akFJ6R&g`GHY zA|oS%Lb|)VQU2dYNlZ+nu*k?rq8>eZbar+Y{DiCQ?Cf*r&H;01XsE$pIC=6UnqYw@ z-C;7B2sSV<(A3oA?(R5z(7`2RV9PFckg<6d4-3E;|j!~TIz>b%3D}i zXlrZRw{IW42C?`@K@4dPjxdy&nMotOeEAYJJV^b3B5JH46(1ijv>!iyoZhj&T4SSB zRaJ$Agg`Ht5dc*vg17YabRv-@Kpr`A1i!omVBqle^`#ypgduO%q@<)XXUYHEshxO3+YZ3TkZGEJllX>f@7-o1P2JCq@Sf+1WC=jP@((s8uRl`B`E z1RA2FqvS}0YXpxkamC-EFNd0+v zc?2bmYuB#P3;(VE(W6InJ7ot21u>z-qC=@4&gg&AfJHE6UiR$SLrR^Uoe~tGY*-n- zU$c!r{$v{LQ?1Kpkt=90Yyim=Q2-rFwOn|-hA#Sof=Q7(jJIggED(hicyn}fbE6}e z0w#zV!3y|kazKF%i6Lu4Lj$1D7m$er-VzcL=nKNZIT8jNhe9}5ixvGZCfswocJ0E7 zOvo0XK_n|HOVn6tB@Yh|8GDrfg+2=8|LOK6MOpOmS>hyyw(lR+y1Keb%@hVjP{H*B zmed9W)NeEz(d3$SadD}ut7A`j)I*)@<&F>?M!?zGnZZH6`r%^3AutIpOcT73G{ek2 z0v2qrV*Z&gI*3eou-dXuz?tF}em#;AZrA%V&$xz$Xv)6acM`zOq*X z{mqJEaB?!w%xLmffkq&w)j^tgNTHDmfpBnekRz?$+S*EAfZwZEulOPm2|1GX_I3%w zHO3wVh5~PxL#cR^Fszh~4&PVQc$hViB^G^AQ&Yoe@P)%C67Cd=#1(2BiAZitXirZM ze&D~kxfumOq3to`dnwTg3XAlJe1q(v|Jqpfh8Dxy4nSZo{LS`}=1~YEJ67UxT%9)w z$x*VgYpy=p_iT7XhYjBB`r=%U$n7EQ`tl07Sh0Z^$!E0_TY!}ib`SQqtKA~}`>1O= zRPz~vT9d9Dzx+y56z%)(sEahTb^ia~FUi{W&lV%XjBV{ktJOpore)dqe`kx@KgdyE z=ksejr^^cG1KL;5<+Gc`tMN#?N>SSz#l5?YOehdwSHESas)4 nZSxl62V0kVhYahU|9=p$+WzO^TcBwct-ISYIApY1m<#1ku!_tv literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AAW.bmp b/plugins/channelrx/demodadsb/airlinelogos/AAW.bmp new file mode 100644 index 0000000000000000000000000000000000000000..4053a4a74d503df2081081883870f8a3c2e4787c GIT binary patch literal 5176 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 avR*;yLgP(W5^zWT={9ruGj+iiz<&X?!5+{6 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AAZ.bmp b/plugins/channelrx/demodadsb/airlinelogos/AAZ.bmp new file mode 100644 index 0000000000000000000000000000000000000000..e4a39fcb9ed77190bdd3f8a139af22d74dd9428b GIT binary patch literal 5176 zcmd5=Yiv}<6}~2@QQN3$)LQ9FRa!-Aq)1i!qg7S)N0lG#uT*WNR_Tv66|I0G3|Ikd zgTX+k2@m5Z7{>%-vouaauoFoANQoQb+Qw_Ijj`9e>-9eF-g(d5=e`~4&aPDyL;Azw zTH@&3*_pZXINv#E&Y8W>zwo0kD@FRDET5InZ{$hcapO~;By*eeIl;7G1|NBij$y`7%-0#P*% ztlC;nL)}}aPW`Q;qYt9|Vw`T<)>L1A{rshOf>Gzh@poT6cBQSY_weEKu~@RRbKrd2 zwUdV~gyy7A>4YZ;S6xF-h&%Whq5>l*62P*r^)3ARcL!hh488cP)^i;LB6D~9pD*^^ zSe%`Qy1gW|P}h9b`A^2M^Cw<;V`v}}4qKIbJE{J$mEluU;T=00sI`>LE!Wm|z0o~J zlFR-G+x*8P-ia{NEfE?pe*fChV^=(v z`x(ogJNI_i<>Bno@=|`;^ZL-Wo@wdf`>MJUFe3z+919(Iv0?F8iB{M9eJ3?kxmp1~qrUSywx4MTKo33gq9rpPr&;T6+He_F!CYzzQMuQN)i4 zhDD<=f^`ui91ts`86bf;&~(E#gqb%CZW{m*h-ikJDdEU;N2I?1#t6?~rs*_hLQ^I` z$N(i!m;`fNP>Y#H+}32Kq;iu-68~z4#L^LfOn|Z%b0$+hSA`xoh-N@63O)i-iA2(g zN^IdkGHE)x8DoHPU zLe;PUm}?SQ!dBI^t=lnXZGO4unP(4mUk%7;N3eqdF)+5`wh>Kp)#jQZ(+ZawVJm^} zzD?X|t_%J`h=xKMP?}NIup1=b{Zsl=ix-9h`{D(iw@rb7-n=0N3%IJ2>F*S3;zWQSu8g0z97nGL-Fh)wxA=dY?7yN;X(lntl1CB?N-lv;g{A&OhcCC z4`&-1Kl=GEFFp0G&M%Z+`p$EwMn}QOP2-!TjT=9A=Ch^skC!yP_(Bh}mp7Nc`PC=e zzV`Lj@BO%a%hrFscSD0_vKRu~Klb<3w?6nWGI`8!;N%_kXFsibLa9_rYBnf!8>P`se9w)*7r(Uiapjm&B8MH_s2nUUEpIqG1RMi!Aj1LG zEa^K^t59Bn-J|uuj|CF8YTAab>DU*J&Zxp4rT(Cp4;b@NG7A=*WdL-${?tbY_P*WV8Qx%S=;~ueolv>13d}-rrb1-F9|5&hA#c{Ew$UzdsmuMn8nDwG-{9 z=gv0Fww(1gw~yDidRxxiZf)^-E>4F+mXVh6B(Y+7jKr$#9Pd;_D`PG}T=v^Q$OhT3asvi#Ws@ZPhmkVQz<)@6^-qD?9gH;v7Rn?=MJ83)RI5}c2CAhpSC*)mFM!{7Ue7MFM x@Jsg=Lg;HIIprR&OcqAr_uf+Xz5V0{D`SKqcyUUx_~iQs>QcfrDMWq&{4W%0Fk}D# literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/ABB.bmp b/plugins/channelrx/demodadsb/airlinelogos/ABB.bmp new file mode 100644 index 0000000000000000000000000000000000000000..0750048d172da559637e89e078219c8fa508567c GIT binary patch literal 5176 zcmdT|32+lt7~U3Jr~~B?Ib;S@gfbxDa9R|ofRwYGohlS417y^%5~SR22|H=Iyq%@2m-UmLwXGL|~ccYCv}Fty7oZSAoOf zK6S=^IG;aqls|TY&oAT)mHs%7$E0SW&Qdl=lP^c;{f&TtL1t|CZV4I)FG;OVhM%HiSs!&-h_btp><$<-bSIkbE zT&~K+d!+MPv1s8WNphFob=)Ws;Y1Y`((kuLjO}(w6x~Hv1x2lT%7sU?lAEG3L(?wM zUZEW4e%$X zGRh>#mM&-KEoPEZnT5$r@h{>#Q;ioc2}xqY)y9~gFv%Dmp)WYb!t`<#Th5Y7=Aj;SLX$ZkrekIup$4!0$qA)+jcC6IvPE%YS2X0 zF07m~c$^R}FeRSuKUfcLuwK+e!?_DW!d%n!8{!*-^iVNecjzbzxpvlE6I=s&*|>#+ zV9AntYQt~HrlBgYxK_tO4&P}YTAkdWA5Tf`m?3q&%av7nGYancT7 zFw!3UGLxOwyxnq`TrLu(%rGK}MhvB(l%>ne&<@MWoD<$NrKFp$UK7Iy>gO&n!CAKN zvVQTU{1$Qnq9!(uhM(hc+AR9~B_TH62>kFw_y`W8JEd|Wy;3A>&wC&qG3llG#t%!j z3)3L0tz2z+u8kVzg^1v2FuD}~htDe;z`WCE)8YMfg(vL)*b)&AoM^B%Ymq>y(>pz9 zgwqZ6X*BYY0Wykm-7RyltOUP6lqsxSF8A#}9A;L21P9UKMp^|iXyA+rjnXR{RiE)P z_KhDePnkj2Z>)lchcs0U7@~(LXeP$>3i4kF`N=94QX=ufN&|=LksT4+k0gW_`JVKW zU--A~uoCskf*O%TFuA$XAt6>7>1@_U{Y*o$)r;kwx@&M2wrHykL^%*d&VJwYq~(5G z{Qbkf-5ME1A#WiFVRq~d7s%UV8#Ig>F_uE=8Zwf4dn7e1N)BmM3d%YExI}!SeEh;+ zqXe~Ex78@pf0*iVi&z4KE z1jL&)Gz5=EX|3x|-6TBz_9(72_V zRMkBf@C!eR*0vqW=Pza!r7-AGpEYc*LY<4uKXZ<0-a-?~l5V}U>B}CW@UCuzS{(bv zkMFY$n>m!FkaE;`LspIjq5g7b4NktVzP8=CDZbW6huRD0f99vGR{ucRSBt>>+}byO zj+0P$DeO?;DuqpAsu>^u%Ksv_ev`q20A<;o(mECbzVX*s$syt61J+L+Kh0#m@z*Fl Siu2OS?~NK)>(C_r2K)<7wH$Z= literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/ABD.bmp b/plugins/channelrx/demodadsb/airlinelogos/ABD.bmp new file mode 100644 index 0000000000000000000000000000000000000000..32f40c976a25c5843dfce562c8b9871d33f53aa2 GIT binary patch literal 5176 zcmd^Dc~INO6;_hANhY4oWYT6l$ut=|ZR0kHkC0%TPVB@ru>*r0JNSrgoW#yyJ0`?- zJ&wU;xXmFBbC}Z@1QHk!$3O)VNPs|qxbItl5F~(SY9b=`~quqkfQG6)X6O4^$8H^{pHk;M7sGpmVEzHiSWW7)>Xr>3mB~t?(kWtiQ{RW)|0@}W+Le2Q_ ziu!RjYxtLKR!Mr;?Sp?xJZYEd?!>y_7;|`wuiaBV+Zl1kw$`SF0^2XG%#XM#lM1aC zbD{4!7*P%PU?ir%&PbyOa&vxi&h_K+w%TQz4bJ69T;bk4v%GAZ>Tj!v@yzu+RdVYh zhIQ~V3w+P=LOpsb3(zeKzdX`ZX*HYjZ+ADwG~?q41lR786gsd*|4;v~TtXI6N1;=LNrae-rEa z#%OB|y%=II@zgs$c25QU?YEt!99qBL1q#2SvmU4-4!nZ1O~2siv*QUW;I}dY-`mh$ z!a~LpkZSo*oaspobh!}Gnr5JX%NC;5qD zZj?t{ol}m`(-fTzVf!}1HLQ#KK}*mhb}%dR(#H#$DX{dAqzpOI#m{d47c1`QTc)MO zBHwel*FPf`#3?~c$Cvffs{~P#8Vpy;JL)h|J2jsC`L3)hhp}xCCt}TFT*54?)lwe) z{(kmP3!<)(6^jDC z;aolhxktoBYIm3CVB+H349Ga)w( z0E=?j?7M@}S+<%5UHmKrMar37nI0~H7k_-a#kACzb0^}!t0uz&=rifGJy@WpJU9CA z7Tl@00*N`CYLv@sQO=t<9tQz9VCS>L4dwW%GQlVMlh@5g17wYS2&~kUmk3kvh<;iT z<-8e{jVUMXFlDSojPqwYZUjkzYonYth3|g_Btn+R^E{pQ?Ow>((%moL5B>1>Y!566CZSLg!xhID)~1$9xz+8exp`s{?dFX5V` zP1R>c2Jd-(w7DvUI{YIZ zn%CYw_*xx{2`6IR``26x{k|fD3%tKzUHpj1;NSp?}+n~|3iUi2R_P!YB z`sTf_J|OVw*|)<#dKvh0ub)7I=%y9ADS3gqU>#k2E>6l3VLq?aYy=jN5F=1 zRw3j3a0s4-0HRr5UPhqB9{Ee?-(N(A5`z?ei`AA^CcTv@2+tNWvxH$BVNiykqPeeo zL>ZY=1^mox5&V)RY{5t}Ew`%O`(Bwsr6pZ(6+#a0rQv!ifKhOtfg{YuB?NPl+fL5q zPuLzV_rCtHo*jjU78yfYlL0mL>~7ro#ev^W_O&9olW52 zYpz3t7h|SI&2R;QD}?nOZX4` z*m~E9GMr*ND&eUpfFoAI;Z}wKT!`DTwo`@+GO<`PGD-b1UGL>l{J=9YqfIMo3}Eqb zBhZO}a0ulHkq+K>dAJT6`>5Y1{{!V`@B?lIf&zot73pQt;fH8{ ny}RJ&@e@=wn+?xCkRPr+@L%ho0vEpZr=LUX9XZ)Q{tftV;66nd literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/ABG.bmp b/plugins/channelrx/demodadsb/airlinelogos/ABG.bmp new file mode 100644 index 0000000000000000000000000000000000000000..77a7a1222ec12e7c63430b6af6dc198ae0ccfd5b GIT binary patch literal 5176 zcmeI0T~HKM6vuBhO;f(XYBg5VG*j91&_grTXb*io)HFR+GxpFEGcX7X0t<*Bi+ld_V?N4fv#INlWCs$)YN=Wx3#y&dS`H9 z%fsUQ{JhCza`$AhSWHHvR5P2+)6>(gUAF9Y`<=nT@X*l1RaGuiC`?UG@;x^%abfbT5^!`!hNTa?mz`uNwTa_N=*0=eUi>7#SH!PDrS& zsgd%&-rg-qNtG29ESnk|Q)H+|PyTQA!;23waqLV#p)r5Nwh zqx`@a92f`<3MwxvL)zKVq4e`BDJo))V{l4@$b$m{PM$b{{9t)GH$L0kOzd@+FC!`1 zyEh^%jD#@PmXv@W%ycq>!a)#H&yd1B|KyYKmG0ZeZd!8kwzM>}$%NUQtSpQ$PM<16=_8+@7S7Z8FA$++qZB z(&Qz6@<5D^9yv04_ikulAWt9)6fo6DLt;KOG}L(J3<~fZVte3ENk{-2EdXv4R;U44 zsB>5T!B0m(M^X=ir%s-9;g1Rnqh1h_ZSvpL)Wn=J1ivI8OHcfW=mp+l%vt$^FF$AU z`NsUknpuSy%*|NnpXe~aA084yO51e03+K=8%*<2;1@&}y!*-mVYia^vU2Sd9x^SNFb;lr2mix^gQ<2Zg@dk~OZ6>Qdv=6E|=Y1T_H+k-QmMLMWlt+ppJ1}>KKGjuKeSLlLv9W-p&e7!QVwe8s!cQH+e^3!42D|S3Pu#p29wEH0*V9uV9bO0` zjKeZ70uvaD8ZRQ9a<gNNp|U1}_LARms_h*|=_o1Uf*(eTclJu5TJ5?~Soyx@l*#XmbcOJ;yg18>pk$Ruao z@e>`AkI*$Fe#!Pr7ccTBw|MZ#JZ9nAX(vr+!y8qqvyF{ES62gdcxVVsDwH}3_V+K? zv!|`K70Dy>|7#NVd zOaA7Hyrb9J+X)uWJ6zzdyt23;SkyCZk`@Cgcs1!Ak8-3bDhdw@lJ)Pd!wq4LzOz#b zABP`}+DhA(t1Ta|vV6A6`qAswPv5cVI~OQGx6j+Pi>?mA_#s3Or}*7HEp1L`-WVB4 zjc^0I7# z0W5KkE%%=&4?FS~WLTr6yY9zHjN5;|F79Z7@~7+g*cgA0GK~(Je|oVc;D40ICCY*1 xK9*?ZFCN3AJn>KAe}E*9y_`FEIe)DB-@N%x;a~hU|A^m}oW&bivL^ol{0%&_UJL*L literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/ABL.bmp b/plugins/channelrx/demodadsb/airlinelogos/ABL.bmp new file mode 100644 index 0000000000000000000000000000000000000000..f3beca146496be1180d1bde06a704dfce667d0ef GIT binary patch literal 6856 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 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/ABP.bmp b/plugins/channelrx/demodadsb/airlinelogos/ABP.bmp new file mode 100644 index 0000000000000000000000000000000000000000..92820110fb30829d0b94bfad35b28e017f10c26b GIT binary patch literal 5176 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 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/ABW.bmp b/plugins/channelrx/demodadsb/airlinelogos/ABW.bmp new file mode 100644 index 0000000000000000000000000000000000000000..e6e9bd7701c05af6af4c1536fc40f991a2f023a9 GIT binary patch literal 5176 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 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/ACA.bmp b/plugins/channelrx/demodadsb/airlinelogos/ACA.bmp new file mode 100644 index 0000000000000000000000000000000000000000..fa12f6507161f002140dda21975a9a577aaa36bf GIT binary patch literal 5176 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 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/ACI.bmp b/plugins/channelrx/demodadsb/airlinelogos/ACI.bmp new file mode 100644 index 0000000000000000000000000000000000000000..3b720de0c7d6139e24ebcabe6f9413c0cbab9060 GIT binary patch literal 5176 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 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/ACV.bmp b/plugins/channelrx/demodadsb/airlinelogos/ACV.bmp new file mode 100644 index 0000000000000000000000000000000000000000..78ad1c756ff5392f1a36976ee5959a4e45091caf GIT binary patch literal 5176 zcmc&&drVVj6z`V(v6w7-5oJF9+Y*;-$^O_D7x&lpmx=qwWPfZ#r&+QQopu%<2oqrx zsW7pMR%j=W4g|qkY)k8CfwF>9i=%Zss+A&-+ZOJlkK5Zzdmr5?U1Yi^6`Db>KbD(& zC?_XJBoYdREiEk^$62jbuh*ND*4fq7+uJ)dJPgwiNoqA3x7$53KOG+*SF6?GaQNoU zoA8xkm@7?96h%4i-UXiI@{W#?(!n^WPw0{B*~Q_Pp(Qaev{Fdot?c% zA@CuBAV36QJv}`?3WX2G#ta5SQDLD%F3&x7j35ZW-)S=arc~`Et1uUtq zuAZKnx^VtHSQGfQI$d5~-q6sH(P(UFXjmj@1=CdG2NeOl#bSAq9^GcMsOJT`o5@fw3woDm(~MQ&R(Gf@lI}tyT-3A08f7DwR^Hl;e4b zg8I6;Cka|UJ(c+BD3z6!alIUCnkI&ID&=_z+hJ&!5n3zB@ z3<3vWLyiPGj5(fVXg+|%h$%Yk<3VWH8%NzV$U@!G;3V&V$f9Gh+51sqjKy8-tdpG` zWoJj&nfZ?1V}XJ6a&&;_*{9fNx%lTod~k{bF%SQU*&FHJGgMbmxLp*w_H9tP-CwnZ zIQJe=y_MLt>zj*vtfx1SWt*^58!^dxRPq*fY6Dib5eG`?I_%nRlIP+i8MIh>?>U{< zHJbigx9koFgm=4M4`~ndW$AeRwtyrPFWX2+GO?1inD`B>%&>(KH| zc*Wbe^j%!`5mCR*ui72d2}7NQWS^88zDgql445X2fhALfe~E3F2v7Pr{66b*a0>aQ zJYn%fNBplVQJW&tTR|D~!`knn4co)=PyOdVNZ{!^OTli50#;iKCa~SU4Tt}%RNCI& zo|IxZOqOP1=ibMwJ|QlB?r+=?(ELD}Plo$t6qtTg8+G@@rfm#393lcDi(?XnW@T-; z{$J+qP{8)?&u(a`iN_aoQZ`*07_DipSZYKB9TBvfSiYT7LsDf%Qfx@ z27OTknFju;$w^oO_XV#HnRPN}Hsg?4me4r0pHh!MsUHM3Tv1wETfw)FYi#)?tlAS= zOy}a&Tm9_^pXolcc+aQJR}25ra_30?^gGyXMIsSAYTEsw;@42f_KzsfVUQmD0L&~7 z|NJWIbudYg_RDmhz^6O-SWv984bp}mt_+g(7!*!6#(V5cNd^YyfC9eCco%P7{*S0M;|EQoT?78uk!?2z8$am+FADvdGoZy`V|1JsTU|4$Sl_5sM>*+ zq&av*7N?!rC%g#d0VSj`io@MY+}5*QK&pwz#k#hV#z1EX)SJwJ{&OQ9&;>5`nagifbMn;-a|C)l_EY%-m2t=F9sdH z&g0(pqXKD6%n0LV9k(fUE{6|6HK@PjX+1`%e*Ma5TnJkPE?C%Z#gnni{&lnCd>|Yd`32*ljO=-=mb1Pyv{5V?pmS!I^ydUY`iwvhD;|G=)v!0qb z`8;}dwWH=UuPU9qkwfk9C`r*38Fw5 zdEY2c=qK%Hc((?wHqk^C^15+I#>KE#jtNSDEHM8WMrjhp+WUL=Agf}E80o$;^Uum-J{Bq=6nlY zO#I=x4Ov-?W26uX_kUOYw-K~YWW11N#0Bo*Zp4d;KQM>CCJ}s?G2IO4nmpG}`ft|+ lMmxgRKF(uI?CR71p-M(gim;gYr?@`#S4~RS%&YJR@E_|+!yEtr literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/ADY.bmp b/plugins/channelrx/demodadsb/airlinelogos/ADY.bmp new file mode 100644 index 0000000000000000000000000000000000000000..8d0f7c894012f77075c131b4894270f93c587bc6 GIT binary patch literal 5176 zcmeI0cW@MS6vt0gKmlo?s3;0bQ7l1-5JEx%gce#t8)`sMil7kbf}#=-l-?9+(%Vo* zuwZutVN`4*Fcv@s4Bqy;+q>M|;^()!T#gu>as1D)^Shnj@9lfv*WYfE(X~Z_$G(!d zH{#cupCDc1smGMG8 z^}qLhSN(VLPYZ}H`1?k18SFNR-_tn%d@R;k@yzl2csA(mYRheF+a?vm$IhGGr!cg; zxdfa43j23}ZvN4YzVsS$o9Yti@usjx7>bp+8l#-s#Jf}BxH zJdF{>rjDFZQ#^u!J>p=dCrHAF%hLy9N@Xdnx|~&C>DE9=uPKg#t%h*5Lmgo!%w6g! zJsK+A8z>!bm(!|Cttv?%J0P$LdlHIbX9G%zbh}&OQ9PjVzxVy3{|{~nes?VV&W<2^ zuyE2{wdB-l(za#hw@1UDzEy|?`J;U7zx*UTpqZLnQCj&-0KpIUg*x9Mx2_^RJ=pmE zi||*6!;iMrI2Pg57K+Do*1tX+hT-W!M!!Vmo6o{PP3>=_Rh6(F)kJgdIN!1N3l*>B z_gSaD4)1!^{N{*Yo7l%lDkm+T;y-;Na{g@8r&~VF^8Ow@{%Lsi>_ERnHLaRNp2qjk zVFo$3l|~!^ocE*vlrKgBJb6648$ercUXD&g#Qejug_Hc3>E}7!rzT6C&mcuq@jPF5@7aN=-oG*;@t;rAk@?!)_ z!Ee#r6z$>i(zC-2hhbC)EvdY;VZO`%`A3CIruq>N1zo_|BYjzS%EEt&ibYzGMBg75 z?C9#2U$=0^ZwP^l=b{wk!#7B%{}=Nzi>8+|A4f*Nt*k(4+Q8<(ZeXut~WhGaTnqKS0N=FKBiT;)) z!k>W8;+q9yTHGj+p&z~#As}SfGb7jae|Q^>C>y!}d~Z((!&+7pfOE&XfX|KaW!1C& zr|_uNyk2gefBQMIcU|z!twHW5z7#>>TJV&gHe;3O|M@dfvW*Ya8=X%_I8yKK4jtGO zWWBvT7`5I1{G)K2>T+t;BLDNp_;8iE&^J*v1H#lPIN%G(Ow)C*J>H!0PjW znp#cF!e-ZdKiC&S>ertlv;Yn0sK$Sa5l)V4=LQnX*npKK`p99p!hcbIRV1bW&(58W zbgU~=+r*6CgL3rULhM5s{(}W2mj5?43Xwm~NBcDubEH#U1)e9n>yhv!%epjwyeL{$ z{%9Zm7ly2nnHtVBv_@sR`Cl>9&lK!bR}2V(F3>JS$M@8kWMph&Z`a(}ql@wn&)PWw zh7lU4^w%jaD2H~2lFE8#4t4n-Yp1oSARXE*LPHf#?rXr@vVz38fx<-@7UduRGit~T zRi{d~EjRD?c*!|@bi^a6T3R(RU@6p9&-ihk3nKltae)~w6i4o;xp+QGV<(lx6IXFo zJ-)0}O%W#USz}Vz;Iv7Q5H~bIm>1^1>6G@K3}-BBZdw7`e^F9Q|`Kw8oUw5AU-y4Js3|JcMLb#x<- zX|TK;)9rF@ib^b*i#u1Dq-9uZk>Q?=l?!J@ zTOz)5mB=cgp&(-~D$x2qs7&gkFP{VfwDXo0bbF!HQ3O5_aRB>2q%!{;1_VhAn4r=Brr)BP zMrGTx}Uj-De(;dc27R}TA>jb8A7}LEff!uUPGe#4sH(a-w roX)WX|4ZcizY?$duXwsQEWLmK^Lg%JN^{0Hz)SIEej literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AEA.bmp b/plugins/channelrx/demodadsb/airlinelogos/AEA.bmp new file mode 100644 index 0000000000000000000000000000000000000000..d8d848b22a074129b6482c6f737c6a01bb91d531 GIT binary patch literal 5176 zcmd5=dr(y875@OSOf*IyQDS1$W?I`M%}ml(t&XNi#v0qECezq9O*2U|nb?@bh!1qx zMP32|mMDr4g0|p`M1!_8^~GcF-CcHpeF4k+xeM$93;TY*?C;rOu>=U<;yI?>RF;abs zUKo`)XMmsMwvO2+dO=f{wXEtRQh)eKyS_Ul!)>3iPxQO2W1$t7O>Z|0IL%swqQj_m z24l+WwlZWkJxdk{_(6bOhf%|P4C>I9eZ1S)C-nP$KCc_+_+`1=_AwR=f_ zbrwr!(W(?hFY*%@w=-J_M0Mu1&=GiW8r4muuR?|-ccp#2m)#nyE97%xq{mnLJi){Z z1e7J4_=z#9vwt=ZE9vCeh9gfyYptxTCLyM^{4Xq*$7O9e`iw9&R&+2%lpakdMXSy; zTVrjNg5(El_eQABz21A3OYvf?x@MSK+LWfx~n0T=FPENdD_9*oEu7+nV+#Zpt=uuu zi!>BxJmhs6!4AjDi#8xsA(ZAtKvr|<@35|+a^X&j!+^pa1pQU%9=k!9ya4RdV?Pz9 zL{o{RE^Q%c`1|7kkFwX0_d}n@$?C-3m7hJ&ga%B*i-hf=)AU_DMoH9;|CyJsCmLVBqyX>XV0cTQ);o^*F(vZ6p5suRpMeA;Z7q}@e`~?_b zdtvHAw@q*86ZT$D38B4>IQRow@)K*o0?ZH(?*+pu%4twrwaQuW#}mD(B6Oz9JS0ks zrnwQ0U~)AaUV$^ej(oACQGM<*t4;+V zG$68^W2v|6-H9;XR?7r7(g%|S{A z{Jw^q<#)tCP@NXU`8Io0OWBsH9YiND8qtGc?Ye^tJr3hQbrzBzWvgZ{ zQ`aP!u|)CdbI1hX$80kr!rMN76H-wEg~{_!c%T*v2~t;*^8-T8i z8|H^LZRh>~8ndQ;2L9HwlLeK<4;7KXd~Rgbu5g{a9E(%YgjS_AlNR9EcPjj3ymlzK8IDcuCH3 zkHb72&p_=VCWg`cxnX8CGxPbq&d$ppqRdcMaUd0m!o!cQkfz*4F+e^gVSjCWke zvBH%5jeXR3`+o(zx#-hQg9iBz(XwODT6HbmmAl~cMzkKE*I^p;I3}Qvv6rH_5oi!( zsJ?hAQSY;lF?Bn18G33E7r>7w7*U)Htq<^X!2%4bvu}7DlYNNYMct~)SR_b_8gIWM z&Rh(}iJls4nbcyi05enn>OV!aBfYP`k4$+Uo@DFakfhLK)4MHNzt`omXobo1QI+ju z9q@mB))KH-hf)7~5Ury07{C)G&39QwlqDOH^E59KMhS)Rad^)a4l`5iVMh4++$S(Kk$~T?M4d}u8m#Ip zldIFOw)1bmE-+-{(Vt)7clHyt~>T@Hs6butLD^4crW1reual zp9d43!>mO__}q50M#{e7AYLqkQp=E>EeebX%yyU&Z{9?Jp#J+jj*x~fiw?!eGT7*G zG0D!n|BSX&Kx5Q-`oKI?;1DSuhQ)>03O0za8SjNU`B}Dbh|*$NC$o%NX&DLxxKNoo zE4H(XCXJNlJs>^yGpIWKd^~$xmb#3^2qgq00{GfC^zF%hHiPoJ_{rdhjg`eOKx2eJ zOX*}=Vuej~-Iy!^`_L&iOm7f|J_>Px?tlbit0T*T;jgLWH%%okDGE2D3b2d%_OH-5 zgelA%!LEevUXP>o{9DT6O-&~^H=q2qvT$R6Rc2`SyMAEsSgjnwQ;PW~)f+J(9%Xi$pi;I)^p@CL<8m|iQ zHlTJ~eAldLuxOi=Cx3;)E6G{WbZRqGQTLJV%6N<@sAu?p35fBLWH0kNZ)==)5zn_3 zeG5N0b@DU9)WradY-HXjk|KebPI_PhL%!eF^A(5UM%~x}hlgW}u@qXs9*pRP-&X3q zLw^fDswFP_cn@ASrN>rFG8ah>J?Yon literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AEE.bmp b/plugins/channelrx/demodadsb/airlinelogos/AEE.bmp new file mode 100644 index 0000000000000000000000000000000000000000..ea5bc645521932887a6a615ebccfa32d7b19b949 GIT binary patch literal 6856 zcmeHLdsvRy7XP^(GwzqeaWEXpaVc`l8I0zVd(%9D}v%L21Z3R-cc;oTio6TgOir<5He|Ka??r5}jbXOoEy_}JsnTE^9 z486%seO(O84Tjc!QTxSEC=o|hDhbN8=bM)*ow_|Kh!O=dF@@3#u2MFnE5{P|Pt z-{emF*NBF@rM6Gi{W^}019b`BdvH{U+U2yGGIzCrYyxg9A%>#$&G2mGre@XPiMNbp|` zz0U!&{(w<0K)*AMF2GFc1uqFW`7>bH12E_+pBJn3!L17?@rHale@F+h zKDQq*ryC90qthO6oiYMHJKI2)3g?QoL9kO5TN%N=uSHkU@;Rvv;%zf zCJ7tfzpEs_sKB5*FqiZeUdd@@Tg}H0sQLJ@+4uKVZ(%#47tWFLr}wQ0YiEO~g-*X4vjvf}jPnar691gs-xODcNN`{BuOQFTo*-gZp%K%kOI?mL#w!#ujf(s6w$H~jIVwXVR; zQjLD7D1V6qA?tN-VZU=6QiFY($z<8JH8m)^e-C*XhmlOSZ8Fow zib<+iGesTtlt<=-6??Vb@Hf>WuJJ=r-bFmQcT4b;wMrN0Ql2=D>yJoJM_fry#pUz^ z$cWgE6MI9D9N>lH#9J-l`O%#lupQo&Y-o!+xo0V#<3x@-P5c7YZ!7V%_#Wj-7s7G} zIDeyp0J9m`VEi4n*%{ykVPW0u2{0iHh1eM??AmBLUF4-90+zh9Kp}2K|X?8 zY=(aZQ^GFG&?bJ|Y_2VIFy8%5w8WjGy`8X+aA8QC`xD`p?JK-;0rQEUY({j3`!scd z&0Q-O5|0>)_y?HJgiNMX-|1OiUt~1P=w6NMfA~sk;%FU({j7uc@%-__dobtnGY{sA zM1MEIS^GD8;PSB)6y%=4ZWlWg<^PKEvL|@)s08KDo>C5yjD~yMI+qCx;%G<8Ezen$ z%fv0=F4l4#R0loin_2%haGtD!Ux}mgGmjvj>TX?aEe>tl03+IOKdJ{xscuSlsiC`7 zRlE^(^jvC;sDqZoS5d@`*D0o#iQ^s+S4#WOr^X6@yG$Mij~N<*KMw@^iuF>;U%Syg ziE|0dPw??#dz28tf5Jt5&^>+hzNXr}`;+=4-Dgvxge~QxDB?U|zK#UodxaePaGOml6%`Q5ULq7Bzvt8&|G1_bJlL@2pdKuXIM51rIdfhjWWLlzBB`jUC}}2E3`C zahs|RAN_C1uTHpjI-TnM6WqR#jg50>i2Atvp986xT~bMx~h`;8$+t&V~N|o7rv6#&ZWjt-!@+8X8k_869_9`VXe*t{HH*kKRJgI z;H~>LmQru#Ft#_J-~bx z;dLy6=Ify9&1=P4(iShcYN=Cwn+oQ5_ERzW+)MjQy0Zpu=VUAPO81s#IoC3`Dse77 zpHA3AGRIR*42GOcx0Y!inmIN^O?j*_!&(Vze%co zlXE~zI+}iKR5u%Z&~#5r@5*;=x-K~T56F`6Bh4&_pQX`MZav3SDF)5f|A0>AGu;2X zP5Tm-gWAJs;!td{)W){OCh*nQq}tnuehd7GdKe?Yy~^iWpBv|WQ-5#{6cB$V2d<^x e9D2ktGq7{H8TI%(=>IP6{MQ_4D(ipk9rztaZQ;QH literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AEG.bmp b/plugins/channelrx/demodadsb/airlinelogos/AEG.bmp new file mode 100644 index 0000000000000000000000000000000000000000..f64140d3e5c1fc595d3d094479b28b16a4d37d0b GIT binary patch literal 6856 zcmd^ENpD+K6#n=RtXQ#N0i9HeR0I@+iV%|u0))zrp;eJULP)S;hY)Jh7L~R@$4s5m z%rniLIG*jqb`oc5;>3yVxK8TX@f^;%&U5U!PgJGx<;vLN8~f&Dfb z4r9^207G9tS_s<_jS-=x8JO>W1^J1c(4Kz{md=y#J4O(X1Q4Suv^Wi?sRqM$jzV#A z57fWC1iS9WV}t9MZb0~EXGIlZIbHC%{oVk)Ry_u<9zs9iIa+xPL8m#dPJ-gzuDc1% zxdTw1-iL+3ioCMhDZUHsm2+oH*$s46RKxwiwdwPEXO+oIME?;gXZi3`0S=l*IBQ>U4BO+QIS7eDdruNOL^agaB*AYB2OwQN7|H^z&_hi zQG=eUI`}=_occ-1E0WE5s$+^1yD?h*Et1JZdVIU!RcN2mGjg1BJ3YR%G#h9i*GHNvyFB*sm|>l`z);yc&NKAH=z;>|eq z*3^r7%4-cPROoML#;{TYW4}UR$m5d+69&3^U{>oOZ*C>qi&<-qs5BVW=(5Jv?|rl1 z{GR(8n$U6kZqD~6>Bqxv*4NLs&9~p zMRLp0oxA7%cN69=0A zC*uOs%4*{9b%KND)FB^Y-l-_sjgg9Dln;Y>ZHGf4;WOMT@UyJ9Cp~j$Ny79fR#tsJ zkw`-QR~y_EkK9j~C}uPDb74AZGzs70{w_kkE6GckT1HZsO8Jy?ZXfkCoEyTSjlJN1 zfhp%fj{WvcVxM~@bJf?x?RQ|Z`9~xZYqddo4( zAaIbd=9rgLOv`9b5)RT_7N(SIIrh0$vCS^(ogX?Mq%lp!{>C^N?3H0cZ%D04?=l|C z&imZ+j8p!R_W7uHV{gBx`*uqz|L3z4_Bmjno|FC6(*0}Jy8LW|Ju)<2ErW`3D)X~^ zc6fYFc}3JHtKwpo9NXcTHuWpB##x7bOUjuXU)(P^xAr?#ll%*2 z=r6oQTz@ZSd(M!*M#vvmM4YmJ_SH3{xzCzzb{^u~VJtrk^_drQ^8NtvAc-?cHrQ8# zR9~d{PLPi=AK-fLb}gp!sN~bk2bLTQ)JxmpB0d%Jt??$G+aoxRXNmX(+2QxdvTW<& zf)h(lr})leJSW+d_EP9B$+Ayz-Q+&Xu?e4Id!AX1=rXBUW4ZBD^Q(&0S;rOkQILLKgN{nw3+x`>a6dE=v5h8 z?(@=TeUxLk9`HFT^CbiE@@2mp6ZPK-|C{bOF8nVRCLOwhu1PEyD(UR>i?y@9f!k?3 zx3dp!W$%n5=htTPS?*c6$I3dBrrO>^Xa3gl$rLuR5UkW=>Mpz~xE7z04i}5O4uFu0rR&BL9w%S^GDWKG1A{0SHz)I@_kcwgji715% zMuGt$1Og!v5?Hr#94g2afA5noXGmgMu8l|K; zic5mRA~y7ERZk6YuEuHjM@8#(sH-Dm^hZav;?f`p5jbS<55j9HAFaBi$=O+gBXUJzTIPXEv<+qDAy;xwNM&*0_FUUE{G*vh>P{&o-Yp)ReM!v_-avsKbva_nIcyti3$UPsLLfXRzk8Z zE1uY)mc+138k_S%X=`h5@uOMB)za8lwpotwL~`0bAY9iVxKX1d*dT@^;uatC(A0s zYHn}^!V{UVDYVhCVX(?%#g&zl=ReZ4+B=Gy6^};``};Ks z2~?qw^YGyWqU`Oxos@JbfqOBQ`8(Pp={{9eBE&(hZcX4)xtw6s3PM!WS+%+a9B$uM z#l?|}iZVeS9v;jWr69Ag&!M6Iq{L9@W#vMw9w$$;|Aj>vWU@1EjzUpEBrY*Bc+<;s z*ZBB7u!e*zkBGA5mb9b)6gK>YO-*z-C8E|ceK;# zKGz@fht)JRnE&%ndO#a>0R9~vll-O9;%_&;O7gY^83OSAZJ$WQLy*xYBih$^%RBI1 zk*?K2-KOCWegOf8e0?32%7(jlM+XM_ghHoc1-a?8%H?HSO&9w6 zIU&~0&enqm^&!O|(I7}zBO1*c!h@H(x|%+C@Yka2gqoiJ`1p9}r4x2`YaAWd+wNX% zV!Qyz1GJZy4GN9rpO{EBHCfx>DMkNCfb%_*!Wjz5@M zTW`6$e{Z*U?LNm1JBdq7Ocw02TCx4R4^mU<*ojl+>G>mbl&Z!QUU)==cVc3Qo12;0 zwnY^cc_qX;-*w)>BpE)c}Q2MC1&r=L2UHGg^p$IoN+?X}L_L zYDBF5{y*{gOjxq1{3kU>%^Mr#(Ch1^U0q5n;9U5Rj1Ixh+t_^Gqfuiqb;`5j4@_*V zKl|~=ub~iP;edY><7`F-!^mKML<9*n)z`~hTugzUg~cbh`e$je%)$Q4-~62X{G3Rn zJ?R+?bQTD6;V;bP!sdsBcwhmaB+rgNn|;Ah{|z>qjDw41ojd9I1FSk!9aVc1)=DP3 zzzG7of#bi!9P-}=>xq^BHGlZroSjYJaA|3|i3NO;JPZC%OB@~6Tkl%g+1ZAJ<8Ua1 z9gEG(-iIR^XKHP$gUu%rmK;Au_~-ez*!$G8|Ncu#1yKCYoUzA+@ucA__``X=+2}1= z_^GK_ELMPl{u@?S%aQvD&LKG1-9Z0!R~J*1e?vnJ9N-6jHh_B$+RMtWpoOEdGG9;c zbw9uTI4EQ&lZo{|Mv-Bc@yWV>zKB3aGk-F@ZRAcejU!dqK&(NIi~rxM+&S*@#1HYaNC13wndX m!Kzfv6pC9`789!<9Ms6=rMA0Q`S{q~e{dgbdWsDH0sIqCN;Ap; literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AEI.bmp b/plugins/channelrx/demodadsb/airlinelogos/AEI.bmp new file mode 100644 index 0000000000000000000000000000000000000000..04d3b6c47103da224f36f9c339a66cdcccce581b GIT binary patch literal 5176 zcmd^DX;9Nw5Ql)+kyD8y3OcnPJjR1d5GvNGmU@6QRq0f;7NJ%LN3ejvh##onQNXH% zajHe+640WeXdJYbkPtKy0=W}HNFXGHKoUqoLI^p!@VDs)tOF5e==4qgJNx$SKW~4# z`}S?Jb$1BbZej!jT?NnA@QjP>?Yw~6*`Z)^&k=bh1VAkR?=ds@$HvCGy1H~aokpV> z8XA(xWO}_`tJSJhDz#dzR4BB=T9e7d=ksY)Dku!}_bU_%v)K%*FjdIqB9TZcl}aRH zBC*kEG!6|8f)1O_Zf|dg7e8E#W(NPTMw6ePPi<=}Eh){*&AWQ#YGq|*VPRoaWo21u zS6ymyRVJO(!68esVsdE{0fEq*s-IK*nk#{ z0N4EVaCb@KTf4o5yPAQTFq$ZjVM;CLe=B zIjmi?cFmf#uSuk=vuBt3EM+oi9_~&7{;N|`jxSg+4_E&*Dr#4F_-2(#=Hr9T%grK@ zaP}xvU|^t&v-9@tUv`T`bOxpB4m&oEjmImk+u6)a4?hI_(4j+qetsBC!ICB35xaI0 z@OV3W)U�v9X62do6|_TTS`l$Pp9@MWwcdhkp?g5|W;t4w_PFZ)RquhsXT7x;mg2 z&YwS*eJ&s%Am`^CuSH(lwrzd!#|u!yH#Fp5x$5TX`r!TpnBFQXs{Xy&(a{l$eJbkd zdV(cKAE2{X!`8iQW~PT9*`}!IR^rLTn3x!QdlZ-(85s#4X>DyqIXK3~#&S4pL`^6V z%$YMMEiLu#ox6Y`Hz(KE*EcFEir3x_ND>nhAO$=lU?YCSCM$)`FFHD!!C+V=Q)Hk)N=Qs>A`+*fKV~$N$>jLs$HAMR zpOYhqjbmQCD1bs}a|<{#_@`q1`{+O}2n0f@w68}jA-7QE3I%){gQ3|MMGf9a`gl1Z z;|x!$wWSgKZ{P>C&^1VUrS&*G|L?;kmFi<+7;)b-{R3V>Ef9%DY;f^x#}5@mGG11s zjl`D?cmlEMr4^(^qEA1~gGLxq;Pb8I+S-2W($tw*jUUpU%Wbc^Q(anK`DcBDQVHk$ zpCqT#HJF0#{Re2PRuexBd!3ffQ>&+aBhG64aJkSK%$Al`u|zUCq(tIi;zz|4vbi%Z Ifqwx10$c*)tN;K2 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AERORESCUE.bmp b/plugins/channelrx/demodadsb/airlinelogos/AERORESCUE.bmp new file mode 100644 index 0000000000000000000000000000000000000000..768244c9191c5c7d6dab1709f3206608f667a330 GIT binary patch literal 5176 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 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AFG.bmp b/plugins/channelrx/demodadsb/airlinelogos/AFG.bmp new file mode 100644 index 0000000000000000000000000000000000000000..084744741e6ea33b57e1b56bd4fdc45b1c467ce4 GIT binary patch literal 5176 zcmds*XHeDI6~OOq*2!!#JL_bUnau~89X~~PqK=8E8%MGC-YfRrdy5p6CIS}R#RwvT zD+Z;BVgZeUf}%l1M5Gt#u<)L|_x`Wk{QmDIj33Die%U*|zxSSd?zyL*a~Uyt(C>wF zxbpoIzuEkB&}ZTszCwJ?B9Z^~-~Wc}+^|}$wY9Zov)OL9I~=~)7I7ooMl5p z1EiR+1gEjFQDGVkhU)5SE`kWeO(s)OQPErHfHG*{bBm%6T61%=#bSYMadB~OZZ3!{ z%gf8t($YW!LGbI$Kn!nh@9WpEE966m4kafi`}p|8$HxPKQNCBMT$wg)+MYdomM>qv zZQHi8va;>lx5F`8Sy@@TckfP3P2Ib9ucDBUkZ|ze!F%`a9X@;*2y9KCK0Q1(Qe}@87>4ejYq{uyNx?bP8GK z;N<7$4;nP6u(0s->Cw6J#VTIRE7&(6rm=&byZgJUju@#4k9hYzPrnSzNB z2`wltvH7rJ!}9X-SR%Q*yL&-F!TR;L5X#E93gUvoAwF;Su68aNtrvuF*c8iiULQ467IlVun0atWQdE4L*4KY5D>t(qM`y-ZrZd-c_03~Y}qoR zZ1w8Z+=#VM&508yFgW-}j~;#Y>>0d4ih<&w9~~XtS^1S2VJI^*6Gkx?RJLy2iW4F^ z#_y0HT_7zML-8X=j@-3t7dpb(uqQ`SQc?l~191nGg`Br<--bEV!4ZTH3kw5B*(W$S zm~g}M!3T)zUb=MY#*G`}#*G7+d!Iginx3An><=llxpe7L{GTmMGGoS!=g*%XKYkot zpu4eS#}b$X5rIr(O`0@`$R$~HR(|3WCJ5kl>(;GWwW_3~geCF=VZwl$QKLq2y;|}` zDH}FyAonoG&xt^|Bx<&7*@B6bs{@}ue?CTrmGkG%pE`94WLV@2_oy53Fd$3P1m;38 zxfglk~k$zcFCQV zmSr|B48?YRHfwge!iF|M%?K6VC+ajB_wi{tPmz!OxZJ5%6S3@G%{U zgQP$%AbsNV96^038ZSeBxPm@$4jt}7kDSFdaIULYuOd0>hQo^&FJeXA{uDI5c2y)8 zf<)l~QR5@ZeME(?sPqwyKBCA=wEpxvY1hetg*#C{nBWnF6C7YebgXu%M#Lms!UqhI zfkDHb+)4#v0vgedz(@ttxPwZW5F~4291u9d7x{@G2&%h?b`Ij?1R!STM&Lv{WFdvL z40uD`=p7EB0Hm_A5=FCwPfihciUHh~P=cT?Kf+tp%NAOih}!+oYb)e=$Q~Q=7Cp68@I&Eo>J*ml0pc$ghkigbe%A zc1Fm^-&#Y34F6TJhj3)?$CVw@=JbPKhz114H~jp(@whMsi_)W_(oe|L?`7m~3Oz-s zzj)^_N&-ZYzo_>WGU_Xn*=W`kV8i9`PZitBSMhE986X4Q;Cn0qf~k=C0%1$xgQnm> zK;x?p@>Tg?VS>yAYJ5M%aQgqdGv%Jb9PJ|0=GenT>yM(oDn(|^s|gULM?_tqcz;aS zMR}00)jcvg5I|=ao~VMvIV>UoeIB)nC51OTI~yR{0YZpU*vJ&Loa6-#DrqU^WC{fb z6MV!bgH}~lfk{pQ6J0P!u2fT{h%Q%wF25tk|E-63=OJX$FjGy2J=5KEqo37WYAU;L zjq8znL{#~SYUIZSs#Avs+DutYG6gQ5&GEz+9E7w*k(2!xtM;jc7t>VC*?tDJ^yQ3i!tg8{6CMJ7a$s=zq7pvHfT0n-7Xzkdy}Io(Q)}(nd(OR zvP`@aR6y)hndi*D2?Cbz{jE&9(9-q$Rl$4!wHyQu&o7O6g+Jo#b@+?b6n!hqX!O z?KYeg`G-V_r@$TZJw>56iui-2B+hxc9ue)dOCKvhN-r-j-Z=;iL0IRZhLAkG_$!Et ze|D92K;UJL{HhOSNn48g=z^J3|4;;_PKnCn4@{a_wp8Q5q|1jM|9Vst=5|SwVKr1( z@7oLx)+ literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AFL.bmp b/plugins/channelrx/demodadsb/airlinelogos/AFL.bmp new file mode 100644 index 0000000000000000000000000000000000000000..d0ff2cdfa526a8e52f5d3109cc8c5443a5bc8d15 GIT binary patch literal 5176 zcmd^DX;f547A|u#W+ul(4UUr#7j#^sCnx53OpFmh6jX3@zzrh_qDDl(K~zL>iy0$v zW0$R28$^PH#T68kokSXCGa`%7JH2nO-`3r89}n9gE;;jSj#H=mb=9p~->vV~t*ZNa z@ygG~p#Cxso-^RP7QT#V7gL^6@H>a}3=&WjrIraW zt;}pT59)Z@Fk^ZhO;Jw;Luw>}<2oIP3EXI+NT>jsPAww{0@oXcsIvl-i8i%A(qlM9 zL(OD*f!ZGuKZid~7&Hn#j5eEIM2vw3)?k@tYmDI80!&^C!012KFb~vW6m7OprdJH@ z?o?$ZHe)zU;boJ2c1}au&*2Yve+2T0+LPZQ&ZZ#UyDRpX*L9YOC0+(EkJG^EdCuARWuhA^+qcj={CurKl?oP`5s+d66 zepq+!(rISm{nMvOIzMFLdH2ybB7ADnLlf7%m+Cb(#dA#RMw=w}(ZZJ6ss#U7w^4VJ zgJFbHA<7Q;Bw_W)YiGZvUs@fCT*h)$72-#UYSzVapn8O?M3Z3lR@BX3! zzp=(%^h8~EuVrqYgcC+q<1w!!&K1Qtp+|K^RjDD7_9%b9y`Z&@-(1CSsw54%k`o?h z7NVPx--3P(_fUibO7^r-iMnA6RwVx`!XD)Y%+)IUpjX=2$XPQo#sziN7UCq4={*); zA5>)b8)E3(;p_wapZuruTPg)DHKL{(ert86mtB-2;uS`Lf{7+8k^=!VZ{Grvz!-_e zQWUlrMwNuGgC@irMUqN!S98I4xq-{_&gMt|D0XwkJ{*g^{f5YY`&0f92-X;ff!2a> z63^K=BRBYq%VA53k1peGnH1}Sa(2$9D6qW?Y~MKLY1M{G=}GrVB$91sK>L{@W9Va~t0^n;n3Y}>BI*KmU4R-!l; z)L0M+@;eFs(M!+;|C#ma2Wt{Tnu}vVSaNbrgd?g-3aZOKp0IjUqWhnIy%Doq7p>e{~uS}JpPOpSL#c|mh-9A9zy;8HMX&nlGHG`C(H@ z(1i5hul#)JnRe0-NAo_K(y()f z!7zQ=wy9ChsPMZLARNlys;QNWR8l@k)AEOnzos0_511An$XV`Uu^l6RZ#3_nw_4}S zls4RjO*AMU8@T_954qH59?JHc9=in9WF2Nffq%pzRC;QI)dmDxX?TD9#|N;&dzWL* zIiXzt8RCw{q<_8{y<%8ro%MvX+=|`?o0;qPkzOHy_=i~N=H0NO)o?-}l&tFy^6I3Z zvx`t(z-+4yq?joiMno({ttBa}@bZ!6FzVJ>FRKnzAZLOoP^%=e-rq<_3SmDA+8*34 zhzcunop^=~hy|!{&s;dk**r)oXixK=cy2M` z<(~!wf+8wnzKym=MPbecBi7qg-gWQR#lTOZ98kdl`=0yd-MkV^Cx_XBG8@-MOe^VW zQ%QTl9Z-bTX+?WybJqSj)oXmLk88lnxKqc(G?R7qceDE+^o$fnxPHQ& zO(pvCX;`<1*TTJ0Hhqv2G(R_RZibg_H75i&X!SDb1>afRuP0<}o1DFM64z&P=4QLp zP2+^El?>6}61`U!Ca7^|8&^YMZ}jPRTLHrk_uN25V{{ z{s%+6J}uy>R*K}39<`uT`k+DC)g)`L`Rx`**3-l|$r}H!597g1AQm7omG(Z;%cZzX zN^3Pho3@w~oy`;l*J1ztKX}ON)&jyfW)QYF%OCMnk00nXayY8tHAd0f0bQ?o{KI0x zLBM=yQr*Xwb+n1wd7{qyDoKw_*a;`z>(75^Jd*^WR)~5Y)CxNq{~!5-N0=*##NoXQ H{sH_C=&~|s literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AFR.bmp b/plugins/channelrx/demodadsb/airlinelogos/AFR.bmp new file mode 100644 index 0000000000000000000000000000000000000000..073351d4a76ca5862223cb316310acd6794b9023 GIT binary patch literal 5176 zcmeHJc~DeG8gI{yaw;C+fhY(nqESjgh-eU%CRGcf0SGqYd6H#36Sa{sVuYpdL@e*L5>m+IHGZ$$r^Q>fkk{dLvXqzAI!7XLtNZ?$@3oNu)JA2cDE{rdn@7(a)@ zf$zV6V?=3{$UOR1Gq+IS_HFd-)f>0l2g11#wEM*P?wZSW5mXpVu4L!_JWZDcZ`7+5%3qu8qn z4#h|}s$q{NNz)u7p}{i=#SrNBN`P6LMl5fTG0|Z1Z$0)GfH}s`=kq(;TC+0J+MhoI z5?IpEQq8rsw=SkP*4I6LP*<3lK?t}SjrvaR^~%y>4MpNiYN_VR(i`W~>Z_~RZLNiu z&bK^%j8%b0hon@<%W|*ZEh$iIG?+kZ9K;t8MCbFR zQ>?ZIcqw`XiryZvTH4a`Fx+LluLWvg-93>U^WhNG@XPH!sbtj@^C)juCfjHCCoeTe z;qzTOTAvnOIW-@lQ$K!VKtm^i=;j1ZHjDOj0e?V0o3eYc8CvJ=_~N&w9}>4OwnmSe z$|$8$CGF|!;U}%}@feP7rk_sP92w;{R;lcfgAt|b_};BvR_NlJbKty|%3fqZPyk)5%vO*Q^@gEmgGDZF}-FKX+Pu-ls(&g}oP>sj-G zSpPMX(C-cRlwzrf;E8!$S&vAn*D2|0?r2vpntI;`vBnH$y@x7K9)^<9=+(GN;p{^% zxm=j471CJWxuK4KD!zE~^ye}DW6^pqr=D&C0y?%UdbJhcF9ZBB^TvnT5BHm5PxHQ#NflO}Z>D9I92GG$_WuMXv~&h(7V1xp~FBgyplhc{-g-*$pg;gpW?G*OR41 zJcpspV^QY_#B;Iu_1F3?Knx!Oo7;uDxona?V=D5qmX1PIg&994L@u&Ick(aM_A&kd zjK5qVlSH_V`qal&#A%nx_^g7<%j{5?$1D&l&N{cm41!CPD`WzKEfThi(JmWhY9o!an zza;PHyld4t7n-UoM7+-MnWLiJZ7Xk{uPez*+y8~14T|xcrtTGE=X(8}e;!{vZm{3v zVcWc&#e@)c3fh6KLEctq)r28AN4|!oT;3bvW_LI~qL1K5c{ut*3bsVt%gd}Q&dxgd zed1~#QR}0xHmzJa4i%*zt1l_8Ey`u(UVl_yqt@%xdaXvM*5Q**&ljuw+@IQ^jtPT> z)~G8b2}*$C;Qi-tp-fb`j`WXf8>42~MS4x^Z2t|GT3R#pi_iQgo3}Jni25Y4KC=MQ zS|^LOj^?4xmP!5|H5G**S(Kfz#&PsISDO$gOb?hebWiXHLLMh_iCcu5b(phxu%kuj z49gt>UUlUqAg_dN(dkKr{LjIDD;zCY1-RBI`dmGn6dN#ebZO27pg`;ElSD0^b0}dW z%v;)?ANX`bn3LslJG8`Z&s z0~Aa*X_~k+-Kb*9EfXjR!Dd5HMqQc=8ekH4crb@f6TF#AENvOD=#In19WP*DmVggz zLM%+j`PP#fe2vBo9b^K#WTfc-ea=2I&BjIz?DdUQs4tXYT<~2bB9KXh3LoV9WSu~@BrWd1bBfCIB`m7vrI7X(a;^I u!H61jm<5AYi+}gnng()#EdUpX%z^t4+=1!r!SbDJ`2PQY{O|VuBlIsFqz#_{ literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AFW.bmp b/plugins/channelrx/demodadsb/airlinelogos/AFW.bmp new file mode 100644 index 0000000000000000000000000000000000000000..b6adb2b5019a0992ef2849327f0bf6f2aa854543 GIT binary patch literal 5176 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 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AHK.bmp b/plugins/channelrx/demodadsb/airlinelogos/AHK.bmp new file mode 100644 index 0000000000000000000000000000000000000000..c3e4c8d7cfe948ead1254f4901fc36ef2a8379bd GIT binary patch literal 5176 zcmeGg3wKRddIvG7M^UT@9*2+ z-e<2nJ|npYQs8wMlin^{!jtAwFMBdw$)YJlPYdnd$V3_q=AksG0>SO(h~3 z(bVWzAWG7RirI*wAV{Z9`WL+M62p6$n;-C+F37Y3 zR(RZ(7K!Fi;bU0d{$ryE`&0o9C3oFp?$JE))ZPAgY2&R7aoy z9al>gP!m>ovJ_E)S@fp};^|X>DO!Ah3en&+IoZpI3=4D&cW(t_k!g7et<0j)bbO$B!_eOVj*EB~zou%{L+seIA-xG(K zS--WH=p5fS2a|eQvfgkQn)$MYblC!CNdawY3EjKxFD-B`E27*UzTtA9AcxAC=v-Mw zs-1G-pT6QeM`6Bm(?_oFngj0_I7=70N*6er8bf}cyn2Zw_jgupTu9Uh8WC%C2(S>lUY{k=@&vP8?y59Cr8Wpx?6IEs65ptqcf^ z8%&Z`q2a2pdyKhfjOpGr?#x+l7i50*mt@&OYVsH|;dxW~t5krKR}@hQ8A^3d!V(&j zWJX9|v)z0CobQG9`l%_z&Fi5B+4h&ZTkkgp>_l+l>m(T8xyj42;>sd$WL~UuF^p6= zn~p&(b7s17CX*u)ZQ$tOUJlh9@FUdnexVy`fAtF2C)V;pTa(>}yFF_h_3O@r$A$6F zKX%0;!{tjj`KRDN_k^y0J`OEn^b~w^*{5xnd^S#@cQ~Fb(5RPV80y$X8f9q$kl}xp@ zcprrXd0;mpZ3qeYzFmG;-jqZ;oZA=9Vy+yPri`+`*dDqG=V@pbdd6C&r{ZSW@F5t{ zZ}}8AUEOi6J?w=qSV;;G?PWEQL31hF8SPKY%&Tn$ooX=FdkbI3xN zLQcCpdVsB0tckRSe4O}hp1ln+B@ZOhQ|J|VvuJA_4&P}A^=_+AiYIlMWbQOa-ZU~X zo`{bz-n;4NI3aZqIrLZ77QJ}mhCjZYW%^h;7?SF0eI1aYD>5%%#FTGx!2|= zq^04B#Q2dG8yTvv_rXb&Hq;8f_E&nLU8@iHwr%zf>S;by#W5c7#1Xa=GOb(1I33ce z_wdF!_O+j5Mc9de59?#zx7|A{9q*UwJ$Tu6S1=usVcX|EI17sB!g1D8UB$uqFSD$) zdYNO^c&9Ft8at?3qEhCFvpgfOl?@@{B*r1 zxxaPHAnWmCKGhs)5enzfZ%?;nji)B35dS!cKNE)@;}VKWnDg=<7E^Fg5A4xWUkmX`=T5K#|>HbRoq1ep!fsgT6}Pt_Ex|J0gTC_EJ~0lR14S|V21Kj-;rxw zD_4<@h~wlHS8^nOO|11ThsC;M?2a#80*}wa9|5?r1?!Im&YTX^o$@!{hMtt~HUv(d zhm}Uis9SL1Q6*|x$E*#dA@ZX1_;y*YtC)&@|s zB8Tgv8dRnjSD0WU;{HeT*E~HL%hNMhLA8-04AqS$rTW4#s81_b3o8;GR)|D~B{hBZ z4a)GD;5c4@Euu(a0VNg1fvOl`VONR;g{2sXP*hn=QPov9Kaszp{Bs|k<^OYE;h)YA H{sH_SP%2Qg literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AHO.bmp b/plugins/channelrx/demodadsb/airlinelogos/AHO.bmp new file mode 100644 index 0000000000000000000000000000000000000000..e75830a87f45a5905d91294873d59974f0ccc662 GIT binary patch literal 5176 zcmc(jX-rgC6vt_srb(++D+q3Y?1=0P4Er{0!zTMM!?4IU-~huW`yx1iqJk6!#08-! z*oxY^))*6Q{Lu7klQvCFKiX8=CT%onYUyuyZPO^CnHh9)=HY~i*!b}=fJ2KSD?X6WsyUKH!)~wENsVZbzo2Iy`AiW|lt*%tw zR#U9bO@-C-c9Ba1!`&?PK*2(T@UvyOyJc34SQhJ_74tM@#|1=qS~ph~?%&hgR;&7W z`b1xQ9oPnX+bRpvC&mUD;#H+cnwdOWlo=P`V3waE(Kb~cIiT%nttrfisV&KFuPHr! zax^W%YkR1>EH+@VT>|6%o%I0E5~Gq(%C~`Z=aYiXz-C;m+x?4H{t@XAW#kE+x!^(*_UN6w;uSaGh=Y z*?ti2VTG~4hZs>^l)Y2AowYEpE6ai4DeJU#`@)XfW)3ox66|m(R_dYE&0+@<2t_Lw%hwzV`ThO|cxW z9v$fI-`y}iw67#PzDZp`yH=$b>}yX9beWr(!Y|I88bciiv@HY+hKBpQQPafO(4OY1 zb7v+{?)Y#&jzdft8R*pyKk^%dpYz8=k?+LFLE;&<-QV4mn-s=#u%{KtjtunBiP2_A zd@r1x*0xm7PL4P1%tvc1nH(Qh#0TdjggXYuNd29zT{_p@Sb6c>>9h!+ z1Kmy0BD1DZsfPb*3RpM=f z7BGjgp}p||&M?HG5`tVi>dNE9jtrqzm}CE)b!B9V!JhV-5*eWcVe}wF@#|FJvLS%T z=WLES1Up;siZqxOB!nwrPViQXg@!IJ(jaKDN*KaMXy7Kod?w(TJQqkkKm6M{%x53!|M5KpJMye>!Ok@-ML)&m)@08U=za{ z)Oq{68V9s3dpqih>Zs#|3ynMB_29>JabUbxQ!Jwq>+3**z>{05OURMNMYuG#*MlE} zC$Uk?lFX@*Nd7bkir50hA30@dp^Z5D8t`M}WUq$uJQwq~$POI7iW`(733U{tMNvw4 zY0Y3&ciztXH8d8b*P-D3fK!Pg3NB!9%Tz!(YFA{@ZW9{^`Mk-yS{sYkvOE z`T6s+lkovtXQz%m{Pkx#e}DY=k0(za{POUtFYg{Z+)phm^>8M~w>P z(&E5Vw{CoX z^&&M7CDSrl!Sdo4Opf}5sLmZuWV2dFTUJx{wQ7nn3Rm;Dxgbyr`Pr_)=gESUw9KJX zAfZO$JHn#YYk23Y!2hh2l!=saeQmWQJVjzC$*)|QOgP{!B;-E~{{IxZ&G?spK`P_m z=R+7DVYs@zJjIKhq+-XNxhY)@720M^tENO2D~|TDdwCAR%s4;CXZ8E?J$wQD8@wxu AA^-pY literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AHY.bmp b/plugins/channelrx/demodadsb/airlinelogos/AHY.bmp new file mode 100644 index 0000000000000000000000000000000000000000..c88ba8eb8a7d02e08196c6d8417f6f346ce2434f GIT binary patch literal 5176 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 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AIE.bmp b/plugins/channelrx/demodadsb/airlinelogos/AIE.bmp new file mode 100644 index 0000000000000000000000000000000000000000..d13d99e4ab50475da15325d91636c298d257e1f1 GIT binary patch literal 5176 zcmdT{2~3nn6kfoZC`AbxL`4(|77_6%hg>2chj$gbf=4NbQZ))l5kcgTQe&w1fgGA@ zJx~;FwMvjff<(Xz5fo9W7MfN-v4Wfnuir5Ev#i8m(oJ!)|KwdW?|pA(-pty~ojO$1 z(M-|ngp=#>2t5=9zS{fUh%!> zRaHr+lhV@D+B;fmT59syWC*2=Ih|jS56i-$La?>9wJGOQE?&CW)YJsFw6yd@(g_%F zO9DKd7PGDFQJK8(j~%Or_noCAsgj_ zA8ywAu7v{~9i0OQ58xM<5Vva0Do9jSRhya`Apt#d5(fWinKs>yLH!aK}cF7yi70yng-q zb%fEao4;T_V%m3LKcu5ZjpFzF8jX|Rs7#e^@0GyQT zgm9(tpFVS%$0Xg`&9K8L*CnnH3ivB4E5QZ?20(=bf#wMXHa^ze(i|!v2OF^^0otJ^=q&)`1x|hCnoTiq8qo3_ve5 zzLU4_+zyGhwl*I)`3qL$f;R<&4G9eajs1V~_Dz|R6dM;SU;Mai;2XC99OJfYXlUT^ z;U;r*cJ%P_0DiPZ;zd|e+!0tDOKVHPOa^~RNeM~`prWwr>gwtn=;MAxwSyVzKL&bw zd-D1H*873Q!vQRw3{Eqha2TJIm)kqotEi|TBt1PnoRLeZmwJW2t&N&ns8zxzC+4ts z4KEPx4=&x7x(S1xJ$s7a@azG2LC6V?M-WQae?bUB#!OlzLqB-<0KQN=xSa3*{jqQB z|GBF)_d61Y(t;rNa|x!!q2wAy=dx*O1kLazOCOr{Eg5@|(K1>RPPZRYRV^*v%!a_2 zj}mWUlO+5i<(U?pcVdx!^*+!a16a0pvkS_Cz=I%+ zUU)LTtLmjBdTaEE5hGAX1pAtrn(FFm&Wc)EX_7mQUrIHv=uIP~-z1S`d(b|?m{P9; zTU%@jlUxQpwK?i1iaiTqYf3g7@=raPd9lRRz3CeDeo7*d)YaADZ^HY{{u3?AK766? zaW;1TBMvcy*NT|I_lHSjA;G2)T4+49?RmvaQ1P5p9cWo3mH$afRE~h4`WbI5Mky*p>%M4C#5wb(8V;F6- znsi(Ur7`9NHbvXDyA+8$PHod#NZ&*=gO8#y{1OS7dXf1`$}eH78lKoK^0EpVI+LCJ z)jyKK5>_2DZ!v>?$=DZ??AtVRJsB;hdrwHko;;(eK`M9MChC(+=l%D?5w@{W&j;Gk zty0-YGj5QD56c4TV&dB>{-}}$JJOu>q&|y6;;85`OGk3L?ASiecjCYQI}LSaYisV) zb7wi=v-DU@nf(0qt(ya&d_X`?mOJ8rH`UYIi(pG(%?!=FX=LBE@TVjrV zK)8o5veJkL0?$iW0;>+1^T|Ex119-@O*`=;h>9x8E1}oDzQZu2p^*yi)6>7YAmF5I RIYh@gie;Cy4^wy={R?QU{_6k$ literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AIH.bmp b/plugins/channelrx/demodadsb/airlinelogos/AIH.bmp new file mode 100644 index 0000000000000000000000000000000000000000..9883a8928175c031e5da93deb049e3dcbf0f11ff GIT binary patch literal 5176 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 EUj`av9smFU literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AIZ.bmp b/plugins/channelrx/demodadsb/airlinelogos/AIZ.bmp new file mode 100644 index 0000000000000000000000000000000000000000..6d99c8f4922bdabae7bba5dd680161c9437fdecb GIT binary patch literal 5176 zcmds*c~BE)6u`eaYW+idOsj*o)9G}^@tSHq>Rm;PgVw3mDNLcZwo1hVkJj-jRv9QV z$f$sV99GdFGzuDlkdOlc3UV1lGD(Puxd=pZ5ki1$j!j?Kx;jW_oUl_Fce0ze?|a|w z`|bO_@4emCUoUx}$@ii&+hD+Q!OmV`kbOKU7{% z>}{71)2k86-%*~YpvAOa*l%v)8yndj6?y8L$@)q<&`MHvXm6jte|UBE)~ODQ{`KV7 zFj7rTe0AX&Ei)AfTC)x)Xz|7dmdAyG9(TJWsXN6fyEKdoz3mF~gL3iNJvvqnF~ePU ztAZ9+zi)ZXw&^tyGlfTkWmyN?xip7KM_$uEfdYQB%ll)U{+BZPac0c9+o4(XS*I^e zh|54n&mc(~qgz;6G9MMsMa^*`q>H%QSrzs{$vnhcHx}#a1UQOSAS^|ti;%kTEO|};1Pb`oD%ajCp0DWM@Vj1# z-Rr`=7U_8zbLBl|kik@I5emR#)-u$R5Kg)X{MB2hvA;kS-@NU{9O{D8tfi=ICE~6b zYkI&3vo>Z1Xy7N$IR;|{$f31%_X2ZsMYpU`k{k(r%L0*xkwRY6KY;@Nds^9{LRxx0 zzfJ_%$d{12lofKuX6^MAn4#L-RQZ(ud(uUMACP##qlM9HdBLN~Rsqkb4jzrLfec6R zE3Tf%BWB%G7r(LU@TTg7sHU8V#_X{AjK~K1 z?{{y>tfp=u_dodq5jP02mm$uVKKQoMOp<}*e{}H>q!*4UiFkNTCqKB_P@T5vR>Ja5g*C#L$_7L0e%?j)e$qDb}L~_&i~5LNl@hR*N+DSn9{nkON7B7 zeo(slY`Dkmv{@h>!lZ!NF<^h0u=o2&4S#)_IDS%o(e8%(*-GvoE%6`TI5z&;@d?)~ z8fRB?8Sq26U;;zxl4Ty!+)9BZ9WoiQ{z3lhtYNTM`V6>h#&kat0?Z(OcrN7|0>sIY zAOL*%#&;n2@W|}iR=>%Kjuh~_T=>Nkt+8vW66Y~beS9PKt=#BwR}YWA!i#H$dl+hq zN){l_Ds*S_N6gQCDeX?!6d!-Y41ymUs9_&pi>=r+nY|o_$qa}v)OO4Tz6>YJ{0&Nj zyFX8bj)Vr35PV37;^gfk;{6BS!6fZ?!ry({60AF83<(K3_IY_rp^A9Gc8%mgOh`?{ zr^W`hDCsBOx_9gMF7jZGLHuA0v%{un)^V;tMPRHitqPx37C26twg;MeR3d5G{+jJ` z1R;|uLj&rfmS`B~aF2($#c+-k#Gkx3FfDxmh5;9BZg&6V>61 z22^QY4Zj!n=vWt9PHwq>B#3ycAH)O0yJ)tr947MLpjHY`UlITF1Veqp(G;b@f>%5n j!F$2;wv@{wfPW|^hq1k#LzAW*Bt8KRWkQV(J_G&(6_(8h literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AJA.bmp b/plugins/channelrx/demodadsb/airlinelogos/AJA.bmp new file mode 100644 index 0000000000000000000000000000000000000000..f64160fd7a82366f0efe99aaa117ec2b1e21c84d GIT binary patch literal 5176 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 KAMyAb4F3U1)>5GW literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AJB.bmp b/plugins/channelrx/demodadsb/airlinelogos/AJB.bmp new file mode 100644 index 0000000000000000000000000000000000000000..9621943862bf2bcb8ed21c6f6fc9b9cb39c0b9c5 GIT binary patch literal 6856 zcmeHLdr*|u75|xOO=2`@rqtL>)K04%ZO2Jl8``mDjK)Tts)>z~D4K@yP+kpSRm>Pi zs3Ian#s`X00U?5}@)8k22p|$(E>_;KE6PKbhX^doF1zlxz2~eSZVhDef0mic_uccp zzjN-n_uHkb%U%cnIg0=D#8@wegBX+WGw~ldBKTc%tb+;SpCm~z8jaA6=+M{OgSPhj zP^;Bwy?Y;xs%G42XoRv(1!Z$5s?-Chs_sTn+AU;9XG57$0cBn#dOCVAVi-YVX+83z zvQeFPPa06dXQ!7>!MhC@v{R=9SAB7#v_-iiu()JA?y0$$w^6CJr5rKvHrNV?%aQ z6z36jEQ)PhxO4#tNeM8U&FJgvV>#kAG&ZmuNwT0*^8h!$E<<`|HsVuKa5_nW1Vt{A z6a_f0s6gcT7K9uuhxdCY;4;$_dzS?vKjk_GHIGnwxdeuRQI1EcD1*lvE@)S`vpC=VoYqiU_BAHI{5(vLP0(t!*tO>~+`e-gLqkLO!PFn3Mb&~X zO&6xT`V#5{Mx^u3%4OK%yOrMw>&1Ur%<@zdyZ3&Mhy4#lj*1vx^8NO^OW+syPmZU& zvK(1guW+nn?}Z;t5$i7fKTH*u6s$w|<9VRAu9kfrjXuh2Alxapo<3VRW{N5FU?>(W zT);kPE}1Rp>eis5x)z0{b-0vUj-)IlPG73Q7Xr&Y|7nGndn(*!d*b8CYjEb%V=xR3 za~y2HN`;EFGN>C=2>UP?Q7++QysOu)GHx^H%o4Q{h3ebY_-OM61n%6%GF766r~Tw* zTuM*nIxrXvyk7_lqLcoagfsZ_QYQ@StUg!$Z8iM=6~OwxU-TB|hvJ|?dXyi%UXRGA zNSr)<5>p+f@%|t_`6H|d|2e;&i=`{x;k*%#u@HEWu14U|+1UxaFlh|)(`RBaYwm2E z{W1|3(=KxE$QS8Gh?;hE`UAhSEkW0bwY2qWkyD~VT>5Q9r8Hn~!aev$KY*8u0$X0& z4A&RmM?zo>>zORV)?*1~$qb!VhwF(sXt~)8&sm#LnO#0+o8qUsTn6sS>QKg%eA7D(>Qj?me2!~^=7j0b=l_EH z0ZTBHr%y^{L<3`y%Tq{*0=3+f|pH<`26W#FhEr9EMUwFRi zjDTNxqOZM=^(0}3>f0z8g}wxJtr|J|GqGz?07iAzHBk=34ux^sChW*}Q*#q$%>F5S z1N<1jT+u^mUsL=f6TCl|_mfJk;(b|GUWVPN`oI?Oo4+C{l~M5ggl!ZKpH{*jo#a zl}F(|a}(UAIV0k|5cWm>hk!q%)6lNwVaRdJSPmb2^8c zTbhxblg(!r@yR~v6HkthWXUe&29v?HOfc2gf8h#i7pSBHlA-=KeD_mM|q%gj?PIsvj}t9)^~YI zV*lzzZ&Y_^(V`hfP(nMr52)a^{+z%x6yDP}z*X%1U5kTY)ETXqiG9y8QH_h9O8Z~Z znqe}U1Yh*pCw$wuDHb{QXX!F;qIhlf5s8ONw zY)rQCec#_DQCIzXBNT;$@ITm&xZH>MGO-3;D`MgC_CB~x-^jRr{K`7SZH*RZz4g48 z^Zk9tZ@l#zMvXXju@5^>b)vY&TCWA-`^a@^4BVGR!ga>q;q|%;JRH_x$3kBW4`{{y z7JFTc@$A`Y;yz?FqqRd1t&Z-m)*chF^9nXDIf_$;*%*KAl6^pPt6hx z)El43+A(~3X3JO@#W`c)niE(VOh`IbjLplAKoMI4{g45{i~YoXe^nCR-HtCMh)+4wXzvL4jV*`ZoswpET)+yaiqRY!`V+MHz&P<+;a~CZHJ`&EdVpErX~)zCwy*|goHvL2@{1^E^ q)ASV2@xIB%)3wvSi9LNIjfme;N3;fOFR=M$wttI$6R(MC2>2f|9>&H1 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AJD.bmp b/plugins/channelrx/demodadsb/airlinelogos/AJD.bmp new file mode 100644 index 0000000000000000000000000000000000000000..8103d0cccea996f0a5ae0e2aa85b02d3e60ec0b9 GIT binary patch literal 5176 zcmds5c}$c?6d%uOy$?J&yfA1}tE92EX=;nMwlOtYY>I7Ts}1!^YD}tt0$R`hfo)^b zs!eSzwt{lsAj&0jFUYB!f?RSR%d+gk?yv9dx3UO=O9M9PWOw=IeQ(~(Z{ED$dxOn~ zYi0^vTTQ=K^!=E=EE*x^(6109sk2~(^wkOI2gA|S&B#8C;@^hD_R!iK9{h@Oc#T1v z&CsrOIIIm1{`Lw4%*35d!?EI_wK**KwaTjhBmSCOC_0ahTD=Eqqfq<{l=a;0Y(v=< zWbDV?1E>gqq71>ad-^}bqjZm5l$)b0J^u0VzJ9E~jl!SNQK>W7iU)r{wu_C(>{0d? zx;peDR1GNp6}hgc3?zwGqeiJaQgGcTYfn$;d&!@cAD@T@i%|0jPAuMucW)!R(@ zveQ$bC5OS^-l+8w@SlX>x$t=raqAH{3wO3inzGw97UIlgacH`5G!2cH`G~PWF z&26to5b_1$*nHtaA9}v*me+eB)TgsU2Al4ZZ(9gn`W|%Du$sCNnFo1m^3U=XgqR~@ z8LC5}EJyQQ-t-$Q&~l$OyOb;^@ZKYl_z6p%)dq`y;uH9NUVx$$xi0LV${@pB75+N> z?0;E&y}3APCR`Va6EBaxY9@}(6D~`|?^UI327T#?@cWJfMM1U`qTWQuBZERy257G2 z&lq!vDdOMPzp9C3s3h;%N-lxUPSUoXvi_cj0)LJZ`>j6SFh_eO^I!aClAJz}p*!}j z%fyw0h^iH1J?0AM8N%^fyB_+|NXh?_9bJTQY|Hae`X_}$7eUH70#zM?%@FsVelFUM zu*LA7hN25-E9FR})>g=e;`#YM=P={1i`B1*{z&+VkbsY@!%f6t!n|_42X)Rde0Hggx`9ir>dh%t=4?7B#?Gwrf{-d6-Hgd7D)ITQlWT= z8?P|A`b|O9YmDbngjTC&O$xVO_=yA6a#VOB?>nU0BYG`!q0ji|dH(zQUxz>0uDV=d zC9V?ZQOqwN@po;tk{~2SRhx+u5*NmX>av}*2NHfF(ZZjY{0R(kAyJyt=;Uj=cx!s% z*J{v^%#_jHC~!#PKLtr!yJZ7B3?}|%yP5yx_w?q7|0Vu=%K6vhuX@-n;im&{DJ~Z0 zw@71;+9yvFj>HSjI};6y>&BmVnpv$b&hRRIA41G1*J?FN#{ZcAm>{CwU~hM4Wg0^f zLBmtNFbwbi$!PpUFfng2(_}fIvM$* z;a?)o-Op;2bmT2+8*{%&;-K|}Yi+Ha`hgkWu${&<{?N$}UygfcxWr1`!5RM6YIbby zNd(P7ehV3uyg7Sp5*$M^wV}|HQEi9L9@gWb8&Q$IGz?~DEDcxk&Ce{;6BQx4@LXjF#j=q>3}83#CSPoQjPA&$)x&auH21|1;y z>Vql5VXJkhUPu-?+u5?zINHn5R%9pyhzqFtBKK0MN7aFp?Yb?}rHhoivtYM;zz3u8 zlNE}8N;9>$^aiE)Z_XOfK71|}k^e2Y>~W3>>A`loVaInR)9xfhR&%elkdr7Ex&1c+ z>2HF#4gG5j?#*EE7oF!Kgo@47oqQ3Jea$T0lsWK()ny7xah^af6sL028+s{gG}^6e zLbktsQ$sfb*&Z%?YomMVJkix%4Va0Bs0{{xXA9^G5Ht_I6Ztlh#N+-sM@Wu#b&@DWLxV{sW92vQ_{9 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AJI.bmp b/plugins/channelrx/demodadsb/airlinelogos/AJI.bmp new file mode 100644 index 0000000000000000000000000000000000000000..133b1713d1a52ed3dd964732bb0631a0d83d296d GIT binary patch literal 6856 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 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AJT.bmp b/plugins/channelrx/demodadsb/airlinelogos/AJT.bmp new file mode 100644 index 0000000000000000000000000000000000000000..d1a6a21231bd88b73abec2c67c148bfc7a24cfb1 GIT binary patch literal 6856 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 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/ALW.bmp b/plugins/channelrx/demodadsb/airlinelogos/ALW.bmp new file mode 100644 index 0000000000000000000000000000000000000000..e552f3ed0902819026a570041fcd5c9b864d20e1 GIT binary patch literal 6856 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 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/ALY.bmp b/plugins/channelrx/demodadsb/airlinelogos/ALY.bmp new file mode 100644 index 0000000000000000000000000000000000000000..a1509351daa0beade859910021af23335f8cc5b7 GIT binary patch literal 6856 zcmeHJTT@e46#n`j`qZaB^r63?FCE9$nNB;kqSoT2sFmIj>!nnyGdgyx*MO}T6hi`p zgu6fp+9=^BS`#4zZ{d=JgeD=}auWjP!qx7z!#Ry~T3VcT#Oj4c-01DNiF*}SVb*C7^g3UOb2t>n`1rUO=N%qKJQl~&(h`P;eQ*p8!e+B! zW@d)RcsyPt5(#ckO!yHBg}5D!#$fI3g{7wlb8~ZIJ^J=@I-PjX*(uf_AJq>(d&c9) zrdp}riM_pjFn4z&F+2N`|M~OhtX3BW2VZ`+q`#BzSEv(<#V|cRE#`;AVJs{x@N3%R z;Cb7%)@Pws)=ZU4vI_Vzp2zT*r2jD+W= z&o(0%3?UwmBYn#@e4eoryE4DR!$*&Jjc>EE(a@mdcIKB~qot*l+j{*iq;KAaEn72i z^w@FCE@RPUHbbFQ!qD7;tJmb9=cIkl&(EV!p%inQ3Fr<$}Mg`!A2Z{mig ztX#aOfaUyb0=_40cvy21mhvO8>hfUKE6{pzADYi+!)el^vq6QztaUKR&tP(5gx6SH zJ}av8jBzDx{YLCR@IAKg+=YGnb9fA$?`x1~aTS ztr6}9h9}vrZSCl|dzafTmkSzA5}ygbAA~E#5dSZ-GpMMn!sYxc&}x%hptWJfpHg;S zWYbufiy|6uz}Hy}=k4Qgx1WR4a2k&*a?qpBhTB+I4RjdNj&%pxVC? zZN<3=k9t5_A=Eqc;}OVm&m()!UX)ivOVP&O=&LtII@uwT$0=eSJKK;?JIy;ne9fC{=3^jYh>&oa zWM|?U8iJqUMz}kjE}mnzJ5XC!&+R}U2vwin!9QVb! z7!r|T%tl7oVDpq4(eWOPcU^#^E*;*xGC11{Vanf%r*+3+Z!1H0l?>h0d2m}=5sM@> zOu&NXmXrHmT(7O; z@qT~cB~0m>dYtaPu#nUc(w`F6Z-lqeXkxe~{X)IeIqJ8v{uy7)Et#cjdxeA7WI?CBM%% zf?s~U!1ZN_@l|-=Q14V$Rr45n*D09RQoJxOUd~5LYf|^g_nThNwS(-Hu|m$uIW(Y! zyJ;WBI%S9jlfAYwX63b!>H5HcP230Zi1do|c4cfJ5P;ES`kVjv`$oP;v$x2VBdsQV6na?j6W2*^>6&ye^*h4tcB8&t%lAe-Low7-9*>9H^lo)BeHCia yOgX_|Q1tcp4~X9`9=4~{*jL&A#_3n(O6z~|T*5-aLgIkL0f_?=2mUV(0Dl5|V#o^s literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AMC.bmp b/plugins/channelrx/demodadsb/airlinelogos/AMC.bmp new file mode 100644 index 0000000000000000000000000000000000000000..c824701b509171aa69abfe992696963f3442e61d GIT binary patch literal 5176 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 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AMV.bmp b/plugins/channelrx/demodadsb/airlinelogos/AMV.bmp new file mode 100644 index 0000000000000000000000000000000000000000..07c0fa796b8f342b0ccf5a37749e34d2b06ab886 GIT binary patch literal 5176 zcmd5=2~d^S6+WU9W86S_EOlaI)@F1%w4)B1h>EsuV~cBv3ltT%5;ck;s9;nqXe59m zX`+(S*lH3R7m^By5$(`UC5l^Vt;pMWD4T?x_ul{Cd;0zFM|=`P=(sfhym#Nd=Y044 z_dDm@b1wu>5A-J2GZO8O@STINChA6hXo);9_;U~a>k^>hE<9I?)$!9fWgjP|@W!ni zxq_usn5ElP@p%p}Sjv0u$-_be zza~!`^|uWg3XBRTx!Y;)I~gts%S1wz&thl&1F){b44GQXFhYwu#f^ZW(5 zIe|C4!+nSFp)55a88*I^e@jbCKtMoYVIkIf^ypC#P!whO@Zko7!DKR3RaFHB2G-Qn z%$_|vK0f~J*|SkmQ41F?OioUoJ9jRIMMXtHK|zg;jd0EO?c2|tJ2!Re)B^_&gocJ5 zJ9Z2TlL@tKE(q(Clhn5DiVr(v_Tj!Z|U7Ul_$jmz}eI#kO0z7xcHI6|Ht< z=ez7V1b(zFS|N&WU~b16(T+xLPo6v(QJpnw7DA16hlht}W@dsI0$Wm2GIs1(i^YN# z@q|0ptXUHi6O)jT02g2vT)lcVI5-$-0w-o=W!2TyMMOlvao8O@cI?3R88vDYlA?3| zSd1FFoT;znbOF|iN0@C2c~u8Z(^M`A*Va3R1aSZ7xV2RoIhLOo#E9y&S=`&eH%j0m zcu40df`7?0pgHn&UbK{Z7?^rB>^}e-x@Fzi-4^j5H*VbF!-o+r>}2%eg38KDAeJmy za{Tyl5N>U4J#*#^7>*x59{CI{7!Dphc;38uNR8F2R|8y7P%vS_1OOrvyD=d|(`KI* zfA~b}eE2bhrjZlS$3)B$*zJHNzpu|?yW&7CShXI*_E)#5+J8W4&z?OPu3x_%af3%R zw3O(esv*vZDkSiN)oRseZP~JA=gyr-2c!ndCsdH@Wl{&A)u-!2vfJgg|EOPGlz%T2 zr}D*TU+|%0oW7s8zRT<0=HAaESIy*mD|8WWPvOKg-kikbtB|L4z_a}3CK(3uh8i3S zKc5MMV(kVF2*BQxpJg$5;-s*?7Qq{~iPamK1~yYK>u!y|kSewYoZ=|EsZ>;|_4TUV zAstRuRE?g#GPIX2T|%Ic;fNRrx69E%BvBMmBi)7Q*VorWg$^TfFEDxI(?A0&$;U>1735n%y-d`@NZn1;(@cJ4E zU8~w|$rnd~hKU9kLl*ESS^V)a9*sThWg|nGhaX41$>V1*`5396Wkxv1ZfrI+K4e6j@^i3`e6Y^4g-RDwTtu%Fj>osV_M%Po67Oua&4q8(S-7 z)ooc>qu46c#^&z`V5jW9TM7Q{%ft3HjfrjQSbVT#}|nK?4Q$ zh~Y){@Z#r&^BY?LFp+O9`CA~*{!+7Fd|A+dN|@UG4n}S9cUkQ0?QO4olt1nD@4hdQ zWoDJU1bGNr6e>&x_l_Giav>Y%PSzvzV$NcP15nChm zzr7(5Ds7M9_EOUzULL{Jz0|{(YpS&~KW+!8ntKo8i^YJsP|W`_q9XFsFLU;3F8GIh zBN{eq=Pz#4x?ul@rZfI1#X=x@s6!$tonM*8L6bOoGoQZ#l8RoaUDaBsY!98!uH4qD zNo$K^b&T3%*L>l|NfcfZFAc+O!bW{7di(QE)IwAncZeJM@pL=m-=!5uX|al!c=`4Y zUK_`&-r}f@yds|0CU9(=u$6x!x21aVqVsR(oH+ko_T7%VF1_y|gC3Ya%lyA8L?zl; zhy${ZS^M-TMajUQgC}x3oTE4ICN1^G1W z&)`2D<%7q?*L5A^e<#`R{B~`Xj}G;q{9W+`8SQhcLLoyHdD|PBaV^s%-}bltqvP|x zT7FRec%O?s8vb_)4tZP+nyojH+uwigny(%Lf6a{RX=zb&^OcilQ2Dh3|Bm>3{fqwq F{ugDa5jX$< literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AMX.bmp b/plugins/channelrx/demodadsb/airlinelogos/AMX.bmp new file mode 100644 index 0000000000000000000000000000000000000000..157e8899d89912a8b2ba62e4efe1bb701489bdef GIT binary patch literal 5176 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 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/ANA.bmp b/plugins/channelrx/demodadsb/airlinelogos/ANA.bmp new file mode 100644 index 0000000000000000000000000000000000000000..0052982df7e5e199c571135f2f3317321bd0eca8 GIT binary patch literal 4856 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 F{{tJ7;yVBU literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AND.bmp b/plugins/channelrx/demodadsb/airlinelogos/AND.bmp new file mode 100644 index 0000000000000000000000000000000000000000..42e7c8da3a7334bdb9230757e09636c7bb4a7699 GIT binary patch literal 5176 zcmd^CcUV+c7RM}65fLmPh!qEELlLPF0f{kc;x1BVU>J%>6-A5zlrf;IpQzCo*8)*A zSST8a38)|{s3;&7R6_5}(2IZ|UGp36%wtxDY`)~L{d^qmciw&Ho_l`ho^r=(t;r0D z;l~K0I{xkP&z~A6p@>mJ;v>9VktF}a6Byoo*v|)#f9UNHx2%X)R#;b6Iy5x&cI5-^?ZZTR#Se`7qOl_z(2-TO7Ry`_=TQ&(BCWu>-<=^Wug6~aIX zA#XDk&rjwAS(}{SAGB@l5?@PIn8(tVb)?HUXvsLzr(o?@YxPeAdsG%YCu&7)mB zcN$Aac9`SUka}a~K+9;?GEo-~5>-Q)3b!xfsm!wNQ=wE)*6x z>rUfU6pMP6;@`aP$WHxb2V)rmgrPq1%E|Di+8Q5A8jd~p{!L2kFE9m99=aPTF*PS$ zjXWs2e5C&ObiL*<&5MvYb2pt$ z;fEh7S2opFpV;n+z;n=)b~8{6wlQ6AsJPLR2K?)dl-PRHs8kd+h2l{rLm1{P`V_zA zivWAmN-ZZHxu@yLlz>=<+Fk6|iu~srOq3loC&wKLg8)^nNAP2|@bLo_4`=-ut_Je3 z7`4q=Z<;f|G%C6-kw;$ne@<_0tRou;@k^8Ve=FQSBPq^*B^`Oe(2$0F&Yi@pl%J8k zJ{GjtBVm6AKlDFIzs}Y}8Y>{|k#yMl_N6n;bv20U_o$(!qLEiM(9bUx|IwK2`HtIu8}sMPJ@g zOU6cZJhBPZEh5B6;3=U4M(`70XzyX{&mg*Wjc!M4GbSJ3NpfAH0Gy|HZy_>dB>3&s zC#7A9#?1Ysc$_xGkP%=qlHw`h%o_<#sDJ$P|KIUX4680JK&3!ejtuqN_Jtmz4?eY_ zN!qE7w^jYvmPV1}I+bxanAQefUUnK<9dM$FK+I8F7O}j+bgqy2LfEs<(;97Pa9}`S zl`vcd_$gb#l)ij|_Rdh3LdV9H!*7KK(iknYqqPZNg^m-PzoYh)OGkH~-W`AwcF>y4 z){#3NEI4*bXXcG7Qaz%A6*uO17U?UB-+G|eLX$6 z{4vxf9NOeCG${W5B6gt|`~)7FzqiFgT&EBM)P;1!Z|MK%ezp-qw*J-pE$e2-Jc-ZmX|FA4BCX&(EzYdimnP?d)5>UXMO@cF$MstxW|v z88L^yDb0OE3>J%D05kc*31}pdFN&P3#Azchj(xqprH(5Kel(wPEe=J?-B{`Tf$gXl zAl$X>7EJ)5q}i&DN5!&Nn@Da-sP-2QZl^*CzpqdT;SoEviR);RkbjTtXdhcI7>BmX zEh~Tv5Q%oQf8fFk#z}7~8YlV@N(ob4>dV;@k8UOYxbN%0e;URf;`{-AL8$ljbZ4eq zf!t{Dn0eLG@GzPGl?aTMA)hdozQ~E>_(tywL?c8hy+^0Q{G)aUBt(Rxj}$(Bh+mUr zAyL@YR39B4cq(+$d#k9|s9pZ}dVYU!clT>7e0DG8MDT_kHlJ*?QuACo7hTh1>3md> zKx^aOE~}oV-za*T74t2p^koj&MeO;LPb1@d*zh`P<}IF)1%Hnl*3Z}Wmo=ieG;k}q gWrf2()e9TB6=Hv1V+%3(|DN&xXRAMW{1Ots1Gj%CNB{r; literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/ANE.bmp b/plugins/channelrx/demodadsb/airlinelogos/ANE.bmp new file mode 100644 index 0000000000000000000000000000000000000000..fa932e872e820d016fa69c3c36e93637d05df704 GIT binary patch literal 6856 zcmeH~dsNhA8ppp{Zl!;eP>U(8TX{)4cCofot*Pmn)z;Rod1@t1h`dC0TH8eJ*tV#p zq>_YaDtSAofZz?egcmT7%is*d2n@q*W?*0jm~jS}`)!~1{lRaP`on|!=gc|p{O0%m zp7(j5_w#=d}(jiSB~aDfIh%eysbC2~(%Hp+@OM{0=i_%xQ<+;X_(x zA0|y}Md4*T_pxcKncJ0=Iz*pre8aKX)Lx=_g;-pDolsF<&Ax}>>h0jRmZlukAASzi zyFyT%6oT6QlhIKUC;HLmFGtOf6Hu2jfu2o)q5M1X8C#rft=4zEjC8=J%4 zrNXrz!^L^M9ybiKvnVMxA|c6w+yWa4e-Z52x(C?DCzvtz5iS1mh8`~y-&fz#WBep7 zqE>csn=jUz@Ys`Wu+m-}O6|pcV>BqMaKLQw@_x1-1HRam`L6qEGO>7=_p=xq)92yp zw?Op|BjL7RM{jEhWbq@oow+fa?k_`=yA+ih0ewF^ed!k13{~)XoTxwY6r@`Lhp9!J zt2t{v6ua&vrU3?q@=cI!13XR}XDHnQG@p8dk5L|+f~xIz!Kg?e;x5DiXXjR+l#>8oD zcxRCT`wsLVVreJFJ*q{eRM>yUbjni#)5F9x>RH zV{JM858?+Xl1HOD@g7=lA6m~Z=Zx$|mB@&VtvfK4xQ`;69^UUTHjwS7kbMVQ?-;nP zf&FXFdX<=tzL{yoH=JolaU5z%-_<{akw(>|MKk0HAdVl1^Lbqk$amfYZGI&0QyzJS z@?sq6)IoO9=)9T$r$vXV9Ra4zm-eIjVm_XH@jC7eQ{!K2jA&?dq0j0S{c;AhmNysZ zF^_cW@%r)BLIY;b>wwE8a39Qc9BKN`R15wzLx;&vv>})FX<%PPrj(PlDUVXTD^R%! z6kifr&c4Ir^Ei5-$y*Hh_akn~TQ;^Sb3V86I<4rI?ELcY#@JMWjL7?-IKCR$1%7-O(}TS8cGOaRWXQ4=>DW=e1%mQ|005TrZ4g`!5@~ujZ3~6_`4E(J9%%^RBaUhd7V5 zy`09}g@)rZxKC#*{@OdY}INb!Y61+-#+X=*n^QFYD7eKV)?2r zJn)bPtJfOEIGH`Gr?vYhac1i5g>+5{dT&gd$!jV*qgah?%6gk?P*OEgx15HjO)Y;Lnc2vS3*~)#Y&qko} z#C%k42900Kb;@dM+lAF)tc+=O;_uLMW&!V09()3lucbOO{OM>?gFo>)f8@Ubj4jpB3tJi_l*D zU#efidCmMe%`IrVvFWrK85`F zI-H0cMY#{0h@wWkw)(jblT6fe6LU^g8B>S?^aoKH(y0@!rRDN79!^Vv3~+r53LC5bci~& zn+=d1jm5>yvyr|;&?;kEb@cNf(;+hTIPIv<-HC#)UcjlCP=5X&qcf^H{mUTJAu?q( zLUSb@l9ZLmjh%|j=n**jE-}pz-o0P-d#fc9`LYDejP^Y({ zQ@`Jb?j{+oBt<}xwGrpzW}))H${^F*Vk-Pcl>8Kf#tZv!B{>SEyCQ;2Z<8sjhi6*2`bl%UflluPK7IA{#~VuftGR6x8bfL8}AoHKpm$Nppfs Ihrks0AH*ZeRR910 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/ANG.bmp b/plugins/channelrx/demodadsb/airlinelogos/ANG.bmp new file mode 100644 index 0000000000000000000000000000000000000000..9432df543322455bcde47070f709f70e3adb8a0c GIT binary patch literal 6856 zcmeHK2~d^S75=Q5OxsK+ZIUK!v}w|$P14N7I1__tMdN~sAe$gj1Vyw4H==-mY(fDA zlubnh1O*fU6_8!_O%_3Ad+a;NCZZsSAoQHefM9W%i8Gzd@Mi9N_x|_4=id9B?>pzb zr3%>}LVUiX?=PsSQG1Wt417%AfE&%<`E0a_2lO>EGV-(ykD#uo5yj~eROZ*9B%=(q zg$;Nz^hCV#sDJc#(wd3ur~6N_BrIC%+Hu7t8mU29Xpl7H!QCEI->gIO`3yvQ#G|93 z4gMi5_)((wYTpe>SQ+jjN{;I6obUG1$gxE@oTwPQ+W$Q93s%s zbXVBxZoiKN|1`w=rXVRGov@BUfLRc7a;l)RMuJ6uFTvUcWe5xEdM*3^zx;7P`ZT1m z3oBuSW!R79Fo3OMAch8io*w&qA0gE7Dtfwl1U~Hzod`J+fyT0Cp?TK*o$5ARv=4{B zxj&A%Rbj<9Wmr8=g73d7K}5(e7uTe-H<1@rj{4$OggIqkEe=9yhB=Mfeim19qY6-z zS~_kc#w!u+^&R8mF%Av%KgOATesH#ohWz3RD9k5Zzm-67A)RT8I8d5V2RoHO99bWP z${Wp->=ndS!cIL9?pv?myk#P6)dO(tOg@TIYG9-8j{wtalinXY!_D|g98y1rONZ0O z=dWKWg}wTD(YRljTmx&eals;yI5CVXPU$d|IR$IEbBJ)sg7d~u9M=uQqrS(u+wuUO zd#}Q2V=&@Q=V8mA93T%<+)AiIDDA;#xt&mrSkGMA_bk%R7m9t$vK#2kf$%eoqxjeY z2lXJFAe+72{bHUmWUlhLAKvdn)TxB=^N!txf4f?{VJ+`~&2tVwS+)@JQiQ8?8I}-N zJt@9Ue3$z@U47X0x1(5y-LR4OpEU2R6)K+Vec_5zJFg1;*{uykMraWhVJ~!MIZPSX zQUh;e0omI#$6eSP92mmRFI|OZm*6LO=tUqSq=;7Q4%EhfPUgU+PqxIn3^E#QVDF80w4uF1X(A;dv6rJ!;d(o86x&& z-+qsM*z~R)ZbVlIKd>(vCGBE9DKKOFzV|yHASW_^d^{1S-tLDmUSf@npX`L{s$9af zQeY}OR|0+QS`1UoF!6ov=U$ay4V{tC8g)DyHzLcCOr*({> zjlw858cW;hPFB$Poec_;s-g2|2jLeDcUSyfLH}gl2_{R5I|CTkB-mn1YG(e z0(-u87rtQMu$?%cNQ|QNR@fl=ZDi-?T7~#7462gyVLhaXwgg?`RieSFfm+A%sM0@0j zJ(5ZLoZ}ham$h)GFsz$v4}~SwB1dsNT`{K=hTBIu|Gf1ahge4!ZITi1ohNi;wbD=Q z*HYO@95y8l8$*&&FX94ond6=e^y#ioZF64P@egOH5RbLV2OJ}h>s~=?O_zAa{B5r2 z#MW7kVr^PbAq?l85^*uYB~$Fj_w&53xx_XA{-M zl>fOFNGCi_>lF@um5l56^LAo_ZRem#i@AV7YDl;ub%t$_W6X&fGMNO1` zu?W5&(z+=XY?RHV_4vvN+K3RC_M;HrBXx*zYtrrBGeA$tJ| zi)zL>Dm%9no8&5SuWNAJ)|ky_f4%ji1$VfvW)8A{`5n$}ZaSBtzwiX|DK{-G2F+TA;$2V_^gdr88g;atNdUr2p3LX;-O+ zD?AY4mi1D5&)bJ&`#Fn66}*biE!u9_%fBvJMHx_GBtt9ieu1N zeGSShsUBT0%1?Q!^;z@!T6MUd{s51MpJFqWt?6e}Qx@OAy4}+FP*n;mR(n8WRT|`F z>L`ZRKyF?IROvs|o=tUdu&GCQLKE)yjs9Pl#%}5yUwL-~s)y{LY##u%;1L+?42SkC z9cV2(0rl1KP?OJx_79~nIarRw%vKBz54}(m(>Rad3FV8yp&>jP8pXV;xf8md=|l6q ztHdqcEzPQc b{d!lpZTFhiI@K_*lP^Pq)A93F@C5z~IS-JL literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/ANK.bmp b/plugins/channelrx/demodadsb/airlinelogos/ANK.bmp new file mode 100644 index 0000000000000000000000000000000000000000..b78f1b8e17ef16332fd109a28fb5d869190e8021 GIT binary patch literal 5176 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 Z(<939o+;6gPTccrvHxzt`m47e;O~g_F?av~ literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/ANQ.bmp b/plugins/channelrx/demodadsb/airlinelogos/ANQ.bmp new file mode 100644 index 0000000000000000000000000000000000000000..c086ec582ba9e652bbf2e29c9178935b4320cce4 GIT binary patch literal 5176 zcmd^C3s93+7QRsIs`6lmJ2kAw2US!kv}21dw#;&EQPM?cBV7yKZncB zx#xWM|L#5a-1BerTlYGedDcSv0sQTNKT_p@-hvh(NBHqR{3rkZ_2B3GLC-gR{EP9Q z80@xMEyl6oX%k_Yp0=1xlOqEI$_LYg5o4>FFcOBxRxPRz{6&EzhV+3o%WMDl4+u`BYhcRC7_XqA0b6NimKOx0T;&%8k)Un9>`k zRV<2vo(#tAoE+(muufs&ugSlSMbSzt`bk&sU>e#S$8a}m4!USIx^EPZLpy?m*bhS)qJF4y;c@Q!@b*Dmfk5W&{X9OD5c=uUX}mr@VCY1P`j)){alBzq+c!`?dhEJ zDsT|`WHpcEwf!>5NS6{u2ih8X8-!iejLvFCPd&d=RHCcnjA+};lN0v7W4)TbCQ-kl zuD?nASgV9129Xa(25ij6iBY{8rt5E(LPT`e3+x@AzW+bPe{Tb?HaQp$f4PbK;+)>7+Mb|x0$syNiv$-JfqiY_ZaRRyJlHGhgKjfHUjbcD4 z9#lOTAJCIYYhrXr{ZNt^oc+bpo;nsx2FVA4|ITMiFT0=%YZ1+Vc{?k!os*@hywkzW zkt7|tvxS z!krN(WE)_rDsFdI_c zZlokBSQNdVAHJ(HbbG}KpOV8ajPINo2Uiz-^Il=V3Pn*O`NnvG`)^FEY^Gdn$qebp z3-2n7(%g-BnDkfPneB{yEAM{!Mp3|fP4WA2Z)=AcZ?40uM0kAKhK2`KjqH;fDnop^ zVOy%se9AlbM{by3Rp?gu3Boz$BTYF5*O)jqi1T+}Zs_L9(9a(Cbl9BX@K;~<=ltNy z4cWpzbKt@hlVxM{>JNSLnht(mniq<9N0H8`Xx}P} zaVqc6%c5LRf+vdgK>7!K(i40w)Aap+fRmEwfg)Ux{yvKr9&mmQy5@HAi~dz1Vj{}Yo1{%_m(XKZrlX%yM~q0VC*as?Ym_}A7Wy_6}4+z%ib8y&K?{tn_! z9Dg{Vh2CSLDstMdMin)() ziWZ+xVqp8W5WiMMZvM^&%$`YjI%fLBK=-_p8Txfp|94?CA;{}ePq0sVK>rDU+Sk7) z`EPsyviGA_GS$N~+^K-md&>*-P8r?^81f?aCV3zTczWOm4U~wRUg-LIMA`b=!PYvP zi+u~rXaDml`?LIs+3Vovyi6EF09-W9gxfy@`2)?;`b78&h&Q3{^BKw zcIX#>yABR5ZI^BToie>0n;9uR4+YASl)}C5LyX+^eKE!jl^^v0*vfPMz#rltIN#p< z8yHRBh@i?|XvSyI&prQ7AmF1y&B?01w7c}s8hX&G;sYOZPkP^v-cuVLSP|@&>IIqX zqsigEC-(DpbhQ;3K4c<*EzR_KahCtYICbYcpv?4H1TvEa93jqu9#D;SL)m_>z}f*I z=j=}4KVt)B5=!z!uuSt#^vue6_?t~rDt31HQD@q&w_u~7&GuUYl~#oF?2U5M8`UNr zBL2NrUFZ#3=t+>SW86`^2U*4x27YLs7|-4IDpV72G;CJ@+yYPzLUjlyqV&i*DCuoz z%u`#T?f^$9jV`$&Y0B}1W_f1)Jp3Wkz)fT5>w@nPz=dzmsgeF+jT}BUny3k|H2+nC z1%wV!v7CNgQJe-JbL~7T+>vT-UQ0<@YuU{or6NNkpg{p+&qOO_%jwr<98*-BoM$`X V_JBX_&%^(xM*qi}=bk@8{{$v!acuwq literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/ANR.bmp b/plugins/channelrx/demodadsb/airlinelogos/ANR.bmp new file mode 100644 index 0000000000000000000000000000000000000000..6541ed4541ab0a5e6d6ec9a7943c0c6eba3e4aaa GIT binary patch literal 5176 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 KAG8?%8}L7R#jZyH literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/ANT.bmp b/plugins/channelrx/demodadsb/airlinelogos/ANT.bmp new file mode 100644 index 0000000000000000000000000000000000000000..b0551a9233a186e598cbe1d6ec729ff20268194d GIT binary patch literal 5176 zcmdT|d2p506~F2TwAxOmi`uC(VmlqITD4X?R;-j{dh-us<<&iS45 zyXU(vvu3~WLp0KU1N~$0eFMJg(p~5w=n=XbCexpaeMc6c!{3aiU<`j_P5yj3x~Qm6 z#|w-}-WVtfNKKUa2H>}P1T(=Xm<>~6gyJF`7iOt&g!F`k2uo8eOOmWCP(g|dML9*J zeIZ7cC5{&Z6iYKqgkxDj2!JpRk{m4xVMYv*k|e1?{087BY4My6dqP5CBhIYGx~ocg zn^M~%<<}`gR-w2F7Z~u6o5`udXR84bccoh-JYtlQb83}BgLqc2kdkm-r@;1H9WHFa z#dSEp4hJYvR=y_uz$%vV`5N}Q3gSWyAJImgbQ9BV5D{Z?sM2Rh=0p)=NWvt|M@c13 zxTZsCyDprm!X>Tv-zB)mA{8{_OMOaKB|cV)+xrEFPsqK9DOO|z85SF^DVY`c;#Hhk zs|vUDOZA;%eJ{?^;JgNWp#fjBioC>4%)hKm?$9m$^*8JO!Cc-Z_*x!$Zfs2+ahY)a7`bs>5??9VnYYc)#EK`IHyL< zYOw)F8Lp@f!x@2?y8T>bJJxl|hU@Z`K`C8_E8CUIX52O;>AR%#DqPcpbE@%mLY#=7 zWy9kgxN|T@oF7fJ|8iPc94dMfc`Md~2DdhW_+T1MxyEaQF>DDo94K9a%2%T3U^z@> zK~Q8t!lHz+>bockf-sf_5TJPlXfIL4MdF_(>@c5v$wfTrCcV1xdjWcTZUKlOy9TwEf?xXktId~mI*XZg$0J;MULeeIvVsDQau;(o$Zw*T5W)7HC*ZTE(I zw7eu3KY4b<=!+cS$BHd??hu$uek4LiT^HhviT4-}P3Ospyc_dj!eEsD0vom+|5d0h zJ=9Zb{9u}^{2g!eapJ(k!TN)$-xx>D&E1=kSO1as;@*x;2&is7`b1Eh00+KoB?{;d z8Qw)j3y@or;MVOfUWiKK5#wkN_g*k1P2pu=gUTE>;vr5wU$G2nS0mF0QwNgn^EaiE z&i3*p2pAFd^mr<_6uyB>Cw|RDt$o{&W)X5^yh7WqlrBe5TwEnTf()0{+AyUuP~n`fu7Oe#Y4mY)K2Yo^qV}oqgXAEXSTEj?D0BH+pN5 z07kzD@)bxEkNk#%wyZyEm!QF2)1ua{&JCz+5eijo zfGY=)JR{hZ6VpIZk*kTQe3eT6VC#uM^HE3IZ$suf@LsbNx%4S)*i*Y60UmGpT90O( zCJtSC4@K=A#QyJGWw z%;KcIieFJA+G6lmZt&F|G$u_8br(WuiMD6iKAGXx?XjGEMUhpeaT0Gl@)$)lSu$sp z#v#k@Z$mzfyYGj1yHCFmF{G3(L*=WHC3~*nZPc~3)r~pKFxe&OM4M^dCOM&v|A&cSr93} zZ%(>Pq`a}$CTXrS?Y=*1YU$dH$`&Ah%Q0S(x)Tww-FbeoUr-Fmk>kvf5UA&6)n_&zG$Cp1JA~k8dfgeP@bq5@u{>hR( zhdA;}&0=IfIn!CN%vF=5h-^%edJ3Y>;iP*@79z+D)!7=&itOTcM_?O!+R^X4e-Mt zJWy>tGuL)*9uu;{)Ly&Sp7FX%WxdIP<#g+yW+g!_b(; z34<@-$57~aPK-DrJ$b~*mxmLPyKJ2hG|O<+kVYv0`(sBJ3Ywx`*hX14G99~Gj9LLn z_>BP*&-pppcmxOAck%rR9>CO9nP^FVR1hc_v!u&eyxyzb$WZ~f*WD}(>PAhDdlp+6 z=|}IQU|RjbJ6Zc8{&CWxBofD;VFE+r*8aC4T+Ye!Em4{)u;bx@)+LEM+HX)t1YKzb#6jcD^c}I zWd8WcTjm5zz;)YGym~nK=l$E&y93leU)|o@DgGMQ?}T5Zg6^_}*qQ%wCV4u*IIgmu zLB=~oIeNK>?+$u^u@TE3f%8wXXg%EzWSp(;Ro%EtLv5-`|5^o)-WN^ PU!He2tG@jT{0Hzq;@JF; literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/ANZ.bmp b/plugins/channelrx/demodadsb/airlinelogos/ANZ.bmp new file mode 100644 index 0000000000000000000000000000000000000000..31913d5e731cb665dc70c42fec0cbee5e50a24f5 GIT binary patch literal 5176 zcmeHLX;4#F6pkCNg&-s(1wo|2BnoIz%LGV8$Of{7ge8D1w#s5##br=iiy~s}C|h;x zA|i;mun87H9V!t5S_?s;W3@t18x}>jR&=n_e&KdvM`!xOUmfty%boMi{qB9|JNLWi zy~zr1CsWF3TZW#EpBz7(YXXIVoc4be?Hb*b4&BKPq%H~ zvAv^1^D0-$(CF!^RTC`K?P`f zW`?=>oc(DB_UzsB4vY22lP7F8H!wJuput(>=?QyqXpl~4V)clq2rDb=g3~99&z1}i zKSg9#me!Y*H6RHosoAU53$0(+}(|{z`o#gLDi+ILth_`jE;WP z+l%h5wE2>b&AQc_b2iwm*rmaSXpGzK^$ z;9!Mf=kA>g?Cp^<@2+N;Szmm<3g0!+-&8mJM6ep%HtEr7|hN2Qt#k%$SfKnJAKo z=FMZl#{N&5JmD=vD)xyC>3a$+Pz{R+$I^2wtZ*!Z~BI`XDx&y|IShbrr?7#ULKLBXHzOoAXGAFw)KbzZk8p~34nZYZxfr+?Vv zzCLJ*=fZ=hq^xxMv{}eh>KCaa&qoG_hGN&nB8)|jju=hdm&#R-7t4jk5{bR#x)}l1im#9m;}@(>HzE49F06ZGGK_O&gFng86r^ zm|!bm8-%J?sxYAaZhZMuE=@ONx+7r~tPip&!eOVP4}FiNGEp#Xf#MLb3SOOCT0P0x$T##xwrUQyxBg z=)~jUsA8X`@&F${KU~mA*s3rH&`&DGts+b@X8B`pP%PM7Hj`=5+0{k13SST?$@|m( zsa9}~W&WV2?fMOG9K1NlXPdJtAGLg{!3-#$WMqu<*QKCS%jR&53{8qki}12c-m}}& z+Y2u^Qqjjgf206krEc!-lP67ec6CNAz?&5>LQ-_c1%D#-?3|-K7Z(o44kbYUWkvaO Qe786Me~k10KPZ&H0S;>l)Bpeg literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AOJ.bmp b/plugins/channelrx/demodadsb/airlinelogos/AOJ.bmp new file mode 100644 index 0000000000000000000000000000000000000000..aa51e5a83833401ff786f525fc19baddb8d3ae55 GIT binary patch literal 5176 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 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/APF.bmp b/plugins/channelrx/demodadsb/airlinelogos/APF.bmp new file mode 100644 index 0000000000000000000000000000000000000000..469c00344d3ea8a0e22f9b33656bd36e87dc1995 GIT binary patch literal 5176 zcmchbSxggA6o#*j`lJa8YTtY@F2qEhT!JyiB}NkU!T7+dF^Y(25$h7xL=EB&sO%^O zT#6em2wkPyP}UjA1M=S!- zc{GP6D_r?AG)kQ^RuBCA;a@+MHxuW;4?l6KIaukagW>0gXPRGSQ1T1UAz@auMF#>F z5@jQO-2v*9v3k(LKlVi`VlN<@0%0~1UtA^`@I!`{78dXWuq0=xLs=uqjcZFovO=c2`BWTX_~|rmVmz`Z`ss@haziyX1e&p;a^?1H$e&TGLTJH<~Ox_^xVlY zd(hP@U@?X}?u5J+oBW|&Q9j`^PB;y)@`GngGLFt_e1H^@=;DXR4!p~b@SjGY1$gaF zRg+y&0c@k6MIo=b@A)yG@om@bB$wuiukXF}V{ZGYKm6Lty%bsFGtXm{|wUC zqyVsybIjNK4m9u4zi?~0PGzlI`%GVZ(A1n3@>+G(DW5LIL;b^)N%G=;1l;%-XNyE5 zKS)4bx&?UnnebuL;5W4eJ^kj_nO?&iub~C>?>F(Bs(KikUa)+9A8gW6@cbhIqH?yZ z@!4qPha`uD*MJAUZRA&0j}C|?N4^rp>wU(Ssi41~dwg=t=FvVMmfRgN^Tr1WYwKkY zON?K0fBSSej1QAE621HZdv|0Ph?anXa|FZ>JEE~M6;^v`!3qGjNlT>pOi;w+xIh)GyKS-uu=By}#GIkG z%OBvwB#lHf|Mc`%aq$e&-v{i7K=@Gk(Zz4ZM_slJRuIy}F&Sv*4>)w<3kzqc{(S%v z2>AvuVUmWSogbduS+=82Y YPDXq~M#8^0@NdjqMVdG!1N;N{8>tzai~s-t literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/APG.bmp b/plugins/channelrx/demodadsb/airlinelogos/APG.bmp new file mode 100644 index 0000000000000000000000000000000000000000..277c280c01fc3280bb4f4eb53a78cdff9fc3eb60 GIT binary patch literal 5176 zcmcIo3s{t87XC#cWVj3go5{6WXhPuab@A}Xq)uu$)Ki|c+tAqldE74N#%axy!9DsF80y410-LU%#`v z?m}C{f8l~9EQ}A?DQrg}d;unS@4W_h9@f%A<0b-0>ye}GsM~cAIHCQi|07g=-7frp z^ccU{+!`CJL8v?8bkUc~Re^Hl<;xa#HdMF;_|0>(?7B)7jT%c|?I&30;1SYj?Ng4u zIWLjm)41^yyKL_P8abBKm1MEdg-cYau}|G~kMZx=(I^NCkemdwJU}TAkP2-&US5i{ zG`EfhARmsQUVTZa7B>mZf{%V>9`j;1KN>oc&RwANOgeD59g2&W$tQ$SAK55Z>VYfB+_ZxI^MOXvajT^M_Q;?Z)NshRy6DI+Kmb^hfT_gW+3W=haSdxX%?=wV& z7Au`TOSm#%SyRa#QJ(uYhAnH?Q}p9B=T9_uK6wSwzJt_v2=xr19VMi#ri>Sj5<}Q5zjy85yZY3P_n=y=jvkN1c?U9WkORs;?RZ0lVM> zGkJO{cJAyVL1Ab252mHL)O#R>KPbAu)t`8~Gyg!ywL@YkVG4cpF?slNwCi-d;UCM% zGmyq6Q`RfgLr%yAwuW;SWVha0O;`a9X+@Bk*R7|xBqoa|6DVaCJ5+EVN`0Op2hjsV z*^aK8@a?x2Uzu`#R_&=W^T2@>#ar~-w;N8LG!GwMm7Ju#c+oO!Xe9z9KmX>gl17*# zH>YmVLS1sQ)}xyuFRu$0T=M~MLXb6k2Q!k)mwD@ejRVA)qkXuMk)JwEi(X@F8``2> zZ=jbKQ(z<{O|non7W}-fo>Uctb^f@3Z~Wm$lJ}*nvW?Q7XFvDuML~UO!tXfd<&pILRWcYTVjxYPK_)W| zh^B}EEVQ+9CFQN7_{roK#zgSoFb)tH<>@IL8VV&FE@vg{Uaw*Ni(aRr#}Qf9l$pF5 zyy@B5RQip$T4z53XdJHY?X83tl$12?-)~%<*Dy2f`dcgO=g-%H7YjD%_w6;}sHZ(s zy>LP8f(5!YYZ|t0H6RLBtf=p7-H!5q?B>(!^AP)U)DVt*Y%y^v^&SK=Ydu*;o44}r zqo1JSzme(}vcx(|b4c*Bf<(u}a}WjHPmhe?n40<=rOlylPEp=knwQNd56b-WJ6OcD z>nkex5}j6Xt?MReG%a8<@EL-C)X1uH=PcRTy75nIhYhO)LU3XK{uOY6Pe0LncqmXB zW@gsL46llcQey~raJ{-@7BTM?#3u}L@(tz42aNQ&^h7*?)mvMs-@|;8vM}}(aHp-+ z>S)lTj2Wrq-L)`Q3%qI5X1Z2RvB?Y)Q>V|9Zy1f6K-N}Dn8f~q+Yw^JpOS1rIuxu{ z8a-MAK0{(dAOQT8D@|=#K+Jro2%ni+U9M>E*RLWVK!x{$kPsC*{(dL{nxyNw90R#O zb~%Y17$Gnz#jb5>TdDLo9X>+G|4pyvw5xpJJD@r+A1DA8eE%cyM)NH`|EjhM0;ZXf z&PJ@c!BK-i3wwZG%e6nkX^->Y>eUTBx+`pn9k~EhFDV2-`;R?V86K{N-1bu7BU8r3 zX_}i`oi6G^_}2m)VB^j`Vp0G*py}#p=;O?Joi!X1f*DES@_%Ve0>w{su87rc>Uj!w zS^f^K`ipZlM=9giXj_omko;}%Y#oUSAiVuLgeiE+7rVMhevXg1-8Y*V03v@~K1b{q zU-FEhk%<80S6y>kQQ83=A~dF@(voGI?QYac6%ZXyjpr0_?Puwfi!tLz`)s?x%ah9< z32diB)c><*xmEnx7MEQAbA|2;rU}z&@S~KPAx`4NY;G)3b{wLx>E=r*vpFMvxWREo z?4yoA+DB>ZeiQNI29P#goTqod~9d^Q30in>T$*>S#8$#dz1 ziXgBL*F3jwIZ-p3oCsZr?D(OSzy2ni9KPMr5gK5@7=Czm7Sb?^IZJhKU_yffDf7Hz|JGig>Zvz1z5IRRb!#++0+ChD(>+dfUCD Y4dHd=@4N2k4pAAo{a*bwguem*2XWu+{r~^~ literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/APJ.bmp b/plugins/channelrx/demodadsb/airlinelogos/APJ.bmp new file mode 100644 index 0000000000000000000000000000000000000000..4d31bef2a81d42d9349b1fce87c3f6ae035ae29d GIT binary patch literal 5176 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 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/APZ.bmp b/plugins/channelrx/demodadsb/airlinelogos/APZ.bmp new file mode 100644 index 0000000000000000000000000000000000000000..8773c8a5aca5e7385d56a8b7f82136ad8477c2a7 GIT binary patch literal 6856 zcmeHLYcQ8-6#wn_{jjq&O|=yY-RL3|N{YyBk=zqPL{%{jwS-_tzbT15pJus5y0NRu`oe*cQ>CO7qA^+ zu1@0GsI8vZ=i@1UQ=bvD!xwwpT}H`BUYPeYY}FQ_{%P$v9qHdSHDQCM8qTJtiTaNA zHaM@;#EHasE^B(-fGx)Q@La2lw7n4scC?3$>Ozzi6>@#~twO9@FbDVV-4Sh6-Ywz# z);_EjWsiO@=j)zSR&ZIxonpSOqU1LJuBocT1}!!0cHPM5SuIh*?oE#HHeCzbpmr#j zHAC5|MSNt9n{hI)N3<{WTSwv~(4O=KyqM1yvW_4=$RBz$CS$X~YIJvX@%ekbJ>YL+ zDXtB5-he%uhvV1V(}PW`Rv_BfTbv`y-Q?f2FZpVrJR2vH;&D1P1=cFcuwJ4JO{d{l3UQTTG2NFj z6eHohG^R_UU^ZVKuU|YD_m1#%#l{uOJ{r>q4>zV?ibD)D2P4Dbx859JFG2`78Qx)-NA6uUIrgCBeb`+a-R}*1;X1z zpTGC__w$i3b^B^QfB%#*)t8-$+@qP?E}en=w^3cd^IeFgFcMBBN5;oAEh+*otCnM6 zU_i8!osz`zQT3xSjq>tBCGHyO<1vQ&e~M|Siz7mu9MIj_3F1EDGjk;c z9R4m^Jf{%Tq1+$J!7euc^~)EG5A7IVYJhUM`OO>7xV@HlZy67y!a(jT2t0RS zPbk(eo{yBU5F~}{M22J^1_y_0!>5jERq0*v9Dh8x&p1{c8cwYukB-FY-{n5#uZxb> zC?B&^5@Ekg<)b*=VFs$pe&e#Sd`fad##0Z=hxBBNa7uN{I; z_x*i+yzihp5!O%+>dQ_+-l=RZ%i15q@<0)duj={t0OM5R+pVUC{G0BE_~mTIaPM$7 z{SdFc7msI&cBuwa%<7*G)w;1Uef6x4aheQHGVT+6xtx8R^U{@~UdWj=^SCOp+E4M+ z^=QSLmf?I6*1Y?(3C`LYuw}fM@of|+uUAc-i0irMMZ45T(HVp_ln-VMM{as6dA|FY z8^dtcbj|_79AO+7=tqQyE6?TcBf?m%+RkH~5*{Mj%m48dR!y0JaCc{?-_G@UEUs1oZM;VfNa#de!*C4} z)(hh+=Cfp*H@^=rQv=*&J*A+dG51&|>noB+$taIPS?@-DM}XaWk^4rj6W%-9+i^H1 z8g{HtrGDWI!w_+)pr^6m!a3F->GA#{j@75e`j?~hl!K95++nd`Hnv%sqNL#3C_VLk z*{lxOv3f@}C5QE9gqM?y#~fHKrTRxbSx@&+&rN$it9gtVe_zxw+k!8oryh#(ooXlX deBT&fg}KsE`u|TU2Ba8}VnB+4{{jYpzW_TL6L|mt literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/ARA.bmp b/plugins/channelrx/demodadsb/airlinelogos/ARA.bmp new file mode 100644 index 0000000000000000000000000000000000000000..eb585d2a19912dd741702e3af68c94e12df2223d GIT binary patch literal 5176 zcmd51Dg?Dysu z7999nz<*b>&o9h57OeAj`@%fvc&Cf&1qurlfuzM(UIIQ#Y5CPrQ zppK)s9<1iAVO@S{Z3`yAv>M59s;k`gQ%!;|#l^4KKf#_tMtF zx8JeaIIe~-KG$xI%-gv=ds|e^Cx<=c2CJ(y+c)LE6rH*)c_=5S=c7!A#!D~KddhnWTj7P*)HyL_UEOJ|nAmS`9C)!G`p*1Z5Cc*mTzUk^# zuMA|xBn!mWSB$n?abI=b;VAs+cDWz1B1S4?1{>@7+1`Qz_*p6P%OLvdXaa}@d-up; zUy+|uKshgLnVp<;*W)qn>+4HON-8WY%yzc%`)2iE^Zk{>kJg@*rD7<MDP04*yED0h-5R=7_{%5f+1I?LdbQ_;n_;XVTpRct!yed~;yyp!#StSx6 z1^S8#dHPUOlT;*73rR^-{MP=ln*++HLbC%o`$~wqWKx&7*8u>ZIddi@CFR_?bFe^K zT3T&w?a0W8!|`AV_Nu^>xQHLp#$9p9WSJi!s}YCjPZ6a7KoH4-i49`lx7HJ1x+^H% z^ExtC5yX{%)?@#2pThV`{2|cQA_1WGW@hoT(@ARF*P+cCnx9Z*|VT@b#<9cCf|>VMf_Oi zX3a%5RHP!R{qUokrDuEda)wHa%6@y0!w^JDF=>S~*4XI2q1ty3U{)vQN>|N$@3~K5 z+^15bYAS*RaBTbM$6T|;uk4fxU>8z`1{TG}NW?A*8WR#Bl!n(dv=9%b2y>?MQwM#@pJIA^xn0kR4_3>~{%X z{No>>lNC}%n0Wd|-<9O#bcVD7(!H>8^x8ES+k=COiV7Ea;71flrP79m2BlI79i=Kary1Cj#FprAj0 z{`_s{mUwOM{Sy3`X#7tiAgO-v)acj!H%p4SGuavZa)!FJT6al|hpVepek2VNLENmJS15el0<|9OcoZ_Z8T~& zZ$Q;-J#hk@I4N|ou`mZvf#+KG;;rsRX(^5pRWNr8s`%Xjm(Fe^u2_hQn-#XIGe4iF z!*8ze<})0?j7B5UyS24-bad2fY~whXnVG>Xf*%Qj#KFY@#S*6m6e2@ii+bY6L~liT zMv%WcBp`duDg~+(@H1q1IgZQerOjru)*e6p)uF#!`Xv71;rQ91Ta%{o+W7c(>0%}8 ztFG=)DS9;OHU)d<{-tfar&sZW5Vr|dKqYZ8?rPf%dBy)sC`j zGkH-FnJB0MI0BzBkBxa1YVYXC%F0SjNkORN&Wj}X%C-z541s$Tq60Tb@A%DkM$}P} za67=`aLN!1?ld+nW2J|Q==bg6ZrpybuW+K5`wH-A*dlUXrBcE3$m(TZZ#>kxzoHf( zN4(<)U%On6ZxUQ!aU;;JUw6+k>n{A5K=2gM~gocKR)0q4*oiKLwI(?+KS(M-fbSO^jl{gcKh7ytOZ#(F=4lQesjayII(0h z8NPPERn=oMJQP3lqE1>Zb5@JR{#|@&`Myz$#Zu;MUTeGWdVJx06nq literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/ARE.bmp b/plugins/channelrx/demodadsb/airlinelogos/ARE.bmp new file mode 100644 index 0000000000000000000000000000000000000000..44e8a61e0b096e0ef1930c1c191dddf92a5a94d1 GIT binary patch literal 6856 zcmd^@32>7|6vzJ}a;PYR2a2O*5RXc+pfZ9-EeME$IwFi9;(%Bc5vt-0DhOg#MhhNH zN1bs-M@5uD?2#UnlG22d9%-92NslBgy+V4VX>&A9nxnqm^h=?H(mJNnF*7flZ@;&@ zZ-4vV+uh7tns*cUXEuG`NwS>eT9Qi;M&H0U^xk-zUw8$5b$53U6Y+67&1Nh9OsT`J zcq3MTcJ??q98V@YcV%eHg*tWM3f2NzD(_7(mc2OH|&-_?>54wF_@Oa(u2I_~) z{6k@l1hYymtn%~Dnvx-v2tx4_I`gF#VQ** zI-JzjMIvwxg`LB*PcJd`kobDo3XJ_R=RsYA3kMV1v1MliqL!Y*HB&1veu@f_QI%Nt zrU74mZ-g}0h8B|>t}e!xt&zWUdOR>&+~}}-;Pak2#_(kI@8=;m#d#NWRUO#>dmCal z)#0JVdQ6Vc!Gc&QJ!#+P`(&8`7yNX z?xP&x@iHC)6aR0u ztQHe*Ba9hJU;S|1Yls{<4zosGjr+!q$Gu~&<}z#aRbWzZTmp@<6f;JT!&Ev~{IV~h z-}%I@ScO|i@5QLc;C8zq`ei?Vj(Os#pzW$FwRrrt>9`xCa2H0S_@peTp1{E2upwWP zftJSle)SkTLro>}jwM1>Af{Z(&J1U-X{erey}k(%mtKjtmaRl}c?I;EaxOZx1~oc; zz>XjHe2wWCiHEMc8TyLKK)uJ~g_q@ipARVq4kBXY7(960WN0;ITu1cl0o+cEH$A;P z&_Ls$XAL75phJ{aI`iQXu zV(Ou>3v*JDll&8u`C{0t?Sb)J&Q6po@=%zagc3;#iX5jFp2JAZD zTB+qFm_1< z&Y*kDCD`}zXIwXC!4iu9F#}@C`eFlYP?m`S;~NSYhq$@Cdhf9yZU z>ubu1=UtJ!E`IB_fbRPFixE!wR55_q7kr)Z%FXy41;-9i-aHI>P71|)5{k(;8PgJJ zGR3_rFb1<{C}f~a**usyJDpfPCz>-!*!3ygU0rx_?xTGF+Ou{0IW{w<>|VWP)f$|x zt>Zky==t+^-#bh9l|e8SxH#A$W zuuPdvMUq_18aDy+Z<>PbFTajR@~>xR+z*SnH?Ik{Gp6B`V^=;HjprYDgtL#^_%`Rs z&Q^lY4VJ0UPOHv?H1jaAO(EYDai%52k}<6)k@Ein1YNZ_ zYaz={gq-}7#XH-N7*FNN3@CHcp;yb`^|1c~h9>5PapK?Eil~W`vAf52g!=wU#?@}K zVQusx%$Ya|ak1}myIH-!Txfsfk3+owdDq{HPd0Di=LPo8(`TNsbS{`X@kXfR#TR72 z#%OJ6#EGm#$TAN>K}<^op0Xn-B~j-eg(@!#)#S&WoxOXeU{@$hhuw~LQ!6@b_6yFX zuN_XhQ<+UI{A}9yo$%~(I(h$XG=@;e%D(Jv77N;2Tj8O5!kK!(fBWEY*wNf%K&?&< zMSc$Cw8t~wER|(KnMXWn|5q1^p)SaRwlo(V))wAx-*JQYKeT>*QP{x$AMBksJFl8e zjg&XCpps>vlsIbSVw4qSLqlB4<;S2`oeZ-3R~goCZ68i^WQ3QvZKYXSQWA|4-u{_#31`>;3=$ literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/ARG.bmp b/plugins/channelrx/demodadsb/airlinelogos/ARG.bmp new file mode 100644 index 0000000000000000000000000000000000000000..128feb974dfdcfd1ee7cb207b8894fa3a4589734 GIT binary patch literal 5176 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 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/ARN.bmp b/plugins/channelrx/demodadsb/airlinelogos/ARN.bmp new file mode 100644 index 0000000000000000000000000000000000000000..0db08f6c58ba7f9b8c87345656ec76e3895cbd00 GIT binary patch literal 6856 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 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/ARR.bmp b/plugins/channelrx/demodadsb/airlinelogos/ARR.bmp new file mode 100644 index 0000000000000000000000000000000000000000..5178eceb007cb2cdebb9ff22af59536104df8048 GIT binary patch literal 6856 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 N)Lj2Bq{wf;e*gz(4z~aR literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/ARZ.bmp b/plugins/channelrx/demodadsb/airlinelogos/ARZ.bmp new file mode 100644 index 0000000000000000000000000000000000000000..9159c525eee52a3f178c1c6c2a400f99dea97b42 GIT binary patch literal 5176 zcmd6r2~d+q6o3~bU<4sV0_wER^iry}DhlF()lNGjAX;k`@Zu0usE!&aNWD-oC<1Z| z8UzH9b8w*HkN_ftLr#+rL@vW6m*J2j+6PG z|FF0{r&^y${#aid(^Zqe|6wq{sg^AwVX`_^=l`Xs98V-Ah|4@uf;29c;`~gcIgQGU z@w0Mi5b({{phH@3L{ngP2n1KmH5+S~5+uHUT%1g@$~?M?$^;=0Qb{CwetxHfKKAC! z@DC332Rj|Oba3_6!IVi!^>tZz*~cUzLqhO!kAKi9 zqggFZZ>NRD8W4SObBHZ;PgLbFBsxk`zMe zXlvlL)F*~qNxDnnwbY50Sd0$dY{CYz*vxc2Zk931Xuq;1$klzOrF&POWO{n;I zw&SIls!D7LnWw;3Q79`e>K9kWSjWU4Pd&458G;lAirPbwshypanS^E=J(S zCaaLq5@fId4lRc&W|rA%fhR-%?^|$C8h?w*@{>S})zRK%h@DFlE{XDyFM>Wj~E*pr8*jR^ICYVb-woc;uxc&W7~CWVGGpW*@C&UESF7kMXhDyA&PPMt=6&F6>~lEwMqMX+3lLa$n|^O9Q|szAAlnSIaID(sp?n2Y6Q z)8&mdEa(*RQ!f|_r;sR5+rE@VOp>DH7AVNDHm|SlnTi)+;)iezVJybSE}nYU$?SW0 zjcxRaki9i?%fnrdM|+(l>k_~bj&8)&SC*tldkXnGS{vATGzosIO$ff~Aie!_*Jr)m z9pYf2SIxQ43Pk*!?M*&*dXpX#BO_zv<4v;>i!jjk2o zJ>Lkz-u~~<{^iL3%r7uvVS41wMF^rAq;cQ{ppcbt3;1_`jX)pbJd+U*j$^zOmE{TI zAJjn&PWwX;GIppzh6@oShZX{El5+3*wIf=+uX!+R;6-DIf88A|mra&a9gT`Iq9c;id6{tm*T74$Qd0!JiRHq?KQuH@UYJUcaF6x1jq`WNNeu4m5u{w; zz-dul8L=SVAoK{YmimguTK2>HUYQU42KswDTI)d}Ey}y2tr6lGJ<=;Z+PjO_4B-Gy zM;M`&lMg+~q0aP3&*r)c;fh=9pM%*42m0VpY;CA~Ui#>LBwX$wHQ<%m{`%i`yx6mo zD-?sRwe~hIA!T~sQ{w%Y_{AUizw3}0F%s|ebiMk(iQurra(#0A5NopH1A4kX^urbl KJm|o`0sjWV!(uf6 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/ASA.bmp b/plugins/channelrx/demodadsb/airlinelogos/ASA.bmp new file mode 100644 index 0000000000000000000000000000000000000000..41fce0061d7cfa669318d71583c39564e648c888 GIT binary patch literal 5176 zcmd^C2~d+)5Pnh=b<}#aRcq}`r!!Siki!GysJEg8R8&N{LxSNxL_|~&2#N?n1P>7L zB!E~H#VRUVs6y3|t172l5lOfd0s=YOFQ&DO+Ss3x&UE^Q|L6Vt_U-PsyKmoSp|Q>< zpFgU>B5x|7-4(><{El7SVcAZf*SFEb2A z1lg)dB$9zuK>>dYudc4Vu(7tRx2Nl`jOgrWdtO_{t1lM`d%?r!R^U_cvITQtZx6Ss zq?K2XxmYY}s3~h{ti>Fwy!uM+(_(H_@r&jLP%s**A2rtfE(D(kyqB1(lItlET^()p zl_lL>9U!*1@f)g3q48IVM9|*SKi5#eUtd`m;kL+b4hgc=eDdIi)XaBA(N7t4eP!l+ zm5QQVEbepGvz@Jy6v4#&TGBq6?niFRN5=XYCm(QiG*t25@RdX&{_)~r$h6lXc5{jA z(&33Ln^t~(te=U^tidVKZrIq~%J=$iw9~>Njdf*_?h6+oJ7w$Y z$w6k#{Dja zU^}$kxbOCRH5GCA8?|a;fsV|i?moT3pH{rDGZ$VZgN0OiFU=jAoqgPqG8CL zylbcW3ZXRb4}K`<60{*v5eg5Zars$i`l@VxUgKdj%37ObCGQ9Q#2y>q478pK*jG-6 zY?w|mj_(A$so|;nvX2qKlDtgW_WZ2V9!6v7dc;AG)KwIA310e`j%VoOP^dT>Dsiid zz=kAe(Plc#Q?4n!kI%~|c5j-A^Ed-ZBojjQO#wfSWl7$Z>c>B$5b)~Cnx0i9MLHu( z5w3GFUV@j+s6#UK*=Yx)u30e#^$fe*jYc7Xb25&IL_)u{UpnY1S3SxDXL{T=1ar5| zbd??lPWnc5!gA0S_I5*Hp!Kv( z>LiOJ&5nKy3iy$$ zbJ%n}H4^UFVmiL#MN>sl4oz3d%Xk7#KCBO8>L7r(zK?0FeS%y-^7qXqu}H{r(1d@t zn2dEa7_@Vf>Z5yCA&?Wf*?bx~vU6Q$duv_!L#Kr!-Ik5!aVr&zUnV{8>Zuc<_VI!1 z;{w*=@7QkhgdmG(pJlKTu5npB7(PmhWZq6cjG)0gl_htuF_fW=py4cFem|STTrk{5 zn;iBxJ+NglT;sZA81BO4C}+&QjmHMrsqe5*O=MZ)N<-m*Up!ZiyLm2Zhs8JWX-c$v zm*53dAnYh895!?N`bicuP!t!7ggr7N|Nfgo{N)RUUwl@5VLz9g+)G2IfH@&}BVrrI zoGTHF%ZqXx4F}Wpl~CBR^t|>7hwU0{uYv5{Mk%_Qkvm@2&s6IqssSg^fX--}v)(;~ZHks2OGqitvZSt)T1 zi$$V0IOPj@!}i|EK;nl2oY+gp0~z{CC<M*n3Tp zL(JmrL*@rqP3?YN0_AX0T^eBgGWFGu^8>9^H_RX`x|XlmL|{I$a}Abmo@3)8Kns92 ziISnxYtKOgr{F@oAEk{SWL5}%Xhm0_5NrwLbbaEqP+ADf3T}hWqHCfBI2}&=pk;3{ zl-$ikA%q+h{I{0=$)}?5%WT3$=xa6^M;DF=p=sbJ5K5Zgy04MU1-a=|?JmjB45b^U z9`vBPQ4YUi@k23Mp!B2uf!3;<=MTM}$_AyQjh~Z|Sde>Bj#+Y+Q2FJoQe9FwewjgN cby|5`w2V~kQ#Aj-gkRAx`Yr!|kDrj=0DLhtDF6Tf literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/ASB.bmp b/plugins/channelrx/demodadsb/airlinelogos/ASB.bmp new file mode 100644 index 0000000000000000000000000000000000000000..3c1cf0e88e680bc7c80144320c1b4ac96206d37c GIT binary patch literal 5176 zcmdUzdsL0-9>gwvQU%y^oUndB!{&iPS zKO^)!FZ8StdUdu8zrV+qS9SFYHI%Pjz1rB=$n+O~`kB9A{-l^m>o=?q3lB?3Ojw+; zm`=``oY9e^pFe*-Zv42S;-c{r#;;hpV(vF{qsBx=MvZ2#;U4a@X3rWMJ+`E@Bs?N~ z_MF+yE>2O=QJGnpthOM1{>+q_^!)?;y?wmzwzmH1<0upr_zMaOe0_aGJ0E|4dFB3} zp9{jUD}qj^3Ba#?Rv2+rcp(TsmzBw7vXGDvbeU3ARMaK>mo8m$baZeW?2xe}W8VCE z;2-AZ_LbLHQDdSwO7!^XgTEXsDlSCFe&E2uqC%{L73>DsEL^nE-oYMWeO(=MnT2F; zX{nQollyS`>4$zj6g@5){r0xDF5`dr@L_y>yi6tw3JMAf3rkO5@Z#~q@&|%;Cw{|o zg5-=)@ksdX;r)4OX`x}Efq{X3etwCGiH{#Y?h<}ZHYIL~ot@e|qxtl++Yr zWXH}ONYMF5b~f=$P@r6}eS1rDGs%LbNC*7?OJ!yH!t~TxsjPYG)G5~4yk!fsy7aup z|MKO_^z?M8pATAh~$) zBJocM5KApBEh4t*w}jMNufgBEd6Q`L_xC6NuUxtETG~bb|8?<$CpR}&D)sU4_0G=D z7UA9P5bph6^H!}|#U~Wju3M`FPiM~DIUOAx?*Kb_@+7o;_S{+0_1Uwh#k-2X%glUR z=hwrBVQ<2luVnJL@zFlMKB3{EVh;bWy*+Vi;^f%LO}B2nJqvk!LVWC$Sfw0&C~4`k zrQ`+tm-)wC?%%&ZZTd78zkK;J>ulV#5t@Kmm21B7KS)|zTce}L%KhaqTun{Q+aOP$ zJ{=H%@8#5|d-te>Z=U|P{eh=kQS3xUMFs^2RaaNr*x10Y6s=L-qm(*r_uAk#3oEXKG>!O(>`27v!s|tJn?bkKqtfL{(H&W~9teD*ORIm`HvfsgJKrnl}F% zNI^u2d*{rVjS&BrmX^MO-r1v)jqvoupZgE&=dCz+a8Jpeem4E!B%Xl|4&bNq2L=Z! zcMS{<@EYaC@WF!zY=;g2Fme92d@x&CT2)mYx3si0>up+FTdSN!2e+G>o0;}Dz0uIX z(9_FPT|+%)a*U`GJ~~`mTPrvun4n9Yok~08%OM(?8Y@?=5EWu#W7IWN=cdgShqUkF zfAZuBmB~*I&G}YTRESW^%gfD^AU=NAVj(R(5HpKjd~gN>C*>px9Mlu)6j76kijlPhhifxMJNz2 z>}AxeCrl&{@YOSrFy!(kE>-qZ8KFTG=xFO;2#Joiu0+S$%8E@zg((TKgu?;~{O`}Z z_`$}ZxeLf-^0>ITr%#_gdh{qJCPpro$>s86$Bw-No*_$pJ?U%iFoX$3`*zE1E-GS1 zu+%^YdxYetiLnVtoSdC;FUA6ok~OI6;SpiBwzfJF9d#|Wu!yjh=4NYas~-CL#Isp% zGhK-;2}1O;IMb2q>gww0>(SBI(*A-u+)^eSca@-XkbuPT_t|v z444L%VY}Ra=8D1(;0F?Sdy1TYpgbZXTv77^_!>+o1`a1b=^g)HAo6}6d>PMRyOjh5l~uG zl;RhJ_;8P;h!}riOloZ3u|pJMAhqsl6jX*$VtcQ3acLTKN3`PUy=OQ4-_+Ek zJPI|LUv=DYC~W-H@f_(XzT^Uq71dyh%&hO+hPye~JB}PVlCw59H}Nx$%M4cr@kKvp z&1&e4V!>@kDaYb*@o^`PpHS{7cKC5^?>Jy}&T58CfjEb`yO1eLHE6=k-4$y56n@B` jpF>GWNo@QH{GauwPvHmH(WA$zs;WL~gr7b<{{j3zMvcdt literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/ASH.bmp b/plugins/channelrx/demodadsb/airlinelogos/ASH.bmp new file mode 100644 index 0000000000000000000000000000000000000000..ea6009226e80ece70aacb6f0d073de341a6e4c0d GIT binary patch literal 5176 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 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/ASL.bmp b/plugins/channelrx/demodadsb/airlinelogos/ASL.bmp new file mode 100644 index 0000000000000000000000000000000000000000..a5ad3bd2afba46d591051ee9e13b58cc19aa175b GIT binary patch literal 6856 zcmeHLc~n=&75;i`o5Vz$^w^}@rnRX}G#V34V%54t6Jt_iT!JxbP}?eQ7+FOTPy)y% z`xX?9fB_T*Hxw%hDx!iYf(x7M$RdIw`|`8*UU;uh!BgWu?K#DBhTqKGWoGX3-TRz8 z{rmvPzftseFpW7h`qB6a2GU=^o9JbOI)-e}p9c>f^o;+K4eD#FRol0>x1+wcMqT&# z<>}(`pznHAmE06Nrk^^1(~*8XHhqft)@fv70yo0Xa0>2Ll)yo6Fs>!Wh)uOTPZF<> zD8e*a7JC%Gf@=m;lUnj2Mn-6<u5wlst3?J{qoJ=&+c@P1osiz=hlSx4A@zot^; zlzq`bdPJUe&}gT@bf&d7lWv+T{B3QtM`s9MTdR6rYiq}S6h8jtd$iF$&zl|0Y_gzc2yMx&p_cVxqc`*(3{ zyFFaK9*Me|+roRdvJ@dU`iKdzruttE+Zlg=*~Gqx@-Rjt@hdvDzt@wFV)c8#iCtTe zdEq#2oIfV~E8hkRu3jKK(2;%Lfa}8dMgIJuoiKP4$T)pa)t3tm=q{1>Tsj_GI(75CaxTVW1)Y8Q#9p#_ z1NrIKaR1vF91nKE5vm=oi{8gt(p{RJhT1!2WRIT`%?WK3+s^affd~00D>+Wykxp31 zyjxACORg*LW}7N@<-L7d*1+P!U&{LfzWD?R;hxB&*koFKmz(H2>o_RE=KneNF{qJLN*xy?6sIk6Q?C4C`pyY^Fw!1lFAlq|~(+Y4NXOf>K zPC7B1eYKQ6R&vRA91qshev55pGrHXKR^C;LQCD~`n}}5-K=C~UZG?#_v0*Uz%X5_D z?%+7T82bbHr&i?iGtQGupC?=x2@k>tj%UM>K;pgtp`Y3757P0U6YLGTzou z&lDf-B{9C+ak=oG*yV;rlzWV&T+fbD4DBTR>4Jt=7xI8iPxz{3_&d2oAcXu)kpANK1u9US(pX$ ziG9dUFAENH?6ZF^kZ)Lbc4~rP*VQwJWzCqliLi!kaIdONcvFu>2#x!AUy6Cgf@m*O zco|GU3cZ{ACVq2mRXO4FTQs+Ux4}dNnd{NJ^}sRAavX14O+Lp#9}C08fTkdm%EM_B;@Q!np^OkwIKG#$fOO57rc|j&NOdUX2-G_2yG`Pp$cv?<4 z$hK;y*krz2H?N|cYA4Gx?r&eG*X2y++d+8cIB&R0l9q%8QSL^n{FV49@nK?AAjR-Ygp+YXiw&|Dy|;^VWL;U54WDI`;6VCWFOU56 zb680^mJs13>s^}`OJ3A>_D~#i?9(uZrDWqf!jnb%jYjtZ#}(_);%Y@f7GcmUbl(@K zm-tNR%)`Bn7va`EHzU=~rMc;Z-E%2^`b!VTHedTeUmT!1R7EwL@ng;CpGmy3jwlZk zqW=OHD1TFrg-LuQ$AqA%u})%+<2x?YReW-aYMwdSjOz`{hC3Jt-kjSXMA-4Y_?)rm zOr*cixwf-iIFFg1N3it*n9)1<%;L;c+2gYg`&+?*dIhd~?8iu#)$m_EmHgC!4_u#u z2*VXU-1oTZze^Z!M)txt8&G{%C_R|-f_LCXdYtAD$64~9(qn3E%6iU52T~0Fj$+ze zbSQML=lt!=5MB#h_WwVm}xY?}ER zVfb&v_S~a*Q@n70U`x2cJWljp1s}Ml<334bXOb+@1J?W%w~KS-T+Vy$EpK;zqw~EO zBl*2tSE?(DgioLGr%#m)`$C>I0ZMYW=xdT5s8 zdYyaelp3#!{_cL88|o;}|J~1Nd9?P_?kjWd;Y)L_NPX1){|?hzTbjT%lzq>G`v~P* zgz(?P41+NS92PF73fIoBS}C+$A#WPJ*TX=#tn_YmG0kA0Rf|5t)#S~~ZArsJN2 z@t9}8xuvD`%sX&FYX|;Ltf2Z3LG_;T$7b5AQromV*(vd4&!0=5c9Qx5&H*jGXWrGW zd)?Mh9QMZY;lMWYSzYYaPxfceSfxv&Y$n>Hmr6akBpp`@p{d;d=`E literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/ASQ.bmp b/plugins/channelrx/demodadsb/airlinelogos/ASQ.bmp new file mode 100644 index 0000000000000000000000000000000000000000..75ada852a02ba194a675947cde43a7f438f4618a GIT binary patch literal 5176 zcmd^@c~Df@6^DDqm~tq@L0OtbC;>;oST0yoW85N2EK5Y=uH{m$(Ws-SrA9}i6&I>p zaM#h%8a1wlE-gECe z>+ie{nE0K8Xx% zy&|sYN{bCxsjAX+?UL?Rxcl0eUolTb->fhgnp;|$%gV}1OG~*o zH8r)ZYoB`a=FO8QPngfo&o3$}%FWHKsHlKhSXfwGT&z?o!^6X$J$v@z#fz6OUzV4b z*VWZMc<_MzuU)%#_wL=-uV2T+#9X;@rK+l`{X?wGNJ@$f{XEt7zeywg_3!1x;^N{SK79Devn&@#c!-UxaP21dkt%z;Sh?VPbXTYq)vT{#?n*ldRi0tg_l#~<#1Pfq@=g*(-+qVxr zQ&UsZ)6)|Y5-?D8bv42N=+Pq*fxIIS8X6ipI7^&r)n8X`9O9Sa(L-T11Yo+_$rEBK zMKK7Yp*irkslH}JbF`MS?a@RsQ>a>7TZ>C^FXaFZ zDIkbIz!!Am&R`7&!ZfH&AP_q|57{n;B6GJ_5cZ-8%;6waW~9}&w3uXa86l96m>}q8xx@bg-KIZpvtpr^5-6%+NuW}H zFLgkSKwrIj)!W;9?AWn-y`E5?F=Gagq&i2Fx-}vq0zw?`>0efA@b8=A*-jQXeI>i_ zQ>iHV0r5P)A^fr~P>I_Hsy0QPx-rQv%2WOO8PQ zWz#eK@8y{MjjNJk+1zYOk|haQK%x40y}+TQ4;nORdI!(gfT-?#|}#k4%9HUW|{Vf z4SAtE3&8(x{aO(LD@^{qh7L%tFBh^vrB=0<1w=0qivy|lE-o%5B_%|}s8OSK?b@|+ z(O2M!J9n0DJ4<@Bc#?A{K?gzqM=E_UO^W$;k;@96NSw)uIUq%RsSm5@xd`3_@0L&DvE>Z36+-4oiGWju$E&8}AbF%B3nvD07?g?2?Q}bRP ziEpFTYVnfri0deR(6~!r64-zU{U6Sx1ttV&km(xWV=`J}oDUxnnBo!0vK34kC)SWt z;uK8l`qSGJ(i8$gAG*VY=vMImb4aeaQ+glpJANcIrcFp^Po1tz$O5%m1;}&!e|=cj zpVumQ*3iF~n%;)+4hl#!nas{7HNZK`@a|Z1aTYB2@n|tS@LfO_#Kgu3i7M)k16QnA zK@Sgy7^b&dw{9IYo&WFN4N_pojva8AqMnC_hLYa&JWH1@g-Pu^c<>;^-o1PI1Slvd z7%^hRz<~qF3z!{@cJ)W*=O0U*ZDmBk^-JcUVgU7|x2Vo**312<)YRP*w7sXgoC9@zm%5R z$bLFe!nSFeGyx0vbP?Z)jvZxOU0o?}85tSCA%zNCP`8COd>Y!>*#!p&^GFN8FF2Pj zU7}w=kT3!B_-cSpTwpsa0?>dC;{H~NPw00|4qcMK%S=t3 z(fEdpjf#oF3YOmm1TCSC%OC0Pw&?;nk_?SVurFv?T=i9KsxX_Uxexq8Ea* zc=2LBeh4Mt6V8z%N35zXGC!@qu=IhdCN{D%G44OSs$yhL*w!lxDz=lGT(zAj9@{{(R%ci0EFvy$J7FeN((3wQ+TM8Wn5g6N+k8myxL literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/ASV.bmp b/plugins/channelrx/demodadsb/airlinelogos/ASV.bmp new file mode 100644 index 0000000000000000000000000000000000000000..61915eb5bd7147fea5ff47907afb2e8026197cba GIT binary patch literal 6856 zcmeHKSxlVQ75)H&ZEV0PxJjInSZUg(N?j#sls-hM+H_M@HEz=8p;G+NJ#B5NN*}69 zjoKvjg4qWH#&&9_b>cQAFw6!Fi)|eC-6RHPSc2KXhQVOg0s5Ug{1*l+yDzOObu9hd z@jc%?_nhyZbMCp%eXnX4)W4_s_fdW?@r&UXgx&lLm?$57#P_KQ{#jmL4txO)0x=MX zfj|rdV&H!|23q^FQPm!Y%J!r1-0I$7t9!sg8RcyUF+SA+uXhIZ9VX5lL2KVXHQsZp zOW`Woj-dB?xt?$S_!Mf~akzZ-bqtQz>3O*$7ni)~8qP;y<9_5;Jr8sBi@4nSI&RGl z`r+F9&np}2I*!8k#nYZRj7_=xaH6wor~vu(uOPePTl~HbYwbRK*zSUe^m1yT|0}z??cU> zF8LC<8rFF6$6mJ&aXCPIE)?!4#{@HQ()l@fcz%Y@*%i;>Fm)&80Y{0K?@#9dSO0q& zGw+>*t?p$cn!|_-K_an<)Fr)T0`)5=@;Q$oYC@b#!#{)49R)H zT=!cwKRMk?o*z(pbF03iu|1br@z>aY*waWqeDXB=cH~rk8|JF-;+P|nHgBgd zVa%;sjc@8ch9vTtSrARG9>ck^XUN@?kaIC~8e?(ue)0y!-)6?~MJ;zW{gQhIaefQ> zR`U7ooQ9yOI}48bpQu<#v4*2_(57`7d&)Ss;9(wRaGX$b88ZuFVX}weuf>mGe#L)l z?F%YKPdXpQ?EJXawY0pXeh-XQQ69?kh$4sgprz-G(z&oWjqc$BWH~>D3`c}ItETQ% z|Epbx6xS(?oATDzwBD-rgY-F6$*S7l)bj?X!c)hf1xrf{jKNusUX3yQ6CRU^OCo>H zrdO1FdUgcI3wKd>FwQZ@Wxe3<#A&i6gy$Q@^Lv{9MKf+gaA{pVG4@9(9;ewOFgkHX&xbt7 zR*0;mS@KZqjKIi5vtB1U(ri2K$fGgNwR5&r&wleQuW=&0`ACJn=_K})$s^}r=59VF<4CMx=zBpB! zGBypnhCKCaINh)3*T(6;!>RO9>5drXTTbOSSl=I0oSLhCpmoZgcjT0@l)$*I>qt>+ z+=DsltP{<_x)(6)ma*CuukQJD$99}A|0Zi+A$y*Azx@QKa-VU3!ugQupJwOBFgNcZ z&R0(xyE4?hZL)15zxy_4Ut7 zYgFDyA0fT6teIjzo8h>hwRju3+XPF^OXwf_07K)|>{ouL;#d4hFo*IEzNB^kH#qGY zcF_M|bUtdenjGFsK775r^!&%{v3@;WUiA+tr*6BUI}-8c zNIy}2m1 z&U@^DUf0-_rsfiIBhlXPpTFzso+| L02lucF#!AvhP(YL literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/ASY.bmp b/plugins/channelrx/demodadsb/airlinelogos/ASY.bmp new file mode 100644 index 0000000000000000000000000000000000000000..ed839a256c179abd332d20458276991575ca24fa GIT binary patch literal 5176 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 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/ATN.bmp b/plugins/channelrx/demodadsb/airlinelogos/ATN.bmp new file mode 100644 index 0000000000000000000000000000000000000000..890f29ebc7b9ee15b42f74479cdd2333a8a88108 GIT binary patch literal 5176 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 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/ATV.bmp b/plugins/channelrx/demodadsb/airlinelogos/ATV.bmp new file mode 100644 index 0000000000000000000000000000000000000000..17b5748606d609ea31fcc29a540120c4a2f6a87a GIT binary patch literal 5176 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 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AUA.bmp b/plugins/channelrx/demodadsb/airlinelogos/AUA.bmp new file mode 100644 index 0000000000000000000000000000000000000000..7396adb2cbc9aeecd8438ebc86e69ff6f1ef4084 GIT binary patch literal 6856 zcmeHLX>^p;8Gcv-Sp*W<6(wM*F&s*yfGjRR1%wkex0d6Ml~%+^5u{YyYFk^j0|BK< zp;$y4s;9QpQd*!0i7YAzvY5%tWF|A&Cfj5(lVp-f()YO^H_7BAlL+y^4|C3!JKtU2 zd+&4K_j#ZDO`du58mPZ9@;_dl`{n5)Pbb96e;`HL^Wuz0Rmi{k`ugvlD+B|-zpl-* zsH$qcPkY9PI`8J=Yie4bt2H}yb>EIZZTW*6bCYs#&&(XW{6bL>PQQAo2y>+E(Rq28 zIo*k4M=DWUTaRacR)FC*WnuR89GpGl$6If@k(A`bs@IEASQx-_$u5jZwByFuEXR+^?c2(*=VPyGpL(Z5VIOy07H%41LrF;FgF*czpPSyt(I!cxXY>RCB$VZ{QmSu zWB!rD?3g&-fdMfVM0GJ?+C&FTrfNL@Tp=Pmnb0#V6K`%TRd#;!YB9pa_SKPQto>a{ z&>r{x%d7Su9c2dlwHLRx`mJAEf~gaoE!w+(b}k~insENSU$xVZ`t~&A{5d~-zB+7N zUy6t@6P_1e;5@1Cd(gj^8D4L#dOvs8FZ;>F4)HOzuU}J&DA}*YTrECd2h9)k{k}aK z$LTenlXbz@pBB@1Go~K$x^2{nX$Wa?|MV3#Jnq*BA)YV}xM(>ed3QpueB;p({;N1>a<^tWvss= zyukXkzZXo!Ckpa{v0L<01JfemV?Cbb$rA>q>(>~VZrV_)xM1Dt66A`n{_`JRbQesI zq+c4Qoa-+;J?Ji&Mszl*9MN4aMfRhb7_-#l9=8( zE;Od6#J9+U-Olu_eWlf=CU)yE*^nwD#ClTVaFD!4=2~GR7=XXJVK;`i- zE^vKrP5|@+>J>e{RX-IzrJiBG^urZ`X9kuEzcPohjvT4=WGGAr#+c#p82+s1Y##f% zUYAGG4L4lp0Qt3sri3wMq*z&dB8t|2R+f61=WZR`?a!OYN_U!9@uASO!{rY(5wc1^oH;u`PAnP*653$b|JEB zCWs9+1G$oGquyW+(tOGsq_qOuKazEF-=B*%)q7zcO%$!B`G&UoMw{{MLgU; z{6-sIeX$64PjV>#Xf2;t_-bIcd$50>1G`c);VCn8zH{rzwyz&>u+|;|bijPKgGbwGKEPly8d?txj;dwXTGkM|Pd+fMv z><5VIwpr#*!4DEsk+R_g7A`o0sIF#(Dc2k=xiGSGCZ2dCACBx`-Pzo(e&?Ne+9apC zuSJKOG4I~IhBa_*+M!m@%`xoJ$9T779rvp3uq57$pQCc0)q9~YZF$QrI@E&W;{SG= z=zg(F4Qn?0QF0-d9hW$!P1+$3SgqCSOq$xylsi+Ja5wdqGWK5-Zku&6s3H8pW%$@An{)9?M_YkL0H%Gc!n z8zcFiKEHkIrEA~j^YH#fAJ#ZGZ@&`WYecVqeXa`YR=d^xW!y-+%GbQ#5>H~o-;BYD z|`AW&gl_AEr)m;CPeoFl~+L=yu+Ts6Tk` zrZ(ia9_qyFMQ2if60a$DII(kwr^S8o9z%|wAl%O!+tKU$ruJTYxmY;vtolyyO~-zl z{i!{eclbSn_u|y|JlH6jCQWp6OY_c6%Egjr+OIoWve8j>r%(BjEcq%+IJKi}UJg5D W!sqpB_1C2ILm@ePE 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 AA^-pY literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AUR.bmp b/plugins/channelrx/demodadsb/airlinelogos/AUR.bmp new file mode 100644 index 0000000000000000000000000000000000000000..0a32b25cfedc585bea323a6b75b86342ea3add85 GIT binary patch literal 6856 zcmeHL33yIt7JiL(EY*%$I%+y)W*GZcL`7@ghYAtd6S7E96JkqEY=yZ|>iHZ23& zMkUdw!Ee#4HuSQo_ZsXPmejH7Lv4^0f91J+=USd^{s8Mb#bEzIY1lO?h2C|4gUw5) zJeS><1xwvWZZ77J_e9q!5dTWTR`B%hP!-dBdVv@YwWlLy1Gi0Qt820YmN<{dAz=z}GuxW8Hn4|e)5PfW)#)`Sx*RlfoxBDZK z5}wX2$M;3T$>J@oDc<|ke;qxg!S(nn5a9AL26XxhY~&fAyI7V(!j%iSel-?DdeqV9 z4o%9yQLf%~i^Hl0FnQ1?nCQ^~*0qbN%^uZ(eg9gI=wthJoUyhR9`xR0VoN;A!>y&sZ}u?e?d_Y_;oiD3`idQndv&NHm|Zn6B{#aadRN9P>bQ5u zsz|;OZ;Z1hoST(3)->(CEQVP()Eda2&-wrN>0V2DnCp7T`YFjthRxXM6N(KnBc>xB zVmim)#fTmAfU&%PKS$@08^~$o_9tUn7Nebh8KwzWVh|-`tQz`6^3^Q=bk0<}9&Z8#LSPB=<@ps0V zsJ*zIlz^|E z8axMDnwdaB6vtUr_(fPt>dA z*c)UW``X$Zh0X@@d+gTl$VyyZ5!vvu{(Ya?ZbZe`#cQy@pEX7W3ukKlZUWvb%@51eSz3fhjL!XNXG)T|16l&N9G>24C|S_l>Kpp z@JoJ7e-yn#Uk1sU#@WK8C#V|+iEnFW`C+Z--$7lfneykM)+j7bO|@1Io}w?;OApy7 zX9vzR$AS46Ao}E2jFY9$`M4 z{4A|JOdPp?YDH=ee!t+nX+GAfKiMyO3I9fh%`aeg>R>B9E1SpJBdJSz%lVnlcvkn9 z*o}8eIcp=A`aJ*1ve>nA+w!g8tJV-d%*xY#WqNEzO+wcd*pGQ!87E zzGgloOP_U;`l5Zt&O^@dgS*wlC!(2|KN>r!dnbt%HSq!YPQuw zOcCs;@1yo^Gsb8$T+WU`567ul&&WQguYm2sX@cDtbb2CwO(BQw-fWM<9(o&MK zbdnclkLZq2zn+-s+e6M6F^27!Q%4XQ&`-|=jIn3i_b|!3D^48PfwRZ=fxUm~-+Lm^ zvm=fO_tD<8A=Y{h2_D!D3*?&t`FYjn!xdZFAkKdFAIceUAs#$U=hu2a zB{dJuUKyxuk%~IaQqkTj9TzSY{3h^g?d5-Eor6bmP^)PQnzv7dWrtMMXq3 z4!jDu-%8Gfl|wpe3a+&+QefFJ6=$OF{~uG~@#l%(^&7d^^i?+2M`R-=_SLL=;3sCi BIKKb@ literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AUS5.bmp b/plugins/channelrx/demodadsb/airlinelogos/AUS5.bmp new file mode 100644 index 0000000000000000000000000000000000000000..404e2c16b1fc51de7b2215b75baf8f49a5ef6c00 GIT binary patch literal 5175 zcmd6rc~Fx_6u^;sRsZXBI%uaV-o?@)I#x$*07(cC(hXrE(4lo~XZ&7vH}CEDHsAa0+iz#T7$OdS zsWB%9K)V~%UqDrMt;&b5k_$J~OKTWp2@^f8f0` zE|KzuqP_v{_=H&9i^Jj0dU#GxPsgy_c-5Wti zqm0!;D)=KV`Z_){y*&HLv(!ZV(~O$ZLUKudRq=~@a%q1Do!7-2=xp!rY-e{f2Uy*F z9$P3F5{--~%jl?3C>#@s#z%$Y!qHKIfY0Ohw9_YqLNFa**MS6o37(*}VPpA=90n2J z^`?SJF5}b@8GpWdnSxEf8H$St3BPjrinmvYpZ9qW7x&ZlPPUeIXq1zcMbU#eVQY=J zvx(P4VmFXM>3d7+tt0h9KH+``Rby(Zi z*{r3uQVgE=A&z8ZNGuwaj*m@>CnhBlnN%v4f-CI)R;ps8MTISs=aB$MmJkjX4+j=Ul-WOX220iy}kcUdDq^2!ObDk&n*ob{yZ7`mXO;*%zxM1 z0ER$~=)h&9LC8z$-UGu7+Roudb+6&e(^E>Ml$Cp~A05P(>M^ z{3yuVEiNJ~Au=>80e3Sz7<(-|B@UZ+v}@^0DW|pZlR;k%ia>dkEQfrofI9f*KNT*_@Zcw7> zQpwU1=V)1JY9fgY5|KbaAx?fBzYdSz$PwVd@#*s%ulLf8P43113BS90@A>|EzCYgQ z`8?0=xv*J&!bvmvoWk!?ex>Lx5x}PqqsScNul(L5jBFAkyL{ZK-@^sa*N1|9T)8}m zTUQtU%!b9Hs!TxjI>nLRBMyeS#azpq?|!-FDlJ41Op8u zbA|NE%#gCOQjjI_nU{l}o`0K4%}~kX_s<%pPKH6$r>3~aNIwUosEm3S9UWLSABt!+ zh-->)%zqj_qp@rWemgA^(eeIjS!ZrGd=2!ayp>}L>6n|N&A)dyXX`YG zT1B)>4~D-No|r1N5zFaiPClhsdOGsBeg-&nfKf}H4|R`qG)c-6zQUeeETDMBQc$vc z2bR1*xoxZ$ivPloNk}^j)^aLnx z8Z48gTCe155{_tK6g6)wmwUk|$~Lc8wdc;#xN1$L%CcX4$kNG576FU6+y98?Tkma*F?DLMSTmR|M+xrQlZ z*Ba_M+jVZ4ezMf^4R=2?TV=D(Q(GIkO7l(FLy76&H)w32Wk>Kt{SctDe&!OkkV#nY zH!=fro%+ub=TYu45jxCy%S49}Wbep2YXYw-*$s zElWbilnIzK1N--3j3|s*r@FX);^SC;+U*$#MscB>@vM(a#G#x8m zS)>K>Xf&+)8R^>u+5R1IXm97Bb?0_9`r0U&AA#LPgabviS*{N);gS1osGspF%8~dTvNAmi?QY!EgrY+CYrnhEU_7rzqlM|q_`!6y nlHH#AZx!Xg)pMJ0`|u8?gZ>Zo>nPjha;JV*D@Npie*^vl8D0j& literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AVA.bmp b/plugins/channelrx/demodadsb/airlinelogos/AVA.bmp new file mode 100644 index 0000000000000000000000000000000000000000..0a17eb5f6e52254708b99cedfd66865e9b76a6a1 GIT binary patch literal 5176 zcmds4X;2hL6mIauhzc4-fyJZ56%+!3iU=x#C{d%RD8UO&nZtN%suH}SNmUXOHJZ{& z(9$I3l|(IX%fut1h2nvl@{YK>GqW>0d$H_&=NlG5bXk%3N4sW+p4Z*4-}m18UN>oD z26iA-tv}vk{3hWii2O(h-h}w$qZj@PzsJq}nl_Wcb>w%`vN@WxzFf~>Ix}9erBMGY zR`RUqHIVGxZWt2Hwj;6@L=xVF`l_Hp#XG#>dfo6}FSX{4Qnn|u4n!7AWRuhRTi0z~ zk$Z$*@Y`)J9}ApLAA_|+CZo%s_ob(H>JvSO-EB6zTu-cX*xZ%6=WKcZmhHp=(~ckX zb0(-d5m`$jd6US(no?gZt8jXcdhM28@Si?rPK#%AhVmL!osBoH)g|>~SIpC5_4?Ji zL5b|TRk|8YOJ`|P6WB}VERcM+LKiQR_YPvFW-5Q(q95LmTRBgw*SRJSQ;tql&=SEY zI4FONDx*Jl#b_&(FlpA0b_hftThOhEw0m<}T5k8uc{@RY(c(WX$M%^6i8Pc@6H@rJ-W-zf z4I<4=6YTEMobE_u5AO;~kR7odm;fTZeBR2lj)YKo3nC3CR8j=nBap^IM&^iW!vqo8 z=mf?1WFCPwQi!J33>}JywMDl2P=ItGSX|c5vp+bl( zM0isOCi-yyin#)+jA*VSp$ZEsL`~_$E^?zm*amz7{tKrqhjtqg)#za6vk$c2uc@3h zRs~ni$Wnq$i04!ILDaHK*1QZJr2XUPI*H0sj$VN@_Wd|lUASDgG+%=hcox4(;aE6R z-93OtqBSFu=~+sP<@vB{{NNqG!{N>z%mc=v8EVNxd&yY~OhNqrxn@O%15aiQXVkkg zV-(2k{O|X&Kp{6E&gQR@HNaA*OEp%kSFuOHm8d%|e5xReSf z&aeZ!j1kRfaqC+CBk#rzP_(OJA_@oGeRz)$i5F`1;zvzFxDcO{2Tc=*EV@}4I3EjE9&YFef;x*dbH8`kJFYG=2m zG)NTTPYsFW;yN-di8L!-0bigZf-fimeS(;YsXT6M@gZ`%-32Peb!D=X`P|{kLETu) z&*;O|u=>YBJu(qx2oJzxuNOk@nOrY^0mf_%N>0BJdAL8-w>_iNI^lv?v3&Ic;c)V_ zRr9q2V%c3q#&4JFh9`5E{;oRzR_gk6VMP8^xE~c4%B)>nfm;LOKQ4(!nOwiRazq># z70l#};BQ_P4nMSOCD!~2%9sv}s3|25rsw6VAw)G9*o%eNME-PaC;8kw^@H2h#|?s? z+LJ}j1AG{v!kbZLrPZpc^fmP53;(r?*3N{&g9tC2CK!a`Z1;AXLabQYapQ8W1vn-+ zxr3n`2EBJedOemPRIm=*6l%{4S?E zJ6VCE+KNa|9~A;yU$a?V>3ulx{K#)F%)t6|`j($PVMg$QUkHA43Ze2nzrIml_^}3u z@TZHkg#|j_msy+Dotw^g4WiB*udaXf?f0_er;nO(vH(AB5L1RVhWQ>#o`b*P=7Jh( zMRoOV_^L+FEG@Qlslp#bq`QlrJ~$h$_NC!(_?9naCT>UK)(j}nt2IMCsxFF+(EO_6 v2h;^qHMo6zm?PXi8r@!D{5P-Ia4_Njf<}YK!dDnStlzuUi0kA3!cWM5-Hk-# literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AVJ.bmp b/plugins/channelrx/demodadsb/airlinelogos/AVJ.bmp new file mode 100644 index 0000000000000000000000000000000000000000..800923eb4a8cf60fe5de9f1a645c6342ff542d75 GIT binary patch literal 6856 zcmeHLYfO_@7=F~5>5^%5&Z)adG8N~x=*-;BAKRRpb82+P#dw>S%^6V_-9#-2UcsSU zi%_frGDSdK83=5cn9({d%R#-W(YT$pU0fWJS*ti6UO3P4O zBEr?Hk*E+?LM~T8AP_=QU5(;m5t^HunLch+h@sWCBP~4xYPA}>rYpilt*`9Nf3W+N&(7M-0B2Ayj-IqmB;L7C+Y1@T#zu3D1|!*xkSi1e@o#Q3nM}~@4e0Idg{HNY`I`N@ zyL$$mXIMFsw*Rrdtx#Q+@=f(@=r}h zzUwsHmp!Uieak%*_yj_I+rqbrG%DbQpe{$q_^$|!LxE=ydLG8K_(}pw0>V*oB^I|M zlLpSHIw1q4!PiK)eb6-upe*o#sY}n=)we=%PaMJCHC0hi75U-5B!+yr=HEKIjDv(j zLjVqtZV%)feF@sT`2*|iq#W)x;REpJuRsYu3`u*A;UFeJmYRo_${IM~4cKEGig{O9 zpTGrcaQ5xRNZjd!Bbd(kF7msC<1fra#A-X{(?T33{|dCp(pmj>_!{J$90#3Jh)h~X zP5e$6)m3b-lIWkH68fWz{~2&tQB zfrD3x*Ht(^Y8Lo&SF*PFZ5*7Pxfo%~x5Iz-x6F2F(Pr>wFNM0Q7AHp8!fWb6aBaSX zGu}jlpq%-1YU`Lj>N1Y8dUII_vYkeuHgOMeIsyWBTXwE0A&+q-@}Gx1mx(B$(s-{5 z+0HMbGISMW$&P5gbp;)*Qe-)eCfiD8Ycbo1w@e41KIasQyk?+0_zO1I<9AAVNCcub z?m*m@y-y&1>psM6+JmSKI|+8=H#nlH?P-WyyA82F?zB$_z4R9GV2RSEsaG$sU zLjO>7QEqY>^A56(`a+Q*fFq`$zMvH0%XYxm<}0@T&~LUPbjdbEt^W<@=B{A*s(()< z{&P_tWZCBfZ9Ot6_8RieptDT|5${73dCy{Fhw4B+5KDNj`HipiA z9qv**o5vJ#&9<@3R-f(4YyywzxD&Y!lIuTG9892?fAagdh!lDngc#?#45%-nzI1vYY!M^qxuiVgjnJZJ>NHm1(To*b0OCHfeYy z)2r;JJsaar$bZ-l&>4J3Ibss-OK&2}aWtKiE!kGk z-C~DcQ#Tu{xk5sB)LW#9sdSIMKEyEJlP|M*&75ka3dHT=P~Q2A*@S+Vkx3fu?Xl#L zvWrp3JmLcZ_fO>h!Dl`uYRf+1hjflRx;r|V%^auF_&vnK0mxH0^uC*Nhbvm8$*4`T zhcsa~q)ER+S>#V+TfSvAk~q?;9SkkvfiYyshb_L;Uv~2#+8YWXPjw!!$x|GlsZM~5 z%AN;0=#|Cf=RlnAB0sV{%v0vvn&-wxD(5uP9Xy5w{jq8-t^dziHDJ|%RRdNHST*q9 H*8uQ0#mV55 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AVN.bmp b/plugins/channelrx/demodadsb/airlinelogos/AVN.bmp new file mode 100644 index 0000000000000000000000000000000000000000..87432e5eed12195ab31d5164542ac626f34c455a GIT binary patch literal 5176 zcmdT|2T&Ae6edn4GqEKqMq?WtEGS|Zdn2Qc4Wfu(#Xh!R#R9QJ)QAPaf*6g0*sza+ zG*eVG!7d_qT;*=>jytaRe&kyhPRIr1ZYHDt!|ne2_Wk91|9jtiOW>5j-d=B80It6H zh2lqwKJ#jgtCv>;JaogI{8hDzdbi_872SPUC3JJWM|=W`UiIH&@FaeVCbaB3S`2a2 z93~K03`ToR*{AX327ZEX>F>{)J5xX*g9!`<`>7Mk*M+8_3H%$^)p)c7k*rZa1XysX6xn4N;;yT@NbC{xACTzaxFOa)ho+hJU0&N%T_6E)LZH* zlUe)vu?O^GYqj?1jS}ys^gXepk6gQ=E`DRG(yVE-Drqfux0Gv{qe|=^evFFWFAE7K zsNq?6wC%nr5fGN^SJh*Nb9tqfem&Vw9~-JBC-0z!fIe)efZ_v+<4*Qgufzg(>Pa_;us#xIrH#tbjLaZO`3J7~qG-rZRWx%Jso zL#MWkr%#N5Be-$9Yfu24W*Rw!d+LM&K9U$O8#<7a@~d*=dhy(F;?My(h6{xjyS-vy zA2!TkG&{NgI-oD%TG2_Z*qOP5o z2%vSrA|Er1`|^bmGfW!Gi``M4eo^J?!%R3RgF#`M1939M&cl4YT5X3iI?Wr=@D?s} z_>lZ@L8YS=78(yH$ek;?)$s)Xr3)&60gTyUM8s?|9oX#-_nkV?NDq!Fc3SSyG zt`k$M0ts+lzNGeP&-`JzDD||mxX1*5hPy6VAcW3?`}!GEiF<$Q;SPAbbyKrpjd^p?ZmCChxnfq7{Fn% z+smV>&Oa|#H$Je`$;{X^lR;L>P>X!)|LAX8FGd)biLA&11%Dd|!gBGvs$*NmoG<~X z6f_C*;nlvMr8c_*jF=cNhY>k!b5^F-y9w>;Wp!4DCU^p0qp=Me$N{s!=ulWZU+C}4 zl1Xdi-FjNVL;MK%MG-=f6P3&z6%L)wj#THm>Z}>W>=~8$@@}qf^iVErbSFdG-=95W z8iC;V>%v;GRJ3)AWLN+vJCn?jGeb%Jz>%eA&nOqn5iXiXh7ZCaEmet<0iKVVDq@y^ z3O&%_w=L-1eVDMI>+0{7c!(eKqTmAwB_~zZLba`gdKpJ#G?3{D<&$4$=9P3c`rD!< zVbcgE)4VxK3{N=_CvDl3j+lyEE`nD>0agI>-Obar{F;tjn0Z?(5?ZBFYrmeXk`nXQ zXbIv4YM>$bU9(2CbEzbcx|;<(#}7Vh){vH$OMVX3)~wbF>=F_Frl|68mM#dR59 z>^7UjWPTU1CbI*2U>r={vM4S+YO`E_Anfjvo%6d0RtOZ?&z84!|7yI8L7)EFAv0F{Mbc>(_|EAYckm$&&&j%nBxgK9G9=9s~bh z{MC^-`@43OH}ERjyrHsiaLQdfKnAMAX9d2X@88pd4pAeG9nD3F1v*55G$H9uf85E2YURHKRJFl8EbAtIa_b#jdaZQ-Xg3{sRjm-berd literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AVV.bmp b/plugins/channelrx/demodadsb/airlinelogos/AVV.bmp new file mode 100644 index 0000000000000000000000000000000000000000..81ce565a8d302c6fa4dc9e1e0a6e8a57b55b49a3 GIT binary patch literal 5176 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 A^8f$< literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AWE.bmp b/plugins/channelrx/demodadsb/airlinelogos/AWE.bmp new file mode 100644 index 0000000000000000000000000000000000000000..26b1062b49efd978aed26420dc82cf52032ae811 GIT binary patch literal 5176 zcmeHJ`BPI@6i%IKe`vK@hj!Yr(rT-fVnu~&L6k)nh2p{@E-Wgb0)k4XphB%h#g@7Y z$i9|@Ko-Ix`x-$6Q9uMi_BB8PVM%~Ml75c|8R|^`0=P5p=AQ4Kd+yn9^v!-!qRfnK zm^a|F!bd>wQ9j2^p)3KxT|#~{04Dju9*g!b#(yDuU@`v}a`ff$#rV&}pFhx>k`$2? z7syGBNQk;$`?Bnvw5WUaJTW#PnI6WZ1{Y+pCMPEp3^JL#@>vm!7E)4}F)kL#WwNS@ z63AiFLaQoEr=?QtauOps^zdg-a;K-K6jaSd^EMlo0)( zyd-a0It`@ZbrmE2k#I;rUQ}M1pOcNV8o|hF)PZI($TAJ!$Bby%1qK0OtC5(*@6Y(GD>#;RcceOF->+KvF9%9kL zc5nU!=Vy)(6I48XSSL9lVnjID&+BqNqUYy*S|*b!7zBKttBp}nZVHLKt}fS6UFPAm ze`t^oWRTxyZ}y|LfeNp?9qIzXEuLr0^*1fAt}G=O1pOBr%=Fb(#D@6u`+G?tSAVhF zx|))cMh6M6Iaz5#tG1Q~kPy<^T<>V9-PZhuWaj3jYJK~`t*h>1qa#43rX+PW6^80c zE=To-1Ow!yQmNG4elIoh{_v1M!0&TEZgSDpny{anm!`SyeHJa0lm)Mt>#p~5wjfE& z!a+f9dJ;*B#bf7Am{=QrKQS&=Fkk@&)S894g1fLvm{Q=!?F1cFH0dkROEIBcXB&VjPe9j#;*s_wa zzaX2Vqxw;5((ImCGbw^uM$i1t_Ot4Gr}*{=d0O=bXsz=egVO$;)Jc{;z^*kDVsRQPh8B4bsqXvhN$dvtUq;O<*q~llNAu(4coL*~+IjrocBB9h zv;#%qkqqRFR1CfQyRYYQD+3kbOyw(f-Rz7`T58QSzgdik{|;p|4$#PCjjt%>C9`ft zQJCwk^YtPO9_a6d8HQU{W^t$>^E27Ox3A2KkjoqEssjG@cCj(AGt&@@#uRvb*d1+^ z4|5+gf%tkkHrCgWTW)s7`**HwsH-B$riNMyT*ZhF-nNDk6?lW_-f~%cOT*7QlpQU! z$nHh5-oNRI4g_t`PVQXuNKObR@ptB^KtFY5%EP}d&d1Ra?DlCK+WlQmXDeAX!@@z& zGY9q6mRFV)w!E!7f5Oy4cYQ}|BTk{WqXBPQyM#lJApM0xHQBz3*VBn`)x3NPcXW5Q zD&%{*SZRDsL02aci9}LboTaO_-1*pU(by=!f^7CFYn`t4W?UT+aO04H3f5?Wa9rrU zKPcT@ZRxBSq$?hzPJ&6w%}qrav#BAKcwOf1kxWjaP2zz`riHO-VK8ZK=Rd#wyl#5* z!|sk21qy)`C3$RGCifv=2OcjDLbqHPX4)r?I{&F(yDbL_9PYh#B5IxFekv+tKzGNEtU9FLyx} k8;tR literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AWG.bmp b/plugins/channelrx/demodadsb/airlinelogos/AWG.bmp new file mode 100644 index 0000000000000000000000000000000000000000..ccf4e5046d4afa1f56ea1d6993824298f51c3ac9 GIT binary patch literal 6856 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 IP5A--3+%-;-T(jq literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AWM.bmp b/plugins/channelrx/demodadsb/airlinelogos/AWM.bmp new file mode 100644 index 0000000000000000000000000000000000000000..7735bb40105d6c1f5b6cc0031b41beaac9456d4e GIT binary patch literal 5176 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 Ve8BkSJb#p=e+dN8#-?yP{0G`=pIHC^ literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AWT.bmp b/plugins/channelrx/demodadsb/airlinelogos/AWT.bmp new file mode 100644 index 0000000000000000000000000000000000000000..b7a3fda41d846c17fbe81cf1d95799eb96054963 GIT binary patch literal 5176 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 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AXE.bmp b/plugins/channelrx/demodadsb/airlinelogos/AXE.bmp new file mode 100644 index 0000000000000000000000000000000000000000..5c14d9caa296c22401ee0973d0efb785df46ce21 GIT binary patch literal 6856 zcmeHLc~F(t75^!VOJp;E5h9?h55!zT2=3D$1c^A%KqZa{D$4@|f%lMo>pcg*FOMf3I}uxl$v1P~cb9X{J@?#m ze&>8|t}5FO{P>7p57B}}vleX#oWw71RIFFJ^fsOlKRrD?uXJl}Zbo=`IMkcfue6@8 zx*hfPd-CK7937qDJ9E~cv1v<73&>aW&#B+<=;#2QyREH_={h?*(cRt6eVUVKX-<+w z^7NZl+rTm;TIt=`*oex?N_etB_#!} zF0RPP$iSmVkKi?FGPcBQm3eAvYVh8ixtQ$r7CaRbpEge(Z{NNH3J*{G=J0Qsp3WV% zIvieJlaZR13Z+sB?jiwSKN4&;%k!Z=^=zJ5#J0oam5SEG- z7`POR7cUX#E5O>d5d!yz;zrgD9RK_T%OYElKY35_#;DiK;OjdJ+qQ1QqD6~&Ju)(q zbs~AzuUn(Oz7Cn0nZhpSa2ET-sAI6~r^}c&JbVqu58*OBH*el#Uh>(63l?F-@R5l6 zWfbD$4~m!wfNF^f?d|Q)oLM^0i@rlwt%jZO4YgX0O`A4xQwx3P&6|fY;%=*|s&W4O zc^C~f#+55qM7&nP(!vUBe;y(0L~&&|)}C$GpFXrc)q5%?P4vQerwLdhY~9h(&M~b} zcw*XAC1VHi65h~V&>m%Fu~EG#UMo0}`|9kx0QMn=XcC@4Ve-dLEJ zm?9@9hu2AO%Hrgw73CEi|99@(L5{F_U0t0lqd%QrWG>}g3Wk{uhpo*RxH!AQ+1Uk7 zj^kl!G7RsFcqG|p&z^n8rjZfrWSz)nW8bhtM8x-YHq?oHoc6JP-3EoX3z=7^)4|Qn zUB*+1=i}s$*{`#*vP505M#R84+`D&=eOft9Dep`4pMLTw`{ucG=Wt+u9NSc~c~a6x z7%6863OPc~%MEBs?f7Eqv_hb=h(4hvJ7e8fqcguh-1Gby-2SATz|N`d9ZzHeERem z*5mT!%N+Y-Y~SF!4hjlFd|aHsSPj#YuiM+%bF;Fv67~pXc}Yo0%pbdVANKD%!2K`2 z_$#kXnmCE^PNfPI=S;@B$aP|U2xv_CJvcaov5D#jiYdZ>%4tc7Nr;Y)7V%?*g$oyf zY7)9D6Jrz3q2%AGsi};ggkcE@2{?ZI1l&cPL1&}9I*>Lrltr;(DsX7ep1mk3DS@f! zus(G--8bQ7dU`tNUpH4barX6?Il~tUg@Un+@M7i4pNaaWhV><#DR)zjB43>SuAdm| zxUQnUa@urIj`W-DC-7CpdBeio5)=bu&$6;IJ~Pz=g!goBq<6Bw1rK)x=PDa(TdW9K zA+PP(y+_m>o*>^PKR9v&ZpoYIuO7*G3I0p-NHW&=l<8@+`L>|5cR!&oRSWj3Jv2s<=*~uqFBCm?HVp#ya=k9^xKR2>Bfzl z_`6B^j_Pm!|1_u5X;F~%HFWj${pxMV*C=ADAp2`H3v4l58%$%u`u@J(|En_!-tR{po*H_Y3k7^X}USv$w(TBG$0& z5;sO8%+3ZezCI|<|CZ-EySvcT`RxB%1EJ4gka4xL8NuoG$gFNOaIkt&+OV3gl5#^o7(UH#~ciH7|1h}HML{+KeY(_M;&(M=}^?tgNMQ& zcl!Gw?UQ8e_MeRh`FXhC+Jn7fJ@Bhq>=N{v=8hjR;5ju@Lt7`ls&2!d?>8b-+l>N| dw~}{k!M7qG-4Nry+<$^};mdV`?s<0#{2Oh9rJVo( literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AXK.bmp b/plugins/channelrx/demodadsb/airlinelogos/AXK.bmp new file mode 100644 index 0000000000000000000000000000000000000000..59eaa9e019bce322f69810260a635a291885ecbc GIT binary patch literal 6856 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 OH-l~T+4|Uzz`p?>2ZGN4 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AXM.bmp b/plugins/channelrx/demodadsb/airlinelogos/AXM.bmp new file mode 100644 index 0000000000000000000000000000000000000000..277c280c01fc3280bb4f4eb53a78cdff9fc3eb60 GIT binary patch literal 5176 zcmcIo3s{t87XC#cWVj3go5{6WXhPuab@A}Xq)uu$)Ki|c+tAqldE74N#%axy!9DsF80y410-LU%#`v z?m}C{f8l~9EQ}A?DQrg}d;unS@4W_h9@f%A<0b-0>ye}GsM~cAIHCQi|07g=-7frp z^ccU{+!`CJL8v?8bkUc~Re^Hl<;xa#HdMF;_|0>(?7B)7jT%c|?I&30;1SYj?Ng4u zIWLjm)41^yyKL_P8abBKm1MEdg-cYau}|G~kMZx=(I^NCkemdwJU}TAkP2-&US5i{ zG`EfhARmsQUVTZa7B>mZf{%V>9`j;1KN>oc&RwANOgeD59g2&W$tQ$SAK55Z>VYfB+_ZxI^MOXvajT^M_Q;?Z)NshRy6DI+Kmb^hfT_gW+3W=haSdxX%?=wV& z7Au`TOSm#%SyRa#QJ(uYhAnH?Q}p9B=T9_uK6wSwzJt_v2=xr19VMi#ri>Sj5<}Q5zjy85yZY3P_n=y=jvkN1c?U9WkORs;?RZ0lVM> zGkJO{cJAyVL1Ab252mHL)O#R>KPbAu)t`8~Gyg!ywL@YkVG4cpF?slNwCi-d;UCM% zGmyq6Q`RfgLr%yAwuW;SWVha0O;`a9X+@Bk*R7|xBqoa|6DVaCJ5+EVN`0Op2hjsV z*^aK8@a?x2Uzu`#R_&=W^T2@>#ar~-w;N8LG!GwMm7Ju#c+oO!Xe9z9KmX>gl17*# zH>YmVLS1sQ)}xyuFRu$0T=M~MLXb6k2Q!k)mwD@ejRVA)qkXuMk)JwEi(X@F8``2> zZ=jbKQ(z<{O|non7W}-fo>Uctb^f@3Z~Wm$lJ}*nvW?Q7XFvDuML~UO!tXfd<&pILRWcYTVjxYPK_)W| zh^B}EEVQ+9CFQN7_{roK#zgSoFb)tH<>@IL8VV&FE@vg{Uaw*Ni(aRr#}Qf9l$pF5 zyy@B5RQip$T4z53XdJHY?X83tl$12?-)~%<*Dy2f`dcgO=g-%H7YjD%_w6;}sHZ(s zy>LP8f(5!YYZ|t0H6RLBtf=p7-H!5q?B>(!^AP)U)DVt*Y%y^v^&SK=Ydu*;o44}r zqo1JSzme(}vcx(|b4c*Bf<(u}a}WjHPmhe?n40<=rOlylPEp=knwQNd56b-WJ6OcD z>nkex5}j6Xt?MReG%a8<@EL-C)X1uH=PcRTy75nIhYhO)LU3XK{uOY6Pe0LncqmXB zW@gsL46llcQey~raJ{-@7BTM?#3u}L@(tz42aNQ&^h7*?)mvMs-@|;8vM}}(aHp-+ z>S)lTj2Wrq-L)`Q3%qI5X1Z2RvB?Y)Q>V|9Zy1f6K-N}Dn8f~q+Yw^JpOS1rIuxu{ z8a-MAK0{(dAOQT8D@|=#K+Jro2%ni+U9M>E*RLWVK!x{$kPsC*{(dL{nxyNw90R#O zb~%Y17$Gnz#jb5>TdDLo9X>+G|4pyvw5xpJJD@r+A1DA8eE%cyM)NH`|EjhM0;ZXf z&PJ@c!BK-i3wwZG%e6nkX^->Y>eUTBx+`pn9k~EhFDV2-`;R?V86K{N-1bu7BU8r3 zX_}i`oi6G^_}2m)VB^j`Vp0G*py}#p=;O?Joi!X1f*DES@_%Ve0>w{su87rc>Uj!w zS^f^K`ipZlM=9giXj_omko;}%Y#oUSAiVuLgeiE+7rVMhevXg1-8Y*V03v@~K1b{q zU-FEhk%<80S6y>kQQ83=A~dF@(voGI?QYac6%ZXyjpr0_?Puwfi!tLz`)s?x%ah9< z32diB)c><*xmEnx7MEQAbA|2;rU}z&@S~KPAx`4NY;G)3b{wLx>E=r*vpFMvxWREo z?4yoA+DB>ZeiQNI29P#goTqod~9d^Q30in>T$*>S#8$#dz1 ziXgBL*F3jwIZ-p3oCsZr?D(OSzy2ni9KPMr5gK5@7=Czm7Sb?^IZJhKU_yffDf7Hz|JGig>Zvz1z5IRRb!#++0+ChD(>+dfUCD Y4dHd=@4N2k4pAAo{a*bwguem*2XWu+{r~^~ literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AXU.bmp b/plugins/channelrx/demodadsb/airlinelogos/AXU.bmp new file mode 100644 index 0000000000000000000000000000000000000000..2bd0afe1657abfd0480d3375dbdc98dffc625fb0 GIT binary patch literal 5176 zcmc&&2~bq$9bXVbf)^7_VOSnVL3&K0^-3byUVg1fxTJSg9UbB4`4YKSa#WcZ{K_Ueec;d(`sWgPV&v$ zZ~yPV|L^$yZ&>}p%4H&cJc0RPd^X`jSTUmIm_?#kyp+cYAD)4UW!c%;+3xOcj^idL zC*5v02n_JY#>PfQMub;}VIq-8Pft%M6cRX?r>3Ur>+98OwcqcDyuk14>kEg&c*U5W zp0--80w1p+y1Kd)3Izz^6$AukW@h^P`*96H@>^%JmgT}BdM-%K1?jmtT#dsV4AOY! zLXil=g+fdqKnDYnKp;X<^v(7Z0a!2?Jb3V6O-;>_BS(NRDw>gzap=$?yh28}?yg@}_6hQsJ32bDva-&fKVMQ( z62-q~&mO2OJ3HHAu|y?rgFQLqkKkVljy5&}uYT5}~g$O-$T%KX4%R4eE z=n!}`oGw3iuI$X2ndxbZ*<4y&Tvb_FAdw8(?GQ#TEXawGTw`v}*r)Zf$FdZ`@37gAA3D-dRjX60rB`ad`1l|0L03z&vZCxO zVq}K>>U3$VqFGv7r)ZQyzWVazhPpZs$n$54i@^usa5%)-rwl5!s{QNI!Xk#EhX(AY z3koq8-}jj$2@hU1E$$(8MPi=iRLrCFo)jy5=o5#xJ$pmFQadfHpDF z@=TKEvn<<*6Ba*5+1y?x%o6;AHv2z6IbNKdUs_aLoRgRN*)f;H*;v=mP+fzV3eE-q zqqDWG?n<>%-URup_4OAjDnQT_b-J*q;qn#G7|k+SRY_@!tO=0lP}pwkD+Y2~UrBz! zgm;VxNM%*$%L!kSKQ>G%t5K&f%*``(8A}QZz5hr4Bges?Lo{a|V0L_BUie^B%+l`I zWj*s34a6^S&Rb-QO>o5C>6o{uKW2$pw4__K%(jmulW9IAEr*s-JXKnJfvHG8zGJGL4;^bZ^d@aFKDtV~dV}HFG@VG)mA0>s;rs-D&_8?P zi!T*Y85ItPY`$a5%l%+R3!bFumH-|OQRcZ=e5cid%*UuY98 z91zX3ixPSg9?(Aci1E><3{S7qCcmOf-qN1D*|09PWA%p4-zBxITqFPOQ(yn(Z>E89 zY!3V=6C7vh?tzz{EiRGdhz%MoIMo*~)&1MC@fyv{LSq9CMsRMf?Cen*83moe)2ihhE&z7+q%-Wcdy?p zU7M_2^?d8fHR`n+YhK^3JoMo}S(!)MJu(r5Rrt*rhV;KgPbT?@^x*NbvR zF2px~0)EWjB=8fQ*5h)yozB^r8FEYXypukU(-n!(*c9Ce=^Xh1VGNLgKmfT7u|vdp z4*UphmC#wEbW`js2g{?flZ%nMH8kYUIB9w8Sxd})dPK5lnO$_ZHQ`?U{SWINUTIkK zV#g~xl&NpEyp*O}m)iJDa`l?^^(kALKiJ9L5e5}N+K;OT%DO_=z7KQ)^yYIU&}>H)uKhtxcgl9tgx+E zrG0*LZ^~A~%WoQzw$&#kx2}Cbx;~}$&7HMJKewK%7*H7;<1-{?uMeDrC_)&~beM*U zaWszL>;HA3+d%;{t}lSUA^zx30zoj7@l8e0mf=7~p8binw)nfvqD1q;pZEXt$^K_H zb){_AzwwUxwVm?KZ&k0~c;%0q6z`_D9?$74Z*UoH{y=!{Is&p~1b+d{F>|EbBY6WO z9AW)5I~RfV5nn7r^55+p*H8(zy^;NiQh=8CZej%ZImtn=1{b1Onbfy+r{yOr+Txe% zmpx+sO_Ke&w4Su|j#u_HZQaqF`nv2-Z(lih;A&2etwA|3;GG~%EE!l%!KNf}vUCWk zlC;32dEqFb;pL^kL)ei9nCJxVaQpG|=lrjUxE^l6KYTGmdPB1`D;8Tu%{Htsg2yxo!Zru?-xnqL32GW~$`REe^w1JyIYckVYlf(OP26$!0d7(W1h-X~xM zQrw1pp-au4^rM|mC#fD^ZAsdye|fiN<5o@DcGdPB%D=xS6X&X175(nPsSuwpc|=GM zBu$Xq3Y52o^Jc2}0r0aCQqa8GtA*au1_L(ehy>UR= zYLj(3oGyQa^bOZiH(xwS)&?O&42fxCa3l}jjR;LX-+6rB_;JxNha@cg0ZR;vLO&bg uZ41?~;Sld0Tm;`Cnx*h(8bsmiK+cy5xB&42Vt$kvg8kapcT)lW1Nbi#iE`Zl literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AYG.bmp b/plugins/channelrx/demodadsb/airlinelogos/AYG.bmp new file mode 100644 index 0000000000000000000000000000000000000000..2b2d6ffc702cb6d3665e1e2daf72c10a73588e02 GIT binary patch literal 6856 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 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AYT.bmp b/plugins/channelrx/demodadsb/airlinelogos/AYT.bmp new file mode 100644 index 0000000000000000000000000000000000000000..3b15c355133c5a5cbb3d3b180454063fd1133148 GIT binary patch literal 6856 zcmeHLX>3$g6#fuIOjv}l7{CQFN;J46$`6+yBt$Vm1B!`%T;mcG{2__Ph(Qw)H1U_w zm=KK{P*6(Q3YE4}C@n3NvbB@~EnTRT!pvLd&GKg6d*gTR;|()ifEZ&2aFRRk-R<0a zzI)Dh&V94z)l7u?&EWqumW3>1Sq9-w{sUjL|IFQfQ4Rb{r_0Ee8jbkT zCD)8z>9hxLfOG2IE_F9{8jjhR(cd4FD?{3XGLQ}U^L+b=H!nwcEs*S5r{sE`FVExN zvga$A?8|P;*LTl#;Kt9uwN4PPCOFZyJ~#&$Bu=e>wqXP!d*&l`zA~eq^t&kouH6H% zKhZUqGmzeH%7mNL)i|s61sL0>s=3+o+{9TWGmxRyNosH+$Ki3kpgo_So_!vX%3092 zjDx;;B=k)qR55qVKq^$-ch7E;SXL3!1<(qIz^Z-0`sX%tP99`pzZJ zf$omBA4bVNFiNMvP4vL-_!Z&RwAIsVGh@VuB9*f#@A*ty@@yIOZBw8Z-H6!X#hLa% zZazF+s}*`75UYQeSnVc`wMcevgIWFv^sSR9?U;yK-)ZyJW&M4 zIFd8=QtSPfeJ=f6FB*bG>x!KHIpMts{|=;j%5vI+y~U0$CGHQf&qH+IE3~=W>9=u2 zs^=j@dy5}i-tRm$-?ce+Izk12aEVL4(KgWT4!uub8I^;TS^ls(H<{<9qR@-SBU<;W zlAX;F!M^h0>C$gCVrsX1lY@a{Hb7f{1CnPpDZX>97I=0jGsdiV3|7@#RTnPSiw4tg z3y|zwrLYp)>MzEK&Z$rpd1Dat4L6g=|00%)XzOEC{4=&rMy%nZi|dp>1asF@s_vyC z95)`Z{cmLY^8v%&dl(Q?FY|I%+mW2rLJz` z9Q2JNcuqqZ?~dl^9@tg%$YRBvR`s(g&gdIQaqjDCY_$Fz^5rCWZbH??PWxb5=a22J zOTN@EiD?n-w7Z0urs$KmAVw@?-^s2*gx8T5!ZjJpEb^e(uJl{=82td8H;$shf2?A{aY}|YvPN6ZHS#2B~w&g;=kacalTPJL2;nUD~fMbXCvn! zyeYY^#5m)RsYqY2OP6_=v2`M>+847hovGeE&!wyhyeGV!SvOcepPp{CRdHK_eCnlL z#_M`GS{-5s7eS-$j(Lo+$0i1&X{SD>CgV|dek1zCn?5HW3}v1Wg2$Xv+cc8#nH43h_#u_zGdhCaZQK?Y!2HQ%y^AFp3_0&tKa*4x@~=zVk`$qZt zCU5UvuH-+PhQn_AfgBcxzTV+HS<+Hkkwm8P?x)|UOZOu zt>gico5|g7pqx3FcQrjPhe4oAFwUx3plsFdEKnGlJ03+y;(f=;E5cNKDAxE1V&t4O zeI<~8JwNTv)#^@V)xAdUY-S!Xn7Po{KK$7~M!7x^oKyc})7L!S!Tm{mUVPsyy^ntX zg^%yvm#;|wK*mKZb1}Z&u)T;w8qwO9)b}f+~PTp6=3hhu;J2XTCsCzq*jolaK)N>&xX2%Y~&^7>oj I-)IB=1`7hOMgRZ+ literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AZA.bmp b/plugins/channelrx/demodadsb/airlinelogos/AZA.bmp new file mode 100644 index 0000000000000000000000000000000000000000..b4d138d008eb780c80f75dc0f3b2cdf025da28e9 GIT binary patch literal 5176 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 RN6GZ$ua-{ literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AZG.bmp b/plugins/channelrx/demodadsb/airlinelogos/AZG.bmp new file mode 100644 index 0000000000000000000000000000000000000000..233b547b565f66a2b4f9dec3d5c0d5fc576fbd01 GIT binary patch literal 5176 zcmd5=dr(tn7C-K|T`6k2Yjv$1)=sU8fVkDwF5PbJvKC8UKDM2r-N)4G?##A2wWW%H ztyRlfsczS@Wh=_l7?j6Ac?kr01VVrW2ya4ohVTfI010{AR zckb_e-}#;Mec!!_|Es@#gl@|gw4S)$z~wZ}qvdFceuPfyeEzy^K*P<2uqH8l+l4V9IZQ2P4%0O;xILG-n?wXmRDR#w*3)Kp(z z4@bFNu2QL>tJP|dN4K-Hv%0z(7Nt^&L8MY?M@PrplE-MX<)OA8Vns zv~+xY9Be@qEi#3r&hy7;SO|rMg+O9J!0t!>2p6G)8|sW)po{|p11K_#s2d2NZZM{& zr)xACotjw!;m+&7hEd}enT2}#xS9u zg55Lq_v+38evDq>0)ng_#^6`Dp6HzM4jOLkWvALL!B+1(i^%FO`oE?udZA-s_l^$ z4t2FzS&m_Cz4c;MS;p9qb32UPQg@W+j1H*bWttf2tjL2eV{@idtE{gToNGw=S~sjw zx7YU7lp3s7)*hf;!k1uw6>u#swFPZu2D z^U-Q*%1RUjtcd^JL(0PIA)ZwH**loJSCadw7sbE0OsDCBd+tX&KYX0>kNg3*WbqM4 zR+Dh&TAY)r(yXYb=$p;+QujTR9OU!WCc3uElXb8EHC>}!UH2>O22wKzII5w=2$49i@xKbFtCu|+H1$`0jce7 z{--bH?0>F4`OA>i)RvWCWlT6$;{6{onVml_T$VZDZ?oI-4!-n{4U~D{*`(huIs6Nf zC!7_92Oai6{S$<*JnrOQl#Vm6?A#&7Y)pRBH+(I%h*D%%&m3AtH$L2n=&PcRe(-b3 zJNN>0dED9eS5V2PZwX#|B5Vz%{CRU?;K~p$s*e01Y5Q{Q6yvz_;)wm2 zQa{`${dZVv`j={Hn&MKZu0sN&QQIuL6gu2e1l^?Xs=IuANRiLl^-961lB3%z!gluL zd}A^UH71-?-4p-=(Wx66E{5q^EBLN!?QHpD*6+TDfqz5#rMx45?3R@#Jpa?U=NGjW zq=c-c;*)PrJ*{L-oJhjewR4qnuC#)wka3M2oUEQJ6Wc1QxdtUCt>?}^?eC?6)??xJH&iy!4^p_bhHXu$xvYiQvhxoc_REn0N@1I4KilY2k8sp-K1 zT5O*GFbA)N%enbKeI|HpV<@ zMEn1fAKwn6iLI<=E_}_rzL(wN&n{cVJ@5!J!je1V{4C@aEag1Bxquy9aHuUk*V3-C z4QlQBF;=H{3=BKO687)GfQ>%v!CB1rS^Z~7^$aFw7H*pny>-%L8_?Q1y4ltadvgb? z?6;5TZHx`I1qJ{fdCw^J!cxn;#ayWrd(IX4q3Zv=VwsWI-6J?5Gr?eUbZcw_L$2~C F`Y)#ef`kA7 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AZI.bmp b/plugins/channelrx/demodadsb/airlinelogos/AZI.bmp new file mode 100644 index 0000000000000000000000000000000000000000..33c669e239155d4e8d2f70489a16df6251bdc019 GIT binary patch literal 5176 zcmd^DcUV-%7C*MUyqBm%Q7oV!NQ+o7A?oLg0b4Niw!l&ad@5KUii!;tgQCPJhz+qk zeTryM0qLMT>1~&y5;`m_MFD9G3%fb@-sN(oseixw-8*~c%qjDmIWu!+b@Z1>1NmrS zsfwRDegta_%)k<0ELNn(QXk2{Lj3>z493r|t1B-nt*j`mt}GV{dxjkxkywQMQciAK z^pnEm=iR-%SQUvxCEV1(YN^u6`FDfkj?Tk;rxl`v(A1mbMj-*!4<2igMxAq(GcCkX4!pxVRcI#Qn zTIPI$HfTa_m@@^}(939+uO&P-*J!5k>&4EUwM z*VU9eE|t-l2*EywTi!NVYD`-<4HBN-Bh~wGbO$}XBTJ%5k@T^)=c z8{%S~T{!!z&oR%_Cy%wax6z_Z;*YCmSaZNu4a$mgbN?4_^X=E>v%pGY;$a89$jiQu z{k`{DXtPx&Sjxgy9p&1p5>i*vO>R;QO97mhNWJ6LNo8O;Ds%hkQ&K0;MuSYnL&sjjYY{z2MY4sM^^_d&ylm0|Gr3VVVs z2khPD>SWIj4!TOq)5F~MzSV7wisc;e-e}y_*0FJgnw|`7)=?_TNvDO82)}*V;@fd% z^5DDO9IJFEIY}{QO0aS1NmIrf{FLILODSk!q z8$0!Xm?!}!?FDlB#3EdQ_>v0&RS2y|{=O!&VWXBbzowGX8nzq;Kg#iVyq()!S!PCh zx@)5%pHP}2aUZeJ#p1*#ci8j5NC8qJA7M2uAsplU4JV6iq+t@Z-*!79ep}72YbyRE zTZsbkTPT9F=H!9-C)=9%4Gx-9995x|#80j2)|Te2>lfhUUqAM5+5!?6_BiTKgVU}o zCX=RH8tPqFC>Y7XrG1-e=CH)@_)(Obmu+IOVg2f#u*}RzLykx+B!*ce_Apw3f$eFr zs;9Syf=ldgk{OoZr*^*Q4{x*N!B8Gj;$vy|pN0S0i9LF=VVjQX`*&|C3zUPrlw_6? zI4+%-5OOUgDl|3xKE5g8_md;;rNuwKeq=jq9@waUSzeG&`yG}T5kE@j=49JgTbLVf z*t5$uE0daDaaP=8wh9=_L*m1`{T-rKh6Fh|4wALvzu$$e0CtNf)szvtAoYAAeiSZB zPqNgQV5L4T=VdfjCFcm?hxoiV8DTdp6~S~i;J#}h1BNo7F9YWCV5JT$MfiQE4T_Ea zjDnvCz}mX%%YhfXj~@&Q3@qa0qg(&OJ9MYO&b1mHoy1l&=wY67sZo!tH2!X`0H@uE zGlGg|Bt8*;XIH2DdQDV!St*ws5hm;=&X8WlQJNYZVXX>w3*gFutzm(_56*jso<9+G z$?v$OHd_r(pRu{giKsIAGa~*jVILl_qP{+SUl+f5o)D9rkzQF<)l^@d5PB>6elXgl zXMB*4>Z;PSyB$~yzBHT*PD^K2mAxlD` z9^$?}vAe#OsVoHfdeI%g^I#uqx$$f`Y`30fjzWxxA9eh8JGp4d1RQchS|Aj*cXYgO z>!_})uc)r&H}acX+j@n>oX`)ZK;=b6e(wKrTr|mW23RS=A=au_dD(;jW2iogzr2tu z6pKRq&jp=2bo6pGmd&e zW~TRMb2HTmxB^WT$9Xxd$8)Psa$NUjX&jT#Z67dSU?&4D1w$p;xqA!ddT3pcwifbz?L=2g06O^wfh%O z8_WckpJY2a+e-5}wrUe_$;AEfU#83`^oaO-NdOTyFPSNT!(yp|++26Vr8ooUJY0sF z``yhJ<8ad|xxAN2{jEe=ibgOw>E}p(KMOxGg5=hjnHX(04_p>aX{hbb8cBQgylSUq zvL-2%ZNrz2HI#7{cLm~Y;+avn<=wr$X~T{xbtJcg5zJYb7D zY??we+Q zJ+le(U%Mq!?NrB<7jT&T=7zUtF^^UR`-M_vZ-&q30uSx5kO#9l@X+4}b%$;`OoL2% zMEp#ln_ljiVC^+tNp0u-kue}rS5@JFi*OcTAS8!{WF^GDcoK4mt*tEu0S8=BF7ocx zYsYupJmv8pzk`0;S$1k*zxb=b!)~{I4fmLoG9jhNh^f9Pmw2r9}k}8h>-rno(O(GpK3w>L=mnSC-f=oE#T= z18q_J!ce1c@>2F1Xkg-j*OH&5!C*QfoE&z`pX#oM(U0q-Kz|nK%>*O75vhTd3h2oZ z9DLV&1y_&mZEx?gTqI?o1jcg!uP(US@x^V`MrG`7JVLFL=UL#_(O9d;sPpeYj5S^F@#%;v6`xb+@)E(NwmUsz>+q-~GD#>+c=i zGv*}@g7}+2{|!hiNCuGn0ebWwI7;8khp9z0(7&FZp8v~Jz#v!N0{5?Cap3!7SpB5~ zj5f^2gpW-y*})7`H!Q%kjf*j3vjt{4JrLcxrcI~hz9!ojWA&z62nlY%?c25Z{PO~M zdftPZTOrEJl{ozOVk9IqqPx3?zU5 zONWPh5rTv3aKf(?m6b}&nw0@-Ybh@Npzil;ajsj{L;I<~xbdm*J)Mc$$zeEp)dyC4 zKE_0Q6AZJOgqP>Pjs7Mh(0|Sd44C^C1}`wgtBc0#$T+I2Wyr#@7-}&Fem{ic{V7?P zK0OWI-X+-PoQEAd^0953g7$Y8&COlt>gq;dU@b0Qtj1EyENrE3r%#n4BclaJjud0# zMmgrrm7uY)6FxpA7;AV3aq*4Vx>bQsKh2|YRY*>1#JO`7uv?jf_=E-;+la?K&BnnmVy+RSwGNj2AA<6d3Mm(;9&=%rVYJWO&;H zAJK+;mBmQPO2xU`m*8@8KP-0HW2DVg{AJ!K=q-5{!z?G^O(B!1oQyY?PQq)8-@(uF zJMi|Z#_H8Mh>dH+u3ZIi-BSqbWm(w1Js*b-6^l6-Q?t2uk#eUAKF3O7GAA9rzNNT! ztp@Yv-4&eNOT68^yAWs3l*8qV0-mQH%*NK9BTs=s)`g)%6Hrm1gqK$d+{pHu1<$~LL=v-D%f5y$mCJUBUQuz6mk>5}d zrV7DXclScr+vkY0WB-zu-v$SJHIA1rS7Y?(WZ_%b*Vx)hg&yYZqx<}2zq^ILwssX} z&(0uBLj`C1^a&?B$w7Vn!DDzLZ#|P9C11{v<@XD?MP2+MnptC8X7uLSg5w0+S(3eX0`}? z%gfsl5>h8@y0EAnp&_+`r_8<3&{~w0Da9O}< zH=QHzF*mmrg9pbGp5Y{sB*AcUlKoqZI#r$c{M3H(v7_<2#YEvxHJJVs6^L!e+)!Cp z(`)>V_)zRVeF%jW#n^k!3p@SxETflD%;Dbw`FmibLmpaV7ee7<>4_aU8km zC+e3YZ(_f{H=0|UY5WoRUj4S0{*KNL%4NI}5OM_-wN+vbDcR}TK8X|~HhX;mX@S}& zJdLxBr})~hZ}bCP!!Vy>bx)7lM{wD$>?9kiqxjIOT_^k47fnZE@Ipha?MJ02;Mo~^ z@VazT+mF}paL5@Wmrq4?LmlOArg(1la2U{Umf_Y@NXJ;554(bS+ihXF+n(&Z8VQQKH2&f*1A1ISAXv~#q!w~-GTC%!edG*RDC@c8yC?RN*y?SRqC zIPnjEZQGN?Rm0bdm#WaGkJ|p{nr8Hx`#j}z?05V3kHWtF5BK7E!5hPuk4KCoLEGQP z-4SoEoPkp}0&wQ$d6Em5vTi;W?OZMToDKW|&(GG!7H?P7H8lucl~$LdrR_fP)eRpw zE<$~CBc@ZX+|PJ8JkKA8M3GJL(GV#)>7xG|ODAH5$3~n9yddT{6yS?j==&Mc%~*Y~ zaS`nHZWi^LhFXkU{UKg7F%UNKB(Z#)ZjRTC-Sf{yQNGcr#VPPs4Yh}nFy>*DZ|9cZojC!H*7X!Aq3;hTVzLj^p*5 zy8gZ3v#dCu?jMUVmaur=ae?3@^PJCv`|UWs7td4v%=z)l=5J#V%`d@*u?Pxo(5_XbQo(%3N*Hgk!ri=Vgx-m!JYgcfq`RADz2&u)FkCegqlwRD zH5JYagVr<#*@X(N4&60B>H7WqDomZ4Mz{rG)Tm@A^3;5F`b17`oX#nJ@s}s{VEykLI+Yo;@McAh%H_+|p`psedd8VF-LEPS^Y$uzYFZ{$i9~mP#I}Krk zE61`eKCYO&)=c z7?=?Dn_$XoE-h7J#E2xqE?D@1T-kl{pDGv_aGNIYVr>5vQy%|g#0|=|CScPM7vi2# zuQ<)$HL}EIjo5dpjB|}1tZ?6m8Jm`nUzjfL$(>zY^uA+`Ia{p-=h)Y3#xCEp0kep! z%wLNy9{S3<<_3DdFeN`eN}N%+9oxP?IP^?1k?Er^P) zeSqmhAMmK{^E#PxGwI!m_r?3u_^~d+C?NC-j{S6oVp0Ib|J`_raxzor<>UiY*!SI0 z5!X1jrxCYUmnY?_9E*m~+f7J{Iu3C=bDwj$0cLMO<7>H{} zG<|VKx;Q!0-D3dd8yxpE?Y179=$w~=eUql`w<`U=d;ITxZ~x8ufqw!|Im$!; literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AZN.bmp b/plugins/channelrx/demodadsb/airlinelogos/AZN.bmp new file mode 100644 index 0000000000000000000000000000000000000000..8397369a28e07f09e10859fb52094b72654c5ae4 GIT binary patch literal 5176 zcmeHLX;f547B06a$(Wo`G`N8oG|&;kB4BGbP50}4@7J$u?&}9_gZ!9Zb24%2^s9I4)~#Fj zyLIoacY4X^bH^ZSn*;qcczocYS%c6x=n)zWgS?^4V`V^xU+wnF7@Ueyh51RWshgtNy z>cIgPT+6vpc=l-S$?Xq0h3vE8nX$XdGEP_LC)_X2x?7rEUYK&}$mXjlF_pQARoBxC zP9G>|C068}=478yNQr)E5T*?0Wq4f^eroJD^;_M@7&;|$9(tY zloOj~B<+~j-c*+yw!9?g%#$|Wso*6!F@D#6icSC4?`-7PY0>|vyOUR(9iJTRZZf@e z{w50Yf=riSCmy~>hY3WG6>r~EF>b+8XV_4&W3zDd`6B2{}q9D3h4<2NK09WW!2 zvp=men&=V&{R^KPmH(Ac-jQ+pWN41-!D8Ra)?A6`iB!^6+MIKMy(T#0v*X3zG!qRr z`)x!IegO zl=ytPX8b!!C{M7w?3Nx4`IXI914yXHlcuUaog*CeHZgjFCh~~bW2Nk^vC8~wijC`q zW5y{$gXN)NijiXs3tgL*B@Lgt105;yNhk~Xw%9+rD%S1f$VG7@;!1*oGu&tGM+Fa( z!t%X562~$y>N-js1Cf8;V#gqKpve1p+0GS7?}c3TeAvcyIWb|=Pfp3)-66T2bB-ZS zBg=-IA$ssXdQzQLbN0cLTffQMck%H|9*!4b6=VjcpVI8OtKaVi!i?qJ1k_6A!laJI z$kC8iP9;=YLu0dc=gUhtYAotDq7jm)XuwZLOJJbt%|ENhzb|oek`Zzp z#>VhS%@7BbPzVALaimtOUGaq+4efr|(6K#x=BghZ6&f+Z`K}E^e6?k)9Dn>r-q*>+iDBrCjNtu_aOg_1y&s| zx*q&Gql)*e_J`_I2MgCk7A$hga7XNnNl$Tv(ZZ^YkMtgN_{tjplc!wQSL9p)bD_bF zN~$&b@Nm@!j-ttqlE2TEA_wV&ca7*ZX+;IpQp$`?Q$LX}a%1ix@=B%=4U^>O%hs$C zPyVp`(~pQL)0F6q)|+g@$>W+ylazypONKfSp+N+=OGj#ha+fVUKDb_ZzpA-ldLU}; zuBUg!Sg9wL#1Gz_?l?OV)pQhFjlpYECk0+vT2y=PtMik+6Q*xWowFbYZMZn2P1q33 zTIw7(a#jTLO#18XrlNjj%a;F)9<0_FZ`^B1VP_sXf7B!O`shm-`Bwkw-E{P~qQ$pS?=g9j>?WwJL%s|O9!Z1RU%0D(igc*>B2kk5zH#^vQY^x9)i z1!$ne-KO?-T`pTT;tlOgM>>hTH%sr16F?)1_=_$kUHmyj%$IVlOp$Kv3v%2}fl4h9K|N^p8JPEg8#Y4O(GI?# z&Rrk^c1c5mAAwz9Go)~vlKAZuP|p4YS;=-BlwU=pNEOyRZ!?!FDF)8<7( z5%G13MsXE^DbpjHS#W9hp+kuTy_o1Ty`kidr$VNU z{Jyy`KQz;W+my=~#Ovf7%=Pw9pAVi=s1p{}{8UR0qsm>=pKzv@Y%|Yqync2b;bDMQu!4%r>y| mw7p97GCIo09H70}AC?{<{{OI82Lkqg`~!LA)#1TEfd2;cwTSQl literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AZO.bmp b/plugins/channelrx/demodadsb/airlinelogos/AZO.bmp new file mode 100644 index 0000000000000000000000000000000000000000..12a29722bca8f7f0962b9044335067e518c514cc GIT binary patch literal 6856 zcmeHLc~DhV82@GeWM;V_xR#ZsQ_fg3OwE)vqoZk#sA=kyT9O-@3n)n{)rfnz<1XWh zWvL{&fuSZSm{NcXkb(kkX@IcE>h@7#OO_MPAN`<8RM z1)XdO@q3;AJ5m`$#gEEkXiNXV3TnU6&Me{s{dv9KN2bh8&=9&!gQ9sJ8JQn;e81VN zqsdqqx!2r}ET)R)#qLuErhl&?;yVo+j_AlPcEfOcQTUe|%MR*@+^J#a4;o?)>38i_ z)xC&2?!@#R8lryGk?@;=;t~(s9xslZcj5RSE*~x>vIprGUGPvF>owz&8~Za2@ErVp z{k8|o6LkcyQ}N7b8QW-HOaCc(E^x8lvx?l3#)tRi!NV`3d*Y^#Yfo|`OF zyNtJ^6zDE5`Yck>mcHFqOpJpTD`+)A7T7U1-0#&H3LH)^G{cK`7bs{rNzA)$dYL|vawC~*OZlQx_q^HKD zALdgz;oN4DjLBOaV(v8JZ$nyh(S99&mU{?mJ99NBDLPM{^9+A0c6FvT5J*$W|DC zwrL(an)u(I_*!N+ZTbJe)MeOw`>^&?-8v=DK-W16c)x*>ir{PjVU=3pzt}E=$d1|m znHzKVm>9C%`Hz#Zg#4|wcF0B(Q-f^(YMC1?K9ezn{Pf49w?QjZgnz4{+dKvHf702e6i-Or%5zMk7}l6L%y?cYH8EX$;9g7_8yCem zw%7JkWuXg>KL@f5@%-9MyTFiR4Ex)5Q|$tCYpvf4-NII4lFYdoQ!ZBfVA8=0VKQz> zrVgUwb)kdQN-@#uTe)^Q%b=8`;ATz)3XTQhY&?*6FaSzvif``9{j2*NpW(zivlT>8 z?4Cfj+nW49;FoscOHbyzL@b#~_8J!F5L|5*A`485D8APZwh7KzYqM|Q7$!T+y>gtX zH{6D%G$w~~Bb(|G7}q18+-H%A5$6K+hDjo?u;wYH9D(KN9c}jML3pw+?zNEoDm`-y z^&c;x>s&?HP;;^?wj<6RtU0XO(27u26pP|h1Cf^)fO84JnO#(Ng1+^K%UOEQ7;9{G z>vY0xD8-gu3soU+FyWGM$+RKHbiguI#AM#fkQfy^(w!n7;=E-X**bI2T6^O$r_c@i z3;xEoIC6sn3-)S)xBP8QGUZF_9f&(&`ck$Bem`BYCimf7Y;J;?!*NcRM)C4<@*Dk@ zC<0f``PLnF;-gh6dJ@hbQf>JWOP1WERrqz|8^pyX$k_+v?gh^80nYAbZu%3>>wR)t zW9sU={gQ=;QhEi4=JmsxUcj37fGtCS{b4}HYM>ygG35Mda5)O=@T}t3E&Qt1H!fyk z^Qewk+7*cH4{Z7XST#5Rkwdy;XmAt;EXYSfCfUKioUiKqweelDl_NDR8xhNnp=an} zbRM0K4im4Tb(kA1!@OudL5CmtcFw7fROA%35vS_z`9g^o(Meu(nXRJ*<$!)6k~n8@ z4CP#rOYnNtcNVMeI<;{e=ZJhJoU~OFxdG=OjOVj-ZuX=6`lWCgF-d0Jt&RB9bkBVD z;V!Z`B%51-ARpnHf}bmzfm%9_kuH`c`OGTn3WS-UgcJ&dBWigkxmhfmGHq)$ literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AZQ.bmp b/plugins/channelrx/demodadsb/airlinelogos/AZQ.bmp new file mode 100644 index 0000000000000000000000000000000000000000..75e6951353c609b552fc904b4ef8ad3ab9c1a232 GIT binary patch literal 5176 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 BBG~`{ literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AZU.bmp b/plugins/channelrx/demodadsb/airlinelogos/AZU.bmp new file mode 100644 index 0000000000000000000000000000000000000000..17ca1516437c296839a13c91505649e3fe730835 GIT binary patch literal 5176 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 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AZV.bmp b/plugins/channelrx/demodadsb/airlinelogos/AZV.bmp new file mode 100644 index 0000000000000000000000000000000000000000..c77541f05271de211d2b905008e36cc9616c83d6 GIT binary patch literal 6856 zcmeHLdsK~C6#unGQqrw-GoFJnCdL@gnK6Sk6JtE`u1M3!TZNc2cl(4GDPPwFq~)g-)u{u&z_-#N+8O2%F%bF7)t1uMqsVCDE{GC>DRe$c@| zH#4NBm7;qecj$lO0)v6uVYl`Iii#h;b7yUi`$;&z4@(U-VL1p`JRGnZ@mv-T1MDW~ zp&;iLewq{n74;2hE8Gk<9ao^06MFR7iO}%u54g(sQQGw|Ecg~!NFs}+q-;45NQv^t zHm`KT&<*W`JEWpTWmQdgv~9ngaLxIEE8+U!ei7^^cf|Z}l;b&PFyQAj1=%^((D_(| zwz@tL2zNtEMg&4%v=MlteaAgWOe%fvaSd>_vaA3O)4D13`GwyBj6;KV+A3h<@1F}* zwP5J#ok4pgqOBVOCXrEP3Ul9bTT>nzN<37>T)*z>z7 z_N+I>UXne(o8W-ke1sqNKv8bmE3wGSdyMW~uR@?12cd4fQc-Ia4Z9V0Ua6<0ad_L- z_Y;*ty;UNFf@J7xD~g_05(FAah>dBv_kpaG81hFW?6jKz7CTDrW{~a7fXA|NxOw$F zE*x})@46ZAb2j55a+(Q|vpMb;=TSaX4ABM)c-V|V^eG=i9Nh+Q2V*H8UOM3gFMDI0 z@V3X(r_cSdyd;lw%%Z-j)VCTrY1inv3RlAqq9i{9F{gdGouyq1#jWe%3N~kEoQF0l zH_$;l75V~2(NYs*P`}%#sCd3+bJ@m|$B*D>(hU~aiYanz&x7IblDl{avXN8HiB_aP)zEKy4vS? z&QVVrgoxIo^j;>!3FmOg!y0Z2hM@Xk1;p`Z!0wG<5Po22`L8;U?5lv{QzuUb|H2XowLXSFLou ztghEtuCJ@X)+NI+t8df0%v$4aSo)(X$C$-u$y!IYTjN)ZZF1IZm z$;XO_ADErWW9s~ifm9cp`&Z-o%Jf)U6`(cYs?7gc z8{>c>{coePvUxe6s=NfjK5NOQ%;2+jGM4|`j^{QW%M4$@f#JpS9`?N>Ju!m!ZJIlP z+o7lJXkOp9(Odyj_HD#^lsf+0YDIi~L>k*OQ=$><>xiH~R$#x&eB$AWN->QgzmVLa z{PSVeQy7iO;oSN%Tp0(fb0~VL4tbrgqn<5}* z^Ho>fr#RTOUTVTw!gw|x6Ggs%+{;d3yzIHF2-hhS=zRbw&?R4&$Chz`R%nwkb|b}2>AF1L7WVmX1jjL_FD^zD^_{QTON>X7Jq z9nU)A)cnk3#GVo1e1I#(pxr#5k?3Z5cvAE!+=vU|k`jBGa;ys!bDkhOH6DqVf{}ac z8sF=^tQ20)NQ~n3{LCaIMg=2F9Lwuzlou7;5%coh+lkZ{goN|^ku8qrZEVfjn#XuV zcH2N@_GIgnm*(R^d9ieiWN-4%;-Wf;e9Pgux(JSIim^^24#ik*U5Lnt=Cf7#y|rXL eGx;*k>~sE4{91C4@7mf`6{RT1zVTLJ3j7PqD`1)c literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/AZW.bmp b/plugins/channelrx/demodadsb/airlinelogos/AZW.bmp new file mode 100644 index 0000000000000000000000000000000000000000..7cc97649a43ae4b997ae09e93b17858e14bdb6ea GIT binary patch literal 5176 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 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/BAW.bmp b/plugins/channelrx/demodadsb/airlinelogos/BAW.bmp new file mode 100644 index 0000000000000000000000000000000000000000..dbdbeac3f32e1eb70b245e0e0ce9bd92b70134ad GIT binary patch literal 5176 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 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/BBD.bmp b/plugins/channelrx/demodadsb/airlinelogos/BBD.bmp new file mode 100644 index 0000000000000000000000000000000000000000..d7c7301d58e855c8adb91a7f1a24d2648837a076 GIT binary patch literal 6856 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 TfUgby{`&%UeRQ_K{{a3Igk~Y1 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/BCI.bmp b/plugins/channelrx/demodadsb/airlinelogos/BCI.bmp new file mode 100644 index 0000000000000000000000000000000000000000..f05887335a03be86115b180bc81e332e7195dc2b GIT binary patch literal 5176 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 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/BCY.bmp b/plugins/channelrx/demodadsb/airlinelogos/BCY.bmp new file mode 100644 index 0000000000000000000000000000000000000000..ed32c8521d5eb6a2c942449c922d2282270a7091 GIT binary patch literal 5176 zcmeHJdr(tX8b510?O>s{B~>&6Rvz7PwKF@@ZeLF8cB)oE#m9En6$N>zJOU^*@(6EG zkcvSqimigWK8hLys}Q;%h_802E88ual7xrB`!-lhW}ao84uWg zPktBy4tBQoh;wgFO`6f#Y#)$ea+WypSvioI(h!&*}Cr< zTRS@M8%*Hjk%keZxVgRQ>J4%8b#Y5OL)RO>zkc&p2ThN=21d6!I=>UQbjx~2r^4Gh zpcp!HLiyER&7lMOs!HPPN^Mou;GNDPyPdLI%`PEBV8x)-?B_@SW3JoM7t!)p&>Alk z^g3GNftE}~xe;r?Btbk}=Qr)+=aKl^QxjHl4EdigUWic9won+4Z*78-$uu1MZs4LR zsIAU1w@;ypjL!_+k{-p&+LD|b#mn9hvvb4N^ujL>4XD)Yyt`e}(3qX!ae~e9SrKsp zhO)x8rU~*&O=d?t*apkx?x_d~O*mgK9+f%XCX+=jH67TGc~8eY-SAm26Eoa(b7tWg z+woze8MbM2WbH_>klA9+`1_LOFQIilFCNNH?7DNizeg_bmUP~1t;kGB-xv%QwOUQY zpFLN+imr-I13NM4^TL;bn}o@mKn{kXcWDNSO8WFq%U?w|8fxGZp;0$9wchLQQ(|fj zsZ*)RJO7pB6bVD4Q}-UMX6OD-A`6Sl%*fx@uTbJ@wF<+5lqwu%(9UIAB0RbwnqPb6 zs>`AbOaHrB7vQV%<>LN6nm4@koR_fdG?m>BDL^qUaA=`c(FxexDlQVAs(jRn!8iy) z9f7m>Tb>-hp2W6(;1l#3x_03>n6gclCBJk@B6!(xsf8-ckph5!Q(R_NVfpZ|8S0s~ zLe@hWSpmF@i&^{^ue7@C9A;T<5Nhh!*Xo(CXy*FhZ~Ca`dKtK$suR^(=1>?(R#csz z9PEK2-<_@3!w1*K22@Mno1ZxTBe}3IB{F0>TERha@B1rcQf7gX{2R*_Qmaqkmu%Ud z-=}y83Vb?}I5^*s(h7#U4+Y6lPFcxVD=>jJ$sJ~Oob zbFiN}NVW>Bb}KqnA_#Uzo8RK7A1YkYk5JlCJ^ZFD@7Jpoz@60fQ&+2KVA>!KDYWcRGt!LG8#swIo<~2ko4YN7?6b8 zDgP%Zta!dOy=K~rRfl{~CoYl?Y;NCNI zezOR_nHr8eez2T?g8;Ex>u7Ju+q5j~O?SxB&)m^6544UuCHn2zXZM$Y0WFC|z2_Uk zMK>;qfQ|cTUI+&i&>Ak<7~mE@Z`yi)x3#m-TCStccP@QL*(ck&Xu)bON)394)PSd< z8m-V<%%;NdkY%r<6J-Ts;9;QC=~J^xdHmfE1~6bH5_x<|5szOIlawEwm^VfW3+z99UB8zfKLy8SL7`J4FBYQd0M1Tef$ynKjcnvm;e9( literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/BDA.bmp b/plugins/channelrx/demodadsb/airlinelogos/BDA.bmp new file mode 100644 index 0000000000000000000000000000000000000000..aa6988f02898ee405f1e05b372e1c91394c18731 GIT binary patch literal 2400 zcmeH|Pe_|*9LK+X=1O%L-A1-D=L!?Cg=S-nq%!8Z(q;>BnHdG9!l^~LJuXBeSc3}l&+V7z3m~- z^LyUs&*%C6zR#QF+z*#pVam7yPO>-1>SjHJBWApE*gVJp?yxI0Kiq=yau)u3Ehs#i zMYU2!^1dI%aW7^!vT&Z-NImc)ve*TyQbhe(4bIvE3cq)tbSs4HN*va`IP8^K)Sgyh zZ5Lthlo6V9BfjiKc`=DX!j1gq44lmZX4X=$ALdYeoJVo07sXL>??#b+7~y&k>Mv?2 z-Ho93yo&M@3$-T>_q(vLk)sv|(IpS6k1aSG1?1L}sPoLoVh74gY2<%(!G4f~f6j&4 zwvGDpI@jf?wF{*?5m@s{II9a}+6c{4f2DxZl%KjCl<#MmKj*f~%qNQCL@)CW@w_fn zAC;(wd9UY@TTQ}VrBBbOZ@UC%$3}9wmwBd8xYB{b7UwpLm|agZ&l%?DL3$-hPb@5K z=D3gfTaqxBo#0$(uh zD^2cY_V~^XvzgWz>GK7Y_OPrT@+sx>>3*LIobObs-{)&%IH8qNQLWqEAIU9`aAOs z9Q6ZZ24yo8FPLs<$ro87eye9WD2KXPOjSu^{(^ElN*UtO-NyXZ=C)P=O z$!+5i7sUtRCRF#Bp^m)l!!$6;OuXhC>4;u=qRU!OO4=&+LEmwSv_gVX-$)bV8C_zpR0%yUA*9>ilJ{)*^IfI{ z!;wxplgV5+fe)F?_pH}hS!DJ~Yv7NFblO`30SXK-{9=X!t+(`z5q>XZcCR$Kdqe-d ccW7k)SHkQ+2<~h9-FZcZ2ch>BSh+XgZ^vI|JOBUy literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/BEE.bmp b/plugins/channelrx/demodadsb/airlinelogos/BEE.bmp new file mode 100644 index 0000000000000000000000000000000000000000..5c76a909118cbf1d6f0f09648eb4e7658ab2d530 GIT binary patch literal 2840 zcmb`Hdr(w$6vscL_AdXR%yGtPno+Z<8M;}NQ&wZBq17KY_-L}pDaQ&iti;Ix@l{CS zdki0i;d8(@gfQl{)BKp9#r@1?uYmxZdW(NqoVWze}D56&DEDUxMns5N4KL%v$80{ zfJxs$`i`ZfG`r}&mcjXLd-*l=6>^i~=_*fS%uAj89uY)rm6Me-9_B{jUJlF&r>!87 z7K;mg)oEtT?x8v77kX|q(A+B1(pXDij!eg;LxdDM>FsLea?YPbU3F4-Y&nMdLXsli zBWv$UPOaR`mIW`6Q0rt`zKra!QB{e(ewQ(Bco2rSY#Is z8Ea@bxr*l}c2RsHk#)02VeIHews-L437KBqSqgf@jGEfW(`>+QHKRN7HSJZkXiNS< zt67ZyF&R@;1@T)~yv0=)IVZ-PB1&woUZAjg9l4#o=&?_ZATwGJ?n;uy&T>Fg4MXy&iL8 z8Ea>arv5|>n$3&ZzkUgJrwg0@JeHnjR!l+6HMQbbI*de58;VtLpgt>>)C~);bnB@&mqzr|A-p)Li@M|AqDu)E_o$fX0y~Kc zx{sKth&vfWefm;li-DRm#WdxvBKtrrQR3VWLUWYxnv^hHPFc*tNz@cSaUYfX!-R$~ zqJ>VasIewx5l(SWWl@7RC6uBPI}V$jNbz}8kRMjFfuigbTC)>q&ELi94<4tZHV<3d z4Z*yRp8P^KFPtE1F2dfdqwu$6%KkWnHaVP&`~IR@d{^Vib;L}6K=jfNyP+Lf{C+pi z9l^3{Ck-`M#q1j})#qYrJ;%8tTSZ^Gk?zm}1D=+ofB;DvK766_kfh*XN%}ZA)Yp0O zzv64#*Is~N3J=f@7fj*9f`tjTfZuL|a#!ybrk?BL&i8OfD%^y--OaXhi4=Gwz z7g{IXwO&d3vQO~s)egKfKp)&F574tDc}#_stBDB3>Wh8{T!Gyk;wHGsA};Csj?DkZ zRVF70Md}jQr&8=pxF=kJRSWNfeWj#Jl-*lx@ILs9Yo^{b5A1c(&_3?1G;cmQSDBhR zIS*`{n=3NKyrlloop9flCMtqG6lGC}ZtG9;W`lCyRC{ncS3wB0m()M<%~h_}tCCv2 z+5$CF1gfmZJjC%yNssoYc{86}1uM)4S1n$go~Z@{%awd`6`)eN@;DlyiijBFu6pKJ zk0!TzufSU(-&}<_%gyz^ueQOP{&zGm*V6~@@q5ADr#3=u#!YZi(uX(WL4yJGO47ki P;_Op{o*(E1!G(VTWr_Xk literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/BEL.bmp b/plugins/channelrx/demodadsb/airlinelogos/BEL.bmp new file mode 100644 index 0000000000000000000000000000000000000000..2527ca8f6ef93ba42a71c4964a243b6ad7af43f3 GIT binary patch literal 5176 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 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/BGA.bmp b/plugins/channelrx/demodadsb/airlinelogos/BGA.bmp new file mode 100644 index 0000000000000000000000000000000000000000..3e66bc49de12720b70c012429250c1e7cb8f80c3 GIT binary patch literal 6856 zcmeHLcU)KH8vl~!?5Y>7OwGUva`9r811;|rKi5zR#KkffxDrK#)Ewc!%9#TfUNjSN zl^er>7%E!MOwru9aiF;c@jl<@aDMm4aAkkW=ksvR@0|Bp-)Ft=Y3i|~0`#w*{C5y) zCsa4uhJEac5p5b_kb6V?@XZLEKXF8!HNY2M4KT2IeI(4AqH?D9 z4?yU@oDkZ?2{Q(CEKv5YgcS&D>ViSdozbsRO>A2ctLv6ciV*t@J=9eYMR>bnZ0A;3 zFe)79kEa$WfBUL9OzPeiz3RS&?*Ft!4;O=iYTF{@!)llr+7*X?PR_^s;Ql@AN?3_+ zBSH}A=Z0SImACLyPR}~!Fxtlr%O;J)&1+Yb|Mw4cHhvGoNhh zS+--%5_p%D8Cc#RufGHPlGfq$!M$kny78=4Nnrkn5S25`s~%e00)(Ke+Vou+PH`Mm9$z{jP4Uhh`GvAsJiIm@R4jz;D;HXLQ&ulVxSI>S#V6WEU4Fu2A(2IX zKKBsagWc=k*7d8(KQ*|6%H(_67w+bW_&F01A3Z^7?d%CyGkY9v-^f5_<^%L^QcdM> zJ?)I@>#K5p-@Oe!l?wXcKeHM)H6NAUwMy8Tz%gz zq;aEcpNhiIoXMe&iU4E$n}PYXXX9%1n=%+@-^w;PbL2Obb7a@n=f*TW?F70xm604V z^hNqLMfSsoDvx-Zm@+pyRWFL`a4C;-#|~TMS!2pP>s+H4GA^Fa_1@Hd z|Lz^lPv!$_Wc|FUxFqpn%oz{L4{|Px3n!1}Gy9z`tm zAL#UdOxeph%h`*G8RPYJr{>aguYoy0nGxO%wO_GDSPwBndgik6c`=RZ=VytL5l0(* zTF(x_HZeydzYPSms&8TUkgTs z=CaosC;HC1ql~VOC6IpRM837`acgEyz*imJ5#G!RT^vg)kJ(R&$+Tc&wwSUnr5)G$ zV63>#w{j62+L5HPx35~Hab&+@eFgr*78g$)%cb{uFlAq6KC!RU7xoy+)>%`fxb`Y* zOo=&(GleV0tS82w z6yD5H{bx*x8S|lI)xwH@?C1ef$NiOJBL^T_=4NLQg{A@dv|U>HdZD+bBFad`kdq{eF?BPW+E|VyjDhy zDNx3+8hso|;$8x8MeqRL6|aj+Xo(ZsxwznveIJVvRj6Ed*w}8 zz35NpDfR5xB>hSJrQfWf&?YsIv?K=UX(tQxKd(*JzfZ||h_lShb?!wdm-hA%U+>>B zW|lP%@1KgP^g_;b@_ib~){f?2n_`H&MH}ho)bwna(wf;oQ+wWXZWB z>p>35J^5MJ?6tHp(j?B4 zL>TX4J#>ToHML3o{!f?k5@g`{WQSd2B9BTm2<44 zp7nU%<9$eDJFQRJ>B+N9=qJkiBDH^2YX5rrMcJRdrg3Ioao@+i&hCw?aO9U{>{zo{ z&fon+zdbx&gMO>Xi;4B`YZuQ+FDb3^Xe)DIu)B+8UuC`4ynh;|ltbHC+j&W!OMMZ~ z2=7L+KQzwG)|ir?GnTn%O_arWG3NY6lAg0?ei2N~xxakMNVJr17pz&@$lk~E80Shm zsVB}!^+kTuwv$rhCLRS{qonRy6f^jE?%lF;(#DK!{;Jf<@IJc!^A;{@ z7whP8L_2%GUlFsy0%bp9d_SR06T5riqoOh!#P-J#{UZO+R<1aZyxw9X?R6Jk&gbTZ z<(tl9YL|K@$=Q}?aN5t_X`Z(@f98rGes-^_95a6GMZBj!lpj!~FotS@ai# zX-4`5te-y<8@`*N=i+;JpFH0(E?>l^h0)k7`;QItXIZ`v?N3h7^BwahFKv}){Qh$& zWea$|&TGd3ISVDsn=UhGW`V?SXo+!ia8URkJ<86-fA-iRte!p=>*RaT%BZnAqw~t= z?`)xciSbw^Yvbj6(T_2c^?Q-^+T;6wLCnxT^4+nn)WVzSQ@;X+w5p4#ef;p_+-XQV Ja=@Y+_#Zrvb~gY3 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/BGH.bmp b/plugins/channelrx/demodadsb/airlinelogos/BGH.bmp new file mode 100644 index 0000000000000000000000000000000000000000..ab579c0f15ec34fd21c85b47db6adede75e689a7 GIT binary patch literal 5176 zcmeHLc~n%_8NU$3J(||j*5#zBRgXDwN!1u*t2S|qirU8ZB%&f{T@ccuB$@=5xWs5g z35p|{>C5abBP7*nhV@(nx@*L0ef+(^a zhnXM!8R&dMOi=DBwpZnkrm`+JC$G%evH||u`JJV0t_Es-9*Z7wD-}A0t}Fu(>MDdLsS5>G0n!5p zAB)Uh2FjuCW(5TN9vGUmhy3ps6d*WoBj1GvFJbz`cx3;LT9&vpk@YRayJ}@9o$LJKTd%lzrTwZOp#fl#^YXmfCUqRz-Y#Q&v``HlwMeusk=XPNS|!xm2e~Z#OhBlGIxKeNA$@ zF*~oJyu2nu+n~$lO{OxxqiMbeEiLsAYi{4l*0yHrt7BtIVxxqP2bEVYRh&Oxmvpf{ z`BHn;&0JM@vtD1LioTVWa%|&>N#r8$;GLlP#w0Iy!C2eL`}lk88HY45?$~L=%I=<*djxi_x%i{P?{ih9@m|_OK&y zp61&aGW@(QC6uzgGf(KWop= zht_7Q_m6)4;$F-g@%@ehp#5~H{#>#%St{OFi_)vF!p25ug8rKa9R*D zV@Bb{SoglYZ+>^$f6C-T@6M=;i*|pBM9iPPnb;+IY&62be%RbBHq>Y@N2*Eoi`8r2U}N?P*J)Z0sBQ{%n6YaOY>Z6IZ#B0c~jzg&tVJQ zcZn`rQtn6+H@O;tCNM15DQ`c@p&DVAi=mU>4w*QvASq^(L!ZlE?MwCfT=&W5GyMi$ zm_NTfOYLKCZ*6Hkv3QZsh+$huFLP;W@%i%?R;)~PT5_;g-}b69|KYDDJ1t22VA+8& zV)diT zdEtO>t}Wd)aNxCVTT8;vs=d9U$BzDD(4f|)rhS86J~C$Hg}vWYUrzITYs!w{!xLQG zPzzxQiz)t!ssmJ@U$=%Wuk1`N>n_}t6YZFX?zFc?Cd7AJ39 ze`3kfh~0ZC({*9a&U+@0KRkVEWAW9kzZ|k_@W35?ddIoBpvXg?ri}D8b|li%>*DrZ zyB&H}#D=H%`F%TlOyH!cVa}`Wloal?w=W1gcWlZe)hg!)Ma7=43^}!6;a0?d|ChCy zy68>ozx?%x;5l=%f&w-YJI!aCkIkN&b27x6^p19MN!Y#%B?EEiaYEsMQS4`_R87Tc zw0#6+U!k4-Y0DtWxY1@G6Lr}RiJ(c2Bwfb!h_@Y_+N z{9k=FVa@90gp{36=(tm_QN4h6mk;pS?Mwlp!(%rYe! z%?d(_!@?qF%s8`fKJ;&{s4P4Y1VI_zUe?Cu{Mdw?qzmTO=DS5j_Y;%rGqWm_FSp)n ze2|}?b0My(v^2=;yVMXZQWqyim;F|jwV2sRZDv?#WKnX)^`iW|iUPH@MPiffUHx&EyV@RFj`@0yX()LQ*GE# z`+ZsTCXcHpf|WO2GO3(JJskxy5k?{>QCS;r-)PjN7>bMQE359LrPbu-;FRg%YD`h9 z+}v*K^;*9p`k+A6d5pH&nyA&TmjnEJq{ES*>5-+x9GINRv}>08#X~WeLzqmA`e(%p zmNQq@H00!0L`6lf_~^(Rzb#n3xP1Mb{4W+6W0zKIwzXzWD~upl{YhB}xptOh9wqHn zk&1YQ%d_sNH+Th1oZHHH7UuKAE!Hl{C_oqrp%qo>Ifi61QS<`>x|MGG(TCyS!3qJv z56gn!Gdl(kSAFQ5x8c3h?~oLyfdyZ>)yM5^OB<~|PI3ceFVL23*{?l8d{Q=Al^)HM z3GV2B0DltkC$7K>lyW78&M-#qP@ZeRTcD8-fbKygxto-$f!w4re5WAuDvgd`PVCOk ze7|(h=gG5)-%N6Bkz>{=Pjk+v*MrI3)ORRv?L^axp6S^`?$~USdM5A!#RT zvKP|V{o!`x+K&1Zw33|?^Z0kcTm@+tGEj=X4gckBD_?AHbQ`P$o`TQvV_uwQ3GJxCC8`Fq_~cu*w% kqf*wb!GHJp!}cpWA;_E+{XzFYv|s#ycN^37#6N)l1j3qIqW}N^ literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/BGL.bmp b/plugins/channelrx/demodadsb/airlinelogos/BGL.bmp new file mode 100644 index 0000000000000000000000000000000000000000..302006a2ec65506c3f9b8f4aeb2f98c36026f2ef GIT binary patch literal 5176 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 W50L}~fI9!XXeqw{?v^cqeg6TJ6C}z2 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/BHA.bmp b/plugins/channelrx/demodadsb/airlinelogos/BHA.bmp new file mode 100644 index 0000000000000000000000000000000000000000..0d23df381fe8db92d2638cb3f668e6a3339e3c3f GIT binary patch literal 5176 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 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/BHP.bmp b/plugins/channelrx/demodadsb/airlinelogos/BHP.bmp new file mode 100644 index 0000000000000000000000000000000000000000..5c69b32eb6759b2f65d26e870f0befeb5584c4f8 GIT binary patch literal 5176 zcmeHL-Ahwp7+?JXT@^`mpLbmdu?ueu3X66TC=?745sbX(BIpkg3JQvD1cM?X!LW$% zN)eGrNHAg*6eP{HsI@QVrpxJ>o4@U`pNIFH&2!#O=wL7B9G>sz`Mn>{J3SrnANEzp zDSTV;cH^yx4)|K|_4y8hIdnqassNwz{vQAFyIKDu$0G8?6UD)6DYAF&E*FbxpeIjP zI?n#8WkWgLUc6kT@XYzx=-A5F#SM`JdlN9DR$LSo!f#7qMsrBGTYsjs5>g_w_Vy>N zHeHwFoF;0;<=OZSc&bRe53R$DthgvFQ@bMc@lQ_uL8gUw1=fKTlicQOX~rAxuM zm_2%&6B~Ld?9j~&<_Lgk00I$UMv3Agtln1>KlV2By_(2NW#U?39E@epRXK98Fkj5C7KEGqU3LwG8zgG4z)tq zy3po()L;;|geHERd1m7I$89Ge)DL!Q8r?fiZ$$OTU?0v$cUxvQP^G z6Aj0YpDNd+tD%qIoE~)G;&1ag1aidyEEb!wqduxwD;i$^mF;aJTHtYV9dPcj28`yA(8TXBdL1(> z{yN5cr}7g1(1-PbtI1^2@|Q*f)8iTZsZ`P5{`2VZNKap)R4U_X%J2;SXw*2__5-J; y^Fqup%6OVG+~IFZO6?%y&sVVpa0;{|SRK8DAJyX&STQsr@fiL_pxXN4KY&|AR}Mb_ literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/BIE.bmp b/plugins/channelrx/demodadsb/airlinelogos/BIE.bmp new file mode 100644 index 0000000000000000000000000000000000000000..f308be1dd52e27553bfe7c93aff839c441c2cacb GIT binary patch literal 6856 zcmeHLYj9Q7754JE0Za%Gzz{;B ziGl$_AUq5W5-)^6NC*UkKqQ1bh!}|^kpu`3LbyrpP445|^Su4mz6sPnEzb03GP82_ z*?aBv_}1EM?Q@@cwrVKU-=q9Liu4j`2c;NKNoxI2<0N|2qZ_bWMZh zI0{?awmG)pgl(v?eSO|A%?OWa!3sy_9rByDbuBK=fPGFFreVV7Q{rZmU)HXz_wyNs z4zqu3SvK^b1}zwbVHj$kL0ut#07giML0w_7ub(1v!!X1a+G$gc&V3qX7+Of#Zd}KCWv^gibC1|l zzyAO>&zcR-=_aK|4@a;&bL0qIZ^fdkxfz#gYmplhgTr}S&~&UETjS!;efo67F2{iA z5BK92qAr7Ude2^zE=)wAuZLKQF8XD0jeG&dOnfTe^dV}~KR{bm4f11S@yUu6C|jL@ z`oaP z7vMs5CEAZ4!^d%R(OO(Y{fluREe-oKSEGLOW?Vi|gB#6@+2lLC?IXn#lzig6DJrPT33ZY$b+o!{|Kp3QRr)LN8vlkcva*aDaWT-8F-81Gi4>n z8a@K)(m$U2dKg5o-6r8L+iZAkANVsz-l7g$?uPA#Y|3KBB+6*9~8=m-2s% zZEyY!hvvi}dCDXlqs+Jm9zgyZGm!iIRHRJ%Bbti~v1-UL6wR573nj&PXXHq9e7p^7 zUwsAfH+>5`-$}u#jX7BUi^ou~U_Mrl8;{J#$D=ke2?=)(Lw>@19Cv+;$`_|$-pEnd zu`CJAE*CaTn1mgFe*-%c5-{h!;W&`B28U+7g_s8)MB&VTFlHktcN6L|*C2b$W7w0F zh}?(9V9oO{pdvONt0q2;^11PtclW(KJMjurO=@G&%nXlCTFwarP zmGjU8KDcJg#Pqv{!e%U*3kpz}nu@daHF)-xTaiOtM4#^OMT`3q`g*!xh5`thLHK*z zu=M~!z8(ZQ_WQl?8GdL+fVJ5`M|&GOJ1)ZA*M*?g2aR>a8kiEi0@m**)$K zlJ|D zF}PdLqB4Ic>hpFY%$_JVMu;_r{`vT>Y?6AfdWiJjNY7Nb$UNVr7f4P>{W4`v9>rF*dVrBe43;HaqyGe?khNyoQ|C2WynoTL@n!~ z^e3ag4>s-Hk8R2CqG0hd)E1XS{G*&ej~DgLjkwA@3d?REtesq5YS?=mknU9gjRog{WU{WeQpi0!g2Pnnng5RpY*BXah% zPA^)&Y=onk>P&_NZ^tA*<3)arcBr!|`zgy!OfR#K%Q)QIi?*ZX?19H|sj?EmuB+F4 z?je>Ib@b6j4`qpN$#GlaLh=wdl_OTu8 zJ0XQ7=L8qQQgT@E5WhseU?Dj9DO)fXTScdk=n`8+pU9MbA^L7h-62i^=BVIi_G7G5 zp5y4ehxD<&d%un`_kIoY!FPp+=3_rJHTJhQo-xM538}c1&WXqQ3f_^3Q_u|IV$Vr5 z@Ec$d!~dN}P1SY$_6y-`cP09?_Q?4ljvF3|!qO2B@($xw7=P(2#L*9y4`O-)XED(2 zL3PnCbh*!?vAaao24AlSsSl4varAU-|J}>z?drtQ#`ocR@x?(*Zva#2eO+f;QMx1@ zd$%Ou%lZQBdovoYX|JfhTep5QvY(oOlu zHHhbp;wd;1Q-|LHHhaF*g1+E6?5LT6iZiR>2{z$iQxbNc`sW~~-vm?Pm2U$1UI|CO zdwjeD6x2myRoOVCAGr?=9j-x4zX7J|TYxz#ztM#G?QijpFEzp8Z`>{JJ^12cA%71K L4PttOm;(O>K5z<{ literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/BLF.bmp b/plugins/channelrx/demodadsb/airlinelogos/BLF.bmp new file mode 100644 index 0000000000000000000000000000000000000000..ec7d154b0199aeb06e19fd0496fa0d7cf55ff7de GIT binary patch literal 5176 zcmcIoSx_6v8E(g^&1;f!WgXirCh^)y9`cyVb1HdCdEYiwiJht~R~}N8{lF+TuEkF`CNak2eAaMwT!GHmcgd{*0U}Qi@Sb(mX$=@?b%bJZrRl9Agd#30A z`|q#+v-!pKpPxf)`x*2(>-b9bJH?>D}Gr=GJB=lPS(q6cvd?-0lUx-w%v14`keG`Fx%uqbV95a#S|H6I)si zxZQ5j;|{N`?52{%b>Lwy9^Y6bH+^KxJGU2)rIMR319Mycxh>yZIuVO+gkruI@O5pG z%%paYGXB5k67ZYNdbN(H)bI#Gq*MwCHD9Y&S|7K&y)zVp(E_Smma_D8NQv5&U;xkH zf7JN6L#g74We??w8ep7${w$Npnp!mmqau+^usg%xU#`b2)=q^=D3aD`4GNRlq|@rG zR%oz9*}B=CIlsaB;TNsp;rr)`oY5Aib_8yh;ERwUs!8r6$__uk%aHk;Yq-HpX! zMH_(yXSy5eDp39VsQL;b#rK{Xgb%JDT^SNopp`~p*Pm`w!s`!__B|AHK7I@A;-?bu zHyI3|#%R=6WTvS6#IrFuA(qJMNzXjYXEXWk$E^}&O)!l04{dyWR4l5qbhlE}p+|V# zUbDGbZzA+2MIx~SG}&yn)6yo9^7Res&CLzWhV2HAZ?w5K?SC$!y7TDcGDPz4KGW9R z{ywVz?%7W+BGM=_{qe@_G9 zjHH`{7}3zIKYZ?aTE_1vm9wzhS_8w790RUj>#S{Oeo~>4{Afb<~6%A zu?oe(vE`0Vlz`u4(m?i#6apK!%G~^nR4yb`(zUfP%;b*Y9~rSr zWsl|y__A_&-y{TO^6Vd>UwII{$UyZ_+E};xU)Q z=UwoSvo4oIYf$P9$`^B!;FA!#U}up3kNdw=`e@+|{Hc`Ar~v;@CgT9?AbntJ(Q9-B z)YL3e+H|KP>^b8b(ZX@dThdXdH;JWO~D6OIH3wXDh5 zw79qk*#W|eQYCL_Y}nq}Di}?{{#pOWZon{3NzKD@q=6Fn5?a)<@gILJp_PE&WL6V| zAhgWYKZnT=QnyH4*JW*H%R35c^)73>l&Cwb|7gbRU9j0L;b`b6{)2;qkuk^U)4~1y zy~1Ycjo4a$f1lZGZf$Kfnw#u{wypRk`}K2wh7=0`!T7Umm~)6K|5A=V{xQ1y9-3EI z0Wnx%?(4FDi2peMvG}nlyf?V#u$7#0{{TlR(0^xl2b9C0Pk3dG6q7;YiY4y(c+X{1 zm`|tE5FOL$!7xiDX|KnwR zksTh2fH8EO+i-yA2-u0j;T3qu7WKU{bnge~ei`!e|M}EV^U1sD;bnC10$NZ%0;(Ld zzt3LA3mhkmCEzzUVEhXUliS;`wl`k|gG-SA;nD{8Kkx!hPEr3w{6+nru#wY!_O>*O zFCqEmv&3bzQvYw4UMjkXR9BJw0`ju)KbK|FtYe;Ty;AajgH9`#)vHt@{9hrFONBB* z(AIAB`Pmx*D-iIvb+ihEwabMv`K!hMqEmaP0#%ixe^j6V|IUP=`rakPyNaqVA}<^N zau7g{#E275p#=S}uSTQcWw8Hf)DKxO9A4gd70Tvt052LX{H0{9Ey{{RM{o^${J literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/BLX.bmp b/plugins/channelrx/demodadsb/airlinelogos/BLX.bmp new file mode 100644 index 0000000000000000000000000000000000000000..ece5525f68154916cf5b3dbb3cdca169c98f2bd4 GIT binary patch literal 5176 zcmc&&32YQq7_P*F$kEbnTYA`1p%hl-iWr1I0ErDpQ!t2C30NdTN>D&3h(UouLTZR9 zaz&{|6iT_;3P>q(h};FFY`Z%<-TU6{-m}NdygB@5no`=px-Ar5W@p~K_vZiq@BjY) ze=j>VZ=57XY;VDR82sLcpD^@X%s{xu#Pouf{yD8baR6@oGin^i1p)ztP&gd6*=)gJ zkfJE3)9G@#LZJ|Jd_Lb(Fzp%O2jl<@K$ex26&Dw8+_6 zZtx+;hQh&9e;)t);suRH^}qt^{Q24@*&T6&L4tfil%PpO2#hmg{2)<{TYg4gyOj>Q z#gKYHOw`@(@-Mg?;L$EexO7v?l<}(JgH(evm7|BMK6=k^sG@~LG|WB}K7fZtg=m|Z zBT2ASAd=^i(G;$~N*IiYqF8k^5hf`X(N;%Trw$>Sfl(^pM2JEhi%1U{_JF6u9*e1F zrM2P2!`vK|54wq;VSr@Rcsn?GoHA*EVo(~Eo~THZG^HnDnTg7@*rreB>&+&x5d6e; z@`A`DQ&&f1#N(USSwRkDan(`xYuR|p07ce7#f)jj!Kt#{JM279EiABPr^p)>B;%Ir zYSsnpN^q6+`Y+}S+rtbJ`j>VZs#lW%mk=sqXhem(ZBaMzgD#yWG+~4)Ex9Q@rTO(t z{DXYMie=V2CC6h6<{K%B zd3*uQCF?7LfLtLEVoe65MTc8~PcT~qROz_h}oun_GJ5l2$ zI`Yr)AtHRF!XxRUShd^&5`9D{Cr3GUB<{3>E4d9{Ir_hV9j^e#@$>SGsquLIbyom8 zW;nhQs1CMhTCV+MJzMH+(YW#RG)2%L&?<9jZ^Diva?sJ1h;Py22Y?)87XwHr91D#a zilrqgDh@h9IEy+f72UyTwBgY?n53`r=wZm@_GYuwQ^skeL-1FU#E{hkUAwmbxvb+7j3ZK&W6> zTiI)Sw(I)eUbOfbj-hENV-TO{P^CMuA2#W2mEYf~uyt1VL#eY@Ov8#5P~_X2$4f2v zST{Xan?KW-_pUy7ingxKxoDwz;e4&nM?taJ_oHpn1of56LjG@DZ=NwthpPfmMBUgq z$6s5mm&$DQ`z`eq2nk1lPJ!31Cc0j<_&Jv5820ux;@lbUvPC9If9%6NgT+h+pzuLH zKf(&Xmn`4ql-&z-v=jC%@FQ%YKpevLzSJOo-$r*v3PmzQGxIX$8@wf z;v$$7<|D4@D6T7S(c%Yh`vcURJl&8il{7~!%~lQ1#)o7oXHM0)paec{7*e1l4Pt^Ly7Zxr4ZfSz7XD}r( zJ6AhuxO!WO@o|&2TSi3ws3-9YF@d&hFvAA+YN|Xn8EbBSRGEluWDm~vBz~w_993QA y9-6F*@28kG)!_4qMZ5>$bXjyy;s^LlkmJc)^+fgY7P~_@+jQB$9{vFS0sIex7;t_7 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/BMR.bmp b/plugins/channelrx/demodadsb/airlinelogos/BMR.bmp new file mode 100644 index 0000000000000000000000000000000000000000..b312f7cea282f24b0145aad401e491e01167f4af GIT binary patch literal 6856 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 Q>snjXi$z3s+*pH< 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 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/BOS.bmp b/plugins/channelrx/demodadsb/airlinelogos/BOS.bmp new file mode 100644 index 0000000000000000000000000000000000000000..45bdd76b349e19a6e025c3f6b54a568bf490ced4 GIT binary patch literal 5176 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 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/BOT.bmp b/plugins/channelrx/demodadsb/airlinelogos/BOT.bmp new file mode 100644 index 0000000000000000000000000000000000000000..b8ea37fd41318bbe04f1c63f15da06919ec48823 GIT binary patch literal 6856 zcmeHLX;76_7=Eg0pO$HvX=ftiC!)a`S*KLDqpaUMee#pmZY=qm=C2gnEiMF;jG&VM(@$zL{yLN5JkLT5` z*Q2(!R{HJs;P>?Q^dQjY@p#bD(Seqh78neMpmE%8H@II}E4P(ro`b{T7-}nat^@r7 z?SW$j+WFb*^$t6htG^kB-zGqN<{1ohd?P-LqsL1zJ}(uj-4=8gy@$T)L|Fbj3~T2h z@;w0U>1Sd6D;K(-N5N^j0z=6->OUl7nE&_!hT=%LjLp(+ZEeMe(b34v$Us(B7M3ho zBDKrq!qKBgF?Y@!tY5bdt5>f^e0)3_8X6>y*R*KiLX?)4O8dr*8%Rt{L`rfp){*~$ z1q+a$pD%s9&Rx59Vfpgqf-A3?pZD$CC;eKj772?Nqq4FRMx#+mS63I3l9EtSQGu)t z8&F$QBfe&{8C$k&!P&ECv3BiR;efJV-QC?tPfwRUy%}eZqX+uJH=#OyE7ZC7LVe;M z477bMV=|V$K}|j7l^NIFr1%A`!gB6mGMv? zy8|}DTX`q*bJ~zF=$ zIxbweApLscb6I)0aKu4;W(;{8j#aDGm@#7pA|oOMHy%5Jp4rB6?DHl0b3gChs#U8n zmFASXVg;;LD`wA{g^Ej;Bqx$-&)yh48cj`2f-U=T4C5Oc8!P)d9Oo@vhoL@x8#MV3 zQ+WjHlMfQMglp@bq4jx%uYS$wDVqgT%XT>X>Yyul8E$*G6y2E@3DXXApO1pEHWfD2 zDdOvQ&=$8m;apdq}u``#C965r_%uMX3cX7OdbY#lp$v9t9 zf~!}rB8uk3HRl88N>Nb})~s10h3Ci|&}cM>ii||*#fzvR9!GrefoPO6AIW7Jo7;Vr z3y7O{4r0odi*RNm4)~#Fd$;Tgyjxx`3a&kl)nQLi;7jvSww-+jv zN-!uWD3CU<|GjtL#V?eTtfj20%rSnRFkynM*<>=w{!OH|&1OS!aj|gSVzJ1azo&P7 zO8SvOI>htf`SJeEojVuNb4t5 z2Va8b@Dh9$YJ&v#HNWo@??SlDzllKXH}w|HNIwU)EZ;>1q(B zfn)gsbRo!2?+I)x@ASW)<}ku}$^7EADY1OkGag(I3=9lu0rxY1`5vL@1IIEBN-S#~ z>#@@A@9zf}rEMkO9?}7&%{Akz%#Ca2fx>O>=X0R5vok1$?f$dJ2V-3-Y3Uu5x1^(t zYu=^7zW~@ocnAunjJV- zScHumvM_n#M7&KH@;zlN-M{$x>#x2V!aQ({(DTUn^4)H6{6f6`>T81KIQqUAH+C%E z2@l80)Ku{IaR|SW@l&v|Y0shW_ayliVw=TiK>@EbCO-SF6r lgbV+EY`OL=X=x4pCi>4e;7I-<`+vhXgjWc!|0@T8zX2R6_k{oe literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/BOV.bmp b/plugins/channelrx/demodadsb/airlinelogos/BOV.bmp new file mode 100644 index 0000000000000000000000000000000000000000..84a34c142ac177e9d980f5f03d01a9c402ca0f34 GIT binary patch literal 5176 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 literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/BOX.bmp b/plugins/channelrx/demodadsb/airlinelogos/BOX.bmp new file mode 100644 index 0000000000000000000000000000000000000000..3459fa5151615ed4269d857952096736e104c915 GIT binary patch literal 5176 zcmeHLd2Ce28Gjr~NOQCmQPW6>-cpnNQ?+TErb*SJHj#)ZV0$q(tk-WZuZ=N>AcWHw z#9(e?VjFT$0yTF6;RvDvCm652Yp;*B*VnEOd|`Zm4c_-=<{kabE;UC`ld9nl(vD|m z-^_gTz3(^Q@B3!fQ>MN2v=A!4LHl!j4EXS&F~axJ3c^@)9Am?u&;T0!f4lr2|3m11 zO;;6Nzd{vXkW~iJDt%1Vbxqe*RpVb@y*zyW2Rx#w<~I3hk2J>31h+E2l1-{&))vxD zh=%gj(d+s{iC@=gq+b?F)k#(KM>TXpg(A3A!9}Mw(xA%z6Zm)I4|C{C*Q<(hC&|9b zj;o5QL;Jr9({xFLp%}WS@+q%IRJIx{*nwz;~xKK)RcVwGP5n_CV zMVy5iA2-u18n$d&H#9Vicc-*da2NqBl&OMK5uB<}q6wwMH$odE_T!o$pT(35!1%*> zx17-_hZ3B6X^1`TA%aumt1c;%tI4x9L@3o?tb=>miE9MmfY~b zp$hLJDVKxT8Xo^AKRIlUH(0H+^Yb?~G}QWhHTCsgZ({Thx3?tN zW9;Ubg1nroy*-T4-YY$oo^lWi8qS?PWidxv%u&S`|A8(@ht^$o3CI%?=A^D!R_Ci} zXslbGm1eWX#Kp}xe54Qphx&QkjxE=IR;{eZzCVhlbV4R(qvqRq8>ii$CN7`QxlrBx!BvG`; zCAZJN9XZ)n(crMh)Yf`nL?FXEC}cZnqPAlwgb5l%0VT6dp`XUE;9Drpz;6z0!@5sf}PY zys8%V-Z$AKqF@Op!fpH=ms?Vj%r^6^tgKYbJ4-HFEe4x8 zIvmnCXLfAeC>kS|EKYDbi~9R}Po6lOV2MdeG@3)| z-RrH~xFHQuW4FY9@NPaRcH-ls4u{buMz70Uf$Rt)7Pj*^huy0?0CKcwXRU!iWaR5dkL(}l z@5_EW16yF4JHu>>G#MihFAGyFwY8iw*#7+kFdBYVBmKaCizA`aU-_VqJ>#K584>{m z02R;5lm@9SbbK;hUDhd$$9OoUm#P!1<-Z1qPy!0j(jnGE>60G5xzALwYm8qSw)WDe zDxeLU0@5*|Souq%bQgYE4yL6qL&T=1EzNspv(*~CXn|$0uP=-rZ7?`eRCF#kcgwo9 zsd>3u%StbXf|eT|2sGpTFZ}!7)>i-d3uiOet~zvZKbGL60F~a|wR1yO#^%jg$BrH7 z?&%m+SQliE!zQ=>Q!l-aFb@^nO<0JW0f}ztmS1b4zw^njHPWp;xEc_o5x!6S!%ki! zh5&iRCr39?*D!0AmH2ilwvY=*ikh0$O%gllqE6D!@OuFZRPQjG-$DP_NM81lIj!=6 zYw}(Ap|YmRW4Fa7CdMWw#>2@OY0DTV>X(%8eeH`v+{k}hZYaw0Ue3%%%b9m19GQU5 z?<*mlP=Jaarcim(2HiLm^!Ya*2nj$2>+lRQJo7uxFjKp57Rm(vmo(g(Fpd&dbxZ7C z{Fu+%xy>|Z1|r`WJALPlEul3Jq=B{gi)@kvCum9c_1&2QzlJxye^q*1^i9n@V?K||9S{#0-Wp~CVQ^PdwS*S;jb6JRx&~- zdgO1p`H!VAcfM%yeemBS^x*JguR}*Sz8^$Eo=`goLO|`gbw#+(TkgewACYhL5dH)B EPeQXfoB#j- literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/BQB.bmp b/plugins/channelrx/demodadsb/airlinelogos/BQB.bmp new file mode 100644 index 0000000000000000000000000000000000000000..004e761db26e852efe77a0880dbb9236f7cc48fc GIT binary patch literal 6856 zcmeI0drVtZ9LK+mXEDYZO^mN-;$lpUf0!5(V@!;%7~}r*PfeUr=bq}+xGidYPNUfv zV>0$;Y`VEIpuC@B9dF9YtECJIr4$P7Xvd?aw7vKEJr__hBO7cHmPqpL?LGJ0drv?2 zd%nMOd0}Lq7>ex_6mu#R!$yo9e-fUb0sD7=r+hmik>DI&?m-)d z2YN8#w!`h}#-)}@3^{G^dYl;OHN(?y!I;m(Z6^l1O>p&DU~8*^+hJvYJNsJUWV>g; zHs`v_g3ml&n0IWd0#8_=(l2miMBuvtfi*UP*E=1a(D)2$Kz}LM3-#Z2N8~(ug z)R%GTI~Y>}iL+!w8$H41JbrO!`M*Z7PG^QiGm$ z156dC;OwZu$dD7Art`4W=VQRub_+6<^GreSlt8jq;3e{Vpha+kD?pVBT;Nv9Kvi)6 zTm&eiO4z5EDi^rFTHuNL5DqsrU~+OoV-OC75DJIMZF+wy=tq#pWP3OgMrbMkncIO- z0Ku>yfxsAb1ylU4ay+3h&u8C=qCi!bu1?SEy?=RiI>)A28p!hPL4kYBW;qJGhF)s~GMTgN? zcn}Tw`(bS?(fEXdlW4ne7IitvsHN)i(@>k6ini)3beqc2P$GNWKS=le`{< z>|dPz1@iW8K|$I!c-_vc-sfufUW&GW2xG?;`jT@T78NVVG`^i`6Nu$DmRw`VErv|v zq*p1_(3jjl;-L>Y7sWN|vZJ#RIZ10_uFca}T=BY4umi!or{d=z=4UFL)&|z_BV@Wk%gaW7&)U67%L8j& z9_!b3)}gKNkNa5X(=~6}O+|2ZHK8Ko8`i9Ka4sXJ1}lm6SR)%a4j zJIG!7zoFoO)+X~cmn>yw$hB2yYHCr>_Il>jLi%*G9zDeOpeU}F5-A;->LgQUKpds{ zRptQsB}mb)vR>(^ihyK!?OHV7c*e(ke8)87va>_eu%koEfZ6_`&?M)2A3Uxe_$Nj+ zUUFSO;_AgvPYZ^7+o@KrO|8t*x$nHQ*ZA+ZDt6JM7>*!@bzVoWCUX8KN~V-#nn156 zFjsXmT;s_V)(C#&I_pMwF7~(1_y3f|Uhig~C&xF!=bpqYeSDPulk2BJ6;YDs4AXdK zfaE$`uh6ODd3rgxh?;b>$G_aKH_AC&78dw)Lf|=O!Aj-;`uXnepzM4HrBA_H^$6>i znf;dg?^){c{XL&#HcrdToIT+ec!&Od=CZ&ldh=Q4LK{83)Z@Li??1~}!8kKQz6Z|! NkM7p~UDxLe;7{m@K{WsX literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/BRINDABELLA.bmp b/plugins/channelrx/demodadsb/airlinelogos/BRINDABELLA.bmp new file mode 100644 index 0000000000000000000000000000000000000000..7b3beae98be9d969fbc99b5ab6c0df0d0c5068a5 GIT binary patch literal 5176 zcmcgwTWniN87>HkCteT_ydii%@Qzk2MF@D{Wy^|}U9_mBLbQMiXsJY_F1uSw+if;Y zHf_@+O`W87G&d)$or~l9HFj(#zQuNYiG6%MK0fy|{Bzs}HW$gwN;~>JnVFn3 z^L_vP^Z);xU;g^X-#R6iH=zCj{N8~d9{S3uZ$o|R)K{T1`nAeW9)Jo}Rahh;Bp^xP z1;j8s1Ksqlu(If$A2S)WzQi6QBE%v@OM*NfJPiXN&;Wt5-;jGRyYTQq5d@UY3b90? zK;riW39&phpvmJ&Dia@=tTN?^>MHqjm4zh<_|qbi+|E=qm?`GU0bg!**4fyo?CrP5 zGx#a|!&(4sfB)UXVGBq#`$-i zs+M*!AdW{8;AUBt5BjqdjVO^}Bt$WY<}hrSfs2^24u1qr&8DDo0ASwh{N z$^yYJ&UkBY4X&u2m1QJelE5Bb@rN!aa6Hd53FM)>g6qigF zVI2NLafp4@0D=p1w%+y?mO`0S`Oarg`ui3^TVPcpm=dS}>j1AH2tqcSB?tnW#)-=7 z@W-mBVgF$v^`y7&@hUWUtQjy`ilFbpBT31 zQs`mxtTzw?yc?VGshRa;n(_rwU?U8Rtd0FdGvhIRr@j4o!6Zi=yDjesgJHr>FtDa ze)qL|0b`LJBJ@43AX%hj`W5ZS z&FZSE`5&4t;>&fn&Sw)0_FdSw0W5qv)LM7jz4&*(G5?oKrXtH`_qZ$Xu4VFI@a)aM zPpOvdM2dgwjo}4NFt$@{xW2kPOVwPR({GTME)8G3;2i1OnVj^VKi?Dxl_OE)*tU?vwj>4Z&zCXk=!FP4MvV&x}53Us5iu*>stj zzb=lCM(gS|Qwv+Q|6aLuVsL3&2YjoG#Pu4r&%u>)C=sK5k%Tw6W8d7? z=-jKzE{oQiNfku!sV~hR_=CJgIr;vxa!gF7@>-33dppA63;;=h0~;xT$c7XA>F-b6 zsr8L4MlSwwY{S3D77;^=Lk|Nllo-O#?CQy=JC-lT zAPM~7qW#RzwI6+;f=z-JlY`VCUqHWmTLGpn)2SRG*msauO2#f9tU_Mz zbNu%^C)C8r`Tq|bw!{inuvXv(i2y0Xfei#oWHE<+aa#Gq?=(2Qxe83km?{Yiya*Qx z7#teexO`c$ztxA>fO6#=>)@sz|Hh#yjvT0pzs*1&7N?=$G!*Sx#;oHET3)Z^b?c(Z zP+Q&fC{0t%fxkMVkd#4U+14 z;a^uLHLHSI#~L&xtEp@;mCQzR!^K$bMXiM}SPMooX*5zMJ!1ng(2k=}?c+R>?cu?y z_&=)MJ}ey#j*ib9iaV~hI#2T_Tdj402cHJp>cegDa9!Zhr@q$O?Uqlr+HU)s?z)nB91{V{9!#6asHZf&bQf{xTg~rCrZg*a%3$LyQAvbMow5vy`<_4>B$vHce zG$;#;W4myHoSEL4nTd3D8Yf0W&*yXPty+gMZZ)Nz_LWUs>&xk;`t`YIo-Gfrnu|Z39!`~V0|Ulb zg4SBS^({leB)x9&_YSW;9#~atBg4~{Xf*9K?S}pNQjTAkHS;u1hUP|tO*agMJ&A#! z2`Ktjtwc@Z~<-@X&sNn0oXEQlHXbyNOt0Ugsr`8!Gi4?yb zD2`4TQiPaHGJa2Kq}#H%;PAQ%G>MW-aC+88(`aj}(BH2$o6}w|-P2{%YqvuFRC}je{0wSPnj*$ao-8JPKH4@EF1ehT#j~e*q}yUGo3{ literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/BRJ.bmp b/plugins/channelrx/demodadsb/airlinelogos/BRJ.bmp new file mode 100644 index 0000000000000000000000000000000000000000..81e2ace8c2ce110a397c5e03f2d197be0bac3e69 GIT binary patch literal 5176 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 EKeT%bbpQYW literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/BRQ.bmp b/plugins/channelrx/demodadsb/airlinelogos/BRQ.bmp new file mode 100644 index 0000000000000000000000000000000000000000..d9d4f10a0ea75e1fb049eda66e6f0efef316b148 GIT binary patch literal 5176 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 MN%*sl3H}54Z^^4B&I- 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 `=5&QX32Xc`De*U3M2Q-A@a{1 zCHG_u=aM2gbu@_NsP)8!FCiv)7BM?lGI+=p7A&dfYL$sYtLG5CB!GxTbLH$%#qq7{ zq&UKs%qApY21{lgr|%18@(aQN)-B&8-{XoY zE6wL}aUP{bvL6&?QFQ4n1$igAl#|Xy`96}HnMC%v1Ts>OP+aKwuJObC`fI{i^MFIn z>sI+)!fLgA*UZLMf2(jfY{q$BYiqmY7R@7eyMuy^L?Y);W5=Xn99%V*g3N3-ZzyNf uCk0IODq!u`neuJ5&KQ49uj=>M@Z4LC-$T@n<}I7m_IJ7d*Mz0VSNMOdH!lAG literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/BSK.bmp b/plugins/channelrx/demodadsb/airlinelogos/BSK.bmp new file mode 100644 index 0000000000000000000000000000000000000000..89cff6a72927022c8aec248e02400fd28bfa6d57 GIT binary patch literal 5176 zcmd5=d2AHt6?c%TMuJvVMcPP}s8Xu7R8dt3!EsIS!C?p(2!R9$!q|Xq42FPHbI5k; z#!hV4CM0q=QgDg`AslHO91<`#Zc2*dy=Hf2?{j8%jy+~~_L|w9ojv+&5~)>^ithRk zKkdxC{pQVk-|u_xd*A!M((&OO>j*#J(Tw--1G8gz@LA>bK?4%GSig= zfe(i{H%)K>HsJUA7*{wL5aYts_BU^8)lG>uJ{ob;F3#tc_(&!pX42`2UqTe3VGr%{ z`@D%nVoD5wl4*oLolZ-V2o4YUn2Z=tW-=y0xWjQb{Q+etLdM1Wm_q^9=ceMZsR@KE z@uyQM!ld=N>G9#~wA1Q#+M>arV)Q1*dSoMmE}MZc>t!P!vu@Yet*fNX;Bnf6tcNh^ zeT?(&jZ2i(K;hQ$;Q>G6k_`_yOlk|JFr$hP$0jBtd^8w(*=pUQHRzWbJ!A}$?oHX&nQ ze0ufDsg6h}`0-!6D7#61XV9vVV`FzMsC=NW+n~5BA02%EM011-eDb&BHmyu2A7ecX zz!B5wH%ZrORJRV*t<+#I>WoVe^>di+X_b0CrroSFjQBYa<0CK^oH@hKA^u^O3VZ~z zR4gWdSNTZD@1gi;IOz8R53k~4T$Ds`X*!ef(auPSgHI$$0zM{0f#>|hppG?3^ z4<{uE`OGI|!YOoTurc|Yd;V4DW<%s45o&J{J50VgToZpw@5M=3p zu-f-({ng%9V0w?dc%#1un4bD)WkY`t27Ij*#V!jbCB)9UvZk&1y^UM?UpoW>XPS3^ zdj1Vyj_=<%eB~V}k!Y)2s+ZrP?8ZNBdz!_~q?7_Dw>TW5f#6Y_<82pNs8ToKjy4=$ zp+;M9{LcijP^sEwFjJ5qk`jbWDwzU>SyT4-+p3oI9^L|mk8GIN*H!~g-n;bC+n3(< z(vBTZe9xv=j^DmkvEZTME2j>wob!5B5lA*|S=irE56r=pKfnCeG00&%^Jk6^U3Tc? z6~CY1(jh&Jx6)t|k|``2G4Om)O3srh&U-v|Ay$rQ$#`553YQ?7H7Iu3;{`ol4+#+j zOxBb={?6JJr<*FkaP#K*{hjrI|KKx^ja)h7WAN(2A3BT(AUwL^aS%A$y7RTF5@1>@ z7GLaX0H$%>udkha1@PAv&6bZ`!wt&Xf>}DPa+}2g&QGS(8?@S^b~`YuHP|_tQHH~h z%M{L7Y&gKpm#c~pO|u;bJ&`aMgEcY-no9hK{u_T^drj;1KS19ubT_nDmICuX@Yfa0 zQfd`NI^#)_;-thjz5aEAV8r+eRC9)*Em5Hu(crPz?Etq5#WrBNJtm8gO2+vJq>>!q z=aBz8YFC_TsRG+Ao1eJQbpV)#XC52=+W)u_>F+$yvUL%(zuQs&mH)Rd{@{&2Ld)T2 z=Y4ppRT9NL#gE+g|DJ+bUt-GV&9=ifJD-%6BAQnm4v#3p;`a&5x?=I)%H-;3F?WaxvFK8C0+{DH%$ zx^cc|Z|Q7U720=|cJ7|=e_Q3^-o{PQP@sO52s}TP+1v7OzWVfBD zHk%>r7b;ZUge#Dc=8nrRyFIRWY&C|dBM~$jE!SY>sBXW-0xM;hV{@#Cv&Y}Pch&x~ zpS5g#a`#i;@7}kjVa+eM&!3@}k9tUZ?UEl`v@#ku@5+C;aqX}6mj0xpdO6^4-&t~~ zeD1O5e^*^N^Z0@FFRl6oWJ;$6bLbT{g+Ide>LV_Cm(d9EuL(zRL5L=k%QTvc9=D#4 z7N`(;I1EaL1O81~?OA%FSnzx3L?RAM)|5Sd8zv)67<%s(^2KLjjKBBU`{>vZ^n>+~ z=ervGZWr)IAe`4(KO}++j2r4dCea@8sgTBt(u73zO^I%hcnCfMf`Zl#m|0A5h7AoK`PG#`!3hOulTfe1w5;_xdNU?>O2di`z^4m{w{BjEESAq1wB;27}V D|K<{c literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/BTI.bmp b/plugins/channelrx/demodadsb/airlinelogos/BTI.bmp new file mode 100644 index 0000000000000000000000000000000000000000..b369eb42372a51def9931dd2fe85d0658a8a3b96 GIT binary patch literal 5176 zcmeHL2UL_-7XD`jrWa-aQ2`MHf{2O*TNXF!t{Mw%D#H|-qJT7)rbcWiDvAv&A`n0! z8kJa4vAfbSF$x+(Y{>4lXLc*oZUJ6Z|-~lZQr~1-FJr>3nrT& zy`PCN+QY+#N4JDS2EvFSc$jc#=+nCZL(l*A=l}Ti#{bUw(;IoNp^kRpP9t{(_}nWk zDZhLv!P7l;S-3`{$=jT`Uf`Y*vRK{u=2%kFM!rW%@Z$EiR!n6_XXl}15lPTT)Qasnw#KwKYHQ4__MLJa&n_&FXoxFJ-0I)jr>`Fkq`t@Z#}L zSF^J~^EMxu;`tMlzw*ZQ1R*!fX=H%4`KcXAcduOCB=krWaqkt~K{Y;k^e}Tp+=`iB z1Un878)YBAU{2P$wY9(0V2)vgzWD!e^E!`7@nRWxo6rMot%P*47l#?@aya)%VR*Z$e3Dl{~l;o zzI-mTw&2qZWE_T&Lpz$7P>^=e6_2 zNsEid9K#5G_|qf9g;YbnG4#N)n_o9!+B?w= z^K!UkM93g+^7F>Dp+s#>O}`bG>cd};WVKM%M*|I zn49bgT6FhXVb(X{#%lR9#YZAUrI<-r60iBN6ejFqN9I_2B0N{=6fop?t`HDuK@= z-Z`D0EERKUgg^(I=2yR!Va%ToiQmDG2|RsNeKvJ}+^p#mGq(39@IwZAu}J4L(l9CX z{EOKXD8g|rlUGjvTdd0zzu`k+A442R9E^!-Z*BdpD)jU~l`TGZHrdbD&w7a5#7G4B zUtZj={`KZRUcfLc%*{a!?X2v$LbGmw8(fp~#7iX^$$)GUHe1>i=NlXVulfb7IdC@WslyLDQhw<|VNQk{8R0Vxwl0+SRS0y4>P^2DnCin{|NN={P>Y>Gfj`{7 z)zaJyCGhT*LaF5-5sk2F?ko`A$n$s~KN0d)#DX?~vO&Z>v|{;#l41xrtOVFte7ASk z`OLI4sr&bY2gwJs1r$Qu?0+^k=uT;pR2VyL>gC*QWxb+Jt*U$WG~UBi%pyt6SPd_p zrLT+w{63au_e)EDEG^y@70P821uSaz#`WLdxvi|L1I>UR>VHZ8sn@R>7dhC7Swt^3 zZBKAe&5!q#3Pn{>QG!fbb*Jb*!>_EblUkY0hGWkp1v%P>j2$H($d)n;J;+GmH@e!h zdj4!TJhIrv68fJ_d^dLliJCGtbNyORngN%D%*P=YGt;06gZdxhXshjwHtNB-)B^$* z8OmzL3SCdKJ1B4#f_NGti)<{z#yR@gS_+s%=(1Mx+#owrW0nE_z|X9%WMv49s3JH` z13A6}O+-ezlJxD?q=Lh#;09>Bm8ZKAi_V|(9%Ra=B76$sH^_LAtrheF(-Gvs?Hj1| zzN5bQcXxMJ-n_bdv0s?;7%w)1%OH7~G9#Two!qmdTdRTQ^DFP4x6>fg^3j16Z;FtR+qkq2oqh_&WV| zetz_n2~nRT8wt4P6@G)pqwlh&AXrZf{dnS5!18UPerv0GS!= zXw%c(g_*ycoz6ERLy*_ZpN%bowHMERsVXmhSY81-v2_%`kGXM8)qUW}-LVatPF?*w zng!ENt){KDtzJ>rpis1{+PlGzcNMik*-%wcUR_zCY^XCx|Ulq13`8 zW~y^rpWdc-(|QNE?K(RnCyj&tH(=ZKK$=^KKZ@Q zeXctZ39++o?em+bFZbK~k3*9UWJAZwry0QA0l!Q3bK-E*#!pU0V9P$WfgqcP7WWIIo`jkGh%~SSdW34MyYsKBe^Hd6eP$ i@!VM5%IEiPUW1kY9)8sPUwZsg@&8LBN1ccN0R9S(o{Fjf literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/BTN.bmp b/plugins/channelrx/demodadsb/airlinelogos/BTN.bmp new file mode 100644 index 0000000000000000000000000000000000000000..997eff7e027f20d5797f2e6642f1252b244f0e57 GIT binary patch literal 5176 zcmd5=cU)7~9?!G37LjV7$dWA}2$Z4BfIwJ*5O#nEf{JV?WvEzNC{ZD=tt#WQLuDkbOr^PeN;}=0QKLf4tu(=j7h=yZ3j0-+O=akf`>`1R2@F z*%%HQ9MYwK5!B#JAk2a%)w8FDYynO{9!YQjFbqRQIKagK#c>>9@~)G&cHrnSuaGdm zq@?w`_mIOQiOz23egP5Nzl|v>wn|EN&fXASw8uUvC7^&#J5XW~7OtkHzxu0f)V+nK zL1F$mpRe9gWEG#}OWzu>W2g6~T-wgvzF!n*8kmx@b5iT;{pnw6=`9V&+K^FMnNU(< zMe?q{bX}ene|1d`ehH9ZKmw#c;UME-*KjXOGzowJ07SYr6E!}3ym{-_21Mev2hF%(imyOy=T`B43{U-}tL4ijLIKf^l^0x-y)hz_QavNIE_ zs-x34hti8e`q-NO0g-lg+L7^oT|HWJRZJ5_C8GG%P3nj{{|?X2_gkE5>aFdaeaUWC37M;(ztB|Hw8|^+d)%t-q0ROkt7~q~eOJ-z zi!B*9ZYnFNQxBH~U#Xv~ZIaUR)ZQ=3enZ~6$4^qXe*0-hyG3?RcyVdMxkkIJyv070 z^R?$^!Z;nDAT?=B0&r9;b#auBq4`G#G~+mmaiR}Wfoe8?!Dg;Prbs=3@1NgY)zZ!8 za&ZiuP9%hn@)+a8A%4L&IeAXsmxgwAm3bw|aZd{SJ)MBtSx3FW6(ox7xAY`aLu%zxLO@O>rJ^EE0a zjxJHDfyIY692*qFXLj_%vdL7>Z*E7Zb6#lk39Q z*lqr7c|^>`G;i zWc9JXX`j&A{Pg`)mcePB_EnbdC9tq?RO2#ByF;M;Xzcy(+LUA2-&8&u8yl7@YibeZ z2{CjknU8d}b-0p!{3BNNumwCIX=n9@M66mt^4eOEI}8v+nq<+vMLRtx{*F%M{Lk|O zR{zJEOxkngz!WGpklLgW$0cI1K!OSZE&>?zK9&SQfdoDUz8YLSLp+{FRmdVt;^4km zcppXgjSGUFGmIKV3Oh$NFYxq=*$NrG+Q-pS5txmSht{zdjIPpPpw?@{u>ZuWp zyNpGRjD`0`jau-<+xqDTZjKK0$b#idA%7fT2r6cB{y6`?Kbp#azm+`00FCS9Ti*Z+ zi`kkx2DSJ0DHV6myV9$6e^{**5NZZ&uJLX)4}l3G^iR1KfCypjAf;t)9{QeM#(_c0 zC{$l+U^*?v#>H!?r;jzs&)hrE+{@2~=xT1`VB_Oww9?hW*^NSr^!Ew2ck*;_@wTvE zX-%dW5?xK4$hr=mCazRd_dsLMU{m)XdlHqNTacBTKlPMx`%04e8)ED!c6 zWR5Q03uYHhs2(5EyE|rj4OQ7IB+%Oe>c_S{9H7^>^>Sc|h`$+ngs9Xnme@NcH{XeD zY;dIK238!4tgZXd+|o2OVq=i%v;UqJ5R*rcRuFVqe1X1!}{vt(^@%B_2|2y?>j-q-zj(>x{p zfUXw`O4_94PZQ78!EQ}IFoL?jj9OFgeYKH5nCDk>!5}C19aY1RJ9{1cLZPaY7)%{+ zhhEyhR2+<|Fufo+!bJov6Wq@j`~}arex2eb9uOh|AVFX}t{vsLK4M!|4OZOl!=;_V zD}-TE1MsvkF(|F{y3L+S?0X-BKWp0yEOse!xpQA$tvocM`)sz%MkcI}ha@Y_wRN{)W=pl#}5CO|t--E%8=;=Do8i46nfWcxBZ4m)-3%>S7@0rC#AT){^hj*93G9hXxhEyH8f zwTyiVe@JM3Omz1*GF!fUO}t}#nz^$Fg+eo=g=+=|xhJL>x_Cn2un++7W4tAL6~9a< z%&{0E?!)jl9y-Yb7bek4)GcfxDW^pn2)H#Qlo|nSn3FDl4Q3{6{>GaK%_n9Z-gQcpll-rf{|rVI7>@h8SFo^Wc=5s-^IM0 If4If+D;;{?{r~^~ literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/BTQ.bmp b/plugins/channelrx/demodadsb/airlinelogos/BTQ.bmp new file mode 100644 index 0000000000000000000000000000000000000000..b95adc32308217911806d8d36663d31bbbbbf961 GIT binary patch literal 5176 zcmeH~Ur5_m6vwkM%4qk}buFc^2ieM`9fdmR_OKP*7#NbRlA)rK5XGVeLxKjyIzttc zMH)%aVx6HCiUwO06-7lwsiLSvQB*2M5~5hq+F&tKMKSxNH~UT4b492>$o1TF&+nY` zJ^${{pMU$|3)#Ep25U6GM1En`N3x5oGTFy$nm!S~cMO)$hy9%3Kgs`x9D(Cf|I5qE zo12?tVqsySv9a;x%a=!!mE(fHudlDOv$MImSuU5?)zu9S4vKKR?{NNlN9W|TH zKA%ru-re1O-{8?7#(!`S>geovP+c`XJ{GYZ-1HANt&DX9ywmG*BQW>(_eVxX+S}V_ zXJ-cn1~xV}gd~O9-`|hxe!pLESl_;V+uGVnGRMcqcXoCpzQ^Nv`t<4Z=g+sdw_$>? zx3{;et1B1`vc&|dD1P^ZTY6=6b(L3y-2)sAg_f3aRGwTa1z>oMO>xW@t>_x}Fg{_f83ea%cmDMvgrGc)=5MnP*d>K89w zuywh@_IOrSRPt6r}oeA1RyfAr`P+r~zhPM0J2Bu%T; z0FUy?&d!pANf)lO&CAO>+$NGOOcN{wh|!rdpDivfLXV7$Ub^(9P?DUSa`*0CXt`XW zQvCrTD=9Tq*lpsN)$Xv_3p1syZ=i9iu1IXbuh;7_hTi=Ae7saB6r@EG2KLz47*3?8 zr%T<70HKj&3qv2+k72o^wUWrK@hYmuE{w3S(U$>VdE_ym^ zW?W`*%FP5YoG2?Rqvk0mg+ean0U5PgO>I-aSy@?!@pHFD^oK(K$6sGx&nfsD8eEc? zTAhX}YKQKSn3xuW1N`mnZ6zfoG@x`U2$6uq#6*L^AUIUb<;&56PDx2ssZ=(bEhZ)g zI51^@m0K=<6V=<>gO_JH_9jy?1UMOH zLN(z~DwW8*dGjVK>$Ze{et!Ni{+yf~IN}vnr_(9&Pa8A*1)n0nb?bMpcai)T6-BC# zBe01{2{ymq2aPRBl^|$j0G~g9f!GNSlS0aWQc_ZJaoF?n^807cehxwX-;4X@W^CL~ z*T1`_yd|Gs2s<}jU)o<3-(Mv6_Jxxpp6Ti7jEoFusxCD(1%m!8EiDy2$-oz_#i>%M z5Q#zt^B&IvtMFB$(Fpvcml#!6R#sP6BNhk*j7B3p1TP;F^DX z=_DFjd>bBw-!BmhTAoZvsoXdgdYC;2~qIXOy?_zM09EF=}& literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/BUC.bmp b/plugins/channelrx/demodadsb/airlinelogos/BUC.bmp new file mode 100644 index 0000000000000000000000000000000000000000..3014ea7122a8b5b4d2597bafbe490367bbde024c GIT binary patch literal 5176 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 D9N_Au literal 0 HcmV?d00001 diff --git a/plugins/channelrx/demodadsb/airlinelogos/BVR.bmp b/plugins/channelrx/demodadsb/airlinelogos/BVR.bmp new file mode 100644 index 0000000000000000000000000000000000000000..c67d4d9b07074f5a81e5893ae3c81b2d7c9d7f3a GIT binary patch literal 5176 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