From 99ea5decfe2f23dabd83f7965dc54bc2e16af0b7 Mon Sep 17 00:00:00 2001 From: BPower0036 <80090789+BPower0036@users.noreply.github.com> Date: Wed, 4 May 2022 16:14:51 +0000 Subject: [PATCH] Delete src directory --- src/_locales | 1 - src/confirm-page.html | 35 - src/css/confirm-page.css | 91 - src/css/content.css | 27 - src/css/options.css | 122 - src/css/popup.css | 2279 ---------------- src/fonts/Inter-Medium.woff2 | Bin 95224 -> 0 bytes src/fonts/Inter-Regular.woff2 | Bin 98844 -> 0 bytes src/fonts/Metropolis-Light.woff2 | Bin 11428 -> 0 bytes src/fonts/Metropolis-Medium.woff2 | Bin 16496 -> 0 bytes src/img/Account.svg | 3 - src/img/Sync.svg | 3 - src/img/amo-icon.svg | 3 - src/img/arrow-icon-left-light.svg | 3 - src/img/arrow-icon-left.svg | 3 - src/img/arrow-icon-right-light.svg | 24 - src/img/arrow-icon-right.svg | 24 - src/img/arrow-toggle.svg | 3 - src/img/blank-favicon.svg | 8 - src/img/blank-tab.svg | 5 - src/img/close-light.svg | 3 - src/img/close.svg | 3 - src/img/container-close-tab.svg | 5 - src/img/container-delete.svg | 7 - src/img/container-move.svg | 13 - src/img/container-newtab.svg | 22 - src/img/container-openin-16.svg | 9 - src/img/container-site-d-24.png | Bin 342 -> 0 bytes src/img/container-site-d-48.png | Bin 578 -> 0 bytes src/img/container-site-d-96.png | Bin 1028 -> 0 bytes src/img/filters.svg | 9 - src/img/flags/AC.png | Bin 1074 -> 0 bytes src/img/flags/AD.png | Bin 697 -> 0 bytes src/img/flags/AE.png | Bin 287 -> 0 bytes src/img/flags/AF.png | Bin 1076 -> 0 bytes src/img/flags/AG.png | Bin 849 -> 0 bytes src/img/flags/AI.png | Bin 989 -> 0 bytes src/img/flags/AL.png | Bin 662 -> 0 bytes src/img/flags/AM.png | Bin 245 -> 0 bytes src/img/flags/AO.png | Bin 723 -> 0 bytes src/img/flags/AQ.png | Bin 481 -> 0 bytes src/img/flags/AR.png | Bin 453 -> 0 bytes src/img/flags/AS.png | Bin 847 -> 0 bytes src/img/flags/AT.png | Bin 205 -> 0 bytes src/img/flags/AU.png | Bin 835 -> 0 bytes src/img/flags/AW.png | Bin 387 -> 0 bytes src/img/flags/AX.png | Bin 230 -> 0 bytes src/img/flags/AZ.png | Bin 402 -> 0 bytes src/img/flags/BA.png | Bin 652 -> 0 bytes src/img/flags/BB.png | Bin 406 -> 0 bytes src/img/flags/BD.png | Bin 336 -> 0 bytes src/img/flags/BE.png | Bin 233 -> 0 bytes src/img/flags/BF.png | Bin 390 -> 0 bytes src/img/flags/BG.png | Bin 244 -> 0 bytes src/img/flags/BH.png | Bin 411 -> 0 bytes src/img/flags/BI.png | Bin 940 -> 0 bytes src/img/flags/BJ.png | Bin 279 -> 0 bytes src/img/flags/BL.png | Bin 978 -> 0 bytes src/img/flags/BM.png | Bin 919 -> 0 bytes src/img/flags/BN.png | Bin 884 -> 0 bytes src/img/flags/BO.png | Bin 666 -> 0 bytes src/img/flags/BQ.png | Bin 871 -> 0 bytes src/img/flags/BR.png | Bin 805 -> 0 bytes src/img/flags/BS.png | Bin 419 -> 0 bytes src/img/flags/BT.png | Bin 1000 -> 0 bytes src/img/flags/BV.png | Bin 270 -> 0 bytes src/img/flags/BW.png | Bin 214 -> 0 bytes src/img/flags/BY.png | Bin 669 -> 0 bytes src/img/flags/BZ.png | Bin 1127 -> 0 bytes src/img/flags/CA.png | Bin 445 -> 0 bytes src/img/flags/CC.png | Bin 706 -> 0 bytes src/img/flags/CD.png | Bin 602 -> 0 bytes src/img/flags/CF.png | Bin 389 -> 0 bytes src/img/flags/CG.png | Bin 356 -> 0 bytes src/img/flags/CH.png | Bin 220 -> 0 bytes src/img/flags/CI.png | Bin 233 -> 0 bytes src/img/flags/CK.png | Bin 961 -> 0 bytes src/img/flags/CL.png | Bin 394 -> 0 bytes src/img/flags/CM.png | Bin 341 -> 0 bytes src/img/flags/CN.png | Bin 410 -> 0 bytes src/img/flags/CO.png | Bin 245 -> 0 bytes src/img/flags/CP.png | Bin 233 -> 0 bytes src/img/flags/CR.png | Bin 453 -> 0 bytes src/img/flags/CU.png | Bin 569 -> 0 bytes src/img/flags/CV.png | Bin 574 -> 0 bytes src/img/flags/CW.png | Bin 357 -> 0 bytes src/img/flags/CX.png | Bin 913 -> 0 bytes src/img/flags/CY.png | Bin 539 -> 0 bytes src/img/flags/CZ.png | Bin 549 -> 0 bytes src/img/flags/DE.png | Bin 246 -> 0 bytes src/img/flags/DG.png | Bin 1423 -> 0 bytes src/img/flags/DJ.png | Bin 643 -> 0 bytes src/img/flags/DK.png | Bin 251 -> 0 bytes src/img/flags/DM.png | Bin 696 -> 0 bytes src/img/flags/DO.png | Bin 584 -> 0 bytes src/img/flags/DZ.png | Bin 524 -> 0 bytes src/img/flags/EA.png | Bin 362 -> 0 bytes src/img/flags/EC.png | Bin 688 -> 0 bytes src/img/flags/EE.png | Bin 247 -> 0 bytes src/img/flags/EG.png | Bin 461 -> 0 bytes src/img/flags/EH.png | Bin 586 -> 0 bytes src/img/flags/ER.png | Bin 809 -> 0 bytes src/img/flags/ES.png | Bin 362 -> 0 bytes src/img/flags/ET.png | Bin 833 -> 0 bytes src/img/flags/EU.png | Bin 560 -> 0 bytes src/img/flags/FI.png | Bin 260 -> 0 bytes src/img/flags/FJ.png | Bin 956 -> 0 bytes src/img/flags/FK.png | Bin 977 -> 0 bytes src/img/flags/FM.png | Bin 393 -> 0 bytes src/img/flags/FO.png | Bin 233 -> 0 bytes src/img/flags/FR.png | Bin 233 -> 0 bytes src/img/flags/GA.png | Bin 244 -> 0 bytes src/img/flags/GB.png | Bin 699 -> 0 bytes src/img/flags/GD.png | Bin 714 -> 0 bytes src/img/flags/GE.png | Bin 313 -> 0 bytes src/img/flags/GF.png | Bin 604 -> 0 bytes src/img/flags/GG.png | Bin 268 -> 0 bytes src/img/flags/GH.png | Bin 400 -> 0 bytes src/img/flags/GI.png | Bin 687 -> 0 bytes src/img/flags/GL.png | Bin 443 -> 0 bytes src/img/flags/GM.png | Bin 257 -> 0 bytes src/img/flags/GN.png | Bin 233 -> 0 bytes src/img/flags/GP.png | Bin 1140 -> 0 bytes src/img/flags/GQ.png | Bin 730 -> 0 bytes src/img/flags/GR.png | Bin 237 -> 0 bytes src/img/flags/GS.png | Bin 1034 -> 0 bytes src/img/flags/GT.png | Bin 638 -> 0 bytes src/img/flags/GU.png | Bin 830 -> 0 bytes src/img/flags/GW.png | Bin 426 -> 0 bytes src/img/flags/GY.png | Bin 704 -> 0 bytes src/img/flags/HK.png | Bin 664 -> 0 bytes src/img/flags/HM.png | Bin 836 -> 0 bytes src/img/flags/HN.png | Bin 344 -> 0 bytes src/img/flags/HR.png | Bin 722 -> 0 bytes src/img/flags/HT.png | Bin 669 -> 0 bytes src/img/flags/HU.png | Bin 246 -> 0 bytes src/img/flags/IC.png | Bin 613 -> 0 bytes src/img/flags/ID.png | Bin 241 -> 0 bytes src/img/flags/IE.png | Bin 233 -> 0 bytes src/img/flags/IL.png | Bin 388 -> 0 bytes src/img/flags/IM.png | Bin 596 -> 0 bytes src/img/flags/IN.png | Bin 408 -> 0 bytes src/img/flags/IO.png | Bin 1423 -> 0 bytes src/img/flags/IQ.png | Bin 472 -> 0 bytes src/img/flags/IR.png | Bin 458 -> 0 bytes src/img/flags/IS.png | Bin 229 -> 0 bytes src/img/flags/IT.png | Bin 233 -> 0 bytes src/img/flags/JE.png | Bin 840 -> 0 bytes src/img/flags/JM.png | Bin 575 -> 0 bytes src/img/flags/JO.png | Bin 618 -> 0 bytes src/img/flags/JP.png | Bin 335 -> 0 bytes src/img/flags/KE.png | Bin 727 -> 0 bytes src/img/flags/KG.png | Bin 851 -> 0 bytes src/img/flags/KH.png | Bin 444 -> 0 bytes src/img/flags/KI.png | Bin 964 -> 0 bytes src/img/flags/KM.png | Bin 704 -> 0 bytes src/img/flags/KN.png | Bin 875 -> 0 bytes src/img/flags/KP.png | Bin 462 -> 0 bytes src/img/flags/KR.png | Bin 784 -> 0 bytes src/img/flags/KW.png | Bin 411 -> 0 bytes src/img/flags/KY.png | Bin 1006 -> 0 bytes src/img/flags/KZ.png | Bin 671 -> 0 bytes src/img/flags/LA.png | Bin 300 -> 0 bytes src/img/flags/LB.png | Bin 448 -> 0 bytes src/img/flags/LC.png | Bin 719 -> 0 bytes src/img/flags/LI.png | Bin 575 -> 0 bytes src/img/flags/LK.png | Bin 666 -> 0 bytes src/img/flags/LR.png | Bin 438 -> 0 bytes src/img/flags/LS.png | Bin 463 -> 0 bytes src/img/flags/LT.png | Bin 245 -> 0 bytes src/img/flags/LU.png | Bin 244 -> 0 bytes src/img/flags/LV.png | Bin 204 -> 0 bytes src/img/flags/LY.png | Bin 364 -> 0 bytes src/img/flags/MA.png | Bin 372 -> 0 bytes src/img/flags/MC.png | Bin 241 -> 0 bytes src/img/flags/MD.png | Bin 547 -> 0 bytes src/img/flags/ME.png | Bin 634 -> 0 bytes src/img/flags/MF.png | Bin 233 -> 0 bytes src/img/flags/MG.png | Bin 280 -> 0 bytes src/img/flags/MH.png | Bin 820 -> 0 bytes src/img/flags/MK.png | Bin 627 -> 0 bytes src/img/flags/ML.png | Bin 233 -> 0 bytes src/img/flags/MM.png | Bin 604 -> 0 bytes src/img/flags/MN.png | Bin 504 -> 0 bytes src/img/flags/MO.png | Bin 708 -> 0 bytes src/img/flags/MP.png | Bin 920 -> 0 bytes src/img/flags/MQ.png | Bin 743 -> 0 bytes src/img/flags/MR.png | Bin 502 -> 0 bytes src/img/flags/MS.png | Bin 838 -> 0 bytes src/img/flags/MT.png | Bin 467 -> 0 bytes src/img/flags/MU.png | Bin 251 -> 0 bytes src/img/flags/MV.png | Bin 317 -> 0 bytes src/img/flags/MW.png | Bin 468 -> 0 bytes src/img/flags/MX.png | Bin 737 -> 0 bytes src/img/flags/MY.png | Bin 513 -> 0 bytes src/img/flags/MZ.png | Bin 774 -> 0 bytes src/img/flags/NA.png | Bin 743 -> 0 bytes src/img/flags/NC.png | Bin 854 -> 0 bytes src/img/flags/NE.png | Bin 320 -> 0 bytes src/img/flags/NF.png | Bin 453 -> 0 bytes src/img/flags/NG.png | Bin 208 -> 0 bytes src/img/flags/NI.png | Bin 595 -> 0 bytes src/img/flags/NL.png | Bin 244 -> 0 bytes src/img/flags/NO.png | Bin 229 -> 0 bytes src/img/flags/NP.png | Bin 631 -> 0 bytes src/img/flags/NR.png | Bin 375 -> 0 bytes src/img/flags/NU.png | Bin 803 -> 0 bytes src/img/flags/NZ.png | Bin 749 -> 0 bytes src/img/flags/OM.png | Bin 409 -> 0 bytes src/img/flags/PA.png | Bin 470 -> 0 bytes src/img/flags/PE.png | Bin 208 -> 0 bytes src/img/flags/PF.png | Bin 677 -> 0 bytes src/img/flags/PG.png | Bin 927 -> 0 bytes src/img/flags/PH.png | Bin 751 -> 0 bytes src/img/flags/PK.png | Bin 521 -> 0 bytes src/img/flags/PL.png | Bin 239 -> 0 bytes src/img/flags/PM.png | Bin 1555 -> 0 bytes src/img/flags/PN.png | Bin 970 -> 0 bytes src/img/flags/PR.png | Bin 570 -> 0 bytes src/img/flags/PS.png | Bin 532 -> 0 bytes src/img/flags/PT.png | Bin 715 -> 0 bytes src/img/flags/PW.png | Bin 359 -> 0 bytes src/img/flags/PY.png | Bin 590 -> 0 bytes src/img/flags/QA.png | Bin 425 -> 0 bytes src/img/flags/RE.png | Bin 864 -> 0 bytes src/img/flags/RO.png | Bin 233 -> 0 bytes src/img/flags/RS.png | Bin 900 -> 0 bytes src/img/flags/RU.png | Bin 246 -> 0 bytes src/img/flags/RW.png | Bin 563 -> 0 bytes src/img/flags/SA.png | Bin 612 -> 0 bytes src/img/flags/SB.png | Bin 818 -> 0 bytes src/img/flags/SC.png | Bin 729 -> 0 bytes src/img/flags/SD.png | Bin 535 -> 0 bytes src/img/flags/SE.png | Bin 256 -> 0 bytes src/img/flags/SG.png | Bin 457 -> 0 bytes src/img/flags/SH.png | Bin 883 -> 0 bytes src/img/flags/SI.png | Bin 627 -> 0 bytes src/img/flags/SJ.png | Bin 229 -> 0 bytes src/img/flags/SK.png | Bin 691 -> 0 bytes src/img/flags/SL.png | Bin 244 -> 0 bytes src/img/flags/SM.png | Bin 858 -> 0 bytes src/img/flags/SN.png | Bin 353 -> 0 bytes src/img/flags/SO.png | Bin 379 -> 0 bytes src/img/flags/SR.png | Bin 385 -> 0 bytes src/img/flags/SS.png | Bin 634 -> 0 bytes src/img/flags/ST.png | Bin 480 -> 0 bytes src/img/flags/SV.png | Bin 622 -> 0 bytes src/img/flags/SX.png | Bin 824 -> 0 bytes src/img/flags/SY.png | Bin 415 -> 0 bytes src/img/flags/SZ.png | Bin 798 -> 0 bytes src/img/flags/TA.png | Bin 1124 -> 0 bytes src/img/flags/TC.png | Bin 886 -> 0 bytes src/img/flags/TD.png | Bin 233 -> 0 bytes src/img/flags/TF.png | Bin 513 -> 0 bytes src/img/flags/TG.png | Bin 450 -> 0 bytes src/img/flags/TH.png | Bin 215 -> 0 bytes src/img/flags/TJ.png | Bin 522 -> 0 bytes src/img/flags/TK.png | Bin 603 -> 0 bytes src/img/flags/TL.png | Bin 661 -> 0 bytes src/img/flags/TM.png | Bin 1004 -> 0 bytes src/img/flags/TN.png | Bin 423 -> 0 bytes src/img/flags/TO.png | Bin 258 -> 0 bytes src/img/flags/TR.png | Bin 436 -> 0 bytes src/img/flags/TT.png | Bin 528 -> 0 bytes src/img/flags/TV.png | Bin 1010 -> 0 bytes src/img/flags/TW.png | Bin 414 -> 0 bytes src/img/flags/TZ.png | Bin 784 -> 0 bytes src/img/flags/UA.png | Bin 239 -> 0 bytes src/img/flags/UG.png | Bin 571 -> 0 bytes src/img/flags/UM.png | Bin 352 -> 0 bytes src/img/flags/UN.png | Bin 789 -> 0 bytes src/img/flags/US.png | Bin 350 -> 0 bytes src/img/flags/UY.png | Bin 616 -> 0 bytes src/img/flags/UZ.png | Bin 439 -> 0 bytes src/img/flags/VA.png | Bin 740 -> 0 bytes src/img/flags/VC.png | Bin 439 -> 0 bytes src/img/flags/VE.png | Bin 452 -> 0 bytes src/img/flags/VG.png | Bin 1028 -> 0 bytes src/img/flags/VI.png | Bin 1119 -> 0 bytes src/img/flags/VN.png | Bin 413 -> 0 bytes src/img/flags/VU.png | Bin 792 -> 0 bytes src/img/flags/WF.png | Bin 373 -> 0 bytes src/img/flags/WS.png | Bin 436 -> 0 bytes src/img/flags/XK.png | Bin 634 -> 0 bytes src/img/flags/YE.png | Bin 239 -> 0 bytes src/img/flags/YT.png | Bin 1184 -> 0 bytes src/img/flags/ZA.png | Bin 677 -> 0 bytes src/img/flags/ZM.png | Bin 407 -> 0 bytes src/img/flags/ZW.png | Bin 770 -> 0 bytes src/img/gear-icon-light.svg | 3 - src/img/gear-icon.svg | 3 - src/img/info-thin-16.svg | 13 - src/img/info.svg | 3 - src/img/movetowindow-16.svg | 7 - src/img/moz-vpn-connected.svg | 4 - src/img/moz-vpn-disconnected.svg | 4 - src/img/moz-vpn-logo-light.svg | 14 - src/img/moz-vpn-logo.svg | 14 - src/img/moz-vpn-onboarding.svg | 9 - .../moz-vpn-connected.svg | 4 - .../moz-vpn-disconnected.svg | 4 - src/img/multiaccountcontainer-16-dark.svg | 9 - src/img/multiaccountcontainer-16.svg | 7 - src/img/new-16.svg | 6 - src/img/no-connection.svg | 21 - src/img/onboarding-1.png | Bin 10810 -> 0 bytes src/img/onboarding-2.png | Bin 10680 -> 0 bytes src/img/onboarding-3-security.png | Bin 25006 -> 0 bytes src/img/onboarding-3.png | Bin 7524 -> 0 bytes src/img/onboarding-4.png | Bin 48741 -> 0 bytes src/img/onboarding-moz-vpn.svg | 9 - src/img/password-hide.svg | 9 - src/img/proxy-warning-light.svg | 3 - src/img/proxy-warning.svg | 3 - src/img/refresh-16.svg | 6 - src/img/sort-16_1.svg | 6 - src/img/tab-new-16.svg | 6 - src/img/usercontext.svg | 81 - src/img/warning.svg | 3 - src/img/webicon-facebook.svg | 17 - src/img/webicon-twitter.svg | 27 - src/js/.eslintrc.js | 14 - src/js/background/assignManager.js | 790 ------ src/js/background/backgroundLogic.js | 406 --- src/js/background/badge.js | 21 - src/js/background/identityState.js | 194 -- src/js/background/index.html | 26 - src/js/background/messageHandler.js | 269 -- src/js/background/mozillaVpnBackground.js | 118 - src/js/background/sync.js | 580 ----- src/js/confirm-page.js | 80 - src/js/content-script.js | 46 - src/js/i18n.js | 9 - src/js/mozillaVpn.js | 260 -- src/js/options.js | 137 - src/js/pageAction.js | 37 - src/js/popup.js | 2283 ----------------- src/js/proxified-containers.js | 76 - src/js/utils.js | 174 -- src/manifest.json | 153 -- src/options.html | 123 - src/pageActionPopup.html | 35 - src/popup.html | 460 ---- 343 files changed, 9291 deletions(-) delete mode 160000 src/_locales delete mode 100644 src/confirm-page.html delete mode 100644 src/css/confirm-page.css delete mode 100644 src/css/content.css delete mode 100644 src/css/options.css delete mode 100644 src/css/popup.css delete mode 100644 src/fonts/Inter-Medium.woff2 delete mode 100644 src/fonts/Inter-Regular.woff2 delete mode 100755 src/fonts/Metropolis-Light.woff2 delete mode 100755 src/fonts/Metropolis-Medium.woff2 delete mode 100644 src/img/Account.svg delete mode 100644 src/img/Sync.svg delete mode 100644 src/img/amo-icon.svg delete mode 100644 src/img/arrow-icon-left-light.svg delete mode 100644 src/img/arrow-icon-left.svg delete mode 100644 src/img/arrow-icon-right-light.svg delete mode 100644 src/img/arrow-icon-right.svg delete mode 100644 src/img/arrow-toggle.svg delete mode 100644 src/img/blank-favicon.svg delete mode 100644 src/img/blank-tab.svg delete mode 100644 src/img/close-light.svg delete mode 100644 src/img/close.svg delete mode 100644 src/img/container-close-tab.svg delete mode 100644 src/img/container-delete.svg delete mode 100644 src/img/container-move.svg delete mode 100644 src/img/container-newtab.svg delete mode 100644 src/img/container-openin-16.svg delete mode 100644 src/img/container-site-d-24.png delete mode 100644 src/img/container-site-d-48.png delete mode 100644 src/img/container-site-d-96.png delete mode 100644 src/img/filters.svg delete mode 100644 src/img/flags/AC.png delete mode 100644 src/img/flags/AD.png delete mode 100644 src/img/flags/AE.png delete mode 100644 src/img/flags/AF.png delete mode 100644 src/img/flags/AG.png delete mode 100644 src/img/flags/AI.png delete mode 100644 src/img/flags/AL.png delete mode 100644 src/img/flags/AM.png delete mode 100644 src/img/flags/AO.png delete mode 100644 src/img/flags/AQ.png delete mode 100644 src/img/flags/AR.png delete mode 100644 src/img/flags/AS.png delete mode 100644 src/img/flags/AT.png delete mode 100644 src/img/flags/AU.png delete mode 100644 src/img/flags/AW.png delete mode 100644 src/img/flags/AX.png delete mode 100644 src/img/flags/AZ.png delete mode 100644 src/img/flags/BA.png delete mode 100644 src/img/flags/BB.png delete mode 100644 src/img/flags/BD.png delete mode 100644 src/img/flags/BE.png delete mode 100644 src/img/flags/BF.png delete mode 100644 src/img/flags/BG.png delete mode 100644 src/img/flags/BH.png delete mode 100644 src/img/flags/BI.png delete mode 100644 src/img/flags/BJ.png delete mode 100644 src/img/flags/BL.png delete mode 100644 src/img/flags/BM.png delete mode 100644 src/img/flags/BN.png delete mode 100644 src/img/flags/BO.png delete mode 100644 src/img/flags/BQ.png delete mode 100644 src/img/flags/BR.png delete mode 100644 src/img/flags/BS.png delete mode 100644 src/img/flags/BT.png delete mode 100644 src/img/flags/BV.png delete mode 100644 src/img/flags/BW.png delete mode 100644 src/img/flags/BY.png delete mode 100644 src/img/flags/BZ.png delete mode 100644 src/img/flags/CA.png delete mode 100644 src/img/flags/CC.png delete mode 100644 src/img/flags/CD.png delete mode 100644 src/img/flags/CF.png delete mode 100644 src/img/flags/CG.png delete mode 100644 src/img/flags/CH.png delete mode 100644 src/img/flags/CI.png delete mode 100644 src/img/flags/CK.png delete mode 100644 src/img/flags/CL.png delete mode 100644 src/img/flags/CM.png delete mode 100644 src/img/flags/CN.png delete mode 100644 src/img/flags/CO.png delete mode 100644 src/img/flags/CP.png delete mode 100644 src/img/flags/CR.png delete mode 100644 src/img/flags/CU.png delete mode 100644 src/img/flags/CV.png delete mode 100644 src/img/flags/CW.png delete mode 100644 src/img/flags/CX.png delete mode 100644 src/img/flags/CY.png delete mode 100644 src/img/flags/CZ.png delete mode 100644 src/img/flags/DE.png delete mode 100644 src/img/flags/DG.png delete mode 100644 src/img/flags/DJ.png delete mode 100644 src/img/flags/DK.png delete mode 100644 src/img/flags/DM.png delete mode 100644 src/img/flags/DO.png delete mode 100644 src/img/flags/DZ.png delete mode 100644 src/img/flags/EA.png delete mode 100644 src/img/flags/EC.png delete mode 100644 src/img/flags/EE.png delete mode 100644 src/img/flags/EG.png delete mode 100644 src/img/flags/EH.png delete mode 100644 src/img/flags/ER.png delete mode 100644 src/img/flags/ES.png delete mode 100644 src/img/flags/ET.png delete mode 100644 src/img/flags/EU.png delete mode 100644 src/img/flags/FI.png delete mode 100644 src/img/flags/FJ.png delete mode 100644 src/img/flags/FK.png delete mode 100644 src/img/flags/FM.png delete mode 100644 src/img/flags/FO.png delete mode 100644 src/img/flags/FR.png delete mode 100644 src/img/flags/GA.png delete mode 100644 src/img/flags/GB.png delete mode 100644 src/img/flags/GD.png delete mode 100644 src/img/flags/GE.png delete mode 100644 src/img/flags/GF.png delete mode 100644 src/img/flags/GG.png delete mode 100644 src/img/flags/GH.png delete mode 100644 src/img/flags/GI.png delete mode 100644 src/img/flags/GL.png delete mode 100644 src/img/flags/GM.png delete mode 100644 src/img/flags/GN.png delete mode 100644 src/img/flags/GP.png delete mode 100644 src/img/flags/GQ.png delete mode 100644 src/img/flags/GR.png delete mode 100644 src/img/flags/GS.png delete mode 100644 src/img/flags/GT.png delete mode 100644 src/img/flags/GU.png delete mode 100644 src/img/flags/GW.png delete mode 100644 src/img/flags/GY.png delete mode 100644 src/img/flags/HK.png delete mode 100644 src/img/flags/HM.png delete mode 100644 src/img/flags/HN.png delete mode 100644 src/img/flags/HR.png delete mode 100644 src/img/flags/HT.png delete mode 100644 src/img/flags/HU.png delete mode 100644 src/img/flags/IC.png delete mode 100644 src/img/flags/ID.png delete mode 100644 src/img/flags/IE.png delete mode 100644 src/img/flags/IL.png delete mode 100644 src/img/flags/IM.png delete mode 100644 src/img/flags/IN.png delete mode 100644 src/img/flags/IO.png delete mode 100644 src/img/flags/IQ.png delete mode 100644 src/img/flags/IR.png delete mode 100644 src/img/flags/IS.png delete mode 100644 src/img/flags/IT.png delete mode 100644 src/img/flags/JE.png delete mode 100644 src/img/flags/JM.png delete mode 100644 src/img/flags/JO.png delete mode 100644 src/img/flags/JP.png delete mode 100644 src/img/flags/KE.png delete mode 100644 src/img/flags/KG.png delete mode 100644 src/img/flags/KH.png delete mode 100644 src/img/flags/KI.png delete mode 100644 src/img/flags/KM.png delete mode 100644 src/img/flags/KN.png delete mode 100644 src/img/flags/KP.png delete mode 100644 src/img/flags/KR.png delete mode 100644 src/img/flags/KW.png delete mode 100644 src/img/flags/KY.png delete mode 100644 src/img/flags/KZ.png delete mode 100644 src/img/flags/LA.png delete mode 100644 src/img/flags/LB.png delete mode 100644 src/img/flags/LC.png delete mode 100644 src/img/flags/LI.png delete mode 100644 src/img/flags/LK.png delete mode 100644 src/img/flags/LR.png delete mode 100644 src/img/flags/LS.png delete mode 100644 src/img/flags/LT.png delete mode 100644 src/img/flags/LU.png delete mode 100644 src/img/flags/LV.png delete mode 100644 src/img/flags/LY.png delete mode 100644 src/img/flags/MA.png delete mode 100644 src/img/flags/MC.png delete mode 100644 src/img/flags/MD.png delete mode 100644 src/img/flags/ME.png delete mode 100644 src/img/flags/MF.png delete mode 100644 src/img/flags/MG.png delete mode 100644 src/img/flags/MH.png delete mode 100644 src/img/flags/MK.png delete mode 100644 src/img/flags/ML.png delete mode 100644 src/img/flags/MM.png delete mode 100644 src/img/flags/MN.png delete mode 100644 src/img/flags/MO.png delete mode 100644 src/img/flags/MP.png delete mode 100644 src/img/flags/MQ.png delete mode 100644 src/img/flags/MR.png delete mode 100644 src/img/flags/MS.png delete mode 100644 src/img/flags/MT.png delete mode 100644 src/img/flags/MU.png delete mode 100644 src/img/flags/MV.png delete mode 100644 src/img/flags/MW.png delete mode 100644 src/img/flags/MX.png delete mode 100644 src/img/flags/MY.png delete mode 100644 src/img/flags/MZ.png delete mode 100644 src/img/flags/NA.png delete mode 100644 src/img/flags/NC.png delete mode 100644 src/img/flags/NE.png delete mode 100644 src/img/flags/NF.png delete mode 100644 src/img/flags/NG.png delete mode 100644 src/img/flags/NI.png delete mode 100644 src/img/flags/NL.png delete mode 100644 src/img/flags/NO.png delete mode 100644 src/img/flags/NP.png delete mode 100644 src/img/flags/NR.png delete mode 100644 src/img/flags/NU.png delete mode 100644 src/img/flags/NZ.png delete mode 100644 src/img/flags/OM.png delete mode 100644 src/img/flags/PA.png delete mode 100644 src/img/flags/PE.png delete mode 100644 src/img/flags/PF.png delete mode 100644 src/img/flags/PG.png delete mode 100644 src/img/flags/PH.png delete mode 100644 src/img/flags/PK.png delete mode 100644 src/img/flags/PL.png delete mode 100644 src/img/flags/PM.png delete mode 100644 src/img/flags/PN.png delete mode 100644 src/img/flags/PR.png delete mode 100644 src/img/flags/PS.png delete mode 100644 src/img/flags/PT.png delete mode 100644 src/img/flags/PW.png delete mode 100644 src/img/flags/PY.png delete mode 100644 src/img/flags/QA.png delete mode 100644 src/img/flags/RE.png delete mode 100644 src/img/flags/RO.png delete mode 100644 src/img/flags/RS.png delete mode 100644 src/img/flags/RU.png delete mode 100644 src/img/flags/RW.png delete mode 100644 src/img/flags/SA.png delete mode 100644 src/img/flags/SB.png delete mode 100644 src/img/flags/SC.png delete mode 100644 src/img/flags/SD.png delete mode 100644 src/img/flags/SE.png delete mode 100644 src/img/flags/SG.png delete mode 100644 src/img/flags/SH.png delete mode 100644 src/img/flags/SI.png delete mode 100644 src/img/flags/SJ.png delete mode 100644 src/img/flags/SK.png delete mode 100644 src/img/flags/SL.png delete mode 100644 src/img/flags/SM.png delete mode 100644 src/img/flags/SN.png delete mode 100644 src/img/flags/SO.png delete mode 100644 src/img/flags/SR.png delete mode 100644 src/img/flags/SS.png delete mode 100644 src/img/flags/ST.png delete mode 100644 src/img/flags/SV.png delete mode 100644 src/img/flags/SX.png delete mode 100644 src/img/flags/SY.png delete mode 100644 src/img/flags/SZ.png delete mode 100644 src/img/flags/TA.png delete mode 100644 src/img/flags/TC.png delete mode 100644 src/img/flags/TD.png delete mode 100644 src/img/flags/TF.png delete mode 100644 src/img/flags/TG.png delete mode 100644 src/img/flags/TH.png delete mode 100644 src/img/flags/TJ.png delete mode 100644 src/img/flags/TK.png delete mode 100644 src/img/flags/TL.png delete mode 100644 src/img/flags/TM.png delete mode 100644 src/img/flags/TN.png delete mode 100644 src/img/flags/TO.png delete mode 100644 src/img/flags/TR.png delete mode 100644 src/img/flags/TT.png delete mode 100644 src/img/flags/TV.png delete mode 100644 src/img/flags/TW.png delete mode 100644 src/img/flags/TZ.png delete mode 100644 src/img/flags/UA.png delete mode 100644 src/img/flags/UG.png delete mode 100644 src/img/flags/UM.png delete mode 100644 src/img/flags/UN.png delete mode 100644 src/img/flags/US.png delete mode 100644 src/img/flags/UY.png delete mode 100644 src/img/flags/UZ.png delete mode 100644 src/img/flags/VA.png delete mode 100644 src/img/flags/VC.png delete mode 100644 src/img/flags/VE.png delete mode 100644 src/img/flags/VG.png delete mode 100644 src/img/flags/VI.png delete mode 100644 src/img/flags/VN.png delete mode 100644 src/img/flags/VU.png delete mode 100644 src/img/flags/WF.png delete mode 100644 src/img/flags/WS.png delete mode 100644 src/img/flags/XK.png delete mode 100644 src/img/flags/YE.png delete mode 100644 src/img/flags/YT.png delete mode 100644 src/img/flags/ZA.png delete mode 100644 src/img/flags/ZM.png delete mode 100644 src/img/flags/ZW.png delete mode 100644 src/img/gear-icon-light.svg delete mode 100644 src/img/gear-icon.svg delete mode 100644 src/img/info-thin-16.svg delete mode 100644 src/img/info.svg delete mode 100644 src/img/movetowindow-16.svg delete mode 100644 src/img/moz-vpn-connected.svg delete mode 100644 src/img/moz-vpn-disconnected.svg delete mode 100644 src/img/moz-vpn-logo-light.svg delete mode 100644 src/img/moz-vpn-logo.svg delete mode 100644 src/img/moz-vpn-onboarding.svg delete mode 100644 src/img/moz-vpn-status-icons/moz-vpn-connected.svg delete mode 100644 src/img/moz-vpn-status-icons/moz-vpn-disconnected.svg delete mode 100644 src/img/multiaccountcontainer-16-dark.svg delete mode 100644 src/img/multiaccountcontainer-16.svg delete mode 100644 src/img/new-16.svg delete mode 100644 src/img/no-connection.svg delete mode 100644 src/img/onboarding-1.png delete mode 100644 src/img/onboarding-2.png delete mode 100644 src/img/onboarding-3-security.png delete mode 100644 src/img/onboarding-3.png delete mode 100644 src/img/onboarding-4.png delete mode 100644 src/img/onboarding-moz-vpn.svg delete mode 100644 src/img/password-hide.svg delete mode 100644 src/img/proxy-warning-light.svg delete mode 100644 src/img/proxy-warning.svg delete mode 100644 src/img/refresh-16.svg delete mode 100644 src/img/sort-16_1.svg delete mode 100644 src/img/tab-new-16.svg delete mode 100644 src/img/usercontext.svg delete mode 100644 src/img/warning.svg delete mode 100755 src/img/webicon-facebook.svg delete mode 100755 src/img/webicon-twitter.svg delete mode 100644 src/js/.eslintrc.js delete mode 100644 src/js/background/assignManager.js delete mode 100644 src/js/background/backgroundLogic.js delete mode 100644 src/js/background/badge.js delete mode 100644 src/js/background/identityState.js delete mode 100644 src/js/background/index.html delete mode 100644 src/js/background/messageHandler.js delete mode 100644 src/js/background/mozillaVpnBackground.js delete mode 100644 src/js/background/sync.js delete mode 100644 src/js/confirm-page.js delete mode 100644 src/js/content-script.js delete mode 100644 src/js/i18n.js delete mode 100644 src/js/mozillaVpn.js delete mode 100644 src/js/options.js delete mode 100644 src/js/pageAction.js delete mode 100644 src/js/popup.js delete mode 100644 src/js/proxified-containers.js delete mode 100644 src/js/utils.js delete mode 100644 src/manifest.json delete mode 100644 src/options.html delete mode 100644 src/pageActionPopup.html delete mode 100644 src/popup.html diff --git a/src/_locales b/src/_locales deleted file mode 160000 index f3da295..0000000 --- a/src/_locales +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f3da295d004b7d6314c5baa321d9a5418ec937d9 diff --git a/src/confirm-page.html b/src/confirm-page.html deleted file mode 100644 index 259af1a..0000000 --- a/src/confirm-page.html +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - -
-
-

-
-
-

-
-

-
-
- -
-
- - -
-
-
- - - - - diff --git a/src/css/confirm-page.css b/src/css/confirm-page.css deleted file mode 100644 index 3ff1e14..0000000 --- a/src/css/confirm-page.css +++ /dev/null @@ -1,91 +0,0 @@ -/* General Rules and Resets */ -.title { - background-image: none; -} - -main { - background: url(/img/onboarding-4.png) no-repeat; - background-position: 200px 0; - background-size: 120px; - margin-inline-start: -350px; - padding-inline-start: 350px; -} - -.container-name { - font-weight: bold; -} - -button .container-name, -#current-container-name { - font-weight: bold; -} - -@media only screen and (max-width: 900px) { - main { - background: none; - } - - /* for a mid sized window we have enough for this but not our image */ - .title { - background-image: url('chrome://global/skin/icons/info.svg'); - } -} - -html { - box-sizing: border-box; - font: message-box; -} - -#redirect-url, -#redirect-origin { - font-weight: bold; - - /* max-inline-size is needed to force this text smaller than the layout at a mid-sized window */ - max-inline-size: 40rem; - word-break: break-all; -} - -#redirect-url { - background: #efedf0; /* Grey 20 */ - border-radius: 2px; - line-height: 1.5; - padding-block-end: 0.5rem; - padding-block-start: 0.5rem; - padding-inline-end: 0.5rem; - padding-inline-start: 0.5rem; -} - -/* stylelint-disable media-feature-name-no-unknown */ -@media (prefers-color-scheme: dark) { - #redirect-url { - background: #38383d; /* Grey 70 */ - color: #eee; /* White 20 */ - } -} -/* stylelint-enable */ - -#redirect-url img { - block-size: 16px; - inline-size: 16px; - margin-inline-end: 6px; - offset-block-start: 3px; - position: relative; -} - -dfn { - font-style: normal; -} - -#deny, -#confirm { - flex-grow: 1; -} - -.button-container > button { - min-inline-size: 240px; -} - -.check-label { - align-items: center; - display: flex; -} diff --git a/src/css/content.css b/src/css/content.css deleted file mode 100644 index 5681887..0000000 --- a/src/css/content.css +++ /dev/null @@ -1,27 +0,0 @@ -.container-notification { - align-items: center; - background: #efefef; - color: #003f07; - display: flex; - font: 12px sans-serif; - inline-size: 100vw; - justify-content: start; - offset-block-start: 0; - offset-inline-start: 0; - padding-block-end: 8px; - padding-block-start: 8px; - padding-inline-end: 8px; - padding-inline-start: 8px; - position: fixed; - text-align: start; - transform: translateY(-100%); - transition: transform 0.3s cubic-bezier(0.07, 0.95, 0, 1) 0.3s; - z-index: 999999999999; -} - -.container-notification img { - block-size: 16px; - display: inline-block; - inline-size: 16px; - margin-inline-end: 3px; -} diff --git a/src/css/options.css b/src/css/options.css deleted file mode 100644 index 5a6baf0..0000000 --- a/src/css/options.css +++ /dev/null @@ -1,122 +0,0 @@ -body { - --grey10: #e7e7e7; - - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; - background: #fff; - color: rgb(74, 74, 79); - font-size: 13px; - overflow: hidden; -} - -h3:first-of-type { - margin-block-start: 2.5rem; -} - -label { - display: flex; - align-items: center; - font-size: 14px; -} - -label > span { - padding-inline-end: 4px; -} - -.settings-group { - margin-block-end: 16px; -} - -form { - display: flex; - flex-direction: column; - padding-block-end: 1rem; -} - -.settings-group p { - margin-inline-start: 24px; - margin-block: 4px 8px; -} - -input[type="checkbox"] { - margin-inline: 0 8px; - margin-block: 1px auto; - inline-size: 16px; - block-size: 16px; -} - -button { - margin-inline: 0 auto; -} - -.keyboard-shortcut { - display: flex; - flex-direction: row; - justify-content: space-between; - max-inline-size: 70%; - align-items: center; -} - -.bold { - font-weight: 600; -} - -.moz-vpn-proxy-permissions { - margin-block: 0 2rem; - padding-block-end: 1rem; - border-block-end: 1px solid var(--grey10); - display: flex; - flex-direction: column; -} - -h3.moz-vpn-proxy-permissions-title { - margin-block-start: 0; - position: relative; - display: flex; - align-items: center; -} - -.warning-icon { - display: flex; - align-items: center; -} - -.warning-icon.show-warning::before { - background-image: url("/img/warning.svg"); - background-size: 24px; - background-repeat: no-repeat; - background-position: center; - content: ""; - display: block; - block-size: 24px; - inline-size: 24px; - margin-inline-end: 0.5rem; -} - -.moz-vpn-proxy-permissions-title::before, -.moz-vpn-proxy-permissions-title::after { - background-color: var(--grey10); - content: ""; - height: 1px; - flex: 1 1 0%; -} - -h3.moz-vpn-proxy-permissions-title::before { - margin-inline-end: 2rem; - margin-inline-start: -50%; -} - -h3.moz-vpn-proxy-permissions-title::after { - margin-inline-start: 2rem; - margin-inline-end: -50%; -} - -@media (prefers-color-scheme: dark) { - body { - background: #23212a; - color: #fff; - } - - p { - color: rgb(177, 177, 179); - } -} diff --git a/src/css/popup.css b/src/css/popup.css deleted file mode 100644 index 92fcb21..0000000 --- a/src/css/popup.css +++ /dev/null @@ -1,2279 +0,0 @@ -@font-face { - font-family: "Metropolis"; - font-style: normal; - font-weight: 800; - src: url("/fonts/Metropolis-Medium.woff2") format("woff2"); -} - -@font-face { - font-family: "Metropolis-Light"; - font-style: normal; - font-weight: 300; - src: url("/fonts/Metropolis-Light.woff2") format("woff2"); -} - -@font-face { - font-family: "Inter"; - font-style: normal; - font-weight: 400; - src: url("/fonts/Inter-Regular.woff2") format("woff2"); -} - -@font-face { - font-family: "Inter-Medium"; - font-style: normal; - font-weight: 500; - src: url("/fonts/Inter-Medium.woff2") format("woff2"); -} - -/* General Rules and Resets */ - -* { - font-size: inherit; - margin-block-end: 0; - margin-block-start: 0; - margin-inline-end: 0; - margin-inline-start: 0; - padding-block-end: 0; - padding-block-start: 0; - padding-inline-end: 0; - padding-inline-start: 0; -} - -html { - background-color: #fefefe; - box-sizing: border-box; - font-size: 12px; - overscroll-behavior: none; -} - -body { - font-family: var(--fontInter); - font-size: 13px; - inline-size: 352px; - letter-spacing: -0.125px; - min-inline-size: 352px; - background-color: var(--bgColor); - - --highlight-blue: #1296f8; - --hr-grey: #cececf91; - --text-grey: #262726eb; - - color: var(--text-grey); -} - -html, -body { - block-size: 100%; /* Bugfix: issue 948 */ - max-block-size: 650px; - min-block-size: 300px; - - /* stylelint-disable */ - scrollbar-width: none; - /* stylelint-enable */ - transition: height 0.1s ease-in-out; -} - -:root { - --fontInter: "Inter", sans-serif; - --fontInterMedium: "Inter-Medium", sans-serif; - --fontMetropolis: "Metropolis", sans-serif; - --fontMetropolisLight: "Metropolis-Light", sans-serif; - --primary-action-color: #248aeb; - --title-text-color: #000; - --text-normal-color: #262726; - --text-heading-color: #3d3d3d; - --iconArrowLeft: url("/img/arrow-icon-left.svg"); - --iconArrowRight: url("/img/arrow-icon-right.svg"); - --iconCloseX: url("/img/close.svg"); - --iconGear: url("/img/gear-icon.svg"); - --iconProxyWarning: url("/img/proxy-warning.svg"); - --logoMozillaVpn: url("/img/moz-vpn-logo.svg"); - --menuItemHeight: 28px; - --marginInline: 16px; - --footerHeight: 48px; - --bgColor: #fefffe; - --blue20: #0df; - --blue30: #00b3f4; - --blue40: #0090ed; - --blue50: #0060df; - --blue60: #0250bb; - --blue70: #054096; - --red30: #ff848b; - --red40: #ff6a75; - --red50: #ff4f5e; - --red60: #e22850; - --red70: #c50042; - --alertColor: var(--red50); - --primaryCtaDefault: var(--blue50); - --primaryCtaHover: var(--blue60); - --primaryCtaActive: var(--blue70); - --primaryCtafocus: rgba(0, 97, 223, 0.4); - --controllerDefault: var(--bgColor); - --controllerHover: var(--grey10); - --controllerActive: var(--grey20); - --green50: #3fe1b0; - --green60: #3ad4b3; - --green70: #1cc4a0; - --green80: #00a49a; - --grey10: #e7e7e7; - --grey20: #cececf; - --grey30: #9e9e9e; - --grey40: #6d6e6e; - --grey50: #3d3d3d; - --panelSize: 560px; - --rowHeight: 48px; - - /* calculated from 12px */ - --font-size-heading: 1.33rem; /* 16px */ - --block-line-space-size: 0.5rem; /* 6px */ - --inline-item-space-size: 0.5rem; /* 6px */ - --block-line-separation-size: 0.33rem; /* 10px */ - --inline-icon-space-size: 0.833rem; /* 10px */ - - /* Use for url and icon size */ - --block-url-label-size: 2rem; /* 24px */ - --inline-start-size: 1.66rem; /* 20px */ - --inline-button-size: 5.833rem; /* 70px */ - --icon-size: 1.166rem; /* 14px */ - --small-text-size: 0.833rem; /* 10px */ - --small-radius: 3px; - --icon-button-size: calc(calc(var(--block-line-separation-size) * 2) + 1.66rem); /* 20px */ - --inactive-opacity: 0.3; - --overflow-size: 1px; - --icon-fit: 8; - - background: var(--bgColor); - margin-block: 0; - margin-inline: 0; -} - -*, -*::before, -*::after { - box-sizing: inherit; -} - -table { - border: 0; - border-spacing: 0; - inline-size: 100%; -} - -/* Helper Classes */ -.hide { - display: none !important; -} - -.scrollable { - flex: 1; - inline-size: 100%; - block-size: 100%; - overscroll-behavior: none; - overflow-y: auto; - overflow-x: hidden; - padding-block-end: 8px; -} - -.offpage { - opacity: 0; -} - -[hidden] { - display: none !important; -} - -/* effect borrowed from tabs in firefox, ensure that the element flexes to the full width */ -.truncate-text { - inline-size: calc(100vw - 80px); - overflow: hidden; - position: relative; - white-space: nowrap; - text-overflow: ellipsis; -} - -.truncate-text::after { - background: var(--bgColor); - content: " "; - block-size: 100%; - inline-size: 100px; - inset-inline-end: 0; - mask-image: linear-gradient(to right, transparent, var(--bgColor) 70%); - position: absolute; -} - -.hover-highlight:hover .truncate-text::after, -.hover-highlight:focus .truncate-text::after { - background-color: var(--highlight-blue); - mask-image: linear-gradient(to right, transparent, var(--highlight-blue) 50%); -} - -/* Color and icon helpers */ -[data-identity-color="blue"] { - --identity-tab-color: #37adff; - --identity-icon-color: #37adff; -} - -[data-identity-color="turquoise"] { - --identity-tab-color: #00c79a; - --identity-icon-color: #00c79a; -} - -[data-identity-color="green"] { - --identity-tab-color: #51cd00; - --identity-icon-color: #51cd00; -} - -[data-identity-color="grey"] { - /* Only used for the edit panel */ - --identity-icon-color: #616161; -} - -[data-identity-color="yellow"] { - --identity-tab-color: #ffcb00; - --identity-icon-color: #ffcb00; -} - -[data-identity-color="orange"] { - --identity-tab-color: #ff9f00; - --identity-icon-color: #ff9f00; -} - -[data-identity-color="red"] { - --identity-tab-color: #ff613d; - --identity-icon-color: #ff613d; -} - -[data-identity-color="pink"] { - --identity-tab-color: #ff4bda; - --identity-icon-color: #ff4bda; -} - -[data-identity-color="purple"] { - --identity-tab-color: #af51f5; - --identity-icon-color: #af51f5; -} - -[data-identity-icon="fingerprint"] { - --identity-icon: url("/img/usercontext.svg#fingerprint"); -} - -[data-identity-icon="briefcase"] { - --identity-icon: url("/img/usercontext.svg#briefcase"); -} - -[data-identity-icon="dollar"] { - --identity-icon: url("/img/usercontext.svg#dollar"); -} - -[data-identity-icon="cart"] { - --identity-icon: url("/img/usercontext.svg#cart"); -} - -[data-identity-icon="circle"] { - --identity-icon: url("/img/usercontext.svg#circle"); -} - -[data-identity-icon="food"] { - --identity-icon: url("/img/usercontext.svg#food"); -} - -[data-identity-icon="gift"] { - --identity-icon: url("/img/usercontext.svg#gift"); -} - -[data-identity-icon="vacation"] { - --identity-icon: url("/img/usercontext.svg#vacation"); -} - -[data-identity-icon="fruit"] { - --identity-icon: url("/img/usercontext.svg#fruit"); -} - -[data-identity-icon="pet"] { - --identity-icon: url("/img/usercontext.svg#pet"); -} - -[data-identity-icon="tree"] { - --identity-icon: url("/img/usercontext.svg#tree"); -} - -[data-identity-icon="chill"] { - --identity-icon: url("/img/usercontext.svg#chill"); -} - -[data-identity-icon="fence"] { - --identity-icon: url("/img/usercontext.svg#fence"); -} - -#current-tab [data-identity-icon="default-tab"] { - background: center center no-repeat url("/img/blank-tab.svg"); - fill: currentColor; -} - -/* Buttons */ - -.button { - color: var(--text-heading-color); -} - -.button.primary { - background-color: #0996f8; - color: white; -} - -.button.primary:hover, -.button.primary:focus { - background-color: #0675d3; -} - -.button.secondary:hover, -.button.secondary:focus { - background-color: rgba(0, 0, 0, 0.05); -} - -/* Mozilla VPN status icon */ - -.moz-vpn-status-icon { - color: var(--text-heading-color); - background-size: 17px; - background-position: left center; - font-size: 13px; - padding-inline-start: 22px; - padding-inline-end: 32px; -} - -.moz-vpn-status-icon.connected { - background-image: url("/img/moz-vpn-status-icons/moz-vpn-connected.svg"); -} - -.moz-vpn-status-icon.disconnected { - background-image: url("/img/moz-vpn-status-icons/moz-vpn-disconnected.svg"); -} - -.moz-vpn-logotype.vpn-status-container-list { - color: var(--text-heading-color); - background-size: 16px; - background-position: left center; - font-size: 12px; - padding-inline-start: 19px; - padding-inline-end: 22px; - margin-inline-end: 20px; - align-items: center; -} - -.moz-vpn-connection-status-indicator.container-list-status-icon { - block-size: 16px; - inline-size: 16px; -} - -/* Toggle Switch */ - -.switch { - display: inline-block; - block-size: 24px; - position: relative; - inline-size: 45px; -} - -.switch .switch-input { - block-size: 0; - opacity: 0; - inline-size: 0; -} - -.slider { - background-color: var(--grey20); - border-radius: 24px; - inset-block-end: 0; - box-shadow: 0 0 0 2px var(--bgColor), 0 0 0 4px var(--bgColor); - inset-inline-start: 0; - position: absolute; - inset-inline-end: 0; - inset-block-start: 0; - transition: 0.1s ease-in-out; -} - -.slider::before { - background-color: #fff; - border-radius: 50%; - inset-block-end: 3px; - content: ""; - block-size: 18px; - inset-inline-start: 3px; - position: absolute; - transition: 0.1s ease-in-out; - inline-size: 18px; -} - -input:hover + .slider { - background-color: var(--grey30); -} - -input:focus + .slider { - box-shadow: 0 0 0 2px var(--bgColor), 0 0 0 4px var(--grey30); -} - -input:active + .slider { - background-color: var(--grey40); -} - -input:checked + .slider { - background-color: var(--green50); -} - -input:checked:hover + .slider { - background-color: var(--green60); -} - -input:checked:focus + .slider { - box-shadow: 0 0 0 2px var(--bgColor), 0 0 0 4px var(--green70); -} - -input:checked:active + .slider { - background-color: var(--green70); -} - -input:checked + .slider::before { - transform: translateX(21px); -} - -.hidden { - visibility: hidden; -} - -/* Primary CTA Buttons */ - -.primary-cta { - block-size: 32px; - background-color: var(--primaryCtaDefault); - border: transparent; - border-radius: 4px; - color: #fff; - transition: background-color 0.2s ease-in-out; -} - -.primary-cta:hover { - background-color: var(--primaryCtaHover); -} - -.primary-cta:focus { - outline: none; - box-shadow: 0 0 0 1px var(--blue60), 0 0 0 4px var(--primaryCtafocus); -} - -.primary-cta:active { - background-color: var(--primaryCtaActive); -} - -/* Mozilla VPN tout */ - -#moz-vpn-tout { - opacity: 0; - background-color: var(--bgColor); - visibility: visible; - max-block-size: 500px; - position: absolute; - inset-block-end: var(--footerHeight); - inset-inline-start: 0; - inset-inline-end: 0; - box-shadow: 0 0 7px 0 #9498a25e; - animation: appear 0.2s ease-out 0.5s forwards; - transition: opacity 0.1s ease-in-out, max-height 0.3s ease-in-out; -} - -@keyframes appear { - 0% { - opacity: 0; - transform: translateY(10%); - } - - 100% { - opacity: 1; - transform: translateY(0%); - } -} - -/* Mozilla VPN Controller UI in Container Management Panel */ - -.moz-vpn-content, -.moz-vpn-controller-content { - display: flex; - position: relative; - flex-direction: column; - padding-block: 16px; - transition: max-height 0.3s ease-in-out, padding-block-end 0.2s ease-in-out; - box-shadow: 0 0 0 1px var(--hr-grey); -} - -.moz-vpn-connection-status-indicator { - position: absolute; - inset-inline-end: 0; - background-position: center center; - background-repeat: no-repeat; - background-size: contain; - size: 0; - color: rgba(0, 0, 0, 0); - block-size: 24px; - inline-size: 24px; -} - -.current-country-flag { - display: inline-block; - background-repeat: no-repeat; - background-position: left center; - background-size: contain; - block-size: 16px; - inline-size: 16px; -} - -.moz-vpn-controller-content.show-server-button { - padding-block-end: 56px; - transition: 0.2s ease-in-out; -} - -.dismiss-moz-vpn-tout { - margin-inline-start: auto; - block-size: 24px; - inline-size: 24px; - background: var(--bgColor); - background-image: var(--iconCloseX); - border: none; - border-radius: 4px; -} - -.flag-img { - block-size: 13px; - margin-inline-end: 4px; - opacity: 0.9; -} - -.page-action-flag { - margin-inline-end: var(--marginInline); -} - -.display-none { - display: none; -} - -.proxy-disabled { - opacity: 0.4; -} - -fieldset.proxies { - position: absolute; - inset-block-start: 120px; - inset-inline-start: 0; - inset-inline-end: 0; - block-size: 60px; - display: flex; - background: #5cabff; - justify-content: center; - align-content: center; - align-items: center; - flex-direction: row; - pointer-events: none; -} - -input.proxies { - font-size: 6px; - block-size: 20px; - max-block-size: 20px; - padding-block: 0 !important; - padding-inline: 0 !important; - display: inline-flex; - inline-size: 40% !important; - pointer-events: none; -} - -.moz-vpn-cta { - block-size: 32px; - margin-block-start: 16px; - margin-block-end: 4px; - margin-inline: var(--marginInline); - text-align: center; -} - -.apply-to-container { - block-size: 32px; - inline-size: 100%; - text-align: center; - margin-block: 16px; -} - -#moz-vpn-current-server { - align-items: center; - border: none; - display: flex; - block-size: 48px; - margin-block-start: 8px; - background-image: var(--iconArrowRight); - background-position: calc(100% - 24px) center; - background-repeat: no-repeat; - background-size: 9px; - outline: none; - padding-inline-start: 20px; - visibility: visible; - position: absolute; - inset-block-end: 0; - inline-size: 100%; - opacity: 0; - transition: opacity 0.2s ease-in-out; -} - -.moz-vpn-controller-content.show-server-button #moz-vpn-current-server { - opacity: 1; -} - -.moz-vpn-controller-content.show-server-button #moz-vpn-current-server[disabled] { - opacity: 0.5; - cursor: not-allowed; -} - -@keyframes serverButtonAppear { - 0% { - opacity: 0; - visibility: hidden; - z-index: -1; - } - - 90% { - z-index: -1; - visibility: hidden; - } - - 100% { - visibility: visible; - z-index: 1; - opacity: 1; - } -} - -#moz-vpn-current-server.hidden { - block-size: 0; - opacity: 0; - visibility: hidden; - z-index: -1; -} - -.current-city-name { - padding-inline-start: 12px; -} - -.collapsible-content { - max-block-size: 0; - opacity: 0; - visibility: hidden; - display: none; - background-color: var(--bgColor); - transition: max-height 0.2s ease-in-out, opacity 0.2s ease-in-out, visibility 0.2s ease-in-out; -} - -.moz-vpn-subtitle { - font-size: 12px; - flex: 0 1 80%; - color: var(--text-normal-color); -} - -.collapsible-content > .flx-row.flx-space-between { - inline-size: calc(100% - 40px); - margin-inline: auto; - padding-block-start: 12px; -} - -[disabled] { - pointer-events: none; - opacity: 0.5; -} - -#current-proxy { - font-size: 12px; - color: var(--grey30); - line-height: 13px; -} - -.expanded .collapsible-content { - display: flex; - max-block-size: 500px; - opacity: 1; - visibility: visible; -} - -.hide-label, -.show-label { - line-height: 100%; - position: absolute; - inset-inline-end: 0; - transition: visibility 0.2s ease-in-out, color 0.2s ease-in-out, opacity 0.2s ease-in-out; -} - -.expanded .hide-label, -.show-label { - visibility: visible; - opacity: 1; -} - -/* stylelint-disable */ -.hide-label, -.expanded .show-label { - visibility: hidden; - opacity: 0; -} - -/* stylelint-enable */ - -.expand-collapse { - inline-size: 50%; - margin-inline-start: auto; - pointer-events: all; -} - -.button-wrapper { - margin-inline: 20px; -} - -/* Advanced Proxy Settings Button */ - -#edit-advanced-proxy-input { - padding-inline-end: 40px; -} - -#edit-advanced-proxy-input.valid:focus { - box-shadow: 0 0 0 3px #3fe1b030; - border-color: var(--green80); -} - -.advanced-proxy-settings-btn { - background-color: var(--bgColor); - box-shadow: 0 0 0 1px var(--hr-grey); - background-image: var(--iconGear), var(--iconArrowRight); - background-position: 16px center, calc(100% - 24px) center; - background-repeat: no-repeat; - background-size: 24px 24px, 9px; - border: none; - color: var(--text-grey); - block-size: 56px; - min-block-size: 56px; - line-height: 19px; - display: flex; - flex-direction: column; - justify-content: center; - outline: none; - padding-inline-start: 44px; - z-index: 2; - transition: opacity 0.1s ease-in-out, background-color 0.1s ease-in-out; -} - -.disabled { - opacity: 0.5; - cursor: not-allowed; - pointer-events: none; -} - -.advanced-proxy-settings-btn:hover, -.advanced-proxy-settings-btn:focus { - background-color: var(--grey10); - outline: none; -} - -#clear-advanced-proxy-input { - position: absolute; - inset-inline-end: 8px; - inset-block-start: 7px; - border: none; - block-size: 22px; - inline-size: 22px; - border-radius: 50%; - background-image: var(--iconCloseX); - background-repeat: no-repeat; - background-position: center center; - background-size: 16px; - font-size: 1; - color: var(--bgColor); -} - -.proxy-title-container-color { - block-size: 12px; - inline-size: 12px; - z-index: 10; - border-radius: 50%; -} - -.advanced-proxy-panel-content { - padding-block: 16px; - padding-inline: 20px; - margin-block-start: 56px; - display: flex; - flex-direction: column; -} - -.advanced-proxy-input-wrapper { - margin-block-start: 12px; - position: relative; - display: flex; - flex-direction: column; -} - -.proxy-validity { - position: absolute; - inset-block-start: 42px; - inset-inline-start: 16px; - visibility: hidden; - opacity: 0; - background-color: var(--alertColor); - color: white; - border-radius: 4px; - padding-block: 2px; - padding-inline: 4px; - transition: opacity 0.2s ease-in-out, visibility 0.2s ease-in-out; -} - -.proxy-validity::after { - content: ""; - block-size: 8px; - inline-size: 8px; - background-color: var(--alertColor); - inset-block-start: -4px; - position: absolute; - transform: rotate(45deg); - inset-inline-start: 12px; -} - -.invalid .proxy-validity { - opacity: 1; - z-index: 10; - visibility: visible; -} - -.invalid .proxy-host.primary-input { - border-color: var(--red50); - box-shadow: 0 0 0 3px #ff848b70; -} - -.invalid button { - pointer-events: none; - opacity: 0.5; -} - -/* Mozilla VPN Server list */ - -.moz-vpn-logo, -.moz-vpn-logotype { - color: var(--text-heading-color); - background-image: var(--logoMozillaVpn); - background-repeat: no-repeat; - background-size: 24px; - background-position: left center; - font-family: var(--fontMetropolis); - font-size: 15px; - line-height: 24px; - padding-inline-start: 28px; - position: relative; - padding-inline-end: 32px; -} - -#moz-vpn-server-list-panel { - block-size: var(--panelSize); - max-block-size: var(--panelSize); - min-block-size: var(--panelSize); - overflow-x: hidden; - overflow-y: hidden; -} - -.proxy-panel-title { - line-height: var(--rowHeight); - block-size: var(--rowHeight); - border-block-end: 1px solid var(--hr-grey); - position: fixed; - z-index: 1; - background-color: var(--bgColor); - box-shadow: 0 0 13px -2px #b5b5b500; - transition: box-shadow 0.5s ease; -} - -.drop-shadow { - box-shadow: 0 0 13px -2px #b5b5b54d; -} - -.moz-vpn-server-list { - padding-block-start: 4px; - font-size: 15px; - color: var(--grey50); - position: absolute; - inset-block-start: var(--rowHeight); - inset-inline-start: 0; - inset-inline-end: 0; - overflow: scroll; - overflow-x: hidden; - overscroll-behavior: none; - block-size: calc(var(--panelSize) - var(--rowHeight)); - min-block-size: calc(var(--panelSize) - var(--rowHeight)); -} - -#moz-vpn-return { - z-index: 2; -} - -.server-list-item { - display: flex; - flex-direction: column; - position: relative; - background-color: var(--bgColor); -} - -.server-country-flag { - inline-size: 16px; - margin-inline-start: 16px; - margin-block: auto; - pointer-events: none; -} - -.server-country-name { - padding-block: 0; - padding-inline-end: 0; - padding-inline-start: 20px; - font-family: var(--fontMetropolis); - pointer-events: none; - color: var(--text-heading-color); -} - -.server-city-list-item, -.server-city-list-visibility-btn { - block-size: 40px; - margin-block-start: 4px; - margin-block-end: 4px; - margin-inline-start: 8px; - margin-inline-end: 8px; - inline-size: calc(100% - 16px); -} - -.server-city-list-visibility-btn { - display: flex; - background-color: var(--bgColor); - border-radius: 4px; - border: none; - transition: background-color 0.3s ease; -} - -.server-city-list-visibility-btn:hover { - background-color: var(--grey10); -} - -.server-city-list-visibility-btn:active { - background-color: var(--grey20); -} - -.toggle { - background-image: url("/img/arrow-toggle.svg"); - background-position: center center; - background-repeat: no-repeat; - block-size: 24px; - margin-inline-start: 8px; - pointer-events: none; - transform: rotate(-90deg); - transition: transform 0.275s ease-in-out; - inline-size: 24px; -} - -.expanded .toggle { - transform: rotate(0deg); -} - -.server-city-list { - block-size: 0; - opacity: 0; - transition: height 0.3s ease-in-out, opacity 0.3s ease, visibility 0.4s ease; - list-style-type: none; - visibility: hidden; -} - -.expanded .server-city-list { - opacity: 1; - visibility: visible; -} - -.server-city-list-item { - align-items: center; - display: flex; - position: relative; -} - -.server-city-name { - font-family: var(--fontMetropolisLight); - font-weight: 300; - color: var(--text-grey); - padding-inline-start: 18px; -} - -/* ----- controller buttons ------- */ - -.controller { - background-color: var(--bgColor); - color: var(--text-grey); - transition: background-color 0.1s ease-in-out; -} - -.controller:hover, -.controller:focus { - background-color: var(--controllerHover); -} - -.controller:active { - background-color: var(--controllerActive); -} - -/* WARNING MODAL ---- */ - -.modal-warning { - position: absolute; - inset-block-start: 0; - inset-block-end: 0; - inset-inline-start: 0; - background-color: #42404c89; - z-index: 4; - display: flex; - justify-content: center; -} - -.modal-content { - background-color: var(--bgColor); - inline-size: 80%; - block-size: 80%; - margin-inline: auto; - margin-block: auto; - border-radius: 16px; - box-shadow: 1px 2px 10px 10px var(--bgDark); - padding-block: 20px; - padding-inline: 20px; - display: flex; - justify-content: center; - align-items: center; - flex-direction: column; -} - -/* ----- MozillaVPN Proxy Unavailable-Specific -------- */ - -[data-moz-proxy-warning="proxy-unavailable"] { - position: relative; -} - -.flag-img.proxy-unavailable { - opacity: 0.5; -} - -/* ----- MozillaVPN Status Tooltips -------- */ - -.tooltip { - opacity: 0; - position: absolute; - z-index: 10; - inset-block-start: 24px; - inset-inline-end: -3px; - font-size: 11px; - font-family: var(--fontInter) !important; - font-weight: 300; - color: var(--text-normal-color); - background-color: var(--bgColor); - padding-inline: 8px; - padding-block: 4px; - border-radius: 4px; - box-shadow: 0 0 12px 3px #0000001c; - transform: translateY(-2px); - transition: opacity 0.2s ease-in-out, transform 0.2s ease-in-out; - min-inline-size: 170px; - line-height: 1.3; - text-align: center; - pointer-events: none; -} - -.tooltip::before { - content: ""; - block-size: 7px; - inline-size: 7px; - border-radius: 1px; - transform: rotate(45deg); - background: inherit; - position: absolute; - inset-block-start: -3px; - inset-inline-end: 9px; -} - -[data-moz-proxy-warning="proxy-unavailable"]:hover .tooltip, -[data-moz-proxy-warning="proxy-unavailable"]:active .tooltip { - opacity: 1; - transform: translateY(0); - transition: opacity 0.2s ease-in-out 0.5s, transform 0.2s ease-in-out 0.5s; -} - -.moz-vpn-logotype.vpn-status-container-list:hover .tooltip { - opacity: 1; - transform: translateY(0); - transition: opacity 0.2s ease-in-out 1s, transform 0.2s ease-in-out 1s; -} - -.tooltip.proxy-unavailable::after { - inset-inline-start: 4px; - inset-inline-end: auto; -} - -.tooltip.proxy-unavailable::before { - inset-inline-start: 12px; -} - -.tooltip.proxy-unavailable { - inset-inline-start: 32px; - inset-block-start: 32px; - padding-inline-start: 32px; - text-align: left; - background-image: var(--iconProxyWarning); - background-size: 24px 24px; - background-repeat: no-repeat; - background-position: 4px 4px; -} - -/* ------------ SERVER LIST RADIO BUTTONS ------------ */ - -.server-radio-btn { - block-size: 20px; - opacity: 0; - position: fixed; - inline-size: 20px; -} - -.server-radio-control { - border-radius: 50%; - border: 2px solid var(--grey40); - block-size: 20px; - margin-inline-start: 46px; - pointer-events: none; - position: relative; - inline-size: 20px; - transition: border 0.1s ease-in-out; -} - -.server-radio-btn:checked + .server-radio-control { - border-color: var(--primaryCtaDefault); - transition: border-color 0.2s ease; -} - -.server-radio-control::after { - background-color: var(--grey40); - border-radius: 50%; - inset-block-end: 0; - content: ""; - block-size: 12px; - inset-inline-start: 0; - margin-inline: auto; - margin-block: auto; - opacity: 0; - position: absolute; - inset-inline-end: 0; - inset-block-start: 0; - transition: opacity 0.1s ease-in-out; - inline-size: 12px; -} - -/* Unchecked radio button styles */ - -.server-city-list-item:hover .server-radio-control { - border: 2px solid var(--grey50); -} - -.server-city-list-item:hover .server-radio-control::after { - opacity: 0.3; -} - -.server-city-list-item:active .server-radio-control::after { - opacity: 0.5; -} - -/* Checked radio button rules */ - -.server-city-list-item:hover .server-radio-btn:checked + .server-radio-control { - border: 2px solid var(--primaryCtaDefault); -} - -.server-radio-btn:checked + .server-radio-control::after { - background-color: var(--primaryCtaDefault); - opacity: 1; -} - -/* Helpers */ - -.add-bg-color { - background-color: var(--bgColor); - z-index: 2; -} - -.flx-space-between { - justify-content: space-between; -} - -.flx-row { - align-items: center; - display: flex; - flex-direction: row; -} - -/* stylelint-disable */ - -v-padding-hack16 { - block-size: 16px; -} - -v-padding-hack-4 { - block-size: 4px; - inline-size: 100%; -} - -v-padding-hack-footer { - block-size: var(--footerHeight); - inline-size: 100%; -} - -/* stylelint-enable */ - -.flx-col { - display: flex; - flex-direction: column; -} - -fieldset, -.options-header { - padding-block-end: 16px; -} - -.options-header { - display: none; -} - -/* ------ Input ----- */ - -input[type=text] { - block-size: 36px; - border-radius: 4px; - background-color: var(--bgColor); - color: var(--text-grey); - padding-block: 8px; - padding-inline: 8px; -} - -/* Blue links */ - -.blue-link { - box-sizing: content-box; - text-decoration: none; - align-items: center; - background-color: transparent; - border: none; - color: var(--primaryCtaDefault); - display: flex; - block-size: 24px; - line-height: 24px; - position: relative; - margin-inline: auto; - transition: color 0.1s ease-in-out; -} - -.blue-link, -.hide-show-label { - block-size: 24px; - line-height: 24px; -} - -.blue-link:hover { - color: var(--primaryCtaHover); -} - -.blue-link:focus, -.blue-link:focus .hide-show-label { - text-decoration: underline; - outline: none; -} - -/* ------------ ------------ ------------ ------------ */ - -/* Panels keep everything together */ -.panel { - display: flex; - flex-direction: column; - justify-content: space-between; - position: relative; - max-block-size: 601px; - background-color: var(--bgColor); - transition: height 0.1s ease-in-out; -} - -.container-panel { - min-block-size: 500px; -} - -.delete-container-panel { - min-block-size: 300px; -} - -.panel.onboarding, -.achievement-panel { - align-items: center; - margin-block: var(--marginInline); - margin-inline: var(--marginInline); - min-block-size: 360px; -} - -.panel.onboarding-panel-8.optional-permissions-disabled { - min-block-size: 420px; - margin-block-end: 0; - margin-inline: 0; -} - -.optional-permissions-disabled #moz-vpn-fw-onboarding-done { - display: none !important; -} - -.moz-vpn-permissions { - padding-block: var(--marginInline); - padding-inline: var(--marginInline); - background-color: #cececf1c; - border-block-start: 1px solid var(--hr-grey); - display: none; -} - -.optional-permissions-disabled .moz-vpn-permissions { - display: block; - inline-size: 100%; -} - -.moz-vpn-onboarding-content { - display: flex; - flex-direction: column; - justify-content: space-between; - align-items: center; - padding-inline: var(--marginInline); - padding-block-end: var(--marginInline); -} - -.moz-vpn-permissions-copy { - padding-inline: 20px; - font-size: 12px; - margin-block-end: 16px; -} - -.panel-content { - flex: 1; - padding-block-start: 16px; -} - -.panel-footer .button { - align-items: center; - block-size: 100%; - display: flex; - flex: 1; - justify-content: center; -} - -/* Onboarding styles */ -.onboarding * { - text-align: center; -} - -.onboarding-img { - block-size: 132px; - inline-size: 180px; -} - -.onboarding-title { - color: #43484e; - font-size: var(--font-size-heading); - margin-block: 12px; - margin-inline-end: 0; - margin-inline-start: 0; - max-inline-size: 80%; - font-family: var(--fontMetropolis); -} - -.onboarding p { - color: var(--text-normal-color); - font-size: 14px; - margin-block-end: 16px; - max-inline-size: 84%; -} - -.onboarding-button { - align-items: center; - background-color: #0996f8; - border-radius: 3px; - color: white; - display: flex; - flex: 0 0 44px; - font-size: 14px; - inline-size: 100%; - justify-content: center; - text-decoration: none; - transition: background-color 75ms; -} - -.half-button-wrapper { - align-items: center; - display: flex; - flex-direction: row; - block-size: 44px; - inline-size: 100%; - font-family: var(--fontMetropolis); -} - -.half-onboarding-button { - align-items: center; - background-color: #0996f8; - border-radius: 3px; - color: white; - display: flex; - flex: 1 0 auto; - font-size: 14px; - block-size: 44px; - inline-size: 50%; - justify-content: center; - margin-inline-end: 4px; - text-decoration: none; - transition: background-color 75ms; -} - -.grey-button { - background-color: #e3e3e3; - color: var(--grey50); -} - -.onboarding-button:hover, -.onboarding-button:active { - background-color: #0675d3; -} - -.onboarding-button:focus, -.half-onboarding-button:focus { - box-shadow: 0 0 0 1px #0a84ff inset, 0 0 0 1px #0a84ff, 0 0 0 4px rgba(10, 132, 255, 0.3); -} - -/* Pop buttons are the square shaped buttons used to -manage things like container crud */ -.pop-button { - align-items: center; - block-size: var(--icon-button-size); - cursor: pointer; - display: flex; - flex: 0 0 var(--icon-button-size); - justify-content: center; -} - -.panel-footer a { - text-decoration: none; -} - -.userContext-wrapper { - align-items: center; - display: flex; - flex: 1 1; - transition: background-color 75ms; -} - -.edit-containers-panel .userContext-wrapper { - max-inline-size: calc(var(--overflow-size) + 203px); -} - -.disable-edit-containers { - opacity: var(--inactive-opacity); - pointer-events: none; -} - -.userContext-icon-wrapper { - block-size: var(--icon-button-size); - flex: 0 0 var(--icon-button-size); - margin-inline-start: var(--inline-icon-space-size); -} - -/* .userContext-icon is used natively, Bug 1333811 was raised to fix */ -.usercontext-icon { - background-image: var(--identity-icon); - background-position: center center; - background-repeat: no-repeat; - background-size: 16px; - block-size: 100%; - fill: var(--identity-icon-color); - filter: url('/img/filters.svg#fill'); -} - -.usercontext-icon::before { - transform: scale(1); - transform-origin: center; - transition: fill 0.1s ease-in-out, transform 0.1s ease-in-out; -} - -.radio-container:active .usercontext-icon::before { - transform: scale(0.95); -} - -#edit-container-panel-choose-icon .radio-container:hover .usercontext-icon::before { - fill: var(--grey50) !important; -} - -.mac-icon { - background-image: url('/img/multiaccountcontainer-16.svg'); - background-position: center center; - background-repeat: no-repeat; - background-size: 16px; - block-size: 100%; -} - -.container-panel-row:hover .clickable .usercontext-icon, -.container-panel-row:focus .clickable .usercontext-icon, -.container-panel-row .clickable:focus .usercontext-icon { - background-image: url('/img/container-newtab.svg'); - fill: #979797; - filter: url('/img/filters.svg#fill'); -} - -.container-panel-row .clickable:hover .usercontext-icon, -.container-panel-row .clickable:focus .usercontext-icon { - fill: #0094fb; -} - -/* Panel footer */ -.panel-footer { - align-items: center; - block-size: var(--footerHeight); - color: #000; - display: flex; - font-size: 13px; - inline-size: 100%; - justify-content: space-between; - box-shadow: 0 0 0 1px var(--hr-grey); -} - -#container-info-panel { - block-size: 100vh; -} - -.container-info-has-tabs, -.container-info-tab-row { - align-items: center; - display: flex; - flex: 0 0 28px; - font-size: 14px; - justify-content: flex-start; - margin-block-end: 0; - margin-block-start: 0; - margin-inline-end: 0; - margin-inline-start: 0; - padding-inline-end: 16px; - padding-inline-start: 16px; -} - -.container-info-has-tabs img, -.container-info-tab-row img { - block-size: 16px; - flex: 0 0 16px; - margin-inline-end: 4px; -} - -.container-info-tab-row img[src=""] { - margin-inline-end: 0; -} - -.delete-container-confirm { - padding-inline-end: 20px; - padding-inline-start: 20px; -} - -.delete-container-confirm-title { - color: #000; - font-size: var(--font-size-heading); -} - -#edit-sites-assigned h3 { - font-size: 14px; - font-weight: normal; - padding-block-end: 6px; - padding-block-start: 6px; - padding-inline-end: 16px; - padding-inline-start: 16px; -} - -.assigned-sites-list > div { - display: flex; - padding-block-end: 6px; - padding-block-start: 6px; -} - -.assigned-sites-list > div > .icon { - margin-inline-end: 10px; -} - -.assigned-sites-list > div > .hostname { - flex: 1; -} - -.radio-choice > .radio-container { - align-items: center; - block-size: 32px; - display: flex; - justify-content: center; - flex: 0 0 calc(100% / var(--icon-fit)); -} - -.radio-choice > .radio-container > label { - background: none; - block-size: 23px; - border: 0; - filter: none; - inline-size: 23px; - margin-block-end: 0; - margin-block-start: 0; - margin-inline-end: 0; - margin-inline-start: 0; - padding-block-end: 0; - padding-block-start: 0; - padding-inline-end: 0; - padding-inline-start: 0; -} - -.radio-choice > .radio-container > label::before { - background-color: unset; - background-image: var(--identity-icon); - background-position: center; - background-repeat: no-repeat; - background-size: 16px; - block-size: 23px; - border: none; - content: ""; - display: block; - fill: var(--identity-icon-color); - filter: url('/img/filters.svg#fill'); - inline-size: 23px; - position: relative; -} - -.radio-choice > .radio-container > [type="radio"] { - -moz-appearance: none; - display: inline; - opacity: 0; - position: absolute; - margin-block: auto; - margin-inline: auto; -} - -.radio-choice > .radio-container > [type="radio"]:checked + label { - background: #d3d3d3; - border-radius: 100%; -} - -/* When focusing the element add a thin blue highlight to match input fields. This gives a distinction to other selected radio items */ -.radio-choice > .radio-container > [type="radio"]:focus + label { - outline: 1px solid #1f9ffc; - -moz-outline-radius: 100%; -} - -.edit-container-panel fieldset { - background: none; - border: none; - display: flex; - flex-direction: row; - flex-wrap: wrap; -} - -#edit-container-choose-color { - justify-content: space-between; -} - -.edit-container-panel input[type="text"] { - inline-size: 100%; - margin-inline: 4px; -} - -input[type="text"]:focus { - box-shadow: 0 0 0 3px var(--primaryCtafocus); - outline: none; - border-color: var(--blue70); -} - -.edit-container-panel legend, -.options-header { - margin-inline: 4px; - flex: 1 0; -} - -/* Achievement panel elements */ -.share-ctas { - padding-block-end: 0.5em; - padding-block-start: 0.5em; - padding-inline-end: 0.5em; - padding-inline-start: 0.5em; - text-align: center; -} - -.cta-link { - text-decoration: none; -} - -.cta { - color: #fff; - font-size: 0.7em; - font-weight: bold; - margin-block-end: 0.4em; - margin-block-start: 0.4em; - margin-inline-end: 0.4em; - margin-inline-start: 0.4em; - padding-block-end: 0.5em; - padding-block-start: 0.5em; - padding-inline-end: 0.5em; - padding-inline-start: 0.5em; - text-transform: uppercase; -} - -.cta-icon { - block-size: 18px; - padding-inline-end: 0.5em; - vertical-align: middle; -} - -.fb-share-cta { - background: #375496; -} - -.fb-share-cta .cta-icon { - margin-block-start: -5px; -} - -.tweet-cta { - background: #37bae7; -} - -.amo-rate-cta { - background: #0f1126; -} - -h3.title { - block-size: 48px; - color: #000; - font-family: var(--fontMetropolis); - font-size: 14px; - font-weight: bold; - inline-size: 100%; - letter-spacing: -0.1px; - line-height: 48px; - text-align: center; -} - -.menu { - border-style: none; - inline-size: 100%; - padding-block: 8px; -} - -.menu-item { - cursor: pointer; - block-size: var(--menuItemHeight); - inline-size: 100%; - line-height: var(--menuItemHeight); - display: flex; - align-items: center; -} - -.menu-text { - display: flex; - flex: 1; -} - -.menu-item td { - align-items: center; - display: flex; - inline-size: 100%; -} - -.menu-item.drag-over td { - border-block-start: 2px solid var(--text-normal-color); -} - -.disabled-menu-item { - color: grey; - cursor: default; - font-style: italic; -} - -.hover-highlight { - transition: background-color 0.1s ease-in-out, color 0.1s ease-in-out; -} - -.hover-highlight:hover, -.hover-highlight:focus { - background-color: var(--highlight-blue); - color: #fff; -} - -.menu-item-name { - display: flex; - inline-size: calc(100% - 40px); - max-inline-size: 260px; - cursor: default; -} - -.menu-icon { - display: block; - block-size: 16px; - inline-size: 23px; - margin-block-end: auto; - margin-block-start: auto; - margin-inline-end: 8px; - margin-inline-start: var(--marginInline); - text-align: center; -} - -/* Maintain 1:1 square ratio for favicons of websites added to a specific container */ -#edit-sites-assigned .menu-icon, -#container-info-table .menu-icon { - inline-size: 16px; -} - -.menu-right-float { - text-align: right; - margin-inline-start: auto; - margin-inline-end: 0; - display: flex; - justify-content: flex-end; - align-items: center; - padding-inline-start: 16px; -} - -.container-count { - opacity: 0.7; - text-align: center; - min-inline-size: 24px; - margin-inline-end: 4px; -} - -.menu-arrow { - align-items: center; - display: flex; - justify-content: flex-end; - block-size: 24px; - margin-inline-end: 20px; - text-align: center; -} - -.menu-arrow img { - block-size: 24px; - inline-size: 12px; - padding-block-end: 2px; - padding-block-start: 2px; - padding-inline-end: 2px; - padding-inline-start: 2px; - opacity: 0.9; -} - -hr { - border: 0; - border-block-start: 1px solid var(--hr-grey); - display: block; -} - -.sub-header-wrapper { - margin-block-start: 12px; -} - -.sub-header { - color: var(--text-heading-color); - block-size: 24px; - line-height: 24px; - padding-block-end: 0; - padding-block-start: 0; - padding-inline-start: 20px; - font-family: var(--fontInterMedium); -} - -.edit-form { - color: var(--text-grey); - flex: 1; - padding-block-end: 16px; - padding-block-start: 16px; - padding-inline-end: 16px; - padding-inline-start: 16px; -} - -.bottom-btn { - inset-block-end: 0; - box-shadow: 0 0 0 1px var(--hr-grey); - cursor: pointer; - block-size: var(--footerHeight); - inline-size: 100%; - line-height: var(--footerHeight); - padding-inline-end: 16px; - padding-inline-start: 16px; - position: absolute; - text-align: center; - font-size: 14px; - font-family: var(--fontMetropolis); - color: var(--text-heading-color); - pointer-events: all; -} - -.delete-btn { - background-color: var(--bgColor); - border: none; - border-left: none; - border-right: none; - border-block-end: none; - box-shadow: 0 0 0 1px var(--hr-grey); - color: var(--alertColor); - cursor: default; - display: flex; - block-size: var(--rowHeight); - justify-content: center; - line-height: var(--rowHeight); - pointer-events: all; - transition: background-color 0.1s ease-in-out, border-color 0.1s ease-in-out, box-shadow 0.1s ease-in-out; -} - -.alert-text { - font-family: var(--fontMetropolis); - background-color: var(--bgColor); - color: var(--alertColor); - cursor: pointer; - text-align: center; -} - -.alert-text:hover, -.alert-text:focus { - background-color: rgba(255, 79, 94, 0.05); - box-shadow: 0 0 0 1px rgba(255, 79, 94, 0.05); -} - -.delete-btn:active { - background-color: rgba(255, 79, 94, 0.1); - box-shadow: 0 0 0 1px var(--alertColor); -} - -.delete-btn:focus { - box-shadow: 0 0 0 1px var(--alertColor); - outline: none; -} - -.btn-return.arrow-left { - background-image: var(--iconArrowLeft); - border: 0; - cursor: pointer; - inset-block-start: 8px; - inset-inline-start: 8px; - position: absolute; - z-index: 2; - block-size: 32px; - inline-size: 32px; - background-repeat: no-repeat; - border-radius: 4px; - background-position: center center; -} - -input { - border: solid 1px #bebebe; - border-radius: 2px; -} - -.form-header { - padding-block-end: 0; - padding-block-start: 0; - padding-inline-end: 0; - padding-inline-start: 0; -} - -.edit-container-panel-name-input { - color: var(--text-grey); - block-size: 32px; -} - -.container-options { - block-size: 24px; - margin-inline: 4px; - display: flex; - justify-content: space-between; -} - -.site-isolation { - inset-block-end: auto; -} - -.options-label { - cursor: pointer; - pointer-events: none; -} - -.info-icon { - cursor: pointer; - block-size: 16px; - inline-size: 16px; - inset-block-start: 16px; - position: absolute; - inset-inline-end: 20px; - text-align: center; - text-decoration: none; -} - -.info-icon-alert::after { - block-size: 12px; - inline-size: 12px; - background-color: var(--alertColor); - content: "1"; - border-radius: 50%; - position: absolute; - inset-block: -5px; - inset-inline-end: -6px; - box-shadow: 0 0 1px #00000075; - font-size: 8px; - color: white; - display: flex; - align-items: center; - justify-content: center; - font-weight: bolder; -} - -.delete-warning { - padding-block-end: 8px; - padding-block-start: 8px; - padding-inline-end: 0; - padding-inline-start: 0; -} - -.trash-button { - display: inline-block; - block-size: 20px; - inline-size: 20px; - margin-block-end: 4px; - margin-block-start: 4px; - margin-inline-end: 10px; - margin-inline-start: 0; - text-align: center; -} - -tr > td > .trash-button { - display: none; -} - -tr:hover > td > .trash-button { - display: block; -} - -.move-button { - cursor: move; - display: inline-block; -} - -.move-button > img { - block-size: 16px; - margin-inline-end: 20px; - margin-inline-start: 8px; -} - -/* ----- Permissions Overlay ---------- */ - -#advanced-proxy-settings-panel, -.advanced-proxy-panel-content { - position: absolute; - inset-block: 0; - inset-inline: 0; -} - -.permissions-overlay { - position: absolute; - inset-inline: 0 0; - inset-block-start: 40px; - inset-block-end: 0; - justify-content: center; - align-content: center; - flex-direction: column; - background-color: white; - padding-block: 2.25rem; - padding-inline: 2.25rem; - display: none; -} - -#enable-proxy-permissions { - text-align: center; - font-family: var(--fontMetropolis); - font-size: 14px; - margin-block-start: 1rem; -} - -@media (prefers-color-scheme: dark) { - :root { - --iconCloseX: url("/img/close-light.svg"); - --iconGear: url("/img/gear-icon-light.svg"); - --iconArrowRight: url("/img/arrow-icon-right-light.svg"); - --iconArrowLeft: url("/img/arrow-icon-left-light.svg"); - --iconProxyWarning: url("/img/proxy-warning-light.svg"); - --logoMozillaVpn: url("/img/moz-vpn-logo-light.svg"); - --bgColor: #42404c; - --title-text-color: #fff; - --text-normal-color: #f9f9fa; - --text-heading-color: #fff; - --primaryCtaDefault: var(--blue40); - --primaryCtaHover: var(--blue50); - --primaryCtaActive: var(--blue60); - --highlight-blue: #52515d; - --bottomButtons: var(--highlight-blue); - --controllerHover: var(--highlight-blue); - --controllerActive: rgb(90, 89, 102); - --bgDark: #2b2932; - } - - body { - color: #ffffffd1; - - --highlight-blue: #52515d; - --hr-grey: #38383d; - --text-grey: #fefffe; - } - - .permissions-overlay { - background-color: #494755; - } - - .tooltip { - background-color: var(--controllerActive); - } - - #moz-vpn-tout { - box-shadow: 0 0 21px 3px #323139; - } - - .moz-vpn-permissions { - background-color: #322f3e; - } - - .blue-link { - color: #36abfc; - } - - .blue-link:hover { - color: var(--blue20); - } - - .drop-shadow { - box-shadow: 0 0 13px -2px #323139; - } - - .server-radio-control { - border-color: var(--grey40); - } - - .server-radio-control::after { - background-color: var(--grey30); - } - - .server-city-list-item:hover .server-radio-control { - border-color: var(--grey30); - } - - .server-city-list-item:active .server-radio-control { - border-color: var(--grey20); - } - - .primary-cta:focus { - box-shadow: 0 0 0 1px #00ddffd6, 0 0 0 3px var(--primaryCtaHover); - } - - .slider { - background-color: var(--grey30); - } - - input:hover + .slider { - background-color: var(--grey40); - } - - input:focus + .slider { - box-shadow: 0 0 0 2px var(--bgColor), 0 0 0 4px var(--grey20); - } - - h3.title { - color: #fff; - } - - .delete-btn, - .bottom-btn { - background-color: var(--bottomButtons); - box-shadow: 0 0 0 1px #73737300; - } - - .onboarding-title, - .delete-container-confirm-title { - color: #ededf0; - } - - input { - border: solid 1px #737373; - } - - input[type=text] { - background-color: rgba(43, 41, 50, 0.79) !important; - } - - .delete-container { - background-color: #4a4a4a; - } - - .delete-btn, - .cancel-button, - .grey-button { - background-color: var(--bottomButtons); - color: #f9f9fa; - } - - .button.secondary:hover, - .button.secondary:focus { - background-color: #676767; - } - - input[type="text"]:focus { - box-shadow: 0 0 0 3px var(--blue50); - border-color: var(--blue30); - } - - .trash-button, - img.menu-icon, - .menu-icon > img, - .menu-arrow > img, - .info-icon > img { - filter: invert(1); - } - - #edit-sites-assigned .menu-icon, - #container-info-table .menu-icon { - filter: invert(0); - } - - .truncate-text::after { - background: var(--bgColor); - mask-image: linear-gradient(to right, transparent, var(--bgColor) 70%); - } - - [data-identity-color="grey"] { - --identity-icon-color: #ededf0; - } - - .radio-choice > .radio-container > [type="radio"]:checked + label { - background: var(--bgDark); - } - - #edit-container-panel-choose-icon .radio-container:hover .usercontext-icon::before { - fill: #fff !important; - } -} - -/* OVERFLOW MENU */ - -.overflow body, -.overflow html { - inline-size: 100%; -} - -.overflow .container-panel { - min-block-size: 100%; -} - -.overflow .panel.onboarding { - margin-block: auto; -} diff --git a/src/fonts/Inter-Medium.woff2 b/src/fonts/Inter-Medium.woff2 deleted file mode 100644 index 7d0fbe9ed743dfec56d45295b041f380fb4fb3c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95224 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

fZ!utm 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 ehSp;jjC zauvHOu0AXt77vTH*wbWK45vRN^8Dq#`$n&M81FIcPF>t%g-j#gNQ}i^4J&dWB{#S{t7ErR32r z7`&XxxY7H|0voaJQ@a@o9kqjLTvCCsDg_%|{{SP_bEZ(M413XjHf%wQBa34_uVyy6 z^QFA#GzS4P{|%AXC(RdKP!{^`vzynWsY0r*s562Mtn1c(xv(|@hN>`FKDS8~L)Cv# z2M-me_VaG84yR&w`N|G`c=_AnaO(14rsq?GW$Wc7_(lo(Y;1svc9b zp(o?f|G!j^2~a&I=c=A{A{4dHM(U6?l$&pQ zbK2Tw)a%h5_~BULu?~3>QyNQD8du|OOfKntc*rpSpSlK^7$^LY$(-Mt^v$W)V6i6(!NjrdayL+G>ZyynZwtFR zu0PXb)ZL<+Ji)p6#vucIiL;sHszF^4>ZDxCmDj+IVRY)|;x6xnOdh3Wdo$O_wd1jw z!H9~5g>H+oj_LwNtZ6s3G7Ys?BIPQDI;qQYtZB+s_mY8^tMeo_8kPL*6+StbqN4+r zsnY}4!JOHn{eUNct4Z-q8qh&m^AH6N4ND$N0*uQl0|E&EH^=CVe|Ls#hJpVX2I3h8 zY8^}=0f$E?R&^h%4qB2-fsvL;^|(Tq7pZVr#mydFw-g_B4cW|rEwuVrkdNjiH%E1p zEWbK8W8C*Pl4>I;)uSZ;GFs`=QVhTLnNl_q|ER3g6);4!HisKNV#-Nf2*l6mmJ`6F zaVS&BIYf&TGFPCjk(#tQm0#$iOWB0-qGdvzTVzov!^?y^S}3YeCgu~WMWl22^@S@M zrB)1YGzz;@S^z)kwhNVMH5A=U zu#x>V%{02F_XJ(dFCw@RI5X`=c60TF{k}i-=)BZ8JWeuLL0mFCLF%Ph8yWR%O^|T@ zZ|vP}MXgOvt;z#y=lkevx|H8?UpUf{Q>%p)9Dd4><=MkjZS}x)>Q}u1$i1emexV{r z&tBBN4jc%UTGzsn5Fe^t59n+C~D6x>MA?RWiNH&3iT?KEAAD( zi#i)?a*XZV*af+Rsi`FL_}!rRM8F0Fnq$f3a51;293}e!Et~T&FtX9+%f5r;|LUrf z@u;gdr<0iwNB8?uSHFT?RrfLVCdsRZvt{8w)^&L=h7wC#XbNL#%j3mX6C(0mWzd2iHF*An7U|x+1-wFX&nog*n_MCG#sxAl8z{imuoU~zK3IFo z0qVpj;-X(Wn6nM=9#5rFLalVa%jHTP7{BFtBW9++v$(dQYQ%nCl3{o1lJg_N2xHTB z+NQyh$OCgHp*}E1T#Jb_m;dctwq}RNzsjq5%m7pLAg8-J_^xX)p&wn}3u4>db9263 zSWh|OVL*yd`&r)S&MQ1_m>*#odh(98FLr>_+%@bg{(tOVT%7__DOIAW%_;FC-xikV zoB-+G7L`h)x7Q~pR*dGtf15|BeEiIIC)9cuKjnMH;!m{)1>9M<+vN)i-4_Ty^>np# zH{Amvy((?QvmZPU z#u1eG3dAG&2v#vXT!>`&LW4$zFEOOiN0_FMuu2`}*XX0wV^vpA$DB?lQ0>xA9@c?8 zAe3MF^p7ch1U`U$%sKiAvd^u}`LhG6qEa?4QDg6+L%2r8K59_2s3f6G{8xIJOer=Z zRDrf_gm;c};J0!28jyfFQ5>spR+z#rBc<(PaYU1I=NDuCqs12s_d0mJe?Y;e)!_`X zH6hYNcV0(XkC>(VhpRgg5IC5k&B(*L@CSHRSd&!?jq8-$k5vmIKfP9@BXQy&`9p@K zm300gEuG!SKuaT5OXKfh>CYjZe{@(Hl@?aC;8?SNtVunkqur~;1K}ZA7nK847YNYE_jw)12OI8KP!-QdfeBG?(s()!=k_ZkO^+EYZi9HvfGQ&)Lgj?7^nc|{S9 z-Rt>v2LA=N^I`)tc2GZ~5cUp;x)=ri_+-Brrid(2HnPhBG&**Bg2?wvahYP!5Cy2a zxkD1eODL~cE6#6eEIhjOznwk0TCP2ZuXd8kA?Rm?eZ;&Sq^IqiuQlA5*tHd+ziTx4 zn_^4bs%%eN6oDASieWho=Ji8Ry?QagbInrw>)fE)#wN3XlQErX}?b z8RM*ENick31zrrYYx`<0Ak2wx8=3dFp%EkGex^E__BdGMgMRK1->CT9Z_sc){Q8uX z#+Dh27fAAdjdp!X@^@72(~@7H>oGGo)1Lp%m-(<@$t4*>??P6pAB6v7!yhJ=5{Rwi z#$eoIKKULkPwxL_$1f%4#`D&NteBpQIdPd^%GeUygN3=wA)cxL1|NERT{evNTJPv2 zt^Wt3{J=@+%ln_6emzC~VkG3O!WUh|usGMBUIslo|N?Ni4sMv>3zBRXq5?FrdXSaGPP^ zA;Z8GhJhKurlE{)4k@{05hl4*-BZBC!2|w#?04D%0AdhCA&^2ag@6h{6#^@6@O8+E zr$BWHrQ@2s?q=oYb?68x@X{GITCs^3iEUz8-zgw9Id`50&CK22

q;bAvSclGx^n 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≀q-> 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 bzobJFFaj&@=eJ01T*k2v8HXaj761SM#%TxI diff --git a/src/img/Account.svg b/src/img/Account.svg deleted file mode 100644 index 27d6146..0000000 --- a/src/img/Account.svg +++ /dev/null @@ -1,3 +0,0 @@ -account \ No newline at end of file diff --git a/src/img/Sync.svg b/src/img/Sync.svg deleted file mode 100644 index d67f786..0000000 --- a/src/img/Sync.svg +++ /dev/null @@ -1,3 +0,0 @@ -Sync \ No newline at end of file diff --git a/src/img/amo-icon.svg b/src/img/amo-icon.svg deleted file mode 100644 index bafd00e..0000000 --- a/src/img/amo-icon.svg +++ /dev/null @@ -1,3 +0,0 @@ - Created with Sketch. \ No newline at end of file diff --git a/src/img/arrow-icon-left-light.svg b/src/img/arrow-icon-left-light.svg deleted file mode 100644 index 5a35ea8..0000000 --- a/src/img/arrow-icon-left-light.svg +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/src/img/arrow-icon-left.svg b/src/img/arrow-icon-left.svg deleted file mode 100644 index 2060238..0000000 --- a/src/img/arrow-icon-left.svg +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/src/img/arrow-icon-right-light.svg b/src/img/arrow-icon-right-light.svg deleted file mode 100644 index d8549ce..0000000 --- a/src/img/arrow-icon-right-light.svg +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Arrow - Created with Sketch. - - - - - - - - - - - - - - - - diff --git a/src/img/arrow-icon-right.svg b/src/img/arrow-icon-right.svg deleted file mode 100644 index ba8df85..0000000 --- a/src/img/arrow-icon-right.svg +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Arrow - Created with Sketch. - - - - - - - - - - - - - - - - diff --git a/src/img/arrow-toggle.svg b/src/img/arrow-toggle.svg deleted file mode 100644 index a16112c..0000000 --- a/src/img/arrow-toggle.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/img/blank-favicon.svg b/src/img/blank-favicon.svg deleted file mode 100644 index c2393b6..0000000 --- a/src/img/blank-favicon.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - diff --git a/src/img/blank-tab.svg b/src/img/blank-tab.svg deleted file mode 100644 index bb3d5eb..0000000 --- a/src/img/blank-tab.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - \ No newline at end of file diff --git a/src/img/close-light.svg b/src/img/close-light.svg deleted file mode 100644 index a2a88f1..0000000 --- a/src/img/close-light.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/img/close.svg b/src/img/close.svg deleted file mode 100644 index 1a004fc..0000000 --- a/src/img/close.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/img/container-close-tab.svg b/src/img/container-close-tab.svg deleted file mode 100644 index 4c8aebc..0000000 --- a/src/img/container-close-tab.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - \ No newline at end of file diff --git a/src/img/container-delete.svg b/src/img/container-delete.svg deleted file mode 100644 index 1e67c8e..0000000 --- a/src/img/container-delete.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - diff --git a/src/img/container-move.svg b/src/img/container-move.svg deleted file mode 100644 index ee4fd70..0000000 --- a/src/img/container-move.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/img/container-newtab.svg b/src/img/container-newtab.svg deleted file mode 100644 index f41e140..0000000 --- a/src/img/container-newtab.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - -icon-newtab - - - - - - - - - - diff --git a/src/img/container-openin-16.svg b/src/img/container-openin-16.svg deleted file mode 100644 index 6786b5e..0000000 --- a/src/img/container-openin-16.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - diff --git a/src/img/container-site-d-24.png b/src/img/container-site-d-24.png deleted file mode 100644 index 3ef2901664424112836124c67d22bec15ff203a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 342 zcmV-c0jd6pP)K#u$Q#NAM6XT)6N8Z{aZ%6#M~k;ldasx)D8vOQDY7HC%WAK@@`HWDqwa zv@z4uGmvcbLDSv!s_JzW)rq7L(4!t7X4aiXNO}M^fT5Y4_?(MO4zL*M_XDm?P!pt0 z10*HD=|ttL<-RFt=-FQz3joW&Sp~OVuJ#oGBj6rb@@#9s3h)FxdiIyb0%leKTN7>j zo}#;HQ#4aJAdmDd+6r7oh~&UkfPXIcw^?`O7m~Jtl6r)HcV=eqiKGkQ2v`U>kAZ75 zJ1&#o0J}90`~(ILIIKxd$sc(4orvlkuz6Eg+|Un_1rl1+B-=>Px#07*qoM6N<$g0?S=&Hw-a diff --git a/src/img/container-site-d-48.png b/src/img/container-site-d-48.png deleted file mode 100644 index beb0bfaccbc90c9cb58a75814846974fb743b9c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 578 zcmV-I0=@l-P)%-6o#K&CyGFVQ6gGsV`61xqn-YNH=#l-h=xKNO)wfmWoI-73Kh{{fe;?B;5mEI}YB+bxEhpY`n?3D-FW~TmVi3-}8#fz~dGUUuV=q z=B@(gJmmID>JBB~izDqW5QHdDG>Ln}{*crK^yM6KB4h2mq`Vn_1QC$bN%fDZugTKS zd+dJ=^%d$p!0`LwV%whsp#-*o9S^ycAm@OYtwBz^<0fQJXD z{RC__y#4|#g?b|*|1G7^4QuxX#~foe&8z}Yl5`Xp1BQVv*I-}{7%{W0)ZpE~6fl7M z6N_!&9q=dtUI6zU1M74GcWNRJQhQ^-%@+0P07ihHWnid9p^e0ku?Vhl;2i Qxc~qF07*qoM6N<$g5H+`H~;_u diff --git a/src/img/container-site-d-96.png b/src/img/container-site-d-96.png deleted file mode 100644 index 3c3e0323ff44734ac5407d32ee8806aba7fc03c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1028 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD3?#3*wF4y>^8$QAT!CEQQ9!Q{m??0y6&T`` zB|(0{42(?7EUawo9Gu)dynOtELZV{g64EkqO3JG0TDrz2rWRJ#Huf&=p8kPBk@1PC zX_+~>c?G3q<<+$fO|5+sCrz0;ZN|)b3l=Y5v1-e<9Xt2zJ#_fUvEwIBojHH;(&Z~x zuid=;@bQyp&tJZI_u=EG&tJcN|MBzJ?>~S43AbD`1V;ZEPZ!6KjC*fqxCb)@3beQ% zog*q*d`QM%(Tw6l9Z5%eA_aus{QfSNvOPe2+xJ+VwJ%?noDZ+A*lgT(}W}0 zC^MF1`{Ubi^+^6VuUE1>EEkXXYV%vO88k3*Jdk`ZzwHFWw!#Mgtivx4GWuyYr1Jl3 zI8)IObN2FzVBIfCfBC&1<^TG(;`!Q$^;v}#a=p9Q_ts`|`f>WIcL_NC*xhmT*KV(q z<`d4%&|YmA&?2!KjQ_<*9XP(VY)j5jW92Q~v(JYdP?~4COd+pti5sJw&1a>rm%q(8tza#K7VGs( UA8d*XfQgI2)78&qol`;+07JWzC;$Ke diff --git a/src/img/filters.svg b/src/img/filters.svg deleted file mode 100644 index 1f377b9..0000000 --- a/src/img/filters.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/src/img/flags/AC.png b/src/img/flags/AC.png deleted file mode 100644 index 8e7a630b924a5f433a03e9032b7ff3bafe50648a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1074 zcmV-21kL-2P)}vA!^SXEAH>_D1}I|m3batUjQV1BXm;_Glc*D z|80V>+TP^C&C|PVK$WG%X`!YHJ8{3PmMKVz2r79UKWaZmS!!;2GmBf#yr)ZPqi(?2 zj+vUEwy}n`rEE}Gj?duh+S|N=Sv^{j&l@X|e`-gPa*wH7n>3!6A8VW5dxYh)x6&>=W<_Yn0000BbW%=J0PnwG`C#__ z#~|-(d>^d<00S0DL_t(|UhUUsZ`(Q)24LmdZIsKYx%cqiJNy6ttCEy0D~X##iBS}V z-w%Xffe(*N^B9u;-CT0XkN<$B5FP+VA^?ywiq*d!jh@Lnkz0G_=DH66(1)j>p?>!~ z8eR9vyOD2%^Z)4i39x8yA&r$I?vnR&#ie$+CX)>BCFB`Thg;->$dc4jti!TE*Xod_ zKQi(Tuvp}yv?Q63RLpn;JQbw0Z+SVl+)v4ektIG>lWNcrZ!6>z5m5CQHR$-bbwL(jDR7&>Qxd^pFak4UOBgEfs8kT`9|sUwniTsJ)dDb{{o z4dU`GKXAA8LtCnfVXWO@S({UXJfoUaZzD|Vi=vKgBn7(O!G5?{OsCzz#}s4gdk07Z zEO&gy>&C{YvPW9`tx7GR+R(?-F-zcp08%!VkSA6aP2+8=J>0q@BDesSx`cMt>9J&* zI)N0@RS6xJJ=Oe0vCp+5Vp$NUJ$t#FOl;3GsN*=*_V*w8n!o!y5=9*$4MR*c+m0a& z6iXcj)voQ!IsFG&ZRo-Aq8vJ@ZQGL=VkHInP&q)PNt6T?x}oY^f)K`*>#n{8c}WtD zk*0TSdmhH~`8-eZuRvWBp)pHp7g4tx@k@7L2F)Phm;;1XY84|w$TWZY4WYmkkh{&c z>NeY`y{wHmWKJ7GQx3TZ%~*E#e9ReZvV8FOL?JF_ezV^LDr1S%hlINppQ_hQ&Nz9LHMHiQOa z$AS1B!b!HBv8o;*^)YG=4U#dX5M#JhS@ak>5aQT%8$#1=lDM7Dg5tQh>1ErEO&QrK z++^JBJ6hnxb@d{K@L?vhqYy5210^{P8bATfleMunCX3KlcFcJo!F*8|#(JH^w9yZ8 zs1g<;6nR~{7Nv&$%o3Tx#xJhVOo-hAfsK|tro-wDa*ab&4=9;hXqrzDxbW?g;X sxhh}SzFm{d9Ff+yD7hv5v$^DwUw+LmUFd=mLI3~&07*qoM6N<$g4xFZdH?_b diff --git a/src/img/flags/AD.png b/src/img/flags/AD.png deleted file mode 100644 index 69972dfe8cbfe1763a5f153299625b3b4406238e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 697 zcmV;q0!ICbP)K^&>TAO)F9)@K+3jv{@(!i+7QmU zZ}is~=*~3fejNZHsNBR)yP|W$u6wqdZqd7E&O%Gy#z(%UcHB)Y*uhuxt`Ga%2=%%P z*gP=bT_)CILF%|D(}8T(MOo#eF8kYG*_BxS>s$BP+3269--|ZSm3qsxZ1AEI`_lxm zlxgFIg3M@L*>gSXwz&M~qpy)?)xKZzx^DjA5Y>ZC9DTC00000BbW%=J0MF0wzrSE0 zU?A_zWnOjw00EszL_t(|UhUUMYwJK1hG9F`$t~a1qFUU0O>ejT|9_Q@5 zK|r4f&7W4A&2D#s3<0VDTs?1h+wIc{stC}q0M^raxi0^^$JyiZG69Mq0a8Lj^ddhV z&Z9{b-3mxS`$VcEbi)`M2na=joH;_b<7hk*C>#aiz!93TUe7}SrwrQw{R1>&V>ajm zk}_-!-}DVq(amHApC&*SK;FH+!oK3Vn`g9FQwB)ye&2P|H0|d8kY+H70$Bqf%d$Mr zJ(U44mIC>>5TcKLi9hmsw}^yK2DpwANQoo>q_ozyx%)qb8YtKgd$1KE)KU{{%?h>n fg<3_wY)wrsqsRJmfUj)~00000NkvXXu0mjfjx<+n{h`8rP*$B+uf zx7S;FnGFP-1KZb~`F%br%}&7eAM>7u3kiRZ1?iQCrur6S8R+nbmM;Eyai)lV$ns={ z!;jiuad@aQt!k2CHk~4|B1_S!h2yM`ppr{RfQ^Z{>x=3Zj;9hCjUvptjfpH{ocXe9su diff --git a/src/img/flags/AF.png b/src/img/flags/AF.png deleted file mode 100644 index 7a37ec27e78a3f5cdab5380bc187aea51690eedc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1076 zcmV-41k3x0P) zIrmRV|5{cfBO@^}F?)M^)-E9FkcjM^m)SfokHx1smtq))N#f$-n3$N;)6@U||KVm^ z+e$v)?&hD(w9n?*Pft(q@bIUnr{r{M`s3m6tET+%@W0;8@AvX-Y;5<{(q^xQwzjs! z#KhiMP4vgaU0q#(y_<@Pit)L%KtMoHq;;>=z~+K^6(T=+0000FbW%=J031L-Kw!WB z|NqBe&+qRwcE1<^00R_BL_t(|0qoFI5=2o9MbXFWj^{tswr%hKtU8tI9sBpMZnkO< z)NNI-E4}kOg#*Q%QeKQH-roX^se0-R{H;)giB$aUP)y_h_%Q*wvp0x5YLw|5zm(iUJl{(lrbz~ov?T@B(njl<`XYpWJX~mGyoDK z$skcNad8QLxN`uM)o0p*I2eWDzh?noAwh{8Ktw{ssCiXJ+5fJFOz#tJd*QjLiPFEH z3;AYS6se&vvoj?SWeNb9167SEYnpwV8ai|=kBFdIp|^I(a%U0Y)Q(MR=xn}sokBFQ z*If9V4v`u!`=&??U2jLz<%kr6Fbduys+)Fy+9ZZpmgbH>hcXc$dW>z`riG5AdH!IC^wo9GYxjjf za&W5mB6SSOU`d6`xY@LA@&BRw`QDjpd4M8&3{)h22GC}iqu|l*n{j*D{%`2BGc@eJ z5y*gEW-c@!8gSHDwyRn037dBA808okkcWy|Wr5MSO}l7!<>5J_@_^zjB9<0bv(M6-E~Ht0h)u#f!=v~00G1P-Rx7Z{?Bu1jK?CEMGZiUNFTqjP28@; z(A{+RZ>s>vAL$shukARdZrZ^ZbG6f7Lju71cYA7+Leb~3yAPg}fZt`ok}|)VeX(K| zIp0WX(NhMXu4Bh5(Inrm6|=}!N7B#UEoR|j>S<{ut`wWpP%J&46=a&Mb^Mic-cINr zk7DKAKUk|LJMkA6ecpbMfOy^%^`qOF$?>jZvyKkEzyR ur&*Y?Kva~}FF`a~p76E1v>iHULU!}S$y!K& z{LvN^6co-8Cc>f?PD2&Zt`;L86z;_qYg-jDEEJc16^L^cdS?|tHxyk@6(STBrHU1_ zmKBr|Acztl-?@5M;0F47^_c(CoOY)F> zaw<5OUI8vXP`!Z*ocfd$S{&B_I3v2hbfsY_R2ZjQO_Bx~lYXUPS!h1aJDA1~$PB(Q za6TJW3f)E~!JxQ-Swwc2L4S`MY_ z?Yq6f0<-UWMm&C#PA9t!!!Qtr6(B(DR+iT#`wIN;|A>VTX`9q0DV1~oz&Q-d5RVV@ zJ&>Tbw>o_*LR40$LWa26oEsX1sa%f^RkmU}#6fosSRl@tbH)Z;JK5>3Mu?pZ?XW@| zCFh78YK3xL8v!wVF5W;4M7`wH#6h8%cbX6h;pZVwEW|kHjKo8ff1Q#P$QSQU;gcZt z@6et!i2JK^Clxxqlq*ij5Zm9-mUM{Ak8|NaQ1~ua1S_PhcR+zMMXKekK9jjzfkN}# zs+ioljUxHyR;6s5bL*8Njnh`;TdmzBX+M>v_Rr)@$uqf}TrA7K+JOTa0001hVEU)l b!|?Bz^Ag?f@ix?(Xi-8!OKnD*z;Y|NsC0&V>#zfB%^P?(Xi)%{0#& zD`t3D|DziI@!0EY9 z(=|i!^2?Kwm2+|ejEzrsD=;pfiLPUz*My3BmB%%9=mhI)ulN@Jk^ z*`L-%Q=ZK1+S+I;NRi%rh1y?gJXe{l%(CY4|C!AH`8Bv60000BbW%=J0ASD0?;yX& zU?A_}sIgQ400O~DL_t(|UhUV{a@#r-1yJ%{J4|u_u=l3kdvSO2|9=%6SPaC-u}#v+ zgQNYR;fRC9O@M?(%E!$)=Y0NT3>aVx!xAwJcnTX#t}LquFGN!h%$NTrhGC2zo`W7n z!>MK6PvFI9m%{mKP1^=f_Y~?*?k#Z^Ud{zd|BGv4so=H@-3D!b>IzT6E7251Jhjw+ zgm`@(*CQAgkNIIONQ6=%Q$QfHn{%Vxvr3S7+eTe9%8>6+x_=I0gJPV7P#)t8HxAgZ zkfZZBF-_w#bQ}B}Bq4@hPDH8st_)FhQX1>D+^CCnhT=BL8yl8-+9L-g$k%n>bzKtq z-Vr3~;2t?`pKi5W61(4yS> z3NZa@;zQ%ZEFj>)|X%F^RZC>C&zYg?*eFC*r;M1o;T<30dZqq3x0o z66?BPQbH0j>o=Xs5I#s)1CzMCoS3WyRE9FMSS@_CspF&Lh1DTw^~I}}QkS@N??ebK z^BR!7L8#b4e1chIHK5EizR4`{qaQ*I2)3*5>M=00H_*L_t(|UhS93Zmcj6 zMKg5YnmwEU|J3(D9c9tkSg=a^EHDD;=$2)S>+SdQ;>G*jPjG*KXg+U#lH2Fu`S8)*42&lj8W;8zW(zqjn+!c7$wWQ(@82>65SHR6MOp($Iq0Owy*@Vl(;}Kc_yr;#V7f%)x&Q4m w`ck zLQU0Uf`VhyzjnQ#CYHCXp?$#l$^}%{^qUYVc>6WWQV(ry6N^|%Px2^LG Tn0Eg*&}s%xS3j3^P6+`bm;$`;PD7OR&bv6&U4jTJF06nJSBLqsoxcqWm9CB>{AP);u1zZlQ67=Lje znT8u`V=BR?7o?9DHaRhRYZrEGCX9R??93RqpdHe;8~N52&KoA#N+RTW9@|wR^uHMC zkQ~t`CEj5m;cXxG$`|H@9qy+Z@v|AzG9>Jr8};7=Z~y=R3v^OWQvkou@4sNrU?3px zz`dxh0005HNkl2k~5QSmd@sfn1HcQ@}r2F1OEw;fw##y$ z$Xcna%Zdq|VA?j4x!sXF(W!N)3RKD6Q3h()ZVRZ{%g#~mk!jNb$eGYV*OlJog*Fwy zF|RmKhWg_8!nTEcDIf68jxne}{;|J77g9uw?{Odx7m@;2QgR?U1*K$L0{Bd5l7d>C z&6kE8h@>fS_u*snbeOce=0KF6;_ma0iIf45ctOO0B6E#U;pfBVivkeSkpWGRdQU$B zY}ViAz&vC@34laJaU7{B?$=*GrHFVF1$a)W@0*AB9_MP5hv!myfA{NmF%L?BRTKaV zPl1M6y?rxVu%M-yn*UoYL-R?8ip4Fa*qO0rG_8YZOy8^bzGByAJ002ovPDHLk FV1hU8L}ma0 diff --git a/src/img/flags/AQ.png b/src/img/flags/AQ.png deleted file mode 100644 index d21e4bafd2bd7a8e6f51771bcf256a5fa22757cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 481 zcmV<70UrK|P)cG-iNeZz&N)r)IIq5uE@26R$RQvkp3U?9(=rTLiv00BiwL_t(|UhUV}Zi6ro zhS8)6|IB!0&HF!UmsF~pl+MWZO(VW*I5I|9%;|MII=Y;tq4VXNxen6UaQ$-Lq`9|G zX^;*LANwO+x}45^pz}#O_5UCqGmss(LTSalF^bHw8k+G_2Buml;h|e4=$WLDY-hG!0gX4Q zhJ5+Psv#~uj-Wus1+AO3ugJqKZ9k)th?(L-vRk(w_HH9Yuc4;fnAL0W>otnLY)41$ Xr3rZHZZjxR00000NkvXXu0mjfDUjpb diff --git a/src/img/flags/AR.png b/src/img/flags/AR.png deleted file mode 100644 index a7d8a31dd1e1a4478564299e52fe5c00d5c13d38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 453 zcmV;$0XqJPP)ZZSRZw&+pKzIxsrguosFAM9E3FyzLio8zpJPaqMi|J0G3Vmo__0s=xJXd(WW zsEVoxb{GH<*JX!YkpXZnEk&ZoBN;3h1J1~V{_=I|?Bz*uReQF(2?(XiO885&hEbi{^>g3|vp(f|ip1l_#&&RExyl4>1E#~O z97OZNM#)W7#Wz5)7$;XAQ>7U#h8jGTK@f{fD3U}NH$N{%0000BbW%=J0KZ_*zt8U= zV9)*Pj6iGv00J{fL_t(|UhS6$Zrm^sMP4-LdaLgGUwjotF*j~DFMzLyI_9oEcZk5kHbYHh!=vn_dsAPf_Q=31_ZXE zxe8_g!B~rW*D9DT1Y;|L-bsrL1{2}ED-6M~*!n?Xh|u1(8T*rd5CnZ=BD{ARDkYNK z5Fx$Oc)1T2#n2Sty#pGMXeKIbtam0sn?{MS-kG!q%FQ0(y#u_-zQ*^=9^t(MD9rOq z&vTQ8VNIpT>|I0N#}iX5e(#M$XEPdt2+L z;k3Uw#%8mLmD5*s)FQlv8lF*3_eA|-Pt;x*&-z>#BvBNxs8k}6l3x%*G(t|QghxQa z87G8IOYPAjWy8K9kCQ6Pm>BG7I;F$+cQ)QCzT&GmNv48w6&oUCziQ%0z)J8uB_*rM zOp6ZM_>@UeCPXX(xE3Aw56Y@t;t9)Q63bTEE`Od>5!e`13K1dulCF}tf{6@~)y+Y= zanXUR)3Ll={pV{9ez5JYeuKtNgdgnAuE%y4cJl{z*4Y!Ht4B>|&#bNJ6sD2Z;ax002ovPDHLkV1hkXU diff --git a/src/img/flags/AT.png b/src/img/flags/AT.png deleted file mode 100644 index 3937efe8408dab78d54bf2d854474328ff76e0e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xZ3?!EyURMI7Bm#UwT-^(N-fCK+p?B}z8JRYP z0oAaT1o;IsD4gG)@Lr1f_cEYJoTrOph{y5d1PRs>_H&sPjhr660aA<$P8>KO;pP#z zih(&;%5lMg2W}C8T+Nb+t|xgiT^a&iuY`p7u}FlPtjf^PmOA_FOPEVYqJPL%#}HPR lkWjafr5-U~t+-xrGen%@U(!;Y>JGGt!PC{xWt~$(696y;LsS3& diff --git a/src/img/flags/AU.png b/src/img/flags/AU.png deleted file mode 100644 index 84a51806bfe0dac79db99c96a4a5a12e4f04ced1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 835 zcmV-J1HAl+P)LXbS0_D!77SH&t4>x@GoyQ6|3?5IEpJ1P*u zj(P(mJC2TeeIH>(?2h^`2rFWD6dsYoKpDFsH6VT3eolO63_D6g#Wz?7rwt*HXK>(V zo5HS$9ij)=pGC)GL`h4)p9TlBA}(mcRTi*~XLGRW?RF_0m2>AAL+C3!xx9hVY>!$c z>8ZVNoUvXHA$aUoPwi8~pR4@nx*9SQB0Cx*%kS_^*L9@d*8z=%7$dYBLKWN>q;7=M zknHy*7CSJP1=UcJoC(_R&j3lu*lGpeflwk+IEbl80wJ~+I{V-n$qJI8P29CY9KE(k9i9H8DC-wX9co(r7s-W%T!tr=VUA-vywkgPs@!TT-X(0cwu zMsIQK|Bw-h*;x`3(maRLB!sjY;ZCDPKni}RCOD8d3Spv{Tx{yp`2|i7(y3UuCky}p N002ovPDHLkV1hxXlkorm diff --git a/src/img/flags/AW.png b/src/img/flags/AW.png deleted file mode 100644 index e250be924b1674aedf75bc625299196a0242cab8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 387 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAjKLV!<*t9yZuW9MBobV}w73MJDWLd?UumdUs7edsKM! zWWJeo84p(!FZP>v;#JyA4d&F3cD)bpO3b%7 diff --git a/src/img/flags/AX.png b/src/img/flags/AX.png deleted file mode 100644 index a5444fc65eb6ac96b06831b9257f9117a8b2e645..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xZ3?!EyURMI7qyv0HT-^(N7=o9gq5tO?E(w^Z zvKC$jDq|}N@(X5AIKMyPy%h8BWk8VjJ~F z*4)HXWrYfYyO)bk`g{KV+tm9EkssCO&Ga;SyqA$7YM=5qhpiPE`2m-m-x&PPIQ(L< z=odlZTH%|fp5Fp8mpF8OIl2Ax`zwbZ$&@k)k`U5W<(m(bu zdsoo=DxkP;_WqARTewSt{DK+I?|*+@Az^=l!uy+hCEfsq?|8a6hE&{od*viwvw}dw z!$RjRYr3Ly@BcToj=Eftrq*lthyC%((+o;Wg1-A+n-!qTzf99~d%H5{)ui3I;|nqxkr+~ovY$g_K(x_N2CFHuyYJ4XQc`6`Ks%Z!snQ(~MbI@j51^^8+Qu9$TrfTNl=nsIVhQFP8B zMF2R7BDXxAae|1%nQ@{h_`xP0ags&J%!*^2lorfpfZItD^{MY7SFa}W4ly7CIA|hL z87GT^1;%NjsWblR4r*F7vj}b{NffLsZFmtylZT(UdNmOl7^jOYFisQsnryB;;{*{u zcYDT(XxXMEXr}g2- mQxspYIx&x{Q}kPM=gwb}h{nrr0(f@-0000iKUzAu%!Z-5%v zN`m}?84}(roZlZ-$#f1V^4-(LF{C2y?e*P#%?1K)i5?Hm{5UnY_P=?opp)p@u%sAQ zyWZXF9h|=1ugTvUb^EmYFZWM@_xH_AS5Inm+4cN%Wrygb`&5o+khR diff --git a/src/img/flags/BD.png b/src/img/flags/BD.png deleted file mode 100644 index c1c933e0920d908c7637c6fc91ea185398c671a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 336 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~L4Z$)t9yYDLzXWZ`l99dRL_Y& z&1a^Q+X_2ZpD@pCKaWl~H~AzV9(}=^K)q}wL4Lsu2@2=;zn{0)nGq;*($mE;q~g}w z>#zBm6?obb1(xV8*!_R^-L!AXr;jYD^W8RMpZJF(D`cc>-tRgZ(@<1n7_60$d27zj z184m;MVo^-HqH=n-qu*8;bzI=xXEOh`yDYxg_U2zrfv>M|JCu^GGpobFjkW?Gf)1~ zTWhlwAJ%rba)wHUluo!{5a@VXA}S<6+S!-&qePOZ3;RsR?fa`2$?wVe^ZBv8%08D5 zuHE^{KaQpCzxrsleVxoqxd}fezP&Eh&S$)P!|YyxFz4QzGg3`|MD{M4SAO%|k<2Ky Ulc}>4fu3UUboFyt=akR{0I*;H+Y%XDVRP=|Db&<_sD?*JK82Jn#;xWCY?j`R_=ib&Jh>G+T;#(Z8MmoxF+NK ziba90i@V%Jd$pwYbaiOG>0D*jv8thC)v1nEBAu(_+!<>b8O(zBulOt2bsuOQgQu&X J%Q~loCIGnpQxgCH diff --git a/src/img/flags/BF.png b/src/img/flags/BF.png deleted file mode 100644 index 29064ff3762ef1a25a355be29894f0222bc3961d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 390 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAjKRDe&2t9yYD!#qzQdatbuX8_p{ z1Q-8vQSA3|as3tceYCAnHuXA@EC_L|LDiyd`;p-~XO~1aDYW1$`3R=s#igAjX zr=v5o>4MIr4#l<$7Yqa(6$Kp6U36&P%FHRUhF4|6=4%fZymY=(e0jgP?(4ge)8DwN z-TqUYHksGQ&R#9;3mf}PJ;%8Roobt^be=q3W5I8#t83kB`PfY6N`7_Cx3$L||5;sn zzQcxV*Kq-7oax=1ez1d=2ahsq!JXu4W)Ah`_dk9Q RR{;8r!PC{xWt~$(69C?Opg{lt diff --git a/src/img/flags/BG.png b/src/img/flags/BG.png deleted file mode 100644 index 0519f963c55843537813191473fe84641842d181..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 244 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~R)9~4t9yaZH8r7kNC3!%AfOmT z3P>_c%UkPrZ97mGcS(?6FoS}^`TYqA=l8#Vzj0gAKcH})r;B4q#jUp&PVycx5MVxd zO}Bc_&*i%tm_DTcFp6L_;Yj)xyV%`HzTk?O=h}JaL^H!#qc}_?6b)Y}UgQ*PmnnK7 zY7e4LEL4$$aHB8Z^zqF&6jUM>@UG^$9z*KV?;;k@{QlY){$68$VB?yZmwrio2HMQv M>FVdQ&MBb@04oh+_W%F@ diff --git a/src/img/flags/BH.png b/src/img/flags/BH.png deleted file mode 100644 index 28c3ec6f6930830022597940e2bbfa093a77e736..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 411 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAjKNPtg>t9yaZIYBibdiU-fG702D zL~f-N0vV5HFTUmx0aWnj!J|vM_7~)hpKags>eAJF4P7sep1fk^^PqS7jj+@^MRiYB zZkT3~Z4We`yCldjm?1&o{eFe>3Fr5}zaVZ|0u+Aj>EaktaqI2$NG>Kr0T*Mdb4k}C z@4l<|4?N;zD8EsP$@w0m+)ACfd7&CP)3=%Dzd5NM6s~`Ep|QM=Rp`|>^XBdSnHG1< zEgsG9!p>|NA)C~YV6wdk{kH&|XD0(zUl)78&qol`;+0671<00000 diff --git a/src/img/flags/BI.png b/src/img/flags/BI.png deleted file mode 100644 index 7133116525ca7a2e2c2d96f37bc4d3c22b6c8ed0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 940 zcmV;d15^BoP)u5*zv00NLnL_t(|UhS91lHxEBK*cPJVOx@OBK6LGT)5D>vg$X3!35K;m%K(9CngHE{+F1OP7KrU!%L?FQU4aRC590p+Htf3D|t z$~4XxK!~6hbJfjx@!Vm?s0XSD+=+PRyR+h9Tmu6EXYBCf?X~f6jg!Es2<}H%O-dgR zCN8KViAbvZMN zfR705y&8{3q$I`Db;SD=@!W%61a2Q6^E&4O8IMN9NE~U2Dcvq8jituPKrfO>3Eu6T zH>oBr=tUAL&k@;nB)^6LMj}^;UhJHA5!k(xw-n*CWazbIPXY8 z>WS12n6;LO{FS0da`4p<5%LsKQYIA>y7@;)jiVLQZvGtEn>8sbTyN~?c~xX(C`xkC zXqy-Gh)bUGkBg%B#83nd#=n=jXnQ!?Iu|Wp*|Rngg}I2*x8;hK7bVKTO}nb5>&r#P$uuIj zf4p|>g{oT)a;c_Yih3hCdKl?2@VsD{ig{fzNzlnm)2yadvkj^7C{wnI%4v(#xv$@~ zs^>q_Y$CdiBorc(-AFR?K94!1+t&13TgF9dJO)=1nbdVDYRL6N#$&$OHc&@hh&blE z_Ai7ieLVW4EOE_}_mDdGk!G7+{4_TsT~bz?Uqye;?ApwJw9vQZ!iE2O>CcP$55>d) O0000_TVUO`6m`YNDwm8XkiNCo5D z>suKQJBYAc{Hu`m_5Nx@ljxf5!3R#WKRh;Lh3(n>TAqdar_U~Pc;{MKtTmgfvUY0G zY`#jyjr~_TW;OXk;vd$@?2>=CiY`*{i diff --git a/src/img/flags/BL.png b/src/img/flags/BL.png deleted file mode 100644 index aa9bb0689f0166150bfcce7335e799842292db80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 978 zcmV;@11D1oFDe&ms_T;`3Q?w&qv9+#6&Ke}^)>PCv zKiEx8!nZzTfqs*mU4M~mO>~Xy-Gc4npYhDEy{?w@pr#>h%~!=#=}?5Cdg)Yj1`GNHKIaW`y*bQ9~*Gwj-Lg+gA* zvoFoPp^#*a-h_#VfK^^n4Xv0NwxAn3YMEwcW}hfXdK~#8N?U(0n+b|eKL?>EZ`)n@v`{fW}#2&v$SKw4diK&B8o-K z&Ha35=CTSR!cg>@iQeC{*(-_|sUpIb9^N?Yz~3IQp=u%qC9sMj;)3Sk6VSM%sz?I2 z*Dt?wysT{wva*Ow%mOB)y2vywJ4^*pln$Y7nPx4~00I^31K>l231Co96aqki0zgn0 z;1JdlB{l?+S|I0YQBeSPQg3Mq20|zGdfTlxJcekoAd6#&Hk<8s(?3{*TrL&|b>w9tZ#euvuOWK6R@~oT=f|fS zqABi*IF5qQHcdMWqBzDI(;A{4iU#(a+qiKfo6l{vUwSn}WTmz(2aZW%9MqOwkxHUv zUq`a^e^H`@$i%dCp#E|%(b9K@dUjO$o^w8ra~|^S zIG*vnXy!S6l9?=3IOnQpEAx=Pekk$tbX()}dns+UC;?Y5MAbi|~lOHaw(t9%AUg;TZ@1Ay_YxTlS1|Lj@-Orq ze}-$O#=cv`z)&0URU|g}z^JfAgl^Q>jVcwQf`~~C6FK?6n-xTcRE$Ss?3FTvQuPrn z6_-W~ilR}c(|LRxjmF4m^w{Yr6Bb=8DmxenD#x82#*&J%BT~r`LU-GhDv1Vjb+P?2 z8v0OE>Jp58!h}J}xj5P}>sSZBV;x0*EGJI<1;bIAwK2fUlK=n!07*qoM6N<$g3!&~ AIsgCw diff --git a/src/img/flags/BM.png b/src/img/flags/BM.png deleted file mode 100644 index 13531297f2ee86510308142987b6a61fec5b84af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 919 zcmV;I18Dq-P))P5oR++&k zE$GW&!p(R5@$!zqowKxt++b_xvbU0}7GKFn`v33s_0RRBj)!q^!3NDW#-+O*~Q79i@7Ab%pXtmGPK1}SX6;lck|Ns9+ zHyYm6maKYMsT(KiiW5wEB+tP=?V2!Dn6Y7~SW;_rt78|<0000CbW%=J0KZ^hzhKY& zAoIwjlx6=@xnVa7#A!MYz25F-} z0&rD$H_e;ekwEeYreB5nstb85ydQ~5t)fqqWbGxS$sRUkvX)JZ zXo_S&Fg{$0DEz^mqX5wQ^Al8C3L~(WSY%)S{HH+Cd4jVzR~R(chBTV$iW$SFJ4m$6~Ry1i2Dqck4SmGLT#b z9s7K1JId=VL#nfWux-<{?T59amLQKlW%cb1GB2tGMa!k**iTPOnutO0u`tNAO=IYE zI@Gbv8j$g57{lFe_@BSD9}RxU1wd%L+s#th0C2gX3=$mLY?h|!Axt3ShE|Ck8nYdB z4sw{Rcp(d>p^Q1C4*rHyuy`SByQh#t9eIz}e9&J^dvD}Lg~q;3ueqT4WHOm0>jGLQ zGrXMhK!Y(l0D9Y$WwWgVpfnzEK)Nzs-0S-Nq-~n*2|ZhkH^2eWnmUWgDT@x)!v`Uy zbmj#!?_uv;K7!^hq8PY8`a~K`scpve> z8C(||(<~(BiXP|T;i@Ae-eVx@)YXg_AK!(FzDd z=$0KnIu(I|fxfL4)k93DZyK*vTE)V`kB^USJQ;?17I$qGqLda(OH1$V;r8M(GA}Rj z>Z@B+6=r5;^XG&0dn17eQWRK|Nm-5Y7k|YqOpqjun2q}EWj`h zj)oY(96Vi4oEVOR9*l;hIXe$}a(<>gUeFs)nW(2{Q#GH!3B$q2jc7Co9N|v1{`T|x zJ0~K=+Yg_=*acbkZz95;#*uar+0!`6P9l3+#=DEmG!N+ZYPPfzK+#J?Y0_tG%6p6U z3x9L7k*xH3iN+EH;tfsBCVF%AW87|8`hJWC#J+!I4F;=<_n)3WYsvA+&_r3*fJDT7 z+H6Lq&Ek)uouu^fo({BKbf4x!)C7X=kxU%$FEL|ahO9N4O7C@`;NxT7^NL`0p|h*ko~$*PRu1jv;rp*66H9;Ag@ zl-Gu>0FqF9gwC5kSOc4g(k9R`>M@BT^%*8Y%T*?tnNk{wOfCT2UaFx~2mvTdouaxL zQIn=bR<3Ug5ac<+5fM*4Zwdk;T19#IC=mnmf-GeK3RX=$2l7XVGR}a4HwUUuAPPH+ z7&NTRv^J%2y$CysG6n(#W6jW0y#^gb7bQ>eH;nUXW~_lBGRO+Xr=YCqMUe)^8Wf-0>D*9wOapE_9Lj@kjE@QC(0000< KMNUMnLSTXo#gZ=o diff --git a/src/img/flags/BO.png b/src/img/flags/BO.png deleted file mode 100644 index 21c555bdd6645af162715ce06f0c2c3c2c8e46be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 666 zcmV;L0%iS)P)q)hiy=D<0J=9{=C~0C_alp%dU(7Y?Ah00{&Kq}C6J zQ?-K^_tgUcihbf`73ri7|K%v%v=jg8OWjTw{`cFOQYz__5B9YO-^>V~xfE@OE7e9E za;j?Pbs06QuS26@Wv!D?cqsMRD&&n4|L$<|vuUz(CAUQ;rC>^OZgYdAY6pTlS5;8! z@9i)%F-bE8fN%iywIfO&9je)P}M6QVHP3;0000BbW%=J0MEZ*zaSv| z&tUIN!KHHm00DkUL_t(|+U?ZGa>6hWfMJ0l0#>r+f_tIZv;YYm()Rt|DmcmAGm;NX z#{XfD-|Xrj($w^S>vvG0PXCX2>Y-x2rypm4$_+}Xhc(nAq>r`KC!Knr4#Apgpayy@ z2&x+Wj;bo5F)b$@t3u8^_W}HzDng^LvpBATqc~4S3Q!34Rfvmy5kg!!gtAZ=#^5g5 zn-Fho{sD0qNBp(K#cSV}*(lx=sAs{<$a7=1TIpD9V!6|FL>L>3 zG>X!NF$P2(WT7coCU=v><)#HwX(&P+hBI%;*pknNcQ=xRu!IcC*ukPk3850i*ut70 z6rl(vruBKUsbx+eQh?C&_NK)qmbv#ll!jcyXD{8EhGFhf?-|jRgg7EjUlRWM%9EEV zB63Lx0^8=vHgnxsD&|^XEdYm@V>VY&u zT6H)rLP(dYJG4tmsinM6>6B@0rFYgyQ`5ig8yIPwyQicioB#j-07*qoM6N<$f<%re AQvd(} diff --git a/src/img/flags/BQ.png b/src/img/flags/BQ.png deleted file mode 100644 index be922b0c123bd589042f5617422bee106ef17f9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 871 zcmV-t1DO1YP)w?(OaF?d|#55BA_?)7RnwDu?;m5AN;l0V;?2*$)5!01poj-`?KP&(8rW zhwkm|9v&WdcXvukN-ZobXlQ7al$622!Qo9&JUctw7ajHCVx*&^>%qe1f`#K}YvNj7 z?9$VQg@v=SvRPSK@9f_^TcIC9lr2x15H^kN;NbM*e(>qT_}w$zBr3wl+Vbb2`PmO? zf3&2q&EMhY_}U$Yn7~VCr&@EZ@9WXCywrG%y7t~jcR!b90000EbW%=J03cw`V9&=O z{J&to@9*YfHUt0w0!T?jK~#8N?blh4+AtIa-~co2&}pyj>^u81>(YJi|NmEYa^y)R zC)DV^jW`b=5c)8edxG#@ZcaJn&8v@gzCHwQxjgfb*P5~O_%m?M`KWc?^*Qz4-TCtU zZ6o!b=RR=HuWR3*==t=G=fe@sZ@g7Y5JhfN z{sE*HYR034P!7)fYkvU37S7U;C`@PnbG|{aA#CABD-^ajn}f@9byaDo5 zP@){B+ymVQxu95@*UFegKHz);U_;nKnGinC-CYZ8D3QHWzVU}3Y+*_%Ub$T29#2?P zzV(M7Y@wnM&b+GT076oBMFI3fHQql1R8&;~D5KP_=m7{N4TVNl)pJ%F5TRAkLC9PS zCB+(AchFh`F-fbU1CY5E&O&M%wlL130U`=#Rz>@vdJl&P(A+?CKtzyG(P8NMTBu4u zO9L$dmCCAUFBEj4*c_-kQcPV%ouNcXJ))v08b#mfAxV*R6?KN9c8{qlSIsltG0Gm1hn>qlSIv}JoPp~NN+Xauo8vfq_&e9AJpElme5Wle=K&&k8)Ch@+ zH$YWc04H{#o;ZKK9uPBczs?WNy%!)pXD~`&```{USdJM#g3jp2%jwjgzrcB#u1s*5 zugVkXrVD~Y|HnKl$Ax6 z12GH*XRoADVPDwA^sr+YG7HSB(gl;_mG$TO%&LyFp60dr$U<-{31$U zH5qnfA~K}E7A3Q!$>sTuLXI@qS)(H47%iKCSQwseFB5(E$!im zc|2C434wm^m1s)0%&Pay>gDEcHZoyX)6#%uL>18n*EH4{X4y zMrKy6kDvcOugi8yYE|Zs*J@G6yR6Sggz{=ij?+o~@64)$4@U%t7E3ZyGMvwPR-M@q zhxW^Bgf7rvR+De95#-@QQfslZDj@6Ys}?5grWh~DPnUl-6 diff --git a/src/img/flags/BS.png b/src/img/flags/BS.png deleted file mode 100644 index f959101b26d333746e978e8352c1253c33665ff6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 419 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAjKPJmB{t9yYD!|IbFU;t!55LPbZ zqJ5RQ8cK@dKs7?@+MJnHTnYJ`7MSok`wGj-v$oFRw{m3ZUv6(D%j+8Q=dQp})atDlz8q*TZ%L3}FhhdCd4>1;6ZW4MSpPm&b?yhC#7$2Z$B>G+ zx7XeI4jBlvCbkQ`y796%>Rr7%N79Xr4)1l{CjMuxNeXyWai^sF=%iS_DQfa*v!5l* zKKkO!H}`(8(}AhiNZ{JiM4=MkqB@zi9+ME;m z+MTWBcrrz~C*7N@kZCP(NlQ%S`|F?k>l`P=CU|h`c<`AEsYLQRM=3a1$??6cFj&Hx z91wQ<*JkF|ja$BUv2Y*f_@A&kNA}-d^RJCMR?*WtE?sk7{V_~$v6Yy}+e3cQiV@zt lxo4Af>(+#pY&x3cUuVg`IHq#N5uhg-JYD@<);T3K0RS(zo}2&x diff --git a/src/img/flags/BT.png b/src/img/flags/BT.png deleted file mode 100644 index ee668fb7daa7e158e705d34c83563fb54937af22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1000 zcmV>P)|EGxmkZS*WP5;QX|K8I7vX}qup8xmN z|JptO@2vl1FaO|K|MI&3=Ys$I@&Dy?|Akxs-An)CX8(y8|6ddT%^?406#u*)|Fa$c zlqdhbRsZqg|LM8^Rucbs7XOkN|L@fQs~rECYyXQ+4}ipS0000EbW%=J0M8)rAYi}0 zV9)RG&k*R4mp1?a0?A24K~#8N?blax+c*@4VL6H0mhYgj_uf>Tvc3NQf3>7Qn|5f< z0;9W(pKIYA96%C>yKmQsj`&9`SO{JLT=Ccsx2KnarSM$$6rwt8HGZpD^Z46N#n#QR5G_N7}in%+|~_M zZO>}FhUbmJ8C7M$>H%v3DY_wdj2-cU_%{uJ)F`AdD33c!4~GmqNpizbRpQL4i@6j4 zLgoUg(XF`-W_=O<634y(e8~gw{E&JEq4xMxs(+@DCjjYZBDJZpO-Adx604Pz({ynp(>pIHQfDtZwoFk3$#LRi6IO_IKAsKtmub2JQ|z|ZV|AkHiHY5iDpH{Xg=Z9UYfK#L@84Zib353_G@G-LfBFys`vJuo*g@y5gx3#GXJ#2hO=qFXbDdMYZoR%j|^D zpIwufM4KTNhD(Pew!g<-&Ur*zA-C;^<(ljylIrI5EFlIAK!zYiP6`K*N!uvova+ZF zk@(TUCM6dD1R}H0sr-5n9~0@Dg^o^^M-8n*oODCCQ>Xp)ANrcDexziRj+@=x{0^{| zs)xIt>+?&^1I^a6HKgTgdd>RoGrcb2TysO;zuS%8UD1WErq1O0hAwb(z58apdGjCh Wn+$BOKa)`a0000iTQBn_|h-22J-jCWwddUe1*=kEpC^a_ToiRb_F%w(jp)MZDDV*9yNd{_bPE_pB zmI{5s#4g}^gF#fZRfw@|jgl4nvjYEpi@Vf>!%|Len6W`gyX|a?Xr%E6fv}Q>#_d33 pK6CT%Oy|(Nq`InVskH|-RMj|32K<>MD z@7Qxb{s1atD+%%oW=K#tzyJNbz0Qn4krYoC#}JR>$q5pyCG1L1D;kwOdW$R>6OJ4> zAmZl{xRQyv*wQiKfP!B{pklLiqN^&;Q xjunUIt;lL#!PT*1RnH2qi924Eid+z9U|7-|`6$d{a|X~p22WQ%mvv4FO#tp}P!j+E diff --git a/src/img/flags/BY.png b/src/img/flags/BY.png deleted file mode 100644 index fc2051bf7ece91bce924db98651dbe300fdabc02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 669 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAjKQGic~t9yaZ2}3)tW#K?{#?cqT z29iMZWX61;;D0cHi2r!<^t?~Rg}|6wWpyuBt_R8j#ewpt?Y!RYKYX*W>RM_ZP}kkM zwvT7dKVQ1~ym#22PoH0H+I}e_>BrOOUvJ!g&^^iSmjN5lc9D`GzhH*_3JK@W?@v%r zIG?cpJrJDVzn?#q`ws&H<1tSc$B>F!Z>Jy6lX2u>jV^quv0Tae_{{(RUDvBdR?FXO z(KV^iG5K-eaB=v$nwWhxqMeQ{&UfbAGnxOc+k;hK=E=jCM?W{KNw2zPd1`z8vfqFVs)O?qT8Qy2VvuwzX-Y&cLozX*^o|UXyw2$z%d9su;EoqQ)bqHhl zn|$DH!#BnN-$nNnI$bi7ggh5^o@h!EUc2GCg7y-L+(kZ>m38LtJWhI9oIh#ODO8&7 zogm>>QUADJeu=)ALxjRY(n_ryUIe)rd(VfpXEx&*HbI+Bp zdf)whV*CHcKKW3erysiI^}{Q2@9#|2mY=r&*cnsdg+)*10ArlN)78&qol`;+06U~T AO#lD@ diff --git a/src/img/flags/BZ.png b/src/img/flags/BZ.png deleted file mode 100644 index 0c23f8075a838ed6c4acff291fc79b3aa1889df0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1127 zcmV-t1ep7YP)|B-2Ywet9XX(Yy2Je!ZYg9|Ni{; zZkT{&0jBZ(_P>AqKgf3AdOjHE48G^Wv407&O#lo25d@qE!3SReFzuJ2rQ!2MunM{L zsG7yYRj}Z`v3w0$npktb!C$iBd<}E?3iQb!R-wlLurP9?DAXqN!j%B~oDVG-=UY%L zLgGi(Yv^n_XUn+|)r)f%fKNb_#PM!_IL2`Zipx3GZYE?vY~3}$tSAXLr<9N*aq)ox zYj-PP%!6!yy#hsMnHTHi$0SXQq|7o2%4+S~vmlf65EOOZmvT>)OY_6NNYk&cF9k}- zxj6^2vEUwbzP~G3=gsL9Q;tR2w$SnT0`?5ZL9k)yx>J?+LJ2EO_WL9uDrnPO0AQN{ z&U5GuSOML+ZO?t*4-)4IjUY-zr2@i* z`~DO%JkALk`UfOBAkTd(JZXs15X8A>JcUgE!vfIt16kjF-qdxKpPHi3N>#N2fc4>< zPaz=MDW$qKX(QR7v74eV7#ihjFq@vnFM^BNNlNRu$3@sUzwtc-`KW)1_Xh;Inq@A~ntanoG4#PPq7nEpGCPlD~ zejv7K;LKjw*75l}-cjQ6H%iG9N?cX`w6M)xYB%BGusP_>s63xbT5xstE}NFx`HMf8 zP-^s|xGbZv9+grI)8hZqcH|g_RCNtXT}$a0&THGzv_YEVXb7p45PC!zwYs9i7L0;X003M^$))BsvLOHf002ovPDHLkV1i0QC4v9| diff --git a/src/img/flags/CA.png b/src/img/flags/CA.png deleted file mode 100644 index fe777da3f59a097ff286d4274167dc10a43e68f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 445 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~Yk*IPt9yaZRc$#m^zPlemnV-u z>TP?vbiu6v*Ef$IzSz6#y1Dj)hRWC1uH23Zx>u5O!`b3)M*OplYah>?TzBRCe4v4B zB|(0{4Ex_FD4bui^yf?l21Z3s7srr_xVP6&b{#ela1FHXi_es^`TKvlS#HY#Ul-+- zVSVr8(!&>+-`T!=dFBz-U+OVZ%a80yU%<}v?EA|-7q}mO)js>8-GKiv3m?a2gHH~R z8RR(b^F^vCUT_J5ex*t@gh?@pfy>D^IQk{8}OGCkvOS4wR{rcPvH_dqV$|;*d z18xMoTG80#yfcDvVnkq;v8jM$Y(dS}PMseUf_c>!*;y=ld9CHJX|B}z_&e^-Pu11 feJ|er_T>w6=E}Hz4|kscMG%9htDnm{r-UW|zjeN; diff --git a/src/img/flags/CC.png b/src/img/flags/CC.png deleted file mode 100644 index f232d7157854bf3a5385bfe6a9370e64f51fdde1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 706 zcmV;z0zLhSP)!T@lp z0AQp5Fp>bj$N-z<>aVEC8TT0N11d_tXHWTmT4q0AOwaIA{R4bO4xE0OBjj z-T(jq26R$RQvlEJzhEF6Zris200II@L_t(|UhS91j^i*4K%KFNq`F))W&8hsC@@8lA(|aQ1m09ALg_@{@|w|!LS|(mPDIOK zkolgC+=r@2B*`JJogZ8@l!$OnNbK4Eh8L^%ywj%p?1M27d8$ccW1 zBF$M5kOLk>p4jw1OUNfHnk12&9)2yt8UFa7h4H)ydqE_6To*e6Xn+1DS}ffbTiMyg zdNKDZE+yY=f8^thJgNO?>4Jt^kx|NQ4P@loIf&9g;^ica09=eaRwVLv{-glE^<2*Z zsQl8#gx=4of1W->Biq5<8To#GcNwKK0+e51n35N1$UT+g|Hoj-v9sr07*qoM6N<$g6u*w{Qv*} diff --git a/src/img/flags/CD.png b/src/img/flags/CD.png deleted file mode 100644 index f0855b273882aea67c688d1e9c6e73872f873ef7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 602 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAjKb%0NZt9yYDL;ZgU`hHCU$T%mU z2t*g<6@Vm!3ls;kfh2#+M~H~s)T6Vu=I1P(6}w=?s@(}ME~@Q35Tw_C<>WDE`L0Kg zi)AlsD!g4Pb=yzwqKv|)y^_AOw%<5yTC=+6hLilO8PeSwYQLP4bY*zu19S#oNswPK zL&E;^`xV|RoKJXvK4JfA!;F^<42%t)E{-7;ac?i5%v<9i;BxWB#o`dd%Zt;Bt!?j%X7hnv2x{*oJ3ShRcElaIe%Wj{BIvkJKw^27a8 z&8bbf+qVcUSktTZ>8IiAUCd&ES4~#W+q6$whn3?=cckf;h80?y3|5IO(mHW$i5IV_ zO7U(l=gN4`Nk=~j@~q0gweI10ujW;+Oa3itowhixTrKoliONOhdn<0R&3^T9W{v?v z(Z_phv?jSa$XLZpTeYQ2e*dZ+=aa7pm`(}W`+wc5e?4tpd{;TI{!gA3aP(q;@1~oR zQ#Pz}b6&Vu&dKr9(Pft=$mP_BMuaLy-3>YXFgrP(To5}7C^)(elxNWy~;kqp61rm1_%g()gMTAN4!kz4-Q}a5w zMa7itOceS$=@?0RN-Z>J;B OUkskEelF{r5}E*XpqDcM diff --git a/src/img/flags/CG.png b/src/img/flags/CG.png deleted file mode 100644 index 113face1559c7c9661dc217de6b49b342c31293f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~Q-Dv1t9yYD!&GMontRy&_dPEN zf{4J`FY*lTsK~#_(g%`oH2t7Ekp1f6w@{#IVkJR-!3+ue|NsBLKSAOAd4>1y75@J} zpRoV^`@CL91E7lCo-U3d6^w7swB|B9FdT4bw=B%~AK1O9YxQ=80%n=>uixex&Ha14 z=Hv0AqwBw>nSH9c`L1r>-v^(c7OFVdQ&MBb@0G-pF Apa1{> diff --git a/src/img/flags/CH.png b/src/img/flags/CH.png deleted file mode 100644 index bc50b99e54d0586ec41e12d84182d31389ce1cc1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xZ3?!EyURMI7qyv0HT-^(NF6*izqyPW^1G)E- zV$+4p9DvH$N`m}?85GX%Pk1lI{CgQtB+JvqF~s9|a)JaaGxMC&8ySQ{Or4%aG%9V9 zI#%$e%Zqh_h~d=73|t;vcM3JN9D`E&yaNpJk#_7P8bM=BpLg3pNIeoap&3I^Qn>ZDsIu^>bP0l+XkK DJmpCT diff --git a/src/img/flags/CI.png b/src/img/flags/CI.png deleted file mode 100644 index e19e84b00d126c8c60274f5deb073361a1fcb85d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xZ3?!EyURMI7v;urWT-^(NzSlEA5W~C#AOfc_O93G4jeFPpRg#JmFG-4hvu%=2PQa2T;yewJk+($XpZ8V7w=Xq z3UpoEeSZg#>thU#Nd*d zXnd~U;pfpPH{ExD(=|iv;o{XpP_w+!ElQHX$l2tqvF5qG*lb@9`=F28&zdL{5G>#u`*2mxdF$bg>pJYT!go z{-r2f3oKFg7by^F^&>_p@5w2r#XiO4*qhMQ8;)+Lf7EK?W?kf<79i$zbzh&3IP{JI_^ zfwd%9MhObkqP@s6r!*d#gRM%}&d8I=41uj`X0XB{z`oJWlSdlOtE1M2s;NB(4CgUc zSp*nudr?j8w&5RHe%dIN+8?2fvJNo2=MUQRxzAC3UZ4;nXcws}!04e<6`uV-Rxbiz z1Qgm(Ky@OlNt|T`+K{Qv))$E)QIK)oUhIJLtXNwFNDYZL5@Af28Yu-) zws{gjb`e1vKWG!>g)cgZB@ECkFg>8gCS#VcL%-M*=1zveWoFK j2(MSg2OfL3Y}xV~L%`y5HI+N300000NkvXXu0mjfS-;3K diff --git a/src/img/flags/CL.png b/src/img/flags/CL.png deleted file mode 100644 index d4d91d0655819f05cf2dc28cb941ad96449e9192..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 394 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAjKa)3{Wt9yaZ6~)y>OE6 zkO7Ztpt5j*=dJwZPW2~hA}8mb*?4Id!_iZR zFYnCIN;%gZl4+H4YDfRG1|K$7{wod78qY|ZZ1D+rQK8V^$Now%TFZnjd#!WHN6sbP zw)jPioglw`>aC_zCzORLcN N;OXk;vd$@?2>{L5wU__^ diff --git a/src/img/flags/CM.png b/src/img/flags/CM.png deleted file mode 100644 index 457a061631ea2e39e1e825ca37f85fa696b41a15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 341 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`ol8NS0G|+7_W~b{R!0c>_re&6fNV_0 zd0pL0R(kJN89u5o_NB&W@BjBbs-z?mZpp3r(|q%9 z1s~3+zKmXaK&IpBsJ#Wv2t`T^rzf#z`#jqt(LSUIe!2&xD_Cx<2 z_$;3U^r&d03x#m8cR4I^kUSCQA#A5=+8ZYQEoy7uHW3Dm?!VW*y`1#-nn(t3fN{vi zm3b@DG}f+9_D$2Mll>=WS#n0PJwv|i7T3Y3tc+~2?2pN77cD>gdENxq+u{Dle6oR# OXYh3Ob6Mw<&;$S+bd0$G diff --git a/src/img/flags/CN.png b/src/img/flags/CN.png deleted file mode 100644 index dcc0fb1aea5a066920f98ea0f1830babde12e4cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 410 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~Yk*IPt9yaZJxu{*^#2~y0~3Cr z$g5oLuS?lJ&tm_%hxL66=kMbzFOqnkc=JAT;CoZS^(>6{?`7ui8`(bgb7(yDISVw9 ztt7}Vm?7c4!ukDSl}zV=BL6&H978JN-cGk(cSM25b@I$7xBi^W|F-|i^v*>KMAl0@ z)_N2Y;+`OV-&MJJns*Gev}m#fB66xPjziX>ptno){V)k{{#iq zWhZXFAb7Sxne}3d`Rwd6my(rES1XO1zo~y;p`1b6yjwkus8rVB# yt>~QP@%HdKF~u!Ty-{Z_an(fye%WXuRe$S7sgJO0ZUZnR7(8A5T-G@yGywqJGO%6% diff --git a/src/img/flags/CO.png b/src/img/flags/CO.png deleted file mode 100644 index 0d2cf35564409764cb659de12ee4abd55670c70e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~R)9~4t9yaZ?~7s(bWTA7f`D8g z141e}^gtMs+}0EVb#a#j`2{m1oLAVNaDKnS`}hA#y!Qiz^F3W0Ln>~)z0k?o;2_|9 z@lCD8xBKhfB(V##s_t)a=a}*fYtX*put#b5Hq|EB-NX WP3YYBkzGKm89ZJ6T-G@yGywpdb6{!! diff --git a/src/img/flags/CP.png b/src/img/flags/CP.png deleted file mode 100644 index 662adc7b32505a7bebb1d0b7c21e83b30f1d0422..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xZ3?!EyURMI7v;urWT-^(N7*wXd)wF~lARB^! zT!=W3eE04hklVTK^lhLn?vfzCUc!YLvGixcBF53N3d)MtV2M$=wp0FsIjc3hnPR(7n4+Qu|Toi4~InS^cECl?fqUc7#Lr>OSO#*#ZL9N)fr{Nm_|3%eU8 zAH4A5#*Qb)dv~qP^jzL$&~F^MexdC|lUeg@I64g;ZjDNvZvOt&?a!A=zMPKu@bu&l z)6<`T&R{PI@(X52*#BSQ{QJ-ueEWbxpFCY0Ln;{GUT;0P#6X}e@lUjkO!w}~^{wrt z2A`|vF~!YE5qbH2Qi!kmg^;IdGpr_N#>jfBZ$39^rLjT(@5P$~M19j2YFY{J6PWSm z?F62^Gim}(lrik+^X09qsMs=rpJkyyBEyd<0Z*77ed5n^;W)~0@8rX|Ooob67*B93 zcF8!naXb|0a_(R@RMGnqPBg~cVO#E*M^b+(+ygy-wfHwb*SN8%R2CaS|IxnIPBs1h= z;cTGDelcSp2}J+@|9>@O(M2Wmt>PBEnw_7IoVpjA`}5J$KOa6_Qnq-QQ~l<_BXzZ! zL!yQd6C9NbuG$7X=%4v)$KJce4Ugt5y{zvXt&se7`G#+ouitP8{;+ND^RB6lGJ*FS zd;6rlZboFRkg$9A?%j3om=d}0*-|dI{S#gsJ^AYLH51jcC#yC}sW(>+$PYp1>Em9Y6gW9JK=8CK8R&)uv&p&NValCD6_ zruCjHwIgctPKIB%sQB}&)uwgvy$Rt#KQ?o>I&tiBQcO@3JyiVhiO0e-HJq&tD?>OI zmoF4J6QRLkBjTiZM%_vAfuB~(#rEnKYeS5Tp9eH;ihc2|ty=)Ygrx15}in{oE9V_tE@&uRZVLT1jqVt8pqbFN+Hm52Gq&i-niW0u%4K|WjT ztmNMxhgaOF&@tO^dab}Kx0IEF(VLfu*{=-!lCm|*oS->P)xGq(EO=xV?HYN1jXZ6-U-eMuyOe5{38uGgs?`Y}u00006bW%=J03h$r zzhISTd#L~b0ar;xK~#8N?U&b%!yphvNsNc$-dk$f-v0mZRvTV|1hKJ^R*EwSteZ9T7&<5>DhqvvDG3OB6FJ zqOjkzJzFGV$@Lon?1XZzD2zpAIk2lSpC?K-Ag;2@l0;k#+F7N&07%8;!ecH9+djVW zuxJ;}6J>G-Wf{%PMcRKxWr)aZiJIppavw=l@ps@{rQw%`pQek*DS(fXDBu9w%0NVd zMqOJO1S7Sf^p@eA7O9H!&>hpepwxhW5p_C2XDHfhJj2mM^j7SlP`&n7@%>YL-WQQu z>Hr#L9~}TLW_=WB`Upn*NIqYagHlwN6(18>0;v)sp%Sl)!e3w`{6$V$3ICXxgg@4W zznHXB!yhAG6aHe-P7Z%xzto6HI}uO6W{F8_ux8m={A{hF4~xU`3mrd(MNz>wS^xk5 M07*qoM6N<$f$j`kyaEj@CYt0vgC( z666=mkg)&1!uj{1Gx+uag-&?7IEGX(zP-M&=&*u7OJahqvZ8E4%JaYSrs77z;+o%Q zX?zzA|7R>BBE9bP&KV9KhBdo&6?C`X+}T|AUrX0uLyLgnQywoK&da-+CNW*vmb>%? zV`AGk=PMg8D~9OGiq>$r9#oied*61RtJb2g?4N&J;FQ1iX3H**<<6yZ(uFghTWX13 zn&h+il7Dqq6;sIz)mNzkQk&Kp{Rq&NJhAlB!h83pbNzj!$Y1&5@QMF?l`r(`1o>5G scqkrn*&=0{W_&v9$4$S$=Xx)M&&5Ysd!6PF1^S7>)78&qol`;+06ZX+`2YX_ diff --git a/src/img/flags/CX.png b/src/img/flags/CX.png deleted file mode 100644 index b6f360855487725df8846ee63ecdfa732f41e710..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 913 zcmV;C18)3@P)wly^xU)Q9UxFYupFm2Gue#+KgGn2TLJUuS&(-h_ zR(PANJ-?k+-?2y!TyYR9rjMT611_KlLyKaaKf$9<4DsL;0000CbW%=J03g5b&(B~W zV88Fb#D$zl0007XNklUfoOD|Nm7076TC}3LxJ+ zx^H?pgT1qWhRWB?C71MmJhaGNFK4c99$Mz+iaOuEPaoRmno73_JvRej&CaAKT|_cl zG=Y2=eo8&1gJ_&l1IPj<-6<%~?|W%TwK?e%LcioYe*u7(64a#gA%I;0p_%Y_YrrpI zHe3mk>Rj~!V58FELI&}9ycd)AGVQI99OBK;;Z1`01E%mq~*PGA1q_k2?!&p{zP3N*n zJ>{}ZP18K{sBvR zyip~jKWQXC8+NXAI4RP!i7Df-Yka44`I6iymSWg7?$M8$#$lb`q@P)BC1-SlI~Tyn`j0eHMfHxzEz00000NkvXXu0mjfA@G{` diff --git a/src/img/flags/CY.png b/src/img/flags/CY.png deleted file mode 100644 index 5c333b07810f422df99752c31b53c085d87fd442..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 539 zcmV+$0_6RPP)}^P)ENkPP#v zMf02}@8Z(%*S7MlQ_9!DrNEWt=;MK?Xl0j1oVtnA-OP8QU0jhn+~U}7ol(Hiwu-KE zleB)W#h|y#tDuW#4*&oF2Xs=c&PzZc(jNFw@I*;qX}MIgU_+@@%9ESzZ^qxLo@Fr!)w8Iz*6VpOfdk#tfEj2U z2F5+eO+oH_Dg7Qq;oXpjrTVyIcrVm?eX{so$UQb(ivHl<3#G@<-0KhRp;P7{qz8<} z1oU8+Ivq3XV{>OhuVsk*kfA1_uhtGWbV@2USV0uTz(WtK$tvo9(l z16jshsHTt|@Aoo`Hfia`c^8g`SkC7$jIJA&t&vfKsMcVoS{H&^of@ijv#8baqgGdR d*n&|o3IL8fLnd3}oNfRB002ovPDHLkV1mm!4#xlh diff --git a/src/img/flags/CZ.png b/src/img/flags/CZ.png deleted file mode 100644 index ecad9fdbb558812764a38b83c19c26f4ddbab9ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 549 zcmV+=0^0qFP)JRo!Yi-+qP}nR#dk^ZAP`Npf-XU;hWgW?H!!r=}c7Y`;vU?9sH92crw~d z?HCe)08n}X1Q0*~0R#|006C5`)OO8gBGxtAP(L7nDQbIUGZF7m+~PN&Y^@d-wZ%rR zJYwE|`es0KVuB<--HpBzBSP44K0djO?BIe_%Z0i;h3 zAboOSx0wJMTeZ7+l{5dp*53yz)O@blTB4rci36y1!wKeU{xb0s0+2E(fRsrAq)ZB+ znUy-qkpkqN)S;p^{Ei%;7WGD%dwGh=kpZMk3Ls@t0J$dxkUlAZ$~T#AP8O=LneB00IagfB*srAb{vQ_fGga*Yjh600000NkvXXu0mjfdywx) diff --git a/src/img/flags/DE.png b/src/img/flags/DE.png deleted file mode 100644 index 2933ab89e324d5507330331e83ff756eb4b108f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 246 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~R)9~4t9yZu2pIf7%L+#j5g-W^ zc`L61VZ1jp<_GHHE(!7rW=Pn7et&|3!uj{_ci43v0}2;-x;TbZ+MX*A{5_9?mne)^Z&S*8CLE^D2w$E$48kTONci2am7P!kL1 zFCKMGM<9KRf0qZR&=>s`MRU52HA)3Y_%Rl&*|C{#N64Y-J0GKX|K3?}W!v5TGHXJw T-dy(%Xg7nWtDnm{r-UW|$i7&U diff --git a/src/img/flags/DG.png b/src/img/flags/DG.png deleted file mode 100644 index aee82bade8b7e60648862152e780f50360b08eff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1423 zcmV;A1#tR_P)U>FKIc50RiRQXdTaaIto~Rfk(1s{jB140KXXQvhIKAjQQX{{H&U z&pFGP3IG5EbxA})RCr$Pm*-OCI247=0MpH^vYb=r9LaI!{U2*}Wy!LqVGHl>uPIJ7 z4dqk%Bwt+}8}HB6m%jAvB9OEI1;Iiq2#QKnz6=+OVek*S_+~KYS1-z7SivKuG~SWaNaH!D?Y->6){PD-v? zF#05@&|3K|9gBv#fHqAEw7|awO{UYqU_ColpjAA=7^iVZkUgx>MMl#q2S$LR(I>Z` z;l%h;UFA~a2F6Wz=RN{X37_>qp{Cp!=7D;LDfl+nfU}j6fU=|>)Ql0RtX>osMTF7}W?W6+ zD_cI7E{igRkbu*l0`U<>uy(NN+wCj-{*`hv7IF z?_a4gU1!4u7Vz9|0!=aWF*Rmfo0IVH6z=a8Nd0kmqA(H`!6E>4(Dk*N_dR#z>i|Gv$7J1Dcy(_qaCAuCWRg znJVX5{i5MsJOqRN8s3D%VK~3ps!!MhGX}E}YzfAJ6UP{!C+2>>4d?R^ezxJ*Oa!Ut zb#I|iu@oh2HYZR+gOX6W>! z%?icq?axxku37>i(Re9~5HjY|er&XVb-@-<0CiCs@FaOqN>~tRwrfa2^aYn)ZY8H? zBp)86)D8>yf&|@WS3*%U#Q$@WOuf-$9@=&-)8w85J(OFt)3Pg0xak$Y$!%G_O8k*kl!K$kaTdrXStOHvMRVjh=fzx~TkCurZ9yIBW6`P4?s5{VUp4?SDo8 dSbgbBe*>|CeEy~&i--UK002ovPDHLkV1oV?yQKgC diff --git a/src/img/flags/DJ.png b/src/img/flags/DJ.png deleted file mode 100644 index 24602c11d19ca9c89da277d8eda7a26ee1cd8733..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 643 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAk#fdHQnSN8%Rp|#p@l(p$O1igFr z4#)tKKme45vmqi75-6^)(fq-yM@Ju>wB8x;V#m%~`ld05a~jU|uDrEz`@OwICmZy( zI(zPo>AN)Z^0RAmt}T7s*mBp~|Luc^4~xrzhFlksx}l{0eASuz2|SMcfHth<@Lc^Z_eI-Q?}`# z0MIWYB|(0{3<(P7_a~eO5*qv8zke^Ve*XQ0t>MaS3=E8Mo-U3d6}R4AIa$=?AkzA< zyQ^#FWV1jce!jaF{4;KTuV0<9>x)2GW}kNV=7kX-LjQ*}J~_R8|L11OjR(YcdsVuv zi;1+}`uM$~w(Q!atFCn$)~Ze9-h1oC)TuR=7xpKAX4=R%U%kruNua=|3Xl4pNRCRA z78@a_dkrlc%!Lk3bLKnb#w_L}$E(=iI>FsxZ``MM+SXUzzkVV%KXRdl*VDb}%~i)1 z@K(MHxG%9q@jU0OSx1(=tF*YNa?9YN%3SjjukPp9W*&dJOa1G7PPq*Mvv%$Y>kGK- zbawx_tIb8NyN+$SeXQhi0@bMpGRZ@qT~o{~H?;p>Vr zrn^@~*%iB+CLDD Og2B_(&t;ucLK6TNT~3Ms diff --git a/src/img/flags/DK.png b/src/img/flags/DK.png deleted file mode 100644 index 095ff86cae709088e962ccc74f25e75686cf76c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 251 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~dVo)et9yaZF&+c_=-s<_dOsc= z0&3wd3GxeO*nd7jKw$Ui96<9WU>n%nNy`yY!k%#Bqe8&Ay9OHUSkROWTk>IjRJsDQK+GwX`Rj1vgoRpLG8V8pGxM&I%3w`nHDP`c*}m!Vlto;w;jw|w?QS!caxIel T<<+1MbOVE@tDnm{r-UW|ZzNgb diff --git a/src/img/flags/DM.png b/src/img/flags/DM.png deleted file mode 100644 index 05f78c96474e5462e340e8ac333e11a01f7ce2dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 696 zcmV;p0!RIcP)r&om4QEH~4&7O;Ao{o{$ zeU$KvF!HI7|NsB5vnn8VJHbC&H(EfSzl~6eHQTZ%H=M8N00006bW%=J03h$rV84Z{ zZ9D(~0ij7mK~#8N?bpYy^B@q0;WU5X-fMb4z1P3q|6Lshc}t{VR*~P8g`!6ma5N!ch>b`Zv+fWZi~V6HAT}9TW*}?8%s{M% zdPrS0o0kv;i)kmwlS&**%hQK)NXK!cgj^TO5EnLpxb^2aYdkdM__UWu;09&432fbGp7>gQA7m+0Y!eV-s}0 zc3pQ5KrYPBhDrfN61o=9hM-75r4qVR1o-d?dLqc(qFuOCbOLJIr5gb~pzTo`LQ1!E zfK2O-BD(=~MZ5h6KodnLpjuIYFj;}hHZ8PDLIkxUCA0uSVm_+dufP9(5kw1%v!QAG zEZ^LG9&i7Ddw^V+o( zkSdS?6ofD!WXNO_h{(Hl@8YMq)vZnks(HG8%j>gef(j;V-go-qz0=QTExP~cnXpan zzDrwbCa;Q(h-irSndhnhxM%9A`Aa4hIc+?(N)hg}+M-Iaasgd{zzZQp^!?}eVq0G5zr%iB|(0{4Cmh~>_4AyTp>YW|NHk}&Xz7@U|`hoba4!+hV zHKfdKk6-S(al+p}%9$ekH)VgeKT@3O_$6(D+`_XC-+CRmf+jR6-S1xc+-M3(0ml(SdLAK_qLo8WxDvg{ro z!!nMHtj4YL>Yx36%$3m5Ak^?Z*5ZA8K9ho@gEF_;8NKhj-?BYm{p{g%^oH%8AO?;C zfeudrPKG-FVdQ&MBb@01CJb*Z=?k diff --git a/src/img/flags/DZ.png b/src/img/flags/DZ.png deleted file mode 100644 index 8bdb882bd96015232afe92a7714a6d9a4b747b35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 524 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAjKMSxF;t9yYDkpJ%8J0J;R0NH5V zOZ+B4sh3Aizj^TJZgSO=St}m(%)M9Gdec4G)Yn)&$e1_Qc%F*M^KA!K%bVN|&AVh?2t6^cQ$^yV#@?glT1sKYuetn>lc0mx`DeS$S;`Te8PJL zh5hIEC%pf7*Yp_!1EYnfi(^Pd+}r8lLCl6c4#5hX9_w!ZUdHf!zv98iu?q4hE0(VB zxzBj-#R3HwT|!P8hq~ z#XQvt7YA|IKs&k9M!s98s$AT8Z00o`u~hXx?%LBk-R5NElpZz9nAXwv;-}7m#a6O9 zv(5)UuV1VdxDv{uaM7*(pMASt=mkt!%-ro+vXP5HXiKA# z{HA`(>mm1FA5>_IJNtiOp;)7%`-&AV?%%YVu5=2yiiN&#(9Kl3y6E}o0GEGhwMCK{ z{cAVon|=D%*ixzyb{H743=E#GelF{r5}E+7 C0O~LR diff --git a/src/img/flags/EA.png b/src/img/flags/EA.png deleted file mode 100644 index fddf21a1a31de30131ac7cbf347487b8afb636f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 362 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAjKV1Q4Et9yaZF)mqT^#2IMr$*P; z3F$z=Kim1zO6&ixF`l_<>;Lt-e->H&-^crZtHSqQ&$np_@AKln&(Zw7LG)E*-j_w2 z?&`VxKgg!YKk+rtaJG^lzhH*_?-LZxFIoC?CQ#&%r;B4qMcmu#)T&U8L*79!nS&+8tiPMCFJ5vOO zQ=ChAKP-4B5?jX*lwn(Hs3GH*;8@{sqUqA}$xf$Qytt;ta-FU_*{bkxHrEUV<|GxK ym$%nXa7nU%lO*hvb*1C1&dP`Crmp(4m+fWfO|IGd)14I*stlg4elF{r5}E*soSTUN diff --git a/src/img/flags/EC.png b/src/img/flags/EC.png deleted file mode 100644 index 05b0a2ace0135dcc11497dd640d72b10f433ca3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 688 zcmV;h0#E&kP)lLVa4iy(!OF4KpZMGkkjSdRkq6Ay-DV*Z?8XA**A2hW9+`Z2^xQC( zTn!djnZapKR9$$TfjM`@c+G!6X17exA~WOKeUipC-*7X%0000BbW%=J0ARoG&(9#g zU?A^454f%X00ERqL_t(|+U?TEQo}G1fMKPPqJ;F2iq`fzPEUYDqyg{$R;*>uaH5RX zr{Mpz_Td|8Mp3dAV@i#gYcjJ9=^)XXR2W8lLPRbCK!QIlHE_bDf%hR?rlV zr&R>4PDhy9Kqd`uIFFz?zJa#h5dfkahY0W^1m9*Ld3GM|?;q!G-$3wfzd`7P(1UYE zHWbH#G)Npp&Il!FYp4cQJVnq6t5CCqI%)!A>_<=^$1qVHD~JxzgD$p1r;T0c(GhJR zk~*Oz+vLd5>5yXuQMxg#AEi9jhYbysHPmX>brrFy>&+Gu8h}KUFknKu0e}<$?`l*G zQEVvO(H|g8s1*9&P&OGSD>BJI86omXIC&w&U5@YM?nEf%+2^57KuqOVarr{_>3*9A#G_JT7zjQMp|wtv@24=sA}oN4K{w`{?B WYo0PF2x$Q=XYh3Ob6Mw<&;$UmdSrV5 diff --git a/src/img/flags/EG.png b/src/img/flags/EG.png deleted file mode 100644 index 29dfd5bad8ba89730a990ea697e707ec00a6529a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 461 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAjKRDe&2t9yZu2n?JPQiUL(0FVJE z-@SVW01l4at@XE|7QuWy6G;pd4<-$tC6)%9t?Z$eK+e}y`b<{vfO8_oVq=8uWP*v zU0RuYfyZF2@2rFz=H3lvtDI$j>2R#SHA6S9oOfz-tT2b@CW)Xuif&K7Pja|v`Ph6* z-S=Z23QBxk<$W(axEDCM9LremYc-uAC`8q5b1<{U{0VuC7dZpDUszoDZPg^ebu==% z{g-`-z{S2+GasXl&Jq`YcDYE7r4j}g`=)K?@H(2PaH_*ElW|Mr`^|ol*=Ns19gNn# z_TtEH@2dM;TnhvichxNO5~AAm! rSCt6QUv9NERp9PtroH#Bf8%zt+|+e%*`>w6kYn(4^>bP0l+XkK(@V#7 diff --git a/src/img/flags/EH.png b/src/img/flags/EH.png deleted file mode 100644 index 29d07917d0dfb60947318ee51e3150291015a876..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 586 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAk#gaDrqSN8%RhALYiIwB|yBt=9- zAS93h1VBLu0t%K{YXU{;ge2f9-@SYH`oY8F@)~EXoNqR?-kUxD+0kP!FI~Bkl6BrA zAWT@?E7;&#QMtT`$WB4&#X?d|LK3QJ=JQn*O@&3PEi`sW$nq3hKiR(XVp!~*-boKv zt~se|`XlqqbfDV=OM?7@8TKojPdI;me}aO-{)G2H;2?P4o`Hce!qdeuq~g}w>o@zF z3>aD;?rK`RS!O|M_#D^cjB~%&@76rBq>Z~{PMRLif7X_knki160?En!vtR#k>8nl+ z zoG>xR@y8RzIH4C4I5?uC1s)|tFv$wBFXXv(Qo|+e9`DK}rG9G!mi<+JHC4}HoqOmV ze#g6U@md-y+eP^r1iXsfSX`>Y72h`gS|VfNKJl5>-nUJ^R2Yn$Cu^}g9OS)XW1%qp z&DxjEQdY&2V;Kqy9A_x*mku&ASbAXn87|3~DNo`~NSv6|=5tcDh)v5fp)+H7=p@b1 zCI5d*Zv3BkyOKHE@xC0pWP5whVQ2R9d?h~~Dn9;j;iQE~$*)fpCoF81$cjbHZarus zDE-*rZ0n4h1=GIfU*mpn;Wne}|9gmm?de+*Sq1a~|cI$jA(tE(;w8pHgJbsl^=RKfyAPGTLvCHA?TPuy5fbP*L3GxeONZ9{h z;Jkvs`}h0*13?0aKnLshC!Bx(UO_;g^}=@s1||(p7srqa#y4l&85>{RNw5a#hbA)uC~oa)RR3SVfvrLJzxJa&)P9}0o$5cyGsJEU*NG_ zkhQ@h=;Yz(m+2Yj4Z1`&$O%;JzaPhZ>f~Ilm%G36#P*q_v7ULwnbphj<@NXZ)++2} znR88UWqdX=@mqg?>i+uw_ZAu+T&He4)%N8tgG=R4C8KsfcJ`9hNQ3ANGlTrsU{1%N$l})rCKlhdpK76!S)A~yTc|-z z{l#pdh9#;?SQhLMYLN4i>C#rzSirKNL8yVri{aPz{d0G!F-UMM(D=5@sKSEn|F15g ze<2+WFHWD_{OYvkfdzWYIkucURrD}mvFOo5x)s_V8t=c~TDEHY51IH?jh?`?#^CAd K=d#Wzp$PyE6K$jb diff --git a/src/img/flags/ES.png b/src/img/flags/ES.png deleted file mode 100644 index 5c449da194a22beae9e9fc4aad9bf307fac4e392..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 362 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAjKV1Q4Et9yaZF)mqT^#2G0ko!6z z{ZpgspY42UrS-2O^JcEv`hSh_|Mj|m7Fqq@$NPV)!uMX!w`mFQ^WwkH(fqwZ^#4J& zFN-$a)pHTPcXtko%^BULXWpn8ZFv<1Ag{ xP|4r#(2-#OW&>xVl<9_G^=i@yku1m%zUg+odgO^22WQ%mvv4FO#mBLm@5DP diff --git a/src/img/flags/ET.png b/src/img/flags/ET.png deleted file mode 100644 index 4f4e7fc249f745f812573a770ff72557a5ec4818..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 833 zcmV-H1HSx;P)6m2#GKVi7*I>FxnCs!MHOVM5Z-8lffA*XfSQG95tIG zNOdh_4@a*Ffj|g}F#O#L9#EwWWOolsr#oYi4pW!V!71(36qK7%vaUV}eMky)SS?zb zcZp{VXmD9}dxnx-Xn%1^ZHC^;AETv6ar5+N0000BbW%=J0KZ`GU?9&R&%f_x0L3N% z00Lo2L_t(|+U=C#ZA;76-PoLmN=U4 z!*+J##_wgZK8#?!2%3l0VI->u=XpGg=FysHp7E@xpTi_9vh_5gb#|DDpAvl>&)_&8 zKfW)@k0^=rd|0i>l9Wi1IT;+8QF~JXQ350tNw8;9(3-?`b0PKq0|XU~sAq z$dn?=Z9Nk@4 z>v=N*6@yd}Pz=$qq7L;6rd+Ia5!lWv2-Ju%R=NoE=8}bB_?j*%y8=ucLu!Q#L|3MW zxU+~>a!^5R7azPK$>Q>~z-use6Kc2Por{ARctjYF4NI~qUr!;x(*UT% zL)%fzMxYY5DSLVYEcF@@El3o#8_KXv2Z1W_Vk=RWSZJslzp2aAiw&zwvQE--L+`r4 zw)yW>`_#t{ENu%KoGARf2FtGZC;g)5t=lY45Jk|CnAkoK77;IGstkM)QRkdIFHZ>~ zZ-T2R;558h}i}-QRH>M3z_z>^qL?_W_rVccGRw02yYZg8`^=h_qvs)yV?GWDrmjkeu1y z={$e3r9)(KLxb=CGYkrDZTEKyC*&mTU#50`z3lr#TmrWJ1!ZCD=NOz#oM;6!ki8_x zFPI@=|9^$^??Y$s?PFkIob2i17*fIb_IiKU90P&lh1c)Defs`Licigd_qQ{-wy;jV z$lGfD%~`b{MCr@Mc8q--@&Z+TN|GjS_a(lgfm-B4L=9?{w-tk_Km6bLv z5~z9o$BHj5@I+or!Kx2wt%|YXs`uv>_?hOPaGv>*pU>RsRP-mi>yO^A{+_aTmrRp- zlxdk^((-Vn{?`j@{`6{0pHzJOzQ;bnF1vijhUmU#^PHQ<%U1ZB??2D27`;feCGE?T wT~^Num5*##n09A|Y0d{}!>)f3`T6@9%)HF2BTN5U17nQA)78&qol`;+04US%mH+?% diff --git a/src/img/flags/FI.png b/src/img/flags/FI.png deleted file mode 100644 index 34096f2ca154731e396cf18898a5e317ff9625e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 260 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xZ3?!EyURMI7v;urWT-^(N-oXHaX~Ww$Zy*RF z24@2q_jDXz19kD01o;IsB<%nH|Ns63h4beX-oIymop2B+Q|;;E7*fIb_TomygA5{U z4_`YR=WwggPH9nDdFdd_n}qHw4N=)_pBWf_m^PGuy)L`{y!P#F3Be^%!V8kW2VQCZ z6SAn-g4QYL>lcB?+6e-(LX5M*&5Hf}5_wN8CeOI5pXUdlsqgRKKkCkg<|L-=w zoS06ItD~i-+nuDP;KF5~d1%EkUSU)J__%{SQt_s6ceT3{0000BbW%=J0ASD0&%gHk zAYi{(Wcv3200N*%L_t(|UhUTjZ`v>v2k^iK-ex=ZeTVzL>D}%7f2%zwO`MjlbOvn_ z;*SJKmVbVEksU?4++1@_1L4tZ!Gf`p2jfMN*@$!$r6YfkR^x^F_Jv@KQTIKli*!>_ zCPe-)&2PD5DyD-Wy+f!+CQ3dkf1Eaxz7}hOly+Z3-P9?EUS8h~w#OaU7C!h+hVW_~pXzXCPb; zhu-90LdvId`H=DRFiRoGg-|s~=zxZFU|FF%z7c{#%c7Q=m;*XctpT+tKq9x___a$c zRkbKMEQ8P#gtTX!s(CCZDFL&BUJfts!R2Dm2Cdg)+!B6E&A%}ID zy!(LUH?(TDws+#a#vl!8TW8K8`EN4Ri%ea&13#0gu5X1P!#&9O|3baY>t~r0>u_lq z{JD#>y;wzB6x<@TiCMF?-7blVw-kYH2#P$U;XQ*^_M^JfHnIo=B|)&4F(|O@$7gaQ z1}$$j4?Z~rJ0!w}ECzu@5V~a$h7E$B+JX>B2KLY$Kyj>jP>(1CF*cZ0)F;MLJ_(ZB z#&+zEH_&ELh{xd7a7Zwh09~Qhd7PHiI1kj2q~Mz@0000UOYD{FkKGftDI!kVV5iz& zkaYj!jON8p-FJXaNOL1ZP0)e*BI1XIj4VGs zpT!}x@7t|gzkZ^~#8n8{B82chGxFbTdx$@&(K#?be)|ZavHKC^jt4E>&si4GF4bTCFd%ZJt8XEU{C_)sH91%Lqt8g%4PI0vSk} zY#DNnw=q6l*u?FMH8PT*^*U!H&kbY4R)z$LD_3h|i@#rLK@zL>Kps)QzuoqsXL$A3 zM~H#L#j5?$;*SnTYbXzA&w$Jh@A(n>d(D6S9EtJPP>2W#vh9oQ``H%uS$KpdLoo~g z{DDMJeQSh}(d+AORF=!vazr5K0O9i!5ZZ*G?8?%IEer`sm7tWtgIbgi`wjMuz*U0G z&@zn0VljJ|%@zyTw^mpQ!g_(ouAGg_o&T_4Xc@K@q27pdx+J992A=1Q97V_^tJw1h z;fyRjuP7K+g(Ab6dvr6kLhi-u&{2i5#Lw5U7smw*EH!BIqz1Wh5|37?CvrkRNeWX5 z>e4Al0b6puWPzV#bLyx-Q%WaAlIcVgWyzdQ_*4O!Pbg4RGi8M6sS6(!p(*FIYSN{& zyWiv7Re;PQP6{FH>%!d6l_vWs%S`M#UBJ4L<6;v&*U*KX4c(x|b)1IQxenCPwB|LO zrlx84cj|!rHw&bT$J7Kz)VXNJ8y)T2cI(z3^*r>7{6+=$00000NkvXXu0mjfgB9V; diff --git a/src/img/flags/FM.png b/src/img/flags/FM.png deleted file mode 100644 index 0fc25e88f95ed27ecc2d21b6e12e0d9bbe489f49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 393 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~Yk*IPt9yY@>888L=>Px!K<5+gb7FP?t^Y4Jpk z=XHU?Yp3Z)q%2as^7T&I>tuf?!Jn2g&y~(4nyCoi^l3fve1`{Xx#p(g1*c}$8wRUZ zFV{P?eVM#j-Jc)qKljYv*7@Nz$9{#6+S2-h6>AT6U(>zHufMp$Hcb0XmU7FrfW>BM inY?vTi(e#Xn%H>;WN^-TSI7$VID@CFpUXO@geCy^o4s8C diff --git a/src/img/flags/FO.png b/src/img/flags/FO.png deleted file mode 100644 index 7f8e443512c75323bd308d34abf2059ff7400e5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xZ3?!EyURMI7E$z{gI@EPZfME@X z^nyi;ij)qlSX5NyemcWV;#pUR)|<{%W*w^c!YLvGixcBF53N3d)MtV2M$=wp0FsIjc3hnPR(7n4+Qu|Toi4~InF!Z!etWJz^lheDIoX z^`4*0cQ-J7NdI9J!Dzyf^euL`i_^`5Gjg7_^Uld;erKuTD7m4yQByIHL$F<@=!K{~ zh&r)QMGnFZy}Z)Icg4Y=5;22yHP59Ol9ztxv54~hd&l7S8vCbD*36Xc+WiPp*8lG8OqhL*k2C^wa&#DU3rMF0Q*3v^OWQvlCkuOROrzt3Q=BD!Mt0005r zNkl?ZnL0UxJoIZJqE@?1%mAlP*g?Eox)(%T{?!sRVM z=I48&^Bl;pmHiD01l+I^#BEzd482;;*9(X+!Zh9IAnUAI#LzvjzwVIYQ0I4>dXa{1 z-{DY*f8!(HI4p!ZQ5ZTo`dt;10a?|Fg3yDUMXO@2KL`uKis~LX*UA%Hr;8R5Ll6E7 z6e$>K{R}i?u&wtzrr5SBwFm* z_}w4vMW!7o>`GQdI4YQSqz#g=wKt2fV4u_m8MJJ|)_y0oWvZP!Y}q>yu(dZ25%z%` zBF;w;w)WPshP-nNpkvL!nN4gRv`i?a4q8Fz8tdKBkL3H?9b){QhEe+tVnXjU9@|2Y ziOHbjz#bODv&@3fdmJIcLKulm!O(jhYQjQ@L?liadjDej5RMUJaBf_pl*{sA!n000JbQchC<&+orrARBJmw*UYE z>`6pHRCr$Pm)DNlKnz7~%OSGA|H``nJ zsuQgba9+v7@@qTWOXe(R32+X+th(7B+PNwzbCMZwQ~}^xSyOPjC8As?;6xELW*`j{ z;ch!bv)v&VAr2_jAl?wMQldIHMMSfaYc^D;SA-#zdeVSBqR3fPYI8>H6-i6QI{hM9 zsaQuO!m$3AXB|)|BC_66n+yrD2p@V%tshV*;-$(LPzqj3R!1(1r5pgb%TK}T^os&s zajXjALk%a1BgD9&hFJc;p@zn+ w@k7mG6$ihOL(P1}M^X7u!$#51%AGsE0BTo$Qz*|R%K!iX07*qoM6N<$g6$GJFaQ7m diff --git a/src/img/flags/GE.png b/src/img/flags/GE.png deleted file mode 100644 index 31af12832bada28b26ffa4ceaca9acf983628656..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~dVo)et9yaZI}GqbQ1|WjeXole z->ls9?!lwi4Sg%01@Z&6u$2V)1v4m|-=FYaiuw04pvZ1d7srr_TW_zw<~ppv!Xq~)rdo|T3vXRt&2-XlHVtqQ$8w{SVelF{r5}E)=`-}kq diff --git a/src/img/flags/GF.png b/src/img/flags/GF.png deleted file mode 100644 index 99ff31b2f403de01cb2b9526daad21279b8b8fb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 604 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAk##sHrXSN8&+KX*CVI}MOY2p1>< z5d?A}BI5nJK#^NQQcas>#rpK#-r#=hDyCSan;fe4G*EP@fr86CwO<#wfQsKwg{EiI&G0gO+;duT$Oo{Y`x$ z=dqKO-zz_V(0?F(VZlX(-_h~&%Y%e}&MWEtGwaQVgvUJTg4(j%FFBOPTsp5JlrcM5 z)!*r^$^Hil@g>nUXFV7Fk9C!4IVLRR)Yo#sBuVkioR$l@M;tTk9x8~$PZF2~lzcR) zWdierWjsqF9_uVt=*{1DA?ct)#N#VEstRig)20auq{Yn;Rhgph`6={9zU%G3=K`im zYs9%y_rxYMd9B*-&y~H0xn;vKl@?Pq#U~jY*JrdA^kyQc_JZC@j_VQv6CW$aBs+ve zBy&o#XTR}2pb?SmpRyn)?{l!SyK~g6dGo!rFP<0aTcW){txoL3y=&LMGuzy^U$c6Z SL?bZ789ZJ6T-G@yGywp`0|93M diff --git a/src/img/flags/GG.png b/src/img/flags/GG.png deleted file mode 100644 index 72ac329c844befdbe98590a6180df20b33762204..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 268 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~T!2rAt9yaZJ5=!VuGkAfU7* z>`6{;ENATxM6d90+w^Al)-KN~?#WrwXTlmdSf;!!DsxeMvphtgJ-|guLSR-1UkIxV zhhECxQ;RN4@OeC8-UPKN7vdF5r6$}?p0L*GnZw;{3a{n1+{#z@clg=i-h5l>%=QmiuyCTe0x0&b1H8z87_V=djo8%6Yrv*$ES%6B#^R{an^LB{Ts5 D-HCTm diff --git a/src/img/flags/GH.png b/src/img/flags/GH.png deleted file mode 100644 index 2b19dbdad46f974e63de4e56f99b0ef35464a6d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 400 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAjKRDe&2t9yZuMyn$-I-{tIhJdoa zFNy(m2=FqVSta!Ph-jQ2$Jz<}dC^?*Qp|pi?E2~~b(!3I<_g-Iu+44eQ>(S@E#p~g z`Rxu+4|hqBUogY@{qGYL&L=4Bf1eb~_zft0%hSa%q~g}wOUL<|4R{(7H@lxu5D2^d zz5Z-l;8fuSx71(#Z?LG{w3gxc-R)}xI=XU_KZPiGe?F?ox~phfkYfPX1kOoD8W{_i zSOR$rk6bWRIiD@}X^-}Vw;c*=vxHUzzH(%WT&lylWa=f06BSAGyTrI%%eE!TcQe1pYjQb_I9tU!K zT*&h48sn$;o2LnLyt#7ewx;A=GxcZj9MUX|nygIb?9BI^&E8L8Ey!ee=)!5B%kZj_ z?T#kb?+-TLKa_U}vAb|GzdC+6o`*Gvo8|L5W?o%eb)X}-OM?7@8O|rX-@ji$A>sV{ zvfL$#3=E8`JzX3_DsH{KTXj5s<{eAnRSD($kk~j5CVE^?stb9Gk;)!G>;W-lHyt32lx6 zGn?GDa2gyI=;(giZ8*V{r)ksc?-Sb+96!I_p75e8gW-ligW*LR5v4^H;+GCHXb5%- z-CEhwc1T#rLu(<&y$j3g_S-kkHT}}sCaAT$;}3sIXruaVlS(e(M(lhN|9#((P(d_Yc0h z^FMy`?&+CY?-RLxx}I9#z0_x6_qLyoYA?EOuDKDZ!eTVn)^2X$-SZ9wVP`%uowHf6 zbjoS91)={wOjs|~a7pvS#x=~6nX?vga%|t8!DeOq_jv$&-;ybE0qvy^HNM|kar#DM z_Tr>hZF~~R$JP6KKg|@jvP|`j@)TPgJ^=ftH6sm>nl^?bgW0*{@qefiHTdCM^8#N`R;&V6k%yc_?k z_13&tuwW+d#ph-kjo)6LnOP>-VrpJ;!MG5WI)(J zE?nf@yLY^bT|jPL-v6aQjoc+ce!&b13H$deoKHCa{(b$T$&Ntb3QrfukcwMxuXu7b zI0!gj{F30m^xpp+mmWp6oN}7=huNk}hs$ei^qFTG$J=jqS!&;Y%TsK=ETkuZaZzB` z2^o#U9-Km7^fT1A8kI~CQt`Nu{mWf`!Q?3lj{lp4j(e_m-N4}K>gTe~DWM4fcZ6X} diff --git a/src/img/flags/GN.png b/src/img/flags/GN.png deleted file mode 100644 index 813c3caa1f086e392f75fbcb425960af782197f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xZ3?!EyURMI7v;urWT-^(N&Izi)5yO-OWCRok za{pWu12Q_IN|yq4ahC-71vBhVP&luUaDM;$_s?A7#eu@fo-U3d9>yUG(E z@Ce=DWzJPFRV)9feJl3VfdhM{O;|LSkw>STQ}b5rfd$?X7tPor4|SCp+)-VV@qNXj zK-a}xZlb+fQhT~OwBB^CGV55?(6Q=N$10J|)p72OwTujopY}~#=ABysw2r~k)z4*} HQ$iB}g#c3- diff --git a/src/img/flags/GP.png b/src/img/flags/GP.png deleted file mode 100644 index 97a3dd9be729541554dd9347752b04d1826ef087..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1140 zcmV-)1dIELP)ee0000AbW%=J0KZ`G&mds@ z#~|1&{_+3-16fH#K~#8N?9$6_!axj#;Yvsdp60jbeoJ`&w`!pk%z!slcNJ%mNN4el z zCj-Vv4VnQ7)JJig2g;adM~DW*;-5a$hSsCShQd_bAz!-(`krSiRj&bp`sE&az9^7W ztlEj7h>YudN{YS@B&cM4hBT!T2&wCu^u6r#QX^#TIziK2 z1fPsQ+d1pcE^XUYO=urP1FBFBs6nwItsAwxID2j_??xS6PBx?$)Jo1~9lWXyY1&Mv z6x;6$^vPPC?x+nzVHgI)DAMOOUJ_?tf!W$~1HJ$2YM`2`bO^YbzRB-LK9*(UKlKnY zKn9He2JwXBDi6$1Et(1@i-kA_T{@oNk19Z#sm7e4Xn;Hp3fiVN4Ht=Xz#9}3WH(Y) zbc%dl$3aQYoMp^9^a&p{pju?q79?r;J5qHEC=;_sj+KkVbeUQnJdErnNx!S9$?FUe z5bsM?3Tth8Ue{@YqU%~YM~x=jpxt6I#zdL2AF`LshHH=QC8(s274Uwos)DL)5!AQAO8fPz9hx z8Z2A9R3io&Ws_6=CsUAu2hLP*=Z!)XqzoGAsg`v4GMdq3ICr63AM_Qp#cHN&Ag78H zWi917UA>T6Tshm#4y$00Fv5L_t(|+U?iba)K}v24LD+wJRhhAtH-nTkBS}>rq7B|E(I( z4yC>5kdv#9|75uQ=I{dh-Qwcbg5aS7^`oghwAGqM{jggLg1hh1 zkW)%ueRUC$a%w@3m6|9a%T6|#5L&CFvZfN6bn+}Uph`{jIqMX8)qq;xYVwuwKAtQ; zG$yLlL`m=YZ9oXogDPc{!7zs~w?@4J8t*6a^~;vbE1@6`v>(5qOhMhnIENUO+Ak!3 z@wlpJu~3lYFM;+aB5e^1%7yePV}b_SAFan!;W6Vu90$Z>p7u6k_qY^HFv*#a9JR5j z_|g~Lue(F8Y@PguW{z&EP~w<@(vczP$-zTqL3k(`nSs)|gNMq3@X*Y`L->MJzJA!} zNaxhLE(^k>u|L!#Sm)$$%o<^#i~YfGj-5w2MH;85o*ULN$NbxT0_|t<;LjcMY5)KL M07*qoM6N<$f@#QNegFUf diff --git a/src/img/flags/GR.png b/src/img/flags/GR.png deleted file mode 100644 index 0478442a41a84233a6e629e0e68b8f60e0b87562..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 237 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xZ3?!EyURMI7Bm#UwT-^(Nc;hx8qj&G#0l5wP zX8ZxFVJivp3uZ`AIKTh>yuHqhK#@967srr_xVINKa<(`~us(E*7Vu$}7O*zh#A5wJ zU+hcVZ}IyZU!P8yUi?U3`rZ4LlkW-Yr$#Zj#VVh@ki$2Zd9BPPm-iRXy}H|M@Z XzeCfMC4^H3=n@7`S3j3^P6uDin=7lUk_7iGbgzg4%7gP`h0?&PfeOw#N|d)I!}l z(Dr$oK0luhp|py(;uvy&t1eXT#u=Ogg2(Z$ERC~3vNJ%&cwC+cd19?c0Qitfgw{Sp zObsGF^>qLTOMvHs>Cs zijXKOr{EkR&N)+s7D1gi8Qu*EXCkmubtn#E&gZx@4q(}i5)`46hDGQQe#Z%8KsJtj zP=KJ2P#lH}KIaqPzg^{_8kD3#fKE6ZE{1d8r+I#p*arnD4C6E{q=fzJR}oNvAS>fI z%QC}2h^^N~oB=375ROJGNLEuUHnKcl8j8^JWi-l1bvRfqOEu_mS0ag(&fz{8`x zmgVN=nYM|}*~m?RD{L?x$IH#`;Ft97w}xv|c%fs0r*FB-uU$%Wj%i>DY|w=f>R4llkzfsJ5twsaE3Q%=YZ1dxBNL zrXJX|O;TYZO=}~Qi*E4l;is3A-?vwOhD~pBMAFoyVk&jA00006bW%=J0MGBgAYh%# z)gk}@0cS}>K~#8N?bpY0!Y~kkVT@r{#l6#ePwzeN|5lMqZcHv~orwO624?(?Y=g(! zI^S%zuFFosKVm1j-Cw5TFh+-TPN#O-tSQ9WT5?!(h&k%|FcT2#wp=ri+hS%Q_75Qo zSt!D~WQ=tw847OZdJ#NVOSWEmL`Xuh(7WIO5~GEHga+jt!g<_RZEj&12O)@n1O))# zMZF81a`FhIm>UEkxFhcF~T`Z(3TmfpDjLQo)I07p#y zBXp?@0m3Ih$RYF)FYkN0Z$KY_lXi3f2ryb*)qQdt19?ZlvD*3=$5B+QQ2-ohzau5R zZd0tPX)O8smvVCwgdTq`UxK(ooQ9*KoN(%Y4Ij!$@wCz6>|-`52S|mc1K90g>>U7R zk1$vfA)OQ;Mj(c2k%$c-Ka+?_=Aq1d`|xi7S;#`hUf7L|5T=G2V`G-7!OzqvdbZhY YKWb%u-Mj&B6#xJL07*qoM6N<$g1Xr;<^TWy diff --git a/src/img/flags/GU.png b/src/img/flags/GU.png deleted file mode 100644 index 75c0945cfe1574d603ea0bb8c05703eac1b9ade6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 830 zcmV-E1Ht@>P)kuh-0(;z3D`v_=U;ps{1CnuvELpHEPc$lSN2SEUElY5u z+>C>+H=wR*D`60pfqa+DY?iQAtJrXOa(qk$sbq>Nou2?Hd!2zQ9h#9(frq)yIXrAn z@~9ewkHIKyvo4Ug|NsA@Z#{%>WF<+~RsAGY+Lbo#1?gJ`~e z-L7354#1$n@WR}j86)cE>=1}J?X{yk0-~e=__Q~Q`Y@2^1CewLr3i*{Al@6tMittq2SF9!~rrJkVle)c;=8t3dDl=)C{6NDZ&sj7CtqCd{JQKRu@ShQs0$g z-eHx7!q0syPZs?Ayn0UHS013)+*LCwW#09+RK{RSHRmyDUy5n(&8$z|9OvGKD zrV{!gM+y;9csdXz>ciye`EyCssUvLWqDY+lUge2_&kyZWqQz) zSfCJPE%xz32m=U@$2yL8brHvLl9ao5EvQh?`WL>Bn$h1h&Zvjv{{H^BUjLj-n#rXa z=;tBtmNE9RUVkw5x@3R4^)+r04vfvd%W5{8T_BQaKz$@fdTp9l#+Hp7X*YH52-Sf& zc}!PKwmOWO>DFkRIn1ZK z^Vdo48Myu}!ePnS<3SzJ^NVM4uX$uSbyUjHhm-{Kzm6Hyb0y8eGv7uyIo$!bu^$D5 z1a>wyN^R|s{{&fEkF722)}9cy9yQjUS+*X2ww|J2wrkgZ1MUrMD&|Q_#Q*>R07*qo IM6N<$f`(9s6#xJL diff --git a/src/img/flags/GW.png b/src/img/flags/GW.png deleted file mode 100644 index cf8c9416c1c53469c97f3447bd3f9379383e6c59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 426 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAjKT7XZ8t9yYD!#vM(f@%=*&qXmH z0&*b;$Oei75kwr$2B~LYFk#_3D4^oN%A?NAzMM~2@o3VeOPhA=`R^^ovOH#v<0Rq9{~7mX-ilkKlDYdR=bsnb78uQ*5zOV# zu;KB;$8Q?g5}!MIHF71o?~z~N9I;GDZbgVglM@rC$_4uipU<&;r5`Qs^7U>TA1}Mr7k6k-GpPAv26p_R^^nH z6P%aG8928TY~t%Vdb1 rc#DYHb8YEAq~+Dn72|m+t(sYy>BsJj+X9Dy-evG~^>bP0l+XkK5A>qr diff --git a/src/img/flags/GY.png b/src/img/flags/GY.png deleted file mode 100644 index 2e102fdc8e318e986c394f7dabe20193c3b74cde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 704 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 Ef`ffVi2wiq diff --git a/src/img/flags/HT.png b/src/img/flags/HT.png deleted file mode 100644 index afbf0287b65d22b47fd302a6c8cd51fc7551ca14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 669 zcmV;O0%HA%P)GP=Ejc0fI?HK~#9!?a7>LY>-`=?X@P>I$cUm1`7|*rU9O-w!UOniy2dBwSJzR6&mc!HuLL zYEyurO;sVPPf4tkX-w51+acE+sgm7a#|{W1O<{*mGTPQfEtyK@v*#r8 zveVv@ge)bEN-< zNRd7o#Rl2!45H6$F7qUy0fk^zd<_+kQSnm>a&$+m5*eiUV=4jNs)8!$F`#BSP7}4u zf!YZ5%5ZuJp;lepskcxe^_2H;N7QaA-E$jNRXuIL1`DaeM=Ert00000NkvXXu0mjf DxUW1X diff --git a/src/img/flags/HU.png b/src/img/flags/HU.png deleted file mode 100644 index b2f43f77d885fe5a26791e74c3ded874dee81969..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 246 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~R)9~4t9yZubH49cEjtJTvLReF z^4+_4`UzgvKwaD=L4Lsu=l3TlDC|F<@cw<*wp$;8!Udi#jv*Dd-d;G#dq6?JIdF3e zquR^;cRMuF^&Sg<(tmK$Xo}VLNwxuc_Q7YHBmd5M`0&`IGn|qEbAlY7IY|0>O;B*W z{b7QTipPWn2|GMFg;X-6rH*I5kXgap`A~)7dXM$zLz99k&KHI4ZLND3@ajgK)|E9g UUpOuh2incx>FVdQ&MBb@07X(>>i_@% diff --git a/src/img/flags/IC.png b/src/img/flags/IC.png deleted file mode 100644 index 44cb511f1b1293f00e1abf767fb5223c1db3a12c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 613 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAk#fdHQnSN8&+|7RH9y?X~FAq)r` zP68Pm87mLWjxs8lowc@r~%CX_VS zxYzZB_nod@dW}7_OT@o+($>3P+4ai~KhB@HGCD3aC(7dSo9`)2O{=D+`m`Olt6LeK zRekB__XI2Y&_?vfzCV21ts-=9CPkdUD8{+-g%r3?&=o}Mm_Ar*0NuOH82 zG8AzLR1lc7!~gx>i`D8U|Njr=ImMT1{7vmd_~s9;3oV*acemOrLGS@MyyI=l|JHH0()SuFn3dtU>0)@B9f(A}JqK9JbY+ z7i&@b7NnoE`@-~ZE;M%dZ zSwVK@6|ZB7vF(qK6!|{eK4(_8qtubltcu;0G6CF|rwQaeSZm?===Z{d=Zmjuc{p-S w`j#+#o70J?tR-tBH;LItu6}WOS9@ZsSakf1fnm+y>FVdQ&MBb@06SeH>i_@% diff --git a/src/img/flags/ID.png b/src/img/flags/ID.png deleted file mode 100644 index 4e8df6473797f2d21165d9a7d6a7775e9ffae8a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~dVo)et9yaZ9eFi0^bP|!N_BJt zweXe%`2{m1?EkND{{8>`3Fj5w`>{2?21?|3x;TbZ++1PWrcGc@(&RK@4~htC;Sf}Ed13QK#kE5~ z(W&K}v+nWC7nT9+Zf(X4XGF`d9Z~Q7Fpu+175Cpe2XAcM`>f4l=N0SXgFt&3JYD@< J);T3K0RSnCWb^<4 diff --git a/src/img/flags/IE.png b/src/img/flags/IE.png deleted file mode 100644 index bbbeada96f24fbe3757d9e839b8895814dfb0a5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xZ3?!EyURMI7v;urWT-^(N{&(0xkl5@bAOf-> z3^@DUyLUjrx<`9o0CjPf1o;IsBq;1pP&j{n|NHmKKUzJ3!pWX4jv*e$lM^IZOW5Uh zCqCd2+QH4-reOMT_ebqrvyU7&U^RQfqG&FjH@i7Ccg;TVz&GNeYg^u-E*+iKYkrq zb7u3whc;=)rmngr=fB@N^=L-N1>LAa8SUr!op+Z{x^&_C^S5u_luy3Ac*~uTXD!x1 zV>wEK{DK)0_WxHn|9=0{0C!QK*aJ@&$B+ufx6@r09Z?Wqo!lwveEjP_aoMx)-an{a zzG(HKh1T9G|MY$??RYS0{;W+}N-IxIU#_=k<@{x<1OjY-EuSzUomXfUk6^r}*CMAQ z)4S#fcdiTXJ<&Y9gU3fPtMbCJ?ily`mv?epOz?MmVI}eQq=3q&ngi{oXA@@4oX*~V zo<;12yY`n2IsDVEzn8jo)A~ZLzEy(0lWSgEa&_T>Hzi7mms#fKZV>BwD1U(KX3G@a zi91}g-JXZs?x;z=oWJ$g+4y>y&I_GEHD9=0cQwRLb2>3eDt4Bt_aBj!FXpRG+`$|@ W&9hI9V_FB$uMD29elF{r5}E*vM76a5 diff --git a/src/img/flags/IM.png b/src/img/flags/IM.png deleted file mode 100644 index 99304fca91cce85f155c7ff63082092ff5d5921e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 596 zcmV-a0;~OrP)DmGj2R-ePU=xV`z~ z9qXVR`Qt(EtQ+EXP4mPU@VRo=KPR8=9$)|f00wkY zPE!EC?_eO$q^0?p0004JNkl&>&MiHlbl`+!AnM=3ElWIe}j*@7SezcCYGS&!b98l5|GN7>wDzR z27DF&T?a(FW~ao|&iF@a93hdkog*Bzq3Y758113Wd{0$otZ+`+5vn|}zCgMoRD0k)7>Ye0A2t~| zwe18|(vNlJQLVL`if&L20GSAXv4Ms<7)rcUi(p7JJeTV;!0~}hfWmS>3d*uTIW!Ao0LubRp?Dyz#Q*-$V*6odTOqiX8n!iy iYw_b+MQ=8J`uqUBkF2p-wT}$|0000 z{@B=f7C(Qxips=An=%7{c5#;k`2{m1B)s3RuwUW)`S;E>zsrHbcRXDjLn>~)y~57d zY{1i+xY_;k^A_9FfAb?(STJtWYWXDpAb6Uy-Th+jAY~0+KQ+ys4N5;PCkl$o1|^DU zbucXsa#+bXWm4cNXSrSCUxHrM2i#3qzp^#p>Z3JlRRX>qyi$H9*8X8I=K`_YMto-u z@5sqm?`*p4=-FvE&*jYwh;Nhn^7zf1t>?}r_dhdYDQPa%-e6^2(!h|E)@^(G%&!SG z*|*wt_t%|eUum!O%X#(xUXIJ{_q-}kIDcRRcl;ZxYsjXJ4CcKNKz}lLy85}Sb4q9e0Ex)5TmS$7 diff --git a/src/img/flags/IO.png b/src/img/flags/IO.png deleted file mode 100644 index 7ef54ae2ad3c5c8940cf3eed49cb2899ebb24ae9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1423 zcmV;A1#tR_P)U>FKIc50RiRQXdTaaIto~Rmq+ZDF6Tf40KXXQvhIKAjQQX{{H&U z&pFGP3IG5EbxA})RCr$Pm*;ZZI2489*pB2ZI(t>`)x9R~|5%F)f&dxWJLc~G%J_^d zTRMXe;Kjuujs9GH=}X@(f{;m25Dc_}KvrVm%WyCl2LGUoZw7OI^`Z=qz6YY-V}CHX z>Q#UQV?6R|01ws2T%*2gPJht91p}XgaPMjWt`?ycJkltRnFPh5vU))JVdqS;HYiJO z!GiS)9A&cBgr=A>`!P;2zC`HEQ~{>tX%m!scMACk(}%LDVQTip58{c0qRJFpm zGBwCuh6B0F)eI`I8nr0bi=a32%k0hfXJ#*Ry_YCx%7NaMH&w%VPrWbJzF(?Y7QNc* z00J#wAqp~`sVno~ttO$tCuG1xNT~D_Xlg;zQdK((yMdCx%PH*mW~EB)8_E%>`R$0jM|yVW^&{`-%vCqcT^)G3+@Ft;yu%^?n@ei((v% z_pi*DuCw6_FW`B-2`nYh$IO_qH7CX4so38ukox2B#9$;W!i$jXr0Z)b*>zDA2iUj6 z$~hfDPn+GZoBr-_z3bon+PywEKoC!PWYaFn2^nRz8)Idr&J6e48_?YRx+m5|CT}WK zWU8EJ_CdovcnA;nYj{%(hsFG6t6oJ9%oxl@uqA{9PMi>co|yajwwTWg_}La?GZCa7 z>fSM?g?Vic$|M$46^oMALs`ljwXxZy&BEzP zn-z*98&4@@mzBU+G#<(#jE(uU9~gXC0P?$EeE03s}-0ha2)a@Qg zm(QXRY$+8u0Z?}>?@x^X4+PuF1aa8~N7XEw>*FhIuti{|o&kjv%#&ctc`Miws0_2I z$DwS_T;6-5*pAdCMwhaq?0wCN!2|o*e+Pli5c-RdFp@622&q>M1!<+82%D+L(%h!r zB|_+X&vv8@wy+8|Y-%1c(~s_Cn|?IG#?BFtE-JqjY#t$ITy63XP4CCK`&YE9+W(6F dvHH@N{sw%{NO|{Qz90Yq002ovPDHLkV1lvGwIKii diff --git a/src/img/flags/IQ.png b/src/img/flags/IQ.png deleted file mode 100644 index 81de697331eaf87a4a6e5d831422ace6781a71d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAjKRDe&2t9yZu2okuf=K|ybNjQ4< z?j2Bsp~`0S#X~mJGw(ltJoWHu{zmtMH_k>btJj?nTfSwgTxZaQ2RD|S+Lp1l%WGaq z+wKKG?LRc4cK~hSE(!7rW;mble*b<2g@p6(%W{_}GB7YIdAc};RNQ)d`F3Bkf4fZIY1e;hl+%JV^{o0{Hn_g^QIPmn~nOr7LB^!h2Znh)$jo2e0FLjzeYg zMf;uJvK`9fpS1RY-^cl$Qp?t+-o3Da+4HtpPL0d&zsno;DNS9#QY#j6q>$^xV+TtI zvBM`B9#mPri&^IoRQAK}NkC=ci@C)fOZ{$}yNP~hk8)7`3k*aCPgg&ebxsLQ0P6L^ A)c^nh diff --git a/src/img/flags/IR.png b/src/img/flags/IR.png deleted file mode 100644 index 5147905ec90b56842cece50ac2bb3f6838eefd36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 458 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAjKY=BRQt9yZu@_dI|42(b$!ho>h zD5Pj_DLGPe)#Co&izMBJP)ebo{h;l<(F`C;_M5V6;F?yzSc6~&b;Nv z9YbDRzIM5+Mdl&XKcGe2B|(0{3<(ME&!1P=zhB{faf*vK0|TR=r;B4q#jUqjZs#3V z;Au!y_noz+=d4+JQN{n`Ih!+X*+%Tm_<8iJx`RZ<)_dFYE{Xce&biALd$Ztosot(# zrxkgl7BDWjtW;`n(m^<5q12a~7y1K=CJ4Q14MQs=q8Ch&i<`Pbm{oVL zUm_s7_U5vpjy2~4WhWFJl-6o9+7#)hA#p5#r*gC6d;w+2c%Fri>pSM^w)v#}v6lLj z*QNNJ^Dd`l$URZ#Zq@#m4MJ9jmP!PrCB|@0411E0CAVauY8wT2kln|NeKyE3QJamHa6~Tp0J3InT_*Mmz1Ophjv!t3xzc+l0z;QgopGoB)HyS z5EWf2$k?_{$%_41#wXd(D~>UV{vlf(Ls(rxLft}^dc=IS;(Ec&a5TFAT-pM*13>E; NJYD@<);T3K0RZn$OR)d| diff --git a/src/img/flags/IT.png b/src/img/flags/IT.png deleted file mode 100644 index 2cd1da785e92bbb4e9bd003dee67e46bcf6551ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xZ3?!EyURMI7v;urWT-^(N&S{%7OmYJvAOjcs z-Me=$e@ZL`>f$a5@(X4-e}2Eh{se`D_wUavOn3qmPWE(h4DmRgoFKtk!hUjh;sZS) z3ub0P1yk4EAGNKN4;?tLZ`OoGllgdjc5`Z4DIb{N8*!17E&EVcpV1q&H80MrSQO~G zxXVqnS4(P7SBKV{&Q)d|s~S31o$6R6(z!a$ow1gY!GGBSrdtwG2Y}Wwc)I$ztaD0e F0szV-RDJ*e diff --git a/src/img/flags/JE.png b/src/img/flags/JE.png deleted file mode 100644 index bc974c12725bc84f3fc10b7c32398b00afad35ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 840 zcmV-O1GoH%P)deya?(WtoPSqet)gVaj?(WqfNdL@D{J%{3+Kv9uV8x?g=T}DerAw@k zl;1Q&_TQ(WdU~H$V&%6{`qzKsl%>)$Nb%{@>(tro;pFY#y^e=>@P$d&EmGJzUGMDV zz$`$`%*?Z@tGat$#!5}zrc>HSXXv}d-ff2I$IshTa^QNA-C%s?uDa!+u;PcCu~1;@ zX-C(JQ+Y;TiD*sib4bXcLcXSmlutLSQ9Gk4IlH>M|9iY-00009bW%=J0Pi3mV8745 zV2QfB6#xJNE=fc|RCr$Pmj`PjK@5e*N$fZQhT}f|Nqs^8Cx3-*#~hX9u<&!R6y@q zZ>gLZp_<+?`ovymLe%&D{=bi(*c#~_HKoqhnzxD_g{Y}Nf`e6*_T<~ z+Tv5%3z4vQMIV?CA~%Vm=qaWTT(K>#8@2yxoZGvnocP%tIELs4<=p4CxRMnId#jnt z++J39ou`4b2!h#6nCJN+VU>NLehurwv3R>tjs?Y z!uFsoEF`K=v|wo=?g!B|<%PIIMIRqV2wOW)vhneMT|pkAMeJ4wODA3sMH_&LH4qz!%`!K==o2>}lg1>hk92hHHI2Bwk0M*>Da02uvn zsWG^0@pvr3<8c+WqXZA^a)m(P6+$jG7`)WTH4B5+EMELDc=7wHRrK3(J%=P)3jfjq|Iz~g(gOd|0u&S!|Iz{@AQKRtH}B5|KsXWNx&+_L3D3w4Fr_eiXAIM> z1@OiLP^>Ax#1LIi4o^f7aI+$Sw;qqW8?V6>wwDN)e+tB-2SBMTigODwEE1=S37@?e zAfht>n>vt03pD@$00(qZPE!ECzwaQ=V4Ln~Y5)KMbxA})RCr$Pm)DLeF%Sh!m^o*1 zB1 zihy}XLFqkGbxA=t$6pbWJtdwawWMU9K#PEe0-3Q)RMG%KB*+UrbN`f!96k|}GbL-4 zsNkHyC(<*oYL%#(vPXndOO>%ol9vz%S&i{2?KT8V z!UhV$5l{xA^4+_4KsHeP|NsAYis~-N8!L#2@)q0N^p5&`&&MeB3UmvPDkQTv%K^&GOBIM{k#{dyrNBYWjjGA7f`>Ns|QgDMAYAZbr+5l=_Tx zpKae$C@h;QEYl$*-)N!#xU%)4g2@$q$Da?MT(|R|t*x_MRVzwZ+BewbZgkeSOV<|q ztiJ&Ci$F<`UoeBh{{0F2&nuiyc(0If{{8!d`)6-vU|{t0ba4!+xb^n>%e*EBiPndK zj!U(_9#+~SnkBj>_wB1|XMgWsZPfBaWl8;v&fR`;koqLkKWVD&TUGk!rfX~NQhlDe;ze)Eg~jKcW*m2# z;qE-c-D!rovf>vnr;K;S0#fH9I6ixDuuksIV$>@A>EyJ+-|5A(QxZ{Ap2bQ#y}VT; zw?N}3@7@x@b!VP2Mje}{C$zb;A!XIv3e~5-CVO2lDlU0_;KdvUR?ijNa}RgSQ%huH zRa(~GyC+51{n>hXUstot%xnAXCw^M<_rF`&|K#eT)!+0@Y6{AkYWZTs4(Z5AC5o}y zCX2D&-QCgPmOQ=Lpc{yqfMnF9?}iWNq!qUQC_K65Pta%6w7Ge8XD@BuaZXxm^~I(0 k-L0)wd(Pdw6c`-a>|-QYjxTyC0ZLU2p00i_>zopr0O^1TQ2+n{ diff --git a/src/img/flags/JP.png b/src/img/flags/JP.png deleted file mode 100644 index dd515aa06347c7fb5a0640d03f416a5678ad4889..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 335 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~L4Z$)t9yaZI}GqvTL0a{M{hN( z-)5D+jm>_yX4AV#v)-0Bzq@knydJv}P%m3akY6x^!ukCP@1>Z3F9V94@N{tuskrs_ zdM019fB-z~7R_A^jZMk{!n^oXOttMV#Vlo>bR=HYl3VoY{4H~u&F*czxuAdZ^fv(y z4|jz|?UkZ>sQ;Tn}G?|D0@h^}f4on9lqA&jxv+Z7u=b zVtacZn4A3x%bsXGFB8OtFb#tdE{N;*DftOk`Xw##AZFaVEgQ zPL%)IiuqS_6Si&JcI5bx<;$19+P41phxa`yJP&8~>xl@S+O~PFGXG*Tr4JuIEO#)z zeED*_DBFHjft;M288c?Y#>P&GcUl|Z;_vT&>(;Ga#dC zIc=P{%nRrj?vfzCV21q(?-kCUR{&DeJyvuuFfi`+ba4!+xb^nx&7vj)k%osWu4eHo z9v5+OSY5jEbj0qRC4s;Hh?7YCpl-H0&(?*ZanQQx6hqTJhJB_l8aco8 ztbDRQtnSr=&4N!9_pLabqIV=`QJc8Sd5$KzM@%)AVo5r+5enZ9@I)!MDO5UluuT_G zTF0ySB01u@Osm7W*WYija}{+Sx~_TOx#pMDE*GvvQmGeCs3y-@b@PmZY4F7hU$;iR zYuRymGwYMzS(03aS2kO!FseM??sVtX&Qu;-rY%<&-VXJaesED@74sGTbZL#758ae+ zW_zzV{FC<)@AJ9wO)u7e`#t;amF@pm-mbm0eSap;)=$42Kb?H2Z1j_xf33|A>4}rt zVm4K>osBh;y5$pHy~6bFg$d3gE%SHVZu!l_+}_b*x6RMSE8czajhl5doDS~Y)uvJF z==N)|;+Jpp)?D=Ih@9f{K0htsLcgr8?(~UrkLnVbQjbcVQBvGh&nNn+kZa8h{*aV4 zbJ~N`dSa)%nR|)Vd&#D+Up3srbt2vtPn>IAzNwZmJ!b!D7PI4^WXs^`>gTe~DWM4f D3_L|T diff --git a/src/img/flags/KG.png b/src/img/flags/KG.png deleted file mode 100644 index 58f07a7ba6a5ef75030313efd1a2e43eecef504a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 851 zcmV-Z1FZasP)99vhC%diJ?u0y_>x2Uoki&# zFYik?>nJhuV>|VFKeH>@vj6}926R$RQvhJ^AkV*6c>>M=00Os3L_t(|UhS95ZsbM` zMeP~;@?CG~|35XV>L7_%DYbhw@Yx7j=z!EMNaWj}%MU-if6_PjeE(bX`-8s8$M5C& zMc?MvG=0zu__*E=y@dC-PkITTZ}cMmUzCYDjrL7ZYUD(f`a$x%$TFow)vQunS0Z^z z)Trq&C6}W%He<3v?Fms4DyLx}c}*A^jfLW_sAXzw2X_cgRMmjFQ>sMmUPTcU+7YNw zFcj|Sg)>FI*_ua2fblQx5c9axT8o+upO&LK&AJ2@k%MKsBAJ1q ztQvAsTxiPko)v1;Y_}p~?~V)Uj0fN@xQKof&D*Ut#}rA%f5-wbz~|U(O`OA~rwp&| zl>wetpWShEvy^sQ(^b$obv~~VI*ob`EHt$pQ9F{2SP218_2WDbR|Sv*s4_NF8$B4R zfFxY7l$44vE|Op}yWBjGEAvO-!si7qQ^|myN%rFJb;1DE3bqcrvf>lBo!V&X3?V{<$p5U5M{59iR2|X1vpNh!YqI)IQrN; z*+VK2)J5~kJeIRl0El7fXd9xH*VbsKV*a$GInmO&cL1;Yl;zD=T;AKQXAUt zk2MP+a!Td-k54%#LEWum#q-5T54XlX1!|hd(|rX d$MVAue*vodboNPt9yYDv))2v^#A|=7h%yr zk*_;{Uv}&#Tw|e*E~v%Kq*C z!w=+C?nWoxNzXfST2}&SK3hqUUogY@_xlqRr1NfXXJB9y^mK6ysfc@f{bpB-fk4~E z9be)jW2PyL-ezNuchi}|l?;VxeJ<>0E*Pp#E z=kmh-+GNIOrRKs?jd}BUHtbX3{^9e2afa)Yd7md%sclv`&o8|HRfFc|U9*{IzAS88 zaXe)IzV8Xf3U5TuHQN1rWR@&u@`!8SjU;J++SU(#6|H_Ak8g2pC)pp00i_>zopr0A)eT2><{9 diff --git a/src/img/flags/KI.png b/src/img/flags/KI.png deleted file mode 100644 index ee10d01349a58f07e1ddae7116ab5b410936e34f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 964 zcmV;#13UbQP)|?Bz?{iCIBRT&JiZg5heg6eLPp0cZs&MywVRbgx}%k(AD5saHk$U ziY={KgpK znW51oIPK)(+F)+sZ&&58w)NnV-hhhLKT+}N#`*AIQ$m!)0000AbW%=J0Pn}|AYdTJ z$6#>bv(o?o0;x$vK~#8N?9kVW!!Qtr(Lf+L4>6-&-Amfm_kXLkcR7nNd1r zV~lnyB&)d&pqgT06lIY#I>4+<%FGM_av|ny^ojtbxJ{5(6=_k$D#V=!J%Mc;r$ACE5L3$l>rP7oR0XUB6DSavb$m1A0tjT@TQ3-cF7S=Vd6W|8y0zEXK!2NGUT(+wRG-4L* z1#f44(o5p9vmN28{quhNzO`I$&(GhuX5*^&Up{{L`4aalBUc@d-LGmJlyODm0AMi< z%mM(8y3T@}kN{HbX!C*D_M(ZSu~eC$>k?wE>1Y}KYdE=?pP{B64W&i00)wD`9VKcS z6y+D9=yV4ciI%mi#{=^n!+{`}iAbDy>%9(j&TM8sKOUJ!%n`WM=QR+a@xit5aP`sZ^pR~fA6Bco-MjSLL~qml8i8S^?x z5@OP_@(%Hzm8 m9MAv&000EjKeZm_WNiX>oe`yG63zku0000PA%+Pin}fPx^A|Nrw=rFl+uNLU>4`NyYiS2v%3d}h_TWoQ?2uV~P!|tCqX98GSx1Z`E}7g===`l z-ILP~0R19R666=ma9%+{A>n+&{{0E>_n&|NKH>he4h9Cs`JOJ0Ar-gYUVj;M$Uvm+ zq4K7cD;~H{$_pru3^`Ey{ongjY8LYp|0vr2ORCU&Ft@ICS@5kJ5%Ilg(F<-a*!e0f zI%Bn0>)XBU-kC2iO#9Y&u=mHTj@YY^3P&A+|j1p}+C_h?2rPk)7q6 zzwVyp%3y8%a?P>dKMiN4DsGc7H0v1pb#E+3ceDL8tJ=t3AOVUT!y|J#VIvKMRD fT|9Q|)-OiACxUXZPLq;=(a7NG>gTe~DWM4ffk#_2 diff --git a/src/img/flags/KN.png b/src/img/flags/KN.png deleted file mode 100644 index e021417b87fe3df560679781cb1283a9b2462c0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 875 zcmV-x1C;!UP)${6co-8CP+Ic&JiX6o=E_nN&o-<6ciNB5hnc67C=BiU0q!%dhAO8(#KgqHq81RLM()KH@bK_#Y;3l+wlORe zKsOXaUSV^98XVA?8E)Z0000BbW%=J0AOJ6V8`zu z$H(vMZ?~EN00K`*L_t(|UhS9Hl42ncK--zQtGf-{e2qCw%wco-|G!!gwF`!=me(oI zi*KiFJk=n)Uyd9(`}ie>;fqpg`XII>EwHp54bS?k_FVS_k+e6SPf?o5v(j{h!>KVv zj`c%p`YYj)0Gvg6UX|vmC*IJC`a+Y!r4ACUDV`J&XNUtq zh*e*EzCmO>1!|nhx=Qo?65`^?ttg|huC?apXDJ~no@|Deva+6ssrLMOlALJhj8!$b zr%sLMTxtGXN)7Pw>^Dy~(2Nj^fx*OM#=4OkfQ#o`xTJ{XE*^8rPm&W2Uu--+1*ZFW z)Nd&{(OS_$btnsp=SFg($uq^{k(LyX4R4k&P#~P@Q-f5#7ciC>~B^iN^!zHue_k z?C&m~J2##%;K!2|xTAF9VF2$bmyR^XWj;$M9!3;;%4LWPHy$1cKILXOcjMuK;O1#C zcjMuK;8QNEy?A&)1etU3@FFIj2oV!cjELfi01{t9@x;)9mS>@OqBsFa_-l)&0|4z) z!E7F$5B3jR;%uJyv1F$WmR1rU579Y+cgv9@{{Udqc2zD0)Q$iE002ovPDHLkV1i%& BiQNDI diff --git a/src/img/flags/KP.png b/src/img/flags/KP.png deleted file mode 100644 index 7e05f75fc60b42004fe7b63e258ccbb19c5b8f6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 462 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~cYsfbt9yYDlm8+#^zPlew=(LV zle53|P5!xK&+lU=-)WitSheoo$4~$N|NnF4`g;qfFNGDKLSw(yw|$?p@bBX%AKU{D zows!d8p~c1Zfp`S+nS`1Ua{Flu|cIEGX(zP%orbi{zi_2R)JZ^Y02Gnbll zT4(i~&%yg-4dlvp?|)rkm2M%+|D?z^eOKHzzru52YnHx_JWyI$drqmZ{c_}ymjz-< z;##dITBl5?m$-DyDtpU$?wTwS zQk~CQWKL|TiEHHP3Fuz3Jl%6vf4fsjO3c0$vXXC(J2Rgt*8hLpnPF9X@`Y%I$L`K@ z-7BunHA}j<$;sh^mLY@o5{EO3FIpPKy^VD4GUL-`>+=*5q=R*|s`yb-{9{6R}y7^~yi0FZ{=O`=WF8i|2E1 z)ZJSd_U3?IS?h#dS2|)hFVU+D3cqNdy?r)gOh-oT#EY*k0z;C))78&qol`;+0C>LA A-v9sr diff --git a/src/img/flags/KR.png b/src/img/flags/KR.png deleted file mode 100644 index 8ff7ccd3ffc07557c781d885233315dd20497e98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 784 zcmV+r1MmEaP)X)nRwbC`iT(Fyyws*l&Zgz|pM{IcPj=q_oM18An-qq?Hyz z9!rOz6h31hR5B`NJ}6=UG9;^z!9bR{ioLqvIKg{;y%v2_3d00(qZ zPE!D2zyBc5?^T!%z5oCMB1uF+RCobm7`|W>i~>dgYh;1sKnw#xC$k`r*-rBRr(Wq; zVd^4di?(=y?dDrE&3KV{`t&S#nMF-A-oWhK28LB|7qY^zakkH%A>s~Vptl`&W}C>2 zf}0d%GT}c)B!RV*+HixWuNdT#s06*tWXDyy<}HDtoEMde|mbIZ;K+EI@;AGOjwR0g#?NsVfNAM*f7IB61s{H{3Q^U zd@@Z^q;b2&ae>nNRC_&*Y_2$XU_i44M{(uK55UA1R|1vA5Jq6awisBUc(S4-&GNJ| zObthw0uZ{$m3Fmvo4@ zKYxh0Cqsn5SR*iKiH&~p!>HJJEH|)=9U;UHHFC!+v4fx7QS_gGej(qfi+xbc15r`{ O0000O-cNb9dh^LEVNX4zU*FE`~9e7*UlA?!7i=9e~pAJiBtHMTsCDWQOl!dTKrc7|GXLx&OMN2uuM?M9M#0BSC8_)GM zKe!+uBbSw@$8qJ2EaySRg<3t6|Ee8nE{l2Se)hMQ^~Cv++4mxkT@rWyVtenSsN~n@ ePCD6}Y8h2M`PzPe->3}q4}+(xpUXO@geCx*!H~WH diff --git a/src/img/flags/KY.png b/src/img/flags/KY.png deleted file mode 100644 index 158d5899b0c2573820c9e9ac89f493bace07680c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1006 zcmV1bVNXC_nxctqrIK7oH?A2xVIsc&z&lJm4l zm8QtS%GulA<=%aUWqz>Xk(ukp$u~-KufWrokzDDuxCA?9)3;azUs9GO8&+P5#bBU2H^Mi$02PwqITVVLxl8ciwh_N#+2?&&WI4{Pw+BLlRsusDKK5BGY%2LB(YhP;t5RT}ilH0iE&>BEoeOUyeO^>#bZka0C>~7&{!})1=hGGg4i>Th?UqTps&#L=9 zng=k4g5~)V(R2F5||T> z`Bp0?B@PWskfDYq0HNAeL(Meq576^zAKaHVf6V*AkCq`*)d0}Mzp9m>=X3t)b(GJy z3>g~WwE<9%W+WcEVLE?)L1JFN47J;!9fq1}np#+b=%o!qb2c;0a5h7zKhmp1#K9Xv zMwpO|Lr4wCCGK`Y2$@W_6Sr$uhgh0Gw%_a-g9&4Dbw~*ygiKMGSaM1YXlFyX9oTC( zfp9};Rp{Pdr`tVDH|ZL#(?qZO_!0xR}`k( zOtJL^hg7t>6!J6y0o9|5D4qgQTk|i4;>emts-UJ%o$f*?3(vA5xzZAeEpSMU%6s<3 zjiW`TSe{I)LPdp96QchC)c6>uAvHe+YD!Y;Bb=7_nI+eEVWH7X||IAGQugb5(bf3X|V7i+SvBFTe zqj0>FAhWuUzl1=xt4Yc~eE38H9(mZp5si8x0zCnKPM zG^4a&LewXSh9Oz=TQtw=`lF0GK);odIoXoO_GPS+YMRA}J`B0^;JHJ}YD zSOZr{xj!n6Ebxt!oheBbX6al|ABYBtSy(GgV<|D(8IEbhaX)ON5SV-g6^iza1k^_d zGB9&msS6;1{RIj@yDO?FjK$YXBo`5LZ}&^sBjTM1sGzQw~3IfdJ_zn-%skr5Zk8GRLn@1L&)Er zm`W^chG|pSSq!myrW85}F>oREVP=%K{eDGMQc%T$H8MzQJySxf8xLd_%mdY4qKZ9#BPl+?5ONDSGl!82o|F7*~>;ULC(wmvu58bCS6 zRr6O1r>94)x0XT1q8U(j4S(-uP;zE7D|@aZR|m2avF^PfeUy^)hgY^xpSDCyTWh8* zT60&w|G$h*TaTwL?9-kQvmQ0mo>{XVezTsUzm^v-{s8|lxc${zL8$-$002ovPDHLk FV1j!9D>wiE diff --git a/src/img/flags/LA.png b/src/img/flags/LA.png deleted file mode 100644 index 44f5e8da70f3749c40b04986daa8ddc036cd3a54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 300 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~dVo)et9yaZIYBiv#GsL(;9T9m zaPRr+kN^MwFJM~uEb!k1pceL$AirRSg#G^&&c6?x!M6`6wARzbF{I+w+v|*6hYWaH zA8v_EpZxCM^Q)aJ0um>D518?j|AXW9t+6Vn&qc4~3OU^zIjd>w(|2pQw!aGscJf`K zu~ca)b7)`?=U?*@#jmC-X7@+u$u{TM7&F|e+4D4-Vb&aH&%WzlPbCG&2ivmT73e#7?Afo4oUnOCQ>M_t*VtKC+#o@bagA!G8yj*=KG15peG>r{SW%8!o$XTnliP k-W<^^pDl8B)8#T&d3o>S+S);~K!-DUy85}Sb4q9e01P60XaE2J diff --git a/src/img/flags/LB.png b/src/img/flags/LB.png deleted file mode 100644 index f506228dd623b8ca7125a65b765a4974ebab7bb7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 448 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`ol8NS0G|+7_X3}{GRnw^p@E@%dpUnQ zzg(Z(=F6LPr|M2UIyG`-Ydd)J;JbJ4%mV9{ z0L^483GxeOPXi%(jEbHvjv*CsZ?8w@9X8-`y{J+qr+!v$)Bm|pUXO@geCy@dBqq2 diff --git a/src/img/flags/LC.png b/src/img/flags/LC.png deleted file mode 100644 index 1b7e53a8594e3465705eba36a8c681936809145e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 719 zcmV;=0xQQ0|7OhpX3YO)%>V!Y|NPMw0002&`Ty+170s#=dD8!8%>S0$|Fh=*o`Vj*zrSu< z3gY$uaL@n!-B1t>0nhLMPeBK%;{Suz|35Sag3Z$)8UxSl@ch>^{`S+)&(E){p)V%{ z{_d#n@9!WWApF!NKQ|PukPkpWKyYwy_5A;g+5b>bP{!>4U|?W?fPmTZ|FO@D-{0Sl zkB|N3d=L;2pWpwy>Hn{o5>S(X!pHqLOpYId;xr|NClD5){6n9({`gqqXYQeAd=uggpV=XvdLzV!=LVL#F2d?8H}KSQi01~D zT12tjz*Eb3Zs4h9l6#P2=pm+#xgX9SY9-VOcZ(TfsX1cRY&nIt(``sWGCiQBp19#@3&Q`Vn=5{?&-M`+pvCBz2EY>Pc=#Ii#arx^$Ae z)NzA`T0$o!;2LgFQXj;g{%bD|N^Ve7|4^zQH8-fJk3Gt$cT{nMihAc#M($2>n-6ty z;ZbJZ0=wozK4O~`wGn;ep(?(UvUjW+4>>E+v~o;`DzhzV+RiG5Lz5|Kn@+NZ3Tf&# zF}2g&g^UX^dSM%-FNCdAW9??yI)1jU=*4#J+Ak_g!$+L`4C(*?002ovPDHLkV1kCD BVqX9N diff --git a/src/img/flags/LI.png b/src/img/flags/LI.png deleted file mode 100644 index 9a69e9a0481ad5bc87cf0262dbadfaeb740e2f16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 575 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAk#>Hwb*SN8&+bJA*X#GqXdL_jWt z0b&2YVGCqz>J)JZ%YSpk`2AT&0kdia$MWa<4Srp=O2|ojv`cUOqM(MRxczJW&hPNN zvPSLHBE_%gEap!S3rNhmf5`RYNz?PomAChaGbpDYohx@>hD?7?)Sk(b3<~i;hZK}V zF=&)01d1~V7%;F3^fy^KnDI04Y6Q3lGca=)XmS^nCmDDbFVvW{9jKbSB*-tAAwl8& z`GoWP_ba@AZ?UD4fq~J&)5S5Q;?~d(JDrjc=H0d1zT&>E0rULmXZ$_JPpeZo^j1mVSDQZD zvTxqGBzMl-^Cx5aohKd9dp47AhpLKuCr?FRVCfX2B~JULN*~Ll_U+P9a9rrNCWPnB z6Nw0o(3vV3?MJ;hHpcrc?E1B(S5Y&d&uK=3$BdvJjeyS16}OqW6N5Z70-8cZF1qC? ziLO1Oa;r;1k&(+Qq4U*DCXe6*t46ijD7GUOY0KofL>{fOeCw39Lua9*am*5CsU!F8 z_RII}wYM))+Vby*RbyQIyp9Pk|6Q2%Lwe^svjw}`iY7G6JW*i(YkwvC*h|Cpk|&ba zTyD9X*t7N4H^1FSvsNbmwVRs!sVc1c+lYE7Ee-E)x8~|295L`WAdMV$l2>)9E&!r5*b%?G2000JbQchC<&+orrARBJm zw*UYE>`6pHRCr$P*UL`hKoCIDgut!p_rs3>GyngckQz zw?~hjPyC?M^C$Ci^PkT^dJ4Jl^j|vicVYUWtuS(2?uYl+^EW6> zCbcQmOePeb4=3Kv-=PthTbu|WnbQGYuRs8{1#$o}zyZ!zAkzblA~zv%RofsiCMZlnC(>_ob(>K8Ten>3y3g+yrvtjlFz?gfXf)i^+JSdV;h()N!NK4$a)lw?i3KZdIh`i;`grQWSeRcR-O` zE1&@Arc#GwA`gxj8Cy;58||dOv^9eX zm$Q1Yl+X=%oAh!;&W@-XlqB6yVY_S3SK1FnAH9z&6qb{B;$n0SP*3}hHTw@*`;UJ8 z!>F>`c)Z)dzS|11*HW|Fnzh&Bx7RBAYkTzQANACqU8(s0y#N3J07*qoM6N<$f)55U AOaK4? diff --git a/src/img/flags/LR.png b/src/img/flags/LR.png deleted file mode 100644 index 8ed6a5a87778ef716b48ceef68a522713a2f2276..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 438 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAjKa)3{Wt9yaZelCM|@7@7P2s$5@ z4`eWCWT2t{|NjHU1xyPSoU7k|`c}}k>a=shqpkbzKY0VxzJAYz>oxrb0WArY3(sGF z9FRS|Vak^Ng?sm(yqP8c(G6%FZ%L3}FvI)(3JLoY&MWLcpYUFNFAIzsIwDyWj*Bjx(+TNbt`Nk-JM?j~O$9>IR*=`&kvz(8`2}UZK7*}p~%=5TB*^OtJi(!e{tn@|3 zzklD9+4;X zo!k{I^;2{&uUsha`h}rc$bi8iSaaJd#`TgnzGo_ASRcKxH9+L%FXks(IIIgLo`K?n N!PC{xWt~$(69Bw8x3mBN diff --git a/src/img/flags/LS.png b/src/img/flags/LS.png deleted file mode 100644 index 051b53ab12ae2f967bac524c3752476ecbd1e7c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 463 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAjKb%0NZt9yYD!&GMmh4}~)!bK8! z_wF4~fu_E3a7wPJwf)|G`~8B$qT-Y6yaJXiTVZ13boJWx^z7V6j~*45SDrj|dd93d z8#Zlma`&=y_H+x5_KQt(@$%C%v$A&c@eGge>7Q8N+-m0Fs#<0Zat3!vkY6xELc;s~ z3i}n#pMURM^Sc}<{KM15F{I+w+e8JdI%M(*QmhRiWN1&yvCeduFLRfBEy7r0O`9Z1@s~Cz72Jx}-hcqN;IdcBe$vA&S z`@-XcOr>HM%Xk9vdpFuLFKOE9Xy{;}VXAOkDYxfY#1*ULn9~fFtt(`hO%i-AFMQWv zD0(8GySR<3cgK~<3lb0gck^v{^RdhO`r=pj+U89ERFjpoeDjol&vP?&-Fa8^vTk=z zOY-ippZAx2{CC0sN;{90SX`|~)rMrS16DjK^g2z8f-HuJ^)Jq4@%pb+d*693 kCT!BXIgVOixBg|k{bdt>&6QJ9z%XF&boFyt=akR{03yQ06aWAK diff --git a/src/img/flags/LT.png b/src/img/flags/LT.png deleted file mode 100644 index 69de64e8b1d24878ff048a9ebe427ae3cbff5979..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~R)9~4t9yaZ-<`q-)pdag$bcX? z7sz19a)C&h>&WT@b#a#j`2{m5>`yqqKSAOA`}a&zvG;(&`JOJ0Ar-gYUO36y5+J~Q z@zMJOCI4RbIn3F)#s7rpfyt?Je&;QAUt}kjmOXJz?)J^@yZ%m!;>a>^y0jpBfnSGF z%83iva~APP8l`AR+6T7rNLKYOD&z`f4vpYSXZ(D^`Z&uB?Y-%TVs%%}*FIOf&EDqG W+S1Mo5?_E;GkCiCxvXaSW-r_4dL^-XjJA%m=UO z-roFk`R)d$59vRQA{b3LlD@@OyB)ey&?DrTI_I2h=641!4v`y*8)qsSatgM~6ul6& z2T>;$s>ngOp_f;h_^vn@R3dg^ea-V%47E$Ymsmvk{=H-HdyReEk~K4HdNd~kZD#Ov L^>bP0l+XkK1d(8G diff --git a/src/img/flags/LV.png b/src/img/flags/LV.png deleted file mode 100644 index 5505550928d029940bde6b23a7473f51aff9f20c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xZ3?!EyURMI7Bm#UwT-^(N<{4O`p?B}z*)M)8 z0#w6R666=mpm2VF!h0#^-^+j^v7RoDAs)w*6C_wm*w1BFG;(_M21qe3IC0>Bgqug; zDhB3YDaQo|9=JsWay3gPx}N08bZH25JscZoDVPv)@j-~mtQvRGrGnu%ghO)$LKy`^ lrwWE@3We|OWBSF!aG~f==~Cv0JwS^XJYD@<);T3K0RTa1LN5RS diff --git a/src/img/flags/LY.png b/src/img/flags/LY.png deleted file mode 100644 index 426e9319db6fa1ab5569d360849efee505172865..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 364 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~Uw}`Dt9yZu@;o;ndd?sWLC9PP zTSPTYO!^IAz2VM>zw*LRWcy-U> zy`CEv?-ac%*`eTZskr!>@TPYOQg1t7F0*LdD5Dd@^iw@Z2caj%x7Bu+C4_A+bd=jSE1H|hC10RrG5eTtsPg{1+dTM zHaYNssdv?4c9V)LdIUS#le^>bP0l+XkK DW{ZlW diff --git a/src/img/flags/MC.png b/src/img/flags/MC.png deleted file mode 100644 index cc71565d444eab87e7b3e3ce0480ab345f5cca2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~dVo)et9yaZIYBiv^bP}L-8nuF zsD-yA$S;^7VgG-H^Y8!fPdKme-jA*EHBchQ)5S5Q;?~;>w|Ng3a5x7tE1u2%U%A@t zF2g6`pL_)=l0A24uV4-OIrEX&nbT#fT3641GHn8Lk|w7Kdr(AB3x}YR%L|(?Dy|&@ zicT%(oOO?9zOW2ncWX0dI3rqq?TC8shk2ZDs<{8&Ie261-e+wdJFi$59|YRV;OXk; Jvd$@?2>^3wWr+X) diff --git a/src/img/flags/MD.png b/src/img/flags/MD.png deleted file mode 100644 index 72ab452b4cd68419d3d24ca460f739431daf6454..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 547 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAk#gaDrqSN8%RwfL<-bXU&>f{?jD z_Wv`!N2YiK84HTMfC`pXc&%BMwWiifDQ)KMRX(pW-9JtAdbq*o`8J>OO`+eHdfOFG zI5pGz=P}>U2YtVv@|#iTQ?)LnXHr1pqM({pA(PvDcXWDhYWBXm)aS^-z?*3vozns? zq{)7Yth4b&rE(PvlU|=-&ba4!+haGJX;{vbdbBT!HivDt3Z0e-d3mW%Ef~J zPR5$dn=@ngLc^kt+4r`eYyQ}Jhu7QrG5^lYVmmkHqR9t6*roV;_@4Y?VLh?!D~l4- zcV@wp3Y(^#3;3?rB(cEQg{Mn#nnc2J?nCQ;G3^YlZQ`mkQ4nD*QE*_Mb(SH{cENUD z=S;2-r!HJ}V#)npzwoLT%iCAU+(#YmIB`$l*woJK+$*x2$My87Qwx&!GC!)kWzyf6 zZo{Rx`~JFvA%_cQPIa37OWA#9NNAAKaU&t;FF&6;Z0mebG(kjZ&0TAyHl-(g3X(1i zaq(Wak5xB+_*@>yKJk0K?yChSq)!QzO*$i;)HO4E&ovg0w};l5Ic4ygW+hL%_F%bb eS6uGG3+6Xo9M0-Ezk?eXvJ9TCelF{r5}E*B-t)Ks diff --git a/src/img/flags/ME.png b/src/img/flags/ME.png deleted file mode 100644 index ed5d0c41982323dba9e1d4aebdb4377fb724032c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 634 zcmV-=0)_pFP)~l!)he^n@V7jbj_oYi*kvrD8Tj*a$#x+l8hJnJiM!2#?aF{);rfOM$hMu2p z(K1OzT#3p_Q1Ql6oR)6WuUprIQ@EmJ z>)CI1IGLSew*fmJvakVJplgLz$hIl9b{-VulEHZ5n-sKAV1mj4pGC57!8zR9KllzoyY+|10?{m zv;aXml+Xm=p4nW;j)^eg9gW0LU816az3+ zJ@nN8P>Tj~1Oq(3oZ$5GJUS}KMrTvx$8qdC{wz(_KvEkK>3DcL9-khf6S@16R8Sz; z0`T|Dw*cV$NmRf2STeFs0{FYipuePc!YLvGixcBF53N3d)MtV2M$=wp0FsIjc3hnPR(7n4+Qu|Toi4~Inp4;{^pFe>M4F(q)(<|5fSkzyIFmqX zuI}#ckEqc9|NpST-Q|lEw|XvXUs%7*y{E=hV|gS_A7^6<-<(AMFobvEDQ=;NK8~|^0Q$*PH|a$wUw&OhMvap!GVctM_gH89#5X| z*S7E6#At}S@8Z%*aj*228t&-ecay;_TBOsoj^vgx=3no20000CbW%=J0PpW$ARx!T zV9(F*q-9`=0006PNkl=JNNQkD+ijZoEmJn^ijE1BRib^PI;N*lm<0W&f~{&QP8z1`Fv7@$7txg>-~`<5mFOIspIX z0Qt!P_qzc6*Z}U30P&sx=4AlufdJr009!B`$^ZZW3UpFVQveVk&%a<`zwggU^ndIC z00GBIL_t(|UhUV}ZtE}%1W>n4x(un^Tk`)OdLuXn4aK~uQKAn;<|PjU93+ZON!{Pg zGtaz#I^69cJ;a)n`spaR(4SEA+T>>oy z=}zrVU3ad9FRFB1imU1rUyE~hLJg0a0Nt}^!0FpKD8Q@41>t`>kd<;UEcstm53eeN#>?Vqdm0p=s5>AmOmvfib z^p55f_6F_#unlP@*RQQW;$0|tdCw$_B|gzb1cCNbZeBp#77^hl6agAYPXKKTLXgf5 zvi@n-i*5M#n>~xKa9p79*@lq>~>d(`jzO%mzp=TYnIi;&+01rXY?Og zfv$_Y+(dh|r1o@mXuauNW!AB(p<~slj#VO^tK-}mYZ)0d_a2CGu(=ckw2r~k)z4*} HQ$iB}5NlEs diff --git a/src/img/flags/MM.png b/src/img/flags/MM.png deleted file mode 100644 index d4b642c32775e04e9ee1f718b70acd8dd1abddc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 604 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAk#gaDrqSN8&+R~nW;^zSqyG702D zME?K(4`G;WGIHE*|Ju~G;e7pp=lg%`Ir#tU`G1cJ{#{c1RN4IL*QfNOsUNe;|9$%W zecje)U!O)Di1@Z}#jKk%m)%{u`O&80Q$;sF-aPZ>%&(K@dav}n3yAyNHsQ~cXJ4nx z`F;JC?;fA`aoKO3gZ2irJ^{LoyCldjnBjcF`~3+D`xVZ=XV_Erl7WG-z|+Msq~g}w z$+wG|3`AVFYbdd?xCR{f{rB3p|Nqxbz40=H_j$snCmZffYB!Da z)w<=Kw>52i{bxVB`lO1jfbq6*6Yue!6OHK{eHxxTosVuz$gnU`_Gltu1?DTTKVXg=Pu&|RRTX@R>#*RP-}*Ts03WH@xaFp86gU{`6?C=N01UoJ1F zT=NO`i`uZrW_3fQ`|HA)X?vc)!b_9olZxZL%h-mJF!pYz#g^UToy?gu|z++6e4 zdD-LL(SDu$p64Xf?;V(Fd~Q#par&G}=D=flAl$rOMacYFaiQ|3sViI;PIxl&efrJ` zE&3g9ixR}euFZ|cNvP}M&&B^$lwES1rmlD@y^!^E&j}_eH5*=rx9j#TzkTfLl?!(M(n713 gmYx>_2Hv#%O*8k#UfkyX0~jR?p00i_>zopr07NM-z5oCK diff --git a/src/img/flags/MN.png b/src/img/flags/MN.png deleted file mode 100644 index 7f2225c80b3d18b0487cea9cd26dc25298dd71cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 504 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 diff --git a/src/img/flags/MS.png b/src/img/flags/MS.png deleted file mode 100644 index fd6b759a34e18fe8702300352500e8736981336b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 838 zcmV-M1G)T(P)vZh?(XjH?f@ix?by-o?(Ux*B6zY><>BSe8!O5!lD?Ik8HM6adh<B`nQg%llVr)^>z=_>hdVXqF_jNuDio0G7Tj9Q6ZGl+T$_kvF4Rsx8mTFnMLlD z-Lg-idKRiX6_;PdrzjN)l50myml=mqR)9 z`$$^Q!;y4ezl65i8$n^1hJ-hA!0>mj0`ae{t9&A2nlNl7ldu(T(@-#^&$;6*e(onnmant8xgo4I!&l#x@L|S2-fTKY5k7d-*!K zYO^O3el%x~T9Eju?WLjGqFRkh3UqjE#mOB0hhgDr_N`Ulh&qwjh_d(9??}v>g%(K~ z^4TtvuYZtys0vTUqW)oz znph8Nhz%Y`_x6m;!D(nhc+(WpxL5JHqYL3i#}ch!qruUIpiPIbuh-cCAR(O^gJyF8 z(H5|5C8xG diff --git a/src/img/flags/MT.png b/src/img/flags/MT.png deleted file mode 100644 index 9265b06e1a9ffe8f7f8cbafeb22d730a06ed7ac6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 467 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAk#v;dzFSN8&+cQ9~XL>q!20&q5v zaksePx_8W(Yj9$SVCM~b~$^XIByXo<&*&)AfpV=Py{lt}5 zQOXMOi!0x6F%dJ$oiOj+^2=XK|FO?(69}@u_V(wl|1CYjU2L12E;~Gve8tZo#k283 zh7Dte)of*jA93AJS8czSbA7jM&F*@qyK-A>W&EFe^S@fO;A?3mw-b{_lwSXKQAQE< z?IyQvoI0lOjXoZ@W#@u8Gn4b>w)ge)H`qU^VZ5;DO2muIju4(h{y7Y_J&J7-NgY5U y$Yg@(B(|c06^ac~Q;zFwYL>qnIOVa{4cYp`4w4?H?t1~f%HZkh=d#Wzp$P!`Q0@r; diff --git a/src/img/flags/MU.png b/src/img/flags/MU.png deleted file mode 100644 index b48e01b4bbe096bd635f555a0f0b5bc93e3c834a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 251 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~Zh%jSt9yaZD-BDArGXF<$bhin zf>H{(|F1GY1Opa3)&Vtgmjw9*GbAJ^D4gHF|NQ&+dFQX#0fmb^T^vIyZoR$G$$7wl z$2st+pZE9h+EcSz?#4=yI0!U7lzez$SG#li`(E`8KZUQ5F5xaqkw+H=gn< a*L?D)%^$_KytoUrox#)9&t;ucLK6TL&|CBX diff --git a/src/img/flags/MV.png b/src/img/flags/MV.png deleted file mode 100644 index c666d7ae6dbe4db6c7c35575abf8dd5625c22239..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 317 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~eSlAht9yaZB>@v;^#A{VAh%)v z-2L~@3ADK})L9u!i+}(9bHTO=0m~{9*0rp^e(?VLX9|76^UrThy!!bi&?vT&AirRS z{qGYL&M#T|b0$z^xu=U`NJZS+>D`=%4R~1J?x@@J+5h(6bY0%q1uql?N| z(svBlWO?H0^2(6nAo=C#2Ihyahwv^~7Q(Y|Ne+jl1T!x}8kkxxZf>e?@F% z@4HLKoTJhfZ2A83W4D>7^u;&JuXL_FJE_cRi&vH4BDKszE-{%kn}2@%%s(k!urBkb z@gaG$e^=U09CTeIkSJfK;}o!vtvfR0!{S9Raygs$qvImdKI;Vst E0EbbDcK`qY diff --git a/src/img/flags/MW.png b/src/img/flags/MW.png deleted file mode 100644 index e58fe389c8d5f7b2b40532f4fc40310decd102d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 468 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAjKcz{oct9yZuh=@q}rceliuz@6; zaaYd;CWWLP*09*FX?;Z7u2orol8RA|yk@YB@;o)uN=2OuI*##j zYBytVZ3J4uT@vIM%y2&8{r>$53JK@mm*p-|WME)a^mK6yskrs_!pXct4g#(hk2x4v zY+se`|L1?Xnp;lOC7~02A`AC*N6FbvU3vB1_HQS;`rgj9d>e7|T}iRtl+7yVEhY&~ zE1K@A^}g_l$NQOTHHZ4A+?Ko?Vy+sPE&i*ekoj= zW|yb&WbuxMFA;N`U&rJLKWg(pK)>aO zkji5AZoN}`SFD(@x0-QQlY!5KUGl0gs#E67YrEpk{p8(3o*e>h>58H;mr~CsbIulh zGx>td`i8RoOB#;tWLTS3z2f!?uFw@uqN^_4cb+dDx{&Ly{)-L0#Rg~10+P>EazD@M y`FUe~`8WBriRV^-*Ettd9P#z}u`5~mx5cMbuDin-W4##|h76vrelF{r5}E*Ezr(Wt diff --git a/src/img/flags/MX.png b/src/img/flags/MX.png deleted file mode 100644 index 61775bf729950d76052a32fb67a1f3b12b5cbbff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 737 zcmV<70v`Q|P)O%GknYmqmA^T%f&$y5i~U#JNs&q)x|rW1Y)>VU!Ag9tU3Rbp}LDN56<57mAABXu1nblioVkJALy zKkIaxfzCTlGf@A3fm$d^VY?YrRb0FUN-2Wp`qr^+{7W_@$lJ%&bH2yFqSg26r~wy3 z`g8TePUtz81qs-+xvX9qdJIUBOcBwYTOH*xAT2T-(HQYDv|-K2XgLP_`mP?&EJ$Zk z3Ctg%dAwmmsWgT(-1;Rd>_x>a2zEqj{i}ZbgPVEGf@U*&81?c>4hwhaGa#ZAo|Low z-ksM2j|*2y1|%#*be97tCKK29T?ir;gghf6X(DrfZ%Bd#m0uSCJTa!HB#`XX$xzap z;-Ng!LKB(D1E#&?WGK%_0L$xd;q4?i5Zx{Tk(K$$5HeE0C=A0O2qYawBY27w=QBby zeS%hpARIvx2?hkMwn=?!!6dp~Cgo0p10mUx5~veK^%C$PToKWDkqeP7N+Mc-3qfR5 zZY{Cyttk`WLqMMNb{3jm&Hlkpb_=yoV}IBiTOpcSY8qR!np*stT1DS&ZEe2+7GyBV TGow*&00000NkvXXu0mjfWn5i9 diff --git a/src/img/flags/MY.png b/src/img/flags/MY.png deleted file mode 100644 index 108dd99dac544566989613dd8a5271b84610de25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 513 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 diff --git a/src/img/flags/NI.png b/src/img/flags/NI.png deleted file mode 100644 index 3f14038212ea40e8660dee0442de44414975d5a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 595 zcmV-Z0<8UsP)Pao?&|C0;pNaKU$xBFowCJX(%rA(E!Fb)!yzlC*cD%~Gf3 zSfu{2T#-BI zUq|kJNua}nmz>6EuD6`Z+=9U7i))>2ok*yCado@!vkOe&00006bW%=J03h$b&tUGU zY7YPa0X#`WK~#8N?U%QXgfJ9EnE{?7IZw=CbI$4i|7x){T1|&!yI3Kgf@_*nJwLck zf3aA6H_*WKkD7rOXyOf|XBcQR6ece)faf@VUS3LUlUt zy3UK^yP7B^B9`CJPxni4BB`1Pkcipm>)}w|RpN|5NkpV*yC0pMjrLn9BI=@S{q{3@ z|JZCwbrDP`Empg6Gk%E|i|d3^rasx(?(u8fG`I8lRi-}Kz^j{!KQ4>uR8hnrIX@xM zxNC%+Xk(^(X(c?unrnoJBsyzE0yssKPExG5*d!nZsFQwvj;zRvjQy}1s}QD2jj@_# hs`#0zqP@jp`2_%ow5S8#*vS9@002ovPDHLkV1lFbzhH**3i}oIC!9}s|9-hq{RW_Lo~MgrNX4zU7f$jXF%V!rculu@ z&(Gz%8<;+%|1gSRG~r147Q5NiX?DRCQP0)$&dFw$vxaf#%uqDURJ_O`*e+A_Lew5a zomi+M2jMzjmdx?Za1Jcty0E_H`74IKOTL#_eDnCb$ME+W`}HboW~QIje+aah!PC{x JWt~$(69C4^S>XTx diff --git a/src/img/flags/NO.png b/src/img/flags/NO.png deleted file mode 100644 index d75873518c27fc918e2579bae4acf4ee0d40d5fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 229 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xZ3?!EyURMI7qyv0HT-^(N-fQckAqI_%ckkXE z@c)&t(c+xEL1~cX47HpN~UU z%cT$6Uco5|2|UV6G(sC1HG3y4GGS#iKhzZ@afUu%lmyl4mkfk0mU#+-aa5Km`Do$ej*24?5p25@A K&t;ucLK6VYR!q78 diff --git a/src/img/flags/NP.png b/src/img/flags/NP.png deleted file mode 100644 index 48acf5f2b79b0d62dfa4c2ffd5eb6432a9df9fad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 631 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAk#(&t zx?|b*@AbR1kMFX(DIs8a$94aLx9!ZFPtM-Y$kFMsaXe!jFW}GYFQD$Nf5F`NKAW6^ z)ji|&%KQQsnT`Ex9JW-a@QKSQoZ21esnh-|aJ2)^*TvV06T4}&a^vDND-H=O4>KoX~Gf#6-^dT7E>Y4 z0MF9z^Qs$C_*ZVJUXjmyQm9Jv%E~1E%ttI!U&VM%NMc{%Rjsi$M#aJRqO+^>e`|+L zI~A*6%+-7PeL|b_+sIqno@hM$KHEu@jY}okBlzxKKcNMypY~6PQH+_nQKU(wRl!ry pLx@9&e{w~@Mv0~`>Qd6b*_XWytMk}?)(aR_44$rjF6*2UngF>~5nuoS diff --git a/src/img/flags/NR.png b/src/img/flags/NR.png deleted file mode 100644 index 1748da9caba2fde66f6de0c7fc04b5d0cae67b69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 375 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`ol8NS0G|+7_W~aV?RqqH{`zx+;OPPu z?f?J(fB)%w|DxjxZv6qd%N-Kt-+%gk{)Y1nQ}?gmd%d7z`~Fk+6ROw$KPGo>s^V&( znQSFNe!&dq-|tUQkj}fk9Vl|c)5S5QBJS<==&mCQ0eRDDM+i&4f0tud(t{tYSEhjh~*NM+sC<#Qr zIE$VNwCRf#WwU+Z%_w=1xq|=3WWG?t%GowMCP?k--o0ayrm)th55ZFpwJbQw9%!&I zthT~b=}P(kP34a=qQ5T8yK>Q|Mj+YA_teAXi#r4t_9qn=>aV-tx9?5T?u^Qd%Adky zL{FWMVz!$*_us)c@%0mX1T1q}JEF15!)NRjD=Kj_BEm7>J#;o`%{*`KIi(=|ikl$&ULuCu(- z(kCtLmqO7fH+qb?5mj3ge05Lx$`b^P z{dhlxDVpLQilQ)#w5a!RCxqy7q#;k?v)@WB;~lQJ;|PgXD-z}XdPj)cI{BCCq{w3m zv5V}#X65}{ofb(gvSpBHFd&gFS1BhE|3I287Fqf+T38g%0OoUmS#gmt49p`1c$M-M zAhlt_T{JYN`93~3o?$`JYAZKu5<%O9+d$#SlQj&Qyt z4F^$`c24eTG@DU7lyay=CR07NyAC4ScA}@Y9{zUJ5@Vh0$f-s4dmgT%2>I(e()l`x zrZi=fe_xOs**S=$BmZAiib_!_Dn+HpyNt(U{$)fyW5Fdn0b{HZp6>}Oj7(?e6p)AT h&pL6>XP=gml0SDX1w&Ij)k6RP002ovPDHLkV1hj$daM8d diff --git a/src/img/flags/NZ.png b/src/img/flags/NZ.png deleted file mode 100644 index 0d193b32693b422f1be3a769d7cfbfcc298ca39a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 749 zcmV};E|Z$ zg^fH{nXQwphL*kJpQX;o)C)!kP5=M^40KXXQvknU@6YcbV80;G&-I@rI{*Ly-$_J4 zRCr$P)n{)TF${oV-TCS+Qqpbjy)yS``~QDfMLDQ)W?~nRJ_YxF4gAOoNLhT|+SG3{D-j}o{VyzyRA+CY?6xxGSek}#s#rt->-q^1D`|3& znhs`&^8xv5I9Vi!b02b$!>5V^S|3Ula@TN>yDsoxwPKKLCT6 zIi2~@&(Z$-@*U&Ql3v;J;~z*n2yDkV1c7Ry7V@u!cuEC=dc8oP6fakWjFZXg77_VRKT0_qh2MehKLAV`sj!$7eRNeCwqLUcR+PNyqKN_?G!94d}{ fm?##Xwzjsv{sG0)7FjO>00000NkvXXu0mjf7<_Ea diff --git a/src/img/flags/OM.png b/src/img/flags/OM.png deleted file mode 100644 index 41176aa0de96597554b89c6729af44459c734a74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 409 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAjKT7XZ8t9yaZyLayx8W@1+wwN@8 z1Tr89A_XKN0HO@Y2FgBdYJIt5=i7%5AEjqKpF97>>NR%_P4B2^JT5JN;1lpLD)!lg zNpCJ+xo_|M>e#XSAsascZ4@X8@(X6zpKyNv{`cn-6ciNBC%k{}e1v%#Q0|hai(^Q| zt+&@b`3@QIv_2H!(lxFtyj1z%-}DwYj|~aVF`OYk?GLD*-koleyYs2$y+!)oe*S6G z87~IB*uj5JEU4q$DLLEwj#&GMP2ycoi7{2-aKA-BwsH~?4X%wqX9$!8`2{n)-@pI7Lc)H9 zg!2jK72dyJx8Uj>pxiG{7srr_xVM*YW*v6mX-z!3Q9V04(`^0C>)-1S8JRv=Ccxw_ zt~&QWquqoD7k*DWJ=1C4G5^_m8Edp$1v)A%{}-w?IsKWrB&eWcx{I5MLR`Q?W?#<| zg@3%2>sd^Dg+i`dP1t_z@P%u3x11)Fv`@4wd6D^7({j1o|G>!$+zM7~o8G;)aK+~B z`}W`DYddGh_>afo#5JQSiocycIsIopHKEumfWs@G$7(`ynZcHa?$R8S%IuAPi`nK{ zs6DrMV9&+L)#N+T%7a8C8W+kbyD(yamVJ6#VDF!6I$UXgZAETJ-_anwE0y)4?VDNPHb6Mw<&;$TS%-A0Q diff --git a/src/img/flags/PE.png b/src/img/flags/PE.png deleted file mode 100644 index f7e54091a983cf3aa729716de2ce7529ca701a05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xZ3?!EyURMI7Bm#UwT-^(NZVD(Pqj&G#0lAW9 zQDVUym`a^W8 zw4s4Pt8h@rssjgN{5%48GB#Tzy0-GXYZ0AlFhw{l#BNna$i)?l0$mq(v8`8H#8tg$ s74IS~g+;537HPRYT6I0pA)bNZue3qY`EYz!o1^K#yYEQjV zHS^V}|D6%}yJYsgcK)It@!`t)wpQ}mx7J8l@0MHcdo${zh2VE}=T{u&&(zw0iOh_W zeKR_aP*rp#EQUfzWeXFv!rG>{)k12qHD0TZ8YRQc-@mcOse6CVQ)bdBJeaJ|2tJ)9 zRHwi&N>p^T7D=LBfV)dlm(kedZHvIKnY4SB#)+ZJUVvqy00007bW%=J0ARoWAkXhr zm=3-G00E6jL_t(|0qoEPlEfeoh2fdJu_zsA;_ml9;b!CjTZEF8A1VKk(|^CW|IQ8$ zE1?(`6GJw-F>a6Bm>cAbk=Z;^N}O z#Kgi8C7==_P7@j{6c(!zBSRAzh!P)h6CGL;8@9H#gWin60000FbW%=J0KXt0V9y}W zV88Fb&+qT{(Ru{{00MtWL_t(|UhUV{a@#Nv1yIV7W7#RF?7geIrc@D;qBPNW+#rYi`ZV65Qs+B}eEl}cacPqfgGTOo22hGamABxwEu_s@vG3OiGPHVdcpe57B<$PeYvVp4J8VfUV61RiG zVq;4|vt$6;vK@<+8sBNvZ~u6cdtNwHk-#T$j?~x;yT1!0PEG6_p*8jnJI;aSRA3NZ zW6PCZd#GJo{uA<#snZ%~?V;wjc?xY+r+PwbEK(Q>?r(VlE!Qd(vn5_*0p-|GFIAwj z4A{0TJ7&)y&sdEi9?b+bkD-7;BGP5oIC)F-)wu9vmeR}-G*L#28pl^pxH6mm8oPA} z$J(N5MYe3MK*4W+AC0*>L#{%*hy=$!ED5Pf&Cy@unieVqMO_jsdW{nyxou$;S)ycD zW7CqB=^&6F1U>?(HO8QL&EkIz|Ak#>l(o|KFY)Gxc5DGh{NP#@ELD7}~`o3I+hY#tZnUnHZ?? zC46Rmm@2IvZY~UvCa>uV9LRh&g_+HbSDSOr`2&tICV|^P<%<9S002ovPDHLkV1lhd Bmr(!! diff --git a/src/img/flags/PH.png b/src/img/flags/PH.png deleted file mode 100644 index a0adbef2cffe9854792041e59921df4c4c04d1d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 751 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAk#x&WULSN8&+bAoEfh{0k71ieEA z5W(`vr-6#^6xBW3zUR$@N0)T%uUPrKIC}D4L)Qg){``3E$Ct0@yzhH*_=ietNoKM)V zkZ^wg`}Yb8omVEaGcYjT_jGX#skrra+FQTd0Xz=+0U7McYnl(vc>8;%_bjHRiEm#2 zjnCOuvejqutknzjL|>*nU?Z;j$@v?9)QKYR2f@Z`zX3cGpsYqu`rPqJdJ z*b#0nS7K^p1Uilg(tEwd3bk(ghbB*0{Lg~l91POVGfXG7})VIG@1{=$yO_NPc>m^+7rUQw9H-K=4ul#`NhyUn+A zRku)J*}M<(CwBWxaWIm;{(0G!MPi0|ktLP8*BDwwbw&C;zq&ki?#0yN;O7rM75gfM z$p61SDR}WWr)hJn7SBJiVXoC;`L`2-)1UMdoMS1IGdnr+P+zdN<>ecNe=OaVnHDL! zt9q?`qTxDq&aM@$jk8}rUF|xXW2OE){mHz|D~ctYm!HsF)F-g<>eDF~W!U12rYy=W zvVFc{g8a9znaVOVE^m@mHBLUa#q!WX!)JFbpKDlJnVtE#aF@Hyp*Id&pU(uw(b-Sz YhMqePE;A_40Hy;5Pgg&ebxsLQ0C5a(kN^Mx diff --git a/src/img/flags/PK.png b/src/img/flags/PK.png deleted file mode 100644 index 311ca9a14a7b92f04e279f44b535c41bd94f3664..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 521 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAjKcz{oct9yYDgB!y;FaR>(Y@h&y z`~Uxcfgk}OJE1$FV0wWqBkd4==)_rI6UTJnd1ficX}#WAEJ?(OxPdCdj_Z5Nm1 z&RX)n=R2#%{r{G;gIWrngh_1((R{S~(JPK@YQEA7i&b>4k3 zvs!;Qtiyia(&Fv1k1p5N?-CP`=bvtN;p>I1jXPwwI3N3Y{%57_6egpyD^6)Eo@$8N z6tFnGMd0hw!<-(+cpFm%A{C|^B{1Ge5%_w*fprN(&kl}L8scelj?S3q$k`BUA)?Oi z$i~VruRAYGLRG(!=h@V$yG}7iF=R4$^iTMG^QB6Ilk6rH+nXz#q6(!uDrA@JoF(&V zt%CP$MQg8Bd>V`*|0+~JEn@!pThCSZugk0M%LYsxwgL7`QQt0ZIvBD<)mhL$sY7!(&XjOOZ5Kwe#Ip^#j)WRXC z4jg!gB%TrokoSvW|G(E}y0O@oq2W5y1m&?nbJ)C_n^Q}Pz2M8J-8qpXDPCggA z-Sv&Ay06#q@sv29(Cl!(<6gMmiOK3Sr_>vr&q}b`zQ(#+0000qbW%=J0AR)c|NsBT zU?9)`&;S4b|NsC0|NsC0|NsC0|NsC0|NsC0|NsC0|NsC0|NsC0|NsB}X!3?+000Ee zNklj?|ULN78Hxukp8{pBcc}DOA!(Rbk3ut5IunFJak0t;hDd_ z6}~?`J&CAn-{lSuc(xJ?3qeBZxq?^Gf3E;1T{58vdWmXap(`G0q8>giLd=m1B$F2=&h#YE8 zY;A}wsy-%W2g---?a&uY7#1*hF-f~)A=PlQ;9#}C{v zpq}B38jGlS-uY;g4vb~RJ8nb-$do-;7LmMs>u*G#djO-JUgVmXXCaZKHi}^yC)wsj z)@6RkEXfPSow1?nBUaHOZ)GjIRYdCuieZ7|pdg*KQayo)wj%iNzv3weIZtJK5IN{r z>DAeuqxT`APWE1Yx-JsbgUG|ciaATvX+H>>XxqnG>ND;om}B3Mizu_Flse#xNKYOr z6j8sm=@!xSG9nDn2YgfHh$uQx(fVU6kGCI3)s0sXWG;l)McA`oRV0-bj=E0UohY;k zj;usTDl!^b6V3H~Ti2%C0VqJDb#34itYnzo@B+4|c0MuBX z!_W=GtsdL98!nfj>1=las0V2r>-Qsm3h-=gOEg*Zw^Q5M!8X&>*l|2FO?aM(sIm6U zoD)+n<{iy-Z87SCIp&F|5q4g<=_Xd8sS#2oIe!qU)HdvcC!Q!)o=BVtLX<)Md@s@w z^Bt%}YOo%MF60DE#8Zh#KHrFf!RtaE^5;$!r}9d?yvSg zIqDN@;sgh!YzWG{l5^~^HG#kl^oAw9+K+bPts|<2BF=2fg&H4TZ-^gz`|q3mF*tHn z656IWD$21ko>50C^td}AFw%_Ze?3%G#hmu?%E9*b3i_wRubiU)1Hvi#W#c=(<2R3e9up=$rEUNK002ovPDHLk FV1l3k1#jbhDjow>^oLIh(g*XL_vDHACg$<>8c@ z>eSZg#>oJUX+U3`r@q0Lqr$|=*X6UfZGc9irY)e&C_b!Nyucq{oUX{zN#EHO-hYF2 zjJerbWgM1-(I_{wywcS}P=%DZOQlO-aZcadq3YvnR$pt@0000BbW%=J0ATOW?;yX& zU?9(1HxoYq00OQ_L_t(|UhS7>Z`&{shNZNr+8#;my}b8!=4ku>|5fi~D~gciQbvFV zem+nz2tIsyw9c^dc{y?7`!_K*I3a{yAOzoGjC*&w-sW$hse8?jFFhfIIebYpG`lyt ze%0Y`qMa9>ulmhYAeYZYmz^uUnB{MCMy8*;J<&7?>Y`vWr76nG-$7FpbzcPv)oDEy zwag1tb_Fu#@1ZIh7NSEdE(B7EjN5)&*YEn|$MU@&iN_7(Mj}Qevf#;klM(!t=B}w+cr7$6`{enFV|HfGWV&!^bdb&gUREf zr)@-(E#T!gVvL6^qb6zzq)RKzdSjzd)FbbDRbz8!Ha%MRt;uL~j{?u#i;A6lMQeWE zYAF;=bxThMjL~y!BBXa1a|)GGZhO^vsreUSakdn}UKAtR)ew*g?G8%Aug(j&)hQl7RhtS7Ne|(gB>1r+^BH{%Aq={)>K*SseYbz&m=dexI zmbJNTCF|=!>`97jfNgGB)*5ik7tR2WCnXB~nRkt%&BDh4wyqbYw#=;!7-J|(d=}=` zI)^L+$fRy9j!3jg*%BiKa{!RNHCP5#5@N7LZUru^Y`J2)GhAx&Waz#mvth?Yh?;L;+VWghb*h{C03Z?gs> z8)oqWYZN+m2(w0_Id@V>sjr2+fyi}T&OH{B)2@jcaeR?>9FL}`#}TQ@aUyAoqMV;K s*3jQ9GBwVmk%v$lsWesjw46Bc7yfbMWsu0}#sB~S07*qoM6N<$f}GsMJpcdz diff --git a/src/img/flags/PR.png b/src/img/flags/PR.png deleted file mode 100644 index 867df29d2089ca48e21c47a6ea6551bb70c00f89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 570 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAk#(g2?jSN8&+SKN~Pp>KdB8UrW@ zLI3~%zjXh%Zq_@S(hqV8Z!6}1`S9i6()~XkzWS@>b4fP-jb+iBI|6DCp1hL{xW7y( z`ta3XK%;66ntN8iEu8VTOS|;a?RV3*e&2HHXH?gxgOZN*i{839Z{IBEw_@MhV7pbb zw!TfYoO|TrJ0LhOV(ec1*24WrzUc(*j5ndJZ?~OzCm$$$73g5@k|4iehW+o~D<~wK zPuPE+@0d(20|TR_r;B4qMcmu#$MX&w2)G7nx_W(TTas1y{^j1k|Cg(paNM|dZcZde z+dHq-%mHRA6AN~I{p$L#B~ZfhnbAChZvAcNZU!HodTwnA^A!FVO}-}W8_Qxexz=rb z`*|*VD`U)ILH|t?UN04F3b@DRc)*G4(D4UnH;c8r3glpV79{X0T#@6d4+m2no0Gu4 z`c{PpeXN;pR!!&0=-Im}J^#c6#s}Mb`4@<;EeNQ5%`O_U;OZ52BbSs5ul8ATojU$s zQ%UQMbKl;!#mNg)md92$HSg<-x}{d^vyIV0V2jf1OAI#CpA`wbPQAS)de*ale>5*f zt?vwaCm)nL&BOTU9i=GA8$Fly_|8^Y+g_zvwc%s`EkD_RSJy<#pQsdX)HQVUE>*Fop1Gh%}@7tePRQb z3@Z?U01!X`0R#|08bAQq0ThPe6xTVIM67eJDfxgDrk?A%OCp{c)Jp@pRjE@w*Y~x4 zGpQF=5s<>~ailoVb(d%dy*APH zfuv9;y>^kFTpY-3w%-6CtIb}EtjPgnOb#Gpasb(r1IU_Ozn~UCR?GcH09ozwS{0fc zK=GR?Iyr#s$pK{baL{!5^5T_z`}VE0_J4u2J9T==`(x(;vU;|3H9%JPdyJOPx9$UE zP44ZU!vOuks~6vV_hljdT+^iPVL8r)dr?hb&s!^~`M@3sPx95tFik&gH{d*|}YOQc>-k0!_(vb7AE0)=`FuHzn&}mVFI6#3vQ? zu4f$%#iSB_chyS(Y5Dh4_UA_#NNHHCwE?Q9?d2q1s}0tg_00HPo6 W)Xf7%B%jv+0000IHW&qVI9sp(l)hiwVW&i+Y0RPNQ)hiwVW&r%cO7F%<^`t@NXE49B zI^9VpfSD%{Yz0t;7~)+m?~ptE^6}5PKj2d;V2m9wc@FA)HrhWVf||_$Gnx0UMA$VU zpQbSHu&dfeI_GgSaFZhPnm!Iv0n+b%}GQ-RCr$P*T;_AFcgMSPvXo> z@?Tc<=H8~KzW=M`Qnq14K>*R>YNBsp?hasyVwt?(#>PI~iGM^ry1zLwpQl0$fVkTa zt@A|;h3KP`reZimxBPrW2#9VbcVVFWi3kJH{|Gg)MVp>Q1E9LZC9KSq(4z&QHZ?et zO8|O)4U{UtrVN5(Ak%=%{Gl392OiH5x0itNg;Jnw#2?VwtN>(w(4#_`2g_adSS^`yif#4BcXklTF(CbMY}Ci z#dddI*5urK@pnB(bSipATjswV9m^}?svO76bsOZP-SN3$F`feK=`wh=4(w!?I&I14d002ovPDHLkV1hl=JDval diff --git a/src/img/flags/PW.png b/src/img/flags/PW.png deleted file mode 100644 index 8a7aea6a9df2eef734f55aec06908663ac58c553..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 359 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~O@L2`t9yZu*V=1nsBeGU?lS>* zuWJ0i$ME8Y^s)2Kp&L#vJ(m6DHgDqQ-OYO@=WJVd>5^IX&YNaHbJ$CQ{DK)0_WxHn z|2}jE-#(zwWltB!kP61P*I75U7zngH++o7^-Trm)^pzgd-yAA$kXM&1-LEH}o5Q~N zs`m3-_4jdB2g|t6tLAg=3Az=Ok!qp1Sm&gqvtg=@^f8OA?aL|;if88X)U4Pd^pZ&32KG%U5v#dXK@=)z4*}Q$iB};18Q@ diff --git a/src/img/flags/PY.png b/src/img/flags/PY.png deleted file mode 100644 index 8bc9da32bd50cf8515f60ab55c57eb41238b666e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 590 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAk#-T~F=@zLqYGv}6X=z2vnM+fq&z!n{@si^k zF5J7iz$OT0Qub=$0MWh$#5$=*8zhDN1^Y8a3C?xDZ|Gw0~T8n{!(bUt$F{I+w+biKk z%?1JuiIURIYd5TDcyV;^G1a~I|3@(T`yI$KlI#DcZd-epNju5tZeHJO#iF_P%hD@P zthsmeW%Y|+Yf~zvHgOc%=vp4R%DnT) z4~+aHf+uU zh^Vv@qlKGwQYYS*txEd->Uo8o{A;gGnoLn<0lxm~yYy9~f6cgf?`pYqRM;Z7#~Ws) zt+F~}ceQL6Q{Rt2{a>Cg4q0_e_XRV{40)l9KYxCS9T!RIh@R*W!^eG+wJbAPz%VIO z@H&Um+6!}+@uVzx-NaTkhjHUq2Qx)w*>fENMlz4*ew?u7631VgwU^WQ1K!_MQ@ecj a8~2q7J2+3vZN3Z)R|Zd4KbLh*2~7Ytcoii8 diff --git a/src/img/flags/QA.png b/src/img/flags/QA.png deleted file mode 100644 index 363099051c3178f31dd42739138bfaf234ad74cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAjKNPtg>t9yaZJ0#F6Z42Z9NjO>^ zTk_)J`2{naPk6t7zk))-`S)eHOB8{^KRsO>Ln`9lPG{#jY#`!1*W~4=6Z7`| zxApdR3^0=Ua!_CmvrSIzmv*c5ixyov^Edm=>gmfr{pK(By|d^{OoaWF$KRgD+}U+2 z@spyh{gRaC%V%95e^*<2Db$N|_P5gTn?|hhpMuxj+2nKcwzJCCmlN_l1g>OpPSE5& zy+31(HeQjka5L9-qC!gxNVI7eBcGrG zOAD)_f(=Kpkqt*YceYu4-KOl%f)AZfZx`IRu{D2d#y`hnf`URxDecip0uwfLi|zmQ zQBg3u|EO5mMq#H{D+H}KFX6La8T@5SS63DDeFJN=O?Pr^fPui^>FVdQ&MBb@0CHEn A(EtDd diff --git a/src/img/flags/RE.png b/src/img/flags/RE.png deleted file mode 100644 index 8010d88dd741ba12a0ef8739bcca9176ca5a2095..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 864 zcmV-m1E2hfP)>y2f-?PSG^7RlvaPQgTF!BZvKw$5`&rpo1k8_r>6^iEGN z|Nn8p_HYz%!2`P-?#>9VWTOWsPW)dk?prrP(Ym?60L{%vq|?Ji(^QOZl;=^b=~@@L zEa%R0C(Do0G!lxWb--kmxvGg!i~ycQ56c{1^|Z;D=y`&1yg5YnhvKrv?avc!hKR?o zJ~#b2?VOKbucZA1&H4ap!i79L8WUL{)=@PJ^(N2{+260q%=zW#=B=};zg1s?ojLQV zb&*VczVjM@EfQTKAtIvNCU^n(Th(1^W08zCs`d1`CyJ0d#Xfcs&YogJQ`E+lYL)H$ zJABKd2Cw4QCPGLgyG`Aqshm18UJ@Mp(c!rfqS@L{6kA0|%(l`+{_bO<0?`JEbZ9Wd zu@EtaR0SeXq(g%t76L;m12I6PL$g`iDB3K)3PiXFL&NnV={4fYJVbN&&))<2=qJHc# zhW*PEwo+h3)Q>a9U_^8f7-JY?M2CYh9>Xn0bT}B}TYzixm50CiH2_>)F6oghFRx(D q+4-@e^E1%gJshKXxPucX{w==%{Cs-b$E@H00000(tmahC-71vBhdIDdYBf z&eUja=&3N!S2@j2Q`&ho&}3=KLPy?+Gvk;t%SJlaZ#MAQ+2^&k*LZy4kTS?VJNV}1 z`}FkYz{1pHH{O6W+kk}Ssj1(NkAvm2r&4BM+%T-_0000BbW%=J03cxR&(FVL zAiwXxDKq^500L-9L_t(|+U?U>bD}^LhGAliSw5O$Lj$r33Mgtc`!ehQ|5tO+WU6$$ zVA@PgRm%6GPjSIh)ak-FcI@+Z-oqb#McaDkZ_G&-dz?vv)^$(T&K34F|K_88SB=!g zzOKzD{6$^f4|W?>lStm0=ADct)d=l6H+s8_FG)@O==LG@C=r%UAW zAd)IZn|7gS0!bB+5G6oG5|c;^k|9Ehzz2oQ5E0n*TpN5JOqMNl3r%@JxQ7CL!O6_Z|lV#GjvnI z@$?|avT6XC#W_HbT9&5;^%w-ZlK{P0fs^gVkrQM4P*lWJDQM42k`nfHw!RG zg*L=3GY_1Xm7;aVrTCC8jn2nF9m6>L26?@B*_y0}Y%{DK)2&L`~O4yf>cbF*#2<474VJ#TC)^OKwQj!f6sv9GYfi6aKl0AL Q9B4O#r>mdKI;Vst02kw7VE_OC diff --git a/src/img/flags/RW.png b/src/img/flags/RW.png deleted file mode 100644 index 2802d1a2d7366309c8bfd53d44ed5e7df9cc3f79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 563 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAjKNPtg>t9yZuLV_*B!h3KM$bhhc zf^hL)ml)?92+?1))qd^r+h=57o#z)=azTFip*_beYIhZ!KB<+vtu}6RckkXLzYQ~0 z6ByS5&F3x&@(X52IR8H3{C+Q6gd50AQTnoP~DQ}bA z^XGqk*(0^5qAj7J6Z>_f{}ix@S3A6YQ=_+BI*U`zfb9cge%|uw&*~g(t5~M7N|#iiHKRdXrk$X zDKl?47+gA`)b?znC(GkUEk0q>X9gV;nVUIx*7+wls#wZY)-vQTooXB9;^;i1(`3tH zQFY%%l1+S9mF%OWEe(||sva^$#JOg>-=88VJdyFTKF{Yp=IJdHbRKk_U^Hvp_SD>a zR%R@Zr|*1r0F2vl5UeN99#_lVvt*Ziwmw)a-WaXEVcbs u-50JJbN=pQ!SkmIUY@E9u(p;zZGN49hx`F6(<#7MV(@hJb6Mw<&;$S`IQSX> diff --git a/src/img/flags/SA.png b/src/img/flags/SA.png deleted file mode 100644 index 5f90f43d4ba65fd724f878bd932485b522154305..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 612 zcmV-q0-ODbP)>M=00GEJL_t(|UhUV}Y8){T zhS9M-^VeS5_5P2VOpe0lFFnJ*6 zloW*lzR5y5gDi8)Su5s_9LjWT1I*~*wQ_T=)l@1}61Pl_D`zWhsZcU#IXC=}AyP&HaL#0$# zO_iNaaA%!kyt|Q$whuraixPn4983)Xz-IGm zgod%miSUsf6;{lVMukR0Bm9kY0UgYhsKQVVq1GTR;lxwm1<@TqsIp^XqXucn@s66R z03ghgpyGm%T?U78xRVJ`wasHlX(E$APftxo1!7xj2{a?=HFR~iL#SCHz_jKn1|Q5r zgXds@@LV|aaPe8r;JJJb<{X|ZIM4s!X y+@lLR?ZbZB2yxa>bK017*5G&6DEec&y7~nx;Ciber(<*g0000|TvQM&xm79m?R08zU9(H1{(kyv>wAzL%my)W9o8URtcAzL&5|Nnrf z-5_Vf5L~`+o!I=*7Vq@?V3O1@a>uX9>CfKsztrw8Vle0Y!eaqkJ_JNNk zZi#Zmv>lJL;qJ;9N^vecYA-)=ksx8F)4Ln0r6Hc7R9}I8FKL@tc`UuLKkUgMX@V)O zsY#rjBh9%r;ldiYtRLOMD~_37evxQTd54ddC7-_K4E$fb0000GbW%=J0ASDWAYfp| z#vs4H@6XTgaX2#J0006JNkl#z=K?fvobRqV9IdEXMXbHSHv6`vYNI4X&Lp^6{dUR?$Z?zyvhN6uM(k#EE zn&Zx7u2oe7Pr>sL&&{XQ@P@HjD}@l8>!02ARzlRg5+ZrZ^E>T1ZzkP=@{DUTcLY`P zj#`duZogU27GTcIJ+vu%^pwz^vK{A-z1H0oXpBg5%_Gr;7X2I5EFaRI`v!KRBwMfS z%`BTzUSwmQ_x4(sp8=dmsJ2x}e-veo*!@`*qwyH-uED~F`Q#z-e6*gw03K1n%kX$E zKfr#`I^%|VJnCO*&yNO>$RaDQ5y9~wkuyD+&pQ{-m?+_8##KN(UmMsjvNKZWtt$JV zihc3?bn$pZc1Da&+8Oc2bAAmTQNWDgc(4f1NbY6?y`tY;Jm^FTH@L@C%{!{X8xLkT zBb#FQ_LqBJ(JlCJGosLp_~OC18CeZyq?Tpo_8rCJ6G^ii4k@%CFK|45SoppJL4@Lo z6ybQTfFfF=cw$9(-zlOq7Y{|`;sKzDZcsdtA{-Azbc^DN6ybOXA{Wnn0|XI@Ct8F* z4hSL?PqYYs91uh(o_G=dI3S2nJkc=pWl0g?c;aCTN<5A^n|by*>d2(e+|%4h*?Kr2LJ#707*qoM6N<$g0>EP&j0`b diff --git a/src/img/flags/SC.png b/src/img/flags/SC.png deleted file mode 100644 index 908f6b88e62f80bbdda9c0782950e22e76b526c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 729 zcmV;~0w(>5P)r-*R%Z(Zb*7<9>{9-Njr#WqZxLUoTvK zAX0(eN-@yj*yW_8*+D_|w@sD9to+zk>3~0It%~A{i|D<*?c(AdiBnmoe}=oEN}hBN zfk-@;X}z*yceIw=T3RiTUcuPSq{_GFu(0x{N$b_sWhuAQ0000GbW%=J0AOHXARxc~ z#>db1@9)pgrJt@A0005FNklMX#Y%O5bpCcl`B@6%MFc;yA={+8ie_?g@RNMD8FRV-$S5@BPJZZ_I{BeFalSkYC|Y+;`xelGIu=l5 z;Q*p_ATS$fY~cW62f?v|LK3_cG|3Sdc5*Bk2L(E&)e@3xPUrQrWhNVQZ7P^+qX6Q$ zc2x|6=J}j~VK@}!34ZWx01hp*fq~&rq;+C24075!C%(D?0Ep(=i}eg39E4DH42MGE zkQP!VEZ0Ll1Be_HXc-R8;G~qPgQjqJQaT8^URW_lXM$W)LLFo=@Ar4NosOUmI6Nti zJUn)i337#_V}>tJ3GxSuNMLa~GcpJaK&B2jSuKn{F5eP>L1Q>z=yQNDC^@Lt=L`_@ z9E?ICLPZPgIa$yI&N?$>2#3PNVGN$5f=sRf%EWVkXrTHs*8oZ3!@1^4$>bV0$D^~0Wir-p)jxiyN00000 LNkvXXu0mjf`OZpP diff --git a/src/img/flags/SD.png b/src/img/flags/SD.png deleted file mode 100644 index 5ef2fd9a6ea04580c73f190819471f8fa6feffc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 535 zcmV+y0_gpTP)KIwr$(CZQfwE?P&30E|{%2S>9lXKgXH3xQ(5h-Qsj=duH7y$@7`N^k2W_ zrtX}TCjtQ=fB*srAb`FufB*uhxZWV=i+mDTk09g%Q zk#}+c>CF_K96-k805TeNZiPI5_ex^1*uRw@#+bHta_iFBZbe) z0J0``@#$TFzJ785*^>jvo*Y2-iI)P#gu)6w3Lc0AV7Zvk&Se8;Ae`2q1s}0tg_0 Z=shoP{BuO;qs0IK002ovPDHLkV1i|D^Ai97 diff --git a/src/img/flags/SE.png b/src/img/flags/SE.png deleted file mode 100644 index 2cf2258713574e6b69b43b952c62442aabfef7a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 256 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~dVo)et9yYDL)LN#`geu_&PHRr z3avg3)WTa5b#mh4b(4&v#fapr7J;5GYaY>EaktaqI1MYrbX&f#$^b5^dM- z{of9Q7kcwMxuiWN4 zq`<@WATRGS=b6KO=N|vIU%IZ#x5s>`MDNRb=G#Zb7X)0$_-CH_kVW$pyK%flqF8as zv~$bveZ6+8?)Xt>Ajmd)IkNdYD%V}P4F-b~Xtf}n9oH-J&1g-X8J1wD?VrY7`JL`Cp zRMUz$6Mhi!JYV--;(x!Nug%4S{<-vUzF=72KP`{HFQ?-c$6Yy@n*ye0_0|?Bz+JugwZE9*;!=n?(XjH?zg|x03?0x?(W;->gLwf&e!9T#{O`G zv(I7y|Nj8$=-SU4E0?CnwAJ}MSDC=d+3oPMN@Ji~a-_4o(%zbv>(~x0N|NTjzF{^C z_xE}rC^dkQn1!9eugki~;nsIj1pxp6-h74Iu4eoDJv^1O)I3SjiAXwf#`En>Zg^}p zD-zM=o4>yR8={q`R}ui&U}MawL(zh4eNgerkum@P01R|ePE!CNAYi}G{{H*FV9$1M zG&BGJ0$fQ%K~#8N?bX+kn=llBVQs*&lN=R#$F-O3E$#hZD@WS3<&rG{PcAn6SDsWYCF2f>tD~s3w zIae!I3^Ncd2U|afH?s*~W|4smUQ&2R8ZyT)kU1{AE5dd&&_Vwa3g6ZL1JNW&Xg!GL z(~`3w%d&vU$n95!T%L{2eZP0(W9R3iK++)NabXigzLP@aT<`4p1&e6aJ zZV%E=Tk3+&K-d6nvF<4---YOOv(7+T)(>1skD#>>U2&zLk-G!+)9oSy(GsOV55@CC zsJB@3{N5qtGOVjsi2WCv9;%JLhz=nC;X!$OkltD7SM%|!Rt=>tb+=IL=u$^YXNEuG zEwtIT6CAz#H^bu9Ej06-iR17fp3ma|RbFhM&7LoPj`X|+y7ImaCkkTBxpxpswvfKd z;^hw{!&Vz8T6^Ab=){?W6J_x(1b>x_5RQZsajB2SXf-Gwc%HWy>Z8Ss<3vymq709A zH=Nu%vsrOB9>-Bd2+}J&+j9KNo!l-lUQ~sOfrrv~`P7)xst`yu()IPDE_ICyUY_*eu1UCz|!1dkE-s4iFY$iP=lf%TxcL+h&N7#lrvI7c$ywnl+PkB z?NwUty1OuDVgKC#5L0k3YmiwvSYtwO&)w!3MQ@ZXLtueQKyO)qlss^XL!&D`g)~vY zCpauYXR<<3&{kmXpQ5t3#NXH2?#IY?J!EJ$Qjf62>=Y*@0000BbW%=J0AOJEzt6wV zARzDlbWv^q00CD?L_t(|+U?L=Pr@)1!11ziuRHC!JC2Pp?OUN5R-W3*d1r~b!ggovdAwxpbMZ}qtm=fxhhiq^;}&lic~2chFft6_O4-bM~*&Ym+fT-vleMD3jrVc>JJoE9OZ-NifIHp!$GdLHTIX?4_|HKJ0TZ6B0Ixm;~~l2QNw N002ovPDHLkV1gghBOCw# diff --git a/src/img/flags/SJ.png b/src/img/flags/SJ.png deleted file mode 100644 index d75873518c27fc918e2579bae4acf4ee0d40d5fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 229 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xZ3?!EyURMI7qyv0HT-^(N-fQckAqI_%ckkXE z@c)&t(c+xEL1~cX47HpN~UU z%cT$6Uco5|2|UV6G(sC1HG3y4GGS#iKhzZ@afUu%lmyl4mkfk0mU#+-aa5Km`Do$ej*24?5p25@A K&t;ucLK6VYR!q78 diff --git a/src/img/flags/SK.png b/src/img/flags/SK.png deleted file mode 100644 index 276c387e03fe4219ba9e7fa2f1a9b7d7d1298f1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 691 zcmV;k0!;mhP)p9(db#lQ z`Tp_o!qe#Ykdp8`KmFt6^JZu`Z?pKFpYJX*7)zRkr_tc)^BGyF`Kzt>_xJR4cG2GM zqrKew`}<%$b17u5l(N=!o6F!MEHy=nCrFa~)zle{r&x!F;n^Z`NJtZqOZJNRCwC$(%DkOAQ*;Wtajzk2WD^5&DMRX`>ywYTc(kSj-9DMj-0$Fgv{^^ zgs`Tj|68Z!In?SXW~=Wx*54|fZO^&wmDKlYsLxo(tECQW)dRJdS5pmS3hiNi2X#SL z=1@dy0!*PB%+=aBK;Qr!Kvoa{Gl+jLgw%`mjshIa2lmjAd|)D0I7ufr5vDTB812ih^!cc$R5IvgcUSFOcc05`uby8L;|9G zh^--20zp*(H-wJ$RY60!Idp;XJ0Ut;tksYLy z34$mmdq_8riJTx^11YFokJDzodY~R--8!5uV{B*O?hJO=O6ofAr*O)8ZKv`zcQuaIzl|NHmPT;j!n!g-!9jv*Dd-d;G#d&EG1`QSC( z+txpq?`~lFkp9Ccg3*K{>04~E`=NOSJ))l3bIyroUS|m7(3zoVcvEpBr(nBG(F;*~ z5OrdqiX4RNdRa5XcZE}UiPeR7HP7=H)-L~UVv*(fH^%Vy8v6-%*0M)7B_0CW%;4$j K=d#Wzp$PzG*jb7I diff --git a/src/img/flags/SM.png b/src/img/flags/SM.png deleted file mode 100644 index ddecba8b9ee0af9db35b4f68954cbe84e1116fb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 858 zcmV-g1Eu_lP)Td#<2Wf|gxwyye-XJ^!pTpwH`Zm1y$i(PfQX zwA1D8?(X%}qr1w#`=l!Bv|9Mdh5D{L^W3}l&5^RiuKl-D+Tq^&zGcwb&&Ac>@9N=> zs)z5aLZivww#Uw%z0dWZEup=q$Hl4jkqw!vw9&0qn$=M60000BbW%=J0M9^RuVBCa z7{~AZ*G@|S00KTqL_t(|+U?idZmK{OfMHs#qeVR60jq7-z;IAdK~d1+hWCG~&YGCr zo0{$cE_NFKOb{mF%W~q4%DsEPx5p-NN=KTHSEk)^D%NTX=fSDm14=EYhFXg9|c$04K~2 z5R>hFz>*bUe#VXtk%c^S%a{eQg2bbAn*hfyjCp1x31y7u!-}3LwQb5jR#4#HUJlwG z`8(zgE;Np5Y~%F;D}=JW6od{t2H>G$i{(MUgd_!d0s^2krRmwGsZCD+xM@aGP_(^5 z=R6kcWK#eW&*&DUew(K8cgBH$Xdb8eiKdV+o;Faw?H0ta0=zW0DYrP}!8^m`AY;sU z3z&aFb6ALpR4J%0MlvBd=U&$BX1SLJ!Ha+lDM%eMYz{^DS^>rNo5?^Zjq$h>7 zcz?l-zA6bBO!OKABjE%IcTkdq@RY<%X2Ks-q`ZOj7%Q}!~s`DY`AyKc_n@yt=7Eh)#{-~CMdNV>M)5#=`_Ol7UA!ODo2N6Pa zs_R;RFx2@Ce=G$d^@i60F5Vk5GSKbr(EkE;>Tx1q#?D_A>I$ev|q|j>7 zGy4PLB^$P0o@4I2o7dvYpNW=NwptgDT3C%8w3&*R!7;N{IaZ3+KuCoat|rnlPXmN{+cle#tYsMVi{ e$=W7Yv@RelF{r5}E*bvyAir diff --git a/src/img/flags/SO.png b/src/img/flags/SO.png deleted file mode 100644 index a4c573da18dde69a6775c58cfce0b99feed32d90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 379 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~Q-Dv1t9yZuW9MCDbo=Gc|Ns9- z&UpCw$6uhh?}YmuTVGAt`{u~4FNMpWtvUT+$K_AYKm5M%=zGn&7pe0f|MslHLq z1zcJhbvCy;bXqzpB&o5a{G7+?kl8H6u!wh2S;oWly7ta?yZnzGowhvkmUW8sar=kD= diff --git a/src/img/flags/SR.png b/src/img/flags/SR.png deleted file mode 100644 index 77cd1d3bec6c7e8fca7814e658cd604487cb02ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 385 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~cYsfbt9yZud7V8n+O4Gh=7j9o zST&&F4l$jVd*mK1QMfl#alf9{7B1bBf$C2;$Y01*y;7=jy;1pguhJna&3EtK9dp&F zx7{}#Xe?VvkY6xE!h41D`@<@k&H+X4d%8G=RK&f#emaj?k*6(iMnmq5*Q(R^{hz$e zq;l~_N%y)ma(S8;aH>Z@z`yY}3jF`4_+otM`$n|7&r>M;}@yTNc$s=sj$ z=K`;`yao3-Lo@F5XWV%&>cPTND$Ayn*5q(VM_@(rI{|@@{!1FyeV@jnd;77(l~4O` zC0~&Ez28rs-``hG_M%Vj3}a*dT`L3IJS_idI!_kbmGWXybCS_DQ_nzF-^|K)+FzG8 zoxA<%$h`AfE2jE*t!{jgSjkq!Rr{noWFf<S`)z4*}Q$iB}(fOjZ diff --git a/src/img/flags/SS.png b/src/img/flags/SS.png deleted file mode 100644 index 9cbf721edb7908b2348d6b867fe4eba118fd2b82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 634 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAk#fdHQnSN8%R5inryG=MYs-PZ%T zKm=q!k@F&m0*Dk)TF<-!35pg-5xMow^$pbx0>yMOy9%qd7ba4!+xb=4W@uFq}5!d;-vw~ZN zo0@&P-ima1SLy%%A0FuNB=gwp1>R(CDiEsP%>a7N@-7zzG*185NaXs20vpjv< zqKtJqM!t`<-rosY;*%*dv(?!;@T7-<*7{`{(yF&6Z*qNpRY24G=%y%zbJah0YZ&|d z>{<~vt4Oz3b7tnX?zu|cYhAnjSAL6sbo>9pwurie@=sz6P6&EFO5@Ta1k3;c diff --git a/src/img/flags/ST.png b/src/img/flags/ST.png deleted file mode 100644 index f209bcde4d5a87494a3c6d7e356127282cc6a689..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 480 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAjKet=Jit9yZu&{}N>x+Gu%WVHGl z02vSjY|gNg10>(Csf_*gu=${BnkZD2DZY47W_Q1b7+l zZ(%5kHwbWG_;ZN)`zo%hGKO8=h6%n54kio=QVa`Ue0>5mi@PMqFPLHfd4=-{@AoSt zygzW~$pr=mMo~`}$B>G+x7SbRwHOGnTxjFGxhi+_`Dvv;|L6C3xb3{bBy;_sRN!$d zo6fT(r@yA1p0+AOC@4fcE!?bAvwU)K{cV-!g_H6=%+s5y#LwWo>It97N`XI5G$VI8 ztl$)I7n-2L=m{hm)dd%9^KSH*)S$v?)5-ksZRmedpu~?$+?8(G!|EsB9@O1Ta JS?83{1OSiBzl;C? diff --git a/src/img/flags/SV.png b/src/img/flags/SV.png deleted file mode 100644 index 333063f39e9382f535cbbb0844d819268293d02a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 622 zcmV-!0+IcRP))#JYum8>v@aoY2|Nrsd zmiOkO{nIThX(#^CABU%e+1=V`k78DZP8dOI+taPQ!goe{La4K#L|C^eT2A@niu%_} z`_(*@pUuO^;+V6M>eOo8&uOy7v9P$%1|Xlx!;Z((#-6Qa=*A&@gfK#J7Lckzbb4qc zJF7#JZoarD?_gm6{O^#cqBKdcW`&Dxf4W<2Q^C8a#m9WQ00006bW%=J0ATOWAipgk zdT;;$0ar;xK~#9!?UzN412GUqlj(Go-OP+(<_yFAZ#79P`;lxfMv>pfyQgv)e@`NL zT>7fTf!e=o28zXrGUz-{7B^2flVS-#x%S5rLcgbq5ve^(5K<&X|4T#!@wZ5))Nyof zkr!b!)+q)Cm&hEW=5%F^kaCF3z`o6?E5_G(L|Tzdi9uR*_Cg_W41Eu5Xfc z8dKY36lp6rEo{UnD2=AAJY*D&H;|uCFCDuJga&($()9Fv=a9{G!n$hv@VGnIMN$0J-#f_A zV-z{Kh#^Z7Lbh9g<=kf8*_wTXstQ-{kcMzTpXaQVHNZLt*e+1xIsGFnG_F)$mAw-25VKGZo@Dmk9C6b5b7tCI{Owe}A*8l(j07*qo IM6N<$f&~pK{{R30 diff --git a/src/img/flags/SX.png b/src/img/flags/SX.png deleted file mode 100644 index 72401f5fcd82181a99cf658f48f574282e5761e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 824 zcmV-81IPS{P)G$S`iuc|{$jHc`VtW=kkNMmr-aJ3?>A>MmQs|_nlE~}x=%D3uZGeol zu-NfDS)lagh1uHO#x+Cg$jJ8NX63iF-{R=-?b^O{U5$I5VR^BTpvA(;+u~ba42?tM zN*(Ri)X9*6scJ?DhQP$Cm1I7q3xhhpbpz0000FbW%=J0AL`$&tM?^ z{>Q&y&mbVaQ%qU_00J0EL_t(|+U=Ixa-u*GK*tyZCfOaB3=A%EXAwbUH)>ojN&f$@ zwjrVV)k(jlJWmu4r~1G&1-o+P`!X8a1jeIJ&CRV%hV9Fi%tT zQqE?xENk1Wg$ompxpta)+HSY;*^x5NWr$m>Eeb(&ay&1Vxsz@19O#R(?I}KUevb2e zpXzThre)H3>d9pr>TNNK0?uuj8@%%vMx4!g6KEfE1|Fg6QpVoG>xre!g+S52U)Cjn zs1hoA@5&ZH*H$ilkqn;9vMv?*qHt$2_ZD4RH&I!GoA<1KTbGNJXh7tAJfoG-i4sxt zo@dOuD6NRh%o)gAds%&m{#urfC=os^J1j{nC2UA(hk+1HpQR^ie4zq24MV#u%`kMM z0B-bInj#oU2vsE9a3kIng%ZLKFiS(kVFbXhilXYTR0CQ1B2@K2CuV7jc#~ABn@Uv) zye;%-i#W3SV*zy0Gd>=Y2(oA*%p!>}izdP>stB{_q6K7;MEFG|G5oMY7Ktf)z$^+A z#vUfeOr|8wgk8DvZTSyBcLT99*To0`0000LzS(~^vsO4T~iOQ;cxV~|NQa68)wV6Ol#Y{P3T@v^_g*;JGs7R(`0u(W_Pb##fX!S8<&4OewGO-kPvNZ54~R zXsJzrd(%oL(TwN`DX;D;D2p4fyl_^}`P(!O-yQmv0%sc*a<-P@<{qbM?X`K*T2sqzbKf&tU;lf7=U1S=89ZJ6T-G@yGywpE_p0^) diff --git a/src/img/flags/SZ.png b/src/img/flags/SZ.png deleted file mode 100644 index 0cf3fb1d7379e2c814eca0c43d6ce4e6dd6ed5f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 798 zcmV+(1L6FMP)23SI|68pIVNMdQw3@^hJBVN0aKWb& zqd0Nze7kgM*f%=VAC}DZ!06cEx^S+H&Rrd(fuW#*TpvS8!(Lwv)bAOJI%ghnR%G{g2C3PxY|9UwhjVc7;1jmB-EbfrCO8jjJahc9iQB*PjZK7F>Q=)Kwe!_X7P zm`0qrTw5b3*nbd8rDK!G=LyyDH&p3;rRHP!1Da4?Hu-@My)u_ju3@~cND^R*%=$WQxAI4~ zRcK2oB{u*yil+zy=!Ouop4T@PQ zszFwLjb`E)=ZuELt3r&2UPMCyQVrSwRB?psdc-AR719}t2+;*d)qWue92xf$pXdM` zVm@`nsitI^;4B0bg`Ve%I;1C2^JatKZVMhoEtdRq8(FSSiVgFO_ANFxJ%xdeR4{J6 z)dD4%#k~FIuRmqSE6f&;-5*EGrT!TokpJP^h@q%6hLpXqD?37{I@BmTW~n;(sXB_D cZI>?n0fL0(2{?#Vxc~qF07*qoM6N<$g1bs(g8%>k diff --git a/src/img/flags/TA.png b/src/img/flags/TA.png deleted file mode 100644 index 15e4c3e159df9922f58f5077dbbaa5c20600a9a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1124 zcmV-q1e^PbP)C*Rm~hyuZNuj9a%^+t;^i+v zdZ3AOxx~|sq{IWD)E}MsRa|)P?(WN@Zfbw3|NsAVkGl~h}MKcyo}9nBb0;K}%;AhsC;)FBlynpsm5@ zwYb$oP~LWb*`p)TEchc)VGvCiguImoc-$ChMaa)$> zD!iNC_sS6iUb-UTuTZF-*RAk=&QSVNk0~T$_!=4-m)L~$!UySfI$d0a=b}{qCFBpT z1-ZatP53C?P7i>o3(?~mdo&O+#-g07G5QSP@r3BuJ6dqd<(y1~~#0$`e@*4~KjiA(9ez1bp66^1x8UP0Av8~CtG6vi>N?r(1H*7xhXyX7jgtQC6! z5fl62ZfhWv$GG9f2H83pqj6$IcQ=^(HHZtVh@%}eG z3*Ucwa&k&n#VXxZ)DE$%EL&yE&C)alWMvl3vn{k8_FVnl;a?RiT5BlEi-P9V+=QkX7FlMkNMUUu zTnHTVPmiOzUSu?dgejysjW?!g&Pha}zOB_zy$XMRKvqQwN0B5+0gV7-zHmy0hz2uB z@*ITVlhGuH3(1q__Aa{T35U-l(gIRAnMooZLNrMd0nI(UqiE8y1*9v$5#my2%Tr1N zYUiGg&l&{{zn;P?ukP#V+vJE`WTgVSbeiUXpTMz~?efhcM^O_I3|im+kkw16~T zL7L;ob~3doT0@680wSEWfWXl-N#c&ASL>75G#Jc0$CEtbIM4<{3s*_M2&gT`i5&QN z$u$I8LbyZcWT*zgbQ%Okq|F^<_JK&he|de`4}!q$j~Ao90eeC)=wm`Q4C^0zL;mAj z02e7U`hE4`k?jj%QdLl>5d`*!kP3|pKLR)iYVyxRz2i8&PWL!aw{x75dia`kcDQp^ qzpx!#Qx6?X_YewSMgQBJa>`F5CHsv8G=I(j0000e$_Qsl>X;yZvL#O5IcL>&L|-nN@?B$jE2+*DDrA`+nx^L zXslcAe6#B%!ZP{@jfPX3e+$QRgVGnVCYIV}p}ALLb?&h*oQP!@=AS8GsY<9q;mZRf zYgpEYQ!xz-Aga_@i3h?XA!pxfvN}EVBY@MDkdqIo&^x|&;EZrc-G+qTw+m;*AZipS zoBs*fXXSjTfF=i`1*NSINwt3d2Boe`UCPsm%j~nE3q1vH5HKJvCrPqOTnPy;sxYI} zv@;MtZC;2#1`5_|mk#2j&9aJB$QfY)cG?sO3Ff*u|7WNLnwKTK4tTnj36Hbjz3xUHzb0*5FX}!r zen(T^?sA8W+3#!vu0OC9u;bsgfE$RS;xgNf{;pczW*|SeCg$x|i{#S+k~vR{PW;@j zAj_@z`g<&o=dGsH%L&~I8!X&UNZa?x2H#t8=t zTe)T*HMsp^V;CdvmlK>Or?js*z0s7o)OaG>Xr4{DlWkznmQ>}yRn12#PK7x(mQ<-6 z_;pF7Y=zClZ%h3g)^ys;Z&}9J5dFWu(cd9?nq<$Jo1xCA~ZHc z5J>+2{~svz{nE`FdcIfX9shjz^f;^G%i%K*qKltZ_U_**@_O2`yFTgv&oSJxje56q z^UsIRK5jYiWj?QIh{us0nU@{2_HO!I2DFr?B*-tAL1F*;{qGYL63)LrU(2Vb4;267 z>Eakt5%>1;&8#B^JZ*tT=k9pCGR69}QS|ih^(TyaojtrVH#v2Bt~ z%kFQ!%NTq7ai&+%p8a7~_H#oHHqQE4ajT2@ zZ{GiargKiV;!_r|lsYwvW}TlfsZb7f4KjFO;^Y3LqkyK9?$B>G+w^t2$8yrMfE;6#Rus&#fR3)Xd zfPq_`!6VF!???0mZ;yYgm)~2ucgw4*Oa@v8&fB#M_`h)Z=5WP|wECrdSd^up%y)SH z;vS<_Y(~HGYS(Vuo_E+v;q|FG!CT&K-T8$ diff --git a/src/img/flags/TJ.png b/src/img/flags/TJ.png deleted file mode 100644 index 2fc5e4e9b543c7f241031ae4b569b86a4d1952f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 522 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAjKT7XZ8t9yYDLmI;w5EqIdY#<3i z@7}!wO8sAB{OR8Qe;e$79nAgs==6tY*WbT-^y6gf_p=lK>Bcx5vQg%M!im=4%Nl@lkmOKxigGAPFE|Fl5g zEP-=MxCcvaSnN#-Kj)eD4%d2bu*Z=rsb63;x{PhKFd-+Ntj$3ZXlUBIujk4Ri)Dt_&U^A?m-AKI@-|?Bz^wT0H2UA|Ns9$Tb=+UeeT8xAU}-|GKEiCRxnMK5HEGku@_Ki zrf`I|@A3D~*5|LAC*S1nzsTRerXL_WZ7@V;kDtasPhNj}KVM}|Z*WGBg*V>25MXw$ zue;WOlD?m<&dN&10000026R$RQvkp3U?9(=rTLiv00EClL_t(|UhUWCZo?oHhGDyI zK9=VmnVt84iFJok1sNZV`4#28fJew+!3plSM~|XVZYYfYnCG3`*zWnqd6JuZ`j)iy z9Ng9v1ktUN@XSeyf}8JL)_kgRfWqJwjyrC(q_ou~4N7>!W0J`kjszs$WLc6i1acz2K*G9?JTjcm0Qc5O^u| z7=9ZKD-s>&`ahN(syCAZX@F!yoM+7$Oi)xq9DYk;&!2d6C%0|7ZWI1`YqgQGLV z;0I#x12Oo47+j$EKsdI$RyDLkpQB8OhL=JlS0*3e1T}oBuKt|@a}D&ay-!X?IVfnT z;Wdvb2Oy!iE|b3czjjO=Nhq0s@_OwUds%THFIec+8p;_K+gn2W0?RQw=%PS1T0nUV zx|W7g1)EX=8e7<<_DfKHQhzFkZX{8-l0%?L#<7*^!LFY`GF#B psBvxQZOrmD`1u+|@3u#ez5v82iUy{QjoknM002ovPDHLkV1muc4<7&k diff --git a/src/img/flags/TL.png b/src/img/flags/TL.png deleted file mode 100644 index 2f69d8d3f781b5400360aecd3250b11903fdc6b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 661 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAk#x&WULSN8&+J1X)bA|n5fs{t7h z1mpq%L>$O?9;OH+feQZr|Nr5`hkJVR4h{~Vx|APSD0FpoDa(s4Z;?N8>{0!@S1l)8`dyha5d7Y(`Z7_;!Au-z;N_*tkDV3#9VK69D^*ul=j7xVYKe8_ z$sU=dG^0{(+qP{pX3U87k&2Ct{W3-6dAQ=EjVjyv6$}jxFJHd==+UEXr>8gqUCvt) z0u~U2pbeT3ub{-5^(G zXRM}pP9go?%WtyNR;r$JEH*y+u4!r^W1E4K%swL@CbK(ANzM-xf8tWtqC+MeVYfu~DNpasCp-8Bu<1!`(G>Gc;EPtoF> zGR1LaCui2|yNev8N*q`po9nD}tL_rYjQE$Alr-a=*vmT-=dVvwySKWb$%O4`-hcCz zx&MSFw)vR4zAOIlA=2pTUz1h#GbK)*i+t91)oRy|=Cq2fpMw7;Uofcmknotv5V+X2 zL!PlU@aZzuM=j=V9jfIUKDz7H|M)y#`5*Ji`b|H*S?bq5)Q>U?-~T_}?dR)_TU+nm s;!J$KVq;m_O{+gSa~H9DJ0CW8R$sDw@%tt3fU(8k>FVdQ&MBb@0CpuKn*aa+ diff --git a/src/img/flags/TM.png b/src/img/flags/TM.png deleted file mode 100644 index 8e6fbb11c54676d6cc82a59d549061d754dad0e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1004 zcmV_DXwNIu4c+NMJcXk|NsB`t|_8bP18+4=z%oukTCI>F56{0_opjUk6q$( zH_%2xcXd|QRX(guOE$A`%In#B%%4)dgWqd8ifmDo*RzMwspWb#^q(#A`t{8|L%=>q zN0?yQTs&XGjJ)R0U9VWSMoHxL?5N+tPpn(l@ZvM4WJI`m>xnY8V@B(=xjmm^#;!Qv zt}%M7PHl@;-hzvmTu*YHbxyH&*J*V7!e9RD%52A$JV?>100006bW%=J0Kf0gAYd@) zUA+JR0@X=GK~#8N?bpX{+%OP;VXrryVOQ^Md#~>4@BdceN|qg;B84}@|4A2pAVva+ zx%#+$_Sww(b9lD~3(SbkTLPNz`$Uxiq$+@~jxGnN zlmX{hE;I5B|0M@sJz?6hQ91|RoKmYdG<;jL04hpt9ivIR@q1fE;axpf(GS~a apZx(U+>Q39D!gF;0000)E;d#`IY;Bj5p`ufk$t#|(i$!`<5B+d4Y zH!bDg)p8aIJE#7rZV`0z~h6qQa28+ikpzopr04uw@eE{DK)0_W%FCKSAOAd4>1yx80Ec1eB=tba4!+V0?RFBcr3CgzLlL z#z}%bANnV#gj&sLknNdh6&kfwlxG>^fwc|a{i^rBy7cW|TiLYznS2{IJwGA-B2UC? z>O9RS#)}VslW;vI#pNato+suPuGeZ*B j1~5k0nHS%>caQJI^}E$`swSua9m3%0>gTe~DWM4fnPF{J diff --git a/src/img/flags/TR.png b/src/img/flags/TR.png deleted file mode 100644 index a80ec23d64af03803857c44671040c3707236626..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~Yk*IPt9yaZV@`2o^wh-u-Me>B z#8rTT&zyYU96t6UxAfJFxzFP>-d?=?dh3qY%T~XA@bFn+)XSRYCu&A7yCz&?vla&$ z$W{{M7tFB#eS*UIB};$KWME*F@N{tusfc?!Jv#fa0gu~cwTVxv^KSqDzcTyMPJ;{1 zv;7S;?ACL#r$kP=TC3N4?1FVe-H)q1lbL58yIfpsu>G)!CG)a%(sMYSuix(YbxyJ{ z_KJ(haAJ-epo1_$}}03{uj4|dlFVlI-8Z=sw_cgCHZrVx{#C7C c8%?C_za}*93TM**h7kjUr>mdKI;Vst0FOGzKL7v# diff --git a/src/img/flags/TT.png b/src/img/flags/TT.png deleted file mode 100644 index 7052a392b70e5a42ae1483db26fb26157c2f8526..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 528 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAjKW`IwKt9yaZIYBiDdiU-fkO3q` zL_{nsEP(8%n|DG)l$4Y%$QvI$dK4&i#mdLl*7m`J2X7ucnloq4t(3w?vlpkOrM)tlKwQ6qHO>v;5+$BMN!3_Ho&Yyp;us=cJ z{nEnLM+^*%-kvUwAr*0NueCg-qO$@2eU+ZE@`*tf{#PR506cUNy&x*>~;;c_I$`b$Am+Wc2$eapY(G*xSX%KS@9 zPfzv|>A7U(uXW)0tf`uFSv8&J+`i=2_DS`_<}KV!EUzZa(UE4|yD1&f!MDtnQoQ@~g=VN-&7ESR;T7)5 zWbc)m>tS?cx3XuzX7i=HnKLhiwdA~%QdV`EBE(ZSQO?c6^@QgJo{wqI-zhj`SvbB5 z^66&Ke8@6+$zt`N6QukMT)Eagan7O^!t`Gj}E8ZS5c`jaEgiKxb!kq%KyXW*Vo_k7x!+@jdpjv Q4-9PvPgg&ebxsLQ09sn;h5!Hn diff --git a/src/img/flags/TV.png b/src/img/flags/TV.png deleted file mode 100644 index 44880afa7b570955e6d292c935c88c7eb8bdbf13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1010 zcmV+7R|0-CR@d_h>rpP>b zbl;X39NYzjUBP?5+G(ecpTd(#4GKfwC=BZtO-`nVzP}_b8jTyw=Wo+64DatYf$r|- zXTE>4Ag$UvFq|*`*;T0Zunu}y-1ugcv}+$oA70kfq{|B%ba8p5hn~Q%n^ES*ljnVH zcHvr+j!suWr_aYan1k69Hz+MkF!sLJ_2bd4o^cE_5HvZTEq(uR2K>j`$zilI!N{w% za1w$Lemac@vbDNRXl5DOq9Fj4?$fFl`^NNQk0K~fn;pW}}-Akn5c zPpIUa_Xa^myt!lrQt*mA9%;t)(zih7w*A2?(qz=^O`5NRCO=^w+%^OOc?K75hL=`w z9@Cg}0f8cGpo`1bNvmZ8J5GwN%88H1)V{{bU_T`Skf$x@l!_-r=SFLD>MAC1t@^xQE@ID7Q29OOG+y) zsH9aN5RuFZD^5g~_W>!p9ht-G1+v=_st*X;QGXD$jYwfT>JO5llGu(CwjC(2{xL*W zJK6>$;C5kOjM*FQsAXT943wmxOkg|e4k|d8G~rwUCAtM@_NPyYq~+ASC4 zaFgjyncD-Sgh~sUmQBrn?at3rO%V9@Iq*co8|U-Fes2Q%oPL^{JaTDNlgVCScxkSN z-VPV7%@$dT-*%kgo_6ixW-+Zx6F#gq5pn1BRQS``q@lQM#-$C8&R!FLIC=cf`gQhN z{l8!GpI#{k)n{a{pUAsv-wm@D2SZo4J;_|K=7rP>N8YS}W~r2Og*-co71$Hb7w9mQ u)b71p9`I__^_1?-&wO~3Wo&ZSUSpr>&zP1h_uvZ9{|uh4elF{r5}E)tVYr$A diff --git a/src/img/flags/TZ.png b/src/img/flags/TZ.png deleted file mode 100644 index 87c990d62516742777bae71b9a37c9c59edddecb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 784 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAk#fdHQnSN8%R5fKr&tyVx1!eCf@ z7l@GA5LuugkO7hUeZf>oLG0i{-M2@Kr`4$&>PQGIyL@k_p`Wu%Wtx)CcB_seReN)( z*JmBvcUdm!(yTvd(R|EyVzzue}j z+EzO(v!fL*oi^*;Q@`zm`I!@;_Ukt1ZJ#2)^2D7}UWNND>UMSRIU2wAP?q1um2>x( zEa+Y21@wzRNswPKLqfv&{rmSPD4aj9pz!|vdoIuQ2@DL3?>$`{Ln`9lP6^MGF%)3E z@1}ZM&2qD)`%#%WhyUiM@<{Vm^oE(Q^iO=vz`vrus$&0}o5A_9&kgo-ipKhzWGmRo z#HMfTF`m0Hz2>pOyP8w8B<+vS-SpvqL6olSUf1kL<(Uj$%`_?&F! z+Y2to&OO^S>t)X#mtz;SvgZ2k_d_wp7I}(Qv+X;jgl}qS2d{ zEeo|{S4%tHx-e_Dz{|Oz#+%Q3T$xod^R}1vpEuSjnY?XrOCns>%Ab>TeryWV&>MAM zZ;q*n`r3)pC0*CX*QWEDQ|@3wf8WGynKxj_H<7vlDbHJGQP-^EfSa>&43He-f@;IF-@VcQexY zdw-a4$(d^xL^CygCrmTlat)|dcEhy`r%NJFGb{4j>qS4%yJS|l`po+y|P5jL%W@Mfuf0Hl%x!^g^lQ} zidVa3?B*?q%6bD*dGsS^N7Urm50cLCyLn-PQ3lW>+$BMN!3_Hq-Ye`+IDbCjeOA(Ra|Q-RB~KT}kczmsSC98KI|#U5 zJY<&er)y5(yg9{w|NloW-nQ3F=;|!i%jI{iw7xzItT&!1)6E)ru1|7@&KcR9Ih@_I zHBP4T?sVbHKB?%imU`%l?_CESNlP)1!aS7+kM?TgQ4T`N5-ie?&TpIj2lN z@FuHr8$-Y|CJnX;_dfBg+F?CKbHT2CN4Bjo4$)ZfjOBLMIf0NfXHOfOc`m%Ztg7GA7I~KX8zFR4K=;EyX_ZGbfU|_ZGe4WqAI(H$9gT>ryXP#z-D!t?>**)1J-+ee zWuwiajeO}oE{hl5k?iyEd^G#msldub^4o1+<*HrQKfpWVp|{SKeqbOnc)I$ztaD0e F0sx%A0}ucJ diff --git a/src/img/flags/UM.png b/src/img/flags/UM.png deleted file mode 100644 index 6d18cb7088ce69a0854cf2541e3093c3e052285a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 352 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`ol8NS0G|+7_X3}H@7`@vHUT0V>pUO{ z=R!n)f^YN?}Mj9*?HKsb4PXlPldHT3I4hy8VL9 zmD4kR`Uc88b-NSCty*yC%FlD{Ue0&6Gl*&NZ)AR^T`I=UEpS7b08=aOmI_B^SUo8j(})@6L#FBUSIFN!+$hf(9_ W{rGPa{~Q2%g2B_(&t;ucLK6Tld6_o= diff --git a/src/img/flags/UN.png b/src/img/flags/UN.png deleted file mode 100644 index ea7fc4c7d7aff2799d4457b6cd92c002f1a835ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 789 zcmV+w1M2*VP)llp>C)u(R+-)Z|NqC` z^xfNv)5B?Liv| zz>8U6A%qwe?tj$8UoPM`|G2lu9T<+0L;~JL=Tpa zAE7A>j2OV9k}3LNzKg+{zd$3q$LNX2H|DdC?dF>Ay3X+(n(3VuQ%is$s-jkGonhIY z^E0IM8#+*ahVE%L_w7r?(6~QX z8yrU?>GctEzr7XDhMvO*W=A=bOCRX&>;4UznSIBCp0QBwE3cAwhaANkw>{@4Xe(J} z5XcOYROg#35SSII`x7ME>ar|MpFhGLzA3e^wLDto8`PS${-9`*o$Gbl{s&cRe}jz5 zZHAiN8rqC{J^DhyY*T69pl-$xaUqv%-~KWeGEQNQVD~pjle#=+%ZLdu|Xv9ix62%Aoq8d&Ws#Q7J$ z3!_Bo-1r7rk-`yER~^iy`dYbk#-Na8A0edNygGWqVjq}ovIk}ly?!O}6?zz&T^0kd zD%Gku7-7{O!RIrCO(s2O=>%W~U~0`wCb{t)f;yR%t+Nv$VS~rVY9Y1PyMTadI1)~4}sBBT^ Tc#zUg00000NkvXXu0mjf9e;il diff --git a/src/img/flags/US.png b/src/img/flags/US.png deleted file mode 100644 index 0ba064250ea040519eabfb18b7e4415b4caab1ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 350 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`ol8NS0G|+7_X3}H@7`@vHUT0V>pUO{ z=R!n)f^Y|bYF_LNmVYI`p4-8lho?B(`9a9;R7rQPZONxs&9ljXJUPi%Pg#^cJn6J;sZUXR61 z+Ls8ORb1y1?eV`a$9>yk$5j#+JVbdP>|kPF@OEd!eI^IMOYc(|?bz`-st_WP6@`NbM zQ=xBQ>9oFf-uhVI)SmI z&NGbpAxHNk6)f@wV+R7DM!xO{LFaEEj_sd+H4bQIvH75x?dOALKgb0~M0{ug#-XL0 zL%ZxTGCkNRcMO^ywW84U@E3%pzaued<_9SXiHD4ZTA}|9(S=%}b^8Anq%7koNL~h# z5t5d0B!tj*bGx(IqKhQm{5*rhl9ij*Sw?GXciRVCwET(Mn+RH z+;f6z@7}%p|Np|6>2Mw+Z_%-v9Ki;moc1Hy^+M z`K#dA)$?yYn!dcb9%vDFNswPKL&E;|3JT}$o#kvKjwo=CXXFeqK;r z%02F}&|8s3MKu|}9TOWKXH>oU_$9x<*SjWZMQULA#)rOlp8ve~J9P1J*QzhC*$$@| zl$*IosXqB2)nX*KsLxv`z&W3JWAh?L@f+UTyLwmONSt_BwU_S*UuRy))>MP%zP{<{ z>CvY|{oeqosi^ISiO|o_=H15Q)U)H`;n}-$*R^Ks>EgtrRn)Ou<}WSo$;!{fsn^xj z%%M5JsBqZClHtyw?Ul625E`?zJ zp01Wdx3iGB9D+9md9EhNF!Vrv-}^csuP=?>(*Pwnm1uzSO}O4@IFVNch+*ZO0o_I5 zQ|clb2BJ%;57JkH!lZG8p!Kt1JlB+p!eLD9M5X0}L-AMC0k_<%od|M599G2J&1M@H zqCu=d2`Vf?EGB_6MnSR|(eRWYMkZ(_Buqs?Um;?m1o@UVL1ZN-XN^^bM(HY!2qR(? z#420^gE7ZYc|_z05(F6z7=Q#fI&=DmryhgT3W--0r@`v9QEGSAxPVxDk5CmfQE8L*xjQDM86Pg65?=0=L2L zhy!w^1_j%wX%9BMLeLJaBdJh=Sd93R9@~uDS-VRg38_LQ$oHGtb+U&Y=evij8EN6) zo%cX;8-Dk1K!;Edl%-q`bk8+GU+wJgf3z-;{tvtQ3ZZ|gQD3ukEq>Zo(YN2FOFscw W?YDex+v6hu0000WsUuj0*nGKDX?qQ(WoU zdtEZM@5`^5_V)h0o4f6E`@^1(hs%DS+`YqOLgSv*uhXBWy=$%bt+G>{e`n?_vtrgG zf48h{EV~@T{4w5%S?a>w_VaQX3mN=ltQH(=Xiqrp%Ad?Fpy234TuUDwi&QcRsrR+pHyd zKm~Oke6QLCfY@afixW$h!b_PIuMWnQIfclYrlyBoeHdQd)z|y?pe=)Jo1?jy!t9yaZ|1%6|h(V=Rz^FB$ zY+b{oedn(||NsAgK*ll!``-Ic-WRlNTfh67L-f4<`N#I3xc~m+_wyp!Xh_v_3M0^b znUWyCV1|VK{}s-^2O5C__9vWIc%PI%Kaqifk=fJ5F{Fa=?S)pxW&;t|i~aj7q)PtV zzJBMscjpdSg(si?<~d4Oim-XB`6(TrRPk=f#NwAeUW?eL2(Vss=F+I)5efRTz>fRV zg!T^$;@CGnJtq06W@lMTOUR^+FTE@rg1Be+Jat%S#Juon?S(5390J1}Ld6*7XO%lH z+P3v((en03X&sIXvy#=95Ybj#^&$?nV0NpK4a-Gt0kzJa--# OYz&^RelF{r5}E*{*wTvt diff --git a/src/img/flags/VG.png b/src/img/flags/VG.png deleted file mode 100644 index 72017181c943b41826c4b3b94152c2ac8b26f275..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1028 zcmV+f1pE7mP)9O zYL}P!xgBuL}!2 zx*sK8!OG|5%$aXrG|ypxrkMgwV<#NXx;4!?djYjmXuftWP1Bacr$oc$Y;KxeoxO;9 zAv{0K`L)JbKNhX^t|_jvm$?Mf_tQPOX|bz|c8hDc1pTsCP!*+9>;g2UPphKo@_|<~ zjpMP`=qM^_RS{*5> z^Djl_oA~Ua-Qo$_h=xa_V88gD1(z==Gqii=1__t|9`nm@n4G zks|vhiuyJkBZT6^m7AuxCfY6JqUspY$`PQiN)fe*Yg0PnqA~76T@_6s#tc?0>w`_i z74yX_MIufXAat~PJsVe}i91_jG(R4-&=g#n$vsMKjK^FwvGTm1Wff6*+phl9@E6U_ z<$IJxghcno5g}`AyM$C9e|gX6K1Zj1%V;!BvoS?nw5K?=tI>*Gc>V(^9;g)YcRQv! zLV=Oz^*v&52SoOb8}+vc>Eg|HacdD@@9q%?%Qw4?s3+pYAlm17Mq7(`J3NjMjSn|& zzn`@c$wP|~5}QOK+&&r{S_1)x9&Q_Ls;4|oicg|DsEyICxyTEGV+sc~M!=ZY=_p86 z%|zfKgWzaj9xdL-zYI#VcoY&}8#WVdwgW;2TNGnjfG5Z&{I_JM zCxE|bB65-e8GvaZR5%_LngQ`QjiPx$2uT1xybr@dvkk&z*hs{t>){gisfr(X!?oP( z2CS1%svu=C&6|tZ&PzhS*sJYm?XY$tz?p7z#94Z>8!2kb|1MHL#-l2oj}dj0k7-F& y6y@Ub-5U6t1*UiRq=E zY4hEj(&6MJlFgjR;SY$(^VD=!piyb9a>3f?#o5F{n@*0vmG120rvNiqrelA*+(Mty zUlUI3wLPxSvsz`6->`?&ftiGKQ+uw6fq0p9Q-Pkxquq)@v>`M}N?z%|%)OpSYBOiO zKxQtEu9TIbl$*F0CTPi6J^%mz>e$Y!u*B@RVA6P78sHnO00006bW%=J0AL{e&%gY{ zFv1BQWPoW#=$CZ2JGdT7aNRAZTrAZ9Yx;KB$TU zc-Re5lyLU@<~{E@zl1mB@_b-ET)-Q1@u7DtcylZ%UBC>v5bFc8&jyW&Z;!rslY7p2eK6Ut5BWfTweeO`- zR_Szz+J}UCWs%DzM8=im+H@au2tr$rAMwK~^tyZKRVaF33~}EcheVx%)OpdMPNq2q zB(H45*Gr}53TST|Q0JQx*DLL>Y&yg>AQi{B;QiH)*s(v~e*Ag+c^g@OU0sn86AJuA z2;9*``u(SoE61q#7zACUQRLQyKI)^93nrw;(WEJ)4DDk)4%IF_1)?sz0C^c^6<7h{ z3d&_iL-OAc2{mVpnC>A+G14!D`o6%kXJ&^L6pZ;^t=YY4KGYII18X$53T3g`}|p$gql8QwqpZCFLfh z-lnkjs%$-lhORu>*{)$tv#f!K0wN~l_w|5>X@bFv5M&q!a_q4!n(KL- zc0H73S+GKkO=##%bzPJtW972$9eb-me?ARQ77JHdnyKkiC_wZiv@42+m8{(Xw?*gy ziuMnaG+D1i2i{Sr>cw`+7;9KN+?7vz=oi`FiveaHrZK3j5GxI`JkL|mPWD!?wx)vd zIeAjhFWbq7r)Gjd7QjB9h=RsZ6|rSg+ajC@>{&p6%Nt16#KA&L0x&a$VAnRRC<<9n zc?v;AS8Z3{8ire?Nn l)?6FExwfLeZQk>qe*w-=rt*H_W6J;l002ovPDHLkV1mF|DK`KB diff --git a/src/img/flags/VN.png b/src/img/flags/VN.png deleted file mode 100644 index 5282bd4343c50fe0a7faa37269837cbc336dfbd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 413 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~Yk*IPt9yaZEmc`G^w3Y@{Q}-! zPgwr{XSnYm`Km?Wag5mCk4$%rrN5nI|G1X>MY+)D-JCzJu|CTbc{_<;!K-T(&_MQ* zAirRSg#G^&&c6?x!MBfrfsw(}#WAFU@$Gf?L(K|2ZHXpZ8~s(^{l34Y`n}V?$a&0r z{HFcfKS|}ZrqjHcYa<;ecHLZNygcJ`=}HCGRzt~^Cw%<0ik!VloHUQD5!n=``DBh? z2V)p#q#$sntvsD`=9A*C2D{xh={Kv1o?vvTf zO+S6JURB^M`f1b6hfR++tXI=Lw?*jBPwP1^l>R9no)y9Qg`vpbb3#A_6agv#3i2DtI|xey*$_dXNN1t&yF)?`whI|*i}*Q%b#M`uVQ#fm5E0{y&{-^~ zBP=5>q#~6rq*N@V!dhy+OVD7QpdL%D6jT{1>9bxuxQ)X`Y*rhwI`okIeCfxn>VxDe;;$!yO&e2NhN1xcHPO}2O?B9?J>KXb41B@ZsOt85c!O?!tE`euY7;*q_(Q^_3WVg zn(M^T@0>1ojxVkh>fW*b$#ka< z4fA8mf&7cJ1p@u9M;)%UnWfA4DI!Oss`gxar_9}nmo7HneLb74L&zomiKpS(mjCnT z-;7IHwL~U&op^`m^FK@(E^gx2;7ebmYo!gZenII)w zAEP!K5Fm2-9A*{!up~Z zRe_J|e7r)xYl*xFN%g%N)XE%kRr1LFY*nE^QT`;~P^O6o?sntNAsOU)9|tMYP4HH+O+UBQ4X$ji6HmqXQJ!X$|(`_OFOl~pz=6C4-z3ZK~CXfrYU xp@mY{+j|JhCZnnO2iJ-_D7VxSipJYD@<);T3K0RRQDoy!0K diff --git a/src/img/flags/WS.png b/src/img/flags/WS.png deleted file mode 100644 index 5356f6d468b0b880bbd142263649b5ff5c6e0ccd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAjKNPtg>t9yaZIYBiDV$iOKGk|Oe z`v3obLC5xnsr%1ge-4yYaO)SaXn+6dJ5bgkVgCM8_xl$ezyI`oK<@JS8_uuadp)6g z{h4Q(NkH?tOM?7@8O|ptoPWPRL1F*`ttYw<|TJ#M0p)eSQ+%h|IV)$=?_Y?x9Z8i?7uU4P2<|{+ie~GS%zHuYJV>M zmU@Xu(P8IX?>U>YYXpj952*fq)#ve2;|Y&Q`7})}1@5ELUWv_n>=}0Qd`i?mx1{CS z`Z*6Zk9CR)d{&y1%VB;ba&tyc$D_~o-4jg$W(ls>>~2aIRZ+ehG?9tx_4KnB9a6t* z#IQ;QzS7y%x2ENkmctWmM<-K-q+_j>HoTPwx9&XFJMGX#N4e!1rV5Wl)YiA05}6SE z#Xg`}>dFE((-YSUb!J#iV0@8fAxw~H><26aDfByNs)H}R^U45=;TD+0Ap{K)}=}x8=??8L358j2kdZNyK0V(|x z6|ZnVML<+k3M7aSIo`jpWye)b=pDQ}FUk5u4gisiT6L|;V0*7H3 zdH+{5c8uClOo6*HJ*%$1z=BSG>%1sHAtrDNkj=nW?E2LLw{ls93TN9QRCdmCU4mTV zvn43@zLQDb>$z@pGT4RU$O!< zpxp#pmLP#7DqmV?Mgx*eQh^HO2cZ}9S0T0V*hEsB5L%-~ZDwf=Kiw(%?Abr;4f?TO U_)reOdjJ3c07*qoM6N<$f|8XXVE_OC diff --git a/src/img/flags/YE.png b/src/img/flags/YE.png deleted file mode 100644 index e858bb2c19363e2424a94a376dd9ae9330ec9093..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 239 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~dVo)et9yZuh=|BJK{W^hvf*4H z|dW?kZ}GzH#a8_P&C)m#WAGf*4uNtc@G%yFb8UV zGQarmGaFyfZb9v4^8<$+R~Elk6`K0bc)GjMe!Fy+T^m*So%p^ixDsd);5b1@#p8n6 zoh2-sLMj@PazRZjoVVB>TeO{O)JmA6xZvy_W9exrFXum9vuf!KuBCl%Ssi%h{Y(vI RE&*E1;OXk;vd$@?2>^B;P#*vQ diff --git a/src/img/flags/YT.png b/src/img/flags/YT.png deleted file mode 100644 index 642b133c089008f62b286e5760938be79b81952b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1184 zcmV;R1Yi4!P)(de;N(AnS4*xusi>DAofiHC=kla$!syU z+~MSdgTfaVmQ78pT3WIsB%Ga{&EetcKR>6s#?I8#-pA3`nX0v>wZE{w$HUImovyj8 zyTs&O9>2=b+(sAwtTX(iF}B0Ye0qA};o+5`sf?MT$3eRi00007bW%=J0ARoWAkXhr zm=3-G00W3gL_t(|0b&@wU=)l304sEnXdw&(P!zaW5<;66y8oSicb9jnqgX%i4@3VD zW}Nt^X}pUw^KbKQq=^fdZsx;9^xeQk3>|MRD~K9wEAFuFmU6i1jdFM0eT~=N2l6b` zn?r;hVM{t=!9oxPBy<1a`#@2NChV;gHVu&m6n_yYxjWwnsyro6u z%_|3W=16 z`Y@963Mjfn3~X?OSvGI7a5`@U%t>-qYlSMnou;4yId+J(?3Tx1Pb+i%y=l(N!rTA^|K{O$&!i z?;3++-K+o<5s`9fn>8%CYwhhltcZ(~r&$7Esa*>uX+)pi8aCds=|r;2Q>S+ghV7|4 zWfMJpySco&G!B39)QXh%=%pW{n21Q>i?+6T-`eK->Ut9{tjN~v{HEkI`F_MofbLc> z*w$hq0Lum$P|CCKkdzX#UIR$A20(8K$@mYvXUk^cMX|-ULlRm_wx;|nwmam$wOa&H zyYs_R@uWz!l*3#u*LJb@hgWakKEL(*>d+&kga#p05Vk8*BDt1?S5~C$q#gF;4pwcW zXdBv;6)jDOsx|R!TS#*;-}`s`!=dM{?C0(kq8G%YvxJCskLX&E4x7v->7dx@?zkxt zt!p1>1x9Ys>ycY1tbC;PlE+2%7&RqXy;_ze4KKH=r77F3S$dADT5G-Y8=E$%MQh4x zc5Wc4WGoDAT9q*-`M>!#5|D-1YN-kY@}jDa$W`_eBF+S``?>|tG>wLCEG^I;0TePS zx`=85TI&|Aw$$jzAEvs9oI)sA6m$QwfMg|5RyiyWLj4yxsmTDrsJVRb&5gRd6(Axf yHIdUSCCOQ+VzJY#Z=*`bk6K;PVGBmVC;$Ln%(T>!IWB_$0000LTjrH_9(sM|RNK_!OV(eyaP@KI zvQ8P{-LHXu5hw}r3uaI_udsjrdxeDa=Mxh4zkk1B#+K6z42&(FE{-7;x86?g_B&)C z;ifI_>KJ?TS!vI~8F!8>RO&Ln_kZn_WuCFy;`SX&;k;SdF!^xUuK((yqQAXYKWw?z z*Z*7ZT;}ZTzP`EfY~?P;!Cbb9WTNG~U`86%jXNuyMZl&pwy%rq(!ah&pV>sQPDfm2}apL>uK+gk<4FVlQ zL>31=x%HiUv6-Bh>z&)ua-lT>_ns|Nx<1wAt5d(>>=|840-GD$CA&ldo#j&1f?RW% z&+`B&S3`v$_gsdFR#{ivU6r`pJBk8#aC9)aC~=852JTp~WIo%IDIb2h@}2wt*Y%6# zW1)3|u6|81Iloqao1CS1Nyd=1#y-H-rLfFt-sB+WEAk!_7mJ@P`r-ZGYo+8X#U#a| zk`u?IRN56Kw^Z;o)O?9vD&lC?qc=~pEyX5ot)@p_!gEWFvx`KNb}loR+qCrA+(&bs zTwn84`>5sWbaDH6&EKyWuU?Vsx7k@s>)SMW6JcJnNeOXNfN{m(>FVdQ&MBb@08Z&I AZvX%Q diff --git a/src/img/flags/ZM.png b/src/img/flags/ZM.png deleted file mode 100644 index 6283325081029c1b7e400ae618847373201b29ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 407 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAjKRDe&2t9yaZ`&tI6E))b5K}JAX z(+-A5bquj>3~L%0j@L8nYG9b(#NgDykk!g?rJkX@g+aZOVNx^0Jq3Od5fT4(hSnB_ zP4C-GfVOa#1o;IsDC|#Acz=F>!uj{BJ6z@hg&%slIEGZjy}f?2k6Dq&HE_9y$EEXU zOuv2jzyGGviiuIHc$-3>>`r>D+&%YY?PL|xLifpwE`=7S|N2#wcjvCI_bm1$og)06 zfv4?fzuz)@|MR$sH_zG#ns14`u|co$TGCykM?pOfH+FJ<(qNTute9aLx#!azwwcLC zGxeN(b(dc{cvfJxYSf?8`EA@+=6EmE+xC`qMZo7Ij)t$?#qvkkIPE20w4^bVu^f3< zaBhx6EN95?HMLg*ggq8)W)bpGXk?jn%%MCec>()GIY!&lGq3X2#+-V1o!eIbtH|5N gcl=eiRbGlS?Y_7mdi!rqpl2C8UHx3vIVCg!0G?^2j{pDw diff --git a/src/img/flags/ZW.png b/src/img/flags/ZW.png deleted file mode 100644 index d87fd6ac15e5380bafcc03f51048daca67589c12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 770 zcmV+d1O5DoP)PNE?76VsAP@hx zCI7$};w~BMq?qm2(i9XF&U{>t^{UgW}t-#b8~a>#sM!bCNYu;#l^)s z78AI*xKUA2B2N#9h=|c252mK3)6>&tRt+g{4C1;2wg{a20000CbW%=J0AL``&+oq= zV88Fr+)Oe$0005yNklpge{g0ShdA z-sZsvyrza6dasu=XJ+$90`r;CTzvZdNaM`~Jnud(vadwbTbM3+catrtYx2DJT=6Yi z664Lh4;(x_5aZ1~uIavH`+G)U5Fy^fHC+TgAF^Az$i(|~PZxo^Y=2D`fggwEEnNhD zE)b6@s&ZA_Wcxo9k?&W$349%I7g#fhnw4nNILJ{vEwYWHsA^Y?iCWdEs?f#H-#f2u@49(8%8B%pgP*gjP(R63S}XoPt9k5I3pkq#H+L|69YL&VFEH613A2}i$|A4ci( zBbaPppY93aT_Vp#0tL4m@zlLvI!=7E3KmY&$07*qoM6N<$g18iB A8~^|S diff --git a/src/img/gear-icon-light.svg b/src/img/gear-icon-light.svg deleted file mode 100644 index c52fe68..0000000 --- a/src/img/gear-icon-light.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/img/gear-icon.svg b/src/img/gear-icon.svg deleted file mode 100644 index ce8b1cb..0000000 --- a/src/img/gear-icon.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/img/info-thin-16.svg b/src/img/info-thin-16.svg deleted file mode 100644 index c3edf49..0000000 --- a/src/img/info-thin-16.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - diff --git a/src/img/info.svg b/src/img/info.svg deleted file mode 100644 index a5f000a..0000000 --- a/src/img/info.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/img/movetowindow-16.svg b/src/img/movetowindow-16.svg deleted file mode 100644 index 80181a3..0000000 --- a/src/img/movetowindow-16.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/src/img/moz-vpn-connected.svg b/src/img/moz-vpn-connected.svg deleted file mode 100644 index c28a9e9..0000000 --- a/src/img/moz-vpn-connected.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/src/img/moz-vpn-disconnected.svg b/src/img/moz-vpn-disconnected.svg deleted file mode 100644 index bd7b5fd..0000000 --- a/src/img/moz-vpn-disconnected.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/src/img/moz-vpn-logo-light.svg b/src/img/moz-vpn-logo-light.svg deleted file mode 100644 index 305e401..0000000 --- a/src/img/moz-vpn-logo-light.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - diff --git a/src/img/moz-vpn-logo.svg b/src/img/moz-vpn-logo.svg deleted file mode 100644 index 79449c4..0000000 --- a/src/img/moz-vpn-logo.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - diff --git a/src/img/moz-vpn-onboarding.svg b/src/img/moz-vpn-onboarding.svg deleted file mode 100644 index 488645f..0000000 --- a/src/img/moz-vpn-onboarding.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/src/img/moz-vpn-status-icons/moz-vpn-connected.svg b/src/img/moz-vpn-status-icons/moz-vpn-connected.svg deleted file mode 100644 index 31e5581..0000000 --- a/src/img/moz-vpn-status-icons/moz-vpn-connected.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/src/img/moz-vpn-status-icons/moz-vpn-disconnected.svg b/src/img/moz-vpn-status-icons/moz-vpn-disconnected.svg deleted file mode 100644 index c90bf81..0000000 --- a/src/img/moz-vpn-status-icons/moz-vpn-disconnected.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/src/img/multiaccountcontainer-16-dark.svg b/src/img/multiaccountcontainer-16-dark.svg deleted file mode 100644 index 3c1e24c..0000000 --- a/src/img/multiaccountcontainer-16-dark.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/src/img/multiaccountcontainer-16.svg b/src/img/multiaccountcontainer-16.svg deleted file mode 100644 index d6a13d1..0000000 --- a/src/img/multiaccountcontainer-16.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/src/img/new-16.svg b/src/img/new-16.svg deleted file mode 100644 index b759168..0000000 --- a/src/img/new-16.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - diff --git a/src/img/no-connection.svg b/src/img/no-connection.svg deleted file mode 100644 index 02b8663..0000000 --- a/src/img/no-connection.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - image/svg+xml - - - - - - - diff --git a/src/img/onboarding-1.png b/src/img/onboarding-1.png deleted file mode 100644 index a75e6712a7c87f60156aee6d00c43602af905a1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10810 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 O1-zC~kuHB_8vH-^YytZK diff --git a/src/img/onboarding-2.png b/src/img/onboarding-2.png deleted file mode 100644 index f0c7b1a411d1d3ca5b2459da6935b88cc57e078b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10680 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 aW-x*l@6Z)?qQA%ls6E$Iu2Os({yzX^++Y&` diff --git a/src/img/onboarding-3-security.png b/src/img/onboarding-3-security.png deleted file mode 100644 index 8bd0205d2407fa74ee1e3af45d634a830a493924..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25006 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 T*>Mf{? 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�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 - - - - - - - - diff --git a/src/img/password-hide.svg b/src/img/password-hide.svg deleted file mode 100644 index af7818d..0000000 --- a/src/img/password-hide.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - diff --git a/src/img/proxy-warning-light.svg b/src/img/proxy-warning-light.svg deleted file mode 100644 index 72b5332..0000000 --- a/src/img/proxy-warning-light.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/img/proxy-warning.svg b/src/img/proxy-warning.svg deleted file mode 100644 index ce5a29d..0000000 --- a/src/img/proxy-warning.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/img/refresh-16.svg b/src/img/refresh-16.svg deleted file mode 100644 index 2e40ef6..0000000 --- a/src/img/refresh-16.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - diff --git a/src/img/sort-16_1.svg b/src/img/sort-16_1.svg deleted file mode 100644 index 83ae0ee..0000000 --- a/src/img/sort-16_1.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - diff --git a/src/img/tab-new-16.svg b/src/img/tab-new-16.svg deleted file mode 100644 index d8c7ba6..0000000 --- a/src/img/tab-new-16.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - diff --git a/src/img/usercontext.svg b/src/img/usercontext.svg deleted file mode 100644 index fb48e4a..0000000 --- a/src/img/usercontext.svg +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/img/warning.svg b/src/img/warning.svg deleted file mode 100644 index 31b5430..0000000 --- a/src/img/warning.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/img/webicon-facebook.svg b/src/img/webicon-facebook.svg deleted file mode 100755 index c87adaf..0000000 --- a/src/img/webicon-facebook.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - diff --git a/src/img/webicon-twitter.svg b/src/img/webicon-twitter.svg deleted file mode 100755 index 6636eaa..0000000 --- a/src/img/webicon-twitter.svg +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - diff --git a/src/js/.eslintrc.js b/src/js/.eslintrc.js deleted file mode 100644 index 4941e75..0000000 --- a/src/js/.eslintrc.js +++ /dev/null @@ -1,14 +0,0 @@ -module.exports = { - "extends": [ - "../../.eslintrc.js" - ], - "globals": { - "assignManager": true, - "badge": true, - "backgroundLogic": true, - "identityState": true, - "messageHandler": true, - "sync": true, - "Utils": true - } -}; diff --git a/src/js/background/assignManager.js b/src/js/background/assignManager.js deleted file mode 100644 index 907e3c3..0000000 --- a/src/js/background/assignManager.js +++ /dev/null @@ -1,790 +0,0 @@ -window.assignManager = { - MENU_ASSIGN_ID: "open-in-this-container", - MENU_REMOVE_ID: "remove-open-in-this-container", - MENU_SEPARATOR_ID: "separator", - MENU_HIDE_ID: "hide-container", - MENU_MOVE_ID: "move-to-new-window-container", - OPEN_IN_CONTAINER: "open-bookmark-in-container-tab", - storageArea: { - area: browser.storage.local, - exemptedTabs: {}, - - getSiteStoreKey(pageUrlorUrlKey) { - if (pageUrlorUrlKey.includes("siteContainerMap@@_")) return pageUrlorUrlKey; - const url = new window.URL(pageUrlorUrlKey); - const storagePrefix = "siteContainerMap@@_"; - if (url.port === "80" || url.port === "443") { - return `${storagePrefix}${url.hostname}`; - } else { - return `${storagePrefix}${url.hostname}${url.port}`; - } - }, - - setExempted(pageUrlorUrlKey, tabId) { - const siteStoreKey = this.getSiteStoreKey(pageUrlorUrlKey); - if (!(siteStoreKey in this.exemptedTabs)) { - this.exemptedTabs[siteStoreKey] = []; - } - this.exemptedTabs[siteStoreKey].push(tabId); - }, - - removeExempted(pageUrlorUrlKey) { - const siteStoreKey = this.getSiteStoreKey(pageUrlorUrlKey); - this.exemptedTabs[siteStoreKey] = []; - }, - - isExempted(pageUrlorUrlKey, tabId) { - const siteStoreKey = this.getSiteStoreKey(pageUrlorUrlKey); - if (!(siteStoreKey in this.exemptedTabs)) { - return false; - } - return this.exemptedTabs[siteStoreKey].includes(tabId); - }, - - get(pageUrlorUrlKey) { - const siteStoreKey = this.getSiteStoreKey(pageUrlorUrlKey); - return this.getByUrlKey(siteStoreKey); - }, - - async getSyncEnabled() { - const { syncEnabled } = await browser.storage.local.get("syncEnabled"); - return !!syncEnabled; - }, - - async getReplaceTabEnabled() { - const { replaceTabEnabled } = await browser.storage.local.get("replaceTabEnabled"); - return !!replaceTabEnabled; - }, - - getByUrlKey(siteStoreKey) { - return new Promise((resolve, reject) => { - this.area.get([siteStoreKey]).then((storageResponse) => { - if (storageResponse && siteStoreKey in storageResponse) { - resolve(storageResponse[siteStoreKey]); - } - resolve(null); - }).catch((e) => { - reject(e); - }); - }); - }, - - async set(pageUrlorUrlKey, data, exemptedTabIds, backup = true) { - const siteStoreKey = this.getSiteStoreKey(pageUrlorUrlKey); - if (exemptedTabIds) { - exemptedTabIds.forEach((tabId) => { - this.setExempted(pageUrlorUrlKey, tabId); - }); - } - // eslint-disable-next-line require-atomic-updates - data.identityMacAddonUUID = - await identityState.lookupMACaddonUUID(data.userContextId); - await this.area.set({ - [siteStoreKey]: data - }); - const syncEnabled = await this.getSyncEnabled(); - if (backup && syncEnabled) { - await sync.storageArea.backup({undeleteSiteStoreKey: siteStoreKey}); - } - return; - }, - - async remove(pageUrlorUrlKey, shouldSync = true) { - const siteStoreKey = this.getSiteStoreKey(pageUrlorUrlKey); - // When we remove an assignment we should clear all the exemptions - this.removeExempted(pageUrlorUrlKey); - await this.area.remove([siteStoreKey]); - const syncEnabled = await this.getSyncEnabled(); - if (shouldSync && syncEnabled) await sync.storageArea.backup({siteStoreKey}); - return; - }, - - async deleteContainer(userContextId) { - const sitesByContainer = await this.getAssignedSites(userContextId); - this.area.remove(Object.keys(sitesByContainer)); - }, - - async getAssignedSites(userContextId = null) { - const sites = {}; - const siteConfigs = await this.area.get(); - for(const urlKey of Object.keys(siteConfigs)) { - if (urlKey.includes("siteContainerMap@@_")) { - // For some reason this is stored as string... lets check - // them both as that - if (!!userContextId && - String(siteConfigs[urlKey].userContextId) - !== String(userContextId)) { - continue; - } - const site = siteConfigs[urlKey]; - // In hindsight we should have stored this - // TODO file a follow up to clean the storage onLoad - site.hostname = urlKey.replace(/^siteContainerMap@@_/, ""); - sites[urlKey] = site; - } - } - return sites; - }, - - /* - * Looks for abandoned site assignments. If there is no identity with - * the site assignment's userContextId (cookieStoreId), then the assignment - * is removed. - */ - async upgradeData() { - const identitiesList = await browser.contextualIdentities.query({}); - const macConfigs = await this.area.get(); - for(const configKey of Object.keys(macConfigs)) { - if (configKey.includes("siteContainerMap@@_")) { - const cookieStoreId = - "firefox-container-" + macConfigs[configKey].userContextId; - const match = identitiesList.find( - localIdentity => localIdentity.cookieStoreId === cookieStoreId - ); - if (!match) { - await this.remove(configKey); - continue; - } - const updatedSiteAssignment = macConfigs[configKey]; - updatedSiteAssignment.identityMacAddonUUID = - await identityState.lookupMACaddonUUID(match.cookieStoreId); - await this.set( - configKey, - updatedSiteAssignment, - false, - false - ); - } - } - - } - - }, - - _neverAsk(m) { - const pageUrl = m.pageUrl; - if (m.neverAsk === true) { - // If we have existing data and for some reason it hasn't been - // deleted etc lets update it - this.storageArea.get(pageUrl).then((siteSettings) => { - if (siteSettings) { - siteSettings.neverAsk = true; - this.storageArea.set(pageUrl, siteSettings); - } - }).catch((e) => { - throw e; - }); - } - }, - - // We return here so the confirm page can load the tab when exempted - async _exemptTab(m) { - const pageUrl = m.pageUrl; - await this.storageArea.setExempted(pageUrl, m.tabId); - return true; - }, - - async handleProxifiedRequest(requestInfo) { - // The following blocks potentially dangerous requests for privacy that come without a tabId - - if(requestInfo.tabId === -1) { - return {}; - } - - const tab = await browser.tabs.get(requestInfo.tabId); - const result = await proxifiedContainers.retrieve(tab.cookieStoreId); - if (!result || !result.proxy) { - return {}; - } - - // proxyDNS only works for SOCKS proxies - if (["socks", "socks4"].includes(result.proxy.type)) { - result.proxy.proxyDNS = true; - } - - if (!result.proxy.mozProxyEnabled) { - return result.proxy; - } - - // Let's add the isolation key. - return [{ ...result.proxy, connectionIsolationKey: "" + MozillaVPN_Background.isolationKey }]; - }, - - // Before a request is handled by the browser we decide if we should - // route through a different container - async onBeforeRequest(options) { - if (options.frameId !== 0 || options.tabId === -1) { - return {}; - } - this.removeContextMenu(); - const [tab, siteSettings] = await Promise.all([ - browser.tabs.get(options.tabId), - this.storageArea.get(options.url) - ]); - let container; - try { - container = await browser.contextualIdentities - .get(backgroundLogic.cookieStoreId(siteSettings.userContextId)); - } catch (e) { - container = false; - } - - // The container we have in the assignment map isn't present any - // more so lets remove it then continue the existing load - if (siteSettings && !container) { - this.deleteContainer(siteSettings.userContextId); - return {}; - } - const userContextId = this.getUserContextIdFromCookieStore(tab); - - // https://github.com/mozilla/multi-account-containers/issues/847 - // - // Handle the case where this request's URL is not assigned to any particular - // container. We must do the following check: - // - // If the current tab's container is "unlocked", we can just go ahead - // and open the URL in the current tab, since an "unlocked" container accepts - // any-and-all sites. - // - // But if the current tab's container has been "locked" by the user, then we must - // re-open the page in the default container, because the user doesn't want random - // sites polluting their locked container. - // - // For example: - // - the current tab's container is locked and only allows "www.google.com" - // - the incoming request is for "www.amazon.com", which has no specific container assignment - // - in this case, we must re-open "www.amazon.com" in a new tab in the default container - const siteIsolatedReloadInDefault = - await this._maybeSiteIsolatedReloadInDefault(siteSettings, tab); - - if (!siteIsolatedReloadInDefault) { - if (!siteSettings - || userContextId === siteSettings.userContextId - || this.storageArea.isExempted(options.url, tab.id)) { - return {}; - } - } - const replaceTabEnabled = await this.storageArea.getReplaceTabEnabled(); - const removeTab = backgroundLogic.NEW_TAB_PAGES.has(tab.url) - || (messageHandler.lastCreatedTab - && messageHandler.lastCreatedTab.id === tab.id) - || replaceTabEnabled; - const openTabId = removeTab ? tab.openerTabId : tab.id; - - if (!this.canceledRequests[tab.id]) { - // we decided to cancel the request at this point, register - // canceled request - this.canceledRequests[tab.id] = { - requestIds: { - [options.requestId]: true - }, - urls: { - [options.url]: true - } - }; - - // since webRequest onCompleted and onErrorOccurred are not 100% - // reliable (see #1120) - // we register a timer here to cleanup canceled requests, just to - // make sure we don't - // end up in a situation where certain urls in a tab.id stay canceled - setTimeout(() => { - if (this.canceledRequests[tab.id]) { - delete this.canceledRequests[tab.id]; - } - }, 2000); - } else { - let cancelEarly = false; - if (this.canceledRequests[tab.id].requestIds[options.requestId] || - this.canceledRequests[tab.id].urls[options.url]) { - // same requestId or url from the same tab - // this is a redirect that we have to cancel early to prevent - // opening two tabs - cancelEarly = true; - } - // we decided to cancel the request at this point, register canceled - // request - this.canceledRequests[tab.id].requestIds[options.requestId] = true; - this.canceledRequests[tab.id].urls[options.url] = true; - if (cancelEarly) { - return { - cancel: true - }; - } - } - - if (siteIsolatedReloadInDefault) { - this.reloadPageInDefaultContainer( - options.url, - tab.index + 1, - tab.active, - openTabId - ); - } else { - this.reloadPageInContainer( - options.url, - userContextId, - siteSettings.userContextId, - tab.index + 1, - tab.active, - siteSettings.neverAsk, - openTabId - ); - } - this.calculateContextMenu(tab); - - /* Removal of existing tabs: - We aim to open the new assigned container tab / warning prompt in - it's own tab: - - As the history won't span from one container to another it - seems most sane to not try and reopen a tab on history.back() - - When users open a new tab themselves we want to make sure we - don't end up with three tabs as per: - https://github.com/mozilla/testpilot-containers/issues/421 - If we are coming from an internal url that are used for the new - tab page (NEW_TAB_PAGES), we can safely close as user is unlikely - losing history - Detecting redirects on "new tab" opening actions is pretty hard - as we don't get tab history: - - Redirects happen from Short URLs and tracking links that act as - a gateway - - Extensions don't provide a way to history crawl for tabs, we - could inject content scripts to do this - however they don't run on about:blank so this would likely be - just as hacky. - We capture the time the tab was created and close if it was within - the timeout to try to capture pages which haven't had user - interaction or history. - */ - if (removeTab) { - browser.tabs.remove(tab.id); - } - return { - cancel: true, - }; - }, - - async _maybeSiteIsolatedReloadInDefault(siteSettings, tab) { - // Tab doesn't support cookies, so containers not supported either. - if (!("cookieStoreId" in tab)) { - return false; - } - - // Requested page has been assigned to a specific container. - // I.e. it will be opened in that container anyway, so we don't need to check if the - // current tab's container is locked or not. - if (siteSettings) { - return false; - } - - //tab is alredy reopening in the default container - if (tab.cookieStoreId === "firefox-default") { - return false; - } - // Requested page is not assigned to a specific container. If the current tab's container - // is locked, then the page must be reloaded in the default container. - const currentContainerState = await identityState.storageArea.get(tab.cookieStoreId); - return currentContainerState && currentContainerState.isIsolated; - }, - - maybeAddProxyListeners() { - if (browser.proxy) { - browser.proxy.onRequest.addListener(this.handleProxifiedRequest, {urls: [""]}); - } - }, - - init() { - browser.contextMenus.onClicked.addListener((info, tab) => { - info.bookmarkId ? - this._onClickedBookmark(info) : - this._onClickedHandler(info, tab); - }); - - // Before anything happens we decide if the request should be proxified - this.maybeAddProxyListeners(); - - // Before a request is handled by the browser we decide if we should - // route through a different container - this.canceledRequests = {}; - browser.webRequest.onBeforeRequest.addListener((options) => { - return this.onBeforeRequest(options); - },{urls: [""], types: ["main_frame"]}, ["blocking"]); - - // Clean up canceled requests - browser.webRequest.onCompleted.addListener((options) => { - if (this.canceledRequests[options.tabId]) { - delete this.canceledRequests[options.tabId]; - } - },{urls: [""], types: ["main_frame"]}); - browser.webRequest.onErrorOccurred.addListener((options) => { - if (this.canceledRequests[options.tabId]) { - delete this.canceledRequests[options.tabId]; - } - },{urls: [""], types: ["main_frame"]}); - - this.resetBookmarksMenuItem(); - }, - - async resetBookmarksMenuItem() { - const hasPermission = await browser.permissions.contains({ - permissions: ["bookmarks"] - }); - if (this.hadBookmark === hasPermission) { - return; - } - this.hadBookmark = hasPermission; - if (hasPermission) { - this.initBookmarksMenu(); - browser.contextualIdentities.onCreated - .addListener(this.contextualIdentityCreated); - browser.contextualIdentities.onUpdated - .addListener(this.contextualIdentityUpdated); - browser.contextualIdentities.onRemoved - .addListener(this.contextualIdentityRemoved); - } else { - this.removeBookmarksMenu(); - browser.contextualIdentities.onCreated - .removeListener(this.contextualIdentityCreated); - browser.contextualIdentities.onUpdated - .removeListener(this.contextualIdentityUpdated); - browser.contextualIdentities.onRemoved - .removeListener(this.contextualIdentityRemoved); - } - }, - - contextualIdentityCreated(changeInfo) { - browser.contextMenus.create({ - parentId: assignManager.OPEN_IN_CONTAINER, - id: changeInfo.contextualIdentity.cookieStoreId, - title: changeInfo.contextualIdentity.name, - icons: { "16": `img/usercontext.svg#${ - changeInfo.contextualIdentity.icon - }` } - }); - }, - - contextualIdentityUpdated(changeInfo) { - browser.contextMenus.update( - changeInfo.contextualIdentity.cookieStoreId, { - title: changeInfo.contextualIdentity.name, - icons: { "16": `img/usercontext.svg#${ - changeInfo.contextualIdentity.icon}` } - }); - }, - - contextualIdentityRemoved(changeInfo) { - browser.contextMenus.remove( - changeInfo.contextualIdentity.cookieStoreId - ); - }, - - async _onClickedHandler(info, tab) { - const userContextId = this.getUserContextIdFromCookieStore(tab); - // Mapping ${URL(info.pageUrl).hostname} to ${userContextId} - let remove; - if (userContextId) { - switch (info.menuItemId) { - case this.MENU_ASSIGN_ID: - case this.MENU_REMOVE_ID: - if (info.menuItemId === this.MENU_ASSIGN_ID) { - remove = false; - } else { - remove = true; - } - await this._setOrRemoveAssignment( - tab.id, info.pageUrl, userContextId, remove - ); - break; - case this.MENU_MOVE_ID: - backgroundLogic.moveTabsToWindow({ - cookieStoreId: tab.cookieStoreId, - windowId: tab.windowId, - }); - break; - case this.MENU_HIDE_ID: - backgroundLogic.hideTabs({ - cookieStoreId: tab.cookieStoreId, - windowId: tab.windowId, - }); - break; - } - } - }, - - async _onClickedBookmark(info) { - - async function _getBookmarksFromInfo(info) { - const [bookmarkTreeNode] = - await browser.bookmarks.get(info.bookmarkId); - if (bookmarkTreeNode.type === "folder") { - return browser.bookmarks.getChildren(bookmarkTreeNode.id); - } - return [bookmarkTreeNode]; - } - - const bookmarks = await _getBookmarksFromInfo(info); - for (const bookmark of bookmarks) { - // Some checks on the urls from - // https://github.com/Rob--W/bookmark-container-tab/ thanks! - if ( !/^(javascript|place):/i.test(bookmark.url) && - bookmark.type !== "folder") { - const openInReaderMode = bookmark.url.startsWith("about:reader"); - if(openInReaderMode) { - try { - const parsed = new URL(bookmark.url); - bookmark.url = parsed.searchParams.get("url") + parsed.hash; - } catch (err) { - return err.message; - } - } - browser.tabs.create({ - cookieStoreId: info.menuItemId, - url: bookmark.url, - openInReaderMode: openInReaderMode - }); - } - } - }, - - - deleteContainer(userContextId) { - this.storageArea.deleteContainer(userContextId); - }, - - getUserContextIdFromCookieStore(tab) { - if (!("cookieStoreId" in tab)) { - return false; - } - return backgroundLogic.getUserContextIdFromCookieStoreId( - tab.cookieStoreId - ); - }, - - isTabPermittedAssign(tab) { - // Ensure we are not an important about url - const url = new URL(tab.url); - if (url.protocol === "about:" - || url.protocol === "moz-extension:") { - return false; - } - return true; - }, - - async _setOrRemoveAssignment(tabId, pageUrl, userContextId, remove) { - let actionName; - // https://github.com/mozilla/testpilot-containers/issues/626 - // Context menu has stored context IDs as strings, so we need to coerce - // the value to a string for accurate checking - userContextId = String(userContextId); - - if (!remove) { - const tabs = await browser.tabs.query({}); - const assignmentStoreKey = this.storageArea.getSiteStoreKey(pageUrl); - const exemptedTabIds = tabs.filter((tab) => { - const tabStoreKey = this.storageArea.getSiteStoreKey(tab.url); - /* Auto exempt all tabs that exist for this hostname that are not in the same container */ - if (tabStoreKey === assignmentStoreKey && - this.getUserContextIdFromCookieStore(tab) !== userContextId) { - return true; - } - return false; - }).map((tab) => { - return tab.id; - }); - - await this.storageArea.set(pageUrl, { - userContextId, - neverAsk: false - }, exemptedTabIds); - actionName = "assigned site to always open in this container"; - } else { - // Remove assignment - await this.storageArea.remove(pageUrl); - - actionName = "removed from assigned sites list"; - - // remove site isolation if now empty - await this._maybeRemoveSiteIsolation(userContextId); - } - - if (tabId) { - const tab = await browser.tabs.get(tabId); - setTimeout(function(){ - browser.tabs.sendMessage(tabId, { - text: `Successfully ${actionName}` - }); - }, 1000); - - - this.calculateContextMenu(tab); - } - }, - - async _maybeRemoveSiteIsolation(userContextId) { - const assignments = await this.storageArea.getByContainer(userContextId); - const hasAssignments = assignments && Object.keys(assignments).length > 0; - if (hasAssignments) { - return; - } - await backgroundLogic.addRemoveSiteIsolation( - backgroundLogic.cookieStoreId(userContextId), - true - ); - }, - - async _getAssignment(tab) { - const cookieStore = this.getUserContextIdFromCookieStore(tab); - // Ensure we have a cookieStore to assign to - if (cookieStore - && this.isTabPermittedAssign(tab)) { - return this.storageArea.get(tab.url); - } - return false; - }, - - _getByContainer(userContextId) { - return this.storageArea.getAssignedSites(userContextId); - }, - - removeContextMenu() { - // There is a focus issue in this menu where if you change window with a context menu click - // you get the wrong menu display because of async - // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1215376#c16 - // We also can't change for always private mode - // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1352102 - browser.contextMenus.remove(this.MENU_ASSIGN_ID); - browser.contextMenus.remove(this.MENU_REMOVE_ID); - browser.contextMenus.remove(this.MENU_SEPARATOR_ID); - browser.contextMenus.remove(this.MENU_HIDE_ID); - browser.contextMenus.remove(this.MENU_MOVE_ID); - }, - - async calculateContextMenu(tab) { - this.removeContextMenu(); - const siteSettings = await this._getAssignment(tab); - // Return early and not add an item if we have false - // False represents assignment is not permitted - if (siteSettings === false) { - return false; - } - let checked = false; - let menuId = this.MENU_ASSIGN_ID; - const tabUserContextId = this.getUserContextIdFromCookieStore(tab); - if (siteSettings && - Number(siteSettings.userContextId) === Number(tabUserContextId)) { - checked = true; - menuId = this.MENU_REMOVE_ID; - } - browser.contextMenus.create({ - id: menuId, - title: "Always Open in This Container", - checked, - type: "checkbox", - contexts: ["all"], - }); - - browser.contextMenus.create({ - id: this.MENU_SEPARATOR_ID, - type: "separator", - contexts: ["all"], - }); - - browser.contextMenus.create({ - id: this.MENU_HIDE_ID, - title: "Hide This Container", - contexts: ["all"], - }); - - browser.contextMenus.create({ - id: this.MENU_MOVE_ID, - title: "Move Tabs to a New Window", - contexts: ["all"], - }); - }, - - encodeURLProperty(url) { - return encodeURIComponent(url).replace(/[!'()*]/g, (c) => { - const charCode = c.charCodeAt(0).toString(16); - return `%${charCode}`; - }); - }, - - reloadPageInDefaultContainer(url, index, active, openerTabId) { - // To create a new tab in the default container, it is easiest just to omit the - // cookieStoreId entirely. - // - // Unfortunately, if you create a new tab WITHOUT a cookieStoreId but WITH an openerTabId, - // then the new tab automatically inherits the opener tab's cookieStoreId. - // I.e. it opens in the wrong container! - // - // So we have to explicitly pass in a cookieStoreId when creating the tab, since we - // are specifying the openerTabId. There doesn't seem to be any way - // to look up the default container's cookieStoreId programatically, so sadly - // we have to hardcode it here as "firefox-default". This is potentially - // not cross-browser compatible. - // - // Note that we could have just omitted BOTH cookieStoreId and openerTabId. But the - // drawback then is that if the user later closes the newly-created tab, the browser - // does not automatically return to the original opener tab. To get this desired behaviour, - // we MUST specify the openerTabId when creating the new tab. - const cookieStoreId = "firefox-default"; - browser.tabs.create({url, cookieStoreId, index, active, openerTabId}); - }, - - reloadPageInContainer(url, currentUserContextId, userContextId, index, active, neverAsk = false, openerTabId = null) { - const cookieStoreId = backgroundLogic.cookieStoreId(userContextId); - const loadPage = browser.runtime.getURL("confirm-page.html"); - // False represents assignment is not permitted - // If the user has explicitly checked "Never Ask Again" on the warning page we will send them straight there - if (neverAsk) { - return browser.tabs.create({url, cookieStoreId, index, active, openerTabId}); - } else { - let confirmUrl = `${loadPage}?url=${this.encodeURLProperty(url)}&cookieStoreId=${cookieStoreId}`; - let currentCookieStoreId; - if (currentUserContextId) { - currentCookieStoreId = backgroundLogic.cookieStoreId(currentUserContextId); - confirmUrl += `¤tCookieStoreId=${currentCookieStoreId}`; - } - return browser.tabs.create({ - url: confirmUrl, - cookieStoreId: currentCookieStoreId, - openerTabId, - index, - active - }).then(() => { - // We don't want to sync this URL ever nor clutter the users history - browser.history.deleteUrl({url: confirmUrl}); - }).catch((e) => { - throw e; - }); - } - }, - - async initBookmarksMenu() { - browser.contextMenus.create({ - id: this.OPEN_IN_CONTAINER, - title: "Open Bookmark in Container Tab", - contexts: ["bookmark"], - }); - - const identities = await browser.contextualIdentities.query({}); - for (const identity of identities) { - browser.contextMenus.create({ - parentId: this.OPEN_IN_CONTAINER, - id: identity.cookieStoreId, - title: identity.name, - icons: { "16": `img/usercontext.svg#${identity.icon}` } - }); - } - }, - - async removeBookmarksMenu() { - browser.contextMenus.remove(this.OPEN_IN_CONTAINER); - const identities = await browser.contextualIdentities.query({}); - for (const identity of identities) { - browser.contextMenus.remove(identity.cookieStoreId); - } - }, -}; - -assignManager.init(); diff --git a/src/js/background/backgroundLogic.js b/src/js/background/backgroundLogic.js deleted file mode 100644 index 1050d40..0000000 --- a/src/js/background/backgroundLogic.js +++ /dev/null @@ -1,406 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this file, - * You can obtain one at http://mozilla.org/MPL/2.0/. */ - -const DEFAULT_TAB = "about:newtab"; - -const backgroundLogic = { - NEW_TAB_PAGES: new Set([ - "about:startpage", - "about:newtab", - "about:home", - "about:blank" - ]), - NUMBER_OF_KEYBOARD_SHORTCUTS: 10, - unhideQueue: [], - init() { - browser.commands.onCommand.addListener(function (command) { - for (let i=0; i < backgroundLogic.NUMBER_OF_KEYBOARD_SHORTCUTS; i++) { - const key = "open_container_" + i; - const cookieStoreId = identityState.keyboardShortcut[key]; - if (command === key) { - if (cookieStoreId === "none") return; - browser.tabs.create({cookieStoreId}); - } - } - }); - - browser.permissions.onAdded.addListener(permissions => this.resetPermissions(permissions)); - browser.permissions.onRemoved.addListener(permissions => this.resetPermissions(permissions)); - }, - - resetPermissions(permissions) { - permissions.permissions.forEach(async permission => { - switch (permission) { - case "bookmarks": - assignManager.resetBookmarksMenuItem(); - break; - - case "nativeMessaging": - await MozillaVPN_Background.removeMozillaVpnProxies(); - await browser.runtime.reload(); - break; - - case "proxy": - assignManager.maybeAddProxyListeners(); - break; - } - }); - }, - - async getExtensionInfo() { - const manifestPath = browser.runtime.getURL("manifest.json"); - const response = await fetch(manifestPath); - const extensionInfo = await response.json(); - return extensionInfo; - }, - - getUserContextIdFromCookieStoreId(cookieStoreId) { - if (!cookieStoreId) { - return false; - } - const container = cookieStoreId.replace("firefox-container-", ""); - if (container !== cookieStoreId) { - return container; - } - return false; - }, - - async deleteContainer(userContextId, removed = false) { - await this._closeTabs(userContextId); - - if (!removed) { - await browser.contextualIdentities.remove(this.cookieStoreId(userContextId)); - } - - assignManager.deleteContainer(userContextId); - - // Now remove the identity->proxy association in proxifiedContainers also - proxifiedContainers.delete(this.cookieStoreId(userContextId)); - - return {done: true, userContextId}; - }, - - async createOrUpdateContainer(options) { - if (options.userContextId !== "new") { - return await browser.contextualIdentities.update( - this.cookieStoreId(options.userContextId), - options.params - ); - } - return await browser.contextualIdentities.create(options.params); - }, - - async openNewTab(options) { - let url = options.url || undefined; - const userContextId = ("userContextId" in options) ? options.userContextId : 0; - const active = ("nofocus" in options) ? options.nofocus : true; - const discarded = ("noload" in options) ? options.noload : false; - - const cookieStoreId = backgroundLogic.cookieStoreId(userContextId); - // Autofocus url bar will happen in 54: https://bugzilla.mozilla.org/show_bug.cgi?id=1295072 - - // We can't open new tab pages, so open a blank tab. Used in tab un-hide - if (this.NEW_TAB_PAGES.has(url)) { - url = undefined; - } - - if (!this.isPermissibleURL(url)) { - return; - } - - return browser.tabs.create({ - url, - active, - discarded, - pinned: options.pinned || false, - cookieStoreId - }); - }, - - isPermissibleURL(url) { - const protocol = new URL(url).protocol; - // We can't open these we just have to throw them away - if (protocol === "about:" - || protocol === "chrome:" - || protocol === "moz-extension:") { - return false; - } - return true; - }, - - checkArgs(requiredArguments, options, methodName) { - requiredArguments.forEach((argument) => { - if (!(argument in options)) { - return new Error(`${methodName} must be called with ${argument} argument.`); - } - }); - }, - - async getTabs(options) { - const requiredArguments = ["cookieStoreId", "windowId"]; - this.checkArgs(requiredArguments, options, "getTabs"); - const { cookieStoreId, windowId } = options; - - const list = []; - const tabs = await browser.tabs.query({ - cookieStoreId, - windowId - }); - tabs.forEach((tab) => { - list.push(identityState._createTabObject(tab)); - }); - - const containerState = await identityState.storageArea.get(cookieStoreId); - return list.concat(containerState.hiddenTabs); - }, - - async unhideContainer(cookieStoreId, alreadyShowingUrl) { - if (!this.unhideQueue.includes(cookieStoreId)) { - this.unhideQueue.push(cookieStoreId); - await this.showTabs({ - cookieStoreId, - alreadyShowingUrl - }); - this.unhideQueue.splice(this.unhideQueue.indexOf(cookieStoreId), 1); - } - }, - - // https://github.com/mozilla/multi-account-containers/issues/847 - async addRemoveSiteIsolation(cookieStoreId, remove = false) { - const containerState = await identityState.storageArea.get(cookieStoreId); - try { - if ("isIsolated" in containerState || remove) { - delete containerState.isIsolated; - } else { - containerState.isIsolated = "locked"; - } - return await identityState.storageArea.set(cookieStoreId, containerState); - } catch (error) { - // console.error(`No container: ${cookieStoreId}`); - } - }, - - async moveTabsToWindow(options) { - const requiredArguments = ["cookieStoreId", "windowId"]; - this.checkArgs(requiredArguments, options, "moveTabsToWindow"); - const { cookieStoreId, windowId } = options; - - const list = await browser.tabs.query({ - cookieStoreId, - windowId - }); - - const containerState = await identityState.storageArea.get(cookieStoreId); - - // Nothing to do - if (list.length === 0 && - containerState.hiddenTabs.length === 0) { - return; - } - let newWindowObj; - let hiddenDefaultTabToClose; - if (list.length) { - newWindowObj = await browser.windows.create(); - - // Pin the default tab in the new window so existing pinned tabs can be moved after it. - // From the docs (https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/tabs/move): - // Note that you can't move pinned tabs to a position after any unpinned tabs in a window, or move any unpinned tabs to a position before any pinned tabs. - await browser.tabs.update(newWindowObj.tabs[0].id, { pinned: true }); - - browser.tabs.move(list.map((tab) => tab.id), { - windowId: newWindowObj.id, - index: -1 - }); - } else { - // As we get a blank tab here we will need to await the tabs creation - newWindowObj = await browser.windows.create({ - }); - hiddenDefaultTabToClose = true; - } - - const showHiddenPromises = []; - - // Let's show the hidden tabs. - if (!this.unhideQueue.includes(cookieStoreId)) { - this.unhideQueue.push(cookieStoreId); - for (let object of containerState.hiddenTabs) { // eslint-disable-line prefer-const - showHiddenPromises.push(browser.tabs.create({ - url: object.url || DEFAULT_TAB, - windowId: newWindowObj.id, - cookieStoreId - })); - } - } - - if (hiddenDefaultTabToClose) { - // Lets wait for hidden tabs to show before closing the others - await showHiddenPromises; - } - - containerState.hiddenTabs = []; - - // Let's close all the normal tab in the new window. In theory it - // should be only the first tab, but maybe there are addons doing - // crazy stuff. - const tabs = await browser.tabs.query({windowId: newWindowObj.id}); - for (let tab of tabs) { // eslint-disable-line prefer-const - if (tab.cookieStoreId !== cookieStoreId) { - browser.tabs.remove(tab.id); - } - } - const rv = await identityState.storageArea.set(cookieStoreId, containerState); - this.unhideQueue.splice(this.unhideQueue.indexOf(cookieStoreId), 1); - return rv; - }, - - async _closeTabs(userContextId, windowId = false) { - const cookieStoreId = this.cookieStoreId(userContextId); - let tabs; - /* if we have no windowId we are going to close all this container (used for deleting) */ - if (windowId !== false) { - tabs = await browser.tabs.query({ - cookieStoreId, - windowId - }); - } else { - tabs = await browser.tabs.query({ - cookieStoreId - }); - } - const tabIds = tabs.map((tab) => tab.id); - return browser.tabs.remove(tabIds); - }, - - async queryIdentitiesState(windowId) { - const identities = await browser.contextualIdentities.query({}); - const identitiesOutput = {}; - const identitiesPromise = identities.map(async (identity) => { - const { cookieStoreId } = identity; - const containerState = await identityState.storageArea.get(cookieStoreId); - const openTabs = await browser.tabs.query({ - cookieStoreId, - windowId - }); - identitiesOutput[cookieStoreId] = { - hasHiddenTabs: !!containerState.hiddenTabs.length, - hasOpenTabs: !!openTabs.length, - numberOfHiddenTabs: containerState.hiddenTabs.length, - numberOfOpenTabs: openTabs.length, - isIsolated: !!containerState.isIsolated - }; - return; - }); - await Promise.all(identitiesPromise); - return identitiesOutput; - }, - - async sortTabs() { - const windows = await browser.windows.getAll(); - for (let windowObj of windows) { // eslint-disable-line prefer-const - // First the pinned tabs, then the normal ones. - await this._sortTabsInternal(windowObj, true); - await this._sortTabsInternal(windowObj, false); - } - }, - - async _sortTabsInternal(windowObj, pinnedTabs) { - const tabs = await browser.tabs.query({windowId: windowObj.id}); - let pos = 0; - - // Let's collect UCIs/tabs for this window. - const map = new Map; - for (const tab of tabs) { - if (pinnedTabs && !tab.pinned) { - // We don't have, or we already handled all the pinned tabs. - break; - } - - if (!pinnedTabs && tab.pinned) { - // pinned tabs must be consider as taken positions. - ++pos; - continue; - } - - if (!map.has(tab.cookieStoreId)) { - const userContextId = backgroundLogic.getUserContextIdFromCookieStoreId(tab.cookieStoreId); - map.set(tab.cookieStoreId, { order: userContextId, tabs: [] }); - } - map.get(tab.cookieStoreId).tabs.push(tab); - } - - const containerOrderStorage = await browser.storage.local.get([CONTAINER_ORDER_STORAGE_KEY]); - const containerOrder = - containerOrderStorage && containerOrderStorage[CONTAINER_ORDER_STORAGE_KEY]; - - if (containerOrder) { - map.forEach((obj, key) => { - obj.order = (key in containerOrder) ? containerOrder[key] : -1; - }); - } - - // Let's sort the map. - const sortMap = new Map([...map.entries()].sort((a, b) => a[1].order > b[1].order)); - - // Let's move tabs. - sortMap.forEach(obj => { - for (const tab of obj.tabs) { - ++pos; - browser.tabs.move(tab.id, { - windowId: windowObj.id, - index: pos - }); - } - }); - }, - - async hideTabs(options) { - const requiredArguments = ["cookieStoreId", "windowId"]; - this.checkArgs(requiredArguments, options, "hideTabs"); - const { cookieStoreId, windowId } = options; - - const userContextId = backgroundLogic.getUserContextIdFromCookieStoreId(cookieStoreId); - - const containerState = await identityState.storeHidden(cookieStoreId, windowId); - await this._closeTabs(userContextId, windowId); - return containerState; - }, - - async showTabs(options) { - if (!("cookieStoreId" in options)) { - return Promise.reject("showTabs must be called with cookieStoreId argument."); - } - - const userContextId = backgroundLogic.getUserContextIdFromCookieStoreId(options.cookieStoreId); - const promises = []; - - const containerState = await identityState.storageArea.get(options.cookieStoreId); - - for (let object of containerState.hiddenTabs) { // eslint-disable-line prefer-const - // do not show already opened url - const noload = !object.pinned; - if (object.url !== options.alreadyShowingUrl) { - promises.push(this.openNewTab({ - userContextId: userContextId, - url: object.url, - nofocus: options.nofocus || false, - noload: noload, - pinned: object.pinned, - })); - } - } - - containerState.hiddenTabs = []; - - await Promise.all(promises); - return identityState.storageArea.set(options.cookieStoreId, containerState); - }, - - cookieStoreId(userContextId) { - if(userContextId === 0) return "firefox-default"; - return `firefox-container-${userContextId}`; - } -}; - - -backgroundLogic.init(); diff --git a/src/js/background/badge.js b/src/js/background/badge.js deleted file mode 100644 index f266ad9..0000000 --- a/src/js/background/badge.js +++ /dev/null @@ -1,21 +0,0 @@ -const MAJOR_VERSIONS = ["2.3.0", "2.4.0", "6.2.0", "8.0.2"]; -const badge = { - async init() { - const currentWindow = await browser.windows.getCurrent(); - this.displayBrowserActionBadge(currentWindow); - }, - - async displayBrowserActionBadge() { - const extensionInfo = await backgroundLogic.getExtensionInfo(); - const storage = await browser.storage.local.get({ browserActionBadgesClicked: [] }); - - if (MAJOR_VERSIONS.indexOf(extensionInfo.version) > -1 && - storage.browserActionBadgesClicked.indexOf(extensionInfo.version) < 0) { - browser.browserAction.setBadgeBackgroundColor({ color: "rgb(255, 79, 94)" }); - browser.browserAction.setBadgeText({ text: "!" }); - browser.browserAction.setBadgeTextColor({ color: "rgb(255, 255, 255)" }); - } - } -}; - -badge.init(); diff --git a/src/js/background/identityState.js b/src/js/background/identityState.js deleted file mode 100644 index 9114240..0000000 --- a/src/js/background/identityState.js +++ /dev/null @@ -1,194 +0,0 @@ -window.identityState = { - keyboardShortcut: {}, - storageArea: { - area: browser.storage.local, - - getContainerStoreKey(cookieStoreId) { - const storagePrefix = "identitiesState@@_"; - return `${storagePrefix}${cookieStoreId}`; - }, - - async get(cookieStoreId) { - const storeKey = this.getContainerStoreKey(cookieStoreId); - const storageResponse = await this.area.get([storeKey]); - if (storageResponse && storeKey in storageResponse) { - if (!storageResponse[storeKey].macAddonUUID){ - storageResponse[storeKey].macAddonUUID = uuidv4(); - await this.set(cookieStoreId, storageResponse[storeKey]); - } - return storageResponse[storeKey]; - } - // If local storage doesn't have an entry, look it up to make sure it's - // an in-use identity. - const identities = await browser.contextualIdentities.query({}); - const match = identities.find( - (identity) => identity.cookieStoreId === cookieStoreId); - if (match) { - const defaultContainerState = identityState._createIdentityState(); - await this.set(cookieStoreId, defaultContainerState); - return defaultContainerState; - } - return false; - }, - - set(cookieStoreId, data) { - const storeKey = this.getContainerStoreKey(cookieStoreId); - return this.area.set({ - [storeKey]: data - }); - }, - - async remove(cookieStoreId) { - const storeKey = this.getContainerStoreKey(cookieStoreId); - return this.area.remove([storeKey]); - }, - - async setKeyboardShortcut(shortcutId, cookieStoreId) { - identityState.keyboardShortcut[shortcutId] = cookieStoreId; - return this.area.set({[shortcutId]: cookieStoreId}); - }, - - async loadKeyboardShortcuts () { - const identities = await browser.contextualIdentities.query({}); - for (let i=0; i < backgroundLogic.NUMBER_OF_KEYBOARD_SHORTCUTS; i++) { - const key = "open_container_" + i; - const storageObject = await this.area.get(key); - if (storageObject[key]){ - identityState.keyboardShortcut[key] = storageObject[key]; - continue; - } - if (identities[i]) { - identityState.keyboardShortcut[key] = identities[i].cookieStoreId; - continue; - } - identityState.keyboardShortcut[key] = "none"; - } - return identityState.keyboardShortcut; - }, - - /* - * Looks for abandoned identity keys in local storage, and makes sure all - * identities registered in the browser are also in local storage. (this - * appears to not always be the case based on how this.get() is written) - */ - async upgradeData() { - const identitiesList = await browser.contextualIdentities.query({}); - - for (const identity of identitiesList) { - // ensure all identities have an entry in local storage - await identityState.addUUID(identity.cookieStoreId); - } - - const macConfigs = await this.area.get(); - for(const configKey of Object.keys(macConfigs)) { - if (configKey.includes("identitiesState@@_")) { - const cookieStoreId = String(configKey).replace(/^identitiesState@@_/, ""); - const match = identitiesList.find( - localIdentity => localIdentity.cookieStoreId === cookieStoreId - ); - if (cookieStoreId === "firefox-default") continue; - if (!match) { - await this.remove(cookieStoreId); - continue; - } - if (!macConfigs[configKey].macAddonUUID) { - await identityState.storageArea.get(cookieStoreId); - } - } - } - }, - - }, - - _createTabObject(tab) { - return Object.assign({}, tab); - }, - - async getCookieStoreIDuuidMap() { - const containers = {}; - const identities = await browser.contextualIdentities.query({}); - for(const identity of identities) { - const containerInfo = await this.storageArea.get(identity.cookieStoreId); - containers[identity.cookieStoreId] = containerInfo.macAddonUUID; - } - return containers; - }, - - async storeHidden(cookieStoreId, windowId) { - const containerState = await this.storageArea.get(cookieStoreId); - const tabsByContainer = await browser.tabs.query({cookieStoreId, windowId}); - tabsByContainer.forEach((tab) => { - const tabObject = this._createTabObject(tab); - if (!backgroundLogic.isPermissibleURL(tab.url)) { - return; - } - // This tab is going to be closed. Let's mark this tabObject as - // non-active. - tabObject.active = false; - tabObject.hiddenState = true; - containerState.hiddenTabs.push(tabObject); - }); - - return this.storageArea.set(cookieStoreId, containerState); - }, - - async updateUUID(cookieStoreId, uuid) { - if (!cookieStoreId || !uuid) { - throw new Error ("cookieStoreId or uuid missing"); - } - const containerState = await this.storageArea.get(cookieStoreId); - containerState.macAddonUUID = uuid; - await this.storageArea.set(cookieStoreId, containerState); - return uuid; - }, - - async addUUID(cookieStoreId) { - await this.storageArea.get(cookieStoreId); - }, - - async lookupMACaddonUUID(cookieStoreId) { - // This stays a lookup, because if the cookieStoreId doesn't - // exist, this.get() will create it, which is not what we want. - const cookieStoreIdKey = cookieStoreId.includes("firefox-container-") ? - cookieStoreId : "firefox-container-" + cookieStoreId; - const macConfigs = await this.storageArea.area.get(); - for(const configKey of Object.keys(macConfigs)) { - if (configKey === this.storageArea.getContainerStoreKey(cookieStoreIdKey)) { - return macConfigs[configKey].macAddonUUID; - } - } - return false; - }, - - async lookupCookieStoreId(macAddonUUID) { - const macConfigs = await this.storageArea.area.get(); - for(const configKey of Object.keys(macConfigs)) { - if (configKey.includes("identitiesState@@_")) { - if(macConfigs[configKey].macAddonUUID === macAddonUUID) { - return String(configKey).replace(/^identitiesState@@_/, ""); - } - } - } - return false; - }, - - _createIdentityState() { - return { - hiddenTabs: [], - macAddonUUID: uuidv4() - }; - }, - - init() { - this.storageArea.loadKeyboardShortcuts(); - } -}; - -identityState.init(); - -function uuidv4() { - // https://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript - return ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, c => - (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16) - ); -} diff --git a/src/js/background/index.html b/src/js/background/index.html deleted file mode 100644 index 818dbb4..0000000 --- a/src/js/background/index.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/src/js/background/messageHandler.js b/src/js/background/messageHandler.js deleted file mode 100644 index 5d644b6..0000000 --- a/src/js/background/messageHandler.js +++ /dev/null @@ -1,269 +0,0 @@ -const messageHandler = { - // After the timer completes we assume it's a tab the user meant to keep open - // We use this to catch redirected tabs that have just opened - // If this were in platform we would change how the tab opens based on "new tab" link navigations such as ctrl+click - LAST_CREATED_TAB_TIMER: 2000, - - init() { - // Handles messages from webextension code - browser.runtime.onMessage.addListener(async (m) => { - let response; - let tab; - - switch (m.method) { - case "getShortcuts": - response = identityState.storageArea.loadKeyboardShortcuts(); - break; - case "setShortcut": - identityState.storageArea.setKeyboardShortcut(m.shortcut, m.cookieStoreId); - break; - case "resetSync": - response = sync.resetSync(); - break; - case "deleteContainer": - response = backgroundLogic.deleteContainer(m.message.userContextId); - break; - case "createOrUpdateContainer": - response = backgroundLogic.createOrUpdateContainer(m.message); - break; - case "neverAsk": - assignManager._neverAsk(m); - break; - case "addRemoveSiteIsolation": - response = backgroundLogic.addRemoveSiteIsolation(m.cookieStoreId); - break; - case "getAssignment": - response = browser.tabs.get(m.tabId).then((tab) => { - return assignManager._getAssignment(tab); - }); - break; - case "getAssignmentObjectByContainer": - response = assignManager._getByContainer(m.message.userContextId); - break; - case "setOrRemoveAssignment": - // m.tabId is used for where to place the in content message - // m.url is the assignment to be removed/added - response = assignManager._setOrRemoveAssignment(m.tabId, m.url, m.userContextId, m.value); - break; - case "sortTabs": - backgroundLogic.sortTabs(); - break; - case "showTabs": - backgroundLogic.unhideContainer(m.cookieStoreId); - break; - case "hideTabs": - backgroundLogic.hideTabs({ - cookieStoreId: m.cookieStoreId, - windowId: m.windowId - }); - break; - case "checkIncompatibleAddons": - // TODO - break; - case "moveTabsToWindow": - response = backgroundLogic.moveTabsToWindow({ - cookieStoreId: m.cookieStoreId, - windowId: m.windowId - }); - break; - case "getTabs": - response = backgroundLogic.getTabs({ - cookieStoreId: m.cookieStoreId, - windowId: m.windowId - }); - break; - case "queryIdentitiesState": - response = backgroundLogic.queryIdentitiesState(m.message.windowId); - break; - case "exemptContainerAssignment": - response = assignManager._exemptTab(m); - break; - case "reloadInContainer": - response = assignManager.reloadPageInContainer( - m.url, - m.currentUserContextId, - m.newUserContextId, - m.tabIndex, - m.active, - true - ); - break; - case "assignAndReloadInContainer": - tab = await assignManager.reloadPageInContainer( - m.url, - m.currentUserContextId, - m.newUserContextId, - m.tabIndex, - m.active, - true - ); - // m.tabId is used for where to place the in content message - // m.url is the assignment to be removed/added - response = browser.tabs.get(tab.id).then((tab) => { - return assignManager._setOrRemoveAssignment(tab.id, m.url, m.newUserContextId, m.value); - }); - break; - - case "MozillaVPN_attemptPort": - MozillaVPN_Background.maybeInitPort(); - break; - case "MozillaVPN_queryServers": - MozillaVPN_Background.postToApp("servers"); - break; - case "MozillaVPN_queryStatus": - response = MozillaVPN_Background.postToApp("status"); - break; - case "MozillaVPN_getConnectionStatus": - response = MozillaVPN_Background.getConnectionStatus(); - break; - case "MozillaVPN_getInstallationStatus": - response = MozillaVPN_Background.getInstallationStatus(); - break; - } - return response; - }); - - // Handles external messages from webextensions - const externalExtensionAllowed = {}; - browser.runtime.onMessageExternal.addListener(async (message, sender) => { - if (!externalExtensionAllowed[sender.id]) { - const extensionInfo = await browser.management.get(sender.id); - if (!extensionInfo.permissions.includes("contextualIdentities")) { - throw new Error("Missing contextualIdentities permission"); - } - // eslint-disable-next-line require-atomic-updates - externalExtensionAllowed[sender.id] = true; - } - let response; - switch (message.method) { - case "getAssignment": - if (typeof message.url === "undefined") { - throw new Error("Missing message.url"); - } - response = assignManager.storageArea.get(message.url); - break; - default: - throw new Error("Unknown message.method"); - } - return response; - }); - // Delete externalExtensionAllowed if add-on installs/updates; permissions might change - browser.management.onInstalled.addListener(extensionInfo => { - if (externalExtensionAllowed[extensionInfo.id]) { - delete externalExtensionAllowed[extensionInfo.id]; - } - }); - // Delete externalExtensionAllowed if add-on uninstalls; not needed anymore - browser.management.onUninstalled.addListener(extensionInfo => { - if (externalExtensionAllowed[extensionInfo.id]) { - delete externalExtensionAllowed[extensionInfo.id]; - } - }); - - if (browser.contextualIdentities.onRemoved) { - browser.contextualIdentities.onRemoved.addListener(({contextualIdentity}) => { - const userContextId = backgroundLogic.getUserContextIdFromCookieStoreId(contextualIdentity.cookieStoreId); - backgroundLogic.deleteContainer(userContextId, true); - }); - } - - browser.tabs.onActivated.addListener((info) => { - assignManager.removeContextMenu(); - browser.tabs.get(info.tabId).then((tab) => { - assignManager.calculateContextMenu(tab); - }).catch((e) => { - throw e; - }); - }); - - browser.windows.onFocusChanged.addListener((windowId) => { - this.onFocusChangedCallback(windowId); - }); - - browser.webRequest.onCompleted.addListener((details) => { - if (details.frameId !== 0 || details.tabId === -1) { - return {}; - } - assignManager.removeContextMenu(); - - browser.tabs.get(details.tabId).then((tab) => { - assignManager.calculateContextMenu(tab); - }).catch((e) => { - throw e; - }); - }, {urls: [""], types: ["main_frame"]}); - - browser.tabs.onCreated.addListener((tab) => { - // lets remember the last tab created so we can close it if it looks like a redirect - this.lastCreatedTab = tab; - if (tab.cookieStoreId) { - // Don't count firefox-default, firefox-private, nor our own confirm page loads - if (tab.cookieStoreId !== "firefox-default" && - tab.cookieStoreId !== "firefox-private" && - !tab.url.startsWith("moz-extension")) { - // increment the counter of container tabs opened - this.incrementCountOfContainerTabsOpened(); - - this.tabUpdateHandler = (tabId, changeInfo) => { - if (tabId === tab.id && changeInfo.status === "complete") { - // get current tab's url to not open the same one from hidden tabs - browser.tabs.get(tabId).then(loadedTab => { - backgroundLogic.unhideContainer(tab.cookieStoreId, loadedTab.url); - }).catch((e) => { - throw e; - }); - - browser.tabs.onUpdated.removeListener(this.tabUpdateHandler); - } - }; - - // if it's a container tab wait for it to complete and - // unhide other tabs from this container - if (tab.cookieStoreId.startsWith("firefox-container")) { - browser.tabs.onUpdated.addListener(this.tabUpdateHandler); - } - } - } - setTimeout(() => { - this.lastCreatedTab = null; - }, this.LAST_CREATED_TAB_TIMER); - }); - }, - - async incrementCountOfContainerTabsOpened() { - const key = "containerTabsOpened"; - const count = await browser.storage.local.get({[key]: 0}); - const countOfContainerTabsOpened = ++count[key]; - browser.storage.local.set({[key]: countOfContainerTabsOpened}); - - // When the user opens their _ tab, give them the achievement - if (countOfContainerTabsOpened === 100) { - const storage = await browser.storage.local.get({achievements: []}); - storage.achievements.push({"name": "manyContainersOpened", "done": false}); - // use set and spread to create a unique array - const achievements = [...new Set(storage.achievements)]; - browser.storage.local.set({achievements}); - browser.browserAction.setBadgeBackgroundColor({color: "rgba(0,217,0,255)"}); - browser.browserAction.setBadgeText({text: "NEW"}); - } - }, - - async onFocusChangedCallback(windowId) { - assignManager.removeContextMenu(); - // browserAction loses background color in new windows ... - // https://bugzil.la/1314674 - // https://github.com/mozilla/testpilot-containers/issues/608 - // ... so re-call displayBrowserActionBadge on window changes - badge.displayBrowserActionBadge(); - browser.tabs.query({active: true, windowId}).then((tabs) => { - if (tabs && tabs[0]) { - assignManager.calculateContextMenu(tabs[0]); - } - }).catch((e) => { - throw e; - }); - } -}; - -// Lets do this last as theme manager did a check before connecting before -messageHandler.init(); diff --git a/src/js/background/mozillaVpnBackground.js b/src/js/background/mozillaVpnBackground.js deleted file mode 100644 index 9337b2a..0000000 --- a/src/js/background/mozillaVpnBackground.js +++ /dev/null @@ -1,118 +0,0 @@ -const MozillaVPN_Background = { - MOZILLA_VPN_SERVERS_KEY: "mozillaVpnServers", - MOZILLA_VPN_HIDDEN_TOUTS_LIST_KEY: "mozillaVpnHiddenToutsList", - - _isolationKey: 0, - - async maybeInitPort() { - if (this.port && this.port.error === null) { - return; - } - try { - /* - Find a way to not spam the console when MozillaVPN client is not installed - File at path ".../../MozillaVPN/..." is not executable.` thrown by resource://gre/modules/Subprocess.jsm:152` - Which does is not caught by this try/catch - */ - this.port = await browser.runtime.connectNative("mozillavpn"); - this.port.onMessage.addListener(response => this.handleResponse(response)); - - this.port.onMessage.addListener(this.handleResponse); - this.postToApp("status"); - this.postToApp("servers"); - - // When the mozillavpn dies or the VPN disconnects, we need to increase - // the isolation key in order to create new proxy connections. Otherwise - // we could see random timeout when the browser tries to connect to an - // invalid proxy connection. - this.port.onDisconnect.addListener(() => this.increaseIsolationKey()); - - } catch(e) { - this._installed = false; - this._connected = false; - } - }, - - async init() { - const { mozillaVpnServers } = await browser.storage.local.get(this.MOZILLA_VPN_SERVERS_KEY); - if (typeof(mozillaVpnServers) === "undefined") { - await browser.storage.local.set({ [this.MOZILLA_VPN_SERVERS_KEY]:[] }); - await browser.storage.local.set({ [this.MOZILLA_VPN_HIDDEN_TOUTS_LIST_KEY]:[] }); - this._installed = false; - this._connected = false; - } - this.maybeInitPort(); - }, - - getConnectionStatus() { - return this._connected; - }, - - getInstallationStatus() { - return this._installed; - }, - - // Post messages to MozillaVPN client - postToApp(message) { - try { - this.port.postMessage({t: message}); - } catch(e) { - if (e.message === "Attempt to postMessage on disconnected port") { - this._installed = false; - this._connected = false; - } - } - }, - - // Handle responses from MozillaVPN client - async handleResponse(response) { - MozillaVPN_Background._installed = true; - if (response.error && response.error === "vpn-client-down") { - MozillaVPN_Background._connected = false; - return; - } - if (response.servers) { - const servers = response.servers.countries; - browser.storage.local.set({ [MozillaVPN_Background.MOZILLA_VPN_SERVERS_KEY]: servers}); - return; - } - - if ((response.status && response.status.vpn) || response.t === "status") { - const status = response.status ? response.status.vpn : response.vpn; - - if (status === "StateOn") { - MozillaVPN_Background._connected = true; - } - - if (status === "StateOff" || status === "StateDisconnecting") { - MozillaVPN_Background._connected = false; - } - - // Let's increase the network key isolation at any vpn status change. - MozillaVPN_Background.increaseIsolationKey(); - } - }, - - increaseIsolationKey() { - ++this._isolationKey; - }, - - get isolationKey() { - return this._isolationKey; - }, - - async removeMozillaVpnProxies() { - const proxies = await proxifiedContainers.retrieveAll(); - if (!proxies) { - return; - } - for (const proxyObj of proxies) { - const { proxy } = proxyObj; - if (proxy.countryCode !== undefined) { - await proxifiedContainers.delete(proxyObj.cookieStoreId); - } - } - }, -}; - -MozillaVPN_Background.init(); diff --git a/src/js/background/sync.js b/src/js/background/sync.js deleted file mode 100644 index 6dfb629..0000000 --- a/src/js/background/sync.js +++ /dev/null @@ -1,580 +0,0 @@ -const SYNC_DEBUG = false; - -const sync = { - storageArea: { - area: browser.storage.sync, - - async get(){ - return this.area.get(); - }, - - async set(options) { - return this.area.set(options); - }, - - async deleteIdentity(deletedIdentityUUID) { - const deletedIdentityList = - await sync.storageArea.getDeletedIdentityList(); - if ( - ! deletedIdentityList.find(element => element === deletedIdentityUUID) - ) { - deletedIdentityList.push(deletedIdentityUUID); - await sync.storageArea.set({ deletedIdentityList }); - } - await this.removeIdentityKeyFromSync(deletedIdentityUUID); - }, - - async removeIdentityKeyFromSync(deletedIdentityUUID) { - await sync.storageArea.area.remove( "identity@@_" + deletedIdentityUUID); - }, - - async deleteSite(siteStoreKey) { - const deletedSiteList = - await sync.storageArea.getDeletedSiteList(); - if (deletedSiteList.find(element => element === siteStoreKey)) return; - deletedSiteList.push(siteStoreKey); - await sync.storageArea.set({ deletedSiteList }); - await sync.storageArea.area.remove(siteStoreKey); - }, - - async getDeletedIdentityList() { - const storedArray = await this.getStoredItem("deletedIdentityList"); - return storedArray || []; - }, - - async getIdentities() { - const allSyncStorage = await this.get(); - const identities = []; - for (const storageKey of Object.keys(allSyncStorage)) { - if (storageKey.includes("identity@@_")) { - identities.push(allSyncStorage[storageKey]); - } - } - return identities; - }, - - async getDeletedSiteList() { - const storedArray = await this.getStoredItem("deletedSiteList"); - return (storedArray) ? storedArray : []; - }, - - async getAssignedSites() { - const allSyncStorage = await this.get(); - const sites = {}; - for (const storageKey of Object.keys(allSyncStorage)) { - if (storageKey.includes("siteContainerMap@@_")) { - sites[storageKey] = allSyncStorage[storageKey]; - } - } - return sites; - }, - - async getStoredItem(objectKey) { - const outputObject = await this.get(objectKey); - if (outputObject && outputObject[objectKey]) - return outputObject[objectKey]; - return false; - }, - - async getAllInstanceInfo() { - const instanceList = {}; - const allSyncInfo = await this.get(); - for (const objectKey of Object.keys(allSyncInfo)) { - if (objectKey.includes("MACinstance")) { - instanceList[objectKey] = allSyncInfo[objectKey]; } - } - return instanceList; - }, - - getInstanceKey() { - return browser.runtime.getURL("") - .replace(/moz-extension:\/\//, "MACinstance:") - .replace(/\//, ""); - }, - async removeInstance(installUUID) { - if (SYNC_DEBUG) console.log("removing", installUUID); - await this.area.remove(installUUID); - return; - }, - - async removeThisInstanceFromSync() { - const installUUID = this.getInstanceKey(); - await this.removeInstance(installUUID); - return; - }, - - async hasSyncStorage(){ - const inSync = await this.get(); - return !(Object.entries(inSync).length === 0); - }, - - async backup(options) { - // remove listeners to avoid an infinite loop! - await sync.checkForListenersMaybeRemove(); - - const identities = await updateSyncIdentities(); - const siteAssignments = await updateSyncSiteAssignments(); - await updateInstanceInfo(identities, siteAssignments); - if (options && options.uuid) - await this.deleteIdentity(options.uuid); - if (options && options.undeleteUUID) - await removeFromDeletedIdentityList(options.undeleteUUID); - if (options && options.siteStoreKey) - await this.deleteSite(options.siteStoreKey); - if (options && options.undeleteSiteStoreKey) - await removeFromDeletedSitesList(options.undeleteSiteStoreKey); - - if (SYNC_DEBUG) console.log("Backed up!"); - await sync.checkForListenersMaybeAdd(); - - async function updateSyncIdentities() { - const identities = await browser.contextualIdentities.query({}); - - for (const identity of identities) { - delete identity.colorCode; - delete identity.iconUrl; - identity.macAddonUUID = await identityState.lookupMACaddonUUID(identity.cookieStoreId); - if(identity.macAddonUUID) { - const storageKey = "identity@@_" + identity.macAddonUUID; - await sync.storageArea.set({ [storageKey]: identity }); - } - } - //await sync.storageArea.set({ identities }); - return identities; - } - - async function updateSyncSiteAssignments() { - const assignedSites = - await assignManager.storageArea.getAssignedSites(); - for (const siteKey of Object.keys(assignedSites)) { - await sync.storageArea.set({ [siteKey]: assignedSites[siteKey] }); - } - return assignedSites; - } - - async function updateInstanceInfo(identitiesInput, siteAssignmentsInput) { - const date = new Date(); - const timestamp = date.getTime(); - const installUUID = sync.storageArea.getInstanceKey(); - if (SYNC_DEBUG) console.log("adding", installUUID); - const identities = []; - const siteAssignments = []; - for (const identity of identitiesInput) { - identities.push(identity.macAddonUUID); - } - for (const siteAssignmentKey of Object.keys(siteAssignmentsInput)) { - siteAssignments.push(siteAssignmentKey); - } - await sync.storageArea.set({ [installUUID]: { timestamp, identities, siteAssignments } }); - } - - async function removeFromDeletedIdentityList(identityUUID) { - const deletedIdentityList = - await sync.storageArea.getDeletedIdentityList(); - const newDeletedIdentityList = deletedIdentityList - .filter(element => element !== identityUUID); - await sync.storageArea.set({ deletedIdentityList: newDeletedIdentityList }); - } - - async function removeFromDeletedSitesList(siteStoreKey) { - const deletedSiteList = - await sync.storageArea.getDeletedSiteList(); - const newDeletedSiteList = deletedSiteList - .filter(element => element !== siteStoreKey); - await sync.storageArea.set({ deletedSiteList: newDeletedSiteList }); - } - }, - - onChangedListener(changes, areaName) { - if (areaName === "sync") sync.errorHandledRunSync(); - }, - - async addToDeletedList(changeInfo) { - const identity = changeInfo.contextualIdentity; - const deletedUUID = - await identityState.lookupMACaddonUUID(identity.cookieStoreId); - await identityState.storageArea.remove(identity.cookieStoreId); - sync.storageArea.backup({uuid: deletedUUID}); - } - }, - - async init() { - const syncEnabled = await assignManager.storageArea.getSyncEnabled(); - if (syncEnabled) { - // Add listener to sync storage and containers. - // Works for all installs that have any sync storage. - // Waits for sync storage change before kicking off the restore/backup - // initial sync must be kicked off by user. - this.checkForListenersMaybeAdd(); - return; - } - this.checkForListenersMaybeRemove(); - - }, - - async errorHandledRunSync () { - await sync.runSync().catch( async (error)=> { - if (SYNC_DEBUG) console.error("Error from runSync", error); - await sync.checkForListenersMaybeAdd(); - }); - }, - - async checkForListenersMaybeAdd() { - const hasStorageListener = - await browser.storage.onChanged.hasListener( - sync.storageArea.onChangedListener - ); - - const hasCIListener = await sync.hasContextualIdentityListeners(); - - if (!hasCIListener) { - await sync.addContextualIdentityListeners(); - } - - if (!hasStorageListener) { - await browser.storage.onChanged.addListener( - sync.storageArea.onChangedListener); - } - }, - - async checkForListenersMaybeRemove() { - const hasStorageListener = - await browser.storage.onChanged.hasListener( - sync.storageArea.onChangedListener - ); - - const hasCIListener = await sync.hasContextualIdentityListeners(); - - if (hasCIListener) { - await sync.removeContextualIdentityListeners(); - } - - if (hasStorageListener) { - await browser.storage.onChanged.removeListener( - sync.storageArea.onChangedListener); - } - }, - - async runSync() { - if (SYNC_DEBUG) { - const syncInfo = await sync.storageArea.get(); - const localInfo = await browser.storage.local.get(); - const idents = await browser.contextualIdentities.query({}); - console.log("Initial State:", {syncInfo, localInfo, idents}); - } - await sync.checkForListenersMaybeRemove(); - if (SYNC_DEBUG) console.log("runSync"); - - await identityState.storageArea.upgradeData(); - await assignManager.storageArea.upgradeData(); - - const hasSyncStorage = await sync.storageArea.hasSyncStorage(); - if (hasSyncStorage) await restore(); - - await sync.storageArea.backup(); - await removeOldDeletedItems(); - return; - }, - - async addContextualIdentityListeners() { - await browser.contextualIdentities.onCreated.addListener(sync.storageArea.backup); - await browser.contextualIdentities.onRemoved.addListener(sync.storageArea.addToDeletedList); - await browser.contextualIdentities.onUpdated.addListener(sync.storageArea.backup); - }, - - async removeContextualIdentityListeners() { - await browser.contextualIdentities.onCreated.removeListener(sync.storageArea.backup); - await browser.contextualIdentities.onRemoved.removeListener(sync.storageArea.addToDeletedList); - await browser.contextualIdentities.onUpdated.removeListener(sync.storageArea.backup); - }, - - async hasContextualIdentityListeners() { - return ( - await browser.contextualIdentities.onCreated.hasListener(sync.storageArea.backup) && - await browser.contextualIdentities.onRemoved.hasListener(sync.storageArea.addToDeletedList) && - await browser.contextualIdentities.onUpdated.hasListener(sync.storageArea.backup) - ); - }, - - async resetSync() { - const syncEnabled = await assignManager.storageArea.getSyncEnabled(); - if (syncEnabled) { - this.errorHandledRunSync(); - return; - } - await this.checkForListenersMaybeRemove(); - await this.storageArea.removeThisInstanceFromSync(); - } - -}; - -// attaching to window for use in mocha tests -window.sync = sync; - -sync.init(); - -async function restore() { - if (SYNC_DEBUG) console.log("restore"); - await reconcileIdentities(); - await reconcileSiteAssignments(); - return; -} - -/* - * Checks for the container name. If it exists, they are assumed to be the - * same container, and the color and icon are overwritten from sync, if - * different. - */ -async function reconcileIdentities(){ - if (SYNC_DEBUG) console.log("reconcileIdentities"); - - // first delete any from the deleted list - const deletedIdentityList = - await sync.storageArea.getDeletedIdentityList(); - // first remove any deleted identities - for (const deletedUUID of deletedIdentityList) { - const deletedCookieStoreId = - await identityState.lookupCookieStoreId(deletedUUID); - if (deletedCookieStoreId){ - try{ - await browser.contextualIdentities.remove(deletedCookieStoreId); - } catch (error) { - // if the identity we are deleting is not there, that's fine. - console.error("Error deleting contextualIdentity", deletedCookieStoreId); - continue; - } - } - } - const localIdentities = await browser.contextualIdentities.query({}); - const syncIdentitiesRemoveDupes = - await sync.storageArea.getIdentities(); - // find any local dupes created on sync storage and delete from sync storage - for (const localIdentity of localIdentities) { - const syncIdentitiesOfName = syncIdentitiesRemoveDupes - .filter(identity => identity.name === localIdentity.name); - if (syncIdentitiesOfName.length > 1) { - const identityMatchingContextId = syncIdentitiesOfName - .find(identity => identity.cookieStoreId === localIdentity.cookieStoreId); - if (identityMatchingContextId) - await sync.storageArea.removeIdentityKeyFromSync(identityMatchingContextId.macAddonUUID); - } - } - const syncIdentities = - await sync.storageArea.getIdentities(); - // now compare all containers for matching names. - for (const syncIdentity of syncIdentities) { - if (syncIdentity.macAddonUUID){ - const localMatch = localIdentities.find( - localIdentity => localIdentity.name === syncIdentity.name - ); - if (!localMatch) { - // if there's no name match found, check on uuid, - const localCookieStoreID = - await identityState.lookupCookieStoreId(syncIdentity.macAddonUUID); - if (localCookieStoreID) { - await ifUUIDMatch(syncIdentity, localCookieStoreID); - continue; - } - await ifNoMatch(syncIdentity); - continue; - } - - // Names match, so use the info from Sync - await updateIdentityWithSyncInfo(syncIdentity, localMatch); - continue; - } - // if no macAddonUUID, there is a problem with the sync info and it needs to be ignored. - } - - await updateSiteAssignmentUUIDs(); - - async function updateSiteAssignmentUUIDs(){ - const sites = assignManager.storageArea.getAssignedSites(); - for (const siteKey of Object.keys(sites)) { - await assignManager.storageArea.set(siteKey, sites[siteKey]); - } - } -} - -async function updateIdentityWithSyncInfo(syncIdentity, localMatch) { - // Sync is truth. if there is a match, compare data and update as needed - if (syncIdentity.color !== localMatch.color - || syncIdentity.icon !== localMatch.icon) { - await browser.contextualIdentities.update( - localMatch.cookieStoreId, { - name: syncIdentity.name, - color: syncIdentity.color, - icon: syncIdentity.icon - }); - - if (SYNC_DEBUG) { - if (localMatch.color !== syncIdentity.color) { - console.log(localMatch.name, "Change color: ", syncIdentity.color); - } - if (localMatch.icon !== syncIdentity.icon) { - console.log(localMatch.name, "Change icon: ", syncIdentity.icon); - } - } - } - // Sync is truth. If all is the same, update the local uuid to match sync - if (localMatch.macAddonUUID !== syncIdentity.macAddonUUID) { - await identityState.updateUUID( - localMatch.cookieStoreId, - syncIdentity.macAddonUUID - ); - } - // TODOkmw: update any site assignment UUIDs -} - -async function ifUUIDMatch(syncIdentity, localCookieStoreID) { - // if there's an identical local uuid, it's the same container. Sync is truth - const identityInfo = { - name: syncIdentity.name, - color: syncIdentity.color, - icon: syncIdentity.icon - }; - if (SYNC_DEBUG) { - try { - const getIdent = - await browser.contextualIdentities.get(localCookieStoreID); - if (getIdent.name !== identityInfo.name) { - console.log(getIdent.name, "Change name: ", identityInfo.name); - } - if (getIdent.color !== identityInfo.color) { - console.log(getIdent.name, "Change color: ", identityInfo.color); - } - if (getIdent.icon !== identityInfo.icon) { - console.log(getIdent.name, "Change icon: ", identityInfo.icon); - } - } catch (error) { - //if this fails, there is probably differing sync info. - console.error("Error getting info on CI", error); - } - } - try { - // update the local container with the sync data - await browser.contextualIdentities - .update(localCookieStoreID, identityInfo); - return; - } catch (error) { - // If this fails, sync info is off. - console.error("Error udpating CI", error); - } -} - -async function ifNoMatch(syncIdentity){ - // if no uuid match either, make new identity - if (SYNC_DEBUG) console.log("create new ident: ", syncIdentity.name); - const newIdentity = - await browser.contextualIdentities.create({ - name: syncIdentity.name, - color: syncIdentity.color, - icon: syncIdentity.icon - }); - await identityState.updateUUID( - newIdentity.cookieStoreId, - syncIdentity.macAddonUUID - ); - return; -} -/* - * Checks for site previously assigned. If it exists, and has the same - * container assignment, the assignment is kept. If it exists, but has - * a different assignment, the user is prompted (not yet implemented). - * If it does not exist, it is created. - */ -async function reconcileSiteAssignments() { - if (SYNC_DEBUG) console.log("reconcileSiteAssignments"); - const assignedSitesLocal = - await assignManager.storageArea.getAssignedSites(); - const assignedSitesFromSync = - await sync.storageArea.getAssignedSites(); - const deletedSiteList = - await sync.storageArea.getDeletedSiteList(); - for(const siteStoreKey of deletedSiteList) { - if (Object.prototype.hasOwnProperty.call(assignedSitesLocal,siteStoreKey)) { - await assignManager - .storageArea - .remove(siteStoreKey, false); - } - } - - for(const urlKey of Object.keys(assignedSitesFromSync)) { - const assignedSite = assignedSitesFromSync[urlKey]; - try{ - if (assignedSite.identityMacAddonUUID) { - // Sync is truth. - // Not even looking it up. Just overwrite - if (SYNC_DEBUG){ - const isInStorage = await assignManager.storageArea.getByUrlKey(urlKey); - if (!isInStorage) - console.log("new assignment ", assignedSite); - } - - await setAssignmentWithUUID(assignedSite, urlKey); - continue; - } - } catch (error) { - // this is probably old or incorrect site info in Sync - // skip and move on. - } - } -} - -const MILISECONDS_IN_THIRTY_DAYS = 2592000000; - -async function removeOldDeletedItems() { - const instanceList = await sync.storageArea.getAllInstanceInfo(); - const deletedSiteList = await sync.storageArea.getDeletedSiteList(); - const deletedIdentityList = await sync.storageArea.getDeletedIdentityList(); - - for (const instanceKey of Object.keys(instanceList)) { - const date = new Date(); - const currentTimestamp = date.getTime(); - if (instanceList[instanceKey].timestamp < currentTimestamp - MILISECONDS_IN_THIRTY_DAYS) { - delete instanceList[instanceKey]; - sync.storageArea.removeInstance(instanceKey); - continue; - } - } - for (const siteStoreKey of deletedSiteList) { - let hasMatch = false; - for (const instance of Object.values(instanceList)) { - const match = instance.siteAssignments.find(element => element === siteStoreKey); - if (!match) continue; - hasMatch = true; - } - if (!hasMatch) { - await sync.storageArea.backup({undeleteSiteStoreKey: siteStoreKey}); - } - } - for (const identityUUID of deletedIdentityList) { - let hasMatch = false; - for (const instance of Object.values(instanceList)) { - const match = instance.identities.find(element => element === identityUUID); - if (!match) continue; - hasMatch = true; - } - if (!hasMatch) { - await sync.storageArea.backup({undeleteUUID: identityUUID}); - } - } -} - -async function setAssignmentWithUUID(assignedSite, urlKey) { - const uuid = assignedSite.identityMacAddonUUID; - const cookieStoreId = await identityState.lookupCookieStoreId(uuid); - if (cookieStoreId) { - // eslint-disable-next-line require-atomic-updates - assignedSite.userContextId = cookieStoreId - .replace(/^firefox-container-/, ""); - await assignManager.storageArea.set( - urlKey, - assignedSite, - false, - false - ); - return; - } - throw new Error (`No cookieStoreId found for: ${uuid}, ${urlKey}`); -} diff --git a/src/js/confirm-page.js b/src/js/confirm-page.js deleted file mode 100644 index 21a445c..0000000 --- a/src/js/confirm-page.js +++ /dev/null @@ -1,80 +0,0 @@ -async function load() { - const searchParams = new URL(window.location).searchParams; - const redirectUrl = searchParams.get("url"); - const cookieStoreId = searchParams.get("cookieStoreId"); - const currentCookieStoreId = searchParams.get("currentCookieStoreId"); - const redirectUrlElement = document.getElementById("redirect-url"); - redirectUrlElement.textContent = redirectUrl; - appendFavicon(redirectUrl, redirectUrlElement); - - document.getElementById("deny").addEventListener("click", (e) => { - e.preventDefault(); - denySubmit(redirectUrl); - }); - - const container = await browser.contextualIdentities.get(cookieStoreId); - const currentContainer = currentCookieStoreId ? await browser.contextualIdentities.get(currentCookieStoreId) : null; - const currentContainerName = currentContainer ? currentContainer.name : ""; - - document.querySelectorAll("[data-message-id]").forEach(el => { - const elementData = el.dataset; - const containerName = elementData.messageArg === "container-name" ? container.name : currentContainerName; - el.textContent = browser.i18n.getMessage(elementData.messageId, containerName); - }); - - document.getElementById("confirm").addEventListener("click", (e) => { - e.preventDefault(); - confirmSubmit(redirectUrl, cookieStoreId); - }); -} - -function appendFavicon(pageUrl, redirectUrlElement) { - const origin = new URL(pageUrl).origin; - const favIconElement = Utils.createFavIconElement(`${origin}/favicon.ico`); - - redirectUrlElement.prepend(favIconElement); -} - -function confirmSubmit(redirectUrl, cookieStoreId) { - const neverAsk = document.getElementById("never-ask").checked; - // Sending neverAsk message to background to store for next time we see this process - if (neverAsk) { - browser.runtime.sendMessage({ - method: "neverAsk", - neverAsk: true, - pageUrl: redirectUrl - }); - } - openInContainer(redirectUrl, cookieStoreId); -} - -function getCurrentTab() { - return browser.tabs.query({ - active: true, - windowId: browser.windows.WINDOW_ID_CURRENT - }); -} - -async function denySubmit(redirectUrl) { - const tab = await getCurrentTab(); - await browser.runtime.sendMessage({ - method: "exemptContainerAssignment", - tabId: tab[0].id, - pageUrl: redirectUrl - }); - document.location.replace(redirectUrl); -} - -load(); - -async function openInContainer(redirectUrl, cookieStoreId) { - const tab = await getCurrentTab(); - await browser.tabs.create({ - index: tab[0].index + 1, - cookieStoreId, - url: redirectUrl - }); - if (tab.length > 0) { - browser.tabs.remove(tab[0].id); - } -} diff --git a/src/js/content-script.js b/src/js/content-script.js deleted file mode 100644 index 539e43a..0000000 --- a/src/js/content-script.js +++ /dev/null @@ -1,46 +0,0 @@ -async function delayAnimation(delay = 350) { - return new Promise((resolve) => { - setTimeout(resolve, delay); - }); -} - -async function doAnimation(element, property, value) { - return new Promise((resolve) => { - const handler = () => { - resolve(); - element.removeEventListener("transitionend", handler); - }; - element.addEventListener("transitionend", handler); - window.requestAnimationFrame(() => { - element.style[property] = value; - }); - }); -} - -async function addMessage(message) { - const divElement = document.createElement("div"); - divElement.classList.add("container-notification"); - // Ideally we would use https://bugzilla.mozilla.org/show_bug.cgi?id=1340930 when this is available - divElement.innerText = message.text; - - const imageElement = document.createElement("img"); - const imagePath = browser.runtime.getURL("/img/container-site-d-24.png"); - const response = await fetch(imagePath); - const blob = await response.blob(); - const objectUrl = URL.createObjectURL(blob); - imageElement.src = objectUrl; - divElement.prepend(imageElement); - - document.body.appendChild(divElement); - - await delayAnimation(100); - await doAnimation(divElement, "transform", "translateY(0)"); - await delayAnimation(3000); - await doAnimation(divElement, "transform", "translateY(-100%)"); - - divElement.remove(); -} - -browser.runtime.onMessage.addListener((message) => { - addMessage(message); -}); diff --git a/src/js/i18n.js b/src/js/i18n.js deleted file mode 100644 index 3c07064..0000000 --- a/src/js/i18n.js +++ /dev/null @@ -1,9 +0,0 @@ -document.addEventListener("DOMContentLoaded", async () => { - document.querySelectorAll("[data-i18n-message-id]").forEach(el => { - const messageArgs = el.dataset.i18nPlaceholder ? el.dataset.i18nPlaceholder : null; - el.textContent = browser.i18n.getMessage(el.dataset.i18nMessageId, [messageArgs]); - }); - document.querySelectorAll("[data-i18n-attribute]").forEach(el => { - el.setAttribute(el.dataset.i18nAttribute, browser.i18n.getMessage(el.dataset.i18nAttributeMessageId)); - }); -}); diff --git a/src/js/mozillaVpn.js b/src/js/mozillaVpn.js deleted file mode 100644 index 941e148..0000000 --- a/src/js/mozillaVpn.js +++ /dev/null @@ -1,260 +0,0 @@ -const MozillaVPN = { - - async handleContainerList(identities) { - const mozillaVpnConnected = await browser.runtime.sendMessage({ method: "MozillaVPN_getConnectionStatus" }); - const mozillaVpnInstalled = await browser.runtime.sendMessage({ method: "MozillaVPN_getInstallationStatus" }); - this.handleStatusIndicatorsInContainerLists(mozillaVpnInstalled); - - const permissionsEnabled = await this.bothPermissionsEnabled(); - if (!permissionsEnabled) { - return; - } - - const proxies = await this.getProxies(identities); - if (Object.keys(proxies).length === 0) { - return; - } - - const tooltipProxyWarning = browser.i18n.getMessage("tooltipWarning"); - for (const el of document.querySelectorAll("[data-cookie-store-id]")) { - const cookieStoreId = el.dataset.cookieStoreId; - - if (!proxies[cookieStoreId]) { - continue; - } - const { proxy } = proxies[cookieStoreId]; - - if (typeof(proxy) !== "undefined") { - const flag = el.querySelector(".flag-img"); - if (proxy.countryCode) { - flag.src = `/img/flags/${proxy.countryCode.toUpperCase()}.png`; - } - if (typeof(proxy.mozProxyEnabled) === "undefined" && typeof(proxy.countryCode) !== "undefined") { - flag.classList.add("proxy-disabled"); - } - if (!mozillaVpnConnected && proxy.mozProxyEnabled) { - flag.classList.add("proxy-unavailable"); - const tooltip = el.querySelector(".tooltip.proxy-unavailable"); - if (tooltip) { - tooltip.textContent = tooltipProxyWarning; - } - const menuItemName = el.querySelector(".menu-item-name"); - if (menuItemName) { - el.querySelector(".menu-item-name").dataset.mozProxyWarning = "proxy-unavailable"; - } - } - } - } - }, - - async setStatusIndicatorIcons(mozillaVpnInstalled) { - - const statusIconEls = document.querySelectorAll(".moz-vpn-connection-status-indicator"); - - if (!mozillaVpnInstalled) { - statusIconEls.forEach(el => { - el.style.backgroundImage = "none"; - if (el.querySelector(".tooltip")) { - el.querySelector(".tooltip").textContent = ""; - } - el.textContent = ""; - }); - return; - } - - const connectedIndicatorSrc = "url(./img/moz-vpn-connected.svg)"; - const disconnectedIndicatorSrc = "url(./img/moz-vpn-disconnected.svg)"; - - const mozillaVpnConnected = await browser.runtime.sendMessage({ method: "MozillaVPN_getConnectionStatus" }); - const connectionStatusStringId = mozillaVpnConnected ? "moz-vpn-connected" : "moz-vpn-disconnected"; - const connectionStatusLocalizedString = browser.i18n.getMessage(connectionStatusStringId); - - statusIconEls.forEach(el => { - el.style.backgroundImage = mozillaVpnConnected ? connectedIndicatorSrc : disconnectedIndicatorSrc; - if (el.querySelector(".tooltip")) { - el.querySelector(".tooltip").textContent = connectionStatusLocalizedString; - } else { - el.textContent = connectionStatusLocalizedString; - } - }); - }, - - async handleStatusIndicatorsInContainerLists(mozillaVpnInstalled) { - const mozVpnLogotypes = document.querySelectorAll(".moz-vpn-logotype.vpn-status-container-list"); - - try { - if (!mozillaVpnInstalled) { - mozVpnLogotypes.forEach(el => { - el.style.display = "none"; - }); - return; - } - mozVpnLogotypes.forEach(el => { - el.style.display = "flex"; - el.classList.remove("display-none"); - }); - this.setStatusIndicatorIcons(mozillaVpnInstalled); - } catch (e) { - mozVpnLogotypes.forEach(el => { - el.style.display = "none"; - }); - return; - } - }, - - handleMozillaCtaClick(buttonIdentifier) { - browser.tabs.create({ - url: MozillaVPN.attachUtmParameters("https://www.mozilla.org/products/vpn", buttonIdentifier), - }); - }, - - getRandomInteger(min, max) { - return Math.floor(Math.random() * (max - min + 1)) + min; - }, - - proxyIsDisabled(proxy) { - return ( - // Mozilla VPN proxy is disabled, last location data is stored - (proxy.mozProxyEnabled === undefined && proxy.countryCode !== undefined && proxy.cityName !== undefined) || - // Mozilla VPN proxy is enabled but Mozilla VPN is not connected - proxy.mozProxyEnabled !== undefined - ); - }, - - attachUtmParameters(baseUrl, utmContent) { - const url = new URL(baseUrl); - const utmParameters = { - utm_source: "multi.account.containers", - utm_medium: "mac-browser-addon", - utm_content: utmContent, - utm_campaign: "vpn-better-together", - }; - - for (const param in utmParameters) { - url.searchParams.append(param, utmParameters[param]); - } - return url.href; - }, - - async getProxies(identities) { - const proxies = {}; - const mozillaVpnInstalled = await browser.runtime.sendMessage({ method: "MozillaVPN_getInstallationStatus" }); - - if (mozillaVpnInstalled) { - for (const identity of identities) { - try { - const proxy = await proxifiedContainers.retrieve(identity.cookieStoreId); - proxies[identity.cookieStoreId] = proxy; - } catch (e) { - proxies[identity.cookieStoreId] = {}; - } - } - } - return proxies; - }, - - getMozillaProxyInfoObj() { - return { - countryCode: undefined, - cityName: undefined, - mozProxyEnabled: undefined - }; - }, - - async bothPermissionsEnabled() { - return await browser.permissions.contains({ permissions: ["proxy", "nativeMessaging"] }); - }, - - - async getProxyWarnings(proxyObj) { - if (!proxyObj) { - return ""; - } - - const { proxy } = proxyObj; - - if (typeof(proxy) === "undefined") { - return ""; - } - - const mozillaVpnConnected = await browser.runtime.sendMessage({ method: "MozillaVPN_getConnectionStatus" }); - if (typeof(proxy.mozProxyEnabled) !== "undefined" && !mozillaVpnConnected) { - return "proxy-unavailable"; - } - }, - - async getFlag(proxyObj) { - const flag = { - imgCode: "default", - elemClasses: "display-none", - imgAlt: "", - }; - - if (!proxyObj) { - return flag; - } - - const { proxy } = proxyObj; - const mozillaVpnInstalled = await browser.runtime.sendMessage({ method: "MozillaVPN_getInstallationStatus" }); - if (typeof(proxy) === "undefined" || !mozillaVpnInstalled) { - return flag; - } - - const mozillaVpnConnected = await browser.runtime.sendMessage({ method: "MozillaVPN_getConnectionStatus" }); - if (mozillaVpnInstalled && typeof(proxy.cityName) !== "undefined") { - flag.imgCode = proxy.countryCode.toUpperCase(); - flag.imgAlt = proxy.cityName; - flag.elemClasses = typeof(proxy.mozProxyEnabled) === "undefined" || !mozillaVpnConnected ? "proxy-disabled" : ""; - } - - return flag; - }, - - getProxy(countryCode, cityName, mozProxyEnabled, mozillaVpnServers) { - const selectedServerCountry = mozillaVpnServers.find(({code}) => code === countryCode); - const selectedServerCity = selectedServerCountry.cities.find(({name}) => name === cityName); - const proxyServer = this.pickServerBasedOnWeight(selectedServerCity.servers); - return proxifiedContainers.parseProxy( - this.makeProxyString(proxyServer.socksName), - { - countryCode: countryCode, - cityName: cityName, - mozProxyEnabled, - } - ); - }, - - makeProxyString(socksName) { - return `socks://${socksName}.mullvad.net:1080`; - }, - - async pickRandomLocation() { - const { mozillaVpnServers } = await browser.storage.local.get("mozillaVpnServers"); - const randomInteger = this.getRandomInteger(0, mozillaVpnServers.length - 1); - const randomServerCountry = mozillaVpnServers[randomInteger]; - - return { - randomServerCountryCode: randomServerCountry.code, - randomServerCityName: randomServerCountry.cities[0].name, - }; - - }, - - pickServerBasedOnWeight(serverList) { - const filteredServerList = serverList.filter(server => typeof(server.socksName) !== "undefined" && server.socksName !== ""); - - const sumWeight = filteredServerList.reduce((sum, { weight }) => sum + weight, 0); - let randomInteger = this.getRandomInteger(0, sumWeight); - - let nextServer = {}; - for (const server of filteredServerList) { - if (server.weight >= randomInteger) { - return nextServer = server; - } - randomInteger = (randomInteger - server.weight); - } - return nextServer; - }, -}; - -window.MozillaVPN = MozillaVPN; diff --git a/src/js/options.js b/src/js/options.js deleted file mode 100644 index 726827b..0000000 --- a/src/js/options.js +++ /dev/null @@ -1,137 +0,0 @@ -const NUMBER_OF_KEYBOARD_SHORTCUTS = 10; - -async function setUpCheckBoxes() { - document.querySelectorAll("[data-permission-id]").forEach(async(el) => { - const permissionId = el.dataset.permissionId; - const permissionEnabled = await browser.permissions.contains({ permissions: [permissionId] }); - el.checked = !!permissionEnabled; - }); -} - -function disablePermissionsInputs() { - document.querySelectorAll("[data-permission-id").forEach(el => { - el.disabled = true; - }); -} - -function enablePermissionsInputs() { - document.querySelectorAll("[data-permission-id").forEach(el => { - el.disabled = false; - }); -} - -document.querySelectorAll("[data-permission-id").forEach(async(el) => { - const permissionId = el.dataset.permissionId; - el.addEventListener("change", async() => { - if (el.checked) { - disablePermissionsInputs(); - const granted = await browser.permissions.request({ permissions: [permissionId] }); - if (!granted) { - el.checked = false; - enablePermissionsInputs(); - } - return; - } - await browser.permissions.remove({ permissions: [permissionId] }); - }); -}); - -async function maybeShowPermissionsWarningIcon() { - const bothMozillaVpnPermissionsEnabled = await MozillaVPN.bothPermissionsEnabled(); - const permissionsWarningEl = document.querySelector(".warning-icon"); - permissionsWarningEl.classList.toggle("show-warning", !bothMozillaVpnPermissionsEnabled); -} - -async function enableDisableSync() { - const checkbox = document.querySelector("#syncCheck"); - await browser.storage.local.set({syncEnabled: !!checkbox.checked}); - browser.runtime.sendMessage({ method: "resetSync" }); -} - -async function enableDisableReplaceTab() { - const checkbox = document.querySelector("#replaceTabCheck"); - await browser.storage.local.set({replaceTabEnabled: !!checkbox.checked}); -} - -async function setupOptions() { - const { syncEnabled } = await browser.storage.local.get("syncEnabled"); - const { replaceTabEnabled } = await browser.storage.local.get("replaceTabEnabled"); - document.querySelector("#syncCheck").checked = !!syncEnabled; - document.querySelector("#replaceTabCheck").checked = !!replaceTabEnabled; - setupContainerShortcutSelects(); -} - -async function setupContainerShortcutSelects () { - const keyboardShortcut = await browser.runtime.sendMessage({method: "getShortcuts"}); - const identities = await browser.contextualIdentities.query({}); - const fragment = document.createDocumentFragment(); - const noneOption = document.createElement("option"); - noneOption.value = "none"; - noneOption.id = "none"; - noneOption.textContent = "None"; - fragment.append(noneOption); - - for (const identity of identities) { - const option = document.createElement("option"); - option.value = identity.cookieStoreId; - option.id = identity.cookieStoreId; - option.textContent = identity.name; - fragment.append(option); - } - - for (let i=0; i < NUMBER_OF_KEYBOARD_SHORTCUTS; i++) { - const shortcutKey = "open_container_"+i; - const shortcutSelect = document.getElementById(shortcutKey); - shortcutSelect.appendChild(fragment.cloneNode(true)); - if (keyboardShortcut && keyboardShortcut[shortcutKey]) { - const cookieStoreId = keyboardShortcut[shortcutKey]; - shortcutSelect.querySelector("#" + cookieStoreId).selected = true; - } - } -} - -function storeShortcutChoice (event) { - browser.runtime.sendMessage({ - method: "setShortcut", - shortcut: event.target.id, - cookieStoreId: event.target.value - }); -} - -function resetOnboarding() { - browser.storage.local.set({"onboarding-stage": 0}); -} - -async function resetPermissionsUi() { - await maybeShowPermissionsWarningIcon(); - await setUpCheckBoxes(); - enablePermissionsInputs(); -} - -browser.permissions.onAdded.addListener(resetPermissionsUi); -browser.permissions.onRemoved.addListener(resetPermissionsUi); - -document.addEventListener("DOMContentLoaded", setupOptions); -document.querySelector("#syncCheck").addEventListener( "change", enableDisableSync); -document.querySelector("#replaceTabCheck").addEventListener( "change", enableDisableReplaceTab); -maybeShowPermissionsWarningIcon(); -for (let i=0; i < NUMBER_OF_KEYBOARD_SHORTCUTS; i++) { - document.querySelector("#open_container_"+i) - .addEventListener("change", storeShortcutChoice); -} - -document.querySelectorAll("[data-btn-id]").forEach(btn => { - btn.addEventListener("click", () => { - switch (btn.dataset.btnId) { - case "reset-onboarding": - resetOnboarding(); - break; - case "moz-vpn-learn-more": - browser.tabs.create({ - url: MozillaVPN.attachUtmParameters("https://support.mozilla.org/kb/protect-your-container-tabs-mozilla-vpn", "options-learn-more") - }); - break; - } - }); -}); -resetPermissionsUi(); diff --git a/src/js/pageAction.js b/src/js/pageAction.js deleted file mode 100644 index bc0ba3c..0000000 --- a/src/js/pageAction.js +++ /dev/null @@ -1,37 +0,0 @@ -async function init() { - const fragment = document.createDocumentFragment(); - const identities = await browser.contextualIdentities.query({}); - - for (const identity of identities) { - const tr = document.createElement("tr"); - tr.classList.add("menu-item", "hover-highlight"); - tr.setAttribute("data-cookie-store-id", identity.cookieStoreId); - const td = document.createElement("td"); - td.innerHTML = Utils.escaped` -

- ${identity.name} - - `; - - tr.appendChild(td); - fragment.appendChild(tr); - - Utils.addEnterHandler(tr, async () => { - Utils.alwaysOpenInContainer(identity); - window.close(); - }); - } - - const list = document.querySelector("#picker-identities-list"); - list.innerHTML = ""; - list.appendChild(fragment); - - MozillaVPN.handleContainerList(identities); -} - -init(); diff --git a/src/js/popup.js b/src/js/popup.js deleted file mode 100644 index 4ad1501..0000000 --- a/src/js/popup.js +++ /dev/null @@ -1,2283 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this file, - * You can obtain one at http://mozilla.org/MPL/2.0/. */ - -const CONTAINER_HIDE_SRC = "/img/password-hide.svg"; -const CONTAINER_UNHIDE_SRC = "/img/password-hide.svg"; - -const DEFAULT_COLOR = "blue"; -const DEFAULT_ICON = "circle"; -const NEW_CONTAINER_ID = "new"; - -const ONBOARDING_STORAGE_KEY = "onboarding-stage"; -const CONTAINER_DRAG_DATA_TYPE = "firefox-container"; - -// List of panels -const P_ONBOARDING_1 = "onboarding1"; -const P_ONBOARDING_2 = "onboarding2"; -const P_ONBOARDING_3 = "onboarding3"; -const P_ONBOARDING_4 = "onboarding4"; -const P_ONBOARDING_5 = "onboarding5"; -const P_ONBOARDING_6 = "onboarding6"; -const P_ONBOARDING_7 = "onboarding7"; -const P_ONBOARDING_8 = "onboarding8"; - -const P_CONTAINERS_LIST = "containersList"; -const OPEN_NEW_CONTAINER_PICKER = "new-tab"; -const MANAGE_CONTAINERS_PICKER = "manage"; -const REOPEN_IN_CONTAINER_PICKER = "reopen-in"; -const ALWAYS_OPEN_IN_PICKER = "always-open-in"; -const P_CONTAINER_INFO = "containerInfo"; -const P_CONTAINER_EDIT = "containerEdit"; -const P_CONTAINER_DELETE = "containerDelete"; -const P_CONTAINERS_ACHIEVEMENT = "containersAchievement"; -const P_CONTAINER_ASSIGNMENTS = "containerAssignments"; - -const P_MOZILLA_VPN_SERVER_LIST = "moz-vpn-server-list"; -const P_ADVANCED_PROXY_SETTINGS = "advanced-proxy-settings-panel"; - -function addRemoveSiteIsolation() { - const identity = Logic.currentIdentity(); - browser.runtime.sendMessage({ - method: "addRemoveSiteIsolation", - cookieStoreId: identity.cookieStoreId - }); -} - -async function getExtensionInfo() { - const manifestPath = browser.runtime.getURL("manifest.json"); - const response = await fetch(manifestPath); - const extensionInfo = await response.json(); - return extensionInfo; -} - -// This object controls all the panels, identities and many other things. -const Logic = { - _identities: [], - _currentIdentity: null, - _currentPanel: null, - _previousPanelPath: [], - _panels: {}, - _onboardingVariation: null, - - async init() { - browser.runtime.sendMessage({ - method: "MozillaVPN_attemptPort" - }), - - // Remove browserAction "upgraded" badge when opening panel - this.clearBrowserActionBadge(); - - // Retrieve the list of identities. - const identitiesPromise = this.refreshIdentities(); - - try { - await identitiesPromise; - } catch (e) { - throw new Error("Failed to retrieve the identities or variation. We cannot continue. ", e.message); - } - - // Routing to the correct panel. - // If localStorage is disabled, we don't show the onboarding. - const onboardingData = await browser.storage.local.get([ONBOARDING_STORAGE_KEY]); - let onboarded = onboardingData[ONBOARDING_STORAGE_KEY]; - if (!onboarded) { - onboarded = 9; - this.setOnboardingStage(onboarded); - } - - switch (onboarded) { - case 8: - this.showAchievementOrContainersListPanel(); - break; - case 7: - this.showPanel(P_ONBOARDING_8); - break; - case 6: - this.showPanel(P_ONBOARDING_8); - break; - case 5: - this.showPanel(P_ONBOARDING_6); - break; - case 4: - this.showPanel(P_ONBOARDING_5); - break; - case 3: - this.showPanel(P_ONBOARDING_4); - break; - case 2: - this.showPanel(P_ONBOARDING_3); - break; - case 1: - this.showPanel(P_ONBOARDING_2); - break; - case 0: - default: - this.showPanel(P_ONBOARDING_1); - break; - } - - }, - - async showAchievementOrContainersListPanel() { - // Do we need to show an achievement panel? - let showAchievements = false; - const achievementsStorage = await browser.storage.local.get({ achievements: [] }); - for (const achievement of achievementsStorage.achievements) { - if (!achievement.done) { - showAchievements = true; - } - } - if (showAchievements) { - this.showPanel(P_CONTAINERS_ACHIEVEMENT); - } else { - this.showPanel(P_CONTAINERS_LIST); - } - }, - - // In case the user wants to click multiple actions, - // they have to click the "Done" button to stop the panel - // from showing - async setAchievementDone(achievementName) { - const achievementsStorage = await browser.storage.local.get({ achievements: [] }); - const achievements = achievementsStorage.achievements; - achievements.forEach((achievement, index, achievementsArray) => { - if (achievement.name === achievementName) { - achievement.done = true; - achievementsArray[index] = achievement; - } - }); - browser.storage.local.set({ achievements }); - }, - - setOnboardingStage(stage) { - return browser.storage.local.set({ - [ONBOARDING_STORAGE_KEY]: stage - }); - }, - - async clearBrowserActionBadge() { - const extensionInfo = await getExtensionInfo(); - const storage = await browser.storage.local.get({ browserActionBadgesClicked: [] }); - browser.browserAction.setBadgeBackgroundColor({ color: "#ffffff" }); - browser.browserAction.setBadgeText({ text: "" }); - storage.browserActionBadgesClicked.push(extensionInfo.version); - // use set and spread to create a unique array - const browserActionBadgesClicked = [...new Set(storage.browserActionBadgesClicked)]; - browser.storage.local.set({ - browserActionBadgesClicked - }); - }, - - async identity(cookieStoreId) { - const defaultContainer = { - name: "Default", - cookieStoreId, - icon: "default-tab", - color: "default-tab", - numberOfHiddenTabs: 0, - numberOfOpenTabs: 0 - }; - // Handle old style rejection with null and also Promise.reject new style - try { - return await browser.contextualIdentities.get(cookieStoreId) || defaultContainer; - } catch (e) { - return defaultContainer; - } - }, - - async numTabs() { - const activeTabs = await browser.tabs.query({ windowId: browser.windows.WINDOW_ID_CURRENT }); - return activeTabs.length; - }, - - _disableMenuItem(message, elementToDisable = document.querySelector("#move-to-new-window")) { - elementToDisable.setAttribute("title", message); - elementToDisable.removeAttribute("tabindex"); - elementToDisable.classList.remove("hover-highlight"); - elementToDisable.classList.add("disabled-menu-item"); - }, - - _enableMenuItems(elementToEnable = document.querySelector("#move-to-new-window")) { - elementToEnable.removeAttribute("title"); - elementToEnable.setAttribute("tabindex", "0"); - elementToEnable.classList.add("hover-highlight"); - elementToEnable.classList.remove("disabled-menu-item"); - }, - - async saveContainerOrder(rows) { - const containerOrder = {}; - rows.forEach((node, index) => { - return containerOrder[node.dataset.containerId] = index; - }); - await browser.storage.local.set({ - [CONTAINER_ORDER_STORAGE_KEY]: containerOrder - }); - }, - - async refreshIdentities() { - const [identities, state, containerOrderStorage] = await Promise.all([ - browser.contextualIdentities.query({}), - browser.runtime.sendMessage({ - method: "queryIdentitiesState", - message: { - windowId: browser.windows.WINDOW_ID_CURRENT - } - }), - browser.storage.local.get([CONTAINER_ORDER_STORAGE_KEY]) - ]); - const containerOrder = - containerOrderStorage && containerOrderStorage[CONTAINER_ORDER_STORAGE_KEY]; - this._identities = identities.map((identity) => { - const stateObject = state[identity.cookieStoreId]; - if (stateObject) { - identity.hasOpenTabs = stateObject.hasOpenTabs; - identity.hasHiddenTabs = stateObject.hasHiddenTabs; - identity.numberOfHiddenTabs = stateObject.numberOfHiddenTabs; - identity.numberOfOpenTabs = stateObject.numberOfOpenTabs; - identity.isIsolated = stateObject.isIsolated; - } - if (containerOrder) { - identity.order = containerOrder[identity.cookieStoreId]; - } - return identity; - }).sort((i1, i2) => i1.order - i2.order); - }, - - getPanelSelector(panel) { - if (this._onboardingVariation === "securityOnboarding" && - // eslint-disable-next-line no-prototype-builtins - panel.hasOwnProperty("securityPanelSelector")) { - return panel.securityPanelSelector; - } else { - return panel.panelSelector; - } - }, - - async showPanel(panel, currentIdentity = null, backwards = false, addToPreviousPanelPath = true) { - if ((!backwards && addToPreviousPanelPath) || !this._currentPanel) { - this._previousPanelPath.push(this._currentPanel); - } - - // If invalid panel, reset panels. - if (!(panel in this._panels)) { - panel = P_CONTAINERS_LIST; - this._previousPanelPath = []; - } - - this._currentPanel = panel; - - this._currentIdentity = currentIdentity; - - // Initialize the panel before showing it. - await this._panels[panel].prepare(); - Object.keys(this._panels).forEach((panelKey) => { - const panelItem = this._panels[panelKey]; - const panelElement = document.querySelector(this.getPanelSelector(panelItem)); - if (!panelElement.classList.contains("hide")) { - panelElement.classList.add("hide"); - if ("unregister" in panelItem) { - panelItem.unregister(); - } - } - }); - const panelEl = document.querySelector(this.getPanelSelector(this._panels[panel])); - panelEl.classList.remove("hide"); - - const focusEl = panelEl.querySelector(".firstTabindex"); - if(focusEl) { - focusEl.focus(); - } - }, - - showPreviousPanel() { - if (!this._previousPanelPath) { - throw new Error("Current panel not set!"); - } - this.showPanel(this._previousPanelPath.pop(), this._currentIdentity, true); - }, - - registerPanel(panelName, panelObject) { - this._panels[panelName] = panelObject; - panelObject.initialize(); - }, - - identities() { - return this._identities; - }, - - currentIdentity() { - if (!this._currentIdentity) { - throw new Error("CurrentIdentity must be set before calling Logic.currentIdentity."); - } - return this._currentIdentity; - }, - - currentUserContextId() { - const identity = Logic.currentIdentity(); - return Utils.userContextId(identity.cookieStoreId); - }, - - cookieStoreId(userContextId) { - return `firefox-container-${userContextId}`; - }, - - currentCookieStoreId() { - const identity = Logic.currentIdentity(); - return identity.cookieStoreId; - }, - - removeIdentity(userContextId) { - if (!userContextId) { - return Promise.reject("removeIdentity must be called with userContextId argument."); - } - - return browser.runtime.sendMessage({ - method: "deleteContainer", - message: { userContextId } - }); - }, - - getAssignment(tab) { - return browser.runtime.sendMessage({ - method: "getAssignment", - tabId: tab.id - }); - }, - - getAssignmentObjectByContainer(userContextId) { - if (!userContextId) { - return {}; - } - return browser.runtime.sendMessage({ - method: "getAssignmentObjectByContainer", - message: { userContextId } - }); - }, - - generateIdentityName() { - const defaultName = "Container #"; - const ids = []; - - // This loop populates the 'ids' array with all the already-used ids. - this._identities.forEach(identity => { - if (identity.name.startsWith(defaultName)) { - const id = parseInt(identity.name.substr(defaultName.length), 10); - if (id) { - ids.push(id); - } - } - }); - - // Here we find the first valid id. - for (let id = 1; ; ++id) { - if (ids.indexOf(id) === -1) { - return defaultName + (id < 10 ? "0" : "") + id; - } - } - }, - - getCurrentPanelElement() { - const panelItem = this._panels[this._currentPanel]; - return document.querySelector(this.getPanelSelector(panelItem)); - }, - - listenToPickerBackButton() { - const closeContEl = document.querySelector("#close-container-picker-panel"); - if (!this._listenerSet) { - Utils.addEnterHandler(closeContEl, () => { - Logic.showPanel(P_CONTAINERS_LIST); - }); - this._listenerSet = true; - } - }, - - shortcutListener(e){ - function openNewContainerTab(identity) { - try { - browser.tabs.create({ - cookieStoreId: identity.cookieStoreId - }); - window.close(); - } catch (e) { - window.close(); - } - } - const identities = Logic.identities(); - if ((e.keyCode >= 49 && e.keyCode <= 57) && - Logic._currentPanel === "containersList") { - const identity = identities[e.keyCode - 49]; - if (identity) { - openNewContainerTab(identity); - } - } - }, - - keyboardNavListener(e){ - const panelSelector = Logic.getPanelSelector(Logic._panels[Logic._currentPanel]); - const selectables = [...document.querySelectorAll(`${panelSelector} .keyboard-nav[tabindex='0']`)]; - const element = document.activeElement; - const backButton = document.querySelector(`${panelSelector} .keyboard-nav-back`); - const index = selectables.indexOf(element) || 0; - function next() { - const nextElement = selectables[index + 1]; - if (nextElement) { - nextElement.focus(); - } - } - function previous() { - const previousElement = selectables[index - 1]; - if (previousElement) { - previousElement.focus(); - } - } - switch (e.keyCode) { - case 40: - next(); - break; - case 38: - previous(); - break; - case 39: - { - if(element){ - element.click(); - } - - // If one Container is highlighted, - if (element.classList.contains("keyboard-right-arrow-override")) { - element.querySelector(".menu-right-float").click(); - } - - break; - } - case 37: - { - if(backButton){ - backButton.click(); - } - break; - } - default: - break; - } - } -}; - -// P_ONBOARDING_1: First page for Onboarding. -// ---------------------------------------------------------------------------- - -Logic.registerPanel(P_ONBOARDING_1, { - panelSelector: ".onboarding-panel-1", - securityPanelSelector: ".security-onboarding-panel-1", - - // This method is called when the object is registered. - initialize() { - // Let's move to the next panel. - [...document.querySelectorAll(".onboarding-start-button")].forEach(startElement => { - Utils.addEnterHandler(startElement, async () => { - await Logic.setOnboardingStage(1); - Logic.showPanel(P_ONBOARDING_2); - }); - }); - }, - - // This method is called when the panel is shown. - prepare() { - return Promise.resolve(null); - }, -}); - -// P_ONBOARDING_2: Second page for Onboarding. -// ---------------------------------------------------------------------------- - -Logic.registerPanel(P_ONBOARDING_2, { - panelSelector: ".onboarding-panel-2", - securityPanelSelector: ".security-onboarding-panel-2", - - // This method is called when the object is registered. - initialize() { - // Let's move to the containers list panel. - [...document.querySelectorAll(".onboarding-next-button")].forEach(nextElement => { - Utils.addEnterHandler(nextElement, async () => { - await Logic.setOnboardingStage(2); - Logic.showPanel(P_ONBOARDING_3); - }); - }); - }, - - // This method is called when the panel is shown. - prepare() { - return Promise.resolve(null); - }, -}); - -// P_ONBOARDING_3: Third page for Onboarding. -// ---------------------------------------------------------------------------- - -Logic.registerPanel(P_ONBOARDING_3, { - panelSelector: ".onboarding-panel-3", - securityPanelSelector: ".security-onboarding-panel-3", - - // This method is called when the object is registered. - initialize() { - // Let's move to the containers list panel. - [...document.querySelectorAll(".onboarding-almost-done-button")].forEach(almostElement => { - Utils.addEnterHandler(almostElement, async () => { - await Logic.setOnboardingStage(3); - Logic.showPanel(P_ONBOARDING_4); - }); - }); - }, - - // This method is called when the panel is shown. - prepare() { - return Promise.resolve(null); - }, -}); - -// P_ONBOARDING_4: Fourth page for Onboarding. -// ---------------------------------------------------------------------------- - -Logic.registerPanel(P_ONBOARDING_4, { - panelSelector: ".onboarding-panel-4", - - // This method is called when the object is registered. - initialize() { - // Let's move to the containers list panel. - Utils.addEnterHandler(document.querySelector("#onboarding-done-button"), async () => { - await Logic.setOnboardingStage(4); - Logic.showPanel(P_ONBOARDING_5); - }); - }, - - // This method is called when the panel is shown. - prepare() { - return Promise.resolve(null); - }, -}); - -// P_ONBOARDING_5: Fifth page for Onboarding: new tab long-press behavior -// ---------------------------------------------------------------------------- - -Logic.registerPanel(P_ONBOARDING_5, { - panelSelector: ".onboarding-panel-5", - - // This method is called when the object is registered. - initialize() { - // Let's move to the containers list panel. - Utils.addEnterHandler(document.querySelector("#onboarding-longpress-button"), async () => { - await Logic.setOnboardingStage(5); - Logic.showPanel(P_ONBOARDING_6); - }); - }, - - // This method is called when the panel is shown. - prepare() { - return Promise.resolve(null); - }, -}); - -// P_ONBOARDING_6: Sixth page for Onboarding: new tab long-press behavior -// ---------------------------------------------------------------------------- - -Logic.registerPanel(P_ONBOARDING_6, { - panelSelector: ".onboarding-panel-6", - - // This method is called when the object is registered. - initialize() { - // Let's move to the containers list panel. - Utils.addEnterHandler(document.querySelector("#start-sync-button"), async () => { - await Logic.setOnboardingStage(6); - await browser.storage.local.set({syncEnabled: true}); - await browser.runtime.sendMessage({ - method: "resetSync" - }); - Logic.showPanel(P_ONBOARDING_7); - }); - Utils.addEnterHandler(document.querySelector("#no-sync"), async () => { - await Logic.setOnboardingStage(6); - await browser.storage.local.set({syncEnabled: false}); - await browser.runtime.sendMessage({ - method: "resetSync" - }); - Logic.showPanel(P_ONBOARDING_8); - }); - }, - - // This method is called when the panel is shown. - prepare() { - return Promise.resolve(null); - }, -}); -// ----------------------------------------------------------------------- - -Logic.registerPanel(P_ONBOARDING_7, { - panelSelector: ".onboarding-panel-7", - - // This method is called when the object is registered. - initialize() { - // Let's move to the containers list panel. - Utils.addEnterHandler(document.querySelector("#sign-in"), async () => { - browser.tabs.create({ - url: "https://accounts.firefox.com/?service=sync&action=email&context=fx_desktop_v3&entrypoint=multi-account-containers&utm_source=addon&utm_medium=panel&utm_campaign=container-sync", - }); - await Logic.setOnboardingStage(7); - Logic.showPanel(P_ONBOARDING_8); - }); - Utils.addEnterHandler(document.querySelector("#no-sign-in"), async () => { - await Logic.setOnboardingStage(7); - Logic.showPanel(P_ONBOARDING_8); - }); - }, - - // This method is called when the panel is shown. - prepare() { - return Promise.resolve(null); - }, -}); - -Logic.registerPanel(P_ONBOARDING_8, { - panelSelector: ".onboarding-panel-8", - - // This method is called when the object is registered. - initialize() { - document.querySelectorAll(".onboarding-done").forEach(el => { - Utils.addEnterHandler(el, async () => { - await Logic.setOnboardingStage(8); - Logic.showPanel(P_CONTAINERS_LIST); - }); - }); - - }, - - // This method is called when the panel is shown. - async prepare() { - const mozillaVpnPermissionsEnabled = await MozillaVPN.bothPermissionsEnabled(); - if (!mozillaVpnPermissionsEnabled) { - const panel = document.querySelector(".onboarding-panel-8"); - panel.classList.add("optional-permissions-disabled"); - - Utils.addEnterHandler(panel.querySelector("#onboarding-enable-permissions"), async () => { - const granted = await browser.permissions.request({ permissions: ["proxy", "nativeMessaging"] }); - if (granted) { - await Logic.setOnboardingStage(8); - } - }); - } - return Promise.resolve(null); - }, -}); -// P_CONTAINERS_LIST: The list of containers. The main page. -// ---------------------------------------------------------------------------- - -Logic.registerPanel(P_CONTAINERS_LIST, { - panelSelector: "#container-panel", - - // This method is called when the object is registered. - async initialize() { - await browser.runtime.sendMessage({ method: "MozillaVPN_queryStatus" }); - Utils.addEnterHandler(document.querySelector("#manage-containers-link"), (e) => { - if (!e.target.classList.contains("disable-edit-containers")) { - Logic.showPanel(MANAGE_CONTAINERS_PICKER); - } - }); - Utils.addEnterHandler(document.querySelector("#open-new-tab-in"), () => { - Logic.showPanel(OPEN_NEW_CONTAINER_PICKER); - }); - Utils.addEnterHandler(document.querySelector("#reopen-site-in"), () => { - Logic.showPanel(REOPEN_IN_CONTAINER_PICKER); - }); - Utils.addEnterHandler(document.querySelector("#always-open-in"), () => { - Logic.showPanel(ALWAYS_OPEN_IN_PICKER); - }); - Utils.addEnterHandler(document.querySelector("#sort-containers-link"), async () => { - try { - await browser.runtime.sendMessage({ - method: "sortTabs" - }); - window.close(); - } catch (e) { - window.close(); - } - }); - - const mozillaVpnToutName = "moz-tout-main-panel"; - const mozillaVpnPermissionsWarningDotName = "moz-permissions-warning-dot"; - - let { mozillaVpnHiddenToutsList } = await browser.storage.local.get("mozillaVpnHiddenToutsList"); - if (typeof(mozillaVpnHiddenToutsList) === "undefined") { - await browser.storage.local.set({ "mozillaVpnHiddenToutsList": [] }); - mozillaVpnHiddenToutsList = []; - } - - // Decide whether to show Mozilla VPN tout - const mozVpnTout = document.getElementById("moz-vpn-tout"); - const mozillaVpnInstalled = await browser.runtime.sendMessage({ method: "MozillaVPN_getInstallationStatus" }); - const mozillaVpnToutShouldBeHidden = mozillaVpnHiddenToutsList.find(tout => tout.name === mozillaVpnToutName); - if (mozillaVpnInstalled || mozillaVpnToutShouldBeHidden) { - mozVpnTout.remove(); - } - - // Add handlers if tout is visible - const mozVpnDismissTout = document.querySelector(".dismiss-moz-vpn-tout"); - if (mozVpnDismissTout) { - Utils.addEnterHandler((mozVpnDismissTout), async() => { - mozVpnTout.remove(); - mozillaVpnHiddenToutsList.push({ - name: mozillaVpnToutName - }); - await browser.storage.local.set({ mozillaVpnHiddenToutsList }); - }); - - Utils.addEnterHandler(document.querySelector("#moz-vpn-learn-more"), () => { - MozillaVPN.handleMozillaCtaClick("mac-main-panel-btn"); - window.close(); - }); - } - - // Badge Options icon if both nativeMessaging and/or proxy permissions are disabled - const bothMozillaVpnPermissionsEnabled = await MozillaVPN.bothPermissionsEnabled(); - const warningDotShouldBeHidden = mozillaVpnHiddenToutsList.find(tout => tout.name === mozillaVpnPermissionsWarningDotName); - const optionsIcon = document.getElementById("info-icon"); - if (optionsIcon && !bothMozillaVpnPermissionsEnabled && !warningDotShouldBeHidden) { - optionsIcon.classList.add("info-icon-alert"); - } - - Utils.addEnterHandler((document.querySelector("#info-icon")), async() => { - browser.runtime.openOptionsPage(); - if (!mozillaVpnHiddenToutsList.find(tout => tout.name === mozillaVpnPermissionsWarningDotName)) { - optionsIcon.classList.remove("info-icon-alert"); - mozillaVpnHiddenToutsList.push({ - name: mozillaVpnPermissionsWarningDotName - }); - } - await browser.storage.local.set({ mozillaVpnHiddenToutsList }); - }); - }, - - unregister() { - }, - - // This method is called when the panel is shown. - async prepare() { - const fragment = document.createDocumentFragment(); - const identities = Logic.identities(); - - for (const identity of identities) { - const tr = document.createElement("tr"); - tr.classList.add("menu-item", "hover-highlight", "keyboard-nav", "keyboard-right-arrow-override"); - tr.setAttribute("tabindex", "0"); - tr.setAttribute("data-cookie-store-id", identity.cookieStoreId); - const td = document.createElement("td"); - const openTabs = identity.numberOfOpenTabs || "" ; - - // TODO get UX and content decision on how to message and block clicks to containers with Mozilla VPN proxy configs - // when Mozilla VPN app is disconnected. - - td.innerHTML = Utils.escaped` - - - - ${openTabs} - - Container Info - - - `; - - - - fragment.appendChild(tr); - - tr.appendChild(td); - - const openInThisContainer = tr.querySelector(".menu-item-name"); - Utils.addEnterHandler(openInThisContainer, (e) => { - e.preventDefault(); - if (openInThisContainer.dataset.mozProxyWarning === "proxy-unavailable") { - return; - } - try { - browser.tabs.create({ - cookieStoreId: identity.cookieStoreId - }); - window.close(); - } catch (e) { - window.close(); - } - }); - - Utils.addEnterOnlyHandler(tr, () => { - try { - browser.tabs.create({ - cookieStoreId: identity.cookieStoreId - }); - window.close(); - } catch (e) { - window.close(); - } - }); - - // Select only the ">" from the container list - const showPanelButton = tr.querySelector(".menu-right-float"); - - Utils.addEnterHandler(showPanelButton, () => { - Logic.showPanel(P_CONTAINER_INFO, identity); - }); - } - - const list = document.querySelector("#identities-list"); - - list.innerHTML = ""; - list.appendChild(fragment); - - document.addEventListener("keydown", Logic.keyboardNavListener); - document.addEventListener("keydown", Logic.shortcutListener); - - MozillaVPN.handleContainerList(identities); - - // reset path - this._previousPanelPath = []; - return Promise.resolve(); - }, -}); - -// P_CONTAINER_INFO: More info about a container. -// ---------------------------------------------------------------------------- - -Logic.registerPanel(P_CONTAINER_INFO, { - panelSelector: "#container-info-panel", - - // This method is called when the object is registered. - async initialize() { - const closeContEl = document.querySelector("#close-container-info-panel"); - Utils.addEnterHandler(closeContEl, () => { - Logic.showPanel(P_CONTAINERS_LIST); - }); - - // Check if the user has incompatible add-ons installed - // Note: this is not implemented in messageHandler.js - let incompatible = false; - try { - incompatible = await browser.runtime.sendMessage({ - method: "checkIncompatibleAddons" - }); - } catch (e) { - throw new Error("Could not check for incompatible add-ons."); - } - - const moveTabsEl = document.querySelector("#move-to-new-window"); - const numTabs = await Logic.numTabs(); - if (incompatible) { - Logic._disableMenuItem("Moving container tabs is incompatible with Pulse, PageShot, and SnoozeTabs."); - return; - } else if (numTabs === 1) { - Logic._disableMenuItem("Cannot move a tab from a single-tab window."); - return; - } - - Utils.addEnterHandler(moveTabsEl, async () => { - await browser.runtime.sendMessage({ - method: "moveTabsToWindow", - windowId: browser.windows.WINDOW_ID_CURRENT, - cookieStoreId: Logic.currentIdentity().cookieStoreId, - }); - window.close(); - }); - }, - - // This method is called when the panel is shown. - async prepare() { - const identity = Logic.currentIdentity(); - - const newTab = document.querySelector("#open-new-tab-in-info"); - Utils.addEnterHandler(newTab, () => { - try { - browser.tabs.create({ - cookieStoreId: identity.cookieStoreId - }); - window.close(); - } catch (e) { - window.close(); - } - }); - // Populating the panel: name and icon - document.getElementById("container-info-title").textContent = identity.name; - - const alwaysOpen = document.querySelector("#always-open-in-info-panel"); - Utils.addEnterHandler(alwaysOpen, async () => { - Utils.alwaysOpenInContainer(identity); - window.close(); - }); - // Show or not the has-tabs section. - for (let trHasTabs of document.getElementsByClassName("container-info-has-tabs")) { // eslint-disable-line prefer-const - trHasTabs.style.display = !identity.hasHiddenTabs && !identity.hasOpenTabs ? "none" : ""; - } - - if (identity.numberOfOpenTabs === 0) { - Logic._disableMenuItem("No tabs available for this container"); - } else { - Logic._enableMenuItems(); - } - - this.intializeShowHide(identity); - - // Let's retrieve the list of tabs. - const tabs = await browser.runtime.sendMessage({ - method: "getTabs", - windowId: browser.windows.WINDOW_ID_CURRENT, - cookieStoreId: Logic.currentIdentity().cookieStoreId - }); - const manageContainer = document.querySelector("#manage-container-link"); - Utils.addEnterHandler(manageContainer, async () => { - Logic.showPanel(P_CONTAINER_EDIT, identity); - }); - return this.buildOpenTabTable(tabs); - }, - - intializeShowHide(identity) { - const hideContEl = document.querySelector("#hideorshow-container"); - if (identity.numberOfOpenTabs === 0 && !identity.hasHiddenTabs) { - return Logic._disableMenuItem("No tabs available for this container", hideContEl); - } else { - Logic._enableMenuItems(hideContEl); - } - - Utils.addEnterHandler(hideContEl, async () => { - try { - browser.runtime.sendMessage({ - method: identity.hasHiddenTabs ? "showTabs" : "hideTabs", - windowId: browser.windows.WINDOW_ID_CURRENT, - cookieStoreId: Logic.currentCookieStoreId() - }); - window.close(); - } catch (e) { - window.close(); - } - }); - - const hideShowIcon = document.getElementById("container-info-hideorshow-icon"); - hideShowIcon.src = identity.hasHiddenTabs ? CONTAINER_UNHIDE_SRC : CONTAINER_HIDE_SRC; - - const hideShowLabel = document.getElementById("container-info-hideorshow-label"); - hideShowLabel.textContent = browser.i18n.getMessage(identity.hasHiddenTabs ? "showThisContainer" : "hideThisContainer"); - return; - }, - - buildOpenTabTable(tabs) { - // Let's remove all the previous tabs. - const table = document.getElementById("container-info-table"); - while (table.firstChild) { - table.firstChild.remove(); - } - - // For each one, let's create a new line. - const fragment = document.createDocumentFragment(); - for (let tab of tabs) { // eslint-disable-line prefer-const - const tr = document.createElement("tr"); - fragment.appendChild(tr); - tr.classList.add("menu-item", "hover-highlight", "keyboard-nav"); - tr.setAttribute("tabindex", "0"); - tr.innerHTML = Utils.escaped` - -
- ${tab.title} - - `; - tr.querySelector(".favicon").appendChild(Utils.createFavIconElement(tab.favIconUrl)); - tr.setAttribute("tabindex", "0"); - table.appendChild(fragment); - - // On click, we activate this tab. But only if this tab is active. - if (!tab.hiddenState) { - Utils.addEnterHandler(tr, async () => { - await browser.tabs.update(tab.id, { active: true }); - window.close(); - }); - - const closeTab = tr.querySelector(".trash-button"); - if (closeTab) { - Utils.addEnterHandler(closeTab, async (e) => { - await browser.tabs.remove(Number(e.target.id)); - window.close(); - }); - } - } - } - }, -}); - -// OPEN_NEW_CONTAINER_PICKER: Opens a new container tab. -// ---------------------------------------------------------------------------- - -Logic.registerPanel(OPEN_NEW_CONTAINER_PICKER, { - panelSelector: "#container-picker-panel", - - // This method is called when the object is registered. - initialize() { - }, - - // This method is called when the panel is shown. - prepare() { - Logic.listenToPickerBackButton(); - document.getElementById("picker-title").textContent = browser.i18n.getMessage("openANewTabIn"); - const fragment = document.createDocumentFragment(); - const pickedFunction = function (identity) { - try { - browser.tabs.create({ - cookieStoreId: identity.cookieStoreId - }); - window.close(); - } catch (e) { - window.close(); - } - }; - - document.getElementById("new-container-div").innerHTML = ""; - - Logic.identities().forEach(identity => { - const tr = document.createElement("tr"); - tr.classList.add("menu-item", "hover-highlight", "keyboard-nav"); - tr.setAttribute("tabindex", "0"); - const td = document.createElement("td"); - - td.innerHTML = Utils.escaped` - - ${identity.name}`; - - fragment.appendChild(tr); - - tr.appendChild(td); - - Utils.addEnterHandler(tr, () => { - pickedFunction(identity); - }); - - }); - - const list = document.querySelector("#picker-identities-list"); - - list.innerHTML = ""; - list.appendChild(fragment); - - return Promise.resolve(null); - } -}); - -// MANAGE_CONTAINERS_PICKER: Makes the list editable. -// ---------------------------------------------------------------------------- - -Logic.registerPanel(MANAGE_CONTAINERS_PICKER, { - panelSelector: "#container-picker-panel", - - // This method is called when the object is registered. - initialize() { - }, - - // This method is called when the panel is shown. - async prepare() { - Logic.listenToPickerBackButton(); - const closeContEl = document.querySelector("#close-container-picker-panel"); - if (!this._listenerSet) { - Utils.addEnterHandler(closeContEl, () => { - Logic.showPanel(P_CONTAINERS_LIST); - }); - this._listenerSet = true; - } - document.getElementById("picker-title").textContent = browser.i18n.getMessage("manageContainers"); - const fragment = document.createDocumentFragment(); - const pickedFunction = function (identity) { - Logic.showPanel(P_CONTAINER_EDIT, identity); - }; - - document.getElementById("new-container-div").innerHTML = Utils.escaped` - - - - - -
- `; - - Utils.addEnterHandler(document.querySelector("#new-container"), () => { - Logic.showPanel(P_CONTAINER_EDIT, { name: Logic.generateIdentityName() }); - }); - - const identities = Logic.identities(); - - for (const identity of identities) { - const tr = document.createElement("tr"); - tr.classList.add("menu-item", "hover-highlight", "keyboard-nav"); - tr.setAttribute("tabindex", "0"); - tr.setAttribute("data-cookie-store-id", identity.cookieStoreId); - - const td = document.createElement("td"); - - td.innerHTML = Utils.escaped` - - ${identity.name} - - - - `; - - fragment.appendChild(tr); - - tr.appendChild(td); - - tr.draggable = true; - tr.dataset.containerId = identity.cookieStoreId; - tr.addEventListener("dragstart", (e) => { - e.dataTransfer.setData(CONTAINER_DRAG_DATA_TYPE, identity.cookieStoreId); - }); - tr.addEventListener("dragover", (e) => { - if (e.dataTransfer.types.includes(CONTAINER_DRAG_DATA_TYPE)) { - tr.classList.add("drag-over"); - e.preventDefault(); - } - }); - tr.addEventListener("dragenter", (e) => { - if (e.dataTransfer.types.includes(CONTAINER_DRAG_DATA_TYPE)) { - e.preventDefault(); - tr.classList.add("drag-over"); - } - }); - tr.addEventListener("dragleave", (e) => { - if (e.dataTransfer.types.includes(CONTAINER_DRAG_DATA_TYPE)) { - e.preventDefault(); - tr.classList.remove("drag-over"); - } - }); - tr.addEventListener("drop", async (e) => { - e.preventDefault(); - const parent = tr.parentNode; - const containerId = e.dataTransfer.getData(CONTAINER_DRAG_DATA_TYPE); - let droppedElement; - parent.childNodes.forEach((node) => { - if (node.dataset.containerId === containerId) { - droppedElement = node; - } - }); - if (droppedElement && droppedElement !== tr) { - tr.classList.remove("drag-over"); - parent.insertBefore(droppedElement, tr); - await Logic.saveContainerOrder(parent.childNodes); - await Logic.refreshIdentities(); - } - }); - - Utils.addEnterHandler(tr, () => { - pickedFunction(identity); - }); - } - - const list = document.querySelector("#picker-identities-list"); - - list.innerHTML = ""; - list.appendChild(fragment); - - MozillaVPN.handleContainerList(identities); - - return Promise.resolve(); - } -}); - -// REOPEN_IN_CONTAINER_PICKER: Makes the list editable. -// ---------------------------------------------------------------------------- - -Logic.registerPanel(REOPEN_IN_CONTAINER_PICKER, { - panelSelector: "#container-picker-panel", - - // This method is called when the object is registered. - initialize() { - }, - - // This method is called when the panel is shown. - async prepare() { - Logic.listenToPickerBackButton(); - document.getElementById("picker-title").textContent = browser.i18n.getMessage("reopenThisSiteIn"); - const fragment = document.createDocumentFragment(); - const currentTab = await Utils.currentTab(); - const pickedFunction = function (identity) { - const newUserContextId = Utils.userContextId(identity.cookieStoreId); - Utils.reloadInContainer( - currentTab.url, - false, - newUserContextId, - currentTab.index + 1, - currentTab.active - ); - window.close(); - }; - - document.getElementById("new-container-div").innerHTML = ""; - - if (currentTab.cookieStoreId !== "firefox-default") { - const tr = document.createElement("tr"); - tr.classList.add("menu-item", "hover-highlight", "keyboard-nav"); - tr.setAttribute("tabindex", "0"); - const td = document.createElement("td"); - - td.innerHTML = Utils.escaped` - - Default Container`; - - fragment.appendChild(tr); - - tr.appendChild(td); - - Utils.addEnterHandler(tr, () => { - Utils.reloadInContainer( - currentTab.url, - false, - 0, - currentTab.index + 1, - currentTab.active - ); - window.close(); - }); - } - - Logic.identities().forEach(identity => { - if (currentTab.cookieStoreId !== identity.cookieStoreId) { - const tr = document.createElement("tr"); - tr.classList.add("menu-item", "hover-highlight", "keyboard-nav"); - tr.setAttribute("tabindex", "0"); - const td = document.createElement("td"); - - td.innerHTML = Utils.escaped` - - ${identity.name}`; - - fragment.appendChild(tr); - - tr.appendChild(td); - - Utils.addEnterHandler(tr, () => { - pickedFunction(identity); - }); - } - }); - - const list = document.querySelector("#picker-identities-list"); - - list.innerHTML = ""; - list.appendChild(fragment); - - return Promise.resolve(null); - } -}); - -// ALWAYS_OPEN_IN_PICKER: Makes the list editable. -// ---------------------------------------------------------------------------- - -Logic.registerPanel(ALWAYS_OPEN_IN_PICKER, { - panelSelector: "#container-picker-panel", - - // This method is called when the object is registered. - initialize() { - }, - - // This method is called when the panel is shown. - async prepare() { - const identities = Logic.identities(); - Logic.listenToPickerBackButton(); - document.getElementById("picker-title").textContent = browser.i18n.getMessage("alwaysOpenIn"); - const fragment = document.createDocumentFragment(); - - document.getElementById("new-container-div").innerHTML = ""; - - for (const identity of identities) { - const tr = document.createElement("tr"); - tr.classList.add("menu-item", "hover-highlight", "keyboard-nav"); - tr.setAttribute("tabindex", "0"); - const td = document.createElement("td"); - - td.innerHTML = Utils.escaped` - - ${identity.name} - `; - - fragment.appendChild(tr); - - tr.appendChild(td); - - Utils.addEnterHandler(tr, () => { - Utils.alwaysOpenInContainer(identity); - window.close(); - }); - } - - const list = document.querySelector("#picker-identities-list"); - - list.innerHTML = ""; - list.appendChild(fragment); - - return Promise.resolve(null); - } -}); - -// P_CONTAINER_ASSIGNMENTS: Shows Site Assignments and allows editing. -// ---------------------------------------------------------------------------- - -Logic.registerPanel(P_CONTAINER_ASSIGNMENTS, { - panelSelector: "#edit-container-assignments", - - // This method is called when the object is registered. - initialize() { }, - - // This method is called when the panel is shown. - async prepare() { - const identity = Logic.currentIdentity(); - - // Populating the panel: name and icon - document.getElementById("edit-assignments-title").textContent = identity.name; - - const userContextId = Logic.currentUserContextId(); - const assignments = await Logic.getAssignmentObjectByContainer(userContextId); - this.showAssignedContainers(assignments); - - return Promise.resolve(null); - }, - - showAssignedContainers(assignments) { - const closeContEl = document.querySelector("#close-container-assignment-panel"); - Utils.addEnterHandler(closeContEl, () => { - const identity = Logic.currentIdentity(); - Logic.showPanel(P_CONTAINER_EDIT, identity, false, false); - }); - - const assignmentPanel = document.getElementById("edit-sites-assigned"); - const assignmentKeys = Object.keys(assignments); - assignmentPanel.hidden = !(assignmentKeys.length > 0); - if (assignments) { - const tableElement = document.querySelector("#edit-sites-assigned"); - /* Remove previous assignment list, - after removing one we rerender the list */ - while (tableElement.firstChild) { - tableElement.firstChild.remove(); - } - assignmentKeys.forEach((siteKey) => { - const site = assignments[siteKey]; - const trElement = document.createElement("tr"); - /* As we don't have the full or correct path the best we can assume is the path is HTTPS and then replace with a broken icon later if it doesn't load. - This is pending a better solution for favicons from web extensions */ - const assumedUrl = `https://${site.hostname}/favicon.ico`; - trElement.innerHTML = Utils.escaped` - -
- ${site.hostname} - - `; - trElement.getElementsByClassName("favicon")[0].appendChild(Utils.createFavIconElement(assumedUrl)); - const deleteButton = trElement.querySelector(".trash-button"); - Utils.addEnterHandler(deleteButton, async () => { - const userContextId = Logic.currentUserContextId(); - // Lets show the message to the current tab - // const currentTab = await Utils.currentTab(); - Utils.setOrRemoveAssignment(false, assumedUrl, userContextId, true); - delete assignments[siteKey]; - this.showAssignedContainers(assignments); - }); - trElement.classList.add("menu-item", "hover-highlight", "keyboard-nav"); - tableElement.appendChild(trElement); - }); - } - }, -}); - -// P_CONTAINER_EDIT: Editor for a container. -// ---------------------------------------------------------------------------- - -Logic.registerPanel(P_CONTAINER_EDIT, { - panelSelector: "#edit-container-panel", - - // This method is called when the object is registered. - async initialize() { - this.initializeRadioButtons(); - - await browser.runtime.sendMessage({ method: "MozillaVPN_queryServers" }); - await browser.runtime.sendMessage({ method: "MozillaVPN_queryStatus" }); - - class MozVpnContainerUi extends HTMLElement { - constructor() { - super(); - - this.subtitle = this.querySelector(".moz-vpn-subtitle"); - this.collapsibleContent = this.querySelector(".collapsible-content"); - - this.visibilityTogglers = this.querySelectorAll(".hide-show-label"); - this.hideShowButton = this.querySelector(".expand-collapse"); - this.primaryCta = this.querySelector("#get-mozilla-vpn"); - this.advancedProxySettingsButton = document.querySelector(".advanced-proxy-settings-btn"); - this.toutName = "moz-tout-edit-container-panel"; - - // Switch - this.switch = this.querySelector("#moz-vpn-switch"); - this.switchLabel = this.querySelector(".switch"); - - // Current server button - this.currentServerButton = this.querySelector("#moz-vpn-current-server"); - this.currentCityName = this.querySelector(".current-city-name"); - this.currentCountryFlag = this.querySelector(".current-country-flag"); - this.currentCountryCode; - - // Proxy inputs + viewer - this.advancedProxyAddress = document.getElementById("advanced-proxy-address"); - this.proxyAddressInput = document.querySelector("#edit-container-panel-proxy"); - this.cityNameInput = document.getElementById("city-name-input"); - this.countryCodeInput = document.getElementById("country-code-input"); - this.mozProxyEnabledInput = document.getElementById("moz-proxy-enabled"); - } - - async connectedCallback() { - const { mozillaVpnHiddenToutsList } = await browser.storage.local.get("mozillaVpnHiddenToutsList"); - const mozillaVpnCollapseEditContainerTout = mozillaVpnHiddenToutsList && mozillaVpnHiddenToutsList.find(tout => tout.name === this.toutName); - const mozillaVpnInstalled = await browser.runtime.sendMessage({ method: "MozillaVPN_getInstallationStatus" }); - - this.hideShowButton.addEventListener("click", this); - - if (mozillaVpnCollapseEditContainerTout && !mozillaVpnInstalled) { - this.collapseUi(); - } - - // Add listeners - if (!this.classList.contains("has-attached-listeners")) { - - const bothMozillaVpnPermissionsEnabled = await MozillaVPN.bothPermissionsEnabled(); - this.primaryCta.addEventListener("click", async() => { - if (!bothMozillaVpnPermissionsEnabled && mozillaVpnInstalled) { - await browser.permissions.request({ permissions: ["proxy", "nativeMessaging"] }); - } else { - MozillaVPN.handleMozillaCtaClick("mac-edit-container-panel-btn"); - } - - }); - - this.switch.addEventListener("click", async() => { - const { mozillaVpnServers } = await browser.storage.local.get("mozillaVpnServers"); - const id = Logic.currentIdentity(); - this.enableDisableProxyButtons(); - - if (!this.switch.checked) { - const deactivatedMozProxy = MozillaVPN.getProxy( - this.countryCodeInput.value, - this.cityNameInput.value, - undefined, - mozillaVpnServers - ); - - if (!deactivatedMozProxy) { - return; - } - - await proxifiedContainers.set(id.cookieStoreId, deactivatedMozProxy); - this.switch.checked = false; - return; - } - let proxy; - - if (this.countryCodeInput.value.length === 2) { - // User is re-enabling a Mozilla proxy for this container. - // Use the stored location information to select a server - // in the same location. - proxy = MozillaVPN.getProxy( - this.countryCodeInput.value, - this.cityNameInput.value, - true, - mozillaVpnServers - ); - - } else { - // No saved Mozilla VPN proxy information. Get something new. - const { randomServerCountryCode, randomServerCityName } = await MozillaVPN.pickRandomLocation(); - - proxy = MozillaVPN.getProxy( - randomServerCountryCode, - randomServerCityName, - true, - mozillaVpnServers - ); - } - - if (proxy) { - await proxifiedContainers.set(id.cookieStoreId, proxy); - this.switch.checked = true; - this.updateProxyDependentUi(proxy); - } else { - this.switch.checked = false; - this.updateProxyDependentUi({}); - return; - } - }); - } - - this.classList.add("has-attached-listeners"); - this.currentServerButton.classList.add("hidden"); - } - - async updateMozVpnStatusDependentUi() { - const mozillaVpnInstalled = await browser.runtime.sendMessage({ method: "MozillaVPN_getInstallationStatus" }); - const mozillaVpnConnected = await browser.runtime.sendMessage({ method: "MozillaVPN_getConnectionStatus" }); - - this.subtitle.textContent = browser.i18n.getMessage("integrateContainers"); - - const bothMozillaVpnPermissionsEnabled = await MozillaVPN.bothPermissionsEnabled(); - - if (mozillaVpnInstalled && !bothMozillaVpnPermissionsEnabled) { - this.subtitle.style.flex = "1 1 100%"; - this.classList.remove("show-server-button"); - this.subtitle.textContent = browser.i18n.getMessage("additionalPermissionNeeded"); - this.hideEls(this.hideShowButton, this.switch, this.switchLabel, this.currentServerButton); - this.primaryCta.style.display = "block"; - this.primaryCta.textContent = browser.i18n.getMessage("enable"); - return; - } - - if (mozillaVpnInstalled) { - // Hide cta and hide/show button - this.hideEls(this.primaryCta, this.hideShowButton); - - // Update subtitle - this.subtitle.textContent = mozillaVpnConnected ? browser.i18n.getMessage("useCustomLocation") : browser.i18n.getMessage("mozillaVpnMustBeOn"); - this.subtitle.style.flex = "1 1 80%"; - this.currentServerButton.style.display = "flex"; - } - - if (mozillaVpnConnected) { - [this.switchLabel, this.switch].forEach(el => { - el.style.display = "inline-block"; - }); - } else { - this.hideEls(this.switch, this.switchLabel, this.currentServerButton); - this.switch.checked = false; - } - - if ((mozillaVpnInstalled && !mozillaVpnConnected) || mozillaVpnConnected) { - this.expandUi(); - } - } - - - async enableDisableProxyButtons() { - const mozillaVpnConnected = await browser.runtime.sendMessage({ method: "MozillaVPN_getConnectionStatus" }); - - if (!this.switch.checked || this.switch.disabled || !mozillaVpnConnected) { - this.currentServerButton.disabled = true; - this.advancedProxySettingsButton.disabled = false; - document.getElementById("moz-proxy-enabled").value = undefined; - return; - } - - this.currentServerButton.disabled = false; - this.advancedProxySettingsButton.disabled = true; - this.advancedProxyAddress.textContent = ""; - } - - updateProxyInputs(proxyInfo) { - const resetProxyStorageEls = () => { - [this.proxyAddressInput, this.cityNameInput, this.countryCodeInput, this.mozProxyEnabledInput].forEach(el => { - el.value = ""; - - }); - this.advancedProxyAddress.textContent = ""; - }; - - resetProxyStorageEls(); - - if (typeof(proxyInfo) === "undefined" || typeof(proxyInfo.type) === "undefined") { - // no custom proxy is set - return; - } - - this.cityNameInput.value = proxyInfo.cityName; - this.countryCodeInput.value = proxyInfo.countryCode; - this.mozProxyEnabledInput.value = proxyInfo.mozProxyEnabled; - this.proxyAddressInput.value = `${proxyInfo.type}://${proxyInfo.host}:${proxyInfo.port}`; - - if (typeof(proxyInfo.countryCode) === "undefined" && proxyInfo.type) { - // Set custom proxy URL below 'Advanced proxy settings' button label - this.advancedProxyAddress.textContent = `${proxyInfo.type}://${proxyInfo.host}:${proxyInfo.port}`; - } - } - - async updateProxyDependentUi(proxyInfo) { - const mozillaVpnProxyLocationAvailable = (proxy) => { - return typeof(proxy) !== "undefined" && typeof(proxy.countryCode) !== "undefined" && typeof(proxy.cityName) !== "undefined"; - }; - - const mozillaVpnProxyIsEnabled = (proxy) => { - return typeof(proxy) !== "undefined" && typeof(proxy.mozProxyEnabled) !== "undefined" && proxy.mozProxyEnabled === true; - }; - - this.switch.checked = mozillaVpnProxyIsEnabled(proxyInfo); - this.updateProxyInputs(proxyInfo); - this.enableDisableProxyButtons(); - - const mozillaVpnConnected = await browser.runtime.sendMessage({ method: "MozillaVPN_getConnectionStatus" }); - if ( - !proxyInfo || - !mozillaVpnProxyLocationAvailable(proxyInfo) || - !mozillaVpnConnected - ) { - // Hide server location button - this.currentServerButton.classList.add("hidden"); - this.classList.remove("show-server-button"); - } else { - // Unhide server location button - this.currentServerButton.style.display = "flex"; - this.currentServerButton.classList.remove("hidden"); - this.classList.add("show-server-button"); - } - - // Populate inputs and server button with current or previously stored mozilla vpn proxy - if(proxyInfo && mozillaVpnProxyLocationAvailable(proxyInfo)) { - this.currentCountryFlag.style.backgroundImage = `url("./img/flags/${proxyInfo.countryCode.toUpperCase()}.png")`; - this.currentCountryFlag.style.backgroundImage = proxyInfo.countryCode + ".png"; - this.currentCityName.textContent = proxyInfo.cityName; - this.countryCode = proxyInfo.countryCode; - } - } - - expandUi() { - this.classList.add("expanded"); - } - - collapseUi() { - this.classList.remove("expanded"); - } - - hideEls(...els) { - els.forEach(el => { - el.style.display = "none"; - }); - } - - async handleEvent(e) { - e.preventDefault(); - e.stopPropagation(); - if (e.type === "keyup" && e.key !== " ") { - return; - } - this.classList.toggle("expanded"); - - const { mozillaVpnHiddenToutsList } = await browser.storage.local.get("mozillaVpnHiddenToutsList"); - if (typeof(mozillaVpnHiddenToutsList) === "undefined") { - await browser.storage.local.set({ "mozillaVpnHiddenToutsList":[] }); - } - - const toutIndex = mozillaVpnHiddenToutsList.findIndex(tout => tout.name === mozillaVpnUi.toutName); - if (toutIndex === -1) { - mozillaVpnHiddenToutsList.push({ name: mozillaVpnUi.toutName }); - } else { - this.expandUi(); - mozillaVpnHiddenToutsList.splice(toutIndex, 1); - } - return await browser.storage.local.set({ mozillaVpnHiddenToutsList }); - } - - } - - customElements.define("moz-vpn-container-ui", MozVpnContainerUi); - const mozillaVpnUi = document.querySelector("moz-vpn-container-ui"); - mozillaVpnUi.updateMozVpnStatusDependentUi(); - - browser.permissions.onAdded.addListener(() => { mozillaVpnUi.updateMozVpnStatusDependentUi(); }); - browser.permissions.onRemoved.addListener(() => { mozillaVpnUi.updateMozVpnStatusDependentUi(); }); - - const advancedProxySettingsButton = document.querySelector(".advanced-proxy-settings-btn"); - Utils.addEnterHandler(advancedProxySettingsButton, () => { - Logic.showPanel(P_ADVANCED_PROXY_SETTINGS, this.getEditInProgressIdentity(), false, false); - }); - - const serverListButton = document.getElementById("moz-vpn-current-server"); - Utils.addEnterHandler(serverListButton, () => { - const mozVpnEnabled = document.querySelector("#moz-vpn-switch").checked; - if (!mozVpnEnabled) { - return; - } - Logic.showPanel(P_MOZILLA_VPN_SERVER_LIST, this.getEditInProgressIdentity(), false); - }); - - Utils.addEnterHandler(document.querySelector("#close-container-edit-panel"), () => { - // Resets listener from siteIsolation checkbox to keep the update queue to 0. - const siteIsolation = document.querySelector("#site-isolation"); - siteIsolation.removeEventListener("change", addRemoveSiteIsolation, false); - const formValues = new FormData(this._editForm); - if (formValues.get("container-id") !== NEW_CONTAINER_ID) { - this._submitForm(); - } else { - Logic.showPreviousPanel(); - } - }); - - this._editForm = document.getElementById("edit-container-panel-form"); - this._editForm.addEventListener("submit", () => { - this._submitForm(); - }); - Utils.addEnterHandler(document.querySelector("#create-container-cancel-link"), () => { - Logic.showPanel(MANAGE_CONTAINERS_PICKER); - }); - - Utils.addEnterHandler(document.querySelector("#create-container-ok-link"), () => { - this._submitForm(); - }); - }, - - async _submitForm() { - const formValues = new FormData(this._editForm); - - try { - await browser.runtime.sendMessage({ - method: "createOrUpdateContainer", - message: { - userContextId: formValues.get("container-id") || NEW_CONTAINER_ID, - params: { - name: document.getElementById("edit-container-panel-name-input").value || Logic.generateIdentityName(), - icon: formValues.get("container-icon") || DEFAULT_ICON, - color: formValues.get("container-color") || DEFAULT_COLOR - }, - } - }); - await Logic.refreshIdentities(); - Logic.showPreviousPanel(); - } catch (e) { - Logic.showPreviousPanel(); - } - }, - - openServerList() { - const updatedIdentity = this.getEditInProgressIdentity(); - Logic.showPanel(P_MOZILLA_VPN_SERVER_LIST, updatedIdentity, false); - }, - - // This prevents identity edits (change of icon, color, etc) - // from getting lost when navigating to and from one - // of the edit sub-pages (advanced proxy settings, for instance). - getEditInProgressIdentity() { - const formValues = new FormData(this._editForm); - const editedIdentity = Logic.currentIdentity(); - - editedIdentity.color = formValues.get("container-color") || DEFAULT_COLOR; - editedIdentity.icon = formValues.get("container-icon") || DEFAULT_ICON; - editedIdentity.name = document.getElementById("edit-container-panel-name-input").value || Logic.generateIdentityName(); - return editedIdentity; - }, - - initializeRadioButtons() { - const colorRadioTemplate = (containerColor) => { - return Utils.escaped` - - -
- -

-

- -
- -
- -

-

- -
- -
- -

-

- -
- -
- -

-

- -
- -
- -

-

-
- - -
-
- -
- -

-

-
- - -
-
- -
-
- -

-

-
-
- -
-
-
- -
-
- - -
-
-
- -
- -

-

-

- - -
- - - - - - - - - - - - - -
-

-

- - -
-
-

-

-
- -
- -
-

- -
    - - -
-
- -
-

- -
-

- -
-

- -
- -
- - - -
- - -
-
-

- -
-
- - - - - -